1/* 2 * Copyright (c) 2016-2017, Fuzhou Rockchip Electronics Co., Ltd 3 * 4 * This program is free software; you can redistribute it and/or modify 5 * it under the terms of the GNU General Public License as published by 6 * the Free Software Foundation; either version 2 of the License, or 7 * (at your option) any later version. 8 * date: 2021-07-26 9 * function: rk ftl v6 for rockchip soc base on arm v7 to support 3D/2D 10 * TLC and MLC. 11 */ 12 .arch armv7-a 13 .eabi_attribute 20, 1 14 .eabi_attribute 21, 1 15 .eabi_attribute 23, 3 16 .eabi_attribute 24, 1 17 .eabi_attribute 25, 1 18 .eabi_attribute 26, 2 19 .eabi_attribute 30, 4 20 .eabi_attribute 34, 1 21 .file "rk_zftl_arm_v7.c" 22 .syntax unified 23 .text 24 .align 2 25 .fpu softvfp 26 .type flash_mem_cmp8, %function 27flash_mem_cmp8: 28 .fnstart 29 @ args = 0, pretend = 0, frame = 0 30 @ frame_needed = 0, uses_anonymous_args = 0 31 mov r3, #0 32 cmp r3, r2 33 bne .L10 34 mov r0, #0 35 bx lr 36.L2: 37 cmp r3, r2 38 bne .L5 39 mov r0, #0 40 ldr pc, [sp], #4 41.L10: 42 str lr, [sp, #-4]! 43 .save {lr} 44.L5: 45 ldrb lr, [r0, r3] @ zero_extendqisi2 46 ldrb ip, [r1, r3] @ zero_extendqisi2 47 add r3, r3, #1 48 cmp lr, ip 49 beq .L2 50 mov r0, r3 51 ldr pc, [sp], #4 52 .fnend 53 .size flash_mem_cmp8, .-flash_mem_cmp8 54 .global __aeabi_uidiv 55 .global __aeabi_uidivmod 56 .align 2 57 .syntax unified 58 .arm 59 .fpu softvfp 60 .type slc_phy_page_address_calc, %function 61slc_phy_page_address_calc: 62 .fnstart 63 @ args = 0, pretend = 0, frame = 0 64 @ frame_needed = 0, uses_anonymous_args = 0 65 push {r4, r5, r6, r7, r8, lr} 66 .save {r4, r5, r6, r7, r8, lr} 67 mov r4, r0 68 ldr r5, .L22 69 ldrb r3, [r5] @ zero_extendqisi2 70 cmp r3, #0 71 beq .L12 72 ldrb r3, [r5, #1] @ zero_extendqisi2 73 cmp r3, #0 74 beq .L13 75.L12: 76 ldrh r6, [r5, #2] 77 mov r0, r4 78 mov r1, r6 79 bl __aeabi_uidiv 80 mov r1, r6 81 mul r7, r6, r0 82 mov r0, r4 83 bl __aeabi_uidivmod 84 ldrb r3, [r5, #1] @ zero_extendqisi2 85 lsl r1, r1, #1 86 cmp r3, #0 87 addeq r1, r5, r1 88 addne r4, r1, r7 89 ldrheq r4, [r1, #4] 90 addeq r4, r4, r7 91.L13: 92 mov r0, r4 93 pop {r4, r5, r6, r7, r8, pc} 94.L23: 95 .align 2 96.L22: 97 .word .LANCHOR0 98 .fnend 99 .size slc_phy_page_address_calc, .-slc_phy_page_address_calc 100 .align 2 101 .global zftl_nandc_get_irq_status 102 .syntax unified 103 .arm 104 .fpu softvfp 105 .type zftl_nandc_get_irq_status, %function 106zftl_nandc_get_irq_status: 107 .fnstart 108 @ args = 0, pretend = 0, frame = 0 109 @ frame_needed = 0, uses_anonymous_args = 0 110 @ link register save eliminated. 111 ldr r3, .L27 112 ldrb r3, [r3, #1028] @ zero_extendqisi2 113 cmp r3, #9 114 ldreq r0, [r0, #296] 115 ldrne r0, [r0, #372] 116 bx lr 117.L28: 118 .align 2 119.L27: 120 .word .LANCHOR0 121 .fnend 122 .size zftl_nandc_get_irq_status, .-zftl_nandc_get_irq_status 123 .section .text.unlikely,"ax",%progbits 124 .align 2 125 .syntax unified 126 .arm 127 .fpu softvfp 128 .type isxdigit, %function 129isxdigit: 130 .fnstart 131 @ args = 0, pretend = 0, frame = 0 132 @ frame_needed = 0, uses_anonymous_args = 0 133 @ link register save eliminated. 134 bic r3, r0, #32 135 sub r3, r3, #65 136 cmp r3, #25 137 bls .L31 138 sub r0, r0, #48 139 cmp r0, #9 140 movhi r0, #0 141 movls r0, #1 142 bx lr 143.L31: 144 mov r0, #1 145 bx lr 146 .fnend 147 .size isxdigit, .-isxdigit 148 .text 149 .align 2 150 .global zftl_get_density 151 .syntax unified 152 .arm 153 .fpu softvfp 154 .type zftl_get_density, %function 155zftl_get_density: 156 .fnstart 157 @ args = 0, pretend = 0, frame = 0 158 @ frame_needed = 0, uses_anonymous_args = 0 159 @ link register save eliminated. 160 cmp r0, #0 161 bne .L33 162 ldr r3, .L36 163 ldr r0, [r3, #1032] 164 bx lr 165.L33: 166 cmp r0, #4 167 movcc r0, #8192 168 movcs r0, #0 169 bx lr 170.L37: 171 .align 2 172.L36: 173 .word .LANCHOR0 174 .fnend 175 .size zftl_get_density, .-zftl_get_density 176 .align 2 177 .syntax unified 178 .arm 179 .fpu softvfp 180 .type _list_remove_node, %function 181_list_remove_node: 182 .fnstart 183 @ args = 0, pretend = 0, frame = 0 184 @ frame_needed = 0, uses_anonymous_args = 0 185 push {r4, r5, r6, r7, r8, r9, r10, lr} 186 .save {r4, r5, r6, r7, r8, r9, r10, lr} 187 mov r5, #6 188 ldr r6, .L47 189 mul r5, r5, r1 190 movw r3, #65535 191 ldr r8, [r6, #1036] 192 ldrh ip, [r8, r5] 193 add r4, r8, r5 194 ldrh r1, [r4, #2] 195 cmp ip, r3 196 ldr r3, [r0] 197 bne .L39 198 cmp r1, ip 199 bne .L39 200 cmp r4, r3 201 popne {r4, r5, r6, r7, r8, r9, r10, pc} 202.L39: 203 mov r9, r2 204 movw r2, #65535 205 cmp r1, r2 206 mov r7, r0 207 bne .L41 208 cmp r4, r3 209 beq .L41 210 mov r2, #202 211 ldr r1, .L47+4 212 ldr r0, .L47+8 213 bl printk 214 bl dump_stack 215.L41: 216 ldr r3, [r7] 217 movw r2, #65535 218 cmp r4, r3 219 ldrh r3, [r8, r5] 220 bne .L42 221 cmp r3, r2 222 ldrne r2, [r6, #1036] 223 movne r1, #6 224 moveq r3, #0 225 streq r3, [r7] 226 mlane r3, r1, r3, r2 227 mvnne r2, #0 228 strne r3, [r7] 229 strhne r2, [r3, #2] @ movhi 230.L44: 231 mvn r3, #0 232 strh r3, [r8, r5] @ movhi 233 strh r3, [r4, #2] @ movhi 234 ldrh r3, [r9] 235 sub r3, r3, #1 236 strh r3, [r9] @ movhi 237 pop {r4, r5, r6, r7, r8, r9, r10, pc} 238.L42: 239 cmp r3, r2 240 ldrh r1, [r4, #2] 241 bne .L45 242 cmp r1, r3 243 movne r3, #6 244 ldrne r2, [r6, #1036] 245 mulne r1, r3, r1 246 mvnne r3, #0 247 strhne r3, [r2, r1] @ movhi 248 b .L44 249.L45: 250 ldr r0, [r6, #1036] 251 mov r2, #6 252 mla r3, r2, r3, r0 253 strh r1, [r3, #2] @ movhi 254 ldrh r0, [r4, #2] 255 ldrh r1, [r8, r5] 256 ldr r3, [r6, #1036] 257 mul r2, r2, r0 258 strh r1, [r3, r2] @ movhi 259 b .L44 260.L48: 261 .align 2 262.L47: 263 .word .LANCHOR0 264 .word .LANCHOR1 265 .word .LC0 266 .fnend 267 .size _list_remove_node, .-_list_remove_node 268 .align 2 269 .syntax unified 270 .arm 271 .fpu softvfp 272 .type ndelay, %function 273ndelay: 274 .fnstart 275 @ args = 0, pretend = 0, frame = 0 276 @ frame_needed = 0, uses_anonymous_args = 0 277 @ link register save eliminated. 278 ldr r3, .L50 279 add r0, r0, #996 280 add r0, r0, #3 281 umull r0, r1, r0, r3 282 ldr r3, .L50+4 283 ldr r3, [r3, #8] 284 lsr r0, r1, #6 285 bx r3 @ indirect register sibling call 286.L51: 287 .align 2 288.L50: 289 .word 274877907 290 .word arm_delay_ops 291 .fnend 292 .size ndelay, .-ndelay 293 .align 2 294 .syntax unified 295 .arm 296 .fpu softvfp 297 .type hynix_set_rr_para, %function 298hynix_set_rr_para: 299 .fnstart 300 @ args = 0, pretend = 0, frame = 0 301 @ frame_needed = 0, uses_anonymous_args = 0 302 ldr r2, .L58 303 push {r4, r5, r6, r7, r8, r9, r10, lr} 304 .save {r4, r5, r6, r7, r8, r9, r10, lr} 305 lsl r9, r0, #8 306 ldr r3, [r2, #1040] 307 ldr r6, [r2, #1044] 308 ldrb ip, [r3, #113] @ zero_extendqisi2 309 add r4, r3, #112 310 ldrb r2, [r3, #112] @ zero_extendqisi2 311 add r5, r6, r9 312 add r7, r3, #128 313 add r8, r3, #127 314 mul r1, r1, ip 315 cmp r2, #8 316 movne r2, #160 317 add r1, r1, #32 318 smlabbne r1, r2, r0, r1 319 mov r2, #54 320 str r2, [r5, #2056] 321 sub r2, ip, #1 322 add r4, r4, r1 323 add r7, r7, r2 324 sub r4, r4, #1 325.L55: 326 cmp r8, r7 327 bne .L56 328 add r6, r6, r9 329 mov r3, #22 330 str r3, [r6, #2056] 331 pop {r4, r5, r6, r7, r8, r9, r10, pc} 332.L56: 333 ldrb r3, [r8, #1]! @ zero_extendqisi2 334 mov r0, #120 335 str r3, [r5, #2052] 336 bl ndelay 337 ldrsb r3, [r4, #1]! 338 str r3, [r5, #2048] 339 b .L55 340.L59: 341 .align 2 342.L58: 343 .word .LANCHOR0 344 .fnend 345 .size hynix_set_rr_para, .-hynix_set_rr_para 346 .align 2 347 .syntax unified 348 .arm 349 .fpu softvfp 350 .type zftl_debug_proc_open, %function 351zftl_debug_proc_open: 352 .fnstart 353 @ args = 0, pretend = 0, frame = 0 354 @ frame_needed = 0, uses_anonymous_args = 0 355 push {r4, lr} 356 .save {r4, lr} 357 mov r4, r1 358 bl PDE_DATA 359 mov r2, r0 360 mov r0, r4 361 ldr r1, .L62 362 pop {r4, lr} 363 b single_open 364.L63: 365 .align 2 366.L62: 367 .word zftl_debug_proc_show 368 .fnend 369 .size zftl_debug_proc_open, .-zftl_debug_proc_open 370 .align 2 371 .syntax unified 372 .arm 373 .fpu softvfp 374 .type zftl_debug_proc_show, %function 375zftl_debug_proc_show: 376 .fnstart 377 @ args = 0, pretend = 0, frame = 0 378 @ frame_needed = 0, uses_anonymous_args = 0 379 push {r4, lr} 380 .save {r4, lr} 381 mov r4, r0 382 ldr r2, .L66 383 ldr r1, .L66+4 384 bl seq_printf 385 ldr r3, .L66+8 386 mov r0, r4 387 ldr r1, .L66+12 388 ldr r2, [r3] 389 bl seq_printf 390 mov r0, #0 391 pop {r4, pc} 392.L67: 393 .align 2 394.L66: 395 .word .LC1 396 .word .LC2 397 .word .LANCHOR2 398 .word .LC3 399 .fnend 400 .size zftl_debug_proc_show, .-zftl_debug_proc_show 401 .align 2 402 .global zftl_flash_suspend 403 .syntax unified 404 .arm 405 .fpu softvfp 406 .type zftl_flash_suspend, %function 407zftl_flash_suspend: 408 .fnstart 409 @ args = 0, pretend = 0, frame = 0 410 @ frame_needed = 0, uses_anonymous_args = 0 411 @ link register save eliminated. 412 ldr r3, .L72 413 ldrb r2, [r3, #1028] @ zero_extendqisi2 414 cmp r2, #9 415 ldr r2, [r3, #1044] 416 ldr r1, [r2] 417 str r1, [r3, #1048] 418 ldr r1, [r2, #4] 419 str r1, [r3, #1052] 420 bne .L69 421 ldr r1, [r2, #16] 422 str r1, [r3, #1056] 423 ldr r1, [r2, #32] 424 str r1, [r3, #1060] 425 ldr r1, [r2, #80] 426 str r1, [r3, #1064] 427 ldr r1, [r2, #84] 428 str r1, [r3, #1068] 429 ldr r1, [r2, #520] 430 ldr r2, [r2, #8] 431 str r1, [r3, #1072] 432.L71: 433 str r2, [r3, #1076] 434 bx lr 435.L69: 436 ldr r1, [r2, #8] 437 str r1, [r3, #1056] 438 ldr r1, [r2, #12] 439 str r1, [r3, #1060] 440 ldr r1, [r2, #304] 441 str r1, [r3, #1064] 442 ldr r1, [r2, #308] 443 str r1, [r3, #1068] 444 ldr r1, [r2, #336] 445 ldr r2, [r2, #344] 446 str r1, [r3, #1072] 447 b .L71 448.L73: 449 .align 2 450.L72: 451 .word .LANCHOR0 452 .fnend 453 .size zftl_flash_suspend, .-zftl_flash_suspend 454 .align 2 455 .syntax unified 456 .arm 457 .fpu softvfp 458 .type nandc_irq_disable, %function 459nandc_irq_disable: 460 .fnstart 461 @ args = 0, pretend = 0, frame = 0 462 @ frame_needed = 0, uses_anonymous_args = 0 463 @ link register save eliminated. 464 ldr r3, .L77 465 ldrb r3, [r3, #1028] @ zero_extendqisi2 466 cmp r3, #9 467 mov r3, #1 468 bne .L75 469 ldr r2, [r0, #292] 470 lsl r1, r3, r1 471 orr r3, r2, r1 472 str r3, [r0, #292] 473 ldr r3, [r0, #288] 474 bic r1, r3, r1 475 str r1, [r0, #288] 476 bx lr 477.L75: 478 ldr r2, [r0, #368] 479 lsl r1, r3, r1 480 orr r3, r2, r1 481 str r3, [r0, #368] 482 ldr r3, [r0, #364] 483 bic r1, r3, r1 484 str r1, [r0, #364] 485 bx lr 486.L78: 487 .align 2 488.L77: 489 .word .LANCHOR0 490 .fnend 491 .size nandc_irq_disable, .-nandc_irq_disable 492 .align 2 493 .syntax unified 494 .arm 495 .fpu softvfp 496 .type _insert_free_list, %function 497_insert_free_list: 498 .fnstart 499 @ args = 0, pretend = 0, frame = 8 500 @ frame_needed = 0, uses_anonymous_args = 0 501 ldr r3, .L91 502 movw ip, #1080 503 ldrh ip, [r3, ip] 504 cmp ip, r1 505 bxls lr 506 push {r0, r1, r2, r4, r5, r6, r7, r8, r9, r10, fp, lr} 507 .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} 508 .pad #12 509 mov r4, r3 510 ldrh ip, [r2] 511 add ip, ip, #1 512 strh ip, [r2] @ movhi 513 mov ip, #6 514 mul r6, ip, r1 515 ldr r7, [r3, #1036] 516 mvn r3, #0 517 add lr, r7, r6 518 strh r3, [lr, #2] @ movhi 519 strh r3, [r7, r6] @ movhi 520 ldr r3, [r0] 521 cmp r3, #0 522 bne .L81 523.L90: 524 str lr, [r0] 525 b .L79 526.L81: 527 ldr r5, [r4, #1084] 528 add r2, r4, #1088 529 ldrh r10, [r2] 530 lsl r8, r1, #2 531 ldr r9, [r4, #1036] 532 movw fp, #65535 533 ldr r2, [r5, r1, lsl #2] 534 ldrh r8, [r5, r8] 535 str ip, [sp, #4] 536 ubfx r2, r2, #11, #8 537 smulbb r2, r2, r10 538 ubfx r8, r8, #0, #11 539 add r2, r2, r8 540 uxth r2, r2 541 str r2, [sp] 542 sub r2, r3, r9 543 asr r8, r2, #1 544 ldr r2, .L91+4 545 mul r2, r2, r8 546 uxth r2, r2 547.L84: 548 ldr ip, [r5, r2, lsl #2] 549 lsl r8, r2, #2 550 ldrh r8, [r5, r8] 551 ubfx ip, ip, #11, #8 552 smulbb ip, ip, r10 553 ubfx r8, r8, #0, #11 554 add ip, ip, r8 555 ldr r8, [sp] 556 uxth ip, ip 557 cmp r8, ip 558 bls .L82 559 ldrh ip, [r3] 560 cmp ip, fp 561 bne .L83 562 strh r2, [lr, #2] @ movhi 563 strh r1, [r3] @ movhi 564.L79: 565 add sp, sp, #12 566 @ sp needed 567 pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} 568.L83: 569 ldr r3, [sp, #4] 570 mov r2, ip 571 mla r3, r3, ip, r9 572 b .L84 573.L82: 574 ldrh ip, [r3, #2] 575 strh ip, [lr, #2] @ movhi 576 strh r2, [r7, r6] @ movhi 577 ldr r2, [r0] 578 cmp r3, r2 579 strheq r1, [r3, #2] @ movhi 580 beq .L90 581.L85: 582 ldrh ip, [r3, #2] 583 mov r2, #6 584 ldr r0, [r4, #1036] 585 mul r2, r2, ip 586 strh r1, [r0, r2] @ movhi 587 strh r1, [r3, #2] @ movhi 588 b .L79 589.L92: 590 .align 2 591.L91: 592 .word .LANCHOR0 593 .word -1431655765 594 .fnend 595 .size _insert_free_list, .-_insert_free_list 596 .align 2 597 .syntax unified 598 .arm 599 .fpu softvfp 600 .type _insert_data_list, %function 601_insert_data_list: 602 .fnstart 603 @ args = 0, pretend = 0, frame = 24 604 @ frame_needed = 0, uses_anonymous_args = 0 605 ldr r3, .L116 606 movw ip, #1080 607 ldrh ip, [r3, ip] 608 cmp ip, r1 609 bxls lr 610 push {r4, r5, r6, r7, r8, r9, r10, fp, lr} 611 .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} 612 mov r5, #6 613 ldrh ip, [r2] 614 mul r5, r5, r1 615 mov r4, r3 616 .pad #28 617 sub sp, sp, #28 618 add ip, ip, #1 619 strh ip, [r2] @ movhi 620 ldr r10, [r3, #1036] 621 mvn r3, #0 622 add lr, r10, r5 623 strh r3, [lr, #2] @ movhi 624 strh r3, [r10, r5] @ movhi 625 ldr r3, [r0] 626 cmp r3, #0 627 bne .L96 628.L115: 629 str lr, [r0] 630 b .L93 631.L96: 632 ldr r2, [r4, #1092] 633 add r8, r4, #1088 634 ldr r9, [r4, #1084] 635 ldrh r8, [r8] 636 str r2, [sp, #4] 637 lsl r2, r1, #1 638 ldr ip, [sp, #4] 639 ldrh r6, [lr, #4] 640 ldr r7, [r9, r1, lsl #2] 641 ldrh ip, [ip, r2] 642 muls ip, r6, ip 643 str r8, [sp, #8] 644 lsl r2, r1, #2 645 ldrhne r8, [sp, #8] 646 ubfx r7, r7, #11, #8 647 ldrh r2, [r9, r2] 648 smulbbne r7, r7, r8 649 ubfx r2, r2, #0, #11 650 addne r2, r2, r7 651 uxtahne ip, ip, r2 652 ldr r2, [r4, #1036] 653 cmp r6, #0 654 mvneq ip, #0 655 str r2, [sp, #12] 656 sub r2, r3, r2 657 asr r6, r2, #1 658 ldr r2, .L116+4 659 mul r2, r2, r6 660 movw r6, #1080 661 ldrh r4, [r4, r6] 662 mov r6, #0 663 uxth r2, r2 664 str r4, [sp, #16] 665.L103: 666 sub r4, r1, r2 667 ldr r7, [sp, #16] 668 add r6, r6, #1 669 clz r4, r4 670 uxth r6, r6 671 lsr r4, r4, #5 672 cmp r6, r7 673 orrhi r4, r4, #1 674 cmp r4, #0 675 bne .L93 676 ldr r7, [sp, #4] 677 lsl r4, r2, #1 678 ldrh fp, [r3, #4] 679 ldr r8, [r9, r2, lsl #2] 680 ldrh r4, [r7, r4] 681 lsl r7, r2, #2 682 muls r4, fp, r4 683 ldrh r7, [r9, r7] 684 ubfx r8, r8, #11, #8 685 ubfx r7, r7, #0, #11 686 str r7, [sp, #20] 687 ldrhne r7, [sp, #8] 688 smulbbne r8, r8, r7 689 ldrne r7, [sp, #20] 690 addne r7, r7, r8 691 uxtahne r4, r4, r7 692 cmp fp, #0 693 cmpne ip, r4 694 bls .L101 695 ldrh r4, [r3] 696 movw r7, #65535 697 cmp r4, r7 698 bne .L102 699 strh r2, [lr, #2] @ movhi 700 strh r1, [r3] @ movhi 701.L93: 702 add sp, sp, #28 703 @ sp needed 704 pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} 705.L102: 706 ldr r2, [sp, #12] 707 mov r3, #6 708 mla r3, r3, r4, r2 709 mov r2, r4 710 b .L103 711.L101: 712 ldrh ip, [r3, #2] 713 strh ip, [lr, #2] @ movhi 714 strh r2, [r10, r5] @ movhi 715 ldr r2, [r0] 716 cmp r3, r2 717 strheq r1, [r3, #2] @ movhi 718 beq .L115 719.L104: 720 ldrh ip, [r3, #2] 721 ldr r2, .L116 722 ldr r0, [r2, #1036] 723 mov r2, #6 724 mul r2, r2, ip 725 strh r1, [r0, r2] @ movhi 726 strh r1, [r3, #2] @ movhi 727 b .L93 728.L117: 729 .align 2 730.L116: 731 .word .LANCHOR0 732 .word -1431655765 733 .fnend 734 .size _insert_data_list, .-_insert_data_list 735 .align 2 736 .syntax unified 737 .arm 738 .fpu softvfp 739 .type _list_update_data_list, %function 740_list_update_data_list: 741 .fnstart 742 @ args = 0, pretend = 0, frame = 0 743 @ frame_needed = 0, uses_anonymous_args = 0 744 push {r4, r5, r6, r7, r8, r9, r10, lr} 745 .save {r4, r5, r6, r7, r8, r9, r10, lr} 746 ldr r5, .L129 747 ldr r3, [r5, #1096] 748 ldrh ip, [r3, #16] 749 cmp ip, r1 750 popeq {r4, r5, r6, r7, r8, r9, r10, pc} 751 ldrh ip, [r3, #48] 752 cmp ip, r1 753 popeq {r4, r5, r6, r7, r8, r9, r10, pc} 754 ldrh r3, [r3, #80] 755 cmp r3, r1 756 popeq {r4, r5, r6, r7, r8, r9, r10, pc} 757 mov r8, #6 758 ldr r10, [r5, #1036] 759 mul r8, r8, r1 760 ldr r3, [r0] 761 add r9, r10, r8 762 cmp r9, r3 763 popeq {r4, r5, r6, r7, r8, r9, r10, pc} 764 ldrh r3, [r9, #2] 765 mov r7, r2 766 movw r2, #65535 767 mov r4, r1 768 mov r6, r0 769 cmp r3, r2 770 bne .L122 771 ldrh r2, [r10, r8] 772 cmp r2, r3 773 bne .L122 774 movw r2, #273 775 ldr r1, .L129+4 776 ldr r0, .L129+8 777 bl printk 778 bl dump_stack 779.L122: 780 ldrh r3, [r9, #2] 781 movw r2, #65535 782 cmp r3, r2 783 bne .L123 784 ldrh r2, [r10, r8] 785 cmp r2, r3 786 popeq {r4, r5, r6, r7, r8, r9, r10, pc} 787.L123: 788 ldr r0, [r5, #1092] 789 lsl r2, r4, #1 790 ldrh r1, [r9, #4] 791 ldrh r2, [r0, r2] 792 cmp r1, #0 793 mvneq r1, #0 794 mulne r1, r1, r2 795 mov r2, #6 796 mul r2, r2, r3 797 ldr r3, .L129+12 798 asr ip, r2, #1 799 mul r3, r3, ip 800 lsl r3, r3, #1 801 ldrh ip, [r0, r3] 802 ldr r0, [r5, #1036] 803 add r2, r0, r2 804 ldrh r3, [r2, #4] 805 cmp r3, #0 806 mulne r3, r3, ip 807 mvneq r3, #0 808 cmp r1, r3 809 popcs {r4, r5, r6, r7, r8, r9, r10, pc} 810 mov r2, r7 811 mov r1, r4 812 mov r0, r6 813 bl _list_remove_node 814 mov r2, r7 815 mov r1, r4 816 mov r0, r6 817 pop {r4, r5, r6, r7, r8, r9, r10, lr} 818 b _insert_data_list 819.L130: 820 .align 2 821.L129: 822 .word .LANCHOR0 823 .word .LANCHOR1+18 824 .word .LC0 825 .word -1431655765 826 .fnend 827 .size _list_update_data_list, .-_list_update_data_list 828 .section .text.unlikely 829 .align 2 830 .syntax unified 831 .arm 832 .fpu softvfp 833 .type rk_simple_strtoull.constprop.33, %function 834rk_simple_strtoull.constprop.33: 835 .fnstart 836 @ args = 0, pretend = 0, frame = 0 837 @ frame_needed = 0, uses_anonymous_args = 0 838 push {r4, r5, r6, r7, r8, lr} 839 .save {r4, r5, r6, r7, r8, lr} 840 mov r4, r0 841 ldrb r3, [r0] @ zero_extendqisi2 842 cmp r3, #48 843 movne r2, r0 844 movne r5, #10 845 bne .L132 846 ldrb r3, [r0, #1] @ zero_extendqisi2 847 add r2, r0, #1 848 orr r3, r3, #32 849 cmp r3, #120 850 bne .L144 851 ldrb r0, [r0, #2] @ zero_extendqisi2 852 bl isxdigit 853 cmp r0, #0 854 addne r2, r4, #2 855 movne r5, #16 856 bne .L132 857.L144: 858 mov r5, #8 859.L132: 860 mov r6, #0 861.L133: 862 mov r7, r2 863 ldrb r4, [r2], #1 @ zero_extendqisi2 864 mov r0, r4 865 bl isxdigit 866 cmp r0, #0 867 bne .L134 868.L140: 869 cmp r1, #0 870 mov r0, r6 871 strne r7, [r1] 872 pop {r4, r5, r6, r7, r8, pc} 873.L134: 874 sub r0, r4, #48 875 cmp r0, #9 876 orrhi r0, r4, #32 877 subhi r0, r0, #87 878 cmp r0, r5 879 bcs .L140 880 mla r6, r5, r6, r0 881 b .L133 882 .fnend 883 .size rk_simple_strtoull.constprop.33, .-rk_simple_strtoull.constprop.33 884 .text 885 .align 2 886 .syntax unified 887 .arm 888 .fpu softvfp 889 .type nandc_de_cs.constprop.35, %function 890nandc_de_cs.constprop.35: 891 .fnstart 892 @ args = 0, pretend = 0, frame = 0 893 @ frame_needed = 0, uses_anonymous_args = 0 894 @ link register save eliminated. 895 ldr r3, .L148 896 ldr r2, [r3, #1044] 897 ldr r3, [r2] 898 bfc r3, #0, #8 899 bfc r3, #17, #1 900 str r3, [r2] 901 bx lr 902.L149: 903 .align 2 904.L148: 905 .word .LANCHOR0 906 .fnend 907 .size nandc_de_cs.constprop.35, .-nandc_de_cs.constprop.35 908 .align 2 909 .global flash_read_status 910 .syntax unified 911 .arm 912 .fpu softvfp 913 .type flash_read_status, %function 914flash_read_status: 915 .fnstart 916 @ args = 0, pretend = 0, frame = 0 917 @ frame_needed = 0, uses_anonymous_args = 0 918 mov r3, #112 919 push {r4, lr} 920 .save {r4, lr} 921 mov r4, r0 922 str r3, [r0, #8] 923 mov r0, #120 924 bl ndelay 925 ldr r0, [r4] 926 uxtb r0, r0 927 pop {r4, pc} 928 .fnend 929 .size flash_read_status, .-flash_read_status 930 .align 2 931 .global toshiba_set_rr_para 932 .syntax unified 933 .arm 934 .fpu softvfp 935 .type toshiba_set_rr_para, %function 936toshiba_set_rr_para: 937 .fnstart 938 @ args = 0, pretend = 0, frame = 0 939 @ frame_needed = 0, uses_anonymous_args = 0 940 push {r4, r5, r6, r7, r8, r9, r10, lr} 941 .save {r4, r5, r6, r7, r8, r9, r10, lr} 942 add r8, r1, r1, lsl #2 943 ldr r9, .L161 944 mov r5, r0 945 mov r6, r1 946 mov r4, #0 947 ldr r7, .L161+4 948 add r10, r9, #41 949.L153: 950 ldrb r3, [r7, #1101] @ zero_extendqisi2 951 cmp r4, r3 952 bcc .L157 953 pop {r4, r5, r6, r7, r8, r9, r10, pc} 954.L157: 955 mov r3, #85 956 mov r0, #200 957 str r3, [r5, #8] 958 ldrsb r3, [r4, r10] 959 str r3, [r5, #4] 960 bl ndelay 961 ldrb r3, [r7, #1100] @ zero_extendqisi2 962 cmp r3, #34 963 addeq r3, r4, r8 964 addeq r3, r10, r3 965 beq .L160 966 cmp r3, #35 967 addne r3, r9, r6 968 ldrsbne r3, [r3, #181] 969 bne .L159 970 ldr r2, .L161+8 971 add r3, r4, r8 972 add r3, r2, r3 973.L160: 974 ldrsb r3, [r3, #5] 975.L159: 976 str r3, [r5] 977 add r4, r4, #1 978 b .L153 979.L162: 980 .align 2 981.L161: 982 .word .LANCHOR1 983 .word .LANCHOR0 984 .word .LANCHOR1+86 985 .fnend 986 .size toshiba_set_rr_para, .-toshiba_set_rr_para 987 .align 2 988 .global hynix_reconfig_rr_para 989 .syntax unified 990 .arm 991 .fpu softvfp 992 .type hynix_reconfig_rr_para, %function 993hynix_reconfig_rr_para: 994 .fnstart 995 @ args = 0, pretend = 0, frame = 0 996 @ frame_needed = 0, uses_anonymous_args = 0 997 push {r4, r5, r6, lr} 998 .save {r4, r5, r6, lr} 999 ldr r5, .L169 1000 ldrb r2, [r5, #1100] @ zero_extendqisi2 1001 sub r2, r2, #1 1002 cmp r2, #7 1003 pophi {r4, r5, r6, pc} 1004 ldr r2, [r5, #1040] 1005 mov r4, r0 1006 add r2, r2, r0 1007 ldrb r2, [r2, #120] @ zero_extendqisi2 1008 cmp r2, #0 1009 popeq {r4, r5, r6, pc} 1010 mov r1, #0 1011 bl hynix_set_rr_para 1012 ldr r3, [r5, #1040] 1013 mov r2, #0 1014 add r3, r3, r4 1015 strb r2, [r3, #120] 1016 pop {r4, r5, r6, pc} 1017.L170: 1018 .align 2 1019.L169: 1020 .word .LANCHOR0 1021 .fnend 1022 .size hynix_reconfig_rr_para, .-hynix_reconfig_rr_para 1023 .align 2 1024 .global nand_flash_print_info 1025 .syntax unified 1026 .arm 1027 .fpu softvfp 1028 .type nand_flash_print_info, %function 1029nand_flash_print_info: 1030 .fnstart 1031 @ args = 0, pretend = 0, frame = 0 1032 @ frame_needed = 0, uses_anonymous_args = 0 1033 push {r0, r1, r2, r3, r4, lr} 1034 .save {r4, lr} 1035 .pad #16 1036 ldr r4, .L290 1037 ldr r3, [r4] 1038 tst r3, #4096 1039 beq .L172 1040 ldr r1, .L290+4 1041 ldr r0, .L290+8 1042 bl printk 1043.L172: 1044 ldr r3, [r4] 1045 tst r3, #4096 1046 beq .L173 1047 ldr r3, .L290+12 1048 ldr r0, [r3, #1104] 1049 ldrb ip, [r0, #6] @ zero_extendqisi2 1050 ldrb r3, [r0, #3] @ zero_extendqisi2 1051 ldrb r2, [r0, #2] @ zero_extendqisi2 1052 ldrb r1, [r0, #1] @ zero_extendqisi2 1053 str ip, [sp, #8] 1054 ldrb ip, [r0, #5] @ zero_extendqisi2 1055 str ip, [sp, #4] 1056 ldrb r0, [r0, #4] @ zero_extendqisi2 1057 str r0, [sp] 1058 ldr r0, .L290+16 1059 bl printk 1060.L173: 1061 ldr r3, [r4] 1062 tst r3, #4096 1063 beq .L174 1064 ldr r3, .L290+12 1065 ldr r0, .L290+20 1066 ldr r3, [r3, #1104] 1067 ldrb r1, [r3, #8] @ zero_extendqisi2 1068 bl printk 1069.L174: 1070 ldr r3, [r4] 1071 tst r3, #4096 1072 beq .L175 1073 ldr r3, .L290+12 1074 ldr r0, .L290+24 1075 ldr r3, [r3, #1104] 1076 ldrb r1, [r3, #9] @ zero_extendqisi2 1077 bl printk 1078.L175: 1079 ldr r3, [r4] 1080 tst r3, #4096 1081 beq .L176 1082 ldr r3, .L290+12 1083 ldr r0, .L290+28 1084 ldr r3, [r3, #1104] 1085 ldrh r1, [r3, #10] 1086 bl printk 1087.L176: 1088 ldr r3, [r4] 1089 tst r3, #4096 1090 beq .L177 1091 ldr r3, .L290+12 1092 ldr r0, .L290+32 1093 ldr r3, [r3, #1104] 1094 ldrb r1, [r3, #12] @ zero_extendqisi2 1095 bl printk 1096.L177: 1097 ldr r3, [r4] 1098 tst r3, #4096 1099 beq .L178 1100 ldr r3, .L290+12 1101 ldr r0, .L290+36 1102 ldr r3, [r3, #1104] 1103 ldrb r1, [r3, #13] @ zero_extendqisi2 1104 bl printk 1105.L178: 1106 ldr r3, [r4] 1107 tst r3, #4096 1108 beq .L179 1109 ldr r3, .L290+12 1110 ldr r0, .L290+40 1111 ldr r3, [r3, #1104] 1112 ldrh r1, [r3, #14] 1113 bl printk 1114.L179: 1115 ldr r3, [r4] 1116 tst r3, #4096 1117 beq .L180 1118 ldr r3, .L290+12 1119 ldr r0, .L290+44 1120 ldr r3, [r3, #1104] 1121 ldrb r1, [r3, #23] @ zero_extendqisi2 1122 bl printk 1123.L180: 1124 ldr r3, [r4] 1125 tst r3, #4096 1126 beq .L181 1127 ldr r3, .L290+12 1128 ldr r0, .L290+48 1129 ldr r3, [r3, #1104] 1130 ldrb r1, [r3, #18] @ zero_extendqisi2 1131 bl printk 1132.L181: 1133 ldr r3, [r4] 1134 tst r3, #4096 1135 beq .L182 1136 ldr r3, .L290+12 1137 ldr r0, .L290+52 1138 ldr r3, [r3, #1104] 1139 ldrb r1, [r3, #19] @ zero_extendqisi2 1140 bl printk 1141.L182: 1142 ldr r3, [r4] 1143 tst r3, #4096 1144 beq .L183 1145 ldr r3, .L290+12 1146 ldr r0, .L290+56 1147 ldr r3, [r3, #1104] 1148 ldrb r1, [r3, #20] @ zero_extendqisi2 1149 bl printk 1150.L183: 1151 ldr r3, [r4] 1152 tst r3, #4096 1153 beq .L184 1154 ldr r3, .L290+12 1155 ldr r0, .L290+60 1156 ldrb r1, [r3, #1108] @ zero_extendqisi2 1157 bl printk 1158.L184: 1159 ldr r3, [r4] 1160 tst r3, #4096 1161 beq .L185 1162 ldr r3, .L290+12 1163 ldr r0, .L290+64 1164 ldr r3, [r3, #1104] 1165 ldrb r1, [r3, #22] @ zero_extendqisi2 1166 bl printk 1167.L185: 1168 ldr r3, [r4] 1169 tst r3, #4096 1170 beq .L186 1171 ldr r3, .L290+12 1172 ldr r0, .L290+68 1173 ldrb r1, [r3, #1109] @ zero_extendqisi2 1174 bl printk 1175.L186: 1176 ldr r3, [r4] 1177 tst r3, #4096 1178 beq .L187 1179 ldr r3, .L290+12 1180 ldr r0, .L290+72 1181 ldr r3, [r3, #1104] 1182 ldrh r1, [r3, #16] 1183 and r1, r1, #1 1184 bl printk 1185.L187: 1186 ldr r3, [r4] 1187 tst r3, #4096 1188 beq .L188 1189 ldr r3, .L290+12 1190 ldr r0, .L290+76 1191 ldr r3, [r3, #1104] 1192 ldrh r1, [r3, #16] 1193 ubfx r1, r1, #1, #1 1194 bl printk 1195.L188: 1196 ldr r3, [r4] 1197 tst r3, #4096 1198 beq .L189 1199 ldr r3, .L290+12 1200 ldr r0, .L290+80 1201 ldr r3, [r3, #1104] 1202 ldrh r1, [r3, #16] 1203 ubfx r1, r1, #2, #1 1204 bl printk 1205.L189: 1206 ldr r3, [r4] 1207 tst r3, #4096 1208 beq .L190 1209 ldr r3, .L290+12 1210 ldr r0, .L290+84 1211 ldr r3, [r3, #1104] 1212 ldrh r1, [r3, #16] 1213 ubfx r1, r1, #3, #1 1214 bl printk 1215.L190: 1216 ldr r3, [r4] 1217 tst r3, #4096 1218 beq .L191 1219 ldr r3, .L290+12 1220 ldr r0, .L290+88 1221 ldr r3, [r3, #1104] 1222 ldrh r1, [r3, #16] 1223 ubfx r1, r1, #4, #1 1224 bl printk 1225.L191: 1226 ldr r3, [r4] 1227 tst r3, #4096 1228 beq .L192 1229 ldr r3, .L290+12 1230 ldr r0, .L290+92 1231 ldr r3, [r3, #1104] 1232 ldrh r1, [r3, #16] 1233 ubfx r1, r1, #5, #1 1234 bl printk 1235.L192: 1236 ldr r3, [r4] 1237 tst r3, #4096 1238 beq .L193 1239 ldr r3, .L290+12 1240 ldr r0, .L290+96 1241 ldr r3, [r3, #1104] 1242 ldrh r1, [r3, #16] 1243 ubfx r1, r1, #6, #1 1244 bl printk 1245.L193: 1246 ldr r3, [r4] 1247 tst r3, #4096 1248 beq .L194 1249 ldr r3, .L290+12 1250 ldr r0, .L290+100 1251 ldr r3, [r3, #1104] 1252 ldrh r1, [r3, #16] 1253 ubfx r1, r1, #7, #1 1254 bl printk 1255.L194: 1256 ldr r3, [r4] 1257 tst r3, #4096 1258 beq .L195 1259 ldr r3, .L290+12 1260 ldr r0, .L290+104 1261 ldr r3, [r3, #1104] 1262 ldrh r1, [r3, #16] 1263 ubfx r1, r1, #8, #1 1264 bl printk 1265.L195: 1266 ldr r3, [r4] 1267 tst r3, #4096 1268 beq .L196 1269 ldr r3, .L290+12 1270 ldr r0, .L290+108 1271 ldr r3, [r3, #1104] 1272 ldrh r1, [r3, #16] 1273 ubfx r1, r1, #9, #1 1274 bl printk 1275.L196: 1276 ldr r3, [r4] 1277 tst r3, #4096 1278 beq .L197 1279 ldr r3, .L290+12 1280 ldr r0, .L290+112 1281 ldr r3, [r3, #1104] 1282 ldrh r1, [r3, #16] 1283 ubfx r1, r1, #10, #1 1284 bl printk 1285.L197: 1286 ldr r3, [r4] 1287 tst r3, #4096 1288 beq .L198 1289 ldr r3, .L290+12 1290 ldr r0, .L290+116 1291 ldrb r2, [r3, #1110] @ zero_extendqisi2 1292 ldrb r1, [r3] @ zero_extendqisi2 1293 bl printk 1294.L198: 1295 ldr r3, [r4] 1296 tst r3, #4096 1297 beq .L199 1298 ldr r3, .L290+12 1299 ldr r0, .L290+120 1300 ldrb r2, [r3, #1122] @ zero_extendqisi2 1301 ldrb r1, [r3, #1121] @ zero_extendqisi2 1302 bl printk 1303.L199: 1304 ldr r3, [r4] 1305 tst r3, #4096 1306 beq .L200 1307 ldr r3, .L290+12 1308 ldr r0, .L290+124 1309 ldrb r2, [r3, #1120] @ zero_extendqisi2 1310 ldrb r1, [r3, #1119] @ zero_extendqisi2 1311 bl printk 1312.L200: 1313 ldr r3, [r4] 1314 tst r3, #4096 1315 beq .L171 1316 ldr r3, .L290+12 1317 ldr r0, .L290+128 1318 ldrb r1, [r3, #1143] @ zero_extendqisi2 1319 add sp, sp, #16 1320 @ sp needed 1321 pop {r4, lr} 1322 b printk 1323.L171: 1324 add sp, sp, #16 1325 @ sp needed 1326 pop {r4, pc} 1327.L291: 1328 .align 2 1329.L290: 1330 .word .LANCHOR2 1331 .word .LANCHOR1+189 1332 .word .LC4 1333 .word .LANCHOR0 1334 .word .LC5 1335 .word .LC6 1336 .word .LC7 1337 .word .LC8 1338 .word .LC9 1339 .word .LC10 1340 .word .LC11 1341 .word .LC12 1342 .word .LC13 1343 .word .LC14 1344 .word .LC15 1345 .word .LC16 1346 .word .LC17 1347 .word .LC18 1348 .word .LC19 1349 .word .LC20 1350 .word .LC21 1351 .word .LC22 1352 .word .LC23 1353 .word .LC24 1354 .word .LC25 1355 .word .LC26 1356 .word .LC27 1357 .word .LC28 1358 .word .LC29 1359 .word .LC30 1360 .word .LC31 1361 .word .LC32 1362 .word .LC33 1363 .fnend 1364 .size nand_flash_print_info, .-nand_flash_print_info 1365 .align 2 1366 .global timer_delay_ns 1367 .syntax unified 1368 .arm 1369 .fpu softvfp 1370 .type timer_delay_ns, %function 1371timer_delay_ns: 1372 .fnstart 1373 @ args = 0, pretend = 0, frame = 0 1374 @ frame_needed = 0, uses_anonymous_args = 0 1375 @ link register save eliminated. 1376 b ndelay 1377 .fnend 1378 .size timer_delay_ns, .-timer_delay_ns 1379 .align 2 1380 .global nandc_set_ddr_para 1381 .syntax unified 1382 .arm 1383 .fpu softvfp 1384 .type nandc_set_ddr_para, %function 1385nandc_set_ddr_para: 1386 .fnstart 1387 @ args = 0, pretend = 0, frame = 0 1388 @ frame_needed = 0, uses_anonymous_args = 0 1389 @ link register save eliminated. 1390 ldr r2, .L296 1391 ldrb r3, [r2, #1028] @ zero_extendqisi2 1392 ldr r2, [r2, #1044] 1393 cmp r3, #9 1394 lsl r3, r0, #16 1395 lsl r0, r0, #8 1396 orr r3, r3, r0 1397 orr r3, r3, #3 1398 streq r3, [r2, #80] 1399 strne r3, [r2, #304] 1400 bx lr 1401.L297: 1402 .align 2 1403.L296: 1404 .word .LANCHOR0 1405 .fnend 1406 .size nandc_set_ddr_para, .-nandc_set_ddr_para 1407 .align 2 1408 .global nandc_get_ddr_para 1409 .syntax unified 1410 .arm 1411 .fpu softvfp 1412 .type nandc_get_ddr_para, %function 1413nandc_get_ddr_para: 1414 .fnstart 1415 @ args = 0, pretend = 0, frame = 0 1416 @ frame_needed = 0, uses_anonymous_args = 0 1417 @ link register save eliminated. 1418 ldr r3, .L302 1419 ldrb r2, [r3, #1028] @ zero_extendqisi2 1420 ldr r3, [r3, #1044] 1421 cmp r2, #9 1422 ldreq r0, [r3, #80] 1423 ldrne r0, [r3, #304] 1424 ubfx r0, r0, #8, #8 1425 bx lr 1426.L303: 1427 .align 2 1428.L302: 1429 .word .LANCHOR0 1430 .fnend 1431 .size nandc_get_ddr_para, .-nandc_get_ddr_para 1432 .align 2 1433 .global nandc_set_if_mode 1434 .syntax unified 1435 .arm 1436 .fpu softvfp 1437 .type nandc_set_if_mode, %function 1438nandc_set_if_mode: 1439 .fnstart 1440 @ args = 0, pretend = 0, frame = 0 1441 @ frame_needed = 0, uses_anonymous_args = 0 1442 @ link register save eliminated. 1443 ldr r1, .L312 1444 ands ip, r0, #6 1445 ldr r3, [r1, #1044] 1446 ldr r2, [r3] 1447 bfieq r2, ip, #13, #1 1448 beq .L308 1449 ldrb r1, [r1, #1028] @ zero_extendqisi2 1450 orr r2, r2, #24576 1451 bfc r2, #15, #1 1452 tst r0, #4 1453 orr r2, r2, #196608 1454 movw r0, #8321 1455 orrne r2, r2, #32768 1456 cmp r1, #9 1457 ldr r1, .L312+4 1458 streq r0, [r3, #8] 1459 strne r0, [r3, #344] 1460 streq r1, [r3, #80] 1461 moveq r1, #38 1462 strne r1, [r3, #304] 1463 movne r1, #38 1464 streq r1, [r3, #84] 1465 moveq r1, #39 1466 strne r1, [r3, #308] 1467 movne r1, #39 1468 streq r1, [r3, #84] 1469 strne r1, [r3, #308] 1470.L308: 1471 str r2, [r3] 1472 bx lr 1473.L313: 1474 .align 2 1475.L312: 1476 .word .LANCHOR0 1477 .word 1052675 1478 .fnend 1479 .size nandc_set_if_mode, .-nandc_set_if_mode 1480 .align 2 1481 .global nandc_cs 1482 .syntax unified 1483 .arm 1484 .fpu softvfp 1485 .type nandc_cs, %function 1486nandc_cs: 1487 .fnstart 1488 @ args = 0, pretend = 0, frame = 0 1489 @ frame_needed = 0, uses_anonymous_args = 0 1490 @ link register save eliminated. 1491 ldr r3, .L315 1492 mov r2, #1 1493 lsl r0, r2, r0 1494 ldr r1, [r3, #1044] 1495 ldr r3, [r1] 1496 bfi r3, r0, #0, #8 1497 str r3, [r1] 1498 bx lr 1499.L316: 1500 .align 2 1501.L315: 1502 .word .LANCHOR0 1503 .fnend 1504 .size nandc_cs, .-nandc_cs 1505 .align 2 1506 .global flash_wait_device_ready_raw 1507 .syntax unified 1508 .arm 1509 .fpu softvfp 1510 .type flash_wait_device_ready_raw, %function 1511flash_wait_device_ready_raw: 1512 .fnstart 1513 @ args = 0, pretend = 0, frame = 8 1514 @ frame_needed = 0, uses_anonymous_args = 0 1515 push {r0, r1, r2, r4, r5, r6, r7, r8, r9, r10, fp, lr} 1516 .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} 1517 .pad #12 1518 mov r6, r0 1519 ldr r4, .L326 1520 mov r5, r1 1521 str r2, [sp, #4] 1522 ldrb r3, [r4, #1109] @ zero_extendqisi2 1523 cmp r3, r0 1524 bhi .L318 1525 mov r2, #812 1526 ldr r1, .L326+4 1527 ldr r0, .L326+8 1528 bl printk 1529 bl dump_stack 1530.L318: 1531 add r6, r4, r6 1532 ldr r3, [r4, #1044] 1533 ldrb r6, [r6, #1144] @ zero_extendqisi2 1534 lsr r8, r5, #8 1535 lsr r9, r5, #16 1536 lsr r10, r5, #24 1537 mov fp, #120 1538 add r7, r3, r6, lsl #8 1539.L320: 1540 mov r0, r6 1541 bl nandc_cs 1542 uxtb r2, r5 1543 str fp, [r7, #2056] 1544 mov r0, #120 1545 str r2, [r7, #2052] 1546 ldrb r2, [r4, #1152] @ zero_extendqisi2 1547 str r8, [r7, #2052] 1548 str r9, [r7, #2052] 1549 cmp r2, #0 1550 strne r10, [r7, #2052] 1551 bl ndelay 1552 ldr r0, [r7, #2048] 1553 uxtb r0, r0 1554 bl nandc_de_cs.constprop.35 1555 ldr r3, [sp, #4] 1556 bics r3, r3, r0 1557 movne r2, #1 1558 moveq r2, #0 1559 cmp r0, #255 1560 orreq r2, r2, #1 1561 cmp r2, #0 1562 bne .L320 1563 add sp, sp, #12 1564 @ sp needed 1565 pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} 1566.L327: 1567 .align 2 1568.L326: 1569 .word .LANCHOR0 1570 .word .LANCHOR1+211 1571 .word .LC0 1572 .fnend 1573 .size flash_wait_device_ready_raw, .-flash_wait_device_ready_raw 1574 .align 2 1575 .global flash_wait_device_ready 1576 .syntax unified 1577 .arm 1578 .fpu softvfp 1579 .type flash_wait_device_ready, %function 1580flash_wait_device_ready: 1581 .fnstart 1582 @ args = 0, pretend = 0, frame = 0 1583 @ frame_needed = 0, uses_anonymous_args = 0 1584 push {r4, r5, r6, r7, r8, r9, r10, lr} 1585 .save {r4, r5, r6, r7, r8, r9, r10, lr} 1586 mov r3, #1 1587 ldr r5, .L339 1588 tst r0, #50331648 1589 mov r7, r1 1590 ldrb r6, [r5, #1153] @ zero_extendqisi2 1591 rsb r2, r6, #24 1592 lsl r6, r3, r6 1593 lsl r4, r3, r2 1594 sub r6, r6, #1 1595 sub r4, r4, #1 1596 and r6, r6, r0, asr r2 1597 and r4, r4, r0 1598 uxtb r6, r6 1599 bne .L329 1600 ldrb r3, [r5] @ zero_extendqisi2 1601 cmp r3, #0 1602 beq .L330 1603 ldrb r3, [r5, #1] @ zero_extendqisi2 1604 cmp r3, #0 1605 beq .L329 1606.L330: 1607 ldrh r8, [r5, #2] 1608 mov r0, r4 1609 mov r1, r8 1610 bl __aeabi_uidiv 1611 mov r1, r8 1612 mul r9, r8, r0 1613 mov r0, r4 1614 bl __aeabi_uidivmod 1615 ldrb r3, [r5, #1] @ zero_extendqisi2 1616 lsl r1, r1, #1 1617 cmp r3, #0 1618 addeq r5, r5, r1 1619 addne r4, r1, r9 1620 ldrheq r4, [r5, #4] 1621 addeq r4, r4, r9 1622.L329: 1623 mov r2, r7 1624 mov r1, r4 1625 mov r0, r6 1626 pop {r4, r5, r6, r7, r8, r9, r10, lr} 1627 b flash_wait_device_ready_raw 1628.L340: 1629 .align 2 1630.L339: 1631 .word .LANCHOR0 1632 .fnend 1633 .size flash_wait_device_ready, .-flash_wait_device_ready 1634 .align 2 1635 .global nandc_de_cs 1636 .syntax unified 1637 .arm 1638 .fpu softvfp 1639 .type nandc_de_cs, %function 1640nandc_de_cs: 1641 .fnstart 1642 @ args = 0, pretend = 0, frame = 0 1643 @ frame_needed = 0, uses_anonymous_args = 0 1644 @ link register save eliminated. 1645 ldr r3, .L342 1646 ldr r2, [r3, #1044] 1647 ldr r3, [r2] 1648 bfc r3, #0, #8 1649 bfc r3, #17, #1 1650 str r3, [r2] 1651 bx lr 1652.L343: 1653 .align 2 1654.L342: 1655 .word .LANCHOR0 1656 .fnend 1657 .size nandc_de_cs, .-nandc_de_cs 1658 .align 2 1659 .global nandc_wait_flash_ready_no_delay 1660 .syntax unified 1661 .arm 1662 .fpu softvfp 1663 .type nandc_wait_flash_ready_no_delay, %function 1664nandc_wait_flash_ready_no_delay: 1665 .fnstart 1666 @ args = 0, pretend = 0, frame = 8 1667 @ frame_needed = 0, uses_anonymous_args = 0 1668 push {r0, r1, r2, r4, r5, lr} 1669 .save {r4, r5, lr} 1670 .pad #12 1671 ldr r4, .L350 1672 ldr r5, .L350+4 1673.L346: 1674 ldr r3, [r5, #1044] 1675 ldr r3, [r3] 1676 str r3, [sp, #4] 1677 ldr r3, [sp, #4] 1678 tst r3, #512 1679 bne .L347 1680 mov r0, #10 1681 bl ndelay 1682 subs r4, r4, #1 1683 bne .L346 1684 mvn r0, #0 1685.L344: 1686 add sp, sp, #12 1687 @ sp needed 1688 pop {r4, r5, pc} 1689.L347: 1690 mov r0, #0 1691 b .L344 1692.L351: 1693 .align 2 1694.L350: 1695 .word 100000 1696 .word .LANCHOR0 1697 .fnend 1698 .size nandc_wait_flash_ready_no_delay, .-nandc_wait_flash_ready_no_delay 1699 .align 2 1700 .global zftl_flash_enter_slc_mode 1701 .syntax unified 1702 .arm 1703 .fpu softvfp 1704 .type zftl_flash_enter_slc_mode, %function 1705zftl_flash_enter_slc_mode: 1706 .fnstart 1707 @ args = 0, pretend = 0, frame = 0 1708 @ frame_needed = 0, uses_anonymous_args = 0 1709 ldr r3, .L375 1710 ldrb r2, [r3] @ zero_extendqisi2 1711 cmp r2, #0 1712 bxeq lr 1713 cmp r2, #1 1714 push {r4, r5, r6, r7, r8, lr} 1715 .save {r4, r5, r6, r7, r8, lr} 1716 ldr r5, [r3, #1044] 1717 bne .L355 1718 ldr r3, .L375+4 1719 ldrb r3, [r3, #33] @ zero_extendqisi2 1720 cmp r3, #0 1721 addne r4, r5, r0, lsl #8 1722 bne .L374 1723 pop {r4, r5, r6, r7, r8, pc} 1724.L355: 1725 cmp r2, #2 1726 mov r4, r0 1727 bne .L357 1728 add r3, r3, r0 1729 ldrb r2, [r3, #1154] @ zero_extendqisi2 1730 cmp r2, #0 1731 popeq {r4, r5, r6, r7, r8, pc} 1732 ldr r6, .L375+4 1733 mov r2, #0 1734 strb r2, [r3, #1154] 1735 ldrb r3, [r6, #33] @ zero_extendqisi2 1736 cmp r3, r2 1737 popeq {r4, r5, r6, r7, r8, pc} 1738 bl nandc_wait_flash_ready_no_delay 1739 ldrb r3, [r6, #33] @ zero_extendqisi2 1740 add r4, r5, r4, lsl #8 1741.L374: 1742 str r3, [r4, #2056] 1743 pop {r4, r5, r6, r7, r8, pc} 1744.L357: 1745 cmp r2, #3 1746 popne {r4, r5, r6, r7, r8, pc} 1747 add r6, r3, r0 1748 ldrb r3, [r6, #1154] @ zero_extendqisi2 1749 cmp r3, #0 1750 popeq {r4, r5, r6, r7, r8, pc} 1751 add r4, r5, r4, lsl #8 1752 mov r7, #0 1753 bl nandc_wait_flash_ready_no_delay 1754 mov r3, #239 1755 mov r0, #100 1756 str r3, [r4, #2056] 1757 mov r3, #145 1758 str r3, [r4, #2052] 1759 strb r7, [r6, #1154] 1760 bl ndelay 1761 mov r3, #1 1762 str r7, [r4, #2048] 1763 mov r0, #150 1764 str r3, [r4, #2048] 1765 str r7, [r4, #2048] 1766 str r7, [r4, #2048] 1767 bl ndelay 1768 bl nandc_wait_flash_ready_no_delay 1769 mov r3, #218 1770 mov r0, #50 1771 str r3, [r4, #2056] 1772 pop {r4, r5, r6, r7, r8, lr} 1773 b ndelay 1774.L376: 1775 .align 2 1776.L375: 1777 .word .LANCHOR0 1778 .word .LANCHOR2 1779 .fnend 1780 .size zftl_flash_enter_slc_mode, .-zftl_flash_enter_slc_mode 1781 .align 2 1782 .global zftl_flash_exit_slc_mode 1783 .syntax unified 1784 .arm 1785 .fpu softvfp 1786 .type zftl_flash_exit_slc_mode, %function 1787zftl_flash_exit_slc_mode: 1788 .fnstart 1789 @ args = 0, pretend = 0, frame = 0 1790 @ frame_needed = 0, uses_anonymous_args = 0 1791 ldr r3, .L402 1792 ldrb r2, [r3] @ zero_extendqisi2 1793 cmp r2, #0 1794 bxeq lr 1795 cmp r2, #1 1796 push {r4, r5, r6, r7, r8, lr} 1797 .save {r4, r5, r6, r7, r8, lr} 1798 ldr r7, [r3, #1044] 1799 bne .L380 1800 ldr r3, .L402+4 1801 ldrb r3, [r3, #34] @ zero_extendqisi2 1802 cmp r3, #0 1803 addne r4, r7, r0, lsl #8 1804 bne .L401 1805 pop {r4, r5, r6, r7, r8, pc} 1806.L380: 1807 cmp r2, #2 1808 mov r4, r0 1809 bne .L382 1810 add r3, r3, r0 1811 ldrb r2, [r3, #1154] @ zero_extendqisi2 1812 cmp r2, #0 1813 popne {r4, r5, r6, r7, r8, pc} 1814 ldr r5, .L402+4 1815 ldrb r2, [r5, #16] @ zero_extendqisi2 1816 cmp r2, #2 1817 movne r2, #4 1818 strb r2, [r3, #1154] 1819 ldrb r3, [r5, #34] @ zero_extendqisi2 1820 cmp r3, #0 1821 popeq {r4, r5, r6, r7, r8, pc} 1822 bl nandc_wait_flash_ready_no_delay 1823 ldrb r3, [r5, #34] @ zero_extendqisi2 1824 add r4, r7, r4, lsl #8 1825.L401: 1826 str r3, [r4, #2056] 1827 pop {r4, r5, r6, r7, r8, pc} 1828.L382: 1829 cmp r2, #3 1830 popne {r4, r5, r6, r7, r8, pc} 1831 add r6, r3, r0 1832 ldrb r3, [r6, #1154] @ zero_extendqisi2 1833 cmp r3, #0 1834 popne {r4, r5, r6, r7, r8, pc} 1835 ldr r8, .L402+4 1836 lsl r4, r4, #8 1837 bl nandc_wait_flash_ready_no_delay 1838 ldrb r3, [r8, #16] @ zero_extendqisi2 1839 add r5, r7, r4 1840 mov r0, #100 1841 add r4, r7, r4 1842 cmp r3, #2 1843 movne r3, #4 1844 strb r3, [r6, #1154] 1845 mov r3, #239 1846 str r3, [r5, #2056] 1847 mov r3, #145 1848 str r3, [r5, #2052] 1849 bl ndelay 1850 ldrb r3, [r8, #11] @ zero_extendqisi2 1851 mov r0, #150 1852 cmp r3, #9 1853 mov r3, #1 1854 ldrbne r2, [r6, #1154] @ zero_extendqisi2 1855 streq r3, [r5, #2048] 1856 strne r2, [r5, #2048] 1857 str r3, [r5, #2048] 1858 mov r3, #0 1859 str r3, [r5, #2048] 1860 str r3, [r5, #2048] 1861 bl ndelay 1862 bl nandc_wait_flash_ready_no_delay 1863 mov r3, #223 1864 mov r0, #50 1865 str r3, [r4, #2056] 1866 pop {r4, r5, r6, r7, r8, lr} 1867 b ndelay 1868.L403: 1869 .align 2 1870.L402: 1871 .word .LANCHOR0 1872 .word .LANCHOR2 1873 .fnend 1874 .size zftl_flash_exit_slc_mode, .-zftl_flash_exit_slc_mode 1875 .align 2 1876 .global flash_start_page_read 1877 .syntax unified 1878 .arm 1879 .fpu softvfp 1880 .type flash_start_page_read, %function 1881flash_start_page_read: 1882 .fnstart 1883 @ args = 0, pretend = 0, frame = 0 1884 @ frame_needed = 0, uses_anonymous_args = 0 1885 push {r4, r5, r6, r7, r8, r9, r10, lr} 1886 .save {r4, r5, r6, r7, r8, r9, r10, lr} 1887 mvn r2, #0 1888 ldr r4, .L419 1889 mov r7, r0 1890 mov r10, r1 1891 ldrb r3, [r4, #1153] @ zero_extendqisi2 1892 rsb r5, r3, #24 1893 lsr r6, r1, r5 1894 bic r6, r6, r2, lsl r3 1895 ldrb r3, [r4, #1109] @ zero_extendqisi2 1896 uxtb r6, r6 1897 cmp r3, r6 1898 bhi .L405 1899 movw r2, #1013 1900 ldr r1, .L419+4 1901 ldr r0, .L419+8 1902 bl printk 1903 bl dump_stack 1904.L405: 1905 ldrb r3, [r4, #1109] @ zero_extendqisi2 1906 cmp r3, r6 1907 popls {r4, r5, r6, r7, r8, r9, r10, pc} 1908 add r6, r4, r6 1909 mvn r3, #0 1910 ldrb r9, [r6, #1144] @ zero_extendqisi2 1911 bic r5, r10, r3, lsl r5 1912 ubfx r10, r10, #24, #2 1913 ldr r6, [r4, #1044] 1914 mov r0, r9 1915 bl nandc_cs 1916 cmp r10, #0 1917 lsl r8, r9, #8 1918 bne .L407 1919 mov r0, r5 1920 bl slc_phy_page_address_calc 1921 ldrb r3, [r4] @ zero_extendqisi2 1922 mov r5, r0 1923 cmp r3, #0 1924 beq .L408 1925 mov r0, r9 1926 bl zftl_flash_enter_slc_mode 1927.L408: 1928 ldr r3, [r4, #1104] 1929 ldrb r2, [r3, #7] @ zero_extendqisi2 1930 cmp r2, #1 1931 bne .L410 1932 ldrb r3, [r3, #12] @ zero_extendqisi2 1933 cmp r3, #2 1934 addeq r3, r6, r8 1935 moveq r2, #38 1936 streq r2, [r3, #2056] 1937.L410: 1938 add r3, r6, r8 1939 mov r2, #0 1940 str r2, [r3, #2056] 1941 str r2, [r3, #2052] 1942 str r2, [r3, #2052] 1943 uxtb r2, r5 1944 str r2, [r3, #2052] 1945 lsr r2, r5, #8 1946 str r2, [r3, #2052] 1947 lsr r2, r5, #16 1948 str r2, [r3, #2052] 1949 ldrb r2, [r4, #1152] @ zero_extendqisi2 1950 cmp r2, #0 1951 lsrne r5, r5, #24 1952 strne r5, [r3, #2052] 1953 add r3, r6, r8 1954 str r7, [r3, #2056] 1955 pop {r4, r5, r6, r7, r8, r9, r10, pc} 1956.L407: 1957 ldr r3, [r4, #1104] 1958 ldrb r3, [r3, #12] @ zero_extendqisi2 1959 cmp r3, #3 1960 bne .L409 1961 ldrb r3, [r4, #1158] @ zero_extendqisi2 1962 cmp r3, #0 1963 bne .L409 1964 ldrb r3, [r4, #1159] @ zero_extendqisi2 1965 cmp r3, #0 1966 addeq r3, r6, r8 1967 streq r10, [r3, #2056] 1968 beq .L408 1969.L409: 1970 mov r0, r9 1971 bl zftl_flash_exit_slc_mode 1972 b .L408 1973.L420: 1974 .align 2 1975.L419: 1976 .word .LANCHOR0 1977 .word .LANCHOR1+239 1978 .word .LC0 1979 .fnend 1980 .size flash_start_page_read, .-flash_start_page_read 1981 .align 2 1982 .global nandc_wait_flash_ready 1983 .syntax unified 1984 .arm 1985 .fpu softvfp 1986 .type nandc_wait_flash_ready, %function 1987nandc_wait_flash_ready: 1988 .fnstart 1989 @ args = 0, pretend = 0, frame = 8 1990 @ frame_needed = 0, uses_anonymous_args = 0 1991 push {r0, r1, r2, r4, r5, lr} 1992 .save {r4, r5, lr} 1993 .pad #12 1994 mov r0, #150 1995 ldr r4, .L427 1996 ldr r5, .L427+4 1997 bl ndelay 1998.L423: 1999 ldr r3, [r5, #1044] 2000 ldr r3, [r3] 2001 str r3, [sp, #4] 2002 ldr r3, [sp, #4] 2003 tst r3, #512 2004 bne .L424 2005 mov r0, #10 2006 bl ndelay 2007 subs r4, r4, #1 2008 bne .L423 2009 mvn r0, #0 2010.L421: 2011 add sp, sp, #12 2012 @ sp needed 2013 pop {r4, r5, pc} 2014.L424: 2015 mov r0, #0 2016 b .L421 2017.L428: 2018 .align 2 2019.L427: 2020 .word 100000 2021 .word .LANCHOR0 2022 .fnend 2023 .size nandc_wait_flash_ready, .-nandc_wait_flash_ready 2024 .align 2 2025 .global sandisk_set_rr_para 2026 .syntax unified 2027 .arm 2028 .fpu softvfp 2029 .type sandisk_set_rr_para, %function 2030sandisk_set_rr_para: 2031 .fnstart 2032 @ args = 0, pretend = 0, frame = 0 2033 @ frame_needed = 0, uses_anonymous_args = 0 2034 mov r3, #239 2035 push {r4, r5, r6, lr} 2036 .save {r4, r5, r6, lr} 2037 str r3, [r0, #8] 2038 mov r3, #17 2039 mov r5, r0 2040 mov r4, r1 2041 str r3, [r0, #4] 2042 mov r0, #200 2043 bl ndelay 2044 ldr r0, .L436 2045 add r4, r4, r4, lsl #2 2046 ldr r1, .L436+4 2047 mov r2, #0 2048 sub ip, r0, #45 2049.L430: 2050 ldrb r3, [r1, #1101] @ zero_extendqisi2 2051 cmp r2, r3 2052 bcc .L433 2053 pop {r4, r5, r6, lr} 2054 b nandc_wait_flash_ready 2055.L433: 2056 ldrb r3, [r1, #1100] @ zero_extendqisi2 2057 cmp r3, #67 2058 add r3, r2, r4 2059 addeq r3, ip, r3 2060 addne r3, r0, r3 2061 ldrsb r3, [r3, #5] 2062 add r2, r2, #1 2063 str r3, [r5] 2064 b .L430 2065.L437: 2066 .align 2 2067.L436: 2068 .word .LANCHOR1+86 2069 .word .LANCHOR0 2070 .fnend 2071 .size sandisk_set_rr_para, .-sandisk_set_rr_para 2072 .align 2 2073 .global toshiba_3d_set_tlc_rr_para 2074 .syntax unified 2075 .arm 2076 .fpu softvfp 2077 .type toshiba_3d_set_tlc_rr_para, %function 2078toshiba_3d_set_tlc_rr_para: 2079 .fnstart 2080 @ args = 0, pretend = 0, frame = 0 2081 @ frame_needed = 0, uses_anonymous_args = 0 2082 push {r4, r5, r6, r7, r8, lr} 2083 .save {r4, r5, r6, r7, r8, lr} 2084 add r1, r1, #1 2085 ldr r5, .L440 2086 rsb r1, r1, r1, lsl #3 2087 mov r6, #0 2088 mov r7, #213 2089 mvn r3, #118 2090 add r5, r5, r1 2091 str r7, [r0, #8] 2092 str r6, [r0, #4] 2093 mov r4, r0 2094 str r3, [r0, #4] 2095 movw r3, #261 2096 ldrsb r3, [r5, r3] 2097 str r3, [r0] 2098 movw r3, #262 2099 ldrsb r3, [r5, r3] 2100 str r3, [r0] 2101 movw r3, #263 2102 ldrsb r3, [r5, r3] 2103 str r3, [r0] 2104 add r3, r5, #264 2105 ldrsb r3, [r3] 2106 str r3, [r0] 2107 bl nandc_wait_flash_ready 2108 mvn r3, #117 2109 str r7, [r4, #8] 2110 str r6, [r4, #4] 2111 str r3, [r4, #4] 2112 movw r3, #265 2113 ldrsb r3, [r5, r3] 2114 str r3, [r4] 2115 movw r3, #266 2116 ldrsb r3, [r5, r3] 2117 str r3, [r4] 2118 movw r3, #267 2119 ldrsb r3, [r5, r3] 2120 str r3, [r4] 2121 str r6, [r4] 2122 pop {r4, r5, r6, r7, r8, lr} 2123 b nandc_wait_flash_ready 2124.L441: 2125 .align 2 2126.L440: 2127 .word .LANCHOR1 2128 .fnend 2129 .size toshiba_3d_set_tlc_rr_para, .-toshiba_3d_set_tlc_rr_para 2130 .align 2 2131 .global toshiba_3d_set_slc_rr_para 2132 .syntax unified 2133 .arm 2134 .fpu softvfp 2135 .type toshiba_3d_set_slc_rr_para, %function 2136toshiba_3d_set_slc_rr_para: 2137 .fnstart 2138 @ args = 0, pretend = 0, frame = 0 2139 @ frame_needed = 0, uses_anonymous_args = 0 2140 @ link register save eliminated. 2141 mov r3, #213 2142 mvn r2, #116 2143 str r3, [r0, #8] 2144 mov r3, #0 2145 str r3, [r0, #4] 2146 str r2, [r0, #4] 2147 ldr r2, .L443 2148 add r1, r2, r1 2149 movw r2, #661 2150 ldrsb r2, [r1, r2] 2151 str r2, [r0] 2152 str r3, [r0] 2153 str r3, [r0] 2154 str r3, [r0] 2155 b nandc_wait_flash_ready 2156.L444: 2157 .align 2 2158.L443: 2159 .word .LANCHOR1 2160 .fnend 2161 .size toshiba_3d_set_slc_rr_para, .-toshiba_3d_set_slc_rr_para 2162 .align 2 2163 .global toshiba_tlc_set_rr_para 2164 .syntax unified 2165 .arm 2166 .fpu softvfp 2167 .type toshiba_tlc_set_rr_para, %function 2168toshiba_tlc_set_rr_para: 2169 .fnstart 2170 @ args = 0, pretend = 0, frame = 0 2171 @ frame_needed = 0, uses_anonymous_args = 0 2172 cmp r2, #0 2173 push {r4, r5, r6, lr} 2174 .save {r4, r5, r6, lr} 2175 ldr r3, .L449 2176 mov r6, #239 2177 beq .L446 2178 rsb r5, r1, r1, lsl #3 2179 mov r2, #18 2180 str r6, [r0, #8] 2181 mov r4, r0 2182 add r5, r3, r5 2183 str r2, [r0, #4] 2184 ldrb r3, [r5, #36] @ zero_extendqisi2 2185 str r3, [r0] 2186 ldrb r3, [r5, #37] @ zero_extendqisi2 2187 str r3, [r0] 2188 ldrb r3, [r5, #38] @ zero_extendqisi2 2189 str r3, [r0] 2190 ldrb r3, [r5, #39] @ zero_extendqisi2 2191 str r3, [r0] 2192 bl nandc_wait_flash_ready 2193 mov r3, #19 2194 str r6, [r4, #8] 2195 str r3, [r4, #4] 2196 ldrb r3, [r5, #40] @ zero_extendqisi2 2197 str r3, [r4] 2198 ldrb r3, [r5, #41] @ zero_extendqisi2 2199 str r3, [r4] 2200 ldrb r3, [r5, #42] @ zero_extendqisi2 2201 str r3, [r4] 2202 mov r3, #0 2203 str r3, [r4] 2204.L447: 2205 pop {r4, r5, r6, lr} 2206 b nandc_wait_flash_ready 2207.L446: 2208 mov ip, #20 2209 add r5, r3, r1 2210 str r6, [r0, #8] 2211 str ip, [r0, #4] 2212 ldrb r3, [r5, #365] @ zero_extendqisi2 2213 str r3, [r0] 2214 str r2, [r0] 2215 str r2, [r0] 2216 str r2, [r0] 2217 b .L447 2218.L450: 2219 .align 2 2220.L449: 2221 .word .LANCHOR2 2222 .fnend 2223 .size toshiba_tlc_set_rr_para, .-toshiba_tlc_set_rr_para 2224 .align 2 2225 .global ymtc_3d_set_tlc_rr_para 2226 .syntax unified 2227 .arm 2228 .fpu softvfp 2229 .type ymtc_3d_set_tlc_rr_para, %function 2230ymtc_3d_set_tlc_rr_para: 2231 .fnstart 2232 @ args = 0, pretend = 0, frame = 0 2233 @ frame_needed = 0, uses_anonymous_args = 0 2234 push {r4, r5, r6, r7, r8, lr} 2235 .save {r4, r5, r6, r7, r8, lr} 2236 rsb r1, r1, r1, lsl #3 2237 ldr r5, .L453 2238 mov r7, #239 2239 mov r3, #160 2240 mov r6, #0 2241 str r7, [r0, #8] 2242 mov r4, r0 2243 add r5, r5, r1 2244 str r3, [r0, #4] 2245 movw r3, #671 2246 ldrsb r3, [r5, r3] 2247 str r3, [r0] 2248 movw r3, #675 2249 ldrsb r3, [r5, r3] 2250 str r3, [r0] 2251 str r6, [r0] 2252 str r6, [r0] 2253 bl nandc_wait_flash_ready 2254 mov r3, #161 2255 str r7, [r4, #8] 2256 str r3, [r4, #4] 2257 add r3, r5, #672 2258 ldrsb r3, [r3] 2259 str r3, [r4] 2260 movw r3, #674 2261 ldrsb r3, [r5, r3] 2262 str r3, [r4] 2263 add r3, r5, #676 2264 ldrsb r3, [r3] 2265 str r3, [r4] 2266 str r6, [r4] 2267 bl nandc_wait_flash_ready 2268 mov r3, #162 2269 str r7, [r4, #8] 2270 str r3, [r4, #4] 2271 movw r3, #673 2272 ldrsb r3, [r5, r3] 2273 str r3, [r4] 2274 movw r3, #677 2275 ldrsb r3, [r5, r3] 2276 str r3, [r4] 2277 str r6, [r4] 2278 str r6, [r4] 2279 pop {r4, r5, r6, r7, r8, lr} 2280 b nandc_wait_flash_ready 2281.L454: 2282 .align 2 2283.L453: 2284 .word .LANCHOR1 2285 .fnend 2286 .size ymtc_3d_set_tlc_rr_para, .-ymtc_3d_set_tlc_rr_para 2287 .align 2 2288 .global ymtc_3d_set_slc_rr_para 2289 .syntax unified 2290 .arm 2291 .fpu softvfp 2292 .type ymtc_3d_set_slc_rr_para, %function 2293ymtc_3d_set_slc_rr_para: 2294 .fnstart 2295 @ args = 0, pretend = 0, frame = 0 2296 @ frame_needed = 0, uses_anonymous_args = 0 2297 @ link register save eliminated. 2298 mov r3, #239 2299 str r3, [r0, #8] 2300 mov r3, #163 2301 str r3, [r0, #4] 2302 ldr r3, .L456 2303 add r1, r3, r1 2304 movw r3, #1028 2305 ldrsb r3, [r1, r3] 2306 str r3, [r0] 2307 mov r3, #0 2308 str r3, [r0] 2309 str r3, [r0] 2310 str r3, [r0] 2311 b nandc_wait_flash_ready 2312.L457: 2313 .align 2 2314.L456: 2315 .word .LANCHOR1 2316 .fnend 2317 .size ymtc_3d_set_slc_rr_para, .-ymtc_3d_set_slc_rr_para 2318 .align 2 2319 .global flash_start_plane_read 2320 .syntax unified 2321 .arm 2322 .fpu softvfp 2323 .type flash_start_plane_read, %function 2324flash_start_plane_read: 2325 .fnstart 2326 @ args = 0, pretend = 0, frame = 0 2327 @ frame_needed = 0, uses_anonymous_args = 0 2328 push {r4, r5, r6, r7, r8, r9, r10, lr} 2329 .save {r4, r5, r6, r7, r8, r9, r10, lr} 2330 mov r3, #1 2331 ldr r4, .L487 2332 ubfx r9, r0, #24, #2 2333 ldrb r6, [r4, #1153] @ zero_extendqisi2 2334 rsb r2, r6, #24 2335 lsl r6, r3, r6 2336 lsl r5, r3, r2 2337 ldrb r3, [r4, #1109] @ zero_extendqisi2 2338 sub r6, r6, #1 2339 sub r5, r5, #1 2340 and r6, r6, r0, lsr r2 2341 and r7, r5, r0 2342 and r5, r5, r1 2343 uxtb r6, r6 2344 cmp r3, r6 2345 bhi .L459 2346 movw r2, #1148 2347 ldr r1, .L487+4 2348 ldr r0, .L487+8 2349 bl printk 2350 bl dump_stack 2351.L459: 2352 add r6, r4, r6 2353 ldr r8, [r4, #1044] 2354 ldrb r6, [r6, #1144] @ zero_extendqisi2 2355 mov r0, r6 2356 bl nandc_cs 2357 cmp r9, #0 2358 lsl r10, r6, #8 2359 bne .L460 2360 mov r0, r7 2361 bl slc_phy_page_address_calc 2362 mov r7, r0 2363 mov r0, r5 2364 bl slc_phy_page_address_calc 2365 ldrb r3, [r4] @ zero_extendqisi2 2366 mov r5, r0 2367 cmp r3, #0 2368 beq .L461 2369 mov r0, r6 2370 bl zftl_flash_enter_slc_mode 2371.L461: 2372 ldrb r3, [r4, #1127] @ zero_extendqisi2 2373 uxtb ip, r7 2374 lsr r0, r7, #8 2375 lsr r1, r7, #16 2376 cmp r3, #1 2377 bne .L463 2378 ldrb r3, [r4, #1119] @ zero_extendqisi2 2379 add r6, r8, r10 2380 str r3, [r6, #2056] 2381 mov r3, #0 2382 str r3, [r6, #2052] 2383 str r3, [r6, #2052] 2384 ldrb r3, [r4, #1152] @ zero_extendqisi2 2385 str ip, [r6, #2052] 2386 str r0, [r6, #2052] 2387 cmp r3, #0 2388 ldrb r3, [r4, #1120] @ zero_extendqisi2 2389 lsrne r7, r7, #24 2390 str r1, [r6, #2052] 2391 strne r7, [r6, #2052] 2392 add r7, r8, r10 2393 str r3, [r7, #2056] 2394 bl nandc_wait_flash_ready 2395 ldr r3, [r4, #1104] 2396 cmp r9, #0 2397 add r2, r8, r10 2398 add r8, r8, r10 2399 ldrb r3, [r3, #12] @ zero_extendqisi2 2400 sub r3, r3, #3 2401 clz r3, r3 2402 lsr r3, r3, #5 2403 moveq r3, #0 2404 cmp r3, #0 2405 mov r3, #0 2406 strne r9, [r7, #2056] 2407 str r3, [r2, #2056] 2408 str r3, [r6, #2052] 2409 str r3, [r6, #2052] 2410 uxtb r3, r5 2411 str r3, [r6, #2052] 2412 lsr r3, r5, #8 2413 str r3, [r6, #2052] 2414 lsr r3, r5, #16 2415 str r3, [r6, #2052] 2416 ldrb r3, [r4, #1152] @ zero_extendqisi2 2417 cmp r3, #0 2418 lsrne r5, r5, #24 2419 strne r5, [r6, #2052] 2420.L486: 2421 mov r3, #48 2422 str r3, [r8, #2056] 2423 pop {r4, r5, r6, r7, r8, r9, r10, pc} 2424.L460: 2425 ldr r3, [r4, #1104] 2426 ldrb r3, [r3, #12] @ zero_extendqisi2 2427 cmp r3, #3 2428 bne .L462 2429 ldrb r3, [r4, #1158] @ zero_extendqisi2 2430 cmp r3, #0 2431 bne .L462 2432 ldrb r3, [r4, #1159] @ zero_extendqisi2 2433 cmp r3, #0 2434 addeq r3, r8, r10 2435 streq r9, [r3, #2056] 2436 beq .L461 2437.L462: 2438 mov r0, r6 2439 bl zftl_flash_exit_slc_mode 2440 b .L461 2441.L463: 2442 ldr r2, [r4, #1104] 2443 ldrb r3, [r2, #7] @ zero_extendqisi2 2444 cmp r3, #1 2445 bne .L468 2446 ldrb r3, [r2, #12] @ zero_extendqisi2 2447 cmp r3, #2 2448 addeq r3, r8, r10 2449 moveq lr, #38 2450 streq lr, [r3, #2056] 2451.L468: 2452 ldrb lr, [r4, #1119] @ zero_extendqisi2 2453 add r3, r8, r10 2454 cmp r9, #0 2455 add r8, r8, r10 2456 str lr, [r3, #2056] 2457 str ip, [r3, #2052] 2458 str r0, [r3, #2052] 2459 str r1, [r3, #2052] 2460 ldrb r2, [r2, #12] @ zero_extendqisi2 2461 sub r2, r2, #3 2462 clz r2, r2 2463 lsr r2, r2, #5 2464 moveq r2, #0 2465 cmp r2, #0 2466 ldrb r2, [r4, #1120] @ zero_extendqisi2 2467 strne r9, [r3, #2056] 2468 str r2, [r8, #2056] 2469 uxtb r2, r5 2470 str r2, [r3, #2052] 2471 lsr r2, r5, #8 2472 lsr r5, r5, #16 2473 str r2, [r3, #2052] 2474 str r5, [r3, #2052] 2475 b .L486 2476.L488: 2477 .align 2 2478.L487: 2479 .word .LANCHOR0 2480 .word .LANCHOR1+1038 2481 .word .LC0 2482 .fnend 2483 .size flash_start_plane_read, .-flash_start_plane_read 2484 .align 2 2485 .global flash_set_interface_mode 2486 .syntax unified 2487 .arm 2488 .fpu softvfp 2489 .type flash_set_interface_mode, %function 2490flash_set_interface_mode: 2491 .fnstart 2492 @ args = 0, pretend = 0, frame = 0 2493 @ frame_needed = 0, uses_anonymous_args = 0 2494 push {r4, r5, r6, r7, r8, r9, r10, lr} 2495 .save {r4, r5, r6, r7, r8, r9, r10, lr} 2496 mov r8, r0 2497 ldr r6, .L528 2498 mov r10, #0 2499 ldr r9, .L528+4 2500 mov r7, r6 2501.L502: 2502 ldrb r4, [r9, r10, lsl #3] @ zero_extendqisi2 2503 ldr r5, [r6, #1044] 2504 cmp r4, #69 2505 beq .L490 2506 add r3, r4, #119 2507 sub r1, r4, #44 2508 uxtb r2, r3 2509 clz r1, r1 2510 lsr r1, r1, #5 2511 cmp r2, #18 2512 ldrls r3, .L528+8 2513 movhi r3, #1 2514 mvnls r3, r3, lsr r2 2515 and r3, r3, #1 2516 eor r3, r3, #1 2517 orrs r3, r1, r3 2518 beq .L492 2519.L490: 2520 cmp r8, #1 2521 ldrb r1, [r7, #1192] @ zero_extendqisi2 2522 bne .L493 2523 tst r1, #1 2524 beq .L492 2525 ldr r3, .L528+12 2526 ldr r3, [r3] 2527 tst r3, #4096 2528 beq .L494 2529 ldr r0, .L528+16 2530 bl printk 2531.L494: 2532 lsl r2, r10, #8 2533 cmp r4, #137 2534 cmpne r4, #44 2535 mov r1, #239 2536 add r3, r5, r2 2537 str r1, [r3, #2056] 2538 bne .L495 2539.L527: 2540 mov r1, #1 2541 str r1, [r3, #2052] 2542 mov r1, #5 2543 b .L525 2544.L495: 2545 cmp r4, #155 2546 movne r1, #128 2547 strne r1, [r3, #2052] 2548 movne r1, #1 2549 beq .L527 2550.L525: 2551 str r1, [r3, #2048] 2552 add r5, r5, r2 2553 mov r3, #0 2554 str r3, [r5, #2048] 2555 str r3, [r5, #2048] 2556 str r3, [r5, #2048] 2557.L492: 2558 add r10, r10, #1 2559 cmp r10, #4 2560 bne .L502 2561 bl nandc_wait_flash_ready 2562 mov r0, #0 2563 pop {r4, r5, r6, r7, r8, r9, r10, pc} 2564.L493: 2565 tst r1, #4 2566 beq .L492 2567 ldr r3, .L528+12 2568 ldr r3, [r3] 2569 tst r3, #4096 2570 beq .L498 2571 ldr r0, .L528+20 2572 bl printk 2573.L498: 2574 lsl r2, r10, #8 2575 mov r1, #239 2576 cmp r4, #137 2577 cmpne r4, #44 2578 add r3, r5, r2 2579 str r1, [r3, #2056] 2580 moveq r1, #1 2581 moveq r1, #1 2582 movne r1, #0 2583 streq r1, [r3, #2052] 2584 moveq r1, #35 2585 beq .L525 2586 cmp r4, #155 2587 moveq r1, #1 2588 movne r0, #128 2589 streq r1, [r3, #2052] 2590 moveq r1, #37 2591 strne r0, [r3, #2052] 2592 b .L525 2593.L529: 2594 .align 2 2595.L528: 2596 .word .LANCHOR0 2597 .word .LANCHOR0+1160 2598 .word 294913 2599 .word .LANCHOR2 2600 .word .LC34 2601 .word .LC35 2602 .fnend 2603 .size flash_set_interface_mode, .-flash_set_interface_mode 2604 .align 2 2605 .syntax unified 2606 .arm 2607 .fpu softvfp 2608 .type mt_auto_read_calibration_config, %function 2609mt_auto_read_calibration_config: 2610 .fnstart 2611 @ args = 0, pretend = 0, frame = 0 2612 @ frame_needed = 0, uses_anonymous_args = 0 2613 push {r4, r5, r6, lr} 2614 .save {r4, r5, r6, lr} 2615 mov r5, r1 2616 mov r6, r0 2617 bl nandc_wait_flash_ready 2618 ldr r3, .L532 2619 mov r0, #200 2620 ldr r4, [r3, #1044] 2621 mov r3, #239 2622 add r4, r4, r6, lsl #8 2623 str r3, [r4, #2056] 2624 mov r3, #150 2625 str r3, [r4, #2052] 2626 bl ndelay 2627 mov r3, #0 2628 str r5, [r4, #2048] 2629 str r3, [r4, #2048] 2630 str r3, [r4, #2048] 2631 str r3, [r4, #2048] 2632 pop {r4, r5, r6, pc} 2633.L533: 2634 .align 2 2635.L532: 2636 .word .LANCHOR0 2637 .fnend 2638 .size mt_auto_read_calibration_config, .-mt_auto_read_calibration_config 2639 .align 2 2640 .global flash_reset 2641 .syntax unified 2642 .arm 2643 .fpu softvfp 2644 .type flash_reset, %function 2645flash_reset: 2646 .fnstart 2647 @ args = 0, pretend = 0, frame = 0 2648 @ frame_needed = 0, uses_anonymous_args = 0 2649 @ link register save eliminated. 2650 ldr r3, .L535 2651 ldr r3, [r3, #1044] 2652 add r0, r3, r0, lsl #8 2653 mov r3, #255 2654 str r3, [r0, #2056] 2655 b nandc_wait_flash_ready 2656.L536: 2657 .align 2 2658.L535: 2659 .word .LANCHOR0 2660 .fnend 2661 .size flash_reset, .-flash_reset 2662 .align 2 2663 .global flash_read_id 2664 .syntax unified 2665 .arm 2666 .fpu softvfp 2667 .type flash_read_id, %function 2668flash_read_id: 2669 .fnstart 2670 @ args = 0, pretend = 0, frame = 0 2671 @ frame_needed = 0, uses_anonymous_args = 0 2672 push {r0, r1, r2, r3, r4, r5, r6, lr} 2673 .save {r4, r5, r6, lr} 2674 .pad #16 2675 mov r6, r0 2676 ldr r3, .L540 2677 mov r4, r1 2678 ldr r5, [r3, #1044] 2679 bl flash_reset 2680 mov r0, r6 2681 bl nandc_cs 2682 add r5, r5, r6, lsl #8 2683 mov r3, #144 2684 mov r0, #200 2685 str r3, [r5, #2056] 2686 mov r3, #0 2687 str r3, [r5, #2052] 2688 bl ndelay 2689 ldr r3, [r5, #2048] 2690 strb r3, [r4] 2691 ldr r3, [r5, #2048] 2692 strb r3, [r4, #1] 2693 ldr r3, [r5, #2048] 2694 strb r3, [r4, #2] 2695 ldr r3, [r5, #2048] 2696 strb r3, [r4, #3] 2697 ldr r3, [r5, #2048] 2698 strb r3, [r4, #4] 2699 ldr r3, [r5, #2048] 2700 strb r3, [r4, #5] 2701 ldr r3, [r5, #2048] 2702 strb r3, [r4, #6] 2703 ldr r3, [r5, #2048] 2704 strb r3, [r4, #7] 2705 bl nandc_de_cs.constprop.35 2706 ldrb r2, [r4] @ zero_extendqisi2 2707 sub r3, r2, #1 2708 uxtb r3, r3 2709 cmp r3, #253 2710 bhi .L537 2711 ldrb r1, [r4, #5] @ zero_extendqisi2 2712 ldrb r3, [r4, #1] @ zero_extendqisi2 2713 ldr r0, .L540+4 2714 str r1, [sp, #12] 2715 ldrb r1, [r4, #4] @ zero_extendqisi2 2716 str r1, [sp, #8] 2717 ldrb r1, [r4, #3] @ zero_extendqisi2 2718 str r1, [sp, #4] 2719 ldrb r1, [r4, #2] @ zero_extendqisi2 2720 str r1, [sp] 2721 add r1, r6, #1 2722 bl printk 2723.L537: 2724 add sp, sp, #16 2725 @ sp needed 2726 pop {r4, r5, r6, pc} 2727.L541: 2728 .align 2 2729.L540: 2730 .word .LANCHOR0 2731 .word .LC36 2732 .fnend 2733 .size flash_read_id, .-flash_read_id 2734 .align 2 2735 .global flash_read_spare 2736 .syntax unified 2737 .arm 2738 .fpu softvfp 2739 .type flash_read_spare, %function 2740flash_read_spare: 2741 .fnstart 2742 @ args = 0, pretend = 0, frame = 0 2743 @ frame_needed = 0, uses_anonymous_args = 0 2744 push {r4, r5, r6, lr} 2745 .save {r4, r5, r6, lr} 2746 mov r5, r2 2747 ldr r3, .L544 2748 ldr r2, .L544+4 2749 ldrb r3, [r3, #13] @ zero_extendqisi2 2750 ldr r4, [r2, #1044] 2751 mov r2, #0 2752 lsl r3, r3, #9 2753 add r4, r4, r0, lsl #8 2754 str r2, [r4, #2056] 2755 str r3, [r4, #2052] 2756 lsr r3, r3, #8 2757 str r3, [r4, #2052] 2758 uxtb r3, r1 2759 str r3, [r4, #2052] 2760 lsr r3, r1, #8 2761 lsr r1, r1, #16 2762 str r3, [r4, #2052] 2763 mov r3, #48 2764 str r1, [r4, #2052] 2765 str r3, [r4, #2056] 2766 bl nandc_wait_flash_ready 2767 ldr r3, [r4, #2048] 2768 strb r3, [r5] 2769 pop {r4, r5, r6, pc} 2770.L545: 2771 .align 2 2772.L544: 2773 .word .LANCHOR2 2774 .word .LANCHOR0 2775 .fnend 2776 .size flash_read_spare, .-flash_read_spare 2777 .align 2 2778 .global flash_read_otp_data 2779 .syntax unified 2780 .arm 2781 .fpu softvfp 2782 .type flash_read_otp_data, %function 2783flash_read_otp_data: 2784 .fnstart 2785 @ args = 0, pretend = 0, frame = 0 2786 @ frame_needed = 0, uses_anonymous_args = 0 2787 ldr r3, .L550 2788 push {r0, r1, r4, r5, r6, r7, r8, r9, r10, lr} 2789 .save {r4, r5, r6, r7, r8, r9, r10, lr} 2790 .pad #8 2791 mov r9, r0 2792 lsl r9, r9, #8 2793 mov r6, r1 2794 mov r5, r2 2795 ldr r8, [r3, #1044] 2796 mov r10, #144 2797 bl nandc_cs 2798 mov r3, #239 2799 mov r0, #50 2800 add r4, r8, r9 2801 mov r7, #0 2802 str r3, [r4, #2056] 2803 str r10, [r4, #2052] 2804 bl ndelay 2805 mov r3, #1 2806 str r3, [r4, #2048] 2807 str r7, [r4, #2048] 2808 str r7, [r4, #2048] 2809 str r7, [r4, #2048] 2810 bl nandc_wait_flash_ready 2811 mov r3, #238 2812 ldr r0, .L550+4 2813 str r3, [r4, #2056] 2814 str r10, [r4, #2052] 2815 ldr r2, [r4, #2048] 2816 ldr r3, [r4, #2048] 2817 ldr r1, [r4, #2048] 2818 str r1, [sp] 2819 mov r1, r6 2820 bl printk 2821 bl nandc_wait_flash_ready 2822 uxtb r3, r6 2823 str r7, [r4, #2056] 2824 str r7, [r4, #2052] 2825 str r7, [r4, #2052] 2826 str r3, [r4, #2052] 2827 lsr r3, r6, #8 2828 lsr r6, r6, #16 2829 str r3, [r4, #2052] 2830 mov r3, #48 2831 str r6, [r4, #2052] 2832 str r3, [r4, #2056] 2833 bl nandc_wait_flash_ready 2834 add r3, r5, #16384 2835 mov r2, r5 2836.L547: 2837 ldr r1, [r4, #2048] 2838 strb r1, [r2], #1 2839 cmp r2, r3 2840 bne .L547 2841 add r8, r8, r9 2842 mov r3, #239 2843 str r3, [r8, #2056] 2844 mov r3, #144 2845 str r3, [r4, #2052] 2846 mov r0, #50 2847 bl ndelay 2848 mov r3, #0 2849 str r3, [r4, #2048] 2850 str r3, [r4, #2048] 2851 str r3, [r4, #2048] 2852 str r3, [r4, #2048] 2853 add sp, sp, #8 2854 @ sp needed 2855 pop {r4, r5, r6, r7, r8, r9, r10, lr} 2856 b nandc_de_cs.constprop.35 2857.L551: 2858 .align 2 2859.L550: 2860 .word .LANCHOR0 2861 .word .LC37 2862 .fnend 2863 .size flash_read_otp_data, .-flash_read_otp_data 2864 .align 2 2865 .global sandisk_prog_test_bad_block 2866 .syntax unified 2867 .arm 2868 .fpu softvfp 2869 .type sandisk_prog_test_bad_block, %function 2870sandisk_prog_test_bad_block: 2871 .fnstart 2872 @ args = 0, pretend = 0, frame = 0 2873 @ frame_needed = 0, uses_anonymous_args = 0 2874 push {r4, r5, r6, r7, r8, lr} 2875 .save {r4, r5, r6, r7, r8, lr} 2876 lsl r7, r0, #8 2877 ldr r3, .L568 2878 mov r8, r1 2879 ldr r6, .L568+4 2880 ldr r5, [r3, #1044] 2881 ldrb r3, [r6, #33] @ zero_extendqisi2 2882 add r4, r5, r7 2883 cmp r3, #0 2884 addne r2, r5, r7 2885 addeq r3, r5, r7 2886 moveq r2, #162 2887 strne r3, [r2, #2056] 2888 streq r2, [r3, #2056] 2889 mov r3, #128 2890 str r3, [r4, #2056] 2891 mov r3, #0 2892 str r3, [r4, #2052] 2893 str r3, [r4, #2052] 2894 uxtb r3, r1 2895 str r3, [r4, #2052] 2896 lsr r3, r1, #8 2897 str r3, [r4, #2052] 2898 lsr r3, r1, #16 2899 str r3, [r4, #2052] 2900 mov r3, #16 2901 str r3, [r4, #2056] 2902 bl nandc_wait_flash_ready 2903 mov r3, #112 2904 mov r0, #200 2905 str r3, [r4, #2056] 2906 bl ndelay 2907 ldr r2, [r4, #2048] 2908 cmp r2, #255 2909 ldreq r2, [r4, #2048] 2910 ands r4, r2, #5 2911 beq .L556 2912 ldr r3, [r6] 2913 tst r3, #4096 2914 beq .L556 2915 mov r1, r8 2916 ldr r0, .L568+8 2917 bl printk 2918.L556: 2919 ldrb r3, [r6, #34] @ zero_extendqisi2 2920 mov r0, r4 2921 cmp r3, #0 2922 addne r5, r5, r7 2923 strne r3, [r5, #2056] 2924 pop {r4, r5, r6, r7, r8, pc} 2925.L569: 2926 .align 2 2927.L568: 2928 .word .LANCHOR0 2929 .word .LANCHOR2 2930 .word .LC38 2931 .fnend 2932 .size sandisk_prog_test_bad_block, .-sandisk_prog_test_bad_block 2933 .align 2 2934 .global nandc_rdy_status 2935 .syntax unified 2936 .arm 2937 .fpu softvfp 2938 .type nandc_rdy_status, %function 2939nandc_rdy_status: 2940 .fnstart 2941 @ args = 0, pretend = 0, frame = 8 2942 @ frame_needed = 0, uses_anonymous_args = 0 2943 @ link register save eliminated. 2944 ldr r3, .L572 2945 .pad #8 2946 sub sp, sp, #8 2947 ldr r3, [r3, #1044] 2948 ldr r3, [r3] 2949 str r3, [sp, #4] 2950 ldr r0, [sp, #4] 2951 ubfx r0, r0, #9, #1 2952 add sp, sp, #8 2953 @ sp needed 2954 bx lr 2955.L573: 2956 .align 2 2957.L572: 2958 .word .LANCHOR0 2959 .fnend 2960 .size nandc_rdy_status, .-nandc_rdy_status 2961 .align 2 2962 .global nandc_bch_sel 2963 .syntax unified 2964 .arm 2965 .fpu softvfp 2966 .type nandc_bch_sel, %function 2967nandc_bch_sel: 2968 .fnstart 2969 @ args = 0, pretend = 0, frame = 8 2970 @ frame_needed = 0, uses_anonymous_args = 0 2971 @ link register save eliminated. 2972 .pad #8 2973 sub sp, sp, #8 2974 mov r3, #0 2975 str r3, [sp, #4] 2976 ldr r2, [sp, #4] 2977 orr r2, r2, #1 2978 str r2, [sp, #4] 2979 ldr r2, .L586 2980 ldrb r1, [r2, #1028] @ zero_extendqisi2 2981 strb r0, [r2, #1193] 2982 cmp r1, #9 2983 bne .L575 2984 ldr r2, [r2, #1044] 2985 cmp r0, #70 2986 ldr r1, [sp, #4] 2987 str r1, [r2, #16] 2988 beq .L576 2989 cmp r0, #60 2990 moveq r3, #3 2991 beq .L576 2992 cmp r0, #40 2993 moveq r3, #2 2994 movne r3, #1 2995.L576: 2996 mov r1, #0 2997 str r1, [sp] 2998 ldr r1, [sp] 2999 bfi r1, r3, #25, #3 3000 str r1, [sp] 3001 ldr r3, [sp] 3002 orr r3, r3, #1 3003 str r3, [sp] 3004 ldr r3, [sp] 3005 str r3, [r2, #32] 3006.L574: 3007 add sp, sp, #8 3008 @ sp needed 3009 bx lr 3010.L575: 3011 ldr r1, [r2, #1044] 3012 mov ip, #16 3013 ldr r2, [sp, #4] 3014 cmp r0, ip 3015 str r2, [r1, #8] 3016 str r3, [sp] 3017 ldr r2, [sp] 3018 bfi r2, ip, #8, #8 3019 str r2, [sp] 3020 ldr r2, [sp] 3021 bfi r2, r3, #18, #1 3022 str r2, [sp] 3023 bne .L578 3024.L585: 3025 ldr r2, [sp] 3026 bfi r2, r3, #4, #1 3027 str r2, [sp] 3028 b .L579 3029.L578: 3030 cmp r0, #24 3031 ldreq r3, [sp] 3032 orreq r3, r3, #16 3033 streq r3, [sp] 3034 beq .L579 3035 ldr r2, [sp] 3036 cmp r0, #40 3037 orr r2, r2, #262144 3038 str r2, [sp] 3039 ldr r2, [sp] 3040 orr r2, r2, #16 3041 str r2, [sp] 3042 beq .L585 3043.L579: 3044 ldr r3, [sp] 3045 orr r3, r3, #1 3046 str r3, [sp] 3047 ldr r3, [sp] 3048 str r3, [r1, #12] 3049 b .L574 3050.L587: 3051 .align 2 3052.L586: 3053 .word .LANCHOR0 3054 .fnend 3055 .size nandc_bch_sel, .-nandc_bch_sel 3056 .align 2 3057 .global zftl_flash_resume 3058 .syntax unified 3059 .arm 3060 .fpu softvfp 3061 .type zftl_flash_resume, %function 3062zftl_flash_resume: 3063 .fnstart 3064 @ args = 0, pretend = 0, frame = 0 3065 @ frame_needed = 0, uses_anonymous_args = 0 3066 push {r4, r5, r6, r7, r8, r9, r10, lr} 3067 .save {r4, r5, r6, r7, r8, r9, r10, lr} 3068 ldr r4, .L599 3069 ldrb r3, [r4, #1028] @ zero_extendqisi2 3070 ldr r2, [r4, #1048] 3071 cmp r3, #9 3072 ldr r3, [r4, #1044] 3073 str r2, [r3] 3074 ldr r2, [r4, #1052] 3075 ldr r3, [r4, #1044] 3076 str r2, [r3, #4] 3077 ldr r2, [r4, #1056] 3078 bne .L589 3079 str r2, [r3, #16] 3080 ldr r2, [r4, #1060] 3081 str r2, [r3, #32] 3082 ldr r2, [r4, #1064] 3083 str r2, [r3, #80] 3084 ldr r2, [r4, #1068] 3085 str r2, [r3, #84] 3086 ldr r2, [r4, #1072] 3087 str r2, [r3, #520] 3088 ldr r2, [r4, #1076] 3089 str r2, [r3, #8] 3090.L591: 3091 ldr r6, .L599+4 3092 mov r5, #0 3093 mov r8, #2 3094 sub r7, r6, #6 3095.L590: 3096 ldrb r3, [r6, r5, lsl #3] @ zero_extendqisi2 3097 sub r3, r3, #1 3098 uxtb r3, r3 3099 cmp r3, #253 3100 bhi .L592 3101 uxtb r9, r5 3102 mov r0, r9 3103 bl flash_reset 3104 strb r8, [r5, r7] 3105 mov r0, r9 3106 bl zftl_flash_enter_slc_mode 3107.L592: 3108 add r5, r5, #1 3109 cmp r5, #4 3110 bne .L590 3111 ldrb r3, [r4, #1143] @ zero_extendqisi2 3112 cmp r3, #0 3113 beq .L593 3114 mov r0, #1 3115 bl nandc_set_if_mode 3116 mov r0, r5 3117 bl flash_set_interface_mode 3118 mov r0, r5 3119 bl nandc_set_if_mode 3120 ldrb r0, [r4, #1065] @ zero_extendqisi2 3121 bl nandc_set_ddr_para 3122.L593: 3123 ldr r3, .L599+8 3124 pop {r4, r5, r6, r7, r8, r9, r10, lr} 3125 ldrb r0, [r3, #24] @ zero_extendqisi2 3126 b nandc_bch_sel 3127.L589: 3128 str r2, [r3, #8] 3129 ldr r2, [r4, #1060] 3130 str r2, [r3, #12] 3131 ldr r2, [r4, #1064] 3132 str r2, [r3, #304] 3133 ldr r2, [r4, #1068] 3134 str r2, [r3, #308] 3135 ldr r2, [r4, #1072] 3136 str r2, [r3, #336] 3137 ldr r2, [r4, #1076] 3138 str r2, [r3, #344] 3139 b .L591 3140.L600: 3141 .align 2 3142.L599: 3143 .word .LANCHOR0 3144 .word .LANCHOR0+1160 3145 .word .LANCHOR2 3146 .fnend 3147 .size zftl_flash_resume, .-zftl_flash_resume 3148 .align 2 3149 .global rk_nandc_flash_ready 3150 .syntax unified 3151 .arm 3152 .fpu softvfp 3153 .type rk_nandc_flash_ready, %function 3154rk_nandc_flash_ready: 3155 .fnstart 3156 @ args = 0, pretend = 0, frame = 0 3157 @ frame_needed = 0, uses_anonymous_args = 0 3158 @ link register save eliminated. 3159 mov r1, #1 3160 b nandc_irq_disable 3161 .fnend 3162 .size rk_nandc_flash_ready, .-rk_nandc_flash_ready 3163 .align 2 3164 .global nandc_iqr_wait_flash_ready 3165 .syntax unified 3166 .arm 3167 .fpu softvfp 3168 .type nandc_iqr_wait_flash_ready, %function 3169nandc_iqr_wait_flash_ready: 3170 .fnstart 3171 @ args = 0, pretend = 0, frame = 0 3172 @ frame_needed = 0, uses_anonymous_args = 0 3173 push {r4, lr} 3174 .save {r4, lr} 3175 ldr r4, .L607 3176 ldr r0, [r4, #1044] 3177 bl rk_nandc_rb_irq_flag_init 3178 ldrb r3, [r4, #1028] @ zero_extendqisi2 3179 ldr r0, [r4, #1044] 3180 cmp r3, #9 3181 ldreq r3, [r0, #292] 3182 ldrne r3, [r0, #368] 3183 orreq r3, r3, #2 3184 orrne r3, r3, #2 3185 streq r3, [r0, #292] 3186 strne r3, [r0, #368] 3187 ldreq r3, [r0, #288] 3188 ldrne r3, [r0, #364] 3189 orreq r3, r3, #2 3190 orrne r3, r3, #2 3191 streq r3, [r0, #288] 3192 strne r3, [r0, #364] 3193 ldr r3, [r0] 3194 tst r3, #512 3195 bne .L605 3196 pop {r4, lr} 3197 b wait_for_nand_flash_ready 3198.L605: 3199 mov r1, #1 3200 pop {r4, lr} 3201 b nandc_irq_disable 3202.L608: 3203 .align 2 3204.L607: 3205 .word .LANCHOR0 3206 .fnend 3207 .size nandc_iqr_wait_flash_ready, .-nandc_iqr_wait_flash_ready 3208 .align 2 3209 .global flash_erase_duplane_block 3210 .syntax unified 3211 .arm 3212 .fpu softvfp 3213 .type flash_erase_duplane_block, %function 3214flash_erase_duplane_block: 3215 .fnstart 3216 @ args = 0, pretend = 0, frame = 0 3217 @ frame_needed = 0, uses_anonymous_args = 0 3218 push {r3, r4, r5, r6, r7, r8, r9, r10, fp, lr} 3219 .save {r3, r4, r5, r6, r7, r8, r9, r10, fp, lr} 3220 mov r10, r3 3221 ldr r7, .L634 3222 mov r4, r0 3223 mov r5, r1 3224 mov r6, r2 3225 ldrb r3, [r7, #1109] @ zero_extendqisi2 3226 cmp r3, r0 3227 bhi .L610 3228 movw r2, #695 3229 ldr r1, .L634+4 3230 ldr r0, .L634+8 3231 bl printk 3232 bl dump_stack 3233.L610: 3234 ldrb r3, [r7, #1109] @ zero_extendqisi2 3235 cmp r3, r4 3236 bls .L619 3237 ldr r3, .L634+12 3238 add r4, r7, r4 3239 ldrb r4, [r4, #1144] @ zero_extendqisi2 3240 ldr r9, [r7, #1044] 3241 ldr r3, [r3] 3242 add r8, r4, #8 3243 tst r3, #16 3244 add r8, r9, r8, lsl #8 3245 beq .L612 3246 mov r3, r10 3247 mov r2, r6 3248 mov r1, r4 3249 ldr r0, .L634+16 3250 bl printk 3251.L612: 3252 bl nandc_wait_flash_ready 3253 mov r0, r4 3254 bl nandc_cs 3255 cmp r5, #0 3256 mov r0, r4 3257 bne .L613 3258 bl zftl_flash_enter_slc_mode 3259.L614: 3260 lsl r4, r4, #8 3261 mov r3, #96 3262 add r5, r9, r4 3263 str r3, [r5, #2056] 3264 uxtb r3, r6 3265 str r3, [r5, #2052] 3266 lsr r3, r6, #8 3267 str r3, [r5, #2052] 3268 lsr r3, r6, #16 3269 str r3, [r5, #2052] 3270 ldrb r3, [r7, #1152] @ zero_extendqisi2 3271 cmp r3, #0 3272 lsrne r3, r6, #24 3273 strne r3, [r5, #2052] 3274 ldrb r3, [r7, #1194] @ zero_extendqisi2 3275 cmp r3, #0 3276 movne fp, #0 3277 bne .L616 3278 add r3, r9, r4 3279 mov r2, #208 3280 str r2, [r3, #2056] 3281 bl nandc_wait_flash_ready 3282 mov r0, r8 3283 bl flash_read_status 3284 and fp, r0, #5 3285.L616: 3286 mov r2, #96 3287 add r3, r9, r4 3288 str r2, [r3, #2056] 3289 uxtb r3, r10 3290 add r0, r9, r4 3291 str r3, [r5, #2052] 3292 lsr r3, r10, #8 3293 str r3, [r5, #2052] 3294 lsr r3, r10, #16 3295 str r3, [r5, #2052] 3296 ldrb r3, [r7, #1152] @ zero_extendqisi2 3297 cmp r3, #0 3298 mov r3, #208 3299 lsrne r2, r10, #24 3300 strne r2, [r5, #2052] 3301 str r3, [r0, #2056] 3302 bl nandc_iqr_wait_flash_ready 3303 bl nandc_wait_flash_ready 3304 mov r0, r8 3305 bl flash_read_status 3306 bl nandc_de_cs.constprop.35 3307 and r3, r0, #5 3308 orrs fp, r3, fp 3309 beq .L618 3310 mov r2, r0 3311 mov r1, r6 3312 ldr r0, .L634+20 3313 bl printk 3314.L618: 3315 mov r0, fp 3316 pop {r3, r4, r5, r6, r7, r8, r9, r10, fp, pc} 3317.L613: 3318 bl zftl_flash_exit_slc_mode 3319 b .L614 3320.L619: 3321 mvn r0, #0 3322 pop {r3, r4, r5, r6, r7, r8, r9, r10, fp, pc} 3323.L635: 3324 .align 2 3325.L634: 3326 .word .LANCHOR0 3327 .word .LANCHOR1+1061 3328 .word .LC0 3329 .word .LANCHOR2 3330 .word .LC39 3331 .word .LC40 3332 .fnend 3333 .size flash_erase_duplane_block, .-flash_erase_duplane_block 3334 .align 2 3335 .global flash_erase_block_en 3336 .syntax unified 3337 .arm 3338 .fpu softvfp 3339 .type flash_erase_block_en, %function 3340flash_erase_block_en: 3341 .fnstart 3342 @ args = 0, pretend = 0, frame = 0 3343 @ frame_needed = 0, uses_anonymous_args = 0 3344 push {r3, r4, r5, r6, r7, r8, r9, r10, fp, lr} 3345 .save {r3, r4, r5, r6, r7, r8, r9, r10, fp, lr} 3346 mov r7, r0 3347 ldr r5, .L655 3348 mov fp, r1 3349 mov r8, r2 3350 ldrb r6, [r5, #1153] @ zero_extendqisi2 3351 rsb r3, r6, #24 3352 mvn r6, #0 3353 bic r6, r2, r6, lsl r3 3354 ldrb r3, [r5, #1109] @ zero_extendqisi2 3355 cmp r3, r0 3356 bhi .L637 3357 movw r2, #757 3358 ldr r1, .L655+4 3359 ldr r0, .L655+8 3360 bl printk 3361 bl dump_stack 3362.L637: 3363 ldrb r3, [r5, #1109] @ zero_extendqisi2 3364 cmp r3, r7 3365 bls .L644 3366 add r3, r5, r7 3367 ldr r9, [r5, #1044] 3368 ldrb r4, [r3, #1144] @ zero_extendqisi2 3369 ldr r3, .L655+12 3370 add r10, r4, #8 3371 ldr r3, [r3] 3372 add r10, r9, r10, lsl #8 3373 tst r3, #16 3374 beq .L639 3375 mov r3, fp 3376 mov r2, r8 3377 mov r1, r4 3378 ldr r0, .L655+16 3379 bl printk 3380.L639: 3381 bl nandc_wait_flash_ready 3382 mov r0, r4 3383 bl nandc_cs 3384 cmp fp, #0 3385 mov r0, r4 3386 bne .L640 3387 bl zftl_flash_enter_slc_mode 3388.L641: 3389 lsl r4, r4, #8 3390 mov r2, #96 3391 add r3, r9, r4 3392 add r4, r9, r4 3393 str r2, [r3, #2056] 3394 uxtb r2, r6 3395 str r2, [r3, #2052] 3396 lsr r2, r6, #8 3397 str r2, [r3, #2052] 3398 lsr r2, r6, #16 3399 str r2, [r3, #2052] 3400 ldrb r2, [r5, #1152] @ zero_extendqisi2 3401 cmp r2, #0 3402 lsrne r6, r6, #24 3403 strne r6, [r3, #2052] 3404 mov r3, #208 3405 str r3, [r4, #2056] 3406 bl nandc_iqr_wait_flash_ready 3407 bl nandc_wait_flash_ready 3408 mov r0, r10 3409 bl flash_read_status 3410 bl nandc_de_cs.constprop.35 3411 ands r4, r0, #5 3412 beq .L643 3413 ldrh r1, [r5, #2] 3414 mov r0, r8 3415 bl __aeabi_uidiv 3416 mov r3, r4 3417 mvn r4, #0 3418 mov r2, r0 3419 mov r1, r7 3420 ldr r0, .L655+20 3421 bl printk 3422.L643: 3423 mov r0, r4 3424 pop {r3, r4, r5, r6, r7, r8, r9, r10, fp, pc} 3425.L640: 3426 bl zftl_flash_exit_slc_mode 3427 b .L641 3428.L644: 3429 mvn r0, #0 3430 pop {r3, r4, r5, r6, r7, r8, r9, r10, fp, pc} 3431.L656: 3432 .align 2 3433.L655: 3434 .word .LANCHOR0 3435 .word .LANCHOR1+1087 3436 .word .LC0 3437 .word .LANCHOR2 3438 .word .LC41 3439 .word .LC42 3440 .fnend 3441 .size flash_erase_block_en, .-flash_erase_block_en 3442 .align 2 3443 .global flash_erase_block 3444 .syntax unified 3445 .arm 3446 .fpu softvfp 3447 .type flash_erase_block, %function 3448flash_erase_block: 3449 .fnstart 3450 @ args = 0, pretend = 0, frame = 0 3451 @ frame_needed = 0, uses_anonymous_args = 0 3452 @ link register save eliminated. 3453 mov r2, r1 3454 mov r1, #0 3455 b flash_erase_block_en 3456 .fnend 3457 .size flash_erase_block, .-flash_erase_block 3458 .align 2 3459 .global flash_erase_all 3460 .syntax unified 3461 .arm 3462 .fpu softvfp 3463 .type flash_erase_all, %function 3464flash_erase_all: 3465 .fnstart 3466 @ args = 0, pretend = 0, frame = 0 3467 @ frame_needed = 0, uses_anonymous_args = 0 3468 ldr r3, .L664 3469 push {r4, r5, r6, r7, r8, r9, r10, lr} 3470 .save {r4, r5, r6, r7, r8, r9, r10, lr} 3471 mov r5, #0 3472 ldr r7, .L664+4 3473 ldrb r4, [r3, #17] @ zero_extendqisi2 3474 ldrh r3, [r3, #18] 3475 mov r8, r7 3476 smulbb r4, r4, r3 3477 uxth r4, r4 3478.L659: 3479 ldrb r2, [r7, #1109] @ zero_extendqisi2 3480 uxth r3, r5 3481 cmp r2, r3 3482 bhi .L662 3483 mov r1, #0 3484 ldr r0, .L664+8 3485 pop {r4, r5, r6, r7, r8, r9, r10, lr} 3486 b printk 3487.L662: 3488 uxtah r3, r7, r5 3489 mov r6, #0 3490 ldrb r9, [r3, #1144] @ zero_extendqisi2 3491.L660: 3492 uxth r3, r6 3493 cmp r4, r3 3494 addls r5, r5, #1 3495 bls .L659 3496.L661: 3497 ldrh r1, [r8, #2] 3498 mov r0, r9 3499 mul r1, r6, r1 3500 add r6, r6, #1 3501 bl flash_erase_block 3502 b .L660 3503.L665: 3504 .align 2 3505.L664: 3506 .word .LANCHOR2 3507 .word .LANCHOR0 3508 .word .LC43 3509 .fnend 3510 .size flash_erase_all, .-flash_erase_all 3511 .align 2 3512 .global rk_nandc_flash_xfer_completed 3513 .syntax unified 3514 .arm 3515 .fpu softvfp 3516 .type rk_nandc_flash_xfer_completed, %function 3517rk_nandc_flash_xfer_completed: 3518 .fnstart 3519 @ args = 0, pretend = 0, frame = 0 3520 @ frame_needed = 0, uses_anonymous_args = 0 3521 @ link register save eliminated. 3522 mov r1, #0 3523 b nandc_irq_disable 3524 .fnend 3525 .size rk_nandc_flash_xfer_completed, .-rk_nandc_flash_xfer_completed 3526 .align 2 3527 .global nandc_xfer_start 3528 .syntax unified 3529 .arm 3530 .fpu softvfp 3531 .type nandc_xfer_start, %function 3532nandc_xfer_start: 3533 .fnstart 3534 @ args = 0, pretend = 0, frame = 16 3535 @ frame_needed = 0, uses_anonymous_args = 0 3536 push {r0, r1, r2, r3, r4, r5, r6, r7, r8, lr} 3537 .save {r4, r5, r6, r7, r8, lr} 3538 .pad #16 3539 mov r5, r0 3540 ldr r4, .L684 3541 mov r0, r2 3542 and r6, r5, #1 3543 add ip, r1, #1 3544 ldrb r2, [r4, #1028] @ zero_extendqisi2 3545 cmp r2, #9 3546 bne .L668 3547 mov r1, #0 3548 mov lr, #1 3549 str r1, [sp, #4] 3550 ubfx ip, ip, #1, #6 3551 ldr r2, [sp, #4] 3552 bfi r2, r6, #1, #1 3553 str r2, [sp, #4] 3554 ldr r2, [sp, #4] 3555 orr r2, r2, #8 3556 str r2, [sp, #4] 3557 ldr r2, [sp, #4] 3558 bfi r2, lr, #5, #2 3559 str r2, [sp, #4] 3560 ldr r2, [sp, #4] 3561 orr r2, r2, #536870912 3562 str r2, [sp, #4] 3563 ldr r2, [sp, #4] 3564 orr r2, r2, #1024 3565 str r2, [sp, #4] 3566 ldr r2, [sp, #4] 3567 bfi r2, r1, #4, #1 3568 str r2, [sp, #4] 3569 ldr r2, [sp, #4] 3570 bfi r2, ip, #22, #6 3571 str r2, [sp, #4] 3572 ldr r2, [sp, #4] 3573 orr r2, r2, #128 3574 str r2, [sp, #4] 3575 ldrb r2, [r4, #1195] @ zero_extendqisi2 3576 cmp r2, r1 3577 beq .L669 3578 ldrb r2, [r4, #1196] @ zero_extendqisi2 3579 cmp r2, r1 3580 ldrne r2, [sp, #4] 3581 orrne r2, r2, #512 3582 strne r2, [sp, #4] 3583.L669: 3584 ldr r1, [sp, #4] 3585 mov r2, r5 3586 str r3, [r4, #1208] 3587 str r0, [r4, #1204] 3588 ubfx r1, r1, #22, #6 3589 lsl r1, r1, #10 3590 bl rknand_dma_map_single 3591 ldr r1, [sp, #4] 3592 mov r2, r5 3593 str r0, [r4, #1212] 3594 clz r5, r5 3595 ldr r0, [r4, #1208] 3596 lsr r5, r5, #5 3597 ubfx r1, r1, #22, #6 3598 lsl r1, r1, #2 3599 bl rknand_dma_map_single 3600 mov r3, #1 3601 ldr r2, [r4, #1212] 3602 str r3, [r4, #1220] 3603 mov r1, #16 3604 ldr r3, [r4, #1044] 3605 str r0, [r4, #1216] 3606 str r2, [r3, #52] 3607 str r0, [r3, #56] 3608 ldr r2, [r3, #48] 3609 str r2, [sp, #8] 3610 ldr r2, [sp, #8] 3611 bfi r2, r1, #9, #5 3612 mov r1, #2 3613 str r2, [sp, #8] 3614 ldr r2, [sp, #8] 3615 orr r2, r2, #448 3616 str r2, [sp, #8] 3617 ldr r2, [sp, #8] 3618 bfi r2, r1, #3, #3 3619 str r2, [sp, #8] 3620 ldr r2, [sp, #8] 3621 orr r2, r2, #4 3622 str r2, [sp, #8] 3623 ldr r2, [sp, #8] 3624 bfi r2, r5, #1, #1 3625 str r2, [sp, #8] 3626 ldr r2, [sp, #8] 3627 orr r2, r2, #1 3628 str r2, [sp, #8] 3629 movw r2, #1228 3630 ldrh r1, [r4, r2] 3631 ldr r2, [sp, #8] 3632 bfi r2, r1, #16, #11 3633 str r2, [sp, #8] 3634 ldr r2, [sp, #8] 3635 str r2, [r3, #48] 3636 ldr r2, [sp, #4] 3637 str r2, [r3, #16] 3638 ldr r2, [sp, #4] 3639 orr r2, r2, #4 3640 str r2, [sp, #4] 3641 ldr r2, [sp, #4] 3642 str r2, [r3, #16] 3643.L667: 3644 add sp, sp, #16 3645 @ sp needed 3646 pop {r4, r5, r6, r7, r8, pc} 3647.L668: 3648 ldr r2, [r4, #1044] 3649 mov lr, #16 3650 ubfx ip, ip, #1, #6 3651 ldr r2, [r2, #12] 3652 str r2, [sp, #12] 3653 ldr r2, [sp, #12] 3654 bfi r2, lr, #8, #8 3655 str r2, [sp, #12] 3656 ldr r2, [sp, #12] 3657 bfc r2, #3, #1 3658 str r2, [sp, #12] 3659 ldr r2, [sp, #12] 3660 bfc r2, #5, #3 3661 str r2, [sp, #12] 3662 mov r2, #0 3663 str r2, [sp, #4] 3664 cmp r5, r2 3665 ldr lr, [sp, #4] 3666 ldreq r3, [r4, #1200] 3667 bfi lr, r6, #1, #1 3668 mov r6, #1 3669 str lr, [sp, #4] 3670 ldr lr, [sp, #4] 3671 orr lr, lr, #8 3672 str lr, [sp, #4] 3673 ldr lr, [sp, #4] 3674 bfi lr, r6, #5, #2 3675 str lr, [sp, #4] 3676 ldr lr, [sp, #4] 3677 orr lr, lr, #536870912 3678 str lr, [sp, #4] 3679 ldr lr, [sp, #4] 3680 orr lr, lr, #1024 3681 str lr, [sp, #4] 3682 ldr lr, [sp, #4] 3683 bfi lr, r2, #4, #1 3684 str lr, [sp, #4] 3685 ldr lr, [sp, #4] 3686 bfi lr, ip, #22, #6 3687 str lr, [sp, #4] 3688 streq r6, [r3] 3689 beq .L675 3690 ldrb ip, [r4, #1193] @ zero_extendqisi2 3691 lsr r1, r1, #1 3692 cmp ip, #25 3693 mov ip, r2 3694 movcc r6, #64 3695 movcs r6, #128 3696.L673: 3697 cmp ip, r1 3698 add r7, r3, ip, lsl #2 3699 add lr, r6, r2 3700 blt .L674 3701.L675: 3702 ldr r1, [sp, #4] 3703 mov r2, r5 3704 ldr r3, [r4, #1200] 3705 str r0, [r4, #1204] 3706 ubfx r1, r1, #22, #6 3707 lsl r1, r1, #10 3708 str r3, [r4, #1208] 3709 bl rknand_dma_map_single 3710 ldr r1, [sp, #4] 3711 mov r2, r5 3712 str r0, [r4, #1212] 3713 clz r5, r5 3714 ldr r0, [r4, #1208] 3715 lsr r5, r5, #5 3716 ubfx r1, r1, #22, #6 3717 lsl r1, r1, #7 3718 bl rknand_dma_map_single 3719 mov r3, #1 3720 ldr r2, [r4, #1212] 3721 str r3, [r4, #1220] 3722 mov r1, #16 3723 ldr r3, [r4, #1044] 3724 str r0, [r4, #1216] 3725 str r2, [r3, #20] 3726 mov r2, #0 3727 str r0, [r3, #24] 3728 str r2, [sp, #8] 3729 ldr r2, [sp, #8] 3730 bfi r2, r1, #9, #5 3731 mov r1, #2 3732 str r2, [sp, #8] 3733 ldr r2, [sp, #8] 3734 orr r2, r2, #448 3735 str r2, [sp, #8] 3736 ldr r2, [sp, #8] 3737 bfi r2, r1, #3, #3 3738 str r2, [sp, #8] 3739 ldr r2, [sp, #8] 3740 orr r2, r2, #4 3741 str r2, [sp, #8] 3742 ldr r2, [sp, #8] 3743 bfi r2, r5, #1, #1 3744 str r2, [sp, #8] 3745 ldr r2, [sp, #8] 3746 orr r2, r2, #1 3747 str r2, [sp, #8] 3748 ldr r2, [sp, #8] 3749 str r2, [r3, #16] 3750 ldr r2, [sp, #12] 3751 str r2, [r3, #12] 3752 ldr r2, [sp, #4] 3753 str r2, [r3, #8] 3754 ldr r2, [sp, #4] 3755 orr r2, r2, #4 3756 str r2, [sp, #4] 3757 ldr r2, [sp, #4] 3758 str r2, [r3, #8] 3759 b .L667 3760.L674: 3761 ldr r8, [r7] @ unaligned 3762 bic r2, r2, #3 3763 ldr r7, [r4, #1200] 3764 add ip, ip, #1 3765 str r8, [r7, r2] 3766 mov r2, lr 3767 b .L673 3768.L685: 3769 .align 2 3770.L684: 3771 .word .LANCHOR0 3772 .fnend 3773 .size nandc_xfer_start, .-nandc_xfer_start 3774 .align 2 3775 .global nandc_set_seed 3776 .syntax unified 3777 .arm 3778 .fpu softvfp 3779 .type nandc_set_seed, %function 3780nandc_set_seed: 3781 .fnstart 3782 @ args = 0, pretend = 0, frame = 0 3783 @ frame_needed = 0, uses_anonymous_args = 0 3784 @ link register save eliminated. 3785 ldr r3, .L693 3786 and r0, r0, #127 3787 lsl r0, r0, #1 3788 ldrh r2, [r3, r0] 3789 ldr r3, .L693+4 3790 ldrb r1, [r3, #1196] @ zero_extendqisi2 3791 cmp r1, #0 3792 ldrb r1, [r3, #1028] @ zero_extendqisi2 3793 ldr r3, [r3, #1044] 3794 orrne r2, r2, #-1073741824 3795 cmp r1, #9 3796 streq r2, [r3, #520] 3797 strne r2, [r3, #336] 3798 bx lr 3799.L694: 3800 .align 2 3801.L693: 3802 .word .LANCHOR1+1108 3803 .word .LANCHOR0 3804 .fnend 3805 .size nandc_set_seed, .-nandc_set_seed 3806 .align 2 3807 .global zftl_flash_de_init 3808 .syntax unified 3809 .arm 3810 .fpu softvfp 3811 .type zftl_flash_de_init, %function 3812zftl_flash_de_init: 3813 .fnstart 3814 @ args = 0, pretend = 0, frame = 0 3815 @ frame_needed = 0, uses_anonymous_args = 0 3816 push {r4, lr} 3817 .save {r4, lr} 3818 ldr r4, .L715 3819 bl nandc_wait_flash_ready 3820 ldrb r3, [r4] @ zero_extendqisi2 3821 cmp r3, #0 3822 beq .L696 3823 ldrb r0, [r4, #1110] @ zero_extendqisi2 3824 cmp r0, #0 3825 bne .L696 3826 ldrb r3, [r4, #1028] @ zero_extendqisi2 3827 cmp r3, #9 3828 beq .L696 3829 bl zftl_flash_exit_slc_mode 3830.L696: 3831 mov r0, #0 3832 bl hynix_reconfig_rr_para 3833 ldrb r3, [r4, #1143] @ zero_extendqisi2 3834 cmp r3, #0 3835 beq .L697 3836 ldrb r3, [r4, #1192] @ zero_extendqisi2 3837 tst r3, #1 3838 beq .L697 3839 mov r0, #1 3840 bl flash_set_interface_mode 3841 mov r0, #1 3842 bl nandc_set_if_mode 3843 mov r3, #0 3844 strb r3, [r4, #1143] 3845.L697: 3846 ldrb r3, [r4, #1196] @ zero_extendqisi2 3847 cmp r3, #0 3848 beq .L698 3849 mov r0, #0 3850 strb r0, [r4, #1196] 3851 bl nandc_set_seed 3852 mov r3, #1 3853 strb r3, [r4, #1196] 3854.L698: 3855 mov r0, #0 3856 pop {r4, pc} 3857.L716: 3858 .align 2 3859.L715: 3860 .word .LANCHOR0 3861 .fnend 3862 .size zftl_flash_de_init, .-zftl_flash_de_init 3863 .align 2 3864 .global nandc_randomizer_enable 3865 .syntax unified 3866 .arm 3867 .fpu softvfp 3868 .type nandc_randomizer_enable, %function 3869nandc_randomizer_enable: 3870 .fnstart 3871 @ args = 0, pretend = 0, frame = 0 3872 @ frame_needed = 0, uses_anonymous_args = 0 3873 @ link register save eliminated. 3874 ldr r3, .L718 3875 strb r0, [r3, #1196] 3876 bx lr 3877.L719: 3878 .align 2 3879.L718: 3880 .word .LANCHOR0 3881 .fnend 3882 .size nandc_randomizer_enable, .-nandc_randomizer_enable 3883 .align 2 3884 .global nandc_get_chip_if 3885 .syntax unified 3886 .arm 3887 .fpu softvfp 3888 .type nandc_get_chip_if, %function 3889nandc_get_chip_if: 3890 .fnstart 3891 @ args = 0, pretend = 0, frame = 0 3892 @ frame_needed = 0, uses_anonymous_args = 0 3893 @ link register save eliminated. 3894 ldr r3, .L721 3895 add r0, r0, #8 3896 ldr r3, [r3, #1044] 3897 add r0, r3, r0, lsl #8 3898 bx lr 3899.L722: 3900 .align 2 3901.L721: 3902 .word .LANCHOR0 3903 .fnend 3904 .size nandc_get_chip_if, .-nandc_get_chip_if 3905 .align 2 3906 .global buf_reinit 3907 .syntax unified 3908 .arm 3909 .fpu softvfp 3910 .type buf_reinit, %function 3911buf_reinit: 3912 .fnstart 3913 @ args = 0, pretend = 0, frame = 0 3914 @ frame_needed = 0, uses_anonymous_args = 0 3915 @ link register save eliminated. 3916 ldr r2, .L726 3917 mov r3, #0 3918 mov r1, r3 3919.L724: 3920 uxtb r0, r3 3921 add r3, r3, #1 3922 cmp r3, #32 3923 strb r1, [r2, #2] 3924 add ip, r0, #1 3925 strb r0, [r2, #1] 3926 strb ip, [r2] 3927 add r2, r2, #48 3928 str r1, [r2, #-40] 3929 bne .L724 3930 ldr r2, .L726+4 3931 mvn r0, #0 3932 strb r0, [r2, #2720] 3933 strb r1, [r2, #2768] 3934 strb r3, [r2, #2769] 3935 bx lr 3936.L727: 3937 .align 2 3938.L726: 3939 .word .LANCHOR0+1232 3940 .word .LANCHOR0 3941 .fnend 3942 .size buf_reinit, .-buf_reinit 3943 .align 2 3944 .global buf_add_tail 3945 .syntax unified 3946 .arm 3947 .fpu softvfp 3948 .type buf_add_tail, %function 3949buf_add_tail: 3950 .fnstart 3951 @ args = 0, pretend = 0, frame = 0 3952 @ frame_needed = 0, uses_anonymous_args = 0 3953 mvn r3, #0 3954 push {r4, r5, r6, lr} 3955 .save {r4, r5, r6, lr} 3956 strb r3, [r1] 3957 mov r4, r1 3958 ldrb r3, [r0] @ zero_extendqisi2 3959 cmp r3, #255 3960 bne .L729 3961 ldrb r3, [r1, #1] @ zero_extendqisi2 3962 mov r5, r0 3963 cmp r3, #255 3964 bne .L730 3965 mov r2, #74 3966 ldr r1, .L736 3967 ldr r0, .L736+4 3968 bl printk 3969 bl dump_stack 3970.L730: 3971 ldrb r3, [r4, #1] @ zero_extendqisi2 3972 strb r3, [r5] 3973 pop {r4, r5, r6, pc} 3974.L729: 3975 ldr r2, .L736+8 3976 mov r1, #48 3977 mov r6, r2 3978.L734: 3979 mov r5, r3 3980 mla r3, r1, r3, r2 3981 ldrb r3, [r3, #1232] @ zero_extendqisi2 3982 cmp r3, #255 3983 bne .L734 3984 ldrb r3, [r4, #1] @ zero_extendqisi2 3985 cmp r3, #255 3986 bne .L732 3987 mov r2, #81 3988 ldr r1, .L736 3989 ldr r0, .L736+4 3990 bl printk 3991 bl dump_stack 3992.L732: 3993 mov r3, #48 3994 ldrb r2, [r4, #1] @ zero_extendqisi2 3995 mla r3, r3, r5, r6 3996 strb r2, [r3, #1232] 3997 pop {r4, r5, r6, pc} 3998.L737: 3999 .align 2 4000.L736: 4001 .word .LANCHOR1+1364 4002 .word .LC0 4003 .word .LANCHOR0 4004 .fnend 4005 .size buf_add_tail, .-buf_add_tail 4006 .align 2 4007 .syntax unified 4008 .arm 4009 .fpu softvfp 4010 .type queue_read_cmd, %function 4011queue_read_cmd: 4012 .fnstart 4013 @ args = 0, pretend = 0, frame = 0 4014 @ frame_needed = 0, uses_anonymous_args = 0 4015 push {r4, lr} 4016 .save {r4, lr} 4017 mov r4, r0 4018 ldr r1, [r0, #24] 4019 mov r0, #48 4020 bl flash_start_page_read 4021 mov r3, #1 4022 mov r1, r4 4023 strb r3, [r4, #42] 4024 mov r3, #0 4025 strb r3, [r4, #43] 4026 mvn r3, #0 4027 strb r3, [r4] 4028 ldr r0, .L740 4029 pop {r4, lr} 4030 b buf_add_tail 4031.L741: 4032 .align 2 4033.L740: 4034 .word .LANCHOR0+2770 4035 .fnend 4036 .size queue_read_cmd, .-queue_read_cmd 4037 .align 2 4038 .global zbuf_free 4039 .syntax unified 4040 .arm 4041 .fpu softvfp 4042 .type zbuf_free, %function 4043zbuf_free: 4044 .fnstart 4045 @ args = 0, pretend = 0, frame = 0 4046 @ frame_needed = 0, uses_anonymous_args = 0 4047 push {r4, lr} 4048 .save {r4, lr} 4049 ldrb r3, [r0, #2] @ zero_extendqisi2 4050 ldr r4, .L752 4051 and r3, r3, #8 4052 cmp r3, #0 4053 strb r3, [r0, #2] 4054 beq .L743 4055 ldr r3, [r0, #20] 4056 cmn r3, #1 4057 beq .L743 4058 mov r1, r0 4059 add r0, r4, #2768 4060 bl buf_add_tail 4061.L744: 4062 ldrb r3, [r4, #2769] @ zero_extendqisi2 4063 add r3, r3, #1 4064 strb r3, [r4, #2769] 4065 pop {r4, pc} 4066.L743: 4067 ldrb r3, [r4, #2768] @ zero_extendqisi2 4068 strb r3, [r0] 4069 ldrb r3, [r0, #1] @ zero_extendqisi2 4070 strb r3, [r4, #2768] 4071 b .L744 4072.L753: 4073 .align 2 4074.L752: 4075 .word .LANCHOR0 4076 .fnend 4077 .size zbuf_free, .-zbuf_free 4078 .align 2 4079 .global buf_alloc 4080 .syntax unified 4081 .arm 4082 .fpu softvfp 4083 .type buf_alloc, %function 4084buf_alloc: 4085 .fnstart 4086 @ args = 0, pretend = 0, frame = 0 4087 @ frame_needed = 0, uses_anonymous_args = 0 4088 push {r4, r5, r6, lr} 4089 .save {r4, r5, r6, lr} 4090 mov r5, r0 4091 ldr r4, .L765 4092 ldrb r3, [r4, #2769] @ zero_extendqisi2 4093 cmp r3, #0 4094 beq .L755 4095.L758: 4096 ldrb ip, [r4, #2768] @ zero_extendqisi2 4097 cmp r5, #0 4098 ldr r3, .L765+4 4099 add r0, ip, ip, lsl #1 4100 mov r2, r3 4101 add r0, r3, r0, lsl #4 4102 beq .L756 4103.L757: 4104 mov r1, #48 4105 mul r1, r1, ip 4106 add r3, r4, r1 4107 add r2, r2, r1 4108 ldrb ip, [r3, #1232] @ zero_extendqisi2 4109 mov r1, #0 4110 strh r1, [r2, #34] @ movhi 4111 str r1, [r3, #1240] 4112 strb ip, [r4, #2768] 4113 ldrb ip, [r4, #2769] @ zero_extendqisi2 4114 strb r1, [r3, #1272] 4115 strb r1, [r3, #1273] 4116 sub ip, ip, #1 4117 strb ip, [r4, #2769] 4118 mov ip, #1 4119 strb ip, [r3, #1234] 4120 mvn ip, #0 4121 strb ip, [r3, #1232] 4122 str ip, [r3, #1252] 4123 pop {r4, r5, r6, pc} 4124.L755: 4125 mov r2, #121 4126 ldr r1, .L765+8 4127 ldr r0, .L765+12 4128 bl printk 4129 bl dump_stack 4130 ldrb r3, [r4, #2769] @ zero_extendqisi2 4131 cmp r3, #0 4132 bne .L758 4133.L760: 4134 mov r0, #0 4135 pop {r4, r5, r6, pc} 4136.L756: 4137 ldrb r3, [r4, #2769] @ zero_extendqisi2 4138 cmp r3, #1 4139 bne .L757 4140 b .L760 4141.L766: 4142 .align 2 4143.L765: 4144 .word .LANCHOR0 4145 .word .LANCHOR0+1232 4146 .word .LANCHOR1+1377 4147 .word .LC0 4148 .fnend 4149 .size buf_alloc, .-buf_alloc 4150 .align 2 4151 .global buf_remove_buf 4152 .syntax unified 4153 .arm 4154 .fpu softvfp 4155 .type buf_remove_buf, %function 4156buf_remove_buf: 4157 .fnstart 4158 @ args = 0, pretend = 0, frame = 0 4159 @ frame_needed = 0, uses_anonymous_args = 0 4160 ldrb ip, [r1, #1] @ zero_extendqisi2 4161 ldrb r3, [r0] @ zero_extendqisi2 4162 cmp ip, r3 4163 bne .L768 4164 ldrb r3, [r1] @ zero_extendqisi2 4165 strb r3, [r0] 4166 mov r0, #1 4167 bx lr 4168.L771: 4169 mov r2, r3 4170 mla r3, lr, r3, r0 4171 ldrb r3, [r3, #1232] @ zero_extendqisi2 4172 cmp ip, r3 4173 bne .L770 4174 mla r2, lr, r2, r0 4175 ldrb r3, [r1] @ zero_extendqisi2 4176 mov r0, #1 4177 strb r3, [r2, #1232] 4178 mvn r3, #0 4179 strb r3, [r1] 4180 ldr pc, [sp], #4 4181.L768: 4182 ldr r0, .L776 4183 str lr, [sp, #-4]! 4184 .save {lr} 4185 mov lr, #48 4186.L770: 4187 cmp r3, #255 4188 bne .L771 4189 mov r0, #0 4190 ldr pc, [sp], #4 4191.L777: 4192 .align 2 4193.L776: 4194 .word .LANCHOR0 4195 .fnend 4196 .size buf_remove_buf, .-buf_remove_buf 4197 .align 2 4198 .global buf_remove_free 4199 .syntax unified 4200 .arm 4201 .fpu softvfp 4202 .type buf_remove_free, %function 4203buf_remove_free: 4204 .fnstart 4205 @ args = 0, pretend = 0, frame = 0 4206 @ frame_needed = 0, uses_anonymous_args = 0 4207 push {r4, r5, r6, lr} 4208 .save {r4, r5, r6, lr} 4209 mov r5, r0 4210 ldr r4, .L784 4211 ldrb r3, [r4, #2769] @ zero_extendqisi2 4212 cmp r3, #0 4213 bne .L779 4214 mov r2, #172 4215 ldr r1, .L784+4 4216 ldr r0, .L784+8 4217 bl printk 4218 bl dump_stack 4219.L779: 4220 ldrb r3, [r4, #2769] @ zero_extendqisi2 4221 cmp r3, #0 4222 popeq {r4, r5, r6, pc} 4223 mov r1, r5 4224 ldr r0, .L784+12 4225 bl buf_remove_buf 4226 cmp r0, #1 4227 ldrbeq r3, [r4, #2769] @ zero_extendqisi2 4228 subeq r3, r3, #1 4229 strbeq r3, [r4, #2769] 4230 ldrbeq r3, [r5, #2] @ zero_extendqisi2 4231 orreq r3, r3, #1 4232 strbeq r3, [r5, #2] 4233 pop {r4, r5, r6, pc} 4234.L785: 4235 .align 2 4236.L784: 4237 .word .LANCHOR0 4238 .word .LANCHOR1+1387 4239 .word .LC0 4240 .word .LANCHOR0+2768 4241 .fnend 4242 .size buf_remove_free, .-buf_remove_free 4243 .align 2 4244 .global dump_buf_info 4245 .syntax unified 4246 .arm 4247 .fpu softvfp 4248 .type dump_buf_info, %function 4249dump_buf_info: 4250 .fnstart 4251 @ args = 0, pretend = 0, frame = 0 4252 @ frame_needed = 0, uses_anonymous_args = 0 4253 push {r4, r5, r6, lr} 4254 .save {r4, r5, r6, lr} 4255 .pad #24 4256 sub sp, sp, #24 4257 ldr r5, .L790 4258 ldr r0, .L790+4 4259 ldrb r1, [r5, #2770] @ zero_extendqisi2 4260 add r4, r5, #1232 4261 bl printk 4262 ldrb r1, [r5, #2771] @ zero_extendqisi2 4263 add r5, r5, #2768 4264 ldr r0, .L790+8 4265 bl printk 4266 ldrb r1, [r5, #4] @ zero_extendqisi2 4267 ldr r0, .L790+12 4268 bl printk 4269 ldr r6, .L790+16 4270 ldrb r1, [r5, #5] @ zero_extendqisi2 4271 ldr r0, .L790+20 4272 bl printk 4273 ldrb r1, [r5] @ zero_extendqisi2 4274 ldr r0, .L790+24 4275 bl printk 4276 ldrb r1, [r5, #1] @ zero_extendqisi2 4277 ldr r0, .L790+28 4278 bl printk 4279.L787: 4280 ldr r0, [r4, #24] 4281 add r4, r4, #48 4282 ldrb r3, [r4, #-46] @ zero_extendqisi2 4283 ldrb r2, [r4, #-48] @ zero_extendqisi2 4284 ldrb r1, [r4, #-47] @ zero_extendqisi2 4285 str r0, [sp, #16] 4286 ldr r0, [r4, #-28] 4287 str r0, [sp, #12] 4288 ldr r0, [r4, #-12] 4289 str r0, [sp, #8] 4290 ldrb r0, [r4, #-6] @ zero_extendqisi2 4291 str r0, [sp, #4] 4292 ldrh r0, [r4, #-14] 4293 str r0, [sp] 4294 mov r0, r6 4295 bl printk 4296 cmp r4, r5 4297 bne .L787 4298 add sp, sp, #24 4299 @ sp needed 4300 pop {r4, r5, r6, pc} 4301.L791: 4302 .align 2 4303.L790: 4304 .word .LANCHOR0 4305 .word .LC44 4306 .word .LC45 4307 .word .LC46 4308 .word .LC50 4309 .word .LC47 4310 .word .LC48 4311 .word .LC49 4312 .fnend 4313 .size dump_buf_info, .-dump_buf_info 4314 .align 2 4315 .global flash_check_bad_block 4316 .syntax unified 4317 .arm 4318 .fpu softvfp 4319 .type flash_check_bad_block, %function 4320flash_check_bad_block: 4321 .fnstart 4322 @ args = 0, pretend = 0, frame = 0 4323 @ frame_needed = 0, uses_anonymous_args = 0 4324 @ link register save eliminated. 4325 ldr r2, .L793 4326 lsr ip, r1, #5 4327 and r1, r1, #31 4328 ldrb r3, [r2, #17] @ zero_extendqisi2 4329 ldrh r2, [r2, #18] 4330 smulbb r3, r3, r2 4331 ldr r2, .L793+4 4332 uxth r3, r3 4333 ldr r2, [r2, #1040] 4334 add r3, r3, #31 4335 asr r3, r3, #5 4336 add r2, r2, ip, lsl #2 4337 lsl r3, r3, #2 4338 uxth r3, r3 4339 mla r0, r0, r3, r2 4340 ldr r0, [r0, #912] 4341 lsr r0, r0, r1 4342 and r0, r0, #1 4343 bx lr 4344.L794: 4345 .align 2 4346.L793: 4347 .word .LANCHOR2 4348 .word .LANCHOR0 4349 .fnend 4350 .size flash_check_bad_block, .-flash_check_bad_block 4351 .align 2 4352 .global flash_mask_bad_block 4353 .syntax unified 4354 .arm 4355 .fpu softvfp 4356 .type flash_mask_bad_block, %function 4357flash_mask_bad_block: 4358 .fnstart 4359 @ args = 0, pretend = 0, frame = 0 4360 @ frame_needed = 0, uses_anonymous_args = 0 4361 ldr r3, .L797 4362 mov r2, r1 4363 push {r4, r5, r6, lr} 4364 .save {r4, r5, r6, lr} 4365 mov r5, r0 4366 mov r6, r1 4367 mov r1, r0 4368 ldrb r4, [r3, #17] @ zero_extendqisi2 4369 ldrh r3, [r3, #18] 4370 ldr r0, .L797+4 4371 smulbb r4, r4, r3 4372 bl printk 4373 uxth r4, r4 4374 ldr r3, .L797+8 4375 mov r1, #1 4376 add r0, r4, #31 4377 asr r0, r0, #5 4378 ldr r2, [r3, #1040] 4379 lsl r0, r0, #2 4380 uxth r0, r0 4381 mul r0, r5, r0 4382 lsr r5, r6, #5 4383 and r6, r6, #31 4384 add r0, r0, #912 4385 add r0, r0, r5, lsl #2 4386 ldr r3, [r2, r0] 4387 orr r6, r3, r1, lsl r6 4388 str r6, [r2, r0] 4389 pop {r4, r5, r6, pc} 4390.L798: 4391 .align 2 4392.L797: 4393 .word .LANCHOR2 4394 .word .LC51 4395 .word .LANCHOR0 4396 .fnend 4397 .size flash_mask_bad_block, .-flash_mask_bad_block 4398 .align 2 4399 .global str2hex 4400 .syntax unified 4401 .arm 4402 .fpu softvfp 4403 .type str2hex, %function 4404str2hex: 4405 .fnstart 4406 @ args = 0, pretend = 0, frame = 0 4407 @ frame_needed = 0, uses_anonymous_args = 0 4408 @ link register save eliminated. 4409 ldrb r3, [r0] @ zero_extendqisi2 4410 cmp r3, #48 4411 bne .L800 4412 ldrb r3, [r0, #1] @ zero_extendqisi2 4413 and r3, r3, #223 4414 cmp r3, #88 4415 addeq r0, r0, #2 4416.L800: 4417 ldrb r3, [r0] @ zero_extendqisi2 4418 and r3, r3, #223 4419 cmp r3, #88 4420 addeq r0, r0, #1 4421 sub r3, r0, #1 4422 mov r0, #0 4423.L802: 4424 ldrb r2, [r3, #1]! @ zero_extendqisi2 4425 cmp r2, #0 4426 bne .L807 4427 bx lr 4428.L807: 4429 sub r1, r2, #48 4430 uxtb ip, r1 4431 cmp ip, #9 4432 addls r0, r1, r0, lsl #4 4433 bls .L802 4434 sub r1, r2, #97 4435 cmp r1, #5 4436 subls r2, r2, #87 4437 bls .L809 4438 sub r1, r2, #65 4439 cmp r1, #5 4440 bxhi lr 4441 sub r2, r2, #55 4442.L809: 4443 add r0, r2, r0, lsl #4 4444 b .L802 4445 .fnend 4446 .size str2hex, .-str2hex 4447 .align 2 4448 .global zftl_proc_debug_init 4449 .syntax unified 4450 .arm 4451 .fpu softvfp 4452 .type zftl_proc_debug_init, %function 4453zftl_proc_debug_init: 4454 .fnstart 4455 @ args = 0, pretend = 0, frame = 0 4456 @ frame_needed = 0, uses_anonymous_args = 0 4457 push {r0, r1, r2, lr} 4458 .save {lr} 4459 .pad #12 4460 mov r2, #0 4461 str r2, [sp] 4462 mov r1, #292 4463 ldr r3, .L812 4464 ldr r0, .L812+4 4465 bl proc_create_data 4466 add sp, sp, #12 4467 @ sp needed 4468 ldr pc, [sp], #4 4469.L813: 4470 .align 2 4471.L812: 4472 .word .LANCHOR1+1404 4473 .word .LC52 4474 .fnend 4475 .size zftl_proc_debug_init, .-zftl_proc_debug_init 4476 .align 2 4477 .global ftl_print_info_to_buf 4478 .syntax unified 4479 .arm 4480 .fpu softvfp 4481 .type ftl_print_info_to_buf, %function 4482ftl_print_info_to_buf: 4483 .fnstart 4484 @ args = 0, pretend = 0, frame = 0 4485 @ frame_needed = 0, uses_anonymous_args = 0 4486 push {r0, r1, r2, r3, r4, r5, r6, lr} 4487 .save {r4, r5, r6, lr} 4488 .pad #16 4489 mov r6, r0 4490 ldr r2, .L816 4491 ldr r1, .L816+4 4492 bl sprintf 4493 ldr r1, .L816+8 4494 add r4, r6, r0 4495 ldr r5, .L816+12 4496 ldrb r0, [r1, #10] @ zero_extendqisi2 4497 ldrb r3, [r1, #6] @ zero_extendqisi2 4498 ldrb r2, [r1, #5] @ zero_extendqisi2 4499 str r0, [sp, #12] 4500 ldrb r0, [r1, #9] @ zero_extendqisi2 4501 str r0, [sp, #8] 4502 ldrb r0, [r1, #8] @ zero_extendqisi2 4503 str r0, [sp, #4] 4504 mov r0, r4 4505 ldrb r1, [r1, #7] @ zero_extendqisi2 4506 str r1, [sp] 4507 ldr r1, .L816+16 4508 bl sprintf 4509 ldr r2, [r5, #1032] 4510 add r4, r4, r0 4511 ldr r1, .L816+20 4512 mov r0, r4 4513 lsr r2, r2, #11 4514 bl sprintf 4515 ldr r2, [r5, #2776] 4516 add r4, r4, r0 4517 ldr r1, .L816+24 4518 mov r0, r4 4519 lsr r2, r2, #11 4520 bl sprintf 4521 add r4, r4, r0 4522 ldr r1, .L816+28 4523 mov r0, r4 4524 add r4, r4, #10 4525 bl strcpy 4526 ldr r2, [r5, #2780] 4527 mov r0, r4 4528 ldr r1, .L816+32 4529 bl sprintf 4530 add r4, r4, r0 4531 ldr r2, [r5, #1032] 4532 ldr r1, .L816+36 4533 mov r0, r4 4534 bl sprintf 4535 ldr r3, [r5, #1096] 4536 add r4, r4, r0 4537 ldr r1, .L816+40 4538 mov r0, r4 4539 ldr r2, [r3, #524] 4540 bl sprintf 4541 ldr r3, [r5, #1096] 4542 add r4, r4, r0 4543 ldr r1, .L816+44 4544 mov r0, r4 4545 ldr r2, [r3, #528] 4546 bl sprintf 4547 add r3, r5, #2784 4548 add r4, r4, r0 4549 ldrh r2, [r3] 4550 mov r0, r4 4551 ldr r1, .L816+48 4552 bl sprintf 4553 movw r3, #2786 4554 add r4, r4, r0 4555 ldrh r2, [r5, r3] 4556 mov r0, r4 4557 ldr r1, .L816+52 4558 bl sprintf 4559 movw r3, #2788 4560 add r4, r4, r0 4561 ldrh r2, [r5, r3] 4562 mov r0, r4 4563 ldr r1, .L816+56 4564 bl sprintf 4565 movw r3, #2790 4566 add r4, r4, r0 4567 ldrh r2, [r5, r3] 4568 mov r0, r4 4569 ldr r1, .L816+60 4570 bl sprintf 4571 movw r3, #2792 4572 add r4, r4, r0 4573 ldrh r2, [r5, r3] 4574 mov r0, r4 4575 ldr r1, .L816+64 4576 bl sprintf 4577 movw r3, #2794 4578 add r4, r4, r0 4579 ldrh r2, [r5, r3] 4580 mov r0, r4 4581 ldr r1, .L816+68 4582 bl sprintf 4583 ldrb r1, [r5, #2797] @ zero_extendqisi2 4584 add r4, r4, r0 4585 ldrb r3, [r5, #2796] @ zero_extendqisi2 4586 mov r0, r4 4587 ldrb r2, [r5, #2769] @ zero_extendqisi2 4588 str r1, [sp] 4589 ldr r1, .L816+72 4590 bl sprintf 4591 ldr r2, [r5, #2800] 4592 add r4, r4, r0 4593 ldr r1, .L816+76 4594 mov r0, r4 4595 ldrh r3, [r2, #146] 4596 ldrh r2, [r2, #148] 4597 bl sprintf 4598 ldr r3, [r5, #2800] 4599 add r4, r4, r0 4600 ldr r1, .L816+80 4601 mov r0, r4 4602 ldr r2, [r3, #16] 4603 ldr r3, [r3, #20] 4604 add r2, r3, r2, lsr #11 4605 bl sprintf 4606 ldr r3, [r5, #2800] 4607 add r4, r4, r0 4608 ldr r1, .L816+84 4609 mov r0, r4 4610 ldr r2, [r3, #24] 4611 ldr r3, [r3, #28] 4612 add r2, r3, r2, lsr #11 4613 bl sprintf 4614 ldr r3, [r5, #2800] 4615 add r4, r4, r0 4616 ldr r1, .L816+88 4617 mov r0, r4 4618 ldr r2, [r3, #64] 4619 bl sprintf 4620 ldr r3, [r5, #2800] 4621 add r4, r4, r0 4622 ldr r1, .L816+92 4623 mov r0, r4 4624 ldr r2, [r3, #68] 4625 bl sprintf 4626 ldr r3, [r5, #1096] 4627 add r4, r4, r0 4628 ldr r1, .L816+96 4629 mov r0, r4 4630 ldr r2, [r3, #12] 4631 umull r2, r3, r2, r1 4632 ldr r1, .L816+100 4633 lsr r2, r3, #3 4634 bl sprintf 4635 ldr r3, [r5, #2800] 4636 add r4, r4, r0 4637 ldrb r2, [r5] @ zero_extendqisi2 4638 mov r0, r4 4639 ldrh r1, [r3, #150] 4640 str r1, [sp] 4641 ldr r1, .L816+104 4642 ldr r3, [r3, #156] 4643 bl sprintf 4644 ldr r3, [r5, #1096] 4645 add r4, r4, r0 4646 ldr r1, .L816+108 4647 mov r0, r4 4648 ldr r2, [r3, #556] 4649 bl sprintf 4650 ldr r3, [r5, #1096] 4651 add r4, r4, r0 4652 ldr r1, .L816+112 4653 mov r0, r4 4654 ldr r2, [r3, #552] 4655 bl sprintf 4656 ldr r3, [r5, #2800] 4657 add r4, r4, r0 4658 ldr r1, .L816+116 4659 mov r0, r4 4660 ldr r2, [r3, #52] 4661 bl sprintf 4662 ldr r3, [r5, #2800] 4663 add r4, r4, r0 4664 ldr r1, .L816+120 4665 mov r0, r4 4666 ldr r2, [r3, #60] 4667 bl sprintf 4668 ldr r3, [r5, #2800] 4669 add r4, r4, r0 4670 ldr r1, .L816+124 4671 mov r0, r4 4672 ldr r2, [r3, #76] 4673 bl sprintf 4674 ldr r3, [r5, #2800] 4675 add r4, r4, r0 4676 ldr r1, .L816+128 4677 mov r0, r4 4678 ldr r2, [r3, #8] 4679 bl sprintf 4680 ldr r1, [r5, #1096] 4681 add r4, r4, r0 4682 mov r0, r4 4683 ldrh r3, [r1, #22] 4684 ldrh r2, [r1, #16] 4685 ldrb r1, [r1, #25] @ zero_extendqisi2 4686 str r1, [sp] 4687 ldr r1, .L816+132 4688 bl sprintf 4689 ldr r1, [r5, #1096] 4690 add r4, r4, r0 4691 mov r0, r4 4692 ldrh r3, [r1, #54] 4693 ldrh r2, [r1, #48] 4694 ldrb r1, [r1, #57] @ zero_extendqisi2 4695 str r1, [sp] 4696 ldr r1, .L816+136 4697 bl sprintf 4698 ldr r1, [r5, #1096] 4699 add r4, r4, r0 4700 mov r0, r4 4701 ldrh r3, [r1, #86] 4702 ldrh r2, [r1, #80] 4703 ldrb r1, [r1, #89] @ zero_extendqisi2 4704 str r1, [sp] 4705 ldr r1, .L816+140 4706 bl sprintf 4707 ldr r3, [r5, #2800] 4708 add r4, r4, r0 4709 mov r0, r4 4710 ldrh r1, [r3, #96] 4711 ldrh r2, [r3, #74] 4712 str r1, [sp, #8] 4713 ldrh r1, [r3, #92] 4714 str r1, [sp, #4] 4715 ldrh r1, [r3, #88] 4716 str r1, [sp] 4717 ldr r1, .L816+144 4718 ldr r3, [r3, #84] 4719 bl sprintf 4720 ldr r3, [r5, #2800] 4721 add r4, r4, r0 4722 mov r0, r4 4723 ldrh r1, [r3, #98] 4724 ldrh r2, [r3, #72] 4725 str r1, [sp, #8] 4726 ldrh r1, [r3, #94] 4727 str r1, [sp, #4] 4728 ldrh r1, [r3, #90] 4729 str r1, [sp] 4730 ldr r1, .L816+148 4731 ldr r3, [r3, #80] 4732 bl sprintf 4733 movw r3, #2804 4734 add r4, r4, r0 4735 ldrh r2, [r5, r3] 4736 mov r0, r4 4737 ldr r1, .L816+152 4738 bl sprintf 4739 ldr r1, [r5, #2812] 4740 add r4, r4, r0 4741 movw r3, #2806 4742 movw r2, #2808 4743 ldrh r3, [r5, r3] 4744 mov r0, r4 4745 str r1, [sp, #8] 4746 add r1, r5, #2816 4747 ldrh r1, [r1] 4748 ldrh r2, [r5, r2] 4749 str r1, [sp, #4] 4750 movw r1, #2818 4751 ldrh r1, [r5, r1] 4752 str r1, [sp] 4753 ldr r1, .L816+156 4754 bl sprintf 4755 ldr r1, [r5, #1096] 4756 add r4, r4, r0 4757 movw r0, #590 4758 movw r3, #586 4759 ldrh r0, [r1, r0] 4760 add r2, r1, #584 4761 ldrh r3, [r1, r3] 4762 add r1, r1, #588 4763 ldrh r2, [r2] 4764 str r0, [sp, #4] 4765 mov r0, r4 4766 ldrh r1, [r1] 4767 str r1, [sp] 4768 ldr r1, .L816+160 4769 bl sprintf 4770 ldr r2, [r5, #1096] 4771 add r4, r4, r0 4772 ldr r1, .L816+164 4773 mov r0, r4 4774 ldr r3, [r2, #548] 4775 str r3, [sp, #8] 4776 ldr r3, [r5, #2800] 4777 ldr r3, [r3, #44] 4778 str r3, [sp, #4] 4779 ldr r3, [r2, #544] 4780 str r3, [sp] 4781 ldr r3, [r2, #540] 4782 ldr r2, [r2, #536] 4783 bl sprintf 4784 add r0, r4, r0 4785 sub r0, r0, r6 4786 add sp, sp, #16 4787 @ sp needed 4788 pop {r4, r5, r6, pc} 4789.L817: 4790 .align 2 4791.L816: 4792 .word .LC1 4793 .word .LC2 4794 .word .LANCHOR2 4795 .word .LANCHOR0 4796 .word .LC53 4797 .word .LC54 4798 .word .LC55 4799 .word .LC56 4800 .word .LC57 4801 .word .LC58 4802 .word .LC59 4803 .word .LC60 4804 .word .LC61 4805 .word .LC62 4806 .word .LC63 4807 .word .LC64 4808 .word .LC65 4809 .word .LC66 4810 .word .LC67 4811 .word .LC68 4812 .word .LC69 4813 .word .LC70 4814 .word .LC71 4815 .word .LC72 4816 .word -858993459 4817 .word .LC73 4818 .word .LC74 4819 .word .LC75 4820 .word .LC76 4821 .word .LC77 4822 .word .LC78 4823 .word .LC79 4824 .word .LC80 4825 .word .LC81 4826 .word .LC82 4827 .word .LC83 4828 .word .LC84 4829 .word .LC85 4830 .word .LC86 4831 .word .LC87 4832 .word .LC88 4833 .word .LC89 4834 .fnend 4835 .size ftl_print_info_to_buf, .-ftl_print_info_to_buf 4836 .align 2 4837 .global zftl_proc_ftl_read 4838 .syntax unified 4839 .arm 4840 .fpu softvfp 4841 .type zftl_proc_ftl_read, %function 4842zftl_proc_ftl_read: 4843 .fnstart 4844 @ args = 0, pretend = 0, frame = 0 4845 @ frame_needed = 0, uses_anonymous_args = 0 4846 @ link register save eliminated. 4847 b ftl_print_info_to_buf 4848 .fnend 4849 .size zftl_proc_ftl_read, .-zftl_proc_ftl_read 4850 .align 2 4851 .global ftl_gc_write_buf 4852 .syntax unified 4853 .arm 4854 .fpu softvfp 4855 .type ftl_gc_write_buf, %function 4856ftl_gc_write_buf: 4857 .fnstart 4858 @ args = 0, pretend = 0, frame = 0 4859 @ frame_needed = 0, uses_anonymous_args = 0 4860 push {r4, lr} 4861 .save {r4, lr} 4862 mov r1, r0 4863 ldrb r3, [r0, #2] @ zero_extendqisi2 4864 ldr r4, .L821 4865 orr r3, r3, #2 4866 strb r3, [r0, #2] 4867 add r0, r4, #2816 4868 add r0, r0, #4 4869 bl buf_add_tail 4870 ldrb r0, [r4, #2796] @ zero_extendqisi2 4871 add r0, r0, #1 4872 uxtb r0, r0 4873 strb r0, [r4, #2796] 4874 pop {r4, pc} 4875.L822: 4876 .align 2 4877.L821: 4878 .word .LANCHOR0 4879 .fnend 4880 .size ftl_gc_write_buf, .-ftl_gc_write_buf 4881 .align 2 4882 .global gc_hook 4883 .syntax unified 4884 .arm 4885 .fpu softvfp 4886 .type gc_hook, %function 4887gc_hook: 4888 .fnstart 4889 @ args = 0, pretend = 0, frame = 0 4890 @ frame_needed = 0, uses_anonymous_args = 0 4891 @ link register save eliminated. 4892 bx lr 4893 .fnend 4894 .size gc_hook, .-gc_hook 4895 .align 2 4896 .global vpn_check 4897 .syntax unified 4898 .arm 4899 .fpu softvfp 4900 .type vpn_check, %function 4901vpn_check: 4902 .fnstart 4903 @ args = 0, pretend = 0, frame = 0 4904 @ frame_needed = 0, uses_anonymous_args = 0 4905 @ link register save eliminated. 4906 bx lr 4907 .fnend 4908 .size vpn_check, .-vpn_check 4909 .align 2 4910 .global ftl_scan_all_data 4911 .syntax unified 4912 .arm 4913 .fpu softvfp 4914 .type ftl_scan_all_data, %function 4915ftl_scan_all_data: 4916 .fnstart 4917 @ args = 0, pretend = 0, frame = 0 4918 @ frame_needed = 0, uses_anonymous_args = 0 4919 @ link register save eliminated. 4920 bx lr 4921 .fnend 4922 .size ftl_scan_all_data, .-ftl_scan_all_data 4923 .align 2 4924 .global gc_add_sblk 4925 .syntax unified 4926 .arm 4927 .fpu softvfp 4928 .type gc_add_sblk, %function 4929gc_add_sblk: 4930 .fnstart 4931 @ args = 0, pretend = 0, frame = 0 4932 @ frame_needed = 0, uses_anonymous_args = 0 4933 push {r0, r1, r2, r3, r4, r5, r6, r7, r8, r9, r10, lr} 4934 .save {r4, r5, r6, r7, r8, r9, r10, lr} 4935 .pad #16 4936 mov r5, r0 4937 ldr r8, .L862 4938 mov r4, r1 4939 mov r9, r2 4940 ldr r7, .L862+4 4941 ldr r3, [r8] 4942 tst r3, #256 4943 beq .L827 4944 movw r3, #2818 4945 ldr r2, [r7, #1092] 4946 ldrh r3, [r7, r3] 4947 str r3, [sp, #12] 4948 ldr r3, .L862+8 4949 ldrh r3, [r3, #52] 4950 str r3, [sp, #8] 4951 lsl r3, r0, #1 4952 ldrh r3, [r2, r3] 4953 mov r2, r1 4954 mov r1, r0 4955 str r3, [sp, #4] 4956 ldr r3, [r7, #1084] 4957 add r3, r3, r0, lsl #2 4958 ldr r0, .L862+12 4959 ldrb r3, [r3, #2] @ zero_extendqisi2 4960 lsr r3, r3, #5 4961 str r3, [sp] 4962 mov r3, r9 4963 bl printk 4964.L827: 4965 movw r3, #1080 4966 ldrh r3, [r7, r3] 4967 cmp r3, r5 4968 bhi .L828 4969 movw r2, #543 4970 ldr r1, .L862+16 4971 ldr r0, .L862+20 4972 bl printk 4973 bl dump_stack 4974.L828: 4975 movw r3, #1080 4976 ldrh r3, [r7, r3] 4977 cmp r3, r5 4978 bhi .L829 4979 ldr r0, [r8] 4980 ands r0, r0, #1024 4981 beq .L826 4982 mov r3, r9 4983 mov r2, r4 4984 mov r1, r5 4985 ldr r0, .L862+24 4986 bl printk 4987.L849: 4988 mov r0, #0 4989 b .L826 4990.L829: 4991 ldr r2, [r7, #1092] 4992 lsl r3, r5, #1 4993 ldrh r3, [r2, r3] 4994 ldr r2, [r7, #1084] 4995 add r2, r2, r5, lsl #2 4996 ldrb r2, [r2, #2] @ zero_extendqisi2 4997 ands r6, r2, #224 4998 bne .L831 4999 cmp r3, #0 5000 beq .L849 5001 movw r2, #553 5002 ldr r1, .L862+16 5003 ldr r0, .L862+20 5004 bl printk 5005 bl dump_stack 5006 b .L849 5007.L831: 5008 movw r1, #2824 5009 ldrh r1, [r7, r1] 5010 cmp r1, r5 5011 beq .L849 5012 ldr r1, [r7, #1096] 5013 ldrh r0, [r1, #48] 5014 cmp r0, r5 5015 beq .L849 5016 ldrh r0, [r1, #16] 5017 cmp r0, r5 5018 beq .L849 5019 ldrh r0, [r1, #80] 5020 cmp r0, r5 5021 beq .L849 5022 ldr r0, .L862+8 5023 mov ip, #0 5024 ldrh r10, [r0, #52]! 5025.L832: 5026 cmp ip, r10 5027 bcc .L833 5028 cmp r4, #0 5029 bne .L837 5030 ldr ip, .L862+28 5031 mov r0, r4 5032 ldrh lr, [ip, #-4] 5033 cmp r5, lr 5034 beq .L826 5035 sub ip, ip, #2 5036.L836: 5037 ldrh r6, [r0, ip] 5038 cmp r5, r6 5039 bne .L835 5040 ldr r1, [r8] 5041 ands r0, r1, #256 5042 beq .L826 5043 stm sp, {r5, lr} 5044 lsr r2, r2, #5 5045 mov r1, r5 5046 ldr r0, .L862+32 5047 bl printk 5048 b .L849 5049.L833: 5050 ldrh lr, [r0, #2]! 5051 cmp lr, r5 5052 beq .L849 5053 add ip, ip, #1 5054 b .L832 5055.L835: 5056 add r0, r0, #2 5057 cmp r0, #16 5058 bne .L836 5059 add r1, r1, r9, lsl #7 5060 add r6, r1, #136 5061.L838: 5062 ldr r1, [r8] 5063 tst r1, #256 5064 beq .L839 5065 movw r1, #2818 5066 stm sp, {r3, r10} 5067 ldrh r1, [r7, r1] 5068 lsr r3, r2, #5 5069 ldr r0, .L862+36 5070 mov r2, r4 5071 str r1, [sp, #8] 5072 mov r1, r5 5073 bl printk 5074.L839: 5075 mov r3, r6 5076 add r1, r6, #128 5077 movw r0, #65535 5078.L842: 5079 mov r2, r3 5080 add r3, r3, #2 5081 ldrh ip, [r2] 5082 cmp ip, r0 5083 bne .L840 5084 cmp r4, #0 5085 strh r5, [r2] @ movhi 5086 ldreq r3, [r7, #1096] 5087 ldrne r2, [r7, #1096] 5088 addeq r9, r3, r9, lsl #1 5089 ldrhne r3, [r2, #124] 5090 ldrheq r3, [r9, #120] 5091 addne r3, r3, #1 5092 strhne r3, [r2, #124] @ movhi 5093 addeq r3, r3, #1 5094 strheq r3, [r9, #120] @ movhi 5095.L861: 5096 mov r0, #1 5097.L826: 5098 add sp, sp, #16 5099 @ sp needed 5100 pop {r4, r5, r6, r7, r8, r9, r10, pc} 5101.L837: 5102 add r6, r1, #392 5103 b .L838 5104.L840: 5105 cmp r3, r1 5106 bne .L842 5107 b .L861 5108.L863: 5109 .align 2 5110.L862: 5111 .word .LANCHOR2 5112 .word .LANCHOR0 5113 .word .LANCHOR0+2824 5114 .word .LC90 5115 .word .LANCHOR1+1448 5116 .word .LC0 5117 .word .LC91 5118 .word .LANCHOR3-3152 5119 .word .LC92 5120 .word .LC93 5121 .fnend 5122 .size gc_add_sblk, .-gc_add_sblk 5123 .align 2 5124 .global gc_mark_bad_ppa 5125 .syntax unified 5126 .arm 5127 .fpu softvfp 5128 .type gc_mark_bad_ppa, %function 5129gc_mark_bad_ppa: 5130 .fnstart 5131 @ args = 0, pretend = 0, frame = 0 5132 @ frame_needed = 0, uses_anonymous_args = 0 5133 ldr r3, .L869 5134 push {r4, r5, r6, r7, r8, r9, r10, lr} 5135 .save {r4, r5, r6, r7, r8, r9, r10, lr} 5136 mov r8, r0 5137 ldr r5, .L869+4 5138 mov r7, #1 5139 sub r2, r3, #3136 5140 ldrh r2, [r2, #-2] 5141 ldrb r1, [r3, #-3136] @ zero_extendqisi2 5142 add r5, r5, #4096 5143 lsr r6, r0, r2 5144 ldrb r0, [r5, #-2943] @ zero_extendqisi2 5145 uxth r4, r6 5146 rsb r0, r0, #24 5147 sub r0, r0, r2 5148 lsl r0, r7, r0 5149 sub r0, r0, #1 5150 and r0, r0, r6 5151 bl __aeabi_uidiv 5152 uxth r9, r0 5153 mov r3, r8 5154 mov r2, r4 5155 ldr r1, [r5, #916] 5156 ldr r0, .L869+8 5157 bl printk 5158 mov r1, r7 5159 mov r2, #0 5160 mov r0, r9 5161 bl gc_add_sblk 5162 ldr r3, [r5, #916] 5163 mov r1, #0 5164 ldr r0, .L869+12 5165 movw ip, #1096 5166.L865: 5167 uxth r2, r1 5168 cmp r3, r2 5169 bhi .L867 5170 cmp r3, #5 5171 bhi .L866 5172 add r2, r3, #1 5173 add r3, r3, #1088 5174 str r2, [r5, #916] 5175 add r3, r3, #8 5176 ldr r2, .L869+12 5177 lsl r3, r3, #1 5178 strh r4, [r2, r3] @ movhi 5179 b .L866 5180.L867: 5181 add r2, r2, ip 5182 add r1, r1, #1 5183 lsl r2, r2, #1 5184 ldrh r2, [r0, r2] 5185 cmp r4, r2 5186 bne .L865 5187.L866: 5188 mov r0, #0 5189 pop {r4, r5, r6, r7, r8, r9, r10, pc} 5190.L870: 5191 .align 2 5192.L869: 5193 .word .LANCHOR3 5194 .word .LANCHOR0 5195 .word .LC94 5196 .word .LANCHOR0+2824 5197 .fnend 5198 .size gc_mark_bad_ppa, .-gc_mark_bad_ppa 5199 .align 2 5200 .global gc_get_src_ppa_from_index 5201 .syntax unified 5202 .arm 5203 .fpu softvfp 5204 .type gc_get_src_ppa_from_index, %function 5205gc_get_src_ppa_from_index: 5206 .fnstart 5207 @ args = 0, pretend = 0, frame = 0 5208 @ frame_needed = 0, uses_anonymous_args = 0 5209 @ link register save eliminated. 5210 ldr r3, .L872 5211 ldr r3, [r3, #-3132] 5212 ldr r0, [r3, r0, lsl #2] 5213 bx lr 5214.L873: 5215 .align 2 5216.L872: 5217 .word .LANCHOR3 5218 .fnend 5219 .size gc_get_src_ppa_from_index, .-gc_get_src_ppa_from_index 5220 .align 2 5221 .global gc_write_completed 5222 .syntax unified 5223 .arm 5224 .fpu softvfp 5225 .type gc_write_completed, %function 5226gc_write_completed: 5227 .fnstart 5228 @ args = 0, pretend = 0, frame = 8 5229 @ frame_needed = 0, uses_anonymous_args = 0 5230 push {r0, r1, r2, r4, r5, r6, r7, r8, r9, r10, fp, lr} 5231 .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} 5232 .pad #12 5233.L875: 5234 ldr r7, .L902 5235 ldrb fp, [r7, #2772] @ zero_extendqisi2 5236 mov r6, r7 5237 cmp fp, #255 5238 bne .L888 5239 add sp, sp, #12 5240 @ sp needed 5241 pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} 5242.L888: 5243 mov r2, #48 5244 add r10, r6, #1232 5245 mul r2, r2, fp 5246 str r10, [sp, #4] 5247 add r0, r6, r2 5248 add r2, r10, r2 5249 ldrb r1, [r0, #1232] @ zero_extendqisi2 5250 ldrh r8, [r2, #32] 5251 strb r1, [r7, #2772] 5252 ldr r1, [r0, #1268] 5253 cmp r1, #0 5254 beq .L876 5255 ldr r3, .L902+4 5256 mov r2, #1 5257 strh r2, [r3] @ movhi 5258 ldr r2, [r0, #1256] 5259 add r0, r6, #4096 5260 str r2, [r0, #912] 5261 ldr r0, .L902+8 5262 bl printk 5263 mov r2, #956 5264 ldr r1, .L902+12 5265 ldr r0, .L902+16 5266 bl printk 5267 bl dump_stack 5268.L876: 5269 ldr r5, .L902+20 5270 ldrb r2, [r5, #-3128] @ zero_extendqisi2 5271 mov r10, r5 5272 cmp r2, #3 5273 bne .L877 5274 ldrb r2, [r7, #1158] @ zero_extendqisi2 5275 cmp r2, #0 5276 bne .L877 5277 ldr r2, [r7, #1096] 5278 ldrb r4, [r2, #89] @ zero_extendqisi2 5279 ldrb r2, [r5, #-3127] @ zero_extendqisi2 5280 cmp r2, r4 5281 movhi r4, #1 5282 bhi .L878 5283 cmp r4, #2 5284 movcs r4, #2 5285.L878: 5286 add r4, r4, r4, lsl #1 5287.L879: 5288 mov r2, #48 5289 ldr r1, [r5, #-3124] 5290 mla r2, r2, fp, r6 5291 ldrb r1, [r1, r8] @ zero_extendqisi2 5292 mov r9, r8 5293 ldrb r2, [r2, #1233] @ zero_extendqisi2 5294 cmp r1, r2 5295 beq .L880 5296 mov r2, #976 5297 ldr r1, .L902+12 5298 ldr r0, .L902+16 5299 bl printk 5300 bl dump_stack 5301.L880: 5302 mov r2, #48 5303 mla r3, r2, fp, r6 5304 ldrb r3, [r3, #1277] @ zero_extendqisi2 5305 cmp r3, #3 5306 beq .L881 5307 ldrb r3, [r5, #-3128] @ zero_extendqisi2 5308 cmp r3, #3 5309 bne .L881 5310 ldrb r3, [r5, #-3120] @ zero_extendqisi2 5311 cmp r3, #0 5312 bne .L881 5313 ldrb r3, [r7, #1158] @ zero_extendqisi2 5314 cmp r3, #0 5315 bne .L881 5316 ldrb r3, [r7, #1159] @ zero_extendqisi2 5317 cmp r3, #0 5318 bne .L881 5319 ldrb r3, [r5, #-3126] @ zero_extendqisi2 5320 cmp r3, #0 5321 beq .L882 5322 ldrb r3, [r5, #-3125] @ zero_extendqisi2 5323 cmp r3, #0 5324 bne .L881 5325.L882: 5326 ldr r2, [r5, #-3124] 5327 mov r3, #0 5328 mov r1, #48 5329 movw r0, #1277 5330 mov ip, r3 5331 add r8, r2, r8 5332.L883: 5333 uxth r2, r3 5334 cmp r4, r2 5335 bls .L875 5336 ldrb r2, [r8, r3] @ zero_extendqisi2 5337 add r3, r3, #1 5338 mla r2, r1, r2, r6 5339 strb ip, [r2, r0] 5340 b .L883 5341.L877: 5342 ldrb r2, [r5, #-3126] @ zero_extendqisi2 5343 cmp r2, #0 5344 moveq r4, #1 5345 beq .L879 5346 ldrb r2, [r5, #-3125] @ zero_extendqisi2 5347 cmp r2, #0 5348 moveq r4, #1 5349 movne r4, #2 5350 b .L879 5351.L881: 5352 ldr r3, .L902+24 5353 mvn r5, #0 5354 mov r7, #48 5355 movw fp, #1277 5356 strh r8, [r3] @ movhi 5357.L884: 5358 sub r2, r9, r8 5359 uxth r2, r2 5360 cmp r4, r2 5361 bls .L875 5362 ldr r2, [r10, #-3124] 5363 mov r1, #0 5364 ldr r3, [sp, #4] 5365 ldrb r0, [r2, r9] @ zero_extendqisi2 5366 strb r5, [r2, r9] 5367 add r9, r9, #1 5368 mla r2, r7, r0, r6 5369 add r0, r0, r0, lsl #1 5370 strb r1, [r2, fp] 5371 add r0, r3, r0, lsl #4 5372 bl zbuf_free 5373 ldrb r2, [r6, #2831] @ zero_extendqisi2 5374 sub r2, r2, #1 5375 strb r2, [r6, #2831] 5376 b .L884 5377.L903: 5378 .align 2 5379.L902: 5380 .word .LANCHOR0 5381 .word .LANCHOR0+5006 5382 .word .LC95 5383 .word .LANCHOR1+1460 5384 .word .LC0 5385 .word .LANCHOR3 5386 .word .LANCHOR0+4928 5387 .fnend 5388 .size gc_write_completed, .-gc_write_completed 5389 .align 2 5390 .global gc_get_src_blk 5391 .syntax unified 5392 .arm 5393 .fpu softvfp 5394 .type gc_get_src_blk, %function 5395gc_get_src_blk: 5396 .fnstart 5397 @ args = 0, pretend = 0, frame = 0 5398 @ frame_needed = 0, uses_anonymous_args = 0 5399 ldr r1, .L916 5400 ldr r3, [r1, #1096] 5401 ldrh r2, [r3, #124] 5402 cmp r2, #0 5403 addne r3, r3, #392 5404 movne r2, #1 5405 bne .L906 5406 ldr r0, .L916+4 5407 ldrb r0, [r0, #-3119] @ zero_extendqisi2 5408 add ip, r3, r0, lsl #1 5409 ldrh ip, [ip, #120] 5410 cmp ip, #0 5411 beq .L911 5412 add r3, r3, r0, lsl #7 5413 add r3, r3, #136 5414.L906: 5415 push {r4, lr} 5416 .save {r4, lr} 5417 add ip, r3, #128 5418 movw lr, #65535 5419.L910: 5420 mov r4, r3 5421 ldrh r0, [r3], #2 5422 cmp r0, lr 5423 beq .L908 5424 cmp r2, #0 5425 mvn r3, #0 5426 strh r3, [r4] @ movhi 5427 ldreq r3, .L916+4 5428 ldrne r2, [r1, #1096] 5429 ldrbeq r2, [r3, #-3119] @ zero_extendqisi2 5430 ldreq r3, [r1, #1096] 5431 ldrhne r3, [r2, #124] 5432 addeq r3, r3, r2, lsl #1 5433 subne r3, r3, #1 5434 strhne r3, [r2, #124] @ movhi 5435 ldrheq r2, [r3, #120] 5436 subeq r2, r2, #1 5437 strheq r2, [r3, #120] @ movhi 5438 pop {r4, pc} 5439.L908: 5440 cmp r3, ip 5441 bne .L910 5442 pop {r4, pc} 5443.L911: 5444 movw r0, #65535 5445 bx lr 5446.L917: 5447 .align 2 5448.L916: 5449 .word .LANCHOR0 5450 .word .LANCHOR3 5451 .fnend 5452 .size gc_get_src_blk, .-gc_get_src_blk 5453 .align 2 5454 .global gc_free_temp_buf 5455 .syntax unified 5456 .arm 5457 .fpu softvfp 5458 .type gc_free_temp_buf, %function 5459gc_free_temp_buf: 5460 .fnstart 5461 @ args = 0, pretend = 0, frame = 0 5462 @ frame_needed = 0, uses_anonymous_args = 0 5463 push {r4, r5, r6, lr} 5464 .save {r4, r5, r6, lr} 5465 ldr r5, .L933 5466 ldrb r0, [r5, #2831] @ zero_extendqisi2 5467 cmp r0, #0 5468 popeq {r4, r5, r6, pc} 5469 ldrb r3, [r5, #2769] @ zero_extendqisi2 5470 cmp r3, #1 5471 bhi .L925 5472 ldr r2, .L933+4 5473 add r3, r5, #4928 5474 ldrh r4, [r3] 5475 movw ip, #1277 5476 sub r3, r2, #3104 5477 mov r6, r2 5478 ldrh r0, [r3, #-14] 5479 add r1, r4, #24 5480 ldrb r3, [r2, #-3127] @ zero_extendqisi2 5481 mul r3, r3, r0 5482 cmp r3, r1 5483 movcs r3, r1 5484 ldr r1, [r2, #-3124] 5485 mov r2, #48 5486.L920: 5487 cmp r4, r3 5488 bcc .L923 5489.L925: 5490 mov r0, #0 5491 pop {r4, r5, r6, pc} 5492.L923: 5493 ldrb r0, [r1, r4] @ zero_extendqisi2 5494 cmp r0, #255 5495 beq .L921 5496 mla lr, r2, r0, r5 5497 ldrb lr, [lr, ip] @ zero_extendqisi2 5498 cmp lr, #0 5499 bne .L921 5500 ldr r3, .L933+8 5501 add r0, r0, r0, lsl #1 5502 add r0, r3, r0, lsl #4 5503 bl zbuf_free 5504 ldr r3, .L933+12 5505 ldr r3, [r3] 5506 tst r3, #256 5507 beq .L922 5508 ldr r3, [r6, #-3124] 5509 mov r1, r4 5510 ldr r0, .L933+16 5511 ldrb r2, [r3, r4] @ zero_extendqisi2 5512 bl printk 5513.L922: 5514 ldr r3, [r6, #-3124] 5515 mvn r2, #0 5516 mov r0, #1 5517 strb r2, [r3, r4] 5518 ldrb r3, [r5, #2831] @ zero_extendqisi2 5519 add r3, r3, r2 5520 strb r3, [r5, #2831] 5521 pop {r4, r5, r6, pc} 5522.L921: 5523 add r4, r4, #1 5524 b .L920 5525.L934: 5526 .align 2 5527.L933: 5528 .word .LANCHOR0 5529 .word .LANCHOR3 5530 .word .LANCHOR0+1232 5531 .word .LANCHOR2 5532 .word .LC96 5533 .fnend 5534 .size gc_free_temp_buf, .-gc_free_temp_buf 5535 .align 2 5536 .global get_ink_scaned_blk 5537 .syntax unified 5538 .arm 5539 .fpu softvfp 5540 .type get_ink_scaned_blk, %function 5541get_ink_scaned_blk: 5542 .fnstart 5543 @ args = 0, pretend = 0, frame = 0 5544 @ frame_needed = 0, uses_anonymous_args = 0 5545 @ link register save eliminated. 5546 ldr r1, .L938 5547 movw ip, #2108 5548 ldrh r3, [r1, ip] 5549 cmp r3, #0 5550 addne r2, r3, #1040 5551 subne r3, r3, #1 5552 addne r2, r2, #11 5553 strhne r3, [r1, ip] @ movhi 5554 addne r2, r1, r2, lsl #1 5555 ldrhne r0, [r2, #6] 5556 movweq r0, #65535 5557 bx lr 5558.L939: 5559 .align 2 5560.L938: 5561 .word .LANCHOR0+2824 5562 .fnend 5563 .size get_ink_scaned_blk, .-get_ink_scaned_blk 5564 .align 2 5565 .global print_gc_debug_info 5566 .syntax unified 5567 .arm 5568 .fpu softvfp 5569 .type print_gc_debug_info, %function 5570print_gc_debug_info: 5571 .fnstart 5572 @ args = 0, pretend = 0, frame = 0 5573 @ frame_needed = 0, uses_anonymous_args = 0 5574 push {r0, r1, r2, r3, r4, lr} 5575 .save {lr} 5576 .pad #20 5577 movw ip, #2804 5578 ldr r0, .L942 5579 movw r1, #2824 5580 movw r3, #2102 5581 ldrh ip, [r0, ip] 5582 add r2, r0, r1 5583 ldrh r3, [r2, r3] 5584 ldrh r1, [r0, r1] 5585 ldrh r2, [r2, #2] 5586 str ip, [sp, #8] 5587 ldrb ip, [r0, #2831] @ zero_extendqisi2 5588 str ip, [sp, #4] 5589 ldrb r0, [r0, #2769] @ zero_extendqisi2 5590 str r0, [sp] 5591 ldr r0, .L942+4 5592 bl printk 5593 add sp, sp, #20 5594 @ sp needed 5595 ldr pc, [sp], #4 5596.L943: 5597 .align 2 5598.L942: 5599 .word .LANCHOR0 5600 .word .LC97 5601 .fnend 5602 .size print_gc_debug_info, .-print_gc_debug_info 5603 .align 2 5604 .global _list_pop_index_node 5605 .syntax unified 5606 .arm 5607 .fpu softvfp 5608 .type _list_pop_index_node, %function 5609_list_pop_index_node: 5610 .fnstart 5611 @ args = 0, pretend = 0, frame = 0 5612 @ frame_needed = 0, uses_anonymous_args = 0 5613 push {r4, r5, r6, lr} 5614 .save {r4, r5, r6, lr} 5615 ldr r5, [r0] 5616 cmp r5, #0 5617 beq .L950 5618 ldr r3, .L952 5619 movw ip, #65535 5620 mov lr, #6 5621 ldr r4, [r3, #1036] 5622.L946: 5623 cmp r1, #0 5624 bne .L947 5625.L949: 5626 sub r4, r5, r4 5627 asr r3, r4, #1 5628 ldr r4, .L952+4 5629 mul r4, r4, r3 5630 uxth r1, r4 5631 bl _list_remove_node 5632 mvn r3, #0 5633 uxth r0, r4 5634 strh r3, [r5] @ movhi 5635 strh r3, [r5, #2] @ movhi 5636 pop {r4, r5, r6, pc} 5637.L947: 5638 ldrh r3, [r5] 5639 cmp r3, ip 5640 beq .L949 5641 sub r1, r1, #1 5642 mla r5, lr, r3, r4 5643 uxth r1, r1 5644 b .L946 5645.L950: 5646 movw r0, #65535 5647 pop {r4, r5, r6, pc} 5648.L953: 5649 .align 2 5650.L952: 5651 .word .LANCHOR0 5652 .word -1431655765 5653 .fnend 5654 .size _list_pop_index_node, .-_list_pop_index_node 5655 .align 2 5656 .global _list_get_gc_head_node 5657 .syntax unified 5658 .arm 5659 .fpu softvfp 5660 .type _list_get_gc_head_node, %function 5661_list_get_gc_head_node: 5662 .fnstart 5663 @ args = 0, pretend = 0, frame = 0 5664 @ frame_needed = 0, uses_anonymous_args = 0 5665 @ link register save eliminated. 5666 ldr r0, [r0] 5667 cmp r0, #0 5668 beq .L959 5669 ldr r3, .L961 5670 movw r2, #65535 5671 mov ip, #6 5672 ldr r3, [r3, #1036] 5673.L956: 5674 cmp r1, #0 5675 beq .L957 5676 ldrh r0, [r0] 5677 cmp r0, r2 5678 bne .L958 5679 bx lr 5680.L958: 5681 sub r1, r1, #1 5682 mla r0, ip, r0, r3 5683 uxth r1, r1 5684 b .L956 5685.L959: 5686 movw r0, #65535 5687 bx lr 5688.L957: 5689 sub r0, r0, r3 5690 asr r3, r0, #1 5691 ldr r0, .L961+4 5692 mul r0, r0, r3 5693 uxth r0, r0 5694 bx lr 5695.L962: 5696 .align 2 5697.L961: 5698 .word .LANCHOR0 5699 .word -1431655765 5700 .fnend 5701 .size _list_get_gc_head_node, .-_list_get_gc_head_node 5702 .align 2 5703 .syntax unified 5704 .arm 5705 .fpu softvfp 5706 .type zftl_get_gc_node.part.10, %function 5707zftl_get_gc_node.part.10: 5708 .fnstart 5709 @ args = 0, pretend = 0, frame = 0 5710 @ frame_needed = 0, uses_anonymous_args = 0 5711 @ link register save eliminated. 5712 mov r1, r0 5713 ldr r0, .L964 5714 b _list_get_gc_head_node 5715.L965: 5716 .align 2 5717.L964: 5718 .word .LANCHOR3-3116 5719 .fnend 5720 .size zftl_get_gc_node.part.10, .-zftl_get_gc_node.part.10 5721 .align 2 5722 .global gc_search_src_blk 5723 .syntax unified 5724 .arm 5725 .fpu softvfp 5726 .type gc_search_src_blk, %function 5727gc_search_src_blk: 5728 .fnstart 5729 @ args = 0, pretend = 0, frame = 32 5730 @ frame_needed = 0, uses_anonymous_args = 0 5731 push {r4, r5, r6, r7, r8, r9, r10, fp, lr} 5732 .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} 5733 .pad #44 5734 sub sp, sp, #44 5735 ldr r5, .L1086 5736 str r1, [sp, #24] 5737 ldr r1, [r5, #1096] 5738 str r0, [sp, #16] 5739 str r2, [sp, #12] 5740 add r3, r1, r0, lsl #1 5741 ldrh r3, [r3, #120] 5742 cmp r3, #0 5743 str r3, [sp, #20] 5744 movne r0, r3 5745 bne .L966 5746 ldr r3, .L1086+4 5747 ldrh r2, [r3, #52] 5748 cmp r2, #1 5749 ldrls r0, .L1086+8 5750 ldrhls ip, [sp, #20] 5751 strhls ip, [r0, #-8] @ movhi 5752 strhls ip, [r0, #-6] @ movhi 5753 strhls ip, [r0, #-4] @ movhi 5754 ldr r0, [sp, #16] 5755 cmp r0, #0 5756 bne .L970 5757 ldr r10, .L1086+12 5758 mov r7, r0 5759 ldr fp, .L1086+16 5760 mov r4, r0 5761.L971: 5762 ldr r3, [sp, #12] 5763 add r8, r3, #1 5764 uxth r3, r7 5765 cmp r3, r8 5766 bge .L976 5767 ldr r3, .L1086+20 5768 mov r0, r3 5769 str r3, [sp, #20] 5770 ldrh r9, [r0], #6 5771 mov r1, r9 5772 bl _list_get_gc_head_node 5773 add r2, r9, #1 5774 ldr r3, [sp, #20] 5775 movw r1, #65535 5776 uxth r2, r2 5777 cmp r0, r1 5778 mov r6, r0 5779 strh r2, [r3] @ movhi 5780 beq .L972 5781 ldr r3, [r10] 5782 lsl r9, r0, #1 5783 tst r3, #256 5784 beq .L973 5785 ldr r3, [r5, #1092] 5786 mov r1, r0 5787 mov r0, fp 5788 ldrh r3, [r3, r9] 5789 bl printk 5790.L973: 5791 ldr r3, [r5, #1092] 5792 ldrh r2, [r3, r9] 5793 ldr r3, .L1086+24 5794 ldrh r3, [r3] 5795 cmp r2, r3 5796 bcs .L974 5797 mov r2, #0 5798 mov r0, r6 5799 mov r1, r2 5800 bl gc_add_sblk 5801 cmp r0, #0 5802 beq .L975 5803 add r4, r4, #1 5804 ldr r3, [sp, #12] 5805 uxth r4, r4 5806 cmp r4, r3 5807 bcc .L975 5808.L976: 5809 ldr r3, [sp, #24] 5810 tst r3, #2 5811 beq .L978 5812 movw r3, #2794 5813 ldrh r3, [r5, r3] 5814 cmp r3, #32 5815 bls .L978 5816 ldr r9, .L1086+28 5817 mov fp, #0 5818 ldr r6, .L1086+32 5819 sub r10, r9, #12 5820.L979: 5821 uxth r3, fp 5822 cmp r8, r3 5823 ble .L983 5824 ldr r7, .L1086+36 5825 mov r0, r10 5826 ldrh r3, [r7] 5827 mov r1, r3 5828 str r3, [sp, #20] 5829 bl _list_get_gc_head_node 5830 ldr r3, [sp, #20] 5831 add r3, r3, #1 5832 strh r3, [r7] @ movhi 5833 movw r3, #65535 5834 cmp r0, r3 5835 beq .L980 5836 ldr r3, [r5, #1092] 5837 lsl r2, r0, #1 5838 ldrh r2, [r3, r2] 5839 ldrh r3, [r6] 5840 cmp r2, r3 5841 bcs .L980 5842 mov r2, #0 5843 mov r1, r2 5844 bl gc_add_sblk 5845 cmp r0, #0 5846 beq .L982 5847 add r4, r4, #1 5848 ldr r3, [sp, #12] 5849 uxth r4, r4 5850 cmp r4, r3 5851 bcc .L982 5852.L983: 5853 ldr r3, [sp, #12] 5854 cmp r4, r3 5855 bcs .L985 5856 ldr r0, .L1086+40 5857 ldrh r1, [r9, #-8] 5858 ldrh r2, [r6] 5859 sub r3, r0, #3104 5860 ldrh ip, [r3, #-14] 5861 ldrb r3, [r0, #-3127] @ zero_extendqisi2 5862 mul r3, r3, ip 5863 sub r3, r3, r1, lsr #2 5864 cmp r2, r3 5865 addlt r2, r2, r1, lsr #3 5866 strhlt r2, [r6] @ movhi 5867.L978: 5868 ldr r3, [sp, #24] 5869 tst r3, #1 5870 beq .L986 5871 ldrh r6, [sp, #12] 5872 cmp r4, r6 5873 bcs .L986 5874 mov r9, #0 5875 movw r8, #65535 5876.L991: 5877 ldr r10, .L1086+44 5878 ldrh r7, [r10] 5879 mov r0, r7 5880 add r7, r7, #1 5881 bl zftl_get_gc_node.part.10 5882 cmp r0, r8 5883 strh r7, [r10] @ movhi 5884 beq .L987 5885 mov r2, #0 5886 mov r1, r2 5887 bl gc_add_sblk 5888 cmp r0, #0 5889 beq .L988 5890 add r4, r4, #1 5891 uxth r4, r4 5892 cmp r6, r4 5893 bhi .L988 5894.L989: 5895 ldr r3, .L1086+28 5896 movw r2, #2818 5897 ldrh r1, [r3, #-8] 5898.L1085: 5899 ldrh r3, [r5, r2] 5900 cmp r3, r1, lsr #1 5901 bls .L986 5902 sub r3, r3, r1, lsr #3 5903.L1082: 5904 strh r3, [r5, r2] @ movhi 5905 b .L986 5906.L974: 5907 ldr r3, .L1086+8 5908 mov r2, #0 5909 strh r2, [r3, #-6] @ movhi 5910 b .L976 5911.L972: 5912 mov r2, #0 5913 strh r2, [r3] @ movhi 5914 b .L976 5915.L975: 5916 add r7, r7, #1 5917 b .L971 5918.L980: 5919 mov r3, #0 5920 strh r3, [r7] @ movhi 5921 b .L983 5922.L982: 5923 add fp, fp, #1 5924 b .L979 5925.L985: 5926 ldrh r3, [r6] 5927 ldrh r2, [r9, #-8] 5928 cmp r3, r2 5929 subhi r3, r3, r2, lsr #3 5930 strhhi r3, [r6] @ movhi 5931 b .L978 5932.L987: 5933 mov r3, #0 5934 strh r3, [r10] @ movhi 5935.L990: 5936 cmp r4, r6 5937 bcs .L989 5938 ldr r1, .L1086+28 5939 movw r2, #2818 5940 ldrh r3, [r5, r2] 5941 ldrh r1, [r1, #-8] 5942 cmp r3, r1 5943 addcc r3, r3, r1, lsr #3 5944 bcc .L1082 5945.L986: 5946 ldr r3, .L1086+12 5947 ldr r3, [r3] 5948 tst r3, #256 5949 beq .L1021 5950 ldr r3, [sp, #12] 5951 ldr r2, [sp, #24] 5952 ldr r1, [sp, #16] 5953 str r3, [sp] 5954 mov r3, r4 5955 ldr r0, .L1086+48 5956 bl printk 5957.L1021: 5958 mov r0, r4 5959.L966: 5960 add sp, sp, #44 5961 @ sp needed 5962 pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} 5963.L988: 5964 add r9, r9, #1 5965 uxth r3, r9 5966 cmp r6, r3 5967 bhi .L991 5968 b .L990 5969.L970: 5970 ldr r4, .L1086+40 5971 ldrb r7, [r4, #-3127] @ zero_extendqisi2 5972 sub r4, r4, #3104 5973 ldrh r0, [r4, #-14] 5974 smulbb r7, r7, r0 5975 ldr r0, [sp, #12] 5976 cmp r0, #1 5977 uxth r7, r7 5978 bne .L992 5979 cmp r2, #0 5980 beq .L992 5981 ldrh r0, [r1, #80] 5982 movw r1, #65535 5983 cmp r0, r1 5984 movwne r1, #2102 5985 ldrhne r1, [r3, r1] 5986 subne r7, r7, r1 5987 mov r1, #8 5988 uxthne r7, r7 5989 str r1, [sp, #12] 5990.L992: 5991 mov r6, #0 5992 movw r1, #2180 5993 strh r6, [r3, r1] @ movhi 5994 ldr r3, [sp, #24] 5995 ldr r1, .L1086+28 5996 ands r3, r3, #1 5997 strh r6, [r1, #-6] @ movhi 5998 mov r8, r1 5999 str r3, [sp, #28] 6000 ldreq r6, [sp, #28] 6001 moveq r4, r6 6002 beq .L993 6003 movw r3, #2790 6004 ldrh r1, [r1, #-4] 6005 ldrh r3, [r5, r3] 6006 cmp r3, r1, lsr #2 6007 bhi .L994 6008 movw r1, #2792 6009 ldrh r1, [r5, r1] 6010 cmp r1, r3 6011 movcs r4, r6 6012 bcs .L995 6013.L994: 6014 cmp r2, #1 6015 bls .L996 6016.L998: 6017 mov r4, #0 6018.L997: 6019 ldr r9, .L1086+52 6020 mov r6, #0 6021 mov r8, #64 6022 movw fp, #65535 6023.L1001: 6024 ldr r2, .L1086+44 6025 ldrh r3, [r2] 6026 str r2, [sp, #36] 6027 mov r0, r3 6028 str r3, [sp, #32] 6029 bl zftl_get_gc_node.part.10 6030 cmp r0, fp 6031 mov r10, r0 6032 ldr r2, [sp, #36] 6033 beq .L999 6034 ldr r3, [sp, #32] 6035 mov r1, #0 6036 add r3, r3, #1 6037 strh r3, [r2] @ movhi 6038 ldr r2, [sp, #16] 6039 bl gc_add_sblk 6040 cmp r0, #0 6041 beq .L1000 6042 ldr r3, [r5, #1092] 6043 lsl r10, r10, #1 6044 add r4, r4, #1 6045 ldr r2, [sp, #12] 6046 uxth r4, r4 6047 ldrh r3, [r3, r10] 6048 add r6, r6, r3 6049 uxth r6, r6 6050 cmp r7, r6 6051 movcs r3, #0 6052 movcc r3, #1 6053 cmp r4, r2 6054 orrcs r3, r3, #1 6055 cmp r3, #0 6056 bne .L995 6057 ldr r2, .L1086+56 6058 ldrh r3, [r9] 6059 ldrh r2, [r2] 6060 cmp r3, r2, lsl #1 6061 ble .L1000 6062.L995: 6063 movw r3, #2792 6064 ldrh r2, [r5, r3] 6065 ldr r3, .L1086+28 6066 ldrh r3, [r3, #-4] 6067 cmp r2, r3, lsr #2 6068 bhi .L1022 6069 movw r3, #2790 6070 ldrh r3, [r5, r3] 6071 add r3, r3, #8 6072 cmp r2, r3 6073 ble .L993 6074.L1022: 6075 cmp r7, r6 6076 bls .L993 6077 ldrh r3, [sp, #16] 6078 mov r8, #64 6079 str r3, [sp, #32] 6080.L1004: 6081 ldr fp, .L1086+20 6082 mov r0, fp 6083 ldrh r9, [r0], #6 6084 mov r1, r9 6085 bl _list_get_gc_head_node 6086 movw r3, #65535 6087 mov r10, r0 6088 cmp r0, r3 6089 beq .L1002 6090 add r9, r9, #1 6091 ldr r2, [sp, #32] 6092 mov r1, #0 6093 strh r9, [fp] @ movhi 6094 bl gc_add_sblk 6095 cmp r0, #0 6096 beq .L1003 6097 ldr r3, [r5, #1092] 6098 lsl r10, r10, #1 6099 add r4, r4, #1 6100 ldr r2, [sp, #12] 6101 uxth r4, r4 6102 ldrh r3, [r3, r10] 6103 add r6, r6, r3 6104 uxth r6, r6 6105 cmp r7, r6 6106 movcs r3, #0 6107 movcc r3, #1 6108 cmp r4, r2 6109 orrcs r3, r3, #1 6110 cmp r3, #0 6111 beq .L1003 6112.L993: 6113 ldr r3, [sp, #24] 6114 tst r3, #2 6115 beq .L1005 6116 movw r3, #2794 6117 ldrh r3, [r5, r3] 6118 cmp r3, #32 6119 movls r3, #0 6120 movhi r3, #1 6121 cmp r6, r7 6122 movcs r3, #0 6123 cmp r3, #0 6124 beq .L1005 6125 ldr r10, .L1086+40 6126 mov r5, #64 6127 sub fp, r10, #3088 6128 sub r3, fp, #12 6129 str r3, [sp, #32] 6130.L1011: 6131 ldr r8, .L1086+8 6132 ldr r0, [sp, #32] 6133 ldrh r9, [r8, #-4] 6134 sub r2, r8, #4 6135 str r2, [sp, #36] 6136 mov r1, r9 6137 bl _list_get_gc_head_node 6138 movw r3, #65535 6139 ldr r2, [sp, #36] 6140 cmp r0, r3 6141 beq .L1006 6142 ldr r3, [sp, #12] 6143 add r9, r9, #1 6144 strh r9, [r8, #-4] @ movhi 6145 cmp r3, #1 6146 bne .L1007 6147 ldrh r2, [r8, #-14] 6148 ldrb r3, [r10, #-3127] @ zero_extendqisi2 6149 smulbb r3, r3, r2 6150 ldrh r2, [fp, #-8] 6151 sub r3, r3, r2, lsr #3 6152 ldr r2, .L1086+60 6153 strh r3, [r2] @ movhi 6154.L1007: 6155 ldr r9, .L1086 6156 lsl r8, r0, #1 6157 ldr r3, [r9, #1092] 6158 ldrh r2, [r3, r8] 6159 ldr r3, .L1086+60 6160 ldrh r3, [r3] 6161 cmp r2, r3 6162 bcs .L1008 6163 ldr r2, [sp, #16] 6164 mov r1, #0 6165 bl gc_add_sblk 6166 cmp r0, #0 6167 beq .L1009 6168 ldr r3, [sp, #20] 6169 add r4, r4, #1 6170 ldr r2, [sp, #12] 6171 uxth r4, r4 6172 add r0, r3, #1 6173 uxth r3, r0 6174 str r3, [sp, #20] 6175 ldr r3, [r9, #1092] 6176 ldrh r3, [r3, r8] 6177 add r6, r6, r3 6178 uxth r6, r6 6179 cmp r7, r6 6180 movcs r3, #0 6181 movcc r3, #1 6182 cmp r4, r2 6183 orrcs r3, r3, #1 6184 cmp r3, #0 6185 beq .L1009 6186.L1010: 6187 ldr r3, [sp, #12] 6188 ldr r0, .L1086+28 6189 ldr r2, .L1086 6190 cmp r4, r3 6191 add lr, r0, #3088 6192 bcc .L1012 6193 ldr r3, [sp, #20] 6194 cmp r3, #0 6195 bne .L1013 6196 movw r3, #2794 6197 ldrh r1, [r2, r3] 6198 ldrh r3, [r0, #-2] 6199 cmp r1, r3 6200 bls .L1013 6201.L1012: 6202 ldr r3, .L1086+8 6203 movw ip, #2808 6204 ldrh r0, [r0, #-8] 6205 ldrh r1, [r2, ip] 6206 ldrh r5, [r3, #-14] 6207 ldrb r3, [lr, #-3127] @ zero_extendqisi2 6208 lsr r0, r0, #3 6209 mul r3, r3, r5 6210 sub r3, r3, r0 6211 cmp r1, r3 6212 addlt r1, r1, r0 6213 strhlt r1, [r2, ip] @ movhi 6214.L1005: 6215 ldr r3, [sp, #28] 6216 cmp r3, #0 6217 beq .L986 6218 ldrh r9, [sp, #12] 6219 cmp r6, r7 6220 cmpcc r4, r9 6221 bcs .L986 6222 ldr r5, .L1086 6223 mov r8, #64 6224.L1019: 6225 ldr fp, .L1086+20 6226 mov r0, fp 6227 ldrh r10, [r0], #6 6228 mov r1, r10 6229 bl _list_get_gc_head_node 6230 movw r3, #65535 6231 cmp r0, r3 6232 beq .L1015 6233 add r10, r10, #1 6234 ldr r2, [r5, #1092] 6235 ldr r3, .L1086+64 6236 strh r10, [fp] @ movhi 6237 lsl r10, r0, #1 6238 ldrh r1, [r2, r10] 6239 ldrh r2, [r3] 6240 cmp r1, r2 6241 bcs .L1016 6242 ldrh r2, [fp, #18] 6243 ldrh r3, [r3, #-14] 6244 cmp r3, r2, lsr #1 6245 bls .L1017 6246.L1016: 6247 ldr r2, [sp, #16] 6248 mov r1, #0 6249 bl gc_add_sblk 6250 cmp r0, #0 6251 beq .L1018 6252 ldr r3, [r5, #1092] 6253 add r4, r4, #1 6254 uxth r4, r4 6255 ldrh r3, [r3, r10] 6256 add r6, r6, r3 6257 uxth r6, r6 6258 cmp r7, r6 6259 cmpcs r9, r4 6260 bhi .L1018 6261.L1017: 6262 ldr r3, .L1086+28 6263 cmp r4, r9 6264 movw r2, #2806 6265 ldrhcc r1, [r3, #-8] 6266 bcc .L1085 6267 ldrh r0, [r3, #-8] 6268 ldr r3, .L1086+40 6269 ldrh r1, [r5, r2] 6270 ldrb r3, [r3, #-3127] @ zero_extendqisi2 6271 mul r3, r0, r3 6272 sub r3, r3, #32 6273 cmp r1, r3 6274 addlt r1, r1, r0, lsr #3 6275 strhlt r1, [r5, r2] @ movhi 6276 b .L986 6277.L996: 6278 lsr r3, r3, #2 6279 mov r0, #0 6280 strh r3, [r4, #-8] @ movhi 6281 bl zftl_get_gc_node.part.10 6282 movw r2, #65535 6283 cmp r0, r2 6284 beq .L998 6285 ldr r1, [r5, #1092] 6286 lsl r3, r0, #1 6287 ldrh r2, [r8, #-8] 6288 ldrh r3, [r1, r3] 6289 cmp r3, r2, lsr #2 6290 bcs .L998 6291 mov r3, #1 6292 ldr r2, [sp, #16] 6293 mov r1, #0 6294 strh r3, [r4, #-8] @ movhi 6295 bl gc_add_sblk 6296 adds r4, r0, #0 6297 movne r4, #1 6298 b .L997 6299.L999: 6300 mov r3, #0 6301 strh r3, [r2] @ movhi 6302 b .L995 6303.L1000: 6304 sub r8, r8, #1 6305 uxth r8, r8 6306 cmp r8, #0 6307 bne .L1001 6308 b .L995 6309.L1002: 6310 cmp r9, #64 6311 movhi r3, #0 6312 strhhi r3, [fp] @ movhi 6313 b .L993 6314.L1003: 6315 sub r8, r8, #1 6316 uxth r8, r8 6317 cmp r8, #0 6318 bne .L1004 6319 b .L993 6320.L1008: 6321 ldr r3, .L1086+8 6322 mov r2, #0 6323 strh r2, [r3, #-4] @ movhi 6324 b .L1010 6325.L1006: 6326 mov r3, #0 6327 strh r3, [r2] @ movhi 6328 b .L1010 6329.L1009: 6330 sub r5, r5, #1 6331 uxth r5, r5 6332 cmp r5, #0 6333 bne .L1011 6334 b .L1010 6335.L1013: 6336 ldrh r0, [r0, #-8] 6337 movw ip, #2808 6338 ldrb r1, [lr, #-3127] @ zero_extendqisi2 6339 ldrh r3, [r2, ip] 6340 mul r1, r0, r1 6341 cmp r3, r1 6342 subgt r3, r3, r0, lsr #3 6343 strhgt r3, [r2, ip] @ movhi 6344 b .L986 6345.L1015: 6346 cmp r10, #64 6347 movhi r3, #0 6348 strhhi r3, [fp] @ movhi 6349 b .L1017 6350.L1018: 6351 sub r8, r8, #1 6352 uxth r8, r8 6353 cmp r8, #0 6354 bne .L1019 6355 b .L1017 6356.L1087: 6357 .align 2 6358.L1086: 6359 .word .LANCHOR0 6360 .word .LANCHOR0+2824 6361 .word .LANCHOR3-3104 6362 .word .LANCHOR2 6363 .word .LC98 6364 .word .LANCHOR3-3110 6365 .word .LANCHOR0+2818 6366 .word .LANCHOR3-3088 6367 .word .LANCHOR0+2816 6368 .word .LANCHOR3-3108 6369 .word .LANCHOR3 6370 .word .LANCHOR3-3112 6371 .word .LC99 6372 .word .LANCHOR0+2792 6373 .word .LANCHOR0+2790 6374 .word .LANCHOR0+2808 6375 .word .LANCHOR0+2806 6376 .fnend 6377 .size gc_search_src_blk, .-gc_search_src_blk 6378 .align 2 6379 .global zftl_get_gc_node 6380 .syntax unified 6381 .arm 6382 .fpu softvfp 6383 .type zftl_get_gc_node, %function 6384zftl_get_gc_node: 6385 .fnstart 6386 @ args = 0, pretend = 0, frame = 0 6387 @ frame_needed = 0, uses_anonymous_args = 0 6388 @ link register save eliminated. 6389 cmp r1, #5 6390 mov r3, r0 6391 moveq r1, r0 6392 ldreq r0, .L1092 6393 beq .L1091 6394 cmp r1, #2 6395 movne r1, r3 6396 ldrne r0, .L1092+4 6397 bne .L1091 6398 b zftl_get_gc_node.part.10 6399.L1091: 6400 b _list_get_gc_head_node 6401.L1093: 6402 .align 2 6403.L1092: 6404 .word .LANCHOR3-3100 6405 .word .LANCHOR3-3104 6406 .fnend 6407 .size zftl_get_gc_node, .-zftl_get_gc_node 6408 .align 2 6409 .global zftl_insert_free_list 6410 .syntax unified 6411 .arm 6412 .fpu softvfp 6413 .type zftl_insert_free_list, %function 6414zftl_insert_free_list: 6415 .fnstart 6416 @ args = 0, pretend = 0, frame = 0 6417 @ frame_needed = 0, uses_anonymous_args = 0 6418 @ link register save eliminated. 6419 ldr r2, .L1098 6420 mov r1, r0 6421 ldr r3, [r2, #1084] 6422 add r3, r3, r0, lsl #2 6423 ldrb r3, [r3, #2] @ zero_extendqisi2 6424 ands r3, r3, #24 6425 addeq r2, r2, #2784 6426 ldreq r0, .L1098+4 6427 beq .L1097 6428 cmp r3, #16 6429 ldr r0, .L1098+8 6430 ldreq r2, .L1098+12 6431 ldrne r2, .L1098+16 6432 subeq r0, r0, #12 6433 subne r0, r0, #8 6434.L1097: 6435 b _insert_free_list 6436.L1099: 6437 .align 2 6438.L1098: 6439 .word .LANCHOR0 6440 .word .LANCHOR3-3088 6441 .word .LANCHOR3-3072 6442 .word .LANCHOR0+2786 6443 .word .LANCHOR0+2788 6444 .fnend 6445 .size zftl_insert_free_list, .-zftl_insert_free_list 6446 .align 2 6447 .global zftl_insert_data_list 6448 .syntax unified 6449 .arm 6450 .fpu softvfp 6451 .type zftl_insert_data_list, %function 6452zftl_insert_data_list: 6453 .fnstart 6454 @ args = 0, pretend = 0, frame = 0 6455 @ frame_needed = 0, uses_anonymous_args = 0 6456 @ link register save eliminated. 6457 ldr r3, .L1105 6458 mov r1, r0 6459 ldr r3, [r3, #1084] 6460 add r3, r3, r0, lsl #2 6461 ldrb r3, [r3, #2] @ zero_extendqisi2 6462 and r3, r3, #224 6463 cmp r3, #64 6464 bne .L1101 6465 ldr r2, .L1105+4 6466 ldr r0, .L1105+8 6467.L1104: 6468 b _insert_data_list 6469.L1101: 6470 cmp r3, #96 6471 ldreq r2, .L1105+12 6472 ldreq r0, .L1105+16 6473 beq .L1104 6474.L1102: 6475 cmp r3, #160 6476 bxne lr 6477 ldr r2, .L1105+20 6478 ldr r0, .L1105+24 6479 b .L1104 6480.L1106: 6481 .align 2 6482.L1105: 6483 .word .LANCHOR0 6484 .word .LANCHOR0+2790 6485 .word .LANCHOR3-3116 6486 .word .LANCHOR0+2792 6487 .word .LANCHOR3-3104 6488 .word .LANCHOR0+2794 6489 .word .LANCHOR3-3100 6490 .fnend 6491 .size zftl_insert_data_list, .-zftl_insert_data_list 6492 .align 2 6493 .global zftl_gc_get_free_sblk 6494 .syntax unified 6495 .arm 6496 .fpu softvfp 6497 .type zftl_gc_get_free_sblk, %function 6498zftl_gc_get_free_sblk: 6499 .fnstart 6500 @ args = 0, pretend = 0, frame = 0 6501 @ frame_needed = 0, uses_anonymous_args = 0 6502 push {r0, r1, r2, r3, r4, r5, r6, r7, r8, lr} 6503 .save {r4, r5, r6, r7, r8, lr} 6504 .pad #16 6505 movw r2, #65535 6506 ldr r8, .L1126 6507 ldr r3, [r8, #1096] 6508 add r3, r3, #588 6509 ldrh r4, [r3] 6510 clz r3, r0 6511 lsr r3, r3, #5 6512 cmp r4, r2 6513 moveq r3, #0 6514 cmp r3, #0 6515 beq .L1108 6516 mov r1, r4 6517 ldr r0, .L1126+4 6518 bl printk 6519 ldr r3, [r8, #1096] 6520 mvn r2, #0 6521 add r3, r3, #588 6522 strh r2, [r3] @ movhi 6523.L1109: 6524 mov r0, r4 6525 add sp, sp, #16 6526 @ sp needed 6527 pop {r4, r5, r6, r7, r8, pc} 6528.L1108: 6529 movw r3, #2786 6530 mov r7, r1 6531 ldrh r1, [r8, r3] 6532 movw r3, #2788 6533 ldrh r3, [r8, r3] 6534 mov r6, r0 6535 mov r5, r8 6536 ldr r0, .L1126+8 6537 cmp r1, r3 6538 bcc .L1110 6539 add r2, r8, #2784 6540 ldrh r2, [r2] 6541 cmp r3, #0 6542 cmpne r2, r1 6543 bls .L1111 6544.L1110: 6545 cmp r6, #0 6546 ldr r2, .L1126+12 6547 rsbne r1, r1, r1, lsl #3 6548 lsreq r1, r3, #2 6549 ubfxne r1, r1, #3, #16 6550 sub r0, r0, #8 6551.L1125: 6552 bl _list_pop_index_node 6553 uxth r4, r0 6554 movw r3, #65535 6555 cmp r4, r3 6556 bne .L1116 6557 movw r3, #2788 6558 mov r2, r7 6559 ldrh r3, [r5, r3] 6560 mov r1, r4 6561 ldr r0, .L1126+16 6562 str r3, [sp, #4] 6563 ldr r3, .L1126+20 6564 ldrh r3, [r3] 6565 str r3, [sp] 6566 ldr r3, .L1126+24 6567 ldr r3, [r3, #-3088] 6568 bl printk 6569.L1116: 6570 cmp r6, #0 6571 beq .L1109 6572 ldr r3, .L1126+28 6573 ldr r3, [r3] 6574 tst r3, #256 6575 beq .L1109 6576 ldr ip, [r5, #1092] 6577 lsl r0, r4, #1 6578 ldr r1, [r5, #1084] 6579 lsl r3, r4, #2 6580 ldrh r0, [ip, r0] 6581 add r2, r1, r3 6582 ldrb r2, [r2, #2] @ zero_extendqisi2 6583 str r0, [sp, #8] 6584 ldrh r3, [r1, r3] 6585 ldr r0, .L1126+32 6586 ubfx r3, r3, #0, #11 6587 str r3, [sp, #4] 6588 ldr r3, [r1, r4, lsl #2] 6589 mov r1, r4 6590 ubfx r3, r3, #11, #8 6591 str r3, [sp] 6592 ubfx r3, r2, #3, #2 6593 lsr r2, r2, #5 6594 bl printk 6595 b .L1109 6596.L1111: 6597 cmp r6, #0 6598 ldr r2, .L1126+36 6599 lsrne r1, r1, #3 6600 moveq r1, r6 6601 sub r0, r0, #12 6602 b .L1125 6603.L1127: 6604 .align 2 6605.L1126: 6606 .word .LANCHOR0 6607 .word .LC100 6608 .word .LANCHOR3-3072 6609 .word .LANCHOR0+2788 6610 .word .LC101 6611 .word .LANCHOR0+2784 6612 .word .LANCHOR3 6613 .word .LANCHOR2 6614 .word .LC102 6615 .word .LANCHOR0+2786 6616 .fnend 6617 .size zftl_gc_get_free_sblk, .-zftl_gc_get_free_sblk 6618 .align 2 6619 .global zftl_get_free_sblk 6620 .syntax unified 6621 .arm 6622 .fpu softvfp 6623 .type zftl_get_free_sblk, %function 6624zftl_get_free_sblk: 6625 .fnstart 6626 @ args = 0, pretend = 0, frame = 0 6627 @ frame_needed = 0, uses_anonymous_args = 0 6628 cmp r1, #5 6629 push {r0, r1, r4, r5, r6, r7, r8, lr} 6630 .save {r4, r5, r6, r7, r8, lr} 6631 .pad #8 6632 mov r7, r1 6633 ldr r5, .L1141 6634 bne .L1129 6635 movw r3, #2786 6636 ldr r0, .L1141+4 6637 ldrh r1, [r5, r3] 6638 movw r3, #2788 6639 ldrh ip, [r5, r3] 6640 cmp r1, ip 6641 bcc .L1130 6642 add r3, r5, #2784 6643 ldrh r3, [r3] 6644 cmp ip, #0 6645 cmpne r3, r1 6646 movhi r1, #1 6647 movls r1, #0 6648 ldrls r2, .L1141+8 6649 subls r0, r0, #12 6650 bls .L1140 6651.L1130: 6652 ldr r2, .L1141+12 6653 lsr r1, ip, #1 6654 sub r0, r0, #8 6655.L1140: 6656 bl _list_pop_index_node 6657 uxth r4, r0 6658 movw r3, #65535 6659 cmp r4, r3 6660 bne .L1134 6661 movw r3, #2788 6662 mov r2, r7 6663 ldrh r3, [r5, r3] 6664 mov r1, r4 6665 ldr r0, .L1141+16 6666 str r3, [sp, #4] 6667 ldr r3, .L1141+20 6668 ldrh r3, [r3] 6669 str r3, [sp] 6670 ldr r3, .L1141+24 6671 ldr r3, [r3, #-3088] 6672 bl printk 6673 b .L1134 6674.L1129: 6675 ldr r3, [r5, #1096] 6676 movw r8, #590 6677 ldrh r4, [r3, r8] 6678 movw r3, #65535 6679 cmp r1, #1 6680 cmpne r4, r3 6681 beq .L1133 6682 mov r1, r4 6683 ldr r0, .L1141+28 6684 bl printk 6685 ldr r3, [r5, #1096] 6686 mvn r2, #0 6687 strh r2, [r3, r8] @ movhi 6688.L1134: 6689 mov r0, r4 6690 add sp, sp, #8 6691 @ sp needed 6692 pop {r4, r5, r6, r7, r8, pc} 6693.L1133: 6694 add r3, r5, #2784 6695 movw r2, #2788 6696 ldrh r3, [r3] 6697 mov r6, r0 6698 ldrh r2, [r5, r2] 6699 cmp r3, r2 6700 bcc .L1135 6701 movw r1, #2786 6702 ldrh r1, [r5, r1] 6703 cmp r2, #0 6704 cmpne r1, r3 6705 bls .L1136 6706.L1135: 6707 bl get_ink_scaned_blk 6708 movw r3, #65535 6709 mov r4, r0 6710 cmp r0, r3 6711 bne .L1134 6712 cmp r7, #1 6713 ldr r2, .L1141+12 6714 movweq r3, #2788 6715 ldr r0, .L1141+32 6716 ldrheq r6, [r5, r3] 6717 lsreq r6, r6, #1 6718 mov r1, r6 6719 b .L1140 6720.L1136: 6721 cmp r7, #1 6722 ldr r2, .L1141+20 6723 lsreq r6, r3, #1 6724 ldr r0, .L1141+36 6725 mov r1, r6 6726 b .L1140 6727.L1142: 6728 .align 2 6729.L1141: 6730 .word .LANCHOR0 6731 .word .LANCHOR3-3072 6732 .word .LANCHOR0+2786 6733 .word .LANCHOR0+2788 6734 .word .LC101 6735 .word .LANCHOR0+2784 6736 .word .LANCHOR3 6737 .word .LC103 6738 .word .LANCHOR3-3080 6739 .word .LANCHOR3-3088 6740 .fnend 6741 .size zftl_get_free_sblk, .-zftl_get_free_sblk 6742 .align 2 6743 .global zftl_remove_data_node 6744 .syntax unified 6745 .arm 6746 .fpu softvfp 6747 .type zftl_remove_data_node, %function 6748zftl_remove_data_node: 6749 .fnstart 6750 @ args = 0, pretend = 0, frame = 0 6751 @ frame_needed = 0, uses_anonymous_args = 0 6752 @ link register save eliminated. 6753 ldr r3, .L1148 6754 mov r1, r0 6755 ldr r3, [r3, #1084] 6756 add r3, r3, r0, lsl #2 6757 ldrb r3, [r3, #2] @ zero_extendqisi2 6758 and r3, r3, #224 6759 cmp r3, #64 6760 bne .L1144 6761 ldr r2, .L1148+4 6762 ldr r0, .L1148+8 6763.L1147: 6764 b _list_remove_node 6765.L1144: 6766 cmp r3, #96 6767 ldreq r2, .L1148+12 6768 ldreq r0, .L1148+16 6769 beq .L1147 6770.L1145: 6771 cmp r3, #160 6772 bxne lr 6773 ldr r2, .L1148+20 6774 ldr r0, .L1148+24 6775 b .L1147 6776.L1149: 6777 .align 2 6778.L1148: 6779 .word .LANCHOR0 6780 .word .LANCHOR0+2790 6781 .word .LANCHOR3-3116 6782 .word .LANCHOR0+2792 6783 .word .LANCHOR3-3104 6784 .word .LANCHOR0+2794 6785 .word .LANCHOR3-3100 6786 .fnend 6787 .size zftl_remove_data_node, .-zftl_remove_data_node 6788 .align 2 6789 .global zftl_remove_free_node 6790 .syntax unified 6791 .arm 6792 .fpu softvfp 6793 .type zftl_remove_free_node, %function 6794zftl_remove_free_node: 6795 .fnstart 6796 @ args = 0, pretend = 0, frame = 0 6797 @ frame_needed = 0, uses_anonymous_args = 0 6798 @ link register save eliminated. 6799 ldr r2, .L1154 6800 mov r1, r0 6801 ldr r3, [r2, #1084] 6802 add r3, r3, r0, lsl #2 6803 ldrb r3, [r3, #2] @ zero_extendqisi2 6804 ands r3, r3, #24 6805 addeq r2, r2, #2784 6806 ldreq r0, .L1154+4 6807 beq .L1153 6808 cmp r3, #16 6809 ldr r0, .L1154+8 6810 ldreq r2, .L1154+12 6811 ldrne r2, .L1154+16 6812 subeq r0, r0, #12 6813 subne r0, r0, #8 6814.L1153: 6815 b _list_remove_node 6816.L1155: 6817 .align 2 6818.L1154: 6819 .word .LANCHOR0 6820 .word .LANCHOR3-3088 6821 .word .LANCHOR3-3072 6822 .word .LANCHOR0+2786 6823 .word .LANCHOR0+2788 6824 .fnend 6825 .size zftl_remove_free_node, .-zftl_remove_free_node 6826 .align 2 6827 .global zftl_list_update_data_list 6828 .syntax unified 6829 .arm 6830 .fpu softvfp 6831 .type zftl_list_update_data_list, %function 6832zftl_list_update_data_list: 6833 .fnstart 6834 @ args = 0, pretend = 0, frame = 0 6835 @ frame_needed = 0, uses_anonymous_args = 0 6836 @ link register save eliminated. 6837 ldr r3, .L1161 6838 mov r1, r0 6839 ldr r3, [r3, #1084] 6840 add r3, r3, r0, lsl #2 6841 ldrb r3, [r3, #2] @ zero_extendqisi2 6842 and r3, r3, #224 6843 cmp r3, #64 6844 bne .L1157 6845 ldr r2, .L1161+4 6846 ldr r0, .L1161+8 6847.L1160: 6848 b _list_update_data_list 6849.L1157: 6850 cmp r3, #96 6851 ldreq r2, .L1161+12 6852 ldreq r0, .L1161+16 6853 beq .L1160 6854.L1158: 6855 cmp r3, #160 6856 bxne lr 6857 ldr r2, .L1161+20 6858 ldr r0, .L1161+24 6859 b .L1160 6860.L1162: 6861 .align 2 6862.L1161: 6863 .word .LANCHOR0 6864 .word .LANCHOR0+2790 6865 .word .LANCHOR3-3116 6866 .word .LANCHOR0+2792 6867 .word .LANCHOR3-3104 6868 .word .LANCHOR0+2794 6869 .word .LANCHOR3-3100 6870 .fnend 6871 .size zftl_list_update_data_list, .-zftl_list_update_data_list 6872 .align 2 6873 .global print_list_info 6874 .syntax unified 6875 .arm 6876 .fpu softvfp 6877 .type print_list_info, %function 6878print_list_info: 6879 .fnstart 6880 @ args = 0, pretend = 0, frame = 0 6881 @ frame_needed = 0, uses_anonymous_args = 0 6882 push {r4, r5, r6, r7, r8, r9, lr} 6883 .save {r4, r5, r6, r7, r8, r9, lr} 6884 mov r4, r0 6885 ldrh r2, [r1] 6886 .pad #36 6887 sub sp, sp, #36 6888 ldr r1, [r0] 6889 ldr r0, .L1168 6890 bl printk 6891 ldr r4, [r4] 6892 cmp r4, #0 6893 beq .L1163 6894 ldr r6, .L1168+4 6895 mov r5, #0 6896 ldr r7, .L1168+8 6897 ldr r8, .L1168+12 6898.L1166: 6899 ldr r2, [r6, #1036] 6900 ldr r9, [r6, #1092] 6901 ldr r1, [r6, #1084] 6902 sub r2, r4, r2 6903 ldrh r3, [r4] 6904 asr r2, r2, #1 6905 mul r2, r7, r2 6906 uxth r2, r2 6907 lsl lr, r2, #1 6908 lsl r0, r2, #2 6909 ldrh lr, [r9, lr] 6910 add ip, r1, r0 6911 str lr, [sp, #24] 6912 ldrh r0, [r1, r0] 6913 ubfx r0, r0, #0, #11 6914 str r0, [sp, #20] 6915 mov r0, r8 6916 ldr r1, [r1, r2, lsl #2] 6917 ubfx r1, r1, #11, #8 6918 str r1, [sp, #16] 6919 ldrb r1, [ip, #2] @ zero_extendqisi2 6920 ubfx r1, r1, #3, #2 6921 str r1, [sp, #12] 6922 ldrb r1, [ip, #2] @ zero_extendqisi2 6923 lsr r1, r1, #5 6924 str r1, [sp, #8] 6925 ldrh r1, [r4, #4] 6926 str r1, [sp, #4] 6927 ldrh r1, [r4, #2] 6928 str r1, [sp] 6929 mov r1, r5 6930 bl printk 6931 ldrh r4, [r4] 6932 movw r3, #65535 6933 cmp r4, r3 6934 beq .L1163 6935 ldr r3, [r6, #1036] 6936 mov r2, #6 6937 add r5, r5, #1 6938 uxth r5, r5 6939 mla r4, r2, r4, r3 6940 ldr r3, .L1168+16 6941 ldrh r3, [r3] 6942 cmp r3, r5 6943 bcs .L1166 6944.L1163: 6945 add sp, sp, #36 6946 @ sp needed 6947 pop {r4, r5, r6, r7, r8, r9, pc} 6948.L1169: 6949 .align 2 6950.L1168: 6951 .word .LC104 6952 .word .LANCHOR0 6953 .word -1431655765 6954 .word .LC105 6955 .word .LANCHOR3-3076 6956 .fnend 6957 .size print_list_info, .-print_list_info 6958 .align 2 6959 .global dump_all_list_info 6960 .syntax unified 6961 .arm 6962 .fpu softvfp 6963 .type dump_all_list_info, %function 6964dump_all_list_info: 6965 .fnstart 6966 @ args = 0, pretend = 0, frame = 0 6967 @ frame_needed = 0, uses_anonymous_args = 0 6968 push {r4, r5, r6, r7, r8, lr} 6969 .save {r4, r5, r6, r7, r8, lr} 6970 ldr r5, .L1172 6971 ldr r4, .L1172+4 6972 sub r6, r5, #3088 6973 sub r7, r5, #3072 6974 mov r0, r6 6975 sub r5, r5, #3104 6976 add r1, r4, #2784 6977 bl print_list_info 6978 add r1, r4, #2784 6979 sub r0, r7, #12 6980 add r1, r1, #2 6981 bl print_list_info 6982 add r1, r4, #2784 6983 sub r0, r7, #8 6984 add r1, r1, #4 6985 bl print_list_info 6986 add r1, r4, #2784 6987 sub r0, r5, #12 6988 add r1, r1, #6 6989 bl print_list_info 6990 add r1, r4, #2784 6991 mov r0, r5 6992 add r1, r1, #8 6993 bl print_list_info 6994 add r1, r4, #2784 6995 sub r0, r6, #12 6996 add r1, r1, #10 6997 pop {r4, r5, r6, r7, r8, lr} 6998 b print_list_info 6999.L1173: 7000 .align 2 7001.L1172: 7002 .word .LANCHOR3 7003 .word .LANCHOR0 7004 .fnend 7005 .size dump_all_list_info, .-dump_all_list_info 7006 .align 2 7007 .global ftl_tmp_into_update 7008 .syntax unified 7009 .arm 7010 .fpu softvfp 7011 .type ftl_tmp_into_update, %function 7012ftl_tmp_into_update: 7013 .fnstart 7014 @ args = 0, pretend = 0, frame = 0 7015 @ frame_needed = 0, uses_anonymous_args = 0 7016 @ link register save eliminated. 7017 ldr r3, .L1179 7018 ldr r3, [r3, #2800] 7019 ldr r2, [r3, #16] 7020 cmp r2, #2048 7021 ldrhi r1, [r3, #20] 7022 addhi r1, r1, r2, lsr #11 7023 ubfxhi r2, r2, #0, #11 7024 strhi r2, [r3, #16] 7025 ldr r2, [r3, #24] 7026 strhi r1, [r3, #20] 7027 cmp r2, #2048 7028 ldrhi r1, [r3, #28] 7029 addhi r1, r1, r2, lsr #11 7030 ubfxhi r2, r2, #0, #11 7031 strhi r2, [r3, #24] 7032 ldr r2, [r3, #32] 7033 strhi r1, [r3, #28] 7034 cmp r2, #1024 7035 ldrhi r1, [r3, #36] 7036 addhi r1, r1, r2, lsr #10 7037 ubfxhi r2, r2, #0, #10 7038 strhi r2, [r3, #32] 7039 ldr r2, [r3, #40] 7040 strhi r1, [r3, #36] 7041 cmp r2, #1024 7042 ldrhi r1, [r3, #44] 7043 addhi r1, r1, r2, lsr #10 7044 ubfxhi r2, r2, #0, #10 7045 strhi r2, [r3, #40] 7046 strhi r1, [r3, #44] 7047 bx lr 7048.L1180: 7049 .align 2 7050.L1179: 7051 .word .LANCHOR0 7052 .fnend 7053 .size ftl_tmp_into_update, .-ftl_tmp_into_update 7054 .global __aeabi_idiv 7055 .align 2 7056 .global ftl_get_blk_list_in_sblk 7057 .syntax unified 7058 .arm 7059 .fpu softvfp 7060 .type ftl_get_blk_list_in_sblk, %function 7061ftl_get_blk_list_in_sblk: 7062 .fnstart 7063 @ args = 0, pretend = 0, frame = 8 7064 @ frame_needed = 0, uses_anonymous_args = 0 7065 push {r0, r1, r2, r4, r5, r6, r7, r8, r9, r10, fp, lr} 7066 .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} 7067 .pad #12 7068 mov r5, #0 7069 ldr r9, .L1189 7070 mov r10, r0 7071 mov r6, r1 7072 mov r7, r5 7073 ldr r8, .L1189+4 7074 ldr r3, [r9, #1084] 7075 add r3, r3, r0, lsl #2 7076 ldrb r2, [r3, #3] @ zero_extendqisi2 7077 mov r3, r8 7078.L1182: 7079 ldrb r1, [r8, #-3127] @ zero_extendqisi2 7080 cmp r7, r1 7081 blt .L1185 7082 add r6, r6, r5, lsl #1 7083 mov r2, r5 7084 mvn r0, #0 7085.L1186: 7086 ldrb r1, [r3, #-3127] @ zero_extendqisi2 7087 cmp r2, r1 7088 blt .L1187 7089 mov r0, r5 7090 add sp, sp, #12 7091 @ sp needed 7092 pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} 7093.L1185: 7094 asr r1, r2, r7 7095 tst r1, #1 7096 bne .L1183 7097 ldrb r4, [r8, #-3136] @ zero_extendqisi2 7098 mov r0, r7 7099 stm sp, {r2, r3} 7100 lsl fp, r5, #1 7101 add r5, r5, #1 7102 mov r1, r4 7103 bl __aeabi_idiv 7104 ldr ip, .L1189+8 7105 smulbb r4, r4, r10 7106 ldrb r1, [r9, #1153] @ zero_extendqisi2 7107 ldm sp, {r2, r3} 7108 ldrh ip, [ip] 7109 rsb r1, r1, #24 7110 sub r1, r1, ip 7111 add r0, r4, r0, lsl r1 7112 uxth r0, r0 7113 strh r0, [r6, fp] @ movhi 7114 ldrb r1, [r8, #-3136] @ zero_extendqisi2 7115 cmp r1, #1 7116 subhi r1, r1, #1 7117 andhi r1, r1, r7 7118 addhi r0, r0, r1 7119 strhhi r0, [r6, fp] @ movhi 7120.L1183: 7121 add r7, r7, #1 7122 b .L1182 7123.L1187: 7124 strh r0, [r6], #2 @ movhi 7125 add r2, r2, #1 7126 b .L1186 7127.L1190: 7128 .align 2 7129.L1189: 7130 .word .LANCHOR0 7131 .word .LANCHOR3 7132 .word .LANCHOR3-3138 7133 .fnend 7134 .size ftl_get_blk_list_in_sblk, .-ftl_get_blk_list_in_sblk 7135 .align 2 7136 .global ftl_erase_phy_blk 7137 .syntax unified 7138 .arm 7139 .fpu softvfp 7140 .type ftl_erase_phy_blk, %function 7141ftl_erase_phy_blk: 7142 .fnstart 7143 @ args = 0, pretend = 0, frame = 0 7144 @ frame_needed = 0, uses_anonymous_args = 0 7145 ldr r2, .L1197 7146 ldr r3, .L1197+4 7147 push {r4, r5, r6, r7, r8, lr} 7148 .save {r4, r5, r6, r7, r8, lr} 7149 mov r6, r1 7150 sub r1, r2, #3136 7151 sub r7, r2, #3072 7152 ldrb r3, [r3, #1153] @ zero_extendqisi2 7153 ldrh r4, [r1, #-2] 7154 rsb r3, r3, #24 7155 sub r3, r3, r4 7156 mvn r4, #0 7157 asr r5, r0, r3 7158 bic r4, r0, r4, lsl r3 7159 ldrb r3, [r2, #-3126] @ zero_extendqisi2 7160 sxth r4, r4 7161 uxtb r5, r5 7162 cmp r3, #0 7163 beq .L1192 7164 ldrb r3, [r2, #-3125] @ zero_extendqisi2 7165 cmp r3, #0 7166 bne .L1192 7167 ldrh r2, [r7, #-2] 7168 clz r1, r6 7169 lsr r1, r1, #5 7170 mov r0, r5 7171 mul r2, r4, r2 7172 bl flash_erase_block_en 7173.L1192: 7174 ldrh r2, [r7, #-2] 7175 uxtb r1, r6 7176 mov r0, r5 7177 mul r2, r4, r2 7178 pop {r4, r5, r6, r7, r8, lr} 7179 b flash_erase_block_en 7180.L1198: 7181 .align 2 7182.L1197: 7183 .word .LANCHOR3 7184 .word .LANCHOR0 7185 .fnend 7186 .size ftl_erase_phy_blk, .-ftl_erase_phy_blk 7187 .align 2 7188 .global ftl_erase_sblk 7189 .syntax unified 7190 .arm 7191 .fpu softvfp 7192 .type ftl_erase_sblk, %function 7193ftl_erase_sblk: 7194 .fnstart 7195 @ args = 0, pretend = 0, frame = 80 7196 @ frame_needed = 0, uses_anonymous_args = 0 7197 push {r4, r5, r6, r7, r8, r9, r10, fp, lr} 7198 .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} 7199 lsl fp, r0, #2 7200 ldr r4, .L1224 7201 mov r8, r0 7202 mov r7, r1 7203 mov r6, #0 7204 ldr r9, .L1224+4 7205 .pad #84 7206 sub sp, sp, #84 7207 ldr r3, [r4, #1084] 7208 add r3, r3, fp 7209 ldrb r3, [r3, #3] @ zero_extendqisi2 7210 str r3, [sp, #4] 7211.L1200: 7212 ldr r3, .L1224+4 7213 ldrb r3, [r3, #-3072] @ zero_extendqisi2 7214 cmp r6, r3 7215 bge .L1211 7216 ldr r3, .L1224+4 7217 mov r5, #0 7218 ldrb r2, [r3, #-3136] @ zero_extendqisi2 7219 sub r10, r2, #1 7220 mul r3, r2, r8 7221 mul ip, r2, r6 7222 str r3, [sp, #8] 7223 ldr r3, .L1224+8 7224 ldrh r3, [r3] 7225 str r3, [sp, #12] 7226 mov r3, r5 7227 b .L1212 7228.L1202: 7229 ldr lr, [sp, #4] 7230 add r1, ip, r3 7231 asr r1, lr, r1 7232 tst r1, #1 7233 bne .L1201 7234 ldr r0, [sp, #8] 7235 add r1, sp, #80 7236 add lr, r1, r5, lsl #2 7237 and r1, r3, r10 7238 add r5, r5, #1 7239 add r1, r1, r0 7240 ldr r0, [sp, #12] 7241 mul r1, r0, r1 7242 str r1, [lr, #-64] 7243.L1201: 7244 add r3, r3, #1 7245.L1212: 7246 cmp r3, r2 7247 blt .L1202 7248 cmp r2, #4 7249 bne .L1203 7250 uxtb r3, r7 7251 mov r10, #0 7252 str r3, [sp, #8] 7253 uxtb r3, r6 7254.L1204: 7255 cmp r10, r5 7256 bne .L1205 7257.L1206: 7258 add r6, r6, #1 7259 b .L1200 7260.L1205: 7261 add r2, sp, #16 7262 mov r0, r3 7263 ldr r2, [r2, r10, lsl #2] 7264 add r10, r10, #1 7265 ldr r1, [sp, #8] 7266 str r3, [sp, #12] 7267 bl flash_erase_block_en 7268 ldr r3, [sp, #12] 7269 b .L1204 7270.L1203: 7271 cmp r5, #2 7272 bne .L1207 7273 ldrb r3, [r9, #-3126] @ zero_extendqisi2 7274 uxtb r5, r6 7275 cmp r3, #0 7276 beq .L1208 7277 ldrb r3, [r9, #-3125] @ zero_extendqisi2 7278 cmp r3, #0 7279 bne .L1208 7280 clz r1, r7 7281 ldr r3, [sp, #20] 7282 ldr r2, [sp, #16] 7283 lsr r1, r1, #5 7284 mov r0, r5 7285 bl flash_erase_duplane_block 7286.L1208: 7287 ldr r3, [sp, #20] 7288 uxtb r1, r7 7289 ldr r2, [sp, #16] 7290 mov r0, r5 7291 bl flash_erase_duplane_block 7292 b .L1206 7293.L1207: 7294 cmp r5, #1 7295 bne .L1206 7296 ldrb r3, [r9, #-3126] @ zero_extendqisi2 7297 uxtb r5, r6 7298 cmp r3, #0 7299 beq .L1210 7300 ldrb r3, [r9, #-3125] @ zero_extendqisi2 7301 cmp r3, #0 7302 bne .L1210 7303 clz r1, r7 7304 ldr r2, [sp, #16] 7305 lsr r1, r1, #5 7306 mov r0, r5 7307 bl flash_erase_block_en 7308.L1210: 7309 ldr r2, [sp, #16] 7310 uxtb r1, r7 7311 mov r0, r5 7312 bl flash_erase_block_en 7313 b .L1206 7314.L1211: 7315 cmp r7, #0 7316 bne .L1213 7317 ldr r2, [r4, #1084] 7318 ldrh r3, [r2, fp] 7319 add r1, r3, #1 7320 bfi r3, r1, #0, #11 7321 strh r3, [r2, fp] @ movhi 7322 ldr r3, [r4, #2800] 7323 ldr r2, [r3, #84] 7324 ldrh r0, [r3, #96] 7325 add r2, r2, #1 7326 str r2, [r3, #84] 7327 ldr r2, [r4, #1084] 7328 ldrh r2, [r2, fp] 7329 ubfx r2, r2, #0, #11 7330 uxth r1, r2 7331 cmp r0, r1 7332 strhlt r2, [r3, #96] @ movhi 7333.L1215: 7334 mov r0, #0 7335 add sp, sp, #84 7336 @ sp needed 7337 pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} 7338.L1213: 7339 ldr r1, [r4, #1084] 7340 ldr r3, [r1, r8, lsl #2] 7341 ubfx r2, r3, #11, #8 7342 add r2, r2, #1 7343 bfi r3, r2, #11, #8 7344 str r3, [r1, r8, lsl #2] 7345 ldr r3, [r4, #2800] 7346 ldr r2, [r3, #80] 7347 ldrh r1, [r3, #98] 7348 add r2, r2, #1 7349 str r2, [r3, #80] 7350 ldr r2, [r4, #1084] 7351 ldr r2, [r2, r8, lsl #2] 7352 ubfx r2, r2, #11, #8 7353 cmp r1, r2 7354 strhcc r2, [r3, #98] @ movhi 7355 b .L1215 7356.L1225: 7357 .align 2 7358.L1224: 7359 .word .LANCHOR0 7360 .word .LANCHOR3 7361 .word .LANCHOR3-3074 7362 .fnend 7363 .size ftl_erase_sblk, .-ftl_erase_sblk 7364 .align 2 7365 .global ftl_alloc_sys_blk 7366 .syntax unified 7367 .arm 7368 .fpu softvfp 7369 .type ftl_alloc_sys_blk, %function 7370ftl_alloc_sys_blk: 7371 .fnstart 7372 @ args = 0, pretend = 0, frame = 0 7373 @ frame_needed = 0, uses_anonymous_args = 0 7374 ldr r3, .L1236 7375 push {r4, lr} 7376 .save {r4, lr} 7377 mov r4, r3 7378 ldr r2, [r3, #2800] 7379 ldrh r1, [r2, #136] 7380 cmp r1, #63 7381 movhi r3, #0 7382 strhhi r3, [r2, #136] @ movhi 7383 ldrh r3, [r2, #112] 7384 cmp r3, #0 7385 bne .L1228 7386 movw r2, #1359 7387 ldr r1, .L1236+4 7388 ldr r0, .L1236+8 7389 bl printk 7390 bl dump_stack 7391.L1228: 7392 ldr r3, [r4, #2800] 7393 movw lr, #65535 7394 mov ip, #0 7395.L1232: 7396 ldrh r2, [r3, #136] 7397 add r1, r3, r2, lsl #1 7398 add r1, r1, #158 7399.L1229: 7400 cmp r2, #63 7401 strhgt ip, [r3, #136] @ movhi 7402 bgt .L1232 7403.L1231: 7404 ldrh r0, [r1, #2]! 7405 cmp r0, lr 7406 addeq r2, r2, #1 7407 beq .L1229 7408.L1234: 7409 add r1, r3, r2, lsl #1 7410 mvn ip, #0 7411 strh ip, [r1, #160] @ movhi 7412 strh r2, [r3, #136] @ movhi 7413 ldrh r2, [r3, #112] 7414 add r2, r2, ip 7415 strh r2, [r3, #112] @ movhi 7416 pop {r4, pc} 7417.L1237: 7418 .align 2 7419.L1236: 7420 .word .LANCHOR0 7421 .word .LANCHOR1+1479 7422 .word .LC0 7423 .fnend 7424 .size ftl_alloc_sys_blk, .-ftl_alloc_sys_blk 7425 .align 2 7426 .global ftl_free_sys_blk 7427 .syntax unified 7428 .arm 7429 .fpu softvfp 7430 .type ftl_free_sys_blk, %function 7431ftl_free_sys_blk: 7432 .fnstart 7433 @ args = 0, pretend = 0, frame = 0 7434 @ frame_needed = 0, uses_anonymous_args = 0 7435 ldr r3, .L1247 7436 push {r4, r5, r6, lr} 7437 .save {r4, r5, r6, lr} 7438 mov r5, r0 7439 mov r4, r3 7440 ldr r2, [r3, #2800] 7441 ldrh r1, [r2, #138] 7442 cmp r1, #63 7443 movhi r3, #0 7444 strhhi r3, [r2, #138] @ movhi 7445 ldrh r3, [r2, #112] 7446 cmp r3, #63 7447 bls .L1240 7448 movw r2, #1386 7449 ldr r1, .L1247+4 7450 ldr r0, .L1247+8 7451 bl printk 7452 bl dump_stack 7453.L1240: 7454 ldr r3, [r4, #2800] 7455 movw ip, #65535 7456 mov r0, #0 7457.L1244: 7458 ldrh r2, [r3, #138] 7459 add r1, r3, r2, lsl #1 7460 add r1, r1, #158 7461.L1241: 7462 cmp r2, #63 7463 strhgt r0, [r3, #138] @ movhi 7464 bgt .L1244 7465.L1243: 7466 ldrh lr, [r1, #2]! 7467 cmp lr, ip 7468 bne .L1242 7469 add r1, r3, r2, lsl #1 7470 strh r5, [r1, #160] @ movhi 7471 strh r2, [r3, #138] @ movhi 7472 ldrh r2, [r3, #112] 7473 add r2, r2, #1 7474 strh r2, [r3, #112] @ movhi 7475 pop {r4, r5, r6, pc} 7476.L1242: 7477 add r2, r2, #1 7478 b .L1241 7479.L1248: 7480 .align 2 7481.L1247: 7482 .word .LANCHOR0 7483 .word .LANCHOR1+1497 7484 .word .LC0 7485 .fnend 7486 .size ftl_free_sys_blk, .-ftl_free_sys_blk 7487 .align 2 7488 .global ftl_info_data_recovery 7489 .syntax unified 7490 .arm 7491 .fpu softvfp 7492 .type ftl_info_data_recovery, %function 7493ftl_info_data_recovery: 7494 .fnstart 7495 @ args = 0, pretend = 0, frame = 0 7496 @ frame_needed = 0, uses_anonymous_args = 0 7497 push {r4, r5, r6, r7, r8, lr} 7498 .save {r4, r5, r6, r7, r8, lr} 7499 movw r3, #65535 7500 ldrh r6, [r0] 7501 cmp r6, r3 7502 popeq {r4, r5, r6, r7, r8, pc} 7503 ldr r4, .L1259 7504 lsl r8, r6, #2 7505 ldr r5, [r4, #1084] 7506 add r7, r5, r8 7507 ldrb r3, [r7, #2] @ zero_extendqisi2 7508 tst r3, #224 7509 popne {r4, r5, r6, r7, r8, pc} 7510 ldrb r2, [r0, #4] @ zero_extendqisi2 7511 mov r0, r6 7512 bfi r3, r2, #5, #3 7513 strb r3, [r7, #2] 7514 bl zftl_remove_free_node 7515 ldrb r3, [r7, #2] @ zero_extendqisi2 7516 ldr r2, [r4, #2800] 7517 tst r3, #8 7518 ldrhne r3, [r2, #116] 7519 subne r3, r3, #1 7520 strhne r3, [r2, #116] @ movhi 7521 bne .L1254 7522 tst r3, #24 7523 ldrheq r3, [r2, #114] 7524 ldrhne r3, [r2, #118] 7525 subeq r3, r3, #1 7526 subne r3, r3, #1 7527 strheq r3, [r2, #114] @ movhi 7528 strhne r3, [r2, #118] @ movhi 7529.L1254: 7530 ldrb r3, [r7, #2] @ zero_extendqisi2 7531 and r3, r3, #224 7532 cmp r3, #160 7533 bne .L1256 7534 ldr r3, [r5, r6, lsl #2] 7535 ubfx r2, r3, #11, #8 7536 add r2, r2, #1 7537 bfi r3, r2, #11, #8 7538 str r3, [r5, r6, lsl #2] 7539 ldr r2, [r4, #2800] 7540 ldrh r3, [r2, #120] 7541 sub r3, r3, #1 7542 strh r3, [r2, #120] @ movhi 7543 pop {r4, r5, r6, r7, r8, pc} 7544.L1256: 7545 ldrh r2, [r5, r8] 7546 cmp r3, #64 7547 add r1, r2, #1 7548 bfi r2, r1, #0, #11 7549 strh r2, [r5, r8] @ movhi 7550 bne .L1257 7551 ldr r2, [r4, #2800] 7552 ldrh r3, [r2, #122] 7553 sub r3, r3, #1 7554 strh r3, [r2, #122] @ movhi 7555 pop {r4, r5, r6, r7, r8, pc} 7556.L1257: 7557 cmp r3, #96 7558 ldreq r2, [r4, #2800] 7559 ldrheq r3, [r2, #124] 7560 subeq r3, r3, #1 7561 strheq r3, [r2, #124] @ movhi 7562 pop {r4, r5, r6, r7, r8, pc} 7563.L1260: 7564 .align 2 7565.L1259: 7566 .word .LANCHOR0 7567 .fnend 7568 .size ftl_info_data_recovery, .-ftl_info_data_recovery 7569 .align 2 7570 .global ftl_get_ppa_from_index 7571 .syntax unified 7572 .arm 7573 .fpu softvfp 7574 .type ftl_get_ppa_from_index, %function 7575ftl_get_ppa_from_index: 7576 .fnstart 7577 @ args = 0, pretend = 0, frame = 0 7578 @ frame_needed = 0, uses_anonymous_args = 0 7579 ldr r3, .L1266 7580 push {r4, r5, r6, r7, r8, lr} 7581 .save {r4, r5, r6, r7, r8, lr} 7582 mov r4, r0 7583 ldr r5, [r3, #1096] 7584 ldr r3, .L1266+4 7585 sub r2, r3, #3088 7586 ldrb r3, [r3, #-3127] @ zero_extendqisi2 7587 ldrh r2, [r2, #-8] 7588 mul r1, r3, r2 7589 cmp r0, r1 7590 smulbbge r3, r3, r2 7591 addlt r5, r5, #16 7592 addge r5, r5, #48 7593 ldrb r6, [r5, #9] @ zero_extendqisi2 7594 subge r4, r0, r3 7595 uxthge r4, r4 7596 mov r1, r6 7597 mov r0, r4 7598 bl __aeabi_idiv 7599 smulbb r6, r0, r6 7600 movw r3, #65535 7601 mov r7, r0 7602 sub r4, r4, r6 7603 uxth r4, r4 7604 add r4, r5, r4, lsl #1 7605 ldrh r4, [r4, #16] 7606 cmp r4, r3 7607 bne .L1264 7608 movw r2, #1945 7609 ldr r1, .L1266+8 7610 ldr r0, .L1266+12 7611 bl printk 7612 bl dump_stack 7613.L1264: 7614 ldr r3, .L1266+16 7615 ldrh r0, [r3, #-2] 7616 mla r0, r4, r0, r7 7617 pop {r4, r5, r6, r7, r8, pc} 7618.L1267: 7619 .align 2 7620.L1266: 7621 .word .LANCHOR0 7622 .word .LANCHOR3 7623 .word .LANCHOR1+1514 7624 .word .LC0 7625 .word .LANCHOR3-3072 7626 .fnend 7627 .size ftl_get_ppa_from_index, .-ftl_get_ppa_from_index 7628 .align 2 7629 .global lpa_hash_get_ppa 7630 .syntax unified 7631 .arm 7632 .fpu softvfp 7633 .type lpa_hash_get_ppa, %function 7634lpa_hash_get_ppa: 7635 .fnstart 7636 @ args = 0, pretend = 0, frame = 0 7637 @ frame_needed = 0, uses_anonymous_args = 0 7638 ldr r2, .L1276 7639 uxtb r3, r0 7640 lsl r3, r3, #1 7641 sub r1, r2, #3056 7642 ldr ip, [r2, #-2552] 7643 sub r1, r1, #14 7644 ldrh r3, [r1, r3] 7645 ldr r1, [r2, #-2556] 7646 movw r2, #65535 7647 cmp r3, r2 7648 bne .L1275 7649 mvn r0, #0 7650 bx lr 7651.L1270: 7652 lsl r3, r3, #1 7653 ldrh r3, [ip, r3] 7654 cmp r3, r2 7655 bne .L1271 7656 mvn r0, #0 7657 ldr pc, [sp], #4 7658.L1275: 7659 str lr, [sp, #-4]! 7660 .save {lr} 7661.L1271: 7662 ldr lr, [r1, r3, lsl #2] 7663 cmp r0, lr 7664 bne .L1270 7665 mov r0, r3 7666 ldr lr, [sp], #4 7667 b ftl_get_ppa_from_index 7668.L1277: 7669 .align 2 7670.L1276: 7671 .word .LANCHOR3 7672 .fnend 7673 .size lpa_hash_get_ppa, .-lpa_hash_get_ppa 7674 .align 2 7675 .global ftl_get_new_free_page 7676 .syntax unified 7677 .arm 7678 .fpu softvfp 7679 .type ftl_get_new_free_page, %function 7680ftl_get_new_free_page: 7681 .fnstart 7682 @ args = 0, pretend = 0, frame = 0 7683 @ frame_needed = 0, uses_anonymous_args = 0 7684 push {r4, lr} 7685 .save {r4, lr} 7686 movw r3, #65535 7687 ldrh r2, [r0] 7688 mov r4, r0 7689 cmp r2, r3 7690 bne .L1279 7691 movw r2, #2088 7692 ldr r1, .L1287 7693 ldr r0, .L1287+4 7694 bl printk 7695 bl dump_stack 7696.L1279: 7697 ldr r3, .L1287+8 7698 ldrh r2, [r4, #2] 7699 ldrh r3, [r3, #-8] 7700 cmp r2, r3 7701 bne .L1280 7702 movw r2, #2089 7703 ldr r1, .L1287 7704 ldr r0, .L1287+4 7705 bl printk 7706 bl dump_stack 7707.L1280: 7708 ldrh r3, [r4, #6] 7709 cmp r3, #0 7710 bne .L1281 7711 movw r2, #2090 7712 ldr r1, .L1287 7713 ldr r0, .L1287+4 7714 bl printk 7715 bl dump_stack 7716.L1281: 7717 ldrb r3, [r4, #5] @ zero_extendqisi2 7718 movw r2, #65535 7719 mov r1, #0 7720 add r3, r4, r3, lsl #1 7721 ldrh r0, [r3, #16] 7722 ldr r3, .L1287+12 7723 ldrb ip, [r3, #-3127] @ zero_extendqisi2 7724.L1282: 7725 cmp r0, r2 7726 ldrb r3, [r4, #5] @ zero_extendqisi2 7727 beq .L1284 7728 ldr r1, .L1287+16 7729 add r3, r3, #1 7730 uxtb r3, r3 7731 ldrh r2, [r4, #2] 7732 ldrh r1, [r1, #-2] 7733 cmp ip, r3 7734 strb r3, [r4, #5] 7735 addeq r3, r2, #1 7736 strheq r3, [r4, #2] @ movhi 7737 moveq r3, #0 7738 strbeq r3, [r4, #5] 7739 mul r0, r0, r1 7740 ldrh r1, [r4, #6] 7741 sub r1, r1, #1 7742 strh r1, [r4, #6] @ movhi 7743 orr r0, r0, r2 7744 ldrh r1, [r4, #10] 7745 add r1, r1, #1 7746 strh r1, [r4, #10] @ movhi 7747 pop {r4, pc} 7748.L1284: 7749 add r3, r3, #1 7750 uxtb r3, r3 7751 cmp r3, ip 7752 strb r3, [r4, #5] 7753 ldrheq r3, [r4, #2] 7754 strbeq r1, [r4, #5] 7755 addeq r3, r3, #1 7756 strheq r3, [r4, #2] @ movhi 7757 ldrb r3, [r4, #5] @ zero_extendqisi2 7758 add r3, r4, r3, lsl #1 7759 ldrh r0, [r3, #16] 7760 b .L1282 7761.L1288: 7762 .align 2 7763.L1287: 7764 .word .LANCHOR1+1537 7765 .word .LC0 7766 .word .LANCHOR3-3088 7767 .word .LANCHOR3 7768 .word .LANCHOR3-3072 7769 .fnend 7770 .size ftl_get_new_free_page, .-ftl_get_new_free_page 7771 .align 2 7772 .global ftl_ext_alloc_new_blk 7773 .syntax unified 7774 .arm 7775 .fpu softvfp 7776 .type ftl_ext_alloc_new_blk, %function 7777ftl_ext_alloc_new_blk: 7778 .fnstart 7779 @ args = 0, pretend = 0, frame = 0 7780 @ frame_needed = 0, uses_anonymous_args = 0 7781 push {r4, r5, r6, lr} 7782 .save {r4, r5, r6, lr} 7783 bl ftl_alloc_sys_blk 7784 sub r3, r0, #1 7785 movw r2, #65533 7786 uxth r3, r3 7787 mov r4, r0 7788 cmp r3, r2 7789 bls .L1290 7790 movw r2, #2125 7791 ldr r1, .L1292 7792 ldr r0, .L1292+4 7793 bl printk 7794 bl dump_stack 7795.L1290: 7796 ldr r5, .L1292+8 7797 mov r1, #0 7798 mov r0, r4 7799 bl ftl_erase_phy_blk 7800 ldr r3, [r5, #2800] 7801 ldrh r0, [r3, #130] 7802 bl ftl_free_sys_blk 7803 ldr r3, [r5, #2800] 7804 mov r0, #0 7805 strh r4, [r3, #130] @ movhi 7806 strh r0, [r3, #140] @ movhi 7807 pop {r4, r5, r6, pc} 7808.L1293: 7809 .align 2 7810.L1292: 7811 .word .LANCHOR1+1559 7812 .word .LC0 7813 .word .LANCHOR0 7814 .fnend 7815 .size ftl_ext_alloc_new_blk, .-ftl_ext_alloc_new_blk 7816 .align 2 7817 .global ftl_total_vpn_update 7818 .syntax unified 7819 .arm 7820 .fpu softvfp 7821 .type ftl_total_vpn_update, %function 7822ftl_total_vpn_update: 7823 .fnstart 7824 @ args = 0, pretend = 0, frame = 0 7825 @ frame_needed = 0, uses_anonymous_args = 0 7826 ldr r2, .L1308 7827 ldrh r3, [r2, #-4] 7828 cmp r3, #4 7829 cmpls r0, #0 7830 bne .L1295 7831 add r3, r3, #1 7832 strh r3, [r2, #-4] @ movhi 7833 bx lr 7834.L1295: 7835 ldr r3, .L1308+4 7836 mov r0, #0 7837 movw ip, #1080 7838 push {r4, r5, r6, lr} 7839 .save {r4, r5, r6, lr} 7840 strh r0, [r2, #-4] @ movhi 7841 movw r6, #65535 7842 ldrh lr, [r3, ip] 7843 mov ip, r0 7844 ldr r2, [r3, #1084] 7845 ldr r1, [r3, #1092] 7846 add lr, r2, lr, lsl #2 7847 sub r1, r1, #2 7848.L1297: 7849 cmp r2, lr 7850 bne .L1300 7851 ldr r4, [r3, #1096] 7852 ldr r3, [r3, #2800] 7853 str ip, [r4, #524] 7854 str r0, [r4, #528] 7855 ldrh r1, [r3, #120] 7856 cmp r1, #0 7857 popeq {r4, r5, r6, pc} 7858 bl __aeabi_uidiv 7859 str r0, [r4, #532] 7860 pop {r4, r5, r6, pc} 7861.L1300: 7862 ldrh r4, [r1, #2]! 7863 cmp r4, r6 7864 beq .L1298 7865 ldrb r5, [r2, #2] @ zero_extendqisi2 7866 and r5, r5, #224 7867 cmp r5, #160 7868 addeq r0, r0, r4 7869 addne ip, ip, r4 7870.L1298: 7871 add r2, r2, #4 7872 b .L1297 7873.L1309: 7874 .align 2 7875.L1308: 7876 .word .LANCHOR3-2544 7877 .word .LANCHOR0 7878 .fnend 7879 .size ftl_total_vpn_update, .-ftl_total_vpn_update 7880 .align 2 7881 .global ftl_debug_info_fill 7882 .syntax unified 7883 .arm 7884 .fpu softvfp 7885 .type ftl_debug_info_fill, %function 7886ftl_debug_info_fill: 7887 .fnstart 7888 @ args = 0, pretend = 0, frame = 0 7889 @ frame_needed = 0, uses_anonymous_args = 0 7890 ldr r3, .L1317 7891 ldrb r3, [r3, #-2546] @ zero_extendqisi2 7892 cmp r3, #8 7893 bls .L1314 7894 sub r3, r0, #2 7895 cmp r2, #0 7896 clz r3, r3 7897 lsr r3, r3, #5 7898 moveq r3, #0 7899 cmp r3, #0 7900 streq r3, [r1] 7901 streq r3, [r1, #4] 7902 beq .L1314 7903 ldr r3, .L1317+4 7904 mov r0, r2 7905 push {r4, lr} 7906 .save {r4, lr} 7907 mov r4, r1 7908 str r3, [r1] 7909 mov r1, #1024 7910 bl js_hash 7911 str r0, [r4, #4] 7912 mov r0, #0 7913 pop {r4, pc} 7914.L1314: 7915 mov r0, #0 7916 bx lr 7917.L1318: 7918 .align 2 7919.L1317: 7920 .word .LANCHOR3 7921 .word 1212240712 7922 .fnend 7923 .size ftl_debug_info_fill, .-ftl_debug_info_fill 7924 .align 2 7925 .global ftl_vpn_update 7926 .syntax unified 7927 .arm 7928 .fpu softvfp 7929 .type ftl_vpn_update, %function 7930ftl_vpn_update: 7931 .fnstart 7932 @ args = 0, pretend = 0, frame = 0 7933 @ frame_needed = 0, uses_anonymous_args = 0 7934 push {r4, lr} 7935 .save {r4, lr} 7936 mov r4, r0 7937 bl zftl_list_update_data_list 7938 lsl r4, r4, #1 7939 ldr r3, .L1323 7940 ldr r2, [r3, #1092] 7941 ldrh r2, [r2, r4] 7942 cmp r2, #0 7943 moveq r0, #1 7944 movne r0, #0 7945 streq r0, [r3, #2812] 7946 pop {r4, pc} 7947.L1324: 7948 .align 2 7949.L1323: 7950 .word .LANCHOR0 7951 .fnend 7952 .size ftl_vpn_update, .-ftl_vpn_update 7953 .align 2 7954 .global ftl_vpn_decrement 7955 .syntax unified 7956 .arm 7957 .fpu softvfp 7958 .type ftl_vpn_decrement, %function 7959ftl_vpn_decrement: 7960 .fnstart 7961 @ args = 0, pretend = 0, frame = 0 7962 @ frame_needed = 0, uses_anonymous_args = 0 7963 movw r3, #65535 7964 push {r4, r5, r6, lr} 7965 .save {r4, r5, r6, lr} 7966 cmp r0, r3 7967 mov r5, r0 7968 beq .L1326 7969 ldr r1, .L1335 7970 lsl r3, r0, #1 7971 ldr r2, [r1, #1092] 7972 ldrh r4, [r2, r3] 7973 cmp r4, #0 7974 subne r4, r4, #1 7975 strhne r4, [r2, r3] @ movhi 7976 bne .L1326 7977 ldr r3, [r1, #1084] 7978 mov r2, r4 7979 mov r1, r0 7980 add r3, r3, r0, lsl #2 7981 ldr r0, .L1335+4 7982 ldrb r3, [r3, #2] @ zero_extendqisi2 7983 lsr r3, r3, #5 7984 bl printk 7985.L1332: 7986 mov r0, #0 7987 pop {r4, r5, r6, pc} 7988.L1326: 7989 ldr r3, .L1335+8 7990 ldrh r0, [r3, #-4] 7991 mov r4, r3 7992 cmp r5, r0 7993 beq .L1332 7994 movw r2, #65535 7995 cmp r0, r2 7996 strheq r5, [r3, #-4] @ movhi 7997 beq .L1332 7998 bl ftl_vpn_update 7999 add r3, r4, #608 8000 adds r0, r0, #0 8001 ldrh r2, [r3] 8002 movne r0, #1 8003 add r2, r2, #1 8004 uxth r2, r2 8005 cmp r2, #7 8006 movhi r2, #0 8007 strh r2, [r3] @ movhi 8008 ldrh r3, [r3] 8009 ldrh r2, [r4, #-4] 8010 strh r5, [r4, #-4] @ movhi 8011 add r3, r4, r3, lsl #1 8012 strh r2, [r3, #-2] @ movhi 8013 pop {r4, r5, r6, pc} 8014.L1336: 8015 .align 2 8016.L1335: 8017 .word .LANCHOR0 8018 .word .LC106 8019 .word .LANCHOR3-3152 8020 .fnend 8021 .size ftl_vpn_decrement, .-ftl_vpn_decrement 8022 .align 2 8023 .global lpa_hash_update_ppa 8024 .syntax unified 8025 .arm 8026 .fpu softvfp 8027 .type lpa_hash_update_ppa, %function 8028lpa_hash_update_ppa: 8029 .fnstart 8030 @ args = 0, pretend = 0, frame = 0 8031 @ frame_needed = 0, uses_anonymous_args = 0 8032 ldr r3, .L1349 8033 push {r4, r5, r6, r7, r8, r9, r10, lr} 8034 .save {r4, r5, r6, r7, r8, r9, r10, lr} 8035 uxtb r7, r0 8036 movw r8, #65535 8037 sub lr, r3, #3056 8038 lsl r7, r7, #1 8039 sub ip, lr, #14 8040 ldr r6, [r3, #-2556] 8041 ldrh ip, [ip, r7] 8042 mov r5, r8 8043 ldr r9, [r3, #-2552] 8044.L1338: 8045 cmp ip, r5 8046 beq .L1342 8047 ldr r4, [r6, ip, lsl #2] 8048 add r10, r6, ip, lsl #2 8049 cmp r0, r4 8050 lsl r4, ip, #1 8051 bne .L1339 8052 mvn ip, #0 8053 cmp r8, r5 8054 str ip, [r10] 8055 lslne r8, r8, #1 8056 ldr ip, [r3, #-2552] 8057 ldrh r5, [ip, r4] 8058 subeq ip, lr, #14 8059 strheq r5, [ip, r7] @ movhi 8060 strhne r5, [ip, r8] @ movhi 8061 mvn r5, #0 8062 ldr ip, [r3, #-2552] 8063 strh r5, [ip, r4] @ movhi 8064.L1342: 8065 ldr ip, [r3, #-2556] 8066 cmn r1, #1 8067 str r0, [ip, r2, lsl #2] 8068 sub ip, lr, #14 8069 ldrh lr, [ip, r7] 8070 ldr r0, [r3, #-2552] 8071 strh r2, [ip, r7] @ movhi 8072 lsl r2, r2, #1 8073 strh lr, [r0, r2] @ movhi 8074 beq .L1344 8075 ldr r0, .L1349+4 8076 ldr r2, .L1349+8 8077 ldrb ip, [r0, #1153] @ zero_extendqisi2 8078 mvn r0, #0 8079 ldrh r2, [r2, #-2] 8080 rsb ip, ip, #24 8081 sub ip, ip, r2 8082 lsr r2, r1, r2 8083 ldrb r1, [r3, #-3136] @ zero_extendqisi2 8084 bic r0, r2, r0, lsl ip 8085 bl __aeabi_uidiv 8086 uxth r0, r0 8087 bl ftl_vpn_decrement 8088.L1344: 8089 mvn r0, #0 8090 pop {r4, r5, r6, r7, r8, r9, r10, pc} 8091.L1339: 8092 mov r8, ip 8093 ldrh ip, [r9, r4] 8094 b .L1338 8095.L1350: 8096 .align 2 8097.L1349: 8098 .word .LANCHOR3 8099 .word .LANCHOR0 8100 .word .LANCHOR3-3136 8101 .fnend 8102 .size lpa_hash_update_ppa, .-lpa_hash_update_ppa 8103 .align 2 8104 .global ftl_mask_bad_block 8105 .syntax unified 8106 .arm 8107 .fpu softvfp 8108 .type ftl_mask_bad_block, %function 8109ftl_mask_bad_block: 8110 .fnstart 8111 @ args = 0, pretend = 0, frame = 0 8112 @ frame_needed = 0, uses_anonymous_args = 0 8113 push {r0, r1, r4, r5, r6, r7, r8, r9, r10, lr} 8114 .save {r4, r5, r6, r7, r8, r9, r10, lr} 8115 .pad #8 8116 mov r3, #1 8117 ldr r7, .L1359 8118 ldr ip, .L1359+4 8119 ldrb r4, [r7, #1153] @ zero_extendqisi2 8120 ldrb r5, [ip, #-3136]! @ zero_extendqisi2 8121 rsb r1, r4, #24 8122 lsl r4, r3, r4 8123 sub r4, r4, #1 8124 and r4, r4, r0, lsr r1 8125 uxtb r4, r4 8126 smulbb r2, r4, r5 8127 uxtb r9, r2 8128 ldrh r2, [ip, #-2] 8129 sub r1, r1, r2 8130 lsl r3, r3, r1 8131 mov r1, r5 8132 sub r3, r3, #1 8133 and r0, r3, r0, lsr r2 8134 uxth r10, r0 8135 bl __aeabi_uidiv 8136 ldr r3, .L1359+8 8137 cmp r5, #1 8138 subhi r2, r5, #1 8139 mov r6, r0 8140 andhi r2, r2, r10 8141 uxth r8, r0 8142 ldr r3, [r3] 8143 addhi r2, r9, r2 8144 uxtbhi r9, r2 8145 tst r3, #16384 8146 beq .L1353 8147 uxth r3, r0 8148 str r10, [sp] 8149 mov r2, r9 8150 ldr r0, .L1359+12 8151 mov r1, r4 8152 bl printk 8153.L1353: 8154 movw r3, #1080 8155 ldrh r3, [r7, r3] 8156 cmp r3, r8 8157 bls .L1351 8158 ldr r3, [r7, #1084] 8159 uxth r6, r6 8160 add r6, r3, r6, lsl #2 8161 mov r3, #1 8162 ldrb r2, [r6, #3] @ zero_extendqisi2 8163 orr r2, r2, r3, lsl r9 8164 strb r2, [r6, #3] 8165.L1351: 8166 add sp, sp, #8 8167 @ sp needed 8168 pop {r4, r5, r6, r7, r8, r9, r10, pc} 8169.L1360: 8170 .align 2 8171.L1359: 8172 .word .LANCHOR0 8173 .word .LANCHOR3 8174 .word .LANCHOR2 8175 .word .LC107 8176 .fnend 8177 .size ftl_mask_bad_block, .-ftl_mask_bad_block 8178 .align 2 8179 .global gc_free_bad_sblk 8180 .syntax unified 8181 .arm 8182 .fpu softvfp 8183 .type gc_free_bad_sblk, %function 8184gc_free_bad_sblk: 8185 .fnstart 8186 @ args = 0, pretend = 0, frame = 8 8187 @ frame_needed = 0, uses_anonymous_args = 0 8188 push {r0, r1, r2, r4, r5, r6, r7, r8, r9, r10, fp, lr} 8189 .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} 8190 .pad #12 8191 ldr r6, .L1382 8192 ldr r3, [r6, #916] 8193 cmp r3, #0 8194 beq .L1378 8195 ldr r8, .L1382+4 8196 mov r7, #0 8197 str r0, [sp, #4] 8198.L1363: 8199 ldrb r2, [r8, #-3127] @ zero_extendqisi2 8200 uxth r3, r7 8201 cmp r2, r3 8202 bhi .L1373 8203.L1378: 8204 mov r0, #0 8205 add sp, sp, #12 8206 @ sp needed 8207 pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} 8208.L1373: 8209 ldrb r9, [r8, #-3136] @ zero_extendqisi2 8210 uxth r0, r7 8211 ldr r10, .L1382+8 8212 ldr fp, .L1382+12 8213 mov r1, r9 8214 bl __aeabi_idiv 8215 ldrb r3, [r10, #1153] @ zero_extendqisi2 8216 uxth r5, r9 8217 ldrh r2, [sp, #4] 8218 cmp r9, #1 8219 ldrh r4, [fp], #2 8220 mov r9, #0 8221 rsb r3, r3, #24 8222 str r10, [sp] 8223 ldr r10, .L1382+16 8224 sub r3, r3, r4 8225 smulbb r4, r2, r5 8226 subhi r5, r5, #1 8227 andhi r5, r5, r7 8228 add r4, r4, r0, lsl r3 8229 uxth r4, r4 8230 addhi r4, r4, r5 8231 uxthhi r4, r4 8232.L1365: 8233 ldr r1, [r6, #916] 8234 uxth r5, r9 8235 mov r3, r5 8236 cmp r1, r5 8237 addls r7, r7, #1 8238 bls .L1363 8239.L1372: 8240 add r3, r3, #1088 8241 add r3, r3, #8 8242 lsl r3, r3, #1 8243 ldrh r3, [r10, r3] 8244 cmp r3, r4 8245 bne .L1366 8246 mov r1, r4 8247 ldr r0, .L1382+20 8248 bl printk 8249 ldrb r3, [r8, #-2542] @ zero_extendqisi2 8250 cmp r3, #0 8251 bne .L1367 8252 ldrb r3, [r8, #-3126] @ zero_extendqisi2 8253 cmp r3, #0 8254 beq .L1368 8255.L1367: 8256 ldr r3, [sp] 8257 ldr r2, .L1382+24 8258 ldr r3, [r3, #2800] 8259 ldr r3, [r3, #156] 8260 cmp r3, r2 8261 beq .L1369 8262.L1368: 8263 ldrh r0, [fp, #-2] 8264 lsl r0, r4, r0 8265 bl ftl_mask_bad_block 8266.L1369: 8267 ldr r3, [r6, #916] 8268 movw r0, #1097 8269 movw ip, #1096 8270.L1370: 8271 cmp r5, r3 8272 bcc .L1371 8273 sub r3, r3, #1 8274 str r3, [r6, #916] 8275.L1366: 8276 add r9, r9, #1 8277 b .L1365 8278.L1371: 8279 add r1, r5, r0 8280 lsl r1, r1, #1 8281 ldrh lr, [r10, r1] 8282 add r1, r5, ip 8283 lsl r1, r1, #1 8284 add r5, r5, #1 8285 uxth r5, r5 8286 strh lr, [r10, r1] @ movhi 8287 b .L1370 8288.L1383: 8289 .align 2 8290.L1382: 8291 .word .LANCHOR0+4096 8292 .word .LANCHOR3 8293 .word .LANCHOR0 8294 .word .LANCHOR3-3138 8295 .word .LANCHOR0+2824 8296 .word .LC108 8297 .word 1145785929 8298 .fnend 8299 .size gc_free_bad_sblk, .-gc_free_bad_sblk 8300 .align 2 8301 .global ftl_free_sblk 8302 .syntax unified 8303 .arm 8304 .fpu softvfp 8305 .type ftl_free_sblk, %function 8306ftl_free_sblk: 8307 .fnstart 8308 @ args = 0, pretend = 0, frame = 16 8309 @ frame_needed = 0, uses_anonymous_args = 0 8310 push {r4, r5, r6, r7, r8, r9, r10, fp, lr} 8311 .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} 8312 lsl r10, r0, #2 8313 ldr r5, .L1407 8314 .pad #20 8315 sub sp, sp, #20 8316 mov r7, r0 8317 ldr r6, [r5, #1084] 8318 add r8, r6, r10 8319 ldrb r4, [r8, #2] @ zero_extendqisi2 8320 tst r4, #8 8321 lsr r3, r4, #5 8322 str r3, [sp, #4] 8323 beq .L1385 8324 ldr r1, [r5, #2800] 8325 ldrh r3, [r6, r10] 8326 ldr fp, [r6, r0, lsl #2] 8327 ldrh r2, [r1, #74] 8328 ubfx r3, r3, #0, #11 8329 str r3, [sp, #12] 8330 ubfx fp, fp, #11, #8 8331 add r2, r3, r2 8332 uxth r3, r2 8333 ldrh r2, [r1, #72] 8334 add r1, r5, #1088 8335 ldrh r9, [r1] 8336 mov r0, r3 8337 add r2, r2, fp 8338 str r3, [sp] 8339 uxth r2, r2 8340 mov r1, r9 8341 str r2, [sp, #8] 8342 bl __aeabi_uidiv 8343 ldr ip, .L1407+4 8344 ldr r2, [sp, #8] 8345 ldr r3, [sp, #12] 8346 ldrh r1, [ip, #-12] 8347 uxtah r0, r2, r0 8348 cmp r0, r1 8349 ble .L1386 8350 movw r2, #2794 8351 ldrh r0, [r5, r2] 8352 movw r2, #2786 8353 ldrh r2, [r5, r2] 8354 add r0, r0, r2 8355 sub r2, ip, #560 8356 ldrh r1, [r2, #-2] 8357 add r1, r1, #8 8358 cmp r0, r1 8359 bge .L1387 8360.L1392: 8361 mov r2, #2 8362 bfi r4, r2, #3, #2 8363 b .L1403 8364.L1387: 8365 movw r1, #2790 8366 add r0, r5, #2784 8367 ldrh r0, [r0] 8368 ldrh r1, [r5, r1] 8369 ldrh r2, [r2, #-4] 8370 add r1, r1, r0 8371 movw r0, #2792 8372 ldrh r0, [r5, r0] 8373 add r2, r2, #8 8374 add r1, r1, r0 8375 cmp r1, r2 8376.L1406: 8377 bge .L1392 8378 b .L1404 8379.L1386: 8380 ldr r1, [sp] 8381 mla r2, r2, r9, r1 8382 ldrh r1, [ip, #-10] 8383 cmp r2, r1 8384 ble .L1388 8385 movw r2, #2790 8386 ldrh r1, [r5, r2] 8387 add r2, r5, #2784 8388 ldrh r2, [r2] 8389 add r1, r1, r2 8390 movw r2, #2792 8391 ldrh r2, [r5, r2] 8392 add r1, r1, r2 8393 sub r2, ip, #560 8394 ldrh r0, [r2, #-4] 8395 add ip, r0, #8 8396 cmp r1, ip 8397 bge .L1390 8398.L1404: 8399 bfc r4, #3, #2 8400.L1403: 8401 strb r4, [r8, #2] 8402.L1388: 8403 ldrb r2, [r8, #2] @ zero_extendqisi2 8404 ands r2, r2, #24 8405 bne .L1393 8406 mul r9, r9, fp 8407 ldrh r2, [r6, r10] 8408 lsr fp, fp, #3 8409 add r9, r9, r9, lsl #1 8410 add r3, r3, r9, asr #2 8411 bfi r2, r3, #0, #11 8412 strh r2, [r6, r10] @ movhi 8413 ldr r3, [r6, r7, lsl #2] 8414 bfi r3, fp, #11, #8 8415 str r3, [r6, r7, lsl #2] 8416.L1394: 8417 mov r0, r7 8418 bl zftl_remove_data_node 8419 ldr r3, .L1407 8420 mov r0, #0 8421 ldr r2, [r3, #1084] 8422 mov r4, r3 8423 add r10, r2, r10 8424 ldrb r2, [r10, #2] @ zero_extendqisi2 8425 bfc r2, #5, #3 8426 strb r2, [r10, #2] 8427 lsl r2, r7, #1 8428 ldr r1, [r3, #1092] 8429 strh r0, [r1, r2] @ movhi 8430 ldr r2, [sp, #4] 8431 add r2, r2, #6 8432 and r2, r2, #7 8433 cmp r2, #4 8434 bhi .L1397 8435 mov r0, r7 8436 bl gc_free_bad_sblk 8437.L1397: 8438 ldrb r3, [r8, #2] @ zero_extendqisi2 8439 tst r3, #8 8440 beq .L1398 8441 ldr r3, [r4, #1096] 8442 movw r2, #586 8443 ldrh r1, [r3, r2] 8444 cmp r1, r7 8445 bne .L1398 8446 mvn r1, #0 8447 strh r1, [r3, r2] @ movhi 8448 movw r2, #590 8449 ldrh r0, [r3, r2] 8450 movw r1, #65535 8451 cmp r0, r1 8452 bne .L1398 8453 strh r7, [r3, r2] @ movhi 8454 mov r1, r7 8455 ldr r0, .L1407+8 8456 add sp, sp, #20 8457 @ sp needed 8458 pop {r4, r5, r6, r7, r8, r9, r10, fp, lr} 8459 b printk 8460.L1390: 8461 movw ip, #2794 8462 movw lr, #2786 8463 ldrh ip, [r5, ip] 8464 ldrh lr, [r5, lr] 8465 ldrh r2, [r2, #-2] 8466 add ip, ip, lr 8467 add r2, r2, #8 8468 cmp ip, r2 8469 blt .L1392 8470 add r0, r0, #24 8471 cmp r1, r0 8472 b .L1406 8473.L1393: 8474 cmp r2, #16 8475 bne .L1394 8476 mov r0, r3 8477 mov r1, r9 8478 str r3, [sp] 8479 bl __aeabi_idiv 8480 add r0, r0, r0, lsl #1 8481 ldr r2, [r6, r7, lsl #2] 8482 add fp, fp, r0, asr #2 8483 bfi r2, fp, #11, #8 8484 str r2, [r6, r7, lsl #2] 8485 ldr r3, [sp] 8486 ldrh r2, [r6, r10] 8487 asr r3, r3, #5 8488 bfi r2, r3, #0, #11 8489 strh r2, [r6, r10] @ movhi 8490 b .L1394 8491.L1385: 8492 tst r4, #24 8493 bne .L1394 8494 movw r3, #2788 8495 ldrh r3, [r5, r3] 8496 cmp r3, #0 8497 bne .L1394 8498 movw r3, #2786 8499 ldrh r0, [r5, r3] 8500 cmp r0, #15 8501 bhi .L1394 8502 movw r3, #2790 8503 add r2, r5, #2784 8504 ldrh r2, [r2] 8505 ldrh r3, [r5, r3] 8506 ldr ip, .L1407+12 8507 add r3, r3, r2 8508 movw r2, #2792 8509 ldrh r2, [r5, r2] 8510 ldrh r1, [ip, #-4] 8511 add r3, r3, r2 8512 add r1, r1, #16 8513 cmp r3, r1 8514 ble .L1394 8515 movw r3, #2794 8516 ldrh r2, [r5, r3] 8517 ldrh r3, [ip, #-2] 8518 add r2, r2, r0 8519 add r3, r3, #8 8520 cmp r2, r3 8521 bge .L1394 8522 mov r3, #2 8523 add r5, r5, #1088 8524 bfi r4, r3, #3, #2 8525 ldrh r1, [r5] 8526 strb r4, [r8, #2] 8527 ldrh r4, [r6, r10] 8528 ubfx r4, r4, #0, #11 8529 mov r0, r4 8530 asr r4, r4, #5 8531 bl __aeabi_idiv 8532 ldr r3, [r6, r7, lsl #2] 8533 add r0, r0, r0, lsl #1 8534 ubfx r2, r3, #11, #8 8535 add r0, r2, r0, asr #2 8536 bfi r3, r0, #11, #8 8537 str r3, [r6, r7, lsl #2] 8538 ldrh r3, [r6, r10] 8539 bfi r3, r4, #0, #11 8540 strh r3, [r6, r10] @ movhi 8541 b .L1394 8542.L1398: 8543 mov r0, r7 8544 add sp, sp, #20 8545 @ sp needed 8546 pop {r4, r5, r6, r7, r8, r9, r10, fp, lr} 8547 b zftl_insert_free_list 8548.L1408: 8549 .align 2 8550.L1407: 8551 .word .LANCHOR0 8552 .word .LANCHOR3-2528 8553 .word .LC109 8554 .word .LANCHOR3-3088 8555 .fnend 8556 .size ftl_free_sblk, .-ftl_free_sblk 8557 .align 2 8558 .global gc_free_src_blk 8559 .syntax unified 8560 .arm 8561 .fpu softvfp 8562 .type gc_free_src_blk, %function 8563gc_free_src_blk: 8564 .fnstart 8565 @ args = 0, pretend = 0, frame = 0 8566 @ frame_needed = 0, uses_anonymous_args = 0 8567 push {r4, r5, r6, r7, r8, r9, r10, lr} 8568 .save {r4, r5, r6, r7, r8, r9, r10, lr} 8569 mov r5, #0 8570 ldr r8, .L1447 8571 ldr r7, .L1447+4 8572 mov r6, r8 8573.L1410: 8574 ldrh r2, [r7, #52] 8575 uxth r3, r5 8576 cmp r2, r3 8577 bhi .L1424 8578 mov r3, #0 8579 strh r3, [r7, #52] @ movhi 8580 pop {r4, r5, r6, r7, r8, r9, r10, pc} 8581.L1424: 8582 uxth r3, r5 8583 add r3, r7, r3, lsl #1 8584 ldrh r4, [r3, #54] 8585 ldr r3, [r8, #1092] 8586 lsl r9, r4, #1 8587 ldrh r2, [r3, r9] 8588 cmp r2, #0 8589 beq .L1411 8590 mov r1, r4 8591 ldr r0, .L1447+8 8592 bl printk 8593.L1411: 8594 ldr r3, [r6, #1092] 8595 mov r2, #0 8596 strh r2, [r3, r9] @ movhi 8597 ldr r3, [r6, #1092] 8598 ldrh r3, [r3, r9] 8599 cmp r3, r2 8600 bne .L1412 8601 ldr r3, .L1447+12 8602 ldr r9, [r6, #1084] 8603 ldr r3, [r3] 8604 add r9, r9, r4, lsl #2 8605 tst r3, #256 8606 beq .L1413 8607 ldrb r2, [r9, #2] @ zero_extendqisi2 8608 mov r1, r4 8609 ldr r0, .L1447+16 8610 lsr r2, r2, #5 8611 bl printk 8612.L1413: 8613 ldrb r3, [r9, #2] @ zero_extendqisi2 8614 and r2, r3, #224 8615 and r3, r3, #192 8616 cmp r3, #0 8617 cmpne r2, #224 8618 bne .L1414 8619 movw r2, #1363 8620 ldr r1, .L1447+20 8621 ldr r0, .L1447+24 8622 bl printk 8623 bl dump_stack 8624.L1414: 8625 mov r0, r4 8626 bl ftl_free_sblk 8627 ldr r3, [r6, #1096] 8628 ldrh r1, [r3, #124] 8629 cmp r1, #0 8630 beq .L1415 8631 add r0, r3, #392 8632 mov r2, #0 8633.L1417: 8634 ldrh ip, [r0], #2 8635 cmp r4, ip 8636 bne .L1416 8637 add r2, r2, #196 8638 mvn r0, #0 8639 lsl r2, r2, #1 8640 add r1, r1, r0 8641 strh r0, [r3, r2] @ movhi 8642 strh r1, [r3, #124] @ movhi 8643.L1415: 8644 ldrh r1, [r3, #120] 8645 cmp r1, #0 8646 beq .L1418 8647 add r0, r3, #136 8648 mov r2, #0 8649.L1420: 8650 ldrh ip, [r0], #2 8651 cmp r4, ip 8652 bne .L1419 8653 mvn r0, #0 8654 add r2, r3, r2, lsl #1 8655 add r1, r1, r0 8656 strh r0, [r2, #136] @ movhi 8657 strh r1, [r3, #120] @ movhi 8658.L1418: 8659 ldrh r1, [r3, #122] 8660 cmp r1, #0 8661 beq .L1421 8662 add r0, r3, #264 8663 mov r2, #0 8664.L1423: 8665 ldrh ip, [r0], #2 8666 cmp r4, ip 8667 bne .L1422 8668 add r2, r2, #132 8669 mvn r0, #0 8670 lsl r2, r2, #1 8671 add r1, r1, r0 8672 strh r0, [r3, r2] @ movhi 8673 strh r1, [r3, #122] @ movhi 8674.L1421: 8675 add r5, r5, #1 8676 b .L1410 8677.L1416: 8678 add r2, r2, #1 8679 cmp r2, #64 8680 bne .L1417 8681 b .L1415 8682.L1419: 8683 add r2, r2, #1 8684 cmp r2, #64 8685 bne .L1420 8686 b .L1418 8687.L1422: 8688 add r2, r2, #1 8689 cmp r2, #64 8690 bne .L1423 8691 b .L1421 8692.L1412: 8693 mov r1, #1 8694 mov r0, r4 8695 bl gc_add_sblk 8696 b .L1421 8697.L1448: 8698 .align 2 8699.L1447: 8700 .word .LANCHOR0 8701 .word .LANCHOR0+2824 8702 .word .LC110 8703 .word .LANCHOR2 8704 .word .LC111 8705 .word .LANCHOR1+1581 8706 .word .LC0 8707 .fnend 8708 .size gc_free_src_blk, .-gc_free_src_blk 8709 .align 2 8710 .global print_ftl_debug_info 8711 .syntax unified 8712 .arm 8713 .fpu softvfp 8714 .type print_ftl_debug_info, %function 8715print_ftl_debug_info: 8716 .fnstart 8717 @ args = 0, pretend = 0, frame = 0 8718 @ frame_needed = 0, uses_anonymous_args = 0 8719 push {r4, lr} 8720 .save {r4, lr} 8721 .pad #32 8722 sub sp, sp, #32 8723 ldr r4, .L1451 8724 ldr r1, [r4, #2800] 8725 add r3, r4, #2784 8726 ldr r0, [r4, #1096] 8727 ldr ip, [r4, #2780] 8728 ldrh r2, [r1, #146] 8729 ldrh r3, [r3] 8730 ldrh r1, [r1, #148] 8731 str ip, [sp, #28] 8732 ldr ip, [r0, #528] 8733 str ip, [sp, #24] 8734 ldr r0, [r0, #524] 8735 str r0, [sp, #20] 8736 movw r0, #2794 8737 ldrh r0, [r4, r0] 8738 str r0, [sp, #16] 8739 movw r0, #2792 8740 ldrh r0, [r4, r0] 8741 str r0, [sp, #12] 8742 movw r0, #2790 8743 ldrh r0, [r4, r0] 8744 str r0, [sp, #8] 8745 movw r0, #2788 8746 ldrh r0, [r4, r0] 8747 str r0, [sp, #4] 8748 movw r0, #2786 8749 ldrh r0, [r4, r0] 8750 str r0, [sp] 8751 ldr r0, .L1451+4 8752 bl printk 8753 ldr r1, [r4, #2800] 8754 ldrb r3, [r4, #2797] @ zero_extendqisi2 8755 ldr r0, .L1451+8 8756 ldr r2, [r1, #64] 8757 str r2, [sp, #4] 8758 ldr r2, [r1, #8] 8759 str r2, [sp] 8760 ldr r2, [r1, #28] 8761 ldr r1, [r1, #20] 8762 bl printk 8763 ldr r1, [r4, #2800] 8764 ldr r0, .L1451+12 8765 ldr r3, [r1, #16] 8766 ldr r2, [r1, #60] 8767 ldr r1, [r1, #52] 8768 lsr r3, r3, #11 8769 bl printk 8770 ldr r2, [r4, #2800] 8771 ldrh r0, [r2, #98] 8772 ldrh r3, [r2, #88] 8773 ldrh r1, [r2, #74] 8774 str r0, [sp, #24] 8775 ldrh r0, [r2, #94] 8776 str r0, [sp, #20] 8777 ldrh r0, [r2, #90] 8778 str r0, [sp, #16] 8779 ldr r0, [r2, #80] 8780 str r0, [sp, #12] 8781 ldrh r0, [r2, #72] 8782 str r0, [sp, #8] 8783 ldrh r0, [r2, #96] 8784 str r0, [sp, #4] 8785 ldrh r0, [r2, #92] 8786 str r0, [sp] 8787 ldr r0, .L1451+16 8788 ldr r2, [r2, #84] 8789 bl printk 8790 movw r0, #2804 8791 movw r3, #2818 8792 ldrh r0, [r4, r0] 8793 movw r2, #2806 8794 movw r1, #2808 8795 ldrh r3, [r4, r3] 8796 ldrh r2, [r4, r2] 8797 str r0, [sp, #4] 8798 add r0, r4, #2816 8799 ldrh r0, [r0] 8800 ldrh r1, [r4, r1] 8801 str r0, [sp] 8802 ldr r0, .L1451+20 8803 bl printk 8804 ldr ip, [r4, #2800] 8805 movw r2, #586 8806 ldr r0, [r4, #1096] 8807 ldrh lr, [ip, #150] 8808 add r3, r0, #588 8809 add r1, r0, #584 8810 ldrh r2, [r0, r2] 8811 ldrh r3, [r3] 8812 ldrh r1, [r1] 8813 str lr, [sp, #8] 8814 ldr ip, [ip, #156] 8815 str ip, [sp, #4] 8816 movw ip, #590 8817 ldrh r0, [r0, ip] 8818 str r0, [sp] 8819 ldr r0, .L1451+24 8820 bl printk 8821 add sp, sp, #32 8822 @ sp needed 8823 pop {r4, pc} 8824.L1452: 8825 .align 2 8826.L1451: 8827 .word .LANCHOR0 8828 .word .LC112 8829 .word .LC113 8830 .word .LC114 8831 .word .LC115 8832 .word .LC116 8833 .word .LC117 8834 .fnend 8835 .size print_ftl_debug_info, .-print_ftl_debug_info 8836 .align 2 8837 .global ftl_write_buf 8838 .syntax unified 8839 .arm 8840 .fpu softvfp 8841 .type ftl_write_buf, %function 8842ftl_write_buf: 8843 .fnstart 8844 @ args = 0, pretend = 0, frame = 0 8845 @ frame_needed = 0, uses_anonymous_args = 0 8846 push {r4, r5, r6, lr} 8847 .save {r4, r5, r6, lr} 8848 subs r4, r0, #0 8849 bne .L1454 8850 movw r2, #811 8851 ldr r1, .L1464 8852 ldr r0, .L1464+4 8853 bl printk 8854 bl dump_stack 8855 bl print_ftl_debug_info 8856 mvn r0, #0 8857 pop {r4, r5, r6, pc} 8858.L1457: 8859 mov r1, r4 8860 ldr r0, .L1464+8 8861 bl buf_add_tail 8862 ldr r3, [r6, #2800] 8863 ldrb r1, [r4, #40] @ zero_extendqisi2 8864 ldrb r0, [r6, #2796] @ zero_extendqisi2 8865 ldr r2, [r3, #16] 8866 add r0, r0, #1 8867 add r2, r2, r1 8868 uxtb r0, r0 8869 str r2, [r3, #16] 8870 ldr r2, [r3, #32] 8871 strb r0, [r6, #2796] 8872 add r2, r2, #1 8873 str r2, [r3, #32] 8874 pop {r4, r5, r6, pc} 8875.L1454: 8876 ldr r3, .L1464+12 8877 ldrb r1, [r4, #40] @ zero_extendqisi2 8878 ldrb r2, [r3, #-2546] @ zero_extendqisi2 8879 mov r5, r3 8880 cmp r1, r2 8881 bls .L1459 8882 movw r2, #818 8883 ldr r1, .L1464 8884 ldr r0, .L1464+4 8885 bl printk 8886 bl dump_stack 8887.L1459: 8888 ldrb r3, [r4, #40] @ zero_extendqisi2 8889 ldr r6, .L1464+16 8890 cmp r3, #0 8891 beq .L1456 8892 ldrb r2, [r5, #-2546] @ zero_extendqisi2 8893 cmp r2, r3 8894 bcs .L1457 8895.L1456: 8896 mov r0, r4 8897 bl zbuf_free 8898 ldrb r0, [r6, #2796] @ zero_extendqisi2 8899 pop {r4, r5, r6, pc} 8900.L1465: 8901 .align 2 8902.L1464: 8903 .word .LANCHOR1+1597 8904 .word .LC0 8905 .word .LANCHOR0+2820 8906 .word .LANCHOR3 8907 .word .LANCHOR0 8908 .fnend 8909 .size ftl_write_buf, .-ftl_write_buf 8910 .align 2 8911 .global ftl_write_completed 8912 .syntax unified 8913 .arm 8914 .fpu softvfp 8915 .type ftl_write_completed, %function 8916ftl_write_completed: 8917 .fnstart 8918 @ args = 0, pretend = 0, frame = 0 8919 @ frame_needed = 0, uses_anonymous_args = 0 8920 push {r4, r5, r6, r7, r8, r9, r10, lr} 8921 .save {r4, r5, r6, r7, r8, r9, r10, lr} 8922 mov r10, #0 8923 ldr r8, .L1483 8924 ldr r9, .L1483+4 8925 mov r6, r8 8926.L1467: 8927 ldrb r5, [r8, #2773] @ zero_extendqisi2 8928 cmp r5, #255 8929 bne .L1478 8930 pop {r4, r5, r6, r7, r8, r9, r10, pc} 8931.L1478: 8932 mov r2, #48 8933 ldr r3, .L1483+8 8934 mul r2, r2, r5 8935 add r7, r5, r5, lsl #1 8936 add r7, r3, r7, lsl #4 8937 add r4, r8, r2 8938 ldrb r1, [r4, #1232] @ zero_extendqisi2 8939 strb r1, [r8, #2773] 8940 ldr r1, [r4, #1268] 8941 cmn r1, #1 8942 bne .L1468 8943 ldr r1, .L1483+12 8944 ldrb r3, [r1, #-2542] @ zero_extendqisi2 8945 cmp r3, #0 8946 bne .L1469 8947 ldrb r3, [r1, #-3126] @ zero_extendqisi2 8948 cmp r3, #0 8949 beq .L1470 8950.L1469: 8951 ldr r3, [r6, #2800] 8952 ldr r3, [r3, #156] 8953 cmp r3, r9 8954 beq .L1471 8955.L1470: 8956 mov r10, #48 8957 ldr r3, .L1483+16 8958 mla r10, r10, r5, r6 8959 ldrb r1, [r1, #-3136] @ zero_extendqisi2 8960 ldrh r0, [r3] 8961 ldrb r3, [r6, #1153] @ zero_extendqisi2 8962 ldr r2, [r10, #1256] 8963 rsb r3, r3, #24 8964 sub r3, r3, r0 8965 lsr r2, r2, r0 8966 mvn r0, #0 8967 bic r0, r2, r0, lsl r3 8968 bl __aeabi_uidiv 8969 ldr r3, [r6, #1096] 8970 uxth r4, r0 8971 movw r2, #65535 8972 ldr r0, .L1483+20 8973 ldr r1, [r3, #560] 8974 cmp r1, r2 8975 mov r1, r4 8976 streq r4, [r3, #560] 8977 ldreq r2, [r10, #1256] 8978 streq r2, [r3, #564] 8979 mov r3, #48 8980 mla r5, r3, r5, r6 8981 ldr r3, [r5, #1256] 8982 ldr r2, [r5, #1252] 8983 bl printk 8984 ldr r3, [r6, #1096] 8985 ldr r2, [r3, #556] 8986 add r2, r2, #1 8987 str r2, [r3, #556] 8988 ldrh r2, [r3, #16] 8989 cmp r2, r4 8990 moveq r2, #0 8991 strheq r2, [r3, #22] @ movhi 8992 beq .L1471 8993 ldrh r2, [r3, #48] 8994 cmp r2, r4 8995 moveq r2, #0 8996 strheq r2, [r3, #54] @ movhi 8997.L1471: 8998 mov r0, r7 8999 mov r10, #1 9000 bl ftl_write_buf 9001 b .L1467 9002.L1468: 9003 cmp r10, #1 9004 bne .L1476 9005 ldr r2, [r4, #1256] 9006 ldr r1, [r4, #1252] 9007 ldr r0, .L1483+24 9008 bl printk 9009 mov r0, r7 9010 bl ftl_write_buf 9011 b .L1467 9012.L1476: 9013 add r3, r3, r2 9014 ldr r1, [r4, #1260] 9015 ldrh r2, [r3, #32] 9016 ldr r0, [r4, #1252] 9017 bl lpa_hash_update_ppa 9018 ldrb r3, [r4, #1234] @ zero_extendqisi2 9019 tst r3, #4 9020 bicne r3, r3, #2 9021 strbne r3, [r4, #1234] 9022 bne .L1467 9023 mov r0, r7 9024 bl zbuf_free 9025 b .L1467 9026.L1484: 9027 .align 2 9028.L1483: 9029 .word .LANCHOR0 9030 .word 1145785929 9031 .word .LANCHOR0+1232 9032 .word .LANCHOR3 9033 .word .LANCHOR3-3138 9034 .word .LC118 9035 .word .LC119 9036 .fnend 9037 .size ftl_write_completed, .-ftl_write_completed 9038 .align 2 9039 .global zftl_add_read_buf 9040 .syntax unified 9041 .arm 9042 .fpu softvfp 9043 .type zftl_add_read_buf, %function 9044zftl_add_read_buf: 9045 .fnstart 9046 @ args = 0, pretend = 0, frame = 0 9047 @ frame_needed = 0, uses_anonymous_args = 0 9048 push {r4, r5, r6, lr} 9049 .save {r4, r5, r6, lr} 9050 subs r5, r0, #0 9051 bne .L1486 9052 movw r2, #1151 9053 ldr r1, .L1491 9054 ldr r0, .L1491+4 9055 bl printk 9056 bl dump_stack 9057 pop {r4, r5, r6, lr} 9058 b print_ftl_debug_info 9059.L1486: 9060 ldr r4, .L1491+8 9061 ldrb r2, [r5, #40] @ zero_extendqisi2 9062 ldrb r3, [r4, #-2546] @ zero_extendqisi2 9063 cmp r2, r3 9064 bls .L1488 9065 movw r2, #1158 9066 ldr r1, .L1491 9067 ldr r0, .L1491+4 9068 bl printk 9069 bl dump_stack 9070.L1488: 9071 mov r1, r5 9072 ldr r0, .L1491+12 9073 bl buf_add_tail 9074 ldrb r3, [r4, #-2535] @ zero_extendqisi2 9075 add r3, r3, #1 9076 strb r3, [r4, #-2535] 9077 pop {r4, r5, r6, pc} 9078.L1492: 9079 .align 2 9080.L1491: 9081 .word .LANCHOR1+1611 9082 .word .LC0 9083 .word .LANCHOR3 9084 .word .LANCHOR3-2536 9085 .fnend 9086 .size zftl_add_read_buf, .-zftl_add_read_buf 9087 .align 2 9088 .global sblk_init 9089 .syntax unified 9090 .arm 9091 .fpu softvfp 9092 .type sblk_init, %function 9093sblk_init: 9094 .fnstart 9095 @ args = 0, pretend = 0, frame = 0 9096 @ frame_needed = 0, uses_anonymous_args = 0 9097 @ link register save eliminated. 9098 ldr r3, .L1494 9099 mvn r2, #0 9100 mov r0, #0 9101 strb r2, [r3, #2770] 9102 strb r2, [r3, #2773] 9103 strb r2, [r3, #2771] 9104 strb r2, [r3, #2772] 9105 bx lr 9106.L1495: 9107 .align 2 9108.L1494: 9109 .word .LANCHOR0 9110 .fnend 9111 .size sblk_init, .-sblk_init 9112 .align 2 9113 .global dump_sblk_queue 9114 .syntax unified 9115 .arm 9116 .fpu softvfp 9117 .type dump_sblk_queue, %function 9118dump_sblk_queue: 9119 .fnstart 9120 @ args = 0, pretend = 0, frame = 0 9121 @ frame_needed = 0, uses_anonymous_args = 0 9122 push {r4, r5, r6, lr} 9123 .save {r4, r5, r6, lr} 9124 ldr r5, .L1506 9125 ldr r0, .L1506+4 9126 ldrb r1, [r5, #2770] @ zero_extendqisi2 9127 bl printk 9128 ldrb r4, [r5, #2770] @ zero_extendqisi2 9129 cmp r4, #255 9130 popeq {r4, r5, r6, pc} 9131 add r4, r4, r4, lsl #1 9132 add r5, r5, #1232 9133 ldr r6, .L1506+8 9134 add r4, r5, r4, lsl #4 9135.L1498: 9136 ldr r3, [r4, #24] 9137 mov r0, r6 9138 ldrb r2, [r4, #42] @ zero_extendqisi2 9139 ldrb r1, [r4, #1] @ zero_extendqisi2 9140 bl printk 9141 ldrb r4, [r4] @ zero_extendqisi2 9142 cmp r4, #255 9143 popeq {r4, r5, r6, pc} 9144 add r4, r4, r4, lsl #1 9145 add r4, r5, r4, lsl #4 9146 b .L1498 9147.L1507: 9148 .align 2 9149.L1506: 9150 .word .LANCHOR0 9151 .word .LC120 9152 .word .LC121 9153 .fnend 9154 .size dump_sblk_queue, .-dump_sblk_queue 9155 .align 2 9156 .global queue_lun_state 9157 .syntax unified 9158 .arm 9159 .fpu softvfp 9160 .type queue_lun_state, %function 9161queue_lun_state: 9162 .fnstart 9163 @ args = 0, pretend = 0, frame = 8 9164 @ frame_needed = 0, uses_anonymous_args = 0 9165 push {r0, r1, r2, r4, r5, r6, r7, r8, r9, r10, fp, lr} 9166 .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} 9167 .pad #12 9168 ldr lr, .L1520 9169 ldrb ip, [lr, #2770] @ zero_extendqisi2 9170 cmp ip, #255 9171 beq .L1516 9172 ldrb r3, [lr, #1153] @ zero_extendqisi2 9173 mov r2, #1 9174 mov r8, #48 9175 movw r10, #1274 9176 rsb r6, r3, #24 9177 lsl r3, r2, r3 9178 sub r3, r3, #1 9179 uxth r3, r3 9180 and r4, r3, r0, asr r6 9181 str r4, [sp] 9182 ldr r4, .L1520+4 9183 sub r5, r4, #3136 9184 ldrb r4, [r4, #-3136] @ zero_extendqisi2 9185 ldrh r7, [r5, #-2] 9186 sub r4, r4, #1 9187 sub r5, r6, r7 9188 uxth r4, r4 9189 lsl r2, r2, r5 9190 and r0, r4, r0, asr r7 9191 sub r2, r2, #1 9192 uxth r2, r2 9193 and r0, r0, r2 9194 str r0, [sp, #4] 9195.L1515: 9196 mla r0, r8, ip, lr 9197 ldr r9, [sp] 9198 movw r5, #1256 9199 ldr r5, [r0, r5] 9200 and fp, r3, r5, lsr r6 9201 cmp r9, fp 9202 bne .L1510 9203 and r5, r4, r5, lsr r7 9204 ldr r9, [sp, #4] 9205 ldrb r0, [r0, r10] @ zero_extendqisi2 9206 and r5, r5, r2 9207 cmp r9, r5 9208 bne .L1511 9209 cmp r1, #1 9210 bne .L1508 9211.L1513: 9212 sub r5, r0, #7 9213 tst r5, #253 9214 beq .L1510 9215.L1508: 9216 add sp, sp, #12 9217 @ sp needed 9218 pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} 9219.L1511: 9220 cmp r1, #3 9221 ldrls pc, [pc, r1, asl #2] 9222 b .L1510 9223.L1512: 9224 .word .L1508 9225 .word .L1513 9226 .word .L1514 9227 .word .L1508 9228.L1514: 9229 cmp r0, #11 9230 bne .L1508 9231.L1510: 9232 mla ip, r8, ip, lr 9233 ldrb ip, [ip, #1232] @ zero_extendqisi2 9234 cmp ip, #255 9235 bne .L1515 9236.L1516: 9237 mov r0, #0 9238 b .L1508 9239.L1521: 9240 .align 2 9241.L1520: 9242 .word .LANCHOR0 9243 .word .LANCHOR3 9244 .fnend 9245 .size queue_lun_state, .-queue_lun_state 9246 .align 2 9247 .global queue_remove_completed_req 9248 .syntax unified 9249 .arm 9250 .fpu softvfp 9251 .type queue_remove_completed_req, %function 9252queue_remove_completed_req: 9253 .fnstart 9254 @ args = 0, pretend = 0, frame = 16 9255 @ frame_needed = 0, uses_anonymous_args = 0 9256 ldr r3, .L1548 9257 mov ip, #0 9258 push {r4, r5, r6, r7, r8, r9, r10, fp, lr} 9259 .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} 9260 .pad #20 9261 sub sp, sp, #20 9262 ldr r7, .L1548+4 9263 mov r0, #48 9264 mvn r4, #0 9265 movw r5, #1275 9266 ldrb r1, [r3, #2771] @ zero_extendqisi2 9267 movw r6, #1233 9268 ldrb r2, [r3, #2770] @ zero_extendqisi2 9269 add r8, r3, #1232 9270 add r9, r7, #1 9271 add r10, r7, #2 9272 str r1, [sp, #8] 9273 ldrb r1, [r3, #2773] @ zero_extendqisi2 9274 str r1, [sp, #12] 9275 ldrb r1, [r3, #2772] @ zero_extendqisi2 9276 str r1, [sp, #4] 9277.L1523: 9278 cmp r2, #255 9279 beq .L1524 9280 mla fp, r0, r2, r3 9281 movw lr, #1274 9282 mov r1, r2 9283 ldrb lr, [fp, lr] @ zero_extendqisi2 9284 sub lr, lr, #12 9285 cmp lr, #1 9286 bls .L1525 9287 cmp ip, #0 9288 beq .L1522 9289.L1547: 9290 strb r2, [r3, #2770] 9291 b .L1522 9292.L1525: 9293 mul ip, r0, r1 9294 ldrb r2, [fp, #1232] @ zero_extendqisi2 9295 add lr, r3, ip 9296 ldrb fp, [lr, r5] @ zero_extendqisi2 9297 strb r4, [lr, #1232] 9298 cmp fp, #1 9299 bne .L1528 9300 add ip, r8, ip 9301 ldrh ip, [ip, #34] 9302 cmp ip, #0 9303 ldreq ip, [sp, #12] 9304 moveq lr, r10 9305 ldrne ip, [sp, #4] 9306 movne lr, r9 9307.L1529: 9308 cmp ip, #255 9309 bne .L1534 9310 strb r2, [r3, #2770] 9311 mov r2, #48 9312 mla r3, r2, r1, r3 9313 ldrb r3, [r3, #1233] @ zero_extendqisi2 9314 strb r3, [lr] 9315.L1522: 9316 add sp, sp, #20 9317 @ sp needed 9318 pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} 9319.L1528: 9320 cmp fp, #0 9321 bne .L1530 9322 ldr ip, [lr, #1252] 9323 cmn ip, #1 9324 ldrne ip, [sp, #8] 9325 movne lr, r7 9326 bne .L1529 9327.L1530: 9328 mov ip, #1 9329 b .L1523 9330.L1534: 9331 mov lr, ip 9332 mla ip, r0, ip, r3 9333 ldrb ip, [ip, #1232] @ zero_extendqisi2 9334 cmp ip, #255 9335 bne .L1534 9336 mla r1, r0, r1, r3 9337 mla lr, r0, lr, r3 9338 ldrb r1, [r1, r6] @ zero_extendqisi2 9339 strb r1, [lr, #1232] 9340 b .L1530 9341.L1524: 9342 cmp ip, #0 9343 beq .L1522 9344 mvn r2, #0 9345 b .L1547 9346.L1549: 9347 .align 2 9348.L1548: 9349 .word .LANCHOR0 9350 .word .LANCHOR0+2771 9351 .fnend 9352 .size queue_remove_completed_req, .-queue_remove_completed_req 9353 .align 2 9354 .global pm_select_ram_region 9355 .syntax unified 9356 .arm 9357 .fpu softvfp 9358 .type pm_select_ram_region, %function 9359pm_select_ram_region: 9360 .fnstart 9361 @ args = 0, pretend = 0, frame = 0 9362 @ frame_needed = 0, uses_anonymous_args = 0 9363 ldr r1, .L1561 9364 mov r3, #0 9365 movw r0, #65535 9366 push {r4, r5, r6, lr} 9367 .save {r4, r5, r6, lr} 9368 add r2, r1, #4 9369.L1552: 9370 lsl ip, r3, #3 9371 uxth r4, r3 9372 ldrh ip, [ip, r1] 9373 cmp ip, r0 9374 beq .L1551 9375 add r3, r3, #1 9376 cmp r3, #32 9377 bne .L1552 9378 mov r4, r3 9379 mov r1, #0 9380 mov r3, #32768 9381 sub ip, r2, #4 9382.L1554: 9383 add r0, ip, r1, lsl #3 9384 uxth lr, r1 9385 ldrh r0, [r0, #2] 9386 tst r0, #32768 9387 bne .L1553 9388 cmp r0, r3 9389 movcc r3, r0 9390 movcc r4, lr 9391.L1553: 9392 add r1, r1, #1 9393 cmp r1, #32 9394 bne .L1554 9395 cmp r4, #32 9396 bne .L1551 9397 ldr r3, .L1561+4 9398 mvn r1, #0 9399 sub r2, r2, #4 9400 ldrb lr, [r3, #-2276] @ zero_extendqisi2 9401 mov r3, #0 9402.L1556: 9403 lsl ip, r3, #3 9404 uxth r5, r3 9405 add r0, r2, ip 9406 ldrh r0, [r0, #2] 9407 cmp r0, r1 9408 bcs .L1555 9409 ldrh ip, [ip, r2] 9410 cmp ip, lr 9411 movne r1, r0 9412 movne r4, r5 9413.L1555: 9414 add r3, r3, #1 9415 cmp r3, #32 9416 bne .L1556 9417 cmp r4, #32 9418 bne .L1551 9419 movw r2, #377 9420 ldr r1, .L1561+8 9421 ldr r0, .L1561+12 9422 bl printk 9423 bl dump_stack 9424.L1551: 9425 mov r0, r4 9426 pop {r4, r5, r6, pc} 9427.L1562: 9428 .align 2 9429.L1561: 9430 .word .LANCHOR3-2532 9431 .word .LANCHOR3 9432 .word .LANCHOR1+1629 9433 .word .LC0 9434 .fnend 9435 .size pm_select_ram_region, .-pm_select_ram_region 9436 .align 2 9437 .global ftl_memset 9438 .syntax unified 9439 .arm 9440 .fpu softvfp 9441 .type ftl_memset, %function 9442ftl_memset: 9443 .fnstart 9444 @ args = 0, pretend = 0, frame = 0 9445 @ frame_needed = 0, uses_anonymous_args = 0 9446 @ link register save eliminated. 9447 b memset 9448 .fnend 9449 .size ftl_memset, .-ftl_memset 9450 .align 2 9451 .global flash_lsb_page_tbl_build 9452 .syntax unified 9453 .arm 9454 .fpu softvfp 9455 .type flash_lsb_page_tbl_build, %function 9456flash_lsb_page_tbl_build: 9457 .fnstart 9458 @ args = 0, pretend = 0, frame = 0 9459 @ frame_needed = 0, uses_anonymous_args = 0 9460 push {r4, r5, r6, lr} 9461 .save {r4, r5, r6, lr} 9462 mov r6, r0 9463 ldr r5, .L1618 9464 mov r0, #1024 9465 ldr r3, [r5, #1104] 9466 ldrb r1, [r3, #12] @ zero_extendqisi2 9467 bl __aeabi_idiv 9468 cmp r6, #0 9469 uxth r4, r0 9470 bne .L1565 9471 add r5, r5, #4 9472.L1566: 9473 lsl r3, r6, #1 9474 strh r6, [r3, r5] @ movhi 9475 add r6, r6, #1 9476 cmp r6, #512 9477 bne .L1566 9478.L1572: 9479 mov r2, #2048 9480 mov r1, #255 9481 ldr r0, .L1618+4 9482 bl ftl_memset 9483 ldr ip, .L1618+8 9484 mov r3, #0 9485 ldr r0, .L1618+4 9486.L1567: 9487 lsl r2, r3, #1 9488 add r3, r3, #1 9489 ldrh r2, [r2, ip] 9490 lsl r1, r2, #1 9491 strh r2, [r0, r1] @ movhi 9492 uxth r2, r3 9493 cmp r2, r4 9494 bcc .L1567 9495 pop {r4, r5, r6, pc} 9496.L1565: 9497 cmp r6, #1 9498 bne .L1568 9499 mov r3, #0 9500 add r5, r5, #4 9501.L1571: 9502 cmp r3, #3 9503 uxth r2, r3 9504 bls .L1569 9505 tst r2, #1 9506 movne r1, #3 9507 moveq r1, #2 9508 rsb r2, r1, r2, lsl #1 9509 uxth r2, r2 9510.L1569: 9511 lsl r1, r3, #1 9512 add r3, r3, #1 9513 cmp r3, #512 9514 strh r2, [r1, r5] @ movhi 9515 bne .L1571 9516 b .L1572 9517.L1568: 9518 cmp r6, #2 9519 bne .L1573 9520 mov r2, #0 9521 add r5, r5, #4 9522.L1575: 9523 uxth r3, r2 9524 cmp r2, #1 9525 lsl r1, r2, #1 9526 add r2, r2, #1 9527 lslhi r3, r3, #1 9528 subhi r3, r3, #1 9529 uxthhi r3, r3 9530 cmp r2, #512 9531 strh r3, [r1, r5] @ movhi 9532 bne .L1575 9533 b .L1572 9534.L1573: 9535 cmp r6, #3 9536 bne .L1576 9537 mov r3, #0 9538 add r5, r5, #4 9539.L1579: 9540 cmp r3, #5 9541 uxth r2, r3 9542 bls .L1577 9543 tst r2, #1 9544 movne r1, #5 9545 moveq r1, #4 9546 rsb r2, r1, r2, lsl #1 9547 uxth r2, r2 9548.L1577: 9549 lsl r1, r3, #1 9550 add r3, r3, #1 9551 cmp r3, #512 9552 strh r2, [r1, r5] @ movhi 9553 bne .L1579 9554 b .L1572 9555.L1576: 9556 cmp r6, #4 9557 mov r2, r5 9558 mov r3, #0 9559 bne .L1580 9560 strh r3, [r5, #4] @ movhi 9561 mov r3, #1 9562 strh r3, [r5, #6] @ movhi 9563 mov r3, #2 9564 strh r3, [r5, #8] @ movhi 9565 mov r3, #3 9566 strh r3, [r5, #10] @ movhi 9567 mov r3, #5 9568 strh r3, [r5, #14] @ movhi 9569 mov r3, #7 9570 strh r3, [r5, #16] @ movhi 9571 mov r3, #8 9572 strh r6, [r5, #12] @ movhi 9573 strh r3, [r5, #18]! @ movhi 9574.L1582: 9575 tst r3, #1 9576 movne r2, #7 9577 moveq r2, #6 9578 rsb r2, r2, r3, lsl #1 9579 add r3, r3, #1 9580 uxth r3, r3 9581 strh r2, [r5, #2]! @ movhi 9582 cmp r3, #512 9583 bne .L1582 9584 b .L1572 9585.L1580: 9586 cmp r6, #5 9587 bne .L1583 9588 add r1, r5, #4 9589.L1584: 9590 lsl r0, r3, #1 9591 strh r3, [r0, r1] @ movhi 9592 add r3, r3, #1 9593 cmp r3, #16 9594 bne .L1584 9595 add r2, r2, #34 9596.L1585: 9597 strh r3, [r2, #2]! @ movhi 9598 add r3, r3, #2 9599 uxth r3, r3 9600 cmp r3, #1008 9601 bne .L1585 9602 b .L1572 9603.L1583: 9604 cmp r6, #8 9605 bne .L1586 9606 add r5, r5, #4 9607.L1587: 9608 strh r3, [r3, r5] @ movhi 9609 add r3, r3, #2 9610 cmp r3, #1024 9611 bne .L1587 9612 b .L1572 9613.L1586: 9614 cmp r6, #9 9615 bne .L1588 9616 strh r3, [r5, #4] @ movhi 9617 mov r3, #1 9618 strh r3, [r5, #6] @ movhi 9619 mov r3, #2 9620 strh r3, [r5, #8]! @ movhi 9621 movw r2, #1021 9622 mov r3, #3 9623.L1589: 9624 strh r3, [r5, #2]! @ movhi 9625 add r3, r3, #2 9626 uxth r3, r3 9627 cmp r3, r2 9628 bne .L1589 9629 b .L1572 9630.L1588: 9631 cmp r6, #10 9632 bne .L1590 9633 add r1, r5, #4 9634.L1591: 9635 lsl r0, r3, #1 9636 strh r3, [r0, r1] @ movhi 9637 add r3, r3, #1 9638 cmp r3, #63 9639 bne .L1591 9640 add r2, r2, #128 9641 movw r1, #961 9642.L1592: 9643 strh r3, [r2, #2]! @ movhi 9644 add r3, r3, #2 9645 uxth r3, r3 9646 cmp r3, r1 9647 bne .L1592 9648 b .L1572 9649.L1590: 9650 cmp r6, #11 9651 bne .L1593 9652 ldr r1, .L1618+8 9653 mov r3, #0 9654.L1594: 9655 lsl r0, r3, #1 9656 strh r3, [r0, r1] @ movhi 9657 add r3, r3, #1 9658 cmp r3, #8 9659 bne .L1594 9660 add r2, r2, #18 9661.L1596: 9662 tst r3, #1 9663 movne r1, #7 9664 moveq r1, #6 9665 rsb r1, r1, r3, lsl #1 9666 add r3, r3, #1 9667 uxth r3, r3 9668 strh r1, [r2, #2]! @ movhi 9669 cmp r3, #512 9670 bne .L1596 9671 b .L1572 9672.L1593: 9673 cmp r6, #13 9674 bne .L1572 9675 ldr r2, .L1618+12 9676 mov r3, #0 9677.L1597: 9678 strh r3, [r2, #2]! @ movhi 9679 add r3, r3, #3 9680 uxth r3, r3 9681 cmp r3, #1536 9682 bne .L1597 9683 b .L1572 9684.L1619: 9685 .align 2 9686.L1618: 9687 .word .LANCHOR0 9688 .word .LANCHOR3-2272 9689 .word .LANCHOR0+4 9690 .word .LANCHOR0+2 9691 .fnend 9692 .size flash_lsb_page_tbl_build, .-flash_lsb_page_tbl_build 9693 .align 2 9694 .global flash_die_info_init 9695 .syntax unified 9696 .arm 9697 .fpu softvfp 9698 .type flash_die_info_init, %function 9699flash_die_info_init: 9700 .fnstart 9701 @ args = 0, pretend = 0, frame = 8 9702 @ frame_needed = 0, uses_anonymous_args = 0 9703 push {r0, r1, r2, r4, r5, r6, r7, r8, r9, r10, fp, lr} 9704 .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} 9705 .pad #12 9706 ldr r4, .L1638 9707 ldr r3, [r4] 9708 tst r3, #4096 9709 beq .L1621 9710 ldr r1, .L1638+4 9711 ldr r0, .L1638+8 9712 bl printk 9713.L1621: 9714 ldrh r3, [r4, #30] 9715 mov r7, #0 9716 ldr r5, .L1638+12 9717 ldr r9, .L1638+16 9718 ldr r6, .L1638+20 9719 strh r3, [r5, #2] @ movhi 9720 ldrb r1, [r4, #16] @ zero_extendqisi2 9721 add r8, r9, #6 9722 ldrh r0, [r4, #14] 9723 mov r10, r8 9724 strb r7, [r5, #1109] 9725 bl __aeabi_idiv 9726 mov r2, #8 9727 strh r0, [r6, #-224] @ movhi 9728 mov r1, r7 9729 ldr r0, .L1638+24 9730 bl ftl_memset 9731 mov r2, #32 9732 mov r1, r7 9733 sub r0, r6, #220 9734 bl ftl_memset 9735.L1623: 9736 mov r3, #2 9737 ldrb r2, [r4, #4] @ zero_extendqisi2 9738 strb r3, [r7, r9] 9739 add r1, r8, r7, lsl #3 9740 ldr r0, .L1638+28 9741 bl flash_mem_cmp8 9742 cmp r0, #0 9743 ldr fp, .L1638+28 9744 bne .L1622 9745 ldrb r3, [r5, #1109] @ zero_extendqisi2 9746 add r2, r6, r3, lsl #2 9747 str r0, [r2, #-220] 9748 uxtb r0, r7 9749 add r2, r3, #1 9750 add r3, r5, r3 9751 strb r2, [r5, #1109] 9752 strb r0, [r3, #1144] 9753 bl zftl_flash_enter_slc_mode 9754.L1622: 9755 add r7, r7, #1 9756 cmp r7, #4 9757 bne .L1623 9758 ldrb r3, [r4, #12] @ zero_extendqisi2 9759 cmp r3, #2 9760 beq .L1624 9761.L1628: 9762 ldrb r2, [r4, #17] @ zero_extendqisi2 9763 ldrb r3, [r5, #1109] @ zero_extendqisi2 9764 smulbb r3, r3, r2 9765 ldrh r2, [r4, #18] 9766 smulbb r3, r3, r2 9767 strh r3, [r6, #-188] @ movhi 9768 add sp, sp, #12 9769 @ sp needed 9770 pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} 9771.L1624: 9772 ldrb r3, [r4, #4] @ zero_extendqisi2 9773 mov r7, #0 9774 ldrh r8, [r5, #2] 9775 ldrb r9, [r4, #27] @ zero_extendqisi2 9776 str r3, [sp] 9777 ldrh r3, [r4, #18] 9778 and r3, r3, #65280 9779 mul r3, r8, r3 9780 ldrb r8, [r4, #17] @ zero_extendqisi2 9781 mul r8, r8, r3 9782 lsl r3, r8, #1 9783.L1627: 9784 ldr r2, [sp] 9785 add r1, r10, r7, lsl #3 9786 mov r0, fp 9787 str r3, [sp, #4] 9788 bl flash_mem_cmp8 9789 cmp r0, #0 9790 ldr r3, [sp, #4] 9791 bne .L1625 9792 ldrb r2, [r5, #1109] @ zero_extendqisi2 9793 cmp r9, #0 9794 moveq r0, r8 9795 movne r0, r3 9796 add r1, r6, r2, lsl #2 9797 str r0, [r1, #-220] 9798 add r1, r2, #1 9799 add r2, r5, r2 9800 strb r1, [r5, #1109] 9801 strb r7, [r2, #1144] 9802.L1625: 9803 add r7, r7, #1 9804 cmp r7, #4 9805 bne .L1627 9806 b .L1628 9807.L1639: 9808 .align 2 9809.L1638: 9810 .word .LANCHOR2 9811 .word .LANCHOR1+1650 9812 .word .LC4 9813 .word .LANCHOR0 9814 .word .LANCHOR0+1154 9815 .word .LANCHOR3 9816 .word .LANCHOR0+1144 9817 .word .LANCHOR2+5 9818 .fnend 9819 .size flash_die_info_init, .-flash_die_info_init 9820 .align 2 9821 .global lpa_hash_init 9822 .syntax unified 9823 .arm 9824 .fpu softvfp 9825 .type lpa_hash_init, %function 9826lpa_hash_init: 9827 .fnstart 9828 @ args = 0, pretend = 0, frame = 0 9829 @ frame_needed = 0, uses_anonymous_args = 0 9830 push {r4, lr} 9831 .save {r4, lr} 9832 mov r2, #512 9833 ldr r4, .L1642 9834 mov r1, #255 9835 sub r0, r4, #3056 9836 sub r0, r0, #14 9837 bl ftl_memset 9838 sub r3, r4, #3088 9839 ldrb r2, [r4, #-3127] @ zero_extendqisi2 9840 ldrh r3, [r3, #-8] 9841 mov r1, #255 9842 ldr r0, [r4, #-2552] 9843 pop {r4, lr} 9844 mul r2, r2, r3 9845 lsl r2, r2, #2 9846 b ftl_memset 9847.L1643: 9848 .align 2 9849.L1642: 9850 .word .LANCHOR3 9851 .fnend 9852 .size lpa_hash_init, .-lpa_hash_init 9853 .align 2 9854 .global lpa_rebuild_hash 9855 .syntax unified 9856 .arm 9857 .fpu softvfp 9858 .type lpa_rebuild_hash, %function 9859lpa_rebuild_hash: 9860 .fnstart 9861 @ args = 0, pretend = 0, frame = 0 9862 @ frame_needed = 0, uses_anonymous_args = 0 9863 ldr r3, .L1656 9864 push {r4, r5, r6, lr} 9865 .save {r4, r5, r6, lr} 9866 ldr r3, [r3] 9867 tst r3, #4096 9868 beq .L1645 9869 mov r3, #0 9870 mov r2, #239 9871 ldr r1, .L1656+4 9872 ldr r0, .L1656+8 9873 bl printk 9874.L1645: 9875 ldr r4, .L1656+12 9876 mov r2, #512 9877 mov r1, #255 9878 sub r5, r4, #3056 9879 sub r6, r4, #3088 9880 sub r5, r5, #14 9881 mov r0, r5 9882 bl ftl_memset 9883 ldrh r3, [r6, #-8] 9884 mov r1, #255 9885 ldrb r2, [r4, #-3127] @ zero_extendqisi2 9886 ldr r0, [r4, #-2552] 9887 mul r2, r2, r3 9888 lsl r2, r2, #2 9889 bl ftl_memset 9890 mov r1, #0 9891.L1646: 9892 ldrh r0, [r6, #-8] 9893 uxth ip, r1 9894 ldrb r3, [r4, #-3127] @ zero_extendqisi2 9895 mov r2, ip 9896 mul r3, r3, r0 9897 cmp ip, r3, lsl #1 9898 blt .L1648 9899 pop {r4, r5, r6, pc} 9900.L1648: 9901 ldr r3, [r4, #-2556] 9902 ldr r3, [r3, r2, lsl #2] 9903 cmn r3, #1 9904 beq .L1647 9905 uxtb r3, r3 9906 lsl r2, r2, #1 9907 lsl r3, r3, #1 9908 ldrh r0, [r5, r3] 9909 strh ip, [r5, r3] @ movhi 9910 ldr r3, [r4, #-2552] 9911 strh r0, [r3, r2] @ movhi 9912.L1647: 9913 add r1, r1, #1 9914 b .L1646 9915.L1657: 9916 .align 2 9917.L1656: 9918 .word .LANCHOR2 9919 .word .LANCHOR1+1670 9920 .word .LC122 9921 .word .LANCHOR3 9922 .fnend 9923 .size lpa_rebuild_hash, .-lpa_rebuild_hash 9924 .align 2 9925 .global zftl_read_flash_info 9926 .syntax unified 9927 .arm 9928 .fpu softvfp 9929 .type zftl_read_flash_info, %function 9930zftl_read_flash_info: 9931 .fnstart 9932 @ args = 0, pretend = 0, frame = 0 9933 @ frame_needed = 0, uses_anonymous_args = 0 9934 push {r4, lr} 9935 .save {r4, lr} 9936 mov r2, #11 9937 mov r1, #0 9938 mov r4, r0 9939 bl ftl_memset 9940 ldr r2, .L1662 9941 mov ip, #1 9942 ldr r3, .L1662+4 9943 ldrh r0, [r2, #2] 9944 ldrb r1, [r3, #13] @ zero_extendqisi2 9945 smulbb r1, r1, r0 9946 ldr r0, .L1662+8 9947 strh r1, [r4, #4] @ unaligned 9948 ldrb r1, [r2, #1193] @ zero_extendqisi2 9949 strb r1, [r4, #7] 9950 ldr r1, [r2, #1032] 9951 str r1, [r4] @ unaligned 9952 ldrb r1, [r3, #13] @ zero_extendqisi2 9953 strb r1, [r4, #6] 9954 mov r1, #32 9955 ldrb r3, [r3, #11] @ zero_extendqisi2 9956 strb r1, [r4, #8] 9957 ldrb r1, [r2, #1109] @ zero_extendqisi2 9958 strb r3, [r4, #9] 9959 mov r3, #0 9960 strb r3, [r4, #10] 9961.L1659: 9962 uxtb r2, r3 9963 cmp r1, r2 9964 bhi .L1660 9965 pop {r4, pc} 9966.L1660: 9967 ldrb lr, [r3, r0] @ zero_extendqisi2 9968 add r3, r3, #1 9969 ldrb r2, [r4, #10] @ zero_extendqisi2 9970 orr r2, r2, ip, lsl lr 9971 strb r2, [r4, #10] 9972 b .L1659 9973.L1663: 9974 .align 2 9975.L1662: 9976 .word .LANCHOR0 9977 .word .LANCHOR2 9978 .word .LANCHOR0+1144 9979 .fnend 9980 .size zftl_read_flash_info, .-zftl_read_flash_info 9981 .align 2 9982 .global gc_static_wearleveling 9983 .syntax unified 9984 .arm 9985 .fpu softvfp 9986 .type gc_static_wearleveling, %function 9987gc_static_wearleveling: 9988 .fnstart 9989 @ args = 0, pretend = 0, frame = 24 9990 @ frame_needed = 0, uses_anonymous_args = 0 9991 ldr r0, .L1779 9992 push {r4, r5, r6, r7, r8, r9, r10, fp, lr} 9993 .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} 9994 .pad #44 9995 sub sp, sp, #44 9996 ldr r3, [r0, #2800] 9997 ldr r3, [r3, #32] 9998 cmp r3, #10240 9999 bls .L1665 10000 bl ftl_tmp_into_update 10001.L1665: 10002 ldr r3, [r0, #1096] 10003 ldr r2, [r3, #568] 10004 ldr r1, [r3, #12] 10005 add ip, r2, #35840 10006 add ip, ip, #160 10007 cmp r1, ip 10008 bcs .L1666 10009 ldr lr, [r0, #2800] 10010 ldr ip, [r3, #572] 10011 ldr lr, [lr, #36] 10012 add ip, ip, #256 10013 cmp lr, ip 10014 movcc r0, #0 10015 bcc .L1664 10016.L1666: 10017 add r2, r2, #860160 10018 add r2, r2, #3840 10019 cmp r1, r2 10020 bhi .L1668 10021 ldr ip, [r0, #2800] 10022 ldr r2, [r3, #572] 10023 ldr ip, [ip, #36] 10024 add r2, r2, #32 10025 cmp ip, r2 10026 movls r7, #0 10027 movls r5, r7 10028 bls .L1669 10029.L1668: 10030 ldr r2, [r0, #2800] 10031 mov r4, #0 10032 ldr r5, .L1779 10033 movw r10, #65535 10034 ldr r8, .L1779+4 10035 mov r6, r4 10036 ldr r0, [r2, #36] 10037 mov fp, r10 10038 str r1, [r3, #568] 10039 ldr r9, .L1779+8 10040 str r0, [r3, #572] 10041 ldrh r7, [r2, #134] 10042 str r4, [sp, #36] 10043 str r4, [sp, #32] 10044 str r4, [sp, #28] 10045 str r4, [sp, #24] 10046 str r4, [sp, #16] 10047 str r4, [sp, #20] 10048.L1670: 10049 ldrh r3, [r8] 10050 cmp r3, r7 10051 bhi .L1679 10052 ldr r0, [r5, #1096] 10053 mov r3, #0 10054 mov r2, #128 10055 mov r1, #255 10056 strh r3, [r0, #122] @ movhi 10057 add r0, r0, #264 10058 bl ftl_memset 10059 ldr r2, [r5, #1096] 10060 movw r3, #586 10061 ldr r8, [r5, #1084] 10062 ldrh r1, [r2, r3] 10063 ldr r3, .L1779+8 10064 ldr r3, [r3] 10065 lsl r9, r1, #2 10066 add r7, r8, r9 10067 tst r3, #1024 10068 beq .L1680 10069 ldr ip, [r5, #1092] 10070 lsl r0, r1, #1 10071 ldr r3, [r8, r1, lsl #2] 10072 ldrh r2, [r8, r9] 10073 ldrh r0, [ip, r0] 10074 ubfx r3, r3, #11, #8 10075 ubfx r2, r2, #0, #11 10076 str r0, [sp, #12] 10077 ldrb r0, [r7, #3] @ zero_extendqisi2 10078 str r0, [sp, #8] 10079 ldrb r0, [r7, #2] @ zero_extendqisi2 10080 lsr r0, r0, #5 10081 str r0, [sp, #4] 10082 ldrb r0, [r7, #2] @ zero_extendqisi2 10083 ubfx r0, r0, #3, #2 10084 str r0, [sp] 10085 ldr r0, .L1779+12 10086 bl printk 10087.L1680: 10088 ldrb r3, [r7, #2] @ zero_extendqisi2 10089 and r3, r3, #224 10090 cmp r3, #32 10091 bne .L1681 10092 ldr r3, .L1779 10093 ldr r3, [r3, #2800] 10094 add r3, r3, #688 10095 ldrh r3, [r3] 10096 cmp r3, #2 10097 ldrhi r3, .L1779+16 10098 movhi r2, #1 10099 strhi r2, [r3, #-184] 10100.L1681: 10101 ldrb r2, [r7, #2] @ zero_extendqisi2 10102 tst r2, #8 10103 beq .L1682 10104 ldr r5, .L1779 10105 ldr r3, [r5, #2800] 10106 ldrh r1, [r3, #96] 10107 ldr r3, .L1779+16 10108 ldrh r0, [r3, #-180] 10109 ldrh r3, [r8, r9] 10110 ubfx r3, r3, #0, #11 10111 add r3, r3, r0, lsr #2 10112 cmp r1, r3 10113 ble .L1682 10114 and r3, r2, #192 10115 cmp r3, #64 10116 bne .L1683 10117 ldr r0, [r5, #1096] 10118 movw r3, #586 10119 mov r2, #1 10120 mov r1, #0 10121 ldrh r0, [r0, r3] 10122 bl gc_add_sblk 10123 ldr r2, .L1779+20 10124 mov r1, #1 10125 movw r3, #2180 10126 strh r1, [r2, r3] @ movhi 10127.L1682: 10128 ldr r1, .L1779 10129 ldr r3, [r1, #1096] 10130 ldr r7, [r1, #1084] 10131 add r3, r3, #584 10132 ldrh r5, [r3] 10133 ldr r3, .L1779+8 10134 ldr r3, [r3] 10135 lsl r2, r5, #2 10136 add r8, r7, r2 10137 tst r3, #1024 10138 beq .L1684 10139 ldr r0, [r1, #1092] 10140 lsl r1, r5, #1 10141 ldr r3, [r7, r5, lsl #2] 10142 ldrh r2, [r7, r2] 10143 ldrh r1, [r0, r1] 10144 ubfx r3, r3, #11, #8 10145 ldr r0, .L1779+24 10146 ubfx r2, r2, #0, #11 10147 str r1, [sp, #12] 10148 ldrb r1, [r8, #3] @ zero_extendqisi2 10149 str r1, [sp, #8] 10150 ldrb r1, [r8, #2] @ zero_extendqisi2 10151 lsr r1, r1, #5 10152 str r1, [sp, #4] 10153 ldrb r1, [r8, #2] @ zero_extendqisi2 10154 ubfx r1, r1, #3, #2 10155 str r1, [sp] 10156 mov r1, r5 10157 bl printk 10158.L1684: 10159 ldrb r3, [r8, #2] @ zero_extendqisi2 10160 tst r3, #8 10161 beq .L1685 10162 ldr r8, .L1779 10163 ldr r2, [r8, #2800] 10164 ldrh r1, [r2, #98] 10165 ldr r2, .L1779+16 10166 ldrh r0, [r2, #-178] 10167 ldr r2, [r7, r5, lsl #2] 10168 ubfx r2, r2, #11, #8 10169 add r2, r2, r0, lsr #2 10170 cmp r1, r2 10171 ble .L1685 10172 and r2, r3, #192 10173 cmp r2, #64 10174 bne .L1686 10175 ldr r3, [r8, #1096] 10176 mov r2, #1 10177 mov r1, #0 10178 add r3, r3, #584 10179 ldrh r0, [r3] 10180 bl gc_add_sblk 10181 ldr r2, .L1779+20 10182 mov r1, #1 10183 movw r3, #2180 10184 strh r1, [r2, r3] @ movhi 10185.L1685: 10186 ldr r3, .L1779+8 10187 ldr r3, [r3] 10188 tst r3, #1024 10189 beq .L1687 10190 ldr r1, .L1779 10191 lsl ip, r4, #2 10192 ldr r2, [r1, #1084] 10193 add r0, r2, ip 10194 ldr r3, [r2, r4, lsl #2] 10195 ldrh r2, [r2, ip] 10196 ldr ip, [r1, #1092] 10197 lsl r1, r4, #1 10198 ubfx r3, r3, #11, #8 10199 ubfx r2, r2, #0, #11 10200 ldrh r1, [ip, r1] 10201 str r1, [sp, #12] 10202 ldrb r1, [r0, #3] @ zero_extendqisi2 10203 str r1, [sp, #8] 10204 ldrb r1, [r0, #2] @ zero_extendqisi2 10205 lsr r1, r1, #5 10206 str r1, [sp, #4] 10207 ldrb r1, [r0, #2] @ zero_extendqisi2 10208 ldr r0, .L1779+28 10209 ubfx r1, r1, #3, #2 10210 str r1, [sp] 10211 mov r1, r4 10212 bl printk 10213.L1687: 10214 ldr r3, .L1779+8 10215 ldr r3, [r3] 10216 tst r3, #1024 10217 beq .L1688 10218 ldr r1, .L1779 10219 lsl ip, r6, #2 10220 ldr r2, [r1, #1084] 10221 add r0, r2, ip 10222 ldr r3, [r2, r6, lsl #2] 10223 ldrh r2, [r2, ip] 10224 ldr ip, [r1, #1092] 10225 lsl r1, r6, #1 10226 ubfx r3, r3, #11, #8 10227 ubfx r2, r2, #0, #11 10228 ldrh r1, [ip, r1] 10229 str r1, [sp, #12] 10230 ldrb r1, [r0, #3] @ zero_extendqisi2 10231 str r1, [sp, #8] 10232 ldrb r1, [r0, #2] @ zero_extendqisi2 10233 lsr r1, r1, #5 10234 str r1, [sp, #4] 10235 ldrb r1, [r0, #2] @ zero_extendqisi2 10236 ldr r0, .L1779+32 10237 ubfx r1, r1, #3, #2 10238 str r1, [sp] 10239 mov r1, r6 10240 bl printk 10241.L1688: 10242 ldr r5, .L1779 10243 ldrh r3, [sp, #16] 10244 ldr r1, [sp, #24] 10245 ldr r4, [r5, #2800] 10246 ldr r0, [sp, #36] 10247 strh r3, [r4, #96] @ movhi 10248 ldrh r3, [sp, #20] 10249 strh r10, [r4, #92] @ movhi 10250 strh fp, [r4, #94] @ movhi 10251 strh r3, [r4, #98] @ movhi 10252 bl __aeabi_uidiv 10253 strh r0, [r4, #88] @ movhi 10254 mov r6, r0 10255 ldr r1, [sp, #28] 10256 ldr r0, [sp, #32] 10257 bl __aeabi_uidiv 10258 strh r0, [r4, #90] @ movhi 10259 ldr r4, .L1779+8 10260 ldr r3, [r4] 10261 tst r3, #1024 10262 beq .L1689 10263 uxth r0, r0 10264 uxth r3, r6 10265 ldr r2, [sp, #28] 10266 str r0, [sp] 10267 ldr r1, [sp, #24] 10268 ldr r0, .L1779+36 10269 bl printk 10270.L1689: 10271 ldr r3, [r4] 10272 ldr r4, .L1779+16 10273 tst r3, #1024 10274 beq .L1690 10275 ldrh r3, [r4, #-178] 10276 mov r2, fp 10277 mov r1, r10 10278 ldr r0, .L1779+40 10279 str r3, [sp, #8] 10280 ldrh r3, [r4, #-180] 10281 str r3, [sp, #4] 10282 ldr r3, [sp, #20] 10283 str r3, [sp] 10284 ldr r3, [sp, #16] 10285 bl printk 10286.L1690: 10287 ldr r3, [sp, #20] 10288 sub r3, r3, fp 10289 str r3, [sp, #24] 10290 ldr r2, [sp, #24] 10291 ldrh r3, [r4, #-178] 10292 cmp r2, r3 10293 bgt .L1691 10294 ldr r3, [sp, #16] 10295 ldrh r2, [r4, #-180] 10296 sub r3, r3, r10 10297 cmp r3, r2 10298 movle r7, #0 10299 movle r5, r7 10300 ble .L1692 10301.L1691: 10302 ldr r3, [r5, #1096] 10303 mov r7, #0 10304 ldr r4, [r3, #580] 10305 ldr r3, [r5, #2800] 10306 mov r5, r7 10307 ldrh r9, [r3, #134] 10308 uxth r4, r4 10309 ldr r3, .L1779+20 10310 add r3, r3, #2176 10311 add r3, r3, #4 10312 str r3, [sp, #20] 10313.L1693: 10314 ldr r3, .L1779+4 10315 ldrh r3, [r3] 10316 cmp r9, r3 10317 bcc .L1703 10318.L1702: 10319 ldr r3, .L1779 10320 ldr r3, [r3, #1096] 10321 str r4, [r3, #580] 10322.L1692: 10323 cmp fp, #0 10324 beq .L1705 10325 ldr r2, .L1779 10326 ldr r4, .L1779+4 10327 ldr r3, [r2, #2800] 10328 mov r0, r2 10329 ldrh r3, [r3, #134] 10330.L1706: 10331 ldrh r2, [r4] 10332 cmp r2, r3 10333 bhi .L1708 10334 ldr r3, [r0, #2800] 10335 ldrh r2, [r3, #72] 10336 add r2, fp, r2 10337 strh r2, [r3, #72] @ movhi 10338 ldrh r2, [r3, #98] 10339 cmp fp, r2 10340 subcc r2, r2, fp 10341 strhcc r2, [r3, #98] @ movhi 10342.L1705: 10343 cmp r10, #0 10344 beq .L1711 10345 ldr r3, .L1779 10346 ldr r6, .L1779+4 10347 ldr r2, [r3, #2800] 10348 mov ip, r3 10349 ldrh r0, [r2, #134] 10350.L1712: 10351 ldrh r3, [r6] 10352 cmp r3, r0 10353 bhi .L1714 10354 ldr r3, [ip, #2800] 10355 ldrh r2, [r3, #74] 10356 add r2, r10, r2 10357 strh r2, [r3, #74] @ movhi 10358 ldrh r2, [r3, #96] 10359 cmp r10, r2 10360 subcc r2, r2, r10 10361 strhcc r2, [r3, #96] @ movhi 10362.L1711: 10363 ldr r4, .L1779+44 10364 mov r1, #0 10365 sub r0, r4, #12 10366 bl _list_get_gc_head_node 10367 movw r2, #65535 10368 cmp r0, r2 10369 beq .L1669 10370 ldr r2, .L1779 10371 lsl r3, r0, #1 10372 ldr r1, [r2, #1092] 10373 ldrh r2, [r4, #-8] 10374 ldrh r3, [r1, r3] 10375 cmp r3, r2, lsr #1 10376 bhi .L1669 10377 add r5, r5, #1 10378 mov r2, #1 10379 mov r1, #0 10380 bl gc_add_sblk 10381.L1669: 10382 add r0, r5, r7 10383.L1664: 10384 add sp, sp, #44 10385 @ sp needed 10386 pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} 10387.L1679: 10388 ldr r0, [r5, #1084] 10389 lsl r1, r7, #2 10390 add ip, r0, r1 10391 ldrb r3, [ip, #2] @ zero_extendqisi2 10392 and r2, r3, #224 10393 cmp r2, #224 10394 beq .L1671 10395 tst r3, #8 10396 beq .L1672 10397 ldrh r2, [r0, r1] 10398 ldr r3, [r0, r1] 10399 ubfx r2, r2, #0, #11 10400 ubfx r3, r3, #11, #8 10401.L1673: 10402 ldr lr, [sp, #24] 10403 cmp r10, r2 10404 add lr, lr, #1 10405 uxth lr, lr 10406 str lr, [sp, #24] 10407 ldr lr, [sp, #36] 10408 add lr, lr, r2 10409 str lr, [sp, #36] 10410 ldrhi r10, [r5, #1096] 10411 movwhi lr, #586 10412 strhhi r7, [r10, lr] @ movhi 10413 movhi r10, r2 10414.L1717: 10415 ldr lr, [sp, #16] 10416 cmp lr, r2 10417 movcc lr, r2 10418 movcc r4, r7 10419 str lr, [sp, #16] 10420 movw lr, #65535 10421 cmp r3, lr 10422 bne .L1675 10423.L1677: 10424 cmp r2, #9 10425 cmphi r3, #9 10426 bhi .L1671 10427 ldr r3, [r9] 10428 tst r3, #256 10429 beq .L1671 10430 ldr r3, [r0, r1] 10431 ldrh r2, [r0, r1] 10432 lsl r1, r7, #1 10433 ldr r0, [r5, #1092] 10434 ubfx r3, r3, #11, #8 10435 ubfx r2, r2, #0, #11 10436 ldrh r1, [r0, r1] 10437 ldr r0, .L1779+48 10438 str r1, [sp, #12] 10439 ldrb r1, [ip, #3] @ zero_extendqisi2 10440 str r1, [sp, #8] 10441 ldrb r1, [ip, #2] @ zero_extendqisi2 10442 lsr r1, r1, #5 10443 str r1, [sp, #4] 10444 ldrb r1, [ip, #2] @ zero_extendqisi2 10445 ubfx r1, r1, #3, #2 10446 str r1, [sp] 10447 mov r1, r7 10448 bl printk 10449.L1671: 10450 add r7, r7, #1 10451 uxth r7, r7 10452 b .L1670 10453.L1672: 10454 tst r3, #24 10455 ldrheq r2, [r0, r1] 10456 movweq r3, #65535 10457 ldrne r3, [r0, r1] 10458 movwne r2, #65535 10459 ubfxeq r2, r2, #0, #11 10460 ubfxne r3, r3, #11, #8 10461 beq .L1673 10462.L1675: 10463 ldr lr, [sp, #28] 10464 cmp fp, r3 10465 movhi fp, r3 10466 add lr, lr, #1 10467 uxth lr, lr 10468 str lr, [sp, #28] 10469 ldr lr, [sp, #32] 10470 add lr, lr, r3 10471 str lr, [sp, #32] 10472 ldrhi lr, [r5, #1096] 10473 addhi lr, lr, #584 10474 strhhi r7, [lr] @ movhi 10475 ldr lr, [sp, #20] 10476 cmp lr, r3 10477 movcc lr, r3 10478 movcc r6, r7 10479 str lr, [sp, #20] 10480 b .L1677 10481.L1683: 10482 tst r2, #224 10483 bne .L1682 10484 ldr r3, [r5, #1096] 10485 movw r8, #590 10486 movw r2, #65535 10487 ldrh r1, [r3, r8] 10488 cmp r1, r2 10489 bne .L1682 10490 movw r7, #586 10491 ldrh r0, [r3, r7] 10492 add r3, r3, #588 10493 ldrh r3, [r3] 10494 cmp r3, r0 10495 beq .L1682 10496 bl zftl_remove_free_node 10497 ldr r3, [r5, #1096] 10498 ldrh r2, [r3, r7] 10499 strh r2, [r3, r8] @ movhi 10500 mvn r2, #0 10501 strh r2, [r3, r7] @ movhi 10502 b .L1682 10503.L1686: 10504 and r3, r3, #248 10505 cmp r3, #16 10506 bne .L1685 10507 ldr r3, [r8, #1096] 10508 add r2, r3, #588 10509 ldrh r1, [r2] 10510 movw r2, #65535 10511 cmp r1, r2 10512 bne .L1685 10513 add r2, r3, #584 10514 ldrh r0, [r2] 10515 movw r2, #590 10516 ldrh r3, [r3, r2] 10517 cmp r3, r0 10518 beq .L1685 10519 bl zftl_remove_free_node 10520 ldr r3, [r8, #1096] 10521 add r2, r3, #588 10522 add r3, r3, #584 10523 ldrh r1, [r3] 10524 strh r1, [r2] @ movhi 10525 mvn r2, #0 10526 strh r2, [r3] @ movhi 10527 b .L1685 10528.L1703: 10529 add r4, r4, #1 10530 uxth r4, r4 10531 cmp r3, r4 10532 ldr r3, .L1779 10533 movls r4, #0 10534 lsl r6, r4, #2 10535 ldr r8, [r3, #1084] 10536 add r2, r8, r6 10537 ldrb r2, [r2, #2] @ zero_extendqisi2 10538 and ip, r2, #224 10539 and r1, r2, #192 10540 cmp r1, #0 10541 cmpne ip, #224 10542 beq .L1695 10543 ubfx r2, r2, #3, #2 10544 ldr r0, .L1779+16 10545 ands r1, r2, #1 10546 beq .L1696 10547 cmp ip, #160 10548.L1777: 10549 bne .L1698 10550 ldrh r2, [r0, #-178] 10551 ldr r0, [sp, #24] 10552 cmp r0, r2 10553 ble .L1699 10554 ldr r2, [r8, r6] 10555 ubfx r2, r2, #11, #8 10556 cmp r2, fp 10557 bls .L1700 10558 cmp r1, #0 10559 beq .L1699 10560 ldrh r2, [r8, r6] 10561 ubfx r2, r2, #0, #11 10562 cmp r2, r10 10563 bgt .L1699 10564.L1700: 10565 mov r2, #1 10566 mov r1, #0 10567 mov r0, r4 10568 str r3, [sp, #28] 10569 bl gc_add_sblk 10570 ldr r3, [sp, #20] 10571 mov r2, #1 10572 add r5, r5, r2 10573 strh r2, [r3] @ movhi 10574 ldr r2, .L1779+8 10575 ldr r3, [sp, #28] 10576 ldr r2, [r2] 10577 tst r2, #1024 10578 beq .L1699 10579 ldr r1, [r3, #1092] 10580 lsl r2, r4, #1 10581 ldr r3, [r3, #1084] 10582 ldrh r0, [r1, r2] 10583 ldr r1, [r8, r6] 10584 add r3, r3, r6 10585 ldrb r2, [r3, #2] @ zero_extendqisi2 10586 ldr r3, .L1779+20 10587 ubfx r1, r1, #11, #8 10588 str r1, [sp, #8] 10589 ldrh r1, [r8, r6] 10590 lsr r2, r2, #5 10591 ubfx r1, r1, #0, #11 10592 str r1, [sp, #4] 10593 mov r1, r4 10594 ldrh r3, [r3, #52] 10595 str r3, [sp] 10596 mov r3, r0 10597 ldr r0, .L1779+52 10598.L1778: 10599 bl printk 10600.L1699: 10601 cmp r7, #4 10602 cmpls r5, #4 10603 bhi .L1702 10604.L1695: 10605 add r9, r9, #1 10606 uxth r9, r9 10607 b .L1693 10608.L1696: 10609 cmp r2, #2 10610 b .L1777 10611.L1698: 10612 ldr r2, [sp, #16] 10613 ldrh r0, [r0, #-180] 10614 sub r2, r2, r10 10615 cmp r2, r0 10616 ble .L1699 10617 ldrh r2, [r8, r6] 10618 add r0, r10, #8 10619 ubfx r2, r2, #0, #11 10620 cmp r2, r0 10621 ble .L1701 10622 cmp r1, #0 10623 beq .L1699 10624 ldr r2, [r8, r6] 10625 add r1, fp, #4 10626 ubfx r2, r2, #11, #8 10627 cmp r2, r1 10628 bgt .L1699 10629.L1701: 10630 mov r2, #1 10631 mov r1, #0 10632 mov r0, r4 10633 str r3, [sp, #28] 10634 bl gc_add_sblk 10635 ldr r3, [sp, #20] 10636 mov r2, #1 10637 add r7, r7, r2 10638 strh r2, [r3] @ movhi 10639 ldr r2, .L1779+8 10640 ldr r3, [sp, #28] 10641 ldr r2, [r2] 10642 tst r2, #1024 10643 beq .L1699 10644 ldr r1, [r3, #1092] 10645 lsl r2, r4, #1 10646 ldr r3, [r3, #1084] 10647 ldrh r0, [r1, r2] 10648 ldr r1, [r8, r6] 10649 add r3, r3, r6 10650 ldrb r2, [r3, #2] @ zero_extendqisi2 10651 ldr r3, .L1779+20 10652 ubfx r1, r1, #11, #8 10653 str r1, [sp, #8] 10654 ldrh r1, [r8, r6] 10655 lsr r2, r2, #5 10656 ubfx r1, r1, #0, #11 10657 str r1, [sp, #4] 10658 mov r1, r4 10659 ldrh r3, [r3, #52] 10660 str r3, [sp] 10661 mov r3, r0 10662 ldr r0, .L1779+56 10663 b .L1778 10664.L1708: 10665 ldr ip, [r0, #1084] 10666 lsl lr, r3, #2 10667 ldr r2, [ip, r3, lsl #2] 10668 add r6, ip, lr 10669 ubfx r1, r2, #11, #8 10670 cmp fp, r1 10671 bhi .L1707 10672 ldrb r6, [r6, #2] @ zero_extendqisi2 10673 tst r6, #24 10674 subne r1, r1, fp 10675 bfine r2, r1, #11, #8 10676 strne r2, [ip, lr] 10677.L1707: 10678 add r3, r3, #1 10679 uxth r3, r3 10680 b .L1706 10681.L1714: 10682 ldr r4, [ip, #1084] 10683 lsl lr, r0, #2 10684 ldrh r3, [r4, lr] 10685 add r1, r4, lr 10686 ubfx r2, r3, #0, #11 10687 cmp r2, r10 10688 blt .L1713 10689 ldrb r1, [r1, #2] @ zero_extendqisi2 10690 and r1, r1, #24 10691 cmp r1, #16 10692 subne r2, r2, r10 10693 bfine r3, r2, #0, #11 10694 strhne r3, [r4, lr] @ movhi 10695.L1713: 10696 add r0, r0, #1 10697 uxth r0, r0 10698 b .L1712 10699.L1780: 10700 .align 2 10701.L1779: 10702 .word .LANCHOR0 10703 .word .LANCHOR0+1080 10704 .word .LANCHOR2 10705 .word .LC124 10706 .word .LANCHOR3 10707 .word .LANCHOR0+2824 10708 .word .LC125 10709 .word .LC126 10710 .word .LC127 10711 .word .LC128 10712 .word .LC129 10713 .word .LANCHOR3-3088 10714 .word .LC123 10715 .word .LC130 10716 .word .LC131 10717 .fnend 10718 .size gc_static_wearleveling, .-gc_static_wearleveling 10719 .align 2 10720 .global zftl_sblk_list_init 10721 .syntax unified 10722 .arm 10723 .fpu softvfp 10724 .type zftl_sblk_list_init, %function 10725zftl_sblk_list_init: 10726 .fnstart 10727 @ args = 0, pretend = 0, frame = 16 10728 @ frame_needed = 0, uses_anonymous_args = 0 10729 push {r4, r5, r6, r7, r8, r9, r10, fp, lr} 10730 .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} 10731 movw r3, #1080 10732 ldr r4, .L1813 10733 mov r2, #6 10734 mov r1, #0 10735 .pad #20 10736 sub sp, sp, #20 10737 ldr r7, .L1813+4 10738 mov r5, #0 10739 ldrh r3, [r4, r3] 10740 add r10, r4, #2784 10741 ldr r0, [r4, #1036] 10742 sub r8, r7, #3072 10743 sub r9, r7, #3104 10744 mul r2, r2, r3 10745 bl ftl_memset 10746 mov r3, #32 10747 ldrh r1, [r9, #-14] 10748 strh r3, [r8, #-4] @ movhi 10749 movw r3, #2786 10750 strh r5, [r4, r3] @ movhi 10751 movw r3, #2788 10752 strh r5, [r4, r3] @ movhi 10753 movw r3, #2790 10754 strh r5, [r4, r3] @ movhi 10755 movw r3, #2794 10756 strh r5, [r4, r3] @ movhi 10757 movw r3, #2792 10758 strh r5, [r4, r3] @ movhi 10759 mov r0, #32768 10760 ldrb r3, [r7, #-3127] @ zero_extendqisi2 10761 str r5, [r7, #-3088] 10762 str r5, [r7, #-3084] 10763 str r5, [r7, #-3080] 10764 mul r1, r1, r3 10765 str r5, [r7, #-3104] 10766 str r5, [r7, #-3116] 10767 str r5, [r7, #-3100] 10768 strh r5, [r10] @ movhi 10769 bl __aeabi_idiv 10770 sxth r3, r0 10771 str r7, [sp, #8] 10772 str r10, [sp, #12] 10773 str r3, [sp, #4] 10774 ldr r3, [r4, #2800] 10775 ldrsh r6, [r3, #134] 10776 strh r5, [r3, #146] @ movhi 10777.L1782: 10778 ldr r3, .L1813+8 10779 ldrh r3, [r3] 10780 cmp r6, r3 10781 blt .L1799 10782 ldr r2, [sp, #12] 10783 ldr r3, [r4, #2800] 10784 ldrh r2, [r2] 10785 strh r2, [r3, #114] @ movhi 10786 movw r2, #2786 10787 ldrh r2, [r4, r2] 10788 strh r2, [r3, #118] @ movhi 10789 movw r2, #2788 10790 ldrh r2, [r4, r2] 10791 strh r2, [r3, #116] @ movhi 10792 movw r2, #2790 10793 ldrh r2, [r4, r2] 10794 strh r2, [r3, #122] @ movhi 10795 movw r2, #2794 10796 ldrh r2, [r4, r2] 10797 strh r2, [r3, #120] @ movhi 10798 movw r2, #2792 10799 ldrh r2, [r4, r2] 10800 strh r2, [r3, #124] @ movhi 10801 add sp, sp, #20 10802 @ sp needed 10803 pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} 10804.L1799: 10805 ldr r7, [r4, #1084] 10806 add r7, r7, r6, lsl #2 10807 ldrb r3, [r7, #3] @ zero_extendqisi2 10808 cmp r3, #0 10809 ldreq r1, [sp, #4] 10810 beq .L1783 10811 ldr r3, [sp, #8] 10812 ldr ip, [r4, #2800] 10813 ldrh r10, [r9, #-14] 10814 ldrb lr, [r3, #-3127] @ zero_extendqisi2 10815 mov r3, #0 10816 mov r1, r3 10817.L1784: 10818 cmp r3, lr 10819 blt .L1787 10820 cmp r1, #0 10821 beq .L1788 10822 mov r0, #32768 10823 bl __aeabi_idiv 10824 add r1, r0, #1 10825 sxth r1, r1 10826.L1783: 10827 lsl fp, r6, #1 10828 ldr r0, [r4, #1036] 10829 add r2, fp, r6 10830 lsl r2, r2, #1 10831 add ip, r0, r2 10832 strh r1, [ip, #4] @ movhi 10833 mvn r1, #0 10834 strh r1, [ip, #2] @ movhi 10835 strh r1, [r0, r2] @ movhi 10836 ldrb r2, [r7, #2] @ zero_extendqisi2 10837 and r2, r2, #224 10838 cmp r2, #224 10839 cmpne r2, #32 10840 moveq r10, #1 10841 movne r10, #0 10842 beq .L1789 10843 ldr r1, [r4, #1096] 10844 ldrh r0, [r1, #16] 10845 cmp r6, r0 10846 beq .L1789 10847 ldrh r0, [r1, #48] 10848 cmp r6, r0 10849 beq .L1789 10850 ldrh r1, [r1, #80] 10851 cmp r6, r1 10852 beq .L1789 10853 cmp r2, #64 10854 bne .L1790 10855 uxth r7, r6 10856 ldr r2, .L1813+12 10857 sub r0, r9, #12 10858 mov r1, r7 10859.L1811: 10860 bl _insert_data_list 10861 ldr r2, [r4, #1092] 10862 ldrh r3, [r2, fp] 10863 cmp r3, #7 10864 movls r2, r10 10865 movls r1, #1 10866 movls r0, r7 10867 bls .L1809 10868.L1789: 10869 add r6, r6, #1 10870 sxth r6, r6 10871 b .L1782 10872.L1787: 10873 ldrb r2, [r7, #3] @ zero_extendqisi2 10874 asr r2, r2, r3 10875 add r3, r3, #1 10876 tst r2, #1 10877 ldrhne r2, [ip, #146] 10878 addeq r1, r10, r1 10879 sxtheq r1, r1 10880 addne r2, r2, #1 10881 strhne r2, [ip, #146] @ movhi 10882 b .L1784 10883.L1788: 10884 ldrb r3, [r7, #2] @ zero_extendqisi2 10885 mvn r0, #0 10886 orr r3, r3, #224 10887 strb r3, [r7, #2] 10888 lsl r3, r6, #1 10889 ldr r2, [r4, #1092] 10890 strh r0, [r2, r3] @ movhi 10891 b .L1783 10892.L1790: 10893 cmp r2, #96 10894 uxtheq r7, r6 10895 ldreq r2, .L1813+16 10896 ldreq r0, .L1813+20 10897 moveq r1, r7 10898 beq .L1811 10899.L1791: 10900 cmp r2, #160 10901 uxtheq r7, r6 10902 ldreq r2, .L1813+24 10903 ldreq r0, .L1813+28 10904 moveq r1, r7 10905 beq .L1811 10906.L1792: 10907 cmp r2, #0 10908 bne .L1789 10909 ldr r2, [r4, #1092] 10910 uxth r10, r6 10911 ldrh r2, [r2, fp] 10912 cmp r2, #0 10913 beq .L1793 10914 cmp r5, #2 10915 bgt .L1794 10916 mov r1, r6 10917 ldr r0, .L1813+32 10918 bl printk 10919 ldrb r3, [r7, #2] @ zero_extendqisi2 10920 add r5, r5, #1 10921 sxth r5, r5 10922 mov r1, #1 10923 mov r0, r10 10924 tst r3, #16 10925 movne r2, #5 10926 moveq r2, #2 10927 bfi r3, r2, #5, #3 10928 mov r2, #0 10929 strb r3, [r7, #2] 10930.L1809: 10931 bl gc_add_sblk 10932 b .L1789 10933.L1794: 10934 mov r2, #656 10935 ldr r1, .L1813+36 10936 ldr r0, .L1813+40 10937 bl printk 10938 bl dump_stack 10939.L1793: 10940 ldrb r3, [r7, #2] @ zero_extendqisi2 10941 ands r3, r3, #24 10942 bne .L1797 10943 ldr r2, .L1813+44 10944 mov r1, r10 10945 ldr r0, .L1813+48 10946.L1807: 10947 bl _insert_free_list 10948 b .L1789 10949.L1797: 10950 cmp r3, #16 10951 ldreq r2, .L1813+52 10952 moveq r1, r10 10953 subeq r0, r8, #12 10954 ldrne r2, .L1813+56 10955 movne r1, r10 10956 subne r0, r8, #8 10957 b .L1807 10958.L1814: 10959 .align 2 10960.L1813: 10961 .word .LANCHOR0 10962 .word .LANCHOR3 10963 .word .LANCHOR0+1080 10964 .word .LANCHOR0+2790 10965 .word .LANCHOR0+2792 10966 .word .LANCHOR3-3104 10967 .word .LANCHOR0+2794 10968 .word .LANCHOR3-3100 10969 .word .LC132 10970 .word .LANCHOR1+1687 10971 .word .LC0 10972 .word .LANCHOR0+2784 10973 .word .LANCHOR3-3088 10974 .word .LANCHOR0+2786 10975 .word .LANCHOR0+2788 10976 .fnend 10977 .size zftl_sblk_list_init, .-zftl_sblk_list_init 10978 .align 2 10979 .global pm_free_sblk 10980 .syntax unified 10981 .arm 10982 .fpu softvfp 10983 .type pm_free_sblk, %function 10984pm_free_sblk: 10985 .fnstart 10986 @ args = 0, pretend = 0, frame = 272 10987 @ frame_needed = 0, uses_anonymous_args = 0 10988 push {r4, r5, r6, r7, r8, r9, r10, fp, lr} 10989 .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} 10990 .pad #284 10991 sub sp, sp, #284 10992 ldr r5, .L1843 10993 ldrh r3, [r5, #-176] 10994 cmp r3, #128 10995 bls .L1816 10996 mov r2, #94 10997 ldr r1, .L1843+4 10998 ldr r0, .L1843+8 10999 bl printk 11000 bl dump_stack 11001.L1816: 11002 ldr r4, .L1843+12 11003 mov r2, #0 11004 ldrh ip, [r5, #-176] 11005 movw lr, #65535 11006 ldr r1, [r4, #2800] 11007 add r3, r1, #688 11008 add r1, r1, #416 11009 ldrh r0, [r3] 11010 mov r3, r2 11011.L1819: 11012 ldrh r6, [r1], #2 11013 cmp r6, lr 11014 addne r2, r2, #1 11015 uxthne r2, r2 11016 cmp r2, r0 11017 bcs .L1818 11018 cmp r2, ip 11019 bcs .L1818 11020 add r3, r3, #1 11021 uxth r3, r3 11022 cmp r3, #128 11023 bne .L1819 11024.L1818: 11025 add r3, r3, #1 11026 mov r2, #256 11027 uxth fp, r3 11028 mov r1, #0 11029 add r0, sp, #24 11030 cmp fp, #129 11031 mov r6, #0 11032 moveq fp, #128 11033 bl ftl_memset 11034 ldr r7, [r4, #2800] 11035 movw r3, #698 11036 ldrb r8, [r4, #1153] @ zero_extendqisi2 11037 ldrb r2, [r5, #-3136] @ zero_extendqisi2 11038 ldrh r3, [r7, r3] 11039 add r10, r7, #704 11040 rsb r8, r8, #24 11041 str r3, [sp, #12] 11042 ldr r3, .L1843+16 11043 ldrh r9, [r3, #-2] 11044 sub r3, r8, r9 11045 mvn r8, #0 11046 mvn r8, r8, lsl r3 11047.L1821: 11048 ldr r1, [sp, #12] 11049 uxth r3, r6 11050 cmp r1, r3 11051 bhi .L1824 11052 ldr r3, .L1843+20 11053 add r8, sp, #24 11054 ldrb r7, [r5, #-3127] @ zero_extendqisi2 11055 movw r10, #65535 11056 mov r6, #0 11057 ldrh r3, [r3, #-8] 11058 str r6, [sp, #12] 11059 smulbb r7, r7, r3 11060 uxth r7, r7 11061.L1830: 11062 ldr r2, [r4, #2800] 11063 add r3, r6, #208 11064 lsl r3, r3, #1 11065 ldrb r1, [r5, #-3136] @ zero_extendqisi2 11066 uxth r9, r6 11067 ldrh r3, [r2, r3] 11068 add r0, r2, #692 11069 ldrh r0, [r0] 11070 str r2, [sp, #16] 11071 str r3, [sp, #20] 11072 bl __aeabi_idiv 11073 ldr r3, [sp, #20] 11074 ldr r2, [sp, #16] 11075 cmp r0, r3 11076 ldreq r0, .L1843+24 11077 ldrbeq r1, [r5, #-3127] @ zero_extendqisi2 11078 ldrheq r0, [r0] 11079 smulbbeq r1, r1, r0 11080 strheq r1, [r8] @ movhi 11081 ldrh r1, [r8] 11082 ldrh ip, [r2, #74] 11083 cmp r1, #0 11084 cmpne r1, r7 11085 movcc r0, #1 11086 movcs r0, #0 11087 cmp r0, #0 11088 ldr r0, [sp, #12] 11089 movne r0, r9 11090 movne r7, r1 11091 str r0, [sp, #16] 11092 str r0, [sp, #12] 11093 movw r0, #65535 11094 cmp r3, r0 11095 cmpne ip, #2 11096 bls .L1827 11097 ldr ip, [r4, #1084] 11098 lsl r0, r3, #2 11099 ldrh r2, [r2, #92] 11100 ldrh r0, [ip, r0] 11101 add r2, r2, #4 11102 ubfx r0, r0, #0, #11 11103 cmp r0, r2 11104 bgt .L1827 11105 mov r10, r9 11106 str r0, [sp] 11107 mov r2, r1 11108 ldr r0, .L1843+28 11109 mov r1, r6 11110 bl printk 11111.L1827: 11112 ldrh r2, [r8] 11113 cmp r2, #0 11114 bne .L1828 11115 ldr r1, [r4, #2800] 11116 add r9, r6, #208 11117 lsl r3, r9, #1 11118 movw r0, #65535 11119 ldrh r3, [r1, r3] 11120 cmp r3, r0 11121 beq .L1828 11122 ldr r0, .L1843+32 11123 ldr r0, [r0] 11124 tst r0, #4096 11125 beq .L1829 11126 add r1, r1, #688 11127 ldr r0, .L1843+36 11128 ldrh r1, [r1] 11129 str r1, [sp] 11130 mov r1, r6 11131 bl printk 11132.L1829: 11133 ldr r3, [r4, #2800] 11134 lsl r9, r9, #1 11135 ldrh r0, [r3, r9] 11136 bl ftl_free_sblk 11137 ldr r3, [r4, #2800] 11138 mvn r2, #0 11139 strh r2, [r3, r9] @ movhi 11140 add r3, r3, #688 11141 ldrh r2, [r3] 11142 sub r2, r2, #1 11143 strh r2, [r3] @ movhi 11144.L1828: 11145 add r6, r6, #1 11146 add r8, r8, #2 11147 uxth r3, r6 11148 cmp fp, r3 11149 bhi .L1830 11150 ldr r3, [sp, #16] 11151 movw r0, #65535 11152 cmp r10, r0 11153 movne r3, r10 11154 mov r0, r3 11155 add sp, sp, #284 11156 @ sp needed 11157 pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} 11158.L1824: 11159 ldr r0, [r10], #4 11160 mov r1, r2 11161 str r2, [sp, #16] 11162 and r0, r8, r0, lsr r9 11163 bl __aeabi_uidiv 11164 ldr r2, [sp, #16] 11165 uxth r0, r0 11166 add lr, r7, #416 11167 add r1, sp, #24 11168 mov r3, #0 11169.L1823: 11170 ldrh ip, [lr], #2 11171 add r3, r3, #1 11172 uxth r3, r3 11173 add r1, r1, #2 11174 cmp r0, ip 11175 ldrheq ip, [r1, #-2] 11176 addeq ip, ip, #1 11177 strheq ip, [r1, #-2] @ movhi 11178 cmp fp, r3 11179 bne .L1823 11180 add r6, r6, #1 11181 b .L1821 11182.L1844: 11183 .align 2 11184.L1843: 11185 .word .LANCHOR3 11186 .word .LANCHOR1+1707 11187 .word .LC0 11188 .word .LANCHOR0 11189 .word .LANCHOR3-3136 11190 .word .LANCHOR3-3088 11191 .word .LANCHOR3-3096 11192 .word .LC133 11193 .word .LANCHOR2 11194 .word .LC134 11195 .fnend 11196 .size pm_free_sblk, .-pm_free_sblk 11197 .align 2 11198 .global ftl_memcpy 11199 .syntax unified 11200 .arm 11201 .fpu softvfp 11202 .type ftl_memcpy, %function 11203ftl_memcpy: 11204 .fnstart 11205 @ args = 0, pretend = 0, frame = 0 11206 @ frame_needed = 0, uses_anonymous_args = 0 11207 @ link register save eliminated. 11208 b memcpy 11209 .fnend 11210 .size ftl_memcpy, .-ftl_memcpy 11211 .align 2 11212 .global flash_info_data_init 11213 .syntax unified 11214 .arm 11215 .fpu softvfp 11216 .type flash_info_data_init, %function 11217flash_info_data_init: 11218 .fnstart 11219 @ args = 0, pretend = 0, frame = 0 11220 @ frame_needed = 0, uses_anonymous_args = 0 11221 ldr r3, .L1852 11222 push {r4, lr} 11223 .save {r4, lr} 11224 ldr r3, [r3] 11225 tst r3, #4096 11226 beq .L1847 11227 ldr r2, .L1852+4 11228 mov r1, #120 11229 ldr r0, .L1852+8 11230 bl printk 11231.L1847: 11232 ldr r4, .L1852+12 11233 mov r2, #2048 11234 mov r1, #0 11235 ldr r0, [r4, #1040] 11236 bl ftl_memset 11237 ldr r3, [r4, #1040] 11238 ldr r2, .L1852+16 11239 ldr r1, .L1852+20 11240 str r2, [r3] 11241 mov r3, #2032 11242 ldr r0, [r4, #1040] 11243 mov r2, #32 11244 str r3, [r0, #8] 11245 mov r3, #1 11246 strh r3, [r0, #16] @ movhi 11247 add r0, r0, #80 11248 bl ftl_memcpy 11249 ldr r0, [r4, #1040] 11250 mov r2, #32 11251 ldr r1, .L1852+24 11252 pop {r4, lr} 11253 add r0, r0, #48 11254 b ftl_memcpy 11255.L1853: 11256 .align 2 11257.L1852: 11258 .word .LANCHOR2 11259 .word .LANCHOR1+1720 11260 .word .LC135 11261 .word .LANCHOR0 11262 .word 1398362953 11263 .word .LANCHOR0+1111 11264 .word .LANCHOR2+4 11265 .fnend 11266 .size flash_info_data_init, .-flash_info_data_init 11267 .align 2 11268 .global ftl_memcpy32 11269 .syntax unified 11270 .arm 11271 .fpu softvfp 11272 .type ftl_memcpy32, %function 11273ftl_memcpy32: 11274 .fnstart 11275 @ args = 0, pretend = 0, frame = 0 11276 @ frame_needed = 0, uses_anonymous_args = 0 11277 @ link register save eliminated. 11278 mov r3, #0 11279.L1855: 11280 cmp r3, r2 11281 bne .L1856 11282 bx lr 11283.L1856: 11284 ldr ip, [r1, r3, lsl #2] 11285 str ip, [r0, r3, lsl #2] 11286 add r3, r3, #1 11287 b .L1855 11288 .fnend 11289 .size ftl_memcpy32, .-ftl_memcpy32 11290 .align 2 11291 .global ftl_memcmp 11292 .syntax unified 11293 .arm 11294 .fpu softvfp 11295 .type ftl_memcmp, %function 11296ftl_memcmp: 11297 .fnstart 11298 @ args = 0, pretend = 0, frame = 0 11299 @ frame_needed = 0, uses_anonymous_args = 0 11300 @ link register save eliminated. 11301 b memcmp 11302 .fnend 11303 .size ftl_memcmp, .-ftl_memcmp 11304 .align 2 11305 .global timer_get_time 11306 .syntax unified 11307 .arm 11308 .fpu softvfp 11309 .type timer_get_time, %function 11310timer_get_time: 11311 .fnstart 11312 @ args = 0, pretend = 0, frame = 0 11313 @ frame_needed = 0, uses_anonymous_args = 0 11314 @ link register save eliminated. 11315 ldr r3, .L1859 11316 ldr r0, [r3] 11317 ldr r3, .L1859+4 11318 ldr r3, [r3, #-168] 11319 sub r0, r0, r3 11320 b jiffies_to_msecs 11321.L1860: 11322 .align 2 11323.L1859: 11324 .word jiffies 11325 .word .LANCHOR3 11326 .fnend 11327 .size timer_get_time, .-timer_get_time 11328 .align 2 11329 .global StorageSysDataLoad 11330 .syntax unified 11331 .arm 11332 .fpu softvfp 11333 .type StorageSysDataLoad, %function 11334StorageSysDataLoad: 11335 .fnstart 11336 @ args = 0, pretend = 0, frame = 0 11337 @ frame_needed = 0, uses_anonymous_args = 0 11338 push {r4, r5, r6, lr} 11339 .save {r4, r5, r6, lr} 11340 mov r4, r1 11341 mov r5, r0 11342 mov r2, #512 11343 mov r1, #0 11344 mov r0, r4 11345 bl ftl_memset 11346 bl rknand_device_lock 11347 ldr r3, .L1863 11348 mov r2, r4 11349 mov r1, #1 11350 mov r0, r5 11351 ldr r3, [r3, #-160] 11352 ldr r3, [r3, #12] 11353 blx r3 11354 mov r4, r0 11355 bl rknand_device_unlock 11356 mov r0, r4 11357 pop {r4, r5, r6, pc} 11358.L1864: 11359 .align 2 11360.L1863: 11361 .word .LANCHOR3 11362 .fnend 11363 .size StorageSysDataLoad, .-StorageSysDataLoad 11364 .align 2 11365 .global StorageSysDataStore 11366 .syntax unified 11367 .arm 11368 .fpu softvfp 11369 .type StorageSysDataStore, %function 11370StorageSysDataStore: 11371 .fnstart 11372 @ args = 0, pretend = 0, frame = 0 11373 @ frame_needed = 0, uses_anonymous_args = 0 11374 push {r4, r5, r6, lr} 11375 .save {r4, r5, r6, lr} 11376 mov r5, r1 11377 mov r4, r0 11378 bl rknand_device_lock 11379 ldr r3, .L1867 11380 mov r2, r5 11381 mov r1, #1 11382 mov r0, r4 11383 ldr r3, [r3, #-160] 11384 ldr r3, [r3, #16] 11385 blx r3 11386 mov r4, r0 11387 bl rknand_device_unlock 11388 mov r0, r4 11389 pop {r4, r5, r6, pc} 11390.L1868: 11391 .align 2 11392.L1867: 11393 .word .LANCHOR3 11394 .fnend 11395 .size StorageSysDataStore, .-StorageSysDataStore 11396 .align 2 11397 .global FlashBootVendorRead 11398 .syntax unified 11399 .arm 11400 .fpu softvfp 11401 .type FlashBootVendorRead, %function 11402FlashBootVendorRead: 11403 .fnstart 11404 @ args = 0, pretend = 0, frame = 0 11405 @ frame_needed = 0, uses_anonymous_args = 0 11406 push {r4, r5, r6, lr} 11407 .save {r4, r5, r6, lr} 11408 mov r4, r0 11409 mov r5, r1 11410 mov r6, r2 11411 bl rknand_device_lock 11412 ldr r3, .L1871 11413 mov r2, r6 11414 mov r1, r5 11415 mov r0, r4 11416 ldr r3, [r3, #-160] 11417 ldr r3, [r3, #4] 11418 blx r3 11419 mov r4, r0 11420 bl rknand_device_unlock 11421 mov r0, r4 11422 pop {r4, r5, r6, pc} 11423.L1872: 11424 .align 2 11425.L1871: 11426 .word .LANCHOR3 11427 .fnend 11428 .size FlashBootVendorRead, .-FlashBootVendorRead 11429 .align 2 11430 .global FlashBootVendorWrite 11431 .syntax unified 11432 .arm 11433 .fpu softvfp 11434 .type FlashBootVendorWrite, %function 11435FlashBootVendorWrite: 11436 .fnstart 11437 @ args = 0, pretend = 0, frame = 0 11438 @ frame_needed = 0, uses_anonymous_args = 0 11439 push {r4, r5, r6, lr} 11440 .save {r4, r5, r6, lr} 11441 mov r4, r0 11442 mov r5, r1 11443 mov r6, r2 11444 bl rknand_device_lock 11445 ldr r3, .L1875 11446 mov r2, r6 11447 mov r1, r5 11448 mov r0, r4 11449 ldr r3, [r3, #-160] 11450 ldr r3, [r3, #8] 11451 blx r3 11452 mov r4, r0 11453 bl rknand_device_unlock 11454 mov r0, r4 11455 pop {r4, r5, r6, pc} 11456.L1876: 11457 .align 2 11458.L1875: 11459 .word .LANCHOR3 11460 .fnend 11461 .size FlashBootVendorWrite, .-FlashBootVendorWrite 11462 .align 2 11463 .global flash_sram_load_store 11464 .syntax unified 11465 .arm 11466 .fpu softvfp 11467 .type flash_sram_load_store, %function 11468flash_sram_load_store: 11469 .fnstart 11470 @ args = 0, pretend = 0, frame = 0 11471 @ frame_needed = 0, uses_anonymous_args = 0 11472 ldr ip, .L1882 11473 cmp r2, #0 11474 moveq r2, r3 11475 ldr ip, [ip, #-156] 11476 add ip, ip, #4096 11477 add ip, ip, r1 11478 moveq r1, ip 11479 strne lr, [sp, #-4]! 11480 .save {lr} 11481 movne r1, r0 11482 ldrne lr, [sp], #4 11483 movne r2, r3 11484 movne r0, ip 11485.L1881: 11486 b ftl_memcpy 11487.L1883: 11488 .align 2 11489.L1882: 11490 .word .LANCHOR3 11491 .fnend 11492 .size flash_sram_load_store, .-flash_sram_load_store 11493 .align 2 11494 .global FlashCs123Init 11495 .syntax unified 11496 .arm 11497 .fpu softvfp 11498 .type FlashCs123Init, %function 11499FlashCs123Init: 11500 .fnstart 11501 @ args = 0, pretend = 0, frame = 0 11502 @ frame_needed = 0, uses_anonymous_args = 0 11503 @ link register save eliminated. 11504 bx lr 11505 .fnend 11506 .size FlashCs123Init, .-FlashCs123Init 11507 .align 2 11508 .global ftl_dma32_malloc 11509 .syntax unified 11510 .arm 11511 .fpu softvfp 11512 .type ftl_dma32_malloc, %function 11513ftl_dma32_malloc: 11514 .fnstart 11515 @ args = 0, pretend = 0, frame = 0 11516 @ frame_needed = 0, uses_anonymous_args = 0 11517 cmp r0, #8192 11518 ble .L1886 11519 b ftl_malloc 11520.L1886: 11521 push {r4, r5, r6, lr} 11522 .save {r4, r5, r6, lr} 11523 add r4, r0, #63 11524 ldr r5, .L1890 11525 bic r4, r4, #63 11526 ldr r3, [r5, #-152] 11527 cmp r4, r3 11528 ble .L1887 11529 mov r0, #16384 11530 bl ftl_malloc 11531 mov r3, #16384 11532 str r0, [r5, #-148] 11533 str r3, [r5, #-152] 11534.L1887: 11535 ldr r3, [r5, #-152] 11536 ldr r0, [r5, #-148] 11537 sub r3, r3, r4 11538 add r4, r0, r4 11539 str r3, [r5, #-152] 11540 str r4, [r5, #-148] 11541 pop {r4, r5, r6, pc} 11542.L1891: 11543 .align 2 11544.L1890: 11545 .word .LANCHOR3 11546 .fnend 11547 .size ftl_dma32_malloc, .-ftl_dma32_malloc 11548 .align 2 11549 .global nandc_init 11550 .syntax unified 11551 .arm 11552 .fpu softvfp 11553 .type nandc_init, %function 11554nandc_init: 11555 .fnstart 11556 @ args = 0, pretend = 0, frame = 8 11557 @ frame_needed = 0, uses_anonymous_args = 0 11558 push {r0, r1, r2, r3, r4, r5, r6, lr} 11559 .save {r4, r5, r6, lr} 11560 .pad #16 11561 mov r3, #0 11562 ldr r5, .L1912 11563 mov r6, r0 11564 str r3, [sp, #12] 11565 ldr r3, [r5] 11566 tst r3, #4096 11567 beq .L1893 11568 mov r2, r0 11569 ldr r1, .L1912+4 11570 ldr r0, .L1912+8 11571 bl printk 11572.L1893: 11573 ldr r4, .L1912+12 11574 mov r3, #6 11575 ldr r2, [r6, #352] 11576 strb r3, [r4, #1028] 11577 ldr r3, .L1912+16 11578 str r6, [r4, #1044] 11579 cmp r2, r3 11580 ldr r2, [r6, #128] 11581 moveq r3, #8 11582 strbeq r3, [r4, #1028] 11583 ldr r3, .L1912+20 11584 cmp r2, r3 11585 ldr r2, .L1912+24 11586 moveq r3, #9 11587 strbeq r3, [r4, #1028] 11588 ldrb r3, [r4, #1028] @ zero_extendqisi2 11589 cmp r3, #9 11590 bne .L1896 11591 mov r3, #1 11592 mov r1, #2 11593 strb r3, [r4, #1195] 11594 ldr r3, [sp, #12] 11595 orr r3, r3, #256 11596 str r3, [sp, #12] 11597 ldr r3, [sp, #12] 11598 bfi r3, r1, #18, #3 11599 str r3, [sp, #12] 11600 ldr r3, [sp, #12] 11601 str r3, [r6] 11602 mov r3, #0 11603 ldr r0, [r4, #1044] 11604 str r3, [r0, #520] 11605 movw r3, #4161 11606 str r3, [r0, #4] 11607 movw r3, #8321 11608 str r3, [r0, #8] 11609 mov r3, #38 11610 str r2, [r0, #80] 11611 str r3, [r0, #84] 11612 mov r3, #39 11613 str r3, [r0, #84] 11614 ldr r3, [r5] 11615 tst r3, #4096 11616 beq .L1898 11617 ldr r1, [r0] 11618 ldr r2, [r0, #8] 11619 ldr r3, [r0, #80] 11620 ldr ip, [r0, #84] 11621 ldr r0, [r0, #88] 11622.L1911: 11623 str r0, [sp, #4] 11624 str ip, [sp] 11625 ldr r0, .L1912+28 11626 bl printk 11627.L1898: 11628 mov r3, #1 11629 movw r2, #1228 11630 strb r3, [r4, #1196] 11631 mov r3, #0 11632 strh r3, [r4, r2] @ movhi 11633 strb r3, [r4, #1193] 11634 ldr r3, [r5] 11635 tst r3, #4096 11636 beq .L1892 11637 ldrb r1, [r4, #1028] @ zero_extendqisi2 11638 ldr r0, .L1912+32 11639 bl printk 11640.L1892: 11641 add sp, sp, #16 11642 @ sp needed 11643 pop {r4, r5, r6, pc} 11644.L1896: 11645 ldr r3, [sp, #12] 11646 mov r0, #1 11647 mov r1, #0 11648 strb r1, [r4, #1195] 11649 orr r3, r3, #256 11650 str r3, [sp, #12] 11651 ldr r3, [sp, #12] 11652 bfi r3, r0, #24, #3 11653 mov r0, #2048 11654 str r3, [sp, #12] 11655 ldr r3, [sp, #12] 11656 str r3, [r6] 11657 ldr r3, [r4, #1044] 11658 str r1, [r3, #336] 11659 movw r1, #4193 11660 str r1, [r3, #4] 11661 movw r1, #8321 11662 str r1, [r3, #344] 11663 str r2, [r3, #304] 11664 mov r2, #38 11665 str r2, [r3, #308] 11666 mov r2, #39 11667 str r2, [r3, #308] 11668 bl ftl_dma32_malloc 11669 ldr r3, [r5] 11670 str r0, [r4, #1200] 11671 tst r3, #4096 11672 beq .L1898 11673 ldr r0, [r4, #1044] 11674 ldr r1, [r0] 11675 ldr r2, [r0, #344] 11676 ldr r3, [r0, #304] 11677 ldr ip, [r0, #308] 11678 ldr r0, [r0, #312] 11679 b .L1911 11680.L1913: 11681 .align 2 11682.L1912: 11683 .word .LANCHOR2 11684 .word .LANCHOR1+1741 11685 .word .LC136 11686 .word .LANCHOR0 11687 .word 1446522928 11688 .word 1446588464 11689 .word 1052675 11690 .word .LC137 11691 .word .LC138 11692 .fnend 11693 .size nandc_init, .-nandc_init 11694 .align 2 11695 .global zbuf_init 11696 .syntax unified 11697 .arm 11698 .fpu softvfp 11699 .type zbuf_init, %function 11700zbuf_init: 11701 .fnstart 11702 @ args = 0, pretend = 0, frame = 0 11703 @ frame_needed = 0, uses_anonymous_args = 0 11704 push {r4, r5, r6, r7, r8, lr} 11705 .save {r4, r5, r6, r7, r8, lr} 11706 mov r5, #0 11707 ldr r4, .L1918 11708 mov r6, r5 11709 ldr r7, .L1918+4 11710.L1915: 11711 ldrb r0, [r7, #-2546] @ zero_extendqisi2 11712 uxtb r3, r5 11713 strb r6, [r4, #2] 11714 add r5, r5, #1 11715 add r2, r3, #1 11716 strb r3, [r4, #1] 11717 strb r2, [r4] 11718 add r4, r4, #48 11719 lsl r0, r0, #9 11720 str r6, [r4, #-40] 11721 bl ftl_dma32_malloc 11722 str r0, [r4, #-44] 11723 mov r0, #64 11724 bl ftl_dma32_malloc 11725 cmp r5, #32 11726 str r0, [r4, #-36] 11727 bne .L1915 11728 ldr r3, .L1918+8 11729 mvn r2, #0 11730 strb r2, [r3, #2720] 11731 strb r6, [r3, #2768] 11732 strb r5, [r3, #2769] 11733 pop {r4, r5, r6, r7, r8, pc} 11734.L1919: 11735 .align 2 11736.L1918: 11737 .word .LANCHOR0+1232 11738 .word .LANCHOR3 11739 .word .LANCHOR0 11740 .fnend 11741 .size zbuf_init, .-zbuf_init 11742 .align 2 11743 .global gc_init 11744 .syntax unified 11745 .arm 11746 .fpu softvfp 11747 .type gc_init, %function 11748gc_init: 11749 .fnstart 11750 @ args = 0, pretend = 0, frame = 0 11751 @ frame_needed = 0, uses_anonymous_args = 0 11752 push {r4, r5, r6, r7, r8, r9, r10, lr} 11753 .save {r4, r5, r6, r7, r8, r9, r10, lr} 11754 movw r9, #2824 11755 ldr r6, .L1922 11756 mov r5, #0 11757 movw r2, #2204 11758 mov r1, r5 11759 ldr r4, .L1922+4 11760 add r7, r6, r9 11761 mov r0, r7 11762 sub r8, r4, #3088 11763 strb r5, [r4, #-3119] 11764 strb r5, [r4, #-144] 11765 str r5, [r4, #-140] 11766 strh r5, [r8, #-6] @ movhi 11767 bl ftl_memset 11768 mvn r3, #0 11769 ldrb r0, [r4, #-3127] @ zero_extendqisi2 11770 strh r3, [r6, r9] @ movhi 11771 movw ip, #2806 11772 ldrh r3, [r8, #-8] 11773 str r5, [r6, #2832] 11774 lsr r2, r3, #1 11775 lsr r1, r3, #2 11776 strh r2, [r7, #34] @ movhi 11777 smulbb r2, r0, r3 11778 strh r1, [r7, #32] @ movhi 11779 sub r7, r4, #3104 11780 strh r5, [r7, #-8] @ movhi 11781 uxth r2, r2 11782 strh r5, [r7, #-6] @ movhi 11783 strh r5, [r7, #-4] @ movhi 11784 sub lr, r2, #32 11785 strh lr, [r6, ip] @ movhi 11786 movw ip, #2808 11787 strh r2, [r6, ip] @ movhi 11788 add r2, r6, #2816 11789 strh r3, [r2] @ movhi 11790 mov r3, #4 11791 strh r3, [r4, #-136] @ movhi 11792 movw r3, #2818 11793 strh r1, [r6, r3] @ movhi 11794 ldrh r3, [r7, #-14] 11795 mul r0, r0, r3 11796 lsl r0, r0, #2 11797 bl ftl_dma32_malloc 11798 ldrh r3, [r7, #-14] 11799 str r0, [r4, #-132] 11800 ldrb r0, [r4, #-3127] @ zero_extendqisi2 11801 mul r0, r0, r3 11802 lsl r0, r0, #2 11803 bl ftl_dma32_malloc 11804 ldrh r3, [r7, #-14] 11805 str r0, [r4, #-128] 11806 ldrb r0, [r4, #-3127] @ zero_extendqisi2 11807 mul r0, r0, r3 11808 bl ftl_dma32_malloc 11809 ldrh r3, [r7, #-14] 11810 str r0, [r4, #-3124] 11811 ldrb r0, [r4, #-3127] @ zero_extendqisi2 11812 mul r0, r0, r3 11813 lsl r0, r0, #2 11814 bl ftl_dma32_malloc 11815 ldrh r3, [r7, #-14] 11816 str r0, [r4, #-3132] 11817 ldrb r0, [r4, #-3127] @ zero_extendqisi2 11818 mul r0, r0, r3 11819 lsl r0, r0, #2 11820 bl ftl_dma32_malloc 11821 ldrh r3, [r8, #-4] 11822 movw r2, #2804 11823 str r0, [r4, #-124] 11824 lsr r3, r3, #2 11825 strh r3, [r6, r2] @ movhi 11826 pop {r4, r5, r6, r7, r8, r9, r10, pc} 11827.L1923: 11828 .align 2 11829.L1922: 11830 .word .LANCHOR0 11831 .word .LANCHOR3 11832 .fnend 11833 .size gc_init, .-gc_init 11834 .align 2 11835 .global rk_ftl_de_init 11836 .syntax unified 11837 .arm 11838 .fpu softvfp 11839 .type rk_ftl_de_init, %function 11840rk_ftl_de_init: 11841 .fnstart 11842 @ args = 0, pretend = 0, frame = 0 11843 @ frame_needed = 0, uses_anonymous_args = 0 11844 push {r4, lr} 11845 .save {r4, lr} 11846 mov r1, #0 11847 ldr r0, .L1926 11848 bl printk 11849 ldr r3, .L1926+4 11850 pop {r4, lr} 11851 ldr r3, [r3, #-160] 11852 ldr r3, [r3, #40] 11853 bx r3 @ indirect register sibling call 11854.L1927: 11855 .align 2 11856.L1926: 11857 .word .LC139 11858 .word .LANCHOR3 11859 .fnend 11860 .size rk_ftl_de_init, .-rk_ftl_de_init 11861 .align 2 11862 .global rk_ftl_cache_write_back 11863 .syntax unified 11864 .arm 11865 .fpu softvfp 11866 .type rk_ftl_cache_write_back, %function 11867rk_ftl_cache_write_back: 11868 .fnstart 11869 @ args = 0, pretend = 0, frame = 0 11870 @ frame_needed = 0, uses_anonymous_args = 0 11871 @ link register save eliminated. 11872 ldr r3, .L1929 11873 mov r0, #0 11874 ldr r3, [r3, #-160] 11875 ldr r3, [r3, #32] 11876 bx r3 @ indirect register sibling call 11877.L1930: 11878 .align 2 11879.L1929: 11880 .word .LANCHOR3 11881 .fnend 11882 .size rk_ftl_cache_write_back, .-rk_ftl_cache_write_back 11883 .align 2 11884 .global rk_nand_suspend 11885 .syntax unified 11886 .arm 11887 .fpu softvfp 11888 .type rk_nand_suspend, %function 11889rk_nand_suspend: 11890 .fnstart 11891 @ args = 0, pretend = 0, frame = 0 11892 @ frame_needed = 0, uses_anonymous_args = 0 11893 @ link register save eliminated. 11894 ldr r3, .L1932 11895 ldr r3, [r3, #-160] 11896 ldr r3, [r3, #44] 11897 bx r3 @ indirect register sibling call 11898.L1933: 11899 .align 2 11900.L1932: 11901 .word .LANCHOR3 11902 .fnend 11903 .size rk_nand_suspend, .-rk_nand_suspend 11904 .align 2 11905 .global rk_nand_resume 11906 .syntax unified 11907 .arm 11908 .fpu softvfp 11909 .type rk_nand_resume, %function 11910rk_nand_resume: 11911 .fnstart 11912 @ args = 0, pretend = 0, frame = 0 11913 @ frame_needed = 0, uses_anonymous_args = 0 11914 @ link register save eliminated. 11915 ldr r3, .L1935 11916 ldr r3, [r3, #-160] 11917 ldr r3, [r3, #48] 11918 bx r3 @ indirect register sibling call 11919.L1936: 11920 .align 2 11921.L1935: 11922 .word .LANCHOR3 11923 .fnend 11924 .size rk_nand_resume, .-rk_nand_resume 11925 .align 2 11926 .global rk_ftl_get_capacity 11927 .syntax unified 11928 .arm 11929 .fpu softvfp 11930 .type rk_ftl_get_capacity, %function 11931rk_ftl_get_capacity: 11932 .fnstart 11933 @ args = 0, pretend = 0, frame = 0 11934 @ frame_needed = 0, uses_anonymous_args = 0 11935 @ link register save eliminated. 11936 ldr r3, .L1938 11937 mov r0, #0 11938 ldr r3, [r3, #-160] 11939 ldr r3, [r3, #36] 11940 bx r3 11941.L1939: 11942 .align 2 11943.L1938: 11944 .word .LANCHOR3 11945 .fnend 11946 .size rk_ftl_get_capacity, .-rk_ftl_get_capacity 11947 .align 2 11948 .global rk_nandc_get_irq_status 11949 .syntax unified 11950 .arm 11951 .fpu softvfp 11952 .type rk_nandc_get_irq_status, %function 11953rk_nandc_get_irq_status: 11954 .fnstart 11955 @ args = 0, pretend = 0, frame = 0 11956 @ frame_needed = 0, uses_anonymous_args = 0 11957 @ link register save eliminated. 11958 ldr r3, .L1941 11959 ldr r3, [r3, #-160] 11960 ldr r3, [r3, #60] 11961 bx r3 11962.L1942: 11963 .align 2 11964.L1941: 11965 .word .LANCHOR3 11966 .fnend 11967 .size rk_nandc_get_irq_status, .-rk_nandc_get_irq_status 11968 .align 2 11969 .global rknand_proc_ftlread 11970 .syntax unified 11971 .arm 11972 .fpu softvfp 11973 .type rknand_proc_ftlread, %function 11974rknand_proc_ftlread: 11975 .fnstart 11976 @ args = 0, pretend = 0, frame = 0 11977 @ frame_needed = 0, uses_anonymous_args = 0 11978 @ link register save eliminated. 11979 ldr r3, .L1944 11980 ldr r3, [r3, #-160] 11981 ldr r3, [r3, #64] 11982 bx r3 11983.L1945: 11984 .align 2 11985.L1944: 11986 .word .LANCHOR3 11987 .fnend 11988 .size rknand_proc_ftlread, .-rknand_proc_ftlread 11989 .align 2 11990 .global FtlRead 11991 .syntax unified 11992 .arm 11993 .fpu softvfp 11994 .type FtlRead, %function 11995FtlRead: 11996 .fnstart 11997 @ args = 0, pretend = 0, frame = 0 11998 @ frame_needed = 0, uses_anonymous_args = 0 11999 ldr ip, .L1948 12000 str lr, [sp, #-4]! 12001 .save {lr} 12002 ldr ip, [ip, #-160] 12003 ldr lr, [ip, #20] 12004 mov ip, lr 12005 ldr lr, [sp], #4 12006 bx ip 12007.L1949: 12008 .align 2 12009.L1948: 12010 .word .LANCHOR3 12011 .fnend 12012 .size FtlRead, .-FtlRead 12013 .align 2 12014 .global FtlDiscard 12015 .syntax unified 12016 .arm 12017 .fpu softvfp 12018 .type FtlDiscard, %function 12019FtlDiscard: 12020 .fnstart 12021 @ args = 0, pretend = 0, frame = 0 12022 @ frame_needed = 0, uses_anonymous_args = 0 12023 @ link register save eliminated. 12024 ldr r3, .L1951 12025 ldr r3, [r3, #-160] 12026 ldr r3, [r3, #28] 12027 bx r3 12028.L1952: 12029 .align 2 12030.L1951: 12031 .word .LANCHOR3 12032 .fnend 12033 .size FtlDiscard, .-FtlDiscard 12034 .align 2 12035 .global rk_ftl_garbage_collect 12036 .syntax unified 12037 .arm 12038 .fpu softvfp 12039 .type rk_ftl_garbage_collect, %function 12040rk_ftl_garbage_collect: 12041 .fnstart 12042 @ args = 0, pretend = 0, frame = 0 12043 @ frame_needed = 0, uses_anonymous_args = 0 12044 @ link register save eliminated. 12045 ldr r3, .L1954 12046 ldr r3, [r3, #-160] 12047 ldr r3, [r3, #52] 12048 bx r3 12049.L1955: 12050 .align 2 12051.L1954: 12052 .word .LANCHOR3 12053 .fnend 12054 .size rk_ftl_garbage_collect, .-rk_ftl_garbage_collect 12055 .align 2 12056 .global ReadFlashInfo 12057 .syntax unified 12058 .arm 12059 .fpu softvfp 12060 .type ReadFlashInfo, %function 12061ReadFlashInfo: 12062 .fnstart 12063 @ args = 0, pretend = 0, frame = 0 12064 @ frame_needed = 0, uses_anonymous_args = 0 12065 @ link register save eliminated. 12066 ldr r3, .L1957 12067 ldr r3, [r3, #-160] 12068 ldr r3, [r3, #56] 12069 bx r3 @ indirect register sibling call 12070.L1958: 12071 .align 2 12072.L1957: 12073 .word .LANCHOR3 12074 .fnend 12075 .size ReadFlashInfo, .-ReadFlashInfo 12076 .align 2 12077 .global rknand_print_hex 12078 .syntax unified 12079 .arm 12080 .fpu softvfp 12081 .type rknand_print_hex, %function 12082rknand_print_hex: 12083 .fnstart 12084 @ args = 0, pretend = 0, frame = 0 12085 @ frame_needed = 0, uses_anonymous_args = 0 12086 mov ip, r2 12087 push {r0, r1, r2, r3, r4, lr} 12088 .save {lr} 12089 .pad #20 12090 mul r3, r3, ip 12091 mov r2, #0 12092 str r2, [sp, #12] 12093 str ip, [sp] 12094 stmib sp, {r1, r3} 12095 mov r1, r0 12096 mov r3, #16 12097 ldr r0, .L1961 12098 bl print_hex_dump 12099 add sp, sp, #20 12100 @ sp needed 12101 ldr pc, [sp], #4 12102.L1962: 12103 .align 2 12104.L1961: 12105 .word .LC140 12106 .fnend 12107 .size rknand_print_hex, .-rknand_print_hex 12108 .align 2 12109 .global hynix_get_read_retry_default 12110 .syntax unified 12111 .arm 12112 .fpu softvfp 12113 .type hynix_get_read_retry_default, %function 12114hynix_get_read_retry_default: 12115 .fnstart 12116 @ args = 0, pretend = 0, frame = 48 12117 @ frame_needed = 0, uses_anonymous_args = 0 12118 push {r4, r5, r6, r7, r8, r9, r10, fp, lr} 12119 .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} 12120 mov r5, r0 12121 ldr r6, .L2074 12122 mvn r3, #83 12123 cmp r5, #2 12124 mvn r2, #81 12125 .pad #52 12126 sub sp, sp, #52 12127 ldr r4, [r6, #1040] 12128 strb r0, [r4, #112] 12129 mvn r0, #82 12130 strb r3, [r4, #128] 12131 mvn r3, #80 12132 add r1, r4, #128 12133 strb r0, [r4, #129] 12134 strb r2, [r4, #130] 12135 strb r3, [r4, #131] 12136 bne .L1964 12137 mvn r3, #88 12138 mov r10, #7 12139 strb r3, [r4, #128] 12140 mvn r2, #8 12141 ldr r3, .L2074+4 12142 strb r2, [r3, #407] 12143.L2068: 12144 mov fp, #4 12145 b .L1965 12146.L1964: 12147 cmp r5, #3 12148 bne .L1966 12149 add r2, r4, #127 12150 mov r3, #176 12151.L1967: 12152 strb r3, [r2, #1]! 12153 add r3, r3, #1 12154 uxtb r3, r3 12155 cmp r3, #184 12156 bne .L1967 12157.L2069: 12158 mov r10, #8 12159 mov fp, r10 12160.L1965: 12161 sub r3, r5, #1 12162 cmp r3, #1 12163 bhi .L1973 12164 sub r9, fp, #1 12165 mov r8, #0 12166 uxtab r3, r1, r9 12167 str r3, [sp, #4] 12168.L1974: 12169 ldrb r2, [r6, #1109] @ zero_extendqisi2 12170 uxtb r3, r8 12171 cmp r2, r3 12172 bhi .L1979 12173.L1980: 12174 strb fp, [r4, #113] 12175 strb r10, [r4, #114] 12176 add sp, sp, #52 12177 @ sp needed 12178 pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} 12179.L1966: 12180 cmp r5, #4 12181 bne .L1968 12182 mvn ip, #51 12183 strb r0, [r4, #133] 12184 strb ip, [r4, #128] 12185 mvn ip, #64 12186 strb ip, [r4, #129] 12187 mvn ip, #85 12188 strb ip, [r4, #130] 12189 mvn ip, #84 12190 strb ip, [r4, #131] 12191 mvn ip, #50 12192 strb ip, [r4, #132] 12193 strb r2, [r4, #134] 12194 strb r3, [r4, #135] 12195 b .L2069 12196.L1968: 12197 cmp r5, #5 12198 bne .L1969 12199 mov r3, #56 12200 mov r10, #8 12201 strb r3, [r4, #128] 12202 mov r3, #57 12203 strb r3, [r4, #129] 12204 mov r3, #58 12205 strb r3, [r4, #130] 12206 mov r3, #59 12207 strb r3, [r4, #131] 12208 b .L2068 12209.L1969: 12210 cmp r5, #6 12211 bne .L1970 12212 mov r3, #14 12213 mov r10, #12 12214 strb r3, [r4, #128] 12215 mov r3, #15 12216 strb r3, [r4, #129] 12217 mov r3, #16 12218 strb r3, [r4, #130] 12219 mov r3, #17 12220 strb r3, [r4, #131] 12221 b .L2068 12222.L1970: 12223 cmp r5, #7 12224 bne .L1971 12225 add r2, r4, #127 12226 mov r3, #176 12227.L1972: 12228 strb r3, [r2, #1]! 12229 add r3, r3, #1 12230 uxtb r3, r3 12231 cmp r3, #184 12232 bne .L1972 12233 mvn r3, #43 12234 mov r10, #12 12235 strb r3, [r4, #136] 12236 mvn r3, #42 12237 strb r3, [r4, #137] 12238 mov fp, #10 12239 b .L1965 12240.L1971: 12241 cmp r5, #8 12242 mov r3, #7 12243 movne r10, r3 12244 bne .L2068 12245 strb r3, [r4, #129] 12246 mov r3, #9 12247 mov r2, #6 12248 strb r3, [r4, #131] 12249 mov r3, #10 12250 strb r2, [r4, #128] 12251 strb r5, [r4, #130] 12252 mov r10, #50 12253 strb r3, [r4, #132] 12254 mov fp, #5 12255 b .L1965 12256.L1979: 12257 add r3, r6, r3 12258 mov r5, #160 12259 ldrb r3, [r3, #1144] @ zero_extendqisi2 12260 add r1, r4, #127 12261 ldr r7, [r6, #1044] 12262 mla r5, r5, r3, r4 12263 add r7, r7, r3, lsl #8 12264 mov r3, #55 12265 add r5, r5, #144 12266 sub r9, r5, #1 12267.L1975: 12268 str r3, [r7, #2056] 12269 mov r0, #200 12270 ldrb r2, [r1, #1]! @ zero_extendqisi2 12271 str r3, [sp, #12] 12272 str r2, [r7, #2052] 12273 str r1, [sp, #8] 12274 bl ndelay 12275 ldr r3, [sp, #4] 12276 ldr r1, [sp, #8] 12277 ldr r2, [r7, #2048] 12278 cmp r3, r1 12279 ldr r3, [sp, #12] 12280 strb r2, [r9, #1]! 12281 bne .L1975 12282 ldr lr, .L2074+8 12283 mov r1, r5 12284 mov r2, #0 12285.L1976: 12286 mov r3, #1 12287 add ip, lr, r2 12288.L1977: 12289 ldrb r0, [ip, r3, lsl #2] @ zero_extendqisi2 12290 ldrb r7, [r1] @ zero_extendqisi2 12291 add r0, r0, r7 12292 strb r0, [r1, r3, lsl #3] 12293 add r3, r3, #1 12294 cmp r3, #7 12295 bne .L1977 12296 add r2, r2, #1 12297 add r1, r1, #1 12298 cmp r2, #4 12299 bne .L1976 12300 mov r3, #0 12301 add r8, r8, #1 12302 strb r3, [r5, #16] 12303 strb r3, [r5, #24] 12304 strb r3, [r5, #32] 12305 strb r3, [r5, #40] 12306 strb r3, [r5, #48] 12307 strb r3, [r5, #41] 12308 strb r3, [r5, #49] 12309 b .L1974 12310.L1973: 12311 sub r3, r5, #3 12312 cmp r3, #5 12313 bhi .L1980 12314 smulbb r3, fp, r10 12315 asr r2, r3, #1 12316 lsl r3, r3, #4 12317 str r3, [sp, #44] 12318 lsl r3, r2, #2 12319 str r2, [sp, #4] 12320 str r3, [sp, #36] 12321 lsl r3, r2, #1 12322 str r3, [sp, #20] 12323 mov r3, #0 12324.L2073: 12325 str r3, [sp, #16] 12326 ldr r3, .L2074 12327 ldrb r2, [r3, #1109] @ zero_extendqisi2 12328 ldrb r3, [sp, #16] @ zero_extendqisi2 12329 cmp r2, r3 12330 bls .L1980 12331 ldr r2, .L2074 12332 mov r7, #255 12333 add r3, r2, r3 12334 ldrb r8, [r3, #1144] @ zero_extendqisi2 12335 mov r0, r8 12336 bl zftl_flash_exit_slc_mode 12337 mov r0, #160 12338 mla r0, r0, r8, r4 12339 add r3, r0, #144 12340 str r3, [sp, #32] 12341 ldr r3, .L2074 12342 ldr r9, [r3, #1044] 12343 add r6, r9, r8, lsl #8 12344 str r7, [r6, #2056] 12345 bl nandc_wait_flash_ready 12346 cmp r5, #8 12347 bne .L1982 12348 add r3, r4, #144 12349 mov r2, #23 12350 str r3, [sp, #32] 12351 mov r3, #120 12352 str r3, [r6, #2056] 12353 mov r3, #0 12354 str r3, [r6, #2052] 12355 mov r1, #25 12356 str r3, [r6, #2052] 12357 str r3, [r6, #2052] 12358 str r2, [r6, #2056] 12359 mov r2, #4 12360 str r2, [r6, #2056] 12361 str r1, [r6, #2056] 12362 mov r1, #218 12363 str r1, [r6, #2056] 12364 mov r1, #21 12365 str r3, [r6, #2056] 12366 str r3, [r6, #2052] 12367 str r3, [r6, #2052] 12368 str r1, [r6, #2052] 12369 str r2, [r6, #2052] 12370 str r3, [r6, #2052] 12371.L1983: 12372 add r3, r9, r8, lsl #8 12373 mov r2, #48 12374 str r2, [r3, #2056] 12375 bl nandc_wait_flash_ready 12376 sub r3, r5, #5 12377 cmp r5, #8 12378 cmpne r3, #1 12379 str r3, [sp, #40] 12380 movls r2, #16 12381 bls .L1989 12382 cmp r5, #7 12383 movne r2, #2 12384 moveq r2, #32 12385.L1989: 12386 ldr r3, .L2074+12 12387 sub r2, r2, #1 12388 add r6, r9, r8, lsl #8 12389 ldr r3, [r3, #-120] 12390 sub r1, r3, #1 12391 uxtab r2, r3, r2 12392 mov r0, r1 12393.L1990: 12394 ldr ip, [r6, #2048] 12395 strb ip, [r0, #1]! 12396 cmp r0, r2 12397 bne .L1990 12398 cmp r5, #8 12399 bne .L1991 12400 mov r2, #0 12401.L1993: 12402 ldrb r0, [r3, r2, lsl #2] @ zero_extendqisi2 12403 uxtb r1, r2 12404 cmp r0, #50 12405 beq .L1992 12406 add r0, r3, r2, lsl #2 12407 ldrb r0, [r0, #1] @ zero_extendqisi2 12408 cmp r0, #5 12409 beq .L1992 12410 add r2, r2, #1 12411 cmp r2, #8 12412 bne .L1993 12413.L1994: 12414 mov r1, #0 12415 ldr r0, .L2074+16 12416 bl printk 12417.L1996: 12418 b .L1996 12419.L1982: 12420 cmp r5, #4 12421 mov r3, #54 12422 str r3, [r6, #2056] 12423 bne .L1984 12424 mov r3, #64 12425 str r7, [r6, #2052] 12426 str r3, [r6, #2048] 12427 mov r3, #204 12428.L2070: 12429 str r3, [r6, #2052] 12430 mov r3, #77 12431.L2071: 12432 str r3, [r6, #2048] 12433.L1985: 12434 add r3, r9, r8, lsl #8 12435 mov r2, #22 12436 cmp r5, #6 12437 str r2, [r3, #2056] 12438 mov r2, #23 12439 str r2, [r3, #2056] 12440 mov r2, #4 12441 str r2, [r3, #2056] 12442 mov r2, #25 12443 str r2, [r3, #2056] 12444 mov r2, #0 12445 str r2, [r3, #2056] 12446 str r2, [r3, #2052] 12447 str r2, [r3, #2052] 12448 moveq r2, #31 12449 str r2, [r3, #2052] 12450 mov r2, #2 12451 str r2, [r3, #2052] 12452 mov r2, #0 12453 str r2, [r3, #2052] 12454 b .L1983 12455.L1984: 12456 sub r3, r5, #5 12457 cmp r3, #1 12458 ldrbls r3, [r4, #128] @ zero_extendqisi2 12459 strls r3, [r6, #2052] 12460 movls r3, #82 12461 bls .L2071 12462 cmp r5, #7 12463 bne .L1985 12464 mov r3, #174 12465 str r3, [r6, #2052] 12466 mov r3, #0 12467 str r3, [r6, #2048] 12468 mov r3, #176 12469 b .L2070 12470.L1992: 12471 cmp r1, #6 12472 bhi .L1994 12473.L1995: 12474 ldr r3, .L2074+12 12475 ldr r2, [r3, #-120] 12476 mov r3, r2 12477.L2005: 12478 ldr r0, [sp, #44] 12479 sub r1, r3, r2 12480 cmp r0, r1 12481 bgt .L2006 12482 ldr r3, .L2074+12 12483 ldr r1, [r3, #-120] 12484 ldr r3, [sp, #20] 12485 add r0, r1, r3 12486 mov r3, #8 12487.L2008: 12488 mov lr, r0 12489 mov ip, #0 12490.L2007: 12491 ldrh r7, [lr] 12492 add ip, ip, #1 12493 mvn r7, r7 12494 strh r7, [lr], #2 @ movhi 12495 ldr r7, [sp, #4] 12496 cmp r7, ip 12497 bgt .L2007 12498 ldr ip, [sp, #36] 12499 subs r3, r3, #1 12500 add r0, r0, ip 12501 bne .L2008 12502 str r1, [sp, #8] 12503 str r3, [sp, #12] 12504.L2009: 12505 mov ip, #0 12506 mov r0, ip 12507.L2013: 12508 mov lr, #1 12509 mov r7, #16 12510 lsl lr, lr, r0 12511 str r7, [sp, #28] 12512 mov r7, #0 12513 str lr, [sp, #24] 12514 ldr lr, [sp, #8] 12515.L2011: 12516 ldrh r3, [lr] 12517 mov r1, r3 12518 ldr r3, [sp, #24] 12519 bics r3, r3, r1 12520 ldr r3, [sp, #20] 12521 addeq r7, r7, #1 12522 add lr, lr, r3 12523 ldr r3, [sp, #28] 12524 subs r3, r3, #1 12525 str r3, [sp, #28] 12526 bne .L2011 12527 cmp r7, #8 12528 add r0, r0, #1 12529 ldrhi r3, [sp, #24] 12530 orrhi ip, ip, r3 12531 uxthhi ip, ip 12532 cmp r0, #16 12533 bne .L2013 12534 ldr r3, [sp, #8] 12535 strh ip, [r3], #2 @ movhi 12536 str r3, [sp, #8] 12537 ldr r3, [sp, #12] 12538 add r3, r3, #1 12539 str r3, [sp, #12] 12540 ldr r1, [sp, #12] 12541 ldr r3, [sp, #4] 12542 cmp r3, r1 12543 bgt .L2009 12544 ldr r3, .L2074+12 12545 ldr r1, [r3, #-120] 12546 mov r3, #0 12547 sub r0, r1, #4 12548 add ip, r1, #28 12549.L2016: 12550 ldr lr, [r0, #4]! 12551 cmp lr, #0 12552 addeq r3, r3, #1 12553 cmp ip, r0 12554 bne .L2016 12555 cmp r3, #7 12556 ble .L2017 12557 ldr r0, .L2074+20 12558 mov r3, #1024 12559 mov r2, #1 12560 bl rknand_print_hex 12561 mov r1, #0 12562 ldr r0, .L2074+16 12563 bl printk 12564.L2018: 12565 b .L2018 12566.L1991: 12567 cmp r5, #7 12568 bne .L1997 12569 mov r2, #0 12570.L1999: 12571 ldrb r0, [r3, r2, lsl #2] @ zero_extendqisi2 12572 uxtb r1, r2 12573 cmp r0, #12 12574 beq .L1998 12575 add r0, r3, r2, lsl #2 12576 ldrb r0, [r0, #1] @ zero_extendqisi2 12577 cmp r0, #10 12578 beq .L1998 12579 add r2, r2, #1 12580 cmp r2, #8 12581 bne .L1999 12582.L2000: 12583 mov r1, #0 12584 ldr r0, .L2074+16 12585 bl printk 12586.L2001: 12587 b .L2001 12588.L1998: 12589 cmp r1, #6 12590 bls .L1995 12591 b .L2000 12592.L1997: 12593 cmp r5, #6 12594 bne .L1995 12595 add r3, r3, #7 12596.L2002: 12597 ldrb r2, [r1, #1]! @ zero_extendqisi2 12598 cmp r2, #12 12599 beq .L1995 12600 ldrb r2, [r1, #8] @ zero_extendqisi2 12601 cmp r2, #4 12602 beq .L1995 12603 cmp r1, r3 12604 bne .L2002 12605 mov r1, #0 12606 ldr r0, .L2074+16 12607 bl printk 12608.L2004: 12609 b .L2004 12610.L2006: 12611 ldr r1, [r6, #2048] 12612 strb r1, [r3], #1 12613 b .L2005 12614.L2017: 12615 cmp r5, #6 12616 moveq ip, #4 12617 beq .L2019 12618 cmp r5, #7 12619 moveq ip, #10 12620 beq .L2019 12621 cmp r5, #8 12622 movne ip, #8 12623 moveq ip, #5 12624.L2019: 12625 sub r3, fp, #1 12626 ldr r0, [sp, #32] 12627 uxtb r3, r3 12628 mov lr, #0 12629 add r3, r3, #1 12630 str r3, [sp, #8] 12631.L2020: 12632 mov r3, r0 12633 mov r1, r2 12634.L2021: 12635 ldrb r7, [r1], #1 @ zero_extendqisi2 12636 strb r7, [r3], #1 12637 sub r7, r1, r2 12638 uxtb r7, r7 12639 cmp fp, r7 12640 bhi .L2021 12641 ldr r3, [sp, #8] 12642 add lr, lr, #1 12643 cmp r10, lr 12644 add r0, r0, ip 12645 add r2, r2, r3 12646 bgt .L2020 12647 add r7, r9, r8, lsl #8 12648 mov r8, #255 12649 str r8, [r7, #2056] 12650 bl nandc_wait_flash_ready 12651 ldr r3, [sp, #40] 12652 cmp r3, #1 12653 bhi .L2023 12654 mov r3, #54 12655 mov r2, #22 12656 str r3, [r7, #2056] 12657 ldrb r3, [r4, #128] @ zero_extendqisi2 12658 str r3, [r6, #2052] 12659 mov r3, #0 12660 str r3, [r6, #2048] 12661 str r2, [r7, #2056] 12662 str r3, [r7, #2056] 12663 str r3, [r6, #2052] 12664 str r3, [r6, #2052] 12665 mov r3, #48 12666 str r8, [r6, #2052] 12667 str r8, [r6, #2052] 12668 str r8, [r6, #2052] 12669.L2072: 12670 str r3, [r7, #2056] 12671 bl nandc_wait_flash_ready 12672 ldr r3, [sp, #16] 12673 add r3, r3, #1 12674 b .L2073 12675.L2023: 12676 cmp r5, #8 12677 moveq r3, #190 12678 movne r3, #56 12679 b .L2072 12680.L2075: 12681 .align 2 12682.L2074: 12683 .word .LANCHOR0 12684 .word .LANCHOR2 12685 .word .LANCHOR2+390 12686 .word .LANCHOR3 12687 .word .LC141 12688 .word .LC142 12689 .fnend 12690 .size hynix_get_read_retry_default, .-hynix_get_read_retry_default 12691 .align 2 12692 .global flash_get_read_retry_tbl 12693 .syntax unified 12694 .arm 12695 .fpu softvfp 12696 .type flash_get_read_retry_tbl, %function 12697flash_get_read_retry_tbl: 12698 .fnstart 12699 @ args = 0, pretend = 0, frame = 0 12700 @ frame_needed = 0, uses_anonymous_args = 0 12701 @ link register save eliminated. 12702 ldr r3, .L2078 12703 ldrb r0, [r3, #23] @ zero_extendqisi2 12704 sub r3, r0, #1 12705 cmp r3, #7 12706 bxhi lr 12707 b hynix_get_read_retry_default 12708.L2079: 12709 .align 2 12710.L2078: 12711 .word .LANCHOR2 12712 .fnend 12713 .size flash_get_read_retry_tbl, .-flash_get_read_retry_tbl 12714 .align 2 12715 .global nandc_xfer_done 12716 .syntax unified 12717 .arm 12718 .fpu softvfp 12719 .type nandc_xfer_done, %function 12720nandc_xfer_done: 12721 .fnstart 12722 @ args = 0, pretend = 0, frame = 8 12723 @ frame_needed = 0, uses_anonymous_args = 0 12724 push {r0, r1, r4, r5, r6, r7, r8, lr} 12725 .save {r4, r5, r6, r7, r8, lr} 12726 .pad #8 12727 mov r1, #0 12728 ldr r4, .L2129 12729 ldr r7, .L2129+4 12730 ldrb r3, [r4, #1028] @ zero_extendqisi2 12731 ldr r6, [r4, #1044] 12732 strb r1, [r7, #-116] 12733 cmp r3, #9 12734 bne .L2081 12735 ldr r3, [r6, #16] 12736 str r3, [sp] 12737 ldr r5, [r6, #48] 12738 ubfx r5, r5, #1, #1 12739 cmp r5, r1 12740 bne .L2082 12741 ldr r7, .L2129+8 12742 ldr r8, .L2129+12 12743.L2083: 12744 ldr r3, [sp] 12745 tst r3, #1048576 12746 beq .L2093 12747 ldr r3, [r4, #1220] 12748 cmp r3, #0 12749 beq .L2091 12750 ldr r1, [sp] 12751 mov r2, #1 12752 ldr r0, [r4, #1212] 12753 ubfx r1, r1, #22, #6 12754 lsl r1, r1, #10 12755 bl rknand_dma_unmap_single 12756 ldr r1, [sp] 12757 mov r2, #1 12758 ubfx r1, r1, #22, #6 12759 b .L2128 12760.L2082: 12761 mov r5, r1 12762.L2084: 12763 ldr r2, [r6, #64] 12764 ldr r3, [sp] 12765 ubfx r2, r2, #16, #6 12766 ubfx r3, r3, #22, #6 12767 cmp r2, r3 12768 bge .L2086 12769 ldr r3, [r4, #1044] 12770 ldr r3, [r3] 12771 str r3, [sp, #4] 12772 ldr r3, [sp, #4] 12773 tst r3, #8192 12774 beq .L2085 12775 ldr r3, [sp, #4] 12776 tst r3, #131072 12777 beq .L2085 12778 ldr r1, [sp, #4] 12779 ldr r0, .L2129+16 12780 ubfx r1, r1, #17, #1 12781 bl printk 12782.L2086: 12783 ldr r3, [r4, #1220] 12784 cmp r3, #0 12785 beq .L2091 12786 ldr r1, [sp] 12787 mov r2, #0 12788 ldr r0, [r4, #1212] 12789 ubfx r1, r1, #22, #6 12790 lsl r1, r1, #10 12791 bl rknand_dma_unmap_single 12792 ldr r1, [sp] 12793 mov r2, #0 12794 ubfx r1, r1, #22, #6 12795.L2128: 12796 lsl r1, r1, #2 12797.L2126: 12798 ldr r0, [r4, #1216] 12799 bl rknand_dma_unmap_single 12800.L2091: 12801 mov r3, #0 12802 str r3, [r4, #1220] 12803 add sp, sp, #8 12804 @ sp needed 12805 pop {r4, r5, r6, r7, r8, pc} 12806.L2085: 12807 ldr r3, [sp] 12808 add r5, r5, #1 12809 ubfx r3, r3, #22, #6 12810 cmp r5, r3, lsl #12 12811 bne .L2087 12812 ldr r2, [r6, #64] 12813 mov r1, r5 12814 ldr r3, [sp] 12815 ldr r0, .L2129+20 12816 ubfx r2, r2, #16, #5 12817 ubfx r3, r3, #22, #6 12818 bl printk 12819 ldr r3, [sp, #4] 12820 tst r3, #8192 12821 mov r3, #1 12822 strb r3, [r7, #-116] 12823 bne .L2086 12824 ldr r3, .L2129+24 12825 ldr r0, .L2129+28 12826 ldr r3, [r3, #4] 12827 blx r3 12828 b .L2086 12829.L2087: 12830 mov r1, #10 12831 mov r0, #5 12832 bl usleep_range 12833 b .L2084 12834.L2093: 12835 ldr r3, [r4, #1044] 12836 add r5, r5, #1 12837 ldr r3, [r3, #16] 12838 str r3, [sp] 12839 bics r3, r5, #-16777216 12840 bne .L2092 12841 ldr r2, [sp] 12842 mov r1, r5 12843 ldr r3, [r6, #64] 12844 mov r0, r7 12845 ubfx r3, r3, #16, #6 12846 bl printk 12847 mov r3, #64 12848 mov r2, #4 12849 ldr r1, [r4, #1044] 12850 mov r0, r8 12851 bl rknand_print_hex 12852.L2092: 12853 mov r1, #10 12854 mov r0, #5 12855 bl usleep_range 12856 b .L2083 12857.L2081: 12858 ldr r3, [r6, #8] 12859 str r3, [sp] 12860 ldr r5, [r6, #16] 12861 ubfx r5, r5, #1, #1 12862 cmp r5, #0 12863 bne .L2095 12864 ldr r7, .L2129+8 12865 ldr r8, .L2129+12 12866.L2096: 12867 ldr r3, [sp] 12868 tst r3, #1048576 12869 beq .L2103 12870 ldr r3, [r4, #1220] 12871 cmp r3, #0 12872 beq .L2091 12873 ldr r1, [sp] 12874 mov r2, #1 12875 ldr r0, [r4, #1212] 12876 ubfx r1, r1, #22, #6 12877 lsl r1, r1, #10 12878 bl rknand_dma_unmap_single 12879 ldr r1, [sp] 12880 mov r2, #1 12881 ubfx r1, r1, #22, #6 12882 b .L2127 12883.L2095: 12884 ldr r7, .L2129+20 12885 mov r5, r1 12886 ldr r8, .L2129+12 12887.L2097: 12888 ldr r2, [r6, #28] 12889 ldr r3, [sp] 12890 ubfx r2, r2, #16, #5 12891 ubfx r3, r3, #22, #6 12892 cmp r2, r3 12893 bge .L2099 12894 ldr r3, [r4, #1044] 12895 ldr r3, [r3] 12896 str r3, [sp, #4] 12897 ldr r3, [sp, #4] 12898 tst r3, #8192 12899 beq .L2098 12900 ldr r3, [sp, #4] 12901 tst r3, #131072 12902 beq .L2098 12903 ldr r1, [sp, #4] 12904 ldr r0, .L2129+32 12905 bl printk 12906.L2099: 12907 ldr r3, [r4, #1220] 12908 cmp r3, #0 12909 beq .L2091 12910 ldr r1, [sp] 12911 mov r2, #0 12912 ldr r0, [r4, #1212] 12913 ubfx r1, r1, #22, #6 12914 lsl r1, r1, #10 12915 bl rknand_dma_unmap_single 12916 ldr r1, [sp] 12917 mov r2, #0 12918 ubfx r1, r1, #22, #6 12919.L2127: 12920 lsl r1, r1, #7 12921 b .L2126 12922.L2098: 12923 add r5, r5, #1 12924 bics r3, r5, #-16777216 12925 bne .L2100 12926 ldr r2, [r6, #28] 12927 mov r1, r5 12928 ldr r3, [sp] 12929 mov r0, r7 12930 ubfx r2, r2, #16, #5 12931 ubfx r3, r3, #22, #6 12932 bl printk 12933 mov r3, #64 12934 mov r2, #4 12935 ldr r1, [r4, #1044] 12936 mov r0, r8 12937 bl rknand_print_hex 12938.L2100: 12939 mov r1, #10 12940 mov r0, #5 12941 bl usleep_range 12942 b .L2097 12943.L2103: 12944 ldr r3, [r4, #1044] 12945 add r5, r5, #1 12946 ldr r3, [r3, #8] 12947 str r3, [sp] 12948 bics r3, r5, #-16777216 12949 bne .L2102 12950 ldr r2, [sp] 12951 mov r1, r5 12952 ldr r3, [r6, #28] 12953 mov r0, r7 12954 ubfx r3, r3, #16, #5 12955 bl printk 12956 mov r3, #64 12957 mov r2, #4 12958 ldr r1, [r4, #1044] 12959 mov r0, r8 12960 bl rknand_print_hex 12961.L2102: 12962 mov r1, #10 12963 mov r0, #5 12964 bl usleep_range 12965 b .L2096 12966.L2130: 12967 .align 2 12968.L2129: 12969 .word .LANCHOR0 12970 .word .LANCHOR3 12971 .word .LC145 12972 .word .LC146 12973 .word .LC143 12974 .word .LC144 12975 .word arm_delay_ops 12976 .word 644245000 12977 .word .LC147 12978 .fnend 12979 .size nandc_xfer_done, .-nandc_xfer_done 12980 .align 2 12981 .global nandc_xfer 12982 .syntax unified 12983 .arm 12984 .fpu softvfp 12985 .type nandc_xfer, %function 12986nandc_xfer: 12987 .fnstart 12988 @ args = 4, pretend = 0, frame = 8 12989 @ frame_needed = 0, uses_anonymous_args = 0 12990 push {r0, r1, r4, r5, r6, r7, r8, lr} 12991 .save {r4, r5, r6, r7, r8, lr} 12992 .pad #8 12993 mov r4, r1 12994 ldr r5, [sp, #32] 12995 mov r8, r2 12996 mov r6, r3 12997 mov r1, r8 12998 mov r2, r6 12999 mov r0, r4 13000 mov r3, r5 13001 bl nandc_xfer_start 13002 mov r0, r4 13003 bl nandc_xfer_done 13004 cmp r4, #0 13005 movne r0, #0 13006 bne .L2132 13007 ldr r7, .L2170 13008 ldrb r3, [r7, #1028] @ zero_extendqisi2 13009 cmp r3, #9 13010 bne .L2133 13011 ldr r1, [r7, #1044] 13012 lsr r8, r8, #2 13013 mov r2, #1 13014 mov r0, r4 13015.L2134: 13016 cmp r4, r8 13017 bcc .L2138 13018 ldr r4, [r1] 13019 cmp r2, #0 13020 movne r0, #512 13021 and r3, r4, #139264 13022 cmp r3, #139264 13023 bne .L2140 13024 mov r1, r4 13025 ldr r0, .L2170+4 13026 bl printk 13027 ldr r3, [r7, #1044] 13028 mvn r0, #0 13029 orr r4, r4, #131072 13030 str r4, [r3] 13031.L2140: 13032 tst r4, #8192 13033 beq .L2141 13034 ldr r3, .L2170+8 13035 ldrb r3, [r3, #-116] @ zero_extendqisi2 13036 cmp r3, #0 13037 beq .L2141 13038 mov r1, r4 13039 ldr r0, .L2170+12 13040 bl printk 13041 ldr r3, [r7, #1044] 13042 mov r2, #1 13043 str r2, [r3, #16] 13044.L2169: 13045 mvn r0, #0 13046.L2132: 13047 add sp, sp, #8 13048 @ sp needed 13049 pop {r4, r5, r6, r7, r8, pc} 13050.L2138: 13051 add r3, r4, #84 13052 ldr r3, [r1, r3, lsl #2] 13053 str r3, [sp, #4] 13054 ldr ip, [sp, #4] 13055 ldr r3, [sp, #4] 13056 ubfx r3, r3, #26, #1 13057 and r3, r3, ip, lsr #10 13058 and r2, r2, r3 13059 ldr r3, [sp, #4] 13060 tst r3, #4 13061 bne .L2152 13062 ldr r3, [sp, #4] 13063 tst r3, #262144 13064 bne .L2152 13065 ldr ip, [sp, #4] 13066 ldr r3, [sp, #4] 13067 ubfx ip, ip, #3, #7 13068 ubfx r3, r3, #19, #7 13069 cmp ip, r3 13070 ldr r3, [sp, #4] 13071 ubfxgt r3, r3, #3, #7 13072 ubfxle r3, r3, #19, #7 13073 cmp r0, r3 13074 movcc r0, r3 13075.L2135: 13076 add r4, r4, #1 13077 b .L2134 13078.L2152: 13079 mvn r0, #0 13080 b .L2135 13081.L2133: 13082 ldrb r3, [r7, #1193] @ zero_extendqisi2 13083 lsr r0, r8, #1 13084 mov r2, r5 13085 mov r1, r4 13086 cmp r3, #25 13087 movcc lr, #64 13088 movcs lr, #128 13089.L2143: 13090 cmp r1, r0 13091 add ip, lr, r4 13092 add r2, r2, #4 13093 bcc .L2144 13094 ldr r1, [r7, #1044] 13095 mov r2, #0 13096 lsr r8, r8, #2 13097 mov r0, r2 13098.L2145: 13099 cmp r2, r8 13100 bcc .L2149 13101 mov r3, #0 13102 str r3, [r1, #16] 13103 ldr r4, [r1] 13104 and r3, r4, #139264 13105 cmp r3, #139264 13106 bne .L2141 13107 mov r1, r4 13108 ldr r0, .L2170+16 13109 bl printk 13110 ldr r3, [r7, #1044] 13111 orr r4, r4, #131072 13112 str r4, [r3] 13113 b .L2169 13114.L2144: 13115 ldr r3, [r7, #1200] 13116 bic r4, r4, #3 13117 add r1, r1, #1 13118 ldr r3, [r3, r4] 13119 strb r3, [r2, #-4] 13120 lsr r4, r3, #8 13121 strb r4, [r2, #-3] 13122 lsr r4, r3, #16 13123 lsr r3, r3, #24 13124 strb r4, [r2, #-2] 13125 mov r4, ip 13126 strb r3, [r2, #-1] 13127 b .L2143 13128.L2149: 13129 add r3, r2, #8 13130 ldr r3, [r1, r3, lsl #2] 13131 str r3, [sp, #4] 13132 ldr r3, [sp, #4] 13133 tst r3, #4 13134 bne .L2155 13135 ldr r3, [sp, #4] 13136 tst r3, #32768 13137 bne .L2155 13138 ldr ip, [sp, #4] 13139 ldr r4, [sp, #4] 13140 ldr r3, [sp, #4] 13141 ldr lr, [sp, #4] 13142 ubfx ip, ip, #3, #5 13143 ubfx r4, r4, #27, #1 13144 ubfx r3, r3, #16, #5 13145 orr ip, ip, r4, lsl #5 13146 ubfx lr, lr, #29, #1 13147 orr r3, r3, lr, lsl #5 13148 cmp ip, r3 13149 ldr r3, [sp, #4] 13150 ldrhi ip, [sp, #4] 13151 ldrls ip, [sp, #4] 13152 ubfxhi r3, r3, #3, #5 13153 ubfxls r3, r3, #16, #5 13154 ubfxhi ip, ip, #27, #1 13155 ubfxls ip, ip, #29, #1 13156 orr r3, r3, ip, lsl #5 13157 cmp r0, r3 13158 movcc r0, r3 13159.L2146: 13160 add r2, r2, #1 13161 b .L2145 13162.L2155: 13163 mvn r0, #0 13164 b .L2146 13165.L2141: 13166 cmn r0, #1 13167 beq .L2132 13168 ldr r3, [r5] 13169 cmn r3, #1 13170 bne .L2132 13171 ldr r3, [r5, #4] 13172 cmn r3, #1 13173 bne .L2132 13174 ldr r3, [r6] 13175 cmn r3, #1 13176 moveq r0, #512 13177 b .L2132 13178.L2171: 13179 .align 2 13180.L2170: 13181 .word .LANCHOR0 13182 .word .LC148 13183 .word .LANCHOR3 13184 .word .LC149 13185 .word .LC150 13186 .fnend 13187 .size nandc_xfer, .-nandc_xfer 13188 .align 2 13189 .global flash_read_page 13190 .syntax unified 13191 .arm 13192 .fpu softvfp 13193 .type flash_read_page, %function 13194flash_read_page: 13195 .fnstart 13196 @ args = 4, pretend = 0, frame = 8 13197 @ frame_needed = 0, uses_anonymous_args = 0 13198 push {r4, r5, r6, r7, r8, r9, r10, fp, lr} 13199 .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} 13200 mov r6, r0 13201 ldr r7, .L2188 13202 .pad #20 13203 sub sp, sp, #20 13204 ubfx r9, r1, #24, #2 13205 mov r8, r3 13206 str r2, [sp, #12] 13207 lsl r10, r6, #8 13208 ldrb r4, [r7, #1153] @ zero_extendqisi2 13209 ldr r5, [r7, #1044] 13210 rsb r0, r4, #24 13211 mvn r4, #0 13212 bic r4, r1, r4, lsl r0 13213 bl nandc_wait_flash_ready 13214 mov r0, r6 13215 bl nandc_cs 13216 cmp r9, #0 13217 bne .L2173 13218 mov r0, r6 13219 bl zftl_flash_enter_slc_mode 13220.L2174: 13221 ldr r2, [r7, #1104] 13222 ldrb r1, [r2, #7] @ zero_extendqisi2 13223 cmp r1, #1 13224 bne .L2176 13225 ldrb r1, [r2, #12] @ zero_extendqisi2 13226 cmp r1, #2 13227 addeq r1, r5, r10 13228 moveq r0, #38 13229 streq r0, [r1, #2056] 13230.L2176: 13231 add fp, r5, r10 13232 mov r1, #0 13233 str r1, [fp, #2056] 13234 mov r0, #48 13235 str r1, [fp, #2052] 13236 str r1, [fp, #2052] 13237 uxtb r1, r4 13238 str r1, [fp, #2052] 13239 lsr r1, r4, #8 13240 str r1, [fp, #2052] 13241 lsr r1, r4, #16 13242 str r1, [fp, #2052] 13243 ldrb r1, [r7, #1152] @ zero_extendqisi2 13244 cmp r1, #0 13245 lsrne r1, r4, #24 13246 strne r1, [fp, #2052] 13247 add r1, r5, r10 13248 str r0, [r1, #2056] 13249 cmp r9, #0 13250 ldrb r2, [r2, #12] @ zero_extendqisi2 13251 sub r2, r2, #3 13252 clz r2, r2 13253 lsr r2, r2, #5 13254 moveq r2, #0 13255 cmp r2, #0 13256 beq .L2178 13257 ldrb r2, [r7, #1158] @ zero_extendqisi2 13258 cmp r2, #0 13259 bne .L2178 13260 ldrb r3, [r7, #1159] @ zero_extendqisi2 13261 cmp r3, #0 13262 addeq r4, r4, r4, lsl #1 13263 subeq r0, r4, #1 13264 addeq r0, r0, r9 13265 beq .L2187 13266.L2178: 13267 mov r0, r4 13268.L2187: 13269 bl nandc_set_seed 13270 bl nandc_wait_flash_ready 13271 add r3, r5, r10 13272 mov r2, #5 13273 str r2, [r3, #2056] 13274 mov r1, #0 13275 mov r2, #224 13276 str r1, [fp, #2052] 13277 mov r0, r6 13278 str r1, [fp, #2052] 13279 str r2, [r3, #2056] 13280 ldr r3, [sp, #12] 13281 ldrb r2, [sp, #56] @ zero_extendqisi2 13282 str r8, [sp] 13283 bl nandc_xfer 13284 bl nandc_de_cs.constprop.35 13285 add sp, sp, #20 13286 @ sp needed 13287 pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} 13288.L2173: 13289 ldr r2, [r7, #1104] 13290 ldrb r2, [r2, #12] @ zero_extendqisi2 13291 cmp r2, #3 13292 bne .L2175 13293 ldrb r2, [r7, #1158] @ zero_extendqisi2 13294 cmp r2, #0 13295 bne .L2175 13296 ldrb r2, [r7, #1159] @ zero_extendqisi2 13297 cmp r2, #0 13298 addeq r2, r5, r10 13299 streq r9, [r2, #2056] 13300 beq .L2174 13301.L2175: 13302 mov r0, r6 13303 bl zftl_flash_exit_slc_mode 13304 b .L2174 13305.L2189: 13306 .align 2 13307.L2188: 13308 .word .LANCHOR0 13309 .fnend 13310 .size flash_read_page, .-flash_read_page 13311 .align 2 13312 .global micron_read_retrial 13313 .syntax unified 13314 .arm 13315 .fpu softvfp 13316 .type micron_read_retrial, %function 13317micron_read_retrial: 13318 .fnstart 13319 @ args = 4, pretend = 0, frame = 16 13320 @ frame_needed = 0, uses_anonymous_args = 0 13321 push {r4, r5, r6, r7, r8, r9, r10, fp, lr} 13322 .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} 13323 .pad #28 13324 sub sp, sp, #28 13325 ldr r4, .L2219 13326 mov r6, r0 13327 mov r10, r1 13328 mov r9, #0 13329 str r3, [sp, #16] 13330 ldrb r3, [r4, #1193] @ zero_extendqisi2 13331 str r2, [sp, #12] 13332 add r3, r3, r3, lsl #1 13333 asr r3, r3, #2 13334 str r3, [sp, #8] 13335 bl nandc_wait_flash_ready 13336 ldr r5, [r4, #1044] 13337 add r5, r5, r6, lsl #8 13338.L2191: 13339 ldr fp, .L2219+4 13340 mov r0, r6 13341 mov r7, #0 13342 mvn r4, #0 13343 bl zftl_flash_enter_slc_mode 13344 mov r0, r6 13345 bl zftl_flash_exit_slc_mode 13346.L2192: 13347 ldrb r3, [fp, #-108] @ zero_extendqisi2 13348 cmp r7, r3 13349 bcc .L2197 13350.L2196: 13351 mov r3, #239 13352 mov r0, #200 13353 str r3, [r5, #2056] 13354 mov r3, #137 13355 str r3, [r5, #2052] 13356 bl ndelay 13357 mov r3, #0 13358 str r3, [r5, #2048] 13359 str r3, [r5, #2048] 13360 str r3, [r5, #2048] 13361 str r3, [r5, #2048] 13362 ldr r3, [sp, #8] 13363 cmp r4, r3 13364 bcc .L2198 13365 cmn r4, #1 13366 movne r4, #256 13367.L2198: 13368 cmn r4, #1 13369 movne r8, #0 13370 moveq r8, #1 13371 cmp r4, #256 13372 movne r1, r8 13373 orreq r1, r8, #1 13374 cmp r1, #0 13375 beq .L2199 13376 mov r1, r6 13377 str r4, [sp] 13378 mov r3, r7 13379 mov r2, r10 13380 ldr r0, .L2219+8 13381 bl printk 13382 eor r1, r9, #1 13383 ands r1, r8, r1 13384 beq .L2200 13385 mov r1, #3 13386 mov r0, r6 13387 bl mt_auto_read_calibration_config 13388 mov r9, #1 13389 b .L2191 13390.L2197: 13391 mov r3, #239 13392 mov r0, #200 13393 str r3, [r5, #2056] 13394 mov r3, #137 13395 str r3, [r5, #2052] 13396 bl ndelay 13397 add r3, r7, #1 13398 ldr r2, [sp, #12] 13399 str r3, [r5, #2048] 13400 mov r1, r10 13401 str r3, [sp, #20] 13402 mov r3, #0 13403 str r3, [r5, #2048] 13404 mov r0, r6 13405 str r3, [r5, #2048] 13406 str r3, [r5, #2048] 13407 ldr r3, [sp, #64] 13408 str r3, [sp] 13409 ldr r3, [sp, #16] 13410 bl flash_read_page 13411 ldr r3, .L2219+12 13412 mov r8, r0 13413 ldr r3, [r3] 13414 tst r3, #4096 13415 beq .L2193 13416 str r0, [sp] 13417 mov r3, r4 13418 mov r2, r10 13419 mov r1, r7 13420 ldr r0, .L2219+16 13421 bl printk 13422.L2193: 13423 cmn r8, #1 13424 beq .L2194 13425 ldr r3, [fp, #-120] 13426 cmn r4, #1 13427 moveq r4, r8 13428 str r3, [sp, #12] 13429 ldr r3, [fp, #-112] 13430 str r3, [sp, #16] 13431 ldr r3, [sp, #8] 13432 cmp r8, r3 13433 bcc .L2203 13434.L2194: 13435 ldr r7, [sp, #20] 13436 b .L2192 13437.L2203: 13438 mov r4, r8 13439 b .L2196 13440.L2200: 13441 cmp r9, #0 13442 beq .L2201 13443 mov r0, r6 13444 bl mt_auto_read_calibration_config 13445 cmn r4, #1 13446 movne r4, #256 13447.L2201: 13448 bl nandc_wait_flash_ready 13449 mov r0, r4 13450 add sp, sp, #28 13451 @ sp needed 13452 pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} 13453.L2199: 13454 cmp r9, #0 13455 beq .L2201 13456 mov r0, r6 13457 mov r4, #256 13458 bl mt_auto_read_calibration_config 13459 b .L2201 13460.L2220: 13461 .align 2 13462.L2219: 13463 .word .LANCHOR0 13464 .word .LANCHOR3 13465 .word .LC152 13466 .word .LANCHOR2 13467 .word .LC151 13468 .fnend 13469 .size micron_read_retrial, .-micron_read_retrial 13470 .align 2 13471 .global toshiba_3d_read_retrial 13472 .syntax unified 13473 .arm 13474 .fpu softvfp 13475 .type toshiba_3d_read_retrial, %function 13476toshiba_3d_read_retrial: 13477 .fnstart 13478 @ args = 4, pretend = 0, frame = 24 13479 @ frame_needed = 0, uses_anonymous_args = 0 13480 push {r4, r5, r6, r7, r8, r9, r10, fp, lr} 13481 .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} 13482 .pad #36 13483 sub sp, sp, #36 13484 ldr r7, .L2269 13485 mov r8, r0 13486 ubfx r4, r1, #24, #2 13487 mov r9, r1 13488 str r3, [sp, #20] 13489 add r6, r8, #8 13490 str r2, [sp, #16] 13491 mov r5, #1 13492 bl nandc_wait_flash_ready 13493 ldr r3, [r7, #1044] 13494 str r3, [sp, #12] 13495 add r6, r3, r6, lsl #8 13496 ldrb r3, [r7, #1100] @ zero_extendqisi2 13497 cmp r3, #36 13498 movne r3, #56 13499 moveq r3, #46 13500 str r3, [sp, #28] 13501 movne r3, #10 13502 moveq r3, #26 13503 cmp r4, #0 13504 str r3, [sp, #24] 13505 mvn r4, #0 13506 ldr r3, [sp, #12] 13507 add fp, r3, r8, lsl #8 13508 bne .L2239 13509.L2230: 13510 ldr r3, .L2269 13511 ldrb r3, [r3, #1100] @ zero_extendqisi2 13512 cmp r3, #36 13513 bne .L2224 13514 mov r2, #0 13515 mov r1, r5 13516 mov r0, r6 13517 bl toshiba_tlc_set_rr_para 13518 mov r3, #93 13519 str r3, [fp, #2056] 13520.L2225: 13521 ldr r3, [sp, #72] 13522 mov r1, r9 13523 ldr r2, [sp, #16] 13524 mov r0, r8 13525 str r3, [sp] 13526 ldr r3, [sp, #20] 13527 bl flash_read_page 13528 ldr r3, .L2269+4 13529 mov r10, r0 13530 ldr r3, [r3] 13531 tst r3, #16 13532 beq .L2226 13533 mov r3, r0 13534 mov r2, r9 13535 mov r1, r5 13536 ldr r0, .L2269+8 13537 bl printk 13538.L2226: 13539 cmn r10, #1 13540 beq .L2227 13541 ldr r3, .L2269+12 13542 cmn r4, #1 13543 moveq r4, r10 13544 ldr r2, [r3, #-120] 13545 ldr r3, [r3, #-112] 13546 str r2, [sp, #16] 13547 str r3, [sp, #20] 13548 ldrb r3, [r7, #1193] @ zero_extendqisi2 13549 add r3, r3, r3, lsl #1 13550 cmp r10, r3, asr #2 13551 bcc .L2245 13552.L2227: 13553 ldr r3, [sp, #24] 13554 add r5, r5, #1 13555 cmp r3, r5 13556 bne .L2230 13557.L2229: 13558 ldr r3, .L2269 13559 ldrb r3, [r3, #1100] @ zero_extendqisi2 13560 cmp r3, #36 13561 moveq r2, #0 13562 beq .L2268 13563 mov r1, #0 13564 mov r0, r6 13565 bl toshiba_3d_set_slc_rr_para 13566.L2232: 13567 ldr r3, .L2269 13568 ldrb r3, [r3, #1100] @ zero_extendqisi2 13569 cmp r3, #36 13570 bne .L2241 13571 ldr r3, [sp, #12] 13572 mov r2, #85 13573 add r3, r3, r8, lsl #8 13574 str r2, [r3, #2056] 13575 mov r2, #0 13576 str r2, [r3, #2052] 13577 str r2, [r3, #2048] 13578 mov r2, #255 13579 str r2, [r3, #2056] 13580.L2241: 13581 ldrb r3, [r7, #1193] @ zero_extendqisi2 13582 add r3, r3, r3, lsl #1 13583 cmp r4, r3, asr #2 13584 bcc .L2242 13585 cmn r4, #1 13586 movne r4, #256 13587.L2242: 13588 cmn r4, #1 13589 cmpne r4, #256 13590 bne .L2243 13591 str r4, [sp] 13592 mov r3, r5 13593 mov r2, r9 13594 mov r1, r8 13595 ldr r0, .L2269+16 13596 bl printk 13597.L2243: 13598 bl nandc_wait_flash_ready 13599 mov r0, r4 13600 add sp, sp, #36 13601 @ sp needed 13602 pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} 13603.L2224: 13604 uxtb r1, r5 13605 mov r0, r6 13606 bl toshiba_3d_set_slc_rr_para 13607 b .L2225 13608.L2245: 13609 mov r4, r10 13610 b .L2229 13611.L2239: 13612 ldr r3, .L2269 13613 ldrb r3, [r3, #1100] @ zero_extendqisi2 13614 cmp r3, #36 13615 bne .L2233 13616 mov r2, #1 13617 mov r1, r5 13618 mov r0, r6 13619 bl toshiba_tlc_set_rr_para 13620 mov r3, #93 13621.L2267: 13622 str r3, [fp, #2056] 13623 mov r1, r9 13624 ldr r3, [sp, #72] 13625 mov r0, r8 13626 ldr r2, [sp, #16] 13627 str r3, [sp] 13628 ldr r3, [sp, #20] 13629 bl flash_read_page 13630 ldr r3, .L2269+4 13631 mov r10, r0 13632 ldr r3, [r3] 13633 tst r3, #16 13634 beq .L2235 13635 mov r3, r0 13636 mov r2, r9 13637 mov r1, r5 13638 ldr r0, .L2269+20 13639 bl printk 13640.L2235: 13641 cmn r10, #1 13642 beq .L2236 13643 ldr r3, .L2269+12 13644 cmn r4, #1 13645 moveq r4, r10 13646 ldr r2, [r3, #-120] 13647 ldr r3, [r3, #-112] 13648 str r2, [sp, #16] 13649 str r3, [sp, #20] 13650 ldrb r3, [r7, #1193] @ zero_extendqisi2 13651 add r3, r3, r3, lsl #1 13652 cmp r10, r3, asr #2 13653 bcc .L2246 13654.L2236: 13655 ldr r3, [sp, #28] 13656 add r5, r5, #1 13657 cmp r3, r5 13658 bne .L2239 13659.L2238: 13660 ldr r3, .L2269 13661 ldrb r3, [r3, #1100] @ zero_extendqisi2 13662 cmp r3, #36 13663 bne .L2240 13664 mov r2, #1 13665.L2268: 13666 mov r1, #0 13667 mov r0, r6 13668 bl toshiba_tlc_set_rr_para 13669 b .L2232 13670.L2233: 13671 uxtb r1, r5 13672 mov r0, r6 13673 bl toshiba_3d_set_tlc_rr_para 13674 mov r3, #38 13675 b .L2267 13676.L2246: 13677 mov r4, r10 13678 b .L2238 13679.L2240: 13680 mov r1, #0 13681 mov r0, r6 13682 bl toshiba_3d_set_tlc_rr_para 13683 b .L2232 13684.L2270: 13685 .align 2 13686.L2269: 13687 .word .LANCHOR0 13688 .word .LANCHOR2 13689 .word .LC153 13690 .word .LANCHOR3 13691 .word .LC155 13692 .word .LC154 13693 .fnend 13694 .size toshiba_3d_read_retrial, .-toshiba_3d_read_retrial 13695 .align 2 13696 .global toshiba_read_retrial 13697 .syntax unified 13698 .arm 13699 .fpu softvfp 13700 .type toshiba_read_retrial, %function 13701toshiba_read_retrial: 13702 .fnstart 13703 @ args = 4, pretend = 0, frame = 24 13704 @ frame_needed = 0, uses_anonymous_args = 0 13705 push {r4, r5, r6, r7, r8, r9, r10, fp, lr} 13706 .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} 13707 mov r6, r0 13708 .pad #36 13709 sub sp, sp, #36 13710 ldr r5, .L2303 13711 add r9, r6, #8 13712 str r3, [sp, #20] 13713 str r1, [sp, #12] 13714 str r2, [sp, #16] 13715 bl nandc_wait_flash_ready 13716 mov r0, r6 13717 bl zftl_flash_enter_slc_mode 13718 mov r0, r6 13719 bl zftl_flash_exit_slc_mode 13720 ldrb r3, [r5, #1100] @ zero_extendqisi2 13721 ldr r7, [r5, #1044] 13722 sub r3, r3, #67 13723 cmp r3, #1 13724 lsl r3, r6, #8 13725 add r9, r7, r9, lsl #8 13726 str r3, [sp, #24] 13727 movls r3, #0 13728 strls r3, [sp, #8] 13729 bls .L2272 13730 ldrb r3, [r5, #1143] @ zero_extendqisi2 13731 cmp r3, #0 13732 beq .L2290 13733 mov r0, #1 13734 bl nandc_set_if_mode 13735 mov r3, #1 13736.L2290: 13737 str r3, [sp, #8] 13738 lsl r3, r6, #8 13739 mov r2, #92 13740 add r3, r7, r3 13741 str r2, [r3, #2056] 13742 mov r2, #197 13743 str r2, [r3, #2056] 13744.L2272: 13745 ldr fp, .L2303+4 13746 lsl r3, r6, #8 13747 mov r8, #1 13748 mvn r10, #0 13749 str r3, [sp, #28] 13750.L2274: 13751 ldrb r3, [fp, #-108] @ zero_extendqisi2 13752 add r3, r3, #1 13753 cmp r8, r3 13754 bcc .L2283 13755 mov r4, r10 13756.L2282: 13757 ldrb r3, [r5, #1100] @ zero_extendqisi2 13758 mov r1, #0 13759 mov r0, r9 13760 sub r3, r3, #67 13761 cmp r3, #1 13762 bhi .L2284 13763 bl sandisk_set_rr_para 13764.L2285: 13765 add r6, r7, r6, lsl #8 13766 mov r3, #255 13767 str r3, [r6, #2056] 13768 ldrb r3, [r5, #1193] @ zero_extendqisi2 13769 add r3, r3, r3, lsl #1 13770 cmp r4, r3, asr #2 13771 bcc .L2286 13772 cmn r4, #1 13773 movne r4, #256 13774.L2286: 13775 cmn r4, #1 13776 cmpne r4, #256 13777 bne .L2287 13778 str r4, [sp] 13779 mov r3, r8 13780 ldr r2, [sp, #12] 13781 mov r1, r8 13782 ldr r0, .L2303+8 13783 bl printk 13784.L2287: 13785 bl nandc_wait_flash_ready 13786 ldr r3, [sp, #8] 13787 cmp r3, #0 13788 beq .L2271 13789 mov r0, #4 13790 bl nandc_set_if_mode 13791.L2271: 13792 mov r0, r4 13793 add sp, sp, #36 13794 @ sp needed 13795 pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} 13796.L2283: 13797 ldrb r3, [r5, #1100] @ zero_extendqisi2 13798 mov r0, r9 13799 uxtb r1, r8 13800 sub r3, r3, #67 13801 cmp r3, #1 13802 bhi .L2275 13803 bl sandisk_set_rr_para 13804.L2276: 13805 ldrb r3, [r5, #1100] @ zero_extendqisi2 13806 cmp r3, #34 13807 bne .L2277 13808 ldr r3, .L2303+4 13809 ldrb r3, [r3, #-108] @ zero_extendqisi2 13810 sub r3, r3, #3 13811 cmp r8, r3 13812 ldreq r3, [sp, #28] 13813 moveq r2, #179 13814 addeq r3, r7, r3 13815 streq r2, [r3, #2056] 13816.L2277: 13817 ldr r3, [sp, #24] 13818 mov r2, #38 13819 add r1, sp, #12 13820 mov r0, r6 13821 add r3, r7, r3 13822 str r2, [r3, #2056] 13823 mov r2, #93 13824 str r2, [r3, #2056] 13825 ldr r3, [sp, #72] 13826 str r3, [sp] 13827 ldm r1, {r1, r2, r3} 13828 bl flash_read_page 13829 cmn r0, #1 13830 mov r4, r0 13831 beq .L2280 13832 ldr r3, [fp, #-120] 13833 cmn r10, #1 13834 moveq r10, r0 13835 str r3, [sp, #16] 13836 ldr r3, [fp, #-112] 13837 str r3, [sp, #20] 13838 ldrb r3, [r5, #1193] @ zero_extendqisi2 13839 add r3, r3, r3, lsl #1 13840 cmp r0, r3, asr #2 13841 bcc .L2282 13842.L2280: 13843 add r8, r8, #1 13844 b .L2274 13845.L2275: 13846 bl toshiba_set_rr_para 13847 b .L2276 13848.L2284: 13849 bl toshiba_set_rr_para 13850 b .L2285 13851.L2304: 13852 .align 2 13853.L2303: 13854 .word .LANCHOR0 13855 .word .LANCHOR3 13856 .word .LC155 13857 .fnend 13858 .size toshiba_read_retrial, .-toshiba_read_retrial 13859 .align 2 13860 .global ymtc_3d_read_retrial 13861 .syntax unified 13862 .arm 13863 .fpu softvfp 13864 .type ymtc_3d_read_retrial, %function 13865ymtc_3d_read_retrial: 13866 .fnstart 13867 @ args = 4, pretend = 0, frame = 8 13868 @ frame_needed = 0, uses_anonymous_args = 0 13869 push {r4, r5, r6, r7, r8, r9, r10, fp, lr} 13870 .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} 13871 mov r7, r0 13872 .pad #20 13873 sub sp, sp, #20 13874 mov r8, r1 13875 mov r9, r2 13876 mov r10, r3 13877 bl nandc_wait_flash_ready 13878 mov r0, r7 13879 mvn r4, #0 13880 bl zftl_flash_enter_slc_mode 13881 mov r0, r7 13882 mov r5, #1 13883 bl zftl_flash_exit_slc_mode 13884 ldr r3, .L2334 13885 tst r8, #50331648 13886 add r2, r7, #8 13887 ldr fp, .L2334+4 13888 ldr r6, [r3, #1044] 13889 str r3, [sp, #12] 13890 add r6, r6, r2, lsl #8 13891 bne .L2315 13892.L2310: 13893 uxtb r1, r5 13894 mov r0, r6 13895 bl ymtc_3d_set_slc_rr_para 13896 ldr r3, [sp, #56] 13897 mov r2, r9 13898 mov r1, r8 13899 mov r0, r7 13900 str r3, [sp] 13901 mov r3, r10 13902 bl flash_read_page 13903 cmn r0, #1 13904 beq .L2307 13905 ldr r3, [sp, #12] 13906 cmn r4, #1 13907 moveq r4, r0 13908 ldr r9, [fp, #-120] 13909 ldr r10, [fp, #-112] 13910 ldrb r3, [r3, #1193] @ zero_extendqisi2 13911 add r3, r3, r3, lsl #1 13912 cmp r0, r3, asr #2 13913 bcc .L2318 13914.L2307: 13915 add r5, r5, #1 13916 cmp r5, #10 13917 bne .L2310 13918.L2309: 13919 mov r1, #0 13920 mov r0, r6 13921 bl ymtc_3d_set_slc_rr_para 13922.L2311: 13923 ldr r3, [sp, #12] 13924 ldrb r3, [r3, #1193] @ zero_extendqisi2 13925 add r3, r3, r3, lsl #1 13926 cmp r4, r3, asr #2 13927 bcc .L2316 13928 cmn r4, #1 13929 movne r4, #256 13930.L2316: 13931 cmn r4, #1 13932 cmpne r4, #256 13933 bne .L2317 13934 str r4, [sp] 13935 mov r3, r5 13936 mov r2, r8 13937 mov r1, r5 13938 ldr r0, .L2334+8 13939 bl printk 13940.L2317: 13941 bl nandc_wait_flash_ready 13942 mov r0, r4 13943 add sp, sp, #20 13944 @ sp needed 13945 pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} 13946.L2318: 13947 mov r4, r0 13948 b .L2309 13949.L2315: 13950 uxtb r1, r5 13951 mov r0, r6 13952 bl ymtc_3d_set_tlc_rr_para 13953 ldr r3, [sp, #56] 13954 mov r2, r9 13955 mov r1, r8 13956 mov r0, r7 13957 str r3, [sp] 13958 mov r3, r10 13959 bl flash_read_page 13960 cmn r0, #1 13961 beq .L2312 13962 ldr r3, [sp, #12] 13963 cmn r4, #1 13964 moveq r4, r0 13965 ldr r9, [fp, #-120] 13966 ldr r10, [fp, #-112] 13967 ldrb r3, [r3, #1193] @ zero_extendqisi2 13968 add r3, r3, r3, lsl #1 13969 cmp r0, r3, asr #2 13970 bcc .L2319 13971.L2312: 13972 add r5, r5, #1 13973 cmp r5, #51 13974 bne .L2315 13975.L2314: 13976 mov r1, #0 13977 mov r0, r6 13978 bl ymtc_3d_set_tlc_rr_para 13979 b .L2311 13980.L2319: 13981 mov r4, r0 13982 b .L2314 13983.L2335: 13984 .align 2 13985.L2334: 13986 .word .LANCHOR0 13987 .word .LANCHOR3 13988 .word .LC156 13989 .fnend 13990 .size ymtc_3d_read_retrial, .-ymtc_3d_read_retrial 13991 .align 2 13992 .global samsung_read_retrial 13993 .syntax unified 13994 .arm 13995 .fpu softvfp 13996 .type samsung_read_retrial, %function 13997samsung_read_retrial: 13998 .fnstart 13999 @ args = 4, pretend = 0, frame = 16 14000 @ frame_needed = 0, uses_anonymous_args = 0 14001 push {r4, r5, r6, r7, r8, r9, r10, fp, lr} 14002 .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} 14003 mov r9, r0 14004 .pad #28 14005 sub sp, sp, #28 14006 mov r7, r1 14007 mov fp, r3 14008 str r2, [sp, #16] 14009 bl nandc_wait_flash_ready 14010 mov r0, r9 14011 bl zftl_flash_enter_slc_mode 14012 mov r0, r9 14013 bl zftl_flash_exit_slc_mode 14014 ldr r3, .L2374 14015 tst r7, #50331648 14016 ldr r2, [r3, #1044] 14017 str r3, [sp, #20] 14018 str r2, [sp, #12] 14019 bne .L2337 14020 lsl r10, r9, #8 14021 mvn r4, #0 14022 mov r5, #1 14023 add r6, r2, r10 14024.L2342: 14025 mov r3, #239 14026 str r3, [r6, #2056] 14027 mov r3, #141 14028 str r3, [r6, #2052] 14029 ldr r3, .L2374+4 14030 ldrsb r3, [r5, r3] 14031 str r3, [r6, #2048] 14032 mov r3, #0 14033 str r3, [r6, #2048] 14034 str r3, [r6, #2048] 14035 str r3, [r6, #2048] 14036 bl nandc_wait_flash_ready 14037 ldr r3, [sp, #64] 14038 mov r1, r7 14039 ldr r2, [sp, #16] 14040 mov r0, r9 14041 str r3, [sp] 14042 mov r3, fp 14043 bl flash_read_page 14044 ldr r3, .L2374+8 14045 mov r8, r0 14046 ldr r3, [r3] 14047 tst r3, #16 14048 beq .L2338 14049 mov r3, r0 14050 mov r2, r7 14051 mov r1, r5 14052 ldr r0, .L2374+12 14053 bl printk 14054.L2338: 14055 cmn r8, #1 14056 beq .L2339 14057 ldr r3, .L2374+16 14058 cmn r4, #1 14059 moveq r4, r8 14060 ldr r2, [r3, #-120] 14061 ldr fp, [r3, #-112] 14062 ldr r3, [sp, #20] 14063 str r2, [sp, #16] 14064 ldrb r3, [r3, #1193] @ zero_extendqisi2 14065 add r3, r3, r3, lsl #1 14066 cmp r8, r3, asr #2 14067 bcc .L2351 14068.L2339: 14069 add r5, r5, #1 14070 cmp r5, #26 14071 bne .L2342 14072.L2341: 14073 ldr r3, [sp, #12] 14074 add r10, r3, r10 14075 mov r3, #239 14076 str r3, [r10, #2056] 14077 mov r3, #141 14078.L2373: 14079 str r3, [r6, #2052] 14080 mov r3, #0 14081 str r3, [r6, #2048] 14082 str r3, [r6, #2048] 14083 str r3, [r6, #2048] 14084 str r3, [r6, #2048] 14085 bl nandc_wait_flash_ready 14086 ldr r3, .L2374 14087 ldrb r3, [r3, #1193] @ zero_extendqisi2 14088 add r3, r3, r3, lsl #1 14089 cmp r4, r3, asr #2 14090 bcc .L2349 14091 cmn r4, #1 14092 movne r4, #256 14093.L2349: 14094 cmn r4, #1 14095 cmpne r4, #256 14096 bne .L2350 14097 str r4, [sp] 14098 mov r3, r5 14099 mov r2, r7 14100 mov r1, r5 14101 ldr r0, .L2374+20 14102 bl printk 14103.L2350: 14104 bl nandc_wait_flash_ready 14105 mov r0, r4 14106 add sp, sp, #28 14107 @ sp needed 14108 pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} 14109.L2351: 14110 mov r4, r8 14111 b .L2341 14112.L2337: 14113 lsl r3, r9, #8 14114 lsl r2, r9, #8 14115 ldr r8, .L2374+24 14116 str r3, [sp, #20] 14117 mvn r4, #0 14118 ldr r3, [sp, #12] 14119 mov r5, #1 14120 add r6, r3, r2 14121.L2348: 14122 mov r3, #239 14123 str r3, [r6, #2056] 14124 mov r3, #137 14125 str r3, [r6, #2052] 14126 ldrb r3, [r8, #4] @ zero_extendqisi2 14127 str r3, [r6, #2048] 14128 ldrb r3, [r8, #5] @ zero_extendqisi2 14129 str r3, [r6, #2048] 14130 ldrb r3, [r8, #6] @ zero_extendqisi2 14131 str r3, [r6, #2048] 14132 ldrb r3, [r8, #7] @ zero_extendqisi2 14133 str r3, [r6, #2048] 14134 bl nandc_wait_flash_ready 14135 ldr r3, [sp, #64] 14136 mov r1, r7 14137 ldr r2, [sp, #16] 14138 mov r0, r9 14139 str r3, [sp] 14140 mov r3, fp 14141 bl flash_read_page 14142 ldr r3, .L2374+8 14143 mov r10, r0 14144 ldr r3, [r3] 14145 tst r3, #16 14146 beq .L2344 14147 mov r3, r0 14148 mov r2, r7 14149 mov r1, r5 14150 ldr r0, .L2374+28 14151 bl printk 14152.L2344: 14153 cmn r10, #1 14154 beq .L2345 14155 ldr r3, .L2374+16 14156 cmn r4, #1 14157 moveq r4, r10 14158 ldr r2, [r3, #-120] 14159 ldr fp, [r3, #-112] 14160 ldr r3, .L2374 14161 str r2, [sp, #16] 14162 ldrb r3, [r3, #1193] @ zero_extendqisi2 14163 add r3, r3, r3, lsl #1 14164 cmp r10, r3, asr #2 14165 bcc .L2352 14166.L2345: 14167 add r5, r5, #1 14168 add r8, r8, #4 14169 cmp r5, #26 14170 bne .L2348 14171.L2347: 14172 ldr r3, [sp, #12] 14173 ldr r2, [sp, #20] 14174 add r10, r3, r2 14175 mov r3, #239 14176 str r3, [r10, #2056] 14177 mov r3, #137 14178 b .L2373 14179.L2352: 14180 mov r4, r10 14181 b .L2347 14182.L2375: 14183 .align 2 14184.L2374: 14185 .word .LANCHOR0 14186 .word .LANCHOR1+1752 14187 .word .LANCHOR2 14188 .word .LC157 14189 .word .LANCHOR3 14190 .word .LC159 14191 .word .LANCHOR1+1778 14192 .word .LC158 14193 .fnend 14194 .size samsung_read_retrial, .-samsung_read_retrial 14195 .align 2 14196 .global hynix_read_retrial 14197 .syntax unified 14198 .arm 14199 .fpu softvfp 14200 .type hynix_read_retrial, %function 14201hynix_read_retrial: 14202 .fnstart 14203 @ args = 4, pretend = 0, frame = 8 14204 @ frame_needed = 0, uses_anonymous_args = 0 14205 push {r4, r5, r6, r7, r8, r9, r10, fp, lr} 14206 .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} 14207 mov r10, r3 14208 ldr fp, .L2395 14209 mov r9, r2 14210 .pad #20 14211 sub sp, sp, #20 14212 mov r6, r0 14213 mov r8, r1 14214 mov r7, #0 14215 ldr r3, [fp, #1040] 14216 mvn r4, #0 14217 add r2, r3, r0 14218 ldrb r3, [r3, #114] @ zero_extendqisi2 14219 str r2, [sp, #12] 14220 ldrb r5, [r2, #120] @ zero_extendqisi2 14221 str r3, [sp, #8] 14222 bl nandc_wait_flash_ready 14223 mov r0, r6 14224 bl zftl_flash_enter_slc_mode 14225 mov r0, r6 14226 bl zftl_flash_exit_slc_mode 14227.L2377: 14228 ldr r3, [sp, #8] 14229 cmp r7, r3 14230 bcc .L2382 14231.L2381: 14232 ldr r3, [sp, #12] 14233 strb r5, [r3, #120] 14234 ldrb r3, [fp, #1193] @ zero_extendqisi2 14235 add r3, r3, r3, lsl #1 14236 cmp r4, r3, asr #2 14237 bcc .L2383 14238 cmn r4, #1 14239 movne r4, #256 14240.L2383: 14241 cmn r4, #1 14242 cmpne r4, #256 14243 bne .L2384 14244 str r4, [sp] 14245 mov r3, r7 14246 mov r2, r8 14247 mov r1, r7 14248 ldr r0, .L2395+4 14249 bl printk 14250.L2384: 14251 bl nandc_wait_flash_ready 14252 mov r0, r4 14253 add sp, sp, #20 14254 @ sp needed 14255 pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} 14256.L2382: 14257 ldr r3, [sp, #8] 14258 add r5, r5, #1 14259 uxtb r5, r5 14260 mov r0, r6 14261 cmp r3, r5 14262 movls r5, #0 14263 mov r1, r5 14264 bl hynix_set_rr_para 14265 ldr r3, [sp, #56] 14266 mov r2, r9 14267 mov r1, r8 14268 mov r0, r6 14269 str r3, [sp] 14270 mov r3, r10 14271 bl flash_read_page 14272 cmn r0, #1 14273 beq .L2379 14274 ldr r3, .L2395+8 14275 cmn r4, #1 14276 moveq r4, r0 14277 ldr r9, [r3, #-120] 14278 ldr r10, [r3, #-112] 14279 ldrb r3, [fp, #1193] @ zero_extendqisi2 14280 add r3, r3, r3, lsl #1 14281 cmp r0, r3, asr #2 14282 bcc .L2385 14283.L2379: 14284 add r7, r7, #1 14285 b .L2377 14286.L2385: 14287 mov r4, r0 14288 b .L2381 14289.L2396: 14290 .align 2 14291.L2395: 14292 .word .LANCHOR0 14293 .word .LC160 14294 .word .LANCHOR3 14295 .fnend 14296 .size hynix_read_retrial, .-hynix_read_retrial 14297 .align 2 14298 .global flash_ddr_tuning_read 14299 .syntax unified 14300 .arm 14301 .fpu softvfp 14302 .type flash_ddr_tuning_read, %function 14303flash_ddr_tuning_read: 14304 .fnstart 14305 @ args = 4, pretend = 0, frame = 24 14306 @ frame_needed = 0, uses_anonymous_args = 0 14307 push {r4, r5, r6, r7, r8, r9, r10, fp, lr} 14308 .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} 14309 mov r4, #0 14310 mov r5, r4 14311 mov r6, #1024 14312 mov r7, #6 14313 mvn r10, #0 14314 .pad #36 14315 sub sp, sp, #36 14316 mov r8, r0 14317 mov fp, r1 14318 str r2, [sp, #16] 14319 str r3, [sp, #20] 14320 bl nandc_get_ddr_para 14321 str r0, [sp, #28] 14322 str r4, [sp, #24] 14323 str r4, [sp, #12] 14324.L2403: 14325 uxtb r0, r7 14326 bl nandc_set_ddr_para 14327 ldr r3, [sp, #72] 14328 mov r1, fp 14329 ldr r2, [sp, #16] 14330 mov r0, r8 14331 str r3, [sp] 14332 ldr r3, [sp, #20] 14333 bl flash_read_page 14334 ldr r3, .L2424 14335 mov r9, r0 14336 ldr r3, [r3] 14337 tst r3, #16 14338 beq .L2398 14339 mov r3, r0 14340 mov r2, fp 14341 mov r1, r7 14342 ldr r0, .L2424+4 14343 bl printk 14344.L2398: 14345 add r3, r6, #1 14346 cmp r9, r3 14347 bhi .L2399 14348 ldr r3, .L2424+8 14349 ldr r3, [r3, #-120] 14350 str r3, [sp, #16] 14351 ldr r3, .L2424+8 14352 ldr r3, [r3, #-112] 14353 str r3, [sp, #20] 14354 ldr r3, .L2424+12 14355 ldrb r3, [r3, #1193] @ zero_extendqisi2 14356 cmp r9, r3, lsr #2 14357 bcs .L2409 14358 add r5, r5, #1 14359 cmp r5, #7 14360 bls .L2409 14361 sub r4, r7, r5 14362 mov r6, r9 14363 mov r10, #0 14364.L2401: 14365 ldr r2, [sp, #12] 14366 ldr r3, [sp, #24] 14367 cmp r5, r2 14368 movcc r4, r3 14369.L2402: 14370 cmp r4, #0 14371 beq .L2404 14372 ldr r3, .L2424+12 14373 ldrb r2, [r3, #1193] @ zero_extendqisi2 14374 ldr r3, .L2424+16 14375 umull r2, r3, r2, r3 14376 ubfx r3, r3, #1, #8 14377 cmp r3, r6 14378 bls .L2404 14379 mov r1, r4 14380 ldr r0, .L2424+20 14381 bl printk 14382 uxtb r0, r4 14383.L2423: 14384 bl nandc_set_ddr_para 14385 cmn r10, #1 14386 bne .L2397 14387 ldr r4, .L2424+12 14388 ldrb r3, [r4, #1192] @ zero_extendqisi2 14389 mov r5, r4 14390 tst r3, #1 14391 beq .L2397 14392 mov r1, r8 14393 mov r2, fp 14394 ldr r0, .L2424+24 14395 bl printk 14396 mov r0, r8 14397 bl flash_reset 14398 mov r0, #1 14399 bl flash_set_interface_mode 14400 mov r0, #1 14401 bl nandc_set_if_mode 14402 add r3, r4, r8 14403 mov r2, #2 14404 mov r0, r8 14405 strb r2, [r3, #1154] 14406 bl zftl_flash_enter_slc_mode 14407 ldr r3, [sp, #72] 14408 mov r1, fp 14409 ldr r2, [sp, #16] 14410 mov r0, r8 14411 str r3, [sp] 14412 ldr r3, [sp, #20] 14413 bl flash_read_page 14414 mov r2, fp 14415 mov r3, r0 14416 mov r6, r0 14417 mov r1, r8 14418 ldr r0, .L2424+28 14419 bl printk 14420 ldrb r3, [r4, #1193] @ zero_extendqisi2 14421 cmp r6, r3 14422 bhi .L2411 14423 ldr r2, .L2424+8 14424 ldr r3, [r2, #-104] 14425 add r3, r3, #1 14426 cmp r3, #100 14427 str r3, [r2, #-104] 14428 movhi r3, #0 14429 strbhi r3, [r4, #1143] 14430 bhi .L2397 14431.L2407: 14432 ldrb r0, [r5, #1192] @ zero_extendqisi2 14433 bl flash_set_interface_mode 14434 ldrb r0, [r5, #1192] @ zero_extendqisi2 14435 bl nandc_set_if_mode 14436.L2397: 14437 mov r0, r6 14438 add sp, sp, #36 14439 @ sp needed 14440 pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} 14441.L2399: 14442 ldr r3, [sp, #12] 14443 cmp r5, r3 14444 bls .L2410 14445 cmp r5, #7 14446 sub r3, r4, r5 14447 str r3, [sp, #24] 14448 bhi .L2402 14449 str r5, [sp, #12] 14450.L2410: 14451 mov r5, #0 14452 b .L2400 14453.L2409: 14454 mov r4, r7 14455 mov r6, r9 14456 mov r10, #0 14457.L2400: 14458 add r7, r7, #2 14459 cmp r7, #50 14460 bne .L2403 14461 b .L2401 14462.L2404: 14463 ldrb r0, [sp, #28] @ zero_extendqisi2 14464 b .L2423 14465.L2411: 14466 mov r6, r10 14467 b .L2407 14468.L2425: 14469 .align 2 14470.L2424: 14471 .word .LANCHOR2 14472 .word .LC161 14473 .word .LANCHOR3 14474 .word .LANCHOR0 14475 .word -1431655765 14476 .word .LC162 14477 .word .LC163 14478 .word .LC164 14479 .fnend 14480 .size flash_ddr_tuning_read, .-flash_ddr_tuning_read 14481 .align 2 14482 .global flash_read_page_en 14483 .syntax unified 14484 .arm 14485 .fpu softvfp 14486 .type flash_read_page_en, %function 14487flash_read_page_en: 14488 .fnstart 14489 @ args = 4, pretend = 0, frame = 0 14490 @ frame_needed = 0, uses_anonymous_args = 0 14491 push {r0, r1, r2, r4, r5, r6, r7, r8, r9, r10, fp, lr} 14492 .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} 14493 .pad #12 14494 mov r8, r3 14495 ldr r5, .L2454 14496 mov r10, r0 14497 mov r4, r1 14498 mov r7, r2 14499 ldr r9, [sp, #48] 14500 ldrb r3, [r5, #1109] @ zero_extendqisi2 14501 cmp r3, r0 14502 bhi .L2427 14503 movw r2, #431 14504 ldr r1, .L2454+4 14505 ldr r0, .L2454+8 14506 bl printk 14507 bl dump_stack 14508.L2427: 14509 add r3, r5, r10 14510 ldrb r6, [r3, #1144] @ zero_extendqisi2 14511 ldrb r3, [r5, #1109] @ zero_extendqisi2 14512 cmp r10, r3 14513 bcc .L2428 14514 ldr r2, .L2454+12 14515 ldr r2, [r2] 14516 tst r2, #64 14517 bne .L2429 14518.L2453: 14519 mvn r0, #0 14520.L2426: 14521 add sp, sp, #12 14522 @ sp needed 14523 pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} 14524.L2429: 14525 str r3, [sp] 14526 mov r2, r10 14527 mov r3, r4 14528 mov r1, r6 14529 ldr r0, .L2454+16 14530 bl printk 14531 b .L2453 14532.L2428: 14533 tst r4, #50331648 14534 bne .L2431 14535 ldrb r3, [r5] @ zero_extendqisi2 14536 cmp r3, #0 14537 beq .L2432 14538 ldrb r3, [r5, #1] @ zero_extendqisi2 14539 cmp r3, #0 14540 beq .L2431 14541.L2432: 14542 ldrh r10, [r5, #2] 14543 mov r0, r4 14544 mov r1, r10 14545 bl __aeabi_uidiv 14546 mov r1, r10 14547 mul fp, r10, r0 14548 mov r0, r4 14549 bl __aeabi_uidivmod 14550 ldrb r3, [r5, #1] @ zero_extendqisi2 14551 lsl r1, r1, #1 14552 cmp r3, #0 14553 addeq r1, r5, r1 14554 addne r4, r1, fp 14555 ldrheq r4, [r1, #4] 14556 addeq r4, r4, fp 14557.L2431: 14558 str r9, [sp] 14559 mov r3, r8 14560 mov r2, r7 14561 mov r1, r4 14562 mov r0, r6 14563 bl flash_read_page 14564 cmn r0, #1 14565 bne .L2426 14566 ldrb r10, [r5, #1196] @ zero_extendqisi2 14567 cmp r10, #0 14568 bne .L2434 14569.L2437: 14570 ldr r3, .L2454+20 14571 ldr r10, [r3, #-100] 14572 cmp r10, #0 14573 bne .L2435 14574.L2436: 14575 ldrb r3, [r5, #1196] @ zero_extendqisi2 14576 mov r2, r4 14577 mov r1, #0 14578 ldr r0, .L2454+24 14579 str r3, [sp] 14580 mvn r3, #0 14581 bl printk 14582 ldrb r3, [r5, #1143] @ zero_extendqisi2 14583 cmp r3, #0 14584 beq .L2453 14585 str r9, [sp, #48] 14586 mov r3, r8 14587 mov r2, r7 14588 mov r1, r4 14589 mov r0, r6 14590 add sp, sp, #12 14591 @ sp needed 14592 pop {r4, r5, r6, r7, r8, r9, r10, fp, lr} 14593 b flash_ddr_tuning_read 14594.L2434: 14595 mov r3, #0 14596 str r9, [sp] 14597 strb r3, [r5, #1196] 14598 mov r2, r7 14599 mov r3, r8 14600 mov r1, r4 14601 mov r0, r6 14602 bl flash_read_page 14603 cmn r0, #1 14604 strb r10, [r5, #1196] 14605 beq .L2437 14606 b .L2426 14607.L2435: 14608 str r9, [sp] 14609 mov r3, r8 14610 mov r2, r7 14611 mov r1, r4 14612 mov r0, r6 14613 blx r10 14614 cmn r0, #1 14615 bne .L2426 14616 b .L2436 14617.L2455: 14618 .align 2 14619.L2454: 14620 .word .LANCHOR0 14621 .word .LANCHOR1+1882 14622 .word .LC0 14623 .word .LANCHOR2 14624 .word .LC165 14625 .word .LANCHOR3 14626 .word .LC166 14627 .fnend 14628 .size flash_read_page_en, .-flash_read_page_en 14629 .align 2 14630 .global flash_get_last_written_page 14631 .syntax unified 14632 .arm 14633 .fpu softvfp 14634 .type flash_get_last_written_page, %function 14635flash_get_last_written_page: 14636 .fnstart 14637 @ args = 4, pretend = 0, frame = 8 14638 @ frame_needed = 0, uses_anonymous_args = 0 14639 push {r4, r5, r6, r7, r8, r9, r10, fp, lr} 14640 .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} 14641 mov r8, r1 14642 ldr r5, .L2467 14643 .pad #20 14644 sub sp, sp, #20 14645 mov r10, r0 14646 mov fp, r2 14647 ldr r1, .L2467+4 14648 mov r9, r3 14649 ldrh r6, [r5, #30] 14650 ldrh r4, [r1, #-224] 14651 ldr r1, [sp, #56] 14652 mul r6, r8, r6 14653 sub r4, r4, #1 14654 sxth r4, r4 14655 str r1, [sp] 14656 add r1, r4, r6 14657 bl flash_read_page_en 14658 cmp r0, #512 14659 str r5, [sp, #12] 14660 moveq r7, #0 14661 beq .L2458 14662.L2457: 14663 ldr r3, [sp, #12] 14664 ldr r3, [r3] 14665 tst r3, #4096 14666 beq .L2462 14667 ldr r3, [r9] 14668 mov r2, r4 14669 mov r1, r8 14670 ldr r0, .L2467+8 14671 bl printk 14672.L2462: 14673 mov r0, r4 14674 add sp, sp, #20 14675 @ sp needed 14676 pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} 14677.L2461: 14678 add r5, r7, r4 14679 ldr r3, [sp, #56] 14680 add r5, r5, r5, lsr #31 14681 mov r2, fp 14682 mov r0, r10 14683 asr r5, r5, #1 14684 str r3, [sp] 14685 mov r3, r9 14686 sxtah r1, r6, r5 14687 bl flash_read_page_en 14688 cmp r0, #512 14689 subeq r4, r5, #1 14690 addne r5, r5, #1 14691 sxtheq r4, r4 14692 sxthne r7, r5 14693.L2458: 14694 cmp r7, r4 14695 ble .L2461 14696 b .L2457 14697.L2468: 14698 .align 2 14699.L2467: 14700 .word .LANCHOR2 14701 .word .LANCHOR3 14702 .word .LC167 14703 .fnend 14704 .size flash_get_last_written_page, .-flash_get_last_written_page 14705 .align 2 14706 .global flash_get_last_written_page_ext 14707 .syntax unified 14708 .arm 14709 .fpu softvfp 14710 .type flash_get_last_written_page_ext, %function 14711flash_get_last_written_page_ext: 14712 .fnstart 14713 @ args = 0, pretend = 0, frame = 0 14714 @ frame_needed = 0, uses_anonymous_args = 0 14715 ldr ip, .L2471 14716 push {r0, r1, r2, lr} 14717 .save {lr} 14718 .pad #12 14719 ldr lr, .L2471+4 14720 ldrb ip, [ip, #1153] @ zero_extendqisi2 14721 ldrh lr, [lr, #-2] 14722 str r3, [sp] 14723 mov r3, r2 14724 rsb ip, ip, #24 14725 mov r2, r1 14726 sub ip, ip, lr 14727 mvn r1, #0 14728 asr lr, r0, ip 14729 bic r1, r0, r1, lsl ip 14730 uxtb r0, lr 14731 bl flash_get_last_written_page 14732 add sp, sp, #12 14733 @ sp needed 14734 ldr pc, [sp], #4 14735.L2472: 14736 .align 2 14737.L2471: 14738 .word .LANCHOR0 14739 .word .LANCHOR3-3136 14740 .fnend 14741 .size flash_get_last_written_page_ext, .-flash_get_last_written_page_ext 14742 .align 2 14743 .global flash_ddr_para_scan 14744 .syntax unified 14745 .arm 14746 .fpu softvfp 14747 .type flash_ddr_para_scan, %function 14748flash_ddr_para_scan: 14749 .fnstart 14750 @ args = 0, pretend = 0, frame = 0 14751 @ frame_needed = 0, uses_anonymous_args = 0 14752 push {r0, r1, r2, r4, r5, r6, r7, r8, r9, lr} 14753 .save {r4, r5, r6, r7, r8, r9, lr} 14754 .pad #12 14755 mov r7, r0 14756 ldr r4, .L2480 14757 mov r6, #1 14758 mov r8, r1 14759 mov r9, #4 14760 ldr r5, .L2480+4 14761 ldrb r0, [r4, #1192] @ zero_extendqisi2 14762 strb r6, [r4, #1143] 14763 bl flash_set_interface_mode 14764 ldrb r0, [r4, #1192] @ zero_extendqisi2 14765 bl nandc_set_if_mode 14766 ldr r3, [r5, #-96] 14767 mov r1, r8 14768 ldr r2, [r5, #-92] 14769 mov r0, r7 14770 str r9, [sp] 14771 bl flash_ddr_tuning_read 14772 ldr r3, [r5, #-96] 14773 mov r1, r8 14774 str r9, [sp] 14775 mov r0, r7 14776 ldr r2, [r5, #-92] 14777 bl flash_read_page 14778 cmn r0, #1 14779 mov r3, r4 14780 bne .L2474 14781 ldrb r2, [r4, #1192] @ zero_extendqisi2 14782 tst r2, #1 14783 beq .L2474 14784 mov r0, r6 14785 bl flash_set_interface_mode 14786 mov r0, r6 14787 bl nandc_set_if_mode 14788 mov r3, #0 14789 strb r3, [r4, #1143] 14790.L2475: 14791 mov r0, #0 14792 add sp, sp, #12 14793 @ sp needed 14794 pop {r4, r5, r6, r7, r8, r9, pc} 14795.L2474: 14796 mov r2, #1 14797 strb r2, [r3, #1143] 14798 b .L2475 14799.L2481: 14800 .align 2 14801.L2480: 14802 .word .LANCHOR0 14803 .word .LANCHOR3 14804 .fnend 14805 .size flash_ddr_para_scan, .-flash_ddr_para_scan 14806 .align 2 14807 .global flash_prog_page 14808 .syntax unified 14809 .arm 14810 .fpu softvfp 14811 .type flash_prog_page, %function 14812flash_prog_page: 14813 .fnstart 14814 @ args = 4, pretend = 0, frame = 8 14815 @ frame_needed = 0, uses_anonymous_args = 0 14816 push {r4, r5, r6, r7, r8, r9, r10, fp, lr} 14817 .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} 14818 mov fp, r3 14819 ldr r6, .L2494 14820 .pad #20 14821 sub sp, sp, #20 14822 mov r4, r0 14823 mov r7, r1 14824 str r2, [sp, #12] 14825 mvn r2, #0 14826 ldrb r3, [r6, #1153] @ zero_extendqisi2 14827 add r8, r0, #8 14828 ldr r5, [r6, #1044] 14829 rsb r3, r3, #24 14830 bic r10, r1, r2, lsl r3 14831 add r8, r5, r8, lsl #8 14832 bl nandc_wait_flash_ready 14833 mov r0, r4 14834 bl hynix_reconfig_rr_para 14835 mov r0, r4 14836 bl nandc_cs 14837 tst r7, #50331648 14838 mov r0, r4 14839 bne .L2483 14840 bl zftl_flash_enter_slc_mode 14841.L2484: 14842 lsl r9, r4, #8 14843 mov r1, #128 14844 mov r0, r10 14845 add r2, r5, r9 14846 add r5, r5, r9 14847 str r1, [r2, #2056] 14848 mov r1, #0 14849 str r1, [r2, #2052] 14850 str r1, [r2, #2052] 14851 uxtb r1, r10 14852 str r1, [r2, #2052] 14853 lsr r1, r10, #8 14854 str r1, [r2, #2052] 14855 lsr r1, r10, #16 14856 str r1, [r2, #2052] 14857 ldrb r1, [r6, #1152] @ zero_extendqisi2 14858 cmp r1, #0 14859 lsrne r1, r10, #24 14860 strne r1, [r2, #2052] 14861 bl nandc_set_seed 14862 ldr r3, .L2494+4 14863 mov r1, #1 14864 mov r0, r4 14865 ldrb r2, [r3, #13] @ zero_extendqisi2 14866 ldr r3, [sp, #12] 14867 str fp, [sp] 14868 bl nandc_xfer 14869 mov r3, #16 14870 str r3, [r5, #2056] 14871 bl nandc_iqr_wait_flash_ready 14872 bl nandc_wait_flash_ready 14873 mov r0, r8 14874 bl flash_read_status 14875 bl nandc_de_cs.constprop.35 14876 ands r0, r0, #4 14877 beq .L2482 14878 mov r2, r0 14879 mov r1, r7 14880 ldr r0, .L2494+8 14881 bl printk 14882 mvn r0, #0 14883.L2482: 14884 add sp, sp, #20 14885 @ sp needed 14886 pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} 14887.L2483: 14888 bl zftl_flash_exit_slc_mode 14889 b .L2484 14890.L2495: 14891 .align 2 14892.L2494: 14893 .word .LANCHOR0 14894 .word .LANCHOR2 14895 .word .LC168 14896 .fnend 14897 .size flash_prog_page, .-flash_prog_page 14898 .align 2 14899 .global flash_test_blk 14900 .syntax unified 14901 .arm 14902 .fpu softvfp 14903 .type flash_test_blk, %function 14904flash_test_blk: 14905 .fnstart 14906 @ args = 0, pretend = 0, frame = 0 14907 @ frame_needed = 0, uses_anonymous_args = 0 14908 push {r0, r1, r2, r4, r5, r6, r7, lr} 14909 .save {r4, r5, r6, r7, lr} 14910 .pad #12 14911 mov r6, r0 14912 ldr r4, .L2507 14913 mov r5, r1 14914 mov r2, #32 14915 mov r1, #165 14916 ldr r0, [r4, #-120] 14917 bl ftl_memset 14918 mov r2, #8 14919 mov r1, #90 14920 ldr r0, [r4, #-112] 14921 bl ftl_memset 14922 ldr r3, .L2507+4 14923 mov r0, r6 14924 ldrh r3, [r3, #2] 14925 mul r5, r5, r3 14926 mov r1, r5 14927 bl flash_erase_block 14928 cmn r0, #1 14929 bne .L2497 14930.L2499: 14931 mvn r4, #0 14932.L2498: 14933 mov r1, r5 14934 mov r0, r6 14935 bl flash_erase_block 14936 mov r0, r4 14937 add sp, sp, #12 14938 @ sp needed 14939 pop {r4, r5, r6, r7, pc} 14940.L2497: 14941 ldr r7, .L2507+8 14942 mov r1, r5 14943 mov r0, r6 14944 ldrb r3, [r7, #13] @ zero_extendqisi2 14945 str r3, [sp] 14946 ldr r3, [r4, #-112] 14947 ldr r2, [r4, #-120] 14948 bl flash_prog_page 14949 cmn r0, #1 14950 beq .L2499 14951 ldrb r3, [r7, #13] @ zero_extendqisi2 14952 mov r1, r5 14953 mov r0, r6 14954 str r3, [sp] 14955 ldr r3, [r4, #-112] 14956 ldr r2, [r4, #-120] 14957 bl flash_read_page_en 14958 cmn r0, #1 14959 beq .L2499 14960 ldr r3, [r4, #-120] 14961 ldr r2, [r3] 14962 ldr r3, .L2507+12 14963 cmp r2, r3 14964 bne .L2499 14965 ldr r3, [r4, #-112] 14966 ldr r4, [r3] 14967 ldr r3, .L2507+16 14968 subs r4, r4, r3 14969 mvnne r4, #0 14970 b .L2498 14971.L2508: 14972 .align 2 14973.L2507: 14974 .word .LANCHOR3 14975 .word .LANCHOR0 14976 .word .LANCHOR2 14977 .word -1515870811 14978 .word 1515870810 14979 .fnend 14980 .size flash_test_blk, .-flash_test_blk 14981 .align 2 14982 .global flash_start_one_pass_page_prog 14983 .syntax unified 14984 .arm 14985 .fpu softvfp 14986 .type flash_start_one_pass_page_prog, %function 14987flash_start_one_pass_page_prog: 14988 .fnstart 14989 @ args = 12, pretend = 0, frame = 0 14990 @ frame_needed = 0, uses_anonymous_args = 0 14991 push {r0, r1, r4, r5, r6, r7, r8, r9, r10, lr} 14992 .save {r4, r5, r6, r7, r8, r9, r10, lr} 14993 .pad #8 14994 mov r9, r3 14995 ldr r6, .L2519 14996 mov r10, r0 14997 lsl r7, r9, #8 14998 mov r0, r3 14999 ldr r5, [sp, #40] 15000 mov r8, r2 15001 ldr r4, [r6, #1044] 15002 bl nandc_cs 15003 cmp r10, #0 15004 mov r2, #128 15005 addne r3, r4, r7 15006 mov r0, r5 15007 strne r10, [r3, #2056] 15008 add r3, r4, r7 15009 str r2, [r3, #2056] 15010 mov r2, #0 15011 str r2, [r3, #2052] 15012 add r4, r4, r7 15013 str r2, [r3, #2052] 15014 uxtb r2, r5 15015 str r2, [r3, #2052] 15016 lsr r2, r5, #8 15017 str r2, [r3, #2052] 15018 lsr r2, r5, #16 15019 str r2, [r3, #2052] 15020 ldrb r2, [r6, #1152] @ zero_extendqisi2 15021 cmp r2, #0 15022 lsrne r2, r5, #24 15023 strne r2, [r3, #2052] 15024 bl nandc_set_seed 15025 ldr r3, .L2519+4 15026 mov r1, #1 15027 mov r0, r9 15028 ldrb r2, [r3, #13] @ zero_extendqisi2 15029 ldr r3, [sp, #48] 15030 str r3, [sp] 15031 ldr r3, [sp, #44] 15032 bl nandc_xfer 15033 str r8, [r4, #2056] 15034 add sp, sp, #8 15035 @ sp needed 15036 pop {r4, r5, r6, r7, r8, r9, r10, pc} 15037.L2520: 15038 .align 2 15039.L2519: 15040 .word .LANCHOR0 15041 .word .LANCHOR2 15042 .fnend 15043 .size flash_start_one_pass_page_prog, .-flash_start_one_pass_page_prog 15044 .align 2 15045 .global flash_dual_page_prog 15046 .syntax unified 15047 .arm 15048 .fpu softvfp 15049 .type flash_dual_page_prog, %function 15050flash_dual_page_prog: 15051 .fnstart 15052 @ args = 12, pretend = 0, frame = 0 15053 @ frame_needed = 0, uses_anonymous_args = 0 15054 push {r4, r5, r6, r7, r8, r9, r10, fp, lr} 15055 .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} 15056 mov r10, r3 15057 ldr r3, .L2534 15058 mov r9, r2 15059 add r2, r0, #8 15060 .pad #20 15061 sub sp, sp, #20 15062 ldr r6, .L2534+4 15063 mov r4, r0 15064 ldrb r5, [r3, #1153] @ zero_extendqisi2 15065 mov r7, r1 15066 ldr r8, [r3, #1044] 15067 ubfx fp, r1, #24, #2 15068 rsb r3, r5, #24 15069 mvn r5, #0 15070 bic r5, r1, r5, lsl r3 15071 ldr r3, [r6] 15072 add r8, r8, r2, lsl #8 15073 tst r3, #16 15074 beq .L2522 15075 ldr r3, [sp, #64] 15076 mov r2, fp 15077 ldr r0, .L2534+8 15078 bl printk 15079.L2522: 15080 bl nandc_wait_flash_ready 15081 mov r0, r4 15082 bl nandc_cs 15083 cmp fp, #0 15084 mov r0, r4 15085 bne .L2523 15086 bl zftl_flash_enter_slc_mode 15087.L2524: 15088 mov r1, #0 15089 mov r3, r4 15090 mov r2, #16 15091 mov r0, r1 15092 stm sp, {r5, r9, r10} 15093 add r5, r5, #1 15094 bl flash_start_one_pass_page_prog 15095 bl nandc_wait_flash_ready 15096 ldr r3, [sp, #60] 15097 mov r1, #0 15098 mov r2, #16 15099 mov r0, r1 15100 str r5, [sp] 15101 str r3, [sp, #8] 15102 ldr r3, [sp, #56] 15103 str r3, [sp, #4] 15104 mov r3, r4 15105 bl flash_start_one_pass_page_prog 15106 bl nandc_wait_flash_ready 15107 mov r0, r8 15108 bl flash_read_status 15109 bl nandc_de_cs.constprop.35 15110 ands r0, r0, #4 15111 beq .L2521 15112 ldr r3, [r6] 15113 tst r3, #4096 15114 beq .L2526 15115 mov r2, r0 15116 mov r1, r7 15117 ldr r0, .L2534+12 15118 bl printk 15119.L2526: 15120 mvn r0, #0 15121.L2521: 15122 add sp, sp, #20 15123 @ sp needed 15124 pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} 15125.L2523: 15126 bl zftl_flash_exit_slc_mode 15127 b .L2524 15128.L2535: 15129 .align 2 15130.L2534: 15131 .word .LANCHOR0 15132 .word .LANCHOR2 15133 .word .LC169 15134 .word .LC168 15135 .fnend 15136 .size flash_dual_page_prog, .-flash_dual_page_prog 15137 .align 2 15138 .global ymtc_flash_tlc_page_prog 15139 .syntax unified 15140 .arm 15141 .fpu softvfp 15142 .type ymtc_flash_tlc_page_prog, %function 15143ymtc_flash_tlc_page_prog: 15144 .fnstart 15145 @ args = 0, pretend = 0, frame = 0 15146 @ frame_needed = 0, uses_anonymous_args = 0 15147 push {r0, r1, r2, r3, r4, r5, r6, r7, r8, r9, r10, lr} 15148 .save {r4, r5, r6, r7, r8, r9, r10, lr} 15149 .pad #16 15150 mov r10, r3 15151 ldr r3, .L2543 15152 mov r6, #1 15153 mov r5, r0 15154 mov r8, r2 15155 add r2, r0, #8 15156 mov r9, r1 15157 ldrb r4, [r3, #1153] @ zero_extendqisi2 15158 ldr r7, [r3, #1044] 15159 rsb r4, r4, #24 15160 lsl r4, r6, r4 15161 add r7, r7, r2, lsl #8 15162 sub r4, r4, #1 15163 and r4, r4, r1 15164 bl nandc_wait_flash_ready 15165 mov r0, r5 15166 bl nandc_cs 15167 mov r0, r5 15168 bl zftl_flash_exit_slc_mode 15169 mov r3, r5 15170 mov r2, #26 15171 mov r1, r6 15172 stm sp, {r4, r8, r10} 15173 mov r0, #0 15174 bl flash_start_one_pass_page_prog 15175 bl nandc_wait_flash_ready 15176 add r3, r4, r6 15177 mov r2, #26 15178 mov r1, r6 15179 str r3, [sp] 15180 mov r0, #0 15181 mov r3, r5 15182 stmib sp, {r8, r10} 15183 add r4, r4, #2 15184 bl flash_start_one_pass_page_prog 15185 bl nandc_wait_flash_ready 15186 mov r3, r5 15187 mov r2, #16 15188 mov r1, r6 15189 mov r0, #0 15190 stmib sp, {r8, r10} 15191 str r4, [sp] 15192 bl flash_start_one_pass_page_prog 15193 bl nandc_iqr_wait_flash_ready 15194 bl nandc_wait_flash_ready 15195 mov r0, r7 15196 bl flash_read_status 15197 bl nandc_de_cs.constprop.35 15198 ands r0, r0, #4 15199 beq .L2536 15200 ldr r3, .L2543+4 15201 ldr r3, [r3] 15202 tst r3, #4096 15203 beq .L2538 15204 mov r2, r0 15205 mov r1, r9 15206 ldr r0, .L2543+8 15207 bl printk 15208.L2538: 15209 mvn r0, #0 15210.L2536: 15211 add sp, sp, #16 15212 @ sp needed 15213 pop {r4, r5, r6, r7, r8, r9, r10, pc} 15214.L2544: 15215 .align 2 15216.L2543: 15217 .word .LANCHOR0 15218 .word .LANCHOR2 15219 .word .LC170 15220 .fnend 15221 .size ymtc_flash_tlc_page_prog, .-ymtc_flash_tlc_page_prog 15222 .section .text.unlikely 15223 .align 2 15224 .syntax unified 15225 .arm 15226 .fpu softvfp 15227 .type fw_flash_page_prog.constprop.29, %function 15228fw_flash_page_prog.constprop.29: 15229 .fnstart 15230 @ args = 0, pretend = 0, frame = 0 15231 @ frame_needed = 0, uses_anonymous_args = 0 15232 push {r4, r5, r6, r7, r8, r9, lr} 15233 .save {r4, r5, r6, r7, r8, r9, lr} 15234 mov r6, r1 15235 ldr r4, .L2551 15236 .pad #20 15237 sub sp, sp, #20 15238 mov r7, r2 15239 ldr r3, [r4, #1104] 15240 ldrb r1, [r3, #9] @ zero_extendqisi2 15241 bl __aeabi_uidiv 15242 mov r5, r0 15243 ldrb r0, [r4, #1108] @ zero_extendqisi2 15244 ldrb r8, [r4, #1193] @ zero_extendqisi2 15245 bl nandc_bch_sel 15246 ldr r3, .L2551+4 15247 ldrb r2, [r3, #11] @ zero_extendqisi2 15248 cmp r2, #9 15249 bne .L2546 15250 ldrb r4, [r4, #1110] @ zero_extendqisi2 15251 cmp r4, #0 15252 bne .L2546 15253 ldrb r3, [r3, #16] @ zero_extendqisi2 15254 cmp r3, #3 15255 bne .L2547 15256 mov r3, r7 15257 mov r2, r6 15258 mov r1, r5 15259 mov r0, r4 15260 bl ymtc_flash_tlc_page_prog 15261.L2550: 15262 mov r4, r0 15263 mov r0, r8 15264 bl nandc_bch_sel 15265 mov r0, r4 15266 add sp, sp, #20 15267 @ sp needed 15268 pop {r4, r5, r6, r7, r8, r9, pc} 15269.L2547: 15270 ldr r9, .L2551+8 15271 mov r2, #16384 15272 mov r1, #255 15273 ldr r0, [r9, #-120] 15274 bl ftl_memset 15275 ldr r3, [r9, #-120] 15276 mov r2, #4 15277 str r2, [sp, #8] 15278 mov r1, r5 15279 mov r2, r6 15280 mov r0, r4 15281 str r3, [sp, #4] 15282 str r3, [sp] 15283 mov r3, r7 15284 bl flash_dual_page_prog 15285 b .L2550 15286.L2546: 15287 mov r3, #4 15288 mov r2, r6 15289 str r3, [sp] 15290 mov r1, r5 15291 mov r3, r7 15292 mov r0, #0 15293 bl flash_prog_page 15294 b .L2550 15295.L2552: 15296 .align 2 15297.L2551: 15298 .word .LANCHOR0 15299 .word .LANCHOR2 15300 .word .LANCHOR3 15301 .fnend 15302 .size fw_flash_page_prog.constprop.29, .-fw_flash_page_prog.constprop.29 15303 .text 15304 .align 2 15305 .global flash_start_tlc_page_prog 15306 .syntax unified 15307 .arm 15308 .fpu softvfp 15309 .type flash_start_tlc_page_prog, %function 15310flash_start_tlc_page_prog: 15311 .fnstart 15312 @ args = 12, pretend = 0, frame = 0 15313 @ frame_needed = 0, uses_anonymous_args = 0 15314 push {r0, r1, r2, r4, r5, r6, r7, r8, r9, r10, fp, lr} 15315 .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} 15316 .pad #12 15317 mov r6, r3 15318 ldr r4, .L2561 15319 add r5, sp, #48 15320 mov fp, r0 15321 mov r7, r1 15322 mov r8, r2 15323 ldm r5, {r5, r9, r10} 15324 ldrb r3, [r4, #1109] @ zero_extendqisi2 15325 cmp r3, r6 15326 bhi .L2554 15327 mov r2, #868 15328 ldr r1, .L2561+4 15329 ldr r0, .L2561+8 15330 bl printk 15331 bl dump_stack 15332.L2554: 15333 ldrb r3, [r4, #1109] @ zero_extendqisi2 15334 cmp r3, r6 15335 bls .L2553 15336 add r6, r4, r6 15337 ldr r4, [r4, #1044] 15338 ldrb r6, [r6, #1144] @ zero_extendqisi2 15339 mov r0, r6 15340 bl nandc_cs 15341 lsl r3, r6, #8 15342 cmp fp, #0 15343 addne r2, r4, r3 15344 add r4, r4, r3 15345 mov r3, #128 15346 strne fp, [r2, #2056] 15347 str r7, [r4, #2056] 15348 str r3, [r4, #2056] 15349 mov r3, #0 15350 str r3, [r4, #2052] 15351 str r3, [r4, #2052] 15352 uxtb r3, r5 15353 str r3, [r4, #2052] 15354 lsr r3, r5, #8 15355 str r3, [r4, #2052] 15356 lsr r3, r5, #16 15357 add r5, r5, r5, lsl #1 15358 str r3, [r4, #2052] 15359 sub r0, r5, #1 15360 add r0, r0, r7 15361 bl nandc_set_seed 15362 ldr r3, .L2561+12 15363 mov r1, #1 15364 mov r0, r6 15365 ldrb r2, [r3, #13] @ zero_extendqisi2 15366 mov r3, r9 15367 str r10, [sp] 15368 bl nandc_xfer 15369 str r8, [r4, #2056] 15370 add sp, sp, #12 15371 @ sp needed 15372 pop {r4, r5, r6, r7, r8, r9, r10, fp, lr} 15373 b nandc_de_cs.constprop.35 15374.L2553: 15375 add sp, sp, #12 15376 @ sp needed 15377 pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} 15378.L2562: 15379 .align 2 15380.L2561: 15381 .word .LANCHOR0 15382 .word .LANCHOR1+1901 15383 .word .LC0 15384 .word .LANCHOR2 15385 .fnend 15386 .size flash_start_tlc_page_prog, .-flash_start_tlc_page_prog 15387 .align 2 15388 .syntax unified 15389 .arm 15390 .fpu softvfp 15391 .type queue_tlc_prog_cmd, %function 15392queue_tlc_prog_cmd: 15393 .fnstart 15394 @ args = 0, pretend = 0, frame = 0 15395 @ frame_needed = 0, uses_anonymous_args = 0 15396 push {r0, r1, r2, r3, r4, r5, r6, r7, r8, lr} 15397 .save {r4, r5, r6, r7, r8, lr} 15398 .pad #16 15399 mov r8, r1 15400 ldr r1, .L2568 15401 mov r7, #1 15402 mov r6, r0 15403 ldr r2, [r0] 15404 ldrb r3, [r1, #1153] @ zero_extendqisi2 15405 ldr ip, [r2, #24] 15406 rsb r0, r3, #24 15407 lsl r4, r7, r3 15408 ldrb r3, [r1, #1159] @ zero_extendqisi2 15409 lsl r5, r7, r0 15410 sub r4, r4, #1 15411 and r4, r4, ip, lsr r0 15412 cmp r3, #0 15413 sub r5, r5, #1 15414 and r5, r5, ip 15415 uxtb r4, r4 15416 beq .L2564 15417 mov r0, r4 15418 bl zftl_flash_exit_slc_mode 15419 ldr r3, [r6] 15420 mov r1, r7 15421 mov r0, #0 15422 ldr r2, [r3, #12] 15423 str r2, [sp, #8] 15424 mov r2, #26 15425 ldr r3, [r3, #4] 15426 str r5, [sp] 15427 str r3, [sp, #4] 15428 mov r3, r4 15429 bl flash_start_one_pass_page_prog 15430 bl nandc_iqr_wait_flash_ready 15431 bl nandc_wait_flash_ready 15432 ldr r3, [r6, #4] 15433 mov r1, r7 15434 mov r0, #0 15435 ldr r2, [r3, #12] 15436 str r2, [sp, #8] 15437 mov r2, #26 15438 ldr r3, [r3, #4] 15439 str r3, [sp, #4] 15440 add r3, r5, r7 15441 str r3, [sp] 15442 mov r3, r4 15443 bl flash_start_one_pass_page_prog 15444 bl nandc_iqr_wait_flash_ready 15445 bl nandc_wait_flash_ready 15446 ldr r3, [r6, #8] 15447 add r5, r5, #2 15448 mov r1, r7 15449 mov r0, #0 15450 ldr r2, [r3, #12] 15451 str r2, [sp, #8] 15452 mov r2, #16 15453 ldr r3, [r3, #4] 15454 str r5, [sp] 15455 str r3, [sp, #4] 15456 mov r3, r4 15457 bl flash_start_one_pass_page_prog 15458.L2565: 15459 cmp r8, #0 15460 beq .L2563 15461 ldr r1, [r6] 15462 mov r3, #4 15463 ldr r0, .L2568+4 15464 strb r3, [r1, #42] 15465 mov r3, #1 15466 strb r3, [r1, #43] 15467 mvn r3, #0 15468 strb r3, [r1] 15469 add sp, sp, #16 15470 @ sp needed 15471 pop {r4, r5, r6, r7, r8, lr} 15472 b buf_add_tail 15473.L2564: 15474 ldr r3, [r2, #12] 15475 mov r1, r7 15476 ldrb r0, [r2, #44] @ zero_extendqisi2 15477 str r3, [sp, #8] 15478 ldr r3, [r2, #4] 15479 mov r2, #26 15480 str r5, [sp] 15481 str r3, [sp, #4] 15482 mov r3, r4 15483 bl flash_start_tlc_page_prog 15484 bl nandc_iqr_wait_flash_ready 15485 bl nandc_wait_flash_ready 15486 ldm r6, {r2, r3} 15487 mov r1, #2 15488 ldrb r0, [r2, #44] @ zero_extendqisi2 15489 ldr r2, [r3, #12] 15490 str r2, [sp, #8] 15491 mov r2, #26 15492 ldr r3, [r3, #4] 15493 str r5, [sp] 15494 str r3, [sp, #4] 15495 mov r3, r4 15496 bl flash_start_tlc_page_prog 15497 bl nandc_iqr_wait_flash_ready 15498 bl nandc_wait_flash_ready 15499 ldr r3, [r6, #8] 15500 mov r1, #3 15501 ldr r2, [r6] 15502 ldrb r0, [r2, #44] @ zero_extendqisi2 15503 ldr r2, [r3, #12] 15504 str r2, [sp, #8] 15505 mov r2, #16 15506 ldr r3, [r3, #4] 15507 str r5, [sp] 15508 str r3, [sp, #4] 15509 mov r3, r4 15510 bl flash_start_tlc_page_prog 15511 b .L2565 15512.L2563: 15513 add sp, sp, #16 15514 @ sp needed 15515 pop {r4, r5, r6, r7, r8, pc} 15516.L2569: 15517 .align 2 15518.L2568: 15519 .word .LANCHOR0 15520 .word .LANCHOR0+2770 15521 .fnend 15522 .size queue_tlc_prog_cmd, .-queue_tlc_prog_cmd 15523 .align 2 15524 .global sblk_3d_tlc_dump_prog 15525 .syntax unified 15526 .arm 15527 .fpu softvfp 15528 .type sblk_3d_tlc_dump_prog, %function 15529sblk_3d_tlc_dump_prog: 15530 .fnstart 15531 @ args = 0, pretend = 0, frame = 0 15532 @ frame_needed = 0, uses_anonymous_args = 0 15533 push {r0, r1, r2, r3, r4, r5, r6, r7, r8, lr} 15534 .save {r4, r5, r6, r7, r8, lr} 15535 .pad #16 15536 mov r7, #1 15537 ldr r2, .L2574 15538 mov r5, r0 15539 ldr r0, [r0, #24] 15540 ldrb r3, [r2, #1153] @ zero_extendqisi2 15541 ldrb r8, [r2, #1159] @ zero_extendqisi2 15542 rsb r1, r3, #24 15543 lsl r4, r7, r3 15544 lsl r6, r7, r1 15545 sub r4, r4, #1 15546 cmp r8, #0 15547 and r4, r4, r0, lsr r1 15548 sub r6, r6, #1 15549 and r6, r6, r0 15550 uxtb r4, r4 15551 beq .L2571 15552 mov r0, r4 15553 bl zftl_flash_exit_slc_mode 15554 ldr r3, [r5, #12] 15555 mov r2, #26 15556 mov r1, r7 15557 mov r0, #0 15558 str r6, [sp] 15559 str r3, [sp, #8] 15560 ldr r3, [r5, #4] 15561 str r3, [sp, #4] 15562 mov r3, r4 15563 bl flash_start_one_pass_page_prog 15564 bl nandc_iqr_wait_flash_ready 15565 bl nandc_wait_flash_ready 15566 ldr r3, [r5, #12] 15567 mov r2, #26 15568 mov r1, r7 15569 mov r0, #0 15570 str r3, [sp, #8] 15571 ldr r3, [r5, #4] 15572 str r3, [sp, #4] 15573 add r3, r6, r7 15574 str r3, [sp] 15575 mov r3, r4 15576 bl flash_start_one_pass_page_prog 15577 bl nandc_iqr_wait_flash_ready 15578 bl nandc_wait_flash_ready 15579 ldr r3, [r5, #12] 15580 add r6, r6, #2 15581 str r6, [sp] 15582 mov r2, #16 15583 mov r1, r7 15584 mov r0, #0 15585 str r3, [sp, #8] 15586 ldr r3, [r5, #4] 15587 str r3, [sp, #4] 15588 mov r3, r4 15589 bl flash_start_one_pass_page_prog 15590.L2572: 15591 bl nandc_iqr_wait_flash_ready 15592 bl nandc_wait_flash_ready 15593 mov r1, #64 15594 ldr r0, [r5, #24] 15595 add sp, sp, #16 15596 @ sp needed 15597 pop {r4, r5, r6, r7, r8, lr} 15598 b flash_wait_device_ready 15599.L2571: 15600 ldr r3, [r5, #12] 15601 mov r1, r7 15602 mov r2, #26 15603 mov r0, r8 15604 str r6, [sp] 15605 str r3, [sp, #8] 15606 ldr r3, [r5, #4] 15607 str r3, [sp, #4] 15608 mov r3, r4 15609 bl flash_start_tlc_page_prog 15610 bl nandc_iqr_wait_flash_ready 15611 bl nandc_wait_flash_ready 15612 ldr r3, [r5, #12] 15613 mov r2, #26 15614 mov r1, #2 15615 mov r0, r8 15616 str r6, [sp] 15617 str r3, [sp, #8] 15618 ldr r3, [r5, #4] 15619 str r3, [sp, #4] 15620 mov r3, r4 15621 bl flash_start_tlc_page_prog 15622 bl nandc_iqr_wait_flash_ready 15623 bl nandc_wait_flash_ready 15624 ldr r3, [r5, #12] 15625 mov r2, #16 15626 str r6, [sp] 15627 mov r1, #3 15628 mov r0, r8 15629 str r3, [sp, #8] 15630 ldr r3, [r5, #4] 15631 str r3, [sp, #4] 15632 mov r3, r4 15633 bl flash_start_tlc_page_prog 15634 b .L2572 15635.L2575: 15636 .align 2 15637.L2574: 15638 .word .LANCHOR0 15639 .fnend 15640 .size sblk_3d_tlc_dump_prog, .-sblk_3d_tlc_dump_prog 15641 .align 2 15642 .global flash_start_3d_mlc_page_prog 15643 .syntax unified 15644 .arm 15645 .fpu softvfp 15646 .type flash_start_3d_mlc_page_prog, %function 15647flash_start_3d_mlc_page_prog: 15648 .fnstart 15649 @ args = 4, pretend = 0, frame = 0 15650 @ frame_needed = 0, uses_anonymous_args = 0 15651 push {r0, r1, r4, r5, r6, r7, r8, lr} 15652 .save {r4, r5, r6, r7, r8, lr} 15653 .pad #8 15654 mov r8, r3 15655 ldr r4, .L2580 15656 mov r7, r0 15657 mov r5, r1 15658 mov r6, r2 15659 ldrb r3, [r4, #1109] @ zero_extendqisi2 15660 cmp r3, r1 15661 bhi .L2577 15662 movw r2, #903 15663 ldr r1, .L2580+4 15664 ldr r0, .L2580+8 15665 bl printk 15666 bl dump_stack 15667.L2577: 15668 ldrb r3, [r4, #1109] @ zero_extendqisi2 15669 cmp r3, r5 15670 bls .L2576 15671 add r5, r4, r5 15672 ldr r4, [r4, #1044] 15673 ldrb r5, [r5, #1144] @ zero_extendqisi2 15674 mov r0, r5 15675 add r4, r4, r5, lsl #8 15676 bl nandc_cs 15677 mov r3, #128 15678 mov r0, r6 15679 str r3, [r4, #2056] 15680 mov r3, #0 15681 str r3, [r4, #2052] 15682 str r3, [r4, #2052] 15683 uxtb r3, r6 15684 str r3, [r4, #2052] 15685 lsr r3, r6, #8 15686 str r3, [r4, #2052] 15687 lsr r3, r6, #16 15688 str r3, [r4, #2052] 15689 bl nandc_set_seed 15690 ldr r3, .L2580+12 15691 mov r1, #1 15692 mov r0, r5 15693 ldrb r2, [r3, #13] @ zero_extendqisi2 15694 ldr r3, [sp, #32] 15695 str r3, [sp] 15696 mov r3, r8 15697 bl nandc_xfer 15698 str r7, [r4, #2056] 15699.L2576: 15700 add sp, sp, #8 15701 @ sp needed 15702 pop {r4, r5, r6, r7, r8, pc} 15703.L2581: 15704 .align 2 15705.L2580: 15706 .word .LANCHOR0 15707 .word .LANCHOR1+1927 15708 .word .LC0 15709 .word .LANCHOR2 15710 .fnend 15711 .size flash_start_3d_mlc_page_prog, .-flash_start_3d_mlc_page_prog 15712 .align 2 15713 .global sblk_mlc_dump_prog 15714 .syntax unified 15715 .arm 15716 .fpu softvfp 15717 .type sblk_mlc_dump_prog, %function 15718sblk_mlc_dump_prog: 15719 .fnstart 15720 @ args = 0, pretend = 0, frame = 0 15721 @ frame_needed = 0, uses_anonymous_args = 0 15722 ldr r3, .L2588 15723 push {r0, r1, r4, r5, r6, lr} 15724 .save {r4, r5, r6, lr} 15725 .pad #8 15726 mov r5, r0 15727 ldr r1, [r0, #24] 15728 ldrb r4, [r3, #1153] @ zero_extendqisi2 15729 mov r3, #1 15730 rsb r2, r4, #24 15731 lsl r4, r3, r4 15732 lsl r6, r3, r2 15733 sub r4, r4, #1 15734 sub r6, r6, #1 15735 and r4, r4, r1, lsr r2 15736 and r6, r6, r1 15737 uxtb r4, r4 15738 mov r0, r4 15739 bl zftl_flash_exit_slc_mode 15740 ldr r3, .L2588+4 15741 ldr r3, [r3] 15742 tst r3, #4096 15743 beq .L2583 15744 ldr r2, [r5, #24] 15745 mov r1, r6 15746 ldr r0, .L2588+8 15747 add r3, r2, #1 15748 bl printk 15749.L2583: 15750 ldr r3, [r5, #12] 15751 mov r2, r6 15752 mov r1, r4 15753 mov r0, #16 15754 str r3, [sp] 15755 ldr r3, [r5, #4] 15756 bl flash_start_3d_mlc_page_prog 15757 bl nandc_iqr_wait_flash_ready 15758 bl nandc_wait_flash_ready 15759 ldr r3, [r5, #12] 15760 add r2, r6, #1 15761 mov r1, r4 15762 mov r0, #16 15763 str r3, [sp] 15764 ldr r3, [r5, #4] 15765 bl flash_start_3d_mlc_page_prog 15766 bl nandc_iqr_wait_flash_ready 15767 bl nandc_wait_flash_ready 15768 mov r1, #64 15769 ldr r0, [r5, #24] 15770 bl flash_wait_device_ready 15771 bl nandc_de_cs.constprop.35 15772 add sp, sp, #8 15773 @ sp needed 15774 pop {r4, r5, r6, pc} 15775.L2589: 15776 .align 2 15777.L2588: 15778 .word .LANCHOR0 15779 .word .LANCHOR2 15780 .word .LC171 15781 .fnend 15782 .size sblk_mlc_dump_prog, .-sblk_mlc_dump_prog 15783 .align 2 15784 .global flash_start_page_prog 15785 .syntax unified 15786 .arm 15787 .fpu softvfp 15788 .type flash_start_page_prog, %function 15789flash_start_page_prog: 15790 .fnstart 15791 @ args = 0, pretend = 0, frame = 8 15792 @ frame_needed = 0, uses_anonymous_args = 0 15793 push {r4, r5, r6, r7, r8, r9, r10, fp, lr} 15794 .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} 15795 mov r10, r2 15796 ldr r5, .L2605 15797 mov fp, r3 15798 mov r8, r1 15799 .pad #20 15800 sub sp, sp, #20 15801 str r0, [sp, #12] 15802 ldrb r2, [r5, #1153] @ zero_extendqisi2 15803 rsb r4, r2, #24 15804 lsr r3, r1, r4 15805 mvn r1, #0 15806 bic r3, r3, r1, lsl r2 15807 ldrb r2, [r5, #1109] @ zero_extendqisi2 15808 uxtb r9, r3 15809 cmp r2, r9 15810 bhi .L2591 15811 mov r2, #956 15812 ldr r1, .L2605+4 15813 ldr r0, .L2605+8 15814 bl printk 15815 bl dump_stack 15816.L2591: 15817 ldrb r2, [r5, #1109] @ zero_extendqisi2 15818 cmp r2, r9 15819 bls .L2590 15820 mvn r2, #0 15821 ldr r7, [r5, #1044] 15822 bic r4, r8, r2, lsl r4 15823 add r2, r5, r9 15824 ldrb r6, [r2, #1144] @ zero_extendqisi2 15825 bl nandc_rdy_status 15826 cmp r0, #0 15827 bne .L2593 15828 ldrb r2, [r5, #1109] @ zero_extendqisi2 15829 cmp r2, #1 15830 bne .L2594 15831 bl nandc_wait_flash_ready 15832.L2593: 15833 mov r0, r6 15834 bl hynix_reconfig_rr_para 15835 mov r0, r6 15836 bl nandc_cs 15837 tst r8, #50331648 15838 bne .L2595 15839 mov r0, r4 15840 bl slc_phy_page_address_calc 15841 ldrb r3, [r5] @ zero_extendqisi2 15842 mov r4, r0 15843 cmp r3, #0 15844 beq .L2596 15845 mov r0, r6 15846 bl zftl_flash_enter_slc_mode 15847.L2596: 15848 lsl r8, r6, #8 15849 mov r2, #128 15850 mov r0, r4 15851 add r3, r7, r8 15852 add r7, r7, r8 15853 str r2, [r3, #2056] 15854 mov r2, #0 15855 str r2, [r3, #2052] 15856 str r2, [r3, #2052] 15857 uxtb r2, r4 15858 str r2, [r3, #2052] 15859 lsr r2, r4, #8 15860 str r2, [r3, #2052] 15861 lsr r2, r4, #16 15862 str r2, [r3, #2052] 15863 ldrb r2, [r5, #1152] @ zero_extendqisi2 15864 cmp r2, #0 15865 lsrne r2, r4, #24 15866 strne r2, [r3, #2052] 15867 bl nandc_set_seed 15868 ldr r3, .L2605+12 15869 mov r1, #1 15870 mov r0, r6 15871 ldrb r2, [r3, #13] @ zero_extendqisi2 15872 mov r3, r10 15873 str fp, [sp] 15874 bl nandc_xfer 15875 ldr r3, [sp, #12] 15876 str r3, [r7, #2056] 15877 add sp, sp, #20 15878 @ sp needed 15879 pop {r4, r5, r6, r7, r8, r9, r10, fp, lr} 15880 b nandc_de_cs.constprop.35 15881.L2594: 15882 mov r2, #64 15883 mov r1, r4 15884 mov r0, r9 15885 bl flash_wait_device_ready_raw 15886 b .L2593 15887.L2595: 15888 mov r0, r6 15889 bl zftl_flash_exit_slc_mode 15890 b .L2596 15891.L2590: 15892 add sp, sp, #20 15893 @ sp needed 15894 pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} 15895.L2606: 15896 .align 2 15897.L2605: 15898 .word .LANCHOR0 15899 .word .LANCHOR1+1956 15900 .word .LC0 15901 .word .LANCHOR2 15902 .fnend 15903 .size flash_start_page_prog, .-flash_start_page_prog 15904 .align 2 15905 .syntax unified 15906 .arm 15907 .fpu softvfp 15908 .type queue_prog_cmd, %function 15909queue_prog_cmd: 15910 .fnstart 15911 @ args = 0, pretend = 0, frame = 0 15912 @ frame_needed = 0, uses_anonymous_args = 0 15913 push {r4, r5, r6, r7, r8, lr} 15914 .save {r4, r5, r6, r7, r8, lr} 15915 mov r4, r0 15916 ldr r3, [r0, #12] 15917 ldr r2, [r0, #4] 15918 ldr r1, [r0, #24] 15919 mov r0, #16 15920 bl flash_start_page_prog 15921 ldr r2, .L2616 15922 ldr r0, [r4, #24] 15923 ldrb r3, [r2, #2770] @ zero_extendqisi2 15924 cmp r3, #255 15925 beq .L2608 15926 ldrb ip, [r2, #1153] @ zero_extendqisi2 15927 mvn r1, #0 15928 mov r5, #48 15929 movw r8, #1256 15930 movw r6, #1274 15931 rsb r7, ip, #24 15932 mvn r1, r1, lsl ip 15933 uxth r1, r1 15934 and r0, r1, r0, asr r7 15935.L2610: 15936 mla ip, r5, r3, r2 15937 ldr lr, [ip, r8] 15938 and lr, r1, lr, lsr r7 15939 cmp r0, lr 15940 bne .L2609 15941 add lr, ip, r6 15942 ldrb ip, [ip, r6] @ zero_extendqisi2 15943 cmp ip, #7 15944 bne .L2609 15945 mov r3, #3 15946 strb r3, [lr] 15947.L2608: 15948 mov r3, #3 15949 mov r1, r4 15950 strb r3, [r4, #42] 15951 mov r3, #1 15952 strb r3, [r4, #43] 15953 mvn r3, #0 15954 strb r3, [r4] 15955 ldr r0, .L2616+4 15956 pop {r4, r5, r6, r7, r8, lr} 15957 b buf_add_tail 15958.L2609: 15959 mla r3, r5, r3, r2 15960 ldrb r3, [r3, #1232] @ zero_extendqisi2 15961 cmp r3, #255 15962 bne .L2610 15963 b .L2608 15964.L2617: 15965 .align 2 15966.L2616: 15967 .word .LANCHOR0 15968 .word .LANCHOR0+2770 15969 .fnend 15970 .size queue_prog_cmd, .-queue_prog_cmd 15971 .align 2 15972 .global flash_complete_plane_page_read 15973 .syntax unified 15974 .arm 15975 .fpu softvfp 15976 .type flash_complete_plane_page_read, %function 15977flash_complete_plane_page_read: 15978 .fnstart 15979 @ args = 0, pretend = 0, frame = 0 15980 @ frame_needed = 0, uses_anonymous_args = 0 15981 push {r0, r1, r4, r5, r6, r7, r8, r9, r10, lr} 15982 .save {r4, r5, r6, r7, r8, r9, r10, lr} 15983 .pad #8 15984 mov r10, r2 15985 ldr r5, .L2649 15986 mvn r2, #0 15987 mov r6, r0 15988 mov r9, r1 15989 ldrb r3, [r5, #1153] @ zero_extendqisi2 15990 rsb r4, r3, #24 15991 lsr r7, r0, r4 15992 bic r7, r7, r2, lsl r3 15993 ldrb r3, [r5, #1109] @ zero_extendqisi2 15994 uxtb r7, r7 15995 cmp r3, r7 15996 bhi .L2619 15997 movw r2, #1070 15998 ldr r1, .L2649+4 15999 ldr r0, .L2649+8 16000 bl printk 16001 bl dump_stack 16002.L2619: 16003 ldrb r3, [r5, #1109] @ zero_extendqisi2 16004 mvn r0, #0 16005 cmp r3, r7 16006 bls .L2618 16007 add r7, r5, r7 16008 bic r4, r6, r0, lsl r4 16009 ldrb r8, [r7, #1144] @ zero_extendqisi2 16010 ubfx r6, r6, #24, #2 16011 ldr r7, [r5, #1044] 16012 mov r0, r8 16013 bl nandc_cs 16014 cmp r6, #0 16015 bne .L2621 16016 mov r0, r4 16017 bl slc_phy_page_address_calc 16018 mov r4, r0 16019.L2621: 16020 ldrb r3, [r5, #1127] @ zero_extendqisi2 16021 uxtb lr, r4 16022 lsr ip, r4, #8 16023 ldrb r0, [r5, #1152] @ zero_extendqisi2 16024 cmp r3, #1 16025 lsl r3, r8, #8 16026 moveq r1, #6 16027 addeq r2, r7, r3 16028 beq .L2648 16029 ldr r2, [r5, #1104] 16030 ldrb r2, [r2, #12] @ zero_extendqisi2 16031 cmp r2, #3 16032 add r2, r7, r3 16033 bne .L2625 16034 mov r1, #5 16035.L2648: 16036 str r1, [r2, #2056] 16037 mov r1, #0 16038 str r1, [r2, #2052] 16039 cmp r0, #0 16040 str r1, [r2, #2052] 16041 lsr r1, r4, #16 16042 str lr, [r2, #2052] 16043 add r3, r7, r3 16044 str ip, [r2, #2052] 16045 str r1, [r2, #2052] 16046 lsrne r1, r4, #24 16047 strne r1, [r2, #2052] 16048.L2644: 16049 mov r2, #224 16050 cmp r6, #0 16051 str r2, [r3, #2056] 16052 ldr r3, [r5, #1104] 16053 ldrb r3, [r3, #12] @ zero_extendqisi2 16054 sub r3, r3, #3 16055 clz r3, r3 16056 lsr r3, r3, #5 16057 moveq r3, #0 16058 cmp r3, #0 16059 beq .L2628 16060 ldrb r3, [r5, #1158] @ zero_extendqisi2 16061 cmp r3, #0 16062 bne .L2628 16063 ldrb r3, [r5, #1159] @ zero_extendqisi2 16064 cmp r3, #0 16065 addeq r4, r4, r4, lsl #1 16066 subeq r6, r6, #1 16067 addeq r0, r4, r6 16068 beq .L2645 16069.L2628: 16070 mov r0, r4 16071.L2645: 16072 bl nandc_set_seed 16073 ldr r3, .L2649+12 16074 mov r1, #0 16075 mov r0, r8 16076 ldrb r2, [r3, #13] @ zero_extendqisi2 16077 mov r3, r9 16078 str r10, [sp] 16079 bl nandc_xfer 16080 bl nandc_de_cs.constprop.35 16081.L2618: 16082 add sp, sp, #8 16083 @ sp needed 16084 pop {r4, r5, r6, r7, r8, r9, r10, pc} 16085.L2625: 16086 mov r1, #0 16087 cmp r0, #0 16088 str r1, [r2, #2056] 16089 add r3, r7, r3 16090 str r1, [r2, #2052] 16091 str r1, [r2, #2052] 16092 lsr r1, r4, #16 16093 str lr, [r2, #2052] 16094 str ip, [r2, #2052] 16095 str r1, [r2, #2052] 16096 lsrne r1, r4, #24 16097 strne r1, [r2, #2052] 16098 mov r1, #5 16099 str r1, [r3, #2056] 16100 mov r1, #0 16101 str r1, [r2, #2052] 16102 str r1, [r2, #2052] 16103 b .L2644 16104.L2650: 16105 .align 2 16106.L2649: 16107 .word .LANCHOR0 16108 .word .LANCHOR1+1978 16109 .word .LC0 16110 .word .LANCHOR2 16111 .fnend 16112 .size flash_complete_plane_page_read, .-flash_complete_plane_page_read 16113 .align 2 16114 .global flash_complete_page_read 16115 .syntax unified 16116 .arm 16117 .fpu softvfp 16118 .type flash_complete_page_read, %function 16119flash_complete_page_read: 16120 .fnstart 16121 @ args = 0, pretend = 0, frame = 8 16122 @ frame_needed = 0, uses_anonymous_args = 0 16123 push {r4, r5, r6, r7, r8, r9, r10, fp, lr} 16124 .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} 16125 mov r3, #1 16126 ldr r4, .L2683 16127 mov fp, r2 16128 .pad #20 16129 sub sp, sp, #20 16130 mov r10, r1 16131 str r0, [sp, #12] 16132 ubfx r6, r0, #24, #2 16133 ldrb r7, [r4, #1153] @ zero_extendqisi2 16134 rsb r2, r7, #24 16135 lsl r7, r3, r7 16136 lsl r5, r3, r2 16137 ldrb r3, [r4, #1109] @ zero_extendqisi2 16138 sub r7, r7, #1 16139 sub r5, r5, #1 16140 and r7, r7, r0, lsr r2 16141 and r5, r5, r0 16142 uxtb r7, r7 16143 cmp r3, r7 16144 bhi .L2652 16145 mov r2, #1232 16146 ldr r1, .L2683+4 16147 ldr r0, .L2683+8 16148 bl printk 16149 bl dump_stack 16150.L2652: 16151 add r7, r4, r7 16152 ldrb r9, [r7, #1144] @ zero_extendqisi2 16153 ldr r7, [r4, #1044] 16154 mov r0, r9 16155 bl nandc_cs 16156 cmp r6, #0 16157 bne .L2653 16158 mov r0, r5 16159 bl slc_phy_page_address_calc 16160 mov r5, r0 16161.L2653: 16162 ldr r8, .L2683+12 16163 ldrb r3, [r8, #16] @ zero_extendqisi2 16164 cmp r3, #3 16165 bne .L2654 16166 add r7, r7, r9, lsl #8 16167 mov r3, #5 16168 str r3, [r7, #2056] 16169 mov r3, #0 16170 str r3, [r7, #2052] 16171 str r3, [r7, #2052] 16172 uxtb r3, r5 16173 str r3, [r7, #2052] 16174 lsr r3, r5, #8 16175 str r3, [r7, #2052] 16176 lsr r3, r5, #16 16177 str r3, [r7, #2052] 16178 mov r3, #224 16179 str r3, [r7, #2056] 16180.L2654: 16181 ldr r3, [r4, #1104] 16182 cmp r6, #0 16183 ldrb r3, [r3, #12] @ zero_extendqisi2 16184 sub r3, r3, #3 16185 clz r3, r3 16186 lsr r3, r3, #5 16187 moveq r3, #0 16188 cmp r3, #0 16189 beq .L2655 16190 ldrb r3, [r4, #1158] @ zero_extendqisi2 16191 cmp r3, #0 16192 bne .L2655 16193 ldrb r3, [r4, #1159] @ zero_extendqisi2 16194 cmp r3, #0 16195 addeq r3, r5, r5, lsl #1 16196 subeq r0, r6, #1 16197 addeq r0, r0, r3 16198 beq .L2682 16199.L2655: 16200 mov r0, r5 16201.L2682: 16202 bl nandc_set_seed 16203 ldrb r2, [r8, #13] @ zero_extendqisi2 16204 mov r3, r10 16205 str fp, [sp] 16206 mov r1, #0 16207 mov r0, r9 16208 bl nandc_xfer 16209 cmn r0, #1 16210 bne .L2657 16211 ldrb r7, [r4, #1196] @ zero_extendqisi2 16212 cmp r7, #0 16213 beq .L2658 16214 mov r3, #0 16215 mov r2, r10 16216 strb r3, [r4, #1196] 16217 orr r1, r5, r6, lsl #24 16218 ldrb r3, [r8, #13] @ zero_extendqisi2 16219 mov r0, r9 16220 str r3, [sp] 16221 mov r3, fp 16222 bl flash_read_page 16223 cmp r6, #0 16224 strb r7, [r4, #1196] 16225 bne .L2659 16226.L2664: 16227 ldrb r3, [r4] @ zero_extendqisi2 16228 cmp r3, #0 16229 beq .L2659 16230 ldrb r3, [r4, #1193] @ zero_extendqisi2 16231 add r3, r3, r3, lsl #1 16232 cmp r0, r3, asr #2 16233 blt .L2659 16234 ldrb r3, [r8, #23] @ zero_extendqisi2 16235 sub r3, r3, #4 16236 cmp r3, #4 16237 movls r0, #256 16238.L2651: 16239 add sp, sp, #20 16240 @ sp needed 16241 pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} 16242.L2659: 16243 cmn r0, #1 16244 bne .L2651 16245.L2665: 16246 ldr r3, .L2683+16 16247 ldr r7, [r3, #-100] 16248 cmp r7, #0 16249 bne .L2661 16250.L2663: 16251 ldrb r3, [r4, #1196] @ zero_extendqisi2 16252 mov r1, #0 16253 ldr r2, [sp, #12] 16254 ldr r0, .L2683+20 16255 str r3, [sp] 16256 mvn r3, #0 16257 bl printk 16258 ldrb r3, [r4, #1143] @ zero_extendqisi2 16259 cmp r3, #0 16260 mvneq r0, #0 16261 beq .L2651 16262 ldrb r3, [r8, #13] @ zero_extendqisi2 16263 mov r2, r10 16264 orr r1, r5, r6, lsl #24 16265 mov r0, r9 16266 str r3, [sp] 16267 mov r3, fp 16268 bl flash_ddr_tuning_read 16269 b .L2651 16270.L2661: 16271 ldrb r3, [r8, #13] @ zero_extendqisi2 16272 mov r2, r10 16273 orr r1, r5, r6, lsl #24 16274 mov r0, r9 16275 str r3, [sp] 16276 mov r3, fp 16277 blx r7 16278 cmn r0, #1 16279 bne .L2651 16280 b .L2663 16281.L2658: 16282 cmp r6, #0 16283 beq .L2664 16284 b .L2665 16285.L2657: 16286 cmp r6, #0 16287 bne .L2651 16288 b .L2664 16289.L2684: 16290 .align 2 16291.L2683: 16292 .word .LANCHOR0 16293 .word .LANCHOR1+2009 16294 .word .LC0 16295 .word .LANCHOR2 16296 .word .LANCHOR3 16297 .word .LC172 16298 .fnend 16299 .size flash_complete_page_read, .-flash_complete_page_read 16300 .align 2 16301 .syntax unified 16302 .arm 16303 .fpu softvfp 16304 .type queue_wait_first_req_completed, %function 16305queue_wait_first_req_completed: 16306 .fnstart 16307 @ args = 0, pretend = 0, frame = 8 16308 @ frame_needed = 0, uses_anonymous_args = 0 16309 push {r4, r5, r6, r7, r8, r9, r10, fp, lr} 16310 .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} 16311 .pad #20 16312 sub sp, sp, #20 16313 ldr r4, .L2779 16314 ldrb r5, [r4, #2770] @ zero_extendqisi2 16315 cmp r5, #255 16316 bne .L2686 16317.L2719: 16318 mov r7, #0 16319 b .L2685 16320.L2686: 16321 mov r8, #48 16322 mla r2, r8, r5, r4 16323 ldrb r3, [r2, #1274] @ zero_extendqisi2 16324 ldr r7, [r2, #1256] 16325 sub r2, r3, #1 16326 cmp r2, #10 16327 ldrls pc, [pc, r2, asl #2] 16328 b .L2719 16329.L2689: 16330 .word .L2688 16331 .word .L2690 16332 .word .L2691 16333 .word .L2691 16334 .word .L2691 16335 .word .L2691 16336 .word .L2692 16337 .word .L2693 16338 .word .L2694 16339 .word .L2691 16340 .word .L2694 16341.L2688: 16342 mla r8, r8, r5, r4 16343 bl nandc_wait_flash_ready 16344 ldr r3, [r8, #1240] 16345 ldr r1, [r8, #1236] 16346 cmp r3, #0 16347 beq .L2695 16348 ldr r2, .L2779+4 16349 ldrb r0, [r8, #1272] @ zero_extendqisi2 16350 ldrb r2, [r2, #-2546] @ zero_extendqisi2 16351 cmp r0, r2 16352 moveq r1, r3 16353.L2695: 16354 mov r3, #48 16355 mov r0, r7 16356 mla r4, r3, r5, r4 16357 ldr r2, [r4, #1244] 16358 bl flash_complete_page_read 16359 str r0, [r4, #1268] 16360.L2778: 16361 mov r3, #13 16362 strb r3, [r4, #1274] 16363 ldrb r3, [r4, #1234] @ zero_extendqisi2 16364 orr r3, r3, #8 16365 strb r3, [r4, #1234] 16366 b .L2719 16367.L2690: 16368 bl nandc_wait_flash_ready 16369 mla r3, r8, r5, r4 16370 ldrb r6, [r3, #1232] @ zero_extendqisi2 16371 ldr r2, [r3, #1240] 16372 ldr r9, [r3, #1236] 16373 mla r8, r8, r6, r4 16374 cmp r2, #0 16375 ldr r10, [r8, #1236] 16376 beq .L2696 16377 ldrb r1, [r3, #1272] @ zero_extendqisi2 16378 ldr r3, .L2779+4 16379 ldrb r3, [r3, #-2546] @ zero_extendqisi2 16380 cmp r1, r3 16381 moveq r9, r2 16382.L2696: 16383 mov r3, #48 16384 mla r3, r3, r6, r4 16385 ldr r2, [r3, #1240] 16386 cmp r2, #0 16387 beq .L2697 16388 ldrb r1, [r3, #1272] @ zero_extendqisi2 16389 ldr r3, .L2779+4 16390 ldrb r3, [r3, #-2546] @ zero_extendqisi2 16391 cmp r1, r3 16392 moveq r10, r2 16393.L2697: 16394 mov r7, #48 16395 mov r1, r9 16396 mla r3, r7, r5, r4 16397 mla r7, r7, r6, r4 16398 ldr r2, [r3, #1244] 16399 ldr r0, [r3, #1256] 16400 str r3, [sp, #12] 16401 bl flash_complete_plane_page_read 16402 ldr r2, [r7, #1244] 16403 mov r8, r0 16404 mov r1, r10 16405 ldr r0, [r7, #1256] 16406 bl flash_complete_plane_page_read 16407 cmn r8, #1 16408 mov fp, r0 16409 beq .L2698 16410 ldr r3, [sp, #12] 16411 ldr r2, [r3, #1252] 16412 cmn r2, #1 16413 beq .L2699 16414 ldr r3, [r3, #1244] 16415 ldr r3, [r3, #4] 16416 cmp r2, r3 16417 beq .L2699 16418.L2698: 16419 mov r7, #48 16420 ldrb r3, [r4, #1153] @ zero_extendqisi2 16421 mla r7, r7, r5, r4 16422 mvn ip, #0 16423 mvn ip, ip, lsl r3 16424 rsb r1, r3, #24 16425 ldr lr, [r7, #1256] 16426 mov r2, r9 16427 ldr r3, .L2779+4 16428 ldrb r3, [r3, #-2546] @ zero_extendqisi2 16429 and r0, ip, lr, lsr r1 16430 bic r1, lr, ip, lsl r1 16431 uxtb r0, r0 16432 str r3, [sp] 16433 ldr r3, [r7, #1244] 16434 bl flash_read_page_en 16435 ldr r2, [r7, #1252] 16436 mov r8, r0 16437 cmn r2, #1 16438 beq .L2700 16439 ldr r3, [r7, #1244] 16440 ldr r1, [r3, #4] 16441 cmp r2, r1 16442 beq .L2700 16443 ldr r0, .L2779+8 16444 ldr r0, [r0] 16445 tst r0, #64 16446 beq .L2700 16447 str r1, [sp] 16448 ldr r0, .L2779+12 16449 ldr r3, [r3] 16450 ldr r1, [r7, #1256] 16451 bl printk 16452.L2700: 16453 mov r3, #48 16454 mla r3, r3, r5, r4 16455 ldr r2, [r3, #1252] 16456 cmn r2, #1 16457 beq .L2699 16458 ldr r3, [r3, #1244] 16459 ldr r3, [r3, #4] 16460 cmp r2, r3 16461 beq .L2699 16462 movw r2, #431 16463 ldr r1, .L2779+16 16464 ldr r0, .L2779+20 16465 bl printk 16466 bl dump_stack 16467.L2699: 16468 mov r3, #48 16469 mov r2, #13 16470 mla r5, r3, r5, r4 16471 cmn fp, #1 16472 strb r2, [r5, #1274] 16473 ldrb r2, [r5, #1234] @ zero_extendqisi2 16474 str r8, [r5, #1268] 16475 orr r2, r2, #8 16476 strb r2, [r5, #1234] 16477 beq .L2701 16478 mla r3, r3, r6, r4 16479 ldr r2, [r3, #1252] 16480 cmn r2, #1 16481 beq .L2703 16482 ldr r3, [r3, #1244] 16483 ldr r3, [r3, #4] 16484 cmp r2, r3 16485 beq .L2703 16486.L2701: 16487 mov r5, #48 16488 ldrb r3, [r4, #1153] @ zero_extendqisi2 16489 mla r5, r5, r6, r4 16490 mvn ip, #0 16491 mvn ip, ip, lsl r3 16492 rsb r1, r3, #24 16493 ldr lr, [r5, #1256] 16494 mov r2, r10 16495 ldr r3, .L2779+4 16496 ldrb r3, [r3, #-2546] @ zero_extendqisi2 16497 and r0, ip, lr, lsr r1 16498 bic r1, lr, ip, lsl r1 16499 uxtb r0, r0 16500 str r3, [sp] 16501 ldr r3, [r5, #1244] 16502 bl flash_read_page_en 16503 ldr r2, [r5, #1252] 16504 cmn r2, #1 16505 beq .L2705 16506 ldr r3, [r5, #1244] 16507 ldr r1, [r3, #4] 16508 cmp r2, r1 16509 beq .L2705 16510 ldr r0, .L2779+8 16511 ldr r0, [r0] 16512 tst r0, #64 16513 beq .L2705 16514 str r1, [sp] 16515 ldr r0, .L2779+12 16516 ldr r3, [r3] 16517 ldr r1, [r5, #1256] 16518 bl printk 16519.L2705: 16520 mov r3, #48 16521 mla r3, r3, r6, r4 16522 ldr r2, [r3, #1252] 16523 cmn r2, #1 16524 beq .L2703 16525 ldr r3, [r3, #1244] 16526 ldr r3, [r3, #4] 16527 cmp r2, r3 16528 beq .L2703 16529 movw r2, #450 16530 ldr r1, .L2779+16 16531 ldr r0, .L2779+20 16532 bl printk 16533 bl dump_stack 16534.L2703: 16535 mov r3, #48 16536 mla r4, r3, r6, r4 16537 str r8, [r4, #1268] 16538 b .L2778 16539.L2691: 16540 bl nandc_iqr_wait_flash_ready 16541 mov r0, r7 16542 mov r1, #64 16543 bl flash_wait_device_ready 16544 tst r0, #64 16545 mov r7, r0 16546 beq .L2719 16547 ands r2, r0, #5 16548 mov r3, #48 16549 beq .L2707 16550 mla r4, r3, r5, r4 16551 mov r3, #12 16552 mov r2, r0 16553 ldr r0, .L2779+24 16554 strb r3, [r4, #1274] 16555 ldrb r1, [r4, #1233] @ zero_extendqisi2 16556 str r3, [sp] 16557 ldr r3, [r4, #1256] 16558 bl printk 16559.L2777: 16560 mvn r3, #0 16561 str r3, [r4, #1268] 16562 b .L2685 16563.L2707: 16564 mul r3, r3, r5 16565 mov r1, #13 16566 add r7, r4, r3 16567 str r2, [r7, #1268] 16568 ldr r2, [r4, #2800] 16569 strb r1, [r7, #1274] 16570 ldr r1, [r2, #156] 16571 ldr r2, .L2779+28 16572 cmp r1, r2 16573 bne .L2719 16574 ldr r2, .L2779+32 16575 add r3, r2, r3 16576 ldrh r3, [r3, #34] 16577 cmp r3, #0 16578 bne .L2719 16579 ldrb r3, [r4, #1153] @ zero_extendqisi2 16580 mvn ip, #0 16581 ldr lr, [r7, #1256] 16582 ldr r6, .L2779+4 16583 rsb r1, r3, #24 16584 mvn ip, ip, lsl r3 16585 ldrb r3, [r6, #-2546] @ zero_extendqisi2 16586 and r0, ip, lr, lsr r1 16587 bic r1, lr, ip, lsl r1 16588 str r3, [sp] 16589 uxtb r0, r0 16590 ldr r3, [r6, #-96] 16591 ldr r2, [r6, #-92] 16592 bl flash_read_page_en 16593 cmn r0, #1 16594 mov r3, r0 16595 beq .L2708 16596 ldr r1, [r7, #1244] 16597 ldr r2, [r6, #-96] 16598 ldr r1, [r1] 16599 ldr r2, [r2] 16600 cmp r1, r2 16601 beq .L2719 16602.L2708: 16603 mov r2, #48 16604 ldr r0, .L2779+36 16605 mla r5, r2, r5, r4 16606 ldrb r2, [r4, #1196] @ zero_extendqisi2 16607 ldrb r1, [r5, #1233] @ zero_extendqisi2 16608 str r2, [sp] 16609 ldr r2, [r5, #1256] 16610 bl printk 16611 mvn r3, #0 16612 str r3, [r5, #1268] 16613 b .L2719 16614.L2694: 16615 ldrb r1, [r4, #1153] @ zero_extendqisi2 16616 mvn r2, #0 16617 cmp r3, #11 16618 ldr r9, .L2779+32 16619 moveq r3, #10 16620 movne r3, #3 16621 rsb r0, r1, #24 16622 mov lr, r3 16623 mvn r2, r2, lsl r1 16624 add r3, r5, r5, lsl #1 16625 and r1, r2, r7, lsr r0 16626 add r3, r9, r3, lsl #4 16627 uxth r1, r1 16628 mov r6, #48 16629 movw r10, #1256 16630.L2710: 16631 ldrb r8, [r3] @ zero_extendqisi2 16632 cmp r8, #255 16633 mvneq r7, #0 16634 beq .L2685 16635.L2717: 16636 mla ip, r6, r8, r4 16637 movw fp, #1274 16638 add r3, r8, r8, lsl #1 16639 ldrb fp, [ip, fp] @ zero_extendqisi2 16640 add r3, r9, r3, lsl #4 16641 cmp fp, lr 16642 bne .L2710 16643 ldr ip, [ip, r10] 16644 and ip, r2, ip, lsr r0 16645 cmp r1, ip 16646 bne .L2710 16647 bl nandc_iqr_wait_flash_ready 16648 mov r0, r7 16649 mov r1, #64 16650 bl flash_wait_device_ready 16651 tst r0, #64 16652 mov r7, r0 16653 bne .L2712 16654.L2776: 16655 mov r7, #0 16656 b .L2713 16657.L2712: 16658 ands r3, r0, #15 16659 mul r6, r6, r5 16660 beq .L2714 16661 add r6, r4, r6 16662 mov r9, #12 16663 ldrb r1, [r6, #1233] @ zero_extendqisi2 16664 mov r2, r0 16665 str r9, [sp] 16666 ldr r0, .L2779+40 16667 ldr r3, [r6, #1256] 16668 bl printk 16669 mvn r3, #0 16670 strb r9, [r6, #1274] 16671 str r3, [r6, #1268] 16672.L2713: 16673 mov r3, #48 16674 mla r5, r3, r5, r4 16675 mla r8, r3, r8, r4 16676 ldrb r2, [r5, #1274] @ zero_extendqisi2 16677 ldr r3, [r5, #1268] 16678 strb r2, [r8, #1274] 16679 str r3, [r8, #1268] 16680.L2685: 16681 mov r0, r7 16682 add sp, sp, #20 16683 @ sp needed 16684 pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} 16685.L2714: 16686 add r7, r4, r6 16687 mov r2, #13 16688 str r3, [r7, #1268] 16689 ldr r3, [r4, #2800] 16690 strb r2, [r7, #1274] 16691 ldr r2, [r3, #156] 16692 ldr r3, .L2779+28 16693 cmp r2, r3 16694 bne .L2776 16695 add r6, r9, r6 16696 ldrh r3, [r6, #34] 16697 cmp r3, #0 16698 bne .L2776 16699 ldrb r3, [r4, #1153] @ zero_extendqisi2 16700 mvn ip, #0 16701 ldr lr, [r7, #1256] 16702 ldr r6, .L2779+4 16703 rsb r1, r3, #24 16704 mvn ip, ip, lsl r3 16705 ldrb r3, [r6, #-2546] @ zero_extendqisi2 16706 and r0, ip, lr, lsr r1 16707 bic r1, lr, ip, lsl r1 16708 str r3, [sp] 16709 uxtb r0, r0 16710 ldr r3, [r6, #-96] 16711 ldr r2, [r6, #-92] 16712 bl flash_read_page_en 16713 cmn r0, #1 16714 mov r3, r0 16715 beq .L2716 16716 ldr r1, [r7, #1244] 16717 ldr r2, [r6, #-96] 16718 ldr r1, [r1] 16719 ldr r2, [r2] 16720 cmp r1, r2 16721 beq .L2776 16722.L2716: 16723 mov r6, #48 16724 ldrb r2, [r4, #1196] @ zero_extendqisi2 16725 mla r6, r6, r5, r4 16726 ldr r0, .L2779+44 16727 ldrb r1, [r6, #1233] @ zero_extendqisi2 16728 str r2, [sp] 16729 ldr r2, [r6, #1256] 16730 bl printk 16731 mvn r3, #0 16732 str r3, [r6, #1268] 16733 b .L2776 16734.L2692: 16735 mov r0, r7 16736 mov r1, #32 16737 bl flash_wait_device_ready 16738 tst r0, #32 16739 mov r7, r0 16740 beq .L2719 16741 ands r2, r0, #15 16742 mov r3, #48 16743 mla r4, r3, r5, r4 16744 movne r3, #12 16745 strbne r3, [r4, #1274] 16746 bne .L2777 16747.L2718: 16748 mov r3, #13 16749 str r2, [r4, #1268] 16750 strb r3, [r4, #1274] 16751 b .L2719 16752.L2693: 16753 mov r1, #64 16754 mov r0, r7 16755 bl flash_wait_device_ready 16756 tst r0, #64 16757 movne r3, #48 16758 mlane r4, r3, r5, r4 16759 movne r3, #7 16760 strne r0, [r4, #1268] 16761 strbne r3, [r4, #1274] 16762 b .L2719 16763.L2780: 16764 .align 2 16765.L2779: 16766 .word .LANCHOR0 16767 .word .LANCHOR3 16768 .word .LANCHOR2 16769 .word .LC173 16770 .word .LANCHOR1+2034 16771 .word .LC0 16772 .word .LC174 16773 .word 1145785929 16774 .word .LANCHOR0+1232 16775 .word .LC175 16776 .word .LC176 16777 .word .LC177 16778 .fnend 16779 .size queue_wait_first_req_completed, .-queue_wait_first_req_completed 16780 .align 2 16781 .global sblk_prog_page 16782 .syntax unified 16783 .arm 16784 .fpu softvfp 16785 .type sblk_prog_page, %function 16786sblk_prog_page: 16787 .fnstart 16788 @ args = 0, pretend = 0, frame = 8 16789 @ frame_needed = 0, uses_anonymous_args = 0 16790 push {r0, r1, r2, r4, r5, r6, r7, r8, r9, r10, fp, lr} 16791 .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} 16792 .pad #12 16793 mov r4, r0 16794 ldrh r3, [r0, #34] 16795 mov r5, r1 16796 cmp r3, #0 16797 beq .L2782 16798 ldr r3, .L2812 16799 ldr r3, [r3] 16800 tst r3, #256 16801 beq .L2782 16802 mov r2, r1 16803 ldr r1, [r0, #24] 16804 ldr r0, .L2812+4 16805 bl printk 16806.L2782: 16807 ldr r8, .L2812+8 16808 mov r6, #0 16809 ldr fp, .L2812+12 16810.L2783: 16811 cmp r5, #0 16812 bne .L2794 16813.L2810: 16814 mov r0, #0 16815 add sp, sp, #12 16816 @ sp needed 16817 pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} 16818.L2794: 16819 ldrb r9, [r4] @ zero_extendqisi2 16820 ldr r7, [r4, #24] 16821.L2784: 16822 mov r1, #1 16823 mov r0, r7 16824 bl queue_lun_state 16825 cmp r0, #0 16826 bne .L2785 16827 cmp r5, #1 16828 beq .L2786 16829 ldrb r3, [r8, #1194] @ zero_extendqisi2 16830 cmp r3, #0 16831 beq .L2786 16832 ldrb r3, [r8, #1159] @ zero_extendqisi2 16833 cmp r3, #0 16834 beq .L2787 16835.L2786: 16836 mov r0, r4 16837 bl queue_prog_cmd 16838.L2788: 16839 subs r5, r5, #1 16840 beq .L2810 16841 ldr r4, .L2812+16 16842 add r9, r9, r9, lsl #1 16843 add r4, r4, r9, lsl #4 16844 b .L2783 16845.L2785: 16846 bl queue_wait_first_req_completed 16847 bl queue_remove_completed_req 16848 b .L2784 16849.L2787: 16850 ldrb r2, [r8, #1153] @ zero_extendqisi2 16851 mvn r3, #0 16852 rsb r1, r2, #24 16853 mvn r3, r3, lsl r2 16854 ldrb r2, [r4] @ zero_extendqisi2 16855 and r3, r3, r7, lsr r1 16856 cmp r2, #255 16857 uxth r3, r3 16858 bne .L2789 16859 movw r2, #697 16860 ldr r1, .L2812+20 16861 ldr r0, .L2812+24 16862 str r3, [sp, #4] 16863 bl printk 16864 bl dump_stack 16865 ldr r3, [sp, #4] 16866.L2789: 16867 ldrb r2, [r4] @ zero_extendqisi2 16868 mov r1, #48 16869 mov r10, #1 16870 mla r2, r1, r2, r8 16871 ldrb r1, [r8, #1153] @ zero_extendqisi2 16872 ldr r0, [r2, #1256] 16873 rsb r2, r1, #24 16874 lsl r1, r10, r1 16875 sub r1, r1, #1 16876 and r1, r1, r0, lsr r2 16877 uxth r1, r1 16878 cmp r3, r1 16879 bne .L2790 16880 ldr r3, .L2812+28 16881 ldrb lr, [fp, #-3136] @ zero_extendqisi2 16882 ldrh ip, [r3, #-2] 16883 sub lr, lr, #1 16884 sub r3, r2, ip 16885 lsl r3, r10, r3 16886 lsl r2, r10, ip 16887 sub r3, r3, #1 16888 sub r2, r2, #1 16889 and r3, r3, lr 16890 uxth r2, r2 16891 uxth r3, r3 16892 and r1, r3, r7, lsr ip 16893 and r3, r3, r0, lsr ip 16894 and ip, r2, r7 16895 subs r7, r1, r3 16896 and r2, r2, r0 16897 movne r7, #1 16898 cmp ip, r2 16899 movne r7, #0 16900 cmp r7, #0 16901 beq .L2790 16902 cmp r6, lr 16903 beq .L2790 16904 ldr r3, [r4, #12] 16905 mov r0, #17 16906 ldr r2, [r4, #4] 16907 add r6, r6, r10 16908 ldr r1, [r4, #24] 16909 bl flash_start_page_prog 16910 mov r3, #9 16911 strb r10, [r4, #43] 16912 strb r3, [r4, #42] 16913 mvn r3, #0 16914 strb r3, [r4] 16915 mov r1, r4 16916 ldr r0, .L2812+32 16917 bl buf_add_tail 16918 b .L2788 16919.L2790: 16920 mov r0, r4 16921 mov r6, #0 16922 bl queue_prog_cmd 16923 b .L2788 16924.L2813: 16925 .align 2 16926.L2812: 16927 .word .LANCHOR2 16928 .word .LC178 16929 .word .LANCHOR0 16930 .word .LANCHOR3 16931 .word .LANCHOR0+1232 16932 .word .LANCHOR1+2065 16933 .word .LC0 16934 .word .LANCHOR3-3136 16935 .word .LANCHOR0+2770 16936 .fnend 16937 .size sblk_prog_page, .-sblk_prog_page 16938 .align 2 16939 .global sblk_wait_write_queue_completed 16940 .syntax unified 16941 .arm 16942 .fpu softvfp 16943 .type sblk_wait_write_queue_completed, %function 16944sblk_wait_write_queue_completed: 16945 .fnstart 16946 @ args = 0, pretend = 0, frame = 0 16947 @ frame_needed = 0, uses_anonymous_args = 0 16948 push {r4, lr} 16949 .save {r4, lr} 16950 ldr r4, .L2818 16951.L2815: 16952 ldrb r3, [r4, #2770] @ zero_extendqisi2 16953 cmp r3, #255 16954 bne .L2816 16955 pop {r4, pc} 16956.L2816: 16957 bl queue_wait_first_req_completed 16958 bl queue_remove_completed_req 16959 b .L2815 16960.L2819: 16961 .align 2 16962.L2818: 16963 .word .LANCHOR0 16964 .fnend 16965 .size sblk_wait_write_queue_completed, .-sblk_wait_write_queue_completed 16966 .align 2 16967 .global ftl_flush 16968 .syntax unified 16969 .arm 16970 .fpu softvfp 16971 .type ftl_flush, %function 16972ftl_flush: 16973 .fnstart 16974 @ args = 0, pretend = 0, frame = 0 16975 @ frame_needed = 0, uses_anonymous_args = 0 16976 push {r4, r5, r6, lr} 16977 .save {r4, r5, r6, lr} 16978 ldr r4, .L2826 16979 ldr r5, .L2826+4 16980 ldrb r1, [r4, #2797] @ zero_extendqisi2 16981 cmp r1, #0 16982 beq .L2821 16983 ldrb r3, [r5, #-88] @ zero_extendqisi2 16984 add r0, r4, #1232 16985 add r3, r3, r3, lsl #1 16986 add r0, r0, r3, lsl #4 16987 bl sblk_prog_page 16988.L2821: 16989 mvn r3, #0 16990 strb r3, [r5, #-88] 16991 mov r3, #0 16992 strb r3, [r4, #2797] 16993 bl sblk_wait_write_queue_completed 16994 bl ftl_write_completed 16995 movw r0, #65535 16996 pop {r4, r5, r6, lr} 16997 b ftl_vpn_decrement 16998.L2827: 16999 .align 2 17000.L2826: 17001 .word .LANCHOR0 17002 .word .LANCHOR3 17003 .fnend 17004 .size ftl_flush, .-ftl_flush 17005 .align 2 17006 .global zftl_cache_flush 17007 .syntax unified 17008 .arm 17009 .fpu softvfp 17010 .type zftl_cache_flush, %function 17011zftl_cache_flush: 17012 .fnstart 17013 @ args = 0, pretend = 0, frame = 0 17014 @ frame_needed = 0, uses_anonymous_args = 0 17015 ldr r3, .L2836 17016 ldrb r3, [r3, #2797] @ zero_extendqisi2 17017 cmp r3, #0 17018 bxeq lr 17019 push {r4, lr} 17020 .save {r4, lr} 17021 bl timer_get_time 17022 ldr r3, .L2836+4 17023 ldr r3, [r3, #-84] 17024 add r3, r3, #100 17025 cmp r0, r3 17026 popls {r4, pc} 17027 pop {r4, lr} 17028 b ftl_flush 17029.L2837: 17030 .align 2 17031.L2836: 17032 .word .LANCHOR0 17033 .word .LANCHOR3 17034 .fnend 17035 .size zftl_cache_flush, .-zftl_cache_flush 17036 .align 2 17037 .global ftl_read_page 17038 .syntax unified 17039 .arm 17040 .fpu softvfp 17041 .type ftl_read_page, %function 17042ftl_read_page: 17043 .fnstart 17044 @ args = 4, pretend = 0, frame = 0 17045 @ frame_needed = 0, uses_anonymous_args = 0 17046 push {r4, r5, r6, r7, r8, lr} 17047 .save {r4, r5, r6, r7, r8, lr} 17048 mov r4, r0 17049 ldr r8, [sp, #24] 17050 mov r5, r1 17051 mov r6, r2 17052 mov r7, r3 17053 bl sblk_wait_write_queue_completed 17054 mov r3, r7 17055 str r8, [sp, #24] 17056 mov r2, r6 17057 mov r1, r5 17058 mov r0, r4 17059 pop {r4, r5, r6, r7, r8, lr} 17060 b flash_read_page_en 17061 .fnend 17062 .size ftl_read_page, .-ftl_read_page 17063 .align 2 17064 .global ftl_read_ppa_page 17065 .syntax unified 17066 .arm 17067 .fpu softvfp 17068 .type ftl_read_ppa_page, %function 17069ftl_read_ppa_page: 17070 .fnstart 17071 @ args = 0, pretend = 0, frame = 0 17072 @ frame_needed = 0, uses_anonymous_args = 0 17073 push {r0, r1, r4, r5, r6, r7, r8, lr} 17074 .save {r4, r5, r6, r7, r8, lr} 17075 .pad #8 17076 mov r8, r3 17077 ldr r3, .L2842 17078 mov r5, r0 17079 mvn r4, #0 17080 mov r6, r1 17081 mov r7, r2 17082 ldrb r0, [r3, #1153] @ zero_extendqisi2 17083 rsb r3, r0, #24 17084 mvn r4, r4, lsl r0 17085 and r4, r4, r5, lsr r3 17086 uxtb r4, r4 17087 bl sblk_wait_write_queue_completed 17088 mov r3, r7 17089 str r8, [sp] 17090 mov r2, r6 17091 mov r1, r5 17092 mov r0, r4 17093 bl flash_read_page_en 17094 add sp, sp, #8 17095 @ sp needed 17096 pop {r4, r5, r6, r7, r8, pc} 17097.L2843: 17098 .align 2 17099.L2842: 17100 .word .LANCHOR0 17101 .fnend 17102 .size ftl_read_ppa_page, .-ftl_read_ppa_page 17103 .align 2 17104 .global sblk_read_page 17105 .syntax unified 17106 .arm 17107 .fpu softvfp 17108 .type sblk_read_page, %function 17109sblk_read_page: 17110 .fnstart 17111 @ args = 0, pretend = 0, frame = 8 17112 @ frame_needed = 0, uses_anonymous_args = 0 17113 push {r0, r1, r2, r4, r5, r6, r7, r8, r9, r10, fp, lr} 17114 .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} 17115 .pad #12 17116 mov r10, r0 17117 mov r7, r1 17118 mov r4, r0 17119 mov r5, r1 17120.L2845: 17121 cmp r5, #0 17122 bne .L2855 17123.L2868: 17124 ldr r4, .L2870 17125.L2856: 17126 cmp r7, #0 17127 bne .L2858 17128 mov r0, r7 17129 add sp, sp, #12 17130 @ sp needed 17131 pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} 17132.L2855: 17133 ldrb r8, [r4] @ zero_extendqisi2 17134 ldr fp, [r4, #24] 17135.L2846: 17136 mov r1, #0 17137 mov r0, fp 17138 bl queue_lun_state 17139 cmp r0, #0 17140 bne .L2847 17141 cmp r5, #1 17142 beq .L2852 17143 ldr r3, .L2870+4 17144 ldrb r3, [r3, #-80] @ zero_extendqisi2 17145 cmp r3, #0 17146 bne .L2849 17147.L2852: 17148 mov r0, r4 17149 bl queue_read_cmd 17150 b .L2850 17151.L2847: 17152 bl queue_wait_first_req_completed 17153 bl queue_remove_completed_req 17154 b .L2846 17155.L2849: 17156 ldr r3, .L2870+8 17157 ldrb r2, [r3, #1153] @ zero_extendqisi2 17158 mvn r3, #0 17159 rsb r1, r2, #24 17160 mvn r3, r3, lsl r2 17161 ldrb r2, [r4] @ zero_extendqisi2 17162 and r3, r3, fp, lsr r1 17163 cmp r2, #255 17164 uxth r3, r3 17165 bne .L2851 17166 movw r2, #782 17167 ldr r1, .L2870+12 17168 ldr r0, .L2870+16 17169 str r3, [sp] 17170 bl printk 17171 bl dump_stack 17172 ldr r3, [sp] 17173.L2851: 17174 ldr r2, .L2870+8 17175 mov r6, #48 17176 ldrb r9, [r4] @ zero_extendqisi2 17177 ldrb ip, [r2, #1153] @ zero_extendqisi2 17178 mla r6, r6, r9, r2 17179 mvn r2, #0 17180 mvn r2, r2, lsl ip 17181 rsb r0, ip, #24 17182 ldr r1, [r6, #1256] 17183 and r2, r2, r1, lsr r0 17184 uxth r2, r2 17185 cmp r3, r2 17186 bne .L2852 17187 ldr r3, .L2870+20 17188 ldrh r3, [r3] 17189 add fp, r3, fp 17190 cmp r1, fp 17191 bne .L2852 17192 ldr r0, [r4, #24] 17193 mvn fp, #0 17194 ldrb r8, [r6, #1232] @ zero_extendqisi2 17195 add r9, r9, r9, lsl #1 17196 add r5, r5, fp 17197 bl flash_start_plane_read 17198 mov r2, #2 17199 mov r3, #0 17200 strb r2, [r4, #42] 17201 mov r1, r4 17202 strb r3, [r4, #43] 17203 ldr r0, .L2870+24 17204 strb fp, [r4] 17205 str r2, [sp, #4] 17206 str r3, [sp] 17207 bl buf_add_tail 17208 ldr r1, .L2870 17209 ldr r2, [sp, #4] 17210 ldr r3, [sp] 17211 strb fp, [r6, #1232] 17212 strb r2, [r6, #1274] 17213 add r1, r1, r9, lsl #4 17214 strb r3, [r6, #1275] 17215 ldr r0, .L2870+24 17216 bl buf_add_tail 17217.L2850: 17218 subs r5, r5, #1 17219 beq .L2868 17220 ldr r4, .L2870 17221 add r8, r8, r8, lsl #1 17222 add r4, r4, r8, lsl #4 17223 b .L2845 17224.L2858: 17225 ldrb r3, [r10, #42] @ zero_extendqisi2 17226 cmp r3, #13 17227 bne .L2857 17228 ldrb r3, [r10] @ zero_extendqisi2 17229 sub r7, r7, #1 17230 cmp r3, #255 17231 addne r3, r3, r3, lsl #1 17232 addne r10, r4, r3, lsl #4 17233.L2857: 17234 bl queue_wait_first_req_completed 17235 bl queue_remove_completed_req 17236 b .L2856 17237.L2871: 17238 .align 2 17239.L2870: 17240 .word .LANCHOR0+1232 17241 .word .LANCHOR3 17242 .word .LANCHOR0 17243 .word .LANCHOR1+2080 17244 .word .LC0 17245 .word .LANCHOR3-3074 17246 .word .LANCHOR0+2770 17247 .fnend 17248 .size sblk_read_page, .-sblk_read_page 17249 .align 2 17250 .global gc_check_data_one_wl 17251 .syntax unified 17252 .arm 17253 .fpu softvfp 17254 .type gc_check_data_one_wl, %function 17255gc_check_data_one_wl: 17256 .fnstart 17257 @ args = 0, pretend = 0, frame = 0 17258 @ frame_needed = 0, uses_anonymous_args = 0 17259 push {r4, r5, r6, r7, r8, r9, r10, fp, lr} 17260 .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} 17261 .pad #28 17262 sub sp, sp, #28 17263 ldr r5, .L2906 17264 ldr r3, [r5, #2832] 17265 ldr r10, [r5, #1096] 17266 cmp r3, #0 17267 bne .L2873 17268 mov r0, #1 17269 bl buf_alloc 17270 str r0, [r5, #2832] 17271.L2873: 17272 ldr r4, [r5, #2832] 17273 cmp r4, #0 17274 bne .L2874 17275 movw r2, #729 17276 ldr r1, .L2906+4 17277 ldr r0, .L2906+8 17278 bl printk 17279 bl dump_stack 17280.L2874: 17281 ldr r7, .L2906+12 17282 add fp, r10, #96 17283 mov r9, #0 17284.L2875: 17285 ldrb r3, [r10, #89] @ zero_extendqisi2 17286 ldr r6, .L2906+16 17287 cmp r9, r3 17288 bge .L2886 17289 mov r8, #1 17290 b .L2887 17291.L2885: 17292 ldr r2, .L2906+20 17293 ldrb r1, [r7, #-3128] @ zero_extendqisi2 17294 ldrh r3, [fp] 17295 ldrh r2, [r2, #-2] 17296 cmp r1, #2 17297 mul r2, r2, r3 17298 beq .L2876 17299 ldrb r3, [r5, #1158] @ zero_extendqisi2 17300 cmp r3, #0 17301 beq .L2877 17302.L2876: 17303 ldrh r3, [r6, #12] 17304 sub r3, r3, #1 17305 add r3, r3, r2 17306 add r3, r3, r8 17307 orr r3, r3, r1, lsl #24 17308.L2905: 17309 str r3, [r4, #24] 17310 mov r1, #1 17311 mov r0, r4 17312 bl sblk_read_page 17313 ldr r2, [r4, #36] 17314 cmn r2, #1 17315 beq .L2881 17316 ldr r0, [r7, #-132] 17317 ldrh r1, [r6, #18] 17318 ldr r3, [r4, #12] 17319 ldr ip, [r0, r1, lsl #2] 17320 ldr r0, [r3, #4] 17321 cmp ip, r0 17322 bne .L2881 17323 ldr r0, [r7, #-128] 17324 ldr r3, [r3, #8] 17325 ldr r1, [r0, r1, lsl #2] 17326 cmp r1, r3 17327 beq .L2882 17328.L2881: 17329 ldrh r3, [r6, #18] 17330 ldr r1, [r7, #-132] 17331 lsl r0, r3, #2 17332 ldr r3, [r1, r3, lsl #2] 17333 cmn r3, #1 17334 beq .L2882 17335 ldr r1, .L2906+24 17336 ldr r1, [r1] 17337 tst r1, #1024 17338 beq .L2883 17339 ldr r1, [r4, #12] 17340 ldr ip, [r1, #12] 17341 str ip, [sp, #16] 17342 ldr ip, [r1, #8] 17343 str ip, [sp, #12] 17344 ldr ip, [r1, #4] 17345 str ip, [sp, #8] 17346 ldr r1, [r1] 17347 str r1, [sp, #4] 17348 ldr r1, [r7, #-128] 17349 ldr r1, [r1, r0] 17350 ldr r0, .L2906+28 17351 str r1, [sp] 17352 ldr r1, [r4, #24] 17353 bl printk 17354.L2883: 17355 ldrh r3, [r10, #80] 17356 mov r1, #0 17357 ldr r2, [r5, #1092] 17358 lsl r3, r3, #1 17359 strh r1, [r2, r3] @ movhi 17360 ldr r2, [r5, #1096] 17361 ldr r3, [r2, #556] 17362 add r3, r3, #1 17363 str r3, [r2, #556] 17364 ldr r3, [r5, #2800] 17365 ldr r2, [r3, #156] 17366 ldr r3, .L2906+32 17367 cmp r2, r3 17368 bne .L2890 17369 ldrb r3, [r7, #-2542] @ zero_extendqisi2 17370 cmp r3, r1 17371 bne .L2890 17372 ldrb r3, [r7, #-3126] @ zero_extendqisi2 17373 cmp r3, r1 17374 bne .L2890 17375 ldr r0, [r4, #24] 17376 bl ftl_mask_bad_block 17377.L2890: 17378 mvn r0, #0 17379 b .L2872 17380.L2877: 17381 ldrh r3, [r6, #12] 17382 cmp r1, #3 17383 addne r3, r3, r2 17384 bne .L2905 17385 ldrb r1, [r5, #1159] @ zero_extendqisi2 17386 cmp r1, #0 17387 addne r3, r3, r3, lsl #1 17388 addeq r3, r3, r2 17389 orreq r3, r3, r8, lsl #24 17390 subne r3, r3, #1 17391 addne r3, r3, r2 17392 addne r3, r3, r8 17393 orrne r3, r3, #50331648 17394 b .L2905 17395.L2882: 17396 ldrh r3, [r6, #18] 17397 add r8, r8, #1 17398 add r3, r3, #1 17399 strh r3, [r6, #18] @ movhi 17400.L2887: 17401 ldrh r3, [r6, #16] 17402 cmp r8, r3 17403 ble .L2885 17404 add r9, r9, #1 17405 add fp, fp, #2 17406 b .L2875 17407.L2886: 17408 ldrh r3, [r6, #12] 17409 add r2, r3, #1 17410 strh r2, [r6, #12] @ movhi 17411 ldr r2, .L2906+12 17412 ldrb r0, [r2, #-3126] @ zero_extendqisi2 17413 cmp r0, #0 17414 movne r0, #0 17415 addne r3, r3, #2 17416 strhne r3, [r6, #12] @ movhi 17417.L2884: 17418.L2872: 17419 add sp, sp, #28 17420 @ sp needed 17421 pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} 17422.L2907: 17423 .align 2 17424.L2906: 17425 .word .LANCHOR0 17426 .word .LANCHOR1+2095 17427 .word .LC0 17428 .word .LANCHOR3 17429 .word .LANCHOR0+2824 17430 .word .LANCHOR3-3072 17431 .word .LANCHOR2 17432 .word .LC179 17433 .word 1145785929 17434 .fnend 17435 .size gc_check_data_one_wl, .-gc_check_data_one_wl 17436 .align 2 17437 .global sblk_tlc_prog_one_page 17438 .syntax unified 17439 .arm 17440 .fpu softvfp 17441 .type sblk_tlc_prog_one_page, %function 17442sblk_tlc_prog_one_page: 17443 .fnstart 17444 @ args = 0, pretend = 0, frame = 0 17445 @ frame_needed = 0, uses_anonymous_args = 0 17446 push {r4, r5, r6, lr} 17447 .save {r4, r5, r6, lr} 17448 mov r4, r0 17449 ldr r3, [r0] 17450 ldr r6, [r3, #24] 17451.L2909: 17452 mov r1, #1 17453 mov r0, r6 17454 bl queue_lun_state 17455 subs r5, r0, #0 17456 bne .L2910 17457 mov r0, r4 17458 mov r1, #1 17459 bl queue_tlc_prog_cmd 17460 mov r0, r5 17461 pop {r4, r5, r6, pc} 17462.L2910: 17463 bl queue_wait_first_req_completed 17464 bl queue_remove_completed_req 17465 b .L2909 17466 .fnend 17467 .size sblk_tlc_prog_one_page, .-sblk_tlc_prog_one_page 17468 .align 2 17469 .global sblk_xlc_prog_pages 17470 .syntax unified 17471 .arm 17472 .fpu softvfp 17473 .type sblk_xlc_prog_pages, %function 17474sblk_xlc_prog_pages: 17475 .fnstart 17476 @ args = 0, pretend = 0, frame = 0 17477 @ frame_needed = 0, uses_anonymous_args = 0 17478 push {r4, r5, r6, r7, r8, r9, r10, fp, lr} 17479 .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} 17480 mov r5, r0 17481 ldr r3, [r0] 17482 .pad #20 17483 sub sp, sp, #20 17484 mov r7, r1 17485 mov fp, r2 17486 ldr r4, [r3, #24] 17487.L2913: 17488 mov r1, #1 17489 mov r0, r4 17490 bl queue_lun_state 17491 subs r10, r0, #0 17492 bne .L2914 17493 cmp fp, #2 17494 bne .L2915 17495 ldr r1, .L2925 17496 ldr lr, [r7] 17497 ldrb r3, [r1, #1194] @ zero_extendqisi2 17498 cmp r3, #0 17499 ldreq r4, [lr, #24] 17500 beq .L2920 17501 ldrb r3, [r1, #1153] @ zero_extendqisi2 17502 mov r9, #1 17503 ldr r2, [r5] 17504 ldr lr, [lr, #24] 17505 rsb r0, r3, #24 17506 ldr ip, [r2, #24] 17507 lsl r4, r9, r3 17508 ldrb r3, [r1, #1159] @ zero_extendqisi2 17509 lsl r6, r9, r0 17510 sub r4, r4, #1 17511 sub r6, r6, #1 17512 and r4, r4, ip, lsr r0 17513 cmp r3, #0 17514 and r8, ip, r6 17515 uxtb r4, r4 17516 and r6, r6, lr 17517 beq .L2917 17518 mov r0, r4 17519 bl zftl_flash_exit_slc_mode 17520 ldr r3, [r5] 17521 mov r1, r9 17522 mov r0, r10 17523 ldr r2, [r3, #12] 17524 str r2, [sp, #8] 17525 mov r2, #17 17526 ldr r3, [r3, #4] 17527 str r8, [sp] 17528 str r3, [sp, #4] 17529 mov r3, r4 17530 bl flash_start_one_pass_page_prog 17531 bl nandc_wait_flash_ready 17532 ldr r3, [r7] 17533 mov r1, r9 17534 mov r0, r10 17535 ldr r2, [r3, #12] 17536 str r2, [sp, #8] 17537 mov r2, #26 17538 ldr r3, [r3, #4] 17539 str r6, [sp] 17540 str r3, [sp, #4] 17541 mov r3, r4 17542 bl flash_start_one_pass_page_prog 17543 bl nandc_wait_flash_ready 17544 ldr r3, [r5, #4] 17545 mov r1, fp 17546 mov r0, r10 17547 ldr r2, [r3, #12] 17548 str r2, [sp, #8] 17549 mov r2, #17 17550 ldr r3, [r3, #4] 17551 str r3, [sp, #4] 17552 add r3, r8, r9 17553 str r3, [sp] 17554 mov r3, r4 17555 bl flash_start_one_pass_page_prog 17556 bl nandc_wait_flash_ready 17557 ldr r3, [r7, #4] 17558 mov r1, fp 17559 mov r0, r10 17560 add r8, r8, #2 17561 ldr r2, [r3, #12] 17562 str r2, [sp, #8] 17563 mov r2, #26 17564 ldr r3, [r3, #4] 17565 str r3, [sp, #4] 17566 add r3, r6, r9 17567 str r3, [sp] 17568 mov r3, r4 17569 bl flash_start_one_pass_page_prog 17570 bl nandc_wait_flash_ready 17571 ldr r3, [r5, #8] 17572 mov r1, #3 17573 mov r0, r10 17574 add r6, r6, #2 17575 ldr r2, [r3, #12] 17576 str r2, [sp, #8] 17577 mov r2, #17 17578 ldr r3, [r3, #4] 17579 str r8, [sp] 17580 str r3, [sp, #4] 17581 mov r3, r4 17582 bl flash_start_one_pass_page_prog 17583 bl nandc_wait_flash_ready 17584 ldr r3, [r7, #8] 17585 mov r1, #3 17586 mov r0, r10 17587 ldr r2, [r3, #12] 17588 str r2, [sp, #8] 17589 mov r2, #16 17590 ldr r3, [r3, #4] 17591 str r6, [sp] 17592 str r3, [sp, #4] 17593 mov r3, r4 17594 bl flash_start_one_pass_page_prog 17595.L2918: 17596 ldr r1, [r5] 17597 mov r3, #5 17598 ldr r0, .L2925+4 17599 strb r3, [r1, #42] 17600 mov r3, #1 17601 strb r3, [r1, #43] 17602 mvn r3, #0 17603 strb r3, [r1] 17604 bl buf_add_tail 17605.L2919: 17606 mov r0, #0 17607 add sp, sp, #20 17608 @ sp needed 17609 pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} 17610.L2914: 17611 bl queue_wait_first_req_completed 17612 bl queue_remove_completed_req 17613 b .L2913 17614.L2917: 17615 ldr r3, [r2, #12] 17616 mov r1, r9 17617 ldrb r0, [r2, #44] @ zero_extendqisi2 17618 str r3, [sp, #8] 17619 ldr r3, [r2, #4] 17620 mov r2, #17 17621 str r8, [sp] 17622 str r3, [sp, #4] 17623 mov r3, r4 17624 bl flash_start_tlc_page_prog 17625 bl nandc_wait_flash_ready 17626 ldr r3, [r7] 17627 mov r1, r9 17628 ldr r2, [r5] 17629 ldrb r0, [r2, #44] @ zero_extendqisi2 17630 ldr r2, [r3, #12] 17631 str r2, [sp, #8] 17632 mov r2, #26 17633 ldr r3, [r3, #4] 17634 str r6, [sp] 17635 str r3, [sp, #4] 17636 mov r3, r4 17637 bl flash_start_tlc_page_prog 17638 bl nandc_wait_flash_ready 17639 ldm r5, {r2, r3} 17640 mov r1, fp 17641 ldrb r0, [r2, #44] @ zero_extendqisi2 17642 ldr r2, [r3, #12] 17643 str r2, [sp, #8] 17644 mov r2, #17 17645 ldr r3, [r3, #4] 17646 str r8, [sp] 17647 str r3, [sp, #4] 17648 mov r3, r4 17649 bl flash_start_tlc_page_prog 17650 bl nandc_wait_flash_ready 17651 ldr r3, [r7, #4] 17652 mov r1, fp 17653 ldr r2, [r5] 17654 ldrb r0, [r2, #44] @ zero_extendqisi2 17655 ldr r2, [r3, #12] 17656 str r2, [sp, #8] 17657 mov r2, #26 17658 ldr r3, [r3, #4] 17659 str r6, [sp] 17660 str r3, [sp, #4] 17661 mov r3, r4 17662 bl flash_start_tlc_page_prog 17663 bl nandc_wait_flash_ready 17664 ldr r3, [r5, #8] 17665 mov r1, #3 17666 ldr r2, [r5] 17667 ldrb r0, [r2, #44] @ zero_extendqisi2 17668 ldr r2, [r3, #12] 17669 str r2, [sp, #8] 17670 mov r2, #17 17671 ldr r3, [r3, #4] 17672 str r8, [sp] 17673 str r3, [sp, #4] 17674 mov r3, r4 17675 bl flash_start_tlc_page_prog 17676 bl nandc_wait_flash_ready 17677 ldr r3, [r7, #8] 17678 mov r1, #3 17679 ldr r2, [r5] 17680 ldrb r0, [r2, #44] @ zero_extendqisi2 17681 ldr r2, [r3, #12] 17682 str r2, [sp, #8] 17683 mov r2, #16 17684 ldr r3, [r3, #4] 17685 str r6, [sp] 17686 str r3, [sp, #4] 17687 mov r3, r4 17688 bl flash_start_tlc_page_prog 17689 b .L2918 17690.L2921: 17691 bl queue_wait_first_req_completed 17692 bl queue_remove_completed_req 17693.L2920: 17694 mov r1, #1 17695 mov r0, r4 17696 bl queue_lun_state 17697 subs r6, r0, #0 17698 bne .L2921 17699 mov r1, #1 17700 mov r0, r5 17701 bl queue_tlc_prog_cmd 17702 mov r1, r6 17703 mov r0, r7 17704 bl queue_tlc_prog_cmd 17705.L2922: 17706 mov r1, #1 17707 mov r0, r4 17708 bl queue_lun_state 17709 cmp r0, #0 17710 beq .L2919 17711 bl queue_wait_first_req_completed 17712 bl queue_remove_completed_req 17713 b .L2922 17714.L2915: 17715 mov r1, #1 17716 mov r0, r5 17717 bl queue_tlc_prog_cmd 17718 b .L2919 17719.L2926: 17720 .align 2 17721.L2925: 17722 .word .LANCHOR0 17723 .word .LANCHOR0+2770 17724 .fnend 17725 .size sblk_xlc_prog_pages, .-sblk_xlc_prog_pages 17726 .align 2 17727 .global sblk_3d_mlc_prog_pages 17728 .syntax unified 17729 .arm 17730 .fpu softvfp 17731 .type sblk_3d_mlc_prog_pages, %function 17732sblk_3d_mlc_prog_pages: 17733 .fnstart 17734 @ args = 0, pretend = 0, frame = 0 17735 @ frame_needed = 0, uses_anonymous_args = 0 17736 push {r0, r1, r4, r5, r6, r7, r8, r9, r10, lr} 17737 .save {r4, r5, r6, r7, r8, r9, r10, lr} 17738 .pad #8 17739 mov r7, r1 17740 ldr r9, .L2933 17741 add r5, r0, #8 17742 mov r8, #1 17743 ldr r10, .L2933+4 17744.L2928: 17745 cmp r7, #0 17746 bne .L2931 17747 mov r0, r7 17748 add sp, sp, #8 17749 @ sp needed 17750 pop {r4, r5, r6, r7, r8, r9, r10, pc} 17751.L2931: 17752 ldr r3, [r5, #-8] 17753 ldr r4, [r3, #24] 17754.L2929: 17755 mov r1, #1 17756 mov r0, r4 17757 bl queue_lun_state 17758 cmp r0, #0 17759 bne .L2930 17760 ldr r3, [r5, #-8] 17761 sub r7, r7, #1 17762 add r5, r5, #8 17763 ldr r1, [r3, #24] 17764 ldrb r3, [r9, #1153] @ zero_extendqisi2 17765 rsb r2, r3, #24 17766 lsl r4, r8, r3 17767 lsl r6, r8, r2 17768 sub r4, r4, #1 17769 sub r6, r6, #1 17770 and r4, r4, r1, lsr r2 17771 and r6, r6, r1 17772 uxtb r4, r4 17773 mov r0, r4 17774 bl zftl_flash_exit_slc_mode 17775 ldr r3, [r5, #-16] 17776 mov r1, r4 17777 mov r0, #16 17778 ldr r2, [r3, #12] 17779 str r2, [sp] 17780 mov r2, r6 17781 ldr r3, [r3, #4] 17782 bl flash_start_3d_mlc_page_prog 17783 bl nandc_wait_flash_ready 17784 ldr r3, [r5, #-12] 17785 mov r1, r4 17786 mov r0, #16 17787 ldr r2, [r3, #12] 17788 str r2, [sp] 17789 add r2, r6, #1 17790 ldr r3, [r3, #4] 17791 bl flash_start_3d_mlc_page_prog 17792 bl nandc_de_cs.constprop.35 17793 ldr r1, [r5, #-16] 17794 mov r3, #4 17795 mov r0, r10 17796 strb r3, [r1, #42] 17797 mvn r3, #0 17798 strb r8, [r1, #43] 17799 strb r3, [r1] 17800 bl buf_add_tail 17801 b .L2928 17802.L2930: 17803 bl queue_wait_first_req_completed 17804 bl queue_remove_completed_req 17805 b .L2929 17806.L2934: 17807 .align 2 17808.L2933: 17809 .word .LANCHOR0 17810 .word .LANCHOR0+2770 17811 .fnend 17812 .size sblk_3d_mlc_prog_pages, .-sblk_3d_mlc_prog_pages 17813 .align 2 17814 .global flash_prog_page_en 17815 .syntax unified 17816 .arm 17817 .fpu softvfp 17818 .type flash_prog_page_en, %function 17819flash_prog_page_en: 17820 .fnstart 17821 @ args = 8, pretend = 0, frame = 16 17822 @ frame_needed = 0, uses_anonymous_args = 0 17823 push {r4, r5, r6, r7, r8, r9, r10, fp, lr} 17824 .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} 17825 .pad #28 17826 sub sp, sp, #28 17827 mov r10, r3 17828 ldr r4, .L2966 17829 mov r8, r0 17830 mov r5, r1 17831 ldrb r3, [sp, #68] @ zero_extendqisi2 17832 mov fp, r2 17833 ubfx r7, r1, #24, #2 17834 str r3, [sp, #20] 17835 ldrb r3, [r4, #1109] @ zero_extendqisi2 17836 cmp r3, r0 17837 bhi .L2936 17838 movw r2, #642 17839 ldr r1, .L2966+4 17840 ldr r0, .L2966+8 17841 bl printk 17842 bl dump_stack 17843.L2936: 17844 ldrb r3, [r4, #1109] @ zero_extendqisi2 17845 cmp r3, r8 17846 mvnls r0, #0 17847 bls .L2935 17848 add r3, r4, r8 17849 cmp r7, #0 17850 ldrb r3, [r3, #1144] @ zero_extendqisi2 17851 str r3, [sp, #12] 17852 bne .L2949 17853 ldrb r3, [r4] @ zero_extendqisi2 17854 cmp r3, #0 17855 beq .L2939 17856 ldrb r3, [r4, #1] @ zero_extendqisi2 17857 cmp r3, #0 17858 beq .L2949 17859.L2939: 17860 ldrh r7, [r4, #2] 17861 mov r0, r5 17862 mov r1, r7 17863 bl __aeabi_uidiv 17864 mov r1, r7 17865 mul r6, r7, r0 17866 mov r0, r5 17867 bl __aeabi_uidivmod 17868 ldrb r3, [r4, #1] @ zero_extendqisi2 17869 lsl r1, r1, #1 17870 cmp r3, #0 17871 addeq r4, r4, r1 17872 ldrheq r1, [r4, #4] 17873 add r6, r1, r6 17874.L2938: 17875 ldr r4, .L2966+12 17876 ldr r7, .L2966+16 17877.L2944: 17878 ldr r3, [r4] 17879 tst r3, #16 17880 beq .L2941 17881 mov r3, r6 17882 mov r2, r5 17883 ldr r1, [sp, #12] 17884 ldr r0, .L2966+20 17885 bl printk 17886.L2941: 17887 ldr r3, [sp, #64] 17888 mov r2, fp 17889 mov r1, r6 17890 ldr r0, [sp, #12] 17891 str r3, [sp] 17892 mov r3, r10 17893 bl flash_prog_page 17894 ldr r3, [sp, #20] 17895 str r0, [sp, #16] 17896 cmp r3, #0 17897 beq .L2942 17898 ldr r3, [sp, #64] 17899 mov r1, r5 17900 mov r0, r8 17901 str r3, [sp] 17902 ldr r3, [r7, #-96] 17903 ldr r2, [r7, #-92] 17904 bl flash_read_page_en 17905 cmn r0, #1 17906 cmpne r0, #512 17907 mov r9, r0 17908 beq .L2943 17909 ldr r3, [r7, #-92] 17910 ldr r2, [fp] 17911 ldr r3, [r3] 17912 cmp r2, r3 17913 bne .L2943 17914 ldr r3, [r7, #-96] 17915 ldr r2, [r10] 17916 ldr r3, [r3] 17917 cmp r2, r3 17918 beq .L2942 17919.L2943: 17920 mov r3, #4 17921 mov r1, fp 17922 mov r2, r3 17923 ldr r0, .L2966+24 17924 bl rknand_print_hex 17925 mov r3, #4 17926 mov r1, r10 17927 mov r2, r3 17928 ldr r0, .L2966+28 17929 bl rknand_print_hex 17930 mov r3, #4 17931 ldr r1, [r7, #-96] 17932 mov r2, r3 17933 ldr r0, .L2966+32 17934 bl rknand_print_hex 17935 mov r3, #4 17936 ldr r1, [r7, #-92] 17937 mov r2, r3 17938 ldr r0, .L2966+36 17939 bl rknand_print_hex 17940 cmp r9, #512 17941 beq .L2944 17942.L2946: 17943 mov r1, r5 17944 ldr r0, .L2966+40 17945 bl printk 17946 mvn r4, #0 17947 movw r2, #685 17948 ldr r1, .L2966+4 17949 ldr r0, .L2966+8 17950 bl printk 17951 bl dump_stack 17952.L2945: 17953 mov r0, r4 17954.L2935: 17955 add sp, sp, #28 17956 @ sp needed 17957 pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} 17958.L2949: 17959 mov r6, r5 17960 b .L2938 17961.L2942: 17962 ldr r4, [sp, #16] 17963 cmn r4, #1 17964 bne .L2945 17965 b .L2946 17966.L2967: 17967 .align 2 17968.L2966: 17969 .word .LANCHOR0 17970 .word .LANCHOR1+2116 17971 .word .LC0 17972 .word .LANCHOR2 17973 .word .LANCHOR3 17974 .word .LC180 17975 .word .LC181 17976 .word .LC182 17977 .word .LC183 17978 .word .LC184 17979 .word .LC185 17980 .fnend 17981 .size flash_prog_page_en, .-flash_prog_page_en 17982 .align 2 17983 .global ftl_prog_page 17984 .syntax unified 17985 .arm 17986 .fpu softvfp 17987 .type ftl_prog_page, %function 17988ftl_prog_page: 17989 .fnstart 17990 @ args = 4, pretend = 0, frame = 0 17991 @ frame_needed = 0, uses_anonymous_args = 0 17992 push {r0, r1, r2, r4, r5, r6, r7, lr} 17993 .save {r4, r5, r6, r7, lr} 17994 .pad #12 17995 mov r4, r0 17996 mov r7, r3 17997 mov r5, r1 17998 mov r6, r2 17999 bl sblk_wait_write_queue_completed 18000 mov r3, #1 18001 mov r0, r4 18002 str r3, [sp, #4] 18003 mov r2, r6 18004 ldr r3, [sp, #32] 18005 mov r1, r5 18006 str r3, [sp] 18007 mov r3, r7 18008 bl flash_prog_page_en 18009 cmn r0, #1 18010 mov r4, r0 18011 bne .L2968 18012 ldr r1, .L2971 18013 movw r2, #2678 18014 ldr r0, .L2971+4 18015 bl printk 18016 bl dump_stack 18017 mov r1, r5 18018 ldr r0, .L2971+8 18019 bl printk 18020.L2968: 18021 mov r0, r4 18022 add sp, sp, #12 18023 @ sp needed 18024 pop {r4, r5, r6, r7, pc} 18025.L2972: 18026 .align 2 18027.L2971: 18028 .word .LANCHOR1+2135 18029 .word .LC0 18030 .word .LC185 18031 .fnend 18032 .size ftl_prog_page, .-ftl_prog_page 18033 .align 2 18034 .global ftl_info_flush 18035 .syntax unified 18036 .arm 18037 .fpu softvfp 18038 .type ftl_info_flush, %function 18039ftl_info_flush: 18040 .fnstart 18041 @ args = 0, pretend = 0, frame = 8 18042 @ frame_needed = 0, uses_anonymous_args = 0 18043 push {r4, r5, r6, r7, r8, r9, r10, fp, lr} 18044 .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} 18045 mov r1, #0 18046 ldr r4, .L3010 18047 .pad #20 18048 sub sp, sp, #20 18049 mov r9, r0 18050 mov r8, #0 18051 ldr r6, .L3010+4 18052 ldrb r2, [r4, #-2546] @ zero_extendqisi2 18053 ldr r0, [r4, #-76] 18054 ldr r10, .L3010+8 18055 ldr r7, .L3010+12 18056 lsl r2, r2, #1 18057 bl ftl_memset 18058 ldr r3, [r6, #2800] 18059 ldrh r2, [r3, #74] 18060 cmp r2, #1 18061 movhi r2, #0 18062 strhhi r2, [r3, #150] @ movhi 18063.L2987: 18064 ldr r3, .L3010+16 18065 ldr r2, [r6, #2800] 18066 ldrb r5, [r4, #-56] @ zero_extendqisi2 18067 ldrh fp, [r3] 18068 ldrh r3, [r4, #-54] 18069 str r3, [sp, #8] 18070 ldr r3, [r2, #4] 18071 add r3, r3, #1 18072 str r3, [r2, #4] 18073 ldr r3, [r4, #-76] 18074 str r9, [r3] 18075 ldr r2, [r6, #2800] 18076 ldrb r1, [r4, #-2546] @ zero_extendqisi2 18077 ldr r3, [r4, #-76] 18078 ldr r2, [r2, #4] 18079 ldr r0, [r4, #-52] 18080 lsl r1, r1, #9 18081 str r3, [sp, #12] 18082 str r2, [r3, #4] 18083 bl js_hash 18084 ldr r3, [sp, #12] 18085 str r0, [r3, #8] 18086 ldr r3, [r10] 18087 tst r3, #4096 18088 beq .L2975 18089 ldr r3, [r6, #2800] 18090 ldrh r2, [r4, #-54] 18091 ldrb r1, [r4, #-56] @ zero_extendqisi2 18092 ldr r3, [r3, #4] 18093 ldr r0, .L3010+20 18094 bl printk 18095.L2975: 18096 ldr r3, .L3010+24 18097 ldrh r0, [r4, #-54] 18098 ldrh r3, [r3] 18099 cmp r3, r0 18100 bhi .L2976 18101 ldr fp, .L3010+28 18102 ldr r5, .L3010+32 18103.L2983: 18104 ldrb r3, [r4, #-55] @ zero_extendqisi2 18105 add r3, r3, #1 18106 uxtb r3, r3 18107 cmp r3, #7 18108 strb r3, [r4, #-55] 18109 bls .L2977 18110 mov r3, #8 18111.L2982: 18112 ldr r2, [r6, #1040] 18113 sub r8, r3, #8 18114 uxth r8, r8 18115 add r2, r2, r3 18116 ldrb r1, [r2, #32] @ zero_extendqisi2 18117 add r2, r1, #127 18118 uxtb r2, r2 18119 cmp r2, #125 18120 bhi .L2978 18121 movw r2, #846 18122 mov r1, fp 18123 mov r0, r5 18124 bl printk 18125 bl dump_stack 18126.L2981: 18127 strb r8, [r4, #-55] 18128 mov r8, #1 18129.L2977: 18130 ldr r3, [r6, #1040] 18131 ldrb r2, [r4, #-55] @ zero_extendqisi2 18132 add r3, r3, r2 18133 ldrb r3, [r3, #40] @ zero_extendqisi2 18134 cmp r3, #255 18135 strb r3, [r4, #-56] 18136 beq .L2983 18137 ldrh r5, [r7, #-2] 18138 mov r0, #0 18139 mul r5, r3, r5 18140 mov r1, r5 18141 bl flash_erase_block 18142 ldrb r3, [r4, #-2546] @ zero_extendqisi2 18143 mov r1, r5 18144 ldr r2, [r4, #-52] 18145 mov r0, #0 18146 str r3, [sp] 18147 ldr r3, [r4, #-76] 18148 bl ftl_prog_page 18149 mov r3, #1 18150 add r5, r5, r3 18151 strh r3, [r4, #-54] @ movhi 18152.L2984: 18153 ldrb r3, [r4, #-2546] @ zero_extendqisi2 18154 mov r1, r5 18155 ldr r2, [r4, #-52] 18156 mov r0, #0 18157 str r3, [sp] 18158 ldr r3, [r4, #-76] 18159 bl ftl_prog_page 18160 ldrh r3, [r4, #-54] 18161 cmn r0, #1 18162 add r3, r3, #1 18163 strh r3, [r4, #-54] @ movhi 18164 beq .L2985 18165 ldrb r3, [r4, #-48] @ zero_extendqisi2 18166 cmp r3, #0 18167 beq .L2986 18168.L2985: 18169 mov r3, #0 18170 strb r3, [r4, #-48] 18171 b .L2987 18172.L2978: 18173 cmp r1, #255 18174 bne .L2981 18175 add r3, r3, #1 18176 cmp r3, #16 18177 bne .L2982 18178 mov r8, #8 18179 b .L2981 18180.L2976: 18181 ldr r3, [sp, #8] 18182 cmp r0, #0 18183 mla r5, fp, r5, r3 18184 bne .L2984 18185 mov r1, r5 18186 bl flash_erase_block 18187 b .L2984 18188.L2986: 18189 cmp r8, #1 18190 beq .L2988 18191.L2996: 18192 ldrb r3, [r4, #-56] @ zero_extendqisi2 18193 cmp r3, #255 18194 bne .L2990 18195 movw r2, #890 18196 ldr r1, .L3010+28 18197 ldr r0, .L3010+32 18198 bl printk 18199 bl dump_stack 18200.L2990: 18201 mov r0, #0 18202 add sp, sp, #20 18203 @ sp needed 18204 pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} 18205.L2988: 18206 ldrb r5, [r4, #-55] @ zero_extendqisi2 18207 ldr r8, .L3010+28 18208 ldr r9, .L3010+32 18209 add r5, r5, #1 18210.L2991: 18211 cmp r5, #7 18212 bhi .L2996 18213 ldr r3, [r6, #1040] 18214 add r3, r3, r5 18215 ldrb r10, [r3, #40] @ zero_extendqisi2 18216 add r3, r10, #127 18217 uxtb r3, r3 18218 cmp r3, #125 18219 bhi .L2992 18220 movw r2, #881 18221 mov r1, r8 18222 mov r0, r9 18223 bl printk 18224 bl dump_stack 18225.L2993: 18226 ldrh r1, [r7, #-2] 18227 mov r0, #0 18228 mul r1, r10, r1 18229 bl flash_erase_block 18230 b .L2994 18231.L2992: 18232 cmp r10, #255 18233 bne .L2993 18234.L2994: 18235 add r5, r5, #1 18236 uxth r5, r5 18237 b .L2991 18238.L3011: 18239 .align 2 18240.L3010: 18241 .word .LANCHOR3 18242 .word .LANCHOR0 18243 .word .LANCHOR2 18244 .word .LANCHOR3-3072 18245 .word .LANCHOR3-3074 18246 .word .LC186 18247 .word .LANCHOR3-3096 18248 .word .LANCHOR1+2149 18249 .word .LC0 18250 .fnend 18251 .size ftl_info_flush, .-ftl_info_flush 18252 .align 2 18253 .global ftl_info_blk_init 18254 .syntax unified 18255 .arm 18256 .fpu softvfp 18257 .type ftl_info_blk_init, %function 18258ftl_info_blk_init: 18259 .fnstart 18260 @ args = 0, pretend = 0, frame = 8 18261 @ frame_needed = 0, uses_anonymous_args = 0 18262 push {r4, r5, r6, r7, r8, r9, r10, fp, lr} 18263 .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} 18264 mov r3, #1 18265 ldr r4, .L3043 18266 mov r6, #0 18267 mov r1, r6 18268 mov r2, #16384 18269 ldr r5, .L3043+4 18270 .pad #20 18271 sub sp, sp, #20 18272 strb r3, [r4, #-48] 18273 strb r3, [r4, #-46] 18274 movw r3, #1080 18275 ldr r0, [r4, #-52] 18276 ldrh r3, [r5, r3] 18277 strb r6, [r4, #-47] 18278 str r0, [r5, #1084] 18279 ldr r10, .L3043+8 18280 add r3, r0, r3, lsl #2 18281 ldr r9, .L3043+12 18282 str r3, [r5, #2800] 18283 bl ftl_memset 18284 mov r1, r6 18285 mov r2, #16384 18286 ldr r0, [r4, #-44] 18287 bl ftl_memset 18288 ldr r3, [r5, #1040] 18289 strb r6, [r4, #-55] 18290 strh r6, [r4, #-54] @ movhi 18291 mov r6, #7 18292 ldrb r3, [r3, #40] @ zero_extendqisi2 18293 strb r3, [r4, #-56] 18294.L3014: 18295 ldr r3, [r5, #1040] 18296 sxth r8, r6 18297 add r3, r3, r6 18298 ldrb r7, [r3, #40] @ zero_extendqisi2 18299 cmp r7, #255 18300 bne .L3013 18301.L3018: 18302 subs r6, r6, #1 18303 bcs .L3014 18304 mov r7, r6 18305 mov r8, #0 18306.L3015: 18307 ldr r6, .L3043+8 18308 ldr r3, [r6] 18309 tst r3, #4096 18310 beq .L3019 18311 ldr r3, [r5, #2800] 18312 mov r2, #4800 18313 mov r1, r7 18314 ldr r0, .L3043+16 18315 ldr r3, [r3] 18316 bl printk 18317.L3019: 18318 cmn r7, #1 18319 bne .L3020 18320 mov r2, #16384 18321 mov r1, #0 18322 ldr r0, [r4, #-52] 18323 bl ftl_memset 18324 ldr r3, [r5, #2800] 18325 ldr r2, .L3043+12 18326 str r2, [r3] 18327 ldr r2, .L3043+20 18328 ldr r3, [r5, #2800] 18329 str r2, [r3, #12] 18330.L3042: 18331 mov r0, r7 18332.L3012: 18333 add sp, sp, #20 18334 @ sp needed 18335 pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} 18336.L3013: 18337 ldr r3, .L3043+24 18338 mov r0, #0 18339 ldr r2, [r4, #-52] 18340 ldrh r3, [r3] 18341 mul r7, r7, r3 18342 ldrb r3, [r4, #-2546] @ zero_extendqisi2 18343 str r3, [sp] 18344 mov r1, r7 18345 ldr r3, [r4, #-76] 18346 bl ftl_read_page 18347 cmn r0, #1 18348 mov fp, r0 18349 bne .L3016 18350 ldrb r3, [r4, #-2546] @ zero_extendqisi2 18351 add r1, r7, #1 18352 ldr r2, [r4, #-52] 18353 mov r0, #0 18354 str r3, [sp] 18355 ldr r3, [r4, #-76] 18356 bl ftl_read_page 18357 mov fp, r0 18358.L3016: 18359 ldr r3, [r10] 18360 tst r3, #4096 18361 beq .L3017 18362 ldr r3, [r5, #2800] 18363 mov r2, fp 18364 mov r1, r6 18365 ldr r0, .L3043+28 18366 ldr r3, [r3] 18367 str r3, [sp] 18368 movw r3, #749 18369 bl printk 18370.L3017: 18371 cmn fp, #1 18372 beq .L3018 18373 ldr r3, [r5, #2800] 18374 ldr r3, [r3] 18375 cmp r3, r9 18376 bne .L3018 18377 mov r7, r8 18378 b .L3015 18379.L3020: 18380 ldr r3, [r5, #1040] 18381 mov r0, #0 18382 ldr r2, [r4, #-52] 18383 mov r7, #0 18384 strb r8, [r4, #-55] 18385 add r3, r3, r8 18386 ldr r10, .L3043+12 18387 ldrb r1, [r3, #40] @ zero_extendqisi2 18388 mov r3, #4 18389 str r3, [sp] 18390 ldr r3, [r4, #-76] 18391 strb r1, [r4, #-56] 18392 bl flash_get_last_written_page 18393 uxth r9, r0 18394 ldrb r8, [r4, #-56] @ zero_extendqisi2 18395 ldr fp, .L3043+32 18396 add r3, r9, #1 18397 uxth r3, r3 18398 str r3, [sp, #8] 18399 ldr r3, .L3043+36 18400 ldrh r3, [r3, #-2] 18401 mla r8, r3, r8, r0 18402.L3022: 18403 sub r3, r9, r7 18404 tst r3, #32768 18405 bne .L3026 18406 ldrb r3, [r4, #-2546] @ zero_extendqisi2 18407 sub r1, r8, r7 18408 ldr r2, [r4, #-52] 18409 mov r0, #0 18410 str r3, [sp] 18411 ldr r3, [r4, #-76] 18412 bl ftl_read_page 18413 cmn r0, #1 18414 beq .L3023 18415 ldr r3, [r5, #2800] 18416 ldr r3, [r3] 18417 cmp r3, r10 18418 bne .L3023 18419 ldr r3, [r4, #-76] 18420 ldr r3, [r3, #8] 18421 cmp r3, #0 18422 bne .L3024 18423.L3026: 18424 ldrh r3, [sp, #8] 18425 strh r3, [r4, #-54] @ movhi 18426 bl ftl_tmp_into_update 18427 ldr r2, [r5, #2800] 18428 mov r0, #0 18429 ldr r3, [r2, #64] 18430 add r3, r3, #1 18431 str r3, [r2, #64] 18432 bl ftl_info_flush 18433 mov r0, #0 18434 bl ftl_info_flush 18435 ldr r7, [r6] 18436 ands r7, r7, #16384 18437 beq .L3042 18438 ldr r3, [r5, #2800] 18439 ldr r0, .L3043+40 18440 ldr r1, [r3, #156] 18441 bl printk 18442 mov r0, #0 18443 b .L3012 18444.L3024: 18445 ldrb r1, [r4, #-2546] @ zero_extendqisi2 18446 ldr r0, [r4, #-52] 18447 str r3, [sp, #12] 18448 lsl r1, r1, #9 18449 bl js_hash 18450 ldr r3, [sp, #12] 18451 cmp r3, r0 18452 beq .L3026 18453 ldr r3, [r4, #-76] 18454 mov r0, fp 18455 ldr r1, [r3, #8] 18456 bl printk 18457.L3023: 18458 add r7, r7, #1 18459 b .L3022 18460.L3044: 18461 .align 2 18462.L3043: 18463 .word .LANCHOR3 18464 .word .LANCHOR0 18465 .word .LANCHOR2 18466 .word 1229739078 18467 .word .LC188 18468 .word 393252 18469 .word .LANCHOR3-3074 18470 .word .LC187 18471 .word .LC189 18472 .word .LANCHOR3-3072 18473 .word .LC190 18474 .fnend 18475 .size ftl_info_blk_init, .-ftl_info_blk_init 18476 .align 2 18477 .global ftl_ext_info_flush 18478 .syntax unified 18479 .arm 18480 .fpu softvfp 18481 .type ftl_ext_info_flush, %function 18482ftl_ext_info_flush: 18483 .fnstart 18484 @ args = 0, pretend = 0, frame = 0 18485 @ frame_needed = 0, uses_anonymous_args = 0 18486 push {r0, r1, r2, r4, r5, r6, r7, r8, r9, lr} 18487 .save {r4, r5, r6, r7, r8, r9, lr} 18488 .pad #12 18489 bl timer_get_time 18490 ldr r3, .L3061 18491 ldr r5, .L3061+4 18492 umull r0, r1, r0, r3 18493 ldr r3, [r5, #1096] 18494 ldr r0, [r3, #520] 18495 lsr r1, r1, #5 18496 cmp r1, r0 18497 bls .L3046 18498 ldr r2, [r3, #12] 18499 sub r2, r2, r0 18500 add r2, r2, r1 18501 str r2, [r3, #12] 18502.L3060: 18503 str r1, [r3, #520] 18504 b .L3047 18505.L3046: 18506 bcc .L3060 18507.L3047: 18508 ldr r4, .L3061+8 18509 mov r0, #0 18510 bl ftl_total_vpn_update 18511 sub r7, r4, #3136 18512.L3051: 18513 ldr r3, [r5, #2800] 18514 ldr r2, [r3, #56] 18515 add r2, r2, #1 18516 str r2, [r3, #56] 18517 ldrh r2, [r3, #140] 18518 ldr r3, .L3061+12 18519 ldrh r3, [r3] 18520 cmp r2, r3 18521 bcc .L3049 18522 bl ftl_ext_alloc_new_blk 18523.L3049: 18524 ldr r3, [r5, #2800] 18525 ldrh r2, [r3, #130] 18526 movw r3, #65535 18527 cmp r2, r3 18528 bne .L3050 18529 movw r2, #2211 18530 ldr r1, .L3061+16 18531 ldr r0, .L3061+20 18532 bl printk 18533 bl dump_stack 18534.L3050: 18535 ldr r2, [r5, #2800] 18536 ldrb r6, [r5, #1153] @ zero_extendqisi2 18537 ldrh r1, [r7, #-2] 18538 ldrh r3, [r2, #130] 18539 rsb r6, r6, #24 18540 ldr r0, [r4, #-76] 18541 sub r6, r6, r1 18542 mvn r1, #0 18543 asr r8, r3, r6 18544 bic r6, r3, r1, lsl r6 18545 ldr r3, .L3061+24 18546 sxth r6, r6 18547 ldrh r1, [r3, #-2] 18548 ldrh r3, [r2, #140] 18549 ldrb r2, [r4, #-2546] @ zero_extendqisi2 18550 mla r6, r1, r6, r3 18551 lsl r2, r2, #1 18552 mov r1, #0 18553 bl ftl_memset 18554 ldr r3, [r4, #-76] 18555 mov r2, #0 18556 str r2, [r3] 18557 ldr r3, [r5, #2800] 18558 ldrb r1, [r4, #-2546] @ zero_extendqisi2 18559 ldr r9, [r4, #-76] 18560 ldr r3, [r3, #56] 18561 ldr r0, [r4, #-44] 18562 lsl r1, r1, #9 18563 str r3, [r9, #4] 18564 bl js_hash 18565 ldrb r3, [r4, #-2546] @ zero_extendqisi2 18566 mov r1, r6 18567 str r0, [r9, #8] 18568 uxtb r0, r8 18569 ldr r2, [r4, #-44] 18570 str r3, [sp] 18571 ldr r3, [r4, #-76] 18572 bl ftl_prog_page 18573 ldr r2, [r5, #2800] 18574 ldrh r3, [r2, #140] 18575 add r3, r3, #1 18576 uxth r3, r3 18577 cmp r3, #1 18578 strh r3, [r2, #140] @ movhi 18579 beq .L3051 18580 cmn r0, #1 18581 beq .L3052 18582 ldrb r0, [r4, #-46] @ zero_extendqisi2 18583 cmp r0, #0 18584 beq .L3053 18585.L3052: 18586.L3048: 18587 mov r3, #0 18588 strb r3, [r4, #-46] 18589 b .L3051 18590.L3053: 18591 add sp, sp, #12 18592 @ sp needed 18593 pop {r4, r5, r6, r7, r8, r9, pc} 18594.L3062: 18595 .align 2 18596.L3061: 18597 .word 1374389535 18598 .word .LANCHOR0 18599 .word .LANCHOR3 18600 .word .LANCHOR3-3096 18601 .word .LANCHOR1+2164 18602 .word .LC0 18603 .word .LANCHOR3-3072 18604 .fnend 18605 .size ftl_ext_info_flush, .-ftl_ext_info_flush 18606 .align 2 18607 .global ftl_ext_info_init 18608 .syntax unified 18609 .arm 18610 .fpu softvfp 18611 .type ftl_ext_info_init, %function 18612ftl_ext_info_init: 18613 .fnstart 18614 @ args = 0, pretend = 0, frame = 8 18615 @ frame_needed = 0, uses_anonymous_args = 0 18616 push {r4, r5, r6, r7, r8, r9, r10, fp, lr} 18617 .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} 18618 mov r2, #0 18619 ldr r4, .L3083 18620 .pad #20 18621 sub sp, sp, #20 18622 ldr r5, .L3083+4 18623 sub r3, r4, #2544 18624 strh r2, [r3, #-4] @ movhi 18625 sub r2, r4, #3136 18626 ldr r3, [r5, #2800] 18627 ldrh r2, [r2, #-2] 18628 ldrh r6, [r3, #130] 18629 ldrb r3, [r5, #1153] @ zero_extendqisi2 18630 rsb r3, r3, #24 18631 sub r3, r3, r2 18632 mvn r2, #0 18633 asr r7, r6, r3 18634 bic r6, r6, r2, lsl r3 18635 uxtb r10, r7 18636 mov r3, #4 18637 str r3, [sp] 18638 mov r1, r6 18639 ldr r3, [r4, #-76] 18640 mov r0, r10 18641 ldr r2, [r4, #-44] 18642 bl flash_get_last_written_page 18643 ldr r3, .L3083+8 18644 mov r8, r0 18645 ldr r2, [r3] 18646 str r3, [sp, #8] 18647 tst r2, #4096 18648 beq .L3064 18649 ldr r3, [r5, #2800] 18650 uxth r7, r7 18651 mov r2, #2256 18652 ldr r1, .L3083+12 18653 ldrh r3, [r3, #130] 18654 str r7, [sp] 18655 str r3, [sp, #4] 18656 mov r3, r0 18657 ldr r0, .L3083+16 18658 bl printk 18659.L3064: 18660 ldr fp, .L3083+20 18661 mov r9, #0 18662.L3065: 18663 uxth r7, r8 18664 sub r3, r7, r9 18665 tst r3, #32768 18666 bne .L3070 18667 ldr r3, .L3083+24 18668 sub r1, r8, r9 18669 ldrh r0, [r3] 18670 ldrb r3, [r4, #-2546] @ zero_extendqisi2 18671 mla r1, r6, r0, r1 18672 str r3, [sp] 18673 ldr r3, [r4, #-76] 18674 ldr r2, [r4, #-44] 18675 mov r0, r10 18676 bl flash_read_page_en 18677 cmp r0, #512 18678 cmnne r0, #1 18679 beq .L3066 18680 ldr r3, [r5, #1096] 18681 ldr r2, .L3083+28 18682 ldr r3, [r3] 18683 cmp r3, r2 18684 bne .L3066 18685 ldr r3, [r4, #-76] 18686 ldr r3, [r3, #8] 18687 cmp r3, #0 18688 bne .L3067 18689.L3070: 18690 bl zftl_sblk_list_init 18691 ldr r3, [r5, #2800] 18692 ldrh r2, [r3, #140] 18693 cmp r2, r8 18694 bgt .L3069 18695 add r7, r7, #1 18696 strh r7, [r3, #140] @ movhi 18697 bl ftl_ext_info_flush 18698.L3069: 18699 ldr r4, [r5, #1096] 18700 bl timer_get_time 18701 ldr r3, .L3083+32 18702 umull r0, r1, r0, r3 18703 lsr r3, r1, #5 18704 str r3, [r4, #520] 18705 ldr r4, [r5, #1096] 18706 bl timer_get_time 18707 ldr r3, [r5, #1096] 18708 mov r2, #0 18709 str r0, [r4, #604] 18710 add r1, r3, #584 18711 str r2, [r3, #608] 18712 mvn r2, #0 18713 strh r2, [r1] @ movhi 18714 movw r1, #586 18715 strh r2, [r3, r1] @ movhi 18716 add r1, r3, #588 18717 strh r2, [r1] @ movhi 18718 movw r1, #590 18719 strh r2, [r3, r1] @ movhi 18720 movw r1, #65535 18721 str r2, [r3, #564] 18722 ldr r2, [sp, #8] 18723 str r1, [r3, #560] 18724 ldr r2, [r2] 18725 tst r2, #4096 18726 beq .L3072 18727 ldr r4, [r3, #520] 18728 ldr r5, [r3, #12] 18729 bl timer_get_time 18730 mov r2, r4 18731 str r0, [sp] 18732 mov r3, r5 18733 ldr r1, .L3083+12 18734 ldr r0, .L3083+36 18735 bl printk 18736.L3072: 18737 ldr r3, .L3083+40 18738 mvn r2, #0 18739 mov r0, #0 18740 strh r2, [r3, #-4] @ movhi 18741 add sp, sp, #20 18742 @ sp needed 18743 pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} 18744.L3067: 18745 ldrb r1, [r4, #-2546] @ zero_extendqisi2 18746 ldr r0, [r4, #-44] 18747 str r3, [sp, #12] 18748 lsl r1, r1, #9 18749 bl js_hash 18750 ldr r3, [sp, #12] 18751 cmp r3, r0 18752 beq .L3070 18753 ldr r3, [r4, #-76] 18754 mov r0, fp 18755 ldr r1, [r3, #8] 18756 bl printk 18757.L3066: 18758 add r9, r9, #1 18759 b .L3065 18760.L3084: 18761 .align 2 18762.L3083: 18763 .word .LANCHOR3 18764 .word .LANCHOR0 18765 .word .LANCHOR2 18766 .word .LANCHOR1+2183 18767 .word .LC191 18768 .word .LC192 18769 .word .LANCHOR3-3074 18770 .word 1162432070 18771 .word 1374389535 18772 .word .LC193 18773 .word .LANCHOR3-3152 18774 .fnend 18775 .size ftl_ext_info_init, .-ftl_ext_info_init 18776 .align 2 18777 .global ftl_prog_ppa_page 18778 .syntax unified 18779 .arm 18780 .fpu softvfp 18781 .type ftl_prog_ppa_page, %function 18782ftl_prog_ppa_page: 18783 .fnstart 18784 @ args = 0, pretend = 0, frame = 0 18785 @ frame_needed = 0, uses_anonymous_args = 0 18786 ldr ip, .L3087 18787 push {r0, r1, r2, r4, r5, lr} 18788 .save {r4, r5, lr} 18789 .pad #12 18790 ldrb r5, [ip, #1153] @ zero_extendqisi2 18791 mov ip, #1 18792 str r3, [sp] 18793 mov r3, r2 18794 mov r2, r1 18795 rsb r4, r5, #24 18796 lsl lr, ip, r4 18797 lsl ip, ip, r5 18798 sub ip, ip, #1 18799 sub lr, lr, #1 18800 and ip, ip, r0, lsr r4 18801 and r1, lr, r0 18802 uxtb r0, ip 18803 bl ftl_prog_page 18804 add sp, sp, #12 18805 @ sp needed 18806 pop {r4, r5, pc} 18807.L3088: 18808 .align 2 18809.L3087: 18810 .word .LANCHOR0 18811 .fnend 18812 .size ftl_prog_ppa_page, .-ftl_prog_ppa_page 18813 .align 2 18814 .global ftl_write_last_log_page 18815 .syntax unified 18816 .arm 18817 .fpu softvfp 18818 .type ftl_write_last_log_page, %function 18819ftl_write_last_log_page: 18820 .fnstart 18821 @ args = 0, pretend = 0, frame = 0 18822 @ frame_needed = 0, uses_anonymous_args = 0 18823 ldrh r3, [r0, #6] 18824 cmp r3, #1 18825 bne .L3091 18826 push {r4, r5, r6, r7, r8, lr} 18827 .save {r4, r5, r6, r7, r8, lr} 18828 mov r4, r0 18829 ldr r5, .L3097 18830 ldrh r8, [r0, #12] 18831 ldr r6, [r5, #-2556] 18832 bl ftl_get_new_free_page 18833 cmn r0, #1 18834 mov r7, r0 18835 beq .L3092 18836 ldrh r0, [r4] 18837 add r6, r6, r8, lsl #2 18838 bl ftl_vpn_decrement 18839 ldr r3, [r5, #-40] 18840 mov r0, r6 18841 ldr r2, .L3097+4 18842 str r2, [r3] 18843 sub r3, r5, #3088 18844 ldrh r3, [r3, #-8] 18845 ldrb r1, [r5, #-3127] @ zero_extendqisi2 18846 ldr r4, [r5, #-40] 18847 mul r1, r1, r3 18848 lsl r1, r1, #2 18849 bl js_hash 18850 ldr r1, [r5, #-40] 18851 str r0, [r4, #4] 18852 mov r4, #0 18853 mov r2, r4 18854 mov r0, #2 18855 str r4, [r1, #8] 18856 str r4, [r1, #12] 18857 str r4, [r1, #16]! 18858 bl ftl_debug_info_fill 18859 ldrb r3, [r5, #-2546] @ zero_extendqisi2 18860 mov r1, r6 18861 ldr r2, [r5, #-40] 18862 mov r0, r7 18863 bl ftl_prog_ppa_page 18864.L3092: 18865 mov r0, #0 18866 pop {r4, r5, r6, r7, r8, pc} 18867.L3091: 18868 mvn r0, #0 18869 bx lr 18870.L3098: 18871 .align 2 18872.L3097: 18873 .word .LANCHOR3 18874 .word -178307901 18875 .fnend 18876 .size ftl_write_last_log_page, .-ftl_write_last_log_page 18877 .align 2 18878 .global ftl_dump_write_open_sblk 18879 .syntax unified 18880 .arm 18881 .fpu softvfp 18882 .type ftl_dump_write_open_sblk, %function 18883ftl_dump_write_open_sblk: 18884 .fnstart 18885 @ args = 0, pretend = 0, frame = 64 18886 @ frame_needed = 0, uses_anonymous_args = 0 18887 push {r4, r5, r6, r7, r8, r9, r10, fp, lr} 18888 .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} 18889 movw r3, #1080 18890 ldr r4, .L3138 18891 .pad #108 18892 sub sp, sp, #108 18893 ldrh r3, [r4, r3] 18894 cmp r3, r0 18895 bls .L3099 18896 ldr r3, .L3138+4 18897 ldrb r2, [r3, #-3120] @ zero_extendqisi2 18898 cmp r2, #0 18899 bne .L3101 18900 ldrb r2, [r3, #-3126] @ zero_extendqisi2 18901 cmp r2, #0 18902 beq .L3099 18903.L3101: 18904 ldrb r2, [r4, #1158] @ zero_extendqisi2 18905 cmp r2, #0 18906 bne .L3099 18907 ldr r2, [r4, #1084] 18908 lsl r7, r0, #2 18909 ldr r5, .L3138+8 18910 add r1, sp, #88 18911 mov r10, r0 18912 strh r0, [sp, #72] @ movhi 18913 add r2, r2, r7 18914 mov r6, #0 18915 ldrb r2, [r2, #2] @ zero_extendqisi2 18916 and r2, r2, #224 18917 cmp r2, #160 18918 ldrbeq r8, [r3, #-3128] @ zero_extendqisi2 18919 movne r8, #1 18920 bl ftl_get_blk_list_in_sblk 18921 ldrh r3, [r5, #-8] 18922 uxtb r0, r0 18923 strh r6, [sp, #74] @ movhi 18924 strb r0, [sp, #81] 18925 strb r6, [sp, #77] 18926 smulbb r0, r3, r0 18927 ldr r3, [r4, #1084] 18928 strh r6, [sp, #82] @ movhi 18929 strh r0, [sp, #78] @ movhi 18930 add r2, r3, r7 18931 ldr r1, [r3, r10, lsl #2] 18932 ldrb r2, [r2, #2] @ zero_extendqisi2 18933 ldr r0, .L3138+12 18934 ubfx r1, r1, #11, #8 18935 str r1, [sp, #4] 18936 mov r1, r10 18937 ldrh r3, [r3, r7] 18938 mov r7, r6 18939 ubfx r3, r3, #0, #11 18940 str r3, [sp] 18941 ubfx r3, r2, #3, #2 18942 lsr r2, r2, #5 18943 bl printk 18944 mov r0, #1 18945 bl buf_alloc 18946 mov r4, r0 18947 add r3, r5, #16 18948 str r6, [sp, #44] 18949 str r3, [sp, #64] 18950.L3103: 18951 ldr r3, .L3138+16 18952 uxth r5, r6 18953 ldrh r3, [r3] 18954 cmp r3, r5 18955 bls .L3111 18956 lsl r3, r5, #1 18957 str r5, [sp, #52] 18958 mov fp, #0 18959 sub r2, r3, #1 18960 add r3, r3, r5 18961 sub r3, r3, #1 18962 str r2, [sp, #48] 18963 str r3, [sp, #56] 18964 b .L3114 18965.L3112: 18966 ldr r2, [sp, #60] 18967 add r3, sp, #104 18968 add r3, r3, r2 18969 ldrh r3, [r3, #-32] 18970 str r3, [sp, #40] 18971 movw r3, #65535 18972 ldr r2, [sp, #40] 18973 cmp r2, r3 18974 bne .L3104 18975.L3110: 18976 add r7, r7, #1 18977 uxth r7, r7 18978.L3105: 18979 cmp r8, r7 18980 bcs .L3112 18981 add fp, fp, #1 18982.L3114: 18983 uxth r3, fp 18984 uxth r2, fp 18985 str r3, [sp, #44] 18986 ldrb r3, [sp, #81] @ zero_extendqisi2 18987 cmp r3, r2 18988 bls .L3113 18989 mov r7, #1 18990 add r3, r2, #8 18991 lsl r3, r3, r7 18992 str r3, [sp, #60] 18993 b .L3105 18994.L3104: 18995 ldr r3, [sp, #64] 18996 cmp r8, #3 18997 ldr r2, [sp, #40] 18998 ldrh r3, [r3, #-2] 18999 mul r3, r2, r3 19000 bne .L3106 19001 ldr r2, .L3138 19002 ldrb r2, [r2, #1159] @ zero_extendqisi2 19003 cmp r2, #0 19004 uxtaheq r3, r3, r6 19005 ldrne r2, [sp, #56] 19006 orreq r3, r3, r7, lsl #24 19007 beq .L3108 19008.L3137: 19009 add r3, r2, r3 19010 ldr r2, .L3138+4 19011 add r3, r3, r7 19012 ldrb r2, [r2, #-3128] @ zero_extendqisi2 19013 orr r3, r3, r2, lsl #24 19014.L3108: 19015 str r3, [r4, #24] 19016 mov r1, #1 19017 mov r0, r4 19018 str r3, [sp, #68] 19019 bl sblk_read_page 19020 ldr r9, [r4, #36] 19021 ldr r3, [sp, #68] 19022 cmn r9, #1 19023 cmpne r9, #512 19024 bne .L3110 19025 ldr r1, [r4, #12] 19026 ldr r2, [r4, #4] 19027 ldr r0, [r1, #12] 19028 str r0, [sp, #32] 19029 ldr r0, [r1, #8] 19030 str r0, [sp, #28] 19031 ldr r0, [r1, #4] 19032 str r0, [sp, #24] 19033 ldr r1, [r1] 19034 ldr r0, .L3138+20 19035 str r1, [sp, #20] 19036 ldr r1, [r2, #12] 19037 str r1, [sp, #16] 19038 ldr r1, [r2, #8] 19039 str r1, [sp, #12] 19040 ldr r1, [r2, #4] 19041 str r1, [sp, #8] 19042 ldr r2, [r2] 19043 ldr r1, [sp, #40] 19044 str r9, [sp] 19045 str r2, [sp, #4] 19046 ldr r2, [sp, #52] 19047 bl printk 19048 cmp r9, #512 19049 bne .L3110 19050.L3111: 19051 uxth r2, r6 19052 ldr r6, .L3138+4 19053 ldr r3, [sp, #44] 19054 mov r1, r10 19055 str r7, [sp] 19056 ldr r0, .L3138+24 19057 bl printk 19058 ldrb r2, [r6, #-2546] @ zero_extendqisi2 19059 mov r1, #0 19060 ldr r0, [r4, #4] 19061 ldr fp, .L3138+28 19062 lsl r2, r2, #9 19063 bl ftl_memset 19064 ldrb r2, [r6, #-2546] @ zero_extendqisi2 19065 mov r1, #0 19066 ldr r0, [r4, #12] 19067 lsl r2, r2, #1 19068 bl ftl_memset 19069.L3115: 19070 ldr r7, .L3138+16 19071 ldrh r3, [r7] 19072 cmp r3, r5 19073 bls .L3121 19074 lsl r3, r5, #1 19075 mov r8, #0 19076 ldr r9, .L3138+32 19077 add r7, r7, #24 19078 str r3, [sp, #40] 19079 b .L3122 19080.L3106: 19081 cmp r8, #2 19082 uxtahne r3, r3, r6 19083 bne .L3108 19084 ldr r2, [sp, #48] 19085 b .L3137 19086.L3113: 19087 add r6, r6, #1 19088 b .L3103 19089.L3120: 19090 ldr r3, [fp] 19091 tst r3, #4096 19092 uxth r3, r8 19093 beq .L3116 19094 mov r2, r3 19095 mov r1, r5 19096 mov r0, r9 19097 str r3, [sp, #44] 19098 bl printk 19099 ldr r3, [sp, #44] 19100.L3116: 19101 ldrb r2, [r6, #-3120] @ zero_extendqisi2 19102 cmp r2, #0 19103 beq .L3117 19104 add r2, sp, #104 19105 mov r0, r4 19106 add r3, r2, r3, lsl #1 19107 ldrh r2, [r3, #-16] 19108 ldrh r3, [r7, #-2] 19109 mul r3, r3, r2 19110 orr r3, r3, r5 19111 str r3, [r4, #24] 19112 bl sblk_3d_tlc_dump_prog 19113.L3118: 19114 add r8, r8, #1 19115.L3122: 19116 ldrb r2, [sp, #81] @ zero_extendqisi2 19117 uxth r3, r8 19118 cmp r2, r3 19119 bhi .L3120 19120 add r5, r5, #1 19121 uxth r5, r5 19122 b .L3115 19123.L3117: 19124 ldrb r1, [r6, #-3128] @ zero_extendqisi2 19125 cmp r1, #2 19126 bne .L3119 19127 add r2, sp, #104 19128 mov r0, r4 19129 add r3, r2, r3, lsl #1 19130 ldrh r2, [r3, #-16] 19131 ldrh r3, [r7, #-2] 19132 mul r3, r3, r2 19133 ldr r2, [sp, #40] 19134 orr r3, r3, r2 19135 orr r3, r3, #33554432 19136 str r3, [r4, #24] 19137 bl sblk_mlc_dump_prog 19138 b .L3118 19139.L3119: 19140 add r1, sp, #104 19141 ldrh ip, [r7, #-2] 19142 add r3, r1, r3, lsl #1 19143 ldrh r1, [r3, #-16] 19144 ldr r3, .L3138 19145 mul ip, ip, r1 19146 ldrb r1, [r3, #1153] @ zero_extendqisi2 19147 mvn r3, #0 19148 rsb lr, r1, #24 19149 orr ip, ip, r5 19150 mvn r1, r3, lsl r1 19151 str ip, [r4, #24] 19152 str r2, [sp, #4] 19153 and r0, r1, ip, lsr lr 19154 ldrb r3, [r6, #-2546] @ zero_extendqisi2 19155 bic r1, ip, r1, lsl lr 19156 uxtb r0, r0 19157 str r3, [sp] 19158 ldr r3, [r4, #12] 19159 ldr r2, [r4, #4] 19160 bl flash_prog_page_en 19161 b .L3118 19162.L3121: 19163 mov r0, r4 19164 bl zbuf_free 19165 mov r1, r10 19166 ldr r0, .L3138+36 19167 bl printk 19168.L3099: 19169 add sp, sp, #108 19170 @ sp needed 19171 pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} 19172.L3139: 19173 .align 2 19174.L3138: 19175 .word .LANCHOR0 19176 .word .LANCHOR3 19177 .word .LANCHOR3-3088 19178 .word .LC194 19179 .word .LANCHOR3-3096 19180 .word .LC195 19181 .word .LC196 19182 .word .LANCHOR2 19183 .word .LC197 19184 .word .LC198 19185 .fnend 19186 .size ftl_dump_write_open_sblk, .-ftl_dump_write_open_sblk 19187 .align 2 19188 .global gc_ink_check_sblk 19189 .syntax unified 19190 .arm 19191 .fpu softvfp 19192 .type gc_ink_check_sblk, %function 19193gc_ink_check_sblk: 19194 .fnstart 19195 @ args = 0, pretend = 0, frame = 0 19196 @ frame_needed = 0, uses_anonymous_args = 0 19197 push {r0, r1, r4, r5, r6, r7, r8, r9, r10, lr} 19198 .save {r4, r5, r6, r7, r8, r9, r10, lr} 19199 .pad #8 19200 movw r3, #2106 19201 ldr r4, .L3169 19202 ldr r5, .L3169+4 19203 ldrh r2, [r4, r3] 19204 ldr r6, [r5, #904] 19205 cmp r2, #3 19206 ldrls pc, [pc, r2, asl #2] 19207 b .L3141 19208.L3143: 19209 .word .L3142 19210 .word .L3144 19211 .word .L3145 19212 .word .L3146 19213.L3142: 19214 ldr r8, .L3169+8 19215 movw r3, #2788 19216 ldrh r3, [r8, r3] 19217 cmp r3, #7 19218 bls .L3140 19219 ldrb r3, [r8, #2769] @ zero_extendqisi2 19220 cmp r3, #2 19221 bls .L3140 19222 ldr r7, .L3169+12 19223 mov r1, #0 19224 movw r9, #65535 19225 sub r6, r7, #3072 19226 sub r6, r6, #8 19227 mov r0, r6 19228 bl _list_get_gc_head_node 19229 cmp r0, r9 19230 beq .L3140 19231 ldr r3, [r8, #1084] 19232 lsl r0, r0, #2 19233 ldrh r3, [r3, r0] 19234 ubfx r3, r3, #0, #11 19235 cmp r3, #2 19236 bgt .L3140 19237 mov r0, #1 19238 bl buf_alloc 19239 cmp r0, #0 19240 str r0, [r5, #904] 19241 beq .L3140 19242 mov r0, r6 19243 ldr r2, .L3169+16 19244 mov r1, #0 19245 bl _list_pop_index_node 19246 uxth r10, r0 19247 mov r6, r0 19248 cmp r10, r9 19249 bne .L3150 19250 ldr r0, [r5, #904] 19251 bl zbuf_free 19252 mov r3, #0 19253 str r3, [r5, #904] 19254.L3140: 19255 add sp, sp, #8 19256 @ sp needed 19257 pop {r4, r5, r6, r7, r8, r9, r10, pc} 19258.L3150: 19259 add r1, r4, #2144 19260 mov r0, r10 19261 add r1, r1, #14 19262 uxth r6, r6 19263 bl ftl_get_blk_list_in_sblk 19264 movw r3, #2142 19265 mov r2, #0 19266 strh r10, [r4, r3] @ movhi 19267 add r3, r4, #2144 19268 strh r2, [r3] @ movhi 19269 mov r2, #1 19270 movw r3, #2106 19271 lsl r6, r6, #2 19272 strh r2, [r4, r3] @ movhi 19273 ldr r3, [r8, #1084] 19274 strb r0, [r5, #879] 19275 ldrb r2, [r7, #-2546] @ zero_extendqisi2 19276 ldrh r3, [r3, r6] 19277 tst r3, #1 19278 ldr r3, [r5, #904] 19279 lsl r2, r2, #9 19280 movne r1, #85 19281 moveq r1, #170 19282 ldr r0, [r3, #4] 19283 add sp, sp, #8 19284 @ sp needed 19285 pop {r4, r5, r6, r7, r8, r9, r10, lr} 19286 b ftl_memset 19287.L3144: 19288 movw r3, #2142 19289 mov r1, #0 19290 ldrh r0, [r4, r3] 19291 bl ftl_erase_sblk 19292 mov r2, #2 19293.L3168: 19294 movw r3, #2106 19295.L3166: 19296 strh r2, [r4, r3] @ movhi 19297 b .L3140 19298.L3145: 19299 ldr r8, .L3169+12 19300 mov r7, #0 19301 ldr r10, .L3169+20 19302 bl sblk_wait_write_queue_completed 19303 sub r9, r8, #3072 19304.L3152: 19305 ldrb r2, [r5, #879] @ zero_extendqisi2 19306 uxth r3, r7 19307 cmp r2, r3 19308 bhi .L3154 19309 add r2, r4, #2144 19310 ldr r1, .L3169+24 19311 ldrh r3, [r2] 19312 ldrh r1, [r1, #-8] 19313 add r3, r3, #1 19314 uxth r3, r3 19315 cmp r1, r3 19316 strh r3, [r2] @ movhi 19317 bhi .L3140 19318 mov r3, #0 19319 strh r3, [r2] @ movhi 19320 mov r2, #3 19321 b .L3168 19322.L3154: 19323 uxth r2, r7 19324 add r3, r4, #2128 19325 add r3, r3, #14 19326 add r3, r3, r2, lsl #1 19327 ldrh r1, [r3, #16] 19328 movw r3, #65535 19329 cmp r1, r3 19330 beq .L3153 19331 add r3, r4, #2144 19332 ldrh ip, [r9, #-2] 19333 ldrh r3, [r3] 19334 mla ip, r1, ip, r3 19335 ldr r3, [r6, #4] 19336 str ip, [r3] 19337 ldr r3, [r6, #4] 19338 str r10, [r3, #4] 19339 mov r3, #0 19340 ldr r2, [r6, #12] 19341 str r3, [r2] 19342 ldr r2, .L3169+8 19343 ldrb r1, [r2, #1153] @ zero_extendqisi2 19344 mvn r2, #0 19345 str r3, [sp, #4] 19346 ldrb r3, [r8, #-2546] @ zero_extendqisi2 19347 rsb lr, r1, #24 19348 mvn r1, r2, lsl r1 19349 str r3, [sp] 19350 and r0, r1, ip, lsr lr 19351 ldr r3, [r6, #12] 19352 ldr r2, [r6, #4] 19353 bic r1, ip, r1, lsl lr 19354 uxtb r0, r0 19355 bl flash_prog_page_en 19356.L3153: 19357 add r7, r7, #1 19358 b .L3152 19359.L3146: 19360 add r10, r4, #2128 19361 mov r9, #0 19362 add r10, r10, #14 19363 bl sblk_wait_write_queue_completed 19364.L3155: 19365 ldrb r2, [r5, #879] @ zero_extendqisi2 19366 uxth r3, r9 19367 cmp r2, r3 19368 bhi .L3159 19369 add r2, r4, #2144 19370 ldrh r3, [r2] 19371 add r3, r3, #1 19372 uxth r3, r3 19373 strh r3, [r2] @ movhi 19374 ldr r2, .L3169+24 19375 ldrh r2, [r2, #-8] 19376 cmp r2, r3 19377 bhi .L3140 19378 movw r3, #2106 19379 mov r6, #0 19380 ldr r0, [r5, #904] 19381 strh r6, [r4, r3] @ movhi 19382 bl zbuf_free 19383 movw r2, #2108 19384 str r6, [r5, #904] 19385 ldrh r3, [r4, r2] 19386 cmp r3, #15 19387 bhi .L3160 19388 add r1, r3, #1 19389 add r3, r3, #1040 19390 strh r1, [r4, r2] @ movhi 19391 movw r2, #2142 19392 add r3, r3, #12 19393 ldrh r2, [r4, r2] 19394 add r3, r4, r3, lsl #1 19395 strh r2, [r3, #6] @ movhi 19396.L3161: 19397 movw r3, #2108 19398 ldr r0, .L3169+28 19399 ldrh r2, [r4, r3] 19400 movw r3, #2142 19401 ldrh r1, [r4, r3] 19402 add sp, sp, #8 19403 @ sp needed 19404 pop {r4, r5, r6, r7, r8, r9, r10, lr} 19405 b printk 19406.L3159: 19407 uxth r7, r9 19408 movw r2, #65535 19409 add r7, r7, #8 19410 lsl r7, r7, #1 19411 ldrh r3, [r10, r7] 19412 cmp r3, r2 19413 beq .L3157 19414 ldr r2, .L3169+32 19415 mov r1, #1 19416 mov r0, r6 19417 ldrh r8, [r2] 19418 add r2, r4, #2144 19419 ldrh r2, [r2] 19420 mla r8, r3, r8, r2 19421 str r8, [r6, #24] 19422 bl sblk_read_page 19423 ldr r3, [r6, #4] 19424 ldr r3, [r3] 19425 cmp r8, r3 19426 beq .L3157 19427 mov r0, r8 19428 bl ftl_mask_bad_block 19429 mvn r3, #0 19430 strh r3, [r10, r7] @ movhi 19431.L3157: 19432 add r9, r9, #1 19433 b .L3155 19434.L3160: 19435 movw r3, #2142 19436 ldrh r0, [r4, r3] 19437 bl zftl_insert_free_list 19438 b .L3161 19439.L3141: 19440 mov r2, #0 19441 b .L3166 19442.L3170: 19443 .align 2 19444.L3169: 19445 .word .LANCHOR0+2824 19446 .word .LANCHOR0+4096 19447 .word .LANCHOR0 19448 .word .LANCHOR3 19449 .word .LANCHOR0+2788 19450 .word 1437269760 19451 .word .LANCHOR3-3088 19452 .word .LC199 19453 .word .LANCHOR3-3074 19454 .fnend 19455 .size gc_ink_check_sblk, .-gc_ink_check_sblk 19456 .align 2 19457 .global ftl_ink_check_sblk 19458 .syntax unified 19459 .arm 19460 .fpu softvfp 19461 .type ftl_ink_check_sblk, %function 19462ftl_ink_check_sblk: 19463 .fnstart 19464 @ args = 0, pretend = 0, frame = 40 19465 @ frame_needed = 0, uses_anonymous_args = 0 19466 push {r4, r5, r6, r7, r8, r9, r10, fp, lr} 19467 .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} 19468 lsl r9, r0, #2 19469 ldr r6, .L3190 19470 mov r5, r0 19471 mov r1, r0 19472 .pad #52 19473 sub sp, sp, #52 19474 ldr r2, [r6, #1084] 19475 ldr r3, [r2, r0, lsl #2] 19476 ldrh r2, [r2, r9] 19477 ldr r0, .L3190+4 19478 ubfx r3, r3, #11, #8 19479 ubfx r2, r2, #0, #11 19480 bl printk 19481 movw r3, #65535 19482 cmp r5, r3 19483 beq .L3171 19484 movw r3, #1080 19485 ldrh r3, [r6, r3] 19486 cmp r3, r5 19487 bls .L3171 19488 mov r1, #0 19489 mov r0, r5 19490 bl ftl_erase_sblk 19491 mov r0, r5 19492 add r1, sp, #32 19493 strh r5, [sp, #16] @ movhi 19494 mov r8, #0 19495 bl ftl_get_blk_list_in_sblk 19496 strb r0, [sp, #25] 19497 mov r0, #1 19498 bl buf_alloc 19499 ldr r3, [r6, #1084] 19500 mov r4, r0 19501 ldr r10, .L3190+8 19502 ldr fp, .L3190+12 19503 ldrh r3, [r3, r9] 19504 ldrb r2, [r10, #-2546] @ zero_extendqisi2 19505 ldr r0, [r0, #4] 19506 ubfx r3, r3, #0, #11 19507 cmp r3, #1 19508 lsl r2, r2, #9 19509 movle r1, #85 19510 movgt r1, #170 19511 bl ftl_memset 19512 bl sblk_wait_write_queue_completed 19513.L3175: 19514 ldr r3, .L3190+16 19515 ldrh r2, [r3] 19516 uxth r3, r8 19517 cmp r2, r3 19518 bls .L3178 19519 mov r7, #0 19520 b .L3179 19521.L3177: 19522 uxth r3, r7 19523 add r2, sp, #48 19524 add r3, r2, r3, lsl #1 19525 ldrh r1, [r3, #-16] 19526 movw r3, #65535 19527 cmp r1, r3 19528 beq .L3176 19529 ldr r3, .L3190+20 19530 ldrh ip, [r3] 19531 uxth r3, r8 19532 mla ip, r1, ip, r3 19533 ldr r3, [r4, #4] 19534 str ip, [r3] 19535 ldr r3, [r4, #4] 19536 str fp, [r3, #4] 19537 mov r3, #0 19538 ldr r2, [r4, #12] 19539 str r3, [r2] 19540 mvn r2, #0 19541 ldrb r1, [r6, #1153] @ zero_extendqisi2 19542 str r3, [sp, #4] 19543 ldrb r3, [r10, #-2546] @ zero_extendqisi2 19544 rsb lr, r1, #24 19545 mvn r1, r2, lsl r1 19546 str r3, [sp] 19547 and r0, r1, ip, lsr lr 19548 ldr r3, [r4, #12] 19549 ldr r2, [r4, #4] 19550 bic r1, ip, r1, lsl lr 19551 uxtb r0, r0 19552 bl flash_prog_page_en 19553.L3176: 19554 add r7, r7, #1 19555.L3179: 19556 ldrb r2, [sp, #25] @ zero_extendqisi2 19557 uxth r3, r7 19558 cmp r2, r3 19559 bhi .L3177 19560 add r8, r8, #1 19561 b .L3175 19562.L3178: 19563 mov r10, #0 19564.L3180: 19565 ldr r3, .L3190+24 19566 uxth r2, r10 19567 ldrh r1, [r3, #-8] 19568 cmp r1, r2 19569 bls .L3185 19570 mov fp, #0 19571 str r2, [sp, #12] 19572 b .L3186 19573.L3184: 19574 uxth r7, fp 19575 add r3, sp, #48 19576 add r7, r7, #8 19577 add r7, r3, r7, lsl #1 19578 movw r3, #65535 19579 ldrh r1, [r7, #-32] 19580 cmp r1, r3 19581 beq .L3182 19582 ldr r0, .L3190+20 19583 ldr r3, [sp, #12] 19584 ldrh r8, [r0] 19585 mov r0, r4 19586 mla r8, r1, r8, r3 19587 mov r1, #1 19588 str r8, [r4, #24] 19589 bl sblk_read_page 19590 ldr r1, [r4, #4] 19591 ldr r1, [r1] 19592 cmp r8, r1 19593 beq .L3182 19594 mov r0, r8 19595 bl ftl_mask_bad_block 19596 mvn r1, #0 19597 strh r1, [r7, #-32] @ movhi 19598.L3182: 19599 add fp, fp, #1 19600.L3186: 19601 ldrb r0, [sp, #25] @ zero_extendqisi2 19602 uxth r1, fp 19603 cmp r0, r1 19604 bhi .L3184 19605 add r10, r10, #1 19606 b .L3180 19607.L3185: 19608 mov r0, r4 19609 bl zbuf_free 19610 ldr r2, [r6, #1084] 19611 mov r1, r5 19612 ldr r0, .L3190+28 19613 ldr r3, [r2, r5, lsl #2] 19614 ldrh r2, [r2, r9] 19615 ubfx r3, r3, #11, #8 19616 ubfx r2, r2, #0, #11 19617 bl printk 19618.L3171: 19619 add sp, sp, #52 19620 @ sp needed 19621 pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} 19622.L3191: 19623 .align 2 19624.L3190: 19625 .word .LANCHOR0 19626 .word .LC200 19627 .word .LANCHOR3 19628 .word 1437269760 19629 .word .LANCHOR3-3096 19630 .word .LANCHOR3-3074 19631 .word .LANCHOR3-3088 19632 .word .LC201 19633 .fnend 19634 .size ftl_ink_check_sblk, .-ftl_ink_check_sblk 19635 .align 2 19636 .global ftl_alloc_sblk 19637 .syntax unified 19638 .arm 19639 .fpu softvfp 19640 .type ftl_alloc_sblk, %function 19641ftl_alloc_sblk: 19642 .fnstart 19643 @ args = 0, pretend = 0, frame = 0 19644 @ frame_needed = 0, uses_anonymous_args = 0 19645 push {r4, r5, r6, r7, r8, r9, r10, lr} 19646 .save {r4, r5, r6, r7, r8, r9, r10, lr} 19647 uxth r5, r0 19648 cmp r0, #5 19649 mov r9, r0 19650 mov r1, r5 19651 mov r0, #0 19652 movne r8, #0 19653 moveq r8, #2 19654 bl zftl_get_free_sblk 19655 movw r3, #65535 19656 mov r4, r0 19657 cmp r0, r3 19658 beq .L3194 19659 ldr r6, .L3212 19660 lsl r7, r0, #2 19661 ldr r5, [r6, #1084] 19662 add r5, r5, r7 19663 ldrb r3, [r5, #2] @ zero_extendqisi2 19664 tst r3, #224 19665 beq .L3195 19666 mov r2, #1012 19667 ldr r1, .L3212+4 19668 ldr r0, .L3212+8 19669 bl printk 19670 bl dump_stack 19671.L3195: 19672 ldrb r3, [r5, #2] @ zero_extendqisi2 19673 bfi r3, r9, #5, #3 19674 uxtb r3, r3 19675 ubfx r2, r3, #3, #2 19676 orr r2, r8, r2 19677 bfi r3, r2, #3, #2 19678 clz r2, r8 19679 strb r3, [r5, #2] 19680 uxtb r3, r3 19681 lsr r2, r2, #5 19682 and r1, r3, #24 19683 cmp r1, #24 19684 cmpeq r8, #0 19685 moveq r1, #1 19686 bfieq r3, r1, #3, #2 19687 strbeq r3, [r5, #2] 19688 ldr r3, [r6, #2800] 19689 ldrh r3, [r3, #150] 19690 cmp r3, #0 19691 beq .L3197 19692 ldr r3, [r6, #1084] 19693 ldrh r3, [r3, r7] 19694 ubfx r3, r3, #0, #11 19695 cmp r3, #0 19696 movne r2, #0 19697 andeq r2, r2, #1 19698 cmp r2, #0 19699 beq .L3197 19700 mov r0, r4 19701 bl ftl_ink_check_sblk 19702.L3197: 19703 mov r0, r4 19704 pop {r4, r5, r6, r7, r8, r9, r10, pc} 19705.L3194: 19706 bl print_ftl_debug_info 19707 mov r2, r9 19708 mov r1, r4 19709 ldr r0, .L3212+12 19710 bl printk 19711 mov r1, r5 19712 mov r0, #0 19713 bl zftl_get_free_sblk 19714 mov r2, r9 19715 mov r1, r0 19716 mov r4, r0 19717 ldr r0, .L3212+12 19718 bl printk 19719 bl dump_all_list_info 19720 movw r2, #1031 19721 ldr r1, .L3212+4 19722 ldr r0, .L3212+8 19723 bl printk 19724 bl dump_stack 19725 b .L3197 19726.L3213: 19727 .align 2 19728.L3212: 19729 .word .LANCHOR0 19730 .word .LANCHOR1+2201 19731 .word .LC0 19732 .word .LC202 19733 .fnend 19734 .size ftl_alloc_sblk, .-ftl_alloc_sblk 19735 .align 2 19736 .global ftl_open_sblk_init 19737 .syntax unified 19738 .arm 19739 .fpu softvfp 19740 .type ftl_open_sblk_init, %function 19741ftl_open_sblk_init: 19742 .fnstart 19743 @ args = 0, pretend = 0, frame = 0 19744 @ frame_needed = 0, uses_anonymous_args = 0 19745 push {r3, r4, r5, r6, r7, r8, r9, r10, fp, lr} 19746 .save {r3, r4, r5, r6, r7, r8, r9, r10, fp, lr} 19747 mov r4, r0 19748 ldr r5, .L3222 19749 mov r6, r1 19750 mov r7, #0 19751 sub r8, r5, #3088 19752.L3215: 19753 movw r10, #65535 19754.L3216: 19755 mov r0, r6 19756 bl ftl_alloc_sblk 19757 cmp r0, r10 19758 mov r9, r0 19759 beq .L3216 19760 mov r1, #0 19761 ldr fp, .L3222+4 19762 bl ftl_erase_sblk 19763 add r1, r4, #16 19764 mov r0, r9 19765 bl ftl_get_blk_list_in_sblk 19766 strh r9, [r4] @ movhi 19767 cmp r6, #2 19768 ldrh r2, [r8, #-8] 19769 uxtb r0, r0 19770 ldrbne r3, [r5, #-3127] @ zero_extendqisi2 19771 moveq r3, #0 19772 ldrb r1, [r5, #-3127] @ zero_extendqisi2 19773 lsl r10, r9, #1 19774 strb r0, [r4, #9] 19775 smulbb r0, r0, r2 19776 strh r7, [r4, #2] @ movhi 19777 smulbbne r3, r3, r2 19778 strb r7, [r4, #5] 19779 mul r2, r2, r1 19780 strh r7, [r4, #10] @ movhi 19781 strh r0, [r4, #6] @ movhi 19782 mov r1, #255 19783 ldr r0, [r5, #-2556] 19784 uxthne r3, r3 19785 strb r6, [r4, #4] 19786 strh r3, [r4, #12] @ movhi 19787 lsl r2, r2, #2 19788 add r0, r0, r3, lsl #2 19789 bl ftl_memset 19790 ldr r3, [fp, #1092] 19791 ldrh r2, [r4, #6] 19792 strh r2, [r3, r10] @ movhi 19793 ldrb r3, [r4, #9] @ zero_extendqisi2 19794 cmp r3, #0 19795 popne {r3, r4, r5, r6, r7, r8, r9, r10, fp, pc} 19796 mov r1, r9 19797 ldr r0, .L3222+8 19798 bl printk 19799 ldr r3, [fp, #1092] 19800 mvn r2, #0 19801 strh r2, [r3, r10] @ movhi 19802 mov r3, #7 19803 strb r3, [r4, #4] 19804 b .L3215 19805.L3223: 19806 .align 2 19807.L3222: 19808 .word .LANCHOR3 19809 .word .LANCHOR0 19810 .word .LC203 19811 .fnend 19812 .size ftl_open_sblk_init, .-ftl_open_sblk_init 19813 .align 2 19814 .global pm_alloc_new_blk 19815 .syntax unified 19816 .arm 19817 .fpu softvfp 19818 .type pm_alloc_new_blk, %function 19819pm_alloc_new_blk: 19820 .fnstart 19821 @ args = 0, pretend = 0, frame = 0 19822 @ frame_needed = 0, uses_anonymous_args = 0 19823 push {r0, r1, r4, r5, r6, r7, r8, lr} 19824 .save {r4, r5, r6, r7, r8, lr} 19825 .pad #8 19826 movw r1, #690 19827 ldr r4, .L3242 19828 ldr r7, .L3242+4 19829 ldr r2, [r4, #2800] 19830 ldrh r3, [r2, r1] 19831 add r3, r3, #1 19832 uxth r3, r3 19833 strh r3, [r2, r1] @ movhi 19834 ldrb r1, [r7, #-3127] @ zero_extendqisi2 19835 cmp r1, r3 19836 bls .L3225 19837 add r3, r3, #336 19838 lsl r3, r3, #1 19839 ldrh r2, [r2, r3] 19840 movw r3, #65535 19841 cmp r2, r3 19842 bne .L3226 19843.L3225: 19844 ldr r5, .L3242+8 19845 movw r8, #65535 19846.L3227: 19847 mov r0, #1 19848 bl ftl_alloc_sblk 19849 cmp r0, r8 19850 mov r6, r0 19851 beq .L3227 19852 mov r1, #0 19853 bl ftl_erase_sblk 19854 ldr r1, [r4, #2800] 19855 mov r0, r6 19856 add r1, r1, #672 19857 bl ftl_get_blk_list_in_sblk 19858 uxth r0, r0 19859 cmp r0, #0 19860 bne .L3228 19861 mov r1, r6 19862 mov r0, r5 19863 bl printk 19864 ldr r3, [r4, #1084] 19865 add r6, r3, r6, lsl #2 19866 ldrb r3, [r6, #2] @ zero_extendqisi2 19867 orr r3, r3, #224 19868 strb r3, [r6, #2] 19869 b .L3227 19870.L3228: 19871 ldr r2, [r4, #2800] 19872 movw r3, #690 19873 mov r5, #0 19874 movw r1, #65535 19875 strh r5, [r2, r3] @ movhi 19876 add r2, r2, #416 19877 mov r3, #1 19878 str r3, [r7, #-36] 19879.L3230: 19880 ldrh r0, [r2], #2 19881 uxth r3, r5 19882 cmp r0, r1 19883 beq .L3229 19884 add r5, r5, #1 19885 cmp r5, #128 19886 bne .L3230 19887 mov r2, #264 19888 ldr r1, .L3242+12 19889 ldr r0, .L3242+16 19890 bl printk 19891 bl dump_stack 19892 mov r3, r5 19893.L3229: 19894 ldr r2, [r4, #2800] 19895 add r3, r3, #208 19896 lsl r3, r3, #1 19897 strh r6, [r2, r3] @ movhi 19898 add r3, r2, #688 19899 ldrh r2, [r3] 19900 add r2, r2, #1 19901 strh r2, [r3] @ movhi 19902.L3226: 19903 ldr r2, [r4, #2800] 19904 movw r3, #690 19905 ldrh r3, [r2, r3] 19906 add r3, r3, #336 19907 lsl r3, r3, #1 19908 ldrh r5, [r2, r3] 19909 movw r2, #65533 19910 sub r3, r5, #1 19911 uxth r3, r3 19912 cmp r3, r2 19913 bls .L3232 19914 movw r2, #270 19915 ldr r1, .L3242+12 19916 ldr r0, .L3242+16 19917 bl printk 19918 bl dump_stack 19919.L3232: 19920 ldr r1, [r4, #2800] 19921 mov r2, #0 19922 movw r0, #694 19923 add r3, r1, #696 19924 strh r2, [r3] @ movhi 19925 ldr r3, .L3242+20 19926 ldrb r2, [r4, #1153] @ zero_extendqisi2 19927 ldrh r3, [r3, #-2] 19928 rsb r2, r2, #24 19929 sub r2, r2, r3 19930 asr r3, r5, r2 19931 strh r3, [r1, r0] @ movhi 19932 add r1, r1, #692 19933 strh r5, [r1] @ movhi 19934 ldr r1, .L3242+24 19935 ldr r1, [r1] 19936 tst r1, #4096 19937 beq .L3236 19938 uxth r3, r3 19939 mvn r1, #0 19940 mvn r2, r1, lsl r2 19941 ldr r0, .L3242+28 19942 str r3, [sp] 19943 mov r1, r5 19944 mov r3, r5 19945 bl printk 19946.L3236: 19947 mov r0, #0 19948 add sp, sp, #8 19949 @ sp needed 19950 pop {r4, r5, r6, r7, r8, pc} 19951.L3243: 19952 .align 2 19953.L3242: 19954 .word .LANCHOR0 19955 .word .LANCHOR3 19956 .word .LC203 19957 .word .LANCHOR1+2216 19958 .word .LC0 19959 .word .LANCHOR3-3136 19960 .word .LANCHOR2 19961 .word .LC204 19962 .fnend 19963 .size pm_alloc_new_blk, .-pm_alloc_new_blk 19964 .align 2 19965 .global pm_write_page 19966 .syntax unified 19967 .arm 19968 .fpu softvfp 19969 .type pm_write_page, %function 19970pm_write_page: 19971 .fnstart 19972 @ args = 0, pretend = 0, frame = 0 19973 @ frame_needed = 0, uses_anonymous_args = 0 19974 push {r0, r1, r4, r5, r6, r7, r8, r9, r10, lr} 19975 .save {r4, r5, r6, r7, r8, r9, r10, lr} 19976 .pad #8 19977 mov r5, r0 19978 ldr r9, .L3258 19979 mov r8, r1 19980 mov r7, r9 19981.L3245: 19982 ldr r3, [r9, #2800] 19983 ldr r2, [r3, #48] 19984 add r2, r2, #1 19985 str r2, [r3, #48] 19986 add r2, r3, #696 19987 ldrh r1, [r2] 19988 ldr r2, .L3258+4 19989 ldrh r2, [r2] 19990 cmp r1, r2 19991 bcs .L3246 19992 add r3, r3, #692 19993 ldrh r2, [r3] 19994 movw r3, #65535 19995 cmp r2, r3 19996 bne .L3247 19997.L3246: 19998 bl pm_alloc_new_blk 19999 mov r0, #0 20000 bl ftl_info_flush 20001.L3247: 20002 ldr r3, [r7, #2800] 20003 add r3, r3, #692 20004 ldrh r2, [r3] 20005 movw r3, #65535 20006 cmp r2, r3 20007 bne .L3248 20008 movw r2, #303 20009 ldr r1, .L3258+8 20010 ldr r0, .L3258+12 20011 bl printk 20012 bl dump_stack 20013.L3248: 20014 ldr r3, [r7, #2800] 20015 mov r1, #0 20016 ldr r4, .L3258+16 20017 add r2, r3, #692 20018 add r3, r3, #696 20019 ldrh r6, [r2] 20020 sub r2, r4, #3072 20021 ldrh r2, [r2, #-2] 20022 ldrh r3, [r3] 20023 ldr r0, [r4, #-32] 20024 mla r6, r2, r6, r3 20025 mov r2, #64 20026 bl ftl_memset 20027 ldr r3, [r4, #-32] 20028 mov r0, r8 20029 str r5, [r3] 20030 ldr r3, [r7, #2800] 20031 ldrb r1, [r4, #-2546] @ zero_extendqisi2 20032 ldr r10, [r4, #-32] 20033 ldr r3, [r3, #48] 20034 lsl r1, r1, #9 20035 str r3, [r10, #4] 20036 bl js_hash 20037 ldr r3, [r7, #2800] 20038 mov r2, r8 20039 str r0, [r10, #8] 20040 mov r1, r6 20041 ldrb r0, [r3, #694] @ zero_extendqisi2 20042 ldrb r3, [r4, #-2546] @ zero_extendqisi2 20043 str r3, [sp] 20044 ldr r3, [r4, #-32] 20045 bl ftl_prog_page 20046 ldr r2, [r7, #2800] 20047 add r1, r2, #696 20048 ldrh r3, [r1] 20049 add r3, r3, #1 20050 uxth r3, r3 20051 cmp r3, #1 20052 strh r3, [r1] @ movhi 20053 beq .L3249 20054 ldrb r3, [r4, #-28] @ zero_extendqisi2 20055 cmp r3, #0 20056 beq .L3250 20057.L3249: 20058 mov r3, #0 20059 strb r3, [r4, #-28] 20060 b .L3245 20061.L3250: 20062 cmn r0, #1 20063 bne .L3252 20064 mov r1, r6 20065 ldr r0, .L3258+20 20066 bl printk 20067 b .L3245 20068.L3252: 20069 movw r3, #698 20070 mov r0, #0 20071 ldrh r3, [r2, r3] 20072 cmp r5, r3 20073 addcc r5, r5, #176 20074 strcc r6, [r2, r5, lsl #2] 20075 add sp, sp, #8 20076 @ sp needed 20077 pop {r4, r5, r6, r7, r8, r9, r10, pc} 20078.L3259: 20079 .align 2 20080.L3258: 20081 .word .LANCHOR0 20082 .word .LANCHOR3-3096 20083 .word .LANCHOR1+2233 20084 .word .LC0 20085 .word .LANCHOR3 20086 .word .LC205 20087 .fnend 20088 .size pm_write_page, .-pm_write_page 20089 .align 2 20090 .global flash_info_flush 20091 .syntax unified 20092 .arm 20093 .fpu softvfp 20094 .type flash_info_flush, %function 20095flash_info_flush: 20096 .fnstart 20097 @ args = 0, pretend = 0, frame = 8 20098 @ frame_needed = 0, uses_anonymous_args = 0 20099 ldr r3, .L3273 20100 push {r4, r5, r6, r7, r8, r9, r10, fp, lr} 20101 .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} 20102 .pad #20 20103 sub sp, sp, #20 20104 ldr r3, [r3] 20105 tst r3, #4096 20106 beq .L3261 20107 ldr r2, .L3273+4 20108 movw r1, #365 20109 ldr r0, .L3273+8 20110 bl printk 20111.L3261: 20112 ldr r4, .L3273+12 20113 mov r2, #64 20114 ldr r5, .L3273+16 20115 mov r1, #0 20116 ldr r9, .L3273+20 20117 mov r7, #0 20118 ldr r0, [r4, #-24] 20119 mov r10, r7 20120 bl ftl_memset 20121 mov r3, #16 20122 mov r2, #4 20123 ldr r1, [r5, #1040] 20124 ldr r0, .L3273+24 20125 bl rknand_print_hex 20126 ldr r8, .L3273+28 20127 ldr r6, [r5, #1040] 20128 ldr r1, [r6, #8] 20129 add r0, r6, #16 20130 bl js_hash 20131 str r0, [r6, #12] 20132.L3262: 20133 ldrb r6, [r4, #-20] @ zero_extendqisi2 20134 mov r0, r9 20135 ldrh fp, [r4, #-18] 20136 ldrh r3, [r5, #2] 20137 mov r1, r6 20138 mov r2, fp 20139 str r3, [sp, #12] 20140 bl printk 20141 ldrh r2, [r4, #-224] 20142 ldrh r0, [r4, #-18] 20143 ldr r3, [sp, #12] 20144 sub r2, r2, #1 20145 cmp r0, r2 20146 blt .L3263 20147 ldr r6, [r5, #1040] 20148 ldrb r2, [r4, #-19] @ zero_extendqisi2 20149 strh r10, [r4, #-18] @ movhi 20150 ldr r3, [r6, #4] 20151 mov r0, r6 20152 add r3, r3, #1 20153 str r3, [r6, #4] 20154 ldrb r3, [r4, #-20] @ zero_extendqisi2 20155 strb r2, [r4, #-20] 20156 strb r3, [r4, #-19] 20157 ldrh r3, [r6, #16] 20158 add r3, r3, #1 20159 strh r3, [r0, #16]! @ movhi 20160 ldr r1, [r6, #8] 20161 bl js_hash 20162 ldrb r3, [r4, #-20] @ zero_extendqisi2 20163 str r0, [r6, #12] 20164 mov r0, #0 20165 ldrh r6, [r5, #2] 20166 mul r6, r6, r3 20167 mov r1, r6 20168.L3272: 20169 bl flash_erase_block 20170.L3264: 20171 ldr r2, [r5, #1040] 20172 mov fp, #1 20173 ldr r3, [r4, #-24] 20174 mov r1, r6 20175 mov r0, #0 20176 ldr r2, [r2, #4] 20177 str r2, [r3] 20178 mov r2, #4 20179 ldr r3, [r4, #-24] 20180 str r8, [r3, #4] 20181 stm sp, {r2, fp} 20182 ldr r2, [r5, #1040] 20183 bl flash_prog_page_en 20184 ldrh r3, [r4, #-18] 20185 cmn r0, #1 20186 add r3, r3, fp 20187 strh r3, [r4, #-18] @ movhi 20188 bne .L3265 20189 mov r1, r6 20190 ldr r0, .L3273+32 20191 bl printk 20192 b .L3262 20193.L3267: 20194 mov r7, fp 20195 b .L3262 20196.L3263: 20197 cmp r0, #0 20198 mla r6, r6, r3, fp 20199 bne .L3264 20200 mov r1, r6 20201 b .L3272 20202.L3265: 20203 cmp r7, #0 20204 beq .L3267 20205 mov r0, #0 20206 add sp, sp, #20 20207 @ sp needed 20208 pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} 20209.L3274: 20210 .align 2 20211.L3273: 20212 .word .LANCHOR2 20213 .word .LANCHOR1+2247 20214 .word .LC135 20215 .word .LANCHOR3 20216 .word .LANCHOR0 20217 .word .LC207 20218 .word .LC206 20219 .word 1398362953 20220 .word .LC208 20221 .fnend 20222 .size flash_info_flush, .-flash_info_flush 20223 .align 2 20224 .global flash_info_blk_init 20225 .syntax unified 20226 .arm 20227 .fpu softvfp 20228 .type flash_info_blk_init, %function 20229flash_info_blk_init: 20230 .fnstart 20231 @ args = 0, pretend = 0, frame = 0 20232 @ frame_needed = 0, uses_anonymous_args = 0 20233 ldr r3, .L3307 20234 push {r0, r1, r2, r4, r5, r6, r7, r8, r9, r10, fp, lr} 20235 .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} 20236 .pad #12 20237 ldr r4, .L3307+4 20238 ldr r3, [r3] 20239 tst r3, #4096 20240 beq .L3276 20241 ldr r3, [r4, #1040] 20242 mov r1, #50 20243 ldr r2, .L3307+8 20244 ldr r0, .L3307+12 20245 str r3, [sp] 20246 mov r3, #2048 20247 bl printk 20248.L3276: 20249 ldr r5, .L3307+16 20250 mov r7, #4 20251 ldr r8, .L3307+20 20252.L3280: 20253 mov r6, #0 20254.L3279: 20255 ldrh r1, [r4, #2] 20256 mov r9, #4 20257 str r9, [sp] 20258 mov r0, #0 20259 ldr r3, [r5, #-24] 20260 ldr r2, [r4, #1040] 20261 mla r1, r7, r1, r6 20262 bl flash_read_page_en 20263 cmn r0, #1 20264 beq .L3277 20265 ldr r2, [r4, #1040] 20266 ldr r3, [r2] 20267 cmp r3, r8 20268 beq .L3278 20269.L3277: 20270 add r6, r6, #1 20271 cmp r6, #4 20272 bne .L3279 20273 add r7, r7, #1 20274 cmp r7, #16 20275 bne .L3280 20276.L3306: 20277 mvn r0, #0 20278.L3275: 20279 add sp, sp, #12 20280 @ sp needed 20281 pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} 20282.L3287: 20283 str r9, [sp] 20284 sub r1, r10, r7 20285 ldr r3, [r5, #-24] 20286 mov r0, #0 20287 ldr r2, [r4, #1040] 20288 bl flash_read_page_en 20289 cmn r0, #1 20290 beq .L3285 20291 ldr r3, [r4, #1040] 20292 ldr r3, [r3] 20293 cmp r3, r8 20294 beq .L3286 20295.L3285: 20296 add r7, r7, #1 20297 b .L3284 20298.L3286: 20299 cmp r7, #1 20300 bls .L3290 20301 bl flash_info_flush 20302.L3290: 20303 mov r0, #0 20304 b .L3275 20305.L3278: 20306 ldrb r1, [r2, #36] @ zero_extendqisi2 20307 ldrh r0, [r4, #2] 20308 ldrb r3, [r2, #37] @ zero_extendqisi2 20309 strb r1, [r5, #-20] 20310 str r9, [sp] 20311 strb r3, [r5, #-19] 20312 mul r1, r1, r0 20313 ldr r3, [r5, #-24] 20314 mov r0, #0 20315 bl flash_read_page_en 20316 cmn r0, #1 20317 beq .L3289 20318 ldr r3, [r4, #1040] 20319 ldr r2, [r3] 20320 cmp r2, r8 20321 ldreq r6, [r3, #4] 20322 beq .L3282 20323.L3289: 20324 mov r6, #0 20325.L3282: 20326 ldrh r0, [r4, #2] 20327 mov r3, #4 20328 ldrb r1, [r5, #-19] @ zero_extendqisi2 20329 str r3, [sp] 20330 ldr r2, [r4, #1040] 20331 ldr r3, [r5, #-24] 20332 mul r1, r0, r1 20333 mov r0, #0 20334 bl flash_read_page_en 20335 cmn r0, #1 20336 beq .L3283 20337 ldr r3, [r4, #1040] 20338 ldr r2, [r3] 20339 cmp r2, r8 20340 bne .L3283 20341 ldr r2, [r3, #4] 20342 cmp r6, r2 20343 ldrbcc r2, [r3, #37] @ zero_extendqisi2 20344 ldrbcc r3, [r3, #36] @ zero_extendqisi2 20345 strbcc r2, [r5, #-20] 20346 strbcc r3, [r5, #-19] 20347.L3283: 20348 mov r9, #4 20349 ldr r3, [r5, #-24] 20350 ldrb r1, [r5, #-20] @ zero_extendqisi2 20351 mov r0, #0 20352 str r9, [sp] 20353 mov r7, #0 20354 ldr r2, [r4, #1040] 20355 bl flash_get_last_written_page 20356 uxth fp, r0 20357 ldrb r10, [r5, #-20] @ zero_extendqisi2 20358 add r3, fp, #1 20359 strh r3, [r5, #-18] @ movhi 20360 ldrh r3, [r4, #2] 20361 mla r10, r3, r10, r0 20362.L3284: 20363 sub r0, fp, r7 20364 sxth r6, r0 20365 cmp r6, #0 20366 bge .L3287 20367 cmn r6, #1 20368 bne .L3286 20369 ldr r3, [r4, #1040] 20370 ldr r0, .L3307+24 20371 ldr r1, [r3] 20372 bl printk 20373 b .L3306 20374.L3308: 20375 .align 2 20376.L3307: 20377 .word .LANCHOR2 20378 .word .LANCHOR0 20379 .word .LANCHOR1+2264 20380 .word .LC209 20381 .word .LANCHOR3 20382 .word 1398362953 20383 .word .LC210 20384 .fnend 20385 .size flash_info_blk_init, .-flash_info_blk_init 20386 .align 2 20387 .global nand_flash_init 20388 .syntax unified 20389 .arm 20390 .fpu softvfp 20391 .type nand_flash_init, %function 20392nand_flash_init: 20393 .fnstart 20394 @ args = 0, pretend = 0, frame = 0 20395 @ frame_needed = 0, uses_anonymous_args = 0 20396 push {r3, r4, r5, r6, r7, r8, r9, r10, fp, lr} 20397 .save {r3, r4, r5, r6, r7, r8, r9, r10, fp, lr} 20398 mov r4, r0 20399 ldr r6, .L3395 20400 ldr r3, [r6] 20401 tst r3, #4096 20402 beq .L3310 20403 ldr r2, .L3395+4 20404 movw r1, #3450 20405 ldr r0, .L3395+8 20406 bl printk 20407.L3310: 20408 ldr r5, .L3395+12 20409 mov r7, #0 20410 mov r0, r4 20411 ldr r4, .L3395+16 20412 ldr r9, .L3395+20 20413 mov fp, #44 20414 str r7, [r5, #-104] 20415 bl nandc_init 20416 ldr r3, .L3395+24 20417 mov r2, #8 20418 mov r1, r7 20419 ldr r0, .L3395+28 20420 mov r10, r9 20421 str r3, [r4, #1104] 20422 mov r3, #1 20423 strb r3, [r4, #1109] 20424 mov r3, #3 20425 strb r3, [r4, #1153] 20426 bl ftl_memset 20427 mov r2, #32 20428 mov r1, r7 20429 sub r0, r5, #220 20430 bl ftl_memset 20431.L3316: 20432 lsl r8, r7, #3 20433 uxtb r0, r7 20434 add r1, r9, r8 20435 bl flash_read_id 20436 cmp r7, #0 20437 bne .L3311 20438 ldrb r3, [r4, #1160] @ zero_extendqisi2 20439 sub r3, r3, #1 20440 uxtb r3, r3 20441 cmp r3, #253 20442 bls .L3312 20443.L3314: 20444 mvn r7, #1 20445.L3309: 20446 mov r0, r7 20447 pop {r3, r4, r5, r6, r7, r8, r9, r10, fp, pc} 20448.L3312: 20449 ldrb r3, [r4, #1161] @ zero_extendqisi2 20450 cmp r3, #255 20451 beq .L3314 20452.L3311: 20453 ldrb r3, [r8, r10] @ zero_extendqisi2 20454 add r7, r7, #1 20455 cmp r3, #181 20456 strbeq fp, [r8, r10] 20457 cmp r7, #4 20458 bne .L3316 20459 ldr r9, .L3395+32 20460 mov r7, #0 20461 ldr r10, .L3395+20 20462.L3319: 20463 lsl r8, r7, #5 20464 ldrb r2, [r9, r7, lsl #5] @ zero_extendqisi2 20465 mov r1, r10 20466 add r0, r8, #1 20467 add r0, r9, r0 20468 bl flash_mem_cmp8 20469 cmp r0, #0 20470 bne .L3317 20471 add r9, r9, r8 20472 ldr r3, .L3395+36 20473 add r8, r6, r8 20474 ldrb r2, [r8, #440] @ zero_extendqisi2 20475 mov r1, r3 20476.L3318: 20477 ldrb ip, [r3, r0, lsl #5] @ zero_extendqisi2 20478 cmp ip, r2 20479 beq .L3320 20480 add r0, r0, #1 20481 cmp r0, #4 20482 bne .L3318 20483.L3320: 20484 add r1, r1, r0, lsl #5 20485 mov r2, #32 20486 ldr r0, .L3395+40 20487 bl ftl_memcpy 20488 mov r2, #32 20489 mov r1, r9 20490 ldr r0, .L3395+24 20491 bl ftl_memcpy 20492 ldrb r3, [r4, #1028] @ zero_extendqisi2 20493 cmp r3, #8 20494 bhi .L3321 20495 ldrb r2, [r6, #24] @ zero_extendqisi2 20496 cmp r2, #60 20497 movhi r2, #60 20498 strbhi r2, [r6, #24] 20499 cmp r3, #6 20500 beq .L3314 20501.L3321: 20502 ldr r3, [r6] 20503 tst r3, #4096 20504 beq .L3323 20505 ldr r2, .L3395+4 20506 movw r1, #3480 20507 ldr r0, .L3395+8 20508 bl printk 20509.L3323: 20510 ldr r3, [r4, #1104] 20511 mov r0, #16384 20512 mov r7, #0 20513 ldrh r3, [r3, #10] 20514 cmp r3, #1024 20515 movcs r3, #2 20516 strbcs r3, [r4, #1153] 20517 bl ftl_malloc 20518 str r0, [r5, #-92] 20519 mov r0, #16384 20520 bl ftl_malloc 20521 str r0, [r5, #-120] 20522 mov r0, #2048 20523 bl ftl_dma32_malloc 20524 str r0, [r4, #1040] 20525 mov r0, #64 20526 bl ftl_dma32_malloc 20527 str r0, [r5, #-96] 20528 mov r0, #64 20529 bl ftl_dma32_malloc 20530 str r0, [r5, #-112] 20531 mov r0, #64 20532 bl ftl_dma32_malloc 20533 strb r7, [r5, #-16] 20534 str r0, [r5, #-24] 20535 bl flash_die_info_init 20536 ldrb r0, [r6, #22] @ zero_extendqisi2 20537 bl flash_lsb_page_tbl_build 20538 ldrb r0, [r6, #24] @ zero_extendqisi2 20539 bl nandc_bch_sel 20540 ldr r1, [r4, #1104] 20541 str r7, [r5, #-100] 20542 ldrh r3, [r1, #16] 20543 ubfx r2, r3, #8, #3 20544 strb r2, [r4, #1192] 20545 ubfx r2, r3, #3, #1 20546 strb r2, [r5, #-80] 20547 ubfx r2, r3, #4, #1 20548 strb r2, [r4, #1194] 20549 ubfx r2, r3, #12, #1 20550 strb r2, [r5, #-3120] 20551 ubfx r2, r3, #13, #1 20552 strb r2, [r5, #-3126] 20553 ubfx r2, r3, #11, #1 20554 strb r2, [r4, #1158] 20555 ldrb r2, [r1, #31] @ zero_extendqisi2 20556 ldrb r1, [r1, #28] @ zero_extendqisi2 20557 ubfx r0, r2, #1, #1 20558 strb r0, [r5, #-2542] 20559 ubfx r0, r2, #2, #1 20560 strb r0, [r5, #-15] 20561 ubfx r0, r3, #14, #1 20562 lsr r3, r3, #15 20563 strb r0, [r4, #1] 20564 strb r1, [r4] 20565 strb r3, [r5, #-3125] 20566 ubfx r3, r2, #3, #1 20567 strb r3, [r4, #1152] 20568 mov r3, #60 20569 strb r3, [r4, #1108] 20570 ubfx r2, r2, #4, #1 20571 ldrb r3, [r4, #1028] @ zero_extendqisi2 20572 strb r2, [r4, #1159] 20573 strb r1, [r4, #1110] 20574 cmp r3, #9 20575 moveq r2, #70 20576 strbeq r2, [r4, #1108] 20577 ldrb r2, [r6, #35] @ zero_extendqisi2 20578 tst r2, #1 20579 beq .L3326 20580 ldrb r2, [r6, #33] @ zero_extendqisi2 20581 cmp r2, #0 20582 movne r2, #2 20583 moveq r2, #3 20584 strb r2, [r4, #1110] 20585.L3326: 20586 cmp r3, #8 20587 bne .L3328 20588 ldrb r3, [r4, #1160] @ zero_extendqisi2 20589 cmp r3, #137 20590 cmpne r3, #44 20591 bne .L3328 20592 ldrb r3, [r6, #32] @ zero_extendqisi2 20593 cmp r3, #3 20594 moveq r3, #0 20595 strbeq r3, [r4, #1110] 20596.L3328: 20597 ldrh r2, [r6, #20] 20598 ldrb r3, [r6, #23] @ zero_extendqisi2 20599 tst r2, #64 20600 strb r3, [r4, #1100] 20601 beq .L3330 20602 sub r2, r3, #17 20603 cmp r3, #21 20604 cmpne r2, #2 20605 bhi .L3331 20606 cmp r3, #21 20607 ldr r2, .L3395+44 20608 movne r3, #15 20609 moveq r3, #4 20610 str r2, [r5, #-100] 20611.L3391: 20612 strb r3, [r5, #-108] 20613.L3330: 20614 ldr r3, [r6] 20615 tst r3, #4096 20616 beq .L3341 20617 ldr r2, .L3395+4 20618 movw r1, #3573 20619 ldr r0, .L3395+8 20620 bl printk 20621.L3341: 20622 mov r3, #0 20623 strb r3, [r4, #1143] 20624 ldrb r3, [r4, #1192] @ zero_extendqisi2 20625 tst r3, #1 20626 moveq r0, #4 20627 beq .L3393 20628 ldrb r3, [r4, #1160] @ zero_extendqisi2 20629 cmp r3, #155 20630 beq .L3343 20631 mov r0, #4 20632 bl flash_set_interface_mode 20633 mov r0, #4 20634 bl nandc_set_if_mode 20635.L3343: 20636 mov r0, #1 20637 bl flash_set_interface_mode 20638 mov r0, #1 20639.L3393: 20640 bl nandc_set_if_mode 20641 bl flash_info_blk_init 20642 cmn r0, #1 20643 mov r7, r0 20644 bne .L3345 20645 ldr r3, [r4, #1040] 20646 mov r2, #17 20647 mov r0, #0 20648 strb r0, [r4, #1154] 20649 strb r2, [r3, #32] 20650 bl zftl_flash_exit_slc_mode 20651 b .L3309 20652.L3317: 20653 add r7, r7, #1 20654 cmp r7, #49 20655 bne .L3319 20656 b .L3314 20657.L3331: 20658 sub r2, r3, #65 20659 cmp r3, #33 20660 cmpne r2, #1 20661 bhi .L3334 20662 ldr r3, .L3395+48 20663 str r3, [r5, #-100] 20664 mov r3, #4 20665 strb r3, [r4, #1101] 20666.L3394: 20667 mov r3, #7 20668 b .L3391 20669.L3334: 20670 sub r2, r3, #67 20671 sub r1, r3, #34 20672 uxtb r2, r2 20673 cmp r2, #1 20674 cmphi r1, #1 20675 movls r1, #1 20676 movhi r1, #0 20677 bhi .L3335 20678 cmp r3, #68 20679 cmpne r3, #35 20680 ldr r1, .L3395+48 20681 movne r3, #7 20682 moveq r3, #17 20683 cmp r2, #1 20684 strb r3, [r5, #-108] 20685 movls r3, #4 20686 movhi r3, #5 20687 str r1, [r5, #-100] 20688 strb r3, [r4, #1101] 20689 b .L3330 20690.L3335: 20691 sub r2, r3, #36 20692 cmp r2, #1 20693 ldrls r3, .L3395+52 20694 strls r3, [r5, #-100] 20695 bls .L3394 20696.L3339: 20697 cmp r3, #50 20698 ldreq r3, .L3395+56 20699 streq r3, [r5, #-100] 20700 moveq r3, #25 20701 beq .L3391 20702.L3340: 20703 cmp r3, #81 20704 ldreq r3, .L3395+60 20705 strbeq r1, [r4, #1195] 20706 streq r3, [r5, #-100] 20707 moveq r3, #7 20708 strbeq r3, [r5, #-108] 20709 b .L3330 20710.L3345: 20711 ldrb r3, [r6, #11] @ zero_extendqisi2 20712 cmp r3, #9 20713 bne .L3346 20714 ldr r3, [r4, #1040] 20715 ldrb r3, [r3, #20] @ zero_extendqisi2 20716 cmp r3, #1 20717 movne r3, #0 20718 strbne r3, [r4, #1110] 20719.L3346: 20720 ldrb r3, [r4, #1100] @ zero_extendqisi2 20721 sub r3, r3, #1 20722 cmp r3, #7 20723 ldrls r3, .L3395+64 20724 strls r3, [r5, #-100] 20725 ldrb r3, [r4, #1192] @ zero_extendqisi2 20726 tst r3, #4 20727 beq .L3349 20728 ldr r3, [r4, #1040] 20729 ldrb r3, [r3, #19] @ zero_extendqisi2 20730 cmp r3, #0 20731 beq .L3349 20732 ldrb r3, [r5, #-20] @ zero_extendqisi2 20733 mov r0, #0 20734 ldrh r1, [r4, #2] 20735 mul r1, r1, r3 20736 bl flash_ddr_para_scan 20737 ldrb r3, [r4, #1143] @ zero_extendqisi2 20738 cmp r3, #0 20739 bne .L3349 20740 ldr r2, [r4, #1040] 20741 strb r3, [r2, #19] 20742 bl flash_info_flush 20743.L3349: 20744 ldr r3, [r6] 20745 tst r3, #4096 20746 beq .L3351 20747 ldr r2, .L3395+4 20748 movw r1, #3676 20749 ldr r0, .L3395+8 20750 bl printk 20751.L3351: 20752 bl nand_flash_print_info 20753 mov r7, #0 20754 b .L3309 20755.L3396: 20756 .align 2 20757.L3395: 20758 .word .LANCHOR2 20759 .word .LANCHOR1+2284 20760 .word .LC135 20761 .word .LANCHOR3 20762 .word .LANCHOR0 20763 .word .LANCHOR0+1160 20764 .word .LANCHOR2+4 20765 .word .LANCHOR0+1144 20766 .word .LANCHOR2+418 20767 .word .LANCHOR2+1986 20768 .word .LANCHOR0+1111 20769 .word micron_read_retrial 20770 .word toshiba_read_retrial 20771 .word toshiba_3d_read_retrial 20772 .word samsung_read_retrial 20773 .word ymtc_3d_read_retrial 20774 .word hynix_read_retrial 20775 .fnend 20776 .size nand_flash_init, .-nand_flash_init 20777 .align 2 20778 .global ftl_sysblk_dump 20779 .syntax unified 20780 .arm 20781 .fpu softvfp 20782 .type ftl_sysblk_dump, %function 20783ftl_sysblk_dump: 20784 .fnstart 20785 @ args = 0, pretend = 0, frame = 8 20786 @ frame_needed = 0, uses_anonymous_args = 0 20787 push {r4, r5, r6, r7, r8, r9, r10, fp, lr} 20788 .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} 20789 mov r9, r0 20790 .pad #52 20791 sub sp, sp, #52 20792 mov r0, #1 20793 mov r5, #0 20794 ldr r10, .L3408 20795 mov r6, r5 20796 bl buf_alloc 20797 ldr r3, [r0, #4] 20798 mov r4, r0 20799 str r3, [sp, #44] 20800.L3398: 20801 ldr r3, .L3408+4 20802 ldrh r2, [r3, #-8] 20803 uxth r3, r5 20804 cmp r2, r3 20805 bhi .L3400 20806 ldr r1, [sp, #44] 20807 mov r3, #32 20808 mov r2, #4 20809 ldr r0, .L3408+8 20810 add r1, r1, #704 20811 bl rknand_print_hex 20812 mov r0, r4 20813 bl zbuf_free 20814 cmp r6, #0 20815 beq .L3401 20816 movw r2, #1619 20817 ldr r1, .L3408+12 20818 ldr r0, .L3408+16 20819 bl printk 20820 bl dump_stack 20821.L3401: 20822 mov r0, r6 20823 add sp, sp, #52 20824 @ sp needed 20825 pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} 20826.L3400: 20827 ldr r3, .L3408+20 20828 uxth fp, r5 20829 ldr r2, [r4, #12] 20830 add r5, r5, #1 20831 ldr r1, [r4, #4] 20832 ldrh r7, [r3] 20833 ldrb r3, [r10, #-2546] @ zero_extendqisi2 20834 mla r7, r9, r7, fp 20835 mov r0, r7 20836 bl ftl_read_ppa_page 20837 ldr r2, [r4, #12] 20838 mov r8, r0 20839 ldr r3, [r4, #4] 20840 ldr r1, [r2, #12] 20841 str r1, [sp, #32] 20842 ldr r1, [r2, #8] 20843 str r1, [sp, #28] 20844 ldr r1, [r2, #4] 20845 str r1, [sp, #24] 20846 mov r1, r9 20847 ldr r2, [r2] 20848 str r2, [sp, #20] 20849 ldr r2, [r3, #12] 20850 str r2, [sp, #16] 20851 ldr r2, [r3, #8] 20852 str r2, [sp, #12] 20853 ldr r2, [r3, #4] 20854 str r2, [sp, #8] 20855 mov r2, fp 20856 ldr r3, [r3] 20857 str r0, [sp] 20858 ldr r0, .L3408+24 20859 str r3, [sp, #4] 20860 mov r3, r7 20861 bl printk 20862 cmn r8, #1 20863 cmpne r8, #512 20864 moveq r6, #1 20865 b .L3398 20866.L3409: 20867 .align 2 20868.L3408: 20869 .word .LANCHOR3 20870 .word .LANCHOR3-3088 20871 .word .LC211 20872 .word .LANCHOR1+2300 20873 .word .LC0 20874 .word .LANCHOR3-3074 20875 .word .LC195 20876 .fnend 20877 .size ftl_sysblk_dump, .-ftl_sysblk_dump 20878 .align 2 20879 .global ftl_open_sblk_recovery 20880 .syntax unified 20881 .arm 20882 .fpu softvfp 20883 .type ftl_open_sblk_recovery, %function 20884ftl_open_sblk_recovery: 20885 .fnstart 20886 @ args = 0, pretend = 0, frame = 216 20887 @ frame_needed = 0, uses_anonymous_args = 0 20888 push {r4, r5, r6, r7, r8, r9, r10, fp, lr} 20889 .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} 20890 .pad #228 20891 sub sp, sp, #228 20892 ldr r5, .L3532 20893 mov r4, r0 20894 str r1, [sp, #28] 20895 ldr r3, [r5] 20896 tst r3, #4096 20897 beq .L3411 20898 ldrh r1, [r0, #2] 20899 ldr r0, .L3532+4 20900 bl printk 20901.L3411: 20902 ldr r3, [r5] 20903 tst r3, #4096 20904 beq .L3412 20905 ldrb r1, [r4, #5] @ zero_extendqisi2 20906 ldr r0, .L3532+8 20907 bl printk 20908.L3412: 20909 ldr r3, [r5] 20910 tst r3, #4096 20911 beq .L3413 20912 ldrh r1, [r4] 20913 ldr r0, .L3532+12 20914 bl printk 20915.L3413: 20916 ldr r3, [r5] 20917 tst r3, #4096 20918 beq .L3414 20919 ldrh r2, [r4, #18] 20920 ldrh r1, [r4, #16] 20921 ldr r0, .L3532+16 20922 bl printk 20923.L3414: 20924 ldr r3, [r5] 20925 tst r3, #4096 20926 beq .L3415 20927 ldrb r1, [r4, #9] @ zero_extendqisi2 20928 ldr r0, .L3532+20 20929 bl printk 20930.L3415: 20931 ldrh r3, [r4, #10] 20932 ldr r1, .L3532+24 20933 ldrh r2, [r4] 20934 strh r3, [r4, #14] @ movhi 20935 movw r3, #1080 20936 ldrh r3, [r1, r3] 20937 cmp r2, r3 20938 bcs .L3410 20939 mov r0, #1 20940 bl buf_alloc 20941 ldr r3, .L3532+28 20942 mov r1, #255 20943 ldr r2, [r0, #4] 20944 mov r5, r0 20945 add r0, sp, #32 20946 ldrb r3, [r3, #-2546] @ zero_extendqisi2 20947 sub r3, r3, #2 20948 add r3, r2, r3, lsl #9 20949 mov r2, #64 20950 str r3, [sp, #16] 20951 bl ftl_memset 20952 mov r2, #64 20953 mov r1, #255 20954 add r0, sp, #96 20955 bl ftl_memset 20956 mov r2, #64 20957 mov r1, #255 20958 add r0, sp, #160 20959 bl ftl_memset 20960 ldrb r10, [r4, #5] @ zero_extendqisi2 20961 mov r3, #2 20962 ldrh r9, [r4, #2] 20963 str r3, [sp, #12] 20964 mov r3, #0 20965 str r3, [sp, #24] 20966.L3417: 20967 ldr r3, .L3532+32 20968 ldrh r3, [r3] 20969 cmp r3, r9 20970 bhi .L3434 20971.L3420: 20972 ldrh r3, [r4, #10] 20973 ldr r1, .L3532+36 20974 ldrh r2, [r4, #6] 20975 ldrb r0, [r4, #9] @ zero_extendqisi2 20976 strh r9, [r4, #2] @ movhi 20977 add r2, r2, r3 20978 ldrh r3, [r1, #-8] 20979 strb r10, [r4, #5] 20980 str r1, [sp, #16] 20981 mul r3, r3, r0 20982 cmp r2, r3 20983 beq .L3435 20984 movw r2, #1802 20985 ldr r1, .L3532+40 20986 ldr r0, .L3532+44 20987 bl printk 20988 bl dump_stack 20989.L3435: 20990 ldr r6, .L3532+28 20991 mov r7, #0 20992 ldrh r0, [r4, #10] 20993 mov r2, r7 20994 ldr r3, [r6, #-2556] 20995.L3436: 20996 cmp r2, r0 20997 bcc .L3438 20998 ldr r2, [sp, #16] 20999 ldrb r3, [r4, #9] @ zero_extendqisi2 21000 ldr r9, .L3532 21001 ldrh r2, [r2, #-8] 21002 ldr r10, .L3532+24 21003 smulbb r3, r3, r2 21004 sub r3, r3, r0 21005 add r7, r7, r3 21006 ldr r3, [r9] 21007 uxth r7, r7 21008 tst r3, #4096 21009 beq .L3439 21010 ldrh r1, [r4] 21011 ldr r2, [r10, #1092] 21012 ldr r0, .L3532+48 21013 lsl r3, r1, #1 21014 ldrh r3, [r2, r3] 21015 mov r2, r7 21016 bl printk 21017.L3439: 21018 ldrh r3, [r4] 21019 ldr r2, [r10, #1092] 21020 lsl r3, r3, #1 21021 strh r7, [r2, r3] @ movhi 21022 ldr r3, [r9] 21023 tst r3, #16384 21024 beq .L3440 21025 ldr r3, [sp, #44] 21026 add r1, sp, #32 21027 ldr r0, .L3532+52 21028 str r3, [sp] 21029 ldm r1, {r1, r2, r3} 21030 bl printk 21031.L3440: 21032 ldrb r2, [r6, #-2546] @ zero_extendqisi2 21033 mov r8, #0 21034 mov r1, #0 21035 ldr r0, [r5, #4] 21036 lsl r2, r2, #9 21037 bl ftl_memset 21038.L3441: 21039 ldrb r3, [r6, #-3127] @ zero_extendqisi2 21040 ldr r2, [sp, #12] 21041 mul r3, r2, r3 21042 cmp r8, r3 21043 bcc .L3453 21044 ldr fp, .L3532+56 21045 mov r7, #0 21046 add r8, sp, #32 21047.L3454: 21048 ldrb r3, [r6, #-3127] @ zero_extendqisi2 21049 ldr r2, [sp, #12] 21050 mul r3, r2, r3 21051 cmp r7, r3 21052 bcc .L3460 21053 mov r0, r5 21054 bl zbuf_free 21055 ldr r3, [sp, #16] 21056 ldrh r2, [r4, #12] 21057 ldrb r1, [r4, #9] @ zero_extendqisi2 21058 ldrh r3, [r3, #-8] 21059 mla r3, r1, r3, r2 21060 ldr r2, [r6, #-2556] 21061 sub r3, r3, #-1073741823 21062 ldr r3, [r2, r3, lsl #2] 21063 cmn r3, #1 21064 beq .L3461 21065 movw r2, #1917 21066 ldr r1, .L3532+40 21067 ldr r0, .L3532+44 21068 bl printk 21069 bl dump_stack 21070.L3461: 21071 ldrh r3, [r4, #6] 21072 cmp r3, #1 21073 bne .L3410 21074 mov r0, r4 21075 bl ftl_write_last_log_page 21076.L3410: 21077 add sp, sp, #228 21078 @ sp needed 21079 pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} 21080.L3434: 21081 ldrb r10, [r4, #5] @ zero_extendqisi2 21082 ldr r6, .L3532+28 21083.L3418: 21084 ldrb r3, [r4, #9] @ zero_extendqisi2 21085 cmp r3, r10 21086 movls r3, #0 21087 strbls r3, [r4, #5] 21088 addls r3, r9, #1 21089 uxthls r9, r3 21090 bls .L3417 21091.L3433: 21092 add r3, r4, r10, lsl #1 21093 ldrh r8, [r3, #16] 21094 movw r3, #65535 21095 cmp r8, r3 21096 beq .L3419 21097 ldr r3, .L3532+60 21098 ldr r2, [r5, #12] 21099 ldr r1, [r5, #4] 21100 ldrh r3, [r3, #-2] 21101 mla r3, r8, r3, r9 21102 str r3, [sp, #20] 21103 ldr r0, [sp, #20] 21104 ldrb r3, [r6, #-2546] @ zero_extendqisi2 21105 bl ftl_read_ppa_page 21106 cmp r0, #512 21107 mov r7, r0 21108 beq .L3420 21109 cmn r0, #1 21110 beq .L3421 21111 ldr r3, [r5, #12] 21112 ldr r2, [r3] 21113 cmn r2, #1 21114 bne .L3421 21115 ldr r3, [r3, #4] 21116 cmn r3, #1 21117 bne .L3421 21118 ldr r3, [r5, #4] 21119 ldr r3, [r3] 21120 cmn r3, #1 21121 beq .L3420 21122.L3421: 21123 mov r3, #1 21124 ldrh r2, [r4, #10] 21125 strb r3, [r6, #-47] 21126 ldrb r3, [r4, #9] @ zero_extendqisi2 21127 mla r3, r9, r3, r10 21128 cmp r2, r3 21129 beq .L3422 21130 movw r2, #1694 21131 ldr r1, .L3532+40 21132 ldr r0, .L3532+44 21133 bl printk 21134 bl dump_stack 21135.L3422: 21136 ldrh r3, [r4, #10] 21137 ldrh r2, [r4, #6] 21138 add r2, r2, r3 21139 ldr r3, .L3532+32 21140 ldrh r1, [r3] 21141 ldrb r3, [r4, #9] @ zero_extendqisi2 21142 mul r3, r3, r1 21143 cmp r2, r3 21144 beq .L3423 21145 movw r2, #1695 21146 ldr r1, .L3532+40 21147 ldr r0, .L3532+44 21148 bl printk 21149 bl dump_stack 21150.L3423: 21151 ldrb r3, [r6, #-2546] @ zero_extendqisi2 21152 cmp r3, #8 21153 bls .L3424 21154 ldr r3, [r5, #12] 21155 ldr r1, .L3532+64 21156 ldr r2, [r3] 21157 cmp r2, r1 21158 beq .L3424 21159 cmn r7, #1 21160 beq .L3426 21161 ldr r2, [r3, #4] 21162 cmn r2, #1 21163 bne .L3427 21164.L3430: 21165 ldr r3, [r5, #12] 21166 ldr r0, [r3, #4] 21167 cmn r0, #1 21168 bne .L3428 21169.L3426: 21170 ldrh r3, [r4, #6] 21171 sub r3, r3, #1 21172 strh r3, [r4, #6] @ movhi 21173 ldrh r3, [r4, #10] 21174 add r3, r3, #1 21175 strh r3, [r4, #10] @ movhi 21176 mov r3, #4 21177 str r3, [sp, #12] 21178 mov r3, #1 21179 str r3, [sp, #24] 21180.L3419: 21181 add r3, r10, #1 21182 uxth r10, r3 21183 b .L3418 21184.L3427: 21185 ldr r2, [r3, #16] 21186 ldr r1, .L3532+68 21187 cmp r2, r1 21188 bne .L3430 21189 ldr fp, [r3, #20] 21190 mov r1, #1024 21191 ldr r0, [sp, #16] 21192 bl js_hash 21193 cmp fp, r0 21194 beq .L3430 21195 mov r1, #1024 21196 ldr r0, [sp, #16] 21197 bl js_hash 21198 mov r2, r9 21199 mov r1, r8 21200 str r0, [sp, #4] 21201 str r7, [sp] 21202 ldr r3, [sp, #20] 21203 ldr r0, .L3532+72 21204 bl printk 21205 mov r3, #16 21206 mov r2, #4 21207 ldr r1, [sp, #16] 21208 ldr r0, .L3532+76 21209 bl rknand_print_hex 21210 ldrb r3, [r6, #-2546] @ zero_extendqisi2 21211 mov r2, #4 21212 ldr r1, [r5, #12] 21213 ldr r0, .L3532+80 21214 lsr r3, r3, #1 21215 bl rknand_print_hex 21216 b .L3426 21217.L3424: 21218 cmn r7, #1 21219 bne .L3430 21220 b .L3426 21221.L3428: 21222 ldr r3, [r3] 21223 ldr r2, .L3532+64 21224 cmp r3, r2 21225 beq .L3426 21226 bl lpa_hash_get_ppa 21227 ldr r3, [sp, #28] 21228 mov r8, r0 21229 cmp r3, #0 21230 beq .L3431 21231 ldr fp, [r5, #12] 21232 ldr r3, [fp, #8] 21233 cmp r3, r0 21234 cmnne r0, #1 21235 beq .L3431 21236 ldr r3, .L3532+84 21237 mov r7, #1 21238 ldrb r1, [r6, #-3136] @ zero_extendqisi2 21239 ldrh r0, [r3] 21240 ldr r3, .L3532+24 21241 ldrb r3, [r3, #1153] @ zero_extendqisi2 21242 rsb r3, r3, #24 21243 sub r3, r3, r0 21244 lsl r3, r7, r3 21245 sub r3, r3, #1 21246 and r0, r3, r8, lsr r0 21247 bl __aeabi_uidiv 21248 ldr r3, [sp, #28] 21249 uxth r0, r0 21250 ldrh r3, [r3] 21251 cmp r3, r0 21252 bne .L3431 21253 ldrb r3, [r6, #-2546] @ zero_extendqisi2 21254 mov r0, r8 21255 ldr r2, [r6, #-76] 21256 ldr r1, [r5, #4] 21257 ldr fp, [fp] 21258 bl ftl_read_ppa_page 21259 ldr r3, [r6, #-76] 21260 ldr r3, [r3] 21261 cmp fp, r3 21262 bhi .L3431 21263 ldr r3, [r5, #12] 21264 ldr r0, [r3, #8] 21265 cmn r0, #1 21266 beq .L3426 21267 ldr r3, .L3532+84 21268 ldrb r1, [r6, #-3136] @ zero_extendqisi2 21269 ldrh r2, [r3] 21270 ldr r3, .L3532+24 21271 ldrb r3, [r3, #1153] @ zero_extendqisi2 21272 rsb r3, r3, #24 21273 sub r3, r3, r2 21274 lsl r7, r7, r3 21275 sub r7, r7, #1 21276 and r0, r7, r0, lsr r2 21277 bl __aeabi_uidiv 21278 uxth r0, r0 21279 bl ftl_vpn_decrement 21280 b .L3426 21281.L3438: 21282 ldrh r1, [r4, #12] 21283 add r1, r1, r2 21284 add r2, r2, #1 21285 ldr r1, [r3, r1, lsl #2] 21286 cmn r1, #1 21287 addne r7, r7, #1 21288 uxthne r7, r7 21289 b .L3436 21290.L3453: 21291 add r3, sp, #32 21292 ldr r0, [r3, r8, lsl #2] 21293 cmn r0, #1 21294 bne .L3442 21295.L3446: 21296 ldr r2, [r10, #2800] 21297 mvn r7, #0 21298 ldr r3, [r5, #12] 21299 mov r0, #2 21300 ldr r2, [r2, #8] 21301 str r2, [r3] 21302 mov r2, #0 21303 ldr r3, [r5, #12] 21304 str r7, [r3, #4] 21305 ldr r3, [r5, #12] 21306 str r7, [r3, #8] 21307 ldr r3, [r5, #12] 21308 str r2, [r3, #12] 21309 ldr r3, [r5, #12] 21310 str r2, [r3, #16] 21311 ldr r3, [r5, #4] 21312 str r2, [r3] 21313 ldr r1, [r5, #12] 21314 add r1, r1, #16 21315 bl ftl_debug_info_fill 21316.L3443: 21317 ldr r3, [sp, #24] 21318 cmp r3, #1 21319 bne .L3448 21320 ldrh r3, [r4, #6] 21321 cmp r3, #1 21322 bls .L3448 21323.L3507: 21324 mov r0, r4 21325 bl ftl_get_new_free_page 21326 ldr r3, [r9] 21327 mov fp, r0 21328 tst r3, #16384 21329 beq .L3450 21330 ldrh r2, [r4, #12] 21331 mov r1, r0 21332 ldrh r3, [r4, #10] 21333 ldr r0, .L3532+88 21334 add r3, r3, r2 21335 ldr r2, [r5, #12] 21336 sub r3, r3, #1 21337 ldr r2, [r2, #4] 21338 bl printk 21339.L3450: 21340 ldrb r3, [r6, #-3127] @ zero_extendqisi2 21341 ldr r1, [sp, #12] 21342 ldrh r2, [r4, #6] 21343 mul r3, r1, r3 21344 add r3, r3, #1 21345 sub r3, r3, r8 21346 cmp r2, r3 21347 bls .L3448 21348 ldrb r3, [r6, #-2546] @ zero_extendqisi2 21349 mov r0, fp 21350 ldr r2, [r5, #12] 21351 ldr r1, [r5, #4] 21352 bl ftl_prog_ppa_page 21353 str r0, [sp, #20] 21354 ldrh r0, [r4] 21355 bl ftl_vpn_decrement 21356 ldr r2, [sp, #20] 21357 adds r3, r7, #1 21358 movne r3, #1 21359 cmn r2, #1 21360 cmnne r7, #1 21361 beq .L3451 21362 add r3, sp, #96 21363 ldrh r2, [r4, #12] 21364 str fp, [r3, r8, lsl #2] 21365 ldrh r3, [r4, #10] 21366 add r3, r3, r2 21367 add r2, sp, #160 21368 sub r3, r3, #1 21369 str r3, [r2, r8, lsl #2] 21370.L3448: 21371 add r8, r8, #1 21372 b .L3441 21373.L3442: 21374 ldrb r3, [r6, #-2546] @ zero_extendqisi2 21375 ldr r2, [r5, #12] 21376 ldr r1, [r5, #4] 21377 bl ftl_read_ppa_page 21378 ldr r3, [r5, #12] 21379 mov r7, r0 21380 ldr r0, [r3, #4] 21381 bl lpa_hash_get_ppa 21382 ldr r3, [r9] 21383 mov fp, r0 21384 tst r3, #16384 21385 beq .L3444 21386 ldr r3, [r5, #12] 21387 add r2, sp, #32 21388 mov r1, r0 21389 ldr r2, [r2, r8, lsl #2] 21390 ldr r0, .L3532+92 21391 ldr r3, [r3, #4] 21392 bl printk 21393.L3444: 21394 add r3, sp, #32 21395 mov r2, #1 21396 ldr r3, [r3, r8, lsl #2] 21397 mov r0, #2 21398 cmp fp, r3 21399 ldr r3, [r5, #12] 21400 mvnne r7, #0 21401 str fp, [r3, #8] 21402 ldr r3, [r5, #12] 21403 str r2, [r3, #12] 21404 mov r2, #0 21405 ldr r3, [r5, #12] 21406 str r2, [r3, #16] 21407 ldr r1, [r5, #12] 21408 add r1, r1, #16 21409 bl ftl_debug_info_fill 21410 cmn r7, #1 21411 bne .L3443 21412 b .L3446 21413.L3451: 21414 ldrh r2, [r4, #6] 21415 cmp r2, #1 21416 movls r3, #0 21417 andhi r3, r3, #1 21418 cmp r3, #0 21419 bne .L3507 21420 b .L3448 21421.L3460: 21422 add r10, sp, #96 21423 ldr r3, [r10, r7, lsl #2] 21424 cmn r3, #1 21425 beq .L3456 21426 ldrb r3, [r6, #-2546] @ zero_extendqisi2 21427 ldr r2, [r5, #12] 21428 ldr r1, [r5, #4] 21429 ldr r0, [r8, r7, lsl #2] 21430 bl ftl_read_ppa_page 21431 cmn r0, #1 21432 cmpne r0, #256 21433 bne .L3456 21434 ldrb r3, [r6, #-2546] @ zero_extendqisi2 21435 ldr r0, [r10, r7, lsl #2] 21436 ldr r2, [r5, #12] 21437 ldr r1, [r5, #4] 21438 bl ftl_read_ppa_page 21439 ldr r3, [r9] 21440 mov r10, r0 21441 tst r3, #16384 21442 beq .L3458 21443 ldr r2, [r5, #12] 21444 mov r1, r0 21445 ldr r3, [r8, r7, lsl #2] 21446 ldr r0, .L3532+88 21447 ldr r2, [r2, #8] 21448 bl printk 21449.L3458: 21450 cmn r10, #1 21451 beq .L3456 21452 ldr r1, [r5, #12] 21453 ldr r2, [r8, r7, lsl #2] 21454 ldr r3, [r1, #8] 21455 cmp r2, r3 21456 bne .L3456 21457 ldr r3, [r9] 21458 add r10, sp, #160 21459 tst r3, #16384 21460 beq .L3459 21461 ldr r3, [r10, r7, lsl #2] 21462 mov r0, fp 21463 ldr r1, [r1, #4] 21464 bl printk 21465.L3459: 21466 ldr r2, [r10, r7, lsl #2] 21467 ldr r3, [r5, #12] 21468 uxth r2, r2 21469 ldmib r3, {r0, r1} 21470 bl lpa_hash_update_ppa 21471.L3456: 21472 add r7, r7, #1 21473 b .L3454 21474.L3431: 21475 ldr r1, [r5, #12] 21476 ldr r2, .L3532+24 21477 ldr r0, [r1, #4] 21478 ldr r3, [r2, #2780] 21479 cmp r0, r3 21480 bcs .L3426 21481 ldr r3, .L3532+32 21482 ldrb ip, [r4, #9] @ zero_extendqisi2 21483 ldrh r0, [r4, #10] 21484 ldrh r3, [r3] 21485 mul r3, r3, ip 21486 sub r3, r3, #1 21487 cmp r0, r3 21488 bge .L3426 21489 ldr r3, [r2, #2800] 21490 ldr r1, [r1] 21491 ldr r2, [r3, #8] 21492 cmp r1, r2 21493 strhi r1, [r3, #8] 21494 ldrh r1, [r4, #12] 21495 ldrh r2, [r4, #10] 21496 ldr r3, [r5, #12] 21497 add r2, r2, r1 21498 uxth r2, r2 21499 ldmib r3, {r0, r1} 21500 bl lpa_hash_update_ppa 21501 ldr r3, [sp, #36] 21502 str r3, [sp, #32] 21503 ldr r3, [sp, #40] 21504 str r3, [sp, #36] 21505 ldr r3, [sp, #44] 21506 str r3, [sp, #40] 21507 ldr r3, [sp, #20] 21508 str r3, [sp, #44] 21509 b .L3426 21510.L3533: 21511 .align 2 21512.L3532: 21513 .word .LANCHOR2 21514 .word .LC212 21515 .word .LC213 21516 .word .LC214 21517 .word .LC215 21518 .word .LC216 21519 .word .LANCHOR0 21520 .word .LANCHOR3 21521 .word .LANCHOR3-3096 21522 .word .LANCHOR3-3088 21523 .word .LANCHOR1+2316 21524 .word .LC0 21525 .word .LC219 21526 .word .LC220 21527 .word .LC223 21528 .word .LANCHOR3-3072 21529 .word -178307901 21530 .word 1212240712 21531 .word .LC217 21532 .word .LC218 21533 .word .LC183 21534 .word .LANCHOR3-3138 21535 .word .LC222 21536 .word .LC221 21537 .fnend 21538 .size ftl_open_sblk_recovery, .-ftl_open_sblk_recovery 21539 .align 2 21540 .global dump_ftl_info 21541 .syntax unified 21542 .arm 21543 .fpu softvfp 21544 .type dump_ftl_info, %function 21545dump_ftl_info: 21546 .fnstart 21547 @ args = 0, pretend = 0, frame = 0 21548 @ frame_needed = 0, uses_anonymous_args = 0 21549 push {r0, r1, r2, r4, r5, r6, r7, lr} 21550 .save {r4, r5, r6, r7, lr} 21551 .pad #12 21552 movw r7, #1080 21553 ldr r4, .L3536 21554 ldr r5, .L3536+4 21555 ldrb r1, [r4, #2769] @ zero_extendqisi2 21556 ldr r0, .L3536+8 21557 bl printk 21558 ldrh r3, [r5, #-54] 21559 sub r6, r5, #3088 21560 ldrb r2, [r5, #-55] @ zero_extendqisi2 21561 ldrb r1, [r5, #-56] @ zero_extendqisi2 21562 ldr r0, .L3536+12 21563 bl printk 21564 ldr r3, [r4, #2800] 21565 ldr r0, .L3536+16 21566 ldrh r2, [r3, #140] 21567 ldrh r1, [r3, #130] 21568 bl printk 21569 ldr r0, [r4, #1096] 21570 ldrh ip, [r0, #26] 21571 ldrb r3, [r0, #21] @ zero_extendqisi2 21572 ldrh r2, [r0, #18] 21573 ldrh r1, [r0, #16] 21574 str ip, [sp, #4] 21575 ldrh r0, [r0, #22] 21576 str r0, [sp] 21577 ldr r0, .L3536+20 21578 bl printk 21579 ldr r0, [r4, #1096] 21580 ldrh ip, [r0, #58] 21581 ldrb r3, [r0, #53] @ zero_extendqisi2 21582 ldrh r2, [r0, #50] 21583 ldrh r1, [r0, #48] 21584 str ip, [sp, #4] 21585 ldrh r0, [r0, #54] 21586 str r0, [sp] 21587 ldr r0, .L3536+24 21588 bl printk 21589 ldr r0, [r4, #1096] 21590 ldrh ip, [r0, #90] 21591 ldrb r3, [r0, #85] @ zero_extendqisi2 21592 ldrh r2, [r0, #82] 21593 ldrh r1, [r0, #80] 21594 str ip, [sp, #4] 21595 ldrh r0, [r0, #86] 21596 str r0, [sp] 21597 ldr r0, .L3536+28 21598 bl printk 21599 ldrh r2, [r6, #-8] 21600 ldrb r3, [r5, #-3127] @ zero_extendqisi2 21601 ldr r1, [r5, #-2556] 21602 ldr r0, .L3536+32 21603 mul r3, r3, r2 21604 mov r2, #4 21605 lsl r3, r3, #1 21606 bl rknand_print_hex 21607 ldrh r3, [r4, r7] 21608 mov r2, #2 21609 ldr r1, [r4, #1092] 21610 ldr r0, .L3536+36 21611 bl rknand_print_hex 21612 ldr r1, [r4, #2800] 21613 movw r3, #698 21614 mov r2, #4 21615 ldr r0, .L3536+40 21616 ldrh r3, [r1, r3] 21617 add r1, r1, #704 21618 bl rknand_print_hex 21619 ldrh r3, [r4, r7] 21620 mov r2, #4 21621 ldr r1, [r4, #1084] 21622 ldr r0, .L3536+44 21623 bl rknand_print_hex 21624 sub r1, r5, #3056 21625 mov r3, #256 21626 mov r2, #2 21627 sub r1, r1, #14 21628 ldr r0, .L3536+48 21629 bl rknand_print_hex 21630 ldrh r2, [r6, #-8] 21631 ldrb r3, [r5, #-3127] @ zero_extendqisi2 21632 ldr r1, [r5, #-2552] 21633 ldr r0, .L3536+52 21634 mul r3, r3, r2 21635 mov r2, #2 21636 lsl r3, r3, #1 21637 add sp, sp, #12 21638 @ sp needed 21639 pop {r4, r5, r6, r7, lr} 21640 b rknand_print_hex 21641.L3537: 21642 .align 2 21643.L3536: 21644 .word .LANCHOR0 21645 .word .LANCHOR3 21646 .word .LC224 21647 .word .LC225 21648 .word .LC226 21649 .word .LC227 21650 .word .LC228 21651 .word .LC229 21652 .word .LC230 21653 .word .LC231 21654 .word .LC211 21655 .word .LC232 21656 .word .LC233 21657 .word .LC234 21658 .fnend 21659 .size dump_ftl_info, .-dump_ftl_info 21660 .align 2 21661 .global pm_ppa_update_check 21662 .syntax unified 21663 .arm 21664 .fpu softvfp 21665 .type pm_ppa_update_check, %function 21666pm_ppa_update_check: 21667 .fnstart 21668 @ args = 0, pretend = 0, frame = 0 21669 @ frame_needed = 0, uses_anonymous_args = 0 21670 ldr r3, .L3542 21671 push {r4, r5, r6, r7, r8, lr} 21672 .save {r4, r5, r6, r7, r8, lr} 21673 mov r6, r2 21674 ldr r7, .L3542+4 21675 mov r4, r0 21676 sub r2, r3, #3136 21677 mov r5, r1 21678 ldrh r0, [r2, #-2] 21679 ldrb ip, [r7, #1153] @ zero_extendqisi2 21680 ldrb r1, [r3, #-3136] @ zero_extendqisi2 21681 mvn r3, #0 21682 rsb ip, ip, #24 21683 sub ip, ip, r0 21684 lsr r0, r6, r0 21685 bic r0, r0, r3, lsl ip 21686 bl __aeabi_uidiv 21687 ldr r3, [r7, #1084] 21688 uxth r0, r0 21689 add r0, r3, r0, lsl #2 21690 ldrb r0, [r0, #2] @ zero_extendqisi2 21691 lsr r0, r0, #5 21692 cmp r0, #7 21693 cmpne r0, #1 21694 moveq r0, #1 21695 movne r0, #0 21696 popne {r4, r5, r6, r7, r8, pc} 21697 mov r3, r6 21698 mov r2, r5 21699 mov r1, r4 21700 ldr r0, .L3542+8 21701 bl printk 21702 bl dump_ftl_info 21703 mvn r0, #0 21704 pop {r4, r5, r6, r7, r8, pc} 21705.L3543: 21706 .align 2 21707.L3542: 21708 .word .LANCHOR3 21709 .word .LANCHOR0 21710 .word .LC235 21711 .fnend 21712 .size pm_ppa_update_check, .-pm_ppa_update_check 21713 .align 2 21714 .syntax unified 21715 .arm 21716 .fpu softvfp 21717 .type load_l2p_region, %function 21718load_l2p_region: 21719 .fnstart 21720 @ args = 0, pretend = 0, frame = 0 21721 @ frame_needed = 0, uses_anonymous_args = 0 21722 cmp r1, #31 21723 push {r0, r1, r4, r5, r6, r7, r8, r9, r10, lr} 21724 .save {r4, r5, r6, r7, r8, r9, r10, lr} 21725 .pad #8 21726 mov r7, r0 21727 mov r6, r1 21728 bls .L3545 21729 mov r2, #32 21730 ldr r1, .L3559 21731 ldr r0, .L3559+4 21732 bl printk 21733 bl dump_stack 21734.L3545: 21735 ldr r8, .L3559+8 21736 movw r10, #698 21737 ldr r5, .L3559+12 21738 ldr r3, [r8, #2800] 21739 mov r9, r8 21740 ldrh r2, [r3, r10] 21741 cmp r2, r7 21742 bcs .L3546 21743 mov r1, r7 21744 ldr r0, .L3559+16 21745 mov r4, #0 21746 bl printk 21747 ldrh r2, [r5, #-14] 21748 mov r1, #255 21749 ldr r0, [r4, #4] 21750 bl ftl_memset 21751 ldr r3, [r8, #2800] 21752 ldrh r3, [r3, r10] 21753 cmp r3, r7 21754 bcc .L3547 21755.L3557: 21756 mov r0, #0 21757.L3544: 21758 add sp, sp, #8 21759 @ sp needed 21760 pop {r4, r5, r6, r7, r8, r9, r10, pc} 21761.L3547: 21762 mov r2, #37 21763.L3558: 21764 ldr r1, .L3559 21765 ldr r0, .L3559+4 21766 bl printk 21767 bl dump_stack 21768 b .L3557 21769.L3546: 21770 add r2, r7, #176 21771 lsl r6, r6, #3 21772 ldr r4, [r3, r2, lsl #2] 21773 ldr r3, .L3559+20 21774 add r8, r5, r6 21775 add r2, r3, r6 21776 strh r7, [r3, r6] @ movhi 21777 mov r3, #0 21778 cmp r4, r3 21779 strh r3, [r2, #2] @ movhi 21780 bne .L3549 21781 mov r2, r4 21782 mov r1, r7 21783 ldr r0, .L3559+24 21784 bl printk 21785 ldrh r2, [r5, #-14] 21786 mov r1, #255 21787 ldr r0, [r8, #-2528] 21788 bl ftl_memset 21789 b .L3557 21790.L3549: 21791 ldrb r3, [r5, #-2546] @ zero_extendqisi2 21792 mov r0, r4 21793 ldr r2, [r5, #-32] 21794 ldr r1, [r8, #-2528] 21795 bl ftl_read_ppa_page 21796 ldr r2, [r5, #-32] 21797 mov r3, r0 21798 ldr r2, [r2] 21799 cmp r2, r7 21800 bne .L3550 21801 cmn r0, #1 21802 cmpne r0, #512 21803 beq .L3550 21804.L3554: 21805 ldr r3, [r5, #-32] 21806 ldr r3, [r3] 21807 cmp r7, r3 21808 beq .L3557 21809 mov r2, #73 21810 b .L3558 21811.L3550: 21812 mov r1, r7 21813 str r4, [sp] 21814 ldr r0, .L3559+28 21815 add r6, r5, r6 21816 bl printk 21817 ldr r1, [r9, #2800] 21818 movw r3, #698 21819 mov r2, #4 21820 ldr r0, .L3559+32 21821 ldrh r3, [r1, r3] 21822 add r1, r1, #704 21823 bl rknand_print_hex 21824 ldrb r3, [r5, #-2546] @ zero_extendqisi2 21825 mov r2, #4 21826 ldr r1, [r6, #-2528] 21827 ldr r0, .L3559+36 21828 lsl r3, r3, #7 21829 bl rknand_print_hex 21830 mov r3, #16 21831 mov r2, #4 21832 ldr r1, [r5, #-32] 21833 ldr r0, .L3559+40 21834 bl rknand_print_hex 21835 ldrb r3, [r5, #-2546] @ zero_extendqisi2 21836 mov r0, r4 21837 ldr r2, [r5, #-32] 21838 ldr r1, [r6, #-2528] 21839 bl ftl_read_ppa_page 21840 cmn r0, #1 21841 cmpne r0, #512 21842 bne .L3553 21843 ldrh r2, [r5, #-14] 21844 mov r1, #255 21845 ldr r0, [r6, #-2528] 21846 bl ftl_memset 21847.L3555: 21848 mvn r0, #0 21849 b .L3544 21850.L3553: 21851 ldr r3, [r5, #-32] 21852 ldr r3, [r3] 21853 cmp r7, r3 21854 beq .L3554 21855 b .L3555 21856.L3560: 21857 .align 2 21858.L3559: 21859 .word .LANCHOR1+2339 21860 .word .LC0 21861 .word .LANCHOR0 21862 .word .LANCHOR3 21863 .word .LC236 21864 .word .LANCHOR3-2532 21865 .word .LC237 21866 .word .LC238 21867 .word .LC239 21868 .word .LC218 21869 .word .LC240 21870 .fnend 21871 .size load_l2p_region, .-load_l2p_region 21872 .align 2 21873 .global pm_gc 21874 .syntax unified 21875 .arm 21876 .fpu softvfp 21877 .type pm_gc, %function 21878pm_gc: 21879 .fnstart 21880 @ args = 0, pretend = 0, frame = 8 21881 @ frame_needed = 0, uses_anonymous_args = 0 21882 push {r0, r1, r2, r4, r5, r6, r7, r8, r9, r10, fp, lr} 21883 .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} 21884 .pad #12 21885 ldr r6, .L3579 21886 ldr r4, .L3579+4 21887 ldr r3, [r6, #2800] 21888 add r3, r3, #688 21889 ldrh r2, [r3] 21890 ldrh r3, [r4, #-176] 21891 sub r3, r3, #1 21892 cmp r2, r3 21893 bge .L3562 21894 ldr r3, [r4, #-184] 21895 cmp r3, #0 21896 beq .L3563 21897.L3562: 21898 bl pm_free_sblk 21899 ldr r2, [r6, #2800] 21900 add r3, r2, #688 21901 ldrh r1, [r3] 21902 ldrh r3, [r4, #-176] 21903 sub r3, r3, #1 21904 cmp r1, r3 21905 bge .L3564 21906 ldr r3, [r4, #-184] 21907 cmp r3, #0 21908 beq .L3563 21909.L3564: 21910 uxth r0, r0 21911 movw r5, #65535 21912 mov r3, #0 21913 add r0, r0, #208 21914 str r3, [r4, #-184] 21915 lsl r0, r0, #1 21916 ldrh r9, [r2, r0] 21917 cmp r9, r5 21918 bne .L3566 21919 mov r2, #182 21920 ldr r1, .L3579+8 21921 ldr r0, .L3579+12 21922 bl printk 21923 bl dump_stack 21924 bl pm_free_sblk 21925 uxth r0, r0 21926 ldr r3, [r6, #2800] 21927 add r0, r0, #208 21928 lsl r0, r0, #1 21929 ldrh r9, [r3, r0] 21930 cmp r9, r5 21931 beq .L3563 21932.L3566: 21933 ldr r5, .L3579+16 21934 bl pm_select_ram_region 21935 lsl r7, r0, #3 21936 mov r10, r0 21937 movw r3, #65535 21938 ldrh r0, [r5, r7] 21939 add r8, r5, r7 21940 add r5, r5, #4 21941 cmp r0, r3 21942 beq .L3567 21943 add r3, r4, r7 21944 ldr r1, [r3, #-2528] 21945 cmp r1, #0 21946 beq .L3567 21947 ldrsh r3, [r8, #2] 21948 cmp r3, #0 21949 bge .L3567 21950 bl pm_write_page 21951 ldrh r3, [r8, #2] 21952 ubfx r3, r3, #0, #15 21953 strh r3, [r8, #2] @ movhi 21954.L3567: 21955 sub r5, r5, #4 21956 mov r8, #0 21957 add r5, r5, r7 21958.L3568: 21959 ldr r3, [r6, #2800] 21960 movw r1, #698 21961 uxth r2, r8 21962 ldrh r1, [r3, r1] 21963 cmp r1, r2 21964 bhi .L3571 21965 bl pm_free_sblk 21966.L3563: 21967 mov r0, #0 21968 add sp, sp, #12 21969 @ sp needed 21970 pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} 21971.L3571: 21972 ldr r1, .L3579+20 21973 uxth fp, r8 21974 ldrb r0, [r6, #1153] @ zero_extendqisi2 21975 add ip, fp, #176 21976 str r2, [sp, #4] 21977 ldrh r1, [r1] 21978 ldr r3, [r3, ip, lsl #2] 21979 rsb r0, r0, #24 21980 mvn ip, #0 21981 sub r0, r0, r1 21982 lsr r3, r3, r1 21983 ldrb r1, [r4, #-3136] @ zero_extendqisi2 21984 bic r0, r3, ip, lsl r0 21985 bl __aeabi_uidiv 21986 uxth r0, r0 21987 ldr r2, [sp, #4] 21988 cmp r9, r0 21989 bne .L3569 21990 mov r1, r10 21991 mov r0, r2 21992 bl load_l2p_region 21993 cmp r0, #0 21994 bne .L3570 21995 add r3, r4, r7 21996 mov r0, fp 21997 ldr r1, [r3, #-2528] 21998 bl pm_write_page 21999.L3570: 22000 mvn r3, #0 22001 strh r3, [r5] @ movhi 22002.L3569: 22003 add r8, r8, #1 22004 b .L3568 22005.L3580: 22006 .align 2 22007.L3579: 22008 .word .LANCHOR0 22009 .word .LANCHOR3 22010 .word .LANCHOR1+2355 22011 .word .LC0 22012 .word .LANCHOR3-2532 22013 .word .LANCHOR3-3138 22014 .fnend 22015 .size pm_gc, .-pm_gc 22016 .align 2 22017 .global pm_flush_id 22018 .syntax unified 22019 .arm 22020 .fpu softvfp 22021 .type pm_flush_id, %function 22022pm_flush_id: 22023 .fnstart 22024 @ args = 0, pretend = 0, frame = 0 22025 @ frame_needed = 0, uses_anonymous_args = 0 22026 push {r4, r5, r6, lr} 22027 .save {r4, r5, r6, lr} 22028 lsl r0, r0, #3 22029 ldr r4, .L3587 22030 sub r3, r4, #2528 22031 add r2, r4, r0 22032 sub r3, r3, #4 22033 ldr r1, [r2, #-2528] 22034 add r5, r3, r0 22035 ldrh r0, [r3, r0] 22036 bl pm_write_page 22037 ldrh r3, [r5, #2] 22038 ubfx r3, r3, #0, #15 22039 strh r3, [r5, #2] @ movhi 22040 ldr r3, [r4, #-36] 22041 cmp r3, #0 22042 beq .L3582 22043 bl pm_gc 22044 mov r3, #0 22045 str r3, [r4, #-36] 22046.L3582: 22047 mov r0, #0 22048 pop {r4, r5, r6, pc} 22049.L3588: 22050 .align 2 22051.L3587: 22052 .word .LANCHOR3 22053 .fnend 22054 .size pm_flush_id, .-pm_flush_id 22055 .align 2 22056 .global pm_flush 22057 .syntax unified 22058 .arm 22059 .fpu softvfp 22060 .type pm_flush, %function 22061pm_flush: 22062 .fnstart 22063 @ args = 0, pretend = 0, frame = 0 22064 @ frame_needed = 0, uses_anonymous_args = 0 22065 push {r4, r5, r6, lr} 22066 .save {r4, r5, r6, lr} 22067 mov r4, #0 22068 ldr r5, .L3594 22069.L3591: 22070 add r3, r5, r4, lsl #3 22071 uxth r0, r4 22072 ldrsh r3, [r3, #2] 22073 cmp r3, #0 22074 bge .L3590 22075 bl pm_flush_id 22076.L3590: 22077 add r4, r4, #1 22078 cmp r4, #32 22079 bne .L3591 22080 mov r0, #0 22081 pop {r4, r5, r6, pc} 22082.L3595: 22083 .align 2 22084.L3594: 22085 .word .LANCHOR3-2532 22086 .fnend 22087 .size pm_flush, .-pm_flush 22088 .align 2 22089 .global flt_sys_flush 22090 .syntax unified 22091 .arm 22092 .fpu softvfp 22093 .type flt_sys_flush, %function 22094flt_sys_flush: 22095 .fnstart 22096 @ args = 0, pretend = 0, frame = 0 22097 @ frame_needed = 0, uses_anonymous_args = 0 22098 push {r4, lr} 22099 .save {r4, lr} 22100 bl ftl_flush 22101 bl pm_flush 22102 bl ftl_ext_info_flush 22103 mov r0, #0 22104 pop {r4, lr} 22105 b ftl_info_flush 22106 .fnend 22107 .size flt_sys_flush, .-flt_sys_flush 22108 .align 2 22109 .global zftl_deinit 22110 .syntax unified 22111 .arm 22112 .fpu softvfp 22113 .type zftl_deinit, %function 22114zftl_deinit: 22115 .fnstart 22116 @ args = 0, pretend = 0, frame = 0 22117 @ frame_needed = 0, uses_anonymous_args = 0 22118 push {r4, lr} 22119 .save {r4, lr} 22120 bl zftl_flash_de_init 22121 bl flt_sys_flush 22122 pop {r4, lr} 22123 b zftl_flash_de_init 22124 .fnend 22125 .size zftl_deinit, .-zftl_deinit 22126 .align 2 22127 .global pm_init 22128 .syntax unified 22129 .arm 22130 .fpu softvfp 22131 .type pm_init, %function 22132pm_init: 22133 .fnstart 22134 @ args = 0, pretend = 0, frame = 8 22135 @ frame_needed = 0, uses_anonymous_args = 0 22136 push {r4, r5, r6, r7, r8, r9, r10, fp, lr} 22137 .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} 22138 mov r5, #0 22139 ldr r8, .L3623 22140 mvn r9, #0 22141 mov r10, r5 22142 mov r3, #1 22143 ldr r4, .L3623+4 22144 .pad #20 22145 sub sp, sp, #20 22146 mov r7, r0 22147 mov r0, #64 22148 str r5, [r4, #-184] 22149 str r5, [r4, #-36] 22150 strb r3, [r4, #-28] 22151 bl ftl_dma32_malloc 22152 str r0, [r4, #-32] 22153.L3602: 22154 cmp r7, #0 22155 mov r6, r8 22156 strh r9, [r6, r5]! @ movhi 22157 strh r10, [r6, #2] @ movhi 22158 beq .L3601 22159 ldrb r0, [r4, #-2546] @ zero_extendqisi2 22160 lsl r0, r0, #9 22161 bl ftl_dma32_malloc 22162 str r0, [r6, #4] 22163.L3601: 22164 add r5, r5, #8 22165 cmp r5, #256 22166 bne .L3602 22167 ldr r5, .L3623+8 22168 ldr r9, [r4, #-2528] 22169 ldr r6, [r4, #-32] 22170 ldr r3, [r5, #2800] 22171 add r2, r3, #692 22172 ldrb r0, [r3, #694] @ zero_extendqisi2 22173 mov r3, #4 22174 ldrh r1, [r2] 22175 str r3, [sp] 22176 mov r2, r9 22177 mov r3, r6 22178 bl flash_get_last_written_page 22179 ldr r3, [r5, #2800] 22180 mov r8, r0 22181 add r2, r3, #696 22182 ldrh r2, [r2] 22183 cmp r2, r0 22184 bgt .L3603 22185 add r1, r3, #692 22186 mov r3, r0 22187 ldrh r1, [r1] 22188 ldr r0, .L3623+12 22189 bl printk 22190 ldr r3, [r5, #2800] 22191 add r3, r3, #696 22192 ldrsh r7, [r3] 22193 add r3, r8, #1 22194 str r3, [sp, #12] 22195.L3604: 22196 ldr r3, [sp, #12] 22197 cmp r7, r3 22198 blt .L3607 22199 mov r3, #1 22200 ldrh r2, [sp, #12] 22201 strb r3, [r4, #-47] 22202 ldr r3, [r5, #2800] 22203 add r3, r3, #696 22204 strh r2, [r3] @ movhi 22205 bl pm_free_sblk 22206.L3603: 22207 ldrh r2, [r4, #-14] 22208 mov r1, #255 22209 ldr r0, [r4, #-2528] 22210 bl ftl_memset 22211 ldr r1, [r4, #-2528] 22212 mvn r0, #0 22213 bl pm_write_page 22214 ldrb r3, [r4, #-47] @ zero_extendqisi2 22215 cmp r3, #0 22216 beq .L3608 22217 ldr r1, [r4, #-2528] 22218 mvn r0, #0 22219 bl pm_write_page 22220 ldr r1, [r4, #-2528] 22221 mvn r0, #0 22222 bl pm_write_page 22223 ldr r1, [r4, #-2528] 22224 mvn r0, #0 22225 bl pm_write_page 22226.L3608: 22227 bl pm_free_sblk 22228 bl pm_gc 22229 mov r0, #0 22230 add sp, sp, #20 22231 @ sp needed 22232 pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} 22233.L3607: 22234 ldr r3, [r5, #2800] 22235 movw fp, #694 22236 add r2, r3, #692 22237 ldrb r0, [r3, fp] @ zero_extendqisi2 22238 ldrh r8, [r2] 22239 ldr r2, .L3623+16 22240 ldrb r3, [r4, #-2546] @ zero_extendqisi2 22241 ldrh r2, [r2] 22242 str r3, [sp] 22243 mov r3, r6 22244 mla r8, r2, r8, r7 22245 mov r2, r9 22246 mov r1, r8 22247 bl flash_read_page_en 22248 ldr r3, [r5, #2800] 22249 mov r10, r0 22250 ldr r0, .L3623+20 22251 ldr r2, [r3, #48] 22252 add r2, r2, #1 22253 str r2, [r3, #48] 22254 mov r2, r8 22255 ldrh r3, [r3, fp] 22256 ldr r1, [r6] 22257 bl printk 22258 cmp r10, #512 22259 cmnne r10, #1 22260 beq .L3605 22261 ldr r2, [r5, #2800] 22262 movw r3, #698 22263 ldrh r3, [r2, r3] 22264 ldr r2, [r6] 22265 cmp r2, r3 22266 bcs .L3605 22267 ldr r10, [r6, #8] 22268 cmp r10, #0 22269 beq .L3606 22270 ldrb r1, [r4, #-2546] @ zero_extendqisi2 22271 mov r0, r9 22272 lsl r1, r1, #9 22273 bl js_hash 22274 cmp r10, r0 22275 beq .L3606 22276 ldr r1, [r6, #8] 22277 ldr r0, .L3623+24 22278 bl printk 22279.L3605: 22280 add r7, r7, #1 22281 sxth r7, r7 22282 b .L3604 22283.L3606: 22284 ldr r3, [r6] 22285 ldr r2, [r5, #2800] 22286 add r3, r3, #176 22287 str r8, [r2, r3, lsl #2] 22288 b .L3605 22289.L3624: 22290 .align 2 22291.L3623: 22292 .word .LANCHOR3-2532 22293 .word .LANCHOR3 22294 .word .LANCHOR0 22295 .word .LC241 22296 .word .LANCHOR3-3074 22297 .word .LC242 22298 .word .LC243 22299 .fnend 22300 .size pm_init, .-pm_init 22301 .align 2 22302 .global pm_log2phys 22303 .syntax unified 22304 .arm 22305 .fpu softvfp 22306 .type pm_log2phys, %function 22307pm_log2phys: 22308 .fnstart 22309 @ args = 0, pretend = 0, frame = 8 22310 @ frame_needed = 0, uses_anonymous_args = 0 22311 push {r0, r1, r2, r4, r5, r6, r7, r8, r9, r10, fp, lr} 22312 .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} 22313 .pad #12 22314 mov r7, r1 22315 ldr r8, .L3641 22316 mov r6, r0 22317 mov r9, r2 22318 ldr r10, .L3641+4 22319 ldrb r4, [r8, #-2546] @ zero_extendqisi2 22320 lsl r1, r4, #7 22321 lsl r4, r4, #7 22322 bl __aeabi_uidiv 22323 str r0, [sp, #4] 22324 ldrh fp, [sp, #4] 22325 ldr r2, [r10, #2780] 22326 smulbb r4, r4, fp 22327 cmp r6, r2 22328 sub r4, r6, r4 22329 bcc .L3626 22330 mov r1, r6 22331 ldr r0, .L3641+8 22332 bl printk 22333 cmp r9, #0 22334 mvn r0, #0 22335 streq r0, [r7] 22336.L3625: 22337 add sp, sp, #12 22338 @ sp needed 22339 pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} 22340.L3626: 22341 ldr r1, .L3641+12 22342 uxth r4, r4 22343 mov r2, #0 22344 sub r6, r8, #2528 22345.L3632: 22346 lsl r0, r2, #3 22347 uxth r5, r2 22348 add ip, r1, r0 22349 ldr ip, [ip, #4] 22350 cmp ip, #0 22351 beq .L3628 22352 ldrh r0, [r0, r1] 22353 cmp r0, fp 22354 bne .L3628 22355.L3629: 22356 cmp r9, #0 22357 lsl r5, r5, #3 22358 bne .L3630 22359 add r2, r8, r5 22360 ldr r2, [r2, #-2528] 22361 ldr r1, [r2, r4, lsl #2] 22362 mvn r2, #0 22363 str r1, [r7] 22364 ldrb r0, [r10, #1153] @ zero_extendqisi2 22365 ldrb r3, [r8, #-3072] @ zero_extendqisi2 22366 rsb ip, r0, #24 22367 mvn r2, r2, lsl r0 22368 and r2, r2, r1, lsr ip 22369 cmp r2, r3 22370 mvncs r3, #0 22371 strcs r3, [r7] 22372.L3631: 22373 sub r6, r6, #4 22374 movw r2, #32767 22375 add r6, r6, r5 22376 mov r0, #0 22377 ldrh r3, [r6, #2] 22378 ubfx r1, r3, #0, #15 22379 cmp r1, r2 22380 addne r3, r3, #1 22381 strhne r3, [r6, #2] @ movhi 22382 b .L3625 22383.L3630: 22384 add r2, r8, r5 22385 ldr r1, [r7] 22386 ldr r2, [r2, #-2528] 22387 ldrb r3, [sp, #4] @ zero_extendqisi2 22388 str r1, [r2, r4, lsl #2] 22389 sub r1, r6, #4 22390 add r1, r1, r5 22391 strb r3, [r8, #-2276] 22392 ldrh r2, [r1, #2] 22393 mvn r2, r2, lsl #17 22394 mvn r2, r2, lsr #17 22395 strh r2, [r1, #2] @ movhi 22396 b .L3631 22397.L3628: 22398 add r2, r2, #1 22399 cmp r2, #32 22400 bne .L3632 22401 bl pm_select_ram_region 22402 lsl r1, r0, #3 22403 sub r2, r6, #4 22404 mov r5, r0 22405 add ip, r2, r1 22406 ldrh r1, [r2, r1] 22407 movw r2, #65535 22408 cmp r1, r2 22409 beq .L3633 22410 ldrsh r2, [ip, #2] 22411 cmp r2, #0 22412 bge .L3633 22413 bl pm_flush_id 22414.L3633: 22415 mov r1, r5 22416 mov r0, fp 22417 strb r5, [r8, #-12] 22418 bl load_l2p_region 22419 b .L3629 22420.L3642: 22421 .align 2 22422.L3641: 22423 .word .LANCHOR3 22424 .word .LANCHOR0 22425 .word .LC244 22426 .word .LANCHOR3-2532 22427 .fnend 22428 .size pm_log2phys, .-pm_log2phys 22429 .align 2 22430 .global gc_recovery 22431 .syntax unified 22432 .arm 22433 .fpu softvfp 22434 .type gc_recovery, %function 22435gc_recovery: 22436 .fnstart 22437 @ args = 0, pretend = 0, frame = 40 22438 @ frame_needed = 0, uses_anonymous_args = 0 22439 push {r4, r5, r6, r7, r8, r9, r10, fp, lr} 22440 .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} 22441 movw r3, #65535 22442 ldr r8, .L3744 22443 mov r5, #0 22444 .pad #76 22445 sub sp, sp, #76 22446 ldr r7, .L3744+4 22447 ldr r4, [r8, #1096] 22448 strb r5, [r7, #-3119] 22449 ldrh r2, [r4, #80] 22450 strb r5, [r7, #-144] 22451 cmp r2, r3 22452 beq .L3644 22453 mvn r3, #0 22454 mov r0, #1 22455 strh r3, [r4, #130] @ movhi 22456 bl buf_alloc 22457 ldrb r3, [r4, #89] @ zero_extendqisi2 22458 mov r6, r0 22459 ldrb r1, [r7, #-3128] @ zero_extendqisi2 22460 add r3, r4, r3, lsl #1 22461 cmp r1, #2 22462 ldrh r2, [r3, #94] 22463 sub r3, r7, #3072 22464 ldrh r3, [r3, #-2] 22465 mul r2, r3, r2 22466 str r2, [sp, #64] 22467 beq .L3645 22468 ldrb r3, [r8, #1158] @ zero_extendqisi2 22469 cmp r3, r5 22470 bne .L3645 22471 ldrb r3, [r8, #1159] @ zero_extendqisi2 22472 cmp r3, r5 22473 beq .L3646 22474.L3645: 22475 ldr r3, .L3744+8 22476 ldrh r3, [r3, #-14] 22477 sub r3, r3, #1 22478 add r3, r3, r2 22479 orr r3, r3, r1, lsl #24 22480.L3734: 22481 str r3, [r6, #24] 22482.L3647: 22483 mov r1, #1 22484 mov r0, r6 22485 bl sblk_read_page 22486 ldr r3, [r6, #36] 22487 cmn r3, #1 22488 cmpne r3, #512 22489 beq .L3648 22490 ldr r3, [r6, #12] 22491 ldr r9, .L3744+12 22492 ldr r3, [r3] 22493 cmp r3, r9 22494 beq .L3649 22495.L3648: 22496 mov r0, r6 22497 bl zbuf_free 22498 ldr r2, [r6, #12] 22499 ldr r3, [r6, #4] 22500 ldr r0, .L3744+16 22501 ldr r1, [r2, #12] 22502 str r1, [sp, #24] 22503 ldr r1, [r2, #8] 22504 str r1, [sp, #20] 22505 ldr r1, [r2, #4] 22506 str r1, [sp, #16] 22507 ldr r2, [r2] 22508 str r2, [sp, #12] 22509 ldr r2, [r3, #12] 22510 str r2, [sp, #8] 22511 ldr r2, [r3, #8] 22512 str r2, [sp, #4] 22513 ldr r2, [r3, #4] 22514 str r2, [sp] 22515 ldr r3, [r3] 22516 ldr r2, [r6, #36] 22517 ldr r1, [r6, #24] 22518 bl printk 22519.L3742: 22520 ldrh r3, [r4, #80] 22521 mov r5, #0 22522 ldr r2, [r8, #1092] 22523 lsl r3, r3, #1 22524 strh r5, [r2, r3] @ movhi 22525 ldrh r2, [r4, #80] 22526 ldr r3, [r8, #1096] 22527 strh r2, [r3, #130] @ movhi 22528.L3650: 22529 ldrh r0, [r4, #80] 22530 ldr r6, .L3744 22531 ldr r2, [r6, #1092] 22532 lsl r3, r0, #1 22533 ldrh r3, [r2, r3] 22534 cmp r3, #0 22535 bne .L3694 22536 bl ftl_dump_write_open_sblk 22537.L3694: 22538 mov r2, r5 22539 ldrh r1, [r4, #80] 22540 ldr r0, .L3744+20 22541 bl printk 22542 mvn r3, #0 22543 strh r3, [r4, #80] @ movhi 22544 bl pm_flush 22545 bl ftl_ext_info_flush 22546 ldr r3, [r6, #1096] 22547 movw r2, #65535 22548 ldrh r3, [r3, #130] 22549 cmp r3, r2 22550 beq .L3695 22551 movw r2, #1080 22552 ldrh r2, [r6, r2] 22553 cmp r2, r3 22554 bhi .L3696 22555 movw r2, #517 22556 ldr r1, .L3744+24 22557 ldr r0, .L3744+28 22558 bl printk 22559 bl dump_stack 22560.L3696: 22561 ldr r3, [r6, #1096] 22562 ldrh r0, [r3, #130] 22563 bl ftl_free_sblk 22564.L3695: 22565 ldr r2, [r6, #2800] 22566 mvn r3, #0 22567 mov r0, #0 22568 strh r3, [r2, #126] @ movhi 22569 ldr r2, [r6, #1096] 22570 strh r3, [r2, #130] @ movhi 22571 bl ftl_info_flush 22572.L3643: 22573 add sp, sp, #76 22574 @ sp needed 22575 pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} 22576.L3646: 22577 cmp r1, #3 22578 bne .L3647 22579 sub r3, r7, #3088 22580 ldrh r3, [r3, #-8] 22581 sub r3, r3, #1 22582 add r3, r3, r2 22583 orr r3, r3, #50331648 22584 b .L3734 22585.L3649: 22586 ldrb r3, [r7, #-11] @ zero_extendqisi2 22587 ldr r5, .L3744+8 22588 cmp r3, #2 22589 bne .L3651 22590 ldrb r3, [r7, #-3128] @ zero_extendqisi2 22591 cmp r3, #3 22592 bne .L3651 22593 ldrh r2, [r5, #-14] 22594 ldrh r0, [r7, #-14] 22595 ldr r1, [r6, #4] 22596 lsl r3, r2, #2 22597 ldrb r2, [r7, #-3127] @ zero_extendqisi2 22598 smulbb r2, r2, r3 22599 ldr r3, [r7, #-132] 22600 sub r2, r2, r0 22601 lsr r0, r0, #2 22602 uxth r2, r2 22603 add r0, r3, r0, lsl #2 22604 bl ftl_memcpy 22605 ldrb r3, [r8, #1158] @ zero_extendqisi2 22606 cmp r3, #0 22607 bne .L3652 22608 ldrb r3, [r8, #1159] @ zero_extendqisi2 22609 cmp r3, #0 22610 beq .L3653 22611.L3652: 22612 ldr r3, [r6, #24] 22613 sub r3, r3, #1 22614.L3735: 22615 str r3, [r6, #24] 22616 mov r1, #1 22617 mov r0, r6 22618 bl sblk_read_page 22619 ldr r3, [r6, #36] 22620 cmn r3, #1 22621 cmpne r3, #512 22622 beq .L3655 22623 ldr r3, [r6, #12] 22624 ldr r3, [r3] 22625 cmp r3, r9 22626 beq .L3656 22627.L3655: 22628 mov r0, r6 22629 bl zbuf_free 22630 b .L3742 22631.L3653: 22632 ldr r3, [sp, #64] 22633 ldrh r2, [r5, #8] 22634 sub r3, r3, #1 22635 add r3, r3, r2 22636 orr r3, r3, #33554432 22637 b .L3735 22638.L3656: 22639 ldrh r2, [r7, #-14] 22640.L3736: 22641 ldr r1, [r6, #4] 22642 ldr r0, [r7, #-132] 22643 bl ftl_memcpy 22644 ldrh r3, [r5, #-14] 22645 ldrb r2, [r7, #-3127] @ zero_extendqisi2 22646 mul r2, r2, r3 22647 ldrb r3, [r7, #-2546] @ zero_extendqisi2 22648 cmp r3, r2, asr #6 22649 lsl r2, r2, #2 22650 bge .L3658 22651 mov r1, #0 22652 ldr r0, [r7, #-128] 22653 bl ftl_memset 22654 ldrb r10, [r7, #-11] @ zero_extendqisi2 22655 cmp r10, #1 22656 movne r10, #1 22657 bne .L3737 22658 ldrh r1, [r5, #-14] 22659 ldrb r3, [r7, #-3127] @ zero_extendqisi2 22660 ldrh r5, [r7, #-14] 22661 ldr r0, [r7, #-128] 22662 mul r3, r3, r1 22663 ldr r1, [r6, #4] 22664 lsl r3, r3, #2 22665 sub r5, r5, r3 22666 add r1, r1, r3 22667 mov r2, r5 22668 bl ftl_memcpy 22669.L3659: 22670 ldr r3, .L3744+32 22671 ldrh r3, [r3, #-8] 22672 str r3, [sp, #44] 22673 ldrb r3, [r7, #-3128] @ zero_extendqisi2 22674 cmp r3, #2 22675 str r3, [sp, #36] 22676 bne .L3660 22677 ldrb r3, [r7, #-3126] @ zero_extendqisi2 22678 cmp r3, #0 22679 beq .L3661 22680.L3660: 22681 ldrb r3, [r8, #1158] @ zero_extendqisi2 22682 cmp r3, #0 22683 beq .L3662 22684.L3661: 22685 ldr r3, [sp, #36] 22686 ldr r2, [sp, #44] 22687 mul r3, r3, r2 22688 str r3, [sp, #44] 22689 mov r3, #1 22690 str r3, [sp, #36] 22691.L3662: 22692 ldr r8, .L3744+4 22693 mov r7, #0 22694 str r7, [sp, #48] 22695.L3663: 22696 ldr r3, [sp, #44] 22697 cmp r3, r7 22698 bls .L3676 22699 add r3, r7, r7, lsl #1 22700 sub r3, r3, #1 22701 str r3, [sp, #52] 22702 mov r3, #0 22703 b .L3739 22704.L3651: 22705 ldrh r3, [r5, #-14] 22706 ldrb r2, [r7, #-3127] @ zero_extendqisi2 22707 mul r2, r2, r3 22708 lsl r2, r2, #2 22709 b .L3736 22710.L3658: 22711 ldr r1, [r6, #4] 22712 mov r10, #0 22713 ldr r0, [r7, #-128] 22714 add r1, r1, r2 22715 bl ftl_memcpy 22716.L3737: 22717 mov r5, #0 22718 b .L3659 22719.L3672: 22720 ldr r3, [sp, #56] 22721 ldrb r1, [r8, #-3128] @ zero_extendqisi2 22722 ldrh r2, [r3, #96] 22723 ldr r3, .L3744+36 22724 cmp r1, #2 22725 ldrh r3, [r3, #-2] 22726 mul r3, r3, r2 22727 str r3, [sp, #64] 22728 beq .L3664 22729 ldr r2, .L3744 22730 ldrb r2, [r2, #1158] @ zero_extendqisi2 22731 cmp r2, #0 22732 beq .L3665 22733.L3664: 22734 sub r2, r7, #1 22735 add r3, r2, r3 22736 add r3, r3, fp 22737 orr r3, r3, r1, lsl #24 22738.L3738: 22739 str r3, [r6, #24] 22740 mov r1, #1 22741 mov r0, r6 22742 bl sblk_read_page 22743 cmp r10, #0 22744 beq .L3669 22745 ldr r3, [r8, #-128] 22746 ldr r2, [r3, r9] 22747 cmp r2, #0 22748 ldreq r2, [r6, #12] 22749 ldreq r2, [r2, #8] 22750 streq r2, [r3, r9] 22751.L3669: 22752 ldr r3, [r8, #-132] 22753 ldr r2, [r6, #12] 22754 ldr r3, [r3, r9] 22755 ldr r1, [r2, #4] 22756 cmp r3, r1 22757 bne .L3670 22758 ldr r0, [r8, #-128] 22759 ldr ip, [r0, r9] 22760 ldr r0, [r2, #8] 22761 cmp ip, r0 22762 beq .L3671 22763.L3670: 22764 ldr r0, [r2, #12] 22765 str r0, [sp, #16] 22766 ldr r0, [r2, #8] 22767 str r1, [sp, #8] 22768 str r0, [sp, #12] 22769 ldr r2, [r2] 22770 ldr r0, .L3744+40 22771 str r2, [sp, #4] 22772 ldr r2, [r8, #-128] 22773 ldr r2, [r2, r9] 22774 str r2, [sp] 22775 ldr r2, [r6, #36] 22776 ldr r1, [r6, #24] 22777 bl printk 22778 ldr r3, [r8, #-132] 22779 ldr r3, [r3, r9] 22780 cmn r3, #1 22781 beq .L3671 22782 mov r0, r6 22783 bl zbuf_free 22784 ldrh r3, [r4, #80] 22785 mov r0, #0 22786 ldr r2, .L3744 22787 ldr r1, [r2, #1092] 22788 lsl r3, r3, #1 22789 strh r0, [r1, r3] @ movhi 22790 ldrh r1, [r4, #80] 22791 ldr r3, [r2, #1096] 22792 strh r1, [r3, #130] @ movhi 22793 b .L3650 22794.L3665: 22795 cmp r1, #3 22796 addne r3, r7, r3 22797 bne .L3738 22798 ldr r2, .L3744 22799 ldrb r2, [r2, #1159] @ zero_extendqisi2 22800 cmp r2, #0 22801 ldrne r2, [sp, #52] 22802 addeq r3, r7, r3 22803 orreq r3, r3, fp, lsl #24 22804 addne r3, r3, r2 22805 addne r3, r3, fp 22806 orrne r3, r3, #50331648 22807 b .L3738 22808.L3671: 22809 ldr r3, [sp, #48] 22810 add fp, fp, #1 22811 add r9, r9, #4 22812 add r3, r3, #1 22813 str r3, [sp, #48] 22814.L3674: 22815 ldr r3, [sp, #36] 22816 cmp r3, fp 22817 bcs .L3672 22818 ldr r3, [sp, #40] 22819 add r3, r3, #1 22820.L3739: 22821 str r3, [sp, #40] 22822 ldr r2, [sp, #40] 22823 ldrb r3, [r4, #89] @ zero_extendqisi2 22824 cmp r2, r3 22825 bge .L3673 22826 ldr r3, [sp, #48] 22827 mov fp, #1 22828 lsl r9, r3, #2 22829 add r3, r4, r2, lsl #1 22830 str r3, [sp, #56] 22831 b .L3674 22832.L3673: 22833 ldrb r3, [r8, #-3126] @ zero_extendqisi2 22834 cmp r3, #0 22835 addne r7, r7, #1 22836 add r7, r7, #1 22837 b .L3663 22838.L3676: 22839 mov r0, r6 22840 mov r5, #0 22841 bl zbuf_free 22842 ldr r3, .L3744 22843 mov r6, r5 22844 ldrb r1, [r4, #89] @ zero_extendqisi2 22845 mov r10, r5 22846 ldrh r2, [r4, #80] 22847 ldr r0, [r3, #1092] 22848 ldr r3, .L3744+8 22849 lsl r2, r2, #1 22850 ldrh ip, [r3, #-14] 22851 add r9, r3, #3104 22852 smulbb r1, r1, ip 22853 strh r1, [r0, r2] @ movhi 22854.L3678: 22855 ldr r3, [sp, #44] 22856 cmp r3, r6 22857 bls .L3692 22858 add r2, r6, r6, lsl #1 22859 sub r3, r2, #1 22860 str r3, [sp, #52] 22861 mov r3, #0 22862 b .L3741 22863.L3688: 22864 ldr r2, [r9, #-132] 22865 ldr fp, [r2, r10, lsl #2] 22866 cmn fp, #1 22867 beq .L3679 22868 ldr r2, [r9, #-128] 22869 mov r0, fp 22870 ldr r3, [r2, r10, lsl #2] 22871 str r3, [sp, #48] 22872 bl lpa_hash_get_ppa 22873 cmn r0, #1 22874 str r0, [sp, #68] 22875 bne .L3680 22876 mov r2, #0 22877 add r1, sp, #68 22878 mov r0, fp 22879 bl pm_log2phys 22880.L3680: 22881 ldr r3, [sp, #56] 22882 ldr r1, .L3744+44 22883 ldrb r0, [r9, #-3128] @ zero_extendqisi2 22884 ldrh r2, [r3, #96] 22885 ldrh r1, [r1] 22886 cmp r0, #2 22887 mul r2, r1, r2 22888 beq .L3681 22889 ldr r1, .L3744 22890 ldrb ip, [r1, #1158] @ zero_extendqisi2 22891 cmp ip, #0 22892 beq .L3682 22893.L3681: 22894 sub r1, r6, #1 22895 add r2, r1, r2 22896 add r2, r2, r8 22897 orr r2, r2, r0, lsl #24 22898.L3740: 22899 str r2, [sp, #64] 22900 ldr r2, .L3744+48 22901 ldr r3, [sp, #48] 22902 ldrb r1, [r9, #-3136] @ zero_extendqisi2 22903 ldrh ip, [r2, #-2] 22904 ldr r2, .L3744 22905 ldrb r0, [r2, #1153] @ zero_extendqisi2 22906 mov r2, #1 22907 str r2, [sp, #60] 22908 rsb r0, r0, #24 22909 sub r0, r0, ip 22910 lsl r0, r2, r0 22911 sub r0, r0, #1 22912 and r0, r0, r3, lsr ip 22913 bl __aeabi_uidiv 22914 ldr r1, [sp, #68] 22915 mov r7, r0 22916 ldr r3, [sp, #48] 22917 ldr r2, [sp, #60] 22918 cmp r3, r1 22919 bne .L3686 22920 add r1, sp, #64 22921 mov r0, fp 22922 bl pm_log2phys 22923 uxth r0, r7 22924 add r5, r5, #1 22925 bl ftl_vpn_decrement 22926.L3687: 22927 ldr r1, .L3744 22928 uxth r7, r7 22929 add r10, r10, #1 22930 ldr r2, [r1, #1084] 22931 add r2, r2, r7, lsl #2 22932 ldrb r2, [r2, #2] @ zero_extendqisi2 22933 ands r0, r2, #224 22934 bne .L3679 22935 ldr r2, [r1, #1092] 22936 lsl r7, r7, #1 22937 ldrh r1, [r2, r7] 22938 cmp r1, #0 22939 strhne r0, [r2, r7] @ movhi 22940.L3679: 22941 add r8, r8, #1 22942.L3690: 22943 ldr r3, [sp, #36] 22944 cmp r3, r8 22945 bcs .L3688 22946 ldr r3, [sp, #40] 22947 add r3, r3, #1 22948.L3741: 22949 str r3, [sp, #40] 22950 ldrb r2, [r4, #89] @ zero_extendqisi2 22951 ldr r3, [sp, #40] 22952 cmp r3, r2 22953 bge .L3689 22954 add r3, r4, r3, lsl #1 22955 mov r8, #1 22956 str r3, [sp, #56] 22957 b .L3690 22958.L3682: 22959 cmp r0, #3 22960 addne r2, r6, r2 22961 bne .L3740 22962 ldrb r1, [r1, #1159] @ zero_extendqisi2 22963 cmp r1, #0 22964 lsl r1, r8, #24 22965 ldrne r3, [sp, #52] 22966 addeq r2, r6, r2 22967 addne r2, r2, r3 22968 addne r2, r2, r8 22969 orr r2, r2, r1 22970 b .L3740 22971.L3686: 22972 ldr r2, [sp, #64] 22973 cmp r1, r2 22974 addeq r5, r5, #1 22975 b .L3687 22976.L3689: 22977 ldrb r2, [r9, #-3126] @ zero_extendqisi2 22978 cmp r2, #0 22979 addne r6, r6, #1 22980 add r6, r6, #1 22981 b .L3678 22982.L3692: 22983 ldrh r3, [r4, #80] 22984 ldr r2, .L3744 22985 ldr r2, [r2, #1092] 22986 lsl r3, r3, #1 22987 strh r5, [r2, r3] @ movhi 22988 ldrh r0, [r4, #80] 22989 bl zftl_insert_data_list 22990 b .L3650 22991.L3644: 22992 ldrh r3, [r4, #130] 22993 cmp r3, r2 22994 beq .L3643 22995 ldr r2, [r8, #2800] 22996 ldrh r2, [r2, #126] 22997 cmp r2, r3 22998 bne .L3698 22999 bl pm_flush 23000 ldr r3, [r8, #1096] 23001 ldrh r0, [r3, #130] 23002 bl ftl_free_sblk 23003 ldr r3, [r8, #2800] 23004 mvn r2, #0 23005 mov r0, r5 23006 strh r2, [r3, #126] @ movhi 23007 bl ftl_info_flush 23008.L3698: 23009 ldr r3, [r8, #1096] 23010 mvn r2, #0 23011 strh r2, [r3, #130] @ movhi 23012 b .L3643 23013.L3745: 23014 .align 2 23015.L3744: 23016 .word .LANCHOR0 23017 .word .LANCHOR3 23018 .word .LANCHOR3-3104 23019 .word -178307901 23020 .word .LC245 23021 .word .LC247 23022 .word .LANCHOR1+2361 23023 .word .LC0 23024 .word .LANCHOR3-3088 23025 .word .LANCHOR3-3072 23026 .word .LC246 23027 .word .LANCHOR3-3074 23028 .word .LANCHOR3-3136 23029 .fnend 23030 .size gc_recovery, .-gc_recovery 23031 .align 2 23032 .global gc_update_l2p_map_new 23033 .syntax unified 23034 .arm 23035 .fpu softvfp 23036 .type gc_update_l2p_map_new, %function 23037gc_update_l2p_map_new: 23038 .fnstart 23039 @ args = 0, pretend = 0, frame = 24 23040 @ frame_needed = 0, uses_anonymous_args = 0 23041 push {r4, r5, r6, r7, r8, r9, r10, fp, lr} 23042 .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} 23043 .pad #28 23044 sub sp, sp, #28 23045 ldr r4, .L3781 23046 ldr r3, .L3781+4 23047 ldr r5, [r4, #1096] 23048 ldrh r3, [r3, #-14] 23049 ldrb r2, [r5, #89] @ zero_extendqisi2 23050 mul r3, r2, r3 23051 str r3, [sp] 23052 ldr r3, .L3781+8 23053 ldr r2, [r3] 23054 mov fp, r3 23055 tst r2, #256 23056 beq .L3747 23057 ldrh r1, [r5, #80] 23058 ldr r0, .L3781+12 23059 bl printk 23060.L3747: 23061 ldr r2, .L3781+16 23062 mov r7, #0 23063 ldrh r3, [r5, #80] 23064 mov r6, r7 23065 ldr r0, [sp] 23066 ldrb r2, [r2, #-11] @ zero_extendqisi2 23067 ldr r8, .L3781+16 23068 ldr r1, [r4, #1092] 23069 lsl r3, r3, #1 23070 sub r2, r0, r2 23071 strh r2, [r1, r3] @ movhi 23072.L3748: 23073 ldr r3, [sp] 23074 cmp r6, r3 23075 bne .L3757 23076 ldr r3, [fp] 23077 tst r3, #256 23078 beq .L3758 23079 ldrh r2, [r5, #80] 23080 mov r3, r7 23081 ldr r0, [r4, #1092] 23082 ldr r1, [r4, #1096] 23083 lsl r2, r2, #1 23084 ldrh r1, [r1, #80] 23085 ldrh r2, [r0, r2] 23086 ldr r0, .L3781+20 23087 bl printk 23088.L3758: 23089 ldrh r3, [r5, #80] 23090 ldr r2, [r4, #1092] 23091 lsl r3, r3, #1 23092 ldrh r3, [r2, r3] 23093 cmp r7, r3 23094 beq .L3759 23095 movw r2, #898 23096 ldr r1, .L3781+24 23097 ldr r0, .L3781+28 23098 bl printk 23099 bl dump_stack 23100.L3759: 23101 ldrh r3, [r5, #80] 23102 ldr r2, [r4, #1092] 23103 lsl r3, r3, #1 23104 strh r7, [r2, r3] @ movhi 23105 ldrh r0, [r5, #80] 23106 bl zftl_insert_data_list 23107 add sp, sp, #28 23108 @ sp needed 23109 pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} 23110.L3757: 23111 ldr r3, [r8, #-132] 23112 lsl r9, r6, #2 23113 ldr r10, [r3, r6, lsl #2] 23114 cmn r10, #1 23115 beq .L3749 23116 ldrb r1, [r8, #-2546] @ zero_extendqisi2 23117 mov r0, r10 23118 lsl r1, r1, #7 23119 bl __aeabi_uidiv 23120 uxth r3, r0 23121 str r3, [sp, #12] 23122 ldr r3, [fp] 23123 tst r3, #256 23124 beq .L3750 23125 mov r3, r6 23126 mov r2, r10 23127 ldr r1, [sp, #12] 23128 ldr r0, .L3781+32 23129 bl printk 23130.L3750: 23131 str r6, [sp, #8] 23132.L3756: 23133 ldr r3, [r8, #-132] 23134 ldr r10, [r3, r9] 23135 cmn r10, #1 23136 beq .L3751 23137 ldrb r1, [r8, #-2546] @ zero_extendqisi2 23138 mov r0, r10 23139 lsl r1, r1, #7 23140 bl __aeabi_uidiv 23141 ldr r3, [sp, #12] 23142 uxth r0, r0 23143 cmp r3, r0 23144 bne .L3751 23145 ldr r3, [r8, #-128] 23146 mov r0, r10 23147 ldr r3, [r3, r9] 23148 str r3, [sp, #4] 23149 bl lpa_hash_get_ppa 23150 cmn r0, #1 23151 str r0, [sp, #20] 23152 bne .L3752 23153 mov r2, #0 23154 add r1, sp, #20 23155 mov r0, r10 23156 bl pm_log2phys 23157.L3752: 23158 ldr r3, [sp, #20] 23159 ldr r2, [sp, #4] 23160 cmp r2, r3 23161 bne .L3753 23162 ldr r3, .L3781+16 23163 add r1, sp, #24 23164 mov r2, #1 23165 mov r0, r10 23166 add r7, r7, #1 23167 ldr r3, [r3, #-124] 23168 ldr r3, [r3, r9] 23169 str r3, [r1, #-8]! 23170 bl pm_log2phys 23171 ldr r3, .L3781+36 23172 ldr r2, [sp, #4] 23173 ldrh r0, [r3] 23174 ldrb r3, [r4, #1153] @ zero_extendqisi2 23175 rsb r3, r3, #24 23176 sub r3, r3, r0 23177 lsr r0, r2, r0 23178 ldr r2, .L3781+16 23179 ldrb r1, [r2, #-3136] @ zero_extendqisi2 23180 mvn r2, #0 23181 bic r0, r0, r2, lsl r3 23182 bl __aeabi_uidiv 23183 uxth r0, r0 23184.L3780: 23185 bl ftl_vpn_decrement 23186 ldr r3, [r8, #-132] 23187 mvn r2, #0 23188 str r2, [r3, r9] 23189.L3751: 23190 ldr r3, [sp, #8] 23191 add r9, r9, #4 23192 add r3, r3, #1 23193 str r3, [sp, #8] 23194 ldr r2, [sp, #8] 23195 ldr r3, [sp] 23196 cmp r3, r2 23197 bne .L3756 23198.L3749: 23199 add r6, r6, #1 23200 b .L3748 23201.L3753: 23202 ldr r2, [fp] 23203 tst r2, #256 23204 beq .L3755 23205 ldr r2, [sp, #4] 23206 mov r1, r10 23207 ldr r0, .L3781+40 23208 bl printk 23209.L3755: 23210 ldrh r0, [r5, #80] 23211 b .L3780 23212.L3782: 23213 .align 2 23214.L3781: 23215 .word .LANCHOR0 23216 .word .LANCHOR3-3104 23217 .word .LANCHOR2 23218 .word .LC248 23219 .word .LANCHOR3 23220 .word .LC251 23221 .word .LANCHOR1+2373 23222 .word .LC0 23223 .word .LC249 23224 .word .LANCHOR3-3138 23225 .word .LC250 23226 .fnend 23227 .size gc_update_l2p_map_new, .-gc_update_l2p_map_new 23228 .align 2 23229 .global gc_scan_src_blk_one_page 23230 .syntax unified 23231 .arm 23232 .fpu softvfp 23233 .type gc_scan_src_blk_one_page, %function 23234gc_scan_src_blk_one_page: 23235 .fnstart 23236 @ args = 0, pretend = 0, frame = 8 23237 @ frame_needed = 0, uses_anonymous_args = 0 23238 push {r0, r1, r4, r5, r6, r7, r8, r9, r10, lr} 23239 .save {r4, r5, r6, r7, r8, r9, r10, lr} 23240 .pad #8 23241 mov r1, #0 23242 ldr r5, .L3810 23243 mov lr, r1 23244 movw r0, #65535 23245 ldr r4, .L3810+4 23246 ldrb r3, [r5, #2828] @ zero_extendqisi2 23247 ldr r7, .L3810+8 23248 add r2, r4, r3, lsl #1 23249 ldrb ip, [r7, #-3127] @ zero_extendqisi2 23250 ldrh r8, [r2, #36] 23251 ldrh r2, [r4, #2] 23252.L3784: 23253 cmp r8, r0 23254 beq .L3786 23255 cmp lr, #0 23256 mov r0, #1 23257 strhne r2, [r4, #2] @ movhi 23258 cmp r1, #0 23259 strbne r3, [r5, #2828] 23260 mov r9, #1 23261 bl buf_alloc 23262 mov r6, r0 23263.L3789: 23264 ldrb r1, [r5, #2830] @ zero_extendqisi2 23265 cmp r9, r1 23266 ble .L3799 23267 mov r0, r6 23268 bl zbuf_free 23269 ldrb r3, [r5, #2828] @ zero_extendqisi2 23270 ldrb r2, [r7, #-3127] @ zero_extendqisi2 23271 add r3, r3, #1 23272 uxtb r3, r3 23273 cmp r2, r3 23274 strb r3, [r5, #2828] 23275 ldrheq r3, [r4, #2] 23276 addeq r3, r3, #1 23277 strheq r3, [r4, #2] @ movhi 23278 moveq r3, #0 23279 strbeq r3, [r5, #2828] 23280 add sp, sp, #8 23281 @ sp needed 23282 pop {r4, r5, r6, r7, r8, r9, r10, pc} 23283.L3786: 23284 add r3, r3, #1 23285 uxtb r3, r3 23286 cmp r3, ip 23287 moveq r3, #0 23288 addeq r2, r2, #1 23289 add r1, r4, r3, lsl #1 23290 uxtheq r2, r2 23291 ldrh r8, [r1, #36] 23292 moveq lr, #1 23293 mov r1, #1 23294 b .L3784 23295.L3799: 23296 ldr r3, .L3810+12 23297 cmp r1, #2 23298 ldrh r3, [r3] 23299 mul r2, r8, r3 23300 ldrheq r3, [r4, #2] 23301 addeq r3, r2, r3, lsl #1 23302 subeq r3, r3, #1 23303 beq .L3809 23304 cmp r1, #3 23305 ldrhne r3, [r4, #2] 23306 addne r3, r3, r2 23307 bne .L3808 23308 ldrb r3, [r5, #1158] @ zero_extendqisi2 23309 cmp r3, #0 23310 bne .L3793 23311 ldrb r3, [r5, #1159] @ zero_extendqisi2 23312 cmp r3, #0 23313 ldrheq r3, [r4, #2] 23314 addeq r3, r3, r2 23315 orreq r3, r3, r9, lsl #24 23316 beq .L3808 23317.L3793: 23318 ldrh r3, [r4, #2] 23319 add r3, r3, r3, lsl #1 23320 sub r3, r3, #1 23321 add r3, r3, r2 23322.L3809: 23323 ldrb r2, [r7, #-3128] @ zero_extendqisi2 23324 add r3, r3, r9 23325 orr r3, r3, r2, lsl #24 23326.L3808: 23327 str r3, [r6, #24] 23328 mov r1, #1 23329 mov r0, r6 23330 bl sblk_read_page 23331 ldr r3, [r6, #36] 23332 cmp r3, #512 23333 cmnne r3, #1 23334 beq .L3796 23335 ldr r3, [r6, #12] 23336 ldr r10, [r3, #4] 23337 mov r0, r10 23338 bl lpa_hash_get_ppa 23339 cmn r0, #1 23340 str r0, [sp, #4] 23341 bne .L3797 23342 ldr r3, [r5, #2780] 23343 cmp r10, r3 23344 bcs .L3797 23345 mov r2, #0 23346 add r1, sp, #4 23347 mov r0, r10 23348 bl pm_log2phys 23349.L3797: 23350 ldr r3, [r6, #24] 23351 ldr r2, [sp, #4] 23352 cmp r3, r2 23353 ldrheq r1, [r4, #20] 23354 ldreq r2, [r7, #-3132] 23355 streq r3, [r2, r1, lsl #2] 23356 ldrheq r3, [r4, #20] 23357 addeq r3, r3, #1 23358 strheq r3, [r4, #20] @ movhi 23359.L3796: 23360 ldrh r3, [r4, #22] 23361 add r9, r9, #1 23362 add r3, r3, #1 23363 strh r3, [r4, #22] @ movhi 23364 b .L3789 23365.L3811: 23366 .align 2 23367.L3810: 23368 .word .LANCHOR0 23369 .word .LANCHOR0+2824 23370 .word .LANCHOR3 23371 .word .LANCHOR3-3074 23372 .fnend 23373 .size gc_scan_src_blk_one_page, .-gc_scan_src_blk_one_page 23374 .align 2 23375 .global gc_scan_src_blk 23376 .syntax unified 23377 .arm 23378 .fpu softvfp 23379 .type gc_scan_src_blk, %function 23380gc_scan_src_blk: 23381 .fnstart 23382 @ args = 0, pretend = 0, frame = 24 23383 @ frame_needed = 0, uses_anonymous_args = 0 23384 push {r4, r5, r6, r7, r8, r9, r10, fp, lr} 23385 .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} 23386 movw r3, #2824 23387 ldr r4, .L3867 23388 .pad #28 23389 sub sp, sp, #28 23390 ldrh r2, [r4, r3] 23391 movw r3, #65535 23392 cmp r2, r3 23393 bne .L3813 23394 movw r2, #1505 23395 ldr r1, .L3867+4 23396 ldr r0, .L3867+8 23397 bl printk 23398 bl dump_stack 23399.L3813: 23400 movw r3, #2824 23401 ldrh r1, [r4, r3] 23402 movw r3, #65535 23403 cmp r1, r3 23404 moveq r0, #0 23405 beq .L3812 23406 ldr r3, .L3867+12 23407 ldr r3, [r3] 23408 tst r3, #256 23409 beq .L3815 23410 ldr r2, [r4, #1092] 23411 lsl r3, r1, #1 23412 ldr r0, .L3867+16 23413 ldrh r2, [r2, r3] 23414 bl printk 23415.L3815: 23416 ldr r7, .L3867+20 23417 movw r5, #2824 23418 bl timer_get_time 23419 ldrh r0, [r4, r5] 23420 add r1, r7, #36 23421 bl ftl_get_blk_list_in_sblk 23422 uxtb r0, r0 23423 cmp r0, #0 23424 strb r0, [r4, #2829] 23425 mvneq r3, #0 23426 strheq r3, [r4, r5] @ movhi 23427 beq .L3812 23428 ldrh r3, [r4, r5] 23429 ldr r2, [r4, #1084] 23430 add r2, r2, r3, lsl #2 23431 ldrb r2, [r2, #2] @ zero_extendqisi2 23432 and r2, r2, #224 23433 cmp r2, #32 23434 beq .L3817 23435 cmp r2, #0 23436 cmpne r2, #224 23437 beq .L3818 23438 ldr r2, [r4, #1096] 23439 ldrh r1, [r2, #16] 23440 cmp r1, r3 23441 beq .L3817 23442 ldrh r1, [r2, #48] 23443 cmp r1, r3 23444 beq .L3817 23445 ldrh r2, [r2, #80] 23446 cmp r2, r3 23447 bne .L3860 23448.L3817: 23449 mvn r2, #0 23450 movw r3, #2824 23451 mov r0, #0 23452 strh r2, [r4, r3] @ movhi 23453 strh r0, [r7, #20] @ movhi 23454.L3812: 23455 add sp, sp, #28 23456 @ sp needed 23457 pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} 23458.L3818: 23459 cmp r2, #0 23460 bne .L3817 23461 ldr r2, [r4, #1092] 23462 lsl r3, r3, #1 23463 ldrh r3, [r2, r3] 23464 cmp r3, #0 23465 beq .L3820 23466 movw r2, #1530 23467 ldr r1, .L3867+4 23468 ldr r0, .L3867+8 23469 bl printk 23470 bl dump_stack 23471.L3820: 23472 movw r3, #2824 23473 ldr r2, [r4, #1092] 23474 ldrh r3, [r4, r3] 23475 mov r1, #0 23476 lsl r3, r3, #1 23477 strh r1, [r2, r3] @ movhi 23478 b .L3817 23479.L3860: 23480 add r0, r7, r0, lsl #1 23481 movw r3, #65535 23482 ldrh r10, [r0, #34] 23483 cmp r10, r3 23484 bne .L3821 23485 movw r2, #1540 23486 ldr r1, .L3867+4 23487 ldr r0, .L3867+8 23488 bl printk 23489 bl dump_stack 23490.L3821: 23491 movw r2, #2824 23492 ldr r8, .L3867+24 23493 ldrh r0, [r4, r2] 23494 ldr r2, [r4, #1084] 23495 sub r1, r8, #3072 23496 sub fp, r8, #3088 23497 ldrh r6, [fp, #-8] 23498 ldrh r3, [r1, #-2] 23499 add r2, r2, r0, lsl #2 23500 str r1, [sp, #4] 23501 sub r6, r6, #1 23502 ldrb r2, [r2, #2] @ zero_extendqisi2 23503 uxth r6, r6 23504 mul r3, r10, r3 23505 and r2, r2, #224 23506 cmp r2, #160 23507 movne r9, #1 23508 bne .L3822 23509 ldrb r2, [r8, #-3128] @ zero_extendqisi2 23510 cmp r2, #2 23511 uxth r9, r2 23512 orr r3, r3, r2, lsl #24 23513 subeq r2, r8, #3104 23514 ldrheq r6, [r2, #-14] 23515 ldrb r2, [r4, #1158] @ zero_extendqisi2 23516 subeq r6, r6, #1 23517 uxtheq r6, r6 23518 cmp r2, #0 23519 bne .L3824 23520 ldrb r2, [r4, #1159] @ zero_extendqisi2 23521 cmp r2, #0 23522 beq .L3822 23523.L3824: 23524 ldr r2, .L3867+28 23525 ldrh r6, [r2, #-14] 23526 sub r6, r6, #1 23527 uxth r6, r6 23528.L3822: 23529 orr r6, r6, r3 23530 strb r9, [r4, #2830] 23531 mov r3, #0 23532 mov r0, #1 23533 strh r3, [r7, #2] @ movhi 23534 strb r3, [r4, #2828] 23535 strh r3, [r7, #22] @ movhi 23536 strh r3, [r7, #24] @ movhi 23537 str r3, [sp] 23538 bl buf_alloc 23539 mov r1, #1 23540 str r6, [r0, #24] 23541 mov r5, r0 23542 bl sblk_read_page 23543 ldr r3, [sp] 23544 strh r3, [r7, #20] @ movhi 23545 ldr r3, [r5, #36] 23546 cmn r3, #1 23547 cmpne r3, #512 23548 bne .L3825 23549.L3865: 23550 mov r0, r5 23551 bl zbuf_free 23552.L3863: 23553 mvn r0, #0 23554 b .L3812 23555.L3825: 23556 ldr r1, [r5, #12] 23557 ldr r3, .L3867+32 23558 ldr r2, [r1] 23559 str r3, [sp, #8] 23560 cmp r2, r3 23561 beq .L3826 23562 movw r2, #1578 23563.L3866: 23564 ldr r1, .L3867+4 23565 ldr r0, .L3867+8 23566 bl printk 23567 bl dump_stack 23568 b .L3865 23569.L3826: 23570 ldrb r2, [r8, #-3127] @ zero_extendqisi2 23571 ldrh r3, [fp, #-8] 23572 smulbb r3, r3, r2 23573 smulbb r3, r3, r9 23574 uxth r3, r3 23575 str r3, [sp] 23576 ldrb r3, [r8, #-11] @ zero_extendqisi2 23577 cmp r3, #2 23578 cmpeq r9, #3 23579 bne .L3827 23580 ldr r3, .L3867+28 23581 ldrh r0, [r8, #-14] 23582 ldr r1, [r5, #4] 23583 ldrh r9, [r3, #-14] 23584 ldr r3, [r8, #-3132] 23585 lsl r9, r9, #2 23586 smulbb r9, r9, r2 23587 sub r9, r9, r0 23588 lsr r0, r0, #2 23589 uxth r9, r9 23590 add r0, r3, r0, lsl #2 23591 mov r2, r9 23592 bl ftl_memcpy 23593 ldr r3, [r5, #12] 23594 ldr r3, [r3, #4] 23595 cmp r3, #0 23596 beq .L3828 23597 mov r1, r9 23598 ldr r0, [r5, #4] 23599 str r3, [sp, #12] 23600 bl js_hash 23601 ldr r3, [sp, #12] 23602 cmp r3, r0 23603 beq .L3828 23604 mov r0, r5 23605 bl zbuf_free 23606 ldr r1, [r5, #12] 23607 mov r3, r9 23608.L3864: 23609 ldr r2, [r5, #24] 23610 ldr r1, [r1, #4] 23611 ldr r0, .L3867+36 23612 bl printk 23613 b .L3863 23614.L3828: 23615 ldrb r3, [r4, #1158] @ zero_extendqisi2 23616 cmp r3, #0 23617 bne .L3829 23618 ldrb r3, [r4, #1159] @ zero_extendqisi2 23619 cmp r3, #0 23620 beq .L3830 23621.L3829: 23622 sub r6, r6, #1 23623 str r6, [r5, #24] 23624.L3831: 23625 mov r1, #1 23626 mov r0, r5 23627 bl sblk_read_page 23628 ldr r3, [r5, #36] 23629 cmn r3, #1 23630 cmpne r3, #512 23631 beq .L3865 23632 ldr r3, [r5, #12] 23633 ldr r2, [sp, #8] 23634 ldr r3, [r3] 23635 cmp r3, r2 23636 movwne r2, #1619 23637 ldrheq r2, [r8, #-14] 23638 bne .L3866 23639.L3862: 23640 ldr r1, [r5, #4] 23641 mov r9, #0 23642 ldr r0, [r8, #-3132] 23643 mov r10, #1 23644 bl ftl_memcpy 23645 ldr r6, [r8, #-3132] 23646 sub r6, r6, #4 23647.L3836: 23648 ldr r3, [sp] 23649 cmp r9, r3 23650 blt .L3841 23651 mov r0, r5 23652 bl zbuf_free 23653 movw r3, #2824 23654 ldr r2, [r4, #1092] 23655 ldrh r1, [r4, r3] 23656 lsl r3, r1, #1 23657 ldrh r2, [r2, r3] 23658 ldrh r3, [r7, #20] 23659 cmp r2, r3 23660 beq .L3842 23661 ldr r0, .L3867+40 23662 bl printk 23663.L3842: 23664 movw r3, #2824 23665 ldrh r1, [r7, #20] 23666 ldrh r3, [r4, r3] 23667 ldr r2, [r4, #1092] 23668 lsl r3, r3, #1 23669 strh r1, [r2, r3] @ movhi 23670 mov r3, #0 23671 strh r3, [r7, #24] @ movhi 23672 ldrh r0, [r7, #20] 23673 b .L3812 23674.L3830: 23675 ldr r2, [sp, #4] 23676 ldrh r3, [fp, #-8] 23677 ldrh r2, [r2, #-2] 23678 sub r3, r3, #1 23679 uxth r3, r3 23680 mul r10, r10, r2 23681 orr r3, r3, #33554432 23682 orr r10, r3, r10 23683 str r10, [r5, #24] 23684 b .L3831 23685.L3827: 23686 ldr r3, [sp] 23687 ldr r9, [r1, #4] 23688 ldr r0, [r5, #4] 23689 lsl r6, r3, #2 23690 mov r1, r6 23691 bl js_hash 23692 cmp r9, r0 23693 moveq r2, r6 23694 beq .L3862 23695 mov r0, r5 23696 bl zbuf_free 23697 ldr r1, [r5, #12] 23698 mov r3, r6 23699 b .L3864 23700.L3841: 23701 ldr r0, [r6, #4]! 23702 cmn r0, #1 23703 beq .L3838 23704 bl lpa_hash_get_ppa 23705 cmn r0, #1 23706 str r0, [sp, #20] 23707 bne .L3839 23708 mov r2, #0 23709 add r1, sp, #20 23710 ldr r0, [r6] 23711 bl pm_log2phys 23712.L3839: 23713 ldr r3, .L3867+44 23714 ldr fp, [sp, #20] 23715 ldrb r1, [r8, #-3136] @ zero_extendqisi2 23716 ldrh r0, [r3] 23717 ldrb r3, [r4, #1153] @ zero_extendqisi2 23718 rsb r3, r3, #24 23719 sub r3, r3, r0 23720 lsl r3, r10, r3 23721 sub r3, r3, #1 23722 and r0, r3, fp, lsr r0 23723 bl __aeabi_uidiv 23724 ldrh r3, [r7] 23725 cmp r0, r3 23726 ldreq r3, [r8, #-3132] 23727 ldrheq r2, [r7, #20] 23728 streq fp, [r3, r2, lsl #2] 23729 ldrheq r3, [r7, #20] 23730 addeq r3, r3, #1 23731 strheq r3, [r7, #20] @ movhi 23732.L3838: 23733 bl timer_get_time 23734 add r9, r9, #1 23735 b .L3836 23736.L3868: 23737 .align 2 23738.L3867: 23739 .word .LANCHOR0 23740 .word .LANCHOR1+2395 23741 .word .LC0 23742 .word .LANCHOR2 23743 .word .LC252 23744 .word .LANCHOR0+2824 23745 .word .LANCHOR3 23746 .word .LANCHOR3-3104 23747 .word -178307901 23748 .word .LC253 23749 .word .LC254 23750 .word .LANCHOR3-3138 23751 .fnend 23752 .size gc_scan_src_blk, .-gc_scan_src_blk 23753 .align 2 23754 .global gc_scan_static_data 23755 .syntax unified 23756 .arm 23757 .fpu softvfp 23758 .type gc_scan_static_data, %function 23759gc_scan_static_data: 23760 .fnstart 23761 @ args = 0, pretend = 0, frame = 8 23762 @ frame_needed = 0, uses_anonymous_args = 0 23763 push {r0, r1, r2, r4, r5, r6, r7, r8, r9, r10, fp, lr} 23764 .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} 23765 .pad #12 23766 ldr r4, .L3886 23767 ldr r3, [r4, #1096] 23768 ldr r2, [r3, #544] 23769 cmn r2, #1 23770 beq .L3870 23771 ldr r6, .L3886+4 23772 mov r7, #0 23773 ldr r9, .L3886+8 23774 sub r10, r6, #3136 23775.L3878: 23776 ldr r3, [r4, #1096] 23777 mov r2, #0 23778 add r1, sp, #4 23779 uxth r8, r7 23780 ldr r0, [r3, #544] 23781 bl pm_log2phys 23782 ldr r3, [sp, #4] 23783 cmn r3, #1 23784 beq .L3871 23785 mov r0, #1 23786 bl buf_alloc 23787 ldr r3, [sp, #4] 23788 mov r5, r0 23789 mov r1, #1 23790 str r3, [r0, #24] 23791 bl sblk_read_page 23792 ldr r3, [r5, #36] 23793 cmp r3, #256 23794 bne .L3872 23795 ldrb r3, [r4, #1153] @ zero_extendqisi2 23796 mov fp, #1 23797 ldrh r2, [r10, #-2] 23798 ldr r0, [sp, #4] 23799 rsb r3, r3, #24 23800 ldrb r1, [r6, #-3136] @ zero_extendqisi2 23801 sub r3, r3, r2 23802 lsl r3, fp, r3 23803 sub r3, r3, #1 23804 and r0, r3, r0, lsr r2 23805 bl __aeabi_uidiv 23806 mov r2, #0 23807 mov r1, fp 23808 uxth r0, r0 23809 bl gc_add_sblk 23810.L3872: 23811 ldr r2, [r5, #12] 23812 ldr r3, [r4, #1096] 23813 ldr r2, [r2, #4] 23814 ldr r3, [r3, #544] 23815 cmp r2, r3 23816 beq .L3873 23817 movw r2, #2163 23818 mov r1, r9 23819 ldr r0, .L3886+12 23820 bl printk 23821 bl dump_stack 23822.L3873: 23823 mov r0, r5 23824 bl zbuf_free 23825.L3871: 23826 ldr r3, [r4, #1096] 23827 ldr r1, [r4, #2780] 23828 ldr r2, [r3, #544] 23829 add r2, r2, #1 23830 cmp r2, r1 23831 str r2, [r3, #544] 23832 bcc .L3874 23833 mvn r2, #0 23834 str r2, [r3, #544] 23835 ldr r2, [r3, #548] 23836 add r2, r2, #1 23837 str r2, [r3, #548] 23838 bl ftl_flush 23839 bl pm_flush 23840 bl ftl_ext_info_flush 23841 mov r0, #0 23842 bl ftl_info_flush 23843.L3869: 23844 add sp, sp, #12 23845 @ sp needed 23846 pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} 23847.L3874: 23848 ldr r3, [sp, #4] 23849 cmn r3, #1 23850 bne .L3869 23851 ldrh r3, [r6, #-14] 23852 add r7, r7, #1 23853 cmp r8, r3, lsr #2 23854 bcc .L3878 23855 b .L3869 23856.L3870: 23857 ldr r2, [r3, #536] 23858 ldr r1, [r3, #12] 23859 add r2, r2, #12910592 23860 add r2, r2, #49408 23861 cmp r1, r2 23862 bhi .L3880 23863 ldr r0, [r4, #2800] 23864 ldr r2, [r3, #540] 23865 ldr r0, [r0, #44] 23866 add r2, r2, #4992 23867 add r2, r2, #8 23868 cmp r0, r2 23869 bls .L3869 23870.L3880: 23871 ldr r2, [r4, #2800] 23872 ldr r2, [r2, #44] 23873 str r1, [r3, #536] 23874 str r2, [r3, #540] 23875 mov r2, #0 23876 str r2, [r3, #544] 23877 b .L3869 23878.L3887: 23879 .align 2 23880.L3886: 23881 .word .LANCHOR0 23882 .word .LANCHOR3 23883 .word .LANCHOR1+2411 23884 .word .LC0 23885 .fnend 23886 .size gc_scan_static_data, .-gc_scan_static_data 23887 .align 2 23888 .global gc_block_vpn_scan 23889 .syntax unified 23890 .arm 23891 .fpu softvfp 23892 .type gc_block_vpn_scan, %function 23893gc_block_vpn_scan: 23894 .fnstart 23895 @ args = 0, pretend = 0, frame = 32 23896 @ frame_needed = 0, uses_anonymous_args = 0 23897 push {r4, r5, r6, r7, r8, r9, r10, fp, lr} 23898 .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} 23899 movw r5, #1080 23900 ldr r4, .L3922 23901 .pad #44 23902 sub sp, sp, #44 23903 ldr r2, [r4, #1096] 23904 ldrh r3, [r4, r5] 23905 ldr r2, [r2, #608] 23906 cmp r2, r3 23907 bcs .L3888 23908 bl timer_get_time 23909 ldr r6, [r4, #1096] 23910 ldr r3, [r6, #604] 23911 add r3, r3, #29952 23912 add r3, r3, #48 23913 cmp r0, r3 23914 bls .L3888 23915 bl timer_get_time 23916 ldr r3, [r4, #1096] 23917 str r0, [r6, #604] 23918 ldrh r1, [r4, r5] 23919 ldr r2, [r3, #600] 23920 cmp r2, r1 23921 bcs .L3890 23922 ldr r1, [r4, #2800] 23923 ldrh r1, [r1, #134] 23924 cmp r2, r1 23925 bcs .L3891 23926.L3890: 23927 ldr r2, [r4, #2800] 23928 ldrh r2, [r2, #134] 23929 str r2, [r3, #600] 23930.L3891: 23931 ldr r5, [r3, #600] 23932 movw r3, #65535 23933 uxth r7, r5 23934 cmp r7, r3 23935 bne .L3892 23936 movw r2, #2504 23937 ldr r1, .L3922+4 23938 ldr r0, .L3922+8 23939 bl printk 23940 bl dump_stack 23941.L3892: 23942 ldr r3, [r4, #1096] 23943 add r1, sp, #24 23944 mov r0, r7 23945 ldr r2, [r3, #600] 23946 add r2, r2, #1 23947 str r2, [r3, #600] 23948 ldr r2, [r3, #608] 23949 add r2, r2, #1 23950 str r2, [r3, #608] 23951 bl ftl_get_blk_list_in_sblk 23952 uxth r3, r0 23953 cmp r3, #0 23954 beq .L3888 23955 ldr r10, [r4, #1084] 23956 uxth r5, r5 23957 add r10, r10, r5, lsl #2 23958 ldrb r3, [r10, #2] @ zero_extendqisi2 23959 and r2, r3, #224 23960 and r3, r3, #192 23961 cmp r3, #0 23962 cmpne r2, #224 23963 beq .L3893 23964 ldr r3, [r4, #1096] 23965 ldrh r1, [r3, #16] 23966 cmp r1, r7 23967 beq .L3893 23968 ldrh r1, [r3, #48] 23969 cmp r1, r7 23970 beq .L3893 23971 ldrh r3, [r3, #80] 23972 cmp r3, r7 23973 bne .L3894 23974.L3893: 23975 cmp r2, #0 23976 bne .L3888 23977 ldr r3, [r4, #1092] 23978 lsl r5, r5, #1 23979 ldrh r3, [r3, r5] 23980 cmp r3, #0 23981 beq .L3895 23982 movw r2, #2521 23983 ldr r1, .L3922+4 23984 ldr r0, .L3922+8 23985 bl printk 23986 bl dump_stack 23987.L3895: 23988 ldr r3, [r4, #1092] 23989 mov r2, #0 23990 strh r2, [r3, r5] @ movhi 23991.L3888: 23992 add sp, sp, #44 23993 @ sp needed 23994 pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} 23995.L3894: 23996 uxth r0, r0 23997 add r3, sp, #40 23998 add r0, r3, r0, lsl #1 23999 movw r3, #65535 24000 ldrh r8, [r0, #-18] 24001 cmp r8, r3 24002 bne .L3897 24003 movw r2, #2529 24004 ldr r1, .L3922+4 24005 ldr r0, .L3922+8 24006 bl printk 24007 bl dump_stack 24008.L3897: 24009 ldr r6, .L3922+12 24010 sub fp, r6, #3088 24011 ldrh r2, [fp, #-8] 24012 sub r2, r2, #1 24013 uxth r3, r2 24014 sub r2, r6, #3072 24015 ldrh r1, [r2, #-2] 24016 ldrb r2, [r10, #2] @ zero_extendqisi2 24017 and r2, r2, #224 24018 mul r1, r8, r1 24019 cmp r2, #160 24020 sub r2, r6, #3104 24021 movne r8, #1 24022 bne .L3898 24023 ldrb r8, [r6, #-3128] @ zero_extendqisi2 24024 cmp r8, #2 24025 ldrheq r3, [r2, #-14] 24026 orr r1, r1, r8, lsl #24 24027 uxthne r8, r8 24028 subeq r3, r3, #1 24029 uxtheq r3, r3 24030.L3898: 24031 orr r3, r3, r1 24032 str r2, [sp, #12] 24033 mov r0, #1 24034 str r3, [sp, #8] 24035 bl buf_alloc 24036 ldr r3, [sp, #8] 24037 mov r1, #1 24038 mov r9, r0 24039 str r3, [r0, #24] 24040 bl sblk_read_page 24041 ldr r2, [sp, #12] 24042 mov r1, #255 24043 ldr r0, [r6, #-3132] 24044 ldrh r3, [r2, #-14] 24045 ldrb r2, [r6, #-3127] @ zero_extendqisi2 24046 mul r2, r2, r3 24047 lsl r2, r2, #2 24048 bl ftl_memset 24049 ldr r2, [r9, #36] 24050 cmn r2, #1 24051 cmpne r2, #512 24052 moveq r2, #1 24053 movne r2, #0 24054 moveq r2, #0 24055 beq .L3921 24056 ldr r3, [r9, #12] 24057 ldr r1, [r3] 24058 ldr r3, .L3922+16 24059 cmp r1, r3 24060 beq .L3901 24061.L3921: 24062 mov r1, #1 24063 mov r0, r7 24064 bl gc_add_sblk 24065 mov r0, r9 24066 bl zbuf_free 24067 b .L3888 24068.L3901: 24069 ldrh r3, [fp, #-8] 24070 mov fp, r2 24071 ldrb r1, [r6, #-3127] @ zero_extendqisi2 24072 smulbb r1, r1, r3 24073 smulbb r8, r1, r8 24074 uxth r3, r8 24075 mov r8, r2 24076 str r3, [sp, #12] 24077 ldr r3, [r9, #4] 24078 str r3, [sp, #8] 24079.L3902: 24080 ldr r3, [sp, #12] 24081 cmp fp, r3 24082 blt .L3905 24083 mov r0, r9 24084 lsl r6, r5, #1 24085 bl zbuf_free 24086 ldr r3, .L3922+20 24087 ldr r3, [r3] 24088 tst r3, #256 24089 beq .L3906 24090 ldr r3, [r4, #1092] 24091 mov r1, r5 24092 ldr r0, .L3922+24 24093 ldrh r2, [r3, r6] 24094 ldrb r3, [r10, #2] @ zero_extendqisi2 24095 lsr r3, r3, #5 24096 str r3, [sp] 24097 mov r3, r8 24098 bl printk 24099.L3906: 24100 ldr r3, [r4, #1092] 24101 cmp r8, #31 24102 strh r8, [r3, r6] @ movhi 24103 bhi .L3888 24104 mov r2, #0 24105 mov r1, #1 24106 mov r0, r7 24107 bl gc_add_sblk 24108 b .L3888 24109.L3905: 24110 ldr r3, [sp, #8] 24111 ldr r0, [r3, fp, lsl #2] 24112 cmn r0, #1 24113 beq .L3903 24114 bl lpa_hash_get_ppa 24115 cmn r0, #1 24116 str r0, [sp, #20] 24117 bne .L3904 24118 ldr r3, [sp, #8] 24119 mov r2, #0 24120 add r1, sp, #20 24121 ldr r0, [r3, fp, lsl #2] 24122 bl pm_log2phys 24123.L3904: 24124 ldr r2, .L3922+28 24125 mov r3, #1 24126 ldr r0, [sp, #20] 24127 ldrb r1, [r6, #-3136] @ zero_extendqisi2 24128 ldrh ip, [r2] 24129 ldrb r2, [r4, #1153] @ zero_extendqisi2 24130 rsb r2, r2, #24 24131 sub r2, r2, ip 24132 lsl r2, r3, r2 24133 sub r2, r2, #1 24134 and r0, r2, r0, lsr ip 24135 bl __aeabi_uidiv 24136 cmp r5, r0 24137 addeq r8, r8, #1 24138 uxtheq r8, r8 24139.L3903: 24140 add fp, fp, #1 24141 b .L3902 24142.L3923: 24143 .align 2 24144.L3922: 24145 .word .LANCHOR0 24146 .word .LANCHOR1+2431 24147 .word .LC0 24148 .word .LANCHOR3 24149 .word -178307901 24150 .word .LANCHOR2 24151 .word .LC255 24152 .word .LANCHOR3-3138 24153 .fnend 24154 .size gc_block_vpn_scan, .-gc_block_vpn_scan 24155 .align 2 24156 .global ftl_sblk_dump 24157 .syntax unified 24158 .arm 24159 .fpu softvfp 24160 .type ftl_sblk_dump, %function 24161ftl_sblk_dump: 24162 .fnstart 24163 @ args = 0, pretend = 0, frame = 80 24164 @ frame_needed = 0, uses_anonymous_args = 0 24165 push {r4, r5, r6, r7, r8, r9, r10, fp, lr} 24166 .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} 24167 lsl r3, r0, #2 24168 ldr r4, .L3961 24169 .pad #124 24170 sub sp, sp, #124 24171 lsl r2, r0, #2 24172 mov r7, r0 24173 str r3, [sp, #68] 24174 ldr r3, [r4, #1084] 24175 str r1, [sp, #60] 24176 ldr r1, [r3, r0, lsl #2] 24177 add r2, r3, r2 24178 ldrb r2, [r2, #2] @ zero_extendqisi2 24179 ubfx r1, r1, #11, #8 24180 str r1, [sp, #4] 24181 lsl r1, r0, #2 24182 ldrh r3, [r3, r1] 24183 mov r1, r0 24184 ldr r0, .L3961+4 24185 ubfx r3, r3, #0, #11 24186 str r3, [sp] 24187 ubfx r3, r2, #3, #2 24188 lsr r2, r2, #5 24189 bl printk 24190 movw r3, #65535 24191 cmp r7, r3 24192 beq .L3947 24193 movw r3, #1080 24194 ldrh r3, [r4, r3] 24195 cmp r3, r7 24196 bls .L3947 24197 ldr r3, [r4, #1084] 24198 lsl r2, r7, #2 24199 add r1, sp, #104 24200 strh r7, [sp, #88] @ movhi 24201 mov r0, r7 24202 mov r5, #0 24203 add r3, r3, r2 24204 mov fp, r5 24205 ldrb r3, [r3, #2] @ zero_extendqisi2 24206 and r3, r3, #224 24207 cmp r3, #160 24208 ldreq r3, .L3961+8 24209 movne r9, #1 24210 ldrbeq r9, [r3, #-3128] @ zero_extendqisi2 24211 bl ftl_get_blk_list_in_sblk 24212 ldr r3, .L3961+12 24213 uxtb r0, r0 24214 lsl r2, r7, #2 24215 strh r5, [sp, #90] @ movhi 24216 strb r0, [sp, #97] 24217 mov r1, r7 24218 ldrh r3, [r3, #-8] 24219 strb r5, [sp, #93] 24220 strh r5, [sp, #98] @ movhi 24221 smulbb r3, r3, r0 24222 strh r3, [sp, #94] @ movhi 24223 ldr r3, [r4, #1084] 24224 add r3, r3, r2 24225 ldrb r2, [r3, #2] @ zero_extendqisi2 24226 mov r3, r9 24227 str r0, [sp] 24228 ldr r0, .L3961+16 24229 lsr r2, r2, #5 24230 bl printk 24231 mov r0, #1 24232 bl buf_alloc 24233 mov r6, r0 24234 str r5, [sp, #44] 24235 str r5, [sp, #52] 24236.L3927: 24237 ldr r3, .L3961+20 24238 ldrh r2, [r3] 24239 uxth r3, r5 24240 cmp r2, r3 24241 bls .L3944 24242 str r3, [sp, #72] 24243 lsl r3, r3, #1 24244 sub r2, r3, #1 24245 str r2, [sp, #76] 24246 uxth r2, r5 24247 add r3, r3, r2 24248 sub r3, r3, #1 24249 str r3, [sp, #64] 24250 mov r3, #0 24251 b .L3960 24252.L3941: 24253 ldrh r3, [sp, #48] 24254 add r2, sp, #120 24255 add r3, r2, r3, lsl #1 24256 ldrh r3, [r3, #-16] 24257 str r3, [sp, #56] 24258 movw r3, #65535 24259 ldr r2, [sp, #56] 24260 cmp r2, r3 24261 beq .L3928 24262 ldr r3, .L3961+24 24263 cmp r9, #3 24264 ldrh r4, [r3, #-2] 24265 mul r3, r2, r4 24266 bne .L3929 24267 ldr r2, .L3961 24268 ldrb r1, [r2, #1158] @ zero_extendqisi2 24269 cmp r1, #0 24270 ldrne r2, [sp, #64] 24271 bne .L3958 24272 ldrb r2, [r2, #1159] @ zero_extendqisi2 24273 lsl r4, r8, #24 24274 cmp r2, #0 24275 ldrne r2, [sp, #64] 24276 uxtaheq r3, r3, r5 24277 addne r3, r3, r2 24278 addne r3, r3, r8 24279 orr r4, r4, r3 24280.L3931: 24281 mov r1, #1 24282 str r4, [r6, #24] 24283 mov r0, r6 24284 bl sblk_read_page 24285 ldr r2, [r6, #12] 24286 ldr r3, [r6, #4] 24287 ldr r10, [r6, #36] 24288 ldr r1, [r2, #12] 24289 ldr r0, .L3961+28 24290 str r1, [sp, #32] 24291 ldr r1, [r2, #8] 24292 str r1, [sp, #28] 24293 ldr r1, [r2, #4] 24294 str r1, [sp, #24] 24295 ldr r2, [r2] 24296 ldr r1, [sp, #56] 24297 str r2, [sp, #20] 24298 ldr r2, [r3, #12] 24299 str r2, [sp, #16] 24300 ldr r2, [r3, #8] 24301 str r2, [sp, #12] 24302 ldr r2, [r3, #4] 24303 str r2, [sp, #8] 24304 ldr r3, [r3] 24305 ldr r2, [sp, #72] 24306 str r10, [sp] 24307 str r3, [sp, #4] 24308 mov r3, r4 24309 bl printk 24310 ldr r3, [sp, #52] 24311 cmn r10, #1 24312 cmpne r10, #512 24313 moveq r3, #1 24314 ldr r0, .L3961+32 24315 str r3, [sp, #52] 24316 ldr r3, .L3961+36 24317 ldr r3, [r3, #4] 24318 blx r3 24319 ldr r3, .L3961 24320 ldr r2, [sp, #68] 24321 ldr r3, [r3, #1084] 24322 add r3, r3, r2 24323 ldrb r2, [r3, #2] @ zero_extendqisi2 24324 and r2, r2, #224 24325 cmp r2, #32 24326 cmpne r2, #224 24327 moveq r10, #1 24328 movne r10, #0 24329 beq .L3928 24330 ldr r3, [r6, #12] 24331 ldr r0, [r3, #4] 24332 bl lpa_hash_get_ppa 24333 cmn r0, #1 24334 str r0, [sp, #84] 24335 bne .L3935 24336 ldr r3, [r6, #12] 24337 mov r2, r10 24338 add r1, sp, #84 24339 ldr r0, [r3, #4] 24340 bl pm_log2phys 24341.L3935: 24342 ldr r3, [sp, #84] 24343 cmp r4, r3 24344 bne .L3936 24345 ldr r3, [sp, #44] 24346 mov r1, r4 24347 ldr r2, [r6, #12] 24348 ldr r0, .L3961+40 24349 add r3, r3, #1 24350 ldr r2, [r2, #4] 24351 str r3, [sp, #44] 24352 bl printk 24353.L3936: 24354 ldr r3, [sp, #60] 24355 cmp r3, #0 24356 beq .L3938 24357 ldr r2, [r3, fp, lsl #2] 24358 lsl r4, fp, #2 24359 ldr r3, [r6, #12] 24360 ldr r3, [r3, #4] 24361 cmp r3, r2 24362 beq .L3939 24363 ldr r3, .L3961+44 24364 ldr r3, [r3] 24365 tst r3, #4096 24366 beq .L3939 24367 mov r1, fp 24368 ldr r0, .L3961+48 24369 bl printk 24370.L3939: 24371 ldr r3, [sp, #60] 24372 ldr r2, [r6, #12] 24373 ldr r3, [r3, r4] 24374 ldr r2, [r2, #4] 24375 cmp r2, r3 24376 cmnne r3, #1 24377 beq .L3938 24378 movw r2, #1575 24379 ldr r1, .L3961+52 24380 ldr r0, .L3961+56 24381 bl printk 24382 bl dump_stack 24383.L3938: 24384 add fp, fp, #1 24385.L3928: 24386 add r8, r8, #1 24387 uxth r8, r8 24388.L3943: 24389 cmp r9, r8 24390 bcs .L3941 24391 ldr r3, [sp, #48] 24392 add r3, r3, #1 24393.L3960: 24394 str r3, [sp, #48] 24395 ldrb r2, [sp, #97] @ zero_extendqisi2 24396 ldrh r3, [sp, #48] 24397 cmp r2, r3 24398 bls .L3942 24399 mov r8, #1 24400 b .L3943 24401.L3929: 24402 cmp r9, #2 24403 uxtahne r4, r3, r5 24404 bne .L3931 24405 ldr r2, [sp, #76] 24406.L3958: 24407 add r4, r3, r2 24408 ldr r2, .L3961+8 24409 add r3, r4, r8 24410 ldrb r4, [r2, #-3128] @ zero_extendqisi2 24411 orr r4, r3, r4, lsl #24 24412 b .L3931 24413.L3942: 24414 add r5, r5, #1 24415 b .L3927 24416.L3944: 24417 mov r0, r6 24418 bl zbuf_free 24419 ldr r3, .L3961 24420 lsl r2, r7, #1 24421 ldr r0, .L3961+60 24422 ldr r1, [r3, #1092] 24423 ldr r3, [sp, #44] 24424 ldrh r2, [r1, r2] 24425 mov r1, r7 24426 bl printk 24427 ldr r0, [sp, #52] 24428.L3924: 24429 add sp, sp, #124 24430 @ sp needed 24431 pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} 24432.L3947: 24433 mov r0, #0 24434 b .L3924 24435.L3962: 24436 .align 2 24437.L3961: 24438 .word .LANCHOR0 24439 .word .LC256 24440 .word .LANCHOR3 24441 .word .LANCHOR3-3088 24442 .word .LC257 24443 .word .LANCHOR3-3096 24444 .word .LANCHOR3-3072 24445 .word .LC195 24446 .word 644245000 24447 .word arm_delay_ops 24448 .word .LC258 24449 .word .LANCHOR2 24450 .word .LC259 24451 .word .LANCHOR1+2449 24452 .word .LC0 24453 .word .LC260 24454 .fnend 24455 .size ftl_sblk_dump, .-ftl_sblk_dump 24456 .align 2 24457 .global zftl_read 24458 .syntax unified 24459 .arm 24460 .fpu softvfp 24461 .type zftl_read, %function 24462zftl_read: 24463 .fnstart 24464 @ args = 0, pretend = 0, frame = 48 24465 @ frame_needed = 0, uses_anonymous_args = 0 24466 push {r4, r5, r6, r7, r8, r9, r10, fp, lr} 24467 .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} 24468 mov r7, r3 24469 ldr r3, .L4026 24470 .pad #76 24471 sub sp, sp, #76 24472 mov r4, r0 24473 mov r6, r1 24474 str r2, [sp, #24] 24475 ldr r3, [r3] 24476 tst r3, #4096 24477 beq .L3964 24478 mov r3, r2 24479 mov r2, r1 24480 mov r1, r0 24481 ldr r0, .L4026+4 24482 bl printk 24483.L3964: 24484 cmp r4, #0 24485 bne .L3965 24486 ldr r3, .L4026+8 24487 mov r4, #24576 24488 ldr r3, [r3, #1032] 24489.L3966: 24490 ldr r2, [sp, #24] 24491 cmp r3, r2 24492 cmpcs r3, r6 24493 movls r5, #1 24494 movhi r5, #0 24495 bls .L3995 24496 add r2, r6, r2 24497 cmp r3, r2 24498 bcc .L3995 24499 add r3, r4, r6 24500 ldr r4, .L4026+8 24501 str r3, [sp, #28] 24502 ldr r1, [sp, #24] 24503 ldr r2, [r4, #2800] 24504 ldr r0, [sp, #28] 24505 ldr r3, [r2, #24] 24506 add r3, r3, r1 24507 str r3, [r2, #24] 24508 ldr r3, .L4026+12 24509 ldrb r6, [r3, #-2546] @ zero_extendqisi2 24510 mov r1, r6 24511 bl __aeabi_uidiv 24512 ldr r3, [sp, #24] 24513 mov r1, r6 24514 ldr r2, [sp, #28] 24515 str r0, [sp, #36] 24516 add r3, r3, r2 24517 sub r0, r3, #1 24518 str r3, [sp, #44] 24519 bl __aeabi_uidiv 24520 ldr r3, [sp, #36] 24521 str r5, [sp, #40] 24522 ldr r6, [sp, #36] 24523 ldr r5, .L4026+12 24524 rsb r3, r3, #1 24525 add r3, r3, r0 24526 str r0, [sp, #48] 24527 str r3, [sp, #32] 24528.L3968: 24529 ldr r3, [sp, #32] 24530 cmp r3, #0 24531 bne .L3992 24532 bl timer_get_time 24533 str r0, [r5, #-8] 24534 ldr r0, [sp, #40] 24535.L3963: 24536 add sp, sp, #76 24537 @ sp needed 24538 pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} 24539.L3965: 24540 cmp r4, #3 24541 bhi .L3995 24542 lsl r4, r4, #13 24543 mov r3, #8192 24544 b .L3966 24545.L3992: 24546 ldr r3, [sp, #36] 24547 ldr r2, [sp, #48] 24548 ldrb r1, [r5, #-2546] @ zero_extendqisi2 24549 cmp r6, r2 24550 cmpne r6, r3 24551 moveq r10, #1 24552 movne r10, #0 24553 uxth r8, r1 24554 bne .L3969 24555 cmp r6, r3 24556 bne .L3970 24557 ldr r0, [sp, #28] 24558 bl __aeabi_uidivmod 24559 uxth r10, r1 24560 ldr r3, [sp, #24] 24561 sub r8, r8, r10 24562 uxth r8, r8 24563 cmp r3, r8 24564 ldrhcc r8, [sp, #24] 24565.L3969: 24566 ldr r2, .L4026+16 24567 mov r3, #0 24568 mov r9, r2 24569.L3973: 24570 ldr r1, [r2, #20] 24571 cmp r6, r1 24572 bne .L3971 24573 ldrb r1, [r2, #2] @ zero_extendqisi2 24574 tst r1, #8 24575 beq .L3971 24576 mov r2, #48 24577 lsl r8, r8, #9 24578 mov r0, r7 24579 mla r3, r2, r3, r4 24580 add r7, r7, r8 24581 mov r2, r8 24582 ldr r1, [r3, #1236] 24583 add r1, r1, r10, lsl #9 24584 bl ftl_memcpy 24585.L3972: 24586 ldr r3, [sp, #32] 24587 add r6, r6, #1 24588 sub r3, r3, #1 24589 str r3, [sp, #32] 24590.L3979: 24591 ldrb r3, [r4, #2769] @ zero_extendqisi2 24592 ldr r2, [sp, #32] 24593 cmp r2, #0 24594 cmpne r3, #2 24595 bhi .L3968 24596 ldrb r1, [r5, #-2535] @ zero_extendqisi2 24597 cmp r1, #0 24598 beq .L3968 24599 ldrb r0, [r5, #-2536] @ zero_extendqisi2 24600 add r0, r0, r0, lsl #1 24601 add r0, r9, r0, lsl #4 24602 bl sblk_read_page 24603.L3981: 24604 ldrb r3, [r5, #-2535] @ zero_extendqisi2 24605 cmp r3, #0 24606 bne .L3991 24607 mvn r2, #0 24608 strb r3, [r5, #-2535] 24609 strb r2, [r5, #-2536] 24610 b .L3968 24611.L3970: 24612 ldr r3, [sp, #28] 24613 mov r10, #0 24614 ldr r2, [sp, #24] 24615 add r8, r3, r2 24616 mls r1, r6, r1, r8 24617 uxtb r8, r1 24618 b .L3969 24619.L3971: 24620 add r3, r3, #1 24621 add r2, r2, #48 24622 cmp r3, #32 24623 bne .L3973 24624 mov r0, r6 24625 bl lpa_hash_get_ppa 24626 cmn r0, #1 24627 str r0, [sp, #68] 24628 bne .L3974 24629 mov r2, #0 24630 add r1, sp, #68 24631 mov r0, r6 24632 bl pm_log2phys 24633.L3974: 24634 ldr r3, [sp, #68] 24635 cmn r3, #1 24636 moveq r8, #0 24637 beq .L3976 24638 mov r0, #0 24639 bl buf_alloc 24640 subs r3, r0, #0 24641 beq .L3979 24642 ldr r1, [r4, #2800] 24643 ldr r2, [r1, #40] 24644 add r2, r2, #1 24645 str r2, [r1, #40] 24646 ldr r2, [sp, #68] 24647 str r7, [r3, #8] 24648 add r7, r7, r8, lsl #9 24649 str r6, [r3, #20] 24650 str r2, [r3, #24] 24651 str r2, [r3, #28] 24652 strb r8, [r3, #40] 24653 strb r10, [r3, #41] 24654 bl zftl_add_read_buf 24655 b .L3972 24656.L3978: 24657 mla r3, r3, r6, r8 24658 ldr r2, [sp, #28] 24659 ldr r1, [sp, #44] 24660 cmp r2, r3 24661 movls r2, #1 24662 movhi r2, #0 24663 cmp r1, r3 24664 movls r2, #0 24665 cmp r2, #0 24666 beq .L3977 24667 mov r0, r7 24668 add r7, r7, #512 24669 mov r2, #512 24670 mov r1, #0 24671 bl ftl_memset 24672.L3977: 24673 add r8, r8, #1 24674.L3976: 24675 ldrb r3, [r5, #-2546] @ zero_extendqisi2 24676 cmp r8, r3 24677 bcc .L3978 24678 b .L3972 24679.L3991: 24680 ldrb r3, [r5, #-2536] @ zero_extendqisi2 24681 cmp r3, #255 24682 bne .L3982 24683 movw r2, #1284 24684 ldr r1, .L4026+20 24685 ldr r0, .L4026+24 24686 bl printk 24687 bl dump_stack 24688.L3982: 24689 ldr r3, .L4026+12 24690 ldr r1, .L4026+12 24691 ldrb r9, [r3, #-2536] @ zero_extendqisi2 24692 ldr r3, .L4026+16 24693 add r2, r9, r9, lsl #1 24694 add r3, r3, r2, lsl #4 24695 mov r2, #48 24696 mla r2, r2, r9, r4 24697 str r3, [sp, #52] 24698 ldr r10, [r2, #1268] 24699 ldrb r3, [r2, #1232] @ zero_extendqisi2 24700 cmn r10, #1 24701 strb r3, [r1, #-2536] 24702 bne .L3983 24703 ldr r2, [r4, #1096] 24704 str r10, [sp, #40] 24705 ldr r3, [r2, #552] 24706 add r3, r3, #1 24707 str r3, [r2, #552] 24708.L3984: 24709 mov r1, #48 24710 cmn r10, #1 24711 mla r1, r1, r9, r4 24712 movne r2, #0 24713 moveq r2, #1 24714 ldr r3, [r1, #1244] 24715 ldr r0, [r1, #1252] 24716 ldr ip, [r3, #4] 24717 cmp ip, r0 24718 orrne r2, r2, #1 24719 cmp r2, #0 24720 beq .L3985 24721 ldrb r0, [r4, #1153] @ zero_extendqisi2 24722 mvn ip, #0 24723 ldr lr, [r1, #1256] 24724 ldrb fp, [r1, #1272] @ zero_extendqisi2 24725 ldrb r8, [r5, #-2546] @ zero_extendqisi2 24726 mvn ip, ip, lsl r0 24727 ldr r10, [r1, #1236] 24728 ldr r2, [r1, #1240] 24729 rsb r1, r0, #24 24730 and r0, ip, lr, lsr r1 24731 cmp fp, r8 24732 movcc r2, r10 24733 str r8, [sp] 24734 bic r1, lr, ip, lsl r1 24735 uxtb r0, r0 24736 bl flash_read_page_en 24737 mov r10, r0 24738.L3985: 24739 mov r8, #48 24740 cmn r10, #1 24741 mla r8, r8, r9, r4 24742 movne fp, #0 24743 moveq fp, #1 24744 ldr r3, [r8, #1244] 24745 ldr r2, [r8, #1252] 24746 ldr r3, [r3, #4] 24747 cmp r3, r2 24748 moveq r3, fp 24749 orrne r3, fp, #1 24750 cmp r3, #0 24751 beq .L3987 24752 ldr r2, [r4, #1096] 24753 ldr r0, .L4026+28 24754 ldr r3, [r2, #552] 24755 add r3, r3, #1 24756 str r3, [r2, #552] 24757 ldr r3, [r8, #1244] 24758 ldrb r1, [r8, #1233] @ zero_extendqisi2 24759 ldr r2, [r3, #12] 24760 str r2, [sp, #16] 24761 ldr r2, [r3, #8] 24762 str r2, [sp, #12] 24763 ldr r2, [r3, #4] 24764 str r2, [sp, #8] 24765 mov r2, r10 24766 ldr r3, [r3] 24767 str r3, [sp, #4] 24768 ldr r3, [r8, #1256] 24769 str r3, [sp] 24770 ldr r3, [r8, #1252] 24771 bl printk 24772 ldr r3, .L4026+32 24773 ldr r2, [r8, #1256] 24774 ldrb r1, [r5, #-3136] @ zero_extendqisi2 24775 ldrh r0, [r3, #-2] 24776 ldrb r3, [r4, #1153] @ zero_extendqisi2 24777 lsr r2, r2, r0 24778 rsb r3, r3, #24 24779 sub r3, r3, r0 24780 mvn r0, #0 24781 bic r0, r2, r0, lsl r3 24782 bl __aeabi_uidiv 24783 mov r1, #0 24784 uxth r0, r0 24785 bl ftl_sblk_dump 24786.L3987: 24787 mov r3, #48 24788 mla r3, r3, r9, r4 24789 ldr r2, [r3, #1244] 24790 ldr r3, [r3, #1252] 24791 ldr r2, [r2, #4] 24792 cmp r2, r3 24793 orrne fp, fp, #1 24794 cmp fp, #0 24795 beq .L3988 24796 movw r2, #1320 24797 ldr r1, .L4026+20 24798 ldr r0, .L4026+24 24799 bl printk 24800 bl dump_stack 24801.L3988: 24802 mov r3, #48 24803 mla r9, r3, r9, r4 24804 ldrb r3, [r5, #-2546] @ zero_extendqisi2 24805 ldrb r2, [r9, #1272] @ zero_extendqisi2 24806 cmp r3, r2 24807 ldrbls r3, [r9, #1234] @ zero_extendqisi2 24808 bicls r3, r3, #8 24809 strbls r3, [r9, #1234] 24810 bls .L3990 24811 ldrb r1, [r9, #1273] @ zero_extendqisi2 24812 lsl r2, r2, #9 24813 ldr r3, [r9, #1236] 24814 ldr r0, [r9, #1240] 24815 add r1, r3, r1, lsl #9 24816 bl ftl_memcpy 24817.L3990: 24818 ldr r1, [sp, #52] 24819 ldr r0, .L4026+36 24820 bl buf_remove_buf 24821 ldr r0, [sp, #52] 24822 bl zbuf_free 24823 ldrb r3, [r5, #-2535] @ zero_extendqisi2 24824 sub r3, r3, #1 24825 strb r3, [r5, #-2535] 24826 b .L3981 24827.L3983: 24828 cmp r10, #256 24829 bne .L3984 24830 ldr r1, .L4026+40 24831 mov fp, #1 24832 ldrb r0, [r4, #1153] @ zero_extendqisi2 24833 ldr r3, [r2, #1256] 24834 ldrh ip, [r1] 24835 rsb r0, r0, #24 24836 str r2, [sp, #60] 24837 ldr r2, .L4026+12 24838 sub r0, r0, ip 24839 str r3, [sp, #56] 24840 lsl r0, fp, r0 24841 ldrb r1, [r2, #-3136] @ zero_extendqisi2 24842 sub r0, r0, #1 24843 and r0, r0, r3, lsr ip 24844 bl __aeabi_uidiv 24845 ldr r2, [sp, #60] 24846 mov r8, r0 24847 uxth r1, r0 24848 ldr r3, [sp, #56] 24849 ldr r0, .L4026+44 24850 ldr r2, [r2, #1252] 24851 bl printk 24852 mov r2, #0 24853 mov r1, fp 24854 uxth r0, r8 24855 bl gc_add_sblk 24856 b .L3984 24857.L3995: 24858 mvn r0, #0 24859 b .L3963 24860.L4027: 24861 .align 2 24862.L4026: 24863 .word .LANCHOR2 24864 .word .LC261 24865 .word .LANCHOR0 24866 .word .LANCHOR3 24867 .word .LANCHOR0+1232 24868 .word .LANCHOR1+2463 24869 .word .LC0 24870 .word .LC263 24871 .word .LANCHOR3-3136 24872 .word .LANCHOR0+2771 24873 .word .LANCHOR3-3138 24874 .word .LC262 24875 .fnend 24876 .size zftl_read, .-zftl_read 24877 .align 2 24878 .global zftl_vendor_read 24879 .syntax unified 24880 .arm 24881 .fpu softvfp 24882 .type zftl_vendor_read, %function 24883zftl_vendor_read: 24884 .fnstart 24885 @ args = 0, pretend = 0, frame = 0 24886 @ frame_needed = 0, uses_anonymous_args = 0 24887 @ link register save eliminated. 24888 mov r3, r2 24889 mov r2, r1 24890 add r1, r0, #512 24891 mov r0, #2 24892 b zftl_read 24893 .fnend 24894 .size zftl_vendor_read, .-zftl_vendor_read 24895 .align 2 24896 .global zftl_sys_read 24897 .syntax unified 24898 .arm 24899 .fpu softvfp 24900 .type zftl_sys_read, %function 24901zftl_sys_read: 24902 .fnstart 24903 @ args = 0, pretend = 0, frame = 0 24904 @ frame_needed = 0, uses_anonymous_args = 0 24905 @ link register save eliminated. 24906 mov r3, r2 24907 mov r2, r1 24908 mov r1, r0 24909 mov r0, #2 24910 b zftl_read 24911 .fnend 24912 .size zftl_sys_read, .-zftl_sys_read 24913 .align 2 24914 .syntax unified 24915 .arm 24916 .fpu softvfp 24917 .type zftl_debug_proc_write, %function 24918zftl_debug_proc_write: 24919 .fnstart 24920 @ args = 0, pretend = 0, frame = 96 24921 @ frame_needed = 0, uses_anonymous_args = 0 24922 push {r4, r5, r6, r7, r8, r9, r10, fp, lr} 24923 .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} 24924 cmp r2, #79 24925 .pad #132 24926 sub sp, sp, #132 24927 mvnhi r0, #21 24928 add r6, sp, #48 24929 str r6, [sp, #44] 24930 bhi .L4030 24931 mov r0, r6 24932 mov r4, r2 24933 bl rk_copy_from_user 24934 cmp r0, #0 24935 mvnne r0, #13 24936 bne .L4030 24937 add r3, sp, #128 24938 mov r1, r6 24939 add r3, r3, r4 24940 strb r0, [r3, #-80] 24941 ldr r0, .L4056 24942 bl printk 24943 mov r3, #16 24944 mov r2, #1 24945 mov r1, r6 24946 ldr r0, .L4056+4 24947 bl rknand_print_hex 24948 bl rknand_device_lock 24949 mov r2, #7 24950 ldr r1, .L4056+8 24951 mov r0, r6 24952 bl memcmp 24953 subs r7, r0, #0 24954 bne .L4032 24955 ldr r5, .L4056+12 24956 movw r3, #698 24957 mov r2, #4 24958 ldr r0, .L4056+16 24959 ldr r6, .L4056+20 24960 movw r8, #65535 24961 ldr r1, [r5, #2800] 24962 ldrh r3, [r1, r3] 24963 add r1, r1, #704 24964 bl rknand_print_hex 24965 ldr r1, [r5, #2800] 24966 mov r2, #2 24967 ldrh r3, [r6, #-176] 24968 ldr r0, .L4056+24 24969 add r1, r1, #416 24970 bl rknand_print_hex 24971.L4033: 24972 ldrh r3, [r6, #-176] 24973 cmp r7, r3 24974 blt .L4035 24975.L4036: 24976 bl rknand_device_unlock 24977 mov r0, r4 24978.L4030: 24979 add sp, sp, #132 24980 @ sp needed 24981 pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} 24982.L4035: 24983 mov r0, #300 24984 bl msleep 24985 ldr r2, [r5, #2800] 24986 add r3, r7, #208 24987 lsl r3, r3, #1 24988 ldrh r0, [r2, r3] 24989 cmp r0, r8 24990 beq .L4034 24991 mov r1, #0 24992 bl ftl_sblk_dump 24993.L4034: 24994 add r7, r7, #1 24995 b .L4033 24996.L4032: 24997 mov r2, #7 24998 ldr r1, .L4056+28 24999 mov r0, r6 25000 bl memcmp 25001 subs r5, r0, #0 25002 bne .L4037 25003 ldr r8, .L4056+12 25004 movw r3, #698 25005 mov r2, #4 25006 ldr r0, .L4056+16 25007 ldr r7, .L4056+20 25008 ldr r1, [r8, #2800] 25009 ldr r10, .L4056+32 25010 ldr fp, .L4056+36 25011 ldrh r3, [r1, r3] 25012 add r1, r1, #704 25013 bl rknand_print_hex 25014 ldr r1, [r8, #2800] 25015 mov r2, #2 25016 ldrh r3, [r7, #-176] 25017 ldr r0, .L4056+24 25018 add r1, r1, #416 25019 bl rknand_print_hex 25020 mov r0, #50 25021 bl msleep 25022 ldr r0, .L4056+40 25023 add r6, sp, #128 25024 add r1, sp, #55 25025 str r1, [r6, #-84]! 25026 bl printk 25027 mov r1, r6 25028 ldr r0, [sp, #44] 25029 bl rk_simple_strtoull.constprop.33 25030 str r8, [sp, #36] 25031 uxth r3, r0 25032 ldr r8, .L4056+44 25033 mov r6, r0 25034 str r0, [sp, #40] 25035 str r3, [sp, #32] 25036.L4039: 25037 add r9, r8, r5 25038 ldrh r1, [r8, r5] 25039 ldrh r2, [r9, #2] 25040 mov r0, r10 25041 bl printk 25042 ldrh r3, [r5, r8] 25043 ldr r2, [sp, #32] 25044 cmp r3, r2 25045 bne .L4038 25046 ldrb r3, [r7, #-2546] @ zero_extendqisi2 25047 mov r0, fp 25048 mov r2, #4 25049 ldr r1, [r9, #4] 25050 lsl r3, r3, #7 25051 bl rknand_print_hex 25052 mov r0, #50 25053 bl msleep 25054.L4038: 25055 add r5, r5, #8 25056 cmp r5, #256 25057 bne .L4039 25058 mov r0, #300 25059 uxth r6, r6 25060 bl msleep 25061 mov r0, #1 25062 add r6, r6, #176 25063 bl buf_alloc 25064 ldr r3, [sp, #36] 25065 mov r5, r0 25066 mov r1, #1 25067 ldr r3, [r3, #2800] 25068 ldr r3, [r3, r6, lsl #2] 25069 str r3, [r0, #24] 25070 str r3, [sp, #40] 25071 bl sblk_read_page 25072 ldr r2, [r5, #12] 25073 ldr r3, [r5, #4] 25074 ldr r0, .L4056+48 25075 ldr r1, [r2, #12] 25076 str r1, [sp, #24] 25077 ldr r1, [r2, #8] 25078 str r1, [sp, #20] 25079 ldr r1, [r2, #4] 25080 str r1, [sp, #16] 25081 ldr r2, [r2] 25082 ldr r1, [sp, #40] 25083 str r2, [sp, #12] 25084 ldr r2, [r3, #12] 25085 str r2, [sp, #8] 25086 ldr r2, [r3, #8] 25087 str r2, [sp, #4] 25088 ldr r2, [r3, #4] 25089 str r2, [sp] 25090 ldr r3, [r3] 25091 ldr r2, [r5, #36] 25092 bl printk 25093 ldrb r3, [r7, #-2546] @ zero_extendqisi2 25094 mov r2, #4 25095 ldr r1, [r5, #4] 25096 ldr r0, .L4056+52 25097 lsl r3, r3, #7 25098.L4055: 25099 bl rknand_print_hex 25100 mov r0, r5 25101 bl zbuf_free 25102 b .L4036 25103.L4037: 25104 mov r2, #7 25105 ldr r1, .L4056+56 25106 mov r0, r6 25107 bl memcmp 25108 cmp r0, #0 25109 bne .L4040 25110 bl dump_ftl_info 25111 b .L4036 25112.L4040: 25113 mov r2, #9 25114 ldr r1, .L4056+60 25115 mov r0, r6 25116 bl memcmp 25117 cmp r0, #0 25118 bne .L4041 25119 add r1, sp, #128 25120 add r0, sp, #57 25121 str r0, [r1, #-84]! 25122 bl rk_simple_strtoull.constprop.33 25123 ldr r3, .L4056+64 25124 str r0, [sp, #40] 25125 strh r0, [r3, #-4] @ movhi 25126 bl dump_all_list_info 25127 b .L4036 25128.L4041: 25129 mov r2, #8 25130 ldr r1, .L4056+68 25131 mov r0, r6 25132 bl memcmp 25133 cmp r0, #0 25134 beq .L4036 25135 mov r2, #8 25136 ldr r1, .L4056+72 25137 mov r0, r6 25138 bl memcmp 25139 cmp r0, #0 25140 bne .L4043 25141 add r5, sp, #128 25142 add r1, sp, #56 25143 ldr r0, .L4056+40 25144 str r1, [r5, #-84]! 25145 bl printk 25146 mov r1, r5 25147 ldr r0, [sp, #44] 25148 bl rk_simple_strtoull.constprop.33 25149 str r0, [sp, #40] 25150 mov r0, #1 25151 bl buf_alloc 25152 ldr r3, [sp, #40] 25153 mov r5, r0 25154 mov r1, #1 25155 ldr r6, .L4056+20 25156 str r3, [r0, #24] 25157 bl sblk_read_page 25158 ldr r2, [r5, #12] 25159 ldr r3, [r5, #4] 25160 ldr r0, .L4056+48 25161 ldr r1, [r2, #12] 25162 str r1, [sp, #24] 25163 ldr r1, [r2, #8] 25164 str r1, [sp, #20] 25165 ldr r1, [r2, #4] 25166 str r1, [sp, #16] 25167 ldr r2, [r2] 25168 ldr r1, [sp, #40] 25169 str r2, [sp, #12] 25170 ldr r2, [r3, #12] 25171 str r2, [sp, #8] 25172 ldr r2, [r3, #8] 25173 str r2, [sp, #4] 25174 ldr r2, [r3, #4] 25175 str r2, [sp] 25176 ldr r3, [r3] 25177 ldr r2, [r5, #36] 25178 bl printk 25179 ldrb r3, [r6, #-2546] @ zero_extendqisi2 25180 mov r2, #4 25181 ldr r1, [r5, #4] 25182 ldr r0, .L4056+76 25183 lsl r3, r3, #7 25184 bl rknand_print_hex 25185 ldrb r3, [r6, #-2546] @ zero_extendqisi2 25186 mov r2, #4 25187 ldr r1, [r5, #12] 25188 ldr r0, .L4056+80 25189 lsl r3, r3, #1 25190 b .L4055 25191.L4043: 25192 mov r2, #8 25193 ldr r1, .L4056+84 25194 mov r0, r6 25195 bl memcmp 25196 subs r7, r0, #0 25197 bne .L4044 25198 add r5, sp, #128 25199 add r1, sp, #56 25200 ldr r0, .L4056+40 25201 str r1, [r5, #-84]! 25202 bl printk 25203 mov r1, r5 25204 ldr r0, [sp, #44] 25205 bl rk_simple_strtoull.constprop.33 25206 mov r1, r7 25207 str r0, [sp, #40] 25208 uxth r0, r0 25209 bl ftl_sblk_dump 25210 b .L4036 25211.L4044: 25212 mov r2, #10 25213 ldr r1, .L4056+88 25214 mov r0, r6 25215 bl memcmp 25216 cmp r0, #0 25217 bne .L4045 25218 add r1, sp, #58 25219 add r5, sp, #128 25220 ldr r0, .L4056+40 25221 str r1, [r5, #-84]! 25222 bl printk 25223 mov r1, r5 25224 ldr r0, [sp, #44] 25225 bl rk_simple_strtoull.constprop.33 25226 ldr r3, .L4056+92 25227 str r0, [sp, #40] 25228 str r0, [r3] 25229 b .L4036 25230.L4045: 25231 mov r0, r6 25232 mov r2, #8 25233 ldr r1, .L4056+96 25234 bl memcmp 25235 subs r6, r0, #0 25236 bne .L4046 25237 add r5, sp, #128 25238 add r1, sp, #56 25239 ldr r0, .L4056+40 25240 str r1, [r5, #-84]! 25241 bl printk 25242 mov r1, r5 25243 ldr r0, [sp, #44] 25244 bl rk_simple_strtoull.constprop.33 25245 mov r5, r0 25246 bl lpa_hash_get_ppa 25247 cmn r0, #1 25248 str r0, [sp, #40] 25249 bne .L4047 25250 mov r2, r6 25251 add r1, sp, #40 25252 mov r0, r5 25253 bl pm_log2phys 25254.L4047: 25255 ldr r2, [sp, #40] 25256 mov r1, r5 25257 ldr r0, .L4056+100 25258 bl printk 25259 b .L4036 25260.L4046: 25261 ldr r0, .L4056+104 25262 bl printk 25263 ldr r0, .L4056+108 25264 bl printk 25265 ldr r0, .L4056+112 25266 bl printk 25267 ldr r0, .L4056+116 25268 bl printk 25269 ldr r0, .L4056+120 25270 bl printk 25271 ldr r0, .L4056+124 25272 bl printk 25273 ldr r0, .L4056+128 25274 bl printk 25275 ldr r0, .L4056+132 25276 bl printk 25277 ldr r0, .L4056+136 25278 bl printk 25279 b .L4036 25280.L4057: 25281 .align 2 25282.L4056: 25283 .word .LC264 25284 .word .LC265 25285 .word .LC266 25286 .word .LANCHOR0 25287 .word .LC267 25288 .word .LANCHOR3 25289 .word .LC268 25290 .word .LC269 25291 .word .LC271 25292 .word .LC272 25293 .word .LC270 25294 .word .LANCHOR3-2532 25295 .word .LC245 25296 .word .LC273 25297 .word .LC274 25298 .word .LC275 25299 .word .LANCHOR3-3072 25300 .word .LC276 25301 .word .LC277 25302 .word .LC218 25303 .word .LC240 25304 .word .LC278 25305 .word .LC279 25306 .word .LANCHOR2 25307 .word .LC280 25308 .word .LC281 25309 .word .LC282 25310 .word .LC283 25311 .word .LC284 25312 .word .LC285 25313 .word .LC286 25314 .word .LC287 25315 .word .LC288 25316 .word .LC289 25317 .word .LC290 25318 .fnend 25319 .size zftl_debug_proc_write, .-zftl_debug_proc_write 25320 .global __aeabi_idivmod 25321 .align 2 25322 .global ftl_update_l2p_map 25323 .syntax unified 25324 .arm 25325 .fpu softvfp 25326 .type ftl_update_l2p_map, %function 25327ftl_update_l2p_map: 25328 .fnstart 25329 @ args = 0, pretend = 0, frame = 24 25330 @ frame_needed = 0, uses_anonymous_args = 0 25331 push {r4, r5, r6, r7, r8, r9, r10, fp, lr} 25332 .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} 25333 mov r7, r0 25334 ldr r6, .L4088 25335 .pad #28 25336 sub sp, sp, #28 25337 ldrb r8, [r0, #9] @ zero_extendqisi2 25338 sub r3, r6, #3088 25339 ldr r4, [r6, #-2556] 25340 ldrh r3, [r3, #-8] 25341 mul r8, r8, r3 25342 ldrh r3, [r0, #12] 25343 add r4, r4, r3, lsl #2 25344 sub r3, r8, #-1073741823 25345 ldr r3, [r4, r3, lsl #2] 25346 cmn r3, #1 25347 beq .L4059 25348 movw r2, #1998 25349 ldr r1, .L4088+4 25350 ldr r0, .L4088+8 25351 bl printk 25352 bl dump_stack 25353.L4059: 25354 mov r5, #0 25355 sub r4, r4, #4 25356 mov r10, r5 25357.L4060: 25358 cmp r10, r8 25359 bne .L4066 25360 ldr r3, .L4088+12 25361 ldr r4, .L4088+16 25362 ldr r3, [r3] 25363 tst r3, #4096 25364 beq .L4067 25365 ldrh r1, [r7] 25366 ldr r2, [r4, #1092] 25367 ldr r0, .L4088+20 25368 lsl r3, r1, #1 25369 ldrh r3, [r2, r3] 25370 mov r2, r5 25371 bl printk 25372.L4067: 25373 ldrh r3, [r7] 25374 ldr r2, [r4, #1092] 25375 lsl r3, r3, #1 25376 strh r5, [r2, r3] @ movhi 25377 add sp, sp, #28 25378 @ sp needed 25379 pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} 25380.L4066: 25381 ldr r9, [r4, #4]! 25382 cmn r9, #1 25383 beq .L4061 25384 ldrb r1, [r6, #-2546] @ zero_extendqisi2 25385 mov r0, r9 25386 lsl r1, r1, #7 25387 bl __aeabi_uidiv 25388 uxth r3, r0 25389 str r3, [sp, #4] 25390 ldr r3, .L4088+12 25391 ldr r3, [r3] 25392 tst r3, #4096 25393 beq .L4062 25394 mov r3, r10 25395 mov r2, r9 25396 ldr r1, [sp, #4] 25397 ldr r0, .L4088+24 25398 bl printk 25399.L4062: 25400 mov r9, r4 25401 mov fp, r10 25402.L4065: 25403 ldr r0, [r9] 25404 cmn r0, #1 25405 beq .L4063 25406 ldrb r1, [r6, #-2546] @ zero_extendqisi2 25407 lsl r1, r1, #7 25408 bl __aeabi_uidiv 25409 ldr r3, [sp, #4] 25410 uxth r0, r0 25411 cmp r3, r0 25412 bne .L4063 25413 ldrb r3, [r7, #9] @ zero_extendqisi2 25414 mov r0, fp 25415 mov r1, r3 25416 str r3, [sp, #12] 25417 bl __aeabi_idivmod 25418 ldr r2, .L4088+28 25419 add r1, r7, r1, lsl #1 25420 ldr r3, [sp, #12] 25421 ldrh r0, [r1, #16] 25422 ldrh r2, [r2] 25423 mov r1, r3 25424 mul r2, r2, r0 25425 mov r0, fp 25426 str r2, [sp, #8] 25427 bl __aeabi_idiv 25428 ldr r2, [sp, #8] 25429 add r2, r2, r0 25430 ldr r0, .L4088+32 25431 str r2, [sp, #20] 25432 ldr r1, [r9] 25433 bl pm_ppa_update_check 25434 cmp r0, #0 25435 beq .L4064 25436 mov r3, r8 25437 mov r2, #4 25438 ldr r1, [r6, #-2556] 25439 ldr r0, .L4088+36 25440 bl rknand_print_hex 25441.L4064: 25442 add r5, r5, #1 25443 mov r2, #1 25444 uxth r5, r5 25445 add r1, sp, #20 25446 ldr r0, [r9] 25447 bl pm_log2phys 25448 mvn r3, #0 25449 str r3, [r9] 25450.L4063: 25451 add fp, fp, #1 25452 add r9, r9, #4 25453 cmp r8, fp 25454 bne .L4065 25455.L4061: 25456 add r10, r10, #1 25457 b .L4060 25458.L4089: 25459 .align 2 25460.L4088: 25461 .word .LANCHOR3 25462 .word .LANCHOR1+2473 25463 .word .LC0 25464 .word .LANCHOR2 25465 .word .LANCHOR0 25466 .word .LC294 25467 .word .LC291 25468 .word .LANCHOR3-3074 25469 .word .LC292 25470 .word .LC293 25471 .fnend 25472 .size ftl_update_l2p_map, .-ftl_update_l2p_map 25473 .align 2 25474 .global ftl_alloc_new_data_sblk 25475 .syntax unified 25476 .arm 25477 .fpu softvfp 25478 .type ftl_alloc_new_data_sblk, %function 25479ftl_alloc_new_data_sblk: 25480 .fnstart 25481 @ args = 0, pretend = 0, frame = 0 25482 @ frame_needed = 0, uses_anonymous_args = 0 25483 push {r4, r5, r6, lr} 25484 .save {r4, r5, r6, lr} 25485 mov r5, r0 25486 ldrh r6, [r0] 25487 bl ftl_update_l2p_map 25488 bl pm_flush 25489 ldrh r0, [r5] 25490 movw r3, #65535 25491 cmp r0, r3 25492 beq .L4091 25493 bl zftl_insert_data_list 25494.L4091: 25495 ldr r4, .L4099 25496 mov r0, r5 25497 ldr r1, [r4, #1096] 25498 add r1, r1, #16 25499 cmp r5, r1 25500 movw r5, #65535 25501 moveq r1, #2 25502 movne r1, #3 25503 bl ftl_open_sblk_init 25504 ldr r3, [r4, #1096] 25505 cmp r6, r5 25506 ldr r3, [r3, #560] 25507 sub r3, r3, r6 25508 clz r3, r3 25509 lsr r3, r3, #5 25510 moveq r3, #0 25511 cmp r3, #0 25512 beq .L4093 25513 mov r1, r6 25514 ldr r0, .L4099+4 25515 bl printk 25516 ldr r3, [r4, #1096] 25517 ldr r0, [r3, #564] 25518 bl gc_mark_bad_ppa 25519 ldr r3, [r4, #1096] 25520 mvn r2, #0 25521 str r5, [r3, #560] 25522 str r2, [r3, #564] 25523.L4093: 25524 bl ftl_ext_info_flush 25525 mov r0, #0 25526 bl ftl_info_flush 25527 bl lpa_rebuild_hash 25528 mov r0, #0 25529 pop {r4, r5, r6, pc} 25530.L4100: 25531 .align 2 25532.L4099: 25533 .word .LANCHOR0 25534 .word .LC295 25535 .fnend 25536 .size ftl_alloc_new_data_sblk, .-ftl_alloc_new_data_sblk 25537 .align 2 25538 .global ftl_write_commit 25539 .syntax unified 25540 .arm 25541 .fpu softvfp 25542 .type ftl_write_commit, %function 25543ftl_write_commit: 25544 .fnstart 25545 @ args = 0, pretend = 0, frame = 24 25546 @ frame_needed = 0, uses_anonymous_args = 0 25547 push {r4, r5, r6, r7, r8, r9, r10, fp, lr} 25548 .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} 25549 .pad #36 25550 sub sp, sp, #36 25551 ldr r8, .L4167 25552 mov r9, r8 25553.L4102: 25554 ldrb r2, [r8, #2796] @ zero_extendqisi2 25555 cmp r2, #0 25556 beq .L4104 25557 ldrb r3, [r8, #2820] @ zero_extendqisi2 25558 sub r2, r2, #1 25559 ldr r1, .L4167+4 25560 strb r2, [r8, #2796] 25561 str r3, [sp, #12] 25562 add r3, r3, r3, lsl #1 25563 add r3, r1, r3, lsl #4 25564 ldr r1, [sp, #12] 25565 str r3, [sp, #20] 25566 mov r3, #48 25567 mla r3, r3, r1, r8 25568 ldrb r1, [r3, #1232] @ zero_extendqisi2 25569 ldr r2, [r3, #1252] 25570 ldr r3, [r8, #2780] 25571 strb r1, [r8, #2820] 25572 cmp r2, r3 25573 bcc .L4106 25574 movw r2, #607 25575 ldr r1, .L4167+8 25576 ldr r0, .L4167+12 25577 bl printk 25578 bl dump_stack 25579.L4106: 25580 ldr r2, [sp, #12] 25581 mov r3, #48 25582 mla r3, r3, r2, r9 25583 ldr r2, [r9, #2780] 25584 ldr r7, [r3, #1252] 25585 cmp r7, r2 25586 bcc .L4107 25587 ldr r0, [sp, #20] 25588 bl zbuf_free 25589 mvn r0, #0 25590.L4101: 25591 add sp, sp, #36 25592 @ sp needed 25593 pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} 25594.L4107: 25595 ldr r2, [r3, #1244] 25596 ldr fp, [r3, #1236] 25597 ldrb r5, [r3, #1273] @ zero_extendqisi2 25598 ldrb r3, [r3, #1272] @ zero_extendqisi2 25599 str r2, [sp, #8] 25600 str r3, [sp, #16] 25601 ldrb r3, [r9, #2797] @ zero_extendqisi2 25602 cmp r3, #0 25603 beq .L4109 25604 ldr r6, .L4167+16 25605 ldr r3, .L4167+4 25606 ldrb r4, [r6, #-88] @ zero_extendqisi2 25607 add r4, r4, r4, lsl #1 25608 add r4, r3, r4, lsl #4 25609.L4110: 25610 ldrb r3, [r4] @ zero_extendqisi2 25611 cmp r3, #255 25612 bne .L4111 25613 ldr r3, [r4, #20] 25614 cmp r7, r3 25615 bne .L4109 25616 ldr r3, [sp, #16] 25617 lsl r5, r5, #9 25618 ldr r0, [r4, #4] 25619 add r1, fp, r5 25620 lsl r2, r3, #9 25621 add r0, r0, r5 25622 bl ftl_memcpy 25623 ldrb r3, [r6, #-2546] @ zero_extendqisi2 25624 mov r0, #2 25625 ldr r2, [r4, #4] 25626 ldr r1, [r4, #12] 25627 sub r3, r3, #2 25628 add r2, r2, r3, lsl #9 25629 add r1, r1, #16 25630 bl ftl_debug_info_fill 25631 ldr r0, [sp, #20] 25632 bl zbuf_free 25633 b .L4102 25634.L4111: 25635 ldr r2, .L4167+4 25636 add r3, r3, r3, lsl #1 25637 add r4, r2, r3, lsl #4 25638 b .L4110 25639.L4109: 25640 mov r0, r7 25641 bl lpa_hash_get_ppa 25642 cmn r0, #1 25643 str r0, [sp, #28] 25644 bne .L4113 25645 mov r2, #0 25646 add r1, sp, #28 25647 mov r0, r7 25648 bl pm_log2phys 25649.L4113: 25650 ldr r6, [r9, #1096] 25651 mov r1, #0 25652 ldr r3, .L4167+4 25653 mov r4, r1 25654 ldr ip, [sp, #28] 25655 add r6, r6, #16 25656 add r0, r3, #1536 25657.L4115: 25658 ldr r2, [r3, #20] 25659 cmp r7, r2 25660 bne .L4114 25661 ldrb r2, [r3, #2] @ zero_extendqisi2 25662 tst r2, #8 25663 ldrne r4, [r3, #4] 25664 movne r1, #1 25665 ldrne ip, [r3, #24] 25666 bicne r2, r2, #8 25667 strbne r2, [r3, #2] 25668.L4114: 25669 add r3, r3, #48 25670 cmp r3, r0 25671 bne .L4115 25672 ldr r3, .L4167+16 25673 cmp r1, #0 25674 ldr r2, [sp, #16] 25675 strne ip, [sp, #28] 25676 ldrb r3, [r3, #-2546] @ zero_extendqisi2 25677 cmp r2, r3 25678 bcs .L4142 25679 cmp r4, #0 25680 beq .L4118 25681 cmp r5, #0 25682 beq .L4119 25683 lsl r2, r5, #9 25684 mov r1, r4 25685 mov r0, fp 25686 bl ftl_memcpy 25687 ldr r6, [r9, #1096] 25688 add r6, r6, #48 25689.L4119: 25690 ldr r3, [sp, #16] 25691 add r5, r5, r3 25692 ldr r3, .L4167+16 25693 ldrb r2, [r3, #-2546] @ zero_extendqisi2 25694 cmp r5, r2 25695 ldrcs r6, [r9, #1096] 25696 addcs r6, r6, #16 25697 bcs .L4142 25698 lsl r0, r5, #9 25699 sub r2, r2, r5 25700 lsl r2, r2, #9 25701 add r1, r4, r0 25702 add r0, fp, r0 25703 bl ftl_memcpy 25704.L4142: 25705 mov r10, #0 25706 b .L4117 25707.L4118: 25708 ldr r3, [sp, #28] 25709 cmn r3, #1 25710 beq .L4121 25711 mov r0, #1 25712 bl buf_alloc 25713 ldr r3, [sp, #28] 25714 mov r4, r0 25715 str r7, [r0, #20] 25716 mov r1, #1 25717 str r3, [r0, #24] 25718 bl sblk_read_page 25719 ldr r3, [r4, #12] 25720 ldr r2, [r3, #4] 25721 ldr r10, [r3, #12] 25722 cmp r7, r2 25723 add r10, r10, #1 25724 bne .L4122 25725 ldr r2, [r4, #36] 25726 cmn r2, #1 25727 bne .L4123 25728.L4122: 25729 ldrb r2, [r9, #1153] @ zero_extendqisi2 25730 mvn ip, #0 25731 ldr lr, [r4, #24] 25732 rsb r1, r2, #24 25733 mvn ip, ip, lsl r2 25734 ldr r2, .L4167+16 25735 and r0, ip, lr, lsr r1 25736 bic r1, lr, ip, lsl r1 25737 ldrb r2, [r2, #-2546] @ zero_extendqisi2 25738 uxtb r0, r0 25739 str r2, [sp] 25740 ldr r2, [r4, #4] 25741 bl flash_read_page_en 25742 str r0, [r4, #36] 25743.L4123: 25744 ldr r3, [r4, #12] 25745 ldr r3, [r3, #4] 25746 cmp r7, r3 25747 bne .L4124 25748 ldr r3, [r4, #36] 25749 cmn r3, #1 25750 bne .L4125 25751.L4124: 25752 ldr r2, [r8, #1096] 25753 ldr r0, .L4167+20 25754 ldr r3, [r2, #552] 25755 add r3, r3, #1 25756 str r3, [r2, #552] 25757 ldr r3, [r4, #36] 25758 ldrb r1, [r4, #1] @ zero_extendqisi2 25759 ldr r2, [sp, #28] 25760 str r3, [sp] 25761 mov r3, r7 25762 bl printk 25763 mov r3, #4 25764 ldr r1, [r4, #12] 25765 mov r2, r3 25766 ldr r0, .L4167+24 25767 bl rknand_print_hex 25768.L4125: 25769 ldr r3, [r4, #12] 25770 ldr r3, [r3, #4] 25771 cmp r7, r3 25772 bne .L4126 25773 ldr r3, [r4, #36] 25774 cmn r3, #1 25775 bne .L4127 25776.L4126: 25777 movw r2, #699 25778 ldr r1, .L4167+8 25779 ldr r0, .L4167+12 25780 bl printk 25781 bl dump_stack 25782.L4127: 25783 cmp r5, #0 25784 beq .L4128 25785 ldr r3, [sp, #28] 25786 lsl r2, r5, #9 25787 cmn r3, #1 25788 beq .L4129 25789 ldr r1, [r4, #4] 25790 mov r0, fp 25791 bl ftl_memcpy 25792.L4130: 25793 ldr r6, [r8, #1096] 25794 add r6, r6, #48 25795.L4128: 25796 ldr r3, [sp, #16] 25797 add r5, r5, r3 25798 ldr r3, .L4167+16 25799 ldrb r2, [r3, #-2546] @ zero_extendqisi2 25800 cmp r5, r2 25801 bcc .L4131 25802 ldrhi r6, [r8, #1096] 25803 addhi r6, r6, #16 25804.L4132: 25805 cmp r4, #0 25806 beq .L4117 25807 ldrb r3, [r4, #2] @ zero_extendqisi2 25808 mov r1, r4 25809 ldr r0, .L4167+28 25810 bic r3, r3, #8 25811 strb r3, [r4, #2] 25812 bl buf_remove_buf 25813 mov r0, r4 25814 bl zbuf_free 25815.L4117: 25816 ldrh r3, [r6, #6] 25817 cmp r3, #0 25818 bne .L4134 25819 bl ftl_flush 25820 mov r0, r6 25821 bl ftl_alloc_new_data_sblk 25822.L4134: 25823 mov r0, r6 25824 mov r4, #48 25825 bl ftl_get_new_free_page 25826 ldr r3, [sp, #12] 25827 str r0, [sp, #16] 25828 mov r0, #2 25829 mul r4, r4, r3 25830 ldr r3, [sp, #8] 25831 mov r1, r3 25832 add r5, r9, r4 25833 ldr r2, [r5, #1248] 25834 str r10, [r3, #12] 25835 stm r3, {r2, r7} 25836 ldr r2, [sp, #28] 25837 str r2, [r3, #8] 25838 mov r2, #0 25839 ldr r3, .L4167+16 25840 str r2, [r1, #16]! 25841 ldrb r2, [r3, #-2546] @ zero_extendqisi2 25842 sub r2, r2, #2 25843 add r2, fp, r2, lsl #9 25844 bl ftl_debug_info_fill 25845 ldr r3, [sp, #16] 25846 ldr r1, [sp, #20] 25847 ldr r0, .L4167+32 25848 str r3, [r5, #1256] 25849 ldr r3, [sp, #28] 25850 str r3, [r5, #1260] 25851 mvn r3, #0 25852 strb r3, [r5, #1232] 25853 ldrb r3, [r5, #1234] @ zero_extendqisi2 25854 orr r3, r3, #10 25855 strb r3, [r5, #1234] 25856 ldr r3, .L4167+4 25857 ldrh r2, [r6, #12] 25858 add r4, r3, r4 25859 ldrh r3, [r6, #10] 25860 add r3, r3, r2 25861 sub r3, r3, #1 25862 strh r3, [r4, #32] @ movhi 25863 bl buf_add_tail 25864 ldrb r3, [r9, #2797] @ zero_extendqisi2 25865 ldr r4, .L4167 25866 add r3, r3, #1 25867 strb r3, [r9, #2797] 25868 bl timer_get_time 25869 ldr r3, .L4167+16 25870 ldrh r2, [r6, #6] 25871 str r0, [r3, #-84] 25872 ldrb r3, [r9, #2797] @ zero_extendqisi2 25873 cmp r3, #2 25874 bhi .L4135 25875 cmp r2, #1 25876 bne .L4105 25877.L4135: 25878 ldr lr, .L4167+16 25879 mov r5, #48 25880 ldrb r1, [r6, #5] @ zero_extendqisi2 25881 ldrb r0, [lr, #-88] @ zero_extendqisi2 25882 cmp r1, #0 25883 mov r1, #0 25884 moveq ip, #1 25885 movne ip, #2 25886 cmp r2, #1 25887 mov r2, r0 25888 moveq ip, r3 25889.L4139: 25890 cmp r1, ip 25891 bne .L4140 25892 uxtb r1, r1 25893 add r0, r0, r0, lsl #1 25894 strb r2, [lr, #-88] 25895 sub r3, r3, r1 25896 strb r3, [r4, #2797] 25897 ldr r3, .L4167+4 25898 add r0, r3, r0, lsl #4 25899 bl sblk_prog_page 25900 ldrh r3, [r6, #6] 25901 cmp r3, #1 25902 bne .L4105 25903 bl sblk_wait_write_queue_completed 25904 bl ftl_write_completed 25905 mov r0, r6 25906 bl ftl_write_last_log_page 25907 mov r0, r6 25908 bl ftl_alloc_new_data_sblk 25909.L4105: 25910 ldrb r3, [r4, #2796] @ zero_extendqisi2 25911 cmp r3, #0 25912 bne .L4102 25913.L4104: 25914 bl ftl_write_completed 25915 mov r0, #0 25916 b .L4101 25917.L4131: 25918 ldr r3, [sp, #28] 25919 sub r2, r2, r5 25920 lsl r2, r2, #9 25921 lsl r0, r5, #9 25922 cmn r3, #1 25923 beq .L4133 25924 ldr r1, [r4, #4] 25925 add r1, r1, r0 25926 add r0, fp, r0 25927 bl ftl_memcpy 25928 b .L4132 25929.L4133: 25930 mov r1, #0 25931 add r0, fp, r0 25932 bl ftl_memset 25933 b .L4132 25934.L4140: 25935 mla r2, r5, r2, r4 25936 add r1, r1, #1 25937 ldrb r2, [r2, #1232] @ zero_extendqisi2 25938 b .L4139 25939.L4121: 25940 cmp r5, #0 25941 moveq r10, r5 25942 moveq r4, r5 25943 beq .L4128 25944 lsl r2, r5, #9 25945 mov r10, r4 25946.L4129: 25947 mov r1, #0 25948 mov r0, fp 25949 bl ftl_memset 25950 b .L4130 25951.L4168: 25952 .align 2 25953.L4167: 25954 .word .LANCHOR0 25955 .word .LANCHOR0+1232 25956 .word .LANCHOR1+2492 25957 .word .LC0 25958 .word .LANCHOR3 25959 .word .LC296 25960 .word .LC240 25961 .word .LANCHOR0+2771 25962 .word .LANCHOR3-88 25963 .fnend 25964 .size ftl_write_commit, .-ftl_write_commit 25965 .align 2 25966 .global gc_do_copy_back 25967 .syntax unified 25968 .arm 25969 .fpu softvfp 25970 .type gc_do_copy_back, %function 25971gc_do_copy_back: 25972 .fnstart 25973 @ args = 0, pretend = 0, frame = 72 25974 @ frame_needed = 0, uses_anonymous_args = 0 25975 push {r4, r5, r6, r7, r8, r9, r10, fp, lr} 25976 .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} 25977 .pad #84 25978 sub sp, sp, #84 25979 ldr r7, .L4307 25980 ldrb r0, [r7, #-3119] @ zero_extendqisi2 25981 cmp r0, #0 25982 bne .L4170 25983 bl buf_alloc 25984 subs r4, r0, #0 25985 beq .L4169 25986 ldr r5, .L4307+4 25987 ldrh r2, [r5, #22] 25988 mov r0, r2 25989 bl gc_get_src_ppa_from_index 25990 mov r1, #1 25991 add r2, r2, #1 25992 str r0, [r4, #24] 25993 mov r6, r0 25994 mov r0, r4 25995 strh r2, [r5, #22] @ movhi 25996 bl sblk_read_page 25997 ldr r3, [r4, #36] 25998 cmn r3, #1 25999 cmpne r3, #512 26000 bne .L4172 26001 movw r2, #1032 26002 ldr r1, .L4307+8 26003 ldr r0, .L4307+12 26004 bl printk 26005 bl dump_stack 26006.L4172: 26007 ldr r3, [r4, #12] 26008 ldr r8, [r3, #4] 26009 mov r0, r8 26010 bl lpa_hash_get_ppa 26011 cmn r0, #1 26012 str r0, [sp, #56] 26013 bne .L4173 26014 mov r2, #0 26015 add r1, sp, #56 26016 mov r0, r8 26017 bl pm_log2phys 26018.L4173: 26019 ldr r9, [sp, #56] 26020 cmp r6, r9 26021 bne .L4174 26022 ldr r2, .L4307+16 26023 mov r3, #0 26024 sub r10, r2, #1232 26025.L4177: 26026 add r1, r2, r3 26027 ldr r0, [r1, #20] 26028 cmp r8, r0 26029 bne .L4175 26030 ldrb r1, [r1, #2] @ zero_extendqisi2 26031 tst r1, #2 26032 beq .L4175 26033 mov r0, r4 26034 bl zbuf_free 26035 ldr r3, .L4307+20 26036 ldr r3, [r3] 26037 tst r3, #256 26038 beq .L4169 26039 ldrh r3, [r5, #22] 26040 mov r2, r6 26041 mov r1, r8 26042 ldr r0, .L4307+24 26043 bl printk 26044.L4169: 26045 add sp, sp, #84 26046 @ sp needed 26047 pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} 26048.L4175: 26049 add r3, r3, #48 26050 cmp r3, #1536 26051 bne .L4177 26052 ldrb r3, [r7, #-2546] @ zero_extendqisi2 26053 mov r2, #0 26054 str r8, [r4, #20] 26055 strb r2, [r4, #41] 26056 strb r3, [r4, #40] 26057 ldr r3, [r4, #12] 26058 ldr r1, [r3] 26059 str r1, [r4, #16] 26060 str r2, [r3, #16] 26061 ldr r3, .L4307+20 26062 ldr r3, [r3] 26063 tst r3, #256 26064 beq .L4178 26065 mov r0, r8 26066 bl lpa_hash_get_ppa 26067 ldrh r3, [r5, #22] 26068 mov r2, r9 26069 str r6, [sp] 26070 mov r1, r8 26071 str r3, [sp, #4] 26072 mov r3, r0 26073 ldr r0, .L4307+28 26074 bl printk 26075.L4178: 26076 mov r0, r4 26077 bl ftl_gc_write_buf 26078 bl ftl_write_commit 26079 ldr r2, [r10, #2800] 26080 ldr r3, [r2, #60] 26081 add r3, r3, #1 26082 str r3, [r2, #60] 26083 ldrh r3, [r5, #24] 26084 add r3, r3, #1 26085 strh r3, [r5, #24] @ movhi 26086 b .L4169 26087.L4174: 26088 ldr r3, .L4307+20 26089 ldr r3, [r3] 26090 tst r3, #256 26091 beq .L4179 26092 mov r0, r8 26093 bl lpa_hash_get_ppa 26094 ldrh r3, [r5, #22] 26095 mov r2, r9 26096 str r6, [sp] 26097 mov r1, r8 26098 str r3, [sp, #4] 26099 mov r3, r0 26100 ldr r0, .L4307+28 26101 bl printk 26102.L4179: 26103 mov r0, r4 26104 bl zbuf_free 26105 b .L4169 26106.L4170: 26107 ldr r10, .L4307+32 26108 ldr r3, [r10, #1096] 26109 ldrb r9, [r3, #89] @ zero_extendqisi2 26110 str r3, [sp, #12] 26111 ldrb r3, [r7, #-3127] @ zero_extendqisi2 26112 uxth r8, r9 26113 cmp r3, r8 26114 movhi r6, #1 26115 bhi .L4180 26116 cmp r8, #2 26117 movcc r6, r8 26118 movcs r6, #2 26119.L4180: 26120 ldrb r5, [r7, #-3128] @ zero_extendqisi2 26121 ldr r3, .L4307+4 26122 cmp r5, #3 26123 bne .L4181 26124 ldrb r2, [r10, #1158] @ zero_extendqisi2 26125 cmp r2, #0 26126 beq .L4182 26127 movw r2, #2102 26128 mov r1, r9 26129 ldrh fp, [r3, r2] 26130 mov r0, fp 26131 bl __aeabi_idiv 26132 ldrb r3, [r7, #-2542] @ zero_extendqisi2 26133 uxth r4, r0 26134 cmp r3, #0 26135 beq .L4183 26136 ldr r3, .L4307+36 26137 lsl r0, r0, #1 26138 ldrh r3, [r3, r0] 26139 cmp r3, #0 26140 moveq r5, #1 26141 movne r5, #2 26142.L4184: 26143 smulbb r8, r8, r4 26144 sub r8, fp, r8 26145 uxth r3, r8 26146 str r3, [sp, #20] 26147.L4185: 26148 mul r3, r6, r5 26149 ldr r9, .L4307+36 26150 mov r8, #0 26151 str r3, [sp, #16] 26152 add r9, r9, r4, lsl #1 26153 ldr r3, .L4307+4 26154.L4189: 26155 ldr r1, [sp, #16] 26156 uxth r0, r8 26157 mov r2, r0 26158 cmp r0, r1 26159 bge .L4242 26160 ldr r1, .L4307+40 26161 add r2, fp, r2 26162 ldrh ip, [r1] 26163 ldr r1, [sp, #12] 26164 ldrb r1, [r1, #89] @ zero_extendqisi2 26165 mul r1, r1, ip 26166 ldrb ip, [r7, #-11] @ zero_extendqisi2 26167 sub r1, r1, ip 26168 cmp r2, r1 26169 blt .L4190 26170 ldrb r1, [r7, #-2542] @ zero_extendqisi2 26171 cmp r1, #0 26172 beq .L4242 26173 ldrh r1, [r9] 26174 cmp r1, r4 26175 bcc .L4191 26176.L4242: 26177 mov r3, #1 26178 str r3, [sp, #24] 26179 b .L4187 26180.L4183: 26181 ldrb r3, [r7, #-15] @ zero_extendqisi2 26182 cmp r3, #0 26183 moveq r5, #1 26184 beq .L4184 26185 sub r3, r4, #62 26186 cmp r3, #2160 26187 movcs r5, #2 26188 bcs .L4184 26189 mov r1, r5 26190 mov r0, r4 26191 bl __aeabi_uidivmod 26192 uxth r1, r1 26193 cmp r1, #0 26194 movne r5, #1 26195 moveq r5, #2 26196 b .L4184 26197.L4182: 26198 ldrb r2, [r7, #-3120] @ zero_extendqisi2 26199 cmp r2, #0 26200 movw r2, #2102 26201 beq .L4186 26202 ldrh fp, [r3, r2] 26203 add r1, r9, r9, lsl #1 26204 mov r0, fp 26205 bl __aeabi_idiv 26206 mul r9, r0, r9 26207 ldr r2, .L4307+44 26208 uxth r4, r0 26209 sub r9, r9, r9, lsl #2 26210 add r9, r9, fp 26211 smull r2, r3, r9, r2 26212 sub r9, r3, r9, asr #31 26213 uxth r3, r9 26214 str r3, [sp, #20] 26215 ldrb r3, [r10, #1159] @ zero_extendqisi2 26216 cmp r3, #0 26217 addne r4, r4, r4, lsl #1 26218 uxthne r4, r4 26219 b .L4185 26220.L4186: 26221 ldrh r10, [r3, r2] 26222 mov r1, r9 26223 mov r0, r10 26224 bl __aeabi_idiv 26225 ldr r2, .L4307+48 26226 lsl r3, r0, #1 26227 smulbb r8, r0, r8 26228 ldrh r3, [r2, r3] 26229 sub r10, r10, r8 26230 lsr r4, r3, #3 26231 and r3, r3, #7 26232 str r3, [sp, #24] 26233 uxth r3, r10 26234 mla r9, r9, r4, r3 26235 str r3, [sp, #20] 26236 ldr r3, [sp, #24] 26237 add r9, r9, r9, lsl #1 26238 cmp r3, #1 26239 uxth fp, r9 26240 beq .L4185 26241.L4187: 26242 mul r3, r6, r5 26243 str r3, [sp, #36] 26244 lsl r3, r6, #1 26245 uxth r3, r3 26246 str r3, [sp, #44] 26247 ldrh r3, [sp, #44] 26248 smulbb r3, r3, r5 26249 sub r3, fp, r3 26250 uxth r3, r3 26251 str r3, [sp, #48] 26252 mov r3, #0 26253 str r3, [sp, #32] 26254 ldr r3, .L4307+36 26255 add r3, r3, r4, lsl #1 26256 str r3, [sp, #40] 26257.L4192: 26258 ldrh r9, [sp, #32] 26259 ldr r2, [sp, #36] 26260 ldr r7, .L4307 26261 str r9, [sp, #28] 26262 cmp r9, r2 26263 blt .L4216 26264 ldrb r3, [r7, #-3128] @ zero_extendqisi2 26265 cmp r3, #3 26266 bne .L4217 26267 ldr r3, .L4307+32 26268 ldrb r1, [r3, #1158] @ zero_extendqisi2 26269 cmp r1, #0 26270 movne r3, r2 26271 movne r1, #0 26272 subne r2, r3, #1 26273 bne .L4219 26274 ldrb r2, [r7, #-3120] @ zero_extendqisi2 26275 ldr r3, [sp, #56] 26276 cmp r2, #0 26277 strbne r1, [r3, #44] 26278 bne .L4305 26279 ldr r1, [sp, #24] 26280 cmp r1, #1 26281 moveq r2, #9 26282 beq .L4225 26283 ldr r1, [sp, #24] 26284 cmp r1, #2 26285 moveq r2, #13 26286.L4225: 26287 strb r2, [r3, #44] 26288.L4305: 26289 mov r2, r6 26290 add r1, sp, #68 26291 add r0, sp, #56 26292 bl sblk_xlc_prog_pages 26293.L4221: 26294 ldrb r3, [r7, #-3120] @ zero_extendqisi2 26295 ldr r2, .L4307+32 26296 cmp r3, #0 26297 addne r6, r6, r6, lsl #1 26298 uxthne r6, r6 26299 bne .L4231 26300 ldrb r3, [r7, #-3126] @ zero_extendqisi2 26301 cmp r3, #0 26302 ldrne r6, [sp, #44] 26303 bne .L4231 26304 ldrb r3, [r2, #1158] @ zero_extendqisi2 26305 cmp r3, #0 26306 beq .L4231 26307 smulbb r5, r6, r5 26308 ldrb r3, [r7, #-2542] @ zero_extendqisi2 26309 uxth r5, r5 26310 cmp r3, #0 26311 moveq r6, r5 26312 beq .L4231 26313 ldr r1, .L4307+36 26314 lsl r3, r4, #1 26315 ldrh r3, [r1, r3] 26316 cmp r3, r4 26317 movcs r6, r5 26318.L4231: 26319 ldr r1, [r2, #2800] 26320 ldr r0, .L4307+4 26321 ldr r3, [r1, #52] 26322 add r3, r3, r6 26323 str r3, [r1, #52] 26324 movw r1, #2102 26325 ldrh r3, [r0, r1] 26326 add r6, r6, r3 26327 ldr r3, .L4307+52 26328 uxth r6, r6 26329 strh r6, [r0, r1] @ movhi 26330 ldrh r1, [r3, #-14] 26331 ldr r3, [sp, #12] 26332 ldrb r3, [r3, #89] @ zero_extendqisi2 26333 mul r3, r3, r1 26334 cmp r6, r3 26335 ldrge r3, [r2, #1096] 26336 movge r2, #0 26337 strhge r2, [r3, #86] @ movhi 26338 bl gc_write_completed 26339 b .L4169 26340.L4181: 26341 ldrb r2, [r7, #-3126] @ zero_extendqisi2 26342 mov r1, r9 26343 cmp r2, #0 26344 movw r2, #2102 26345 ldrh fp, [r3, r2] 26346 mov r0, fp 26347 bne .L4188 26348 bl __aeabi_idiv 26349 uxth r4, r0 26350 mov r5, #1 26351 smulbb r8, r8, r4 26352 sub r8, fp, r8 26353 uxth r3, r8 26354 str r3, [sp, #20] 26355 b .L4185 26356.L4188: 26357 bl __aeabi_idiv 26358 uxth r4, r0 26359 mov r5, #2 26360 smulbb r8, r8, r4 26361 sub r8, fp, r8 26362 uxth r3, r8 26363 str r3, [sp, #20] 26364 b .L4185 26365.L4191: 26366 tst r0, #1 26367 beq .L4242 26368.L4190: 26369 ldr r10, [r7, #-128] 26370 ldr r1, [r10, r2, lsl #2] 26371 cmn r1, #1 26372 bne .L4193 26373 ldrh r1, [r3, #22] 26374 ldrh ip, [r3, #20] 26375 cmp ip, r1 26376 bls .L4169 26377 ldrb ip, [r7, #-2542] @ zero_extendqisi2 26378 cmp ip, #0 26379 beq .L4194 26380 ldrh ip, [r9] 26381 cmp ip, r4 26382 bcs .L4194 26383 tst r0, #1 26384 ldrne r1, [r10, ip, lsl #2] 26385 strne r1, [r10, r2, lsl #2] 26386 bne .L4193 26387.L4194: 26388 mov r0, r1 26389 str r3, [sp, #24] 26390 bl gc_get_src_ppa_from_index 26391 ldr r3, [sp, #24] 26392 add r1, r1, #1 26393 strh r1, [r3, #22] @ movhi 26394 str r0, [r10, r2, lsl #2] 26395.L4193: 26396 add r8, r8, #1 26397 b .L4189 26398.L4216: 26399 ldr r3, [sp, #28] 26400 add r3, fp, r3 26401 str r3, [sp, #16] 26402 ldr r2, [sp, #16] 26403 ldr r3, [r7, #-3124] 26404 ldrb r3, [r3, r2] @ zero_extendqisi2 26405 cmp r3, #255 26406 bne .L4196 26407 mov r0, #0 26408 bl buf_alloc 26409 subs r7, r0, #0 26410 bne .L4197 26411 bl sblk_wait_write_queue_completed 26412 bl ftl_write_completed 26413 bl gc_write_completed 26414 bl gc_free_temp_buf 26415 mov r0, r7 26416 bl buf_alloc 26417 subs r7, r0, #0 26418 beq .L4169 26419.L4197: 26420 ldr r2, .L4307 26421 ldrb r1, [r7, #1] @ zero_extendqisi2 26422 ldr r0, [sp, #16] 26423 ldr r3, [r2, #-3124] 26424 strb r1, [r3, r0] 26425 ldr r1, .L4307+32 26426 ldrb r3, [r1, #2831] @ zero_extendqisi2 26427 add r3, r3, #1 26428 strb r3, [r1, #2831] 26429 add r3, r9, fp 26430 strh r3, [r7, #32] @ movhi 26431 ldrb r3, [sp, #24] @ zero_extendqisi2 26432 strb r3, [r7, #45] 26433 sub r3, r2, #3104 26434 ldrh r1, [r3, #-14] 26435 ldr r3, [sp, #12] 26436 ldrb r3, [r3, #89] @ zero_extendqisi2 26437 mul r3, r3, r1 26438 ldrb r1, [r2, #-11] @ zero_extendqisi2 26439 sub r3, r3, r1 26440 cmp r0, r3 26441 blt .L4198 26442 ldrb r3, [r2, #-2542] @ zero_extendqisi2 26443 cmp r3, #0 26444 beq .L4199 26445 ldr r3, [sp, #40] 26446 ldrh r3, [r3] 26447 cmp r3, r4 26448 bcs .L4199 26449 tst r9, #1 26450 bne .L4198 26451.L4199: 26452 ldr r8, .L4307 26453 mvn r2, #0 26454 ldr r1, [sp, #16] 26455 ldr r10, .L4307+56 26456 ldr r3, [r8, #-132] 26457 str r2, [r3, r1, lsl #2] 26458 ldrb r3, [r8, #-11] @ zero_extendqisi2 26459 cmp r3, #2 26460 bne .L4200 26461 sub r3, r8, #3104 26462 ldr r2, [sp, #16] 26463 ldrh r1, [r3, #-14] 26464 ldr r3, [sp, #12] 26465 ldrb r3, [r3, #89] @ zero_extendqisi2 26466 mul r3, r1, r3 26467 sub r3, r3, #2 26468 cmp r2, r3 26469 ldrh r2, [r8, #-14] 26470 bne .L4201 26471 ldr r1, [r8, #-132] 26472 ldr r0, [r7, #4] 26473 bl ftl_memcpy 26474 ldrb r2, [r8, #-2546] @ zero_extendqisi2 26475 mov r1, #0 26476 ldr r0, [r7, #12] 26477 lsl r2, r2, #1 26478 bl ftl_memset 26479 ldr r3, [r7, #12] 26480 str r10, [r3] 26481 ldrh r1, [r8, #-14] 26482 ldr r0, [r7, #4] 26483 ldr r10, [r7, #12] 26484 bl js_hash 26485 ldr r2, .L4307+32 26486 str r0, [r10, #4] 26487 ldr r3, [r7, #12] 26488 ldr r2, [r2, #1096] 26489 ldr r2, [r2, #132] 26490 str r2, [r3, #8] 26491 mov r2, #0 26492 ldr r3, [r7, #12] 26493.L4301: 26494 str r2, [r3, #12] 26495.L4202: 26496 ldr r3, [r7, #12] 26497 mov r2, #0 26498 str r2, [r3, #16] 26499.L4196: 26500 ldr r3, .L4307 26501 ldr r1, [sp, #16] 26502 ldrb lr, [sp, #24] @ zero_extendqisi2 26503 ldr r2, [r3, #-3124] 26504 ldrb r7, [r2, r1] @ zero_extendqisi2 26505 add r2, sp, #80 26506 ldr r1, [sp, #28] 26507 add r0, r7, r7, lsl #1 26508 add ip, r2, r1, lsl #2 26509 ldr r2, .L4307+32 26510 add r1, r2, #1232 26511 add r0, r1, r0, lsl #4 26512 str r0, [ip, #-24] 26513 mov ip, #48 26514 mul ip, ip, r7 26515 add r1, r1, ip 26516 add r0, r2, ip 26517 mov ip, #2 26518 strb lr, [r0, #1277] 26519 strh ip, [r1, #34] @ movhi 26520 ldrb r1, [r3, #-3128] @ zero_extendqisi2 26521 cmp r1, #3 26522 bne .L4207 26523 ldrb r1, [r2, #1158] @ zero_extendqisi2 26524 cmp r1, #0 26525 beq .L4208 26526 ldrb r3, [r3, #-2542] @ zero_extendqisi2 26527 and r8, r9, #1 26528 add r8, r8, r4 26529 cmp r3, #0 26530 beq .L4209 26531 ldr r3, [sp, #40] 26532 ldr r2, [sp, #32] 26533 ldrh r3, [r3] 26534 cmp r3, r4 26535 movcs r2, #0 26536 andcc r2, r2, #1 26537 cmp r2, #0 26538 movne r8, r3 26539.L4209: 26540 ldr r3, .L4307+32 26541 mov r10, #48 26542 mov r1, r5 26543 mov r0, r9 26544 mla r10, r10, r7, r3 26545 bl __aeabi_uidiv 26546 ldr r3, [sp, #20] 26547 ldr r2, .L4307+60 26548 uxtah r0, r3, r0 26549 ldr r3, [sp, #12] 26550 ldrh r2, [r2] 26551 add r0, r3, r0, lsl #1 26552 ldrh r3, [r0, #96] 26553 mla r8, r2, r3, r8 26554 orr r8, r8, #50331648 26555 str r8, [r10, #1256] 26556.L4214: 26557 mov r2, #48 26558 ldr r3, .L4307+32 26559 mul r7, r2, r7 26560 add r2, r3, r7 26561 add r3, r3, #1232 26562 add r3, r3, r7 26563 ldr r2, [r2, #1256] 26564 ldrh r1, [r3, #32] 26565 ldr r3, .L4307 26566 ldr r3, [r3, #-124] 26567 str r2, [r3, r1, lsl #2] 26568 b .L4233 26569.L4201: 26570 ldrb r3, [r8, #-3127] @ zero_extendqisi2 26571 ldr r0, [r8, #-132] 26572 mul r3, r1, r3 26573 lsr r1, r2, #2 26574 add r1, r0, r1, lsl #2 26575 ldr r0, [r7, #4] 26576 rsb r3, r2, r3, lsl #2 26577 mov r2, r3 26578 str r3, [sp, #52] 26579 bl ftl_memcpy 26580 ldrb r2, [r8, #-2546] @ zero_extendqisi2 26581 mov r1, #0 26582 ldr r0, [r7, #12] 26583 lsl r2, r2, #1 26584 bl ftl_memset 26585 ldr r2, [r7, #12] 26586 ldr r3, [sp, #52] 26587 str r10, [r2] 26588 mov r1, r3 26589 ldr r0, [r7, #4] 26590 ldr r8, [r7, #12] 26591 bl js_hash 26592 ldr r2, .L4307+32 26593 str r0, [r8, #4] 26594 ldr r3, [r7, #12] 26595 ldr r2, [r2, #1096] 26596 ldr r2, [r2, #132] 26597 str r2, [r3, #8] 26598 mov r2, #1 26599 ldr r3, [r7, #12] 26600 b .L4301 26601.L4200: 26602 ldr r3, .L4307+52 26603 ldrb r2, [r8, #-3127] @ zero_extendqisi2 26604 ldr r1, [r8, #-132] 26605 ldrh r3, [r3, #-14] 26606 ldr r0, [r7, #4] 26607 mul r2, r2, r3 26608 lsl r2, r2, #2 26609 bl ftl_memcpy 26610 ldr r3, .L4307+52 26611 ldrb r1, [r8, #-2546] @ zero_extendqisi2 26612 ldr r0, [r7, #4] 26613 ldrh r2, [r3, #-14] 26614 ldrb r3, [r8, #-3127] @ zero_extendqisi2 26615 mul r3, r3, r2 26616 cmp r1, r3, asr #6 26617 lsl r2, r3, #2 26618 ldrhlt r1, [r8, #-14] 26619 mov r3, r2 26620 ldr r8, .L4307 26621 add r0, r0, r3 26622 sublt r2, r1, r2 26623 ldr r1, [r8, #-128] 26624 bl ftl_memcpy 26625 ldrb r2, [r8, #-2546] @ zero_extendqisi2 26626 mov r1, #0 26627 ldr r0, [r7, #12] 26628 lsl r2, r2, #1 26629 bl ftl_memset 26630 ldr r3, [r7, #12] 26631 str r10, [r3] 26632 sub r3, r8, #3104 26633 ldrh r3, [r3, #-14] 26634 ldrb r1, [r8, #-3127] @ zero_extendqisi2 26635 ldr r0, [r7, #4] 26636 ldr r10, [r7, #12] 26637 mul r1, r1, r3 26638 lsl r1, r1, #2 26639 bl js_hash 26640 ldr r2, .L4307+32 26641 str r0, [r10, #4] 26642 ldr r3, [r7, #12] 26643 ldr r2, [r2, #1096] 26644 ldr r2, [r2, #132] 26645.L4302: 26646 str r2, [r3, #8] 26647 b .L4202 26648.L4198: 26649 ldr r8, .L4307 26650 mov r1, #1 26651 ldr r2, [sp, #16] 26652 mov r0, r7 26653 ldr r3, [r8, #-128] 26654 ldr r3, [r3, r2, lsl #2] 26655 str r3, [r7, #24] 26656 bl sblk_read_page 26657 ldr r3, [r7, #36] 26658 cmn r3, #1 26659 cmpne r3, #512 26660 bne .L4205 26661 ldr r3, .L4307+64 26662 mvn r0, #0 26663 ldr r2, [r7, #24] 26664 ldrh r1, [r3] 26665 ldr r3, .L4307+32 26666 ldrb r3, [r3, #1153] @ zero_extendqisi2 26667 lsr r2, r2, r1 26668 rsb r3, r3, #24 26669 sub r3, r3, r1 26670 ldrb r1, [r8, #-3136] @ zero_extendqisi2 26671 bic r0, r2, r0, lsl r3 26672 bl __aeabi_uidiv 26673 mov r1, #0 26674 uxth r0, r0 26675 bl ftl_sblk_dump 26676 ldr r3, [r7, #36] 26677 cmn r3, #1 26678 cmpne r3, #512 26679 bne .L4205 26680 ldr r3, [r7, #12] 26681 mvn r2, #0 26682 str r2, [r3, #4] 26683 ldr r3, [r7, #36] 26684 cmp r3, r2 26685 cmpne r3, #512 26686 bne .L4205 26687 movw r2, #1223 26688 ldr r1, .L4307+8 26689 ldr r0, .L4307+12 26690 bl printk 26691 bl dump_stack 26692.L4205: 26693 ldr r3, [r7, #12] 26694 ldr r2, .L4307+32 26695 ldr r1, [r3, #4] 26696 ldr r2, [r2, #2780] 26697 cmp r1, r2 26698 ldr r1, [sp, #16] 26699 mvncs r2, #0 26700 strcs r2, [r3, #4] 26701 ldr r3, [r7, #12] 26702 ldr r2, [r3, #4] 26703 ldr r3, .L4307 26704 ldr r3, [r3, #-132] 26705 str r2, [r3, r1, lsl #2] 26706 ldr r3, [r7, #12] 26707 ldr r2, [r7, #24] 26708 b .L4302 26709.L4208: 26710 ldrb r3, [r2, #1159] @ zero_extendqisi2 26711 ldr r1, .L4307+68 26712 cmp r3, #0 26713 umull r2, r3, r9, r1 26714 beq .L4211 26715 ldr r2, [sp, #20] 26716 lsr r3, r3, #1 26717 ldr ip, [sp, #12] 26718 uxtah r2, r2, r3 26719 add r3, r3, r3, lsl #1 26720 add r2, ip, r2, lsl #1 26721 ldr ip, .L4307+60 26722 sub r3, r9, r3 26723 ldrh r2, [r2, #96] 26724 ldrh ip, [ip] 26725 mla r2, ip, r2, r4 26726 uxtah r3, r2, r3 26727.L4306: 26728 str r3, [r0, #1256] 26729 mov r0, #48 26730 mul r7, r0, r7 26731 ldr r3, .L4307+32 26732 umull r0, r1, r9, r1 26733 add r2, r3, #1232 26734 add r2, r2, r7 26735 add r7, r3, r7 26736 ldrh ip, [r2, #32] 26737 ldr r2, .L4307 26738 lsr r1, r1, #1 26739 ldr r3, [r7, #1256] 26740 add r1, r1, r1, lsl #1 26741 ldr r2, [r2, #-124] 26742 sub r1, r9, r1 26743 lsl r1, r1, #24 26744 add r1, r1, #16777216 26745 orr r1, r1, r3 26746 str r1, [r2, ip, lsl #2] 26747.L4233: 26748 ldr r3, .L4307 26749 ldrb r2, [r3, #-2542] @ zero_extendqisi2 26750 cmp r2, #0 26751 beq .L4215 26752 ldr r2, [sp, #40] 26753 ldrh r2, [r2] 26754 cmp r2, r4 26755 bcs .L4215 26756 tst r9, #1 26757 beq .L4215 26758 ldr r1, [r3, #-3124] 26759 mvn r2, #0 26760 ldr r0, [sp, #16] 26761 ldr ip, [sp, #48] 26762 strb r2, [r1, r0] 26763 add r1, sp, #80 26764 ldr r0, [sp, #28] 26765 add r1, r1, r0, lsl #2 26766 ldrh r0, [sp, #48] 26767 ldr r1, [r1, #-24] 26768 strh r0, [r1, #32] @ movhi 26769 ldrb r0, [r1, #1] @ zero_extendqisi2 26770 ldr r1, [r3, #-3124] 26771 strb r0, [r1, ip] 26772 ldr r1, [sp, #16] 26773 ldr r3, [r3, #-128] 26774 str r2, [r3, r1, lsl #2] 26775.L4215: 26776 ldr r3, [sp, #32] 26777 add r3, r3, #1 26778 str r3, [sp, #32] 26779 b .L4192 26780.L4211: 26781 ldr r2, [sp, #20] 26782 ubfx r3, r3, #1, #16 26783 add r3, r2, r3 26784 ldr r2, [sp, #12] 26785 add r3, r2, r3, lsl #1 26786 ldr r2, .L4307+60 26787 ldrh r3, [r3, #96] 26788 ldrh r2, [r2] 26789 mla r3, r2, r3, r4 26790 b .L4306 26791.L4207: 26792 cmp r1, #2 26793 bne .L4214 26794 ldrb r3, [r3, #-3126] @ zero_extendqisi2 26795 cmp r3, #0 26796 bne .L4213 26797 ldr r2, [sp, #20] 26798 ldr r3, [sp, #28] 26799 add r3, r3, r2 26800 ldr r2, [sp, #12] 26801 add r3, r2, r3, lsl #1 26802 ldr r2, .L4307+60 26803 ldrh r3, [r3, #96] 26804 ldrh r2, [r2] 26805 mla r3, r2, r3, r4 26806.L4303: 26807 orr r3, r3, #33554432 26808 str r3, [r0, #1256] 26809 b .L4214 26810.L4213: 26811 ldr r3, [sp, #20] 26812 ldr r2, [sp, #12] 26813 add r3, r3, r9, lsr #1 26814 add r3, r2, r3, lsl #1 26815 ldr r2, .L4307+60 26816 ldrh r3, [r3, #96] 26817 ldrh r2, [r2] 26818 mla r3, r2, r3, r4 26819 and r2, r9, #1 26820 add r3, r3, r2 26821 b .L4303 26822.L4220: 26823 add r0, sp, #80 26824 add ip, sp, #80 26825 add r0, r0, r3, lsl #2 26826 add r3, ip, r3, lsl #2 26827 ldr r3, [r3, #-20] 26828 ldr r0, [r0, #-24] 26829 ldrb r3, [r3, #1] @ zero_extendqisi2 26830 strb r3, [r0] 26831.L4219: 26832 uxth r3, r1 26833 add r1, r1, #1 26834 cmp r3, r2 26835 blt .L4220 26836 add r3, sp, #80 26837 add r2, r3, r2, lsl #2 26838 ldr r3, [r2, #-24] 26839.L4304: 26840 smulbb r1, r6, r5 26841 mvn r2, #0 26842 strb r2, [r3] 26843 ldr r0, [sp, #56] 26844 uxtb r1, r1 26845 bl sblk_prog_page 26846 b .L4221 26847.L4217: 26848 ldrb r3, [r7, #-3126] @ zero_extendqisi2 26849 cmp r3, #0 26850 beq .L4226 26851 ldrb r3, [r7, #-3125] @ zero_extendqisi2 26852 cmp r3, #0 26853 bne .L4227 26854.L4226: 26855 ldr r2, [sp, #36] 26856 sub r1, r2, #1 26857.L4228: 26858 uxth r2, r3 26859 add r3, r3, #1 26860 cmp r2, r1 26861 blt .L4229 26862 add r3, sp, #80 26863 add r1, r3, r1, lsl #2 26864 ldr r3, [r1, #-24] 26865 b .L4304 26866.L4227: 26867 mov r1, r6 26868 add r0, sp, #56 26869 bl sblk_3d_mlc_prog_pages 26870 b .L4221 26871.L4229: 26872 add r0, sp, #80 26873 add ip, sp, #80 26874 add r0, r0, r2, lsl #2 26875 add r2, ip, r2, lsl #2 26876 ldr r2, [r2, #-20] 26877 ldr r0, [r0, #-24] 26878 ldrb r2, [r2, #1] @ zero_extendqisi2 26879 strb r2, [r0] 26880 b .L4228 26881.L4308: 26882 .align 2 26883.L4307: 26884 .word .LANCHOR3 26885 .word .LANCHOR0+2824 26886 .word .LANCHOR1+2509 26887 .word .LC0 26888 .word .LANCHOR0+1232 26889 .word .LANCHOR2 26890 .word .LC297 26891 .word .LC298 26892 .word .LANCHOR0 26893 .word .LANCHOR2+2114 26894 .word .LANCHOR3-3118 26895 .word 1431655766 26896 .word .LANCHOR2+3650 26897 .word .LANCHOR3-3104 26898 .word -178307901 26899 .word .LANCHOR3-3074 26900 .word .LANCHOR3-3138 26901 .word -1431655765 26902 .fnend 26903 .size gc_do_copy_back, .-gc_do_copy_back 26904 .align 2 26905 .global zftl_do_gc 26906 .syntax unified 26907 .arm 26908 .fpu softvfp 26909 .type zftl_do_gc, %function 26910zftl_do_gc: 26911 .fnstart 26912 @ args = 0, pretend = 0, frame = 8 26913 @ frame_needed = 0, uses_anonymous_args = 0 26914 push {r4, r5, r6, r7, r8, r9, r10, fp, lr} 26915 .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} 26916 movw r3, #2788 26917 ldr r4, .L4535 26918 cmp r0, #1 26919 .pad #36 26920 sub sp, sp, #36 26921 mov r10, r0 26922 ldr r5, .L4535+4 26923 add r9, r4, #2784 26924 ldrh r8, [r4, r3] 26925 ldrh r6, [r9] 26926 movw r3, #2786 26927 ldr r7, [r4, #1096] 26928 ldrh fp, [r4, r3] 26929 add r6, r8, r6 26930 uxth r6, r6 26931 beq .L4310 26932.L4322: 26933 ldrb r3, [r5, #-144] @ zero_extendqisi2 26934 cmp r3, #6 26935 ldrls pc, [pc, r3, asl #2] 26936 b .L4435 26937.L4313: 26938 .word .L4312 26939 .word .L4314 26940 .word .L4315 26941 .word .L4316 26942 .word .L4317 26943 .word .L4318 26944 .word .L4319 26945.L4318: 26946 ldr r8, .L4535+40 26947 mov r7, #0 26948.L4320: 26949 bl gc_check_data_one_wl 26950 subs r9, r0, #0 26951 beq .L4431 26952 ldr r3, [r4, #1096] 26953 mov r6, #0 26954 strh r6, [r8, #52] @ movhi 26955 ldrh r0, [r3, #80] 26956 bl ftl_free_sblk 26957 ldr r2, [r4, #1096] 26958 mvn r3, #0 26959 ldr r1, [r4, #2800] 26960 ldr r0, [r4, #2832] 26961 strh r3, [r2, #80] @ movhi 26962 strh r3, [r1, #126] @ movhi 26963 strh r3, [r2, #130] @ movhi 26964 bl zbuf_free 26965 str r6, [r4, #2832] 26966 strb r6, [r5, #-144] 26967 b .L4532 26968.L4310: 26969 ldr r3, [r5, #-8] 26970 cmp r3, #0 26971 bne .L4321 26972 ldr r2, [r5, #-4] 26973 cmp r2, #0 26974 beq .L4322 26975.L4321: 26976 ldr r2, .L4535+60 26977 ldrh r2, [r2, #-4] 26978 cmp r6, r2, lsr #2 26979 bls .L4322 26980 movw r2, #2804 26981 ldrh r2, [r4, r2] 26982 cmp r2, r6 26983 bcs .L4322 26984 str r3, [sp, #24] 26985 bl timer_get_time 26986 ldr r3, [sp, #24] 26987 add r3, r3, #20 26988 cmp r3, r0 26989 movcc r3, #0 26990 strcc r3, [r5, #-8] 26991 ldr r3, [r5, #-4] 26992 add r3, r3, #20 26993 str r3, [sp, #24] 26994 bl timer_get_time 26995 ldr r3, [sp, #24] 26996 cmp r3, r0 26997 movcc r3, #0 26998 strcc r3, [r5, #-4] 26999 ldr r3, [r4, #1096] 27000 ldrh r3, [r3, #124] 27001 cmp r3, #0 27002 bne .L4322 27003.L4435: 27004 mov r7, #16 27005 b .L4309 27006.L4312: 27007 movw r3, #2790 27008 ldrh r2, [r7, #80] 27009 ldrh r9, [r4, r3] 27010 movw r3, #2792 27011 ldrh r3, [r4, r3] 27012 add r8, r8, fp 27013 uxth r8, r8 27014 add r9, r9, r3 27015 movw r3, #65535 27016 cmp r2, r3 27017 uxth r9, r9 27018 beq .L4325 27019 cmp r10, #0 27020 bne .L4326 27021 movw r3, #2804 27022 ldrh r3, [r4, r3] 27023 cmp r6, r3, lsl #1 27024 bge .L4435 27025.L4326: 27026 ldr r10, .L4535+60 27027 ldrh r1, [r10, #-6] 27028 sub r0, r10, #12 27029 add r1, r1, #1 27030 uxth r1, r1 27031 strh r1, [r10, #-6] @ movhi 27032 bl _list_get_gc_head_node 27033 movw r3, #65535 27034 cmp r0, r3 27035 beq .L4328 27036 ldr r1, [r4, #1092] 27037 lsl r2, r0, #1 27038 ldr r3, [r5, #-140] 27039 ldrh r2, [r1, r2] 27040 ldrh r1, [r10, #-8] 27041 add r3, r3, #1 27042 str r3, [r5, #-140] 27043 cmp r1, r2 27044 bcs .L4329 27045 movw r1, #1080 27046 ldrh r1, [r4, r1] 27047 cmp r3, r1, lsr #4 27048 bls .L4328 27049 movw r3, #2808 27050 ldrh r3, [r4, r3] 27051 cmp r3, r2 27052 bls .L4328 27053.L4329: 27054 ldrb r2, [r5, #-3119] @ zero_extendqisi2 27055 mov r1, #0 27056 bl gc_add_sblk 27057 cmp r0, #0 27058 beq .L4330 27059 mov r3, #1 27060 strb r3, [r5, #-144] 27061 mov r3, #0 27062 str r3, [r5, #-140] 27063 b .L4435 27064.L4328: 27065 mov r3, #0 27066 strh r3, [r10, #-6] @ movhi 27067.L4330: 27068 cmp r8, #15 27069 movls r9, #2 27070 bls .L4331 27071 movw r3, #2794 27072 clz r9, r9 27073 ldrh r2, [r4, r3] 27074 lsr r9, r9, #5 27075 ldrh r3, [r10, #-2] 27076 cmp r2, r3 27077 orrhi r9, r9, #1 27078 cmp r9, #0 27079 movne r9, #2 27080 moveq r9, #1 27081.L4331: 27082 ldr r3, .L4535+8 27083 ldr r3, [r3] 27084 tst r3, #256 27085 beq .L4332 27086 ldrh r1, [r7, #80] 27087 ldr r3, [r4, #1096] 27088 ldrb r2, [r5, #-3119] @ zero_extendqisi2 27089 str r1, [sp, #16] 27090 ldrh r1, [r3, #122] 27091 ldr r0, .L4535+12 27092 str r1, [sp, #12] 27093 ldrh r1, [r3, #120] 27094 str r1, [sp, #8] 27095 movw r1, #2807 27096 ldrh r3, [r3, #124] 27097 str r8, [sp] 27098 str r3, [sp, #4] 27099 mov r3, r6 27100 bl printk 27101.L4332: 27102 mov r2, #1 27103 mov r1, r9 27104 ldrb r0, [r5, #-3119] @ zero_extendqisi2 27105 bl gc_search_src_blk 27106 cmp r0, #0 27107 ble .L4333 27108.L4334: 27109 mov r3, #1 27110.L4533: 27111 strb r3, [r5, #-144] 27112 b .L4435 27113.L4333: 27114 mov r2, #1 27115 mov r1, #3 27116 ldrb r0, [r5, #-3119] @ zero_extendqisi2 27117 bl gc_search_src_blk 27118 cmp r0, #0 27119 bgt .L4334 27120 b .L4435 27121.L4325: 27122 cmp r10, #1 27123 bne .L4335 27124 ldr r3, [r4, #2800] 27125 ldrh r3, [r3, #150] 27126 cmp r3, #0 27127 beq .L4336 27128 movw r3, #2788 27129 ldrh r3, [r4, r3] 27130 cmp r3, #8 27131 bls .L4336 27132 bl gc_ink_check_sblk 27133.L4336: 27134 bl gc_scan_static_data 27135 ldr r3, [r4, #1096] 27136 ldrh r3, [r3, #122] 27137 cmp r3, #0 27138 beq .L4337 27139.L4338: 27140 mov r3, #1 27141 strb r3, [r5, #-3119] 27142 b .L4533 27143.L4337: 27144 bl gc_static_wearleveling 27145 subs r7, r0, #0 27146 bne .L4338 27147 bl gc_block_vpn_scan 27148 cmp r8, #0 27149 ldr fp, .L4535+60 27150 beq .L4339 27151 cmp r6, r9 27152 bcs .L4340 27153 ldrh r3, [fp, #-4] 27154 cmp r3, r6 27155 bhi .L4341 27156.L4340: 27157 ldrh r2, [fp, #-4] 27158 add r3, r6, r9 27159 cmp r3, r2 27160 blt .L4341 27161 movw r3, #2794 27162 ldrh r2, [r4, r3] 27163 ldrh r3, [fp, #-2] 27164 cmp r2, r3 27165 bcc .L4339 27166.L4341: 27167 mov r1, #1 27168 mov r0, #16 27169 strb r1, [r5, #-3119] 27170 str r1, [sp, #24] 27171 bl zftl_get_gc_node.part.10 27172 movw r2, #65535 27173 cmp r0, r2 27174 beq .L4342 27175 ldr r2, [r4, #1092] 27176 lsl r3, r0, #1 27177 ldr r1, [sp, #24] 27178 ldrh r3, [r2, r3] 27179 ldrh r2, [r5, #-136] 27180 cmp r3, r2 27181 movcs r3, #0 27182 movcc r3, #1 27183 cmp r6, #2 27184 movls r3, #0 27185 cmp r3, #0 27186 beq .L4342 27187 mov r2, #0 27188 strb r2, [r5, #-3119] 27189 str r2, [r5, #-140] 27190 bl gc_add_sblk 27191 cmp r0, #0 27192 bne .L4334 27193.L4342: 27194 mov r1, #0 27195 ldr r0, .L4535+16 27196 bl _list_get_gc_head_node 27197 movw r2, #65535 27198 cmp r0, r2 27199 beq .L4343 27200 ldr r2, [r4, #1092] 27201 lsl r3, r0, #1 27202 ldrh r3, [r2, r3] 27203 ldrh r2, [r5, #-136] 27204 cmp r3, r2 27205 movcs r3, #0 27206 movcc r3, #1 27207 cmp r6, #2 27208 movls r3, #0 27209 cmp r3, #0 27210 beq .L4343 27211 mov r2, #0 27212 mov r1, #1 27213 strb r2, [r5, #-3119] 27214 str r2, [r5, #-140] 27215 bl gc_add_sblk 27216 cmp r0, #0 27217 bne .L4334 27218.L4343: 27219 ldrh r3, [r5, #-136] 27220 ldrh r2, [fp, #-8] 27221 ldr r0, .L4535+16 27222 add r3, r3, #1 27223 ldr r1, [r5, #-140] 27224 uxth r3, r3 27225 str r2, [sp, #28] 27226 cmp r3, r2, lsr #5 27227 strh r3, [r5, #-136] @ movhi 27228 add r1, r1, #1 27229 movhi r3, #4 27230 str r1, [r5, #-140] 27231 strhhi r3, [r5, #-136] @ movhi 27232 mov r3, #0 27233 strh r3, [r0, #-8] @ movhi 27234 strh r3, [r0, #-6] @ movhi 27235 strh r3, [r0, #-4] @ movhi 27236 movw r0, #1080 27237 ldrh r0, [r4, r0] 27238 cmp r1, r0, lsr #5 27239 bls .L4345 27240 movw r1, #2794 27241 ldrh r1, [r4, r1] 27242 cmp r1, r8 27243 bls .L4345 27244 mov r1, r3 27245 sub r0, fp, #12 27246 str r3, [sp, #24] 27247 bl _list_get_gc_head_node 27248 movw r1, #65535 27249 ldr r3, [sp, #24] 27250 cmp r0, r1 27251 ldr r2, [sp, #28] 27252 bne .L4346 27253.L4519: 27254 mov r7, #16 27255 b .L4347 27256.L4346: 27257 ldr r1, [r4, #1092] 27258 lsl r0, r0, #1 27259 ldrh r1, [r1, r0] 27260 ldrb r0, [r5, #-3127] @ zero_extendqisi2 27261 mul r2, r2, r0 27262 cmp r1, r2 27263 strle r3, [r5, #-140] 27264 movle r2, #4 27265 bgt .L4519 27266.L4527: 27267 mov r1, #2 27268.L4518: 27269 ldrb r0, [r5, #-3119] @ zero_extendqisi2 27270 bl gc_search_src_blk 27271 uxth r0, r0 27272 cmp r0, #0 27273 beq .L4519 27274 b .L4334 27275.L4345: 27276 movw r3, #2794 27277 ldrh r2, [r4, r3] 27278 ldrh r3, [fp, #-2] 27279 cmp r2, r3 27280 movcs r2, #1 27281 bcs .L4527 27282.L4350: 27283 movw r3, #2790 27284 ldrh r3, [r4, r3] 27285 cmp r3, #0 27286 bne .L4351 27287 movw r3, #2792 27288 ldrh r3, [r4, r3] 27289 cmp r3, #8 27290 bls .L4352 27291.L4351: 27292 mov r2, #4 27293 mov r1, #1 27294 b .L4518 27295.L4352: 27296 ldr r2, .L4535+40 27297 movw r3, #2106 27298 ldrh r3, [r2, r3] 27299 cmp r3, #0 27300 bne .L4519 27301.L4347: 27302 ldr r3, [r4, #2812] 27303 cmp r3, #0 27304 beq .L4353 27305 mov r3, #0 27306 mov r1, #0 27307 str r3, [r4, #2812] 27308 subs r3, r8, r3 27309 movne r3, #1 27310 cmp r6, #15 27311 movhi r3, #0 27312 ldr r0, .L4535+20 27313 cmp r3, #0 27314 movne r3, #1 27315 strb r3, [r5, #-3119] 27316 bl _list_get_gc_head_node 27317 movw r2, #65535 27318 cmp r0, r2 27319 beq .L4356 27320 ldr r2, [r4, #1092] 27321 lsl r3, r0, #1 27322 ldrh r3, [r2, r3] 27323 cmp r3, #8 27324 bhi .L4356 27325 mov r3, #1 27326 ldrb r2, [r5, #-3119] @ zero_extendqisi2 27327 mov r1, #0 27328 str r3, [r4, #2812] 27329 bl gc_add_sblk 27330 cmp r0, #0 27331 bne .L4334 27332.L4356: 27333 mov r1, #0 27334 ldr r0, .L4535+16 27335 bl _list_get_gc_head_node 27336 movw r2, #65535 27337 cmp r0, r2 27338 beq .L4357 27339 ldr r2, [r4, #1092] 27340 lsl r3, r0, #1 27341 ldrh r3, [r2, r3] 27342 cmp r3, #4 27343 bhi .L4357 27344 mov r3, #1 27345 ldrb r2, [r5, #-3119] @ zero_extendqisi2 27346 mov r1, #0 27347 str r3, [r4, #2812] 27348 bl gc_add_sblk 27349 cmp r0, #0 27350 bne .L4334 27351.L4357: 27352 mov r0, #0 27353 bl zftl_get_gc_node.part.10 27354 movw r2, #65535 27355 cmp r0, r2 27356 beq .L4353 27357 ldr r2, [r4, #1092] 27358 lsl r3, r0, #1 27359 ldrh r3, [r2, r3] 27360 cmp r3, #4 27361 bhi .L4353 27362 mov r1, #1 27363 ldrb r2, [r5, #-3119] @ zero_extendqisi2 27364 str r1, [r4, #2812] 27365 bl gc_add_sblk 27366 cmp r0, #0 27367 bne .L4334 27368.L4353: 27369 ldr r3, [r4, #1096] 27370 mov r1, #1 27371 strb r1, [r5, #-3119] 27372 ldrh fp, [r3, #124] 27373 cmp fp, #0 27374 movne r3, #0 27375 strbne r1, [r5, #-144] 27376 strbne r3, [r5, #-3119] 27377 bne .L4309 27378 movw r3, #2804 27379 ldrh r2, [r4, r3] 27380 cmp r6, r2 27381 bcs .L4359 27382 cmp r8, #0 27383 beq .L4360 27384 cmp r8, #16 27385 bls .L4361 27386 ldr r6, .L4535+60 27387 movw r3, #2794 27388 ldrh r2, [r4, r3] 27389 ldrh r3, [r6, #-2] 27390 cmp r2, r3 27391 bhi .L4361 27392 mov r2, #4 27393 mov r0, r1 27394 bl gc_search_src_blk 27395 uxth r0, r0 27396 cmp r0, #0 27397 bne .L4362 27398.L4523: 27399 ldrb r0, [r5, #-3119] @ zero_extendqisi2 27400 mov r2, #4 27401 mov r1, #3 27402.L4525: 27403 bl gc_search_src_blk 27404 uxth r0, r0 27405.L4363: 27406 cmp r0, #0 27407 bne .L4365 27408 b .L4309 27409.L4339: 27410 ldrh r3, [r5, #-136] 27411 ldrh r2, [fp, #-8] 27412 cmp r3, r2, lsr #5 27413 movcs r3, #4 27414 strhcs r3, [r5, #-136] @ movhi 27415 b .L4519 27416.L4335: 27417 movw r3, #2804 27418 ldrh r3, [r4, r3] 27419 cmp r3, r6 27420 bcs .L4519 27421 ldr r3, [r4, #1096] 27422 ldrh r3, [r3, #124] 27423 cmp r3, #0 27424 beq .L4435 27425 b .L4519 27426.L4362: 27427 mov r1, fp 27428 sub r0, r6, #12 27429 bl _list_get_gc_head_node 27430 movw r3, #65535 27431 cmp r0, r3 27432 beq .L4365 27433 ldr r1, [r4, #1092] 27434 lsl r2, r0, #1 27435 ldr r3, [r5, #-140] 27436 ldrh r2, [r1, r2] 27437 ldrh r1, [r6, #-8] 27438 add r3, r3, #1 27439 str r3, [r5, #-140] 27440 cmp r1, r2 27441 bcs .L4366 27442 movw r1, #1080 27443 ldrh r1, [r4, r1] 27444 cmp r3, r1, lsr #4 27445 bls .L4365 27446 movw r3, #2808 27447 ldrh r3, [r4, r3] 27448 cmp r3, r2 27449 bls .L4365 27450.L4366: 27451 ldrb r2, [r5, #-3119] @ zero_extendqisi2 27452 mov r1, #0 27453 bl gc_add_sblk 27454 mov r3, #1 27455 str r3, [r4, #2812] 27456 mov r3, #0 27457 str r3, [r5, #-140] 27458.L4365: 27459 mov r3, #1 27460 b .L4526 27461.L4361: 27462 mov r2, #1 27463 mov r1, #2 27464 mov r0, r2 27465.L4529: 27466 bl gc_search_src_blk 27467 uxth r0, r0 27468 cmp r0, #0 27469 bne .L4365 27470 b .L4523 27471.L4360: 27472 cmp r6, #16 27473 strb r8, [r5, #-3119] 27474 movhi r2, #4 27475 movhi r1, #3 27476 movhi r0, r8 27477 bhi .L4525 27478 mov r2, r1 27479 mov r0, r8 27480 b .L4529 27481.L4359: 27482 cmp r10, #1 27483 bne .L4309 27484 cmp r6, r2, lsl #1 27485 bge .L4369 27486 cmp r9, r8, lsr #1 27487 bcs .L4370 27488 ldr r2, .L4535+60 27489 movw r1, #2794 27490 ldrh r0, [r4, r1] 27491 ldrh r1, [r2, #-2] 27492 cmp r0, r1 27493 ldrhcc r2, [r2, #-4] 27494 lsrcc r2, r2, #2 27495 strhcc r2, [r4, r3] @ movhi 27496 bcc .L4309 27497.L4370: 27498 mov r0, #8 27499 bl zftl_get_gc_node.part.10 27500 movw r2, #65535 27501 cmp r0, r2 27502 beq .L4371 27503 ldr r2, [r4, #1092] 27504 lsl r3, r0, #1 27505 ldrh r3, [r2, r3] 27506 cmp r3, #3 27507 movhi r3, #0 27508 movls r3, #1 27509 cmp r6, #0 27510 moveq r3, #0 27511 cmp r3, #0 27512 beq .L4371 27513 mov r2, #0 27514 mov r1, #1 27515 strb r2, [r5, #-3119] 27516 bl gc_add_sblk 27517 cmp r0, #0 27518 bne .L4365 27519.L4371: 27520 mov r1, #0 27521 ldr r0, .L4535+20 27522 bl _list_get_gc_head_node 27523 movw r3, #65535 27524 mov fp, r0 27525 cmp r0, r3 27526 ldr r10, .L4535+60 27527 bne .L4372 27528.L4377: 27529 cmp r8, #1 27530 bhi .L4373 27531.L4374: 27532 cmp r6, r9 27533 bcs .L4381 27534 mov r6, #0 27535 mov r0, #4 27536 strb r6, [r5, #-3119] 27537 bl zftl_get_gc_node.part.10 27538 movw r3, #65535 27539 cmp r0, r3 27540 beq .L4381 27541 ldr r3, [r4, #1092] 27542 lsl r0, r0, #1 27543 ldrh r1, [r10, #-8] 27544 ldrh r2, [r3, r0] 27545 ldrb r3, [r5, #-3127] @ zero_extendqisi2 27546 mul r3, r3, r1 27547 cmp r2, r3, asr #1 27548 ble .L4383 27549.L4381: 27550 ldrh r3, [r10, #-4] 27551 movw r2, #2804 27552 lsr r3, r3, #2 27553 strh r3, [r4, r2] @ movhi 27554.L4309: 27555 mov r0, r7 27556 add sp, sp, #36 27557 @ sp needed 27558 pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} 27559.L4372: 27560 movw r2, #1080 27561 ldr r3, [r5, #-140] 27562 ldrh r2, [r4, r2] 27563 add r3, r3, #1 27564 str r3, [r5, #-140] 27565 cmp r3, r2, lsr #4 27566 lsl r3, r0, #1 27567 str r3, [sp, #24] 27568 bls .L4375 27569 ldr r3, [r4, #1092] 27570 lsl r2, r0, #1 27571 mov r1, #0 27572 str r1, [r5, #-140] 27573 ldrh r2, [r3, r2] 27574 movw r3, #2808 27575 ldrh r3, [r4, r3] 27576 cmp r2, r3 27577 bcs .L4375 27578 mov r3, #1 27579 mov r2, r3 27580 strb r3, [r5, #-3119] 27581 str r3, [sp, #24] 27582 bl gc_add_sblk 27583 cmp r0, #0 27584 ldr r3, [sp, #24] 27585 beq .L4375 27586.L4526: 27587 strb r3, [r5, #-144] 27588 b .L4309 27589.L4375: 27590 ldr r3, [r4, #1092] 27591 lsl r2, fp, #1 27592 ldrh r2, [r3, r2] 27593 ldrh r3, [r10, #-8] 27594 cmp r2, r3, lsr #1 27595 bhi .L4376 27596 mov r2, #0 27597 mov r1, #1 27598 mov r0, fp 27599 bl gc_add_sblk 27600 b .L4365 27601.L4376: 27602 movw r3, #2790 27603 movw r1, #2792 27604 ldrh r1, [r4, r1] 27605 ldrh r3, [r4, r3] 27606 add r3, r3, r1 27607 ldrh r1, [r10, #-4] 27608 cmp r3, r1, lsl #1 27609 ble .L4377 27610 movw r3, #2808 27611 ldrh r3, [r4, r3] 27612 cmp r3, r2 27613 bcc .L4374 27614 b .L4377 27615.L4373: 27616 cmp r8, #16 27617 mov r1, #1 27618 strb r1, [r5, #-3119] 27619 bls .L4378 27620 movw r3, #2794 27621 ldrh r2, [r4, r3] 27622 ldrh r3, [r10, #-2] 27623 cmp r2, r3 27624 movls r2, #4 27625 movls r0, r1 27626 bls .L4531 27627.L4378: 27628 mov r2, #1 27629 mov r1, #2 27630 mov r0, r2 27631.L4531: 27632 bl gc_search_src_blk 27633 uxth r0, r0 27634 cmp r0, #0 27635 bne .L4379 27636 mov r2, #4 27637 mov r1, #3 27638 ldrb r0, [r5, #-3119] @ zero_extendqisi2 27639 bl gc_search_src_blk 27640 uxth r0, r0 27641.L4379: 27642 ldrh r3, [r10, #-4] 27643 cmp r6, r9, lsr #1 27644 movw r2, #2804 27645 lsrhi r3, r3, #2 27646 lsrls r3, r3, #1 27647.L4524: 27648 strh r3, [r4, r2] @ movhi 27649 b .L4363 27650.L4383: 27651 mov r2, #4 27652 mov r1, #3 27653 mov r0, r6 27654 bl gc_search_src_blk 27655 ldrh r3, [r10, #-4] 27656 uxth r0, r0 27657 movw r2, #2804 27658 lsr r3, r3, #1 27659 b .L4524 27660.L4369: 27661 ldr r2, .L4535+60 27662 ldrh r2, [r2, #-4] 27663 lsr r2, r2, #2 27664 strh r2, [r4, r3] @ movhi 27665 movw r3, #2106 27666 ldr r2, .L4535+40 27667 ldrh r3, [r2, r3] 27668 cmp r3, #0 27669 moveq r7, #0 27670 b .L4309 27671.L4314: 27672 movw r6, #2824 27673 movw r3, #65535 27674 ldrh r2, [r4, r6] 27675 cmp r2, r3 27676 bne .L4384 27677 bl gc_get_src_blk 27678 strh r0, [r4, r6] @ movhi 27679.L4384: 27680 movw r3, #2824 27681 movw r1, #65535 27682 ldrh r2, [r4, r3] 27683 cmp r2, r1 27684 beq .L4385 27685 movw r1, #1080 27686 ldrh r1, [r4, r1] 27687 cmp r1, r2 27688 mvnls r2, #0 27689 strhls r2, [r4, r3] @ movhi 27690.L4385: 27691 movw r3, #2824 27692 movw r1, #65535 27693 ldrh r3, [r4, r3] 27694 ldr r2, .L4535+40 27695 cmp r3, r1 27696 beq .L4534 27697 ldrh ip, [r2, #52] 27698 ldr r1, [r4, #1084] 27699 cmp ip, #0 27700 addne r2, r2, #52 27701 movne r0, #0 27702 add r1, r1, r3, lsl #2 27703 bne .L4388 27704.L4387: 27705 ldrb r2, [r1, #2] @ zero_extendqisi2 27706 tst r2, #192 27707 and r2, r2, #224 27708 moveq r1, #1 27709 movne r1, #0 27710 cmp r2, #224 27711 movne r2, r1 27712 orreq r2, r1, #1 27713 cmp r2, #0 27714 beq .L4390 27715 ldr r2, [r4, #1092] 27716 lsl r3, r3, #1 27717 ldrh r3, [r2, r3] 27718 cmp r3, #0 27719 beq .L4392 27720 movw r2, #3306 27721 ldr r1, .L4535+64 27722 ldr r0, .L4535+68 27723 bl printk 27724 bl dump_stack 27725 b .L4392 27726.L4388: 27727 uxth lr, r0 27728 cmp lr, ip 27729 bcs .L4387 27730 ldrh lr, [r2, #2]! 27731 add r0, r0, #1 27732 cmp lr, r3 27733 bne .L4388 27734.L4392: 27735 mvn r2, #0 27736 movw r3, #2824 27737 strh r2, [r4, r3] @ movhi 27738 b .L4435 27739.L4390: 27740 mov r3, #2 27741 b .L4533 27742.L4315: 27743 bl gc_scan_src_blk 27744 cmn r0, #1 27745 moveq r3, #3 27746 beq .L4533 27747 movw r3, #2824 27748 ldr r2, .L4535+40 27749 ldrh r3, [r4, r3] 27750 movw r1, #65535 27751 mov r6, r2 27752 cmp r3, r1 27753 beq .L4334 27754 ldrh r1, [r2, #20] 27755 cmp r1, #0 27756 movne r3, #4 27757 strbne r3, [r5, #-144] 27758 movne r3, #0 27759 strhne r3, [r2, #22] @ movhi 27760 bne .L4435 27761.L4394: 27762 mov r2, #1 27763 lsl r3, r3, #1 27764 strb r2, [r5, #-144] 27765 ldr r2, [r4, #1092] 27766 ldrh r3, [r2, r3] 27767 cmp r3, #0 27768 beq .L4395 27769 movw r2, #3336 27770 ldr r1, .L4535+64 27771 ldr r0, .L4535+68 27772 bl printk 27773 bl dump_stack 27774.L4395: 27775 movw r5, #2824 27776 ldrh r0, [r4, r5] 27777 bl ftl_free_sblk 27778 ldrh r3, [r4, r5] 27779 mov r5, #0 27780 ldr r2, [r4, #1092] 27781 lsl r3, r3, #1 27782 strh r5, [r2, r3] @ movhi 27783 ldrh r3, [r6, #26] 27784 add r3, r3, #1 27785 uxth r3, r3 27786 cmp r3, #8 27787 strhls r3, [r6, #26] @ movhi 27788 bls .L4392 27789 strh r5, [r6, #26] @ movhi 27790 bl ftl_flush 27791 bl pm_flush 27792 bl ftl_ext_info_flush 27793 mov r0, r5 27794 bl ftl_info_flush 27795 b .L4392 27796.L4316: 27797 ldr r7, .L4535+40 27798 mov r8, r7 27799.L4489: 27800 bl gc_scan_src_blk_one_page 27801 ldr r3, .L4535+24 27802 ldrh r2, [r7, #2] 27803 ldrh r3, [r3] 27804 cmp r2, r3 27805 bcs .L4398 27806 cmp r6, #7 27807 bls .L4489 27808 b .L4435 27809.L4398: 27810 ldrh r3, [r7, #20] 27811 ldrh r1, [r7] 27812 cmp r3, #0 27813 beq .L4399 27814 mov r2, #4 27815 ldr r0, [r4, #1092] 27816 strb r2, [r5, #-144] 27817 mov r2, #0 27818 strh r2, [r7, #22] @ movhi 27819 lsl r2, r1, #1 27820 ldrh r2, [r0, r2] 27821 cmp r3, r2 27822 beq .L4400 27823 ldr r0, .L4535+8 27824 ldr r0, [r0] 27825 tst r0, #1024 27826 beq .L4400 27827 ldr r0, .L4535+28 27828 bl printk 27829.L4400: 27830 movw r3, #2824 27831 ldr r2, [r4, #1092] 27832 ldrh r3, [r4, r3] 27833 lsl r3, r3, #1 27834 ldrh r2, [r2, r3] 27835 ldrh r3, [r8, #20] 27836 cmp r2, r3 27837 beq .L4401 27838 movw r2, #3379 27839 ldr r1, .L4535+64 27840 ldr r0, .L4535+68 27841 bl printk 27842 bl dump_stack 27843.L4401: 27844 movw r3, #2824 27845 ldrh r1, [r8, #20] 27846 ldrh r3, [r4, r3] 27847 ldr r2, [r4, #1092] 27848 lsl r3, r3, #1 27849 strh r1, [r2, r3] @ movhi 27850 b .L4435 27851.L4399: 27852 mov r3, #1 27853 ldr r6, [r4, #1084] 27854 strb r3, [r5, #-144] 27855 ldr r3, .L4535+8 27856 add r6, r6, r1, lsl #2 27857 ldr r3, [r3] 27858 tst r3, #256 27859 beq .L4402 27860 ldrb r2, [r6, #2] @ zero_extendqisi2 27861 ldr r0, .L4535+32 27862 lsr r2, r2, #5 27863 bl printk 27864.L4402: 27865 ldrb r3, [r6, #2] @ zero_extendqisi2 27866 and r2, r3, #224 27867 and r3, r3, #192 27868 cmp r3, #0 27869 cmpne r2, #224 27870 bne .L4403 27871 movw r2, #3389 27872 ldr r1, .L4535+64 27873 ldr r0, .L4535+68 27874 bl printk 27875 bl dump_stack 27876.L4403: 27877 movw r5, #2824 27878 ldrh r0, [r4, r5] 27879 bl ftl_free_sblk 27880 mvn r3, #0 27881 strh r3, [r4, r5] @ movhi 27882 ldrh r3, [r8, #26] 27883 add r3, r3, #1 27884 uxth r3, r3 27885 cmp r3, #8 27886 movhi r3, #0 27887 strhls r3, [r8, #26] @ movhi 27888 strhhi r3, [r8, #26] @ movhi 27889 bls .L4435 27890.L4532: 27891 bl flt_sys_flush 27892 b .L4435 27893.L4317: 27894 cmp r10, #0 27895 bne .L4405 27896 movw r3, #2804 27897 ldrh r3, [r4, r3] 27898 cmp r3, r6 27899 bcc .L4435 27900.L4405: 27901 ldrh r2, [r7, #80] 27902 movw r3, #65535 27903 cmp r2, r3 27904 bne .L4406 27905 ldrb r8, [r5, #-3119] @ zero_extendqisi2 27906 cmp r8, #1 27907 bne .L4406 27908 ldr r9, .L4535+40 27909 bl ftl_flush 27910 movw r3, #2180 27911 mov r1, #5 27912 ldrh r0, [r9, r3] 27913 cmp r0, #0 27914 movne r0, r8 27915 bl zftl_gc_get_free_sblk 27916 movw r3, #65535 27917 mov r6, r0 27918 cmp r0, r3 27919 beq .L4409 27920 ldr r8, [r4, #1084] 27921 add r8, r8, r0, lsl #2 27922 ldrb r3, [r8, #2] @ zero_extendqisi2 27923 tst r3, #224 27924 beq .L4410 27925 movw r2, #3423 27926 ldr r1, .L4535+64 27927 ldr r0, .L4535+68 27928 bl printk 27929 bl dump_stack 27930.L4410: 27931 ldrb r3, [r8, #2] @ zero_extendqisi2 27932 and r3, r3, #15 27933 orr r3, r3, #176 27934 strb r3, [r8, #2] 27935.L4434: 27936 mov r1, #1 27937 mov r0, r6 27938 bl ftl_erase_sblk 27939 mov r3, #5 27940 add r1, r7, #96 27941 strb r3, [r7, #84] 27942 mov r0, r6 27943 bl ftl_get_blk_list_in_sblk 27944 ldr r2, .L4535+60 27945 uxtb r0, r0 27946 mov r8, #0 27947 strh r6, [r7, #80] @ movhi 27948 strb r0, [r7, #89] 27949 mov r1, #255 27950 ldrh r3, [r2, #-8] 27951 strh r8, [r7, #82] @ movhi 27952 strb r8, [r7, #85] 27953 strh r8, [r7, #90] @ movhi 27954 smulbb r0, r3, r0 27955 ldrh r3, [r2, #-30] 27956 strh r0, [r7, #86] @ movhi 27957 sub r7, r2, #16 27958 ldrb r2, [r5, #-3127] @ zero_extendqisi2 27959 ldr r0, [r5, #-132] 27960 mul r2, r2, r3 27961 lsl r2, r2, #2 27962 bl ftl_memset 27963 ldrh r3, [r7, #-14] 27964 mov r1, #255 27965 ldrb r2, [r5, #-3127] @ zero_extendqisi2 27966 ldr r0, [r5, #-128] 27967 mul r2, r2, r3 27968 lsl r2, r2, #2 27969 bl ftl_memset 27970 ldrh r3, [r7, #-14] 27971 mov r1, #255 27972 ldrb r2, [r5, #-3127] @ zero_extendqisi2 27973 ldr r0, [r5, #-3124] 27974 mvn r5, #0 27975 mul r2, r2, r3 27976 bl ftl_memset 27977 ldr r3, [r4, #1096] 27978 strh r5, [r3, #128] @ movhi 27979 strh r5, [r3, #130] @ movhi 27980 str r6, [r3, #132] 27981 bl pm_flush 27982 bl ftl_ext_info_flush 27983 ldr r3, [r4, #2800] 27984 movw r2, #2182 27985 mov r0, r8 27986 strh r8, [r9, #52] @ movhi 27987 strh r6, [r3, #126] @ movhi 27988 movw r3, #2102 27989 strh r8, [r9, r3] @ movhi 27990 ldr r3, .L4535+36 27991 strh r8, [r9, r2] @ movhi 27992 strh r8, [r3] @ movhi 27993 str r5, [r3, #80] 27994 bl ftl_info_flush 27995 b .L4435 27996.L4536: 27997 .align 2 27998.L4535: 27999 .word .LANCHOR0 28000 .word .LANCHOR3 28001 .word .LANCHOR2 28002 .word .LC299 28003 .word .LANCHOR3-3104 28004 .word .LANCHOR3-3100 28005 .word .LANCHOR3-3096 28006 .word .LC300 28007 .word .LC301 28008 .word .LANCHOR0+4928 28009 .word .LANCHOR0+2824 28010 .word .LANCHOR0+4096 28011 .word 1145785929 28012 .word .LANCHOR3-3136 28013 .word .LANCHOR0+1088 28014 .word .LANCHOR3-3088 28015 .word .LANCHOR1+2525 28016 .word .LC0 28017.L4406: 28018 cmp r10, #1 28019 movne r8, #1 28020 moveq r8, #4 28021 cmp r6, #15 28022 ldr r6, .L4535+40 28023 addls r8, r8, #4 28024 add r10, r6, #2176 28025 add r10, r10, #6 28026.L4413: 28027 sub r8, r8, #1 28028 uxtb r8, r8 28029 cmp r8, #255 28030 beq .L4435 28031 bl gc_do_copy_back 28032 ldrb r3, [r5, #-3119] @ zero_extendqisi2 28033 cmp r3, #0 28034 bne .L4414 28035 ldrb r3, [r4, #2769] @ zero_extendqisi2 28036 cmp r3, #3 28037 bhi .L4415 28038 bl ftl_write_commit 28039.L4415: 28040 ldrh r2, [r6, #22] 28041 ldrh r3, [r6, #20] 28042 cmp r2, r3 28043 bcc .L4413 28044 mov r3, #1 28045 strb r3, [r5, #-144] 28046 bl ftl_write_commit 28047 bl ftl_flush 28048 ldrh r3, [r6] 28049 ldr r2, [r4, #1092] 28050 lsl r3, r3, #1 28051 ldrh r3, [r2, r3] 28052 cmp r3, #0 28053 beq .L4417 28054 movw r2, #3507 28055 ldr r1, .L4535+64 28056 ldr r0, .L4535+68 28057 bl printk 28058 bl dump_stack 28059.L4417: 28060 movw r3, #2824 28061 ldr r2, [r4, #1092] 28062 ldrh r0, [r4, r3] 28063 lsl r3, r0, #1 28064 ldrh r3, [r2, r3] 28065 cmp r3, #0 28066 bne .L4418 28067 bl ftl_free_sblk 28068 b .L4392 28069.L4418: 28070 mov r2, #1 28071 mov r1, #0 28072 bl gc_add_sblk 28073 b .L4392 28074.L4414: 28075 ldrh r3, [r10] 28076 cmp r3, #0 28077 beq .L4419 28078 ldr r8, .L4535+44 28079 mov r3, #0 28080 strh r3, [r10] @ movhi 28081 bl sblk_wait_write_queue_completed 28082 bl gc_write_completed 28083 ldr r0, [r8, #912] 28084 cmn r0, #1 28085 beq .L4420 28086 ldrb r3, [r5, #-2542] @ zero_extendqisi2 28087 cmp r3, #0 28088 bne .L4421 28089 ldrb r3, [r5, #-3126] @ zero_extendqisi2 28090 cmp r3, #0 28091 beq .L4422 28092.L4421: 28093 ldr r3, [r4, #2800] 28094 ldr r2, [r3, #156] 28095 ldr r3, .L4535+48 28096 cmp r2, r3 28097 bne .L4422 28098 ldr r7, .L4535+52 28099 ldrb r3, [r4, #1153] @ zero_extendqisi2 28100 ldrb r1, [r5, #-3136] @ zero_extendqisi2 28101 ldrh r2, [r7, #-2] 28102 rsb r3, r3, #24 28103 sub r3, r3, r2 28104 lsr r2, r0, r2 28105 mvn r0, #0 28106 bic r0, r2, r0, lsl r3 28107 bl __aeabi_uidiv 28108 ldr r3, [r4, #1084] 28109 lsl lr, r0, #2 28110 add ip, r3, lr 28111 ldrb r2, [ip, #2] @ zero_extendqisi2 28112 tst r2, #8 28113 beq .L4420 28114 ldrh r1, [r9] 28115 ldrh r7, [r7, #44] 28116 add r1, r1, #8 28117 cmp r1, r7 28118 bge .L4420 28119 ldr r1, .L4535+56 28120 bfc r2, #3, #2 28121 strb r2, [ip, #2] 28122 ldr r2, [r3, r0, lsl #2] 28123 ldrh r1, [r1] 28124 ldrh ip, [r3, lr] 28125 ubfx r2, r2, #11, #8 28126 mul r1, r2, r1 28127 ubfx r7, ip, #0, #11 28128 lsr r2, r2, #3 28129 add r1, r1, r1, lsl #1 28130 add r1, r7, r1, asr #2 28131 bfi ip, r1, #0, #11 28132 strh ip, [r3, lr] @ movhi 28133 ldr r1, [r3, r0, lsl #2] 28134 bfi r1, r2, #11, #8 28135 str r1, [r3, r0, lsl #2] 28136.L4420: 28137 ldr r3, [r4, #1096] 28138 mov r7, #0 28139 str r7, [r8, #912] 28140 strh r7, [r6, #52] @ movhi 28141 ldrh r0, [r3, #80] 28142 bl ftl_free_sblk 28143 ldr r0, [r4, #2832] 28144 mvn r3, #0 28145 ldr r2, [r4, #1096] 28146 ldr r1, [r4, #2800] 28147 cmp r0, r7 28148 strh r3, [r2, #80] @ movhi 28149 strh r3, [r1, #126] @ movhi 28150 strh r3, [r2, #130] @ movhi 28151 beq .L4423 28152 bl zbuf_free 28153.L4423: 28154 str r7, [r4, #2832] 28155 bl flt_sys_flush 28156 movw r2, #3567 28157 ldr r1, .L4535+64 28158 ldr r0, .L4535+68 28159 strb r7, [r5, #-144] 28160 bl printk 28161 bl dump_stack 28162 b .L4435 28163.L4422: 28164 bl ftl_mask_bad_block 28165 b .L4420 28166.L4419: 28167 ldrh r3, [r7, #86] 28168 ldrh r2, [r6, #22] 28169 cmp r3, #1 28170 ldrh r3, [r6, #20] 28171 bls .L4424 28172 cmp r2, r3 28173 bcc .L4413 28174 mov r3, #1 28175 strb r3, [r5, #-144] 28176 ldrh r3, [r6, #52] 28177 add r2, r3, #1 28178 strh r2, [r6, #52] @ movhi 28179 add r3, r6, r3, lsl #1 28180 ldrh r2, [r6] 28181 strh r2, [r3, #54] @ movhi 28182 mvn r3, #0 28183 strh r3, [r6] @ movhi 28184 b .L4435 28185.L4424: 28186 cmp r2, r3 28187 mov r1, #5 28188 strb r1, [r5, #-144] 28189 bcc .L4425 28190 ldrh r3, [r6, #52] 28191 add r2, r3, #1 28192 strh r2, [r6, #52] @ movhi 28193 add r3, r6, r3, lsl #1 28194 ldrh r2, [r6] 28195 strh r2, [r3, #54] @ movhi 28196 mvn r3, #0 28197 strh r3, [r6] @ movhi 28198.L4425: 28199 bl ftl_flush 28200 bl sblk_wait_write_queue_completed 28201 bl gc_write_completed 28202 ldrh r2, [r7, #80] 28203 ldr r3, [r4, #1096] 28204 strh r2, [r3, #128] @ movhi 28205 bl pm_flush 28206 bl ftl_ext_info_flush 28207 ldr r2, .L4535+60 28208 mov r3, #0 28209 ldrb r1, [r4, #1158] @ zero_extendqisi2 28210 strh r3, [r6, #12] @ movhi 28211 ldrh r3, [r2, #-8] 28212 cmp r1, #0 28213 ldrhne r2, [r2, #-30] 28214 strh r3, [r6, #14] @ movhi 28215 ldrb r3, [r5, #-3128] @ zero_extendqisi2 28216 strhne r2, [r6, #14] @ movhi 28217 movne r2, #1 28218 strh r3, [r6, #16] @ movhi 28219 strhne r2, [r6, #16] @ movhi 28220 cmp r3, #2 28221 bne .L4428 28222 ldrh r3, [r6, #14] 28223 lsl r3, r3, #1 28224 strh r3, [r6, #14] @ movhi 28225 ldrb r3, [r5, #-3126] @ zero_extendqisi2 28226 cmp r3, #0 28227 moveq r3, #1 28228 strheq r3, [r6, #16] @ movhi 28229.L4428: 28230 mov r3, #0 28231 strh r3, [r6, #18] @ movhi 28232 b .L4435 28233.L4431: 28234 ldrh r2, [r8, #12] 28235 ldrh r3, [r8, #14] 28236 cmp r2, r3 28237 bcc .L4432 28238 mov r3, #6 28239 ldr r0, [r4, #2832] 28240 strb r3, [r5, #-144] 28241 bl zbuf_free 28242 str r9, [r4, #2832] 28243 b .L4435 28244.L4432: 28245 cmp r6, #15 28246 bls .L4320 28247 cmp r10, #1 28248 bne .L4435 28249 add r7, r7, #1 28250 uxtb r7, r7 28251 cmp r7, #4 28252 bls .L4320 28253 b .L4435 28254.L4319: 28255 bl gc_update_l2p_map_new 28256 bl gc_free_src_blk 28257 bl ftl_flush 28258 mvn r6, #0 28259 bl pm_flush 28260 strh r6, [r7, #80] @ movhi 28261 bl ftl_ext_info_flush 28262 ldr r3, [r4, #2800] 28263 mov r0, #0 28264 strh r6, [r3, #126] @ movhi 28265 bl ftl_info_flush 28266.L4534: 28267 mov r3, #0 28268 b .L4533 28269.L4409: 28270 movw r2, #3430 28271 ldr r1, .L4535+64 28272 ldr r0, .L4535+68 28273 bl printk 28274 bl dump_stack 28275 b .L4434 28276 .fnend 28277 .size zftl_do_gc, .-zftl_do_gc 28278 .align 2 28279 .global zftl_init 28280 .syntax unified 28281 .arm 28282 .fpu softvfp 28283 .type zftl_init, %function 28284zftl_init: 28285 .fnstart 28286 @ args = 0, pretend = 0, frame = 24 28287 @ frame_needed = 0, uses_anonymous_args = 0 28288 push {r4, r5, r6, r7, r8, r9, r10, fp, lr} 28289 .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} 28290 mvn r3, #0 28291 ldr r5, .L4617 28292 mov r6, #0 28293 .pad #28 28294 sub sp, sp, #28 28295 ldr r4, .L4617+4 28296 ldr r9, .L4617+8 28297 ldr r1, .L4617+12 28298 ldr r0, .L4617+16 28299 strb r3, [r4, #2820] 28300 strb r3, [r5, #-2536] 28301 strb r3, [r5, #-88] 28302 str r3, [r5] 28303 strb r6, [r4, #2796] 28304 strb r6, [r5, #-2535] 28305 strb r6, [r4, #2797] 28306 bl printk 28307 ldrb r3, [r9, #16] @ zero_extendqisi2 28308 sub r2, r5, #3104 28309 ldrb r8, [r9, #13] @ zero_extendqisi2 28310 str r3, [sp, #4] 28311 ldrb r3, [sp, #4] @ zero_extendqisi2 28312 ldr r1, [sp, #4] 28313 lsl r10, r8, #9 28314 strb r8, [r5, #-2546] 28315 strb r3, [r5, #-3128] 28316 uxth r10, r10 28317 ldrh r3, [r9, #14] 28318 strh r3, [r2, #-14] @ movhi 28319 mov r0, r3 28320 str r3, [sp, #12] 28321 bl __aeabi_idiv 28322 str r0, [sp, #8] 28323 sub r2, r5, #3088 28324 ldrh r3, [sp, #8] 28325 mov r1, #1 28326 ldrb r7, [r4, #1109] @ zero_extendqisi2 28327 ldrh fp, [r9, #18] 28328 strh r3, [r2, #-8] @ movhi 28329 ldrb r2, [r9, #17] @ zero_extendqisi2 28330 strb r7, [r5, #-3072] 28331 ldr r3, [sp, #12] 28332 ldrh r0, [r4, #2] 28333 smulbb r7, r7, r2 28334 strb r2, [r5, #-3136] 28335 movw r2, #1080 28336 strh r10, [r5, #-14] @ movhi 28337 strh fp, [r4, r2] @ movhi 28338 sub r2, r5, #3072 28339 uxtb r7, r7 28340 strh r0, [r2, #-2] @ movhi 28341 strb r7, [r5, #-3127] 28342.L4538: 28343 cmp r0, r1 28344 uxth r2, r6 28345 add r6, r6, #1 28346 bcs .L4539 28347 ldr r1, .L4617+20 28348 sub r2, r2, #1 28349 mov ip, #0 28350 mov r0, #1 28351 strh r2, [r1, #-2] @ movhi 28352 mul r2, r3, r8 28353 mul r1, r2, fp 28354 str r2, [sp, #12] 28355 lsr lr, r1, #21 28356.L4540: 28357 cmp lr, r0 28358 uxth r2, ip 28359 add ip, ip, #1 28360 bcs .L4541 28361 ldr r9, .L4617+24 28362 sub r2, r2, #1 28363 uxth r2, r2 28364 mul r1, r7, r1 28365 ldr r6, .L4617 28366 lsr fp, fp, #4 28367 str r3, [sp, #20] 28368 mul r0, r9, r7 28369 str r1, [r4, #2776] 28370 mov r1, r8 28371 sub r8, r6, #3088 28372 lsl r9, r0, r2 28373 add r2, r9, #24576 28374 str r9, [r4, #1032] 28375 str r2, [r6, #4] 28376 mov r0, r2 28377 str r2, [sp, #16] 28378 bl __aeabi_uidiv 28379 sub ip, r10, #1 28380 str r0, [r4, #2780] 28381 mov r1, r10 28382 add r0, ip, r0, lsl #2 28383 bl __aeabi_uidiv 28384 ldr r3, [sp, #8] 28385 strh r0, [r6, #8] @ movhi 28386 uxth r0, r0 28387 lsl r0, r0, #4 28388 mul r1, r7, r3 28389 bl __aeabi_idiv 28390 ldr r3, [sp, #12] 28391 ldr r2, [sp, #16] 28392 strh r0, [r6, #-176] @ movhi 28393 mul r1, r7, r3 28394 mov r0, r2 28395 sub r1, r1, #1 28396 bl __aeabi_uidiv 28397 cmp fp, #79 28398 strh fp, [r8, #-4] @ movhi 28399 movls r2, #80 28400 mov r1, #2000 28401 strhls r2, [r8, #-4] @ movhi 28402 add r0, r0, #8 28403 ldr r2, .L4617+28 28404 strh r0, [r8, #-2] @ movhi 28405 mov r0, #32 28406 ldr r3, [sp, #20] 28407 strh r1, [r2, #-10] @ movhi 28408 mov r1, #50 28409 strh r1, [r2, #-12] @ movhi 28410 mov r1, #256 28411 strh r1, [r6, #-180] @ movhi 28412 mov r1, #48 28413 strh r1, [r6, #-178] @ movhi 28414 ldr r1, .L4617+32 28415 strh r0, [r1] @ movhi 28416 ldr r1, [sp, #4] 28417 cmp r1, #2 28418 mov r1, r2 28419 beq .L4543 28420 ldrb ip, [r6, #-3120] @ zero_extendqisi2 28421 cmp ip, #0 28422 beq .L4544 28423.L4543: 28424 mov r2, #150 28425 mov r0, #12 28426 strh r2, [r1, #-12] @ movhi 28427 mov r2, #64 28428 strh r2, [r6, #-178] @ movhi 28429 ldr r2, .L4617+32 28430 strh r0, [r2] @ movhi 28431 ldrb r0, [r4] @ zero_extendqisi2 28432 cmp r0, #0 28433 moveq r0, #4 28434 strheq r0, [r2] @ movhi 28435 moveq r2, #600 28436 strheq r2, [r1, #-10] @ movhi 28437 moveq r2, #128 28438 strheq r2, [r6, #-180] @ movhi 28439 ldrb r2, [r4, #1159] @ zero_extendqisi2 28440 cmp r2, #0 28441 movne r2, #200 28442 strhne r2, [r1, #-12] @ movhi 28443 movne r2, #2000 28444 strhne r2, [r1, #-10] @ movhi 28445.L4547: 28446 mul r7, r7, r3 28447 mov r2, #0 28448 str r2, [r4, #2812] 28449 mov r2, #1 28450 strb r2, [r6, #-11] 28451 cmp r10, r7, lsl #2 28452 ldr r7, .L4617+8 28453 movlt r3, #2 28454 strblt r3, [r6, #-11] 28455 ldr r3, [r7] 28456 tst r3, #4096 28457 beq .L4550 28458 mov r1, r9 28459 ldr r0, .L4617+36 28460 bl printk 28461.L4550: 28462 ldr r3, [r7] 28463 tst r3, #4096 28464 beq .L4551 28465 ldr r1, [r4, #2776] 28466 ldr r0, .L4617+40 28467 bl printk 28468.L4551: 28469 ldr r3, [r7] 28470 tst r3, #4096 28471 beq .L4552 28472 ldr r1, [r4, #2780] 28473 ldr r0, .L4617+44 28474 bl printk 28475.L4552: 28476 ldr r3, [r7] 28477 tst r3, #4096 28478 beq .L4553 28479 ldr r1, [r6, #4] 28480 ldr r0, .L4617+48 28481 bl printk 28482.L4553: 28483 ldr r3, [r7] 28484 tst r3, #4096 28485 beq .L4554 28486 ldrh r1, [r6, #8] 28487 ldr r0, .L4617+52 28488 bl printk 28489.L4554: 28490 ldr r3, [r7] 28491 tst r3, #4096 28492 beq .L4555 28493 ldrh r1, [r6, #-14] 28494 ldr r0, .L4617+56 28495 bl printk 28496.L4555: 28497 ldr r3, [r7] 28498 tst r3, #4096 28499 beq .L4556 28500 ldrh r1, [r6, #-176] 28501 ldr r0, .L4617+60 28502 bl printk 28503.L4556: 28504 ldr r3, [r7] 28505 tst r3, #4096 28506 beq .L4557 28507 ldrh r1, [r8, #-4] 28508 ldr r0, .L4617+64 28509 bl printk 28510.L4557: 28511 ldr r3, [r7] 28512 tst r3, #4096 28513 beq .L4558 28514 ldrh r1, [r8, #-2] 28515 ldr r0, .L4617+68 28516 bl printk 28517.L4558: 28518 bl zbuf_init 28519 mov r0, #16384 28520 movw r9, #1080 28521 bl ftl_malloc 28522 str r0, [r5, #-52] 28523 mov r0, #16384 28524 bl ftl_malloc 28525 str r0, [r5, #-44] 28526 mov r0, #16384 28527 bl ftl_malloc 28528 str r0, [r5, #12] 28529 mov r0, #256 28530 bl ftl_dma32_malloc 28531 str r0, [r5, #-76] 28532 mov r0, #256 28533 bl ftl_dma32_malloc 28534 ldrh r3, [r4, r9] 28535 str r0, [r5, #-40] 28536 mov r0, #6 28537 mul r0, r0, r3 28538 bl ftl_dma32_malloc 28539 ldrh r3, [r8, #-8] 28540 str r0, [r4, #1036] 28541 ldrb r0, [r5, #-3127] @ zero_extendqisi2 28542 mul r0, r0, r3 28543 lsl r0, r0, #2 28544 bl ftl_dma32_malloc 28545 ldrh r1, [r8, #-8] 28546 str r0, [r5, #-2552] 28547 ldrb r0, [r5, #-3127] @ zero_extendqisi2 28548 ldr r2, [r5, #-44] 28549 ldrh ip, [r4, r9] 28550 mul r0, r0, r1 28551 str r2, [r5, #-2556] 28552 lsl r1, r0, #1 28553 add r3, r2, r0, lsl #3 28554 ldr r0, [r7] 28555 add r1, r1, ip, lsr #1 28556 str r3, [r4, #1092] 28557 add r1, r2, r1, lsl #2 28558 tst r0, #4096 28559 str r1, [r4, #1096] 28560 beq .L4559 28561 ldr r0, .L4617+72 28562 bl printk 28563.L4559: 28564 ldrh r2, [r8, #-8] 28565 movw r3, #1080 28566 ldrb r5, [r6, #-3127] @ zero_extendqisi2 28567 ldrh r3, [r4, r3] 28568 mul r5, r5, r2 28569 ldrh r2, [r6, #8] 28570 lsl r8, r3, #2 28571 add r5, r3, r5, lsl #2 28572 ldr r3, [r7] 28573 add r8, r8, r2, lsl #2 28574 lsl r5, r5, #1 28575 tst r3, #4096 28576 add r5, r5, #632 28577 add r8, r8, #704 28578 beq .L4560 28579 ldrh r3, [r6, #-14] 28580 mov r2, r8 28581 mov r1, r5 28582 ldr r0, .L4617+76 28583 bl printk 28584.L4560: 28585 ldrh r1, [r6, #-14] 28586 cmp r8, r1 28587 cmpls r5, r1 28588 movhi r5, #1 28589 movls r5, #0 28590 bls .L4561 28591.L4615: 28592 b .L4615 28593.L4539: 28594 lsl r1, r1, #1 28595 b .L4538 28596.L4541: 28597 lsl r0, r0, #1 28598 b .L4540 28599.L4544: 28600 ldrb r1, [r4, #1158] @ zero_extendqisi2 28601 cmp r1, #0 28602 movne r1, #1200 28603 strhne r0, [r2, #-12] @ movhi 28604 strhne r1, [r2, #-10] @ movhi 28605 strhne r0, [r6, #-178] @ movhi 28606 b .L4547 28607.L4561: 28608 bl sblk_init 28609 bl gc_init 28610 bl ftl_info_blk_init 28611 cmn r0, #1 28612 beq .L4537 28613 bl ftl_ext_info_init 28614 mov r0, #1 28615 bl pm_init 28616 bl lpa_rebuild_hash 28617 ldr r0, [r4, #1096] 28618 mov r1, r5 28619 add r0, r0, #16 28620 bl ftl_open_sblk_recovery 28621 ldr r0, [r4, #1096] 28622 add r1, r0, #16 28623 add r0, r0, #48 28624 bl ftl_open_sblk_recovery 28625 ldr r2, [r4, #2800] 28626 ldr r0, [r4, #1096] 28627 ldr r3, [r2, #8] 28628 add r0, r0, #16 28629 add r3, r3, #16 28630 str r3, [r2, #8] 28631 bl ftl_info_data_recovery 28632 ldr r0, [r4, #1096] 28633 add r0, r0, #48 28634 bl ftl_info_data_recovery 28635 ldr r0, [r4, #1096] 28636 add r0, r0, #80 28637 bl ftl_info_data_recovery 28638 bl gc_recovery 28639 bl pm_flush 28640 mov r0, #1 28641 bl ftl_total_vpn_update 28642 ldrb r3, [r6, #-47] @ zero_extendqisi2 28643 cmp r3, #0 28644 ldrne r2, [r4, #2800] 28645 ldrne r3, [r2, #68] 28646 addne r3, r3, #1 28647 strne r3, [r2, #68] 28648 bl ftl_ext_info_flush 28649 mov r0, #0 28650 bl ftl_info_flush 28651 bl print_ftl_debug_info 28652 ldr r3, [r4, #1096] 28653 ldrh r3, [r3, #124] 28654 cmp r3, #0 28655 bne .L4571 28656 ldr r3, .L4617+80 28657 movw r2, #2788 28658 ldrh r2, [r4, r2] 28659 ldrh r3, [r3] 28660 add r3, r3, r2 28661 cmp r3, #7 28662 ble .L4571 28663.L4567: 28664 mov r0, #0 28665.L4537: 28666 add sp, sp, #28 28667 @ sp needed 28668 pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} 28669.L4571: 28670 ldr r6, .L4617+80 28671 mov r5, #16384 28672.L4568: 28673 mov r1, #1 28674 mov r0, #0 28675 bl zftl_do_gc 28676 mov r1, #1 28677 mov r0, r1 28678 bl zftl_do_gc 28679 ldr r3, [r4, #1096] 28680 ldrh r2, [r3, #124] 28681 cmp r2, #0 28682 bne .L4566 28683 ldrh r2, [r3, #80] 28684 movw r3, #65535 28685 cmp r2, r3 28686 bne .L4566 28687 ldr r2, .L4617+84 28688 ldrh r3, [r6] 28689 ldrh r2, [r2] 28690 add r3, r3, r2 28691 cmp r3, #7 28692 bgt .L4567 28693.L4566: 28694 subs r5, r5, #1 28695 bne .L4568 28696 b .L4567 28697.L4618: 28698 .align 2 28699.L4617: 28700 .word .LANCHOR3 28701 .word .LANCHOR0 28702 .word .LANCHOR2 28703 .word .LC1 28704 .word .LC2 28705 .word .LANCHOR3-3136 28706 .word 1892352 28707 .word .LANCHOR3-2528 28708 .word .LANCHOR0+1088 28709 .word .LC302 28710 .word .LC303 28711 .word .LC304 28712 .word .LC305 28713 .word .LC306 28714 .word .LC307 28715 .word .LC308 28716 .word .LC309 28717 .word .LC310 28718 .word .LC311 28719 .word .LC312 28720 .word .LANCHOR0+2784 28721 .word .LANCHOR0+2788 28722 .fnend 28723 .size zftl_init, .-zftl_init 28724 .align 2 28725 .global rk_ftl_init 28726 .syntax unified 28727 .arm 28728 .fpu softvfp 28729 .type rk_ftl_init, %function 28730rk_ftl_init: 28731 .fnstart 28732 @ args = 0, pretend = 0, frame = 0 28733 @ frame_needed = 0, uses_anonymous_args = 0 28734 ldr r3, .L4634 28735 mov r0, #68 28736 push {r4, r5, r6, r7, r8, lr} 28737 .save {r4, r5, r6, r7, r8, lr} 28738 mov r5, #0 28739 ldr r4, .L4634+4 28740 ldr r3, [r3] 28741 str r5, [r4, #-164] 28742 strb r5, [r4, #16] 28743 str r3, [r4, #-168] 28744 str r5, [r4, #-152] 28745 bl ftl_dma32_malloc 28746 cmp r0, r5 28747 str r0, [r4, #-160] 28748 bne .L4620 28749.L4622: 28750 mvn r5, #0 28751.L4619: 28752 mov r0, r5 28753 pop {r4, r5, r6, r7, r8, pc} 28754.L4620: 28755 mov r0, #2048 28756 bl ftl_dma32_malloc 28757 mov r1, r4 28758 str r0, [r4, #20] 28759 str r5, [r1, #24]! 28760 sub r0, r4, #156 28761 str r5, [r4, #-156] 28762 bl rknand_get_reg_addr 28763 ldr r3, [r4, #-156] 28764 cmp r3, #0 28765 beq .L4622 28766 bl rk_nandc_irq_init 28767 mov r3, #2048 28768 mov r2, r5 28769 mov r1, r5 28770 ldr r0, [r4, #20] 28771 bl flash_sram_load_store 28772 bl rknand_flash_cs_init 28773 ldr r3, [r4, #-160] 28774 ldr r2, .L4634+8 28775 ldr r0, [r4, #-156] 28776 str r2, [r3, #40] 28777 ldr r2, .L4634+12 28778 str r2, [r3, #32] 28779 ldr r2, .L4634+16 28780 str r2, [r3, #44] 28781 ldr r2, .L4634+20 28782 str r2, [r3, #48] 28783 ldr r2, .L4634+24 28784 str r2, [r3, #36] 28785 ldr r2, .L4634+28 28786 str r2, [r3, #56] 28787 ldr r2, .L4634+32 28788 str r2, [r3, #20] 28789 ldr r2, .L4634+36 28790 str r2, [r3, #24] 28791 ldr r2, .L4634+40 28792 str r2, [r3, #12] 28793 ldr r2, .L4634+44 28794 str r2, [r3, #16] 28795 ldr r2, .L4634+48 28796 str r2, [r3, #4] 28797 ldr r2, .L4634+52 28798 str r2, [r3, #8] 28799 ldr r2, .L4634+56 28800 str r2, [r3, #60] 28801 ldr r2, .L4634+60 28802 str r2, [r3, #64] 28803 ldr r2, .L4634+64 28804 str r2, [r3, #52] 28805 ldr r2, .L4634+68 28806 str r2, [r3, #28] 28807 bl nand_flash_init 28808 subs r7, r0, #0 28809 bne .L4623 28810 bl zftl_init 28811 mov r5, r0 28812 bl zftl_proc_debug_init 28813 mov r3, #1 28814 strb r3, [r4, #16] 28815.L4624: 28816 mov r1, r5 28817 ldr r0, .L4634+72 28818 bl printk 28819 b .L4619 28820.L4623: 28821 ldr r3, [r4, #-160] 28822 mov r6, r4 28823 ldr r2, .L4634+76 28824 ldr r0, [r4, #-156] 28825 ldr r4, .L4634+80 28826 str r2, [r3, #40] 28827 ldr r2, .L4634+84 28828 str r2, [r3, #32] 28829 ldr r2, .L4634+88 28830 str r2, [r3, #44] 28831 ldr r2, .L4634+92 28832 str r2, [r3, #48] 28833 ldr r2, .L4634+96 28834 str r2, [r3, #36] 28835 ldr r2, .L4634+100 28836 str r2, [r3, #56] 28837 ldr r2, .L4634+104 28838 str r2, [r3, #20] 28839 ldr r2, .L4634+108 28840 str r2, [r3, #24] 28841 ldr r2, .L4634+112 28842 str r2, [r3, #12] 28843 ldr r2, .L4634+116 28844 str r2, [r3, #16] 28845 ldr r2, .L4634+120 28846 str r2, [r3, #4] 28847 ldr r2, .L4634+124 28848 str r2, [r3, #8] 28849 ldr r2, .L4634+128 28850 str r2, [r3, #60] 28851 ldr r2, .L4634+132 28852 str r2, [r3, #64] 28853 ldr r2, .L4634+136 28854 str r2, [r3, #52] 28855 ldr r2, .L4634+140 28856 str r2, [r3, #28] 28857 bl FlashInit 28858 cmn r7, #2 28859 mov r5, r0 28860 bne .L4625 28861 mov r2, #32 28862 ldr r1, .L4634+144 28863 add r0, r4, #4 28864 bl ftl_memcpy 28865 ldrb r0, [r4, #22] @ zero_extendqisi2 28866 bl flash_lsb_page_tbl_build 28867 ldrh r3, [r4, #14] 28868 strh r3, [r4, #30] @ movhi 28869.L4625: 28870 ldr r3, .L4634+148 28871 ldr r2, [r3] 28872 ldr r3, .L4634+152 28873 cmp r2, r3 28874 ldr r2, .L4634+156 28875 bne .L4626 28876 ldr r3, .L4634+160 28877 ldrb r3, [r3] @ zero_extendqisi2 28878 cmp r3, #0 28879 bne .L4627 28880.L4626: 28881 mov r3, #0 28882 strb r3, [r2, #1110] 28883 strb r3, [r2] 28884.L4627: 28885 ldr r1, .L4634+164 28886 mov r0, #1 28887 ldrh ip, [r4, #14] 28888 mov r3, #0 28889 str r3, [r6, #-100] 28890 ldrb r1, [r1] @ zero_extendqisi2 28891 strb r1, [r2, #1108] 28892 ldr r1, .L4634+168 28893 ldrb r1, [r1] @ zero_extendqisi2 28894 strb r1, [r2, #1193] 28895.L4628: 28896 cmp ip, r0 28897 uxth r1, r3 28898 add r3, r3, #1 28899 bcs .L4629 28900 sub r3, r1, #1 28901 ldr r1, .L4634+172 28902 strh r3, [r1, #-2] @ movhi 28903 mov r3, #0 28904 cmp r5, r3 28905 strb r3, [r2, #1143] 28906 bne .L4624 28907 bl FtlInit 28908 mov r5, r0 28909 b .L4624 28910.L4629: 28911 lsl r0, r0, #1 28912 b .L4628 28913.L4635: 28914 .align 2 28915.L4634: 28916 .word jiffies 28917 .word .LANCHOR3 28918 .word zftl_deinit 28919 .word zftl_cache_flush 28920 .word zftl_flash_suspend 28921 .word zftl_flash_resume 28922 .word zftl_get_density 28923 .word zftl_read_flash_info 28924 .word zftl_read 28925 .word zftl_write 28926 .word zftl_sys_read 28927 .word zftl_sys_write 28928 .word zftl_vendor_read 28929 .word zftl_vendor_write 28930 .word zftl_nandc_get_irq_status 28931 .word zftl_proc_ftl_read 28932 .word zftl_do_gc 28933 .word zftl_discard 28934 .word .LC313 28935 .word ftl_deinit 28936 .word .LANCHOR2 28937 .word ftl_cache_flush 28938 .word ftl_flash_suspend 28939 .word ftl_flash_resume 28940 .word ftl_get_density 28941 .word ftl_read_flash_info 28942 .word ftl_read 28943 .word ftl_write 28944 .word ftl_sys_read 28945 .word ftl_sys_write 28946 .word ftl_vendor_read 28947 .word ftl_vendor_write 28948 .word ftl_nandc_get_irq_status 28949 .word ftl_proc_ftl_read 28950 .word ftl_do_gc 28951 .word ftl_discard 28952 .word gNandParaInfo 28953 .word g_nandc_version_data 28954 .word 1446522928 28955 .word .LANCHOR0 28956 .word gFlashSlcMode 28957 .word gNandFlashIDBEccBits 28958 .word gNandFlashEccBits 28959 .word .LANCHOR3-3136 28960 .fnend 28961 .size rk_ftl_init, .-rk_ftl_init 28962 .align 2 28963 .global zftl_write 28964 .syntax unified 28965 .arm 28966 .fpu softvfp 28967 .type zftl_write, %function 28968zftl_write: 28969 .fnstart 28970 @ args = 0, pretend = 0, frame = 24 28971 @ frame_needed = 0, uses_anonymous_args = 0 28972 push {r4, r5, r6, r7, r8, r9, r10, fp, lr} 28973 .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} 28974 mov r10, r3 28975 ldr r3, .L4666 28976 .pad #36 28977 sub sp, sp, #36 28978 mov r4, r0 28979 mov r6, r1 28980 mov r5, r2 28981 ldr r3, [r3] 28982 tst r3, #4096 28983 beq .L4637 28984 ldr r3, [r10] 28985 str r3, [sp] 28986 mov r3, r2 28987 mov r2, r1 28988 mov r1, r0 28989 ldr r0, .L4666+4 28990 bl printk 28991.L4637: 28992 cmp r4, #0 28993 bne .L4638 28994 ldr r3, .L4666+8 28995 mov r4, #24576 28996 ldr r2, [r3, #1032] 28997.L4639: 28998 cmp r2, r5 28999 cmpcs r2, r6 29000 movls fp, #1 29001 movhi fp, #0 29002 bls .L4657 29003 add r1, r6, r5 29004 cmp r2, r1 29005 bcc .L4657 29006 ldr r8, .L4666+12 29007 add r4, r4, r6 29008 mov r0, r4 29009 ldrb r6, [r8, #-2546] @ zero_extendqisi2 29010 mov r1, r6 29011 bl __aeabi_uidiv 29012 mov r9, r0 29013 sub r0, r5, #1 29014 mov r1, r6 29015 add r0, r0, r4 29016 bl __aeabi_uidiv 29017 str r8, [sp, #16] 29018 sub r7, r0, r9 29019 ldr r8, .L4666+8 29020 add r7, r7, #1 29021 mov r6, r9 29022 add r3, r4, r5 29023 str r0, [sp, #12] 29024 str fp, [sp, #20] 29025 str r3, [sp, #24] 29026.L4641: 29027 cmp r7, #0 29028 bne .L4650 29029 bl ftl_write_commit 29030 mov r1, #1 29031 mov r0, r7 29032 bl zftl_do_gc 29033 ldr r3, [r8, #1096] 29034 ldr r4, .L4666+16 29035 ldrh r3, [r3, #124] 29036 cmp r3, #0 29037 bne .L4651 29038 movw r2, #2788 29039 ldrh r3, [r4] 29040 ldrh r2, [r8, r2] 29041 add r3, r3, r2 29042 cmp r3, #11 29043 bgt .L4652 29044.L4651: 29045 mov r1, #1 29046 mov r0, #0 29047 bl zftl_do_gc 29048.L4652: 29049 ldr r5, .L4666+20 29050.L4653: 29051 ldrh r3, [r4] 29052 ldrh r2, [r5] 29053 add r3, r3, r2 29054 cmp r3, #7 29055 ble .L4654 29056 bl timer_get_time 29057 ldr r3, [sp, #16] 29058 str r0, [r3, #-4] 29059 mov r0, #0 29060.L4636: 29061 add sp, sp, #36 29062 @ sp needed 29063 pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} 29064.L4638: 29065 cmp r4, #3 29066 bhi .L4657 29067 lsl r4, r4, #13 29068 mov r2, #8192 29069 b .L4639 29070.L4650: 29071 ldrb r3, [r8, #2796] @ zero_extendqisi2 29072 cmp r3, #0 29073 beq .L4642 29074 ldrb r3, [r8, #2769] @ zero_extendqisi2 29075 cmp r3, #2 29076 bhi .L4642 29077 bl ftl_write_commit 29078.L4642: 29079 mov r0, #0 29080 bl buf_alloc 29081 subs fp, r0, #0 29082 bne .L4643 29083 bl ftl_write_commit 29084 b .L4641 29085.L4643: 29086 ldrb r3, [sp, #20] @ zero_extendqisi2 29087 strb r3, [fp, #41] 29088 ldr r3, [sp, #16] 29089 ldrb r2, [r3, #-2546] @ zero_extendqisi2 29090 ldr r3, [sp, #12] 29091 strb r2, [fp, #40] 29092 cmp r6, r3 29093 cmpne r6, r9 29094 bne .L4646 29095 cmp r6, r9 29096 smulbbne r2, r6, r2 29097 ldrne r3, [sp, #24] 29098 subne r2, r3, r2 29099 bne .L4665 29100 mov r1, r2 29101 mov r0, r4 29102 str r2, [sp, #28] 29103 bl __aeabi_uidivmod 29104 ldr r2, [sp, #28] 29105 uxtb r1, r1 29106 strb r1, [fp, #41] 29107 sub r2, r2, r1 29108 uxtb r2, r2 29109 cmp r5, r2 29110 strbcc r5, [fp, #40] 29111 bcc .L4646 29112.L4665: 29113 strb r2, [fp, #40] 29114.L4646: 29115 ldrb ip, [fp, #41] @ zero_extendqisi2 29116 mov r1, r10 29117 ldrb r2, [fp, #40] @ zero_extendqisi2 29118 sub r7, r7, #1 29119 ldr r0, [fp, #4] 29120 lsl r2, r2, #9 29121 add r0, r0, ip, lsl #9 29122 bl ftl_memcpy 29123 ldr r1, [r8, #2800] 29124 str r6, [fp, #20] 29125 add r6, r6, #1 29126 ldr r2, [r1, #8] 29127 add r0, r2, #1 29128 str r0, [r1, #8] 29129 mov r0, fp 29130 str r2, [fp, #16] 29131 bl ftl_write_buf 29132 ldrb r3, [fp, #40] @ zero_extendqisi2 29133 add r10, r10, r3, lsl #9 29134 b .L4641 29135.L4654: 29136 mov r1, #1 29137 mov r0, #0 29138 bl zftl_do_gc 29139 mov r1, #1 29140 mov r0, r1 29141 bl zftl_do_gc 29142 b .L4653 29143.L4657: 29144 mvn r0, #0 29145 b .L4636 29146.L4667: 29147 .align 2 29148.L4666: 29149 .word .LANCHOR2 29150 .word .LC314 29151 .word .LANCHOR0 29152 .word .LANCHOR3 29153 .word .LANCHOR0+2784 29154 .word .LANCHOR0+2788 29155 .fnend 29156 .size zftl_write, .-zftl_write 29157 .align 2 29158 .global zftl_vendor_write 29159 .syntax unified 29160 .arm 29161 .fpu softvfp 29162 .type zftl_vendor_write, %function 29163zftl_vendor_write: 29164 .fnstart 29165 @ args = 0, pretend = 0, frame = 0 29166 @ frame_needed = 0, uses_anonymous_args = 0 29167 @ link register save eliminated. 29168 mov r3, r2 29169 mov r2, r1 29170 add r1, r0, #512 29171 mov r0, #2 29172 b zftl_write 29173 .fnend 29174 .size zftl_vendor_write, .-zftl_vendor_write 29175 .align 2 29176 .global zftl_sys_write 29177 .syntax unified 29178 .arm 29179 .fpu softvfp 29180 .type zftl_sys_write, %function 29181zftl_sys_write: 29182 .fnstart 29183 @ args = 0, pretend = 0, frame = 0 29184 @ frame_needed = 0, uses_anonymous_args = 0 29185 @ link register save eliminated. 29186 mov r3, r2 29187 mov r2, r1 29188 mov r1, r0 29189 mov r0, #2 29190 b zftl_write 29191 .fnend 29192 .size zftl_sys_write, .-zftl_sys_write 29193 .align 2 29194 .global zftl_discard 29195 .syntax unified 29196 .arm 29197 .fpu softvfp 29198 .type zftl_discard, %function 29199zftl_discard: 29200 .fnstart 29201 @ args = 0, pretend = 0, frame = 24 29202 @ frame_needed = 0, uses_anonymous_args = 0 29203 push {r4, r5, r6, r7, r8, r9, r10, fp, lr} 29204 .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} 29205 .pad #36 29206 sub sp, sp, #36 29207 ldr r7, .L4720 29208 ldr r3, [r7, #1032] 29209 cmp r1, r3 29210 cmpls r0, r3 29211 movcs r2, #1 29212 movcc r2, #0 29213 bcs .L4692 29214 mov r4, r1 29215 add r1, r0, r1 29216 cmp r3, r1 29217 bcc .L4692 29218 ldr r3, .L4720+4 29219 add r8, r0, #24576 29220 ldr r6, .L4720+8 29221 ldr r0, [r3] 29222 ldr r1, [r6, #28] 29223 str r3, [sp, #16] 29224 tst r0, #4096 29225 add r1, r4, r1 29226 str r1, [r6, #28] 29227 beq .L4672 29228 str r2, [sp] 29229 mov r3, r4 29230 mov r2, r8 29231 ldr r0, .L4720+12 29232 bl printk 29233.L4672: 29234 ldr r3, [r7, #2800] 29235 ldr r10, [r3, #8] 29236 add r2, r10, #1 29237 str r2, [r3, #8] 29238 bl ftl_write_commit 29239 bl ftl_flush 29240 ldrb r9, [r6, #-2546] @ zero_extendqisi2 29241 mov r0, r8 29242 mov r1, r9 29243 bl __aeabi_uidiv 29244 mov r1, r9 29245 mov r5, r0 29246 mov r0, r8 29247 bl __aeabi_uidivmod 29248 subs fp, r1, #0 29249 beq .L4673 29250 sub r9, r9, fp 29251 mov r0, r5 29252 cmp r9, r4 29253 movcs r9, r4 29254 bl lpa_hash_get_ppa 29255 cmn r0, #1 29256 str r0, [sp, #24] 29257 bne .L4674 29258 mov r2, #0 29259 add r1, sp, #24 29260 mov r0, r5 29261 bl pm_log2phys 29262.L4674: 29263 ldr r3, [sp, #24] 29264 cmn r3, #1 29265 uxth r3, r9 29266 str r3, [sp, #12] 29267 beq .L4676 29268 mov r0, #0 29269 bl buf_alloc 29270 subs r3, r0, #0 29271 beq .L4676 29272 ldr r0, [r3, #4] 29273 mov r1, #0 29274 str r5, [r3, #20] 29275 strb fp, [r3, #41] 29276 strb r9, [r3, #40] 29277 str r10, [r3, #16] 29278 add r0, r0, fp, lsl #9 29279 str r3, [sp, #20] 29280 ldr r3, [sp, #12] 29281 lsl r2, r3, #9 29282 bl ftl_memset 29283 ldr r3, [sp, #20] 29284 mov r0, r3 29285 bl ftl_write_buf 29286 bl ftl_write_commit 29287 ldr r2, [r7, #2800] 29288 ldr r3, [r2, #76] 29289 add r3, r3, #1 29290 str r3, [r2, #76] 29291.L4676: 29292 ldr r3, [sp, #12] 29293 add r5, r5, #1 29294 sub r4, r4, r3 29295.L4673: 29296 cmp r4, #0 29297 beq .L4678 29298 bl ftl_flush 29299.L4678: 29300 mov r9, #0 29301 mvn r3, #0 29302 str r3, [sp, #28] 29303.L4679: 29304 ldrb r3, [r6, #-2546] @ zero_extendqisi2 29305 cmp r4, r3 29306 bcs .L4684 29307 cmp r4, #0 29308 beq .L4686 29309 mov r0, r5 29310 bl lpa_hash_get_ppa 29311 cmn r0, #1 29312 str r0, [sp, #24] 29313 bne .L4687 29314 mov r2, #0 29315 add r1, sp, #24 29316 mov r0, r5 29317 bl pm_log2phys 29318.L4687: 29319 ldr r3, [sp, #24] 29320 cmn r3, #1 29321 beq .L4686 29322 mov r0, #0 29323 bl buf_alloc 29324 subs r9, r0, #0 29325 beq .L4686 29326 mov r3, #0 29327 str r5, [r9, #20] 29328 strb r3, [r9, #41] 29329 ldrb r3, [r6, #-2546] @ zero_extendqisi2 29330 strb r4, [r9, #40] 29331 str r10, [r9, #16] 29332 cmp r4, r3 29333 bcc .L4689 29334 movw r2, #1496 29335 ldr r1, .L4720+16 29336 ldr r0, .L4720+20 29337 bl printk 29338 bl dump_stack 29339.L4689: 29340 lsl r2, r4, #9 29341 mov r1, #0 29342 ldr r0, [r9, #4] 29343 bl ftl_memset 29344 mov r0, r9 29345 bl ftl_write_buf 29346 bl ftl_write_commit 29347 ldr r2, [r7, #2800] 29348 ldr r3, [r2, #76] 29349 add r3, r3, #1 29350 str r3, [r2, #76] 29351.L4686: 29352 ldr r1, [r6, #28] 29353 cmp r1, #8192 29354 bls .L4693 29355 ldr r3, [sp, #16] 29356 ldr r3, [r3] 29357 tst r3, #4096 29358 beq .L4690 29359 mov r3, #0 29360 mov r2, r8 29361 str r3, [sp] 29362 mov r3, r4 29363 ldr r0, .L4720+12 29364 bl printk 29365.L4690: 29366 mov r4, #0 29367 str r4, [r6, #28] 29368 bl flt_sys_flush 29369 mov r3, #1 29370 str r3, [r7, #2812] 29371.L4693: 29372 mov r0, #0 29373 b .L4670 29374.L4684: 29375 mov r0, r5 29376 bl lpa_hash_get_ppa 29377 cmn r0, #1 29378 str r0, [sp, #24] 29379 beq .L4680 29380 mov r0, #0 29381 bl buf_alloc 29382 subs fp, r0, #0 29383 beq .L4682 29384 ldrb r2, [r6, #-2546] @ zero_extendqisi2 29385 mov r1, #0 29386 str r5, [fp, #20] 29387 strb r9, [fp, #41] 29388 strb r2, [fp, #40] 29389 str r10, [fp, #16] 29390 lsl r2, r2, #9 29391 ldr r0, [fp, #4] 29392 bl ftl_memset 29393 mov r0, fp 29394 bl ftl_write_buf 29395 bl ftl_write_commit 29396.L4719: 29397 ldr r2, [r7, #2800] 29398 ldr r3, [r2, #76] 29399 add r3, r3, #1 29400 str r3, [r2, #76] 29401.L4682: 29402 ldrb r3, [r6, #-2546] @ zero_extendqisi2 29403 add r5, r5, #1 29404 sub r4, r4, r3 29405 b .L4679 29406.L4680: 29407 mov r2, #0 29408 add r1, sp, #24 29409 mov r0, r5 29410 bl pm_log2phys 29411 ldr r3, [sp, #24] 29412 cmn r3, #1 29413 beq .L4682 29414 mov r2, #1 29415 add r1, sp, #28 29416 mov r0, r5 29417 bl pm_log2phys 29418 ldr r3, .L4720+24 29419 ldr r2, [sp, #24] 29420 ldrb r1, [r6, #-3136] @ zero_extendqisi2 29421 ldrh r0, [r3] 29422 ldrb r3, [r7, #1153] @ zero_extendqisi2 29423 lsr r2, r2, r0 29424 rsb r3, r3, #24 29425 sub r3, r3, r0 29426 mvn r0, #0 29427 bic r0, r2, r0, lsl r3 29428 bl __aeabi_uidiv 29429 uxth r0, r0 29430 bl ftl_vpn_decrement 29431 b .L4719 29432.L4692: 29433 mvn r0, #0 29434.L4670: 29435 add sp, sp, #36 29436 @ sp needed 29437 pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} 29438.L4721: 29439 .align 2 29440.L4720: 29441 .word .LANCHOR0 29442 .word .LANCHOR2 29443 .word .LANCHOR3 29444 .word .LC315 29445 .word .LANCHOR1+2536 29446 .word .LC0 29447 .word .LANCHOR3-3138 29448 .fnend 29449 .size zftl_discard, .-zftl_discard 29450 .align 2 29451 .global dump_pm_blk 29452 .syntax unified 29453 .arm 29454 .fpu softvfp 29455 .type dump_pm_blk, %function 29456dump_pm_blk: 29457 .fnstart 29458 @ args = 0, pretend = 0, frame = 0 29459 @ frame_needed = 0, uses_anonymous_args = 0 29460 push {r4, r5, r6, r7, r8, lr} 29461 .save {r4, r5, r6, r7, r8, lr} 29462 movw r3, #698 29463 ldr r4, .L4727 29464 mov r2, #4 29465 mov r5, #0 29466 movw r7, #65535 29467 ldr r0, .L4727+4 29468 ldr r1, [r4, #2800] 29469 ldr r6, .L4727+8 29470 ldrh r3, [r1, r3] 29471 add r1, r1, #704 29472 bl rknand_print_hex 29473 ldr r1, [r4, #2800] 29474 mov r2, #2 29475 ldrh r3, [r6, #-176] 29476 ldr r0, .L4727+12 29477 add r1, r1, #416 29478 bl rknand_print_hex 29479.L4723: 29480 ldrh r2, [r6, #-176] 29481 uxth r3, r5 29482 cmp r2, r3 29483 bhi .L4725 29484 pop {r4, r5, r6, r7, r8, pc} 29485.L4725: 29486 uxth r3, r5 29487 ldr r2, [r4, #2800] 29488 add r3, r3, #208 29489 lsl r3, r3, #1 29490 ldrh r0, [r2, r3] 29491 cmp r0, r7 29492 beq .L4724 29493 mov r1, #0 29494 bl ftl_sblk_dump 29495.L4724: 29496 add r5, r5, #1 29497 b .L4723 29498.L4728: 29499 .align 2 29500.L4727: 29501 .word .LANCHOR0 29502 .word .LC267 29503 .word .LANCHOR3 29504 .word .LC268 29505 .fnend 29506 .size dump_pm_blk, .-dump_pm_blk 29507 .align 2 29508 .global id_block_prog_msb_ff_data 29509 .syntax unified 29510 .arm 29511 .fpu softvfp 29512 .type id_block_prog_msb_ff_data, %function 29513id_block_prog_msb_ff_data: 29514 .fnstart 29515 @ args = 0, pretend = 0, frame = 0 29516 @ frame_needed = 0, uses_anonymous_args = 0 29517 push {r0, r1, r2, r4, r5, r6, r7, r8, r9, r10, fp, lr} 29518 .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} 29519 .pad #12 29520 ldr r5, .L4736 29521 ldrb r3, [r5, #1110] @ zero_extendqisi2 29522 cmp r3, #0 29523 bne .L4729 29524 ldr r3, [r5, #1104] 29525 mov r4, r2 29526 mov r10, r0 29527 mov fp, r1 29528 ldrb r3, [r3, #19] @ zero_extendqisi2 29529 sub r2, r3, #5 29530 cmp r3, #68 29531 cmpne r2, #2 29532 bls .L4731 29533 sub r3, r3, #19 29534 tst r3, #239 29535 bne .L4729 29536.L4731: 29537 ldr r6, .L4736+4 29538 sub r7, r6, #2272 29539.L4733: 29540 ldr r3, [r5, #1104] 29541 ldrh r3, [r3, #10] 29542 cmp r3, r4 29543 bhi .L4734 29544.L4729: 29545 add sp, sp, #12 29546 @ sp needed 29547 pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} 29548.L4734: 29549 lsl r9, r4, #1 29550 add r8, r4, fp 29551 mov r2, r8 29552 ldr r0, .L4736+8 29553 ldrh r3, [r7, r9] 29554 mov r1, r4 29555 bl printk 29556 ldrh r2, [r7, r9] 29557 movw r3, #65535 29558 cmp r2, r3 29559 bne .L4729 29560 mov r2, #16384 29561 mov r1, #255 29562 ldr r0, [r6, #-120] 29563 add r4, r4, #1 29564 bl ftl_memset 29565 ldr r3, [r5, #1104] 29566 mov r1, r8 29567 mov r0, r10 29568 uxth r4, r4 29569 ldrb r3, [r3, #9] @ zero_extendqisi2 29570 str r3, [sp] 29571 ldr r3, [r6, #-120] 29572 mov r2, r3 29573 bl flash_prog_page 29574 b .L4733 29575.L4737: 29576 .align 2 29577.L4736: 29578 .word .LANCHOR0 29579 .word .LANCHOR3 29580 .word .LC316 29581 .fnend 29582 .size id_block_prog_msb_ff_data, .-id_block_prog_msb_ff_data 29583 .align 2 29584 .global write_idblock 29585 .syntax unified 29586 .arm 29587 .fpu softvfp 29588 .type write_idblock, %function 29589write_idblock: 29590 .fnstart 29591 @ args = 0, pretend = 0, frame = 160 29592 @ frame_needed = 0, uses_anonymous_args = 0 29593 ldr r3, .L4848 29594 push {r4, r5, r6, r7, r8, r9, r10, fp, lr} 29595 .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} 29596 .pad #180 29597 sub sp, sp, #180 29598 ldr lr, [r1] 29599 ldrb ip, [r3] @ zero_extendqisi2 29600 ldr r4, .L4848+4 29601 ldr r10, .L4848+8 29602 str ip, [sp, #76] 29603 ldrh ip, [sp, #76] 29604 ldr r9, .L4848+12 29605 cmp lr, r4 29606 cmpne lr, r10 29607 str ip, [sp, #40] 29608 movne ip, #1 29609 moveq ip, #0 29610 cmp lr, r9 29611 moveq ip, #0 29612 andne ip, ip, #1 29613 cmp ip, #0 29614 beq .L4739 29615.L4847: 29616 mvn r0, #0 29617.L4738: 29618 add sp, sp, #180 29619 @ sp needed 29620 pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} 29621.L4739: 29622 cmp r0, #15 29623 bls .L4847 29624 mov r5, r2 29625 ldr r2, [r3, #1104] 29626 mov fp, r0 29627 mov r0, #256000 29628 str r3, [sp, #16] 29629 ldrb r6, [r2, #9] @ zero_extendqisi2 29630 ldrh r8, [r2, #10] 29631 ldr r2, .L4848+16 29632 str r1, [sp, #32] 29633 ldrh r7, [r2, #30] 29634 ldrb r2, [r3, #1110] @ zero_extendqisi2 29635 str r2, [sp, #96] 29636 bl ftl_malloc 29637 subs r3, r0, #0 29638 str r3, [sp, #20] 29639 beq .L4847 29640 ldr r2, .L4848+20 29641 ldrb r2, [r2, #16] @ zero_extendqisi2 29642 cmp r2, #0 29643 streq r2, [sp, #16] 29644 beq .L4742 29645 ldr r3, [sp, #16] 29646 ldrb r2, [r3] @ zero_extendqisi2 29647 ldrb r3, [r3, #1110] @ zero_extendqisi2 29648 cmp r2, #0 29649 clzne r3, r3 29650 lsrne r3, r3, #5 29651 bne .L4844 29652 cmp r3, #3 29653 streq r3, [sp, #40] 29654 moveq r3, #2 29655 beq .L4844 29656 cmp r3, #2 29657 ldr r3, [sp, #40] 29658 moveq r3, #2 29659 str r3, [sp, #40] 29660 movne r3, #0 29661 moveq r3, #3 29662.L4844: 29663 str r3, [sp, #16] 29664.L4742: 29665 add fp, fp, #508 29666 add fp, fp, #3 29667 lsr fp, fp, #9 29668 cmp fp, #8 29669 bls .L4798 29670 cmp fp, #500 29671 bhi .L4745 29672.L4744: 29673 ldr r3, [sp, #32] 29674 ldr r3, [r3] 29675 cmp r3, r4 29676 cmpne r3, r10 29677 movne r4, #1 29678 moveq r4, #0 29679 cmp r3, r9 29680 moveq r9, #0 29681 andne r9, r4, #1 29682 cmp r9, #0 29683 beq .L4746 29684.L4745: 29685 ldr r0, [sp, #20] 29686 bl ftl_free 29687 b .L4847 29688.L4798: 29689 mov fp, #8 29690 b .L4744 29691.L4746: 29692 mov r0, r9 29693 mul r8, r6, r8 29694 bl zftl_flash_exit_slc_mode 29695 ldr r3, .L4848 29696 sub r0, r8, #1 29697 mov r1, r8 29698 add r0, r0, fp 29699 ldrb r2, [r3, #1110] @ zero_extendqisi2 29700 strb r2, [r3] 29701 bl __aeabi_uidiv 29702 ldr r3, [sp, #32] 29703 movw r2, #63871 29704 ldr ip, .L4848+24 29705 str r0, [sp, #100] 29706 movw r0, #4094 29707 add r3, r3, #254976 29708 add r3, r3, #512 29709.L4752: 29710 ldr r1, [r3, #-4]! 29711 cmp r1, #0 29712 bne .L4747 29713 cmp r9, #0 29714 sub r2, r2, #1 29715 ldrne r1, [sp, #32] 29716 streq ip, [r3, #512] 29717 ldrne r1, [r1, r9, lsl #2] 29718 add r9, r9, #1 29719 strne r1, [r3, #512] 29720 cmp r9, r0 29721 movhi r9, #0 29722 cmp r2, #4096 29723 bne .L4752 29724.L4751: 29725 mul r3, r6, r7 29726 mov r2, #4 29727 mov r1, r5 29728 ldr r0, .L4848+28 29729 str r3, [sp, #72] 29730 mov r3, #5 29731 bl rknand_print_hex 29732 mov r2, fp 29733 mov r1, fp 29734 ldr r0, .L4848+32 29735 bl printk 29736 sub r3, r5, #4 29737 str r3, [sp, #48] 29738 mov r3, #0 29739 str r3, [sp, #36] 29740 str r3, [sp, #24] 29741.L4792: 29742 ldr r3, .L4848+20 29743 ldrb r3, [r3, #16] @ zero_extendqisi2 29744 cmp r3, #0 29745 bne .L4753 29746 ldr r3, [sp, #48] 29747 ldr r1, [sp, #24] 29748 ldr r2, [r3, #4] 29749 ldr r3, [sp, #72] 29750 mul r10, r2, r3 29751 ldr r3, [sp, #100] 29752 cmp r1, #0 29753 cmpne r3, #1 29754 bls .L4754 29755 ldr r3, [sp, #48] 29756 ldr r3, [r3] 29757 add r3, r3, #1 29758 cmp r2, r3 29759 bne .L4754 29760.L4755: 29761 ldr r3, [sp, #24] 29762 add r3, r3, #1 29763 str r3, [sp, #24] 29764 ldr r3, [sp, #48] 29765 add r3, r3, #4 29766 str r3, [sp, #48] 29767 ldr r3, [sp, #24] 29768 cmp r3, #4 29769 bne .L4792 29770.L4794: 29771 mov r0, #0 29772 bl zftl_flash_exit_slc_mode 29773 ldr r3, .L4848 29774 mov r0, #0 29775 ldrb r2, [sp, #76] @ zero_extendqisi2 29776 strb r2, [r3] 29777 ldr r2, [sp, #16] 29778 cmp r2, #0 29779 ldrbne r2, [sp, #96] @ zero_extendqisi2 29780 strbne r2, [r3, #1110] 29781 mov r2, #2 29782 strb r2, [r3, #1154] 29783 bl zftl_flash_enter_slc_mode 29784 ldr r0, [sp, #20] 29785 bl ftl_free 29786 ldr r3, [sp, #36] 29787 clz r0, r3 29788 lsr r0, r0, #5 29789 rsb r0, r0, #0 29790 b .L4738 29791.L4747: 29792 ldr r0, .L4848+36 29793 bl printk 29794 b .L4751 29795.L4753: 29796 ldr r5, .L4848 29797 ldr r2, [sp, #24] 29798 ldr r3, [r5, #1040] 29799 add r3, r3, r2 29800 ldrb r3, [r3, #32] @ zero_extendqisi2 29801 cmp r3, #255 29802 beq .L4755 29803 ldr r2, [sp, #72] 29804 mul r10, r2, r3 29805 ldr r3, [sp, #16] 29806 cmp r3, #0 29807 beq .L4754 29808 ldr r3, [sp, #24] 29809 and r4, r3, #1 29810 ldr r3, [sp, #16] 29811 cmp r3, #3 29812 orreq r4, r4, #1 29813 cmp r4, #0 29814 ldrbne r3, [sp, #40] @ zero_extendqisi2 29815 strbne r3, [r5] 29816 strbne r3, [r5, #1110] 29817 bne .L4754 29818 mov r0, r4 29819 bl zftl_flash_exit_slc_mode 29820 strb r4, [r5] 29821 strb r4, [r5, #1110] 29822.L4754: 29823 ldr r5, .L4848 29824 mov r2, #512 29825 mov r1, #0 29826 ldr r0, [sp, #20] 29827 bl ftl_memset 29828 ldr r3, [r5, #1104] 29829 mov r6, #0 29830 mov r0, r10 29831 ldrb r8, [r3, #9] @ zero_extendqisi2 29832 ldrh r7, [r3, #10] 29833 ldr r3, .L4848+16 29834 mov r1, r8 29835 ldrh r4, [r3, #30] 29836 mul r7, r8, r7 29837 ldrb r3, [r5, #1196] @ zero_extendqisi2 29838 strb r6, [r5, #1196] 29839 str r3, [sp, #104] 29840 mul r4, r8, r4 29841 bl __aeabi_uidiv 29842 mov r1, r0 29843 mov r0, r6 29844 bl flash_erase_block 29845 cmp r7, fp 29846 movcs r0, #1 29847 bcs .L4757 29848 add r1, r10, r4 29849 mov r0, r6 29850 bl flash_erase_block 29851 mov r0, #2 29852.L4757: 29853 ldr r2, [r5, #1104] 29854 ldrh r3, [r2, #10] 29855 ldrb r1, [r2, #12] @ zero_extendqisi2 29856 lsl r3, r3, #2 29857 mul r0, r0, r3 29858 bl __aeabi_idiv 29859 mov r1, r4 29860 str r0, [sp, #64] 29861 mov r0, r10 29862 bl __aeabi_uidivmod 29863 sub r3, r10, r1 29864 str r1, [sp, #56] 29865 cmp r10, r3 29866 str r3, [sp, #44] 29867 bne .L4801 29868 ldrb r3, [r5, #1028] @ zero_extendqisi2 29869 cmp r3, #9 29870 bne .L4801 29871 ldr r3, .L4848+20 29872 mov r2, #1024 29873 mov r1, #0 29874 ldr r4, [r3, #-92] 29875 mov r0, r4 29876 bl ftl_memset 29877 ldr r2, .L4848+40 29878 mov r3, #12 29879 stm r4, {r2, r3} 29880 mov r3, #0 29881 strb r3, [r4, #16] 29882 str r3, [r4, #12] 29883 ldrb r3, [r5, #1110] @ zero_extendqisi2 29884 cmp r3, #0 29885 ldrne r3, [r5, #1104] 29886 ldrbne r3, [r3, #29] @ zero_extendqisi2 29887 strbne r3, [r4, #16] 29888 mov r3, #4 29889 strb r3, [r4, #17] 29890 ldr r3, .L4848 29891 ldr r3, [r3, #1104] 29892 ldrb r1, [r3, #12] @ zero_extendqisi2 29893 ldrh r0, [r3, #10] 29894 bl __aeabi_idiv 29895 cmp r8, #8 29896 mov r3, #0 29897 movhi r2, #70 29898 movls r2, #16 29899 mov r1, #12 29900 strh r0, [r4, #18] @ movhi 29901 strb r3, [r4, #20] 29902 add r0, r4, r1 29903 strh r3, [r4, #22] @ movhi 29904 strb r2, [r4, #21] 29905 bl js_hash 29906 sub r3, fp, #4 29907 str r0, [r4, #8] 29908 str r3, [sp, #28] 29909.L4758: 29910 ldr r9, [sp, #32] 29911 mov r6, #0 29912 ldr r7, .L4848 29913.L4761: 29914 ldr r3, [sp, #64] 29915 cmp r3, r6 29916 bhi .L4772 29917 ldr r3, .L4848+16 29918 mov r4, #0 29919 strb r4, [r7, #1196] 29920 mov r0, r10 29921 ldr r5, .L4848 29922 mov r8, #4 29923 ldrb r2, [r3, #13] @ zero_extendqisi2 29924 ldrh r1, [r3, #30] 29925 str r2, [sp, #80] 29926 mul r1, r2, r1 29927 bl __aeabi_uidivmod 29928 sub r3, r10, r1 29929 ldr r6, [sp, #20] 29930 str r3, [sp, #84] 29931 and r3, r1, #3 29932 str r3, [sp, #56] 29933 ldr r3, [sp, #28] 29934 str r1, [sp, #52] 29935 str r4, [sp, #64] 29936 str r3, [sp, #68] 29937.L4773: 29938 ldr r3, [sp, #68] 29939 cmp r4, r3 29940 bcc .L4787 29941 ldrb r3, [sp, #104] @ zero_extendqisi2 29942 ldr r4, .L4848 29943 strb r3, [r4, #1196] 29944 ldr r3, [sp, #16] 29945 cmp r3, #0 29946 beq .L4788 29947 mov r0, #0 29948 bl zftl_flash_exit_slc_mode 29949 mov r3, #0 29950 strb r3, [r4] 29951 strb r3, [r4, #1110] 29952.L4788: 29953 ldr r3, [sp, #28] 29954 mov r2, #0 29955 lsl r3, r3, #7 29956.L4790: 29957 ldr r1, [sp, #20] 29958 ldr r0, [r1, r2, lsl #2] 29959 ldr r1, [sp, #32] 29960 ldr r1, [r1, r2, lsl #2] 29961 cmp r0, r1 29962 beq .L4789 29963 mov r2, #512 29964 mov r1, #0 29965 ldr r0, [sp, #20] 29966 bl ftl_memset 29967 mov r1, r10 29968 mov r0, #0 29969 bl flash_erase_block 29970 b .L4755 29971.L4801: 29972 str fp, [sp, #28] 29973 mov r4, #0 29974 b .L4758 29975.L4772: 29976 ldr r3, [sp, #56] 29977 ldrb r2, [r7, #1110] @ zero_extendqisi2 29978 add r5, r3, r6 29979 ubfx r5, r5, #2, #16 29980 cmp r2, #0 29981 add r0, r5, #1 29982 lsl r1, r0, #1 29983 add r3, r7, r1 29984 ldrh r3, [r3, #4] 29985 beq .L4763 29986 ldrb r3, [r7, #1] @ zero_extendqisi2 29987 cmp r3, #0 29988 moveq r3, r0 29989 movne r3, r1 29990.L4763: 29991 ldrb r1, [r7, #1028] @ zero_extendqisi2 29992 cmp r1, #9 29993 subne r3, r3, #1 29994 lslne r3, r3, #2 29995 cmp r2, #0 29996 str r3, [sp, #112] 29997 movw r3, #61424 29998 str r3, [sp, #116] 29999 lsl r3, r5, #1 30000 add r1, r7, r3 30001 ldrh r1, [r1, #4] 30002 moveq r5, r1 30003 beq .L4768 30004 ldrb r2, [r7, #1] @ zero_extendqisi2 30005 cmp r2, #0 30006 movne r5, r3 30007.L4768: 30008 cmp r4, #0 30009 mul r0, r5, r8 30010 bne .L4769 30011 ldr r3, [sp, #44] 30012 add r3, r0, r3 30013 ldr r0, .L4848+44 30014 str r3, [sp, #60] 30015 movw r3, #61424 30016 str r3, [sp, #12] 30017 add r3, sp, #176 30018 mov r2, r3 30019 ldr r1, [sp, #60] 30020 ldr r3, [r2, #-64]! 30021 str r3, [sp, #8] 30022 ldr r3, [r9] 30023 str r2, [sp, #52] 30024 mov r2, r6 30025 str r9, [sp] 30026 str r3, [sp, #4] 30027 mov r3, fp 30028 bl printk 30029 mov r1, r9 30030 ldr r2, [sp, #52] 30031 ldr r0, [sp, #60] 30032 bl fw_flash_page_prog.constprop.29 30033 ldrb r3, [r7, #1110] @ zero_extendqisi2 30034 cmp r3, #0 30035 bne .L4770 30036 add r5, r5, #1 30037 mov r1, r8 30038 uxth r5, r5 30039 ldr r0, [sp, #44] 30040 bl __aeabi_uidiv 30041 mov r2, r5 30042 mov r1, r0 30043 mov r0, r4 30044 bl id_block_prog_msb_ff_data 30045.L4770: 30046 ldr r3, [sp, #28] 30047 add r9, r9, #2048 30048 add r3, r3, #16 30049 cmp r6, r3 30050 bcc .L4771 30051 ldr r3, [sp, #28] 30052 add r3, r3, #20 30053 cmp r6, r3 30054 ldrcc r3, [sp, #32] 30055 addcc r9, r3, #2048 30056.L4771: 30057 add r6, r6, #4 30058 mov r4, #0 30059 uxth r6, r6 30060 b .L4761 30061.L4769: 30062 ldr r3, [sp, #44] 30063 add r2, sp, #112 30064 mov r1, r4 30065 add r0, r0, r3 30066 bl fw_flash_page_prog.constprop.29 30067 b .L4771 30068.L4787: 30069 ldr r3, [sp, #56] 30070 mov r1, r8 30071 sub r3, r8, r3 30072 uxth r3, r3 30073 str r3, [sp, #60] 30074 ldr r3, [sp, #52] 30075 add r0, r3, r4 30076 bl __aeabi_uidiv 30077 uxth r0, r0 30078 ldrb r1, [r5, #1110] @ zero_extendqisi2 30079 lsl r3, r0, #1 30080 cmp r1, #0 30081 add r2, r5, r3 30082 ldrh r2, [r2, #4] 30083 moveq r0, r2 30084 beq .L4775 30085 ldrb r2, [r5, #1] @ zero_extendqisi2 30086 cmp r2, #0 30087 movne r0, r3 30088.L4775: 30089 ldr r2, [sp, #84] 30090 ldr r3, [sp, #80] 30091 ldrb r9, [r5, #1108] @ zero_extendqisi2 30092 mla r3, r0, r3, r2 30093 str r3, [sp, #88] 30094 ldr r3, [r5, #1104] 30095 ldr r2, [sp, #88] 30096 ldrb r1, [r3, #9] @ zero_extendqisi2 30097 ldr r3, [sp, #56] 30098 add r0, r3, r2 30099 bl __aeabi_uidiv 30100 ldrb r3, [r5, #1193] @ zero_extendqisi2 30101 str r0, [sp, #44] 30102 mov r0, r9 30103 str r3, [sp, #108] 30104 bl nandc_bch_sel 30105.L4776: 30106 str r8, [sp] 30107 add r3, sp, #112 30108 mov r2, r6 30109 ldr r1, [sp, #44] 30110 mov r0, #0 30111 bl flash_read_page 30112 cmn r0, #1 30113 mov r7, r0 30114 bne .L4777 30115 ldrb r3, [r5, #1196] @ zero_extendqisi2 30116 cmp r3, #0 30117 str r3, [sp, #92] 30118 bne .L4778 30119.L4781: 30120 ldr r3, .L4848+20 30121 ldr r3, [r3, #-100] 30122 subs ip, r3, #0 30123 bne .L4779 30124.L4780: 30125 ldrb r3, [r5, #1143] @ zero_extendqisi2 30126 cmp r3, #0 30127 beq .L4777 30128 str r8, [sp] 30129 add r3, sp, #112 30130 mov r2, r6 30131 ldr r1, [sp, #44] 30132 mov r0, #0 30133 bl flash_ddr_tuning_read 30134 b .L4846 30135.L4778: 30136 mov r0, #0 30137 add r3, sp, #112 30138 strb r0, [r5, #1196] 30139 mov r2, r6 30140 str r8, [sp] 30141 ldr r1, [sp, #44] 30142 bl flash_read_page 30143 ldrb r3, [sp, #92] @ zero_extendqisi2 30144 cmn r0, #1 30145 strb r3, [r5, #1196] 30146 beq .L4781 30147.L4846: 30148 mov r7, r0 30149.L4777: 30150 cmn r7, #1 30151 movne r7, #0 30152 moveq r7, #1 30153 cmp r9, #16 30154 moveq r9, #0 30155 andne r9, r7, #1 30156 cmp r9, #0 30157 beq .L4783 30158 mov r0, #16 30159 mov r9, #16 30160 bl nandc_bch_sel 30161 b .L4776 30162.L4779: 30163 str r8, [sp] 30164 add r3, sp, #112 30165 mov r2, r6 30166 ldr r1, [sp, #44] 30167 mov r0, #0 30168 blx ip 30169 cmn r0, #1 30170 beq .L4780 30171 b .L4846 30172.L4783: 30173 ldr r0, [sp, #108] 30174 bl nandc_bch_sel 30175 ldr r3, [sp, #64] 30176 cmp r7, #0 30177 mvnne r3, #0 30178 str r3, [sp, #64] 30179 ldr r3, [sp, #84] 30180 ldr r2, [sp, #64] 30181 cmp r10, r3 30182 cmpeq r4, #0 30183 moveq r3, #1 30184 movne r3, #0 30185 cmp r2, #0 30186 movne r3, #0 30187 andeq r3, r3, #1 30188 cmp r3, #0 30189 beq .L4785 30190 ldr r3, [r6] 30191 ldr r2, .L4848+40 30192 cmp r3, r2 30193 bne .L4785 30194 ldr r3, [sp, #68] 30195 ldr r2, [sp, #60] 30196 ldrb r8, [r6, #17] @ zero_extendqisi2 30197 add r3, r3, r2 30198 str r3, [sp, #68] 30199.L4786: 30200 ldr r3, [sp, #60] 30201 add r4, r3, r4 30202 uxth r4, r4 30203 b .L4773 30204.L4785: 30205 ldr r3, [sp, #60] 30206 mov r2, r4 30207 ldr r1, [sp, #88] 30208 ldr r0, .L4848+48 30209 add r6, r6, r3, lsl #9 30210 ldr r3, [sp, #116] 30211 str r3, [sp] 30212 ldr r3, [sp, #112] 30213 bl printk 30214 mov r3, #0 30215 str r3, [sp, #56] 30216 b .L4786 30217.L4789: 30218 add r2, r2, #1 30219 cmp r3, r2 30220 bne .L4790 30221 ldr r3, [sp, #36] 30222 add r3, r3, #1 30223 cmp r3, #5 30224 str r3, [sp, #36] 30225 bls .L4755 30226 b .L4794 30227.L4849: 30228 .align 2 30229.L4848: 30230 .word .LANCHOR0 30231 .word -52655045 30232 .word 1397640018 30233 .word 1397967698 30234 .word .LANCHOR2 30235 .word .LANCHOR3 30236 .word 1314014539 30237 .word .LC318 30238 .word .LC319 30239 .word .LC317 30240 .word 1179535694 30241 .word .LC320 30242 .word .LC321 30243 .fnend 30244 .size write_idblock, .-write_idblock 30245 .align 2 30246 .global write_loader_lba 30247 .syntax unified 30248 .arm 30249 .fpu softvfp 30250 .type write_loader_lba, %function 30251write_loader_lba: 30252 .fnstart 30253 @ args = 0, pretend = 0, frame = 40 30254 @ frame_needed = 0, uses_anonymous_args = 0 30255 cmp r0, #64 30256 push {r4, r5, r6, r7, r8, lr} 30257 .save {r4, r5, r6, r7, r8, lr} 30258 mov r5, r0 30259 .pad #48 30260 sub sp, sp, #48 30261 mov r6, r1 30262 mov r8, r2 30263 ldr r4, .L4877 30264 bne .L4851 30265 ldr r3, .L4877+4 30266 ldr r2, [r2] 30267 ldr r1, .L4877+8 30268 cmp r2, r1 30269 cmpne r2, r3 30270 add r1, r1, #327680 30271 moveq r3, #1 30272 movne r3, #0 30273 cmp r2, r1 30274 orreq r3, r3, #1 30275 cmp r3, #0 30276 beq .L4851 30277 mov r3, #1 30278 mov r0, #256000 30279 strb r3, [r4, #32] 30280 bl ftl_malloc 30281 mov r2, #256000 30282 mov r1, #0 30283 str r0, [r4, #36] 30284 bl ftl_memset 30285 str r5, [r4, #40] 30286.L4851: 30287 str r6, [sp] 30288 mov r3, r5 30289 ldr r2, [r8] 30290 ldr r1, [r4, #36] 30291 ldr r0, .L4877+12 30292 bl printk 30293 ldrb r3, [r4, #32] @ zero_extendqisi2 30294 cmp r3, #0 30295 beq .L4850 30296 ldr r7, [r4, #36] 30297 cmp r7, #0 30298 beq .L4850 30299 sub r0, r5, #64 30300 cmp r0, #500 30301 bcs .L4853 30302 rsb r2, r5, #564 30303 mov r1, r8 30304 cmp r6, r2 30305 add r0, r7, r0, lsl #9 30306 movcc r2, r6 30307 lsl r2, r2, #9 30308 bl ftl_memcpy 30309.L4854: 30310 ldr r3, [r4, #40] 30311 cmp r5, r3 30312 beq .L4863 30313 mov r8, #0 30314 mov r0, r7 30315 strb r8, [r4, #32] 30316 bl ftl_free 30317 str r8, [r4, #36] 30318 b .L4863 30319.L4853: 30320 cmp r5, #564 30321 bcc .L4854 30322 ldr r3, .L4877+16 30323 ldr r0, [r4, #40] 30324 ldr r3, [r3, #1104] 30325 sub r0, r0, #64 30326 cmp r0, #500 30327 ldrb r3, [r3, #9] @ zero_extendqisi2 30328 movcs r0, #500 30329 cmp r3, #4 30330 beq .L4855 30331 mov r3, #2 30332 str r3, [sp, #8] 30333 mov r3, #3 30334 str r3, [sp, #12] 30335 mov r3, #4 30336 str r3, [sp, #16] 30337 mov r3, #5 30338 str r3, [sp, #20] 30339 mov r3, #6 30340 str r3, [sp, #24] 30341.L4856: 30342 mov r3, #61952 30343.L4862: 30344 ldr r2, [r7, r3, lsl #2] 30345 cmp r2, #0 30346 beq .L4860 30347 add r3, r3, #2048 30348 lsl r0, r3, #2 30349.L4861: 30350 mov r1, r7 30351 add r2, sp, #8 30352 mov r7, #0 30353 bl write_idblock 30354 ldr r0, [r4, #36] 30355 strb r7, [r4, #32] 30356 bl ftl_free 30357 str r7, [r4, #36] 30358.L4863: 30359 add r5, r5, r6 30360 str r5, [r4, #40] 30361.L4850: 30362 add sp, sp, #48 30363 @ sp needed 30364 pop {r4, r5, r6, r7, r8, pc} 30365.L4855: 30366 mov r2, #0 30367 add r3, sp, #8 30368.L4859: 30369 cmp r0, #256 30370 lslhi r1, r2, #1 30371 strls r2, [r3, r2, lsl #2] 30372 strhi r1, [r3, r2, lsl #2] 30373 add r2, r2, #1 30374 cmp r2, #5 30375 bne .L4859 30376 b .L4856 30377.L4860: 30378 sub r3, r3, #1 30379 cmp r3, #4096 30380 bne .L4862 30381 lsl r0, r0, #9 30382 b .L4861 30383.L4878: 30384 .align 2 30385.L4877: 30386 .word .LANCHOR3 30387 .word -52655045 30388 .word 1397640018 30389 .word .LC322 30390 .word .LANCHOR0 30391 .fnend 30392 .size write_loader_lba, .-write_loader_lba 30393 .align 2 30394 .global FtlWrite 30395 .syntax unified 30396 .arm 30397 .fpu softvfp 30398 .type FtlWrite, %function 30399FtlWrite: 30400 .fnstart 30401 @ args = 0, pretend = 0, frame = 0 30402 @ frame_needed = 0, uses_anonymous_args = 0 30403 push {r4, r5, r6, r7, r8, lr} 30404 .save {r4, r5, r6, r7, r8, lr} 30405 mov r6, r2 30406 sub r2, r1, #64 30407 mov r4, r1 30408 cmp r2, #1984 30409 mov r7, r3 30410 movcs r2, #0 30411 movcc r2, #1 30412 cmp r0, #0 30413 mov r5, r0 30414 movne r2, #0 30415 cmp r2, #0 30416 beq .L4880 30417 mov r2, r3 30418 mov r1, r6 30419 mov r0, r4 30420 bl write_loader_lba 30421.L4880: 30422 ldr r3, .L4885 30423 mov r2, r6 30424 mov r1, r4 30425 mov r0, r5 30426 ldr r3, [r3, #-160] 30427 ldr lr, [r3, #24] 30428 mov r3, r7 30429 mov ip, lr 30430 pop {r4, r5, r6, r7, r8, lr} 30431 bx ip 30432.L4886: 30433 .align 2 30434.L4885: 30435 .word .LANCHOR3 30436 .fnend 30437 .size FtlWrite, .-FtlWrite 30438 .align 2 30439 .global rknand_sys_storage_ioctl 30440 .syntax unified 30441 .arm 30442 .fpu softvfp 30443 .type rknand_sys_storage_ioctl, %function 30444rknand_sys_storage_ioctl: 30445 .fnstart 30446 @ args = 0, pretend = 0, frame = 0 30447 @ frame_needed = 0, uses_anonymous_args = 0 30448 ldr r3, .L4896 30449 cmp r1, r3 30450 bne .L4891 30451 push {r4, lr} 30452 .save {r4, lr} 30453 bl rknand_dev_flush 30454 mov r1, #0 30455 ldr r0, .L4896+4 30456 bl printk 30457 mov r0, #0 30458 pop {r4, pc} 30459.L4891: 30460 mvn r0, #21 30461 bx lr 30462.L4897: 30463 .align 2 30464.L4896: 30465 .word 1074029332 30466 .word .LC323 30467 .fnend 30468 .size rknand_sys_storage_ioctl, .-rknand_sys_storage_ioctl 30469 .align 2 30470 .global rk_ftl_storage_sys_init 30471 .syntax unified 30472 .arm 30473 .fpu softvfp 30474 .type rk_ftl_storage_sys_init, %function 30475rk_ftl_storage_sys_init: 30476 .fnstart 30477 @ args = 0, pretend = 0, frame = 0 30478 @ frame_needed = 0, uses_anonymous_args = 0 30479 @ link register save eliminated. 30480 ldr r3, .L4899 30481 mov r2, #0 30482 mvn r1, #0 30483 strb r2, [r3, #32] 30484 str r1, [r3, #40] 30485 str r2, [r3, #36] 30486 str r2, [r3, #44] 30487 b rknand_sys_storage_init 30488.L4900: 30489 .align 2 30490.L4899: 30491 .word .LANCHOR3 30492 .fnend 30493 .size rk_ftl_storage_sys_init, .-rk_ftl_storage_sys_init 30494 .align 2 30495 .global StorageSysDataDeInit 30496 .syntax unified 30497 .arm 30498 .fpu softvfp 30499 .type StorageSysDataDeInit, %function 30500StorageSysDataDeInit: 30501 .fnstart 30502 @ args = 0, pretend = 0, frame = 0 30503 @ frame_needed = 0, uses_anonymous_args = 0 30504 @ link register save eliminated. 30505 mov r0, #0 30506 bx lr 30507 .fnend 30508 .size StorageSysDataDeInit, .-StorageSysDataDeInit 30509 .align 2 30510 .global rk_ftl_vendor_storage_init 30511 .syntax unified 30512 .arm 30513 .fpu softvfp 30514 .type rk_ftl_vendor_storage_init, %function 30515rk_ftl_vendor_storage_init: 30516 .fnstart 30517 @ args = 0, pretend = 0, frame = 0 30518 @ frame_needed = 0, uses_anonymous_args = 0 30519 push {r4, r5, r6, r7, r8, r9, r10, lr} 30520 .save {r4, r5, r6, r7, r8, r9, r10, lr} 30521 ldr r6, .L4913 30522 ldr r3, [r6, #48] 30523 cmp r3, #0 30524 bne .L4903 30525 mov r0, #65536 30526 bl ftl_malloc 30527 str r0, [r6, #48] 30528.L4903: 30529 ldr r3, [r6, #48] 30530 cmp r3, #0 30531 beq .L4908 30532 ldr r10, .L4913+4 30533 mov r7, #0 30534 ldr r9, .L4913+8 30535 mov r4, r7 30536 mov r8, r7 30537.L4906: 30538 ldr r2, [r6, #48] 30539 mov r1, #128 30540 lsl r0, r8, #7 30541 bl FlashBootVendorRead 30542 cmp r0, #0 30543 bne .L4909 30544 ldr r1, [r6, #48] 30545 mov r0, r10 30546 add r2, r1, #61440 30547 ldr r3, [r1, #4] 30548 ldr r2, [r2, #4092] 30549 ldr r1, [r1] 30550 bl printk 30551 ldr r5, [r6, #48] 30552 ldr r3, [r5] 30553 cmp r3, r9 30554 bne .L4905 30555 add r2, r5, #61440 30556 ldr r3, [r5, #4] 30557 ldr r2, [r2, #4092] 30558 cmp r3, r4 30559 sub r2, r2, r3 30560 clz r2, r2 30561 lsr r2, r2, #5 30562 movls r2, #0 30563 cmp r2, #0 30564 movne r7, r8 30565 movne r4, r3 30566.L4905: 30567 add r8, r8, #1 30568 cmp r8, #2 30569 bne .L4906 30570 cmp r4, #0 30571 beq .L4907 30572 mov r2, r5 30573 mov r1, #128 30574 lsl r0, r7, #7 30575 bl FlashBootVendorRead 30576 adds r0, r0, #0 30577 movne r0, #1 30578 rsb r0, r0, #0 30579 pop {r4, r5, r6, r7, r8, r9, r10, pc} 30580.L4907: 30581 mov r2, #65536 30582 mov r1, r4 30583 mov r0, r5 30584 bl memset 30585 mov r3, #1 30586 add r2, r5, #61440 30587 str r3, [r5, #4] 30588 mov r0, r4 30589 str r9, [r5] 30590 str r3, [r2, #4092] 30591 ldr r3, .L4913+12 30592 strh r4, [r5, #12] @ movhi 30593 strh r3, [r5, #14] @ movhi 30594 pop {r4, r5, r6, r7, r8, r9, r10, pc} 30595.L4908: 30596 mvn r0, #11 30597 pop {r4, r5, r6, r7, r8, r9, r10, pc} 30598.L4909: 30599 mvn r0, #0 30600 pop {r4, r5, r6, r7, r8, r9, r10, pc} 30601.L4914: 30602 .align 2 30603.L4913: 30604 .word .LANCHOR3 30605 .word .LC324 30606 .word 1380668996 30607 .word -1032 30608 .fnend 30609 .size rk_ftl_vendor_storage_init, .-rk_ftl_vendor_storage_init 30610 .align 2 30611 .global rk_ftl_vendor_read 30612 .syntax unified 30613 .arm 30614 .fpu softvfp 30615 .type rk_ftl_vendor_read, %function 30616rk_ftl_vendor_read: 30617 .fnstart 30618 @ args = 0, pretend = 0, frame = 0 30619 @ frame_needed = 0, uses_anonymous_args = 0 30620 ldr r3, .L4925 30621 ldr ip, [r3, #48] 30622 cmp ip, #0 30623 beq .L4920 30624 push {r4, r5, r6, lr} 30625 .save {r4, r5, r6, lr} 30626 mov r3, #0 30627 ldrh r4, [ip, #10] 30628.L4917: 30629 cmp r3, r4 30630 bcc .L4919 30631 mvn r0, #0 30632 pop {r4, r5, r6, pc} 30633.L4919: 30634 add lr, ip, r3, lsl #3 30635 ldrh r5, [lr, #16] 30636 cmp r5, r0 30637 bne .L4918 30638 ldrh r4, [lr, #20] 30639 mov r0, r1 30640 ldrh r1, [lr, #18] 30641 cmp r4, r2 30642 movcs r4, r2 30643 add r1, r1, #1024 30644 mov r2, r4 30645 add r1, ip, r1 30646 bl memcpy 30647 mov r0, r4 30648 pop {r4, r5, r6, pc} 30649.L4918: 30650 add r3, r3, #1 30651 b .L4917 30652.L4920: 30653 mvn r0, #0 30654 bx lr 30655.L4926: 30656 .align 2 30657.L4925: 30658 .word .LANCHOR3 30659 .fnend 30660 .size rk_ftl_vendor_read, .-rk_ftl_vendor_read 30661 .align 2 30662 .global rk_ftl_vendor_write 30663 .syntax unified 30664 .arm 30665 .fpu softvfp 30666 .type rk_ftl_vendor_write, %function 30667rk_ftl_vendor_write: 30668 .fnstart 30669 @ args = 0, pretend = 0, frame = 24 30670 @ frame_needed = 0, uses_anonymous_args = 0 30671 ldr r3, .L4948 30672 push {r4, r5, r6, r7, r8, r9, r10, fp, lr} 30673 .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} 30674 .pad #28 30675 sub sp, sp, #28 30676 ldr r4, [r3, #48] 30677 cmp r4, #0 30678 beq .L4942 30679 mov r8, r2 30680 ldrh r2, [r4, #10] 30681 add r6, r8, #63 30682 ldrh r3, [r4, #8] 30683 mov fp, r1 30684 bic r6, r6, #63 30685 mov r7, #0 30686 str r3, [sp, #4] 30687.L4929: 30688 cmp r7, r2 30689 bcc .L4937 30690 ldrh r1, [r4, #14] 30691 cmp r6, r1 30692 bhi .L4942 30693 add r3, r4, r2, lsl #3 30694 uxth r6, r6 30695 strh r0, [r3, #16] @ movhi 30696 ldrh r2, [r4, #12] 30697 strh r8, [r3, #20] @ movhi 30698 strh r2, [r3, #18] @ movhi 30699 add r2, r2, r6 30700 sub r6, r1, r6 30701 strh r2, [r4, #12] @ movhi 30702 strh r6, [r4, #14] @ movhi 30703 mov r2, r8 30704 ldrh r0, [r3, #18] 30705 mov r1, fp 30706 add r0, r0, #1024 30707 add r0, r4, r0 30708 bl memcpy 30709 ldrh r3, [r4, #10] 30710 add r3, r3, #1 30711 strh r3, [r4, #10] @ movhi 30712 b .L4947 30713.L4937: 30714 add r5, r4, r7, lsl #3 30715 ldrh r3, [r5, #16] 30716 cmp r3, r0 30717 str r3, [sp, #8] 30718 bne .L4930 30719 ldrh r1, [r5, #20] 30720 add r3, r4, #1024 30721 add r1, r1, #63 30722 bic r1, r1, #63 30723 cmp r8, r1 30724 str r1, [sp, #12] 30725 bls .L4931 30726 ldrh r1, [r4, #14] 30727 cmp r6, r1 30728 subls r2, r2, #1 30729 ldrhls r10, [r5, #18] 30730 strls r2, [sp, #16] 30731 bls .L4932 30732.L4942: 30733 mvn r0, #0 30734 b .L4927 30735.L4933: 30736 ldrh r9, [r5, #20] 30737 add r0, r3, r10 30738 ldrh r2, [r5, #16] 30739 add r7, r7, #1 30740 ldrh r1, [r5, #18] 30741 strh r9, [r5, #12] @ movhi 30742 add r9, r9, #63 30743 bic r9, r9, #63 30744 strh r2, [r5, #8] @ movhi 30745 strh r10, [r5, #10] @ movhi 30746 add r1, r3, r1 30747 mov r2, r9 30748 str r3, [sp, #20] 30749 bl memcpy 30750 ldr r3, [sp, #20] 30751 add r10, r10, r9 30752.L4932: 30753 ldr r2, [sp, #16] 30754 add r5, r5, #8 30755 cmp r7, r2 30756 bcc .L4933 30757 ldrh r2, [sp, #8] 30758 add r7, r4, r7, lsl #3 30759 uxth r5, r10 30760 uxtah r0, r3, r10 30761 strh r8, [r7, #20] @ movhi 30762 strh r2, [r7, #16] @ movhi 30763 mov r1, fp 30764 strh r5, [r7, #18] @ movhi 30765 mov r2, r8 30766 bl memcpy 30767 uxth r3, r6 30768 ldrh r6, [r4, #14] 30769 add r5, r5, r3 30770 sub r6, r6, r3 30771 ldr r3, [sp, #12] 30772 strh r5, [r4, #12] @ movhi 30773 add r6, r6, r3 30774 strh r6, [r4, #14] @ movhi 30775.L4947: 30776 ldr r3, [r4, #4] 30777 add r2, r4, #61440 30778 mov r1, #128 30779 add r3, r3, #1 30780 str r3, [r4, #4] 30781 str r3, [r2, #4092] 30782 mov r2, r4 30783 ldrh r3, [r4, #8] 30784 add r3, r3, #1 30785 uxth r3, r3 30786 cmp r3, #1 30787 movhi r3, #0 30788 strh r3, [r4, #8] @ movhi 30789 ldr r3, [sp, #4] 30790 lsl r0, r3, #7 30791 bl FlashBootVendorWrite 30792 mov r0, #0 30793.L4927: 30794 add sp, sp, #28 30795 @ sp needed 30796 pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} 30797.L4931: 30798 ldrh r0, [r5, #18] 30799 mov r2, r8 30800 mov r1, fp 30801 add r0, r3, r0 30802 bl memcpy 30803 strh r8, [r5, #20] @ movhi 30804 b .L4947 30805.L4930: 30806 add r7, r7, #1 30807 b .L4929 30808.L4949: 30809 .align 2 30810.L4948: 30811 .word .LANCHOR3 30812 .fnend 30813 .size rk_ftl_vendor_write, .-rk_ftl_vendor_write 30814 .align 2 30815 .global rk_ftl_vendor_storage_ioctl 30816 .syntax unified 30817 .arm 30818 .fpu softvfp 30819 .type rk_ftl_vendor_storage_ioctl, %function 30820rk_ftl_vendor_storage_ioctl: 30821 .fnstart 30822 @ args = 0, pretend = 0, frame = 0 30823 @ frame_needed = 0, uses_anonymous_args = 0 30824 push {r4, r5, r6, lr} 30825 .save {r4, r5, r6, lr} 30826 mov r0, #9216 30827 mov r5, r2 30828 mov r6, r1 30829 bl ftl_malloc 30830 subs r4, r0, #0 30831 mvneq r5, #0 30832 beq .L4950 30833 ldr r3, .L4966 30834 cmp r6, r3 30835 beq .L4953 30836 add r3, r3, #1 30837 cmp r6, r3 30838 beq .L4954 30839.L4964: 30840 mvn r5, #13 30841 b .L4952 30842.L4953: 30843 mov r2, #8 30844 mov r1, r5 30845 bl rk_copy_from_user 30846 cmp r0, #0 30847 bne .L4964 30848 ldr r2, [r4] 30849 ldr r3, .L4966+4 30850 cmp r2, r3 30851 beq .L4956 30852.L4957: 30853 mvn r5, #0 30854.L4952: 30855 mov r0, r4 30856 bl kfree 30857.L4950: 30858 mov r0, r5 30859 pop {r4, r5, r6, pc} 30860.L4956: 30861 ldrh r2, [r4, #6] 30862 add r1, r4, #8 30863 ldrh r0, [r4, #4] 30864 bl rk_ftl_vendor_read 30865 cmn r0, #1 30866 beq .L4957 30867 uxth r2, r0 30868 strh r0, [r4, #6] @ movhi 30869 mov r1, r4 30870 mov r0, r5 30871 add r2, r2, #8 30872 bl rk_copy_to_user 30873 subs r5, r0, #0 30874 beq .L4952 30875 b .L4964 30876.L4954: 30877 mov r2, #8 30878 mov r1, r5 30879 bl rk_copy_from_user 30880 cmp r0, #0 30881 bne .L4964 30882 ldr r2, [r4] 30883 ldr r3, .L4966+4 30884 cmp r2, r3 30885 bne .L4957 30886 ldrh r2, [r4, #6] 30887 movw r3, #4087 30888 cmp r2, r3 30889 bhi .L4957 30890 add r2, r2, #8 30891 mov r1, r5 30892 mov r0, r4 30893 bl rk_copy_from_user 30894 cmp r0, #0 30895 bne .L4964 30896 ldrh r2, [r4, #6] 30897 add r1, r4, #8 30898 ldrh r0, [r4, #4] 30899 bl rk_ftl_vendor_write 30900 mov r5, r0 30901 b .L4952 30902.L4967: 30903 .align 2 30904.L4966: 30905 .word 1074034177 30906 .word 1448232273 30907 .fnend 30908 .size rk_ftl_vendor_storage_ioctl, .-rk_ftl_vendor_storage_ioctl 30909 .global SecureBootUnlockTryCount 30910 .global SecureBootCheckOK 30911 .global SecureBootEn 30912 .global gpVendor1Info 30913 .global gpVendor0Info 30914 .global g_idb_buffer 30915 .global gSnSectorData 30916 .global gpDrmKeyInfo 30917 .global gpBootConfig 30918 .global ftl_dma32_buffer_size 30919 .global ftl_dma32_buffer 30920 .global gLoaderBootInfo 30921 .global RK29_NANDC1_REG_BASE 30922 .global RK29_NANDC_REG_BASE 30923 .global gp_ftl_api 30924 .global rk_zftl_enable 30925 .global g_pm_spare 30926 .global pm_first_write 30927 .global pm_force_gc 30928 .global pm_gc_enable 30929 .global pm_last_load_ram_id 30930 .global pm_last_update_ram_id 30931 .global pm_ram_info 30932 .global sblk_gc_write_completed_queue_head 30933 .global sblk_read_completed_queue_head 30934 .global sblk_write_completed_queue_head 30935 .global sblk_queue_head 30936 .global slc_cache_sblk 30937 .global xlc_data_sblk 30938 .global slc_data_sblk 30939 .global free_mix_sblk 30940 .global free_xlc_sblk 30941 .global free_slc_sblk 30942 .global gp_data_xlc_data_head 30943 .global gp_data_slc_data_head 30944 .global gp_data_slc_cache_head 30945 .global gp_free_mix_head 30946 .global gp_free_xlc_head 30947 .global gp_free_slc_head 30948 .global gp_sblk_list_tbl 30949 .global zftl_print_list_count 30950 .global ftl_ext_info_first_write 30951 .global ftl_sys_info_first_write 30952 .global ftl_low_format_cur_blk 30953 .global ftl_power_lost_flag 30954 .global ftl_vpn_update_count 30955 .global ftl_sblk_update_list_offset 30956 .global ftl_sblk_update_list 30957 .global ftl_sblk_vpn_update_id 30958 .global ftl_sblk_lpa_tbl 30959 .global ftl_sblk_vpn 30960 .global gp_ftl_ext_info 30961 .global gp_ftl_info 30962 .global gp_blk_info 30963 .global ftl_tmp_buffer 30964 .global ftl_ext_info_data_buffer 30965 .global ftl_info_data_buffer 30966 .global ftl_tmp_spare 30967 .global ftl_info_spare 30968 .global g_ftl_info_blk 30969 .global tlc_b05a_prog_tbl 30970 .global tlc_prog_order 30971 .global gc_des_ppa_tbl 30972 .global gc_valid_page_ppa 30973 .global gc_page_buf_id 30974 .global gc_pre_ppa_tbl 30975 .global gc_lpa_tbl 30976 .global g_gc_info 30977 .global gc_xlc_search_index 30978 .global gc_xlc_data_index 30979 .global gc_slc_cache_index 30980 .global gc_slc_data_index 30981 .global gc_free_slc_sblk_th 30982 .global gc_slc_mode_vpn_th 30983 .global gc_slc_mode_slc_vpn_th 30984 .global gc_slc_mode_tlc_vpn_th 30985 .global gc_tlc_mode_tlc_vpn_th 30986 .global gc_tlc_mode_slc_vpn_th 30987 .global gc_state 30988 .global gc_mode 30989 .global p_read_ahead_ext_buf 30990 .global discard_sector_count 30991 .global read_ahead_lpa 30992 .global _ftl_gc_tag_page_num 30993 .global read_buf_count 30994 .global read_buf_head 30995 .global write_commit_count 30996 .global write_commit_head 30997 .global write_buf_count 30998 .global write_buf_head 30999 .global ftl_flush_jiffies 31000 .global lpa_hash 31001 .global lpa_hash_index 31002 .global _c_slc_to_xlc_ec_ratio 31003 .global _c_mix_max_xlc_ec_count 31004 .global _c_mix_max_slc_ec_count 31005 .global _c_swl_xlc_gc_th 31006 .global _c_swl_slc_gc_th 31007 .global _gc_after_discard_en 31008 .global _last_write_time 31009 .global _last_read_time 31010 .global _min_slc_super_block 31011 .global _max_xlc_super_block 31012 .global _c_max_pm_sblk 31013 .global _c_ftl_pm_page_num 31014 .global _c_totle_log_page 31015 .global _c_totle_data_density 31016 .global _c_user_data_density 31017 .global _c_totle_phy_density 31018 .global _c_ftl_block_addr_log2 31019 .global _c_ftl_block_align_addr 31020 .global _c_ftl_byte_pre_page 31021 .global _c_ftl_nand_blks_per_die 31022 .global _c_ftl_page_pre_slc_blk 31023 .global _c_ftl_page_pre_blk 31024 .global _c_ftl_blk_pre_plane 31025 .global _c_ftl_nand_planes_num 31026 .global _c_ftl_planes_per_die 31027 .global _c_ftl_sec_per_page 31028 .global _c_ftl_nand_die_num 31029 .global _c_ftl_nand_type 31030 .global zftl_debug 31031 .global g_flash_blk_info 31032 .global gp_flash_info 31033 .global p_free_buf_head 31034 .global free_buf_count 31035 .global g_buf 31036 .global nandc_ecc_sts 31037 .global g_nandc_v6_master_info 31038 .global nandc_randomizer_en 31039 .global nandc_hw_seed 31040 .global fill_spare_size 31041 .global g_nandc_ecc_bits 31042 .global g_nandc_tran_timeout 31043 .global g_nandc_ver 31044 .global gp_nandc 31045 .global hy_f26_ref_value 31046 .global sd15_tlc_rr 31047 .global sd15_slc_rr 31048 .global g_nand_para_info 31049 .global gp_nand_para_info 31050 .global g_nand_opt_para 31051 .global g_msb_page_tbl 31052 .global g_lsb_page_tbl 31053 .global g_die_addr 31054 .global g_die_cs_idx 31055 .global IDByte 31056 .global flash_read_retry 31057 .global _c_ftl_cs_bits 31058 .global g_maxRetryCount 31059 .global g_maxRegNum 31060 .global g_retryMode 31061 .global g_flash_toggle_mode_en 31062 .global g_flash_ymtc_3d_tlc_flag 31063 .global g_flash_micron_3d_tlc_b16a 31064 .global g_flash_micron_3d_tlc_b05a 31065 .global g_flash_micron_3d_tlc_flag 31066 .global g_flash_3d_mlc_flag 31067 .global g_flash_3d_tlc_flag 31068 .global g_flash_multi_page_prog_en 31069 .global g_flash_multi_page_read_en 31070 .global g_flash_interface_mode 31071 .global g_idb_ecc_bits 31072 .global g_idb_slc_mode_enable 31073 .global g_one_pass_program 31074 .global g_slc_mode_addr2 31075 .global g_slc_mode_enable 31076 .global g_flash_cur_mode 31077 .global g_flash_six_addr 31078 .global g_flash_slc_mode 31079 .global g_slc_page_num 31080 .global g_totle_phy_block 31081 .global g_block_align_addr 31082 .global g_flash_reversd_blks 31083 .global g_nand_max_die 31084 .global g_flash_tmp_spare_buffer 31085 .global g_flash_tmp_page_buffer 31086 .global g_flash_sys_spare_buffer 31087 .global g_flash_spare_buffer 31088 .global g_flash_page_buffer 31089 .section .rodata 31090 .align 2 31091 .set .LANCHOR1,. + 0 31092 .type __func__.42945, %object 31093 .size __func__.42945, 18 31094__func__.42945: 31095 .ascii "_list_remove_node\000" 31096 .type __func__.42970, %object 31097 .size __func__.42970, 23 31098__func__.42970: 31099 .ascii "_list_update_data_list\000" 31100 .type toshiba_A19ref_value, %object 31101 .size toshiba_A19ref_value, 45 31102toshiba_A19ref_value: 31103 .byte 4 31104 .byte 5 31105 .byte 6 31106 .byte 7 31107 .byte 13 31108 .byte 0 31109 .byte 0 31110 .byte 0 31111 .byte 0 31112 .byte 0 31113 .byte 4 31114 .byte 4 31115 .byte 124 31116 .byte 126 31117 .byte 0 31118 .byte 0 31119 .byte 124 31120 .byte 120 31121 .byte 120 31122 .byte 0 31123 .byte 124 31124 .byte 118 31125 .byte 116 31126 .byte 114 31127 .byte 0 31128 .byte 8 31129 .byte 8 31130 .byte 0 31131 .byte 0 31132 .byte 0 31133 .byte 11 31134 .byte 126 31135 .byte 118 31136 .byte 116 31137 .byte 0 31138 .byte 16 31139 .byte 118 31140 .byte 114 31141 .byte 112 31142 .byte 0 31143 .byte 2 31144 .byte 0 31145 .byte 126 31146 .byte 124 31147 .byte 0 31148 .type toshiba_15ref_value, %object 31149 .size toshiba_15ref_value, 95 31150toshiba_15ref_value: 31151 .byte 4 31152 .byte 5 31153 .byte 6 31154 .byte 7 31155 .byte 13 31156 .byte 0 31157 .byte 0 31158 .byte 0 31159 .byte 0 31160 .byte 0 31161 .byte 0 31162 .byte 0 31163 .byte 0 31164 .byte 0 31165 .byte 0 31166 .byte 2 31167 .byte 4 31168 .byte 2 31169 .byte 0 31170 .byte 0 31171 .byte 8 31172 .byte 8 31173 .byte 0 31174 .byte 0 31175 .byte 0 31176 .byte 124 31177 .byte 0 31178 .byte 124 31179 .byte 124 31180 .byte 0 31181 .byte 122 31182 .byte 0 31183 .byte 122 31184 .byte 122 31185 .byte 0 31186 .byte 11 31187 .byte 126 31188 .byte 118 31189 .byte 116 31190 .byte 0 31191 .byte 120 31192 .byte 2 31193 .byte 120 31194 .byte 122 31195 .byte 0 31196 .byte 126 31197 .byte 4 31198 .byte 126 31199 .byte 122 31200 .byte 0 31201 .byte 16 31202 .byte 118 31203 .byte 114 31204 .byte 112 31205 .byte 0 31206 .byte 118 31207 .byte 4 31208 .byte 118 31209 .byte 120 31210 .byte 0 31211 .byte 4 31212 .byte 4 31213 .byte 4 31214 .byte 118 31215 .byte 0 31216 .byte 2 31217 .byte 0 31218 .byte 126 31219 .byte 124 31220 .byte 0 31221 .byte 6 31222 .byte 10 31223 .byte 6 31224 .byte 2 31225 .byte 0 31226 .byte 116 31227 .byte 124 31228 .byte 116 31229 .byte 118 31230 .byte 0 31231 .byte 4 31232 .byte 4 31233 .byte 124 31234 .byte 126 31235 .byte 0 31236 .byte 0 31237 .byte 124 31238 .byte 120 31239 .byte 120 31240 .byte 0 31241 .byte 124 31242 .byte 118 31243 .byte 116 31244 .byte 114 31245 .byte 0 31246 .type toshiba_ref_value, %object 31247 .size toshiba_ref_value, 8 31248toshiba_ref_value: 31249 .byte 0 31250 .byte 4 31251 .byte 124 31252 .byte 120 31253 .byte 116 31254 .byte 8 31255 .byte 12 31256 .byte 112 31257 .type __func__.23463, %object 31258 .size __func__.23463, 22 31259__func__.23463: 31260 .ascii "nand_flash_print_info\000" 31261 .type __func__.22936, %object 31262 .size __func__.22936, 28 31263__func__.22936: 31264 .ascii "flash_wait_device_ready_raw\000" 31265 .type __func__.23000, %object 31266 .size __func__.23000, 22 31267__func__.23000: 31268 .ascii "flash_start_page_read\000" 31269 .type toshiba_3D_tlc_value, %object 31270 .size toshiba_3D_tlc_value, 399 31271toshiba_3D_tlc_value: 31272 .byte -119 31273 .byte -119 31274 .byte -119 31275 .byte -119 31276 .byte -118 31277 .byte -118 31278 .byte -118 31279 .byte 0 31280 .byte 0 31281 .byte 0 31282 .byte 0 31283 .byte 0 31284 .byte 0 31285 .byte 0 31286 .byte 5 31287 .byte -2 31288 .byte -1 31289 .byte 0 31290 .byte -3 31291 .byte -2 31292 .byte 6 31293 .byte -9 31294 .byte -12 31295 .byte -9 31296 .byte -7 31297 .byte -13 31298 .byte -12 31299 .byte -7 31300 .byte -6 31301 .byte -15 31302 .byte -15 31303 .byte -2 31304 .byte -12 31305 .byte -16 31306 .byte -6 31307 .byte -2 31308 .byte -19 31309 .byte -19 31310 .byte -6 31311 .byte -4 31312 .byte -12 31313 .byte -14 31314 .byte -2 31315 .byte -11 31316 .byte -23 31317 .byte -34 31318 .byte -4 31319 .byte -20 31320 .byte -22 31321 .byte -2 31322 .byte -7 31323 .byte -31 31324 .byte -30 31325 .byte -12 31326 .byte -20 31327 .byte -18 31328 .byte 2 31329 .byte -15 31330 .byte -19 31331 .byte -36 31332 .byte -12 31333 .byte -28 31334 .byte -34 31335 .byte -6 31336 .byte -15 31337 .byte -11 31338 .byte 2 31339 .byte -12 31340 .byte -8 31341 .byte -2 31342 .byte 2 31343 .byte -3 31344 .byte -7 31345 .byte -10 31346 .byte -4 31347 .byte -8 31348 .byte -6 31349 .byte -6 31350 .byte -11 31351 .byte -27 31352 .byte -38 31353 .byte -16 31354 .byte -12 31355 .byte -2 31356 .byte 2 31357 .byte -7 31358 .byte -31 31359 .byte -22 31360 .byte -4 31361 .byte -16 31362 .byte -22 31363 .byte -7 31364 .byte -31 31365 .byte -23 31366 .byte -22 31367 .byte -28 31368 .byte -28 31369 .byte -26 31370 .byte 2 31371 .byte -7 31372 .byte -11 31373 .byte -14 31374 .byte -8 31375 .byte -12 31376 .byte -10 31377 .byte -10 31378 .byte -27 31379 .byte -25 31380 .byte -22 31381 .byte -20 31382 .byte -28 31383 .byte -22 31384 .byte -7 31385 .byte -23 31386 .byte -29 31387 .byte -34 31388 .byte -24 31389 .byte -32 31390 .byte -22 31391 .byte -10 31392 .byte -11 31393 .byte -29 31394 .byte -18 31395 .byte -12 31396 .byte -24 31397 .byte -22 31398 .byte 6 31399 .byte 1 31400 .byte -3 31401 .byte -6 31402 .byte 0 31403 .byte -4 31404 .byte -2 31405 .byte 10 31406 .byte -3 31407 .byte -7 31408 .byte -6 31409 .byte 4 31410 .byte -4 31411 .byte -2 31412 .byte -10 31413 .byte -23 31414 .byte -39 31415 .byte -22 31416 .byte -19 31417 .byte -24 31418 .byte -18 31419 .byte -14 31420 .byte -23 31421 .byte -29 31422 .byte -30 31423 .byte -15 31424 .byte -30 31425 .byte -30 31426 .byte -7 31427 .byte -27 31428 .byte -35 31429 .byte -26 31430 .byte -15 31431 .byte -24 31432 .byte -26 31433 .byte 6 31434 .byte -11 31435 .byte 5 31436 .byte -2 31437 .byte -16 31438 .byte -16 31439 .byte -2 31440 .byte -2 31441 .byte -15 31442 .byte -15 31443 .byte -20 31444 .byte -8 31445 .byte -16 31446 .byte -18 31447 .byte 6 31448 .byte 5 31449 .byte -15 31450 .byte -2 31451 .byte -24 31452 .byte -28 31453 .byte -22 31454 .byte 10 31455 .byte -15 31456 .byte -3 31457 .byte -30 31458 .byte -8 31459 .byte -24 31460 .byte -30 31461 .byte -10 31462 .byte -27 31463 .byte -19 31464 .byte -30 31465 .byte -12 31466 .byte -16 31467 .byte -10 31468 .byte 14 31469 .byte -19 31470 .byte -3 31471 .byte -30 31472 .byte 4 31473 .byte 4 31474 .byte 6 31475 .byte 2 31476 .byte 1 31477 .byte -3 31478 .byte -10 31479 .byte -8 31480 .byte -4 31481 .byte -6 31482 .byte -2 31483 .byte -15 31484 .byte -11 31485 .byte -26 31486 .byte -8 31487 .byte -20 31488 .byte -30 31489 .byte 6 31490 .byte -19 31491 .byte -3 31492 .byte -46 31493 .byte 0 31494 .byte 0 31495 .byte 2 31496 .byte 6 31497 .byte 9 31498 .byte 5 31499 .byte 2 31500 .byte 4 31501 .byte 8 31502 .byte 6 31503 .byte 8 31504 .byte 9 31505 .byte 9 31506 .byte 6 31507 .byte 8 31508 .byte 8 31509 .byte 6 31510 .byte 10 31511 .byte 13 31512 .byte 9 31513 .byte 6 31514 .byte 8 31515 .byte 12 31516 .byte 10 31517 .byte 2 31518 .byte 5 31519 .byte 1 31520 .byte -2 31521 .byte 0 31522 .byte 0 31523 .byte 6 31524 .byte 12 31525 .byte 1 31526 .byte 13 31527 .byte 2 31528 .byte 12 31529 .byte 12 31530 .byte 14 31531 .byte -12 31532 .byte -14 31533 .byte -20 31534 .byte -18 31535 .byte -16 31536 .byte -16 31537 .byte -14 31538 .byte -12 31539 .byte -10 31540 .byte -21 31541 .byte -14 31542 .byte -12 31543 .byte -12 31544 .byte -10 31545 .byte -12 31546 .byte -18 31547 .byte -22 31548 .byte -24 31549 .byte -18 31550 .byte -18 31551 .byte -18 31552 .byte -12 31553 .byte -14 31554 .byte -23 31555 .byte -20 31556 .byte -20 31557 .byte -20 31558 .byte -20 31559 .byte -12 31560 .byte -24 31561 .byte -24 31562 .byte -30 31563 .byte -24 31564 .byte -28 31565 .byte -28 31566 .byte -12 31567 .byte -26 31568 .byte -25 31569 .byte -34 31570 .byte -24 31571 .byte -24 31572 .byte -24 31573 .byte -12 31574 .byte -13 31575 .byte -26 31576 .byte -20 31577 .byte -14 31578 .byte -18 31579 .byte -18 31580 .byte -12 31581 .byte -15 31582 .byte -27 31583 .byte -22 31584 .byte -20 31585 .byte -24 31586 .byte -22 31587 .byte -12 31588 .byte -21 31589 .byte -28 31590 .byte -28 31591 .byte -24 31592 .byte -26 31593 .byte -24 31594 .byte 20 31595 .byte 16 31596 .byte 6 31597 .byte 10 31598 .byte 16 31599 .byte 12 31600 .byte 12 31601 .byte 16 31602 .byte 16 31603 .byte 8 31604 .byte 8 31605 .byte 12 31606 .byte 12 31607 .byte 12 31608 .byte 18 31609 .byte 18 31610 .byte 10 31611 .byte 8 31612 .byte 14 31613 .byte 14 31614 .byte 14 31615 .byte 16 31616 .byte 14 31617 .byte 6 31618 .byte 6 31619 .byte 12 31620 .byte 14 31621 .byte 8 31622 .byte 20 31623 .byte 18 31624 .byte 8 31625 .byte 6 31626 .byte 14 31627 .byte 14 31628 .byte 10 31629 .byte 20 31630 .byte 20 31631 .byte 6 31632 .byte 10 31633 .byte 10 31634 .byte 12 31635 .byte 12 31636 .byte 10 31637 .byte 13 31638 .byte 5 31639 .byte 2 31640 .byte 14 31641 .byte 8 31642 .byte 6 31643 .byte 6 31644 .byte 13 31645 .byte 9 31646 .byte 4 31647 .byte 14 31648 .byte 10 31649 .byte 10 31650 .byte 10 31651 .byte 13 31652 .byte 9 31653 .byte 6 31654 .byte 8 31655 .byte 12 31656 .byte 10 31657 .byte 2 31658 .byte 5 31659 .byte 1 31660 .byte -2 31661 .byte 0 31662 .byte 0 31663 .byte 6 31664 .byte 12 31665 .byte 1 31666 .byte 13 31667 .byte 2 31668 .byte 12 31669 .byte 12 31670 .byte 14 31671 .type toshiba_3D_slc_value, %object 31672 .size toshiba_3D_slc_value, 11 31673toshiba_3D_slc_value: 31674 .byte -117 31675 .byte 0 31676 .byte -8 31677 .byte 8 31678 .byte -16 31679 .byte -24 31680 .byte 24 31681 .byte -40 31682 .byte 40 31683 .byte -56 31684 .byte 56 31685 .type ymtc_3D_tlc_value, %object 31686 .size ymtc_3D_tlc_value, 357 31687ymtc_3D_tlc_value: 31688 .byte 0 31689 .byte 0 31690 .byte 0 31691 .byte 0 31692 .byte 0 31693 .byte 0 31694 .byte 0 31695 .byte -10 31696 .byte -10 31697 .byte -6 31698 .byte -6 31699 .byte -2 31700 .byte 2 31701 .byte 2 31702 .byte -6 31703 .byte -6 31704 .byte -4 31705 .byte -4 31706 .byte -4 31707 .byte -6 31708 .byte -8 31709 .byte 6 31710 .byte 0 31711 .byte 0 31712 .byte 0 31713 .byte 0 31714 .byte 0 31715 .byte 0 31716 .byte -2 31717 .byte -2 31718 .byte -2 31719 .byte -4 31720 .byte -4 31721 .byte -6 31722 .byte -6 31723 .byte -6 31724 .byte -6 31725 .byte -6 31726 .byte -6 31727 .byte -6 31728 .byte -6 31729 .byte -11 31730 .byte -2 31731 .byte 2 31732 .byte 4 31733 .byte 4 31734 .byte 6 31735 .byte 6 31736 .byte 6 31737 .byte -6 31738 .byte -6 31739 .byte -6 31740 .byte -6 31741 .byte -6 31742 .byte -8 31743 .byte -14 31744 .byte -6 31745 .byte -15 31746 .byte -11 31747 .byte 2 31748 .byte -12 31749 .byte -8 31750 .byte -2 31751 .byte 2 31752 .byte -3 31753 .byte -7 31754 .byte -10 31755 .byte -4 31756 .byte -8 31757 .byte -6 31758 .byte -18 31759 .byte -18 31760 .byte -14 31761 .byte -14 31762 .byte -10 31763 .byte -5 31764 .byte -5 31765 .byte -14 31766 .byte -14 31767 .byte -12 31768 .byte -12 31769 .byte -12 31770 .byte -13 31771 .byte -15 31772 .byte -2 31773 .byte -8 31774 .byte -8 31775 .byte -8 31776 .byte -8 31777 .byte -7 31778 .byte -7 31779 .byte -10 31780 .byte -10 31781 .byte -10 31782 .byte -12 31783 .byte -12 31784 .byte -13 31785 .byte -13 31786 .byte -14 31787 .byte -14 31788 .byte -14 31789 .byte -14 31790 .byte -14 31791 .byte -13 31792 .byte -18 31793 .byte -10 31794 .byte -6 31795 .byte -4 31796 .byte -4 31797 .byte -2 31798 .byte -1 31799 .byte -1 31800 .byte -14 31801 .byte -14 31802 .byte -14 31803 .byte -14 31804 .byte -14 31805 .byte -15 31806 .byte -21 31807 .byte -12 31808 .byte -11 31809 .byte -7 31810 .byte -7 31811 .byte -3 31812 .byte 1 31813 .byte 1 31814 .byte -8 31815 .byte -7 31816 .byte -5 31817 .byte -5 31818 .byte -5 31819 .byte -7 31820 .byte -9 31821 .byte 4 31822 .byte -1 31823 .byte -1 31824 .byte -1 31825 .byte -1 31826 .byte -1 31827 .byte -1 31828 .byte -4 31829 .byte -3 31830 .byte -3 31831 .byte -5 31832 .byte -5 31833 .byte -7 31834 .byte -7 31835 .byte -8 31836 .byte -7 31837 .byte -7 31838 .byte -7 31839 .byte -7 31840 .byte -7 31841 .byte -12 31842 .byte -4 31843 .byte 1 31844 .byte 3 31845 .byte 3 31846 .byte 5 31847 .byte 5 31848 .byte 5 31849 .byte -8 31850 .byte -7 31851 .byte -7 31852 .byte -7 31853 .byte -7 31854 .byte -9 31855 .byte -15 31856 .byte 2 31857 .byte -7 31858 .byte -11 31859 .byte -14 31860 .byte -8 31861 .byte -12 31862 .byte -10 31863 .byte 6 31864 .byte 1 31865 .byte -3 31866 .byte -6 31867 .byte 0 31868 .byte -4 31869 .byte -2 31870 .byte 10 31871 .byte -3 31872 .byte -7 31873 .byte -6 31874 .byte 4 31875 .byte -4 31876 .byte -2 31877 .byte -10 31878 .byte -23 31879 .byte -39 31880 .byte -22 31881 .byte -19 31882 .byte -24 31883 .byte -18 31884 .byte -7 31885 .byte -27 31886 .byte -35 31887 .byte -26 31888 .byte -15 31889 .byte -24 31890 .byte -26 31891 .byte 6 31892 .byte -11 31893 .byte 5 31894 .byte -2 31895 .byte -16 31896 .byte -16 31897 .byte -2 31898 .byte -2 31899 .byte -15 31900 .byte -15 31901 .byte -20 31902 .byte -8 31903 .byte -16 31904 .byte -18 31905 .byte 2 31906 .byte 1 31907 .byte -3 31908 .byte -10 31909 .byte -8 31910 .byte -4 31911 .byte -6 31912 .byte -2 31913 .byte -15 31914 .byte -11 31915 .byte -26 31916 .byte -8 31917 .byte -20 31918 .byte -30 31919 .byte 6 31920 .byte -19 31921 .byte -3 31922 .byte -46 31923 .byte 0 31924 .byte 0 31925 .byte 2 31926 .byte 6 31927 .byte 9 31928 .byte 5 31929 .byte 2 31930 .byte 4 31931 .byte 8 31932 .byte 6 31933 .byte 8 31934 .byte 9 31935 .byte 9 31936 .byte 6 31937 .byte 8 31938 .byte 8 31939 .byte 6 31940 .byte 10 31941 .byte 13 31942 .byte 9 31943 .byte 6 31944 .byte 8 31945 .byte 12 31946 .byte 10 31947 .byte 2 31948 .byte 5 31949 .byte 1 31950 .byte -2 31951 .byte 0 31952 .byte 0 31953 .byte 6 31954 .byte 12 31955 .byte 1 31956 .byte 13 31957 .byte 2 31958 .byte 12 31959 .byte 12 31960 .byte 14 31961 .byte -12 31962 .byte -14 31963 .byte -20 31964 .byte -18 31965 .byte -16 31966 .byte -16 31967 .byte -14 31968 .byte -12 31969 .byte -10 31970 .byte -21 31971 .byte -14 31972 .byte -12 31973 .byte -12 31974 .byte -10 31975 .byte -12 31976 .byte -18 31977 .byte -22 31978 .byte -24 31979 .byte -18 31980 .byte -18 31981 .byte -18 31982 .byte -12 31983 .byte -14 31984 .byte -23 31985 .byte -20 31986 .byte -20 31987 .byte -20 31988 .byte -20 31989 .byte 16 31990 .byte 16 31991 .byte 8 31992 .byte 8 31993 .byte 12 31994 .byte 12 31995 .byte 12 31996 .byte 18 31997 .byte 18 31998 .byte 10 31999 .byte 8 32000 .byte 14 32001 .byte 14 32002 .byte 14 32003 .byte 16 32004 .byte 14 32005 .byte 6 32006 .byte 6 32007 .byte 12 32008 .byte 14 32009 .byte 8 32010 .byte 10 32011 .byte 13 32012 .byte 5 32013 .byte 2 32014 .byte 14 32015 .byte 8 32016 .byte 6 32017 .byte 6 32018 .byte 13 32019 .byte 9 32020 .byte 4 32021 .byte 14 32022 .byte 10 32023 .byte 10 32024 .byte 10 32025 .byte 13 32026 .byte 9 32027 .byte 6 32028 .byte 8 32029 .byte 12 32030 .byte 10 32031 .byte 2 32032 .byte 5 32033 .byte 1 32034 .byte -2 32035 .byte 0 32036 .byte 0 32037 .byte 6 32038 .byte 12 32039 .byte 1 32040 .byte 13 32041 .byte 2 32042 .byte 12 32043 .byte 12 32044 .byte 14 32045 .type ymtc_3D_slc_value, %object 32046 .size ymtc_3D_slc_value, 10 32047ymtc_3D_slc_value: 32048 .byte 0 32049 .byte -8 32050 .byte 8 32051 .byte -16 32052 .byte -20 32053 .byte 24 32054 .byte -26 32055 .byte 40 32056 .byte -12 32057 .byte 56 32058 .type __func__.23025, %object 32059 .size __func__.23025, 23 32060__func__.23025: 32061 .ascii "flash_start_plane_read\000" 32062 .type __func__.22911, %object 32063 .size __func__.22911, 26 32064__func__.22911: 32065 .ascii "flash_erase_duplane_block\000" 32066 .type __func__.22922, %object 32067 .size __func__.22922, 21 32068__func__.22922: 32069 .ascii "flash_erase_block_en\000" 32070 .type random_seed, %object 32071 .size random_seed, 256 32072random_seed: 32073 .short 22378 32074 .short 1512 32075 .short 25245 32076 .short 17827 32077 .short 25756 32078 .short 19440 32079 .short 9026 32080 .short 10030 32081 .short 29528 32082 .short 20467 32083 .short 29676 32084 .short 24432 32085 .short 31328 32086 .short 6872 32087 .short 13426 32088 .short 13842 32089 .short 8783 32090 .short 1108 32091 .short 782 32092 .short 28837 32093 .short 30729 32094 .short 9505 32095 .short 18676 32096 .short 23085 32097 .short 18730 32098 .short 1085 32099 .short 32609 32100 .short 14697 32101 .short 20858 32102 .short 15170 32103 .short 30365 32104 .short 1607 32105 .short 32298 32106 .short 4995 32107 .short 18905 32108 .short 1976 32109 .short 9592 32110 .short 20204 32111 .short 17443 32112 .short 13615 32113 .short 23330 32114 .short 29369 32115 .short 13947 32116 .short 9398 32117 .short 32398 32118 .short 8984 32119 .short 27600 32120 .short 21785 32121 .short 6019 32122 .short 6311 32123 .short 31598 32124 .short 30210 32125 .short 19327 32126 .short 13896 32127 .short 11347 32128 .short 27545 32129 .short 3107 32130 .short 26575 32131 .short 32270 32132 .short 19852 32133 .short 20601 32134 .short 8349 32135 .short 9290 32136 .short 29819 32137 .short 13579 32138 .short 3661 32139 .short 28676 32140 .short 27331 32141 .short 32574 32142 .short 8693 32143 .short 31253 32144 .short 9081 32145 .short 5399 32146 .short 6842 32147 .short 20087 32148 .short 5537 32149 .short 1274 32150 .short 11617 32151 .short 9530 32152 .short 4866 32153 .short 8035 32154 .short 23219 32155 .short 1178 32156 .short 23272 32157 .short 7383 32158 .short 18944 32159 .short 12488 32160 .short 12871 32161 .short 29340 32162 .short 20532 32163 .short 11022 32164 .short 22514 32165 .short 228 32166 .short 22363 32167 .short 24978 32168 .short 14584 32169 .short 12138 32170 .short 3092 32171 .short 17916 32172 .short 16863 32173 .short 14554 32174 .short 31457 32175 .short 29474 32176 .short 25311 32177 .short 24121 32178 .short 3684 32179 .short 28037 32180 .short 22865 32181 .short 22839 32182 .short 25217 32183 .short 13217 32184 .short 27186 32185 .short 14938 32186 .short 11180 32187 .short 29754 32188 .short 24180 32189 .short 15150 32190 .short 32455 32191 .short 20434 32192 .short 23848 32193 .short 29983 32194 .short 16120 32195 .short 14769 32196 .short 20041 32197 .short 29803 32198 .short 28406 32199 .short 17598 32200 .short 28087 32201 .type __func__.23728, %object 32202 .size __func__.23728, 13 32203__func__.23728: 32204 .ascii "buf_add_tail\000" 32205 .type __func__.23741, %object 32206 .size __func__.23741, 10 32207__func__.23741: 32208 .ascii "buf_alloc\000" 32209 .type __func__.23755, %object 32210 .size __func__.23755, 16 32211__func__.23755: 32212 .ascii "buf_remove_free\000" 32213 .space 1 32214 .type zftl_debug_proc_fops, %object 32215 .size zftl_debug_proc_fops, 44 32216zftl_debug_proc_fops: 32217 .space 4 32218 .word zftl_debug_proc_open 32219 .word seq_read 32220 .space 4 32221 .word zftl_debug_proc_write 32222 .word seq_lseek 32223 .word single_release 32224 .space 16 32225 .type __func__.42478, %object 32226 .size __func__.42478, 12 32227__func__.42478: 32228 .ascii "gc_add_sblk\000" 32229 .type __func__.42570, %object 32230 .size __func__.42570, 19 32231__func__.42570: 32232 .ascii "gc_write_completed\000" 32233 .type __func__.43176, %object 32234 .size __func__.43176, 18 32235__func__.43176: 32236 .ascii "ftl_alloc_sys_blk\000" 32237 .type __func__.43186, %object 32238 .size __func__.43186, 17 32239__func__.43186: 32240 .ascii "ftl_free_sys_blk\000" 32241 .type __func__.43307, %object 32242 .size __func__.43307, 23 32243__func__.43307: 32244 .ascii "ftl_get_ppa_from_index\000" 32245 .type __func__.43347, %object 32246 .size __func__.43347, 22 32247__func__.43347: 32248 .ascii "ftl_get_new_free_page\000" 32249 .type __func__.43358, %object 32250 .size __func__.43358, 22 32251__func__.43358: 32252 .ascii "ftl_ext_alloc_new_blk\000" 32253 .type __func__.42627, %object 32254 .size __func__.42627, 16 32255__func__.42627: 32256 .ascii "gc_free_src_blk\000" 32257 .type __func__.42221, %object 32258 .size __func__.42221, 14 32259__func__.42221: 32260 .ascii "ftl_write_buf\000" 32261 .type __func__.42266, %object 32262 .size __func__.42266, 18 32263__func__.42266: 32264 .ascii "zftl_add_read_buf\000" 32265 .type __func__.43780, %object 32266 .size __func__.43780, 21 32267__func__.43780: 32268 .ascii "pm_select_ram_region\000" 32269 .type __func__.23453, %object 32270 .size __func__.23453, 20 32271__func__.23453: 32272 .ascii "flash_die_info_init\000" 32273 .type __func__.42153, %object 32274 .size __func__.42153, 17 32275__func__.42153: 32276 .ascii "lpa_rebuild_hash\000" 32277 .type __func__.43045, %object 32278 .size __func__.43045, 20 32279__func__.43045: 32280 .ascii "zftl_sblk_list_init\000" 32281 .type __func__.43712, %object 32282 .size __func__.43712, 13 32283__func__.43712: 32284 .ascii "pm_free_sblk\000" 32285 .type __func__.23791, %object 32286 .size __func__.23791, 21 32287__func__.23791: 32288 .ascii "flash_info_data_init\000" 32289 .type __func__.23549, %object 32290 .size __func__.23549, 11 32291__func__.23549: 32292 .ascii "nandc_init\000" 32293 .type samsung_14nm_slc_rr, %object 32294 .size samsung_14nm_slc_rr, 26 32295samsung_14nm_slc_rr: 32296 .byte 0 32297 .byte 10 32298 .byte -10 32299 .byte 20 32300 .byte -20 32301 .byte 30 32302 .byte -30 32303 .byte 40 32304 .byte -40 32305 .byte 50 32306 .byte -50 32307 .byte 60 32308 .byte -60 32309 .byte -70 32310 .byte -80 32311 .byte -90 32312 .byte -100 32313 .byte -110 32314 .byte -120 32315 .byte -9 32316 .byte 70 32317 .byte 80 32318 .byte 90 32319 .byte -125 32320 .byte -115 32321 .byte 100 32322 .type samsung_14nm_mlc_rr, %object 32323 .size samsung_14nm_mlc_rr, 104 32324samsung_14nm_mlc_rr: 32325 .byte 0 32326 .byte 0 32327 .byte 0 32328 .byte 0 32329 .byte -4 32330 .byte 3 32331 .byte -4 32332 .byte -6 32333 .byte 6 32334 .byte 0 32335 .byte 6 32336 .byte -10 32337 .byte -10 32338 .byte 4 32339 .byte -10 32340 .byte 16 32341 .byte 12 32342 .byte -4 32343 .byte 12 32344 .byte 8 32345 .byte -16 32346 .byte 10 32347 .byte -16 32348 .byte 24 32349 .byte 18 32350 .byte -14 32351 .byte 18 32352 .byte -4 32353 .byte -22 32354 .byte -16 32355 .byte -22 32356 .byte -8 32357 .byte 24 32358 .byte -9 32359 .byte 24 32360 .byte 8 32361 .byte -28 32362 .byte -4 32363 .byte -28 32364 .byte 16 32365 .byte 30 32366 .byte 10 32367 .byte 30 32368 .byte 10 32369 .byte -34 32370 .byte 6 32371 .byte -34 32372 .byte 0 32373 .byte 36 32374 .byte -8 32375 .byte 36 32376 .byte -8 32377 .byte -40 32378 .byte -2 32379 .byte -40 32380 .byte -20 32381 .byte -46 32382 .byte -4 32383 .byte -46 32384 .byte -30 32385 .byte 3 32386 .byte 0 32387 .byte 3 32388 .byte -3 32389 .byte -2 32390 .byte -4 32391 .byte -2 32392 .byte -6 32393 .byte -4 32394 .byte -4 32395 .byte -4 32396 .byte -10 32397 .byte -6 32398 .byte -8 32399 .byte -6 32400 .byte -14 32401 .byte -9 32402 .byte -8 32403 .byte -9 32404 .byte -18 32405 .byte -52 32406 .byte 22 32407 .byte -52 32408 .byte 10 32409 .byte 42 32410 .byte 4 32411 .byte 42 32412 .byte 4 32413 .byte 48 32414 .byte -9 32415 .byte 48 32416 .byte 4 32417 .byte -58 32418 .byte 12 32419 .byte -58 32420 .byte 0 32421 .byte -64 32422 .byte -24 32423 .byte -64 32424 .byte -6 32425 .byte 9 32426 .byte 18 32427 .byte 9 32428 .byte 8 32429 .type __func__.22834, %object 32430 .size __func__.22834, 19 32431__func__.22834: 32432 .ascii "flash_read_page_en\000" 32433 .type __func__.22960, %object 32434 .size __func__.22960, 26 32435__func__.22960: 32436 .ascii "flash_start_tlc_page_prog\000" 32437 .type __func__.22971, %object 32438 .size __func__.22971, 29 32439__func__.22971: 32440 .ascii "flash_start_3d_mlc_page_prog\000" 32441 .type __func__.22989, %object 32442 .size __func__.22989, 22 32443__func__.22989: 32444 .ascii "flash_start_page_prog\000" 32445 .type __func__.23013, %object 32446 .size __func__.23013, 31 32447__func__.23013: 32448 .ascii "flash_complete_plane_page_read\000" 32449 .type __func__.23038, %object 32450 .size __func__.23038, 25 32451__func__.23038: 32452 .ascii "flash_complete_page_read\000" 32453 .type __func__.43545, %object 32454 .size __func__.43545, 31 32455__func__.43545: 32456 .ascii "queue_wait_first_req_completed\000" 32457 .type __func__.43599, %object 32458 .size __func__.43599, 15 32459__func__.43599: 32460 .ascii "sblk_prog_page\000" 32461 .type __func__.43626, %object 32462 .size __func__.43626, 15 32463__func__.43626: 32464 .ascii "sblk_read_page\000" 32465 .type __func__.42525, %object 32466 .size __func__.42525, 21 32467__func__.42525: 32468 .ascii "gc_check_data_one_wl\000" 32469 .type __func__.22895, %object 32470 .size __func__.22895, 19 32471__func__.22895: 32472 .ascii "flash_prog_page_en\000" 32473 .type __func__.43422, %object 32474 .size __func__.43422, 14 32475__func__.43422: 32476 .ascii "ftl_prog_page\000" 32477 .type __func__.43079, %object 32478 .size __func__.43079, 15 32479__func__.43079: 32480 .ascii "ftl_info_flush\000" 32481 .type __func__.43384, %object 32482 .size __func__.43384, 19 32483__func__.43384: 32484 .ascii "ftl_ext_info_flush\000" 32485 .type __func__.43396, %object 32486 .size __func__.43396, 18 32487__func__.43396: 32488 .ascii "ftl_ext_info_init\000" 32489 .type __func__.43134, %object 32490 .size __func__.43134, 15 32491__func__.43134: 32492 .ascii "ftl_alloc_sblk\000" 32493 .type __func__.43752, %object 32494 .size __func__.43752, 17 32495__func__.43752: 32496 .ascii "pm_alloc_new_blk\000" 32497 .type __func__.43762, %object 32498 .size __func__.43762, 14 32499__func__.43762: 32500 .ascii "pm_write_page\000" 32501 .type __func__.23813, %object 32502 .size __func__.23813, 17 32503__func__.23813: 32504 .ascii "flash_info_flush\000" 32505 .type __func__.23776, %object 32506 .size __func__.23776, 20 32507__func__.23776: 32508 .ascii "flash_info_blk_init\000" 32509 .type __func__.23508, %object 32510 .size __func__.23508, 16 32511__func__.23508: 32512 .ascii "nand_flash_init\000" 32513 .type __func__.43249, %object 32514 .size __func__.43249, 16 32515__func__.43249: 32516 .ascii "ftl_sysblk_dump\000" 32517 .type __func__.43274, %object 32518 .size __func__.43274, 23 32519__func__.43274: 32520 .ascii "ftl_open_sblk_recovery\000" 32521 .type __func__.43696, %object 32522 .size __func__.43696, 16 32523__func__.43696: 32524 .ascii "load_l2p_region\000" 32525 .type __func__.43736, %object 32526 .size __func__.43736, 6 32527__func__.43736: 32528 .ascii "pm_gc\000" 32529 .type __func__.42468, %object 32530 .size __func__.42468, 12 32531__func__.42468: 32532 .ascii "gc_recovery\000" 32533 .type __func__.42557, %object 32534 .size __func__.42557, 22 32535__func__.42557: 32536 .ascii "gc_update_l2p_map_new\000" 32537 .type __func__.42671, %object 32538 .size __func__.42671, 16 32539__func__.42671: 32540 .ascii "gc_scan_src_blk\000" 32541 .type __func__.42732, %object 32542 .size __func__.42732, 20 32543__func__.42732: 32544 .ascii "gc_scan_static_data\000" 32545 .type __func__.42795, %object 32546 .size __func__.42795, 18 32547__func__.42795: 32548 .ascii "gc_block_vpn_scan\000" 32549 .type __func__.43225, %object 32550 .size __func__.43225, 14 32551__func__.43225: 32552 .ascii "ftl_sblk_dump\000" 32553 .type __func__.42299, %object 32554 .size __func__.42299, 10 32555__func__.42299: 32556 .ascii "zftl_read\000" 32557 .type __func__.43328, %object 32558 .size __func__.43328, 19 32559__func__.43328: 32560 .ascii "ftl_update_l2p_map\000" 32561 .type __func__.42203, %object 32562 .size __func__.42203, 17 32563__func__.42203: 32564 .ascii "ftl_write_commit\000" 32565 .type __func__.42600, %object 32566 .size __func__.42600, 16 32567__func__.42600: 32568 .ascii "gc_do_copy_back\000" 32569 .type __func__.42850, %object 32570 .size __func__.42850, 11 32571__func__.42850: 32572 .ascii "zftl_do_gc\000" 32573 .type __func__.42331, %object 32574 .size __func__.42331, 13 32575__func__.42331: 32576 .ascii "_ftl_discard\000" 32577 .data 32578 .align 2 32579 .set .LANCHOR2,. + 0 32580 .type zftl_debug, %object 32581 .size zftl_debug, 4 32582zftl_debug: 32583 .word 17476 32584 .type g_nand_para_info, %object 32585 .size g_nand_para_info, 32 32586g_nand_para_info: 32587 .byte 6 32588 .byte -104 32589 .byte 58 32590 .byte -104 32591 .byte -77 32592 .byte 118 32593 .byte 114 32594 .byte 1 32595 .byte 1 32596 .byte 32 32597 .short 768 32598 .byte 3 32599 .byte 2 32600 .short 758 32601 .short 5593 32602 .byte 0 32603 .byte 37 32604 .byte 60 32605 .byte 32 32606 .byte 2 32607 .byte 1 32608 .byte 4 32609 .byte 0 32610 .short 256 32611 .byte 1 32612 .byte -94 32613 .byte 0 32614 .byte 0 32615 .type sd15_tlc_rr, %object 32616 .size sd15_tlc_rr, 329 32617sd15_tlc_rr: 32618 .byte 0 32619 .byte 0 32620 .byte 0 32621 .byte 0 32622 .byte 0 32623 .byte 0 32624 .byte 0 32625 .byte -8 32626 .byte 0 32627 .byte 16 32628 .byte 8 32629 .byte 8 32630 .byte 0 32631 .byte -8 32632 .byte -8 32633 .byte -8 32634 .byte -16 32635 .byte -8 32636 .byte -8 32637 .byte -8 32638 .byte -8 32639 .byte -24 32640 .byte 0 32641 .byte 0 32642 .byte 0 32643 .byte -8 32644 .byte -16 32645 .byte -32 32646 .byte 0 32647 .byte 8 32648 .byte -8 32649 .byte 8 32650 .byte 8 32651 .byte 0 32652 .byte 0 32653 .byte -16 32654 .byte -8 32655 .byte -8 32656 .byte -8 32657 .byte 0 32658 .byte -16 32659 .byte -24 32660 .byte -16 32661 .byte 8 32662 .byte 8 32663 .byte -8 32664 .byte -16 32665 .byte -16 32666 .byte 0 32667 .byte 8 32668 .byte 8 32669 .byte 8 32670 .byte 8 32671 .byte -8 32672 .byte -8 32673 .byte -24 32674 .byte 0 32675 .byte -16 32676 .byte 0 32677 .byte -8 32678 .byte -16 32679 .byte -8 32680 .byte -8 32681 .byte 0 32682 .byte 8 32683 .byte 0 32684 .byte 0 32685 .byte -8 32686 .byte 0 32687 .byte -24 32688 .byte -8 32689 .byte 0 32690 .byte 0 32691 .byte -8 32692 .byte -24 32693 .byte -8 32694 .byte 8 32695 .byte -8 32696 .byte 0 32697 .byte -8 32698 .byte 8 32699 .byte -16 32700 .byte -8 32701 .byte -8 32702 .byte -8 32703 .byte 8 32704 .byte 8 32705 .byte 0 32706 .byte 0 32707 .byte -8 32708 .byte -8 32709 .byte 8 32710 .byte -8 32711 .byte -8 32712 .byte 0 32713 .byte 0 32714 .byte -8 32715 .byte -16 32716 .byte -16 32717 .byte -8 32718 .byte 0 32719 .byte 0 32720 .byte -8 32721 .byte 0 32722 .byte -16 32723 .byte 8 32724 .byte 0 32725 .byte 8 32726 .byte 0 32727 .byte -16 32728 .byte -8 32729 .byte -16 32730 .byte 16 32731 .byte 0 32732 .byte 16 32733 .byte 0 32734 .byte -8 32735 .byte 8 32736 .byte 0 32737 .byte -24 32738 .byte 0 32739 .byte -16 32740 .byte -8 32741 .byte -16 32742 .byte -16 32743 .byte -16 32744 .byte -16 32745 .byte 0 32746 .byte 8 32747 .byte -8 32748 .byte -24 32749 .byte 0 32750 .byte 8 32751 .byte 8 32752 .byte 16 32753 .byte 16 32754 .byte 0 32755 .byte 8 32756 .byte -8 32757 .byte 8 32758 .byte 16 32759 .byte -8 32760 .byte 24 32761 .byte 0 32762 .byte 8 32763 .byte -4 32764 .byte 0 32765 .byte 16 32766 .byte 8 32767 .byte 24 32768 .byte 8 32769 .byte 0 32770 .byte -4 32771 .byte -8 32772 .byte 24 32773 .byte 16 32774 .byte 16 32775 .byte 0 32776 .byte 0 32777 .byte 0 32778 .byte -16 32779 .byte 0 32780 .byte 0 32781 .byte 4 32782 .byte 0 32783 .byte -4 32784 .byte -4 32785 .byte -4 32786 .byte 8 32787 .byte 8 32788 .byte 16 32789 .byte 0 32790 .byte 16 32791 .byte -4 32792 .byte 16 32793 .byte 0 32794 .byte 16 32795 .byte 8 32796 .byte 0 32797 .byte 16 32798 .byte -4 32799 .byte 16 32800 .byte -8 32801 .byte 0 32802 .byte 0 32803 .byte -8 32804 .byte 16 32805 .byte -4 32806 .byte 16 32807 .byte -16 32808 .byte -8 32809 .byte -8 32810 .byte -8 32811 .byte 8 32812 .byte -4 32813 .byte 8 32814 .byte -24 32815 .byte 4 32816 .byte -16 32817 .byte 0 32818 .byte 8 32819 .byte 0 32820 .byte 0 32821 .byte -24 32822 .byte 8 32823 .byte -16 32824 .byte 8 32825 .byte 0 32826 .byte 8 32827 .byte -24 32828 .byte -32 32829 .byte 16 32830 .byte -24 32831 .byte 8 32832 .byte -8 32833 .byte 8 32834 .byte -24 32835 .byte -32 32836 .byte 8 32837 .byte 0 32838 .byte 16 32839 .byte 0 32840 .byte 16 32841 .byte 0 32842 .byte -32 32843 .byte 4 32844 .byte 0 32845 .byte -8 32846 .byte -16 32847 .byte -8 32848 .byte 0 32849 .byte -32 32850 .byte 4 32851 .byte 0 32852 .byte 8 32853 .byte -24 32854 .byte 8 32855 .byte 0 32856 .byte -32 32857 .byte 4 32858 .byte 0 32859 .byte 0 32860 .byte -32 32861 .byte -4 32862 .byte 0 32863 .byte -24 32864 .byte 4 32865 .byte 0 32866 .byte 16 32867 .byte -24 32868 .byte 16 32869 .byte 0 32870 .byte -24 32871 .byte -4 32872 .byte 0 32873 .byte 8 32874 .byte -32 32875 .byte 8 32876 .byte 0 32877 .byte 0 32878 .byte -4 32879 .byte 0 32880 .byte 0 32881 .byte 0 32882 .byte 0 32883 .byte 0 32884 .byte 0 32885 .byte -4 32886 .byte 0 32887 .byte 0 32888 .byte 0 32889 .byte -4 32890 .byte 0 32891 .byte 0 32892 .byte -4 32893 .byte 0 32894 .byte -8 32895 .byte 0 32896 .byte -8 32897 .byte 0 32898 .byte 0 32899 .byte -4 32900 .byte 0 32901 .byte -16 32902 .byte 0 32903 .byte -16 32904 .byte 0 32905 .byte 0 32906 .byte -16 32907 .byte 0 32908 .byte -16 32909 .byte 0 32910 .byte -16 32911 .byte 0 32912 .byte 0 32913 .byte -8 32914 .byte 0 32915 .byte -16 32916 .byte 0 32917 .byte -16 32918 .byte 0 32919 .byte 0 32920 .byte -16 32921 .byte 0 32922 .byte -24 32923 .byte 0 32924 .byte -24 32925 .byte 0 32926 .byte 0 32927 .byte -24 32928 .byte 0 32929 .byte -24 32930 .byte 0 32931 .byte -24 32932 .byte 0 32933 .byte 0 32934 .byte -24 32935 .byte 0 32936 .byte -16 32937 .byte 0 32938 .byte -16 32939 .byte 0 32940 .byte 0 32941 .byte -24 32942 .byte 0 32943 .byte -32 32944 .byte 0 32945 .byte -32 32946 .byte 0 32947 .type sd15_slc_rr, %object 32948 .size sd15_slc_rr, 25 32949sd15_slc_rr: 32950 .byte 0 32951 .byte 8 32952 .byte -8 32953 .byte 16 32954 .byte -16 32955 .byte 24 32956 .byte -24 32957 .byte 32 32958 .byte -32 32959 .byte 32 32960 .byte -40 32961 .byte 48 32962 .byte -48 32963 .byte 56 32964 .byte -56 32965 .byte 64 32966 .byte -64 32967 .byte 72 32968 .byte -72 32969 .byte 80 32970 .byte -80 32971 .byte 88 32972 .byte 96 32973 .byte 104 32974 .byte 112 32975 .type hy_f26_ref_value, %object 32976 .size hy_f26_ref_value, 28 32977hy_f26_ref_value: 32978 .byte 0 32979 .byte 0 32980 .byte 0 32981 .byte 0 32982 .byte 0 32983 .byte 6 32984 .byte 10 32985 .byte 6 32986 .byte 0 32987 .byte -3 32988 .byte -7 32989 .byte -8 32990 .byte 0 32991 .byte -6 32992 .byte -13 32993 .byte -15 32994 .byte 0 32995 .byte -11 32996 .byte -20 32997 .byte -23 32998 .byte 0 32999 .byte 0 33000 .byte -26 33001 .byte -30 33002 .byte 0 33003 .byte 0 33004 .byte -32 33005 .byte -37 33006 .type zftl_nand_flash_para_tbl, %object 33007 .size zftl_nand_flash_para_tbl, 1568 33008zftl_nand_flash_para_tbl: 33009 .byte 6 33010 .byte -104 33011 .byte 58 33012 .byte -104 33013 .byte -77 33014 .byte 118 33015 .byte 114 33016 .byte 1 33017 .byte 1 33018 .byte 32 33019 .short 768 33020 .byte 3 33021 .byte 2 33022 .short 758 33023 .short 5593 33024 .byte 0 33025 .byte 37 33026 .byte 60 33027 .byte 32 33028 .byte 3 33029 .byte 1 33030 .byte 4 33031 .byte 0 33032 .short 256 33033 .byte 1 33034 .byte -94 33035 .byte 0 33036 .byte 0 33037 .byte 6 33038 .byte -104 33039 .byte 60 33040 .byte -104 33041 .byte -77 33042 .byte 118 33043 .byte 114 33044 .byte 1 33045 .byte 1 33046 .byte 32 33047 .short 768 33048 .byte 3 33049 .byte 2 33050 .short 1478 33051 .short 5593 33052 .byte 0 33053 .byte 37 33054 .byte 60 33055 .byte 32 33056 .byte 3 33057 .byte 1 33058 .byte 4 33059 .byte 0 33060 .short 256 33061 .byte 1 33062 .byte -94 33063 .byte 0 33064 .byte 0 33065 .byte 6 33066 .byte -104 33067 .byte 58 33068 .byte -104 33069 .byte -93 33070 .byte 118 33071 .byte 81 33072 .byte 1 33073 .byte 1 33074 .byte 32 33075 .short 384 33076 .byte 3 33077 .byte 2 33078 .short 1446 33079 .short 1497 33080 .byte 0 33081 .byte 36 33082 .byte 60 33083 .byte 32 33084 .byte 3 33085 .byte 1 33086 .byte 4 33087 .byte 0 33088 .short 256 33089 .byte 1 33090 .byte -94 33091 .byte 0 33092 .byte 0 33093 .byte 6 33094 .byte -104 33095 .byte -34 33096 .byte -108 33097 .byte -109 33098 .byte 118 33099 .byte 81 33100 .byte 1 33101 .byte 1 33102 .byte 32 33103 .short 256 33104 .byte 2 33105 .byte 2 33106 .short 1074 33107 .short 17881 33108 .byte 2 33109 .byte 35 33110 .byte 40 33111 .byte 32 33112 .byte 3 33113 .byte 1 33114 .byte 4 33115 .byte 0 33116 .short 256 33117 .byte 1 33118 .byte -94 33119 .byte 0 33120 .byte 0 33121 .byte 6 33122 .byte -104 33123 .byte -34 33124 .byte -124 33125 .byte -109 33126 .byte 114 33127 .byte 87 33128 .byte 1 33129 .byte 1 33130 .byte 32 33131 .short 256 33132 .byte 2 33133 .byte 1 33134 .short 2092 33135 .short 17857 33136 .byte 2 33137 .byte 33 33138 .byte 40 33139 .byte 32 33140 .byte 3 33141 .byte 1 33142 .byte 1 33143 .byte 0 33144 .short 256 33145 .byte 1 33146 .byte -94 33147 .byte 0 33148 .byte 0 33149 .byte 6 33150 .byte -104 33151 .byte 58 33152 .byte -108 33153 .byte -109 33154 .byte 118 33155 .byte 81 33156 .byte 1 33157 .byte 1 33158 .byte 32 33159 .short 256 33160 .byte 2 33161 .byte 2 33162 .short 2106 33163 .short 17881 33164 .byte 2 33165 .byte 35 33166 .byte 40 33167 .byte 32 33168 .byte 3 33169 .byte 1 33170 .byte 4 33171 .byte 0 33172 .short 256 33173 .byte 1 33174 .byte -94 33175 .byte 0 33176 .byte 0 33177 .byte 6 33178 .byte -104 33179 .byte -41 33180 .byte -124 33181 .byte -109 33182 .byte 114 33183 .byte 81 33184 .byte 1 33185 .byte 1 33186 .byte 32 33187 .short 256 33188 .byte 2 33189 .byte 1 33190 .short 1056 33191 .short 17857 33192 .byte 2 33193 .byte 35 33194 .byte 40 33195 .byte 32 33196 .byte 3 33197 .byte 1 33198 .byte 4 33199 .byte 0 33200 .short 256 33201 .byte 1 33202 .byte -94 33203 .byte 0 33204 .byte 0 33205 .byte 6 33206 .byte -104 33207 .byte -41 33208 .byte -124 33209 .byte -109 33210 .byte 114 33211 .byte 80 33212 .byte 1 33213 .byte 1 33214 .byte 32 33215 .short 256 33216 .byte 2 33217 .byte 1 33218 .short 1060 33219 .short 17857 33220 .byte 2 33221 .byte 34 33222 .byte 40 33223 .byte 32 33224 .byte 3 33225 .byte 1 33226 .byte 4 33227 .byte 0 33228 .short 256 33229 .byte 1 33230 .byte -94 33231 .byte 0 33232 .byte 0 33233 .byte 6 33234 .byte -104 33235 .byte -34 33236 .byte -108 33237 .byte -109 33238 .byte 118 33239 .byte 80 33240 .byte 1 33241 .byte 1 33242 .byte 32 33243 .short 256 33244 .byte 2 33245 .byte 2 33246 .short 1066 33247 .short 17881 33248 .byte 2 33249 .byte 34 33250 .byte 40 33251 .byte 32 33252 .byte 3 33253 .byte 1 33254 .byte 1 33255 .byte 0 33256 .short 256 33257 .byte 1 33258 .byte -94 33259 .byte 0 33260 .byte 0 33261 .byte 6 33262 .byte -104 33263 .byte -41 33264 .byte -124 33265 .byte -109 33266 .byte 114 33267 .byte 87 33268 .byte 1 33269 .byte 1 33270 .byte 32 33271 .short 256 33272 .byte 2 33273 .byte 1 33274 .short 1060 33275 .short 17857 33276 .byte 2 33277 .byte 33 33278 .byte 40 33279 .byte 32 33280 .byte 3 33281 .byte 1 33282 .byte 1 33283 .byte 0 33284 .short 256 33285 .byte 1 33286 .byte -94 33287 .byte 0 33288 .byte 0 33289 .byte 6 33290 .byte -104 33291 .byte -34 33292 .byte -108 33293 .byte -109 33294 .byte 118 33295 .byte 87 33296 .byte 1 33297 .byte 1 33298 .byte 32 33299 .short 256 33300 .byte 2 33301 .byte 2 33302 .short 1058 33303 .short 17881 33304 .byte 2 33305 .byte 33 33306 .byte 40 33307 .byte 32 33308 .byte 3 33309 .byte 1 33310 .byte 1 33311 .byte 0 33312 .short 256 33313 .byte 1 33314 .byte -94 33315 .byte 0 33316 .byte 0 33317 .byte 6 33318 .byte -104 33319 .byte -34 33320 .byte -108 33321 .byte -109 33322 .byte 118 33323 .byte -47 33324 .byte 1 33325 .byte 1 33326 .byte 32 33327 .short 256 33328 .byte 2 33329 .byte 2 33330 .short 1074 33331 .short 17881 33332 .byte 2 33333 .byte 35 33334 .byte 40 33335 .byte 32 33336 .byte 3 33337 .byte 1 33338 .byte 4 33339 .byte 0 33340 .short 256 33341 .byte 1 33342 .byte -94 33343 .byte 0 33344 .byte 0 33345 .byte 6 33346 .byte 69 33347 .byte 58 33348 .byte -108 33349 .byte -109 33350 .byte 118 33351 .byte 81 33352 .byte 8 33353 .byte 1 33354 .byte 32 33355 .short 256 33356 .byte 2 33357 .byte 2 33358 .short 2106 33359 .short 17881 33360 .byte 2 33361 .byte 68 33362 .byte 40 33363 .byte 32 33364 .byte 3 33365 .byte 1 33366 .byte 4 33367 .byte 0 33368 .short 256 33369 .byte 1 33370 .byte -94 33371 .byte 0 33372 .byte 0 33373 .byte 6 33374 .byte 69 33375 .byte -34 33376 .byte -108 33377 .byte -109 33378 .byte 118 33379 .byte 81 33380 .byte 8 33381 .byte 1 33382 .byte 32 33383 .short 256 33384 .byte 2 33385 .byte 2 33386 .short 1074 33387 .short 17881 33388 .byte 2 33389 .byte 68 33390 .byte 40 33391 .byte 32 33392 .byte 3 33393 .byte 1 33394 .byte 4 33395 .byte 0 33396 .short 256 33397 .byte 1 33398 .byte -94 33399 .byte 0 33400 .byte 0 33401 .byte 6 33402 .byte 69 33403 .byte -34 33404 .byte -108 33405 .byte -109 33406 .byte 118 33407 .byte 87 33408 .byte 8 33409 .byte 1 33410 .byte 32 33411 .short 256 33412 .byte 2 33413 .byte 2 33414 .short 1058 33415 .short 17881 33416 .byte 2 33417 .byte 66 33418 .byte 40 33419 .byte 32 33420 .byte 3 33421 .byte 1 33422 .byte 4 33423 .byte 0 33424 .short 256 33425 .byte 1 33426 .byte -94 33427 .byte 0 33428 .byte 0 33429 .byte 6 33430 .byte 69 33431 .byte -34 33432 .byte -108 33433 .byte -109 33434 .byte 118 33435 .byte 80 33436 .byte 8 33437 .byte 1 33438 .byte 32 33439 .short 256 33440 .byte 2 33441 .byte 2 33442 .short 1066 33443 .short 17881 33444 .byte 2 33445 .byte 67 33446 .byte 40 33447 .byte 32 33448 .byte 3 33449 .byte 1 33450 .byte 1 33451 .byte 0 33452 .short 256 33453 .byte 1 33454 .byte -94 33455 .byte 0 33456 .byte 0 33457 .byte 6 33458 .byte 69 33459 .byte -41 33460 .byte -124 33461 .byte -109 33462 .byte 114 33463 .byte 87 33464 .byte 8 33465 .byte 1 33466 .byte 32 33467 .short 256 33468 .byte 2 33469 .byte 1 33470 .short 1060 33471 .short 17857 33472 .byte 2 33473 .byte 66 33474 .byte 40 33475 .byte 32 33476 .byte 2 33477 .byte 1 33478 .byte 1 33479 .byte 0 33480 .short 256 33481 .byte 1 33482 .byte -94 33483 .byte 0 33484 .byte 0 33485 .byte 5 33486 .byte 44 33487 .byte 100 33488 .byte 68 33489 .byte 50 33490 .byte -91 33491 .byte 0 33492 .byte 4 33493 .byte 1 33494 .byte 32 33495 .short 512 33496 .byte 2 33497 .byte 1 33498 .short 1048 33499 .short 9671 33500 .byte 5 33501 .byte 19 33502 .byte 70 33503 .byte 32 33504 .byte 1 33505 .byte 0 33506 .byte 4 33507 .byte 0 33508 .short 512 33509 .byte 1 33510 .byte -38 33511 .byte -33 33512 .byte 0 33513 .byte 5 33514 .byte 44 33515 .byte 100 33516 .byte 100 33517 .byte 86 33518 .byte -91 33519 .byte 0 33520 .byte 4 33521 .byte 1 33522 .byte 24 33523 .short 512 33524 .byte 2 33525 .byte 2 33526 .short 700 33527 .short 479 33528 .byte 4 33529 .byte 18 33530 .byte 60 33531 .byte 32 33532 .byte 1 33533 .byte 0 33534 .byte 1 33535 .byte 0 33536 .short 512 33537 .byte 3 33538 .byte 0 33539 .byte 0 33540 .byte 0 33541 .byte 5 33542 .byte 44 33543 .byte 68 33544 .byte 68 33545 .byte 75 33546 .byte -87 33547 .byte 0 33548 .byte 4 33549 .byte 1 33550 .byte 16 33551 .short 256 33552 .byte 2 33553 .byte 2 33554 .short 1064 33555 .short 479 33556 .byte 3 33557 .byte 17 33558 .byte 40 33559 .byte 32 33560 .byte 1 33561 .byte 0 33562 .byte 1 33563 .byte 0 33564 .short 256 33565 .byte 3 33566 .byte 0 33567 .byte 0 33568 .byte 0 33569 .byte 5 33570 .byte 44 33571 .byte -124 33572 .byte 100 33573 .byte 84 33574 .byte -87 33575 .byte 0 33576 .byte 4 33577 .byte 1 33578 .byte 32 33579 .short 512 33580 .byte 2 33581 .byte 2 33582 .short 1024 33583 .short 479 33584 .byte 4 33585 .byte 18 33586 .byte 60 33587 .byte 32 33588 .byte 1 33589 .byte 0 33590 .byte 1 33591 .byte 0 33592 .short 512 33593 .byte 0 33594 .byte 0 33595 .byte 0 33596 .byte 1 33597 .byte 5 33598 .byte 44 33599 .byte 100 33600 .byte 100 33601 .byte 84 33602 .byte -92 33603 .byte 0 33604 .byte 4 33605 .byte 1 33606 .byte 32 33607 .short 512 33608 .byte 2 33609 .byte 1 33610 .short 1024 33611 .short 455 33612 .byte 4 33613 .byte 18 33614 .byte 60 33615 .byte 32 33616 .byte 1 33617 .byte 0 33618 .byte 1 33619 .byte 0 33620 .short 512 33621 .byte 0 33622 .byte 0 33623 .byte 0 33624 .byte 0 33625 .byte 5 33626 .byte 44 33627 .byte 100 33628 .byte 68 33629 .byte 75 33630 .byte -87 33631 .byte 0 33632 .byte 4 33633 .byte 1 33634 .byte 16 33635 .short 256 33636 .byte 2 33637 .byte 4 33638 .short 1024 33639 .short 449 33640 .byte 3 33641 .byte 17 33642 .byte 40 33643 .byte 32 33644 .byte 1 33645 .byte 0 33646 .byte 1 33647 .byte 0 33648 .short 256 33649 .byte 3 33650 .byte 0 33651 .byte 0 33652 .byte 0 33653 .byte 5 33654 .byte 44 33655 .byte -124 33656 .byte 100 33657 .byte 60 33658 .byte -91 33659 .byte 0 33660 .byte 4 33661 .byte 1 33662 .byte 32 33663 .short 512 33664 .byte 2 33665 .byte 2 33666 .short 1024 33667 .short 479 33668 .byte 3 33669 .byte 17 33670 .byte 40 33671 .byte 32 33672 .byte 1 33673 .byte 0 33674 .byte 1 33675 .byte 0 33676 .short 512 33677 .byte 3 33678 .byte 0 33679 .byte 0 33680 .byte 0 33681 .byte 5 33682 .byte 44 33683 .byte -124 33684 .byte 68 33685 .byte 52 33686 .byte -92 33687 .byte 0 33688 .byte 4 33689 .byte 1 33690 .byte 32 33691 .short 512 33692 .byte 2 33693 .byte 1 33694 .short 2184 33695 .short 9671 33696 .byte 5 33697 .byte 19 33698 .byte 70 33699 .byte 32 33700 .byte 1 33701 .byte 0 33702 .byte 4 33703 .byte 0 33704 .short 512 33705 .byte 1 33706 .byte -38 33707 .byte -33 33708 .byte 0 33709 .byte 5 33710 .byte 44 33711 .byte 100 33712 .byte 100 33713 .byte 60 33714 .byte -91 33715 .byte 0 33716 .byte 4 33717 .byte 1 33718 .byte 32 33719 .short 512 33720 .byte 2 33721 .byte 1 33722 .short 1044 33723 .short 471 33724 .byte 3 33725 .byte 17 33726 .byte 40 33727 .byte 32 33728 .byte 1 33729 .byte 0 33730 .byte 1 33731 .byte 0 33732 .short 512 33733 .byte 3 33734 .byte 0 33735 .byte 0 33736 .byte 0 33737 .byte 5 33738 .byte 44 33739 .byte -124 33740 .byte 68 33741 .byte 50 33742 .byte -86 33743 .byte 0 33744 .byte 4 33745 .byte 1 33746 .byte 32 33747 .short 512 33748 .byte 2 33749 .byte 1 33750 .short 2184 33751 .short 9671 33752 .byte 5 33753 .byte 19 33754 .byte 70 33755 .byte 32 33756 .byte 1 33757 .byte 0 33758 .byte 4 33759 .byte 0 33760 .short 512 33761 .byte 1 33762 .byte -38 33763 .byte -33 33764 .byte 0 33765 .byte 5 33766 .byte 44 33767 .byte -124 33768 .byte -60 33769 .byte 52 33770 .byte -86 33771 .byte 0 33772 .byte 4 33773 .byte 1 33774 .byte 32 33775 .short 512 33776 .byte 2 33777 .byte 1 33778 .short 2184 33779 .short 9671 33780 .byte 5 33781 .byte 19 33782 .byte 70 33783 .byte 32 33784 .byte 1 33785 .byte 0 33786 .byte 4 33787 .byte 0 33788 .short 512 33789 .byte 1 33790 .byte -38 33791 .byte -33 33792 .byte 0 33793 .byte 5 33794 .byte 44 33795 .byte -124 33796 .byte 68 33797 .byte 52 33798 .byte -86 33799 .byte 0 33800 .byte 4 33801 .byte 1 33802 .byte 32 33803 .short 512 33804 .byte 2 33805 .byte 1 33806 .short 2184 33807 .short 9671 33808 .byte 5 33809 .byte 19 33810 .byte 70 33811 .byte 32 33812 .byte 1 33813 .byte 0 33814 .byte 4 33815 .byte 0 33816 .short 512 33817 .byte 1 33818 .byte -38 33819 .byte -33 33820 .byte 0 33821 .byte 6 33822 .byte -101 33823 .byte 73 33824 .byte 1 33825 .byte 0 33826 .byte -101 33827 .byte 73 33828 .byte 9 33829 .byte 1 33830 .byte 32 33831 .short 256 33832 .byte 2 33833 .byte 1 33834 .short 2144 33835 .short -23097 33836 .byte 8 33837 .byte 21 33838 .byte 70 33839 .byte 32 33840 .byte 1 33841 .byte 0 33842 .byte 8 33843 .byte 0 33844 .short 256 33845 .byte 3 33846 .byte 0 33847 .byte 0 33848 .byte 0 33849 .byte 5 33850 .byte 44 33851 .byte -124 33852 .byte 100 33853 .byte 60 33854 .byte -87 33855 .byte 4 33856 .byte 4 33857 .byte 1 33858 .byte 32 33859 .short 512 33860 .byte 2 33861 .byte 2 33862 .short 1024 33863 .short 479 33864 .byte 3 33865 .byte 17 33866 .byte 40 33867 .byte 32 33868 .byte 1 33869 .byte 0 33870 .byte 1 33871 .byte 0 33872 .short 512 33873 .byte 0 33874 .byte 0 33875 .byte 0 33876 .byte 1 33877 .byte 5 33878 .byte 44 33879 .byte -124 33880 .byte 88 33881 .byte 50 33882 .byte -95 33883 .byte 0 33884 .byte 4 33885 .byte 1 33886 .byte 32 33887 .short 768 33888 .byte 3 33889 .byte 1 33890 .short 1440 33891 .short 3527 33892 .byte 0 33893 .byte 19 33894 .byte 70 33895 .byte 32 33896 .byte 1 33897 .byte 0 33898 .byte 1 33899 .byte 0 33900 .short 1024 33901 .byte 3 33902 .byte 0 33903 .byte 0 33904 .byte 2 33905 .byte 6 33906 .byte 44 33907 .byte -92 33908 .byte 8 33909 .byte 50 33910 .byte -95 33911 .byte 0 33912 .byte 4 33913 .byte 1 33914 .byte 32 33915 .short 2304 33916 .byte 3 33917 .byte 1 33918 .short 1008 33919 .short 3521 33920 .byte 0 33921 .byte 19 33922 .byte 70 33923 .byte 32 33924 .byte 1 33925 .byte 0 33926 .byte 1 33927 .byte 0 33928 .short 4096 33929 .byte 3 33930 .byte 0 33931 .byte 0 33932 .byte 4 33933 .byte 6 33934 .byte 44 33935 .byte -92 33936 .byte 100 33937 .byte 50 33938 .byte -86 33939 .byte 4 33940 .byte 4 33941 .byte 1 33942 .byte 32 33943 .short 1024 33944 .byte 2 33945 .byte 1 33946 .short 2192 33947 .short 9671 33948 .byte 10 33949 .byte 19 33950 .byte 70 33951 .byte 32 33952 .byte 1 33953 .byte 0 33954 .byte 1 33955 .byte 0 33956 .short 1024 33957 .byte 1 33958 .byte -38 33959 .byte -33 33960 .byte 0 33961 .byte 6 33962 .byte -101 33963 .byte -61 33964 .byte 72 33965 .byte 37 33966 .byte 16 33967 .byte 0 33968 .byte 9 33969 .byte 1 33970 .byte 32 33971 .short 1152 33972 .byte 3 33973 .byte 2 33974 .short 1006 33975 .short -27169 33976 .byte 13 33977 .byte 81 33978 .byte 70 33979 .byte 32 33980 .byte 1 33981 .byte 0 33982 .byte 4 33983 .byte 0 33984 .short 2048 33985 .byte 1 33986 .byte -38 33987 .byte -33 33988 .byte 24 33989 .byte 6 33990 .byte -83 33991 .byte -34 33992 .byte 20 33993 .byte -85 33994 .byte 66 33995 .byte 74 33996 .byte 2 33997 .byte 1 33998 .byte 32 33999 .short 256 34000 .byte 2 34001 .byte 2 34002 .short 1056 34003 .short 455 34004 .byte 2 34005 .byte 6 34006 .byte 40 34007 .byte 32 34008 .byte 3 34009 .byte 1 34010 .byte 3 34011 .byte 0 34012 .short 256 34013 .byte 2 34014 .byte -65 34015 .byte -66 34016 .byte 0 34017 .byte 6 34018 .byte -83 34019 .byte -34 34020 .byte -108 34021 .byte -21 34022 .byte 116 34023 .byte 68 34024 .byte 2 34025 .byte 1 34026 .byte 32 34027 .short 256 34028 .byte 2 34029 .byte 2 34030 .short 1066 34031 .short 473 34032 .byte 1 34033 .byte 7 34034 .byte 40 34035 .byte 32 34036 .byte 4 34037 .byte 1 34038 .byte 3 34039 .byte 0 34040 .short 256 34041 .byte 0 34042 .byte 0 34043 .byte 0 34044 .byte 0 34045 .byte 6 34046 .byte -83 34047 .byte -34 34048 .byte 20 34049 .byte -89 34050 .byte 66 34051 .byte 74 34052 .byte 2 34053 .byte 1 34054 .byte 32 34055 .short 256 34056 .byte 2 34057 .byte 2 34058 .short 1060 34059 .short 473 34060 .byte 2 34061 .byte 5 34062 .byte 40 34063 .byte 32 34064 .byte 4 34065 .byte 1 34066 .byte 3 34067 .byte 0 34068 .short 256 34069 .byte 2 34070 .byte -65 34071 .byte -66 34072 .byte 0 34073 .byte 6 34074 .byte -83 34075 .byte -41 34076 .byte -108 34077 .byte -111 34078 .byte 96 34079 .byte 68 34080 .byte 2 34081 .byte 1 34082 .byte 16 34083 .short 256 34084 .byte 2 34085 .byte 2 34086 .short 1046 34087 .short 473 34088 .byte 1 34089 .byte 3 34090 .byte 40 34091 .byte 32 34092 .byte 4 34093 .byte 1 34094 .byte 3 34095 .byte 0 34096 .short 256 34097 .byte 0 34098 .byte 0 34099 .byte 0 34100 .byte 0 34101 .byte 6 34102 .byte -83 34103 .byte 58 34104 .byte 20 34105 .byte -85 34106 .byte 66 34107 .byte 74 34108 .byte 2 34109 .byte 1 34110 .byte 32 34111 .short 256 34112 .byte 2 34113 .byte 2 34114 .short 2092 34115 .short 473 34116 .byte 2 34117 .byte 5 34118 .byte 40 34119 .byte 32 34120 .byte 3 34121 .byte 1 34122 .byte 3 34123 .byte 0 34124 .short 256 34125 .byte 0 34126 .byte 0 34127 .byte 0 34128 .byte 0 34129 .byte 6 34130 .byte -83 34131 .byte -41 34132 .byte 20 34133 .byte -98 34134 .byte 52 34135 .byte 74 34136 .byte 2 34137 .byte 1 34138 .byte 16 34139 .short 256 34140 .byte 2 34141 .byte 2 34142 .short 1056 34143 .short 473 34144 .byte 2 34145 .byte 5 34146 .byte 40 34147 .byte 32 34148 .byte 4 34149 .byte 1 34150 .byte 3 34151 .byte 0 34152 .short 256 34153 .byte 0 34154 .byte 0 34155 .byte 0 34156 .byte 0 34157 .byte 6 34158 .byte -83 34159 .byte 58 34160 .byte 20 34161 .byte 3 34162 .byte 8 34163 .byte 80 34164 .byte 2 34165 .byte 1 34166 .byte 32 34167 .short 388 34168 .byte 2 34169 .byte 2 34170 .short 1362 34171 .short 473 34172 .byte 9 34173 .byte 8 34174 .byte 40 34175 .byte 32 34176 .byte 3 34177 .byte 1 34178 .byte 3 34179 .byte 0 34180 .short 512 34181 .byte 0 34182 .byte -65 34183 .byte -66 34184 .byte 1 34185 .byte 5 34186 .byte -119 34187 .byte 100 34188 .byte 100 34189 .byte 60 34190 .byte -95 34191 .byte 0 34192 .byte 7 34193 .byte 1 34194 .byte 32 34195 .short 512 34196 .byte 2 34197 .byte 1 34198 .short 1024 34199 .short 455 34200 .byte 4 34201 .byte 17 34202 .byte 40 34203 .byte 32 34204 .byte 1 34205 .byte 0 34206 .byte 1 34207 .byte 0 34208 .short 512 34209 .byte 3 34210 .byte 0 34211 .byte 0 34212 .byte 0 34213 .byte 5 34214 .byte -119 34215 .byte -124 34216 .byte 100 34217 .byte 60 34218 .byte -91 34219 .byte 0 34220 .byte 7 34221 .byte 1 34222 .byte 32 34223 .short 512 34224 .byte 2 34225 .byte 2 34226 .short 1024 34227 .short 455 34228 .byte 4 34229 .byte 17 34230 .byte 40 34231 .byte 32 34232 .byte 1 34233 .byte 0 34234 .byte 1 34235 .byte 0 34236 .short 512 34237 .byte 3 34238 .byte 0 34239 .byte 0 34240 .byte 0 34241 .byte 6 34242 .byte -119 34243 .byte 100 34244 .byte 68 34245 .byte 75 34246 .byte -87 34247 .byte 0 34248 .byte 7 34249 .byte 1 34250 .byte 16 34251 .short 256 34252 .byte 2 34253 .byte 4 34254 .short 1024 34255 .short 449 34256 .byte 3 34257 .byte 17 34258 .byte 40 34259 .byte 32 34260 .byte 1 34261 .byte 0 34262 .byte 1 34263 .byte 0 34264 .short 256 34265 .byte 0 34266 .byte 0 34267 .byte 0 34268 .byte 0 34269 .byte 6 34270 .byte -119 34271 .byte -120 34272 .byte 36 34273 .byte 75 34274 .byte -87 34275 .byte -124 34276 .byte 7 34277 .byte 1 34278 .byte 16 34279 .short 256 34280 .byte 2 34281 .byte 4 34282 .short 1024 34283 .short 449 34284 .byte 3 34285 .byte 17 34286 .byte 40 34287 .byte 32 34288 .byte 1 34289 .byte 0 34290 .byte 1 34291 .byte 0 34292 .short 256 34293 .byte 0 34294 .byte 0 34295 .byte 0 34296 .byte 0 34297 .byte 6 34298 .byte -119 34299 .byte -120 34300 .byte 4 34301 .byte 75 34302 .byte -87 34303 .byte 0 34304 .byte 7 34305 .byte 1 34306 .byte 16 34307 .short 256 34308 .byte 2 34309 .byte 4 34310 .short 1024 34311 .short 449 34312 .byte 1 34313 .byte 0 34314 .byte 24 34315 .byte 32 34316 .byte 1 34317 .byte 0 34318 .byte 1 34319 .byte 0 34320 .short 256 34321 .byte 0 34322 .byte 0 34323 .byte 0 34324 .byte 0 34325 .byte 6 34326 .byte -119 34327 .byte -92 34328 .byte 8 34329 .byte 50 34330 .byte -95 34331 .byte 0 34332 .byte 7 34333 .byte 1 34334 .byte 32 34335 .short 2304 34336 .byte 3 34337 .byte 1 34338 .short 1008 34339 .short 3521 34340 .byte 0 34341 .byte 19 34342 .byte 70 34343 .byte 32 34344 .byte 1 34345 .byte 0 34346 .byte 1 34347 .byte 0 34348 .short 4096 34349 .byte 3 34350 .byte 0 34351 .byte 0 34352 .byte 4 34353 .byte 6 34354 .byte -20 34355 .byte -34 34356 .byte -108 34357 .byte -61 34358 .byte -92 34359 .byte -54 34360 .byte 0 34361 .byte 1 34362 .byte 32 34363 .short 792 34364 .byte 2 34365 .byte 1 34366 .short 688 34367 .short 1217 34368 .byte 11 34369 .byte 50 34370 .byte 40 34371 .byte 32 34372 .byte 3 34373 .byte 1 34374 .byte 1 34375 .byte 0 34376 .short 1024 34377 .byte 1 34378 .byte -38 34379 .byte -33 34380 .byte 0 34381 .type nand_opt_para, %object 34382 .size nand_opt_para, 128 34383nand_opt_para: 34384 .byte 1 34385 .byte 0 34386 .byte 49 34387 .byte 63 34388 .byte 0 34389 .byte 49 34390 .byte -128 34391 .byte 21 34392 .byte 0 34393 .byte 50 34394 .byte 17 34395 .byte -128 34396 .byte 112 34397 .byte 120 34398 .byte 120 34399 .byte 3 34400 .byte 1 34401 .byte 0 34402 .space 14 34403 .byte 2 34404 .byte 0 34405 .byte 49 34406 .byte 63 34407 .byte 0 34408 .byte 49 34409 .byte -128 34410 .byte 21 34411 .byte 0 34412 .byte 0 34413 .byte 17 34414 .byte -127 34415 .byte 112 34416 .byte -15 34417 .byte -14 34418 .byte 0 34419 .byte 0 34420 .byte 0 34421 .space 14 34422 .byte 3 34423 .byte 0 34424 .byte 49 34425 .byte 63 34426 .byte 0 34427 .byte 49 34428 .byte -128 34429 .byte 21 34430 .byte 96 34431 .byte 96 34432 .byte 17 34433 .byte -127 34434 .byte 112 34435 .byte -15 34436 .byte -14 34437 .byte 0 34438 .byte 0 34439 .byte 0 34440 .space 14 34441 .byte 4 34442 .byte 0 34443 .byte 49 34444 .byte 63 34445 .byte 0 34446 .byte 49 34447 .byte -128 34448 .byte 21 34449 .byte 96 34450 .byte 96 34451 .byte 17 34452 .byte -127 34453 .byte 112 34454 .byte 112 34455 .byte 112 34456 .byte 0 34457 .byte 0 34458 .byte 0 34459 .space 14 34460 .type tlc_b05a_prog_tbl, %object 34461 .size tlc_b05a_prog_tbl, 1536 34462tlc_b05a_prog_tbl: 34463 .short 0 34464 .short 0 34465 .short 0 34466 .short 0 34467 .short 0 34468 .short 0 34469 .short 0 34470 .short 0 34471 .short 9 34472 .short 0 34473 .short 11 34474 .short 0 34475 .short 13 34476 .short 0 34477 .short 15 34478 .short 0 34479 .short 17 34480 .short 0 34481 .short 19 34482 .short 0 34483 .short 21 34484 .short 0 34485 .short 23 34486 .short 0 34487 .short 25 34488 .short 0 34489 .short 27 34490 .short 0 34491 .short 29 34492 .short 0 34493 .short 31 34494 .short 0 34495 .short 33 34496 .short 0 34497 .short 35 34498 .short 0 34499 .short 37 34500 .short 0 34501 .short 39 34502 .short 0 34503 .short 41 34504 .short 0 34505 .short 43 34506 .short 0 34507 .short 45 34508 .short 0 34509 .short 47 34510 .short 0 34511 .short 49 34512 .short 0 34513 .short 51 34514 .short 0 34515 .short 53 34516 .short 0 34517 .short 55 34518 .short 0 34519 .short 25 34520 .short 58 34521 .short 0 34522 .short 27 34523 .short 61 34524 .short 0 34525 .short 29 34526 .short 64 34527 .short 0 34528 .short 31 34529 .short 67 34530 .short 0 34531 .short 33 34532 .short 70 34533 .short 0 34534 .short 35 34535 .short 73 34536 .short 0 34537 .short 37 34538 .short 76 34539 .short 0 34540 .short 39 34541 .short 79 34542 .short 0 34543 .short 41 34544 .short 82 34545 .short 0 34546 .short 43 34547 .short 85 34548 .short 0 34549 .short 45 34550 .short 88 34551 .short 0 34552 .short 47 34553 .short 91 34554 .short 0 34555 .short 49 34556 .short 94 34557 .short 0 34558 .short 51 34559 .short 97 34560 .short 0 34561 .short 53 34562 .short 100 34563 .short 0 34564 .short 55 34565 .short 103 34566 .short 0 34567 .short 58 34568 .short 106 34569 .short 0 34570 .short 61 34571 .short 109 34572 .short 0 34573 .short 64 34574 .short 112 34575 .short 0 34576 .short 67 34577 .short 115 34578 .short 0 34579 .short 70 34580 .short 118 34581 .short 0 34582 .short 73 34583 .short 121 34584 .short 0 34585 .short 76 34586 .short 124 34587 .short 0 34588 .short 79 34589 .short 127 34590 .short 0 34591 .short 82 34592 .short 130 34593 .short 0 34594 .short 85 34595 .short 133 34596 .short 0 34597 .short 88 34598 .short 136 34599 .short 0 34600 .short 91 34601 .short 139 34602 .short 0 34603 .short 94 34604 .short 142 34605 .short 0 34606 .short 97 34607 .short 145 34608 .short 0 34609 .short 100 34610 .short 148 34611 .short 0 34612 .short 103 34613 .short 151 34614 .short 0 34615 .short 106 34616 .short 154 34617 .short 0 34618 .short 109 34619 .short 157 34620 .short 0 34621 .short 112 34622 .short 160 34623 .short 0 34624 .short 115 34625 .short 163 34626 .short 0 34627 .short 118 34628 .short 166 34629 .short 0 34630 .short 121 34631 .short 169 34632 .short 0 34633 .short 124 34634 .short 172 34635 .short 0 34636 .short 127 34637 .short 175 34638 .short 0 34639 .short 130 34640 .short 178 34641 .short 0 34642 .short 133 34643 .short 181 34644 .short 0 34645 .short 136 34646 .short 184 34647 .short 0 34648 .short 139 34649 .short 187 34650 .short 0 34651 .short 142 34652 .short 190 34653 .short 0 34654 .short 145 34655 .short 193 34656 .short 0 34657 .short 148 34658 .short 196 34659 .short 0 34660 .short 151 34661 .short 199 34662 .short 0 34663 .short 154 34664 .short 202 34665 .short 0 34666 .short 157 34667 .short 205 34668 .short 0 34669 .short 160 34670 .short 208 34671 .short 0 34672 .short 163 34673 .short 211 34674 .short 0 34675 .short 166 34676 .short 214 34677 .short 0 34678 .short 169 34679 .short 217 34680 .short 0 34681 .short 172 34682 .short 220 34683 .short 0 34684 .short 175 34685 .short 223 34686 .short 0 34687 .short 178 34688 .short 226 34689 .short 0 34690 .short 181 34691 .short 229 34692 .short 0 34693 .short 184 34694 .short 232 34695 .short 0 34696 .short 187 34697 .short 235 34698 .short 0 34699 .short 190 34700 .short 238 34701 .short 0 34702 .short 193 34703 .short 241 34704 .short 0 34705 .short 196 34706 .short 244 34707 .short 0 34708 .short 199 34709 .short 247 34710 .short 0 34711 .short 202 34712 .short 250 34713 .short 0 34714 .short 205 34715 .short 253 34716 .short 0 34717 .short 208 34718 .short 256 34719 .short 0 34720 .short 211 34721 .short 259 34722 .short 0 34723 .short 214 34724 .short 262 34725 .short 0 34726 .short 217 34727 .short 265 34728 .short 0 34729 .short 220 34730 .short 268 34731 .short 0 34732 .short 223 34733 .short 271 34734 .short 0 34735 .short 226 34736 .short 274 34737 .short 0 34738 .short 229 34739 .short 277 34740 .short 0 34741 .short 232 34742 .short 280 34743 .short 0 34744 .short 235 34745 .short 283 34746 .short 0 34747 .short 238 34748 .short 286 34749 .short 0 34750 .short 241 34751 .short 289 34752 .short 0 34753 .short 244 34754 .short 292 34755 .short 0 34756 .short 247 34757 .short 295 34758 .short 0 34759 .short 250 34760 .short 298 34761 .short 0 34762 .short 253 34763 .short 301 34764 .short 0 34765 .short 256 34766 .short 304 34767 .short 0 34768 .short 259 34769 .short 307 34770 .short 0 34771 .short 262 34772 .short 310 34773 .short 0 34774 .short 265 34775 .short 313 34776 .short 0 34777 .short 268 34778 .short 316 34779 .short 0 34780 .short 271 34781 .short 319 34782 .short 0 34783 .short 274 34784 .short 322 34785 .short 0 34786 .short 277 34787 .short 325 34788 .short 0 34789 .short 280 34790 .short 328 34791 .short 0 34792 .short 283 34793 .short 331 34794 .short 0 34795 .short 286 34796 .short 334 34797 .short 0 34798 .short 289 34799 .short 337 34800 .short 0 34801 .short 292 34802 .short 340 34803 .short 0 34804 .short 295 34805 .short 343 34806 .short 0 34807 .short 298 34808 .short 346 34809 .short 0 34810 .short 301 34811 .short 349 34812 .short 0 34813 .short 304 34814 .short 352 34815 .short 0 34816 .short 307 34817 .short 355 34818 .short 0 34819 .short 310 34820 .short 358 34821 .short 0 34822 .short 313 34823 .short 361 34824 .short 0 34825 .short 316 34826 .short 364 34827 .short 0 34828 .short 319 34829 .short 367 34830 .short 0 34831 .short 322 34832 .short 370 34833 .short 0 34834 .short 325 34835 .short 373 34836 .short 0 34837 .short 328 34838 .short 376 34839 .short 0 34840 .short 331 34841 .short 379 34842 .short 0 34843 .short 334 34844 .short 382 34845 .short 0 34846 .short 337 34847 .short 385 34848 .short 0 34849 .short 340 34850 .short 388 34851 .short 0 34852 .short 343 34853 .short 391 34854 .short 0 34855 .short 346 34856 .short 394 34857 .short 0 34858 .short 349 34859 .short 397 34860 .short 0 34861 .short 352 34862 .short 400 34863 .short 0 34864 .short 355 34865 .short 403 34866 .short 0 34867 .short 358 34868 .short 406 34869 .short 0 34870 .short 361 34871 .short 409 34872 .short 0 34873 .short 364 34874 .short 412 34875 .short 0 34876 .short 367 34877 .short 415 34878 .short 0 34879 .short 370 34880 .short 418 34881 .short 0 34882 .short 373 34883 .short 421 34884 .short 0 34885 .short 376 34886 .short 424 34887 .short 0 34888 .short 379 34889 .short 427 34890 .short 0 34891 .short 382 34892 .short 430 34893 .short 0 34894 .short 385 34895 .short 433 34896 .short 0 34897 .short 388 34898 .short 436 34899 .short 0 34900 .short 391 34901 .short 439 34902 .short 0 34903 .short 394 34904 .short 442 34905 .short 0 34906 .short 397 34907 .short 445 34908 .short 0 34909 .short 400 34910 .short 448 34911 .short 0 34912 .short 403 34913 .short 451 34914 .short 0 34915 .short 406 34916 .short 454 34917 .short 0 34918 .short 409 34919 .short 457 34920 .short 0 34921 .short 412 34922 .short 460 34923 .short 0 34924 .short 415 34925 .short 463 34926 .short 0 34927 .short 418 34928 .short 466 34929 .short 0 34930 .short 421 34931 .short 469 34932 .short 0 34933 .short 424 34934 .short 472 34935 .short 0 34936 .short 427 34937 .short 475 34938 .short 0 34939 .short 430 34940 .short 478 34941 .short 0 34942 .short 433 34943 .short 481 34944 .short 0 34945 .short 436 34946 .short 484 34947 .short 0 34948 .short 439 34949 .short 487 34950 .short 0 34951 .short 442 34952 .short 490 34953 .short 0 34954 .short 445 34955 .short 493 34956 .short 0 34957 .short 448 34958 .short 496 34959 .short 0 34960 .short 451 34961 .short 499 34962 .short 0 34963 .short 454 34964 .short 502 34965 .short 0 34966 .short 457 34967 .short 505 34968 .short 0 34969 .short 460 34970 .short 508 34971 .short 0 34972 .short 463 34973 .short 511 34974 .short 0 34975 .short 466 34976 .short 514 34977 .short 0 34978 .short 469 34979 .short 517 34980 .short 0 34981 .short 472 34982 .short 520 34983 .short 0 34984 .short 475 34985 .short 523 34986 .short 0 34987 .short 478 34988 .short 526 34989 .short 0 34990 .short 481 34991 .short 529 34992 .short 0 34993 .short 484 34994 .short 532 34995 .short 0 34996 .short 487 34997 .short 535 34998 .short 0 34999 .short 490 35000 .short 538 35001 .short 0 35002 .short 493 35003 .short 541 35004 .short 0 35005 .short 496 35006 .short 544 35007 .short 0 35008 .short 499 35009 .short 547 35010 .short 0 35011 .short 502 35012 .short 550 35013 .short 0 35014 .short 505 35015 .short 553 35016 .short 0 35017 .short 508 35018 .short 556 35019 .short 0 35020 .short 511 35021 .short 559 35022 .short 0 35023 .short 514 35024 .short 562 35025 .short 0 35026 .short 517 35027 .short 565 35028 .short 0 35029 .short 520 35030 .short 568 35031 .short 0 35032 .short 523 35033 .short 571 35034 .short 0 35035 .short 526 35036 .short 574 35037 .short 0 35038 .short 529 35039 .short 577 35040 .short 0 35041 .short 532 35042 .short 580 35043 .short 0 35044 .short 535 35045 .short 583 35046 .short 0 35047 .short 538 35048 .short 586 35049 .short 0 35050 .short 541 35051 .short 589 35052 .short 0 35053 .short 544 35054 .short 592 35055 .short 0 35056 .short 547 35057 .short 595 35058 .short 0 35059 .short 550 35060 .short 598 35061 .short 0 35062 .short 553 35063 .short 601 35064 .short 0 35065 .short 556 35066 .short 604 35067 .short 0 35068 .short 559 35069 .short 607 35070 .short 0 35071 .short 562 35072 .short 610 35073 .short 0 35074 .short 565 35075 .short 613 35076 .short 0 35077 .short 568 35078 .short 616 35079 .short 0 35080 .short 571 35081 .short 619 35082 .short 0 35083 .short 574 35084 .short 622 35085 .short 0 35086 .short 577 35087 .short 625 35088 .short 0 35089 .short 580 35090 .short 628 35091 .short 0 35092 .short 583 35093 .short 631 35094 .short 0 35095 .short 586 35096 .short 634 35097 .short 0 35098 .short 589 35099 .short 637 35100 .short 0 35101 .short 592 35102 .short 640 35103 .short 0 35104 .short 595 35105 .short 643 35106 .short 0 35107 .short 598 35108 .short 646 35109 .short 0 35110 .short 601 35111 .short 649 35112 .short 0 35113 .short 604 35114 .short 652 35115 .short 0 35116 .short 607 35117 .short 655 35118 .short 0 35119 .short 610 35120 .short 658 35121 .short 0 35122 .short 613 35123 .short 661 35124 .short 0 35125 .short 616 35126 .short 664 35127 .short 0 35128 .short 619 35129 .short 667 35130 .short 0 35131 .short 622 35132 .short 670 35133 .short 0 35134 .short 625 35135 .short 673 35136 .short 0 35137 .short 628 35138 .short 676 35139 .short 0 35140 .short 631 35141 .short 679 35142 .short 0 35143 .short 634 35144 .short 682 35145 .short 0 35146 .short 637 35147 .short 685 35148 .short 0 35149 .short 640 35150 .short 688 35151 .short 0 35152 .short 643 35153 .short 691 35154 .short 0 35155 .short 646 35156 .short 694 35157 .short 0 35158 .short 649 35159 .short 697 35160 .short 0 35161 .short 652 35162 .short 700 35163 .short 0 35164 .short 655 35165 .short 703 35166 .short 0 35167 .short 658 35168 .short 706 35169 .short 0 35170 .short 661 35171 .short 709 35172 .short 0 35173 .short 664 35174 .short 712 35175 .short 0 35176 .short 667 35177 .short 715 35178 .short 0 35179 .short 670 35180 .short 718 35181 .short 0 35182 .short 673 35183 .short 721 35184 .short 0 35185 .short 676 35186 .short 724 35187 .short 0 35188 .short 679 35189 .short 727 35190 .short 0 35191 .short 682 35192 .short 730 35193 .short 0 35194 .short 685 35195 .short 733 35196 .short 0 35197 .short 688 35198 .short 736 35199 .short 0 35200 .short 691 35201 .short 739 35202 .short 0 35203 .short 694 35204 .short 742 35205 .short 0 35206 .short 697 35207 .short 745 35208 .short 0 35209 .short 700 35210 .short 748 35211 .short 0 35212 .short 703 35213 .short 751 35214 .short 0 35215 .short 706 35216 .short 0 35217 .short 709 35218 .short 0 35219 .short 712 35220 .short 0 35221 .short 715 35222 .short 0 35223 .short 718 35224 .short 0 35225 .short 721 35226 .short 0 35227 .short 724 35228 .short 0 35229 .short 727 35230 .short 0 35231 .type tlc_prog_order, %object 35232 .size tlc_prog_order, 768 35233tlc_prog_order: 35234 .short 1 35235 .short 9 35236 .short 2 35237 .short 17 35238 .short 10 35239 .short 3 35240 .short 25 35241 .short 18 35242 .short 11 35243 .short 33 35244 .short 26 35245 .short 19 35246 .short 41 35247 .short 34 35248 .short 27 35249 .short 49 35250 .short 42 35251 .short 35 35252 .short 57 35253 .short 50 35254 .short 43 35255 .short 65 35256 .short 58 35257 .short 51 35258 .short 73 35259 .short 66 35260 .short 59 35261 .short 81 35262 .short 74 35263 .short 67 35264 .short 89 35265 .short 82 35266 .short 75 35267 .short 97 35268 .short 90 35269 .short 83 35270 .short 105 35271 .short 98 35272 .short 91 35273 .short 113 35274 .short 106 35275 .short 99 35276 .short 121 35277 .short 114 35278 .short 107 35279 .short 129 35280 .short 122 35281 .short 115 35282 .short 137 35283 .short 130 35284 .short 123 35285 .short 145 35286 .short 138 35287 .short 131 35288 .short 153 35289 .short 146 35290 .short 139 35291 .short 161 35292 .short 154 35293 .short 147 35294 .short 169 35295 .short 162 35296 .short 155 35297 .short 177 35298 .short 170 35299 .short 163 35300 .short 185 35301 .short 178 35302 .short 171 35303 .short 193 35304 .short 186 35305 .short 179 35306 .short 201 35307 .short 194 35308 .short 187 35309 .short 209 35310 .short 202 35311 .short 195 35312 .short 217 35313 .short 210 35314 .short 203 35315 .short 225 35316 .short 218 35317 .short 211 35318 .short 233 35319 .short 226 35320 .short 219 35321 .short 241 35322 .short 234 35323 .short 227 35324 .short 249 35325 .short 242 35326 .short 235 35327 .short 257 35328 .short 250 35329 .short 243 35330 .short 265 35331 .short 258 35332 .short 251 35333 .short 273 35334 .short 266 35335 .short 259 35336 .short 281 35337 .short 274 35338 .short 267 35339 .short 289 35340 .short 282 35341 .short 275 35342 .short 297 35343 .short 290 35344 .short 283 35345 .short 305 35346 .short 298 35347 .short 291 35348 .short 313 35349 .short 306 35350 .short 299 35351 .short 321 35352 .short 314 35353 .short 307 35354 .short 329 35355 .short 322 35356 .short 315 35357 .short 337 35358 .short 330 35359 .short 323 35360 .short 345 35361 .short 338 35362 .short 331 35363 .short 353 35364 .short 346 35365 .short 339 35366 .short 361 35367 .short 354 35368 .short 347 35369 .short 369 35370 .short 362 35371 .short 355 35372 .short 377 35373 .short 370 35374 .short 363 35375 .short 385 35376 .short 378 35377 .short 371 35378 .short 393 35379 .short 386 35380 .short 379 35381 .short 401 35382 .short 394 35383 .short 387 35384 .short 409 35385 .short 402 35386 .short 395 35387 .short 417 35388 .short 410 35389 .short 403 35390 .short 425 35391 .short 418 35392 .short 411 35393 .short 433 35394 .short 426 35395 .short 419 35396 .short 441 35397 .short 434 35398 .short 427 35399 .short 449 35400 .short 442 35401 .short 435 35402 .short 457 35403 .short 450 35404 .short 443 35405 .short 465 35406 .short 458 35407 .short 451 35408 .short 473 35409 .short 466 35410 .short 459 35411 .short 481 35412 .short 474 35413 .short 467 35414 .short 489 35415 .short 482 35416 .short 475 35417 .short 497 35418 .short 490 35419 .short 483 35420 .short 505 35421 .short 498 35422 .short 491 35423 .short 513 35424 .short 506 35425 .short 499 35426 .short 521 35427 .short 514 35428 .short 507 35429 .short 529 35430 .short 522 35431 .short 515 35432 .short 537 35433 .short 530 35434 .short 523 35435 .short 545 35436 .short 538 35437 .short 531 35438 .short 553 35439 .short 546 35440 .short 539 35441 .short 561 35442 .short 554 35443 .short 547 35444 .short 569 35445 .short 562 35446 .short 555 35447 .short 577 35448 .short 570 35449 .short 563 35450 .short 585 35451 .short 578 35452 .short 571 35453 .short 593 35454 .short 586 35455 .short 579 35456 .short 601 35457 .short 594 35458 .short 587 35459 .short 609 35460 .short 602 35461 .short 595 35462 .short 617 35463 .short 610 35464 .short 603 35465 .short 625 35466 .short 618 35467 .short 611 35468 .short 633 35469 .short 626 35470 .short 619 35471 .short 641 35472 .short 634 35473 .short 627 35474 .short 649 35475 .short 642 35476 .short 635 35477 .short 657 35478 .short 650 35479 .short 643 35480 .short 665 35481 .short 658 35482 .short 651 35483 .short 673 35484 .short 666 35485 .short 659 35486 .short 681 35487 .short 674 35488 .short 667 35489 .short 689 35490 .short 682 35491 .short 675 35492 .short 697 35493 .short 690 35494 .short 683 35495 .short 705 35496 .short 698 35497 .short 691 35498 .short 713 35499 .short 706 35500 .short 699 35501 .short 721 35502 .short 714 35503 .short 707 35504 .short 729 35505 .short 722 35506 .short 715 35507 .short 737 35508 .short 730 35509 .short 723 35510 .short 745 35511 .short 738 35512 .short 731 35513 .short 753 35514 .short 746 35515 .short 739 35516 .short 761 35517 .short 754 35518 .short 747 35519 .short 769 35520 .short 762 35521 .short 755 35522 .short 777 35523 .short 770 35524 .short 763 35525 .short 785 35526 .short 778 35527 .short 771 35528 .short 793 35529 .short 786 35530 .short 779 35531 .short 801 35532 .short 794 35533 .short 787 35534 .short 809 35535 .short 802 35536 .short 795 35537 .short 817 35538 .short 810 35539 .short 803 35540 .short 825 35541 .short 818 35542 .short 811 35543 .short 833 35544 .short 826 35545 .short 819 35546 .short 841 35547 .short 834 35548 .short 827 35549 .short 849 35550 .short 842 35551 .short 835 35552 .short 857 35553 .short 850 35554 .short 843 35555 .short 865 35556 .short 858 35557 .short 851 35558 .short 873 35559 .short 866 35560 .short 859 35561 .short 881 35562 .short 874 35563 .short 867 35564 .short 889 35565 .short 882 35566 .short 875 35567 .short 897 35568 .short 890 35569 .short 883 35570 .short 905 35571 .short 898 35572 .short 891 35573 .short 913 35574 .short 906 35575 .short 899 35576 .short 921 35577 .short 914 35578 .short 907 35579 .short 929 35580 .short 922 35581 .short 915 35582 .short 937 35583 .short 930 35584 .short 923 35585 .short 945 35586 .short 938 35587 .short 931 35588 .short 953 35589 .short 946 35590 .short 939 35591 .short 961 35592 .short 954 35593 .short 947 35594 .short 969 35595 .short 962 35596 .short 955 35597 .short 977 35598 .short 970 35599 .short 963 35600 .short 985 35601 .short 978 35602 .short 971 35603 .short 993 35604 .short 986 35605 .short 979 35606 .short 1001 35607 .short 994 35608 .short 987 35609 .short 1009 35610 .short 1002 35611 .short 995 35612 .short 1017 35613 .short 1010 35614 .short 1003 35615 .short 1018 35616 .short 1011 35617 .short 1019 35618 .bss 35619 .align 6 35620 .set .LANCHOR0,. + 0 35621 .set .LANCHOR3,. + 8184 35622 .type g_flash_slc_mode, %object 35623 .size g_flash_slc_mode, 1 35624g_flash_slc_mode: 35625 .space 1 35626 .type g_slc_mode_addr2, %object 35627 .size g_slc_mode_addr2, 1 35628g_slc_mode_addr2: 35629 .space 1 35630 .type g_block_align_addr, %object 35631 .size g_block_align_addr, 2 35632g_block_align_addr: 35633 .space 2 35634 .type g_lsb_page_tbl, %object 35635 .size g_lsb_page_tbl, 1024 35636g_lsb_page_tbl: 35637 .space 1024 35638 .type g_nandc_ver, %object 35639 .size g_nandc_ver, 1 35640g_nandc_ver: 35641 .space 1 35642 .space 3 35643 .type _c_user_data_density, %object 35644 .size _c_user_data_density, 4 35645_c_user_data_density: 35646 .space 4 35647 .type gp_sblk_list_tbl, %object 35648 .size gp_sblk_list_tbl, 4 35649gp_sblk_list_tbl: 35650 .space 4 35651 .type gp_flash_info, %object 35652 .size gp_flash_info, 4 35653gp_flash_info: 35654 .space 4 35655 .type gp_nandc, %object 35656 .size gp_nandc, 4 35657gp_nandc: 35658 .space 4 35659 .type NANDC_FMCTL, %object 35660 .size NANDC_FMCTL, 4 35661NANDC_FMCTL: 35662 .space 4 35663 .type NANDC_FMWAIT, %object 35664 .size NANDC_FMWAIT, 4 35665NANDC_FMWAIT: 35666 .space 4 35667 .type NANDC_FLCTL, %object 35668 .size NANDC_FLCTL, 4 35669NANDC_FLCTL: 35670 .space 4 35671 .type NANDC_BCHCTL, %object 35672 .size NANDC_BCHCTL, 4 35673NANDC_BCHCTL: 35674 .space 4 35675 .type NANDC_DLL_CTL_REG0, %object 35676 .size NANDC_DLL_CTL_REG0, 4 35677NANDC_DLL_CTL_REG0: 35678 .space 4 35679 .type NANDC_DLL_CTL_REG1, %object 35680 .size NANDC_DLL_CTL_REG1, 4 35681NANDC_DLL_CTL_REG1: 35682 .space 4 35683 .type NANDC_RANDMZ_CFG, %object 35684 .size NANDC_RANDMZ_CFG, 4 35685NANDC_RANDMZ_CFG: 35686 .space 4 35687 .type NANDC_FMWAIT_SYN, %object 35688 .size NANDC_FMWAIT_SYN, 4 35689NANDC_FMWAIT_SYN: 35690 .space 4 35691 .type _c_ftl_blk_pre_plane, %object 35692 .size _c_ftl_blk_pre_plane, 2 35693_c_ftl_blk_pre_plane: 35694 .space 2 35695 .space 2 35696 .type gp_blk_info, %object 35697 .size gp_blk_info, 4 35698gp_blk_info: 35699 .space 4 35700 .type _c_slc_to_xlc_ec_ratio, %object 35701 .size _c_slc_to_xlc_ec_ratio, 2 35702_c_slc_to_xlc_ec_ratio: 35703 .space 2 35704 .space 2 35705 .type ftl_sblk_vpn, %object 35706 .size ftl_sblk_vpn, 4 35707ftl_sblk_vpn: 35708 .space 4 35709 .type gp_ftl_ext_info, %object 35710 .size gp_ftl_ext_info, 4 35711gp_ftl_ext_info: 35712 .space 4 35713 .type g_retryMode, %object 35714 .size g_retryMode, 1 35715g_retryMode: 35716 .space 1 35717 .type g_maxRegNum, %object 35718 .size g_maxRegNum, 1 35719g_maxRegNum: 35720 .space 1 35721 .space 2 35722 .type gp_nand_para_info, %object 35723 .size gp_nand_para_info, 4 35724gp_nand_para_info: 35725 .space 4 35726 .type g_idb_ecc_bits, %object 35727 .size g_idb_ecc_bits, 1 35728g_idb_ecc_bits: 35729 .space 1 35730 .type g_nand_max_die, %object 35731 .size g_nand_max_die, 1 35732g_nand_max_die: 35733 .space 1 35734 .type g_idb_slc_mode_enable, %object 35735 .size g_idb_slc_mode_enable, 1 35736g_idb_slc_mode_enable: 35737 .space 1 35738 .type g_nand_opt_para, %object 35739 .size g_nand_opt_para, 32 35740g_nand_opt_para: 35741 .space 32 35742 .type g_flash_toggle_mode_en, %object 35743 .size g_flash_toggle_mode_en, 1 35744g_flash_toggle_mode_en: 35745 .space 1 35746 .type g_die_cs_idx, %object 35747 .size g_die_cs_idx, 8 35748g_die_cs_idx: 35749 .space 8 35750 .type g_flash_six_addr, %object 35751 .size g_flash_six_addr, 1 35752g_flash_six_addr: 35753 .space 1 35754 .type _c_ftl_cs_bits, %object 35755 .size _c_ftl_cs_bits, 1 35756_c_ftl_cs_bits: 35757 .space 1 35758 .type g_flash_cur_mode, %object 35759 .size g_flash_cur_mode, 4 35760g_flash_cur_mode: 35761 .space 4 35762 .type g_flash_micron_3d_tlc_flag, %object 35763 .size g_flash_micron_3d_tlc_flag, 1 35764g_flash_micron_3d_tlc_flag: 35765 .space 1 35766 .type g_flash_ymtc_3d_tlc_flag, %object 35767 .size g_flash_ymtc_3d_tlc_flag, 1 35768g_flash_ymtc_3d_tlc_flag: 35769 .space 1 35770 .type IDByte, %object 35771 .size IDByte, 32 35772IDByte: 35773 .space 32 35774 .type g_flash_interface_mode, %object 35775 .size g_flash_interface_mode, 1 35776g_flash_interface_mode: 35777 .space 1 35778 .type g_nandc_ecc_bits, %object 35779 .size g_nandc_ecc_bits, 1 35780g_nandc_ecc_bits: 35781 .space 1 35782 .type g_flash_multi_page_prog_en, %object 35783 .size g_flash_multi_page_prog_en, 1 35784g_flash_multi_page_prog_en: 35785 .space 1 35786 .type nandc_hw_seed, %object 35787 .size nandc_hw_seed, 1 35788nandc_hw_seed: 35789 .space 1 35790 .type nandc_randomizer_en, %object 35791 .size nandc_randomizer_en, 1 35792nandc_randomizer_en: 35793 .space 1 35794 .space 3 35795 .type g_nandc_v6_master_info, %object 35796 .size g_nandc_v6_master_info, 28 35797g_nandc_v6_master_info: 35798 .space 28 35799 .type fill_spare_size, %object 35800 .size fill_spare_size, 2 35801fill_spare_size: 35802 .space 2 35803 .space 2 35804 .type g_buf, %object 35805 .size g_buf, 1536 35806g_buf: 35807 .space 1536 35808 .type p_free_buf_head, %object 35809 .size p_free_buf_head, 1 35810p_free_buf_head: 35811 .space 1 35812 .type free_buf_count, %object 35813 .size free_buf_count, 1 35814free_buf_count: 35815 .space 1 35816 .type sblk_queue_head, %object 35817 .size sblk_queue_head, 1 35818sblk_queue_head: 35819 .space 1 35820 .type sblk_read_completed_queue_head, %object 35821 .size sblk_read_completed_queue_head, 1 35822sblk_read_completed_queue_head: 35823 .space 1 35824 .type sblk_gc_write_completed_queue_head, %object 35825 .size sblk_gc_write_completed_queue_head, 1 35826sblk_gc_write_completed_queue_head: 35827 .space 1 35828 .type sblk_write_completed_queue_head, %object 35829 .size sblk_write_completed_queue_head, 1 35830sblk_write_completed_queue_head: 35831 .space 1 35832 .space 2 35833 .type _c_totle_phy_density, %object 35834 .size _c_totle_phy_density, 4 35835_c_totle_phy_density: 35836 .space 4 35837 .type _c_totle_log_page, %object 35838 .size _c_totle_log_page, 4 35839_c_totle_log_page: 35840 .space 4 35841 .type free_slc_sblk, %object 35842 .size free_slc_sblk, 2 35843free_slc_sblk: 35844 .space 2 35845 .type free_xlc_sblk, %object 35846 .size free_xlc_sblk, 2 35847free_xlc_sblk: 35848 .space 2 35849 .type free_mix_sblk, %object 35850 .size free_mix_sblk, 2 35851free_mix_sblk: 35852 .space 2 35853 .type slc_data_sblk, %object 35854 .size slc_data_sblk, 2 35855slc_data_sblk: 35856 .space 2 35857 .type slc_cache_sblk, %object 35858 .size slc_cache_sblk, 2 35859slc_cache_sblk: 35860 .space 2 35861 .type xlc_data_sblk, %object 35862 .size xlc_data_sblk, 2 35863xlc_data_sblk: 35864 .space 2 35865 .type write_buf_count, %object 35866 .size write_buf_count, 1 35867write_buf_count: 35868 .space 1 35869 .type write_commit_count, %object 35870 .size write_commit_count, 1 35871write_commit_count: 35872 .space 1 35873 .space 2 35874 .type gp_ftl_info, %object 35875 .size gp_ftl_info, 4 35876gp_ftl_info: 35877 .space 4 35878 .type gc_free_slc_sblk_th, %object 35879 .size gc_free_slc_sblk_th, 2 35880gc_free_slc_sblk_th: 35881 .space 2 35882 .type gc_tlc_mode_slc_vpn_th, %object 35883 .size gc_tlc_mode_slc_vpn_th, 2 35884gc_tlc_mode_slc_vpn_th: 35885 .space 2 35886 .type gc_tlc_mode_tlc_vpn_th, %object 35887 .size gc_tlc_mode_tlc_vpn_th, 2 35888gc_tlc_mode_tlc_vpn_th: 35889 .space 2 35890 .space 2 35891 .type _gc_after_discard_en, %object 35892 .size _gc_after_discard_en, 4 35893_gc_after_discard_en: 35894 .space 4 35895 .type gc_slc_mode_tlc_vpn_th, %object 35896 .size gc_slc_mode_tlc_vpn_th, 2 35897gc_slc_mode_tlc_vpn_th: 35898 .space 2 35899 .type gc_slc_mode_vpn_th, %object 35900 .size gc_slc_mode_vpn_th, 2 35901gc_slc_mode_vpn_th: 35902 .space 2 35903 .type write_buf_head, %object 35904 .size write_buf_head, 1 35905write_buf_head: 35906 .space 1 35907 .space 3 35908 .type g_gc_info, %object 35909 .size g_gc_info, 2204 35910g_gc_info: 35911 .space 2204 35912 .type ftl_sblk_vpn_update_id, %object 35913 .size ftl_sblk_vpn_update_id, 2 35914ftl_sblk_vpn_update_id: 35915 .space 2 35916 .type ftl_sblk_update_list, %object 35917 .size ftl_sblk_update_list, 16 35918ftl_sblk_update_list: 35919 .space 16 35920 .type _c_ftl_block_addr_log2, %object 35921 .size _c_ftl_block_addr_log2, 2 35922_c_ftl_block_addr_log2: 35923 .space 2 35924 .type _c_ftl_planes_per_die, %object 35925 .size _c_ftl_planes_per_die, 1 35926_c_ftl_planes_per_die: 35927 .space 1 35928 .space 3 35929 .type gc_valid_page_ppa, %object 35930 .size gc_valid_page_ppa, 4 35931gc_valid_page_ppa: 35932 .space 4 35933 .type _c_ftl_nand_type, %object 35934 .size _c_ftl_nand_type, 1 35935_c_ftl_nand_type: 35936 .space 1 35937 .type _c_ftl_nand_planes_num, %object 35938 .size _c_ftl_nand_planes_num, 1 35939_c_ftl_nand_planes_num: 35940 .space 1 35941 .type g_flash_3d_mlc_flag, %object 35942 .size g_flash_3d_mlc_flag, 1 35943g_flash_3d_mlc_flag: 35944 .space 1 35945 .type g_one_pass_program, %object 35946 .size g_one_pass_program, 1 35947g_one_pass_program: 35948 .space 1 35949 .type gc_page_buf_id, %object 35950 .size gc_page_buf_id, 4 35951gc_page_buf_id: 35952 .space 4 35953 .type g_flash_3d_tlc_flag, %object 35954 .size g_flash_3d_tlc_flag, 1 35955g_flash_3d_tlc_flag: 35956 .space 1 35957 .type gc_mode, %object 35958 .size gc_mode, 1 35959gc_mode: 35960 .space 1 35961 .type _c_ftl_page_pre_blk, %object 35962 .size _c_ftl_page_pre_blk, 2 35963_c_ftl_page_pre_blk: 35964 .space 2 35965 .type gp_data_slc_data_head, %object 35966 .size gp_data_slc_data_head, 4 35967gp_data_slc_data_head: 35968 .space 4 35969 .type gc_slc_data_index, %object 35970 .size gc_slc_data_index, 2 35971gc_slc_data_index: 35972 .space 2 35973 .type gc_slc_cache_index, %object 35974 .size gc_slc_cache_index, 2 35975gc_slc_cache_index: 35976 .space 2 35977 .type gc_xlc_data_index, %object 35978 .size gc_xlc_data_index, 2 35979gc_xlc_data_index: 35980 .space 2 35981 .space 2 35982 .type gp_data_slc_cache_head, %object 35983 .size gp_data_slc_cache_head, 4 35984gp_data_slc_cache_head: 35985 .space 4 35986 .type gp_data_xlc_data_head, %object 35987 .size gp_data_xlc_data_head, 4 35988gp_data_xlc_data_head: 35989 .space 4 35990 .type _c_ftl_page_pre_slc_blk, %object 35991 .size _c_ftl_page_pre_slc_blk, 2 35992_c_ftl_page_pre_slc_blk: 35993 .space 2 35994 .type gc_xlc_search_index, %object 35995 .size gc_xlc_search_index, 2 35996gc_xlc_search_index: 35997 .space 2 35998 .type _min_slc_super_block, %object 35999 .size _min_slc_super_block, 2 36000_min_slc_super_block: 36001 .space 2 36002 .type _max_xlc_super_block, %object 36003 .size _max_xlc_super_block, 2 36004_max_xlc_super_block: 36005 .space 2 36006 .type gp_free_slc_head, %object 36007 .size gp_free_slc_head, 4 36008gp_free_slc_head: 36009 .space 4 36010 .type gp_free_xlc_head, %object 36011 .size gp_free_xlc_head, 4 36012gp_free_xlc_head: 36013 .space 4 36014 .type gp_free_mix_head, %object 36015 .size gp_free_mix_head, 4 36016gp_free_mix_head: 36017 .space 4 36018 .type zftl_print_list_count, %object 36019 .size zftl_print_list_count, 2 36020zftl_print_list_count: 36021 .space 2 36022 .type _c_ftl_block_align_addr, %object 36023 .size _c_ftl_block_align_addr, 2 36024_c_ftl_block_align_addr: 36025 .space 2 36026 .type _c_ftl_nand_die_num, %object 36027 .size _c_ftl_nand_die_num, 1 36028_c_ftl_nand_die_num: 36029 .space 1 36030 .space 1 36031 .type lpa_hash, %object 36032 .size lpa_hash, 512 36033lpa_hash: 36034 .space 512 36035 .space 2 36036 .type ftl_sblk_lpa_tbl, %object 36037 .size ftl_sblk_lpa_tbl, 4 36038ftl_sblk_lpa_tbl: 36039 .space 4 36040 .type lpa_hash_index, %object 36041 .size lpa_hash_index, 4 36042lpa_hash_index: 36043 .space 4 36044 .type ftl_vpn_update_count, %object 36045 .size ftl_vpn_update_count, 2 36046ftl_vpn_update_count: 36047 .space 2 36048 .type _c_ftl_sec_per_page, %object 36049 .size _c_ftl_sec_per_page, 1 36050_c_ftl_sec_per_page: 36051 .space 1 36052 .space 1 36053 .type ftl_sblk_update_list_offset, %object 36054 .size ftl_sblk_update_list_offset, 2 36055ftl_sblk_update_list_offset: 36056 .space 2 36057 .type g_flash_micron_3d_tlc_b05a, %object 36058 .size g_flash_micron_3d_tlc_b05a, 1 36059g_flash_micron_3d_tlc_b05a: 36060 .space 1 36061 .space 1 36062 .type _c_mix_max_xlc_ec_count, %object 36063 .size _c_mix_max_xlc_ec_count, 2 36064_c_mix_max_xlc_ec_count: 36065 .space 2 36066 .type _c_mix_max_slc_ec_count, %object 36067 .size _c_mix_max_slc_ec_count, 2 36068_c_mix_max_slc_ec_count: 36069 .space 2 36070 .type read_buf_head, %object 36071 .size read_buf_head, 1 36072read_buf_head: 36073 .space 1 36074 .type read_buf_count, %object 36075 .size read_buf_count, 1 36076read_buf_count: 36077 .space 1 36078 .space 2 36079 .type pm_ram_info, %object 36080 .size pm_ram_info, 256 36081pm_ram_info: 36082 .space 256 36083 .type pm_last_update_ram_id, %object 36084 .size pm_last_update_ram_id, 1 36085pm_last_update_ram_id: 36086 .space 1 36087 .space 3 36088 .type g_msb_page_tbl, %object 36089 .size g_msb_page_tbl, 2048 36090g_msb_page_tbl: 36091 .space 2048 36092 .type g_slc_page_num, %object 36093 .size g_slc_page_num, 2 36094g_slc_page_num: 36095 .space 2 36096 .space 2 36097 .type g_die_addr, %object 36098 .size g_die_addr, 32 36099g_die_addr: 36100 .space 32 36101 .type g_totle_phy_block, %object 36102 .size g_totle_phy_block, 2 36103g_totle_phy_block: 36104 .space 2 36105 .space 2 36106 .type pm_force_gc, %object 36107 .size pm_force_gc, 4 36108pm_force_gc: 36109 .space 4 36110 .type _c_swl_slc_gc_th, %object 36111 .size _c_swl_slc_gc_th, 2 36112_c_swl_slc_gc_th: 36113 .space 2 36114 .type _c_swl_xlc_gc_th, %object 36115 .size _c_swl_xlc_gc_th, 2 36116_c_swl_xlc_gc_th: 36117 .space 2 36118 .type _c_max_pm_sblk, %object 36119 .size _c_max_pm_sblk, 2 36120_c_max_pm_sblk: 36121 .space 2 36122 .space 6 36123 .type power_on_init_jiffies, %object 36124 .size power_on_init_jiffies, 8 36125power_on_init_jiffies: 36126 .space 8 36127 .type gp_ftl_api, %object 36128 .size gp_ftl_api, 4 36129gp_ftl_api: 36130 .space 4 36131 .type RK29_NANDC_REG_BASE, %object 36132 .size RK29_NANDC_REG_BASE, 4 36133RK29_NANDC_REG_BASE: 36134 .space 4 36135 .type ftl_dma32_buffer_size, %object 36136 .size ftl_dma32_buffer_size, 4 36137ftl_dma32_buffer_size: 36138 .space 4 36139 .type ftl_dma32_buffer, %object 36140 .size ftl_dma32_buffer, 4 36141ftl_dma32_buffer: 36142 .space 4 36143 .type gc_state, %object 36144 .size gc_state, 1 36145gc_state: 36146 .space 1 36147 .space 3 36148 .type gc_search_count, %object 36149 .size gc_search_count, 4 36150gc_search_count: 36151 .space 4 36152 .type gc_slc_mode_slc_vpn_th, %object 36153 .size gc_slc_mode_slc_vpn_th, 2 36154gc_slc_mode_slc_vpn_th: 36155 .space 2 36156 .space 2 36157 .type gc_lpa_tbl, %object 36158 .size gc_lpa_tbl, 4 36159gc_lpa_tbl: 36160 .space 4 36161 .type gc_pre_ppa_tbl, %object 36162 .size gc_pre_ppa_tbl, 4 36163gc_pre_ppa_tbl: 36164 .space 4 36165 .type gc_des_ppa_tbl, %object 36166 .size gc_des_ppa_tbl, 4 36167gc_des_ppa_tbl: 36168 .space 4 36169 .type g_flash_tmp_page_buffer, %object 36170 .size g_flash_tmp_page_buffer, 4 36171g_flash_tmp_page_buffer: 36172 .space 4 36173 .type g_nandc_tran_timeout, %object 36174 .size g_nandc_tran_timeout, 1 36175g_nandc_tran_timeout: 36176 .space 1 36177 .space 3 36178 .type g_flash_tmp_spare_buffer, %object 36179 .size g_flash_tmp_spare_buffer, 4 36180g_flash_tmp_spare_buffer: 36181 .space 4 36182 .type g_maxRetryCount, %object 36183 .size g_maxRetryCount, 1 36184g_maxRetryCount: 36185 .space 1 36186 .space 3 36187 .type flash_ddr_tuning_sdr_read_count, %object 36188 .size flash_ddr_tuning_sdr_read_count, 4 36189flash_ddr_tuning_sdr_read_count: 36190 .space 4 36191 .type flash_read_retry, %object 36192 .size flash_read_retry, 4 36193flash_read_retry: 36194 .space 4 36195 .type g_flash_spare_buffer, %object 36196 .size g_flash_spare_buffer, 4 36197g_flash_spare_buffer: 36198 .space 4 36199 .type g_flash_page_buffer, %object 36200 .size g_flash_page_buffer, 4 36201g_flash_page_buffer: 36202 .space 4 36203 .type write_commit_head, %object 36204 .size write_commit_head, 1 36205write_commit_head: 36206 .space 1 36207 .space 3 36208 .type ftl_flush_jiffies, %object 36209 .size ftl_flush_jiffies, 4 36210ftl_flush_jiffies: 36211 .space 4 36212 .type g_flash_multi_page_read_en, %object 36213 .size g_flash_multi_page_read_en, 1 36214g_flash_multi_page_read_en: 36215 .space 1 36216 .space 3 36217 .type ftl_info_spare, %object 36218 .size ftl_info_spare, 4 36219ftl_info_spare: 36220 .space 4 36221 .space 16 36222 .type g_ftl_info_blk, %object 36223 .size g_ftl_info_blk, 4 36224g_ftl_info_blk: 36225 .space 4 36226 .type ftl_info_data_buffer, %object 36227 .size ftl_info_data_buffer, 4 36228ftl_info_data_buffer: 36229 .space 4 36230 .type ftl_sys_info_first_write, %object 36231 .size ftl_sys_info_first_write, 1 36232ftl_sys_info_first_write: 36233 .space 1 36234 .type ftl_power_lost_flag, %object 36235 .size ftl_power_lost_flag, 1 36236ftl_power_lost_flag: 36237 .space 1 36238 .type ftl_ext_info_first_write, %object 36239 .size ftl_ext_info_first_write, 1 36240ftl_ext_info_first_write: 36241 .space 1 36242 .space 1 36243 .type ftl_ext_info_data_buffer, %object 36244 .size ftl_ext_info_data_buffer, 4 36245ftl_ext_info_data_buffer: 36246 .space 4 36247 .type ftl_tmp_spare, %object 36248 .size ftl_tmp_spare, 4 36249ftl_tmp_spare: 36250 .space 4 36251 .type pm_gc_enable, %object 36252 .size pm_gc_enable, 4 36253pm_gc_enable: 36254 .space 4 36255 .type g_pm_spare, %object 36256 .size g_pm_spare, 4 36257g_pm_spare: 36258 .space 4 36259 .type pm_first_write, %object 36260 .size pm_first_write, 1 36261pm_first_write: 36262 .space 1 36263 .space 3 36264 .type g_flash_sys_spare_buffer, %object 36265 .size g_flash_sys_spare_buffer, 4 36266g_flash_sys_spare_buffer: 36267 .space 4 36268 .type g_flash_blk_info, %object 36269 .size g_flash_blk_info, 4 36270g_flash_blk_info: 36271 .space 4 36272 .type g_flash_reversd_blks, %object 36273 .size g_flash_reversd_blks, 1 36274g_flash_reversd_blks: 36275 .space 1 36276 .type g_flash_micron_3d_tlc_b16a, %object 36277 .size g_flash_micron_3d_tlc_b16a, 1 36278g_flash_micron_3d_tlc_b16a: 36279 .space 1 36280 .type _c_ftl_byte_pre_page, %object 36281 .size _c_ftl_byte_pre_page, 2 36282_c_ftl_byte_pre_page: 36283 .space 2 36284 .type pm_last_load_ram_id, %object 36285 .size pm_last_load_ram_id, 1 36286pm_last_load_ram_id: 36287 .space 1 36288 .type _ftl_gc_tag_page_num, %object 36289 .size _ftl_gc_tag_page_num, 1 36290_ftl_gc_tag_page_num: 36291 .space 1 36292 .space 2 36293 .type _last_read_time, %object 36294 .size _last_read_time, 4 36295_last_read_time: 36296 .space 4 36297 .type _last_write_time, %object 36298 .size _last_write_time, 4 36299_last_write_time: 36300 .space 4 36301 .type read_ahead_lpa, %object 36302 .size read_ahead_lpa, 4 36303read_ahead_lpa: 36304 .space 4 36305 .type _c_totle_data_density, %object 36306 .size _c_totle_data_density, 4 36307_c_totle_data_density: 36308 .space 4 36309 .type _c_ftl_pm_page_num, %object 36310 .size _c_ftl_pm_page_num, 2 36311_c_ftl_pm_page_num: 36312 .space 2 36313 .space 2 36314 .type ftl_tmp_buffer, %object 36315 .size ftl_tmp_buffer, 4 36316ftl_tmp_buffer: 36317 .space 4 36318 .type rk_zftl_enable, %object 36319 .size rk_zftl_enable, 1 36320rk_zftl_enable: 36321 .space 1 36322 .space 3 36323 .type gLoaderBootInfo, %object 36324 .size gLoaderBootInfo, 4 36325gLoaderBootInfo: 36326 .space 4 36327 .type RK29_NANDC1_REG_BASE, %object 36328 .size RK29_NANDC1_REG_BASE, 4 36329RK29_NANDC1_REG_BASE: 36330 .space 4 36331 .type discard_sector_count, %object 36332 .size discard_sector_count, 4 36333discard_sector_count: 36334 .space 4 36335 .type idb_write_enable, %object 36336 .size idb_write_enable, 1 36337idb_write_enable: 36338 .space 1 36339 .space 3 36340 .type idb_buf, %object 36341 .size idb_buf, 4 36342idb_buf: 36343 .space 4 36344 .type idb_last_lba, %object 36345 .size idb_last_lba, 4 36346idb_last_lba: 36347 .space 4 36348 .type g_idb_buffer, %object 36349 .size g_idb_buffer, 4 36350g_idb_buffer: 36351 .space 4 36352 .type g_vendor, %object 36353 .size g_vendor, 4 36354g_vendor: 36355 .space 4 36356 .type SecureBootUnlockTryCount, %object 36357 .size SecureBootUnlockTryCount, 4 36358SecureBootUnlockTryCount: 36359 .space 4 36360 .type SecureBootCheckOK, %object 36361 .size SecureBootCheckOK, 4 36362SecureBootCheckOK: 36363 .space 4 36364 .type SecureBootEn, %object 36365 .size SecureBootEn, 4 36366SecureBootEn: 36367 .space 4 36368 .type gpVendor1Info, %object 36369 .size gpVendor1Info, 4 36370gpVendor1Info: 36371 .space 4 36372 .type gpVendor0Info, %object 36373 .size gpVendor0Info, 4 36374gpVendor0Info: 36375 .space 4 36376 .type gSnSectorData, %object 36377 .size gSnSectorData, 512 36378gSnSectorData: 36379 .space 512 36380 .type gpDrmKeyInfo, %object 36381 .size gpDrmKeyInfo, 4 36382gpDrmKeyInfo: 36383 .space 4 36384 .type gpBootConfig, %object 36385 .size gpBootConfig, 4 36386gpBootConfig: 36387 .space 4 36388 .type ftl_low_format_cur_blk, %object 36389 .size ftl_low_format_cur_blk, 2 36390ftl_low_format_cur_blk: 36391 .space 2 36392 .space 2 36393 .type p_read_ahead_ext_buf, %object 36394 .size p_read_ahead_ext_buf, 4 36395p_read_ahead_ext_buf: 36396 .space 4 36397 .type _c_ftl_nand_blks_per_die, %object 36398 .size _c_ftl_nand_blks_per_die, 2 36399_c_ftl_nand_blks_per_die: 36400 .space 2 36401 .type nandc_ecc_sts, %object 36402 .size nandc_ecc_sts, 16 36403nandc_ecc_sts: 36404 .space 16 36405 .type g_slc_mode_enable, %object 36406 .size g_slc_mode_enable, 1 36407g_slc_mode_enable: 36408 .space 1 36409 .section .rodata.str1.1,"aMS",%progbits,1 36410.LC0: 36411 .ascii "\012!!!!! error @ func:%s - line:%d\012\000" 36412.LC1: 36413 .ascii "FTL version: 6.0.24 20210716\000" 36414.LC2: 36415 .ascii "%s\012\000" 36416.LC3: 36417 .ascii "zftl_debug:0x%x\012\000" 36418.LC4: 36419 .ascii "...%s enter...\012\000" 36420.LC5: 36421 .ascii "No.0 FLASH ID: %x %x %x %x %x %x\012\000" 36422.LC6: 36423 .ascii "DiePerChip: %x\012\000" 36424.LC7: 36425 .ascii "SectPerPage: %x\012\000" 36426.LC8: 36427 .ascii "PagePerBlk: %x\012\000" 36428.LC9: 36429 .ascii "Cell: %x\012\000" 36430.LC10: 36431 .ascii "PlanePerDie: %x\012\000" 36432.LC11: 36433 .ascii "BlkPerPlane: %x\012\000" 36434.LC12: 36435 .ascii "die gap: %x\012\000" 36436.LC13: 36437 .ascii "lsbMode: %x\012\000" 36438.LC14: 36439 .ascii "ReadRetryMode: %x\012\000" 36440.LC15: 36441 .ascii "ecc: %x\012\000" 36442.LC16: 36443 .ascii "idb ecc: %x\012\000" 36444.LC17: 36445 .ascii "OptMode: %x\012\000" 36446.LC18: 36447 .ascii "g_nand_max_die: %x\012\000" 36448.LC19: 36449 .ascii "Cache read enable: %x\012\000" 36450.LC20: 36451 .ascii "Cache random read enable: %x\012\000" 36452.LC21: 36453 .ascii "Cache prog enable: %x\012\000" 36454.LC22: 36455 .ascii "multi read enable: %x\012\000" 36456.LC23: 36457 .ascii "multi prog enable: %x\012\000" 36458.LC24: 36459 .ascii "interleave enable: %x\012\000" 36460.LC25: 36461 .ascii "read retry enable: %x\012\000" 36462.LC26: 36463 .ascii "randomizer enable: %x\012\000" 36464.LC27: 36465 .ascii "SDR enable: %x\012\000" 36466.LC28: 36467 .ascii "ONFI enable: %x\012\000" 36468.LC29: 36469 .ascii "TOGGLE enable: %x\012\000" 36470.LC30: 36471 .ascii "g_flash_slc_mode: %x %x\012\000" 36472.LC31: 36473 .ascii "MultiPlaneProgCmd: %x %x\012\000" 36474.LC32: 36475 .ascii "MultiPlaneReadCmd: %x %x\012\000" 36476.LC33: 36477 .ascii "g_flash_toggle_mode_en: %x\012\000" 36478.LC34: 36479 .ascii "nand sdr mode %x\012\000" 36480.LC35: 36481 .ascii "nand ddr mode %x\012\000" 36482.LC36: 36483 .ascii "No.%d FLASH ID:%x %x %x %x %x %x\012\000" 36484.LC37: 36485 .ascii "otp:%x %x %x %x\012\000" 36486.LC38: 36487 .ascii "bad block test:%x %x\012\000" 36488.LC39: 36489 .ascii "flash_erase_duplane_block %x %x %x\012\000" 36490.LC40: 36491 .ascii "flash_erase_duplane_block pageadd = %x status = %x\012" 36492 .ascii "\000" 36493.LC41: 36494 .ascii "flash_erase_block %x %x %x\012\000" 36495.LC42: 36496 .ascii "flash_erase_block %d block = %x status = %x\012\000" 36497.LC43: 36498 .ascii "erase done: %x\012\000" 36499.LC44: 36500 .ascii "sblk_queue_head = %d\012\000" 36501.LC45: 36502 .ascii "sblk_read_completed_queue_head = %d\012\000" 36503.LC46: 36504 .ascii "sblk_gc_write_completed_queue_head = %d\012\000" 36505.LC47: 36506 .ascii "sblk_write_completed_queue_head = %d\012\000" 36507.LC48: 36508 .ascii "p_free_buf_head = %d\012\000" 36509.LC49: 36510 .ascii "free_buf_count = %d\012\000" 36511.LC50: 36512 .ascii "buf = %d, next=%d, flag=%d gc_write_flag=%d, lun_st" 36513 .ascii "ate=%d, op_status = %d lpa=%x, ppa=%x\012\000" 36514.LC51: 36515 .ascii "flash_mask_bad_block %d %d\012\000" 36516.LC52: 36517 .ascii "zftl_debug\000" 36518.LC53: 36519 .ascii "FLASH ID: %x %x %x %x %x %x\012\000" 36520.LC54: 36521 .ascii "density: %d MB\012\000" 36522.LC55: 36523 .ascii "device density: %d MB\012\000" 36524.LC56: 36525 .ascii "FTL INFO:\012\000" 36526.LC57: 36527 .ascii "max_lpn = 0x%x\012\000" 36528.LC58: 36529 .ascii "density = 0x%x\012\000" 36530.LC59: 36531 .ascii "slc vpn = 0x%x\012\000" 36532.LC60: 36533 .ascii "xlc vpn = 0x%x\012\000" 36534.LC61: 36535 .ascii "free slc blk = 0x%x\012\000" 36536.LC62: 36537 .ascii "free xlc blk = 0x%x\012\000" 36538.LC63: 36539 .ascii "free mix blk = 0x%x\012\000" 36540.LC64: 36541 .ascii "slc data blk = 0x%x\012\000" 36542.LC65: 36543 .ascii "slc cache blk = 0x%x\012\000" 36544.LC66: 36545 .ascii "xlc data blk = 0x%x\012\000" 36546.LC67: 36547 .ascii "free buf = %d, %d, %d\012\000" 36548.LC68: 36549 .ascii "bad blk = %d %d\012\000" 36550.LC69: 36551 .ascii "TBW = %d MB\012\000" 36552.LC70: 36553 .ascii "TBR = %d MB\012\000" 36554.LC71: 36555 .ascii "POC = %d\012\000" 36556.LC72: 36557 .ascii "PLC = %d\012\000" 36558.LC73: 36559 .ascii "sys run time = %d S\012\000" 36560.LC74: 36561 .ascii "slc mode = %x %x %x\012\000" 36562.LC75: 36563 .ascii "prog err = %d\012\000" 36564.LC76: 36565 .ascii "read err = %d\012\000" 36566.LC77: 36567 .ascii "GC XLC page = %d\012\000" 36568.LC78: 36569 .ascii "GC SLC page = %d\012\000" 36570.LC79: 36571 .ascii "discard page = 0x%x\012\000" 36572.LC80: 36573 .ascii "version = %d\012\000" 36574.LC81: 36575 .ascii "acblk = 0x%x %d %d\012\000" 36576.LC82: 36577 .ascii "tmblk = 0x%x %d %d\012\000" 36578.LC83: 36579 .ascii "gcblk = 0x%x %d %d\012\000" 36580.LC84: 36581 .ascii "slc ec = %d, %d, %d, %d, %d\012\000" 36582.LC85: 36583 .ascii "xlc ec = %d, %d, %d, %d, %d\012\000" 36584.LC86: 36585 .ascii "gc free blk th = %d\012\000" 36586.LC87: 36587 .ascii "gc vpn th = %d %d %d %d %d\012\000" 36588.LC88: 36589 .ascii "swl blk = %x %x %x %x\012\000" 36590.LC89: 36591 .ascii "rf info = %x %x %x %x %x\012\000" 36592.LC90: 36593 .ascii "gc_add_sblk = %d, %d, %d, %d, %d, %d, %d\012\000" 36594.LC91: 36595 .ascii "gc_add_sblk = %d, %d, %d\012\000" 36596.LC92: 36597 .ascii "gc_add_sblk = %d, %d, %d,last update:%d, %d\012\000" 36598.LC93: 36599 .ascii "gc_add_sblk = %d, %d, %d, %d, %d, %d\012\000" 36600.LC94: 36601 .ascii "gc_mark_bad_ppa %d %x %x\012\000" 36602.LC95: 36603 .ascii "status: %x, ppa: %x\012\000" 36604.LC96: 36605 .ascii "%d gc_free_temp_buf buf id= %x\012\000" 36606.LC97: 36607 .ascii "gc: b:%x,p:%x,i:%x; free buf=%d %d free slc th: %d\012" 36608 .ascii "\000" 36609.LC98: 36610 .ascii "zftl_get_gc_node cache = %x index = %d vpn = %x\012" 36611 .ascii "\000" 36612.LC99: 36613 .ascii "gc_search_src_blk mode = %x, src mode = %x, count= " 36614 .ascii "%d %d\012\000" 36615.LC100: 36616 .ascii "swl_tlc_free_mini_ec_blk alloc sblk %x\012\000" 36617.LC101: 36618 .ascii "zftl_get_free_sblk %x %d, %p %d %d\012\000" 36619.LC102: 36620 .ascii "zftl_gc_get_free_sblk %x %x %x, %d %d %d\012\000" 36621.LC103: 36622 .ascii "swl_slc_free_mini_ec_blk alloc sblk %x\012\000" 36623.LC104: 36624 .ascii "list count:%p %d\012\000" 36625.LC105: 36626 .ascii "%d: node:%x %x %x %x, %d %d %d %d %d\012\000" 36627.LC106: 36628 .ascii "ftl_vpn_decrement %x = %d, %d\012\000" 36629.LC107: 36630 .ascii "mask bad block:cs %x %x block: %x %x\012\000" 36631.LC108: 36632 .ascii "gc_free_bad_sblk 0x%x\012\000" 36633.LC109: 36634 .ascii "swl_slc_free_mini_ec_blk sblk %x\012\000" 36635.LC110: 36636 .ascii "gc_free_src_blk = %x, vpn = %d\012\000" 36637.LC111: 36638 .ascii "gc_free_src_blk %x, %d\012\000" 36639.LC112: 36640 .ascii "bad blk = %x, %x free blk: s:%x,t:%x,m:%x, data blk" 36641 .ascii ":s:%x,%x,t%x vpn: s:%x t:%x, max_vpn: %x\012\000" 36642.LC113: 36643 .ascii "totle w: %d MB,r: %d MB %d dv:0x%X,poc:%d\012\000" 36644.LC114: 36645 .ascii "gc xlc page: %d,gc slc page: %d, tmp w: %d MB\012\000" 36646.LC115: 36647 .ascii "slc ec: %d,%d,%d,%d,%d,tlc ec: %d,%d,%d,%d,%d\012\000" 36648.LC116: 36649 .ascii "gc th: tlc_tlc: %d tlc_slc: %d slc_slc: %d slc_tlc:" 36650 .ascii "%d free_th: %d\012\000" 36651.LC117: 36652 .ascii "swl : %x %x %x %x %x %x\012\000" 36653.LC118: 36654 .ascii "ftl prog error =%x, lpa = %x, ppa= %x\012\000" 36655.LC119: 36656 .ascii "ftl re prog: lpa = %x, ppa= %x\012\000" 36657.LC120: 36658 .ascii "dump_sblk_queue: %d\012\000" 36659.LC121: 36660 .ascii "buf id= %d state = %d ppa = %x\012\000" 36661.LC122: 36662 .ascii "%s %d %d\012\000" 36663.LC123: 36664 .ascii "gc_static_wearleveling: min blk: %x,sec=%d,xec = %d" 36665 .ascii " ,mode=%d, func=%x, bbt=%x vpn = %d\012\000" 36666.LC124: 36667 .ascii "gc_static_wearleveling: min slc blk: %x,sec=%d,xec " 36668 .ascii "= %d ,mode=%d, func=%x, bbt=%x vpn = %d\012\000" 36669.LC125: 36670 .ascii "gc_static_wearleveling: min tlc blk: %x,sec=%d,xec " 36671 .ascii "= %d ,mode=%d, func=%x, bbt=%x vpn = %d\012\000" 36672.LC126: 36673 .ascii "gc_static_wearleveling: max slc blk: %x,sec=%d,xec " 36674 .ascii "= %d ,mode=%d, func=%x, bbt=%x vpn = %d\012\000" 36675.LC127: 36676 .ascii "gc_static_wearleveling: max xlc blk: %x,sec=%d,xec " 36677 .ascii "= %d ,mode=%d, func=%x, bbt=%x vpn = %d\012\000" 36678.LC128: 36679 .ascii "gc_static_wearleveling: slc blk: %x, tlc blk: %d av" 36680 .ascii "g slc ec: %d, avg tlc ec: %d \012\000" 36681.LC129: 36682 .ascii "gc_static_wearleveling: min slc ec: %x, min tlc ec:" 36683 .ascii " %d max slc ec: %d, max tlc ec: %d; %d %d\012\000" 36684.LC130: 36685 .ascii "swl add tlc gc = %x, %d, %d, %d, %d, %d\012\000" 36686.LC131: 36687 .ascii "swl add slc gc = %x, %d, %d, %d, %d, %d\012\000" 36688.LC132: 36689 .ascii "free blk vpn error: %x %x\012\000" 36690.LC133: 36691 .ascii "GC PM block %x %x %x %d\012\000" 36692.LC134: 36693 .ascii "ftl_free_no_use_map_blk %x %x %x %d\012\000" 36694.LC135: 36695 .ascii "...%d @ %s\012\000" 36696.LC136: 36697 .ascii "...%s enter... %p\012\000" 36698.LC137: 36699 .ascii "0:%x %x %x %x %x\012\000" 36700.LC138: 36701 .ascii "g_nandc_ver...%d\012\000" 36702.LC139: 36703 .ascii "rk_ftl_de_init %x\012\000" 36704.LC140: 36705 .ascii "\0013\000" 36706.LC141: 36707 .ascii "otp error! %d\000" 36708.LC142: 36709 .ascii "rr\000" 36710.LC143: 36711 .ascii "flash_abort_clear = %d\012\000" 36712.LC144: 36713 .ascii "%d mtrans_cnt = %d page_num = %d\012\000" 36714.LC145: 36715 .ascii "%d flReg.d32=%x %x\012\000" 36716.LC146: 36717 .ascii "nandc:\000" 36718.LC147: 36719 .ascii "nandc_xfer_done read error %x\012\000" 36720.LC148: 36721 .ascii "dqs data abort %x\012\000" 36722.LC149: 36723 .ascii "dqs data timeout %x\012\000" 36724.LC150: 36725 .ascii "xfer error %x\012\000" 36726.LC151: 36727 .ascii "MT %d row=%x,last status %d,status = %d\012\000" 36728.LC152: 36729 .ascii "MT RR %d row=%x,count %d,status=%d\012\000" 36730.LC153: 36731 .ascii "toshiba SRR %d row=%x, status=%d\012\000" 36732.LC154: 36733 .ascii "toshiba TRR %d row=%x, status=%d\012\000" 36734.LC155: 36735 .ascii "toshiba RR %d row=%x,count %d,status=%d\012\000" 36736.LC156: 36737 .ascii "YMTC RR %d row=%x,count %d,status=%d\012\000" 36738.LC157: 36739 .ascii "samsung SRR %d row=%x, status=%d\012\000" 36740.LC158: 36741 .ascii "samsung TRR %d row=%x, status=%d\012\000" 36742.LC159: 36743 .ascii "samsung RR %d row=%x,count %d,status=%d\012\000" 36744.LC160: 36745 .ascii "hynix RR %d row=%x, count %d, status=%d\012\000" 36746.LC161: 36747 .ascii "%d flash_ddr_tuning_read %x ecc=%d\012\000" 36748.LC162: 36749 .ascii "sync para %d\012\000" 36750.LC163: 36751 .ascii "DDR mode Read error %x %x\012\000" 36752.LC164: 36753 .ascii "SDR mode Read %x %x ecc:%x\012\000" 36754.LC165: 36755 .ascii "flash_read_page_en %x %x %x %x\012\000" 36756.LC166: 36757 .ascii "flash_read_page_en %x %x error_ecc %d %d\012\000" 36758.LC167: 36759 .ascii "flash_get_last_written_page: %x %x %x\012\000" 36760.LC168: 36761 .ascii "flash_prog_page page_addr = %x status = %x\012\000" 36762.LC169: 36763 .ascii "flash_prog_page %x %x %x\012\000" 36764.LC170: 36765 .ascii "ymtc_flash_tlc_page_prog page_addr = %x status = %x" 36766 .ascii "\012\000" 36767.LC171: 36768 .ascii "sblk_mlc_dump_prog wl_addr= %x ppa = %x ppa = %x\012" 36769 .ascii "\000" 36770.LC172: 36771 .ascii "flash_complete_page_read %x %x error_ecc %d %d\012\000" 36772.LC173: 36773 .ascii "read: %x %x %x %x\012\000" 36774.LC174: 36775 .ascii "0set buf %d,status = %x, ppa = %x lun state = %d\012" 36776 .ascii "\000" 36777.LC175: 36778 .ascii "prog end %x %x error_ecc %d %d\012\000" 36779.LC176: 36780 .ascii "1set buf %d,status = %x, ppa = %x lun state = %d\012" 36781 .ascii "\000" 36782.LC177: 36783 .ascii "dp prog end %x %x error_ecc %d %d\012\000" 36784.LC178: 36785 .ascii "sblk_prog_page ppa = %x, count = %d\012\000" 36786.LC179: 36787 .ascii "err: ppa = %x, status = %x, %x %x spare: %x %x %x %" 36788 .ascii "x\012\000" 36789.LC180: 36790 .ascii "flash_prog_page_en:%x %x %x\012\000" 36791.LC181: 36792 .ascii "w d:\000" 36793.LC182: 36794 .ascii "w s:\000" 36795.LC183: 36796 .ascii "spare\000" 36797.LC184: 36798 .ascii "data\000" 36799.LC185: 36800 .ascii "write error: %x\012\000" 36801.LC186: 36802 .ascii "g_ftl_info_blk blk = %x, page = %x version = %d\012" 36803 .ascii "\000" 36804.LC187: 36805 .ascii "%d %x @%d %x\012\000" 36806.LC188: 36807 .ascii "ftl_info_blk_init %d %d %x\012\000" 36808.LC189: 36809 .ascii "ftl info hash %x error\012\000" 36810.LC190: 36811 .ascii "ink flag: %x\012\000" 36812.LC191: 36813 .ascii "%s %d %d %x %x\012\000" 36814.LC192: 36815 .ascii "ext info hash %x error\012\000" 36816.LC193: 36817 .ascii "%s %x %x %x\012\000" 36818.LC194: 36819 .ascii "ftl_sblk_dump_write = %x %d %d %d %d\012\000" 36820.LC195: 36821 .ascii "blk= %x, page=%x, ppa = %x, status = %x, data:%x %x" 36822 .ascii " %x %x, spare: %x %x %x %x\012\000" 36823.LC196: 36824 .ascii "ftl_sblk_dump_write2 = %x %d %d %d\012\000" 36825.LC197: 36826 .ascii "ftl_sblk_dump_write = %x %x\012\000" 36827.LC198: 36828 .ascii "ftl_sblk_dump_write done = %x\012\000" 36829.LC199: 36830 .ascii "%x: ink_scaned_blk_num %x\012\000" 36831.LC200: 36832 .ascii "ftl_ink_check_sblk = %x %d %d\012\000" 36833.LC201: 36834 .ascii "ftl_ink_check_sblk = %x %d %d end\012\000" 36835.LC202: 36836 .ascii "alloc sblk %x %d\012\000" 36837.LC203: 36838 .ascii "blk %x is bad block\012\000" 36839.LC204: 36840 .ascii "pm_alloc_new_blk: %x %x %x %x\012\000" 36841.LC205: 36842 .ascii "pm_write_page write error: %x\012\000" 36843.LC206: 36844 .ascii "finfo:\000" 36845.LC207: 36846 .ascii "flash_info_flush id = %x, page = %x\012\000" 36847.LC208: 36848 .ascii "sys_info_flush error:%x\012\000" 36849.LC209: 36850 .ascii "...%d @ %s %d %p\012\000" 36851.LC210: 36852 .ascii "no sys info %x\012\000" 36853.LC211: 36854 .ascii "l2p:\000" 36855.LC212: 36856 .ascii "saved_active_page = %x\012\000" 36857.LC213: 36858 .ascii "saved_active_plane = %x\012\000" 36859.LC214: 36860 .ascii "sblk = %x\012\000" 36861.LC215: 36862 .ascii "phy_blk = %x %x\012\000" 36863.LC216: 36864 .ascii "num_planes = %x\012\000" 36865.LC217: 36866 .ascii "recovery blk=%x, page=%x, ppa = %x, status = %x, ha" 36867 .ascii "sh:%x\012\000" 36868.LC218: 36869 .ascii "data:\000" 36870.LC219: 36871 .ascii "sblk = %x, vpn0 = %d, vpn1 = %d\012\000" 36872.LC220: 36873 .ascii "dump_write_lpa = %x %x %x %x\012\000" 36874.LC221: 36875 .ascii "dump write new ppa = %x, last ppa = %x lpa = %x\012" 36876 .ascii "\000" 36877.LC222: 36878 .ascii "dump write = %x %x %x\012\000" 36879.LC223: 36880 .ascii "dump write hash update = %x %x %x\012\000" 36881.LC224: 36882 .ascii "free_buf_count: %d\012\000" 36883.LC225: 36884 .ascii "g_ftl_info_blk blk:0x%x, index:0x%x, page:0x%x\012\000" 36885.LC226: 36886 .ascii "ftl_ext_info_blk blk:0x%x, page:0x%x\012\000" 36887.LC227: 36888 .ascii "ac_blk:0x%x, page:0x%x, index:0x%x, free:0x%x, page" 36889 .ascii "_index:0x%x\012\000" 36890.LC228: 36891 .ascii "tmp_blk:0x%x, page:0x%x, index:0x%x, free:0x%x, pag" 36892 .ascii "e_index:0x%x\012\000" 36893.LC229: 36894 .ascii "gc_blk:0x%x, page:0x%x, index:0x%x, free:0x%x, page" 36895 .ascii "_index:0x%x\012\000" 36896.LC230: 36897 .ascii "lpa:\000" 36898.LC231: 36899 .ascii "vpn:\000" 36900.LC232: 36901 .ascii "sblk:\000" 36902.LC233: 36903 .ascii "lpa_hash:\000" 36904.LC234: 36905 .ascii "lpa_hash_index:\000" 36906.LC235: 36907 .ascii "%s w error lpn = %x, max ppa = %d\012\000" 36908.LC236: 36909 .ascii "region_id = %d, pm_max_region = %d\012\000" 36910.LC237: 36911 .ascii "load_l2p_region no ppa = %x , %x, all setting 0xff." 36912 .ascii "...\012\000" 36913.LC238: 36914 .ascii "load_l2p_region = %x,%x,%x, %x\012\000" 36915.LC239: 36916 .ascii "pm_ppa:\000" 36917.LC240: 36918 .ascii "spare:\000" 36919.LC241: 36920 .ascii "pm_init posr %x %x %x\012\000" 36921.LC242: 36922 .ascii "pm_init recovery %x %x %x\012\000" 36923.LC243: 36924 .ascii "pm_init hash %x error\012\000" 36925.LC244: 36926 .ascii "pm_log2phys lpn = %d, max lpn = %d\012\000" 36927.LC245: 36928 .ascii "ppa = %x, status = %x, data:%x %x %x %x, spare: %x " 36929 .ascii "%x %x %x\012\000" 36930.LC246: 36931 .ascii "ppa = %x, status = %x, %x %x spare: %x %x %x %x\012" 36932 .ascii "\000" 36933.LC247: 36934 .ascii "gc_recovery: %x vpn = %x\012\000" 36935.LC248: 36936 .ascii "gc_update_l2p_map_new sblk %x\012\000" 36937.LC249: 36938 .ascii "gc_update_l2p_map_new: %x %x %x\012\000" 36939.LC250: 36940 .ascii "lpa: %x %x %x\012\000" 36941.LC251: 36942 .ascii "gc_update_l2p_map_new: %x vpn = %x vpn1 = %x done\012" 36943 .ascii "\000" 36944.LC252: 36945 .ascii "gc_scan_src_blk = %x, vpn = %d\012\000" 36946.LC253: 36947 .ascii "js hash error:%x %x %x\012\000" 36948.LC254: 36949 .ascii "gc_scan_src_blk = %x, s vpn0 = %d, c vpn1 = %d\012\000" 36950.LC255: 36951 .ascii "gc_block_vpn_scan = %x, s vpn0 = %d, c vpn1 = %d f:" 36952 .ascii "%d\012\000" 36953.LC256: 36954 .ascii "ftl_sblk_dump = %x %d %d %d %d\012\000" 36955.LC257: 36956 .ascii "ftl_sblk_dump = %x %x %x %x\012\000" 36957.LC258: 36958 .ascii "page_addr = %x, lpa=%x vpn = %d\012\000" 36959.LC259: 36960 .ascii "index= %x, lpa=%x\012\000" 36961.LC260: 36962 .ascii "block = %x, vpn=%x check vpn = %x\012\000" 36963.LC261: 36964 .ascii "ftl_read %x %x %x\012\000" 36965.LC262: 36966 .ascii "ftl_read refresh =%x, lpa = %x, ppa= %x\012\000" 36967.LC263: 36968 .ascii "id=%d, status = %x, lpa = %x, ppa = %x spare = %x %" 36969 .ascii "x %x %x\012\000" 36970.LC264: 36971 .ascii "zftl debug cmd: %s\012\000" 36972.LC265: 36973 .ascii "cmd:\000" 36974.LC266: 36975 .ascii "dumpl2p\000" 36976.LC267: 36977 .ascii "pm l2p:\000" 36978.LC268: 36979 .ascii "pm blk:\000" 36980.LC269: 36981 .ascii "dumppm:\000" 36982.LC270: 36983 .ascii "p_cmd: %s\012\000" 36984.LC271: 36985 .ascii "pm ram = %x, %x\012\000" 36986.LC272: 36987 .ascii "ram:\000" 36988.LC273: 36989 .ascii "pm:\000" 36990.LC274: 36991 .ascii "dumpsys\000" 36992.LC275: 36993 .ascii "dumplist:\000" 36994.LC276: 36995 .ascii "vpncheck\000" 36996.LC277: 36997 .ascii "dumpppa:\000" 36998.LC278: 36999 .ascii "dumpblk:\000" 37000.LC279: 37001 .ascii "setzdebug:\000" 37002.LC280: 37003 .ascii "lpa2ppa:\000" 37004.LC281: 37005 .ascii "lpa: %x--> ppa: %x\012\000" 37006.LC282: 37007 .ascii "help:\012\000" 37008.LC283: 37009 .ascii "1. echo dumpl2p > /proc/zftl_debug\012\000" 37010.LC284: 37011 .ascii "2. echo dumppm:x > /proc/zftl_debug\012\000" 37012.LC285: 37013 .ascii "3. echo dumpsys > /proc/zftl_debug\012\000" 37014.LC286: 37015 .ascii "4. echo dumpppa:x > /proc/zftl_debug\012\000" 37016.LC287: 37017 .ascii "5. echo vpncheck > /proc/zftl_debug\012\000" 37018.LC288: 37019 .ascii "6. echo setzdebug:x > /proc/zftl_debug\012\000" 37020.LC289: 37021 .ascii "7. echo dumplist:x > /proc/zftl_debug\012\000" 37022.LC290: 37023 .ascii "8. echo lpa2ppa:x> /proc/zftl_debug\012\000" 37024.LC291: 37025 .ascii "ftl_update_l2p_map: %x %x %x\012\000" 37026.LC292: 37027 .ascii "ftl_update_l2p_map\000" 37028.LC293: 37029 .ascii "lpa_tbl:\000" 37030.LC294: 37031 .ascii "sblk %x vpn: %d %d\012\000" 37032.LC295: 37033 .ascii "error gc_add_sblk: %x\012\000" 37034.LC296: 37035 .ascii "%d read error: ppa:%x, lpa:%x, status:%x\012\000" 37036.LC297: 37037 .ascii "gc page in buf: lpa %x ppa = %x pageindex= %x\012\000" 37038.LC298: 37039 .ascii "gc_do_copy_back: lpa %x des_ppa = %x %x gc_ppa= %x " 37040 .ascii "page_index= %d\012\000" 37041.LC299: 37042 .ascii "gc %d: %d %d %d %d %d %d %d\012\000" 37043.LC300: 37044 .ascii "GC_STATE_SCAN_ALL_PAGE = %x, vpn0 = %d, vpn1 = %d\012" 37045 .ascii "\000" 37046.LC301: 37047 .ascii "gc free %x, %d\012\000" 37048.LC302: 37049 .ascii "_c_user_data_density := %d\012\000" 37050.LC303: 37051 .ascii "_c_totle_phy_density := %d\012\000" 37052.LC304: 37053 .ascii "_c_totle_log_page := %d\012\000" 37054.LC305: 37055 .ascii "_c_totle_data_density := %d\012\000" 37056.LC306: 37057 .ascii "_c_ftl_pm_page_num := %d\012\000" 37058.LC307: 37059 .ascii "_c_ftl_byte_pre_page := %d\012\000" 37060.LC308: 37061 .ascii "_c_max_pm_sblk := %d\012\000" 37062.LC309: 37063 .ascii "_min_slc_super_block := %d\012\000" 37064.LC310: 37065 .ascii "_max_xlc_super_block := %d\012\000" 37066.LC311: 37067 .ascii "gp_ftl_ext_info %p %p %p\012\000" 37068.LC312: 37069 .ascii "flash info size: %d %d %d\012\000" 37070.LC313: 37071 .ascii "ftl_init %x\012\000" 37072.LC314: 37073 .ascii "ftlwrite %x %x %x %x\012\000" 37074.LC315: 37075 .ascii "ftl_discard:(%x, %x, %x, %x)\012\000" 37076.LC316: 37077 .ascii "id_block_prog_msb_ff_data slc page = %d pageadd=%x " 37078 .ascii "%x\012\000" 37079.LC317: 37080 .ascii "write_idblock fix data %x %x\012\000" 37081.LC318: 37082 .ascii "idblk:\000" 37083.LC319: 37084 .ascii "write_idblock totle_sec %x %x\012\000" 37085.LC320: 37086 .ascii "prog page: %x %x %x, %p %x %x %x\012\000" 37087.LC321: 37088 .ascii "read page: %x %x %x %x\012\000" 37089.LC322: 37090 .ascii "wl_lba %p %x %x %x\012\000" 37091.LC323: 37092 .ascii "return ret = %lx\012\000" 37093.LC324: 37094 .ascii "\0013vendor storage %x,%x,%x\012\000" 37095