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: 2018-09-5 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.c" 21 .section .text.ftl_set_blk_mode.part.10,"ax",%progbits 22 .align 1 23 .syntax unified 24 .thumb 25 .thumb_func 26 .fpu softvfp 27 .type ftl_set_blk_mode.part.10, %function 28ftl_set_blk_mode.part.10: 29 @ args = 0, pretend = 0, frame = 0 30 @ frame_needed = 0, uses_anonymous_args = 0 31 @ link register save eliminated. 32 ldr r3, .L2 33 lsrs r1, r0, #5 34 and r0, r0, #31 35 ldr r2, [r3] 36 movs r3, #1 37 lsl r0, r3, r0 38 ldr r3, [r2, r1, lsl #2] 39 orrs r3, r3, r0 40 str r3, [r2, r1, lsl #2] 41 bx lr 42.L3: 43 .align 2 44.L2: 45 .word .LANCHOR0 46 .size ftl_set_blk_mode.part.10, .-ftl_set_blk_mode.part.10 47 .section .text.FlashMemCmp8,"ax",%progbits 48 .align 1 49 .global FlashMemCmp8 50 .syntax unified 51 .thumb 52 .thumb_func 53 .fpu softvfp 54 .type FlashMemCmp8, %function 55FlashMemCmp8: 56 @ args = 0, pretend = 0, frame = 0 57 @ frame_needed = 0, uses_anonymous_args = 0 58 ldr r3, .L12 59 push {r4, r5, lr} 60 ldrb r3, [r3] @ zero_extendqisi2 61 cbz r3, .L7 62 ldrb r4, [r0, #1] @ zero_extendqisi2 63 ldrb r3, [r1, #1] @ zero_extendqisi2 64 cmp r4, r3 65 beq .L11 66 movs r3, #0 67.L7: 68 cmp r3, r2 69 bne .L9 70.L11: 71 movs r0, #0 72 pop {r4, r5, pc} 73.L9: 74 ldrb r5, [r0, r3] @ zero_extendqisi2 75 ldrb r4, [r1, r3] @ zero_extendqisi2 76 adds r3, r3, #1 77 cmp r5, r4 78 beq .L7 79 mov r0, r3 80 pop {r4, r5, pc} 81.L13: 82 .align 2 83.L12: 84 .word .LANCHOR1 85 .size FlashMemCmp8, .-FlashMemCmp8 86 .section .text.FlashRsvdBlkChk,"ax",%progbits 87 .align 1 88 .global FlashRsvdBlkChk 89 .syntax unified 90 .thumb 91 .thumb_func 92 .fpu softvfp 93 .type FlashRsvdBlkChk, %function 94FlashRsvdBlkChk: 95 @ args = 0, pretend = 0, frame = 0 96 @ frame_needed = 0, uses_anonymous_args = 0 97 @ link register save eliminated. 98 ldr r3, .L17 99 ldrb r2, [r3] @ zero_extendqisi2 100 ldr r3, .L17+4 101 ldr r3, [r3] 102 muls r3, r2, r3 103 cmp r3, r1 104 bls .L16 105 adds r0, r0, #0 106 it ne 107 movne r0, #1 108 bx lr 109.L16: 110 movs r0, #1 111 bx lr 112.L18: 113 .align 2 114.L17: 115 .word .LANCHOR2 116 .word .LANCHOR3 117 .size FlashRsvdBlkChk, .-FlashRsvdBlkChk 118 .section .text.FlashGetRandomizer,"ax",%progbits 119 .align 1 120 .global FlashGetRandomizer 121 .syntax unified 122 .thumb 123 .thumb_func 124 .fpu softvfp 125 .type FlashGetRandomizer, %function 126FlashGetRandomizer: 127 @ args = 0, pretend = 0, frame = 0 128 @ frame_needed = 0, uses_anonymous_args = 0 129 ldr r3, .L27 130 and r2, r1, #127 131 push {r4, lr} 132 ldrh r4, [r3, r2, lsl #1] 133 ldr r3, .L27+4 134 ldrb r3, [r3] @ zero_extendqisi2 135 cbz r3, .L19 136 bl FlashRsvdBlkChk 137 cbz r0, .L19 138 orr r4, r4, #-1073741824 139.L19: 140 mov r0, r4 141 pop {r4, pc} 142.L28: 143 .align 2 144.L27: 145 .word .LANCHOR4 146 .word .LANCHOR5 147 .size FlashGetRandomizer, .-FlashGetRandomizer 148 .section .text.FlashSetRandomizer,"ax",%progbits 149 .align 1 150 .global FlashSetRandomizer 151 .syntax unified 152 .thumb 153 .thumb_func 154 .fpu softvfp 155 .type FlashSetRandomizer, %function 156FlashSetRandomizer: 157 @ args = 0, pretend = 0, frame = 0 158 @ frame_needed = 0, uses_anonymous_args = 0 159 push {r3, r4, r5, lr} 160 and r2, r1, #127 161 ldr r3, .L37 162 mov r5, r0 163 ldrh r4, [r3, r2, lsl #1] 164 ldr r3, .L37+4 165 ldrb r3, [r3] @ zero_extendqisi2 166 cbz r3, .L30 167 bl FlashRsvdBlkChk 168 cbz r0, .L30 169 orr r4, r4, #-1073741824 170.L30: 171 ldr r3, .L37+8 172 ldr r3, [r3, r5, lsl #3] 173 str r4, [r3, #336] 174 pop {r3, r4, r5, pc} 175.L38: 176 .align 2 177.L37: 178 .word .LANCHOR4 179 .word .LANCHOR5 180 .word .LANCHOR6 181 .size FlashSetRandomizer, .-FlashSetRandomizer 182 .section .text.FlashReadCmd,"ax",%progbits 183 .align 1 184 .global FlashReadCmd 185 .syntax unified 186 .thumb 187 .thumb_func 188 .fpu softvfp 189 .type FlashReadCmd, %function 190FlashReadCmd: 191 @ args = 0, pretend = 0, frame = 0 192 @ frame_needed = 0, uses_anonymous_args = 0 193 @ link register save eliminated. 194 push {r4, r5} 195 lsrs r2, r1, #16 196 ldr r4, .L40 197 ldr r3, [r4, r0, lsl #3] 198 add r4, r4, r0, lsl #3 199 ldrb r4, [r4, #4] @ zero_extendqisi2 200 add r3, r3, r4, lsl #8 201 movs r4, #0 202 str r4, [r3, #2056] 203 str r4, [r3, #2052] 204 str r4, [r3, #2052] 205 uxtb r4, r1 206 str r4, [r3, #2052] 207 lsrs r4, r1, #8 208 str r4, [r3, #2052] 209 str r2, [r3, #2052] 210 movs r2, #48 211 str r2, [r3, #2056] 212 pop {r4, r5} 213 b FlashSetRandomizer 214.L41: 215 .align 2 216.L40: 217 .word .LANCHOR6 218 .size FlashReadCmd, .-FlashReadCmd 219 .section .text.FlashReadDpDataOutCmd,"ax",%progbits 220 .align 1 221 .global FlashReadDpDataOutCmd 222 .syntax unified 223 .thumb 224 .thumb_func 225 .fpu softvfp 226 .type FlashReadDpDataOutCmd, %function 227FlashReadDpDataOutCmd: 228 @ args = 0, pretend = 0, frame = 0 229 @ frame_needed = 0, uses_anonymous_args = 0 230 @ link register save eliminated. 231 ldr r2, .L46 232 push {r4, r5, r6} 233 uxtb r6, r1 234 ldr r4, .L46+4 235 lsrs r5, r1, #8 236 ldr r3, [r2, r0, lsl #3] 237 add r2, r2, r0, lsl #3 238 ldrb r4, [r4, #16] @ zero_extendqisi2 239 ldrb r2, [r2, #4] @ zero_extendqisi2 240 cmp r4, #1 241 lsr r4, r1, #16 242 lsl r2, r2, #8 243 add r3, r3, r2 244 bne .L43 245 movs r2, #6 246 str r2, [r3, #2056] 247 movs r2, #0 248 str r2, [r3, #2052] 249 str r2, [r3, #2052] 250 str r6, [r3, #2052] 251 str r5, [r3, #2052] 252 str r4, [r3, #2052] 253.L45: 254 movs r2, #224 255 str r2, [r3, #2056] 256 pop {r4, r5, r6} 257 b FlashSetRandomizer 258.L43: 259 movs r2, #0 260 str r2, [r3, #2056] 261 str r2, [r3, #2052] 262 str r2, [r3, #2052] 263 str r6, [r3, #2052] 264 str r5, [r3, #2052] 265 str r4, [r3, #2052] 266 movs r4, #5 267 str r4, [r3, #2056] 268 str r2, [r3, #2052] 269 str r2, [r3, #2052] 270 b .L45 271.L47: 272 .align 2 273.L46: 274 .word .LANCHOR6 275 .word .LANCHOR7 276 .size FlashReadDpDataOutCmd, .-FlashReadDpDataOutCmd 277 .section .text.flash_enter_slc_mode,"ax",%progbits 278 .align 1 279 .global flash_enter_slc_mode 280 .syntax unified 281 .thumb 282 .thumb_func 283 .fpu softvfp 284 .type flash_enter_slc_mode, %function 285flash_enter_slc_mode: 286 @ args = 0, pretend = 0, frame = 0 287 @ frame_needed = 0, uses_anonymous_args = 0 288 @ link register save eliminated. 289 ldr r3, .L53 290 ldrb r3, [r3] @ zero_extendqisi2 291 cbz r3, .L48 292 ldr r3, .L53+4 293 ldr r2, [r3, r0, lsl #3] 294 add r3, r3, r0, lsl #3 295 ldrb r3, [r3, #4] @ zero_extendqisi2 296 add r3, r2, r3, lsl #8 297 movs r2, #218 298 str r2, [r3, #2056] 299.L48: 300 bx lr 301.L54: 302 .align 2 303.L53: 304 .word .LANCHOR8 305 .word .LANCHOR6 306 .size flash_enter_slc_mode, .-flash_enter_slc_mode 307 .section .text.flash_exit_slc_mode,"ax",%progbits 308 .align 1 309 .global flash_exit_slc_mode 310 .syntax unified 311 .thumb 312 .thumb_func 313 .fpu softvfp 314 .type flash_exit_slc_mode, %function 315flash_exit_slc_mode: 316 @ args = 0, pretend = 0, frame = 0 317 @ frame_needed = 0, uses_anonymous_args = 0 318 @ link register save eliminated. 319 ldr r3, .L60 320 ldrb r3, [r3] @ zero_extendqisi2 321 cbz r3, .L55 322 ldr r3, .L60+4 323 ldr r2, [r3, r0, lsl #3] 324 add r3, r3, r0, lsl #3 325 ldrb r3, [r3, #4] @ zero_extendqisi2 326 add r3, r2, r3, lsl #8 327 movs r2, #223 328 str r2, [r3, #2056] 329.L55: 330 bx lr 331.L61: 332 .align 2 333.L60: 334 .word .LANCHOR8 335 .word .LANCHOR6 336 .size flash_exit_slc_mode, .-flash_exit_slc_mode 337 .section .text.FlashProgFirstCmd,"ax",%progbits 338 .align 1 339 .global FlashProgFirstCmd 340 .syntax unified 341 .thumb 342 .thumb_func 343 .fpu softvfp 344 .type FlashProgFirstCmd, %function 345FlashProgFirstCmd: 346 @ args = 0, pretend = 0, frame = 0 347 @ frame_needed = 0, uses_anonymous_args = 0 348 @ link register save eliminated. 349 push {r4, r5} 350 lsrs r2, r1, #16 351 ldr r4, .L63 352 ldr r3, [r4, r0, lsl #3] 353 add r4, r4, r0, lsl #3 354 ldrb r4, [r4, #4] @ zero_extendqisi2 355 add r3, r3, r4, lsl #8 356 movs r4, #128 357 str r4, [r3, #2056] 358 movs r4, #0 359 str r4, [r3, #2052] 360 str r4, [r3, #2052] 361 uxtb r4, r1 362 str r4, [r3, #2052] 363 lsrs r4, r1, #8 364 str r4, [r3, #2052] 365 str r2, [r3, #2052] 366 pop {r4, r5} 367 b FlashSetRandomizer 368.L64: 369 .align 2 370.L63: 371 .word .LANCHOR6 372 .size FlashProgFirstCmd, .-FlashProgFirstCmd 373 .section .text.FlashEraseCmd,"ax",%progbits 374 .align 1 375 .global FlashEraseCmd 376 .syntax unified 377 .thumb 378 .thumb_func 379 .fpu softvfp 380 .type FlashEraseCmd, %function 381FlashEraseCmd: 382 @ args = 0, pretend = 0, frame = 0 383 @ frame_needed = 0, uses_anonymous_args = 0 384 push {r4, lr} 385 ldr r4, .L70 386 ldr r3, [r4, r0, lsl #3] 387 add r4, r4, r0, lsl #3 388 ldrb r0, [r4, #4] @ zero_extendqisi2 389 lsls r0, r0, #8 390 cbz r2, .L66 391 adds r2, r3, r0 392 movs r4, #96 393 str r4, [r2, #2056] 394 uxtb r4, r1 395 str r4, [r2, #2052] 396 lsrs r4, r1, #8 397 str r4, [r2, #2052] 398 lsrs r4, r1, #16 399 str r4, [r2, #2052] 400 ldr r2, .L70+4 401 ldr r2, [r2] 402 add r1, r1, r2 403.L66: 404 add r3, r3, r0 405 movs r2, #96 406 str r2, [r3, #2056] 407 uxtb r2, r1 408 str r2, [r3, #2052] 409 lsrs r2, r1, #8 410 lsrs r1, r1, #16 411 str r2, [r3, #2052] 412 movs r2, #208 413 str r1, [r3, #2052] 414 str r2, [r3, #2056] 415 pop {r4, pc} 416.L71: 417 .align 2 418.L70: 419 .word .LANCHOR6 420 .word .LANCHOR3 421 .size FlashEraseCmd, .-FlashEraseCmd 422 .section .text.FlashProgDpSecondCmd,"ax",%progbits 423 .align 1 424 .global FlashProgDpSecondCmd 425 .syntax unified 426 .thumb 427 .thumb_func 428 .fpu softvfp 429 .type FlashProgDpSecondCmd, %function 430FlashProgDpSecondCmd: 431 @ args = 0, pretend = 0, frame = 0 432 @ frame_needed = 0, uses_anonymous_args = 0 433 @ link register save eliminated. 434 push {r4, r5} 435 lsrs r2, r1, #16 436 ldr r4, .L73 437 ldr r3, [r4, r0, lsl #3] 438 add r4, r4, r0, lsl #3 439 ldrb r5, [r4, #4] @ zero_extendqisi2 440 ldr r4, .L73+4 441 ldrb r4, [r4, #11] @ zero_extendqisi2 442 add r3, r3, r5, lsl #8 443 str r4, [r3, #2056] 444 movs r4, #0 445 str r4, [r3, #2052] 446 str r4, [r3, #2052] 447 uxtb r4, r1 448 str r4, [r3, #2052] 449 lsrs r4, r1, #8 450 str r4, [r3, #2052] 451 str r2, [r3, #2052] 452 pop {r4, r5} 453 b FlashSetRandomizer 454.L74: 455 .align 2 456.L73: 457 .word .LANCHOR6 458 .word .LANCHOR7 459 .size FlashProgDpSecondCmd, .-FlashProgDpSecondCmd 460 .section .text.FlashProgSecondCmd,"ax",%progbits 461 .align 1 462 .global FlashProgSecondCmd 463 .syntax unified 464 .thumb 465 .thumb_func 466 .fpu softvfp 467 .type FlashProgSecondCmd, %function 468FlashProgSecondCmd: 469 @ args = 0, pretend = 0, frame = 0 470 @ frame_needed = 0, uses_anonymous_args = 0 471 @ link register save eliminated. 472 ldr r3, .L76 473 ldr r2, [r3, r0, lsl #3] 474 add r3, r3, r0, lsl #3 475 ldrb r3, [r3, #4] @ zero_extendqisi2 476 add r3, r2, r3, lsl #8 477 movs r2, #16 478 str r2, [r3, #2056] 479 bx lr 480.L77: 481 .align 2 482.L76: 483 .word .LANCHOR6 484 .size FlashProgSecondCmd, .-FlashProgSecondCmd 485 .section .text.FlashProgDpFirstCmd,"ax",%progbits 486 .align 1 487 .global FlashProgDpFirstCmd 488 .syntax unified 489 .thumb 490 .thumb_func 491 .fpu softvfp 492 .type FlashProgDpFirstCmd, %function 493FlashProgDpFirstCmd: 494 @ args = 0, pretend = 0, frame = 0 495 @ frame_needed = 0, uses_anonymous_args = 0 496 @ link register save eliminated. 497 ldr r3, .L79 498 ldr r1, .L79+4 499 ldr r2, [r3, r0, lsl #3] 500 add r3, r3, r0, lsl #3 501 ldrb r1, [r1, #10] @ zero_extendqisi2 502 ldrb r3, [r3, #4] @ zero_extendqisi2 503 add r3, r2, r3, lsl #8 504 str r1, [r3, #2056] 505 bx lr 506.L80: 507 .align 2 508.L79: 509 .word .LANCHOR6 510 .word .LANCHOR7 511 .size FlashProgDpFirstCmd, .-FlashProgDpFirstCmd 512 .section .text.FlashReadStatus,"ax",%progbits 513 .align 1 514 .global FlashReadStatus 515 .syntax unified 516 .thumb 517 .thumb_func 518 .fpu softvfp 519 .type FlashReadStatus, %function 520FlashReadStatus: 521 @ args = 0, pretend = 0, frame = 0 522 @ frame_needed = 0, uses_anonymous_args = 0 523 push {r3, r4, r5, lr} 524 movs r2, #112 525 ldr r3, .L82 526 ldr r5, [r3, r0, lsl #3] 527 add r3, r3, r0, lsl #3 528 movs r0, #80 529 ldrb r4, [r3, #4] @ zero_extendqisi2 530 add r3, r5, r4, lsl #8 531 adds r4, r4, #8 532 lsls r4, r4, #8 533 str r2, [r3, #2056] 534 bl udelay 535 ldr r0, [r5, r4] 536 pop {r3, r4, r5, pc} 537.L83: 538 .align 2 539.L82: 540 .word .LANCHOR6 541 .size FlashReadStatus, .-FlashReadStatus 542 .section .text.JSHash,"ax",%progbits 543 .align 1 544 .global JSHash 545 .syntax unified 546 .thumb 547 .thumb_func 548 .fpu softvfp 549 .type JSHash, %function 550JSHash: 551 @ args = 0, pretend = 0, frame = 0 552 @ frame_needed = 0, uses_anonymous_args = 0 553 ldr r3, .L87 554 add r1, r1, r0 555 push {r4, lr} 556.L85: 557 cmp r0, r1 558 bne .L86 559 mov r0, r3 560 pop {r4, pc} 561.L86: 562 lsrs r2, r3, #2 563 ldrb r4, [r0], #1 @ zero_extendqisi2 564 add r2, r2, r3, lsl #5 565 add r2, r2, r4 566 eors r3, r3, r2 567 b .L85 568.L88: 569 .align 2 570.L87: 571 .word 1204201446 572 .size JSHash, .-JSHash 573 .section .text.FlashLoadIdbInfo,"ax",%progbits 574 .align 1 575 .global FlashLoadIdbInfo 576 .syntax unified 577 .thumb 578 .thumb_func 579 .fpu softvfp 580 .type FlashLoadIdbInfo, %function 581FlashLoadIdbInfo: 582 @ args = 0, pretend = 0, frame = 0 583 @ frame_needed = 0, uses_anonymous_args = 0 584 @ link register save eliminated. 585 movs r0, #0 586 bx lr 587 .size FlashLoadIdbInfo, .-FlashLoadIdbInfo 588 .section .text.FlashPrintInfo,"ax",%progbits 589 .align 1 590 .global FlashPrintInfo 591 .syntax unified 592 .thumb 593 .thumb_func 594 .fpu softvfp 595 .type FlashPrintInfo, %function 596FlashPrintInfo: 597 @ args = 0, pretend = 0, frame = 0 598 @ frame_needed = 0, uses_anonymous_args = 0 599 @ link register save eliminated. 600 bx lr 601 .size FlashPrintInfo, .-FlashPrintInfo 602 .section .text.ToshibaSetRRPara,"ax",%progbits 603 .align 1 604 .global ToshibaSetRRPara 605 .syntax unified 606 .thumb 607 .thumb_func 608 .fpu softvfp 609 .type ToshibaSetRRPara, %function 610ToshibaSetRRPara: 611 @ args = 0, pretend = 0, frame = 0 612 @ frame_needed = 0, uses_anonymous_args = 0 613 push {r3, r4, r5, r6, r7, r8, r10, lr} 614 add r7, r1, r1, lsl #2 615 ldr r10, .L99+12 616 mov r5, r0 617 mov r6, r1 618 movs r4, #0 619 ldr r8, .L99+16 620.L92: 621 ldrb r3, [r10] @ zero_extendqisi2 622 cmp r4, r3 623 bcc .L96 624 pop {r3, r4, r5, r6, r7, r8, r10, pc} 625.L96: 626 movs r3, #85 627 movs r0, #200 628 str r3, [r5, #8] 629 ldrsb r3, [r4, r8] 630 str r3, [r5, #4] 631 bl udelay 632 ldr r3, .L99 633 ldrb r3, [r3] @ zero_extendqisi2 634 cmp r3, #34 635 bne .L93 636 adds r3, r4, r7 637 add r3, r3, r8 638.L98: 639 ldrsb r3, [r3, #5] 640.L97: 641 str r3, [r5] 642 adds r4, r4, #1 643 b .L92 644.L93: 645 cmp r3, #35 646 bne .L95 647 ldr r3, .L99+4 648 adds r2, r4, r7 649 add r3, r3, r2 650 b .L98 651.L95: 652 ldr r3, .L99+8 653 ldrsb r3, [r3, r6] 654 b .L97 655.L100: 656 .align 2 657.L99: 658 .word .LANCHOR10 659 .word .LANCHOR11 660 .word .LANCHOR12 661 .word .LANCHOR13 662 .word .LANCHOR9 663 .size ToshibaSetRRPara, .-ToshibaSetRRPara 664 .section .text.SamsungSetRRPara,"ax",%progbits 665 .align 1 666 .global SamsungSetRRPara 667 .syntax unified 668 .thumb 669 .thumb_func 670 .fpu softvfp 671 .type SamsungSetRRPara, %function 672SamsungSetRRPara: 673 @ args = 0, pretend = 0, frame = 0 674 @ frame_needed = 0, uses_anonymous_args = 0 675 push {r3, r4, r5, r6, r7, r8, r10, lr} 676 mov r6, r0 677 ldr r7, .L104 678 movs r4, #0 679 mov r10, #161 680 ldr r8, .L104+4 681 add r1, r7, r1, lsl #2 682 adds r5, r1, #3 683.L102: 684 ldrb r3, [r8] @ zero_extendqisi2 685 cmp r4, r3 686 bcc .L103 687 pop {r3, r4, r5, r6, r7, r8, r10, pc} 688.L103: 689 movs r3, #0 690 str r10, [r6, #8] 691 str r3, [r6] 692 mov r0, #300 693 ldrsb r3, [r7, r4] 694 adds r4, r4, #1 695 str r3, [r6] 696 ldrsb r3, [r5, #1]! 697 str r3, [r6] 698 bl udelay 699 b .L102 700.L105: 701 .align 2 702.L104: 703 .word .LANCHOR14 704 .word .LANCHOR13 705 .size SamsungSetRRPara, .-SamsungSetRRPara 706 .global __aeabi_uidiv 707 .global __aeabi_uidivmod 708 .section .text.LogAddr2PhyAddr,"ax",%progbits 709 .align 1 710 .global LogAddr2PhyAddr 711 .syntax unified 712 .thumb 713 .thumb_func 714 .fpu softvfp 715 .type LogAddr2PhyAddr, %function 716LogAddr2PhyAddr: 717 @ args = 4, pretend = 0, frame = 8 718 @ frame_needed = 0, uses_anonymous_args = 0 719 push {r0, r1, r4, r5, r6, r7, r8, r10, fp, lr} 720 mov r6, r3 721 ldr r3, .L111 722 mov r8, r1 723 mov r7, r2 724 mov r5, r0 725 ldrh r4, [r3, #14] 726 ldrh r3, [r3, #12] 727 smulbb r4, r4, r3 728 ldr r3, .L111+4 729 ldrh fp, [r3] 730 uxth r4, r4 731 ldr r3, .L111+8 732 ldrb r3, [r3] @ zero_extendqisi2 733 cmp r3, #1 734 ldr r3, [r0, #4] 735 it eq 736 lsleq r1, fp, #1 737 ubfx r2, r3, #10, #16 738 it eq 739 uxtheq fp, r1 740 mov r0, r2 741 str r3, [sp, #4] 742 mov r1, r4 743 str r2, [sp] 744 bl __aeabi_uidiv 745 ldr r2, [sp] 746 uxth r10, r0 747 mov r1, r4 748 mov r0, r2 749 bl __aeabi_uidivmod 750 ldr r3, [sp, #4] 751 cmp r8, #1 752 uxth r1, r1 753 ubfx r3, r3, #0, #10 754 bne .L108 755 ldr r2, .L111+12 756 ldrb r2, [r2] @ zero_extendqisi2 757 cbnz r2, .L108 758 ldr r2, .L111+16 759 ldrh r3, [r2, r3, lsl #1] 760.L108: 761 ldr r2, .L111+20 762 ldr r2, [r2, r10, lsl #2] 763 mla r1, fp, r1, r2 764 add r1, r1, r3 765 ldrb r3, [sp, #40] @ zero_extendqisi2 766 str r1, [r7] 767 str r10, [r6] 768 cmp r3, #1 769 bls .L110 770 ldr r0, [r5, #4] 771 ldr r3, [r5, #40] 772 add r0, r0, #1024 773 subs r3, r0, r3 774 rsbs r0, r3, #0 775 adcs r0, r0, r3 776.L109: 777 add sp, sp, #8 778 @ sp needed 779 pop {r4, r5, r6, r7, r8, r10, fp, pc} 780.L110: 781 movs r0, #0 782 b .L109 783.L112: 784 .align 2 785.L111: 786 .word .LANCHOR15 787 .word .LANCHOR3 788 .word .LANCHOR1 789 .word .LANCHOR8 790 .word .LANCHOR16 791 .word .LANCHOR17 792 .size LogAddr2PhyAddr, .-LogAddr2PhyAddr 793 .section .text.FlashReadStatusEN,"ax",%progbits 794 .align 1 795 .global FlashReadStatusEN 796 .syntax unified 797 .thumb 798 .thumb_func 799 .fpu softvfp 800 .type FlashReadStatusEN, %function 801FlashReadStatusEN: 802 @ args = 0, pretend = 0, frame = 0 803 @ frame_needed = 0, uses_anonymous_args = 0 804 ldr r3, .L125 805 push {r4, r5, r6, lr} 806 ldr r5, [r3, r0, lsl #3] 807 add r3, r3, r0, lsl #3 808 ldrb r4, [r3, #4] @ zero_extendqisi2 809 ldr r3, .L125+4 810 ldr r3, [r3] 811 ldrb r3, [r3, #8] @ zero_extendqisi2 812 cmp r3, #2 813 lsl r3, r4, #8 814 add r4, r4, #8 815 bne .L114 816 ldr r0, .L125+8 817 cbnz r2, .L115 818 ldrb r2, [r0, #13] @ zero_extendqisi2 819.L124: 820 add r3, r3, r5 821 str r2, [r3, #2056] 822 ldrb r0, [r0, #15] @ zero_extendqisi2 823 cbz r0, .L119 824 add r6, r5, r4, lsl #8 825 movs r2, #0 826.L118: 827 cmp r2, r0 828 bcc .L120 829.L119: 830 lsls r4, r4, #8 831 movs r0, #80 832 bl udelay 833 ldr r0, [r5, r4] 834 uxtb r0, r0 835 pop {r4, r5, r6, pc} 836.L115: 837 ldrb r2, [r0, #14] @ zero_extendqisi2 838 b .L124 839.L120: 840 lsls r3, r2, #3 841 adds r2, r2, #1 842 lsr r3, r1, r3 843 uxtb r3, r3 844 str r3, [r6, #4] 845 b .L118 846.L114: 847 add r3, r3, r5 848 movs r2, #112 849 str r2, [r3, #2056] 850 b .L119 851.L126: 852 .align 2 853.L125: 854 .word .LANCHOR6 855 .word .LANCHOR18 856 .word .LANCHOR7 857 .size FlashReadStatusEN, .-FlashReadStatusEN 858 .section .text.FlashWaitReadyEN,"ax",%progbits 859 .align 1 860 .global FlashWaitReadyEN 861 .syntax unified 862 .thumb 863 .thumb_func 864 .fpu softvfp 865 .type FlashWaitReadyEN, %function 866FlashWaitReadyEN: 867 @ args = 0, pretend = 0, frame = 0 868 @ frame_needed = 0, uses_anonymous_args = 0 869 push {r4, r5, r6, lr} 870 mov r4, r0 871 mov r5, r1 872 mov r6, r2 873.L131: 874 mov r2, r6 875 mov r1, r5 876 mov r0, r4 877 bl FlashReadStatusEN 878 cmp r0, #255 879 mov r3, r0 880 beq .L131 881 lsls r3, r3, #25 882 bpl .L131 883 pop {r4, r5, r6, pc} 884 .size FlashWaitReadyEN, .-FlashWaitReadyEN 885 .section .text.NandcReadDontCaseBusyEn,"ax",%progbits 886 .align 1 887 .global NandcReadDontCaseBusyEn 888 .syntax unified 889 .thumb 890 .thumb_func 891 .fpu softvfp 892 .type NandcReadDontCaseBusyEn, %function 893NandcReadDontCaseBusyEn: 894 @ args = 0, pretend = 0, frame = 0 895 @ frame_needed = 0, uses_anonymous_args = 0 896 @ link register save eliminated. 897 bx lr 898 .size NandcReadDontCaseBusyEn, .-NandcReadDontCaseBusyEn 899 .section .text.NandcGetChipIf,"ax",%progbits 900 .align 1 901 .global NandcGetChipIf 902 .syntax unified 903 .thumb 904 .thumb_func 905 .fpu softvfp 906 .type NandcGetChipIf, %function 907NandcGetChipIf: 908 @ args = 0, pretend = 0, frame = 0 909 @ frame_needed = 0, uses_anonymous_args = 0 910 @ link register save eliminated. 911 ldr r2, .L136 912 add r3, r2, r0, lsl #3 913 ldr r0, [r2, r0, lsl #3] 914 ldrb r3, [r3, #4] @ zero_extendqisi2 915 adds r3, r3, #8 916 add r0, r0, r3, lsl #8 917 bx lr 918.L137: 919 .align 2 920.L136: 921 .word .LANCHOR6 922 .size NandcGetChipIf, .-NandcGetChipIf 923 .section .text.NandcSetDdrPara,"ax",%progbits 924 .align 1 925 .global NandcSetDdrPara 926 .syntax unified 927 .thumb 928 .thumb_func 929 .fpu softvfp 930 .type NandcSetDdrPara, %function 931NandcSetDdrPara: 932 @ args = 0, pretend = 0, frame = 0 933 @ frame_needed = 0, uses_anonymous_args = 0 934 @ link register save eliminated. 935 ldr r3, .L139 936 ldr r2, [r3] 937 lsls r3, r0, #8 938 orr r0, r3, r0, lsl #16 939 orr r0, r0, #1 940 str r0, [r2, #304] 941 bx lr 942.L140: 943 .align 2 944.L139: 945 .word .LANCHOR19 946 .size NandcSetDdrPara, .-NandcSetDdrPara 947 .section .text.NandcSetDdrDiv,"ax",%progbits 948 .align 1 949 .global NandcSetDdrDiv 950 .syntax unified 951 .thumb 952 .thumb_func 953 .fpu softvfp 954 .type NandcSetDdrDiv, %function 955NandcSetDdrDiv: 956 @ args = 0, pretend = 0, frame = 0 957 @ frame_needed = 0, uses_anonymous_args = 0 958 @ link register save eliminated. 959 ldr r3, .L142 960 orr r0, r0, #16640 961 ldr r3, [r3] 962 str r0, [r3, #344] 963 bx lr 964.L143: 965 .align 2 966.L142: 967 .word .LANCHOR19 968 .size NandcSetDdrDiv, .-NandcSetDdrDiv 969 .section .text.NandcSetDdrMode,"ax",%progbits 970 .align 1 971 .global NandcSetDdrMode 972 .syntax unified 973 .thumb 974 .thumb_func 975 .fpu softvfp 976 .type NandcSetDdrMode, %function 977NandcSetDdrMode: 978 @ args = 0, pretend = 0, frame = 0 979 @ frame_needed = 0, uses_anonymous_args = 0 980 @ link register save eliminated. 981 ldr r3, .L147 982 ldr r2, [r3] 983 ldr r3, [r2] 984 cbnz r0, .L145 985 bfi r3, r0, #13, #1 986.L146: 987 str r3, [r2] 988 bx lr 989.L145: 990 orr r3, r3, #253952 991 b .L146 992.L148: 993 .align 2 994.L147: 995 .word .LANCHOR19 996 .size NandcSetDdrMode, .-NandcSetDdrMode 997 .section .text.NandcSetMode,"ax",%progbits 998 .align 1 999 .global NandcSetMode 1000 .syntax unified 1001 .thumb 1002 .thumb_func 1003 .fpu softvfp 1004 .type NandcSetMode, %function 1005NandcSetMode: 1006 @ args = 0, pretend = 0, frame = 0 1007 @ frame_needed = 0, uses_anonymous_args = 0 1008 @ link register save eliminated. 1009 ldr r3, .L156 1010 ands r1, r0, #6 1011 ldr r2, [r3] 1012 ldr r3, [r2] 1013 beq .L150 1014 lsls r1, r0, #29 1015 movw r1, #16641 1016 str r1, [r2, #344] 1017 orr r3, r3, #24576 1018 ldr r1, .L156+4 1019 bfc r3, #15, #1 1020 orr r3, r3, #196608 1021 it mi 1022 orrmi r3, r3, #32768 1023 str r1, [r2, #304] 1024 movs r1, #38 1025 str r1, [r2, #308] 1026 movs r1, #39 1027 str r1, [r2, #308] 1028.L152: 1029 str r3, [r2] 1030 movs r0, #0 1031 bx lr 1032.L150: 1033 bfi r3, r1, #13, #1 1034 b .L152 1035.L157: 1036 .align 2 1037.L156: 1038 .word .LANCHOR19 1039 .word 1710595 1040 .size NandcSetMode, .-NandcSetMode 1041 .section .text.NandcFlashCs,"ax",%progbits 1042 .align 1 1043 .global NandcFlashCs 1044 .syntax unified 1045 .thumb 1046 .thumb_func 1047 .fpu softvfp 1048 .type NandcFlashCs, %function 1049NandcFlashCs: 1050 @ args = 0, pretend = 0, frame = 0 1051 @ frame_needed = 0, uses_anonymous_args = 0 1052 @ link register save eliminated. 1053 ldr r3, .L159 1054 movs r2, #1 1055 ldr r1, [r3, r0, lsl #3] 1056 add r0, r3, r0, lsl #3 1057 ldrb r0, [r0, #4] @ zero_extendqisi2 1058 ldr r3, [r1] 1059 lsls r2, r2, r0 1060 bfi r3, r2, #0, #8 1061 str r3, [r1] 1062 bx lr 1063.L160: 1064 .align 2 1065.L159: 1066 .word .LANCHOR6 1067 .size NandcFlashCs, .-NandcFlashCs 1068 .section .text.NandcFlashDeCs,"ax",%progbits 1069 .align 1 1070 .global NandcFlashDeCs 1071 .syntax unified 1072 .thumb 1073 .thumb_func 1074 .fpu softvfp 1075 .type NandcFlashDeCs, %function 1076NandcFlashDeCs: 1077 @ args = 0, pretend = 0, frame = 0 1078 @ frame_needed = 0, uses_anonymous_args = 0 1079 @ link register save eliminated. 1080 ldr r3, .L162 1081 ldr r2, [r3, r0, lsl #3] 1082 ldr r3, [r2] 1083 bfc r3, #0, #8 1084 bfc r3, #17, #1 1085 str r3, [r2] 1086 bx lr 1087.L163: 1088 .align 2 1089.L162: 1090 .word .LANCHOR6 1091 .size NandcFlashDeCs, .-NandcFlashDeCs 1092 .section .text.HynixSetRRPara,"ax",%progbits 1093 .align 1 1094 .global HynixSetRRPara 1095 .syntax unified 1096 .thumb 1097 .thumb_func 1098 .fpu softvfp 1099 .type HynixSetRRPara, %function 1100HynixSetRRPara: 1101 @ args = 0, pretend = 0, frame = 8 1102 @ frame_needed = 0, uses_anonymous_args = 0 1103 push {r0, r1, r4, r5, r6, r7, r8, r10, fp, lr} 1104 mov r7, r3 1105 ldr r3, .L171 1106 mov r5, r0 1107 mov r6, r1 1108 mov r10, r2 1109 ldr r4, .L171+4 1110 ldr r3, [r3] 1111 ldrb r3, [r3, #19] @ zero_extendqisi2 1112 cmp r3, #6 1113 bne .L165 1114 movs r3, #20 1115 add r3, r3, r0, lsl #6 1116 add r3, r3, r7, lsl #2 1117.L170: 1118 add r4, r4, r3 1119.L166: 1120 ldr r3, .L171+8 1121 mov r0, r5 1122 subs r6, r6, #1 1123 subs r4, r4, #1 1124 add r6, r6, r10 1125 ldr r8, [r3, r5, lsl #3] 1126 add r3, r3, r5, lsl #3 1127 ldrb fp, [r3, #4] @ zero_extendqisi2 1128 bl NandcFlashCs 1129 movs r3, #54 1130 lsl fp, fp, #8 1131 add r0, r8, fp 1132 str r3, [r0, #2056] 1133 add r3, r10, #-1 1134 mov r10, r0 1135.L168: 1136 cmp r3, r6 1137 bne .L169 1138 movs r3, #22 1139 add r8, r8, fp 1140 str r3, [r8, #2056] 1141 mov r0, r5 1142 bl NandcFlashDeCs 1143 ldr r3, .L171+12 1144 strb r7, [r3, r5] 1145 add sp, sp, #8 1146 @ sp needed 1147 pop {r4, r5, r6, r7, r8, r10, fp, pc} 1148.L165: 1149 cmp r3, #7 1150 bne .L167 1151 movs r3, #160 1152 movs r2, #28 1153 smlabb r2, r3, r0, r2 1154 movs r3, #10 1155 smlabb r3, r3, r7, r2 1156 b .L170 1157.L167: 1158 adds r3, r7, #2 1159 add r3, r3, r0, lsl #3 1160 add r4, r4, r3, lsl #3 1161 adds r4, r4, #4 1162 b .L166 1163.L169: 1164 ldrb r2, [r3, #1]! @ zero_extendqisi2 1165 movs r0, #200 1166 str r2, [r10, #2052] 1167 str r3, [sp, #4] 1168 bl udelay 1169 ldrsb r2, [r4, #1]! 1170 ldr r3, [sp, #4] 1171 str r2, [r10, #2048] 1172 b .L168 1173.L172: 1174 .align 2 1175.L171: 1176 .word .LANCHOR18 1177 .word .LANCHOR20 1178 .word .LANCHOR6 1179 .word .LANCHOR21 1180 .size HynixSetRRPara, .-HynixSetRRPara 1181 .section .text.FlashSetReadRetryDefault,"ax",%progbits 1182 .align 1 1183 .global FlashSetReadRetryDefault 1184 .syntax unified 1185 .thumb 1186 .thumb_func 1187 .fpu softvfp 1188 .type FlashSetReadRetryDefault, %function 1189FlashSetReadRetryDefault: 1190 @ args = 0, pretend = 0, frame = 0 1191 @ frame_needed = 0, uses_anonymous_args = 0 1192 ldr r3, .L179 1193 push {r4, r5, r6, lr} 1194 ldr r3, [r3] 1195 ldrb r3, [r3, #19] @ zero_extendqisi2 1196 subs r3, r3, #1 1197 cmp r3, #6 1198 bhi .L173 1199 ldr r5, .L179+4 1200 movs r4, #0 1201 adds r6, r5, #4 1202.L176: 1203 ldr r3, .L179+8 1204 uxtb r0, r4 1205 ldrb r3, [r3, r4, lsl #3] @ zero_extendqisi2 1206 cmp r3, #173 1207 bne .L175 1208 movs r3, #0 1209 mov r2, r6 1210 ldrb r1, [r5, #1] @ zero_extendqisi2 1211 bl HynixSetRRPara 1212.L175: 1213 adds r4, r4, #1 1214 cmp r4, #4 1215 bne .L176 1216.L173: 1217 pop {r4, r5, r6, pc} 1218.L180: 1219 .align 2 1220.L179: 1221 .word .LANCHOR18 1222 .word .LANCHOR20 1223 .word .LANCHOR22 1224 .size FlashSetReadRetryDefault, .-FlashSetReadRetryDefault 1225 .section .text.FlashWaitCmdDone,"ax",%progbits 1226 .align 1 1227 .global FlashWaitCmdDone 1228 .syntax unified 1229 .thumb 1230 .thumb_func 1231 .fpu softvfp 1232 .type FlashWaitCmdDone, %function 1233FlashWaitCmdDone: 1234 @ args = 0, pretend = 0, frame = 0 1235 @ frame_needed = 0, uses_anonymous_args = 0 1236 ldr r2, .L188 1237 lsls r3, r0, #4 1238 push {r4, r5, r6, lr} 1239 mov r6, r0 1240 adds r4, r2, r3 1241 ldr r1, [r4, #8] 1242 cbz r1, .L183 1243 ldrb r5, [r2, r3] @ zero_extendqisi2 1244 mov r0, r5 1245 bl NandcFlashCs 1246 ldr r3, .L188+4 1247 mov r0, r5 1248 ldr r1, [r4, #4] 1249 ldr r2, [r3, r6, lsl #2] 1250 adds r2, r2, #0 1251 it ne 1252 movne r2, #1 1253 bl FlashWaitReadyEN 1254 mov r1, r0 1255 mov r0, r5 1256 bl NandcFlashDeCs 1257 ldr r3, [r4, #8] 1258 sbfx r1, r1, #0, #1 1259 ldr r2, [r4, #12] 1260 str r1, [r3] 1261 movs r3, #0 1262 str r3, [r4, #8] 1263 cbz r2, .L183 1264 str r1, [r2] 1265 str r3, [r4, #12] 1266.L183: 1267 movs r0, #0 1268 pop {r4, r5, r6, pc} 1269.L189: 1270 .align 2 1271.L188: 1272 .word .LANCHOR23 1273 .word .LANCHOR17 1274 .size FlashWaitCmdDone, .-FlashWaitCmdDone 1275 .section .text.NandcDelayns,"ax",%progbits 1276 .align 1 1277 .global NandcDelayns 1278 .syntax unified 1279 .thumb 1280 .thumb_func 1281 .fpu softvfp 1282 .type NandcDelayns, %function 1283NandcDelayns: 1284 @ args = 0, pretend = 0, frame = 0 1285 @ frame_needed = 0, uses_anonymous_args = 0 1286 push {r3, lr} 1287 bl udelay 1288 movs r0, #0 1289 pop {r3, pc} 1290 .size NandcDelayns, .-NandcDelayns 1291 .section .text.NandcWaitFlashReady,"ax",%progbits 1292 .align 1 1293 .global NandcWaitFlashReady 1294 .syntax unified 1295 .thumb 1296 .thumb_func 1297 .fpu softvfp 1298 .type NandcWaitFlashReady, %function 1299NandcWaitFlashReady: 1300 @ args = 0, pretend = 0, frame = 8 1301 @ frame_needed = 0, uses_anonymous_args = 0 1302 ldr r3, .L196 1303 push {r0, r1, r2, r4, r5, lr} 1304 ldr r4, .L196+4 1305 ldr r5, [r3, r0, lsl #3] 1306.L193: 1307 movs r0, #100 1308 bl udelay 1309 ldr r3, [r5] 1310 str r3, [sp, #4] 1311 ldr r3, [sp, #4] 1312 lsls r3, r3, #22 1313 bmi .L194 1314 subs r4, r4, #1 1315 bne .L193 1316 mov r0, #-1 1317.L191: 1318 add sp, sp, #12 1319 @ sp needed 1320 pop {r4, r5, pc} 1321.L194: 1322 movs r0, #0 1323 b .L191 1324.L197: 1325 .align 2 1326.L196: 1327 .word .LANCHOR6 1328 .word 100000 1329 .size NandcWaitFlashReady, .-NandcWaitFlashReady 1330 .section .text.FlashReset,"ax",%progbits 1331 .align 1 1332 .global FlashReset 1333 .syntax unified 1334 .thumb 1335 .thumb_func 1336 .fpu softvfp 1337 .type FlashReset, %function 1338FlashReset: 1339 @ args = 0, pretend = 0, frame = 0 1340 @ frame_needed = 0, uses_anonymous_args = 0 1341 ldr r3, .L199 1342 push {r4, r5, r6, lr} 1343 mov r4, r0 1344 ldr r5, [r3, r0, lsl #3] 1345 add r3, r3, r0, lsl #3 1346 ldrb r6, [r3, #4] @ zero_extendqisi2 1347 bl NandcFlashCs 1348 movs r3, #255 1349 mov r0, r4 1350 add r5, r5, r6, lsl #8 1351 str r3, [r5, #2056] 1352 bl NandcWaitFlashReady 1353 mov r0, r4 1354 pop {r4, r5, r6, lr} 1355 b NandcFlashDeCs 1356.L200: 1357 .align 2 1358.L199: 1359 .word .LANCHOR6 1360 .size FlashReset, .-FlashReset 1361 .section .text.FlashEraseBlock,"ax",%progbits 1362 .align 1 1363 .global FlashEraseBlock 1364 .syntax unified 1365 .thumb 1366 .thumb_func 1367 .fpu softvfp 1368 .type FlashEraseBlock, %function 1369FlashEraseBlock: 1370 @ args = 0, pretend = 0, frame = 0 1371 @ frame_needed = 0, uses_anonymous_args = 0 1372 push {r4, r5, r6, lr} 1373 mov r4, r0 1374 mov r5, r1 1375 mov r6, r2 1376 bl NandcWaitFlashReady 1377 mov r0, r4 1378 bl NandcFlashCs 1379 mov r2, r6 1380 mov r1, r5 1381 mov r0, r4 1382 bl FlashEraseCmd 1383 mov r0, r4 1384 bl NandcWaitFlashReady 1385 mov r1, r5 1386 mov r0, r4 1387 bl FlashReadStatus 1388 mov r1, r0 1389 mov r0, r4 1390 bl NandcFlashDeCs 1391 and r0, r1, #1 1392 pop {r4, r5, r6, pc} 1393 .size FlashEraseBlock, .-FlashEraseBlock 1394 .section .text.FlashSetInterfaceMode,"ax",%progbits 1395 .align 1 1396 .global FlashSetInterfaceMode 1397 .syntax unified 1398 .thumb 1399 .thumb_func 1400 .fpu softvfp 1401 .type FlashSetInterfaceMode, %function 1402FlashSetInterfaceMode: 1403 @ args = 0, pretend = 0, frame = 8 1404 @ frame_needed = 0, uses_anonymous_args = 0 1405 ldr r3, .L230 1406 mov ip, #128 1407 push {r0, r1, r4, r5, r6, r7, r8, r10, fp, lr} 1408 movs r5, #0 1409 movs r7, #239 1410 mov lr, #1 1411 mov r8, #35 1412 mov r10, #32 1413 ldrb r3, [r3] @ zero_extendqisi2 1414 and r2, r3, #4 1415 and r3, r3, #1 1416 str r2, [sp] 1417 mov r2, r5 1418 str r3, [sp, #4] 1419.L212: 1420 ldr r3, .L230+4 1421 ldrb r4, [r5, r3] @ zero_extendqisi2 1422 cmp r4, #152 1423 beq .L203 1424 cmp r4, #69 1425 beq .L203 1426 cmp r4, #173 1427 beq .L203 1428 cmp r4, #44 1429 bne .L204 1430.L203: 1431 ldr r3, .L230+8 1432 cmp r0, #1 1433 ldr r1, [r5, r3] 1434 add r3, r3, r5 1435 ldrb r3, [r3, #4] @ zero_extendqisi2 1436 bne .L205 1437 ldr r6, [sp, #4] 1438 cbz r6, .L204 1439 lsls r3, r3, #8 1440 cmp r4, #173 1441 add fp, r1, r3 1442 str r7, [fp, #2056] 1443 bne .L206 1444 str r0, [fp, #2052] 1445.L229: 1446 str r2, [fp, #2048] 1447 b .L210 1448.L206: 1449 cmp r4, #44 1450 ittet eq 1451 moveq r4, #5 1452 streq r0, [fp, #2052] 1453 strne ip, [fp, #2052] 1454 streq r4, [fp, #2048] 1455 it ne 1456 strne r0, [fp, #2048] 1457.L210: 1458 add r3, r3, r1 1459 str r2, [r3, #2048] 1460 str r2, [r3, #2048] 1461 str r2, [r3, #2048] 1462.L204: 1463 adds r5, r5, #8 1464 cmp r5, #32 1465 bne .L212 1466 movs r0, #0 1467 bl NandcWaitFlashReady 1468 movs r0, #0 1469 add sp, sp, #8 1470 @ sp needed 1471 pop {r4, r5, r6, r7, r8, r10, fp, pc} 1472.L205: 1473 ldr r6, [sp] 1474 cmp r6, #0 1475 beq .L204 1476 lsls r3, r3, #8 1477 cmp r4, #173 1478 add fp, r1, r3 1479 str r7, [fp, #2056] 1480 bne .L209 1481 str lr, [fp, #2052] 1482 str r10, [fp, #2048] 1483 b .L210 1484.L209: 1485 cmp r4, #44 1486 bne .L211 1487 str lr, [fp, #2052] 1488 str r8, [fp, #2048] 1489 b .L210 1490.L211: 1491 str ip, [fp, #2052] 1492 b .L229 1493.L231: 1494 .align 2 1495.L230: 1496 .word .LANCHOR24 1497 .word .LANCHOR22 1498 .word .LANCHOR6 1499 .size FlashSetInterfaceMode, .-FlashSetInterfaceMode 1500 .section .text.SandiskSetRRPara,"ax",%progbits 1501 .align 1 1502 .global SandiskSetRRPara 1503 .syntax unified 1504 .thumb 1505 .thumb_func 1506 .fpu softvfp 1507 .type SandiskSetRRPara, %function 1508SandiskSetRRPara: 1509 @ args = 0, pretend = 0, frame = 0 1510 @ frame_needed = 0, uses_anonymous_args = 0 1511 push {r3, r4, r5, r6, r7, lr} 1512 movs r3, #239 1513 str r3, [r0, #8] 1514 movs r3, #17 1515 mov r5, r0 1516 mov r4, r1 1517 str r3, [r0, #4] 1518 movs r0, #200 1519 bl udelay 1520 ldr r3, .L238 1521 add r4, r4, r4, lsl #2 1522 ldr r6, .L238+4 1523 movs r2, #0 1524 ldr r7, .L238+8 1525 ldrb r1, [r3] @ zero_extendqisi2 1526 ldr r3, .L238+12 1527 ldrb r0, [r3] @ zero_extendqisi2 1528.L233: 1529 cmp r2, r1 1530 bcc .L236 1531 movs r0, #0 1532 pop {r3, r4, r5, r6, r7, lr} 1533 b NandcWaitFlashReady 1534.L236: 1535 adds r3, r2, r4 1536 cmp r0, #67 1537 ite eq 1538 addeq r3, r3, r7 1539 addne r3, r3, r6 1540 ldrsb r3, [r3, #5] 1541 adds r2, r2, #1 1542 str r3, [r5] 1543 b .L233 1544.L239: 1545 .align 2 1546.L238: 1547 .word .LANCHOR13 1548 .word .LANCHOR11 1549 .word .LANCHOR9 1550 .word .LANCHOR10 1551 .size SandiskSetRRPara, .-SandiskSetRRPara 1552 .section .text.micron_auto_read_calibration_config,"ax",%progbits 1553 .align 1 1554 .global micron_auto_read_calibration_config 1555 .syntax unified 1556 .thumb 1557 .thumb_func 1558 .fpu softvfp 1559 .type micron_auto_read_calibration_config, %function 1560micron_auto_read_calibration_config: 1561 @ args = 0, pretend = 0, frame = 0 1562 @ frame_needed = 0, uses_anonymous_args = 0 1563 push {r4, r5, r6, lr} 1564 mov r5, r0 1565 mov r6, r1 1566 bl NandcWaitFlashReady 1567 ldr r0, .L241 1568 ldr r4, [r0, r5, lsl #3] 1569 add r0, r0, r5, lsl #3 1570 ldrb r3, [r0, #4] @ zero_extendqisi2 1571 movs r0, #200 1572 add r4, r4, r3, lsl #8 1573 movs r3, #239 1574 str r3, [r4, #2056] 1575 movs r3, #150 1576 str r3, [r4, #2052] 1577 bl udelay 1578 movs r3, #0 1579 str r6, [r4, #2048] 1580 str r3, [r4, #2048] 1581 str r3, [r4, #2048] 1582 str r3, [r4, #2048] 1583 pop {r4, r5, r6, pc} 1584.L242: 1585 .align 2 1586.L241: 1587 .word .LANCHOR6 1588 .size micron_auto_read_calibration_config, .-micron_auto_read_calibration_config 1589 .section .text.FlashEraseSLc2KBlocks,"ax",%progbits 1590 .align 1 1591 .global FlashEraseSLc2KBlocks 1592 .syntax unified 1593 .thumb 1594 .thumb_func 1595 .fpu softvfp 1596 .type FlashEraseSLc2KBlocks, %function 1597FlashEraseSLc2KBlocks: 1598 @ args = 0, pretend = 0, frame = 8 1599 @ frame_needed = 0, uses_anonymous_args = 0 1600 push {r4, r5, r6, r7, r8, r10, lr} 1601 mov r7, r1 1602 ldr r8, .L253+12 1603 sub sp, sp, #20 1604 mov r5, r0 1605 movs r6, #0 1606 ldr r10, .L253+16 1607.L244: 1608 cmp r6, r7 1609 bne .L249 1610 movs r0, #0 1611 add sp, sp, #20 1612 @ sp needed 1613 pop {r4, r5, r6, r7, r8, r10, pc} 1614.L249: 1615 subs r3, r7, r6 1616 add r2, sp, #8 1617 uxtb r3, r3 1618 movs r1, #0 1619 mov r0, r5 1620 str r3, [sp] 1621 add r3, sp, #12 1622 bl LogAddr2PhyAddr 1623 ldr r3, [sp, #12] 1624 ldrb r2, [r8] @ zero_extendqisi2 1625 cmp r2, r3 1626 bhi .L245 1627 mov r3, #-1 1628 str r3, [r5] 1629.L246: 1630 adds r6, r6, #1 1631 adds r5, r5, #36 1632 b .L244 1633.L245: 1634 ldrb r4, [r10, r3] @ zero_extendqisi2 1635 lsls r3, r3, #4 1636 ldr r2, .L253 1637 mov r0, r4 1638 strb r4, [r2, r3] 1639 bl NandcWaitFlashReady 1640 mov r0, r4 1641 bl NandcFlashCs 1642 movs r2, #0 1643 ldr r1, [sp, #8] 1644 mov r0, r4 1645 bl FlashEraseCmd 1646 mov r0, r4 1647 bl NandcWaitFlashReady 1648 ldr r1, [sp, #8] 1649 mov r0, r4 1650 bl FlashReadStatus 1651 ldr r3, .L253+4 1652 sbfx r0, r0, #0, #1 1653 str r0, [r5] 1654 movs r2, #0 1655 ldr r1, [sp, #8] 1656 mov r0, r4 1657 ldr r3, [r3] 1658 add r1, r1, r3 1659 bl FlashEraseCmd 1660 mov r0, r4 1661 bl NandcWaitFlashReady 1662 ldr r1, [sp, #8] 1663 mov r0, r4 1664 bl FlashReadStatus 1665 lsls r3, r0, #31 1666 itt mi 1667 movmi r3, #-1 1668 strmi r3, [r5] 1669 ldr r3, [r5] 1670 adds r3, r3, #1 1671 bne .L248 1672 ldr r1, [sp, #8] 1673 ldr r0, .L253+8 1674 bl printf 1675.L248: 1676 mov r0, r4 1677 bl NandcFlashDeCs 1678 b .L246 1679.L254: 1680 .align 2 1681.L253: 1682 .word .LANCHOR23 1683 .word .LANCHOR3 1684 .word .LC1 1685 .word .LANCHOR25 1686 .word .LANCHOR26 1687 .size FlashEraseSLc2KBlocks, .-FlashEraseSLc2KBlocks 1688 .section .text.FlashEraseBlocks,"ax",%progbits 1689 .align 1 1690 .global FlashEraseBlocks 1691 .syntax unified 1692 .thumb 1693 .thumb_func 1694 .fpu softvfp 1695 .type FlashEraseBlocks, %function 1696FlashEraseBlocks: 1697 @ args = 0, pretend = 0, frame = 16 1698 @ frame_needed = 0, uses_anonymous_args = 0 1699 ldr r3, .L286 1700 push {r4, r5, r6, r7, r8, r10, fp, lr} 1701 mov r8, r0 1702 sub sp, sp, #24 1703 mov fp, r1 1704 mov r7, r2 1705 ldrb r4, [r3] @ zero_extendqisi2 1706 cbnz r4, .L256 1707 ldr r10, .L286+8 1708.L257: 1709 cmp r4, r7 1710 bcc .L266 1711 ldr r5, .L286+4 1712 movs r4, #0 1713 ldr r6, .L286+8 1714.L267: 1715 ldr r3, .L286+12 1716 ldrb r3, [r3] @ zero_extendqisi2 1717 cmp r4, r3 1718 bcc .L269 1719 ldr r3, .L286+16 1720 ldr r3, [r3] 1721 cmp r3, #0 1722 bne .L270 1723.L271: 1724 movs r0, #0 1725 b .L255 1726.L256: 1727 mov r1, r2 1728 bl FlashEraseSLc2KBlocks 1729.L255: 1730 add sp, sp, #24 1731 @ sp needed 1732 pop {r4, r5, r6, r7, r8, r10, fp, pc} 1733.L266: 1734 movs r5, #36 1735 add r2, sp, #16 1736 muls r5, r4, r5 1737 movs r1, #0 1738 add r3, r8, r5 1739 str r3, [sp, #12] 1740 subs r3, r7, r4 1741 uxtb r3, r3 1742 ldr r0, [sp, #12] 1743 str r3, [sp] 1744 add r3, sp, #20 1745 bl LogAddr2PhyAddr 1746 ldr r3, .L286+12 1747 mov r6, r0 1748 ldr r0, [sp, #20] 1749 ldrb r3, [r3] @ zero_extendqisi2 1750 cmp r3, r0 1751 bhi .L259 1752 mov r3, #-1 1753 str r3, [r8, r5] 1754.L260: 1755 adds r4, r4, #1 1756 b .L257 1757.L259: 1758 ldr r3, .L286+20 1759 ldrb r3, [r3] @ zero_extendqisi2 1760 cmp r3, #0 1761 add r3, r10, r0, lsl #4 1762 it eq 1763 moveq r6, #0 1764 ldr r3, [r3, #8] 1765 cbz r3, .L262 1766 uxtb r0, r0 1767 bl FlashWaitCmdDone 1768.L262: 1769 ldr r1, [sp, #20] 1770 ldr r0, [sp, #12] 1771 lsls r2, r1, #4 1772 add r3, r10, r2 1773 str r0, [r3, #8] 1774 movs r0, #0 1775 str r0, [r3, #12] 1776 ldr r0, [sp, #16] 1777 str r0, [r3, #4] 1778 cbz r6, .L263 1779 adds r5, r5, #36 1780 add r5, r5, r8 1781 str r5, [r3, #12] 1782.L263: 1783 ldr r3, .L286+24 1784 ldrb r5, [r3, r1] @ zero_extendqisi2 1785 mov r0, r5 1786 strb r5, [r10, r2] 1787 bl NandcFlashCs 1788 cmp fp, #1 1789 mov r0, r5 1790 bne .L264 1791 ldr r3, .L286+4 1792 ldrb r3, [r3] @ zero_extendqisi2 1793 cbz r3, .L264 1794 bl flash_enter_slc_mode 1795.L265: 1796 ldr r3, .L286+28 1797 mov r0, r5 1798 ldr r2, [sp, #20] 1799 add r4, r4, r6 1800 ldr r1, [sp, #16] 1801 ldr r2, [r3, r2, lsl #2] 1802 adds r2, r2, #0 1803 it ne 1804 movne r2, #1 1805 bl FlashWaitReadyEN 1806 mov r2, r6 1807 ldr r1, [sp, #16] 1808 mov r0, r5 1809 bl FlashEraseCmd 1810 mov r0, r5 1811 bl NandcFlashDeCs 1812 b .L260 1813.L264: 1814 bl flash_exit_slc_mode 1815 b .L265 1816.L269: 1817 uxtb r0, r4 1818 bl FlashWaitCmdDone 1819 cmp fp, #1 1820 bne .L268 1821 ldrb r3, [r5] @ zero_extendqisi2 1822 cbz r3, .L268 1823 lsls r3, r4, #4 1824 ldrb r0, [r6, r3] @ zero_extendqisi2 1825 bl flash_exit_slc_mode 1826.L268: 1827 adds r4, r4, #1 1828 b .L267 1829.L270: 1830 ldr r3, .L286+32 1831 ldrb r3, [r3] @ zero_extendqisi2 1832 cmp r3, #69 1833 bne .L271 1834 movs r3, #0 1835 movs r2, #36 1836 mov r1, r3 1837.L272: 1838 cmp r3, r7 1839 beq .L271 1840 mul r0, r2, r3 1841 adds r3, r3, #1 1842 str r1, [r8, r0] 1843 b .L272 1844.L287: 1845 .align 2 1846.L286: 1847 .word .LANCHOR1 1848 .word .LANCHOR8 1849 .word .LANCHOR23 1850 .word .LANCHOR25 1851 .word .LANCHOR28 1852 .word .LANCHOR27 1853 .word .LANCHOR26 1854 .word .LANCHOR17 1855 .word .LANCHOR22 1856 .size FlashEraseBlocks, .-FlashEraseBlocks 1857 .section .text.FlashReadDpCmd,"ax",%progbits 1858 .align 1 1859 .global FlashReadDpCmd 1860 .syntax unified 1861 .thumb 1862 .thumb_func 1863 .fpu softvfp 1864 .type FlashReadDpCmd, %function 1865FlashReadDpCmd: 1866 @ args = 0, pretend = 0, frame = 0 1867 @ frame_needed = 0, uses_anonymous_args = 0 1868 push {r3, r4, r5, r6, r7, r8, r10, lr} 1869 mov r5, r2 1870 ldr r3, .L292 1871 mov r6, r1 1872 uxtb lr, r1 1873 mov r7, r0 1874 lsrs r1, r1, #8 1875 uxtb r8, r5 1876 ldr r10, [r3, r0, lsl #3] 1877 add r3, r3, r0, lsl #3 1878 ldrb r4, [r3, #4] @ zero_extendqisi2 1879 ldr r3, .L292+4 1880 ldrb r2, [r3, #16] @ zero_extendqisi2 1881 lsls r4, r4, #8 1882 ldrb ip, [r3, #8] @ zero_extendqisi2 1883 add r4, r4, r10 1884 ldrb r3, [r3, #9] @ zero_extendqisi2 1885 cmp r2, #1 1886 lsr r2, r6, #16 1887 str ip, [r4, #2056] 1888 bne .L289 1889 mov r10, #0 1890 str r10, [r4, #2052] 1891 str r10, [r4, #2052] 1892 str lr, [r4, #2052] 1893 str r1, [r4, #2052] 1894 str r2, [r4, #2052] 1895 str r3, [r4, #2056] 1896 bl NandcWaitFlashReady 1897 str r10, [r4, #2056] 1898 str r10, [r4, #2052] 1899 str r10, [r4, #2052] 1900.L291: 1901 lsrs r3, r5, #8 1902 lsrs r5, r5, #16 1903 str r8, [r4, #2052] 1904 str r3, [r4, #2052] 1905 movs r3, #48 1906 str r5, [r4, #2052] 1907 mov r1, r6 1908 str r3, [r4, #2056] 1909 mov r0, r7 1910 pop {r3, r4, r5, r6, r7, r8, r10, lr} 1911 b FlashSetRandomizer 1912.L289: 1913 str lr, [r4, #2052] 1914 str r1, [r4, #2052] 1915 str r2, [r4, #2052] 1916 str r3, [r4, #2056] 1917 b .L291 1918.L293: 1919 .align 2 1920.L292: 1921 .word .LANCHOR6 1922 .word .LANCHOR7 1923 .size FlashReadDpCmd, .-FlashReadDpCmd 1924 .section .text.FlashDeInit,"ax",%progbits 1925 .align 1 1926 .global FlashDeInit 1927 .syntax unified 1928 .thumb 1929 .thumb_func 1930 .fpu softvfp 1931 .type FlashDeInit, %function 1932FlashDeInit: 1933 @ args = 0, pretend = 0, frame = 0 1934 @ frame_needed = 0, uses_anonymous_args = 0 1935 push {r4, lr} 1936 movs r0, #0 1937 bl NandcWaitFlashReady 1938 bl FlashSetReadRetryDefault 1939 ldr r3, .L303 1940 ldr r2, [r3] 1941 ldr r3, .L303+4 1942 cmp r2, r3 1943 bne .L295 1944 movs r0, #0 1945 bl flash_enter_slc_mode 1946.L295: 1947 ldr r4, .L303+8 1948 ldrb r3, [r4] @ zero_extendqisi2 1949 cbz r3, .L296 1950 ldr r3, .L303+12 1951 ldrb r3, [r3] @ zero_extendqisi2 1952 lsls r3, r3, #31 1953 bpl .L296 1954 movs r0, #1 1955 bl FlashSetInterfaceMode 1956 movs r0, #1 1957 bl NandcSetMode 1958 movs r3, #0 1959 strb r3, [r4] 1960.L296: 1961 ldr r3, .L303+16 1962 movs r0, #0 1963 ldr r3, [r3] 1964 str r0, [r3, #336] 1965 pop {r4, pc} 1966.L304: 1967 .align 2 1968.L303: 1969 .word .LANCHOR29 1970 .word 1446522928 1971 .word .LANCHOR30 1972 .word .LANCHOR24 1973 .word .LANCHOR6 1974 .size FlashDeInit, .-FlashDeInit 1975 .section .text.NandcRandmzSel,"ax",%progbits 1976 .align 1 1977 .global NandcRandmzSel 1978 .syntax unified 1979 .thumb 1980 .thumb_func 1981 .fpu softvfp 1982 .type NandcRandmzSel, %function 1983NandcRandmzSel: 1984 @ args = 0, pretend = 0, frame = 0 1985 @ frame_needed = 0, uses_anonymous_args = 0 1986 @ link register save eliminated. 1987 ldr r3, .L306 1988 ldr r3, [r3, r0, lsl #3] 1989 str r1, [r3, #336] 1990 bx lr 1991.L307: 1992 .align 2 1993.L306: 1994 .word .LANCHOR6 1995 .size NandcRandmzSel, .-NandcRandmzSel 1996 .section .text.NandcTimeCfg,"ax",%progbits 1997 .align 1 1998 .global NandcTimeCfg 1999 .syntax unified 2000 .thumb 2001 .thumb_func 2002 .fpu softvfp 2003 .type NandcTimeCfg, %function 2004NandcTimeCfg: 2005 @ args = 0, pretend = 0, frame = 0 2006 @ frame_needed = 0, uses_anonymous_args = 0 2007 @ link register save eliminated. 2008 ldr r3, .L313 2009 cmp r0, #35 2010 ldr r3, [r3] 2011 bhi .L309 2012 movw r2, #4193 2013.L312: 2014 str r2, [r3, #4] 2015 bx lr 2016.L309: 2017 cmp r0, #99 2018 ite hi 2019 movwhi r2, #8322 2020 movwls r2, #4225 2021 b .L312 2022.L314: 2023 .align 2 2024.L313: 2025 .word .LANCHOR19 2026 .size NandcTimeCfg, .-NandcTimeCfg 2027 .section .text.FlashTimingCfg,"ax",%progbits 2028 .align 1 2029 .global FlashTimingCfg 2030 .syntax unified 2031 .thumb 2032 .thumb_func 2033 .fpu softvfp 2034 .type FlashTimingCfg, %function 2035FlashTimingCfg: 2036 @ args = 0, pretend = 0, frame = 0 2037 @ frame_needed = 0, uses_anonymous_args = 0 2038 @ link register save eliminated. 2039 ldr r3, .L316 2040 ldrb r0, [r3, #21] @ zero_extendqisi2 2041 b NandcTimeCfg 2042.L317: 2043 .align 2 2044.L316: 2045 .word .LANCHOR31 2046 .size FlashTimingCfg, .-FlashTimingCfg 2047 .section .text.NandcBchSel,"ax",%progbits 2048 .align 1 2049 .global NandcBchSel 2050 .syntax unified 2051 .thumb 2052 .thumb_func 2053 .fpu softvfp 2054 .type NandcBchSel, %function 2055NandcBchSel: 2056 @ args = 0, pretend = 0, frame = 0 2057 @ frame_needed = 0, uses_anonymous_args = 0 2058 ldr r3, .L326 2059 movs r1, #0 2060 push {r4, lr} 2061 movs r4, #16 2062 cmp r0, r4 2063 ldr r2, [r3] 2064 mov r3, #1 2065 str r3, [r2, #8] 2066 ldr r3, .L326+4 2067 str r0, [r3] 2068 mov r3, r1 2069 bfi r3, r4, #8, #8 2070 bfi r3, r1, #18, #1 2071 bne .L319 2072.L322: 2073 bfc r3, #4, #1 2074.L320: 2075 orr r3, r3, #1 2076 str r3, [r2, #12] 2077 pop {r4, pc} 2078.L319: 2079 cmp r0, #24 2080 bne .L321 2081 orr r3, r3, #16 2082 b .L320 2083.L321: 2084 cmp r0, #40 2085 orr r3, r3, #262144 2086 orr r3, r3, #16 2087 bne .L320 2088 b .L322 2089.L327: 2090 .align 2 2091.L326: 2092 .word .LANCHOR19 2093 .word .LANCHOR32 2094 .size NandcBchSel, .-NandcBchSel 2095 .section .text.FlashBchSel,"ax",%progbits 2096 .align 1 2097 .global FlashBchSel 2098 .syntax unified 2099 .thumb 2100 .thumb_func 2101 .fpu softvfp 2102 .type FlashBchSel, %function 2103FlashBchSel: 2104 @ args = 0, pretend = 0, frame = 0 2105 @ frame_needed = 0, uses_anonymous_args = 0 2106 @ link register save eliminated. 2107 ldr r3, .L329 2108 strb r0, [r3] 2109 b NandcBchSel 2110.L330: 2111 .align 2 2112.L329: 2113 .word .LANCHOR33 2114 .size FlashBchSel, .-FlashBchSel 2115 .section .text.NandCIrqEnable,"ax",%progbits 2116 .align 1 2117 .global NandCIrqEnable 2118 .syntax unified 2119 .thumb 2120 .thumb_func 2121 .fpu softvfp 2122 .type NandCIrqEnable, %function 2123NandCIrqEnable: 2124 @ args = 0, pretend = 0, frame = 0 2125 @ frame_needed = 0, uses_anonymous_args = 0 2126 @ link register save eliminated. 2127 bx lr 2128 .size NandCIrqEnable, .-NandCIrqEnable 2129 .section .text.NandCIrqDisable,"ax",%progbits 2130 .align 1 2131 .global NandCIrqDisable 2132 .syntax unified 2133 .thumb 2134 .thumb_func 2135 .fpu softvfp 2136 .type NandCIrqDisable, %function 2137NandCIrqDisable: 2138 @ args = 0, pretend = 0, frame = 0 2139 @ frame_needed = 0, uses_anonymous_args = 0 2140 @ link register save eliminated. 2141 bx lr 2142 .size NandCIrqDisable, .-NandCIrqDisable 2143 .section .text.rk_nandc_get_irq_status,"ax",%progbits 2144 .align 1 2145 .global rk_nandc_get_irq_status 2146 .syntax unified 2147 .thumb 2148 .thumb_func 2149 .fpu softvfp 2150 .type rk_nandc_get_irq_status, %function 2151rk_nandc_get_irq_status: 2152 @ args = 0, pretend = 0, frame = 0 2153 @ frame_needed = 0, uses_anonymous_args = 0 2154 @ link register save eliminated. 2155 ldr r0, [r0, #372] 2156 bx lr 2157 .size rk_nandc_get_irq_status, .-rk_nandc_get_irq_status 2158 .section .text.rk_nandc_flash_ready,"ax",%progbits 2159 .align 1 2160 .global rk_nandc_flash_ready 2161 .syntax unified 2162 .thumb 2163 .thumb_func 2164 .fpu softvfp 2165 .type rk_nandc_flash_ready, %function 2166rk_nandc_flash_ready: 2167 @ args = 0, pretend = 0, frame = 0 2168 @ frame_needed = 0, uses_anonymous_args = 0 2169 @ link register save eliminated. 2170 bx lr 2171 .size rk_nandc_flash_ready, .-rk_nandc_flash_ready 2172 .section .text.NandcIqrWaitFlashReady,"ax",%progbits 2173 .align 1 2174 .global NandcIqrWaitFlashReady 2175 .syntax unified 2176 .thumb 2177 .thumb_func 2178 .fpu softvfp 2179 .type NandcIqrWaitFlashReady, %function 2180NandcIqrWaitFlashReady: 2181 @ args = 0, pretend = 0, frame = 0 2182 @ frame_needed = 0, uses_anonymous_args = 0 2183 @ link register save eliminated. 2184 bx lr 2185 .size NandcIqrWaitFlashReady, .-NandcIqrWaitFlashReady 2186 .section .text.rk_nandc_flash_xfer_completed,"ax",%progbits 2187 .align 1 2188 .global rk_nandc_flash_xfer_completed 2189 .syntax unified 2190 .thumb 2191 .thumb_func 2192 .fpu softvfp 2193 .type rk_nandc_flash_xfer_completed, %function 2194rk_nandc_flash_xfer_completed: 2195 @ args = 0, pretend = 0, frame = 0 2196 @ frame_needed = 0, uses_anonymous_args = 0 2197 @ link register save eliminated. 2198 bx lr 2199 .size rk_nandc_flash_xfer_completed, .-rk_nandc_flash_xfer_completed 2200 .section .text.NandcSendDumpDataStart,"ax",%progbits 2201 .align 1 2202 .global NandcSendDumpDataStart 2203 .syntax unified 2204 .thumb 2205 .thumb_func 2206 .fpu softvfp 2207 .type NandcSendDumpDataStart, %function 2208NandcSendDumpDataStart: 2209 @ args = 0, pretend = 0, frame = 8 2210 @ frame_needed = 0, uses_anonymous_args = 0 2211 @ link register save eliminated. 2212 ldr r2, [r0, #16] 2213 sub sp, sp, #8 2214 ldr r3, .L338 2215 str r2, [sp, #4] 2216 ldr r2, [sp, #4] 2217 bfc r2, #2, #1 2218 str r2, [sp, #4] 2219 ldr r2, [sp, #4] 2220 str r2, [r0, #16] 2221 str r3, [r0, #8] 2222 orr r3, r3, #4 2223 str r3, [r0, #8] 2224 add sp, sp, #8 2225 @ sp needed 2226 bx lr 2227.L339: 2228 .align 2 2229.L338: 2230 .word 538969130 2231 .size NandcSendDumpDataStart, .-NandcSendDumpDataStart 2232 .section .text.NandcSendDumpDataDone,"ax",%progbits 2233 .align 1 2234 .global NandcSendDumpDataDone 2235 .syntax unified 2236 .thumb 2237 .thumb_func 2238 .fpu softvfp 2239 .type NandcSendDumpDataDone, %function 2240NandcSendDumpDataDone: 2241 @ args = 0, pretend = 0, frame = 8 2242 @ frame_needed = 0, uses_anonymous_args = 0 2243 @ link register save eliminated. 2244 sub sp, sp, #8 2245.L341: 2246 ldr r3, [r0, #8] 2247 str r3, [sp, #4] 2248 ldr r3, [sp, #4] 2249 lsls r3, r3, #11 2250 bpl .L341 2251 add sp, sp, #8 2252 @ sp needed 2253 bx lr 2254 .size NandcSendDumpDataDone, .-NandcSendDumpDataDone 2255 .section .text.NandcXferStart,"ax",%progbits 2256 .align 1 2257 .global NandcXferStart 2258 .syntax unified 2259 .thumb 2260 .thumb_func 2261 .fpu softvfp 2262 .type NandcXferStart, %function 2263NandcXferStart: 2264 @ args = 8, pretend = 0, frame = 24 2265 @ frame_needed = 0, uses_anonymous_args = 0 2266 push {r4, r5, r6, r7, r8, r10, fp, lr} 2267 sub sp, sp, #24 2268 mov r7, r1 2269 ldr r1, [sp, #60] 2270 str r2, [sp, #4] 2271 ldr fp, [sp, #56] 2272 cmp r1, #0 2273 bne .L358 2274 adds r5, fp, #0 2275 it ne 2276 movne r5, #1 2277.L345: 2278 ldr r1, .L363 2279 movs r4, #0 2280 ldr r6, [r1, r0, lsl #3] 2281 add r1, r1, r0, lsl #3 2282 movs r0, #16 2283 ldr r8, [r6, #12] 2284 ldrb r1, [r1, #4] @ zero_extendqisi2 2285 bfi r8, r0, #8, #8 2286 bfi r8, r4, #3, #1 2287 bfi r4, r7, #1, #1 2288 bfi r8, r1, #5, #3 2289 orr r4, r4, #8 2290 movs r1, #1 2291 bfi r4, r1, #5, #2 2292 lsrs r3, r3, r1 2293 orr r4, r4, #536870912 2294 orr r4, r4, #1024 2295 bfi r4, r3, #4, #1 2296 ldr r3, .L363+4 2297 ldr r3, [r3] 2298 cmp r3, #3 2299 bls .L346 2300 ldr r3, [r6, #16] 2301 str r3, [sp, #20] 2302 ldr r3, [sp, #20] 2303 bfc r3, #2, #1 2304 str r3, [sp, #20] 2305 cmp r5, #0 2306 beq .L347 2307 ldr r5, .L363+8 2308 cmp r7, #0 2309 bne .L348 2310.L356: 2311 ldr r2, [sp, #4] 2312 adds r2, r2, #1 2313 asrs r2, r2, #1 2314 bfi r4, r2, #22, #6 2315 cmp fp, #0 2316 beq .L349 2317 mov r0, fp 2318.L350: 2319 ldr r3, [r5, #4] 2320 add r1, r0, #63 2321 ubfx r10, r4, #22, #5 2322 bic r1, r1, #63 2323 str r0, [r5, #8] 2324 add r1, r1, r10, lsl #10 2325 str r0, [r5, #16] 2326 bic r0, r0, #63 2327 str r3, [r5, #12] 2328 clz r7, r7 2329 str r3, [r5, #20] 2330 lsrs r7, r7, #5 2331 bl flush_dcache_range 2332 ldr r0, [r5, #20] 2333 add r1, r0, #63 2334 bic r0, r0, #63 2335 bic r1, r1, #63 2336 add r1, r1, r10, lsl #7 2337 bl flush_dcache_range 2338 movs r3, #1 2339 movs r2, #16 2340 str r3, [r5, #24] 2341 tst fp, #3 2342 ldr r3, [r5, #16] 2343 str r3, [r6, #20] 2344 ldr r3, [r5, #20] 2345 str r3, [r6, #24] 2346 mov r3, #0 2347 str r3, [sp, #20] 2348 ldr r3, [sp, #20] 2349 bfi r3, r2, #9, #5 2350 it eq 2351 moveq r2, #2 2352 str r3, [sp, #20] 2353 ldr r3, [sp, #20] 2354 orr r3, r3, #448 2355 str r3, [sp, #20] 2356 ittt eq 2357 ldreq r3, [sp, #20] 2358 bfieq r3, r2, #3, #3 2359 streq r3, [sp, #20] 2360 ldr r3, [sp, #20] 2361 orr r3, r3, #4 2362 str r3, [sp, #20] 2363 ldr r3, [sp, #20] 2364 bfi r3, r7, #1, #1 2365 str r3, [sp, #20] 2366 ldr r3, [sp, #20] 2367 orr r3, r3, #1 2368 str r3, [sp, #20] 2369.L347: 2370 ldr r3, [sp, #20] 2371 str r3, [r6, #16] 2372.L346: 2373 str r8, [r6, #12] 2374 str r4, [r6, #8] 2375 orr r4, r4, #4 2376 str r4, [r6, #8] 2377 add sp, sp, #24 2378 @ sp needed 2379 pop {r4, r5, r6, r7, r8, r10, fp, pc} 2380.L358: 2381 movs r5, #1 2382 b .L345 2383.L348: 2384 ldr r3, .L363+12 2385 movs r1, #0 2386 ldr lr, [r5, #4] 2387 mov r0, r1 2388 ldr r3, [r3] 2389 cmp r3, #25 2390 ite cc 2391 movcc r3, #64 2392 movcs r3, #128 2393 str r3, [sp, #8] 2394 ldr r3, [sp, #4] 2395 lsrs r3, r3, #1 2396 str r3, [sp, #12] 2397 ldr r3, [sp, #60] 2398.L352: 2399 ldr r2, [sp, #12] 2400 cmp r0, r2 2401 bcs .L356 2402 ldr r2, [sp, #60] 2403 bic r10, r1, #3 2404 cbz r2, .L353 2405 ldrh ip, [r3] 2406 adds r3, r3, #4 2407 ldrh r2, [r3, #-2] 2408 orr ip, ip, r2, lsl #16 2409 str ip, [lr, r10] 2410.L354: 2411 ldr r2, [sp, #8] 2412 adds r0, r0, #1 2413 add r1, r1, r2 2414 b .L352 2415.L353: 2416 mov r2, #-1 2417 str r2, [lr, r10] 2418 b .L354 2419.L349: 2420 ldr r3, .L363+8 2421 ldr r0, [r3] 2422 b .L350 2423.L364: 2424 .align 2 2425.L363: 2426 .word .LANCHOR6 2427 .word .LANCHOR34 2428 .word .LANCHOR35 2429 .word .LANCHOR32 2430 .size NandcXferStart, .-NandcXferStart 2431 .section .text.NandcXferComp,"ax",%progbits 2432 .align 1 2433 .global NandcXferComp 2434 .syntax unified 2435 .thumb 2436 .thumb_func 2437 .fpu softvfp 2438 .type NandcXferComp, %function 2439NandcXferComp: 2440 @ args = 0, pretend = 0, frame = 8 2441 @ frame_needed = 0, uses_anonymous_args = 0 2442 ldr r3, .L393 2443 push {r0, r1, r4, lr} 2444 ldr r1, [r3, r0, lsl #3] 2445 ldr r3, .L393+4 2446 ldr r0, [r3] 2447 cmp r0, #3 2448 bls .L386 2449 ldr r3, [r1, #16] 2450 lsls r2, r3, #29 2451 bpl .L386 2452 ldr r3, [r1, #16] 2453 tst r3, #2 2454 ldr r3, [r1, #8] 2455 str r3, [sp] 2456 beq .L373 2457.L369: 2458 ldr r2, [r1, #28] 2459 ldr r3, [sp] 2460 ubfx r2, r2, #16, #5 2461 ubfx r3, r3, #22, #6 2462 cmp r2, r3 2463 bge .L370 2464 cmp r0, #5 2465 bls .L369 2466 ldr r3, [r1] 2467 str r3, [sp, #4] 2468 ldr r3, [sp, #4] 2469 lsls r3, r3, #18 2470 bpl .L369 2471 ldr r3, [sp, #4] 2472 lsls r4, r3, #14 2473 bpl .L369 2474.L370: 2475 ldr r3, .L393+8 2476 movs r2, #0 2477 str r2, [r3, #24] 2478.L365: 2479 add sp, sp, #8 2480 @ sp needed 2481 pop {r4, pc} 2482.L374: 2483 ldr r3, [r1, #8] 2484 str r3, [sp] 2485.L373: 2486 ldr r3, [sp] 2487 lsls r2, r3, #11 2488 bpl .L374 2489 ldr r4, .L393+12 2490 ldr r2, [r4] 2491 cbz r2, .L375 2492 mov r0, r1 2493 bl NandcSendDumpDataStart 2494.L375: 2495 ldr r3, [r4] 2496 cmp r3, #0 2497 beq .L370 2498 mov r0, r1 2499 bl NandcSendDumpDataDone 2500 b .L370 2501.L386: 2502 ldr r3, [r1, #8] 2503 str r3, [sp] 2504 ldr r3, [sp] 2505 lsls r3, r3, #11 2506 bpl .L386 2507 b .L365 2508.L394: 2509 .align 2 2510.L393: 2511 .word .LANCHOR6 2512 .word .LANCHOR34 2513 .word .LANCHOR35 2514 .word .LANCHOR36 2515 .size NandcXferComp, .-NandcXferComp 2516 .section .text.Ftl_log2,"ax",%progbits 2517 .align 1 2518 .global Ftl_log2 2519 .syntax unified 2520 .thumb 2521 .thumb_func 2522 .fpu softvfp 2523 .type Ftl_log2, %function 2524Ftl_log2: 2525 @ args = 0, pretend = 0, frame = 0 2526 @ frame_needed = 0, uses_anonymous_args = 0 2527 @ link register save eliminated. 2528 movs r1, #0 2529 movs r2, #1 2530.L396: 2531 cmp r2, r0 2532 uxth r3, r1 2533 add r1, r1, #1 2534 bls .L397 2535 subs r0, r3, #1 2536 uxth r0, r0 2537 bx lr 2538.L397: 2539 lsls r2, r2, #1 2540 b .L396 2541 .size Ftl_log2, .-Ftl_log2 2542 .section .text.FtlPrintInfo,"ax",%progbits 2543 .align 1 2544 .global FtlPrintInfo 2545 .syntax unified 2546 .thumb 2547 .thumb_func 2548 .fpu softvfp 2549 .type FtlPrintInfo, %function 2550FtlPrintInfo: 2551 @ args = 0, pretend = 0, frame = 0 2552 @ frame_needed = 0, uses_anonymous_args = 0 2553 @ link register save eliminated. 2554 bx lr 2555 .size FtlPrintInfo, .-FtlPrintInfo 2556 .section .text.FtlSysBlkNumInit,"ax",%progbits 2557 .align 1 2558 .global FtlSysBlkNumInit 2559 .syntax unified 2560 .thumb 2561 .thumb_func 2562 .fpu softvfp 2563 .type FtlSysBlkNumInit, %function 2564FtlSysBlkNumInit: 2565 @ args = 0, pretend = 0, frame = 0 2566 @ frame_needed = 0, uses_anonymous_args = 0 2567 @ link register save eliminated. 2568 ldr r3, .L400 2569 cmp r0, #24 2570 it cc 2571 movcc r0, #24 2572 ldr r2, .L400+4 2573 str r0, [r3] 2574 ldr r3, .L400+8 2575 ldrh r3, [r3] 2576 muls r3, r0, r3 2577 str r3, [r2] 2578 ldr r2, .L400+12 2579 ldrh r2, [r2] 2580 subs r0, r2, r0 2581 ldr r2, .L400+16 2582 strh r0, [r2] @ movhi 2583 movs r0, #0 2584 ldr r2, .L400+20 2585 ldr r2, [r2] 2586 subs r3, r2, r3 2587 ldr r2, .L400+24 2588 str r3, [r2] 2589 bx lr 2590.L401: 2591 .align 2 2592.L400: 2593 .word .LANCHOR37 2594 .word .LANCHOR39 2595 .word .LANCHOR38 2596 .word .LANCHOR41 2597 .word .LANCHOR40 2598 .word .LANCHOR43 2599 .word .LANCHOR42 2600 .size FtlSysBlkNumInit, .-FtlSysBlkNumInit 2601 .global __aeabi_idiv 2602 .section .text.FtlConstantsInit,"ax",%progbits 2603 .align 1 2604 .global FtlConstantsInit 2605 .syntax unified 2606 .thumb 2607 .thumb_func 2608 .fpu softvfp 2609 .type FtlConstantsInit, %function 2610FtlConstantsInit: 2611 @ args = 0, pretend = 0, frame = 24 2612 @ frame_needed = 0, uses_anonymous_args = 0 2613 push {r4, r5, r6, r7, r8, r10, fp, lr} 2614 mov r10, r0 2615 ldrh r7, [r0, #8] 2616 sub sp, sp, #24 2617 ldr r3, .L429 2618 ldr r1, .L429+4 2619 ldrh r6, [r10, #14] 2620 ldr r2, .L429+8 2621 strh r7, [r3] @ movhi 2622 ldrh r3, [r0, #10] 2623 ldrh r0, [r0, #12] 2624 strh r6, [r1] @ movhi 2625 str r1, [sp, #20] 2626 ldr r1, .L429+12 2627 ldr r4, .L429+16 2628 strh r0, [r2] @ movhi 2629 movs r2, #0 2630 strh r3, [r4] @ movhi 2631 str r4, [sp, #8] 2632.L403: 2633 strb r2, [r2, r1] 2634 adds r2, r2, #1 2635 cmp r2, #32 2636 bne .L403 2637 ldrh r1, [r10, #14] 2638 ldrh r2, [r10, #20] 2639 cmp r2, r1, lsr #8 2640 bcs .L404 2641 uxtb r8, r0 2642 lsl r2, r8, #1 2643 uxtb r2, r2 2644 str r2, [sp, #4] 2645 subs r2, r3, #1 2646 muls r2, r0, r2 2647 str r2, [sp, #12] 2648 movs r2, #0 2649.L405: 2650 cmp r2, r0 2651 bcs .L407 2652 ldr r4, [sp, #12] 2653 sub fp, r2, r0 2654 uxtb r1, r2 2655 adds r5, r2, r4 2656 ldr r4, .L429+12 2657 add r4, r4, r5 2658 movs r5, #0 2659 mov lr, r4 2660 ldr r4, .L429+12 2661 mov ip, r5 2662 add fp, fp, r4 2663 b .L408 2664.L406: 2665 add r4, r8, r1 2666 strb r1, [fp, r5] 2667 str r4, [sp, #16] 2668 add ip, ip, #1 2669 ldrb r4, [sp, #16] @ zero_extendqisi2 2670 strb r4, [lr, r5] 2671 ldr r4, [sp, #4] 2672 add r1, r1, r4 2673 uxtb r1, r1 2674.L408: 2675 cmp ip, r3 2676 add r5, r5, r0 2677 bcc .L406 2678 adds r2, r2, #1 2679 b .L405 2680.L407: 2681 ldr r2, [sp, #8] 2682 lsls r3, r3, #1 2683 lsrs r6, r6, #1 2684 strh r3, [r2] @ movhi 2685 ldr r3, .L429+4 2686 strh r6, [r3] @ movhi 2687.L404: 2688 ldr r3, .L429+20 2689 movs r2, #5 2690 cmp r7, #1 2691 mov r1, #0 2692 strh r2, [r3] @ movhi 2693 ldr r2, .L429+24 2694 it eq 2695 strheq r7, [r3] @ movhi 2696 ldr r3, .L429+28 2697 strh r1, [r2] @ movhi 2698 mov r1, #4352 2699 strh r1, [r3] @ movhi 2700 ldr r1, .L429+32 2701 ldrb r1, [r1] @ zero_extendqisi2 2702 str r1, [sp, #4] 2703 cbz r1, .L410 2704 mov r1, #384 2705 strh r1, [r3] @ movhi 2706.L410: 2707 ldr r3, [sp, #8] 2708 str r2, [sp, #16] 2709 ldr fp, .L429+120 2710 ldrh r5, [r3] 2711 ldr r3, .L429+36 2712 ldr r8, .L429+124 2713 smulbb r5, r5, r0 2714 uxth r5, r5 2715 strh r5, [r3] @ movhi 2716 ldr r3, [sp, #20] 2717 ldrh r4, [r3] 2718 ldr r3, .L429+40 2719 smulbb r0, r0, r4 2720 uxth r0, r0 2721 strh r0, [r3] @ movhi 2722 bl Ftl_log2 2723 ldr r3, .L429+44 2724 ldrh r6, [r10, #16] 2725 ldrh r1, [r10, #18] 2726 strh r0, [r3] @ movhi 2727 ldr r3, .L429+48 2728 smulbb r0, r5, r6 2729 strh r6, [fp] @ movhi 2730 str r1, [sp, #12] 2731 strh r1, [r3] @ movhi 2732 ldr r3, .L429+52 2733 strh r0, [r3] @ movhi 2734 ldrh r3, [r10, #20] 2735 mov r0, r3 2736 strh r3, [r8] @ movhi 2737 str r3, [sp, #8] 2738 bl Ftl_log2 2739 ldr r3, [sp, #8] 2740 mov r7, r0 2741 ldr ip, .L429+128 2742 cmp r4, #1024 2743 ldr lr, .L429+132 2744 ldr r2, [sp, #16] 2745 strh r0, [ip] @ movhi 2746 lsl r0, r3, #9 2747 ldr r1, [sp, #12] 2748 uxth r0, r0 2749 strh r0, [lr] @ movhi 2750 lsr r0, r0, #8 2751 ldr lr, .L429+136 2752 mul r1, r3, r1 2753 strh r0, [lr] @ movhi 2754 ldrh lr, [r10, #26] 2755 mov r10, ip 2756 ldr r0, .L429+56 2757 strh lr, [r0] @ movhi 2758 mul lr, r4, r5 2759 ldr r0, .L429+60 2760 str lr, [r0] 2761 itt hi 2762 uxtbhi r0, r4 2763 strhhi r0, [r2] @ movhi 2764 ldrh r2, [r2] 2765 subs r2, r4, r2 2766 muls r2, r5, r2 2767 muls r2, r3, r2 2768 muls r6, r2, r6 2769 ldr r2, .L429+64 2770 asrs r6, r6, #11 2771 str r6, [r2] 2772 ldr r6, .L429+28 2773 ldrh r0, [r6] 2774 lsls r0, r0, #3 2775 bl __aeabi_idiv 2776 uxth r0, r0 2777 mov r3, r6 2778 ldr r6, .L429+68 2779 cmp r0, #4 2780 itt ls 2781 movls r2, #4 2782 strhls r2, [r6] @ movhi 2783 ldr r2, [sp, #4] 2784 it hi 2785 strhhi r0, [r6] @ movhi 2786 cbz r2, .L414 2787 mov r2, #640 2788 strh r2, [r3] @ movhi 2789.L414: 2790 ldrh r3, [r3] 2791 lsls r4, r4, #6 2792 ldr r2, .L429+72 2793 mov r1, r5 2794 ldrh r0, [r6] 2795 asrs r3, r3, r7 2796 adds r7, r7, #9 2797 asrs r4, r4, r7 2798 ldr r7, .L429+76 2799 adds r3, r3, #2 2800 strh r3, [r2] @ movhi 2801 ldr r3, .L429+80 2802 strh r4, [r3] @ movhi 2803 uxth r4, r4 2804 mul r3, r4, r5 2805 adds r4, r4, #8 2806 str r3, [r7] 2807 bl __aeabi_uidiv 2808 uxtah r0, r4, r0 2809 ldr r4, .L429+84 2810 cmp r5, #1 2811 ldr r5, .L429+88 2812 it eq 2813 addeq r0, r0, #4 2814 str r0, [r4] 2815 ldrh r0, [r4] 2816 bl FtlSysBlkNumInit 2817 ldr r2, [r4] 2818 movs r0, #24 2819 ldr r3, .L429+92 2820 ldrb r5, [r5] @ zero_extendqisi2 2821 str r2, [r3] 2822 ldr r3, .L429+96 2823 ldr r2, [r3] 2824 ldrh r3, [fp] 2825 lsls r2, r2, #2 2826 muls r3, r2, r3 2827 ldrh r2, [r10] 2828 adds r2, r2, #9 2829 lsrs r3, r3, r2 2830 ldr r2, .L429+100 2831 adds r3, r3, #2 2832 uxth r3, r3 2833 strh r3, [r2] @ movhi 2834 ldr r2, .L429+104 2835 strh r0, [r2] @ movhi 2836 movs r0, #0 2837 ldr r2, .L429+108 2838 str r0, [r2] 2839 ldrh r0, [r6] 2840 adds r2, r0, #3 2841 strh r2, [r6] @ movhi 2842 ldr r2, [r7] 2843 adds r4, r2, #3 2844 str r4, [r7] 2845 cbz r5, .L417 2846 adds r2, r2, #5 2847 adds r0, r0, #4 2848 strh r0, [r6] @ movhi 2849.L428: 2850 str r2, [r7] 2851.L418: 2852 ldr r1, .L429+112 2853 movs r2, #0 2854 strh r2, [r1] @ movhi 2855 ldr r2, .L429+116 2856 ldrh r0, [r2] 2857 lsrs r2, r0, #3 2858 add r2, r2, r0, lsl #1 2859 movs r0, #0 2860 adds r2, r2, #52 2861 add r3, r2, r3, lsl #2 2862 ldrh r2, [r8] 2863 cmp r3, r2, lsl #9 2864 itt cc 2865 movcc r3, #1 2866 strhcc r3, [r1] @ movhi 2867 add sp, sp, #24 2868 @ sp needed 2869 pop {r4, r5, r6, r7, r8, r10, fp, pc} 2870.L417: 2871 cmp r4, #7 2872 bhi .L418 2873 movs r2, #8 2874 b .L428 2875.L430: 2876 .align 2 2877.L429: 2878 .word .LANCHOR44 2879 .word .LANCHOR41 2880 .word .LANCHOR46 2881 .word .LANCHOR47 2882 .word .LANCHOR45 2883 .word .LANCHOR48 2884 .word .LANCHOR49 2885 .word .LANCHOR50 2886 .word .LANCHOR1 2887 .word .LANCHOR38 2888 .word .LANCHOR51 2889 .word .LANCHOR52 2890 .word .LANCHOR54 2891 .word .LANCHOR55 2892 .word .LANCHOR60 2893 .word .LANCHOR43 2894 .word .LANCHOR61 2895 .word .LANCHOR62 2896 .word .LANCHOR63 2897 .word .LANCHOR65 2898 .word .LANCHOR64 2899 .word .LANCHOR37 2900 .word .LANCHOR8 2901 .word .LANCHOR66 2902 .word .LANCHOR42 2903 .word .LANCHOR67 2904 .word .LANCHOR68 2905 .word .LANCHOR69 2906 .word .LANCHOR70 2907 .word .LANCHOR40 2908 .word .LANCHOR53 2909 .word .LANCHOR56 2910 .word .LANCHOR57 2911 .word .LANCHOR58 2912 .word .LANCHOR59 2913 .size FtlConstantsInit, .-FtlConstantsInit 2914 .section .text.IsBlkInVendorPart,"ax",%progbits 2915 .align 1 2916 .global IsBlkInVendorPart 2917 .syntax unified 2918 .thumb 2919 .thumb_func 2920 .fpu softvfp 2921 .type IsBlkInVendorPart, %function 2922IsBlkInVendorPart: 2923 @ args = 0, pretend = 0, frame = 0 2924 @ frame_needed = 0, uses_anonymous_args = 0 2925 @ link register save eliminated. 2926 ldr r3, .L438 2927 ldrh r3, [r3] 2928 cbz r3, .L437 2929 ldr r3, .L438+4 2930 ldr r2, .L438+8 2931 ldr r3, [r3] 2932 ldrh r2, [r2] 2933 add r2, r3, r2, lsl #1 2934.L433: 2935 cmp r3, r2 2936 bne .L434 2937.L437: 2938 movs r0, #0 2939 bx lr 2940.L434: 2941 ldrh r1, [r3], #2 2942 cmp r0, r1 2943 bne .L433 2944 movs r0, #1 2945 bx lr 2946.L439: 2947 .align 2 2948.L438: 2949 .word .LANCHOR71 2950 .word .LANCHOR72 2951 .word .LANCHOR62 2952 .size IsBlkInVendorPart, .-IsBlkInVendorPart 2953 .section .text.FtlGetCap,"ax",%progbits 2954 .align 1 2955 .global FtlGetCap 2956 .syntax unified 2957 .thumb 2958 .thumb_func 2959 .fpu softvfp 2960 .type FtlGetCap, %function 2961FtlGetCap: 2962 @ args = 0, pretend = 0, frame = 0 2963 @ frame_needed = 0, uses_anonymous_args = 0 2964 @ link register save eliminated. 2965 ldr r3, .L441 2966 ldr r0, [r3] 2967 bx lr 2968.L442: 2969 .align 2 2970.L441: 2971 .word .LANCHOR69 2972 .size FtlGetCap, .-FtlGetCap 2973 .section .text.FtlGetCapacity,"ax",%progbits 2974 .align 1 2975 .global FtlGetCapacity 2976 .syntax unified 2977 .thumb 2978 .thumb_func 2979 .fpu softvfp 2980 .type FtlGetCapacity, %function 2981FtlGetCapacity: 2982 @ args = 0, pretend = 0, frame = 0 2983 @ frame_needed = 0, uses_anonymous_args = 0 2984 @ link register save eliminated. 2985 ldr r3, .L444 2986 ldr r0, [r3] 2987 bx lr 2988.L445: 2989 .align 2 2990.L444: 2991 .word .LANCHOR69 2992 .size FtlGetCapacity, .-FtlGetCapacity 2993 .section .text.ftl_get_density,"ax",%progbits 2994 .align 1 2995 .global ftl_get_density 2996 .syntax unified 2997 .thumb 2998 .thumb_func 2999 .fpu softvfp 3000 .type ftl_get_density, %function 3001ftl_get_density: 3002 @ args = 0, pretend = 0, frame = 0 3003 @ frame_needed = 0, uses_anonymous_args = 0 3004 @ link register save eliminated. 3005 ldr r3, .L447 3006 ldr r0, [r3] 3007 bx lr 3008.L448: 3009 .align 2 3010.L447: 3011 .word .LANCHOR69 3012 .size ftl_get_density, .-ftl_get_density 3013 .section .text.FtlGetLpn,"ax",%progbits 3014 .align 1 3015 .global FtlGetLpn 3016 .syntax unified 3017 .thumb 3018 .thumb_func 3019 .fpu softvfp 3020 .type FtlGetLpn, %function 3021FtlGetLpn: 3022 @ args = 0, pretend = 0, frame = 0 3023 @ frame_needed = 0, uses_anonymous_args = 0 3024 @ link register save eliminated. 3025 ldr r3, .L450 3026 ldr r0, [r3] 3027 bx lr 3028.L451: 3029 .align 2 3030.L450: 3031 .word .LANCHOR73 3032 .size FtlGetLpn, .-FtlGetLpn 3033 .section .text.FtlGetCurEraseBlock,"ax",%progbits 3034 .align 1 3035 .global FtlGetCurEraseBlock 3036 .syntax unified 3037 .thumb 3038 .thumb_func 3039 .fpu softvfp 3040 .type FtlGetCurEraseBlock, %function 3041FtlGetCurEraseBlock: 3042 @ args = 0, pretend = 0, frame = 0 3043 @ frame_needed = 0, uses_anonymous_args = 0 3044 @ link register save eliminated. 3045 ldr r2, .L453 3046 ldr r3, .L453+4 3047 ldr r0, [r2] 3048 ldrh r3, [r3] 3049 muls r0, r3, r0 3050 bx lr 3051.L454: 3052 .align 2 3053.L453: 3054 .word .LANCHOR74 3055 .word .LANCHOR38 3056 .size FtlGetCurEraseBlock, .-FtlGetCurEraseBlock 3057 .section .text.FtlGetAllBlockNum,"ax",%progbits 3058 .align 1 3059 .global FtlGetAllBlockNum 3060 .syntax unified 3061 .thumb 3062 .thumb_func 3063 .fpu softvfp 3064 .type FtlGetAllBlockNum, %function 3065FtlGetAllBlockNum: 3066 @ args = 0, pretend = 0, frame = 0 3067 @ frame_needed = 0, uses_anonymous_args = 0 3068 @ link register save eliminated. 3069 ldr r2, .L456 3070 ldr r3, .L456+4 3071 ldrh r0, [r2] 3072 ldrh r3, [r3] 3073 muls r0, r3, r0 3074 bx lr 3075.L457: 3076 .align 2 3077.L456: 3078 .word .LANCHOR38 3079 .word .LANCHOR41 3080 .size FtlGetAllBlockNum, .-FtlGetAllBlockNum 3081 .section .text.FtlBbmMapBadBlock,"ax",%progbits 3082 .align 1 3083 .global FtlBbmMapBadBlock 3084 .syntax unified 3085 .thumb 3086 .thumb_func 3087 .fpu softvfp 3088 .type FtlBbmMapBadBlock, %function 3089FtlBbmMapBadBlock: 3090 @ args = 0, pretend = 0, frame = 0 3091 @ frame_needed = 0, uses_anonymous_args = 0 3092 ldr r3, .L459 3093 push {r0, r1, r2, r4, r5, r6, r7, lr} 3094 mov r5, r0 3095 ldrh r4, [r3] 3096 mov r1, r4 3097 bl __aeabi_uidiv 3098 mov r1, r4 3099 ldr r4, .L459+4 3100 uxth r6, r0 3101 mov r0, r5 3102 bl __aeabi_uidivmod 3103 add r2, r4, r6, lsl #2 3104 uxth r3, r1 3105 ldr r2, [r2, #28] 3106 lsrs r1, r3, #5 3107 and r7, r3, #31 3108 movs r0, #1 3109 lsls r0, r0, r7 3110 ldr r7, [r2, r1, lsl #2] 3111 orrs r0, r0, r7 3112 str r0, [r2, r1, lsl #2] 3113 mov r2, r6 3114 str r0, [sp] 3115 mov r1, r5 3116 ldr r0, .L459+8 3117 bl printf 3118 ldrh r3, [r4, #6] 3119 movs r0, #0 3120 adds r3, r3, #1 3121 strh r3, [r4, #6] @ movhi 3122 add sp, sp, #12 3123 @ sp needed 3124 pop {r4, r5, r6, r7, pc} 3125.L460: 3126 .align 2 3127.L459: 3128 .word .LANCHOR51 3129 .word .LANCHOR75 3130 .word .LC2 3131 .size FtlBbmMapBadBlock, .-FtlBbmMapBadBlock 3132 .section .text.FtlBbmIsBadBlock,"ax",%progbits 3133 .align 1 3134 .global FtlBbmIsBadBlock 3135 .syntax unified 3136 .thumb 3137 .thumb_func 3138 .fpu softvfp 3139 .type FtlBbmIsBadBlock, %function 3140FtlBbmIsBadBlock: 3141 @ args = 0, pretend = 0, frame = 0 3142 @ frame_needed = 0, uses_anonymous_args = 0 3143 ldr r3, .L462 3144 push {r4, r5, r6, lr} 3145 mov r6, r0 3146 ldrh r5, [r3] 3147 mov r1, r5 3148 bl __aeabi_uidivmod 3149 mov r0, r6 3150 uxth r4, r1 3151 mov r1, r5 3152 bl __aeabi_uidiv 3153 ldr r3, .L462+4 3154 uxth r0, r0 3155 lsrs r2, r4, #5 3156 and r4, r4, #31 3157 add r0, r3, r0, lsl #2 3158 ldr r3, [r0, #28] 3159 ldr r0, [r3, r2, lsl #2] 3160 lsrs r0, r0, r4 3161 and r0, r0, #1 3162 pop {r4, r5, r6, pc} 3163.L463: 3164 .align 2 3165.L462: 3166 .word .LANCHOR51 3167 .word .LANCHOR75 3168 .size FtlBbmIsBadBlock, .-FtlBbmIsBadBlock 3169 .section .text.FtlBbtInfoPrint,"ax",%progbits 3170 .align 1 3171 .global FtlBbtInfoPrint 3172 .syntax unified 3173 .thumb 3174 .thumb_func 3175 .fpu softvfp 3176 .type FtlBbtInfoPrint, %function 3177FtlBbtInfoPrint: 3178 @ args = 0, pretend = 0, frame = 0 3179 @ frame_needed = 0, uses_anonymous_args = 0 3180 @ link register save eliminated. 3181 bx lr 3182 .size FtlBbtInfoPrint, .-FtlBbtInfoPrint 3183 .section .text.V2P_block,"ax",%progbits 3184 .align 1 3185 .global V2P_block 3186 .syntax unified 3187 .thumb 3188 .thumb_func 3189 .fpu softvfp 3190 .type V2P_block, %function 3191V2P_block: 3192 @ args = 0, pretend = 0, frame = 0 3193 @ frame_needed = 0, uses_anonymous_args = 0 3194 push {r3, r4, r5, r6, r7, lr} 3195 mov r5, r1 3196 ldr r3, .L466 3197 mov r7, r0 3198 ldrh r6, [r3] 3199 mov r1, r6 3200 bl __aeabi_uidiv 3201 ldr r3, .L466+4 3202 smulbb r5, r6, r5 3203 mov r1, r6 3204 ldrh r4, [r3] 3205 smulbb r4, r4, r0 3206 mov r0, r7 3207 bl __aeabi_uidivmod 3208 adds r0, r5, r1 3209 add r0, r0, r4 3210 uxth r0, r0 3211 pop {r3, r4, r5, r6, r7, pc} 3212.L467: 3213 .align 2 3214.L466: 3215 .word .LANCHOR46 3216 .word .LANCHOR51 3217 .size V2P_block, .-V2P_block 3218 .section .text.P2V_plane,"ax",%progbits 3219 .align 1 3220 .global P2V_plane 3221 .syntax unified 3222 .thumb 3223 .thumb_func 3224 .fpu softvfp 3225 .type P2V_plane, %function 3226P2V_plane: 3227 @ args = 0, pretend = 0, frame = 0 3228 @ frame_needed = 0, uses_anonymous_args = 0 3229 ldr r3, .L469 3230 push {r4, r5, r6, lr} 3231 mov r6, r0 3232 ldrh r5, [r3] 3233 ldr r3, .L469+4 3234 ldrh r1, [r3] 3235 bl __aeabi_uidiv 3236 smulbb r4, r0, r5 3237 mov r1, r5 3238 mov r0, r6 3239 bl __aeabi_uidivmod 3240 add r1, r1, r4 3241 uxth r0, r1 3242 pop {r4, r5, r6, pc} 3243.L470: 3244 .align 2 3245.L469: 3246 .word .LANCHOR46 3247 .word .LANCHOR51 3248 .size P2V_plane, .-P2V_plane 3249 .section .text.P2V_block_in_plane,"ax",%progbits 3250 .align 1 3251 .global P2V_block_in_plane 3252 .syntax unified 3253 .thumb 3254 .thumb_func 3255 .fpu softvfp 3256 .type P2V_block_in_plane, %function 3257P2V_block_in_plane: 3258 @ args = 0, pretend = 0, frame = 0 3259 @ frame_needed = 0, uses_anonymous_args = 0 3260 push {r3, lr} 3261 ldr r3, .L472 3262 ldrh r1, [r3] 3263 bl __aeabi_uidivmod 3264 ldr r3, .L472+4 3265 uxth r0, r1 3266 ldrh r1, [r3] 3267 bl __aeabi_uidiv 3268 uxth r0, r0 3269 pop {r3, pc} 3270.L473: 3271 .align 2 3272.L472: 3273 .word .LANCHOR51 3274 .word .LANCHOR46 3275 .size P2V_block_in_plane, .-P2V_block_in_plane 3276 .section .text.ftl_cmp_data_ver,"ax",%progbits 3277 .align 1 3278 .global ftl_cmp_data_ver 3279 .syntax unified 3280 .thumb 3281 .thumb_func 3282 .fpu softvfp 3283 .type ftl_cmp_data_ver, %function 3284ftl_cmp_data_ver: 3285 @ args = 0, pretend = 0, frame = 0 3286 @ frame_needed = 0, uses_anonymous_args = 0 3287 @ link register save eliminated. 3288 cmp r0, r1 3289 bls .L475 3290 subs r0, r0, r1 3291 cmp r0, #-2147483648 3292 ite hi 3293 movhi r0, #0 3294 movls r0, #1 3295 bx lr 3296.L475: 3297 subs r0, r1, r0 3298 cmp r0, #-2147483648 3299 ite ls 3300 movls r0, #0 3301 movhi r0, #1 3302 bx lr 3303 .size ftl_cmp_data_ver, .-ftl_cmp_data_ver 3304 .section .text.FtlFreeSysBlkQueueEmpty,"ax",%progbits 3305 .align 1 3306 .global FtlFreeSysBlkQueueEmpty 3307 .syntax unified 3308 .thumb 3309 .thumb_func 3310 .fpu softvfp 3311 .type FtlFreeSysBlkQueueEmpty, %function 3312FtlFreeSysBlkQueueEmpty: 3313 @ args = 0, pretend = 0, frame = 0 3314 @ frame_needed = 0, uses_anonymous_args = 0 3315 @ link register save eliminated. 3316 ldr r3, .L478 3317 ldrh r0, [r3, #6] 3318 clz r0, r0 3319 lsrs r0, r0, #5 3320 bx lr 3321.L479: 3322 .align 2 3323.L478: 3324 .word .LANCHOR76 3325 .size FtlFreeSysBlkQueueEmpty, .-FtlFreeSysBlkQueueEmpty 3326 .section .text.FtlFreeSysBlkQueueFull,"ax",%progbits 3327 .align 1 3328 .global FtlFreeSysBlkQueueFull 3329 .syntax unified 3330 .thumb 3331 .thumb_func 3332 .fpu softvfp 3333 .type FtlFreeSysBlkQueueFull, %function 3334FtlFreeSysBlkQueueFull: 3335 @ args = 0, pretend = 0, frame = 0 3336 @ frame_needed = 0, uses_anonymous_args = 0 3337 @ link register save eliminated. 3338 ldr r3, .L481 3339 ldrh r0, [r3, #6] 3340 sub r3, r0, #1024 3341 rsbs r0, r3, #0 3342 adcs r0, r0, r3 3343 bx lr 3344.L482: 3345 .align 2 3346.L481: 3347 .word .LANCHOR76 3348 .size FtlFreeSysBlkQueueFull, .-FtlFreeSysBlkQueueFull 3349 .section .text.FtlFreeSysBlkQueueIn,"ax",%progbits 3350 .align 1 3351 .global FtlFreeSysBlkQueueIn 3352 .syntax unified 3353 .thumb 3354 .thumb_func 3355 .fpu softvfp 3356 .type FtlFreeSysBlkQueueIn, %function 3357FtlFreeSysBlkQueueIn: 3358 @ args = 0, pretend = 0, frame = 0 3359 @ frame_needed = 0, uses_anonymous_args = 0 3360 subs r3, r0, #1 3361 movw r2, #65533 3362 uxth r3, r3 3363 push {r4, r5, r6, lr} 3364 mov r5, r0 3365 cmp r3, r2 3366 bhi .L483 3367 ldr r4, .L492 3368 ldrh r3, [r4, #6] 3369 cmp r3, #1024 3370 beq .L483 3371 cbz r1, .L485 3372 ldr r3, .L492+4 3373 ldr r3, [r3] 3374 cbnz r3, .L485 3375 bl P2V_block_in_plane 3376 ldr r3, .L492+8 3377 mov r6, r0 3378 movs r2, #1 3379 mov r1, r2 3380 ldr r0, [r3] 3381 lsls r3, r5, #10 3382 str r3, [r0, #4] 3383 bl FlashEraseBlocks 3384 ldr r3, .L492+12 3385 ldr r2, [r3] 3386 ldrh r3, [r2, r6, lsl #1] 3387 adds r3, r3, #1 3388 strh r3, [r2, r6, lsl #1] @ movhi 3389 ldr r2, .L492+16 3390 ldr r3, [r2] 3391 adds r3, r3, #1 3392 str r3, [r2] 3393.L485: 3394 ldrh r3, [r4, #6] 3395 adds r3, r3, #1 3396 strh r3, [r4, #6] @ movhi 3397 ldrh r3, [r4, #4] 3398 adds r2, r3, #4 3399 adds r3, r3, #1 3400 ubfx r3, r3, #0, #10 3401 strh r5, [r4, r2, lsl #1] @ movhi 3402 strh r3, [r4, #4] @ movhi 3403.L483: 3404 pop {r4, r5, r6, pc} 3405.L493: 3406 .align 2 3407.L492: 3408 .word .LANCHOR76 3409 .word .LANCHOR77 3410 .word .LANCHOR78 3411 .word .LANCHOR79 3412 .word .LANCHOR80 3413 .size FtlFreeSysBlkQueueIn, .-FtlFreeSysBlkQueueIn 3414 .section .text.FtlFreeSysBLkSort,"ax",%progbits 3415 .align 1 3416 .global FtlFreeSysBLkSort 3417 .syntax unified 3418 .thumb 3419 .thumb_func 3420 .fpu softvfp 3421 .type FtlFreeSysBLkSort, %function 3422FtlFreeSysBLkSort: 3423 @ args = 0, pretend = 0, frame = 0 3424 @ frame_needed = 0, uses_anonymous_args = 0 3425 ldr r3, .L503 3426 push {r4, r5, r6, lr} 3427 ldrh r2, [r3, #6] 3428 cbz r2, .L494 3429 ldr r2, .L503+4 3430 movs r6, #0 3431 ldrh r1, [r3, #2] 3432 mov r5, r6 3433 ldrh r4, [r2, #28] 3434 ldrh r2, [r3, #4] 3435 and r4, r4, #31 3436.L496: 3437 uxth r0, r6 3438 adds r6, r6, #1 3439 cmp r4, r0 3440 bgt .L497 3441 cbz r5, .L494 3442 strh r1, [r3, #2] @ movhi 3443 strh r2, [r3, #4] @ movhi 3444.L494: 3445 pop {r4, r5, r6, pc} 3446.L497: 3447 adds r0, r1, #4 3448 adds r1, r1, #1 3449 ldrh r5, [r3, r0, lsl #1] 3450 adds r0, r2, #4 3451 ubfx r1, r1, #0, #10 3452 strh r5, [r3, r0, lsl #1] @ movhi 3453 movs r5, #1 3454 add r2, r2, r5 3455 ubfx r2, r2, #0, #10 3456 b .L496 3457.L504: 3458 .align 2 3459.L503: 3460 .word .LANCHOR76 3461 .word .LANCHOR81 3462 .size FtlFreeSysBLkSort, .-FtlFreeSysBLkSort 3463 .section .text.FtlFreeSysBlkQueueOut,"ax",%progbits 3464 .align 1 3465 .global FtlFreeSysBlkQueueOut 3466 .syntax unified 3467 .thumb 3468 .thumb_func 3469 .fpu softvfp 3470 .type FtlFreeSysBlkQueueOut, %function 3471FtlFreeSysBlkQueueOut: 3472 @ args = 0, pretend = 0, frame = 0 3473 @ frame_needed = 0, uses_anonymous_args = 0 3474 push {r3, r4, r5, r6, r7, r8, r10, lr} 3475 ldr r4, .L515 3476 mov r6, r4 3477.L506: 3478 ldrh r1, [r4, #6] 3479 cmp r1, #0 3480 beq .L507 3481 ldrh r3, [r4, #2] 3482 subs r1, r1, #1 3483 strh r1, [r4, #6] @ movhi 3484 adds r2, r3, #4 3485 adds r3, r3, #1 3486 ubfx r3, r3, #0, #10 3487 ldrh r5, [r4, r2, lsl #1] 3488 strh r3, [r4, #2] @ movhi 3489 ldr r3, .L515+4 3490 ldr r10, [r3] 3491 cmp r10, #0 3492 bne .L508 3493 ldr r8, .L515+28 3494 mov r0, r5 3495 bl P2V_block_in_plane 3496 mov r7, r0 3497 lsls r3, r5, #10 3498 ldr r0, [r8] 3499 str r3, [r0, #4] 3500 ldr r3, .L515+8 3501 ldrb r3, [r3] @ zero_extendqisi2 3502 cbz r3, .L509 3503 movs r2, #1 3504 mov r1, r10 3505 bl FlashEraseBlocks 3506.L509: 3507 movs r2, #1 3508 ldr r0, [r8] 3509 mov r1, r2 3510 bl FlashEraseBlocks 3511 ldr r3, .L515+12 3512 ldr r2, [r3] 3513 ldrh r3, [r2, r7, lsl #1] 3514 adds r3, r3, #1 3515 strh r3, [r2, r7, lsl #1] @ movhi 3516 ldr r2, .L515+16 3517 ldr r3, [r2] 3518 adds r3, r3, #1 3519 str r3, [r2] 3520.L508: 3521 subs r3, r5, #1 3522 movw r2, #65533 3523 uxth r3, r3 3524 cmp r3, r2 3525 bls .L511 3526 ldrh r2, [r6, #6] 3527 mov r1, r5 3528 ldr r0, .L515+20 3529 bl printf 3530 b .L506 3531.L507: 3532 ldr r0, .L515+24 3533 bl printf 3534.L510: 3535 b .L510 3536.L511: 3537 mov r0, r5 3538 pop {r3, r4, r5, r6, r7, r8, r10, pc} 3539.L516: 3540 .align 2 3541.L515: 3542 .word .LANCHOR76 3543 .word .LANCHOR77 3544 .word .LANCHOR8 3545 .word .LANCHOR79 3546 .word .LANCHOR80 3547 .word .LC4 3548 .word .LC3 3549 .word .LANCHOR78 3550 .size FtlFreeSysBlkQueueOut, .-FtlFreeSysBlkQueueOut 3551 .section .text.test_node_in_list,"ax",%progbits 3552 .align 1 3553 .global test_node_in_list 3554 .syntax unified 3555 .thumb 3556 .thumb_func 3557 .fpu softvfp 3558 .type test_node_in_list, %function 3559test_node_in_list: 3560 @ args = 0, pretend = 0, frame = 0 3561 @ frame_needed = 0, uses_anonymous_args = 0 3562 ldr r3, .L522 3563 push {r4, r5, lr} 3564 movw r5, #65535 3565 ldr r2, [r0] 3566 ldr r4, [r3] 3567 subs r3, r2, r4 3568 asrs r0, r3, #1 3569 ldr r3, .L522+4 3570 muls r3, r0, r3 3571 movs r0, #6 3572 uxth r3, r3 3573.L519: 3574 cmp r3, r1 3575 beq .L520 3576 ldrh r3, [r2] 3577 cmp r3, r5 3578 beq .L521 3579 mla r2, r0, r3, r4 3580 b .L519 3581.L520: 3582 movs r0, #1 3583 pop {r4, r5, pc} 3584.L521: 3585 movs r0, #0 3586 pop {r4, r5, pc} 3587.L523: 3588 .align 2 3589.L522: 3590 .word .LANCHOR82 3591 .word -1431655765 3592 .size test_node_in_list, .-test_node_in_list 3593 .section .text.insert_data_list,"ax",%progbits 3594 .align 1 3595 .global insert_data_list 3596 .syntax unified 3597 .thumb 3598 .thumb_func 3599 .fpu softvfp 3600 .type insert_data_list, %function 3601insert_data_list: 3602 @ args = 0, pretend = 0, frame = 16 3603 @ frame_needed = 0, uses_anonymous_args = 0 3604 push {r0, r1, r2, r3, r4, r5, r6, r7, r8, r10, fp, lr} 3605 ldr r3, .L540 3606 ldrh lr, [r3] 3607 cmp lr, r0 3608 bls .L526 3609 ldr r3, .L540+4 3610 movs r5, #6 3611 ldr r4, [r3] 3612 mul r3, r5, r0 3613 str r3, [sp, #4] 3614 adds r1, r4, r3 3615 ldr r2, [sp, #4] 3616 movw r3, #65535 3617 strh r3, [r1, #2] @ movhi 3618 strh r3, [r4, r2] @ movhi 3619 ldr r3, .L540+8 3620 ldr ip, [r3] 3621 cmp ip, #0 3622 bne .L527 3623.L539: 3624 str r1, [r3] 3625.L526: 3626 movs r0, #0 3627 add sp, sp, #16 3628 @ sp needed 3629 pop {r4, r5, r6, r7, r8, r10, fp, pc} 3630.L527: 3631 ldr r3, .L540+12 3632 lsls r2, r0, #1 3633 ldr r3, [r3] 3634 str r3, [sp, #8] 3635 ldrh r6, [r3, r0, lsl #1] 3636 ldrh r3, [r1, #4] 3637 cbz r3, .L537 3638 mul fp, r3, r6 3639.L528: 3640 sub r3, ip, r4 3641 asrs r6, r3, #1 3642 ldr r3, .L540+16 3643 muls r3, r6, r3 3644 ldr r6, .L540+20 3645 ldr r8, [r6] 3646 movs r6, #0 3647 uxth r3, r3 3648 add r2, r8, r2 3649 str r2, [sp, #12] 3650 mov r2, ip 3651.L535: 3652 adds r6, r6, #1 3653 uxth r6, r6 3654 cmp lr, r6 3655 bcc .L526 3656 cmp r3, r0 3657 beq .L526 3658 ldr r7, [sp, #8] 3659 lsl r10, r3, #1 3660 ldrh r7, [r7, r3, lsl #1] 3661 mov r5, r7 3662 ldrh r7, [r2, #4] 3663 cbz r7, .L538 3664 muls r7, r5, r7 3665.L530: 3666 cmp fp, r7 3667 bne .L531 3668 ldr r5, [sp, #12] 3669 ldrh r10, [r8, r10] 3670 ldrh r7, [r5] 3671 cmp r10, r7 3672 bcc .L533 3673.L532: 3674 ldr r5, [sp, #4] 3675 cmp r2, ip 3676 strh r3, [r4, r5] @ movhi 3677 ldrh r3, [r2, #2] 3678 strh r3, [r1, #2] @ movhi 3679 bne .L536 3680 strh r0, [r2, #2] @ movhi 3681 ldr r3, .L540+8 3682 b .L539 3683.L537: 3684 mov fp, #-1 3685 b .L528 3686.L538: 3687 mov r7, #-1 3688 b .L530 3689.L531: 3690 bcc .L532 3691.L533: 3692 ldrh r7, [r2] 3693 movw r5, #65535 3694 cmp r7, r5 3695 bne .L534 3696 strh r3, [r1, #2] @ movhi 3697 strh r0, [r2] @ movhi 3698 ldr r3, .L540+24 3699 b .L539 3700.L534: 3701 movs r3, #6 3702 mla r2, r3, r7, r4 3703 mov r3, r7 3704 b .L535 3705.L536: 3706 ldrh r1, [r2, #2] 3707 movs r3, #6 3708 muls r3, r1, r3 3709 strh r0, [r4, r3] @ movhi 3710 strh r0, [r2, #2] @ movhi 3711 b .L526 3712.L541: 3713 .align 2 3714.L540: 3715 .word .LANCHOR40 3716 .word .LANCHOR82 3717 .word .LANCHOR83 3718 .word .LANCHOR84 3719 .word -1431655765 3720 .word .LANCHOR79 3721 .word .LANCHOR85 3722 .size insert_data_list, .-insert_data_list 3723 .section .text.INSERT_DATA_LIST,"ax",%progbits 3724 .align 1 3725 .global INSERT_DATA_LIST 3726 .syntax unified 3727 .thumb 3728 .thumb_func 3729 .fpu softvfp 3730 .type INSERT_DATA_LIST, %function 3731INSERT_DATA_LIST: 3732 @ args = 0, pretend = 0, frame = 0 3733 @ frame_needed = 0, uses_anonymous_args = 0 3734 push {r3, lr} 3735 bl insert_data_list 3736 ldr r2, .L544 3737 ldrh r3, [r2] 3738 adds r3, r3, #1 3739 uxth r3, r3 3740 strh r3, [r2] @ movhi 3741 ldr r2, .L544+4 3742 ldrh r2, [r2] 3743 cmp r2, r3 3744 bcs .L542 3745 ldr r1, .L544+8 3746 movs r2, #210 3747 ldr r0, .L544+12 3748 bl printf 3749 ldr r1, .L544+16 3750 ldr r0, .L544+20 3751 pop {r3, lr} 3752 b printf 3753.L542: 3754 pop {r3, pc} 3755.L545: 3756 .align 2 3757.L544: 3758 .word .LANCHOR86 3759 .word .LANCHOR40 3760 .word .LANCHOR87 3761 .word .LC5 3762 .word .LC6 3763 .word .LC7 3764 .size INSERT_DATA_LIST, .-INSERT_DATA_LIST 3765 .section .text.insert_free_list,"ax",%progbits 3766 .align 1 3767 .global insert_free_list 3768 .syntax unified 3769 .thumb 3770 .thumb_func 3771 .fpu softvfp 3772 .type insert_free_list, %function 3773insert_free_list: 3774 @ args = 0, pretend = 0, frame = 0 3775 @ frame_needed = 0, uses_anonymous_args = 0 3776 movw r1, #65535 3777 push {r4, r5, r6, r7, r8, r10, fp, lr} 3778 cmp r0, r1 3779 beq .L547 3780 ldr r3, .L553 3781 mov r10, #6 3782 mul r7, r10, r0 3783 ldr r4, [r3] 3784 ldr r3, .L553+4 3785 adds r5, r4, r7 3786 ldr r6, [r3] 3787 mov lr, r3 3788 strh r1, [r5, #2] @ movhi 3789 strh r1, [r4, r7] @ movhi 3790 cbnz r6, .L548 3791 str r5, [r3] 3792.L547: 3793 movs r0, #0 3794 pop {r4, r5, r6, r7, r8, r10, fp, pc} 3795.L548: 3796 ldr r3, .L553+8 3797 subs r2, r6, r4 3798 mov fp, r1 3799 ldr ip, [r3] 3800 asrs r3, r2, #1 3801 ldr r2, .L553+12 3802 ldrh r8, [ip, r0, lsl #1] 3803 muls r2, r3, r2 3804 mov r3, r6 3805 uxth r2, r2 3806.L551: 3807 ldrh r1, [ip, r2, lsl #1] 3808 cmp r1, r8 3809 bcs .L549 3810 ldrh r1, [r3] 3811 cmp r1, fp 3812 bne .L550 3813 strh r2, [r5, #2] @ movhi 3814 strh r0, [r3] @ movhi 3815 b .L547 3816.L550: 3817 mla r3, r10, r1, r4 3818 mov r2, r1 3819 b .L551 3820.L549: 3821 ldrh r1, [r3, #2] 3822 cmp r3, r6 3823 strh r1, [r5, #2] @ movhi 3824 it ne 3825 ldrhne r1, [r3, #2] 3826 strh r2, [r4, r7] @ movhi 3827 iteet ne 3828 movne r2, #6 3829 strheq r0, [r3, #2] @ movhi 3830 streq r5, [lr] 3831 mulne r2, r2, r1 3832 itt ne 3833 strhne r0, [r4, r2] @ movhi 3834 strhne r0, [r3, #2] @ movhi 3835 b .L547 3836.L554: 3837 .align 2 3838.L553: 3839 .word .LANCHOR82 3840 .word .LANCHOR88 3841 .word .LANCHOR79 3842 .word -1431655765 3843 .size insert_free_list, .-insert_free_list 3844 .section .text.INSERT_FREE_LIST,"ax",%progbits 3845 .align 1 3846 .global INSERT_FREE_LIST 3847 .syntax unified 3848 .thumb 3849 .thumb_func 3850 .fpu softvfp 3851 .type INSERT_FREE_LIST, %function 3852INSERT_FREE_LIST: 3853 @ args = 0, pretend = 0, frame = 0 3854 @ frame_needed = 0, uses_anonymous_args = 0 3855 push {r3, lr} 3856 bl insert_free_list 3857 ldr r2, .L557 3858 ldrh r3, [r2] 3859 adds r3, r3, #1 3860 uxth r3, r3 3861 strh r3, [r2] @ movhi 3862 ldr r2, .L557+4 3863 ldrh r2, [r2] 3864 cmp r2, r3 3865 bcs .L555 3866 ldr r1, .L557+8 3867 movs r2, #203 3868 ldr r0, .L557+12 3869 bl printf 3870 ldr r1, .L557+16 3871 ldr r0, .L557+20 3872 pop {r3, lr} 3873 b printf 3874.L555: 3875 pop {r3, pc} 3876.L558: 3877 .align 2 3878.L557: 3879 .word .LANCHOR89 3880 .word .LANCHOR40 3881 .word .LANCHOR90 3882 .word .LC5 3883 .word .LC6 3884 .word .LC7 3885 .size INSERT_FREE_LIST, .-INSERT_FREE_LIST 3886 .section .text.List_remove_node,"ax",%progbits 3887 .align 1 3888 .global List_remove_node 3889 .syntax unified 3890 .thumb 3891 .thumb_func 3892 .fpu softvfp 3893 .type List_remove_node, %function 3894List_remove_node: 3895 @ args = 0, pretend = 0, frame = 0 3896 @ frame_needed = 0, uses_anonymous_args = 0 3897 push {r4, r5, r6, r7, r8, lr} 3898 movs r6, #6 3899 ldr r5, .L565 3900 muls r6, r1, r6 3901 movw r3, #65535 3902 mov r8, r0 3903 ldr r7, [r5] 3904 adds r4, r7, r6 3905 ldrh r2, [r4, #2] 3906 cmp r2, r3 3907 bne .L560 3908 ldr r3, [r0] 3909 cmp r4, r3 3910 beq .L560 3911 ldr r1, .L565+4 3912 mov r2, #386 3913 ldr r0, .L565+8 3914 bl printf 3915 ldr r1, .L565+12 3916 ldr r0, .L565+16 3917 bl printf 3918.L560: 3919 ldr r3, [r8] 3920 movw r1, #65535 3921 cmp r4, r3 3922 ldrh r3, [r7, r6] 3923 bne .L561 3924 cmp r3, r1 3925 ittee ne 3926 ldrne r0, [r5] 3927 movne r2, #6 3928 moveq r3, #0 3929 streq r3, [r8] 3930 ittt ne 3931 mlane r3, r2, r3, r0 3932 strne r3, [r8] 3933 strhne r1, [r3, #2] @ movhi 3934.L563: 3935 movw r3, #65535 3936 movs r0, #0 3937 strh r3, [r7, r6] @ movhi 3938 strh r3, [r4, #2] @ movhi 3939 pop {r4, r5, r6, r7, r8, pc} 3940.L561: 3941 cmp r3, r1 3942 ldrh r1, [r4, #2] 3943 bne .L564 3944 cmp r1, r3 3945 beq .L563 3946 movs r2, #6 3947 ldr r0, [r5] 3948 muls r1, r2, r1 3949 strh r3, [r0, r1] @ movhi 3950 b .L563 3951.L564: 3952 ldr r0, [r5] 3953 movs r2, #6 3954 mla r5, r2, r3, r0 3955 strh r1, [r5, #2] @ movhi 3956 ldrh r1, [r4, #2] 3957 muls r2, r1, r2 3958 strh r3, [r0, r2] @ movhi 3959 b .L563 3960.L566: 3961 .align 2 3962.L565: 3963 .word .LANCHOR82 3964 .word .LANCHOR91 3965 .word .LC5 3966 .word .LC6 3967 .word .LC7 3968 .size List_remove_node, .-List_remove_node 3969 .section .text.List_pop_index_node,"ax",%progbits 3970 .align 1 3971 .global List_pop_index_node 3972 .syntax unified 3973 .thumb 3974 .thumb_func 3975 .fpu softvfp 3976 .type List_pop_index_node, %function 3977List_pop_index_node: 3978 @ args = 0, pretend = 0, frame = 0 3979 @ frame_needed = 0, uses_anonymous_args = 0 3980 ldr r3, [r0] 3981 push {r4, r5, r6, lr} 3982 cbz r3, .L573 3983 ldr r2, .L574 3984 movw r5, #65535 3985 movs r6, #6 3986 ldr r2, [r2] 3987.L569: 3988 cbnz r1, .L570 3989.L572: 3990 ldr r4, .L574+4 3991 subs r3, r3, r2 3992 asrs r3, r3, #1 3993 muls r4, r3, r4 3994 uxth r1, r4 3995 bl List_remove_node 3996 uxth r0, r4 3997 pop {r4, r5, r6, pc} 3998.L570: 3999 ldrh r4, [r3] 4000 cmp r4, r5 4001 beq .L572 4002 subs r1, r1, #1 4003 mla r3, r6, r4, r2 4004 uxth r1, r1 4005 b .L569 4006.L573: 4007 movw r0, #65535 4008 pop {r4, r5, r6, pc} 4009.L575: 4010 .align 2 4011.L574: 4012 .word .LANCHOR82 4013 .word -1431655765 4014 .size List_pop_index_node, .-List_pop_index_node 4015 .section .text.List_get_gc_head_node,"ax",%progbits 4016 .align 1 4017 .global List_get_gc_head_node 4018 .syntax unified 4019 .thumb 4020 .thumb_func 4021 .fpu softvfp 4022 .type List_get_gc_head_node, %function 4023List_get_gc_head_node: 4024 @ args = 0, pretend = 0, frame = 0 4025 @ frame_needed = 0, uses_anonymous_args = 0 4026 ldr r3, .L582 4027 push {r4, lr} 4028 ldr r3, [r3] 4029 cbz r3, .L581 4030 ldr r2, .L582+4 4031 movs r4, #6 4032 ldr r1, [r2] 4033 movw r2, #65535 4034.L578: 4035 cbz r0, .L579 4036 ldrh r3, [r3] 4037 cmp r3, r2 4038 bne .L580 4039.L581: 4040 movw r0, #65535 4041 pop {r4, pc} 4042.L580: 4043 subs r0, r0, #1 4044 mla r3, r4, r3, r1 4045 uxth r0, r0 4046 b .L578 4047.L579: 4048 ldr r0, .L582+8 4049 subs r3, r3, r1 4050 asrs r3, r3, #1 4051 muls r3, r0, r3 4052 uxth r0, r3 4053 pop {r4, pc} 4054.L583: 4055 .align 2 4056.L582: 4057 .word .LANCHOR83 4058 .word .LANCHOR82 4059 .word -1431655765 4060 .size List_get_gc_head_node, .-List_get_gc_head_node 4061 .section .text.List_update_data_list,"ax",%progbits 4062 .align 1 4063 .global List_update_data_list 4064 .syntax unified 4065 .thumb 4066 .thumb_func 4067 .fpu softvfp 4068 .type List_update_data_list, %function 4069List_update_data_list: 4070 @ args = 0, pretend = 0, frame = 0 4071 @ frame_needed = 0, uses_anonymous_args = 0 4072 ldr r3, .L595 4073 push {r4, r5, r6, r7, r8, r10, fp, lr} 4074 mov r4, r0 4075 ldrh r3, [r3] 4076 cmp r3, r0 4077 beq .L586 4078 ldr r3, .L595+4 4079 ldrh r3, [r3] 4080 cmp r3, r0 4081 beq .L586 4082 ldr r3, .L595+8 4083 ldrh r3, [r3] 4084 cmp r3, r0 4085 beq .L586 4086 ldr r7, .L595+12 4087 movs r6, #6 4088 ldr r3, .L595+16 4089 muls r6, r0, r6 4090 ldr fp, [r7] 4091 ldr r3, [r3] 4092 add r10, fp, r6 4093 cmp r10, r3 4094 beq .L586 4095 ldr r3, .L595+20 4096 ldrh r5, [r10, #4] 4097 ldr r2, [r3] 4098 mov r8, r3 4099 ldrh r2, [r2, r0, lsl #1] 4100 cmp r5, #0 4101 beq .L593 4102 muls r5, r2, r5 4103.L588: 4104 ldrh r3, [r10, #2] 4105 movw r2, #65535 4106 cmp r3, r2 4107 bne .L589 4108 ldrh r2, [fp, r6] 4109 cmp r2, r3 4110 bne .L589 4111 ldr r1, .L595+24 4112 mov r2, #504 4113 ldr r0, .L595+28 4114 bl printf 4115 ldr r1, .L595+32 4116 ldr r0, .L595+36 4117 bl printf 4118.L589: 4119 ldrh r3, [r10, #2] 4120 movw r2, #65535 4121 cmp r3, r2 4122 bne .L590 4123 ldrh r2, [fp, r6] 4124 cmp r2, r3 4125 beq .L586 4126.L590: 4127 movs r2, #6 4128 muls r2, r3, r2 4129 ldr r3, .L595+40 4130 asrs r1, r2, #1 4131 muls r3, r1, r3 4132 ldr r1, [r8] 4133 ldrh r0, [r1, r3, lsl #1] 4134 ldr r1, [r7] 4135 add r2, r2, r1 4136 ldrh r3, [r2, #4] 4137 cbz r3, .L594 4138 muls r3, r0, r3 4139.L591: 4140 cmp r5, r3 4141 bcs .L586 4142 ldr r5, .L595+44 4143 mov r1, r4 4144 ldr r0, .L595+16 4145 bl List_remove_node 4146 ldrh r3, [r5] 4147 cbnz r3, .L592 4148 ldr r1, .L595+24 4149 movw r2, #515 4150 ldr r0, .L595+28 4151 bl printf 4152 ldr r1, .L595+32 4153 ldr r0, .L595+36 4154 bl printf 4155.L592: 4156 ldrh r3, [r5] 4157 mov r0, r4 4158 subs r3, r3, #1 4159 strh r3, [r5] @ movhi 4160 bl INSERT_DATA_LIST 4161.L586: 4162 movs r0, #0 4163 pop {r4, r5, r6, r7, r8, r10, fp, pc} 4164.L593: 4165 mov r5, #-1 4166 b .L588 4167.L594: 4168 mov r3, #-1 4169 b .L591 4170.L596: 4171 .align 2 4172.L595: 4173 .word .LANCHOR92 4174 .word .LANCHOR93 4175 .word .LANCHOR94 4176 .word .LANCHOR82 4177 .word .LANCHOR83 4178 .word .LANCHOR84 4179 .word .LANCHOR95 4180 .word .LC5 4181 .word .LC6 4182 .word .LC7 4183 .word -1431655765 4184 .word .LANCHOR86 4185 .size List_update_data_list, .-List_update_data_list 4186 .section .text.ftl_map_blk_alloc_new_blk,"ax",%progbits 4187 .align 1 4188 .global ftl_map_blk_alloc_new_blk 4189 .syntax unified 4190 .thumb 4191 .thumb_func 4192 .fpu softvfp 4193 .type ftl_map_blk_alloc_new_blk, %function 4194ftl_map_blk_alloc_new_blk: 4195 @ args = 0, pretend = 0, frame = 0 4196 @ frame_needed = 0, uses_anonymous_args = 0 4197 ldrh r1, [r0, #10] 4198 ldr r2, [r0, #12] 4199 push {r3, r4, r5, r6, r7, lr} 4200 mov r4, r0 4201 movs r3, #0 4202.L598: 4203 uxth r5, r3 4204 cmp r5, r1 4205 bcs .L601 4206 mov r7, r2 4207 adds r3, r3, #1 4208 ldrh r6, [r7] 4209 adds r2, r2, #2 4210 cmp r6, #0 4211 bne .L598 4212 bl FtlFreeSysBlkQueueOut 4213 subs r3, r0, #1 4214 movw r2, #65533 4215 uxth r3, r3 4216 mov r1, r0 4217 strh r0, [r7] @ movhi 4218 cmp r3, r2 4219 bls .L599 4220 ldr r3, .L605 4221 ldr r0, .L605+4 4222 ldrh r2, [r3, #6] 4223 bl printf 4224.L600: 4225 b .L600 4226.L599: 4227 ldr r3, [r4, #28] 4228 strh r6, [r4, #2] @ movhi 4229 strh r5, [r4] @ movhi 4230 adds r3, r3, #1 4231 str r3, [r4, #28] 4232 ldrh r3, [r4, #8] 4233 adds r3, r3, #1 4234 strh r3, [r4, #8] @ movhi 4235.L601: 4236 ldrh r3, [r4, #10] 4237 cmp r3, r5 4238 bhi .L603 4239 ldr r1, .L605+8 4240 movw r2, #629 4241 ldr r0, .L605+12 4242 bl printf 4243 ldr r1, .L605+16 4244 ldr r0, .L605+20 4245 bl printf 4246.L603: 4247 movs r0, #0 4248 pop {r3, r4, r5, r6, r7, pc} 4249.L606: 4250 .align 2 4251.L605: 4252 .word .LANCHOR76 4253 .word .LC8 4254 .word .LANCHOR96 4255 .word .LC5 4256 .word .LC6 4257 .word .LC7 4258 .size ftl_map_blk_alloc_new_blk, .-ftl_map_blk_alloc_new_blk 4259 .section .text.select_l2p_ram_region,"ax",%progbits 4260 .align 1 4261 .global select_l2p_ram_region 4262 .syntax unified 4263 .thumb 4264 .thumb_func 4265 .fpu softvfp 4266 .type select_l2p_ram_region, %function 4267select_l2p_ram_region: 4268 @ args = 0, pretend = 0, frame = 0 4269 @ frame_needed = 0, uses_anonymous_args = 0 4270 push {r3, r4, r5, r6, r7, lr} 4271 movs r1, #0 4272 ldr r3, .L617 4273 movs r0, #12 4274 movw r5, #65535 4275 ldrh r2, [r3] 4276 ldr r3, .L617+4 4277 ldr r3, [r3] 4278.L608: 4279 uxth r4, r1 4280 cmp r4, r2 4281 bcc .L610 4282 mov r4, r2 4283 movs r1, #0 4284 mov r6, #-2147483648 4285 movs r7, #12 4286.L611: 4287 uxth r5, r1 4288 cmp r5, r2 4289 bcc .L613 4290 cmp r4, r2 4291 bcc .L609 4292 ldr r1, .L617+8 4293 mov r4, r2 4294 mov r0, #-1 4295 ldrh r7, [r1] 4296 movs r1, #0 4297.L614: 4298 uxth r5, r1 4299 cmp r5, r2 4300 bcc .L616 4301 cmp r4, r2 4302 bcc .L609 4303 movw r2, #855 4304 ldr r1, .L617+12 4305 ldr r0, .L617+16 4306 bl printf 4307 ldr r1, .L617+20 4308 ldr r0, .L617+24 4309 bl printf 4310 b .L609 4311.L610: 4312 adds r1, r1, #1 4313 mla r6, r0, r1, r3 4314 ldrh r6, [r6, #-12] 4315 cmp r6, r5 4316 bne .L608 4317.L609: 4318 mov r0, r4 4319 pop {r3, r4, r5, r6, r7, pc} 4320.L613: 4321 mla r0, r7, r1, r3 4322 ldr r0, [r0, #4] 4323 cmp r0, #0 4324 blt .L612 4325 cmp r6, r0 4326 itt hi 4327 movhi r6, r0 4328 movhi r4, r5 4329.L612: 4330 adds r1, r1, #1 4331 b .L611 4332.L616: 4333 ldr r6, [r3, #4] 4334 cmp r0, r6 4335 bls .L615 4336 ldrh ip, [r3] 4337 cmp ip, r7 4338 itt ne 4339 movne r0, r6 4340 movne r4, r5 4341.L615: 4342 adds r1, r1, #1 4343 adds r3, r3, #12 4344 b .L614 4345.L618: 4346 .align 2 4347.L617: 4348 .word .LANCHOR68 4349 .word .LANCHOR97 4350 .word .LANCHOR98 4351 .word .LANCHOR99 4352 .word .LC5 4353 .word .LC6 4354 .word .LC7 4355 .size select_l2p_ram_region, .-select_l2p_ram_region 4356 .section .text.FtlUpdateVaildLpn,"ax",%progbits 4357 .align 1 4358 .global FtlUpdateVaildLpn 4359 .syntax unified 4360 .thumb 4361 .thumb_func 4362 .fpu softvfp 4363 .type FtlUpdateVaildLpn, %function 4364FtlUpdateVaildLpn: 4365 @ args = 0, pretend = 0, frame = 0 4366 @ frame_needed = 0, uses_anonymous_args = 0 4367 ldr r2, .L629 4368 push {r4, r5, r6, lr} 4369 mov r1, r2 4370 ldrh r3, [r2] 4371 cmp r3, #4 4372 bhi .L620 4373 cbnz r0, .L620 4374 adds r3, r3, #1 4375 strh r3, [r2] @ movhi 4376 pop {r4, r5, r6, pc} 4377.L620: 4378 movs r3, #0 4379 ldr r0, .L629+4 4380 strh r3, [r1] @ movhi 4381 movw r6, #65535 4382 ldr r1, .L629+8 4383 ldrh r4, [r0] 4384 mov r0, r3 4385 ldr r2, .L629+12 4386 ldr r1, [r1] 4387 str r3, [r2] 4388 add r4, r1, r4, lsl #1 4389.L621: 4390 cmp r1, r4 4391 bne .L623 4392 cbz r3, .L619 4393 str r0, [r2] 4394.L619: 4395 pop {r4, r5, r6, pc} 4396.L623: 4397 ldrh r5, [r1], #2 4398 cmp r5, r6 4399 itt ne 4400 addne r0, r0, r5 4401 movne r3, #1 4402 b .L621 4403.L630: 4404 .align 2 4405.L629: 4406 .word .LANCHOR100 4407 .word .LANCHOR40 4408 .word .LANCHOR84 4409 .word .LANCHOR101 4410 .size FtlUpdateVaildLpn, .-FtlUpdateVaildLpn 4411 .section .text.ftl_set_blk_mode,"ax",%progbits 4412 .align 1 4413 .global ftl_set_blk_mode 4414 .syntax unified 4415 .thumb 4416 .thumb_func 4417 .fpu softvfp 4418 .type ftl_set_blk_mode, %function 4419ftl_set_blk_mode: 4420 @ args = 0, pretend = 0, frame = 0 4421 @ frame_needed = 0, uses_anonymous_args = 0 4422 @ link register save eliminated. 4423 mov r3, r0 4424 cbz r1, .L632 4425 b ftl_set_blk_mode.part.10 4426.L632: 4427 ldr r2, .L633 4428 lsrs r0, r0, #5 4429 and r3, r3, #31 4430 ldr r1, [r2] 4431 movs r2, #1 4432 lsl r3, r2, r3 4433 ldr r2, [r1, r0, lsl #2] 4434 bic r2, r2, r3 4435 str r2, [r1, r0, lsl #2] 4436 bx lr 4437.L634: 4438 .align 2 4439.L633: 4440 .word .LANCHOR0 4441 .size ftl_set_blk_mode, .-ftl_set_blk_mode 4442 .section .text.ftl_get_blk_mode,"ax",%progbits 4443 .align 1 4444 .global ftl_get_blk_mode 4445 .syntax unified 4446 .thumb 4447 .thumb_func 4448 .fpu softvfp 4449 .type ftl_get_blk_mode, %function 4450ftl_get_blk_mode: 4451 @ args = 0, pretend = 0, frame = 0 4452 @ frame_needed = 0, uses_anonymous_args = 0 4453 @ link register save eliminated. 4454 ldr r3, .L636 4455 lsrs r2, r0, #5 4456 and r0, r0, #31 4457 ldr r3, [r3] 4458 ldr r3, [r3, r2, lsl #2] 4459 lsr r0, r3, r0 4460 and r0, r0, #1 4461 bx lr 4462.L637: 4463 .align 2 4464.L636: 4465 .word .LANCHOR0 4466 .size ftl_get_blk_mode, .-ftl_get_blk_mode 4467 .section .text.ftl_sb_update_avl_pages,"ax",%progbits 4468 .align 1 4469 .global ftl_sb_update_avl_pages 4470 .syntax unified 4471 .thumb 4472 .thumb_func 4473 .fpu softvfp 4474 .type ftl_sb_update_avl_pages, %function 4475ftl_sb_update_avl_pages: 4476 @ args = 0, pretend = 0, frame = 0 4477 @ frame_needed = 0, uses_anonymous_args = 0 4478 movs r3, #0 4479 push {r4, r5, r6, lr} 4480 strh r3, [r0, #4] @ movhi 4481 movw r6, #65535 4482 ldr r3, .L645 4483 ldrh r4, [r3] 4484 add r3, r0, r2, lsl #1 4485 adds r3, r3, #14 4486.L639: 4487 cmp r2, r4 4488 bcc .L641 4489 ldr r3, .L645+4 4490 add r5, r0, #16 4491 movw r6, #65535 4492 ldrh r3, [r3] 4493 subs r3, r3, #1 4494 subs r1, r3, r1 4495 movs r3, #0 4496 uxth r1, r1 4497.L642: 4498 uxth r2, r3 4499 cmp r4, r2 4500 bhi .L644 4501 pop {r4, r5, r6, pc} 4502.L641: 4503 ldrh r5, [r3, #2]! 4504 adds r2, r2, #1 4505 uxth r2, r2 4506 cmp r5, r6 4507 ittt ne 4508 ldrhne r5, [r0, #4] 4509 addne r5, r5, #1 4510 strhne r5, [r0, #4] @ movhi 4511 b .L639 4512.L644: 4513 ldrh r2, [r5], #2 4514 adds r3, r3, #1 4515 cmp r2, r6 4516 ittt ne 4517 ldrhne r2, [r0, #4] 4518 addne r2, r2, r1 4519 strhne r2, [r0, #4] @ movhi 4520 b .L642 4521.L646: 4522 .align 2 4523.L645: 4524 .word .LANCHOR38 4525 .word .LANCHOR53 4526 .size ftl_sb_update_avl_pages, .-ftl_sb_update_avl_pages 4527 .section .text.make_superblock,"ax",%progbits 4528 .align 1 4529 .global make_superblock 4530 .syntax unified 4531 .thumb 4532 .thumb_func 4533 .fpu softvfp 4534 .type make_superblock, %function 4535make_superblock: 4536 @ args = 0, pretend = 0, frame = 0 4537 @ frame_needed = 0, uses_anonymous_args = 0 4538 ldr r3, .L660 4539 ldrh r2, [r0] 4540 push {r4, r5, r6, r7, r8, r10, fp, lr} 4541 mov r4, r0 4542 ldrh r3, [r3] 4543 cmp r2, r3 4544 bcc .L648 4545 ldr r1, .L660+4 4546 mov r2, #2544 4547 ldr r0, .L660+8 4548 bl printf 4549 ldr r1, .L660+12 4550 ldr r0, .L660+16 4551 bl printf 4552.L648: 4553 ldr r3, .L660+20 4554 add r6, r4, #16 4555 ldr r10, .L660+40 4556 movw r7, #65535 4557 movs r5, #0 4558 ldrh r8, [r3] 4559 strh r5, [r4, #4] @ movhi 4560 strb r5, [r4, #7] 4561.L649: 4562 uxth r3, r5 4563 cmp r8, r3 4564 bhi .L651 4565 ldr r2, .L660+24 4566 ldrb r3, [r4, #7] @ zero_extendqisi2 4567 ldrh r2, [r2] 4568 smulbb r3, r3, r2 4569 strh r3, [r4, #4] @ movhi 4570 movs r3, #0 4571 strb r3, [r4, #9] 4572 ldr r3, .L660+28 4573 ldr r3, [r3] 4574 cbz r3, .L652 4575 ldr r3, .L660+32 4576 ldrh r2, [r4] 4577 ldr r3, [r3] 4578 ldrh r3, [r3, r2, lsl #1] 4579 cmp r3, #79 4580 itt ls 4581 movls r3, #1 4582 strbls r3, [r4, #9] 4583.L652: 4584 ldr r3, .L660+36 4585 ldrb r3, [r3] @ zero_extendqisi2 4586 cbz r3, .L653 4587 movs r3, #1 4588 strb r3, [r4, #9] 4589.L653: 4590 movs r0, #0 4591 pop {r4, r5, r6, r7, r8, r10, fp, pc} 4592.L651: 4593 ldrh r1, [r4] 4594 ldrb r0, [r10, r5] @ zero_extendqisi2 4595 bl V2P_block 4596 strh r7, [r6] @ movhi 4597 mov fp, r0 4598 bl FtlBbmIsBadBlock 4599 cbnz r0, .L650 4600 strh fp, [r6] @ movhi 4601 ldrb r3, [r4, #7] @ zero_extendqisi2 4602 adds r3, r3, #1 4603 strb r3, [r4, #7] 4604.L650: 4605 adds r5, r5, #1 4606 adds r6, r6, #2 4607 b .L649 4608.L661: 4609 .align 2 4610.L660: 4611 .word .LANCHOR40 4612 .word .LANCHOR102 4613 .word .LC5 4614 .word .LC6 4615 .word .LC7 4616 .word .LANCHOR38 4617 .word .LANCHOR53 4618 .word .LANCHOR28 4619 .word .LANCHOR79 4620 .word .LANCHOR1 4621 .word .LANCHOR47 4622 .size make_superblock, .-make_superblock 4623 .section .text.update_multiplier_value,"ax",%progbits 4624 .align 1 4625 .global update_multiplier_value 4626 .syntax unified 4627 .thumb 4628 .thumb_func 4629 .fpu softvfp 4630 .type update_multiplier_value, %function 4631update_multiplier_value: 4632 @ args = 0, pretend = 0, frame = 0 4633 @ frame_needed = 0, uses_anonymous_args = 0 4634 push {r3, r4, r5, r6, r7, r8, r10, lr} 4635 movs r5, #0 4636 ldr r3, .L668 4637 mov r6, r0 4638 mov r4, r5 4639 ldr r10, .L668+12 4640 ldrh r7, [r3] 4641 ldr r3, .L668+4 4642 ldrh r8, [r3] 4643.L663: 4644 uxth r3, r5 4645 cmp r7, r3 4646 bhi .L665 4647 cbz r4, .L667 4648 mov r1, r4 4649 mov r0, #32768 4650 bl __aeabi_idiv 4651.L666: 4652 ldr r3, .L668+8 4653 movs r2, #6 4654 ldr r3, [r3] 4655 mla r6, r2, r6, r3 4656 strh r0, [r6, #4] @ movhi 4657 movs r0, #0 4658 pop {r3, r4, r5, r6, r7, r8, r10, pc} 4659.L665: 4660 mov r1, r6 4661 ldrb r0, [r10, r5] @ zero_extendqisi2 4662 bl V2P_block 4663 bl FtlBbmIsBadBlock 4664 cbnz r0, .L664 4665 add r4, r4, r8 4666 uxth r4, r4 4667.L664: 4668 adds r5, r5, #1 4669 b .L663 4670.L667: 4671 mov r0, r4 4672 b .L666 4673.L669: 4674 .align 2 4675.L668: 4676 .word .LANCHOR38 4677 .word .LANCHOR53 4678 .word .LANCHOR82 4679 .word .LANCHOR47 4680 .size update_multiplier_value, .-update_multiplier_value 4681 .section .text.GetFreeBlockMinEraseCount,"ax",%progbits 4682 .align 1 4683 .global GetFreeBlockMinEraseCount 4684 .syntax unified 4685 .thumb 4686 .thumb_func 4687 .fpu softvfp 4688 .type GetFreeBlockMinEraseCount, %function 4689GetFreeBlockMinEraseCount: 4690 @ args = 0, pretend = 0, frame = 0 4691 @ frame_needed = 0, uses_anonymous_args = 0 4692 @ link register save eliminated. 4693 ldr r3, .L673 4694 ldr r0, [r3] 4695 cbz r0, .L671 4696 ldr r3, .L673+4 4697 ldr r3, [r3] 4698 subs r0, r0, r3 4699 ldr r3, .L673+8 4700 asrs r0, r0, #1 4701 muls r0, r3, r0 4702 ldr r3, .L673+12 4703 ldr r3, [r3] 4704 uxth r0, r0 4705 ldrh r0, [r3, r0, lsl #1] 4706.L671: 4707 bx lr 4708.L674: 4709 .align 2 4710.L673: 4711 .word .LANCHOR88 4712 .word .LANCHOR82 4713 .word -1431655765 4714 .word .LANCHOR79 4715 .size GetFreeBlockMinEraseCount, .-GetFreeBlockMinEraseCount 4716 .section .text.GetFreeBlockMaxEraseCount,"ax",%progbits 4717 .align 1 4718 .global GetFreeBlockMaxEraseCount 4719 .syntax unified 4720 .thumb 4721 .thumb_func 4722 .fpu softvfp 4723 .type GetFreeBlockMaxEraseCount, %function 4724GetFreeBlockMaxEraseCount: 4725 @ args = 0, pretend = 0, frame = 0 4726 @ frame_needed = 0, uses_anonymous_args = 0 4727 ldr r3, .L683 4728 push {r4, r5, r6, lr} 4729 ldr r3, [r3] 4730 cbz r3, .L681 4731 ldr r2, .L683+4 4732 movs r5, #6 4733 movw r6, #65535 4734 ldrh r2, [r2] 4735 rsb r2, r2, r2, lsl #3 4736 asrs r2, r2, #3 4737 cmp r0, r2 4738 it gt 4739 uxthgt r0, r2 4740 ldr r2, .L683+8 4741 ldr r1, [r2] 4742 ldr r2, .L683+12 4743 subs r3, r3, r1 4744 asrs r3, r3, #1 4745 muls r3, r2, r3 4746 movs r2, #0 4747 uxth r3, r3 4748.L678: 4749 uxth r4, r2 4750 cmp r0, r4 4751 bls .L680 4752 mul r4, r5, r3 4753 adds r2, r2, #1 4754 ldrh r4, [r1, r4] 4755 cmp r4, r6 4756 bne .L682 4757.L680: 4758 ldr r2, .L683+16 4759 ldr r2, [r2] 4760 ldrh r0, [r2, r3, lsl #1] 4761 pop {r4, r5, r6, pc} 4762.L682: 4763 mov r3, r4 4764 b .L678 4765.L681: 4766 mov r0, r3 4767 pop {r4, r5, r6, pc} 4768.L684: 4769 .align 2 4770.L683: 4771 .word .LANCHOR88 4772 .word .LANCHOR89 4773 .word .LANCHOR82 4774 .word -1431655765 4775 .word .LANCHOR79 4776 .size GetFreeBlockMaxEraseCount, .-GetFreeBlockMaxEraseCount 4777 .section .text.free_data_superblock,"ax",%progbits 4778 .align 1 4779 .global free_data_superblock 4780 .syntax unified 4781 .thumb 4782 .thumb_func 4783 .fpu softvfp 4784 .type free_data_superblock, %function 4785free_data_superblock: 4786 @ args = 0, pretend = 0, frame = 0 4787 @ frame_needed = 0, uses_anonymous_args = 0 4788 movw r2, #65535 4789 push {r3, lr} 4790 cmp r0, r2 4791 beq .L686 4792 ldr r2, .L687 4793 movs r1, #0 4794 ldr r2, [r2] 4795 strh r1, [r2, r0, lsl #1] @ movhi 4796 bl INSERT_FREE_LIST 4797.L686: 4798 movs r0, #0 4799 pop {r3, pc} 4800.L688: 4801 .align 2 4802.L687: 4803 .word .LANCHOR84 4804 .size free_data_superblock, .-free_data_superblock 4805 .section .text.FtlGcBufInit,"ax",%progbits 4806 .align 1 4807 .global FtlGcBufInit 4808 .syntax unified 4809 .thumb 4810 .thumb_func 4811 .fpu softvfp 4812 .type FtlGcBufInit, %function 4813FtlGcBufInit: 4814 @ args = 0, pretend = 0, frame = 8 4815 @ frame_needed = 0, uses_anonymous_args = 0 4816 push {r0, r1, r4, r5, r6, r7, r8, r10, fp, lr} 4817 movs r3, #0 4818 ldr r1, .L694 4819 mov fp, #1 4820 ldr r2, .L694+4 4821 ldr r5, [r1] 4822 ldr r1, .L694+8 4823 str r3, [r2] 4824 ldr r2, .L694+12 4825 mov r0, r5 4826 ldr r1, [r1] 4827 ldrh r2, [r2] 4828 str r1, [sp, #4] 4829 ldr r1, .L694+16 4830 ldrh r1, [r1] 4831 str r1, [sp] 4832 ldr r1, .L694+20 4833 ldr r10, [r1] 4834 ldr r1, .L694+24 4835 ldrh r7, [r1] 4836 ldr r1, .L694+28 4837 ldr r4, [r1] 4838 movs r1, #12 4839 mla r1, r2, r1, r1 4840 adds r4, r4, #8 4841 add r8, r5, r1 4842 mov r1, r3 4843.L690: 4844 adds r0, r0, #12 4845 ldr r6, [sp] 4846 cmp r0, r8 4847 add ip, r3, r7 4848 add r4, r4, #36 4849 add lr, r1, r6 4850 bne .L691 4851 ldr r3, .L694+32 4852 mov lr, #12 4853 mov r8, #0 4854 ldr r0, [r3] 4855 ldr r3, .L694+8 4856 ldr r4, [r3] 4857 ldr r3, .L694+20 4858 ldr ip, [r3] 4859.L692: 4860 cmp r2, r0 4861 bcc .L693 4862 add sp, sp, #8 4863 @ sp needed 4864 pop {r4, r5, r6, r7, r8, r10, fp, pc} 4865.L691: 4866 bic r1, r1, #3 4867 bic r3, r3, #3 4868 mov r6, r1 4869 ldr r1, [sp, #4] 4870 add r3, r3, r10 4871 str fp, [r0, #-4] 4872 str r3, [r0, #-8] 4873 add r6, r6, r1 4874 mov r1, lr 4875 str r6, [r0, #-12] 4876 str r3, [r4, #-32] 4877 mov r3, ip 4878 str r6, [r4, #-36] 4879 b .L690 4880.L693: 4881 ldr r3, [sp] 4882 mul r10, lr, r2 4883 muls r3, r2, r3 4884 add r1, r5, r10 4885 str r8, [r1, #8] 4886 bic r3, r3, #3 4887 add r3, r3, r4 4888 str r3, [r5, r10] 4889 mul r3, r2, r7 4890 adds r2, r2, #1 4891 uxth r2, r2 4892 bic r3, r3, #3 4893 add r3, r3, ip 4894 str r3, [r1, #4] 4895 b .L692 4896.L695: 4897 .align 2 4898.L694: 4899 .word .LANCHOR104 4900 .word .LANCHOR103 4901 .word .LANCHOR105 4902 .word .LANCHOR38 4903 .word .LANCHOR58 4904 .word .LANCHOR106 4905 .word .LANCHOR59 4906 .word .LANCHOR107 4907 .word .LANCHOR108 4908 .size FtlGcBufInit, .-FtlGcBufInit 4909 .section .text.FtlGcBufFree,"ax",%progbits 4910 .align 1 4911 .global FtlGcBufFree 4912 .syntax unified 4913 .thumb 4914 .thumb_func 4915 .fpu softvfp 4916 .type FtlGcBufFree, %function 4917FtlGcBufFree: 4918 @ args = 0, pretend = 0, frame = 0 4919 @ frame_needed = 0, uses_anonymous_args = 0 4920 ldr r3, .L703 4921 mov ip, #12 4922 push {r4, r5, r6, r7, r8, r10, fp, lr} 4923 movs r4, #0 4924 mov fp, #36 4925 mov lr, r4 4926 ldr r7, [r3] 4927 ldr r3, .L703+4 4928 ldr r5, [r3] 4929.L697: 4930 uxth r3, r4 4931 cmp r1, r3 4932 bls .L696 4933 mla r8, fp, r3, r0 4934 movs r2, #0 4935.L698: 4936 uxth r3, r2 4937 cmp r7, r3 4938 bls .L699 4939 mul r3, ip, r3 4940 ldr r6, [r8, #8] 4941 adds r2, r2, #1 4942 add r10, r5, r3 4943 ldr r3, [r5, r3] 4944 cmp r3, r6 4945 bne .L698 4946 str lr, [r10, #8] 4947.L699: 4948 adds r4, r4, #1 4949 b .L697 4950.L696: 4951 pop {r4, r5, r6, r7, r8, r10, fp, pc} 4952.L704: 4953 .align 2 4954.L703: 4955 .word .LANCHOR108 4956 .word .LANCHOR104 4957 .size FtlGcBufFree, .-FtlGcBufFree 4958 .section .text.FtlGcBufAlloc,"ax",%progbits 4959 .align 1 4960 .global FtlGcBufAlloc 4961 .syntax unified 4962 .thumb 4963 .thumb_func 4964 .fpu softvfp 4965 .type FtlGcBufAlloc, %function 4966FtlGcBufAlloc: 4967 @ args = 0, pretend = 0, frame = 0 4968 @ frame_needed = 0, uses_anonymous_args = 0 4969 ldr r3, .L712 4970 movs r2, #0 4971 push {r4, r5, r6, r7, r8, r10, lr} 4972 mov ip, #12 4973 movs r7, #1 4974 mov lr, #36 4975 ldr r4, [r3] 4976 ldr r3, .L712+4 4977 ldr r5, [r3] 4978.L706: 4979 uxth r8, r2 4980 cmp r1, r8 4981 bhi .L710 4982 pop {r4, r5, r6, r7, r8, r10, pc} 4983.L710: 4984 mov r10, #0 4985.L707: 4986 uxth r3, r10 4987 cmp r4, r3 4988 bls .L708 4989 mla r3, ip, r3, r5 4990 add r10, r10, #1 4991 ldr r6, [r3, #8] 4992 cmp r6, #0 4993 bne .L707 4994 mla r8, lr, r8, r0 4995 str r7, [r3, #8] 4996 ldr r6, [r3] 4997 ldr r3, [r3, #4] 4998 str r6, [r8, #8] 4999 str r3, [r8, #12] 5000.L708: 5001 adds r2, r2, #1 5002 b .L706 5003.L713: 5004 .align 2 5005.L712: 5006 .word .LANCHOR108 5007 .word .LANCHOR104 5008 .size FtlGcBufAlloc, .-FtlGcBufAlloc 5009 .section .text.IsBlkInGcList,"ax",%progbits 5010 .align 1 5011 .global IsBlkInGcList 5012 .syntax unified 5013 .thumb 5014 .thumb_func 5015 .fpu softvfp 5016 .type IsBlkInGcList, %function 5017IsBlkInGcList: 5018 @ args = 0, pretend = 0, frame = 0 5019 @ frame_needed = 0, uses_anonymous_args = 0 5020 @ link register save eliminated. 5021 ldr r3, .L719 5022 ldr r2, .L719+4 5023 ldr r3, [r3] 5024 ldrh r2, [r2] 5025 add r2, r3, r2, lsl #1 5026.L715: 5027 cmp r3, r2 5028 bne .L717 5029 movs r0, #0 5030 bx lr 5031.L717: 5032 ldrh r1, [r3], #2 5033 cmp r1, r0 5034 bne .L715 5035 movs r0, #1 5036 bx lr 5037.L720: 5038 .align 2 5039.L719: 5040 .word .LANCHOR109 5041 .word .LANCHOR110 5042 .size IsBlkInGcList, .-IsBlkInGcList 5043 .section .text.FtlGcUpdatePage,"ax",%progbits 5044 .align 1 5045 .global FtlGcUpdatePage 5046 .syntax unified 5047 .thumb 5048 .thumb_func 5049 .fpu softvfp 5050 .type FtlGcUpdatePage, %function 5051FtlGcUpdatePage: 5052 @ args = 0, pretend = 0, frame = 0 5053 @ frame_needed = 0, uses_anonymous_args = 0 5054 push {r3, r4, r5, r6, r7, lr} 5055 mov r5, r0 5056 ldr r4, .L725 5057 ubfx r0, r0, #10, #16 5058 mov r6, r1 5059 mov r7, r2 5060 bl P2V_block_in_plane 5061 ldr r3, .L725+4 5062 ldrh r1, [r4] 5063 ldr r2, [r3] 5064 movs r3, #0 5065.L722: 5066 uxth ip, r3 5067 cmp ip, r1 5068 bcc .L724 5069 bne .L723 5070 strh r0, [r2, ip, lsl #1] @ movhi 5071 ldrh r3, [r4] 5072 adds r3, r3, #1 5073 strh r3, [r4] @ movhi 5074 b .L723 5075.L724: 5076 adds r3, r3, #1 5077 add ip, r2, r3, lsl #1 5078 ldrh ip, [ip, #-2] 5079 cmp ip, r0 5080 bne .L722 5081.L723: 5082 ldr r2, .L725+8 5083 movs r0, #12 5084 ldr r1, .L725+12 5085 ldrh r3, [r2] 5086 ldr r1, [r1] 5087 muls r0, r3, r0 5088 adds r3, r3, #1 5089 adds r4, r1, r0 5090 str r6, [r4, #4] 5091 str r7, [r4, #8] 5092 str r5, [r1, r0] 5093 strh r3, [r2] @ movhi 5094 pop {r3, r4, r5, r6, r7, pc} 5095.L726: 5096 .align 2 5097.L725: 5098 .word .LANCHOR110 5099 .word .LANCHOR109 5100 .word .LANCHOR111 5101 .word .LANCHOR112 5102 .size FtlGcUpdatePage, .-FtlGcUpdatePage 5103 .section .text.FtlGcRefreshOpenBlock,"ax",%progbits 5104 .align 1 5105 .global FtlGcRefreshOpenBlock 5106 .syntax unified 5107 .thumb 5108 .thumb_func 5109 .fpu softvfp 5110 .type FtlGcRefreshOpenBlock, %function 5111FtlGcRefreshOpenBlock: 5112 @ args = 0, pretend = 0, frame = 0 5113 @ frame_needed = 0, uses_anonymous_args = 0 5114 ldr ip, .L732+12 5115 push {r4, r5, r6, r7, lr} 5116 ldrh lr, [ip] 5117 cmp lr, r0 5118 beq .L728 5119 ldr r6, .L732 5120 ldrh r7, [r6] 5121 cmp r0, r7 5122 beq .L728 5123 ldr r4, .L732+4 5124 ldrh r5, [r4] 5125 cmp r0, r5 5126 beq .L728 5127 ldr r2, .L732+8 5128 ldrh r1, [r2] 5129 cmp r0, r1 5130 beq .L728 5131 movw r3, #65535 5132 cmp lr, r3 5133 bne .L729 5134 strh r0, [ip] @ movhi 5135.L728: 5136 movs r0, #0 5137 pop {r4, r5, r6, r7, pc} 5138.L729: 5139 cmp r7, r3 5140 bne .L730 5141 strh r0, [r6] @ movhi 5142 b .L728 5143.L730: 5144 cmp r5, r3 5145 bne .L731 5146 strh r0, [r4] @ movhi 5147 b .L728 5148.L731: 5149 cmp r1, r3 5150 it eq 5151 strheq r0, [r2] @ movhi 5152 b .L728 5153.L733: 5154 .align 2 5155.L732: 5156 .word .LANCHOR114 5157 .word .LANCHOR115 5158 .word .LANCHOR116 5159 .word .LANCHOR113 5160 .size FtlGcRefreshOpenBlock, .-FtlGcRefreshOpenBlock 5161 .section .text.FtlGcRefreshBlock,"ax",%progbits 5162 .align 1 5163 .global FtlGcRefreshBlock 5164 .syntax unified 5165 .thumb 5166 .thumb_func 5167 .fpu softvfp 5168 .type FtlGcRefreshBlock, %function 5169FtlGcRefreshBlock: 5170 @ args = 0, pretend = 0, frame = 0 5171 @ frame_needed = 0, uses_anonymous_args = 0 5172 ldr ip, .L744+12 5173 push {r4, r5, r6, r7, lr} 5174 ldrh lr, [ip] 5175 cmp lr, r0 5176 beq .L742 5177 ldr r6, .L744 5178 ldrh r7, [r6] 5179 cmp r0, r7 5180 beq .L742 5181 ldr r4, .L744+4 5182 ldrh r5, [r4] 5183 cmp r0, r5 5184 beq .L742 5185 ldr r2, .L744+8 5186 ldrh r1, [r2] 5187 cmp r0, r1 5188 beq .L742 5189 movw r3, #65535 5190 cmp lr, r3 5191 bne .L736 5192 strh r0, [ip] @ movhi 5193.L742: 5194 movs r0, #0 5195 pop {r4, r5, r6, r7, pc} 5196.L736: 5197 cmp r7, r3 5198 bne .L737 5199 strh r0, [r6] @ movhi 5200 b .L742 5201.L737: 5202 cmp r5, r3 5203 bne .L738 5204 strh r0, [r4] @ movhi 5205 b .L742 5206.L738: 5207 cmp r1, r3 5208 bne .L743 5209 strh r0, [r2] @ movhi 5210 b .L742 5211.L743: 5212 mov r0, #-1 5213 pop {r4, r5, r6, r7, pc} 5214.L745: 5215 .align 2 5216.L744: 5217 .word .LANCHOR114 5218 .word .LANCHOR115 5219 .word .LANCHOR116 5220 .word .LANCHOR113 5221 .size FtlGcRefreshBlock, .-FtlGcRefreshBlock 5222 .section .text.FtlGcMarkBadPhyBlk,"ax",%progbits 5223 .align 1 5224 .global FtlGcMarkBadPhyBlk 5225 .syntax unified 5226 .thumb 5227 .thumb_func 5228 .fpu softvfp 5229 .type FtlGcMarkBadPhyBlk, %function 5230FtlGcMarkBadPhyBlk: 5231 @ args = 0, pretend = 0, frame = 0 5232 @ frame_needed = 0, uses_anonymous_args = 0 5233 push {r3, r4, r5, lr} 5234 mov r4, r0 5235 bl P2V_block_in_plane 5236 mov r5, r0 5237 bl FtlGcRefreshBlock 5238 ldr r3, .L754 5239 ldr r3, [r3] 5240 cbz r3, .L747 5241 ldr r3, .L754+4 5242 ldr r2, [r3] 5243 ldrh r3, [r2, r5, lsl #1] 5244 cmp r3, #39 5245 itt hi 5246 subhi r3, r3, #40 5247 strhhi r3, [r2, r5, lsl #1] @ movhi 5248.L747: 5249 ldr r2, .L754+8 5250 movs r1, #0 5251 ldr r5, .L754+12 5252 ldrh r3, [r2] 5253.L748: 5254 uxth r0, r1 5255 cmp r3, r0 5256 bhi .L750 5257 cmp r3, #15 5258 itttt ls 5259 addls r1, r3, #1 5260 strhls r1, [r2] @ movhi 5261 ldrls r2, .L754+12 5262 strhls r4, [r2, r3, lsl #1] @ movhi 5263 b .L749 5264.L750: 5265 adds r1, r1, #1 5266 add r0, r5, r1, lsl #1 5267 ldrh r0, [r0, #-2] 5268 cmp r0, r4 5269 bne .L748 5270.L749: 5271 movs r0, #0 5272 pop {r3, r4, r5, pc} 5273.L755: 5274 .align 2 5275.L754: 5276 .word .LANCHOR28 5277 .word .LANCHOR79 5278 .word .LANCHOR117 5279 .word .LANCHOR118 5280 .size FtlGcMarkBadPhyBlk, .-FtlGcMarkBadPhyBlk 5281 .section .text.FtlGcReFreshBadBlk,"ax",%progbits 5282 .align 1 5283 .global FtlGcReFreshBadBlk 5284 .syntax unified 5285 .thumb 5286 .thumb_func 5287 .fpu softvfp 5288 .type FtlGcReFreshBadBlk, %function 5289FtlGcReFreshBadBlk: 5290 @ args = 0, pretend = 0, frame = 0 5291 @ frame_needed = 0, uses_anonymous_args = 0 5292 ldr r3, .L762 5293 push {r4, lr} 5294 ldrh r3, [r3] 5295 cbz r3, .L757 5296 ldr r2, .L762+4 5297 ldrh r1, [r2] 5298 movw r2, #65535 5299 cmp r1, r2 5300 bne .L757 5301 ldr r4, .L762+8 5302 ldrh r2, [r4] 5303 cmp r2, r3 5304 itt cs 5305 movcs r3, #0 5306 strhcs r3, [r4] @ movhi 5307 ldr r3, .L762+12 5308 ldrh r2, [r4] 5309 ldrh r0, [r3, r2, lsl #1] 5310 bl P2V_block_in_plane 5311 bl FtlGcRefreshBlock 5312 ldrh r3, [r4] 5313 adds r3, r3, #1 5314 strh r3, [r4] @ movhi 5315.L757: 5316 movs r0, #0 5317 pop {r4, pc} 5318.L763: 5319 .align 2 5320.L762: 5321 .word .LANCHOR117 5322 .word .LANCHOR113 5323 .word .LANCHOR119 5324 .word .LANCHOR118 5325 .size FtlGcReFreshBadBlk, .-FtlGcReFreshBadBlk 5326 .section .text.flash_boot_enter_slc_mode,"ax",%progbits 5327 .align 1 5328 .global flash_boot_enter_slc_mode 5329 .syntax unified 5330 .thumb 5331 .thumb_func 5332 .fpu softvfp 5333 .type flash_boot_enter_slc_mode, %function 5334flash_boot_enter_slc_mode: 5335 @ args = 0, pretend = 0, frame = 0 5336 @ frame_needed = 0, uses_anonymous_args = 0 5337 @ link register save eliminated. 5338 ldr r3, .L766 5339 ldr r2, [r3] 5340 ldr r3, .L766+4 5341 cmp r2, r3 5342 bne .L764 5343 b flash_enter_slc_mode 5344.L764: 5345 bx lr 5346.L767: 5347 .align 2 5348.L766: 5349 .word .LANCHOR29 5350 .word 1446522928 5351 .size flash_boot_enter_slc_mode, .-flash_boot_enter_slc_mode 5352 .section .text.flash_boot_exit_slc_mode,"ax",%progbits 5353 .align 1 5354 .global flash_boot_exit_slc_mode 5355 .syntax unified 5356 .thumb 5357 .thumb_func 5358 .fpu softvfp 5359 .type flash_boot_exit_slc_mode, %function 5360flash_boot_exit_slc_mode: 5361 @ args = 0, pretend = 0, frame = 0 5362 @ frame_needed = 0, uses_anonymous_args = 0 5363 @ link register save eliminated. 5364 ldr r3, .L770 5365 ldr r2, [r3] 5366 ldr r3, .L770+4 5367 cmp r2, r3 5368 bne .L768 5369 b flash_exit_slc_mode 5370.L768: 5371 bx lr 5372.L771: 5373 .align 2 5374.L770: 5375 .word .LANCHOR29 5376 .word 1446522928 5377 .size flash_boot_exit_slc_mode, .-flash_boot_exit_slc_mode 5378 .section .text.FW_FlashBlockErase.constprop.41,"ax",%progbits 5379 .align 1 5380 .syntax unified 5381 .thumb 5382 .thumb_func 5383 .fpu softvfp 5384 .type FW_FlashBlockErase.constprop.41, %function 5385FW_FlashBlockErase.constprop.41: 5386 @ args = 0, pretend = 0, frame = 0 5387 @ frame_needed = 0, uses_anonymous_args = 0 5388 ldr r3, .L773 5389 push {r4, lr} 5390 mov r4, r0 5391 movs r0, #0 5392 ldr r3, [r3] 5393 ldrb r1, [r3, #9] @ zero_extendqisi2 5394 bl flash_boot_enter_slc_mode 5395 mov r0, r4 5396 bl __aeabi_uidiv 5397 movs r2, #0 5398 mov r1, r0 5399 mov r0, r2 5400 bl FlashEraseBlock 5401 mov r1, r0 5402 movs r0, #0 5403 bl flash_boot_exit_slc_mode 5404 uxtb r0, r1 5405 pop {r4, pc} 5406.L774: 5407 .align 2 5408.L773: 5409 .word .LANCHOR18 5410 .size FW_FlashBlockErase.constprop.41, .-FW_FlashBlockErase.constprop.41 5411 .section .text.ftl_memset,"ax",%progbits 5412 .align 1 5413 .global ftl_memset 5414 .syntax unified 5415 .thumb 5416 .thumb_func 5417 .fpu softvfp 5418 .type ftl_memset, %function 5419ftl_memset: 5420 @ args = 0, pretend = 0, frame = 0 5421 @ frame_needed = 0, uses_anonymous_args = 0 5422 @ link register save eliminated. 5423 b memset 5424 .size ftl_memset, .-ftl_memset 5425 .section .text.BuildFlashLsbPageTable,"ax",%progbits 5426 .align 1 5427 .global BuildFlashLsbPageTable 5428 .syntax unified 5429 .thumb 5430 .thumb_func 5431 .fpu softvfp 5432 .type BuildFlashLsbPageTable, %function 5433BuildFlashLsbPageTable: 5434 @ args = 0, pretend = 0, frame = 0 5435 @ frame_needed = 0, uses_anonymous_args = 0 5436 push {r4, lr} 5437 mov r4, r1 5438 cbnz r0, .L777 5439 ldr r3, .L814 5440.L778: 5441 strh r0, [r3, r0, lsl #1] @ movhi 5442 adds r0, r0, #1 5443 cmp r0, #256 5444 bne .L778 5445.L784: 5446 movs r1, #255 5447 mov r2, #1024 5448 ldr r0, .L814+4 5449 uxth r4, r4 5450 bl ftl_memset 5451 ldr r1, .L814 5452 movs r3, #0 5453 ldr r0, .L814+4 5454.L779: 5455 uxth r2, r3 5456 cmp r4, r2 5457 bhi .L801 5458 pop {r4, pc} 5459.L777: 5460 cmp r0, #1 5461 bne .L780 5462 ldr r1, .L814 5463 movs r3, #0 5464.L783: 5465 cmp r3, #3 5466 uxth r2, r3 5467 bls .L781 5468 tst r2, #1 5469 ite ne 5470 movne r0, #3 5471 moveq r0, #2 5472 rsb r2, r0, r2, lsl #1 5473 uxth r2, r2 5474.L781: 5475 strh r2, [r1, r3, lsl #1] @ movhi 5476 adds r3, r3, #1 5477 cmp r3, #256 5478 bne .L783 5479 b .L784 5480.L780: 5481 cmp r0, #2 5482 bne .L785 5483 ldr r1, .L814 5484 movs r2, #0 5485.L787: 5486 uxth r3, r2 5487 cmp r2, #1 5488 ittt hi 5489 lslhi r3, r3, #1 5490 addhi r3, r3, #-1 5491 uxthhi r3, r3 5492 strh r3, [r1, r2, lsl #1] @ movhi 5493 adds r2, r2, #1 5494 cmp r2, #256 5495 bne .L787 5496 b .L784 5497.L785: 5498 cmp r0, #3 5499 bne .L788 5500 ldr r1, .L814 5501 movs r3, #0 5502.L791: 5503 cmp r3, #5 5504 uxth r2, r3 5505 bls .L789 5506 tst r2, #1 5507 ite ne 5508 movne r0, #5 5509 moveq r0, #4 5510 rsb r2, r0, r2, lsl #1 5511 uxth r2, r2 5512.L789: 5513 strh r2, [r1, r3, lsl #1] @ movhi 5514 adds r3, r3, #1 5515 cmp r3, #256 5516 bne .L791 5517 b .L784 5518.L788: 5519 cmp r0, #4 5520 mov r3, #0 5521 bne .L792 5522 ldr r2, .L814 5523 strh r3, [r2] @ movhi 5524 movs r3, #1 5525 strh r3, [r2, #2] @ movhi 5526 movs r3, #2 5527 strh r3, [r2, #4] @ movhi 5528 movs r3, #3 5529 strh r3, [r2, #6] @ movhi 5530 movs r3, #5 5531 strh r3, [r2, #10] @ movhi 5532 movs r3, #7 5533 strh r3, [r2, #12] @ movhi 5534 movs r3, #8 5535 strh r0, [r2, #8] @ movhi 5536 strh r3, [r2, #14]! @ movhi 5537.L794: 5538 tst r3, #1 5539 ite ne 5540 movne r1, #7 5541 moveq r1, #6 5542 rsb r1, r1, r3, lsl #1 5543 adds r3, r3, #1 5544 uxth r3, r3 5545 strh r1, [r2, #2]! @ movhi 5546 cmp r3, #256 5547 bne .L794 5548 b .L784 5549.L792: 5550 cmp r0, #5 5551 bne .L795 5552 ldr r2, .L814 5553.L796: 5554 strh r3, [r2, r3, lsl #1] @ movhi 5555 adds r3, r3, #1 5556 cmp r3, #16 5557 bne .L796 5558 ldr r2, .L814+8 5559.L797: 5560 strh r3, [r2, #2]! @ movhi 5561 adds r3, r3, #2 5562 uxth r3, r3 5563 cmp r3, #496 5564 bne .L797 5565 b .L784 5566.L795: 5567 cmp r0, #6 5568 bne .L784 5569 ldr r0, .L814 5570 mov r1, r3 5571.L800: 5572 cmp r1, #5 5573 uxth r2, r1 5574 bls .L798 5575 tst r2, #1 5576 ite ne 5577 movne r2, #12 5578 moveq r2, #10 5579 subs r2, r3, r2 5580 uxth r2, r2 5581.L798: 5582 strh r2, [r0, r1, lsl #1] @ movhi 5583 adds r1, r1, #1 5584 cmp r1, #256 5585 add r3, r3, #3 5586 uxth r3, r3 5587 bne .L800 5588 b .L784 5589.L801: 5590 ldrh r2, [r1, r3, lsl #1] 5591 adds r3, r3, #1 5592 strh r2, [r0, r2, lsl #1] @ movhi 5593 b .L779 5594.L815: 5595 .align 2 5596.L814: 5597 .word .LANCHOR16 5598 .word .LANCHOR120 5599 .word .LANCHOR16+30 5600 .size BuildFlashLsbPageTable, .-BuildFlashLsbPageTable 5601 .section .text.FlashDieInfoInit,"ax",%progbits 5602 .align 1 5603 .global FlashDieInfoInit 5604 .syntax unified 5605 .thumb 5606 .thumb_func 5607 .fpu softvfp 5608 .type FlashDieInfoInit, %function 5609FlashDieInfoInit: 5610 @ args = 0, pretend = 0, frame = 8 5611 @ frame_needed = 0, uses_anonymous_args = 0 5612 push {r0, r1, r4, r5, r6, r7, r8, r10, fp, lr} 5613 movs r3, #0 5614 ldr r2, .L834 5615 ldr r4, .L834+4 5616 strb r3, [r2] 5617 str r2, [sp] 5618 strb r3, [r4] 5619 ldr r3, .L834+8 5620 ldr r7, .L834+12 5621 ldrh r3, [r3, #10] 5622 cmp r3, #256 5623 bls .L817 5624 mov r3, #512 5625.L833: 5626 movs r2, #8 5627 movs r1, #0 5628 ldr r0, .L834+16 5629 movs r6, #0 5630 str r3, [r7] 5631 bl ftl_memset 5632 movs r2, #32 5633 movs r1, #0 5634 ldr r0, .L834+20 5635 bl ftl_memset 5636 movs r2, #128 5637 movs r1, #0 5638 ldr r0, .L834+24 5639 bl ftl_memset 5640 ldr r3, .L834+28 5641 ldr fp, .L834+36 5642 ldr r5, [r3] 5643 ldr r3, .L834+16 5644 ldrb r10, [r5] @ zero_extendqisi2 5645 add r8, r5, #1 5646.L821: 5647 mov r2, r10 5648 add r1, fp, r6, lsl #3 5649 mov r0, r8 5650 str r3, [sp, #4] 5651 bl FlashMemCmp8 5652 ldr r3, [sp, #4] 5653 cbnz r0, .L820 5654 ldrb r2, [r4] @ zero_extendqisi2 5655 ldr r1, .L834+20 5656 strb r6, [r3, r2] 5657 str r0, [r1, r2, lsl #2] 5658 adds r1, r2, #1 5659 strb r1, [r4] 5660.L820: 5661 adds r6, r6, #1 5662 cmp r6, #4 5663 bne .L821 5664 ldrb r3, [r4] @ zero_extendqisi2 5665 ldr r2, [sp] 5666 strb r3, [r2] 5667 ldrb r3, [r5, #8] @ zero_extendqisi2 5668 cmp r3, #2 5669 beq .L822 5670.L826: 5671 ldrh r2, [r5, #14] 5672 ldrb r3, [r4] @ zero_extendqisi2 5673 smulbb r3, r3, r2 5674 ldrb r2, [r5, #13] @ zero_extendqisi2 5675 smulbb r3, r3, r2 5676 ldr r2, .L834+32 5677 strh r3, [r2] @ movhi 5678 add sp, sp, #8 5679 @ sp needed 5680 pop {r4, r5, r6, r7, r8, r10, fp, pc} 5681.L817: 5682 cmp r3, #128 5683 it hi 5684 movhi r3, #256 5685 b .L833 5686.L822: 5687 ldr fp, [r7] 5688 movs r6, #0 5689 ldr r7, .L834+20 5690 ldr r3, .L834+16 5691.L825: 5692 str r3, [sp] 5693 mov r2, r10 5694 ldr r3, .L834+36 5695 mov r0, r8 5696 add r1, r3, r6, lsl #3 5697 bl FlashMemCmp8 5698 ldr r3, [sp] 5699 cbnz r0, .L823 5700 ldrh r2, [r5, #14] 5701 ldrb r1, [r4] @ zero_extendqisi2 5702 and r0, r2, #65280 5703 ldrb r2, [r5, #13] @ zero_extendqisi2 5704 mul r2, fp, r2 5705 muls r2, r0, r2 5706 str r2, [r7, r1, lsl #2] 5707 ldrb r0, [r5, #23] @ zero_extendqisi2 5708 cbz r0, .L824 5709 lsls r2, r2, #1 5710 str r2, [r7, r1, lsl #2] 5711.L824: 5712 adds r2, r1, #1 5713 strb r6, [r3, r1] 5714 strb r2, [r4] 5715.L823: 5716 adds r6, r6, #1 5717 cmp r6, #4 5718 bne .L825 5719 b .L826 5720.L835: 5721 .align 2 5722.L834: 5723 .word .LANCHOR121 5724 .word .LANCHOR25 5725 .word .LANCHOR31 5726 .word .LANCHOR3 5727 .word .LANCHOR26 5728 .word .LANCHOR17 5729 .word .LANCHOR23 5730 .word .LANCHOR18 5731 .word .LANCHOR122 5732 .word .LANCHOR22 5733 .size FlashDieInfoInit, .-FlashDieInfoInit 5734 .section .text.ReadFlashInfo,"ax",%progbits 5735 .align 1 5736 .global ReadFlashInfo 5737 .syntax unified 5738 .thumb 5739 .thumb_func 5740 .fpu softvfp 5741 .type ReadFlashInfo, %function 5742ReadFlashInfo: 5743 @ args = 0, pretend = 0, frame = 0 5744 @ frame_needed = 0, uses_anonymous_args = 0 5745 push {r4, r5, r6, lr} 5746 movs r2, #11 5747 movs r1, #0 5748 mov r4, r0 5749 bl ftl_memset 5750 ldr r3, .L839 5751 movs r2, #0 5752 ldr r1, [r3] 5753 ldr r3, .L839+4 5754 ldrb r0, [r1, #9] @ zero_extendqisi2 5755 ldr r3, [r3] 5756 smulbb r3, r3, r0 5757 uxth r3, r3 5758 strb r3, [r4, #4] 5759 lsrs r3, r3, #8 5760 strb r3, [r4, #5] 5761 ldr r3, .L839+8 5762 ldrb r3, [r3] @ zero_extendqisi2 5763 strb r3, [r4, #7] 5764 ldr r3, .L839+12 5765 ldrb r5, [r3] @ zero_extendqisi2 5766 strb r5, [r4] 5767 ldrb r5, [r3, #1] @ zero_extendqisi2 5768 strb r5, [r4, #1] 5769 ldrb r5, [r3, #2] @ zero_extendqisi2 5770 ldrb r3, [r3, #3] @ zero_extendqisi2 5771 strb r0, [r4, #6] 5772 strb r5, [r4, #2] 5773 movs r5, #1 5774 strb r3, [r4, #3] 5775 movs r3, #32 5776 strb r3, [r4, #8] 5777 ldrb r3, [r1, #7] @ zero_extendqisi2 5778 ldr r0, .L839+16 5779 strb r2, [r4, #10] 5780 strb r3, [r4, #9] 5781 ldr r3, .L839+20 5782 ldrb r1, [r3] @ zero_extendqisi2 5783 mov r3, r2 5784.L837: 5785 uxtb r2, r3 5786 cmp r1, r2 5787 bhi .L838 5788 pop {r4, r5, r6, pc} 5789.L838: 5790 ldrb r2, [r3, r0] @ zero_extendqisi2 5791 adds r3, r3, #1 5792 ldrb r6, [r4, #10] @ zero_extendqisi2 5793 lsl r2, r5, r2 5794 orrs r2, r2, r6 5795 strb r2, [r4, #10] 5796 b .L837 5797.L840: 5798 .align 2 5799.L839: 5800 .word .LANCHOR18 5801 .word .LANCHOR3 5802 .word .LANCHOR33 5803 .word .LANCHOR69 5804 .word .LANCHOR26 5805 .word .LANCHOR25 5806 .size ReadFlashInfo, .-ReadFlashInfo 5807 .section .text.FtlBbt2Bitmap,"ax",%progbits 5808 .align 1 5809 .global FtlBbt2Bitmap 5810 .syntax unified 5811 .thumb 5812 .thumb_func 5813 .fpu softvfp 5814 .type FtlBbt2Bitmap, %function 5815FtlBbt2Bitmap: 5816 @ args = 0, pretend = 0, frame = 0 5817 @ frame_needed = 0, uses_anonymous_args = 0 5818 ldr r3, .L847 5819 push {r4, r5, r6, r7, r8, lr} 5820 mov r5, r0 5821 ldr r7, .L847+4 5822 mov r6, r1 5823 subs r4, r5, #2 5824 addw r5, r5, #1022 5825 ldrh r2, [r3] 5826 movs r1, #0 5827 ldr r8, .L847+20 5828 mov r0, r6 5829 lsls r2, r2, #2 5830 bl ftl_memset 5831.L844: 5832 ldrh r3, [r4, #2] 5833 movw r2, #65535 5834 cmp r3, r2 5835 beq .L841 5836 ldrh r2, [r7] 5837 cmp r2, r3 5838 bhi .L843 5839 mov r1, r8 5840 movs r2, #79 5841 ldr r0, .L847+8 5842 bl printf 5843 ldr r1, .L847+12 5844 ldr r0, .L847+16 5845 bl printf 5846.L843: 5847 ldrh r3, [r4, #2]! 5848 movs r2, #1 5849 cmp r5, r4 5850 lsr r1, r3, #5 5851 and r3, r3, #31 5852 lsl r3, r2, r3 5853 ldr r2, [r6, r1, lsl #2] 5854 orr r2, r2, r3 5855 str r2, [r6, r1, lsl #2] 5856 bne .L844 5857.L841: 5858 pop {r4, r5, r6, r7, r8, pc} 5859.L848: 5860 .align 2 5861.L847: 5862 .word .LANCHOR123 5863 .word .LANCHOR51 5864 .word .LC5 5865 .word .LC6 5866 .word .LC7 5867 .word .LANCHOR124 5868 .size FtlBbt2Bitmap, .-FtlBbt2Bitmap 5869 .section .text.FtlBbtMemInit,"ax",%progbits 5870 .align 1 5871 .global FtlBbtMemInit 5872 .syntax unified 5873 .thumb 5874 .thumb_func 5875 .fpu softvfp 5876 .type FtlBbtMemInit, %function 5877FtlBbtMemInit: 5878 @ args = 0, pretend = 0, frame = 0 5879 @ frame_needed = 0, uses_anonymous_args = 0 5880 @ link register save eliminated. 5881 ldr r0, .L850 5882 movw r3, #65535 5883 movs r2, #16 5884 movs r1, #255 5885 strh r3, [r0] @ movhi 5886 movs r3, #0 5887 strh r3, [r0, #6] @ movhi 5888 adds r0, r0, #12 5889 b ftl_memset 5890.L851: 5891 .align 2 5892.L850: 5893 .word .LANCHOR75 5894 .size FtlBbtMemInit, .-FtlBbtMemInit 5895 .section .text.FtlFreeSysBlkQueueInit,"ax",%progbits 5896 .align 1 5897 .global FtlFreeSysBlkQueueInit 5898 .syntax unified 5899 .thumb 5900 .thumb_func 5901 .fpu softvfp 5902 .type FtlFreeSysBlkQueueInit, %function 5903FtlFreeSysBlkQueueInit: 5904 @ args = 0, pretend = 0, frame = 0 5905 @ frame_needed = 0, uses_anonymous_args = 0 5906 ldr r3, .L853 5907 mov r2, #2048 5908 push {r4, lr} 5909 movs r4, #0 5910 mov r1, r4 5911 strh r4, [r3, #2] @ movhi 5912 strh r4, [r3, #4] @ movhi 5913 strh r4, [r3, #6] @ movhi 5914 strh r0, [r3], #8 @ movhi 5915 mov r0, r3 5916 bl ftl_memset 5917 mov r0, r4 5918 pop {r4, pc} 5919.L854: 5920 .align 2 5921.L853: 5922 .word .LANCHOR76 5923 .size FtlFreeSysBlkQueueInit, .-FtlFreeSysBlkQueueInit 5924 .section .text.ftl_free_no_use_map_blk,"ax",%progbits 5925 .align 1 5926 .global ftl_free_no_use_map_blk 5927 .syntax unified 5928 .thumb 5929 .thumb_func 5930 .fpu softvfp 5931 .type ftl_free_no_use_map_blk, %function 5932ftl_free_no_use_map_blk: 5933 @ args = 0, pretend = 0, frame = 8 5934 @ frame_needed = 0, uses_anonymous_args = 0 5935 ldrh r2, [r0, #10] 5936 push {r0, r1, r4, r5, r6, r7, r8, r10, fp, lr} 5937 mov r4, r0 5938 ldr r5, [r0, #20] 5939 movs r1, #0 5940 ldr r7, [r0, #12] 5941 lsls r2, r2, #1 5942 ldr r6, [r0, #24] 5943 mov r0, r5 5944 bl ftl_memset 5945 movs r3, #0 5946.L856: 5947 ldrh r1, [r4, #6] 5948 uxth r2, r3 5949 cmp r1, r2 5950 bhi .L860 5951 ldr r3, .L875 5952 movs r6, #0 5953 mov r10, r6 5954 ldrh r2, [r3] 5955 ldrh r3, [r4] 5956 strh r2, [r5, r3, lsl #1] @ movhi 5957 mov r2, r6 5958 ldrh fp, [r5] 5959.L861: 5960 ldrh r3, [r4, #10] 5961 uxth ip, r6 5962 cmp r3, ip 5963 bhi .L865 5964 mov r0, r10 5965 add sp, sp, #8 5966 @ sp needed 5967 pop {r4, r5, r6, r7, r8, r10, fp, pc} 5968.L860: 5969 uxth r2, r3 5970 ldr r1, [r6, r2, lsl #2] 5971 movs r2, #0 5972 ubfx r1, r1, #10, #16 5973.L857: 5974 ldrh ip, [r4, #10] 5975 uxth r0, r2 5976 cmp ip, r0 5977 bhi .L859 5978 adds r3, r3, #1 5979 b .L856 5980.L859: 5981 uxth r0, r2 5982 ldrh ip, [r7, r0, lsl #1] 5983 cmp ip, r1 5984 bne .L858 5985 cbz r1, .L858 5986 ldrh ip, [r5, r0, lsl #1] 5987 add ip, ip, #1 5988 strh ip, [r5, r0, lsl #1] @ movhi 5989.L858: 5990 adds r2, r2, #1 5991 b .L857 5992.L865: 5993 uxth r1, r6 5994 ldrh r3, [r5, r1, lsl #1] 5995 lsl r8, r1, #1 5996 cmp fp, r3 5997 bls .L862 5998 ldrh r0, [r7, r1, lsl #1] 5999 add r8, r8, r7 6000 cbnz r0, .L863 6001.L864: 6002 adds r6, r6, #1 6003 b .L861 6004.L862: 6005 cmp r3, #0 6006 bne .L864 6007 ldrh r0, [r7, r1, lsl #1] 6008 add r8, r8, r7 6009 cmp r0, #0 6010 beq .L864 6011.L866: 6012 movs r1, #1 6013 str r2, [sp, #4] 6014 bl FtlFreeSysBlkQueueIn 6015 ldr r2, [sp, #4] 6016 strh r2, [r8] @ movhi 6017 ldrh r3, [r4, #8] 6018 subs r3, r3, #1 6019 strh r3, [r4, #8] @ movhi 6020 b .L864 6021.L863: 6022 mov r10, ip 6023 mov fp, r3 6024 cmp r3, #0 6025 beq .L866 6026 b .L864 6027.L876: 6028 .align 2 6029.L875: 6030 .word .LANCHOR54 6031 .size ftl_free_no_use_map_blk, .-ftl_free_no_use_map_blk 6032 .section .text.FtlL2PDataInit,"ax",%progbits 6033 .align 1 6034 .global FtlL2PDataInit 6035 .syntax unified 6036 .thumb 6037 .thumb_func 6038 .fpu softvfp 6039 .type FtlL2PDataInit, %function 6040FtlL2PDataInit: 6041 @ args = 0, pretend = 0, frame = 0 6042 @ frame_needed = 0, uses_anonymous_args = 0 6043 push {r4, r5, r6, r7, r8, lr} 6044 movs r1, #0 6045 ldr r5, .L880 6046 ldr r4, .L880+4 6047 ldr r2, [r5] 6048 ldr r7, .L880+8 6049 ldr r6, .L880+12 6050 ldr r0, [r4] 6051 lsls r2, r2, #1 6052 ldr r8, .L880+44 6053 bl ftl_memset 6054 ldrh r3, [r7] 6055 movs r1, #255 6056 ldrh r2, [r6] 6057 ldr r0, [r8] 6058 muls r2, r3, r2 6059 bl ftl_memset 6060 ldr r3, .L880+16 6061 movw r0, #65535 6062 ldrh r1, [r6] 6063 ldr ip, [r8] 6064 ldr r2, [r3] 6065 movs r3, #12 6066 ldrh r7, [r7] 6067 mla r3, r1, r3, r3 6068 adds r1, r2, r3 6069 movs r3, #0 6070 mov lr, r3 6071.L878: 6072 adds r2, r2, #12 6073 adds r6, r3, r7 6074 cmp r2, r1 6075 bne .L879 6076 ldr r3, .L880+20 6077 ldr r2, [r5] 6078 strh r0, [r3, #2] @ movhi 6079 strh r2, [r3, #10] @ movhi 6080 movw r2, #61634 6081 strh r2, [r3, #4] @ movhi 6082 ldr r2, .L880+24 6083 strh r0, [r3] @ movhi 6084 ldrh r2, [r2] 6085 strh r2, [r3, #8] @ movhi 6086 ldr r2, .L880+28 6087 ldrh r2, [r2] 6088 strh r2, [r3, #6] @ movhi 6089 ldr r2, .L880+32 6090 ldr r2, [r2] 6091 str r2, [r3, #12] 6092 ldr r2, .L880+36 6093 ldr r2, [r2] 6094 str r2, [r3, #16] 6095 ldr r2, [r4] 6096 str r2, [r3, #20] 6097 ldr r2, .L880+40 6098 ldr r2, [r2] 6099 str r2, [r3, #24] 6100 pop {r4, r5, r6, r7, r8, pc} 6101.L879: 6102 bic r3, r3, #3 6103 str lr, [r2, #-8] 6104 add r3, r3, ip 6105 strh r0, [r2, #-12] @ movhi 6106 str r3, [r2, #-4] 6107 mov r3, r6 6108 b .L878 6109.L881: 6110 .align 2 6111.L880: 6112 .word .LANCHOR65 6113 .word .LANCHOR125 6114 .word .LANCHOR58 6115 .word .LANCHOR68 6116 .word .LANCHOR97 6117 .word .LANCHOR127 6118 .word .LANCHOR128 6119 .word .LANCHOR67 6120 .word .LANCHOR129 6121 .word .LANCHOR130 6122 .word .LANCHOR131 6123 .word .LANCHOR126 6124 .size FtlL2PDataInit, .-FtlL2PDataInit 6125 .section .text.FtlVariablesInit,"ax",%progbits 6126 .align 1 6127 .global FtlVariablesInit 6128 .syntax unified 6129 .thumb 6130 .thumb_func 6131 .fpu softvfp 6132 .type FtlVariablesInit, %function 6133FtlVariablesInit: 6134 @ args = 0, pretend = 0, frame = 0 6135 @ frame_needed = 0, uses_anonymous_args = 0 6136 push {r3, r4, r5, lr} 6137 movs r4, #0 6138 ldr r3, .L883 6139 movw r2, #65535 6140 mov r1, r4 6141 ldr r5, .L883+4 6142 str r4, [r3] 6143 ldr r3, .L883+8 6144 strh r2, [r3] @ movhi 6145 mov r2, #-1 6146 ldr r3, .L883+12 6147 str r4, [r3] 6148 ldr r3, .L883+16 6149 str r4, [r3] 6150 ldr r3, .L883+20 6151 str r2, [r3] 6152 ldr r3, .L883+24 6153 str r4, [r3] 6154 ldr r3, .L883+28 6155 strh r4, [r3] @ movhi 6156 ldr r3, .L883+32 6157 ldrh r2, [r3] 6158 ldr r3, .L883+36 6159 lsls r2, r2, #1 6160 ldr r0, [r3] 6161 bl ftl_memset 6162 ldrh r2, [r5] 6163 mov r1, r4 6164 ldr r3, .L883+40 6165 lsls r2, r2, #1 6166 ldr r0, [r3] 6167 bl ftl_memset 6168 ldrh r2, [r5] 6169 mov r1, r4 6170 ldr r3, .L883+44 6171 lsls r2, r2, #1 6172 ldr r0, [r3] 6173 bl ftl_memset 6174 mov r1, r4 6175 movs r2, #48 6176 ldr r0, .L883+48 6177 bl ftl_memset 6178 mov r2, #512 6179 mov r1, r4 6180 ldr r0, .L883+52 6181 bl ftl_memset 6182 bl FtlGcBufInit 6183 bl FtlL2PDataInit 6184 mov r0, r4 6185 pop {r3, r4, r5, pc} 6186.L884: 6187 .align 2 6188.L883: 6189 .word .LANCHOR132 6190 .word .LANCHOR41 6191 .word .LANCHOR133 6192 .word .LANCHOR134 6193 .word .LANCHOR135 6194 .word .LANCHOR136 6195 .word .LANCHOR28 6196 .word .LANCHOR71 6197 .word .LANCHOR62 6198 .word .LANCHOR72 6199 .word .LANCHOR79 6200 .word .LANCHOR137 6201 .word .LANCHOR81 6202 .word .LANCHOR138 6203 .size FtlVariablesInit, .-FtlVariablesInit 6204 .section .text.SupperBlkListInit,"ax",%progbits 6205 .align 1 6206 .global SupperBlkListInit 6207 .syntax unified 6208 .thumb 6209 .thumb_func 6210 .fpu softvfp 6211 .type SupperBlkListInit, %function 6212SupperBlkListInit: 6213 @ args = 0, pretend = 0, frame = 24 6214 @ frame_needed = 0, uses_anonymous_args = 0 6215 ldr r3, .L896 6216 movs r2, #6 6217 push {r4, r5, r6, r7, r8, r10, fp, lr} 6218 movs r1, #0 6219 ldr r6, .L896+4 6220 sub sp, sp, #24 6221 movs r4, #0 6222 ldrh r3, [r3] 6223 mov r8, r4 6224 ldr r0, [r6] 6225 mov r5, r4 6226 mov r10, r6 6227 muls r2, r3, r2 6228 bl ftl_memset 6229 ldr r3, .L896+8 6230 ldr r2, .L896+12 6231 ldr r1, .L896+16 6232 str r4, [r3] 6233 ldr r3, .L896+20 6234 strh r4, [r2] @ movhi 6235 strh r4, [r1] @ movhi 6236 str r4, [r3] 6237 ldr r3, .L896+24 6238 str r2, [sp, #8] 6239 str r4, [r3] 6240 ldr r3, .L896+28 6241 mov fp, r3 6242 strh r4, [r3] @ movhi 6243.L886: 6244 ldr r3, .L896+32 6245 sxth r7, r4 6246 ldrh r3, [r3] 6247 cmp r7, r3 6248 bge .L893 6249 ldr r3, .L896+36 6250 uxth r1, r4 6251 str r1, [sp, #12] 6252 ldrh r2, [r3] 6253 ldr r3, .L896+40 6254 ldrh r3, [r3] 6255 str r3, [sp, #4] 6256 movs r3, #0 6257 mov r6, r3 6258 b .L894 6259.L888: 6260 str r3, [sp, #20] 6261 ldr r3, .L896+44 6262 ldr r1, [sp, #12] 6263 str r2, [sp, #16] 6264 ldrb r0, [r3, r0] @ zero_extendqisi2 6265 bl V2P_block 6266 bl FtlBbmIsBadBlock 6267 ldr r2, [sp, #16] 6268 ldr r3, [sp, #20] 6269 cbnz r0, .L887 6270 ldr r1, [sp, #4] 6271 add r6, r6, r1 6272 sxth r6, r6 6273.L887: 6274 adds r3, r3, #1 6275.L894: 6276 sxth r0, r3 6277 cmp r0, r2 6278 blt .L888 6279 lsls r3, r7, #1 6280 cbz r6, .L889 6281 mov r1, r6 6282 str r3, [sp, #4] 6283 mov r0, #32768 6284 bl __aeabi_idiv 6285 ldr r3, [sp, #4] 6286 sxth r6, r0 6287.L890: 6288 ldr r2, [r10] 6289 add r3, r3, r7 6290 add r2, r2, r3, lsl #1 6291 ldr r3, .L896+48 6292 strh r6, [r2, #4] @ movhi 6293 ldrh r3, [r3] 6294 cmp r7, r3 6295 beq .L891 6296 ldr r3, .L896+52 6297 ldrh r3, [r3] 6298 cmp r7, r3 6299 beq .L891 6300 ldr r3, .L896+56 6301 ldrh r3, [r3] 6302 cmp r7, r3 6303 beq .L891 6304 ldr r3, .L896+60 6305 uxth r0, r4 6306 ldr r3, [r3] 6307 ldrh r3, [r3, r7, lsl #1] 6308 cbnz r3, .L892 6309 add r8, r8, #1 6310 uxth r8, r8 6311 bl INSERT_FREE_LIST 6312.L891: 6313 adds r4, r4, #1 6314 b .L886 6315.L889: 6316 ldr r2, .L896+60 6317 movw r1, #65535 6318 ldr r2, [r2] 6319 strh r1, [r2, r7, lsl #1] @ movhi 6320 b .L890 6321.L892: 6322 adds r5, r5, #1 6323 uxth r5, r5 6324 bl INSERT_DATA_LIST 6325 b .L891 6326.L893: 6327 ldr r2, [sp, #8] 6328 strh r8, [fp] @ movhi 6329 strh r5, [r2] @ movhi 6330 add r5, r5, r8 6331 cmp r3, r5 6332 bge .L895 6333 ldr r1, .L896+64 6334 movw r2, #2614 6335 ldr r0, .L896+68 6336 bl printf 6337 ldr r1, .L896+72 6338 ldr r0, .L896+76 6339 bl printf 6340.L895: 6341 movs r0, #0 6342 add sp, sp, #24 6343 @ sp needed 6344 pop {r4, r5, r6, r7, r8, r10, fp, pc} 6345.L897: 6346 .align 2 6347.L896: 6348 .word .LANCHOR41 6349 .word .LANCHOR82 6350 .word .LANCHOR88 6351 .word .LANCHOR86 6352 .word .LANCHOR139 6353 .word .LANCHOR83 6354 .word .LANCHOR85 6355 .word .LANCHOR89 6356 .word .LANCHOR40 6357 .word .LANCHOR38 6358 .word .LANCHOR53 6359 .word .LANCHOR47 6360 .word .LANCHOR92 6361 .word .LANCHOR93 6362 .word .LANCHOR94 6363 .word .LANCHOR84 6364 .word .LANCHOR140 6365 .word .LC5 6366 .word .LC6 6367 .word .LC7 6368 .size SupperBlkListInit, .-SupperBlkListInit 6369 .section .text.FtlGcPageVarInit,"ax",%progbits 6370 .align 1 6371 .global FtlGcPageVarInit 6372 .syntax unified 6373 .thumb 6374 .thumb_func 6375 .fpu softvfp 6376 .type FtlGcPageVarInit, %function 6377FtlGcPageVarInit: 6378 @ args = 0, pretend = 0, frame = 0 6379 @ frame_needed = 0, uses_anonymous_args = 0 6380 ldr r2, .L899 6381 movs r3, #0 6382 push {r4, lr} 6383 movs r1, #255 6384 ldr r4, .L899+4 6385 strh r3, [r2] @ movhi 6386 ldr r2, .L899+8 6387 strh r3, [r2] @ movhi 6388 ldrh r2, [r4] 6389 ldr r3, .L899+12 6390 lsls r2, r2, #1 6391 ldr r0, [r3] 6392 bl ftl_memset 6393 ldrh r3, [r4] 6394 movs r2, #12 6395 movs r1, #255 6396 muls r2, r3, r2 6397 ldr r3, .L899+16 6398 ldr r0, [r3] 6399 bl ftl_memset 6400 pop {r4, lr} 6401 b FtlGcBufInit 6402.L900: 6403 .align 2 6404.L899: 6405 .word .LANCHOR110 6406 .word .LANCHOR55 6407 .word .LANCHOR111 6408 .word .LANCHOR109 6409 .word .LANCHOR112 6410 .size FtlGcPageVarInit, .-FtlGcPageVarInit 6411 .section .text.idb_init,"ax",%progbits 6412 .align 1 6413 .global idb_init 6414 .syntax unified 6415 .thumb 6416 .thumb_func 6417 .fpu softvfp 6418 .type idb_init, %function 6419idb_init: 6420 @ args = 0, pretend = 0, frame = 0 6421 @ frame_needed = 0, uses_anonymous_args = 0 6422 push {r3, lr} 6423 mov r2, #262144 6424 movs r1, #0 6425 ldr r0, .L902 6426 bl ftl_memset 6427 movs r0, #0 6428 pop {r3, pc} 6429.L903: 6430 .align 2 6431.L902: 6432 .word idb_buf 6433 .size idb_init, .-idb_init 6434 .section .text.ftl_memcpy,"ax",%progbits 6435 .align 1 6436 .global ftl_memcpy 6437 .syntax unified 6438 .thumb 6439 .thumb_func 6440 .fpu softvfp 6441 .type ftl_memcpy, %function 6442ftl_memcpy: 6443 @ args = 0, pretend = 0, frame = 0 6444 @ frame_needed = 0, uses_anonymous_args = 0 6445 @ link register save eliminated. 6446 b memcpy 6447 .size ftl_memcpy, .-ftl_memcpy 6448 .section .text.FlashReadIdbData,"ax",%progbits 6449 .align 1 6450 .global FlashReadIdbData 6451 .syntax unified 6452 .thumb 6453 .thumb_func 6454 .fpu softvfp 6455 .type FlashReadIdbData, %function 6456FlashReadIdbData: 6457 @ args = 0, pretend = 0, frame = 0 6458 @ frame_needed = 0, uses_anonymous_args = 0 6459 push {r3, lr} 6460 mov r2, #2048 6461 ldr r1, .L906 6462 bl ftl_memcpy 6463 movs r0, #0 6464 pop {r3, pc} 6465.L907: 6466 .align 2 6467.L906: 6468 .word .LANCHOR141 6469 .size FlashReadIdbData, .-FlashReadIdbData 6470 .section .text.FlashLoadPhyInfoInRam,"ax",%progbits 6471 .align 1 6472 .global FlashLoadPhyInfoInRam 6473 .syntax unified 6474 .thumb 6475 .thumb_func 6476 .fpu softvfp 6477 .type FlashLoadPhyInfoInRam, %function 6478FlashLoadPhyInfoInRam: 6479 @ args = 0, pretend = 0, frame = 0 6480 @ frame_needed = 0, uses_anonymous_args = 0 6481 push {r4, r5, r6, r7, r8, lr} 6482 movs r6, #0 6483 ldr r7, .L916 6484 ldr r5, .L916+4 6485.L911: 6486 ldrb r2, [r7, #-1] @ zero_extendqisi2 6487 mov r1, r5 6488 mov r0, r7 6489 lsl r8, r6, #5 6490 bl FlashMemCmp8 6491 mov r4, r0 6492 cbnz r0, .L909 6493 ldr r5, .L916+8 6494 mov r3, r4 6495 ldr r2, .L916+12 6496 add r5, r5, r8 6497 ldrb r0, [r5, #22] @ zero_extendqisi2 6498 mov r1, r2 6499.L910: 6500 lsls r6, r3, #5 6501 ldrb r6, [r6, r2] @ zero_extendqisi2 6502 cmp r6, r0 6503 beq .L913 6504 adds r3, r3, #1 6505 cmp r3, #4 6506 bne .L910 6507.L913: 6508 add r1, r1, r3, lsl #5 6509 movs r2, #32 6510 ldr r0, .L916+16 6511 bl ftl_memcpy 6512 movs r2, #32 6513 mov r1, r5 6514 ldr r0, .L916+20 6515 bl ftl_memcpy 6516 b .L908 6517.L909: 6518 adds r6, r6, #1 6519 adds r7, r7, #32 6520 cmp r6, #77 6521 bne .L911 6522 mov r4, #-1 6523.L908: 6524 mov r0, r4 6525 pop {r4, r5, r6, r7, r8, pc} 6526.L917: 6527 .align 2 6528.L916: 6529 .word .LANCHOR142+1 6530 .word .LANCHOR22 6531 .word .LANCHOR142 6532 .word .LANCHOR143 6533 .word .LANCHOR7 6534 .word .LANCHOR31 6535 .size FlashLoadPhyInfoInRam, .-FlashLoadPhyInfoInRam 6536 .section .text.ftl_memcpy32,"ax",%progbits 6537 .align 1 6538 .global ftl_memcpy32 6539 .syntax unified 6540 .thumb 6541 .thumb_func 6542 .fpu softvfp 6543 .type ftl_memcpy32, %function 6544ftl_memcpy32: 6545 @ args = 0, pretend = 0, frame = 0 6546 @ frame_needed = 0, uses_anonymous_args = 0 6547 movs r3, #0 6548 push {r4, lr} 6549.L919: 6550 cmp r3, r2 6551 bne .L920 6552 pop {r4, pc} 6553.L920: 6554 ldr r4, [r1, r3, lsl #2] 6555 str r4, [r0, r3, lsl #2] 6556 adds r3, r3, #1 6557 b .L919 6558 .size ftl_memcpy32, .-ftl_memcpy32 6559 .section .text.NandcCopy1KB,"ax",%progbits 6560 .align 1 6561 .global NandcCopy1KB 6562 .syntax unified 6563 .thumb 6564 .thumb_func 6565 .fpu softvfp 6566 .type NandcCopy1KB, %function 6567NandcCopy1KB: 6568 @ args = 4, pretend = 0, frame = 0 6569 @ frame_needed = 0, uses_anonymous_args = 0 6570 cmp r1, #1 6571 push {r4, r5, r6, lr} 6572 mov r4, r2 6573 add r2, r0, #4096 6574 add r6, r0, #512 6575 add r0, r2, r4, lsl #9 6576 ldr r5, [sp, #16] 6577 bne .L922 6578 cbz r3, .L923 6579 lsls r1, r3, #30 6580 bne .L924 6581 mov r2, #256 6582 mov r1, r3 6583 bl ftl_memcpy32 6584.L923: 6585 cbz r5, .L921 6586 ldrb r2, [r5, #1] @ zero_extendqisi2 6587 lsrs r4, r4, #1 6588 ldrb r3, [r5] @ zero_extendqisi2 6589 add r4, r4, r4, lsl #1 6590 lsls r4, r4, #4 6591 orr r3, r3, r2, lsl #8 6592 ldrb r2, [r5, #2] @ zero_extendqisi2 6593 orr r3, r3, r2, lsl #16 6594 ldrb r2, [r5, #3] @ zero_extendqisi2 6595 orr r3, r3, r2, lsl #24 6596 str r3, [r6, r4] 6597 pop {r4, r5, r6, pc} 6598.L924: 6599 mov r2, #1024 6600 mov r1, r3 6601 bl ftl_memcpy 6602 b .L923 6603.L922: 6604 cbz r3, .L927 6605 lsls r2, r3, #30 6606 bne .L928 6607 mov r1, r0 6608 mov r2, #256 6609 mov r0, r3 6610 bl ftl_memcpy32 6611.L927: 6612 cbz r5, .L921 6613 lsrs r4, r4, #1 6614 add r4, r4, r4, lsl #1 6615 lsls r4, r4, #4 6616 ldr r3, [r6, r4] 6617 strb r3, [r5] 6618 lsrs r2, r3, #8 6619 strb r2, [r5, #1] 6620 lsrs r2, r3, #16 6621 lsrs r3, r3, #24 6622 strb r2, [r5, #2] 6623 strb r3, [r5, #3] 6624.L921: 6625 pop {r4, r5, r6, pc} 6626.L928: 6627 mov r1, r0 6628 mov r2, #1024 6629 mov r0, r3 6630 bl ftl_memcpy 6631 b .L927 6632 .size NandcCopy1KB, .-NandcCopy1KB 6633 .section .text.NandcXferData,"ax",%progbits 6634 .align 1 6635 .global NandcXferData 6636 .syntax unified 6637 .thumb 6638 .thumb_func 6639 .fpu softvfp 6640 .type NandcXferData, %function 6641NandcXferData: 6642 @ args = 4, pretend = 0, frame = 88 6643 @ frame_needed = 0, uses_anonymous_args = 0 6644 push {r4, r5, r6, r7, r8, r10, fp, lr} 6645 mov r7, r3 6646 ldr r3, .L975 6647 sub sp, sp, #96 6648 mov r6, r0 6649 mov r10, r2 6650 str r1, [sp, #12] 6651 ldr r5, [r3, r0, lsl #3] 6652 lsls r3, r7, #26 6653 ldr r4, [sp, #128] 6654 bne .L940 6655 cbnz r4, .L941 6656 add r4, sp, #32 6657 movs r2, #64 6658 movs r1, #255 6659 add r0, sp, #32 6660 bl ftl_memset 6661.L941: 6662 movs r3, #0 6663 mov r2, r10 6664 ldr r1, [sp, #12] 6665 mov r0, r6 6666 str r4, [sp, #4] 6667 str r7, [sp] 6668 bl NandcXferStart 6669 mov r0, r6 6670 bl NandcXferComp 6671 ldr r3, [sp, #12] 6672 cmp r3, #0 6673 bne .L965 6674 ldr r2, .L975+4 6675 lsr r0, r10, #1 6676 ldr ip, .L975+12 6677 ldr r3, [r2] 6678 cmp r3, #25 6679 ldr r3, [sp, #12] 6680 ite cc 6681 movcc r7, #64 6682 movcs r7, #128 6683 mov r1, r3 6684.L944: 6685 cmp r1, r0 6686 add r4, r4, #4 6687 add r6, r7, r3 6688 bcc .L945 6689 ldr r3, .L975+8 6690 lsr r4, r10, #2 6691 ldr r0, [r2] 6692 movs r2, #0 6693 mov r8, r2 6694 ldr r1, [r3] 6695.L946: 6696 cmp r2, r4 6697 bcs .L942 6698 cbnz r0, .L952 6699.L942: 6700 movs r3, #0 6701 str r3, [r5, #16] 6702.L953: 6703 ldr r3, .L975+8 6704 ldr r3, [r3] 6705 cmp r3, #5 6706 bls .L939 6707 ldr r3, [sp, #12] 6708 cbnz r3, .L939 6709 ldr r3, [r5] 6710 and r2, r3, #139264 6711 cmp r2, #139264 6712 ittt eq 6713 moveq r8, #-1 6714 orreq r3, r3, #131072 6715 streq r3, [r5] 6716.L939: 6717 mov r0, r8 6718 add sp, sp, #96 6719 @ sp needed 6720 pop {r4, r5, r6, r7, r8, r10, fp, pc} 6721.L945: 6722 bic lr, r3, #3 6723 ldr r3, [ip, #4] 6724 adds r1, r1, #1 6725 ldr r3, [r3, lr] 6726 strb r3, [r4, #-4] 6727 lsr lr, r3, #8 6728 strb lr, [r4, #-3] 6729 lsr lr, r3, #16 6730 lsrs r3, r3, #24 6731 strb lr, [r4, #-2] 6732 strb r3, [r4, #-1] 6733 mov r3, r6 6734 b .L944 6735.L952: 6736 add r3, r2, #8 6737 ldr r3, [r5, r3, lsl #2] 6738 str r3, [sp, #28] 6739 ldr r3, [sp, #28] 6740 lsls r6, r3, #29 6741 bmi .L968 6742 ldr r3, [sp, #28] 6743 ubfx r3, r3, #15, #1 6744 cmp r3, #0 6745 bne .L968 6746 cmp r1, #5 6747 bls .L948 6748 ldr r6, [sp, #28] 6749 ldr r3, [sp, #28] 6750 ubfx r6, r6, #3, #5 6751 ubfx ip, r3, #27, #1 6752 ldr r3, [sp, #28] 6753 ldr r7, [sp, #28] 6754 orr r6, r6, ip, lsl #5 6755 ubfx r3, r3, #16, #5 6756 ubfx r7, r7, #29, #1 6757 orr r3, r3, r7, lsl #5 6758 cmp r6, r3 6759 ldr r3, [sp, #28] 6760 itete hi 6761 ldrhi r6, [sp, #28] 6762 ldrls r6, [sp, #28] 6763 ubfxhi r3, r3, #3, #5 6764 ubfxls r3, r3, #16, #5 6765 ite hi 6766 ubfxhi r6, r6, #27, #1 6767 ubfxls r6, r6, #29, #1 6768.L974: 6769 orr r3, r3, r6, lsl #5 6770.L950: 6771 cmp r8, r3 6772 it cc 6773 movcc r8, r3 6774.L947: 6775 adds r2, r2, #1 6776 b .L946 6777.L948: 6778 cmp r1, #3 6779 bls .L950 6780 ldr r6, [sp, #28] 6781 ldr r3, [sp, #28] 6782 ubfx r6, r6, #3, #5 6783 ubfx ip, r3, #28, #1 6784 ldr r3, [sp, #28] 6785 ldr r7, [sp, #28] 6786 orr r6, r6, ip, lsl #5 6787 ubfx r3, r3, #16, #5 6788 ubfx r7, r7, #30, #1 6789 orr r3, r3, r7, lsl #5 6790 cmp r6, r3 6791 ldr r3, [sp, #28] 6792 itete hi 6793 ldrhi r6, [sp, #28] 6794 ldrls r6, [sp, #28] 6795 ubfxhi r3, r3, #3, #5 6796 ubfxls r3, r3, #16, #5 6797 ite hi 6798 ubfxhi r6, r6, #28, #1 6799 ubfxls r6, r6, #30, #1 6800 b .L974 6801.L968: 6802 mov r8, #-1 6803 b .L947 6804.L965: 6805 mov r8, #0 6806 b .L942 6807.L940: 6808 ldr r3, [sp, #12] 6809 cmp r3, #1 6810 bne .L954 6811 cmp r4, #0 6812 mov r8, #0 6813 ite ne 6814 movne r3, #4 6815 moveq r3, #0 6816 str r3, [sp, #16] 6817.L955: 6818 cmp r8, r10 6819 bcc .L957 6820 mov r8, #0 6821 b .L953 6822.L957: 6823 and fp, r8, #3 6824 cbz r7, .L970 6825 add r3, r7, r8, lsl #9 6826.L956: 6827 str r4, [sp] 6828 mov r2, fp 6829 movs r1, #1 6830 mov r0, r5 6831 bl NandcCopy1KB 6832 movs r3, #0 6833 movs r2, #2 6834 str r3, [sp, #4] 6835 movs r1, #1 6836 str r3, [sp] 6837 mov r0, r6 6838 mov r3, fp 6839 add r8, r8, #2 6840 bl NandcXferStart 6841 mov r0, r6 6842 bl NandcXferComp 6843 ldr r3, [sp, #16] 6844 add r4, r4, r3 6845 b .L955 6846.L970: 6847 mov r3, r7 6848 b .L956 6849.L954: 6850 mov r8, #0 6851 movs r2, #2 6852 mov r3, r8 6853 str r8, [sp, #4] 6854 str r8, [sp] 6855 mov r1, r8 6856 bl NandcXferStart 6857 mov fp, r7 6858 cmp r4, r8 6859 str r4, [sp, #16] 6860 mov r4, r8 6861 ite ne 6862 movne r3, #4 6863 moveq r3, r8 6864 str r3, [sp, #20] 6865.L958: 6866 cmp r4, r10 6867 bcs .L953 6868 mov r0, r6 6869 adds r4, r4, #2 6870 bl NandcXferComp 6871 ldr r3, [r5, #32] 6872 cmp r10, r4 6873 str r3, [sp, #28] 6874 bls .L959 6875 movs r3, #0 6876 movs r2, #2 6877 str r3, [sp, #4] 6878 movs r1, #0 6879 str r3, [sp] 6880 mov r0, r6 6881 and r3, r4, #3 6882 bl NandcXferStart 6883.L959: 6884 ldr r3, [sp, #28] 6885 lsls r3, r3, #29 6886 bmi .L971 6887 ldr r3, [sp, #28] 6888 ldr r2, [sp, #28] 6889 ubfx r3, r3, #3, #5 6890 ubfx r2, r2, #27, #1 6891 orr r3, r3, r2, lsl #5 6892 cmp r8, r3 6893 it cc 6894 movcc r8, r3 6895.L960: 6896 ldr r3, [sp, #16] 6897 cmp r7, #0 6898 sub r2, r4, #2 6899 mov r1, #0 6900 and r2, r2, #3 6901 mov r0, r5 6902 str r3, [sp] 6903 ite ne 6904 movne r3, fp 6905 moveq r3, #0 6906 add fp, fp, #1024 6907 bl NandcCopy1KB 6908 ldr r3, [sp, #16] 6909 ldr r2, [sp, #20] 6910 add r3, r3, r2 6911 str r3, [sp, #16] 6912 b .L958 6913.L971: 6914 mov r8, #-1 6915 b .L960 6916.L976: 6917 .align 2 6918.L975: 6919 .word .LANCHOR6 6920 .word .LANCHOR32 6921 .word .LANCHOR34 6922 .word .LANCHOR35 6923 .size NandcXferData, .-NandcXferData 6924 .section .text.FlashReadRawPage,"ax",%progbits 6925 .align 1 6926 .global FlashReadRawPage 6927 .syntax unified 6928 .thumb 6929 .thumb_func 6930 .fpu softvfp 6931 .type FlashReadRawPage, %function 6932FlashReadRawPage: 6933 @ args = 0, pretend = 0, frame = 0 6934 @ frame_needed = 0, uses_anonymous_args = 0 6935 push {r0, r1, r4, r5, r6, r7, r8, lr} 6936 mov r8, r3 6937 ldr r3, .L979 6938 mov r6, r1 6939 mov r7, r2 6940 mov r4, r0 6941 ldrb r5, [r3, #9] @ zero_extendqisi2 6942 cbnz r0, .L978 6943 ldr r3, .L979+4 6944 ldr r2, .L979+8 6945 ldrb r3, [r3] @ zero_extendqisi2 6946 ldr r0, [r2] 6947 muls r0, r3, r0 6948 cmp r0, r1 6949 it hi 6950 movhi r5, #4 6951.L978: 6952 mov r0, r4 6953 bl NandcWaitFlashReady 6954 mov r0, r4 6955 bl NandcFlashCs 6956 mov r1, r6 6957 mov r0, r4 6958 bl FlashReadCmd 6959 mov r0, r4 6960 bl NandcWaitFlashReady 6961 mov r3, r7 6962 mov r2, r5 6963 str r8, [sp] 6964 movs r1, #0 6965 mov r0, r4 6966 bl NandcXferData 6967 mov r1, r0 6968 mov r0, r4 6969 bl NandcFlashDeCs 6970 mov r0, r1 6971 add sp, sp, #8 6972 @ sp needed 6973 pop {r4, r5, r6, r7, r8, pc} 6974.L980: 6975 .align 2 6976.L979: 6977 .word .LANCHOR31 6978 .word .LANCHOR2 6979 .word .LANCHOR3 6980 .size FlashReadRawPage, .-FlashReadRawPage 6981 .section .text.FlashDdrTunningRead,"ax",%progbits 6982 .align 1 6983 .global FlashDdrTunningRead 6984 .syntax unified 6985 .thumb 6986 .thumb_func 6987 .fpu softvfp 6988 .type FlashDdrTunningRead, %function 6989FlashDdrTunningRead: 6990 @ args = 4, pretend = 0, frame = 24 6991 @ frame_needed = 0, uses_anonymous_args = 0 6992 push {r4, r5, r6, r7, r8, r10, fp, lr} 6993 mov r7, r3 6994 ldr r3, .L1006 6995 sub sp, sp, #24 6996 str r0, [sp, #8] 6997 ldr r3, [r3] 6998 str r1, [sp, #12] 6999 str r2, [sp, #4] 7000 ldr r3, [r3, #304] 7001 str r3, [sp, #20] 7002 ldr r3, .L1006+4 7003 ldr r3, [r3] 7004 cmp r3, #8 7005 ldr r3, [sp, #56] 7006 ite cc 7007 movcc fp, #6 7008 movcs fp, #12 7009 cmp r3, #0 7010 beq .L995 7011 movs r0, #1 7012 ldr r4, .L1006+8 7013 bl FlashSetInterfaceMode 7014 movs r0, #1 7015 bl NandcSetMode 7016 ldr r0, [sp, #8] 7017 bl FlashReset 7018 mov r3, r7 7019 ldr r2, [sp, #4] 7020 ldr r1, [sp, #12] 7021 ldr r0, [sp, #8] 7022 bl FlashReadRawPage 7023 mov r6, r0 7024 ldrb r0, [r4] @ zero_extendqisi2 7025 bl FlashSetInterfaceMode 7026 ldrb r0, [r4] @ zero_extendqisi2 7027 bl NandcSetMode 7028 adds r3, r6, #1 7029 bne .L984 7030.L993: 7031 mov r6, #-1 7032.L981: 7033 mov r0, r6 7034 add sp, sp, #24 7035 @ sp needed 7036 pop {r4, r5, r6, r7, r8, r10, fp, pc} 7037.L984: 7038 mov r2, r6 7039 ldr r1, [sp, #12] 7040 ldr r0, .L1006+12 7041 bl printf 7042 ldr r2, .L1006+16 7043 ldr r3, [r2] 7044 adds r3, r3, #1 7045 cmp r3, #2048 7046 bcs .L986 7047 str r3, [r2] 7048 b .L981 7049.L986: 7050 movs r7, #0 7051 str r7, [r2] 7052 str r7, [sp, #4] 7053.L983: 7054 mov r10, #0 7055 mov r8, #-1 7056 mov r5, r10 7057 mov r4, r10 7058 str r10, [sp, #16] 7059.L991: 7060 uxtb r0, fp 7061 bl NandcSetDdrPara 7062 mov r3, r7 7063 ldr r2, [sp, #4] 7064 ldr r1, [sp, #12] 7065 ldr r0, [sp, #8] 7066 bl FlashReadRawPage 7067 adds r3, r6, #1 7068 cmp r0, r3 7069 bhi .L987 7070 cmp r0, #2 7071 bhi .L997 7072 adds r4, r4, #1 7073 cmp r4, #9 7074 bls .L997 7075 mov r3, r5 7076 mov r6, r0 7077 sub r5, fp, r4 7078 mov r8, #0 7079.L989: 7080 ldr r2, [sp, #16] 7081 cmp r4, r2 7082 it ls 7083 movls r5, r3 7084.L990: 7085 cbz r5, .L992 7086 mov r1, r5 7087 ldr r0, .L1006+20 7088 bl printf 7089 uxtb r0, r5 7090 bl NandcSetDdrPara 7091.L992: 7092 cmp r8, #0 7093 beq .L981 7094 ldr r2, [sp, #12] 7095 ldr r1, [sp, #8] 7096 ldr r0, .L1006+24 7097 bl printf 7098 ldr r3, [sp, #56] 7099 cmp r3, #0 7100 beq .L993 7101 ldr r3, [sp, #20] 7102 ubfx r0, r3, #8, #8 7103 bl NandcSetDdrPara 7104 b .L981 7105.L995: 7106 mov r6, #1024 7107 b .L983 7108.L987: 7109 ldr r3, [sp, #16] 7110 cmp r4, r3 7111 bls .L998 7112 cmp r4, #7 7113 sub r5, r10, r4 7114 bhi .L990 7115 str r4, [sp, #16] 7116.L998: 7117 movs r4, #0 7118 b .L988 7119.L997: 7120 mov r8, #0 7121 mov r10, fp 7122 mov r6, r0 7123 mov r7, r8 7124 str r8, [sp, #4] 7125.L988: 7126 add fp, fp, #2 7127 cmp fp, #69 7128 bls .L991 7129 mov r3, r5 7130 mov r5, r10 7131 b .L989 7132.L1007: 7133 .align 2 7134.L1006: 7135 .word .LANCHOR19 7136 .word .LANCHOR34 7137 .word .LANCHOR24 7138 .word .LC9 7139 .word .LANCHOR144 7140 .word .LC10 7141 .word .LC11 7142 .size FlashDdrTunningRead, .-FlashDdrTunningRead 7143 .section .text.FlashReadPage,"ax",%progbits 7144 .align 1 7145 .global FlashReadPage 7146 .syntax unified 7147 .thumb 7148 .thumb_func 7149 .fpu softvfp 7150 .type FlashReadPage, %function 7151FlashReadPage: 7152 @ args = 0, pretend = 0, frame = 0 7153 @ frame_needed = 0, uses_anonymous_args = 0 7154 push {r0, r1, r4, r5, r6, r7, r8, r10, fp, lr} 7155 mov r7, r2 7156 mov r5, r0 7157 mov r6, r1 7158 mov r8, r3 7159 bl FlashReadRawPage 7160 adds r2, r0, #1 7161 mov r4, r0 7162 bne .L1009 7163 ldr r10, .L1027+20 7164 ldrb fp, [r10] @ zero_extendqisi2 7165 cmp fp, #0 7166 bne .L1010 7167.L1012: 7168 ldr r3, .L1027 7169 ldrb r3, [r3] @ zero_extendqisi2 7170 cbz r3, .L1009 7171 ldr r3, .L1027+4 7172 mov r1, r6 7173 mov r2, r7 7174 mov r0, r5 7175 ldr r3, [r3] 7176 ldr r10, [r3, #304] 7177 movs r3, #1 7178 str r3, [sp] 7179 mov r3, r8 7180 bl FlashDdrTunningRead 7181 adds r1, r0, #1 7182 mov r4, r0 7183 beq .L1013 7184 ldr r3, .L1027+8 7185 ldrb r3, [r3] @ zero_extendqisi2 7186 cmp r0, r3, lsr #1 7187 bls .L1009 7188.L1013: 7189 ubfx r0, r10, #8, #8 7190 bl NandcSetDdrPara 7191 b .L1009 7192.L1010: 7193 movs r3, #0 7194 mov r2, r7 7195 strb r3, [r10] 7196 mov r1, r6 7197 mov r3, r8 7198 mov r0, r5 7199 bl FlashReadRawPage 7200 adds r3, r0, #1 7201 strb fp, [r10] 7202 beq .L1012 7203 mov r4, r0 7204.L1009: 7205 ldr r10, .L1027+24 7206 ldr fp, [r10] 7207 cmp fp, #0 7208 beq .L1008 7209 adds r2, r4, #1 7210 bne .L1008 7211 mov r3, r8 7212 mov r2, r7 7213 mov r1, r6 7214 mov r0, r5 7215 blx fp 7216 mov r3, r6 7217 mov r4, r0 7218 mov r1, r0 7219 mov r2, r5 7220 ldr r0, .L1027+12 7221 bl printf 7222 adds r3, r4, #1 7223 bne .L1008 7224 ldr r3, .L1027+16 7225 ldrb r3, [r3] @ zero_extendqisi2 7226 cbz r3, .L1008 7227 mov r0, r5 7228 bl flash_enter_slc_mode 7229 ldr r4, [r10] 7230 mov r3, r8 7231 mov r2, r7 7232 mov r1, r6 7233 mov r0, r5 7234 blx r4 7235 mov r4, r0 7236 mov r0, r5 7237 bl flash_exit_slc_mode 7238.L1008: 7239 mov r0, r4 7240 add sp, sp, #8 7241 @ sp needed 7242 pop {r4, r5, r6, r7, r8, r10, fp, pc} 7243.L1028: 7244 .align 2 7245.L1027: 7246 .word .LANCHOR30 7247 .word .LANCHOR19 7248 .word .LANCHOR33 7249 .word .LC12 7250 .word .LANCHOR8 7251 .word .LANCHOR5 7252 .word .LANCHOR145 7253 .size FlashReadPage, .-FlashReadPage 7254 .section .text.FlashDdrParaScan,"ax",%progbits 7255 .align 1 7256 .global FlashDdrParaScan 7257 .syntax unified 7258 .thumb 7259 .thumb_func 7260 .fpu softvfp 7261 .type FlashDdrParaScan, %function 7262FlashDdrParaScan: 7263 @ args = 0, pretend = 0, frame = 0 7264 @ frame_needed = 0, uses_anonymous_args = 0 7265 push {r0, r1, r4, r5, r6, r7, r8, lr} 7266 mov r6, r0 7267 ldr r4, .L1040 7268 movs r5, #0 7269 mov r7, r1 7270 ldrb r0, [r4] @ zero_extendqisi2 7271 bl FlashSetInterfaceMode 7272 ldrb r0, [r4] @ zero_extendqisi2 7273 bl NandcSetMode 7274 mov r3, r5 7275 mov r2, r5 7276 str r5, [sp] 7277 mov r1, r7 7278 mov r0, r6 7279 bl FlashDdrTunningRead 7280 mov r3, r5 7281 mov r2, r5 7282 mov r8, r0 7283 mov r1, r7 7284 mov r0, r6 7285 ldr r5, .L1040+4 7286 bl FlashReadRawPage 7287 adds r0, r0, #1 7288 beq .L1030 7289 cmp r8, #-1 7290 bne .L1031 7291.L1030: 7292 ldrb r3, [r4] @ zero_extendqisi2 7293 lsls r3, r3, #31 7294 bpl .L1031 7295 movs r0, #1 7296 bl FlashSetInterfaceMode 7297 movs r0, #1 7298 bl NandcSetMode 7299 movs r3, #0 7300.L1039: 7301 movs r0, #0 7302 strb r3, [r5] 7303 add sp, sp, #8 7304 @ sp needed 7305 pop {r4, r5, r6, r7, r8, pc} 7306.L1031: 7307 movs r3, #1 7308 b .L1039 7309.L1041: 7310 .align 2 7311.L1040: 7312 .word .LANCHOR24 7313 .word .LANCHOR30 7314 .size FlashDdrParaScan, .-FlashDdrParaScan 7315 .section .text.FlashLoadPhyInfo,"ax",%progbits 7316 .align 1 7317 .global FlashLoadPhyInfo 7318 .syntax unified 7319 .thumb 7320 .thumb_func 7321 .fpu softvfp 7322 .type FlashLoadPhyInfo, %function 7323FlashLoadPhyInfo: 7324 @ args = 0, pretend = 0, frame = 24 7325 @ frame_needed = 0, uses_anonymous_args = 0 7326 push {r4, r5, r6, r7, r8, r10, fp, lr} 7327 movs r3, #60 7328 sub sp, sp, #24 7329 ldr fp, .L1057+8 7330 movs r4, #0 7331 movs r7, #4 7332 strb r3, [sp, #20] 7333 movs r3, #40 7334 strb r3, [sp, #21] 7335 movs r3, #24 7336 strb r3, [sp, #22] 7337 movs r3, #16 7338 ldr r1, .L1057 7339 mov r0, r4 7340 strb r3, [sp, #23] 7341 mov r6, #-1 7342 ldrh r3, [fp, #10] 7343 ldr r8, .L1057+36 7344 ldr r5, .L1057+4 7345 str r3, [sp, #4] 7346 ldr r3, [r1] 7347 str r4, [r8] 7348 str r3, [r5] 7349 bl flash_enter_slc_mode 7350 mov r10, r1 7351 str r8, [sp, #12] 7352.L1043: 7353 mov r8, #0 7354 adds r3, r4, #1 7355 str r3, [sp, #8] 7356.L1045: 7357 add r3, sp, #20 7358 ldrb r0, [r3, r8] @ zero_extendqisi2 7359 bl FlashBchSel 7360 movs r3, #0 7361 ldr r2, [r10] 7362 mov r1, r4 7363 mov r0, r3 7364 bl FlashReadRawPage 7365 adds r0, r0, #1 7366 bne .L1044 7367 movs r3, #0 7368 ldr r2, [r10] 7369 ldr r1, [sp, #8] 7370 mov r0, r3 7371 bl FlashReadRawPage 7372 adds r0, r0, #1 7373 bne .L1044 7374 add r8, r8, #1 7375 cmp r8, #4 7376 bne .L1045 7377.L1046: 7378 ldr r3, [sp, #4] 7379 subs r7, r7, #1 7380 add r4, r4, r3 7381 bne .L1043 7382 mov r0, r7 7383 b .L1056 7384.L1047: 7385 movw r1, #2036 7386 add r0, r8, #12 7387 bl JSHash 7388 ldr r3, [r8, #8] 7389 cmp r3, r0 7390 bne .L1053 7391 movs r2, #32 7392 add r1, r8, #160 7393 ldr r0, .L1057+8 7394 bl ftl_memcpy 7395 ldr r1, [r5] 7396 movs r2, #32 7397 ldr r0, .L1057+12 7398 adds r1, r1, #192 7399 bl ftl_memcpy 7400 ldr r1, [r5] 7401 mov r2, #852 7402 ldr r0, .L1057+16 7403 adds r1, r1, #224 7404 bl ftl_memcpy 7405 ldr r6, [r5] 7406 mov r0, r4 7407 ldr r3, .L1057+20 7408 ldrh r1, [fp, #10] 7409 ldr r2, [r6, #1076] 7410 strb r2, [r3] 7411 ldr r3, [sp, #12] 7412 str r4, [r3] 7413 bl __aeabi_uidiv 7414 ldr r3, .L1057+24 7415 adds r2, r0, #1 7416 cbz r0, .L1049 7417.L1055: 7418 str r2, [r3] 7419 ldrh r2, [r6, #14] 7420 movs r6, #0 7421 ldr r3, .L1057+28 7422 strb r2, [r3] 7423 b .L1046 7424.L1049: 7425 movs r2, #2 7426 b .L1055 7427.L1053: 7428 mov r6, #-1 7429 b .L1046 7430.L1044: 7431 ldr r8, [r5] 7432 ldr r2, .L1057+32 7433 ldr r3, [r8] 7434 cmp r3, r2 7435 bne .L1046 7436 cmp r6, #0 7437 bne .L1047 7438 ldrh r1, [fp, #10] 7439 mov r0, r4 7440 bl __aeabi_uidiv 7441 ldr r3, .L1057+24 7442 adds r0, r0, #1 7443 str r0, [r3] 7444 mov r0, r6 7445.L1056: 7446 bl flash_exit_slc_mode 7447 mov r0, r6 7448 add sp, sp, #24 7449 @ sp needed 7450 pop {r4, r5, r6, r7, r8, r10, fp, pc} 7451.L1058: 7452 .align 2 7453.L1057: 7454 .word .LANCHOR147 7455 .word .LANCHOR146 7456 .word .LANCHOR31 7457 .word .LANCHOR7 7458 .word .LANCHOR20 7459 .word .LANCHOR30 7460 .word .LANCHOR149 7461 .word .LANCHOR150 7462 .word 1312902724 7463 .word .LANCHOR148 7464 .size FlashLoadPhyInfo, .-FlashLoadPhyInfo 7465 .section .text.ToshibaReadRetrial,"ax",%progbits 7466 .align 1 7467 .global ToshibaReadRetrial 7468 .syntax unified 7469 .thumb 7470 .thumb_func 7471 .fpu softvfp 7472 .type ToshibaReadRetrial, %function 7473ToshibaReadRetrial: 7474 @ args = 0, pretend = 0, frame = 24 7475 @ frame_needed = 0, uses_anonymous_args = 0 7476 push {r4, r5, r6, r7, r8, r10, fp, lr} 7477 sub sp, sp, #24 7478 mov r6, r0 7479 str r2, [sp, #12] 7480 mov fp, r3 7481 str r1, [sp, #20] 7482 bl NandcWaitFlashReady 7483 ldr r3, .L1086 7484 ldr r2, .L1086+4 7485 ldr r4, [r3, r6, lsl #3] 7486 add r3, r3, r6, lsl #3 7487 str r2, [sp, #16] 7488 ldrb r7, [r3, #4] @ zero_extendqisi2 7489 ldrb r3, [r2] @ zero_extendqisi2 7490 add r5, r7, #8 7491 subs r3, r3, #67 7492 add r5, r4, r5, lsl #8 7493 cmp r3, #1 7494 bls .L1076 7495 ldr r3, .L1086+8 7496 ldrb r3, [r3] @ zero_extendqisi2 7497 cbz r3, .L1077 7498 movs r0, #0 7499 bl NandcSetDdrMode 7500 movs r3, #1 7501.L1077: 7502 str r3, [sp, #8] 7503 add r3, r4, r7, lsl #8 7504 movs r2, #92 7505 str r2, [r3, #2056] 7506 movs r2, #197 7507 str r2, [r3, #2056] 7508.L1060: 7509 mov r8, #1 7510 mov r3, #-1 7511 str r3, [sp, #4] 7512.L1062: 7513 ldr r3, .L1086+12 7514 ldrb r3, [r3] @ zero_extendqisi2 7515 adds r3, r3, #1 7516 cmp r8, r3 7517 bcc .L1071 7518 ldr r10, [sp, #4] 7519.L1070: 7520 ldr r3, [sp, #16] 7521 movs r1, #0 7522 mov r0, r5 7523 ldrb r2, [r3] @ zero_extendqisi2 7524 subs r2, r2, #67 7525 cmp r2, #1 7526 bhi .L1072 7527 bl SandiskSetRRPara 7528.L1073: 7529 add r4, r4, r7, lsl #8 7530 movs r2, #255 7531 str r2, [r4, #2056] 7532 ldr r2, .L1086+16 7533 ldrb r2, [r2] @ zero_extendqisi2 7534 add r2, r2, r2, lsl #1 7535 cmp r10, r2, asr #2 7536 bcc .L1074 7537 cmp r10, #-1 7538 it ne 7539 movne r10, #256 7540.L1074: 7541 mov r0, r6 7542 bl NandcWaitFlashReady 7543 ldr r3, [sp, #8] 7544 cbz r3, .L1059 7545 movs r0, #4 7546 bl NandcSetDdrMode 7547.L1059: 7548 mov r0, r10 7549 add sp, sp, #24 7550 @ sp needed 7551 pop {r4, r5, r6, r7, r8, r10, fp, pc} 7552.L1076: 7553 movs r3, #0 7554 str r3, [sp, #8] 7555 b .L1060 7556.L1071: 7557 ldr r3, [sp, #16] 7558 mov r0, r5 7559 uxtb r1, r8 7560 ldrb r3, [r3] @ zero_extendqisi2 7561 subs r3, r3, #67 7562 cmp r3, #1 7563 bhi .L1063 7564 bl SandiskSetRRPara 7565.L1064: 7566 ldr r3, [sp, #16] 7567 ldrb r3, [r3] @ zero_extendqisi2 7568 cmp r3, #34 7569 bne .L1065 7570 ldr r3, .L1086+12 7571 ldrb r3, [r3] @ zero_extendqisi2 7572 subs r3, r3, #3 7573 cmp r8, r3 7574 ittt eq 7575 addeq r3, r4, r7, lsl #8 7576 moveq r2, #179 7577 streq r2, [r3, #2056] 7578.L1065: 7579 add r3, r4, r7, lsl #8 7580 movs r2, #38 7581 str r2, [r3, #2056] 7582 movs r2, #93 7583 str r2, [r3, #2056] 7584 ldr r3, [sp, #8] 7585 cbz r3, .L1066 7586 movs r0, #4 7587 bl NandcSetDdrMode 7588 mov r3, fp 7589 ldr r2, [sp, #12] 7590 ldr r1, [sp, #20] 7591 mov r0, r6 7592 bl FlashReadRawPage 7593 mov r10, r0 7594 movs r0, #0 7595 bl NandcSetDdrMode 7596.L1067: 7597 cmp r10, #-1 7598 beq .L1068 7599 ldr r2, .L1086+16 7600 ldr r3, [sp, #4] 7601 ldrb r2, [r2] @ zero_extendqisi2 7602 cmp r3, #-1 7603 it eq 7604 moveq r3, r10 7605 str r3, [sp, #4] 7606 add r2, r2, r2, lsl #1 7607 cmp r10, r2, asr #2 7608 bcc .L1070 7609 mov fp, #0 7610 str fp, [sp, #12] 7611.L1068: 7612 add r8, r8, #1 7613 b .L1062 7614.L1063: 7615 bl ToshibaSetRRPara 7616 b .L1064 7617.L1066: 7618 mov r3, fp 7619 ldr r2, [sp, #12] 7620 ldr r1, [sp, #20] 7621 mov r0, r6 7622 bl FlashReadRawPage 7623 mov r10, r0 7624 b .L1067 7625.L1072: 7626 bl ToshibaSetRRPara 7627 b .L1073 7628.L1087: 7629 .align 2 7630.L1086: 7631 .word .LANCHOR6 7632 .word .LANCHOR10 7633 .word .LANCHOR30 7634 .word .LANCHOR151 7635 .word .LANCHOR33 7636 .size ToshibaReadRetrial, .-ToshibaReadRetrial 7637 .section .text.SamsungReadRetrial,"ax",%progbits 7638 .align 1 7639 .global SamsungReadRetrial 7640 .syntax unified 7641 .thumb 7642 .thumb_func 7643 .fpu softvfp 7644 .type SamsungReadRetrial, %function 7645SamsungReadRetrial: 7646 @ args = 0, pretend = 0, frame = 0 7647 @ frame_needed = 0, uses_anonymous_args = 0 7648 push {r4, r5, r6, r7, r8, r10, fp, lr} 7649 mov r7, r0 7650 mov r10, r2 7651 mov r8, r3 7652 mov fp, r1 7653 movs r6, #1 7654 bl NandcWaitFlashReady 7655 ldr r2, .L1101 7656 mov r4, #-1 7657 add r3, r2, r7, lsl #3 7658 ldrb r5, [r3, #4] @ zero_extendqisi2 7659 add r3, r5, #8 7660 ldr r5, [r2, r7, lsl #3] 7661 add r5, r5, r3, lsl #8 7662.L1089: 7663 ldr r3, .L1101+4 7664 ldrb r3, [r3] @ zero_extendqisi2 7665 adds r3, r3, #1 7666 cmp r6, r3 7667 bcc .L1093 7668.L1092: 7669 movs r1, #0 7670 mov r0, r5 7671 bl SamsungSetRRPara 7672 ldr r3, .L1101+8 7673 ldrb r3, [r3] @ zero_extendqisi2 7674 add r3, r3, r3, lsl #1 7675 cmp r4, r3, asr #2 7676 bcc .L1088 7677 adds r3, r4, #1 7678 it ne 7679 movne r4, #256 7680.L1088: 7681 mov r0, r4 7682 pop {r4, r5, r6, r7, r8, r10, fp, pc} 7683.L1093: 7684 uxtb r1, r6 7685 mov r0, r5 7686 bl SamsungSetRRPara 7687 mov r2, r10 7688 mov r3, r8 7689 mov r1, fp 7690 mov r0, r7 7691 bl FlashReadRawPage 7692 adds r2, r0, #1 7693 beq .L1090 7694 ldr r3, .L1101+8 7695 cmp r4, #-1 7696 it eq 7697 moveq r4, r0 7698 ldrb r3, [r3] @ zero_extendqisi2 7699 add r3, r3, r3, lsl #1 7700 cmp r0, r3, asr #2 7701 bcc .L1096 7702 mov r8, #0 7703 mov r10, r8 7704.L1090: 7705 adds r6, r6, #1 7706 b .L1089 7707.L1096: 7708 mov r4, r0 7709 b .L1092 7710.L1102: 7711 .align 2 7712.L1101: 7713 .word .LANCHOR6 7714 .word .LANCHOR151 7715 .word .LANCHOR33 7716 .size SamsungReadRetrial, .-SamsungReadRetrial 7717 .section .text.MicronReadRetrial,"ax",%progbits 7718 .align 1 7719 .global MicronReadRetrial 7720 .syntax unified 7721 .thumb 7722 .thumb_func 7723 .fpu softvfp 7724 .type MicronReadRetrial, %function 7725MicronReadRetrial: 7726 @ args = 0, pretend = 0, frame = 32 7727 @ frame_needed = 0, uses_anonymous_args = 0 7728 push {r4, r5, r6, r7, r8, r10, fp, lr} 7729 mov r7, r3 7730 ldr r3, .L1128 7731 sub sp, sp, #40 7732 mov r5, r0 7733 str r2, [sp, #16] 7734 ldrb r2, [r3] @ zero_extendqisi2 7735 ldr r3, .L1128+4 7736 str r1, [sp, #28] 7737 ldrb r3, [r3] @ zero_extendqisi2 7738 cmp r3, #0 7739 bne .L1104 7740 add r2, r2, r2, lsl #1 7741 asrs r3, r2, #2 7742.L1127: 7743.L1105: 7744 mov r8, #0 7745 str r3, [sp, #12] 7746 mov r6, r8 7747.L1115: 7748 mov r0, r5 7749 mov r10, #0 7750 bl NandcWaitFlashReady 7751 ldr r3, .L1128+8 7752 mov r4, #-1 7753 ldr r2, [r3, r5, lsl #3] 7754 add r3, r3, r5, lsl #3 7755 ldrb fp, [r3, #4] @ zero_extendqisi2 7756 str r2, [sp, #24] 7757 lsl r3, fp, #8 7758 str r3, [sp, #32] 7759.L1106: 7760 ldr r3, .L1128+12 7761 ldrb r3, [r3] @ zero_extendqisi2 7762 cmp r10, r3 7763 bcc .L1110 7764.L1109: 7765 ldr r3, [sp, #24] 7766 movs r0, #200 7767 add fp, r3, fp, lsl #8 7768 movs r3, #239 7769 str r3, [fp, #2056] 7770 movs r3, #137 7771 str r3, [fp, #2052] 7772 bl udelay 7773 ldr r3, [sp, #12] 7774 str r6, [fp, #2048] 7775 str r6, [fp, #2048] 7776 cmp r4, r3 7777 str r6, [fp, #2048] 7778 str r6, [fp, #2048] 7779 bcc .L1111 7780 adds r1, r4, #1 7781 mov r3, r10 7782 it ne 7783 movne r4, #256 7784 ldr r2, [sp, #28] 7785 str r4, [sp] 7786 mov r1, r10 7787 ldr r0, .L1128+16 7788 bl printf 7789 cmp r8, #0 7790 bne .L1113 7791 ldr r3, .L1128+4 7792 ldrb r3, [r3] @ zero_extendqisi2 7793 cmp r3, #0 7794 beq .L1103 7795 adds r2, r4, #1 7796 bne .L1103 7797 movs r1, #3 7798 mov r0, r5 7799 bl micron_auto_read_calibration_config 7800 mov r8, #1 7801 b .L1115 7802.L1104: 7803 ldr r3, .L1128+20 7804 smull r2, r3, r2, r3 7805 b .L1127 7806.L1110: 7807 ldr r2, [sp, #32] 7808 movs r0, #200 7809 ldr r3, [sp, #24] 7810 add r3, r3, r2 7811 movs r2, #239 7812 str r2, [r3, #2056] 7813 movs r2, #137 7814 str r2, [r3, #2052] 7815 str r3, [sp, #36] 7816 bl udelay 7817 add r3, r10, #1 7818 ldr r1, [sp, #28] 7819 mov r2, r3 7820 str r3, [sp, #20] 7821 ldr r3, [sp, #36] 7822 mov r0, r5 7823 str r2, [r3, #2048] 7824 str r6, [r3, #2048] 7825 ldr r2, [sp, #16] 7826 str r6, [r3, #2048] 7827 str r6, [r3, #2048] 7828 mov r3, r7 7829 bl FlashReadRawPage 7830 adds r3, r0, #1 7831 beq .L1107 7832 ldr r3, [sp, #12] 7833 cmp r4, #-1 7834 it eq 7835 moveq r4, r0 7836 cmp r0, r3 7837 bcc .L1117 7838 movs r7, #0 7839 str r7, [sp, #16] 7840.L1107: 7841 ldr r10, [sp, #20] 7842 b .L1106 7843.L1117: 7844 movs r7, #0 7845 mov r4, r0 7846 str r7, [sp, #16] 7847 b .L1109 7848.L1113: 7849 movs r1, #0 7850 mov r0, r5 7851 bl micron_auto_read_calibration_config 7852 adds r3, r4, #1 7853 it ne 7854 movne r4, #256 7855.L1103: 7856 mov r0, r4 7857 add sp, sp, #40 7858 @ sp needed 7859 pop {r4, r5, r6, r7, r8, r10, fp, pc} 7860.L1111: 7861 cmp r8, #0 7862 beq .L1103 7863 movs r1, #0 7864 mov r0, r5 7865 bl micron_auto_read_calibration_config 7866 mov r4, #256 7867 b .L1103 7868.L1129: 7869 .align 2 7870.L1128: 7871 .word .LANCHOR33 7872 .word .LANCHOR8 7873 .word .LANCHOR6 7874 .word .LANCHOR151 7875 .word .LC13 7876 .word 1431655766 7877 .size MicronReadRetrial, .-MicronReadRetrial 7878 .section .text.HynixReadRetrial,"ax",%progbits 7879 .align 1 7880 .global HynixReadRetrial 7881 .syntax unified 7882 .thumb 7883 .thumb_func 7884 .fpu softvfp 7885 .type HynixReadRetrial, %function 7886HynixReadRetrial: 7887 @ args = 0, pretend = 0, frame = 8 7888 @ frame_needed = 0, uses_anonymous_args = 0 7889 push {r0, r1, r4, r5, r6, r7, r8, r10, fp, lr} 7890 mov fp, r2 7891 ldr r4, .L1147 7892 mov r8, #0 7893 mov r6, #-1 7894 mov r10, r3 7895 mov r7, r0 7896 str r1, [sp, #4] 7897 ldrb r2, [r4, #2] @ zero_extendqisi2 7898 adds r3, r4, r0 7899 ldrb r5, [r3, #12] @ zero_extendqisi2 7900 str r2, [sp] 7901 ldr r2, .L1147+4 7902 ldr r2, [r2] 7903 ldrb r2, [r2, #19] @ zero_extendqisi2 7904 cmp r2, #7 7905 it eq 7906 ldrbeq r5, [r3, #20] @ zero_extendqisi2 7907 bl NandcWaitFlashReady 7908.L1132: 7909 ldr r3, [sp] 7910 cmp r8, r3 7911 bcc .L1137 7912.L1136: 7913 ldr r3, .L1147+4 7914 add r4, r4, r7 7915 ldr r3, [r3] 7916 ldrb r3, [r3, #19] @ zero_extendqisi2 7917 cmp r3, #7 7918 ldr r3, .L1147+8 7919 ite eq 7920 strbeq r5, [r4, #20] 7921 strbne r5, [r4, #12] 7922 ldrb r3, [r3] @ zero_extendqisi2 7923 add r3, r3, r3, lsl #1 7924 cmp r6, r3, asr #2 7925 bcc .L1130 7926 adds r3, r6, #1 7927 it ne 7928 movne r6, #256 7929.L1130: 7930 mov r0, r6 7931 add sp, sp, #8 7932 @ sp needed 7933 pop {r4, r5, r6, r7, r8, r10, fp, pc} 7934.L1137: 7935 ldr r3, [sp] 7936 adds r5, r5, #1 7937 uxtb r5, r5 7938 ldr r2, .L1147+12 7939 ldrb r1, [r4, #1] @ zero_extendqisi2 7940 mov r0, r7 7941 cmp r3, r5 7942 it ls 7943 movls r5, #0 7944 mov r3, r5 7945 bl HynixSetRRPara 7946 mov r2, fp 7947 mov r3, r10 7948 ldr r1, [sp, #4] 7949 mov r0, r7 7950 bl FlashReadRawPage 7951 adds r2, r0, #1 7952 beq .L1134 7953 ldr r3, .L1147+8 7954 cmp r6, #-1 7955 it eq 7956 moveq r6, r0 7957 ldrb r3, [r3] @ zero_extendqisi2 7958 add r3, r3, r3, lsl #1 7959 cmp r0, r3, asr #2 7960 bcc .L1141 7961 mov r10, #0 7962 mov fp, r10 7963.L1134: 7964 add r8, r8, #1 7965 b .L1132 7966.L1141: 7967 mov r6, r0 7968 b .L1136 7969.L1148: 7970 .align 2 7971.L1147: 7972 .word .LANCHOR20 7973 .word .LANCHOR18 7974 .word .LANCHOR33 7975 .word .LANCHOR20+4 7976 .size HynixReadRetrial, .-HynixReadRetrial 7977 .section .text.FlashProgPage,"ax",%progbits 7978 .align 1 7979 .global FlashProgPage 7980 .syntax unified 7981 .thumb 7982 .thumb_func 7983 .fpu softvfp 7984 .type FlashProgPage, %function 7985FlashProgPage: 7986 @ args = 0, pretend = 0, frame = 0 7987 @ frame_needed = 0, uses_anonymous_args = 0 7988 push {r0, r1, r4, r5, r6, r7, r8, lr} 7989 mov r8, r3 7990 ldr r3, .L1152 7991 mov r5, r1 7992 mov r7, r2 7993 mov r4, r0 7994 ldrb r6, [r3, #9] @ zero_extendqisi2 7995 cbnz r0, .L1150 7996 ldr r3, .L1152+4 7997 ldr r2, .L1152+8 7998 ldrb r3, [r3] @ zero_extendqisi2 7999 ldr r1, [r2] 8000 muls r1, r3, r1 8001 cmp r1, r5 8002 bls .L1150 8003 ldr r3, .L1152+12 8004 ldrb r3, [r3] @ zero_extendqisi2 8005 cbnz r3, .L1151 8006 subs r6, r6, #2 8007.L1150: 8008 mov r0, r4 8009 bl NandcWaitFlashReady 8010 mov r0, r4 8011 bl NandcFlashCs 8012 mov r1, r5 8013 mov r0, r4 8014 bl FlashProgFirstCmd 8015 mov r3, r7 8016 uxtb r2, r6 8017 str r8, [sp] 8018 movs r1, #1 8019 mov r0, r4 8020 bl NandcXferData 8021 mov r1, r5 8022 mov r0, r4 8023 bl FlashProgSecondCmd 8024 mov r0, r4 8025 bl NandcWaitFlashReady 8026 mov r1, r5 8027 mov r0, r4 8028 bl FlashReadStatus 8029 mov r1, r0 8030 mov r0, r4 8031 bl NandcFlashDeCs 8032 and r0, r1, #1 8033 add sp, sp, #8 8034 @ sp needed 8035 pop {r4, r5, r6, r7, r8, pc} 8036.L1151: 8037 movs r6, #4 8038 b .L1150 8039.L1153: 8040 .align 2 8041.L1152: 8042 .word .LANCHOR31 8043 .word .LANCHOR2 8044 .word .LANCHOR3 8045 .word .LANCHOR1 8046 .size FlashProgPage, .-FlashProgPage 8047 .section .text.FlashSavePhyInfo,"ax",%progbits 8048 .align 1 8049 .global FlashSavePhyInfo 8050 .syntax unified 8051 .thumb 8052 .thumb_func 8053 .fpu softvfp 8054 .type FlashSavePhyInfo, %function 8055FlashSavePhyInfo: 8056 @ args = 0, pretend = 0, frame = 8 8057 @ frame_needed = 0, uses_anonymous_args = 0 8058 push {r0, r1, r4, r5, r6, r7, r8, r10, fp, lr} 8059 ldr r7, .L1163 8060 ldr r4, .L1163+4 8061 ldr r3, [r7] 8062 ldr r10, .L1163+60 8063 ldr r8, .L1163+64 8064 str r3, [r4] 8065 ldr r3, .L1163+8 8066 ldrb r0, [r3] @ zero_extendqisi2 8067 bl FlashBchSel 8068 mov r2, #2048 8069 movs r1, #0 8070 ldr r0, [r7] 8071 bl ftl_memset 8072 ldr r0, [r4] 8073 movs r2, #32 8074 ldr r3, .L1163+12 8075 ldr r1, .L1163+16 8076 str r10, [r0] 8077 adds r0, r0, #16 8078 ldrb r3, [r3] @ zero_extendqisi2 8079 strh r3, [r0, #-4] @ movhi 8080 ldr r3, .L1163+20 8081 ldrb r3, [r3] @ zero_extendqisi2 8082 strh r3, [r0, #-2] @ movhi 8083 ldr r3, .L1163+24 8084 ldrb r3, [r3] @ zero_extendqisi2 8085 str r3, [r0, #1060] 8086 bl ftl_memcpy 8087 ldr r0, [r4] 8088 movs r2, #8 8089 ldr r1, .L1163+28 8090 adds r0, r0, #80 8091 bl ftl_memcpy 8092 ldr r0, [r4] 8093 movs r2, #32 8094 ldr r1, .L1163+32 8095 adds r0, r0, #96 8096 bl ftl_memcpy 8097 ldr r0, [r4] 8098 movs r2, #32 8099 ldr r1, .L1163+36 8100 adds r0, r0, #160 8101 bl ftl_memcpy 8102 ldr r0, [r4] 8103 movs r2, #32 8104 ldr r1, .L1163+40 8105 adds r0, r0, #192 8106 bl ftl_memcpy 8107 ldr r0, [r4] 8108 mov r2, #852 8109 ldr r1, .L1163+44 8110 adds r0, r0, #224 8111 bl ftl_memcpy 8112 ldr r5, [r4] 8113 movw r1, #2036 8114 add r0, r5, #12 8115 bl JSHash 8116 ldr r1, .L1163+48 8117 mov r3, #1592 8118 str r3, [r5, #4] 8119 str r0, [r5, #8] 8120 movs r0, #0 8121 ldr r3, [r1] 8122 movs r5, #0 8123 mov r6, r5 8124 str r3, [r4] 8125 bl flash_enter_slc_mode 8126 mov fp, r1 8127.L1157: 8128 ldr r1, [r8] 8129 movs r2, #0 8130 mov r0, r2 8131 muls r1, r6, r1 8132 bl FlashEraseBlock 8133 ldr r1, [r8] 8134 movs r3, #0 8135 ldr r2, [r7] 8136 mov r0, r3 8137 muls r1, r6, r1 8138 bl FlashProgPage 8139 ldr r1, [r8] 8140 movs r3, #0 8141 ldr r2, [r7] 8142 mov r0, r3 8143 muls r1, r6, r1 8144 adds r1, r1, #1 8145 bl FlashProgPage 8146 ldr r1, [r8] 8147 movs r3, #0 8148 ldr r2, [fp] 8149 mov r0, r3 8150 muls r1, r6, r1 8151 bl FlashReadRawPage 8152 adds r0, r0, #1 8153 add r2, r6, #1 8154 beq .L1155 8155 ldr r3, [r4] 8156 ldr r1, [r3] 8157 cmp r1, r10 8158 bne .L1155 8159 add r0, r3, #12 8160 movw r1, #2036 8161 str r2, [sp, #4] 8162 str r3, [sp] 8163 bl JSHash 8164 ldr r3, [sp] 8165 ldr r2, [sp, #4] 8166 ldr r3, [r3, #8] 8167 cmp r3, r0 8168 bne .L1155 8169 ldr r3, .L1163+52 8170 cmp r5, #1 8171 str r2, [r3] 8172 ldr r3, [r8] 8173 mul r6, r6, r3 8174 ldr r3, .L1163+56 8175 str r6, [r3] 8176 beq .L1158 8177 movs r5, #1 8178.L1155: 8179 cmp r2, #4 8180 mov r6, r2 8181 bne .L1157 8182.L1156: 8183 movs r0, #0 8184 bl flash_exit_slc_mode 8185 clz r0, r5 8186 lsrs r0, r0, #5 8187 negs r0, r0 8188 add sp, sp, #8 8189 @ sp needed 8190 pop {r4, r5, r6, r7, r8, r10, fp, pc} 8191.L1158: 8192 movs r5, #2 8193 b .L1156 8194.L1164: 8195 .align 2 8196.L1163: 8197 .word .LANCHOR147 8198 .word .LANCHOR146 8199 .word .LANCHOR152 8200 .word .LANCHOR25 8201 .word .LANCHOR22 8202 .word .LANCHOR2 8203 .word .LANCHOR30 8204 .word .LANCHOR26 8205 .word .LANCHOR17 8206 .word .LANCHOR31 8207 .word .LANCHOR7 8208 .word .LANCHOR20 8209 .word .LANCHOR153 8210 .word .LANCHOR149 8211 .word .LANCHOR148 8212 .word 1312902724 8213 .word .LANCHOR3 8214 .size FlashSavePhyInfo, .-FlashSavePhyInfo 8215 .section .text.FlashReadIdbDataRaw,"ax",%progbits 8216 .align 1 8217 .global FlashReadIdbDataRaw 8218 .syntax unified 8219 .thumb 8220 .thumb_func 8221 .fpu softvfp 8222 .type FlashReadIdbDataRaw, %function 8223FlashReadIdbDataRaw: 8224 @ args = 0, pretend = 0, frame = 24 8225 @ frame_needed = 0, uses_anonymous_args = 0 8226 push {r4, r5, r6, r7, r8, r10, fp, lr} 8227 movs r3, #60 8228 sub sp, sp, #24 8229 ldr r2, .L1177 8230 mov r10, r0 8231 strb r3, [sp, #20] 8232 movs r3, #40 8233 strb r3, [sp, #21] 8234 movs r3, #24 8235 strb r3, [sp, #22] 8236 movs r3, #16 8237 strb r3, [sp, #23] 8238 ldr r3, .L1177+4 8239 ldr r1, [r2] 8240 str r2, [sp, #8] 8241 ldrb r3, [r3] @ zero_extendqisi2 8242 str r3, [sp, #4] 8243 ldr r3, .L1177+8 8244 cmp r1, r3 8245 str r3, [sp, #12] 8246 bne .L1166 8247 movs r0, #0 8248 bl flash_enter_slc_mode 8249.L1166: 8250 mov r7, #-1 8251 movs r4, #2 8252 mov r2, #2048 8253 movs r1, #0 8254 mov r0, r10 8255 bl ftl_memset 8256.L1167: 8257 ldr r3, .L1177+12 8258 ldrb r3, [r3] @ zero_extendqisi2 8259 cmp r4, r3 8260 bcc .L1172 8261.L1171: 8262 ldr r0, [sp, #4] 8263 bl FlashBchSel 8264 ldr r3, [sp, #8] 8265 ldr r2, [sp, #12] 8266 ldr r3, [r3] 8267 cmp r3, r2 8268 bne .L1165 8269 movs r0, #0 8270 bl flash_exit_slc_mode 8271.L1165: 8272 mov r0, r7 8273 add sp, sp, #24 8274 @ sp needed 8275 pop {r4, r5, r6, r7, r8, r10, fp, pc} 8276.L1172: 8277 ldr r5, .L1177+16 8278 movs r6, #0 8279 ldr fp, .L1177+32 8280.L1169: 8281 add r3, sp, #20 8282 ldrb r8, [r6, r3] @ zero_extendqisi2 8283 mov r0, r8 8284 bl FlashBchSel 8285 ldr r1, [fp] 8286 movs r3, #0 8287 ldr r2, [r5] 8288 mov r0, r3 8289 muls r1, r4, r1 8290 bl FlashReadRawPage 8291 adds r0, r0, #1 8292 bne .L1168 8293 adds r6, r6, #1 8294 cmp r6, #4 8295 bne .L1169 8296.L1170: 8297 adds r4, r4, #1 8298 b .L1167 8299.L1175: 8300 movs r7, #0 8301 b .L1171 8302.L1168: 8303 ldr r3, [r5] 8304 ldr r2, [r3] 8305 ldr r3, .L1177+20 8306 cmp r2, r3 8307 bne .L1170 8308 mov r1, r8 8309 ldr r0, .L1177+24 8310 bl printf 8311 mov r2, #2048 8312 ldr r1, [r5] 8313 mov r0, r10 8314 bl ftl_memcpy 8315 ldr r3, [r5] 8316 ldr r2, .L1177+12 8317 ldr r3, [r3, #512] 8318 strb r3, [r2] 8319 ldr r3, .L1177+28 8320 ldr r2, [r3] 8321 cmp r4, r2 8322 bcs .L1175 8323 str r4, [r3] 8324 movs r7, #0 8325 bl FlashSavePhyInfo 8326 b .L1170 8327.L1178: 8328 .align 2 8329.L1177: 8330 .word .LANCHOR29 8331 .word .LANCHOR33 8332 .word 1446522928 8333 .word .LANCHOR2 8334 .word .LANCHOR147 8335 .word -52655045 8336 .word .LC14 8337 .word .LANCHOR149 8338 .word .LANCHOR3 8339 .size FlashReadIdbDataRaw, .-FlashReadIdbDataRaw 8340 .section .text.FlashPageProgMsbFFData,"ax",%progbits 8341 .align 1 8342 .global FlashPageProgMsbFFData 8343 .syntax unified 8344 .thumb 8345 .thumb_func 8346 .fpu softvfp 8347 .type FlashPageProgMsbFFData, %function 8348FlashPageProgMsbFFData: 8349 @ args = 0, pretend = 0, frame = 0 8350 @ frame_needed = 0, uses_anonymous_args = 0 8351 push {r3, r4, r5, r6, r7, r8, r10, lr} 8352 mov r4, r2 8353 ldr r5, .L1189 8354 mov r6, r0 8355 mov r7, r1 8356 ldr r3, [r5] 8357 ldrb r2, [r3, #19] @ zero_extendqisi2 8358 ldr r3, .L1189+4 8359 ldrb r3, [r3] @ zero_extendqisi2 8360 cbz r3, .L1180 8361 ldr r3, .L1189+8 8362 ldr r1, [r3] 8363 ldr r3, .L1189+12 8364 cmp r1, r3 8365 beq .L1179 8366.L1180: 8367 subs r3, r2, #5 8368 uxtb r3, r3 8369 cmp r3, #30 8370 bhi .L1181 8371 ldr r2, .L1189+16 8372 lsr r3, r2, r3 8373 lsls r3, r3, #31 8374 bmi .L1183 8375 pop {r3, r4, r5, r6, r7, r8, r10, pc} 8376.L1184: 8377 ldrh r2, [r10, r4, lsl #1] 8378 movw r3, #65535 8379 cmp r2, r3 8380 bne .L1179 8381 mov r2, #32768 8382 movs r1, #255 8383 ldr r0, [r8] 8384 bl ftl_memset 8385 adds r1, r4, r7 8386 adds r4, r4, #1 8387 uxth r4, r4 8388 movs r3, #0 8389 ldr r2, [r8] 8390 mov r0, r6 8391 bl FlashProgPage 8392.L1185: 8393 ldr r3, [r5] 8394 ldrh r3, [r3, #10] 8395 cmp r3, r4 8396 bhi .L1184 8397 pop {r3, r4, r5, r6, r7, r8, r10, pc} 8398.L1181: 8399 cmp r2, #68 8400 bne .L1179 8401.L1183: 8402 ldr r10, .L1189+20 8403 ldr r8, .L1189+24 8404 b .L1185 8405.L1179: 8406 pop {r3, r4, r5, r6, r7, r8, r10, pc} 8407.L1190: 8408 .align 2 8409.L1189: 8410 .word .LANCHOR18 8411 .word .LANCHOR8 8412 .word .LANCHOR29 8413 .word 1446522928 8414 .word 1073758215 8415 .word .LANCHOR120 8416 .word .LANCHOR153 8417 .size FlashPageProgMsbFFData, .-FlashPageProgMsbFFData 8418 .section .text.idb_write_data,"ax",%progbits 8419 .align 1 8420 .global idb_write_data 8421 .syntax unified 8422 .thumb 8423 .thumb_func 8424 .fpu softvfp 8425 .type idb_write_data, %function 8426idb_write_data: 8427 @ args = 0, pretend = 0, frame = 96 8428 @ frame_needed = 0, uses_anonymous_args = 0 8429 mov r0, r1 8430 mov r1, r2 8431 adds r2, r0, r3 8432 push {r4, r5, r6, r7, r8, r10, fp, lr} 8433 cmp r2, #63 8434 sub sp, sp, #104 8435 bls .L1192 8436 cmp r0, #576 8437 bcs .L1193 8438 ldr r2, .L1244 8439 cmp r0, #64 8440 mov r4, #1 8441 str r4, [r2] 8442 bhi .L1194 8443 rsb r0, r0, #64 8444 subs r2, r3, r0 8445 add r1, r1, r0, lsl #9 8446 ldr r0, .L1244+4 8447 lsls r2, r2, #9 8448.L1243: 8449 bl ftl_memcpy 8450.L1232: 8451 movs r0, #0 8452 add sp, sp, #104 8453 @ sp needed 8454 pop {r4, r5, r6, r7, r8, r10, fp, pc} 8455.L1194: 8456 rsb r2, r0, #576 8457 subs r0, r0, #64 8458 cmp r2, r3 8459 it cs 8460 movcs r2, r3 8461 ldr r3, .L1244+4 8462 lsls r2, r2, #9 8463 add r0, r3, r0, lsl #9 8464 b .L1243 8465.L1192: 8466 cmp r0, #576 8467 bcc .L1232 8468.L1193: 8469 ldr r3, .L1244 8470 ldr r3, [r3] 8471 cmp r3, #0 8472 beq .L1232 8473 ldr r3, .L1244+8 8474 ldr r2, [r3] 8475 ldrb r3, [r2, #9] @ zero_extendqisi2 8476 ldrh r2, [r2, #10] 8477 smulbb r3, r3, r2 8478 uxth r3, r3 8479 mov r1, r3 8480 addw r0, r3, #511 8481 str r3, [sp, #8] 8482 bl __aeabi_uidiv 8483 ldr r1, .L1244+4 8484 movs r3, #0 8485 str r0, [sp, #20] 8486 movw r2, #65535 8487 mov r0, r1 8488.L1198: 8489 ldr r4, [r1, r2, lsl #2] 8490 cbnz r4, .L1196 8491 ldr r4, [r1, r3, lsl #2] 8492 adds r3, r3, #1 8493 cmp r3, #4096 8494 it hi 8495 movhi r3, #0 8496 str r4, [r1, r2, lsl #2] 8497 subs r2, r2, #1 8498 cmp r2, #4096 8499 bne .L1198 8500.L1196: 8501 ldr r1, [r0, r2, lsl #2] 8502 mov r3, #512 8503 ldr r0, .L1244+12 8504 bl printf 8505 ldr r3, .L1244+16 8506 ldr r2, [sp, #8] 8507 ldr r3, [r3] 8508 str r3, [sp, #16] 8509 ldr r3, [sp, #20] 8510 muls r3, r2, r3 8511 str r3, [sp, #36] 8512 ldr r3, [sp, #16] 8513 mul r4, r3, r2 8514 movs r3, #0 8515 str r3, [sp, #12] 8516.L1199: 8517 ldr r3, [sp, #16] 8518 cmp r3, #15 8519 bls .L1216 8520 ldr r3, [sp, #12] 8521 cbnz r3, .L1218 8522 mov r1, r3 8523 ldr r0, .L1244+20 8524 bl printf 8525.L1218: 8526 ldr r3, .L1244 8527 movs r2, #0 8528 str r2, [r3] 8529 b .L1232 8530.L1245: 8531 .align 2 8532.L1244: 8533 .word .LANCHOR154 8534 .word idb_buf 8535 .word .LANCHOR18 8536 .word .LC15 8537 .word .LANCHOR149 8538 .word .LC17 8539.L1216: 8540 mov r2, #512 8541 movs r1, #0 8542 ldr r0, .L1246 8543 bl memset 8544 ldr r3, .L1246+4 8545 mov r0, r4 8546 ldr r3, [r3] 8547 ldrb fp, [r3, #9] @ zero_extendqisi2 8548 ldrh r5, [r3, #10] 8549 bl FW_FlashBlockErase.constprop.41 8550 smulbb r5, r5, fp 8551 uxth r5, r5 8552 cmp r5, #512 8553 bcs .L1200 8554 adds r0, r5, r4 8555 bl FW_FlashBlockErase.constprop.41 8556.L1200: 8557 ldr r7, .L1246+8 8558 mov r1, r5 8559 ldr r10, .L1246+36 8560 mov r0, r4 8561 bl __aeabi_uidivmod 8562 mov r6, r1 8563 subs r3, r4, r1 8564 str r3, [sp, #24] 8565.L1204: 8566 lsrs r2, r6, #2 8567 beq .L1201 8568 ldr r0, .L1246+12 8569 adds r1, r2, #1 8570 ldr r3, .L1246+16 8571 ldrb r0, [r0] @ zero_extendqisi2 8572 ldrh r3, [r3, r1, lsl #1] 8573 cbz r0, .L1202 8574 ldr r0, [r10] 8575 ldr r5, .L1246+20 8576 cmp r0, r5 8577 it eq 8578 moveq r3, r1 8579.L1202: 8580 add r3, r3, #1073741824 8581 subs r3, r3, #1 8582 lsls r3, r3, #2 8583 str r3, [sp, #40] 8584.L1201: 8585 movw r3, #61424 8586 str r3, [sp, #44] 8587 ldr r3, .L1246+16 8588 ldrh r5, [r3, r2, lsl #1] 8589 ldr r3, .L1246+12 8590 ldrb r3, [r3] @ zero_extendqisi2 8591 cbz r3, .L1203 8592 ldr r3, [r10] 8593 ldr r1, .L1246+20 8594 cmp r3, r1 8595 it eq 8596 moveq r5, r2 8597.L1203: 8598 ldr r3, [sp, #24] 8599 adds r6, r6, #4 8600 ldr r2, .L1246+24 8601 ldr r8, .L1246+4 8602 mla r3, r5, fp, r3 8603 adds r5, r5, #1 8604 uxth r5, r5 8605 str r3, [sp, #32] 8606 ldrb r3, [r2] @ zero_extendqisi2 8607 ldr r2, .L1246+28 8608 str r3, [sp, #28] 8609 ldrb r0, [r2] @ zero_extendqisi2 8610 bl FlashBchSel 8611 movs r0, #0 8612 bl flash_boot_enter_slc_mode 8613 ldr r2, [r8] 8614 ldr r3, [sp, #32] 8615 ldrb r1, [r2, #9] @ zero_extendqisi2 8616 mov r0, r3 8617 bl __aeabi_uidiv 8618 add r3, sp, #40 8619 mov r2, r7 8620 mov r1, r0 8621 movs r0, #0 8622 bl FlashProgPage 8623 movs r0, #0 8624 add r7, r7, #2048 8625 bl flash_boot_exit_slc_mode 8626 ldr r0, [sp, #28] 8627 bl FlashBchSel 8628 mov r1, fp 8629 ldr r0, [sp, #24] 8630 bl __aeabi_uidiv 8631 mov r2, r5 8632 mov r1, r0 8633 movs r0, #0 8634 bl FlashPageProgMsbFFData 8635 ldr r3, .L1246+32 8636 cmp r7, r3 8637 bne .L1204 8638 ldr r3, [r8] 8639 mov r0, r4 8640 ldr r7, .L1246 8641 movs r6, #0 8642 ldrb r8, [r3, #9] @ zero_extendqisi2 8643 ldrh r1, [r3, #10] 8644 smulbb r1, r1, r8 8645 uxth r1, r1 8646 bl __aeabi_uidivmod 8647 mul r5, r8, r1 8648 mov r10, r1 8649 subs r3, r4, r1 8650 str r3, [sp, #28] 8651 ubfx r5, r5, #2, #2 8652.L1205: 8653 cmp r6, #512 8654 bcs .L1212 8655 ldr r1, .L1246+12 8656 rsb r3, r5, #4 8657 uxth r3, r3 8658 ldr r2, .L1246+16 8659 ldrb r1, [r1] @ zero_extendqisi2 8660 str r3, [sp, #24] 8661 add r3, r10, r6 8662 lsrs r3, r3, #2 8663 ldrh r2, [r2, r3, lsl #1] 8664 cbz r1, .L1206 8665 ldr r1, .L1246+36 8666 ldr r0, .L1246+20 8667 ldr r1, [r1] 8668 cmp r1, r0 8669 it eq 8670 moveq r2, r3 8671.L1206: 8672 ldr r3, [sp, #28] 8673 add r5, r5, r3 8674 ldr r3, .L1246+24 8675 mla r5, r2, r8, r5 8676 ldrb r3, [r3] @ zero_extendqisi2 8677 str r3, [sp, #32] 8678 ldr r3, .L1246+4 8679 ldr r3, [r3] 8680 ldrb fp, [r3, #9] @ zero_extendqisi2 8681 ldr r3, .L1246+40 8682 ldrh r2, [r3, #26] 8683 ldr r3, .L1246+44 8684 ldr r3, [r3] 8685 muls r3, r2, r3 8686 mul r3, fp, r3 8687 cmp r5, r3 8688 bcs .L1207 8689 ldr r3, .L1246+28 8690 ldrb r0, [r3] @ zero_extendqisi2 8691 bl FlashBchSel 8692.L1207: 8693 movs r0, #0 8694 bl flash_boot_enter_slc_mode 8695 mov r1, fp 8696 mov r0, r5 8697 bl __aeabi_uidiv 8698 add r3, sp, #40 8699 mov r1, r0 8700 mov fp, r0 8701 mov r2, r7 8702 movs r0, #0 8703 bl FlashReadPage 8704 adds r3, r0, #1 8705 mov r5, r0 8706 bne .L1208 8707 ldr r3, .L1246+28 8708 ldrb r3, [r3] @ zero_extendqisi2 8709 cmp r3, #40 8710 beq .L1208 8711 movs r0, #40 8712 bl FlashBchSel 8713 add r3, sp, #40 8714 mov r2, r7 8715 mov r1, fp 8716 movs r0, #0 8717 bl FlashReadPage 8718 mov r5, r0 8719.L1208: 8720 movs r0, #0 8721 bl flash_boot_exit_slc_mode 8722 ldr r0, [sp, #32] 8723 bl FlashBchSel 8724 adds r5, r5, #1 8725 mov r5, #-1 8726 it ne 8727 movne r5, #0 8728 cbz r5, .L1209 8729.L1212: 8730 ldr r3, .L1246+8 8731 movs r5, #0 8732 ldr r6, .L1246 8733.L1210: 8734 mov r7, r3 8735 ldr r1, [r6, r5, lsl #2] 8736 ldr r2, [r7] 8737 adds r3, r3, #4 8738 cmp r1, r2 8739 beq .L1213 8740 mov r2, #512 8741 movs r1, #0 8742 ldr r0, .L1246 8743 bl memset 8744 str r5, [sp] 8745 mov r1, r4 8746 ldr r3, [r7] 8747 ldr r2, [r6, r5, lsl #2] 8748 ldr r0, .L1246+48 8749 bl printf 8750 mov r0, r4 8751 bl FW_FlashBlockErase.constprop.41 8752 ldr r3, [sp, #20] 8753 cmp r3, #1 8754 bls .L1214 8755 ldr r3, [sp, #8] 8756 adds r0, r3, r4 8757 bl FW_FlashBlockErase.constprop.41 8758.L1214: 8759 ldr r3, [sp, #16] 8760 ldr r2, [sp, #20] 8761 add r3, r3, r2 8762 str r3, [sp, #16] 8763 ldr r3, [sp, #36] 8764 add r4, r4, r3 8765 b .L1199 8766.L1209: 8767 ldr r3, [sp, #24] 8768 add r6, r6, r3 8769 add r7, r7, r3, lsl #9 8770 uxth r6, r6 8771 b .L1205 8772.L1213: 8773 adds r5, r5, #1 8774 cmp r5, #65536 8775 bne .L1210 8776 ldr r3, [sp, #12] 8777 adds r3, r3, #1 8778 cmp r3, #5 8779 str r3, [sp, #12] 8780 bls .L1214 8781 b .L1218 8782.L1247: 8783 .align 2 8784.L1246: 8785 .word gp_flash_check_buf 8786 .word .LANCHOR18 8787 .word idb_buf 8788 .word .LANCHOR8 8789 .word .LANCHOR16 8790 .word 1446522928 8791 .word .LANCHOR33 8792 .word .LANCHOR152 8793 .word idb_buf+262144 8794 .word .LANCHOR29 8795 .word .LANCHOR15 8796 .word .LANCHOR3 8797 .word .LC16 8798 .size idb_write_data, .-idb_write_data 8799 .section .text.ftl_memcmp,"ax",%progbits 8800 .align 1 8801 .global ftl_memcmp 8802 .syntax unified 8803 .thumb 8804 .thumb_func 8805 .fpu softvfp 8806 .type ftl_memcmp, %function 8807ftl_memcmp: 8808 @ args = 0, pretend = 0, frame = 0 8809 @ frame_needed = 0, uses_anonymous_args = 0 8810 @ link register save eliminated. 8811 b memcmp 8812 .size ftl_memcmp, .-ftl_memcmp 8813 .section .text.rknand_get_clk_rate,"ax",%progbits 8814 .align 1 8815 .global rknand_get_clk_rate 8816 .syntax unified 8817 .thumb 8818 .thumb_func 8819 .fpu softvfp 8820 .type rknand_get_clk_rate, %function 8821rknand_get_clk_rate: 8822 @ args = 0, pretend = 0, frame = 0 8823 @ frame_needed = 0, uses_anonymous_args = 0 8824 @ link register save eliminated. 8825 ldr r0, .L1250 8826 bx lr 8827.L1251: 8828 .align 2 8829.L1250: 8830 .word 148000000 8831 .size rknand_get_clk_rate, .-rknand_get_clk_rate 8832 .section .text.ftl_malloc,"ax",%progbits 8833 .align 1 8834 .global ftl_malloc 8835 .syntax unified 8836 .thumb 8837 .thumb_func 8838 .fpu softvfp 8839 .type ftl_malloc, %function 8840ftl_malloc: 8841 @ args = 0, pretend = 0, frame = 0 8842 @ frame_needed = 0, uses_anonymous_args = 0 8843 @ link register save eliminated. 8844 movs r1, #0 8845 b kmalloc 8846 .size ftl_malloc, .-ftl_malloc 8847 .section .text.NandcInit,"ax",%progbits 8848 .align 1 8849 .global NandcInit 8850 .syntax unified 8851 .thumb 8852 .thumb_func 8853 .fpu softvfp 8854 .type NandcInit, %function 8855NandcInit: 8856 @ args = 0, pretend = 0, frame = 0 8857 @ frame_needed = 0, uses_anonymous_args = 0 8858 push {r3, r4, r5, lr} 8859 movs r2, #1 8860 ldr r3, .L1255 8861 movs r4, #0 8862 ldr r5, .L1255+4 8863 str r2, [r3, #12] 8864 movs r2, #2 8865 str r2, [r3, #20] 8866 movs r2, #3 8867 stm r3, {r0, r4} 8868 str r0, [r3, #8] 8869 str r0, [r3, #16] 8870 str r2, [r3, #28] 8871 str r0, [r3, #24] 8872 ldr r3, .L1255+8 8873 ldr r2, .L1255+12 8874 str r0, [r3] 8875 ldr r3, [r0] 8876 and r3, r3, #253952 8877 ubfx r1, r3, #13, #1 8878 bfi r3, r4, #13, #1 8879 str r1, [r2] 8880 orr r3, r3, #256 8881 ldr r2, [r0, #352] 8882 ldr r1, .L1255+16 8883 ubfx r2, r2, #16, #4 8884 str r2, [r1] 8885 ldr r2, [r0, #352] 8886 str r2, [r5] 8887 movw r5, #2049 8888 cmp r2, r5 8889 itt eq 8890 moveq r2, #8 8891 streq r2, [r1] 8892 str r3, [r0] 8893 movw r3, #4225 8894 str r4, [r0, #336] 8895 str r3, [r0, #4] 8896 movw r3, #8322 8897 str r3, [r0, #344] 8898 ldr r3, .L1255+20 8899 str r3, [r0, #304] 8900 mov r0, #36864 8901 bl ftl_malloc 8902 ldr r3, .L1255+24 8903 str r0, [r3] 8904 ldr r3, .L1255+28 8905 str r0, [r3] 8906 add r0, r0, #32768 8907 str r0, [r3, #4] 8908 str r4, [r3, #24] 8909 ldr r3, .L1255+32 8910 str r4, [r3] 8911 pop {r3, r4, r5, pc} 8912.L1256: 8913 .align 2 8914.L1255: 8915 .word .LANCHOR6 8916 .word .LANCHOR29 8917 .word .LANCHOR19 8918 .word .LANCHOR155 8919 .word .LANCHOR34 8920 .word 1710593 8921 .word .LANCHOR156 8922 .word .LANCHOR35 8923 .word .LANCHOR36 8924 .size NandcInit, .-NandcInit 8925 .section .text.FtlMemInit,"ax",%progbits 8926 .align 1 8927 .global FtlMemInit 8928 .syntax unified 8929 .thumb 8930 .thumb_func 8931 .fpu softvfp 8932 .type FtlMemInit, %function 8933FtlMemInit: 8934 @ args = 0, pretend = 0, frame = 0 8935 @ frame_needed = 0, uses_anonymous_args = 0 8936 ldr r3, .L1262 8937 push {r4, r5, r6, r7, r8, r10, fp, lr} 8938 movs r4, #0 8939 ldr r2, .L1262+4 8940 movs r6, #12 8941 strh r4, [r3] @ movhi 8942 ldr r3, .L1262+8 8943 ldr r5, .L1262+12 8944 ldr r10, .L1262+304 8945 str r4, [r3] 8946 ldr r3, .L1262+16 8947 ldr r8, .L1262+308 8948 ldr fp, .L1262+312 8949 str r4, [r3] 8950 ldr r3, .L1262+20 8951 str r4, [r3] 8952 ldr r3, .L1262+24 8953 str r4, [r3] 8954 ldr r3, .L1262+28 8955 str r4, [r3] 8956 ldr r3, .L1262+32 8957 str r4, [r3] 8958 ldr r3, .L1262+36 8959 str r4, [r3] 8960 ldr r3, .L1262+40 8961 str r4, [r3] 8962 ldr r3, .L1262+44 8963 str r4, [r3] 8964 ldr r3, .L1262+48 8965 str r4, [r3] 8966 ldr r3, .L1262+52 8967 str r4, [r3] 8968 ldr r3, .L1262+56 8969 str r4, [r3] 8970 ldr r3, .L1262+60 8971 str r4, [r3] 8972 ldr r3, .L1262+64 8973 str r4, [r3] 8974 ldr r3, .L1262+68 8975 str r4, [r3] 8976 ldr r3, .L1262+72 8977 str r4, [r3] 8978 ldr r3, .L1262+76 8979 str r4, [r3] 8980 movw r3, #65535 8981 str r3, [r2] 8982 ldr r2, .L1262+80 8983 str r4, [r2] 8984 ldr r2, .L1262+84 8985 str r4, [r2] 8986 ldr r2, .L1262+88 8987 str r4, [r2] 8988 ldr r2, .L1262+92 8989 strh r3, [r2] @ movhi 8990 ldr r2, .L1262+96 8991 strh r3, [r2] @ movhi 8992 ldr r2, .L1262+100 8993 strh r3, [r2] @ movhi 8994 ldr r2, .L1262+104 8995 strh r3, [r2] @ movhi 8996 movs r2, #32 8997 ldr r3, .L1262+108 8998 strh r2, [r3] @ movhi 8999 movs r2, #128 9000 ldr r3, .L1262+112 9001 strh r2, [r3] @ movhi 9002 ldr r3, .L1262+116 9003 strh r4, [r3] @ movhi 9004 ldr r3, .L1262+120 9005 strh r4, [r3] @ movhi 9006 ldr r3, .L1262+124 9007 strh r4, [r3] @ movhi 9008 ldr r3, .L1262+128 9009 strh r4, [r3] @ movhi 9010 ldrh r0, [r5] 9011 lsls r0, r0, #1 9012 bl ftl_malloc 9013 ldr r3, .L1262+132 9014 str r0, [r3] 9015 ldrh r0, [r5] 9016 movs r5, #36 9017 muls r0, r6, r0 9018 bl ftl_malloc 9019 ldr r3, .L1262+136 9020 str r0, [r3] 9021 ldrh r3, [r10] 9022 muls r5, r3, r5 9023 lsls r7, r5, #2 9024 mov r0, r7 9025 bl ftl_malloc 9026 ldr r3, .L1262+140 9027 str r0, [r3] 9028 mov r0, r5 9029 bl ftl_malloc 9030 ldr r3, .L1262+144 9031 str r0, [r3] 9032 mov r0, r7 9033 bl ftl_malloc 9034 ldr r3, .L1262+148 9035 ldr r7, .L1262+152 9036 str r0, [r3] 9037 mov r0, r5 9038 bl ftl_malloc 9039 ldr r3, .L1262+156 9040 str r0, [r3] 9041 mov r0, r5 9042 bl ftl_malloc 9043 ldr r3, .L1262+160 9044 ldrh r5, [r7] 9045 str r0, [r3] 9046 ldrh r3, [r10] 9047 mov r0, r5 9048 lsls r3, r3, #1 9049 adds r3, r3, #1 9050 str r3, [r8] 9051 bl ftl_malloc 9052 ldr r3, .L1262+164 9053 str r0, [r3] 9054 mov r0, r5 9055 bl ftl_malloc 9056 ldr r3, .L1262+168 9057 str r0, [r3] 9058 mov r0, r5 9059 bl ftl_malloc 9060 ldr r3, .L1262+172 9061 str r0, [r3] 9062 ldr r0, [r8] 9063 muls r0, r5, r0 9064 bl ftl_malloc 9065 ldr r3, .L1262+176 9066 str r0, [r3] 9067 mov r0, r5 9068 bl ftl_malloc 9069 ldr r3, .L1262+180 9070 str r0, [r3] 9071 mov r0, r5 9072 bl ftl_malloc 9073 ldr r3, .L1262+184 9074 str r0, [r3] 9075 ldr r0, [r8] 9076 muls r0, r6, r0 9077 bl ftl_malloc 9078 ldr r3, .L1262+188 9079 ldrh r5, [r10] 9080 ldr r10, .L1262+316 9081 str r0, [r3] 9082 ldrh r3, [fp] 9083 muls r5, r3, r5 9084 mov r0, r5 9085 bl ftl_malloc 9086 ldr r3, .L1262+192 9087 str r0, [r3] 9088 lsls r0, r5, #2 9089 ldr r5, .L1262+196 9090 bl ftl_malloc 9091 ldr r3, .L1262+200 9092 str r0, [r3] 9093 ldrh r3, [fp] 9094 ldr r0, [r8] 9095 ldr r8, .L1262+320 9096 muls r0, r3, r0 9097 bl ftl_malloc 9098 ldr r3, .L1262+204 9099 str r0, [r3] 9100 ldrh r0, [r5] 9101 lsls r0, r0, #1 9102 uxth r0, r0 9103 strh r0, [r8] @ movhi 9104 bl ftl_malloc 9105 ldr r3, .L1262+208 9106 str r0, [r3] 9107 ldrh r3, [r8] 9108 ldr r0, .L1262+212 9109 addw r3, r3, #547 9110 lsrs r3, r3, #9 9111 and r0, r0, r3, lsl #9 9112 strh r3, [r8] @ movhi 9113 bl ftl_malloc 9114 ldr r3, .L1262+216 9115 str r0, [r3] 9116 adds r0, r0, #32 9117 ldr r3, .L1262+220 9118 str r0, [r3] 9119 ldrh r0, [r5] 9120 lsls r0, r0, #1 9121 bl ftl_malloc 9122 ldr r3, .L1262+224 9123 str r0, [r3] 9124 ldr r3, [r10] 9125 lsl r8, r3, #1 9126 mov r0, r8 9127 bl ftl_malloc 9128 ldr r3, .L1262+228 9129 str r0, [r3] 9130 mov r0, r8 9131 bl ftl_malloc 9132 ldr r3, .L1262+232 9133 ldr r8, .L1262+324 9134 str r0, [r3] 9135 ldrh r0, [r5] 9136 lsrs r0, r0, #3 9137 adds r0, r0, #4 9138 bl ftl_malloc 9139 ldr r3, .L1262+236 9140 str r0, [r3] 9141 ldrh r0, [r8] 9142 lsls r0, r0, #1 9143 bl ftl_malloc 9144 ldr r3, .L1262+240 9145 str r0, [r3] 9146 ldrh r0, [r8] 9147 lsls r0, r0, #1 9148 bl ftl_malloc 9149 ldr r3, .L1262+244 9150 str r0, [r3] 9151 ldrh r0, [r8] 9152 ldr r8, .L1262+328 9153 lsls r0, r0, #2 9154 bl ftl_malloc 9155 ldr r3, .L1262+248 9156 str r0, [r3] 9157 ldrh r0, [r8] 9158 lsls r0, r0, #2 9159 bl ftl_malloc 9160 ldrh r2, [r8] 9161 mov r1, r4 9162 ldr r3, .L1262+252 9163 lsls r2, r2, #2 9164 str r0, [r3] 9165 bl ftl_memset 9166 ldr r3, .L1262+256 9167 ldrh r4, [r3] 9168 lsls r4, r4, #2 9169 mov r0, r4 9170 bl ftl_malloc 9171 ldr r3, .L1262+260 9172 str r0, [r3] 9173 mov r0, r4 9174 bl ftl_malloc 9175 ldr r3, .L1262+264 9176 ldr r4, .L1262+268 9177 str r0, [r3] 9178 ldr r0, [r10] 9179 lsls r0, r0, #2 9180 bl ftl_malloc 9181 ldr r3, .L1262+272 9182 str r0, [r3] 9183 ldrh r0, [r4] 9184 muls r0, r6, r0 9185 ldr r6, .L1262+276 9186 bl ftl_malloc 9187 ldr r3, .L1262+280 9188 str r0, [r3] 9189 ldrh r3, [r4] 9190 ldrh r0, [r7] 9191 muls r0, r3, r0 9192 bl ftl_malloc 9193 ldr r3, .L1262+284 9194 str r0, [r3] 9195 movs r0, #6 9196 ldrh r3, [r5] 9197 ldr r5, .L1262+288 9198 muls r0, r3, r0 9199 bl ftl_malloc 9200 ldr r3, .L1262+292 9201 str r0, [r3] 9202 ldr r3, .L1262+296 9203 ldrh r0, [r3] 9204 ldrh r3, [r6] 9205 adds r0, r0, #31 9206 asrs r0, r0, #5 9207 strh r0, [r5] @ movhi 9208 muls r0, r3, r0 9209 lsls r0, r0, #2 9210 bl ftl_malloc 9211 ldrh r1, [r5] 9212 movs r2, #1 9213 ldr r3, .L1262+300 9214 ldrh r6, [r6] 9215 lsls r1, r1, #2 9216 mov r4, r3 9217 str r0, [r4, #28]! 9218 b .L1263 9219.L1264: 9220 .align 2 9221.L1262: 9222 .word .LANCHOR139 9223 .word .LANCHOR173 9224 .word .LANCHOR157 9225 .word .LANCHOR55 9226 .word .LANCHOR158 9227 .word .LANCHOR159 9228 .word .LANCHOR160 9229 .word .LANCHOR161 9230 .word .LANCHOR162 9231 .word .LANCHOR163 9232 .word .LANCHOR164 9233 .word .LANCHOR165 9234 .word .LANCHOR166 9235 .word .LANCHOR167 9236 .word .LANCHOR168 9237 .word .LANCHOR80 9238 .word .LANCHOR169 9239 .word .LANCHOR170 9240 .word .LANCHOR171 9241 .word .LANCHOR172 9242 .word .LANCHOR174 9243 .word .LANCHOR175 9244 .word .LANCHOR74 9245 .word .LANCHOR113 9246 .word .LANCHOR114 9247 .word .LANCHOR115 9248 .word .LANCHOR116 9249 .word .LANCHOR176 9250 .word .LANCHOR177 9251 .word .LANCHOR178 9252 .word .LANCHOR117 9253 .word .LANCHOR179 9254 .word .LANCHOR119 9255 .word .LANCHOR109 9256 .word .LANCHOR112 9257 .word .LANCHOR180 9258 .word .LANCHOR181 9259 .word .LANCHOR182 9260 .word .LANCHOR58 9261 .word .LANCHOR78 9262 .word .LANCHOR107 9263 .word .LANCHOR183 9264 .word .LANCHOR184 9265 .word .LANCHOR185 9266 .word .LANCHOR105 9267 .word .LANCHOR186 9268 .word .LANCHOR187 9269 .word .LANCHOR104 9270 .word .LANCHOR188 9271 .word .LANCHOR41 9272 .word .LANCHOR189 9273 .word .LANCHOR106 9274 .word .LANCHOR137 9275 .word 33553920 9276 .word .LANCHOR191 9277 .word .LANCHOR79 9278 .word .LANCHOR84 9279 .word .LANCHOR129 9280 .word .LANCHOR125 9281 .word .LANCHOR0 9282 .word .LANCHOR72 9283 .word .LANCHOR192 9284 .word .LANCHOR193 9285 .word .LANCHOR194 9286 .word .LANCHOR67 9287 .word .LANCHOR131 9288 .word .LANCHOR195 9289 .word .LANCHOR68 9290 .word .LANCHOR130 9291 .word .LANCHOR45 9292 .word .LANCHOR97 9293 .word .LANCHOR126 9294 .word .LANCHOR123 9295 .word .LANCHOR82 9296 .word .LANCHOR51 9297 .word .LANCHOR75 9298 .word .LANCHOR38 9299 .word .LANCHOR108 9300 .word .LANCHOR59 9301 .word .LANCHOR65 9302 .word .LANCHOR190 9303 .word .LANCHOR62 9304 .word .LANCHOR63 9305.L1263: 9306 mov r0, r1 9307.L1258: 9308 cmp r2, r6 9309 bcc .L1259 9310 add r3, r3, r2, lsl #2 9311 ldr r2, .L1265 9312 movs r1, #0 9313 adds r3, r3, #24 9314.L1260: 9315 cmp r3, r2 9316 bne .L1261 9317 movs r0, #0 9318 pop {r4, r5, r6, r7, r8, r10, fp, pc} 9319.L1259: 9320 ldr r5, [r3, #28] 9321 adds r2, r2, #1 9322 add r5, r5, r0 9323 add r0, r0, r1 9324 str r5, [r4, #4]! 9325 b .L1258 9326.L1261: 9327 str r1, [r3, #4]! 9328 b .L1260 9329.L1266: 9330 .align 2 9331.L1265: 9332 .word .LANCHOR75+56 9333 .size FtlMemInit, .-FtlMemInit 9334 .section .text.ftl_free,"ax",%progbits 9335 .align 1 9336 .global ftl_free 9337 .syntax unified 9338 .thumb 9339 .thumb_func 9340 .fpu softvfp 9341 .type ftl_free, %function 9342ftl_free: 9343 @ args = 0, pretend = 0, frame = 0 9344 @ frame_needed = 0, uses_anonymous_args = 0 9345 @ link register save eliminated. 9346 b free 9347 .size ftl_free, .-ftl_free 9348 .section .text.StorageSysDataLoad,"ax",%progbits 9349 .align 1 9350 .global StorageSysDataLoad 9351 .syntax unified 9352 .thumb 9353 .thumb_func 9354 .fpu softvfp 9355 .type StorageSysDataLoad, %function 9356StorageSysDataLoad: 9357 @ args = 0, pretend = 0, frame = 0 9358 @ frame_needed = 0, uses_anonymous_args = 0 9359 push {r4, r5, r6, lr} 9360 mov r4, r1 9361 mov r5, r0 9362 mov r2, #512 9363 movs r1, #0 9364 mov r0, r4 9365 bl memset 9366 mov r3, r4 9367 add r1, r5, #256 9368 movs r2, #1 9369 movs r0, #16 9370 pop {r4, r5, r6, lr} 9371 b FtlRead 9372 .size StorageSysDataLoad, .-StorageSysDataLoad 9373 .section .text.FlashBootVendorRead,"ax",%progbits 9374 .align 1 9375 .global FlashBootVendorRead 9376 .syntax unified 9377 .thumb 9378 .thumb_func 9379 .fpu softvfp 9380 .type FlashBootVendorRead, %function 9381FlashBootVendorRead: 9382 @ args = 0, pretend = 0, frame = 0 9383 @ frame_needed = 0, uses_anonymous_args = 0 9384 @ link register save eliminated. 9385 mov r3, r2 9386 mov r1, r0 9387 movs r2, #1 9388 movs r0, #16 9389 b FtlRead 9390 .size FlashBootVendorRead, .-FlashBootVendorRead 9391 .section .text.FlashCs123Init,"ax",%progbits 9392 .align 1 9393 .global FlashCs123Init 9394 .syntax unified 9395 .thumb 9396 .thumb_func 9397 .fpu softvfp 9398 .type FlashCs123Init, %function 9399FlashCs123Init: 9400 @ args = 0, pretend = 0, frame = 0 9401 @ frame_needed = 0, uses_anonymous_args = 0 9402 @ link register save eliminated. 9403 bx lr 9404 .size FlashCs123Init, .-FlashCs123Init 9405 .section .text.rk_nand_de_init,"ax",%progbits 9406 .align 1 9407 .global rk_nand_de_init 9408 .syntax unified 9409 .thumb 9410 .thumb_func 9411 .fpu softvfp 9412 .type rk_nand_de_init, %function 9413rk_nand_de_init: 9414 @ args = 0, pretend = 0, frame = 0 9415 @ frame_needed = 0, uses_anonymous_args = 0 9416 @ link register save eliminated. 9417 b FlashDeInit 9418 .size rk_nand_de_init, .-rk_nand_de_init 9419 .section .text.rk_ftl_get_capacity,"ax",%progbits 9420 .align 1 9421 .global rk_ftl_get_capacity 9422 .syntax unified 9423 .thumb 9424 .thumb_func 9425 .fpu softvfp 9426 .type rk_ftl_get_capacity, %function 9427rk_ftl_get_capacity: 9428 @ args = 0, pretend = 0, frame = 0 9429 @ frame_needed = 0, uses_anonymous_args = 0 9430 @ link register save eliminated. 9431 ldr r3, .L1273 9432 ldr r0, [r3] 9433 bx lr 9434.L1274: 9435 .align 2 9436.L1273: 9437 .word .LANCHOR69 9438 .size rk_ftl_get_capacity, .-rk_ftl_get_capacity 9439 .section .text.rknand_print_hex,"ax",%progbits 9440 .align 1 9441 .global rknand_print_hex 9442 .syntax unified 9443 .thumb 9444 .thumb_func 9445 .fpu softvfp 9446 .type rknand_print_hex, %function 9447rknand_print_hex: 9448 @ args = 0, pretend = 0, frame = 0 9449 @ frame_needed = 0, uses_anonymous_args = 0 9450 push {r4, r5, r6, r7, r8, r10, fp, lr} 9451 movs r5, #0 9452 ldr r7, .L1284 9453 mov fp, r0 9454 mov r6, r1 9455 mov r8, r2 9456 mov r10, r3 9457 mov r4, r5 9458.L1276: 9459 cmp r4, r10 9460 bne .L1282 9461 ldr r1, .L1284+4 9462 ldr r0, .L1284+8 9463 pop {r4, r5, r6, r7, r8, r10, fp, lr} 9464 b printf 9465.L1282: 9466 cbnz r5, .L1277 9467 mov r2, r4 9468 mov r1, fp 9469 ldr r0, .L1284+12 9470 bl printf 9471.L1277: 9472 cmp r8, #4 9473 bne .L1278 9474 ldr r1, [r6, r4, lsl #2] 9475.L1283: 9476 mov r0, r7 9477 adds r5, r5, #1 9478 bl printf 9479 cmp r5, #15 9480 bls .L1281 9481 movs r5, #0 9482 ldr r1, .L1284+4 9483 ldr r0, .L1284+8 9484 bl printf 9485.L1281: 9486 adds r4, r4, #1 9487 b .L1276 9488.L1278: 9489 cmp r8, #2 9490 ite eq 9491 ldrsheq r1, [r6, r4, lsl #1] 9492 ldrbne r1, [r6, r4] @ zero_extendqisi2 9493 b .L1283 9494.L1285: 9495 .align 2 9496.L1284: 9497 .word .LC19 9498 .word .LC20 9499 .word .LC7 9500 .word .LC18 9501 .size rknand_print_hex, .-rknand_print_hex 9502 .section .text.HynixGetReadRetryDefault,"ax",%progbits 9503 .align 1 9504 .global HynixGetReadRetryDefault 9505 .syntax unified 9506 .thumb 9507 .thumb_func 9508 .fpu softvfp 9509 .type HynixGetReadRetryDefault, %function 9510HynixGetReadRetryDefault: 9511 @ args = 0, pretend = 0, frame = 56 9512 @ frame_needed = 0, uses_anonymous_args = 0 9513 push {r4, r5, r6, r7, r8, r10, fp, lr} 9514 movs r3, #172 9515 ldr r5, .L1385 9516 cmp r0, #2 9517 mov r1, #173 9518 mov r2, #174 9519 sub sp, sp, #56 9520 mov r4, r0 9521 strb r3, [r5, #4] 9522 mov r3, #175 9523 strb r0, [r5] 9524 strb r1, [r5, #5] 9525 strb r2, [r5, #6] 9526 strb r3, [r5, #7] 9527 bne .L1287 9528 movs r3, #167 9529 movs r2, #247 9530 strb r3, [r5, #4] 9531 ldr r3, .L1385+4 9532 strb r2, [r3, #17] 9533.L1343: 9534 mov r10, #7 9535 b .L1379 9536.L1287: 9537 cmp r0, #3 9538 bne .L1289 9539 movs r3, #176 9540 strb r3, [r5, #4] 9541 movs r3, #177 9542 strb r3, [r5, #5] 9543 movs r3, #178 9544 strb r3, [r5, #6] 9545 movs r3, #179 9546 strb r3, [r5, #7] 9547 movs r3, #180 9548 strb r3, [r5, #8] 9549 movs r3, #181 9550 strb r3, [r5, #9] 9551 movs r3, #182 9552 strb r3, [r5, #10] 9553 movs r3, #183 9554.L1380: 9555 mov r10, #8 9556 strb r3, [r5, #11] 9557 mov fp, r10 9558.L1288: 9559 subs r3, r4, #1 9560 cmp r3, #1 9561 bhi .L1293 9562 mov r8, #0 9563.L1294: 9564 ldr r3, .L1385+8 9565 ldrb r2, [r3] @ zero_extendqisi2 9566 uxtb r3, r8 9567 cmp r2, r3 9568 bhi .L1300 9569.L1301: 9570 ldr r3, .L1385 9571 strb fp, [r3, #1] 9572 strb r10, [r3, #2] 9573 add sp, sp, #56 9574 @ sp needed 9575 pop {r4, r5, r6, r7, r8, r10, fp, pc} 9576.L1289: 9577 cmp r0, #4 9578 bne .L1290 9579 movs r0, #204 9580 strb r1, [r5, #9] 9581 strb r0, [r5, #4] 9582 movs r0, #191 9583 strb r0, [r5, #5] 9584 movs r0, #170 9585 strb r0, [r5, #6] 9586 movs r0, #171 9587 strb r0, [r5, #7] 9588 movs r0, #205 9589 strb r0, [r5, #8] 9590 strb r2, [r5, #10] 9591 b .L1380 9592.L1290: 9593 cmp r0, #5 9594 bne .L1291 9595 movs r3, #56 9596 mov r10, #8 9597 strb r3, [r5, #4] 9598 movs r3, #57 9599 strb r3, [r5, #5] 9600 movs r3, #58 9601 strb r3, [r5, #6] 9602 movs r3, #59 9603 strb r3, [r5, #7] 9604.L1379: 9605 mov fp, #4 9606 b .L1288 9607.L1291: 9608 cmp r0, #6 9609 bne .L1292 9610 movs r3, #14 9611 mov r10, #12 9612 strb r3, [r5, #4] 9613 movs r3, #15 9614 strb r3, [r5, #5] 9615 movs r3, #16 9616 strb r3, [r5, #6] 9617 movs r3, #17 9618 strb r3, [r5, #7] 9619 b .L1379 9620.L1292: 9621 cmp r0, #7 9622 bne .L1343 9623 movs r3, #176 9624 mov r10, #12 9625 strb r3, [r5, #4] 9626 movs r3, #177 9627 strb r3, [r5, #5] 9628 movs r3, #178 9629 strb r3, [r5, #6] 9630 movs r3, #179 9631 strb r3, [r5, #7] 9632 movs r3, #180 9633 strb r3, [r5, #8] 9634 movs r3, #181 9635 strb r3, [r5, #9] 9636 movs r3, #182 9637 strb r3, [r5, #10] 9638 movs r3, #183 9639 strb r3, [r5, #11] 9640 movs r3, #212 9641 strb r3, [r5, #12] 9642 movs r3, #213 9643 strb r3, [r5, #13] 9644 mov fp, #10 9645 b .L1288 9646.L1300: 9647 ldr r2, .L1385+12 9648 movs r6, #0 9649 ldrb r2, [r2, r3] @ zero_extendqisi2 9650 ldr r3, .L1385+16 9651 ldr r7, [r3, r2, lsl #3] 9652 add r4, r5, r2, lsl #6 9653 add r3, r3, r2, lsl #3 9654 movs r2, #55 9655 adds r4, r4, #20 9656 ldrb r3, [r3, #4] @ zero_extendqisi2 9657 add r7, r7, r3, lsl #8 9658 addw r3, r7, #2056 9659.L1295: 9660 adds r1, r5, r6 9661 str r2, [r3] 9662 ldrb r1, [r1, #4] @ zero_extendqisi2 9663 movs r0, #80 9664 str r2, [sp, #8] 9665 str r3, [sp, #4] 9666 str r1, [r7, #2052] 9667 bl udelay 9668 ldr r1, [r7, #2048] 9669 ldr r3, [sp, #4] 9670 ldr r2, [sp, #8] 9671 strb r1, [r4, r6] 9672 adds r6, r6, #1 9673 uxtb r1, r6 9674 cmp fp, r1 9675 bhi .L1295 9676 ldr r7, .L1385+4 9677 mov r1, r4 9678 movs r2, #0 9679.L1298: 9680 movs r3, #1 9681 adds r6, r7, r2 9682.L1297: 9683 ldrb r0, [r6, r3, lsl #2] @ zero_extendqisi2 9684 ldrb ip, [r1] @ zero_extendqisi2 9685 add r0, r0, ip 9686 strb r0, [r1, r3, lsl #3] 9687 adds r3, r3, #1 9688 cmp r3, #7 9689 bne .L1297 9690 adds r2, r2, #1 9691 adds r1, r1, #1 9692 cmp r2, #4 9693 bne .L1298 9694 movs r3, #0 9695 add r8, r8, #1 9696 strb r3, [r4, #16] 9697 strb r3, [r4, #24] 9698 strb r3, [r4, #32] 9699 strb r3, [r4, #40] 9700 strb r3, [r4, #48] 9701 strb r3, [r4, #41] 9702 strb r3, [r4, #49] 9703 b .L1294 9704.L1293: 9705 subs r3, r4, #3 9706 cmp r3, #4 9707 bhi .L1301 9708 smulbb r3, r10, fp 9709 asrs r2, r3, #2 9710 lsls r3, r3, #4 9711 str r3, [sp, #52] 9712 lsls r3, r2, #3 9713 str r2, [sp, #12] 9714 str r3, [sp, #48] 9715 lsls r3, r2, #2 9716 str r3, [sp, #32] 9717 movs r3, #0 9718.L1384: 9719 str r3, [sp, #28] 9720 ldrb r3, [sp, #28] @ zero_extendqisi2 9721 str r3, [sp, #16] 9722 ldr r3, .L1385+8 9723 ldr r2, [sp, #16] 9724 ldrb r3, [r3] @ zero_extendqisi2 9725 cmp r3, r2 9726 bls .L1301 9727 ldr r2, [sp, #16] 9728 ldr r3, .L1385+12 9729 ldrb r8, [r3, r2] @ zero_extendqisi2 9730 ldr r3, .L1385+16 9731 mov r0, r8 9732 ldr r2, [r3, r8, lsl #3] 9733 add r3, r3, r8, lsl #3 9734 ldrb r3, [r3, #4] @ zero_extendqisi2 9735 str r2, [sp, #4] 9736 str r3, [sp, #8] 9737 mov r3, r2 9738 ldr r2, [sp, #8] 9739 add r3, r3, r2, lsl #8 9740 movs r2, #255 9741 str r2, [r3, #2056] 9742 bl NandcWaitFlashReady 9743 ldr r1, .L1385 9744 cmp r4, #7 9745 it eq 9746 moveq r3, #160 9747 ldr r2, [sp, #8] 9748 itete eq 9749 mlaeq r1, r3, r8, r1 9750 addne r1, r1, r8, lsl #6 9751 addeq r3, r1, #28 9752 addne r3, r1, #20 9753 str r3, [sp, #36] 9754 cmp r4, #4 9755 ldr r3, [sp, #4] 9756 add r3, r3, r2, lsl #8 9757 mov r2, #54 9758 str r2, [r3, #2056] 9759 bne .L1305 9760 movs r2, #255 9761 str r2, [r3, #2052] 9762 movs r2, #64 9763 str r2, [r3, #2048] 9764 movs r2, #204 9765.L1382: 9766 str r2, [r3, #2052] 9767 movs r2, #77 9768 b .L1383 9769.L1305: 9770 subs r2, r4, #5 9771 cmp r2, #1 9772 bhi .L1307 9773 ldr r2, .L1385 9774 ldrb r2, [r2, #4] @ zero_extendqisi2 9775 str r2, [r3, #2052] 9776 movs r2, #82 9777.L1383: 9778 str r2, [r3, #2048] 9779 cmp r4, #6 9780 ldr r3, [sp, #4] 9781 mov r0, r8 9782 ldr r2, [sp, #8] 9783 add r5, r3, r2, lsl #8 9784 mov r3, #22 9785 ldr r2, [sp, #8] 9786 str r3, [r5, #2056] 9787 mov r3, #23 9788 str r3, [r5, #2056] 9789 mov r3, #4 9790 str r3, [r5, #2056] 9791 mov r3, #25 9792 str r3, [r5, #2056] 9793 mov r3, #0 9794 str r3, [r5, #2056] 9795 str r3, [r5, #2052] 9796 str r3, [r5, #2052] 9797 it eq 9798 moveq r3, #31 9799 str r3, [r5, #2052] 9800 movs r3, #2 9801 str r3, [r5, #2052] 9802 movs r3, #0 9803 str r3, [r5, #2052] 9804 ldr r3, [sp, #4] 9805 add r3, r3, r2, lsl #8 9806 movs r2, #48 9807 str r2, [r3, #2056] 9808 bl NandcWaitFlashReady 9809 subs r3, r4, #5 9810 cmp r3, #1 9811 str r3, [sp, #40] 9812 bls .L1344 9813 cmp r4, #7 9814 ite eq 9815 moveq r2, #32 9816 movne r2, #2 9817.L1310: 9818 ldr r3, .L1385+20 9819 subs r2, r2, #1 9820 ldr r3, [r3] 9821 subs r1, r3, #1 9822 uxtab r2, r3, r2 9823 mov r0, r1 9824.L1311: 9825 ldr r6, [r5, #2048] 9826 strb r6, [r0, #1]! 9827 cmp r2, r0 9828 bne .L1311 9829 cmp r4, #7 9830 bne .L1312 9831 movs r2, #0 9832.L1314: 9833 ldrb r0, [r3, r2, lsl #2] @ zero_extendqisi2 9834 uxtb r1, r2 9835 cmp r0, #12 9836 beq .L1313 9837 add r0, r3, r2, lsl #2 9838 ldrb r0, [r0, #1] @ zero_extendqisi2 9839 cmp r0, #10 9840 beq .L1313 9841 adds r2, r2, #1 9842 cmp r2, #8 9843 bne .L1314 9844.L1315: 9845 movs r1, #0 9846 ldr r0, .L1385+24 9847 bl printf 9848.L1317: 9849 b .L1317 9850.L1307: 9851 movs r2, #174 9852 str r2, [r3, #2052] 9853 movs r2, #0 9854 str r2, [r3, #2048] 9855 movs r2, #176 9856 b .L1382 9857.L1344: 9858 movs r2, #16 9859 b .L1310 9860.L1386: 9861 .align 2 9862.L1385: 9863 .word .LANCHOR20 9864 .word .LANCHOR196 9865 .word .LANCHOR25 9866 .word .LANCHOR26 9867 .word .LANCHOR6 9868 .word .LANCHOR147 9869 .word .LC21 9870.L1313: 9871 cmp r1, #6 9872 bhi .L1315 9873.L1316: 9874 ldr r3, .L1387 9875 ldr lr, [r3] 9876 mov r3, lr 9877.L1321: 9878 ldr r1, [sp, #52] 9879 sub r2, r3, lr 9880 cmp r1, r2 9881 bgt .L1322 9882 ldr r3, .L1387 9883 ldr r1, [r3] 9884 ldr r3, [sp, #32] 9885 adds r0, r1, r3 9886 movs r3, #8 9887.L1324: 9888 mov r7, r0 9889 movs r6, #0 9890.L1323: 9891 ldr r2, [r7] 9892 adds r6, r6, #1 9893 mvns r2, r2 9894 str r2, [r7], #4 9895 ldr r2, [sp, #12] 9896 cmp r2, r6 9897 bgt .L1323 9898 ldr r2, [sp, #48] 9899 subs r3, r3, #1 9900 add r0, r0, r2 9901 bne .L1324 9902 str r1, [sp, #20] 9903 str r3, [sp, #24] 9904.L1330: 9905 movs r0, #0 9906 mov r2, r0 9907.L1329: 9908 movs r3, #1 9909 mov ip, #0 9910 lsl r7, r3, r2 9911 movs r3, #16 9912 str r3, [sp, #44] 9913 mov r6, r7 9914 ldr r7, [sp, #20] 9915.L1327: 9916 ldr r3, [r7] 9917 bics r3, r6, r3 9918 ldr r3, [sp, #32] 9919 it eq 9920 addeq ip, ip, #1 9921 add r7, r7, r3 9922 ldr r3, [sp, #44] 9923 subs r3, r3, #1 9924 str r3, [sp, #44] 9925 bne .L1327 9926 cmp ip, #8 9927 add r2, r2, #1 9928 itt hi 9929 movhi r3, r6 9930 orrhi r0, r0, r3 9931 cmp r2, #32 9932 bne .L1329 9933 ldr r3, [sp, #20] 9934 str r0, [r3], #4 9935 str r3, [sp, #20] 9936 ldr r3, [sp, #24] 9937 adds r3, r3, #1 9938 str r3, [sp, #24] 9939 ldr r2, [sp, #24] 9940 ldr r3, [sp, #12] 9941 cmp r3, r2 9942 bgt .L1330 9943 subs r2, r1, #4 9944 add r0, r1, #28 9945 movs r3, #0 9946.L1333: 9947 ldr r6, [r2, #4]! 9948 cbnz r6, .L1332 9949 adds r3, r3, #1 9950.L1332: 9951 cmp r0, r2 9952 bne .L1333 9953 cmp r3, #7 9954 ble .L1334 9955 ldr r0, .L1387+4 9956 mov r3, #1024 9957 movs r2, #1 9958 bl rknand_print_hex 9959 movs r1, #0 9960 ldr r0, .L1387+8 9961 bl printf 9962.L1335: 9963 b .L1335 9964.L1312: 9965 cmp r4, #6 9966 bne .L1316 9967 adds r3, r3, #7 9968.L1318: 9969 ldrb r2, [r1, #1]! @ zero_extendqisi2 9970 cmp r2, #12 9971 beq .L1316 9972 ldrb r2, [r1, #8] @ zero_extendqisi2 9973 cmp r2, #4 9974 beq .L1316 9975 cmp r3, r1 9976 bne .L1318 9977 movs r1, #0 9978 ldr r0, .L1387+8 9979 bl printf 9980.L1320: 9981 b .L1320 9982.L1322: 9983 ldr r2, [r5, #2048] 9984 strb r2, [r3], #1 9985 b .L1321 9986.L1334: 9987 cmp r4, #6 9988 beq .L1346 9989 cmp r4, #7 9990 ite eq 9991 moveq ip, #10 9992 movne ip, #8 9993.L1336: 9994 add r3, fp, #-1 9995 ldr r1, [sp, #36] 9996 uxtb r3, r3 9997 movs r0, #0 9998 adds r3, r3, #1 9999.L1337: 10000 mov r7, r1 10001 mov r2, lr 10002.L1338: 10003 ldrb r6, [r2], #1 @ zero_extendqisi2 10004 strb r6, [r7], #1 10005 sub r6, r2, lr 10006 uxtb r6, r6 10007 cmp fp, r6 10008 bhi .L1338 10009 adds r0, r0, #1 10010 add lr, lr, r3 10011 cmp r10, r0 10012 add r1, r1, ip 10013 bgt .L1337 10014 ldr r3, [sp, #4] 10015 mov r0, r8 10016 ldr r2, [sp, #8] 10017 add r6, r3, r2, lsl #8 10018 movs r3, #255 10019 str r3, [r6, #2056] 10020 bl NandcWaitFlashReady 10021 ldr r3, [sp, #40] 10022 cmp r3, #1 10023 bhi .L1340 10024 movs r3, #54 10025 mov r1, #-1 10026 str r3, [r6, #2056] 10027 ldr r3, .L1387+12 10028 ldr r0, [sp, #16] 10029 ldrb r3, [r3, #4] @ zero_extendqisi2 10030 str r3, [r5, #2052] 10031 movs r3, #0 10032 str r3, [r5, #2048] 10033 movs r3, #22 10034 str r3, [r6, #2056] 10035 bl FlashReadCmd 10036.L1341: 10037 mov r0, r8 10038 bl NandcWaitFlashReady 10039 ldr r3, [sp, #28] 10040 adds r3, r3, #1 10041 b .L1384 10042.L1346: 10043 mov ip, #4 10044 b .L1336 10045.L1340: 10046 movs r3, #56 10047 str r3, [r6, #2056] 10048 b .L1341 10049.L1388: 10050 .align 2 10051.L1387: 10052 .word .LANCHOR147 10053 .word .LC22 10054 .word .LC21 10055 .word .LANCHOR20 10056 .size HynixGetReadRetryDefault, .-HynixGetReadRetryDefault 10057 .section .text.FlashGetReadRetryDefault,"ax",%progbits 10058 .align 1 10059 .global FlashGetReadRetryDefault 10060 .syntax unified 10061 .thumb 10062 .thumb_func 10063 .fpu softvfp 10064 .type FlashGetReadRetryDefault, %function 10065FlashGetReadRetryDefault: 10066 @ args = 0, pretend = 0, frame = 0 10067 @ frame_needed = 0, uses_anonymous_args = 0 10068 @ link register save eliminated. 10069 mov r3, r0 10070 cbz r0, .L1389 10071 subs r2, r0, #1 10072 cmp r2, #6 10073 bhi .L1391 10074 b HynixGetReadRetryDefault 10075.L1391: 10076 cmp r0, #49 10077 bne .L1392 10078 ldr r0, .L1412 10079 movs r2, #64 10080 ldr r1, .L1412+4 10081 strb r3, [r0] 10082 movs r3, #4 10083 strb r3, [r0, #1] 10084 movs r3, #15 10085 strb r3, [r0, #2] 10086.L1410: 10087 adds r0, r0, #4 10088 b ftl_memcpy 10089.L1392: 10090 cmp r0, #33 10091 beq .L1393 10092 sub r2, r0, #65 10093 cmp r2, #1 10094 bhi .L1394 10095.L1393: 10096 ldr r0, .L1412 10097 strb r3, [r0] 10098 movs r3, #4 10099.L1411: 10100 strb r3, [r0, #1] 10101 movs r3, #7 10102 strb r3, [r0, #2] 10103 movs r2, #45 10104 ldr r1, .L1412+8 10105 b .L1410 10106.L1394: 10107 cmp r0, #34 10108 beq .L1395 10109 cmp r0, #67 10110 bne .L1396 10111.L1395: 10112 ldr r0, .L1412 10113 strb r3, [r0] 10114 movs r3, #5 10115 b .L1411 10116.L1396: 10117 cmp r0, #35 10118 beq .L1397 10119 cmp r0, #68 10120 bne .L1389 10121.L1397: 10122 ldr r0, .L1412 10123 movs r2, #95 10124 ldr r1, .L1412+12 10125 strb r3, [r0] 10126 movs r3, #5 10127 strb r3, [r0, #1] 10128 movs r3, #17 10129 strb r3, [r0, #2] 10130 b .L1410 10131.L1389: 10132 bx lr 10133.L1413: 10134 .align 2 10135.L1412: 10136 .word .LANCHOR20 10137 .word .LANCHOR14 10138 .word .LANCHOR9 10139 .word .LANCHOR11 10140 .size FlashGetReadRetryDefault, .-FlashGetReadRetryDefault 10141 .section .text.FlashInit,"ax",%progbits 10142 .align 1 10143 .global FlashInit 10144 .syntax unified 10145 .thumb 10146 .thumb_func 10147 .fpu softvfp 10148 .type FlashInit, %function 10149FlashInit: 10150 @ args = 0, pretend = 0, frame = 16 10151 @ frame_needed = 0, uses_anonymous_args = 0 10152 push {r4, r5, r6, r7, r8, r10, fp, lr} 10153 mov r4, r0 10154 sub sp, sp, #32 10155 mov r0, #32768 10156 movs r5, #0 10157 bl ftl_malloc 10158 ldr r3, .L1507 10159 ldr r10, .L1507+132 10160 ldr r8, .L1507+136 10161 str r0, [r3] 10162 mov r0, #32768 10163 bl ftl_malloc 10164 ldr r3, .L1507+4 10165 ldr r6, .L1507+8 10166 ldr r7, .L1507+12 10167 str r0, [r3] 10168 mov r0, #4096 10169 bl ftl_malloc 10170 ldr r3, .L1507+16 10171 str r0, [r3] 10172 mov r0, #32768 10173 bl ftl_malloc 10174 ldr r3, .L1507+20 10175 str r0, [r3] 10176 mov r0, #4096 10177 bl ftl_malloc 10178 ldr r3, .L1507+24 10179 ldr r2, .L1507+28 10180 strb r5, [r8] 10181 str r0, [r3] 10182 movs r3, #50 10183 strb r3, [r10] 10184 mov r0, r4 10185 strb r3, [r2] 10186 movs r2, #128 10187 ldr r3, .L1507+32 10188 ldr r4, .L1507+36 10189 strb r5, [r7] 10190 str r5, [r3] 10191 ldr r3, .L1507+40 10192 str r2, [r3] 10193 ldr r3, .L1507+44 10194 str r5, [r3] 10195 movs r3, #60 10196 strb r3, [r6] 10197 bl NandcInit 10198 str r10, [sp, #20] 10199 ldr r10, .L1507+140 10200 str r8, [sp, #16] 10201 mov r8, r6 10202 mov r6, r4 10203.L1419: 10204 uxtb fp, r5 10205 mov r0, fp 10206 bl FlashReset 10207 add r1, r10, r5, lsl #3 10208 ldr r3, [r10, r5, lsl #3] 10209 mov r0, fp 10210 ldrb r1, [r1, #4] @ zero_extendqisi2 10211 str r3, [sp, #28] 10212 str r1, [sp, #24] 10213 bl NandcFlashCs 10214 ldr r1, [sp, #24] 10215 movs r0, #200 10216 ldr r3, [sp, #28] 10217 add r3, r3, r1, lsl #8 10218 movs r1, #144 10219 str r1, [r3, #2056] 10220 movs r1, #0 10221 str r1, [r3, #2052] 10222 str r3, [sp, #24] 10223 bl udelay 10224 ldr r3, [sp, #24] 10225 mov r0, fp 10226 ldr r1, [r3, #2048] 10227 strb r1, [r4] 10228 ldr r1, [r3, #2048] 10229 strb r1, [r4, #1] 10230 ldr r1, [r3, #2048] 10231 strb r1, [r4, #2] 10232 ldr r1, [r3, #2048] 10233 strb r1, [r4, #3] 10234 ldr r1, [r3, #2048] 10235 strb r1, [r4, #4] 10236 ldr r3, [r3, #2048] 10237 strb r3, [r4, #5] 10238 bl NandcFlashDeCs 10239 ldrb r2, [r4] @ zero_extendqisi2 10240 subs r3, r2, #1 10241 uxtb r3, r3 10242 cmp r3, #253 10243 bhi .L1415 10244 ldrb r1, [r4, #5] @ zero_extendqisi2 10245 ldrb r3, [r4, #1] @ zero_extendqisi2 10246 ldr r0, .L1507+48 10247 str r1, [sp, #12] 10248 ldrb r1, [r4, #4] @ zero_extendqisi2 10249 str r1, [sp, #8] 10250 ldrb r1, [r4, #3] @ zero_extendqisi2 10251 str r1, [sp, #4] 10252 ldrb r1, [r4, #2] @ zero_extendqisi2 10253 str r1, [sp] 10254 adds r1, r5, #1 10255 bl printf 10256.L1415: 10257 cbnz r5, .L1416 10258 ldrb r3, [r6] @ zero_extendqisi2 10259 subs r3, r3, #1 10260 uxtb r3, r3 10261 cmp r3, #253 10262 bhi .L1460 10263 ldrb r3, [r6, #1] @ zero_extendqisi2 10264 cmp r3, #255 10265 beq .L1460 10266.L1416: 10267 ldrb r3, [r4] @ zero_extendqisi2 10268 adds r5, r5, #1 10269 adds r4, r4, #8 10270 cmp r3, #181 10271 itt eq 10272 moveq r3, #44 10273 strbeq r3, [r4, #-8] 10274 cmp r5, #4 10275 bne .L1419 10276 ldrb r3, [r6] @ zero_extendqisi2 10277 cmp r3, #173 10278 beq .L1420 10279 ldr r3, .L1507+52 10280 ldr r0, [r3] 10281 bl NandcSetDdrMode 10282.L1420: 10283 mov r2, #852 10284 movs r1, #0 10285 ldr r0, .L1507+56 10286 bl ftl_memset 10287 ldr r4, .L1507+60 10288 ldr r3, .L1507+64 10289 ldr r5, .L1507+68 10290 str r3, [r4] 10291 movs r3, #0 10292 strb r3, [r5] 10293 ldrb r3, [r6, #1] @ zero_extendqisi2 10294 cmp r3, #161 10295 beq .L1421 10296 cmp r3, #218 10297 beq .L1421 10298 and r2, r3, #223 10299 cmp r2, #209 10300 beq .L1421 10301 cmp r3, #220 10302 bne .L1422 10303 ldrb r2, [r6, #3] @ zero_extendqisi2 10304 cmp r2, #149 10305 bne .L1422 10306.L1421: 10307 ldr r1, [sp, #16] 10308 movs r2, #1 10309 strb r2, [r1] 10310 movs r2, #16 10311 ldr r1, [sp, #20] 10312 strb r2, [r8] 10313 strb r2, [r1] 10314 ldrb r1, [r6] @ zero_extendqisi2 10315 ldr r2, .L1507+72 10316 cmp r1, #152 10317 strb r1, [r2, #1] 10318 strb r3, [r2, #2] 10319 bne .L1423 10320 ldrsb r1, [r6, #4] 10321 cmp r1, #0 10322 itt ge 10323 movge r1, #24 10324 strbge r1, [r8] 10325.L1423: 10326 ldr r1, .L1507+76 10327 ldr r0, .L1507+80 10328 ldr r1, [r1] 10329 cmp r1, r0 10330 beq .L1424 10331 movw r0, #2049 10332 cmp r1, r0 10333 bne .L1425 10334.L1424: 10335 movs r1, #16 10336 strb r1, [r8] 10337.L1425: 10338 cmp r3, #218 10339 bne .L1426 10340 mov r1, #2048 10341.L1503: 10342 strh r1, [r2, #14] @ movhi 10343 strb r3, [r2, #2] 10344.L1427: 10345 movs r2, #32 10346 ldr r1, .L1507+84 10347 ldr r0, .L1507+88 10348 bl ftl_memcpy 10349 movs r2, #32 10350 ldr r1, .L1507+72 10351 ldr r0, .L1507+64 10352 bl ftl_memcpy 10353.L1422: 10354 ldr r3, [sp, #16] 10355 ldr r8, .L1507+144 10356 ldrb r3, [r3] @ zero_extendqisi2 10357 cmp r3, #0 10358 bne .L1429 10359 bl FlashLoadPhyInfoInRam 10360 cbnz r0, .L1431 10361 ldr r3, [r4] 10362 ldr r10, .L1507+100 10363 ldrh r3, [r3, #16] 10364 lsrs r3, r3, #8 10365 lsls r1, r3, #31 10366 and r0, r3, #7 10367 strb r0, [r10] 10368 bmi .L1431 10369 movs r3, #1 10370 strb r3, [r7] 10371 bl FlashSetInterfaceMode 10372 ldrb r0, [r10] @ zero_extendqisi2 10373 bl NandcSetMode 10374.L1431: 10375 ldr r3, [r4] 10376 ldrb r3, [r3, #26] @ zero_extendqisi2 10377 strb r3, [r8] 10378 bl FlashLoadPhyInfo 10379 cmp r0, #0 10380 beq .L1429 10381 ldr r3, [r4] 10382 ldr r0, .L1507+92 10383 ldrh r1, [r3, #14] 10384 bl printf 10385 bl FlashLoadPhyInfoInRam 10386 adds r2, r0, #1 10387 beq .L1414 10388 bl FlashDieInfoInit 10389 ldr r3, [r4] 10390 ldrb r0, [r3, #19] @ zero_extendqisi2 10391 bl FlashGetReadRetryDefault 10392 ldr r3, [r4] 10393 ldr r2, .L1507+96 10394 ldrb r1, [r3, #9] @ zero_extendqisi2 10395 ldrh r2, [r2] 10396 addw r2, r2, #4095 10397 cmp r1, r2, asr #12 10398 blt .L1434 10399 ldrh r2, [r3, #14] 10400 adds r2, r2, #255 10401 cmp r1, r2, asr #8 10402 bge .L1435 10403.L1434: 10404 ldrh r2, [r3, #14] 10405 bic r2, r2, #255 10406 strh r2, [r3, #14] @ movhi 10407.L1435: 10408 ldr r3, .L1507+100 10409 ldrb r3, [r3] @ zero_extendqisi2 10410 tst r3, #6 10411 beq .L1436 10412 bl FlashSavePhyInfo 10413 ldr r3, .L1507+104 10414 movs r0, #0 10415 ldr r1, [r3] 10416 bl FlashDdrParaScan 10417.L1436: 10418 bl FlashSavePhyInfo 10419.L1429: 10420 ldr fp, [r4] 10421 ldr r10, .L1507+100 10422 ldrb r3, [fp, #26] @ zero_extendqisi2 10423 ldrh r0, [fp, #10] 10424 strb r3, [r8] 10425 ldrh r3, [fp, #16] 10426 ubfx r2, r3, #7, #1 10427 ubfx r1, r3, #3, #1 10428 strb r2, [r5] 10429 ldr r2, .L1507+108 10430 ldr r5, .L1507+112 10431 strb r1, [r2] 10432 ubfx r1, r3, #4, #1 10433 ldr r2, .L1507+116 10434 ubfx r3, r3, #8, #3 10435 strb r3, [r10] 10436 movs r3, #0 10437 str r3, [r5] 10438 strb r1, [r2] 10439 ldrb r1, [fp, #12] @ zero_extendqisi2 10440 bl __aeabi_idiv 10441 mov r1, r0 10442 ldrb r0, [fp, #18] @ zero_extendqisi2 10443 bl BuildFlashLsbPageTable 10444 bl FlashDieInfoInit 10445 ldr r3, [r4] 10446 mov ip, r5 10447 ldrh r2, [r3, #16] 10448 tst r2, #64 10449 beq .L1438 10450 ldrb r0, [r3, #19] @ zero_extendqisi2 10451 ldr r3, .L1507+120 10452 ldr r2, .L1507+124 10453 strb r0, [r3] 10454 ldr r3, .L1507+56 10455 ldrb r1, [r3, #1] @ zero_extendqisi2 10456 ldrb lr, [r3, #2] @ zero_extendqisi2 10457 strb r1, [r2] 10458 ldr r1, .L1507+128 10459 strb lr, [r1] 10460 b .L1508 10461.L1509: 10462 .align 2 10463.L1507: 10464 .word .LANCHOR147 10465 .word .LANCHOR153 10466 .word .LANCHOR152 10467 .word .LANCHOR30 10468 .word .LANCHOR197 10469 .word .LANCHOR198 10470 .word .LANCHOR199 10471 .word .LANCHOR150 10472 .word .LANCHOR149 10473 .word .LANCHOR22 10474 .word .LANCHOR3 10475 .word .LANCHOR144 10476 .word .LC23 10477 .word .LANCHOR155 10478 .word .LANCHOR20 10479 .word .LANCHOR18 10480 .word .LANCHOR31 10481 .word .LANCHOR5 10482 .word .LANCHOR200 10483 .word .LANCHOR29 10484 .word 1446522928 10485 .word .LANCHOR143+32 10486 .word .LANCHOR7 10487 .word .LC24 10488 .word .LANCHOR122 10489 .word .LANCHOR24 10490 .word .LANCHOR148 10491 .word .LANCHOR201 10492 .word .LANCHOR145 10493 .word .LANCHOR27 10494 .word .LANCHOR10 10495 .word .LANCHOR13 10496 .word .LANCHOR151 10497 .word .LANCHOR2 10498 .word .LANCHOR1 10499 .word .LANCHOR6 10500 .word .LANCHOR8 10501.L1508: 10502 add lr, r0, #-1 10503 cmp lr, #6 10504 mov lr, r1 10505 bhi .L1439 10506 ldr r2, .L1510 10507 str r2, [r5] 10508 subs r2, r0, #5 10509 cmp r2, #1 10510 bhi .L1440 10511 ldr r2, .L1510+4 10512 adds r3, r3, #20 10513 movs r1, #1 10514 str r1, [r2] 10515.L1441: 10516 subs r1, r3, #1 10517 movs r2, #0 10518 adds r3, r3, #31 10519.L1443: 10520 ldrsb r5, [r1, #1]! 10521 cbnz r5, .L1442 10522 adds r2, r2, #1 10523.L1442: 10524 cmp r3, r1 10525 bne .L1443 10526 cmp r2, #27 10527 bls .L1438 10528 bl FlashGetReadRetryDefault 10529 bl FlashSavePhyInfo 10530.L1438: 10531 ldr r3, .L1510+8 10532 ldr r2, [r3] 10533 ldr r3, .L1510+12 10534 cmp r2, r3 10535 bne .L1454 10536 ldrb r3, [r8] @ zero_extendqisi2 10537 cbz r3, .L1454 10538 ldr r3, [r4] 10539 movs r2, #0 10540 strb r2, [r3, #18] 10541.L1454: 10542 ldrb r3, [r6] @ zero_extendqisi2 10543 cmp r3, #44 10544 bne .L1455 10545 ldrb r3, [r7] @ zero_extendqisi2 10546 cbz r3, .L1455 10547 movs r3, #0 10548 movs r0, #1 10549 strb r3, [r7] 10550 bl FlashSetInterfaceMode 10551 movs r0, #1 10552 bl NandcSetMode 10553.L1455: 10554 movs r0, #0 10555 bl flash_enter_slc_mode 10556 ldrb r3, [r10] @ zero_extendqisi2 10557 tst r3, #6 10558 beq .L1456 10559 ldrb r2, [r7] @ zero_extendqisi2 10560 cbnz r2, .L1457 10561 lsls r3, r3, #31 10562 bmi .L1456 10563.L1457: 10564 ldr r3, .L1510+16 10565 movs r0, #0 10566 ldr r1, [r3] 10567 bl FlashDdrParaScan 10568.L1456: 10569 movs r0, #0 10570 movs r7, #16 10571 bl flash_exit_slc_mode 10572 ldr r3, [r4] 10573 ldrb r0, [r3, #20] @ zero_extendqisi2 10574 bl FlashBchSel 10575 ldr r0, .L1510+20 10576 bl FlashReadIdbDataRaw 10577 ldr r8, [r4] 10578 ldr r3, [sp, #20] 10579 ldr r4, .L1510+24 10580 ldrb r1, [r8, #12] @ zero_extendqisi2 10581 strb r7, [r3] 10582 ldrh r5, [r8, #10] 10583 strh r1, [r4, #8] @ movhi 10584 ldrb r3, [r8, #7] @ zero_extendqisi2 10585 mov r0, r5 10586 str r3, [r4, #4] 10587 ldr r3, [r6] 10588 ldrh r6, [r8, #14] 10589 str r3, [r4] 10590 ldr r3, .L1510+28 10591 ldrb r3, [r3] @ zero_extendqisi2 10592 strh r3, [r4, #10] @ movhi 10593 ldrb r3, [r8, #13] @ zero_extendqisi2 10594 strh r5, [r4, #16] @ movhi 10595 strh r6, [r4, #14] @ movhi 10596 strh r3, [r4, #12] @ movhi 10597 bl __aeabi_idiv 10598 mov r2, #512 10599 strh r0, [r4, #18] @ movhi 10600 ldrb r3, [r8, #9] @ zero_extendqisi2 10601 strh r2, [r4, #24] @ movhi 10602 ldr r2, [sp, #16] 10603 strh r3, [r4, #20] @ movhi 10604 smulbb r5, r5, r3 10605 strh r7, [r4, #26] @ movhi 10606 ldrb r2, [r2] @ zero_extendqisi2 10607 uxth r5, r5 10608 cmp r2, #1 10609 strh r5, [r4, #22] @ movhi 10610 bne .L1458 10611 lsls r3, r3, #1 10612 lsrs r2, r6, #1 10613 lsls r5, r5, #1 10614 strh r3, [r4, #20] @ movhi 10615 movs r3, #8 10616 strh r2, [r4, #14] @ movhi 10617 strh r5, [r4, #22] @ movhi 10618 strh r3, [r4, #26] @ movhi 10619.L1458: 10620 ldrb r0, [r8, #20] @ zero_extendqisi2 10621 bl FlashBchSel 10622 movs r0, #0 10623.L1414: 10624 add sp, sp, #32 10625 @ sp needed 10626 pop {r4, r5, r6, r7, r8, r10, fp, pc} 10627.L1426: 10628 cmp r3, #220 10629 bne .L1427 10630 mov r1, #4096 10631 b .L1503 10632.L1440: 10633 add r2, r3, #28 10634 adds r3, r3, #20 10635 cmp r0, #7 10636 it eq 10637 moveq r3, r2 10638 b .L1441 10639.L1439: 10640 sub r3, r0, #17 10641 cmp r3, #2 10642 bhi .L1445 10643 ldr r3, .L1510+32 10644 cmp r0, #19 10645 str r3, [r5] 10646 ite ne 10647 movne r3, #7 10648 moveq r3, #15 10649 strb r3, [r1] 10650 b .L1438 10651.L1445: 10652 cmp r0, #33 10653 beq .L1447 10654 sub r3, r0, #65 10655 cmp r3, #1 10656 bhi .L1448 10657.L1447: 10658 ldr r3, .L1510+36 10659 str r3, [ip] 10660 movs r3, #4 10661 strb r3, [r2] 10662 movs r3, #7 10663 strb r3, [lr] 10664 b .L1438 10665.L1448: 10666 sub r3, r0, #67 10667 uxtb r3, r3 10668 cmp r3, #1 10669 bls .L1449 10670 sub r1, r0, #34 10671 cmp r1, #1 10672 bhi .L1450 10673.L1449: 10674 ldr r1, .L1510+36 10675 cmp r0, #35 10676 str r1, [ip] 10677 ldr r1, .L1510+40 10678 beq .L1451 10679 cmp r0, #68 10680 beq .L1451 10681 movs r0, #7 10682.L1504: 10683 cmp r3, #1 10684 strb r0, [r1] 10685 ite ls 10686 movls r3, #4 10687 movhi r3, #5 10688 strb r3, [r2] 10689 b .L1438 10690.L1451: 10691 movs r0, #17 10692 b .L1504 10693.L1450: 10694 cmp r0, #49 10695 itt eq 10696 ldreq r3, .L1510+44 10697 streq r3, [r5] 10698 b .L1438 10699.L1460: 10700 mvn r0, #1 10701 b .L1414 10702.L1511: 10703 .align 2 10704.L1510: 10705 .word HynixReadRetrial 10706 .word .LANCHOR36 10707 .word .LANCHOR29 10708 .word 1446522928 10709 .word .LANCHOR148 10710 .word .LANCHOR141 10711 .word .LANCHOR15 10712 .word .LANCHOR25 10713 .word MicronReadRetrial 10714 .word ToshibaReadRetrial 10715 .word .LANCHOR151 10716 .word SamsungReadRetrial 10717 .size FlashInit, .-FlashInit 10718 .section .text.FlashReadSlc2KPages,"ax",%progbits 10719 .align 1 10720 .global FlashReadSlc2KPages 10721 .syntax unified 10722 .thumb 10723 .thumb_func 10724 .fpu softvfp 10725 .type FlashReadSlc2KPages, %function 10726FlashReadSlc2KPages: 10727 @ args = 0, pretend = 0, frame = 8 10728 @ frame_needed = 0, uses_anonymous_args = 0 10729 push {r0, r1, r2, r3, r4, r5, r6, r7, r8, r10, fp, lr} 10730 mov r8, r1 10731 ldr r3, .L1541 10732 mov fp, r2 10733 mov r4, r0 10734 movs r7, #0 10735 ldrb r10, [r3, #9] @ zero_extendqisi2 10736.L1513: 10737 cmp r7, r8 10738 bne .L1526 10739 movs r0, #0 10740 add sp, sp, #16 10741 @ sp needed 10742 pop {r4, r5, r6, r7, r8, r10, fp, pc} 10743.L1526: 10744 sub r3, r8, r7 10745 add r2, sp, #12 10746 uxtb r3, r3 10747 mov r1, fp 10748 mov r0, r4 10749 str r3, [sp] 10750 add r3, sp, #8 10751 bl LogAddr2PhyAddr 10752 ldr r2, .L1541+4 10753 ldr r3, [sp, #8] 10754 ldrb r2, [r2] @ zero_extendqisi2 10755 cmp r2, r3 10756 bhi .L1514 10757 mov r3, #-1 10758 str r3, [r4] 10759.L1515: 10760 adds r7, r7, #1 10761 adds r4, r4, #36 10762 b .L1513 10763.L1514: 10764 ldr r2, .L1541+8 10765 ldrb r5, [r2, r3] @ zero_extendqisi2 10766 mov r0, r5 10767 bl NandcWaitFlashReady 10768 mov r0, r5 10769 bl NandcFlashCs 10770 ldr r1, [sp, #12] 10771 mov r0, r5 10772 bl FlashReadCmd 10773 mov r0, r5 10774 bl NandcWaitFlashReady 10775 ldr r3, [r4, #12] 10776 mov r2, r10 10777 movs r1, #0 10778 mov r0, r5 10779 str r3, [sp] 10780 ldr r3, [r4, #8] 10781 bl NandcXferData 10782 ldr r3, .L1541+12 10783 mov r6, r0 10784 ldr r1, [sp, #12] 10785 mov r0, r5 10786 ldr r3, [r3] 10787 add r1, r1, r3 10788 bl FlashReadCmd 10789 ldr r3, [r4, #8] 10790 cbz r3, .L1516 10791 add r3, r3, #2048 10792.L1516: 10793 ldr r2, [r4, #12] 10794 cbz r2, .L1517 10795 adds r2, r2, #8 10796.L1517: 10797 str r2, [sp] 10798 movs r1, #0 10799 mov r2, r10 10800 mov r0, r5 10801 bl NandcXferData 10802 mov r1, r0 10803 mov r0, r5 10804 bl NandcFlashDeCs 10805 ldr r3, .L1541+16 10806 cmp r6, r1 10807 it cc 10808 movcc r6, r1 10809 ldrb r2, [r3] @ zero_extendqisi2 10810 add r3, r2, r2, lsl #1 10811 cmp r6, r3, asr #2 10812 bls .L1518 10813 adds r5, r6, #1 10814 it ne 10815 movne r6, #256 10816 str r6, [r4] 10817.L1521: 10818 ldr r3, [r4, #12] 10819 cbz r3, .L1522 10820 ldr r1, [r3, #12] 10821 adds r1, r1, #1 10822 bne .L1522 10823 ldr r1, [r3, #8] 10824 adds r0, r1, #1 10825 bne .L1522 10826 ldr r3, [r3] 10827 adds r3, r3, #1 10828 it ne 10829 strne r1, [r4] 10830.L1522: 10831 ldr r3, [r4] 10832 adds r1, r3, #1 10833 bne .L1515 10834 ldr r1, [r4, #4] 10835 ldr r0, .L1541+20 10836 bl printf 10837 ldr r1, [r4, #8] 10838 cbz r1, .L1524 10839 movs r3, #8 10840 movs r2, #4 10841 ldr r0, .L1541+24 10842 bl rknand_print_hex 10843.L1524: 10844 ldr r1, [r4, #12] 10845 cmp r1, #0 10846 beq .L1515 10847 movs r3, #4 10848 ldr r0, .L1541+28 10849 mov r2, r3 10850 bl rknand_print_hex 10851 b .L1515 10852.L1518: 10853 movs r3, #0 10854 str r3, [r4] 10855 b .L1521 10856.L1542: 10857 .align 2 10858.L1541: 10859 .word .LANCHOR31 10860 .word .LANCHOR25 10861 .word .LANCHOR26 10862 .word .LANCHOR3 10863 .word .LANCHOR33 10864 .word .LC25 10865 .word .LC26 10866 .word .LC27 10867 .size FlashReadSlc2KPages, .-FlashReadSlc2KPages 10868 .section .text.FlashReadPages,"ax",%progbits 10869 .align 1 10870 .global FlashReadPages 10871 .syntax unified 10872 .thumb 10873 .thumb_func 10874 .fpu softvfp 10875 .type FlashReadPages, %function 10876FlashReadPages: 10877 @ args = 0, pretend = 0, frame = 32 10878 @ frame_needed = 0, uses_anonymous_args = 0 10879 ldr r3, .L1634 10880 push {r4, r5, r6, r7, r8, r10, fp, lr} 10881 sub sp, sp, #40 10882 mov r10, r0 10883 str r1, [sp, #24] 10884 ldrb r3, [r3] @ zero_extendqisi2 10885 str r2, [sp, #12] 10886 cbnz r3, .L1544 10887 ldr r2, .L1634+4 10888 mov r8, r3 10889 str r3, [sp, #8] 10890 ldrb r2, [r2, #9] @ zero_extendqisi2 10891 str r2, [sp, #20] 10892 ldr r2, .L1634+8 10893 ldrb r2, [r2] @ zero_extendqisi2 10894 str r2, [sp, #28] 10895.L1545: 10896 ldr r3, [sp, #8] 10897 ldr r2, [sp, #24] 10898 cmp r3, r2 10899 bcc .L1583 10900 movs r0, #0 10901 b .L1543 10902.L1544: 10903 bl FlashReadSlc2KPages 10904.L1543: 10905 add sp, sp, #40 10906 @ sp needed 10907 pop {r4, r5, r6, r7, r8, r10, fp, pc} 10908.L1583: 10909 ldr r2, [sp, #8] 10910 movs r3, #36 10911 ldr r1, [sp, #12] 10912 mul fp, r3, r2 10913 add r7, r10, fp 10914 ldr r3, [r7, #4] 10915 mov r0, r7 10916 str r3, [sp, #16] 10917 ldr r3, [sp, #24] 10918 subs r3, r3, r2 10919 add r2, sp, #36 10920 uxtb r3, r3 10921 str r3, [sp] 10922 add r3, sp, #32 10923 bl LogAddr2PhyAddr 10924 ldr r2, .L1634+12 10925 mov r5, r0 10926 ldr r3, [sp, #32] 10927 ldrb r2, [r2] @ zero_extendqisi2 10928 cmp r2, r3 10929 bhi .L1547 10930 mov r3, #-1 10931 str r3, [r10, fp] 10932.L1548: 10933 ldr r3, [sp, #8] 10934 adds r3, r3, #1 10935 str r3, [sp, #8] 10936 b .L1545 10937.L1547: 10938 ldr r2, .L1634+16 10939 ldrb r4, [r2, r3] @ zero_extendqisi2 10940 ldr r3, .L1634+20 10941 mov r0, r4 10942 ldrb r3, [r3] @ zero_extendqisi2 10943 cmp r3, #0 10944 it eq 10945 moveq r5, #0 10946 bl NandcWaitFlashReady 10947 ldr r3, .L1634+24 10948 ldr r3, [r3] 10949 ldrb r1, [r3, #19] @ zero_extendqisi2 10950 subs r3, r1, #1 10951 cmp r3, #6 10952 bhi .L1550 10953 ldr r3, .L1634+28 10954 cmp r1, #7 10955 add r2, r3, r4 10956 ldrb r3, [r2, #12] @ zero_extendqisi2 10957 it eq 10958 ldrbeq r3, [r2, #20] @ zero_extendqisi2 10959 ldr r2, .L1634+32 10960 ldrb r2, [r2, r4] @ zero_extendqisi2 10961 cmp r2, r3 10962 beq .L1550 10963 ldr r2, .L1634+36 10964 mov r0, r4 10965 ldrb r1, [r2, #-3] @ zero_extendqisi2 10966 bl HynixSetRRPara 10967.L1550: 10968 mov r0, r4 10969 bl NandcFlashCs 10970 ldr r3, [sp, #12] 10971 cmp r3, #1 10972 beq .L1552 10973 ldr r3, [sp, #16] 10974 cmp r3, #0 10975 bge .L1553 10976.L1552: 10977 ldr r3, .L1634+40 10978 ldrb r3, [r3] @ zero_extendqisi2 10979 cbz r3, .L1553 10980 mov r0, r4 10981 bl flash_enter_slc_mode 10982.L1560: 10983 ldr r1, [sp, #36] 10984 adds r6, r1, #1 10985 bne .L1555 10986 cmp r4, #255 10987 beq .L1585 10988.L1555: 10989 cbz r5, .L1557 10990 ldr r3, .L1634+44 10991 mov r0, r4 10992 ldr r2, [r3] 10993 add r2, r2, r1 10994 bl FlashReadDpCmd 10995.L1558: 10996 mov r0, r4 10997 bl NandcWaitFlashReady 10998 cbz r5, .L1556 10999 ldr r1, [sp, #36] 11000 mov r0, r4 11001 bl FlashReadDpDataOutCmd 11002.L1556: 11003 ldr r3, [r7, #12] 11004 movs r1, #0 11005 ldr r2, [sp, #20] 11006 mov r0, r4 11007 str r3, [sp] 11008 ldr r3, [r7, #8] 11009 bl NandcXferData 11010 ldr r3, .L1634+8 11011 mov r6, r0 11012 ldrb r3, [r3] @ zero_extendqisi2 11013 cbz r3, .L1559 11014 adds r0, r0, #1 11015 bne .L1559 11016 ldr r3, .L1634+8 11017 movs r5, #0 11018 strb r5, [r3] 11019 b .L1560 11020.L1553: 11021 mov r0, r4 11022 bl flash_exit_slc_mode 11023 b .L1560 11024.L1557: 11025 mov r0, r4 11026 bl FlashReadCmd 11027 b .L1558 11028.L1585: 11029 movs r5, #0 11030 b .L1556 11031.L1559: 11032 cbz r5, .L1561 11033 ldr r3, .L1634+44 11034 mov r0, r4 11035 ldr r1, [sp, #36] 11036 ldr r3, [r3] 11037 add r1, r1, r3 11038 bl FlashReadDpDataOutCmd 11039 add r3, fp, #36 11040 movs r1, #0 11041 add r3, r3, r10 11042 mov r0, r4 11043 ldr r2, [r3, #12] 11044 str r2, [sp] 11045 ldr r2, [sp, #20] 11046 ldr r3, [r3, #8] 11047 bl NandcXferData 11048 cmp r0, #-1 11049 mov r8, r0 11050 it eq 11051 moveq r5, #0 11052.L1561: 11053 mov r0, r4 11054 bl NandcFlashDeCs 11055 ldr r3, .L1634+8 11056 adds r1, r6, #1 11057 ldrb r2, [sp, #28] @ zero_extendqisi2 11058 strb r2, [r3] 11059 bne .L1562 11060 ldr r3, .L1634+48 11061 ldrb r3, [r3] @ zero_extendqisi2 11062 cbnz r3, .L1563 11063.L1567: 11064 ldr r3, .L1634+52 11065 ldr r5, [r3] 11066 cmp r5, #0 11067 bne .L1564 11068 ldr r3, [r7, #12] 11069 mov r0, r4 11070 ldr r2, [r7, #8] 11071 ldr r1, [sp, #36] 11072 bl FlashReadRawPage 11073 b .L1633 11074.L1563: 11075 ldr r3, .L1634+56 11076 mov r0, r4 11077 ldr r1, [sp, #36] 11078 ldr r3, [r3] 11079 ldr r5, [r3, #304] 11080 movs r3, #1 11081 str r3, [sp] 11082 ldr r2, [r7, #8] 11083 ldr r3, [r7, #12] 11084 bl FlashDdrTunningRead 11085 adds r2, r0, #1 11086 mov r6, r0 11087 beq .L1566 11088 ldr r3, .L1634+60 11089 ldrb r3, [r3] @ zero_extendqisi2 11090 cmp r0, r3, lsr #1 11091 bls .L1586 11092.L1566: 11093 ubfx r0, r5, #8, #8 11094 bl NandcSetDdrPara 11095 adds r3, r6, #1 11096 beq .L1567 11097.L1586: 11098 movs r5, #0 11099.L1562: 11100 ldr r3, .L1634+60 11101 ldrb r3, [r3] @ zero_extendqisi2 11102 add r3, r3, r3, lsl #1 11103 cmp r6, r3, asr #2 11104 bls .L1575 11105 ldr r3, .L1634+52 11106 ldr r3, [r3] 11107 cmp r3, #0 11108 bne .L1575 11109 mov r6, #256 11110 b .L1570 11111.L1635: 11112 .align 2 11113.L1634: 11114 .word .LANCHOR1 11115 .word .LANCHOR31 11116 .word .LANCHOR5 11117 .word .LANCHOR25 11118 .word .LANCHOR26 11119 .word .LANCHOR201 11120 .word .LANCHOR18 11121 .word .LANCHOR20 11122 .word .LANCHOR21 11123 .word .LANCHOR20+4 11124 .word .LANCHOR8 11125 .word .LANCHOR3 11126 .word .LANCHOR30 11127 .word .LANCHOR145 11128 .word .LANCHOR19 11129 .word .LANCHOR33 11130.L1564: 11131 ldr r3, [r7, #12] 11132 mov r0, r4 11133 ldr r2, [r7, #8] 11134 ldr r1, [sp, #36] 11135 blx r5 11136 adds r5, r0, #1 11137 mov r6, r0 11138 bne .L1568 11139 ldr r3, .L1636 11140 ldr r3, [r3] 11141 ldrb r3, [r3, #19] @ zero_extendqisi2 11142 subs r3, r3, #1 11143 cmp r3, #6 11144 bhi .L1569 11145 ldr r2, .L1636+4 11146 movs r3, #0 11147 mov r0, r4 11148 ldrb r1, [r2, #-3] @ zero_extendqisi2 11149 bl HynixSetRRPara 11150.L1569: 11151 ldr r3, [r7, #12] 11152 mov r0, r4 11153 ldr r2, [r7, #8] 11154 ldr r1, [sp, #36] 11155 bl FlashReadRawPage 11156 ldr r2, .L1636+8 11157 mov r6, r0 11158 mov r3, r0 11159 ldr r1, [r7, #4] 11160 ldr r0, .L1636+12 11161 ldrb r2, [r2] @ zero_extendqisi2 11162 bl printf 11163 adds r0, r6, #1 11164 bne .L1568 11165 ldr r3, .L1636+16 11166 ldrb r5, [r3] @ zero_extendqisi2 11167 cbz r5, .L1570 11168 ldr r3, [sp, #12] 11169 mov r0, r4 11170 cmp r3, #1 11171 beq .L1571 11172 ldr r3, [sp, #16] 11173 cmp r3, #0 11174 bge .L1572 11175.L1571: 11176 bl flash_enter_slc_mode 11177.L1573: 11178 ldr r3, .L1636+20 11179 mov r0, r4 11180 ldr r2, [r7, #8] 11181 ldr r1, [sp, #36] 11182 ldr r5, [r3] 11183 ldr r3, [r7, #12] 11184 blx r5 11185.L1633: 11186 adds r1, r0, #1 11187 mov r6, r0 11188 mov r5, #0 11189 bne .L1575 11190.L1570: 11191 str r6, [r10, fp] 11192.L1576: 11193 ldr r3, [r10, fp] 11194 adds r2, r3, #1 11195 bne .L1578 11196 ldr r2, .L1636+8 11197 ldr r1, [r7, #4] 11198 ldr r0, .L1636+24 11199 ldrb r2, [r2] @ zero_extendqisi2 11200 bl printf 11201 ldr r1, [r7, #12] 11202 cbz r1, .L1578 11203 movs r3, #4 11204 ldr r0, .L1636+28 11205 mov r2, r3 11206 bl rknand_print_hex 11207.L1578: 11208 cbz r5, .L1580 11209 ldr r3, .L1636+8 11210 ldrb r3, [r3] @ zero_extendqisi2 11211 add r3, r3, r3, lsl #1 11212 cmp r8, r3, asr #2 11213 bls .L1581 11214 ldr r3, .L1636+20 11215 ldr r3, [r3] 11216 cmp r3, #0 11217 it eq 11218 moveq r8, #256 11219.L1581: 11220 cmp r8, #-1 11221 add r3, fp, #36 11222 str r8, [r10, r3] 11223 beq .L1580 11224 cmp r8, #256 11225 itt ne 11226 movne r2, #0 11227 strne r2, [r10, r3] 11228.L1580: 11229 ldr r3, [sp, #8] 11230 add r3, r3, r5 11231 str r3, [sp, #8] 11232 ldr r3, [sp, #12] 11233 cmp r3, #1 11234 beq .L1582 11235 ldr r3, [sp, #16] 11236 cmp r3, #0 11237 bge .L1548 11238.L1582: 11239 ldr r3, .L1636+16 11240 ldrb r3, [r3] @ zero_extendqisi2 11241 cmp r3, #0 11242 beq .L1548 11243 mov r0, r4 11244 bl flash_exit_slc_mode 11245 b .L1548 11246.L1572: 11247 bl flash_exit_slc_mode 11248 b .L1573 11249.L1568: 11250 movs r5, #0 11251.L1575: 11252 cmp r6, #256 11253 beq .L1570 11254 movs r3, #0 11255 str r3, [r10, fp] 11256 b .L1576 11257.L1637: 11258 .align 2 11259.L1636: 11260 .word .LANCHOR18 11261 .word .LANCHOR20+4 11262 .word .LANCHOR33 11263 .word .LC28 11264 .word .LANCHOR8 11265 .word .LANCHOR145 11266 .word .LC25 11267 .word .LC27 11268 .size FlashReadPages, .-FlashReadPages 11269 .section .text.FlashProgSlc2KPages,"ax",%progbits 11270 .align 1 11271 .global FlashProgSlc2KPages 11272 .syntax unified 11273 .thumb 11274 .thumb_func 11275 .fpu softvfp 11276 .type FlashProgSlc2KPages, %function 11277FlashProgSlc2KPages: 11278 @ args = 0, pretend = 0, frame = 56 11279 @ frame_needed = 0, uses_anonymous_args = 0 11280 push {r4, r5, r6, r7, r8, r10, fp, lr} 11281 sub sp, sp, #64 11282 str r3, [sp, #12] 11283 mov r8, r1 11284 mov r4, r0 11285 mov r6, r0 11286 ldr r3, .L1667 11287 movs r7, #0 11288 ldr fp, .L1667+28 11289 str r2, [sp, #8] 11290 ldrb r10, [r3, #9] @ zero_extendqisi2 11291.L1639: 11292 cmp r7, r8 11293 bne .L1645 11294 ldr r3, [sp, #12] 11295 cmp r3, #0 11296 bne .L1656 11297.L1666: 11298 movs r0, #0 11299 add sp, sp, #64 11300 @ sp needed 11301 pop {r4, r5, r6, r7, r8, r10, fp, pc} 11302.L1645: 11303 sub r3, r8, r7 11304 add r2, sp, #20 11305 uxtb r3, r3 11306 ldr r1, [sp, #8] 11307 mov r0, r6 11308 str r3, [sp] 11309 add r3, sp, #24 11310 bl LogAddr2PhyAddr 11311 ldr r2, .L1667+4 11312 ldr r3, [sp, #24] 11313 ldrb r2, [r2] @ zero_extendqisi2 11314 cmp r2, r3 11315 bhi .L1640 11316 mov r3, #-1 11317 str r3, [r6] 11318.L1641: 11319 adds r7, r7, #1 11320 adds r6, r6, #36 11321 b .L1639 11322.L1640: 11323 ldr r2, .L1667+8 11324 ldrb r5, [r2, r3] @ zero_extendqisi2 11325 mov r0, r5 11326 bl NandcWaitFlashReady 11327 mov r0, r5 11328 bl NandcFlashCs 11329 ldr r1, [sp, #20] 11330 mov r0, r5 11331 bl FlashProgFirstCmd 11332 ldr r3, [r6, #12] 11333 mov r2, r10 11334 movs r1, #1 11335 mov r0, r5 11336 str r3, [sp] 11337 ldr r3, [r6, #8] 11338 bl NandcXferData 11339 ldr r1, [sp, #20] 11340 mov r0, r5 11341 bl FlashProgSecondCmd 11342 mov r0, r5 11343 bl NandcWaitFlashReady 11344 ldr r1, [sp, #20] 11345 mov r0, r5 11346 bl FlashReadStatus 11347 sbfx r0, r0, #0, #1 11348 ldr r1, [sp, #20] 11349 str r0, [r6] 11350 mov r0, r5 11351 ldr r3, [fp] 11352 add r1, r1, r3 11353 bl FlashProgFirstCmd 11354 ldr r3, [r6, #8] 11355 cbz r3, .L1642 11356 add r3, r3, #2048 11357.L1642: 11358 ldr r2, [r6, #12] 11359 cbz r2, .L1643 11360 adds r2, r2, #8 11361.L1643: 11362 str r2, [sp] 11363 movs r1, #1 11364 mov r2, r10 11365 mov r0, r5 11366 bl NandcXferData 11367 ldr r3, [fp] 11368 mov r0, r5 11369 ldr r1, [sp, #20] 11370 add r1, r1, r3 11371 bl FlashProgSecondCmd 11372 mov r0, r5 11373 bl NandcWaitFlashReady 11374 ldr r1, [sp, #20] 11375 mov r0, r5 11376 bl FlashReadStatus 11377 lsls r2, r0, #31 11378 mov r0, r5 11379 itt mi 11380 movmi r3, #-1 11381 strmi r3, [r6] 11382 bl NandcFlashDeCs 11383 b .L1641 11384.L1652: 11385 ldr r3, [r4] 11386 adds r3, r3, #1 11387 bne .L1647 11388 ldr r1, [r4, #4] 11389 ldr r0, .L1667+12 11390 bl printf 11391.L1648: 11392 add r8, r8, #1 11393 adds r4, r4, #36 11394.L1646: 11395 cmp r7, r8 11396 bne .L1652 11397 b .L1666 11398.L1647: 11399 sub r3, r7, r8 11400 ldr fp, .L1667+32 11401 uxtb r3, r3 11402 add r2, sp, #20 11403 ldr r1, [sp, #8] 11404 mov r0, r4 11405 str r3, [sp] 11406 add r3, sp, #24 11407 bl LogAddr2PhyAddr 11408 ldr lr, [r10] 11409 movs r3, #0 11410 ldr ip, [fp] 11411 mov r6, r4 11412 add r5, sp, #28 11413 str r3, [lr] 11414 str r3, [ip] 11415 ldmia r6!, {r0, r1, r2, r3} 11416 stmia r5!, {r0, r1, r2, r3} 11417 str lr, [sp, #36] 11418 ldmia r6!, {r0, r1, r2, r3} 11419 str ip, [sp, #40] 11420 stmia r5!, {r0, r1, r2, r3} 11421 movs r1, #1 11422 ldr r3, [r6] 11423 add r0, sp, #28 11424 ldr r2, [sp, #8] 11425 str r3, [r5] 11426 bl FlashReadPages 11427 ldr r5, [sp, #28] 11428 adds r3, r5, #1 11429 bne .L1649 11430 ldr r1, [r4, #4] 11431 ldr r0, .L1667+16 11432 bl printf 11433 str r5, [r4] 11434.L1649: 11435 ldr r3, [r4, #12] 11436 cbz r3, .L1650 11437 ldr r2, [r3] 11438 ldr r3, [fp] 11439 ldr r3, [r3] 11440 cmp r2, r3 11441 beq .L1650 11442 ldr r1, [r4, #4] 11443 ldr r0, .L1667+20 11444 bl printf 11445 mov r3, #-1 11446 str r3, [r4] 11447.L1650: 11448 ldr r3, [r4, #8] 11449 cmp r3, #0 11450 beq .L1648 11451 ldr r2, [r3] 11452 ldr r3, [r10] 11453 ldr r3, [r3] 11454 cmp r2, r3 11455 beq .L1648 11456 ldr r1, [r4, #4] 11457 ldr r0, .L1667+24 11458 bl printf 11459 mov r3, #-1 11460 str r3, [r4] 11461 b .L1648 11462.L1656: 11463 mov r8, #0 11464 ldr r10, .L1667+36 11465 b .L1646 11466.L1668: 11467 .align 2 11468.L1667: 11469 .word .LANCHOR31 11470 .word .LANCHOR25 11471 .word .LANCHOR26 11472 .word .LC29 11473 .word .LC30 11474 .word .LC31 11475 .word .LC32 11476 .word .LANCHOR3 11477 .word .LANCHOR199 11478 .word .LANCHOR198 11479 .size FlashProgSlc2KPages, .-FlashProgSlc2KPages 11480 .section .text.FlashProgPages,"ax",%progbits 11481 .align 1 11482 .global FlashProgPages 11483 .syntax unified 11484 .thumb 11485 .thumb_func 11486 .fpu softvfp 11487 .type FlashProgPages, %function 11488FlashProgPages: 11489 @ args = 0, pretend = 0, frame = 64 11490 @ frame_needed = 0, uses_anonymous_args = 0 11491 push {r4, r5, r6, r7, r8, r10, fp, lr} 11492 sub sp, sp, #72 11493 ldr r5, .L1721 11494 mov r4, r0 11495 mov r8, r2 11496 str r1, [sp, #8] 11497 ldr r5, [r5] 11498 str r3, [sp, #20] 11499 ldrb r5, [r5, #19] @ zero_extendqisi2 11500 str r5, [sp, #16] 11501 ldr r5, .L1721+4 11502 ldrb r7, [r5] @ zero_extendqisi2 11503 cbnz r7, .L1670 11504 ldr r3, .L1721+8 11505 ldrb r3, [r3, #9] @ zero_extendqisi2 11506 str r3, [sp, #12] 11507.L1671: 11508 ldr r3, [sp, #8] 11509 cmp r7, r3 11510 bcc .L1684 11511 ldr r6, .L1721+12 11512 movs r5, #0 11513 ldr r7, .L1721+16 11514.L1685: 11515 ldrb r3, [r6] @ zero_extendqisi2 11516 cmp r5, r3 11517 bcc .L1687 11518 ldr r3, [sp, #20] 11519 cmp r3, #0 11520 bne .L1688 11521.L1696: 11522 movs r0, #0 11523 b .L1669 11524.L1670: 11525 bl FlashProgSlc2KPages 11526.L1669: 11527 add sp, sp, #72 11528 @ sp needed 11529 pop {r4, r5, r6, r7, r8, r10, fp, pc} 11530.L1684: 11531 ldr r3, [sp, #8] 11532 movs r6, #36 11533 muls r6, r7, r6 11534 add r2, sp, #28 11535 mov r1, r8 11536 subs r3, r3, r7 11537 uxtb r3, r3 11538 add fp, r4, r6 11539 str r3, [sp] 11540 mov r0, fp 11541 add r3, sp, #32 11542 bl LogAddr2PhyAddr 11543 ldr r3, .L1721+12 11544 mov r10, r0 11545 ldr r0, [sp, #32] 11546 ldrb r3, [r3] @ zero_extendqisi2 11547 cmp r3, r0 11548 bhi .L1673 11549 mov r3, #-1 11550 str r3, [r4, r6] 11551.L1674: 11552 adds r7, r7, #1 11553 b .L1671 11554.L1673: 11555 ldr r3, .L1721+20 11556 ldrb r3, [r3] @ zero_extendqisi2 11557 cmp r3, #0 11558 ldr r3, .L1721+24 11559 it eq 11560 moveq r10, #0 11561 add r3, r3, r0, lsl #4 11562 ldr r3, [r3, #8] 11563 cbz r3, .L1676 11564 uxtb r0, r0 11565 bl FlashWaitCmdDone 11566.L1676: 11567 ldr r3, [sp, #32] 11568 movs r1, #0 11569 ldr r2, .L1721+24 11570 add r2, r2, r3, lsl #4 11571 str r1, [r2, #12] 11572 ldr r1, [sp, #28] 11573 str fp, [r2, #8] 11574 str r1, [r2, #4] 11575 cmp r10, #0 11576 beq .L1677 11577 add r1, r6, #36 11578 add r1, r1, r4 11579 str r1, [r2, #12] 11580.L1677: 11581 ldr r2, .L1721+28 11582 ldrb r5, [r2, r3] @ zero_extendqisi2 11583 lsls r3, r3, #4 11584 ldr r2, .L1721+24 11585 mov r0, r5 11586 strb r5, [r2, r3] 11587 ldr r3, .L1721+12 11588 ldrb r3, [r3] @ zero_extendqisi2 11589 cmp r3, #1 11590 bne .L1678 11591 bl NandcWaitFlashReady 11592.L1679: 11593 ldr r3, [sp, #16] 11594 subs r3, r3, #1 11595 cmp r3, #6 11596 bhi .L1680 11597 ldr r3, .L1721+32 11598 ldrb r3, [r3, r5] @ zero_extendqisi2 11599 cbz r3, .L1680 11600 ldr r1, .L1721+36 11601 movs r3, #0 11602 mov r0, r5 11603 adds r2, r1, #4 11604 ldrb r1, [r1, #1] @ zero_extendqisi2 11605 bl HynixSetRRPara 11606.L1680: 11607 mov r0, r5 11608 bl NandcFlashCs 11609 cmp r8, #1 11610 mov r0, r5 11611 bne .L1681 11612 ldr r3, .L1721+16 11613 ldrb r3, [r3] @ zero_extendqisi2 11614 cmp r3, #0 11615 beq .L1681 11616 bl flash_enter_slc_mode 11617.L1682: 11618 ldr r1, [sp, #28] 11619 mov r0, r5 11620 bl FlashProgFirstCmd 11621 ldr r3, [fp, #12] 11622 movs r1, #1 11623 ldr r2, [sp, #12] 11624 mov r0, r5 11625 str r3, [sp] 11626 ldr r3, [fp, #8] 11627 bl NandcXferData 11628 cmp r10, #0 11629 beq .L1683 11630 ldr r1, [sp, #28] 11631 mov r0, r5 11632 bl FlashProgDpFirstCmd 11633 ldr r3, .L1721+40 11634 mov r0, r5 11635 ldr r2, [sp, #32] 11636 adds r6, r6, #36 11637 ldr r1, [sp, #28] 11638 add r6, r6, r4 11639 ldr r2, [r3, r2, lsl #2] 11640 adds r2, r2, #0 11641 it ne 11642 movne r2, #1 11643 bl FlashWaitReadyEN 11644 ldr r3, .L1721+44 11645 mov r0, r5 11646 ldr r1, [sp, #28] 11647 ldr r3, [r3] 11648 add r1, r1, r3 11649 bl FlashProgDpSecondCmd 11650 ldr r3, [r6, #12] 11651 movs r1, #1 11652 ldr r2, [sp, #12] 11653 mov r0, r5 11654 str r3, [sp] 11655 ldr r3, [r6, #8] 11656 bl NandcXferData 11657.L1683: 11658 ldr r1, [sp, #28] 11659 mov r0, r5 11660 bl FlashProgSecondCmd 11661 mov r0, r5 11662 add r7, r7, r10 11663 bl NandcFlashDeCs 11664 b .L1674 11665.L1678: 11666 bl NandcFlashCs 11667 ldr r2, [sp, #32] 11668 mov r0, r5 11669 ldr r3, .L1721+40 11670 ldr r1, [sp, #28] 11671 ldr r2, [r3, r2, lsl #2] 11672 adds r2, r2, #0 11673 it ne 11674 movne r2, #1 11675 bl FlashWaitReadyEN 11676 mov r0, r5 11677 bl NandcFlashDeCs 11678 b .L1679 11679.L1681: 11680 bl flash_exit_slc_mode 11681 b .L1682 11682.L1687: 11683 uxtb r0, r5 11684 bl FlashWaitCmdDone 11685 cmp r8, #1 11686 bne .L1686 11687 ldrb r3, [r7] @ zero_extendqisi2 11688 cbz r3, .L1686 11689 ldr r2, .L1721+24 11690 lsls r3, r5, #4 11691 ldrb r0, [r2, r3] @ zero_extendqisi2 11692 bl flash_exit_slc_mode 11693.L1686: 11694 adds r5, r5, #1 11695 b .L1685 11696.L1688: 11697 ldr r10, .L1721+64 11698 movs r7, #0 11699.L1689: 11700 ldr r3, [sp, #8] 11701 cmp r7, r3 11702 beq .L1696 11703 ldr r3, [r4] 11704 adds r3, r3, #1 11705 bne .L1690 11706 ldr r1, [r4, #4] 11707 ldr r0, .L1721+48 11708 bl printf 11709.L1691: 11710 adds r7, r7, #1 11711 adds r4, r4, #36 11712 b .L1689 11713.L1690: 11714 ldr r3, [sp, #8] 11715 add r2, sp, #28 11716 ldr fp, .L1721+68 11717 mov r1, r8 11718 mov r0, r4 11719 mov r6, r4 11720 subs r3, r3, r7 11721 add r5, sp, #36 11722 uxtb r3, r3 11723 str r3, [sp] 11724 add r3, sp, #32 11725 bl LogAddr2PhyAddr 11726 ldr lr, [r10] 11727 movs r3, #0 11728 ldr ip, [fp] 11729 str r3, [lr] 11730 str r3, [ip] 11731 ldmia r6!, {r0, r1, r2, r3} 11732 stmia r5!, {r0, r1, r2, r3} 11733 str lr, [sp, #44] 11734 ldmia r6!, {r0, r1, r2, r3} 11735 str ip, [sp, #48] 11736 stmia r5!, {r0, r1, r2, r3} 11737 mov r2, r8 11738 ldr r3, [r6] 11739 movs r1, #1 11740 add r0, sp, #36 11741 str r3, [r5] 11742 bl FlashReadPages 11743 ldr r5, [sp, #36] 11744 adds r3, r5, #1 11745 bne .L1692 11746 ldr r1, [r4, #4] 11747 ldr r0, .L1721+52 11748 bl printf 11749 str r5, [r4] 11750.L1692: 11751 ldr r3, [r4, #12] 11752 cbz r3, .L1693 11753 ldr r2, [r3] 11754 ldr r3, [fp] 11755 ldr r3, [r3] 11756 cmp r2, r3 11757 beq .L1693 11758 ldr r1, [r4, #4] 11759 ldr r0, .L1721+56 11760 bl printf 11761 mov r3, #-1 11762 str r3, [r4] 11763.L1693: 11764 ldr r3, [r4, #8] 11765 cmp r3, #0 11766 beq .L1691 11767 ldr r2, [r3] 11768 ldr r3, [r10] 11769 ldr r3, [r3] 11770 cmp r2, r3 11771 beq .L1691 11772 ldr r1, [r4, #4] 11773 ldr r0, .L1721+60 11774 bl printf 11775 mov r3, #-1 11776 str r3, [r4] 11777 b .L1691 11778.L1722: 11779 .align 2 11780.L1721: 11781 .word .LANCHOR18 11782 .word .LANCHOR1 11783 .word .LANCHOR31 11784 .word .LANCHOR25 11785 .word .LANCHOR8 11786 .word .LANCHOR27 11787 .word .LANCHOR23 11788 .word .LANCHOR26 11789 .word .LANCHOR21 11790 .word .LANCHOR20 11791 .word .LANCHOR17 11792 .word .LANCHOR3 11793 .word .LC29 11794 .word .LC30 11795 .word .LC31 11796 .word .LC32 11797 .word .LANCHOR198 11798 .word .LANCHOR199 11799 .size FlashProgPages, .-FlashProgPages 11800 .section .text.FlashTestBlk,"ax",%progbits 11801 .align 1 11802 .global FlashTestBlk 11803 .syntax unified 11804 .thumb 11805 .thumb_func 11806 .fpu softvfp 11807 .type FlashTestBlk, %function 11808FlashTestBlk: 11809 @ args = 0, pretend = 0, frame = 104 11810 @ frame_needed = 0, uses_anonymous_args = 0 11811 ldr r3, .L1726 11812 push {r4, r5, lr} 11813 mov r4, r0 11814 sub sp, sp, #108 11815 ldr r3, [r3] 11816 cmp r0, r3 11817 bcc .L1725 11818 ldr r5, .L1726+4 11819 add r0, sp, #40 11820 movs r2, #32 11821 movs r1, #165 11822 str r0, [sp, #16] 11823 lsls r4, r4, #10 11824 ldr r3, [r5] 11825 str r3, [sp, #12] 11826 bl ftl_memset 11827 movs r2, #8 11828 movs r1, #90 11829 ldr r0, [r5] 11830 bl ftl_memset 11831 movs r2, #1 11832 add r0, sp, #4 11833 mov r1, r2 11834 str r4, [sp, #8] 11835 bl FlashEraseBlocks 11836 movs r3, #1 11837 add r0, sp, #4 11838 mov r2, r3 11839 mov r1, r3 11840 bl FlashProgPages 11841 ldr r4, [sp, #4] 11842 movs r2, #1 11843 movs r1, #0 11844 add r0, sp, #4 11845 adds r4, r4, #0 11846 it ne 11847 movne r4, #1 11848 negs r4, r4 11849 bl FlashEraseBlocks 11850.L1723: 11851 mov r0, r4 11852 add sp, sp, #108 11853 @ sp needed 11854 pop {r4, r5, pc} 11855.L1725: 11856 movs r4, #0 11857 b .L1723 11858.L1727: 11859 .align 2 11860.L1726: 11861 .word .LANCHOR149 11862 .word .LANCHOR153 11863 .size FlashTestBlk, .-FlashTestBlk 11864 .section .text.FtlLowFormatEraseBlock,"ax",%progbits 11865 .align 1 11866 .global FtlLowFormatEraseBlock 11867 .syntax unified 11868 .thumb 11869 .thumb_func 11870 .fpu softvfp 11871 .type FtlLowFormatEraseBlock, %function 11872FtlLowFormatEraseBlock: 11873 @ args = 0, pretend = 0, frame = 40 11874 @ frame_needed = 0, uses_anonymous_args = 0 11875 ldr r3, .L1773 11876 push {r4, r5, r6, r7, r8, r10, fp, lr} 11877 sub sp, sp, #40 11878 str r0, [sp, #8] 11879 ldr r3, [r3] 11880 str r1, [sp, #4] 11881 cmp r3, #0 11882 bne .L1755 11883 ldr r2, .L1773+4 11884 mov r10, r3 11885 mov r5, r3 11886 mov r4, r3 11887 mov r8, #36 11888 ldrb r2, [r2] @ zero_extendqisi2 11889 str r2, [sp, #20] 11890 ldr r2, .L1773+8 11891 ldrb r2, [r2] @ zero_extendqisi2 11892 str r2, [sp, #12] 11893 ldr r2, .L1773+12 11894 str r0, [r2] 11895 ldr r2, .L1773+16 11896 ldrh fp, [r2] 11897 ldr r2, .L1773+20 11898 ldr r7, [r2] 11899 ldr r2, .L1773+24 11900 ldr r2, [r2] 11901 str r2, [sp, #16] 11902 ldr r2, .L1773+28 11903 ldrh r2, [r2] 11904 str r2, [sp, #24] 11905.L1730: 11906 uxth r2, r10 11907 cmp fp, r2 11908 bhi .L1734 11909 cmp r5, #0 11910 beq .L1728 11911 ldr r3, [sp, #12] 11912 mov r0, r7 11913 ldr r10, .L1773+4 11914 mov r8, #0 11915 mov r2, r5 11916 ldr r7, .L1773+20 11917 adds r6, r3, #0 11918 it ne 11919 movne r6, #1 11920 strb r8, [r10] 11921 mov r1, r6 11922 bl FlashEraseBlocks 11923 ldrb r3, [sp, #20] @ zero_extendqisi2 11924 strb r3, [r10] 11925 mov r10, #36 11926.L1736: 11927 uxth r3, r8 11928 cmp r5, r3 11929 bhi .L1738 11930 ldr r3, [sp, #4] 11931 cmp r3, #0 11932 bne .L1739 11933 uxth r6, r6 11934 movs r3, #6 11935 str r3, [sp, #16] 11936 movs r3, #1 11937 str r3, [sp, #12] 11938.L1740: 11939 mov r8, #0 11940.L1749: 11941 ldr r3, .L1773+16 11942 mov fp, #0 11943 mov r5, fp 11944 ldrh r3, [r3] 11945 str r3, [sp, #24] 11946 ldr r3, .L1773+20 11947 ldr r10, [r3] 11948 ldr r3, .L1773+32 11949 ldr r3, [r3] 11950 str r3, [sp, #28] 11951 ldr r3, .L1773+36 11952 ldr r3, [r3] 11953 str r3, [sp, #32] 11954 ldr r3, .L1773+28 11955 ldrh r3, [r3] 11956 str r3, [sp, #36] 11957.L1741: 11958 ldr r3, [sp, #24] 11959 uxth r2, fp 11960 cmp r3, r2 11961 bhi .L1744 11962 cbz r5, .L1728 11963 ldr fp, .L1773+4 11964 movs r3, #1 11965 mov r0, r10 11966 movs r7, #0 11967 mov r2, r6 11968 mov r1, r5 11969 strb r7, [fp] 11970 bl FlashProgPages 11971 ldrb r3, [sp, #20] @ zero_extendqisi2 11972 ldr r10, .L1773+20 11973 strb r3, [fp] 11974 mov fp, #36 11975.L1746: 11976 uxth r3, r7 11977 cmp r5, r3 11978 bhi .L1748 11979 ldr r3, [sp, #16] 11980 add r8, r8, r3 11981 ldr r3, [sp, #12] 11982 uxth r8, r8 11983 cmp r3, r8 11984 bhi .L1749 11985 ldr r8, .L1773+20 11986 movs r7, #0 11987 mov r10, #36 11988.L1750: 11989 uxth r3, r7 11990 cmp r5, r3 11991 bhi .L1752 11992 ldr r3, [sp, #8] 11993 cmp r3, #63 11994 bls .L1753 11995 ldr r3, [sp, #4] 11996 cbz r3, .L1728 11997.L1753: 11998 ldr r3, .L1773+20 11999 mov r2, r5 12000 mov r1, r6 12001 ldr r0, [r3] 12002 bl FlashEraseBlocks 12003.L1728: 12004 mov r0, r4 12005 add sp, sp, #40 12006 @ sp needed 12007 pop {r4, r5, r6, r7, r8, r10, fp, pc} 12008.L1734: 12009 mul r2, r8, r10 12010 movs r3, #0 12011 ldr r1, [sp, #8] 12012 str r3, [r7, r2] 12013 ldr r3, .L1773+40 12014 ldrb r0, [r3, r10] @ zero_extendqisi2 12015 bl V2P_block 12016 ldr r3, [sp, #4] 12017 mov r6, r0 12018 cbz r3, .L1731 12019 bl IsBlkInVendorPart 12020 cbnz r0, .L1732 12021.L1731: 12022 mov r0, r6 12023 bl FtlBbmIsBadBlock 12024 cbnz r0, .L1733 12025 ldr r3, [sp, #24] 12026 mla r1, r8, r5, r7 12027 lsls r6, r6, #10 12028 mul r2, r3, r5 12029 ldr r3, [sp, #16] 12030 adds r5, r5, #1 12031 str r6, [r1, #4] 12032 uxth r5, r5 12033 str r0, [r1, #8] 12034 bic r2, r2, #3 12035 add r2, r2, r3 12036 str r2, [r1, #12] 12037.L1732: 12038 add r10, r10, #1 12039 b .L1730 12040.L1733: 12041 adds r4, r4, #1 12042 uxth r4, r4 12043 b .L1732 12044.L1738: 12045 mul r3, r10, r8 12046 ldr r2, [r7] 12047 adds r1, r2, r3 12048 ldr r3, [r2, r3] 12049 adds r3, r3, #1 12050 bne .L1737 12051 ldr r0, [r1, #4] 12052 adds r4, r4, #1 12053 uxth r4, r4 12054 ubfx r0, r0, #10, #16 12055 bl FtlBbmMapBadBlock 12056.L1737: 12057 add r8, r8, #1 12058 b .L1736 12059.L1739: 12060 ldr r3, .L1773+44 12061 ldrh r3, [r3] 12062 str r3, [sp, #12] 12063 ldr r3, .L1773+8 12064 ldrb r3, [r3] @ zero_extendqisi2 12065 cbnz r3, .L1756 12066 ldr r3, [sp, #12] 12067 movs r6, #1 12068 lsrs r3, r3, #2 12069 str r3, [sp, #16] 12070 b .L1740 12071.L1756: 12072 movs r6, #1 12073 str r6, [sp, #16] 12074 b .L1740 12075.L1744: 12076 movs r3, #36 12077 ldr r1, [sp, #8] 12078 mul r2, r3, fp 12079 movs r3, #0 12080 str r3, [r10, r2] 12081 ldr r3, .L1773+40 12082 ldrb r0, [r3, fp] @ zero_extendqisi2 12083 bl V2P_block 12084 ldr r3, [sp, #4] 12085 mov r7, r0 12086 cbz r3, .L1742 12087 bl IsBlkInVendorPart 12088 cbnz r0, .L1743 12089.L1742: 12090 mov r0, r7 12091 bl FtlBbmIsBadBlock 12092 cbnz r0, .L1743 12093 movs r3, #36 12094 add r7, r8, r7, lsl #10 12095 mla r1, r3, r5, r10 12096 ldr r3, [sp, #28] 12097 str r3, [r1, #8] 12098 ldr r3, [sp, #36] 12099 str r7, [r1, #4] 12100 mul r2, r3, r5 12101 ldr r3, [sp, #32] 12102 adds r5, r5, #1 12103 uxth r5, r5 12104 bic r2, r2, #3 12105 add r2, r2, r3 12106 str r2, [r1, #12] 12107.L1743: 12108 add fp, fp, #1 12109 b .L1741 12110.L1748: 12111 mul r3, fp, r7 12112 ldr r2, [r10] 12113 adds r1, r2, r3 12114 ldr r3, [r2, r3] 12115 cbz r3, .L1747 12116 ldr r0, [r1, #4] 12117 adds r4, r4, #1 12118 uxth r4, r4 12119 ubfx r0, r0, #10, #16 12120 bl FtlBbmMapBadBlock 12121.L1747: 12122 adds r7, r7, #1 12123 b .L1746 12124.L1752: 12125 ldr r3, [sp, #4] 12126 cbz r3, .L1751 12127 mul r3, r10, r7 12128 ldr r2, [r8] 12129 adds r1, r2, r3 12130 ldr r3, [r2, r3] 12131 cbnz r3, .L1751 12132 ldr r0, [r1, #4] 12133 movs r1, #1 12134 ubfx r0, r0, #10, #16 12135 bl FtlFreeSysBlkQueueIn 12136.L1751: 12137 adds r7, r7, #1 12138 b .L1750 12139.L1755: 12140 movs r4, #0 12141 b .L1728 12142.L1774: 12143 .align 2 12144.L1773: 12145 .word .LANCHOR77 12146 .word .LANCHOR27 12147 .word .LANCHOR8 12148 .word .LANCHOR74 12149 .word .LANCHOR38 12150 .word .LANCHOR78 12151 .word .LANCHOR189 12152 .word .LANCHOR59 12153 .word .LANCHOR186 12154 .word .LANCHOR187 12155 .word .LANCHOR47 12156 .word .LANCHOR54 12157 .size FtlLowFormatEraseBlock, .-FtlLowFormatEraseBlock 12158 .section .text.FtlBbmTblFlush,"ax",%progbits 12159 .align 1 12160 .global FtlBbmTblFlush 12161 .syntax unified 12162 .thumb 12163 .thumb_func 12164 .fpu softvfp 12165 .type FtlBbmTblFlush, %function 12166FtlBbmTblFlush: 12167 @ args = 0, pretend = 0, frame = 8 12168 @ frame_needed = 0, uses_anonymous_args = 0 12169 push {r0, r1, r2, r3, r4, r5, r6, r7, r8, r10, fp, lr} 12170 ldr r3, .L1786 12171 ldr r4, [r3] 12172 str r3, [sp, #12] 12173 cmp r4, #0 12174 bne .L1777 12175 ldr r3, .L1786+4 12176 mov r1, r4 12177 ldr r7, .L1786+8 12178 ldr r5, .L1786+12 12179 ldr r3, [r3] 12180 ldr r0, [r7] 12181 mov r8, r7 12182 ldr r6, .L1786+16 12183 str r3, [r5, #12] 12184 ldr r7, .L1786+20 12185 ldr r3, .L1786+24 12186 ldr r10, .L1786+56 12187 str r0, [r5, #8] 12188 ldrh r2, [r3] 12189 bl ftl_memset 12190.L1778: 12191 ldrh r3, [r7] 12192 cmp r4, r3 12193 blt .L1779 12194 ldr r6, [r5, #12] 12195 movs r2, #16 12196 ldr r4, .L1786+28 12197 movs r1, #255 12198 movs r7, #0 12199 mov r0, r6 12200 bl ftl_memset 12201 movw r3, #61649 12202 mov r10, r4 12203 strh r3, [r6] @ movhi 12204 ldr r3, [r4, #8] 12205 str r7, [sp, #8] 12206 str r3, [r6, #4] 12207 ldrh r3, [r4] 12208 strh r3, [r6, #2] @ movhi 12209 ldrh r3, [r4, #4] 12210 strh r3, [r6, #8] @ movhi 12211 ldrh r3, [r4, #6] 12212 strh r3, [r6, #10] @ movhi 12213 ldr r3, .L1786+32 12214 ldr r3, [r3] 12215 strh r3, [r6, #12] @ movhi 12216.L1780: 12217 ldr r3, [r8] 12218 mov fp, #0 12219 ldrh r2, [r4, #2] 12220 ldrh r1, [r4] 12221 str r3, [r5, #8] 12222 ldr r3, .L1786+4 12223 ldrh r0, [r6, #10] 12224 str fp, [r5] 12225 ldr r3, [r3] 12226 str r3, [r5, #12] 12227 orr r3, r2, r1, lsl #10 12228 str r3, [r5, #4] 12229 ldrh r3, [r4, #4] 12230 str r0, [sp] 12231 ldr r0, .L1786+36 12232 bl printf 12233 ldr r3, .L1786+40 12234 ldrh r2, [r4, #2] 12235 ldrh r3, [r3] 12236 subs r3, r3, #1 12237 cmp r2, r3 12238 blt .L1781 12239 ldr r3, [r4, #8] 12240 ldrh r2, [r4] 12241 strh fp, [r4, #2] @ movhi 12242 adds r3, r3, #1 12243 str r3, [r4, #8] 12244 str r3, [r6, #4] 12245 strh r2, [r6, #8] @ movhi 12246 ldrh r3, [r4, #4] 12247 strh r2, [r4, #4] @ movhi 12248 ldr r2, .L1786+44 12249 strh r3, [r4] @ movhi 12250 lsls r3, r3, #10 12251 ldr r0, [r2] 12252 movs r2, #1 12253 str r3, [r5, #4] 12254 mov r1, r2 12255 str r3, [r0, #4] 12256 bl FlashEraseBlocks 12257.L1781: 12258 movs r3, #1 12259 ldr r0, .L1786+12 12260 mov r2, r3 12261 mov r1, r3 12262 bl FlashProgPages 12263 ldrh r3, [r10, #2] 12264 adds r3, r3, #1 12265 strh r3, [r10, #2] @ movhi 12266 ldr r3, [r5] 12267 adds r3, r3, #1 12268 bne .L1782 12269 adds r7, r7, #1 12270 ldr r1, [r5, #4] 12271 uxth r7, r7 12272 ldr r0, .L1786+48 12273 bl printf 12274 cmp r7, #3 12275 bls .L1780 12276 mov r2, r7 12277 ldr r1, [r5, #4] 12278 ldr r0, .L1786+52 12279 bl printf 12280 ldr r2, [sp, #12] 12281 movs r3, #1 12282 str r3, [r2] 12283.L1777: 12284 movs r0, #0 12285 add sp, sp, #16 12286 @ sp needed 12287 pop {r4, r5, r6, r7, r8, r10, fp, pc} 12288.L1779: 12289 ldrh r2, [r10] 12290 ldr r3, [r5, #8] 12291 ldr r1, [r6, #4]! 12292 mul r0, r4, r2 12293 lsls r2, r2, #2 12294 adds r4, r4, #1 12295 add r0, r3, r0, lsl #2 12296 bl ftl_memcpy 12297 b .L1778 12298.L1782: 12299 ldr r3, [sp, #8] 12300 cmp r3, #0 12301 bne .L1777 12302 movs r3, #1 12303 str r3, [sp, #8] 12304 b .L1780 12305.L1787: 12306 .align 2 12307.L1786: 12308 .word .LANCHOR77 12309 .word .LANCHOR188 12310 .word .LANCHOR183 12311 .word .LANCHOR202 12312 .word .LANCHOR75+24 12313 .word .LANCHOR45 12314 .word .LANCHOR58 12315 .word .LANCHOR75 12316 .word .LANCHOR37 12317 .word .LC33 12318 .word .LANCHOR54 12319 .word .LANCHOR78 12320 .word .LC34 12321 .word .LC35 12322 .word .LANCHOR123 12323 .size FtlBbmTblFlush, .-FtlBbmTblFlush 12324 .section .text.allocate_data_superblock,"ax",%progbits 12325 .align 1 12326 .global allocate_data_superblock 12327 .syntax unified 12328 .thumb 12329 .thumb_func 12330 .fpu softvfp 12331 .type allocate_data_superblock, %function 12332allocate_data_superblock: 12333 @ args = 0, pretend = 0, frame = 8 12334 @ frame_needed = 0, uses_anonymous_args = 0 12335 ldr r3, .L1853 12336 push {r0, r1, r4, r5, r6, r7, r8, r10, fp, lr} 12337 mov r4, r0 12338 ldr r3, [r3] 12339 cmp r3, #0 12340 bne .L1790 12341.L1789: 12342 ldr r3, .L1853+4 12343 ldr r8, .L1853+60 12344 ldr r7, .L1853+8 12345 ldrh r3, [r3] 12346 ldrh r2, [r8] 12347 add r3, r3, r2 12348 ldrh r2, [r7] 12349 cmp r3, r2 12350 ble .L1791 12351 ldr r1, .L1853+12 12352 movw r2, #3108 12353 ldr r0, .L1853+16 12354 bl printf 12355 ldr r1, .L1853+20 12356 ldr r0, .L1853+24 12357 bl printf 12358.L1791: 12359 ldr r3, .L1853+28 12360 ldrb r2, [r4, #8] @ zero_extendqisi2 12361 cmp r4, r3 12362 bne .L1792 12363 ldr r3, .L1853+4 12364 ldrh r5, [r3] 12365 ldr r3, .L1853+32 12366 ldr r3, [r3] 12367 lsrs r0, r5, #1 12368 adds r1, r0, #1 12369 mul r6, r3, r5 12370 add r1, r1, r6, lsr #2 12371 ldr r6, .L1853+36 12372 uxth r1, r1 12373 ldr r6, [r6] 12374 cbz r6, .L1793 12375 ldr r6, .L1853+40 12376 ldr r6, [r6] 12377 cmp r6, #39 12378 bhi .L1793 12379 cmp r6, #2 12380 bls .L1827 12381 lsls r1, r5, #31 12382 bpl .L1823 12383 cmp r3, #0 12384 beq .L1827 12385.L1823: 12386 mov r1, r0 12387 b .L1793 12388.L1792: 12389 cmp r2, #1 12390 bne .L1827 12391 ldr r3, .L1853+44 12392 ldrh r3, [r3] 12393 cmp r3, #1 12394 beq .L1827 12395 ldr r3, .L1853+48 12396 ldrb r3, [r3] @ zero_extendqisi2 12397 cmp r3, #0 12398 bne .L1827 12399 ldr r3, .L1853+4 12400 ldr r0, .L1853+36 12401 ldrh r3, [r3] 12402 ldr r0, [r0] 12403 lsrs r1, r3, #3 12404 cbz r0, .L1793 12405 ldr r0, .L1853+40 12406 ldr r0, [r0] 12407 cmp r0, #1 12408 bhi .L1793 12409 rsb r3, r3, r3, lsl #3 12410 ubfx r1, r3, #3, #16 12411.L1793: 12412 cbz r1, .L1794 12413 subs r1, r1, #1 12414 uxth r1, r1 12415.L1794: 12416 ldr r0, .L1853+52 12417 bl List_pop_index_node 12418 ldr r3, .L1853+4 12419 mov r5, r0 12420 uxth r10, r0 12421 ldrh r3, [r3] 12422 cbnz r3, .L1795 12423 ldr r1, .L1853+12 12424 movw r2, #3128 12425 ldr r0, .L1853+16 12426 bl printf 12427 ldr r1, .L1853+20 12428 ldr r0, .L1853+24 12429 bl printf 12430.L1795: 12431 ldr r3, .L1853+4 12432 ldr r2, .L1853+4 12433 ldrh r3, [r3] 12434 subs r3, r3, #1 12435 strh r3, [r2] @ movhi 12436 ldrh r3, [r7] 12437 cmp r3, r10 12438 bls .L1789 12439 uxth r5, r5 12440 lsls r3, r5, #1 12441 str r3, [sp] 12442 ldr r3, .L1853+56 12443 ldr r3, [r3] 12444 ldrh r6, [r3, r5, lsl #1] 12445 cmp r6, #0 12446 bne .L1789 12447 strh r10, [r4] @ movhi 12448 mov r0, r4 12449 bl make_superblock 12450 ldrb r3, [r4, #7] @ zero_extendqisi2 12451 cmp r3, #0 12452 bne .L1797 12453 ldr r3, .L1853+56 12454 movw r2, #65535 12455 ldr r3, [r3] 12456 strh r2, [r3, r5, lsl #1] @ movhi 12457 ldr r3, .L1853+4 12458 ldrh r2, [r8] 12459 ldrh r3, [r3] 12460 add r3, r3, r2 12461 ldrh r2, [r7] 12462 cmp r3, r2 12463 ble .L1789 12464 movw r2, #3144 12465 ldr r1, .L1853+12 12466 ldr r0, .L1853+16 12467 bl printf 12468 ldr r1, .L1853+20 12469 ldr r0, .L1853+24 12470 bl printf 12471 b .L1789 12472.L1827: 12473 movs r1, #0 12474 b .L1794 12475.L1854: 12476 .align 2 12477.L1853: 12478 .word .LANCHOR77 12479 .word .LANCHOR89 12480 .word .LANCHOR40 12481 .word .LANCHOR203 12482 .word .LC5 12483 .word .LC6 12484 .word .LC7 12485 .word .LANCHOR94 12486 .word .LANCHOR172 12487 .word .LANCHOR28 12488 .word .LANCHOR170 12489 .word .LANCHOR44 12490 .word .LANCHOR8 12491 .word .LANCHOR88 12492 .word .LANCHOR84 12493 .word .LANCHOR86 12494.L1797: 12495 ldr r3, .L1855 12496 ldrh r2, [r8] 12497 ldrh r3, [r3] 12498 add r3, r3, r2 12499 ldrh r2, [r7] 12500 cmp r3, r2 12501 ble .L1799 12502 ldr r1, .L1855+4 12503 movw r2, #3147 12504 ldr r0, .L1855+8 12505 bl printf 12506 ldr r1, .L1855+12 12507 ldr r0, .L1855+16 12508 bl printf 12509.L1799: 12510 ldr r3, .L1855+20 12511 add lr, r4, #16 12512 ldr r2, .L1855+24 12513 mov r8, #0 12514 ldr ip, [r3] 12515 ldrh r0, [r2] 12516 movs r2, #36 12517 mov r3, ip 12518 mla r0, r2, r0, ip 12519.L1800: 12520 cmp r0, r3 12521 bne .L1802 12522 cbnz r6, .L1803 12523 ldr r1, .L1855+4 12524 movw r2, #3159 12525 ldr r0, .L1855+8 12526 bl printf 12527 ldr r1, .L1855+12 12528 ldr r0, .L1855+16 12529 bl printf 12530.L1803: 12531 ldr r3, .L1855+28 12532 ldr r8, .L1855+80 12533 ldr r3, [r3] 12534 cbz r3, .L1804 12535 ldr r3, .L1855+32 12536 cmp r4, r3 12537 bne .L1804 12538 ldr r3, [r8] 12539 ldrh r3, [r3, r5, lsl #1] 12540 cmp r3, #40 12541 itt hi 12542 movhi r3, #0 12543 strbhi r3, [r4, #8] 12544.L1804: 12545 ldr r3, .L1855+36 12546 ldrh r3, [r3] 12547 cmp r3, r10 12548 bne .L1805 12549 ldr r1, .L1855+4 12550 movw r2, #3166 12551 ldr r0, .L1855+8 12552 bl printf 12553 ldr r1, .L1855+12 12554 ldr r0, .L1855+16 12555 bl printf 12556.L1805: 12557 ldrb r2, [r4, #8] @ zero_extendqisi2 12558 ldr r3, .L1855+40 12559 ldr fp, .L1855+84 12560 cmp r2, #0 12561 bne .L1806 12562 ldr r1, [r8] 12563 ldrh r2, [r1, r5, lsl #1] 12564 cmp r2, #0 12565 beq .L1807 12566 ldr r0, .L1855+44 12567 ldrh r0, [r0] 12568 add r2, r2, r0 12569.L1850: 12570 strh r2, [r1, r5, lsl #1] @ movhi 12571 mov r0, r10 12572 ldr r2, [r3] 12573 movs r1, #0 12574 str r3, [sp, #4] 12575 adds r2, r2, #1 12576 str r2, [r3] 12577 bl ftl_set_blk_mode 12578.L1851: 12579 ldr r2, [r8] 12580 ldr r3, [sp, #4] 12581 ldrh r0, [r2, r5, lsl #1] 12582 ldr r2, .L1855+48 12583 ldr r1, [r2] 12584 cmp r0, r1 12585 ldrh r1, [r7] 12586 it hi 12587 strhi r0, [r2] 12588 ldr r2, .L1855+44 12589 ldr r0, [r3] 12590 ldr r3, [fp] 12591 ldrh r2, [r2] 12592 ldr r7, .L1855+52 12593 mla r0, r0, r2, r3 12594 bl __aeabi_uidiv 12595 ldr r3, .L1855+56 12596 str r0, [r3] 12597 ldr r3, .L1855+60 12598 ldr r2, [r3] 12599 ldr r3, [r2, #16] 12600 adds r3, r3, #1 12601 str r3, [r2, #16] 12602 ldr r3, .L1855+20 12603 ldr r0, [r3] 12604 movs r3, #36 12605 adds r1, r0, #4 12606 mla r3, r3, r6, r0 12607 adds r3, r3, #40 12608.L1811: 12609 adds r1, r1, #36 12610 cmp r3, r1 12611 bne .L1812 12612 ldr r3, .L1855+64 12613 ldrb r3, [r3] @ zero_extendqisi2 12614 cbz r3, .L1813 12615 ldrb r3, [r4, #8] @ zero_extendqisi2 12616 mov r2, r6 12617 cmp r3, #1 12618 ite eq 12619 moveq r1, #0 12620 movne r1, #1 12621 bl FlashEraseBlocks 12622.L1813: 12623 ldr r3, .L1855+20 12624 movs r7, #0 12625 mov r8, r7 12626 mov fp, #36 12627 mov r2, r6 12628 ldrb r1, [r4, #8] @ zero_extendqisi2 12629 ldr r0, [r3] 12630 bl FlashEraseBlocks 12631.L1815: 12632 uxth r3, r7 12633 cmp r6, r3 12634 bhi .L1817 12635 cmp r8, #0 12636 beq .L1818 12637 mov r0, r10 12638 bl update_multiplier_value 12639 bl FtlBbmTblFlush 12640.L1818: 12641 ldrb r2, [r4, #7] @ zero_extendqisi2 12642 cmp r2, #0 12643 bne .L1819 12644 ldr r3, .L1855+68 12645 movw r2, #65535 12646 ldr r3, [r3] 12647 strh r2, [r3, r5, lsl #1] @ movhi 12648 b .L1789 12649.L1802: 12650 ldrh r1, [lr], #2 12651 movw fp, #65535 12652 str r8, [r3, #8] 12653 str r8, [r3, #12] 12654 cmp r1, fp 12655 beq .L1801 12656 mla fp, r2, r6, ip 12657 adds r6, r6, #1 12658 lsls r1, r1, #10 12659 uxth r6, r6 12660 str r1, [fp, #4] 12661.L1801: 12662 adds r3, r3, #36 12663 b .L1800 12664.L1807: 12665 movs r2, #2 12666 b .L1850 12667.L1806: 12668 ldr r1, [r8] 12669 mov r0, r10 12670 str r3, [sp, #4] 12671 ldrh r2, [r1, r5, lsl #1] 12672 adds r2, r2, #1 12673 strh r2, [r1, r5, lsl #1] @ movhi 12674 ldr r2, [fp] 12675 adds r2, r2, #1 12676 str r2, [fp] 12677 bl ftl_set_blk_mode.part.10 12678 b .L1851 12679.L1812: 12680 ldr r2, [r1, #-36] 12681 ands r2, r2, r7 12682 str r2, [r1, #-36] 12683 b .L1811 12684.L1817: 12685 ldr r2, .L1855+20 12686 mul r3, fp, r7 12687 ldr r2, [r2] 12688 adds r1, r2, r3 12689 ldr r2, [r2, r3] 12690 adds r3, r2, #1 12691 bne .L1816 12692 ldr r0, [r1, #4] 12693 add r8, r8, #1 12694 str r2, [sp, #4] 12695 ubfx r0, r0, #10, #16 12696 bl FtlBbmMapBadBlock 12697 ldr r2, [sp, #4] 12698 add r3, r4, r7, lsl #1 12699 strh r2, [r3, #16] @ movhi 12700 ldrb r3, [r4, #7] @ zero_extendqisi2 12701 subs r3, r3, #1 12702 strb r3, [r4, #7] 12703.L1816: 12704 adds r7, r7, #1 12705 b .L1815 12706.L1819: 12707 ldr r3, .L1855+72 12708 ldr r1, .L1855+76 12709 ldrh r3, [r3] 12710 strh r10, [r4] @ movhi 12711 smulbb r3, r3, r2 12712 movs r2, #0 12713 strh r2, [r4, #2] @ movhi 12714 strb r2, [r4, #6] 12715 ldr r2, [r1] 12716 uxth r3, r3 12717 strh r3, [r4, #4] @ movhi 12718 str r2, [r4, #12] 12719 adds r2, r2, #1 12720 str r2, [r1] 12721 ldr r2, .L1855+68 12722 ldr r1, [sp] 12723 ldr r2, [r2] 12724 strh r3, [r2, r1] @ movhi 12725 ldrh r3, [r4, #4] 12726 cbz r3, .L1820 12727 ldrb r3, [r4, #7] @ zero_extendqisi2 12728 cbnz r3, .L1790 12729.L1820: 12730 ldr r1, .L1855+4 12731 movw r2, #3225 12732 ldr r0, .L1855+8 12733 bl printf 12734 ldr r1, .L1855+12 12735 ldr r0, .L1855+16 12736 bl printf 12737.L1790: 12738 movs r0, #0 12739 add sp, sp, #8 12740 @ sp needed 12741 pop {r4, r5, r6, r7, r8, r10, fp, pc} 12742.L1856: 12743 .align 2 12744.L1855: 12745 .word .LANCHOR89 12746 .word .LANCHOR203 12747 .word .LC5 12748 .word .LC6 12749 .word .LC7 12750 .word .LANCHOR78 12751 .word .LANCHOR38 12752 .word .LANCHOR28 12753 .word .LANCHOR92 12754 .word .LANCHOR204 12755 .word .LANCHOR167 12756 .word .LANCHOR48 12757 .word .LANCHOR169 12758 .word -1024 12759 .word .LANCHOR205 12760 .word .LANCHOR191 12761 .word .LANCHOR8 12762 .word .LANCHOR84 12763 .word .LANCHOR53 12764 .word .LANCHOR159 12765 .word .LANCHOR79 12766 .word .LANCHOR168 12767 .size allocate_data_superblock, .-allocate_data_superblock 12768 .section .text.FtlGcFreeBadSuperBlk,"ax",%progbits 12769 .align 1 12770 .global FtlGcFreeBadSuperBlk 12771 .syntax unified 12772 .thumb 12773 .thumb_func 12774 .fpu softvfp 12775 .type FtlGcFreeBadSuperBlk, %function 12776FtlGcFreeBadSuperBlk: 12777 @ args = 0, pretend = 0, frame = 8 12778 @ frame_needed = 0, uses_anonymous_args = 0 12779 push {r0, r1, r4, r5, r6, r7, r8, r10, fp, lr} 12780 mov r10, r0 12781 ldr r4, .L1869 12782 ldrh r3, [r4] 12783 cbz r3, .L1858 12784 ldr r8, .L1869+12 12785 movs r7, #0 12786.L1859: 12787 ldr r3, .L1869+4 12788 ldrh r2, [r3] 12789 uxth r3, r7 12790 cmp r2, r3 12791 bhi .L1865 12792 bl FtlGcReFreshBadBlk 12793.L1858: 12794 movs r0, #0 12795 add sp, sp, #8 12796 @ sp needed 12797 pop {r4, r5, r6, r7, r8, r10, fp, pc} 12798.L1865: 12799 ldr r2, .L1869+8 12800 uxth r3, r7 12801 mov r1, r10 12802 mov fp, #0 12803 ldrb r0, [r2, r3] @ zero_extendqisi2 12804 bl V2P_block 12805 mov r1, r0 12806.L1860: 12807 ldrh r3, [r4] 12808 uxth r5, fp 12809 cmp r3, r5 12810 bhi .L1864 12811 adds r7, r7, #1 12812 b .L1859 12813.L1864: 12814 uxth r6, fp 12815 ldrh r3, [r8, r6, lsl #1] 12816 cmp r3, r1 12817 bne .L1861 12818 mov r0, r1 12819 str r1, [sp, #4] 12820 bl FtlBbmMapBadBlock 12821 bl FtlBbmTblFlush 12822 ldrh r2, [r4] 12823 add r3, r8, r6, lsl #1 12824 ldr r1, [sp, #4] 12825.L1862: 12826 cmp r5, r2 12827 bcc .L1863 12828 subs r2, r2, #1 12829 strh r2, [r4] @ movhi 12830.L1861: 12831 add fp, fp, #1 12832 b .L1860 12833.L1863: 12834 ldrh r0, [r3, #2]! 12835 adds r5, r5, #1 12836 uxth r5, r5 12837 strh r0, [r3, #-2] @ movhi 12838 b .L1862 12839.L1870: 12840 .align 2 12841.L1869: 12842 .word .LANCHOR117 12843 .word .LANCHOR38 12844 .word .LANCHOR47 12845 .word .LANCHOR118 12846 .size FtlGcFreeBadSuperBlk, .-FtlGcFreeBadSuperBlk 12847 .section .text.update_vpc_list,"ax",%progbits 12848 .align 1 12849 .global update_vpc_list 12850 .syntax unified 12851 .thumb 12852 .thumb_func 12853 .fpu softvfp 12854 .type update_vpc_list, %function 12855update_vpc_list: 12856 @ args = 0, pretend = 0, frame = 0 12857 @ frame_needed = 0, uses_anonymous_args = 0 12858 push {r3, r4, r5, lr} 12859 mov r4, r0 12860 ldr r3, .L1881 12861 ldr r3, [r3] 12862 ldrh r3, [r3, r0, lsl #1] 12863 cmp r3, #0 12864 bne .L1872 12865 ldr r2, .L1881+4 12866 ldrh r1, [r2] 12867 cmp r1, r0 12868 bne .L1873 12869 movw r3, #65535 12870 strh r3, [r2] @ movhi 12871.L1874: 12872 ldr r5, .L1881+8 12873 mov r1, r4 12874 ldr r0, .L1881+12 12875 bl List_remove_node 12876 ldrh r3, [r5] 12877 cbnz r3, .L1876 12878 ldr r1, .L1881+16 12879 movw r2, #3336 12880 ldr r0, .L1881+20 12881 bl printf 12882 ldr r1, .L1881+24 12883 ldr r0, .L1881+28 12884 bl printf 12885.L1876: 12886 ldrh r3, [r5] 12887 mov r0, r4 12888 subs r3, r3, #1 12889 strh r3, [r5] @ movhi 12890 bl free_data_superblock 12891 mov r0, r4 12892 bl FtlGcFreeBadSuperBlk 12893 ldr r3, .L1881+32 12894 ldrh r2, [r5] 12895 ldrh r3, [r3] 12896 add r3, r3, r2 12897 ldr r2, .L1881+36 12898 ldrh r2, [r2] 12899 cmp r3, r2 12900 ble .L1880 12901 ldr r1, .L1881+16 12902 movw r2, #3339 12903 ldr r0, .L1881+20 12904 bl printf 12905 ldr r1, .L1881+24 12906 ldr r0, .L1881+28 12907 bl printf 12908.L1880: 12909 movs r3, #1 12910 b .L1871 12911.L1873: 12912 ldr r2, .L1881+40 12913 ldrh r2, [r2] 12914 cmp r2, r0 12915 beq .L1871 12916 ldr r2, .L1881+44 12917 ldrh r2, [r2] 12918 cmp r2, r0 12919 beq .L1871 12920 ldr r2, .L1881+48 12921 ldrh r2, [r2] 12922 cmp r2, r0 12923 bne .L1874 12924.L1871: 12925 mov r0, r3 12926 pop {r3, r4, r5, pc} 12927.L1872: 12928 bl List_update_data_list 12929 movs r3, #0 12930 b .L1871 12931.L1882: 12932 .align 2 12933.L1881: 12934 .word .LANCHOR84 12935 .word .LANCHOR204 12936 .word .LANCHOR86 12937 .word .LANCHOR83 12938 .word .LANCHOR206 12939 .word .LC5 12940 .word .LC6 12941 .word .LC7 12942 .word .LANCHOR89 12943 .word .LANCHOR40 12944 .word .LANCHOR92 12945 .word .LANCHOR93 12946 .word .LANCHOR94 12947 .size update_vpc_list, .-update_vpc_list 12948 .section .text.decrement_vpc_count,"ax",%progbits 12949 .align 1 12950 .global decrement_vpc_count 12951 .syntax unified 12952 .thumb 12953 .thumb_func 12954 .fpu softvfp 12955 .type decrement_vpc_count, %function 12956decrement_vpc_count: 12957 @ args = 0, pretend = 0, frame = 0 12958 @ frame_needed = 0, uses_anonymous_args = 0 12959 movw r3, #65535 12960 push {r4, r5, r6, lr} 12961 cmp r0, r3 12962 mov r4, r0 12963 beq .L1884 12964 ldr r5, .L1895 12965 ldr r3, [r5] 12966 ldrh r2, [r3, r0, lsl #1] 12967 cmp r2, #0 12968 bne .L1885 12969 mov r1, r0 12970 ldr r0, .L1895+4 12971 bl printf 12972 ldr r3, [r5] 12973 ldrh r3, [r3, r4, lsl #1] 12974 cbnz r3, .L1886 12975 ldr r1, .L1895+8 12976 movw r2, #3354 12977 ldr r0, .L1895+12 12978 bl printf 12979 ldr r1, .L1895+16 12980 ldr r0, .L1895+20 12981 bl printf 12982.L1886: 12983 ldr r3, [r5] 12984 movs r2, #32 12985 mov r1, r4 12986 ldr r0, .L1895+24 12987 strh r2, [r3, r4, lsl #1] @ movhi 12988 bl test_node_in_list 12989 cbz r0, .L1887 12990 ldr r6, .L1895+28 12991 mov r1, r4 12992 ldr r0, .L1895+24 12993 bl List_remove_node 12994 ldrh r3, [r6] 12995 cbnz r3, .L1888 12996 ldr r1, .L1895+8 12997 movw r2, #3358 12998 ldr r0, .L1895+12 12999 bl printf 13000 ldr r1, .L1895+16 13001 ldr r0, .L1895+20 13002 bl printf 13003.L1888: 13004 ldrh r3, [r6] 13005 mov r0, r4 13006 subs r3, r3, #1 13007 strh r3, [r6] @ movhi 13008 bl INSERT_DATA_LIST 13009 ldr r3, [r5] 13010 mov r1, r4 13011 ldr r0, .L1895+32 13012 ldrh r2, [r3, r4, lsl #1] 13013 bl printf 13014.L1887: 13015 mov r0, r4 13016 bl FtlGcRefreshBlock 13017.L1891: 13018 movs r5, #0 13019 b .L1883 13020.L1885: 13021 subs r2, r2, #1 13022 strh r2, [r3, r0, lsl #1] @ movhi 13023.L1884: 13024 ldr r6, .L1895+36 13025 movw r3, #65535 13026 ldrh r0, [r6] 13027 cmp r0, r3 13028 bne .L1890 13029 strh r4, [r6] @ movhi 13030 b .L1891 13031.L1890: 13032 cmp r4, r0 13033 beq .L1891 13034 bl update_vpc_list 13035 ldr r3, .L1895+40 13036 adds r5, r0, #0 13037 ldr r2, .L1895+44 13038 it ne 13039 movne r5, #1 13040 strh r4, [r6] @ movhi 13041 ldr r3, [r3] 13042 ldr r2, [r2] 13043 subs r3, r3, r2 13044 asrs r2, r3, #1 13045 ldr r3, .L1895+48 13046 muls r3, r2, r3 13047 ldr r2, .L1895 13048 ldr r2, [r2] 13049 uxth r1, r3 13050 ldrh r2, [r2, r1, lsl #1] 13051 cbnz r2, .L1883 13052 cmp r4, r1 13053 beq .L1883 13054 ldr r1, .L1895+8 13055 movw r2, #3379 13056 ldr r0, .L1895+12 13057 bl printf 13058 ldr r1, .L1895+16 13059 ldr r0, .L1895+20 13060 bl printf 13061.L1883: 13062 mov r0, r5 13063 pop {r4, r5, r6, pc} 13064.L1896: 13065 .align 2 13066.L1895: 13067 .word .LANCHOR84 13068 .word .LC36 13069 .word .LANCHOR207 13070 .word .LC5 13071 .word .LC6 13072 .word .LC7 13073 .word .LANCHOR88 13074 .word .LANCHOR89 13075 .word .LC37 13076 .word .LANCHOR133 13077 .word .LANCHOR83 13078 .word .LANCHOR82 13079 .word -1431655765 13080 .size decrement_vpc_count, .-decrement_vpc_count 13081 .section .text.FtlSlcSuperblockCheck,"ax",%progbits 13082 .align 1 13083 .global FtlSlcSuperblockCheck 13084 .syntax unified 13085 .thumb 13086 .thumb_func 13087 .fpu softvfp 13088 .type FtlSlcSuperblockCheck, %function 13089FtlSlcSuperblockCheck: 13090 @ args = 0, pretend = 0, frame = 0 13091 @ frame_needed = 0, uses_anonymous_args = 0 13092 ldrh r3, [r0, #4] 13093 push {r4, r5, r6, lr} 13094 mov r4, r0 13095 cmp r3, #0 13096 beq .L1897 13097 ldrh r2, [r0] 13098 movw r3, #65535 13099 cmp r2, r3 13100 beq .L1897 13101 ldrb r3, [r0, #6] @ zero_extendqisi2 13102 ldr r5, .L1908 13103 ldr r6, .L1908+4 13104 adds r3, r3, #8 13105 ldrh r3, [r0, r3, lsl #1] 13106.L1901: 13107 movw r2, #65535 13108 cmp r3, r2 13109 beq .L1903 13110 ldrb r3, [r4, #8] @ zero_extendqisi2 13111 cmp r3, #1 13112 bne .L1904 13113 ldrb r1, [r5] @ zero_extendqisi2 13114 cbnz r1, .L1904 13115 ldrh r1, [r4, #2] 13116 ldrh r1, [r6, r1, lsl #1] 13117 cmp r1, r2 13118 bne .L1904 13119 ldrh r3, [r4, #4] 13120 ldrh r0, [r4] 13121 subs r3, r3, #1 13122 strh r3, [r4, #4] @ movhi 13123 bl decrement_vpc_count 13124 ldrh r2, [r4, #4] 13125 cbnz r2, .L1903 13126 ldrh r3, [r4, #2] 13127 strb r2, [r4, #6] 13128 adds r3, r3, #1 13129 strh r3, [r4, #2] @ movhi 13130 pop {r4, r5, r6, pc} 13131.L1903: 13132 ldrb r3, [r4, #6] @ zero_extendqisi2 13133 ldr r2, .L1908+8 13134 adds r3, r3, #1 13135 ldrh r2, [r2] 13136 uxtb r3, r3 13137 strb r3, [r4, #6] 13138 cmp r2, r3 13139 bne .L1902 13140 ldrh r3, [r4, #2] 13141 adds r3, r3, #1 13142 strh r3, [r4, #2] @ movhi 13143 movs r3, #0 13144 strb r3, [r4, #6] 13145.L1902: 13146 ldrb r3, [r4, #6] @ zero_extendqisi2 13147 adds r3, r3, #8 13148 ldrh r3, [r4, r3, lsl #1] 13149 b .L1901 13150.L1904: 13151 ldrb r2, [r5] @ zero_extendqisi2 13152 cbz r2, .L1897 13153 cmp r3, #1 13154 bne .L1897 13155 ldr r3, .L1908+12 13156 ldrh r2, [r4, #2] 13157 ldrh r3, [r3] 13158 cmp r2, r3 13159 bcc .L1897 13160 ldr r3, .L1908+16 13161 ldrh r1, [r4] 13162 ldrh r0, [r4, #4] 13163 ldr r2, [r3] 13164 ldrh r3, [r2, r1, lsl #1] 13165 subs r3, r3, r0 13166 strh r3, [r2, r1, lsl #1] @ movhi 13167 movs r3, #0 13168 ldr r2, .L1908+20 13169 strh r3, [r4, #4] @ movhi 13170 strb r3, [r4, #6] 13171 ldrh r2, [r2] 13172 strh r2, [r4, #2] @ movhi 13173.L1897: 13174 pop {r4, r5, r6, pc} 13175.L1909: 13176 .align 2 13177.L1908: 13178 .word .LANCHOR8 13179 .word .LANCHOR120 13180 .word .LANCHOR38 13181 .word .LANCHOR54 13182 .word .LANCHOR84 13183 .word .LANCHOR53 13184 .size FtlSlcSuperblockCheck, .-FtlSlcSuperblockCheck 13185 .section .text.get_new_active_ppa,"ax",%progbits 13186 .align 1 13187 .global get_new_active_ppa 13188 .syntax unified 13189 .thumb 13190 .thumb_func 13191 .fpu softvfp 13192 .type get_new_active_ppa, %function 13193get_new_active_ppa: 13194 @ args = 0, pretend = 0, frame = 0 13195 @ frame_needed = 0, uses_anonymous_args = 0 13196 ldrh r2, [r0] 13197 movw r3, #65535 13198 push {r4, r5, r6, r7, r8, lr} 13199 mov r4, r0 13200 cmp r2, r3 13201 bne .L1911 13202 ldr r1, .L1932 13203 movw r2, #3276 13204 ldr r0, .L1932+4 13205 bl printf 13206 ldr r1, .L1932+8 13207 ldr r0, .L1932+12 13208 bl printf 13209.L1911: 13210 ldr r5, .L1932+16 13211 ldrh r2, [r4, #2] 13212 ldrh r3, [r5] 13213 cmp r2, r3 13214 bne .L1912 13215 ldr r1, .L1932 13216 movw r2, #3277 13217 ldr r0, .L1932+4 13218 bl printf 13219 ldr r1, .L1932+8 13220 ldr r0, .L1932+12 13221 bl printf 13222.L1912: 13223 ldrh r3, [r4, #4] 13224 cbnz r3, .L1913 13225 ldr r1, .L1932 13226 movw r2, #3278 13227 ldr r0, .L1932+4 13228 bl printf 13229 ldr r1, .L1932+8 13230 ldr r0, .L1932+12 13231 bl printf 13232.L1913: 13233 movs r3, #0 13234 ldr r7, .L1932+20 13235 strb r3, [r4, #10] 13236 ldrb r3, [r4, #6] @ zero_extendqisi2 13237 ldr r6, .L1932+24 13238 adds r3, r3, #8 13239 ldrh r2, [r4, r3, lsl #1] 13240.L1914: 13241 movw r0, #65535 13242 cmp r2, r0 13243 beq .L1915 13244 ldrb r3, [r4, #8] @ zero_extendqisi2 13245 ldrh r1, [r4, #2] 13246 cmp r3, #1 13247 ldrh r3, [r4, #4] 13248 bne .L1917 13249 ldrb ip, [r6] @ zero_extendqisi2 13250 cmp ip, #0 13251 bne .L1917 13252 ldr ip, .L1932+28 13253 ldrh ip, [ip, r1, lsl #1] 13254 cmp ip, r0 13255 bne .L1917 13256 subs r3, r3, #1 13257 ldrh r0, [r4] 13258 strh r3, [r4, #4] @ movhi 13259 bl decrement_vpc_count 13260.L1915: 13261 ldrb r3, [r4, #6] @ zero_extendqisi2 13262 ldrh r2, [r7] 13263 adds r3, r3, #1 13264 uxtb r3, r3 13265 cmp r2, r3 13266 strb r3, [r4, #6] 13267 bne .L1916 13268 ldrh r3, [r4, #2] 13269 adds r3, r3, #1 13270 strh r3, [r4, #2] @ movhi 13271 movs r3, #0 13272 strb r3, [r4, #6] 13273.L1916: 13274 ldrb r3, [r4, #6] @ zero_extendqisi2 13275 adds r3, r3, #8 13276 ldrh r2, [r4, r3, lsl #1] 13277 b .L1914 13278.L1917: 13279 ldr r8, .L1932+24 13280 orr r6, r1, r2, lsl #10 13281 subs r3, r3, #1 13282 strh r3, [r4, #4] @ movhi 13283.L1918: 13284 ldrb r3, [r4, #6] @ zero_extendqisi2 13285 movw r2, #65535 13286 ldrh r0, [r7] 13287.L1920: 13288 adds r3, r3, #1 13289 uxtb r3, r3 13290 cmp r3, r0 13291 itttt eq 13292 ldrheq r3, [r4, #2] 13293 addeq r3, r3, #1 13294 strheq r3, [r4, #2] @ movhi 13295 moveq r3, #0 13296 add r1, r3, #8 13297 ldrh r1, [r4, r1, lsl #1] 13298 cmp r1, r2 13299 beq .L1920 13300 strb r3, [r4, #6] 13301 ldrb r3, [r4, #8] @ zero_extendqisi2 13302 cmp r3, #1 13303 bne .L1921 13304 ldrb r1, [r8] @ zero_extendqisi2 13305 ldrh r3, [r4, #2] 13306 cbnz r1, .L1922 13307 ldr r1, .L1932+28 13308 ldrh r3, [r1, r3, lsl #1] 13309 cmp r3, r2 13310 bne .L1921 13311 ldrh r3, [r4, #4] 13312 cbz r3, .L1921 13313 subs r3, r3, #1 13314 ldrh r0, [r4] 13315 strh r3, [r4, #4] @ movhi 13316 bl decrement_vpc_count 13317 b .L1918 13318.L1922: 13319 ldr r2, .L1932+32 13320 ldrh r2, [r2] 13321 cmp r3, r2 13322 bcc .L1921 13323 ldr r3, .L1932+36 13324 ldrh r1, [r4] 13325 ldrh r0, [r4, #4] 13326 ldr r2, [r3] 13327 ldrh r3, [r2, r1, lsl #1] 13328 subs r3, r3, r0 13329 strh r3, [r2, r1, lsl #1] @ movhi 13330 movs r3, #0 13331 ldrh r2, [r5] 13332 strh r3, [r4, #4] @ movhi 13333 strb r3, [r4, #6] 13334 strh r2, [r4, #2] @ movhi 13335.L1921: 13336 ldrh r2, [r4, #2] 13337 ldrh r3, [r5] 13338 cmp r2, r3 13339 bne .L1910 13340 ldrh r3, [r4, #4] 13341 cbz r3, .L1910 13342 ldr r1, .L1932 13343 movw r2, #3322 13344 ldr r0, .L1932+4 13345 bl printf 13346 ldr r1, .L1932+8 13347 ldr r0, .L1932+12 13348 bl printf 13349.L1910: 13350 mov r0, r6 13351 pop {r4, r5, r6, r7, r8, pc} 13352.L1933: 13353 .align 2 13354.L1932: 13355 .word .LANCHOR208 13356 .word .LC5 13357 .word .LC6 13358 .word .LC7 13359 .word .LANCHOR53 13360 .word .LANCHOR38 13361 .word .LANCHOR8 13362 .word .LANCHOR120 13363 .word .LANCHOR54 13364 .word .LANCHOR84 13365 .size get_new_active_ppa, .-get_new_active_ppa 13366 .section .text.FtlVpcTblFlush,"ax",%progbits 13367 .align 1 13368 .global FtlVpcTblFlush 13369 .syntax unified 13370 .thumb 13371 .thumb_func 13372 .fpu softvfp 13373 .type FtlVpcTblFlush, %function 13374FtlVpcTblFlush: 13375 @ args = 0, pretend = 0, frame = 8 13376 @ frame_needed = 0, uses_anonymous_args = 0 13377 ldr r2, .L1954 13378 push {r0, r1, r4, r5, r6, r7, r8, r10, fp, lr} 13379 ldr r3, [r2] 13380 str r2, [sp, #4] 13381 cmp r3, #0 13382 bne .L1936 13383 ldr r4, .L1954+4 13384 ldr fp, .L1954+108 13385 ldr r8, .L1954+112 13386 ldr r5, .L1954+8 13387 ldr r0, [fp] 13388 ldr r6, [r8] 13389 ldrh r2, [r4] 13390 str r0, [r5, #8] 13391 str r6, [r5, #12] 13392 strh r2, [r6, #2] @ movhi 13393 movw r2, #61604 13394 ldr r7, .L1954+12 13395 strh r2, [r6] @ movhi 13396 str r3, [r6, #12] 13397 ldr ip, .L1954+116 13398 ldr r2, [r4, #8] 13399 str r3, [r6, #8] 13400 ldr r3, .L1954+16 13401 str r2, [r6, #4] 13402 stm r7, {r3, ip} 13403 ldrh r3, [r4, #6] 13404 strh r3, [r7, #8] @ movhi 13405 ldr r3, .L1954+20 13406 ldrh r3, [r3] 13407 strb r3, [r7, #10] 13408 ldr r3, .L1954+24 13409 ldrh r2, [r3] 13410 ldrh r1, [r3, #2] 13411 strh r2, [r7, #14] @ movhi 13412 ldrb r2, [r3, #6] @ zero_extendqisi2 13413 ldrb r3, [r3, #8] @ zero_extendqisi2 13414 strb r3, [r7, #11] 13415 orr r2, r2, r1, lsl #6 13416 ldr r3, .L1954+28 13417 strh r2, [r7, #16] @ movhi 13418 ldrh r2, [r3] 13419 ldrh r1, [r3, #2] 13420 strh r2, [r7, #18] @ movhi 13421 ldrb r2, [r3, #6] @ zero_extendqisi2 13422 ldrb r3, [r3, #8] @ zero_extendqisi2 13423 strb r3, [r7, #12] 13424 orr r2, r2, r1, lsl #6 13425 ldr r3, .L1954+32 13426 strh r2, [r7, #20] @ movhi 13427 ldrh r2, [r3] 13428 strh r2, [r7, #22] @ movhi 13429 ldrh r1, [r3, #2] 13430 ldrb r2, [r3, #6] @ zero_extendqisi2 13431 ldrb r3, [r3, #8] @ zero_extendqisi2 13432 strb r3, [r7, #13] 13433 orr r2, r2, r1, lsl #6 13434 ldr r3, .L1954+36 13435 movs r1, #255 13436 strh r2, [r7, #24] @ movhi 13437 ldr r3, [r3] 13438 str r3, [r7, #32] 13439 ldr r3, .L1954+40 13440 ldr r3, [r3] 13441 str r3, [r7, #40] 13442 ldr r3, .L1954+44 13443 ldr r3, [r3] 13444 str r3, [r7, #36] 13445 ldr r3, .L1954+48 13446 ldrh r3, [r3] 13447 strh r3, [r7, #44] @ movhi 13448 ldr r3, .L1954+52 13449 ldrh r3, [r3] 13450 strh r3, [r7, #46] @ movhi 13451 ldr r3, .L1954+56 13452 ldrh r2, [r3] 13453 bl ftl_memset 13454 mov r1, r7 13455 ldr r7, .L1954+60 13456 movs r2, #48 13457 ldr r0, [r5, #8] 13458 bl ftl_memcpy 13459 ldrh r2, [r7] 13460 ldr r3, .L1954+64 13461 ldr r0, [r5, #8] 13462 ldr r1, [r3] 13463 lsls r2, r2, #1 13464 adds r0, r0, #48 13465 bl ftl_memcpy 13466 ldrh r0, [r7] 13467 ldr r3, [r5, #8] 13468 ldr r1, .L1954+68 13469 lsrs r2, r0, #3 13470 adds r0, r0, #24 13471 lsls r0, r0, #1 13472 ldr r1, [r1] 13473 adds r2, r2, #4 13474 bic r0, r0, #3 13475 add r0, r0, r3 13476 bl ftl_memcpy 13477 ldr r3, .L1954+72 13478 ldrh r3, [r3] 13479 cbz r3, .L1937 13480 ldrh r0, [r7] 13481 ldr r3, .L1954+76 13482 ldr r1, .L1954+80 13483 ldrh r2, [r3] 13484 lsrs r3, r0, #3 13485 ldr r1, [r1] 13486 add r3, r3, r0, lsl #1 13487 ldr r0, [r5, #8] 13488 adds r3, r3, #52 13489 lsls r2, r2, #2 13490 ubfx r3, r3, #2, #14 13491 add r0, r0, r3, lsl #2 13492 bl ftl_memcpy 13493.L1937: 13494 movs r7, #0 13495 movw r10, #65535 13496 movs r0, #0 13497 bl FtlUpdateVaildLpn 13498.L1938: 13499 ldr r3, [fp] 13500 ldrh r1, [r4, #2] 13501 ldrh r2, [r4] 13502 str r3, [r5, #8] 13503 ldr r3, [r8] 13504 str r3, [r5, #12] 13505 orr r3, r1, r2, lsl #10 13506 str r3, [r5, #4] 13507 ldr r3, .L1954+84 13508 ldrh r3, [r3] 13509 subs r3, r3, #1 13510 cmp r1, r3 13511 blt .L1939 13512 movs r3, #0 13513 ldrh r10, [r4, #4] 13514 strh r3, [r4, #2] @ movhi 13515 strh r2, [r4, #4] @ movhi 13516 bl FtlFreeSysBlkQueueOut 13517 ldr r3, .L1954+40 13518 ldr r1, .L1954+40 13519 strh r0, [r4] @ movhi 13520 ldr r3, [r3] 13521 adds r2, r3, #1 13522 str r3, [r4, #8] 13523 str r2, [r1] 13524 lsls r2, r0, #10 13525 str r2, [r5, #4] 13526 str r3, [r6, #4] 13527 strh r0, [r6, #2] @ movhi 13528.L1939: 13529 movs r3, #1 13530 ldr r0, .L1954+8 13531 mov r2, r3 13532 mov r1, r3 13533 bl FlashProgPages 13534 ldrh r3, [r4, #2] 13535 ldr r2, [r5] 13536 adds r3, r3, #1 13537 uxth r3, r3 13538 adds r1, r2, #1 13539 strh r3, [r4, #2] @ movhi 13540 bne .L1940 13541 cmp r3, #1 13542 bne .L1941 13543 ldr r1, .L1954+88 13544 movw r2, #1209 13545 ldr r0, .L1954+92 13546 bl printf 13547 ldr r1, .L1954+96 13548 ldr r0, .L1954+100 13549 bl printf 13550.L1941: 13551 ldrh r3, [r4, #2] 13552 adds r7, r7, #1 13553 uxth r7, r7 13554 cmp r3, #1 13555 itttt eq 13556 ldreq r3, .L1954+84 13557 ldrheq r3, [r3] 13558 addeq r3, r3, #-1 13559 strheq r3, [r4, #2] @ movhi 13560 cmp r7, #3 13561 bls .L1938 13562 mov r2, r7 13563 ldr r1, [r5, #4] 13564 ldr r0, .L1954+104 13565 bl printf 13566 ldr r2, [sp, #4] 13567 movs r3, #1 13568 str r3, [r2] 13569.L1936: 13570 movs r0, #0 13571 add sp, sp, #8 13572 @ sp needed 13573 pop {r4, r5, r6, r7, r8, r10, fp, pc} 13574.L1940: 13575 cmp r3, #1 13576 beq .L1938 13577 cmp r2, #256 13578 beq .L1938 13579 movw r3, #65535 13580 cmp r10, r3 13581 beq .L1936 13582 movs r1, #1 13583 mov r0, r10 13584 bl FtlFreeSysBlkQueueIn 13585 b .L1936 13586.L1955: 13587 .align 2 13588.L1954: 13589 .word .LANCHOR77 13590 .word .LANCHOR209 13591 .word .LANCHOR202 13592 .word .LANCHOR81 13593 .word 1179929683 13594 .word .LANCHOR45 13595 .word .LANCHOR92 13596 .word .LANCHOR93 13597 .word .LANCHOR94 13598 .word .LANCHOR167 13599 .word .LANCHOR159 13600 .word .LANCHOR160 13601 .word .LANCHOR113 13602 .word .LANCHOR114 13603 .word .LANCHOR58 13604 .word .LANCHOR40 13605 .word .LANCHOR84 13606 .word .LANCHOR0 13607 .word .LANCHOR70 13608 .word .LANCHOR67 13609 .word .LANCHOR131 13610 .word .LANCHOR54 13611 .word .LANCHOR210 13612 .word .LC5 13613 .word .LC6 13614 .word .LC7 13615 .word .LC38 13616 .word .LANCHOR183 13617 .word .LANCHOR188 13618 .word 1342177360 13619 .size FtlVpcTblFlush, .-FtlVpcTblFlush 13620 .section .text.FtlSuperblockPowerLostFix,"ax",%progbits 13621 .align 1 13622 .global FtlSuperblockPowerLostFix 13623 .syntax unified 13624 .thumb 13625 .thumb_func 13626 .fpu softvfp 13627 .type FtlSuperblockPowerLostFix, %function 13628FtlSuperblockPowerLostFix: 13629 @ args = 0, pretend = 0, frame = 40 13630 @ frame_needed = 0, uses_anonymous_args = 0 13631 ldr r3, .L1971 13632 push {r4, r5, r6, r7, r8, r10, lr} 13633 mov r4, r0 13634 sub sp, sp, #44 13635 ldr r8, [r3] 13636 cmp r8, #0 13637 bne .L1956 13638 ldr r3, .L1971+4 13639 ldrb r3, [r3] @ zero_extendqisi2 13640 cmp r3, #0 13641 beq .L1967 13642 ldrb r3, [r0, #8] @ zero_extendqisi2 13643 cmp r3, #1 13644 bne .L1967 13645 ldrh r6, [r0, #4] 13646 mov r8, r3 13647.L1958: 13648 mov r3, #-1 13649 ldr r2, .L1971+8 13650 str r3, [sp, #20] 13651 movs r7, #0 13652 ldr r3, .L1971+12 13653 ldr r5, [r2] 13654 mvn r2, #2 13655 ldr r10, .L1971+24 13656 ldr r3, [r3] 13657 str r5, [sp, #16] 13658 str r3, [sp, #12] 13659 str r2, [r5, #8] 13660 mvn r2, #1 13661 str r2, [r5, #12] 13662 ldrh r2, [r4] 13663 strh r7, [r5] @ movhi 13664 strh r2, [r5, #2] @ movhi 13665 movw r2, #61589 13666 str r2, [r3] 13667 add r2, r2, #304087040 13668 add r2, r2, #1269760 13669 addw r2, r2, #1507 13670 str r2, [r3, #4] 13671.L1959: 13672 adds r6, r6, #-1 13673 bcc .L1962 13674 ldrh r3, [r4, #4] 13675 cbnz r3, .L1960 13676.L1962: 13677 ldr r3, .L1971+16 13678 ldrh r1, [r4] 13679 ldrh r0, [r4, #4] 13680 ldr r2, [r3] 13681 ldrh r3, [r2, r1, lsl #1] 13682 subs r3, r3, r0 13683 strh r3, [r2, r1, lsl #1] @ movhi 13684 ldr r3, .L1971+20 13685 ldrh r3, [r3] 13686 strh r3, [r4, #2] @ movhi 13687 movs r3, #0 13688 strb r3, [r4, #6] 13689 strh r3, [r4, #4] @ movhi 13690.L1956: 13691 add sp, sp, #44 13692 @ sp needed 13693 pop {r4, r5, r6, r7, r8, r10, pc} 13694.L1967: 13695 movs r6, #12 13696 b .L1958 13697.L1960: 13698 mov r0, r4 13699 bl get_new_active_ppa 13700 str r0, [sp, #8] 13701 adds r0, r0, #1 13702 beq .L1962 13703 ldr r3, [r10] 13704 movs r1, #1 13705 add r0, sp, #4 13706 str r3, [r5, #4] 13707 adds r3, r3, #1 13708 adds r2, r3, #1 13709 mov r2, r8 13710 it eq 13711 moveq r3, r7 13712 str r3, [r10] 13713 movs r3, #0 13714 bl FlashProgPages 13715 ldrh r0, [r4] 13716 bl decrement_vpc_count 13717 b .L1959 13718.L1972: 13719 .align 2 13720.L1971: 13721 .word .LANCHOR77 13722 .word .LANCHOR8 13723 .word .LANCHOR188 13724 .word .LANCHOR183 13725 .word .LANCHOR84 13726 .word .LANCHOR53 13727 .word .LANCHOR160 13728 .size FtlSuperblockPowerLostFix, .-FtlSuperblockPowerLostFix 13729 .section .text.FtlLoadFactoryBbt,"ax",%progbits 13730 .align 1 13731 .global FtlLoadFactoryBbt 13732 .syntax unified 13733 .thumb 13734 .thumb_func 13735 .fpu softvfp 13736 .type FtlLoadFactoryBbt, %function 13737FtlLoadFactoryBbt: 13738 @ args = 0, pretend = 0, frame = 0 13739 @ frame_needed = 0, uses_anonymous_args = 0 13740 ldr r3, .L1983 13741 push {r4, r5, r6, r7, r8, r10, fp, lr} 13742 movs r6, #0 13743 ldr r5, .L1983+4 13744 ldr r3, [r3] 13745 ldr r7, .L1983+8 13746 ldr r10, .L1983+20 13747 str r3, [r5, #8] 13748 ldr r3, .L1983+12 13749 ldr r8, [r3] 13750 str r8, [r5, #12] 13751.L1974: 13752 ldr r3, .L1983+16 13753 ldrh r3, [r3] 13754 cmp r6, r3 13755 bcc .L1979 13756 movs r0, #0 13757 pop {r4, r5, r6, r7, r8, r10, fp, pc} 13758.L1979: 13759 ldrh r4, [r10] 13760 movw r3, #65535 13761 ldr fp, .L1983+4 13762 strh r3, [r7, #2]! @ movhi 13763 subs r4, r4, #1 13764 uxth r4, r4 13765.L1975: 13766 ldrh r3, [r10] 13767 sub r2, r3, #15 13768 cmp r2, r4 13769 bgt .L1977 13770 mla r3, r6, r3, r4 13771 movs r2, #1 13772 mov r1, r2 13773 mov r0, fp 13774 lsls r3, r3, #10 13775 str r3, [r5, #4] 13776 bl FlashReadPages 13777 ldr r3, [r5] 13778 adds r3, r3, #1 13779 beq .L1976 13780 ldrh r2, [r8] 13781 movw r3, #61664 13782 cmp r2, r3 13783 bne .L1976 13784 strh r4, [r7] @ movhi 13785.L1977: 13786 adds r6, r6, #1 13787 b .L1974 13788.L1976: 13789 subs r4, r4, #1 13790 uxth r4, r4 13791 b .L1975 13792.L1984: 13793 .align 2 13794.L1983: 13795 .word .LANCHOR183 13796 .word .LANCHOR202 13797 .word .LANCHOR75+10 13798 .word .LANCHOR188 13799 .word .LANCHOR45 13800 .word .LANCHOR51 13801 .size FtlLoadFactoryBbt, .-FtlLoadFactoryBbt 13802 .section .text.FtlGetLastWrittenPage,"ax",%progbits 13803 .align 1 13804 .global FtlGetLastWrittenPage 13805 .syntax unified 13806 .thumb 13807 .thumb_func 13808 .fpu softvfp 13809 .type FtlGetLastWrittenPage, %function 13810FtlGetLastWrittenPage: 13811 @ args = 0, pretend = 0, frame = 104 13812 @ frame_needed = 0, uses_anonymous_args = 0 13813 cmp r1, #1 13814 push {r4, r5, r6, r7, r8, lr} 13815 it eq 13816 ldreq r3, .L1997 13817 sub sp, sp, #104 13818 lsl r7, r0, #10 13819 mov r2, r1 13820 it ne 13821 ldrne r3, .L1997+4 13822 mov r8, r1 13823 movs r6, #0 13824 movs r1, #1 13825 add r0, sp, #4 13826 ldrh r5, [r3] 13827 add r3, sp, #40 13828 str r3, [sp, #16] 13829 str r6, [sp, #12] 13830 subs r5, r5, #1 13831 sxth r5, r5 13832 orr r3, r5, r7 13833 str r3, [sp, #8] 13834 bl FlashReadPages 13835 ldr r3, [sp, #40] 13836 adds r3, r3, #1 13837 bne .L1988 13838.L1989: 13839 cmp r6, r5 13840 ble .L1992 13841.L1988: 13842 mov r0, r5 13843 add sp, sp, #104 13844 @ sp needed 13845 pop {r4, r5, r6, r7, r8, pc} 13846.L1992: 13847 adds r3, r6, r5 13848 mov r2, r8 13849 add r3, r3, r3, lsr #31 13850 movs r1, #1 13851 add r0, sp, #4 13852 asrs r4, r3, #1 13853 sxth r3, r4 13854 orrs r3, r3, r7 13855 str r3, [sp, #8] 13856 bl FlashReadPages 13857 ldr r3, [sp, #40] 13858 adds r3, r3, #1 13859 bne .L1990 13860 ldr r3, [sp, #44] 13861 adds r3, r3, #1 13862 bne .L1990 13863 ldr r3, [sp, #4] 13864 adds r3, r3, #1 13865 beq .L1990 13866 subs r4, r4, #1 13867 sxth r5, r4 13868 b .L1989 13869.L1990: 13870 adds r4, r4, #1 13871 sxth r6, r4 13872 b .L1989 13873.L1998: 13874 .align 2 13875.L1997: 13876 .word .LANCHOR54 13877 .word .LANCHOR53 13878 .size FtlGetLastWrittenPage, .-FtlGetLastWrittenPage 13879 .section .text.FtlLoadBbt,"ax",%progbits 13880 .align 1 13881 .global FtlLoadBbt 13882 .syntax unified 13883 .thumb 13884 .thumb_func 13885 .fpu softvfp 13886 .type FtlLoadBbt, %function 13887FtlLoadBbt: 13888 @ args = 0, pretend = 0, frame = 0 13889 @ frame_needed = 0, uses_anonymous_args = 0 13890 push {r3, r4, r5, r6, r7, r8, r10, lr} 13891 ldr r8, .L2028+48 13892 ldr r4, .L2028 13893 ldr r3, [r8] 13894 ldr r7, .L2028+4 13895 mov r10, r4 13896 str r3, [r4, #8] 13897 ldr r3, .L2028+8 13898 ldr r6, [r3] 13899 str r6, [r4, #12] 13900 bl FtlBbtMemInit 13901 ldrh r5, [r7] 13902 subs r5, r5, #1 13903 uxth r5, r5 13904.L2000: 13905 ldrh r3, [r7] 13906 subs r3, r3, #47 13907 cmp r3, r5 13908 bgt .L2003 13909 lsls r3, r5, #10 13910 movs r2, #1 13911 mov r1, r2 13912 mov r0, r10 13913 str r3, [r4, #4] 13914 bl FlashReadPages 13915 ldr r3, [r4] 13916 adds r3, r3, #1 13917 bne .L2001 13918 ldr r3, [r4, #4] 13919 movs r2, #1 13920 mov r1, r2 13921 mov r0, r10 13922 adds r3, r3, #1 13923 str r3, [r4, #4] 13924 bl FlashReadPages 13925.L2001: 13926 ldr r3, [r4] 13927 adds r3, r3, #1 13928 beq .L2002 13929 ldrh r2, [r6] 13930 movw r3, #61649 13931 cmp r2, r3 13932 bne .L2002 13933 ldr r3, .L2028+12 13934 ldr r2, [r6, #4] 13935 strh r5, [r3] @ movhi 13936 str r2, [r3, #8] 13937 ldrh r2, [r6, #8] 13938 strh r2, [r3, #4] @ movhi 13939.L2003: 13940 ldr r5, .L2028+12 13941 movw r2, #65535 13942 ldrh r3, [r5] 13943 cmp r3, r2 13944 beq .L2017 13945 ldrh r3, [r5, #4] 13946 cmp r3, r2 13947 beq .L2007 13948 lsls r3, r3, #10 13949 movs r2, #1 13950 mov r1, r2 13951 ldr r0, .L2028 13952 str r3, [r4, #4] 13953 bl FlashReadPages 13954 ldr r3, [r4] 13955 adds r3, r3, #1 13956 beq .L2007 13957 ldrh r2, [r6] 13958 movw r3, #61649 13959 cmp r2, r3 13960 bne .L2007 13961 ldr r3, [r6, #4] 13962 ldr r2, [r5, #8] 13963 cmp r3, r2 13964 bls .L2007 13965 ldrh r2, [r5, #4] 13966 str r3, [r5, #8] 13967 ldrh r3, [r6, #8] 13968 strh r2, [r5] @ movhi 13969 strh r3, [r5, #4] @ movhi 13970.L2007: 13971 ldr r10, .L2028 13972 movs r1, #1 13973 ldrh r0, [r5] 13974 bl FtlGetLastWrittenPage 13975 sxth r7, r0 13976 adds r0, r0, #1 13977 strh r0, [r5, #2] @ movhi 13978.L2009: 13979 cmp r7, #0 13980 bge .L2012 13981 ldr r1, .L2028+16 13982 movw r2, #335 13983 ldr r0, .L2028+20 13984 bl printf 13985 ldr r1, .L2028+24 13986 ldr r0, .L2028+28 13987 bl printf 13988.L2011: 13989 ldrh r3, [r6, #10] 13990 ldrh r0, [r6, #12] 13991 strh r3, [r5, #6] @ movhi 13992 movw r3, #65535 13993 cmp r0, r3 13994 beq .L2014 13995 ldr r3, .L2028+32 13996 ldr r2, [r3] 13997 cmp r0, r2 13998 beq .L2014 13999 ldr r3, .L2028+36 14000 ldrh r3, [r3] 14001 lsrs r3, r3, #2 14002 cmp r2, r3 14003 bcs .L2014 14004 cmp r0, r3 14005 bcs .L2014 14006 bl FtlSysBlkNumInit 14007.L2014: 14008 ldr r6, .L2028+40 14009 movs r5, #0 14010 ldr r7, .L2028+44 14011 ldr r8, .L2028+52 14012.L2015: 14013 ldrh r3, [r7] 14014 cmp r5, r3 14015 bcc .L2016 14016 movs r0, #0 14017 pop {r3, r4, r5, r6, r7, r8, r10, pc} 14018.L2002: 14019 subs r5, r5, #1 14020 uxth r5, r5 14021 b .L2000 14022.L2012: 14023 ldrh r3, [r5] 14024 movs r2, #1 14025 mov r1, r2 14026 mov r0, r10 14027 orr r3, r7, r3, lsl #10 14028 str r3, [r4, #4] 14029 ldr r3, [r8] 14030 str r3, [r4, #8] 14031 bl FlashReadPages 14032 ldr r3, [r4] 14033 adds r3, r3, #1 14034 beq .L2010 14035 ldrh r2, [r6] 14036 movw r3, #61649 14037 cmp r2, r3 14038 beq .L2011 14039.L2010: 14040 subs r7, r7, #1 14041 sxth r7, r7 14042 b .L2009 14043.L2016: 14044 ldrh r2, [r8] 14045 ldr r1, [r4, #8] 14046 ldr r0, [r6, #4]! 14047 lsls r2, r2, #2 14048 mla r1, r5, r2, r1 14049 adds r5, r5, #1 14050 bl ftl_memcpy 14051 b .L2015 14052.L2017: 14053 mov r0, #-1 14054 pop {r3, r4, r5, r6, r7, r8, r10, pc} 14055.L2029: 14056 .align 2 14057.L2028: 14058 .word .LANCHOR202 14059 .word .LANCHOR51 14060 .word .LANCHOR188 14061 .word .LANCHOR75 14062 .word .LANCHOR211 14063 .word .LC5 14064 .word .LC6 14065 .word .LC7 14066 .word .LANCHOR37 14067 .word .LANCHOR41 14068 .word .LANCHOR75+24 14069 .word .LANCHOR45 14070 .word .LANCHOR183 14071 .word .LANCHOR123 14072 .size FtlLoadBbt, .-FtlLoadBbt 14073 .section .text.ftl_map_blk_gc,"ax",%progbits 14074 .align 1 14075 .global ftl_map_blk_gc 14076 .syntax unified 14077 .thumb 14078 .thumb_func 14079 .fpu softvfp 14080 .type ftl_map_blk_gc, %function 14081ftl_map_blk_gc: 14082 @ args = 0, pretend = 0, frame = 8 14083 @ frame_needed = 0, uses_anonymous_args = 0 14084 ldr r3, [r0, #24] 14085 push {r0, r1, r4, r5, r6, r7, r8, r10, fp, lr} 14086 mov r4, r0 14087 ldr r5, [r0, #12] 14088 str r3, [sp] 14089 bl ftl_free_no_use_map_blk 14090 ldrh r3, [r4, #10] 14091 ldrh r2, [r4, #8] 14092 subs r3, r3, #4 14093 cmp r2, r3 14094 blt .L2031 14095 uxth r0, r0 14096 ldrh r8, [r5, r0, lsl #1] 14097 cmp r8, #0 14098 beq .L2031 14099 ldr r3, [r4, #32] 14100 cbnz r3, .L2031 14101 movs r2, #1 14102 str r2, [r4, #32] 14103 strh r3, [r5, r0, lsl #1] @ movhi 14104 ldrh r3, [r4, #8] 14105 ldrh r2, [r4, #2] 14106 subs r3, r3, #1 14107 strh r3, [r4, #8] @ movhi 14108 ldr r3, .L2043 14109 ldrh r3, [r3] 14110 cmp r2, r3 14111 bcc .L2032 14112 mov r0, r4 14113 bl ftl_map_blk_alloc_new_blk 14114.L2032: 14115 ldr r5, .L2043+4 14116 movs r6, #0 14117.L2033: 14118 ldrh r3, [r4, #6] 14119 uxth r10, r6 14120 cmp r3, r10 14121 bhi .L2039 14122 movs r1, #1 14123 mov r0, r8 14124 bl FtlFreeSysBlkQueueIn 14125 movs r3, #0 14126 str r3, [r4, #32] 14127.L2031: 14128 ldr r3, .L2043 14129 ldrh r2, [r4, #2] 14130 ldrh r3, [r3] 14131 cmp r2, r3 14132 bcc .L2037 14133 mov r0, r4 14134 bl ftl_map_blk_alloc_new_blk 14135 b .L2037 14136.L2039: 14137 ldr r3, [sp] 14138 uxth fp, r6 14139 add r3, r3, fp, lsl #2 14140 str r3, [sp, #4] 14141 ldr r3, [sp] 14142 ldr r2, [r3, fp, lsl #2] 14143 cmp r8, r2, lsr #10 14144 bne .L2034 14145 ldr r3, .L2043+8 14146 str r2, [r5, #4] 14147 movs r2, #1 14148 ldr r0, .L2043+4 14149 ldr r1, [r3] 14150 str r1, [r5, #8] 14151 ldr r1, .L2043+12 14152 ldr r7, [r1] 14153 mov r1, r2 14154 str r7, [r5, #12] 14155 bl FlashReadPages 14156 ldrh r2, [r7, #8] 14157 cmp r2, r10 14158 beq .L2035 14159 ldr r1, .L2043+16 14160 movw r2, #661 14161 ldr r0, .L2043+20 14162 bl printf 14163 ldr r1, .L2043+24 14164 ldr r0, .L2043+28 14165 bl printf 14166.L2035: 14167 ldr r2, [r5] 14168 adds r2, r2, #1 14169 ldrh r2, [r7, #8] 14170 bne .L2036 14171.L2038: 14172 ldr r1, [sp, #4] 14173 movs r3, #0 14174 ldr r0, .L2043+32 14175 str r3, [r1] 14176 ldr r1, [r5, #4] 14177 bl printf 14178 ldr r3, .L2043+36 14179 movs r2, #1 14180 str r2, [r3] 14181.L2037: 14182 movs r0, #0 14183 add sp, sp, #8 14184 @ sp needed 14185 pop {r4, r5, r6, r7, r8, r10, fp, pc} 14186.L2036: 14187 cmp r2, r10 14188 bne .L2038 14189 ldrh r0, [r7] 14190 ldrh r1, [r4, #4] 14191 cmp r0, r1 14192 bne .L2038 14193 ldr r2, [r5, #8] 14194 mov r1, fp 14195 mov r0, r4 14196 bl FtlMapWritePage 14197.L2034: 14198 adds r6, r6, #1 14199 b .L2033 14200.L2044: 14201 .align 2 14202.L2043: 14203 .word .LANCHOR54 14204 .word .LANCHOR202 14205 .word .LANCHOR184 14206 .word .LANCHOR188 14207 .word .LANCHOR212 14208 .word .LC5 14209 .word .LC6 14210 .word .LC7 14211 .word .LC39 14212 .word .LANCHOR77 14213 .size ftl_map_blk_gc, .-ftl_map_blk_gc 14214 .section .text.Ftl_write_map_blk_to_last_page,"ax",%progbits 14215 .align 1 14216 .global Ftl_write_map_blk_to_last_page 14217 .syntax unified 14218 .thumb 14219 .thumb_func 14220 .fpu softvfp 14221 .type Ftl_write_map_blk_to_last_page, %function 14222Ftl_write_map_blk_to_last_page: 14223 @ args = 0, pretend = 0, frame = 0 14224 @ frame_needed = 0, uses_anonymous_args = 0 14225 ldr r3, .L2055 14226 push {r4, r5, r6, r7, r8, lr} 14227 mov r4, r0 14228 ldr r5, [r3] 14229 cbnz r5, .L2046 14230 ldrh r3, [r0] 14231 movw r2, #65535 14232 ldr r6, [r0, #12] 14233 cmp r3, r2 14234 bne .L2047 14235 ldrh r3, [r0, #8] 14236 cbz r3, .L2048 14237 ldr r1, .L2055+4 14238 movw r2, #697 14239 ldr r0, .L2055+8 14240 bl printf 14241 ldr r1, .L2055+12 14242 ldr r0, .L2055+16 14243 bl printf 14244.L2048: 14245 ldrh r3, [r4, #8] 14246 adds r3, r3, #1 14247 strh r3, [r4, #8] @ movhi 14248 bl FtlFreeSysBlkQueueOut 14249 movs r3, #0 14250 strh r0, [r6] @ movhi 14251 strh r3, [r4, #2] @ movhi 14252 strh r3, [r4] @ movhi 14253 ldr r3, [r4, #28] 14254 adds r3, r3, #1 14255 str r3, [r4, #28] 14256.L2046: 14257 movs r0, #0 14258 pop {r4, r5, r6, r7, r8, pc} 14259.L2047: 14260 ldrh r6, [r6, r3, lsl #1] 14261 movs r1, #255 14262 ldrh r3, [r0, #2] 14263 ldr r2, .L2055+20 14264 ldr r8, .L2055+32 14265 ldr r7, [r0, #24] 14266 orr r3, r3, r6, lsl #10 14267 ldr r0, [r8] 14268 str r3, [r2, #4] 14269 ldr r3, .L2055+24 14270 str r0, [r2, #8] 14271 ldr r3, [r3] 14272 str r3, [r2, #12] 14273 ldr r2, [r4, #28] 14274 str r2, [r3, #4] 14275 movw r2, #64245 14276 strh r2, [r3, #8] @ movhi 14277 ldrh r2, [r4, #4] 14278 strh r6, [r3, #2] @ movhi 14279 strh r2, [r3] @ movhi 14280 ldr r3, .L2055+28 14281 ldrh r2, [r3] 14282 lsls r2, r2, #3 14283 bl ftl_memset 14284 ldrh ip, [r4, #6] 14285 mov r3, r5 14286 ldr r1, [r8] 14287 mov r2, r5 14288.L2049: 14289 uxth r0, r3 14290 cmp ip, r0 14291 bhi .L2051 14292 movs r2, #1 14293 movs r3, #0 14294 mov r1, r2 14295 ldr r0, .L2055+20 14296 bl FlashProgPages 14297 ldrh r3, [r4, #2] 14298 mov r0, r4 14299 adds r3, r3, #1 14300 strh r3, [r4, #2] @ movhi 14301 bl ftl_map_blk_gc 14302 b .L2046 14303.L2051: 14304 ldr r0, [r7, r3, lsl #2] 14305 cmp r6, r0, lsr #10 14306 bne .L2050 14307 adds r2, r2, #1 14308 uxth r2, r2 14309 str r3, [r1, r2, lsl #3] 14310 add r5, r1, r2, lsl #3 14311 ldr r0, [r7, r3, lsl #2] 14312 str r0, [r5, #4] 14313.L2050: 14314 adds r3, r3, #1 14315 b .L2049 14316.L2056: 14317 .align 2 14318.L2055: 14319 .word .LANCHOR77 14320 .word .LANCHOR213 14321 .word .LC5 14322 .word .LC6 14323 .word .LC7 14324 .word .LANCHOR202 14325 .word .LANCHOR188 14326 .word .LANCHOR54 14327 .word .LANCHOR183 14328 .size Ftl_write_map_blk_to_last_page, .-Ftl_write_map_blk_to_last_page 14329 .section .text.FtlMapWritePage,"ax",%progbits 14330 .align 1 14331 .global FtlMapWritePage 14332 .syntax unified 14333 .thumb 14334 .thumb_func 14335 .fpu softvfp 14336 .type FtlMapWritePage, %function 14337FtlMapWritePage: 14338 @ args = 0, pretend = 0, frame = 16 14339 @ frame_needed = 0, uses_anonymous_args = 0 14340 push {r0, r1, r2, r3, r4, r5, r6, r7, r8, r10, fp, lr} 14341 mov r4, r0 14342 ldr r10, .L2079+40 14343 mov r8, r1 14344 movs r6, #0 14345 str r2, [sp, #4] 14346 mov fp, r10 14347.L2058: 14348 ldr r2, .L2079 14349 ldr r3, [r2] 14350 adds r3, r3, #1 14351 str r3, [r2] 14352 ldrh r3, [r10] 14353 ldrh r2, [r4, #2] 14354 subs r3, r3, #1 14355 cmp r2, r3 14356 bge .L2059 14357 ldrh r2, [r4] 14358 movw r3, #65535 14359 cmp r2, r3 14360 bne .L2060 14361.L2059: 14362 mov r0, r4 14363 bl Ftl_write_map_blk_to_last_page 14364.L2060: 14365 ldr r3, .L2079+4 14366 ldr r2, [r3] 14367 str r3, [sp, #8] 14368 cmp r2, #0 14369 bne .L2075 14370 ldrh r2, [r4] 14371 ldr r3, [r4, #12] 14372 ldrh r3, [r3, r2, lsl #1] 14373 cbnz r3, .L2062 14374 ldr r1, .L2079+8 14375 movw r2, #757 14376 ldr r0, .L2079+12 14377 bl printf 14378 ldr r1, .L2079+16 14379 ldr r0, .L2079+20 14380 bl printf 14381.L2062: 14382 ldrh r2, [r4] 14383 ldrh r3, [r4, #10] 14384 cmp r2, r3 14385 bcc .L2063 14386 ldr r1, .L2079+8 14387 movw r2, #758 14388 ldr r0, .L2079+12 14389 bl printf 14390 ldr r1, .L2079+16 14391 ldr r0, .L2079+20 14392 bl printf 14393.L2063: 14394 ldrh r2, [r4] 14395 movs r1, #0 14396 ldr r3, [r4, #12] 14397 ldr r5, .L2079+24 14398 ldrh r7, [r3, r2, lsl #1] 14399 movs r2, #16 14400 ldrh r3, [r4, #2] 14401 orr r3, r3, r7, lsl #10 14402 str r3, [r5, #4] 14403 ldr r3, [sp, #4] 14404 str r3, [r5, #8] 14405 ldr r3, .L2079+28 14406 ldr r0, [r3] 14407 str r0, [r5, #12] 14408 bl ftl_memset 14409 ldr r3, [r5, #12] 14410 mov r0, r5 14411 ldr r2, [r4, #28] 14412 strh r8, [r3, #8] @ movhi 14413 str r2, [r3, #4] 14414 ldrh r2, [r4, #4] 14415 strh r7, [r3, #2] @ movhi 14416 strh r2, [r3] @ movhi 14417 movs r3, #1 14418 mov r2, r3 14419 mov r1, r3 14420 bl FlashProgPages 14421 ldrh r2, [r4, #2] 14422 ldr r1, [r5] 14423 adds r2, r2, #1 14424 uxth r2, r2 14425 adds r3, r1, #1 14426 mov r3, r5 14427 strh r2, [r4, #2] @ movhi 14428 bne .L2064 14429 ldr r1, [r5, #4] 14430 adds r6, r6, #1 14431 ldr r0, .L2079+32 14432 uxth r6, r6 14433 str r5, [sp, #12] 14434 bl printf 14435 ldrh r2, [r4, #2] 14436 ldr r3, [sp, #12] 14437 cmp r2, #2 14438 ittt ls 14439 ldrhls r2, [fp] 14440 addls r2, r2, #-1 14441 strhls r2, [r4, #2] @ movhi 14442 cmp r6, #3 14443 bls .L2058 14444 mov r2, r6 14445 ldr r1, [r3, #4] 14446 ldr r0, .L2079+36 14447 bl printf 14448 ldr r2, [sp, #8] 14449 movs r3, #1 14450 str r3, [r2] 14451.L2075: 14452 movs r0, #0 14453 add sp, sp, #16 14454 @ sp needed 14455 pop {r4, r5, r6, r7, r8, r10, fp, pc} 14456.L2064: 14457 cbz r1, .L2067 14458 cmp r2, #1 14459 strh r7, [r4, #40] @ movhi 14460 bne .L2068 14461.L2069: 14462 movs r3, #0 14463 str r3, [r4, #36] 14464 b .L2058 14465.L2068: 14466 cmp r1, #256 14467.L2078: 14468 beq .L2069 14469 ldr r2, [r4, #36] 14470 cmp r2, #0 14471 bne .L2069 14472 ldr r2, [r3, #4] 14473 ldr r3, [r4, #24] 14474 str r2, [r3, r8, lsl #2] 14475 b .L2075 14476.L2067: 14477 cmp r2, #1 14478 b .L2078 14479.L2080: 14480 .align 2 14481.L2079: 14482 .word .LANCHOR165 14483 .word .LANCHOR77 14484 .word .LANCHOR214 14485 .word .LC5 14486 .word .LC6 14487 .word .LC7 14488 .word .LANCHOR202 14489 .word .LANCHOR188 14490 .word .LC40 14491 .word .LC41 14492 .word .LANCHOR54 14493 .size FtlMapWritePage, .-FtlMapWritePage 14494 .section .text.flush_l2p_region,"ax",%progbits 14495 .align 1 14496 .global flush_l2p_region 14497 .syntax unified 14498 .thumb 14499 .thumb_func 14500 .fpu softvfp 14501 .type flush_l2p_region, %function 14502flush_l2p_region: 14503 @ args = 0, pretend = 0, frame = 0 14504 @ frame_needed = 0, uses_anonymous_args = 0 14505 push {r3, r4, r5, lr} 14506 movs r4, #12 14507 ldr r5, .L2082 14508 muls r4, r0, r4 14509 ldr r0, .L2082+4 14510 ldr r3, [r5] 14511 adds r2, r3, r4 14512 ldrh r1, [r3, r4] 14513 ldr r2, [r2, #8] 14514 bl FtlMapWritePage 14515 ldr r3, [r5] 14516 movs r0, #0 14517 add r4, r4, r3 14518 ldr r3, [r4, #4] 14519 bic r3, r3, #-2147483648 14520 str r3, [r4, #4] 14521 pop {r3, r4, r5, pc} 14522.L2083: 14523 .align 2 14524.L2082: 14525 .word .LANCHOR97 14526 .word .LANCHOR127 14527 .size flush_l2p_region, .-flush_l2p_region 14528 .section .text.l2p_flush,"ax",%progbits 14529 .align 1 14530 .global l2p_flush 14531 .syntax unified 14532 .thumb 14533 .thumb_func 14534 .fpu softvfp 14535 .type l2p_flush, %function 14536l2p_flush: 14537 @ args = 0, pretend = 0, frame = 0 14538 @ frame_needed = 0, uses_anonymous_args = 0 14539 push {r4, r5, r6, lr} 14540 movs r4, #0 14541 ldr r5, .L2088 14542 ldr r6, .L2088+4 14543.L2085: 14544 ldrh r3, [r5] 14545 uxth r0, r4 14546 cmp r3, r0 14547 bhi .L2087 14548 movs r0, #0 14549 pop {r4, r5, r6, pc} 14550.L2087: 14551 ldr r2, [r6] 14552 uxth r3, r4 14553 movs r1, #12 14554 mla r3, r1, r3, r2 14555 ldr r3, [r3, #4] 14556 cmp r3, #0 14557 bge .L2086 14558 bl flush_l2p_region 14559.L2086: 14560 adds r4, r4, #1 14561 b .L2085 14562.L2089: 14563 .align 2 14564.L2088: 14565 .word .LANCHOR68 14566 .word .LANCHOR97 14567 .size l2p_flush, .-l2p_flush 14568 .section .text.FtlVendorPartWrite,"ax",%progbits 14569 .align 1 14570 .global FtlVendorPartWrite 14571 .syntax unified 14572 .thumb 14573 .thumb_func 14574 .fpu softvfp 14575 .type FtlVendorPartWrite, %function 14576FtlVendorPartWrite: 14577 @ args = 0, pretend = 0, frame = 56 14578 @ frame_needed = 0, uses_anonymous_args = 0 14579 ldr r3, .L2102 14580 push {r4, r5, r6, r7, r8, r10, fp, lr} 14581 sub sp, sp, #56 14582 str r2, [sp] 14583 adds r2, r0, r1 14584 mov r7, r0 14585 mov r5, r1 14586 ldrh r3, [r3] 14587 cmp r2, r3 14588 bhi .L2098 14589 ldr r3, .L2102+4 14590 mov r8, #0 14591 ldrh r6, [r3] 14592 lsr r6, r0, r6 14593 lsl fp, r6, #2 14594.L2092: 14595 cbnz r5, .L2097 14596.L2090: 14597 mov r0, r8 14598 add sp, sp, #56 14599 @ sp needed 14600 pop {r4, r5, r6, r7, r8, r10, fp, pc} 14601.L2097: 14602 ldr r3, .L2102+8 14603 mov r0, r7 14604 ldr r10, .L2102+24 14605 ldr r3, [r3] 14606 ldr r2, [r3, fp] 14607 ldr r3, .L2102+12 14608 str r2, [sp, #12] 14609 ldrh r3, [r3] 14610 mov r1, r3 14611 str r3, [sp, #8] 14612 bl __aeabi_uidivmod 14613 ldr r3, [sp, #8] 14614 ldr r2, [sp, #12] 14615 str r1, [sp, #4] 14616 subs r4, r3, r1 14617 uxth r4, r4 14618 cmp r5, r4 14619 it cc 14620 uxthcc r4, r5 14621 cbz r2, .L2094 14622 cmp r4, r3 14623 beq .L2094 14624 ldr r3, [r10] 14625 add r0, sp, #20 14626 str r2, [sp, #24] 14627 movs r2, #1 14628 mov r1, r2 14629 str r3, [sp, #28] 14630 movs r3, #0 14631 str r3, [sp, #32] 14632 bl FlashReadPages 14633.L2095: 14634 lsls r3, r4, #9 14635 ldr r0, [r10] 14636 subs r5, r5, r4 14637 mov r2, r3 14638 str r3, [sp, #8] 14639 ldm sp, {r1, r3} 14640 add r7, r7, r4 14641 add fp, fp, #4 14642 add r0, r0, r3, lsl #9 14643 bl ftl_memcpy 14644 ldr r2, [r10] 14645 mov r1, r6 14646 ldr r0, .L2102+16 14647 adds r6, r6, #1 14648 bl FtlMapWritePage 14649 ldr r3, [sp] 14650 adds r0, r0, #1 14651 it eq 14652 moveq r8, #-1 14653 mov r2, r3 14654 ldr r3, [sp, #8] 14655 add r2, r2, r3 14656 str r2, [sp] 14657 b .L2092 14658.L2094: 14659 ldr r3, .L2102+20 14660 movs r1, #0 14661 ldr r0, [r10] 14662 ldrh r2, [r3] 14663 bl ftl_memset 14664 b .L2095 14665.L2098: 14666 mov r8, #-1 14667 b .L2090 14668.L2103: 14669 .align 2 14670.L2102: 14671 .word .LANCHOR50 14672 .word .LANCHOR57 14673 .word .LANCHOR194 14674 .word .LANCHOR56 14675 .word .LANCHOR215 14676 .word .LANCHOR58 14677 .word .LANCHOR185 14678 .size FtlVendorPartWrite, .-FtlVendorPartWrite 14679 .section .text.Ftl_save_ext_data,"ax",%progbits 14680 .align 1 14681 .global Ftl_save_ext_data 14682 .syntax unified 14683 .thumb 14684 .thumb_func 14685 .fpu softvfp 14686 .type Ftl_save_ext_data, %function 14687Ftl_save_ext_data: 14688 @ args = 0, pretend = 0, frame = 0 14689 @ frame_needed = 0, uses_anonymous_args = 0 14690 @ link register save eliminated. 14691 ldr r2, .L2106 14692 ldr r3, .L2106+4 14693 ldr r1, [r2] 14694 cmp r1, r3 14695 bne .L2104 14696 ldr r3, .L2106+8 14697 movs r1, #1 14698 movs r0, #0 14699 str r3, [r2, #4] 14700 ldr r3, .L2106+12 14701 ldr r3, [r3] 14702 str r3, [r2, #88] 14703 ldr r3, .L2106+16 14704 ldr r3, [r3] 14705 str r3, [r2, #92] 14706 ldr r3, .L2106+20 14707 ldr r3, [r3] 14708 str r3, [r2, #8] 14709 ldr r3, .L2106+24 14710 ldr r3, [r3] 14711 str r3, [r2, #12] 14712 ldr r3, .L2106+28 14713 ldr r3, [r3] 14714 str r3, [r2, #16] 14715 ldr r3, .L2106+32 14716 ldr r3, [r3] 14717 str r3, [r2, #20] 14718 ldr r3, .L2106+36 14719 ldr r3, [r3] 14720 str r3, [r2, #28] 14721 ldr r3, .L2106+40 14722 ldr r3, [r3] 14723 str r3, [r2, #32] 14724 ldr r3, .L2106+44 14725 ldr r3, [r3] 14726 str r3, [r2, #36] 14727 ldr r3, .L2106+48 14728 ldr r3, [r3] 14729 str r3, [r2, #40] 14730 ldr r3, .L2106+52 14731 ldr r3, [r3] 14732 str r3, [r2, #44] 14733 ldr r3, .L2106+56 14734 ldr r3, [r3] 14735 str r3, [r2, #48] 14736 ldr r3, .L2106+60 14737 ldr r3, [r3] 14738 str r3, [r2, #60] 14739 ldr r3, .L2106+64 14740 ldr r3, [r3] 14741 str r3, [r2, #64] 14742 b FtlVendorPartWrite 14743.L2104: 14744 bx lr 14745.L2107: 14746 .align 2 14747.L2106: 14748 .word .LANCHOR138 14749 .word 1179929683 14750 .word 1342177360 14751 .word .LANCHOR216 14752 .word .LANCHOR217 14753 .word .LANCHOR161 14754 .word .LANCHOR162 14755 .word .LANCHOR166 14756 .word .LANCHOR165 14757 .word .LANCHOR168 14758 .word .LANCHOR80 14759 .word .LANCHOR163 14760 .word .LANCHOR164 14761 .word .LANCHOR169 14762 .word .LANCHOR170 14763 .word .LANCHOR158 14764 .word .LANCHOR157 14765 .size Ftl_save_ext_data, .-Ftl_save_ext_data 14766 .section .text.FtlEctTblFlush,"ax",%progbits 14767 .align 1 14768 .global FtlEctTblFlush 14769 .syntax unified 14770 .thumb 14771 .thumb_func 14772 .fpu softvfp 14773 .type FtlEctTblFlush, %function 14774FtlEctTblFlush: 14775 @ args = 0, pretend = 0, frame = 0 14776 @ frame_needed = 0, uses_anonymous_args = 0 14777 push {r3, lr} 14778 ldr r3, .L2115 14779 ldr r3, [r3] 14780 cmp r3, #0 14781 beq .L2113 14782 ldr r3, .L2115+4 14783 ldr r3, [r3] 14784 cmp r3, #39 14785 ite hi 14786 movhi r3, #32 14787 movls r3, #4 14788.L2109: 14789 ldr r1, .L2115+8 14790 ldrh r2, [r1] 14791 cmp r2, #31 14792 ittt ls 14793 addls r2, r2, #1 14794 movls r3, #1 14795 strhls r2, [r1] @ movhi 14796 ldr r2, .L2115+12 14797 cbnz r0, .L2111 14798 ldr r1, [r2] 14799 ldr r0, [r1, #20] 14800 ldr r1, [r1, #16] 14801 add r3, r3, r0 14802 cmp r1, r3 14803 bcc .L2112 14804.L2111: 14805 ldr r2, [r2] 14806 movs r0, #64 14807 ldr r3, [r2, #16] 14808 str r3, [r2, #20] 14809 ldr r3, .L2115+16 14810 str r3, [r2] 14811 ldr r3, .L2115+20 14812 ldrh r1, [r3] 14813 lsls r3, r1, #9 14814 str r3, [r2, #12] 14815 ldr r3, [r2, #8] 14816 adds r3, r3, #1 14817 str r3, [r2, #8] 14818 movs r3, #0 14819 str r3, [r2, #4] 14820 bl FtlVendorPartWrite 14821 bl Ftl_save_ext_data 14822.L2112: 14823 movs r0, #0 14824 pop {r3, pc} 14825.L2113: 14826 movs r3, #32 14827 b .L2109 14828.L2116: 14829 .align 2 14830.L2115: 14831 .word .LANCHOR28 14832 .word .LANCHOR170 14833 .word .LANCHOR218 14834 .word .LANCHOR191 14835 .word 1112818501 14836 .word .LANCHOR190 14837 .size FtlEctTblFlush, .-FtlEctTblFlush 14838 .section .text.allocate_new_data_superblock,"ax",%progbits 14839 .align 1 14840 .global allocate_new_data_superblock 14841 .syntax unified 14842 .thumb 14843 .thumb_func 14844 .fpu softvfp 14845 .type allocate_new_data_superblock, %function 14846allocate_new_data_superblock: 14847 @ args = 0, pretend = 0, frame = 0 14848 @ frame_needed = 0, uses_anonymous_args = 0 14849 ldr r3, .L2144 14850 push {r4, r5, r6, lr} 14851 mov r4, r0 14852 ldrh r5, [r0] 14853 ldrh r3, [r3] 14854 cmp r3, r5 14855 bcs .L2118 14856 ldr r1, .L2144+4 14857 movw r2, #3233 14858 ldr r0, .L2144+8 14859 bl printf 14860 ldr r1, .L2144+12 14861 ldr r0, .L2144+16 14862 bl printf 14863.L2118: 14864 ldr r3, .L2144+20 14865 ldr r3, [r3] 14866 cmp r3, #0 14867 bne .L2119 14868 movw r3, #65535 14869 cmp r5, r3 14870 beq .L2120 14871 ldr r3, .L2144+24 14872 mov r0, r5 14873 ldr r3, [r3] 14874 ldrh r3, [r3, r5, lsl #1] 14875 cbz r3, .L2121 14876 bl INSERT_DATA_LIST 14877.L2120: 14878 movs r3, #0 14879 strb r3, [r4, #8] 14880 ldr r3, .L2144+28 14881 cmp r4, r3 14882 beq .L2122 14883 ldr r3, .L2144+32 14884 ldrh r2, [r3] 14885 cmp r2, #1 14886 beq .L2122 14887 ldr r3, .L2144+36 14888 ldrb r3, [r3] @ zero_extendqisi2 14889 cbz r3, .L2123 14890.L2122: 14891 movs r3, #1 14892 strb r3, [r4, #8] 14893.L2124: 14894 ldr r6, .L2144+40 14895 movw r2, #65535 14896 ldrh r0, [r6] 14897 cmp r0, r2 14898 beq .L2129 14899 cmp r5, r0 14900 bne .L2130 14901 ldr r3, .L2144+24 14902 ldr r3, [r3] 14903 ldrh r3, [r3, r0, lsl #1] 14904 cbz r3, .L2131 14905.L2130: 14906 bl update_vpc_list 14907.L2131: 14908 movw r3, #65535 14909 strh r3, [r6] @ movhi 14910.L2129: 14911 mov r0, r4 14912 bl allocate_data_superblock 14913 bl l2p_flush 14914 movs r0, #0 14915 bl FtlEctTblFlush 14916 bl FtlVpcTblFlush 14917.L2119: 14918 movs r0, #0 14919 pop {r4, r5, r6, pc} 14920.L2121: 14921 bl INSERT_FREE_LIST 14922 b .L2120 14923.L2123: 14924 ldr r3, .L2144+44 14925 cmp r4, r3 14926 bne .L2124 14927 cmp r2, #3 14928 beq .L2126 14929 ldr r2, .L2144+48 14930 ldr r2, [r2] 14931 cmp r2, #1 14932 bne .L2127 14933.L2126: 14934 movs r2, #1 14935 strb r2, [r3, #8] 14936.L2127: 14937 ldr r2, .L2144+52 14938 ldr r2, [r2] 14939 cmp r2, #0 14940 beq .L2124 14941 ldr r2, .L2144+56 14942 ldr r2, [r2] 14943 cmp r2, #39 14944 itt ls 14945 movls r2, #1 14946 strbls r2, [r3, #8] 14947 b .L2124 14948.L2145: 14949 .align 2 14950.L2144: 14951 .word .LANCHOR40 14952 .word .LANCHOR219 14953 .word .LC5 14954 .word .LC6 14955 .word .LC7 14956 .word .LANCHOR77 14957 .word .LANCHOR84 14958 .word .LANCHOR93 14959 .word .LANCHOR44 14960 .word .LANCHOR8 14961 .word .LANCHOR133 14962 .word .LANCHOR92 14963 .word .LANCHOR158 14964 .word .LANCHOR28 14965 .word .LANCHOR170 14966 .size allocate_new_data_superblock, .-allocate_new_data_superblock 14967 .section .text.FtlVendorPartRead,"ax",%progbits 14968 .align 1 14969 .global FtlVendorPartRead 14970 .syntax unified 14971 .thumb 14972 .thumb_func 14973 .fpu softvfp 14974 .type FtlVendorPartRead, %function 14975FtlVendorPartRead: 14976 @ args = 0, pretend = 0, frame = 56 14977 @ frame_needed = 0, uses_anonymous_args = 0 14978 ldr r3, .L2156 14979 push {r4, r5, r6, r7, r8, r10, fp, lr} 14980 mov r10, r2 14981 adds r2, r0, r1 14982 sub sp, sp, #56 14983 mov r7, r0 14984 mov r6, r1 14985 ldrh r3, [r3] 14986 cmp r2, r3 14987 bhi .L2155 14988 ldr r3, .L2156+4 14989 mov r8, #0 14990 ldr fp, .L2156+28 14991 ldrh r5, [r3] 14992 lsr r5, r0, r5 14993 lsls r3, r5, #2 14994 str r3, [sp] 14995.L2148: 14996 cbnz r6, .L2154 14997.L2146: 14998 mov r0, r8 14999 add sp, sp, #56 15000 @ sp needed 15001 pop {r4, r5, r6, r7, r8, r10, fp, pc} 15002.L2154: 15003 ldr r3, .L2156+8 15004 mov r0, r7 15005 ldr r2, [sp] 15006 ldr r3, [r3] 15007 ldr r3, [r3, r2] 15008 ldr r2, .L2156+12 15009 str r3, [sp, #8] 15010 ldrh r4, [r2] 15011 mov r1, r4 15012 bl __aeabi_uidivmod 15013 subs r4, r4, r1 15014 ldr r3, [sp, #8] 15015 uxth r4, r4 15016 str r1, [sp, #4] 15017 cmp r6, r4 15018 it cc 15019 uxthcc r4, r6 15020 lsls r2, r4, #9 15021 str r2, [sp, #8] 15022 cmp r3, #0 15023 beq .L2150 15024 ldr r2, [fp] 15025 add r0, sp, #20 15026 str r3, [sp, #24] 15027 str r3, [sp, #12] 15028 str r2, [sp, #28] 15029 movs r2, #0 15030 str r2, [sp, #32] 15031 movs r2, #1 15032 mov r1, r2 15033 bl FlashReadPages 15034 ldr r2, [sp, #20] 15035 ldr r3, [sp, #12] 15036 adds r2, r2, #1 15037 ldr r2, .L2156+16 15038 it eq 15039 moveq r8, #-1 15040 ldr r2, [r2] 15041 cmp r2, #256 15042 bne .L2152 15043 mov r2, r3 15044 mov r1, r5 15045 ldr r0, .L2156+20 15046 bl printf 15047 ldr r2, [fp] 15048 mov r1, r5 15049 ldr r0, .L2156+24 15050 bl FtlMapWritePage 15051.L2152: 15052 ldr r1, [fp] 15053 lsls r2, r4, #9 15054 ldr r3, [sp, #4] 15055 mov r0, r10 15056 add r1, r1, r3, lsl #9 15057 bl ftl_memcpy 15058.L2153: 15059 ldr r3, [sp, #8] 15060 adds r5, r5, #1 15061 subs r6, r6, r4 15062 add r7, r7, r4 15063 add r10, r10, r3 15064 ldr r3, [sp] 15065 adds r3, r3, #4 15066 str r3, [sp] 15067 b .L2148 15068.L2150: 15069 lsls r2, r4, #9 15070 mov r1, r3 15071 mov r0, r10 15072 bl ftl_memset 15073 b .L2153 15074.L2155: 15075 mov r8, #-1 15076 b .L2146 15077.L2157: 15078 .align 2 15079.L2156: 15080 .word .LANCHOR50 15081 .word .LANCHOR57 15082 .word .LANCHOR194 15083 .word .LANCHOR56 15084 .word .LANCHOR202 15085 .word .LC42 15086 .word .LANCHOR215 15087 .word .LANCHOR185 15088 .size FtlVendorPartRead, .-FtlVendorPartRead 15089 .section .text.FtlLoadEctTbl,"ax",%progbits 15090 .align 1 15091 .global FtlLoadEctTbl 15092 .syntax unified 15093 .thumb 15094 .thumb_func 15095 .fpu softvfp 15096 .type FtlLoadEctTbl, %function 15097FtlLoadEctTbl: 15098 @ args = 0, pretend = 0, frame = 0 15099 @ frame_needed = 0, uses_anonymous_args = 0 15100 push {r3, r4, r5, lr} 15101 movs r0, #64 15102 ldr r4, .L2160 15103 ldr r5, .L2160+4 15104 ldr r2, [r4] 15105 ldrh r1, [r5] 15106 bl FtlVendorPartRead 15107 ldr r3, [r4] 15108 ldr r2, [r3] 15109 ldr r3, .L2160+8 15110 cmp r2, r3 15111 beq .L2159 15112 ldr r1, .L2160+12 15113 ldr r0, .L2160+16 15114 bl printf 15115 ldrh r2, [r5] 15116 movs r1, #0 15117 ldr r0, [r4] 15118 lsls r2, r2, #9 15119 bl ftl_memset 15120.L2159: 15121 movs r0, #0 15122 pop {r3, r4, r5, pc} 15123.L2161: 15124 .align 2 15125.L2160: 15126 .word .LANCHOR191 15127 .word .LANCHOR190 15128 .word 1112818501 15129 .word .LC43 15130 .word .LC7 15131 .size FtlLoadEctTbl, .-FtlLoadEctTbl 15132 .section .text.Ftl_load_ext_data,"ax",%progbits 15133 .align 1 15134 .global Ftl_load_ext_data 15135 .syntax unified 15136 .thumb 15137 .thumb_func 15138 .fpu softvfp 15139 .type Ftl_load_ext_data, %function 15140Ftl_load_ext_data: 15141 @ args = 0, pretend = 0, frame = 0 15142 @ frame_needed = 0, uses_anonymous_args = 0 15143 push {r3, r4, r5, lr} 15144 movs r1, #1 15145 ldr r4, .L2166 15146 movs r0, #0 15147 ldr r5, .L2166+4 15148 mov r2, r4 15149 bl FtlVendorPartRead 15150 ldr r3, [r4] 15151 cmp r3, r5 15152 beq .L2163 15153 mov r2, #512 15154 movs r1, #0 15155 mov r0, r4 15156 bl ftl_memset 15157 str r5, [r4] 15158.L2163: 15159 ldr r3, [r4] 15160 cmp r3, r5 15161 ldr r5, .L2166+8 15162 bne .L2164 15163 ldr r2, [r4, #88] 15164 ldr r3, .L2166+12 15165 str r2, [r3] 15166 ldr r2, [r4, #92] 15167 ldr r3, .L2166+16 15168 str r2, [r3] 15169 ldr r2, [r4, #8] 15170 ldr r3, .L2166+20 15171 str r2, [r3] 15172 ldr r2, [r4, #12] 15173 ldr r3, .L2166+24 15174 str r2, [r3] 15175 ldr r2, [r4, #16] 15176 ldr r3, .L2166+28 15177 str r2, [r3] 15178 ldr r2, [r4, #20] 15179 ldr r3, .L2166+32 15180 str r2, [r3] 15181 ldr r3, [r4, #28] 15182 ldr r2, [r4, #32] 15183 str r3, [r5] 15184 ldr r3, .L2166+36 15185 str r2, [r3] 15186 ldr r2, [r4, #36] 15187 ldr r3, .L2166+40 15188 str r2, [r3] 15189 ldr r2, [r4, #40] 15190 ldr r3, .L2166+44 15191 str r2, [r3] 15192 ldr r2, [r4, #44] 15193 ldr r3, .L2166+48 15194 str r2, [r3] 15195 ldr r2, [r4, #48] 15196 ldr r3, .L2166+52 15197 str r2, [r3] 15198 ldr r2, [r4, #60] 15199 ldr r3, .L2166+56 15200 str r2, [r3] 15201.L2164: 15202 ldr r3, .L2166+60 15203 movs r2, #0 15204 str r2, [r3] 15205 ldr r2, [r4, #68] 15206 ldr r3, .L2166+64 15207 cmp r2, r3 15208 bne .L2165 15209 ldr r3, .L2166+68 15210 movs r2, #1 15211 ldr r1, .L2166+72 15212 ldr r0, .L2166+76 15213 str r2, [r3] 15214 bl printf 15215.L2165: 15216 ldr r3, .L2166+80 15217 ldr r1, .L2166+84 15218 ldrh r2, [r3] 15219 ldr r3, .L2166+88 15220 ldrh r1, [r1] 15221 ldr r0, [r3] 15222 ldr r3, [r5] 15223 mla r0, r0, r2, r3 15224 bl __aeabi_uidiv 15225 ldr r3, .L2166+92 15226 str r0, [r3] 15227 pop {r3, r4, r5, pc} 15228.L2167: 15229 .align 2 15230.L2166: 15231 .word .LANCHOR138 15232 .word 1179929683 15233 .word .LANCHOR168 15234 .word .LANCHOR216 15235 .word .LANCHOR217 15236 .word .LANCHOR161 15237 .word .LANCHOR162 15238 .word .LANCHOR166 15239 .word .LANCHOR165 15240 .word .LANCHOR80 15241 .word .LANCHOR163 15242 .word .LANCHOR164 15243 .word .LANCHOR169 15244 .word .LANCHOR170 15245 .word .LANCHOR158 15246 .word .LANCHOR157 15247 .word 305432421 15248 .word .LANCHOR28 15249 .word .LC44 15250 .word .LC7 15251 .word .LANCHOR48 15252 .word .LANCHOR40 15253 .word .LANCHOR167 15254 .word .LANCHOR205 15255 .size Ftl_load_ext_data, .-Ftl_load_ext_data 15256 .section .text.ftl_vendor_read,"ax",%progbits 15257 .align 1 15258 .global ftl_vendor_read 15259 .syntax unified 15260 .thumb 15261 .thumb_func 15262 .fpu softvfp 15263 .type ftl_vendor_read, %function 15264ftl_vendor_read: 15265 @ args = 0, pretend = 0, frame = 0 15266 @ frame_needed = 0, uses_anonymous_args = 0 15267 @ link register save eliminated. 15268 add r0, r0, #256 15269 b FtlVendorPartRead 15270 .size ftl_vendor_read, .-ftl_vendor_read 15271 .section .text.ftl_sys_read,"ax",%progbits 15272 .align 1 15273 .global ftl_sys_read 15274 .syntax unified 15275 .thumb 15276 .thumb_func 15277 .fpu softvfp 15278 .type ftl_sys_read, %function 15279ftl_sys_read: 15280 @ args = 0, pretend = 0, frame = 0 15281 @ frame_needed = 0, uses_anonymous_args = 0 15282 @ link register save eliminated. 15283 add r0, r0, #512 15284 b FtlVendorPartRead 15285 .size ftl_sys_read, .-ftl_sys_read 15286 .section .text.FtlMapBlkWriteDumpData,"ax",%progbits 15287 .align 1 15288 .global FtlMapBlkWriteDumpData 15289 .syntax unified 15290 .thumb 15291 .thumb_func 15292 .fpu softvfp 15293 .type FtlMapBlkWriteDumpData, %function 15294FtlMapBlkWriteDumpData: 15295 @ args = 0, pretend = 0, frame = 0 15296 @ frame_needed = 0, uses_anonymous_args = 0 15297 push {r3, r4, r5, r6, r7, r8, r10, lr} 15298 mov r4, r0 15299 ldr r3, [r0, #36] 15300 cmp r3, #0 15301 beq .L2170 15302 movs r3, #0 15303 ldrh r6, [r0, #6] 15304 str r3, [r0, #36] 15305 ldr r3, .L2184 15306 ldr r10, [r0, #24] 15307 ldr r3, [r3] 15308 cmp r3, #0 15309 bne .L2170 15310 ldr r3, .L2184+4 15311 ldr r5, .L2184+8 15312 ldr r3, [r3] 15313 mov r7, r5 15314 str r3, [r5, #8] 15315 ldr r3, .L2184+12 15316 ldr r8, [r3] 15317 ldrh r3, [r0, #2] 15318 str r8, [r5, #12] 15319 cbz r3, .L2174 15320 ldr r2, .L2184+16 15321 ldrh r2, [r2] 15322 subs r2, r2, #1 15323 cmp r3, r2 15324 bge .L2174 15325 ldrh r2, [r0] 15326 movw r1, #65535 15327 cmp r2, r1 15328 beq .L2174 15329 ldr r1, [r0, #12] 15330 subs r3, r3, #1 15331 mov r0, r5 15332 ldrh r2, [r1, r2, lsl #1] 15333 orr r3, r3, r2, lsl #10 15334 movs r2, #1 15335 mov r1, r2 15336 str r3, [r5, #4] 15337 bl FlashReadPages 15338 ldr r3, [r5] 15339 adds r3, r3, #1 15340 beq .L2174 15341 ldr r3, [r4, #24] 15342 ldrh r1, [r8, #8] 15343 ldr r2, [r3, r1, lsl #2] 15344 ldr r3, [r5, #4] 15345 cmp r2, r3 15346 bne .L2174 15347 ldr r2, [r5, #8] 15348.L2183: 15349 mov r0, r4 15350 pop {r3, r4, r5, r6, r7, r8, r10, lr} 15351 b FtlMapWritePage 15352.L2174: 15353 subs r6, r6, #1 15354 uxth r6, r6 15355 ldr r3, [r10, r6, lsl #2] 15356 str r3, [r7, #4] 15357 cbz r3, .L2175 15358 movs r2, #1 15359 ldr r0, .L2184+8 15360 mov r1, r2 15361 bl FlashReadPages 15362.L2176: 15363 ldr r2, [r7, #8] 15364 mov r1, r6 15365 b .L2183 15366.L2175: 15367 ldr r3, .L2184+20 15368 movs r1, #255 15369 ldr r0, [r7, #8] 15370 ldrh r2, [r3] 15371 bl ftl_memset 15372 b .L2176 15373.L2170: 15374 pop {r3, r4, r5, r6, r7, r8, r10, pc} 15375.L2185: 15376 .align 2 15377.L2184: 15378 .word .LANCHOR77 15379 .word .LANCHOR184 15380 .word .LANCHOR202 15381 .word .LANCHOR188 15382 .word .LANCHOR54 15383 .word .LANCHOR58 15384 .size FtlMapBlkWriteDumpData, .-FtlMapBlkWriteDumpData 15385 .section .text.FtlScanSysBlk,"ax",%progbits 15386 .align 1 15387 .global FtlScanSysBlk 15388 .syntax unified 15389 .thumb 15390 .thumb_func 15391 .fpu softvfp 15392 .type FtlScanSysBlk, %function 15393FtlScanSysBlk: 15394 @ args = 0, pretend = 0, frame = 32 15395 @ frame_needed = 0, uses_anonymous_args = 0 15396 push {r4, r5, r6, r7, r8, r10, fp, lr} 15397 movs r4, #0 15398 ldr r5, .L2268 15399 sub sp, sp, #32 15400 mov r1, r4 15401 ldr r3, .L2268+4 15402 ldr r2, [r5] 15403 ldr r6, .L2268+8 15404 strh r4, [r3] @ movhi 15405 ldr r3, .L2268+12 15406 lsls r2, r2, #2 15407 strh r4, [r6] @ movhi 15408 ldr r7, .L2268+16 15409 ldr r0, [r3] 15410 bl ftl_memset 15411 ldr r2, [r5] 15412 mov r1, r4 15413 ldr r3, .L2268+20 15414 lsls r2, r2, #1 15415 ldr r0, [r3] 15416 bl ftl_memset 15417 ldrh r2, [r7] 15418 mov r1, r4 15419 ldr r3, .L2268+24 15420 lsls r2, r2, #2 15421 ldr r0, [r3] 15422 bl ftl_memset 15423 ldrh r2, [r7] 15424 mov r1, r4 15425 ldr r3, .L2268+28 15426 lsls r2, r2, #1 15427 ldr r0, [r3] 15428 bl ftl_memset 15429 movs r2, #12 15430 movs r1, #255 15431 ldr r0, .L2268+32 15432 bl ftl_memset 15433 ldr r3, .L2268+36 15434 str r6, [sp, #12] 15435 str r5, [sp, #16] 15436 ldrh r3, [r3] 15437 str r3, [sp, #4] 15438.L2187: 15439 ldr r3, .L2268+40 15440 ldr r2, [sp, #4] 15441 ldrh r3, [r3] 15442 cmp r3, r2 15443 bls .L2229 15444 ldr r3, .L2268+44 15445 movs r5, #0 15446 ldr r1, .L2268+48 15447 mov fp, r5 15448 movs r7, #36 15449 ldrh r8, [r3] 15450 ldr r3, .L2268+52 15451 ldr r2, [r1] 15452 ldr r1, .L2268+56 15453 ldr r6, [r3] 15454 ldr r3, .L2268+60 15455 str r2, [sp, #8] 15456 ldrh r10, [r1] 15457 ldr r3, [r3] 15458 ldr r2, .L2268+64 15459 b .L2230 15460.L2189: 15461 ldrb r0, [r2, r5] @ zero_extendqisi2 15462 ldr r1, [sp, #4] 15463 str r3, [sp, #28] 15464 str r2, [sp, #24] 15465 bl V2P_block 15466 str r0, [sp, #20] 15467 bl FtlBbmIsBadBlock 15468 ldr r2, [sp, #24] 15469 ldr r3, [sp, #28] 15470 cbnz r0, .L2188 15471 ldr r1, [sp, #20] 15472 mla r0, r7, fp, r6 15473 ldr r4, [sp, #8] 15474 lsls r1, r1, #10 15475 str r3, [r0, #8] 15476 str r1, [r0, #4] 15477 mul r1, r10, fp 15478 bic r1, r1, #3 15479 add r1, r1, r4 15480 str r1, [r0, #12] 15481 add r1, fp, #1 15482 uxth fp, r1 15483.L2188: 15484 adds r5, r5, #1 15485.L2230: 15486 uxth r1, r5 15487 cmp r8, r1 15488 bhi .L2189 15489 cmp fp, #0 15490 bne .L2190 15491.L2228: 15492 ldr r3, [sp, #4] 15493 adds r3, r3, #1 15494 uxth r3, r3 15495 str r3, [sp, #4] 15496 b .L2187 15497.L2190: 15498 movs r7, #0 15499 movs r2, #1 15500 mov r1, fp 15501 mov r0, r6 15502 bl FlashReadPages 15503.L2191: 15504 uxth r3, r7 15505 cmp fp, r3 15506 bls .L2228 15507 ldr r3, .L2268+52 15508 mov r8, #36 15509 mul r8, r8, r7 15510 ldr r3, [r3] 15511 add r2, r3, r8 15512 ldr r3, [r3, r8] 15513 ldr r5, [r2, #4] 15514 ldr r6, [r2, #12] 15515 adds r3, r3, #1 15516 ubfx r5, r5, #10, #16 15517 bne .L2194 15518 mov r10, #16 15519.L2196: 15520 ldr r3, .L2268+52 15521 movs r2, #1 15522 mov r1, r2 15523 ldr r0, [r3] 15524 add r0, r0, r8 15525 ldr r3, [r0, #4] 15526 adds r3, r3, #1 15527 str r3, [r0, #4] 15528 bl FlashReadPages 15529 ldrh r2, [r6] 15530 movw r3, #65535 15531 cmp r2, r3 15532 ldr r3, .L2268+52 15533 ldr r3, [r3] 15534 bne .L2193 15535 mov r2, #-1 15536 str r2, [r3, r8] 15537 ldr r3, .L2268+52 15538 ldr r3, [r3] 15539 ldr r3, [r3, r8] 15540 cmp r3, r2 15541 beq .L2195 15542.L2194: 15543 ldr r3, .L2268+68 15544 ldr r2, [r3] 15545 ldr r3, [r6, #4] 15546 adds r1, r2, #1 15547 beq .L2197 15548 cmp r2, r3 15549 bhi .L2198 15550.L2197: 15551 adds r2, r3, #1 15552 ittt ne 15553 ldrne r1, .L2268+68 15554 addne r2, r3, #1 15555 strne r2, [r1] 15556.L2198: 15557 ldrh r2, [r6] 15558 movw r1, #61604 15559 cmp r2, r1 15560 beq .L2200 15561 bhi .L2201 15562 movw r3, #61574 15563 cmp r2, r3 15564 beq .L2202 15565.L2199: 15566 adds r7, r7, #1 15567 b .L2191 15568.L2193: 15569 ldr r3, [r3, r8] 15570 adds r3, r3, #1 15571 bne .L2194 15572 add r10, r10, #-1 15573 uxth r10, r10 15574 cmp r10, #0 15575 bne .L2196 15576.L2195: 15577 ldr r3, .L2268+72 15578 ldrb r1, [r3] @ zero_extendqisi2 15579 cbnz r1, .L2267 15580.L2226: 15581 mov r0, r5 15582 bl FtlFreeSysBlkQueueIn 15583 b .L2199 15584.L2201: 15585 movw r3, #61634 15586 cmp r2, r3 15587 beq .L2203 15588 movw r3, #65535 15589 cmp r2, r3 15590 bne .L2199 15591.L2267: 15592 movs r1, #0 15593 b .L2226 15594.L2203: 15595 ldr r3, .L2268+8 15596 ldrh r2, [r3] 15597 ldr r3, .L2268 15598 ldr r3, [r3] 15599 cmp r2, r3 15600 bls .L2205 15601 ldr r1, .L2268+76 15602 movw r2, #1297 15603 ldr r0, .L2268+80 15604 bl printf 15605 ldr r1, .L2268+84 15606 ldr r0, .L2268+88 15607 bl printf 15608.L2205: 15609 ldr r3, [sp, #16] 15610 ldr r2, [sp, #12] 15611 ldr r1, [r3] 15612 ldrh r0, [r2] 15613 ldr r2, .L2268+12 15614 uxth r10, r1 15615 ldr ip, [r2] 15616 add r3, r10, #-1 15617 sub r10, r10, r0 15618 add r10, r10, #-1 15619 sxth r3, r3 15620 sxth r10, r10 15621.L2206: 15622 cmp r3, r10 15623 bgt .L2212 15624 cmp r3, #0 15625 bge .L2245 15626 b .L2199 15627.L2212: 15628 ldr r2, [ip, r3, lsl #2] 15629 add r8, ip, r3, lsl #2 15630 ldr r4, [r6, #4] 15631 cmp r4, r2 15632 bls .L2207 15633 ldr r2, [ip] 15634 cbnz r2, .L2208 15635 cmp r1, r0 15636 ittt ne 15637 ldrne r2, .L2268+8 15638 addne r0, r0, #1 15639 strhne r0, [r2] @ movhi 15640.L2208: 15641 ldr r2, .L2268+20 15642 uxth r10, r3 15643 ldr r0, [r2] 15644 movs r2, #0 15645.L2209: 15646 uxth lr, r2 15647 sxth r1, r2 15648 cmp r10, lr 15649 bhi .L2210 15650 ldr r2, [r6, #4] 15651 cmp r3, #0 15652 str r2, [r8] 15653 strh r5, [r0, r3, lsl #1] @ movhi 15654 blt .L2199 15655 ldr r2, .L2268+8 15656 ldrh r0, [r2] 15657 ldr r2, .L2268 15658 ldr r2, [r2] 15659 subs r2, r2, r0 15660 subs r2, r2, #1 15661 sxth r2, r2 15662 cmp r3, r2 15663 bgt .L2199 15664.L2245: 15665 ldr r2, .L2268+8 15666 adds r0, r0, #1 15667 strh r0, [r2] @ movhi 15668 ldr r2, [r6, #4] 15669 str r2, [ip, r3, lsl #2] 15670 ldr r2, .L2268+20 15671.L2265: 15672 ldr r2, [r2] 15673 strh r5, [r2, r3, lsl #1] @ movhi 15674 b .L2199 15675.L2210: 15676 add lr, ip, r1, lsl #2 15677 adds r2, r2, #1 15678 ldr r4, [lr, #4] 15679 add lr, r0, r1, lsl #1 15680 ldrh lr, [lr, #2] 15681 str r4, [ip, r1, lsl #2] 15682 strh lr, [r0, r1, lsl #1] @ movhi 15683 b .L2209 15684.L2207: 15685 subs r3, r3, #1 15686 sxth r3, r3 15687 b .L2206 15688.L2269: 15689 .align 2 15690.L2268: 15691 .word .LANCHOR65 15692 .word .LANCHOR71 15693 .word .LANCHOR128 15694 .word .LANCHOR130 15695 .word .LANCHOR62 15696 .word .LANCHOR129 15697 .word .LANCHOR193 15698 .word .LANCHOR72 15699 .word .LANCHOR209 15700 .word .LANCHOR40 15701 .word .LANCHOR41 15702 .word .LANCHOR38 15703 .word .LANCHOR106 15704 .word .LANCHOR180 15705 .word .LANCHOR59 15706 .word .LANCHOR105 15707 .word .LANCHOR47 15708 .word .LANCHOR159 15709 .word .LANCHOR8 15710 .word .LANCHOR220 15711 .word .LC5 15712 .word .LC6 15713 .word .LC7 15714.L2202: 15715 ldr r8, .L2270+20 15716 ldr r10, .L2270+28 15717 ldrh r2, [r8] 15718 ldrh r3, [r10] 15719 cmp r2, r3 15720 bls .L2215 15721 ldr r1, .L2270 15722 mov r2, #1344 15723 ldr r0, .L2270+4 15724 bl printf 15725 ldr r1, .L2270+8 15726 ldr r0, .L2270+12 15727 bl printf 15728.L2215: 15729 ldr r2, .L2270+16 15730 ldrh lr, [r10] 15731 ldrh ip, [r8] 15732 ldr r0, [r2] 15733 add r10, lr, #-1 15734 sxth r3, r10 15735 sub r10, r10, ip 15736.L2216: 15737 cmp r3, r10 15738 ble .L2221 15739 ldr r1, [r6, #4] 15740 add r8, r0, r3, lsl #2 15741 ldr r2, [r0, r3, lsl #2] 15742 cmp r1, r2 15743 bls .L2217 15744 ldr r2, [r0] 15745 cbnz r2, .L2218 15746 cmp lr, ip 15747 ittt ne 15748 ldrne r2, .L2270+20 15749 addne ip, ip, #1 15750 strhne ip, [r2] @ movhi 15751.L2218: 15752 ldr r2, .L2270+24 15753 uxth r10, r3 15754 ldr ip, [r2] 15755 movs r2, #0 15756.L2219: 15757 uxth lr, r2 15758 sxth r1, r2 15759 cmp r10, lr 15760 bhi .L2220 15761 ldr r2, [r6, #4] 15762 str r2, [r8] 15763 strh r5, [ip, r3, lsl #1] @ movhi 15764.L2221: 15765 cmp r3, #0 15766 blt .L2199 15767 ldr r2, .L2270+28 15768 ldr ip, .L2270+20 15769 ldrh r2, [r2] 15770 ldrh r1, [ip] 15771 subs r2, r2, #1 15772 subs r2, r2, r1 15773 sxth r2, r2 15774 cmp r3, r2 15775 bgt .L2199 15776 ldr r2, [r6, #4] 15777 adds r1, r1, #1 15778 strh r1, [ip] @ movhi 15779 str r2, [r0, r3, lsl #2] 15780 ldr r2, .L2270+24 15781 b .L2265 15782.L2220: 15783 add lr, r0, r1, lsl #2 15784 adds r2, r2, #1 15785 ldr r4, [lr, #4] 15786 add lr, ip, r1, lsl #1 15787 ldrh lr, [lr, #2] 15788 str r4, [r0, r1, lsl #2] 15789 strh lr, [ip, r1, lsl #1] @ movhi 15790 b .L2219 15791.L2217: 15792 subs r3, r3, #1 15793 sxth r3, r3 15794 b .L2216 15795.L2200: 15796 ldr r8, .L2270+48 15797 movw r2, #65535 15798 ldrh r1, [r8] 15799 cmp r1, r2 15800 bne .L2223 15801.L2266: 15802 strh r5, [r8] @ movhi 15803 str r3, [r8, #8] 15804 b .L2199 15805.L2223: 15806 ldrh r0, [r8, #4] 15807 cmp r0, r2 15808 beq .L2224 15809 movs r1, #1 15810 bl FtlFreeSysBlkQueueIn 15811.L2224: 15812 ldr r3, [r6, #4] 15813 ldr r2, [r8, #8] 15814 cmp r2, r3 15815 bcs .L2225 15816 ldrh r2, [r8] 15817 strh r2, [r8, #4] @ movhi 15818 b .L2266 15819.L2225: 15820 strh r5, [r8, #4] @ movhi 15821 b .L2199 15822.L2229: 15823 ldr r3, .L2270+32 15824 ldr r2, [r3] 15825 ldrh r3, [r2] 15826 cbz r3, .L2231 15827.L2234: 15828 ldr r3, .L2270+24 15829 ldr r4, [r3] 15830 ldrh r2, [r4] 15831 cmp r2, #0 15832 beq .L2232 15833.L2233: 15834 ldr r3, .L2270+36 15835 ldrh r2, [r3] 15836 ldr r3, .L2270+40 15837 ldr r3, [r3] 15838 cmp r2, r3 15839 bls .L2264 15840 ldr r1, .L2270 15841 movw r2, #1478 15842 ldr r0, .L2270+4 15843 bl printf 15844 ldr r1, .L2270+8 15845 ldr r0, .L2270+12 15846 bl printf 15847.L2264: 15848 movs r0, #0 15849 add sp, sp, #32 15850 @ sp needed 15851 pop {r4, r5, r6, r7, r8, r10, fp, pc} 15852.L2231: 15853 ldr r1, .L2270+36 15854 ldrh r1, [r1] 15855 cmp r1, #0 15856 beq .L2234 15857 ldr r5, .L2270+40 15858 ldr r0, [r5] 15859.L2235: 15860 sxth r1, r3 15861 cmp r1, r0 15862 bcs .L2234 15863 ldrh r4, [r2, r1, lsl #1] 15864 adds r3, r3, #1 15865 cmp r4, #0 15866 beq .L2235 15867 ldr r3, .L2270+44 15868 movs r6, #0 15869 ldr r0, [r3] 15870 mov r3, r1 15871.L2236: 15872 ldr r4, [r5] 15873 cmp r3, r4 15874 bcs .L2234 15875 ldrh r7, [r2, r3, lsl #1] 15876 subs r4, r3, r1 15877 strh r7, [r2, r4, lsl #1] @ movhi 15878 ldr r7, [r0, r3, lsl #2] 15879 str r7, [r0, r4, lsl #2] 15880 strh r6, [r2, r3, lsl #1] @ movhi 15881 adds r3, r3, #1 15882 sxth r3, r3 15883 b .L2236 15884.L2232: 15885 ldr r3, .L2270+20 15886 ldrh r3, [r3] 15887 cmp r3, #0 15888 beq .L2233 15889 ldr r5, .L2270+28 15890 ldrh r1, [r5] 15891.L2241: 15892 sxth r3, r2 15893 cmp r3, r1 15894 mov r6, r3 15895 bge .L2233 15896 ldrh r0, [r4, r3, lsl #1] 15897 adds r2, r2, #1 15898 cmp r0, #0 15899 beq .L2241 15900 ldr r2, .L2270+16 15901 movs r0, #0 15902 ldr r2, [r2] 15903.L2242: 15904 ldrh r1, [r5] 15905 cmp r3, r1 15906 bge .L2233 15907 ldrh r7, [r4, r3, lsl #1] 15908 subs r1, r3, r6 15909 strh r7, [r4, r1, lsl #1] @ movhi 15910 ldr r7, [r2, r3, lsl #2] 15911 str r7, [r2, r1, lsl #2] 15912 adds r1, r3, #1 15913 strh r0, [r4, r3, lsl #1] @ movhi 15914 sxth r3, r1 15915 b .L2242 15916.L2271: 15917 .align 2 15918.L2270: 15919 .word .LANCHOR220 15920 .word .LC5 15921 .word .LC6 15922 .word .LC7 15923 .word .LANCHOR193 15924 .word .LANCHOR71 15925 .word .LANCHOR72 15926 .word .LANCHOR62 15927 .word .LANCHOR129 15928 .word .LANCHOR128 15929 .word .LANCHOR65 15930 .word .LANCHOR130 15931 .word .LANCHOR209 15932 .size FtlScanSysBlk, .-FtlScanSysBlk 15933 .section .text.FtlLoadSysInfo,"ax",%progbits 15934 .align 1 15935 .global FtlLoadSysInfo 15936 .syntax unified 15937 .thumb 15938 .thumb_func 15939 .fpu softvfp 15940 .type FtlLoadSysInfo, %function 15941FtlLoadSysInfo: 15942 @ args = 0, pretend = 0, frame = 8 15943 @ frame_needed = 0, uses_anonymous_args = 0 15944 push {r0, r1, r4, r5, r6, r7, r8, r10, fp, lr} 15945 movs r1, #0 15946 ldr r8, .L2297+156 15947 ldr r5, .L2297 15948 ldr r3, [r8] 15949 ldr r4, .L2297+4 15950 ldr r10, .L2297+160 15951 ldrh r2, [r5] 15952 ldr r7, .L2297+8 15953 str r3, [r4, #8] 15954 ldr r6, .L2297+12 15955 ldr r3, [r10] 15956 lsls r2, r2, #1 15957 ldr r0, [r7] 15958 str r3, [r4, #12] 15959 bl ftl_memset 15960 ldrh r0, [r6] 15961 movw r3, #65535 15962 str r7, [sp] 15963 cmp r0, r3 15964 bne .L2273 15965.L2282: 15966 mov r0, #-1 15967.L2272: 15968 add sp, sp, #8 15969 @ sp needed 15970 pop {r4, r5, r6, r7, r8, r10, fp, pc} 15971.L2273: 15972 movs r1, #1 15973 mov fp, r4 15974 bl FtlGetLastWrittenPage 15975 ldr r3, .L2297+16 15976 sxth r7, r0 15977 adds r0, r0, #1 15978 strh r0, [r6, #2] @ movhi 15979.L2275: 15980 cmp r7, #0 15981 bge .L2278 15982 ldr r1, .L2297+20 15983 movw r2, #1538 15984 ldr r0, .L2297+24 15985 bl printf 15986 ldr r1, .L2297+28 15987 ldr r0, .L2297+32 15988 bl printf 15989.L2277: 15990 ldr r2, .L2297+36 15991 ldrh r3, [r5] 15992 ldrh r2, [r2] 15993 adds r3, r3, #24 15994 cmp r2, r3, lsl #1 15995 bcs .L2280 15996 ldr r1, .L2297+20 15997 movw r2, #1540 15998 ldr r0, .L2297+24 15999 bl printf 16000 ldr r1, .L2297+28 16001 ldr r0, .L2297+32 16002 bl printf 16003.L2280: 16004 movs r2, #48 16005 ldr r1, [r4, #8] 16006 ldr r0, .L2297+40 16007 bl ftl_memcpy 16008 ldrh r2, [r5] 16009 ldr r3, [sp] 16010 ldr r1, [r4, #8] 16011 lsls r2, r2, #1 16012 ldr r0, [r3] 16013 adds r1, r1, #48 16014 bl ftl_memcpy 16015 ldrh r1, [r5] 16016 ldr r3, [r4, #8] 16017 lsrs r2, r1, #3 16018 adds r1, r1, #24 16019 lsls r1, r1, #1 16020 adds r2, r2, #4 16021 bic r1, r1, #3 16022 add r1, r1, r3 16023 ldr r3, .L2297+44 16024 ldr r0, [r3] 16025 bl ftl_memcpy 16026 ldr r3, .L2297+48 16027 ldrh r3, [r3] 16028 cbz r3, .L2281 16029 ldrh r1, [r5] 16030 ldr r3, .L2297+52 16031 ldrh r2, [r3] 16032 lsrs r3, r1, #3 16033 add r3, r3, r1, lsl #1 16034 ldr r1, [r4, #8] 16035 adds r3, r3, #52 16036 lsls r2, r2, #2 16037 ubfx r3, r3, #2, #14 16038 add r1, r1, r3, lsl #2 16039 ldr r3, .L2297+56 16040 ldr r0, [r3] 16041 bl ftl_memcpy 16042.L2281: 16043 ldr r4, .L2297+40 16044 ldr r3, .L2297+16 16045 ldr r2, [r4] 16046 cmp r2, r3 16047 bne .L2282 16048 ldr r3, .L2297+60 16049 ldrb r2, [r4, #10] @ zero_extendqisi2 16050 ldrh r5, [r4, #8] 16051 ldrh r3, [r3] 16052 strh r5, [r6, #6] @ movhi 16053 cmp r2, r3 16054 bne .L2282 16055 ldr r3, .L2297+64 16056 ldr r2, .L2297+68 16057 str r5, [r3] 16058 ldr r3, .L2297+72 16059 ldrh r3, [r3] 16060 muls r3, r5, r3 16061 str r3, [r2] 16062 ldr r2, .L2297+76 16063 ldrh r2, [r2] 16064 muls r3, r2, r3 16065 ldr r2, .L2297+80 16066 str r3, [r2] 16067 ldr r3, .L2297+84 16068 ldr r6, [r3] 16069 ldr r3, .L2297+88 16070 ldrh r0, [r3, #6] 16071 ldr r3, .L2297+92 16072 subs r0, r6, r0 16073 ldrh r1, [r3] 16074 subs r0, r0, r5 16075 bl __aeabi_uidiv 16076 ldr r3, .L2297+96 16077 cmp r5, r6 16078 strh r0, [r3] @ movhi 16079 bls .L2283 16080 ldr r1, .L2297+20 16081 movw r2, #1567 16082 ldr r0, .L2297+24 16083 bl printf 16084 ldr r1, .L2297+28 16085 ldr r0, .L2297+32 16086 bl printf 16087.L2283: 16088 ldrh r2, [r4, #16] 16089 ldr r3, .L2297+100 16090 ldrh ip, [r4, #14] 16091 ldr r7, .L2297+104 16092 lsrs r1, r2, #6 16093 and r2, r2, #63 16094 strb r2, [r3, #6] 16095 ldrb r2, [r4, #11] @ zero_extendqisi2 16096 strh r1, [r3, #2] @ movhi 16097 ldr r1, .L2297+108 16098 strb r2, [r3, #8] 16099 ldrh r2, [r4, #18] 16100 strh ip, [r3] @ movhi 16101 movw r3, #65535 16102 strh r3, [r7] @ movhi 16103 movs r3, #0 16104 strh r2, [r1] @ movhi 16105 ldrh r2, [r4, #20] 16106 strh r3, [r7, #2] @ movhi 16107 strb r3, [r7, #6] 16108 strb r3, [r7, #8] 16109 lsrs r5, r2, #6 16110 and r2, r2, #63 16111 strb r2, [r1, #6] 16112 ldrb r2, [r4, #12] @ zero_extendqisi2 16113 strh r5, [r1, #2] @ movhi 16114 ldrh r5, [r4, #22] 16115 strb r2, [r1, #8] 16116 ldr r2, .L2297+112 16117 strh r5, [r2] @ movhi 16118 ldrh r5, [r4, #24] 16119 lsrs r6, r5, #6 16120 and r5, r5, #63 16121 strb r5, [r2, #6] 16122 ldrb r5, [r4, #13] @ zero_extendqisi2 16123 strh r6, [r2, #2] @ movhi 16124 ldr r6, [r4, #32] 16125 strb r5, [r2, #8] 16126 ldr r5, .L2297+116 16127 str r3, [r5] 16128 ldr r5, .L2297+120 16129 str r3, [r5] 16130 ldr r5, .L2297+124 16131 str r3, [r5] 16132 ldr r5, .L2297+128 16133 str r3, [r5] 16134 ldr r5, .L2297+132 16135 str r6, [r5] 16136 mov r6, r1 16137 ldr r5, .L2297+136 16138 str r3, [r5] 16139 ldr r5, .L2297+140 16140 str r3, [r5] 16141 ldr r5, .L2297+144 16142 ldr lr, [r4, #40] 16143 str r3, [r5] 16144 ldr r3, .L2297+148 16145 ldr r5, [r3] 16146 cmp lr, r5 16147 mov r5, r2 16148 it hi 16149 strhi lr, [r3] 16150 ldr r3, .L2297+152 16151 ldr r2, [r4, #36] 16152 ldr r1, [r3] 16153 cmp r2, r1 16154 it hi 16155 strhi r2, [r3] 16156 movw r3, #65535 16157 cmp ip, r3 16158 beq .L2286 16159 ldr r0, .L2297+100 16160 bl make_superblock 16161.L2286: 16162 ldrh r2, [r6] 16163 movw r3, #65535 16164 cmp r2, r3 16165 beq .L2287 16166 ldr r0, .L2297+108 16167 bl make_superblock 16168.L2287: 16169 ldrh r2, [r5] 16170 movw r3, #65535 16171 cmp r2, r3 16172 beq .L2288 16173 ldr r0, .L2297+112 16174 bl make_superblock 16175.L2288: 16176 ldrh r2, [r7] 16177 movw r3, #65535 16178 cmp r2, r3 16179 beq .L2289 16180 ldr r0, .L2297+104 16181 bl make_superblock 16182.L2289: 16183 movs r0, #0 16184 b .L2272 16185.L2278: 16186 ldrh r2, [r6] 16187 mov r0, fp 16188 str r3, [sp, #4] 16189 orr r2, r7, r2, lsl #10 16190 str r2, [r4, #4] 16191 ldr r2, [r8] 16192 str r2, [r4, #8] 16193 movs r2, #1 16194 mov r1, r2 16195 bl FlashReadPages 16196 ldr r2, [r4] 16197 ldr r3, [sp, #4] 16198 adds r2, r2, #1 16199 beq .L2276 16200 ldr r2, [r8] 16201 ldr r2, [r2] 16202 cmp r2, r3 16203 bne .L2276 16204 ldr r2, [r10] 16205 ldrh r1, [r2] 16206 movw r2, #61604 16207 cmp r1, r2 16208 beq .L2277 16209.L2276: 16210 subs r7, r7, #1 16211 sxth r7, r7 16212 b .L2275 16213.L2298: 16214 .align 2 16215.L2297: 16216 .word .LANCHOR40 16217 .word .LANCHOR202 16218 .word .LANCHOR84 16219 .word .LANCHOR209 16220 .word 1179929683 16221 .word .LANCHOR221 16222 .word .LC5 16223 .word .LC6 16224 .word .LC7 16225 .word .LANCHOR58 16226 .word .LANCHOR81 16227 .word .LANCHOR0 16228 .word .LANCHOR70 16229 .word .LANCHOR67 16230 .word .LANCHOR195 16231 .word .LANCHOR45 16232 .word .LANCHOR222 16233 .word .LANCHOR73 16234 .word .LANCHOR53 16235 .word .LANCHOR56 16236 .word .LANCHOR69 16237 .word .LANCHOR42 16238 .word .LANCHOR75 16239 .word .LANCHOR38 16240 .word .LANCHOR223 16241 .word .LANCHOR92 16242 .word .LANCHOR204 16243 .word .LANCHOR93 16244 .word .LANCHOR94 16245 .word .LANCHOR161 16246 .word .LANCHOR162 16247 .word .LANCHOR166 16248 .word .LANCHOR165 16249 .word .LANCHOR167 16250 .word .LANCHOR168 16251 .word .LANCHOR169 16252 .word .LANCHOR164 16253 .word .LANCHOR159 16254 .word .LANCHOR160 16255 .word .LANCHOR183 16256 .word .LANCHOR188 16257 .size FtlLoadSysInfo, .-FtlLoadSysInfo 16258 .section .text.FtlDumpBlockInfo,"ax",%progbits 16259 .align 1 16260 .global FtlDumpBlockInfo 16261 .syntax unified 16262 .thumb 16263 .thumb_func 16264 .fpu softvfp 16265 .type FtlDumpBlockInfo, %function 16266FtlDumpBlockInfo: 16267 @ args = 0, pretend = 0, frame = 64 16268 @ frame_needed = 0, uses_anonymous_args = 0 16269 push {r4, r5, r6, r7, r8, r10, fp, lr} 16270 ubfx r0, r0, #10, #16 16271 ldr r4, .L2311 16272 sub sp, sp, #88 16273 mov r8, r1 16274 ldrh r3, [r4] 16275 str r3, [sp, #24] 16276 bl P2V_block_in_plane 16277 ldr r1, .L2311+4 16278 mov r6, r0 16279 ldr r0, .L2311+8 16280 bl printf 16281 ldr r3, .L2311+12 16282 mov r1, r6 16283 ldr r0, .L2311+16 16284 ldr r3, [r3] 16285 ldrh r2, [r3, r6, lsl #1] 16286 bl printf 16287 add r0, sp, #88 16288 strh r6, [r0, #-48]! @ movhi 16289 bl make_superblock 16290 ldr r3, .L2311+20 16291 ldrb r5, [r3] @ zero_extendqisi2 16292 cbz r5, .L2300 16293 cmp r8, #0 16294 bne .L2309 16295 mov r0, r6 16296 bl ftl_get_blk_mode 16297 cmp r0, #1 16298 mov r5, r0 16299 bne .L2300 16300 ldr r3, .L2311+24 16301 ldrh r3, [r3] 16302 str r3, [sp, #24] 16303.L2300: 16304 movs r6, #0 16305 ldrh r3, [r4] 16306 ldr r2, [sp, #24] 16307 mov r1, r5 16308 ldr r0, .L2311+28 16309 bl printf 16310.L2301: 16311 ldr r3, .L2311+32 16312 movs r2, #0 16313 add ip, sp, #54 16314 mov r4, r2 16315 movw r10, #65535 16316 mov fp, #36 16317 ldrh lr, [r3] 16318 ldr r3, .L2311+36 16319 ldr r0, [r3] 16320 ldr r3, .L2311+40 16321 ldr r3, [r3] 16322 str r3, [sp, #28] 16323 ldr r3, .L2311+44 16324 ldrh r3, [r3] 16325 str r3, [sp, #32] 16326 ldr r3, .L2311+48 16327 ldr r3, [r3] 16328 str r3, [sp, #36] 16329 ldr r3, .L2311+52 16330 ldrh r8, [r3] 16331.L2302: 16332 uxth r3, r2 16333 cmp lr, r3 16334 bhi .L2304 16335 ldr fp, .L2311+56 16336 mov r8, #0 16337 mov r10, #36 16338 mov r2, r5 16339 mov r1, r4 16340 bl FlashReadPages 16341.L2305: 16342 uxth r3, r8 16343 cmp r4, r3 16344 bhi .L2306 16345 adds r6, r6, #1 16346 ldr r3, [sp, #24] 16347 uxth r6, r6 16348 cmp r3, r6 16349 bne .L2301 16350.L2307: 16351 movs r0, #0 16352 add sp, sp, #88 16353 @ sp needed 16354 pop {r4, r5, r6, r7, r8, r10, fp, pc} 16355.L2309: 16356 movs r5, #0 16357 b .L2300 16358.L2304: 16359 ldrh r3, [ip, #2]! 16360 cmp r3, r10 16361 beq .L2303 16362 mla r1, fp, r4, r0 16363 ldr r7, [sp, #28] 16364 orr r3, r6, r3, lsl #10 16365 str r3, [r1, #4] 16366 ldr r3, [sp, #32] 16367 muls r3, r4, r3 16368 bic r3, r3, #3 16369 add r3, r3, r7 16370 ldr r7, [sp, #36] 16371 str r3, [r1, #8] 16372 mul r3, r8, r4 16373 adds r4, r4, #1 16374 uxth r4, r4 16375 bic r3, r3, #3 16376 add r3, r3, r7 16377 str r3, [r1, #12] 16378.L2303: 16379 adds r2, r2, #1 16380 b .L2302 16381.L2306: 16382 ldr r3, .L2311+36 16383 mul r0, r10, r8 16384 ldrh r1, [sp, #40] 16385 add r8, r8, #1 16386 ldr ip, [r3] 16387 add r2, ip, r0 16388 ldr lr, [r2, #8] 16389 ldr r3, [r2, #12] 16390 ldr r7, [lr, #4] 16391 str r7, [sp, #20] 16392 ldr r7, [lr] 16393 str r7, [sp, #16] 16394 ldr r7, [r3, #12] 16395 str r7, [sp, #12] 16396 ldr r7, [r3, #8] 16397 str r7, [sp, #8] 16398 ldr r7, [r3, #4] 16399 str r7, [sp, #4] 16400 ldr r3, [r3] 16401 str r3, [sp] 16402 ldr r3, [r2, #4] 16403 ldr r2, [ip, r0] 16404 mov r0, fp 16405 bl printf 16406 b .L2305 16407.L2312: 16408 .align 2 16409.L2311: 16410 .word .LANCHOR53 16411 .word .LANCHOR224 16412 .word .LC45 16413 .word .LANCHOR84 16414 .word .LC46 16415 .word .LANCHOR8 16416 .word .LANCHOR54 16417 .word .LC47 16418 .word .LANCHOR38 16419 .word .LANCHOR180 16420 .word .LANCHOR105 16421 .word .LANCHOR58 16422 .word .LANCHOR106 16423 .word .LANCHOR59 16424 .word .LC48 16425 .size FtlDumpBlockInfo, .-FtlDumpBlockInfo 16426 .section .text.FtlScanAllBlock,"ax",%progbits 16427 .align 1 16428 .global FtlScanAllBlock 16429 .syntax unified 16430 .thumb 16431 .thumb_func 16432 .fpu softvfp 16433 .type FtlScanAllBlock, %function 16434FtlScanAllBlock: 16435 @ args = 0, pretend = 0, frame = 64 16436 @ frame_needed = 0, uses_anonymous_args = 0 16437 push {r4, r5, r6, r7, r8, r10, fp, lr} 16438 sub sp, sp, #88 16439 ldr r6, .L2323 16440 ldr r1, .L2323+4 16441 ldr r0, .L2323+8 16442 bl printf 16443 movs r3, #0 16444 str r3, [sp, #28] 16445.L2314: 16446 ldr r3, .L2323+12 16447 ldrh r0, [sp, #28] 16448 ldrh r3, [r3] 16449 cmp r3, r0 16450 bhi .L2322 16451 movs r0, #0 16452 add sp, sp, #88 16453 @ sp needed 16454 pop {r4, r5, r6, r7, r8, r10, fp, pc} 16455.L2322: 16456 add r4, sp, #88 16457 add r7, sp, #54 16458 strh r0, [r4, #-48]! @ movhi 16459 movw r10, #65535 16460 bl ftl_get_blk_mode 16461 ldr r3, .L2323+16 16462 mov fp, #36 16463 ldrh r1, [sp, #28] 16464 ldr r2, [r3] 16465 mov r3, r0 16466 ldr r0, .L2323+20 16467 ldrh r2, [r2, r1, lsl #1] 16468 bl printf 16469 mov r0, r4 16470 bl make_superblock 16471 ldr r3, .L2323+24 16472 movs r2, #0 16473 ldr r0, [r6] 16474 mov r4, r2 16475 ldrh lr, [r3] 16476 ldr r3, .L2323+28 16477 ldr r3, [r3] 16478 str r3, [sp, #32] 16479 ldr r3, .L2323+32 16480 ldrh ip, [r3] 16481 ldr r3, .L2323+36 16482 ldr r3, [r3] 16483 str r3, [sp, #36] 16484 ldr r3, .L2323+40 16485 ldrh r8, [r3] 16486.L2315: 16487 uxth r3, r2 16488 cmp lr, r3 16489 bhi .L2317 16490 ldr r10, .L2323+44 16491 movs r7, #0 16492 mov r8, #36 16493 movs r2, #0 16494 mov r1, r4 16495 bl FlashReadPages 16496.L2318: 16497 uxth r3, r7 16498 cmp r4, r3 16499 bhi .L2319 16500 ldr r10, .L2323+48 16501 movs r7, #0 16502 mov r8, #36 16503 movs r2, #1 16504 mov r1, r4 16505 ldr r0, [r6] 16506 bl FlashReadPages 16507.L2320: 16508 uxth r3, r7 16509 cmp r4, r3 16510 bhi .L2321 16511 ldr r3, [sp, #28] 16512 adds r3, r3, #1 16513 str r3, [sp, #28] 16514 b .L2314 16515.L2317: 16516 ldrh r3, [r7, #2]! 16517 cmp r3, r10 16518 beq .L2316 16519 mla r1, fp, r4, r0 16520 ldr r5, [sp, #32] 16521 lsls r3, r3, #10 16522 str r3, [r1, #4] 16523 mul r3, ip, r4 16524 bic r3, r3, #3 16525 add r3, r3, r5 16526 ldr r5, [sp, #36] 16527 str r3, [r1, #8] 16528 mul r3, r8, r4 16529 adds r4, r4, #1 16530 uxth r4, r4 16531 bic r3, r3, #3 16532 add r3, r3, r5 16533 str r3, [r1, #12] 16534.L2316: 16535 adds r2, r2, #1 16536 b .L2315 16537.L2319: 16538 mul r2, r8, r7 16539 ldr r0, [r6] 16540 ldrh r1, [sp, #40] 16541 adds r7, r7, #1 16542 add lr, r0, r2 16543 ldr fp, [lr, #8] 16544 ldr r3, [lr, #12] 16545 ldr r5, [fp, #4] 16546 str r5, [sp, #20] 16547 ldr r5, [fp] 16548 str r5, [sp, #16] 16549 ldr r5, [r3, #12] 16550 str r5, [sp, #12] 16551 ldr r5, [r3, #8] 16552 str r5, [sp, #8] 16553 ldr r5, [r3, #4] 16554 str r5, [sp, #4] 16555 ldr r3, [r3] 16556 str r3, [sp] 16557 ldr r2, [r0, r2] 16558 mov r0, r10 16559 ldr r3, [lr, #4] 16560 bl printf 16561 b .L2318 16562.L2321: 16563 mul r2, r8, r7 16564 ldr r0, [r6] 16565 ldrh r1, [sp, #40] 16566 adds r7, r7, #1 16567 add lr, r0, r2 16568 ldr fp, [lr, #8] 16569 ldr r3, [lr, #12] 16570 ldr r5, [fp, #4] 16571 str r5, [sp, #20] 16572 ldr r5, [fp] 16573 str r5, [sp, #16] 16574 ldr r5, [r3, #12] 16575 str r5, [sp, #12] 16576 ldr r5, [r3, #8] 16577 str r5, [sp, #8] 16578 ldr r5, [r3, #4] 16579 str r5, [sp, #4] 16580 ldr r3, [r3] 16581 str r3, [sp] 16582 ldr r2, [r0, r2] 16583 mov r0, r10 16584 ldr r3, [lr, #4] 16585 bl printf 16586 b .L2320 16587.L2324: 16588 .align 2 16589.L2323: 16590 .word .LANCHOR180 16591 .word .LANCHOR225 16592 .word .LC45 16593 .word .LANCHOR41 16594 .word .LANCHOR84 16595 .word .LC49 16596 .word .LANCHOR38 16597 .word .LANCHOR105 16598 .word .LANCHOR58 16599 .word .LANCHOR106 16600 .word .LANCHOR59 16601 .word .LC50 16602 .word .LC51 16603 .size FtlScanAllBlock, .-FtlScanAllBlock 16604 .section .text.FtlMapTblRecovery,"ax",%progbits 16605 .align 1 16606 .global FtlMapTblRecovery 16607 .syntax unified 16608 .thumb 16609 .thumb_func 16610 .fpu softvfp 16611 .type FtlMapTblRecovery, %function 16612FtlMapTblRecovery: 16613 @ args = 0, pretend = 0, frame = 24 16614 @ frame_needed = 0, uses_anonymous_args = 0 16615 ldr r3, [r0, #16] 16616 movs r1, #0 16617 push {r4, r5, r6, r7, r8, r10, fp, lr} 16618 sub sp, sp, #24 16619 ldrh fp, [r0, #6] 16620 mov r4, r0 16621 movs r6, #0 16622 ldr r8, [r0, #24] 16623 str r3, [sp, #12] 16624 ldrh r3, [r0, #8] 16625 lsl r2, fp, #2 16626 ldr r10, [r0, #12] 16627 mov r0, r8 16628 ldr r5, .L2352 16629 str r3, [sp, #4] 16630 bl ftl_memset 16631 ldr r3, .L2352+4 16632 str r6, [r4, #32] 16633 str r6, [r4, #28] 16634 ldr r2, [r3] 16635 str r3, [sp, #8] 16636 str r2, [r5, #8] 16637 ldr r2, .L2352+8 16638 ldr r7, [r2] 16639 movw r2, #65535 16640 str r7, [r5, #12] 16641 strh r2, [r4] @ movhi 16642 strh r2, [r4, #2] @ movhi 16643 movs r2, #1 16644 str r2, [r4, #36] 16645.L2326: 16646 ldr r2, [sp, #4] 16647 sxth r3, r6 16648 cmp r3, r2 16649 bge .L2343 16650 ldr r2, [sp, #4] 16651 subs r2, r2, #1 16652 cmp r3, r2 16653 lsl r2, r3, #1 16654 bne .L2327 16655 ldrh r0, [r10, r3, lsl #1] 16656 movs r1, #1 16657 add r5, r10, r2 16658 str r3, [sp, #4] 16659 bl FtlGetLastWrittenPage 16660 ldr r3, [sp, #12] 16661 sxth r10, r0 16662 strh r6, [r4] @ movhi 16663 movs r6, #0 16664 adds r0, r0, #1 16665 mov r2, r3 16666 ldr r3, [sp, #4] 16667 strh r0, [r4, #2] @ movhi 16668 ldr r3, [r2, r3, lsl #2] 16669 str r3, [r4, #28] 16670 ldr r3, .L2352 16671.L2328: 16672 sxth r2, r6 16673 cmp r2, r10 16674 ble .L2330 16675.L2343: 16676 mov r0, r4 16677 bl ftl_free_no_use_map_blk 16678 ldr r3, .L2352+12 16679 ldrh r2, [r4, #2] 16680 ldrh r3, [r3] 16681 cmp r2, r3 16682 bne .L2332 16683 mov r0, r4 16684 bl ftl_map_blk_alloc_new_blk 16685.L2332: 16686 mov r0, r4 16687 bl ftl_map_blk_gc 16688 mov r0, r4 16689 bl ftl_map_blk_gc 16690 movs r0, #0 16691 add sp, sp, #24 16692 @ sp needed 16693 pop {r4, r5, r6, r7, r8, r10, fp, pc} 16694.L2330: 16695 ldrh r1, [r5] 16696 ldr r0, .L2352 16697 str r3, [sp, #4] 16698 orr r2, r2, r1, lsl #10 16699 str r2, [r3, #4] 16700 movs r2, #1 16701 mov r1, r2 16702 bl FlashReadPages 16703 ldr r3, [sp, #4] 16704 ldr r2, [r3] 16705 adds r2, r2, #1 16706 beq .L2329 16707 ldrh r2, [r7, #8] 16708 cmp fp, r2 16709 bls .L2329 16710 ldrh r1, [r4, #4] 16711 ldrh r0, [r7] 16712 cmp r0, r1 16713 itt eq 16714 ldreq r1, [r3, #4] 16715 streq r1, [r8, r2, lsl #2] 16716.L2329: 16717 adds r6, r6, #1 16718 b .L2328 16719.L2327: 16720 ldr r1, [sp, #8] 16721 add r2, r10, r2 16722 str r2, [sp, #16] 16723 ldr r0, .L2352 16724 ldr r1, [r1] 16725 str r1, [r5, #8] 16726 ldrh r1, [r10, r3, lsl #1] 16727 ldr r3, .L2352+12 16728 ldrh r2, [r3] 16729 str r3, [sp, #20] 16730 subs r2, r2, #1 16731 orr r2, r2, r1, lsl #10 16732 str r2, [r5, #4] 16733 movs r2, #1 16734 mov r1, r2 16735 bl FlashReadPages 16736 ldr r2, [r5] 16737 adds r2, r2, #1 16738 beq .L2345 16739 ldrh r1, [r7] 16740 ldrh r2, [r4, #4] 16741 ldr r3, [sp, #20] 16742 cmp r1, r2 16743 bne .L2345 16744 ldrh r1, [r7, #8] 16745 movw r2, #64245 16746 cmp r1, r2 16747 beq .L2334 16748.L2345: 16749 movs r3, #0 16750.L2335: 16751 ldr r1, .L2352+12 16752 sxth r2, r3 16753 ldrh r1, [r1] 16754 cmp r2, r1 16755 bge .L2341 16756 str r3, [sp, #20] 16757 ldr r3, [sp, #16] 16758 ldr r0, .L2352 16759 ldrh r1, [r3] 16760 orr r2, r2, r1, lsl #10 16761 str r2, [r5, #4] 16762 movs r2, #1 16763 mov r1, r2 16764 bl FlashReadPages 16765 ldr r2, [r5] 16766 ldr r3, [sp, #20] 16767 adds r2, r2, #1 16768 beq .L2339 16769 ldrh r2, [r7, #8] 16770 cmp fp, r2 16771 bls .L2339 16772 ldrh r1, [r4, #4] 16773 ldrh r0, [r7] 16774 cmp r0, r1 16775 itt eq 16776 ldreq r1, [r5, #4] 16777 streq r1, [r8, r2, lsl #2] 16778.L2339: 16779 adds r3, r3, #1 16780 b .L2335 16781.L2334: 16782 ldrh r2, [r3] 16783 movs r1, #0 16784 ldr r3, [sp, #8] 16785 subs r2, r2, #1 16786 ldr ip, [r3] 16787.L2336: 16788 sxth r3, r1 16789 cmp r3, r2 16790 blt .L2338 16791.L2341: 16792 adds r6, r6, #1 16793 b .L2326 16794.L2338: 16795 lsls r0, r3, #3 16796 ldr r3, [ip, r3, lsl #3] 16797 adds r1, r1, #1 16798 uxth lr, r3 16799 cmp fp, lr 16800 itttt hi 16801 addhi r0, r0, ip 16802 movhi r3, lr 16803 ldrhi r0, [r0, #4] 16804 strhi r0, [r8, r3, lsl #2] 16805 b .L2336 16806.L2353: 16807 .align 2 16808.L2352: 16809 .word .LANCHOR202 16810 .word .LANCHOR183 16811 .word .LANCHOR188 16812 .word .LANCHOR54 16813 .size FtlMapTblRecovery, .-FtlMapTblRecovery 16814 .section .text.FtlLoadVonderInfo,"ax",%progbits 16815 .align 1 16816 .global FtlLoadVonderInfo 16817 .syntax unified 16818 .thumb 16819 .thumb_func 16820 .fpu softvfp 16821 .type FtlLoadVonderInfo, %function 16822FtlLoadVonderInfo: 16823 @ args = 0, pretend = 0, frame = 0 16824 @ frame_needed = 0, uses_anonymous_args = 0 16825 push {r3, lr} 16826 ldr r3, .L2355 16827 ldr r0, .L2355+4 16828 ldrh r3, [r3] 16829 strh r3, [r0, #10] @ movhi 16830 movw r3, #61574 16831 strh r3, [r0, #4] @ movhi 16832 ldr r3, .L2355+8 16833 ldrh r3, [r3] 16834 strh r3, [r0, #8] @ movhi 16835 ldr r3, .L2355+12 16836 ldrh r3, [r3] 16837 strh r3, [r0, #6] @ movhi 16838 ldr r3, .L2355+16 16839 ldr r3, [r3] 16840 str r3, [r0, #12] 16841 ldr r3, .L2355+20 16842 ldr r3, [r3] 16843 str r3, [r0, #16] 16844 ldr r3, .L2355+24 16845 ldr r3, [r3] 16846 str r3, [r0, #20] 16847 ldr r3, .L2355+28 16848 ldr r3, [r3] 16849 str r3, [r0, #24] 16850 bl FtlMapTblRecovery 16851 movs r0, #0 16852 pop {r3, pc} 16853.L2356: 16854 .align 2 16855.L2355: 16856 .word .LANCHOR62 16857 .word .LANCHOR215 16858 .word .LANCHOR71 16859 .word .LANCHOR63 16860 .word .LANCHOR72 16861 .word .LANCHOR193 16862 .word .LANCHOR192 16863 .word .LANCHOR194 16864 .size FtlLoadVonderInfo, .-FtlLoadVonderInfo 16865 .section .text.FtlLoadMapInfo,"ax",%progbits 16866 .align 1 16867 .global FtlLoadMapInfo 16868 .syntax unified 16869 .thumb 16870 .thumb_func 16871 .fpu softvfp 16872 .type FtlLoadMapInfo, %function 16873FtlLoadMapInfo: 16874 @ args = 0, pretend = 0, frame = 0 16875 @ frame_needed = 0, uses_anonymous_args = 0 16876 push {r3, lr} 16877 bl FtlL2PDataInit 16878 ldr r0, .L2358 16879 bl FtlMapTblRecovery 16880 movs r0, #0 16881 pop {r3, pc} 16882.L2359: 16883 .align 2 16884.L2358: 16885 .word .LANCHOR127 16886 .size FtlLoadMapInfo, .-FtlLoadMapInfo 16887 .section .text.FtlGcScanTempBlk,"ax",%progbits 16888 .align 1 16889 .global FtlGcScanTempBlk 16890 .syntax unified 16891 .thumb 16892 .thumb_func 16893 .fpu softvfp 16894 .type FtlGcScanTempBlk, %function 16895FtlGcScanTempBlk: 16896 @ args = 0, pretend = 0, frame = 24 16897 @ frame_needed = 0, uses_anonymous_args = 0 16898 ldr r3, .L2387 16899 movw r2, #65535 16900 push {r4, r5, r6, r7, r8, r10, fp, lr} 16901 sub sp, sp, #24 16902 mov r5, r0 16903 ldrh r4, [r3] 16904 str r3, [sp, #16] 16905 cmp r4, r2 16906 beq .L2378 16907 cbnz r4, .L2361 16908.L2362: 16909 bl FtlGcPageVarInit 16910 b .L2363 16911.L2378: 16912 movs r4, #0 16913.L2361: 16914 ldr r3, .L2387+4 16915 ldrh r3, [r3] 16916 cmp r3, r1 16917 beq .L2362 16918.L2363: 16919 ldr fp, .L2387+44 16920 mov r3, #-1 16921 str r3, [sp, #8] 16922.L2375: 16923 ldrh r2, [r5] 16924 movw r3, #65535 16925 movs r0, #0 16926 strb r0, [r5, #8] 16927 cmp r2, r3 16928 beq .L2364 16929.L2377: 16930 ldr r3, .L2387+8 16931 movw ip, #65535 16932 ldr r0, [fp] 16933 mov lr, #36 16934 ldrh r8, [r3] 16935 ldr r3, .L2387+12 16936 ldr r3, [r3] 16937 str r3, [sp, #12] 16938 ldr r3, .L2387+16 16939 ldrh r10, [r3] 16940 add r3, r5, #16 16941 str r3, [sp, #4] 16942 movs r3, #0 16943 mov r6, r3 16944.L2365: 16945 uxth r2, r3 16946 cmp r8, r2 16947 bhi .L2367 16948 movs r7, #0 16949 mov r10, #36 16950 movs r2, #0 16951 mov r1, r6 16952 bl FlashReadPages 16953.L2368: 16954 uxth r3, r7 16955 cmp r6, r3 16956 bhi .L2376 16957 ldr r3, .L2387+4 16958 adds r4, r4, #1 16959 uxth r4, r4 16960 ldrh r3, [r3] 16961 cmp r3, r4 16962 bhi .L2377 16963 movs r0, #0 16964 b .L2364 16965.L2367: 16966 ldr r1, [sp, #4] 16967 ldrh r2, [r1], #2 16968 cmp r2, ip 16969 str r1, [sp, #4] 16970 beq .L2366 16971 mla r1, lr, r6, r0 16972 orr r2, r4, r2, lsl #10 16973 str r2, [r1, #4] 16974 movs r2, #0 16975 str r2, [r1, #8] 16976 mul r2, r10, r6 16977 adds r6, r6, #1 16978 uxth r6, r6 16979 bic r2, r2, #3 16980 mov r7, r2 16981 ldr r2, [sp, #12] 16982 add r7, r7, r2 16983 str r7, [r1, #12] 16984.L2366: 16985 adds r3, r3, #1 16986 b .L2365 16987.L2376: 16988 mul r8, r10, r7 16989 ldr r2, [fp] 16990 str r2, [sp, #20] 16991 add r3, r2, r8 16992 ldr r1, [r3, #4] 16993 str r3, [sp, #12] 16994 ubfx r0, r1, #10, #16 16995 str r1, [sp, #4] 16996 bl P2V_plane 16997 ldr r2, [sp, #20] 16998 ldr r1, [sp, #4] 16999 ldr r2, [r2, r8] 17000 cbnz r2, .L2369 17001 ldr r3, [sp, #12] 17002 movw ip, #65535 17003 adds r7, r7, #1 17004 ldr r3, [r3, #12] 17005 ldrh r2, [r3] 17006 cmp r2, ip 17007 bne .L2370 17008 ldr r3, .L2387+20 17009 movs r2, #1 17010 str r2, [r3] 17011.L2364: 17012 ldr r2, [sp, #16] 17013 movw r3, #65535 17014 strb r0, [r5, #6] 17015 mov r1, r4 17016 strh r4, [r5, #2] @ movhi 17017 strh r3, [r2] @ movhi 17018 mov r2, r0 17019 mov r0, r5 17020 bl ftl_sb_update_avl_pages 17021 ldr r0, [sp, #8] 17022 add sp, sp, #24 17023 @ sp needed 17024 pop {r4, r5, r6, r7, r8, r10, fp, pc} 17025.L2370: 17026 ldr r2, [r3, #8] 17027 ldr r0, [r3, #12] 17028 bl FtlGcUpdatePage 17029 b .L2368 17030.L2369: 17031 mov r2, r1 17032 ldr r0, .L2387+24 17033 ldrh r1, [r5] 17034 bl printf 17035 ldr r3, .L2387+28 17036 ldrh r2, [r5] 17037 ldr r3, [r3] 17038 cbnz r3, .L2371 17039 ldr r3, .L2387+32 17040 ldrb r3, [r3] @ zero_extendqisi2 17041 cbz r3, .L2372 17042.L2371: 17043 ldr r3, .L2387+36 17044 ldr r3, [r3] 17045 ldrh r3, [r3, r2, lsl #1] 17046 cmp r3, #159 17047 bls .L2373 17048.L2372: 17049 ldr r3, [fp] 17050 ldr r3, [r3, r8] 17051 adds r3, r3, #1 17052 bne .L2374 17053.L2373: 17054 ldr r3, [fp] 17055 add r3, r3, r8 17056 ldr r3, [r3, #4] 17057 str r3, [sp, #8] 17058.L2374: 17059 ldr r3, .L2387+40 17060 movs r4, #0 17061 ldr r3, [r3] 17062 strh r4, [r3, r2, lsl #1] @ movhi 17063 ldrh r0, [r5] 17064 bl INSERT_FREE_LIST 17065 movw r3, #65535 17066 strh r3, [r5] @ movhi 17067 bl FtlGcPageVarInit 17068 b .L2375 17069.L2388: 17070 .align 2 17071.L2387: 17072 .word .LANCHOR226 17073 .word .LANCHOR53 17074 .word .LANCHOR38 17075 .word .LANCHOR106 17076 .word .LANCHOR59 17077 .word .LANCHOR135 17078 .word .LC52 17079 .word .LANCHOR28 17080 .word .LANCHOR8 17081 .word .LANCHOR79 17082 .word .LANCHOR84 17083 .word .LANCHOR180 17084 .size FtlGcScanTempBlk, .-FtlGcScanTempBlk 17085 .section .text.FlashReadFacBbtData,"ax",%progbits 17086 .align 1 17087 .global FlashReadFacBbtData 17088 .syntax unified 17089 .thumb 17090 .thumb_func 17091 .fpu softvfp 17092 .type FlashReadFacBbtData, %function 17093FlashReadFacBbtData: 17094 @ args = 0, pretend = 0, frame = 48 17095 @ frame_needed = 0, uses_anonymous_args = 0 17096 push {r4, r5, r6, r7, r8, r10, fp, lr} 17097 mov fp, r2 17098 ldr r2, .L2402 17099 sub sp, sp, #48 17100 mov r6, r1 17101 mov r4, r0 17102 ldr r7, .L2402+4 17103 ldrh r3, [r2, #14] 17104 ldrh r2, [r2, #12] 17105 smulbb r3, r3, r2 17106 ldr r2, [r7] 17107 uxth r3, r3 17108 str r2, [sp, #20] 17109 ldr r2, .L2402+8 17110 subs r5, r3, #1 17111 mul r10, r6, r3 17112 uxth r5, r5 17113 subs r3, r3, #15 17114 ldr r1, [r2] 17115 mov r8, r2 17116 str r1, [sp, #24] 17117.L2390: 17118 cmp r3, r5 17119 ble .L2397 17120 mov r0, #-1 17121 b .L2389 17122.L2397: 17123 add r2, r5, r10 17124 add r0, sp, #12 17125 lsls r2, r2, #10 17126 str r3, [sp, #4] 17127 str r2, [sp, #16] 17128 movs r2, #1 17129 mov r1, r2 17130 bl FlashReadPages 17131 ldr r2, [sp, #12] 17132 ldr r3, [sp, #4] 17133 adds r2, r2, #1 17134 beq .L2391 17135 ldr r2, [r8] 17136 ldrh r1, [r2] 17137 movw r2, #61664 17138 cmp r1, r2 17139 bne .L2391 17140 cbz r4, .L2398 17141 cbz r6, .L2393 17142.L2396: 17143 mov r2, fp 17144 ldr r1, [r7] 17145 mov r0, r4 17146 bl ftl_memcpy 17147 movs r3, #4 17148 ldr r0, .L2402+12 17149 mov r2, r3 17150 mov r1, r4 17151 bl rknand_print_hex 17152 movs r0, #0 17153.L2389: 17154 add sp, sp, #48 17155 @ sp needed 17156 pop {r4, r5, r6, r7, r8, r10, fp, pc} 17157.L2393: 17158 ldr r1, [r7] 17159 mov ip, #1 17160 ldr r5, .L2402+16 17161.L2394: 17162 ldr r0, [r5] 17163 uxth r3, r6 17164 adds r6, r6, #1 17165 cmp r3, r0 17166 bcs .L2396 17167 lsrs r0, r3, #5 17168 and r3, r3, #31 17169 lsl r3, ip, r3 17170 ldr r2, [r1, r0, lsl #2] 17171 orrs r3, r3, r2 17172 str r3, [r1, r0, lsl #2] 17173 b .L2394 17174.L2391: 17175 subs r5, r5, #1 17176 uxth r5, r5 17177 b .L2390 17178.L2398: 17179 mov r0, r4 17180 b .L2389 17181.L2403: 17182 .align 2 17183.L2402: 17184 .word .LANCHOR15 17185 .word .LANCHOR147 17186 .word .LANCHOR197 17187 .word .LC53 17188 .word .LANCHOR149 17189 .size FlashReadFacBbtData, .-FlashReadFacBbtData 17190 .section .text.FlashGetBadBlockList,"ax",%progbits 17191 .align 1 17192 .global FlashGetBadBlockList 17193 .syntax unified 17194 .thumb 17195 .thumb_func 17196 .fpu softvfp 17197 .type FlashGetBadBlockList, %function 17198FlashGetBadBlockList: 17199 @ args = 0, pretend = 0, frame = 0 17200 @ frame_needed = 0, uses_anonymous_args = 0 17201 push {r3, r4, r5, r6, r7, lr} 17202 mov r5, r0 17203 ldr r3, .L2414 17204 ldr r6, .L2414+4 17205 ldr r3, [r3] 17206 ldr r0, [r6] 17207 ldrb r4, [r3, #13] @ zero_extendqisi2 17208 ldrh r3, [r3, #14] 17209 smulbb r4, r4, r3 17210 uxth r4, r4 17211 adds r2, r4, #7 17212 asrs r2, r2, #3 17213 bl FlashReadFacBbtData 17214 adds r0, r0, #1 17215 bne .L2405 17216.L2409: 17217 movs r3, #0 17218.L2406: 17219 movw r2, #65535 17220 movs r0, #0 17221 strh r2, [r5, r3, lsl #1] @ movhi 17222 pop {r3, r4, r5, r6, r7, pc} 17223.L2405: 17224 ldr r7, [r6] 17225 movs r2, #0 17226 lsr ip, r4, #4 17227 mov r3, r2 17228 subs r4, r4, #1 17229 mov lr, #1 17230.L2407: 17231 uxth r1, r2 17232 cmp r1, r4 17233 bge .L2406 17234 lsrs r6, r1, #5 17235 and r0, r1, #31 17236 lsl r0, lr, r0 17237 adds r2, r2, #1 17238 ldr r6, [r7, r6, lsl #2] 17239 tst r0, r6 17240 ittt ne 17241 addne r0, r3, #1 17242 strhne r1, [r5, r3, lsl #1] @ movhi 17243 uxthne r3, r0 17244 cmp r3, ip 17245 bcc .L2407 17246 b .L2409 17247.L2415: 17248 .align 2 17249.L2414: 17250 .word .LANCHOR18 17251 .word .LANCHOR153 17252 .size FlashGetBadBlockList, .-FlashGetBadBlockList 17253 .section .text.FtlMakeBbt,"ax",%progbits 17254 .align 1 17255 .global FtlMakeBbt 17256 .syntax unified 17257 .thumb 17258 .thumb_func 17259 .fpu softvfp 17260 .type FtlMakeBbt, %function 17261FtlMakeBbt: 17262 @ args = 0, pretend = 0, frame = 8 17263 @ frame_needed = 0, uses_anonymous_args = 0 17264 ldr r3, .L2436 17265 push {r0, r1, r4, r5, r6, r7, r8, r10, fp, lr} 17266 ldr r7, [r3] 17267 cmp r7, #0 17268 bne .L2417 17269 ldr r8, .L2436+40 17270 ldr r4, .L2436+4 17271 bl FtlBbtMemInit 17272 sub r10, r8, #18 17273 bl FtlLoadFactoryBbt 17274.L2418: 17275 ldr r3, .L2436+8 17276 ldrh r3, [r3] 17277 cmp r7, r3 17278 bcc .L2424 17279 ldr r5, .L2436+12 17280 movs r4, #0 17281.L2425: 17282 ldrh r3, [r5] 17283 uxth r0, r4 17284 adds r4, r4, #1 17285 cmp r3, r0 17286 bhi .L2426 17287 ldr r4, .L2436+16 17288 movw r6, #65535 17289 ldrh r5, [r4, #12] 17290 subs r5, r5, #1 17291 uxth r5, r5 17292.L2427: 17293 ldrh r3, [r4, #12] 17294 subs r3, r3, #47 17295 cmp r3, r5 17296 bgt .L2431 17297 mov r0, r5 17298 bl FtlBbmIsBadBlock 17299 cmp r0, #1 17300 beq .L2428 17301 mov r0, r5 17302 bl FlashTestBlk 17303 cmp r0, #0 17304 beq .L2429 17305 mov r0, r5 17306 bl FtlBbmMapBadBlock 17307.L2428: 17308 subs r5, r5, #1 17309 uxth r5, r5 17310 b .L2427 17311.L2424: 17312 ldr r3, .L2436+20 17313 movw r1, #65535 17314 ldrh r2, [r10, #2]! 17315 ldr r0, [r3] 17316 ldr r3, .L2436+24 17317 cmp r2, r1 17318 str r0, [r4, #8] 17319 ldr fp, [r3] 17320 str r3, [sp, #4] 17321 ldr r3, .L2436+28 17322 str fp, [r4, #12] 17323 beq .L2419 17324 ldrh r6, [r3] 17325 mov r0, r4 17326 str r3, [sp] 17327 mla r6, r7, r6, r2 17328 lsls r2, r6, #10 17329 str r2, [r4, #4] 17330 movs r2, #1 17331 mov r1, r2 17332 bl FlashReadPages 17333 ldr r3, [sp] 17334 ldr r1, [r4, #8] 17335 ldr r0, [r8] 17336 ldrh r2, [r3] 17337 adds r2, r2, #7 17338 asrs r2, r2, #3 17339 bl ftl_memcpy 17340.L2420: 17341 uxth r0, r6 17342 adds r7, r7, #1 17343 add r8, r8, #4 17344 bl FtlBbmMapBadBlock 17345 b .L2418 17346.L2419: 17347 mov r1, r7 17348 str r3, [sp] 17349 bl FlashGetBadBlockList 17350 ldr r1, [r8] 17351 ldr r0, [r4, #8] 17352 bl FtlBbt2Bitmap 17353 ldr r3, [sp] 17354 ldrh r5, [r3] 17355.L2422: 17356 subs r5, r5, #1 17357 uxth r5, r5 17358.L2421: 17359 ldr r3, [sp] 17360 ldrh r0, [r3] 17361 smlabb r0, r0, r7, r5 17362 uxth r0, r0 17363 bl FtlBbmIsBadBlock 17364 cmp r0, #1 17365 beq .L2422 17366 ldr r3, [sp, #4] 17367 movs r2, #16 17368 movs r1, #0 17369 strh r5, [r10] @ movhi 17370 ldr r0, [r3] 17371 bl ftl_memset 17372 ldr r2, [sp] 17373 movw r3, #61664 17374 strh r3, [fp] @ movhi 17375 movs r3, #0 17376 str r3, [fp, #4] 17377 ldrh r6, [r2] 17378 ldrh r3, [r10] 17379 ldr r1, [r8] 17380 ldr r0, [r4, #8] 17381 strh r3, [fp, #2] @ movhi 17382 mla r6, r7, r6, r3 17383 lsls r3, r6, #10 17384 str r3, [r4, #4] 17385 ldr r3, .L2436+32 17386 ldrh r2, [r3] 17387 lsls r2, r2, #2 17388 bl ftl_memcpy 17389 movs r2, #1 17390 mov r0, r4 17391 mov r1, r2 17392 bl FlashEraseBlocks 17393 movs r3, #1 17394 mov r0, r4 17395 mov r2, r3 17396 mov r1, r3 17397 bl FlashProgPages 17398 ldr r3, [r4] 17399 adds r3, r3, #1 17400 bne .L2420 17401 uxth r0, r6 17402 bl FtlBbmMapBadBlock 17403 b .L2421 17404.L2426: 17405 bl FtlBbmMapBadBlock 17406 b .L2425 17407.L2429: 17408 ldrh r3, [r4] 17409 cmp r3, r6 17410 bne .L2430 17411 strh r5, [r4] @ movhi 17412 b .L2428 17413.L2430: 17414 strh r5, [r4, #4] @ movhi 17415.L2431: 17416 ldr r3, .L2436+36 17417 movs r5, #0 17418 str r5, [r4, #8] 17419 movs r2, #2 17420 movs r1, #1 17421 strh r5, [r4, #2] @ movhi 17422 ldr r0, [r3] 17423 ldrh r3, [r4] 17424 lsls r3, r3, #10 17425 str r3, [r0, #4] 17426 ldrh r3, [r4, #4] 17427 lsls r3, r3, #10 17428 str r3, [r0, #40] 17429 bl FlashEraseBlocks 17430 ldrh r0, [r4] 17431 bl FtlBbmMapBadBlock 17432 ldrh r0, [r4, #4] 17433 bl FtlBbmMapBadBlock 17434 bl FtlBbmTblFlush 17435 ldr r3, [r4, #8] 17436 ldrh r2, [r4, #4] 17437 strh r5, [r4, #2] @ movhi 17438 adds r3, r3, #1 17439 str r3, [r4, #8] 17440 ldrh r3, [r4] 17441 strh r2, [r4] @ movhi 17442 strh r3, [r4, #4] @ movhi 17443 bl FtlBbmTblFlush 17444.L2417: 17445 movs r0, #0 17446 add sp, sp, #8 17447 @ sp needed 17448 pop {r4, r5, r6, r7, r8, r10, fp, pc} 17449.L2437: 17450 .align 2 17451.L2436: 17452 .word .LANCHOR77 17453 .word .LANCHOR202 17454 .word .LANCHOR45 17455 .word .LANCHOR60 17456 .word .LANCHOR75 17457 .word .LANCHOR183 17458 .word .LANCHOR188 17459 .word .LANCHOR51 17460 .word .LANCHOR123 17461 .word .LANCHOR78 17462 .word .LANCHOR75+28 17463 .size FtlMakeBbt, .-FtlMakeBbt 17464 .section .text.log2phys,"ax",%progbits 17465 .align 1 17466 .global log2phys 17467 .syntax unified 17468 .thumb 17469 .thumb_func 17470 .fpu softvfp 17471 .type log2phys, %function 17472log2phys: 17473 @ args = 0, pretend = 0, frame = 16 17474 @ frame_needed = 0, uses_anonymous_args = 0 17475 push {r0, r1, r2, r3, r4, r5, r6, r7, r8, r10, fp, lr} 17476 ldr r3, .L2457 17477 str r2, [sp, #8] 17478 ldrh r3, [r3] 17479 str r1, [sp, #4] 17480 adds r2, r3, #7 17481 movs r3, #1 17482 lsls r3, r3, r2 17483 lsr r7, r0, r2 17484 subs r3, r3, #1 17485 uxth r6, r7 17486 ands r3, r3, r0 17487 uxth fp, r3 17488 ldr r3, .L2457+4 17489 ldr r3, [r3] 17490 cmp r0, r3 17491 bcc .L2439 17492 ldr r1, .L2457+8 17493 mov r2, #880 17494 ldr r0, .L2457+12 17495 bl printf 17496 ldr r1, .L2457+16 17497 ldr r0, .L2457+20 17498 bl printf 17499.L2439: 17500 ldr r5, .L2457+24 17501 movs r4, #12 17502 ldr r3, .L2457+28 17503 ldr r1, [r5] 17504 ldrh r2, [r3] 17505 movs r3, #0 17506.L2440: 17507 uxth r10, r3 17508 cmp r10, r2 17509 bcc .L2445 17510 bl select_l2p_ram_region 17511 muls r4, r0, r4 17512 ldr r3, [r5] 17513 mov r10, r0 17514 ldrh r1, [r3, r4] 17515 adds r2, r3, r4 17516 movw r3, #65535 17517 cmp r1, r3 17518 beq .L2446 17519 ldr r3, [r2, #4] 17520 cmp r3, #0 17521 bge .L2446 17522 bl flush_l2p_region 17523.L2446: 17524 ldr r3, .L2457+32 17525 ldrh r3, [r3] 17526 cmp r3, r6 17527 bcs .L2447 17528 ldr r1, .L2457+36 17529 movw r2, #526 17530 ldr r0, .L2457+12 17531 bl printf 17532 ldr r1, .L2457+16 17533 ldr r0, .L2457+20 17534 bl printf 17535.L2447: 17536 ldr r3, .L2457+40 17537 uxth r7, r7 17538 ldr r3, [r3] 17539 ldr r3, [r3, r7, lsl #2] 17540 cmp r3, #0 17541 bne .L2448 17542 ldr r2, [r5] 17543 movs r1, #255 17544 str r3, [sp] 17545 adds r0, r2, r4 17546 ldr r2, .L2457+44 17547 ldr r0, [r0, #8] 17548 ldrh r2, [r2] 17549 bl ftl_memset 17550 ldr r2, [r5] 17551 ldr r3, [sp] 17552 adds r1, r2, r4 17553 strh r6, [r2, r4] @ movhi 17554 str r3, [r1, #4] 17555 b .L2441 17556.L2445: 17557 adds r3, r3, #1 17558 mla r0, r4, r3, r1 17559 ldrh r0, [r0, #-12] 17560 cmp r0, r6 17561 bne .L2440 17562.L2441: 17563 ldr r2, [sp, #8] 17564 movs r3, #12 17565 ldr r1, .L2457+24 17566 cbnz r2, .L2442 17567 ldr r2, [r1] 17568 mla r3, r3, r10, r2 17569 ldr r2, [sp, #4] 17570 ldr r3, [r3, #8] 17571 ldr r3, [r3, fp, lsl #2] 17572 str r3, [r2] 17573.L2443: 17574 ldr r2, [r1] 17575 movs r3, #12 17576 mla r10, r3, r10, r2 17577 ldr r3, [r10, #4] 17578 adds r2, r3, #1 17579 beq .L2454 17580 adds r3, r3, #1 17581 str r3, [r10, #4] 17582.L2454: 17583 movs r0, #0 17584 add sp, sp, #16 17585 @ sp needed 17586 pop {r4, r5, r6, r7, r8, r10, fp, pc} 17587.L2442: 17588 ldr r2, [r5] 17589 mla r3, r3, r10, r2 17590 ldr r2, [sp, #4] 17591 ldr r0, [r2] 17592 ldr r2, [r3, #8] 17593 str r0, [r2, fp, lsl #2] 17594 ldr r2, [r3, #4] 17595 orr r2, r2, #-2147483648 17596 str r2, [r3, #4] 17597 ldr r3, .L2457+48 17598 strh r6, [r3] @ movhi 17599 b .L2443 17600.L2448: 17601 ldr r2, [r5] 17602 ldr r8, .L2457+80 17603 str r3, [sp, #12] 17604 add r2, r2, r4 17605 ldr r2, [r2, #8] 17606 mov r0, r8 17607 str r3, [r8, #4] 17608 str r2, [r8, #8] 17609 ldr r2, .L2457+52 17610 ldr r2, [r2] 17611 str r2, [r8, #12] 17612 movs r2, #1 17613 mov r1, r2 17614 bl FlashReadPages 17615 ldr r3, [r8, #12] 17616 ldrh r2, [r3, #8] 17617 str r3, [sp] 17618 ldr r3, [sp, #12] 17619 cmp r2, r6 17620 beq .L2449 17621 mov r2, r3 17622 mov r1, r7 17623 ldr r0, .L2457+56 17624 bl printf 17625 movs r3, #4 17626 ldr r1, [r8, #12] 17627 mov r2, r3 17628 ldr r0, .L2457+60 17629 bl rknand_print_hex 17630 ldr r3, .L2457+32 17631 movs r2, #4 17632 ldr r1, .L2457+40 17633 ldr r0, .L2457+64 17634 ldrh r3, [r3] 17635 ldr r1, [r1] 17636 bl rknand_print_hex 17637 ldr r3, .L2457+68 17638 movs r2, #1 17639 str r2, [r3] 17640.L2450: 17641 ldr r3, [sp] 17642 ldrh r3, [r3, #8] 17643 cmp r3, r6 17644 beq .L2451 17645 ldr r1, .L2457+36 17646 mov r2, #552 17647 ldr r0, .L2457+12 17648 bl printf 17649 ldr r1, .L2457+16 17650 ldr r0, .L2457+20 17651 bl printf 17652.L2451: 17653 ldr r3, .L2457+24 17654 movs r1, #0 17655 ldr r3, [r3] 17656 adds r2, r3, r4 17657 str r1, [r2, #4] 17658 strh r6, [r3, r4] @ movhi 17659 b .L2441 17660.L2449: 17661 ldr r2, [r8] 17662 cmp r2, #256 17663 bne .L2450 17664 mov r2, r3 17665 mov r1, r7 17666 ldr r0, .L2457+72 17667 bl printf 17668 ldr r3, [r5] 17669 mov r1, r7 17670 ldr r0, .L2457+76 17671 add r3, r3, r4 17672 ldr r2, [r3, #8] 17673 bl FtlMapWritePage 17674 b .L2450 17675.L2458: 17676 .align 2 17677.L2457: 17678 .word .LANCHOR57 17679 .word .LANCHOR73 17680 .word .LANCHOR227 17681 .word .LC5 17682 .word .LC6 17683 .word .LC7 17684 .word .LANCHOR97 17685 .word .LANCHOR68 17686 .word .LANCHOR67 17687 .word .LANCHOR228 17688 .word .LANCHOR131 17689 .word .LANCHOR58 17690 .word .LANCHOR98 17691 .word .LANCHOR188 17692 .word .LC54 17693 .word .LC27 17694 .word .LC55 17695 .word .LANCHOR77 17696 .word .LC56 17697 .word .LANCHOR127 17698 .word .LANCHOR202 17699 .size log2phys, .-log2phys 17700 .section .text.FtlProgPages,"ax",%progbits 17701 .align 1 17702 .global FtlProgPages 17703 .syntax unified 17704 .thumb 17705 .thumb_func 17706 .fpu softvfp 17707 .type FtlProgPages, %function 17708FtlProgPages: 17709 @ args = 0, pretend = 0, frame = 16 17710 @ frame_needed = 0, uses_anonymous_args = 0 17711 push {r0, r1, r2, r3, r4, r5, r6, r7, r8, r10, fp, lr} 17712 mov r4, r3 17713 ldr r3, .L2479 17714 mov r5, r0 17715 mov r10, r1 17716 ldr r7, [r3] 17717 mov r8, r3 17718 cbnz r7, .L2459 17719 ldr r3, .L2479+4 17720 ldrb r3, [r3] @ zero_extendqisi2 17721 cbz r3, .L2474 17722 ldrb r6, [r4, #8] @ zero_extendqisi2 17723 subs r3, r6, #1 17724 rsbs r6, r3, #0 17725 adcs r6, r6, r3 17726.L2461: 17727 ldr fp, .L2479+40 17728 mov r2, r6 17729 ldrb r3, [r4, #9] @ zero_extendqisi2 17730 mov r1, r10 17731 mov r0, r5 17732 bl FlashProgPages 17733.L2462: 17734 cmp r7, r10 17735 bne .L2472 17736 ldr r3, .L2479+8 17737 ldrb r2, [r4, #6] @ zero_extendqisi2 17738 ldrh r3, [r3] 17739 cmp r2, r3 17740 bcc .L2459 17741 ldr r1, .L2479+12 17742 mov r2, #1600 17743 ldr r0, .L2479+16 17744 bl printf 17745 ldr r1, .L2479+20 17746 ldr r0, .L2479+24 17747 bl printf 17748.L2459: 17749 add sp, sp, #16 17750 @ sp needed 17751 pop {r4, r5, r6, r7, r8, r10, fp, pc} 17752.L2474: 17753 mov r6, r7 17754 b .L2461 17755.L2465: 17756 ldr r0, [r5, #4] 17757 ubfx r0, r0, #10, #16 17758 bl P2V_block_in_plane 17759 ldrh r3, [r4] 17760 cmp r3, r0 17761 bne .L2463 17762 ldr r1, [fp] 17763 ldrh r0, [r4, #4] 17764 ldrh r2, [r1, r3, lsl #1] 17765 subs r2, r2, r0 17766 strh r2, [r1, r3, lsl #1] @ movhi 17767 ldr r3, .L2479+28 17768 ldrh r3, [r3] 17769 strh r3, [r4, #2] @ movhi 17770 movs r3, #0 17771 strb r3, [r4, #6] 17772 strh r3, [r4, #4] @ movhi 17773.L2463: 17774 ldrh r3, [r4, #4] 17775 cbnz r3, .L2464 17776 mov r0, r4 17777 bl allocate_new_data_superblock 17778.L2464: 17779 ldr r2, .L2479+32 17780 ldr r3, [r2, #96] 17781 adds r3, r3, #1 17782 str r3, [r2, #96] 17783 ldr r0, [r5, #4] 17784 ubfx r0, r0, #10, #16 17785 bl FtlGcMarkBadPhyBlk 17786 mov r0, r4 17787 bl get_new_active_ppa 17788 mov r2, r6 17789 str r0, [r5, #4] 17790 str r0, [sp, #12] 17791 movs r1, #1 17792 ldrb r3, [r4, #9] @ zero_extendqisi2 17793 mov r0, r5 17794 bl FlashProgPages 17795 ldr r3, [r8] 17796 cmp r3, #0 17797 bne .L2459 17798.L2472: 17799 ldr r3, [r5] 17800 adds r3, r3, #1 17801 beq .L2465 17802 ldr r3, .L2479+8 17803 ldrb r2, [r4, #6] @ zero_extendqisi2 17804 ldrh r3, [r3] 17805 cmp r2, r3 17806 bcc .L2466 17807 ldr r1, .L2479+12 17808 movw r2, #1583 17809 ldr r0, .L2479+16 17810 bl printf 17811 ldr r1, .L2479+20 17812 ldr r0, .L2479+24 17813 bl printf 17814.L2466: 17815 ldr r3, [r5, #4] 17816 cbnz r6, .L2467 17817.L2478: 17818 movs r2, #1 17819 add r1, sp, #12 17820 ldr r0, [r5, #16] 17821 str r3, [sp, #12] 17822 bl log2phys 17823 ldr r3, [r5, #12] 17824 ldr r2, [r3, #12] 17825 ubfx r0, r2, #10, #16 17826 str r2, [sp, #4] 17827 bl P2V_block_in_plane 17828 ldr r2, [sp, #4] 17829 mov r3, r0 17830 adds r2, r2, #1 17831 beq .L2469 17832 ldr r2, [fp] 17833 ldrh r2, [r2, r0, lsl #1] 17834 cbnz r2, .L2470 17835 mov r1, r0 17836 str r0, [sp, #4] 17837 ldr r0, .L2479+36 17838 bl printf 17839 ldr r3, [sp, #4] 17840.L2470: 17841 mov r0, r3 17842 bl decrement_vpc_count 17843.L2469: 17844 adds r7, r7, #1 17845 adds r5, r5, #36 17846 b .L2462 17847.L2467: 17848 orr r3, r3, #-2147483648 17849 b .L2478 17850.L2480: 17851 .align 2 17852.L2479: 17853 .word .LANCHOR77 17854 .word .LANCHOR8 17855 .word .LANCHOR38 17856 .word .LANCHOR229 17857 .word .LC5 17858 .word .LC6 17859 .word .LC7 17860 .word .LANCHOR53 17861 .word .LANCHOR138 17862 .word .LC57 17863 .word .LANCHOR84 17864 .size FtlProgPages, .-FtlProgPages 17865 .section .text.FtlCacheWriteBack,"ax",%progbits 17866 .align 1 17867 .global FtlCacheWriteBack 17868 .syntax unified 17869 .thumb 17870 .thumb_func 17871 .fpu softvfp 17872 .type FtlCacheWriteBack, %function 17873FtlCacheWriteBack: 17874 @ args = 0, pretend = 0, frame = 0 17875 @ frame_needed = 0, uses_anonymous_args = 0 17876 push {r3, r4, r5, lr} 17877 ldr r3, .L2486 17878 ldr r4, [r3] 17879 cbnz r4, .L2482 17880 ldr r5, .L2486+4 17881 ldr r0, [r5] 17882 cbz r0, .L2482 17883 ldr r3, .L2486+8 17884 mov r2, r4 17885 movs r1, #1 17886 ldr r3, [r3] 17887 bl FtlProgPages 17888 str r4, [r5] 17889.L2482: 17890 movs r0, #0 17891 pop {r3, r4, r5, pc} 17892.L2487: 17893 .align 2 17894.L2486: 17895 .word .LANCHOR77 17896 .word .LANCHOR132 17897 .word .LANCHOR230 17898 .size FtlCacheWriteBack, .-FtlCacheWriteBack 17899 .section .text.FtlSysFlush,"ax",%progbits 17900 .align 1 17901 .global FtlSysFlush 17902 .syntax unified 17903 .thumb 17904 .thumb_func 17905 .fpu softvfp 17906 .type FtlSysFlush, %function 17907FtlSysFlush: 17908 @ args = 0, pretend = 0, frame = 0 17909 @ frame_needed = 0, uses_anonymous_args = 0 17910 push {r3, lr} 17911 ldr r3, .L2490 17912 ldr r3, [r3] 17913 cbnz r3, .L2489 17914 bl FtlCacheWriteBack 17915 bl l2p_flush 17916 movs r0, #1 17917 bl FtlEctTblFlush 17918 bl FtlVpcTblFlush 17919.L2489: 17920 movs r0, #0 17921 pop {r3, pc} 17922.L2491: 17923 .align 2 17924.L2490: 17925 .word .LANCHOR77 17926 .size FtlSysFlush, .-FtlSysFlush 17927 .section .text.FtlDeInit,"ax",%progbits 17928 .align 1 17929 .global FtlDeInit 17930 .syntax unified 17931 .thumb 17932 .thumb_func 17933 .fpu softvfp 17934 .type FtlDeInit, %function 17935FtlDeInit: 17936 @ args = 0, pretend = 0, frame = 0 17937 @ frame_needed = 0, uses_anonymous_args = 0 17938 push {r3, lr} 17939 ldr r3, .L2494 17940 ldr r3, [r3] 17941 cmp r3, #1 17942 bne .L2493 17943 bl FtlSysFlush 17944.L2493: 17945 movs r0, #0 17946 pop {r3, pc} 17947.L2495: 17948 .align 2 17949.L2494: 17950 .word .LANCHOR231 17951 .size FtlDeInit, .-FtlDeInit 17952 .section .text.rk_ftl_de_init,"ax",%progbits 17953 .align 1 17954 .global rk_ftl_de_init 17955 .syntax unified 17956 .thumb 17957 .thumb_func 17958 .fpu softvfp 17959 .type rk_ftl_de_init, %function 17960rk_ftl_de_init: 17961 @ args = 0, pretend = 0, frame = 0 17962 @ frame_needed = 0, uses_anonymous_args = 0 17963 push {r3, lr} 17964 bl FlashDeInit 17965 bl FtlDeInit 17966 pop {r3, lr} 17967 b FlashDeInit 17968 .size rk_ftl_de_init, .-rk_ftl_de_init 17969 .section .text.ftl_discard,"ax",%progbits 17970 .align 1 17971 .global ftl_discard 17972 .syntax unified 17973 .thumb 17974 .thumb_func 17975 .fpu softvfp 17976 .type ftl_discard, %function 17977ftl_discard: 17978 @ args = 0, pretend = 0, frame = 8 17979 @ frame_needed = 0, uses_anonymous_args = 0 17980 ldr r3, .L2512 17981 push {r0, r1, r4, r5, r6, r7, r8, lr} 17982 mov r5, r2 17983 adds r2, r1, r2 17984 mov r6, r1 17985 ldr r3, [r3] 17986 cmp r2, r3 17987 bhi .L2505 17988 cmp r5, #31 17989 bhi .L2499 17990.L2500: 17991 movs r0, #0 17992.L2497: 17993 add sp, sp, #8 17994 @ sp needed 17995 pop {r4, r5, r6, r7, r8, pc} 17996.L2499: 17997 ldr r3, .L2512+4 17998 ldr r3, [r3] 17999 cmp r3, #0 18000 bne .L2500 18001 ldr r8, .L2512+16 18002 bl FtlCacheWriteBack 18003 mov r0, r6 18004 ldrh r4, [r8] 18005 mov r1, r4 18006 bl __aeabi_uidiv 18007 smulbb r3, r0, r4 18008 mov r7, r0 18009 subs r6, r6, r3 18010 uxth r6, r6 18011 cbz r6, .L2501 18012 subs r4, r4, r6 18013 adds r7, r7, #1 18014 cmp r4, r5 18015 it cs 18016 movcs r4, r5 18017 uxth r4, r4 18018 subs r5, r5, r4 18019.L2501: 18020 ldr r4, .L2512+8 18021 mov r3, #-1 18022 ldr r6, .L2512+12 18023 str r3, [sp, #4] 18024.L2502: 18025 ldrh r3, [r8] 18026 cmp r5, r3 18027 bcs .L2504 18028 ldr r3, .L2512+8 18029 ldr r2, [r3] 18030 cmp r2, #32 18031 bls .L2500 18032 movs r4, #0 18033 str r4, [r3] 18034 bl l2p_flush 18035 bl FtlVpcTblFlush 18036 b .L2500 18037.L2504: 18038 movs r2, #0 18039 mov r1, sp 18040 mov r0, r7 18041 bl log2phys 18042 ldr r3, [sp] 18043 adds r3, r3, #1 18044 beq .L2503 18045 ldr r3, [r4] 18046 movs r2, #1 18047 add r1, sp, #4 18048 mov r0, r7 18049 adds r3, r3, #1 18050 str r3, [r4] 18051 ldr r3, [r6] 18052 adds r3, r3, #1 18053 str r3, [r6] 18054 bl log2phys 18055 ldr r0, [sp] 18056 ubfx r0, r0, #10, #16 18057 bl P2V_block_in_plane 18058 bl decrement_vpc_count 18059.L2503: 18060 ldrh r3, [r8] 18061 adds r7, r7, #1 18062 subs r5, r5, r3 18063 b .L2502 18064.L2505: 18065 mov r0, #-1 18066 b .L2497 18067.L2513: 18068 .align 2 18069.L2512: 18070 .word .LANCHOR69 18071 .word .LANCHOR77 18072 .word .LANCHOR232 18073 .word .LANCHOR163 18074 .word .LANCHOR56 18075 .size ftl_discard, .-ftl_discard 18076 .section .text.Ftlscanalldata,"ax",%progbits 18077 .align 1 18078 .global Ftlscanalldata 18079 .syntax unified 18080 .thumb 18081 .thumb_func 18082 .fpu softvfp 18083 .type Ftlscanalldata, %function 18084Ftlscanalldata: 18085 @ args = 0, pretend = 0, frame = 8 18086 @ frame_needed = 0, uses_anonymous_args = 0 18087 push {r4, r5, r6, r7, r8, lr} 18088 movs r5, #0 18089 ldr r7, .L2528 18090 sub sp, sp, #32 18091 movs r1, #0 18092 ldr r8, .L2528+24 18093 ldr r0, .L2528+4 18094 bl printf 18095.L2515: 18096 ldr r3, [r7] 18097 cmp r5, r3 18098 bcc .L2521 18099 add sp, sp, #32 18100 @ sp needed 18101 pop {r4, r5, r6, r7, r8, pc} 18102.L2521: 18103 movs r2, #0 18104 add r1, sp, #28 18105 mov r0, r5 18106 bl log2phys 18107 ubfx r3, r5, #0, #11 18108 cbnz r3, .L2516 18109 ldr r2, [sp, #28] 18110 mov r1, r5 18111 mov r0, r8 18112 bl printf 18113.L2516: 18114 ldr r3, [sp, #28] 18115 adds r2, r3, #1 18116 beq .L2518 18117 ldr r4, .L2528+8 18118 movs r2, #0 18119 movs r1, #1 18120 str r3, [r4, #4] 18121 mov r0, r4 18122 ldr r3, .L2528+12 18123 str r5, [r4, #16] 18124 str r2, [r4] 18125 ldr r3, [r3] 18126 str r3, [r4, #8] 18127 ldr r3, .L2528+16 18128 ldr r6, [r3] 18129 str r6, [r4, #12] 18130 bl FlashReadPages 18131 ldr r3, [r4] 18132 cmp r3, #256 18133 beq .L2519 18134 adds r3, r3, #1 18135 beq .L2519 18136 ldr r3, [r6, #8] 18137 cmp r5, r3 18138 beq .L2518 18139.L2519: 18140 ldr r2, [r4, #8] 18141 ldr r3, [r4, #12] 18142 ldr r0, .L2528+20 18143 ldr r1, [r2, #4] 18144 str r1, [sp, #16] 18145 mov r1, r5 18146 ldr r2, [r2] 18147 str r2, [sp, #12] 18148 ldr r2, [r3, #12] 18149 str r2, [sp, #8] 18150 ldr r2, [r3, #8] 18151 str r2, [sp, #4] 18152 ldr r2, [r3, #4] 18153 str r2, [sp] 18154 ldr r2, [r4, #4] 18155 ldr r3, [r3] 18156 bl printf 18157.L2518: 18158 adds r5, r5, #1 18159 b .L2515 18160.L2529: 18161 .align 2 18162.L2528: 18163 .word .LANCHOR73 18164 .word .LC58 18165 .word .LANCHOR202 18166 .word .LANCHOR183 18167 .word .LANCHOR188 18168 .word .LC60 18169 .word .LC59 18170 .size Ftlscanalldata, .-Ftlscanalldata 18171 .section .text.FtlReUsePrevPpa,"ax",%progbits 18172 .align 1 18173 .global FtlReUsePrevPpa 18174 .syntax unified 18175 .thumb 18176 .thumb_func 18177 .fpu softvfp 18178 .type FtlReUsePrevPpa, %function 18179FtlReUsePrevPpa: 18180 @ args = 0, pretend = 0, frame = 8 18181 @ frame_needed = 0, uses_anonymous_args = 0 18182 push {r0, r1, r4, r5, r6, r7, r8, lr} 18183 mov r6, r0 18184 ldr r5, .L2540 18185 ubfx r0, r1, #10, #16 18186 str r1, [sp, #4] 18187 bl P2V_block_in_plane 18188 ldr r2, [r5] 18189 mov r7, r0 18190 ldrh r3, [r2, r0, lsl #1] 18191 cmp r3, #0 18192 bne .L2531 18193 ldr r2, .L2540+4 18194 ldr r4, [r2] 18195 cmp r4, #0 18196 beq .L2532 18197 ldr r2, .L2540+8 18198 movw lr, #65535 18199 ldr ip, .L2540+32 18200 ldr r0, .L2540+12 18201 ldr r2, [r2] 18202 ldrh r1, [r0] 18203 mov r8, r0 18204 subs r4, r4, r2 18205 asrs r4, r4, #1 18206 mul r4, ip, r4 18207 mov ip, #6 18208 uxth r4, r4 18209.L2533: 18210 uxth r0, r3 18211 cmp r1, r0 18212 bls .L2532 18213 cmp r4, r7 18214 bne .L2534 18215 mov r1, r4 18216 ldr r0, .L2540+4 18217 bl List_remove_node 18218 ldrh r3, [r8] 18219 cbnz r3, .L2535 18220 ldr r1, .L2540+16 18221 movw r2, #2070 18222 ldr r0, .L2540+20 18223 bl printf 18224 ldr r1, .L2540+24 18225 ldr r0, .L2540+28 18226 bl printf 18227.L2535: 18228 ldrh r3, [r8] 18229 mov r0, r4 18230 subs r3, r3, #1 18231 strh r3, [r8] @ movhi 18232 bl INSERT_DATA_LIST 18233 ldr r2, [r5] 18234 ldrh r3, [r2, r7, lsl #1] 18235.L2531: 18236 adds r3, r3, #1 18237 strh r3, [r2, r7, lsl #1] @ movhi 18238 b .L2532 18239.L2534: 18240 mul r4, ip, r4 18241 adds r3, r3, #1 18242 ldrh r4, [r2, r4] 18243 cmp r4, lr 18244 bne .L2533 18245.L2532: 18246 movs r2, #1 18247 add r1, sp, #4 18248 mov r0, r6 18249 bl log2phys 18250 add sp, sp, #8 18251 @ sp needed 18252 pop {r4, r5, r6, r7, r8, pc} 18253.L2541: 18254 .align 2 18255.L2540: 18256 .word .LANCHOR84 18257 .word .LANCHOR88 18258 .word .LANCHOR82 18259 .word .LANCHOR89 18260 .word .LANCHOR233 18261 .word .LC5 18262 .word .LC6 18263 .word .LC7 18264 .word -1431655765 18265 .size FtlReUsePrevPpa, .-FtlReUsePrevPpa 18266 .section .text.FtlRecoverySuperblock,"ax",%progbits 18267 .align 1 18268 .global FtlRecoverySuperblock 18269 .syntax unified 18270 .thumb 18271 .thumb_func 18272 .fpu softvfp 18273 .type FtlRecoverySuperblock, %function 18274FtlRecoverySuperblock: 18275 @ args = 0, pretend = 0, frame = 56 18276 @ frame_needed = 0, uses_anonymous_args = 0 18277 ldrh r3, [r0] 18278 movw r2, #65535 18279 push {r4, r5, r6, r7, r8, r10, fp, lr} 18280 mov r10, r0 18281 sub sp, sp, #56 18282 cmp r3, r2 18283 beq .L2702 18284 ldrh r3, [r0, #2] 18285 str r3, [sp, #12] 18286 ldrb r3, [r0, #6] @ zero_extendqisi2 18287 ldr r1, [sp, #12] 18288 str r3, [sp, #28] 18289 ldr r3, .L2711 18290 ldrh r3, [r3] 18291 cmp r3, r1 18292 mov r3, #0 18293 bne .L2545 18294 strh r3, [r0, #4] @ movhi 18295.L2709: 18296 strb r3, [r10, #6] 18297.L2702: 18298 movs r0, #0 18299 add sp, sp, #56 18300 @ sp needed 18301 pop {r4, r5, r6, r7, r8, r10, fp, pc} 18302.L2545: 18303 ldrh r0, [r0, #16] 18304.L2546: 18305 cmp r0, r2 18306 uxth r5, r3 18307 add r3, r3, #1 18308 beq .L2547 18309 ldrb r1, [r10, #8] @ zero_extendqisi2 18310 cmp r1, #1 18311 bne .L2548 18312 bl FtlGetLastWrittenPage 18313 adds r6, r0, #1 18314 mov r4, r0 18315 beq .L2549 18316 ldr r3, .L2711+4 18317 ldrb r3, [r3] @ zero_extendqisi2 18318 cmp r3, #0 18319 bne .L2626 18320 ldr r3, .L2711+8 18321 ldrh r5, [r3, r0, lsl #1] 18322.L2550: 18323 ldr r3, .L2711+12 18324 movw r8, #65535 18325 mov fp, #36 18326 ldrh ip, [r3] 18327 ldr r3, .L2711+16 18328 ldr r0, [r3] 18329 ldr r3, .L2711+20 18330 ldr r3, [r3] 18331 str r3, [sp, #8] 18332 ldr r3, .L2711+24 18333 ldrh lr, [r3] 18334 add r3, r10, #16 18335 str r3, [sp, #20] 18336 str r3, [sp, #4] 18337 movs r3, #0 18338 mov r6, r3 18339.L2551: 18340 uxth r2, r3 18341 cmp ip, r2 18342 bhi .L2555 18343 ldrb r3, [r10, #8] @ zero_extendqisi2 18344 cmp r3, #1 18345 bne .L2627 18346 ldr r3, .L2711+4 18347 ldrb r3, [r3] @ zero_extendqisi2 18348 adds r3, r3, #0 18349 it ne 18350 movne r3, #1 18351.L2703: 18352 str r3, [sp, #36] 18353 mov r1, r6 18354 ldr r2, [sp, #36] 18355 movs r7, #0 18356 bl FlashReadPages 18357 ldr r3, .L2711+28 18358 movw fp, #65535 18359 ldr r8, .L2711+16 18360 ldr r3, [r3] 18361 subs r3, r3, #1 18362 str r3, [sp, #4] 18363.L2557: 18364 uxth r3, r7 18365 cmp r6, r3 18366 bhi .L2562 18367 bne .L2560 18368 adds r4, r4, #1 18369 uxth r3, r4 18370 str r3, [sp, #8] 18371 ldr r3, [r8] 18372 ldr r0, [r3, #4] 18373.L2704: 18374 ubfx r0, r0, #10, #16 18375 bl P2V_plane 18376 ldrb r3, [r10, #8] @ zero_extendqisi2 18377 str r0, [sp, #16] 18378 cmp r3, #1 18379 bne .L2564 18380 ldr r2, .L2711+4 18381 ldrb r2, [r2] @ zero_extendqisi2 18382 cbnz r2, .L2564 18383 ldr r1, [sp, #8] 18384 ldr r2, .L2711+8 18385 ldrh r2, [r2, r1, lsl #1] 18386 str r2, [sp, #8] 18387.L2564: 18388 ldr r2, .L2711 18389 ldr r1, [sp, #8] 18390 ldrh r2, [r2] 18391 cmp r2, r1 18392 bne .L2565 18393 ldrh r2, [sp, #8] 18394 strh r2, [r10, #2] @ movhi 18395 movs r2, #0 18396 strb r2, [r10, #6] 18397 strh r2, [r10, #4] @ movhi 18398.L2565: 18399 ldr r2, [sp, #8] 18400 ldr r1, [sp, #12] 18401 cmp r2, r1 18402 bne .L2566 18403 ldr r2, [sp, #16] 18404 ldr r1, [sp, #28] 18405 cmp r2, r1 18406 bne .L2566 18407.L2710: 18408 ldr r1, [sp, #8] 18409 mov r0, r10 18410 bl ftl_sb_update_avl_pages 18411 b .L2702 18412.L2547: 18413 uxth r1, r3 18414 adds r1, r1, #8 18415 ldrh r0, [r10, r1, lsl #1] 18416 b .L2546 18417.L2548: 18418 movs r1, #0 18419 bl FtlGetLastWrittenPage 18420 mov r4, r0 18421 adds r0, r0, #1 18422 beq .L2549 18423.L2626: 18424 mov r5, r4 18425 b .L2550 18426.L2549: 18427 ldr r3, [sp, #12] 18428 cbz r3, .L2552 18429 ldr r1, .L2711+32 18430 movw r2, #2141 18431 ldr r0, .L2711+36 18432 bl printf 18433 ldr r1, .L2711+40 18434 ldr r0, .L2711+44 18435 bl printf 18436.L2552: 18437 ldr r3, [sp, #28] 18438 cbz r3, .L2553 18439 cmp r5, r3 18440 beq .L2553 18441 ldr r1, .L2711+32 18442 movw r2, #2142 18443 ldr r0, .L2711+36 18444 bl printf 18445 ldr r1, .L2711+40 18446 ldr r0, .L2711+44 18447 bl printf 18448.L2553: 18449 movs r3, #0 18450 strh r3, [r10, #2] @ movhi 18451 b .L2709 18452.L2555: 18453 ldr r1, [sp, #4] 18454 ldrh r2, [r1], #2 18455 cmp r2, r8 18456 str r1, [sp, #4] 18457 beq .L2554 18458 mla r1, fp, r6, r0 18459 orr r2, r5, r2, lsl #10 18460 str r2, [r1, #4] 18461 movs r2, #0 18462 str r2, [r1, #8] 18463 mul r2, lr, r6 18464 adds r6, r6, #1 18465 uxth r6, r6 18466 bic r2, r2, #3 18467 mov r7, r2 18468 ldr r2, [sp, #8] 18469 add r7, r7, r2 18470 str r7, [r1, #12] 18471.L2554: 18472 adds r3, r3, #1 18473 b .L2551 18474.L2627: 18475 movs r3, #0 18476 b .L2703 18477.L2562: 18478 movs r3, #36 18479 ldr r1, [r8] 18480 muls r3, r7, r3 18481 adds r2, r1, r3 18482 ldr r3, [r1, r3] 18483 cbnz r3, .L2558 18484 ldr r2, [r2, #12] 18485 ldr r3, [r2, #4] 18486 adds r1, r3, #1 18487 beq .L2559 18488 ldr r1, .L2711+28 18489 mov r0, r3 18490 ldr r1, [r1] 18491 bl ftl_cmp_data_ver 18492 cbz r0, .L2559 18493 ldr r1, .L2711+28 18494 adds r3, r3, #1 18495 str r3, [r1] 18496.L2559: 18497 ldr r3, [r2] 18498 adds r3, r3, #1 18499 bne .L2561 18500.L2560: 18501 uxth r3, r4 18502 uxth r7, r7 18503 str r3, [sp, #8] 18504 movs r2, #36 18505 ldr r3, [r8] 18506 mla r7, r2, r7, r3 18507 ldr r0, [r7, #4] 18508 b .L2704 18509.L2558: 18510 ldr r1, [r2, #4] 18511 uxth fp, r5 18512 ldr r0, .L2711+48 18513 bl printf 18514 ldrh r2, [r10] 18515 ldr r3, .L2711+52 18516 strh r2, [r3] @ movhi 18517.L2561: 18518 adds r7, r7, #1 18519 b .L2557 18520.L2566: 18521 movw r2, #65535 18522 cmp fp, r2 18523 bne .L2567 18524 cmp r3, #0 18525 bne .L2568 18526.L2567: 18527 ldr r3, .L2711+56 18528 uxth fp, r5 18529 uxth r5, r5 18530 mov r7, #-1 18531 mov r6, r7 18532 ldr r2, [r3] 18533 adds r2, r2, #1 18534 itt eq 18535 ldreq r2, [sp, #4] 18536 streq r2, [r3] 18537 ldr r3, [r3] 18538 str r3, [sp, #24] 18539 ldr r3, [sp, #12] 18540 adds r3, r3, #7 18541 cmp r5, r3 18542 itet gt 18543 subgt r4, fp, #7 18544 ldrle r4, [sp, #12] 18545 uxthgt r4, r4 18546.L2571: 18547 cmp r4, fp 18548 bhi .L2586 18549 ldr r3, .L2711+12 18550 movw lr, #65535 18551 mov ip, #36 18552 ldrh r8, [r3] 18553 ldr r3, .L2711+16 18554 ldr r0, [r3] 18555 ldr r3, [sp, #20] 18556 str r3, [sp, #32] 18557 movs r3, #0 18558 mov r5, r3 18559 b .L2587 18560.L2573: 18561 ldr r1, [sp, #32] 18562 ldrh r2, [r1], #2 18563 cmp r2, lr 18564 str r1, [sp, #32] 18565 beq .L2572 18566 mla r1, ip, r5, r0 18567 adds r5, r5, #1 18568 orr r2, r4, r2, lsl #10 18569 uxth r5, r5 18570 str r2, [r1, #4] 18571.L2572: 18572 adds r3, r3, #1 18573.L2587: 18574 uxth r2, r3 18575 cmp r8, r2 18576 bhi .L2573 18577 mov r1, r5 18578 ldr r2, [sp, #36] 18579 bl FlashReadPages 18580 ldr r2, .L2711+4 18581 movs r1, #36 18582 ldr r3, .L2711+56 18583 movs r0, #0 18584 movw ip, #65535 18585 ldrb lr, [r2] @ zero_extendqisi2 18586 ldr r2, .L2711+16 18587 ldr r3, [r3] 18588 ldr r2, [r2] 18589 mla r5, r1, r5, r2 18590.L2574: 18591 cmp r5, r2 18592 bne .L2584 18593 cbz r0, .L2585 18594 ldr r2, .L2711+56 18595 str r3, [r2] 18596.L2585: 18597 adds r4, r4, #1 18598 uxth r4, r4 18599 b .L2571 18600.L2712: 18601 .align 2 18602.L2711: 18603 .word .LANCHOR53 18604 .word .LANCHOR8 18605 .word .LANCHOR16 18606 .word .LANCHOR38 18607 .word .LANCHOR180 18608 .word .LANCHOR106 18609 .word .LANCHOR59 18610 .word .LANCHOR160 18611 .word .LANCHOR234 18612 .word .LC5 18613 .word .LC6 18614 .word .LC7 18615 .word .LC61 18616 .word .LANCHOR235 18617 .word .LANCHOR136 18618.L2584: 18619 ldr r1, [r2] 18620 cbnz r1, .L2575 18621 ldr r1, [r2, #12] 18622 ldrh r8, [r1] 18623 cmp r8, ip 18624 beq .L2630 18625 ldr r1, [r1, #4] 18626 cmp r1, #-1 18627 beq .L2630 18628 adds r0, r7, #1 18629 bne .L2632 18630 ldr r0, .L2713 18631 ldrh r0, [r0, r4, lsl #1] 18632 cmp r0, ip 18633 bne .L2577 18634 cmp lr, #0 18635 beq .L2632 18636.L2577: 18637 ldr r0, [sp, #4] 18638 cmp r0, r3 18639 it ne 18640 movne r7, r3 18641.L2632: 18642 movs r0, #1 18643 b .L2576 18644.L2575: 18645 cbz r0, .L2578 18646 ldr r2, .L2713+4 18647 str r3, [r2] 18648.L2578: 18649 ldr r3, .L2713+8 18650 ldrh r2, [r10] 18651 strh r2, [r3] @ movhi 18652 ldrb r3, [r10, #8] @ zero_extendqisi2 18653 cbnz r3, .L2568 18654 ldr r3, .L2713 18655 ldrh r2, [r3, r4, lsl #1] 18656 movw r3, #65535 18657 cmp r2, r3 18658 bne .L2580 18659 adds r1, r7, #1 18660 ldr r3, .L2713+4 18661 beq .L2581 18662 str r7, [r3] 18663.L2568: 18664 ldr fp, [sp, #12] 18665 movs r2, #1 18666 ldr r6, .L2713+12 18667 ldr r3, .L2713+16 18668 strh r2, [r3] @ movhi 18669.L2588: 18670 ldr r3, .L2713+20 18671 movw ip, #65535 18672 ldr r0, [r6] 18673 mov lr, #36 18674 ldr r1, [sp, #20] 18675 movs r2, #0 18676 ldrh r5, [r3] 18677 ldr r3, .L2713+24 18678 str r2, [sp, #24] 18679 ldrb r7, [r3] @ zero_extendqisi2 18680.L2589: 18681 uxth r3, r2 18682 cmp r3, r5 18683 bcc .L2592 18684 ldr r2, [sp, #36] 18685 ldr r1, [sp, #24] 18686 bl FlashReadPages 18687 movs r3, #0 18688.L2708: 18689 str r3, [sp, #32] 18690 ldr r2, [sp, #24] 18691 ldrh r3, [sp, #32] 18692 cmp r2, r3 18693 bhi .L2620 18694 ldrb r3, [r10, #8] @ zero_extendqisi2 18695 add fp, fp, #1 18696 uxth fp, fp 18697 cmp r3, #1 18698 bne .L2621 18699 ldr r3, .L2713+24 18700 ldrb r3, [r3] @ zero_extendqisi2 18701 cbz r3, .L2621 18702 ldr r3, .L2713+28 18703 ldrh r3, [r3] 18704 cmp r3, fp 18705 bne .L2621 18706 ldr r3, [sp, #8] 18707 cmp r3, fp 18708 beq .L2597 18709.L2621: 18710 ldr r3, .L2713+32 18711 ldrh r3, [r3] 18712 cmp r3, fp 18713 bne .L2588 18714 ldr r2, .L2713+20 18715 movw r0, #65535 18716 movs r3, #0 18717 strh fp, [r10, #2] @ movhi 18718 strh r3, [r10, #4] @ movhi 18719 ldrh r2, [r2] 18720.L2622: 18721 uxth r1, r3 18722 cmp r1, r2 18723 bcs .L2702 18724 ldr r1, [sp, #20] 18725 ldrh r4, [r1], #2 18726 cmp r4, r0 18727 str r1, [sp, #20] 18728 add r1, r3, #1 18729 bne .L2709 18730 mov r3, r1 18731 b .L2622 18732.L2581: 18733 ldr r2, [sp, #4] 18734 ldr r1, [sp, #24] 18735 cmp r2, r1 18736 itet eq 18737 ldreq r2, [r3] 18738 movne r2, r1 18739 addeq r2, r2, #-1 18740.L2705: 18741 str r2, [r3] 18742 b .L2568 18743.L2580: 18744 ldr r3, [sp, #4] 18745 cmp r6, r3 18746 beq .L2583 18747 adds r2, r6, #1 18748 beq .L2568 18749 ldr r3, .L2713+4 18750 str r6, [r3] 18751 b .L2568 18752.L2583: 18753 ldr r2, .L2713+4 18754 ldr r1, [sp, #4] 18755 ldr r3, [r2] 18756 cmp r1, r3 18757 beq .L2568 18758 subs r3, r3, #1 18759 str r3, [r2] 18760 b .L2568 18761.L2630: 18762 mov r1, r3 18763 mov r3, r6 18764.L2576: 18765 mov r6, r3 18766 adds r2, r2, #36 18767 mov r3, r1 18768 b .L2574 18769.L2586: 18770 mov r2, #-1 18771 ldr r3, .L2713+4 18772 b .L2705 18773.L2592: 18774 ldrh r3, [r1], #2 18775 cmp r3, ip 18776 beq .L2590 18777 ldr r4, [sp, #24] 18778 orr r3, fp, r3, lsl #10 18779 mla r4, lr, r4, r0 18780 str r3, [r4, #4] 18781 ldrb r8, [r10, #8] @ zero_extendqisi2 18782 cmp r8, #1 18783 bne .L2591 18784 cbz r7, .L2591 18785 orr r3, r3, #-2147483648 18786 str r3, [r4, #4] 18787.L2591: 18788 ldr r3, [sp, #24] 18789 adds r3, r3, #1 18790 uxth r3, r3 18791 str r3, [sp, #24] 18792.L2590: 18793 adds r2, r2, #1 18794 b .L2589 18795.L2620: 18796 ldr r3, [sp, #32] 18797 movs r5, #36 18798 ldr r8, [r6] 18799 muls r5, r3, r5 18800 add r7, r8, r5 18801 ldr r4, [r7, #4] 18802 ubfx r0, r4, #10, #16 18803 str r4, [sp, #52] 18804 bl P2V_plane 18805 ldr r3, [sp, #12] 18806 cmp fp, r3 18807 bcc .L2594 18808 bne .L2595 18809 ldr r3, [sp, #28] 18810 cmp r3, r0 18811 bhi .L2594 18812.L2595: 18813 ldr r3, [sp, #8] 18814 cmp fp, r3 18815 bne .L2596 18816 ldr r3, [sp, #16] 18817 cmp r3, r0 18818 beq .L2597 18819.L2596: 18820 ldr r3, [r8, r5] 18821 adds r3, r3, #1 18822 beq .L2598 18823 ldr r3, [r7, #12] 18824 movw r2, #61589 18825 ldrh r1, [r3] 18826 cmp r1, r2 18827 beq .L2599 18828 ldrh r0, [r10] 18829.L2706: 18830 bl decrement_vpc_count 18831 b .L2594 18832.L2599: 18833 ldr r2, [r3, #4] 18834 str r2, [sp, #4] 18835 adds r2, r2, #1 18836 beq .L2600 18837 ldr r2, .L2713+36 18838 ldr r0, [sp, #4] 18839 ldr r1, [r2] 18840 bl ftl_cmp_data_ver 18841 cbz r0, .L2600 18842 ldr r1, [sp, #4] 18843 adds r1, r1, #1 18844 str r1, [r2] 18845.L2600: 18846 ldr r4, [r3, #8] 18847 add r1, sp, #48 18848 ldr r3, [r3, #12] 18849 movs r2, #0 18850 mov r0, r4 18851 str r3, [sp, #44] 18852 bl log2phys 18853 ldr r3, .L2713+4 18854 ldr r1, [r3] 18855 adds r3, r1, #1 18856 beq .L2601 18857 ldr r0, [sp, #4] 18858 bl ftl_cmp_data_ver 18859 cmp r0, #0 18860 beq .L2601 18861 ldr r3, [sp, #44] 18862 adds r7, r3, #1 18863 beq .L2602 18864 ldr r0, [r6] 18865 movs r2, #0 18866 movs r1, #1 18867 add r0, r0, r5 18868 str r3, [r0, #4] 18869 ldr r7, [r0, #12] 18870 bl FlashReadPages 18871 ldr r2, [r6] 18872 ldr r1, [r2, r5] 18873 adds r3, r2, r5 18874 adds r1, r1, #1 18875 bne .L2603 18876.L2604: 18877 mov r3, #-1 18878 str r3, [sp, #44] 18879.L2611: 18880 ldr r7, [sp, #44] 18881 adds r0, r7, #1 18882 beq .L2594 18883.L2625: 18884 ubfx r0, r7, #10, #16 18885 bl P2V_block_in_plane 18886 ldr r3, .L2713+40 18887 mov r4, r0 18888 ldrh r3, [r3] 18889 cmp r3, r0 18890 bhi .L2616 18891 ldr r1, .L2713+44 18892 movw r2, #2425 18893 ldr r0, .L2713+48 18894 bl printf 18895 ldr r1, .L2713+52 18896 ldr r0, .L2713+56 18897 bl printf 18898.L2616: 18899 ldr r3, .L2713+60 18900 ldr r3, [r3] 18901 ldrh r3, [r3, r4, lsl #1] 18902 cmp r3, #0 18903 beq .L2617 18904 mov r0, r4 18905 b .L2706 18906.L2602: 18907 ldr r3, [sp, #52] 18908 ldr r2, [sp, #48] 18909 cmp r2, r3 18910 bne .L2594 18911 movs r2, #1 18912 add r1, sp, #44 18913 mov r0, r4 18914 bl log2phys 18915.L2594: 18916 ldr r3, [sp, #32] 18917 adds r3, r3, #1 18918 b .L2708 18919.L2603: 18920 ldr r1, [r7, #8] 18921 cmp r4, r1 18922 bne .L2604 18923 ldr r8, [r7, #4] 18924 ldr r0, .L2713+4 18925 mov r1, r8 18926 ldr r0, [r0] 18927 bl ftl_cmp_data_ver 18928 cmp r0, #0 18929 beq .L2604 18930 ldr r1, [sp, #48] 18931 ldr r0, [sp, #52] 18932 cmp r1, r0 18933 bne .L2606 18934.L2609: 18935 ldr r1, [sp, #44] 18936 mov r0, r4 18937 bl FtlReUsePrevPpa 18938 b .L2604 18939.L2714: 18940 .align 2 18941.L2713: 18942 .word .LANCHOR120 18943 .word .LANCHOR136 18944 .word .LANCHOR235 18945 .word .LANCHOR180 18946 .word .LANCHOR236 18947 .word .LANCHOR38 18948 .word .LANCHOR8 18949 .word .LANCHOR54 18950 .word .LANCHOR53 18951 .word .LANCHOR160 18952 .word .LANCHOR40 18953 .word .LANCHOR234 18954 .word .LC5 18955 .word .LC6 18956 .word .LC7 18957 .word .LANCHOR84 18958.L2606: 18959 ldr r0, [sp, #44] 18960 cmp r1, r0 18961 beq .L2604 18962 adds r0, r1, #1 18963 beq .L2607 18964 str r1, [r3, #4] 18965 movs r2, #0 18966 movs r1, #1 18967 mov r0, r3 18968 ldr r7, [r3, #12] 18969 bl FlashReadPages 18970.L2608: 18971 ldr r3, [r6] 18972 ldr r3, [r3, r5] 18973 adds r3, r3, #1 18974 beq .L2609 18975 ldr r3, [r7, #4] 18976 ldr r2, .L2715 18977 mov r1, r3 18978 ldr r0, [r2] 18979 bl ftl_cmp_data_ver 18980 cmp r0, #0 18981 beq .L2609 18982 mov r1, r3 18983 mov r0, r8 18984 bl ftl_cmp_data_ver 18985 cmp r0, #0 18986 beq .L2604 18987 b .L2609 18988.L2607: 18989 str r1, [r2, r5] 18990 b .L2608 18991.L2601: 18992 ldr r3, [sp, #52] 18993 ldr r2, [sp, #48] 18994 cmp r2, r3 18995 beq .L2611 18996 movs r2, #1 18997 add r1, sp, #52 18998 mov r0, r4 18999 bl log2phys 19000 ldr r7, [sp, #48] 19001 adds r5, r7, #1 19002 beq .L2611 19003 ldr r3, [sp, #44] 19004 cmp r7, r3 19005 beq .L2625 19006 ubfx r0, r7, #10, #16 19007 bl P2V_block_in_plane 19008 ldr r3, .L2715+4 19009 ldrh r3, [r3] 19010 cmp r3, r0 19011 beq .L2615 19012 ldr r3, .L2715+8 19013 ldrh r3, [r3] 19014 cmp r3, r0 19015 beq .L2615 19016 ldr r3, .L2715+12 19017 ldrh r3, [r3] 19018 cmp r3, r0 19019 bne .L2611 19020.L2615: 19021 ldr r0, [r6] 19022 movs r2, #0 19023 movs r1, #1 19024 str r7, [r0, #4] 19025 ldr r5, [r0, #12] 19026 bl FlashReadPages 19027 ldr r3, [r6] 19028 ldr r3, [r3] 19029 adds r3, r3, #1 19030 beq .L2611 19031 ldr r1, [r5, #4] 19032 ldr r0, [sp, #4] 19033 bl ftl_cmp_data_ver 19034 cmp r0, #0 19035 bne .L2611 19036 movs r2, #1 19037 add r1, sp, #48 19038 mov r0, r4 19039 bl log2phys 19040 b .L2611 19041.L2617: 19042 mov r1, r4 19043 ldr r0, .L2715+16 19044 bl printf 19045 b .L2594 19046.L2598: 19047 ldrh r3, [r10] 19048 mov r1, r4 19049 ldr r2, .L2715+20 19050 ldr r0, .L2715+24 19051 strh r3, [r2] @ movhi 19052 ldr r2, [sp, #4] 19053 bl printf 19054 ldr r2, .L2715+28 19055 ldr r3, [r2] 19056 cmp r3, #31 19057 bhi .L2618 19058 ldr r0, [sp, #52] 19059 ldr r1, .L2715+32 19060 str r0, [r1, r3, lsl #2] 19061 adds r3, r3, #1 19062 str r3, [r2] 19063.L2618: 19064 ldrh r0, [r10] 19065 bl decrement_vpc_count 19066 ldr r3, .L2715 19067 ldr r2, [r3] 19068 adds r1, r2, #1 19069 bne .L2619 19070 ldr r2, [sp, #4] 19071.L2707: 19072 str r2, [r3] 19073 b .L2594 19074.L2619: 19075 ldr r1, [sp, #4] 19076 cmp r1, r2 19077 bcs .L2594 19078 mov r2, r1 19079 b .L2707 19080.L2597: 19081 ldrb r3, [sp, #16] @ zero_extendqisi2 19082 ldr r2, [sp, #16] 19083 strb r3, [r10, #6] 19084 ldrh r3, [sp, #8] 19085 strh r3, [r10, #2] @ movhi 19086 b .L2710 19087.L2716: 19088 .align 2 19089.L2715: 19090 .word .LANCHOR136 19091 .word .LANCHOR92 19092 .word .LANCHOR93 19093 .word .LANCHOR94 19094 .word .LC62 19095 .word .LANCHOR235 19096 .word .LC63 19097 .word .LANCHOR237 19098 .word .LANCHOR238 19099 .size FtlRecoverySuperblock, .-FtlRecoverySuperblock 19100 .section .text.FtlGcFreeTempBlock,"ax",%progbits 19101 .align 1 19102 .global FtlGcFreeTempBlock 19103 .syntax unified 19104 .thumb 19105 .thumb_func 19106 .fpu softvfp 19107 .type FtlGcFreeTempBlock, %function 19108FtlGcFreeTempBlock: 19109 @ args = 0, pretend = 0, frame = 16 19110 @ frame_needed = 0, uses_anonymous_args = 0 19111 push {r0, r1, r2, r3, r4, r5, r6, r7, r8, r10, fp, lr} 19112 ldr r3, .L2740 19113 ldr r3, [r3] 19114 cbz r3, .L2718 19115.L2723: 19116 movs r0, #0 19117.L2717: 19118 add sp, sp, #16 19119 @ sp needed 19120 pop {r4, r5, r6, r7, r8, r10, fp, pc} 19121.L2718: 19122 ldr r0, .L2740+4 19123 movw r3, #65535 19124 ldr r5, .L2740+8 19125 ldrh r6, [r0] 19126 mov r4, r0 19127 cmp r6, r3 19128 beq .L2720 19129 ldr r3, .L2740+12 19130 ldrh r1, [r3] 19131 bl FtlGcScanTempBlk 19132 str r0, [sp, #12] 19133 adds r0, r0, #1 19134 beq .L2720 19135 ldr r3, .L2740+16 19136 ldr r2, [r3] 19137 ldrh r3, [r2, r6, lsl #1] 19138 cmp r3, #4 19139 bls .L2721 19140 subs r3, r3, #5 19141 movs r0, #1 19142 strh r3, [r2, r6, lsl #1] @ movhi 19143 bl FtlEctTblFlush 19144.L2721: 19145 ldr r3, [r5] 19146 cbnz r3, .L2722 19147 ldr r2, .L2740+20 19148 ldr r0, [sp, #12] 19149 ldr r3, [r2, #96] 19150 ubfx r0, r0, #10, #16 19151 adds r3, r3, #1 19152 str r3, [r2, #96] 19153 bl FtlBbmMapBadBlock 19154 bl FtlBbmTblFlush 19155.L2722: 19156 movs r3, #0 19157 movs r0, #1 19158 str r3, [r5] 19159 b .L2717 19160.L2720: 19161 ldrh r2, [r4] 19162 movs r3, #0 19163 str r3, [r5] 19164 movw r3, #65535 19165 cmp r2, r3 19166 beq .L2723 19167 ldr r6, .L2740+12 19168 bl FtlCacheWriteBack 19169 ldrb r0, [r4, #7] @ zero_extendqisi2 19170 ldrh r2, [r6] 19171 ldr r5, .L2740+24 19172 muls r2, r0, r2 19173 ldrh r1, [r5] 19174 cmp r1, r2 19175 beq .L2724 19176 ldr r1, .L2740+28 19177 movs r2, #163 19178 ldr r0, .L2740+32 19179 bl printf 19180 ldr r1, .L2740+36 19181 ldr r0, .L2740+40 19182 bl printf 19183.L2724: 19184 ldrh r6, [r6] 19185 ldrb r3, [r4, #7] @ zero_extendqisi2 19186 ldr r2, .L2740+44 19187 ldrh r0, [r4] 19188 ldr fp, .L2740+84 19189 smulbb r3, r3, r6 19190 ldr r1, [r2] 19191 movs r6, #0 19192 str r2, [sp, #4] 19193 strh r3, [r1, r0, lsl #1] @ movhi 19194 ldr r1, .L2740+48 19195 ldrh r3, [r5] 19196 ldr r0, [r1] 19197 add r3, r3, r0 19198 str r3, [r1] 19199.L2725: 19200 ldrh r2, [r5] 19201 uxth r3, r6 19202 cmp r2, r3 19203 bhi .L2729 19204 movw r0, #65535 19205 bl decrement_vpc_count 19206 ldr r3, .L2740+52 19207 ldrb r3, [r3] @ zero_extendqisi2 19208 cbz r3, .L2730 19209 ldrh r1, [r4] 19210 ldr r0, .L2740+56 19211 bl printf 19212.L2730: 19213 ldr r3, [sp, #4] 19214 ldrh r0, [r4] 19215 ldr r3, [r3] 19216 ldrh r3, [r3, r0, lsl #1] 19217 cmp r3, #0 19218 beq .L2731 19219 bl INSERT_DATA_LIST 19220.L2732: 19221 ldr r3, .L2740+60 19222 movw r6, #65535 19223 strh r6, [r4] @ movhi 19224 movs r4, #0 19225 strh r4, [r5] @ movhi 19226 strh r4, [r3] @ movhi 19227 bl l2p_flush 19228 bl FtlVpcTblFlush 19229 ldr r3, .L2740+64 19230 strh r6, [r3] @ movhi 19231 ldr r3, .L2740+68 19232 ldrh r2, [r3] 19233 ldr r3, .L2740+72 19234 ldrh r3, [r3] 19235 add r3, r3, r3, lsl #1 19236 cmp r2, r3, asr #2 19237 ble .L2723 19238 ldr r3, .L2740+76 19239 movs r2, #20 19240 mov r0, r4 19241 strh r2, [r3] @ movhi 19242 b .L2717 19243.L2729: 19244 uxth r3, r6 19245 movs r7, #12 19246 ldr r2, [fp] 19247 muls r7, r3, r7 19248 ldr r3, .L2740+80 19249 ldr r8, [r3] 19250 add r10, r8, r7 19251 ldr r1, [r10, #8] 19252 cmp r1, r2 19253 bcc .L2726 19254 ldr r1, .L2740+28 19255 movs r2, #168 19256 ldr r0, .L2740+32 19257 bl printf 19258 ldr r1, .L2740+36 19259 ldr r0, .L2740+40 19260 bl printf 19261.L2726: 19262 movs r2, #0 19263 add r1, sp, #12 19264 ldr r0, [r10, #8] 19265 bl log2phys 19266 ldr r2, [sp, #12] 19267 ldr r0, [r8, r7] 19268 cmp r0, r2 19269 bne .L2727 19270 ubfx r0, r0, #10, #16 19271 bl P2V_block_in_plane 19272 movs r2, #1 19273 mov r7, r0 19274 add r1, r10, #4 19275 ldr r0, [r10, #8] 19276 bl log2phys 19277 mov r0, r7 19278.L2739: 19279 bl decrement_vpc_count 19280.L2728: 19281 adds r6, r6, #1 19282 b .L2725 19283.L2727: 19284 ldr r3, [r10, #4] 19285 cmp r2, r3 19286 beq .L2728 19287 ldrh r0, [r4] 19288 b .L2739 19289.L2731: 19290 bl INSERT_FREE_LIST 19291 b .L2732 19292.L2741: 19293 .align 2 19294.L2740: 19295 .word .LANCHOR77 19296 .word .LANCHOR94 19297 .word .LANCHOR135 19298 .word .LANCHOR53 19299 .word .LANCHOR79 19300 .word .LANCHOR138 19301 .word .LANCHOR111 19302 .word .LANCHOR239 19303 .word .LC5 19304 .word .LC6 19305 .word .LC7 19306 .word .LANCHOR84 19307 .word .LANCHOR161 19308 .word .LANCHOR8 19309 .word .LC64 19310 .word .LANCHOR110 19311 .word .LANCHOR204 19312 .word .LANCHOR89 19313 .word .LANCHOR223 19314 .word .LANCHOR176 19315 .word .LANCHOR112 19316 .word .LANCHOR73 19317 .size FtlGcFreeTempBlock, .-FtlGcFreeTempBlock 19318 .section .text.FtlGcPageRecovery,"ax",%progbits 19319 .align 1 19320 .global FtlGcPageRecovery 19321 .syntax unified 19322 .thumb 19323 .thumb_func 19324 .fpu softvfp 19325 .type FtlGcPageRecovery, %function 19326FtlGcPageRecovery: 19327 @ args = 0, pretend = 0, frame = 0 19328 @ frame_needed = 0, uses_anonymous_args = 0 19329 push {r3, r4, r5, lr} 19330 ldr r4, .L2744 19331 ldr r5, .L2744+4 19332 ldrh r1, [r4] 19333 mov r0, r5 19334 bl FtlGcScanTempBlk 19335 ldrh r2, [r5, #2] 19336 ldrh r3, [r4] 19337 cmp r2, r3 19338 bcc .L2742 19339 ldr r0, .L2744+8 19340 bl FtlMapBlkWriteDumpData 19341 movs r0, #0 19342 bl FtlGcFreeTempBlock 19343 ldr r3, .L2744+12 19344 movs r2, #0 19345 str r2, [r3] 19346.L2742: 19347 pop {r3, r4, r5, pc} 19348.L2745: 19349 .align 2 19350.L2744: 19351 .word .LANCHOR53 19352 .word .LANCHOR94 19353 .word .LANCHOR127 19354 .word .LANCHOR135 19355 .size FtlGcPageRecovery, .-FtlGcPageRecovery 19356 .section .text.FtlPowerLostRecovery,"ax",%progbits 19357 .align 1 19358 .global FtlPowerLostRecovery 19359 .syntax unified 19360 .thumb 19361 .thumb_func 19362 .fpu softvfp 19363 .type FtlPowerLostRecovery, %function 19364FtlPowerLostRecovery: 19365 @ args = 0, pretend = 0, frame = 0 19366 @ frame_needed = 0, uses_anonymous_args = 0 19367 push {r3, r4, r5, lr} 19368 movs r4, #0 19369 ldr r5, .L2747 19370 ldr r3, .L2747+4 19371 mov r0, r5 19372 str r4, [r3] 19373 bl FtlRecoverySuperblock 19374 mov r0, r5 19375 ldr r5, .L2747+8 19376 bl FtlSlcSuperblockCheck 19377 mov r0, r5 19378 bl FtlRecoverySuperblock 19379 mov r0, r5 19380 bl FtlSlcSuperblockCheck 19381 bl FtlGcPageRecovery 19382 movw r0, #65535 19383 bl decrement_vpc_count 19384 mov r0, r4 19385 pop {r3, r4, r5, pc} 19386.L2748: 19387 .align 2 19388.L2747: 19389 .word .LANCHOR92 19390 .word .LANCHOR237 19391 .word .LANCHOR93 19392 .size FtlPowerLostRecovery, .-FtlPowerLostRecovery 19393 .section .text.FtlSysBlkInit,"ax",%progbits 19394 .align 1 19395 .global FtlSysBlkInit 19396 .syntax unified 19397 .thumb 19398 .thumb_func 19399 .fpu softvfp 19400 .type FtlSysBlkInit, %function 19401FtlSysBlkInit: 19402 @ args = 0, pretend = 0, frame = 0 19403 @ frame_needed = 0, uses_anonymous_args = 0 19404 push {r3, r4, r5, r6, r7, lr} 19405 movs r3, #0 19406 ldr r4, .L2758 19407 movw r5, #65535 19408 strh r3, [r4] @ movhi 19409 ldr r3, .L2758+4 19410 strh r5, [r3] @ movhi 19411 ldr r3, .L2758+8 19412 ldrh r0, [r3] 19413 bl FtlFreeSysBlkQueueInit 19414 bl FtlScanSysBlk 19415 ldr r3, .L2758+12 19416 ldrh r3, [r3] 19417 cmp r3, r5 19418 mov r5, r4 19419 bne .L2750 19420.L2752: 19421 mov r4, #-1 19422.L2749: 19423 mov r0, r4 19424 pop {r3, r4, r5, r6, r7, pc} 19425.L2750: 19426 bl FtlLoadSysInfo 19427 mov r4, r0 19428 cmp r0, #0 19429 bne .L2752 19430 bl FtlLoadMapInfo 19431 bl FtlLoadVonderInfo 19432 bl Ftl_load_ext_data 19433 bl FtlLoadEctTbl 19434 bl FtlFreeSysBLkSort 19435 bl SupperBlkListInit 19436 bl FtlPowerLostRecovery 19437 movs r0, #1 19438 bl FtlUpdateVaildLpn 19439 ldr r3, .L2758+16 19440 movs r0, #12 19441 ldrh r2, [r3] 19442 ldr r3, .L2758+20 19443 ldr r1, [r3] 19444 mov r3, r4 19445.L2753: 19446 cmp r3, r2 19447 blt .L2755 19448 ldrh r3, [r5] 19449 cmp r3, #0 19450 beq .L2756 19451.L2754: 19452 ldr r3, .L2758+24 19453 ldr r1, [r3] 19454 ldr r3, .L2758+28 19455 ldrh r0, [r3] 19456 ldrh r5, [r3, #4] 19457 ldrh r2, [r1, r0, lsl #1] 19458 subs r2, r2, r5 19459 ldr r5, .L2758+32 19460 strh r2, [r1, r0, lsl #1] @ movhi 19461 ldrh r2, [r5] 19462 strh r2, [r3, #2] @ movhi 19463 movs r2, #0 19464 strh r2, [r3, #4] @ movhi 19465 strb r2, [r3, #6] 19466 ldr r3, .L2758+36 19467 ldrh r6, [r3] 19468 ldrh r7, [r3, #4] 19469 ldrh r0, [r1, r6, lsl #1] 19470 subs r0, r0, r7 19471 strh r0, [r1, r6, lsl #1] @ movhi 19472 strb r2, [r3, #6] 19473 ldrh r1, [r5] 19474 strh r2, [r3, #4] @ movhi 19475 ldr r2, .L2758+40 19476 strh r1, [r3, #2] @ movhi 19477 ldrh r3, [r2, #30] 19478 adds r3, r3, #1 19479 strh r3, [r2, #30] @ movhi 19480 bl l2p_flush 19481 bl FtlVpcTblFlush 19482.L2757: 19483 bl FtlVpcTblFlush 19484 b .L2749 19485.L2755: 19486 mla r6, r0, r3, r1 19487 ldr r6, [r6, #4] 19488 cmp r6, #0 19489 blt .L2754 19490 adds r3, r3, #1 19491 b .L2753 19492.L2756: 19493 bl l2p_flush 19494 b .L2757 19495.L2759: 19496 .align 2 19497.L2758: 19498 .word .LANCHOR236 19499 .word .LANCHOR235 19500 .word .LANCHOR39 19501 .word .LANCHOR209 19502 .word .LANCHOR68 19503 .word .LANCHOR97 19504 .word .LANCHOR84 19505 .word .LANCHOR92 19506 .word .LANCHOR53 19507 .word .LANCHOR93 19508 .word .LANCHOR81 19509 .size FtlSysBlkInit, .-FtlSysBlkInit 19510 .section .text.FtlLowFormat,"ax",%progbits 19511 .align 1 19512 .global FtlLowFormat 19513 .syntax unified 19514 .thumb 19515 .thumb_func 19516 .fpu softvfp 19517 .type FtlLowFormat, %function 19518FtlLowFormat: 19519 @ args = 0, pretend = 0, frame = 24 19520 @ frame_needed = 0, uses_anonymous_args = 0 19521 ldr r3, .L2791 19522 push {r4, r5, r6, r7, r8, r10, fp, lr} 19523 sub sp, sp, #24 19524 ldr r4, [r3] 19525 cmp r4, #0 19526 bne .L2762 19527 ldr r5, .L2791+4 19528 mov r1, r4 19529 ldr r3, .L2791+8 19530 ldr r6, .L2791+12 19531 ldrh r2, [r5] 19532 ldr r0, [r3] 19533 lsls r2, r2, #2 19534 bl ftl_memset 19535 ldrh r2, [r5] 19536 mov r1, r4 19537 ldr r3, .L2791+16 19538 ldr r5, .L2791+20 19539 lsls r2, r2, #2 19540 ldr r0, [r3] 19541 bl ftl_memset 19542 ldr r3, .L2791+24 19543 ldrh r0, [r6] 19544 str r4, [r5] 19545 str r4, [r3] 19546 bl FtlFreeSysBlkQueueInit 19547 bl FtlLoadBbt 19548 cbz r0, .L2763 19549 bl FtlMakeBbt 19550.L2763: 19551 ldr r3, .L2791+28 19552 ldr r2, .L2791+32 19553 ldr ip, .L2791+112 19554 ldrh r1, [r3] 19555 ldr r4, [r2] 19556 ldr r2, .L2791+36 19557 str r3, [sp, #12] 19558 lsls r1, r1, #7 19559 ldr r7, [r2] 19560 movs r2, #0 19561.L2764: 19562 uxth r3, r2 19563 adds r2, r2, #1 19564 cmp r3, r1 19565 blt .L2765 19566 ldr r3, .L2791+40 19567 movs r7, #0 19568 ldr fp, .L2791+116 19569 ldrh r4, [r3] 19570 mov r8, r3 19571 mov r10, fp 19572.L2766: 19573 ldrh r3, [fp] 19574 cmp r3, r4 19575 bhi .L2767 19576 ldr r4, .L2791+44 19577 subs r3, r7, #2 19578 ldrh r1, [r4] 19579 cmp r3, r1, lsl #1 19580 bgt .L2768 19581.L2772: 19582 movs r7, #0 19583 mov r6, r7 19584.L2769: 19585 ldrh r3, [r8] 19586 uxth r0, r7 19587 adds r7, r7, #1 19588 cmp r3, r0 19589 bhi .L2773 19590 ldrh r2, [r10] 19591 ldr r3, .L2791+48 19592 ldrh r4, [r4] 19593 ldr r7, .L2791+52 19594 str r2, [r3] 19595 ldr r3, .L2791+56 19596 mov r1, r4 19597 ldr r3, [r3] 19598 mov r0, r3 19599 str r3, [sp, #16] 19600 bl __aeabi_uidiv 19601 ldr r1, .L2791+60 19602 ubfx r3, r0, #5, #16 19603 add r2, r3, #36 19604 mov fp, r0 19605 str r0, [r7] 19606 strh r2, [r1] @ movhi 19607 movs r2, #24 19608 muls r2, r4, r2 19609 str r3, [sp, #4] 19610 str r1, [sp, #8] 19611 cmp r6, r2 19612 ble .L2774 19613 ldr r3, [sp, #16] 19614 mov r1, r4 19615 subs r0, r3, r6 19616 bl __aeabi_uidiv 19617 ldr r3, [sp, #8] 19618 str r0, [r7] 19619 lsrs r0, r0, #5 19620 adds r0, r0, #24 19621 strh r0, [r3] @ movhi 19622.L2774: 19623 ldr r3, .L2791+64 19624 ldr r3, [r3] 19625 cmp r3, #1 19626 bne .L2775 19627 ldr r2, .L2791+60 19628 mov r1, r4 19629 mov r0, r6 19630 ldrh r3, [r2] 19631 str r2, [sp, #20] 19632 str r3, [sp, #16] 19633 bl __aeabi_uidiv 19634 ldr r3, [sp, #16] 19635 ldr r2, [sp, #20] 19636 uxtah r0, r3, r0 19637 add r3, r3, r0, asr #2 19638 strh r3, [r2] @ movhi 19639.L2775: 19640 ldr r3, .L2791+68 19641 ldrb r3, [r3] @ zero_extendqisi2 19642 cbz r3, .L2776 19643 ldr r2, .L2791+60 19644 mov r1, r4 19645 mov r0, r6 19646 ldrh r3, [r2] 19647 str r2, [sp, #20] 19648 str r3, [sp, #16] 19649 bl __aeabi_uidiv 19650 ldr r3, [sp, #16] 19651 ldr r2, [sp, #20] 19652 uxtah r0, r3, r0 19653 add r3, r3, r0, asr #2 19654 strh r3, [r2] @ movhi 19655.L2776: 19656 ldr r3, .L2791+72 19657 ldrh r3, [r3] 19658 cbz r3, .L2778 19659 ldr r2, .L2791+60 19660 ldrh r1, [r2] 19661 add r1, r1, r3, lsr #1 19662 strh r1, [r2] @ movhi 19663 mul r1, r4, r3 19664 cmp r6, r1 19665 bge .L2778 19666 ldr r1, [sp, #4] 19667 adds r3, r3, #32 19668 str fp, [r7] 19669 add r1, r1, r3 19670 strh r1, [r2] @ movhi 19671.L2778: 19672 ldr r3, [sp, #8] 19673 ldr r6, .L2791+76 19674 ldrh r2, [r3] 19675 ldr r3, [r7] 19676 subs r3, r3, r2 19677 muls r4, r3, r4 19678 ldr r3, .L2791+80 19679 ldrh r3, [r3] 19680 str r4, [r6] 19681 muls r4, r3, r4 19682 ldr r3, [sp, #12] 19683 ldrh r3, [r3] 19684 str r4, [r7] 19685 ldr r7, .L2791+84 19686 muls r4, r3, r4 19687 ldr r3, .L2791+88 19688 str r4, [r3] 19689 movw r4, #65535 19690 bl FtlBbmTblFlush 19691 ldrh r2, [r10] 19692 movs r1, #0 19693 ldr r10, .L2791+120 19694 lsls r2, r2, #1 19695 ldr r0, [r10] 19696 bl ftl_memset 19697 ldr r2, .L2791+92 19698 movs r3, #0 19699 strh r3, [r7, #2] @ movhi 19700 movs r1, #255 19701 strb r3, [r7, #6] 19702 str r3, [r2] 19703 ldr r2, .L2791+96 19704 strh r3, [r7] @ movhi 19705 strh r3, [r2, #2] @ movhi 19706 strb r3, [r2, #6] 19707 strb r3, [r2, #8] 19708 movs r3, #1 19709 strh r4, [r2] @ movhi 19710 ldrh r2, [r8] 19711 mov r8, r10 19712 strb r3, [r7, #8] 19713 mov r10, r7 19714 ldr r3, .L2791+100 19715 lsrs r2, r2, #3 19716 ldr r0, [r3] 19717 bl ftl_memset 19718.L2780: 19719 mov r0, r10 19720 bl make_superblock 19721 ldrb r3, [r7, #7] @ zero_extendqisi2 19722 ldrh r2, [r7] 19723 cmp r3, #0 19724 bne .L2781 19725 ldr r3, [r8] 19726 strh r4, [r3, r2, lsl #1] @ movhi 19727 ldrh r3, [r7] 19728 adds r3, r3, #1 19729 strh r3, [r7] @ movhi 19730 b .L2780 19731.L2765: 19732 mvns r0, r3 19733 orr r0, r3, r0, lsl #16 19734 str r0, [r4, r3, lsl #2] 19735 str ip, [r7, r3, lsl #2] 19736 b .L2764 19737.L2767: 19738 mov r0, r4 19739 movs r1, #1 19740 bl FtlLowFormatEraseBlock 19741 adds r4, r4, #1 19742 add r7, r7, r0 19743 uxth r7, r7 19744 uxth r4, r4 19745 b .L2766 19746.L2768: 19747 mov r0, r7 19748 bl __aeabi_uidiv 19749 ldr r3, .L2791+104 19750 ldr r3, [r3] 19751 add r0, r0, r3 19752 uxth r0, r0 19753 bl FtlSysBlkNumInit 19754 ldrh r0, [r6] 19755 bl FtlFreeSysBlkQueueInit 19756 ldrh r6, [r8] 19757.L2770: 19758 ldrh r3, [r10] 19759 cmp r3, r6 19760 bls .L2772 19761 mov r0, r6 19762 movs r1, #1 19763 adds r6, r6, #1 19764 bl FtlLowFormatEraseBlock 19765 uxth r6, r6 19766 b .L2770 19767.L2773: 19768 movs r1, #0 19769 bl FtlLowFormatEraseBlock 19770 add r6, r6, r0 19771 uxth r6, r6 19772 b .L2769 19773.L2781: 19774 ldr r3, [r5] 19775 ldrh r1, [r7, #4] 19776 ldr r4, .L2791+108 19777 str r3, [r7, #12] 19778 adds r3, r3, #1 19779 str r3, [r5] 19780 ldr r3, [r8] 19781 mov r10, r4 19782 strh r1, [r3, r2, lsl #1] @ movhi 19783 movs r3, #0 19784 strh r3, [r4, #2] @ movhi 19785 strb r3, [r4, #6] 19786 ldrh r3, [r7] 19787 movw r7, #65535 19788 adds r3, r3, #1 19789 strh r3, [r4] @ movhi 19790 movs r3, #1 19791 strb r3, [r4, #8] 19792.L2782: 19793 mov r0, r10 19794 bl make_superblock 19795 ldrb r3, [r4, #7] @ zero_extendqisi2 19796 ldrh r2, [r4] 19797 cmp r3, #0 19798 bne .L2783 19799 ldr r3, [r8] 19800 strh r7, [r3, r2, lsl #1] @ movhi 19801 ldrh r3, [r4] 19802 adds r3, r3, #1 19803 strh r3, [r4] @ movhi 19804 b .L2782 19805.L2792: 19806 .align 2 19807.L2791: 19808 .word .LANCHOR77 19809 .word .LANCHOR67 19810 .word .LANCHOR195 19811 .word .LANCHOR39 19812 .word .LANCHOR131 19813 .word .LANCHOR159 19814 .word .LANCHOR160 19815 .word .LANCHOR56 19816 .word .LANCHOR186 19817 .word .LANCHOR187 19818 .word .LANCHOR40 19819 .word .LANCHOR38 19820 .word .LANCHOR74 19821 .word .LANCHOR73 19822 .word .LANCHOR42 19823 .word .LANCHOR223 19824 .word .LANCHOR28 19825 .word .LANCHOR8 19826 .word .LANCHOR49 19827 .word .LANCHOR222 19828 .word .LANCHOR53 19829 .word .LANCHOR92 19830 .word .LANCHOR69 19831 .word .LANCHOR101 19832 .word .LANCHOR204 19833 .word .LANCHOR0 19834 .word .LANCHOR66 19835 .word .LANCHOR93 19836 .word 168778952 19837 .word .LANCHOR41 19838 .word .LANCHOR84 19839.L2783: 19840 ldr r3, [r5] 19841 ldrh r1, [r4, #4] 19842 str r3, [r4, #12] 19843 adds r3, r3, #1 19844 str r3, [r5] 19845 movw r4, #65535 19846 ldr r3, [r8] 19847 strh r1, [r3, r2, lsl #1] @ movhi 19848 ldr r3, .L2793 19849 strh r4, [r3] @ movhi 19850 bl FtlFreeSysBlkQueueOut 19851 ldr r3, .L2793+4 19852 movs r2, #0 19853 strh r2, [r3, #2] @ movhi 19854 ldr r2, [r6] 19855 strh r0, [r3] @ movhi 19856 strh r4, [r3, #4] @ movhi 19857 strh r2, [r3, #6] @ movhi 19858 ldr r2, [r5] 19859 str r2, [r3, #8] 19860 adds r2, r2, #1 19861 str r2, [r5] 19862 bl FtlVpcTblFlush 19863 bl FtlSysBlkInit 19864 cbnz r0, .L2762 19865 ldr r3, .L2793+8 19866 movs r2, #1 19867 str r2, [r3] 19868.L2762: 19869 movs r0, #0 19870 add sp, sp, #24 19871 @ sp needed 19872 pop {r4, r5, r6, r7, r8, r10, fp, pc} 19873.L2794: 19874 .align 2 19875.L2793: 19876 .word .LANCHOR94 19877 .word .LANCHOR209 19878 .word .LANCHOR231 19879 .size FtlLowFormat, .-FtlLowFormat 19880 .section .text.Ftl_get_new_temp_ppa,"ax",%progbits 19881 .align 1 19882 .global Ftl_get_new_temp_ppa 19883 .syntax unified 19884 .thumb 19885 .thumb_func 19886 .fpu softvfp 19887 .type Ftl_get_new_temp_ppa, %function 19888Ftl_get_new_temp_ppa: 19889 @ args = 0, pretend = 0, frame = 0 19890 @ frame_needed = 0, uses_anonymous_args = 0 19891 push {r3, r4, r5, lr} 19892 movw r3, #65535 19893 ldr r4, .L2798 19894 ldrh r2, [r4] 19895 cmp r2, r3 19896 beq .L2796 19897 ldrh r3, [r4, #4] 19898 cbnz r3, .L2797 19899.L2796: 19900 bl FtlCacheWriteBack 19901 movs r0, #0 19902 movs r5, #0 19903 bl FtlGcFreeTempBlock 19904 ldr r0, .L2798 19905 strb r5, [r4, #8] 19906 bl allocate_data_superblock 19907 ldr r3, .L2798+4 19908 strh r5, [r3] @ movhi 19909 ldr r3, .L2798+8 19910 strh r5, [r3] @ movhi 19911 bl l2p_flush 19912 mov r0, r5 19913 bl FtlEctTblFlush 19914 bl FtlVpcTblFlush 19915.L2797: 19916 ldr r0, .L2798 19917 pop {r3, r4, r5, lr} 19918 b get_new_active_ppa 19919.L2799: 19920 .align 2 19921.L2798: 19922 .word .LANCHOR94 19923 .word .LANCHOR110 19924 .word .LANCHOR111 19925 .size Ftl_get_new_temp_ppa, .-Ftl_get_new_temp_ppa 19926 .section .text.Ftl_gc_temp_data_write_back,"ax",%progbits 19927 .align 1 19928 .global Ftl_gc_temp_data_write_back 19929 .syntax unified 19930 .thumb 19931 .thumb_func 19932 .fpu softvfp 19933 .type Ftl_gc_temp_data_write_back, %function 19934Ftl_gc_temp_data_write_back: 19935 @ args = 0, pretend = 0, frame = 0 19936 @ frame_needed = 0, uses_anonymous_args = 0 19937 push {r3, r4, r5, r6, r7, lr} 19938 ldr r3, .L2815 19939 ldr r3, [r3] 19940 cbz r3, .L2801 19941.L2804: 19942 movs r0, #0 19943 pop {r3, r4, r5, r6, r7, pc} 19944.L2801: 19945 ldr r3, .L2815+4 19946 ldr r5, .L2815+8 19947 ldrb r3, [r3] @ zero_extendqisi2 19948 cbz r3, .L2803 19949 ldr r3, [r5] 19950 lsls r2, r3, #31 19951 bpl .L2803 19952 ldr r3, .L2815+12 19953 ldrh r3, [r3, #4] 19954 cmp r3, #0 19955 bne .L2804 19956.L2803: 19957 ldr r4, .L2815+16 19958 movs r3, #0 19959 movs r6, #0 19960 movs r7, #36 19961 mov r2, r3 19962 ldr r1, [r5] 19963 ldr r0, [r4] 19964 bl FlashProgPages 19965.L2805: 19966 ldr r1, [r5] 19967 uxth r3, r6 19968 cmp r3, r1 19969 bcc .L2807 19970 ldr r0, [r4] 19971 bl FtlGcBufFree 19972 movs r3, #0 19973 str r3, [r5] 19974 ldr r3, .L2815+12 19975 ldrh r3, [r3, #4] 19976 cmp r3, #0 19977 bne .L2804 19978 movs r0, #1 19979 bl FtlGcFreeTempBlock 19980 b .L2814 19981.L2807: 19982 muls r3, r7, r3 19983 ldr r2, [r4] 19984 adds r6, r6, #1 19985 adds r1, r2, r3 19986 ldr r2, [r2, r3] 19987 adds r3, r2, #1 19988 bne .L2806 19989 ldr r3, .L2815+12 19990 movs r5, #0 19991 ldr r0, .L2815+20 19992 ldrh r4, [r3] 19993 ldr r0, [r0] 19994 strh r5, [r0, r4, lsl #1] @ movhi 19995 strh r2, [r3] @ movhi 19996 ldr r2, .L2815+24 19997 ldr r0, [r1, #4] 19998 ldr r3, [r2, #96] 19999 ubfx r0, r0, #10, #16 20000 adds r3, r3, #1 20001 str r3, [r2, #96] 20002 bl FtlBbmMapBadBlock 20003 bl FtlBbmTblFlush 20004 bl FtlGcPageVarInit 20005.L2814: 20006 movs r0, #1 20007 pop {r3, r4, r5, r6, r7, pc} 20008.L2806: 20009 ldr r3, [r1, #12] 20010 ldr r1, [r1, #4] 20011 ldr r2, [r3, #8] 20012 ldr r0, [r3, #12] 20013 bl FtlGcUpdatePage 20014 b .L2805 20015.L2816: 20016 .align 2 20017.L2815: 20018 .word .LANCHOR77 20019 .word .LANCHOR8 20020 .word .LANCHOR103 20021 .word .LANCHOR94 20022 .word .LANCHOR181 20023 .word .LANCHOR84 20024 .word .LANCHOR138 20025 .size Ftl_gc_temp_data_write_back, .-Ftl_gc_temp_data_write_back 20026 .section .text.rk_ftl_garbage_collect,"ax",%progbits 20027 .align 1 20028 .global rk_ftl_garbage_collect 20029 .syntax unified 20030 .thumb 20031 .thumb_func 20032 .fpu softvfp 20033 .type rk_ftl_garbage_collect, %function 20034rk_ftl_garbage_collect: 20035 @ args = 0, pretend = 0, frame = 32 20036 @ frame_needed = 0, uses_anonymous_args = 0 20037 ldr r3, .L2907 20038 push {r4, r5, r6, r7, r8, r10, fp, lr} 20039 sub sp, sp, #40 20040 ldr r2, [r3] 20041 cmp r2, #0 20042 bne .L2869 20043 ldr r3, .L2907+4 20044 ldr r3, [r3] 20045 cmp r3, #0 20046 bne .L2869 20047 ldr r2, .L2907+8 20048 ldrh r2, [r2] 20049 cmp r2, #47 20050 bls .L2871 20051 ldr r5, .L2907+12 20052 movw r2, #65535 20053 ldrh ip, [r5] 20054 cmp ip, r2 20055 beq .L2819 20056 ldr r7, .L2907+16 20057 ldrh r3, [r7] 20058 cmp r3, r2 20059 bne .L2819 20060 ldr r1, .L2907+20 20061 ldrh r6, [r1] 20062 cmp r6, r3 20063 beq .L2819 20064 ldr r2, .L2907+24 20065 ldrh r4, [r2] 20066 cmp r4, r3 20067 itttt ne 20068 strhne ip, [r7] @ movhi 20069 strhne r6, [r5] @ movhi 20070 strhne r4, [r1] @ movhi 20071 strhne r3, [r2] @ movhi 20072.L2819: 20073 cmp r0, #0 20074 bne .L2872 20075 ldr r3, .L2907+28 20076 ldrh r3, [r3] 20077 cmp r3, #24 20078 bhi .L2873 20079 ldr r2, .L2907+32 20080 cmp r3, #16 20081 ldrh r4, [r2] 20082 bls .L2822 20083 lsrs r4, r4, #5 20084.L2821: 20085 ldr r2, .L2907+36 20086 ldrh r1, [r2] 20087 cmp r1, r3 20088 mov r1, r2 20089 bcs .L2825 20090 ldr r3, .L2907+40 20091 movw r0, #65535 20092 ldrh r3, [r3] 20093 cmp r3, r0 20094 bne .L2826 20095 ldr r0, .L2907+16 20096 ldrh r0, [r0] 20097 cmp r0, r3 20098 bne .L2826 20099 ldr r3, .L2907+44 20100 ldrh r0, [r3] 20101 cbnz r0, .L2827 20102 ldr r3, .L2907+48 20103 ldr r4, .L2907+52 20104 ldr r3, [r3] 20105 ldr r4, [r4] 20106 add r3, r3, r3, lsl #1 20107 cmp r4, r3, lsr #2 20108 bcs .L2828 20109.L2827: 20110 ldr r3, .L2907+56 20111 ldrh r3, [r3] 20112 add r3, r3, r3, lsl #1 20113 asrs r3, r3, #2 20114 strh r3, [r1] @ movhi 20115.L2829: 20116 ldr r3, .L2907+60 20117 movs r2, #0 20118 str r2, [r3] 20119.L2817: 20120 add sp, sp, #40 20121 @ sp needed 20122 pop {r4, r5, r6, r7, r8, r10, fp, pc} 20123.L2822: 20124 cmp r3, #12 20125 bls .L2823 20126 lsrs r4, r4, #4 20127 b .L2821 20128.L2823: 20129 cmp r3, #8 20130 bls .L2821 20131 lsrs r4, r4, #2 20132 b .L2821 20133.L2873: 20134 movs r4, #1 20135 b .L2821 20136.L2828: 20137 movs r3, #18 20138 strh r3, [r2] @ movhi 20139 b .L2829 20140.L2826: 20141 ldr r3, .L2907+56 20142 ldrh r3, [r3] 20143 add r3, r3, r3, lsl #1 20144 asrs r3, r3, #2 20145 strh r3, [r1] @ movhi 20146.L2825: 20147 ldr r3, .L2907+64 20148 ldrh r3, [r3] 20149 cbz r3, .L2820 20150 adds r4, r4, #32 20151 uxth r4, r4 20152.L2820: 20153 ldr r5, .L2907+68 20154 movw r3, #65535 20155 ldrh r2, [r5] 20156 cmp r2, r3 20157 bne .L2832 20158 ldr r3, .L2907+16 20159 ldrh r1, [r3] 20160 cmp r1, r2 20161 beq .L2833 20162 ldr r0, .L2907+72 20163 ldr r0, [r0] 20164 ldrh r1, [r0, r1, lsl #1] 20165 cbnz r1, .L2834 20166 strh r2, [r3] @ movhi 20167.L2834: 20168 ldrh r2, [r3] 20169 strh r2, [r5] @ movhi 20170 movw r2, #65535 20171 strh r2, [r3] @ movhi 20172.L2833: 20173 ldrh r0, [r5] 20174 movw r6, #65535 20175 movs r3, #0 20176 strb r3, [r5, #8] 20177 cmp r0, r6 20178 beq .L2832 20179 bl IsBlkInGcList 20180 cbz r0, .L2836 20181 strh r6, [r5] @ movhi 20182.L2836: 20183 ldr r3, .L2907+76 20184 ldrb r3, [r3] @ zero_extendqisi2 20185 cbz r3, .L2837 20186 ldrh r0, [r5] 20187 bl ftl_get_blk_mode 20188 strb r0, [r5, #8] 20189.L2837: 20190 ldrh r2, [r5] 20191 movw r3, #65535 20192 cmp r2, r3 20193 beq .L2832 20194 ldr r0, .L2907+68 20195 bl make_superblock 20196 ldr r2, .L2907+80 20197 movs r3, #0 20198 strh r3, [r5, #2] @ movhi 20199 strb r3, [r5, #6] 20200 strh r3, [r2] @ movhi 20201 ldr r3, .L2907+72 20202 ldrh r2, [r5] 20203 ldr r3, [r3] 20204 ldrh r2, [r3, r2, lsl #1] 20205 ldr r3, .L2907+84 20206 strh r2, [r3] @ movhi 20207.L2832: 20208 ldr r2, .L2907+88 20209 ldrh r3, [r5] 20210 ldrh r2, [r2] 20211 cmp r2, r3 20212 beq .L2838 20213 ldr r2, .L2907+92 20214 ldrh r2, [r2] 20215 cmp r2, r3 20216 beq .L2838 20217 ldr r5, .L2907+68 20218 mov r6, r5 20219.L2839: 20220 ldrh r2, [r5] 20221 movw r3, #65535 20222 cmp r2, r3 20223 bne .L2840 20224 ldr r10, .L2907+100 20225 movs r2, #0 20226 ldr r3, .L2907+60 20227 mov r7, r10 20228 str r2, [r3] 20229.L2841: 20230 ldrh r8, [r10] 20231 mov r0, r8 20232 bl List_get_gc_head_node 20233 uxth fp, r0 20234 movw r3, #65535 20235 cmp fp, r3 20236 strh fp, [r6] @ movhi 20237 bne .L2842 20238 movs r3, #0 20239 movs r0, #8 20240 strh r3, [r10] @ movhi 20241 b .L2817 20242.L2872: 20243 movs r4, #1 20244 b .L2820 20245.L2838: 20246 movw r3, #65535 20247 strh r3, [r5] @ movhi 20248.L2905: 20249 ldr r3, .L2907+44 20250 ldrh r0, [r3] 20251 b .L2817 20252.L2842: 20253 str r0, [sp, #8] 20254 mov r0, fp 20255 bl IsBlkInGcList 20256 add r3, r8, #1 20257 ldr r2, [sp, #8] 20258 cbz r0, .L2843 20259 strh r3, [r10] @ movhi 20260 b .L2841 20261.L2843: 20262 ldr r1, .L2907+32 20263 uxth r3, r3 20264 ldr lr, .L2907+104 20265 uxth r2, r2 20266 ldr r8, .L2907+72 20267 ldrh r1, [r1] 20268 ldrh lr, [lr] 20269 ldr r0, [r8] 20270 strh r3, [r10] @ movhi 20271 mul r1, lr, r1 20272 ldrh ip, [r0, r2, lsl #1] 20273 cmp ip, r1, asr #1 20274 bgt .L2845 20275 cmp r3, #48 20276 bls .L2846 20277 cmp ip, #8 20278 bls .L2846 20279 ldr r3, .L2907+96 20280 ldrh r3, [r3] 20281 cmp r3, #35 20282 bhi .L2846 20283.L2845: 20284 movs r3, #0 20285 strh r3, [r7] @ movhi 20286.L2846: 20287 ldrh r3, [r0, r2, lsl #1] 20288 cmp r1, r3 20289 bgt .L2847 20290 movw r3, #65535 20291 strh r3, [r6] @ movhi 20292 movs r3, #0 20293 strh r3, [r7] @ movhi 20294 b .L2905 20295.L2847: 20296 cmp r3, #0 20297 bne .L2848 20298 movw r0, #65535 20299 bl decrement_vpc_count 20300 ldrh r3, [r7] 20301 adds r3, r3, #1 20302 strh r3, [r7] @ movhi 20303 b .L2841 20304.L2908: 20305 .align 2 20306.L2907: 20307 .word .LANCHOR77 20308 .word .LANCHOR171 20309 .word .LANCHOR86 20310 .word .LANCHOR114 20311 .word .LANCHOR113 20312 .word .LANCHOR115 20313 .word .LANCHOR116 20314 .word .LANCHOR89 20315 .word .LANCHOR53 20316 .word .LANCHOR176 20317 .word .LANCHOR94 20318 .word .LANCHOR240 20319 .word .LANCHOR73 20320 .word .LANCHOR101 20321 .word .LANCHOR223 20322 .word .LANCHOR172 20323 .word .LANCHOR117 20324 .word .LANCHOR204 20325 .word .LANCHOR84 20326 .word .LANCHOR8 20327 .word .LANCHOR241 20328 .word .LANCHOR242 20329 .word .LANCHOR92 20330 .word .LANCHOR93 20331 .word .LANCHOR110 20332 .word .LANCHOR178 20333 .word .LANCHOR38 20334.L2848: 20335 movs r3, #0 20336 strb r3, [r6, #8] 20337 ldr r3, .L2909 20338 ldrb r3, [r3] @ zero_extendqisi2 20339 cbz r3, .L2849 20340 mov r0, fp 20341 bl ftl_get_blk_mode 20342 strb r0, [r6, #8] 20343.L2849: 20344 ldr r3, .L2909+4 20345 ldrh r3, [r3] 20346 cmp r3, fp 20347 bne .L2850 20348 ldr r1, .L2909+8 20349 movw r2, #857 20350 ldr r0, .L2909+12 20351 bl printf 20352 ldr r1, .L2909+16 20353 ldr r0, .L2909+20 20354 bl printf 20355.L2850: 20356 ldr r3, .L2909+24 20357 ldrh r2, [r6] 20358 ldrh r3, [r3] 20359 cmp r2, r3 20360 bne .L2851 20361 ldr r1, .L2909+8 20362 movw r2, #858 20363 ldr r0, .L2909+12 20364 bl printf 20365 ldr r1, .L2909+16 20366 ldr r0, .L2909+20 20367 bl printf 20368.L2851: 20369 ldr r3, .L2909+28 20370 ldrh r2, [r6] 20371 ldrh r3, [r3] 20372 cmp r2, r3 20373 bne .L2852 20374 ldr r1, .L2909+8 20375 movw r2, #859 20376 ldr r0, .L2909+12 20377 bl printf 20378 ldr r1, .L2909+16 20379 ldr r0, .L2909+20 20380 bl printf 20381.L2852: 20382 mov r0, r5 20383 bl make_superblock 20384 ldr r2, .L2909+32 20385 movs r3, #0 20386 ldrh r1, [r6] 20387 strh r3, [r2] @ movhi 20388 ldr r2, [r8] 20389 ldrh r1, [r2, r1, lsl #1] 20390 ldr r2, .L2909+36 20391 strh r3, [r6, #2] @ movhi 20392 strb r3, [r6, #6] 20393 strh r1, [r2] @ movhi 20394.L2840: 20395 ldr r3, .L2909+40 20396 movs r2, #1 20397 str r2, [r3] 20398 ldr r3, .L2909+44 20399 ldrh r3, [r3] 20400 str r3, [sp, #12] 20401 ldr r3, .L2909 20402 ldrb r3, [r3] @ zero_extendqisi2 20403 cbz r3, .L2853 20404 ldrb r3, [r6, #8] @ zero_extendqisi2 20405 cmp r3, r2 20406 ittt eq 20407 ldreq r3, .L2909+48 20408 ldrheq r3, [r3] 20409 streq r3, [sp, #12] 20410.L2853: 20411 ldrh r3, [r6, #2] 20412 ldr r1, [sp, #12] 20413 ldr fp, .L2909+84 20414 adds r2, r3, r4 20415 cmp r2, r1 20416 itt gt 20417 movgt r2, r1 20418 subgt r4, r2, r3 20419 mov r3, #0 20420 it gt 20421 uxthgt r4, r4 20422 str r3, [sp, #20] 20423.L2855: 20424 ldrh r3, [sp, #20] 20425 cmp r4, r3 20426 bls .L2863 20427 ldr r3, .L2909+52 20428 movw r8, #65535 20429 ldrh lr, [r5, #2] 20430 mov r10, #36 20431 ldr r0, [fp] 20432 ldrh r7, [r3] 20433 ldr r3, [sp, #20] 20434 add lr, lr, r3 20435 ldr r3, .L2909+56 20436 str r3, [sp, #16] 20437 movs r3, #0 20438 str r3, [sp, #8] 20439 b .L2864 20440.L2857: 20441 ldr r1, [sp, #16] 20442 ldrh r2, [r1, #2]! 20443 cmp r2, r8 20444 str r1, [sp, #16] 20445 beq .L2856 20446 ldr r1, [sp, #8] 20447 orr r2, lr, r2, lsl #10 20448 mla ip, r10, r1, r0 20449 str r2, [ip, #4] 20450 mov r2, r1 20451 adds r2, r2, #1 20452 uxth r2, r2 20453 str r2, [sp, #8] 20454.L2856: 20455 adds r3, r3, #1 20456.L2864: 20457 uxth r2, r3 20458 cmp r2, r7 20459 bcc .L2857 20460 ldrb r2, [r5, #8] @ zero_extendqisi2 20461 ldr r1, [sp, #8] 20462 bl FlashReadPages 20463 movs r3, #0 20464.L2904: 20465 str r3, [sp, #16] 20466 ldr r2, [sp, #8] 20467 ldrh r3, [sp, #16] 20468 cmp r2, r3 20469 bhi .L2862 20470 ldr r3, [sp, #20] 20471 adds r3, r3, #1 20472 str r3, [sp, #20] 20473 b .L2855 20474.L2862: 20475 ldr r3, [sp, #16] 20476 movs r7, #36 20477 muls r7, r3, r7 20478 ldr r3, [fp] 20479 adds r2, r3, r7 20480 ldr r3, [r3, r7] 20481 adds r3, r3, #1 20482 beq .L2859 20483 ldr r8, [r2, #12] 20484 movw r3, #61589 20485 ldrh r2, [r8] 20486 cmp r2, r3 20487 bne .L2859 20488 ldr r10, [r8, #8] 20489 cmp r10, #-1 20490 bne .L2860 20491 ldr r1, .L2909+8 20492 movw r2, #898 20493 ldr r0, .L2909+12 20494 bl printf 20495 ldr r1, .L2909+16 20496 ldr r0, .L2909+20 20497 bl printf 20498.L2860: 20499 movs r2, #0 20500 add r1, sp, #36 20501 mov r0, r10 20502 bl log2phys 20503 ldr r0, [fp] 20504 ldr r3, [sp, #36] 20505 add r0, r0, r7 20506 ldr r2, [r0, #4] 20507 bic r3, r3, #-2147483648 20508 cmp r3, r2 20509 bne .L2859 20510 ldr r2, .L2909+32 20511 ldr r1, .L2909+60 20512 ldr r10, .L2909+68 20513 ldrh r3, [r2] 20514 str r1, [sp, #28] 20515 adds r3, r3, #1 20516 strh r3, [r2] @ movhi 20517 ldr r2, [r1] 20518 movs r1, #36 20519 ldr r3, [r10] 20520 mla r3, r1, r3, r2 20521 ldr r2, [r0, #16] 20522 str r2, [r3, #16] 20523 str r3, [sp, #24] 20524 bl Ftl_get_new_temp_ppa 20525 ldr r3, [sp, #24] 20526 ldr r1, [sp, #28] 20527 str r0, [r3, #4] 20528 ldr r2, [r1] 20529 movs r1, #36 20530 ldr r3, [r10] 20531 ldr r0, [fp] 20532 mla r2, r1, r3, r2 20533 add r0, r0, r7 20534 ldr r7, .L2909+28 20535 ldr r1, [r0, #8] 20536 adds r3, r3, #1 20537 str r1, [r2, #8] 20538 ldr r1, [r0, #12] 20539 str r1, [r2, #12] 20540 movs r1, #1 20541 ldr r2, [sp, #36] 20542 str r2, [r8, #12] 20543 ldrh r2, [r7] 20544 strh r2, [r8, #2] @ movhi 20545 ldr r2, .L2909+64 20546 str r3, [r10] 20547 ldr r2, [r2] 20548 str r2, [r8, #4] 20549 bl FtlGcBufAlloc 20550 ldr r3, .L2909 20551 ldrb r3, [r3] @ zero_extendqisi2 20552 cbnz r3, .L2861 20553 ldrb r2, [r7, #7] @ zero_extendqisi2 20554 ldr r3, [r10] 20555 cmp r2, r3 20556 beq .L2861 20557 ldrh r3, [r7, #4] 20558 cbnz r3, .L2859 20559.L2861: 20560 bl Ftl_gc_temp_data_write_back 20561 cbz r0, .L2859 20562.L2906: 20563 ldr r3, .L2909+40 20564 movs r2, #0 20565 str r2, [r3] 20566 b .L2905 20567.L2859: 20568 ldr r3, [sp, #16] 20569 adds r3, r3, #1 20570 b .L2904 20571.L2863: 20572 ldrh r3, [r5, #2] 20573 add r4, r4, r3 20574 ldr r3, [sp, #12] 20575 uxth r4, r4 20576 cmp r3, r4 20577 strh r4, [r5, #2] @ movhi 20578 bhi .L2865 20579 ldr r3, .L2909+68 20580 ldr r3, [r3] 20581 cbz r3, .L2866 20582 bl Ftl_gc_temp_data_write_back 20583 cmp r0, #0 20584 bne .L2906 20585.L2866: 20586 ldr r3, .L2909+32 20587 ldrh r4, [r3] 20588 cbnz r4, .L2867 20589 ldr r7, .L2909+72 20590 ldrh r1, [r5] 20591 ldr r3, [r7] 20592 ldrh r3, [r3, r1, lsl #1] 20593 cbz r3, .L2867 20594 ldr r0, .L2909+36 20595 ldrh r2, [r5, #2] 20596 ldrh r0, [r0] 20597 str r3, [sp] 20598 mov r3, r4 20599 str r0, [sp, #4] 20600 ldr r0, .L2909+76 20601 bl printf 20602 ldrh r2, [r5] 20603 ldr r3, [r7] 20604 strh r4, [r3, r2, lsl #1] @ movhi 20605 ldrh r0, [r5] 20606 bl update_vpc_list 20607 bl FtlCacheWriteBack 20608 bl l2p_flush 20609 bl FtlVpcTblFlush 20610.L2867: 20611 movw r3, #65535 20612 strh r3, [r5] @ movhi 20613.L2865: 20614 ldr r3, .L2909+80 20615 ldrh r0, [r3] 20616 cmp r0, #2 20617 bhi .L2868 20618 ldr r3, .L2909+44 20619 ldrh r4, [r3] 20620 b .L2839 20621.L2868: 20622 ldr r3, .L2909+40 20623 movs r2, #0 20624 adds r0, r0, #1 20625 str r2, [r3] 20626 b .L2817 20627.L2910: 20628 .align 2 20629.L2909: 20630 .word .LANCHOR8 20631 .word .LANCHOR92 20632 .word .LANCHOR243 20633 .word .LC5 20634 .word .LC6 20635 .word .LC7 20636 .word .LANCHOR93 20637 .word .LANCHOR94 20638 .word .LANCHOR241 20639 .word .LANCHOR242 20640 .word .LANCHOR171 20641 .word .LANCHOR53 20642 .word .LANCHOR54 20643 .word .LANCHOR38 20644 .word .LANCHOR204+14 20645 .word .LANCHOR181 20646 .word .LANCHOR160 20647 .word .LANCHOR103 20648 .word .LANCHOR84 20649 .word .LC65 20650 .word .LANCHOR89 20651 .word .LANCHOR107 20652.L2869: 20653 movs r0, #0 20654 b .L2817 20655.L2871: 20656 mov r0, r3 20657 b .L2817 20658 .size rk_ftl_garbage_collect, .-rk_ftl_garbage_collect 20659 .section .text.FtlInit,"ax",%progbits 20660 .align 1 20661 .global FtlInit 20662 .syntax unified 20663 .thumb 20664 .thumb_func 20665 .fpu softvfp 20666 .type FtlInit, %function 20667FtlInit: 20668 @ args = 0, pretend = 0, frame = 0 20669 @ frame_needed = 0, uses_anonymous_args = 0 20670 push {r3, r4, r5, lr} 20671 mov r3, #-1 20672 ldr r4, .L2920 20673 mov r5, r0 20674 ldr r2, .L2920+4 20675 str r3, [r4] 20676 movs r3, #0 20677 ldr r1, .L2920+8 20678 str r3, [r2] 20679 ldr r2, .L2920+12 20680 ldr r0, .L2920+16 20681 str r3, [r2] 20682 bl printf 20683 mov r0, r5 20684 bl FtlConstantsInit 20685 bl FtlMemInit 20686 bl FtlVariablesInit 20687 ldr r3, .L2920+20 20688 ldrh r0, [r3] 20689 bl FtlFreeSysBlkQueueInit 20690 bl FtlLoadBbt 20691 cbz r0, .L2912 20692 ldr r1, .L2920+24 20693 ldr r0, .L2920+28 20694.L2919: 20695 bl printf 20696.L2913: 20697 movs r0, #0 20698 pop {r3, r4, r5, pc} 20699.L2912: 20700 bl FtlSysBlkInit 20701 cbz r0, .L2914 20702 ldr r1, .L2920+24 20703 ldr r0, .L2920+32 20704 b .L2919 20705.L2914: 20706 movs r1, #1 20707 str r1, [r4] 20708 bl rk_ftl_garbage_collect 20709 ldr r3, .L2920+36 20710 ldrh r3, [r3] 20711 cmp r3, #15 20712 bhi .L2913 20713 mov r4, #1024 20714.L2916: 20715 movs r1, #1 20716 mov r0, r1 20717 bl rk_ftl_garbage_collect 20718 subs r4, r4, #1 20719 bne .L2916 20720 b .L2913 20721.L2921: 20722 .align 2 20723.L2920: 20724 .word .LANCHOR231 20725 .word .LANCHOR244 20726 .word .LC66 20727 .word .LANCHOR77 20728 .word .LC7 20729 .word .LANCHOR39 20730 .word .LANCHOR245 20731 .word .LC67 20732 .word .LC68 20733 .word .LANCHOR89 20734 .size FtlInit, .-FtlInit 20735 .section .text.rk_ftl_init,"ax",%progbits 20736 .align 1 20737 .global rk_ftl_init 20738 .syntax unified 20739 .thumb 20740 .thumb_func 20741 .fpu softvfp 20742 .type rk_ftl_init, %function 20743rk_ftl_init: 20744 @ args = 0, pretend = 0, frame = 0 20745 @ frame_needed = 0, uses_anonymous_args = 0 20746 push {r4, lr} 20747 bl FlashInit 20748 mov r4, r0 20749 cbnz r0, .L2923 20750 ldr r0, .L2924 20751 bl FtlInit 20752.L2923: 20753 bl idb_init 20754 mov r1, r4 20755 ldr r0, .L2924+4 20756 bl printf 20757 mov r0, r4 20758 pop {r4, pc} 20759.L2925: 20760 .align 2 20761.L2924: 20762 .word .LANCHOR15 20763 .word .LC69 20764 .size rk_ftl_init, .-rk_ftl_init 20765 .section .text.ftl_fix_nand_power_lost_error,"ax",%progbits 20766 .align 1 20767 .global ftl_fix_nand_power_lost_error 20768 .syntax unified 20769 .thumb 20770 .thumb_func 20771 .fpu softvfp 20772 .type ftl_fix_nand_power_lost_error, %function 20773ftl_fix_nand_power_lost_error: 20774 @ args = 0, pretend = 0, frame = 56 20775 @ frame_needed = 0, uses_anonymous_args = 0 20776 ldr r3, .L2940 20777 push {r4, r5, r6, r7, r8, r10, fp, lr} 20778 sub sp, sp, #56 20779 ldrb r3, [r3] @ zero_extendqisi2 20780 cmp r3, #0 20781 beq .L2926 20782 ldr r7, .L2940+4 20783 ldr r6, .L2940+8 20784 ldr r10, .L2940+32 20785 ldrh r5, [r7] 20786 ldr r3, [r6] 20787 ldr r4, .L2940+12 20788 mov r1, r5 20789 ldr r0, .L2940+16 20790 ldrh r2, [r3, r5, lsl #1] 20791 lsl r8, r5, #1 20792 bl printf 20793 ldrh r0, [r10] 20794 bl FtlGcRefreshOpenBlock 20795 ldrh r0, [r4] 20796 bl FtlGcRefreshOpenBlock 20797 mov r0, r10 20798 bl allocate_new_data_superblock 20799 mov r0, r4 20800 movw r4, #4097 20801 bl allocate_new_data_superblock 20802 str r7, [sp, #4] 20803.L2928: 20804 subs r4, r4, #1 20805 beq .L2932 20806 movs r1, #1 20807 mov r0, r1 20808 bl rk_ftl_garbage_collect 20809 ldr r3, [r6] 20810 ldrh r3, [r3, r8] 20811 cmp r3, #0 20812 bne .L2928 20813.L2932: 20814 ldr r3, [r6] 20815 mov r1, r5 20816 ldr r0, .L2940+16 20817 ldrh r2, [r3, r5, lsl #1] 20818 bl printf 20819 ldr r3, [r6] 20820 ldrh r4, [r3, r5, lsl #1] 20821 cbnz r4, .L2930 20822 add r0, sp, #56 20823 ldr r7, .L2940+20 20824 strh r5, [r0, #-48]! @ movhi 20825 movw r10, #65535 20826 bl make_superblock 20827 ldr r3, .L2940+24 20828 add r0, sp, #22 20829 ldr r8, [r7] 20830 mov r2, r4 20831 mov fp, #36 20832 mov ip, r4 20833 ldrh lr, [r3] 20834.L2933: 20835 uxth r3, r2 20836 cmp lr, r3 20837 bhi .L2935 20838 ldr r3, [r6] 20839 mov r1, r5 20840 ldr r0, .L2940+28 20841 ldrh r2, [r3, r5, lsl #1] 20842 bl printf 20843 mov r2, r4 20844 movs r1, #0 20845 ldr r0, [r7] 20846 bl FlashEraseBlocks 20847 mov r2, r4 20848 movs r1, #1 20849 ldr r0, [r7] 20850 bl FlashEraseBlocks 20851.L2930: 20852 ldr r2, [sp, #4] 20853 movw r3, #65535 20854 strh r3, [r2] @ movhi 20855.L2926: 20856 add sp, sp, #56 20857 @ sp needed 20858 pop {r4, r5, r6, r7, r8, r10, fp, pc} 20859.L2935: 20860 ldrh r3, [r0, #2]! 20861 cmp r3, r10 20862 beq .L2934 20863 mla r1, fp, r4, r8 20864 adds r4, r4, #1 20865 lsls r3, r3, #10 20866 uxth r4, r4 20867 str r3, [r1, #4] 20868 str ip, [r1, #8] 20869 str ip, [r1, #12] 20870.L2934: 20871 adds r2, r2, #1 20872 b .L2933 20873.L2941: 20874 .align 2 20875.L2940: 20876 .word .LANCHOR8 20877 .word .LANCHOR235 20878 .word .LANCHOR84 20879 .word .LANCHOR93 20880 .word .LC70 20881 .word .LANCHOR78 20882 .word .LANCHOR38 20883 .word .LC71 20884 .word .LANCHOR92 20885 .size ftl_fix_nand_power_lost_error, .-ftl_fix_nand_power_lost_error 20886 .section .text.ftl_read,"ax",%progbits 20887 .align 1 20888 .global ftl_read 20889 .syntax unified 20890 .thumb 20891 .thumb_func 20892 .fpu softvfp 20893 .type ftl_read, %function 20894ftl_read: 20895 @ args = 0, pretend = 0, frame = 64 20896 @ frame_needed = 0, uses_anonymous_args = 0 20897 cmp r0, #16 20898 push {r4, r5, r6, r7, r8, r10, fp, lr} 20899 sub sp, sp, #88 20900 mov r6, r1 20901 mov r7, r3 20902 str r2, [sp, #52] 20903 bne .L2943 20904 mov r2, r3 20905 ldr r1, [sp, #52] 20906 add r0, r6, #256 20907 bl FtlVendorPartRead 20908 str r0, [sp, #32] 20909.L2942: 20910 ldr r0, [sp, #32] 20911 add sp, sp, #88 20912 @ sp needed 20913 pop {r4, r5, r6, r7, r8, r10, fp, pc} 20914.L2943: 20915 ldr r3, [sp, #52] 20916 adds r3, r1, r3 20917 str r3, [sp, #36] 20918 ldr r3, .L2981 20919 ldr r2, [sp, #36] 20920 ldr r3, [r3] 20921 cmp r2, r3 20922 bhi .L2966 20923 ldr r3, .L2981+4 20924 ldr r3, [r3] 20925 adds r4, r3, #1 20926 beq .L2967 20927 bl FtlCacheWriteBack 20928 ldr r3, .L2981+8 20929 mov r0, r6 20930 ldr r10, .L2981+52 20931 ldrh r4, [r3] 20932 mov r1, r4 20933 bl __aeabi_uidiv 20934 ldr r3, [sp, #36] 20935 mov r1, r4 20936 str r0, [sp, #40] 20937 subs r0, r3, #1 20938 bl __aeabi_uidiv 20939 ldr r3, [sp, #40] 20940 ldr r2, .L2981+12 20941 ldr r4, [sp, #40] 20942 rsb r3, r3, #1 20943 str r0, [sp, #44] 20944 add r3, r3, r0 20945 str r3, [sp, #28] 20946 ldr r1, [sp, #28] 20947 ldr r3, [r2] 20948 add r3, r3, r1 20949 str r3, [r2] 20950 movs r3, #0 20951 mov r5, r3 20952 str r3, [sp, #24] 20953 str r3, [sp, #48] 20954 str r3, [sp, #32] 20955.L2945: 20956 ldr r3, [sp, #28] 20957 cbnz r3, .L2965 20958 ldr r3, .L2981+16 20959 ldrh r3, [r3] 20960 cmp r3, #0 20961 beq .L2942 20962 movs r1, #1 20963 ldr r0, [sp, #28] 20964 bl rk_ftl_garbage_collect 20965 b .L2942 20966.L2965: 20967 movs r2, #0 20968 add r1, sp, #84 20969 mov r0, r4 20970 bl log2phys 20971 ldr r3, [sp, #84] 20972 adds r0, r3, #1 20973 bne .L2946 20974 ldr fp, .L2981+8 20975 mov r8, #0 20976.L2947: 20977 ldrh r0, [fp] 20978 cmp r8, r0 20979 bcc .L2949 20980.L2950: 20981 ldr r3, [sp, #28] 20982 adds r4, r4, #1 20983 subs r3, r3, #1 20984 str r3, [sp, #28] 20985 beq .L2954 20986 ldr r3, .L2981+20 20987 ldrh r3, [r3] 20988 cmp r5, r3, lsl #2 20989 bne .L2945 20990.L2954: 20991 cmp r5, #0 20992 beq .L2945 20993 movs r2, #0 20994 mov r1, r5 20995 ldr r0, [r10] 20996 mov fp, #0 20997 bl FlashReadPages 20998 ldr r3, [sp, #24] 20999 lsls r3, r3, #9 21000 str r3, [sp, #68] 21001 ldr r3, [sp, #56] 21002 lsls r3, r3, #9 21003 str r3, [sp, #60] 21004 ldr r3, [sp, #48] 21005 lsls r3, r3, #9 21006 str r3, [sp, #64] 21007.L2964: 21008 mov r8, #36 21009 ldr r3, [r10] 21010 mul r8, r8, fp 21011 ldr r1, [sp, #40] 21012 add r3, r3, r8 21013 ldr r2, [r3, #16] 21014 cmp r1, r2 21015 bne .L2956 21016 ldr r1, [r3, #8] 21017 ldr r3, .L2981+24 21018 ldr r3, [r3] 21019 cmp r1, r3 21020 bne .L2957 21021 ldr r3, [sp, #60] 21022 mov r0, r7 21023 ldr r2, [sp, #64] 21024 add r1, r1, r3 21025.L2980: 21026 bl ftl_memcpy 21027.L2957: 21028 ldr r2, [r10] 21029 add r2, r2, r8 21030 ldr r3, [r2, #12] 21031 ldr lr, [r2, #16] 21032 ldr r0, [r3, #8] 21033 cmp lr, r0 21034 beq .L2958 21035 ldr ip, .L2981+32 21036 ldr r0, [ip, #72] 21037 adds r0, r0, #1 21038 str r0, [ip, #72] 21039 ldr r0, [r2, #8] 21040 ldr r1, [r0, #4] 21041 str r1, [sp, #16] 21042 mov r1, lr 21043 ldr r0, [r0] 21044 str r0, [sp, #12] 21045 ldr r0, [r3, #12] 21046 str r0, [sp, #8] 21047 ldr r0, [r3, #8] 21048 str r0, [sp, #4] 21049 ldr r0, [r3, #4] 21050 str r0, [sp] 21051 ldr r0, .L2981+28 21052 ldr r3, [r3] 21053 ldr r2, [r2, #4] 21054 bl printf 21055.L2958: 21056 ldr r3, [r10] 21057 add r2, r3, r8 21058 ldr r3, [r3, r8] 21059 adds r1, r3, #1 21060 bne .L2959 21061 ldr r1, .L2981+32 21062 str r3, [sp, #32] 21063 ldr r2, [r1, #72] 21064 adds r2, r2, #1 21065 str r2, [r1, #72] 21066.L2960: 21067 add fp, fp, #1 21068 cmp r5, fp 21069 bne .L2964 21070 movs r5, #0 21071 b .L2945 21072.L2949: 21073 mla r0, r0, r4, r8 21074 cmp r6, r0 21075 bhi .L2948 21076 ldr r3, [sp, #36] 21077 cmp r3, r0 21078 bls .L2948 21079 subs r0, r0, r6 21080 mov r2, #512 21081 movs r1, #0 21082 add r0, r7, r0, lsl #9 21083 bl ftl_memset 21084.L2948: 21085 add r8, r8, #1 21086 b .L2947 21087.L2946: 21088 ldr r2, [r10] 21089 mov r8, #36 21090 mla r8, r8, r5, r2 21091 str r3, [r8, #4] 21092 ldr r3, [sp, #40] 21093 cmp r4, r3 21094 ldr r3, .L2981+8 21095 bne .L2951 21096 ldr r2, .L2981+24 21097 mov r0, r6 21098 ldrh fp, [r3] 21099 ldr r2, [r2] 21100 mov r1, fp 21101 str r2, [r8, #8] 21102 bl __aeabi_uidivmod 21103 ldr r2, [sp, #52] 21104 sub r3, fp, r1 21105 str r1, [sp, #56] 21106 cmp r3, r2 21107 it cs 21108 movcs r3, r2 21109 cmp fp, r3 21110 str r3, [sp, #48] 21111 bne .L2952 21112 str r7, [r8, #8] 21113.L2952: 21114 ldr r3, .L2981+36 21115 ldr r2, .L2981+40 21116 str r4, [r8, #16] 21117 ldrh r3, [r3] 21118 ldr r2, [r2] 21119 muls r3, r5, r3 21120 adds r5, r5, #1 21121 bic r3, r3, #3 21122 add r3, r3, r2 21123 str r3, [r8, #12] 21124 b .L2950 21125.L2951: 21126 ldr r2, [sp, #44] 21127 cmp r4, r2 21128 bne .L2953 21129 ldr r2, .L2981+44 21130 ldr r1, [sp, #36] 21131 ldr r2, [r2] 21132 str r2, [r8, #8] 21133 ldrh r2, [r3] 21134 mul r3, r2, r4 21135 subs r1, r1, r3 21136 cmp r2, r1 21137 str r1, [sp, #24] 21138 bne .L2952 21139.L2979: 21140 subs r3, r3, r6 21141 add r3, r7, r3, lsl #9 21142 str r3, [r8, #8] 21143 b .L2952 21144.L2953: 21145 ldrh r3, [r3] 21146 muls r3, r4, r3 21147 b .L2979 21148.L2956: 21149 ldr r1, [sp, #44] 21150 cmp r1, r2 21151 bne .L2957 21152 ldr r1, [r3, #8] 21153 ldr r3, .L2981+44 21154 ldr r3, [r3] 21155 cmp r1, r3 21156 bne .L2957 21157 ldr r3, .L2981+8 21158 ldr r2, [sp, #68] 21159 ldrh r0, [r3] 21160 ldr r3, [sp, #44] 21161 muls r0, r3, r0 21162 subs r0, r0, r6 21163 add r0, r7, r0, lsl #9 21164 b .L2980 21165.L2959: 21166 cmp r3, #256 21167 bne .L2960 21168 ldr r0, [r2, #4] 21169 ubfx r0, r0, #10, #16 21170 bl P2V_block_in_plane 21171 mov r8, r0 21172 bl FtlGcRefreshBlock 21173 ldr r2, .L2981+48 21174 movw r3, #2049 21175.L2962: 21176 subs r3, r3, #1 21177 bne .L2961 21178.L2963: 21179 bl FtlSysFlush 21180 b .L2960 21181.L2961: 21182 movs r1, #1 21183 str r2, [sp, #76] 21184 mov r0, r1 21185 str r3, [sp, #72] 21186 bl rk_ftl_garbage_collect 21187 ldr r2, [sp, #76] 21188 ldr r3, [sp, #72] 21189 ldrh r1, [r2] 21190 cmp r1, r8 21191 beq .L2962 21192 b .L2963 21193.L2966: 21194 mov r3, #-1 21195.L2967: 21196 str r3, [sp, #32] 21197 b .L2942 21198.L2982: 21199 .align 2 21200.L2981: 21201 .word .LANCHOR69 21202 .word .LANCHOR231 21203 .word .LANCHOR56 21204 .word .LANCHOR166 21205 .word .LANCHOR117 21206 .word .LANCHOR38 21207 .word .LANCHOR186 21208 .word .LC60 21209 .word .LANCHOR138 21210 .word .LANCHOR59 21211 .word .LANCHOR189 21212 .word .LANCHOR187 21213 .word .LANCHOR204 21214 .word .LANCHOR180 21215 .size ftl_read, .-ftl_read 21216 .section .text.FtlWrite,"ax",%progbits 21217 .align 1 21218 .global FtlWrite 21219 .syntax unified 21220 .thumb 21221 .thumb_func 21222 .fpu softvfp 21223 .type FtlWrite, %function 21224FtlWrite: 21225 @ args = 0, pretend = 0, frame = 80 21226 @ frame_needed = 0, uses_anonymous_args = 0 21227 push {r4, r5, r6, r7, r8, r10, fp, lr} 21228 mov r10, r3 21229 ldr r3, .L3031 21230 sub sp, sp, #80 21231 mov r6, r1 21232 str r2, [sp, #12] 21233 ldr r3, [r3] 21234 cmp r3, #0 21235 bne .L3016 21236 cmp r0, #16 21237 bne .L2985 21238 mov r2, r10 21239 ldr r1, [sp, #12] 21240 add r0, r6, #256 21241 bl FtlVendorPartWrite 21242.L2983: 21243 add sp, sp, #80 21244 @ sp needed 21245 pop {r4, r5, r6, r7, r8, r10, fp, pc} 21246.L2985: 21247 ldr r3, [sp, #12] 21248 adds r5, r1, r3 21249 ldr r3, .L3031+4 21250 ldr r3, [r3] 21251 cmp r5, r3 21252 bhi .L3017 21253 ldr r3, .L3031+8 21254 ldr r0, [r3] 21255 adds r4, r0, #1 21256 beq .L2983 21257 ldr r3, .L3031+12 21258 mov r2, #2048 21259 mov r0, r6 21260 str r2, [r3] 21261 ldr r3, .L3031+16 21262 ldrh r4, [r3] 21263 mov r1, r4 21264 bl __aeabi_uidiv 21265 mov r1, r4 21266 mov r8, r0 21267 subs r0, r5, #1 21268 bl __aeabi_uidiv 21269 ldr r2, .L3031+20 21270 sub r5, r0, r8 21271 adds r3, r5, #1 21272 adds r1, r5, #1 21273 str r3, [sp, #4] 21274 ldr r3, [r2] 21275 str r0, [sp, #16] 21276 add r3, r3, r1 21277 str r3, [r2] 21278 ldr r3, .L3031+24 21279 ldr fp, [r3] 21280 cmp fp, #0 21281 beq .L2987 21282 ldr r3, [fp, #16] 21283 cmp r8, r3 21284 beq .L2988 21285 bl FtlCacheWriteBack 21286.L2987: 21287 ldr r7, .L3031+28 21288 mov r4, r8 21289.L2989: 21290 ldr r3, [sp, #4] 21291 cbnz r3, .L3015 21292 ldr r3, [sp, #16] 21293 ldr r0, [sp, #4] 21294 sub r1, r3, r8 21295 bl rk_ftl_garbage_collect 21296.L3016: 21297 movs r0, #0 21298 b .L2983 21299.L2988: 21300 ldr r2, .L3031+32 21301 mov r1, r4 21302 mov r0, r6 21303 ldr r3, [r2] 21304 adds r3, r3, #1 21305 str r3, [r2] 21306 bl __aeabi_uidivmod 21307 ldr r2, [sp, #12] 21308 subs r4, r4, r1 21309 ldr r0, [fp, #8] 21310 mov r3, r1 21311 mov r1, r10 21312 cmp r4, r2 21313 it cs 21314 movcs r4, r2 21315 lsls r7, r4, #9 21316 add r0, r0, r3, lsl #9 21317 mov r2, r7 21318 bl ftl_memcpy 21319 cmp r5, #0 21320 beq .L3016 21321 ldr r3, [sp, #12] 21322 add r6, r6, r4 21323 add r10, r10, r7 21324 add r8, r8, #1 21325 subs r3, r3, r4 21326 str r3, [sp, #12] 21327 bl FtlCacheWriteBack 21328 str r5, [sp, #4] 21329 b .L2987 21330.L3015: 21331 ldr r5, .L3031+36 21332 ldrb r2, [r7, #6] @ zero_extendqisi2 21333 ldrh r3, [r5] 21334 cmp r2, r3 21335 bcc .L2990 21336 ldr r1, .L3031+40 21337 movw r2, #1668 21338 ldr r0, .L3031+44 21339 bl printf 21340 ldr r1, .L3031+48 21341 ldr r0, .L3031+52 21342 bl printf 21343.L2990: 21344 ldrh r3, [r7, #4] 21345 cbnz r3, .L2991 21346 bl FtlCacheWriteBack 21347 mov r0, r7 21348 bl allocate_new_data_superblock 21349.L2991: 21350 ldrb r3, [r7, #7] @ zero_extendqisi2 21351 ldrh r2, [r7, #4] 21352 lsls r3, r3, #2 21353 cmp r3, r2 21354 it cs 21355 movcs r3, r2 21356 ldr r2, [sp, #4] 21357 cmp r3, r2 21358 it cs 21359 movcs r3, r2 21360 ldrb r2, [r7, #6] @ zero_extendqisi2 21361 str r3, [sp, #36] 21362 ldrh r3, [r5] 21363 cmp r2, r3 21364 bcc .L2992 21365 ldr r1, .L3031+40 21366 movw r2, #1701 21367 ldr r0, .L3031+44 21368 bl printf 21369 ldr r1, .L3031+48 21370 ldr r0, .L3031+52 21371 bl printf 21372.L2992: 21373 movs r3, #0 21374.L3030: 21375 str r3, [sp, #8] 21376 ldr r3, [sp, #8] 21377 ldr r2, [sp, #36] 21378 cmp r3, r2 21379 bne .L3013 21380.L2994: 21381 ldr r0, .L3031+56 21382 mov r3, r7 21383 movs r2, #0 21384 ldr r1, [sp, #8] 21385 ldr r0, [r0] 21386 bl FtlProgPages 21387 ldr r3, [sp, #4] 21388 ldr r2, [sp, #8] 21389 cmp r3, r2 21390 bcs .L3014 21391 ldr r1, .L3031+40 21392 movw r2, #1790 21393 ldr r0, .L3031+44 21394 bl printf 21395 ldr r1, .L3031+48 21396 ldr r0, .L3031+52 21397 bl printf 21398.L3014: 21399 ldr r3, [sp, #4] 21400 ldr r2, [sp, #8] 21401 subs r3, r3, r2 21402 str r3, [sp, #4] 21403 b .L2989 21404.L3013: 21405 ldrh r3, [r7, #4] 21406 cmp r3, #0 21407 beq .L2994 21408 movs r2, #0 21409 add r1, sp, #40 21410 mov r0, r4 21411 movs r5, #36 21412 bl log2phys 21413 mov r0, r7 21414 bl get_new_active_ppa 21415 ldr r3, [sp, #8] 21416 ldr r2, .L3031+60 21417 muls r5, r3, r5 21418 ldr r3, .L3031+56 21419 ldrh r2, [r2] 21420 ldr r1, [r3] 21421 str r3, [sp, #20] 21422 ldr r3, [sp, #8] 21423 add r1, r1, r5 21424 str r0, [r1, #4] 21425 str r4, [r1, #16] 21426 mul r0, r2, r3 21427 bic r3, r0, #3 21428 ldr r0, .L3031+64 21429 str r3, [sp, #28] 21430 ldr r3, [r0] 21431 ldr r0, [sp, #28] 21432 str r3, [sp, #32] 21433 add fp, r3, r0 21434 str fp, [r1, #12] 21435 mov r0, fp 21436 movs r1, #0 21437 bl ftl_memset 21438 cmp r4, r8 21439 ldr r1, .L3031+16 21440 beq .L2995 21441 ldr r3, [sp, #16] 21442 cmp r3, r4 21443 ldr r3, [sp, #20] 21444 bne .L3026 21445 ldr r3, [sp, #12] 21446 adds r2, r6, r3 21447 ldrh r3, [r1] 21448 ldrh r1, [sp, #16] 21449 smulbb r3, r3, r1 21450 subs r2, r2, r3 21451 uxth r3, r2 21452 str r3, [sp, #20] 21453 movs r3, #0 21454 str r3, [sp, #24] 21455 b .L2998 21456.L2995: 21457 ldrh r2, [r1] 21458 mov r0, r6 21459 mov r1, r2 21460 str r2, [sp, #20] 21461 bl __aeabi_uidivmod 21462 ldr r2, [sp, #20] 21463 str r1, [sp, #24] 21464 subs r2, r2, r1 21465 ldr r1, [sp, #12] 21466 mov r3, r2 21467 cmp r2, r1 21468 it cs 21469 movcs r3, r1 21470 str r3, [sp, #20] 21471.L2998: 21472 ldr r3, .L3031+16 21473 ldr r2, [sp, #20] 21474 ldrh r3, [r3] 21475 cmp r3, r2 21476 ldr r3, .L3031+56 21477 ldr r3, [r3] 21478 bne .L2999 21479 cmp r4, r8 21480 add r5, r5, r3 21481 itett ne 21482 ldrne r2, [sp, #20] 21483 streq r10, [r5, #8] 21484 mulne r2, r2, r4 21485 subne r2, r2, r6 21486 itt ne 21487 addne r2, r10, r2, lsl #9 21488 strne r2, [r5, #8] 21489.L3001: 21490 ldr r3, .L3031+36 21491 ldrb r2, [r7, #6] @ zero_extendqisi2 21492 ldrh r3, [r3] 21493 cmp r2, r3 21494 bcc .L3010 21495 ldr r1, .L3031+40 21496 movw r2, #1775 21497 ldr r0, .L3031+44 21498 bl printf 21499 ldr r1, .L3031+48 21500 ldr r0, .L3031+52 21501 bl printf 21502.L3010: 21503 ldr r2, [sp, #32] 21504 movw r3, #61589 21505 ldr r1, [sp, #28] 21506 strh r3, [r2, r1] @ movhi 21507 ldr r2, .L3031+68 21508 str r4, [fp, #8] 21509 adds r4, r4, #1 21510 ldr r3, [r2] 21511 str r3, [fp, #4] 21512 adds r3, r3, #1 21513 adds r1, r3, #1 21514 it eq 21515 moveq r3, #0 21516 str r3, [r2] 21517 ldr r3, [sp, #40] 21518 str r3, [fp, #12] 21519 ldrh r3, [r7] 21520 strh r3, [fp, #2] @ movhi 21521 ldr r3, [sp, #8] 21522 adds r3, r3, #1 21523 b .L3030 21524.L3032: 21525 .align 2 21526.L3031: 21527 .word .LANCHOR77 21528 .word .LANCHOR69 21529 .word .LANCHOR231 21530 .word .LANCHOR246 21531 .word .LANCHOR56 21532 .word .LANCHOR162 21533 .word .LANCHOR132 21534 .word .LANCHOR92 21535 .word .LANCHOR164 21536 .word .LANCHOR38 21537 .word .LANCHOR247 21538 .word .LC5 21539 .word .LC6 21540 .word .LC7 21541 .word .LANCHOR182 21542 .word .LANCHOR59 21543 .word .LANCHOR189 21544 .word .LANCHOR160 21545.L2999: 21546 cmp r4, r8 21547 add r3, r3, r5 21548 ite eq 21549 ldreq r2, .L3033 21550 ldrne r2, .L3033+4 21551 ldr r2, [r2] 21552 str r2, [r3, #8] 21553 ldr r2, [sp, #40] 21554 ldr r3, .L3033+8 21555 adds r0, r2, #1 21556 beq .L3004 21557 ldr r3, [r3] 21558 movs r1, #1 21559 str r2, [sp, #48] 21560 add r0, sp, #44 21561 str r4, [sp, #60] 21562 add r3, r3, r5 21563 ldr r2, [r3, #8] 21564 ldr r3, [r3, #12] 21565 str r2, [sp, #52] 21566 movs r2, #0 21567 str r3, [sp, #56] 21568 bl FlashReadPages 21569 ldr r3, [sp, #44] 21570 adds r3, r3, #1 21571 bne .L3005 21572 ldr r2, .L3033+12 21573 ldr r3, [r2, #72] 21574 adds r3, r3, #1 21575 str r3, [r2, #72] 21576.L3008: 21577 ldr r2, [sp, #20] 21578 cmp r4, r8 21579 ldr r3, .L3033+8 21580 lsl r2, r2, #9 21581 bne .L3009 21582 ldr r3, [r3] 21583 mov r1, r10 21584 add r5, r5, r3 21585 ldr r3, [sp, #24] 21586 ldr r0, [r5, #8] 21587 add r0, r0, r3, lsl #9 21588.L3028: 21589 bl ftl_memcpy 21590 b .L3001 21591.L3005: 21592 ldr r1, [fp, #8] 21593 cmp r4, r1 21594 beq .L3007 21595 ldr r2, .L3033+12 21596 ldr r0, .L3033+16 21597 ldr r3, [r2, #72] 21598 adds r3, r3, #1 21599 str r3, [r2, #72] 21600 mov r2, r4 21601 bl printf 21602.L3007: 21603 ldr r3, [fp, #8] 21604 cmp r4, r3 21605 beq .L3008 21606 movw r2, #1754 21607 ldr r1, .L3033+20 21608 ldr r0, .L3033+24 21609 bl printf 21610 ldr r1, .L3033+28 21611 ldr r0, .L3033+32 21612 bl printf 21613 b .L3008 21614.L3004: 21615 ldr r3, [r3] 21616 movs r1, #0 21617 ldr r2, .L3033+36 21618 add r3, r3, r5 21619 ldrh r2, [r2] 21620 ldr r0, [r3, #8] 21621 bl ftl_memset 21622 b .L3008 21623.L3009: 21624 ldr r1, .L3033+40 21625 ldr r3, [r3] 21626 ldrh r1, [r1] 21627 add r5, r5, r3 21628 ldr r0, [r5, #8] 21629 muls r1, r4, r1 21630 subs r1, r1, r6 21631 add r1, r10, r1, lsl #9 21632 b .L3028 21633.L3026: 21634 ldr r3, [r3] 21635 add r5, r5, r3 21636 ldrh r3, [r1] 21637 muls r3, r4, r3 21638 subs r3, r3, r6 21639 add r3, r10, r3, lsl #9 21640 str r3, [r5, #8] 21641 b .L3001 21642.L3017: 21643 mov r0, #-1 21644 b .L2983 21645.L3034: 21646 .align 2 21647.L3033: 21648 .word .LANCHOR186 21649 .word .LANCHOR187 21650 .word .LANCHOR182 21651 .word .LANCHOR138 21652 .word .LC72 21653 .word .LANCHOR247 21654 .word .LC5 21655 .word .LC6 21656 .word .LC7 21657 .word .LANCHOR58 21658 .word .LANCHOR56 21659 .size FtlWrite, .-FtlWrite 21660 .section .text.ftl_vendor_write,"ax",%progbits 21661 .align 1 21662 .global ftl_vendor_write 21663 .syntax unified 21664 .thumb 21665 .thumb_func 21666 .fpu softvfp 21667 .type ftl_vendor_write, %function 21668ftl_vendor_write: 21669 @ args = 0, pretend = 0, frame = 0 21670 @ frame_needed = 0, uses_anonymous_args = 0 21671 @ link register save eliminated. 21672 mov r3, r2 21673 mov r2, r1 21674 mov r1, r0 21675 movs r0, #16 21676 b FtlWrite 21677 .size ftl_vendor_write, .-ftl_vendor_write 21678 .section .text.ftl_sys_write,"ax",%progbits 21679 .align 1 21680 .global ftl_sys_write 21681 .syntax unified 21682 .thumb 21683 .thumb_func 21684 .fpu softvfp 21685 .type ftl_sys_write, %function 21686ftl_sys_write: 21687 @ args = 0, pretend = 0, frame = 0 21688 @ frame_needed = 0, uses_anonymous_args = 0 21689 @ link register save eliminated. 21690 mov r3, r2 21691 mov r2, r1 21692 add r1, r0, #256 21693 movs r0, #16 21694 b FtlWrite 21695 .size ftl_sys_write, .-ftl_sys_write 21696 .section .text.StorageSysDataStore,"ax",%progbits 21697 .align 1 21698 .global StorageSysDataStore 21699 .syntax unified 21700 .thumb 21701 .thumb_func 21702 .fpu softvfp 21703 .type StorageSysDataStore, %function 21704StorageSysDataStore: 21705 @ args = 0, pretend = 0, frame = 0 21706 @ frame_needed = 0, uses_anonymous_args = 0 21707 @ link register save eliminated. 21708 mov r3, r1 21709 movs r2, #1 21710 add r1, r0, #256 21711 movs r0, #16 21712 b FtlWrite 21713 .size StorageSysDataStore, .-StorageSysDataStore 21714 .section .text.FlashBootVendorWrite,"ax",%progbits 21715 .align 1 21716 .global FlashBootVendorWrite 21717 .syntax unified 21718 .thumb 21719 .thumb_func 21720 .fpu softvfp 21721 .type FlashBootVendorWrite, %function 21722FlashBootVendorWrite: 21723 @ args = 0, pretend = 0, frame = 0 21724 @ frame_needed = 0, uses_anonymous_args = 0 21725 @ link register save eliminated. 21726 mov r3, r2 21727 mov r1, r0 21728 movs r2, #1 21729 movs r0, #16 21730 b FtlWrite 21731 .size FlashBootVendorWrite, .-FlashBootVendorWrite 21732 .section .text.ftl_write,"ax",%progbits 21733 .align 1 21734 .global ftl_write 21735 .syntax unified 21736 .thumb 21737 .thumb_func 21738 .fpu softvfp 21739 .type ftl_write, %function 21740ftl_write: 21741 @ args = 0, pretend = 0, frame = 0 21742 @ frame_needed = 0, uses_anonymous_args = 0 21743 push {r4, r5, r6, r7, r8, lr} 21744 mov r7, r1 21745 mov r4, r2 21746 mov r5, r3 21747 mov r6, r0 21748 cbnz r0, .L3040 21749 mov r3, r2 21750 mov r2, r5 21751 bl idb_write_data 21752.L3040: 21753 mov r3, r5 21754 mov r2, r4 21755 mov r1, r7 21756 mov r0, r6 21757 pop {r4, r5, r6, r7, r8, lr} 21758 b FtlWrite 21759 .size ftl_write, .-ftl_write 21760 .section .text.FtlCheckVpc,"ax",%progbits 21761 .align 1 21762 .global FtlCheckVpc 21763 .syntax unified 21764 .thumb 21765 .thumb_func 21766 .fpu softvfp 21767 .type FtlCheckVpc, %function 21768FtlCheckVpc: 21769 @ args = 0, pretend = 0, frame = 8 21770 @ frame_needed = 0, uses_anonymous_args = 0 21771 push {r0, r1, r4, r5, r6, r7, r8, r10, fp, lr} 21772 movs r4, #0 21773 ldr r6, .L3065 21774 ldr r5, .L3065+4 21775 ldr r1, .L3065+8 21776 ldr r0, .L3065+12 21777 bl printf 21778 mov r2, #8192 21779 movs r1, #0 21780 ldr r0, .L3065+4 21781 bl memset 21782.L3042: 21783 ldr r3, [r6] 21784 cmp r4, r3 21785 bcc .L3044 21786 ldr r7, .L3065+16 21787 movs r4, #0 21788 ldr r5, .L3065+20 21789 movs r2, #2 21790 ldr r10, .L3065+4 21791 mov r6, r4 21792 ldr fp, .L3065+60 21793 mov r8, r7 21794 ldrh r3, [r7] 21795 ldr r1, [r5] 21796 ldr r0, .L3065+24 21797 bl rknand_print_hex 21798 ldrh r3, [r7] 21799 movs r2, #2 21800 ldr r1, .L3065+4 21801 ldr r0, .L3065+28 21802 bl rknand_print_hex 21803.L3045: 21804 ldrh r2, [r8] 21805 uxth r3, r4 21806 cmp r2, r3 21807 bhi .L3047 21808 ldr r3, .L3065+32 21809 ldr r4, [r3] 21810 cbz r4, .L3048 21811 ldr r3, .L3065+36 21812 mov r8, #0 21813 ldr r7, .L3065+40 21814 ldr fp, .L3065+64 21815 ldrh r10, [r3] 21816 ldr r3, [r7] 21817 subs r4, r4, r3 21818 ldr r3, .L3065+44 21819 asrs r4, r4, #1 21820 muls r4, r3, r4 21821 uxth r4, r4 21822.L3049: 21823 uxth r3, r8 21824 cmp r10, r3 21825 bls .L3048 21826 ldr r3, [r5] 21827 ldrh r2, [r3, r4, lsl #1] 21828 cbz r2, .L3050 21829 ldr r3, .L3065+4 21830 movs r6, #1 21831 mov r1, r4 21832 mov r0, fp 21833 ldrh r3, [r3, r4, lsl #1] 21834 bl printf 21835.L3050: 21836 movs r3, #6 21837 ldr r2, [r7] 21838 muls r4, r3, r4 21839 movw r3, #65535 21840 add r8, r8, #1 21841 ldrh r4, [r2, r4] 21842 cmp r4, r3 21843 bne .L3049 21844.L3048: 21845 cbz r6, .L3041 21846 ldr r1, .L3065+8 21847 movw r2, #1669 21848 ldr r0, .L3065+48 21849 bl printf 21850 ldr r1, .L3065+52 21851 ldr r0, .L3065+56 21852 bl printf 21853.L3041: 21854 add sp, sp, #8 21855 @ sp needed 21856 pop {r4, r5, r6, r7, r8, r10, fp, pc} 21857.L3044: 21858 movs r2, #0 21859 add r1, sp, #4 21860 mov r0, r4 21861 bl log2phys 21862 ldr r0, [sp, #4] 21863 adds r3, r0, #1 21864 beq .L3043 21865 ubfx r0, r0, #10, #16 21866 bl P2V_block_in_plane 21867 ldrh r3, [r5, r0, lsl #1] 21868 adds r3, r3, #1 21869 strh r3, [r5, r0, lsl #1] @ movhi 21870.L3043: 21871 adds r4, r4, #1 21872 b .L3042 21873.L3047: 21874 ldr r3, [r5] 21875 uxth r7, r4 21876 ldrh r2, [r3, r7, lsl #1] 21877 ldrh r3, [r10, r7, lsl #1] 21878 cmp r2, r3 21879 beq .L3046 21880 mov r1, r7 21881 mov r0, fp 21882 bl printf 21883 ldr r3, [r5] 21884 movw r2, #65535 21885 ldrh r3, [r3, r7, lsl #1] 21886 cmp r3, r2 21887 beq .L3046 21888 ldrh r2, [r10, r7, lsl #1] 21889 cmp r2, r3 21890 it hi 21891 movhi r6, #1 21892.L3046: 21893 adds r4, r4, #1 21894 b .L3045 21895.L3066: 21896 .align 2 21897.L3065: 21898 .word .LANCHOR73 21899 .word check_valid_page_count_table 21900 .word .LANCHOR248 21901 .word .LC45 21902 .word .LANCHOR40 21903 .word .LANCHOR84 21904 .word .LC73 21905 .word .LC74 21906 .word .LANCHOR88 21907 .word .LANCHOR89 21908 .word .LANCHOR82 21909 .word -1431655765 21910 .word .LC5 21911 .word .LC6 21912 .word .LC7 21913 .word .LC75 21914 .word .LC76 21915 .size FtlCheckVpc, .-FtlCheckVpc 21916 .section .text.FtlDumpSysBlock,"ax",%progbits 21917 .align 1 21918 .global FtlDumpSysBlock 21919 .syntax unified 21920 .thumb 21921 .thumb_func 21922 .fpu softvfp 21923 .type FtlDumpSysBlock, %function 21924FtlDumpSysBlock: 21925 @ args = 0, pretend = 0, frame = 0 21926 @ frame_needed = 0, uses_anonymous_args = 0 21927 push {r4, r5, r6, r7, r8, r10, fp, lr} 21928 lsl r10, r0, #10 21929 ldr r5, .L3074 21930 sub sp, sp, #24 21931 mov r7, r0 21932 movs r6, #0 21933 ldr r4, .L3074+4 21934 ldr r3, [r5] 21935 ldr r8, .L3074+20 21936 mov fp, r4 21937 str r3, [r4, #8] 21938 ldr r3, .L3074+8 21939 ldr r3, [r3] 21940 str r3, [r4, #12] 21941.L3068: 21942 ldrh r2, [r8] 21943 sxth r3, r6 21944 cmp r3, r2 21945 blt .L3070 21946 add sp, sp, #24 21947 @ sp needed 21948 pop {r4, r5, r6, r7, r8, r10, fp, pc} 21949.L3070: 21950 movs r2, #1 21951 orr r3, r3, r10 21952 mov r1, r2 21953 mov r0, fp 21954 str r3, [r4, #4] 21955 bl FlashReadPages 21956 ldr r2, [r4, #8] 21957 mov r1, r7 21958 ldr r3, [r4, #12] 21959 ldr r0, .L3074+12 21960 ldr r2, [r2] 21961 str r2, [sp, #16] 21962 ldr r2, [r3, #12] 21963 str r2, [sp, #12] 21964 ldr r2, [r3, #8] 21965 str r2, [sp, #8] 21966 ldr r2, [r3, #4] 21967 str r2, [sp, #4] 21968 ldr r3, [r3] 21969 str r3, [sp] 21970 ldm r4, {r2, r3} 21971 bl printf 21972 ldr r3, [r4, #12] 21973 ldr r3, [r3] 21974 adds r3, r3, #1 21975 beq .L3069 21976 mov r3, #768 21977 movs r2, #4 21978 ldr r1, [r5] 21979 ldr r0, .L3074+16 21980 bl rknand_print_hex 21981.L3069: 21982 adds r6, r6, #1 21983 b .L3068 21984.L3075: 21985 .align 2 21986.L3074: 21987 .word .LANCHOR183 21988 .word .LANCHOR202 21989 .word .LANCHOR188 21990 .word .LC77 21991 .word .LC78 21992 .word .LANCHOR54 21993 .size FtlDumpSysBlock, .-FtlDumpSysBlock 21994 .section .text.dump_map_info,"ax",%progbits 21995 .align 1 21996 .global dump_map_info 21997 .syntax unified 21998 .thumb 21999 .thumb_func 22000 .fpu softvfp 22001 .type dump_map_info, %function 22002dump_map_info: 22003 @ args = 0, pretend = 0, frame = 16 22004 @ frame_needed = 0, uses_anonymous_args = 0 22005 ldr r3, .L3090 22006 push {r4, r5, r6, r7, r8, r10, fp, lr} 22007 sub sp, sp, #40 22008 ldr r8, .L3090+72 22009 ldrh r5, [r3] 22010.L3077: 22011 ldr r3, .L3090+4 22012 ldrh r3, [r3] 22013 cmp r3, r5 22014 bhi .L3084 22015 ldr r4, .L3090+8 22016 movs r7, #0 22017.L3085: 22018 ldr r3, .L3090+12 22019 sxth r5, r7 22020 ldrh r3, [r3] 22021 cmp r5, r3 22022 bge .L3088 22023 lsls r5, r5, #1 22024 movs r6, #0 22025 ldr r8, .L3090+76 22026 b .L3089 22027.L3079: 22028 str r3, [sp, #36] 22029 mov r1, r5 22030 ldr r3, .L3090+16 22031 str r2, [sp, #32] 22032 ldrb r0, [r3, r6] @ zero_extendqisi2 22033 bl V2P_block 22034 str r0, [sp, #28] 22035 bl FtlBbmIsBadBlock 22036 ldr r2, [sp, #32] 22037 ldr r3, [sp, #36] 22038 cbnz r0, .L3078 22039 ldr r1, [sp, #28] 22040 mla r0, fp, r4, r7 22041 lsls r1, r1, #10 22042 str r3, [r0, #8] 22043 str r1, [r0, #4] 22044 mul r1, r10, r4 22045 adds r4, r4, #1 22046 uxth r4, r4 22047 bic ip, r1, #3 22048 ldr r1, [sp, #24] 22049 add r1, r1, ip 22050 str r1, [r0, #12] 22051.L3078: 22052 adds r6, r6, #1 22053.L3086: 22054 uxth r1, r6 22055 cmp r2, r1 22056 bhi .L3079 22057 cbnz r4, .L3080 22058.L3083: 22059 adds r5, r5, #1 22060 uxth r5, r5 22061 b .L3077 22062.L3080: 22063 ldr r10, .L3090+80 22064 mov r0, r7 22065 movs r6, #0 22066 movs r7, #36 22067 movs r2, #1 22068 mov r1, r4 22069 bl FlashReadPages 22070.L3081: 22071 uxth r3, r6 22072 cmp r4, r3 22073 bls .L3083 22074 ldr r3, [r8] 22075 mla r3, r7, r6, r3 22076 adds r6, r6, #1 22077 ldr r1, [r3, #12] 22078 ldr r2, [r3, #4] 22079 ldr r3, [r3, #8] 22080 ldr r0, [r3, #4] 22081 str r0, [sp, #16] 22082 mov r0, r10 22083 ldr r3, [r3] 22084 str r3, [sp, #12] 22085 ldr r3, [r1, #12] 22086 str r3, [sp, #8] 22087 ldr r3, [r1, #8] 22088 str r3, [sp, #4] 22089 ldr r3, [r1, #4] 22090 str r3, [sp] 22091 ldr r3, [r1] 22092 ubfx r1, r2, #10, #16 22093 bl printf 22094 b .L3081 22095.L3084: 22096 ldr r1, .L3090+20 22097 movs r6, #0 22098 ldr r3, .L3090+24 22099 mov r4, r6 22100 ldr r7, [r8] 22101 mov fp, #36 22102 ldr r1, [r1] 22103 ldrh r2, [r3] 22104 ldr r3, .L3090+28 22105 str r1, [sp, #24] 22106 ldr r1, .L3090+32 22107 ldr r3, [r3] 22108 ldrh r10, [r1] 22109 b .L3086 22110.L3087: 22111 ldr r10, .L3090+44 22112 mov r0, r4 22113 ldr r2, [r10] 22114 ldrh r2, [r2, r5] 22115 orr r3, r3, r2, lsl #10 22116 movs r2, #1 22117 mov r1, r2 22118 str r3, [r4, #4] 22119 bl FlashReadPages 22120 ldr r2, [r4, #8] 22121 ldr r1, [r10] 22122 ldr r3, [r4, #12] 22123 ldr r0, [r2, #4] 22124 ldrh r1, [r1, r5] 22125 str r0, [sp, #20] 22126 ldr r2, [r2] 22127 ldr r0, .L3090+36 22128 str r2, [sp, #16] 22129 ldr r2, [r3, #12] 22130 str r2, [sp, #12] 22131 ldr r2, [r3, #8] 22132 str r2, [sp, #8] 22133 ldr r2, [r3, #4] 22134 str r2, [sp, #4] 22135 ldr r3, [r3] 22136 str r3, [sp] 22137 ldm r4, {r2, r3} 22138 bl printf 22139.L3089: 22140 ldrh r2, [r8] 22141 sxth r3, r6 22142 adds r6, r6, #1 22143 cmp r3, r2 22144 blt .L3087 22145 adds r7, r7, #1 22146 b .L3085 22147.L3088: 22148 ldr r3, .L3090+40 22149 movs r2, #2 22150 ldr r1, .L3090+44 22151 ldr r0, .L3090+48 22152 ldr r3, [r3] 22153 ldr r1, [r1] 22154 bl rknand_print_hex 22155 ldr r4, .L3090+52 22156 movs r2, #4 22157 ldr r1, .L3090+56 22158 ldr r0, .L3090+60 22159 ldrh r3, [r4] 22160 ldr r1, [r1] 22161 bl rknand_print_hex 22162 ldr r1, .L3090+64 22163 movs r2, #4 22164 ldrh r3, [r4] 22165 ldr r0, .L3090+68 22166 ldr r1, [r1] 22167 add sp, sp, #40 22168 @ sp needed 22169 pop {r4, r5, r6, r7, r8, r10, fp, lr} 22170 b rknand_print_hex 22171.L3091: 22172 .align 2 22173.L3090: 22174 .word .LANCHOR40 22175 .word .LANCHOR41 22176 .word .LANCHOR202 22177 .word .LANCHOR128 22178 .word .LANCHOR47 22179 .word .LANCHOR106 22180 .word .LANCHOR38 22181 .word .LANCHOR105 22182 .word .LANCHOR59 22183 .word .LC48 22184 .word .LANCHOR65 22185 .word .LANCHOR129 22186 .word .LC80 22187 .word .LANCHOR67 22188 .word .LANCHOR131 22189 .word .LC81 22190 .word .LANCHOR195 22191 .word .LC82 22192 .word .LANCHOR180 22193 .word .LANCHOR54 22194 .word .LC79 22195 .size dump_map_info, .-dump_map_info 22196 .global FtlMallocOffset 22197 .global FtlMallocBuffer 22198 .global LastWritenPbaAddr 22199 .global gc_ink_free_return_value 22200 .global check_valid_page_count_table 22201 .global FtlUpdateVaildLpnCount 22202 .global g_ect_tbl_power_up_flush 22203 .global power_up_flag 22204 .global g_LowFormat 22205 .global gFtlInitStatus 22206 .global DeviceCapacity 22207 .global ToshibaRefValue 22208 .global Toshiba15RefValue 22209 .global ToshibaA19RefValue 22210 .global SamsungRefValue 22211 .global refValueDefault 22212 .global random_seed 22213 .global gSlcNandParaInfo 22214 .global gNandParaInfo 22215 .global g_page_map_check_enable 22216 .global g_power_lost_ecc_error_blk 22217 .global g_power_lost_recovery_flag 22218 .global c_mlc_erase_count_value 22219 .global g_recovery_ppa_tbl 22220 .global g_recovery_page_min_ver 22221 .global g_recovery_page_num 22222 .global g_cur_erase_blk 22223 .global g_gc_skip_write_count 22224 .global g_gc_head_data_block_count 22225 .global g_gc_head_data_block 22226 .global g_ftl_nand_free_count 22227 .global g_in_swl_replace 22228 .global g_in_gc_progress 22229 .global g_all_blk_used_slc_mode 22230 .global g_max_erase_count 22231 .global g_totle_sys_slc_erase_count 22232 .global g_totle_slc_erase_count 22233 .global g_min_erase_count 22234 .global g_totle_avg_erase_count 22235 .global g_totle_mlc_erase_count 22236 .global g_totle_l2p_write_count 22237 .global g_totle_cache_write_count 22238 .global g_tmp_data_superblock_id 22239 .global g_totle_read_page_count 22240 .global g_totle_discard_page_count 22241 .global g_totle_read_sector 22242 .global g_totle_write_sector 22243 .global g_totle_write_page_count 22244 .global g_totle_gc_page_count 22245 .global g_gc_blk_index 22246 .global g_gc_merge_free_blk_threshold 22247 .global g_gc_free_blk_threshold 22248 .global g_gc_refresh_block_temp_tbl 22249 .global g_free_slc_blk_num 22250 .global g_gc_refresh_block_temp_num 22251 .global g_gc_bad_block_temp_tbl 22252 .global g_gc_bad_block_gc_index 22253 .global g_gc_bad_block_temp_num 22254 .global g_gc_next_blk_3 22255 .global g_gc_next_blk_2 22256 .global g_gc_next_blk_1 22257 .global g_gc_next_blk 22258 .global g_gc_cur_blk_max_valid_pages 22259 .global g_gc_cur_blk_valid_pages 22260 .global g_gc_page_offset 22261 .global g_gc_blk_num 22262 .global p_gc_blk_tbl 22263 .global p_gc_page_info 22264 .global g_sys_ext_data 22265 .global g_sys_save_data 22266 .global gp_last_act_superblock 22267 .global g_gc_superblock 22268 .global g_gc_temp_superblock 22269 .global g_buffer_superblock 22270 .global g_active_superblock 22271 .global g_num_data_superblocks 22272 .global g_num_free_superblocks 22273 .global p_data_block_list_tail 22274 .global p_data_block_list_head 22275 .global p_free_data_block_list_head 22276 .global p_data_block_list_table 22277 .global g_l2p_last_update_region_id 22278 .global p_l2p_map_buf 22279 .global p_l2p_ram_map 22280 .global g_totle_vendor_block 22281 .global p_vendor_region_ppn_table 22282 .global p_vendor_block_ver_table 22283 .global p_vendor_block_valid_page_count 22284 .global p_vendor_block_table 22285 .global g_totle_map_block 22286 .global p_map_region_ppn_check_table 22287 .global p_map_region_ppn_table 22288 .global p_map_block_ver_table 22289 .global p_map_block_valid_page_count 22290 .global p_map_block_table 22291 .global p_blk_mode_table 22292 .global p_valid_page_count_check_table 22293 .global p_valid_page_count_table 22294 .global g_totle_swl_count 22295 .global p_swl_mul_table 22296 .global p_erase_count_table 22297 .global g_ect_tbl_info_size 22298 .global gp_ect_tbl_info 22299 .global g_gc_num_req 22300 .global c_gc_page_buf_num 22301 .global gp_gc_page_buf_info 22302 .global p_gc_data_buf 22303 .global p_gc_spare_buf 22304 .global p_io_spare_buf 22305 .global p_io_data_buf_1 22306 .global p_io_data_buf_0 22307 .global p_sys_spare_buf 22308 .global p_vendor_data_buf 22309 .global p_sys_data_buf_1 22310 .global p_sys_data_buf 22311 .global p_plane_order_table 22312 .global g_req_cache 22313 .global req_gc_dst 22314 .global req_gc 22315 .global req_erase 22316 .global req_prgm 22317 .global req_read 22318 .global req_sys 22319 .global gVendorBlkInfo 22320 .global gL2pMapInfo 22321 .global gSysFreeQueue 22322 .global gSysInfo 22323 .global gBbtInfo 22324 .global g_flash_read_only_en 22325 .global g_inkDie_check_enable 22326 .global g_SlcPartLbaEndSector 22327 .global g_MaxLbn 22328 .global g_VaildLpn 22329 .global g_MaxLpn 22330 .global g_MaxLbaSector 22331 .global g_GlobalDataVersion 22332 .global g_GlobalSysVersion 22333 .global ftl_gc_temp_power_lost_recovery_flag 22334 .global c_ftl_nand_max_data_blks 22335 .global c_ftl_nand_data_op_blks_per_plane 22336 .global c_ftl_nand_data_blks_per_plane 22337 .global c_ftl_nand_max_sys_blks 22338 .global c_ftl_nand_init_sys_blks_per_plane 22339 .global c_ftl_nand_sys_blks_per_plane 22340 .global c_ftl_vendor_part_size 22341 .global c_ftl_nand_max_vendor_blks 22342 .global c_ftl_nand_max_map_blks 22343 .global c_ftl_nand_map_blks_per_plane 22344 .global c_ftl_nand_vendor_region_num 22345 .global c_ftl_nand_l2pmap_ram_region_num 22346 .global c_ftl_nand_map_region_num 22347 .global c_ftl_nand_totle_phy_blks 22348 .global c_ftl_nand_reserved_blks 22349 .global c_ftl_nand_byte_pre_oob 22350 .global c_ftl_nand_byte_pre_page 22351 .global c_ftl_nand_sec_pre_page_shift 22352 .global c_ftl_nand_sec_pre_page 22353 .global c_ftl_nand_page_pre_super_blk 22354 .global c_ftl_nand_page_pre_slc_blk 22355 .global c_ftl_nand_page_pre_blk 22356 .global c_ftl_nand_bbm_buf_size 22357 .global c_ftl_nand_ext_blk_pre_plane 22358 .global c_ftl_nand_blk_pre_plane 22359 .global c_ftl_nand_planes_num 22360 .global c_ftl_nand_blks_per_die_shift 22361 .global c_ftl_nand_blks_per_die 22362 .global c_ftl_nand_planes_per_die 22363 .global c_ftl_nand_die_num 22364 .global c_ftl_nand_type 22365 .global gMasterTempBuf 22366 .global gMasterInfo 22367 .global gNandcDumpWriteEn 22368 .global gToggleModeClkDiv 22369 .global gBootDdrMode 22370 .global gNandcEccBits 22371 .global gpNandc1 22372 .global gpNandc 22373 .global g_nandc_version_data 22374 .global gNandcVer 22375 .global gNandChipMap 22376 .global gNandIDataBuf 22377 .global FlashDdrTunningReadCount 22378 .global FlashWaitBusyScheduleEn 22379 .global gNandPhyInfo 22380 .global gFlashProgCheckSpareBuffer 22381 .global gFlashProgCheckBuffer 22382 .global gFlashSpareBuffer 22383 .global gFlashPageBuffer1 22384 .global gFlashPageBuffer0 22385 .global gpFlashSaveInfo 22386 .global gReadRetryInfo 22387 .global gpNandParaInfo 22388 .global gNandOptPara 22389 .global g_slc2KBNand 22390 .global g_maxRetryCount 22391 .global g_maxRegNum 22392 .global g_retryMode 22393 .global gNandIDBResBlkNumSaveInFlash 22394 .global gNandIDBResBlkNum 22395 .global gNandFlashResEndPageAddr 22396 .global gNandFlashInfoBlockAddr 22397 .global gNandFlashIdbBlockAddr 22398 .global gNandFlashInfoBlockEcc 22399 .global gNandFlashIDBEccBits 22400 .global gNandFlashEccBits 22401 .global gNandRandomizer 22402 .global gBlockPageAlignSize 22403 .global gTotleBlock 22404 .global gNandMaxChip 22405 .global gNandMaxDie 22406 .global gFlashInterfaceMode 22407 .global gFlashSlcMode 22408 .global gFlashOnfiModeEn 22409 .global gFlashToggleModeEn 22410 .global gFlashSdrModeEn 22411 .global gMultiPageProgEn 22412 .global gMultiPageReadEn 22413 .global gpReadRetrial 22414 .global mlcPageToSlcPageTbl 22415 .global slcPageToMlcPageTbl 22416 .global DieAddrs 22417 .global gDieOp 22418 .global DieCsIndex 22419 .global IDByte 22420 .global read_retry_cur_offset 22421 .section .bss.DeviceCapacity,"aw",%nobits 22422 .align 2 22423 .set .LANCHOR61,. + 0 22424 .type DeviceCapacity, %object 22425 .size DeviceCapacity, 4 22426DeviceCapacity: 22427 .space 4 22428 .section .bss.DieAddrs,"aw",%nobits 22429 .align 2 22430 .set .LANCHOR17,. + 0 22431 .type DieAddrs, %object 22432 .size DieAddrs, 32 22433DieAddrs: 22434 .space 32 22435 .section .bss.DieCsIndex,"aw",%nobits 22436 .align 2 22437 .set .LANCHOR26,. + 0 22438 .type DieCsIndex, %object 22439 .size DieCsIndex, 8 22440DieCsIndex: 22441 .space 8 22442 .section .bss.FlashDdrTunningReadCount,"aw",%nobits 22443 .align 2 22444 .set .LANCHOR144,. + 0 22445 .type FlashDdrTunningReadCount, %object 22446 .size FlashDdrTunningReadCount, 4 22447FlashDdrTunningReadCount: 22448 .space 4 22449 .section .bss.FlashWaitBusyScheduleEn,"aw",%nobits 22450 .align 2 22451 .type FlashWaitBusyScheduleEn, %object 22452 .size FlashWaitBusyScheduleEn, 4 22453FlashWaitBusyScheduleEn: 22454 .space 4 22455 .section .bss.FtlMallocBuffer,"aw",%nobits 22456 .align 6 22457 .type FtlMallocBuffer, %object 22458 .size FtlMallocBuffer, 1310720 22459FtlMallocBuffer: 22460 .space 1310720 22461 .section .bss.FtlUpdateVaildLpnCount,"aw",%nobits 22462 .align 1 22463 .set .LANCHOR100,. + 0 22464 .type FtlUpdateVaildLpnCount, %object 22465 .size FtlUpdateVaildLpnCount, 2 22466FtlUpdateVaildLpnCount: 22467 .space 2 22468 .section .bss.IDByte,"aw",%nobits 22469 .align 2 22470 .set .LANCHOR22,. + 0 22471 .type IDByte, %object 22472 .size IDByte, 32 22473IDByte: 22474 .space 32 22475 .section .bss.c_ftl_nand_bbm_buf_size,"aw",%nobits 22476 .align 1 22477 .set .LANCHOR123,. + 0 22478 .type c_ftl_nand_bbm_buf_size, %object 22479 .size c_ftl_nand_bbm_buf_size, 2 22480c_ftl_nand_bbm_buf_size: 22481 .space 2 22482 .section .bss.c_ftl_nand_blk_pre_plane,"aw",%nobits 22483 .align 1 22484 .set .LANCHOR41,. + 0 22485 .type c_ftl_nand_blk_pre_plane, %object 22486 .size c_ftl_nand_blk_pre_plane, 2 22487c_ftl_nand_blk_pre_plane: 22488 .space 2 22489 .section .bss.c_ftl_nand_blks_per_die,"aw",%nobits 22490 .align 1 22491 .set .LANCHOR51,. + 0 22492 .type c_ftl_nand_blks_per_die, %object 22493 .size c_ftl_nand_blks_per_die, 2 22494c_ftl_nand_blks_per_die: 22495 .space 2 22496 .section .bss.c_ftl_nand_blks_per_die_shift,"aw",%nobits 22497 .align 1 22498 .set .LANCHOR52,. + 0 22499 .type c_ftl_nand_blks_per_die_shift, %object 22500 .size c_ftl_nand_blks_per_die_shift, 2 22501c_ftl_nand_blks_per_die_shift: 22502 .space 2 22503 .section .bss.c_ftl_nand_byte_pre_oob,"aw",%nobits 22504 .align 1 22505 .set .LANCHOR59,. + 0 22506 .type c_ftl_nand_byte_pre_oob, %object 22507 .size c_ftl_nand_byte_pre_oob, 2 22508c_ftl_nand_byte_pre_oob: 22509 .space 2 22510 .section .bss.c_ftl_nand_byte_pre_page,"aw",%nobits 22511 .align 1 22512 .set .LANCHOR58,. + 0 22513 .type c_ftl_nand_byte_pre_page, %object 22514 .size c_ftl_nand_byte_pre_page, 2 22515c_ftl_nand_byte_pre_page: 22516 .space 2 22517 .section .bss.c_ftl_nand_data_blks_per_plane,"aw",%nobits 22518 .align 1 22519 .set .LANCHOR40,. + 0 22520 .type c_ftl_nand_data_blks_per_plane, %object 22521 .size c_ftl_nand_data_blks_per_plane, 2 22522c_ftl_nand_data_blks_per_plane: 22523 .space 2 22524 .section .bss.c_ftl_nand_data_op_blks_per_plane,"aw",%nobits 22525 .align 1 22526 .set .LANCHOR223,. + 0 22527 .type c_ftl_nand_data_op_blks_per_plane, %object 22528 .size c_ftl_nand_data_op_blks_per_plane, 2 22529c_ftl_nand_data_op_blks_per_plane: 22530 .space 2 22531 .section .bss.c_ftl_nand_die_num,"aw",%nobits 22532 .align 1 22533 .set .LANCHOR45,. + 0 22534 .type c_ftl_nand_die_num, %object 22535 .size c_ftl_nand_die_num, 2 22536c_ftl_nand_die_num: 22537 .space 2 22538 .section .bss.c_ftl_nand_ext_blk_pre_plane,"aw",%nobits 22539 .align 1 22540 .set .LANCHOR49,. + 0 22541 .type c_ftl_nand_ext_blk_pre_plane, %object 22542 .size c_ftl_nand_ext_blk_pre_plane, 2 22543c_ftl_nand_ext_blk_pre_plane: 22544 .space 2 22545 .section .bss.c_ftl_nand_init_sys_blks_per_plane,"aw",%nobits 22546 .align 2 22547 .set .LANCHOR66,. + 0 22548 .type c_ftl_nand_init_sys_blks_per_plane, %object 22549 .size c_ftl_nand_init_sys_blks_per_plane, 4 22550c_ftl_nand_init_sys_blks_per_plane: 22551 .space 4 22552 .section .bss.c_ftl_nand_l2pmap_ram_region_num,"aw",%nobits 22553 .align 1 22554 .set .LANCHOR68,. + 0 22555 .type c_ftl_nand_l2pmap_ram_region_num, %object 22556 .size c_ftl_nand_l2pmap_ram_region_num, 2 22557c_ftl_nand_l2pmap_ram_region_num: 22558 .space 2 22559 .section .bss.c_ftl_nand_map_blks_per_plane,"aw",%nobits 22560 .align 1 22561 .set .LANCHOR64,. + 0 22562 .type c_ftl_nand_map_blks_per_plane, %object 22563 .size c_ftl_nand_map_blks_per_plane, 2 22564c_ftl_nand_map_blks_per_plane: 22565 .space 2 22566 .section .bss.c_ftl_nand_map_region_num,"aw",%nobits 22567 .align 1 22568 .set .LANCHOR67,. + 0 22569 .type c_ftl_nand_map_region_num, %object 22570 .size c_ftl_nand_map_region_num, 2 22571c_ftl_nand_map_region_num: 22572 .space 2 22573 .section .bss.c_ftl_nand_max_data_blks,"aw",%nobits 22574 .align 2 22575 .set .LANCHOR42,. + 0 22576 .type c_ftl_nand_max_data_blks, %object 22577 .size c_ftl_nand_max_data_blks, 4 22578c_ftl_nand_max_data_blks: 22579 .space 4 22580 .section .bss.c_ftl_nand_max_map_blks,"aw",%nobits 22581 .align 2 22582 .set .LANCHOR65,. + 0 22583 .type c_ftl_nand_max_map_blks, %object 22584 .size c_ftl_nand_max_map_blks, 4 22585c_ftl_nand_max_map_blks: 22586 .space 4 22587 .section .bss.c_ftl_nand_max_sys_blks,"aw",%nobits 22588 .align 2 22589 .set .LANCHOR39,. + 0 22590 .type c_ftl_nand_max_sys_blks, %object 22591 .size c_ftl_nand_max_sys_blks, 4 22592c_ftl_nand_max_sys_blks: 22593 .space 4 22594 .section .bss.c_ftl_nand_max_vendor_blks,"aw",%nobits 22595 .align 1 22596 .set .LANCHOR62,. + 0 22597 .type c_ftl_nand_max_vendor_blks, %object 22598 .size c_ftl_nand_max_vendor_blks, 2 22599c_ftl_nand_max_vendor_blks: 22600 .space 2 22601 .section .bss.c_ftl_nand_page_pre_blk,"aw",%nobits 22602 .align 1 22603 .set .LANCHOR53,. + 0 22604 .type c_ftl_nand_page_pre_blk, %object 22605 .size c_ftl_nand_page_pre_blk, 2 22606c_ftl_nand_page_pre_blk: 22607 .space 2 22608 .section .bss.c_ftl_nand_page_pre_slc_blk,"aw",%nobits 22609 .align 1 22610 .set .LANCHOR54,. + 0 22611 .type c_ftl_nand_page_pre_slc_blk, %object 22612 .size c_ftl_nand_page_pre_slc_blk, 2 22613c_ftl_nand_page_pre_slc_blk: 22614 .space 2 22615 .section .bss.c_ftl_nand_page_pre_super_blk,"aw",%nobits 22616 .align 1 22617 .set .LANCHOR55,. + 0 22618 .type c_ftl_nand_page_pre_super_blk, %object 22619 .size c_ftl_nand_page_pre_super_blk, 2 22620c_ftl_nand_page_pre_super_blk: 22621 .space 2 22622 .section .bss.c_ftl_nand_planes_num,"aw",%nobits 22623 .align 1 22624 .set .LANCHOR38,. + 0 22625 .type c_ftl_nand_planes_num, %object 22626 .size c_ftl_nand_planes_num, 2 22627c_ftl_nand_planes_num: 22628 .space 2 22629 .section .bss.c_ftl_nand_planes_per_die,"aw",%nobits 22630 .align 1 22631 .set .LANCHOR46,. + 0 22632 .type c_ftl_nand_planes_per_die, %object 22633 .size c_ftl_nand_planes_per_die, 2 22634c_ftl_nand_planes_per_die: 22635 .space 2 22636 .section .bss.c_ftl_nand_reserved_blks,"aw",%nobits 22637 .align 1 22638 .set .LANCHOR60,. + 0 22639 .type c_ftl_nand_reserved_blks, %object 22640 .size c_ftl_nand_reserved_blks, 2 22641c_ftl_nand_reserved_blks: 22642 .space 2 22643 .section .bss.c_ftl_nand_sec_pre_page,"aw",%nobits 22644 .align 1 22645 .set .LANCHOR56,. + 0 22646 .type c_ftl_nand_sec_pre_page, %object 22647 .size c_ftl_nand_sec_pre_page, 2 22648c_ftl_nand_sec_pre_page: 22649 .space 2 22650 .section .bss.c_ftl_nand_sec_pre_page_shift,"aw",%nobits 22651 .align 1 22652 .set .LANCHOR57,. + 0 22653 .type c_ftl_nand_sec_pre_page_shift, %object 22654 .size c_ftl_nand_sec_pre_page_shift, 2 22655c_ftl_nand_sec_pre_page_shift: 22656 .space 2 22657 .section .bss.c_ftl_nand_sys_blks_per_plane,"aw",%nobits 22658 .align 2 22659 .set .LANCHOR37,. + 0 22660 .type c_ftl_nand_sys_blks_per_plane, %object 22661 .size c_ftl_nand_sys_blks_per_plane, 4 22662c_ftl_nand_sys_blks_per_plane: 22663 .space 4 22664 .section .bss.c_ftl_nand_totle_phy_blks,"aw",%nobits 22665 .align 2 22666 .set .LANCHOR43,. + 0 22667 .type c_ftl_nand_totle_phy_blks, %object 22668 .size c_ftl_nand_totle_phy_blks, 4 22669c_ftl_nand_totle_phy_blks: 22670 .space 4 22671 .section .bss.c_ftl_nand_type,"aw",%nobits 22672 .align 1 22673 .set .LANCHOR44,. + 0 22674 .type c_ftl_nand_type, %object 22675 .size c_ftl_nand_type, 2 22676c_ftl_nand_type: 22677 .space 2 22678 .section .bss.c_ftl_nand_vendor_region_num,"aw",%nobits 22679 .align 1 22680 .set .LANCHOR63,. + 0 22681 .type c_ftl_nand_vendor_region_num, %object 22682 .size c_ftl_nand_vendor_region_num, 2 22683c_ftl_nand_vendor_region_num: 22684 .space 2 22685 .section .bss.c_ftl_vendor_part_size,"aw",%nobits 22686 .align 1 22687 .set .LANCHOR50,. + 0 22688 .type c_ftl_vendor_part_size, %object 22689 .size c_ftl_vendor_part_size, 2 22690c_ftl_vendor_part_size: 22691 .space 2 22692 .section .bss.c_gc_page_buf_num,"aw",%nobits 22693 .align 2 22694 .set .LANCHOR108,. + 0 22695 .type c_gc_page_buf_num, %object 22696 .size c_gc_page_buf_num, 4 22697c_gc_page_buf_num: 22698 .space 4 22699 .section .bss.c_mlc_erase_count_value,"aw",%nobits 22700 .align 1 22701 .set .LANCHOR48,. + 0 22702 .type c_mlc_erase_count_value, %object 22703 .size c_mlc_erase_count_value, 2 22704c_mlc_erase_count_value: 22705 .space 2 22706 .section .bss.check_valid_page_count_table,"aw",%nobits 22707 .align 1 22708 .type check_valid_page_count_table, %object 22709 .size check_valid_page_count_table, 8192 22710check_valid_page_count_table: 22711 .space 8192 22712 .section .bss.ftl_gc_temp_power_lost_recovery_flag,"aw",%nobits 22713 .align 2 22714 .set .LANCHOR135,. + 0 22715 .type ftl_gc_temp_power_lost_recovery_flag, %object 22716 .size ftl_gc_temp_power_lost_recovery_flag, 4 22717ftl_gc_temp_power_lost_recovery_flag: 22718 .space 4 22719 .section .bss.gBbtInfo,"aw",%nobits 22720 .align 2 22721 .set .LANCHOR75,. + 0 22722 .type gBbtInfo, %object 22723 .size gBbtInfo, 60 22724gBbtInfo: 22725 .space 60 22726 .section .bss.gBlockPageAlignSize,"aw",%nobits 22727 .align 2 22728 .set .LANCHOR3,. + 0 22729 .type gBlockPageAlignSize, %object 22730 .size gBlockPageAlignSize, 4 22731gBlockPageAlignSize: 22732 .space 4 22733 .section .bss.gBootDdrMode,"aw",%nobits 22734 .align 2 22735 .set .LANCHOR155,. + 0 22736 .type gBootDdrMode, %object 22737 .size gBootDdrMode, 4 22738gBootDdrMode: 22739 .space 4 22740 .section .bss.gDieOp,"aw",%nobits 22741 .align 2 22742 .set .LANCHOR23,. + 0 22743 .type gDieOp, %object 22744 .size gDieOp, 128 22745gDieOp: 22746 .space 128 22747 .section .bss.gFlashInterfaceMode,"aw",%nobits 22748 .set .LANCHOR24,. + 0 22749 .type gFlashInterfaceMode, %object 22750 .size gFlashInterfaceMode, 1 22751gFlashInterfaceMode: 22752 .space 1 22753 .section .bss.gFlashOnfiModeEn,"aw",%nobits 22754 .type gFlashOnfiModeEn, %object 22755 .size gFlashOnfiModeEn, 1 22756gFlashOnfiModeEn: 22757 .space 1 22758 .section .bss.gFlashPageBuffer0,"aw",%nobits 22759 .align 2 22760 .set .LANCHOR147,. + 0 22761 .type gFlashPageBuffer0, %object 22762 .size gFlashPageBuffer0, 4 22763gFlashPageBuffer0: 22764 .space 4 22765 .section .bss.gFlashPageBuffer1,"aw",%nobits 22766 .align 2 22767 .set .LANCHOR153,. + 0 22768 .type gFlashPageBuffer1, %object 22769 .size gFlashPageBuffer1, 4 22770gFlashPageBuffer1: 22771 .space 4 22772 .section .bss.gFlashProgCheckBuffer,"aw",%nobits 22773 .align 2 22774 .set .LANCHOR198,. + 0 22775 .type gFlashProgCheckBuffer, %object 22776 .size gFlashProgCheckBuffer, 4 22777gFlashProgCheckBuffer: 22778 .space 4 22779 .section .bss.gFlashProgCheckSpareBuffer,"aw",%nobits 22780 .align 2 22781 .set .LANCHOR199,. + 0 22782 .type gFlashProgCheckSpareBuffer, %object 22783 .size gFlashProgCheckSpareBuffer, 4 22784gFlashProgCheckSpareBuffer: 22785 .space 4 22786 .section .bss.gFlashSdrModeEn,"aw",%nobits 22787 .type gFlashSdrModeEn, %object 22788 .size gFlashSdrModeEn, 1 22789gFlashSdrModeEn: 22790 .space 1 22791 .section .bss.gFlashSlcMode,"aw",%nobits 22792 .set .LANCHOR8,. + 0 22793 .type gFlashSlcMode, %object 22794 .size gFlashSlcMode, 1 22795gFlashSlcMode: 22796 .space 1 22797 .section .bss.gFlashSpareBuffer,"aw",%nobits 22798 .align 2 22799 .set .LANCHOR197,. + 0 22800 .type gFlashSpareBuffer, %object 22801 .size gFlashSpareBuffer, 4 22802gFlashSpareBuffer: 22803 .space 4 22804 .section .bss.gFlashToggleModeEn,"aw",%nobits 22805 .set .LANCHOR30,. + 0 22806 .type gFlashToggleModeEn, %object 22807 .size gFlashToggleModeEn, 1 22808gFlashToggleModeEn: 22809 .space 1 22810 .section .bss.gL2pMapInfo,"aw",%nobits 22811 .align 2 22812 .set .LANCHOR127,. + 0 22813 .type gL2pMapInfo, %object 22814 .size gL2pMapInfo, 44 22815gL2pMapInfo: 22816 .space 44 22817 .section .bss.gMasterInfo,"aw",%nobits 22818 .align 2 22819 .set .LANCHOR35,. + 0 22820 .type gMasterInfo, %object 22821 .size gMasterInfo, 32 22822gMasterInfo: 22823 .space 32 22824 .section .bss.gMasterTempBuf,"aw",%nobits 22825 .align 2 22826 .set .LANCHOR156,. + 0 22827 .type gMasterTempBuf, %object 22828 .size gMasterTempBuf, 4 22829gMasterTempBuf: 22830 .space 4 22831 .section .bss.gMultiPageProgEn,"aw",%nobits 22832 .set .LANCHOR27,. + 0 22833 .type gMultiPageProgEn, %object 22834 .size gMultiPageProgEn, 1 22835gMultiPageProgEn: 22836 .space 1 22837 .section .bss.gMultiPageReadEn,"aw",%nobits 22838 .set .LANCHOR201,. + 0 22839 .type gMultiPageReadEn, %object 22840 .size gMultiPageReadEn, 1 22841gMultiPageReadEn: 22842 .space 1 22843 .section .bss.gNandChipMap,"aw",%nobits 22844 .align 2 22845 .set .LANCHOR6,. + 0 22846 .type gNandChipMap, %object 22847 .size gNandChipMap, 32 22848gNandChipMap: 22849 .space 32 22850 .section .bss.gNandFlashEccBits,"aw",%nobits 22851 .set .LANCHOR33,. + 0 22852 .type gNandFlashEccBits, %object 22853 .size gNandFlashEccBits, 1 22854gNandFlashEccBits: 22855 .space 1 22856 .section .bss.gNandFlashIDBEccBits,"aw",%nobits 22857 .set .LANCHOR152,. + 0 22858 .type gNandFlashIDBEccBits, %object 22859 .size gNandFlashIDBEccBits, 1 22860gNandFlashIDBEccBits: 22861 .space 1 22862 .section .bss.gNandFlashIdbBlockAddr,"aw",%nobits 22863 .align 2 22864 .set .LANCHOR149,. + 0 22865 .type gNandFlashIdbBlockAddr, %object 22866 .size gNandFlashIdbBlockAddr, 4 22867gNandFlashIdbBlockAddr: 22868 .space 4 22869 .section .bss.gNandFlashInfoBlockAddr,"aw",%nobits 22870 .align 2 22871 .set .LANCHOR148,. + 0 22872 .type gNandFlashInfoBlockAddr, %object 22873 .size gNandFlashInfoBlockAddr, 4 22874gNandFlashInfoBlockAddr: 22875 .space 4 22876 .section .bss.gNandFlashInfoBlockEcc,"aw",%nobits 22877 .type gNandFlashInfoBlockEcc, %object 22878 .size gNandFlashInfoBlockEcc, 1 22879gNandFlashInfoBlockEcc: 22880 .space 1 22881 .section .bss.gNandFlashResEndPageAddr,"aw",%nobits 22882 .align 2 22883 .type gNandFlashResEndPageAddr, %object 22884 .size gNandFlashResEndPageAddr, 4 22885gNandFlashResEndPageAddr: 22886 .space 4 22887 .section .bss.gNandIDBResBlkNum,"aw",%nobits 22888 .set .LANCHOR2,. + 0 22889 .type gNandIDBResBlkNum, %object 22890 .size gNandIDBResBlkNum, 1 22891gNandIDBResBlkNum: 22892 .space 1 22893 .section .bss.gNandIDBResBlkNumSaveInFlash,"aw",%nobits 22894 .set .LANCHOR150,. + 0 22895 .type gNandIDBResBlkNumSaveInFlash, %object 22896 .size gNandIDBResBlkNumSaveInFlash, 1 22897gNandIDBResBlkNumSaveInFlash: 22898 .space 1 22899 .section .bss.gNandIDataBuf,"aw",%nobits 22900 .align 2 22901 .set .LANCHOR141,. + 0 22902 .type gNandIDataBuf, %object 22903 .size gNandIDataBuf, 2048 22904gNandIDataBuf: 22905 .space 2048 22906 .section .bss.gNandMaxChip,"aw",%nobits 22907 .set .LANCHOR121,. + 0 22908 .type gNandMaxChip, %object 22909 .size gNandMaxChip, 1 22910gNandMaxChip: 22911 .space 1 22912 .section .bss.gNandMaxDie,"aw",%nobits 22913 .set .LANCHOR25,. + 0 22914 .type gNandMaxDie, %object 22915 .size gNandMaxDie, 1 22916gNandMaxDie: 22917 .space 1 22918 .section .bss.gNandOptPara,"aw",%nobits 22919 .set .LANCHOR7,. + 0 22920 .type gNandOptPara, %object 22921 .size gNandOptPara, 32 22922gNandOptPara: 22923 .space 32 22924 .section .bss.gNandPhyInfo,"aw",%nobits 22925 .align 2 22926 .set .LANCHOR15,. + 0 22927 .type gNandPhyInfo, %object 22928 .size gNandPhyInfo, 28 22929gNandPhyInfo: 22930 .space 28 22931 .section .bss.gNandRandomizer,"aw",%nobits 22932 .set .LANCHOR5,. + 0 22933 .type gNandRandomizer, %object 22934 .size gNandRandomizer, 1 22935gNandRandomizer: 22936 .space 1 22937 .section .bss.gNandcDumpWriteEn,"aw",%nobits 22938 .align 2 22939 .set .LANCHOR36,. + 0 22940 .type gNandcDumpWriteEn, %object 22941 .size gNandcDumpWriteEn, 4 22942gNandcDumpWriteEn: 22943 .space 4 22944 .section .bss.gNandcEccBits,"aw",%nobits 22945 .align 2 22946 .set .LANCHOR32,. + 0 22947 .type gNandcEccBits, %object 22948 .size gNandcEccBits, 4 22949gNandcEccBits: 22950 .space 4 22951 .section .bss.gNandcVer,"aw",%nobits 22952 .align 2 22953 .set .LANCHOR34,. + 0 22954 .type gNandcVer, %object 22955 .size gNandcVer, 4 22956gNandcVer: 22957 .space 4 22958 .section .bss.gReadRetryInfo,"aw",%nobits 22959 .set .LANCHOR20,. + 0 22960 .type gReadRetryInfo, %object 22961 .size gReadRetryInfo, 852 22962gReadRetryInfo: 22963 .space 852 22964 .section .bss.gSysFreeQueue,"aw",%nobits 22965 .align 1 22966 .set .LANCHOR76,. + 0 22967 .type gSysFreeQueue, %object 22968 .size gSysFreeQueue, 2056 22969gSysFreeQueue: 22970 .space 2056 22971 .section .bss.gSysInfo,"aw",%nobits 22972 .align 2 22973 .set .LANCHOR209,. + 0 22974 .type gSysInfo, %object 22975 .size gSysInfo, 12 22976gSysInfo: 22977 .space 12 22978 .section .bss.gToggleModeClkDiv,"aw",%nobits 22979 .align 2 22980 .type gToggleModeClkDiv, %object 22981 .size gToggleModeClkDiv, 4 22982gToggleModeClkDiv: 22983 .space 4 22984 .section .bss.gTotleBlock,"aw",%nobits 22985 .align 1 22986 .set .LANCHOR122,. + 0 22987 .type gTotleBlock, %object 22988 .size gTotleBlock, 2 22989gTotleBlock: 22990 .space 2 22991 .section .bss.gVendorBlkInfo,"aw",%nobits 22992 .align 2 22993 .set .LANCHOR215,. + 0 22994 .type gVendorBlkInfo, %object 22995 .size gVendorBlkInfo, 44 22996gVendorBlkInfo: 22997 .space 44 22998 .section .bss.g_GlobalDataVersion,"aw",%nobits 22999 .align 2 23000 .set .LANCHOR160,. + 0 23001 .type g_GlobalDataVersion, %object 23002 .size g_GlobalDataVersion, 4 23003g_GlobalDataVersion: 23004 .space 4 23005 .section .bss.g_GlobalSysVersion,"aw",%nobits 23006 .align 2 23007 .set .LANCHOR159,. + 0 23008 .type g_GlobalSysVersion, %object 23009 .size g_GlobalSysVersion, 4 23010g_GlobalSysVersion: 23011 .space 4 23012 .section .bss.g_LowFormat,"aw",%nobits 23013 .align 2 23014 .set .LANCHOR244,. + 0 23015 .type g_LowFormat, %object 23016 .size g_LowFormat, 4 23017g_LowFormat: 23018 .space 4 23019 .section .bss.g_MaxLbaSector,"aw",%nobits 23020 .align 2 23021 .set .LANCHOR69,. + 0 23022 .type g_MaxLbaSector, %object 23023 .size g_MaxLbaSector, 4 23024g_MaxLbaSector: 23025 .space 4 23026 .section .bss.g_MaxLbn,"aw",%nobits 23027 .align 2 23028 .set .LANCHOR222,. + 0 23029 .type g_MaxLbn, %object 23030 .size g_MaxLbn, 4 23031g_MaxLbn: 23032 .space 4 23033 .section .bss.g_MaxLpn,"aw",%nobits 23034 .align 2 23035 .set .LANCHOR73,. + 0 23036 .type g_MaxLpn, %object 23037 .size g_MaxLpn, 4 23038g_MaxLpn: 23039 .space 4 23040 .section .bss.g_SlcPartLbaEndSector,"aw",%nobits 23041 .align 2 23042 .set .LANCHOR157,. + 0 23043 .type g_SlcPartLbaEndSector, %object 23044 .size g_SlcPartLbaEndSector, 4 23045g_SlcPartLbaEndSector: 23046 .space 4 23047 .section .bss.g_VaildLpn,"aw",%nobits 23048 .align 2 23049 .set .LANCHOR101,. + 0 23050 .type g_VaildLpn, %object 23051 .size g_VaildLpn, 4 23052g_VaildLpn: 23053 .space 4 23054 .section .bss.g_active_superblock,"aw",%nobits 23055 .align 2 23056 .set .LANCHOR92,. + 0 23057 .type g_active_superblock, %object 23058 .size g_active_superblock, 48 23059g_active_superblock: 23060 .space 48 23061 .section .bss.g_all_blk_used_slc_mode,"aw",%nobits 23062 .align 2 23063 .set .LANCHOR158,. + 0 23064 .type g_all_blk_used_slc_mode, %object 23065 .size g_all_blk_used_slc_mode, 4 23066g_all_blk_used_slc_mode: 23067 .space 4 23068 .section .bss.g_buffer_superblock,"aw",%nobits 23069 .align 2 23070 .set .LANCHOR93,. + 0 23071 .type g_buffer_superblock, %object 23072 .size g_buffer_superblock, 48 23073g_buffer_superblock: 23074 .space 48 23075 .section .bss.g_cur_erase_blk,"aw",%nobits 23076 .align 2 23077 .set .LANCHOR74,. + 0 23078 .type g_cur_erase_blk, %object 23079 .size g_cur_erase_blk, 4 23080g_cur_erase_blk: 23081 .space 4 23082 .section .bss.g_ect_tbl_info_size,"aw",%nobits 23083 .align 1 23084 .set .LANCHOR190,. + 0 23085 .type g_ect_tbl_info_size, %object 23086 .size g_ect_tbl_info_size, 2 23087g_ect_tbl_info_size: 23088 .space 2 23089 .section .bss.g_ect_tbl_power_up_flush,"aw",%nobits 23090 .align 1 23091 .set .LANCHOR218,. + 0 23092 .type g_ect_tbl_power_up_flush, %object 23093 .size g_ect_tbl_power_up_flush, 2 23094g_ect_tbl_power_up_flush: 23095 .space 2 23096 .section .bss.g_flash_read_only_en,"aw",%nobits 23097 .align 2 23098 .set .LANCHOR77,. + 0 23099 .type g_flash_read_only_en, %object 23100 .size g_flash_read_only_en, 4 23101g_flash_read_only_en: 23102 .space 4 23103 .section .bss.g_free_slc_blk_num,"aw",%nobits 23104 .align 1 23105 .set .LANCHOR139,. + 0 23106 .type g_free_slc_blk_num, %object 23107 .size g_free_slc_blk_num, 2 23108g_free_slc_blk_num: 23109 .space 2 23110 .section .bss.g_ftl_nand_free_count,"aw",%nobits 23111 .align 2 23112 .set .LANCHOR246,. + 0 23113 .type g_ftl_nand_free_count, %object 23114 .size g_ftl_nand_free_count, 4 23115g_ftl_nand_free_count: 23116 .space 4 23117 .section .bss.g_gc_bad_block_gc_index,"aw",%nobits 23118 .align 1 23119 .set .LANCHOR119,. + 0 23120 .type g_gc_bad_block_gc_index, %object 23121 .size g_gc_bad_block_gc_index, 2 23122g_gc_bad_block_gc_index: 23123 .space 2 23124 .section .bss.g_gc_bad_block_temp_num,"aw",%nobits 23125 .align 1 23126 .set .LANCHOR117,. + 0 23127 .type g_gc_bad_block_temp_num, %object 23128 .size g_gc_bad_block_temp_num, 2 23129g_gc_bad_block_temp_num: 23130 .space 2 23131 .section .bss.g_gc_bad_block_temp_tbl,"aw",%nobits 23132 .align 1 23133 .set .LANCHOR118,. + 0 23134 .type g_gc_bad_block_temp_tbl, %object 23135 .size g_gc_bad_block_temp_tbl, 34 23136g_gc_bad_block_temp_tbl: 23137 .space 34 23138 .section .bss.g_gc_blk_index,"aw",%nobits 23139 .align 1 23140 .set .LANCHOR178,. + 0 23141 .type g_gc_blk_index, %object 23142 .size g_gc_blk_index, 2 23143g_gc_blk_index: 23144 .space 2 23145 .section .bss.g_gc_blk_num,"aw",%nobits 23146 .align 1 23147 .set .LANCHOR110,. + 0 23148 .type g_gc_blk_num, %object 23149 .size g_gc_blk_num, 2 23150g_gc_blk_num: 23151 .space 2 23152 .section .bss.g_gc_cur_blk_max_valid_pages,"aw",%nobits 23153 .align 1 23154 .set .LANCHOR242,. + 0 23155 .type g_gc_cur_blk_max_valid_pages, %object 23156 .size g_gc_cur_blk_max_valid_pages, 2 23157g_gc_cur_blk_max_valid_pages: 23158 .space 2 23159 .section .bss.g_gc_cur_blk_valid_pages,"aw",%nobits 23160 .align 1 23161 .set .LANCHOR241,. + 0 23162 .type g_gc_cur_blk_valid_pages, %object 23163 .size g_gc_cur_blk_valid_pages, 2 23164g_gc_cur_blk_valid_pages: 23165 .space 2 23166 .section .bss.g_gc_free_blk_threshold,"aw",%nobits 23167 .align 1 23168 .set .LANCHOR176,. + 0 23169 .type g_gc_free_blk_threshold, %object 23170 .size g_gc_free_blk_threshold, 2 23171g_gc_free_blk_threshold: 23172 .space 2 23173 .section .bss.g_gc_head_data_block,"aw",%nobits 23174 .align 2 23175 .set .LANCHOR173,. + 0 23176 .type g_gc_head_data_block, %object 23177 .size g_gc_head_data_block, 4 23178g_gc_head_data_block: 23179 .space 4 23180 .section .bss.g_gc_head_data_block_count,"aw",%nobits 23181 .align 2 23182 .set .LANCHOR174,. + 0 23183 .type g_gc_head_data_block_count, %object 23184 .size g_gc_head_data_block_count, 4 23185g_gc_head_data_block_count: 23186 .space 4 23187 .section .bss.g_gc_merge_free_blk_threshold,"aw",%nobits 23188 .align 1 23189 .set .LANCHOR177,. + 0 23190 .type g_gc_merge_free_blk_threshold, %object 23191 .size g_gc_merge_free_blk_threshold, 2 23192g_gc_merge_free_blk_threshold: 23193 .space 2 23194 .section .bss.g_gc_next_blk,"aw",%nobits 23195 .align 1 23196 .set .LANCHOR113,. + 0 23197 .type g_gc_next_blk, %object 23198 .size g_gc_next_blk, 2 23199g_gc_next_blk: 23200 .space 2 23201 .section .bss.g_gc_next_blk_1,"aw",%nobits 23202 .align 1 23203 .set .LANCHOR114,. + 0 23204 .type g_gc_next_blk_1, %object 23205 .size g_gc_next_blk_1, 2 23206g_gc_next_blk_1: 23207 .space 2 23208 .section .bss.g_gc_next_blk_2,"aw",%nobits 23209 .align 1 23210 .set .LANCHOR115,. + 0 23211 .type g_gc_next_blk_2, %object 23212 .size g_gc_next_blk_2, 2 23213g_gc_next_blk_2: 23214 .space 2 23215 .section .bss.g_gc_next_blk_3,"aw",%nobits 23216 .align 1 23217 .set .LANCHOR116,. + 0 23218 .type g_gc_next_blk_3, %object 23219 .size g_gc_next_blk_3, 2 23220g_gc_next_blk_3: 23221 .space 2 23222 .section .bss.g_gc_num_req,"aw",%nobits 23223 .align 2 23224 .set .LANCHOR103,. + 0 23225 .type g_gc_num_req, %object 23226 .size g_gc_num_req, 4 23227g_gc_num_req: 23228 .space 4 23229 .section .bss.g_gc_page_offset,"aw",%nobits 23230 .align 1 23231 .set .LANCHOR111,. + 0 23232 .type g_gc_page_offset, %object 23233 .size g_gc_page_offset, 2 23234g_gc_page_offset: 23235 .space 2 23236 .section .bss.g_gc_refresh_block_temp_num,"aw",%nobits 23237 .align 1 23238 .set .LANCHOR179,. + 0 23239 .type g_gc_refresh_block_temp_num, %object 23240 .size g_gc_refresh_block_temp_num, 2 23241g_gc_refresh_block_temp_num: 23242 .space 2 23243 .section .bss.g_gc_refresh_block_temp_tbl,"aw",%nobits 23244 .align 1 23245 .type g_gc_refresh_block_temp_tbl, %object 23246 .size g_gc_refresh_block_temp_tbl, 34 23247g_gc_refresh_block_temp_tbl: 23248 .space 34 23249 .section .bss.g_gc_skip_write_count,"aw",%nobits 23250 .align 2 23251 .set .LANCHOR175,. + 0 23252 .type g_gc_skip_write_count, %object 23253 .size g_gc_skip_write_count, 4 23254g_gc_skip_write_count: 23255 .space 4 23256 .section .bss.g_gc_superblock,"aw",%nobits 23257 .align 2 23258 .set .LANCHOR204,. + 0 23259 .type g_gc_superblock, %object 23260 .size g_gc_superblock, 48 23261g_gc_superblock: 23262 .space 48 23263 .section .bss.g_gc_temp_superblock,"aw",%nobits 23264 .align 2 23265 .set .LANCHOR94,. + 0 23266 .type g_gc_temp_superblock, %object 23267 .size g_gc_temp_superblock, 48 23268g_gc_temp_superblock: 23269 .space 48 23270 .section .bss.g_in_gc_progress,"aw",%nobits 23271 .align 2 23272 .set .LANCHOR171,. + 0 23273 .type g_in_gc_progress, %object 23274 .size g_in_gc_progress, 4 23275g_in_gc_progress: 23276 .space 4 23277 .section .bss.g_in_swl_replace,"aw",%nobits 23278 .align 2 23279 .set .LANCHOR172,. + 0 23280 .type g_in_swl_replace, %object 23281 .size g_in_swl_replace, 4 23282g_in_swl_replace: 23283 .space 4 23284 .section .bss.g_inkDie_check_enable,"aw",%nobits 23285 .align 2 23286 .set .LANCHOR28,. + 0 23287 .type g_inkDie_check_enable, %object 23288 .size g_inkDie_check_enable, 4 23289g_inkDie_check_enable: 23290 .space 4 23291 .section .bss.g_l2p_last_update_region_id,"aw",%nobits 23292 .align 1 23293 .set .LANCHOR98,. + 0 23294 .type g_l2p_last_update_region_id, %object 23295 .size g_l2p_last_update_region_id, 2 23296g_l2p_last_update_region_id: 23297 .space 2 23298 .section .bss.g_maxRegNum,"aw",%nobits 23299 .set .LANCHOR13,. + 0 23300 .type g_maxRegNum, %object 23301 .size g_maxRegNum, 1 23302g_maxRegNum: 23303 .space 1 23304 .section .bss.g_maxRetryCount,"aw",%nobits 23305 .set .LANCHOR151,. + 0 23306 .type g_maxRetryCount, %object 23307 .size g_maxRetryCount, 1 23308g_maxRetryCount: 23309 .space 1 23310 .section .bss.g_max_erase_count,"aw",%nobits 23311 .align 2 23312 .set .LANCHOR169,. + 0 23313 .type g_max_erase_count, %object 23314 .size g_max_erase_count, 4 23315g_max_erase_count: 23316 .space 4 23317 .section .bss.g_min_erase_count,"aw",%nobits 23318 .align 2 23319 .set .LANCHOR170,. + 0 23320 .type g_min_erase_count, %object 23321 .size g_min_erase_count, 4 23322g_min_erase_count: 23323 .space 4 23324 .section .bss.g_nandc_version_data,"aw",%nobits 23325 .align 2 23326 .set .LANCHOR29,. + 0 23327 .type g_nandc_version_data, %object 23328 .size g_nandc_version_data, 4 23329g_nandc_version_data: 23330 .space 4 23331 .section .bss.g_num_data_superblocks,"aw",%nobits 23332 .align 1 23333 .set .LANCHOR86,. + 0 23334 .type g_num_data_superblocks, %object 23335 .size g_num_data_superblocks, 2 23336g_num_data_superblocks: 23337 .space 2 23338 .section .bss.g_num_free_superblocks,"aw",%nobits 23339 .align 1 23340 .set .LANCHOR89,. + 0 23341 .type g_num_free_superblocks, %object 23342 .size g_num_free_superblocks, 2 23343g_num_free_superblocks: 23344 .space 2 23345 .section .bss.g_page_map_check_enable,"aw",%nobits 23346 .align 1 23347 .set .LANCHOR70,. + 0 23348 .type g_page_map_check_enable, %object 23349 .size g_page_map_check_enable, 2 23350g_page_map_check_enable: 23351 .space 2 23352 .section .bss.g_power_lost_ecc_error_blk,"aw",%nobits 23353 .align 1 23354 .set .LANCHOR235,. + 0 23355 .type g_power_lost_ecc_error_blk, %object 23356 .size g_power_lost_ecc_error_blk, 2 23357g_power_lost_ecc_error_blk: 23358 .space 2 23359 .section .bss.g_power_lost_recovery_flag,"aw",%nobits 23360 .align 1 23361 .set .LANCHOR236,. + 0 23362 .type g_power_lost_recovery_flag, %object 23363 .size g_power_lost_recovery_flag, 2 23364g_power_lost_recovery_flag: 23365 .space 2 23366 .section .bss.g_recovery_page_min_ver,"aw",%nobits 23367 .align 2 23368 .set .LANCHOR136,. + 0 23369 .type g_recovery_page_min_ver, %object 23370 .size g_recovery_page_min_ver, 4 23371g_recovery_page_min_ver: 23372 .space 4 23373 .section .bss.g_recovery_page_num,"aw",%nobits 23374 .align 2 23375 .set .LANCHOR237,. + 0 23376 .type g_recovery_page_num, %object 23377 .size g_recovery_page_num, 4 23378g_recovery_page_num: 23379 .space 4 23380 .section .bss.g_recovery_ppa_tbl,"aw",%nobits 23381 .align 2 23382 .set .LANCHOR238,. + 0 23383 .type g_recovery_ppa_tbl, %object 23384 .size g_recovery_ppa_tbl, 128 23385g_recovery_ppa_tbl: 23386 .space 128 23387 .section .bss.g_req_cache,"aw",%nobits 23388 .align 2 23389 .set .LANCHOR132,. + 0 23390 .type g_req_cache, %object 23391 .size g_req_cache, 4 23392g_req_cache: 23393 .space 4 23394 .section .bss.g_retryMode,"aw",%nobits 23395 .set .LANCHOR10,. + 0 23396 .type g_retryMode, %object 23397 .size g_retryMode, 1 23398g_retryMode: 23399 .space 1 23400 .section .bss.g_slc2KBNand,"aw",%nobits 23401 .set .LANCHOR1,. + 0 23402 .type g_slc2KBNand, %object 23403 .size g_slc2KBNand, 1 23404g_slc2KBNand: 23405 .space 1 23406 .section .bss.g_sys_ext_data,"aw",%nobits 23407 .align 2 23408 .set .LANCHOR138,. + 0 23409 .type g_sys_ext_data, %object 23410 .size g_sys_ext_data, 512 23411g_sys_ext_data: 23412 .space 512 23413 .section .bss.g_sys_save_data,"aw",%nobits 23414 .align 2 23415 .set .LANCHOR81,. + 0 23416 .type g_sys_save_data, %object 23417 .size g_sys_save_data, 48 23418g_sys_save_data: 23419 .space 48 23420 .section .bss.g_tmp_data_superblock_id,"aw",%nobits 23421 .align 1 23422 .set .LANCHOR133,. + 0 23423 .type g_tmp_data_superblock_id, %object 23424 .size g_tmp_data_superblock_id, 2 23425g_tmp_data_superblock_id: 23426 .space 2 23427 .section .bss.g_totle_avg_erase_count,"aw",%nobits 23428 .align 2 23429 .set .LANCHOR205,. + 0 23430 .type g_totle_avg_erase_count, %object 23431 .size g_totle_avg_erase_count, 4 23432g_totle_avg_erase_count: 23433 .space 4 23434 .section .bss.g_totle_cache_write_count,"aw",%nobits 23435 .align 2 23436 .set .LANCHOR164,. + 0 23437 .type g_totle_cache_write_count, %object 23438 .size g_totle_cache_write_count, 4 23439g_totle_cache_write_count: 23440 .space 4 23441 .section .bss.g_totle_discard_page_count,"aw",%nobits 23442 .align 2 23443 .set .LANCHOR163,. + 0 23444 .type g_totle_discard_page_count, %object 23445 .size g_totle_discard_page_count, 4 23446g_totle_discard_page_count: 23447 .space 4 23448 .section .bss.g_totle_gc_page_count,"aw",%nobits 23449 .align 2 23450 .set .LANCHOR161,. + 0 23451 .type g_totle_gc_page_count, %object 23452 .size g_totle_gc_page_count, 4 23453g_totle_gc_page_count: 23454 .space 4 23455 .section .bss.g_totle_l2p_write_count,"aw",%nobits 23456 .align 2 23457 .set .LANCHOR165,. + 0 23458 .type g_totle_l2p_write_count, %object 23459 .size g_totle_l2p_write_count, 4 23460g_totle_l2p_write_count: 23461 .space 4 23462 .section .bss.g_totle_map_block,"aw",%nobits 23463 .align 1 23464 .set .LANCHOR128,. + 0 23465 .type g_totle_map_block, %object 23466 .size g_totle_map_block, 2 23467g_totle_map_block: 23468 .space 2 23469 .section .bss.g_totle_mlc_erase_count,"aw",%nobits 23470 .align 2 23471 .set .LANCHOR167,. + 0 23472 .type g_totle_mlc_erase_count, %object 23473 .size g_totle_mlc_erase_count, 4 23474g_totle_mlc_erase_count: 23475 .space 4 23476 .section .bss.g_totle_read_page_count,"aw",%nobits 23477 .align 2 23478 .set .LANCHOR166,. + 0 23479 .type g_totle_read_page_count, %object 23480 .size g_totle_read_page_count, 4 23481g_totle_read_page_count: 23482 .space 4 23483 .section .bss.g_totle_read_sector,"aw",%nobits 23484 .align 2 23485 .set .LANCHOR217,. + 0 23486 .type g_totle_read_sector, %object 23487 .size g_totle_read_sector, 4 23488g_totle_read_sector: 23489 .space 4 23490 .section .bss.g_totle_slc_erase_count,"aw",%nobits 23491 .align 2 23492 .set .LANCHOR168,. + 0 23493 .type g_totle_slc_erase_count, %object 23494 .size g_totle_slc_erase_count, 4 23495g_totle_slc_erase_count: 23496 .space 4 23497 .section .bss.g_totle_swl_count,"aw",%nobits 23498 .align 2 23499 .set .LANCHOR134,. + 0 23500 .type g_totle_swl_count, %object 23501 .size g_totle_swl_count, 4 23502g_totle_swl_count: 23503 .space 4 23504 .section .bss.g_totle_sys_slc_erase_count,"aw",%nobits 23505 .align 2 23506 .set .LANCHOR80,. + 0 23507 .type g_totle_sys_slc_erase_count, %object 23508 .size g_totle_sys_slc_erase_count, 4 23509g_totle_sys_slc_erase_count: 23510 .space 4 23511 .section .bss.g_totle_vendor_block,"aw",%nobits 23512 .align 1 23513 .set .LANCHOR71,. + 0 23514 .type g_totle_vendor_block, %object 23515 .size g_totle_vendor_block, 2 23516g_totle_vendor_block: 23517 .space 2 23518 .section .bss.g_totle_write_page_count,"aw",%nobits 23519 .align 2 23520 .set .LANCHOR162,. + 0 23521 .type g_totle_write_page_count, %object 23522 .size g_totle_write_page_count, 4 23523g_totle_write_page_count: 23524 .space 4 23525 .section .bss.g_totle_write_sector,"aw",%nobits 23526 .align 2 23527 .set .LANCHOR216,. + 0 23528 .type g_totle_write_sector, %object 23529 .size g_totle_write_sector, 4 23530g_totle_write_sector: 23531 .space 4 23532 .section .bss.gc_discard_updated,"aw",%nobits 23533 .align 2 23534 .set .LANCHOR232,. + 0 23535 .type gc_discard_updated, %object 23536 .size gc_discard_updated, 4 23537gc_discard_updated: 23538 .space 4 23539 .section .bss.gc_ink_free_return_value,"aw",%nobits 23540 .align 1 23541 .set .LANCHOR240,. + 0 23542 .type gc_ink_free_return_value, %object 23543 .size gc_ink_free_return_value, 2 23544gc_ink_free_return_value: 23545 .space 2 23546 .section .bss.gpFlashSaveInfo,"aw",%nobits 23547 .align 2 23548 .set .LANCHOR146,. + 0 23549 .type gpFlashSaveInfo, %object 23550 .size gpFlashSaveInfo, 4 23551gpFlashSaveInfo: 23552 .space 4 23553 .section .bss.gpNandParaInfo,"aw",%nobits 23554 .align 2 23555 .set .LANCHOR18,. + 0 23556 .type gpNandParaInfo, %object 23557 .size gpNandParaInfo, 4 23558gpNandParaInfo: 23559 .space 4 23560 .section .bss.gpNandc,"aw",%nobits 23561 .align 2 23562 .set .LANCHOR19,. + 0 23563 .type gpNandc, %object 23564 .size gpNandc, 4 23565gpNandc: 23566 .space 4 23567 .section .bss.gpNandc1,"aw",%nobits 23568 .align 2 23569 .type gpNandc1, %object 23570 .size gpNandc1, 4 23571gpNandc1: 23572 .space 4 23573 .section .bss.gpReadRetrial,"aw",%nobits 23574 .align 2 23575 .set .LANCHOR145,. + 0 23576 .type gpReadRetrial, %object 23577 .size gpReadRetrial, 4 23578gpReadRetrial: 23579 .space 4 23580 .section .bss.gp_ect_tbl_info,"aw",%nobits 23581 .align 2 23582 .set .LANCHOR191,. + 0 23583 .type gp_ect_tbl_info, %object 23584 .size gp_ect_tbl_info, 4 23585gp_ect_tbl_info: 23586 .space 4 23587 .section .bss.gp_flash_check_buf,"aw",%nobits 23588 .align 2 23589 .type gp_flash_check_buf, %object 23590 .size gp_flash_check_buf, 262144 23591gp_flash_check_buf: 23592 .space 262144 23593 .section .bss.gp_gc_page_buf_info,"aw",%nobits 23594 .align 2 23595 .set .LANCHOR104,. + 0 23596 .type gp_gc_page_buf_info, %object 23597 .size gp_gc_page_buf_info, 4 23598gp_gc_page_buf_info: 23599 .space 4 23600 .section .bss.gp_last_act_superblock,"aw",%nobits 23601 .align 2 23602 .set .LANCHOR230,. + 0 23603 .type gp_last_act_superblock, %object 23604 .size gp_last_act_superblock, 4 23605gp_last_act_superblock: 23606 .space 4 23607 .section .bss.idb_buf,"aw",%nobits 23608 .align 2 23609 .type idb_buf, %object 23610 .size idb_buf, 262144 23611idb_buf: 23612 .space 262144 23613 .section .bss.idb_need_write_back,"aw",%nobits 23614 .align 2 23615 .set .LANCHOR154,. + 0 23616 .type idb_need_write_back, %object 23617 .size idb_need_write_back, 4 23618idb_need_write_back: 23619 .space 4 23620 .section .bss.mlcPageToSlcPageTbl,"aw",%nobits 23621 .align 2 23622 .set .LANCHOR120,. + 0 23623 .type mlcPageToSlcPageTbl, %object 23624 .size mlcPageToSlcPageTbl, 1024 23625mlcPageToSlcPageTbl: 23626 .space 1024 23627 .section .bss.p_blk_mode_table,"aw",%nobits 23628 .align 2 23629 .set .LANCHOR0,. + 0 23630 .type p_blk_mode_table, %object 23631 .size p_blk_mode_table, 4 23632p_blk_mode_table: 23633 .space 4 23634 .section .bss.p_data_block_list_head,"aw",%nobits 23635 .align 2 23636 .set .LANCHOR83,. + 0 23637 .type p_data_block_list_head, %object 23638 .size p_data_block_list_head, 4 23639p_data_block_list_head: 23640 .space 4 23641 .section .bss.p_data_block_list_table,"aw",%nobits 23642 .align 2 23643 .set .LANCHOR82,. + 0 23644 .type p_data_block_list_table, %object 23645 .size p_data_block_list_table, 4 23646p_data_block_list_table: 23647 .space 4 23648 .section .bss.p_data_block_list_tail,"aw",%nobits 23649 .align 2 23650 .set .LANCHOR85,. + 0 23651 .type p_data_block_list_tail, %object 23652 .size p_data_block_list_tail, 4 23653p_data_block_list_tail: 23654 .space 4 23655 .section .bss.p_erase_count_table,"aw",%nobits 23656 .align 2 23657 .set .LANCHOR79,. + 0 23658 .type p_erase_count_table, %object 23659 .size p_erase_count_table, 4 23660p_erase_count_table: 23661 .space 4 23662 .section .bss.p_free_data_block_list_head,"aw",%nobits 23663 .align 2 23664 .set .LANCHOR88,. + 0 23665 .type p_free_data_block_list_head, %object 23666 .size p_free_data_block_list_head, 4 23667p_free_data_block_list_head: 23668 .space 4 23669 .section .bss.p_gc_blk_tbl,"aw",%nobits 23670 .align 2 23671 .set .LANCHOR109,. + 0 23672 .type p_gc_blk_tbl, %object 23673 .size p_gc_blk_tbl, 4 23674p_gc_blk_tbl: 23675 .space 4 23676 .section .bss.p_gc_data_buf,"aw",%nobits 23677 .align 2 23678 .set .LANCHOR105,. + 0 23679 .type p_gc_data_buf, %object 23680 .size p_gc_data_buf, 4 23681p_gc_data_buf: 23682 .space 4 23683 .section .bss.p_gc_page_info,"aw",%nobits 23684 .align 2 23685 .set .LANCHOR112,. + 0 23686 .type p_gc_page_info, %object 23687 .size p_gc_page_info, 4 23688p_gc_page_info: 23689 .space 4 23690 .section .bss.p_gc_spare_buf,"aw",%nobits 23691 .align 2 23692 .set .LANCHOR106,. + 0 23693 .type p_gc_spare_buf, %object 23694 .size p_gc_spare_buf, 4 23695p_gc_spare_buf: 23696 .space 4 23697 .section .bss.p_io_data_buf_0,"aw",%nobits 23698 .align 2 23699 .set .LANCHOR186,. + 0 23700 .type p_io_data_buf_0, %object 23701 .size p_io_data_buf_0, 4 23702p_io_data_buf_0: 23703 .space 4 23704 .section .bss.p_io_data_buf_1,"aw",%nobits 23705 .align 2 23706 .set .LANCHOR187,. + 0 23707 .type p_io_data_buf_1, %object 23708 .size p_io_data_buf_1, 4 23709p_io_data_buf_1: 23710 .space 4 23711 .section .bss.p_io_spare_buf,"aw",%nobits 23712 .align 2 23713 .set .LANCHOR189,. + 0 23714 .type p_io_spare_buf, %object 23715 .size p_io_spare_buf, 4 23716p_io_spare_buf: 23717 .space 4 23718 .section .bss.p_l2p_map_buf,"aw",%nobits 23719 .align 2 23720 .set .LANCHOR126,. + 0 23721 .type p_l2p_map_buf, %object 23722 .size p_l2p_map_buf, 4 23723p_l2p_map_buf: 23724 .space 4 23725 .section .bss.p_l2p_ram_map,"aw",%nobits 23726 .align 2 23727 .set .LANCHOR97,. + 0 23728 .type p_l2p_ram_map, %object 23729 .size p_l2p_ram_map, 4 23730p_l2p_ram_map: 23731 .space 4 23732 .section .bss.p_map_block_table,"aw",%nobits 23733 .align 2 23734 .set .LANCHOR129,. + 0 23735 .type p_map_block_table, %object 23736 .size p_map_block_table, 4 23737p_map_block_table: 23738 .space 4 23739 .section .bss.p_map_block_valid_page_count,"aw",%nobits 23740 .align 2 23741 .set .LANCHOR125,. + 0 23742 .type p_map_block_valid_page_count, %object 23743 .size p_map_block_valid_page_count, 4 23744p_map_block_valid_page_count: 23745 .space 4 23746 .section .bss.p_map_block_ver_table,"aw",%nobits 23747 .align 2 23748 .set .LANCHOR130,. + 0 23749 .type p_map_block_ver_table, %object 23750 .size p_map_block_ver_table, 4 23751p_map_block_ver_table: 23752 .space 4 23753 .section .bss.p_map_region_ppn_check_table,"aw",%nobits 23754 .align 2 23755 .set .LANCHOR195,. + 0 23756 .type p_map_region_ppn_check_table, %object 23757 .size p_map_region_ppn_check_table, 4 23758p_map_region_ppn_check_table: 23759 .space 4 23760 .section .bss.p_map_region_ppn_table,"aw",%nobits 23761 .align 2 23762 .set .LANCHOR131,. + 0 23763 .type p_map_region_ppn_table, %object 23764 .size p_map_region_ppn_table, 4 23765p_map_region_ppn_table: 23766 .space 4 23767 .section .bss.p_plane_order_table,"aw",%nobits 23768 .set .LANCHOR47,. + 0 23769 .type p_plane_order_table, %object 23770 .size p_plane_order_table, 32 23771p_plane_order_table: 23772 .space 32 23773 .section .bss.p_swl_mul_table,"aw",%nobits 23774 .align 2 23775 .set .LANCHOR137,. + 0 23776 .type p_swl_mul_table, %object 23777 .size p_swl_mul_table, 4 23778p_swl_mul_table: 23779 .space 4 23780 .section .bss.p_sys_data_buf,"aw",%nobits 23781 .align 2 23782 .set .LANCHOR183,. + 0 23783 .type p_sys_data_buf, %object 23784 .size p_sys_data_buf, 4 23785p_sys_data_buf: 23786 .space 4 23787 .section .bss.p_sys_data_buf_1,"aw",%nobits 23788 .align 2 23789 .set .LANCHOR184,. + 0 23790 .type p_sys_data_buf_1, %object 23791 .size p_sys_data_buf_1, 4 23792p_sys_data_buf_1: 23793 .space 4 23794 .section .bss.p_sys_spare_buf,"aw",%nobits 23795 .align 2 23796 .set .LANCHOR188,. + 0 23797 .type p_sys_spare_buf, %object 23798 .size p_sys_spare_buf, 4 23799p_sys_spare_buf: 23800 .space 4 23801 .section .bss.p_valid_page_count_check_table,"aw",%nobits 23802 .align 2 23803 .type p_valid_page_count_check_table, %object 23804 .size p_valid_page_count_check_table, 4 23805p_valid_page_count_check_table: 23806 .space 4 23807 .section .bss.p_valid_page_count_table,"aw",%nobits 23808 .align 2 23809 .set .LANCHOR84,. + 0 23810 .type p_valid_page_count_table, %object 23811 .size p_valid_page_count_table, 4 23812p_valid_page_count_table: 23813 .space 4 23814 .section .bss.p_vendor_block_table,"aw",%nobits 23815 .align 2 23816 .set .LANCHOR72,. + 0 23817 .type p_vendor_block_table, %object 23818 .size p_vendor_block_table, 4 23819p_vendor_block_table: 23820 .space 4 23821 .section .bss.p_vendor_block_valid_page_count,"aw",%nobits 23822 .align 2 23823 .set .LANCHOR192,. + 0 23824 .type p_vendor_block_valid_page_count, %object 23825 .size p_vendor_block_valid_page_count, 4 23826p_vendor_block_valid_page_count: 23827 .space 4 23828 .section .bss.p_vendor_block_ver_table,"aw",%nobits 23829 .align 2 23830 .set .LANCHOR193,. + 0 23831 .type p_vendor_block_ver_table, %object 23832 .size p_vendor_block_ver_table, 4 23833p_vendor_block_ver_table: 23834 .space 4 23835 .section .bss.p_vendor_data_buf,"aw",%nobits 23836 .align 2 23837 .set .LANCHOR185,. + 0 23838 .type p_vendor_data_buf, %object 23839 .size p_vendor_data_buf, 4 23840p_vendor_data_buf: 23841 .space 4 23842 .section .bss.p_vendor_region_ppn_table,"aw",%nobits 23843 .align 2 23844 .set .LANCHOR194,. + 0 23845 .type p_vendor_region_ppn_table, %object 23846 .size p_vendor_region_ppn_table, 4 23847p_vendor_region_ppn_table: 23848 .space 4 23849 .section .bss.read_retry_cur_offset,"aw",%nobits 23850 .set .LANCHOR21,. + 0 23851 .type read_retry_cur_offset, %object 23852 .size read_retry_cur_offset, 4 23853read_retry_cur_offset: 23854 .space 4 23855 .section .bss.req_erase,"aw",%nobits 23856 .align 2 23857 .set .LANCHOR78,. + 0 23858 .type req_erase, %object 23859 .size req_erase, 4 23860req_erase: 23861 .space 4 23862 .section .bss.req_gc,"aw",%nobits 23863 .align 2 23864 .set .LANCHOR107,. + 0 23865 .type req_gc, %object 23866 .size req_gc, 4 23867req_gc: 23868 .space 4 23869 .section .bss.req_gc_dst,"aw",%nobits 23870 .align 2 23871 .set .LANCHOR181,. + 0 23872 .type req_gc_dst, %object 23873 .size req_gc_dst, 4 23874req_gc_dst: 23875 .space 4 23876 .section .bss.req_prgm,"aw",%nobits 23877 .align 2 23878 .set .LANCHOR182,. + 0 23879 .type req_prgm, %object 23880 .size req_prgm, 4 23881req_prgm: 23882 .space 4 23883 .section .bss.req_read,"aw",%nobits 23884 .align 2 23885 .set .LANCHOR180,. + 0 23886 .type req_read, %object 23887 .size req_read, 4 23888req_read: 23889 .space 4 23890 .section .bss.req_sys,"aw",%nobits 23891 .align 2 23892 .set .LANCHOR202,. + 0 23893 .type req_sys, %object 23894 .size req_sys, 36 23895req_sys: 23896 .space 36 23897 .section .bss.slcPageToMlcPageTbl,"aw",%nobits 23898 .align 2 23899 .set .LANCHOR16,. + 0 23900 .type slcPageToMlcPageTbl, %object 23901 .size slcPageToMlcPageTbl, 512 23902slcPageToMlcPageTbl: 23903 .space 512 23904 .section .data.FtlMallocOffset,"aw",%progbits 23905 .align 2 23906 .type FtlMallocOffset, %object 23907 .size FtlMallocOffset, 4 23908FtlMallocOffset: 23909 .word 64 23910 .section .data.LastWritenPbaAddr,"aw",%progbits 23911 .align 2 23912 .type LastWritenPbaAddr, %object 23913 .size LastWritenPbaAddr, 4 23914LastWritenPbaAddr: 23915 .word -1 23916 .section .data.NandFlashParaTbl,"aw",%progbits 23917 .align 1 23918 .set .LANCHOR142,. + 0 23919 .type NandFlashParaTbl, %object 23920 .size NandFlashParaTbl, 2464 23921NandFlashParaTbl: 23922 .byte 6 23923 .byte 44 23924 .byte 100 23925 .byte 68 23926 .byte 75 23927 .byte -87 23928 .byte 0 23929 .byte 4 23930 .byte 1 23931 .byte 16 23932 .short 256 23933 .byte 2 23934 .byte 2 23935 .short 2048 23936 .short 479 23937 .byte 3 23938 .byte 17 23939 .byte 40 23940 .byte 32 23941 .byte 1 23942 .byte 0 23943 .byte 1 23944 .byte 0 23945 .byte 0 23946 .byte 0 23947 .space 4 23948 .byte 6 23949 .byte 44 23950 .byte 68 23951 .byte 68 23952 .byte 75 23953 .byte -87 23954 .byte 0 23955 .byte 4 23956 .byte 1 23957 .byte 16 23958 .short 256 23959 .byte 2 23960 .byte 2 23961 .short 1064 23962 .short 479 23963 .byte 3 23964 .byte 17 23965 .byte 40 23966 .byte 32 23967 .byte 1 23968 .byte 0 23969 .byte 1 23970 .byte 0 23971 .byte 0 23972 .byte 0 23973 .space 4 23974 .byte 6 23975 .byte 44 23976 .byte 104 23977 .byte 4 23978 .byte 74 23979 .byte -87 23980 .byte 0 23981 .byte 4 23982 .byte 1 23983 .byte 8 23984 .short 256 23985 .byte 2 23986 .byte 2 23987 .short 2048 23988 .short 287 23989 .byte 1 23990 .byte 0 23991 .byte 24 23992 .byte 32 23993 .byte 1 23994 .byte 0 23995 .byte 1 23996 .byte 0 23997 .byte 0 23998 .byte 0 23999 .space 4 24000 .byte 5 24001 .byte 44 24002 .byte -120 24003 .byte 4 24004 .byte 75 24005 .byte -87 24006 .byte 0 24007 .byte 4 24008 .byte 1 24009 .byte 16 24010 .short 256 24011 .byte 2 24012 .byte 2 24013 .short 2048 24014 .short 287 24015 .byte 1 24016 .byte 0 24017 .byte 24 24018 .byte 32 24019 .byte 1 24020 .byte 0 24021 .byte 1 24022 .byte 0 24023 .byte 0 24024 .byte 0 24025 .space 4 24026 .byte 6 24027 .byte 44 24028 .byte -88 24029 .byte 5 24030 .byte -53 24031 .byte -87 24032 .byte 0 24033 .byte 4 24034 .byte 2 24035 .byte 16 24036 .short 256 24037 .byte 2 24038 .byte 2 24039 .short 2048 24040 .short 287 24041 .byte 1 24042 .byte 0 24043 .byte 24 24044 .byte 32 24045 .byte 1 24046 .byte 0 24047 .byte 1 24048 .byte 0 24049 .byte 0 24050 .byte 0 24051 .space 4 24052 .byte 6 24053 .byte 44 24054 .byte 104 24055 .byte 4 24056 .byte 70 24057 .byte -119 24058 .byte 0 24059 .byte 4 24060 .byte 1 24061 .byte 8 24062 .short 256 24063 .byte 2 24064 .byte 2 24065 .short 2048 24066 .short 287 24067 .byte 1 24068 .byte 0 24069 .byte 24 24070 .byte 32 24071 .byte 1 24072 .byte 0 24073 .byte 1 24074 .byte 0 24075 .byte 0 24076 .byte 0 24077 .space 4 24078 .byte 6 24079 .byte 44 24080 .byte 72 24081 .byte 4 24082 .byte 74 24083 .byte -91 24084 .byte 0 24085 .byte 4 24086 .byte 1 24087 .byte 8 24088 .short 256 24089 .byte 2 24090 .byte 2 24091 .short 1024 24092 .short 287 24093 .byte 1 24094 .byte 0 24095 .byte 24 24096 .byte 32 24097 .byte 1 24098 .byte 0 24099 .byte 1 24100 .byte 0 24101 .byte 0 24102 .byte 0 24103 .space 4 24104 .byte 6 24105 .byte 44 24106 .byte -124 24107 .byte 100 24108 .byte 60 24109 .byte -91 24110 .byte 0 24111 .byte 4 24112 .byte 1 24113 .byte 32 24114 .short 512 24115 .byte 2 24116 .byte 2 24117 .short 1024 24118 .short 479 24119 .byte 3 24120 .byte 17 24121 .byte 40 24122 .byte 32 24123 .byte 1 24124 .byte 0 24125 .byte 1 24126 .byte 0 24127 .byte 0 24128 .byte 0 24129 .space 4 24130 .byte 5 24131 .byte 44 24132 .byte -124 24133 .byte 100 24134 .byte 84 24135 .byte -87 24136 .byte 0 24137 .byte 4 24138 .byte 1 24139 .byte 32 24140 .short 512 24141 .byte 2 24142 .byte 2 24143 .short 1024 24144 .short 479 24145 .byte 4 24146 .byte 18 24147 .byte 60 24148 .byte 32 24149 .byte 1 24150 .byte 0 24151 .byte 1 24152 .byte 0 24153 .byte 0 24154 .byte 0 24155 .space 4 24156 .byte 6 24157 .byte 44 24158 .byte -41 24159 .byte -108 24160 .byte 62 24161 .byte -124 24162 .byte 0 24163 .byte 4 24164 .byte 1 24165 .byte 8 24166 .short 128 24167 .byte 2 24168 .byte 2 24169 .short 4096 24170 .short 279 24171 .byte 1 24172 .byte 0 24173 .byte 24 24174 .byte 32 24175 .byte 1 24176 .byte 0 24177 .byte 1 24178 .byte 0 24179 .byte 0 24180 .byte 0 24181 .space 4 24182 .byte 6 24183 .byte 44 24184 .byte 72 24185 .byte 4 24186 .byte 70 24187 .byte -123 24188 .byte 0 24189 .byte 4 24190 .byte 1 24191 .byte 8 24192 .short 256 24193 .byte 2 24194 .byte 2 24195 .short 1024 24196 .short 287 24197 .byte 1 24198 .byte 0 24199 .byte 24 24200 .byte 32 24201 .byte 1 24202 .byte 0 24203 .byte 1 24204 .byte 0 24205 .byte 0 24206 .byte 0 24207 .space 4 24208 .byte 6 24209 .byte 44 24210 .byte -120 24211 .byte 5 24212 .byte -58 24213 .byte -119 24214 .byte 0 24215 .byte 4 24216 .byte 2 24217 .byte 8 24218 .short 256 24219 .byte 2 24220 .byte 2 24221 .short 2048 24222 .short 287 24223 .byte 1 24224 .byte 0 24225 .byte 24 24226 .byte 32 24227 .byte 1 24228 .byte 0 24229 .byte 1 24230 .byte 0 24231 .byte 0 24232 .byte 0 24233 .space 4 24234 .byte 5 24235 .byte 44 24236 .byte -120 24237 .byte 36 24238 .byte 75 24239 .byte -87 24240 .byte 0 24241 .byte 4 24242 .byte 1 24243 .byte 16 24244 .short 256 24245 .byte 2 24246 .byte 2 24247 .short 2048 24248 .short 287 24249 .byte 1 24250 .byte 0 24251 .byte 24 24252 .byte 32 24253 .byte 1 24254 .byte 0 24255 .byte 1 24256 .byte 0 24257 .byte 0 24258 .byte 0 24259 .space 4 24260 .byte 6 24261 .byte 44 24262 .byte 104 24263 .byte 0 24264 .byte 39 24265 .byte -87 24266 .byte 0 24267 .byte 4 24268 .byte 1 24269 .byte 16 24270 .short 128 24271 .byte 1 24272 .byte 2 24273 .short 2048 24274 .short 287 24275 .byte 0 24276 .byte 0 24277 .byte 24 24278 .byte 32 24279 .byte 1 24280 .byte 0 24281 .byte 1 24282 .byte 0 24283 .byte 0 24284 .byte 0 24285 .space 4 24286 .byte 5 24287 .byte 44 24288 .byte 100 24289 .byte 100 24290 .byte 86 24291 .byte -91 24292 .byte 0 24293 .byte 4 24294 .byte 1 24295 .byte 24 24296 .short 512 24297 .byte 2 24298 .byte 2 24299 .short 700 24300 .short 479 24301 .byte 4 24302 .byte 18 24303 .byte 60 24304 .byte 32 24305 .byte 1 24306 .byte 0 24307 .byte 1 24308 .byte 0 24309 .byte 0 24310 .byte 0 24311 .space 4 24312 .byte 6 24313 .byte 44 24314 .byte -124 24315 .byte -59 24316 .byte 75 24317 .byte -87 24318 .byte 0 24319 .byte 4 24320 .byte 2 24321 .byte 16 24322 .short 256 24323 .byte 2 24324 .byte 2 24325 .short 2048 24326 .short 479 24327 .byte 3 24328 .byte 17 24329 .byte 40 24330 .byte 32 24331 .byte 1 24332 .byte 0 24333 .byte 1 24334 .byte 0 24335 .byte 0 24336 .byte 0 24337 .space 4 24338 .byte 6 24339 .byte 44 24340 .byte -43 24341 .byte -47 24342 .byte -90 24343 .byte 104 24344 .byte 0 24345 .byte 4 24346 .byte 2 24347 .byte 8 24348 .short 64 24349 .byte 1 24350 .byte 2 24351 .short 2048 24352 .short 279 24353 .byte 0 24354 .byte 0 24355 .byte 24 24356 .byte 32 24357 .byte 1 24358 .byte 0 24359 .byte 1 24360 .byte 0 24361 .byte 0 24362 .byte 0 24363 .space 4 24364 .byte 6 24365 .byte 44 24366 .byte -36 24367 .byte -112 24368 .byte -90 24369 .byte 84 24370 .byte 0 24371 .byte 4 24372 .byte 1 24373 .byte 8 24374 .short 64 24375 .byte 1 24376 .byte 2 24377 .short 1024 24378 .short 279 24379 .byte 0 24380 .byte 0 24381 .byte 24 24382 .byte 32 24383 .byte 1 24384 .byte 0 24385 .byte 1 24386 .byte 0 24387 .byte 0 24388 .byte 0 24389 .space 4 24390 .byte 5 24391 .byte 44 24392 .byte 100 24393 .byte 100 24394 .byte 84 24395 .byte -92 24396 .byte 0 24397 .byte 4 24398 .byte 1 24399 .byte 32 24400 .short 512 24401 .byte 2 24402 .byte 1 24403 .short 1024 24404 .short 479 24405 .byte 4 24406 .byte 18 24407 .byte 60 24408 .byte 32 24409 .byte 1 24410 .byte 0 24411 .byte 1 24412 .byte 0 24413 .byte 0 24414 .byte 0 24415 .space 4 24416 .byte 5 24417 .byte 44 24418 .byte -124 24419 .byte 68 24420 .byte 50 24421 .byte -86 24422 .byte 0 24423 .byte 4 24424 .byte 1 24425 .byte 32 24426 .short 512 24427 .byte 2 24428 .byte 1 24429 .short 2184 24430 .short 1479 24431 .byte 5 24432 .byte 19 24433 .byte 60 24434 .byte 32 24435 .byte 1 24436 .byte 0 24437 .byte 1 24438 .byte 0 24439 .byte 1 24440 .byte 0 24441 .space 4 24442 .byte 5 24443 .byte 44 24444 .byte 100 24445 .byte 68 24446 .byte 50 24447 .byte -91 24448 .byte 0 24449 .byte 4 24450 .byte 1 24451 .byte 32 24452 .short 512 24453 .byte 2 24454 .byte 1 24455 .short 1048 24456 .short 1479 24457 .byte 5 24458 .byte 19 24459 .byte 60 24460 .byte 32 24461 .byte 1 24462 .byte 0 24463 .byte 1 24464 .byte 0 24465 .byte 1 24466 .byte 0 24467 .space 4 24468 .byte 5 24469 .byte 44 24470 .byte 100 24471 .byte 100 24472 .byte 60 24473 .byte -91 24474 .byte 0 24475 .byte 4 24476 .byte 1 24477 .byte 32 24478 .short 512 24479 .byte 2 24480 .byte 1 24481 .short 1044 24482 .short 479 24483 .byte 3 24484 .byte 17 24485 .byte 40 24486 .byte 32 24487 .byte 1 24488 .byte 0 24489 .byte 1 24490 .byte 0 24491 .byte 0 24492 .byte 0 24493 .space 4 24494 .byte 5 24495 .byte 44 24496 .byte -124 24497 .byte -60 24498 .byte 52 24499 .byte -86 24500 .byte 0 24501 .byte 4 24502 .byte 1 24503 .byte 32 24504 .short 512 24505 .byte 2 24506 .byte 1 24507 .short 2184 24508 .short 1479 24509 .byte 5 24510 .byte 19 24511 .byte 60 24512 .byte 32 24513 .byte 1 24514 .byte 0 24515 .byte 1 24516 .byte 0 24517 .byte 1 24518 .byte 0 24519 .space 4 24520 .byte 5 24521 .byte 44 24522 .byte -124 24523 .byte 68 24524 .byte 52 24525 .byte -92 24526 .byte 0 24527 .byte 4 24528 .byte 1 24529 .byte 32 24530 .short 512 24531 .byte 2 24532 .byte 1 24533 .short 2184 24534 .short 1479 24535 .byte 5 24536 .byte 19 24537 .byte 60 24538 .byte 32 24539 .byte 1 24540 .byte 0 24541 .byte 1 24542 .byte 0 24543 .byte 1 24544 .byte 0 24545 .space 4 24546 .byte 6 24547 .byte -83 24548 .byte -34 24549 .byte -108 24550 .byte -46 24551 .byte 4 24552 .byte 67 24553 .byte 2 24554 .byte 1 24555 .byte 16 24556 .short 256 24557 .byte 2 24558 .byte 2 24559 .short 2048 24560 .short 473 24561 .byte 1 24562 .byte 1 24563 .byte 24 24564 .byte 32 24565 .byte 4 24566 .byte 0 24567 .byte 3 24568 .byte 0 24569 .byte 0 24570 .byte 0 24571 .space 4 24572 .byte 6 24573 .byte -83 24574 .byte -41 24575 .byte -108 24576 .byte -38 24577 .byte 116 24578 .byte -61 24579 .byte 2 24580 .byte 1 24581 .byte 16 24582 .short 256 24583 .byte 2 24584 .byte 2 24585 .short 1024 24586 .short 473 24587 .byte 1 24588 .byte 2 24589 .byte 40 24590 .byte 32 24591 .byte 4 24592 .byte 0 24593 .byte 3 24594 .byte 0 24595 .byte 0 24596 .byte 0 24597 .space 4 24598 .byte 6 24599 .byte -83 24600 .byte -41 24601 .byte -108 24602 .byte -111 24603 .byte 96 24604 .byte 68 24605 .byte 2 24606 .byte 1 24607 .byte 16 24608 .short 256 24609 .byte 2 24610 .byte 2 24611 .short 1046 24612 .short 473 24613 .byte 1 24614 .byte 3 24615 .byte 40 24616 .byte 32 24617 .byte 4 24618 .byte 1 24619 .byte 3 24620 .byte 0 24621 .byte 0 24622 .byte 0 24623 .space 4 24624 .byte 6 24625 .byte -83 24626 .byte -34 24627 .byte -108 24628 .byte -38 24629 .byte 116 24630 .byte -60 24631 .byte 2 24632 .byte 1 24633 .byte 16 24634 .short 256 24635 .byte 2 24636 .byte 2 24637 .short 2090 24638 .short 473 24639 .byte 1 24640 .byte 4 24641 .byte 40 24642 .byte 32 24643 .byte 4 24644 .byte 1 24645 .byte 3 24646 .byte 0 24647 .byte 0 24648 .byte 0 24649 .space 4 24650 .byte 6 24651 .byte -83 24652 .byte -34 24653 .byte -108 24654 .byte -21 24655 .byte 116 24656 .byte 68 24657 .byte 2 24658 .byte 1 24659 .byte 32 24660 .short 256 24661 .byte 2 24662 .byte 2 24663 .short 1066 24664 .short 473 24665 .byte 1 24666 .byte 7 24667 .byte 40 24668 .byte 32 24669 .byte 4 24670 .byte 1 24671 .byte 3 24672 .byte 0 24673 .byte 0 24674 .byte 0 24675 .space 4 24676 .byte 6 24677 .byte -83 24678 .byte -43 24679 .byte -108 24680 .byte -38 24681 .byte 116 24682 .byte -60 24683 .byte 2 24684 .byte 1 24685 .byte 16 24686 .short 256 24687 .byte 2 24688 .byte 2 24689 .short 530 24690 .short 473 24691 .byte 1 24692 .byte 3 24693 .byte 40 24694 .byte 32 24695 .byte 4 24696 .byte 1 24697 .byte 3 24698 .byte 0 24699 .byte 0 24700 .byte 0 24701 .space 4 24702 .byte 6 24703 .byte -83 24704 .byte -41 24705 .byte -108 24706 .byte -102 24707 .byte 116 24708 .byte 66 24709 .byte 2 24710 .byte 1 24711 .byte 16 24712 .short 256 24713 .byte 2 24714 .byte 2 24715 .short 1024 24716 .short 281 24717 .byte 1 24718 .byte 0 24719 .byte 24 24720 .byte 32 24721 .byte 4 24722 .byte 0 24723 .byte 3 24724 .byte 0 24725 .byte 0 24726 .byte 0 24727 .space 4 24728 .byte 6 24729 .byte -83 24730 .byte -34 24731 .byte 20 24732 .byte -89 24733 .byte 66 24734 .byte 74 24735 .byte 2 24736 .byte 1 24737 .byte 32 24738 .short 256 24739 .byte 2 24740 .byte 2 24741 .short 1060 24742 .short 473 24743 .byte 2 24744 .byte 5 24745 .byte 40 24746 .byte 32 24747 .byte 4 24748 .byte 1 24749 .byte 3 24750 .byte 0 24751 .byte 0 24752 .byte 0 24753 .space 4 24754 .byte 6 24755 .byte -83 24756 .byte -41 24757 .byte 20 24758 .byte -98 24759 .byte 52 24760 .byte 74 24761 .byte 2 24762 .byte 1 24763 .byte 16 24764 .short 256 24765 .byte 2 24766 .byte 2 24767 .short 1056 24768 .short 473 24769 .byte 2 24770 .byte 5 24771 .byte 40 24772 .byte 32 24773 .byte 4 24774 .byte 1 24775 .byte 3 24776 .byte 0 24777 .byte 0 24778 .byte 0 24779 .space 4 24780 .byte 6 24781 .byte -83 24782 .byte -34 24783 .byte -108 24784 .byte -89 24785 .byte 66 24786 .byte 72 24787 .byte 2 24788 .byte 1 24789 .byte 32 24790 .short 256 24791 .byte 2 24792 .byte 2 24793 .short 1060 24794 .short 473 24795 .byte 2 24796 .byte 5 24797 .byte 40 24798 .byte 32 24799 .byte 4 24800 .byte 1 24801 .byte 3 24802 .byte 0 24803 .byte 0 24804 .byte 0 24805 .space 4 24806 .byte 6 24807 .byte -83 24808 .byte -34 24809 .byte 20 24810 .byte -85 24811 .byte 66 24812 .byte 74 24813 .byte 2 24814 .byte 1 24815 .byte 32 24816 .short 256 24817 .byte 2 24818 .byte 2 24819 .short 1056 24820 .short 473 24821 .byte 2 24822 .byte 6 24823 .byte 40 24824 .byte 32 24825 .byte 3 24826 .byte 1 24827 .byte 3 24828 .byte 0 24829 .byte 0 24830 .byte 0 24831 .space 4 24832 .byte 6 24833 .byte -83 24834 .byte 58 24835 .byte 20 24836 .byte -85 24837 .byte 66 24838 .byte 74 24839 .byte 2 24840 .byte 1 24841 .byte 32 24842 .short 256 24843 .byte 2 24844 .byte 2 24845 .short 2092 24846 .short 473 24847 .byte 2 24848 .byte 5 24849 .byte 40 24850 .byte 32 24851 .byte 3 24852 .byte 1 24853 .byte 3 24854 .byte 0 24855 .byte 0 24856 .byte 0 24857 .space 4 24858 .byte 6 24859 .byte -83 24860 .byte -43 24861 .byte -108 24862 .byte -102 24863 .byte 116 24864 .byte 66 24865 .byte 2 24866 .byte 1 24867 .byte 16 24868 .short 256 24869 .byte 2 24870 .byte 1 24871 .short 1024 24872 .short 273 24873 .byte 1 24874 .byte 0 24875 .byte 24 24876 .byte 32 24877 .byte 4 24878 .byte 1 24879 .byte 3 24880 .byte 0 24881 .byte 0 24882 .byte 0 24883 .space 4 24884 .byte 6 24885 .byte -119 24886 .byte 100 24887 .byte 68 24888 .byte 75 24889 .byte -87 24890 .byte 0 24891 .byte 7 24892 .byte 1 24893 .byte 16 24894 .short 256 24895 .byte 2 24896 .byte 2 24897 .short 2048 24898 .short 479 24899 .byte 3 24900 .byte 17 24901 .byte 40 24902 .byte 32 24903 .byte 1 24904 .byte 0 24905 .byte 1 24906 .byte 0 24907 .byte 0 24908 .byte 0 24909 .space 4 24910 .byte 6 24911 .byte -119 24912 .byte -120 24913 .byte 36 24914 .byte 75 24915 .byte -87 24916 .byte -124 24917 .byte 7 24918 .byte 1 24919 .byte 16 24920 .short 256 24921 .byte 2 24922 .byte 2 24923 .short 2048 24924 .short 479 24925 .byte 3 24926 .byte 17 24927 .byte 40 24928 .byte 32 24929 .byte 1 24930 .byte 0 24931 .byte 1 24932 .byte 0 24933 .byte 0 24934 .byte 0 24935 .space 4 24936 .byte 6 24937 .byte -119 24938 .byte -120 24939 .byte 36 24940 .byte 75 24941 .byte -87 24942 .byte 0 24943 .byte 7 24944 .byte 1 24945 .byte 16 24946 .short 256 24947 .byte 2 24948 .byte 2 24949 .short 2048 24950 .short 279 24951 .byte 1 24952 .byte 0 24953 .byte 24 24954 .byte 32 24955 .byte 1 24956 .byte 0 24957 .byte 1 24958 .byte 0 24959 .byte 0 24960 .byte 0 24961 .space 4 24962 .byte 6 24963 .byte -119 24964 .byte 104 24965 .byte 36 24966 .byte 74 24967 .byte -87 24968 .byte 0 24969 .byte 7 24970 .byte 1 24971 .byte 8 24972 .short 256 24973 .byte 2 24974 .byte 2 24975 .short 2048 24976 .short 279 24977 .byte 1 24978 .byte 0 24979 .byte 24 24980 .byte 32 24981 .byte 1 24982 .byte 0 24983 .byte 1 24984 .byte 0 24985 .byte 0 24986 .byte 0 24987 .space 4 24988 .byte 6 24989 .byte -119 24990 .byte 104 24991 .byte 4 24992 .byte 74 24993 .byte -87 24994 .byte 0 24995 .byte 7 24996 .byte 1 24997 .byte 8 24998 .short 256 24999 .byte 2 25000 .byte 2 25001 .short 2048 25002 .short 279 25003 .byte 1 25004 .byte 0 25005 .byte 24 25006 .byte 32 25007 .byte 1 25008 .byte 0 25009 .byte 1 25010 .byte 0 25011 .byte 0 25012 .byte 0 25013 .space 4 25014 .byte 6 25015 .byte -119 25016 .byte -41 25017 .byte -108 25018 .byte 62 25019 .byte -124 25020 .byte 0 25021 .byte 7 25022 .byte 1 25023 .byte 8 25024 .short 256 25025 .byte 2 25026 .byte 2 25027 .short 2048 25028 .short 279 25029 .byte 1 25030 .byte 0 25031 .byte 24 25032 .byte 32 25033 .byte 1 25034 .byte 0 25035 .byte 1 25036 .byte 0 25037 .byte 0 25038 .byte 0 25039 .space 4 25040 .byte 6 25041 .byte -119 25042 .byte 104 25043 .byte 4 25044 .byte 70 25045 .byte -87 25046 .byte 0 25047 .byte 7 25048 .byte 1 25049 .byte 8 25050 .short 256 25051 .byte 2 25052 .byte 2 25053 .short 2048 25054 .short 279 25055 .byte 1 25056 .byte 0 25057 .byte 24 25058 .byte 32 25059 .byte 1 25060 .byte 0 25061 .byte 1 25062 .byte 0 25063 .byte 0 25064 .byte 0 25065 .space 4 25066 .byte 5 25067 .byte -119 25068 .byte 100 25069 .byte 100 25070 .byte 60 25071 .byte -95 25072 .byte 0 25073 .byte 7 25074 .byte 1 25075 .byte 32 25076 .short 512 25077 .byte 2 25078 .byte 1 25079 .short 1024 25080 .short 455 25081 .byte 3 25082 .byte 17 25083 .byte 40 25084 .byte 32 25085 .byte 1 25086 .byte 0 25087 .byte 1 25088 .byte 0 25089 .byte 0 25090 .byte 0 25091 .space 4 25092 .byte 6 25093 .byte -104 25094 .byte -41 25095 .byte -124 25096 .byte -109 25097 .byte 114 25098 .byte 87 25099 .byte 1 25100 .byte 1 25101 .byte 32 25102 .short 256 25103 .byte 2 25104 .byte 1 25105 .short 1060 25106 .short 1473 25107 .byte 2 25108 .byte 33 25109 .byte 40 25110 .byte 32 25111 .byte 2 25112 .byte 1 25113 .byte 1 25114 .byte 0 25115 .byte 0 25116 .byte 0 25117 .space 4 25118 .byte 6 25119 .byte -104 25120 .byte -34 25121 .byte -124 25122 .byte -109 25123 .byte 114 25124 .byte 87 25125 .byte 1 25126 .byte 1 25127 .byte 32 25128 .short 256 25129 .byte 2 25130 .byte 1 25131 .short 2092 25132 .short 1473 25133 .byte 2 25134 .byte 33 25135 .byte 40 25136 .byte 32 25137 .byte 2 25138 .byte 1 25139 .byte 1 25140 .byte 0 25141 .byte 0 25142 .byte 0 25143 .space 4 25144 .byte 6 25145 .byte -104 25146 .byte 58 25147 .byte -123 25148 .byte -109 25149 .byte 118 25150 .byte 87 25151 .byte 1 25152 .byte 2 25153 .byte 32 25154 .short 256 25155 .byte 2 25156 .byte 1 25157 .short 2092 25158 .short 1505 25159 .byte 2 25160 .byte 33 25161 .byte 40 25162 .byte 32 25163 .byte 2 25164 .byte 1 25165 .byte 1 25166 .byte 0 25167 .byte 0 25168 .byte 0 25169 .space 4 25170 .byte 6 25171 .byte -104 25172 .byte -43 25173 .byte -124 25174 .byte 50 25175 .byte 114 25176 .byte 86 25177 .byte 1 25178 .byte 1 25179 .byte 16 25180 .short 128 25181 .byte 2 25182 .byte 1 25183 .short 2056 25184 .short 1473 25185 .byte 2 25186 .byte 33 25187 .byte 40 25188 .byte 32 25189 .byte 2 25190 .byte 1 25191 .byte 1 25192 .byte 0 25193 .byte 0 25194 .byte 0 25195 .space 4 25196 .byte 6 25197 .byte -104 25198 .byte -41 25199 .byte -108 25200 .byte 50 25201 .byte 118 25202 .byte 86 25203 .byte 1 25204 .byte 1 25205 .byte 16 25206 .short 128 25207 .byte 2 25208 .byte 2 25209 .short 2058 25210 .short 1489 25211 .byte 2 25212 .byte 33 25213 .byte 40 25214 .byte 32 25215 .byte 2 25216 .byte 1 25217 .byte 1 25218 .byte 0 25219 .byte 0 25220 .byte 0 25221 .space 4 25222 .byte 6 25223 .byte -104 25224 .byte -34 25225 .byte -108 25226 .byte -126 25227 .byte 118 25228 .byte 86 25229 .byte 1 25230 .byte 1 25231 .byte 16 25232 .short 256 25233 .byte 2 25234 .byte 2 25235 .short 2062 25236 .short 1489 25237 .byte 1 25238 .byte 33 25239 .byte 40 25240 .byte 32 25241 .byte 2 25242 .byte 1 25243 .byte 1 25244 .byte 0 25245 .byte 0 25246 .byte 0 25247 .space 4 25248 .byte 6 25249 .byte -104 25250 .byte -34 25251 .byte -108 25252 .byte -109 25253 .byte 118 25254 .byte 80 25255 .byte 1 25256 .byte 1 25257 .byte 32 25258 .short 256 25259 .byte 2 25260 .byte 2 25261 .short 1066 25262 .short 1497 25263 .byte 2 25264 .byte 34 25265 .byte 40 25266 .byte 32 25267 .byte 3 25268 .byte 1 25269 .byte 1 25270 .byte 0 25271 .byte 0 25272 .byte 0 25273 .space 4 25274 .byte 6 25275 .byte -104 25276 .byte 58 25277 .byte -107 25278 .byte -109 25279 .byte 122 25280 .byte 80 25281 .byte 1 25282 .byte 2 25283 .byte 32 25284 .short 256 25285 .byte 2 25286 .byte 2 25287 .short 1066 25288 .short 1497 25289 .byte 2 25290 .byte 34 25291 .byte 40 25292 .byte 32 25293 .byte 3 25294 .byte 1 25295 .byte 1 25296 .byte 0 25297 .byte 0 25298 .byte 0 25299 .space 4 25300 .byte 6 25301 .byte -104 25302 .byte -41 25303 .byte -108 25304 .byte 50 25305 .byte 118 25306 .byte 85 25307 .byte 1 25308 .byte 1 25309 .byte 16 25310 .short 128 25311 .byte 2 25312 .byte 2 25313 .short 2050 25314 .short 401 25315 .byte 2 25316 .byte 0 25317 .byte 24 25318 .byte 32 25319 .byte 1 25320 .byte 1 25321 .byte 1 25322 .byte 0 25323 .byte 0 25324 .byte 0 25325 .space 4 25326 .byte 6 25327 .byte -104 25328 .byte -34 25329 .byte -108 25330 .byte -109 25331 .byte 118 25332 .byte 87 25333 .byte 1 25334 .byte 1 25335 .byte 32 25336 .short 256 25337 .byte 2 25338 .byte 2 25339 .short 1058 25340 .short 1497 25341 .byte 2 25342 .byte 33 25343 .byte 40 25344 .byte 32 25345 .byte 3 25346 .byte 1 25347 .byte 1 25348 .byte 0 25349 .byte 0 25350 .byte 0 25351 .space 4 25352 .byte 6 25353 .byte -104 25354 .byte -41 25355 .byte -124 25356 .byte -109 25357 .byte 114 25358 .byte 80 25359 .byte 1 25360 .byte 1 25361 .byte 32 25362 .short 256 25363 .byte 2 25364 .byte 1 25365 .short 1060 25366 .short 1473 25367 .byte 2 25368 .byte 34 25369 .byte 40 25370 .byte 32 25371 .byte 3 25372 .byte 1 25373 .byte 1 25374 .byte 0 25375 .byte 0 25376 .byte 0 25377 .space 4 25378 .byte 6 25379 .byte -104 25380 .byte -34 25381 .byte -108 25382 .byte -109 25383 .byte 118 25384 .byte 81 25385 .byte 1 25386 .byte 1 25387 .byte 32 25388 .short 256 25389 .byte 2 25390 .byte 2 25391 .short 1074 25392 .short 1497 25393 .byte 2 25394 .byte 35 25395 .byte 40 25396 .byte 32 25397 .byte 3 25398 .byte 1 25399 .byte 4 25400 .byte 0 25401 .byte 0 25402 .byte 0 25403 .space 4 25404 .byte 6 25405 .byte -104 25406 .byte 58 25407 .byte -108 25408 .byte -109 25409 .byte 118 25410 .byte 81 25411 .byte 1 25412 .byte 1 25413 .byte 32 25414 .short 256 25415 .byte 2 25416 .byte 2 25417 .short 2106 25418 .short 1497 25419 .byte 2 25420 .byte 35 25421 .byte 40 25422 .byte 32 25423 .byte 3 25424 .byte 1 25425 .byte 4 25426 .byte 0 25427 .byte 0 25428 .byte 0 25429 .space 4 25430 .byte 6 25431 .byte -104 25432 .byte -41 25433 .byte -124 25434 .byte -109 25435 .byte 114 25436 .byte 81 25437 .byte 1 25438 .byte 1 25439 .byte 32 25440 .short 256 25441 .byte 2 25442 .byte 1 25443 .short 1056 25444 .short 1497 25445 .byte 2 25446 .byte 35 25447 .byte 40 25448 .byte 32 25449 .byte 3 25450 .byte 1 25451 .byte 4 25452 .byte 0 25453 .byte 0 25454 .byte 0 25455 .space 4 25456 .byte 6 25457 .byte 69 25458 .byte -34 25459 .byte -108 25460 .byte -109 25461 .byte 118 25462 .byte 87 25463 .byte 8 25464 .byte 1 25465 .byte 32 25466 .short 256 25467 .byte 2 25468 .byte 2 25469 .short 1058 25470 .short 1497 25471 .byte 2 25472 .byte 66 25473 .byte 40 25474 .byte 32 25475 .byte 3 25476 .byte 1 25477 .byte 1 25478 .byte 0 25479 .byte 0 25480 .byte 0 25481 .space 4 25482 .byte 6 25483 .byte 69 25484 .byte -41 25485 .byte -124 25486 .byte -109 25487 .byte 114 25488 .byte 87 25489 .byte 8 25490 .byte 1 25491 .byte 32 25492 .short 256 25493 .byte 2 25494 .byte 1 25495 .short 1060 25496 .short 1473 25497 .byte 2 25498 .byte 66 25499 .byte 40 25500 .byte 32 25501 .byte 2 25502 .byte 1 25503 .byte 1 25504 .byte 0 25505 .byte 0 25506 .byte 0 25507 .space 4 25508 .byte 6 25509 .byte 69 25510 .byte -34 25511 .byte -92 25512 .byte -126 25513 .byte 118 25514 .byte 86 25515 .byte 8 25516 .byte 1 25517 .byte 16 25518 .short 256 25519 .byte 2 25520 .byte 2 25521 .short 2082 25522 .short 473 25523 .byte 1 25524 .byte 65 25525 .byte 40 25526 .byte 32 25527 .byte 3 25528 .byte 1 25529 .byte 1 25530 .byte 0 25531 .byte 0 25532 .byte 0 25533 .space 4 25534 .byte 6 25535 .byte 69 25536 .byte -34 25537 .byte -108 25538 .byte -109 25539 .byte 118 25540 .byte 80 25541 .byte 8 25542 .byte 1 25543 .byte 32 25544 .short 256 25545 .byte 2 25546 .byte 2 25547 .short 1066 25548 .short 1497 25549 .byte 2 25550 .byte 67 25551 .byte 40 25552 .byte 32 25553 .byte 3 25554 .byte 1 25555 .byte 1 25556 .byte 0 25557 .byte 0 25558 .byte 0 25559 .space 4 25560 .byte 6 25561 .byte 69 25562 .byte -41 25563 .byte -124 25564 .byte -109 25565 .byte 114 25566 .byte 80 25567 .byte 8 25568 .byte 1 25569 .byte 32 25570 .short 256 25571 .byte 2 25572 .byte 1 25573 .short 1060 25574 .short 1473 25575 .byte 2 25576 .byte 67 25577 .byte 40 25578 .byte 32 25579 .byte 3 25580 .byte 1 25581 .byte 1 25582 .byte 0 25583 .byte 0 25584 .byte 0 25585 .space 4 25586 .byte 6 25587 .byte 69 25588 .byte -34 25589 .byte -92 25590 .byte -126 25591 .byte 118 25592 .byte -41 25593 .byte 8 25594 .byte 1 25595 .byte 16 25596 .short 256 25597 .byte 2 25598 .byte 2 25599 .short 2090 25600 .short 1241 25601 .byte 1 25602 .byte 66 25603 .byte 40 25604 .byte 32 25605 .byte 3 25606 .byte 1 25607 .byte 1 25608 .byte 0 25609 .byte 0 25610 .byte 0 25611 .space 4 25612 .byte 6 25613 .byte 69 25614 .byte -34 25615 .byte -124 25616 .byte -109 25617 .byte 114 25618 .byte 87 25619 .byte 8 25620 .byte 1 25621 .byte 32 25622 .short 256 25623 .byte 2 25624 .byte 1 25625 .short 2092 25626 .short 1473 25627 .byte 2 25628 .byte 66 25629 .byte 40 25630 .byte 32 25631 .byte 3 25632 .byte 1 25633 .byte 1 25634 .byte 0 25635 .byte 0 25636 .byte 0 25637 .space 4 25638 .byte 6 25639 .byte 69 25640 .byte 58 25641 .byte -108 25642 .byte -109 25643 .byte 118 25644 .byte 81 25645 .byte 8 25646 .byte 1 25647 .byte 32 25648 .short 256 25649 .byte 2 25650 .byte 2 25651 .short 2106 25652 .short 473 25653 .byte 2 25654 .byte 68 25655 .byte 40 25656 .byte 32 25657 .byte 3 25658 .byte 1 25659 .byte 4 25660 .byte 0 25661 .byte 0 25662 .byte 0 25663 .space 4 25664 .byte 6 25665 .byte 69 25666 .byte -34 25667 .byte -108 25668 .byte -109 25669 .byte 118 25670 .byte 81 25671 .byte 8 25672 .byte 1 25673 .byte 32 25674 .short 256 25675 .byte 2 25676 .byte 2 25677 .short 1074 25678 .short 473 25679 .byte 2 25680 .byte 68 25681 .byte 40 25682 .byte 32 25683 .byte 3 25684 .byte 1 25685 .byte 4 25686 .byte 0 25687 .byte 0 25688 .byte 0 25689 .space 4 25690 .byte 6 25691 .byte 69 25692 .byte 58 25693 .byte -92 25694 .byte -109 25695 .byte 122 25696 .byte 80 25697 .byte 8 25698 .byte 1 25699 .byte 32 25700 .short 256 25701 .byte 2 25702 .byte 2 25703 .short 2138 25704 .short 1497 25705 .byte 2 25706 .byte 0 25707 .byte 40 25708 .byte 32 25709 .byte 3 25710 .byte 1 25711 .byte 1 25712 .byte 0 25713 .byte 0 25714 .byte 0 25715 .space 4 25716 .byte 6 25717 .byte 69 25718 .byte -34 25719 .byte -108 25720 .byte -126 25721 .byte 118 25722 .byte 86 25723 .byte 8 25724 .byte 1 25725 .byte 16 25726 .short 256 25727 .byte 2 25728 .byte 2 25729 .short 2062 25730 .short 473 25731 .byte 1 25732 .byte 0 25733 .byte 40 25734 .byte 32 25735 .byte 3 25736 .byte 1 25737 .byte 1 25738 .byte 0 25739 .byte 0 25740 .byte 0 25741 .space 4 25742 .byte 6 25743 .byte 69 25744 .byte -34 25745 .byte -108 25746 .byte -109 25747 .byte 118 25748 .byte -41 25749 .byte 8 25750 .byte 1 25751 .byte 32 25752 .short 256 25753 .byte 2 25754 .byte 2 25755 .short 1058 25756 .short 1497 25757 .byte 2 25758 .byte 66 25759 .byte 40 25760 .byte 32 25761 .byte 3 25762 .byte 1 25763 .byte 1 25764 .byte 0 25765 .byte 0 25766 .byte 0 25767 .space 4 25768 .byte 6 25769 .byte -20 25770 .byte -41 25771 .byte -108 25772 .byte 126 25773 .byte 100 25774 .byte 68 25775 .byte 0 25776 .byte 1 25777 .byte 16 25778 .short 128 25779 .byte 2 25780 .byte 2 25781 .short 2048 25782 .short 473 25783 .byte 2 25784 .byte 49 25785 .byte 60 25786 .byte 36 25787 .byte 3 25788 .byte 0 25789 .byte 3 25790 .byte 0 25791 .byte 0 25792 .byte 0 25793 .space 4 25794 .byte 6 25795 .byte -20 25796 .byte -34 25797 .byte -43 25798 .byte 126 25799 .byte 104 25800 .byte 68 25801 .byte 0 25802 .byte 2 25803 .byte 16 25804 .short 128 25805 .byte 2 25806 .byte 2 25807 .short 2048 25808 .short 505 25809 .byte 2 25810 .byte 49 25811 .byte 60 25812 .byte 36 25813 .byte 3 25814 .byte 0 25815 .byte 3 25816 .byte 0 25817 .byte 0 25818 .byte 0 25819 .space 4 25820 .byte 6 25821 .byte -20 25822 .byte -41 25823 .byte -108 25824 .byte 122 25825 .byte 84 25826 .byte 67 25827 .byte 0 25828 .byte 1 25829 .byte 16 25830 .short 128 25831 .byte 2 25832 .byte 2 25833 .short 2076 25834 .short 409 25835 .byte 2 25836 .byte 0 25837 .byte 40 25838 .byte 36 25839 .byte 3 25840 .byte 1 25841 .byte 3 25842 .byte 0 25843 .byte 0 25844 .byte 0 25845 .space 4 25846 .byte 6 25847 .byte -20 25848 .byte -34 25849 .byte -43 25850 .byte 122 25851 .byte 88 25852 .byte 67 25853 .byte 0 25854 .byte 2 25855 .byte 16 25856 .short 128 25857 .byte 2 25858 .byte 2 25859 .short 2076 25860 .short 441 25861 .byte 2 25862 .byte 0 25863 .byte 40 25864 .byte 36 25865 .byte 3 25866 .byte 1 25867 .byte 3 25868 .byte 0 25869 .byte 0 25870 .byte 0 25871 .space 4 25872 .byte 6 25873 .byte -20 25874 .byte -43 25875 .byte -108 25876 .byte 118 25877 .byte 84 25878 .byte 67 25879 .byte 0 25880 .byte 1 25881 .byte 16 25882 .short 128 25883 .byte 2 25884 .byte 2 25885 .short 1038 25886 .short 281 25887 .byte 2 25888 .byte 0 25889 .byte 24 25890 .byte 36 25891 .byte 3 25892 .byte 1 25893 .byte 3 25894 .byte 0 25895 .byte 0 25896 .byte 0 25897 .space 4 25898 .byte 6 25899 .byte -20 25900 .byte -41 25901 .byte 20 25902 .byte 118 25903 .byte 84 25904 .byte -62 25905 .byte 0 25906 .byte 1 25907 .byte 16 25908 .short 128 25909 .byte 2 25910 .byte 2 25911 .short 2076 25912 .short 1169 25913 .byte 2 25914 .byte 0 25915 .byte 24 25916 .byte 40 25917 .byte 3 25918 .byte 1 25919 .byte 3 25920 .byte 0 25921 .byte 0 25922 .byte 0 25923 .space 4 25924 .section .data.NandOptPara,"aw",%progbits 25925 .set .LANCHOR143,. + 0 25926 .type NandOptPara, %object 25927 .size NandOptPara, 128 25928NandOptPara: 25929 .byte 1 25930 .byte 0 25931 .byte 49 25932 .byte 63 25933 .byte 0 25934 .byte 49 25935 .byte -128 25936 .byte 21 25937 .byte 0 25938 .byte 50 25939 .byte 17 25940 .byte -128 25941 .byte 112 25942 .byte 120 25943 .byte 120 25944 .byte 3 25945 .byte 1 25946 .byte 0 25947 .space 14 25948 .byte 2 25949 .byte 0 25950 .byte 49 25951 .byte 63 25952 .byte 0 25953 .byte 49 25954 .byte -128 25955 .byte 21 25956 .byte 0 25957 .byte 0 25958 .byte 17 25959 .byte -127 25960 .byte 112 25961 .byte -15 25962 .byte -14 25963 .byte 0 25964 .byte 0 25965 .byte 0 25966 .space 14 25967 .byte 3 25968 .byte 0 25969 .byte 49 25970 .byte 63 25971 .byte 0 25972 .byte 49 25973 .byte -128 25974 .byte 21 25975 .byte 96 25976 .byte 96 25977 .byte 17 25978 .byte -127 25979 .byte 112 25980 .byte -15 25981 .byte -14 25982 .byte 0 25983 .byte 0 25984 .byte 0 25985 .space 14 25986 .byte 4 25987 .byte 0 25988 .byte 49 25989 .byte 63 25990 .byte 0 25991 .byte 49 25992 .byte -128 25993 .byte 21 25994 .byte 96 25995 .byte 96 25996 .byte 17 25997 .byte -127 25998 .byte 112 25999 .byte 112 26000 .byte 112 26001 .byte 0 26002 .byte 0 26003 .byte 0 26004 .space 14 26005 .section .data.SamsungRefValue,"aw",%progbits 26006 .set .LANCHOR14,. + 0 26007 .type SamsungRefValue, %object 26008 .size SamsungRefValue, 64 26009SamsungRefValue: 26010 .byte -89 26011 .byte -92 26012 .byte -91 26013 .byte -90 26014 .byte 0 26015 .byte 0 26016 .byte 0 26017 .byte 0 26018 .byte 5 26019 .byte 10 26020 .byte 0 26021 .byte 0 26022 .byte 40 26023 .byte 0 26024 .byte -20 26025 .byte -40 26026 .byte -19 26027 .byte -11 26028 .byte -19 26029 .byte -26 26030 .byte 10 26031 .byte 15 26032 .byte 5 26033 .byte 0 26034 .byte 15 26035 .byte 10 26036 .byte -5 26037 .byte -20 26038 .byte -24 26039 .byte -17 26040 .byte -24 26041 .byte -36 26042 .byte -15 26043 .byte -5 26044 .byte -2 26045 .byte -16 26046 .byte 10 26047 .byte 0 26048 .byte -5 26049 .byte -20 26050 .byte -48 26051 .byte -30 26052 .byte -48 26053 .byte -62 26054 .byte 20 26055 .byte 15 26056 .byte -5 26057 .byte -20 26058 .byte -24 26059 .byte -5 26060 .byte -24 26061 .byte -36 26062 .byte 30 26063 .byte 20 26064 .byte -5 26065 .byte -20 26066 .byte -5 26067 .byte -1 26068 .byte -5 26069 .byte -8 26070 .byte 7 26071 .byte 12 26072 .byte 2 26073 .byte 0 26074 .section .data.Toshiba15RefValue,"aw",%progbits 26075 .set .LANCHOR11,. + 0 26076 .type Toshiba15RefValue, %object 26077 .size Toshiba15RefValue, 95 26078Toshiba15RefValue: 26079 .byte 4 26080 .byte 5 26081 .byte 6 26082 .byte 7 26083 .byte 13 26084 .byte 0 26085 .byte 0 26086 .byte 0 26087 .byte 0 26088 .byte 0 26089 .byte 0 26090 .byte 0 26091 .byte 0 26092 .byte 0 26093 .byte 0 26094 .byte 2 26095 .byte 4 26096 .byte 2 26097 .byte 0 26098 .byte 0 26099 .byte 8 26100 .byte 8 26101 .byte 0 26102 .byte 0 26103 .byte 0 26104 .byte 124 26105 .byte 0 26106 .byte 124 26107 .byte 124 26108 .byte 0 26109 .byte 122 26110 .byte 0 26111 .byte 122 26112 .byte 122 26113 .byte 0 26114 .byte 11 26115 .byte 126 26116 .byte 118 26117 .byte 116 26118 .byte 0 26119 .byte 120 26120 .byte 2 26121 .byte 120 26122 .byte 122 26123 .byte 0 26124 .byte 126 26125 .byte 4 26126 .byte 126 26127 .byte 122 26128 .byte 0 26129 .byte 16 26130 .byte 118 26131 .byte 114 26132 .byte 112 26133 .byte 0 26134 .byte 118 26135 .byte 4 26136 .byte 118 26137 .byte 120 26138 .byte 0 26139 .byte 4 26140 .byte 4 26141 .byte 4 26142 .byte 118 26143 .byte 0 26144 .byte 2 26145 .byte 0 26146 .byte 126 26147 .byte 124 26148 .byte 0 26149 .byte 6 26150 .byte 10 26151 .byte 6 26152 .byte 2 26153 .byte 0 26154 .byte 116 26155 .byte 124 26156 .byte 116 26157 .byte 118 26158 .byte 0 26159 .byte 4 26160 .byte 4 26161 .byte 124 26162 .byte 126 26163 .byte 0 26164 .byte 0 26165 .byte 124 26166 .byte 120 26167 .byte 120 26168 .byte 0 26169 .byte 124 26170 .byte 118 26171 .byte 116 26172 .byte 114 26173 .byte 0 26174 .section .data.ToshibaA19RefValue,"aw",%progbits 26175 .set .LANCHOR9,. + 0 26176 .type ToshibaA19RefValue, %object 26177 .size ToshibaA19RefValue, 45 26178ToshibaA19RefValue: 26179 .byte 4 26180 .byte 5 26181 .byte 6 26182 .byte 7 26183 .byte 13 26184 .byte 0 26185 .byte 0 26186 .byte 0 26187 .byte 0 26188 .byte 0 26189 .byte 4 26190 .byte 4 26191 .byte 124 26192 .byte 126 26193 .byte 0 26194 .byte 0 26195 .byte 124 26196 .byte 120 26197 .byte 120 26198 .byte 0 26199 .byte 124 26200 .byte 118 26201 .byte 116 26202 .byte 114 26203 .byte 0 26204 .byte 8 26205 .byte 8 26206 .byte 0 26207 .byte 0 26208 .byte 0 26209 .byte 11 26210 .byte 126 26211 .byte 118 26212 .byte 116 26213 .byte 0 26214 .byte 16 26215 .byte 118 26216 .byte 114 26217 .byte 112 26218 .byte 0 26219 .byte 2 26220 .byte 0 26221 .byte 126 26222 .byte 124 26223 .byte 0 26224 .section .data.ToshibaRefValue,"aw",%progbits 26225 .set .LANCHOR12,. + 0 26226 .type ToshibaRefValue, %object 26227 .size ToshibaRefValue, 8 26228ToshibaRefValue: 26229 .byte 0 26230 .byte 4 26231 .byte 124 26232 .byte 120 26233 .byte 116 26234 .byte 8 26235 .byte 12 26236 .byte 112 26237 .section .data.ftl_gc_temp_block_bops_scan_page_addr,"aw",%progbits 26238 .align 1 26239 .set .LANCHOR226,. + 0 26240 .type ftl_gc_temp_block_bops_scan_page_addr, %object 26241 .size ftl_gc_temp_block_bops_scan_page_addr, 2 26242ftl_gc_temp_block_bops_scan_page_addr: 26243 .short -1 26244 .section .data.gFtlInitStatus,"aw",%progbits 26245 .align 2 26246 .set .LANCHOR231,. + 0 26247 .type gFtlInitStatus, %object 26248 .size gFtlInitStatus, 4 26249gFtlInitStatus: 26250 .word -1 26251 .section .data.gNandParaInfo,"aw",%progbits 26252 .align 1 26253 .set .LANCHOR31,. + 0 26254 .type gNandParaInfo, %object 26255 .size gNandParaInfo, 32 26256gNandParaInfo: 26257 .byte 0 26258 .byte 0 26259 .space 5 26260 .byte 0 26261 .byte 1 26262 .byte 8 26263 .short 128 26264 .byte 2 26265 .byte 1 26266 .short 2048 26267 .short 0 26268 .byte 1 26269 .byte 0 26270 .byte 24 26271 .byte 32 26272 .byte 1 26273 .byte 0 26274 .byte 1 26275 .byte 0 26276 .byte 0 26277 .byte 0 26278 .space 4 26279 .section .data.gSlcNandParaInfo,"aw",%progbits 26280 .align 1 26281 .set .LANCHOR200,. + 0 26282 .type gSlcNandParaInfo, %object 26283 .size gSlcNandParaInfo, 32 26284gSlcNandParaInfo: 26285 .byte 2 26286 .byte -104 26287 .byte -15 26288 .byte 0 26289 .byte 0 26290 .byte 0 26291 .byte 0 26292 .byte 1 26293 .byte 1 26294 .byte 4 26295 .short 64 26296 .byte 1 26297 .byte 1 26298 .short 1024 26299 .short 256 26300 .byte 0 26301 .byte 0 26302 .byte 16 26303 .byte 40 26304 .byte 1 26305 .byte 0 26306 .byte 1 26307 .byte 0 26308 .byte 0 26309 .byte 0 26310 .space 4 26311 .section .data.power_up_flag,"aw",%progbits 26312 .align 2 26313 .type power_up_flag, %object 26314 .size power_up_flag, 4 26315power_up_flag: 26316 .word 1 26317 .section .data.random_seed,"aw",%progbits 26318 .align 1 26319 .set .LANCHOR4,. + 0 26320 .type random_seed, %object 26321 .size random_seed, 256 26322random_seed: 26323 .short 22378 26324 .short 1512 26325 .short 25245 26326 .short 17827 26327 .short 25756 26328 .short 19440 26329 .short 9026 26330 .short 10030 26331 .short 29528 26332 .short 20467 26333 .short 29676 26334 .short 24432 26335 .short 31328 26336 .short 6872 26337 .short 13426 26338 .short 13842 26339 .short 8783 26340 .short 1108 26341 .short 782 26342 .short 28837 26343 .short 30729 26344 .short 9505 26345 .short 18676 26346 .short 23085 26347 .short 18730 26348 .short 1085 26349 .short 32609 26350 .short 14697 26351 .short 20858 26352 .short 15170 26353 .short 30365 26354 .short 1607 26355 .short 32298 26356 .short 4995 26357 .short 18905 26358 .short 1976 26359 .short 9592 26360 .short 20204 26361 .short 17443 26362 .short 13615 26363 .short 23330 26364 .short 29369 26365 .short 13947 26366 .short 9398 26367 .short 32398 26368 .short 8984 26369 .short 27600 26370 .short 21785 26371 .short 6019 26372 .short 6311 26373 .short 31598 26374 .short 30210 26375 .short 19327 26376 .short 13896 26377 .short 11347 26378 .short 27545 26379 .short 3107 26380 .short 26575 26381 .short 32270 26382 .short 19852 26383 .short 20601 26384 .short 8349 26385 .short 9290 26386 .short 29819 26387 .short 13579 26388 .short 3661 26389 .short 28676 26390 .short 27331 26391 .short 32574 26392 .short 8693 26393 .short 31253 26394 .short 9081 26395 .short 5399 26396 .short 6842 26397 .short 20087 26398 .short 5537 26399 .short 1274 26400 .short 11617 26401 .short 9530 26402 .short 4866 26403 .short 8035 26404 .short 23219 26405 .short 1178 26406 .short 23272 26407 .short 7383 26408 .short 18944 26409 .short 12488 26410 .short 12871 26411 .short 29340 26412 .short 20532 26413 .short 11022 26414 .short 22514 26415 .short 228 26416 .short 22363 26417 .short 24978 26418 .short 14584 26419 .short 12138 26420 .short 3092 26421 .short 17916 26422 .short 16863 26423 .short 14554 26424 .short 31457 26425 .short 29474 26426 .short 25311 26427 .short 24121 26428 .short 3684 26429 .short 28037 26430 .short 22865 26431 .short 22839 26432 .short 25217 26433 .short 13217 26434 .short 27186 26435 .short 14938 26436 .short 11180 26437 .short 29754 26438 .short 24180 26439 .short 15150 26440 .short 32455 26441 .short 20434 26442 .short 23848 26443 .short 29983 26444 .short 16120 26445 .short 14769 26446 .short 20041 26447 .short 29803 26448 .short 28406 26449 .short 17598 26450 .short 28087 26451 .section .data.refValueDefault,"aw",%progbits 26452 .set .LANCHOR196,. + 0 26453 .type refValueDefault, %object 26454 .size refValueDefault, 28 26455refValueDefault: 26456 .byte 0 26457 .byte 0 26458 .byte 0 26459 .byte 0 26460 .byte 0 26461 .byte 6 26462 .byte 10 26463 .byte 6 26464 .byte 0 26465 .byte -3 26466 .byte -7 26467 .byte -8 26468 .byte 0 26469 .byte -6 26470 .byte -13 26471 .byte -15 26472 .byte 0 26473 .byte -11 26474 .byte -20 26475 .byte -23 26476 .byte 0 26477 .byte 0 26478 .byte -26 26479 .byte -30 26480 .byte 0 26481 .byte 0 26482 .byte -32 26483 .byte -37 26484 .section .rodata.FlashDdrTunningRead.str1.1,"aMS",%progbits,1 26485.LC9: 26486 .ascii "sdr read ok %x ecc=%d\012\000" 26487.LC10: 26488 .ascii "sync para %d\012\000" 26489.LC11: 26490 .ascii "TOG mode Read error %x %x\012\000" 26491 .section .rodata.FlashEraseSLc2KBlocks.str1.1,"aMS",%progbits,1 26492.LC1: 26493 .ascii "FlashEraseBlocks pageAddr error %x\012\000" 26494 .section .rodata.FlashInit.str1.1,"aMS",%progbits,1 26495.LC23: 26496 .ascii "No.%d FLASH ID:%x %x %x %x %x %x\012\000" 26497.LC24: 26498 .ascii "FlashLoadPhyInfo fail %x!!\012\000" 26499 .section .rodata.FlashProgSlc2KPages.str1.1,"aMS",%progbits,1 26500.LC29: 26501 .ascii "prog error: = %x\012\000" 26502.LC30: 26503 .ascii "prog read error: = %x\012\000" 26504.LC31: 26505 .ascii "prog read s error: = %x %x %x\012\000" 26506.LC32: 26507 .ascii "prog read d error: = %x %x %x\012\000" 26508 .section .rodata.FlashReadFacBbtData.str1.1,"aMS",%progbits,1 26509.LC53: 26510 .ascii "BBT:\000" 26511 .section .rodata.FlashReadIdbDataRaw.str1.1,"aMS",%progbits,1 26512.LC14: 26513 .ascii "ECC:%d\012\000" 26514 .section .rodata.FlashReadPage.str1.1,"aMS",%progbits,1 26515.LC12: 26516 .ascii "read retry status %x %x %x\012\000" 26517 .section .rodata.FlashReadPages.str1.1,"aMS",%progbits,1 26518.LC28: 26519 .ascii "ReadRetry pageadd=%x ecc=%x err=%x\012\000" 26520 .section .rodata.FlashReadSlc2KPages.str1.1,"aMS",%progbits,1 26521.LC25: 26522 .ascii "Read pageadd=%x ecc=%x err=%x\012\000" 26523.LC26: 26524 .ascii "data:\000" 26525.LC27: 26526 .ascii "spare:\000" 26527 .section .rodata.FtlBbmMapBadBlock.str1.1,"aMS",%progbits,1 26528.LC2: 26529 .ascii "phyBlk = 0x%x die = %d block_in_die = 0x%x 0x%8x\012" 26530 .ascii "\000" 26531 .section .rodata.FtlBbmTblFlush.str1.1,"aMS",%progbits,1 26532.LC33: 26533 .ascii "FtlBbmTblFlush id=%x,page=%x,previd=%x cnt=%d\012\000" 26534.LC34: 26535 .ascii "FtlBbmTblFlush error:%x\012\000" 26536.LC35: 26537 .ascii "FtlBbmTblFlush error = %x error count = %d\012\000" 26538 .section .rodata.FtlCheckVpc.str1.1,"aMS",%progbits,1 26539.LC73: 26540 .ascii "vpc1\000" 26541.LC74: 26542 .ascii "vpc2\000" 26543.LC75: 26544 .ascii "FtlCheckVpc2 %x = %x %x\012\000" 26545.LC76: 26546 .ascii "free blk vpc error %x = %x %x\012\000" 26547 .section .rodata.FtlDumpBlockInfo.str1.1,"aMS",%progbits,1 26548.LC45: 26549 .ascii "...%s enter...\012\000" 26550.LC46: 26551 .ascii "superBlkID = %x vpc=%x\012\000" 26552.LC47: 26553 .ascii "flashmode = %x pagenum = %x %x\012\000" 26554.LC48: 26555 .ascii "id = %x,%x addr= %x,spare= %x %x %x %x data=%x %x\012" 26556 .ascii "\000" 26557 .section .rodata.FtlDumpSysBlock.str1.1,"aMS",%progbits,1 26558.LC77: 26559 .ascii "id = %x,%x addr= %x,spare= %x %x %x %x data = %x\012" 26560 .ascii "\000" 26561.LC78: 26562 .ascii ":\000" 26563 .section .rodata.FtlFreeSysBlkQueueOut.str1.1,"aMS",%progbits,1 26564.LC3: 26565 .ascii "FtlFreeSysBlkQueueOut free count = %d\012\000" 26566.LC4: 26567 .ascii "FtlFreeSysBlkQueueOut = %x, free count = %d, error\012" 26568 .ascii "\000" 26569 .section .rodata.FtlGcFreeTempBlock.str1.1,"aMS",%progbits,1 26570.LC64: 26571 .ascii "GC des block %x done\012\000" 26572 .section .rodata.FtlGcScanTempBlk.str1.1,"aMS",%progbits,1 26573.LC52: 26574 .ascii "FtlGcScanTempBlkError ID %x %x!!!!!!!\012\000" 26575 .section .rodata.FtlInit.str1.1,"aMS",%progbits,1 26576.LC66: 26577 .ascii "FTL version: 5.0.50 20180905\000" 26578.LC67: 26579 .ascii "...%s: no bad block mapping table, format device\012" 26580 .ascii "\000" 26581.LC68: 26582 .ascii "...%s FtlSysBlkInit error ,format device!\012\000" 26583 .section .rodata.FtlLoadEctTbl.str1.1,"aMS",%progbits,1 26584.LC43: 26585 .ascii "no ect\000" 26586 .section .rodata.FtlMapWritePage.str1.1,"aMS",%progbits,1 26587.LC40: 26588 .ascii "FtlMapWritePage error = %x\012\000" 26589.LC41: 26590 .ascii "FtlMapWritePage error = %x error count = %d\012\000" 26591 .section .rodata.FtlProgPages.str1.1,"aMS",%progbits,1 26592.LC57: 26593 .ascii "Ftlwrite decrement_vpc_count %x = %d\012\000" 26594 .section .rodata.FtlRecoverySuperblock.str1.1,"aMS",%progbits,1 26595.LC61: 26596 .ascii "RSB refresh addr %x\012\000" 26597.LC62: 26598 .ascii "spuer block %x vpn is 0\012 \000" 26599.LC63: 26600 .ascii "g_recovery_ppa %x ver %x\012 \000" 26601 .section .rodata.FtlScanAllBlock.str1.1,"aMS",%progbits,1 26602.LC49: 26603 .ascii "blk = %x vpc=%x mode = %x\012\000" 26604.LC50: 26605 .ascii "mlc id = %x,%x addr= %x,spare= %x %x %x %x data=%x " 26606 .ascii "%x\012\000" 26607.LC51: 26608 .ascii "slc id = %x,%x addr= %x,spare= %x %x %x %x data=%x " 26609 .ascii "%x\012\000" 26610 .section .rodata.FtlVendorPartRead.str1.1,"aMS",%progbits,1 26611.LC42: 26612 .ascii "FtlVendorPartRead refresh = %x phyAddr = %x\012\000" 26613 .section .rodata.FtlVpcTblFlush.str1.1,"aMS",%progbits,1 26614.LC38: 26615 .ascii "FtlVpcTblFlush error = %x error count = %d\012\000" 26616 .section .rodata.FtlWrite.str1.1,"aMS",%progbits,1 26617.LC72: 26618 .ascii "FtlWrite: lpa error:%x %x\012\000" 26619 .section .rodata.Ftl_load_ext_data.str1.1,"aMS",%progbits,1 26620.LC44: 26621 .ascii "slc mode\000" 26622 .section .rodata.Ftlscanalldata.str1.1,"aMS",%progbits,1 26623.LC58: 26624 .ascii "Ftlscanalldata = %x\012\000" 26625.LC59: 26626 .ascii "scan lpa = %x ppa= %x\012\000" 26627.LC60: 26628 .ascii "lba = %x,addr= %x,spare= %x %x %x %x data=%x %x\012" 26629 .ascii "\000" 26630 .section .rodata.HynixGetReadRetryDefault.str1.1,"aMS",%progbits,1 26631.LC21: 26632 .ascii "otp error! %d\000" 26633.LC22: 26634 .ascii "rr\000" 26635 .section .rodata.INSERT_DATA_LIST.str1.1,"aMS",%progbits,1 26636.LC5: 26637 .ascii "\012!!!!! error @ func:%s - line:%d\012\000" 26638.LC6: 26639 .ascii "!!!!! FTL sys Error !!!!!\000" 26640.LC7: 26641 .ascii "%s\012\000" 26642 .section .rodata.MicronReadRetrial.str1.1,"aMS",%progbits,1 26643.LC13: 26644 .ascii "micron RR %d row=%x,count %d,status=%d\012\000" 26645 .section .rodata.__func__.10408,"a",%progbits 26646 .set .LANCHOR245,. + 0 26647 .type __func__.10408, %object 26648 .size __func__.10408, 8 26649__func__.10408: 26650 .ascii "FtlInit\000" 26651 .section .rodata.__func__.10468,"a",%progbits 26652 .set .LANCHOR229,. + 0 26653 .type __func__.10468, %object 26654 .size __func__.10468, 13 26655__func__.10468: 26656 .ascii "FtlProgPages\000" 26657 .section .rodata.__func__.10494,"a",%progbits 26658 .set .LANCHOR247,. + 0 26659 .type __func__.10494, %object 26660 .size __func__.10494, 9 26661__func__.10494: 26662 .ascii "FtlWrite\000" 26663 .section .rodata.__func__.10577,"a",%progbits 26664 .set .LANCHOR124,. + 0 26665 .type __func__.10577, %object 26666 .size __func__.10577, 14 26667__func__.10577: 26668 .ascii "FtlBbt2Bitmap\000" 26669 .section .rodata.__func__.10623,"a",%progbits 26670 .set .LANCHOR211,. + 0 26671 .type __func__.10623, %object 26672 .size __func__.10623, 11 26673__func__.10623: 26674 .ascii "FtlLoadBbt\000" 26675 .section .rodata.__func__.10716,"a",%progbits 26676 .set .LANCHOR90,. + 0 26677 .type __func__.10716, %object 26678 .size __func__.10716, 17 26679__func__.10716: 26680 .ascii "INSERT_FREE_LIST\000" 26681 .section .rodata.__func__.10720,"a",%progbits 26682 .set .LANCHOR87,. + 0 26683 .type __func__.10720, %object 26684 .size __func__.10720, 17 26685__func__.10720: 26686 .ascii "INSERT_DATA_LIST\000" 26687 .section .rodata.__func__.10757,"a",%progbits 26688 .set .LANCHOR91,. + 0 26689 .type __func__.10757, %object 26690 .size __func__.10757, 17 26691__func__.10757: 26692 .ascii "List_remove_node\000" 26693 .section .rodata.__func__.10787,"a",%progbits 26694 .set .LANCHOR95,. + 0 26695 .type __func__.10787, %object 26696 .size __func__.10787, 22 26697__func__.10787: 26698 .ascii "List_update_data_list\000" 26699 .section .rodata.__func__.10794,"a",%progbits 26700 .set .LANCHOR228,. + 0 26701 .type __func__.10794, %object 26702 .size __func__.10794, 20 26703__func__.10794: 26704 .ascii "ftl_load_l2p_region\000" 26705 .section .rodata.__func__.10825,"a",%progbits 26706 .set .LANCHOR96,. + 0 26707 .type __func__.10825, %object 26708 .size __func__.10825, 26 26709__func__.10825: 26710 .ascii "ftl_map_blk_alloc_new_blk\000" 26711 .section .rodata.__func__.10835,"a",%progbits 26712 .set .LANCHOR212,. + 0 26713 .type __func__.10835, %object 26714 .size __func__.10835, 15 26715__func__.10835: 26716 .ascii "ftl_map_blk_gc\000" 26717 .section .rodata.__func__.10848,"a",%progbits 26718 .set .LANCHOR213,. + 0 26719 .type __func__.10848, %object 26720 .size __func__.10848, 31 26721__func__.10848: 26722 .ascii "Ftl_write_map_blk_to_last_page\000" 26723 .section .rodata.__func__.10861,"a",%progbits 26724 .set .LANCHOR214,. + 0 26725 .type __func__.10861, %object 26726 .size __func__.10861, 16 26727__func__.10861: 26728 .ascii "FtlMapWritePage\000" 26729 .section .rodata.__func__.10881,"a",%progbits 26730 .set .LANCHOR99,. + 0 26731 .type __func__.10881, %object 26732 .size __func__.10881, 22 26733__func__.10881: 26734 .ascii "select_l2p_ram_region\000" 26735 .section .rodata.__func__.10897,"a",%progbits 26736 .set .LANCHOR227,. + 0 26737 .type __func__.10897, %object 26738 .size __func__.10897, 9 26739__func__.10897: 26740 .ascii "log2phys\000" 26741 .section .rodata.__func__.10959,"a",%progbits 26742 .set .LANCHOR210,. + 0 26743 .type __func__.10959, %object 26744 .size __func__.10959, 15 26745__func__.10959: 26746 .ascii "FtlVpcTblFlush\000" 26747 .section .rodata.__func__.10978,"a",%progbits 26748 .set .LANCHOR220,. + 0 26749 .type __func__.10978, %object 26750 .size __func__.10978, 14 26751__func__.10978: 26752 .ascii "FtlScanSysBlk\000" 26753 .section .rodata.__func__.11032,"a",%progbits 26754 .set .LANCHOR221,. + 0 26755 .type __func__.11032, %object 26756 .size __func__.11032, 15 26757__func__.11032: 26758 .ascii "FtlLoadSysInfo\000" 26759 .section .rodata.__func__.11043,"a",%progbits 26760 .set .LANCHOR248,. + 0 26761 .type __func__.11043, %object 26762 .size __func__.11043, 12 26763__func__.11043: 26764 .ascii "FtlCheckVpc\000" 26765 .section .rodata.__func__.11075,"a",%progbits 26766 .set .LANCHOR224,. + 0 26767 .type __func__.11075, %object 26768 .size __func__.11075, 17 26769__func__.11075: 26770 .ascii "FtlDumpBlockInfo\000" 26771 .section .rodata.__func__.11094,"a",%progbits 26772 .set .LANCHOR225,. + 0 26773 .type __func__.11094, %object 26774 .size __func__.11094, 16 26775__func__.11094: 26776 .ascii "FtlScanAllBlock\000" 26777 .section .rodata.__func__.11199,"a",%progbits 26778 .set .LANCHOR233,. + 0 26779 .type __func__.11199, %object 26780 .size __func__.11199, 16 26781__func__.11199: 26782 .ascii "FtlReUsePrevPpa\000" 26783 .section .rodata.__func__.11232,"a",%progbits 26784 .set .LANCHOR234,. + 0 26785 .type __func__.11232, %object 26786 .size __func__.11232, 22 26787__func__.11232: 26788 .ascii "FtlRecoverySuperblock\000" 26789 .section .rodata.__func__.11286,"a",%progbits 26790 .set .LANCHOR102,. + 0 26791 .type __func__.11286, %object 26792 .size __func__.11286, 16 26793__func__.11286: 26794 .ascii "make_superblock\000" 26795 .section .rodata.__func__.11306,"a",%progbits 26796 .set .LANCHOR140,. + 0 26797 .type __func__.11306, %object 26798 .size __func__.11306, 18 26799__func__.11306: 26800 .ascii "SupperBlkListInit\000" 26801 .section .rodata.__func__.11383,"a",%progbits 26802 .set .LANCHOR203,. + 0 26803 .type __func__.11383, %object 26804 .size __func__.11383, 25 26805__func__.11383: 26806 .ascii "allocate_data_superblock\000" 26807 .section .rodata.__func__.11397,"a",%progbits 26808 .set .LANCHOR219,. + 0 26809 .type __func__.11397, %object 26810 .size __func__.11397, 29 26811__func__.11397: 26812 .ascii "allocate_new_data_superblock\000" 26813 .section .rodata.__func__.11403,"a",%progbits 26814 .set .LANCHOR208,. + 0 26815 .type __func__.11403, %object 26816 .size __func__.11403, 19 26817__func__.11403: 26818 .ascii "get_new_active_ppa\000" 26819 .section .rodata.__func__.11414,"a",%progbits 26820 .set .LANCHOR206,. + 0 26821 .type __func__.11414, %object 26822 .size __func__.11414, 16 26823__func__.11414: 26824 .ascii "update_vpc_list\000" 26825 .section .rodata.__func__.11419,"a",%progbits 26826 .set .LANCHOR207,. + 0 26827 .type __func__.11419, %object 26828 .size __func__.11419, 20 26829__func__.11419: 26830 .ascii "decrement_vpc_count\000" 26831 .section .rodata.__func__.11487,"a",%progbits 26832 .set .LANCHOR239,. + 0 26833 .type __func__.11487, %object 26834 .size __func__.11487, 19 26835__func__.11487: 26836 .ascii "FtlGcFreeTempBlock\000" 26837 .section .rodata.__func__.11581,"a",%progbits 26838 .set .LANCHOR243,. + 0 26839 .type __func__.11581, %object 26840 .size __func__.11581, 23 26841__func__.11581: 26842 .ascii "rk_ftl_garbage_collect\000" 26843 .section .rodata.decrement_vpc_count.str1.1,"aMS",%progbits,1 26844.LC36: 26845 .ascii "decrement_vpc_count %x = %d\012\000" 26846.LC37: 26847 .ascii "decrement_vpc_count %x = %d in free list\012\000" 26848 .section .rodata.dump_map_info.str1.1,"aMS",%progbits,1 26849.LC79: 26850 .ascii "phyBlk = %x,addr= %x,spare= %x %x %x %x data=%x %x\012" 26851 .ascii "\000" 26852.LC80: 26853 .ascii "Mblk:\000" 26854.LC81: 26855 .ascii "L2P:\000" 26856.LC82: 26857 .ascii "L2PC:\000" 26858 .section .rodata.ftl_fix_nand_power_lost_error.str1.1,"aMS",%progbits,1 26859.LC70: 26860 .ascii "fix power lost blk = %x vpc=%x\012\000" 26861.LC71: 26862 .ascii "erase power lost blk = %x vpc=%x\012\000" 26863 .section .rodata.ftl_map_blk_alloc_new_blk.str1.1,"aMS",%progbits,1 26864.LC8: 26865 .ascii "FtlFreeSysBlkQueueOut = %x, free count = %d\012\000" 26866 .section .rodata.ftl_map_blk_gc.str1.1,"aMS",%progbits,1 26867.LC39: 26868 .ascii "page map lost: %x %x\012\000" 26869 .section .rodata.idb_write_data.str1.1,"aMS",%progbits,1 26870.LC15: 26871 .ascii "1 write_idblock fix data %x %x %x\012\000" 26872.LC16: 26873 .ascii "write_idblock fail! %x %x %x %x\012\000" 26874.LC17: 26875 .ascii "write_idblock fail! %x\012\000" 26876 .section .rodata.log2phys.str1.1,"aMS",%progbits,1 26877.LC54: 26878 .ascii "region_id = %x phyAddr = %x\012\000" 26879.LC55: 26880 .ascii "map_ppn:\000" 26881.LC56: 26882 .ascii "load_l2p_region refresh = %x phyAddr = %x\012\000" 26883 .section .rodata.rk_ftl_garbage_collect.str1.1,"aMS",%progbits,1 26884.LC65: 26885 .ascii "g_gc_superblock_free %x %x %x %x %x\012\000" 26886 .section .rodata.rk_ftl_init.str1.1,"aMS",%progbits,1 26887.LC69: 26888 .ascii "FtlInit %x\012\000" 26889 .section .rodata.rknand_print_hex.str1.1,"aMS",%progbits,1 26890.LC18: 26891 .ascii "%s 0x%x:\000" 26892.LC19: 26893 .ascii "%x \000" 26894.LC20: 26895 .ascii "\000" 26896 .hidden free 26897