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-06-15 9 */ 10 .arch armv8-a+nosimd 11 .file "rk_zftl_spl_arm_v8.S" 12 .section .text.flash_mem_cmp8,"ax",@progbits 13 .align 2 14 .type flash_mem_cmp8, %function 15flash_mem_cmp8: 16 mov x3, 0 17.L2: 18 mov w4, w3 19 cmp w3, w2 20 bcc .L4 21 mov w0, 0 22 ret 23.L4: 24 ldrb w5, [x0, x3] 25 add x3, x3, 1 26 add x6, x1, x3 27 ldrb w6, [x6, -1] 28 cmp w6, w5 29 beq .L2 30 add w0, w4, 1 31 ret 32 .size flash_mem_cmp8, .-flash_mem_cmp8 33 .section .text.slc_phy_page_address_calc,"ax",@progbits 34 .align 2 35 .type slc_phy_page_address_calc, %function 36slc_phy_page_address_calc: 37 adrp x1, .LANCHOR0 38 adrp x2, .LANCHOR1 39 ldrb w1, [x1, #:lo12:.LANCHOR0] 40 cbz w1, .L7 41 ldrb w1, [x2, #:lo12:.LANCHOR1] 42 cbz w1, .L8 43.L7: 44 adrp x1, .LANCHOR2 45 ldrb w2, [x2, #:lo12:.LANCHOR1] 46 ldrh w3, [x1, #:lo12:.LANCHOR2] 47 udiv w1, w0, w3 48 mul w1, w1, w3 49 sub w0, w0, w1 50 cbz w2, .L9 51 add w0, w1, w0, lsl 1 52 ret 53.L9: 54 adrp x2, .LANCHOR3 55 add x2, x2, :lo12:.LANCHOR3 56 ldrh w0, [x2, w0, uxtw 1] 57 add w0, w0, w1 58.L8: 59 ret 60 .size slc_phy_page_address_calc, .-slc_phy_page_address_calc 61 .section .text._list_remove_node,"ax",@progbits 62 .align 2 63 .type _list_remove_node, %function 64_list_remove_node: 65 stp x29, x30, [sp, -64]! 66 and w1, w1, 65535 67 mov w3, 6 68 add x29, sp, 0 69 stp x21, x22, [sp, 32] 70 adrp x21, .LANCHOR4 71 stp x19, x20, [sp, 16] 72 umull x20, w1, w3 73 stp x23, x24, [sp, 48] 74 mov w1, 65535 75 ldr x24, [x21, #:lo12:.LANCHOR4] 76 add x19, x24, x20 77 ldrh w4, [x24, x20] 78 ldrh w3, [x19, 2] 79 cmp w4, w1 80 ldr x1, [x0] 81 bne .L17 82 cmp w3, w4 83 bne .L17 84 cmp x19, x1 85 bne .L16 86.L17: 87 mov x22, x0 88 mov x23, x2 89 mov w0, 65535 90 cmp w3, w0 91 bne .L19 92 cmp x19, x1 93 beq .L19 94 adrp x1, .LANCHOR5 95 adrp x0, .LC0 96 mov w2, 202 97 add x1, x1, :lo12:.LANCHOR5 98 add x0, x0, :lo12:.LC0 99 bl printf 100.L19: 101 ldr x0, [x22] 102 ldrh w3, [x24, x20] 103 cmp x19, x0 104 mov w0, 65535 105 bne .L20 106 cmp w3, w0 107 bne .L21 108 str xzr, [x22] 109.L22: 110 mov w0, -1 111 strh w0, [x24, x20] 112 strh w0, [x19, 2] 113 ldrh w0, [x23] 114 sub w0, w0, #1 115 strh w0, [x23] 116.L16: 117 ldp x19, x20, [sp, 16] 118 ldp x21, x22, [sp, 32] 119 ldp x23, x24, [sp, 48] 120 ldp x29, x30, [sp], 64 121 ret 122.L21: 123 ldr x0, [x21, #:lo12:.LANCHOR4] 124 mov w1, 6 125 umaddl x3, w3, w1, x0 126 mov w0, -1 127 str x3, [x22] 128 strh w0, [x3, 2] 129 b .L22 130.L20: 131 cmp w3, w0 132 ldrh w0, [x19, 2] 133 bne .L23 134 cmp w0, w3 135 beq .L22 136 mov w1, 6 137 mov w2, -1 138 umull x0, w0, w1 139 ldr x1, [x21, #:lo12:.LANCHOR4] 140 strh w2, [x1, x0] 141 b .L22 142.L23: 143 ldr x1, [x21, #:lo12:.LANCHOR4] 144 mov w2, 6 145 umaddl x4, w3, w2, x1 146 strh w0, [x4, 2] 147 ldrh w0, [x19, 2] 148 umull x0, w0, w2 149 strh w3, [x1, x0] 150 b .L22 151 .size _list_remove_node, .-_list_remove_node 152 .section .text.hynix_set_rr_para,"ax",@progbits 153 .align 2 154 .type hynix_set_rr_para, %function 155hynix_set_rr_para: 156 stp x29, x30, [sp, -64]! 157 adrp x2, .LANCHOR6 158 and w1, w1, 255 159 adrp x3, .LANCHOR7 160 add x29, sp, 0 161 ldr x2, [x2, #:lo12:.LANCHOR6] 162 and w0, w0, 255 163 stp x19, x20, [sp, 16] 164 stp x21, x22, [sp, 32] 165 add x21, x2, 112 166 str x23, [sp, 48] 167 add x23, x2, 128 168 ldr x19, [x3, #:lo12:.LANCHOR7] 169 ldrb w22, [x2, 113] 170 ldrb w2, [x2, 112] 171 cmp w2, 8 172 mov x2, 32 173 umaddl x1, w1, w22, x2 174 beq .L26 175 mov w2, 160 176 umaddl x1, w2, w0, x1 177.L26: 178 ubfiz x0, x0, 8, 8 179 add x21, x21, x1 180 add x19, x19, x0 181 mov x20, 0 182 mov w0, 54 183 str w0, [x19, 2056] 184.L28: 185 cmp w22, w20, uxtb 186 bhi .L29 187 ldp x21, x22, [sp, 32] 188 mov w0, 22 189 ldr x23, [sp, 48] 190 str w0, [x19, 2056] 191 ldp x19, x20, [sp, 16] 192 ldp x29, x30, [sp], 64 193 ret 194.L29: 195 ldrb w0, [x23, x20] 196 str w0, [x19, 2052] 197 mov x0, 1 198 bl udelay 199 ldrsb w0, [x21, x20] 200 add x20, x20, 1 201 str w0, [x19, 2048] 202 b .L28 203 .size hynix_set_rr_para, .-hynix_set_rr_para 204 .section .text._insert_free_list,"ax",@progbits 205 .align 2 206 .type _insert_free_list, %function 207_insert_free_list: 208 adrp x3, .LANCHOR8 209 and w1, w1, 65535 210 ldrh w3, [x3, #:lo12:.LANCHOR8] 211 cmp w3, w1 212 bls .L31 213 ldrh w3, [x2] 214 mov w8, 6 215 ldr x7, [x0] 216 add w3, w3, 1 217 strh w3, [x2] 218 adrp x2, .LANCHOR4 219 umull x12, w1, w8 220 ldr x5, [x2, #:lo12:.LANCHOR4] 221 mov w2, -1 222 add x6, x5, x12 223 strh w2, [x6, 2] 224 strh w2, [x5, x12] 225 cbnz x7, .L33 226.L38: 227 str x6, [x0] 228 ret 229.L33: 230 adrp x2, .LANCHOR9 231 adrp x3, .LANCHOR10 232 mov w10, w8 233 mov w15, 65535 234 ldr x11, [x2, #:lo12:.LANCHOR9] 235 ubfiz x2, x1, 2, 16 236 ldrh w14, [x3, #:lo12:.LANCHOR10] 237 mov x3, -6148914691236517206 238 movk x3, 0xaaab, lsl 0 239 ldr w4, [x11, x2] 240 ldrh w2, [x11, x2] 241 ubfx x4, x4, 11, 8 242 and w2, w2, 2047 243 madd w4, w14, w4, w2 244 sub x2, x7, x5 245 asr x2, x2, 1 246 and w4, w4, 65535 247 mul x2, x2, x3 248 mov x3, x7 249 and w2, w2, 65535 250.L36: 251 ubfiz x13, x2, 2, 16 252 ldr w8, [x11, x13] 253 ldrh w13, [x11, x13] 254 ubfx x8, x8, 11, 8 255 and w13, w13, 2047 256 madd w8, w14, w8, w13 257 cmp w4, w8, uxth 258 bls .L34 259 ldrh w8, [x3] 260 cmp w8, w15 261 bne .L35 262 strh w2, [x6, 2] 263 strh w1, [x3] 264 ret 265.L35: 266 umaddl x3, w8, w10, x5 267 mov w2, w8 268 b .L36 269.L34: 270 ldrh w4, [x3, 2] 271 cmp x7, x3 272 strh w4, [x6, 2] 273 strh w2, [x5, x12] 274 bne .L37 275 strh w1, [x7, 2] 276 b .L38 277.L37: 278 ldrh w0, [x3, 2] 279 mov w2, 6 280 umull x0, w0, w2 281 strh w1, [x5, x0] 282 strh w1, [x3, 2] 283.L31: 284 ret 285 .size _insert_free_list, .-_insert_free_list 286 .section .text._insert_data_list,"ax",@progbits 287 .align 2 288 .type _insert_data_list, %function 289_insert_data_list: 290 adrp x3, .LANCHOR8 291 and w1, w1, 65535 292 ldrh w4, [x3, #:lo12:.LANCHOR8] 293 cmp w4, w1 294 bls .L61 295 mov x5, x3 296 ldrh w3, [x2] 297 mov w13, 6 298 ldr x12, [x0] 299 add w3, w3, 1 300 strh w3, [x2] 301 adrp x2, .LANCHOR4 302 umull x13, w1, w13 303 ldr x10, [x2, #:lo12:.LANCHOR4] 304 mov w2, -1 305 add x11, x10, x13 306 strh w2, [x11, 2] 307 strh w2, [x10, x13] 308 cbnz x12, .L42 309 str x11, [x0] 310 ret 311.L42: 312 stp x29, x30, [sp, -32]! 313 adrp x2, .LANCHOR11 314 uxtw x3, w1 315 adrp x6, .LANCHOR10 316 add x29, sp, 0 317 ldr x15, [x2, #:lo12:.LANCHOR11] 318 adrp x2, .LANCHOR9 319 ldrh w4, [x11, 4] 320 ldr x14, [x2, #:lo12:.LANCHOR9] 321 stp x19, x20, [sp, 16] 322 ldrh w8, [x15, x3, lsl 1] 323 lsl x3, x3, 2 324 ldrh w16, [x6, #:lo12:.LANCHOR10] 325 ldr w2, [x14, x3] 326 mul w8, w8, w4 327 ldrh w3, [x14, x3] 328 ubfx x2, x2, 11, 8 329 and w3, w3, 2047 330 cbz w8, .L43 331 madd w2, w16, w2, w3 332 add w8, w8, w2, uxth 333.L43: 334 sub x2, x12, x10 335 mov x3, -6148914691236517206 336 asr x2, x2, 1 337 movk x3, 0xaaab, lsl 0 338 cmp w4, 0 339 ldrh w19, [x5, #:lo12:.LANCHOR8] 340 csinv w8, w8, wzr, ne 341 mov x7, x12 342 mul x2, x2, x3 343 mov w4, 0 344 mov w20, 65535 345 mov w30, 6 346 and w2, w2, 65535 347.L49: 348 add w4, w4, 1 349 and w4, w4, 65535 350 cmp w4, w19 351 bhi .L39 352 cmp w1, w2 353 beq .L39 354 uxtw x6, w2 355 ldrh w17, [x7, 4] 356 ldrh w3, [x15, x6, lsl 1] 357 lsl x6, x6, 2 358 ldr w5, [x14, x6] 359 mul w3, w3, w17 360 ldrh w6, [x14, x6] 361 ubfx x5, x5, 11, 8 362 and w6, w6, 2047 363 cbz w3, .L46 364 madd w5, w16, w5, w6 365 add w3, w3, w5, uxth 366.L46: 367 cbz w17, .L47 368 cmp w8, w3 369 bls .L47 370 ldrh w3, [x7] 371 cmp w3, w20 372 bne .L48 373 strh w2, [x11, 2] 374 strh w1, [x7] 375.L39: 376 ldp x19, x20, [sp, 16] 377 ldp x29, x30, [sp], 32 378 ret 379.L48: 380 umaddl x7, w3, w30, x10 381 mov w2, w3 382 b .L49 383.L47: 384 ldrh w3, [x7, 2] 385 cmp x12, x7 386 strh w3, [x11, 2] 387 strh w2, [x10, x13] 388 bne .L50 389 strh w1, [x12, 2] 390 str x11, [x0] 391 b .L39 392.L50: 393 ldrh w0, [x7, 2] 394 mov w2, 6 395 umull x0, w0, w2 396 strh w1, [x10, x0] 397 strh w1, [x7, 2] 398 b .L39 399.L61: 400 ret 401 .size _insert_data_list, .-_insert_data_list 402 .section .text._list_update_data_list,"ax",@progbits 403 .align 2 404 .type _list_update_data_list, %function 405_list_update_data_list: 406 stp x29, x30, [sp, -80]! 407 add x29, sp, 0 408 stp x19, x20, [sp, 16] 409 and w19, w1, 65535 410 adrp x1, .LANCHOR12 411 stp x21, x22, [sp, 32] 412 stp x23, x24, [sp, 48] 413 ldr x1, [x1, #:lo12:.LANCHOR12] 414 ldrh w3, [x1, 16] 415 str x25, [sp, 64] 416 cmp w3, w19 417 beq .L63 418 ldrh w3, [x1, 48] 419 cmp w3, w19 420 beq .L63 421 ldrh w1, [x1, 80] 422 cmp w1, w19 423 beq .L63 424 adrp x1, .LANCHOR4 425 mov w22, 6 426 ldr x3, [x0] 427 mov x25, x1 428 umull x22, w19, w22 429 ldr x24, [x1, #:lo12:.LANCHOR4] 430 add x23, x24, x22 431 cmp x23, x3 432 beq .L63 433 mov x20, x0 434 ldrh w0, [x23, 2] 435 mov w1, 65535 436 mov x21, x2 437 cmp w0, w1 438 bne .L67 439 ldrh w1, [x24, x22] 440 cmp w1, w0 441 bne .L67 442 adrp x1, .LANCHOR13 443 adrp x0, .LC0 444 mov w2, 273 445 add x1, x1, :lo12:.LANCHOR13 446 add x0, x0, :lo12:.LC0 447 bl printf 448.L67: 449 ldrh w1, [x23, 2] 450 mov w0, 65535 451 cmp w1, w0 452 bne .L68 453 ldrh w0, [x24, x22] 454 cmp w0, w1 455 beq .L63 456.L68: 457 adrp x0, .LANCHOR11 458 ubfiz x2, x19, 1, 16 459 mov x5, -6148914691236517206 460 mov w4, -1 461 ldr x0, [x0, #:lo12:.LANCHOR11] 462 movk x5, 0xaaab, lsl 0 463 ldrh w3, [x0, x2] 464 ldrh w2, [x23, 4] 465 cmp w2, 0 466 mul w3, w3, w2 467 mov w2, 6 468 umull x1, w1, w2 469 csel w3, w3, w4, ne 470 asr x2, x1, 1 471 mul x2, x2, x5 472 ldrh w0, [x0, x2, lsl 1] 473 ldr x2, [x25, #:lo12:.LANCHOR4] 474 add x1, x2, x1 475 ldrh w1, [x1, 4] 476 cmp w1, 0 477 mul w0, w0, w1 478 csel w0, w0, w4, ne 479 cmp w3, w0 480 bcs .L63 481 mov x2, x21 482 mov w1, w19 483 mov x0, x20 484 bl _list_remove_node 485 mov x2, x21 486 mov w1, w19 487 mov x0, x20 488 ldr x25, [sp, 64] 489 ldp x19, x20, [sp, 16] 490 ldp x21, x22, [sp, 32] 491 ldp x23, x24, [sp, 48] 492 ldp x29, x30, [sp], 80 493 b _insert_data_list 494.L63: 495 ldp x19, x20, [sp, 16] 496 ldp x21, x22, [sp, 32] 497 ldp x23, x24, [sp, 48] 498 ldr x25, [sp, 64] 499 ldp x29, x30, [sp], 80 500 ret 501 .size _list_update_data_list, .-_list_update_data_list 502 .section .text.nandc_de_cs.constprop.31,"ax",@progbits 503 .align 2 504 .type nandc_de_cs.constprop.31, %function 505nandc_de_cs.constprop.31: 506 adrp x0, .LANCHOR7 507 ldr x1, [x0, #:lo12:.LANCHOR7] 508 ldr w0, [x1] 509 and w0, w0, -256 510 and w0, w0, -131073 511 str w0, [x1] 512 ret 513 .size nandc_de_cs.constprop.31, .-nandc_de_cs.constprop.31 514 .section .text.flash_read_status,"ax",@progbits 515 .align 2 516 .global flash_read_status 517 .type flash_read_status, %function 518flash_read_status: 519 stp x29, x30, [sp, -32]! 520 add x29, sp, 0 521 str x19, [sp, 16] 522 mov x19, x0 523 mov w0, 112 524 str w0, [x19, 8] 525 mov x0, 1 526 bl udelay 527 ldr w0, [x19] 528 ldr x19, [sp, 16] 529 and w0, w0, 255 530 ldp x29, x30, [sp], 32 531 ret 532 .size flash_read_status, .-flash_read_status 533 .section .text.toshiba_set_rr_para,"ax",@progbits 534 .align 2 535 .global toshiba_set_rr_para 536 .type toshiba_set_rr_para, %function 537toshiba_set_rr_para: 538 stp x29, x30, [sp, -96]! 539 add x29, sp, 0 540 str x27, [sp, 80] 541 and w27, w1, 255 542 add w2, w27, 1 543 stp x21, x22, [sp, 32] 544 mov x21, x0 545 mov w0, 5 546 stp x19, x20, [sp, 16] 547 adrp x20, .LANCHOR14 548 umull x2, w2, w0 549 stp x23, x24, [sp, 48] 550 adrp x0, .LANCHOR15 551 add x20, x20, :lo12:.LANCHOR14 552 add x24, x0, :lo12:.LANCHOR15 553 stp x25, x26, [sp, 64] 554 adrp x23, .LANCHOR18 555 adrp x25, .LANCHOR16 556 adrp x26, .LANCHOR17 557 add x23, x23, :lo12:.LANCHOR18 558 add x25, x25, :lo12:.LANCHOR16 559 add x26, x26, :lo12:.LANCHOR17 560 add x20, x20, x2 561 add x24, x24, x2 562 mov x22, x0 563 mov x19, 0 564.L78: 565 ldrb w0, [x23] 566 cmp w0, w19 567 bhi .L82 568 ldp x19, x20, [sp, 16] 569 ldp x21, x22, [sp, 32] 570 ldp x23, x24, [sp, 48] 571 ldp x25, x26, [sp, 64] 572 ldr x27, [sp, 80] 573 ldp x29, x30, [sp], 96 574 ret 575.L82: 576 mov w0, 85 577 str w0, [x21, 8] 578 add x0, x22, :lo12:.LANCHOR15 579 ldrsb w0, [x19, x0] 580 str w0, [x21, 4] 581 mov x0, 1 582 bl udelay 583 ldrb w0, [x25] 584 cmp w0, 34 585 bne .L79 586 ldrsb w0, [x24, x19] 587.L84: 588 add x19, x19, 1 589 str w0, [x21] 590 b .L78 591.L79: 592 cmp w0, 35 593 bne .L81 594 ldrsb w0, [x20, x19] 595 b .L84 596.L81: 597 ldrsb w0, [x26, w27, sxtw] 598 b .L84 599 .size toshiba_set_rr_para, .-toshiba_set_rr_para 600 .section .text.hynix_reconfig_rr_para,"ax",@progbits 601 .align 2 602 .global hynix_reconfig_rr_para 603 .type hynix_reconfig_rr_para, %function 604hynix_reconfig_rr_para: 605 adrp x1, .LANCHOR16 606 ldrb w1, [x1, #:lo12:.LANCHOR16] 607 sub w1, w1, #1 608 and w1, w1, 255 609 cmp w1, 7 610 bhi .L91 611 stp x29, x30, [sp, -32]! 612 and w0, w0, 255 613 add x29, sp, 0 614 stp x19, x20, [sp, 16] 615 adrp x20, .LANCHOR6 616 sxtw x19, w0 617 ldr x1, [x20, #:lo12:.LANCHOR6] 618 add x1, x1, x19 619 ldrb w1, [x1, 120] 620 cbz w1, .L85 621 mov w1, 0 622 bl hynix_set_rr_para 623 ldr x0, [x20, #:lo12:.LANCHOR6] 624 add x0, x0, x19 625 strb wzr, [x0, 120] 626.L85: 627 ldp x19, x20, [sp, 16] 628 ldp x29, x30, [sp], 32 629 ret 630.L91: 631 ret 632 .size hynix_reconfig_rr_para, .-hynix_reconfig_rr_para 633 .section .text.nand_flash_print_info,"ax",@progbits 634 .align 2 635 .global nand_flash_print_info 636 .type nand_flash_print_info, %function 637nand_flash_print_info: 638 stp x29, x30, [sp, -32]! 639 add x29, sp, 0 640 str x19, [sp, 16] 641 adrp x19, .LANCHOR19 642 ldr w0, [x19, #:lo12:.LANCHOR19] 643 tbz x0, 12, .L95 644 adrp x1, .LANCHOR20 645 adrp x0, .LC1 646 add x1, x1, :lo12:.LANCHOR20 647 add x0, x0, :lo12:.LC1 648 bl printf 649.L95: 650 ldr w0, [x19, #:lo12:.LANCHOR19] 651 tbz x0, 12, .L96 652 adrp x0, .LANCHOR21 653 ldr x0, [x0, #:lo12:.LANCHOR21] 654 ldrb w6, [x0, 6] 655 ldrb w5, [x0, 5] 656 ldrb w4, [x0, 4] 657 ldrb w3, [x0, 3] 658 ldrb w2, [x0, 2] 659 ldrb w1, [x0, 1] 660 adrp x0, .LC2 661 add x0, x0, :lo12:.LC2 662 bl printf 663.L96: 664 ldr w0, [x19, #:lo12:.LANCHOR19] 665 tbz x0, 12, .L97 666 adrp x0, .LANCHOR21 667 ldr x0, [x0, #:lo12:.LANCHOR21] 668 ldrb w1, [x0, 8] 669 adrp x0, .LC3 670 add x0, x0, :lo12:.LC3 671 bl printf 672.L97: 673 ldr w0, [x19, #:lo12:.LANCHOR19] 674 tbz x0, 12, .L98 675 adrp x0, .LANCHOR21 676 ldr x0, [x0, #:lo12:.LANCHOR21] 677 ldrb w1, [x0, 9] 678 adrp x0, .LC4 679 add x0, x0, :lo12:.LC4 680 bl printf 681.L98: 682 ldr w0, [x19, #:lo12:.LANCHOR19] 683 tbz x0, 12, .L99 684 adrp x0, .LANCHOR21 685 ldr x0, [x0, #:lo12:.LANCHOR21] 686 ldrh w1, [x0, 10] 687 adrp x0, .LC5 688 add x0, x0, :lo12:.LC5 689 bl printf 690.L99: 691 ldr w0, [x19, #:lo12:.LANCHOR19] 692 tbz x0, 12, .L100 693 adrp x0, .LANCHOR21 694 ldr x0, [x0, #:lo12:.LANCHOR21] 695 ldrb w1, [x0, 12] 696 adrp x0, .LC6 697 add x0, x0, :lo12:.LC6 698 bl printf 699.L100: 700 ldr w0, [x19, #:lo12:.LANCHOR19] 701 tbz x0, 12, .L101 702 adrp x0, .LANCHOR21 703 ldr x0, [x0, #:lo12:.LANCHOR21] 704 ldrb w1, [x0, 13] 705 adrp x0, .LC7 706 add x0, x0, :lo12:.LC7 707 bl printf 708.L101: 709 ldr w0, [x19, #:lo12:.LANCHOR19] 710 tbz x0, 12, .L102 711 adrp x0, .LANCHOR21 712 ldr x0, [x0, #:lo12:.LANCHOR21] 713 ldrh w1, [x0, 14] 714 adrp x0, .LC8 715 add x0, x0, :lo12:.LC8 716 bl printf 717.L102: 718 ldr w0, [x19, #:lo12:.LANCHOR19] 719 tbz x0, 12, .L103 720 adrp x0, .LANCHOR21 721 ldr x0, [x0, #:lo12:.LANCHOR21] 722 ldrb w1, [x0, 23] 723 adrp x0, .LC9 724 add x0, x0, :lo12:.LC9 725 bl printf 726.L103: 727 ldr w0, [x19, #:lo12:.LANCHOR19] 728 tbz x0, 12, .L104 729 adrp x0, .LANCHOR21 730 ldr x0, [x0, #:lo12:.LANCHOR21] 731 ldrb w1, [x0, 18] 732 adrp x0, .LC10 733 add x0, x0, :lo12:.LC10 734 bl printf 735.L104: 736 ldr w0, [x19, #:lo12:.LANCHOR19] 737 tbz x0, 12, .L105 738 adrp x0, .LANCHOR21 739 ldr x0, [x0, #:lo12:.LANCHOR21] 740 ldrb w1, [x0, 19] 741 adrp x0, .LC11 742 add x0, x0, :lo12:.LC11 743 bl printf 744.L105: 745 ldr w0, [x19, #:lo12:.LANCHOR19] 746 tbz x0, 12, .L106 747 adrp x0, .LANCHOR21 748 ldr x0, [x0, #:lo12:.LANCHOR21] 749 ldrb w1, [x0, 20] 750 adrp x0, .LC12 751 add x0, x0, :lo12:.LC12 752 bl printf 753.L106: 754 ldr w0, [x19, #:lo12:.LANCHOR19] 755 tbz x0, 12, .L107 756 adrp x0, .LANCHOR22 757 ldrb w1, [x0, #:lo12:.LANCHOR22] 758 adrp x0, .LC13 759 add x0, x0, :lo12:.LC13 760 bl printf 761.L107: 762 ldr w0, [x19, #:lo12:.LANCHOR19] 763 tbz x0, 12, .L108 764 adrp x0, .LANCHOR21 765 ldr x0, [x0, #:lo12:.LANCHOR21] 766 ldrb w1, [x0, 22] 767 adrp x0, .LC14 768 add x0, x0, :lo12:.LC14 769 bl printf 770.L108: 771 ldr w0, [x19, #:lo12:.LANCHOR19] 772 tbz x0, 12, .L109 773 adrp x0, .LANCHOR23 774 ldrb w1, [x0, #:lo12:.LANCHOR23] 775 adrp x0, .LC15 776 add x0, x0, :lo12:.LC15 777 bl printf 778.L109: 779 ldr w0, [x19, #:lo12:.LANCHOR19] 780 tbz x0, 12, .L110 781 adrp x0, .LANCHOR21 782 ldr x0, [x0, #:lo12:.LANCHOR21] 783 ldrb w1, [x0, 16] 784 adrp x0, .LC16 785 add x0, x0, :lo12:.LC16 786 and w1, w1, 1 787 bl printf 788.L110: 789 ldr w0, [x19, #:lo12:.LANCHOR19] 790 tbz x0, 12, .L111 791 adrp x0, .LANCHOR21 792 ldr x0, [x0, #:lo12:.LANCHOR21] 793 ldrh w1, [x0, 16] 794 adrp x0, .LC17 795 add x0, x0, :lo12:.LC17 796 ubfx x1, x1, 1, 1 797 bl printf 798.L111: 799 ldr w0, [x19, #:lo12:.LANCHOR19] 800 tbz x0, 12, .L112 801 adrp x0, .LANCHOR21 802 ldr x0, [x0, #:lo12:.LANCHOR21] 803 ldrh w1, [x0, 16] 804 adrp x0, .LC18 805 add x0, x0, :lo12:.LC18 806 ubfx x1, x1, 2, 1 807 bl printf 808.L112: 809 ldr w0, [x19, #:lo12:.LANCHOR19] 810 tbz x0, 12, .L113 811 adrp x0, .LANCHOR21 812 ldr x0, [x0, #:lo12:.LANCHOR21] 813 ldrh w1, [x0, 16] 814 adrp x0, .LC19 815 add x0, x0, :lo12:.LC19 816 ubfx x1, x1, 3, 1 817 bl printf 818.L113: 819 ldr w0, [x19, #:lo12:.LANCHOR19] 820 tbz x0, 12, .L114 821 adrp x0, .LANCHOR21 822 ldr x0, [x0, #:lo12:.LANCHOR21] 823 ldrh w1, [x0, 16] 824 adrp x0, .LC20 825 add x0, x0, :lo12:.LC20 826 ubfx x1, x1, 4, 1 827 bl printf 828.L114: 829 ldr w0, [x19, #:lo12:.LANCHOR19] 830 tbz x0, 12, .L115 831 adrp x0, .LANCHOR21 832 ldr x0, [x0, #:lo12:.LANCHOR21] 833 ldrh w1, [x0, 16] 834 adrp x0, .LC21 835 add x0, x0, :lo12:.LC21 836 ubfx x1, x1, 5, 1 837 bl printf 838.L115: 839 ldr w0, [x19, #:lo12:.LANCHOR19] 840 tbz x0, 12, .L116 841 adrp x0, .LANCHOR21 842 ldr x0, [x0, #:lo12:.LANCHOR21] 843 ldrh w1, [x0, 16] 844 adrp x0, .LC22 845 add x0, x0, :lo12:.LC22 846 ubfx x1, x1, 6, 1 847 bl printf 848.L116: 849 ldr w0, [x19, #:lo12:.LANCHOR19] 850 tbz x0, 12, .L117 851 adrp x0, .LANCHOR21 852 ldr x0, [x0, #:lo12:.LANCHOR21] 853 ldrh w1, [x0, 16] 854 adrp x0, .LC23 855 add x0, x0, :lo12:.LC23 856 ubfx x1, x1, 7, 1 857 bl printf 858.L117: 859 ldr w0, [x19, #:lo12:.LANCHOR19] 860 tbz x0, 12, .L118 861 adrp x0, .LANCHOR21 862 ldr x0, [x0, #:lo12:.LANCHOR21] 863 ldrb w1, [x0, 17] 864 adrp x0, .LC24 865 add x0, x0, :lo12:.LC24 866 and w1, w1, 1 867 bl printf 868.L118: 869 ldr w0, [x19, #:lo12:.LANCHOR19] 870 tbz x0, 12, .L119 871 adrp x0, .LANCHOR21 872 ldr x0, [x0, #:lo12:.LANCHOR21] 873 ldrh w1, [x0, 16] 874 adrp x0, .LC25 875 add x0, x0, :lo12:.LC25 876 ubfx x1, x1, 9, 1 877 bl printf 878.L119: 879 ldr w0, [x19, #:lo12:.LANCHOR19] 880 tbz x0, 12, .L120 881 adrp x0, .LANCHOR21 882 ldr x0, [x0, #:lo12:.LANCHOR21] 883 ldrh w1, [x0, 16] 884 adrp x0, .LC26 885 add x0, x0, :lo12:.LC26 886 ubfx x1, x1, 10, 1 887 bl printf 888.L120: 889 ldr w0, [x19, #:lo12:.LANCHOR19] 890 tbz x0, 12, .L121 891 adrp x0, .LANCHOR24 892 ldrb w2, [x0, #:lo12:.LANCHOR24] 893 adrp x0, .LANCHOR0 894 ldrb w1, [x0, #:lo12:.LANCHOR0] 895 adrp x0, .LC27 896 add x0, x0, :lo12:.LC27 897 bl printf 898.L121: 899 ldr w0, [x19, #:lo12:.LANCHOR19] 900 tbz x0, 12, .L122 901 adrp x0, .LANCHOR25 902 add x0, x0, :lo12:.LANCHOR25 903 ldrb w2, [x0, 11] 904 ldrb w1, [x0, 10] 905 adrp x0, .LC28 906 add x0, x0, :lo12:.LC28 907 bl printf 908.L122: 909 ldr w0, [x19, #:lo12:.LANCHOR19] 910 tbz x0, 12, .L123 911 adrp x0, .LANCHOR25 912 add x0, x0, :lo12:.LANCHOR25 913 ldrb w2, [x0, 9] 914 ldrb w1, [x0, 8] 915 adrp x0, .LC29 916 add x0, x0, :lo12:.LC29 917 bl printf 918.L123: 919 ldr w0, [x19, #:lo12:.LANCHOR19] 920 tbz x0, 12, .L94 921 adrp x0, .LANCHOR26 922 ldr x19, [sp, 16] 923 ldp x29, x30, [sp], 32 924 ldrb w1, [x0, #:lo12:.LANCHOR26] 925 adrp x0, .LC30 926 add x0, x0, :lo12:.LC30 927 b printf 928.L94: 929 ldr x19, [sp, 16] 930 ldp x29, x30, [sp], 32 931 ret 932 .size nand_flash_print_info, .-nand_flash_print_info 933 .section .text.timer_delay_ns,"ax",@progbits 934 .align 2 935 .global timer_delay_ns 936 .type timer_delay_ns, %function 937timer_delay_ns: 938 uxtw x0, w0 939 mov x1, 1000 940 add x0, x0, 999 941 udiv x0, x0, x1 942 b udelay 943 .size timer_delay_ns, .-timer_delay_ns 944 .section .text.nandc_set_ddr_para,"ax",@progbits 945 .align 2 946 .global nandc_set_ddr_para 947 .type nandc_set_ddr_para, %function 948nandc_set_ddr_para: 949 adrp x1, .LANCHOR27 950 and w0, w0, 255 951 adrp x2, .LANCHOR7 952 ldrb w1, [x1, #:lo12:.LANCHOR27] 953 ldr x2, [x2, #:lo12:.LANCHOR7] 954 cmp w1, 9 955 lsl w1, w0, 16 956 lsl w0, w0, 8 957 orr w1, w1, w0 958 orr w1, w1, 3 959 bne .L215 960 str w1, [x2, 80] 961 ret 962.L215: 963 str w1, [x2, 304] 964 ret 965 .size nandc_set_ddr_para, .-nandc_set_ddr_para 966 .section .text.nandc_get_ddr_para,"ax",@progbits 967 .align 2 968 .global nandc_get_ddr_para 969 .type nandc_get_ddr_para, %function 970nandc_get_ddr_para: 971 adrp x0, .LANCHOR27 972 ldrb w0, [x0, #:lo12:.LANCHOR27] 973 cmp w0, 9 974 adrp x0, .LANCHOR7 975 ldr x0, [x0, #:lo12:.LANCHOR7] 976 bne .L218 977 ldr w0, [x0, 80] 978.L220: 979 ubfx x0, x0, 8, 8 980 ret 981.L218: 982 ldr w0, [x0, 304] 983 b .L220 984 .size nandc_get_ddr_para, .-nandc_get_ddr_para 985 .section .text.nandc_set_if_mode,"ax",@progbits 986 .align 2 987 .global nandc_set_if_mode 988 .type nandc_set_if_mode, %function 989nandc_set_if_mode: 990 adrp x1, .LANCHOR7 991 and w0, w0, 255 992 tst w0, 6 993 ldr x2, [x1, #:lo12:.LANCHOR7] 994 ldr w1, [x2] 995 beq .L222 996 tst x0, 4 997 orr w1, w1, 24576 998 adrp x0, .LANCHOR27 999 and w1, w1, -32769 1000 orr w1, w1, 196608 1001 ldrb w0, [x0, #:lo12:.LANCHOR27] 1002 orr w3, w1, 32768 1003 csel w1, w3, w1, ne 1004 cmp w0, 9 1005 mov w0, 4099 1006 movk w0, 0x10, lsl 16 1007 bne .L224 1008 mov w3, 8321 1009 str w3, [x2, 8] 1010 str w0, [x2, 80] 1011 mov w0, 38 1012 str w0, [x2, 84] 1013 mov w0, 39 1014 str w0, [x2, 84] 1015.L225: 1016 str w1, [x2] 1017 ret 1018.L224: 1019 mov w3, 8322 1020 str w3, [x2, 344] 1021 str w0, [x2, 304] 1022 mov w0, 38 1023 str w0, [x2, 308] 1024 mov w0, 39 1025 str w0, [x2, 308] 1026 b .L225 1027.L222: 1028 and w1, w1, -8193 1029 b .L225 1030 .size nandc_set_if_mode, .-nandc_set_if_mode 1031 .section .text.nandc_cs,"ax",@progbits 1032 .align 2 1033 .global nandc_cs 1034 .type nandc_cs, %function 1035nandc_cs: 1036 adrp x1, .LANCHOR7 1037 mov w2, 1 1038 lsl w0, w2, w0 1039 ldr x3, [x1, #:lo12:.LANCHOR7] 1040 ldr w1, [x3] 1041 bfi w1, w0, 0, 8 1042 str w1, [x3] 1043 ret 1044 .size nandc_cs, .-nandc_cs 1045 .section .text.flash_wait_device_ready_raw,"ax",@progbits 1046 .align 2 1047 .global flash_wait_device_ready_raw 1048 .type flash_wait_device_ready_raw, %function 1049flash_wait_device_ready_raw: 1050 stp x29, x30, [sp, -96]! 1051 add x29, sp, 0 1052 stp x19, x20, [sp, 16] 1053 and w19, w0, 255 1054 adrp x0, .LANCHOR23 1055 stp x25, x26, [sp, 64] 1056 stp x21, x22, [sp, 32] 1057 mov w20, w1 1058 ldrb w0, [x0, #:lo12:.LANCHOR23] 1059 mov w26, w2 1060 stp x23, x24, [sp, 48] 1061 str x27, [sp, 80] 1062 cmp w0, w19 1063 bhi .L230 1064 adrp x1, .LANCHOR28 1065 adrp x0, .LC0 1066 mov w2, 812 1067 add x1, x1, :lo12:.LANCHOR28 1068 add x0, x0, :lo12:.LC0 1069 bl printf 1070.L230: 1071 adrp x0, .LANCHOR29 1072 add x0, x0, :lo12:.LANCHOR29 1073 lsr w23, w20, 8 1074 lsr w24, w20, 16 1075 lsr w25, w20, 24 1076 adrp x21, .LANCHOR30 1077 ldrb w22, [x0, w19, sxtw] 1078 adrp x0, .LANCHOR7 1079 and w20, w20, 255 1080 add x21, x21, :lo12:.LANCHOR30 1081 ldr x19, [x0, #:lo12:.LANCHOR7] 1082 mov w27, 120 1083 ubfiz x0, x22, 8, 8 1084 add x19, x19, x0 1085.L236: 1086 mov w0, w22 1087 bl nandc_cs 1088 str w27, [x19, 2056] 1089 str w20, [x19, 2052] 1090 ldrb w0, [x21] 1091 str w23, [x19, 2052] 1092 str w24, [x19, 2052] 1093 cbz w0, .L231 1094 str w25, [x19, 2052] 1095.L231: 1096 mov x0, 1 1097 bl udelay 1098 ldr w2, [x19, 2048] 1099 and w2, w2, 255 1100 bl nandc_de_cs.constprop.31 1101 bics wzr, w26, w2 1102 bne .L236 1103 cmp w2, 255 1104 beq .L236 1105 mov w0, w2 1106 ldr x27, [sp, 80] 1107 ldp x19, x20, [sp, 16] 1108 ldp x21, x22, [sp, 32] 1109 ldp x23, x24, [sp, 48] 1110 ldp x25, x26, [sp, 64] 1111 ldp x29, x30, [sp], 96 1112 ret 1113 .size flash_wait_device_ready_raw, .-flash_wait_device_ready_raw 1114 .section .text.flash_wait_device_ready,"ax",@progbits 1115 .align 2 1116 .global flash_wait_device_ready 1117 .type flash_wait_device_ready, %function 1118flash_wait_device_ready: 1119 mov w2, w1 1120 adrp x1, .LANCHOR31 1121 mov w5, 24 1122 mov w4, 1 1123 ldrb w6, [x1, #:lo12:.LANCHOR31] 1124 tst x0, 50331648 1125 sub w5, w5, w6 1126 lsl w3, w4, w5 1127 sub w3, w3, #1 1128 lsl w4, w4, w6 1129 sub w4, w4, #1 1130 asr w5, w0, w5 1131 and w4, w4, w5 1132 and w1, w3, w0 1133 and w4, w4, 255 1134 bne .L241 1135 adrp x0, .LANCHOR0 1136 adrp x5, .LANCHOR1 1137 ldrb w0, [x0, #:lo12:.LANCHOR0] 1138 cbz w0, .L242 1139 ldrb w0, [x5, #:lo12:.LANCHOR1] 1140 cbz w0, .L241 1141.L242: 1142 adrp x0, .LANCHOR2 1143 ldrh w3, [x0, #:lo12:.LANCHOR2] 1144 udiv w0, w1, w3 1145 mul w0, w0, w3 1146 sub w3, w1, w0 1147 ldrb w1, [x5, #:lo12:.LANCHOR1] 1148 cbz w1, .L243 1149 add w1, w0, w3, lsl 1 1150.L241: 1151 mov w0, w4 1152 b flash_wait_device_ready_raw 1153.L243: 1154 adrp x5, .LANCHOR3 1155 add x5, x5, :lo12:.LANCHOR3 1156 ldrh w3, [x5, w3, uxtw 1] 1157 add w1, w3, w0 1158 b .L241 1159 .size flash_wait_device_ready, .-flash_wait_device_ready 1160 .section .text.nandc_de_cs,"ax",@progbits 1161 .align 2 1162 .global nandc_de_cs 1163 .type nandc_de_cs, %function 1164nandc_de_cs: 1165 adrp x0, .LANCHOR7 1166 ldr x1, [x0, #:lo12:.LANCHOR7] 1167 ldr w0, [x1] 1168 and w0, w0, -256 1169 and w0, w0, -131073 1170 str w0, [x1] 1171 ret 1172 .size nandc_de_cs, .-nandc_de_cs 1173 .section .text.nandc_wait_flash_ready_no_delay,"ax",@progbits 1174 .align 2 1175 .global nandc_wait_flash_ready_no_delay 1176 .type nandc_wait_flash_ready_no_delay, %function 1177nandc_wait_flash_ready_no_delay: 1178 stp x29, x30, [sp, -48]! 1179 add x29, sp, 0 1180 stp x19, x20, [sp, 16] 1181 mov w19, 34464 1182 movk w19, 0x1, lsl 16 1183 adrp x20, .LANCHOR7 1184.L253: 1185 ldr x0, [x20, #:lo12:.LANCHOR7] 1186 ldr w0, [x0] 1187 str w0, [x29, 40] 1188 ldr w0, [x29, 40] 1189 tbnz x0, 9, .L254 1190 mov x0, 1 1191 bl udelay 1192 subs w19, w19, #1 1193 bne .L253 1194 mov w0, -1 1195.L251: 1196 ldp x19, x20, [sp, 16] 1197 ldp x29, x30, [sp], 48 1198 ret 1199.L254: 1200 mov w0, 0 1201 b .L251 1202 .size nandc_wait_flash_ready_no_delay, .-nandc_wait_flash_ready_no_delay 1203 .section .text.zftl_flash_enter_slc_mode,"ax",@progbits 1204 .align 2 1205 .global zftl_flash_enter_slc_mode 1206 .type zftl_flash_enter_slc_mode, %function 1207zftl_flash_enter_slc_mode: 1208 stp x29, x30, [sp, -48]! 1209 add x29, sp, 0 1210 stp x19, x20, [sp, 16] 1211 and x19, x0, 255 1212 adrp x0, .LANCHOR0 1213 stp x21, x22, [sp, 32] 1214 ldrb w0, [x0, #:lo12:.LANCHOR0] 1215 cbz w0, .L257 1216 adrp x1, .LANCHOR7 1217 cmp w0, 1 1218 ldr x20, [x1, #:lo12:.LANCHOR7] 1219 bne .L260 1220 adrp x0, .LANCHOR32+29 1221 ldrb w0, [x0, #:lo12:.LANCHOR32+29] 1222 cbz w0, .L257 1223.L276: 1224 add x19, x19, 8 1225 add x19, x20, x19, lsl 8 1226 str w0, [x19, 8] 1227.L257: 1228 ldp x19, x20, [sp, 16] 1229 ldp x21, x22, [sp, 32] 1230 ldp x29, x30, [sp], 48 1231 ret 1232.L260: 1233 cmp w0, 2 1234 bne .L262 1235 adrp x0, .LANCHOR33 1236 add x0, x0, :lo12:.LANCHOR33 1237 ldrb w1, [x0, x19] 1238 cbz w1, .L257 1239 adrp x21, .LANCHOR32 1240 add x21, x21, :lo12:.LANCHOR32 1241 strb wzr, [x0, x19] 1242 ldrb w0, [x21, 29] 1243 cbz w0, .L257 1244 bl nandc_wait_flash_ready_no_delay 1245 ldrb w0, [x21, 29] 1246 b .L276 1247.L262: 1248 cmp w0, 3 1249 bne .L257 1250 adrp x21, .LANCHOR33 1251 sxtw x22, w19 1252 add x21, x21, :lo12:.LANCHOR33 1253 ldrb w0, [x21, x22] 1254 cbz w0, .L257 1255 ubfiz x19, x19, 8, 8 1256 bl nandc_wait_flash_ready_no_delay 1257 add x19, x20, x19 1258 mov w0, 239 1259 strb wzr, [x21, x22] 1260 str w0, [x19, 2056] 1261 mov w0, 145 1262 str w0, [x19, 2052] 1263 mov x0, 1 1264 bl udelay 1265 str wzr, [x19, 2048] 1266 mov w0, 1 1267 str w0, [x19, 2048] 1268 str wzr, [x19, 2048] 1269 mov x0, 1 1270 str wzr, [x19, 2048] 1271 bl udelay 1272 bl nandc_wait_flash_ready_no_delay 1273 mov w0, 218 1274 ldp x21, x22, [sp, 32] 1275 str w0, [x19, 2056] 1276 ldp x19, x20, [sp, 16] 1277 mov x0, 1 1278 ldp x29, x30, [sp], 48 1279 b udelay 1280 .size zftl_flash_enter_slc_mode, .-zftl_flash_enter_slc_mode 1281 .section .text.zftl_flash_exit_slc_mode,"ax",@progbits 1282 .align 2 1283 .global zftl_flash_exit_slc_mode 1284 .type zftl_flash_exit_slc_mode, %function 1285zftl_flash_exit_slc_mode: 1286 stp x29, x30, [sp, -64]! 1287 add x29, sp, 0 1288 stp x19, x20, [sp, 16] 1289 and x19, x0, 255 1290 adrp x0, .LANCHOR0 1291 stp x21, x22, [sp, 32] 1292 str x23, [sp, 48] 1293 ldrb w0, [x0, #:lo12:.LANCHOR0] 1294 cbz w0, .L277 1295 adrp x1, .LANCHOR7 1296 cmp w0, 1 1297 ldr x20, [x1, #:lo12:.LANCHOR7] 1298 bne .L280 1299 adrp x0, .LANCHOR32+30 1300 ldrb w0, [x0, #:lo12:.LANCHOR32+30] 1301 cbz w0, .L277 1302.L298: 1303 add x19, x19, 8 1304 add x19, x20, x19, lsl 8 1305 str w0, [x19, 8] 1306.L277: 1307 ldp x19, x20, [sp, 16] 1308 ldp x21, x22, [sp, 32] 1309 ldr x23, [sp, 48] 1310 ldp x29, x30, [sp], 64 1311 ret 1312.L280: 1313 cmp w0, 2 1314 bne .L282 1315 adrp x0, .LANCHOR33 1316 add x0, x0, :lo12:.LANCHOR33 1317 ldrb w1, [x0, x19] 1318 cbnz w1, .L277 1319 adrp x21, .LANCHOR32 1320 add x21, x21, :lo12:.LANCHOR32 1321 mov w2, 4 1322 ldrb w1, [x21, 12] 1323 cmp w1, 2 1324 csel w1, w1, w2, eq 1325 strb w1, [x0, x19] 1326 ldrb w0, [x21, 30] 1327 cbz w0, .L277 1328 bl nandc_wait_flash_ready_no_delay 1329 ldrb w0, [x21, 30] 1330 b .L298 1331.L282: 1332 cmp w0, 3 1333 bne .L277 1334 adrp x21, .LANCHOR33 1335 sxtw x23, w19 1336 add x21, x21, :lo12:.LANCHOR33 1337 ldrb w0, [x21, x23] 1338 cbnz w0, .L277 1339 adrp x22, .LANCHOR32 1340 add x22, x22, :lo12:.LANCHOR32 1341 bl nandc_wait_flash_ready_no_delay 1342 ubfiz x19, x19, 8, 8 1343 add x19, x20, x19 1344 mov w1, 4 1345 ldrb w0, [x22, 12] 1346 cmp w0, 2 1347 csel w0, w0, w1, eq 1348 strb w0, [x21, x23] 1349 mov w0, 239 1350 str w0, [x19, 2056] 1351 mov w0, 145 1352 str w0, [x19, 2052] 1353 mov x0, 1 1354 bl udelay 1355 ldrb w0, [x22, 7] 1356 cmp w0, 9 1357 mov w0, 1 1358 bne .L285 1359 str w0, [x19, 2048] 1360.L286: 1361 str w0, [x19, 2048] 1362 mov x0, 1 1363 str wzr, [x19, 2048] 1364 str wzr, [x19, 2048] 1365 bl udelay 1366 bl nandc_wait_flash_ready_no_delay 1367 ldr x23, [sp, 48] 1368 ldp x21, x22, [sp, 32] 1369 mov w0, 223 1370 str w0, [x19, 2056] 1371 mov x0, 1 1372 ldp x19, x20, [sp, 16] 1373 ldp x29, x30, [sp], 64 1374 b udelay 1375.L285: 1376 ldrb w1, [x21, x23] 1377 str w1, [x19, 2048] 1378 b .L286 1379 .size zftl_flash_exit_slc_mode, .-zftl_flash_exit_slc_mode 1380 .section .text.flash_start_page_read,"ax",@progbits 1381 .align 2 1382 .global flash_start_page_read 1383 .type flash_start_page_read, %function 1384flash_start_page_read: 1385 stp x29, x30, [sp, -64]! 1386 add x29, sp, 0 1387 stp x21, x22, [sp, 32] 1388 and w21, w0, 255 1389 adrp x0, .LANCHOR31 1390 stp x19, x20, [sp, 16] 1391 str x23, [sp, 48] 1392 mov w19, 24 1393 ldrb w0, [x0, #:lo12:.LANCHOR31] 1394 mov w20, 1 1395 mov w22, w1 1396 sub w23, w19, w0 1397 lsl w20, w20, w0 1398 sub w20, w20, #1 1399 lsr w0, w1, w23 1400 and w20, w20, w0 1401 adrp x0, .LANCHOR23 1402 and w20, w20, 255 1403 mov x19, x0 1404 ldrb w1, [x0, #:lo12:.LANCHOR23] 1405 cmp w1, w20 1406 bhi .L300 1407 adrp x1, .LANCHOR34 1408 adrp x0, .LC0 1409 mov w2, 1013 1410 add x1, x1, :lo12:.LANCHOR34 1411 add x0, x0, :lo12:.LC0 1412 bl printf 1413.L300: 1414 ldrb w0, [x19, #:lo12:.LANCHOR23] 1415 cmp w0, w20 1416 bls .L299 1417 adrp x0, .LANCHOR29 1418 add x0, x0, :lo12:.LANCHOR29 1419 mov w19, 1 1420 ubfx x4, x22, 24, 2 1421 lsl w19, w19, w23 1422 sub w19, w19, #1 1423 and w19, w19, w22 1424 ldrb w22, [x0, w20, sxtw] 1425 adrp x0, .LANCHOR7 1426 adrp x23, .LANCHOR21 1427 ldr x20, [x0, #:lo12:.LANCHOR7] 1428 mov w0, w22 1429 bl nandc_cs 1430 cbnz w4, .L302 1431 mov w0, w19 1432 bl slc_phy_page_address_calc 1433 mov w19, w0 1434 adrp x0, .LANCHOR0 1435 ldrb w0, [x0, #:lo12:.LANCHOR0] 1436 cbz w0, .L303 1437 mov w0, w22 1438 bl zftl_flash_enter_slc_mode 1439.L303: 1440 ldr x0, [x23, #:lo12:.LANCHOR21] 1441 ldrb w1, [x0, 7] 1442 cmp w1, 1 1443 bne .L305 1444 ldrb w0, [x0, 12] 1445 cmp w0, 2 1446 bne .L305 1447 sxtw x0, w22 1448 mov w1, 38 1449 add x0, x0, 8 1450 add x0, x20, x0, lsl 8 1451 str w1, [x0, 8] 1452.L305: 1453 ubfiz x0, x22, 8, 8 1454 and w1, w19, 255 1455 add x0, x20, x0 1456 str wzr, [x0, 2056] 1457 str wzr, [x0, 2052] 1458 str wzr, [x0, 2052] 1459 str w1, [x0, 2052] 1460 lsr w1, w19, 8 1461 str w1, [x0, 2052] 1462 lsr w1, w19, 16 1463 str w1, [x0, 2052] 1464 adrp x1, .LANCHOR30 1465 ldrb w1, [x1, #:lo12:.LANCHOR30] 1466 cbz w1, .L306 1467 lsr w19, w19, 24 1468 str w19, [x0, 2052] 1469.L306: 1470 str w21, [x0, 2056] 1471.L299: 1472 ldp x19, x20, [sp, 16] 1473 ldp x21, x22, [sp, 32] 1474 ldr x23, [sp, 48] 1475 ldp x29, x30, [sp], 64 1476 ret 1477.L302: 1478 ldr x0, [x23, #:lo12:.LANCHOR21] 1479 ldrb w0, [x0, 12] 1480 cmp w0, 3 1481 bne .L304 1482 adrp x0, .LANCHOR35 1483 ldrb w0, [x0, #:lo12:.LANCHOR35] 1484 cbnz w0, .L304 1485 adrp x0, .LANCHOR36 1486 ldrb w0, [x0, #:lo12:.LANCHOR36] 1487 cbnz w0, .L304 1488 sxtw x0, w22 1489 add x0, x0, 8 1490 add x0, x20, x0, lsl 8 1491 str w4, [x0, 8] 1492 b .L303 1493.L304: 1494 mov w0, w22 1495 bl zftl_flash_exit_slc_mode 1496 b .L303 1497 .size flash_start_page_read, .-flash_start_page_read 1498 .section .text.nandc_wait_flash_ready,"ax",@progbits 1499 .align 2 1500 .global nandc_wait_flash_ready 1501 .type nandc_wait_flash_ready, %function 1502nandc_wait_flash_ready: 1503 stp x29, x30, [sp, -48]! 1504 mov x0, 1 1505 add x29, sp, 0 1506 stp x19, x20, [sp, 16] 1507 mov w19, 34464 1508 movk w19, 0x1, lsl 16 1509 adrp x20, .LANCHOR7 1510 bl udelay 1511.L316: 1512 ldr x0, [x20, #:lo12:.LANCHOR7] 1513 ldr w0, [x0] 1514 str w0, [x29, 40] 1515 ldr w0, [x29, 40] 1516 tbnz x0, 9, .L317 1517 mov x0, 1 1518 bl udelay 1519 subs w19, w19, #1 1520 bne .L316 1521 mov w0, -1 1522.L314: 1523 ldp x19, x20, [sp, 16] 1524 ldp x29, x30, [sp], 48 1525 ret 1526.L317: 1527 mov w0, 0 1528 b .L314 1529 .size nandc_wait_flash_ready, .-nandc_wait_flash_ready 1530 .section .text.sandisk_set_rr_para,"ax",@progbits 1531 .align 2 1532 .global sandisk_set_rr_para 1533 .type sandisk_set_rr_para, %function 1534sandisk_set_rr_para: 1535 stp x29, x30, [sp, -32]! 1536 add x29, sp, 0 1537 stp x19, x20, [sp, 16] 1538 mov x20, x0 1539 mov w0, 239 1540 and w19, w1, 255 1541 str w0, [x20, 8] 1542 mov w0, 17 1543 str w0, [x20, 4] 1544 mov x0, 1 1545 bl udelay 1546 adrp x0, .LANCHOR18 1547 add w1, w19, 1 1548 adrp x2, .LANCHOR14 1549 add x2, x2, :lo12:.LANCHOR14 1550 ldrb w3, [x0, #:lo12:.LANCHOR18] 1551 adrp x0, .LANCHOR16 1552 ldrb w4, [x0, #:lo12:.LANCHOR16] 1553 mov w0, 5 1554 umull x1, w1, w0 1555 adrp x0, .LANCHOR15 1556 add x0, x0, :lo12:.LANCHOR15 1557 add x2, x2, x1 1558 add x1, x0, x1 1559 mov x0, 0 1560.L321: 1561 cmp w3, w0 1562 bhi .L324 1563 ldp x19, x20, [sp, 16] 1564 ldp x29, x30, [sp], 32 1565 b nandc_wait_flash_ready 1566.L324: 1567 cmp w4, 67 1568 bne .L322 1569 ldrsb w5, [x1, x0] 1570.L326: 1571 add x0, x0, 1 1572 str w5, [x20] 1573 b .L321 1574.L322: 1575 ldrsb w5, [x2, x0] 1576 b .L326 1577 .size sandisk_set_rr_para, .-sandisk_set_rr_para 1578 .section .text.toshiba_3d_set_tlc_rr_para,"ax",@progbits 1579 .align 2 1580 .global toshiba_3d_set_tlc_rr_para 1581 .type toshiba_3d_set_tlc_rr_para, %function 1582toshiba_3d_set_tlc_rr_para: 1583 stp x29, x30, [sp, -48]! 1584 and x2, x1, 255 1585 mov x1, 7 1586 add x29, sp, 0 1587 stp x19, x20, [sp, 16] 1588 mov x19, x0 1589 str x21, [sp, 32] 1590 mov w21, 213 1591 madd x1, x2, x1, x1 1592 mov w0, -119 1593 str w21, [x19, 8] 1594 str wzr, [x19, 4] 1595 str w0, [x19, 4] 1596 adrp x0, .LANCHOR37 1597 add x0, x0, :lo12:.LANCHOR37 1598 add x20, x0, x1 1599 ldrsb w0, [x0, x1] 1600 str w0, [x19] 1601 ldrsb w0, [x20, 1] 1602 str w0, [x19] 1603 ldrsb w0, [x20, 2] 1604 str w0, [x19] 1605 ldrsb w0, [x20, 3] 1606 str w0, [x19] 1607 bl nandc_wait_flash_ready 1608 str w21, [x19, 8] 1609 str wzr, [x19, 4] 1610 mov w0, -118 1611 str w0, [x19, 4] 1612 ldrsb w0, [x20, 4] 1613 ldr x21, [sp, 32] 1614 str w0, [x19] 1615 ldrsb w0, [x20, 5] 1616 str w0, [x19] 1617 ldrsb w0, [x20, 6] 1618 str w0, [x19] 1619 str wzr, [x19] 1620 ldp x19, x20, [sp, 16] 1621 ldp x29, x30, [sp], 48 1622 b nandc_wait_flash_ready 1623 .size toshiba_3d_set_tlc_rr_para, .-toshiba_3d_set_tlc_rr_para 1624 .section .text.toshiba_3d_set_slc_rr_para,"ax",@progbits 1625 .align 2 1626 .global toshiba_3d_set_slc_rr_para 1627 .type toshiba_3d_set_slc_rr_para, %function 1628toshiba_3d_set_slc_rr_para: 1629 mov w2, 213 1630 str w2, [x0, 8] 1631 str wzr, [x0, 4] 1632 mov w2, -117 1633 str w2, [x0, 4] 1634 adrp x2, .LANCHOR38 1635 add x2, x2, :lo12:.LANCHOR38 1636 add x1, x2, x1, uxtb 1637 ldrsb w1, [x1, 1] 1638 str w1, [x0] 1639 str wzr, [x0] 1640 str wzr, [x0] 1641 str wzr, [x0] 1642 b nandc_wait_flash_ready 1643 .size toshiba_3d_set_slc_rr_para, .-toshiba_3d_set_slc_rr_para 1644 .section .text.toshiba_tlc_set_rr_para,"ax",@progbits 1645 .align 2 1646 .global toshiba_tlc_set_rr_para 1647 .type toshiba_tlc_set_rr_para, %function 1648toshiba_tlc_set_rr_para: 1649 stp x29, x30, [sp, -48]! 1650 uxtw x1, w1 1651 add x29, sp, 0 1652 str x21, [sp, 32] 1653 mov w21, 239 1654 stp x19, x20, [sp, 16] 1655 cbz w2, .L331 1656 mov x19, x0 1657 mov x2, 7 1658 mov w0, 18 1659 mul x1, x1, x2 1660 str w21, [x19, 8] 1661 str w0, [x19, 4] 1662 adrp x0, .LANCHOR39 1663 add x0, x0, :lo12:.LANCHOR39 1664 add x20, x0, x1 1665 ldrb w0, [x0, x1] 1666 str w0, [x19] 1667 ldrb w0, [x20, 1] 1668 str w0, [x19] 1669 ldrb w0, [x20, 2] 1670 str w0, [x19] 1671 ldrb w0, [x20, 3] 1672 str w0, [x19] 1673 bl nandc_wait_flash_ready 1674 str w21, [x19, 8] 1675 mov w0, 19 1676 str w0, [x19, 4] 1677 ldrb w0, [x20, 4] 1678 str w0, [x19] 1679 ldrb w0, [x20, 5] 1680 str w0, [x19] 1681 ldrb w0, [x20, 6] 1682 str w0, [x19] 1683 str wzr, [x19] 1684.L332: 1685 ldp x19, x20, [sp, 16] 1686 ldr x21, [sp, 32] 1687 ldp x29, x30, [sp], 48 1688 b nandc_wait_flash_ready 1689.L331: 1690 str w21, [x0, 8] 1691 mov w2, 20 1692 str w2, [x0, 4] 1693 adrp x2, .LANCHOR40 1694 add x2, x2, :lo12:.LANCHOR40 1695 ldrb w1, [x2, x1] 1696 str w1, [x0] 1697 str wzr, [x0] 1698 str wzr, [x0] 1699 str wzr, [x0] 1700 b .L332 1701 .size toshiba_tlc_set_rr_para, .-toshiba_tlc_set_rr_para 1702 .section .text.ymtc_3d_set_tlc_rr_para,"ax",@progbits 1703 .align 2 1704 .global ymtc_3d_set_tlc_rr_para 1705 .type ymtc_3d_set_tlc_rr_para, %function 1706ymtc_3d_set_tlc_rr_para: 1707 stp x29, x30, [sp, -48]! 1708 and x1, x1, 255 1709 mov x2, 7 1710 add x29, sp, 0 1711 stp x19, x20, [sp, 16] 1712 mov x19, x0 1713 str x21, [sp, 32] 1714 mul x1, x1, x2 1715 mov w21, 239 1716 mov w0, 160 1717 str w21, [x19, 8] 1718 str w0, [x19, 4] 1719 adrp x0, .LANCHOR41 1720 add x0, x0, :lo12:.LANCHOR41 1721 add x20, x0, x1 1722 ldrsb w0, [x0, x1] 1723 str w0, [x19] 1724 ldrsb w0, [x20, 4] 1725 str w0, [x19] 1726 str wzr, [x19] 1727 str wzr, [x19] 1728 bl nandc_wait_flash_ready 1729 str w21, [x19, 8] 1730 mov w0, 161 1731 str w0, [x19, 4] 1732 ldrsb w0, [x20, 1] 1733 str w0, [x19] 1734 ldrsb w0, [x20, 3] 1735 str w0, [x19] 1736 ldrsb w0, [x20, 5] 1737 str w0, [x19] 1738 str wzr, [x19] 1739 bl nandc_wait_flash_ready 1740 str w21, [x19, 8] 1741 mov w0, 162 1742 str w0, [x19, 4] 1743 ldrsb w0, [x20, 2] 1744 ldr x21, [sp, 32] 1745 str w0, [x19] 1746 ldrsb w0, [x20, 6] 1747 str w0, [x19] 1748 str wzr, [x19] 1749 str wzr, [x19] 1750 ldp x19, x20, [sp, 16] 1751 ldp x29, x30, [sp], 48 1752 b nandc_wait_flash_ready 1753 .size ymtc_3d_set_tlc_rr_para, .-ymtc_3d_set_tlc_rr_para 1754 .section .text.ymtc_3d_set_slc_rr_para,"ax",@progbits 1755 .align 2 1756 .global ymtc_3d_set_slc_rr_para 1757 .type ymtc_3d_set_slc_rr_para, %function 1758ymtc_3d_set_slc_rr_para: 1759 mov w2, 239 1760 str w2, [x0, 8] 1761 mov w2, 163 1762 and x1, x1, 255 1763 str w2, [x0, 4] 1764 adrp x2, .LANCHOR42 1765 add x2, x2, :lo12:.LANCHOR42 1766 ldrsb w1, [x2, x1] 1767 str w1, [x0] 1768 str wzr, [x0] 1769 str wzr, [x0] 1770 str wzr, [x0] 1771 b nandc_wait_flash_ready 1772 .size ymtc_3d_set_slc_rr_para, .-ymtc_3d_set_slc_rr_para 1773 .section .text.flash_erase_duplane_block,"ax",@progbits 1774 .align 2 1775 .global flash_erase_duplane_block 1776 .type flash_erase_duplane_block, %function 1777flash_erase_duplane_block: 1778 stp x29, x30, [sp, -80]! 1779 add x29, sp, 0 1780 stp x21, x22, [sp, 32] 1781 and w22, w0, 255 1782 adrp x0, .LANCHOR23 1783 stp x19, x20, [sp, 16] 1784 stp x23, x24, [sp, 48] 1785 and w24, w1, 255 1786 str x25, [sp, 64] 1787 mov w21, w2 1788 ldrb w1, [x0, #:lo12:.LANCHOR23] 1789 mov w20, w3 1790 mov x19, x0 1791 cmp w1, w22 1792 bhi .L338 1793 adrp x1, .LANCHOR43 1794 adrp x0, .LC0 1795 mov w2, 695 1796 add x1, x1, :lo12:.LANCHOR43 1797 add x0, x0, :lo12:.LC0 1798 bl printf 1799.L338: 1800 ldrb w0, [x19, #:lo12:.LANCHOR23] 1801 cmp w0, w22 1802 bls .L347 1803 adrp x0, .LANCHOR29 1804 add x0, x0, :lo12:.LANCHOR29 1805 ldrb w22, [x0, w22, sxtw] 1806 adrp x0, .LANCHOR7 1807 ldr x25, [x0, #:lo12:.LANCHOR7] 1808 adrp x0, .LANCHOR19 1809 and x19, x22, 255 1810 ldr w0, [x0, #:lo12:.LANCHOR19] 1811 add x23, x19, 8 1812 add x23, x25, x23, lsl 8 1813 tbz x0, 4, .L340 1814 adrp x0, .LC31 1815 mov w3, w20 1816 mov w2, w21 1817 mov w1, w22 1818 add x0, x0, :lo12:.LC31 1819 bl printf 1820.L340: 1821 bl nandc_wait_flash_ready 1822 mov w0, w22 1823 bl nandc_cs 1824 mov w0, w22 1825 cbnz w24, .L341 1826 bl zftl_flash_enter_slc_mode 1827.L342: 1828 add x19, x25, x19, lsl 8 1829 mov w0, 96 1830 str w0, [x19, 2056] 1831 and w0, w21, 255 1832 str w0, [x19, 2052] 1833 lsr w0, w21, 8 1834 str w0, [x19, 2052] 1835 lsr w0, w21, 16 1836 str w0, [x19, 2052] 1837 adrp x0, .LANCHOR30 1838 mov x24, x0 1839 ldrb w1, [x0, #:lo12:.LANCHOR30] 1840 cbz w1, .L343 1841 lsr w0, w21, 24 1842 str w0, [x19, 2052] 1843.L343: 1844 adrp x0, .LANCHOR44 1845 ldrb w0, [x0, #:lo12:.LANCHOR44] 1846 cbnz w0, .L348 1847 mov w0, 208 1848 str w0, [x19, 2056] 1849 mov w22, 5 1850 bl nandc_wait_flash_ready 1851 mov x0, x23 1852 bl flash_read_status 1853 and w22, w0, w22 1854.L344: 1855 mov w0, 96 1856 str w0, [x19, 2056] 1857 and w0, w20, 255 1858 str w0, [x19, 2052] 1859 lsr w0, w20, 8 1860 str w0, [x19, 2052] 1861 lsr w0, w20, 16 1862 str w0, [x19, 2052] 1863 ldrb w0, [x24, #:lo12:.LANCHOR30] 1864 cbz w0, .L345 1865 lsr w20, w20, 24 1866 str w20, [x19, 2052] 1867.L345: 1868 mov w0, 208 1869 str w0, [x19, 2056] 1870 mov w19, 5 1871 bl nandc_wait_flash_ready 1872 mov x0, x23 1873 bl flash_read_status 1874 mov w2, w0 1875 bl nandc_de_cs.constprop.31 1876 and w19, w2, w19 1877 orr w19, w19, w22 1878 cbz w19, .L346 1879 adrp x0, .LC32 1880 mov w1, w21 1881 add x0, x0, :lo12:.LC32 1882 bl printf 1883.L346: 1884 mov w0, w19 1885.L337: 1886 ldp x19, x20, [sp, 16] 1887 ldp x21, x22, [sp, 32] 1888 ldp x23, x24, [sp, 48] 1889 ldr x25, [sp, 64] 1890 ldp x29, x30, [sp], 80 1891 ret 1892.L341: 1893 bl zftl_flash_exit_slc_mode 1894 b .L342 1895.L348: 1896 mov w22, 0 1897 b .L344 1898.L347: 1899 mov w0, -1 1900 b .L337 1901 .size flash_erase_duplane_block, .-flash_erase_duplane_block 1902 .section .text.flash_erase_block_en,"ax",@progbits 1903 .align 2 1904 .global flash_erase_block_en 1905 .type flash_erase_block_en, %function 1906flash_erase_block_en: 1907 stp x29, x30, [sp, -80]! 1908 add x29, sp, 0 1909 stp x21, x22, [sp, 32] 1910 and w22, w0, 255 1911 adrp x0, .LANCHOR31 1912 stp x19, x20, [sp, 16] 1913 mov w19, 24 1914 stp x23, x24, [sp, 48] 1915 ldrb w0, [x0, #:lo12:.LANCHOR31] 1916 and w24, w1, 255 1917 stp x25, x26, [sp, 64] 1918 mov w23, w2 1919 sub w0, w19, w0 1920 mov w19, 1 1921 lsl w19, w19, w0 1922 adrp x0, .LANCHOR23 1923 sub w19, w19, #1 1924 mov x20, x0 1925 ldrb w1, [x0, #:lo12:.LANCHOR23] 1926 and w19, w19, w2 1927 cmp w1, w22 1928 bhi .L363 1929 adrp x1, .LANCHOR45 1930 adrp x0, .LC0 1931 mov w2, 757 1932 add x1, x1, :lo12:.LANCHOR45 1933 add x0, x0, :lo12:.LC0 1934 bl printf 1935.L363: 1936 ldrb w0, [x20, #:lo12:.LANCHOR23] 1937 cmp w0, w22 1938 bls .L370 1939 adrp x0, .LANCHOR29 1940 add x0, x0, :lo12:.LANCHOR29 1941 ldrb w21, [x0, w22, sxtw] 1942 adrp x0, .LANCHOR7 1943 ldr x26, [x0, #:lo12:.LANCHOR7] 1944 adrp x0, .LANCHOR19 1945 and x20, x21, 255 1946 ldr w0, [x0, #:lo12:.LANCHOR19] 1947 add x25, x20, 8 1948 add x25, x26, x25, lsl 8 1949 tbz x0, 4, .L365 1950 adrp x0, .LC33 1951 mov w3, w24 1952 mov w2, w23 1953 mov w1, w21 1954 add x0, x0, :lo12:.LC33 1955 bl printf 1956.L365: 1957 bl nandc_wait_flash_ready 1958 mov w0, w21 1959 bl nandc_cs 1960 mov w0, w21 1961 cbnz w24, .L366 1962 bl zftl_flash_enter_slc_mode 1963.L367: 1964 add x0, x26, x20, lsl 8 1965 mov w1, 96 1966 str w1, [x0, 2056] 1967 and w1, w19, 255 1968 str w1, [x0, 2052] 1969 lsr w1, w19, 8 1970 str w1, [x0, 2052] 1971 lsr w1, w19, 16 1972 str w1, [x0, 2052] 1973 adrp x1, .LANCHOR30 1974 ldrb w1, [x1, #:lo12:.LANCHOR30] 1975 cbz w1, .L368 1976 lsr w19, w19, 24 1977 str w19, [x0, 2052] 1978.L368: 1979 mov w1, 208 1980 str w1, [x0, 2056] 1981 bl nandc_wait_flash_ready 1982 mov x0, x25 1983 bl flash_read_status 1984 mov w3, w0 1985 bl nandc_de_cs.constprop.31 1986 mov w0, 5 1987 ands w3, w3, w0 1988 beq .L369 1989 adrp x0, .LANCHOR2 1990 mov w1, w22 1991 ldrh w2, [x0, #:lo12:.LANCHOR2] 1992 adrp x0, .LC34 1993 add x0, x0, :lo12:.LC34 1994 udiv w2, w23, w2 1995 bl printf 1996 mov w3, -1 1997.L369: 1998 mov w0, w3 1999.L362: 2000 ldp x19, x20, [sp, 16] 2001 ldp x21, x22, [sp, 32] 2002 ldp x23, x24, [sp, 48] 2003 ldp x25, x26, [sp, 64] 2004 ldp x29, x30, [sp], 80 2005 ret 2006.L366: 2007 bl zftl_flash_exit_slc_mode 2008 b .L367 2009.L370: 2010 mov w0, -1 2011 b .L362 2012 .size flash_erase_block_en, .-flash_erase_block_en 2013 .section .text.flash_erase_block,"ax",@progbits 2014 .align 2 2015 .global flash_erase_block 2016 .type flash_erase_block, %function 2017flash_erase_block: 2018 mov w2, w1 2019 mov w1, 0 2020 b flash_erase_block_en 2021 .size flash_erase_block, .-flash_erase_block 2022 .section .text.flash_erase_all,"ax",@progbits 2023 .align 2 2024 .global flash_erase_all 2025 .type flash_erase_all, %function 2026flash_erase_all: 2027 stp x29, x30, [sp, -80]! 2028 adrp x0, .LANCHOR32 2029 add x0, x0, :lo12:.LANCHOR32 2030 add x29, sp, 0 2031 stp x19, x20, [sp, 16] 2032 mov w19, 0 2033 stp x23, x24, [sp, 48] 2034 adrp x23, .LANCHOR2 2035 stp x21, x22, [sp, 32] 2036 add x23, x23, :lo12:.LANCHOR2 2037 ldrh w20, [x0, 14] 2038 adrp x22, .LANCHOR23 2039 str x25, [sp, 64] 2040 add x22, x22, :lo12:.LANCHOR23 2041 adrp x24, .LANCHOR29 2042 ldrb w1, [x0, 13] 2043 mul w20, w20, w1 2044 and w20, w20, 65535 2045.L383: 2046 ldrb w0, [x22] 2047 cmp w0, w19 2048 bhi .L386 2049 ldp x19, x20, [sp, 16] 2050 mov w1, 0 2051 ldp x21, x22, [sp, 32] 2052 adrp x0, .LC35 2053 ldp x23, x24, [sp, 48] 2054 add x0, x0, :lo12:.LC35 2055 ldr x25, [sp, 64] 2056 ldp x29, x30, [sp], 80 2057 b printf 2058.L386: 2059 add x0, x24, :lo12:.LANCHOR29 2060 mov w21, 0 2061 ldrb w25, [x0, w19, sxtw] 2062.L384: 2063 cmp w20, w21, uxth 2064 bhi .L385 2065 add w19, w19, 1 2066 and w19, w19, 65535 2067 b .L383 2068.L385: 2069 ldrh w1, [x23] 2070 mov w0, w25 2071 mul w1, w1, w21 2072 add w21, w21, 1 2073 bl flash_erase_block 2074 b .L384 2075 .size flash_erase_all, .-flash_erase_all 2076 .section .text.flash_start_plane_read,"ax",@progbits 2077 .align 2 2078 .global flash_start_plane_read 2079 .type flash_start_plane_read, %function 2080flash_start_plane_read: 2081 stp x29, x30, [sp, -96]! 2082 adrp x2, .LANCHOR31 2083 mov w3, 24 2084 add x29, sp, 0 2085 stp x19, x20, [sp, 16] 2086 ldrb w19, [x2, #:lo12:.LANCHOR31] 2087 mov w2, 1 2088 stp x21, x22, [sp, 32] 2089 ubfx x22, x0, 24, 2 2090 sub w3, w3, w19 2091 stp x23, x24, [sp, 48] 2092 lsl w19, w2, w19 2093 sub w19, w19, #1 2094 lsl w20, w2, w3 2095 sub w20, w20, #1 2096 and w23, w20, w0 2097 lsr w3, w0, w3 2098 adrp x0, .LANCHOR23 2099 and w19, w19, w3 2100 stp x25, x26, [sp, 64] 2101 and w19, w19, 255 2102 ldrb w0, [x0, #:lo12:.LANCHOR23] 2103 and w20, w20, w1 2104 stp x27, x28, [sp, 80] 2105 cmp w0, w19 2106 bhi .L389 2107 adrp x1, .LANCHOR46 2108 adrp x0, .LC0 2109 mov w2, 1148 2110 add x1, x1, :lo12:.LANCHOR46 2111 add x0, x0, :lo12:.LC0 2112 bl printf 2113.L389: 2114 adrp x0, .LANCHOR29 2115 add x0, x0, :lo12:.LANCHOR29 2116 adrp x25, .LANCHOR21 2117 ldrb w21, [x0, w19, sxtw] 2118 adrp x0, .LANCHOR7 2119 ldr x24, [x0, #:lo12:.LANCHOR7] 2120 mov w0, w21 2121 bl nandc_cs 2122 cbnz w22, .L390 2123 mov w0, w23 2124 bl slc_phy_page_address_calc 2125 mov w23, w0 2126 mov w0, w20 2127 bl slc_phy_page_address_calc 2128 mov w20, w0 2129 adrp x0, .LANCHOR0 2130 ldrb w0, [x0, #:lo12:.LANCHOR0] 2131 cbz w0, .L391 2132 mov w0, w21 2133 bl zftl_flash_enter_slc_mode 2134.L391: 2135 adrp x0, .LANCHOR25 2136 add x1, x0, :lo12:.LANCHOR25 2137 and x19, x21, 255 2138 and w4, w23, 255 2139 lsr w3, w23, 8 2140 and w28, w20, 255 2141 ldrb w2, [x1, 16] 2142 lsr w27, w20, 8 2143 lsr w26, w20, 16 2144 cmp w2, 1 2145 lsr w2, w23, 16 2146 bne .L393 2147 add x19, x24, x19, lsl 8 2148 ldrb w1, [x1, 8] 2149 str w1, [x19, 2056] 2150 adrp x1, .LANCHOR30 2151 str wzr, [x19, 2052] 2152 mov x21, x1 2153 str wzr, [x19, 2052] 2154 str w4, [x19, 2052] 2155 str w3, [x19, 2052] 2156 str w2, [x19, 2052] 2157 ldrb w2, [x1, #:lo12:.LANCHOR30] 2158 cbz w2, .L394 2159 lsr w23, w23, 24 2160 str w23, [x19, 2052] 2161.L394: 2162 add x0, x0, :lo12:.LANCHOR25 2163 ldrb w0, [x0, 9] 2164 str w0, [x19, 2056] 2165 bl nandc_wait_flash_ready 2166 ldr x0, [x25, #:lo12:.LANCHOR21] 2167 ldrb w0, [x0, 12] 2168 cmp w0, 3 2169 bne .L395 2170 cbz w22, .L395 2171 str w22, [x19, 2056] 2172.L395: 2173 str wzr, [x19, 2056] 2174 str wzr, [x19, 2052] 2175 str wzr, [x19, 2052] 2176 str w28, [x19, 2052] 2177 ldrb w0, [x21, #:lo12:.LANCHOR30] 2178 str w27, [x19, 2052] 2179 str w26, [x19, 2052] 2180 cbz w0, .L416 2181 lsr w20, w20, 24 2182 str w20, [x19, 2052] 2183.L416: 2184 ldp x21, x22, [sp, 32] 2185 mov w0, 48 2186 ldp x23, x24, [sp, 48] 2187 ldp x25, x26, [sp, 64] 2188 ldp x27, x28, [sp, 80] 2189 str w0, [x19, 2056] 2190 ldp x19, x20, [sp, 16] 2191 ldp x29, x30, [sp], 96 2192 ret 2193.L390: 2194 ldr x0, [x25, #:lo12:.LANCHOR21] 2195 ldrb w0, [x0, 12] 2196 cmp w0, 3 2197 bne .L392 2198 adrp x0, .LANCHOR35 2199 ldrb w0, [x0, #:lo12:.LANCHOR35] 2200 cbnz w0, .L392 2201 adrp x0, .LANCHOR36 2202 ldrb w0, [x0, #:lo12:.LANCHOR36] 2203 cbnz w0, .L392 2204 sxtw x0, w21 2205 add x0, x0, 8 2206 add x0, x24, x0, lsl 8 2207 str w22, [x0, 8] 2208 b .L391 2209.L392: 2210 mov w0, w21 2211 bl zftl_flash_exit_slc_mode 2212 b .L391 2213.L393: 2214 ldr x1, [x25, #:lo12:.LANCHOR21] 2215 ldrb w5, [x1, 7] 2216 cmp w5, 1 2217 bne .L398 2218 ldrb w5, [x1, 12] 2219 cmp w5, 2 2220 bne .L398 2221 add x21, x21, 8 2222 mov w5, 38 2223 add x21, x24, x21, lsl 8 2224 str w5, [x21, 8] 2225.L398: 2226 add x5, x0, :lo12:.LANCHOR25 2227 add x19, x24, x19, lsl 8 2228 ldrb w5, [x5, 8] 2229 str w5, [x19, 2056] 2230 str w4, [x19, 2052] 2231 str w3, [x19, 2052] 2232 str w2, [x19, 2052] 2233 ldrb w1, [x1, 12] 2234 cmp w1, 3 2235 bne .L399 2236 cbz w22, .L399 2237 str w22, [x19, 2056] 2238.L399: 2239 add x0, x0, :lo12:.LANCHOR25 2240 ldrb w0, [x0, 9] 2241 str w0, [x19, 2056] 2242 str w28, [x19, 2052] 2243 str w27, [x19, 2052] 2244 str w26, [x19, 2052] 2245 b .L416 2246 .size flash_start_plane_read, .-flash_start_plane_read 2247 .section .text.flash_set_interface_mode,"ax",@progbits 2248 .align 2 2249 .global flash_set_interface_mode 2250 .type flash_set_interface_mode, %function 2251flash_set_interface_mode: 2252 stp x29, x30, [sp, -80]! 2253 add x29, sp, 0 2254 stp x21, x22, [sp, 32] 2255 adrp x22, .LANCHOR47 2256 stp x19, x20, [sp, 16] 2257 adrp x21, .LANCHOR19 2258 stp x23, x24, [sp, 48] 2259 adrp x20, .LANCHOR48 2260 mov w23, w0 2261 add x22, x22, :lo12:.LANCHOR47 2262 add x20, x20, :lo12:.LANCHOR48 2263 add x21, x21, :lo12:.LANCHOR19 2264 str x25, [sp, 64] 2265 mov x25, 0 2266.L430: 2267 adrp x0, .LANCHOR7 2268 ldr x19, [x0, #:lo12:.LANCHOR7] 2269 lsl x0, x25, 3 2270 ldrb w24, [x0, x22] 2271 cmp w24, 69 2272 beq .L418 2273 add w0, w24, 119 2274 cmp w24, 44 2275 and w1, w0, 255 2276 cset w2, eq 2277 cmp w1, 18 2278 bhi .L431 2279 mov x0, 32769 2280 movk x0, 0x4, lsl 16 2281 lsr x0, x0, x1 2282 mvn x0, x0 2283.L419: 2284 and w0, w0, 1 2285 eor w0, w0, 1 2286 orr w0, w2, w0 2287 cbz w0, .L420 2288.L418: 2289 ldrb w1, [x20] 2290 cmp w23, 1 2291 bne .L421 2292 tbz x1, 0, .L420 2293 ldr w0, [x21] 2294 tbz x0, 12, .L422 2295 adrp x0, .LC36 2296 add x0, x0, :lo12:.LC36 2297 bl printf 2298.L422: 2299 add x0, x19, x25, lsl 8 2300 mov w1, 239 2301 cmp w24, 44 2302 str w1, [x0, 2056] 2303 mov w1, 137 2304 ccmp w24, w1, 4, ne 2305 mov w1, 1 2306 bne .L423 2307.L454: 2308 str w1, [x0, 2052] 2309 mov w1, 5 2310.L453: 2311 str w1, [x0, 2048] 2312.L428: 2313 str wzr, [x0, 2048] 2314 str wzr, [x0, 2048] 2315 str wzr, [x0, 2048] 2316.L420: 2317 add x25, x25, 1 2318 cmp x25, 4 2319 bne .L430 2320 bl nandc_wait_flash_ready 2321 ldr x25, [sp, 64] 2322 mov w0, 0 2323 ldp x19, x20, [sp, 16] 2324 ldp x21, x22, [sp, 32] 2325 ldp x23, x24, [sp, 48] 2326 ldp x29, x30, [sp], 80 2327 ret 2328.L431: 2329 mov x0, 1 2330 b .L419 2331.L423: 2332 cmp w24, 155 2333 beq .L454 2334 mov w2, 128 2335 str w2, [x0, 2052] 2336 b .L453 2337.L421: 2338 tbz x1, 2, .L420 2339 ldr w0, [x21] 2340 tbz x0, 12, .L426 2341 adrp x0, .LC37 2342 add x0, x0, :lo12:.LC37 2343 bl printf 2344.L426: 2345 add x0, x19, x25, lsl 8 2346 mov w1, 239 2347 cmp w24, 44 2348 str w1, [x0, 2056] 2349 mov w1, 137 2350 ccmp w24, w1, 4, ne 2351 bne .L427 2352 mov w1, 1 2353 str w1, [x0, 2052] 2354 mov w1, 35 2355 b .L453 2356.L427: 2357 cmp w24, 155 2358 bne .L429 2359 mov w1, 1 2360 str w1, [x0, 2052] 2361 mov w1, 37 2362 b .L453 2363.L429: 2364 mov w1, 128 2365 str w1, [x0, 2052] 2366 str wzr, [x0, 2048] 2367 b .L428 2368 .size flash_set_interface_mode, .-flash_set_interface_mode 2369 .section .text.mt_auto_read_calibration_config,"ax",@progbits 2370 .align 2 2371 .type mt_auto_read_calibration_config, %function 2372mt_auto_read_calibration_config: 2373 stp x29, x30, [sp, -32]! 2374 add x29, sp, 0 2375 stp x19, x20, [sp, 16] 2376 mov w20, w1 2377 and w19, w0, 255 2378 bl nandc_wait_flash_ready 2379 adrp x1, .LANCHOR7 2380 ubfiz x0, x19, 8, 8 2381 ldr x19, [x1, #:lo12:.LANCHOR7] 2382 add x19, x19, x0 2383 mov w0, 239 2384 str w0, [x19, 2056] 2385 mov w0, 150 2386 str w0, [x19, 2052] 2387 mov x0, 1 2388 bl udelay 2389 str w20, [x19, 2048] 2390 str wzr, [x19, 2048] 2391 str wzr, [x19, 2048] 2392 str wzr, [x19, 2048] 2393 ldp x19, x20, [sp, 16] 2394 ldp x29, x30, [sp], 32 2395 ret 2396 .size mt_auto_read_calibration_config, .-mt_auto_read_calibration_config 2397 .section .text.flash_reset,"ax",@progbits 2398 .align 2 2399 .global flash_reset 2400 .type flash_reset, %function 2401flash_reset: 2402 adrp x1, .LANCHOR7 2403 ubfiz x0, x0, 8, 8 2404 add x0, x0, 2048 2405 ldr x1, [x1, #:lo12:.LANCHOR7] 2406 add x1, x1, x0 2407 mov w0, 255 2408 str w0, [x1, 8] 2409 b nandc_wait_flash_ready 2410 .size flash_reset, .-flash_reset 2411 .section .text.flash_read_id,"ax",@progbits 2412 .align 2 2413 .global flash_read_id 2414 .type flash_read_id, %function 2415flash_read_id: 2416 stp x29, x30, [sp, -48]! 2417 add x29, sp, 0 2418 str x21, [sp, 32] 2419 and w21, w0, 255 2420 adrp x0, .LANCHOR7 2421 stp x19, x20, [sp, 16] 2422 mov x19, x1 2423 ldr x20, [x0, #:lo12:.LANCHOR7] 2424 mov w0, w21 2425 bl flash_reset 2426 mov w0, w21 2427 bl nandc_cs 2428 ubfiz x0, x21, 8, 8 2429 add x20, x20, x0 2430 mov w0, 144 2431 str w0, [x20, 2056] 2432 mov x0, 1 2433 str wzr, [x20, 2052] 2434 bl udelay 2435 ldr w0, [x20, 2048] 2436 strb w0, [x19] 2437 ldr w0, [x20, 2048] 2438 strb w0, [x19, 1] 2439 ldr w0, [x20, 2048] 2440 strb w0, [x19, 2] 2441 ldr w0, [x20, 2048] 2442 strb w0, [x19, 3] 2443 ldr w0, [x20, 2048] 2444 strb w0, [x19, 4] 2445 ldr w0, [x20, 2048] 2446 strb w0, [x19, 5] 2447 ldr w0, [x20, 2048] 2448 strb w0, [x19, 6] 2449 ldr w0, [x20, 2048] 2450 strb w0, [x19, 7] 2451 bl nandc_de_cs.constprop.31 2452 ldrb w2, [x19] 2453 sub w0, w2, #1 2454 and w0, w0, 255 2455 cmp w0, 253 2456 bhi .L458 2457 ldrb w7, [x19, 5] 2458 add w1, w21, 1 2459 ldrb w6, [x19, 4] 2460 adrp x0, .LC38 2461 ldrb w5, [x19, 3] 2462 add x0, x0, :lo12:.LC38 2463 ldrb w4, [x19, 2] 2464 ldrb w3, [x19, 1] 2465 ldr x21, [sp, 32] 2466 ldp x19, x20, [sp, 16] 2467 ldp x29, x30, [sp], 48 2468 b printf 2469.L458: 2470 ldp x19, x20, [sp, 16] 2471 ldr x21, [sp, 32] 2472 ldp x29, x30, [sp], 48 2473 ret 2474 .size flash_read_id, .-flash_read_id 2475 .section .text.flash_read_spare,"ax",@progbits 2476 .align 2 2477 .global flash_read_spare 2478 .type flash_read_spare, %function 2479flash_read_spare: 2480 stp x29, x30, [sp, -32]! 2481 ubfiz x0, x0, 8, 8 2482 add x29, sp, 0 2483 stp x19, x20, [sp, 16] 2484 mov x20, x2 2485 adrp x2, .LANCHOR32+9 2486 ldrb w3, [x2, #:lo12:.LANCHOR32+9] 2487 adrp x2, .LANCHOR7 2488 ldr x19, [x2, #:lo12:.LANCHOR7] 2489 lsl w3, w3, 9 2490 add x19, x19, x0 2491 and w0, w1, 255 2492 str wzr, [x19, 2056] 2493 str w3, [x19, 2052] 2494 lsr w3, w3, 8 2495 str w3, [x19, 2052] 2496 str w0, [x19, 2052] 2497 lsr w0, w1, 8 2498 str w0, [x19, 2052] 2499 lsr w1, w1, 16 2500 str w1, [x19, 2052] 2501 mov w0, 48 2502 str w0, [x19, 2056] 2503 bl nandc_wait_flash_ready 2504 ldr w0, [x19, 2048] 2505 strb w0, [x20] 2506 ldp x19, x20, [sp, 16] 2507 ldp x29, x30, [sp], 32 2508 ret 2509 .size flash_read_spare, .-flash_read_spare 2510 .section .text.flash_read_otp_data,"ax",@progbits 2511 .align 2 2512 .global flash_read_otp_data 2513 .type flash_read_otp_data, %function 2514flash_read_otp_data: 2515 stp x29, x30, [sp, -48]! 2516 and w4, w0, 255 2517 adrp x0, .LANCHOR7 2518 add x29, sp, 0 2519 stp x19, x20, [sp, 16] 2520 mov w20, w1 2521 ldr x19, [x0, #:lo12:.LANCHOR7] 2522 mov w0, w4 2523 stp x21, x22, [sp, 32] 2524 mov x22, x2 2525 bl nandc_cs 2526 ubfiz x4, x4, 8, 8 2527 add x19, x19, x4 2528 mov w0, 239 2529 mov w21, 144 2530 str w0, [x19, 2056] 2531 mov x0, 1 2532 str w21, [x19, 2052] 2533 bl udelay 2534 mov w0, 1 2535 str w0, [x19, 2048] 2536 str wzr, [x19, 2048] 2537 str wzr, [x19, 2048] 2538 str wzr, [x19, 2048] 2539 bl nandc_wait_flash_ready 2540 mov w0, 238 2541 str w0, [x19, 2056] 2542 str w21, [x19, 2052] 2543 mov w1, w20 2544 adrp x0, .LC39 2545 add x0, x0, :lo12:.LC39 2546 ldr w2, [x19, 2048] 2547 ldr w3, [x19, 2048] 2548 ldr w4, [x19, 2048] 2549 bl printf 2550 bl nandc_wait_flash_ready 2551 str wzr, [x19, 2056] 2552 str wzr, [x19, 2052] 2553 and w0, w20, 255 2554 str wzr, [x19, 2052] 2555 str w0, [x19, 2052] 2556 lsr w0, w20, 8 2557 str w0, [x19, 2052] 2558 lsr w20, w20, 16 2559 str w20, [x19, 2052] 2560 mov w0, 48 2561 str w0, [x19, 2056] 2562 bl nandc_wait_flash_ready 2563 mov x0, 0 2564.L464: 2565 ldr w1, [x19, 2048] 2566 strb w1, [x22, x0] 2567 add x0, x0, 1 2568 cmp x0, 16384 2569 bne .L464 2570 mov w0, 239 2571 str w0, [x19, 2056] 2572 mov w0, 144 2573 str w0, [x19, 2052] 2574 mov x0, 1 2575 bl udelay 2576 ldp x21, x22, [sp, 32] 2577 str wzr, [x19, 2048] 2578 str wzr, [x19, 2048] 2579 str wzr, [x19, 2048] 2580 str wzr, [x19, 2048] 2581 ldp x19, x20, [sp, 16] 2582 ldp x29, x30, [sp], 48 2583 b nandc_de_cs.constprop.31 2584 .size flash_read_otp_data, .-flash_read_otp_data 2585 .section .text.sandisk_prog_test_bad_block,"ax",@progbits 2586 .align 2 2587 .global sandisk_prog_test_bad_block 2588 .type sandisk_prog_test_bad_block, %function 2589sandisk_prog_test_bad_block: 2590 stp x29, x30, [sp, -48]! 2591 and x2, x0, 255 2592 mov x0, x2 2593 add x2, x2, 8 2594 add x29, sp, 0 2595 stp x21, x22, [sp, 32] 2596 mov w22, w1 2597 adrp x1, .LANCHOR7 2598 stp x19, x20, [sp, 16] 2599 adrp x20, .LANCHOR32 2600 ldr x19, [x1, #:lo12:.LANCHOR7] 2601 add x1, x20, :lo12:.LANCHOR32 2602 ldrb w1, [x1, 29] 2603 add x2, x19, x2, lsl 8 2604 cbz w1, .L468 2605.L483: 2606 ubfiz x0, x0, 8, 8 2607 str w1, [x2, 8] 2608 add x19, x19, x0 2609 mov w0, 128 2610 str w0, [x19, 2056] 2611 and w0, w22, 255 2612 str wzr, [x19, 2052] 2613 str wzr, [x19, 2052] 2614 str w0, [x19, 2052] 2615 lsr w0, w22, 8 2616 str w0, [x19, 2052] 2617 lsr w0, w22, 16 2618 str w0, [x19, 2052] 2619 mov w0, 16 2620 str w0, [x19, 2056] 2621 bl nandc_wait_flash_ready 2622 mov w0, 112 2623 str w0, [x19, 2056] 2624 mov x0, 1 2625 bl udelay 2626 ldr w2, [x19, 2048] 2627 cmp w2, 255 2628 bne .L470 2629 ldr w2, [x19, 2048] 2630.L470: 2631 mov w0, 5 2632 ands w21, w2, w0 2633 beq .L471 2634 adrp x0, .LANCHOR19 2635 ldr w0, [x0, #:lo12:.LANCHOR19] 2636 tbz x0, 12, .L471 2637 adrp x0, .LC40 2638 mov w1, w22 2639 add x0, x0, :lo12:.LC40 2640 bl printf 2641.L471: 2642 add x20, x20, :lo12:.LANCHOR32 2643 ldrb w0, [x20, 30] 2644 cbz w0, .L467 2645 str w0, [x19, 2056] 2646.L467: 2647 mov w0, w21 2648 ldp x19, x20, [sp, 16] 2649 ldp x21, x22, [sp, 32] 2650 ldp x29, x30, [sp], 48 2651 ret 2652.L468: 2653 mov w1, 162 2654 b .L483 2655 .size sandisk_prog_test_bad_block, .-sandisk_prog_test_bad_block 2656 .section .text.nand_flash_exit_boot_rom_slc_mode,"ax",@progbits 2657 .align 2 2658 .type nand_flash_exit_boot_rom_slc_mode, %function 2659nand_flash_exit_boot_rom_slc_mode: 2660 stp x29, x30, [sp, -48]! 2661 adrp x0, .LANCHOR7 2662 mov w1, 137 2663 add x29, sp, 0 2664 stp x19, x20, [sp, 16] 2665 adrp x20, .LANCHOR33 2666 ldr x19, [x0, #:lo12:.LANCHOR7] 2667 adrp x0, .LANCHOR47 2668 str x21, [sp, 32] 2669 ldrb w0, [x0, #:lo12:.LANCHOR47] 2670 cmp w0, 44 2671 ccmp w0, w1, 4, ne 2672 bne .L485 2673 mov w0, 223 2674 str w0, [x19, 2056] 2675 adrp x0, .LANCHOR32+12 2676 mov w1, 4 2677 ldrb w0, [x0, #:lo12:.LANCHOR32+12] 2678 cmp w0, 2 2679 csel w0, w0, w1, eq 2680 strb w0, [x20, #:lo12:.LANCHOR33] 2681 bl nandc_wait_flash_ready 2682 mov w0, 239 2683 str w0, [x19, 2056] 2684 mov w0, 145 2685 str w0, [x19, 2052] 2686 mov x0, 1 2687 bl udelay 2688 ldrb w0, [x20, #:lo12:.LANCHOR33] 2689 str w0, [x19, 2048] 2690 str wzr, [x19, 2048] 2691 str wzr, [x19, 2048] 2692 str wzr, [x19, 2048] 2693.L494: 2694 ldp x19, x20, [sp, 16] 2695 ldr x21, [sp, 32] 2696 ldp x29, x30, [sp], 48 2697 b nandc_wait_flash_ready 2698.L485: 2699 cmp w0, 173 2700 bne .L487 2701 add x19, x19, 2048 2702 mov w0, 190 2703 str w0, [x19, 8] 2704 bl nandc_wait_flash_ready 2705 mov w0, 223 2706 str w0, [x19, 8] 2707 adrp x0, .LANCHOR32+12 2708 mov w1, 4 2709 ldrb w0, [x0, #:lo12:.LANCHOR32+12] 2710 cmp w0, 2 2711 csel w0, w0, w1, eq 2712 strb w0, [x20, #:lo12:.LANCHOR33] 2713 b .L494 2714.L487: 2715 strb wzr, [x20, #:lo12:.LANCHOR33] 2716 mov w0, 0 2717 ldp x19, x20, [sp, 16] 2718 ldr x21, [sp, 32] 2719 ldp x29, x30, [sp], 48 2720 b zftl_flash_exit_slc_mode 2721 .size nand_flash_exit_boot_rom_slc_mode, .-nand_flash_exit_boot_rom_slc_mode 2722 .section .text.nandc_rdy_status,"ax",@progbits 2723 .align 2 2724 .global nandc_rdy_status 2725 .type nandc_rdy_status, %function 2726nandc_rdy_status: 2727 adrp x0, .LANCHOR7 2728 sub sp, sp, #16 2729 ldr x0, [x0, #:lo12:.LANCHOR7] 2730 ldr w0, [x0] 2731 str w0, [sp, 8] 2732 ldr w0, [sp, 8] 2733 add sp, sp, 16 2734 ubfx x0, x0, 9, 1 2735 ret 2736 .size nandc_rdy_status, .-nandc_rdy_status 2737 .section .text.nandc_bch_sel,"ax",@progbits 2738 .align 2 2739 .global nandc_bch_sel 2740 .type nandc_bch_sel, %function 2741nandc_bch_sel: 2742 sub sp, sp, #16 2743 str wzr, [sp, 8] 2744 ldr w1, [sp, 8] 2745 orr w1, w1, 1 2746 str w1, [sp, 8] 2747 adrp x1, .LANCHOR49 2748 strb w0, [x1, #:lo12:.LANCHOR49] 2749 adrp x1, .LANCHOR27 2750 ldrb w1, [x1, #:lo12:.LANCHOR27] 2751 cmp w1, 9 2752 adrp x1, .LANCHOR7 2753 bne .L498 2754 ldr x1, [x1, #:lo12:.LANCHOR7] 2755 cmp w0, 70 2756 ldr w2, [sp, 8] 2757 str w2, [x1, 16] 2758 beq .L504 2759 cmp w0, 60 2760 beq .L505 2761 cmp w0, 40 2762 cset w0, eq 2763 add w0, w0, 1 2764.L499: 2765 str wzr, [sp] 2766 ldr w2, [sp] 2767 bfi w2, w0, 25, 3 2768 str w2, [sp] 2769 ldr w0, [sp] 2770 orr w0, w0, 1 2771 str w0, [sp] 2772 ldr w0, [sp] 2773 str w0, [x1, 32] 2774.L497: 2775 add sp, sp, 16 2776 ret 2777.L504: 2778 mov w0, 0 2779 b .L499 2780.L505: 2781 mov w0, 3 2782 b .L499 2783.L498: 2784 ldr x2, [x1, #:lo12:.LANCHOR7] 2785 mov w3, 16 2786 ldr w1, [sp, 8] 2787 cmp w0, w3 2788 str w1, [x2, 8] 2789 str wzr, [sp] 2790 ldr w1, [sp] 2791 bfi w1, w3, 8, 8 2792 str w1, [sp] 2793 ldr w1, [sp] 2794 and w1, w1, -262145 2795 str w1, [sp] 2796 bne .L501 2797.L508: 2798 ldr w0, [sp] 2799 and w0, w0, -17 2800 b .L509 2801.L501: 2802 cmp w0, 24 2803 bne .L503 2804 ldr w0, [sp] 2805 orr w0, w0, 16 2806.L509: 2807 str w0, [sp] 2808 b .L502 2809.L503: 2810 ldr w1, [sp] 2811 cmp w0, 40 2812 orr w1, w1, 262144 2813 str w1, [sp] 2814 ldr w1, [sp] 2815 orr w1, w1, 16 2816 str w1, [sp] 2817 beq .L508 2818.L502: 2819 ldr w0, [sp] 2820 orr w0, w0, 1 2821 str w0, [sp] 2822 ldr w0, [sp] 2823 str w0, [x2, 12] 2824 b .L497 2825 .size nandc_bch_sel, .-nandc_bch_sel 2826 .section .text.zftl_nandc_get_irq_status,"ax",@progbits 2827 .align 2 2828 .global zftl_nandc_get_irq_status 2829 .type zftl_nandc_get_irq_status, %function 2830zftl_nandc_get_irq_status: 2831 adrp x1, .LANCHOR27 2832 ldrb w1, [x1, #:lo12:.LANCHOR27] 2833 cmp w1, 9 2834 bne .L511 2835 ldr w0, [x0, 296] 2836 ret 2837.L511: 2838 ldr w0, [x0, 372] 2839 ret 2840 .size zftl_nandc_get_irq_status, .-zftl_nandc_get_irq_status 2841 .section .text.rk_nandc_flash_ready,"ax",@progbits 2842 .align 2 2843 .global rk_nandc_flash_ready 2844 .type rk_nandc_flash_ready, %function 2845rk_nandc_flash_ready: 2846 ret 2847 .size rk_nandc_flash_ready, .-rk_nandc_flash_ready 2848 .section .text.nandc_iqr_wait_flash_ready,"ax",@progbits 2849 .align 2 2850 .global nandc_iqr_wait_flash_ready 2851 .type nandc_iqr_wait_flash_ready, %function 2852nandc_iqr_wait_flash_ready: 2853 ret 2854 .size nandc_iqr_wait_flash_ready, .-nandc_iqr_wait_flash_ready 2855 .section .text.rk_nandc_flash_xfer_completed,"ax",@progbits 2856 .align 2 2857 .global rk_nandc_flash_xfer_completed 2858 .type rk_nandc_flash_xfer_completed, %function 2859rk_nandc_flash_xfer_completed: 2860 ret 2861 .size rk_nandc_flash_xfer_completed, .-rk_nandc_flash_xfer_completed 2862 .section .text.nandc_xfer_start,"ax",@progbits 2863 .align 2 2864 .global nandc_xfer_start 2865 .type nandc_xfer_start, %function 2866nandc_xfer_start: 2867 stp x29, x30, [sp, -80]! 2868 and w1, w1, 255 2869 adrp x4, .LANCHOR52 2870 add x29, sp, 0 2871 stp x19, x20, [sp, 16] 2872 and w20, w0, 255 2873 adrp x0, .LANCHOR27 2874 str x21, [sp, 32] 2875 and w6, w20, 1 2876 adrp x21, .LANCHOR7 2877 ldrb w0, [x0, #:lo12:.LANCHOR27] 2878 cmp w0, 9 2879 add w0, w1, 1 2880 bne .L517 2881 str wzr, [x29, 56] 2882 mov w5, 1 2883 ubfx x0, x0, 1, 6 2884 ldr w1, [x29, 56] 2885 bfi w1, w6, 1, 1 2886 str w1, [x29, 56] 2887 ldr w1, [x29, 56] 2888 orr w1, w1, 8 2889 str w1, [x29, 56] 2890 ldr w1, [x29, 56] 2891 bfi w1, w5, 5, 2 2892 str w1, [x29, 56] 2893 ldr w1, [x29, 56] 2894 orr w1, w1, 536870912 2895 str w1, [x29, 56] 2896 ldr w1, [x29, 56] 2897 orr w1, w1, 1024 2898 str w1, [x29, 56] 2899 ldr w1, [x29, 56] 2900 and w1, w1, -17 2901 str w1, [x29, 56] 2902 ldr w1, [x29, 56] 2903 bfi w1, w0, 22, 6 2904 str w1, [x29, 56] 2905 ldr w0, [x29, 56] 2906 orr w0, w0, 128 2907 str w0, [x29, 56] 2908 adrp x0, .LANCHOR50 2909 ldrb w0, [x0, #:lo12:.LANCHOR50] 2910 cbz w0, .L518 2911 adrp x0, .LANCHOR51 2912 ldrb w0, [x0, #:lo12:.LANCHOR51] 2913 cbz w0, .L518 2914 ldr w0, [x29, 56] 2915 orr w0, w0, 512 2916 str w0, [x29, 56] 2917.L518: 2918 ldr w0, [x29, 56] 2919 add x19, x4, :lo12:.LANCHOR52 2920 add x1, x2, 63 2921 and x1, x1, -64 2922 ubfx x0, x0, 22, 6 2923 stp x2, x3, [x19, 8] 2924 ubfiz x0, x0, 10, 6 2925 stp w2, w3, [x19, 24] 2926 add x1, x1, x0 2927 and x0, x2, -64 2928 bl flush_dcache_range 2929 ldr x0, [x19, 16] 2930 add x1, x0, 63 2931 and x0, x0, -64 2932 and x1, x1, -64 2933 add x1, x1, 64 2934 bl flush_dcache_range 2935 mov w0, 1 2936 str w0, [x19, 32] 2937 ldr x0, [x21, #:lo12:.LANCHOR7] 2938 mov w2, 16 2939 ldr w1, [x19, 24] 2940 cmp w20, 0 2941 str w1, [x0, 52] 2942 ldr w1, [x19, 28] 2943 str w1, [x0, 56] 2944 ldr w1, [x0, 48] 2945 str w1, [x29, 64] 2946 ldr w1, [x29, 64] 2947 bfi w1, w2, 9, 5 2948 str w1, [x29, 64] 2949 mov w2, 2 2950 ldr w1, [x29, 64] 2951 orr w1, w1, 448 2952 str w1, [x29, 64] 2953 ldr w1, [x29, 64] 2954 bfi w1, w2, 3, 3 2955 str w1, [x29, 64] 2956 cset w2, eq 2957 ldr w1, [x29, 64] 2958 orr w1, w1, 4 2959 str w1, [x29, 64] 2960 ldr w1, [x29, 64] 2961 bfi w1, w2, 1, 1 2962 str w1, [x29, 64] 2963 ldr w1, [x29, 64] 2964 orr w1, w1, 1 2965 str w1, [x29, 64] 2966 adrp x1, .LANCHOR53 2967 ldrh w2, [x1, #:lo12:.LANCHOR53] 2968 ldr w1, [x29, 64] 2969 bfi w1, w2, 16, 11 2970 str w1, [x29, 64] 2971 ldr w1, [x29, 64] 2972 str w1, [x0, 48] 2973 ldr w1, [x29, 56] 2974 str w1, [x0, 16] 2975 ldr w1, [x29, 56] 2976 orr w1, w1, 4 2977 str w1, [x29, 56] 2978 ldr w1, [x29, 56] 2979 str w1, [x0, 16] 2980.L516: 2981 ldp x19, x20, [sp, 16] 2982 ldr x21, [sp, 32] 2983 ldp x29, x30, [sp], 80 2984 ret 2985.L517: 2986 ldr x5, [x21, #:lo12:.LANCHOR7] 2987 mov w7, 16 2988 ubfx x0, x0, 1, 6 2989 ldr w5, [x5, 12] 2990 str w5, [x29, 72] 2991 ldr w5, [x29, 72] 2992 bfi w5, w7, 8, 8 2993 str w5, [x29, 72] 2994 ldr w5, [x29, 72] 2995 and w5, w5, -9 2996 str w5, [x29, 72] 2997 ldr w5, [x29, 72] 2998 and w5, w5, -225 2999 str w5, [x29, 72] 3000 str wzr, [x29, 56] 3001 ldr w5, [x29, 56] 3002 bfi w5, w6, 1, 1 3003 str w5, [x29, 56] 3004 mov w6, 1 3005 ldr w5, [x29, 56] 3006 orr w5, w5, 8 3007 str w5, [x29, 56] 3008 ldr w5, [x29, 56] 3009 bfi w5, w6, 5, 2 3010 str w5, [x29, 56] 3011 ldr w5, [x29, 56] 3012 orr w5, w5, 536870912 3013 str w5, [x29, 56] 3014 ldr w5, [x29, 56] 3015 orr w5, w5, 1024 3016 str w5, [x29, 56] 3017 ldr w5, [x29, 56] 3018 and w5, w5, -17 3019 str w5, [x29, 56] 3020 ldr w5, [x29, 56] 3021 bfi w5, w0, 22, 6 3022 str w5, [x29, 56] 3023 cbz w20, .L520 3024 adrp x0, .LANCHOR49 3025 ubfx x1, x1, 1, 7 3026 ldr x8, [x4, #:lo12:.LANCHOR52] 3027 add x1, x3, x1, lsl 2 3028 ldrb w0, [x0, #:lo12:.LANCHOR49] 3029 mov w5, 64 3030 cmp w0, 25 3031 mov w0, 128 3032 csel w5, w5, w0, cc 3033 mov w0, 0 3034.L522: 3035 add w7, w5, w0 3036 cmp x3, x1 3037 bne .L523 3038.L524: 3039 add x19, x4, :lo12:.LANCHOR52 3040 ldr x0, [x4, #:lo12:.LANCHOR52] 3041 add x1, x2, 63 3042 and x1, x1, -64 3043 stp x2, x0, [x19, 8] 3044 stp w2, w0, [x19, 24] 3045 ldr w0, [x29, 56] 3046 ubfx x0, x0, 22, 6 3047 ubfiz x0, x0, 10, 6 3048 add x1, x1, x0 3049 and x0, x2, -64 3050 bl flush_dcache_range 3051 ldr x0, [x19, 16] 3052 ldr w1, [x29, 56] 3053 add x2, x0, 63 3054 and x0, x0, -64 3055 and x2, x2, -64 3056 ubfx x1, x1, 22, 6 3057 ubfiz x1, x1, 7, 6 3058 add x1, x2, x1 3059 bl flush_dcache_range 3060 mov w0, 1 3061 str w0, [x19, 32] 3062 ldr x0, [x21, #:lo12:.LANCHOR7] 3063 mov w2, 16 3064 ldr w1, [x19, 24] 3065 cmp w20, 0 3066 str w1, [x0, 20] 3067 ldr w1, [x19, 28] 3068 str w1, [x0, 24] 3069 str wzr, [x29, 64] 3070 ldr w1, [x29, 64] 3071 bfi w1, w2, 9, 5 3072 str w1, [x29, 64] 3073 mov w2, 2 3074 ldr w1, [x29, 64] 3075 orr w1, w1, 448 3076 str w1, [x29, 64] 3077 ldr w1, [x29, 64] 3078 bfi w1, w2, 3, 3 3079 str w1, [x29, 64] 3080 cset w2, eq 3081 ldr w1, [x29, 64] 3082 orr w1, w1, 4 3083 str w1, [x29, 64] 3084 ldr w1, [x29, 64] 3085 bfi w1, w2, 1, 1 3086 str w1, [x29, 64] 3087 ldr w1, [x29, 64] 3088 orr w1, w1, 1 3089 str w1, [x29, 64] 3090 ldr w1, [x29, 64] 3091 str w1, [x0, 16] 3092 ldr w1, [x29, 72] 3093 str w1, [x0, 12] 3094 ldr w1, [x29, 56] 3095 str w1, [x0, 8] 3096 ldr w1, [x29, 56] 3097 orr w1, w1, 4 3098 str w1, [x29, 56] 3099 ldr w1, [x29, 56] 3100 str w1, [x0, 8] 3101 b .L516 3102.L523: 3103 ldrh w10, [x3] 3104 and x0, x0, 4294967292 3105 ldrh w6, [x3, 2] 3106 add x3, x3, 4 3107 orr x6, x10, x6, lsl 16 3108 str w6, [x8, x0] 3109 mov w0, w7 3110 b .L522 3111.L520: 3112 ldr x0, [x4, #:lo12:.LANCHOR52] 3113 str w6, [x0] 3114 b .L524 3115 .size nandc_xfer_start, .-nandc_xfer_start 3116 .section .text.nandc_set_seed,"ax",@progbits 3117 .align 2 3118 .global nandc_set_seed 3119 .type nandc_set_seed, %function 3120nandc_set_seed: 3121 and x0, x0, 127 3122 adrp x1, .LANCHOR54 3123 add x1, x1, :lo12:.LANCHOR54 3124 ldrh w0, [x1, x0, lsl 1] 3125 adrp x1, .LANCHOR51 3126 ldrb w2, [x1, #:lo12:.LANCHOR51] 3127 orr w1, w0, -1073741824 3128 cmp w2, 0 3129 csel w0, w1, w0, ne 3130 adrp x1, .LANCHOR27 3131 ldrb w1, [x1, #:lo12:.LANCHOR27] 3132 cmp w1, 9 3133 adrp x1, .LANCHOR7 3134 ldr x1, [x1, #:lo12:.LANCHOR7] 3135 bne .L535 3136 str w0, [x1, 520] 3137 ret 3138.L535: 3139 str w0, [x1, 336] 3140 ret 3141 .size nandc_set_seed, .-nandc_set_seed 3142 .section .text.zftl_flash_de_init,"ax",@progbits 3143 .align 2 3144 .global zftl_flash_de_init 3145 .type zftl_flash_de_init, %function 3146zftl_flash_de_init: 3147 stp x29, x30, [sp, -32]! 3148 add x29, sp, 0 3149 str x19, [sp, 16] 3150 bl nandc_wait_flash_ready 3151 adrp x0, .LANCHOR0 3152 ldrb w0, [x0, #:lo12:.LANCHOR0] 3153 cbz w0, .L540 3154 adrp x0, .LANCHOR24 3155 ldrb w0, [x0, #:lo12:.LANCHOR24] 3156 cbnz w0, .L540 3157 adrp x0, .LANCHOR27 3158 ldrb w0, [x0, #:lo12:.LANCHOR27] 3159 cmp w0, 9 3160 beq .L540 3161 mov w0, 0 3162 bl zftl_flash_exit_slc_mode 3163.L540: 3164 adrp x19, .LANCHOR26 3165 mov w0, 0 3166 bl hynix_reconfig_rr_para 3167 ldrb w0, [x19, #:lo12:.LANCHOR26] 3168 cbz w0, .L541 3169 adrp x0, .LANCHOR48 3170 ldrb w0, [x0, #:lo12:.LANCHOR48] 3171 tbz x0, 0, .L541 3172 mov w0, 1 3173 bl flash_set_interface_mode 3174 mov w0, 1 3175 bl nandc_set_if_mode 3176 strb wzr, [x19, #:lo12:.LANCHOR26] 3177.L541: 3178 adrp x3, .LANCHOR51 3179 ldrb w0, [x3, #:lo12:.LANCHOR51] 3180 cbz w0, .L542 3181 mov w0, 0 3182 strb wzr, [x3, #:lo12:.LANCHOR51] 3183 bl nandc_set_seed 3184 mov w0, 1 3185 strb w0, [x3, #:lo12:.LANCHOR51] 3186.L542: 3187 mov w0, 0 3188 ldr x19, [sp, 16] 3189 ldp x29, x30, [sp], 32 3190 ret 3191 .size zftl_flash_de_init, .-zftl_flash_de_init 3192 .section .text.nandc_randomizer_enable,"ax",@progbits 3193 .align 2 3194 .global nandc_randomizer_enable 3195 .type nandc_randomizer_enable, %function 3196nandc_randomizer_enable: 3197 adrp x1, .LANCHOR51 3198 strb w0, [x1, #:lo12:.LANCHOR51] 3199 ret 3200 .size nandc_randomizer_enable, .-nandc_randomizer_enable 3201 .section .text.nandc_get_chip_if,"ax",@progbits 3202 .align 2 3203 .global nandc_get_chip_if 3204 .type nandc_get_chip_if, %function 3205nandc_get_chip_if: 3206 adrp x1, .LANCHOR7 3207 ubfiz x0, x0, 8, 8 3208 add x0, x0, 2048 3209 ldr x1, [x1, #:lo12:.LANCHOR7] 3210 add x0, x1, x0 3211 ret 3212 .size nandc_get_chip_if, .-nandc_get_chip_if 3213 .section .text.buf_reinit,"ax",@progbits 3214 .align 2 3215 .global buf_reinit 3216 .type buf_reinit, %function 3217buf_reinit: 3218 adrp x0, .LANCHOR55 3219 add x1, x0, :lo12:.LANCHOR55 3220 mov w2, 0 3221.L562: 3222 and w3, w2, 255 3223 strb wzr, [x1, 2] 3224 add w4, w3, 1 3225 strb w3, [x1, 1] 3226 strb w4, [x1] 3227 add w2, w2, 1 3228 str xzr, [x1, 16] 3229 cmp w2, 16 3230 add x1, x1, 64 3231 bne .L562 3232 add x0, x0, :lo12:.LANCHOR55 3233 mov w1, -1 3234 strb w1, [x0, 960] 3235 adrp x0, .LANCHOR56 3236 strb wzr, [x0, #:lo12:.LANCHOR56] 3237 adrp x0, .LANCHOR57 3238 strb w2, [x0, #:lo12:.LANCHOR57] 3239 ret 3240 .size buf_reinit, .-buf_reinit 3241 .section .text.buf_add_tail,"ax",@progbits 3242 .align 2 3243 .global buf_add_tail 3244 .type buf_add_tail, %function 3245buf_add_tail: 3246 stp x29, x30, [sp, -48]! 3247 add x29, sp, 0 3248 stp x19, x20, [sp, 16] 3249 mov x19, x0 3250 str x21, [sp, 32] 3251 mov w0, -1 3252 strb w0, [x1] 3253 mov x20, x1 3254 ldrb w1, [x19] 3255 cmp w1, 255 3256 bne .L570 3257 ldrb w0, [x20, 1] 3258 cmp w0, 255 3259 bne .L566 3260 adrp x1, .LANCHOR58 3261 adrp x0, .LC0 3262 mov w2, 74 3263 add x1, x1, :lo12:.LANCHOR58 3264 add x0, x0, :lo12:.LC0 3265 bl printf 3266.L566: 3267 ldrb w0, [x20, 1] 3268 strb w0, [x19] 3269.L564: 3270 ldp x19, x20, [sp, 16] 3271 ldr x21, [sp, 32] 3272 ldp x29, x30, [sp], 48 3273 ret 3274.L570: 3275 adrp x0, .LANCHOR55 3276 add x2, x0, :lo12:.LANCHOR55 3277 mov x19, x0 3278.L571: 3279 sbfiz x0, x1, 6, 32 3280 mov w21, w1 3281 ldrb w1, [x2, x0] 3282 cmp w1, 255 3283 bne .L571 3284 ldrb w0, [x20, 1] 3285 cmp w0, 255 3286 bne .L568 3287 adrp x1, .LANCHOR58 3288 adrp x0, .LC0 3289 mov w2, 81 3290 add x1, x1, :lo12:.LANCHOR58 3291 add x0, x0, :lo12:.LC0 3292 bl printf 3293.L568: 3294 add x0, x19, :lo12:.LANCHOR55 3295 sbfiz x21, x21, 6, 32 3296 ldrb w1, [x20, 1] 3297 strb w1, [x0, x21] 3298 b .L564 3299 .size buf_add_tail, .-buf_add_tail 3300 .section .text.queue_read_cmd,"ax",@progbits 3301 .align 2 3302 .type queue_read_cmd, %function 3303queue_read_cmd: 3304 stp x29, x30, [sp, -32]! 3305 add x29, sp, 0 3306 str x19, [sp, 16] 3307 mov x19, x0 3308 mov w0, 48 3309 ldr w1, [x19, 40] 3310 bl flash_start_page_read 3311 strb wzr, [x19, 59] 3312 mov w0, 1 3313 strb w0, [x19, 58] 3314 mov w0, -1 3315 strb w0, [x19] 3316 mov x1, x19 3317 adrp x0, .LANCHOR59 3318 ldr x19, [sp, 16] 3319 add x0, x0, :lo12:.LANCHOR59 3320 ldp x29, x30, [sp], 32 3321 b buf_add_tail 3322 .size queue_read_cmd, .-queue_read_cmd 3323 .section .text.zbuf_free,"ax",@progbits 3324 .align 2 3325 .global zbuf_free 3326 .type zbuf_free, %function 3327zbuf_free: 3328 ldrb w1, [x0, 2] 3329 adrp x2, .LANCHOR56 3330 and w1, w1, 8 3331 strb w1, [x0, 2] 3332 cbz w1, .L576 3333 ldr w1, [x0, 36] 3334 cmn w1, #1 3335 beq .L576 3336 stp x29, x30, [sp, -16]! 3337 mov x1, x0 3338 add x0, x2, :lo12:.LANCHOR56 3339 add x29, sp, 0 3340 bl buf_add_tail 3341 adrp x1, .LANCHOR57 3342 ldp x29, x30, [sp], 16 3343 ldrb w0, [x1, #:lo12:.LANCHOR57] 3344 add w0, w0, 1 3345 strb w0, [x1, #:lo12:.LANCHOR57] 3346 ret 3347.L576: 3348 ldrb w1, [x2, #:lo12:.LANCHOR56] 3349 strb w1, [x0] 3350 adrp x1, .LANCHOR57 3351 ldrb w0, [x0, 1] 3352 strb w0, [x2, #:lo12:.LANCHOR56] 3353 ldrb w0, [x1, #:lo12:.LANCHOR57] 3354 add w0, w0, 1 3355 strb w0, [x1, #:lo12:.LANCHOR57] 3356 ret 3357 .size zbuf_free, .-zbuf_free 3358 .section .text.buf_alloc,"ax",@progbits 3359 .align 2 3360 .global buf_alloc 3361 .type buf_alloc, %function 3362buf_alloc: 3363 stp x29, x30, [sp, -32]! 3364 add x29, sp, 0 3365 stp x19, x20, [sp, 16] 3366 adrp x19, .LANCHOR57 3367 and w20, w0, 255 3368 ldrb w0, [x19, #:lo12:.LANCHOR57] 3369 cbz w0, .L589 3370.L592: 3371 adrp x2, .LANCHOR56 3372 adrp x1, .LANCHOR55 3373 add x0, x1, :lo12:.LANCHOR55 3374 ldrb w3, [x2, #:lo12:.LANCHOR56] 3375 ubfiz x4, x3, 6, 8 3376 add x0, x0, x4 3377 mov x4, x2 3378 cbz w20, .L590 3379.L591: 3380 add x1, x1, :lo12:.LANCHOR55 3381 sbfiz x3, x3, 6, 32 3382 add x2, x1, x3 3383 ldrb w5, [x1, x3] 3384 strb w5, [x4, #:lo12:.LANCHOR56] 3385 ldrb w4, [x19, #:lo12:.LANCHOR57] 3386 strh wzr, [x2, 50] 3387 sub w4, w4, #1 3388 strb w4, [x19, #:lo12:.LANCHOR57] 3389 mov w4, 1 3390 strb wzr, [x2, 56] 3391 strb w4, [x2, 2] 3392 mov w4, -1 3393 strb wzr, [x2, 57] 3394 strb w4, [x1, x3] 3395 mov w1, -1 3396 str xzr, [x2, 16] 3397 str w1, [x2, 36] 3398 b .L588 3399.L589: 3400 mov w2, 121 3401 adrp x1, .LANCHOR60 3402 adrp x0, .LC0 3403 add x1, x1, :lo12:.LANCHOR60 3404 add x0, x0, :lo12:.LC0 3405 bl printf 3406 ldrb w0, [x19, #:lo12:.LANCHOR57] 3407 cbnz w0, .L592 3408.L594: 3409 mov x0, 0 3410.L588: 3411 ldp x19, x20, [sp, 16] 3412 ldp x29, x30, [sp], 32 3413 ret 3414.L590: 3415 ldrb w2, [x19, #:lo12:.LANCHOR57] 3416 cmp w2, 1 3417 bne .L591 3418 b .L594 3419 .size buf_alloc, .-buf_alloc 3420 .section .text.buf_remove_buf,"ax",@progbits 3421 .align 2 3422 .global buf_remove_buf 3423 .type buf_remove_buf, %function 3424buf_remove_buf: 3425 ldrb w4, [x1, 1] 3426 ldrb w2, [x0] 3427 cmp w4, w2 3428 bne .L602 3429 ldrb w1, [x1] 3430 strb w1, [x0] 3431.L606: 3432 mov w0, 1 3433 ret 3434.L603: 3435 mov w3, w2 3436 sbfiz x2, x2, 6, 32 3437 ldrb w2, [x0, x2] 3438 cmp w4, w2 3439 bne .L604 3440 sbfiz x3, x3, 6, 32 3441 ldrb w2, [x1] 3442 strb w2, [x0, x3] 3443 mov w0, -1 3444 strb w0, [x1] 3445 b .L606 3446.L602: 3447 adrp x0, .LANCHOR55 3448 add x0, x0, :lo12:.LANCHOR55 3449.L604: 3450 cmp w2, 255 3451 bne .L603 3452 mov w0, 0 3453 ret 3454 .size buf_remove_buf, .-buf_remove_buf 3455 .section .text.buf_remove_free,"ax",@progbits 3456 .align 2 3457 .global buf_remove_free 3458 .type buf_remove_free, %function 3459buf_remove_free: 3460 stp x29, x30, [sp, -32]! 3461 add x29, sp, 0 3462 stp x19, x20, [sp, 16] 3463 adrp x19, .LANCHOR57 3464 mov x20, x0 3465 ldrb w0, [x19, #:lo12:.LANCHOR57] 3466 cbnz w0, .L608 3467 adrp x1, .LANCHOR61 3468 adrp x0, .LC0 3469 mov w2, 172 3470 add x1, x1, :lo12:.LANCHOR61 3471 add x0, x0, :lo12:.LC0 3472 bl printf 3473.L608: 3474 ldrb w0, [x19, #:lo12:.LANCHOR57] 3475 cbz w0, .L607 3476 mov x1, x20 3477 adrp x0, .LANCHOR56 3478 add x0, x0, :lo12:.LANCHOR56 3479 bl buf_remove_buf 3480 cmp w0, 1 3481 bne .L607 3482 ldrb w0, [x19, #:lo12:.LANCHOR57] 3483 sub w0, w0, #1 3484 strb w0, [x19, #:lo12:.LANCHOR57] 3485 ldrb w0, [x20, 2] 3486 orr w0, w0, 1 3487 strb w0, [x20, 2] 3488.L607: 3489 ldp x19, x20, [sp, 16] 3490 ldp x29, x30, [sp], 32 3491 ret 3492 .size buf_remove_free, .-buf_remove_free 3493 .section .text.dump_buf_info,"ax",@progbits 3494 .align 2 3495 .global dump_buf_info 3496 .type dump_buf_info, %function 3497dump_buf_info: 3498 sub sp, sp, #64 3499 adrp x0, .LANCHOR59 3500 stp x29, x30, [sp, 16] 3501 add x29, sp, 16 3502 ldrb w1, [x0, #:lo12:.LANCHOR59] 3503 stp x19, x20, [sp, 32] 3504 adrp x0, .LC41 3505 str x21, [sp, 48] 3506 add x0, x0, :lo12:.LC41 3507 adrp x19, .LANCHOR55 3508 add x19, x19, :lo12:.LANCHOR55 3509 bl printf 3510 adrp x20, .LC47 3511 adrp x0, .LANCHOR62 3512 add x20, x20, :lo12:.LC47 3513 add x21, x19, 1024 3514 ldrb w1, [x0, #:lo12:.LANCHOR62] 3515 adrp x0, .LC42 3516 add x0, x0, :lo12:.LC42 3517 bl printf 3518 adrp x0, .LANCHOR63 3519 ldrb w1, [x0, #:lo12:.LANCHOR63] 3520 adrp x0, .LC43 3521 add x0, x0, :lo12:.LC43 3522 bl printf 3523 adrp x0, .LANCHOR64 3524 ldrb w1, [x0, #:lo12:.LANCHOR64] 3525 adrp x0, .LC44 3526 add x0, x0, :lo12:.LC44 3527 bl printf 3528 adrp x0, .LANCHOR56 3529 ldrb w1, [x0, #:lo12:.LANCHOR56] 3530 adrp x0, .LC45 3531 add x0, x0, :lo12:.LC45 3532 bl printf 3533 adrp x0, .LANCHOR57 3534 ldrb w1, [x0, #:lo12:.LANCHOR57] 3535 adrp x0, .LC46 3536 add x0, x0, :lo12:.LC46 3537 bl printf 3538.L614: 3539 ldp w7, w0, [x19, 36] 3540 str w0, [sp] 3541 ldrb w5, [x19, 58] 3542 mov x0, x20 3543 ldrh w4, [x19, 50] 3544 add x19, x19, 64 3545 ldrb w3, [x19, -62] 3546 ldrb w2, [x19, -64] 3547 ldrb w1, [x19, -63] 3548 ldr w6, [x19, -12] 3549 bl printf 3550 cmp x19, x21 3551 bne .L614 3552 ldp x19, x20, [sp, 32] 3553 ldp x29, x30, [sp, 16] 3554 ldr x21, [sp, 48] 3555 add sp, sp, 64 3556 ret 3557 .size dump_buf_info, .-dump_buf_info 3558 .section .text.flash_check_bad_block,"ax",@progbits 3559 .align 2 3560 .global flash_check_bad_block 3561 .type flash_check_bad_block, %function 3562flash_check_bad_block: 3563 adrp x3, .LANCHOR32 3564 add x3, x3, :lo12:.LANCHOR32 3565 and w5, w0, 255 3566 lsr w4, w1, 5 3567 ldrb w0, [x3, 13] 3568 ldrh w2, [x3, 14] 3569 mul w2, w2, w0 3570 mov x0, 912 3571 and w2, w2, 65535 3572 add w2, w2, 31 3573 asr w2, w2, 5 3574 lsl w2, w2, 2 3575 umaddl x0, w2, w5, x0 3576 adrp x2, .LANCHOR6 3577 ldr x2, [x2, #:lo12:.LANCHOR6] 3578 add x0, x0, x4, uxtw 2 3579 ldr w0, [x2, x0] 3580 lsr w0, w0, w1 3581 and w0, w0, 1 3582 ret 3583 .size flash_check_bad_block, .-flash_check_bad_block 3584 .section .text.flash_mask_bad_block,"ax",@progbits 3585 .align 2 3586 .global flash_mask_bad_block 3587 .type flash_mask_bad_block, %function 3588flash_mask_bad_block: 3589 stp x29, x30, [sp, -48]! 3590 mov w2, w1 3591 add x29, sp, 0 3592 str x21, [sp, 32] 3593 and w21, w0, 255 3594 adrp x0, .LANCHOR32 3595 add x0, x0, :lo12:.LANCHOR32 3596 stp x19, x20, [sp, 16] 3597 mov w20, w1 3598 ldrh w19, [x0, 14] 3599 ldrb w1, [x0, 13] 3600 adrp x0, .LC48 3601 add x0, x0, :lo12:.LC48 3602 mul w19, w19, w1 3603 mov w1, w21 3604 bl printf 3605 and w19, w19, 65535 3606 lsr w0, w20, 5 3607 add w1, w19, 31 3608 mov x19, 912 3609 asr w1, w1, 5 3610 mov w2, 1 3611 lsl w1, w1, 2 3612 umaddl x1, w1, w21, x19 3613 ldr x21, [sp, 32] 3614 add x1, x1, x0, uxtw 2 3615 adrp x0, .LANCHOR6 3616 ldr x3, [x0, #:lo12:.LANCHOR6] 3617 lsl w0, w2, w20 3618 ldp x19, x20, [sp, 16] 3619 ldr w2, [x3, x1] 3620 orr w2, w2, w0 3621 str w2, [x3, x1] 3622 ldp x29, x30, [sp], 48 3623 ret 3624 .size flash_mask_bad_block, .-flash_mask_bad_block 3625 .section .text.ftl_gc_write_buf,"ax",@progbits 3626 .align 2 3627 .global ftl_gc_write_buf 3628 .type ftl_gc_write_buf, %function 3629ftl_gc_write_buf: 3630 stp x29, x30, [sp, -16]! 3631 add x29, sp, 0 3632 ldrb w1, [x0, 2] 3633 orr w1, w1, 2 3634 strb w1, [x0, 2] 3635 mov x1, x0 3636 adrp x0, .LANCHOR65 3637 add x0, x0, :lo12:.LANCHOR65 3638 bl buf_add_tail 3639 adrp x1, .LANCHOR66 3640 ldp x29, x30, [sp], 16 3641 ldrb w0, [x1, #:lo12:.LANCHOR66] 3642 add w0, w0, 1 3643 and w0, w0, 255 3644 strb w0, [x1, #:lo12:.LANCHOR66] 3645 ret 3646 .size ftl_gc_write_buf, .-ftl_gc_write_buf 3647 .section .text.ftl_write_buf,"ax",@progbits 3648 .align 2 3649 .global ftl_write_buf 3650 .type ftl_write_buf, %function 3651ftl_write_buf: 3652 stp x29, x30, [sp, -48]! 3653 add x29, sp, 0 3654 stp x19, x20, [sp, 16] 3655 str x21, [sp, 32] 3656 cbnz x0, .L623 3657 mov w2, 806 3658 adrp x1, .LANCHOR67 3659 adrp x0, .LC0 3660 add x1, x1, :lo12:.LANCHOR67 3661 add x0, x0, :lo12:.LC0 3662 bl printf 3663 mov w0, -1 3664.L622: 3665 ldp x19, x20, [sp, 16] 3666 ldr x21, [sp, 32] 3667 ldp x29, x30, [sp], 48 3668 ret 3669.L626: 3670 mov x1, x19 3671 adrp x0, .LANCHOR65 3672 add x0, x0, :lo12:.LANCHOR65 3673 bl buf_add_tail 3674 adrp x1, .LANCHOR69 3675 ldrb w3, [x19, 56] 3676 ldrb w0, [x21, #:lo12:.LANCHOR66] 3677 ldr x1, [x1, #:lo12:.LANCHOR69] 3678 add w0, w0, 1 3679 and w0, w0, 255 3680 strb w0, [x21, #:lo12:.LANCHOR66] 3681 ldr w2, [x1, 16] 3682 add w2, w2, w3 3683 str w2, [x1, 16] 3684 ldr w2, [x1, 32] 3685 add w2, w2, 1 3686 str w2, [x1, 32] 3687 b .L622 3688.L623: 3689 mov x19, x0 3690 adrp x0, .LANCHOR68 3691 mov x20, x0 3692 ldrb w1, [x0, #:lo12:.LANCHOR68] 3693 ldrb w2, [x19, 56] 3694 cmp w2, w1 3695 bls .L628 3696 adrp x1, .LANCHOR67 3697 adrp x0, .LC0 3698 mov w2, 813 3699 add x1, x1, :lo12:.LANCHOR67 3700 add x0, x0, :lo12:.LC0 3701 bl printf 3702.L628: 3703 ldrb w0, [x19, 56] 3704 adrp x21, .LANCHOR66 3705 cbz w0, .L625 3706 ldrb w1, [x20, #:lo12:.LANCHOR68] 3707 cmp w1, w0 3708 bcs .L626 3709.L625: 3710 mov x0, x19 3711 bl zbuf_free 3712 ldrb w0, [x21, #:lo12:.LANCHOR66] 3713 b .L622 3714 .size ftl_write_buf, .-ftl_write_buf 3715 .section .text.zftl_cache_flush,"ax",@progbits 3716 .align 2 3717 .global zftl_cache_flush 3718 .type zftl_cache_flush, %function 3719zftl_cache_flush: 3720 ret 3721 .size zftl_cache_flush, .-zftl_cache_flush 3722 .section .text.zftl_add_read_buf,"ax",@progbits 3723 .align 2 3724 .global zftl_add_read_buf 3725 .type zftl_add_read_buf, %function 3726zftl_add_read_buf: 3727 cbnz x0, .L635 3728 adrp x1, .LANCHOR70 3729 adrp x0, .LC0 3730 mov w2, 1147 3731 add x1, x1, :lo12:.LANCHOR70 3732 add x0, x0, :lo12:.LC0 3733 b printf 3734.L635: 3735 stp x29, x30, [sp, -32]! 3736 add x29, sp, 0 3737 str x19, [sp, 16] 3738 mov x19, x0 3739 ldrb w1, [x0, 56] 3740 adrp x0, .LANCHOR68 3741 ldrb w0, [x0, #:lo12:.LANCHOR68] 3742 cmp w1, w0 3743 bls .L637 3744 adrp x1, .LANCHOR70 3745 adrp x0, .LC0 3746 mov w2, 1154 3747 add x1, x1, :lo12:.LANCHOR70 3748 add x0, x0, :lo12:.LC0 3749 bl printf 3750.L637: 3751 mov x1, x19 3752 adrp x0, .LANCHOR71 3753 add x0, x0, :lo12:.LANCHOR71 3754 bl buf_add_tail 3755 adrp x1, .LANCHOR72 3756 ldr x19, [sp, 16] 3757 ldp x29, x30, [sp], 32 3758 ldrb w0, [x1, #:lo12:.LANCHOR72] 3759 add w0, w0, 1 3760 strb w0, [x1, #:lo12:.LANCHOR72] 3761 ret 3762 .size zftl_add_read_buf, .-zftl_add_read_buf 3763 .section .text.zftl_get_density,"ax",@progbits 3764 .align 2 3765 .global zftl_get_density 3766 .type zftl_get_density, %function 3767zftl_get_density: 3768 cbnz w0, .L642 3769 adrp x0, .LANCHOR73 3770 ldr w0, [x0, #:lo12:.LANCHOR73] 3771 ret 3772.L642: 3773 cmp w0, 4 3774 cset w0, cc 3775 lsl w0, w0, 13 3776 ret 3777 .size zftl_get_density, .-zftl_get_density 3778 .section .text.gc_hook,"ax",@progbits 3779 .align 2 3780 .global gc_hook 3781 .type gc_hook, %function 3782gc_hook: 3783 ret 3784 .size gc_hook, .-gc_hook 3785 .section .text.vpn_check,"ax",@progbits 3786 .align 2 3787 .global vpn_check 3788 .type vpn_check, %function 3789vpn_check: 3790 ret 3791 .size vpn_check, .-vpn_check 3792 .section .text.ftl_scan_all_data,"ax",@progbits 3793 .align 2 3794 .global ftl_scan_all_data 3795 .type ftl_scan_all_data, %function 3796ftl_scan_all_data: 3797 ret 3798 .size ftl_scan_all_data, .-ftl_scan_all_data 3799 .section .text.FtlGetCurEraseBlock,"ax",@progbits 3800 .align 2 3801 .global FtlGetCurEraseBlock 3802 .type FtlGetCurEraseBlock, %function 3803FtlGetCurEraseBlock: 3804 adrp x0, .LANCHOR74 3805 ldrh w0, [x0, #:lo12:.LANCHOR74] 3806 ret 3807 .size FtlGetCurEraseBlock, .-FtlGetCurEraseBlock 3808 .section .text.FtlGetAllBlockNum,"ax",@progbits 3809 .align 2 3810 .global FtlGetAllBlockNum 3811 .type FtlGetAllBlockNum, %function 3812FtlGetAllBlockNum: 3813 adrp x0, .LANCHOR8 3814 ldrh w0, [x0, #:lo12:.LANCHOR8] 3815 ret 3816 .size FtlGetAllBlockNum, .-FtlGetAllBlockNum 3817 .section .text.FtlLowFormat,"ax",@progbits 3818 .align 2 3819 .global FtlLowFormat 3820 .type FtlLowFormat, %function 3821FtlLowFormat: 3822 mov w0, 0 3823 ret 3824 .size FtlLowFormat, .-FtlLowFormat 3825 .section .text.gc_add_sblk,"ax",@progbits 3826 .align 2 3827 .global gc_add_sblk 3828 .type gc_add_sblk, %function 3829gc_add_sblk: 3830 stp x29, x30, [sp, -64]! 3831 add x29, sp, 0 3832 stp x21, x22, [sp, 32] 3833 adrp x21, .LANCHOR19 3834 stp x19, x20, [sp, 16] 3835 and w19, w0, 65535 3836 ldr w0, [x21, #:lo12:.LANCHOR19] 3837 and w22, w1, 65535 3838 stp x23, x24, [sp, 48] 3839 and w23, w2, 65535 3840 tbz x0, 8, .L652 3841 adrp x1, .LANCHOR11 3842 uxtw x0, w19 3843 mov w3, w23 3844 ldr x2, [x1, #:lo12:.LANCHOR11] 3845 adrp x1, .LANCHOR9 3846 ldr x1, [x1, #:lo12:.LANCHOR9] 3847 ldrh w5, [x2, x0, lsl 1] 3848 mov w2, w22 3849 add x1, x1, x0, lsl 2 3850 adrp x0, .LC49 3851 add x0, x0, :lo12:.LC49 3852 ldrb w4, [x1, 2] 3853 adrp x1, .LANCHOR75 3854 ldrh w7, [x1, #:lo12:.LANCHOR75] 3855 adrp x1, .LANCHOR76+56 3856 ubfx x4, x4, 5, 3 3857 ldrh w6, [x1, #:lo12:.LANCHOR76+56] 3858 mov w1, w19 3859 bl printf 3860.L652: 3861 adrp x0, .LANCHOR8 3862 mov x20, x0 3863 ldrh w1, [x0, #:lo12:.LANCHOR8] 3864 cmp w1, w19 3865 bhi .L653 3866 adrp x1, .LANCHOR77 3867 adrp x0, .LC0 3868 mov w2, 543 3869 add x1, x1, :lo12:.LANCHOR77 3870 add x0, x0, :lo12:.LC0 3871 bl printf 3872.L653: 3873 ldrh w0, [x20, #:lo12:.LANCHOR8] 3874 cmp w0, w19 3875 bhi .L654 3876 ldr w0, [x21, #:lo12:.LANCHOR19] 3877 tbz x0, 10, .L676 3878 adrp x0, .LC50 3879 mov w3, w23 3880 mov w2, w22 3881 mov w1, w19 3882 add x0, x0, :lo12:.LC50 3883 bl printf 3884.L676: 3885 mov w0, 0 3886 b .L651 3887.L654: 3888 adrp x1, .LANCHOR11 3889 uxtw x0, w19 3890 ldr x1, [x1, #:lo12:.LANCHOR11] 3891 ldrh w3, [x1, x0, lsl 1] 3892 adrp x1, .LANCHOR9 3893 ldr x1, [x1, #:lo12:.LANCHOR9] 3894 add x0, x1, x0, lsl 2 3895 ldrb w2, [x0, 2] 3896 tst w2, 224 3897 bne .L656 3898 cbz w3, .L676 3899 mov w2, 553 3900 adrp x1, .LANCHOR77 3901 adrp x0, .LC0 3902 add x1, x1, :lo12:.LANCHOR77 3903 add x0, x0, :lo12:.LC0 3904 bl printf 3905 b .L676 3906.L656: 3907 adrp x0, .LANCHOR76 3908 add x1, x0, :lo12:.LANCHOR76 3909 ldrh w0, [x0, #:lo12:.LANCHOR76] 3910 cmp w0, w19 3911 beq .L676 3912 adrp x24, .LANCHOR12 3913 ldr x0, [x24, #:lo12:.LANCHOR12] 3914 ldrh w4, [x0, 48] 3915 cmp w4, w19 3916 beq .L676 3917 ldrh w4, [x0, 16] 3918 cmp w4, w19 3919 beq .L676 3920 ldrh w4, [x0, 80] 3921 cmp w4, w19 3922 beq .L676 3923 ldrh w5, [x1, 56] 3924 add x1, x1, 58 3925 mov w4, 0 3926.L657: 3927 cmp w4, w5 3928 bcc .L658 3929 cbnz w22, .L662 3930 adrp x1, .LANCHOR78 3931 ldrh w6, [x1, #:lo12:.LANCHOR78] 3932 cmp w19, w6 3933 beq .L676 3934 adrp x4, .LANCHOR79 3935 add x4, x4, :lo12:.LANCHOR79 3936 mov x1, 0 3937.L661: 3938 ldrh w7, [x1, x4] 3939 cmp w19, w7 3940 bne .L660 3941 ldr w0, [x21, #:lo12:.LANCHOR19] 3942 tbz x0, 8, .L676 3943 mov w5, w6 3944 mov w4, w19 3945 ubfx x2, x2, 5, 3 3946 mov w1, w19 3947 adrp x0, .LC51 3948 add x0, x0, :lo12:.LC51 3949 bl printf 3950 b .L676 3951.L658: 3952 ldrh w6, [x1], 2 3953 cmp w6, w19 3954 beq .L676 3955 add w4, w4, 1 3956 b .L657 3957.L660: 3958 add x1, x1, 2 3959 cmp x1, 16 3960 bne .L661 3961 ubfiz x20, x23, 7, 16 3962 add x20, x20, 136 3963 add x20, x0, x20 3964.L663: 3965 ldr w0, [x21, #:lo12:.LANCHOR19] 3966 tbz x0, 8, .L664 3967 adrp x0, .LANCHOR75 3968 mov w4, w3 3969 mov w1, w19 3970 ubfx x3, x2, 5, 3 3971 ldrh w6, [x0, #:lo12:.LANCHOR75] 3972 mov w2, w22 3973 adrp x0, .LC52 3974 add x0, x0, :lo12:.LC52 3975 bl printf 3976.L664: 3977 mov x0, x20 3978 add x1, x20, 128 3979 mov w2, 65535 3980.L667: 3981 ldrh w3, [x0] 3982 cmp w3, w2 3983 bne .L665 3984 strh w19, [x0] 3985 cbz w22, .L666 3986 ldr x1, [x24, #:lo12:.LANCHOR12] 3987 ldrh w0, [x1, 124] 3988 add w0, w0, 1 3989 strh w0, [x1, 124] 3990.L686: 3991 mov w0, 1 3992.L651: 3993 ldp x19, x20, [sp, 16] 3994 ldp x21, x22, [sp, 32] 3995 ldp x23, x24, [sp, 48] 3996 ldp x29, x30, [sp], 64 3997 ret 3998.L662: 3999 add x20, x0, 392 4000 b .L663 4001.L666: 4002 ldr x0, [x24, #:lo12:.LANCHOR12] 4003 add x23, x0, x23, uxth 1 4004 ldrh w0, [x23, 120] 4005 add w0, w0, 1 4006 strh w0, [x23, 120] 4007 b .L686 4008.L665: 4009 add x0, x0, 2 4010 cmp x1, x0 4011 bne .L667 4012 b .L686 4013 .size gc_add_sblk, .-gc_add_sblk 4014 .section .text.gc_mark_bad_ppa,"ax",@progbits 4015 .align 2 4016 .global gc_mark_bad_ppa 4017 .type gc_mark_bad_ppa, %function 4018gc_mark_bad_ppa: 4019 stp x29, x30, [sp, -64]! 4020 adrp x1, .LANCHOR80 4021 adrp x3, .LANCHOR31 4022 add x29, sp, 0 4023 ldrh w1, [x1, #:lo12:.LANCHOR80] 4024 ldrb w3, [x3, #:lo12:.LANCHOR31] 4025 stp x19, x20, [sp, 16] 4026 mov w19, 24 4027 sub w19, w19, w3 4028 lsr w2, w0, w1 4029 sub w19, w19, w1 4030 adrp x1, .LANCHOR81 4031 str x23, [sp, 48] 4032 mov w23, 1 4033 ldrb w1, [x1, #:lo12:.LANCHOR81] 4034 lsl w19, w23, w19 4035 sub w19, w19, #1 4036 stp x21, x22, [sp, 32] 4037 and w19, w19, w2 4038 adrp x20, .LANCHOR76 4039 add x21, x20, :lo12:.LANCHOR76 4040 mov w3, w0 4041 and w22, w2, 65535 4042 adrp x0, .LC53 4043 udiv w19, w19, w1 4044 mov w2, w22 4045 ldr w1, [x21, 2200] 4046 add x0, x0, :lo12:.LC53 4047 and w19, w19, 65535 4048 bl printf 4049 mov w1, w23 4050 mov w2, 0 4051 mov w0, w19 4052 bl gc_add_sblk 4053 ldr w0, [x21, 2200] 4054 mov w1, 0 4055.L688: 4056 cmp w1, w0 4057 bcc .L690 4058 cmp w0, 5 4059 bhi .L689 4060 add x20, x20, :lo12:.LANCHOR76 4061 add w1, w0, 1 4062 str w1, [x20, 2200] 4063 add x20, x20, x0, uxtw 1 4064 strh w22, [x20, 2204] 4065.L689: 4066 mov w0, 0 4067 ldr x23, [sp, 48] 4068 ldp x19, x20, [sp, 16] 4069 ldp x21, x22, [sp, 32] 4070 ldp x29, x30, [sp], 64 4071 ret 4072.L690: 4073 add x2, x21, x1, sxtw 1 4074 ldrh w2, [x2, 2204] 4075 cmp w2, w22 4076 beq .L689 4077 add w1, w1, 1 4078 and w1, w1, 65535 4079 b .L688 4080 .size gc_mark_bad_ppa, .-gc_mark_bad_ppa 4081 .section .text.gc_get_src_ppa_from_index,"ax",@progbits 4082 .align 2 4083 .global gc_get_src_ppa_from_index 4084 .type gc_get_src_ppa_from_index, %function 4085gc_get_src_ppa_from_index: 4086 adrp x1, .LANCHOR82 4087 ubfiz x0, x0, 2, 16 4088 ldr x1, [x1, #:lo12:.LANCHOR82] 4089 ldr w0, [x1, x0] 4090 ret 4091 .size gc_get_src_ppa_from_index, .-gc_get_src_ppa_from_index 4092 .section .text.gc_write_completed,"ax",@progbits 4093 .align 2 4094 .global gc_write_completed 4095 .type gc_write_completed, %function 4096gc_write_completed: 4097 stp x29, x30, [sp, -96]! 4098 add x29, sp, 0 4099 stp x21, x22, [sp, 32] 4100 adrp x22, .LANCHOR63 4101 stp x23, x24, [sp, 48] 4102 add x22, x22, :lo12:.LANCHOR63 4103 stp x25, x26, [sp, 64] 4104 adrp x23, .LANCHOR55 4105 add x25, x23, :lo12:.LANCHOR55 4106 stp x19, x20, [sp, 16] 4107 str x27, [sp, 80] 4108.L694: 4109 ldrb w0, [x22] 4110 cmp w0, 255 4111 bne .L707 4112 ldp x19, x20, [sp, 16] 4113 ldp x21, x22, [sp, 32] 4114 ldp x23, x24, [sp, 48] 4115 ldp x25, x26, [sp, 64] 4116 ldr x27, [sp, 80] 4117 ldp x29, x30, [sp], 96 4118 ret 4119.L707: 4120 sxtw x20, w0 4121 add x1, x23, :lo12:.LANCHOR55 4122 lsl x3, x20, 6 4123 add x2, x1, x3 4124 ldrb w0, [x1, x3] 4125 ldr w1, [x2, 52] 4126 strb w0, [x22] 4127 ldrh w24, [x2, 48] 4128 cbz w1, .L695 4129 ldr w2, [x2, 40] 4130 adrp x0, .LANCHOR76 4131 add x0, x0, :lo12:.LANCHOR76 4132 mov w3, 1 4133 str w2, [x0, 2196] 4134 strh w3, [x0, 2194] 4135 adrp x0, .LC54 4136 add x0, x0, :lo12:.LC54 4137 bl printf 4138 adrp x1, .LANCHOR83 4139 adrp x0, .LC0 4140 mov w2, 956 4141 add x1, x1, :lo12:.LANCHOR83 4142 add x0, x0, :lo12:.LC0 4143 bl printf 4144.L695: 4145 adrp x0, .LANCHOR84 4146 mov x26, x0 4147 ldrb w1, [x0, #:lo12:.LANCHOR84] 4148 cmp w1, 3 4149 bne .L696 4150 adrp x0, .LANCHOR35 4151 ldrb w0, [x0, #:lo12:.LANCHOR35] 4152 cbnz w0, .L696 4153 adrp x0, .LANCHOR12 4154 adrp x1, .LANCHOR85 4155 ldr x0, [x0, #:lo12:.LANCHOR12] 4156 ldrb w1, [x1, #:lo12:.LANCHOR85] 4157 ldrb w0, [x0, 89] 4158 mov w19, w0 4159 cmp w1, w0 4160 bhi .L708 4161 cmp w0, 2 4162 mov w0, 2 4163 csel w19, w19, w0, ls 4164.L697: 4165 add w19, w19, w19, lsl 1 4166.L698: 4167 adrp x1, .LANCHOR88 4168 and x21, x24, 65535 4169 add x0, x25, x20, lsl 6 4170 mov x27, x1 4171 ldr x2, [x1, #:lo12:.LANCHOR88] 4172 ldrb w0, [x0, 1] 4173 ldrb w2, [x2, x21] 4174 cmp w2, w0 4175 beq .L699 4176 adrp x1, .LANCHOR83 4177 adrp x0, .LC0 4178 mov w2, 976 4179 add x1, x1, :lo12:.LANCHOR83 4180 add x0, x0, :lo12:.LC0 4181 bl printf 4182.L699: 4183 add x0, x25, x20, lsl 6 4184 ldrb w0, [x0, 61] 4185 cmp w0, 3 4186 beq .L700 4187 ldrb w0, [x26, #:lo12:.LANCHOR84] 4188 cmp w0, 3 4189 bne .L700 4190 adrp x0, .LANCHOR89 4191 ldrb w0, [x0, #:lo12:.LANCHOR89] 4192 cbnz w0, .L700 4193 adrp x0, .LANCHOR35 4194 ldrb w0, [x0, #:lo12:.LANCHOR35] 4195 cbnz w0, .L700 4196 adrp x0, .LANCHOR36 4197 ldrb w0, [x0, #:lo12:.LANCHOR36] 4198 cbnz w0, .L700 4199 adrp x0, .LANCHOR86 4200 ldrb w0, [x0, #:lo12:.LANCHOR86] 4201 cbz w0, .L701 4202 adrp x0, .LANCHOR87 4203 ldrb w0, [x0, #:lo12:.LANCHOR87] 4204 cbnz w0, .L700 4205.L701: 4206 ldr x1, [x27, #:lo12:.LANCHOR88] 4207 mov x0, 0 4208 add x21, x1, x21 4209.L702: 4210 cmp w19, w0, uxth 4211 bls .L694 4212 ldrb w1, [x21, x0] 4213 add x0, x0, 1 4214 add x1, x25, x1, lsl 6 4215 strb wzr, [x1, 61] 4216 b .L702 4217.L708: 4218 mov w19, 1 4219 b .L697 4220.L696: 4221 adrp x0, .LANCHOR86 4222 ldrb w0, [x0, #:lo12:.LANCHOR86] 4223 cbz w0, .L709 4224 adrp x0, .LANCHOR87 4225 ldrb w0, [x0, #:lo12:.LANCHOR87] 4226 cmp w0, 0 4227 cset w19, ne 4228 add w19, w19, 1 4229 b .L698 4230.L709: 4231 mov w19, 1 4232 b .L698 4233.L700: 4234 adrp x20, .LANCHOR76 4235 add x20, x20, :lo12:.LANCHOR76 4236 add x19, x21, x19, uxth 4237 strh w24, [x20, 2108] 4238 mov w24, -1 4239.L703: 4240 cmp x21, x19 4241 beq .L694 4242 ldr x1, [x27, #:lo12:.LANCHOR88] 4243 ldrb w0, [x1, x21] 4244 strb w24, [x1, x21] 4245 add x21, x21, 1 4246 sbfiz x1, x0, 6, 32 4247 ubfiz x0, x0, 6, 8 4248 add x1, x25, x1 4249 add x0, x25, x0 4250 strb wzr, [x1, 61] 4251 bl zbuf_free 4252 ldrb w0, [x20, 7] 4253 sub w0, w0, #1 4254 strb w0, [x20, 7] 4255 b .L703 4256 .size gc_write_completed, .-gc_write_completed 4257 .section .text.gc_get_src_blk,"ax",@progbits 4258 .align 2 4259 .global gc_get_src_blk 4260 .type gc_get_src_blk, %function 4261gc_get_src_blk: 4262 adrp x0, .LANCHOR12 4263 ldr x2, [x0, #:lo12:.LANCHOR12] 4264 adrp x0, .LANCHOR90 4265 ldrb w3, [x0, #:lo12:.LANCHOR90] 4266 ldrh w0, [x2, 124] 4267 cbz w0, .L722 4268 add x1, x2, 392 4269 mov w4, 1 4270.L723: 4271 add x5, x1, 128 4272 mov w6, 65535 4273.L727: 4274 ldrh w0, [x1] 4275 cmp w0, w6 4276 beq .L725 4277 mov w5, -1 4278 strh w5, [x1] 4279 cbz w4, .L726 4280 ldrh w1, [x2, 124] 4281 sub w1, w1, #1 4282 strh w1, [x2, 124] 4283 ret 4284.L722: 4285 add x0, x2, x3, sxtw 1 4286 ldrh w0, [x0, 120] 4287 cbz w0, .L728 4288 ubfiz x1, x3, 7, 8 4289 mov w4, 0 4290 add x1, x1, 136 4291 add x1, x2, x1 4292 b .L723 4293.L726: 4294 add x2, x2, x3, uxtb 1 4295 ldrh w1, [x2, 120] 4296 sub w1, w1, #1 4297 strh w1, [x2, 120] 4298 ret 4299.L725: 4300 add x1, x1, 2 4301 cmp x1, x5 4302 bne .L727 4303 ret 4304.L728: 4305 mov w0, 65535 4306 ret 4307 .size gc_get_src_blk, .-gc_get_src_blk 4308 .section .text.gc_free_temp_buf,"ax",@progbits 4309 .align 2 4310 .global gc_free_temp_buf 4311 .type gc_free_temp_buf, %function 4312gc_free_temp_buf: 4313 stp x29, x30, [sp, -48]! 4314 add x29, sp, 0 4315 stp x19, x20, [sp, 16] 4316 adrp x20, .LANCHOR76 4317 add x0, x20, :lo12:.LANCHOR76 4318 stp x21, x22, [sp, 32] 4319 ldrb w1, [x0, 7] 4320 cbz w1, .L737 4321 adrp x1, .LANCHOR57 4322 ldrb w1, [x1, #:lo12:.LANCHOR57] 4323 cmp w1, 1 4324 bhi .L737 4325 ldrh w19, [x0, 2108] 4326 adrp x2, .LANCHOR85 4327 adrp x0, .LANCHOR91 4328 adrp x21, .LANCHOR88 4329 ldrb w2, [x2, #:lo12:.LANCHOR85] 4330 add w1, w19, 24 4331 ldrh w0, [x0, #:lo12:.LANCHOR91] 4332 ldr x4, [x21, #:lo12:.LANCHOR88] 4333 mul w0, w0, w2 4334 cmp w0, w1 4335 csel w1, w0, w1, ls 4336 adrp x0, .LANCHOR55 4337 add x0, x0, :lo12:.LANCHOR55 4338.L732: 4339 cmp w19, w1 4340 bcc .L735 4341.L737: 4342 mov w0, 0 4343 b .L730 4344.L735: 4345 uxtw x22, w19 4346 ldrb w2, [x4, x22] 4347 cmp w2, 255 4348 beq .L733 4349 sbfiz x3, x2, 6, 32 4350 add x3, x0, x3 4351 ldrb w3, [x3, 61] 4352 cbnz w3, .L733 4353 ubfiz x2, x2, 6, 8 4354 add x0, x0, x2 4355 bl zbuf_free 4356 adrp x0, .LANCHOR19 4357 ldr w0, [x0, #:lo12:.LANCHOR19] 4358 tbz x0, 8, .L734 4359 ldr x0, [x21, #:lo12:.LANCHOR88] 4360 mov w1, w19 4361 ldrb w2, [x0, x22] 4362 adrp x0, .LC55 4363 add x0, x0, :lo12:.LC55 4364 bl printf 4365.L734: 4366 ldr x0, [x21, #:lo12:.LANCHOR88] 4367 add x20, x20, :lo12:.LANCHOR76 4368 mov w1, -1 4369 strb w1, [x0, x22] 4370 ldrb w0, [x20, 7] 4371 sub w0, w0, #1 4372 strb w0, [x20, 7] 4373 mov w0, 1 4374.L730: 4375 ldp x19, x20, [sp, 16] 4376 ldp x21, x22, [sp, 32] 4377 ldp x29, x30, [sp], 48 4378 ret 4379.L733: 4380 add w19, w19, 1 4381 b .L732 4382 .size gc_free_temp_buf, .-gc_free_temp_buf 4383 .section .text.get_ink_scaned_blk,"ax",@progbits 4384 .align 2 4385 .global get_ink_scaned_blk 4386 .type get_ink_scaned_blk, %function 4387get_ink_scaned_blk: 4388 adrp x1, .LANCHOR76 4389 add x1, x1, :lo12:.LANCHOR76 4390 ldrh w2, [x1, 2112] 4391 cbz w2, .L747 4392 sub w2, w2, #1 4393 strh w2, [x1, 2112] 4394 add x0, x1, x2, sxtw 1 4395 ldrh w0, [x0, 2114] 4396 ret 4397.L747: 4398 mov w0, 65535 4399 ret 4400 .size get_ink_scaned_blk, .-get_ink_scaned_blk 4401 .section .text.print_gc_debug_info,"ax",@progbits 4402 .align 2 4403 .global print_gc_debug_info 4404 .type print_gc_debug_info, %function 4405print_gc_debug_info: 4406 adrp x2, .LANCHOR92 4407 adrp x1, .LANCHOR76 4408 add x0, x1, :lo12:.LANCHOR76 4409 ldrh w6, [x2, #:lo12:.LANCHOR92] 4410 adrp x2, .LANCHOR57 4411 ldrh w1, [x1, #:lo12:.LANCHOR76] 4412 ldrb w5, [x0, 7] 4413 ldrb w4, [x2, #:lo12:.LANCHOR57] 4414 ldrh w3, [x0, 2106] 4415 ldrh w2, [x0, 2] 4416 adrp x0, .LC56 4417 add x0, x0, :lo12:.LC56 4418 b printf 4419 .size print_gc_debug_info, .-print_gc_debug_info 4420 .section .text._list_pop_index_node,"ax",@progbits 4421 .align 2 4422 .global _list_pop_index_node 4423 .type _list_pop_index_node, %function 4424_list_pop_index_node: 4425 stp x29, x30, [sp, -32]! 4426 add x29, sp, 0 4427 stp x19, x20, [sp, 16] 4428 ldr x20, [x0] 4429 cbz x20, .L755 4430 adrp x3, .LANCHOR4 4431 and w1, w1, 65535 4432 mov w4, 65535 4433 mov w5, 6 4434 ldr x19, [x3, #:lo12:.LANCHOR4] 4435.L751: 4436 cbnz w1, .L752 4437.L754: 4438 sub x19, x20, x19 4439 mov x1, -6148914691236517206 4440 asr x19, x19, 1 4441 movk x1, 0xaaab, lsl 0 4442 mul x19, x19, x1 4443 and w19, w19, 65535 4444 mov w1, w19 4445 bl _list_remove_node 4446 mov w0, -1 4447 strh w0, [x20] 4448 strh w0, [x20, 2] 4449 mov w0, w19 4450.L749: 4451 ldp x19, x20, [sp, 16] 4452 ldp x29, x30, [sp], 32 4453 ret 4454.L752: 4455 ldrh w3, [x20] 4456 cmp w3, w4 4457 beq .L754 4458 sub w1, w1, #1 4459 umaddl x20, w3, w5, x19 4460 and w1, w1, 65535 4461 b .L751 4462.L755: 4463 mov w0, 65535 4464 b .L749 4465 .size _list_pop_index_node, .-_list_pop_index_node 4466 .section .text._list_get_gc_head_node,"ax",@progbits 4467 .align 2 4468 .global _list_get_gc_head_node 4469 .type _list_get_gc_head_node, %function 4470_list_get_gc_head_node: 4471 ldr x0, [x0] 4472 and w1, w1, 65535 4473 cbz x0, .L762 4474 adrp x2, .LANCHOR4 4475 mov w3, 65535 4476 mov w4, 6 4477 ldr x2, [x2, #:lo12:.LANCHOR4] 4478.L759: 4479 cbz w1, .L760 4480 ldrh w0, [x0] 4481 cmp w0, w3 4482 bne .L761 4483 ret 4484.L761: 4485 sub w1, w1, #1 4486 umaddl x0, w0, w4, x2 4487 and w1, w1, 65535 4488 b .L759 4489.L762: 4490 mov w0, 65535 4491 ret 4492.L760: 4493 sub x0, x0, x2 4494 mov x1, -6148914691236517206 4495 asr x0, x0, 1 4496 movk x1, 0xaaab, lsl 0 4497 mul x0, x0, x1 4498 and w0, w0, 65535 4499 ret 4500 .size _list_get_gc_head_node, .-_list_get_gc_head_node 4501 .section .text.gc_search_src_blk,"ax",@progbits 4502 .align 2 4503 .global gc_search_src_blk 4504 .type gc_search_src_blk, %function 4505gc_search_src_blk: 4506 stp x29, x30, [sp, -176]! 4507 add x29, sp, 0 4508 stp x21, x22, [sp, 32] 4509 and w22, w0, 255 4510 and w0, w1, 255 4511 stp x19, x20, [sp, 16] 4512 str w0, [x29, 160] 4513 adrp x0, .LANCHOR12 4514 and w19, w2, 255 4515 stp x23, x24, [sp, 48] 4516 ldr x2, [x0, #:lo12:.LANCHOR12] 4517 stp x25, x26, [sp, 64] 4518 stp x27, x28, [sp, 80] 4519 add x0, x2, x22, sxtw 1 4520 ldrh w21, [x0, 120] 4521 cbz w21, .L765 4522 mov w0, w21 4523.L764: 4524 ldp x19, x20, [sp, 16] 4525 ldp x21, x22, [sp, 32] 4526 ldp x23, x24, [sp, 48] 4527 ldp x25, x26, [sp, 64] 4528 ldp x27, x28, [sp, 80] 4529 ldp x29, x30, [sp], 176 4530 ret 4531.L765: 4532 adrp x0, .LANCHOR76 4533 add x1, x0, :lo12:.LANCHOR76 4534 ldrh w1, [x1, 56] 4535 cmp w1, 1 4536 bhi .L767 4537 adrp x3, .LANCHOR93 4538 strh wzr, [x3, #:lo12:.LANCHOR93] 4539 adrp x3, .LANCHOR94 4540 strh wzr, [x3, #:lo12:.LANCHOR94] 4541 adrp x3, .LANCHOR95 4542 strh wzr, [x3, #:lo12:.LANCHOR95] 4543.L767: 4544 cbnz w22, .L768 4545 adrp x26, .LANCHOR94 4546 adrp x25, .LANCHOR96 4547 add x23, x26, :lo12:.LANCHOR94 4548 add x25, x25, :lo12:.LANCHOR96 4549 mov w24, 0 4550 mov w20, 0 4551 mov w27, 65535 4552.L769: 4553 cmp w19, w20 4554 blt .L774 4555 ldrh w6, [x23] 4556 mov x0, x25 4557 mov w1, w6 4558 bl _list_get_gc_head_node 4559 add w2, w6, 1 4560 and w2, w2, 65535 4561 strh w2, [x23] 4562 and w1, w0, 65535 4563 mov w28, w1 4564 cmp w1, w27 4565 beq .L770 4566 adrp x0, .LANCHOR19 4567 adrp x6, .LANCHOR11 4568 uxtw x4, w1 4569 ldr w0, [x0, #:lo12:.LANCHOR19] 4570 tbz x0, 8, .L771 4571 ldr x0, [x6, #:lo12:.LANCHOR11] 4572 stp x6, x4, [x29, 144] 4573 ldrh w3, [x0, x4, lsl 1] 4574 adrp x0, .LC57 4575 add x0, x0, :lo12:.LC57 4576 bl printf 4577 ldp x6, x4, [x29, 144] 4578.L771: 4579 ldr x0, [x6, #:lo12:.LANCHOR11] 4580 ldrh w1, [x0, x4, lsl 1] 4581 adrp x0, .LANCHOR75 4582 ldrh w0, [x0, #:lo12:.LANCHOR75] 4583 cmp w1, w0 4584 bcs .L772 4585 mov w2, 0 4586 mov w1, 0 4587 mov w0, w28 4588 bl gc_add_sblk 4589 cbz w0, .L773 4590 add w5, w24, 1 4591 and w24, w5, 65535 4592 cmp w24, w19 4593 bcc .L773 4594.L774: 4595 ldr x0, [x29, 160] 4596 tbz x0, 1, .L776 4597 adrp x0, .LANCHOR97 4598 ldrh w0, [x0, #:lo12:.LANCHOR97] 4599 cmp w0, 32 4600 bls .L776 4601 adrp x23, .LANCHOR99 4602 adrp x20, .LANCHOR95 4603 adrp x26, .LANCHOR98 4604 add x20, x20, :lo12:.LANCHOR95 4605 add x26, x26, :lo12:.LANCHOR98 4606 add x27, x23, :lo12:.LANCHOR99 4607 mov w25, 0 4608.L777: 4609 cmp w19, w25 4610 blt .L781 4611 ldrh w6, [x20] 4612 mov x0, x26 4613 mov w1, w6 4614 bl _list_get_gc_head_node 4615 add w6, w6, 1 4616 strh w6, [x20] 4617 and w1, w0, 65535 4618 mov w2, 65535 4619 cmp w1, w2 4620 beq .L778 4621 adrp x2, .LANCHOR11 4622 ubfiz x1, x1, 1, 16 4623 ldr x2, [x2, #:lo12:.LANCHOR11] 4624 ldrh w2, [x2, x1] 4625 ldrh w1, [x27] 4626 cmp w2, w1 4627 bcs .L778 4628 mov w2, 0 4629 mov w1, 0 4630 bl gc_add_sblk 4631 cbz w0, .L780 4632 add w5, w24, 1 4633 and w24, w5, 65535 4634 cmp w24, w19 4635 bcc .L780 4636.L781: 4637 cmp w24, w19 4638 adrp x0, .LANCHOR100 4639 bcs .L783 4640 ldrh w1, [x0, #:lo12:.LANCHOR100] 4641 adrp x3, .LANCHOR85 4642 adrp x0, .LANCHOR91 4643 ldrh w2, [x23, #:lo12:.LANCHOR99] 4644 ldrb w3, [x3, #:lo12:.LANCHOR85] 4645 ldrh w0, [x0, #:lo12:.LANCHOR91] 4646 mul w0, w0, w3 4647 sub w0, w0, w1, lsr 2 4648 cmp w2, w0 4649 bge .L776 4650 add w1, w2, w1, lsr 3 4651 strh w1, [x23, #:lo12:.LANCHOR99] 4652.L776: 4653 ldr x0, [x29, 160] 4654 tbz x0, 0, .L784 4655 and w23, w19, 65535 4656 cmp w24, w23 4657 bcs .L784 4658 adrp x20, .LANCHOR93 4659 adrp x25, .LANCHOR101 4660 add x20, x20, :lo12:.LANCHOR93 4661 add x25, x25, :lo12:.LANCHOR101 4662 mov w26, 65535 4663.L789: 4664 ldrh w6, [x20] 4665 mov x0, x25 4666 mov w1, w6 4667 bl _list_get_gc_head_node 4668 add w6, w6, 1 4669 strh w6, [x20] 4670 cmp w26, w0, uxth 4671 beq .L785 4672 mov w2, 0 4673 mov w1, 0 4674 bl gc_add_sblk 4675 cbz w0, .L786 4676 add w5, w24, 1 4677 and w24, w5, 65535 4678 cmp w23, w24 4679 bhi .L786 4680.L787: 4681 adrp x0, .LANCHOR100 4682 adrp x1, .LANCHOR75 4683 ldrh w0, [x0, #:lo12:.LANCHOR100] 4684 ldrh w2, [x1, #:lo12:.LANCHOR75] 4685 cmp w2, w0, lsr 1 4686 bls .L784 4687 sub w0, w2, w0, lsr 3 4688 b .L875 4689.L772: 4690 strh wzr, [x26, #:lo12:.LANCHOR94] 4691 b .L774 4692.L770: 4693 strh wzr, [x23] 4694 b .L774 4695.L773: 4696 add w20, w20, 1 4697 and w20, w20, 65535 4698 b .L769 4699.L778: 4700 strh wzr, [x20] 4701 b .L781 4702.L780: 4703 add w25, w25, 1 4704 and w25, w25, 65535 4705 b .L777 4706.L783: 4707 ldrh w1, [x23, #:lo12:.LANCHOR99] 4708 ldrh w0, [x0, #:lo12:.LANCHOR100] 4709 cmp w1, w0 4710 bls .L776 4711 sub w0, w1, w0, lsr 3 4712 strh w0, [x23, #:lo12:.LANCHOR99] 4713 b .L776 4714.L785: 4715 strh wzr, [x20] 4716.L788: 4717 cmp w24, w23 4718 bcs .L787 4719 adrp x1, .LANCHOR75 4720 adrp x0, .LANCHOR100 4721 ldrh w2, [x1, #:lo12:.LANCHOR75] 4722 ldrh w0, [x0, #:lo12:.LANCHOR100] 4723 cmp w2, w0 4724 bcs .L784 4725 add w0, w2, w0, lsr 3 4726.L875: 4727 strh w0, [x1, #:lo12:.LANCHOR75] 4728.L784: 4729 adrp x0, .LANCHOR19 4730 ldr w0, [x0, #:lo12:.LANCHOR19] 4731 tbz x0, 8, .L820 4732 ldr w2, [x29, 160] 4733 adrp x0, .LC58 4734 mov w4, w19 4735 mov w3, w24 4736 mov w1, w22 4737 add x0, x0, :lo12:.LC58 4738 bl printf 4739.L820: 4740 mov w0, w24 4741 b .L764 4742.L786: 4743 add w21, w21, 1 4744 and w21, w21, 65535 4745 cmp w23, w21 4746 bhi .L789 4747 b .L788 4748.L768: 4749 adrp x23, .LANCHOR85 4750 adrp x25, .LANCHOR91 4751 stp x25, x23, [x29, 144] 4752 cmp w19, 1 4753 ldrb w20, [x23, #:lo12:.LANCHOR85] 4754 ldrh w3, [x25, #:lo12:.LANCHOR91] 4755 mul w20, w20, w3 4756 and w20, w20, 65535 4757 bne .L790 4758 cbz w1, .L790 4759 ldrh w3, [x2, 80] 4760 mov w2, 65535 4761 cmp w3, w2 4762 beq .L823 4763 add x2, x0, :lo12:.LANCHOR76 4764 ldrh w2, [x2, 2106] 4765 sub w20, w20, w2 4766 and w20, w20, 65535 4767.L823: 4768 mov w19, 8 4769.L790: 4770 add x0, x0, :lo12:.LANCHOR76 4771 strh wzr, [x0, 2192] 4772 adrp x0, .LANCHOR102 4773 strh wzr, [x0, #:lo12:.LANCHOR102] 4774 ldr w0, [x29, 160] 4775 and w0, w0, 1 4776 str w0, [x29, 128] 4777 ldr x0, [x29, 160] 4778 tbz x0, 0, .L824 4779 adrp x2, .LANCHOR104 4780 adrp x26, .LANCHOR103 4781 str x2, [x29, 120] 4782 ldrh w0, [x26, #:lo12:.LANCHOR103] 4783 ldrh w3, [x2, #:lo12:.LANCHOR104] 4784 cmp w0, w3, lsr 2 4785 bhi .L792 4786 adrp x2, .LANCHOR105 4787 ldrh w2, [x2, #:lo12:.LANCHOR105] 4788 cmp w2, w0 4789 bcs .L825 4790.L792: 4791 cmp w1, 1 4792 adrp x25, .LANCHOR93 4793 adrp x28, .LANCHOR101 4794 bls .L794 4795.L796: 4796 mov w24, 0 4797.L795: 4798 add x0, x28, :lo12:.LANCHOR101 4799 add x25, x25, :lo12:.LANCHOR93 4800 adrp x28, .LANCHOR105 4801 add x28, x28, :lo12:.LANCHOR105 4802 mov w23, 0 4803 mov w27, 64 4804 str x0, [x29, 136] 4805.L799: 4806 ldrh w7, [x25] 4807 ldr x0, [x29, 136] 4808 mov w1, w7 4809 bl _list_get_gc_head_node 4810 and w6, w0, 65535 4811 str w6, [x29, 112] 4812 mov w1, 65535 4813 cmp w6, w1 4814 beq .L797 4815 add w7, w7, 1 4816 mov w2, w22 4817 strh w7, [x25] 4818 mov w1, 0 4819 bl gc_add_sblk 4820 cbz w0, .L798 4821 adrp x0, .LANCHOR11 4822 ldr w6, [x29, 112] 4823 add w5, w24, 1 4824 ldr x0, [x0, #:lo12:.LANCHOR11] 4825 and w24, w5, 65535 4826 ubfiz x6, x6, 1, 16 4827 cmp w24, w19 4828 ldrh w0, [x0, x6] 4829 add w3, w23, w0 4830 and w23, w3, 65535 4831 bcs .L793 4832 cmp w20, w23 4833 bcc .L793 4834 ldrh w0, [x28] 4835 ldrh w1, [x26, #:lo12:.LANCHOR103] 4836 cmp w0, w1, lsl 1 4837 ble .L798 4838.L793: 4839 adrp x0, .LANCHOR105 4840 ldrh w1, [x0, #:lo12:.LANCHOR105] 4841 ldr x0, [x29, 120] 4842 ldrh w0, [x0, #:lo12:.LANCHOR104] 4843 cmp w1, w0, lsr 2 4844 bhi .L821 4845 ldrh w0, [x26, #:lo12:.LANCHOR103] 4846 add w0, w0, 8 4847 cmp w1, w0 4848 ble .L791 4849.L821: 4850 cmp w20, w23 4851 bls .L791 4852 adrp x7, .LANCHOR94 4853 and w25, w19, 65535 4854 add x28, x7, :lo12:.LANCHOR94 4855 adrp x0, .LANCHOR96 4856 mov w26, 64 4857 add x0, x0, :lo12:.LANCHOR96 4858 adrp x27, .LANCHOR11 4859 str x0, [x29, 136] 4860.L802: 4861 ldrh w6, [x28] 4862 ldr x0, [x29, 136] 4863 mov w1, w6 4864 bl _list_get_gc_head_node 4865 and w4, w0, 65535 4866 str w4, [x29, 120] 4867 mov w1, 65535 4868 cmp w4, w1 4869 beq .L800 4870 add w6, w6, 1 4871 mov w2, w22 4872 strh w6, [x28] 4873 mov w1, 0 4874 bl gc_add_sblk 4875 cbz w0, .L801 4876 ldr w4, [x29, 120] 4877 add w5, w24, 1 4878 ldr x0, [x27, #:lo12:.LANCHOR11] 4879 and w24, w5, 65535 4880 cmp w24, w25 4881 ubfiz x4, x4, 1, 16 4882 ldrh w0, [x0, x4] 4883 add w3, w23, w0 4884 and w23, w3, 65535 4885 bcs .L791 4886 cmp w20, w23 4887 bcs .L801 4888.L791: 4889 ldr x0, [x29, 160] 4890 tbz x0, 1, .L803 4891 adrp x0, .LANCHOR97 4892 str x0, [x29, 112] 4893 ldrh w1, [x0, #:lo12:.LANCHOR97] 4894 cmp w1, 32 4895 bls .L803 4896 cmp w23, w20 4897 bcs .L803 4898 adrp x25, .LANCHOR95 4899 adrp x0, .LANCHOR98 4900 add x28, x25, :lo12:.LANCHOR95 4901 add x0, x0, :lo12:.LANCHOR98 4902 adrp x27, .LANCHOR106 4903 str x0, [x29, 120] 4904 mov w26, 64 4905 add x0, x27, :lo12:.LANCHOR106 4906 str x0, [x29, 136] 4907.L809: 4908 ldrh w6, [x28] 4909 ldr x0, [x29, 120] 4910 mov w1, w6 4911 bl _list_get_gc_head_node 4912 and w8, w0, 65535 4913 mov w1, 65535 4914 cmp w8, w1 4915 beq .L804 4916 add w6, w6, 1 4917 strh w6, [x28] 4918 cmp w19, 1 4919 bne .L805 4920 ldp x2, x1, [x29, 144] 4921 ldrb w1, [x1, #:lo12:.LANCHOR85] 4922 ldrh w2, [x2, #:lo12:.LANCHOR91] 4923 mul w2, w1, w2 4924 adrp x1, .LANCHOR100 4925 ldrh w1, [x1, #:lo12:.LANCHOR100] 4926 sub w1, w2, w1, lsr 3 4927 ldr x2, [x29, 136] 4928 strh w1, [x2] 4929.L805: 4930 ubfiz x6, x8, 1, 16 4931 adrp x8, .LANCHOR11 4932 stp x8, x6, [x29, 96] 4933 ldr x1, [x8, #:lo12:.LANCHOR11] 4934 ldrh w2, [x1, x6] 4935 ldr x1, [x29, 136] 4936 ldrh w1, [x1] 4937 cmp w2, w1 4938 bcs .L806 4939 mov w2, w22 4940 mov w1, 0 4941 bl gc_add_sblk 4942 cbz w0, .L807 4943 ldp x8, x6, [x29, 96] 4944 add w5, w24, 1 4945 add w21, w21, 1 4946 and w24, w5, 65535 4947 and w21, w21, 65535 4948 cmp w24, w19 4949 ldr x0, [x8, #:lo12:.LANCHOR11] 4950 ldrh w0, [x0, x6] 4951 add w3, w23, w0 4952 and w23, w3, 65535 4953 bcs .L808 4954 cmp w20, w23 4955 bcs .L807 4956.L808: 4957 cmp w24, w19 4958 adrp x0, .LANCHOR100 4959 bcc .L810 4960 cbnz w21, .L811 4961 ldr x1, [x29, 112] 4962 ldrh w2, [x1, #:lo12:.LANCHOR97] 4963 adrp x1, .LANCHOR107 4964 ldrh w1, [x1, #:lo12:.LANCHOR107] 4965 cmp w2, w1 4966 bls .L811 4967.L810: 4968 ldrh w2, [x0, #:lo12:.LANCHOR100] 4969 ldp x0, x3, [x29, 144] 4970 ldrh w1, [x27, #:lo12:.LANCHOR106] 4971 lsr w2, w2, 3 4972 ldrh w0, [x0, #:lo12:.LANCHOR91] 4973 ldrb w6, [x3, #:lo12:.LANCHOR85] 4974 mul w0, w0, w6 4975 sub w0, w0, w2 4976 cmp w1, w0 4977 bge .L803 4978 add w1, w1, w2 4979 strh w1, [x27, #:lo12:.LANCHOR106] 4980.L803: 4981 ldr w0, [x29, 128] 4982 cbz w0, .L784 4983 and w27, w19, 65535 4984 cmp w24, w27 4985 bcs .L784 4986 cmp w23, w20 4987 bcs .L784 4988 adrp x26, .LANCHOR96 4989 adrp x4, .LANCHOR94 4990 add x0, x26, :lo12:.LANCHOR96 4991 add x28, x4, :lo12:.LANCHOR94 4992 adrp x21, .LANCHOR108 4993 str x0, [x29, 144] 4994 mov w25, 64 4995 add x0, x21, :lo12:.LANCHOR108 4996 adrp x26, .LANCHOR11 4997 str x0, [x29, 136] 4998.L819: 4999 ldrh w6, [x28] 5000 ldr x0, [x29, 144] 5001 mov w1, w6 5002 bl _list_get_gc_head_node 5003 and w1, w0, 65535 5004 mov w2, 65535 5005 cmp w1, w2 5006 beq .L813 5007 add w6, w6, 1 5008 strh w6, [x28] 5009 ubfiz x6, x1, 1, 16 5010 ldr x1, [x26, #:lo12:.LANCHOR11] 5011 ldrh w2, [x1, x6] 5012 ldr x1, [x29, 136] 5013 ldrh w1, [x1] 5014 cmp w2, w1 5015 bcs .L814 5016 adrp x1, .LANCHOR104 5017 ldrh w2, [x1, #:lo12:.LANCHOR104] 5018 adrp x1, .LANCHOR105 5019 ldrh w1, [x1, #:lo12:.LANCHOR105] 5020 cmp w1, w2, lsr 1 5021 bls .L815 5022.L814: 5023 mov w2, w22 5024 mov w1, 0 5025 str x6, [x29, 128] 5026 bl gc_add_sblk 5027 cbz w0, .L816 5028 adrp x0, .LANCHOR11 5029 ldr x6, [x29, 128] 5030 add w5, w24, 1 5031 ldr x0, [x0, #:lo12:.LANCHOR11] 5032 and w24, w5, 65535 5033 cmp w27, w24 5034 ldrh w0, [x0, x6] 5035 add w3, w23, w0 5036 and w23, w3, 65535 5037 bls .L817 5038 cmp w20, w23 5039 bcs .L816 5040.L818: 5041 adrp x0, .LANCHOR100 5042 ldrh w1, [x21, #:lo12:.LANCHOR108] 5043 ldrh w0, [x0, #:lo12:.LANCHOR100] 5044 cmp w1, w0, lsr 1 5045 bls .L784 5046 sub w0, w1, w0, lsr 3 5047 strh w0, [x21, #:lo12:.LANCHOR108] 5048 b .L784 5049.L794: 5050 lsr w0, w0, 2 5051 mov w1, 0 5052 strh w0, [x25, #:lo12:.LANCHOR93] 5053 add x0, x28, :lo12:.LANCHOR101 5054 bl _list_get_gc_head_node 5055 and w1, w0, 65535 5056 mov w2, 65535 5057 cmp w1, w2 5058 beq .L796 5059 adrp x2, .LANCHOR11 5060 ubfiz x1, x1, 1, 16 5061 ldr x3, [x2, #:lo12:.LANCHOR11] 5062 adrp x2, .LANCHOR100 5063 ldrh w2, [x2, #:lo12:.LANCHOR100] 5064 ldrh w1, [x3, x1] 5065 cmp w1, w2, lsr 2 5066 bcs .L796 5067 mov w1, 1 5068 mov w2, w22 5069 strh w1, [x25, #:lo12:.LANCHOR93] 5070 mov w1, 0 5071 bl gc_add_sblk 5072 cmp w0, 0 5073 cset w24, ne 5074 b .L795 5075.L797: 5076 strh wzr, [x25] 5077 b .L793 5078.L798: 5079 sub w27, w27, #1 5080 ands w27, w27, 65535 5081 bne .L799 5082 b .L793 5083.L800: 5084 cmp w6, 64 5085 bls .L791 5086 strh wzr, [x28] 5087 b .L791 5088.L801: 5089 sub w26, w26, #1 5090 ands w26, w26, 65535 5091 bne .L802 5092 b .L791 5093.L824: 5094 mov w23, 0 5095 mov w24, 0 5096 b .L791 5097.L806: 5098 strh wzr, [x25, #:lo12:.LANCHOR95] 5099 b .L808 5100.L804: 5101 strh wzr, [x28] 5102 b .L808 5103.L807: 5104 sub w26, w26, #1 5105 ands w26, w26, 65535 5106 bne .L809 5107 b .L808 5108.L811: 5109 ldr x1, [x29, 152] 5110 ldrh w0, [x0, #:lo12:.LANCHOR100] 5111 ldrh w2, [x27, #:lo12:.LANCHOR106] 5112 ldrb w1, [x1, #:lo12:.LANCHOR85] 5113 mul w1, w1, w0 5114 cmp w2, w1 5115 ble .L784 5116 sub w0, w2, w0, lsr 3 5117 strh w0, [x27, #:lo12:.LANCHOR106] 5118 b .L784 5119.L813: 5120 cmp w6, 64 5121 bls .L815 5122 strh wzr, [x28] 5123.L815: 5124 cmp w24, w27 5125 bcc .L818 5126.L817: 5127 adrp x0, .LANCHOR100 5128 ldrh w2, [x21, #:lo12:.LANCHOR108] 5129 ldrh w1, [x0, #:lo12:.LANCHOR100] 5130 ldr x0, [x29, 152] 5131 ldrb w0, [x0, #:lo12:.LANCHOR85] 5132 mul w0, w0, w1 5133 sub w0, w0, #32 5134 cmp w2, w0 5135 bge .L784 5136 add w1, w2, w1, lsr 3 5137 strh w1, [x21, #:lo12:.LANCHOR108] 5138 b .L784 5139.L816: 5140 sub w25, w25, #1 5141 ands w25, w25, 65535 5142 bne .L819 5143 b .L815 5144.L825: 5145 mov w23, 0 5146 mov w24, 0 5147 b .L793 5148 .size gc_search_src_blk, .-gc_search_src_blk 5149 .section .text.zftl_get_gc_node,"ax",@progbits 5150 .align 2 5151 .global zftl_get_gc_node 5152 .type zftl_get_gc_node, %function 5153zftl_get_gc_node: 5154 and w1, w1, 65535 5155 and w0, w0, 65535 5156 cmp w1, 5 5157 bne .L877 5158 mov w1, w0 5159 adrp x0, .LANCHOR98 5160 add x0, x0, :lo12:.LANCHOR98 5161.L879: 5162 b _list_get_gc_head_node 5163.L877: 5164 cmp w1, 2 5165 mov w1, w0 5166 bne .L878 5167 adrp x0, .LANCHOR101 5168 add x0, x0, :lo12:.LANCHOR101 5169 b .L879 5170.L878: 5171 adrp x0, .LANCHOR96 5172 add x0, x0, :lo12:.LANCHOR96 5173 b .L879 5174 .size zftl_get_gc_node, .-zftl_get_gc_node 5175 .section .text.zftl_insert_free_list,"ax",@progbits 5176 .align 2 5177 .global zftl_insert_free_list 5178 .type zftl_insert_free_list, %function 5179zftl_insert_free_list: 5180 and w1, w0, 65535 5181 adrp x0, .LANCHOR9 5182 ldr x0, [x0, #:lo12:.LANCHOR9] 5183 add x0, x0, x1, uxth 2 5184 ldrb w0, [x0, 2] 5185 ands w0, w0, 24 5186 bne .L881 5187 adrp x2, .LANCHOR109 5188 adrp x0, .LANCHOR110 5189 add x2, x2, :lo12:.LANCHOR109 5190 add x0, x0, :lo12:.LANCHOR110 5191.L883: 5192 b _insert_free_list 5193.L881: 5194 cmp w0, 16 5195 bne .L882 5196 adrp x2, .LANCHOR111 5197 adrp x0, .LANCHOR112 5198 add x2, x2, :lo12:.LANCHOR111 5199 add x0, x0, :lo12:.LANCHOR112 5200 b .L883 5201.L882: 5202 adrp x2, .LANCHOR113 5203 adrp x0, .LANCHOR114 5204 add x2, x2, :lo12:.LANCHOR113 5205 add x0, x0, :lo12:.LANCHOR114 5206 b .L883 5207 .size zftl_insert_free_list, .-zftl_insert_free_list 5208 .section .text.zftl_insert_data_list,"ax",@progbits 5209 .align 2 5210 .global zftl_insert_data_list 5211 .type zftl_insert_data_list, %function 5212zftl_insert_data_list: 5213 and w1, w0, 65535 5214 adrp x0, .LANCHOR9 5215 ldr x0, [x0, #:lo12:.LANCHOR9] 5216 add x0, x0, x1, uxth 2 5217 ldrb w2, [x0, 2] 5218 and w2, w2, 224 5219 cmp w2, 64 5220 bne .L885 5221 adrp x2, .LANCHOR103 5222 adrp x0, .LANCHOR101 5223 add x2, x2, :lo12:.LANCHOR103 5224 add x0, x0, :lo12:.LANCHOR101 5225.L888: 5226 b _insert_data_list 5227.L885: 5228 cmp w2, 96 5229 bne .L886 5230 adrp x2, .LANCHOR105 5231 adrp x0, .LANCHOR96 5232 add x2, x2, :lo12:.LANCHOR105 5233 add x0, x0, :lo12:.LANCHOR96 5234 b .L888 5235.L886: 5236 cmp w2, 160 5237 bne .L884 5238 adrp x2, .LANCHOR97 5239 adrp x0, .LANCHOR98 5240 add x2, x2, :lo12:.LANCHOR97 5241 add x0, x0, :lo12:.LANCHOR98 5242 b .L888 5243.L884: 5244 ret 5245 .size zftl_insert_data_list, .-zftl_insert_data_list 5246 .section .text.zftl_gc_get_free_sblk,"ax",@progbits 5247 .align 2 5248 .global zftl_gc_get_free_sblk 5249 .type zftl_gc_get_free_sblk, %function 5250zftl_gc_get_free_sblk: 5251 stp x29, x30, [sp, -48]! 5252 add x29, sp, 0 5253 stp x19, x20, [sp, 16] 5254 adrp x20, .LANCHOR12 5255 stp x21, x22, [sp, 32] 5256 and w21, w0, 65535 5257 ldr x0, [x20, #:lo12:.LANCHOR12] 5258 and w22, w1, 65535 5259 ldrh w19, [x0, 588] 5260 mov w0, 65535 5261 cmp w19, w0 5262 beq .L890 5263 cbnz w21, .L890 5264 mov w1, w19 5265 adrp x0, .LC59 5266 add x0, x0, :lo12:.LC59 5267 bl printf 5268 ldr x0, [x20, #:lo12:.LANCHOR12] 5269 mov w1, -1 5270 strh w1, [x0, 588] 5271.L891: 5272 mov w0, w19 5273 ldp x19, x20, [sp, 16] 5274 ldp x21, x22, [sp, 32] 5275 ldp x29, x30, [sp], 48 5276 ret 5277.L890: 5278 adrp x2, .LANCHOR111 5279 adrp x20, .LANCHOR113 5280 ldrh w0, [x2, #:lo12:.LANCHOR111] 5281 ldrh w1, [x20, #:lo12:.LANCHOR113] 5282 cmp w0, w1 5283 bcc .L892 5284 adrp x3, .LANCHOR109 5285 ldrh w3, [x3, #:lo12:.LANCHOR109] 5286 cmp w3, w0 5287 bls .L893 5288 cbz w1, .L893 5289.L892: 5290 cbnz w21, .L894 5291 lsr w1, w1, 2 5292.L895: 5293 adrp x0, .LANCHOR114 5294 add x2, x20, :lo12:.LANCHOR113 5295 add x0, x0, :lo12:.LANCHOR114 5296.L910: 5297 bl _list_pop_index_node 5298 and w19, w0, 65535 5299 mov w0, 65535 5300 cmp w19, w0 5301 bne .L898 5302 adrp x0, .LANCHOR109 5303 ldrh w5, [x20, #:lo12:.LANCHOR113] 5304 mov w2, w22 5305 mov w1, w19 5306 ldrh w4, [x0, #:lo12:.LANCHOR109] 5307 adrp x0, .LANCHOR110 5308 ldr x3, [x0, #:lo12:.LANCHOR110] 5309 adrp x0, .LC60 5310 add x0, x0, :lo12:.LC60 5311 bl printf 5312.L898: 5313 cbz w21, .L891 5314 adrp x0, .LANCHOR19 5315 ldr w0, [x0, #:lo12:.LANCHOR19] 5316 tbz x0, 8, .L891 5317 adrp x4, .LANCHOR11 5318 adrp x1, .LANCHOR9 5319 uxtw x3, w19 5320 ldr x1, [x1, #:lo12:.LANCHOR9] 5321 lsl x0, x3, 2 5322 ldr x6, [x4, #:lo12:.LANCHOR11] 5323 add x2, x1, x0 5324 ldr w4, [x1, x0] 5325 ldrh w6, [x6, x3, lsl 1] 5326 ldrb w2, [x2, 2] 5327 ldrh w5, [x1, x0] 5328 ubfx x4, x4, 11, 8 5329 mov w1, w19 5330 adrp x0, .LC61 5331 ubfx x3, x2, 3, 2 5332 and w5, w5, 2047 5333 ubfx x2, x2, 5, 3 5334 add x0, x0, :lo12:.LC61 5335 bl printf 5336 b .L891 5337.L894: 5338 mov w1, 7 5339 mul w1, w0, w1 5340 lsr w1, w1, 3 5341 b .L895 5342.L893: 5343 lsr w1, w0, 3 5344 cmp w21, 0 5345 adrp x0, .LANCHOR112 5346 csel w1, w1, wzr, ne 5347 add x2, x2, :lo12:.LANCHOR111 5348 add x0, x0, :lo12:.LANCHOR112 5349 b .L910 5350 .size zftl_gc_get_free_sblk, .-zftl_gc_get_free_sblk 5351 .section .text.zftl_get_free_sblk,"ax",@progbits 5352 .align 2 5353 .global zftl_get_free_sblk 5354 .type zftl_get_free_sblk, %function 5355zftl_get_free_sblk: 5356 stp x29, x30, [sp, -48]! 5357 add x29, sp, 0 5358 stp x19, x20, [sp, 16] 5359 and w20, w1, 65535 5360 str x21, [sp, 32] 5361 cmp w20, 5 5362 bne .L912 5363 adrp x2, .LANCHOR111 5364 adrp x0, .LANCHOR113 5365 ldrh w3, [x2, #:lo12:.LANCHOR111] 5366 ldrh w1, [x0, #:lo12:.LANCHOR113] 5367 cmp w3, w1 5368 bcc .L913 5369 adrp x4, .LANCHOR109 5370 ldrh w4, [x4, #:lo12:.LANCHOR109] 5371 cmp w4, w3 5372 bls .L914 5373 cbz w1, .L914 5374.L913: 5375 add x2, x0, :lo12:.LANCHOR113 5376 lsr w1, w1, 1 5377.L933: 5378 adrp x0, .LANCHOR114 5379 add x0, x0, :lo12:.LANCHOR114 5380 b .L932 5381.L914: 5382 adrp x0, .LANCHOR112 5383 add x2, x2, :lo12:.LANCHOR111 5384 add x0, x0, :lo12:.LANCHOR112 5385 mov w1, 0 5386.L932: 5387 bl _list_pop_index_node 5388 and w19, w0, 65535 5389 mov w0, 65535 5390 cmp w19, w0 5391 bne .L917 5392 adrp x0, .LANCHOR113 5393 mov w2, w20 5394 mov w1, w19 5395 ldrh w5, [x0, #:lo12:.LANCHOR113] 5396 adrp x0, .LANCHOR109 5397 ldrh w4, [x0, #:lo12:.LANCHOR109] 5398 adrp x0, .LANCHOR110 5399 ldr x3, [x0, #:lo12:.LANCHOR110] 5400 adrp x0, .LC60 5401 add x0, x0, :lo12:.LC60 5402 bl printf 5403 b .L917 5404.L912: 5405 adrp x21, .LANCHOR12 5406 and w3, w0, 65535 5407 ldr x0, [x21, #:lo12:.LANCHOR12] 5408 ldrh w19, [x0, 590] 5409 mov w0, 65535 5410 cmp w19, w0 5411 beq .L916 5412 cmp w20, 1 5413 beq .L916 5414 mov w1, w19 5415 adrp x0, .LC62 5416 add x0, x0, :lo12:.LC62 5417 bl printf 5418 ldr x0, [x21, #:lo12:.LANCHOR12] 5419 mov w1, -1 5420 strh w1, [x0, 590] 5421.L917: 5422 mov w0, w19 5423 ldr x21, [sp, 32] 5424 ldp x19, x20, [sp, 16] 5425 ldp x29, x30, [sp], 48 5426 ret 5427.L916: 5428 adrp x2, .LANCHOR109 5429 adrp x4, .LANCHOR113 5430 ldrh w0, [x2, #:lo12:.LANCHOR109] 5431 ldrh w1, [x4, #:lo12:.LANCHOR113] 5432 cmp w0, w1 5433 bcc .L918 5434 adrp x5, .LANCHOR111 5435 ldrh w5, [x5, #:lo12:.LANCHOR111] 5436 cmp w5, w0 5437 bls .L919 5438 cbz w1, .L919 5439.L918: 5440 bl get_ink_scaned_blk 5441 and w19, w0, 65535 5442 mov w0, 65535 5443 cmp w19, w0 5444 bne .L917 5445 cmp w20, 1 5446 bne .L920 5447 ldrh w3, [x4, #:lo12:.LANCHOR113] 5448 lsr w3, w3, 1 5449.L920: 5450 add x2, x4, :lo12:.LANCHOR113 5451 mov w1, w3 5452 b .L933 5453.L919: 5454 lsr w0, w0, 1 5455 cmp w20, 1 5456 csel w3, w0, w3, eq 5457 add x2, x2, :lo12:.LANCHOR109 5458 adrp x0, .LANCHOR110 5459 mov w1, w3 5460 add x0, x0, :lo12:.LANCHOR110 5461 b .L932 5462 .size zftl_get_free_sblk, .-zftl_get_free_sblk 5463 .section .text.zftl_remove_data_node,"ax",@progbits 5464 .align 2 5465 .global zftl_remove_data_node 5466 .type zftl_remove_data_node, %function 5467zftl_remove_data_node: 5468 and w1, w0, 65535 5469 adrp x0, .LANCHOR9 5470 ldr x0, [x0, #:lo12:.LANCHOR9] 5471 add x0, x0, x1, uxth 2 5472 ldrb w2, [x0, 2] 5473 and w2, w2, 224 5474 cmp w2, 64 5475 bne .L935 5476 adrp x2, .LANCHOR103 5477 adrp x0, .LANCHOR101 5478 add x2, x2, :lo12:.LANCHOR103 5479 add x0, x0, :lo12:.LANCHOR101 5480.L938: 5481 b _list_remove_node 5482.L935: 5483 cmp w2, 96 5484 bne .L936 5485 adrp x2, .LANCHOR105 5486 adrp x0, .LANCHOR96 5487 add x2, x2, :lo12:.LANCHOR105 5488 add x0, x0, :lo12:.LANCHOR96 5489 b .L938 5490.L936: 5491 cmp w2, 160 5492 bne .L934 5493 adrp x2, .LANCHOR97 5494 adrp x0, .LANCHOR98 5495 add x2, x2, :lo12:.LANCHOR97 5496 add x0, x0, :lo12:.LANCHOR98 5497 b .L938 5498.L934: 5499 ret 5500 .size zftl_remove_data_node, .-zftl_remove_data_node 5501 .section .text.zftl_remove_free_node,"ax",@progbits 5502 .align 2 5503 .global zftl_remove_free_node 5504 .type zftl_remove_free_node, %function 5505zftl_remove_free_node: 5506 and w1, w0, 65535 5507 adrp x0, .LANCHOR9 5508 ldr x0, [x0, #:lo12:.LANCHOR9] 5509 add x0, x0, x1, uxth 2 5510 ldrb w0, [x0, 2] 5511 ands w0, w0, 24 5512 bne .L940 5513 adrp x2, .LANCHOR109 5514 adrp x0, .LANCHOR110 5515 add x2, x2, :lo12:.LANCHOR109 5516 add x0, x0, :lo12:.LANCHOR110 5517.L942: 5518 b _list_remove_node 5519.L940: 5520 cmp w0, 16 5521 bne .L941 5522 adrp x2, .LANCHOR111 5523 adrp x0, .LANCHOR112 5524 add x2, x2, :lo12:.LANCHOR111 5525 add x0, x0, :lo12:.LANCHOR112 5526 b .L942 5527.L941: 5528 adrp x2, .LANCHOR113 5529 adrp x0, .LANCHOR114 5530 add x2, x2, :lo12:.LANCHOR113 5531 add x0, x0, :lo12:.LANCHOR114 5532 b .L942 5533 .size zftl_remove_free_node, .-zftl_remove_free_node 5534 .section .text.zftl_list_update_data_list,"ax",@progbits 5535 .align 2 5536 .global zftl_list_update_data_list 5537 .type zftl_list_update_data_list, %function 5538zftl_list_update_data_list: 5539 and w1, w0, 65535 5540 adrp x0, .LANCHOR9 5541 ldr x0, [x0, #:lo12:.LANCHOR9] 5542 add x0, x0, x1, uxth 2 5543 ldrb w2, [x0, 2] 5544 and w2, w2, 224 5545 cmp w2, 64 5546 bne .L944 5547 adrp x2, .LANCHOR103 5548 adrp x0, .LANCHOR101 5549 add x2, x2, :lo12:.LANCHOR103 5550 add x0, x0, :lo12:.LANCHOR101 5551.L947: 5552 b _list_update_data_list 5553.L944: 5554 cmp w2, 96 5555 bne .L945 5556 adrp x2, .LANCHOR105 5557 adrp x0, .LANCHOR96 5558 add x2, x2, :lo12:.LANCHOR105 5559 add x0, x0, :lo12:.LANCHOR96 5560 b .L947 5561.L945: 5562 cmp w2, 160 5563 bne .L943 5564 adrp x2, .LANCHOR97 5565 adrp x0, .LANCHOR98 5566 add x2, x2, :lo12:.LANCHOR97 5567 add x0, x0, :lo12:.LANCHOR98 5568 b .L947 5569.L943: 5570 ret 5571 .size zftl_list_update_data_list, .-zftl_list_update_data_list 5572 .section .text.print_list_info,"ax",@progbits 5573 .align 2 5574 .global print_list_info 5575 .type print_list_info, %function 5576print_list_info: 5577 sub sp, sp, #96 5578 stp x29, x30, [sp, 32] 5579 add x29, sp, 32 5580 ldrh w2, [x1] 5581 ldr x1, [x0] 5582 stp x19, x20, [sp, 48] 5583 mov x19, x0 5584 stp x21, x22, [sp, 64] 5585 adrp x0, .LC63 5586 stp x23, x24, [sp, 80] 5587 add x0, x0, :lo12:.LC63 5588 bl printf 5589 ldr x19, [x19] 5590 cbz x19, .L948 5591 mov x24, -6148914691236517206 5592 adrp x22, .LC64 5593 adrp x21, .LANCHOR115 5594 add x22, x22, :lo12:.LC64 5595 add x21, x21, :lo12:.LANCHOR115 5596 mov w20, 0 5597 adrp x23, .LANCHOR4 5598 movk x24, 0xaaab, lsl 0 5599.L952: 5600 ldr x2, [x23, #:lo12:.LANCHOR4] 5601 adrp x1, .LANCHOR9 5602 adrp x8, .LANCHOR11 5603 ldrh w5, [x19, 4] 5604 sub x2, x19, x2 5605 ldr x1, [x1, #:lo12:.LANCHOR9] 5606 asr x2, x2, 1 5607 ldr x8, [x8, #:lo12:.LANCHOR11] 5608 ldrh w4, [x19, 2] 5609 mul x2, x2, x24 5610 and x7, x2, 65535 5611 and w2, w2, 65535 5612 lsl x0, x7, 2 5613 add x3, x1, x0 5614 ldrh w7, [x8, x7, lsl 1] 5615 ldrb w6, [x3, 2] 5616 ldrh w3, [x19] 5617 str w7, [sp, 16] 5618 ldrh w7, [x1, x0] 5619 and w7, w7, 2047 5620 str w7, [sp, 8] 5621 ubfx x7, x6, 3, 2 5622 ubfx x6, x6, 5, 3 5623 ldr w0, [x1, x0] 5624 mov w1, w20 5625 ubfx x0, x0, 11, 8 5626 str w0, [sp] 5627 mov x0, x22 5628 bl printf 5629 ldrh w19, [x19] 5630 mov w0, 65535 5631 cmp w19, w0 5632 beq .L948 5633 ldr x0, [x23, #:lo12:.LANCHOR4] 5634 mov w1, 6 5635 add w20, w20, 1 5636 and w20, w20, 65535 5637 umaddl x19, w19, w1, x0 5638 ldrh w0, [x21] 5639 cmp w0, w20 5640 bcs .L952 5641.L948: 5642 ldp x19, x20, [sp, 48] 5643 ldp x21, x22, [sp, 64] 5644 ldp x23, x24, [sp, 80] 5645 ldp x29, x30, [sp, 32] 5646 add sp, sp, 96 5647 ret 5648 .size print_list_info, .-print_list_info 5649 .section .text.dump_all_list_info,"ax",@progbits 5650 .align 2 5651 .global dump_all_list_info 5652 .type dump_all_list_info, %function 5653dump_all_list_info: 5654 stp x29, x30, [sp, -16]! 5655 adrp x1, .LANCHOR109 5656 adrp x0, .LANCHOR110 5657 add x1, x1, :lo12:.LANCHOR109 5658 add x29, sp, 0 5659 add x0, x0, :lo12:.LANCHOR110 5660 bl print_list_info 5661 adrp x1, .LANCHOR111 5662 adrp x0, .LANCHOR112 5663 add x1, x1, :lo12:.LANCHOR111 5664 add x0, x0, :lo12:.LANCHOR112 5665 bl print_list_info 5666 adrp x1, .LANCHOR113 5667 adrp x0, .LANCHOR114 5668 add x1, x1, :lo12:.LANCHOR113 5669 add x0, x0, :lo12:.LANCHOR114 5670 bl print_list_info 5671 adrp x1, .LANCHOR103 5672 adrp x0, .LANCHOR101 5673 add x1, x1, :lo12:.LANCHOR103 5674 add x0, x0, :lo12:.LANCHOR101 5675 bl print_list_info 5676 adrp x1, .LANCHOR105 5677 adrp x0, .LANCHOR96 5678 add x1, x1, :lo12:.LANCHOR105 5679 add x0, x0, :lo12:.LANCHOR96 5680 bl print_list_info 5681 ldp x29, x30, [sp], 16 5682 adrp x1, .LANCHOR97 5683 adrp x0, .LANCHOR98 5684 add x1, x1, :lo12:.LANCHOR97 5685 add x0, x0, :lo12:.LANCHOR98 5686 b print_list_info 5687 .size dump_all_list_info, .-dump_all_list_info 5688 .section .text.ftl_tmp_into_update,"ax",@progbits 5689 .align 2 5690 .global ftl_tmp_into_update 5691 .type ftl_tmp_into_update, %function 5692ftl_tmp_into_update: 5693 adrp x0, .LANCHOR69 5694 ldr x0, [x0, #:lo12:.LANCHOR69] 5695 ldr w1, [x0, 16] 5696 cmp w1, 2048 5697 bls .L957 5698 ldr w2, [x0, 20] 5699 add w2, w2, w1, lsr 11 5700 and w1, w1, 2047 5701 stp w1, w2, [x0, 16] 5702.L957: 5703 ldr w1, [x0, 24] 5704 cmp w1, 2048 5705 bls .L958 5706 ldr w2, [x0, 28] 5707 add w2, w2, w1, lsr 11 5708 and w1, w1, 2047 5709 stp w1, w2, [x0, 24] 5710.L958: 5711 ldr w1, [x0, 32] 5712 cmp w1, 1024 5713 bls .L959 5714 ldr w2, [x0, 36] 5715 add w2, w2, w1, lsr 10 5716 and w1, w1, 1023 5717 stp w1, w2, [x0, 32] 5718.L959: 5719 ldr w1, [x0, 40] 5720 cmp w1, 1024 5721 bls .L956 5722 ldr w2, [x0, 44] 5723 add w2, w2, w1, lsr 10 5724 and w1, w1, 1023 5725 stp w1, w2, [x0, 40] 5726.L956: 5727 ret 5728 .size ftl_tmp_into_update, .-ftl_tmp_into_update 5729 .section .text.ftl_get_blk_list_in_sblk,"ax",@progbits 5730 .align 2 5731 .global ftl_get_blk_list_in_sblk 5732 .type ftl_get_blk_list_in_sblk, %function 5733ftl_get_blk_list_in_sblk: 5734 adrp x2, .LANCHOR9 5735 and w0, w0, 65535 5736 mov w7, 24 5737 adrp x8, .LANCHOR80 5738 ldr x2, [x2, #:lo12:.LANCHOR9] 5739 add x8, x8, :lo12:.LANCHOR80 5740 mov w3, 0 5741 add x2, x2, x0, uxth 2 5742 ldrb w13, [x2, 3] 5743 adrp x2, .LANCHOR85 5744 ldrb w11, [x2, #:lo12:.LANCHOR85] 5745 adrp x2, .LANCHOR81 5746 ldrb w6, [x2, #:lo12:.LANCHOR81] 5747 adrp x2, .LANCHOR31 5748 ldrb w2, [x2, #:lo12:.LANCHOR31] 5749 sub w7, w7, w2 5750 and w2, w6, 65535 5751 mul w0, w0, w2 5752 sub w2, w2, #1 5753 sxth w5, w2 5754 and w4, w0, 65535 5755 mov w0, 0 5756.L962: 5757 cmp w3, w11 5758 blt .L966 5759 sxtw x2, w0 5760 mov w3, -1 5761.L967: 5762 cmp w11, w2 5763 bgt .L968 5764 ret 5765.L966: 5766 asr w2, w13, w3 5767 tbnz x2, 0, .L963 5768 sdiv w2, w3, w6 5769 ldrh w10, [x8] 5770 sbfiz x12, x0, 1, 32 5771 cmp w6, 1 5772 sub w10, w7, w10 5773 lsl w2, w2, w10 5774 add w2, w4, w2 5775 and w2, w2, 65535 5776 bhi .L964 5777.L969: 5778 add w0, w0, 1 5779 strh w2, [x1, x12] 5780.L963: 5781 add w3, w3, 1 5782 b .L962 5783.L964: 5784 and w10, w5, w3 5785 add w2, w2, w10 5786 b .L969 5787.L968: 5788 strh w3, [x1, x2, lsl 1] 5789 add x2, x2, 1 5790 b .L967 5791 .size ftl_get_blk_list_in_sblk, .-ftl_get_blk_list_in_sblk 5792 .section .text.ftl_ink_check_sblk,"ax",@progbits 5793 .align 2 5794 .global ftl_ink_check_sblk 5795 .type ftl_ink_check_sblk, %function 5796ftl_ink_check_sblk: 5797 ret 5798 .size ftl_ink_check_sblk, .-ftl_ink_check_sblk 5799 .section .text.ftl_alloc_sblk,"ax",@progbits 5800 .align 2 5801 .global ftl_alloc_sblk 5802 .type ftl_alloc_sblk, %function 5803ftl_alloc_sblk: 5804 stp x29, x30, [sp, -64]! 5805 cmp w0, 5 5806 add x29, sp, 0 5807 str x23, [sp, 48] 5808 and w23, w0, 65535 5809 stp x19, x20, [sp, 16] 5810 mov w1, w23 5811 stp x21, x22, [sp, 32] 5812 cset w20, eq 5813 mov w21, w0 5814 mov w0, 0 5815 bl zftl_get_free_sblk 5816 and w19, w0, 65535 5817 mov w0, 65535 5818 cmp w19, w0 5819 beq .L973 5820 adrp x0, .LANCHOR9 5821 mov w22, w19 5822 lsl w20, w20, 1 5823 ldr x0, [x0, #:lo12:.LANCHOR9] 5824 add x19, x0, x19, uxth 2 5825 ldrb w0, [x19, 2] 5826 tst w0, 224 5827 beq .L974 5828 adrp x1, .LANCHOR116 5829 adrp x0, .LC0 5830 mov w2, 1014 5831 add x1, x1, :lo12:.LANCHOR116 5832 add x0, x0, :lo12:.LC0 5833 bl printf 5834.L974: 5835 ldrb w0, [x19, 2] 5836 bfi w0, w21, 5, 3 5837 ubfx x1, x0, 3, 2 5838 orr w1, w20, w1 5839 bfi w0, w1, 3, 2 5840 strb w0, [x19, 2] 5841 and w1, w0, 24 5842 cmp w1, 24 5843 bne .L975 5844 cbnz w20, .L975 5845 mov w1, 1 5846 bfi w0, w1, 3, 2 5847 strb w0, [x19, 2] 5848.L975: 5849 mov w0, w22 5850 ldr x23, [sp, 48] 5851 ldp x19, x20, [sp, 16] 5852 ldp x21, x22, [sp, 32] 5853 ldp x29, x30, [sp], 64 5854 ret 5855.L973: 5856 mov w1, w23 5857 ldr x23, [sp, 48] 5858 ldp x19, x20, [sp, 16] 5859 mov w0, 0 5860 ldp x21, x22, [sp, 32] 5861 ldp x29, x30, [sp], 64 5862 b zftl_get_free_sblk 5863 .size ftl_alloc_sblk, .-ftl_alloc_sblk 5864 .section .text.ftl_erase_phy_blk,"ax",@progbits 5865 .align 2 5866 .global ftl_erase_phy_blk 5867 .type ftl_erase_phy_blk, %function 5868ftl_erase_phy_blk: 5869 stp x29, x30, [sp, -48]! 5870 and w0, w0, 65535 5871 add x29, sp, 0 5872 stp x21, x22, [sp, 32] 5873 mov w21, w1 5874 adrp x1, .LANCHOR31 5875 stp x19, x20, [sp, 16] 5876 adrp x22, .LANCHOR117 5877 ldrb w19, [x1, #:lo12:.LANCHOR31] 5878 mov w1, 24 5879 sub w19, w1, w19 5880 adrp x1, .LANCHOR80 5881 ldrh w1, [x1, #:lo12:.LANCHOR80] 5882 sub w1, w19, w1 5883 mov w19, 1 5884 lsl w19, w19, w1 5885 sub w19, w19, #1 5886 and w19, w19, w0 5887 asr w20, w0, w1 5888 adrp x0, .LANCHOR86 5889 sxth w19, w19 5890 ldrb w0, [x0, #:lo12:.LANCHOR86] 5891 cbz w0, .L982 5892 adrp x0, .LANCHOR87 5893 ldrb w0, [x0, #:lo12:.LANCHOR87] 5894 cbnz w0, .L982 5895 ldrh w2, [x22, #:lo12:.LANCHOR117] 5896 cmp w21, 0 5897 cset w1, eq 5898 mov w0, w20 5899 mul w2, w2, w19 5900 bl flash_erase_block_en 5901.L982: 5902 ldrh w2, [x22, #:lo12:.LANCHOR117] 5903 mov w1, w21 5904 mov w0, w20 5905 ldp x21, x22, [sp, 32] 5906 mul w2, w2, w19 5907 ldp x19, x20, [sp, 16] 5908 ldp x29, x30, [sp], 48 5909 b flash_erase_block_en 5910 .size ftl_erase_phy_blk, .-ftl_erase_phy_blk 5911 .section .text.ftl_erase_sblk,"ax",@progbits 5912 .align 2 5913 .global ftl_erase_sblk 5914 .type ftl_erase_sblk, %function 5915ftl_erase_sblk: 5916 stp x29, x30, [sp, -176]! 5917 add x29, sp, 0 5918 stp x23, x24, [sp, 48] 5919 adrp x23, .LANCHOR9 5920 stp x25, x26, [sp, 64] 5921 and w26, w0, 65535 5922 ldr x0, [x23, #:lo12:.LANCHOR9] 5923 adrp x25, .LANCHOR118 5924 stp x21, x22, [sp, 32] 5925 ubfiz x22, x26, 2, 16 5926 add x0, x0, x22 5927 stp x27, x28, [sp, 80] 5928 stp x19, x20, [sp, 16] 5929 adrp x24, .LANCHOR81 5930 mov w20, w1 5931 add x25, x25, :lo12:.LANCHOR118 5932 ldrb w28, [x0, 3] 5933 add x24, x24, :lo12:.LANCHOR81 5934 add x27, x29, 112 5935 mov w19, 0 5936.L988: 5937 ldrb w0, [x25] 5938 cmp w19, w0 5939 bge .L999 5940 ldrb w1, [x24] 5941 adrp x0, .LANCHOR117 5942 mov w21, 0 5943 ldrh w3, [x0, #:lo12:.LANCHOR117] 5944 sub w4, w1, #1 5945 mov w0, 0 5946 mul w6, w19, w1 5947 mul w5, w26, w1 5948 b .L1000 5949.L990: 5950 add w2, w0, w6 5951 asr w2, w28, w2 5952 tbnz x2, 0, .L989 5953 and w2, w0, w4 5954 add w2, w2, w5 5955 mul w2, w2, w3 5956 str w2, [x27, w21, sxtw 2] 5957 add w21, w21, 1 5958.L989: 5959 add w0, w0, 1 5960.L1000: 5961 cmp w0, w1 5962 blt .L990 5963 cmp w1, 4 5964 bne .L991 5965 mov x3, 0 5966.L992: 5967 cmp w21, w3 5968 bgt .L993 5969.L994: 5970 add w19, w19, 1 5971 b .L988 5972.L993: 5973 ldr w2, [x27, x3, lsl 2] 5974 mov w1, w20 5975 str x3, [x29, 104] 5976 mov w0, w19 5977 bl flash_erase_block_en 5978 ldr x3, [x29, 104] 5979 add x3, x3, 1 5980 b .L992 5981.L991: 5982 cmp w21, 2 5983 bne .L995 5984 adrp x0, .LANCHOR86 5985 ldrb w0, [x0, #:lo12:.LANCHOR86] 5986 cbz w0, .L996 5987 adrp x0, .LANCHOR87 5988 ldrb w0, [x0, #:lo12:.LANCHOR87] 5989 cbnz w0, .L996 5990 ldp w2, w3, [x29, 112] 5991 cmp w20, 0 5992 cset w1, eq 5993 mov w0, w19 5994 bl flash_erase_duplane_block 5995.L996: 5996 ldp w2, w3, [x29, 112] 5997 mov w1, w20 5998 mov w0, w19 5999 bl flash_erase_duplane_block 6000 b .L994 6001.L995: 6002 cmp w21, 1 6003 bne .L994 6004 adrp x0, .LANCHOR86 6005 ldrb w0, [x0, #:lo12:.LANCHOR86] 6006 cbz w0, .L998 6007 adrp x0, .LANCHOR87 6008 ldrb w0, [x0, #:lo12:.LANCHOR87] 6009 cbnz w0, .L998 6010 ldr w2, [x29, 112] 6011 cmp w20, 0 6012 cset w1, eq 6013 mov w0, w19 6014 bl flash_erase_block_en 6015.L998: 6016 ldr w2, [x29, 112] 6017 mov w1, w20 6018 mov w0, w19 6019 bl flash_erase_block_en 6020 b .L994 6021.L999: 6022 adrp x2, .LANCHOR69 6023 ldr x3, [x23, #:lo12:.LANCHOR9] 6024 cbnz w20, .L1001 6025 ldrh w1, [x3, x22] 6026 add w0, w1, 1 6027 and w0, w0, 2047 6028 bfi w1, w0, 0, 11 6029 strh w1, [x3, x22] 6030 ldr x1, [x2, #:lo12:.LANCHOR69] 6031 ldr w2, [x1, 84] 6032 add w2, w2, 1 6033 str w2, [x1, 84] 6034 ldrh w2, [x1, 96] 6035 cmp w2, w0 6036 bge .L1003 6037 strh w0, [x1, 96] 6038.L1003: 6039 ldp x19, x20, [sp, 16] 6040 mov w0, 0 6041 ldp x21, x22, [sp, 32] 6042 ldp x23, x24, [sp, 48] 6043 ldp x25, x26, [sp, 64] 6044 ldp x27, x28, [sp, 80] 6045 ldp x29, x30, [sp], 176 6046 ret 6047.L1001: 6048 ldr w1, [x3, x22] 6049 ubfx x0, x1, 11, 8 6050 add w0, w0, 1 6051 and w0, w0, 255 6052 bfi w1, w0, 11, 8 6053 str w1, [x3, x22] 6054 and w0, w0, 65535 6055 ldr x1, [x2, #:lo12:.LANCHOR69] 6056 ldr w2, [x1, 80] 6057 add w2, w2, 1 6058 str w2, [x1, 80] 6059 ldrh w2, [x1, 98] 6060 cmp w2, w0 6061 bcs .L1003 6062 strh w0, [x1, 98] 6063 b .L1003 6064 .size ftl_erase_sblk, .-ftl_erase_sblk 6065 .section .text.ftl_alloc_sys_blk,"ax",@progbits 6066 .align 2 6067 .global ftl_alloc_sys_blk 6068 .type ftl_alloc_sys_blk, %function 6069ftl_alloc_sys_blk: 6070 stp x29, x30, [sp, -32]! 6071 adrp x0, .LANCHOR69 6072 add x29, sp, 0 6073 ldr x1, [x0, #:lo12:.LANCHOR69] 6074 ldrh w2, [x1, 136] 6075 str x19, [sp, 16] 6076 mov x19, x0 6077 cmp w2, 63 6078 bls .L1013 6079 strh wzr, [x1, 136] 6080.L1013: 6081 ldrh w0, [x1, 112] 6082 cbnz w0, .L1014 6083 adrp x1, .LANCHOR119 6084 adrp x0, .LC0 6085 mov w2, 1364 6086 add x1, x1, :lo12:.LANCHOR119 6087 add x0, x0, :lo12:.LC0 6088 bl printf 6089.L1014: 6090 ldr x1, [x19, #:lo12:.LANCHOR69] 6091 mov w5, 65535 6092.L1017: 6093 ldrh w2, [x1, 136] 6094.L1015: 6095 mov w3, w2 6096 cmp w2, 63 6097 ble .L1016 6098 strh wzr, [x1, 136] 6099 b .L1017 6100.L1016: 6101 add x4, x2, 1 6102 add x0, x1, x4, lsl 1 6103 ldrh w0, [x0, 158] 6104 cmp w0, w5 6105 bne .L1020 6106 mov x2, x4 6107 b .L1015 6108.L1020: 6109 add x3, x1, x3, sxtw 1 6110 mov w4, -1 6111 ldr x19, [sp, 16] 6112 strh w4, [x3, 160] 6113 strh w2, [x1, 136] 6114 ldrh w2, [x1, 112] 6115 sub w2, w2, #1 6116 strh w2, [x1, 112] 6117 ldp x29, x30, [sp], 32 6118 ret 6119 .size ftl_alloc_sys_blk, .-ftl_alloc_sys_blk 6120 .section .text.ftl_free_sys_blk,"ax",@progbits 6121 .align 2 6122 .global ftl_free_sys_blk 6123 .type ftl_free_sys_blk, %function 6124ftl_free_sys_blk: 6125 stp x29, x30, [sp, -32]! 6126 add x29, sp, 0 6127 stp x19, x20, [sp, 16] 6128 and w20, w0, 65535 6129 adrp x0, .LANCHOR69 6130 mov x19, x0 6131 ldr x1, [x0, #:lo12:.LANCHOR69] 6132 ldrh w2, [x1, 138] 6133 cmp w2, 63 6134 bls .L1023 6135 strh wzr, [x1, 138] 6136.L1023: 6137 ldrh w0, [x1, 112] 6138 cmp w0, 63 6139 bls .L1024 6140 adrp x1, .LANCHOR120 6141 adrp x0, .LC0 6142 mov w2, 1391 6143 add x1, x1, :lo12:.LANCHOR120 6144 add x0, x0, :lo12:.LC0 6145 bl printf 6146.L1024: 6147 ldr x0, [x19, #:lo12:.LANCHOR69] 6148 mov w4, 65535 6149.L1027: 6150 ldrh w1, [x0, 138] 6151.L1025: 6152 mov w2, w1 6153 cmp w1, 63 6154 ble .L1026 6155 strh wzr, [x0, 138] 6156 b .L1027 6157.L1026: 6158 add x3, x1, 1 6159 add x5, x0, x3, lsl 1 6160 ldrh w5, [x5, 158] 6161 cmp w5, w4 6162 bne .L1028 6163 add x2, x0, x2, sxtw 1 6164 strh w20, [x2, 160] 6165 strh w1, [x0, 138] 6166 ldrh w1, [x0, 112] 6167 ldp x19, x20, [sp, 16] 6168 add w1, w1, 1 6169 strh w1, [x0, 112] 6170 ldp x29, x30, [sp], 32 6171 ret 6172.L1028: 6173 mov x1, x3 6174 b .L1025 6175 .size ftl_free_sys_blk, .-ftl_free_sys_blk 6176 .section .text.ftl_info_data_recovery,"ax",@progbits 6177 .align 2 6178 .global ftl_info_data_recovery 6179 .type ftl_info_data_recovery, %function 6180ftl_info_data_recovery: 6181 ldrh w2, [x0] 6182 mov w1, 65535 6183 cmp w2, w1 6184 beq .L1041 6185 stp x29, x30, [sp, -48]! 6186 adrp x1, .LANCHOR9 6187 add x29, sp, 0 6188 stp x19, x20, [sp, 16] 6189 ubfiz x19, x2, 2, 16 6190 ldr x20, [x1, #:lo12:.LANCHOR9] 6191 str x21, [sp, 32] 6192 add x21, x20, x19 6193 ldrb w1, [x21, 2] 6194 tst w1, 224 6195 bne .L1031 6196 ldrb w0, [x0, 4] 6197 bfi w1, w0, 5, 3 6198 strb w1, [x21, 2] 6199 mov w0, w2 6200 bl zftl_remove_free_node 6201 ldrb w0, [x21, 2] 6202 adrp x1, .LANCHOR69 6203 ldr x3, [x1, #:lo12:.LANCHOR69] 6204 tbz x0, 3, .L1035 6205 ldrh w2, [x3, 116] 6206 sub w2, w2, #1 6207 strh w2, [x3, 116] 6208.L1036: 6209 and w0, w0, 224 6210 cmp w0, 160 6211 bne .L1038 6212 ldr w0, [x20, x19] 6213 ldr x1, [x1, #:lo12:.LANCHOR69] 6214 ubfx x2, x0, 11, 8 6215 add w2, w2, 1 6216 bfi w0, w2, 11, 8 6217 str w0, [x20, x19] 6218 ldrh w0, [x1, 120] 6219 sub w0, w0, #1 6220 strh w0, [x1, 120] 6221.L1031: 6222 ldp x19, x20, [sp, 16] 6223 ldr x21, [sp, 32] 6224 ldp x29, x30, [sp], 48 6225 ret 6226.L1035: 6227 tst w0, 24 6228 bne .L1037 6229 ldrh w2, [x3, 114] 6230 sub w2, w2, #1 6231 strh w2, [x3, 114] 6232 b .L1036 6233.L1037: 6234 ldrh w2, [x3, 118] 6235 sub w2, w2, #1 6236 strh w2, [x3, 118] 6237 b .L1036 6238.L1038: 6239 ldrh w2, [x20, x19] 6240 cmp w0, 64 6241 add w3, w2, 1 6242 bfi w2, w3, 0, 11 6243 strh w2, [x20, x19] 6244 bne .L1039 6245 ldr x1, [x1, #:lo12:.LANCHOR69] 6246 ldrh w0, [x1, 122] 6247 sub w0, w0, #1 6248 strh w0, [x1, 122] 6249 b .L1031 6250.L1039: 6251 cmp w0, 96 6252 bne .L1031 6253 ldr x1, [x1, #:lo12:.LANCHOR69] 6254 ldrh w0, [x1, 124] 6255 sub w0, w0, #1 6256 strh w0, [x1, 124] 6257 b .L1031 6258.L1041: 6259 ret 6260 .size ftl_info_data_recovery, .-ftl_info_data_recovery 6261 .section .text.ftl_get_ppa_from_index,"ax",@progbits 6262 .align 2 6263 .global ftl_get_ppa_from_index 6264 .type ftl_get_ppa_from_index, %function 6265ftl_get_ppa_from_index: 6266 stp x29, x30, [sp, -32]! 6267 adrp x1, .LANCHOR12 6268 adrp x3, .LANCHOR85 6269 and w0, w0, 65535 6270 add x29, sp, 0 6271 ldr x2, [x1, #:lo12:.LANCHOR12] 6272 adrp x1, .LANCHOR100 6273 ldrb w3, [x3, #:lo12:.LANCHOR85] 6274 ldrh w1, [x1, #:lo12:.LANCHOR100] 6275 stp x19, x20, [sp, 16] 6276 mul w1, w1, w3 6277 cmp w0, w1 6278 bge .L1045 6279 add x2, x2, 16 6280.L1046: 6281 ldrb w1, [x2, 9] 6282 sdiv w19, w0, w1 6283 msub w0, w19, w1, w0 6284 add x0, x2, x0, uxth 1 6285 ldrh w20, [x0, 16] 6286 mov w0, 65535 6287 cmp w20, w0 6288 bne .L1047 6289 adrp x1, .LANCHOR121 6290 adrp x0, .LC0 6291 mov w2, 1950 6292 add x1, x1, :lo12:.LANCHOR121 6293 add x0, x0, :lo12:.LC0 6294 bl printf 6295.L1047: 6296 adrp x0, .LANCHOR117 6297 ldrh w0, [x0, #:lo12:.LANCHOR117] 6298 madd w0, w0, w20, w19 6299 ldp x19, x20, [sp, 16] 6300 ldp x29, x30, [sp], 32 6301 ret 6302.L1045: 6303 sub w0, w0, w1 6304 add x2, x2, 48 6305 and w0, w0, 65535 6306 b .L1046 6307 .size ftl_get_ppa_from_index, .-ftl_get_ppa_from_index 6308 .section .text.lpa_hash_get_ppa,"ax",@progbits 6309 .align 2 6310 .global lpa_hash_get_ppa 6311 .type lpa_hash_get_ppa, %function 6312lpa_hash_get_ppa: 6313 and x2, x0, 255 6314 adrp x1, .LANCHOR122 6315 add x1, x1, :lo12:.LANCHOR122 6316 mov w3, 65535 6317 ldrh w1, [x1, x2, lsl 1] 6318 adrp x2, .LANCHOR123 6319 ldr x4, [x2, #:lo12:.LANCHOR123] 6320 adrp x2, .LANCHOR124 6321 ldr x5, [x2, #:lo12:.LANCHOR124] 6322.L1050: 6323 cmp w1, w3 6324 bne .L1052 6325 mov w0, -1 6326 ret 6327.L1052: 6328 uxtw x2, w1 6329 ldr w6, [x4, x2, lsl 2] 6330 cmp w0, w6 6331 bne .L1051 6332 mov w0, w1 6333 b ftl_get_ppa_from_index 6334.L1051: 6335 ldrh w1, [x5, x2, lsl 1] 6336 b .L1050 6337 .size lpa_hash_get_ppa, .-lpa_hash_get_ppa 6338 .section .text.ftl_get_new_free_page,"ax",@progbits 6339 .align 2 6340 .global ftl_get_new_free_page 6341 .type ftl_get_new_free_page, %function 6342ftl_get_new_free_page: 6343 stp x29, x30, [sp, -32]! 6344 add x29, sp, 0 6345 ldrh w1, [x0] 6346 str x19, [sp, 16] 6347 mov x19, x0 6348 mov w0, 65535 6349 cmp w1, w0 6350 bne .L1054 6351 adrp x1, .LANCHOR125 6352 adrp x0, .LC0 6353 mov w2, 2093 6354 add x1, x1, :lo12:.LANCHOR125 6355 add x0, x0, :lo12:.LC0 6356 bl printf 6357.L1054: 6358 adrp x0, .LANCHOR100 6359 ldrh w1, [x19, 2] 6360 ldrh w0, [x0, #:lo12:.LANCHOR100] 6361 cmp w1, w0 6362 bne .L1055 6363 adrp x1, .LANCHOR125 6364 adrp x0, .LC0 6365 mov w2, 2094 6366 add x1, x1, :lo12:.LANCHOR125 6367 add x0, x0, :lo12:.LC0 6368 bl printf 6369.L1055: 6370 ldrh w0, [x19, 6] 6371 cbnz w0, .L1056 6372 adrp x1, .LANCHOR125 6373 adrp x0, .LC0 6374 mov w2, 2095 6375 add x1, x1, :lo12:.LANCHOR125 6376 add x0, x0, :lo12:.LC0 6377 bl printf 6378.L1056: 6379 ldrb w0, [x19, 5] 6380 mov w2, 65535 6381 add x0, x0, 8 6382 ldrh w3, [x19, x0, lsl 1] 6383 adrp x0, .LANCHOR85 6384 ldrb w4, [x0, #:lo12:.LANCHOR85] 6385.L1057: 6386 cmp w3, w2 6387 ldrb w1, [x19, 5] 6388 beq .L1059 6389 adrp x0, .LANCHOR117 6390 add w1, w1, 1 6391 and w1, w1, 255 6392 ldrh w2, [x19, 2] 6393 ldrh w0, [x0, #:lo12:.LANCHOR117] 6394 cmp w4, w1 6395 strb w1, [x19, 5] 6396 mul w0, w0, w3 6397 ldrh w3, [x19, 6] 6398 sub w3, w3, #1 6399 strh w3, [x19, 6] 6400 ldrh w3, [x19, 10] 6401 orr w0, w0, w2 6402 add w3, w3, 1 6403 strh w3, [x19, 10] 6404 bne .L1053 6405 add w2, w2, 1 6406 strb wzr, [x19, 5] 6407 strh w2, [x19, 2] 6408.L1053: 6409 ldr x19, [sp, 16] 6410 ldp x29, x30, [sp], 32 6411 ret 6412.L1059: 6413 add w1, w1, 1 6414 and w1, w1, 255 6415 strb w1, [x19, 5] 6416 cmp w1, w4 6417 bne .L1058 6418 ldrh w0, [x19, 2] 6419 strb wzr, [x19, 5] 6420 add w0, w0, 1 6421 strh w0, [x19, 2] 6422.L1058: 6423 ldrb w0, [x19, 5] 6424 add x0, x0, 8 6425 ldrh w3, [x19, x0, lsl 1] 6426 b .L1057 6427 .size ftl_get_new_free_page, .-ftl_get_new_free_page 6428 .section .text.ftl_ext_alloc_new_blk,"ax",@progbits 6429 .align 2 6430 .global ftl_ext_alloc_new_blk 6431 .type ftl_ext_alloc_new_blk, %function 6432ftl_ext_alloc_new_blk: 6433 stp x29, x30, [sp, -32]! 6434 add x29, sp, 0 6435 stp x19, x20, [sp, 16] 6436 bl ftl_alloc_sys_blk 6437 and w0, w0, 65535 6438 mov w1, 65533 6439 mov w19, w0 6440 sub w0, w0, #1 6441 cmp w1, w0, uxth 6442 bcs .L1063 6443 adrp x1, .LANCHOR126 6444 adrp x0, .LC0 6445 mov w2, 2130 6446 add x1, x1, :lo12:.LANCHOR126 6447 add x0, x0, :lo12:.LC0 6448 bl printf 6449.L1063: 6450 adrp x20, .LANCHOR69 6451 mov w1, 0 6452 mov w0, w19 6453 bl ftl_erase_phy_blk 6454 ldr x0, [x20, #:lo12:.LANCHOR69] 6455 ldrh w0, [x0, 130] 6456 bl ftl_free_sys_blk 6457 ldr x0, [x20, #:lo12:.LANCHOR69] 6458 strh w19, [x0, 130] 6459 strh wzr, [x0, 140] 6460 mov w0, 0 6461 ldp x19, x20, [sp, 16] 6462 ldp x29, x30, [sp], 32 6463 ret 6464 .size ftl_ext_alloc_new_blk, .-ftl_ext_alloc_new_blk 6465 .section .text.ftl_total_vpn_update,"ax",@progbits 6466 .align 2 6467 .global ftl_total_vpn_update 6468 .type ftl_total_vpn_update, %function 6469ftl_total_vpn_update: 6470 adrp x2, .LANCHOR127 6471 mov x3, x2 6472 ldrh w1, [x2, #:lo12:.LANCHOR127] 6473 cmp w1, 4 6474 bhi .L1066 6475 cbnz w0, .L1066 6476 add w1, w1, 1 6477 strh w1, [x2, #:lo12:.LANCHOR127] 6478 ret 6479.L1066: 6480 adrp x0, .LANCHOR8 6481 strh wzr, [x3, #:lo12:.LANCHOR127] 6482 mov x1, 0 6483 mov w2, 0 6484 ldrh w5, [x0, #:lo12:.LANCHOR8] 6485 adrp x0, .LANCHOR11 6486 mov w8, 65535 6487 ldr x6, [x0, #:lo12:.LANCHOR11] 6488 adrp x0, .LANCHOR9 6489 ldr x7, [x0, #:lo12:.LANCHOR9] 6490 mov w0, 0 6491.L1068: 6492 cmp w5, w1, uxth 6493 bhi .L1071 6494 adrp x1, .LANCHOR12 6495 ldr x1, [x1, #:lo12:.LANCHOR12] 6496 str w2, [x1, 524] 6497 adrp x2, .LANCHOR69 6498 str w0, [x1, 528] 6499 ldr x2, [x2, #:lo12:.LANCHOR69] 6500 ldrh w2, [x2, 120] 6501 cbz w2, .L1065 6502 udiv w0, w0, w2 6503 str w0, [x1, 532] 6504.L1065: 6505 ret 6506.L1071: 6507 ldrh w3, [x6, x1, lsl 1] 6508 cmp w3, w8 6509 beq .L1069 6510 add x4, x7, x1, lsl 2 6511 ldrb w4, [x4, 2] 6512 and w4, w4, 224 6513 cmp w4, 160 6514 bne .L1070 6515 add w0, w0, w3 6516.L1069: 6517 add x1, x1, 1 6518 b .L1068 6519.L1070: 6520 add w2, w2, w3 6521 b .L1069 6522 .size ftl_total_vpn_update, .-ftl_total_vpn_update 6523 .section .text.ftl_vpn_update,"ax",@progbits 6524 .align 2 6525 .global ftl_vpn_update 6526 .type ftl_vpn_update, %function 6527ftl_vpn_update: 6528 stp x29, x30, [sp, -32]! 6529 add x29, sp, 0 6530 str x19, [sp, 16] 6531 and w19, w0, 65535 6532 mov w0, w19 6533 bl zftl_list_update_data_list 6534 adrp x0, .LANCHOR11 6535 ubfiz x19, x19, 1, 16 6536 ldr x0, [x0, #:lo12:.LANCHOR11] 6537 ldrh w0, [x0, x19] 6538 cbnz w0, .L1078 6539 adrp x1, .LANCHOR128 6540 mov w0, 1 6541 str w0, [x1, #:lo12:.LANCHOR128] 6542.L1076: 6543 ldr x19, [sp, 16] 6544 ldp x29, x30, [sp], 32 6545 ret 6546.L1078: 6547 mov w0, 0 6548 b .L1076 6549 .size ftl_vpn_update, .-ftl_vpn_update 6550 .section .text.ftl_vpn_decrement,"ax",@progbits 6551 .align 2 6552 .global ftl_vpn_decrement 6553 .type ftl_vpn_decrement, %function 6554ftl_vpn_decrement: 6555 stp x29, x30, [sp, -32]! 6556 add x29, sp, 0 6557 stp x19, x20, [sp, 16] 6558 and w19, w0, 65535 6559 mov w0, 65535 6560 cmp w19, w0 6561 beq .L1081 6562 adrp x0, .LANCHOR11 6563 uxtw x1, w19 6564 lsl x2, x1, 1 6565 ldr x3, [x0, #:lo12:.LANCHOR11] 6566 ldrh w0, [x3, x2] 6567 cbnz w0, .L1082 6568 adrp x0, .LANCHOR9 6569 mov w2, 0 6570 ldr x0, [x0, #:lo12:.LANCHOR9] 6571 add x1, x0, x1, lsl 2 6572 adrp x0, .LC65 6573 add x0, x0, :lo12:.LC65 6574 ldrb w3, [x1, 2] 6575 mov w1, w19 6576 ubfx x3, x3, 5, 3 6577 bl printf 6578.L1087: 6579 mov w0, 0 6580 b .L1080 6581.L1082: 6582 sub w0, w0, #1 6583 strh w0, [x3, x2] 6584.L1081: 6585 adrp x20, .LANCHOR78 6586 ldrh w0, [x20, #:lo12:.LANCHOR78] 6587 cmp w19, w0 6588 beq .L1087 6589 mov w1, 65535 6590 cmp w0, w1 6591 bne .L1084 6592 strh w19, [x20, #:lo12:.LANCHOR78] 6593 b .L1087 6594.L1084: 6595 bl ftl_vpn_update 6596 cmp w0, 0 6597 adrp x1, .LANCHOR129 6598 cset w0, ne 6599 ldrh w3, [x20, #:lo12:.LANCHOR78] 6600 ldrh w2, [x1, #:lo12:.LANCHOR129] 6601 strh w19, [x20, #:lo12:.LANCHOR78] 6602 add w2, w2, 1 6603 and w2, w2, 65535 6604 cmp w2, 7 6605 csel w2, w2, wzr, ls 6606 strh w2, [x1, #:lo12:.LANCHOR129] 6607 and x2, x2, 65535 6608 adrp x1, .LANCHOR79 6609 add x1, x1, :lo12:.LANCHOR79 6610 strh w3, [x1, x2, lsl 1] 6611.L1080: 6612 ldp x19, x20, [sp, 16] 6613 ldp x29, x30, [sp], 32 6614 ret 6615 .size ftl_vpn_decrement, .-ftl_vpn_decrement 6616 .section .text.lpa_hash_update_ppa,"ax",@progbits 6617 .align 2 6618 .global lpa_hash_update_ppa 6619 .type lpa_hash_update_ppa, %function 6620lpa_hash_update_ppa: 6621 adrp x3, .LANCHOR122 6622 and x5, x0, 255 6623 add x4, x3, :lo12:.LANCHOR122 6624 mov w7, 65535 6625 and w2, w2, 65535 6626 mov w12, w7 6627 ldrh w6, [x4, x5, lsl 1] 6628 adrp x4, .LANCHOR123 6629 ldr x8, [x4, #:lo12:.LANCHOR123] 6630 adrp x4, .LANCHOR124 6631 ldr x4, [x4, #:lo12:.LANCHOR124] 6632.L1090: 6633 cmp w6, w12 6634 beq .L1094 6635 uxtw x11, w6 6636 lsl x10, x11, 2 6637 add x13, x8, x10 6638 ldr w10, [x8, x10] 6639 cmp w0, w10 6640 lsl x10, x11, 1 6641 bne .L1091 6642 mov w6, -1 6643 str w6, [x13] 6644 cmp w7, w12 6645 bne .L1092 6646 add x6, x3, :lo12:.LANCHOR122 6647 ldrh w7, [x4, x10] 6648 strh w7, [x6, x5, lsl 1] 6649.L1093: 6650 mov w6, -1 6651 strh w6, [x4, x11, lsl 1] 6652.L1094: 6653 uxtw x6, w2 6654 add x3, x3, :lo12:.LANCHOR122 6655 cmn w1, #1 6656 str w0, [x8, x6, lsl 2] 6657 ldrh w0, [x3, x5, lsl 1] 6658 strh w2, [x3, x5, lsl 1] 6659 strh w0, [x4, x6, lsl 1] 6660 beq .L1101 6661 stp x29, x30, [sp, -16]! 6662 adrp x0, .LANCHOR80 6663 add x29, sp, 0 6664 ldrh w3, [x0, #:lo12:.LANCHOR80] 6665 adrp x0, .LANCHOR31 6666 ldrb w2, [x0, #:lo12:.LANCHOR31] 6667 mov w0, 24 6668 lsr w1, w1, w3 6669 sub w0, w0, w2 6670 sub w2, w0, w3 6671 mov w0, 1 6672 lsl w0, w0, w2 6673 sub w0, w0, #1 6674 and w1, w0, w1 6675 adrp x0, .LANCHOR81 6676 ldrb w0, [x0, #:lo12:.LANCHOR81] 6677 udiv w0, w1, w0 6678 bl ftl_vpn_decrement 6679 mov w0, -1 6680 ldp x29, x30, [sp], 16 6681 ret 6682.L1092: 6683 ldrh w6, [x4, x10] 6684 strh w6, [x4, w7, uxtw 1] 6685 b .L1093 6686.L1091: 6687 mov w7, w6 6688 ldrh w6, [x4, x10] 6689 b .L1090 6690.L1101: 6691 mov w0, -1 6692 ret 6693 .size lpa_hash_update_ppa, .-lpa_hash_update_ppa 6694 .section .text.ftl_write_completed,"ax",@progbits 6695 .align 2 6696 .global ftl_write_completed 6697 .type ftl_write_completed, %function 6698ftl_write_completed: 6699 stp x29, x30, [sp, -80]! 6700 add x29, sp, 0 6701 stp x21, x22, [sp, 32] 6702 adrp x21, .LANCHOR55 6703 stp x19, x20, [sp, 16] 6704 add x22, x21, :lo12:.LANCHOR55 6705 stp x23, x24, [sp, 48] 6706 adrp x20, .LANCHOR64 6707 mov w23, 20041 6708 add x20, x20, :lo12:.LANCHOR64 6709 str x25, [sp, 64] 6710 movk w23, 0x444b, lsl 16 6711 mov w25, 0 6712.L1105: 6713 ldrb w0, [x20] 6714 cmp w0, 255 6715 bne .L1116 6716 ldp x19, x20, [sp, 16] 6717 ldp x21, x22, [sp, 32] 6718 ldp x23, x24, [sp, 48] 6719 ldr x25, [sp, 64] 6720 ldp x29, x30, [sp], 80 6721 ret 6722.L1116: 6723 add x1, x21, :lo12:.LANCHOR55 6724 lsl x2, x0, 6 6725 add x24, x1, x2 6726 ubfiz x19, x0, 6, 8 6727 add x19, x1, x19 6728 ldrb w1, [x1, x2] 6729 strb w1, [x20] 6730 ldr w1, [x24, 52] 6731 cmn w1, #1 6732 bne .L1106 6733 adrp x1, .LANCHOR130 6734 ldrb w1, [x1, #:lo12:.LANCHOR130] 6735 cbnz w1, .L1107 6736 adrp x1, .LANCHOR86 6737 ldrb w1, [x1, #:lo12:.LANCHOR86] 6738 cbz w1, .L1108 6739.L1107: 6740 adrp x1, .LANCHOR69 6741 ldr x1, [x1, #:lo12:.LANCHOR69] 6742 ldr w1, [x1, 156] 6743 cmp w1, w23 6744 beq .L1109 6745.L1108: 6746 add x1, x22, x0, lsl 6 6747 mov w2, 24 6748 mov w5, 65535 6749 ldr w3, [x1, 40] 6750 adrp x1, .LANCHOR80 6751 ldrh w4, [x1, #:lo12:.LANCHOR80] 6752 adrp x1, .LANCHOR31 6753 ldrb w1, [x1, #:lo12:.LANCHOR31] 6754 sub w1, w2, w1 6755 sub w2, w1, w4 6756 mov w1, 1 6757 lsr w4, w3, w4 6758 lsl w1, w1, w2 6759 adrp x2, .LANCHOR81 6760 sub w1, w1, #1 6761 ldrb w2, [x2, #:lo12:.LANCHOR81] 6762 and w1, w1, w4 6763 udiv w1, w1, w2 6764 adrp x2, .LANCHOR12 6765 mov x24, x2 6766 ldr x4, [x2, #:lo12:.LANCHOR12] 6767 and w25, w1, 65535 6768 and w1, w1, w5 6769 ldr w6, [x4, 560] 6770 cmp w6, w5 6771 bne .L1110 6772 str w1, [x4, 560] 6773 str w3, [x4, 564] 6774.L1110: 6775 add x0, x22, x0, lsl 6 6776 ldr w2, [x0, 36] 6777 adrp x0, .LC66 6778 add x0, x0, :lo12:.LC66 6779 bl printf 6780 ldr x0, [x24, #:lo12:.LANCHOR12] 6781 ldr w1, [x0, 556] 6782 add w1, w1, 1 6783 str w1, [x0, 556] 6784 ldrh w1, [x0, 16] 6785 cmp w1, w25 6786 bne .L1111 6787 strh wzr, [x0, 22] 6788.L1109: 6789 mov x0, x19 6790 mov w25, 1 6791 bl ftl_write_buf 6792 b .L1105 6793.L1111: 6794 ldrh w1, [x0, 48] 6795 cmp w1, w25 6796 bne .L1109 6797 strh wzr, [x0, 54] 6798 b .L1109 6799.L1106: 6800 cbz w25, .L1114 6801 ldp w1, w2, [x24, 36] 6802 adrp x0, .LC67 6803 add x0, x0, :lo12:.LC67 6804 bl printf 6805 mov x0, x19 6806 bl ftl_write_buf 6807 b .L1105 6808.L1114: 6809 ldrh w2, [x24, 48] 6810 ldr w0, [x24, 36] 6811 ldr w1, [x24, 44] 6812 bl lpa_hash_update_ppa 6813 ldrb w0, [x24, 2] 6814 tbz x0, 2, .L1115 6815 and w0, w0, -3 6816 strb w0, [x24, 2] 6817 b .L1105 6818.L1115: 6819 mov x0, x19 6820 bl zbuf_free 6821 b .L1105 6822 .size ftl_write_completed, .-ftl_write_completed 6823 .section .text.ftl_mask_bad_block,"ax",@progbits 6824 .align 2 6825 .global ftl_mask_bad_block 6826 .type ftl_mask_bad_block, %function 6827ftl_mask_bad_block: 6828 stp x29, x30, [sp, -32]! 6829 adrp x1, .LANCHOR31 6830 mov w6, 24 6831 mov w4, 1 6832 add x29, sp, 0 6833 ldrb w1, [x1, #:lo12:.LANCHOR31] 6834 stp x19, x20, [sp, 16] 6835 sub w6, w6, w1 6836 lsl w1, w4, w1 6837 sub w1, w1, #1 6838 lsr w2, w0, w6 6839 and w1, w1, w2 6840 adrp x2, .LANCHOR81 6841 and w1, w1, 255 6842 ldrb w5, [x2, #:lo12:.LANCHOR81] 6843 cmp w5, 1 6844 mul w2, w1, w5 6845 and w19, w2, 255 6846 adrp x2, .LANCHOR80 6847 ldrh w3, [x2, #:lo12:.LANCHOR80] 6848 lsr w0, w0, w3 6849 sub w3, w6, w3 6850 lsl w3, w4, w3 6851 sub w3, w3, #1 6852 and w3, w3, w0 6853 and w4, w3, 65535 6854 udiv w3, w3, w5 6855 and w20, w3, 65535 6856 bls .L1122 6857 sub w2, w5, #1 6858 and w2, w2, w4 6859 add w2, w19, w2 6860 and w19, w2, 255 6861.L1122: 6862 adrp x0, .LANCHOR19 6863 ldr w0, [x0, #:lo12:.LANCHOR19] 6864 tbz x0, 14, .L1123 6865 adrp x0, .LC68 6866 and w3, w3, 65535 6867 mov w2, w19 6868 add x0, x0, :lo12:.LC68 6869 bl printf 6870.L1123: 6871 adrp x0, .LANCHOR8 6872 ldrh w0, [x0, #:lo12:.LANCHOR8] 6873 cmp w0, w20 6874 bls .L1121 6875 adrp x0, .LANCHOR9 6876 mov w2, 1 6877 lsl w2, w2, w19 6878 ldr x0, [x0, #:lo12:.LANCHOR9] 6879 add x20, x0, x20, uxth 2 6880 ldrb w19, [x20, 3] 6881 orr w2, w2, w19 6882 strb w2, [x20, 3] 6883.L1121: 6884 ldp x19, x20, [sp, 16] 6885 ldp x29, x30, [sp], 32 6886 ret 6887 .size ftl_mask_bad_block, .-ftl_mask_bad_block 6888 .section .text.gc_free_bad_sblk,"ax",@progbits 6889 .align 2 6890 .global gc_free_bad_sblk 6891 .type gc_free_bad_sblk, %function 6892gc_free_bad_sblk: 6893 stp x29, x30, [sp, -96]! 6894 add x29, sp, 0 6895 stp x23, x24, [sp, 48] 6896 and w23, w0, 65535 6897 str x27, [sp, 80] 6898 adrp x27, .LANCHOR76 6899 add x0, x27, :lo12:.LANCHOR76 6900 stp x19, x20, [sp, 16] 6901 stp x21, x22, [sp, 32] 6902 stp x25, x26, [sp, 64] 6903 ldr w0, [x0, 2200] 6904 cbz w0, .L1144 6905 adrp x22, .LC69 6906 mov w24, 20041 6907 add x22, x22, :lo12:.LC69 6908 mov w26, 0 6909 movk w24, 0x444b, lsl 16 6910.L1131: 6911 adrp x0, .LANCHOR85 6912 ldrb w0, [x0, #:lo12:.LANCHOR85] 6913 cmp w0, w26 6914 bhi .L1141 6915.L1144: 6916 mov w0, 0 6917 ldr x27, [sp, 80] 6918 ldp x19, x20, [sp, 16] 6919 ldp x21, x22, [sp, 32] 6920 ldp x23, x24, [sp, 48] 6921 ldp x25, x26, [sp, 64] 6922 ldp x29, x30, [sp], 96 6923 ret 6924.L1141: 6925 adrp x0, .LANCHOR81 6926 adrp x1, .LANCHOR31 6927 adrp x21, .LANCHOR80 6928 ldrb w2, [x0, #:lo12:.LANCHOR81] 6929 ldrb w3, [x1, #:lo12:.LANCHOR31] 6930 mov w1, 24 6931 and w0, w2, 65535 6932 cmp w2, 1 6933 sub w1, w1, w3 6934 ldrh w3, [x21, #:lo12:.LANCHOR80] 6935 sdiv w19, w26, w2 6936 sub w1, w1, w3 6937 lsl w19, w19, w1 6938 madd w19, w23, w0, w19 6939 and w19, w19, 65535 6940 bls .L1132 6941 sub w0, w0, #1 6942 and w0, w0, w26 6943 add w19, w19, w0 6944 and w19, w19, 65535 6945.L1132: 6946 adrp x25, .LANCHOR130 6947 add x25, x25, :lo12:.LANCHOR130 6948 mov w20, 0 6949.L1133: 6950 add x0, x27, :lo12:.LANCHOR76 6951 ldr w1, [x0, 2200] 6952 cmp w20, w1 6953 bcc .L1140 6954 add w26, w26, 1 6955 and w26, w26, 65535 6956 b .L1131 6957.L1140: 6958 add x0, x0, x20, sxtw 1 6959 ldrh w0, [x0, 2204] 6960 cmp w0, w19 6961 bne .L1134 6962 mov w1, w19 6963 mov x0, x22 6964 bl printf 6965 ldrb w0, [x25] 6966 cbnz w0, .L1135 6967 adrp x0, .LANCHOR86 6968 ldrb w0, [x0, #:lo12:.LANCHOR86] 6969 cbz w0, .L1136 6970.L1135: 6971 adrp x0, .LANCHOR69 6972 ldr x0, [x0, #:lo12:.LANCHOR69] 6973 ldr w0, [x0, 156] 6974 cmp w0, w24 6975 beq .L1137 6976.L1136: 6977 ldrh w0, [x21, #:lo12:.LANCHOR80] 6978 lsl w0, w19, w0 6979 bl ftl_mask_bad_block 6980.L1137: 6981 add x1, x27, :lo12:.LANCHOR76 6982 mov w0, w20 6983 ldr w2, [x1, 2200] 6984.L1138: 6985 cmp w0, w2 6986 bcc .L1139 6987 add x0, x27, :lo12:.LANCHOR76 6988 sub w2, w2, #1 6989 str w2, [x0, 2200] 6990.L1134: 6991 add w20, w20, 1 6992 and w20, w20, 65535 6993 b .L1133 6994.L1139: 6995 add w3, w0, 1 6996 add x0, x1, x0, sxtw 1 6997 add x4, x1, x3, sxtw 1 6998 ldrh w4, [x4, 2204] 6999 strh w4, [x0, 2204] 7000 and w0, w3, 65535 7001 b .L1138 7002 .size gc_free_bad_sblk, .-gc_free_bad_sblk 7003 .section .text.ftl_free_sblk,"ax",@progbits 7004 .align 2 7005 .global ftl_free_sblk 7006 .type ftl_free_sblk, %function 7007ftl_free_sblk: 7008 stp x29, x30, [sp, -64]! 7009 add x29, sp, 0 7010 stp x23, x24, [sp, 48] 7011 adrp x23, .LANCHOR9 7012 and x24, x0, 65535 7013 stp x19, x20, [sp, 16] 7014 ldr x3, [x23, #:lo12:.LANCHOR9] 7015 lsl x19, x24, 2 7016 stp x21, x22, [sp, 32] 7017 mov x21, x24 7018 add x20, x3, x19 7019 ldrb w0, [x20, 2] 7020 ubfx x22, x0, 5, 3 7021 tbz x0, 3, .L1151 7022 adrp x2, .LANCHOR69 7023 ldrh w1, [x3, x19] 7024 adrp x8, .LANCHOR131 7025 ldr x7, [x2, #:lo12:.LANCHOR69] 7026 and w1, w1, 2047 7027 ldr w2, [x3, x19] 7028 ldrh w8, [x8, #:lo12:.LANCHOR131] 7029 ldrh w4, [x7, 74] 7030 ubfx x5, x2, 11, 8 7031 adrp x2, .LANCHOR10 7032 add w4, w1, w4 7033 ldrh w2, [x2, #:lo12:.LANCHOR10] 7034 and w6, w4, 65535 7035 ldrh w4, [x7, 72] 7036 add w4, w5, w4 7037 udiv w7, w6, w2 7038 and w4, w4, 65535 7039 add w7, w7, w4 7040 cmp w7, w8 7041 ble .L1152 7042 adrp x4, .LANCHOR107 7043 adrp x7, .LANCHOR111 7044 ldrh w6, [x4, #:lo12:.LANCHOR107] 7045 adrp x4, .LANCHOR97 7046 ldrh w7, [x7, #:lo12:.LANCHOR111] 7047 ldrh w4, [x4, #:lo12:.LANCHOR97] 7048 add w6, w6, 7 7049 add w4, w4, w7 7050 cmp w6, w4 7051 blt .L1153 7052.L1158: 7053 mov w4, 2 7054 bfi w0, w4, 3, 2 7055 b .L1169 7056.L1153: 7057 adrp x4, .LANCHOR104 7058 adrp x7, .LANCHOR109 7059 ldrh w6, [x4, #:lo12:.LANCHOR104] 7060 adrp x4, .LANCHOR103 7061 ldrh w7, [x7, #:lo12:.LANCHOR109] 7062 ldrh w4, [x4, #:lo12:.LANCHOR103] 7063 add w6, w6, 7 7064 add w4, w4, w7 7065 adrp x7, .LANCHOR105 7066 ldrh w7, [x7, #:lo12:.LANCHOR105] 7067 add w4, w4, w7 7068 cmp w6, w4 7069 blt .L1158 7070.L1171: 7071 and w0, w0, -25 7072.L1169: 7073 strb w0, [x20, 2] 7074.L1154: 7075 ldrb w0, [x20, 2] 7076 ands w0, w0, 24 7077 bne .L1159 7078 mul w2, w5, w2 7079 ldrh w0, [x3, x19] 7080 add w2, w2, w2, lsl 1 7081 add w1, w1, w2, lsr 2 7082 lsr w2, w5, 3 7083 bfi w0, w1, 0, 11 7084 strh w0, [x3, x19] 7085 ldr w0, [x3, x19] 7086 bfi w0, w2, 11, 8 7087 str w0, [x3, x19] 7088.L1160: 7089 mov w0, w21 7090 bl zftl_remove_data_node 7091 ldr x0, [x23, #:lo12:.LANCHOR9] 7092 add w22, w22, 6 7093 and w22, w22, 7 7094 add x19, x0, x19 7095 cmp w22, 4 7096 ldrb w0, [x19, 2] 7097 and w0, w0, 31 7098 strb w0, [x19, 2] 7099 adrp x0, .LANCHOR11 7100 ldr x0, [x0, #:lo12:.LANCHOR11] 7101 strh wzr, [x0, x24, lsl 1] 7102 bhi .L1163 7103 mov w0, w21 7104 bl gc_free_bad_sblk 7105.L1163: 7106 ldrb w0, [x20, 2] 7107 tbz x0, 3, .L1164 7108 adrp x0, .LANCHOR12 7109 ldr x0, [x0, #:lo12:.LANCHOR12] 7110 ldrh w1, [x0, 586] 7111 cmp w1, w21 7112 bne .L1164 7113 mov w1, -1 7114 ldrh w2, [x0, 590] 7115 strh w1, [x0, 586] 7116 mov w1, 65535 7117 cmp w2, w1 7118 bne .L1164 7119 strh w21, [x0, 590] 7120 mov w1, w21 7121 ldp x19, x20, [sp, 16] 7122 adrp x0, .LC70 7123 ldp x21, x22, [sp, 32] 7124 add x0, x0, :lo12:.LC70 7125 ldp x23, x24, [sp, 48] 7126 ldp x29, x30, [sp], 64 7127 b printf 7128.L1152: 7129 madd w4, w2, w4, w6 7130 adrp x6, .LANCHOR132 7131 ldrh w6, [x6, #:lo12:.LANCHOR132] 7132 cmp w4, w6 7133 ble .L1154 7134 adrp x4, .LANCHOR104 7135 adrp x7, .LANCHOR109 7136 ldrh w6, [x4, #:lo12:.LANCHOR104] 7137 adrp x4, .LANCHOR103 7138 ldrh w7, [x7, #:lo12:.LANCHOR109] 7139 ldrh w4, [x4, #:lo12:.LANCHOR103] 7140 add w4, w4, w7 7141 adrp x7, .LANCHOR105 7142 ldrh w7, [x7, #:lo12:.LANCHOR105] 7143 add w4, w4, w7 7144 add w7, w6, 7 7145 cmp w7, w4 7146 bge .L1171 7147 adrp x7, .LANCHOR107 7148 adrp x10, .LANCHOR111 7149 ldrh w8, [x7, #:lo12:.LANCHOR107] 7150 adrp x7, .LANCHOR97 7151 ldrh w10, [x10, #:lo12:.LANCHOR111] 7152 ldrh w7, [x7, #:lo12:.LANCHOR97] 7153 add w8, w8, 7 7154 add w7, w7, w10 7155 cmp w8, w7 7156 bge .L1158 7157 add w6, w6, 23 7158 cmp w4, w6 7159 bgt .L1158 7160 b .L1171 7161.L1159: 7162 cmp w0, 16 7163 bne .L1160 7164 sdiv w2, w1, w2 7165 ldr w0, [x3, x19] 7166 add w2, w2, w2, lsl 1 7167 add w2, w5, w2, lsr 2 7168.L1170: 7169 bfi w0, w2, 11, 8 7170 asr w1, w1, 5 7171 str w0, [x3, x19] 7172 bfi w0, w1, 0, 11 7173 strh w0, [x3, x19] 7174 b .L1160 7175.L1151: 7176 tst w0, 24 7177 bne .L1160 7178 adrp x1, .LANCHOR113 7179 ldrh w1, [x1, #:lo12:.LANCHOR113] 7180 cbnz w1, .L1160 7181 adrp x1, .LANCHOR111 7182 ldrh w4, [x1, #:lo12:.LANCHOR111] 7183 cmp w4, 15 7184 bhi .L1160 7185 adrp x1, .LANCHOR103 7186 adrp x2, .LANCHOR109 7187 ldrh w1, [x1, #:lo12:.LANCHOR103] 7188 ldrh w2, [x2, #:lo12:.LANCHOR109] 7189 add w1, w1, w2 7190 adrp x2, .LANCHOR105 7191 ldrh w2, [x2, #:lo12:.LANCHOR105] 7192 add w1, w1, w2 7193 adrp x2, .LANCHOR104 7194 ldrh w2, [x2, #:lo12:.LANCHOR104] 7195 add w2, w2, 16 7196 cmp w1, w2 7197 ble .L1160 7198 adrp x1, .LANCHOR107 7199 ldrh w2, [x1, #:lo12:.LANCHOR107] 7200 adrp x1, .LANCHOR97 7201 ldrh w1, [x1, #:lo12:.LANCHOR97] 7202 add w2, w2, 7 7203 add w1, w1, w4 7204 cmp w2, w1 7205 blt .L1160 7206 mov w1, 2 7207 bfi w0, w1, 3, 2 7208 strb w0, [x20, 2] 7209 adrp x0, .LANCHOR10 7210 ldrh w1, [x3, x19] 7211 ldrh w0, [x0, #:lo12:.LANCHOR10] 7212 and w1, w1, 2047 7213 sdiv w0, w1, w0 7214 add w2, w0, w0, lsl 1 7215 ldr w0, [x3, x19] 7216 ubfx x4, x0, 11, 8 7217 add w2, w4, w2, lsr 2 7218 b .L1170 7219.L1164: 7220 mov w0, w21 7221 ldp x19, x20, [sp, 16] 7222 ldp x21, x22, [sp, 32] 7223 ldp x23, x24, [sp, 48] 7224 ldp x29, x30, [sp], 64 7225 b zftl_insert_free_list 7226 .size ftl_free_sblk, .-ftl_free_sblk 7227 .section .text.gc_free_src_blk,"ax",@progbits 7228 .align 2 7229 .global gc_free_src_blk 7230 .type gc_free_src_blk, %function 7231gc_free_src_blk: 7232 stp x29, x30, [sp, -80]! 7233 add x29, sp, 0 7234 stp x21, x22, [sp, 32] 7235 adrp x21, .LANCHOR76 7236 stp x23, x24, [sp, 48] 7237 adrp x22, .LC71 7238 adrp x23, .LANCHOR11 7239 add x21, x21, :lo12:.LANCHOR76 7240 mov x24, x23 7241 add x22, x22, :lo12:.LC71 7242 stp x19, x20, [sp, 16] 7243 mov w20, 0 7244 stp x25, x26, [sp, 64] 7245.L1173: 7246 ldrh w0, [x21, 56] 7247 cmp w0, w20 7248 bhi .L1187 7249 strh wzr, [x21, 56] 7250 ldp x19, x20, [sp, 16] 7251 ldp x21, x22, [sp, 32] 7252 ldp x23, x24, [sp, 48] 7253 ldp x25, x26, [sp, 64] 7254 ldp x29, x30, [sp], 80 7255 ret 7256.L1187: 7257 add x0, x21, x20, sxtw 1 7258 ldrh w25, [x0, 58] 7259 ldr x0, [x23, #:lo12:.LANCHOR11] 7260 mov x19, x25 7261 lsl x26, x25, 1 7262 ldrh w2, [x0, x26] 7263 cbz w2, .L1174 7264 mov w1, w25 7265 mov x0, x22 7266 bl printf 7267.L1174: 7268 ldr x0, [x24, #:lo12:.LANCHOR11] 7269 strh wzr, [x0, x26] 7270 adrp x0, .LANCHOR9 7271 ldr x0, [x0, #:lo12:.LANCHOR9] 7272 add x25, x0, x25, lsl 2 7273 adrp x0, .LANCHOR19 7274 ldr w0, [x0, #:lo12:.LANCHOR19] 7275 tbz x0, 8, .L1175 7276 ldrb w2, [x25, 2] 7277 adrp x0, .LC72 7278 mov w1, w19 7279 add x0, x0, :lo12:.LC72 7280 ubfx x2, x2, 5, 3 7281 bl printf 7282.L1175: 7283 ldrb w0, [x25, 2] 7284 and w1, w0, 224 7285 cmp w1, 224 7286 beq .L1176 7287 tst w0, 192 7288 bne .L1177 7289.L1176: 7290 adrp x1, .LANCHOR133 7291 adrp x0, .LC0 7292 mov w2, 1363 7293 add x1, x1, :lo12:.LANCHOR133 7294 add x0, x0, :lo12:.LC0 7295 bl printf 7296.L1177: 7297 mov w0, w19 7298 bl ftl_free_sblk 7299 adrp x0, .LANCHOR12 7300 ldr x0, [x0, #:lo12:.LANCHOR12] 7301 ldrh w2, [x0, 124] 7302 cbz w2, .L1178 7303 add x3, x0, 392 7304 mov w1, 0 7305.L1180: 7306 ldrh w4, [x3] 7307 cmp w4, w19 7308 bne .L1179 7309 add x1, x0, x1, sxtw 1 7310 mov w3, -1 7311 sub w2, w2, #1 7312 strh w3, [x1, 392] 7313 strh w2, [x0, 124] 7314.L1178: 7315 ldrh w2, [x0, 120] 7316 cbz w2, .L1181 7317 add x3, x0, 136 7318 mov w1, 0 7319.L1183: 7320 ldrh w4, [x3] 7321 cmp w4, w19 7322 bne .L1182 7323 add x1, x0, x1, sxtw 1 7324 mov w3, -1 7325 sub w2, w2, #1 7326 strh w3, [x1, 136] 7327 strh w2, [x0, 120] 7328.L1181: 7329 ldrh w2, [x0, 122] 7330 cbz w2, .L1184 7331 add x3, x0, 264 7332 mov w1, 0 7333.L1186: 7334 ldrh w4, [x3] 7335 cmp w4, w19 7336 bne .L1185 7337 add x1, x0, x1, sxtw 1 7338 mov w3, -1 7339 sub w2, w2, #1 7340 strh w3, [x1, 264] 7341 strh w2, [x0, 122] 7342.L1184: 7343 add w20, w20, 1 7344 and w20, w20, 65535 7345 b .L1173 7346.L1179: 7347 add w1, w1, 1 7348 add x3, x3, 2 7349 cmp w1, 64 7350 bne .L1180 7351 b .L1178 7352.L1182: 7353 add w1, w1, 1 7354 add x3, x3, 2 7355 cmp w1, 64 7356 bne .L1183 7357 b .L1181 7358.L1185: 7359 add w1, w1, 1 7360 add x3, x3, 2 7361 cmp w1, 64 7362 bne .L1186 7363 b .L1184 7364 .size gc_free_src_blk, .-gc_free_src_blk 7365 .section .text.print_ftl_debug_info,"ax",@progbits 7366 .align 2 7367 .global print_ftl_debug_info 7368 .type print_ftl_debug_info, %function 7369print_ftl_debug_info: 7370 ret 7371 .size print_ftl_debug_info, .-print_ftl_debug_info 7372 .section .text.sblk_init,"ax",@progbits 7373 .align 2 7374 .global sblk_init 7375 .type sblk_init, %function 7376sblk_init: 7377 adrp x1, .LANCHOR59 7378 mov w0, -1 7379 strb w0, [x1, #:lo12:.LANCHOR59] 7380 adrp x1, .LANCHOR64 7381 strb w0, [x1, #:lo12:.LANCHOR64] 7382 adrp x1, .LANCHOR62 7383 strb w0, [x1, #:lo12:.LANCHOR62] 7384 adrp x1, .LANCHOR63 7385 strb w0, [x1, #:lo12:.LANCHOR63] 7386 mov w0, 0 7387 ret 7388 .size sblk_init, .-sblk_init 7389 .section .text.dump_sblk_queue,"ax",@progbits 7390 .align 2 7391 .global dump_sblk_queue 7392 .type dump_sblk_queue, %function 7393dump_sblk_queue: 7394 stp x29, x30, [sp, -48]! 7395 adrp x0, .LC73 7396 add x0, x0, :lo12:.LC73 7397 add x29, sp, 0 7398 stp x19, x20, [sp, 16] 7399 adrp x19, .LANCHOR59 7400 str x21, [sp, 32] 7401 ldrb w1, [x19, #:lo12:.LANCHOR59] 7402 bl printf 7403 ldrb w19, [x19, #:lo12:.LANCHOR59] 7404 cmp w19, 255 7405 beq .L1212 7406 adrp x1, .LANCHOR55 7407 ubfiz x19, x19, 6, 8 7408 add x1, x1, :lo12:.LANCHOR55 7409 adrp x21, .LC74 7410 add x19, x1, x19 7411 add x21, x21, :lo12:.LC74 7412 mov x20, x1 7413.L1214: 7414 ldrb w2, [x19, 58] 7415 mov x0, x21 7416 ldrb w1, [x19, 1] 7417 ldr w3, [x19, 40] 7418 bl printf 7419 ldrb w19, [x19] 7420 cmp w19, 255 7421 beq .L1212 7422 ubfiz x19, x19, 6, 8 7423 add x19, x20, x19 7424 b .L1214 7425.L1212: 7426 ldp x19, x20, [sp, 16] 7427 ldr x21, [sp, 32] 7428 ldp x29, x30, [sp], 48 7429 ret 7430 .size dump_sblk_queue, .-dump_sblk_queue 7431 .section .text.queue_lun_state,"ax",@progbits 7432 .align 2 7433 .global queue_lun_state 7434 .type queue_lun_state, %function 7435queue_lun_state: 7436 adrp x2, .LANCHOR59 7437 ldrb w2, [x2, #:lo12:.LANCHOR59] 7438 cmp w2, 255 7439 beq .L1230 7440 adrp x3, .LANCHOR31 7441 mov w8, 24 7442 adrp x10, .LANCHOR55 7443 add x10, x10, :lo12:.LANCHOR55 7444 ldrb w4, [x3, #:lo12:.LANCHOR31] 7445 mov w3, 1 7446 adrp x13, .L1226 7447 mov x15, x10 7448 sub w8, w8, w4 7449 add x13, x13, :lo12:.L1226 7450 lsl w4, w3, w4 7451 sub w4, w4, #1 7452 and w6, w4, 65535 7453 adrp x4, .LANCHOR80 7454 asr w11, w0, w8 7455 and w11, w11, w6 7456 ldrh w12, [x4, #:lo12:.LANCHOR80] 7457 sub w4, w8, w12 7458 lsl w3, w3, w4 7459 sub w3, w3, #1 7460 and w7, w3, 65535 7461 adrp x3, .LANCHOR81 7462 ldrb w5, [x3, #:lo12:.LANCHOR81] 7463 asr w3, w0, w12 7464 sub w5, w5, #1 7465 and w5, w5, 65535 7466 and w3, w3, w5 7467 and w3, w3, w7 7468.L1229: 7469 add x14, x10, x2, lsl 6 7470 ldr w4, [x14, 40] 7471 lsr w0, w4, w8 7472 and w0, w6, w0 7473 cmp w11, w0 7474 bne .L1224 7475 lsr w4, w4, w12 7476 and w4, w5, w4 7477 and w4, w7, w4 7478 ldrb w0, [x14, 58] 7479 cmp w3, w4 7480 bne .L1225 7481 cmp w1, 1 7482 bne .L1222 7483 cmp w0, 7 7484 ccmp w0, 9, 4, ne 7485 beq .L1224 7486 ret 7487.L1225: 7488 cmp w1, 3 7489 bhi .L1224 7490 ldrb w4, [x13,w1,uxtw] 7491 adr x14, .Lrtx1226 7492 add x4, x14, w4, sxtb #2 7493 br x4 7494.Lrtx1226: 7495 .section .rodata.queue_lun_state,"a",@progbits 7496 .align 0 7497 .align 2 7498.L1226: 7499 .byte (.L1222 - .Lrtx1226) / 4 7500 .byte (.L1227 - .Lrtx1226) / 4 7501 .byte (.L1228 - .Lrtx1226) / 4 7502 .byte (.L1222 - .Lrtx1226) / 4 7503 .section .text.queue_lun_state 7504.L1227: 7505 cmp w0, 7 7506 ccmp w0, 9, 4, ne 7507 beq .L1224 7508 ret 7509.L1228: 7510 cmp w0, 11 7511 bne .L1222 7512.L1224: 7513 lsl x2, x2, 6 7514 ldrb w2, [x15, x2] 7515 cmp w2, 255 7516 bne .L1229 7517.L1230: 7518 mov w0, 0 7519.L1222: 7520 ret 7521 .size queue_lun_state, .-queue_lun_state 7522 .section .text.queue_remove_completed_req,"ax",@progbits 7523 .align 2 7524 .global queue_remove_completed_req 7525 .type queue_remove_completed_req, %function 7526queue_remove_completed_req: 7527 adrp x4, .LANCHOR64 7528 adrp x8, .LANCHOR63 7529 adrp x1, .LANCHOR59 7530 adrp x7, .LANCHOR62 7531 adrp x3, .LANCHOR55 7532 ldrb w14, [x4, #:lo12:.LANCHOR64] 7533 add x5, x3, :lo12:.LANCHOR55 7534 ldrb w2, [x1, #:lo12:.LANCHOR59] 7535 ldrb w12, [x8, #:lo12:.LANCHOR63] 7536 mov x11, x5 7537 ldrb w13, [x7, #:lo12:.LANCHOR62] 7538 add x16, x8, :lo12:.LANCHOR63 7539 add x7, x7, :lo12:.LANCHOR62 7540 add x10, x4, :lo12:.LANCHOR64 7541 mov w6, 0 7542 mov w15, -1 7543.L1233: 7544 cmp w2, 255 7545 beq .L1234 7546 sbfiz x8, x2, 6, 32 7547 sxtw x0, w2 7548 add x4, x5, x8 7549 ldrb w4, [x4, 58] 7550 sub w4, w4, #12 7551 and w4, w4, 255 7552 cmp w4, 1 7553 bls .L1235 7554 cbz w6, .L1232 7555 strb w2, [x1, #:lo12:.LANCHOR59] 7556 ret 7557.L1235: 7558 lsl x6, x0, 6 7559 ldrb w2, [x5, x8] 7560 add x4, x5, x6 7561 strb w15, [x5, x6] 7562 ldrb w6, [x4, 59] 7563 cmp w6, 1 7564 bne .L1238 7565 ldrh w4, [x4, 50] 7566 cbnz w4, .L1246 7567 mov w4, w14 7568 mov x6, x10 7569.L1239: 7570 cmp w4, 255 7571 bne .L1244 7572 add x3, x3, :lo12:.LANCHOR55 7573 strb w2, [x1, #:lo12:.LANCHOR59] 7574 add x0, x3, x0, lsl 6 7575 ldrb w0, [x0, 1] 7576 strb w0, [x6] 7577 ret 7578.L1238: 7579 cbnz w6, .L1240 7580 ldr w4, [x4, 36] 7581 cmn w4, #1 7582 beq .L1240 7583 mov w4, w13 7584 mov x6, x7 7585 b .L1239 7586.L1246: 7587 mov w4, w12 7588 mov x6, x16 7589 b .L1239 7590.L1244: 7591 mov w6, w4 7592 sbfiz x4, x4, 6, 32 7593 ldrb w4, [x11, x4] 7594 cmp w4, 255 7595 bne .L1244 7596 add x0, x11, x0, lsl 6 7597 sbfiz x6, x6, 6, 32 7598 ldrb w0, [x0, 1] 7599 strb w0, [x11, x6] 7600.L1240: 7601 mov w6, 1 7602 b .L1233 7603.L1234: 7604 cbz w6, .L1232 7605 mov w0, -1 7606 strb w0, [x1, #:lo12:.LANCHOR59] 7607.L1232: 7608 ret 7609 .size queue_remove_completed_req, .-queue_remove_completed_req 7610 .section .text.pm_alloc_new_blk,"ax",@progbits 7611 .align 2 7612 .global pm_alloc_new_blk 7613 .type pm_alloc_new_blk, %function 7614pm_alloc_new_blk: 7615 stp x29, x30, [sp, -64]! 7616 adrp x2, .LANCHOR85 7617 add x29, sp, 0 7618 stp x19, x20, [sp, 16] 7619 adrp x20, .LANCHOR69 7620 stp x21, x22, [sp, 32] 7621 ldr x1, [x20, #:lo12:.LANCHOR69] 7622 ldrb w2, [x2, #:lo12:.LANCHOR85] 7623 ldrh w0, [x1, 690] 7624 str x23, [sp, 48] 7625 add w0, w0, 1 7626 and w0, w0, 65535 7627 strh w0, [x1, 690] 7628 cmp w2, w0 7629 bls .L1257 7630 add x0, x1, x0, sxtw 1 7631 ldrh w1, [x0, 672] 7632 mov w0, 65535 7633 cmp w1, w0 7634 bne .L1258 7635.L1257: 7636 adrp x19, .LC75 7637 add x19, x19, :lo12:.LC75 7638 mov w23, 65535 7639 adrp x22, .LANCHOR9 7640.L1259: 7641 mov w0, 1 7642 bl ftl_alloc_sblk 7643 and w21, w0, 65535 7644 cmp w21, w23 7645 beq .L1259 7646 mov w1, 0 7647 mov w0, w21 7648 bl ftl_erase_sblk 7649 add x14, x20, :lo12:.LANCHOR69 7650 ldr x1, [x20, #:lo12:.LANCHOR69] 7651 mov w0, w21 7652 add x1, x1, 672 7653 bl ftl_get_blk_list_in_sblk 7654 tst w0, 65535 7655 bne .L1260 7656 mov w1, w21 7657 mov x0, x19 7658 bl printf 7659 ldr x0, [x22, #:lo12:.LANCHOR9] 7660 add x21, x0, x21, uxth 2 7661 ldrb w0, [x21, 2] 7662 orr w0, w0, -32 7663 strb w0, [x21, 2] 7664 b .L1259 7665.L1260: 7666 ldr x0, [x14] 7667 adrp x1, .LANCHOR134 7668 mov w2, 1 7669 mov w19, 0 7670 add x0, x0, 416 7671 str w2, [x1, #:lo12:.LANCHOR134] 7672 mov w1, 65535 7673 strh wzr, [x0, 274] 7674.L1262: 7675 ldrh w2, [x0] 7676 cmp w2, w1 7677 beq .L1261 7678 add w19, w19, 1 7679 add x0, x0, 2 7680 and w19, w19, 65535 7681 cmp w19, 128 7682 bne .L1262 7683 adrp x1, .LANCHOR135 7684 adrp x0, .LC0 7685 mov w2, 264 7686 add x1, x1, :lo12:.LANCHOR135 7687 add x0, x0, :lo12:.LC0 7688 bl printf 7689.L1261: 7690 ldr x0, [x20, #:lo12:.LANCHOR69] 7691 add x19, x0, x19, sxtw 1 7692 ldrh w1, [x0, 688] 7693 strh w21, [x19, 416] 7694 add w1, w1, 1 7695 strh w1, [x0, 688] 7696.L1258: 7697 ldr x1, [x20, #:lo12:.LANCHOR69] 7698 ldrh w0, [x1, 690] 7699 add x0, x0, 336 7700 ldrh w19, [x1, x0, lsl 1] 7701 mov w0, 65533 7702 sub w1, w19, #1 7703 cmp w0, w1, uxth 7704 bcs .L1264 7705 adrp x1, .LANCHOR135 7706 adrp x0, .LC0 7707 mov w2, 270 7708 add x1, x1, :lo12:.LANCHOR135 7709 add x0, x0, :lo12:.LC0 7710 bl printf 7711.L1264: 7712 adrp x1, .LANCHOR31 7713 mov w2, 24 7714 ldr x0, [x20, #:lo12:.LANCHOR69] 7715 ldrb w1, [x1, #:lo12:.LANCHOR31] 7716 sub w2, w2, w1 7717 adrp x1, .LANCHOR80 7718 strh wzr, [x0, 696] 7719 ldrh w1, [x1, #:lo12:.LANCHOR80] 7720 strh w19, [x0, 692] 7721 sub w2, w2, w1 7722 asr w4, w19, w2 7723 strh w4, [x0, 694] 7724 adrp x0, .LANCHOR19 7725 ldr w0, [x0, #:lo12:.LANCHOR19] 7726 tbz x0, 12, .L1267 7727 mov w0, 1 7728 and w4, w4, 65535 7729 lsl w2, w0, w2 7730 mov w3, w19 7731 adrp x0, .LC76 7732 sub w2, w2, #1 7733 mov w1, w19 7734 add x0, x0, :lo12:.LC76 7735 bl printf 7736.L1267: 7737 mov w0, 0 7738 ldr x23, [sp, 48] 7739 ldp x19, x20, [sp, 16] 7740 ldp x21, x22, [sp, 32] 7741 ldp x29, x30, [sp], 64 7742 ret 7743 .size pm_alloc_new_blk, .-pm_alloc_new_blk 7744 .section .text.pm_select_ram_region,"ax",@progbits 7745 .align 2 7746 .global pm_select_ram_region 7747 .type pm_select_ram_region, %function 7748pm_select_ram_region: 7749 stp x29, x30, [sp, -32]! 7750 adrp x0, .LANCHOR136 7751 add x0, x0, :lo12:.LANCHOR136 7752 mov x1, 0 7753 add x29, sp, 0 7754 mov w2, 65535 7755 str x19, [sp, 16] 7756.L1276: 7757 lsl x3, x1, 4 7758 and w19, w1, 65535 7759 ldrh w3, [x3, x0] 7760 cmp w3, w2 7761 beq .L1275 7762 add x1, x1, 1 7763 cmp x1, 8 7764 bne .L1276 7765 add x0, x0, 2 7766 mov w19, w1 7767 mov x2, x0 7768 mov w4, 32768 7769 mov w1, 0 7770.L1278: 7771 ldrh w3, [x2] 7772 tbnz x3, 15, .L1277 7773 cmp w3, w4 7774 bcs .L1277 7775 mov w4, w3 7776 mov w19, w1 7777.L1277: 7778 add w1, w1, 1 7779 add x2, x2, 16 7780 and w1, w1, 65535 7781 cmp w1, 8 7782 bne .L1278 7783 cmp w19, 8 7784 bne .L1275 7785 adrp x1, .LANCHOR137 7786 mov w2, -1 7787 ldrb w3, [x1, #:lo12:.LANCHOR137] 7788 mov w1, 0 7789.L1280: 7790 ldrh w5, [x0] 7791 cmp w5, w2 7792 bcs .L1279 7793 ldrh w4, [x0, -2] 7794 cmp w4, w3 7795 csel w2, w2, w5, eq 7796 csel w19, w19, w1, eq 7797.L1279: 7798 add w1, w1, 1 7799 add x0, x0, 16 7800 and w1, w1, 65535 7801 cmp w1, 8 7802 bne .L1280 7803 cmp w19, 8 7804 bne .L1275 7805 adrp x1, .LANCHOR138 7806 adrp x0, .LC0 7807 mov w2, 377 7808 add x1, x1, :lo12:.LANCHOR138 7809 add x0, x0, :lo12:.LC0 7810 bl printf 7811.L1275: 7812 mov w0, w19 7813 ldr x19, [sp, 16] 7814 ldp x29, x30, [sp], 32 7815 ret 7816 .size pm_select_ram_region, .-pm_select_ram_region 7817 .section .text.pm_ppa_update_check,"ax",@progbits 7818 .align 2 7819 .global pm_ppa_update_check 7820 .type pm_ppa_update_check, %function 7821pm_ppa_update_check: 7822 adrp x4, .LANCHOR31 7823 adrp x3, .LANCHOR80 7824 mov w5, 24 7825 ldrb w4, [x4, #:lo12:.LANCHOR31] 7826 ldrh w3, [x3, #:lo12:.LANCHOR80] 7827 sub w4, w5, w4 7828 sub w5, w4, w3 7829 mov w4, 1 7830 lsr w3, w2, w3 7831 lsl w4, w4, w5 7832 sub w4, w4, #1 7833 and w4, w4, w3 7834 adrp x3, .LANCHOR81 7835 ldrb w3, [x3, #:lo12:.LANCHOR81] 7836 udiv w4, w4, w3 7837 adrp x3, .LANCHOR9 7838 ldr x3, [x3, #:lo12:.LANCHOR9] 7839 add x4, x3, x4, uxth 2 7840 ldrb w3, [x4, 2] 7841 ubfx x3, x3, 5, 3 7842 cmp w3, 1 7843 ccmp w3, 7, 4, ne 7844 bne .L1287 7845 stp x29, x30, [sp, -16]! 7846 mov w3, w2 7847 mov w2, w1 7848 mov x1, x0 7849 add x29, sp, 0 7850 adrp x0, .LC77 7851 add x0, x0, :lo12:.LC77 7852 bl printf 7853 mov w0, -1 7854 ldp x29, x30, [sp], 16 7855 ret 7856.L1287: 7857 mov w0, 0 7858 ret 7859 .size pm_ppa_update_check, .-pm_ppa_update_check 7860 .section .text.idb_init,"ax",@progbits 7861 .align 2 7862 .global idb_init 7863 .type idb_init, %function 7864idb_init: 7865 adrp x0, .LANCHOR139 7866 str xzr, [x0, #:lo12:.LANCHOR139] 7867 adrp x0, .LANCHOR140 7868 str wzr, [x0, #:lo12:.LANCHOR140] 7869 adrp x0, .LANCHOR141 7870 strb wzr, [x0, #:lo12:.LANCHOR141] 7871 adrp x0, .LANCHOR142 7872 str xzr, [x0, #:lo12:.LANCHOR142] 7873 mov w0, 0 7874 ret 7875 .size idb_init, .-idb_init 7876 .section .text.ftl_memset,"ax",@progbits 7877 .align 2 7878 .global ftl_memset 7879 .type ftl_memset, %function 7880ftl_memset: 7881 uxtw x2, w2 7882 b memset 7883 .size ftl_memset, .-ftl_memset 7884 .section .text.flash_lsb_page_tbl_build,"ax",@progbits 7885 .align 2 7886 .global flash_lsb_page_tbl_build 7887 .type flash_lsb_page_tbl_build, %function 7888flash_lsb_page_tbl_build: 7889 stp x29, x30, [sp, -48]! 7890 adrp x1, .LANCHOR21 7891 add x29, sp, 0 7892 ldr x1, [x1, #:lo12:.LANCHOR21] 7893 stp x19, x20, [sp, 16] 7894 mov w20, 1024 7895 str x21, [sp, 32] 7896 adrp x19, .LANCHOR3 7897 ldrb w1, [x1, 12] 7898 sdiv w20, w20, w1 7899 cbnz w0, .L1295 7900 add x1, x19, :lo12:.LANCHOR3 7901 mov x0, 0 7902.L1296: 7903 strh w0, [x1, x0, lsl 1] 7904 add x0, x0, 1 7905 cmp x0, 512 7906 bne .L1296 7907.L1302: 7908 adrp x21, .LANCHOR143 7909 add x21, x21, :lo12:.LANCHOR143 7910 mov w2, 2048 7911 mov w1, 255 7912 mov x0, x21 7913 add x19, x19, :lo12:.LANCHOR3 7914 bl ftl_memset 7915 mov x0, 0 7916.L1297: 7917 ldrh w1, [x19, x0, lsl 1] 7918 add x0, x0, 1 7919 cmp w20, w0, uxth 7920 strh w1, [x21, w1, sxtw 1] 7921 bhi .L1297 7922 ldp x19, x20, [sp, 16] 7923 ldr x21, [sp, 32] 7924 ldp x29, x30, [sp], 48 7925 ret 7926.L1295: 7927 cmp w0, 1 7928 bne .L1298 7929 add x3, x19, :lo12:.LANCHOR3 7930 mov x1, 0 7931.L1301: 7932 and w0, w1, 65535 7933 cmp x1, 3 7934 bls .L1299 7935 ubfiz w2, w0, 1, 15 7936 and w0, w0, 1 7937 add w0, w0, 2 7938 sub w0, w2, w0 7939 and w0, w0, 65535 7940.L1299: 7941 strh w0, [x3, x1, lsl 1] 7942 add x1, x1, 1 7943 cmp x1, 512 7944 bne .L1301 7945 b .L1302 7946.L1298: 7947 cmp w0, 2 7948 bne .L1303 7949 add x3, x19, :lo12:.LANCHOR3 7950 mov w1, 65535 7951 mov x0, 0 7952.L1305: 7953 cmp x0, 2 7954 and w2, w0, 65535 7955 csel w2, w2, w1, cc 7956 strh w2, [x3, x0, lsl 1] 7957 add w1, w1, 2 7958 add x0, x0, 1 7959 and w1, w1, 65535 7960 cmp x0, 512 7961 bne .L1305 7962 b .L1302 7963.L1303: 7964 cmp w0, 3 7965 bne .L1306 7966 add x3, x19, :lo12:.LANCHOR3 7967 mov x1, 0 7968.L1309: 7969 and w0, w1, 65535 7970 cmp x1, 5 7971 bls .L1307 7972 ubfiz w2, w0, 1, 15 7973 and w0, w0, 1 7974 add w0, w0, 4 7975 sub w0, w2, w0 7976 and w0, w0, 65535 7977.L1307: 7978 strh w0, [x3, x1, lsl 1] 7979 add x1, x1, 1 7980 cmp x1, 512 7981 bne .L1309 7982 b .L1302 7983.L1306: 7984 cmp w0, 4 7985 bne .L1310 7986 add x1, x19, :lo12:.LANCHOR3 7987 mov w2, 1 7988 add x1, x1, 16 7989 strh wzr, [x19, #:lo12:.LANCHOR3] 7990 strh w0, [x1, -8] 7991 mov w0, 5 7992 strh w2, [x1, -14] 7993 mov w2, 2 7994 strh w0, [x1, -6] 7995 mov w0, 7 7996 strh w2, [x1, -12] 7997 mov w2, 3 7998 strh w0, [x1, -4] 7999 mov w0, 8 8000 strh w2, [x1, -10] 8001 strh w0, [x1, -2] 8002 mov w0, 8 8003.L1312: 8004 and w3, w0, 1 8005 ubfiz w2, w0, 1, 15 8006 add w3, w3, 6 8007 add w0, w0, 1 8008 sub w2, w2, w3 8009 strh w2, [x1], 2 8010 and w0, w0, 65535 8011 cmp w0, 512 8012 bne .L1312 8013 b .L1302 8014.L1310: 8015 cmp w0, 5 8016 bne .L1313 8017 add x1, x19, :lo12:.LANCHOR3 8018 mov x0, 0 8019.L1314: 8020 strh w0, [x1, x0, lsl 1] 8021 add x0, x0, 1 8022 cmp x0, 16 8023 bne .L1314 8024 add x1, x1, 32 8025.L1315: 8026 strh w0, [x1], 2 8027 add w0, w0, 2 8028 and w0, w0, 65535 8029 cmp w0, 1008 8030 bne .L1315 8031 b .L1302 8032.L1313: 8033 cmp w0, 8 8034 bne .L1316 8035 add x1, x19, :lo12:.LANCHOR3 8036 mov x0, 0 8037.L1317: 8038 strh w0, [x0, x1] 8039 add x0, x0, 2 8040 cmp x0, 1024 8041 bne .L1317 8042 b .L1302 8043.L1316: 8044 cmp w0, 9 8045 bne .L1318 8046 add x0, x19, :lo12:.LANCHOR3 8047 mov w1, 1 8048 add x0, x0, 6 8049 strh wzr, [x19, #:lo12:.LANCHOR3] 8050 strh w1, [x0, -4] 8051 mov w1, 2 8052 strh w1, [x0, -2] 8053 mov w1, 3 8054.L1319: 8055 strh w1, [x0], 2 8056 add w1, w1, 2 8057 and w1, w1, 65535 8058 cmp w1, 1021 8059 bne .L1319 8060 b .L1302 8061.L1318: 8062 cmp w0, 10 8063 bne .L1320 8064 add x1, x19, :lo12:.LANCHOR3 8065 mov x0, 0 8066.L1321: 8067 strh w0, [x1, x0, lsl 1] 8068 add x0, x0, 1 8069 cmp x0, 63 8070 bne .L1321 8071 add x1, x1, 126 8072.L1322: 8073 strh w0, [x1], 2 8074 add w0, w0, 2 8075 and w0, w0, 65535 8076 cmp w0, 961 8077 bne .L1322 8078 b .L1302 8079.L1320: 8080 cmp w0, 11 8081 bne .L1323 8082 add x1, x19, :lo12:.LANCHOR3 8083 mov x0, 0 8084.L1324: 8085 strh w0, [x1, x0, lsl 1] 8086 add x0, x0, 1 8087 cmp x0, 8 8088 bne .L1324 8089 add x1, x1, 16 8090.L1326: 8091 and w3, w0, 1 8092 ubfiz w2, w0, 1, 15 8093 add w3, w3, 6 8094 add w0, w0, 1 8095 sub w2, w2, w3 8096 strh w2, [x1], 2 8097 and w0, w0, 65535 8098 cmp w0, 512 8099 bne .L1326 8100 b .L1302 8101.L1323: 8102 cmp w0, 13 8103 bne .L1302 8104 add x2, x19, :lo12:.LANCHOR3 8105 mov x1, 0 8106 mov w0, 0 8107.L1327: 8108 strh w0, [x1, x2] 8109 add w0, w0, 3 8110 and w0, w0, 65535 8111 add x1, x1, 2 8112 cmp w0, 1536 8113 bne .L1327 8114 b .L1302 8115 .size flash_lsb_page_tbl_build, .-flash_lsb_page_tbl_build 8116 .section .text.flash_die_info_init,"ax",@progbits 8117 .align 2 8118 .global flash_die_info_init 8119 .type flash_die_info_init, %function 8120flash_die_info_init: 8121 stp x29, x30, [sp, -128]! 8122 adrp x0, .LANCHOR19 8123 add x29, sp, 0 8124 ldr w0, [x0, #:lo12:.LANCHOR19] 8125 stp x19, x20, [sp, 16] 8126 stp x21, x22, [sp, 32] 8127 stp x23, x24, [sp, 48] 8128 stp x25, x26, [sp, 64] 8129 stp x27, x28, [sp, 80] 8130 tbz x0, 12, .L1350 8131 adrp x1, .LANCHOR144 8132 adrp x0, .LC1 8133 add x1, x1, :lo12:.LANCHOR144 8134 add x0, x0, :lo12:.LC1 8135 bl printf 8136.L1350: 8137 adrp x19, .LANCHOR32 8138 add x23, x19, :lo12:.LANCHOR32 8139 adrp x25, .LANCHOR2 8140 adrp x20, .LANCHOR23 8141 mov w2, 8 8142 adrp x22, .LANCHOR29 8143 ldrh w0, [x23, 26] 8144 adrp x21, .LANCHOR146 8145 ldrb w1, [x23, 12] 8146 adrp x26, .LANCHOR33 8147 strh w0, [x25, #:lo12:.LANCHOR2] 8148 adrp x24, .LANCHOR47 8149 ldrh w0, [x23, 10] 8150 add x26, x26, :lo12:.LANCHOR33 8151 strb wzr, [x20, #:lo12:.LANCHOR23] 8152 add x27, x24, :lo12:.LANCHOR47 8153 mov x28, 0 8154 sdiv w0, w0, w1 8155 adrp x1, .LANCHOR145 8156 strh w0, [x1, #:lo12:.LANCHOR145] 8157 mov w1, 0 8158 add x0, x22, :lo12:.LANCHOR29 8159 bl ftl_memset 8160 mov w2, 32 8161 mov w1, 0 8162 add x0, x21, :lo12:.LANCHOR146 8163 bl ftl_memset 8164 add x0, x23, 1 8165 str x0, [x29, 120] 8166.L1353: 8167 mov w0, 2 8168 ldrb w2, [x23] 8169 strb w0, [x28, x26] 8170 lsl x7, x28, 3 8171 ldr x0, [x29, 120] 8172 add x1, x27, x7 8173 bl flash_mem_cmp8 8174 cbnz w0, .L1351 8175 ldrb w4, [x20, #:lo12:.LANCHOR23] 8176 add x1, x21, :lo12:.LANCHOR146 8177 and w2, w28, 255 8178 add w0, w4, 1 8179 strb w0, [x20, #:lo12:.LANCHOR23] 8180 add x0, x22, :lo12:.LANCHOR29 8181 str wzr, [x1, x4, lsl 2] 8182 strb w2, [x0, x4] 8183 ldrb w0, [x7, x27] 8184 cmp w0, 173 8185 bne .L1352 8186 adrp x0, .LANCHOR7 8187 str w2, [x29, 108] 8188 ldr x1, [x0, #:lo12:.LANCHOR7] 8189 mov w0, 191 8190 add x1, x1, x28, lsl 8 8191 str x1, [x29, 112] 8192 str w0, [x1, 2056] 8193 bl nandc_wait_flash_ready 8194 ldr x1, [x29, 112] 8195 mov w0, 223 8196 str w0, [x1, 2056] 8197 bl nandc_wait_flash_ready 8198 ldr w2, [x29, 108] 8199.L1352: 8200 mov w0, w2 8201 bl zftl_flash_enter_slc_mode 8202.L1351: 8203 add x28, x28, 1 8204 cmp x28, 4 8205 bne .L1353 8206 add x0, x19, :lo12:.LANCHOR32 8207 ldrb w1, [x0, 8] 8208 cmp w1, 2 8209 beq .L1354 8210.L1358: 8211 add x19, x19, :lo12:.LANCHOR32 8212 ldrb w0, [x20, #:lo12:.LANCHOR23] 8213 ldp x21, x22, [sp, 32] 8214 ldrb w1, [x19, 13] 8215 ldp x23, x24, [sp, 48] 8216 ldp x25, x26, [sp, 64] 8217 mul w0, w0, w1 8218 ldrh w1, [x19, 14] 8219 ldp x27, x28, [sp, 80] 8220 ldp x19, x20, [sp, 16] 8221 mul w0, w0, w1 8222 adrp x1, .LANCHOR147 8223 strh w0, [x1, #:lo12:.LANCHOR147] 8224 ldp x29, x30, [sp], 128 8225 ret 8226.L1354: 8227 ldrh w1, [x25, #:lo12:.LANCHOR2] 8228 add x24, x24, :lo12:.LANCHOR47 8229 ldrb w8, [x0, 13] 8230 add x7, x0, 1 8231 ldrb w12, [x19, #:lo12:.LANCHOR32] 8232 add x11, x20, :lo12:.LANCHOR23 8233 ldrb w13, [x0, 23] 8234 add x21, x21, :lo12:.LANCHOR146 8235 add x22, x22, :lo12:.LANCHOR29 8236 mov x10, 0 8237 mul w8, w8, w1 8238 ldrh w1, [x0, 14] 8239 and w1, w1, 65280 8240 mul w8, w8, w1 8241 lsl w14, w8, 1 8242.L1357: 8243 mov w2, w12 8244 add x1, x24, x10, lsl 3 8245 mov x0, x7 8246 bl flash_mem_cmp8 8247 cbnz w0, .L1355 8248 ldrb w1, [x11] 8249 cmp w13, 0 8250 csel w2, w8, w14, eq 8251 add w0, w1, 1 8252 strb w0, [x11] 8253 str w2, [x21, x1, lsl 2] 8254 strb w10, [x22, x1] 8255.L1355: 8256 add x10, x10, 1 8257 cmp x10, 4 8258 bne .L1357 8259 b .L1358 8260 .size flash_die_info_init, .-flash_die_info_init 8261 .section .text.lpa_hash_init,"ax",@progbits 8262 .align 2 8263 .global lpa_hash_init 8264 .type lpa_hash_init, %function 8265lpa_hash_init: 8266 stp x29, x30, [sp, -16]! 8267 mov w2, 512 8268 mov w1, 255 8269 adrp x0, .LANCHOR122 8270 add x29, sp, 0 8271 add x0, x0, :lo12:.LANCHOR122 8272 bl ftl_memset 8273 adrp x0, .LANCHOR100 8274 mov w1, 255 8275 ldp x29, x30, [sp], 16 8276 ldrh w2, [x0, #:lo12:.LANCHOR100] 8277 adrp x0, .LANCHOR85 8278 ldrb w0, [x0, #:lo12:.LANCHOR85] 8279 mul w2, w2, w0 8280 adrp x0, .LANCHOR124 8281 ldr x0, [x0, #:lo12:.LANCHOR124] 8282 lsl w2, w2, 2 8283 b ftl_memset 8284 .size lpa_hash_init, .-lpa_hash_init 8285 .section .text.lpa_rebuild_hash,"ax",@progbits 8286 .align 2 8287 .global lpa_rebuild_hash 8288 .type lpa_rebuild_hash, %function 8289lpa_rebuild_hash: 8290 stp x29, x30, [sp, -48]! 8291 adrp x0, .LANCHOR19 8292 add x29, sp, 0 8293 ldr w0, [x0, #:lo12:.LANCHOR19] 8294 stp x19, x20, [sp, 16] 8295 stp x21, x22, [sp, 32] 8296 tbz x0, 12, .L1371 8297 adrp x1, .LANCHOR148 8298 adrp x0, .LC78 8299 mov w3, 0 8300 mov w2, 239 8301 add x1, x1, :lo12:.LANCHOR148 8302 add x0, x0, :lo12:.LC78 8303 bl printf 8304.L1371: 8305 adrp x20, .LANCHOR100 8306 adrp x22, .LANCHOR85 8307 adrp x19, .LANCHOR122 8308 add x19, x19, :lo12:.LANCHOR122 8309 mov w2, 512 8310 mov w1, 255 8311 mov x0, x19 8312 bl ftl_memset 8313 ldrh w2, [x20, #:lo12:.LANCHOR100] 8314 adrp x21, .LANCHOR124 8315 ldrb w0, [x22, #:lo12:.LANCHOR85] 8316 mov w1, 255 8317 add x20, x20, :lo12:.LANCHOR100 8318 mul w2, w2, w0 8319 ldr x0, [x21, #:lo12:.LANCHOR124] 8320 lsl w2, w2, 2 8321 bl ftl_memset 8322 adrp x0, .LANCHOR123 8323 ldrb w3, [x22, #:lo12:.LANCHOR85] 8324 ldr x5, [x21, #:lo12:.LANCHOR124] 8325 mov w1, 0 8326 ldr x4, [x0, #:lo12:.LANCHOR123] 8327.L1372: 8328 ldrh w0, [x20] 8329 mul w0, w0, w3 8330 cmp w1, w0, lsl 1 8331 blt .L1374 8332 ldp x19, x20, [sp, 16] 8333 ldp x21, x22, [sp, 32] 8334 ldp x29, x30, [sp], 48 8335 ret 8336.L1374: 8337 uxtw x2, w1 8338 ldr w0, [x4, x2, lsl 2] 8339 cmn w0, #1 8340 beq .L1373 8341 and x0, x0, 255 8342 ldrh w6, [x19, x0, lsl 1] 8343 strh w1, [x19, x0, lsl 1] 8344 strh w6, [x5, x2, lsl 1] 8345.L1373: 8346 add w1, w1, 1 8347 and w1, w1, 65535 8348 b .L1372 8349 .size lpa_rebuild_hash, .-lpa_rebuild_hash 8350 .section .text.zftl_read_flash_info,"ax",@progbits 8351 .align 2 8352 .global zftl_read_flash_info 8353 .type zftl_read_flash_info, %function 8354zftl_read_flash_info: 8355 stp x29, x30, [sp, -32]! 8356 mov w2, 11 8357 mov w1, 0 8358 add x29, sp, 0 8359 str x19, [sp, 16] 8360 mov x19, x0 8361 bl ftl_memset 8362 adrp x1, .LANCHOR32 8363 add x1, x1, :lo12:.LANCHOR32 8364 adrp x0, .LANCHOR2 8365 adrp x3, .LANCHOR73 8366 strb wzr, [x19, 10] 8367 mov w4, 1 8368 ldrb w2, [x1, 9] 8369 ldrh w0, [x0, #:lo12:.LANCHOR2] 8370 mul w0, w2, w0 8371 strb w0, [x19, 4] 8372 ubfx x0, x0, 8, 8 8373 strb w0, [x19, 5] 8374 adrp x0, .LANCHOR49 8375 ldrb w0, [x0, #:lo12:.LANCHOR49] 8376 strb w0, [x19, 7] 8377 add x0, x3, :lo12:.LANCHOR73 8378 ldrb w3, [x3, #:lo12:.LANCHOR73] 8379 strb w3, [x19] 8380 ldrb w3, [x0, 1] 8381 strb w3, [x19, 1] 8382 ldrb w3, [x0, 2] 8383 ldrb w0, [x0, 3] 8384 strb w3, [x19, 2] 8385 strb w0, [x19, 3] 8386 mov w0, 32 8387 strb w2, [x19, 6] 8388 adrp x2, .LANCHOR29 8389 strb w0, [x19, 8] 8390 add x2, x2, :lo12:.LANCHOR29 8391 ldrb w0, [x1, 7] 8392 mov x1, 0 8393 strb w0, [x19, 9] 8394 adrp x0, .LANCHOR23 8395 ldrb w3, [x0, #:lo12:.LANCHOR23] 8396.L1383: 8397 cmp w3, w1, uxtb 8398 bhi .L1384 8399 ldr x19, [sp, 16] 8400 ldp x29, x30, [sp], 32 8401 ret 8402.L1384: 8403 ldrb w0, [x1, x2] 8404 add x1, x1, 1 8405 ldrb w5, [x19, 10] 8406 lsl w0, w4, w0 8407 orr w0, w0, w5 8408 strb w0, [x19, 10] 8409 b .L1383 8410 .size zftl_read_flash_info, .-zftl_read_flash_info 8411 .section .text.gc_static_wearleveling,"ax",@progbits 8412 .align 2 8413 .global gc_static_wearleveling 8414 .type gc_static_wearleveling, %function 8415gc_static_wearleveling: 8416 stp x29, x30, [sp, -160]! 8417 add x29, sp, 0 8418 stp x21, x22, [sp, 32] 8419 adrp x22, .LANCHOR69 8420 stp x19, x20, [sp, 16] 8421 ldr x0, [x22, #:lo12:.LANCHOR69] 8422 stp x23, x24, [sp, 48] 8423 stp x25, x26, [sp, 64] 8424 stp x27, x28, [sp, 80] 8425 ldr w1, [x0, 32] 8426 mov w0, 10240 8427 cmp w1, w0 8428 bls .L1387 8429 bl ftl_tmp_into_update 8430.L1387: 8431 adrp x19, .LANCHOR12 8432 mov w3, 36000 8433 ldr x0, [x19, #:lo12:.LANCHOR12] 8434 ldr w1, [x0, 568] 8435 ldr w2, [x0, 12] 8436 add w3, w1, w3 8437 cmp w2, w3 8438 bcs .L1388 8439 ldr x4, [x22, #:lo12:.LANCHOR69] 8440 ldr w3, [x0, 572] 8441 add w3, w3, 256 8442 ldr w4, [x4, 36] 8443 cmp w4, w3 8444 bcc .L1440 8445.L1388: 8446 add w1, w1, 860160 8447 add w1, w1, 3840 8448 cmp w2, w1 8449 bhi .L1390 8450 ldr x3, [x22, #:lo12:.LANCHOR69] 8451 ldr w1, [x0, 572] 8452 add w1, w1, 32 8453 ldr w3, [x3, 36] 8454 cmp w3, w1 8455 bls .L1441 8456.L1390: 8457 ldr x1, [x22, #:lo12:.LANCHOR69] 8458 mov w20, 65535 8459 adrp x8, .LANCHOR19 8460 mov w21, w20 8461 add x8, x8, :lo12:.LANCHOR19 8462 mov w27, 0 8463 mov w25, 0 8464 mov w26, 0 8465 ldr w3, [x1, 36] 8466 mov w23, 0 8467 ldrh w28, [x1, 134] 8468 adrp x24, .LANCHOR9 8469 str w2, [x0, 568] 8470 str w3, [x0, 572] 8471 adrp x0, .LANCHOR8 8472 add x10, x0, :lo12:.LANCHOR8 8473 str wzr, [x29, 128] 8474 str wzr, [x29, 136] 8475 stp wzr, wzr, [x29, 144] 8476.L1392: 8477 ldrh w0, [x10] 8478 cmp w0, w28 8479 bhi .L1401 8480 ldr x0, [x19, #:lo12:.LANCHOR12] 8481 mov w2, 128 8482 mov w1, 255 8483 add x0, x0, 264 8484 strh wzr, [x0, -142] 8485 bl ftl_memset 8486 ldr x0, [x19, #:lo12:.LANCHOR12] 8487 adrp x2, .LANCHOR19 8488 ldr x8, [x24, #:lo12:.LANCHOR9] 8489 ldr w3, [x2, #:lo12:.LANCHOR19] 8490 str x2, [x29, 152] 8491 ldrh w0, [x0, 586] 8492 mov x1, x0 8493 lsl x28, x0, 2 8494 add x10, x8, x28 8495 tbz x3, 10, .L1402 8496 adrp x2, .LANCHOR11 8497 ldrb w6, [x10, 3] 8498 ldrb w4, [x10, 2] 8499 ldr x5, [x2, #:lo12:.LANCHOR11] 8500 ldr w3, [x8, x28] 8501 ldrh w2, [x8, x28] 8502 stp x8, x10, [x29, 112] 8503 ldrh w7, [x5, x0, lsl 1] 8504 ubfx x3, x3, 11, 8 8505 ubfx x5, x4, 5, 3 8506 and w2, w2, 2047 8507 ubfx x4, x4, 3, 2 8508 adrp x0, .LC80 8509 add x0, x0, :lo12:.LC80 8510 bl printf 8511 ldp x8, x10, [x29, 112] 8512.L1402: 8513 ldrb w0, [x10, 2] 8514 and w3, w0, 224 8515 cmp w3, 32 8516 bne .L1403 8517 ldr x1, [x22, #:lo12:.LANCHOR69] 8518 ldrh w1, [x1, 688] 8519 cmp w1, 2 8520 bls .L1403 8521 adrp x1, .LANCHOR149 8522 mov w2, 1 8523 str w2, [x1, #:lo12:.LANCHOR149] 8524.L1403: 8525 ldrb w1, [x10, 2] 8526 tbz x1, 3, .L1404 8527 ldr x1, [x22, #:lo12:.LANCHOR69] 8528 ldrh w2, [x8, x28] 8529 and w2, w2, 2047 8530 ldrh w4, [x1, 96] 8531 adrp x1, .LANCHOR150 8532 ldrh w1, [x1, #:lo12:.LANCHOR150] 8533 add w1, w2, w1, lsr 2 8534 cmp w4, w1 8535 ble .L1404 8536 and w0, w0, 192 8537 cmp w0, 64 8538 bne .L1405 8539 ldr x0, [x19, #:lo12:.LANCHOR12] 8540 mov w1, 0 8541 mov w2, 1 8542 ldrh w0, [x0, 586] 8543 bl gc_add_sblk 8544 adrp x0, .LANCHOR76+2192 8545 mov w1, 1 8546 strh w1, [x0, #:lo12:.LANCHOR76+2192] 8547.L1404: 8548 ldr x0, [x19, #:lo12:.LANCHOR12] 8549 ldr x2, [x29, 152] 8550 ldr x11, [x24, #:lo12:.LANCHOR9] 8551 ldrh w0, [x0, 584] 8552 ldr w2, [x2, #:lo12:.LANCHOR19] 8553 mov x1, x0 8554 lsl x10, x0, 2 8555 add x28, x11, x10 8556 tbz x2, 10, .L1406 8557 adrp x2, .LANCHOR11 8558 ldrb w6, [x28, 3] 8559 ldrb w4, [x28, 2] 8560 ldr x5, [x2, #:lo12:.LANCHOR11] 8561 ldr w3, [x11, x10] 8562 ldrh w2, [x11, x10] 8563 stp x10, x11, [x29, 112] 8564 ldrh w7, [x5, x0, lsl 1] 8565 ubfx x3, x3, 11, 8 8566 ubfx x5, x4, 5, 3 8567 and w2, w2, 2047 8568 ubfx x4, x4, 3, 2 8569 adrp x0, .LC81 8570 add x0, x0, :lo12:.LC81 8571 bl printf 8572 ldp x10, x11, [x29, 112] 8573.L1406: 8574 ldrb w0, [x28, 2] 8575 tbz x0, 3, .L1407 8576 ldr x0, [x22, #:lo12:.LANCHOR69] 8577 ldr w1, [x11, x10] 8578 ldrh w2, [x0, 98] 8579 adrp x0, .LANCHOR151 8580 ubfx x1, x1, 11, 8 8581 ldrh w0, [x0, #:lo12:.LANCHOR151] 8582 add w0, w1, w0, lsr 2 8583 cmp w2, w0 8584 ble .L1407 8585 ldrb w0, [x28, 2] 8586 and w1, w0, 192 8587 cmp w1, 64 8588 bne .L1408 8589 ldr x0, [x19, #:lo12:.LANCHOR12] 8590 mov w1, 0 8591 mov w2, 1 8592 ldrh w0, [x0, 584] 8593 bl gc_add_sblk 8594 adrp x0, .LANCHOR76+2192 8595 mov w1, 1 8596 strh w1, [x0, #:lo12:.LANCHOR76+2192] 8597.L1407: 8598 ldr x0, [x29, 152] 8599 ldr w0, [x0, #:lo12:.LANCHOR19] 8600 tbz x0, 10, .L1409 8601 adrp x2, .LANCHOR11 8602 ldr x1, [x24, #:lo12:.LANCHOR9] 8603 uxtw x6, w27 8604 lsl x0, x6, 2 8605 ldr x7, [x2, #:lo12:.LANCHOR11] 8606 add x5, x1, x0 8607 ldr w3, [x1, x0] 8608 ldrh w7, [x7, x6, lsl 1] 8609 ldrb w6, [x5, 3] 8610 ldrb w4, [x5, 2] 8611 ubfx x3, x3, 11, 8 8612 ldrh w2, [x1, x0] 8613 adrp x0, .LC82 8614 mov w1, w27 8615 add x0, x0, :lo12:.LC82 8616 ubfx x5, x4, 5, 3 8617 and w2, w2, 2047 8618 ubfx x4, x4, 3, 2 8619 bl printf 8620.L1409: 8621 ldr x0, [x29, 152] 8622 ldr w0, [x0, #:lo12:.LANCHOR19] 8623 tbz x0, 10, .L1410 8624 ldr w6, [x29, 128] 8625 adrp x2, .LANCHOR11 8626 ldr x1, [x24, #:lo12:.LANCHOR9] 8627 ldr x7, [x2, #:lo12:.LANCHOR11] 8628 lsl x0, x6, 2 8629 add x5, x1, x0 8630 ldr w3, [x1, x0] 8631 ldrh w2, [x1, x0] 8632 adrp x0, .LC83 8633 ldrh w7, [x7, x6, lsl 1] 8634 add x0, x0, :lo12:.LC83 8635 ldrb w6, [x5, 3] 8636 ubfx x3, x3, 11, 8 8637 ldr w1, [x29, 128] 8638 and w2, w2, 2047 8639 ldrb w4, [x5, 2] 8640 ubfx x5, x4, 5, 3 8641 ubfx x4, x4, 3, 2 8642 bl printf 8643.L1410: 8644 ldr x0, [x22, #:lo12:.LANCHOR69] 8645 ldrh w1, [x29, 148] 8646 strh w1, [x0, 96] 8647 ldr w1, [x29, 136] 8648 strh w23, [x0, 98] 8649 strh w20, [x0, 92] 8650 strh w21, [x0, 94] 8651 udiv w3, w1, w26 8652 ldr w1, [x29, 144] 8653 udiv w4, w1, w25 8654 strh w3, [x0, 88] 8655 strh w4, [x0, 90] 8656 ldr x0, [x29, 152] 8657 ldr w0, [x0, #:lo12:.LANCHOR19] 8658 tbz x0, 10, .L1411 8659 adrp x0, .LC84 8660 and w4, w4, 65535 8661 and w3, w3, 65535 8662 mov w2, w25 8663 mov w1, w26 8664 add x0, x0, :lo12:.LC84 8665 bl printf 8666.L1411: 8667 ldr x0, [x29, 152] 8668 ldr w0, [x0, #:lo12:.LANCHOR19] 8669 tbz x0, 10, .L1412 8670 adrp x0, .LANCHOR151 8671 ldr w3, [x29, 148] 8672 mov w4, w23 8673 mov w2, w21 8674 ldrh w6, [x0, #:lo12:.LANCHOR151] 8675 adrp x0, .LANCHOR150 8676 mov w1, w20 8677 ldrh w5, [x0, #:lo12:.LANCHOR150] 8678 adrp x0, .LC85 8679 add x0, x0, :lo12:.LC85 8680 bl printf 8681.L1412: 8682 sub w0, w23, w21 8683 str w0, [x29, 144] 8684 adrp x0, .LANCHOR151 8685 ldr w1, [x29, 144] 8686 ldrh w0, [x0, #:lo12:.LANCHOR151] 8687 cmp w1, w0 8688 bgt .L1413 8689 adrp x1, .LANCHOR150 8690 ldr w0, [x29, 148] 8691 ldrh w1, [x1, #:lo12:.LANCHOR150] 8692 sub w0, w0, w20 8693 cmp w0, w1 8694 ble .L1442 8695.L1413: 8696 ldr x0, [x19, #:lo12:.LANCHOR12] 8697 adrp x26, .LANCHOR76 8698 add x26, x26, :lo12:.LANCHOR76 8699 mov w25, 0 8700 mov w23, 0 8701 ldrh w28, [x0, 580] 8702 ldr x0, [x22, #:lo12:.LANCHOR69] 8703 ldrh w27, [x0, 134] 8704 adrp x0, .LANCHOR8 8705 add x0, x0, :lo12:.LANCHOR8 8706 str x0, [x29, 136] 8707 adrp x0, .LANCHOR150 8708 add x0, x0, :lo12:.LANCHOR150 8709 str x0, [x29, 128] 8710.L1415: 8711 ldr x0, [x29, 136] 8712 ldrh w0, [x0] 8713 cmp w27, w0 8714 bcc .L1425 8715.L1424: 8716 ldr x0, [x19, #:lo12:.LANCHOR12] 8717 str w28, [x0, 580] 8718.L1414: 8719 cbz w21, .L1427 8720 ldr x2, [x22, #:lo12:.LANCHOR69] 8721 adrp x0, .LANCHOR8 8722 ldrh w5, [x0, #:lo12:.LANCHOR8] 8723 ldr x0, [x24, #:lo12:.LANCHOR9] 8724 ldrh w1, [x2, 134] 8725 add x0, x0, x1, uxth 2 8726.L1428: 8727 cmp w1, w5 8728 bcc .L1430 8729 ldrh w0, [x2, 72] 8730 add w0, w21, w0 8731 strh w0, [x2, 72] 8732 ldrh w0, [x2, 98] 8733 cmp w21, w0 8734 bcs .L1427 8735 sub w21, w0, w21 8736 strh w21, [x2, 98] 8737.L1427: 8738 cbz w20, .L1433 8739 ldr x2, [x22, #:lo12:.LANCHOR69] 8740 adrp x0, .LANCHOR8 8741 ldrh w6, [x0, #:lo12:.LANCHOR8] 8742 ldr x0, [x24, #:lo12:.LANCHOR9] 8743 ldrh w1, [x2, 134] 8744 add x0, x0, x1, uxth 2 8745.L1434: 8746 cmp w1, w6 8747 bcc .L1436 8748 ldrh w0, [x2, 74] 8749 add w0, w20, w0 8750 strh w0, [x2, 74] 8751 ldrh w0, [x2, 96] 8752 cmp w20, w0 8753 bcs .L1433 8754 sub w20, w0, w20 8755 strh w20, [x2, 96] 8756.L1433: 8757 mov w1, 0 8758 adrp x0, .LANCHOR98 8759 add x0, x0, :lo12:.LANCHOR98 8760 bl _list_get_gc_head_node 8761 and w1, w0, 65535 8762 mov w2, 65535 8763 cmp w1, w2 8764 beq .L1391 8765 adrp x2, .LANCHOR11 8766 ubfiz x1, x1, 1, 16 8767 ldr x3, [x2, #:lo12:.LANCHOR11] 8768 adrp x2, .LANCHOR100 8769 ldrh w2, [x2, #:lo12:.LANCHOR100] 8770 ldrh w1, [x3, x1] 8771 cmp w1, w2, lsr 1 8772 bhi .L1391 8773 add w23, w23, 1 8774 mov w2, 1 8775 mov w1, 0 8776 bl gc_add_sblk 8777.L1391: 8778 add w0, w23, w25 8779.L1386: 8780 ldp x19, x20, [sp, 16] 8781 ldp x21, x22, [sp, 32] 8782 ldp x23, x24, [sp, 48] 8783 ldp x25, x26, [sp, 64] 8784 ldp x27, x28, [sp, 80] 8785 ldp x29, x30, [sp], 160 8786 ret 8787.L1401: 8788 uxtw x7, w28 8789 ldr x6, [x24, #:lo12:.LANCHOR9] 8790 lsl x2, x7, 2 8791 add x11, x6, x2 8792 ldrb w0, [x11, 2] 8793 and w1, w0, 224 8794 cmp w1, 224 8795 beq .L1393 8796 ubfx x4, x0, 3, 2 8797 tbz x4, 0, .L1394 8798 ldr w0, [x6, x2] 8799 ldrh w1, [x6, x2] 8800 ubfx x0, x0, 11, 8 8801 and w1, w1, 2047 8802.L1395: 8803 ldr w3, [x29, 136] 8804 add w26, w26, 1 8805 and w26, w26, 65535 8806 cmp w20, w1 8807 add w3, w3, w1 8808 str w3, [x29, 136] 8809 bls .L1439 8810 ldr x3, [x19, #:lo12:.LANCHOR12] 8811 mov w20, w1 8812 strh w28, [x3, 586] 8813.L1439: 8814 ldr w3, [x29, 148] 8815 cmp w3, w1 8816 bcs .L1398 8817 mov w27, w28 8818 str w1, [x29, 148] 8819.L1398: 8820 mov w3, 65535 8821 cmp w0, w3 8822 bne .L1397 8823.L1399: 8824 cmp w0, 9 8825 ccmp w1, 9, 0, hi 8826 bhi .L1393 8827 ldr w0, [x8] 8828 tbz x0, 8, .L1393 8829 adrp x0, .LANCHOR11 8830 ldr w3, [x6, x2] 8831 ldrh w2, [x6, x2] 8832 mov w1, w28 8833 ldr x0, [x0, #:lo12:.LANCHOR11] 8834 ldrb w6, [x11, 3] 8835 ubfx x3, x3, 11, 8 8836 ldrb w5, [x11, 2] 8837 and w2, w2, 2047 8838 str x8, [x29, 120] 8839 ldrh w7, [x0, x7, lsl 1] 8840 adrp x0, .LC79 8841 str x10, [x29, 152] 8842 ubfx x5, x5, 5, 3 8843 add x0, x0, :lo12:.LC79 8844 bl printf 8845 ldr x8, [x29, 120] 8846 ldr x10, [x29, 152] 8847.L1393: 8848 add w28, w28, 1 8849 and w28, w28, 65535 8850 b .L1392 8851.L1394: 8852 tst w0, 24 8853 bne .L1396 8854 ldrh w1, [x6, x2] 8855 mov w0, 65535 8856 and w1, w1, 2047 8857 b .L1395 8858.L1396: 8859 ldr w0, [x6, x2] 8860 mov w1, 65535 8861 ubfx x0, x0, 11, 8 8862.L1397: 8863 ldr w3, [x29, 144] 8864 add w25, w25, 1 8865 and w25, w25, 65535 8866 cmp w21, w0 8867 add w3, w3, w0 8868 str w3, [x29, 144] 8869 bls .L1400 8870 ldr x3, [x19, #:lo12:.LANCHOR12] 8871 mov w21, w0 8872 strh w28, [x3, 584] 8873.L1400: 8874 cmp w23, w0 8875 bcs .L1399 8876 mov w23, w0 8877 str w28, [x29, 128] 8878 b .L1399 8879.L1405: 8880 cbnz w3, .L1404 8881 ldr x1, [x19, #:lo12:.LANCHOR12] 8882 mov w0, 65535 8883 ldrh w2, [x1, 590] 8884 cmp w2, w0 8885 bne .L1404 8886 ldrh w0, [x1, 586] 8887 ldrh w1, [x1, 588] 8888 cmp w1, w0 8889 beq .L1404 8890 bl zftl_remove_free_node 8891 ldr x0, [x19, #:lo12:.LANCHOR12] 8892 ldrh w1, [x0, 586] 8893 strh w1, [x0, 590] 8894 mov w1, -1 8895 strh w1, [x0, 586] 8896 b .L1404 8897.L1408: 8898 and w0, w0, 248 8899 cmp w0, 16 8900 bne .L1407 8901 ldr x1, [x19, #:lo12:.LANCHOR12] 8902 mov w0, 65535 8903 ldrh w2, [x1, 588] 8904 cmp w2, w0 8905 bne .L1407 8906 ldrh w0, [x1, 584] 8907 ldrh w1, [x1, 590] 8908 cmp w1, w0 8909 beq .L1407 8910 bl zftl_remove_free_node 8911 ldr x0, [x19, #:lo12:.LANCHOR12] 8912 ldrh w1, [x0, 584] 8913 strh w1, [x0, 588] 8914 mov w1, -1 8915 strh w1, [x0, 584] 8916 b .L1407 8917.L1425: 8918 add w7, w28, 1 8919 ldr x4, [x24, #:lo12:.LANCHOR9] 8920 and w28, w7, 65535 8921 cmp w0, w28 8922 csel w28, w28, wzr, hi 8923 uxtw x8, w28 8924 lsl x3, x8, 2 8925 add x0, x4, x3 8926 ldrb w0, [x0, 2] 8927 tst w0, 192 8928 beq .L1417 8929 and w2, w0, 224 8930 cmp w2, 224 8931 beq .L1417 8932 ubfx x0, x0, 3, 2 8933 and w1, w0, 1 8934 tbz x0, 0, .L1418 8935 cmp w2, 160 8936.L1505: 8937 bne .L1420 8938 adrp x0, .LANCHOR151 8939 ldr w2, [x29, 144] 8940 ldrh w0, [x0, #:lo12:.LANCHOR151] 8941 cmp w2, w0 8942 ble .L1421 8943 ldr w0, [x4, x3] 8944 ubfx x0, x0, 11, 8 8945 cmp w0, w21 8946 bls .L1422 8947 cbz w1, .L1421 8948 ldrh w0, [x4, x3] 8949 and w0, w0, 2047 8950 cmp w0, w20 8951 bgt .L1421 8952.L1422: 8953 stp x4, x8, [x29, 104] 8954 mov w2, 1 8955 str x3, [x29, 120] 8956 mov w1, 0 8957 mov w0, w28 8958 bl gc_add_sblk 8959 mov w0, 1 8960 strh w0, [x26, 2192] 8961 ldr x0, [x29, 152] 8962 add w23, w23, 1 8963 ldp x4, x8, [x29, 104] 8964 ldr x3, [x29, 120] 8965 ldr w0, [x0, #:lo12:.LANCHOR19] 8966 tbz x0, 10, .L1421 8967 adrp x0, .LANCHOR11 8968 ldr w6, [x4, x3] 8969 ldrh w5, [x4, x3] 8970 ldr x1, [x0, #:lo12:.LANCHOR11] 8971 ldr x0, [x24, #:lo12:.LANCHOR9] 8972 ubfx x6, x6, 11, 8 8973 ldrh w4, [x26, 56] 8974 and w5, w5, 2047 8975 add x3, x0, x3 8976 adrp x0, .LC86 8977 add x0, x0, :lo12:.LC86 8978 ldrb w2, [x3, 2] 8979 ldrh w3, [x1, x8, lsl 1] 8980 mov w1, w28 8981 ubfx x2, x2, 5, 3 8982.L1506: 8983 bl printf 8984.L1421: 8985 cmp w23, 4 8986 ccmp w25, 4, 2, ls 8987 bhi .L1424 8988.L1417: 8989 add w27, w27, 1 8990 and w27, w27, 65535 8991 b .L1415 8992.L1418: 8993 cmp w0, 2 8994 b .L1505 8995.L1420: 8996 ldr x2, [x29, 128] 8997 ldr w0, [x29, 148] 8998 sub w0, w0, w20 8999 ldrh w2, [x2] 9000 cmp w0, w2 9001 ble .L1421 9002 ldrh w0, [x4, x3] 9003 add w2, w20, 8 9004 and w0, w0, 2047 9005 cmp w0, w2 9006 ble .L1423 9007 cbz w1, .L1421 9008 ldr w0, [x4, x3] 9009 add w1, w21, 4 9010 ubfx x0, x0, 11, 8 9011 cmp w0, w1 9012 bgt .L1421 9013.L1423: 9014 stp x4, x8, [x29, 104] 9015 mov w2, 1 9016 str x3, [x29, 120] 9017 mov w1, 0 9018 mov w0, w28 9019 bl gc_add_sblk 9020 mov w0, 1 9021 strh w0, [x26, 2192] 9022 ldr x0, [x29, 152] 9023 add w25, w25, 1 9024 ldp x4, x8, [x29, 104] 9025 ldr x3, [x29, 120] 9026 ldr w0, [x0, #:lo12:.LANCHOR19] 9027 tbz x0, 10, .L1421 9028 adrp x0, .LANCHOR11 9029 ldr w6, [x4, x3] 9030 ldrh w5, [x4, x3] 9031 ldr x1, [x0, #:lo12:.LANCHOR11] 9032 ldr x0, [x24, #:lo12:.LANCHOR9] 9033 ubfx x6, x6, 11, 8 9034 and w5, w5, 2047 9035 ldrh w4, [x26, 56] 9036 add x3, x0, x3 9037 adrp x0, .LC87 9038 add x0, x0, :lo12:.LC87 9039 ldrb w2, [x3, 2] 9040 ldrh w3, [x1, x8, lsl 1] 9041 mov w1, w28 9042 ubfx x2, x2, 5, 3 9043 b .L1506 9044.L1442: 9045 mov w25, 0 9046 mov w23, 0 9047 b .L1414 9048.L1430: 9049 ldr w3, [x0] 9050 ubfx x4, x3, 11, 8 9051 cmp w21, w4 9052 bhi .L1429 9053 ldrb w6, [x0, 2] 9054 tst w6, 24 9055 beq .L1429 9056 sub w4, w4, w21 9057 bfi w3, w4, 11, 8 9058 str w3, [x0] 9059.L1429: 9060 add w1, w1, 1 9061 add x0, x0, 4 9062 and w1, w1, 65535 9063 b .L1428 9064.L1436: 9065 ldrh w3, [x0] 9066 and w4, w3, 2047 9067 cmp w4, w20 9068 blt .L1435 9069 ldrb w5, [x0, 2] 9070 and w5, w5, 24 9071 cmp w5, 16 9072 beq .L1435 9073 sub w4, w4, w20 9074 bfi w3, w4, 0, 11 9075 strh w3, [x0] 9076.L1435: 9077 add w1, w1, 1 9078 add x0, x0, 4 9079 and w1, w1, 65535 9080 b .L1434 9081.L1441: 9082 mov w25, 0 9083 mov w23, 0 9084 b .L1391 9085.L1440: 9086 mov w0, 0 9087 b .L1386 9088 .size gc_static_wearleveling, .-gc_static_wearleveling 9089 .section .text.zftl_sblk_list_init,"ax",@progbits 9090 .align 2 9091 .global zftl_sblk_list_init 9092 .type zftl_sblk_list_init, %function 9093zftl_sblk_list_init: 9094 stp x29, x30, [sp, -208]! 9095 adrp x8, .LANCHOR4 9096 mov w0, 6 9097 mov w1, 0 9098 add x29, sp, 0 9099 stp x27, x28, [sp, 80] 9100 adrp x28, .LANCHOR8 9101 stp x19, x20, [sp, 16] 9102 adrp x20, .LANCHOR105 9103 ldrh w2, [x28, #:lo12:.LANCHOR8] 9104 mov w27, 0 9105 stp x21, x22, [sp, 32] 9106 adrp x22, .LANCHOR103 9107 stp x23, x24, [sp, 48] 9108 adrp x21, .LANCHOR97 9109 stp x25, x26, [sp, 64] 9110 adrp x26, .LANCHOR69 9111 mul w2, w2, w0 9112 ldr x0, [x8, #:lo12:.LANCHOR4] 9113 str x8, [x29, 192] 9114 adrp x25, .LANCHOR109 9115 adrp x24, .LANCHOR111 9116 adrp x23, .LANCHOR113 9117 bl ftl_memset 9118 strh wzr, [x25, #:lo12:.LANCHOR109] 9119 adrp x0, .LANCHOR115 9120 adrp x3, .LANCHOR85 9121 adrp x2, .LANCHOR91 9122 mov w1, 32 9123 strh w1, [x0, #:lo12:.LANCHOR115] 9124 adrp x11, .LANCHOR110 9125 ldrb w0, [x3, #:lo12:.LANCHOR85] 9126 adrp x10, .LANCHOR112 9127 ldrh w1, [x2, #:lo12:.LANCHOR91] 9128 adrp x7, .LANCHOR114 9129 adrp x6, .LANCHOR96 9130 adrp x5, .LANCHOR101 9131 adrp x4, .LANCHOR98 9132 ldr x8, [x29, 192] 9133 str xzr, [x11, #:lo12:.LANCHOR110] 9134 mul w1, w0, w1 9135 mov w0, 32768 9136 str xzr, [x10, #:lo12:.LANCHOR112] 9137 str xzr, [x7, #:lo12:.LANCHOR114] 9138 str xzr, [x6, #:lo12:.LANCHOR96] 9139 sdiv w0, w0, w1 9140 str xzr, [x5, #:lo12:.LANCHOR101] 9141 str xzr, [x4, #:lo12:.LANCHOR98] 9142 strh wzr, [x24, #:lo12:.LANCHOR111] 9143 strh wzr, [x23, #:lo12:.LANCHOR113] 9144 sxth w0, w0 9145 str w0, [x29, 204] 9146 ldr x0, [x26, #:lo12:.LANCHOR69] 9147 strh wzr, [x22, #:lo12:.LANCHOR103] 9148 strh wzr, [x21, #:lo12:.LANCHOR97] 9149 strh wzr, [x20, #:lo12:.LANCHOR105] 9150 strh wzr, [x0, 146] 9151 ldrsh w19, [x0, 134] 9152 add x0, x28, :lo12:.LANCHOR8 9153 str x0, [x29, 192] 9154 adrp x0, .LANCHOR152 9155 add x0, x0, :lo12:.LANCHOR152 9156 adrp x28, .LC0 9157 str x0, [x29, 112] 9158 add x0, x28, :lo12:.LC0 9159 stp x2, x3, [x29, 120] 9160 stp x4, x5, [x29, 136] 9161 stp x6, x7, [x29, 152] 9162 stp x10, x11, [x29, 168] 9163 str x8, [x29, 184] 9164 str x0, [x29, 104] 9165.L1508: 9166 ldr x0, [x29, 192] 9167 ldrh w0, [x0] 9168 cmp w19, w0 9169 blt .L1525 9170 ldr x0, [x26, #:lo12:.LANCHOR69] 9171 ldrh w1, [x25, #:lo12:.LANCHOR109] 9172 ldp x27, x28, [sp, 80] 9173 strh w1, [x0, 114] 9174 ldrh w1, [x24, #:lo12:.LANCHOR111] 9175 strh w1, [x0, 118] 9176 ldrh w1, [x23, #:lo12:.LANCHOR113] 9177 strh w1, [x0, 116] 9178 ldrh w1, [x22, #:lo12:.LANCHOR103] 9179 strh w1, [x0, 122] 9180 ldrh w1, [x21, #:lo12:.LANCHOR97] 9181 strh w1, [x0, 120] 9182 ldrh w1, [x20, #:lo12:.LANCHOR105] 9183 strh w1, [x0, 124] 9184 ldp x19, x20, [sp, 16] 9185 ldp x21, x22, [sp, 32] 9186 ldp x23, x24, [sp, 48] 9187 ldp x25, x26, [sp, 64] 9188 ldp x29, x30, [sp], 208 9189 ret 9190.L1525: 9191 adrp x0, .LANCHOR9 9192 sxtw x2, w19 9193 ldr x3, [x0, #:lo12:.LANCHOR9] 9194 add x28, x3, x2, lsl 2 9195 ldrb w5, [x28, 3] 9196 cbz w5, .L1526 9197 ldr x0, [x29, 128] 9198 mov w1, 0 9199 ldr x6, [x26, #:lo12:.LANCHOR69] 9200 ldrb w7, [x0, #:lo12:.LANCHOR85] 9201 ldr x0, [x29, 120] 9202 ldrh w8, [x0, #:lo12:.LANCHOR91] 9203 mov w0, 0 9204.L1510: 9205 cmp w1, w7 9206 blt .L1513 9207 cbz w0, .L1514 9208 mov w1, 32768 9209 sdiv w0, w1, w0 9210 add w0, w0, 1 9211 sxth w0, w0 9212.L1509: 9213 ldr x3, [x29, 184] 9214 mov w1, 6 9215 smull x1, w19, w1 9216 ldr x4, [x3, #:lo12:.LANCHOR4] 9217 add x5, x4, x1 9218 strh w0, [x5, 4] 9219 mov w0, -1 9220 strh w0, [x5, 2] 9221 strh w0, [x4, x1] 9222 mov w1, 224 9223 ldrb w0, [x28, 2] 9224 and w0, w0, 224 9225 cmp w0, 32 9226 ccmp w0, w1, 4, ne 9227 beq .L1515 9228 adrp x1, .LANCHOR12 9229 ldr x1, [x1, #:lo12:.LANCHOR12] 9230 ldrh w4, [x1, 16] 9231 cmp w19, w4 9232 beq .L1515 9233 ldrh w4, [x1, 48] 9234 cmp w19, w4 9235 beq .L1515 9236 ldrh w1, [x1, 80] 9237 cmp w19, w1 9238 beq .L1515 9239 cmp w0, 64 9240 bne .L1516 9241 ldr x0, [x29, 144] 9242 add x2, x22, :lo12:.LANCHOR103 9243 mov w1, w19 9244 add x0, x0, :lo12:.LANCHOR101 9245.L1532: 9246 bl _insert_data_list 9247.L1515: 9248 add w19, w19, 1 9249 sxth w19, w19 9250 b .L1508 9251.L1513: 9252 asr w4, w5, w1 9253 tbnz x4, 0, .L1511 9254 add w0, w8, w0 9255 sxth w0, w0 9256.L1512: 9257 add w1, w1, 1 9258 b .L1510 9259.L1511: 9260 ldrh w4, [x6, 146] 9261 add w4, w4, 1 9262 strh w4, [x6, 146] 9263 b .L1512 9264.L1514: 9265 ldrb w1, [x28, 2] 9266 mov w4, -1 9267 orr w1, w1, -32 9268 strb w1, [x28, 2] 9269 adrp x1, .LANCHOR11 9270 ldr x1, [x1, #:lo12:.LANCHOR11] 9271 strh w4, [x1, x2, lsl 1] 9272 b .L1509 9273.L1526: 9274 ldr w0, [x29, 204] 9275 b .L1509 9276.L1516: 9277 cmp w0, 96 9278 bne .L1517 9279 ldr x0, [x29, 152] 9280 add x2, x20, :lo12:.LANCHOR105 9281 mov w1, w19 9282 add x0, x0, :lo12:.LANCHOR96 9283 b .L1532 9284.L1517: 9285 cmp w0, 160 9286 bne .L1518 9287 ldr x0, [x29, 136] 9288 add x2, x21, :lo12:.LANCHOR97 9289 mov w1, w19 9290 add x0, x0, :lo12:.LANCHOR98 9291 b .L1532 9292.L1518: 9293 cbnz w0, .L1515 9294 adrp x0, .LANCHOR11 9295 ldr x0, [x0, #:lo12:.LANCHOR11] 9296 ldrh w2, [x0, x2, lsl 1] 9297 cbz w2, .L1519 9298 cmp w27, 2 9299 bgt .L1520 9300 mov w1, w19 9301 adrp x0, .LC88 9302 add x0, x0, :lo12:.LC88 9303 bl printf 9304 ldrb w0, [x28, 2] 9305 add w27, w27, 1 9306 sxth w27, w27 9307 tbz x0, 4, .L1521 9308 mov w1, 5 9309.L1531: 9310 bfi w0, w1, 5, 3 9311 strb w0, [x28, 2] 9312 mov w2, 0 9313 mov w1, 1 9314 mov w0, w19 9315 bl gc_add_sblk 9316 b .L1515 9317.L1521: 9318 mov w1, 2 9319 b .L1531 9320.L1520: 9321 ldp x0, x1, [x29, 104] 9322 mov w2, 656 9323 bl printf 9324.L1519: 9325 ldrb w0, [x28, 2] 9326 ands w0, w0, 24 9327 bne .L1523 9328 ldr x0, [x29, 176] 9329 add x2, x25, :lo12:.LANCHOR109 9330 mov w1, w19 9331 add x0, x0, :lo12:.LANCHOR110 9332.L1533: 9333 bl _insert_free_list 9334 b .L1515 9335.L1523: 9336 cmp w0, 16 9337 bne .L1524 9338 ldr x0, [x29, 168] 9339 add x2, x24, :lo12:.LANCHOR111 9340 mov w1, w19 9341 add x0, x0, :lo12:.LANCHOR112 9342 b .L1533 9343.L1524: 9344 ldr x0, [x29, 160] 9345 add x2, x23, :lo12:.LANCHOR113 9346 mov w1, w19 9347 add x0, x0, :lo12:.LANCHOR114 9348 b .L1533 9349 .size zftl_sblk_list_init, .-zftl_sblk_list_init 9350 .section .text.ftl_open_sblk_init,"ax",@progbits 9351 .align 2 9352 .global ftl_open_sblk_init 9353 .type ftl_open_sblk_init, %function 9354ftl_open_sblk_init: 9355 stp x29, x30, [sp, -80]! 9356 add x29, sp, 0 9357 stp x21, x22, [sp, 32] 9358 adrp x21, .LANCHOR85 9359 stp x23, x24, [sp, 48] 9360 adrp x22, .LC75 9361 stp x19, x20, [sp, 16] 9362 adrp x24, .LANCHOR100 9363 mov x19, x0 9364 mov w23, w1 9365 add x24, x24, :lo12:.LANCHOR100 9366 add x21, x21, :lo12:.LANCHOR85 9367 add x22, x22, :lo12:.LC75 9368 stp x25, x26, [sp, 64] 9369.L1535: 9370 mov w25, 65535 9371.L1536: 9372 mov w0, w23 9373 bl ftl_alloc_sblk 9374 and w20, w0, 65535 9375 cmp w20, w25 9376 beq .L1536 9377 mov w1, 0 9378 mov w0, w20 9379 bl ftl_erase_sblk 9380 add x1, x19, 16 9381 mov w0, w20 9382 bl ftl_get_blk_list_in_sblk 9383 and w0, w0, 255 9384 ldrh w1, [x24] 9385 cmp w23, 2 9386 strb w0, [x19, 9] 9387 strh w20, [x19] 9388 strh wzr, [x19, 2] 9389 mul w0, w1, w0 9390 strb wzr, [x19, 5] 9391 strh w0, [x19, 6] 9392 strh wzr, [x19, 10] 9393 strb w23, [x19, 4] 9394 beq .L1539 9395 ldrb w0, [x21] 9396 mul w0, w1, w0 9397 and w0, w0, 65535 9398.L1537: 9399 ldrb w2, [x21] 9400 adrp x26, .LANCHOR11 9401 strh w0, [x19, 12] 9402 ubfiz x25, x20, 1, 16 9403 mul w2, w2, w1 9404 adrp x1, .LANCHOR123 9405 ldr x3, [x1, #:lo12:.LANCHOR123] 9406 mov w1, 255 9407 lsl w2, w2, 2 9408 add x0, x3, x0, uxth 2 9409 bl ftl_memset 9410 ldr x0, [x26, #:lo12:.LANCHOR11] 9411 ldrh w1, [x19, 6] 9412 strh w1, [x0, x25] 9413 ldrb w0, [x19, 9] 9414 cbnz w0, .L1534 9415 mov w1, w20 9416 mov x0, x22 9417 bl printf 9418 ldr x0, [x26, #:lo12:.LANCHOR11] 9419 mov w1, -1 9420 strh w1, [x0, x25] 9421 mov w0, 7 9422 strb w0, [x19, 4] 9423 b .L1535 9424.L1539: 9425 mov w0, 0 9426 b .L1537 9427.L1534: 9428 ldp x19, x20, [sp, 16] 9429 ldp x21, x22, [sp, 32] 9430 ldp x23, x24, [sp, 48] 9431 ldp x25, x26, [sp, 64] 9432 ldp x29, x30, [sp], 80 9433 ret 9434 .size ftl_open_sblk_init, .-ftl_open_sblk_init 9435 .section .text.pm_free_sblk,"ax",@progbits 9436 .align 2 9437 .global pm_free_sblk 9438 .type pm_free_sblk, %function 9439pm_free_sblk: 9440 stp x29, x30, [sp, -384]! 9441 adrp x0, .LANCHOR153 9442 add x29, sp, 0 9443 stp x19, x20, [sp, 16] 9444 mov x19, x0 9445 ldrh w1, [x0, #:lo12:.LANCHOR153] 9446 stp x21, x22, [sp, 32] 9447 stp x23, x24, [sp, 48] 9448 cmp w1, 128 9449 stp x25, x26, [sp, 64] 9450 stp x27, x28, [sp, 80] 9451 bls .L1543 9452 adrp x1, .LANCHOR154 9453 adrp x0, .LC0 9454 mov w2, 94 9455 add x1, x1, :lo12:.LANCHOR154 9456 add x0, x0, :lo12:.LC0 9457 bl printf 9458.L1543: 9459 adrp x5, .LANCHOR69 9460 mov x26, x5 9461 ldrh w3, [x19, #:lo12:.LANCHOR153] 9462 mov w1, 0 9463 ldr x0, [x5, #:lo12:.LANCHOR69] 9464 mov w19, 0 9465 mov w4, 65535 9466 add x0, x0, 416 9467 ldrh w2, [x0, 272] 9468.L1546: 9469 ldrh w6, [x0] 9470 cmp w6, w4 9471 beq .L1544 9472 add w1, w1, 1 9473 and w1, w1, 65535 9474.L1544: 9475 cmp w1, w2 9476 bcs .L1545 9477 cmp w1, w3 9478 bcs .L1545 9479 add w19, w19, 1 9480 add x0, x0, 2 9481 and w19, w19, 65535 9482 cmp w19, 128 9483 bne .L1546 9484.L1545: 9485 add w19, w19, 1 9486 mov w0, 128 9487 and w19, w19, 65535 9488 add x22, x29, 128 9489 cmp w19, 129 9490 mov w2, 256 9491 csel w19, w19, w0, ne 9492 mov w1, 0 9493 mov x0, x22 9494 adrp x23, .LANCHOR81 9495 bl ftl_memset 9496 adrp x0, .LANCHOR80 9497 ldr x6, [x26, #:lo12:.LANCHOR69] 9498 mov w2, 24 9499 ldrb w11, [x23, #:lo12:.LANCHOR81] 9500 ldrh w10, [x0, #:lo12:.LANCHOR80] 9501 adrp x0, .LANCHOR31 9502 add x4, x6, 704 9503 ldrb w0, [x0, #:lo12:.LANCHOR31] 9504 ldrh w1, [x6, 698] 9505 sub w2, w2, w0 9506 sub w0, w2, w10 9507 add x1, x1, 176 9508 mov w2, 1 9509 add x1, x6, x1, lsl 2 9510 lsl w2, w2, w0 9511 sub w2, w2, #1 9512.L1548: 9513 cmp x1, x4 9514 bne .L1551 9515 adrp x24, .LANCHOR85 9516 adrp x25, .LANCHOR100 9517 adrp x27, .LC89 9518 adrp x28, .LANCHOR19 9519 ldrb w21, [x24, #:lo12:.LANCHOR85] 9520 add x23, x23, :lo12:.LANCHOR81 9521 ldrh w0, [x25, #:lo12:.LANCHOR100] 9522 add x27, x27, :lo12:.LC89 9523 add x28, x28, :lo12:.LANCHOR19 9524 mov x20, 0 9525 mov w7, 65535 9526 str wzr, [x29, 124] 9527 mul w21, w21, w0 9528 and w21, w21, 65535 9529.L1557: 9530 ldr x0, [x26, #:lo12:.LANCHOR69] 9531 and w6, w20, 65535 9532 ldrb w2, [x23] 9533 mov w8, w20 9534 add x1, x0, x20, sxtw 1 9535 ldrh w3, [x1, 416] 9536 ldrh w1, [x0, 692] 9537 sdiv w1, w1, w2 9538 cmp w1, w3 9539 bne .L1552 9540 ldrb w1, [x24, #:lo12:.LANCHOR85] 9541 ldrh w2, [x25, #:lo12:.LANCHOR100] 9542 mul w1, w1, w2 9543 strh w1, [x22, x20, lsl 1] 9544.L1552: 9545 ldrh w2, [x22, x20, lsl 1] 9546 cmp w2, w21 9547 bcs .L1553 9548 cmp w2, 0 9549 ldr w1, [x29, 124] 9550 csel w21, w21, w2, eq 9551 csel w1, w1, w6, eq 9552 str w1, [x29, 124] 9553.L1553: 9554 ldrh w1, [x0, 74] 9555 cmp w1, 2 9556 bls .L1554 9557 mov w1, 65535 9558 cmp w3, w1 9559 beq .L1554 9560 adrp x4, .LANCHOR9 9561 ubfiz x1, x3, 2, 16 9562 ldrh w0, [x0, 92] 9563 ldr x4, [x4, #:lo12:.LANCHOR9] 9564 add w0, w0, 4 9565 ldrh w4, [x4, x1] 9566 and w4, w4, 2047 9567 cmp w4, w0 9568 bgt .L1554 9569 mov w1, w8 9570 str w6, [x29, 104] 9571 str w8, [x29, 112] 9572 mov x0, x27 9573 bl printf 9574 ldr w6, [x29, 104] 9575 ldr w8, [x29, 112] 9576 mov w7, w6 9577.L1554: 9578 ldrh w0, [x22, x20, lsl 1] 9579 cbnz w0, .L1555 9580 ldr x0, [x26, #:lo12:.LANCHOR69] 9581 sxtw x6, w8 9582 add x1, x6, 208 9583 ldrh w3, [x0, x1, lsl 1] 9584 mov w1, 65535 9585 cmp w3, w1 9586 beq .L1555 9587 ldr w1, [x28] 9588 tbz x1, 12, .L1556 9589 ldrh w4, [x0, 688] 9590 mov w2, 0 9591 str x6, [x29, 104] 9592 mov w1, w8 9593 str w7, [x29, 112] 9594 adrp x0, .LC90 9595 add x0, x0, :lo12:.LC90 9596 bl printf 9597 ldr w7, [x29, 112] 9598 ldr x6, [x29, 104] 9599.L1556: 9600 ldr x0, [x26, #:lo12:.LANCHOR69] 9601 add x6, x6, 208 9602 str w7, [x29, 104] 9603 str x6, [x29, 112] 9604 ldrh w0, [x0, x6, lsl 1] 9605 bl ftl_free_sblk 9606 ldr x0, [x26, #:lo12:.LANCHOR69] 9607 mov w1, -1 9608 ldr x6, [x29, 112] 9609 ldr w7, [x29, 104] 9610 strh w1, [x0, x6, lsl 1] 9611 ldrh w1, [x0, 688] 9612 sub w1, w1, #1 9613 strh w1, [x0, 688] 9614.L1555: 9615 add x20, x20, 1 9616 cmp w19, w20, uxth 9617 bhi .L1557 9618 mov w0, 65535 9619 cmp w7, w0 9620 ldr w0, [x29, 124] 9621 ldp x19, x20, [sp, 16] 9622 csel w0, w0, w7, eq 9623 ldp x21, x22, [sp, 32] 9624 ldp x23, x24, [sp, 48] 9625 ldp x25, x26, [sp, 64] 9626 ldp x27, x28, [sp, 80] 9627 ldp x29, x30, [sp], 384 9628 ret 9629.L1551: 9630 ldr w0, [x4] 9631 add x7, x6, 416 9632 mov x3, 0 9633 lsr w0, w0, w10 9634 and w0, w0, w2 9635 udiv w0, w0, w11 9636 and w0, w0, 65535 9637.L1550: 9638 ldrh w8, [x7] 9639 cmp w8, w0 9640 bne .L1549 9641 ldrh w8, [x22, x3, lsl 1] 9642 add w8, w8, 1 9643 strh w8, [x22, x3, lsl 1] 9644.L1549: 9645 add x3, x3, 1 9646 add x7, x7, 2 9647 cmp w19, w3, uxth 9648 bhi .L1550 9649 add x4, x4, 4 9650 b .L1548 9651 .size pm_free_sblk, .-pm_free_sblk 9652 .section .text.ftl_memcpy,"ax",@progbits 9653 .align 2 9654 .global ftl_memcpy 9655 .type ftl_memcpy, %function 9656ftl_memcpy: 9657 uxtw x2, w2 9658 b memcpy 9659 .size ftl_memcpy, .-ftl_memcpy 9660 .section .text.flash_info_data_init,"ax",@progbits 9661 .align 2 9662 .global flash_info_data_init 9663 .type flash_info_data_init, %function 9664flash_info_data_init: 9665 stp x29, x30, [sp, -32]! 9666 adrp x0, .LANCHOR19 9667 add x29, sp, 0 9668 ldr w0, [x0, #:lo12:.LANCHOR19] 9669 str x19, [sp, 16] 9670 tbz x0, 12, .L1570 9671 adrp x2, .LANCHOR155 9672 adrp x0, .LC91 9673 add x2, x2, :lo12:.LANCHOR155 9674 mov w1, 120 9675 add x0, x0, :lo12:.LC91 9676 bl printf 9677.L1570: 9678 adrp x19, .LANCHOR6 9679 mov w2, 2048 9680 mov w1, 0 9681 ldr x0, [x19, #:lo12:.LANCHOR6] 9682 bl ftl_memset 9683 ldr x0, [x19, #:lo12:.LANCHOR6] 9684 mov w1, 21321 9685 movk w1, 0x5359, lsl 16 9686 mov w2, 32 9687 add x0, x0, 80 9688 str w1, [x0, -80] 9689 mov w1, 2032 9690 str w1, [x0, -72] 9691 mov w1, 1 9692 strh w1, [x0, -64] 9693 adrp x1, .LANCHOR25 9694 add x1, x1, :lo12:.LANCHOR25 9695 bl ftl_memcpy 9696 ldr x0, [x19, #:lo12:.LANCHOR6] 9697 mov w2, 32 9698 ldr x19, [sp, 16] 9699 adrp x1, .LANCHOR32 9700 ldp x29, x30, [sp], 32 9701 add x1, x1, :lo12:.LANCHOR32 9702 add x0, x0, 48 9703 b ftl_memcpy 9704 .size flash_info_data_init, .-flash_info_data_init 9705 .section .text.ftl_memcpy32,"ax",@progbits 9706 .align 2 9707 .global ftl_memcpy32 9708 .type ftl_memcpy32, %function 9709ftl_memcpy32: 9710 mov x3, 0 9711.L1576: 9712 cmp w2, w3 9713 bhi .L1577 9714 ret 9715.L1577: 9716 ldr w4, [x1, x3, lsl 2] 9717 str w4, [x0, x3, lsl 2] 9718 add x3, x3, 1 9719 b .L1576 9720 .size ftl_memcpy32, .-ftl_memcpy32 9721 .section .text.ftl_memcmp,"ax",@progbits 9722 .align 2 9723 .global ftl_memcmp 9724 .type ftl_memcmp, %function 9725ftl_memcmp: 9726 uxtw x2, w2 9727 b memcmp 9728 .size ftl_memcmp, .-ftl_memcmp 9729 .section .text.rknand_get_clk_rate,"ax",@progbits 9730 .align 2 9731 .global rknand_get_clk_rate 9732 .type rknand_get_clk_rate, %function 9733rknand_get_clk_rate: 9734 mov w0, 19712 9735 movk w0, 0x8d2, lsl 16 9736 ret 9737 .size rknand_get_clk_rate, .-rknand_get_clk_rate 9738 .section .text.ftl_malloc,"ax",@progbits 9739 .align 2 9740 .global ftl_malloc 9741 .type ftl_malloc, %function 9742ftl_malloc: 9743 mov w1, 0 9744 sxtw x0, w0 9745 b kmalloc 9746 .size ftl_malloc, .-ftl_malloc 9747 .section .text.nandc_init,"ax",@progbits 9748 .align 2 9749 .global nandc_init 9750 .type nandc_init, %function 9751nandc_init: 9752 stp x29, x30, [sp, -64]! 9753 add x29, sp, 0 9754 stp x21, x22, [sp, 32] 9755 adrp x21, .LANCHOR19 9756 stp x19, x20, [sp, 16] 9757 mov x19, x0 9758 ldr w0, [x21, #:lo12:.LANCHOR19] 9759 str wzr, [x29, 56] 9760 tbz x0, 12, .L1582 9761 adrp x1, .LANCHOR156 9762 adrp x0, .LC92 9763 mov x2, x19 9764 add x1, x1, :lo12:.LANCHOR156 9765 add x0, x0, :lo12:.LC92 9766 bl printf 9767.L1582: 9768 adrp x20, .LANCHOR27 9769 mov w0, 6 9770 ldr w2, [x19, 352] 9771 mov w1, 12336 9772 strb w0, [x20, #:lo12:.LANCHOR27] 9773 adrp x0, .LANCHOR7 9774 movk w1, 0x5638, lsl 16 9775 mov x22, x0 9776 str x19, [x0, #:lo12:.LANCHOR7] 9777 cmp w2, w1 9778 bne .L1583 9779 mov w0, 8 9780 strb w0, [x20, #:lo12:.LANCHOR27] 9781.L1583: 9782 ldr w1, [x19, 128] 9783 mov w0, 12336 9784 movk w0, 0x5639, lsl 16 9785 cmp w1, w0 9786 bne .L1584 9787 mov w0, 9 9788 strb w0, [x20, #:lo12:.LANCHOR27] 9789.L1584: 9790 ldrb w0, [x20, #:lo12:.LANCHOR27] 9791 cmp w0, 9 9792 adrp x0, .LANCHOR50 9793 bne .L1585 9794 mov w1, 1 9795 strb w1, [x0, #:lo12:.LANCHOR50] 9796 ldr w0, [x29, 56] 9797 mov w1, 2 9798 orr w0, w0, 256 9799 str w0, [x29, 56] 9800 ldr w0, [x29, 56] 9801 bfi w0, w1, 18, 3 9802 str w0, [x29, 56] 9803 ldr w0, [x29, 56] 9804 str w0, [x19] 9805 str wzr, [x19, 520] 9806 mov w0, 4161 9807 str w0, [x19, 4] 9808 mov w0, 8321 9809 str w0, [x19, 8] 9810 mov w0, 4099 9811 movk w0, 0x10, lsl 16 9812 str w0, [x19, 80] 9813 mov w0, 38 9814 str w0, [x19, 84] 9815 mov w0, 39 9816 str w0, [x19, 84] 9817 ldr w0, [x21, #:lo12:.LANCHOR19] 9818 tbz x0, 12, .L1587 9819 ldr w1, [x19] 9820 ldr w2, [x19, 8] 9821 ldr w3, [x19, 80] 9822 ldr w4, [x19, 84] 9823 ldr w5, [x19, 88] 9824.L1600: 9825 adrp x0, .LC93 9826 add x0, x0, :lo12:.LC93 9827 bl printf 9828.L1587: 9829 adrp x0, .LANCHOR51 9830 mov w1, 1 9831 strb w1, [x0, #:lo12:.LANCHOR51] 9832 adrp x0, .LANCHOR53 9833 strh wzr, [x0, #:lo12:.LANCHOR53] 9834 adrp x0, .LANCHOR49 9835 strb wzr, [x0, #:lo12:.LANCHOR49] 9836 ldr w0, [x21, #:lo12:.LANCHOR19] 9837 tbz x0, 12, .L1581 9838 ldrb w1, [x20, #:lo12:.LANCHOR27] 9839 adrp x0, .LC94 9840 add x0, x0, :lo12:.LC94 9841 bl printf 9842.L1581: 9843 ldp x19, x20, [sp, 16] 9844 ldp x21, x22, [sp, 32] 9845 ldp x29, x30, [sp], 64 9846 ret 9847.L1585: 9848 strb wzr, [x0, #:lo12:.LANCHOR50] 9849 mov w1, 1 9850 ldr w0, [x29, 56] 9851 orr w0, w0, 256 9852 str w0, [x29, 56] 9853 ldr w0, [x29, 56] 9854 bfi w0, w1, 24, 3 9855 str w0, [x29, 56] 9856 ldr w0, [x29, 56] 9857 str w0, [x19] 9858 str wzr, [x19, 336] 9859 mov w0, 4193 9860 str w0, [x19, 4] 9861 mov w0, 8321 9862 str w0, [x19, 344] 9863 mov w0, 4099 9864 movk w0, 0x10, lsl 16 9865 str w0, [x19, 304] 9866 mov w0, 38 9867 str w0, [x19, 308] 9868 mov w0, 39 9869 str w0, [x19, 308] 9870 mov w0, 2048 9871 bl ftl_malloc 9872 adrp x1, .LANCHOR52 9873 str x0, [x1, #:lo12:.LANCHOR52] 9874 ldr w0, [x21, #:lo12:.LANCHOR19] 9875 tbz x0, 12, .L1587 9876 ldr x0, [x22, #:lo12:.LANCHOR7] 9877 ldr w1, [x0] 9878 ldr w2, [x0, 344] 9879 ldr w3, [x0, 304] 9880 ldr w4, [x0, 308] 9881 ldr w5, [x0, 312] 9882 b .L1600 9883 .size nandc_init, .-nandc_init 9884 .section .text.zbuf_init,"ax",@progbits 9885 .align 2 9886 .global zbuf_init 9887 .type zbuf_init, %function 9888zbuf_init: 9889 stp x29, x30, [sp, -48]! 9890 adrp x0, .LANCHOR55 9891 add x29, sp, 0 9892 stp x19, x20, [sp, 16] 9893 add x19, x0, :lo12:.LANCHOR55 9894 stp x21, x22, [sp, 32] 9895 mov x20, x0 9896 adrp x22, .LANCHOR68 9897 add x22, x22, :lo12:.LANCHOR68 9898 mov w21, 0 9899.L1602: 9900 and w0, w21, 255 9901 strb w0, [x19, 1] 9902 add w1, w0, 1 9903 ldrb w0, [x22] 9904 strb w1, [x19] 9905 add w21, w21, 1 9906 strb wzr, [x19, 2] 9907 add x19, x19, 64 9908 str xzr, [x19, -48] 9909 lsl w0, w0, 9 9910 bl ftl_malloc 9911 str x0, [x19, -56] 9912 mov w0, 64 9913 bl ftl_malloc 9914 str x0, [x19, -40] 9915 cmp w21, 16 9916 bne .L1602 9917 add x0, x20, :lo12:.LANCHOR55 9918 mov w1, -1 9919 strb w1, [x0, 960] 9920 adrp x0, .LANCHOR56 9921 strb wzr, [x0, #:lo12:.LANCHOR56] 9922 adrp x0, .LANCHOR57 9923 ldp x19, x20, [sp, 16] 9924 strb w21, [x0, #:lo12:.LANCHOR57] 9925 ldp x21, x22, [sp, 32] 9926 ldp x29, x30, [sp], 48 9927 ret 9928 .size zbuf_init, .-zbuf_init 9929 .section .text.gc_init,"ax",@progbits 9930 .align 2 9931 .global gc_init 9932 .type gc_init, %function 9933gc_init: 9934 stp x29, x30, [sp, -32]! 9935 adrp x0, .LANCHOR90 9936 mov w2, 2216 9937 mov w1, 0 9938 add x29, sp, 0 9939 strb wzr, [x0, #:lo12:.LANCHOR90] 9940 adrp x0, .LANCHOR157 9941 stp x19, x20, [sp, 16] 9942 adrp x20, .LANCHOR76 9943 strb wzr, [x0, #:lo12:.LANCHOR157] 9944 adrp x0, .LANCHOR158 9945 add x19, x20, :lo12:.LANCHOR76 9946 str wzr, [x0, #:lo12:.LANCHOR158] 9947 adrp x0, .LANCHOR102 9948 strh wzr, [x0, #:lo12:.LANCHOR102] 9949 mov x0, x19 9950 bl ftl_memset 9951 str xzr, [x19, 8] 9952 mov w0, -1 9953 strh w0, [x20, #:lo12:.LANCHOR76] 9954 adrp x0, .LANCHOR100 9955 adrp x4, .LANCHOR108 9956 adrp x20, .LANCHOR91 9957 ldrh w1, [x0, #:lo12:.LANCHOR100] 9958 lsr w2, w1, 1 9959 lsr w0, w1, 2 9960 strh w2, [x19, 38] 9961 adrp x2, .LANCHOR93 9962 strh w0, [x19, 36] 9963 adrp x19, .LANCHOR85 9964 strh wzr, [x2, #:lo12:.LANCHOR93] 9965 adrp x2, .LANCHOR94 9966 ldrb w3, [x19, #:lo12:.LANCHOR85] 9967 strh wzr, [x2, #:lo12:.LANCHOR94] 9968 adrp x2, .LANCHOR95 9969 strh wzr, [x2, #:lo12:.LANCHOR95] 9970 mul w2, w1, w3 9971 and w2, w2, 65535 9972 sub w5, w2, #32 9973 strh w5, [x4, #:lo12:.LANCHOR108] 9974 adrp x4, .LANCHOR106 9975 strh w2, [x4, #:lo12:.LANCHOR106] 9976 adrp x2, .LANCHOR99 9977 strh w1, [x2, #:lo12:.LANCHOR99] 9978 adrp x1, .LANCHOR159 9979 mov w2, 4 9980 strh w2, [x1, #:lo12:.LANCHOR159] 9981 adrp x1, .LANCHOR75 9982 strh w0, [x1, #:lo12:.LANCHOR75] 9983 ldrh w0, [x20, #:lo12:.LANCHOR91] 9984 mul w0, w0, w3 9985 lsl w0, w0, 2 9986 bl ftl_malloc 9987 adrp x1, .LANCHOR160 9988 str x0, [x1, #:lo12:.LANCHOR160] 9989 ldrb w1, [x19, #:lo12:.LANCHOR85] 9990 ldrh w0, [x20, #:lo12:.LANCHOR91] 9991 mul w0, w0, w1 9992 lsl w0, w0, 2 9993 bl ftl_malloc 9994 adrp x1, .LANCHOR161 9995 str x0, [x1, #:lo12:.LANCHOR161] 9996 ldrh w1, [x20, #:lo12:.LANCHOR91] 9997 ldrb w0, [x19, #:lo12:.LANCHOR85] 9998 mul w0, w1, w0 9999 bl ftl_malloc 10000 adrp x1, .LANCHOR88 10001 str x0, [x1, #:lo12:.LANCHOR88] 10002 ldrb w1, [x19, #:lo12:.LANCHOR85] 10003 ldrh w0, [x20, #:lo12:.LANCHOR91] 10004 mul w0, w0, w1 10005 lsl w0, w0, 2 10006 bl ftl_malloc 10007 adrp x1, .LANCHOR82 10008 str x0, [x1, #:lo12:.LANCHOR82] 10009 ldrb w1, [x19, #:lo12:.LANCHOR85] 10010 ldrh w0, [x20, #:lo12:.LANCHOR91] 10011 mul w0, w0, w1 10012 lsl w0, w0, 2 10013 bl ftl_malloc 10014 adrp x1, .LANCHOR162 10015 ldp x19, x20, [sp, 16] 10016 str x0, [x1, #:lo12:.LANCHOR162] 10017 adrp x0, .LANCHOR104 10018 adrp x1, .LANCHOR92 10019 ldp x29, x30, [sp], 32 10020 ldrh w0, [x0, #:lo12:.LANCHOR104] 10021 lsr w0, w0, 2 10022 strh w0, [x1, #:lo12:.LANCHOR92] 10023 ret 10024 .size gc_init, .-gc_init 10025 .section .text.ftl_free,"ax",@progbits 10026 .align 2 10027 .global ftl_free 10028 .type ftl_free, %function 10029ftl_free: 10030 ret 10031 .size ftl_free, .-ftl_free 10032 .section .text.js_hash,"ax",@progbits 10033 .align 2 10034 .global js_hash 10035 .type js_hash, %function 10036js_hash: 10037 mov x4, x0 10038 mov w0, 42982 10039 mov x3, 0 10040 movk w0, 0x47c6, lsl 16 10041.L1609: 10042 cmp w1, w3 10043 bhi .L1610 10044 ret 10045.L1610: 10046 lsr w2, w0, 2 10047 ldrb w5, [x4, x3] 10048 add w2, w2, w0, lsl 5 10049 add x3, x3, 1 10050 add w2, w2, w5 10051 eor w0, w0, w2 10052 b .L1609 10053 .size js_hash, .-js_hash 10054 .section .text.ftl_debug_info_fill,"ax",@progbits 10055 .align 2 10056 .global ftl_debug_info_fill 10057 .type ftl_debug_info_fill, %function 10058ftl_debug_info_fill: 10059 adrp x3, .LANCHOR68 10060 ldrb w3, [x3, #:lo12:.LANCHOR68] 10061 cmp w3, 8 10062 bls .L1615 10063 and w0, w0, 255 10064 cmp x2, 0 10065 ccmp w0, 2, 0, ne 10066 bne .L1613 10067 stp x29, x30, [sp, -16]! 10068 mov x6, x1 10069 mov w1, 21320 10070 mov x0, x2 10071 add x29, sp, 0 10072 movk w1, 0x4841, lsl 16 10073 str w1, [x6] 10074 mov w1, 1024 10075 bl js_hash 10076 str w0, [x6, 4] 10077 mov w0, 0 10078 ldp x29, x30, [sp], 16 10079 ret 10080.L1613: 10081 stp wzr, wzr, [x1] 10082.L1615: 10083 mov w0, 0 10084 ret 10085 .size ftl_debug_info_fill, .-ftl_debug_info_fill 10086 .section .text.timer_get_time,"ax",@progbits 10087 .align 2 10088 .global timer_get_time 10089 .type timer_get_time, %function 10090timer_get_time: 10091 mov w0, 0 10092 ret 10093 .size timer_get_time, .-timer_get_time 10094 .section .text.FlashCs123Init,"ax",@progbits 10095 .align 2 10096 .global FlashCs123Init 10097 .type FlashCs123Init, %function 10098FlashCs123Init: 10099 ret 10100 .size FlashCs123Init, .-FlashCs123Init 10101 .section .text.rk_nand_de_init,"ax",@progbits 10102 .align 2 10103 .global rk_nand_de_init 10104 .type rk_nand_de_init, %function 10105rk_nand_de_init: 10106 b zftl_flash_de_init 10107 .size rk_nand_de_init, .-rk_nand_de_init 10108 .section .text.ftl_get_density,"ax",@progbits 10109 .align 2 10110 .global ftl_get_density 10111 .type ftl_get_density, %function 10112ftl_get_density: 10113 and w0, w0, 255 10114 b zftl_get_density 10115 .size ftl_get_density, .-ftl_get_density 10116 .section .text.ftl_get_capacity,"ax",@progbits 10117 .align 2 10118 .global ftl_get_capacity 10119 .type ftl_get_capacity, %function 10120ftl_get_capacity: 10121 adrp x0, .LANCHOR73 10122 ldr w0, [x0, #:lo12:.LANCHOR73] 10123 ret 10124 .size ftl_get_capacity, .-ftl_get_capacity 10125 .section .text.rknand_print_hex,"ax",@progbits 10126 .align 2 10127 .global rknand_print_hex 10128 .type rknand_print_hex, %function 10129rknand_print_hex: 10130 stp x29, x30, [sp, -96]! 10131 add x29, sp, 0 10132 stp x21, x22, [sp, 32] 10133 adrp x21, .LC96 10134 stp x23, x24, [sp, 48] 10135 mov x22, x1 10136 stp x25, x26, [sp, 64] 10137 mov w24, w2 10138 stp x27, x28, [sp, 80] 10139 adrp x25, .LC95 10140 mov x27, x0 10141 uxtw x26, w3 10142 add x25, x25, :lo12:.LC95 10143 add x21, x21, :lo12:.LC96 10144 stp x19, x20, [sp, 16] 10145 mov w23, 0 10146 mov x19, 0 10147 mov w20, 0 10148 adrp x28, .LC97 10149.L1624: 10150 cmp x26, x19 10151 bne .L1630 10152 ldp x19, x20, [sp, 16] 10153 adrp x1, .LC97 10154 ldp x21, x22, [sp, 32] 10155 add x1, x1, :lo12:.LC97 10156 ldp x23, x24, [sp, 48] 10157 adrp x0, .LC98 10158 ldp x25, x26, [sp, 64] 10159 add x0, x0, :lo12:.LC98 10160 ldp x27, x28, [sp, 80] 10161 ldp x29, x30, [sp], 96 10162 b printf 10163.L1630: 10164 cbnz w20, .L1625 10165 mov w3, w23 10166 mov x2, x22 10167 mov x1, x27 10168 mov x0, x25 10169 bl printf 10170.L1625: 10171 cmp w24, 4 10172 bne .L1626 10173 ldr w1, [x22, x19, lsl 2] 10174.L1632: 10175 mov x0, x21 10176 add w20, w20, 1 10177 bl printf 10178 cmp w20, 15 10179 bls .L1629 10180 mov w20, 0 10181 add x1, x28, :lo12:.LC97 10182 adrp x0, .LC98 10183 add x0, x0, :lo12:.LC98 10184 bl printf 10185.L1629: 10186 add x19, x19, 1 10187 add w23, w23, w24 10188 b .L1624 10189.L1626: 10190 cmp w24, 2 10191 bne .L1628 10192 ldrsh w1, [x22, x19, lsl 1] 10193 b .L1632 10194.L1628: 10195 ldrb w1, [x22, x19] 10196 b .L1632 10197 .size rknand_print_hex, .-rknand_print_hex 10198 .section .text.hynix_get_read_retry_default,"ax",@progbits 10199 .align 2 10200 .global hynix_get_read_retry_default 10201 .type hynix_get_read_retry_default, %function 10202hynix_get_read_retry_default: 10203 stp x29, x30, [sp, -144]! 10204 mov w2, -83 10205 mov w1, -82 10206 add x29, sp, 0 10207 stp x25, x26, [sp, 64] 10208 mov w25, w0 10209 adrp x0, .LANCHOR6 10210 stp x21, x22, [sp, 32] 10211 stp x23, x24, [sp, 48] 10212 cmp w25, 2 10213 ldr x26, [x0, #:lo12:.LANCHOR6] 10214 mov w0, -84 10215 stp x19, x20, [sp, 16] 10216 stp x27, x28, [sp, 80] 10217 add x24, x26, 128 10218 add x21, x26, 112 10219 strb w0, [x26, 128] 10220 mov w0, -81 10221 strb w25, [x26, 112] 10222 strb w2, [x26, 129] 10223 strb w1, [x26, 130] 10224 strb w0, [x26, 131] 10225 bne .L1634 10226 mov w0, -89 10227 strb w0, [x21, 16] 10228 adrp x0, .LANCHOR163+17 10229 mov w1, -9 10230 strb w1, [x0, #:lo12:.LANCHOR163+17] 10231.L1698: 10232 mov w27, 7 10233 b .L1741 10234.L1634: 10235 cmp w25, 3 10236 bne .L1636 10237 mov x5, 0 10238.L1637: 10239 sub w0, w5, #80 10240 strb w0, [x24, x5] 10241 add x5, x5, 1 10242 cmp x5, 8 10243 bne .L1637 10244 mov w27, w5 10245 mov w28, w5 10246.L1635: 10247 sub w0, w25, #1 10248 cmp w0, 1 10249 bhi .L1643 10250 adrp x25, .LANCHOR23 10251 adrp x26, .LANCHOR29 10252 add x25, x25, :lo12:.LANCHOR23 10253 add x26, x26, :lo12:.LANCHOR29 10254 mov w23, 0 10255 mov w5, 55 10256.L1644: 10257 ldrb w0, [x25] 10258 cmp w0, w23 10259 bhi .L1650 10260.L1651: 10261 strb w28, [x21, 1] 10262 strb w27, [x21, 2] 10263 ldp x19, x20, [sp, 16] 10264 ldp x21, x22, [sp, 32] 10265 ldp x23, x24, [sp, 48] 10266 ldp x25, x26, [sp, 64] 10267 ldp x27, x28, [sp, 80] 10268 ldp x29, x30, [sp], 144 10269 ret 10270.L1636: 10271 cmp w25, 4 10272 bne .L1638 10273 mov w5, -52 10274 strb w5, [x26, 128] 10275 mov w5, -65 10276 strb w5, [x26, 129] 10277 mov w5, -86 10278 strb w5, [x26, 130] 10279 mov w5, -85 10280 mov w27, 8 10281 strb w5, [x26, 131] 10282 mov w28, w27 10283 mov w5, -51 10284 strb w2, [x26, 133] 10285 strb w5, [x26, 132] 10286 strb w1, [x26, 134] 10287 strb w0, [x26, 135] 10288 b .L1635 10289.L1638: 10290 cmp w25, 5 10291 bne .L1639 10292 mov w0, 56 10293 strb w0, [x26, 128] 10294 mov w0, 57 10295 strb w0, [x26, 129] 10296 mov w0, 58 10297 mov w27, 8 10298 strb w0, [x26, 130] 10299 mov w0, 59 10300 strb w0, [x26, 131] 10301.L1741: 10302 mov w28, 4 10303 b .L1635 10304.L1639: 10305 cmp w25, 6 10306 bne .L1640 10307 mov w0, 14 10308 strb w0, [x26, 128] 10309 mov w0, 15 10310 strb w0, [x26, 129] 10311 mov w0, 16 10312 mov w27, 12 10313 strb w0, [x26, 130] 10314 mov w0, 17 10315 strb w0, [x26, 131] 10316 b .L1741 10317.L1640: 10318 cmp w25, 7 10319 bne .L1641 10320 mov x0, 0 10321.L1642: 10322 sub w1, w0, #80 10323 strb w1, [x24, x0] 10324 add x0, x0, 1 10325 cmp x0, 8 10326 bne .L1642 10327 mov w0, -44 10328 mov w27, 12 10329 strb w0, [x26, 136] 10330 mov w28, 10 10331 mov w0, -43 10332 strb w0, [x26, 137] 10333 b .L1635 10334.L1641: 10335 cmp w25, 8 10336 bne .L1698 10337 mov w0, 6 10338 strb w0, [x26, 128] 10339 mov w0, 7 10340 strb w0, [x26, 129] 10341 mov w0, 9 10342 strb w25, [x26, 130] 10343 strb w0, [x26, 131] 10344 mov w27, 50 10345 mov w0, 10 10346 mov w28, 5 10347 strb w0, [x26, 132] 10348 b .L1635 10349.L1650: 10350 ldrb w0, [x26, w23, sxtw] 10351 mov x1, 32 10352 mov w19, 160 10353 mov x20, 0 10354 umaddl x19, w19, w0, x1 10355 adrp x1, .LANCHOR7 10356 ubfiz x0, x0, 8, 8 10357 ldr x22, [x1, #:lo12:.LANCHOR7] 10358 add x19, x21, x19 10359 add x22, x22, x0 10360.L1645: 10361 str w5, [x22, 2056] 10362 str w5, [x29, 136] 10363 ldrb w0, [x24, x20] 10364 str w0, [x22, 2052] 10365 mov x0, 1 10366 bl udelay 10367 ldr w0, [x22, 2048] 10368 strb w0, [x19, x20] 10369 add x20, x20, 1 10370 cmp w28, w20, uxtb 10371 ldr w5, [x29, 136] 10372 bhi .L1645 10373 adrp x2, .LANCHOR163 10374 add x2, x2, :lo12:.LANCHOR163 10375 mov x0, 0 10376.L1648: 10377 add x7, x19, x0 10378 add x4, x2, x0 10379 mov x1, 1 10380.L1647: 10381 lsl x3, x1, 2 10382 lsl x8, x1, 3 10383 ldrb w10, [x19, x0] 10384 add x1, x1, 1 10385 cmp x1, 7 10386 ldrb w3, [x4, x3] 10387 add w3, w3, w10 10388 strb w3, [x7, x8] 10389 bne .L1647 10390 add x0, x0, 1 10391 cmp x0, 4 10392 bne .L1648 10393 add w23, w23, 1 10394 strb wzr, [x19, 16] 10395 strb wzr, [x19, 24] 10396 and w23, w23, 255 10397 strb wzr, [x19, 32] 10398 strb wzr, [x19, 40] 10399 strb wzr, [x19, 48] 10400 strb wzr, [x19, 41] 10401 strb wzr, [x19, 49] 10402 b .L1644 10403.L1643: 10404 sub w0, w25, #3 10405 cmp w0, 5 10406 bhi .L1651 10407 mul w24, w27, w28 10408 sub w22, w28, #1 10409 and x22, x22, 255 10410 mov w20, 0 10411 asr w23, w24, 1 10412 lsl w0, w24, 4 10413 str w0, [x29, 128] 10414 lsl w0, w23, 1 10415 str w0, [x29, 132] 10416 sbfiz x0, x23, 1, 32 10417 sub w24, w25, #5 10418 str x0, [x29, 136] 10419 adrp x0, .LANCHOR23 10420 add x0, x0, :lo12:.LANCHOR23 10421 str x0, [x29, 120] 10422 add x0, x22, 1 10423 str x0, [x29, 112] 10424.L1652: 10425 ldr x0, [x29, 120] 10426 ldrb w0, [x0] 10427 cmp w0, w20 10428 bls .L1651 10429 adrp x0, .LANCHOR29 10430 add x0, x0, :lo12:.LANCHOR29 10431 mov w19, 160 10432 ldrb w22, [x0, w20, sxtw] 10433 mov w0, w22 10434 bl zftl_flash_exit_slc_mode 10435 mov x0, 32 10436 ubfiz x2, x22, 8, 8 10437 mov w1, 255 10438 str w1, [x29, 108] 10439 nop // between mem op and mult-accumulate 10440 umaddl x19, w19, w22, x0 10441 adrp x0, .LANCHOR7 10442 ldr x0, [x0, #:lo12:.LANCHOR7] 10443 add x19, x21, x19 10444 add x22, x0, x2 10445 str w1, [x22, 2056] 10446 bl nandc_wait_flash_ready 10447 cmp w25, 8 10448 ldr w1, [x29, 108] 10449 bne .L1653 10450 mov w0, 120 10451 str w0, [x22, 2056] 10452 str wzr, [x22, 2052] 10453 mov w0, 23 10454 str wzr, [x22, 2052] 10455 mov w1, 25 10456 str wzr, [x22, 2052] 10457 add x19, x26, 144 10458 str w0, [x22, 2056] 10459 mov w0, 4 10460 str w0, [x22, 2056] 10461 str w1, [x22, 2056] 10462 mov w1, 218 10463 str w1, [x22, 2056] 10464 mov w1, 21 10465 str wzr, [x22, 2056] 10466 str wzr, [x22, 2052] 10467 str wzr, [x22, 2052] 10468 str w1, [x22, 2052] 10469.L1744: 10470 str w0, [x22, 2052] 10471 mov w0, 48 10472 str wzr, [x22, 2052] 10473 str w0, [x22, 2056] 10474 bl nandc_wait_flash_ready 10475 cmp w24, 1 10476 ccmp w25, 8, 4, hi 10477 beq .L1699 10478 cmp w25, 7 10479 mov w0, 32 10480 mov w1, 2 10481 csel w1, w1, w0, ne 10482.L1660: 10483 adrp x8, .LANCHOR164 10484 mov x7, 0 10485 ldr x0, [x8, #:lo12:.LANCHOR164] 10486.L1661: 10487 ldr w10, [x22, 2048] 10488 strb w10, [x0, x7] 10489 add x7, x7, 1 10490 cmp w1, w7, uxtb 10491 bhi .L1661 10492 cmp w25, 8 10493 bne .L1662 10494 mov w1, 0 10495.L1664: 10496 ldrb w7, [x0] 10497 cmp w7, 50 10498 beq .L1663 10499 ldrb w7, [x0, 1] 10500 cmp w7, 5 10501 beq .L1663 10502 add w1, w1, 1 10503 add x0, x0, 4 10504 and w1, w1, 255 10505 cmp w1, 8 10506 bne .L1664 10507.L1665: 10508 adrp x0, .LC99 10509 mov w1, 0 10510 add x0, x0, :lo12:.LC99 10511 bl printf 10512.L1667: 10513 b .L1667 10514.L1653: 10515 mov w0, 54 10516 str w0, [x22, 2056] 10517 cmp w25, 4 10518 bne .L1655 10519 mov w0, 64 10520 str w1, [x22, 2052] 10521 str w0, [x22, 2048] 10522 mov w0, 204 10523.L1742: 10524 str w0, [x22, 2052] 10525 mov w0, 77 10526 b .L1743 10527.L1655: 10528 cmp w24, 1 10529 bhi .L1657 10530 ldrb w0, [x26, 128] 10531 str w0, [x22, 2052] 10532 mov w0, 82 10533.L1743: 10534 str w0, [x22, 2048] 10535.L1656: 10536 mov w0, 22 10537 str w0, [x22, 2056] 10538 mov w0, 23 10539 str w0, [x22, 2056] 10540 mov w0, 4 10541 str w0, [x22, 2056] 10542 mov w0, 25 10543 str w0, [x22, 2056] 10544 str wzr, [x22, 2056] 10545 cmp w25, 6 10546 str wzr, [x22, 2052] 10547 str wzr, [x22, 2052] 10548 bne .L1658 10549 mov w0, 31 10550 str w0, [x22, 2052] 10551.L1659: 10552 mov w0, 2 10553 b .L1744 10554.L1657: 10555 cmp w25, 7 10556 bne .L1656 10557 mov w0, 174 10558 str w0, [x22, 2052] 10559 str wzr, [x22, 2048] 10560 mov w0, 176 10561 b .L1742 10562.L1658: 10563 str wzr, [x22, 2052] 10564 b .L1659 10565.L1699: 10566 mov w1, 16 10567 b .L1660 10568.L1663: 10569 cmp w1, 6 10570 bhi .L1665 10571.L1666: 10572 ldr x7, [x8, #:lo12:.LANCHOR164] 10573 mov x0, 0 10574.L1676: 10575 ldr w1, [x29, 128] 10576 cmp w1, w0 10577 bgt .L1677 10578 ldr x1, [x8, #:lo12:.LANCHOR164] 10579 mov w10, 8 10580 ldr x0, [x29, 136] 10581 add x8, x1, x0 10582.L1679: 10583 mov x0, 0 10584.L1678: 10585 ldrh w11, [x8, x0, lsl 1] 10586 mvn w11, w11 10587 strh w11, [x8, x0, lsl 1] 10588 add x0, x0, 1 10589 cmp w23, w0 10590 bgt .L1678 10591 ldr w0, [x29, 132] 10592 subs w10, w10, #1 10593 add x8, x8, x0, uxtw 1 10594 bne .L1679 10595 mov x10, x1 10596 mov w11, 0 10597 mov w16, 1 10598.L1680: 10599 mov w0, 0 10600 mov w8, 0 10601.L1684: 10602 mov x14, x10 10603 lsl w15, w16, w8 10604 mov w13, 16 10605 mov w12, 0 10606.L1682: 10607 ldrh w17, [x14] 10608 ldr x2, [x29, 136] 10609 bics wzr, w15, w17 10610 cinc w12, w12, eq 10611 add x14, x14, x2 10612 subs w13, w13, #1 10613 bne .L1682 10614 cmp w12, 8 10615 bls .L1683 10616 orr w0, w0, w15 10617 and w0, w0, 65535 10618.L1683: 10619 add w8, w8, 1 10620 cmp w8, 16 10621 bne .L1684 10622 strh w0, [x10], 2 10623 add w11, w11, 1 10624 cmp w23, w11 10625 bgt .L1680 10626 mov x0, 0 10627 mov w8, 0 10628.L1687: 10629 ldr w10, [x1, x0] 10630 add x0, x0, 4 10631 cmp w10, 0 10632 cinc w8, w8, eq 10633 cmp x0, 32 10634 bne .L1687 10635 cmp w8, 7 10636 ble .L1688 10637 mov w3, 1024 10638 mov w2, 1 10639 adrp x0, .LC100 10640 add x0, x0, :lo12:.LC100 10641 bl rknand_print_hex 10642 adrp x0, .LC99 10643 mov w1, 0 10644 add x0, x0, :lo12:.LC99 10645 bl printf 10646.L1689: 10647 b .L1689 10648.L1662: 10649 cmp w25, 7 10650 bne .L1668 10651 mov w1, 0 10652.L1670: 10653 ldrb w7, [x0] 10654 cmp w7, 12 10655 beq .L1669 10656 ldrb w7, [x0, 1] 10657 cmp w7, 10 10658 beq .L1669 10659 add w1, w1, 1 10660 add x0, x0, 4 10661 and w1, w1, 255 10662 cmp w1, 8 10663 bne .L1670 10664.L1671: 10665 adrp x0, .LC99 10666 mov w1, 0 10667 add x0, x0, :lo12:.LC99 10668 bl printf 10669.L1672: 10670 b .L1672 10671.L1669: 10672 cmp w1, 6 10673 bls .L1666 10674 b .L1671 10675.L1668: 10676 cmp w25, 6 10677 bne .L1666 10678 mov x1, 0 10679.L1673: 10680 ldrb w7, [x0, x1] 10681 cmp w7, 12 10682 beq .L1666 10683 add x7, x0, x1 10684 ldrb w7, [x7, 8] 10685 cmp w7, 4 10686 beq .L1666 10687 add x1, x1, 1 10688 cmp x1, 8 10689 bne .L1673 10690 adrp x0, .LC99 10691 mov w1, 0 10692 add x0, x0, :lo12:.LC99 10693 bl printf 10694.L1675: 10695 b .L1675 10696.L1677: 10697 ldr w1, [x22, 2048] 10698 strb w1, [x7, x0] 10699 add x0, x0, 1 10700 b .L1676 10701.L1688: 10702 cmp w25, 6 10703 beq .L1701 10704 cmp w25, 7 10705 beq .L1702 10706 cmp w25, 8 10707 mov x1, 5 10708 mov x0, 8 10709 csel x0, x0, x1, ne 10710.L1690: 10711 mov w8, 0 10712.L1691: 10713 mov x1, 0 10714.L1692: 10715 ldrb w10, [x7, x1] 10716 strb w10, [x19, x1] 10717 add x1, x1, 1 10718 cmp w28, w1, uxtb 10719 bhi .L1692 10720 ldr x1, [x29, 112] 10721 add w8, w8, 1 10722 add x19, x19, x0 10723 cmp w27, w8 10724 add x7, x7, x1 10725 bgt .L1691 10726 mov w19, 255 10727 str w19, [x22, 2056] 10728 bl nandc_wait_flash_ready 10729 cmp w24, 1 10730 bhi .L1694 10731 mov w0, 54 10732 str w0, [x22, 2056] 10733 ldrb w0, [x26, 128] 10734 str w0, [x22, 2052] 10735 str wzr, [x22, 2048] 10736 mov w0, 22 10737 str w0, [x22, 2056] 10738 mov w0, 48 10739 str wzr, [x22, 2056] 10740 str wzr, [x22, 2052] 10741 str wzr, [x22, 2052] 10742 str w19, [x22, 2052] 10743 str w19, [x22, 2052] 10744 str w19, [x22, 2052] 10745.L1745: 10746 str w0, [x22, 2056] 10747 add w20, w20, 1 10748 and w20, w20, 255 10749 bl nandc_wait_flash_ready 10750 b .L1652 10751.L1701: 10752 mov x0, 4 10753 b .L1690 10754.L1702: 10755 mov x0, 10 10756 b .L1690 10757.L1694: 10758 cmp w25, 8 10759 bne .L1696 10760 mov w0, 190 10761 b .L1745 10762.L1696: 10763 mov w0, 56 10764 b .L1745 10765 .size hynix_get_read_retry_default, .-hynix_get_read_retry_default 10766 .section .text.flash_get_read_retry_tbl,"ax",@progbits 10767 .align 2 10768 .global flash_get_read_retry_tbl 10769 .type flash_get_read_retry_tbl, %function 10770flash_get_read_retry_tbl: 10771 adrp x0, .LANCHOR32+19 10772 ldrb w0, [x0, #:lo12:.LANCHOR32+19] 10773 sub w1, w0, #1 10774 and w1, w1, 255 10775 cmp w1, 7 10776 bhi .L1746 10777 b hynix_get_read_retry_default 10778.L1746: 10779 ret 10780 .size flash_get_read_retry_tbl, .-flash_get_read_retry_tbl 10781 .section .text.nandc_xfer_done,"ax",@progbits 10782 .align 2 10783 .global nandc_xfer_done 10784 .type nandc_xfer_done, %function 10785nandc_xfer_done: 10786 stp x29, x30, [sp, -80]! 10787 adrp x0, .LANCHOR165 10788 adrp x1, .LANCHOR27 10789 add x29, sp, 0 10790 stp x19, x20, [sp, 16] 10791 adrp x19, .LANCHOR7 10792 ldrb w1, [x1, #:lo12:.LANCHOR27] 10793 stp x21, x22, [sp, 32] 10794 strb wzr, [x0, #:lo12:.LANCHOR165] 10795 cmp w1, 9 10796 str x23, [sp, 48] 10797 bne .L1749 10798 ldr x20, [x19, #:lo12:.LANCHOR7] 10799 mov x21, x0 10800 ldr w0, [x20, 16] 10801 str w0, [x29, 64] 10802 ldr w0, [x20, 48] 10803 tbnz x0, 1, .L1750 10804 adrp x22, .LC103 10805 adrp x23, .LC104 10806 add x22, x22, :lo12:.LC103 10807 add x23, x23, :lo12:.LC104 10808 mov w21, 0 10809.L1751: 10810 ldr w0, [x29, 64] 10811 tbnz x0, 20, .L1753 10812 ldr x0, [x19, #:lo12:.LANCHOR7] 10813 add w21, w21, 1 10814 tst x21, 16777215 10815 ldr w0, [x0, 16] 10816 str w0, [x29, 64] 10817 bne .L1751 10818 ldr w2, [x29, 64] 10819 mov w1, w21 10820 ldr w3, [x20, 64] 10821 mov x0, x22 10822 ubfx x3, x3, 16, 6 10823 bl printf 10824 ldr x1, [x19, #:lo12:.LANCHOR7] 10825 mov w3, 64 10826 mov w2, 4 10827 mov x0, x23 10828 bl rknand_print_hex 10829 b .L1751 10830.L1752: 10831 ldr w0, [x29, 64] 10832 add w1, w1, 1 10833 ubfx x0, x0, 22, 6 10834 cmp w1, w0, lsl 12 10835 bne .L1754 10836 ldr w2, [x20, 64] 10837 adrp x0, .LC102 10838 ldr w3, [x29, 64] 10839 add x0, x0, :lo12:.LC102 10840 ubfx x2, x2, 16, 5 10841 ubfx x3, x3, 22, 6 10842 bl printf 10843 ldr w0, [x29, 72] 10844 mov w0, 1 10845 strb w0, [x21, #:lo12:.LANCHOR165] 10846.L1753: 10847 adrp x0, .LANCHOR52+32 10848 ldr x23, [sp, 48] 10849 ldp x19, x20, [sp, 16] 10850 str wzr, [x0, #:lo12:.LANCHOR52+32] 10851 ldp x21, x22, [sp, 32] 10852 ldp x29, x30, [sp], 80 10853 ret 10854.L1750: 10855 mov w1, 0 10856.L1754: 10857 ldr w2, [x20, 64] 10858 ldr w0, [x29, 64] 10859 ubfx x2, x2, 16, 6 10860 ubfx x0, x0, 22, 6 10861 cmp w2, w0 10862 bge .L1753 10863 ldr w0, [x20] 10864 str w0, [x29, 72] 10865 ldr w0, [x29, 72] 10866 tbz x0, 13, .L1752 10867 ldr w0, [x29, 72] 10868 tbz x0, 17, .L1752 10869 ldr w1, [x29, 72] 10870 adrp x0, .LC101 10871 add x0, x0, :lo12:.LC101 10872 ubfx x1, x1, 17, 1 10873.L1783: 10874 bl printf 10875 b .L1753 10876.L1749: 10877 ldr x20, [x19, #:lo12:.LANCHOR7] 10878 mov w21, 0 10879 ldr w0, [x20, 8] 10880 str w0, [x29, 64] 10881 ldr w0, [x20, 16] 10882 tbnz x0, 1, .L1759 10883 adrp x22, .LC103 10884 adrp x23, .LC104 10885 add x22, x22, :lo12:.LC103 10886 add x23, x23, :lo12:.LC104 10887.L1760: 10888 ldr w0, [x29, 64] 10889 tbnz x0, 20, .L1753 10890 ldr x0, [x19, #:lo12:.LANCHOR7] 10891 add w21, w21, 1 10892 tst x21, 16777215 10893 ldr w0, [x0, 8] 10894 str w0, [x29, 64] 10895 bne .L1760 10896 ldr w2, [x29, 64] 10897 mov w1, w21 10898 ldr w3, [x20, 28] 10899 mov x0, x22 10900 ubfx x3, x3, 16, 5 10901 bl printf 10902 ldr x1, [x19, #:lo12:.LANCHOR7] 10903 mov w3, 64 10904 mov w2, 4 10905 mov x0, x23 10906 bl rknand_print_hex 10907 b .L1760 10908.L1759: 10909 adrp x22, .LC102 10910 adrp x23, .LC104 10911 add x22, x22, :lo12:.LC102 10912 add x23, x23, :lo12:.LC104 10913.L1761: 10914 ldr w1, [x20, 28] 10915 ldr w0, [x29, 64] 10916 ubfx x1, x1, 16, 5 10917 ubfx x0, x0, 22, 6 10918 cmp w1, w0 10919 bge .L1753 10920 ldr x0, [x19, #:lo12:.LANCHOR7] 10921 ldr w0, [x0] 10922 str w0, [x29, 72] 10923 ldr w0, [x29, 72] 10924 tbz x0, 13, .L1762 10925 ldr w0, [x29, 72] 10926 tbz x0, 17, .L1762 10927 adrp x0, .LC105 10928 ldr w1, [x29, 72] 10929 add x0, x0, :lo12:.LC105 10930 b .L1783 10931.L1762: 10932 add w21, w21, 1 10933 tst x21, 16777215 10934 bne .L1761 10935 ldr w2, [x20, 28] 10936 mov w1, w21 10937 ldr w3, [x29, 64] 10938 mov x0, x22 10939 ubfx x2, x2, 16, 5 10940 ubfx x3, x3, 22, 6 10941 bl printf 10942 ldr x1, [x19, #:lo12:.LANCHOR7] 10943 mov w3, 64 10944 mov w2, 4 10945 mov x0, x23 10946 bl rknand_print_hex 10947 b .L1761 10948 .size nandc_xfer_done, .-nandc_xfer_done 10949 .section .text.nandc_xfer,"ax",@progbits 10950 .align 2 10951 .global nandc_xfer 10952 .type nandc_xfer, %function 10953nandc_xfer: 10954 stp x29, x30, [sp, -64]! 10955 add x29, sp, 0 10956 stp x19, x20, [sp, 16] 10957 and w19, w2, 255 10958 mov x20, x3 10959 stp x21, x22, [sp, 32] 10960 mov x3, x4 10961 and w22, w1, 255 10962 mov x2, x20 10963 mov w1, w19 10964 mov w0, w22 10965 mov x21, x4 10966 bl nandc_xfer_start 10967 mov w0, w22 10968 bl nandc_xfer_done 10969 cbnz w22, .L1803 10970 adrp x0, .LANCHOR27 10971 ldrb w0, [x0, #:lo12:.LANCHOR27] 10972 cmp w0, 9 10973 bne .L1786 10974 adrp x22, .LANCHOR7 10975 lsr w19, w19, 2 10976 mov w3, 1 10977 mov w2, 0 10978 ldr x5, [x22, #:lo12:.LANCHOR7] 10979 mov w0, 0 10980.L1787: 10981 cmp w2, w19 10982 bcc .L1791 10983 ldr w19, [x5] 10984 cmp w3, 0 10985 mov w1, 512 10986 csel w0, w0, w1, eq 10987 mov w1, 8192 10988 movk w1, 0x2, lsl 16 10989 and w1, w19, w1 10990 cmp w1, 139264 10991 bne .L1793 10992 mov w1, w19 10993 adrp x0, .LC106 10994 add x0, x0, :lo12:.LC106 10995 bl printf 10996 ldr x0, [x22, #:lo12:.LANCHOR7] 10997 orr w19, w19, 131072 10998 str w19, [x0] 10999 mov w0, -1 11000.L1793: 11001 tbz x19, 13, .L1794 11002 adrp x1, .LANCHOR165 11003 ldrb w1, [x1, #:lo12:.LANCHOR165] 11004 cbz w1, .L1794 11005 mov w1, w19 11006 adrp x0, .LC107 11007 add x0, x0, :lo12:.LC107 11008 bl printf 11009 ldr x0, [x22, #:lo12:.LANCHOR7] 11010 mov w1, 1 11011 str w1, [x0, 16] 11012.L1822: 11013 mov w0, -1 11014.L1785: 11015 ldp x19, x20, [sp, 16] 11016 ldp x21, x22, [sp, 32] 11017 ldp x29, x30, [sp], 64 11018 ret 11019.L1791: 11020 uxtw x1, w2 11021 add x1, x1, 84 11022 ldr w1, [x5, x1, lsl 2] 11023 str w1, [x29, 56] 11024 ldr w1, [x29, 56] 11025 ldr w4, [x29, 56] 11026 ubfx x4, x4, 26, 1 11027 and w1, w4, w1, lsr 10 11028 and w3, w3, w1 11029 ldr w1, [x29, 56] 11030 tbnz x1, 2, .L1805 11031 ldr w1, [x29, 56] 11032 tbnz x1, 18, .L1805 11033 ldr w4, [x29, 56] 11034 ldr w1, [x29, 56] 11035 ubfx x4, x4, 3, 7 11036 ubfx x1, x1, 19, 7 11037 cmp w4, w1 11038 ldr w1, [x29, 56] 11039 ble .L1789 11040 ubfx x1, x1, 3, 7 11041.L1790: 11042 cmp w0, w1 11043 csel w0, w0, w1, cs 11044.L1788: 11045 add w2, w2, 1 11046 b .L1787 11047.L1789: 11048 ubfx x1, x1, 19, 7 11049 b .L1790 11050.L1805: 11051 mov w0, -1 11052 b .L1788 11053.L1786: 11054 adrp x0, .LANCHOR49 11055 lsr w4, w19, 1 11056 mov w3, 64 11057 mov w1, 1 11058 ldrb w0, [x0, #:lo12:.LANCHOR49] 11059 mov w2, 0 11060 adrp x6, .LANCHOR52 11061 cmp w0, 25 11062 mov w0, 128 11063 csel w3, w3, w0, cc 11064 mov w0, 0 11065.L1796: 11066 add w5, w3, w0 11067 cmp w2, w4 11068 bcc .L1797 11069 adrp x22, .LANCHOR7 11070 lsr w19, w19, 2 11071 mov w3, 0 11072 mov w0, 0 11073 ldr x4, [x22, #:lo12:.LANCHOR7] 11074.L1798: 11075 cmp w3, w19 11076 bcc .L1802 11077 str wzr, [x4, 16] 11078 mov w1, 8192 11079 movk w1, 0x2, lsl 16 11080 ldr w19, [x4] 11081 and w1, w19, w1 11082 cmp w1, 139264 11083 bne .L1794 11084 mov w1, w19 11085 adrp x0, .LC108 11086 add x0, x0, :lo12:.LC108 11087 bl printf 11088 ldr x0, [x22, #:lo12:.LANCHOR7] 11089 orr w19, w19, 131072 11090 str w19, [x0] 11091 b .L1822 11092.L1797: 11093 ldr x7, [x6, #:lo12:.LANCHOR52] 11094 and x0, x0, 4294967292 11095 ldr w0, [x7, x0] 11096 lsl w7, w2, 2 11097 add w2, w2, 1 11098 strb w0, [x21, x7] 11099 lsr w7, w0, 8 11100 strb w7, [x21, w1, uxtw] 11101 add w7, w1, 1 11102 lsr w8, w0, 16 11103 lsr w0, w0, 24 11104 strb w8, [x21, x7] 11105 add w7, w1, 2 11106 add w1, w1, 4 11107 strb w0, [x21, x7] 11108 mov w0, w5 11109 b .L1796 11110.L1802: 11111 uxtw x1, w3 11112 add x1, x1, 8 11113 ldr w1, [x4, x1, lsl 2] 11114 str w1, [x29, 56] 11115 ldr w1, [x29, 56] 11116 tbnz x1, 2, .L1808 11117 ldr w1, [x29, 56] 11118 tbnz x1, 15, .L1808 11119 ldr w2, [x29, 56] 11120 ubfx x6, x2, 3, 5 11121 ldr w2, [x29, 56] 11122 ldr w1, [x29, 56] 11123 ubfx x2, x2, 27, 1 11124 ubfx x5, x1, 16, 5 11125 ldr w1, [x29, 56] 11126 orr w2, w6, w2, lsl 5 11127 ubfx x1, x1, 29, 1 11128 orr w1, w5, w1, lsl 5 11129 cmp w2, w1 11130 ldr w1, [x29, 56] 11131 bls .L1800 11132 ubfx x2, x1, 3, 5 11133 ldr w1, [x29, 56] 11134 ubfx x1, x1, 27, 1 11135.L1821: 11136 orr w1, w2, w1, lsl 5 11137 cmp w0, w1 11138 csel w0, w0, w1, cs 11139.L1799: 11140 add w3, w3, 1 11141 b .L1798 11142.L1800: 11143 ubfx x2, x1, 16, 5 11144 ldr w1, [x29, 56] 11145 ubfx x1, x1, 29, 1 11146 b .L1821 11147.L1808: 11148 mov w0, -1 11149 b .L1799 11150.L1794: 11151 cmn w0, #1 11152 beq .L1785 11153 ldr w1, [x21] 11154 cmn w1, #1 11155 bne .L1785 11156 ldr w1, [x21, 4] 11157 cmn w1, #1 11158 bne .L1785 11159 ldr w1, [x20] 11160 cmn w1, #1 11161 mov w1, 512 11162 csel w0, w0, w1, ne 11163 b .L1785 11164.L1803: 11165 mov w0, 0 11166 b .L1785 11167 .size nandc_xfer, .-nandc_xfer 11168 .section .text.flash_read_page,"ax",@progbits 11169 .align 2 11170 .global flash_read_page 11171 .type flash_read_page, %function 11172flash_read_page: 11173 stp x29, x30, [sp, -80]! 11174 add x29, sp, 0 11175 stp x21, x22, [sp, 32] 11176 and w21, w0, 255 11177 adrp x0, .LANCHOR7 11178 stp x19, x20, [sp, 16] 11179 mov w19, 24 11180 stp x23, x24, [sp, 48] 11181 ldr x20, [x0, #:lo12:.LANCHOR7] 11182 adrp x0, .LANCHOR31 11183 stp x25, x26, [sp, 64] 11184 mov x24, x2 11185 ldrb w0, [x0, #:lo12:.LANCHOR31] 11186 mov x25, x3 11187 mov w23, w4 11188 ubfx x22, x1, 24, 2 11189 sub w0, w19, w0 11190 mov w19, 1 11191 adrp x26, .LANCHOR21 11192 lsl w19, w19, w0 11193 sub w19, w19, #1 11194 and w19, w19, w1 11195 bl nandc_wait_flash_ready 11196 mov w0, w21 11197 bl nandc_cs 11198 cbnz w22, .L1824 11199 mov w0, w21 11200 bl zftl_flash_enter_slc_mode 11201.L1825: 11202 ldr x1, [x26, #:lo12:.LANCHOR21] 11203 ldrb w0, [x1, 7] 11204 cmp w0, 1 11205 bne .L1827 11206 ldrb w0, [x1, 12] 11207 cmp w0, 2 11208 bne .L1827 11209 sxtw x0, w21 11210 mov w2, 38 11211 add x0, x0, 8 11212 add x0, x20, x0, lsl 8 11213 str w2, [x0, 8] 11214.L1827: 11215 ubfiz x0, x21, 8, 8 11216 add x20, x20, x0 11217 and w0, w19, 255 11218 str wzr, [x20, 2056] 11219 str wzr, [x20, 2052] 11220 str wzr, [x20, 2052] 11221 str w0, [x20, 2052] 11222 lsr w0, w19, 8 11223 str w0, [x20, 2052] 11224 lsr w0, w19, 16 11225 str w0, [x20, 2052] 11226 adrp x0, .LANCHOR30 11227 ldrb w0, [x0, #:lo12:.LANCHOR30] 11228 cbz w0, .L1828 11229 lsr w0, w19, 24 11230 str w0, [x20, 2052] 11231.L1828: 11232 mov w0, 48 11233 str w0, [x20, 2056] 11234 ldrb w0, [x1, 12] 11235 cmp w0, 3 11236 bne .L1829 11237 cbz w22, .L1829 11238 adrp x0, .LANCHOR35 11239 ldrb w0, [x0, #:lo12:.LANCHOR35] 11240 cbnz w0, .L1829 11241 adrp x0, .LANCHOR36 11242 ldrb w0, [x0, #:lo12:.LANCHOR36] 11243 cbnz w0, .L1829 11244 add w19, w19, w19, lsl 1 11245 sub w0, w19, #1 11246 add w0, w0, w22 11247.L1838: 11248 bl nandc_set_seed 11249 bl nandc_wait_flash_ready 11250 mov w0, 5 11251 str w0, [x20, 2056] 11252 str wzr, [x20, 2052] 11253 mov w0, 224 11254 str wzr, [x20, 2052] 11255 mov w2, w23 11256 str w0, [x20, 2056] 11257 mov x4, x25 11258 mov x3, x24 11259 mov w1, 0 11260 mov w0, w21 11261 bl nandc_xfer 11262 mov w2, w0 11263 bl nandc_de_cs.constprop.31 11264 mov w0, w2 11265 ldp x19, x20, [sp, 16] 11266 ldp x21, x22, [sp, 32] 11267 ldp x23, x24, [sp, 48] 11268 ldp x25, x26, [sp, 64] 11269 ldp x29, x30, [sp], 80 11270 ret 11271.L1824: 11272 ldr x0, [x26, #:lo12:.LANCHOR21] 11273 ldrb w0, [x0, 12] 11274 cmp w0, 3 11275 bne .L1826 11276 adrp x0, .LANCHOR35 11277 ldrb w0, [x0, #:lo12:.LANCHOR35] 11278 cbnz w0, .L1826 11279 adrp x0, .LANCHOR36 11280 ldrb w0, [x0, #:lo12:.LANCHOR36] 11281 cbnz w0, .L1826 11282 sxtw x0, w21 11283 add x0, x0, 8 11284 add x0, x20, x0, lsl 8 11285 str w22, [x0, 8] 11286 b .L1825 11287.L1826: 11288 mov w0, w21 11289 bl zftl_flash_exit_slc_mode 11290 b .L1825 11291.L1829: 11292 mov w0, w19 11293 b .L1838 11294 .size flash_read_page, .-flash_read_page 11295 .section .text.micron_read_retrial,"ax",@progbits 11296 .align 2 11297 .global micron_read_retrial 11298 .type micron_read_retrial, %function 11299micron_read_retrial: 11300 stp x29, x30, [sp, -128]! 11301 add x29, sp, 0 11302 stp x19, x20, [sp, 16] 11303 and w20, w0, 255 11304 adrp x0, .LANCHOR49 11305 stp x23, x24, [sp, 48] 11306 stp x25, x26, [sp, 64] 11307 mov w24, w1 11308 stp x21, x22, [sp, 32] 11309 mov x25, x2 11310 ldrb w21, [x0, #:lo12:.LANCHOR49] 11311 mov x26, x3 11312 stp x27, x28, [sp, 80] 11313 mov w23, 0 11314 str w4, [x29, 124] 11315 bl nandc_wait_flash_ready 11316 adrp x0, .LANCHOR7 11317 add w21, w21, w21, lsl 1 11318 asr w21, w21, 2 11319 ldr x19, [x0, #:lo12:.LANCHOR7] 11320 adrp x0, .LANCHOR167 11321 add x0, x0, :lo12:.LANCHOR167 11322 str x0, [x29, 112] 11323 ubfiz x0, x20, 8, 8 11324 add x19, x19, x0 11325.L1840: 11326 mov w0, w20 11327 bl zftl_flash_enter_slc_mode 11328 mov w0, w20 11329 bl zftl_flash_exit_slc_mode 11330 adrp x0, .LANCHOR19 11331 mov w22, 0 11332 add x0, x0, :lo12:.LANCHOR19 11333 mov w28, -1 11334 str x0, [x29, 104] 11335.L1841: 11336 ldr x0, [x29, 112] 11337 ldrb w0, [x0] 11338 cmp w22, w0 11339 bcc .L1846 11340.L1845: 11341 mov w0, 239 11342 str w0, [x19, 2056] 11343 mov w0, 137 11344 str w0, [x19, 2052] 11345 mov x0, 1 11346 bl udelay 11347 str wzr, [x19, 2048] 11348 str wzr, [x19, 2048] 11349 cmp w28, w21 11350 str wzr, [x19, 2048] 11351 str wzr, [x19, 2048] 11352 bcc .L1847 11353 cmn w28, #1 11354 mov w0, 256 11355 csel w28, w28, w0, eq 11356.L1847: 11357 cmn w28, #1 11358 cset w27, eq 11359 cmp w28, 256 11360 cset w0, eq 11361 orr w0, w27, w0 11362 cbz w0, .L1848 11363 mov w4, w28 11364 mov w3, w22 11365 mov w2, w24 11366 mov w1, w20 11367 adrp x0, .LC110 11368 add x0, x0, :lo12:.LC110 11369 bl printf 11370 eor w0, w23, 1 11371 tst w27, w0 11372 beq .L1849 11373 mov w1, 3 11374 mov w0, w20 11375 mov w23, 1 11376 bl mt_auto_read_calibration_config 11377 b .L1840 11378.L1846: 11379 mov w0, 239 11380 str w0, [x19, 2056] 11381 mov w0, 137 11382 str w0, [x19, 2052] 11383 add w27, w22, 1 11384 mov x0, 1 11385 bl udelay 11386 str w27, [x19, 2048] 11387 str wzr, [x19, 2048] 11388 mov x3, x26 11389 ldr w4, [x29, 124] 11390 mov x2, x25 11391 str wzr, [x19, 2048] 11392 mov w1, w24 11393 str wzr, [x19, 2048] 11394 mov w0, w20 11395 bl flash_read_page 11396 mov w6, w0 11397 ldr x0, [x29, 104] 11398 ldr w0, [x0] 11399 tbz x0, 12, .L1842 11400 mov w4, w6 11401 str w6, [x29, 120] 11402 mov w3, w28 11403 mov w2, w24 11404 mov w1, w22 11405 adrp x0, .LC109 11406 add x0, x0, :lo12:.LC109 11407 bl printf 11408 ldr w6, [x29, 120] 11409.L1842: 11410 cmn w6, #1 11411 beq .L1843 11412 adrp x0, .LANCHOR164 11413 cmn w28, #1 11414 csel w28, w28, w6, ne 11415 cmp w6, w21 11416 ldr x25, [x0, #:lo12:.LANCHOR164] 11417 adrp x0, .LANCHOR166 11418 ldr x26, [x0, #:lo12:.LANCHOR166] 11419 bcc .L1852 11420.L1843: 11421 mov w22, w27 11422 b .L1841 11423.L1852: 11424 mov w28, w6 11425 b .L1845 11426.L1849: 11427 cbz w23, .L1850 11428 mov w0, w20 11429 mov w1, 0 11430 bl mt_auto_read_calibration_config 11431 cmn w28, #1 11432 mov w0, 256 11433 csel w28, w28, w0, eq 11434.L1850: 11435 bl nandc_wait_flash_ready 11436 mov w0, w28 11437 ldp x19, x20, [sp, 16] 11438 ldp x21, x22, [sp, 32] 11439 ldp x23, x24, [sp, 48] 11440 ldp x25, x26, [sp, 64] 11441 ldp x27, x28, [sp, 80] 11442 ldp x29, x30, [sp], 128 11443 ret 11444.L1848: 11445 cbz w23, .L1850 11446 mov w1, 0 11447 mov w0, w20 11448 mov w28, 256 11449 bl mt_auto_read_calibration_config 11450 b .L1850 11451 .size micron_read_retrial, .-micron_read_retrial 11452 .section .text.toshiba_3d_read_retrial,"ax",@progbits 11453 .align 2 11454 .global toshiba_3d_read_retrial 11455 .type toshiba_3d_read_retrial, %function 11456toshiba_3d_read_retrial: 11457 stp x29, x30, [sp, -144]! 11458 add x29, sp, 0 11459 stp x21, x22, [sp, 32] 11460 adrp x22, .LANCHOR16 11461 stp x23, x24, [sp, 48] 11462 mov w24, w1 11463 stp x25, x26, [sp, 64] 11464 and w23, w0, 255 11465 stp x27, x28, [sp, 80] 11466 mov x26, x2 11467 stp x19, x20, [sp, 16] 11468 mov x27, x3 11469 mov w28, w4 11470 bl nandc_wait_flash_ready 11471 adrp x0, .LANCHOR7 11472 mov w1, 46 11473 mov w2, 56 11474 ubfx x19, x24, 24, 2 11475 ldr x25, [x0, #:lo12:.LANCHOR7] 11476 and x0, x23, 255 11477 add x21, x0, 8 11478 str x0, [x29, 128] 11479 ldrb w0, [x22, #:lo12:.LANCHOR16] 11480 add x21, x25, x21, lsl 8 11481 cmp w0, 36 11482 mov w0, 26 11483 csel w1, w2, w1, ne 11484 str w1, [x29, 120] 11485 mov w1, 10 11486 csel w0, w1, w0, ne 11487 str w0, [x29, 136] 11488 cbnz w19, .L1870 11489 add x0, x22, :lo12:.LANCHOR16 11490 str x0, [x29, 120] 11491 sxtw x0, w23 11492 mov w19, -1 11493 add x0, x0, 8 11494 mov w20, 1 11495 add x0, x25, x0, lsl 8 11496 str x0, [x29, 112] 11497.L1877: 11498 ldr x0, [x29, 120] 11499 ldrb w0, [x0] 11500 cmp w0, 36 11501 bne .L1871 11502 mov w1, w20 11503 mov x0, x21 11504 mov w2, 0 11505 bl toshiba_tlc_set_rr_para 11506 ldr x1, [x29, 112] 11507 mov w0, 93 11508 str w0, [x1, 8] 11509.L1872: 11510 mov w4, w28 11511 mov x3, x27 11512 mov x2, x26 11513 mov w1, w24 11514 mov w0, w23 11515 bl flash_read_page 11516 mov w4, w0 11517 adrp x0, .LANCHOR19 11518 ldr w0, [x0, #:lo12:.LANCHOR19] 11519 tbz x0, 4, .L1873 11520 mov w3, w4 11521 str w4, [x29, 108] 11522 mov w2, w24 11523 mov w1, w20 11524 adrp x0, .LC111 11525 add x0, x0, :lo12:.LC111 11526 bl printf 11527 ldr w4, [x29, 108] 11528.L1873: 11529 cmn w4, #1 11530 beq .L1874 11531 adrp x0, .LANCHOR164 11532 cmn w19, #1 11533 csel w19, w19, w4, ne 11534 ldr x26, [x0, #:lo12:.LANCHOR164] 11535 adrp x0, .LANCHOR166 11536 ldr x27, [x0, #:lo12:.LANCHOR166] 11537 adrp x0, .LANCHOR49 11538 ldrb w0, [x0, #:lo12:.LANCHOR49] 11539 add w0, w0, w0, lsl 1 11540 cmp w4, w0, lsr 2 11541 bcc .L1892 11542.L1874: 11543 ldr w0, [x29, 136] 11544 add w20, w20, 1 11545 cmp w0, w20 11546 bne .L1877 11547.L1876: 11548 ldrb w0, [x22, #:lo12:.LANCHOR16] 11549 cmp w0, 36 11550 bne .L1878 11551 mov w2, 0 11552.L1915: 11553 mov w1, 0 11554 mov x0, x21 11555 bl toshiba_tlc_set_rr_para 11556 b .L1879 11557.L1871: 11558 mov w1, w20 11559 mov x0, x21 11560 bl toshiba_3d_set_slc_rr_para 11561 b .L1872 11562.L1892: 11563 mov w19, w4 11564 b .L1876 11565.L1878: 11566 mov w1, 0 11567 mov x0, x21 11568 bl toshiba_3d_set_slc_rr_para 11569.L1879: 11570 ldrb w0, [x22, #:lo12:.LANCHOR16] 11571 cmp w0, 36 11572 bne .L1888 11573 ldr x0, [x29, 128] 11574 add x25, x25, x0, lsl 8 11575 mov w0, 85 11576 str w0, [x25, 2056] 11577 mov w0, 255 11578 str wzr, [x25, 2052] 11579 str wzr, [x25, 2048] 11580 str w0, [x25, 2056] 11581.L1888: 11582 adrp x0, .LANCHOR49 11583 ldrb w0, [x0, #:lo12:.LANCHOR49] 11584 add w0, w0, w0, lsl 1 11585 cmp w19, w0, lsr 2 11586 bcc .L1889 11587 cmn w19, #1 11588 mov w0, 256 11589 csel w19, w19, w0, eq 11590.L1889: 11591 cmp w19, 256 11592 ccmn w19, #1, 4, ne 11593 bne .L1890 11594 adrp x0, .LC113 11595 mov w4, w19 11596 mov w3, w20 11597 mov w2, w24 11598 mov w1, w23 11599 add x0, x0, :lo12:.LC113 11600 bl printf 11601.L1890: 11602 bl nandc_wait_flash_ready 11603 mov w0, w19 11604 ldp x19, x20, [sp, 16] 11605 ldp x21, x22, [sp, 32] 11606 ldp x23, x24, [sp, 48] 11607 ldp x25, x26, [sp, 64] 11608 ldp x27, x28, [sp, 80] 11609 ldp x29, x30, [sp], 144 11610 ret 11611.L1870: 11612 add x0, x22, :lo12:.LANCHOR16 11613 str x0, [x29, 112] 11614 sxtw x0, w23 11615 mov w19, -1 11616 add x0, x0, 8 11617 mov w20, 1 11618 add x0, x25, x0, lsl 8 11619 str x0, [x29, 136] 11620.L1886: 11621 ldr x0, [x29, 112] 11622 ldrb w0, [x0] 11623 cmp w0, 36 11624 bne .L1880 11625 mov x0, x21 11626 mov w2, 1 11627 mov w1, w20 11628 bl toshiba_tlc_set_rr_para 11629 mov w0, 93 11630.L1914: 11631 ldr x1, [x29, 136] 11632 mov w4, w28 11633 mov x3, x27 11634 mov x2, x26 11635 str w0, [x1, 8] 11636 mov w1, w24 11637 mov w0, w23 11638 bl flash_read_page 11639 mov w4, w0 11640 adrp x0, .LANCHOR19 11641 ldr w0, [x0, #:lo12:.LANCHOR19] 11642 tbz x0, 4, .L1882 11643 mov w3, w4 11644 str w4, [x29, 108] 11645 mov w2, w24 11646 mov w1, w20 11647 adrp x0, .LC112 11648 add x0, x0, :lo12:.LC112 11649 bl printf 11650 ldr w4, [x29, 108] 11651.L1882: 11652 cmn w4, #1 11653 beq .L1883 11654 adrp x0, .LANCHOR164 11655 cmn w19, #1 11656 csel w19, w19, w4, ne 11657 ldr x26, [x0, #:lo12:.LANCHOR164] 11658 adrp x0, .LANCHOR166 11659 ldr x27, [x0, #:lo12:.LANCHOR166] 11660 adrp x0, .LANCHOR49 11661 ldrb w0, [x0, #:lo12:.LANCHOR49] 11662 add w0, w0, w0, lsl 1 11663 cmp w4, w0, lsr 2 11664 bcc .L1893 11665.L1883: 11666 ldr w0, [x29, 120] 11667 add w20, w20, 1 11668 cmp w0, w20 11669 bne .L1886 11670.L1885: 11671 ldrb w0, [x22, #:lo12:.LANCHOR16] 11672 cmp w0, 36 11673 bne .L1887 11674 mov w2, 1 11675 b .L1915 11676.L1880: 11677 mov x0, x21 11678 mov w1, w20 11679 bl toshiba_3d_set_tlc_rr_para 11680 mov w0, 38 11681 b .L1914 11682.L1893: 11683 mov w19, w4 11684 b .L1885 11685.L1887: 11686 mov w1, 0 11687 mov x0, x21 11688 bl toshiba_3d_set_tlc_rr_para 11689 b .L1879 11690 .size toshiba_3d_read_retrial, .-toshiba_3d_read_retrial 11691 .section .text.toshiba_read_retrial,"ax",@progbits 11692 .align 2 11693 .global toshiba_read_retrial 11694 .type toshiba_read_retrial, %function 11695toshiba_read_retrial: 11696 stp x29, x30, [sp, -128]! 11697 add x29, sp, 0 11698 stp x21, x22, [sp, 32] 11699 stp x25, x26, [sp, 64] 11700 mov w25, w1 11701 mov x26, x2 11702 str w4, [x29, 116] 11703 stp x19, x20, [sp, 16] 11704 and w19, w0, 255 11705 stp x27, x28, [sp, 80] 11706 mov x27, x3 11707 stp x23, x24, [sp, 48] 11708 bl nandc_wait_flash_ready 11709 mov w0, w19 11710 bl zftl_flash_enter_slc_mode 11711 mov w0, w19 11712 bl zftl_flash_exit_slc_mode 11713 adrp x0, .LANCHOR7 11714 adrp x1, .LANCHOR16 11715 str x1, [x29, 120] 11716 ldr x22, [x0, #:lo12:.LANCHOR7] 11717 and x0, x19, 255 11718 add x21, x0, 8 11719 str x0, [x29, 104] 11720 ldrb w0, [x1, #:lo12:.LANCHOR16] 11721 add x21, x22, x21, lsl 8 11722 sub w0, w0, #67 11723 and w0, w0, 255 11724 cmp w0, 1 11725 bls .L1934 11726 adrp x0, .LANCHOR26 11727 ldrb w0, [x0, #:lo12:.LANCHOR26] 11728 cbz w0, .L1935 11729 mov w23, 1 11730 mov w0, 1 11731 bl nandc_set_if_mode 11732.L1918: 11733 and x0, x19, 255 11734 mov w1, 92 11735 add x0, x22, x0, lsl 8 11736 str w1, [x0, 2056] 11737 mov w1, 197 11738 str w1, [x0, 2056] 11739.L1917: 11740 sxtw x0, w19 11741 mov w20, 1 11742 add x0, x0, 8 11743 mov w24, -1 11744 add x0, x22, x0, lsl 8 11745 str x0, [x29, 96] 11746.L1919: 11747 adrp x0, .LANCHOR167 11748 ldrb w0, [x0, #:lo12:.LANCHOR167] 11749 add w0, w0, 1 11750 cmp w20, w0 11751 bcc .L1928 11752 mov w28, w24 11753.L1927: 11754 ldr x0, [x29, 120] 11755 mov w1, 0 11756 ldrb w0, [x0, #:lo12:.LANCHOR16] 11757 sub w0, w0, #67 11758 and w0, w0, 255 11759 cmp w0, 1 11760 mov x0, x21 11761 bhi .L1929 11762 bl sandisk_set_rr_para 11763.L1930: 11764 sxtw x19, w19 11765 mov w0, 255 11766 add x19, x19, 8 11767 add x22, x22, x19, lsl 8 11768 str w0, [x22, 8] 11769 adrp x0, .LANCHOR49 11770 ldrb w0, [x0, #:lo12:.LANCHOR49] 11771 add w0, w0, w0, lsl 1 11772 cmp w28, w0, lsr 2 11773 bcc .L1931 11774 cmn w28, #1 11775 mov w0, 256 11776 csel w28, w28, w0, eq 11777.L1931: 11778 cmp w28, 256 11779 ccmn w28, #1, 4, ne 11780 bne .L1932 11781 adrp x0, .LC113 11782 mov w4, w28 11783 mov w3, w20 11784 mov w2, w25 11785 mov w1, w20 11786 add x0, x0, :lo12:.LC113 11787 bl printf 11788.L1932: 11789 bl nandc_wait_flash_ready 11790 cbz w23, .L1916 11791 mov w0, 4 11792 bl nandc_set_if_mode 11793.L1916: 11794 mov w0, w28 11795 ldp x19, x20, [sp, 16] 11796 ldp x21, x22, [sp, 32] 11797 ldp x23, x24, [sp, 48] 11798 ldp x25, x26, [sp, 64] 11799 ldp x27, x28, [sp, 80] 11800 ldp x29, x30, [sp], 128 11801 ret 11802.L1935: 11803 mov w23, 0 11804 b .L1918 11805.L1934: 11806 mov w23, 0 11807 b .L1917 11808.L1928: 11809 ldr x0, [x29, 120] 11810 mov w1, w20 11811 ldrb w0, [x0, #:lo12:.LANCHOR16] 11812 sub w0, w0, #67 11813 and w0, w0, 255 11814 cmp w0, 1 11815 mov x0, x21 11816 bhi .L1920 11817 bl sandisk_set_rr_para 11818.L1921: 11819 ldr x0, [x29, 120] 11820 ldrb w0, [x0, #:lo12:.LANCHOR16] 11821 cmp w0, 34 11822 bne .L1922 11823 adrp x0, .LANCHOR167 11824 ldrb w0, [x0, #:lo12:.LANCHOR167] 11825 sub w0, w0, #3 11826 cmp w20, w0 11827 bne .L1922 11828 ldr x1, [x29, 96] 11829 mov w0, 179 11830 str w0, [x1, 8] 11831.L1922: 11832 ldr x0, [x29, 104] 11833 mov w1, 38 11834 ldr w4, [x29, 116] 11835 mov x3, x27 11836 mov x2, x26 11837 add x0, x22, x0, lsl 8 11838 str w1, [x0, 2056] 11839 mov w1, 93 11840 str w1, [x0, 2056] 11841 mov w1, w25 11842 mov w0, w19 11843 bl flash_read_page 11844 mov w28, w0 11845 cmn w0, #1 11846 beq .L1925 11847 cmn w24, #1 11848 csel w24, w24, w0, ne 11849 adrp x0, .LANCHOR164 11850 ldr x26, [x0, #:lo12:.LANCHOR164] 11851 adrp x0, .LANCHOR166 11852 ldr x27, [x0, #:lo12:.LANCHOR166] 11853 adrp x0, .LANCHOR49 11854 ldrb w0, [x0, #:lo12:.LANCHOR49] 11855 add w0, w0, w0, lsl 1 11856 cmp w28, w0, lsr 2 11857 bcc .L1927 11858.L1925: 11859 add w20, w20, 1 11860 b .L1919 11861.L1920: 11862 bl toshiba_set_rr_para 11863 b .L1921 11864.L1929: 11865 bl toshiba_set_rr_para 11866 b .L1930 11867 .size toshiba_read_retrial, .-toshiba_read_retrial 11868 .section .text.ymtc_3d_read_retrial,"ax",@progbits 11869 .align 2 11870 .global ymtc_3d_read_retrial 11871 .type ymtc_3d_read_retrial, %function 11872ymtc_3d_read_retrial: 11873 stp x29, x30, [sp, -112]! 11874 add x29, sp, 0 11875 stp x19, x20, [sp, 16] 11876 mov w19, -1 11877 stp x21, x22, [sp, 32] 11878 and w22, w0, 255 11879 stp x23, x24, [sp, 48] 11880 mov w23, w1 11881 stp x25, x26, [sp, 64] 11882 mov x24, x2 11883 stp x27, x28, [sp, 80] 11884 mov x25, x3 11885 mov w26, w4 11886 bl nandc_wait_flash_ready 11887 mov w0, w22 11888 bl zftl_flash_enter_slc_mode 11889 mov w0, w22 11890 bl zftl_flash_exit_slc_mode 11891 adrp x1, .LANCHOR7 11892 ubfiz x21, x22, 8, 8 11893 add x0, x21, 2048 11894 adrp x27, .LANCHOR49 11895 ldr x21, [x1, #:lo12:.LANCHOR7] 11896 mov w20, 1 11897 adrp x28, .LANCHOR164 11898 adrp x5, .LANCHOR166 11899 add x21, x21, x0 11900 add x27, x27, :lo12:.LANCHOR49 11901 tst x23, 50331648 11902 bne .L1958 11903.L1953: 11904 str x5, [x29, 104] 11905 mov w1, w20 11906 mov x0, x21 11907 bl ymtc_3d_set_slc_rr_para 11908 mov w4, w26 11909 mov x3, x25 11910 mov x2, x24 11911 mov w1, w23 11912 mov w0, w22 11913 bl flash_read_page 11914 ldr x5, [x29, 104] 11915 cmn w0, #1 11916 beq .L1950 11917 ldrb w1, [x27] 11918 cmn w19, #1 11919 csel w19, w19, w0, ne 11920 ldr x24, [x28, #:lo12:.LANCHOR164] 11921 ldr x25, [x5, #:lo12:.LANCHOR166] 11922 add w1, w1, w1, lsl 1 11923 cmp w0, w1, lsr 2 11924 bcc .L1961 11925.L1950: 11926 add w20, w20, 1 11927 cmp w20, 10 11928 bne .L1953 11929.L1952: 11930 mov w1, 0 11931 mov x0, x21 11932 bl ymtc_3d_set_slc_rr_para 11933.L1954: 11934 adrp x0, .LANCHOR49 11935 ldrb w0, [x0, #:lo12:.LANCHOR49] 11936 add w0, w0, w0, lsl 1 11937 cmp w19, w0, lsr 2 11938 bcc .L1959 11939 cmn w19, #1 11940 mov w0, 256 11941 csel w19, w19, w0, eq 11942.L1959: 11943 cmp w19, 256 11944 ccmn w19, #1, 4, ne 11945 bne .L1960 11946 adrp x0, .LC114 11947 mov w4, w19 11948 mov w3, w20 11949 mov w2, w23 11950 mov w1, w20 11951 add x0, x0, :lo12:.LC114 11952 bl printf 11953.L1960: 11954 bl nandc_wait_flash_ready 11955 mov w0, w19 11956 ldp x19, x20, [sp, 16] 11957 ldp x21, x22, [sp, 32] 11958 ldp x23, x24, [sp, 48] 11959 ldp x25, x26, [sp, 64] 11960 ldp x27, x28, [sp, 80] 11961 ldp x29, x30, [sp], 112 11962 ret 11963.L1961: 11964 mov w19, w0 11965 b .L1952 11966.L1958: 11967 str x5, [x29, 104] 11968 mov w1, w20 11969 mov x0, x21 11970 bl ymtc_3d_set_tlc_rr_para 11971 mov w4, w26 11972 mov x3, x25 11973 mov x2, x24 11974 mov w1, w23 11975 mov w0, w22 11976 bl flash_read_page 11977 ldr x5, [x29, 104] 11978 cmn w0, #1 11979 beq .L1955 11980 ldrb w1, [x27] 11981 cmn w19, #1 11982 csel w19, w19, w0, ne 11983 ldr x24, [x28, #:lo12:.LANCHOR164] 11984 ldr x25, [x5, #:lo12:.LANCHOR166] 11985 add w1, w1, w1, lsl 1 11986 cmp w0, w1, lsr 2 11987 bcc .L1962 11988.L1955: 11989 add w20, w20, 1 11990 cmp w20, 51 11991 bne .L1958 11992.L1957: 11993 mov w1, 0 11994 mov x0, x21 11995 bl ymtc_3d_set_tlc_rr_para 11996 b .L1954 11997.L1962: 11998 mov w19, w0 11999 b .L1957 12000 .size ymtc_3d_read_retrial, .-ymtc_3d_read_retrial 12001 .section .text.samsung_read_retrial,"ax",@progbits 12002 .align 2 12003 .global samsung_read_retrial 12004 .type samsung_read_retrial, %function 12005samsung_read_retrial: 12006 stp x29, x30, [sp, -112]! 12007 add x29, sp, 0 12008 stp x21, x22, [sp, 32] 12009 and w21, w0, 255 12010 mov x22, x2 12011 stp x19, x20, [sp, 16] 12012 str w4, [x29, 108] 12013 mov w20, w1 12014 stp x23, x24, [sp, 48] 12015 mov x23, x3 12016 stp x25, x26, [sp, 64] 12017 stp x27, x28, [sp, 80] 12018 bl nandc_wait_flash_ready 12019 mov w0, w21 12020 bl zftl_flash_enter_slc_mode 12021 mov w0, w21 12022 bl zftl_flash_exit_slc_mode 12023 adrp x0, .LANCHOR7 12024 tst x20, 50331648 12025 and x5, x21, 255 12026 ldr x0, [x0, #:lo12:.LANCHOR7] 12027 bne .L1978 12028 adrp x24, .LANCHOR168 12029 adrp x27, .LC115 12030 add x28, x0, x5, lsl 8 12031 add x24, x24, :lo12:.LANCHOR168 12032 add x27, x27, :lo12:.LC115 12033 mov x26, 0 12034 mov w25, -1 12035.L1983: 12036 mov w0, 239 12037 str w0, [x28, 2056] 12038 mov w0, 141 12039 str w0, [x28, 2052] 12040 add x0, x24, x26 12041 add w19, w26, 1 12042 ldrsb w0, [x0, 1] 12043 str w0, [x28, 2048] 12044 str wzr, [x28, 2048] 12045 str wzr, [x28, 2048] 12046 str wzr, [x28, 2048] 12047 bl nandc_wait_flash_ready 12048 ldr w4, [x29, 108] 12049 mov x3, x23 12050 mov x2, x22 12051 mov w1, w20 12052 mov w0, w21 12053 bl flash_read_page 12054 mov w4, w0 12055 adrp x0, .LANCHOR19 12056 ldr w0, [x0, #:lo12:.LANCHOR19] 12057 tbz x0, 4, .L1979 12058 mov w3, w4 12059 str w4, [x29, 104] 12060 mov w2, w20 12061 mov w1, w19 12062 mov x0, x27 12063 bl printf 12064 ldr w4, [x29, 104] 12065.L1979: 12066 cmn w4, #1 12067 beq .L1980 12068 adrp x0, .LANCHOR164 12069 cmn w25, #1 12070 csel w25, w25, w4, ne 12071 ldr x22, [x0, #:lo12:.LANCHOR164] 12072 adrp x0, .LANCHOR166 12073 ldr x23, [x0, #:lo12:.LANCHOR166] 12074 adrp x0, .LANCHOR49 12075 ldrb w0, [x0, #:lo12:.LANCHOR49] 12076 add w0, w0, w0, lsl 1 12077 cmp w4, w0, lsr 2 12078 bcc .L1992 12079.L1980: 12080 add x26, x26, 1 12081 cmp x26, 25 12082 bne .L1983 12083 mov w19, 26 12084.L1982: 12085 mov w0, 239 12086 str w0, [x28, 2056] 12087 mov w0, 141 12088 str w0, [x28, 2052] 12089 str wzr, [x28, 2048] 12090 str wzr, [x28, 2048] 12091 str wzr, [x28, 2048] 12092 str wzr, [x28, 2048] 12093.L2014: 12094 bl nandc_wait_flash_ready 12095 adrp x0, .LANCHOR49 12096 ldrb w0, [x0, #:lo12:.LANCHOR49] 12097 add w0, w0, w0, lsl 1 12098 cmp w25, w0, lsr 2 12099 bcc .L1990 12100 cmn w25, #1 12101 mov w0, 256 12102 csel w25, w25, w0, eq 12103.L1990: 12104 cmp w25, 256 12105 ccmn w25, #1, 4, ne 12106 bne .L1991 12107 adrp x0, .LC117 12108 mov w4, w25 12109 mov w3, w19 12110 mov w2, w20 12111 mov w1, w19 12112 add x0, x0, :lo12:.LC117 12113 bl printf 12114.L1991: 12115 bl nandc_wait_flash_ready 12116 mov w0, w25 12117 ldp x19, x20, [sp, 16] 12118 ldp x21, x22, [sp, 32] 12119 ldp x23, x24, [sp, 48] 12120 ldp x25, x26, [sp, 64] 12121 ldp x27, x28, [sp, 80] 12122 ldp x29, x30, [sp], 112 12123 ret 12124.L1992: 12125 mov w25, w4 12126 b .L1982 12127.L1978: 12128 adrp x7, .LANCHOR169 12129 add x7, x7, :lo12:.LANCHOR169 12130 adrp x24, .LC116 12131 add x28, x7, 4 12132 add x27, x0, x5, lsl 8 12133 add x24, x24, :lo12:.LC116 12134 mov w25, -1 12135 mov w19, 1 12136 mov w26, 137 12137.L1989: 12138 mov w0, 239 12139 str w0, [x27, 2056] 12140 str w26, [x27, 2052] 12141 ldrb w0, [x28] 12142 str w0, [x27, 2048] 12143 ldrb w0, [x28, 1] 12144 str w0, [x27, 2048] 12145 ldrb w0, [x28, 2] 12146 str w0, [x27, 2048] 12147 ldrb w0, [x28, 3] 12148 str w0, [x27, 2048] 12149 bl nandc_wait_flash_ready 12150 ldr w4, [x29, 108] 12151 mov x3, x23 12152 mov x2, x22 12153 mov w1, w20 12154 mov w0, w21 12155 bl flash_read_page 12156 mov w4, w0 12157 adrp x0, .LANCHOR19 12158 ldr w0, [x0, #:lo12:.LANCHOR19] 12159 tbz x0, 4, .L1985 12160 mov w3, w4 12161 str w4, [x29, 104] 12162 mov w2, w20 12163 mov w1, w19 12164 mov x0, x24 12165 bl printf 12166 ldr w4, [x29, 104] 12167.L1985: 12168 cmn w4, #1 12169 beq .L1986 12170 adrp x0, .LANCHOR164 12171 cmn w25, #1 12172 csel w25, w25, w4, ne 12173 ldr x22, [x0, #:lo12:.LANCHOR164] 12174 adrp x0, .LANCHOR166 12175 ldr x23, [x0, #:lo12:.LANCHOR166] 12176 adrp x0, .LANCHOR49 12177 ldrb w0, [x0, #:lo12:.LANCHOR49] 12178 add w0, w0, w0, lsl 1 12179 cmp w4, w0, lsr 2 12180 bcc .L1993 12181.L1986: 12182 add w19, w19, 1 12183 add x28, x28, 4 12184 cmp w19, 26 12185 bne .L1989 12186.L1988: 12187 mov w0, 239 12188 str w0, [x27, 2056] 12189 mov w0, 137 12190 str w0, [x27, 2052] 12191 str wzr, [x27, 2048] 12192 str wzr, [x27, 2048] 12193 str wzr, [x27, 2048] 12194 str wzr, [x27, 2048] 12195 b .L2014 12196.L1993: 12197 mov w25, w4 12198 b .L1988 12199 .size samsung_read_retrial, .-samsung_read_retrial 12200 .section .text.hynix_read_retrial,"ax",@progbits 12201 .align 2 12202 .global hynix_read_retrial 12203 .type hynix_read_retrial, %function 12204hynix_read_retrial: 12205 stp x29, x30, [sp, -128]! 12206 add x29, sp, 0 12207 stp x23, x24, [sp, 48] 12208 and x23, x0, 255 12209 adrp x0, .LANCHOR6 12210 stp x27, x28, [sp, 80] 12211 stp x21, x22, [sp, 32] 12212 mov w27, w4 12213 ldr x28, [x0, #:lo12:.LANCHOR6] 12214 mov w22, w1 12215 stp x25, x26, [sp, 64] 12216 mov x25, x2 12217 add x28, x28, 112 12218 stp x19, x20, [sp, 16] 12219 add x0, x28, x23 12220 mov x26, x3 12221 mov x21, x23 12222 mov w19, -1 12223 ldrb w24, [x28, 2] 12224 ldrb w20, [x0, 8] 12225 bl nandc_wait_flash_ready 12226 mov w0, w23 12227 bl zftl_flash_enter_slc_mode 12228 mov w0, w23 12229 bl zftl_flash_exit_slc_mode 12230 adrp x6, .LANCHOR49 12231 add x6, x6, :lo12:.LANCHOR49 12232 mov w5, 0 12233 adrp x7, .LANCHOR164 12234 adrp x8, .LANCHOR166 12235.L2016: 12236 cmp w5, w24 12237 bcc .L2021 12238.L2020: 12239 adrp x0, .LANCHOR49 12240 add x23, x28, x23 12241 ldrb w0, [x0, #:lo12:.LANCHOR49] 12242 strb w20, [x23, 8] 12243 add w0, w0, w0, lsl 1 12244 cmp w19, w0, lsr 2 12245 bcc .L2022 12246 cmn w19, #1 12247 mov w0, 256 12248 csel w19, w19, w0, eq 12249.L2022: 12250 cmp w19, 256 12251 ccmn w19, #1, 4, ne 12252 bne .L2023 12253 adrp x0, .LC118 12254 mov w4, w19 12255 mov w3, w5 12256 mov w2, w22 12257 mov w1, w5 12258 add x0, x0, :lo12:.LC118 12259 bl printf 12260.L2023: 12261 bl nandc_wait_flash_ready 12262 mov w0, w19 12263 ldp x19, x20, [sp, 16] 12264 ldp x21, x22, [sp, 32] 12265 ldp x23, x24, [sp, 48] 12266 ldp x25, x26, [sp, 64] 12267 ldp x27, x28, [sp, 80] 12268 ldp x29, x30, [sp], 128 12269 ret 12270.L2021: 12271 add w20, w20, 1 12272 stp x6, x8, [x29, 96] 12273 and w20, w20, 255 12274 str x7, [x29, 112] 12275 cmp w24, w20 12276 str w5, [x29, 124] 12277 csel w20, w20, wzr, hi 12278 mov w0, w21 12279 mov w1, w20 12280 bl hynix_set_rr_para 12281 mov w4, w27 12282 mov x3, x26 12283 mov x2, x25 12284 mov w1, w22 12285 mov w0, w21 12286 bl flash_read_page 12287 ldr w5, [x29, 124] 12288 cmn w0, #1 12289 ldp x6, x8, [x29, 96] 12290 ldr x7, [x29, 112] 12291 beq .L2018 12292 ldrb w1, [x6] 12293 cmn w19, #1 12294 csel w19, w19, w0, ne 12295 ldr x25, [x7, #:lo12:.LANCHOR164] 12296 ldr x26, [x8, #:lo12:.LANCHOR166] 12297 add w1, w1, w1, lsl 1 12298 cmp w0, w1, lsr 2 12299 bcc .L2024 12300.L2018: 12301 add w5, w5, 1 12302 b .L2016 12303.L2024: 12304 mov w19, w0 12305 b .L2020 12306 .size hynix_read_retrial, .-hynix_read_retrial 12307 .section .text.flash_ddr_tuning_read,"ax",@progbits 12308 .align 2 12309 .global flash_ddr_tuning_read 12310 .type flash_ddr_tuning_read, %function 12311flash_ddr_tuning_read: 12312 stp x29, x30, [sp, -144]! 12313 add x29, sp, 0 12314 stp x19, x20, [sp, 16] 12315 and w20, w0, 255 12316 stp x21, x22, [sp, 32] 12317 mov w22, w1 12318 stp x23, x24, [sp, 48] 12319 mov x23, x2 12320 stp x25, x26, [sp, 64] 12321 mov x24, x3 12322 stp x27, x28, [sp, 80] 12323 adrp x25, .LANCHOR49 12324 str w4, [x29, 136] 12325 bl nandc_get_ddr_para 12326 add x25, x25, :lo12:.LANCHOR49 12327 str w0, [x29, 132] 12328 adrp x0, .LANCHOR19 12329 add x0, x0, :lo12:.LANCHOR19 12330 mov w28, 0 12331 str x0, [x29, 120] 12332 mov w26, 0 12333 adrp x0, .LC119 12334 mov w27, 0 12335 add x0, x0, :lo12:.LC119 12336 mov w19, 1024 12337 mov w21, -1 12338 mov w7, 6 12339 str wzr, [x29, 140] 12340 str x0, [x29, 112] 12341.L2040: 12342 mov w0, w7 12343 str w7, [x29, 128] 12344 bl nandc_set_ddr_para 12345 ldr w4, [x29, 136] 12346 mov x3, x24 12347 mov x2, x23 12348 mov w1, w22 12349 mov w0, w20 12350 bl flash_read_page 12351 mov w4, w0 12352 ldr x0, [x29, 120] 12353 ldr w7, [x29, 128] 12354 ldr w0, [x0] 12355 tbz x0, 4, .L2035 12356 ldr x0, [x29, 112] 12357 mov w3, w4 12358 mov w1, w7 12359 str w4, [x29, 108] 12360 str w7, [x29, 128] 12361 mov w2, w22 12362 bl printf 12363 ldr w4, [x29, 108] 12364 ldr w7, [x29, 128] 12365.L2035: 12366 add w0, w19, 1 12367 cmp w4, w0 12368 bhi .L2036 12369 adrp x0, .LANCHOR164 12370 ldr x23, [x0, #:lo12:.LANCHOR164] 12371 adrp x0, .LANCHOR166 12372 ldr x24, [x0, #:lo12:.LANCHOR166] 12373 ldrb w0, [x25] 12374 cmp w4, w0, lsr 2 12375 bcs .L2046 12376 add w27, w27, 1 12377 cmp w27, 7 12378 bls .L2046 12379 sub w28, w7, w27 12380 mov w19, w4 12381 mov w21, 0 12382.L2038: 12383 ldr w0, [x29, 140] 12384 cmp w27, w26 12385 csel w28, w28, w0, cs 12386.L2039: 12387 cbz w28, .L2041 12388 adrp x0, .LANCHOR49 12389 mov w1, 3 12390 ldrb w0, [x0, #:lo12:.LANCHOR49] 12391 udiv w0, w0, w1 12392 cmp w0, w19 12393 bls .L2041 12394 mov w1, w28 12395 adrp x0, .LC120 12396 add x0, x0, :lo12:.LC120 12397 bl printf 12398 mov w0, w28 12399.L2060: 12400 bl nandc_set_ddr_para 12401 cbz w21, .L2034 12402 adrp x25, .LANCHOR48 12403 ldrb w0, [x25, #:lo12:.LANCHOR48] 12404 tbz x0, 0, .L2034 12405 mov w2, w22 12406 mov w1, w20 12407 adrp x0, .LC121 12408 add x0, x0, :lo12:.LC121 12409 bl printf 12410 mov w0, w20 12411 bl flash_reset 12412 mov w0, 1 12413 bl flash_set_interface_mode 12414 mov w0, 1 12415 bl nandc_set_if_mode 12416 adrp x0, .LANCHOR33 12417 add x0, x0, :lo12:.LANCHOR33 12418 mov w1, 2 12419 strb w1, [x0, w20, sxtw] 12420 mov w0, w20 12421 bl zftl_flash_enter_slc_mode 12422 ldr w4, [x29, 136] 12423 mov x3, x24 12424 mov x2, x23 12425 mov w1, w22 12426 mov w0, w20 12427 bl flash_read_page 12428 mov w19, w0 12429 mov w3, w0 12430 mov w2, w22 12431 mov w1, w20 12432 adrp x0, .LC122 12433 add x0, x0, :lo12:.LC122 12434 bl printf 12435 adrp x0, .LANCHOR49 12436 ldrb w0, [x0, #:lo12:.LANCHOR49] 12437 cmp w19, w0 12438 bhi .L2048 12439 adrp x1, .LANCHOR170 12440 ldr w0, [x1, #:lo12:.LANCHOR170] 12441 add w0, w0, 1 12442 str w0, [x1, #:lo12:.LANCHOR170] 12443 cmp w0, 100 12444 bls .L2044 12445 adrp x0, .LANCHOR26 12446 strb wzr, [x0, #:lo12:.LANCHOR26] 12447.L2034: 12448 mov w0, w19 12449 ldp x19, x20, [sp, 16] 12450 ldp x21, x22, [sp, 32] 12451 ldp x23, x24, [sp, 48] 12452 ldp x25, x26, [sp, 64] 12453 ldp x27, x28, [sp, 80] 12454 ldp x29, x30, [sp], 144 12455 ret 12456.L2036: 12457 cmp w27, w26 12458 bls .L2047 12459 sub w0, w28, w27 12460 str w0, [x29, 140] 12461 cmp w27, 7 12462 bhi .L2039 12463 mov w26, w27 12464.L2047: 12465 mov w27, 0 12466 b .L2037 12467.L2046: 12468 mov w28, w7 12469 mov w19, w4 12470 mov w21, 0 12471.L2037: 12472 add w7, w7, 2 12473 cmp w7, 50 12474 bne .L2040 12475 b .L2038 12476.L2041: 12477 ldrb w0, [x29, 132] 12478 b .L2060 12479.L2048: 12480 mov w19, w21 12481.L2044: 12482 ldrb w0, [x25, #:lo12:.LANCHOR48] 12483 bl flash_set_interface_mode 12484 ldrb w0, [x25, #:lo12:.LANCHOR48] 12485 bl nandc_set_if_mode 12486 b .L2034 12487 .size flash_ddr_tuning_read, .-flash_ddr_tuning_read 12488 .section .text.flash_read_page_en,"ax",@progbits 12489 .align 2 12490 .global flash_read_page_en 12491 .type flash_read_page_en, %function 12492flash_read_page_en: 12493 stp x29, x30, [sp, -80]! 12494 add x29, sp, 0 12495 stp x19, x20, [sp, 16] 12496 and w20, w0, 255 12497 adrp x0, .LANCHOR23 12498 stp x23, x24, [sp, 48] 12499 stp x21, x22, [sp, 32] 12500 mov w19, w1 12501 str x25, [sp, 64] 12502 mov x22, x2 12503 ldrb w1, [x0, #:lo12:.LANCHOR23] 12504 mov x23, x3 12505 mov w24, w4 12506 mov x25, x0 12507 cmp w1, w20 12508 bhi .L2062 12509 adrp x1, .LANCHOR171 12510 adrp x0, .LC0 12511 mov w2, 431 12512 add x1, x1, :lo12:.LANCHOR171 12513 add x0, x0, :lo12:.LC0 12514 bl printf 12515.L2062: 12516 adrp x0, .LANCHOR29 12517 add x0, x0, :lo12:.LANCHOR29 12518 ldrb w4, [x25, #:lo12:.LANCHOR23] 12519 ldrb w21, [x0, w20, sxtw] 12520 cmp w20, w4 12521 bcc .L2063 12522 adrp x0, .LANCHOR19 12523 ldr w0, [x0, #:lo12:.LANCHOR19] 12524 tbnz x0, 6, .L2064 12525.L2088: 12526 mov w0, -1 12527.L2061: 12528 ldp x19, x20, [sp, 16] 12529 ldp x21, x22, [sp, 32] 12530 ldp x23, x24, [sp, 48] 12531 ldr x25, [sp, 64] 12532 ldp x29, x30, [sp], 80 12533 ret 12534.L2064: 12535 mov w3, w19 12536 mov w2, w20 12537 mov w1, w21 12538 adrp x0, .LC123 12539 add x0, x0, :lo12:.LC123 12540 bl printf 12541 b .L2088 12542.L2063: 12543 tst x19, 50331648 12544 bne .L2066 12545 adrp x0, .LANCHOR0 12546 adrp x1, .LANCHOR1 12547 ldrb w0, [x0, #:lo12:.LANCHOR0] 12548 cbz w0, .L2067 12549 ldrb w0, [x1, #:lo12:.LANCHOR1] 12550 cbz w0, .L2066 12551.L2067: 12552 adrp x0, .LANCHOR2 12553 ldrb w1, [x1, #:lo12:.LANCHOR1] 12554 ldrh w2, [x0, #:lo12:.LANCHOR2] 12555 udiv w0, w19, w2 12556 mul w0, w0, w2 12557 sub w19, w19, w0 12558 cbz w1, .L2068 12559 add w19, w0, w19, lsl 1 12560.L2066: 12561 mov w4, w24 12562 mov x3, x23 12563 mov x2, x22 12564 mov w1, w19 12565 mov w0, w21 12566 bl flash_read_page 12567 cmn w0, #1 12568 bne .L2061 12569 adrp x20, .LANCHOR51 12570 ldrb w25, [x20, #:lo12:.LANCHOR51] 12571 cbnz w25, .L2069 12572.L2072: 12573 adrp x0, .LANCHOR172 12574 ldr x5, [x0, #:lo12:.LANCHOR172] 12575 cbnz x5, .L2070 12576.L2071: 12577 ldrb w4, [x20, #:lo12:.LANCHOR51] 12578 mov w3, -1 12579 mov w2, w19 12580 mov w1, 0 12581 adrp x0, .LC124 12582 add x0, x0, :lo12:.LC124 12583 bl printf 12584 adrp x0, .LANCHOR26 12585 ldrb w0, [x0, #:lo12:.LANCHOR26] 12586 cbz w0, .L2088 12587 mov w4, w24 12588 mov x3, x23 12589 mov x2, x22 12590 mov w1, w19 12591 mov w0, w21 12592 ldr x25, [sp, 64] 12593 ldp x19, x20, [sp, 16] 12594 ldp x21, x22, [sp, 32] 12595 ldp x23, x24, [sp, 48] 12596 ldp x29, x30, [sp], 80 12597 b flash_ddr_tuning_read 12598.L2068: 12599 adrp x1, .LANCHOR3 12600 add x1, x1, :lo12:.LANCHOR3 12601 ldrh w19, [x1, w19, uxtw 1] 12602 add w19, w19, w0 12603 b .L2066 12604.L2069: 12605 strb wzr, [x20, #:lo12:.LANCHOR51] 12606 mov w4, w24 12607 mov x3, x23 12608 mov x2, x22 12609 mov w1, w19 12610 mov w0, w21 12611 bl flash_read_page 12612 strb w25, [x20, #:lo12:.LANCHOR51] 12613 cmn w0, #1 12614 beq .L2072 12615 b .L2061 12616.L2070: 12617 mov w4, w24 12618 mov x3, x23 12619 mov x2, x22 12620 mov w1, w19 12621 mov w0, w21 12622 blr x5 12623 cmn w0, #1 12624 beq .L2071 12625 b .L2061 12626 .size flash_read_page_en, .-flash_read_page_en 12627 .section .text.flash_get_last_written_page,"ax",@progbits 12628 .align 2 12629 .global flash_get_last_written_page 12630 .type flash_get_last_written_page, %function 12631flash_get_last_written_page: 12632 stp x29, x30, [sp, -96]! 12633 add x29, sp, 0 12634 stp x23, x24, [sp, 48] 12635 and w23, w0, 255 12636 adrp x0, .LANCHOR145 12637 stp x19, x20, [sp, 16] 12638 stp x25, x26, [sp, 64] 12639 mov x24, x2 12640 ldrh w19, [x0, #:lo12:.LANCHOR145] 12641 adrp x0, .LANCHOR32+26 12642 stp x21, x22, [sp, 32] 12643 and w21, w1, 65535 12644 ldrh w26, [x0, #:lo12:.LANCHOR32+26] 12645 sub w19, w19, #1 12646 sxth w19, w19 12647 stp x27, x28, [sp, 80] 12648 mov x22, x3 12649 mov w25, w4 12650 mov w0, w23 12651 mul w26, w26, w21 12652 add w1, w19, w26 12653 bl flash_read_page_en 12654 cmp w0, 512 12655 bne .L2090 12656 mov w27, 0 12657 mov w28, 2 12658.L2091: 12659 cmp w27, w19 12660 ble .L2094 12661.L2090: 12662 adrp x0, .LANCHOR19 12663 ldr w0, [x0, #:lo12:.LANCHOR19] 12664 tbz x0, 12, .L2095 12665 ldr w3, [x22] 12666 adrp x0, .LC125 12667 mov w2, w19 12668 mov w1, w21 12669 add x0, x0, :lo12:.LC125 12670 bl printf 12671.L2095: 12672 mov w0, w19 12673 ldp x19, x20, [sp, 16] 12674 ldp x21, x22, [sp, 32] 12675 ldp x23, x24, [sp, 48] 12676 ldp x25, x26, [sp, 64] 12677 ldp x27, x28, [sp, 80] 12678 ldp x29, x30, [sp], 96 12679 ret 12680.L2094: 12681 add w20, w27, w19 12682 mov w4, w25 12683 mov x3, x22 12684 mov x2, x24 12685 mov w0, w23 12686 sdiv w20, w20, w28 12687 add w1, w26, w20, sxth 12688 bl flash_read_page_en 12689 cmp w0, 512 12690 bne .L2092 12691 sub w19, w20, #1 12692 sxth w19, w19 12693 b .L2091 12694.L2092: 12695 add w20, w20, 1 12696 sxth w27, w20 12697 b .L2091 12698 .size flash_get_last_written_page, .-flash_get_last_written_page 12699 .section .text.flash_get_last_written_page_ext,"ax",@progbits 12700 .align 2 12701 .global flash_get_last_written_page_ext 12702 .type flash_get_last_written_page_ext, %function 12703flash_get_last_written_page_ext: 12704 adrp x4, .LANCHOR31 12705 mov w5, 24 12706 and w0, w0, 65535 12707 mov w6, 1 12708 ldrb w4, [x4, #:lo12:.LANCHOR31] 12709 sub w5, w5, w4 12710 adrp x4, .LANCHOR80 12711 ldrh w4, [x4, #:lo12:.LANCHOR80] 12712 sub w5, w5, w4 12713 mov w4, w3 12714 mov x3, x2 12715 mov x2, x1 12716 lsl w6, w6, w5 12717 sub w6, w6, #1 12718 and w1, w6, w0 12719 asr w0, w0, w5 12720 b flash_get_last_written_page 12721 .size flash_get_last_written_page_ext, .-flash_get_last_written_page_ext 12722 .section .text.flash_ddr_para_scan,"ax",@progbits 12723 .align 2 12724 .global flash_ddr_para_scan 12725 .type flash_ddr_para_scan, %function 12726flash_ddr_para_scan: 12727 stp x29, x30, [sp, -80]! 12728 add x29, sp, 0 12729 stp x19, x20, [sp, 16] 12730 adrp x20, .LANCHOR48 12731 stp x21, x22, [sp, 32] 12732 and w22, w0, 255 12733 ldrb w0, [x20, #:lo12:.LANCHOR48] 12734 adrp x19, .LANCHOR26 12735 stp x23, x24, [sp, 48] 12736 mov w21, 1 12737 mov w23, w1 12738 str x25, [sp, 64] 12739 strb w21, [x19, #:lo12:.LANCHOR26] 12740 adrp x24, .LANCHOR174 12741 bl flash_set_interface_mode 12742 adrp x25, .LANCHOR173 12743 ldrb w0, [x20, #:lo12:.LANCHOR48] 12744 bl nandc_set_if_mode 12745 ldr x3, [x25, #:lo12:.LANCHOR173] 12746 mov w4, 4 12747 ldr x2, [x24, #:lo12:.LANCHOR174] 12748 mov w1, w23 12749 mov w0, w22 12750 bl flash_ddr_tuning_read 12751 ldr x3, [x25, #:lo12:.LANCHOR173] 12752 mov w4, 4 12753 ldr x2, [x24, #:lo12:.LANCHOR174] 12754 mov w1, w23 12755 mov w0, w22 12756 bl flash_read_page 12757 cmn w0, #1 12758 mov x0, x19 12759 bne .L2102 12760 ldrb w1, [x20, #:lo12:.LANCHOR48] 12761 tbz x1, 0, .L2102 12762 mov w0, 1 12763 bl flash_set_interface_mode 12764 mov w0, w21 12765 bl nandc_set_if_mode 12766 strb wzr, [x19, #:lo12:.LANCHOR26] 12767.L2103: 12768 mov w0, 0 12769 ldr x25, [sp, 64] 12770 ldp x19, x20, [sp, 16] 12771 ldp x21, x22, [sp, 32] 12772 ldp x23, x24, [sp, 48] 12773 ldp x29, x30, [sp], 80 12774 ret 12775.L2102: 12776 mov w1, 1 12777 strb w1, [x0, #:lo12:.LANCHOR26] 12778 b .L2103 12779 .size flash_ddr_para_scan, .-flash_ddr_para_scan 12780 .section .text.flash_prog_page,"ax",@progbits 12781 .align 2 12782 .global flash_prog_page 12783 .type flash_prog_page, %function 12784flash_prog_page: 12785 stp x29, x30, [sp, -80]! 12786 add x29, sp, 0 12787 stp x21, x22, [sp, 32] 12788 and w21, w0, 255 12789 adrp x0, .LANCHOR7 12790 stp x25, x26, [sp, 64] 12791 stp x19, x20, [sp, 16] 12792 mov w20, 24 12793 ldr x26, [x0, #:lo12:.LANCHOR7] 12794 adrp x0, .LANCHOR31 12795 mov w22, w1 12796 stp x23, x24, [sp, 48] 12797 ldrb w0, [x0, #:lo12:.LANCHOR31] 12798 mov x24, x2 12799 mov x25, x3 12800 and x19, x21, 255 12801 sub w0, w20, w0 12802 mov w20, 1 12803 add x23, x19, 8 12804 lsl w20, w20, w0 12805 sub w20, w20, #1 12806 and w20, w20, w1 12807 bl nandc_wait_flash_ready 12808 mov w0, w21 12809 bl hynix_reconfig_rr_para 12810 mov w0, w21 12811 bl nandc_cs 12812 add x23, x26, x23, lsl 8 12813 mov w0, w21 12814 tst x22, 50331648 12815 bne .L2109 12816 bl zftl_flash_enter_slc_mode 12817.L2110: 12818 add x19, x26, x19, lsl 8 12819 mov w0, 128 12820 str w0, [x19, 2056] 12821 and w0, w20, 255 12822 str wzr, [x19, 2052] 12823 str wzr, [x19, 2052] 12824 str w0, [x19, 2052] 12825 lsr w0, w20, 8 12826 str w0, [x19, 2052] 12827 lsr w0, w20, 16 12828 str w0, [x19, 2052] 12829 adrp x0, .LANCHOR30 12830 ldrb w0, [x0, #:lo12:.LANCHOR30] 12831 cbz w0, .L2111 12832 lsr w0, w20, 24 12833 str w0, [x19, 2052] 12834.L2111: 12835 mov w0, w20 12836 bl nandc_set_seed 12837 adrp x0, .LANCHOR32+9 12838 mov x4, x25 12839 mov x3, x24 12840 mov w1, 1 12841 ldrb w2, [x0, #:lo12:.LANCHOR32+9] 12842 mov w0, w21 12843 bl nandc_xfer 12844 mov w0, 16 12845 str w0, [x19, 2056] 12846 bl nandc_wait_flash_ready 12847 mov x0, x23 12848 bl flash_read_status 12849 mov w3, w0 12850 bl nandc_de_cs.constprop.31 12851 and w2, w3, 4 12852 tbz x3, 2, .L2108 12853 mov w1, w22 12854 adrp x0, .LC126 12855 add x0, x0, :lo12:.LC126 12856 bl printf 12857 mov w2, -1 12858.L2108: 12859 mov w0, w2 12860 ldp x19, x20, [sp, 16] 12861 ldp x21, x22, [sp, 32] 12862 ldp x23, x24, [sp, 48] 12863 ldp x25, x26, [sp, 64] 12864 ldp x29, x30, [sp], 80 12865 ret 12866.L2109: 12867 bl zftl_flash_exit_slc_mode 12868 b .L2110 12869 .size flash_prog_page, .-flash_prog_page 12870 .section .text.flash_test_blk,"ax",@progbits 12871 .align 2 12872 .global flash_test_blk 12873 .type flash_test_blk, %function 12874flash_test_blk: 12875 stp x29, x30, [sp, -64]! 12876 mov w2, 32 12877 add x29, sp, 0 12878 stp x21, x22, [sp, 32] 12879 adrp x22, .LANCHOR164 12880 stp x19, x20, [sp, 16] 12881 and w20, w0, 255 12882 ldr x0, [x22, #:lo12:.LANCHOR164] 12883 adrp x21, .LANCHOR166 12884 and w19, w1, 65535 12885 str x23, [sp, 48] 12886 mov w1, 165 12887 bl ftl_memset 12888 ldr x0, [x21, #:lo12:.LANCHOR166] 12889 mov w2, 8 12890 mov w1, 90 12891 bl ftl_memset 12892 adrp x0, .LANCHOR2 12893 ldrh w0, [x0, #:lo12:.LANCHOR2] 12894 mul w19, w0, w19 12895 mov w0, w20 12896 mov w1, w19 12897 bl flash_erase_block 12898 cmn w0, #1 12899 bne .L2121 12900.L2123: 12901 mov w21, -1 12902.L2122: 12903 mov w1, w19 12904 mov w0, w20 12905 bl flash_erase_block 12906 ldr x23, [sp, 48] 12907 mov w0, w21 12908 ldp x19, x20, [sp, 16] 12909 ldp x21, x22, [sp, 32] 12910 ldp x29, x30, [sp], 64 12911 ret 12912.L2121: 12913 adrp x23, .LANCHOR32 12914 add x23, x23, :lo12:.LANCHOR32 12915 ldr x3, [x21, #:lo12:.LANCHOR166] 12916 mov w1, w19 12917 ldr x2, [x22, #:lo12:.LANCHOR164] 12918 mov w0, w20 12919 ldrb w4, [x23, 9] 12920 bl flash_prog_page 12921 cmn w0, #1 12922 beq .L2123 12923 ldrb w4, [x23, 9] 12924 mov w1, w19 12925 ldr x3, [x21, #:lo12:.LANCHOR166] 12926 mov w0, w20 12927 ldr x2, [x22, #:lo12:.LANCHOR164] 12928 bl flash_read_page_en 12929 cmn w0, #1 12930 beq .L2123 12931 ldr x0, [x22, #:lo12:.LANCHOR164] 12932 ldr w1, [x0] 12933 mov w0, 42405 12934 movk w0, 0xa5a5, lsl 16 12935 cmp w1, w0 12936 bne .L2123 12937 ldr x0, [x21, #:lo12:.LANCHOR166] 12938 ldr w1, [x0] 12939 mov w0, 23130 12940 movk w0, 0x5a5a, lsl 16 12941 cmp w1, w0 12942 csetm w21, ne 12943 b .L2122 12944 .size flash_test_blk, .-flash_test_blk 12945 .section .text.id_block_prog_msb_ff_data,"ax",@progbits 12946 .align 2 12947 .global id_block_prog_msb_ff_data 12948 .type id_block_prog_msb_ff_data, %function 12949id_block_prog_msb_ff_data: 12950 stp x29, x30, [sp, -80]! 12951 add x29, sp, 0 12952 stp x21, x22, [sp, 32] 12953 and w22, w0, 255 12954 adrp x0, .LANCHOR24 12955 stp x19, x20, [sp, 16] 12956 stp x23, x24, [sp, 48] 12957 ldrb w0, [x0, #:lo12:.LANCHOR24] 12958 str x25, [sp, 64] 12959 cbnz w0, .L2131 12960 adrp x20, .LANCHOR32 12961 add x20, x20, :lo12:.LANCHOR32 12962 ldrb w0, [x20, 19] 12963 sub w0, w0, #5 12964 and w3, w0, 255 12965 cmp w3, 63 12966 bhi .L2131 12967 and w19, w2, 65535 12968 mov x2, 16391 12969 movk x2, 0x4000, lsl 16 12970 movk x2, 0x8000, lsl 48 12971 lsr x0, x2, x3 12972 tbz x0, 0, .L2131 12973 adrp x21, .LANCHOR143 12974 mov w23, w1 12975 add x21, x21, :lo12:.LANCHOR143 12976 mov w25, 65535 12977 adrp x24, .LANCHOR164 12978.L2133: 12979 ldrh w0, [x20, 10] 12980 cmp w0, w19 12981 bhi .L2134 12982.L2131: 12983 ldp x19, x20, [sp, 16] 12984 ldp x21, x22, [sp, 32] 12985 ldp x23, x24, [sp, 48] 12986 ldr x25, [sp, 64] 12987 ldp x29, x30, [sp], 80 12988 ret 12989.L2134: 12990 ldrh w0, [x21, w19, sxtw 1] 12991 cmp w0, w25 12992 bne .L2131 12993 ldr x0, [x24, #:lo12:.LANCHOR164] 12994 mov w2, 16384 12995 mov w1, 255 12996 bl ftl_memset 12997 ldr x3, [x24, #:lo12:.LANCHOR164] 12998 add w1, w19, w23 12999 ldrb w4, [x20, 9] 13000 add w19, w19, 1 13001 mov x2, x3 13002 mov w0, w22 13003 and w19, w19, 65535 13004 bl flash_prog_page 13005 b .L2133 13006 .size id_block_prog_msb_ff_data, .-id_block_prog_msb_ff_data 13007 .section .text.flash_start_one_pass_page_prog,"ax",@progbits 13008 .align 2 13009 .global flash_start_one_pass_page_prog 13010 .type flash_start_one_pass_page_prog, %function 13011flash_start_one_pass_page_prog: 13012 stp x29, x30, [sp, -32]! 13013 and w8, w0, 255 13014 and w7, w3, 255 13015 adrp x0, .LANCHOR7 13016 add x29, sp, 0 13017 stp x19, x20, [sp, 16] 13018 and w20, w2, 255 13019 ldr x19, [x0, #:lo12:.LANCHOR7] 13020 mov w0, w7 13021 bl nandc_cs 13022 cbz w8, .L2137 13023 sxtw x0, w7 13024 add x0, x0, 8 13025 add x0, x19, x0, lsl 8 13026 str w8, [x0, 8] 13027.L2137: 13028 ubfiz x0, x7, 8, 8 13029 add x19, x19, x0 13030 mov w0, 128 13031 str w0, [x19, 2056] 13032 and w0, w4, 255 13033 str wzr, [x19, 2052] 13034 str wzr, [x19, 2052] 13035 str w0, [x19, 2052] 13036 lsr w0, w4, 8 13037 str w0, [x19, 2052] 13038 lsr w0, w4, 16 13039 str w0, [x19, 2052] 13040 adrp x0, .LANCHOR30 13041 ldrb w0, [x0, #:lo12:.LANCHOR30] 13042 cbz w0, .L2138 13043 lsr w0, w4, 24 13044 str w0, [x19, 2052] 13045.L2138: 13046 mov w0, w4 13047 bl nandc_set_seed 13048 adrp x0, .LANCHOR32+9 13049 mov x4, x6 13050 mov x3, x5 13051 mov w1, 1 13052 ldrb w2, [x0, #:lo12:.LANCHOR32+9] 13053 mov w0, w7 13054 bl nandc_xfer 13055 str w20, [x19, 2056] 13056 ldp x19, x20, [sp, 16] 13057 ldp x29, x30, [sp], 32 13058 ret 13059 .size flash_start_one_pass_page_prog, .-flash_start_one_pass_page_prog 13060 .section .text.flash_dual_page_prog,"ax",@progbits 13061 .align 2 13062 .global flash_dual_page_prog 13063 .type flash_dual_page_prog, %function 13064flash_dual_page_prog: 13065 stp x29, x30, [sp, -96]! 13066 add x29, sp, 0 13067 stp x19, x20, [sp, 16] 13068 and w20, w0, 255 13069 stp x25, x26, [sp, 64] 13070 mov x25, x2 13071 adrp x2, .LANCHOR7 13072 stp x21, x22, [sp, 32] 13073 ubfiz x22, x20, 8, 8 13074 stp x27, x28, [sp, 80] 13075 add x0, x22, 2048 13076 ldr x22, [x2, #:lo12:.LANCHOR7] 13077 mov w19, 24 13078 adrp x27, .LANCHOR19 13079 add x22, x22, x0 13080 adrp x0, .LANCHOR31 13081 stp x23, x24, [sp, 48] 13082 mov w21, w1 13083 ldrb w0, [x0, #:lo12:.LANCHOR31] 13084 mov x26, x3 13085 mov x23, x4 13086 mov x24, x5 13087 sub w0, w19, w0 13088 mov w19, 1 13089 ubfx x28, x21, 24, 2 13090 lsl w19, w19, w0 13091 ldr w0, [x27, #:lo12:.LANCHOR19] 13092 sub w19, w19, #1 13093 and w19, w19, w1 13094 tbz x0, 4, .L2147 13095 adrp x0, .LC127 13096 mov w3, w6 13097 mov w2, w28 13098 add x0, x0, :lo12:.LC127 13099 bl printf 13100.L2147: 13101 bl nandc_wait_flash_ready 13102 mov w0, w20 13103 bl nandc_cs 13104 mov w0, w20 13105 cbnz w28, .L2148 13106 bl zftl_flash_enter_slc_mode 13107.L2149: 13108 mov x6, x26 13109 mov x5, x25 13110 mov w4, w19 13111 mov w3, w20 13112 mov w2, 16 13113 mov w1, 0 13114 mov w0, 0 13115 bl flash_start_one_pass_page_prog 13116 bl nandc_wait_flash_ready 13117 mov x6, x24 13118 mov x5, x23 13119 add w4, w19, 1 13120 mov w3, w20 13121 mov w2, 16 13122 mov w1, 0 13123 mov w0, 0 13124 bl flash_start_one_pass_page_prog 13125 bl nandc_wait_flash_ready 13126 mov x0, x22 13127 bl flash_read_status 13128 mov w3, w0 13129 bl nandc_de_cs.constprop.31 13130 and w2, w3, 4 13131 tbz x3, 2, .L2146 13132 ldr w0, [x27, #:lo12:.LANCHOR19] 13133 tbz x0, 12, .L2151 13134 adrp x0, .LC126 13135 mov w1, w21 13136 add x0, x0, :lo12:.LC126 13137 bl printf 13138.L2151: 13139 mov w2, -1 13140.L2146: 13141 mov w0, w2 13142 ldp x19, x20, [sp, 16] 13143 ldp x21, x22, [sp, 32] 13144 ldp x23, x24, [sp, 48] 13145 ldp x25, x26, [sp, 64] 13146 ldp x27, x28, [sp, 80] 13147 ldp x29, x30, [sp], 96 13148 ret 13149.L2148: 13150 bl zftl_flash_exit_slc_mode 13151 b .L2149 13152 .size flash_dual_page_prog, .-flash_dual_page_prog 13153 .section .text.ymtc_flash_tlc_page_prog,"ax",@progbits 13154 .align 2 13155 .global ymtc_flash_tlc_page_prog 13156 .type ymtc_flash_tlc_page_prog, %function 13157ymtc_flash_tlc_page_prog: 13158 stp x29, x30, [sp, -80]! 13159 add x29, sp, 0 13160 stp x19, x20, [sp, 16] 13161 and w20, w0, 255 13162 str x25, [sp, 64] 13163 mov w25, w1 13164 adrp x1, .LANCHOR7 13165 stp x21, x22, [sp, 32] 13166 ubfiz x22, x20, 8, 8 13167 mov w19, 24 13168 add x0, x22, 2048 13169 ldr x22, [x1, #:lo12:.LANCHOR7] 13170 mov w21, 1 13171 stp x23, x24, [sp, 48] 13172 add x22, x22, x0 13173 adrp x0, .LANCHOR31 13174 mov x23, x2 13175 mov x24, x3 13176 ldrb w0, [x0, #:lo12:.LANCHOR31] 13177 sub w19, w19, w0 13178 bl nandc_wait_flash_ready 13179 lsl w19, w21, w19 13180 mov w0, w20 13181 sub w19, w19, #1 13182 bl nandc_cs 13183 and w19, w19, w25 13184 mov w0, w20 13185 bl zftl_flash_exit_slc_mode 13186 mov x6, x24 13187 mov x5, x23 13188 mov w4, w19 13189 mov w3, w20 13190 mov w1, w21 13191 mov w2, 26 13192 mov w0, 0 13193 bl flash_start_one_pass_page_prog 13194 bl nandc_wait_flash_ready 13195 mov x6, x24 13196 mov x5, x23 13197 add w4, w19, w21 13198 mov w3, w20 13199 mov w1, w21 13200 mov w2, 26 13201 mov w0, 0 13202 bl flash_start_one_pass_page_prog 13203 bl nandc_wait_flash_ready 13204 mov x6, x24 13205 mov x5, x23 13206 add w4, w19, 2 13207 mov w3, w20 13208 mov w1, w21 13209 mov w2, 16 13210 mov w0, 0 13211 bl flash_start_one_pass_page_prog 13212 bl nandc_wait_flash_ready 13213 mov x0, x22 13214 bl flash_read_status 13215 mov w3, w0 13216 bl nandc_de_cs.constprop.31 13217 and w2, w3, 4 13218 tbz x3, 2, .L2159 13219 adrp x0, .LANCHOR19 13220 ldr w0, [x0, #:lo12:.LANCHOR19] 13221 tbz x0, 12, .L2161 13222 adrp x0, .LC128 13223 mov w1, w25 13224 add x0, x0, :lo12:.LC128 13225 bl printf 13226.L2161: 13227 mov w2, -1 13228.L2159: 13229 mov w0, w2 13230 ldr x25, [sp, 64] 13231 ldp x19, x20, [sp, 16] 13232 ldp x21, x22, [sp, 32] 13233 ldp x23, x24, [sp, 48] 13234 ldp x29, x30, [sp], 80 13235 ret 13236 .size ymtc_flash_tlc_page_prog, .-ymtc_flash_tlc_page_prog 13237 .section .text.fw_flash_page_prog.constprop.28,"ax",@progbits 13238 .align 2 13239 .type fw_flash_page_prog.constprop.28, %function 13240fw_flash_page_prog.constprop.28: 13241 stp x29, x30, [sp, -64]! 13242 adrp x4, .LANCHOR32 13243 add x4, x4, :lo12:.LANCHOR32 13244 add x29, sp, 0 13245 stp x19, x20, [sp, 16] 13246 mov x20, x1 13247 stp x21, x22, [sp, 32] 13248 mov x21, x2 13249 str x23, [sp, 48] 13250 ldrb w19, [x4, 9] 13251 udiv w19, w0, w19 13252 adrp x0, .LANCHOR49 13253 ldrb w23, [x0, #:lo12:.LANCHOR49] 13254 adrp x0, .LANCHOR22 13255 ldrb w0, [x0, #:lo12:.LANCHOR22] 13256 bl nandc_bch_sel 13257 ldrb w0, [x4, 7] 13258 cmp w0, 9 13259 bne .L2167 13260 adrp x0, .LANCHOR24 13261 ldrb w0, [x0, #:lo12:.LANCHOR24] 13262 cbnz w0, .L2167 13263 ldrb w0, [x4, 12] 13264 cmp w0, 3 13265 bne .L2168 13266 mov x3, x21 13267 mov x2, x20 13268 mov w1, w19 13269 mov w0, 0 13270 bl ymtc_flash_tlc_page_prog 13271.L2171: 13272 mov w4, w0 13273 mov w0, w23 13274 bl nandc_bch_sel 13275 ldr x23, [sp, 48] 13276 mov w0, w4 13277 ldp x19, x20, [sp, 16] 13278 ldp x21, x22, [sp, 32] 13279 ldp x29, x30, [sp], 64 13280 ret 13281.L2168: 13282 adrp x22, .LANCHOR164 13283 mov w2, 16384 13284 mov w1, 255 13285 ldr x0, [x22, #:lo12:.LANCHOR164] 13286 bl ftl_memset 13287 ldr x5, [x22, #:lo12:.LANCHOR164] 13288 mov w6, 4 13289 mov x3, x21 13290 mov x2, x20 13291 mov x4, x5 13292 mov w1, w19 13293 mov w0, 0 13294 bl flash_dual_page_prog 13295 b .L2171 13296.L2167: 13297 mov w4, 4 13298 mov x3, x21 13299 mov x2, x20 13300 mov w1, w19 13301 mov w0, 0 13302 bl flash_prog_page 13303 b .L2171 13304 .size fw_flash_page_prog.constprop.28, .-fw_flash_page_prog.constprop.28 13305 .section .text.idb_write_data,"ax",@progbits 13306 .align 2 13307 .global idb_write_data 13308 .type idb_write_data, %function 13309idb_write_data: 13310 stp x29, x30, [sp, -272]! 13311 cmp w1, 64 13312 add x29, sp, 0 13313 stp x19, x20, [sp, 16] 13314 mov w19, w1 13315 stp x21, x22, [sp, 32] 13316 mov w20, w3 13317 stp x23, x24, [sp, 48] 13318 adrp x22, .LANCHOR141 13319 stp x25, x26, [sp, 64] 13320 mov x24, x2 13321 stp x27, x28, [sp, 80] 13322 bne .L2173 13323 ldr w0, [x2] 13324 mov w1, 35899 13325 movk w1, 0xfcdc, lsl 16 13326 cmp w0, w1 13327 mov w1, 19282 13328 movk w1, 0x534e, lsl 16 13329 ccmp w0, w1, 4, ne 13330 beq .L2174 13331 add w1, w1, 327680 13332 cmp w0, w1 13333 bne .L2173 13334.L2174: 13335 adrp x21, .LANCHOR139 13336 mov w1, 1 13337 strb w1, [x22, #:lo12:.LANCHOR141] 13338 ldr x0, [x21, #:lo12:.LANCHOR139] 13339 cbnz x0, .L2175 13340 mov w0, 262144 13341 bl ftl_malloc 13342 str x0, [x21, #:lo12:.LANCHOR139] 13343.L2175: 13344 adrp x0, .LANCHOR175 13345 mov w1, 64 13346 str w1, [x0, #:lo12:.LANCHOR175] 13347.L2173: 13348 ldrb w0, [x22, #:lo12:.LANCHOR141] 13349 cbz w0, .L2241 13350 adrp x0, .LANCHOR139 13351 mov x23, x0 13352 ldr x21, [x0, #:lo12:.LANCHOR139] 13353 cbz x21, .L2241 13354 add w0, w19, w20 13355 str w0, [x29, 140] 13356 cmp w0, 63 13357 bls .L2177 13358 cmp w19, 575 13359 bhi .L2178 13360 adrp x21, .LANCHOR142 13361 ldr x0, [x21, #:lo12:.LANCHOR142] 13362 cbz x0, .L2179 13363.L2182: 13364 adrp x1, .LANCHOR140 13365 mov w2, 1 13366 ldr x0, [x23, #:lo12:.LANCHOR139] 13367 cmp w19, 64 13368 str w2, [x1, #:lo12:.LANCHOR140] 13369 bhi .L2294 13370 mov w4, 64 13371 sub w4, w4, w19 13372 sub w2, w20, w4 13373 ubfiz x4, x4, 9, 25 13374 lsl w2, w2, 9 13375 add x1, x24, x4 13376.L2300: 13377 bl ftl_memcpy 13378.L2183: 13379 adrp x0, .LANCHOR175 13380 ldr w0, [x0, #:lo12:.LANCHOR175] 13381 cmp w19, w0 13382 beq .L2237 13383 strb wzr, [x22, #:lo12:.LANCHOR141] 13384 b .L2237 13385.L2179: 13386 mov w0, 262144 13387 bl ftl_malloc 13388 str x0, [x21, #:lo12:.LANCHOR142] 13389 cbnz x0, .L2182 13390 mov w0, -1 13391 b .L2172 13392.L2294: 13393 mov w2, 576 13394 sub w2, w2, w19 13395 cmp w20, w2 13396 sub w3, w19, #64 13397 csel w2, w20, w2, ls 13398 ubfiz x3, x3, 9, 25 13399 lsl w2, w2, 9 13400 mov x1, x24 13401 add x0, x0, x3 13402 b .L2300 13403.L2177: 13404 cmp w19, 575 13405 bls .L2183 13406.L2178: 13407 adrp x0, .LANCHOR140 13408 ldr w0, [x0, #:lo12:.LANCHOR140] 13409 cbz w0, .L2183 13410 ldr w0, [x21] 13411 mov w1, 35899 13412 movk w1, 0xfcdc, lsl 16 13413 cmp w0, w1 13414 mov w1, 19282 13415 movk w1, 0x534e, lsl 16 13416 ccmp w0, w1, 4, ne 13417 beq .L2184 13418 add w1, w1, 327680 13419 cmp w0, w1 13420 bne .L2185 13421.L2184: 13422 adrp x0, .LANCHOR0 13423 mov x20, x0 13424 ldrb w1, [x0, #:lo12:.LANCHOR0] 13425 str w1, [x29, 176] 13426 adrp x1, .LANCHOR24 13427 mov x24, x1 13428 ldr w0, [x29, 176] 13429 ldrb w2, [x1, #:lo12:.LANCHOR24] 13430 str w2, [x29, 204] 13431 cbz w0, .L2186 13432 ldrh w0, [x29, 176] 13433 str w0, [x29, 172] 13434 uxtw x0, w2 13435 cmp w0, 0 13436 cset w0, eq 13437.L2297: 13438 adrp x23, .LANCHOR32 13439 add x23, x23, :lo12:.LANCHOR32 13440 str w0, [x29, 200] 13441 mov w0, 0 13442 ldrb w19, [x23, 9] 13443 ldrh w22, [x23, 26] 13444 bl zftl_flash_exit_slc_mode 13445 ldrb w0, [x24, #:lo12:.LANCHOR24] 13446 add x1, x21, 258048 13447 strb w0, [x20, #:lo12:.LANCHOR0] 13448 mov w4, 16981 13449 ldrh w20, [x23, 10] 13450 add x1, x1, 2044 13451 ldrb w0, [x23, 12] 13452 mov w2, 65023 13453 movk w4, 0x4f4f, lsl 16 13454 mov w3, 4098 13455 lsl w20, w20, 2 13456 sdiv w20, w20, w0 13457 mov w0, 512 13458 cmp w20, 512 13459 csel w20, w20, w0, lt 13460 mov w0, 0 13461.L2193: 13462 ldr w5, [x1] 13463 cbnz w5, .L2189 13464 cbnz w0, .L2190 13465 str w4, [x1, 2048] 13466.L2191: 13467 add w0, w0, 1 13468 sub w2, w2, #1 13469 cmp w0, w3 13470 sub x1, x1, #4 13471 csel w0, w0, wzr, ls 13472 cmp w2, 4096 13473 bne .L2193 13474.L2189: 13475 ldr w1, [x21, w2, uxtw 2] 13476 mov w3, w20 13477 adrp x0, .LC129 13478 add x0, x0, :lo12:.LC129 13479 bl printf 13480 str wzr, [x29, 180] 13481 mul w0, w22, w19 13482 str wzr, [x29, 192] 13483 str w0, [x29, 128] 13484 adrp x0, .LANCHOR51 13485 add x0, x0, :lo12:.LANCHOR51 13486 str x0, [x29, 184] 13487.L2232: 13488 adrp x23, .LANCHOR142 13489 mov w1, 0 13490 mov w2, 512 13491 ldr x0, [x23, #:lo12:.LANCHOR142] 13492 bl ftl_memset 13493 str x23, [x29, 160] 13494 adrp x0, .LANCHOR6 13495 ldr w1, [x29, 192] 13496 ldr x0, [x0, #:lo12:.LANCHOR6] 13497 add x0, x0, x1, uxtw 13498 ldrb w19, [x0, 32] 13499 cmp w19, 255 13500 beq .L2194 13501 ldr w0, [x29, 128] 13502 mul w19, w19, w0 13503 ldr w0, [x29, 200] 13504 cbz w0, .L2195 13505 and w0, w1, -3 13506 adrp x24, .LANCHOR0 13507 cmp w0, 1 13508 adrp x22, .LANCHOR24 13509 beq .L2196 13510 ldr w0, [x29, 200] 13511 cmp w0, 3 13512 bne .L2197 13513.L2196: 13514 ldrb w0, [x29, 172] 13515 strb w0, [x24, #:lo12:.LANCHOR0] 13516 strb w0, [x22, #:lo12:.LANCHOR24] 13517.L2195: 13518 adrp x22, .LANCHOR32 13519 add x27, x22, :lo12:.LANCHOR32 13520 ldr x0, [x29, 184] 13521 ldrb w24, [x27, 9] 13522 ldrh w25, [x27, 26] 13523 ldrb w0, [x0] 13524 str w0, [x29, 136] 13525 udiv w1, w19, w24 13526 ldr x0, [x29, 184] 13527 mul w25, w25, w24 13528 strb wzr, [x0] 13529 mov w0, 0 13530 bl flash_erase_block 13531 udiv w0, w19, w25 13532 ldrb w1, [x27, 12] 13533 msub w0, w0, w25, w19 13534 str w0, [x29, 168] 13535 sub w26, w19, w0 13536 ldrh w0, [x27, 10] 13537 cmp w19, w26 13538 lsl w0, w0, 2 13539 sdiv w0, w0, w1 13540 str w0, [x29, 156] 13541 bne .L2247 13542 adrp x0, .LANCHOR27 13543 ldrb w0, [x0, #:lo12:.LANCHOR27] 13544 cmp w0, 9 13545 bne .L2247 13546 ldr x0, [x29, 160] 13547 mov w2, 1024 13548 mov w1, 0 13549 ldr x25, [x0, #:lo12:.LANCHOR142] 13550 mov x0, x25 13551 bl ftl_memset 13552 mov w0, 18766 13553 movk w0, 0x464e, lsl 16 13554 str w0, [x25] 13555 mov w0, 12 13556 str w0, [x25, 4] 13557 adrp x0, .LANCHOR24 13558 strb wzr, [x25, 16] 13559 str wzr, [x25, 12] 13560 ldrb w0, [x0, #:lo12:.LANCHOR24] 13561 cbz w0, .L2199 13562 ldrb w0, [x27, 29] 13563 strb w0, [x25, 16] 13564.L2199: 13565 add x1, x22, :lo12:.LANCHOR32 13566 mov w0, 4 13567 strb w0, [x25, 17] 13568 cmp w24, 8 13569 strb wzr, [x25, 20] 13570 ldrh w0, [x1, 10] 13571 ldrb w1, [x1, 12] 13572 strh wzr, [x25, 22] 13573 sdiv w0, w0, w1 13574 mov w1, 16 13575 strh w0, [x25, 18] 13576 mov w0, 70 13577 csel w0, w0, w1, hi 13578 strb w0, [x25, 21] 13579 mov w1, 12 13580 add x0, x25, 12 13581 bl js_hash 13582 str w0, [x25, 8] 13583 sub w0, w20, #4 13584 str w0, [x29, 196] 13585.L2198: 13586 adrp x27, .LANCHOR3 13587 mov x23, x21 13588 add x27, x27, :lo12:.LANCHOR3 13589 adrp x0, .LANCHOR24 13590 mov w28, 0 13591 add x0, x0, :lo12:.LANCHOR24 13592 str x0, [x29, 144] 13593.L2201: 13594 ldr w0, [x29, 156] 13595 cmp w0, w28 13596 bhi .L2212 13597 ldr x0, [x29, 160] 13598 add x22, x22, :lo12:.LANCHOR32 13599 mov w24, 4 13600 mov w25, 0 13601 mov w28, 0 13602 ldr x23, [x0, #:lo12:.LANCHOR142] 13603 ldrb w0, [x22, 9] 13604 str w0, [x29, 144] 13605 ldrh w0, [x22, 26] 13606 ldr w1, [x29, 144] 13607 mul w0, w0, w1 13608 adrp x1, .LANCHOR51 13609 strb wzr, [x1, #:lo12:.LANCHOR51] 13610 udiv w1, w19, w0 13611 msub w0, w1, w0, w19 13612 str w0, [x29, 168] 13613 sub w0, w19, w0 13614 str w0, [x29, 152] 13615 ldr w0, [x29, 168] 13616 and w0, w0, 3 13617 str w0, [x29, 160] 13618 ldr w0, [x29, 196] 13619 str w0, [x29, 156] 13620 adrp x0, .LANCHOR3 13621 add x0, x0, :lo12:.LANCHOR3 13622 str x0, [x29, 112] 13623.L2213: 13624 ldr w0, [x29, 156] 13625 cmp w25, w0 13626 bcc .L2227 13627 ldr x0, [x29, 184] 13628 ldrb w1, [x29, 136] 13629 strb w1, [x0] 13630 ldr w0, [x29, 200] 13631 cbz w0, .L2228 13632 mov w0, 0 13633 bl zftl_flash_exit_slc_mode 13634 adrp x0, .LANCHOR0 13635 strb wzr, [x0, #:lo12:.LANCHOR0] 13636 adrp x0, .LANCHOR24 13637 strb wzr, [x0, #:lo12:.LANCHOR24] 13638.L2228: 13639 ldr w0, [x29, 196] 13640 mov x2, 0 13641 lsl w1, w0, 7 13642 adrp x0, .LANCHOR142 13643 ldr x0, [x0, #:lo12:.LANCHOR142] 13644.L2229: 13645 mov w22, w2 13646 cmp w2, w1 13647 bcc .L2230 13648 ldr w0, [x29, 180] 13649 add w0, w0, 1 13650 str w0, [x29, 180] 13651 cmp w0, 5 13652 bls .L2194 13653 b .L2239 13654.L2186: 13655 ldr w0, [x29, 204] 13656 cmp w0, 3 13657 beq .L2243 13658 cmp w0, 2 13659 mov w0, 2 13660 csel w0, wzr, w0, ne 13661 str w0, [x29, 172] 13662 ldr w0, [x29, 204] 13663 cmp w0, 2 13664 mov w0, 3 13665 csel w0, wzr, w0, ne 13666 b .L2297 13667.L2243: 13668 ldr w0, [x29, 204] 13669 str w0, [x29, 172] 13670 mov w0, 2 13671 b .L2297 13672.L2190: 13673 ldr w5, [x21, w0, uxtw 2] 13674 str w5, [x1, 2048] 13675 b .L2191 13676.L2197: 13677 mov w0, 0 13678 bl zftl_flash_exit_slc_mode 13679 strb wzr, [x24, #:lo12:.LANCHOR0] 13680 strb wzr, [x22, #:lo12:.LANCHOR24] 13681 b .L2195 13682.L2247: 13683 mov x25, 0 13684 str w20, [x29, 196] 13685 b .L2198 13686.L2212: 13687 ldr w0, [x29, 168] 13688 adrp x2, .LANCHOR24 13689 add w4, w0, w28 13690 ldrb w2, [x2, #:lo12:.LANCHOR24] 13691 ubfx x4, x4, 2, 16 13692 add w1, w4, 1 13693 ldrh w0, [x27, w1, sxtw 1] 13694 cbz w2, .L2203 13695 adrp x0, .LANCHOR1 13696 ldrb w7, [x0, #:lo12:.LANCHOR1] 13697 lsl w0, w1, 1 13698 cmp w7, 0 13699 csel w0, w0, w1, ne 13700.L2203: 13701 adrp x1, .LANCHOR27 13702 ldrb w1, [x1, #:lo12:.LANCHOR27] 13703 cmp w1, 9 13704 bne .L2205 13705.L2298: 13706 str w0, [x29, 208] 13707 mov w0, 61424 13708 str w0, [x29, 212] 13709 ldrh w0, [x27, w4, sxtw 1] 13710 cbnz w2, .L2207 13711 mov w4, w0 13712.L2208: 13713 mul w0, w24, w4 13714 cbnz x25, .L2209 13715 str w4, [x29, 152] 13716 add x2, x29, 208 13717 mov x1, x23 13718 add w0, w0, w26 13719 bl fw_flash_page_prog.constprop.28 13720 ldr x0, [x29, 144] 13721 ldr w4, [x29, 152] 13722 ldrb w0, [x0] 13723 cbnz w0, .L2210 13724 udiv w1, w26, w24 13725 add w2, w4, 1 13726 bl id_block_prog_msb_ff_data 13727.L2210: 13728 ldr w0, [x29, 196] 13729 add x23, x23, 2048 13730 add w0, w0, 16 13731 cmp w28, w0 13732 bcc .L2211 13733 ldr w0, [x29, 196] 13734 add w1, w0, 20 13735 add x0, x21, 2048 13736 cmp w28, w1 13737 csel x23, x0, x23, cc 13738.L2211: 13739 add w5, w28, 4 13740 mov x25, 0 13741 and w28, w5, 65535 13742 b .L2201 13743.L2205: 13744 sub w0, w0, #1 13745 lsl w0, w0, 2 13746 b .L2298 13747.L2207: 13748 adrp x0, .LANCHOR1 13749 ldrb w1, [x0, #:lo12:.LANCHOR1] 13750 lsl w0, w4, 1 13751 cmp w1, 0 13752 csel w4, w0, w4, ne 13753 b .L2208 13754.L2209: 13755 add x2, x29, 208 13756 mov x1, x25 13757 add w0, w0, w26 13758 bl fw_flash_page_prog.constprop.28 13759 b .L2211 13760.L2227: 13761 ldr w0, [x29, 160] 13762 adrp x1, .LANCHOR24 13763 sub w27, w24, w0 13764 ldr w0, [x29, 168] 13765 ldrb w1, [x1, #:lo12:.LANCHOR24] 13766 and w27, w27, 65535 13767 add w22, w0, w25 13768 ldr x0, [x29, 112] 13769 udiv w22, w22, w24 13770 and w22, w22, 65535 13771 ldrh w0, [x0, w22, sxtw 1] 13772 cbnz w1, .L2214 13773 mov w22, w0 13774.L2215: 13775 adrp x0, .LANCHOR22 13776 ldr w1, [x29, 152] 13777 ldrb w26, [x0, #:lo12:.LANCHOR22] 13778 ldr w0, [x29, 160] 13779 add w0, w0, w1 13780 ldr w1, [x29, 144] 13781 madd w22, w1, w22, w0 13782 adrp x0, .LANCHOR32+9 13783 ldrb w0, [x0, #:lo12:.LANCHOR32+9] 13784 udiv w22, w22, w0 13785 adrp x0, .LANCHOR49 13786 ldrb w0, [x0, #:lo12:.LANCHOR49] 13787 str w0, [x29, 132] 13788 mov w0, w26 13789 bl nandc_bch_sel 13790 adrp x0, .LANCHOR26 13791 add x0, x0, :lo12:.LANCHOR26 13792 str x0, [x29, 120] 13793.L2216: 13794 mov w4, w24 13795 add x3, x29, 208 13796 mov x2, x23 13797 mov w1, w22 13798 mov w0, 0 13799 bl flash_read_page 13800 mov w5, w0 13801 cmn w0, #1 13802 bne .L2217 13803 ldr x0, [x29, 184] 13804 ldrb w6, [x0] 13805 cbnz w6, .L2218 13806.L2221: 13807 adrp x0, .LANCHOR172 13808 ldr x6, [x0, #:lo12:.LANCHOR172] 13809 cbnz x6, .L2219 13810.L2220: 13811 ldr x0, [x29, 120] 13812 ldrb w0, [x0] 13813 cbz w0, .L2217 13814 mov w4, w24 13815 add x3, x29, 208 13816 mov x2, x23 13817 mov w1, w22 13818 mov w0, 0 13819 bl flash_ddr_tuning_read 13820 b .L2299 13821.L2214: 13822 adrp x0, .LANCHOR1 13823 ldrb w1, [x0, #:lo12:.LANCHOR1] 13824 lsl w0, w22, 1 13825 cmp w1, 0 13826 csel w22, w0, w22, ne 13827 b .L2215 13828.L2218: 13829 ldr x0, [x29, 184] 13830 mov w1, w22 13831 stp w6, w5, [x29, 104] 13832 mov w4, w24 13833 add x3, x29, 208 13834 mov x2, x23 13835 strb wzr, [x0] 13836 mov w0, 0 13837 bl flash_read_page 13838 cmn w0, #1 13839 ldr x1, [x29, 184] 13840 ldp w6, w5, [x29, 104] 13841 strb w6, [x1] 13842 beq .L2221 13843.L2299: 13844 mov w5, w0 13845.L2217: 13846 cmn w5, #1 13847 cset w4, eq 13848 cmp w26, 16 13849 cset w0, ne 13850 tst w4, w0 13851 beq .L2223 13852 mov w0, 16 13853 mov w26, 16 13854 bl nandc_bch_sel 13855 b .L2216 13856.L2219: 13857 str w5, [x29, 108] 13858 mov w4, w24 13859 add x3, x29, 208 13860 mov x2, x23 13861 mov w1, w22 13862 mov w0, 0 13863 blr x6 13864 cmn w0, #1 13865 ldr w5, [x29, 108] 13866 beq .L2220 13867 b .L2299 13868.L2223: 13869 ldr w0, [x29, 132] 13870 bl nandc_bch_sel 13871 cmp w4, 0 13872 ldr w0, [x29, 152] 13873 csinv w28, w28, wzr, eq 13874 cmp w25, 0 13875 ccmp w19, w0, 0, eq 13876 bne .L2225 13877 cbnz w28, .L2225 13878 ldr w1, [x23] 13879 mov w0, 18766 13880 movk w0, 0x464e, lsl 16 13881 cmp w1, w0 13882 bne .L2225 13883 ldr w0, [x29, 156] 13884 ldrb w24, [x23, 17] 13885 add w0, w0, w27 13886 str w0, [x29, 156] 13887.L2226: 13888 add w25, w27, w25 13889 and w25, w25, 65535 13890 b .L2213 13891.L2225: 13892 ubfiz x0, x27, 9, 16 13893 str wzr, [x29, 160] 13894 add x23, x23, x0 13895 b .L2226 13896.L2230: 13897 ldr w4, [x0, x2, lsl 2] 13898 add x2, x2, 1 13899 add x3, x21, x2, lsl 2 13900 ldr w3, [x3, -4] 13901 cmp w4, w3 13902 beq .L2229 13903 mov w2, 512 13904 mov w1, 0 13905 bl ftl_memset 13906 mov w1, w22 13907 adrp x0, .LC130 13908 add x0, x0, :lo12:.LC130 13909 bl printf 13910 mov w1, w19 13911 mov w0, 0 13912 bl flash_erase_block 13913.L2194: 13914 ldr w0, [x29, 192] 13915 add w0, w0, 1 13916 str w0, [x29, 192] 13917 cmp w0, 4 13918 bne .L2232 13919.L2239: 13920 mov w0, 0 13921 bl zftl_flash_exit_slc_mode 13922 adrp x0, .LANCHOR0 13923 ldrb w1, [x29, 176] 13924 strb w1, [x0, #:lo12:.LANCHOR0] 13925 ldr w0, [x29, 200] 13926 cbz w0, .L2233 13927 adrp x0, .LANCHOR24 13928 ldrb w1, [x29, 204] 13929 strb w1, [x0, #:lo12:.LANCHOR24] 13930.L2233: 13931 mov w1, 2 13932 adrp x0, .LANCHOR33 13933 strb w1, [x0, #:lo12:.LANCHOR33] 13934 mov w0, 0 13935 bl zftl_flash_enter_slc_mode 13936 ldr w0, [x29, 180] 13937 cbnz w0, .L2185 13938 adrp x0, .LC131 13939 mov w1, 0 13940 add x0, x0, :lo12:.LC131 13941 bl printf 13942.L2185: 13943 adrp x0, .LANCHOR140 13944 str wzr, [x0, #:lo12:.LANCHOR140] 13945 adrp x0, .LANCHOR141 13946 strb wzr, [x0, #:lo12:.LANCHOR141] 13947 adrp x0, .LANCHOR139 13948 ldr x1, [x0, #:lo12:.LANCHOR139] 13949 cbz x1, .L2235 13950 str xzr, [x0, #:lo12:.LANCHOR139] 13951.L2235: 13952 adrp x0, .LANCHOR142 13953 ldr x1, [x0, #:lo12:.LANCHOR142] 13954 cbz x1, .L2237 13955 str xzr, [x0, #:lo12:.LANCHOR142] 13956.L2237: 13957 adrp x0, .LANCHOR175 13958 ldr w1, [x29, 140] 13959 str w1, [x0, #:lo12:.LANCHOR175] 13960.L2241: 13961 mov w0, 0 13962.L2172: 13963 ldp x19, x20, [sp, 16] 13964 ldp x21, x22, [sp, 32] 13965 ldp x23, x24, [sp, 48] 13966 ldp x25, x26, [sp, 64] 13967 ldp x27, x28, [sp, 80] 13968 ldp x29, x30, [sp], 272 13969 ret 13970 .size idb_write_data, .-idb_write_data 13971 .section .text.flash_start_tlc_page_prog,"ax",@progbits 13972 .align 2 13973 .global flash_start_tlc_page_prog 13974 .type flash_start_tlc_page_prog, %function 13975flash_start_tlc_page_prog: 13976 stp x29, x30, [sp, -80]! 13977 add x29, sp, 0 13978 stp x25, x26, [sp, 64] 13979 and w25, w0, 255 13980 adrp x0, .LANCHOR23 13981 stp x19, x20, [sp, 16] 13982 stp x21, x22, [sp, 32] 13983 and w21, w1, 255 13984 stp x23, x24, [sp, 48] 13985 and w26, w3, 255 13986 ldrb w1, [x0, #:lo12:.LANCHOR23] 13987 and w22, w2, 255 13988 mov w20, w4 13989 mov x23, x5 13990 mov x24, x6 13991 cmp w1, w26 13992 mov x19, x0 13993 bhi .L2302 13994 adrp x1, .LANCHOR176 13995 adrp x0, .LC0 13996 mov w2, 868 13997 add x1, x1, :lo12:.LANCHOR176 13998 add x0, x0, :lo12:.LC0 13999 bl printf 14000.L2302: 14001 ldrb w0, [x19, #:lo12:.LANCHOR23] 14002 cmp w0, w26 14003 bls .L2301 14004 adrp x0, .LANCHOR29 14005 add x0, x0, :lo12:.LANCHOR29 14006 ldrb w5, [x0, w26, sxtw] 14007 adrp x0, .LANCHOR7 14008 ldr x19, [x0, #:lo12:.LANCHOR7] 14009 mov w0, w5 14010 bl nandc_cs 14011 cbz w25, .L2304 14012 sxtw x0, w5 14013 add x0, x0, 8 14014 add x0, x19, x0, lsl 8 14015 str w25, [x0, 8] 14016.L2304: 14017 ubfiz x0, x5, 8, 8 14018 add x19, x19, x0 14019 mov w0, 128 14020 str w21, [x19, 2056] 14021 str w0, [x19, 2056] 14022 and w0, w20, 255 14023 str wzr, [x19, 2052] 14024 str wzr, [x19, 2052] 14025 str w0, [x19, 2052] 14026 lsr w0, w20, 8 14027 str w0, [x19, 2052] 14028 lsr w0, w20, 16 14029 add w20, w20, w20, lsl 1 14030 str w0, [x19, 2052] 14031 sub w0, w20, #1 14032 add w0, w0, w21 14033 bl nandc_set_seed 14034 adrp x0, .LANCHOR32+9 14035 mov x4, x24 14036 mov x3, x23 14037 mov w1, 1 14038 ldrb w2, [x0, #:lo12:.LANCHOR32+9] 14039 mov w0, w5 14040 bl nandc_xfer 14041 ldp x23, x24, [sp, 48] 14042 ldp x25, x26, [sp, 64] 14043 str w22, [x19, 2056] 14044 ldp x19, x20, [sp, 16] 14045 ldp x21, x22, [sp, 32] 14046 ldp x29, x30, [sp], 80 14047 b nandc_de_cs.constprop.31 14048.L2301: 14049 ldp x19, x20, [sp, 16] 14050 ldp x21, x22, [sp, 32] 14051 ldp x23, x24, [sp, 48] 14052 ldp x25, x26, [sp, 64] 14053 ldp x29, x30, [sp], 80 14054 ret 14055 .size flash_start_tlc_page_prog, .-flash_start_tlc_page_prog 14056 .section .text.queue_tlc_prog_cmd,"ax",@progbits 14057 .align 2 14058 .type queue_tlc_prog_cmd, %function 14059queue_tlc_prog_cmd: 14060 stp x29, x30, [sp, -64]! 14061 mov w2, 24 14062 add x29, sp, 0 14063 stp x21, x22, [sp, 32] 14064 mov x21, x0 14065 ldr x7, [x0] 14066 adrp x0, .LANCHOR31 14067 mov w22, 1 14068 stp x19, x20, [sp, 16] 14069 ldrb w0, [x0, #:lo12:.LANCHOR31] 14070 str x23, [sp, 48] 14071 mov w23, w1 14072 sub w2, w2, w0 14073 ldr w1, [x7, 40] 14074 lsl w19, w22, w0 14075 adrp x0, .LANCHOR36 14076 lsl w20, w22, w2 14077 sub w19, w19, #1 14078 ldrb w0, [x0, #:lo12:.LANCHOR36] 14079 sub w20, w20, #1 14080 and w20, w20, w1 14081 lsr w1, w1, w2 14082 and w19, w19, w1 14083 and w19, w19, 255 14084 cbz w0, .L2310 14085 mov w0, w19 14086 bl zftl_flash_exit_slc_mode 14087 ldr x0, [x21] 14088 mov w4, w20 14089 mov w3, w19 14090 mov w1, w22 14091 mov w2, 26 14092 ldr x5, [x0, 8] 14093 ldr x6, [x0, 24] 14094 mov w0, 0 14095 bl flash_start_one_pass_page_prog 14096 bl nandc_wait_flash_ready 14097 ldr x0, [x21, 8] 14098 add w4, w20, w22 14099 mov w3, w19 14100 mov w1, w22 14101 mov w2, 26 14102 ldr x5, [x0, 8] 14103 ldr x6, [x0, 24] 14104 mov w0, 0 14105 bl flash_start_one_pass_page_prog 14106 bl nandc_wait_flash_ready 14107 ldr x0, [x21, 16] 14108 add w4, w20, 2 14109 mov w3, w19 14110 mov w2, 16 14111 mov w1, w22 14112 ldr x5, [x0, 8] 14113 ldr x6, [x0, 24] 14114 mov w0, 0 14115 bl flash_start_one_pass_page_prog 14116.L2311: 14117 cbz w23, .L2309 14118 ldr x1, [x21] 14119 mov w0, 4 14120 strb w0, [x1, 58] 14121 mov w0, 1 14122 strb w0, [x1, 59] 14123 mov w0, -1 14124 strb w0, [x1] 14125 adrp x0, .LANCHOR59 14126 add x0, x0, :lo12:.LANCHOR59 14127 ldp x19, x20, [sp, 16] 14128 ldp x21, x22, [sp, 32] 14129 ldr x23, [sp, 48] 14130 ldp x29, x30, [sp], 64 14131 b buf_add_tail 14132.L2310: 14133 ldr x5, [x7, 8] 14134 mov w4, w20 14135 ldr x6, [x7, 24] 14136 mov w3, w19 14137 ldrb w0, [x7, 60] 14138 mov w1, w22 14139 mov w2, 26 14140 bl flash_start_tlc_page_prog 14141 bl nandc_wait_flash_ready 14142 ldp x7, x0, [x21] 14143 mov w4, w20 14144 mov w3, w19 14145 mov w2, 26 14146 mov w1, 2 14147 ldr x5, [x0, 8] 14148 ldr x6, [x0, 24] 14149 ldrb w0, [x7, 60] 14150 bl flash_start_tlc_page_prog 14151 bl nandc_wait_flash_ready 14152 ldr x0, [x21, 16] 14153 mov w4, w20 14154 ldr x7, [x21] 14155 mov w3, w19 14156 mov w2, 16 14157 mov w1, 3 14158 ldr x5, [x0, 8] 14159 ldr x6, [x0, 24] 14160 ldrb w0, [x7, 60] 14161 bl flash_start_tlc_page_prog 14162 b .L2311 14163.L2309: 14164 ldp x19, x20, [sp, 16] 14165 ldp x21, x22, [sp, 32] 14166 ldr x23, [sp, 48] 14167 ldp x29, x30, [sp], 64 14168 ret 14169 .size queue_tlc_prog_cmd, .-queue_tlc_prog_cmd 14170 .section .text.sblk_3d_tlc_dump_prog,"ax",@progbits 14171 .align 2 14172 .global sblk_3d_tlc_dump_prog 14173 .type sblk_3d_tlc_dump_prog, %function 14174sblk_3d_tlc_dump_prog: 14175 stp x29, x30, [sp, -48]! 14176 mov w2, 24 14177 add x29, sp, 0 14178 stp x19, x20, [sp, 16] 14179 mov x20, x0 14180 ldr w1, [x0, 40] 14181 adrp x0, .LANCHOR31 14182 stp x21, x22, [sp, 32] 14183 mov w22, 1 14184 ldrb w0, [x0, #:lo12:.LANCHOR31] 14185 sub w2, w2, w0 14186 lsl w19, w22, w0 14187 adrp x0, .LANCHOR36 14188 lsl w21, w22, w2 14189 sub w19, w19, #1 14190 ldrb w0, [x0, #:lo12:.LANCHOR36] 14191 sub w21, w21, #1 14192 and w21, w21, w1 14193 lsr w1, w1, w2 14194 and w19, w19, w1 14195 and w19, w19, 255 14196 cbz w0, .L2315 14197 mov w0, w19 14198 bl zftl_flash_exit_slc_mode 14199 ldr x5, [x20, 8] 14200 mov w4, w21 14201 ldr x6, [x20, 24] 14202 mov w3, w19 14203 mov w1, w22 14204 mov w2, 26 14205 mov w0, 0 14206 bl flash_start_one_pass_page_prog 14207 bl nandc_wait_flash_ready 14208 ldr x5, [x20, 8] 14209 add w4, w21, w22 14210 ldr x6, [x20, 24] 14211 mov w3, w19 14212 mov w1, w22 14213 mov w2, 26 14214 mov w0, 0 14215 bl flash_start_one_pass_page_prog 14216 bl nandc_wait_flash_ready 14217 ldr x5, [x20, 8] 14218 add w4, w21, 2 14219 ldr x6, [x20, 24] 14220 mov w3, w19 14221 mov w2, 16 14222 mov w1, w22 14223 mov w0, 0 14224 bl flash_start_one_pass_page_prog 14225.L2316: 14226 bl nandc_wait_flash_ready 14227 ldr w0, [x20, 40] 14228 mov w1, 64 14229 ldp x21, x22, [sp, 32] 14230 ldp x19, x20, [sp, 16] 14231 ldp x29, x30, [sp], 48 14232 b flash_wait_device_ready 14233.L2315: 14234 ldr x5, [x20, 8] 14235 mov w4, w21 14236 ldr x6, [x20, 24] 14237 mov w3, w19 14238 mov w1, w22 14239 mov w2, 26 14240 mov w0, 0 14241 bl flash_start_tlc_page_prog 14242 bl nandc_wait_flash_ready 14243 ldr x5, [x20, 8] 14244 mov w4, w21 14245 ldr x6, [x20, 24] 14246 mov w3, w19 14247 mov w2, 26 14248 mov w1, 2 14249 mov w0, 0 14250 bl flash_start_tlc_page_prog 14251 bl nandc_wait_flash_ready 14252 ldr x5, [x20, 8] 14253 mov w4, w21 14254 ldr x6, [x20, 24] 14255 mov w3, w19 14256 mov w2, 16 14257 mov w1, 3 14258 mov w0, 0 14259 bl flash_start_tlc_page_prog 14260 b .L2316 14261 .size sblk_3d_tlc_dump_prog, .-sblk_3d_tlc_dump_prog 14262 .section .text.flash_start_3d_mlc_page_prog,"ax",@progbits 14263 .align 2 14264 .global flash_start_3d_mlc_page_prog 14265 .type flash_start_3d_mlc_page_prog, %function 14266flash_start_3d_mlc_page_prog: 14267 stp x29, x30, [sp, -64]! 14268 add x29, sp, 0 14269 stp x21, x22, [sp, 32] 14270 and w21, w0, 255 14271 adrp x0, .LANCHOR23 14272 stp x19, x20, [sp, 16] 14273 stp x23, x24, [sp, 48] 14274 and w24, w1, 255 14275 ldrb w1, [x0, #:lo12:.LANCHOR23] 14276 mov w20, w2 14277 mov x22, x3 14278 mov x23, x4 14279 cmp w1, w24 14280 mov x19, x0 14281 bhi .L2319 14282 adrp x1, .LANCHOR177 14283 adrp x0, .LC0 14284 mov w2, 903 14285 add x1, x1, :lo12:.LANCHOR177 14286 add x0, x0, :lo12:.LC0 14287 bl printf 14288.L2319: 14289 ldrb w0, [x19, #:lo12:.LANCHOR23] 14290 cmp w0, w24 14291 bls .L2318 14292 adrp x0, .LANCHOR29 14293 add x0, x0, :lo12:.LANCHOR29 14294 ldrb w5, [x0, w24, sxtw] 14295 adrp x0, .LANCHOR7 14296 ldr x19, [x0, #:lo12:.LANCHOR7] 14297 mov w0, w5 14298 bl nandc_cs 14299 ubfiz x0, x5, 8, 8 14300 add x19, x19, x0 14301 mov w0, 128 14302 str w0, [x19, 2056] 14303 and w0, w20, 255 14304 str wzr, [x19, 2052] 14305 str wzr, [x19, 2052] 14306 str w0, [x19, 2052] 14307 lsr w0, w20, 8 14308 str w0, [x19, 2052] 14309 lsr w0, w20, 16 14310 str w0, [x19, 2052] 14311 mov w0, w20 14312 bl nandc_set_seed 14313 adrp x0, .LANCHOR32+9 14314 mov x4, x23 14315 mov x3, x22 14316 mov w1, 1 14317 ldrb w2, [x0, #:lo12:.LANCHOR32+9] 14318 mov w0, w5 14319 bl nandc_xfer 14320 str w21, [x19, 2056] 14321.L2318: 14322 ldp x19, x20, [sp, 16] 14323 ldp x21, x22, [sp, 32] 14324 ldp x23, x24, [sp, 48] 14325 ldp x29, x30, [sp], 64 14326 ret 14327 .size flash_start_3d_mlc_page_prog, .-flash_start_3d_mlc_page_prog 14328 .section .text.sblk_mlc_dump_prog,"ax",@progbits 14329 .align 2 14330 .global sblk_mlc_dump_prog 14331 .type sblk_mlc_dump_prog, %function 14332sblk_mlc_dump_prog: 14333 stp x29, x30, [sp, -48]! 14334 mov w2, 24 14335 add x29, sp, 0 14336 stp x19, x20, [sp, 16] 14337 mov x20, x0 14338 ldr w1, [x0, 40] 14339 adrp x0, .LANCHOR31 14340 str x21, [sp, 32] 14341 ldrb w19, [x0, #:lo12:.LANCHOR31] 14342 mov w0, 1 14343 sub w2, w2, w19 14344 lsl w19, w0, w19 14345 sub w19, w19, #1 14346 lsl w21, w0, w2 14347 sub w21, w21, #1 14348 and w21, w21, w1 14349 lsr w1, w1, w2 14350 and w19, w19, w1 14351 and w19, w19, 255 14352 mov w0, w19 14353 bl zftl_flash_exit_slc_mode 14354 adrp x0, .LANCHOR19 14355 ldr w0, [x0, #:lo12:.LANCHOR19] 14356 tbz x0, 12, .L2323 14357 ldr w2, [x20, 40] 14358 adrp x0, .LC132 14359 mov w1, w21 14360 add x0, x0, :lo12:.LC132 14361 add w3, w2, 1 14362 bl printf 14363.L2323: 14364 ldr x3, [x20, 8] 14365 mov w2, w21 14366 ldr x4, [x20, 24] 14367 mov w1, w19 14368 mov w0, 16 14369 bl flash_start_3d_mlc_page_prog 14370 bl nandc_wait_flash_ready 14371 ldr x3, [x20, 8] 14372 add w2, w21, 1 14373 ldr x4, [x20, 24] 14374 mov w1, w19 14375 mov w0, 16 14376 bl flash_start_3d_mlc_page_prog 14377 bl nandc_wait_flash_ready 14378 ldr w0, [x20, 40] 14379 mov w1, 64 14380 bl flash_wait_device_ready 14381 mov w2, w0 14382 bl nandc_de_cs.constprop.31 14383 ldr x21, [sp, 32] 14384 mov w0, w2 14385 ldp x19, x20, [sp, 16] 14386 ldp x29, x30, [sp], 48 14387 ret 14388 .size sblk_mlc_dump_prog, .-sblk_mlc_dump_prog 14389 .section .text.flash_start_page_prog,"ax",@progbits 14390 .align 2 14391 .global flash_start_page_prog 14392 .type flash_start_page_prog, %function 14393flash_start_page_prog: 14394 stp x29, x30, [sp, -96]! 14395 add x29, sp, 0 14396 stp x21, x22, [sp, 32] 14397 and w21, w0, 255 14398 adrp x0, .LANCHOR31 14399 stp x19, x20, [sp, 16] 14400 stp x25, x26, [sp, 64] 14401 mov w19, 24 14402 ldrb w0, [x0, #:lo12:.LANCHOR31] 14403 mov w20, 1 14404 str x27, [sp, 80] 14405 adrp x27, .LANCHOR23 14406 sub w25, w19, w0 14407 stp x23, x24, [sp, 48] 14408 lsl w20, w20, w0 14409 sub w20, w20, #1 14410 lsr w0, w1, w25 14411 and w20, w20, w0 14412 ldrb w0, [x27, #:lo12:.LANCHOR23] 14413 and w20, w20, 255 14414 mov w24, w1 14415 mov x22, x2 14416 mov x23, x3 14417 cmp w0, w20 14418 bhi .L2329 14419 adrp x1, .LANCHOR178 14420 adrp x0, .LC0 14421 mov w2, 956 14422 add x1, x1, :lo12:.LANCHOR178 14423 add x0, x0, :lo12:.LC0 14424 bl printf 14425.L2329: 14426 ldrb w0, [x27, #:lo12:.LANCHOR23] 14427 cmp w0, w20 14428 bls .L2328 14429 adrp x0, .LANCHOR29 14430 add x0, x0, :lo12:.LANCHOR29 14431 mov w19, 1 14432 lsl w19, w19, w25 14433 sub w19, w19, #1 14434 ldrb w26, [x0, w20, sxtw] 14435 adrp x0, .LANCHOR7 14436 and w19, w19, w24 14437 ldr x25, [x0, #:lo12:.LANCHOR7] 14438 bl nandc_rdy_status 14439 cbnz w0, .L2331 14440 ldrb w0, [x27, #:lo12:.LANCHOR23] 14441 cmp w0, 1 14442 bne .L2332 14443 bl nandc_wait_flash_ready 14444.L2331: 14445 mov w0, w26 14446 bl hynix_reconfig_rr_para 14447 mov w0, w26 14448 bl nandc_cs 14449 tst x24, 50331648 14450 bne .L2333 14451 mov w0, w19 14452 bl slc_phy_page_address_calc 14453 mov w19, w0 14454 adrp x0, .LANCHOR0 14455 ldrb w0, [x0, #:lo12:.LANCHOR0] 14456 cbz w0, .L2334 14457 mov w0, w26 14458 bl zftl_flash_enter_slc_mode 14459.L2334: 14460 ubfiz x20, x26, 8, 8 14461 mov w0, 128 14462 add x20, x25, x20 14463 str w0, [x20, 2056] 14464 and w0, w19, 255 14465 str wzr, [x20, 2052] 14466 str wzr, [x20, 2052] 14467 str w0, [x20, 2052] 14468 lsr w0, w19, 8 14469 str w0, [x20, 2052] 14470 lsr w0, w19, 16 14471 str w0, [x20, 2052] 14472 adrp x0, .LANCHOR30 14473 ldrb w0, [x0, #:lo12:.LANCHOR30] 14474 cbz w0, .L2335 14475 lsr w0, w19, 24 14476 str w0, [x20, 2052] 14477.L2335: 14478 mov w0, w19 14479 bl nandc_set_seed 14480 adrp x0, .LANCHOR32+9 14481 mov x4, x23 14482 mov x3, x22 14483 mov w1, 1 14484 ldrb w2, [x0, #:lo12:.LANCHOR32+9] 14485 mov w0, w26 14486 bl nandc_xfer 14487 ldr x27, [sp, 80] 14488 ldp x23, x24, [sp, 48] 14489 ldp x25, x26, [sp, 64] 14490 str w21, [x20, 2056] 14491 ldp x19, x20, [sp, 16] 14492 ldp x21, x22, [sp, 32] 14493 ldp x29, x30, [sp], 96 14494 b nandc_de_cs.constprop.31 14495.L2332: 14496 mov w2, 64 14497 mov w1, w19 14498 mov w0, w20 14499 bl flash_wait_device_ready_raw 14500 b .L2331 14501.L2333: 14502 mov w0, w26 14503 bl zftl_flash_exit_slc_mode 14504 b .L2334 14505.L2328: 14506 ldp x19, x20, [sp, 16] 14507 ldp x21, x22, [sp, 32] 14508 ldp x23, x24, [sp, 48] 14509 ldp x25, x26, [sp, 64] 14510 ldr x27, [sp, 80] 14511 ldp x29, x30, [sp], 96 14512 ret 14513 .size flash_start_page_prog, .-flash_start_page_prog 14514 .section .text.queue_prog_cmd,"ax",@progbits 14515 .align 2 14516 .type queue_prog_cmd, %function 14517queue_prog_cmd: 14518 stp x29, x30, [sp, -32]! 14519 add x29, sp, 0 14520 ldr w1, [x0, 40] 14521 ldr x3, [x0, 24] 14522 ldr x2, [x0, 8] 14523 str x19, [sp, 16] 14524 mov x19, x0 14525 mov w0, 16 14526 bl flash_start_page_prog 14527 adrp x0, .LANCHOR59 14528 ldr w3, [x19, 40] 14529 ldrb w1, [x0, #:lo12:.LANCHOR59] 14530 cmp w1, 255 14531 beq .L2344 14532 adrp x2, .LANCHOR31 14533 mov w5, 24 14534 adrp x6, .LANCHOR55 14535 add x6, x6, :lo12:.LANCHOR55 14536 ldrb w4, [x2, #:lo12:.LANCHOR31] 14537 mov w2, 1 14538 mov x8, x6 14539 sub w5, w5, w4 14540 lsl w2, w2, w4 14541 sub w2, w2, #1 14542 and w2, w2, 65535 14543 asr w3, w3, w5 14544 and w3, w3, w2 14545.L2346: 14546 add x7, x6, x1, lsl 6 14547 ldr w4, [x7, 40] 14548 lsr w4, w4, w5 14549 and w4, w2, w4 14550 cmp w3, w4 14551 bne .L2345 14552 ldrb w4, [x7, 58] 14553 cmp w4, 7 14554 bne .L2345 14555 mov w1, 3 14556 strb w1, [x7, 58] 14557.L2344: 14558 mov w1, 3 14559 strb w1, [x19, 58] 14560 mov w1, 1 14561 strb w1, [x19, 59] 14562 mov w1, -1 14563 strb w1, [x19] 14564 mov x1, x19 14565 add x0, x0, :lo12:.LANCHOR59 14566 ldr x19, [sp, 16] 14567 ldp x29, x30, [sp], 32 14568 b buf_add_tail 14569.L2345: 14570 lsl x1, x1, 6 14571 ldrb w1, [x8, x1] 14572 cmp w1, 255 14573 bne .L2346 14574 b .L2344 14575 .size queue_prog_cmd, .-queue_prog_cmd 14576 .section .text.flash_complete_plane_page_read,"ax",@progbits 14577 .align 2 14578 .global flash_complete_plane_page_read 14579 .type flash_complete_plane_page_read, %function 14580flash_complete_plane_page_read: 14581 stp x29, x30, [sp, -64]! 14582 mov w4, 24 14583 add x29, sp, 0 14584 stp x23, x24, [sp, 48] 14585 mov w24, w0 14586 adrp x0, .LANCHOR31 14587 stp x21, x22, [sp, 32] 14588 stp x19, x20, [sp, 16] 14589 mov w19, 1 14590 ldrb w0, [x0, #:lo12:.LANCHOR31] 14591 mov x20, x1 14592 mov x21, x2 14593 sub w22, w4, w0 14594 lsl w19, w19, w0 14595 sub w19, w19, #1 14596 lsr w0, w24, w22 14597 and w19, w19, w0 14598 adrp x0, .LANCHOR23 14599 and w19, w19, 255 14600 mov x23, x0 14601 ldrb w1, [x0, #:lo12:.LANCHOR23] 14602 cmp w1, w19 14603 bhi .L2353 14604 adrp x1, .LANCHOR179 14605 adrp x0, .LC0 14606 mov w2, 1070 14607 add x1, x1, :lo12:.LANCHOR179 14608 add x0, x0, :lo12:.LC0 14609 bl printf 14610.L2353: 14611 ldrb w0, [x23, #:lo12:.LANCHOR23] 14612 cmp w0, w19 14613 bls .L2364 14614 adrp x2, .LANCHOR29 14615 add x2, x2, :lo12:.LANCHOR29 14616 adrp x0, .LANCHOR7 14617 mov w4, 1 14618 lsl w4, w4, w22 14619 sub w4, w4, #1 14620 ldrb w8, [x2, w19, sxtw] 14621 and w4, w4, w24 14622 ldr x7, [x0, #:lo12:.LANCHOR7] 14623 ubfx x24, x24, 24, 2 14624 mov w0, w8 14625 bl nandc_cs 14626 cbnz w24, .L2355 14627 mov w0, w4 14628 bl slc_phy_page_address_calc 14629 mov w4, w0 14630.L2355: 14631 adrp x0, .LANCHOR25+16 14632 and x1, x8, 255 14633 and w6, w4, 255 14634 lsr w5, w4, 8 14635 ldrb w0, [x0, #:lo12:.LANCHOR25+16] 14636 lsr w3, w4, 16 14637 adrp x2, .LANCHOR30 14638 cmp w0, 1 14639 adrp x0, .LANCHOR21 14640 bne .L2356 14641 add x1, x7, x1, lsl 8 14642 mov w7, 6 14643.L2382: 14644 str w7, [x1, 2056] 14645 str wzr, [x1, 2052] 14646 str wzr, [x1, 2052] 14647 str w6, [x1, 2052] 14648 str w5, [x1, 2052] 14649 str w3, [x1, 2052] 14650 ldrb w2, [x2, #:lo12:.LANCHOR30] 14651 cbz w2, .L2378 14652 lsr w2, w4, 24 14653 str w2, [x1, 2052] 14654.L2378: 14655 ldr x0, [x0, #:lo12:.LANCHOR21] 14656 mov w2, 224 14657 str w2, [x1, 2056] 14658 ldrb w0, [x0, 12] 14659 cmp w0, 3 14660 bne .L2362 14661 cbz w24, .L2362 14662 adrp x0, .LANCHOR35 14663 ldrb w0, [x0, #:lo12:.LANCHOR35] 14664 cbnz w0, .L2362 14665 adrp x0, .LANCHOR36 14666 ldrb w0, [x0, #:lo12:.LANCHOR36] 14667 cbnz w0, .L2362 14668 add w4, w4, w4, lsl 1 14669 sub w0, w24, #1 14670 add w0, w4, w0 14671.L2379: 14672 bl nandc_set_seed 14673 adrp x0, .LANCHOR32+9 14674 mov x4, x21 14675 mov x3, x20 14676 mov w1, 0 14677 ldrb w2, [x0, #:lo12:.LANCHOR32+9] 14678 mov w0, w8 14679 bl nandc_xfer 14680 mov w2, w0 14681 bl nandc_de_cs.constprop.31 14682 mov w0, w2 14683.L2352: 14684 ldp x19, x20, [sp, 16] 14685 ldp x21, x22, [sp, 32] 14686 ldp x23, x24, [sp, 48] 14687 ldp x29, x30, [sp], 64 14688 ret 14689.L2356: 14690 ldr x10, [x0, #:lo12:.LANCHOR21] 14691 add x1, x7, x1, lsl 8 14692 ldrb w10, [x10, 12] 14693 cmp w10, 3 14694 bne .L2359 14695 mov w7, 5 14696 b .L2382 14697.L2359: 14698 str wzr, [x1, 2056] 14699 str wzr, [x1, 2052] 14700 str wzr, [x1, 2052] 14701 str w6, [x1, 2052] 14702 ldrb w2, [x2, #:lo12:.LANCHOR30] 14703 str w5, [x1, 2052] 14704 str w3, [x1, 2052] 14705 cbz w2, .L2361 14706 lsr w2, w4, 24 14707 str w2, [x1, 2052] 14708.L2361: 14709 mov w2, 5 14710 str w2, [x1, 2056] 14711 str wzr, [x1, 2052] 14712 str wzr, [x1, 2052] 14713 b .L2378 14714.L2362: 14715 mov w0, w4 14716 b .L2379 14717.L2364: 14718 mov w0, -1 14719 b .L2352 14720 .size flash_complete_plane_page_read, .-flash_complete_plane_page_read 14721 .section .text.flash_complete_page_read,"ax",@progbits 14722 .align 2 14723 .global flash_complete_page_read 14724 .type flash_complete_page_read, %function 14725flash_complete_page_read: 14726 stp x29, x30, [sp, -96]! 14727 add x29, sp, 0 14728 stp x21, x22, [sp, 32] 14729 mov w21, w0 14730 adrp x0, .LANCHOR31 14731 stp x19, x20, [sp, 16] 14732 mov x22, x1 14733 mov w1, 24 14734 ldrb w20, [x0, #:lo12:.LANCHOR31] 14735 mov w0, 1 14736 stp x23, x24, [sp, 48] 14737 mov x23, x2 14738 sub w1, w1, w20 14739 stp x25, x26, [sp, 64] 14740 lsl w20, w0, w20 14741 sub w20, w20, #1 14742 lsl w19, w0, w1 14743 adrp x0, .LANCHOR23 14744 lsr w1, w21, w1 14745 stp x27, x28, [sp, 80] 14746 and w20, w20, w1 14747 ldrb w0, [x0, #:lo12:.LANCHOR23] 14748 sub w19, w19, #1 14749 and w20, w20, 255 14750 and w19, w19, w21 14751 ubfx x24, x21, 24, 2 14752 cmp w0, w20 14753 bhi .L2384 14754 adrp x1, .LANCHOR180 14755 adrp x0, .LC0 14756 mov w2, 1232 14757 add x1, x1, :lo12:.LANCHOR180 14758 add x0, x0, :lo12:.LC0 14759 bl printf 14760.L2384: 14761 adrp x0, .LANCHOR29 14762 add x0, x0, :lo12:.LANCHOR29 14763 ldrb w25, [x0, w20, sxtw] 14764 adrp x0, .LANCHOR7 14765 ldr x4, [x0, #:lo12:.LANCHOR7] 14766 mov w0, w25 14767 bl nandc_cs 14768 cbnz w24, .L2385 14769 mov w0, w19 14770 bl slc_phy_page_address_calc 14771 mov w19, w0 14772.L2385: 14773 adrp x20, .LANCHOR32 14774 add x0, x20, :lo12:.LANCHOR32 14775 ldrb w0, [x0, 12] 14776 cmp w0, 3 14777 bne .L2386 14778 ubfiz x0, x25, 8, 8 14779 mov w1, 5 14780 add x0, x4, x0 14781 str w1, [x0, 2056] 14782 and w1, w19, 255 14783 str wzr, [x0, 2052] 14784 str wzr, [x0, 2052] 14785 str w1, [x0, 2052] 14786 lsr w1, w19, 8 14787 str w1, [x0, 2052] 14788 lsr w1, w19, 16 14789 str w1, [x0, 2052] 14790 mov w1, 224 14791 str w1, [x0, 2056] 14792.L2386: 14793 adrp x0, .LANCHOR21 14794 ldr x0, [x0, #:lo12:.LANCHOR21] 14795 ldrb w0, [x0, 12] 14796 cmp w0, 3 14797 bne .L2387 14798 cbz w24, .L2387 14799 adrp x0, .LANCHOR35 14800 ldrb w0, [x0, #:lo12:.LANCHOR35] 14801 cbnz w0, .L2387 14802 adrp x0, .LANCHOR36 14803 ldrb w0, [x0, #:lo12:.LANCHOR36] 14804 cbnz w0, .L2387 14805 sub w0, w24, #1 14806 add w1, w19, w19, lsl 1 14807 add w0, w0, w1 14808.L2414: 14809 add x28, x20, :lo12:.LANCHOR32 14810 bl nandc_set_seed 14811 mov x4, x23 14812 mov x3, x22 14813 mov w1, 0 14814 mov w0, w25 14815 ldrb w2, [x28, 9] 14816 bl nandc_xfer 14817 cmn w0, #1 14818 bne .L2389 14819 adrp x26, .LANCHOR51 14820 ldrb w27, [x26, #:lo12:.LANCHOR51] 14821 cbz w27, .L2390 14822 ldrb w4, [x28, 9] 14823 mov x3, x23 14824 strb wzr, [x26, #:lo12:.LANCHOR51] 14825 mov x2, x22 14826 orr w1, w19, w24, lsl 24 14827 mov w0, w25 14828 bl flash_read_page 14829 strb w27, [x26, #:lo12:.LANCHOR51] 14830 cbnz w24, .L2391 14831.L2396: 14832 adrp x1, .LANCHOR0 14833 ldrb w1, [x1, #:lo12:.LANCHOR0] 14834 cbz w1, .L2391 14835 adrp x1, .LANCHOR49 14836 ldrb w1, [x1, #:lo12:.LANCHOR49] 14837 add w1, w1, w1, lsl 1 14838 cmp w0, w1, lsr 2 14839 blt .L2391 14840 add x20, x20, :lo12:.LANCHOR32 14841 ldrb w1, [x20, 19] 14842 sub w1, w1, #4 14843 and w1, w1, 255 14844 cmp w1, 4 14845 mov w1, 256 14846 csel w0, w0, w1, hi 14847.L2383: 14848 ldp x19, x20, [sp, 16] 14849 ldp x21, x22, [sp, 32] 14850 ldp x23, x24, [sp, 48] 14851 ldp x25, x26, [sp, 64] 14852 ldp x27, x28, [sp, 80] 14853 ldp x29, x30, [sp], 96 14854 ret 14855.L2387: 14856 mov w0, w19 14857 b .L2414 14858.L2391: 14859 cmn w0, #1 14860 bne .L2383 14861.L2397: 14862 adrp x0, .LANCHOR172 14863 ldr x5, [x0, #:lo12:.LANCHOR172] 14864 cbnz x5, .L2393 14865.L2395: 14866 adrp x0, .LANCHOR51 14867 mov w3, -1 14868 mov w2, w21 14869 mov w1, 0 14870 ldrb w4, [x0, #:lo12:.LANCHOR51] 14871 adrp x0, .LC133 14872 add x0, x0, :lo12:.LC133 14873 bl printf 14874 adrp x0, .LANCHOR26 14875 ldrb w0, [x0, #:lo12:.LANCHOR26] 14876 cbnz w0, .L2394 14877 mov w0, -1 14878 b .L2383 14879.L2393: 14880 add x0, x20, :lo12:.LANCHOR32 14881 mov x3, x23 14882 mov x2, x22 14883 orr w1, w19, w24, lsl 24 14884 ldrb w4, [x0, 9] 14885 mov w0, w25 14886 blr x5 14887 cmn w0, #1 14888 beq .L2395 14889 b .L2383 14890.L2394: 14891 add x20, x20, :lo12:.LANCHOR32 14892 orr w1, w19, w24, lsl 24 14893 mov x3, x23 14894 mov x2, x22 14895 mov w0, w25 14896 ldrb w4, [x20, 9] 14897 ldp x21, x22, [sp, 32] 14898 ldp x19, x20, [sp, 16] 14899 ldp x23, x24, [sp, 48] 14900 ldp x25, x26, [sp, 64] 14901 ldp x27, x28, [sp, 80] 14902 ldp x29, x30, [sp], 96 14903 b flash_ddr_tuning_read 14904.L2390: 14905 cbz w24, .L2396 14906 b .L2397 14907.L2389: 14908 cbnz w24, .L2383 14909 b .L2396 14910 .size flash_complete_page_read, .-flash_complete_page_read 14911 .section .text.queue_wait_first_req_completed,"ax",@progbits 14912 .align 2 14913 .type queue_wait_first_req_completed, %function 14914queue_wait_first_req_completed: 14915 stp x29, x30, [sp, -96]! 14916 adrp x0, .LANCHOR59 14917 add x29, sp, 0 14918 stp x19, x20, [sp, 16] 14919 ldrb w0, [x0, #:lo12:.LANCHOR59] 14920 stp x21, x22, [sp, 32] 14921 stp x23, x24, [sp, 48] 14922 cmp w0, 255 14923 stp x25, x26, [sp, 64] 14924 str x27, [sp, 80] 14925 bne .L2416 14926.L2449: 14927 mov w21, 0 14928 b .L2415 14929.L2416: 14930 adrp x19, .LANCHOR55 14931 sxtw x20, w0 14932 add x1, x19, :lo12:.LANCHOR55 14933 add x1, x1, x20, lsl 6 14934 ldrb w2, [x1, 58] 14935 ldr w21, [x1, 40] 14936 sub w3, w2, #1 14937 cmp w3, 10 14938 bhi .L2449 14939 adrp x1, .L2419 14940 add x1, x1, :lo12:.L2419 14941 ldrh w1, [x1,w3,uxtw #1] 14942 adr x3, .Lrtx2419 14943 add x1, x3, w1, sxth #2 14944 br x1 14945.Lrtx2419: 14946 .section .rodata.queue_wait_first_req_completed,"a",@progbits 14947 .align 0 14948 .align 2 14949.L2419: 14950 .2byte (.L2418 - .Lrtx2419) / 4 14951 .2byte (.L2420 - .Lrtx2419) / 4 14952 .2byte (.L2421 - .Lrtx2419) / 4 14953 .2byte (.L2421 - .Lrtx2419) / 4 14954 .2byte (.L2421 - .Lrtx2419) / 4 14955 .2byte (.L2421 - .Lrtx2419) / 4 14956 .2byte (.L2422 - .Lrtx2419) / 4 14957 .2byte (.L2423 - .Lrtx2419) / 4 14958 .2byte (.L2424 - .Lrtx2419) / 4 14959 .2byte (.L2421 - .Lrtx2419) / 4 14960 .2byte (.L2424 - .Lrtx2419) / 4 14961 .section .text.queue_wait_first_req_completed 14962.L2418: 14963 bl nandc_wait_flash_ready 14964 add x0, x19, :lo12:.LANCHOR55 14965 add x0, x0, x20, lsl 6 14966 ldp x1, x2, [x0, 8] 14967 cbz x2, .L2425 14968 ldrb w3, [x0, 56] 14969 adrp x0, .LANCHOR68 14970 ldrb w0, [x0, #:lo12:.LANCHOR68] 14971 cmp w3, w0 14972 csel x1, x1, x2, ne 14973.L2425: 14974 add x19, x19, :lo12:.LANCHOR55 14975 mov w0, w21 14976 add x20, x19, x20, lsl 6 14977 ldr x2, [x20, 24] 14978 bl flash_complete_page_read 14979 str w0, [x20, 52] 14980 mov w0, 13 14981 strb w0, [x20, 58] 14982 ldrb w0, [x20, 2] 14983 orr w0, w0, 8 14984 strb w0, [x20, 2] 14985 b .L2449 14986.L2420: 14987 bl nandc_wait_flash_ready 14988 add x0, x19, :lo12:.LANCHOR55 14989 lsl x2, x20, 6 14990 add x1, x0, x2 14991 ldrb w21, [x0, x2] 14992 add x0, x0, x21, lsl 6 14993 ldr x24, [x0, 8] 14994 ldp x26, x0, [x1, 8] 14995 cbz x0, .L2426 14996 ldrb w2, [x1, 56] 14997 adrp x1, .LANCHOR68 14998 ldrb w1, [x1, #:lo12:.LANCHOR68] 14999 cmp w2, w1 15000 csel x26, x26, x0, ne 15001.L2426: 15002 add x0, x19, :lo12:.LANCHOR55 15003 add x0, x0, x21, lsl 6 15004 ldr x1, [x0, 16] 15005 cbz x1, .L2427 15006 ldrb w2, [x0, 56] 15007 adrp x0, .LANCHOR68 15008 ldrb w0, [x0, #:lo12:.LANCHOR68] 15009 cmp w2, w0 15010 csel x24, x24, x1, ne 15011.L2427: 15012 add x22, x19, :lo12:.LANCHOR55 15013 mov x1, x26 15014 add x27, x22, x20, lsl 6 15015 add x22, x22, x21, lsl 6 15016 ldr x2, [x27, 24] 15017 ldr w0, [x27, 40] 15018 bl flash_complete_plane_page_read 15019 mov w23, w0 15020 ldr x2, [x22, 24] 15021 mov x1, x24 15022 ldr w0, [x22, 40] 15023 bl flash_complete_plane_page_read 15024 mov w25, w0 15025 cmn w23, #1 15026 beq .L2428 15027 ldr w0, [x27, 36] 15028 cmn w0, #1 15029 beq .L2429 15030 ldr x1, [x27, 24] 15031 ldr w1, [x1, 4] 15032 cmp w0, w1 15033 beq .L2429 15034.L2428: 15035 adrp x0, .LANCHOR31 15036 add x22, x19, :lo12:.LANCHOR55 15037 add x22, x22, x20, lsl 6 15038 mov w5, 1 15039 ldrb w2, [x0, #:lo12:.LANCHOR31] 15040 mov w0, 24 15041 sub w0, w0, w2 15042 ldr x3, [x22, 24] 15043 lsl w5, w5, w2 15044 adrp x2, .LANCHOR68 15045 sub w5, w5, #1 15046 ldr w1, [x22, 40] 15047 ldrb w4, [x2, #:lo12:.LANCHOR68] 15048 mov x2, x26 15049 lsl w6, w5, w0 15050 lsr w0, w1, w0 15051 bic w1, w1, w6 15052 and w0, w0, w5 15053 bl flash_read_page_en 15054 mov w23, w0 15055 ldr w2, [x22, 36] 15056 cmn w2, #1 15057 beq .L2430 15058 ldr x0, [x22, 24] 15059 ldr w4, [x0, 4] 15060 cmp w2, w4 15061 beq .L2430 15062 adrp x1, .LANCHOR19 15063 ldr w1, [x1, #:lo12:.LANCHOR19] 15064 tbz x1, 6, .L2430 15065 ldr w3, [x0] 15066 adrp x0, .LC134 15067 ldr w1, [x22, 40] 15068 add x0, x0, :lo12:.LC134 15069 bl printf 15070.L2430: 15071 add x0, x19, :lo12:.LANCHOR55 15072 add x0, x0, x20, lsl 6 15073 ldr w1, [x0, 36] 15074 cmn w1, #1 15075 beq .L2429 15076 ldr x0, [x0, 24] 15077 ldr w0, [x0, 4] 15078 cmp w1, w0 15079 beq .L2429 15080 adrp x1, .LANCHOR181 15081 adrp x0, .LC0 15082 mov w2, 431 15083 add x1, x1, :lo12:.LANCHOR181 15084 add x0, x0, :lo12:.LC0 15085 bl printf 15086.L2429: 15087 add x0, x19, :lo12:.LANCHOR55 15088 mov w1, 13 15089 add x20, x0, x20, lsl 6 15090 cmn w25, #1 15091 strb w1, [x20, 58] 15092 ldrb w1, [x20, 2] 15093 str w23, [x20, 52] 15094 orr w1, w1, 8 15095 strb w1, [x20, 2] 15096 beq .L2431 15097 add x0, x0, x21, lsl 6 15098 ldr w1, [x0, 36] 15099 cmn w1, #1 15100 beq .L2433 15101 ldr x0, [x0, 24] 15102 ldr w0, [x0, 4] 15103 cmp w1, w0 15104 beq .L2433 15105.L2431: 15106 adrp x0, .LANCHOR31 15107 add x20, x19, :lo12:.LANCHOR55 15108 add x20, x20, x21, lsl 6 15109 mov w5, 1 15110 ldrb w2, [x0, #:lo12:.LANCHOR31] 15111 mov w0, 24 15112 sub w0, w0, w2 15113 ldr x3, [x20, 24] 15114 lsl w5, w5, w2 15115 adrp x2, .LANCHOR68 15116 sub w5, w5, #1 15117 ldr w1, [x20, 40] 15118 ldrb w4, [x2, #:lo12:.LANCHOR68] 15119 mov x2, x24 15120 lsl w6, w5, w0 15121 lsr w0, w1, w0 15122 bic w1, w1, w6 15123 and w0, w0, w5 15124 bl flash_read_page_en 15125 ldr w2, [x20, 36] 15126 cmn w2, #1 15127 beq .L2435 15128 ldr x0, [x20, 24] 15129 ldr w4, [x0, 4] 15130 cmp w2, w4 15131 beq .L2435 15132 adrp x1, .LANCHOR19 15133 ldr w1, [x1, #:lo12:.LANCHOR19] 15134 tbz x1, 6, .L2435 15135 ldr w3, [x0] 15136 adrp x0, .LC134 15137 ldr w1, [x20, 40] 15138 add x0, x0, :lo12:.LC134 15139 bl printf 15140.L2435: 15141 add x0, x19, :lo12:.LANCHOR55 15142 add x0, x0, x21, lsl 6 15143 ldr w1, [x0, 36] 15144 cmn w1, #1 15145 beq .L2433 15146 ldr x0, [x0, 24] 15147 ldr w0, [x0, 4] 15148 cmp w1, w0 15149 beq .L2433 15150 adrp x1, .LANCHOR181 15151 adrp x0, .LC0 15152 mov w2, 450 15153 add x1, x1, :lo12:.LANCHOR181 15154 add x0, x0, :lo12:.LC0 15155 bl printf 15156.L2433: 15157 add x19, x19, :lo12:.LANCHOR55 15158 mov w0, 13 15159 add x21, x19, x21, lsl 6 15160 strb w0, [x21, 58] 15161 ldrb w0, [x21, 2] 15162 str w23, [x21, 52] 15163 orr w0, w0, 8 15164 strb w0, [x21, 2] 15165 b .L2449 15166.L2421: 15167 mov w0, w21 15168 mov w1, 64 15169 bl flash_wait_device_ready 15170 mov w21, w0 15171 tbz x21, 6, .L2449 15172 mov w0, 5 15173 tst w21, w0 15174 beq .L2437 15175 add x19, x19, :lo12:.LANCHOR55 15176 mov w0, 12 15177 add x20, x19, x20, lsl 6 15178 mov w4, 12 15179 mov w2, w21 15180 ldrb w1, [x20, 1] 15181 ldr w3, [x20, 40] 15182 strb w0, [x20, 58] 15183 adrp x0, .LC135 15184 add x0, x0, :lo12:.LC135 15185 bl printf 15186.L2507: 15187 mov w0, -1 15188 str w0, [x20, 52] 15189 b .L2415 15190.L2437: 15191 add x21, x19, :lo12:.LANCHOR55 15192 mov w0, 13 15193 add x21, x21, x20, lsl 6 15194 strb w0, [x21, 58] 15195 adrp x0, .LANCHOR69 15196 ldr x0, [x0, #:lo12:.LANCHOR69] 15197 ldr w1, [x0, 156] 15198 mov w0, 20041 15199 str wzr, [x21, 52] 15200 movk w0, 0x444b, lsl 16 15201 cmp w1, w0 15202 bne .L2449 15203 ldrh w0, [x21, 50] 15204 cbnz w0, .L2449 15205 adrp x0, .LANCHOR31 15206 mov w5, 1 15207 adrp x22, .LANCHOR173 15208 ldr w1, [x21, 40] 15209 ldrb w2, [x0, #:lo12:.LANCHOR31] 15210 mov w0, 24 15211 ldr x3, [x22, #:lo12:.LANCHOR173] 15212 sub w0, w0, w2 15213 lsl w5, w5, w2 15214 adrp x2, .LANCHOR68 15215 sub w5, w5, #1 15216 ldrb w4, [x2, #:lo12:.LANCHOR68] 15217 adrp x2, .LANCHOR174 15218 lsl w6, w5, w0 15219 ldr x2, [x2, #:lo12:.LANCHOR174] 15220 lsr w0, w1, w0 15221 bic w1, w1, w6 15222 and w0, w0, w5 15223 bl flash_read_page_en 15224 cmn w0, #1 15225 beq .L2438 15226 ldr x1, [x22, #:lo12:.LANCHOR173] 15227 ldr x2, [x21, 24] 15228 ldr w1, [x1] 15229 ldr w2, [x2] 15230 cmp w2, w1 15231 beq .L2449 15232.L2438: 15233 add x19, x19, :lo12:.LANCHOR55 15234 adrp x1, .LANCHOR51 15235 add x20, x19, x20, lsl 6 15236 mov w3, w0 15237 ldrb w4, [x1, #:lo12:.LANCHOR51] 15238 adrp x0, .LC136 15239 add x0, x0, :lo12:.LC136 15240 ldrb w1, [x20, 1] 15241 ldr w2, [x20, 40] 15242 bl printf 15243 mov w0, -1 15244 str w0, [x20, 52] 15245 b .L2449 15246.L2424: 15247 cmp w2, 11 15248 mov w1, 3 15249 mov w5, 10 15250 csel w5, w5, w1, eq 15251 adrp x1, .LANCHOR31 15252 mov w4, 24 15253 mov w2, 1 15254 add x22, x19, :lo12:.LANCHOR55 15255 ldrb w3, [x1, #:lo12:.LANCHOR31] 15256 ubfiz x0, x0, 6, 8 15257 add x0, x22, x0 15258 mov x24, x1 15259 sub w4, w4, w3 15260 lsl w2, w2, w3 15261 sub w2, w2, #1 15262 lsr w3, w21, w4 15263 and w3, w3, w2 15264 and w3, w3, 65535 15265.L2440: 15266 ldrb w1, [x0] 15267 cmp w1, 255 15268 bne .L2447 15269 mov w21, -1 15270 b .L2415 15271.L2447: 15272 sxtw x23, w1 15273 ubfiz x0, x1, 6, 8 15274 add x1, x22, x23, lsl 6 15275 add x0, x22, x0 15276 ldrb w6, [x1, 58] 15277 cmp w6, w5 15278 bne .L2440 15279 ldr w1, [x1, 40] 15280 lsr w1, w1, w4 15281 and w1, w1, w2 15282 cmp w3, w1 15283 bne .L2440 15284 mov w0, w21 15285 mov w1, 64 15286 bl flash_wait_device_ready 15287 mov w21, w0 15288 tbnz x21, 6, .L2442 15289.L2506: 15290 mov w21, 0 15291 b .L2443 15292.L2442: 15293 tst x21, 15 15294 beq .L2444 15295 add x22, x22, x20, lsl 6 15296 mov w2, w0 15297 mov w4, 12 15298 adrp x0, .LC137 15299 add x0, x0, :lo12:.LC137 15300 ldrb w1, [x22, 1] 15301 ldr w3, [x22, 40] 15302 bl printf 15303 mov w0, 12 15304 strb w0, [x22, 58] 15305 mov w0, -1 15306 str w0, [x22, 52] 15307.L2443: 15308 add x1, x19, :lo12:.LANCHOR55 15309 add x20, x1, x20, lsl 6 15310 add x1, x1, x23, lsl 6 15311 ldrb w0, [x20, 58] 15312 strb w0, [x1, 58] 15313 ldr w0, [x20, 52] 15314 str w0, [x1, 52] 15315.L2415: 15316 mov w0, w21 15317 ldr x27, [sp, 80] 15318 ldp x19, x20, [sp, 16] 15319 ldp x21, x22, [sp, 32] 15320 ldp x23, x24, [sp, 48] 15321 ldp x25, x26, [sp, 64] 15322 ldp x29, x30, [sp], 96 15323 ret 15324.L2444: 15325 add x21, x22, x20, lsl 6 15326 mov w0, 13 15327 strb w0, [x21, 58] 15328 adrp x0, .LANCHOR69 15329 ldr x0, [x0, #:lo12:.LANCHOR69] 15330 ldr w1, [x0, 156] 15331 mov w0, 20041 15332 str wzr, [x21, 52] 15333 movk w0, 0x444b, lsl 16 15334 cmp w1, w0 15335 bne .L2506 15336 ldrh w0, [x21, 50] 15337 cbnz w0, .L2506 15338 ldrb w2, [x24, #:lo12:.LANCHOR31] 15339 mov w5, 1 15340 mov w0, 24 15341 adrp x22, .LANCHOR173 15342 sub w0, w0, w2 15343 ldr w1, [x21, 40] 15344 lsl w5, w5, w2 15345 adrp x2, .LANCHOR68 15346 sub w5, w5, #1 15347 ldr x3, [x22, #:lo12:.LANCHOR173] 15348 ldrb w4, [x2, #:lo12:.LANCHOR68] 15349 adrp x2, .LANCHOR174 15350 lsl w6, w5, w0 15351 ldr x2, [x2, #:lo12:.LANCHOR174] 15352 lsr w0, w1, w0 15353 bic w1, w1, w6 15354 and w0, w0, w5 15355 bl flash_read_page_en 15356 cmn w0, #1 15357 beq .L2446 15358 ldr x1, [x22, #:lo12:.LANCHOR173] 15359 ldr x2, [x21, 24] 15360 ldr w1, [x1] 15361 ldr w2, [x2] 15362 cmp w2, w1 15363 beq .L2506 15364.L2446: 15365 add x21, x19, :lo12:.LANCHOR55 15366 adrp x1, .LANCHOR51 15367 add x21, x21, x20, lsl 6 15368 mov w3, w0 15369 ldrb w4, [x1, #:lo12:.LANCHOR51] 15370 adrp x0, .LC138 15371 add x0, x0, :lo12:.LC138 15372 ldrb w1, [x21, 1] 15373 ldr w2, [x21, 40] 15374 bl printf 15375 mov w0, -1 15376 str w0, [x21, 52] 15377 b .L2506 15378.L2422: 15379 mov w0, w21 15380 mov w1, 32 15381 bl flash_wait_device_ready 15382 mov w21, w0 15383 tbz x21, 5, .L2449 15384 add x19, x19, :lo12:.LANCHOR55 15385 tst x21, 15 15386 add x20, x19, x20, lsl 6 15387 beq .L2448 15388 mov w0, 12 15389 strb w0, [x20, 58] 15390 b .L2507 15391.L2448: 15392 mov w0, 13 15393 str wzr, [x20, 52] 15394 strb w0, [x20, 58] 15395 b .L2449 15396.L2423: 15397 mov w1, 64 15398 mov w0, w21 15399 bl flash_wait_device_ready 15400 tbz x0, 6, .L2449 15401 add x19, x19, :lo12:.LANCHOR55 15402 add x19, x19, x20, lsl 6 15403 str w0, [x19, 52] 15404 mov w0, 7 15405 strb w0, [x19, 58] 15406 b .L2449 15407 .size queue_wait_first_req_completed, .-queue_wait_first_req_completed 15408 .section .text.sblk_prog_page,"ax",@progbits 15409 .align 2 15410 .global sblk_prog_page 15411 .type sblk_prog_page, %function 15412sblk_prog_page: 15413 stp x29, x30, [sp, -96]! 15414 add x29, sp, 0 15415 stp x19, x20, [sp, 16] 15416 mov x19, x0 15417 ldrh w0, [x0, 50] 15418 and w20, w1, 255 15419 stp x21, x22, [sp, 32] 15420 stp x23, x24, [sp, 48] 15421 stp x25, x26, [sp, 64] 15422 stp x27, x28, [sp, 80] 15423 cbz w0, .L2509 15424 adrp x0, .LANCHOR19 15425 ldr w0, [x0, #:lo12:.LANCHOR19] 15426 tbz x0, 8, .L2509 15427 ldr w1, [x19, 40] 15428 adrp x0, .LC139 15429 mov w2, w20 15430 add x0, x0, :lo12:.LC139 15431 bl printf 15432.L2509: 15433 adrp x23, .LANCHOR44 15434 adrp x25, .LANCHOR31 15435 add x23, x23, :lo12:.LANCHOR44 15436 add x26, x25, :lo12:.LANCHOR31 15437 mov w21, 0 15438.L2510: 15439 cbnz w20, .L2521 15440.L2537: 15441 mov w0, 0 15442 ldp x19, x20, [sp, 16] 15443 ldp x21, x22, [sp, 32] 15444 ldp x23, x24, [sp, 48] 15445 ldp x25, x26, [sp, 64] 15446 ldp x27, x28, [sp, 80] 15447 ldp x29, x30, [sp], 96 15448 ret 15449.L2521: 15450 ldrb w24, [x19] 15451 ldr w22, [x19, 40] 15452.L2511: 15453 mov w1, 1 15454 mov w0, w22 15455 bl queue_lun_state 15456 cbnz w0, .L2512 15457 cmp w20, 1 15458 beq .L2513 15459 ldrb w0, [x23] 15460 cbz w0, .L2513 15461 adrp x0, .LANCHOR36 15462 ldrb w0, [x0, #:lo12:.LANCHOR36] 15463 cbz w0, .L2514 15464.L2513: 15465 mov x0, x19 15466 bl queue_prog_cmd 15467.L2515: 15468 subs w20, w20, #1 15469 beq .L2537 15470 ubfiz x24, x24, 6, 8 15471 adrp x19, .LANCHOR55 15472 add x19, x19, :lo12:.LANCHOR55 15473 add x19, x19, x24 15474 b .L2510 15475.L2512: 15476 bl queue_wait_first_req_completed 15477 bl queue_remove_completed_req 15478 b .L2511 15479.L2514: 15480 ldrb w1, [x25, #:lo12:.LANCHOR31] 15481 mov w27, 24 15482 mov w0, 1 15483 sub w27, w27, w1 15484 lsl w0, w0, w1 15485 sub w0, w0, #1 15486 lsr w27, w22, w27 15487 and w27, w27, w0 15488 ldrb w0, [x19] 15489 and w27, w27, 65535 15490 cmp w0, 255 15491 bne .L2516 15492 adrp x1, .LANCHOR182 15493 adrp x0, .LC0 15494 mov w2, 697 15495 add x1, x1, :lo12:.LANCHOR182 15496 add x0, x0, :lo12:.LC0 15497 bl printf 15498.L2516: 15499 ldrb w0, [x19] 15500 adrp x1, .LANCHOR55 15501 add x1, x1, :lo12:.LANCHOR55 15502 mov w3, 24 15503 mov w28, 1 15504 add x0, x1, x0, lsl 6 15505 ldr w4, [x0, 40] 15506 ldrb w0, [x26] 15507 sub w3, w3, w0 15508 lsl w0, w28, w0 15509 sub w0, w0, #1 15510 lsr w1, w4, w3 15511 and w0, w0, w1 15512 cmp w27, w0, uxth 15513 bne .L2517 15514 adrp x0, .LANCHOR80 15515 ldrh w2, [x0, #:lo12:.LANCHOR80] 15516 adrp x0, .LANCHOR81 15517 ldrb w1, [x0, #:lo12:.LANCHOR81] 15518 sub w0, w3, w2 15519 lsr w5, w22, w2 15520 sub w3, w1, #1 15521 lsl w0, w28, w0 15522 sub w0, w0, #1 15523 lsl w1, w28, w2 15524 and w0, w0, w3 15525 sub w1, w1, #1 15526 and w0, w0, 65535 15527 and w1, w1, 65535 15528 and w5, w0, w5 15529 lsr w2, w4, w2 15530 and w0, w0, w2 15531 and w22, w1, w22 15532 cmp w5, w0 15533 and w1, w1, w4 15534 ccmp w22, w1, 0, ne 15535 bne .L2517 15536 cmp w21, w3 15537 beq .L2517 15538 ldr w1, [x19, 40] 15539 mov w0, 17 15540 ldr x2, [x19, 8] 15541 add w21, w21, w28 15542 ldr x3, [x19, 24] 15543 bl flash_start_page_prog 15544 strb w28, [x19, 59] 15545 mov w0, 9 15546 strb w0, [x19, 58] 15547 mov w0, -1 15548 strb w0, [x19] 15549 mov x1, x19 15550 adrp x0, .LANCHOR59 15551 add x0, x0, :lo12:.LANCHOR59 15552 bl buf_add_tail 15553 b .L2515 15554.L2517: 15555 mov x0, x19 15556 mov w21, 0 15557 bl queue_prog_cmd 15558 b .L2515 15559 .size sblk_prog_page, .-sblk_prog_page 15560 .section .text.sblk_wait_write_queue_completed,"ax",@progbits 15561 .align 2 15562 .global sblk_wait_write_queue_completed 15563 .type sblk_wait_write_queue_completed, %function 15564sblk_wait_write_queue_completed: 15565 stp x29, x30, [sp, -32]! 15566 add x29, sp, 0 15567 str x19, [sp, 16] 15568 adrp x19, .LANCHOR59 15569 add x19, x19, :lo12:.LANCHOR59 15570.L2540: 15571 ldrb w0, [x19] 15572 cmp w0, 255 15573 bne .L2541 15574 ldr x19, [sp, 16] 15575 ldp x29, x30, [sp], 32 15576 ret 15577.L2541: 15578 bl queue_wait_first_req_completed 15579 bl queue_remove_completed_req 15580 b .L2540 15581 .size sblk_wait_write_queue_completed, .-sblk_wait_write_queue_completed 15582 .section .text.ftl_flush,"ax",@progbits 15583 .align 2 15584 .global ftl_flush 15585 .type ftl_flush, %function 15586ftl_flush: 15587 stp x29, x30, [sp, -32]! 15588 adrp x0, .LANCHOR183 15589 add x29, sp, 0 15590 ldrb w1, [x0, #:lo12:.LANCHOR183] 15591 stp x19, x20, [sp, 16] 15592 mov x19, x0 15593 adrp x20, .LANCHOR184 15594 cbz w1, .L2544 15595 ldrb w2, [x20, #:lo12:.LANCHOR184] 15596 adrp x0, .LANCHOR55 15597 add x0, x0, :lo12:.LANCHOR55 15598 add x0, x0, x2, lsl 6 15599 bl sblk_prog_page 15600.L2544: 15601 mov w0, -1 15602 strb wzr, [x19, #:lo12:.LANCHOR183] 15603 strb w0, [x20, #:lo12:.LANCHOR184] 15604 bl sblk_wait_write_queue_completed 15605 bl ftl_write_completed 15606 ldp x19, x20, [sp, 16] 15607 mov w0, -1 15608 ldp x29, x30, [sp], 32 15609 b ftl_vpn_decrement 15610 .size ftl_flush, .-ftl_flush 15611 .section .text.ftl_read_page,"ax",@progbits 15612 .align 2 15613 .global ftl_read_page 15614 .type ftl_read_page, %function 15615ftl_read_page: 15616 stp x29, x30, [sp, -64]! 15617 add x29, sp, 0 15618 stp x19, x20, [sp, 16] 15619 and w19, w0, 255 15620 stp x21, x22, [sp, 32] 15621 mov w20, w1 15622 mov x21, x2 15623 mov x22, x3 15624 str x23, [sp, 48] 15625 mov w23, w4 15626 bl sblk_wait_write_queue_completed 15627 mov w4, w23 15628 mov x3, x22 15629 mov x2, x21 15630 mov w1, w20 15631 mov w0, w19 15632 ldr x23, [sp, 48] 15633 ldp x19, x20, [sp, 16] 15634 ldp x21, x22, [sp, 32] 15635 ldp x29, x30, [sp], 64 15636 b flash_read_page_en 15637 .size ftl_read_page, .-ftl_read_page 15638 .section .text.ftl_read_ppa_page,"ax",@progbits 15639 .align 2 15640 .global ftl_read_ppa_page 15641 .type ftl_read_ppa_page, %function 15642ftl_read_ppa_page: 15643 stp x29, x30, [sp, -64]! 15644 mov w5, 1 15645 add x29, sp, 0 15646 stp x19, x20, [sp, 16] 15647 mov w20, w0 15648 adrp x0, .LANCHOR31 15649 mov w19, 24 15650 stp x21, x22, [sp, 32] 15651 mov x21, x1 15652 ldrb w0, [x0, #:lo12:.LANCHOR31] 15653 mov x22, x2 15654 str x23, [sp, 48] 15655 mov w23, w3 15656 sub w19, w19, w0 15657 lsl w5, w5, w0 15658 sub w5, w5, #1 15659 lsr w19, w20, w19 15660 and w19, w19, w5 15661 and w19, w19, 255 15662 bl sblk_wait_write_queue_completed 15663 mov w4, w23 15664 mov x3, x22 15665 mov x2, x21 15666 mov w1, w20 15667 mov w0, w19 15668 ldr x23, [sp, 48] 15669 ldp x19, x20, [sp, 16] 15670 ldp x21, x22, [sp, 32] 15671 ldp x29, x30, [sp], 64 15672 b flash_read_page_en 15673 .size ftl_read_ppa_page, .-ftl_read_ppa_page 15674 .section .text.sblk_read_page,"ax",@progbits 15675 .align 2 15676 .global sblk_read_page 15677 .type sblk_read_page, %function 15678sblk_read_page: 15679 stp x29, x30, [sp, -128]! 15680 add x29, sp, 0 15681 stp x21, x22, [sp, 32] 15682 and w22, w1, 255 15683 stp x27, x28, [sp, 80] 15684 mov w21, w22 15685 stp x19, x20, [sp, 16] 15686 adrp x27, .LANCHOR31 15687 stp x23, x24, [sp, 48] 15688 mov x19, x0 15689 stp x25, x26, [sp, 64] 15690 mov x23, x0 15691 adrp x25, .LANCHOR185 15692 add x28, x27, :lo12:.LANCHOR31 15693 add x25, x25, :lo12:.LANCHOR185 15694.L2554: 15695 cbnz w21, .L2564 15696.L2577: 15697 adrp x19, .LANCHOR55 15698 add x19, x19, :lo12:.LANCHOR55 15699.L2565: 15700 cbnz w22, .L2567 15701 ldp x19, x20, [sp, 16] 15702 mov w0, 0 15703 ldp x21, x22, [sp, 32] 15704 ldp x23, x24, [sp, 48] 15705 ldp x25, x26, [sp, 64] 15706 ldp x27, x28, [sp, 80] 15707 ldp x29, x30, [sp], 128 15708 ret 15709.L2564: 15710 ldrb w24, [x19] 15711 ldr w26, [x19, 40] 15712.L2555: 15713 mov w1, 0 15714 mov w0, w26 15715 bl queue_lun_state 15716 cbnz w0, .L2556 15717 cmp w21, 1 15718 beq .L2561 15719 ldrb w0, [x25] 15720 cbnz w0, .L2558 15721.L2561: 15722 mov x0, x19 15723 bl queue_read_cmd 15724 b .L2559 15725.L2556: 15726 bl queue_wait_first_req_completed 15727 bl queue_remove_completed_req 15728 b .L2555 15729.L2558: 15730 ldrb w1, [x27, #:lo12:.LANCHOR31] 15731 mov w20, 24 15732 mov w0, 1 15733 sub w20, w20, w1 15734 lsl w0, w0, w1 15735 sub w0, w0, #1 15736 lsr w20, w26, w20 15737 and w20, w20, w0 15738 ldrb w0, [x19] 15739 and w20, w20, 65535 15740 cmp w0, 255 15741 bne .L2560 15742 adrp x1, .LANCHOR186 15743 adrp x0, .LC0 15744 mov w2, 782 15745 add x1, x1, :lo12:.LANCHOR186 15746 add x0, x0, :lo12:.LC0 15747 bl printf 15748.L2560: 15749 ldrb w4, [x19] 15750 adrp x2, .LANCHOR55 15751 add x2, x2, :lo12:.LANCHOR55 15752 ldrb w7, [x28] 15753 mov w0, 24 15754 mov w3, 1 15755 sbfiz x5, x4, 6, 32 15756 sub w0, w0, w7 15757 add x6, x2, x5 15758 lsl w3, w3, w7 15759 sub w3, w3, #1 15760 ldr w1, [x6, 40] 15761 lsr w0, w1, w0 15762 and w0, w0, w3 15763 cmp w20, w0, uxth 15764 bne .L2561 15765 adrp x0, .LANCHOR117 15766 ldrh w0, [x0, #:lo12:.LANCHOR117] 15767 add w26, w0, w26 15768 cmp w1, w26 15769 bne .L2561 15770 ldr w0, [x19, 40] 15771 mov w26, -1 15772 ldrb w24, [x2, x5] 15773 adrp x20, .LANCHOR59 15774 stp x6, x5, [x29, 96] 15775 add x20, x20, :lo12:.LANCHOR59 15776 str x2, [x29, 112] 15777 sub w21, w21, #1 15778 str w4, [x29, 120] 15779 bl flash_start_plane_read 15780 mov w3, 2 15781 strb wzr, [x19, 59] 15782 strb w3, [x19, 58] 15783 mov x1, x19 15784 strb w26, [x19] 15785 mov x0, x20 15786 str w3, [x29, 124] 15787 bl buf_add_tail 15788 ldp x6, x5, [x29, 96] 15789 strb wzr, [x6, 59] 15790 ldr x2, [x29, 112] 15791 mov x0, x20 15792 ldp w4, w3, [x29, 120] 15793 strb w3, [x6, 58] 15794 strb w26, [x2, x5] 15795 ubfiz x1, x4, 6, 8 15796 add x1, x2, x1 15797 bl buf_add_tail 15798.L2559: 15799 subs w21, w21, #1 15800 beq .L2577 15801 ubfiz x24, x24, 6, 8 15802 adrp x19, .LANCHOR55 15803 add x19, x19, :lo12:.LANCHOR55 15804 add x19, x19, x24 15805 b .L2554 15806.L2567: 15807 ldrb w0, [x23, 58] 15808 cmp w0, 13 15809 bne .L2566 15810 ldrb w0, [x23] 15811 sub w22, w22, #1 15812 cmp w0, 255 15813 beq .L2566 15814 ubfiz x23, x0, 6, 8 15815 add x23, x19, x23 15816.L2566: 15817 bl queue_wait_first_req_completed 15818 bl queue_remove_completed_req 15819 b .L2565 15820 .size sblk_read_page, .-sblk_read_page 15821 .section .text.gc_check_data_one_wl,"ax",@progbits 15822 .align 2 15823 .global gc_check_data_one_wl 15824 .type gc_check_data_one_wl, %function 15825gc_check_data_one_wl: 15826 sub sp, sp, #112 15827 stp x29, x30, [sp, 16] 15828 add x29, sp, 16 15829 stp x19, x20, [sp, 32] 15830 adrp x19, .LANCHOR76 15831 stp x21, x22, [sp, 48] 15832 add x22, x19, :lo12:.LANCHOR76 15833 adrp x20, .LANCHOR12 15834 stp x23, x24, [sp, 64] 15835 stp x25, x26, [sp, 80] 15836 ldr x0, [x22, 8] 15837 stp x27, x28, [sp, 96] 15838 ldr x21, [x20, #:lo12:.LANCHOR12] 15839 cbnz x0, .L2580 15840 mov w0, 1 15841 bl buf_alloc 15842 str x0, [x22, 8] 15843.L2580: 15844 add x0, x19, :lo12:.LANCHOR76 15845 ldr x22, [x0, 8] 15846 cbnz x22, .L2581 15847 adrp x1, .LANCHOR187 15848 adrp x0, .LC0 15849 mov w2, 729 15850 add x1, x1, :lo12:.LANCHOR187 15851 add x0, x0, :lo12:.LC0 15852 bl printf 15853.L2581: 15854 adrp x27, .LANCHOR117 15855 adrp x28, .LANCHOR84 15856 add x26, x21, 96 15857 add x27, x27, :lo12:.LANCHOR117 15858 add x28, x28, :lo12:.LANCHOR84 15859 mov w25, 0 15860.L2582: 15861 ldrb w0, [x21, 89] 15862 cmp w25, w0 15863 bge .L2593 15864 mov w24, 1 15865 add x23, x19, :lo12:.LANCHOR76 15866 b .L2594 15867.L2592: 15868 ldrh w0, [x26] 15869 ldrh w2, [x27] 15870 ldrb w1, [x28] 15871 cmp w1, 2 15872 mul w2, w0, w2 15873 beq .L2583 15874 adrp x0, .LANCHOR35 15875 ldrb w0, [x0, #:lo12:.LANCHOR35] 15876 cbz w0, .L2584 15877.L2583: 15878 ldrh w0, [x23, 16] 15879 sub w3, w0, #1 15880 add w0, w24, w2 15881 add w0, w3, w0 15882 orr w1, w0, w1, lsl 24 15883 str w1, [x22, 40] 15884.L2585: 15885 mov w1, 1 15886 mov x0, x22 15887 bl sblk_read_page 15888 ldr w2, [x22, 52] 15889 adrp x1, .LANCHOR160 15890 cmn w2, #1 15891 beq .L2588 15892 ldrh w0, [x23, 22] 15893 ldr x4, [x1, #:lo12:.LANCHOR160] 15894 ldr x3, [x22, 24] 15895 lsl x0, x0, 2 15896 ldr w5, [x4, x0] 15897 ldr w4, [x3, 4] 15898 cmp w5, w4 15899 bne .L2588 15900 adrp x4, .LANCHOR161 15901 ldr x4, [x4, #:lo12:.LANCHOR161] 15902 ldr w4, [x4, x0] 15903 ldr w0, [x3, 8] 15904 cmp w4, w0 15905 beq .L2589 15906.L2588: 15907 ldrh w0, [x23, 22] 15908 ldr x1, [x1, #:lo12:.LANCHOR160] 15909 lsl x0, x0, 2 15910 ldr w3, [x1, x0] 15911 cmn w3, #1 15912 beq .L2589 15913 adrp x1, .LANCHOR19 15914 ldr w1, [x1, #:lo12:.LANCHOR19] 15915 tbz x1, 10, .L2590 15916 ldr x1, [x22, 24] 15917 adrp x4, .LANCHOR161 15918 ldr x4, [x4, #:lo12:.LANCHOR161] 15919 ldr w5, [x1, 12] 15920 str w5, [sp] 15921 ldr w4, [x4, x0] 15922 adrp x0, .LC140 15923 ldp w5, w6, [x1] 15924 add x0, x0, :lo12:.LC140 15925 ldr w7, [x1, 8] 15926 ldr w1, [x22, 40] 15927 bl printf 15928.L2590: 15929 adrp x0, .LANCHOR130 15930 ldrh w1, [x21, 80] 15931 ldrb w2, [x0, #:lo12:.LANCHOR130] 15932 adrp x0, .LANCHOR11 15933 ldr x0, [x0, #:lo12:.LANCHOR11] 15934 strh wzr, [x0, x1, lsl 1] 15935 ldr x1, [x20, #:lo12:.LANCHOR12] 15936 ldr w0, [x1, 556] 15937 add w0, w0, 1 15938 str w0, [x1, 556] 15939 adrp x0, .LANCHOR69 15940 ldr x0, [x0, #:lo12:.LANCHOR69] 15941 ldr w1, [x0, 156] 15942 mov w0, 20041 15943 movk w0, 0x444b, lsl 16 15944 cmp w1, w0 15945 bne .L2597 15946 cbnz w2, .L2597 15947 adrp x0, .LANCHOR86 15948 ldrb w0, [x0, #:lo12:.LANCHOR86] 15949 cbnz w0, .L2597 15950 ldr w0, [x22, 40] 15951 bl ftl_mask_bad_block 15952.L2597: 15953 mov w0, -1 15954.L2579: 15955 ldp x19, x20, [sp, 32] 15956 ldp x21, x22, [sp, 48] 15957 ldp x23, x24, [sp, 64] 15958 ldp x25, x26, [sp, 80] 15959 ldp x27, x28, [sp, 96] 15960 ldp x29, x30, [sp, 16] 15961 add sp, sp, 112 15962 ret 15963.L2584: 15964 cmp w1, 3 15965 ldrh w0, [x23, 16] 15966 bne .L2586 15967 adrp x1, .LANCHOR36 15968 ldrb w1, [x1, #:lo12:.LANCHOR36] 15969 cbz w1, .L2587 15970 add w0, w0, w0, lsl 1 15971 sub w1, w0, #1 15972 add w0, w24, w2 15973 add w0, w1, w0 15974 orr w0, w0, 50331648 15975.L2612: 15976 str w0, [x22, 40] 15977 b .L2585 15978.L2587: 15979 add w0, w0, w2 15980 orr w0, w0, w24, lsl 24 15981 b .L2612 15982.L2586: 15983 add w0, w0, w2 15984 b .L2612 15985.L2589: 15986 ldrh w0, [x23, 22] 15987 add w24, w24, 1 15988 add w0, w0, 1 15989 strh w0, [x23, 22] 15990.L2594: 15991 ldrh w0, [x23, 20] 15992 cmp w24, w0 15993 ble .L2592 15994 add w25, w25, 1 15995 add x26, x26, 2 15996 b .L2582 15997.L2593: 15998 add x19, x19, :lo12:.LANCHOR76 15999 ldrh w0, [x19, 16] 16000 add w1, w0, 1 16001 strh w1, [x19, 16] 16002 adrp x1, .LANCHOR86 16003 ldrb w1, [x1, #:lo12:.LANCHOR86] 16004 cbz w1, .L2598 16005 add w0, w0, 2 16006 strh w0, [x19, 16] 16007.L2598: 16008.L2591: 16009 mov w0, 0 16010 b .L2579 16011 .size gc_check_data_one_wl, .-gc_check_data_one_wl 16012 .section .text.sblk_tlc_prog_one_page,"ax",@progbits 16013 .align 2 16014 .global sblk_tlc_prog_one_page 16015 .type sblk_tlc_prog_one_page, %function 16016sblk_tlc_prog_one_page: 16017 stp x29, x30, [sp, -32]! 16018 add x29, sp, 0 16019 stp x19, x20, [sp, 16] 16020 mov x19, x0 16021 ldr x0, [x0] 16022 ldr w20, [x0, 40] 16023.L2614: 16024 mov w1, 1 16025 mov w0, w20 16026 bl queue_lun_state 16027 cbnz w0, .L2615 16028 mov x0, x19 16029 mov w1, 1 16030 bl queue_tlc_prog_cmd 16031 mov w0, 0 16032 ldp x19, x20, [sp, 16] 16033 ldp x29, x30, [sp], 32 16034 ret 16035.L2615: 16036 bl queue_wait_first_req_completed 16037 bl queue_remove_completed_req 16038 b .L2614 16039 .size sblk_tlc_prog_one_page, .-sblk_tlc_prog_one_page 16040 .section .text.sblk_xlc_prog_pages,"ax",@progbits 16041 .align 2 16042 .global sblk_xlc_prog_pages 16043 .type sblk_xlc_prog_pages, %function 16044sblk_xlc_prog_pages: 16045 stp x29, x30, [sp, -80]! 16046 add x29, sp, 0 16047 stp x19, x20, [sp, 16] 16048 mov x20, x0 16049 ldr x0, [x0] 16050 stp x21, x22, [sp, 32] 16051 mov x22, x1 16052 stp x23, x24, [sp, 48] 16053 mov w24, w2 16054 ldr w19, [x0, 40] 16055 str x25, [sp, 64] 16056.L2618: 16057 mov w1, 1 16058 mov w0, w19 16059 bl queue_lun_state 16060 cbnz w0, .L2619 16061 cmp w24, 2 16062 bne .L2620 16063 adrp x0, .LANCHOR44 16064 ldr x3, [x22] 16065 ldrb w0, [x0, #:lo12:.LANCHOR44] 16066 cbz w0, .L2621 16067 adrp x0, .LANCHOR31 16068 ldr x7, [x20] 16069 mov w25, 1 16070 mov w2, 24 16071 ldrb w0, [x0, #:lo12:.LANCHOR31] 16072 ldr w3, [x3, 40] 16073 sub w2, w2, w0 16074 ldr w1, [x7, 40] 16075 lsl w19, w25, w0 16076 adrp x0, .LANCHOR36 16077 lsl w21, w25, w2 16078 sub w19, w19, #1 16079 ldrb w0, [x0, #:lo12:.LANCHOR36] 16080 sub w21, w21, #1 16081 and w23, w1, w21 16082 lsr w1, w1, w2 16083 and w19, w19, w1 16084 and w21, w21, w3 16085 and w19, w19, 255 16086 cbz w0, .L2622 16087 mov w0, w19 16088 bl zftl_flash_exit_slc_mode 16089 ldr x0, [x20] 16090 mov w4, w23 16091 mov w3, w19 16092 mov w1, w25 16093 mov w2, 17 16094 ldr x5, [x0, 8] 16095 ldr x6, [x0, 24] 16096 mov w0, 0 16097 bl flash_start_one_pass_page_prog 16098 bl nandc_wait_flash_ready 16099 ldr x0, [x22] 16100 mov w4, w21 16101 mov w3, w19 16102 mov w1, w25 16103 mov w2, 26 16104 ldr x5, [x0, 8] 16105 ldr x6, [x0, 24] 16106 mov w0, 0 16107 bl flash_start_one_pass_page_prog 16108 bl nandc_wait_flash_ready 16109 ldr x0, [x20, 8] 16110 add w4, w23, w25 16111 mov w3, w19 16112 mov w1, w24 16113 mov w2, 17 16114 ldr x5, [x0, 8] 16115 ldr x6, [x0, 24] 16116 mov w0, 0 16117 bl flash_start_one_pass_page_prog 16118 bl nandc_wait_flash_ready 16119 ldr x0, [x22, 8] 16120 add w4, w21, w25 16121 mov w3, w19 16122 mov w1, w24 16123 mov w2, 26 16124 ldr x5, [x0, 8] 16125 ldr x6, [x0, 24] 16126 mov w0, 0 16127 bl flash_start_one_pass_page_prog 16128 bl nandc_wait_flash_ready 16129 ldr x0, [x20, 16] 16130 add w4, w23, 2 16131 mov w3, w19 16132 mov w2, 17 16133 mov w1, 3 16134 ldr x5, [x0, 8] 16135 ldr x6, [x0, 24] 16136 mov w0, 0 16137 bl flash_start_one_pass_page_prog 16138 bl nandc_wait_flash_ready 16139 ldr x0, [x22, 16] 16140 add w4, w21, 2 16141 mov w3, w19 16142 mov w2, 16 16143 mov w1, 3 16144 ldr x5, [x0, 8] 16145 ldr x6, [x0, 24] 16146 mov w0, 0 16147 bl flash_start_one_pass_page_prog 16148.L2623: 16149 ldr x1, [x20] 16150 mov w0, 5 16151 strb w0, [x1, 58] 16152 mov w0, 1 16153 strb w0, [x1, 59] 16154 mov w0, -1 16155 strb w0, [x1] 16156 adrp x0, .LANCHOR59 16157 add x0, x0, :lo12:.LANCHOR59 16158 bl buf_add_tail 16159.L2624: 16160 mov w0, 0 16161 ldr x25, [sp, 64] 16162 ldp x19, x20, [sp, 16] 16163 ldp x21, x22, [sp, 32] 16164 ldp x23, x24, [sp, 48] 16165 ldp x29, x30, [sp], 80 16166 ret 16167.L2619: 16168 bl queue_wait_first_req_completed 16169 bl queue_remove_completed_req 16170 b .L2618 16171.L2622: 16172 ldr x5, [x7, 8] 16173 mov w4, w23 16174 ldr x6, [x7, 24] 16175 mov w3, w19 16176 ldrb w0, [x7, 60] 16177 mov w1, w25 16178 mov w2, 17 16179 bl flash_start_tlc_page_prog 16180 bl nandc_wait_flash_ready 16181 ldr x7, [x20] 16182 mov w4, w21 16183 ldr x0, [x22] 16184 mov w3, w19 16185 mov w1, w25 16186 mov w2, 26 16187 ldr x5, [x0, 8] 16188 ldr x6, [x0, 24] 16189 ldrb w0, [x7, 60] 16190 bl flash_start_tlc_page_prog 16191 bl nandc_wait_flash_ready 16192 ldp x7, x0, [x20] 16193 mov w4, w23 16194 mov w3, w19 16195 mov w1, w24 16196 mov w2, 17 16197 ldr x5, [x0, 8] 16198 ldr x6, [x0, 24] 16199 ldrb w0, [x7, 60] 16200 bl flash_start_tlc_page_prog 16201 bl nandc_wait_flash_ready 16202 ldr x7, [x20] 16203 mov w4, w21 16204 ldr x0, [x22, 8] 16205 mov w3, w19 16206 mov w1, w24 16207 mov w2, 26 16208 ldr x5, [x0, 8] 16209 ldr x6, [x0, 24] 16210 ldrb w0, [x7, 60] 16211 bl flash_start_tlc_page_prog 16212 bl nandc_wait_flash_ready 16213 ldr x7, [x20] 16214 mov w4, w23 16215 ldr x0, [x20, 16] 16216 mov w3, w19 16217 mov w2, 17 16218 mov w1, 3 16219 ldr x5, [x0, 8] 16220 ldr x6, [x0, 24] 16221 ldrb w0, [x7, 60] 16222 bl flash_start_tlc_page_prog 16223 bl nandc_wait_flash_ready 16224 ldr x0, [x22, 16] 16225 mov w4, w21 16226 ldr x7, [x20] 16227 mov w3, w19 16228 mov w2, 16 16229 mov w1, 3 16230 ldr x5, [x0, 8] 16231 ldr x6, [x0, 24] 16232 ldrb w0, [x7, 60] 16233 bl flash_start_tlc_page_prog 16234 b .L2623 16235.L2621: 16236 ldr w19, [x3, 40] 16237.L2625: 16238 mov w1, 1 16239 mov w0, w19 16240 bl queue_lun_state 16241 cbnz w0, .L2626 16242 mov w1, 1 16243 mov x0, x20 16244 bl queue_tlc_prog_cmd 16245 mov w1, 0 16246 mov x0, x22 16247 bl queue_tlc_prog_cmd 16248.L2627: 16249 mov w1, 1 16250 mov w0, w19 16251 bl queue_lun_state 16252 cbz w0, .L2624 16253 bl queue_wait_first_req_completed 16254 bl queue_remove_completed_req 16255 b .L2627 16256.L2626: 16257 bl queue_wait_first_req_completed 16258 bl queue_remove_completed_req 16259 b .L2625 16260.L2620: 16261 mov w1, 1 16262 mov x0, x20 16263 bl queue_tlc_prog_cmd 16264 b .L2624 16265 .size sblk_xlc_prog_pages, .-sblk_xlc_prog_pages 16266 .section .text.sblk_3d_mlc_prog_pages,"ax",@progbits 16267 .align 2 16268 .global sblk_3d_mlc_prog_pages 16269 .type sblk_3d_mlc_prog_pages, %function 16270sblk_3d_mlc_prog_pages: 16271 stp x29, x30, [sp, -80]! 16272 ubfiz x1, x1, 4, 32 16273 add x1, x1, 8 16274 add x29, sp, 0 16275 stp x21, x22, [sp, 32] 16276 add x21, x0, x1 16277 stp x23, x24, [sp, 48] 16278 adrp x23, .LANCHOR31 16279 adrp x24, .LANCHOR59 16280 str x25, [sp, 64] 16281 add x23, x23, :lo12:.LANCHOR31 16282 add x24, x24, :lo12:.LANCHOR59 16283 add x25, x0, 8 16284 stp x19, x20, [sp, 16] 16285 mov w22, 1 16286.L2631: 16287 cmp x21, x25 16288 bne .L2634 16289 mov w0, 0 16290 ldr x25, [sp, 64] 16291 ldp x19, x20, [sp, 16] 16292 ldp x21, x22, [sp, 32] 16293 ldp x23, x24, [sp, 48] 16294 ldp x29, x30, [sp], 80 16295 ret 16296.L2634: 16297 ldr x0, [x25, -8] 16298 ldr w19, [x0, 40] 16299.L2632: 16300 mov w1, 1 16301 mov w0, w19 16302 bl queue_lun_state 16303 cbnz w0, .L2633 16304 ldr x0, [x25, -8] 16305 mov w2, 24 16306 ldrb w1, [x23] 16307 add x25, x25, 16 16308 sub w2, w2, w1 16309 ldr w0, [x0, 40] 16310 lsl w19, w22, w1 16311 lsl w20, w22, w2 16312 sub w19, w19, #1 16313 sub w20, w20, #1 16314 and w20, w20, w0 16315 lsr w0, w0, w2 16316 and w19, w19, w0 16317 and w19, w19, 255 16318 mov w0, w19 16319 bl zftl_flash_exit_slc_mode 16320 ldr x0, [x25, -24] 16321 mov w2, w20 16322 mov w1, w19 16323 ldr x3, [x0, 8] 16324 ldr x4, [x0, 24] 16325 mov w0, 16 16326 bl flash_start_3d_mlc_page_prog 16327 bl nandc_wait_flash_ready 16328 ldr x0, [x25, -16] 16329 add w2, w20, 1 16330 mov w1, w19 16331 ldr x3, [x0, 8] 16332 ldr x4, [x0, 24] 16333 mov w0, 16 16334 bl flash_start_3d_mlc_page_prog 16335 bl nandc_de_cs.constprop.31 16336 ldr x1, [x25, -24] 16337 mov w0, 4 16338 strb w22, [x1, 59] 16339 strb w0, [x1, 58] 16340 mov w0, -1 16341 strb w0, [x1] 16342 mov x0, x24 16343 bl buf_add_tail 16344 b .L2631 16345.L2633: 16346 bl queue_wait_first_req_completed 16347 bl queue_remove_completed_req 16348 b .L2632 16349 .size sblk_3d_mlc_prog_pages, .-sblk_3d_mlc_prog_pages 16350 .section .text.flash_prog_page_en,"ax",@progbits 16351 .align 2 16352 .global flash_prog_page_en 16353 .type flash_prog_page_en, %function 16354flash_prog_page_en: 16355 stp x29, x30, [sp, -128]! 16356 add x29, sp, 0 16357 stp x21, x22, [sp, 32] 16358 and w21, w0, 255 16359 and w0, w5, 255 16360 stp x19, x20, [sp, 16] 16361 str w0, [x29, 124] 16362 adrp x0, .LANCHOR23 16363 stp x23, x24, [sp, 48] 16364 mov w20, w1 16365 stp x27, x28, [sp, 80] 16366 mov x23, x2 16367 ldrb w1, [x0, #:lo12:.LANCHOR23] 16368 mov x22, x3 16369 stp x25, x26, [sp, 64] 16370 mov w28, w4 16371 ubfx x24, x20, 24, 2 16372 cmp w1, w21 16373 mov x19, x0 16374 bhi .L2637 16375 adrp x1, .LANCHOR188 16376 adrp x0, .LC0 16377 mov w2, 642 16378 add x1, x1, :lo12:.LANCHOR188 16379 add x0, x0, :lo12:.LC0 16380 bl printf 16381.L2637: 16382 ldrb w0, [x19, #:lo12:.LANCHOR23] 16383 cmp w0, w21 16384 bls .L2648 16385 adrp x0, .LANCHOR29 16386 add x0, x0, :lo12:.LANCHOR29 16387 ldrb w27, [x0, w21, sxtw] 16388 cbnz w24, .L2650 16389 adrp x0, .LANCHOR0 16390 ldrb w1, [x0, #:lo12:.LANCHOR0] 16391 adrp x0, .LANCHOR1 16392 cbz w1, .L2640 16393 ldrb w1, [x0, #:lo12:.LANCHOR1] 16394 cbz w1, .L2650 16395.L2640: 16396 adrp x1, .LANCHOR2 16397 ldrb w0, [x0, #:lo12:.LANCHOR1] 16398 ldrh w1, [x1, #:lo12:.LANCHOR2] 16399 udiv w19, w20, w1 16400 mul w19, w19, w1 16401 sub w1, w20, w19 16402 cbz w0, .L2641 16403 add w19, w19, w1, lsl 1 16404.L2639: 16405 adrp x24, .LANCHOR19 16406 adrp x25, .LC141 16407 add x24, x24, :lo12:.LANCHOR19 16408 add x25, x25, :lo12:.LC141 16409 adrp x26, .LANCHOR173 16410.L2645: 16411 ldr w0, [x24] 16412 tbz x0, 4, .L2642 16413 mov w3, w19 16414 mov w2, w20 16415 mov w1, w27 16416 mov x0, x25 16417 bl printf 16418.L2642: 16419 mov w4, w28 16420 mov x3, x22 16421 mov x2, x23 16422 mov w1, w19 16423 mov w0, w27 16424 bl flash_prog_page 16425 mov w5, w0 16426 ldr w0, [x29, 124] 16427 cbz w0, .L2643 16428 adrp x6, .LANCHOR174 16429 ldr x3, [x26, #:lo12:.LANCHOR173] 16430 mov w4, w28 16431 str x6, [x29, 112] 16432 ldr x2, [x6, #:lo12:.LANCHOR174] 16433 mov w1, w20 16434 mov w0, w21 16435 str w5, [x29, 104] 16436 bl flash_read_page_en 16437 cmp w0, 512 16438 ldr x6, [x29, 112] 16439 mov w4, w0 16440 ccmn w0, #1, 4, ne 16441 mov x7, x6 16442 beq .L2644 16443 ldr x0, [x6, #:lo12:.LANCHOR174] 16444 ldr w1, [x23] 16445 ldr w5, [x29, 104] 16446 ldr w0, [x0] 16447 cmp w1, w0 16448 bne .L2644 16449 ldr x0, [x26, #:lo12:.LANCHOR173] 16450 ldr w1, [x22] 16451 ldr w0, [x0] 16452 cmp w1, w0 16453 beq .L2643 16454.L2644: 16455 str w4, [x29, 112] 16456 mov w3, 4 16457 str x7, [x29, 104] 16458 mov w2, w3 16459 mov x1, x23 16460 adrp x0, .LC142 16461 add x0, x0, :lo12:.LC142 16462 bl rknand_print_hex 16463 mov w3, 4 16464 mov x1, x22 16465 mov w2, w3 16466 adrp x0, .LC143 16467 add x0, x0, :lo12:.LC143 16468 bl rknand_print_hex 16469 adrp x0, .LANCHOR173 16470 mov w3, 4 16471 mov w2, w3 16472 ldr x1, [x0, #:lo12:.LANCHOR173] 16473 adrp x0, .LC144 16474 add x0, x0, :lo12:.LC144 16475 bl rknand_print_hex 16476 ldr x7, [x29, 104] 16477 mov w3, 4 16478 adrp x0, .LC145 16479 mov w2, w3 16480 add x0, x0, :lo12:.LC145 16481 ldr x1, [x7, #:lo12:.LANCHOR174] 16482 bl rknand_print_hex 16483 ldr w4, [x29, 112] 16484 cmp w4, 512 16485 beq .L2645 16486.L2647: 16487 mov w1, w20 16488 adrp x0, .LC146 16489 add x0, x0, :lo12:.LC146 16490 bl printf 16491 adrp x1, .LANCHOR188 16492 adrp x0, .LC0 16493 mov w2, 685 16494 add x1, x1, :lo12:.LANCHOR188 16495 add x0, x0, :lo12:.LC0 16496 bl printf 16497.L2648: 16498 mov w0, -1 16499 b .L2636 16500.L2641: 16501 adrp x0, .LANCHOR3 16502 add x0, x0, :lo12:.LANCHOR3 16503 ldrh w0, [x0, w1, uxtw 1] 16504 add w19, w0, w19 16505 b .L2639 16506.L2650: 16507 mov w19, w20 16508 b .L2639 16509.L2643: 16510 mov w0, w5 16511 cmn w5, #1 16512 beq .L2647 16513.L2636: 16514 ldp x19, x20, [sp, 16] 16515 ldp x21, x22, [sp, 32] 16516 ldp x23, x24, [sp, 48] 16517 ldp x25, x26, [sp, 64] 16518 ldp x27, x28, [sp, 80] 16519 ldp x29, x30, [sp], 128 16520 ret 16521 .size flash_prog_page_en, .-flash_prog_page_en 16522 .section .text.ftl_test_block,"ax",@progbits 16523 .align 2 16524 .global ftl_test_block 16525 .type ftl_test_block, %function 16526ftl_test_block: 16527 stp x29, x30, [sp, -128]! 16528 add x29, sp, 0 16529 stp x23, x24, [sp, 48] 16530 adrp x24, .LANCHOR189 16531 stp x21, x22, [sp, 32] 16532 and w21, w0, 65535 16533 ldr x0, [x24, #:lo12:.LANCHOR189] 16534 mov w23, 0 16535 stp x25, x26, [sp, 64] 16536 adrp x25, .LANCHOR190 16537 stp x19, x20, [sp, 16] 16538 adrp x26, .LANCHOR118 16539 stp x27, x28, [sp, 80] 16540 mov w20, 0 16541 str wzr, [x0] 16542 add x0, x26, :lo12:.LANCHOR118 16543 adrp x27, .LANCHOR81 16544 str x0, [x29, 112] 16545 str wzr, [x25, #:lo12:.LANCHOR190] 16546 add x0, x27, :lo12:.LANCHOR81 16547 str x0, [x29, 96] 16548.L2667: 16549 ldr x0, [x29, 112] 16550 ldrb w0, [x0] 16551 cmp w0, w20 16552 bls .L2677 16553 add x0, x27, :lo12:.LANCHOR81 16554 mov w22, 0 16555 str x0, [x29, 120] 16556 adrp x0, .LANCHOR19 16557 add x0, x0, :lo12:.LANCHOR19 16558 str x0, [x29, 104] 16559 b .L2678 16560.L2676: 16561 ldr x0, [x29, 104] 16562 ldr w0, [x0] 16563 tbz x0, 12, .L2668 16564 adrp x0, .LC147 16565 mov w1, w21 16566 add x0, x0, :lo12:.LC147 16567 bl printf 16568.L2668: 16569 ldr x0, [x29, 96] 16570 ldrb w19, [x0] 16571 madd w19, w21, w19, w22 16572 and w19, w19, 65535 16573 cbnz w20, .L2669 16574 adrp x0, .LANCHOR6 16575 ldr x0, [x0, #:lo12:.LANCHOR6] 16576 ldrb w0, [x0, 47] 16577 cmp w0, w19 16578 bcs .L2670 16579.L2669: 16580 and w28, w20, 255 16581 mov w1, w19 16582 mov w0, w28 16583 bl flash_check_bad_block 16584 cbnz w0, .L2670 16585 adrp x0, .LANCHOR117 16586 mov w1, w23 16587 ldrh w7, [x0, #:lo12:.LANCHOR117] 16588 mov w0, w28 16589 mul w26, w7, w19 16590 mov w2, w26 16591 bl flash_erase_block_en 16592 cbz w0, .L2671 16593 adrp x0, .LANCHOR84 16594 ldrb w0, [x0, #:lo12:.LANCHOR84] 16595 cmp w0, 2 16596 bne .L2693 16597 adrp x0, .LANCHOR0 16598 ldrb w0, [x0, #:lo12:.LANCHOR0] 16599 cbz w0, .L2693 16600 mov w2, w26 16601 mov w1, 1 16602 mov w0, w28 16603 bl flash_erase_block_en 16604 cbnz w0, .L2693 16605.L2675: 16606 adrp x0, .LANCHOR84 16607 mov w23, 1 16608 ldrb w0, [x0, #:lo12:.LANCHOR84] 16609 add w26, w26, w0, lsl 24 16610.L2674: 16611 adrp x0, .LANCHOR68 16612 ldr x2, [x24, #:lo12:.LANCHOR189] 16613 mov w5, 1 16614 add x3, x25, :lo12:.LANCHOR190 16615 ldrb w4, [x0, #:lo12:.LANCHOR68] 16616 mov w1, w26 16617 mov w0, w28 16618 bl flash_prog_page_en 16619 cbz w0, .L2670 16620.L2693: 16621 mov w1, w19 16622 mov w0, w28 16623 bl flash_mask_bad_block 16624.L2670: 16625 add w22, w22, 1 16626 and w22, w22, 65535 16627.L2678: 16628 ldr x0, [x29, 120] 16629 ldrb w0, [x0] 16630 cmp w0, w22 16631 bhi .L2676 16632 add w20, w20, 1 16633 and w20, w20, 65535 16634 b .L2667 16635.L2671: 16636 cbz w23, .L2674 16637 b .L2675 16638.L2677: 16639 cbz w23, .L2679 16640 adrp x0, .LANCHOR9 16641 mov w1, 2 16642 ldr x0, [x0, #:lo12:.LANCHOR9] 16643 add x21, x0, x21, uxth 2 16644 ldrb w0, [x21, 2] 16645 bfi w0, w1, 3, 2 16646 strb w0, [x21, 2] 16647.L2679: 16648 ldp x19, x20, [sp, 16] 16649 mov w0, 0 16650 ldp x21, x22, [sp, 32] 16651 ldp x23, x24, [sp, 48] 16652 ldp x25, x26, [sp, 64] 16653 ldp x27, x28, [sp, 80] 16654 ldp x29, x30, [sp], 128 16655 ret 16656 .size ftl_test_block, .-ftl_test_block 16657 .section .text.ftl_prog_page,"ax",@progbits 16658 .align 2 16659 .global ftl_prog_page 16660 .type ftl_prog_page, %function 16661ftl_prog_page: 16662 stp x29, x30, [sp, -64]! 16663 add x29, sp, 0 16664 stp x19, x20, [sp, 16] 16665 and w19, w0, 255 16666 stp x21, x22, [sp, 32] 16667 mov w20, w1 16668 mov x21, x2 16669 mov x22, x3 16670 str x23, [sp, 48] 16671 mov w23, w4 16672 bl sblk_wait_write_queue_completed 16673 mov w0, w19 16674 mov w5, 1 16675 mov w4, w23 16676 mov x3, x22 16677 mov x2, x21 16678 mov w1, w20 16679 bl flash_prog_page_en 16680 mov w19, w0 16681 cmn w0, #1 16682 bne .L2694 16683 mov w2, 2683 16684 adrp x1, .LANCHOR191 16685 adrp x0, .LC0 16686 add x1, x1, :lo12:.LANCHOR191 16687 add x0, x0, :lo12:.LC0 16688 bl printf 16689 adrp x0, .LC146 16690 mov w1, w20 16691 add x0, x0, :lo12:.LC146 16692 bl printf 16693.L2694: 16694 mov w0, w19 16695 ldr x23, [sp, 48] 16696 ldp x19, x20, [sp, 16] 16697 ldp x21, x22, [sp, 32] 16698 ldp x29, x30, [sp], 64 16699 ret 16700 .size ftl_prog_page, .-ftl_prog_page 16701 .section .text.ftl_info_flush,"ax",@progbits 16702 .align 2 16703 .global ftl_info_flush 16704 .type ftl_info_flush, %function 16705ftl_info_flush: 16706 stp x29, x30, [sp, -128]! 16707 mov w1, 0 16708 add x29, sp, 0 16709 stp x21, x22, [sp, 32] 16710 adrp x21, .LANCHOR68 16711 stp x23, x24, [sp, 48] 16712 adrp x24, .LANCHOR69 16713 ldrb w2, [x21, #:lo12:.LANCHOR68] 16714 stp x19, x20, [sp, 16] 16715 adrp x20, .LANCHOR192 16716 str w0, [x29, 116] 16717 add x0, x20, :lo12:.LANCHOR192 16718 stp x25, x26, [sp, 64] 16719 lsl w2, w2, 1 16720 stp x27, x28, [sp, 80] 16721 bl ftl_memset 16722 ldr x0, [x24, #:lo12:.LANCHOR69] 16723 ldrh w1, [x0, 74] 16724 cmp w1, 1 16725 bls .L2698 16726 strh wzr, [x0, 150] 16727.L2698: 16728 adrp x23, .LANCHOR193 16729 add x19, x23, :lo12:.LANCHOR193 16730 adrp x25, .LANCHOR117 16731 mov w26, 0 16732 add x0, x25, :lo12:.LANCHOR117 16733 str x0, [x29, 104] 16734.L2711: 16735 add x0, x23, :lo12:.LANCHOR193 16736 adrp x22, .LANCHOR194 16737 ldrh w1, [x25, #:lo12:.LANCHOR117] 16738 add x7, x20, :lo12:.LANCHOR192 16739 str w1, [x29, 120] 16740 ldrh w27, [x0, 2] 16741 ldr x0, [x24, #:lo12:.LANCHOR69] 16742 ldrb w1, [x21, #:lo12:.LANCHOR68] 16743 ldrb w28, [x23, #:lo12:.LANCHOR193] 16744 ldr w6, [x0, 4] 16745 lsl w1, w1, 9 16746 add w6, w6, 1 16747 str w6, [x0, 4] 16748 ldr w0, [x29, 116] 16749 str w0, [x20, #:lo12:.LANCHOR192] 16750 ldr x0, [x22, #:lo12:.LANCHOR194] 16751 str w6, [x7, 4] 16752 bl js_hash 16753 str w0, [x7, 8] 16754 adrp x0, .LANCHOR19 16755 ldr w0, [x0, #:lo12:.LANCHOR19] 16756 tbz x0, 12, .L2699 16757 adrp x0, .LC148 16758 mov w3, w6 16759 mov w2, w27 16760 mov w1, w28 16761 add x0, x0, :lo12:.LC148 16762 bl printf 16763.L2699: 16764 adrp x1, .LANCHOR100 16765 ldrh w0, [x19, 2] 16766 ldrh w1, [x1, #:lo12:.LANCHOR100] 16767 cmp w1, w0 16768 bhi .L2700 16769 adrp x27, .LANCHOR195 16770 adrp x3, .LC0 16771 add x27, x27, :lo12:.LANCHOR195 16772 add x3, x3, :lo12:.LC0 16773.L2707: 16774 ldrb w0, [x19, 1] 16775 adrp x28, .LANCHOR6 16776 add w0, w0, 1 16777 and w0, w0, 255 16778 strb w0, [x19, 1] 16779 cmp w0, 7 16780 bls .L2701 16781 mov x0, 0 16782.L2706: 16783 ldr x2, [x28, #:lo12:.LANCHOR6] 16784 add w1, w0, 8 16785 and w26, w0, 65535 16786 add x1, x2, x1, sxtw 16787 ldrb w2, [x1, 32] 16788 add w1, w2, 127 16789 and w1, w1, 255 16790 cmp w1, 125 16791 bhi .L2702 16792 mov x0, x3 16793 str x3, [x29, 120] 16794 mov w2, 846 16795 mov x1, x27 16796 bl printf 16797 ldr x3, [x29, 120] 16798.L2705: 16799 strb w26, [x19, 1] 16800 mov w26, 1 16801.L2701: 16802 ldr x0, [x28, #:lo12:.LANCHOR6] 16803 ldrb w1, [x19, 1] 16804 add x0, x0, x1 16805 ldrb w28, [x0, 40] 16806 strb w28, [x19] 16807 cmp w28, 255 16808 beq .L2707 16809 ldr x0, [x29, 104] 16810 ldrh w27, [x0] 16811 mov w0, 0 16812 mul w27, w27, w28 16813 mov w1, w27 16814 bl flash_erase_block 16815 ldrb w4, [x21, #:lo12:.LANCHOR68] 16816 mov w1, w27 16817 ldr x2, [x22, #:lo12:.LANCHOR194] 16818 add x3, x20, :lo12:.LANCHOR192 16819 mov w0, 0 16820 add w27, w27, 1 16821 bl ftl_prog_page 16822 mov w0, 1 16823 strh w0, [x19, 2] 16824.L2708: 16825 ldrb w4, [x21, #:lo12:.LANCHOR68] 16826 mov w1, w27 16827 ldr x2, [x22, #:lo12:.LANCHOR194] 16828 add x3, x20, :lo12:.LANCHOR192 16829 mov w0, 0 16830 bl ftl_prog_page 16831 cmn w0, #1 16832 ldrh w1, [x19, 2] 16833 adrp x0, .LANCHOR196 16834 add w1, w1, 1 16835 strh w1, [x19, 2] 16836 beq .L2709 16837 ldrb w1, [x0, #:lo12:.LANCHOR196] 16838 cbz w1, .L2710 16839.L2709: 16840 strb wzr, [x0, #:lo12:.LANCHOR196] 16841 b .L2711 16842.L2702: 16843 cmp w2, 255 16844 bne .L2705 16845 add x0, x0, 1 16846 cmp x0, 8 16847 bne .L2706 16848 mov w26, w0 16849 b .L2705 16850.L2700: 16851 ldr w1, [x29, 120] 16852 madd w27, w1, w28, w27 16853 cbnz w0, .L2708 16854 mov w1, w27 16855 bl flash_erase_block 16856 b .L2708 16857.L2710: 16858 cbnz w26, .L2712 16859.L2720: 16860 adrp x0, .LANCHOR193 16861 ldrb w0, [x0, #:lo12:.LANCHOR193] 16862 cmp w0, 255 16863 bne .L2714 16864 adrp x1, .LANCHOR195 16865 adrp x0, .LC0 16866 mov w2, 890 16867 add x1, x1, :lo12:.LANCHOR195 16868 add x0, x0, :lo12:.LC0 16869 bl printf 16870.L2714: 16871 ldp x19, x20, [sp, 16] 16872 mov w0, 0 16873 ldp x21, x22, [sp, 32] 16874 ldp x23, x24, [sp, 48] 16875 ldp x25, x26, [sp, 64] 16876 ldp x27, x28, [sp, 80] 16877 ldp x29, x30, [sp], 128 16878 ret 16879.L2712: 16880 ldrb w19, [x19, 1] 16881 adrp x20, .LANCHOR195 16882 adrp x21, .LC0 16883 add x20, x20, :lo12:.LANCHOR195 16884 add w19, w19, 1 16885 add x21, x21, :lo12:.LC0 16886 adrp x22, .LANCHOR6 16887.L2715: 16888 cmp w19, 7 16889 bhi .L2720 16890 ldr x1, [x22, #:lo12:.LANCHOR6] 16891 add w0, w19, 8 16892 add x0, x1, x0, sxtw 16893 ldrb w23, [x0, 32] 16894 add w0, w23, 127 16895 and w0, w0, 255 16896 cmp w0, 125 16897 bhi .L2716 16898 mov w2, 881 16899 mov x1, x20 16900 mov x0, x21 16901 bl printf 16902.L2717: 16903 adrp x0, .LANCHOR117 16904 ldrh w1, [x0, #:lo12:.LANCHOR117] 16905 mov w0, 0 16906 mul w1, w1, w23 16907 bl flash_erase_block 16908 b .L2718 16909.L2716: 16910 cmp w23, 255 16911 bne .L2717 16912.L2718: 16913 add w19, w19, 1 16914 and w19, w19, 65535 16915 b .L2715 16916 .size ftl_info_flush, .-ftl_info_flush 16917 .section .text.ftl_info_blk_init,"ax",@progbits 16918 .align 2 16919 .global ftl_info_blk_init 16920 .type ftl_info_blk_init, %function 16921ftl_info_blk_init: 16922 stp x29, x30, [sp, -112]! 16923 adrp x0, .LANCHOR197 16924 adrp x1, .LANCHOR196 16925 mov w2, 16384 16926 add x29, sp, 0 16927 strb wzr, [x0, #:lo12:.LANCHOR197] 16928 mov w0, 1 16929 strb w0, [x1, #:lo12:.LANCHOR196] 16930 adrp x1, .LANCHOR198 16931 stp x21, x22, [sp, 32] 16932 adrp x21, .LANCHOR194 16933 strb w0, [x1, #:lo12:.LANCHOR198] 16934 adrp x1, .LANCHOR9 16935 ldr x0, [x21, #:lo12:.LANCHOR194] 16936 mov x22, 7 16937 str x0, [x1, #:lo12:.LANCHOR9] 16938 adrp x1, .LANCHOR8 16939 stp x19, x20, [sp, 16] 16940 adrp x19, .LANCHOR69 16941 ldrh w1, [x1, #:lo12:.LANCHOR8] 16942 adrp x20, .LANCHOR193 16943 stp x23, x24, [sp, 48] 16944 adrp x23, .LANCHOR6 16945 stp x25, x26, [sp, 64] 16946 adrp x24, .LANCHOR68 16947 add x1, x0, x1, lsl 2 16948 stp x27, x28, [sp, 80] 16949 str x1, [x19, #:lo12:.LANCHOR69] 16950 mov w1, 0 16951 bl ftl_memset 16952 adrp x26, .LANCHOR117 16953 adrp x0, .LANCHOR199 16954 mov w1, 0 16955 mov w2, 16384 16956 mov w27, 21574 16957 ldr x0, [x0, #:lo12:.LANCHOR199] 16958 add x26, x26, :lo12:.LANCHOR117 16959 add x24, x24, :lo12:.LANCHOR68 16960 movk w27, 0x494c, lsl 16 16961 bl ftl_memset 16962 ldr x1, [x23, #:lo12:.LANCHOR6] 16963 add x0, x20, :lo12:.LANCHOR193 16964 strb wzr, [x0, 1] 16965 ldrb w1, [x1, 40] 16966 strb w1, [x20, #:lo12:.LANCHOR193] 16967 strh wzr, [x0, 2] 16968.L2736: 16969 ldr x1, [x23, #:lo12:.LANCHOR6] 16970 add w0, w22, 8 16971 sxth w25, w22 16972 mov w28, w22 16973 add x0, x1, x0, sxtw 16974 ldrb w0, [x0, 32] 16975 cmp w0, 255 16976 bne .L2735 16977.L2740: 16978 sub x22, x22, #1 16979 cmn x22, #1 16980 bne .L2736 16981 mov w25, 0 16982.L2737: 16983 adrp x24, .LANCHOR19 16984 ldr w0, [x24, #:lo12:.LANCHOR19] 16985 tbz x0, 12, .L2741 16986 ldr x0, [x19, #:lo12:.LANCHOR69] 16987 mov w2, 4800 16988 mov w1, w22 16989 ldr w3, [x0] 16990 adrp x0, .LC150 16991 add x0, x0, :lo12:.LC150 16992 bl printf 16993.L2741: 16994 cmn w22, #1 16995 bne .L2742 16996 ldr x0, [x21, #:lo12:.LANCHOR194] 16997 mov w1, 0 16998 mov w2, 16384 16999 bl ftl_memset 17000 ldr x0, [x19, #:lo12:.LANCHOR69] 17001 mov w1, 21574 17002 movk w1, 0x494c, lsl 16 17003 str w1, [x0] 17004 mov w1, 36 17005 movk w1, 0x6, lsl 16 17006 str w1, [x0, 12] 17007 mov w0, w22 17008.L2734: 17009 ldp x19, x20, [sp, 16] 17010 ldp x21, x22, [sp, 32] 17011 ldp x23, x24, [sp, 48] 17012 ldp x25, x26, [sp, 64] 17013 ldp x27, x28, [sp, 80] 17014 ldp x29, x30, [sp], 112 17015 ret 17016.L2735: 17017 ldrh w6, [x26] 17018 adrp x7, .LANCHOR192 17019 ldrb w4, [x24] 17020 add x7, x7, :lo12:.LANCHOR192 17021 ldr x2, [x21, #:lo12:.LANCHOR194] 17022 mov x3, x7 17023 str x7, [x29, 96] 17024 mul w6, w6, w0 17025 mov w0, 0 17026 str w6, [x29, 108] 17027 mov w1, w6 17028 bl ftl_read_page 17029 mov w5, w0 17030 cmn w0, #1 17031 ldr w6, [x29, 108] 17032 ldr x7, [x29, 96] 17033 bne .L2738 17034 ldrb w4, [x24] 17035 mov x3, x7 17036 ldr x2, [x21, #:lo12:.LANCHOR194] 17037 add w1, w6, 1 17038 mov w0, 0 17039 bl ftl_read_page 17040 mov w5, w0 17041.L2738: 17042 adrp x0, .LANCHOR19 17043 ldr w0, [x0, #:lo12:.LANCHOR19] 17044 tbz x0, 12, .L2739 17045 ldr x0, [x19, #:lo12:.LANCHOR69] 17046 mov w2, w5 17047 str w5, [x29, 108] 17048 mov w3, 749 17049 mov w1, w28 17050 ldr w4, [x0] 17051 adrp x0, .LC149 17052 add x0, x0, :lo12:.LC149 17053 bl printf 17054 ldr w5, [x29, 108] 17055.L2739: 17056 cmn w5, #1 17057 beq .L2740 17058 ldr x0, [x19, #:lo12:.LANCHOR69] 17059 ldr w0, [x0] 17060 cmp w0, w27 17061 bne .L2740 17062 mov w22, w25 17063 b .L2737 17064.L2742: 17065 ldr x1, [x23, #:lo12:.LANCHOR6] 17066 add w0, w25, 8 17067 ldr x2, [x21, #:lo12:.LANCHOR194] 17068 mov w4, 4 17069 adrp x26, .LANCHOR68 17070 mov w28, 21574 17071 add x0, x1, x0, sxtw 17072 adrp x27, .LC151 17073 add x26, x26, :lo12:.LANCHOR68 17074 add x27, x27, :lo12:.LC151 17075 movk w28, 0x494c, lsl 16 17076 ldrb w1, [x0, 32] 17077 add x0, x20, :lo12:.LANCHOR193 17078 strb w1, [x20, #:lo12:.LANCHOR193] 17079 strb w25, [x0, 1] 17080 adrp x25, .LANCHOR192 17081 mov w0, 0 17082 add x3, x25, :lo12:.LANCHOR192 17083 bl flash_get_last_written_page 17084 sxth w22, w0 17085 add w0, w0, 1 17086 ldrb w23, [x20, #:lo12:.LANCHOR193] 17087 and w0, w0, 65535 17088 str w0, [x29, 108] 17089 adrp x0, .LANCHOR117 17090 ldrh w0, [x0, #:lo12:.LANCHOR117] 17091 madd w23, w23, w0, w22 17092.L2744: 17093 tbnz w22, #31, .L2748 17094 ldrb w4, [x26] 17095 add x5, x25, :lo12:.LANCHOR192 17096 ldr x2, [x21, #:lo12:.LANCHOR194] 17097 mov x3, x5 17098 mov w1, w23 17099 mov w0, 0 17100 str x5, [x29, 96] 17101 bl ftl_read_page 17102 cmn w0, #1 17103 beq .L2745 17104 ldr x0, [x19, #:lo12:.LANCHOR69] 17105 ldr x5, [x29, 96] 17106 ldr w0, [x0] 17107 cmp w0, w28 17108 bne .L2745 17109 ldr w6, [x5, 8] 17110 cbnz w6, .L2746 17111.L2748: 17112 ldrh w0, [x29, 108] 17113 add x20, x20, :lo12:.LANCHOR193 17114 strh w0, [x20, 2] 17115 bl ftl_tmp_into_update 17116 ldr x1, [x19, #:lo12:.LANCHOR69] 17117 ldr w0, [x1, 64] 17118 add w0, w0, 1 17119 str w0, [x1, 64] 17120 mov w0, 0 17121 bl ftl_info_flush 17122 mov w0, 0 17123 bl ftl_info_flush 17124 ldr w0, [x24, #:lo12:.LANCHOR19] 17125 tbnz x0, 14, .L2747 17126.L2764: 17127 mov w0, 0 17128 b .L2734 17129.L2746: 17130 ldr x0, [x21, #:lo12:.LANCHOR194] 17131 ldrb w1, [x26] 17132 lsl w1, w1, 9 17133 bl js_hash 17134 cmp w6, w0 17135 beq .L2748 17136 mov w1, w6 17137 mov x0, x27 17138 bl printf 17139.L2745: 17140 sub w22, w22, #1 17141 sub w23, w23, #1 17142 sxth w22, w22 17143 b .L2744 17144.L2747: 17145 ldr x0, [x19, #:lo12:.LANCHOR69] 17146 ldr w1, [x0, 156] 17147 adrp x0, .LC152 17148 add x0, x0, :lo12:.LC152 17149 bl printf 17150 b .L2764 17151 .size ftl_info_blk_init, .-ftl_info_blk_init 17152 .section .text.ftl_ext_info_flush,"ax",@progbits 17153 .align 2 17154 .global ftl_ext_info_flush 17155 .type ftl_ext_info_flush, %function 17156ftl_ext_info_flush: 17157 stp x29, x30, [sp, -96]! 17158 adrp x0, .LANCHOR12 17159 add x29, sp, 0 17160 ldr x0, [x0, #:lo12:.LANCHOR12] 17161 stp x19, x20, [sp, 16] 17162 stp x21, x22, [sp, 32] 17163 stp x23, x24, [sp, 48] 17164 ldr w1, [x0, 520] 17165 stp x25, x26, [sp, 64] 17166 stp x27, x28, [sp, 80] 17167 cbz w1, .L2766 17168 str wzr, [x0, 520] 17169.L2766: 17170 adrp x20, .LANCHOR100 17171 adrp x22, .LANCHOR200 17172 adrp x21, .LANCHOR31 17173 add x20, x20, :lo12:.LANCHOR100 17174 add x22, x22, :lo12:.LANCHOR200 17175 add x21, x21, :lo12:.LANCHOR31 17176 mov w0, 0 17177 bl ftl_total_vpn_update 17178.L2767: 17179 adrp x23, .LANCHOR69 17180 mov x24, x23 17181.L2770: 17182 ldr x0, [x23, #:lo12:.LANCHOR69] 17183 ldr w1, [x0, 56] 17184 add w1, w1, 1 17185 str w1, [x0, 56] 17186 ldrh w1, [x0, 140] 17187 ldrh w0, [x20] 17188 cmp w1, w0 17189 bcc .L2768 17190 bl ftl_ext_alloc_new_blk 17191.L2768: 17192 ldr x0, [x24, #:lo12:.LANCHOR69] 17193 ldrh w1, [x0, 130] 17194 mov w0, 65535 17195 cmp w1, w0 17196 bne .L2769 17197 adrp x0, .LC0 17198 mov w2, 2216 17199 mov x1, x22 17200 add x0, x0, :lo12:.LC0 17201 bl printf 17202.L2769: 17203 ldrb w19, [x21] 17204 mov w0, 24 17205 ldr x1, [x24, #:lo12:.LANCHOR69] 17206 adrp x26, .LANCHOR68 17207 sub w19, w0, w19 17208 adrp x0, .LANCHOR80 17209 adrp x27, .LANCHOR192 17210 add x25, x27, :lo12:.LANCHOR192 17211 ldrh w0, [x0, #:lo12:.LANCHOR80] 17212 ldrh w2, [x1, 130] 17213 sub w0, w19, w0 17214 mov w19, 1 17215 asr w28, w2, w0 17216 lsl w19, w19, w0 17217 adrp x0, .LANCHOR117 17218 sub w19, w19, #1 17219 and w19, w19, w2 17220 ldrh w2, [x0, #:lo12:.LANCHOR117] 17221 ldrh w0, [x1, 140] 17222 sxth w19, w19 17223 mov w1, 0 17224 madd w19, w19, w2, w0 17225 ldrb w2, [x26, #:lo12:.LANCHOR68] 17226 mov x0, x25 17227 lsl w2, w2, 1 17228 bl ftl_memset 17229 ldr x0, [x24, #:lo12:.LANCHOR69] 17230 ldrb w7, [x26, #:lo12:.LANCHOR68] 17231 str wzr, [x27, #:lo12:.LANCHOR192] 17232 ldr w0, [x0, 56] 17233 lsl w1, w7, 9 17234 str w0, [x25, 4] 17235 adrp x0, .LANCHOR199 17236 ldr x6, [x0, #:lo12:.LANCHOR199] 17237 mov x0, x6 17238 bl js_hash 17239 mov x2, x6 17240 mov w1, w19 17241 str w0, [x25, 8] 17242 mov w4, w7 17243 mov x3, x25 17244 mov w0, w28 17245 bl ftl_prog_page 17246 ldr x2, [x24, #:lo12:.LANCHOR69] 17247 ldrh w1, [x2, 140] 17248 add w1, w1, 1 17249 and w1, w1, 65535 17250 strh w1, [x2, 140] 17251 cmp w1, 1 17252 beq .L2770 17253 cmn w0, #1 17254 adrp x0, .LANCHOR198 17255 beq .L2771 17256 ldrb w1, [x0, #:lo12:.LANCHOR198] 17257 cbz w1, .L2772 17258.L2771: 17259 strb wzr, [x0, #:lo12:.LANCHOR198] 17260 b .L2767 17261.L2772: 17262 mov w0, 0 17263 ldp x19, x20, [sp, 16] 17264 ldp x21, x22, [sp, 32] 17265 ldp x23, x24, [sp, 48] 17266 ldp x25, x26, [sp, 64] 17267 ldp x27, x28, [sp, 80] 17268 ldp x29, x30, [sp], 96 17269 ret 17270 .size ftl_ext_info_flush, .-ftl_ext_info_flush 17271 .section .text.ftl_ext_info_init,"ax",@progbits 17272 .align 2 17273 .global ftl_ext_info_init 17274 .type ftl_ext_info_init, %function 17275ftl_ext_info_init: 17276 stp x29, x30, [sp, -128]! 17277 adrp x0, .LANCHOR127 17278 adrp x2, .LANCHOR80 17279 mov w4, 4 17280 add x29, sp, 0 17281 stp x19, x20, [sp, 16] 17282 adrp x20, .LANCHOR69 17283 strh wzr, [x0, #:lo12:.LANCHOR127] 17284 ldr x0, [x20, #:lo12:.LANCHOR69] 17285 stp x21, x22, [sp, 32] 17286 adrp x21, .LANCHOR199 17287 stp x27, x28, [sp, 80] 17288 stp x23, x24, [sp, 48] 17289 adrp x24, .LANCHOR192 17290 ldrh w1, [x0, 130] 17291 adrp x0, .LANCHOR31 17292 stp x25, x26, [sp, 64] 17293 add x3, x24, :lo12:.LANCHOR192 17294 ldrb w19, [x0, #:lo12:.LANCHOR31] 17295 mov w0, 24 17296 sub w0, w0, w19 17297 ldrh w19, [x2, #:lo12:.LANCHOR80] 17298 ldr x2, [x21, #:lo12:.LANCHOR199] 17299 sub w0, w0, w19 17300 mov w19, 1 17301 lsl w19, w19, w0 17302 sub w19, w19, #1 17303 asr w22, w1, w0 17304 and w19, w19, w1 17305 and w27, w22, 255 17306 mov w1, w19 17307 mov w0, w27 17308 bl flash_get_last_written_page 17309 sxth w23, w0 17310 adrp x0, .LANCHOR19 17311 stp x0, x24, [x29, 112] 17312 ldr w1, [x0, #:lo12:.LANCHOR19] 17313 tbz x1, 12, .L2783 17314 ldr x0, [x20, #:lo12:.LANCHOR69] 17315 adrp x1, .LANCHOR201 17316 and w4, w22, 65535 17317 mov w3, w23 17318 mov w2, 2261 17319 add x1, x1, :lo12:.LANCHOR201 17320 ldrh w5, [x0, 130] 17321 adrp x0, .LC153 17322 add x0, x0, :lo12:.LC153 17323 bl printf 17324.L2783: 17325 adrp x25, .LANCHOR68 17326 adrp x26, .LANCHOR117 17327 mov w28, 20038 17328 add x25, x25, :lo12:.LANCHOR68 17329 add x26, x26, :lo12:.LANCHOR117 17330 mov w24, 0 17331 movk w28, 0x4549, lsl 16 17332.L2784: 17333 and w22, w23, 65535 17334 sub w0, w22, w24 17335 tbnz x0, 15, .L2789 17336 ldr x0, [x29, 120] 17337 sub w1, w23, w24 17338 ldrb w4, [x25] 17339 add x5, x0, :lo12:.LANCHOR192 17340 ldrh w0, [x26] 17341 ldr x2, [x21, #:lo12:.LANCHOR199] 17342 mov x3, x5 17343 str x5, [x29, 104] 17344 madd w1, w0, w19, w1 17345 mov w0, w27 17346 bl flash_read_page_en 17347 cmp w0, 512 17348 ccmn w0, #1, 4, ne 17349 beq .L2785 17350 adrp x0, .LANCHOR12 17351 ldr x5, [x29, 104] 17352 ldr x0, [x0, #:lo12:.LANCHOR12] 17353 ldr w0, [x0] 17354 cmp w0, w28 17355 bne .L2785 17356 ldr w6, [x5, 8] 17357 cbnz w6, .L2786 17358.L2789: 17359 bl zftl_sblk_list_init 17360 ldr x0, [x20, #:lo12:.LANCHOR69] 17361 ldrh w1, [x0, 140] 17362 cmp w1, w23 17363 bgt .L2788 17364 add w22, w22, 1 17365 strh w22, [x0, 140] 17366 bl ftl_ext_info_flush 17367.L2788: 17368 adrp x0, .LANCHOR12 17369 mov w1, -1 17370 ldr x0, [x0, #:lo12:.LANCHOR12] 17371 strh w1, [x0, 584] 17372 strh w1, [x0, 586] 17373 strh w1, [x0, 588] 17374 strh w1, [x0, 590] 17375 mov w1, 65535 17376 str w1, [x0, 560] 17377 mov w1, -1 17378 str w1, [x0, 564] 17379 ldr x1, [x29, 112] 17380 str wzr, [x0, 520] 17381 str wzr, [x0, 604] 17382 str wzr, [x0, 608] 17383 ldr w1, [x1, #:lo12:.LANCHOR19] 17384 tbz x1, 12, .L2791 17385 ldr w3, [x0, 12] 17386 adrp x1, .LANCHOR201 17387 adrp x0, .LC155 17388 mov w4, 0 17389 mov w2, 0 17390 add x1, x1, :lo12:.LANCHOR201 17391 add x0, x0, :lo12:.LC155 17392 bl printf 17393.L2791: 17394 adrp x0, .LANCHOR78 17395 mov w1, -1 17396 ldp x19, x20, [sp, 16] 17397 strh w1, [x0, #:lo12:.LANCHOR78] 17398 ldp x21, x22, [sp, 32] 17399 mov w0, 0 17400 ldp x23, x24, [sp, 48] 17401 ldp x25, x26, [sp, 64] 17402 ldp x27, x28, [sp, 80] 17403 ldp x29, x30, [sp], 128 17404 ret 17405.L2786: 17406 ldr x0, [x21, #:lo12:.LANCHOR199] 17407 ldrb w1, [x25] 17408 lsl w1, w1, 9 17409 bl js_hash 17410 cmp w6, w0 17411 beq .L2789 17412 adrp x0, .LC154 17413 mov w1, w6 17414 add x0, x0, :lo12:.LC154 17415 bl printf 17416.L2785: 17417 add w24, w24, 1 17418 b .L2784 17419 .size ftl_ext_info_init, .-ftl_ext_info_init 17420 .section .text.ftl_low_format_data_init,"ax",@progbits 17421 .align 2 17422 .global ftl_low_format_data_init 17423 .type ftl_low_format_data_init, %function 17424ftl_low_format_data_init: 17425 stp x29, x30, [sp, -48]! 17426 adrp x0, .LANCHOR199 17427 mov w2, 16384 17428 mov w1, 0 17429 add x29, sp, 0 17430 ldr x0, [x0, #:lo12:.LANCHOR199] 17431 stp x19, x20, [sp, 16] 17432 adrp x19, .LANCHOR69 17433 str x21, [sp, 32] 17434 bl ftl_memset 17435 bl zftl_sblk_list_init 17436 mov w0, 1 17437 bl ftl_alloc_sblk 17438 mov w1, 0 17439 mov w21, w0 17440 bl ftl_erase_sblk 17441 ldr x1, [x19, #:lo12:.LANCHOR69] 17442 mov w0, w21 17443 add x1, x1, 672 17444 bl ftl_get_blk_list_in_sblk 17445 ldr x0, [x19, #:lo12:.LANCHOR69] 17446 ldrh w20, [x0, 672] 17447 strh wzr, [x0, 690] 17448 mov w0, 65533 17449 sub w1, w20, #1 17450 cmp w0, w1, uxth 17451 bcs .L2803 17452 adrp x1, .LANCHOR202 17453 adrp x0, .LC0 17454 mov w2, 2489 17455 add x1, x1, :lo12:.LANCHOR202 17456 add x0, x0, :lo12:.LC0 17457 bl printf 17458.L2803: 17459 ldr x0, [x19, #:lo12:.LANCHOR69] 17460 mov w2, 256 17461 mov w1, 255 17462 add x0, x0, 416 17463 strh wzr, [x0, 280] 17464 bl ftl_memset 17465 ldr x0, [x19, #:lo12:.LANCHOR69] 17466 mov w2, 4096 17467 mov w1, 0 17468 add x0, x0, 704 17469 bl ftl_memset 17470 adrp x0, .LANCHOR31 17471 ldr x1, [x19, #:lo12:.LANCHOR69] 17472 ldrb w2, [x0, #:lo12:.LANCHOR31] 17473 mov w0, 24 17474 sub w0, w0, w2 17475 adrp x2, .LANCHOR80 17476 strh w21, [x1, 416] 17477 adrp x21, .LANCHOR12 17478 ldrh w2, [x2, #:lo12:.LANCHOR80] 17479 strh w20, [x1, 692] 17480 sub w0, w0, w2 17481 asr w0, w20, w0 17482 strh w0, [x1, 694] 17483 mov w0, 1 17484 strh w0, [x1, 688] 17485 adrp x0, .LANCHOR203 17486 ldrh w0, [x0, #:lo12:.LANCHOR203] 17487 strh w0, [x1, 698] 17488 mov w1, 20038 17489 ldr x0, [x21, #:lo12:.LANCHOR12] 17490 movk w1, 0x4549, lsl 16 17491 str w1, [x0] 17492 bl ftl_alloc_sys_blk 17493 mov w20, w0 17494 mov w1, 0 17495 bl ftl_erase_phy_blk 17496 ldr x0, [x19, #:lo12:.LANCHOR69] 17497 mov w1, 2 17498 strh w20, [x0, 130] 17499 mov w20, -1 17500 strh wzr, [x0, 140] 17501 ldr x0, [x21, #:lo12:.LANCHOR12] 17502 add x0, x0, 16 17503 strh w20, [x0, 568] 17504 strh w20, [x0, 570] 17505 strh w20, [x0, 572] 17506 strh w20, [x0, 574] 17507 bl ftl_open_sblk_init 17508 ldr x0, [x21, #:lo12:.LANCHOR12] 17509 mov w1, 3 17510 add x0, x0, 48 17511 bl ftl_open_sblk_init 17512 ldr x1, [x19, #:lo12:.LANCHOR69] 17513 ldr x0, [x21, #:lo12:.LANCHOR12] 17514 add x0, x0, 136 17515 ldrh w2, [x1, 134] 17516 strh w2, [x0, -10] 17517 strh w20, [x0, -56] 17518 mov w2, -1 17519 strh w20, [x0, -6] 17520 str w2, [x0, 408] 17521 strh wzr, [x0, -12] 17522 strh wzr, [x0, -16] 17523 strh wzr, [x0, -14] 17524 strh w2, [x1, 126] 17525 mov w2, 256 17526 str wzr, [x0, 384] 17527 mov w1, 255 17528 str wzr, [x0, 388] 17529 str wzr, [x0, 392] 17530 bl ftl_memset 17531 mov w2, 128 17532 mov w1, 255 17533 ldr x0, [x21, #:lo12:.LANCHOR12] 17534 add x0, x0, 392 17535 bl ftl_memset 17536 bl ftl_ext_info_flush 17537 mov w0, 0 17538 bl ftl_info_flush 17539 bl ftl_info_blk_init 17540 ldr x21, [sp, 32] 17541 mov w0, 0 17542 ldp x19, x20, [sp, 16] 17543 ldp x29, x30, [sp], 48 17544 ret 17545 .size ftl_low_format_data_init, .-ftl_low_format_data_init 17546 .section .text.ftl_low_format,"ax",@progbits 17547 .align 2 17548 .global ftl_low_format 17549 .type ftl_low_format, %function 17550ftl_low_format: 17551 stp x29, x30, [sp, -80]! 17552 mov w1, 0 17553 adrp x0, .LC156 17554 add x0, x0, :lo12:.LC156 17555 add x29, sp, 0 17556 stp x19, x20, [sp, 16] 17557 adrp x20, .LANCHOR204 17558 stp x21, x22, [sp, 32] 17559 add x20, x20, :lo12:.LANCHOR204 17560 stp x25, x26, [sp, 64] 17561 adrp x22, .LANCHOR6 17562 mov x25, x22 17563 stp x23, x24, [sp, 48] 17564 mov w19, 8 17565 adrp x23, .LC0 17566 bl printf 17567.L2808: 17568 ldr x0, [x22, #:lo12:.LANCHOR6] 17569 add x0, x0, x19, sxtw 17570 ldrb w21, [x0, 32] 17571 add w0, w21, 127 17572 and w0, w0, 255 17573 cmp w0, 125 17574 bhi .L2806 17575 mov w2, 2544 17576 mov x1, x20 17577 add x0, x23, :lo12:.LC0 17578 bl printf 17579.L2806: 17580 cmp w21, 255 17581 beq .L2807 17582 adrp x0, .LANCHOR117 17583 ldrh w1, [x0, #:lo12:.LANCHOR117] 17584 mov w0, 0 17585 mul w1, w1, w21 17586 bl flash_erase_block 17587.L2807: 17588 add w19, w19, 1 17589 cmp w19, 16 17590 bne .L2808 17591 bl sblk_init 17592 adrp x22, .LANCHOR9 17593 bl ftl_info_blk_init 17594 adrp x19, .LANCHOR8 17595 adrp x0, .LANCHOR194 17596 mov w2, 16384 17597 mov w1, 0 17598 ldr x0, [x0, #:lo12:.LANCHOR194] 17599 bl ftl_memset 17600 ldr x0, [x22, #:lo12:.LANCHOR9] 17601 mov w3, 1 17602 ldrh w2, [x19, #:lo12:.LANCHOR8] 17603 add x2, x0, x2, lsl 2 17604.L2809: 17605 cmp x0, x2 17606 bne .L2810 17607 adrp x21, .LANCHOR69 17608 mov w1, 21574 17609 adrp x24, .LANCHOR74 17610 add x24, x24, :lo12:.LANCHOR74 17611 ldr x0, [x21, #:lo12:.LANCHOR69] 17612 movk w1, 0x494c, lsl 16 17613 mov w20, 0 17614 mov w26, 1 17615 strh wzr, [x0, 148] 17616 str w1, [x0] 17617.L2811: 17618 ldrh w0, [x19, #:lo12:.LANCHOR8] 17619 adrp x23, .LANCHOR81 17620 cmp w0, w20 17621 bhi .L2820 17622 ldr x0, [x25, #:lo12:.LANCHOR6] 17623 mov w4, 3 17624 ldrb w2, [x23, #:lo12:.LANCHOR81] 17625 mov w10, 15 17626 ldr x6, [x21, #:lo12:.LANCHOR69] 17627 cmp w2, 1 17628 ldr x1, [x22, #:lo12:.LANCHOR9] 17629 ldrb w0, [x0, 47] 17630 csinc w4, w4, wzr, ne 17631 and w4, w4, 255 17632 and w8, w2, 65535 17633 ldrh w3, [x6, 148] 17634 udiv w0, w0, w2 17635 and w5, w0, 65535 17636 ubfiz x0, x0, 2, 8 17637 add x0, x0, 4 17638 add w20, w5, 1 17639 add x0, x1, x0 17640.L2823: 17641 cmp w2, 4 17642 add x1, x1, 4 17643 csel w7, w10, w4, eq 17644 strb w7, [x1, -1] 17645 ldrb w7, [x1, -2] 17646 orr w7, w7, -32 17647 strb w7, [x1, -2] 17648 cmp x1, x0 17649 bne .L2823 17650 mul w5, w5, w8 17651 mov w4, 16 17652 add w0, w8, w3 17653 sdiv w4, w4, w2 17654 add w0, w5, w0, uxth 17655 strh w0, [x6, 148] 17656 adrp x0, .LANCHOR19 17657 ldr w0, [x0, #:lo12:.LANCHOR19] 17658 add w4, w20, w4 17659 and w4, w4, 65535 17660 strh w4, [x6, 134] 17661 tbz x0, 12, .L2824 17662 adrp x0, .LC157 17663 mov w3, w20 17664 mov w2, 128 17665 mov w1, 2603 17666 add x0, x0, :lo12:.LC157 17667 bl printf 17668.L2824: 17669 ldr x0, [x21, #:lo12:.LANCHOR69] 17670 mov w2, 128 17671 mov w1, 255 17672 add x0, x0, 160 17673 bl ftl_memset 17674 adrp x0, .LANCHOR118 17675 ldrb w10, [x23, #:lo12:.LANCHOR81] 17676 adrp x3, .LANCHOR80 17677 ldr x2, [x21, #:lo12:.LANCHOR69] 17678 ldrb w16, [x0, #:lo12:.LANCHOR118] 17679 adrp x0, .LANCHOR31 17680 and w11, w10, 65535 17681 ldr x15, [x22, #:lo12:.LANCHOR9] 17682 ldrb w4, [x0, #:lo12:.LANCHOR31] 17683 mov w0, 24 17684 ldrh w8, [x2, 134] 17685 sub w0, w0, w4 17686 ldrh w4, [x3, #:lo12:.LANCHOR80] 17687 mul w1, w20, w11 17688 mov w3, 0 17689 sub w0, w0, w4 17690 mov w4, 1 17691 and w1, w1, 65535 17692 lsl w4, w4, w0 17693 and w4, w4, 65535 17694.L2825: 17695 cmp w20, w8 17696 bcc .L2831 17697 ldrh w0, [x19, #:lo12:.LANCHOR8] 17698 strh w3, [x2, 112] 17699 sub w0, w0, w8 17700 strh wzr, [x2, 114] 17701 strh w0, [x2, 116] 17702 strh wzr, [x2, 118] 17703 strh w8, [x2, 132] 17704 bl ftl_low_format_data_init 17705 mov w0, 0 17706 ldp x19, x20, [sp, 16] 17707 ldp x21, x22, [sp, 32] 17708 ldp x23, x24, [sp, 48] 17709 ldp x25, x26, [sp, 64] 17710 ldp x29, x30, [sp], 80 17711 ret 17712.L2810: 17713 ldrb w1, [x0, 2] 17714 add x0, x0, 4 17715 and w1, w1, 31 17716 bfi w1, w3, 3, 2 17717 strb w1, [x0, -2] 17718 b .L2809 17719.L2820: 17720 adrp x0, .LANCHOR87 17721 strh w20, [x24] 17722 ldrb w0, [x0, #:lo12:.LANCHOR87] 17723 cbnz w0, .L2812 17724 mov w0, w20 17725 bl ftl_test_block 17726.L2812: 17727 ldrb w11, [x23, #:lo12:.LANCHOR81] 17728 adrp x0, .LANCHOR118 17729 ldr x6, [x22, #:lo12:.LANCHOR9] 17730 mov w7, 0 17731 ldrb w14, [x0, #:lo12:.LANCHOR118] 17732 mov w10, 0 17733 ldr x13, [x21, #:lo12:.LANCHOR69] 17734 mov w8, 0 17735 mul w12, w20, w11 17736 add x6, x6, x20, uxth 2 17737.L2813: 17738 cmp w8, w14 17739 bcs .L2817 17740 add w15, w11, w7 17741 b .L2818 17742.L2816: 17743 add w1, w7, w12 17744 mov w0, w8 17745 bl flash_check_bad_block 17746 cbz w0, .L2814 17747 ldrb w1, [x6, 3] 17748 lsl w0, w26, w7 17749 orr w0, w0, w1 17750 strb w0, [x6, 3] 17751 ldrh w0, [x13, 148] 17752 add w0, w0, 1 17753 strh w0, [x13, 148] 17754.L2815: 17755 add w7, w7, 1 17756.L2818: 17757 cmp w7, w15 17758 bne .L2816 17759 add w8, w8, 1 17760 sub w12, w12, w11 17761 and w8, w8, 65535 17762 b .L2813 17763.L2814: 17764 add w10, w10, 1 17765 and w10, w10, 65535 17766 b .L2815 17767.L2817: 17768 cbnz w10, .L2819 17769 ldrb w0, [x6, 2] 17770 orr w0, w0, -32 17771 strb w0, [x6, 2] 17772.L2819: 17773 add w20, w20, 1 17774 and w20, w20, 65535 17775 b .L2811 17776.L2831: 17777 add x13, x15, x20, uxth 2 17778 mov w6, 0 17779 mov w12, 0 17780 mov w5, 0 17781 ldrb w0, [x13, 2] 17782 orr w0, w0, -32 17783 strb w0, [x13, 2] 17784.L2826: 17785 cmp w5, w16 17786 bcc .L2833 17787 add w20, w20, 1 17788 add w1, w1, w11 17789 and w20, w20, 65535 17790 and w1, w1, 65535 17791 b .L2825 17792.L2829: 17793 ldrb w14, [x13, 3] 17794 add w17, w12, w7 17795 asr w14, w14, w17 17796 tbnz x14, 0, .L2827 17797 cmp w10, 1 17798 bls .L2832 17799 and w0, w0, 1 17800 add w0, w1, w0 17801 and w0, w0, 65535 17802.L2828: 17803 add x14, x2, x3, sxtw 1 17804 add w3, w3, 1 17805 and w3, w3, 65535 17806 add w0, w0, w6 17807 strh w0, [x14, 160] 17808.L2827: 17809 add x7, x7, 1 17810.L2830: 17811 and w0, w7, 65535 17812 cmp w0, w11 17813 bcc .L2829 17814 add w5, w5, 1 17815 add w6, w4, w6 17816 and w5, w5, 65535 17817 add w12, w12, w10 17818 and w6, w6, 65535 17819 b .L2826 17820.L2832: 17821 mov w0, w1 17822 b .L2828 17823.L2833: 17824 mov x7, 0 17825 b .L2830 17826 .size ftl_low_format, .-ftl_low_format 17827 .section .text.ftl_re_low_format,"ax",@progbits 17828 .align 2 17829 .global ftl_re_low_format 17830 .type ftl_re_low_format, %function 17831ftl_re_low_format: 17832 stp x29, x30, [sp, -16]! 17833 mov w1, 1 17834 adrp x0, .LC158 17835 add x0, x0, :lo12:.LC158 17836 add x29, sp, 0 17837 bl printf 17838 bl sblk_init 17839 bl ftl_info_blk_init 17840 bl ftl_ext_info_init 17841 adrp x0, .LANCHOR69 17842 adrp x2, .LANCHOR8 17843 mov w3, 0 17844 mov w4, 0 17845 ldr x0, [x0, #:lo12:.LANCHOR69] 17846 mov w5, 0 17847 ldrh w7, [x2, #:lo12:.LANCHOR8] 17848 adrp x2, .LANCHOR9 17849 ldr x2, [x2, #:lo12:.LANCHOR9] 17850 ldrh w1, [x0, 134] 17851 add x2, x2, x1, uxth 2 17852.L2844: 17853 cmp w1, w7 17854 bcc .L2848 17855 strh w5, [x0, 114] 17856 strh w4, [x0, 118] 17857 strh w3, [x0, 116] 17858 strh wzr, [x0, 122] 17859 strh wzr, [x0, 120] 17860 strh wzr, [x0, 124] 17861 bl ftl_low_format_data_init 17862 mov w0, 0 17863 ldp x29, x30, [sp], 16 17864 ret 17865.L2848: 17866 ldrb w6, [x2, 2] 17867 and w8, w6, 31 17868 strb w8, [x2, 2] 17869 ands w6, w6, 24 17870 bne .L2845 17871 add w5, w5, 1 17872 and w5, w5, 65535 17873.L2846: 17874 add w1, w1, 1 17875 add x2, x2, 4 17876 and w1, w1, 65535 17877 b .L2844 17878.L2845: 17879 cmp w6, 16 17880 bne .L2847 17881 add w4, w4, 1 17882 and w4, w4, 65535 17883 b .L2846 17884.L2847: 17885 add w3, w3, 1 17886 and w3, w3, 65535 17887 b .L2846 17888 .size ftl_re_low_format, .-ftl_re_low_format 17889 .section .text.ftl_prog_ppa_page,"ax",@progbits 17890 .align 2 17891 .global ftl_prog_ppa_page 17892 .type ftl_prog_ppa_page, %function 17893ftl_prog_ppa_page: 17894 adrp x4, .LANCHOR31 17895 mov w5, 1 17896 ldrb w6, [x4, #:lo12:.LANCHOR31] 17897 mov w4, 24 17898 sub w4, w4, w6 17899 lsl w7, w5, w4 17900 sub w7, w7, #1 17901 lsl w5, w5, w6 17902 sub w6, w5, #1 17903 lsr w5, w0, w4 17904 mov w4, w3 17905 mov x3, x2 17906 mov x2, x1 17907 and w1, w7, w0 17908 and w0, w6, w5 17909 b ftl_prog_page 17910 .size ftl_prog_ppa_page, .-ftl_prog_ppa_page 17911 .section .text.ftl_write_last_log_page,"ax",@progbits 17912 .align 2 17913 .global ftl_write_last_log_page 17914 .type ftl_write_last_log_page, %function 17915ftl_write_last_log_page: 17916 ldrh w1, [x0, 6] 17917 cmp w1, 1 17918 bne .L2853 17919 stp x29, x30, [sp, -48]! 17920 adrp x1, .LANCHOR123 17921 add x29, sp, 0 17922 stp x19, x20, [sp, 16] 17923 mov x19, x0 17924 stp x21, x22, [sp, 32] 17925 ldr x20, [x1, #:lo12:.LANCHOR123] 17926 ldrh w22, [x0, 12] 17927 bl ftl_get_new_free_page 17928 mov w21, w0 17929 cmn w0, #1 17930 beq .L2854 17931 ldrh w0, [x19] 17932 add x20, x20, x22, uxth 2 17933 bl ftl_vpn_decrement 17934 adrp x0, .LANCHOR190 17935 mov w1, 15555 17936 add x7, x0, :lo12:.LANCHOR190 17937 movk w1, 0xf55f, lsl 16 17938 str w1, [x0, #:lo12:.LANCHOR190] 17939 adrp x0, .LANCHOR100 17940 ldrh w1, [x0, #:lo12:.LANCHOR100] 17941 adrp x0, .LANCHOR85 17942 ldrb w0, [x0, #:lo12:.LANCHOR85] 17943 mul w1, w1, w0 17944 mov x0, x20 17945 lsl w1, w1, 2 17946 bl js_hash 17947 mov x1, x7 17948 mov x2, 0 17949 stp w0, wzr, [x7, 4] 17950 mov w0, 2 17951 str wzr, [x7, 12] 17952 str wzr, [x1, 16]! 17953 bl ftl_debug_info_fill 17954 mov x2, x7 17955 adrp x0, .LANCHOR68 17956 mov x1, x20 17957 ldrb w3, [x0, #:lo12:.LANCHOR68] 17958 mov w0, w21 17959 bl ftl_prog_ppa_page 17960.L2854: 17961 mov w0, 0 17962 ldp x19, x20, [sp, 16] 17963 ldp x21, x22, [sp, 32] 17964 ldp x29, x30, [sp], 48 17965 ret 17966.L2853: 17967 mov w0, -1 17968 ret 17969 .size ftl_write_last_log_page, .-ftl_write_last_log_page 17970 .section .text.pm_write_page,"ax",@progbits 17971 .align 2 17972 .global pm_write_page 17973 .type pm_write_page, %function 17974pm_write_page: 17975 stp x29, x30, [sp, -96]! 17976 add x29, sp, 0 17977 stp x19, x20, [sp, 16] 17978 mov w19, w0 17979 stp x21, x22, [sp, 32] 17980 adrp x21, .LANCHOR100 17981 stp x23, x24, [sp, 48] 17982 adrp x22, .LANCHOR117 17983 adrp x24, .LANCHOR69 17984 mov x23, x1 17985 add x21, x21, :lo12:.LANCHOR100 17986 mov x20, x24 17987 add x22, x22, :lo12:.LANCHOR117 17988 stp x25, x26, [sp, 64] 17989 str x27, [sp, 80] 17990 mov w25, 65535 17991.L2860: 17992 ldr x0, [x24, #:lo12:.LANCHOR69] 17993 ldr w1, [x0, 48] 17994 ldrh w2, [x0, 696] 17995 add w1, w1, 1 17996 str w1, [x0, 48] 17997 ldrh w1, [x21] 17998 cmp w2, w1 17999 bcs .L2861 18000 ldrh w0, [x0, 692] 18001 cmp w0, w25 18002 bne .L2862 18003.L2861: 18004 bl pm_alloc_new_blk 18005 mov w0, 0 18006 bl ftl_info_flush 18007.L2862: 18008 ldr x0, [x20, #:lo12:.LANCHOR69] 18009 ldrh w0, [x0, 692] 18010 cmp w0, w25 18011 bne .L2863 18012 adrp x1, .LANCHOR205 18013 adrp x0, .LC0 18014 mov w2, 303 18015 add x1, x1, :lo12:.LANCHOR205 18016 add x0, x0, :lo12:.LC0 18017 bl printf 18018.L2863: 18019 ldr x0, [x20, #:lo12:.LANCHOR69] 18020 adrp x27, .LANCHOR206 18021 ldrh w1, [x22] 18022 mov w2, 64 18023 ldrh w26, [x0, 692] 18024 ldrh w0, [x0, 696] 18025 madd w26, w26, w1, w0 18026 ldr x0, [x27, #:lo12:.LANCHOR206] 18027 mov w1, 0 18028 bl ftl_memset 18029 ldr x6, [x27, #:lo12:.LANCHOR206] 18030 ldr x7, [x20, #:lo12:.LANCHOR69] 18031 str w19, [x6] 18032 ldr w0, [x7, 48] 18033 str w0, [x6, 4] 18034 adrp x0, .LANCHOR68 18035 ldrb w8, [x0, #:lo12:.LANCHOR68] 18036 mov x0, x23 18037 lsl w1, w8, 9 18038 bl js_hash 18039 str w0, [x6, 8] 18040 ldrb w0, [x7, 694] 18041 mov x2, x23 18042 mov w1, w26 18043 mov w4, w8 18044 mov x3, x6 18045 bl ftl_prog_page 18046 ldr x2, [x20, #:lo12:.LANCHOR69] 18047 ldrh w1, [x2, 696] 18048 add w1, w1, 1 18049 and w1, w1, 65535 18050 strh w1, [x2, 696] 18051 cmp w1, 1 18052 adrp x1, .LANCHOR207 18053 beq .L2864 18054 ldrb w3, [x1, #:lo12:.LANCHOR207] 18055 cbz w3, .L2865 18056.L2864: 18057 strb wzr, [x1, #:lo12:.LANCHOR207] 18058 b .L2860 18059.L2865: 18060 cmn w0, #1 18061 bne .L2867 18062 mov w1, w26 18063 adrp x0, .LC159 18064 add x0, x0, :lo12:.LC159 18065 bl printf 18066 b .L2860 18067.L2867: 18068 ldrh w0, [x2, 698] 18069 cmp w19, w0 18070 bcs .L2868 18071 add x19, x2, x19, uxtw 2 18072 str w26, [x19, 704] 18073.L2868: 18074 mov w0, 0 18075 ldr x27, [sp, 80] 18076 ldp x19, x20, [sp, 16] 18077 ldp x21, x22, [sp, 32] 18078 ldp x23, x24, [sp, 48] 18079 ldp x25, x26, [sp, 64] 18080 ldp x29, x30, [sp], 96 18081 ret 18082 .size pm_write_page, .-pm_write_page 18083 .section .text.ftl_dump_write_open_sblk,"ax",@progbits 18084 .align 2 18085 .global ftl_dump_write_open_sblk 18086 .type ftl_dump_write_open_sblk, %function 18087ftl_dump_write_open_sblk: 18088 sub sp, sp, #224 18089 stp x29, x30, [sp, 48] 18090 add x29, sp, 48 18091 stp x19, x20, [sp, 64] 18092 and w20, w0, 65535 18093 adrp x0, .LANCHOR8 18094 stp x21, x22, [sp, 80] 18095 stp x23, x24, [sp, 96] 18096 ldrh w0, [x0, #:lo12:.LANCHOR8] 18097 stp x25, x26, [sp, 112] 18098 stp x27, x28, [sp, 128] 18099 cmp w0, w20 18100 bls .L2873 18101 adrp x0, .LANCHOR89 18102 str x0, [x29, 120] 18103 ldrb w1, [x0, #:lo12:.LANCHOR89] 18104 cbnz w1, .L2875 18105 adrp x0, .LANCHOR86 18106 ldrb w0, [x0, #:lo12:.LANCHOR86] 18107 cbz w0, .L2873 18108.L2875: 18109 adrp x0, .LANCHOR35 18110 ldrb w0, [x0, #:lo12:.LANCHOR35] 18111 cbnz w0, .L2873 18112 adrp x0, .LANCHOR9 18113 ubfiz x14, x20, 2, 16 18114 mov x15, x0 18115 ldr x1, [x0, #:lo12:.LANCHOR9] 18116 add x1, x1, x14 18117 ldrb w1, [x1, 2] 18118 and w1, w1, 224 18119 cmp w1, 160 18120 bne .L2897 18121 adrp x0, .LANCHOR84 18122 ldrb w25, [x0, #:lo12:.LANCHOR84] 18123.L2876: 18124 add x21, x29, 176 18125 adrp x23, .LANCHOR100 18126 mov w0, w20 18127 adrp x26, .LANCHOR117 18128 add x26, x26, :lo12:.LANCHOR117 18129 mov w27, 0 18130 strh w20, [x21, -32]! 18131 mov w28, 0 18132 add x1, x21, 16 18133 bl ftl_get_blk_list_in_sblk 18134 ldrh w1, [x23, #:lo12:.LANCHOR100] 18135 and w0, w0, 255 18136 strb w0, [x29, 153] 18137 strb wzr, [x29, 149] 18138 strh wzr, [x29, 146] 18139 mul w0, w0, w1 18140 strh wzr, [x29, 154] 18141 strh w0, [x29, 150] 18142 ldr x0, [x15, #:lo12:.LANCHOR9] 18143 add x1, x0, x14 18144 ldr w5, [x0, x14] 18145 ldrb w2, [x1, 2] 18146 mov w1, w20 18147 ldrh w4, [x0, x14] 18148 adrp x0, .LC160 18149 ubfx x5, x5, 11, 8 18150 add x0, x0, :lo12:.LC160 18151 ubfx x3, x2, 3, 2 18152 and w4, w4, 2047 18153 ubfx x2, x2, 5, 3 18154 bl printf 18155 mov w0, 1 18156 bl buf_alloc 18157 mov x19, x0 18158 mov w10, 0 18159 add x0, x23, :lo12:.LANCHOR100 18160 str x0, [x29, 128] 18161.L2877: 18162 ldr x0, [x29, 128] 18163 ldrh w0, [x0] 18164 cmp w0, w27 18165 bls .L2885 18166 lsl w22, w27, 1 18167 mov w28, 0 18168 sub w0, w22, #1 18169 add w22, w22, w27 18170 str w0, [x29, 140] 18171 sub w22, w22, #1 18172 adrp x0, .LC161 18173 add x0, x0, :lo12:.LC161 18174 str x0, [x29, 112] 18175 b .L2888 18176.L2897: 18177 mov w25, 1 18178 b .L2876 18179.L2886: 18180 ldrh w12, [x21, x24] 18181 mov w0, 65535 18182 cmp w12, w0 18183 bne .L2878 18184.L2884: 18185 add w10, w10, 1 18186 and w10, w10, 65535 18187.L2879: 18188 cmp w25, w10 18189 bcs .L2886 18190 add w11, w28, 1 18191 and w28, w11, 65535 18192.L2888: 18193 ldrb w0, [x29, 153] 18194 cmp w0, w28 18195 bls .L2887 18196 sxtw x24, w28 18197 mov w10, 1 18198 add x24, x24, 8 18199 lsl x24, x24, 1 18200 b .L2879 18201.L2878: 18202 ldrh w3, [x26] 18203 cmp w25, 3 18204 mul w3, w3, w12 18205 add w0, w3, w10 18206 bne .L2880 18207 adrp x1, .LANCHOR36 18208 ldrb w1, [x1, #:lo12:.LANCHOR36] 18209 cbz w1, .L2881 18210 adrp x1, .LANCHOR84 18211 add w0, w0, w22 18212 ldrb w3, [x1, #:lo12:.LANCHOR84] 18213.L2911: 18214 orr w3, w0, w3, lsl 24 18215 b .L2882 18216.L2881: 18217 add w3, w27, w3 18218 orr w3, w3, w10, lsl 24 18219.L2882: 18220 str w3, [x19, 40] 18221 mov w1, 1 18222 stp w10, w12, [x29, 104] 18223 mov x0, x19 18224 str w3, [x29, 136] 18225 bl sblk_read_page 18226 ldr w13, [x19, 52] 18227 ldp w10, w12, [x29, 104] 18228 cmp w13, 512 18229 ccmn w13, #1, 4, ne 18230 ldr w3, [x29, 136] 18231 bne .L2884 18232 ldr x1, [x19, 24] 18233 mov w4, w13 18234 ldr x0, [x19, 8] 18235 str w10, [x29, 108] 18236 str w13, [x29, 136] 18237 ldr w2, [x1, 12] 18238 str w2, [sp, 32] 18239 ldr w2, [x1, 8] 18240 str w2, [sp, 24] 18241 ldr w2, [x1, 4] 18242 str w2, [sp, 16] 18243 mov w2, w27 18244 ldr w1, [x1] 18245 str w1, [sp, 8] 18246 ldr w1, [x0, 12] 18247 str w1, [sp] 18248 mov w1, w12 18249 ldp w5, w6, [x0] 18250 ldr w7, [x0, 8] 18251 ldr x0, [x29, 112] 18252 bl printf 18253 ldr w13, [x29, 136] 18254 ldr w10, [x29, 108] 18255 cmp w13, 512 18256 bne .L2884 18257.L2885: 18258 mov w4, w10 18259 mov w3, w28 18260 mov w2, w27 18261 mov w1, w20 18262 adrp x24, .LANCHOR68 18263 adrp x0, .LC162 18264 add x0, x0, :lo12:.LC162 18265 bl printf 18266 ldr x0, [x19, 8] 18267 mov w1, 0 18268 ldrb w2, [x24, #:lo12:.LANCHOR68] 18269 adrp x25, .LANCHOR19 18270 adrp x26, .LC163 18271 add x25, x25, :lo12:.LANCHOR19 18272 add x26, x26, :lo12:.LC163 18273 lsl w2, w2, 9 18274 bl ftl_memset 18275 ldr x0, [x19, 24] 18276 mov w1, 0 18277 ldrb w2, [x24, #:lo12:.LANCHOR68] 18278 lsl w2, w2, 1 18279 bl ftl_memset 18280.L2889: 18281 ldrh w0, [x23, #:lo12:.LANCHOR100] 18282 cmp w0, w27 18283 bls .L2895 18284 lsl w0, w27, 1 18285 str w0, [x29, 140] 18286 ldr x0, [x29, 120] 18287 mov w22, 0 18288 add x28, x0, :lo12:.LANCHOR89 18289 b .L2896 18290.L2880: 18291 cmp w25, 2 18292 bne .L2883 18293 adrp x1, .LANCHOR84 18294 ldrb w3, [x1, #:lo12:.LANCHOR84] 18295 ldr w1, [x29, 140] 18296 add w0, w1, w0 18297 b .L2911 18298.L2883: 18299 add w3, w27, w3 18300 b .L2882 18301.L2887: 18302 add w8, w27, 1 18303 and w27, w8, 65535 18304 b .L2877 18305.L2894: 18306 ldr w0, [x25] 18307 tbz x0, 12, .L2890 18308 mov w2, w22 18309 mov w1, w27 18310 mov x0, x26 18311 bl printf 18312.L2890: 18313 ldrb w1, [x28] 18314 adrp x2, .LANCHOR117 18315 sxtw x0, w22 18316 cbz w1, .L2891 18317 add x0, x0, 8 18318 ldrh w1, [x2, #:lo12:.LANCHOR117] 18319 ldrh w0, [x21, x0, lsl 1] 18320 mul w0, w0, w1 18321 orr w0, w0, w27 18322 str w0, [x19, 40] 18323 mov x0, x19 18324 bl sblk_3d_tlc_dump_prog 18325.L2892: 18326 add w22, w22, 1 18327 and w22, w22, 65535 18328.L2896: 18329 ldrb w0, [x29, 153] 18330 cmp w0, w22 18331 bhi .L2894 18332 add w8, w27, 1 18333 and w27, w8, 65535 18334 b .L2889 18335.L2891: 18336 adrp x1, .LANCHOR84 18337 add x0, x0, 8 18338 ldrb w1, [x1, #:lo12:.LANCHOR84] 18339 cmp w1, 2 18340 bne .L2893 18341 ldrh w1, [x2, #:lo12:.LANCHOR117] 18342 ldrh w0, [x21, x0, lsl 1] 18343 mul w0, w0, w1 18344 ldr w1, [x29, 140] 18345 orr w0, w0, w1 18346 orr w0, w0, 33554432 18347 str w0, [x19, 40] 18348 mov x0, x19 18349 bl sblk_mlc_dump_prog 18350 b .L2892 18351.L2893: 18352 ldrh w1, [x21, x0, lsl 1] 18353 mov w6, 1 18354 ldrh w0, [x2, #:lo12:.LANCHOR117] 18355 mov w5, 0 18356 ldrb w4, [x24, #:lo12:.LANCHOR68] 18357 ldr x3, [x19, 24] 18358 mul w1, w1, w0 18359 adrp x0, .LANCHOR31 18360 ldrb w2, [x0, #:lo12:.LANCHOR31] 18361 mov w0, 24 18362 orr w1, w1, w27 18363 str w1, [x19, 40] 18364 sub w0, w0, w2 18365 lsl w6, w6, w2 18366 ldr x2, [x19, 8] 18367 sub w6, w6, #1 18368 lsl w7, w6, w0 18369 lsr w0, w1, w0 18370 bic w1, w1, w7 18371 and w0, w0, w6 18372 bl flash_prog_page_en 18373 b .L2892 18374.L2895: 18375 mov x0, x19 18376 bl zbuf_free 18377 adrp x0, .LC164 18378 mov w1, w20 18379 add x0, x0, :lo12:.LC164 18380 bl printf 18381.L2873: 18382 ldp x19, x20, [sp, 64] 18383 ldp x21, x22, [sp, 80] 18384 ldp x23, x24, [sp, 96] 18385 ldp x25, x26, [sp, 112] 18386 ldp x27, x28, [sp, 128] 18387 ldp x29, x30, [sp, 48] 18388 add sp, sp, 224 18389 ret 18390 .size ftl_dump_write_open_sblk, .-ftl_dump_write_open_sblk 18391 .section .text.gc_ink_check_sblk,"ax",@progbits 18392 .align 2 18393 .global gc_ink_check_sblk 18394 .type gc_ink_check_sblk, %function 18395gc_ink_check_sblk: 18396 stp x29, x30, [sp, -80]! 18397 add x29, sp, 0 18398 stp x19, x20, [sp, 16] 18399 adrp x19, .LANCHOR76 18400 add x0, x19, :lo12:.LANCHOR76 18401 stp x21, x22, [sp, 32] 18402 stp x23, x24, [sp, 48] 18403 stp x25, x26, [sp, 64] 18404 ldrh w1, [x0, 2110] 18405 ldr x22, [x0, 2184] 18406 cmp w1, 3 18407 bhi .L2913 18408 adrp x0, .L2915 18409 mov x20, x19 18410 add x0, x0, :lo12:.L2915 18411 ldrh w0, [x0,w1,uxtw #1] 18412 adr x1, .Lrtx2915 18413 add x0, x1, w0, sxth #2 18414 br x0 18415.Lrtx2915: 18416 .section .rodata.gc_ink_check_sblk,"a",@progbits 18417 .align 0 18418 .align 2 18419.L2915: 18420 .2byte (.L2914 - .Lrtx2915) / 4 18421 .2byte (.L2916 - .Lrtx2915) / 4 18422 .2byte (.L2917 - .Lrtx2915) / 4 18423 .2byte (.L2918 - .Lrtx2915) / 4 18424 .section .text.gc_ink_check_sblk 18425.L2914: 18426 adrp x0, .LANCHOR113 18427 add x24, x0, :lo12:.LANCHOR113 18428 ldrh w0, [x0, #:lo12:.LANCHOR113] 18429 cmp w0, 7 18430 bls .L2912 18431 adrp x0, .LANCHOR57 18432 ldrb w0, [x0, #:lo12:.LANCHOR57] 18433 cmp w0, 2 18434 bls .L2912 18435 adrp x21, .LANCHOR114 18436 add x21, x21, :lo12:.LANCHOR114 18437 mov w1, 0 18438 mov x0, x21 18439 bl _list_get_gc_head_node 18440 and w0, w0, 65535 18441 mov w23, 65535 18442 cmp w0, w23 18443 beq .L2912 18444 adrp x22, .LANCHOR9 18445 ubfiz x0, x0, 2, 16 18446 ldr x1, [x22, #:lo12:.LANCHOR9] 18447 ldrh w0, [x1, x0] 18448 and w0, w0, 2047 18449 cmp w0, 2 18450 bgt .L2912 18451 add x20, x19, :lo12:.LANCHOR76 18452 mov w0, 1 18453 bl buf_alloc 18454 str x0, [x20, 2184] 18455 cbz x0, .L2912 18456 mov x2, x24 18457 mov w1, 0 18458 mov x0, x21 18459 bl _list_pop_index_node 18460 and w14, w0, 65535 18461 cmp w14, w23 18462 bne .L2922 18463 ldr x0, [x20, 2184] 18464 bl zbuf_free 18465 str xzr, [x20, 2184] 18466.L2912: 18467 ldp x19, x20, [sp, 16] 18468 ldp x21, x22, [sp, 32] 18469 ldp x23, x24, [sp, 48] 18470 ldp x25, x26, [sp, 64] 18471 ldp x29, x30, [sp], 80 18472 ret 18473.L2922: 18474 add x1, x20, 2162 18475 mov w0, w14 18476 bl ftl_get_blk_list_in_sblk 18477 strb w0, [x20, 2155] 18478 mov w0, 1 18479 strh w0, [x20, 2110] 18480 ldr x0, [x22, #:lo12:.LANCHOR9] 18481 strh w14, [x20, 2146] 18482 ubfiz x14, x14, 2, 16 18483 strh wzr, [x20, 2148] 18484 ldrh w1, [x0, x14] 18485 adrp x0, .LANCHOR68 18486 ldrb w2, [x0, #:lo12:.LANCHOR68] 18487 ldr x0, [x20, 2184] 18488 lsl w2, w2, 9 18489 tbz x1, 0, .L2923 18490 mov w1, 85 18491.L2938: 18492 ldp x19, x20, [sp, 16] 18493 ldp x21, x22, [sp, 32] 18494 ldp x23, x24, [sp, 48] 18495 ldp x25, x26, [sp, 64] 18496 ldr x0, [x0, 8] 18497 ldp x29, x30, [sp], 80 18498 b ftl_memset 18499.L2923: 18500 mov w1, 170 18501 b .L2938 18502.L2916: 18503 add x20, x19, :lo12:.LANCHOR76 18504 mov w1, 0 18505 ldrh w0, [x20, 2146] 18506 bl ftl_erase_sblk 18507 mov w0, 2 18508 strh w0, [x20, 2110] 18509 b .L2912 18510.L2917: 18511 adrp x21, .LANCHOR117 18512 mov w24, 65280 18513 adrp x23, .LANCHOR31 18514 add x21, x21, :lo12:.LANCHOR117 18515 add x23, x23, :lo12:.LANCHOR31 18516 mov w19, 0 18517 movk w24, 0x55aa, lsl 16 18518 bl sblk_wait_write_queue_completed 18519.L2924: 18520 add x0, x20, :lo12:.LANCHOR76 18521 ldrb w1, [x0, 2155] 18522 cmp w1, w19 18523 bhi .L2926 18524 ldrh w1, [x0, 2148] 18525 adrp x2, .LANCHOR100 18526 add w1, w1, 1 18527 ldrh w2, [x2, #:lo12:.LANCHOR100] 18528 and w1, w1, 65535 18529 strh w1, [x0, 2148] 18530 cmp w2, w1 18531 bhi .L2912 18532 mov w1, 3 18533 strh wzr, [x0, 2148] 18534 strh w1, [x0, 2110] 18535 b .L2912 18536.L2926: 18537 add x1, x0, x19, sxtw 1 18538 ldrh w2, [x1, 2162] 18539 mov w1, 65535 18540 cmp w2, w1 18541 beq .L2925 18542 ldrh w0, [x0, 2148] 18543 mov w6, 1 18544 ldrh w1, [x21] 18545 mov w5, 0 18546 ldr x3, [x22, 24] 18547 madd w1, w1, w2, w0 18548 ldr x2, [x22, 8] 18549 mov w0, 24 18550 stp w1, w24, [x2] 18551 str wzr, [x3] 18552 ldrb w4, [x23] 18553 sub w0, w0, w4 18554 lsl w6, w6, w4 18555 adrp x4, .LANCHOR68 18556 sub w6, w6, #1 18557 ldrb w4, [x4, #:lo12:.LANCHOR68] 18558 lsl w7, w6, w0 18559 lsr w0, w1, w0 18560 bic w1, w1, w7 18561 and w0, w0, w6 18562 bl flash_prog_page_en 18563.L2925: 18564 add w19, w19, 1 18565 and w19, w19, 65535 18566 b .L2924 18567.L2918: 18568 adrp x25, .LANCHOR117 18569 add x19, x19, :lo12:.LANCHOR76 18570 add x25, x25, :lo12:.LANCHOR117 18571 mov w21, 0 18572 mov w26, 65535 18573 bl sblk_wait_write_queue_completed 18574.L2927: 18575 ldrb w0, [x19, 2155] 18576 cmp w0, w21 18577 bhi .L2931 18578 ldrh w0, [x19, 2148] 18579 adrp x1, .LANCHOR100 18580 add w0, w0, 1 18581 ldrh w1, [x1, #:lo12:.LANCHOR100] 18582 and w0, w0, 65535 18583 strh w0, [x19, 2148] 18584 cmp w1, w0 18585 bhi .L2912 18586 ldr x0, [x19, 2184] 18587 strh wzr, [x19, 2110] 18588 bl zbuf_free 18589 str xzr, [x19, 2184] 18590 ldrh w0, [x19, 2112] 18591 cmp w0, 15 18592 bhi .L2932 18593 add w1, w0, 1 18594 add x0, x19, x0, sxtw 1 18595 strh w1, [x19, 2112] 18596 ldrh w1, [x19, 2146] 18597 strh w1, [x0, 2114] 18598.L2933: 18599 add x19, x20, :lo12:.LANCHOR76 18600 adrp x0, .LC165 18601 ldp x21, x22, [sp, 32] 18602 add x0, x0, :lo12:.LC165 18603 ldrh w2, [x19, 2112] 18604 ldrh w1, [x19, 2146] 18605 ldp x23, x24, [sp, 48] 18606 ldp x19, x20, [sp, 16] 18607 ldp x25, x26, [sp, 64] 18608 ldp x29, x30, [sp], 80 18609 b printf 18610.L2931: 18611 add x24, x19, x21, sxtw 1 18612 add x24, x24, 16 18613 ldrh w0, [x24, 2146] 18614 cmp w0, w26 18615 beq .L2929 18616 ldrh w1, [x19, 2148] 18617 ldrh w23, [x25] 18618 madd w23, w23, w0, w1 18619 mov w1, 1 18620 str w23, [x22, 40] 18621 mov x0, x22 18622 bl sblk_read_page 18623 ldr x0, [x22, 8] 18624 ldr w0, [x0] 18625 cmp w23, w0 18626 beq .L2929 18627 mov w0, w23 18628 bl ftl_mask_bad_block 18629 mov w0, -1 18630 strh w0, [x24, 2146] 18631.L2929: 18632 add w21, w21, 1 18633 and w21, w21, 65535 18634 b .L2927 18635.L2932: 18636 ldrh w0, [x19, 2146] 18637 bl zftl_insert_free_list 18638 b .L2933 18639.L2913: 18640 strh wzr, [x0, 2110] 18641 b .L2912 18642 .size gc_ink_check_sblk, .-gc_ink_check_sblk 18643 .section .text.flash_info_flush,"ax",@progbits 18644 .align 2 18645 .global flash_info_flush 18646 .type flash_info_flush, %function 18647flash_info_flush: 18648 stp x29, x30, [sp, -112]! 18649 adrp x0, .LANCHOR19 18650 add x29, sp, 0 18651 ldr w0, [x0, #:lo12:.LANCHOR19] 18652 stp x19, x20, [sp, 16] 18653 stp x21, x22, [sp, 32] 18654 stp x23, x24, [sp, 48] 18655 stp x25, x26, [sp, 64] 18656 stp x27, x28, [sp, 80] 18657 tbz x0, 12, .L2940 18658 adrp x2, .LANCHOR208 18659 adrp x0, .LC91 18660 add x2, x2, :lo12:.LANCHOR208 18661 mov w1, 365 18662 add x0, x0, :lo12:.LC91 18663 bl printf 18664.L2940: 18665 adrp x23, .LANCHOR209 18666 adrp x20, .LANCHOR6 18667 mov w2, 64 18668 mov w1, 0 18669 ldr x0, [x23, #:lo12:.LANCHOR209] 18670 adrp x21, .LANCHOR210 18671 adrp x22, .LANCHOR2 18672 adrp x24, .LC167 18673 adrp x25, .LANCHOR145 18674 add x22, x22, :lo12:.LANCHOR2 18675 add x24, x24, :lo12:.LC167 18676 add x25, x25, :lo12:.LANCHOR145 18677 bl ftl_memset 18678 add x27, x21, :lo12:.LANCHOR210 18679 ldr x1, [x20, #:lo12:.LANCHOR6] 18680 mov w3, 16 18681 mov w2, 4 18682 adrp x0, .LC166 18683 add x0, x0, :lo12:.LC166 18684 mov w26, 0 18685 bl rknand_print_hex 18686 ldr x6, [x20, #:lo12:.LANCHOR6] 18687 add x0, x6, 16 18688 ldr w1, [x6, 8] 18689 bl js_hash 18690 str w0, [x6, 12] 18691.L2941: 18692 add x28, x21, :lo12:.LANCHOR210 18693 ldrb w4, [x21, #:lo12:.LANCHOR210] 18694 ldrh w19, [x22] 18695 mov x0, x24 18696 mov w1, w4 18697 ldrh w3, [x28, 2] 18698 stp w3, w4, [x29, 104] 18699 mov w2, w3 18700 bl printf 18701 ldrh w0, [x25] 18702 ldrh w1, [x28, 2] 18703 sub w0, w0, #1 18704 cmp w1, w0 18705 ldp w3, w4, [x29, 104] 18706 blt .L2942 18707 ldr x6, [x20, #:lo12:.LANCHOR6] 18708 ldrb w7, [x28, 1] 18709 strh wzr, [x28, 2] 18710 ldr w0, [x6, 4] 18711 ldrh w1, [x6, 16] 18712 add w0, w0, 1 18713 str w0, [x6, 4] 18714 ldrb w0, [x21, #:lo12:.LANCHOR210] 18715 add w1, w1, 1 18716 strb w0, [x28, 1] 18717 mov x0, x6 18718 strb w7, [x21, #:lo12:.LANCHOR210] 18719 strh w1, [x0, 16]! 18720 ldr w1, [x6, 8] 18721 bl js_hash 18722 ldrh w19, [x22] 18723 str w0, [x6, 12] 18724 mul w19, w19, w7 18725.L2951: 18726 mov w1, w19 18727 mov w0, 0 18728 bl flash_erase_block 18729 b .L2943 18730.L2946: 18731 mov w26, 1 18732 b .L2941 18733.L2942: 18734 madd w19, w19, w4, w3 18735 cbz w1, .L2951 18736.L2943: 18737 ldr x2, [x20, #:lo12:.LANCHOR6] 18738 mov w1, w19 18739 ldr x3, [x23, #:lo12:.LANCHOR209] 18740 mov w5, 1 18741 mov w4, 4 18742 ldr w0, [x2, 4] 18743 str w0, [x3] 18744 mov w0, 21321 18745 movk w0, 0x5359, lsl 16 18746 str w0, [x3, 4] 18747 mov w0, 0 18748 bl flash_prog_page_en 18749 cmn w0, #1 18750 ldrh w1, [x27, 2] 18751 add w1, w1, 1 18752 strh w1, [x27, 2] 18753 bne .L2944 18754 mov w1, w19 18755 adrp x0, .LC168 18756 add x0, x0, :lo12:.LC168 18757 bl printf 18758 b .L2941 18759.L2944: 18760 cbz w26, .L2946 18761 ldp x19, x20, [sp, 16] 18762 mov w0, 0 18763 ldp x21, x22, [sp, 32] 18764 ldp x23, x24, [sp, 48] 18765 ldp x25, x26, [sp, 64] 18766 ldp x27, x28, [sp, 80] 18767 ldp x29, x30, [sp], 112 18768 ret 18769 .size flash_info_flush, .-flash_info_flush 18770 .section .text.flash_info_blk_init,"ax",@progbits 18771 .align 2 18772 .global flash_info_blk_init 18773 .type flash_info_blk_init, %function 18774flash_info_blk_init: 18775 stp x29, x30, [sp, -96]! 18776 adrp x0, .LANCHOR19 18777 add x29, sp, 0 18778 ldr w0, [x0, #:lo12:.LANCHOR19] 18779 stp x19, x20, [sp, 16] 18780 adrp x20, .LANCHOR6 18781 stp x21, x22, [sp, 32] 18782 stp x23, x24, [sp, 48] 18783 stp x25, x26, [sp, 64] 18784 str x27, [sp, 80] 18785 tbz x0, 12, .L2953 18786 ldr x4, [x20, #:lo12:.LANCHOR6] 18787 adrp x2, .LANCHOR211 18788 adrp x0, .LC169 18789 mov w3, 2048 18790 add x2, x2, :lo12:.LANCHOR211 18791 mov w1, 50 18792 add x0, x0, :lo12:.LC169 18793 bl printf 18794.L2953: 18795 adrp x24, .LANCHOR2 18796 mov w23, 21321 18797 add x26, x24, :lo12:.LANCHOR2 18798 mov w22, 4 18799 adrp x21, .LANCHOR209 18800 movk w23, 0x5359, lsl 16 18801.L2957: 18802 mov w19, 0 18803.L2956: 18804 ldrh w1, [x26] 18805 mov w4, 4 18806 ldr x3, [x21, #:lo12:.LANCHOR209] 18807 mov w0, 0 18808 ldr x2, [x20, #:lo12:.LANCHOR6] 18809 add x27, x21, :lo12:.LANCHOR209 18810 add x25, x20, :lo12:.LANCHOR6 18811 madd w1, w1, w22, w19 18812 bl flash_read_page_en 18813 cmn w0, #1 18814 beq .L2954 18815 ldr x2, [x20, #:lo12:.LANCHOR6] 18816 ldr w0, [x2] 18817 cmp w0, w23 18818 beq .L2955 18819.L2954: 18820 add w19, w19, 1 18821 cmp w19, 4 18822 bne .L2956 18823 add w22, w22, 1 18824 cmp w22, 16 18825 bne .L2957 18826.L2983: 18827 mov w0, -1 18828.L2952: 18829 ldp x19, x20, [sp, 16] 18830 ldp x21, x22, [sp, 32] 18831 ldp x23, x24, [sp, 48] 18832 ldp x25, x26, [sp, 64] 18833 ldr x27, [sp, 80] 18834 ldp x29, x30, [sp], 96 18835 ret 18836.L2965: 18837 ldr x0, [x25] 18838 ldr w1, [x0] 18839 cmp w1, w23 18840 bne .L2966 18841 ldr w22, [x0, 4] 18842.L2959: 18843 add x23, x19, :lo12:.LANCHOR210 18844 ldrh w0, [x24, #:lo12:.LANCHOR2] 18845 ldr x3, [x21, #:lo12:.LANCHOR209] 18846 mov w4, 4 18847 ldr x2, [x20, #:lo12:.LANCHOR6] 18848 ldrb w1, [x23, 1] 18849 mul w1, w1, w0 18850 mov w0, 0 18851 bl flash_read_page_en 18852 cmn w0, #1 18853 beq .L2960 18854 ldr x0, [x20, #:lo12:.LANCHOR6] 18855 mov w1, 21321 18856 movk w1, 0x5359, lsl 16 18857 ldr w2, [x0] 18858 cmp w2, w1 18859 bne .L2960 18860 ldr w1, [x0, 4] 18861 cmp w22, w1 18862 bcs .L2960 18863 ldrb w1, [x0, 37] 18864 ldrb w0, [x0, 36] 18865 strb w1, [x19, #:lo12:.LANCHOR210] 18866 strb w0, [x23, 1] 18867.L2960: 18868 ldrb w1, [x19, #:lo12:.LANCHOR210] 18869 add x22, x19, :lo12:.LANCHOR210 18870 ldr x3, [x21, #:lo12:.LANCHOR209] 18871 mov w4, 4 18872 ldr x2, [x20, #:lo12:.LANCHOR6] 18873 mov w0, 0 18874 bl flash_get_last_written_page 18875 and w25, w0, 65535 18876 add w1, w25, 1 18877 ldrb w23, [x19, #:lo12:.LANCHOR210] 18878 strh w1, [x22, 2] 18879 mov w22, 0 18880 ldrh w1, [x24, #:lo12:.LANCHOR2] 18881 mov w24, 21321 18882 movk w24, 0x5359, lsl 16 18883 mul w23, w23, w1 18884 add w23, w23, w0, sxth 18885.L2961: 18886 sub w0, w25, w22 18887 sxth w19, w0 18888 tbz w19, #31, .L2964 18889 cmn w19, #1 18890 bne .L2963 18891 ldr x0, [x20, #:lo12:.LANCHOR6] 18892 ldr w1, [x0] 18893 adrp x0, .LC170 18894 add x0, x0, :lo12:.LC170 18895 bl printf 18896 b .L2983 18897.L2964: 18898 ldr x3, [x21, #:lo12:.LANCHOR209] 18899 mov w4, 4 18900 ldr x2, [x20, #:lo12:.LANCHOR6] 18901 sub w1, w23, w22 18902 mov w0, 0 18903 bl flash_read_page_en 18904 cmn w0, #1 18905 beq .L2962 18906 ldr x0, [x20, #:lo12:.LANCHOR6] 18907 ldr w0, [x0] 18908 cmp w0, w24 18909 beq .L2963 18910.L2962: 18911 add w22, w22, 1 18912 b .L2961 18913.L2963: 18914 cmp w22, 1 18915 bls .L2967 18916 bl flash_info_flush 18917.L2967: 18918 mov w0, 0 18919 b .L2952 18920.L2955: 18921 adrp x19, .LANCHOR210 18922 add x1, x19, :lo12:.LANCHOR210 18923 ldrb w3, [x2, 37] 18924 mov w4, 4 18925 ldrb w0, [x2, 36] 18926 strb w3, [x1, 1] 18927 ldrh w1, [x26] 18928 ldr x3, [x27] 18929 strb w0, [x19, #:lo12:.LANCHOR210] 18930 mul w1, w1, w0 18931 mov w0, 0 18932 bl flash_read_page_en 18933 cmn w0, #1 18934 bne .L2965 18935.L2966: 18936 mov w22, 0 18937 b .L2959 18938 .size flash_info_blk_init, .-flash_info_blk_init 18939 .section .text.nand_flash_init,"ax",@progbits 18940 .align 2 18941 .global nand_flash_init 18942 .type nand_flash_init, %function 18943nand_flash_init: 18944 stp x29, x30, [sp, -96]! 18945 add x29, sp, 0 18946 stp x21, x22, [sp, 32] 18947 adrp x21, .LANCHOR19 18948 stp x19, x20, [sp, 16] 18949 mov x19, x0 18950 ldr w0, [x21, #:lo12:.LANCHOR19] 18951 stp x23, x24, [sp, 48] 18952 stp x25, x26, [sp, 64] 18953 str x27, [sp, 80] 18954 tbz x0, 12, .L2985 18955 adrp x2, .LANCHOR212 18956 adrp x0, .LC91 18957 add x2, x2, :lo12:.LANCHOR212 18958 mov w1, 3451 18959 add x0, x0, :lo12:.LC91 18960 bl printf 18961.L2985: 18962 adrp x0, .LANCHOR170 18963 adrp x24, .LANCHOR21 18964 adrp x22, .LANCHOR47 18965 add x25, x22, :lo12:.LANCHOR47 18966 str wzr, [x0, #:lo12:.LANCHOR170] 18967 mov x0, x19 18968 bl nandc_init 18969 adrp x19, .LANCHOR32 18970 add x0, x19, :lo12:.LANCHOR32 18971 str x0, [x24, #:lo12:.LANCHOR21] 18972 adrp x0, .LANCHOR23 18973 adrp x23, .LANCHOR31 18974 mov x26, x25 18975 mov w1, 1 18976 mov w20, 0 18977 strb w1, [x0, #:lo12:.LANCHOR23] 18978 mov w27, 44 18979 mov w0, 3 18980 mov w2, 8 18981 strb w0, [x23, #:lo12:.LANCHOR31] 18982 mov w1, 0 18983 adrp x0, .LANCHOR29 18984 add x0, x0, :lo12:.LANCHOR29 18985 bl ftl_memset 18986 mov w2, 32 18987 mov w1, 0 18988 adrp x0, .LANCHOR146 18989 add x0, x0, :lo12:.LANCHOR146 18990 bl ftl_memset 18991.L2991: 18992 mov x1, x25 18993 mov w0, w20 18994 bl flash_read_id 18995 cbnz w20, .L2986 18996 ldrb w0, [x26] 18997 sub w0, w0, #1 18998 and w0, w0, 255 18999 cmp w0, 253 19000 bls .L2987 19001.L2989: 19002 mov w22, -2 19003.L2984: 19004 mov w0, w22 19005 ldr x27, [sp, 80] 19006 ldp x19, x20, [sp, 16] 19007 ldp x21, x22, [sp, 32] 19008 ldp x23, x24, [sp, 48] 19009 ldp x25, x26, [sp, 64] 19010 ldp x29, x30, [sp], 96 19011 ret 19012.L2987: 19013 ldrb w0, [x26, 1] 19014 cmp w0, 255 19015 beq .L2989 19016.L2986: 19017 ldrb w0, [x25] 19018 cmp w0, 181 19019 bne .L2990 19020 strb w27, [x25] 19021.L2990: 19022 add w20, w20, 1 19023 add x25, x25, 8 19024 and w20, w20, 255 19025 cmp w20, 4 19026 bne .L2991 19027 adrp x0, .LANCHOR213 19028 add x8, x0, :lo12:.LANCHOR213 19029 add x8, x8, 1 19030 mov x7, x0 19031 add x12, x22, :lo12:.LANCHOR47 19032 mov x10, 0 19033.L2994: 19034 ldrb w2, [x8, -1] 19035 mov w11, w10 19036 lsl x25, x10, 5 19037 mov x1, x12 19038 mov x0, x8 19039 bl flash_mem_cmp8 19040 cbnz w0, .L2992 19041 add x0, x7, :lo12:.LANCHOR213 19042 ubfiz x11, x11, 5, 32 19043 add x25, x0, x25 19044 add x0, x0, x11 19045 adrp x1, .LANCHOR214 19046 add x4, x1, :lo12:.LANCHOR214 19047 ldrb w3, [x0, 22] 19048 mov x0, 0 19049.L2993: 19050 lsl x5, x0, 5 19051 mov w2, w0 19052 ldrb w5, [x5, x4] 19053 cmp w5, w3 19054 beq .L2995 19055 add x0, x0, 1 19056 cmp x0, 4 19057 bne .L2993 19058 mov w2, w0 19059.L2995: 19060 ubfiz x0, x2, 5, 32 19061 add x1, x1, :lo12:.LANCHOR214 19062 add x1, x1, x0 19063 mov w2, 32 19064 adrp x0, .LANCHOR25 19065 add x20, x19, :lo12:.LANCHOR32 19066 add x0, x0, :lo12:.LANCHOR25 19067 adrp x26, .LANCHOR27 19068 bl ftl_memcpy 19069 mov w2, 32 19070 mov x1, x25 19071 mov x0, x20 19072 bl ftl_memcpy 19073 ldrb w0, [x26, #:lo12:.LANCHOR27] 19074 cmp w0, 8 19075 bhi .L2996 19076 ldrb w0, [x20, 20] 19077 cmp w0, 60 19078 bls .L2996 19079 mov w0, 60 19080 strb w0, [x20, 20] 19081.L2996: 19082 ldr w0, [x21, #:lo12:.LANCHOR19] 19083 tbz x0, 12, .L3026 19084 adrp x2, .LANCHOR212 19085 adrp x0, .LC91 19086 add x2, x2, :lo12:.LANCHOR212 19087 mov w1, 3478 19088 add x0, x0, :lo12:.LC91 19089 bl printf 19090.L3026: 19091 ldr x0, [x24, #:lo12:.LANCHOR21] 19092 ldrh w0, [x0, 10] 19093 cmp w0, 1023 19094 bls .L2997 19095 mov w0, 2 19096 strb w0, [x23, #:lo12:.LANCHOR31] 19097.L2997: 19098 mov w0, 16384 19099 bl ftl_malloc 19100 adrp x1, .LANCHOR174 19101 adrp x23, .LANCHOR6 19102 add x20, x19, :lo12:.LANCHOR32 19103 adrp x25, .LANCHOR48 19104 str x0, [x1, #:lo12:.LANCHOR174] 19105 mov w0, 16384 19106 bl ftl_malloc 19107 adrp x1, .LANCHOR164 19108 str x0, [x1, #:lo12:.LANCHOR164] 19109 mov w0, 2048 19110 bl ftl_malloc 19111 str x0, [x23, #:lo12:.LANCHOR6] 19112 mov w0, 64 19113 bl ftl_malloc 19114 adrp x1, .LANCHOR173 19115 str x0, [x1, #:lo12:.LANCHOR173] 19116 mov w0, 64 19117 bl ftl_malloc 19118 adrp x1, .LANCHOR166 19119 str x0, [x1, #:lo12:.LANCHOR166] 19120 mov w0, 64 19121 bl ftl_malloc 19122 adrp x1, .LANCHOR209 19123 str x0, [x1, #:lo12:.LANCHOR209] 19124 adrp x0, .LANCHOR215 19125 strb wzr, [x0, #:lo12:.LANCHOR215] 19126 bl flash_die_info_init 19127 ldrb w0, [x20, 18] 19128 bl flash_lsb_page_tbl_build 19129 ldrb w0, [x20, 20] 19130 adrp x20, .LANCHOR172 19131 bl nandc_bch_sel 19132 str xzr, [x20, #:lo12:.LANCHOR172] 19133 ldr x2, [x24, #:lo12:.LANCHOR21] 19134 ldrh w0, [x2, 16] 19135 ubfx x1, x0, 8, 3 19136 strb w1, [x25, #:lo12:.LANCHOR48] 19137 adrp x1, .LANCHOR185 19138 ubfx x3, x0, 3, 1 19139 strb w3, [x1, #:lo12:.LANCHOR185] 19140 adrp x1, .LANCHOR44 19141 ubfx x3, x0, 4, 1 19142 strb w3, [x1, #:lo12:.LANCHOR44] 19143 adrp x1, .LANCHOR89 19144 ubfx x3, x0, 12, 1 19145 strb w3, [x1, #:lo12:.LANCHOR89] 19146 adrp x1, .LANCHOR86 19147 ubfx x3, x0, 13, 1 19148 strb w3, [x1, #:lo12:.LANCHOR86] 19149 adrp x1, .LANCHOR35 19150 ubfx x3, x0, 11, 1 19151 strb w3, [x1, #:lo12:.LANCHOR35] 19152 adrp x3, .LANCHOR130 19153 ldrb w1, [x2, 31] 19154 ldrb w2, [x2, 28] 19155 ubfx x4, x1, 1, 1 19156 strb w4, [x3, #:lo12:.LANCHOR130] 19157 adrp x3, .LANCHOR216 19158 ubfx x4, x1, 2, 1 19159 strb w4, [x3, #:lo12:.LANCHOR216] 19160 adrp x3, .LANCHOR1 19161 ubfx x4, x0, 14, 1 19162 lsr w0, w0, 15 19163 strb w4, [x3, #:lo12:.LANCHOR1] 19164 adrp x3, .LANCHOR87 19165 strb w0, [x3, #:lo12:.LANCHOR87] 19166 adrp x0, .LANCHOR0 19167 ubfx x3, x1, 3, 1 19168 ubfx x1, x1, 4, 1 19169 strb w2, [x0, #:lo12:.LANCHOR0] 19170 adrp x0, .LANCHOR30 19171 strb w3, [x0, #:lo12:.LANCHOR30] 19172 adrp x0, .LANCHOR36 19173 strb w1, [x0, #:lo12:.LANCHOR36] 19174 adrp x1, .LANCHOR22 19175 mov w0, 60 19176 strb w0, [x1, #:lo12:.LANCHOR22] 19177 ldrb w0, [x26, #:lo12:.LANCHOR27] 19178 cmp w0, 9 19179 bne .L2998 19180 mov w3, 70 19181 strb w3, [x1, #:lo12:.LANCHOR22] 19182.L2998: 19183 add x1, x19, :lo12:.LANCHOR32 19184 adrp x24, .LANCHOR24 19185 strb w2, [x24, #:lo12:.LANCHOR24] 19186 ldrb w2, [x1, 31] 19187 tbz x2, 0, .L2999 19188 ldrb w1, [x1, 29] 19189 cbz w1, .L3000 19190 mov w1, 2 19191.L3058: 19192 strb w1, [x24, #:lo12:.LANCHOR24] 19193.L2999: 19194 cmp w0, 8 19195 bne .L3001 19196 ldrb w0, [x22, #:lo12:.LANCHOR47] 19197 mov w1, 137 19198 cmp w0, 44 19199 ccmp w0, w1, 4, ne 19200 bne .L3001 19201 add x0, x19, :lo12:.LANCHOR32 19202 ldrb w0, [x0, 28] 19203 cmp w0, 3 19204 bne .L3001 19205 strb wzr, [x24, #:lo12:.LANCHOR24] 19206.L3001: 19207 bl nand_flash_exit_boot_rom_slc_mode 19208 adrp x27, .LANCHOR16 19209 add x1, x19, :lo12:.LANCHOR32 19210 ldrb w0, [x1, 19] 19211 ldrh w1, [x1, 16] 19212 strb w0, [x27, #:lo12:.LANCHOR16] 19213 tbz x1, 6, .L3003 19214 sub w1, w0, #17 19215 and w1, w1, 255 19216 cmp w1, 2 19217 ccmp w0, 21, 4, hi 19218 bne .L3004 19219 adrp x1, micron_read_retrial 19220 add x1, x1, :lo12:micron_read_retrial 19221 str x1, [x20, #:lo12:.LANCHOR172] 19222 cmp w0, 21 19223 adrp x0, .LANCHOR167 19224 beq .L3005 19225 mov w1, 15 19226.L3060: 19227 strb w1, [x0, #:lo12:.LANCHOR167] 19228.L3003: 19229 ldr w0, [x21, #:lo12:.LANCHOR19] 19230 tbz x0, 12, .L3014 19231 adrp x2, .LANCHOR212 19232 adrp x0, .LC91 19233 add x2, x2, :lo12:.LANCHOR212 19234 mov w1, 3571 19235 add x0, x0, :lo12:.LC91 19236 bl printf 19237.L3014: 19238 adrp x26, .LANCHOR26 19239 ldrb w0, [x25, #:lo12:.LANCHOR48] 19240 strb wzr, [x26, #:lo12:.LANCHOR26] 19241 tbz x0, 0, .L3015 19242 ldrb w0, [x22, #:lo12:.LANCHOR47] 19243 cmp w0, 155 19244 beq .L3016 19245 mov w0, 4 19246 bl flash_set_interface_mode 19247 mov w0, 4 19248 bl nandc_set_if_mode 19249.L3016: 19250 mov w0, 1 19251 bl flash_set_interface_mode 19252 mov w0, 1 19253.L3062: 19254 bl nandc_set_if_mode 19255 bl flash_info_blk_init 19256 mov w22, w0 19257 cmn w0, #1 19258 bne .L3018 19259 ldr x0, [x23, #:lo12:.LANCHOR6] 19260 mov w1, 17 19261 strb w1, [x0, 32] 19262 adrp x0, .LANCHOR33 19263 strb wzr, [x0, #:lo12:.LANCHOR33] 19264 mov w0, 0 19265 bl zftl_flash_exit_slc_mode 19266 b .L2984 19267.L2992: 19268 add x10, x10, 1 19269 add x8, x8, 32 19270 cmp x10, 49 19271 bne .L2994 19272 b .L2989 19273.L3000: 19274 mov w1, 3 19275 b .L3058 19276.L3005: 19277 mov w1, 4 19278 b .L3060 19279.L3004: 19280 sub w1, w0, #65 19281 cmp w0, 33 19282 and w1, w1, 255 19283 ccmp w1, 1, 0, ne 19284 bhi .L3007 19285 adrp x0, toshiba_read_retrial 19286 add x0, x0, :lo12:toshiba_read_retrial 19287 str x0, [x20, #:lo12:.LANCHOR172] 19288 adrp x0, .LANCHOR18 19289 mov w1, 4 19290 strb w1, [x0, #:lo12:.LANCHOR18] 19291.L3064: 19292 mov w1, 7 19293.L3063: 19294 adrp x0, .LANCHOR167 19295 b .L3060 19296.L3007: 19297 sub w2, w0, #34 19298 sub w1, w0, #67 19299 and w2, w2, 255 19300 and w1, w1, 255 19301 cmp w2, 1 19302 ccmp w1, 1, 0, hi 19303 bhi .L3008 19304 adrp x2, toshiba_read_retrial 19305 add x2, x2, :lo12:toshiba_read_retrial 19306 str x2, [x20, #:lo12:.LANCHOR172] 19307 cmp w0, 35 19308 mov w2, 68 19309 ccmp w0, w2, 4, ne 19310 adrp x0, .LANCHOR167 19311 beq .L3009 19312 mov w2, 7 19313.L3059: 19314 strb w2, [x0, #:lo12:.LANCHOR167] 19315 cmp w1, 1 19316 adrp x0, .LANCHOR18 19317 bhi .L3011 19318 mov w1, 4 19319.L3061: 19320 strb w1, [x0, #:lo12:.LANCHOR18] 19321 b .L3003 19322.L3009: 19323 mov w2, 17 19324 b .L3059 19325.L3011: 19326 mov w1, 5 19327 b .L3061 19328.L3008: 19329 sub w1, w0, #36 19330 and w1, w1, 255 19331 cmp w1, 1 19332 bhi .L3012 19333 adrp x0, toshiba_3d_read_retrial 19334 add x0, x0, :lo12:toshiba_3d_read_retrial 19335 str x0, [x20, #:lo12:.LANCHOR172] 19336 b .L3064 19337.L3012: 19338 cmp w0, 50 19339 bne .L3013 19340 adrp x0, samsung_read_retrial 19341 mov w1, 25 19342 add x0, x0, :lo12:samsung_read_retrial 19343 str x0, [x20, #:lo12:.LANCHOR172] 19344 b .L3063 19345.L3013: 19346 cmp w0, 81 19347 bne .L3003 19348 adrp x0, ymtc_3d_read_retrial 19349 add x0, x0, :lo12:ymtc_3d_read_retrial 19350 str x0, [x20, #:lo12:.LANCHOR172] 19351 adrp x0, .LANCHOR167 19352 mov w1, 7 19353 strb w1, [x0, #:lo12:.LANCHOR167] 19354 adrp x0, .LANCHOR50 19355 strb wzr, [x0, #:lo12:.LANCHOR50] 19356 b .L3003 19357.L3015: 19358 mov w0, 4 19359 b .L3062 19360.L3018: 19361 add x19, x19, :lo12:.LANCHOR32 19362 ldrb w0, [x19, 7] 19363 cmp w0, 9 19364 bne .L3019 19365 ldr x0, [x23, #:lo12:.LANCHOR6] 19366 ldrb w0, [x0, 20] 19367 cmp w0, 1 19368 beq .L3019 19369 strb wzr, [x24, #:lo12:.LANCHOR24] 19370.L3019: 19371 ldrb w0, [x27, #:lo12:.LANCHOR16] 19372 sub w0, w0, #1 19373 and w0, w0, 255 19374 cmp w0, 7 19375 bhi .L3020 19376 adrp x0, hynix_read_retrial 19377 add x0, x0, :lo12:hynix_read_retrial 19378 str x0, [x20, #:lo12:.LANCHOR172] 19379.L3020: 19380 ldrb w0, [x25, #:lo12:.LANCHOR48] 19381 tbz x0, 2, .L3022 19382 ldr x0, [x23, #:lo12:.LANCHOR6] 19383 ldrb w0, [x0, 19] 19384 cbz w0, .L3022 19385 adrp x0, .LANCHOR210 19386 ldrb w1, [x0, #:lo12:.LANCHOR210] 19387 adrp x0, .LANCHOR2 19388 ldrh w0, [x0, #:lo12:.LANCHOR2] 19389 mul w1, w1, w0 19390 mov w0, 0 19391 bl flash_ddr_para_scan 19392 ldrb w0, [x26, #:lo12:.LANCHOR26] 19393 cbnz w0, .L3022 19394 ldr x0, [x23, #:lo12:.LANCHOR6] 19395 strb wzr, [x0, 19] 19396 bl flash_info_flush 19397.L3022: 19398 bl nand_flash_exit_boot_rom_slc_mode 19399 ldr w0, [x21, #:lo12:.LANCHOR19] 19400 tbz x0, 12, .L3024 19401 adrp x2, .LANCHOR212 19402 adrp x0, .LC91 19403 add x2, x2, :lo12:.LANCHOR212 19404 mov w1, 3674 19405 add x0, x0, :lo12:.LC91 19406 bl printf 19407.L3024: 19408 bl nand_flash_print_info 19409 mov w22, 0 19410 b .L2984 19411 .size nand_flash_init, .-nand_flash_init 19412 .section .text.ftl_sysblk_dump,"ax",@progbits 19413 .align 2 19414 .global ftl_sysblk_dump 19415 .type ftl_sysblk_dump, %function 19416ftl_sysblk_dump: 19417 sub sp, sp, #144 19418 stp x29, x30, [sp, 48] 19419 add x29, sp, 48 19420 stp x19, x20, [sp, 64] 19421 mov w20, 0 19422 stp x23, x24, [sp, 96] 19423 and w23, w0, 65535 19424 stp x25, x26, [sp, 112] 19425 mov w0, 1 19426 stp x27, x28, [sp, 128] 19427 adrp x25, .LANCHOR100 19428 stp x21, x22, [sp, 80] 19429 bl buf_alloc 19430 ldr x28, [x0, 8] 19431 adrp x26, .LANCHOR117 19432 adrp x27, .LANCHOR68 19433 mov x24, x0 19434 add x25, x25, :lo12:.LANCHOR100 19435 add x26, x26, :lo12:.LANCHOR117 19436 add x27, x27, :lo12:.LANCHOR68 19437 mov w19, 0 19438.L3066: 19439 ldrh w0, [x25] 19440 cmp w0, w19 19441 bhi .L3068 19442 add x1, x28, 704 19443 mov w3, 32 19444 mov w2, 4 19445 adrp x0, .LC171 19446 add x0, x0, :lo12:.LC171 19447 bl rknand_print_hex 19448 mov x0, x24 19449 bl zbuf_free 19450 cbz w20, .L3069 19451 adrp x1, .LANCHOR217 19452 adrp x0, .LC0 19453 mov w2, 1624 19454 add x1, x1, :lo12:.LANCHOR217 19455 add x0, x0, :lo12:.LC0 19456 bl printf 19457.L3069: 19458 mov w0, w20 19459 ldp x19, x20, [sp, 64] 19460 ldp x21, x22, [sp, 80] 19461 ldp x23, x24, [sp, 96] 19462 ldp x25, x26, [sp, 112] 19463 ldp x27, x28, [sp, 128] 19464 ldp x29, x30, [sp, 48] 19465 add sp, sp, 144 19466 ret 19467.L3068: 19468 ldrh w21, [x26] 19469 ldrb w3, [x27] 19470 ldr x1, [x24, 8] 19471 ldr x2, [x24, 24] 19472 madd w21, w21, w23, w19 19473 mov w0, w21 19474 bl ftl_read_ppa_page 19475 mov w22, w0 19476 ldr x1, [x24, 24] 19477 mov w4, w0 19478 ldr x0, [x24, 8] 19479 mov w3, w21 19480 ldr w2, [x1, 12] 19481 str w2, [sp, 32] 19482 ldr w2, [x1, 8] 19483 str w2, [sp, 24] 19484 ldr w2, [x1, 4] 19485 str w2, [sp, 16] 19486 mov w2, w19 19487 add w19, w19, 1 19488 ldr w1, [x1] 19489 and w19, w19, 65535 19490 str w1, [sp, 8] 19491 ldr w1, [x0, 12] 19492 str w1, [sp] 19493 mov w1, w23 19494 ldp w5, w6, [x0] 19495 ldr w7, [x0, 8] 19496 adrp x0, .LC161 19497 add x0, x0, :lo12:.LC161 19498 bl printf 19499 cmp w22, 512 19500 ccmn w22, #1, 4, ne 19501 csinc w20, w20, wzr, ne 19502 b .L3066 19503 .size ftl_sysblk_dump, .-ftl_sysblk_dump 19504 .section .text.ftl_open_sblk_recovery,"ax",@progbits 19505 .align 2 19506 .global ftl_open_sblk_recovery 19507 .type ftl_open_sblk_recovery, %function 19508ftl_open_sblk_recovery: 19509 stp x29, x30, [sp, -368]! 19510 add x29, sp, 0 19511 stp x21, x22, [sp, 32] 19512 adrp x21, .LANCHOR19 19513 stp x19, x20, [sp, 16] 19514 mov x19, x0 19515 ldr w0, [x21, #:lo12:.LANCHOR19] 19516 stp x23, x24, [sp, 48] 19517 stp x25, x26, [sp, 64] 19518 stp x27, x28, [sp, 80] 19519 str x1, [x29, 144] 19520 tbz x0, 12, .L3077 19521 ldrh w1, [x19, 2] 19522 adrp x0, .LC172 19523 add x0, x0, :lo12:.LC172 19524 bl printf 19525.L3077: 19526 ldr w0, [x21, #:lo12:.LANCHOR19] 19527 tbz x0, 12, .L3078 19528 ldrb w1, [x19, 5] 19529 adrp x0, .LC173 19530 add x0, x0, :lo12:.LC173 19531 bl printf 19532.L3078: 19533 ldr w0, [x21, #:lo12:.LANCHOR19] 19534 tbz x0, 12, .L3079 19535 ldrh w1, [x19] 19536 adrp x0, .LC174 19537 add x0, x0, :lo12:.LC174 19538 bl printf 19539.L3079: 19540 ldr w0, [x21, #:lo12:.LANCHOR19] 19541 tbz x0, 12, .L3080 19542 ldrh w2, [x19, 18] 19543 adrp x0, .LC175 19544 ldrh w1, [x19, 16] 19545 add x0, x0, :lo12:.LC175 19546 bl printf 19547.L3080: 19548 ldr w0, [x21, #:lo12:.LANCHOR19] 19549 tbz x0, 12, .L3081 19550 ldrb w1, [x19, 9] 19551 adrp x0, .LC176 19552 add x0, x0, :lo12:.LC176 19553 bl printf 19554.L3081: 19555 ldrh w0, [x19, 10] 19556 strh w0, [x19, 14] 19557 adrp x0, .LANCHOR8 19558 ldrh w1, [x19] 19559 ldrh w0, [x0, #:lo12:.LANCHOR8] 19560 cmp w1, w0 19561 bcs .L3076 19562 mov w0, 1 19563 adrp x22, .LANCHOR68 19564 bl buf_alloc 19565 mov x20, x0 19566 ldrb w0, [x22, #:lo12:.LANCHOR68] 19567 add x26, x29, 176 19568 mov w2, 64 19569 mov w27, 2 19570 ldr x1, [x20, 8] 19571 sub w0, w0, #2 19572 lsl w0, w0, 7 19573 add x0, x1, x0, sxtw 2 19574 mov w1, 255 19575 str x0, [x29, 152] 19576 mov x0, x26 19577 bl ftl_memset 19578 mov w2, 64 19579 mov w1, 255 19580 add x0, x29, 240 19581 bl ftl_memset 19582 mov w2, 64 19583 mov w1, 255 19584 add x0, x29, 304 19585 bl ftl_memset 19586 ldrb w23, [x19, 5] 19587 adrp x0, .LANCHOR117 19588 ldrh w24, [x19, 2] 19589 add x0, x0, :lo12:.LANCHOR117 19590 str x0, [x29, 128] 19591.L3083: 19592 adrp x25, .LANCHOR100 19593 ldrh w0, [x25, #:lo12:.LANCHOR100] 19594 cmp w0, w24 19595 bhi .L3098 19596.L3086: 19597 ldrh w0, [x19, 10] 19598 ldrh w1, [x19, 6] 19599 ldrh w2, [x25, #:lo12:.LANCHOR100] 19600 add w1, w1, w0 19601 ldrb w0, [x19, 9] 19602 strh w24, [x19, 2] 19603 strb w23, [x19, 5] 19604 mul w0, w0, w2 19605 cmp w1, w0 19606 beq .L3099 19607 adrp x1, .LANCHOR218 19608 adrp x0, .LC0 19609 mov w2, 1807 19610 add x1, x1, :lo12:.LANCHOR218 19611 add x0, x0, :lo12:.LC0 19612 bl printf 19613.L3099: 19614 adrp x2, .LANCHOR123 19615 ldrh w3, [x19, 10] 19616 mov w0, 0 19617 mov w1, 0 19618 ldr x4, [x2, #:lo12:.LANCHOR123] 19619 str x2, [x29, 152] 19620.L3100: 19621 cmp w1, w3 19622 bcc .L3102 19623 ldrb w23, [x19, 9] 19624 adrp x24, .LANCHOR11 19625 ldrh w1, [x25, #:lo12:.LANCHOR100] 19626 madd w23, w23, w1, w0 19627 ldr w0, [x21, #:lo12:.LANCHOR19] 19628 sub w23, w23, w3 19629 and w23, w23, 65535 19630 tbz x0, 12, .L3103 19631 ldrh w1, [x19] 19632 ldr x2, [x24, #:lo12:.LANCHOR11] 19633 ubfiz x0, x1, 1, 16 19634 ldrh w3, [x2, x0] 19635 adrp x0, .LC179 19636 mov w2, w23 19637 add x0, x0, :lo12:.LC179 19638 bl printf 19639.L3103: 19640 ldr x0, [x24, #:lo12:.LANCHOR11] 19641 ldrh w1, [x19] 19642 strh w23, [x0, x1, lsl 1] 19643 ldr w0, [x21, #:lo12:.LANCHOR19] 19644 tbz x0, 14, .L3104 19645 ldp w1, w2, [x29, 176] 19646 adrp x0, .LC180 19647 ldp w3, w4, [x29, 184] 19648 add x0, x0, :lo12:.LC180 19649 bl printf 19650.L3104: 19651 ldr x0, [x20, 8] 19652 mov w1, 0 19653 ldrb w2, [x22, #:lo12:.LANCHOR68] 19654 adrp x28, .LANCHOR85 19655 mov x24, 0 19656 lsl w2, w2, 9 19657 bl ftl_memset 19658 adrp x0, .LC182 19659 add x0, x0, :lo12:.LC182 19660 str x0, [x29, 136] 19661 add x0, x28, :lo12:.LANCHOR85 19662 str x0, [x29, 128] 19663.L3105: 19664 ldrb w0, [x28, #:lo12:.LANCHOR85] 19665 add x1, x28, :lo12:.LANCHOR85 19666 str w24, [x29, 168] 19667 mul w0, w0, w27 19668 cmp w24, w0 19669 bcc .L3116 19670 adrp x24, .LC183 19671 adrp x23, .LC182 19672 add x24, x24, :lo12:.LC183 19673 add x23, x23, :lo12:.LC182 19674 mov x28, 0 19675 str x1, [x29, 160] 19676.L3117: 19677 ldr x0, [x29, 160] 19678 ldrb w0, [x0] 19679 mul w0, w0, w27 19680 cmp w0, w28 19681 bhi .L3123 19682 mov x0, x20 19683 bl zbuf_free 19684 ldrh w1, [x19, 12] 19685 ldrh w0, [x25, #:lo12:.LANCHOR100] 19686 ldrb w2, [x19, 9] 19687 madd w0, w0, w2, w1 19688 mov x1, -4 19689 add x0, x1, x0, sxtw 2 19690 ldr x1, [x29, 152] 19691 ldr x1, [x1, #:lo12:.LANCHOR123] 19692 ldr w0, [x1, x0] 19693 cmn w0, #1 19694 beq .L3124 19695 adrp x1, .LANCHOR218 19696 adrp x0, .LC0 19697 mov w2, 1922 19698 add x1, x1, :lo12:.LANCHOR218 19699 add x0, x0, :lo12:.LC0 19700 bl printf 19701.L3124: 19702 ldrh w0, [x19, 6] 19703 cmp w0, 1 19704 bne .L3076 19705 mov x0, x19 19706 bl ftl_write_last_log_page 19707.L3076: 19708 ldp x19, x20, [sp, 16] 19709 ldp x21, x22, [sp, 32] 19710 ldp x23, x24, [sp, 48] 19711 ldp x25, x26, [sp, 64] 19712 ldp x27, x28, [sp, 80] 19713 ldp x29, x30, [sp], 368 19714 ret 19715.L3098: 19716 ldrb w23, [x19, 5] 19717 adrp x0, .LANCHOR197 19718 add x0, x0, :lo12:.LANCHOR197 19719 str x0, [x29, 136] 19720.L3084: 19721 ldrb w0, [x19, 9] 19722 cmp w0, w23 19723 bhi .L3097 19724 add w24, w24, 1 19725 strb wzr, [x19, 5] 19726 and w24, w24, 65535 19727 b .L3083 19728.L3097: 19729 add x0, x19, x23, sxtw 1 19730 ldrh w0, [x0, 16] 19731 str w0, [x29, 168] 19732 mov w0, 65535 19733 ldr w1, [x29, 168] 19734 cmp w1, w0 19735 beq .L3085 19736 ldr x0, [x29, 128] 19737 ldrb w3, [x22, #:lo12:.LANCHOR68] 19738 ldr x2, [x20, 24] 19739 ldrh w0, [x0] 19740 madd w0, w0, w1, w24 19741 ldr x1, [x20, 8] 19742 str w0, [x29, 160] 19743 bl ftl_read_ppa_page 19744 mov w28, w0 19745 cmp w0, 512 19746 beq .L3086 19747 cmn w0, #1 19748 beq .L3087 19749 ldr x0, [x20, 24] 19750 ldr w1, [x0] 19751 cmn w1, #1 19752 bne .L3087 19753 ldr w0, [x0, 4] 19754 cmn w0, #1 19755 bne .L3087 19756 ldr x0, [x20, 8] 19757 ldr w0, [x0] 19758 cmn w0, #1 19759 beq .L3086 19760.L3087: 19761 ldr x1, [x29, 136] 19762 mov w0, 1 19763 strb w0, [x1] 19764 ldrb w0, [x19, 9] 19765 ldrh w1, [x19, 10] 19766 madd w0, w0, w24, w23 19767 cmp w1, w0 19768 beq .L3088 19769 adrp x1, .LANCHOR218 19770 adrp x0, .LC0 19771 mov w2, 1699 19772 add x1, x1, :lo12:.LANCHOR218 19773 add x0, x0, :lo12:.LC0 19774 bl printf 19775.L3088: 19776 ldrh w0, [x19, 10] 19777 ldrh w1, [x19, 6] 19778 ldrb w2, [x19, 9] 19779 add w1, w1, w0 19780 ldrh w0, [x25, #:lo12:.LANCHOR100] 19781 mul w0, w0, w2 19782 cmp w1, w0 19783 beq .L3089 19784 adrp x1, .LANCHOR218 19785 adrp x0, .LC0 19786 mov w2, 1700 19787 add x1, x1, :lo12:.LANCHOR218 19788 add x0, x0, :lo12:.LC0 19789 bl printf 19790.L3089: 19791 ldrb w0, [x22, #:lo12:.LANCHOR68] 19792 cmp w0, 8 19793 bls .L3090 19794 ldr x6, [x20, 24] 19795 mov w1, 15555 19796 movk w1, 0xf55f, lsl 16 19797 ldr w0, [x6] 19798 cmp w0, w1 19799 beq .L3090 19800 cmn w28, #1 19801 beq .L3092 19802 ldr w0, [x6, 4] 19803 cmn w0, #1 19804 beq .L3093 19805 ldr w1, [x6, 16] 19806 mov w0, 21320 19807 movk w0, 0x4841, lsl 16 19808 cmp w1, w0 19809 bne .L3093 19810 ldr x0, [x29, 152] 19811 mov w1, 1024 19812 bl js_hash 19813 ldr w1, [x6, 20] 19814 cmp w1, w0 19815 beq .L3093 19816 ldr w3, [x29, 160] 19817 mov w5, w0 19818 ldr w1, [x29, 168] 19819 mov w4, w28 19820 mov w2, w24 19821 adrp x0, .LC177 19822 add x0, x0, :lo12:.LC177 19823 bl printf 19824 ldr x1, [x29, 152] 19825 mov w3, 16 19826 mov w2, 4 19827 adrp x0, .LC178 19828 add x0, x0, :lo12:.LC178 19829 bl rknand_print_hex 19830 ldr x1, [x20, 24] 19831 adrp x0, .LC144 19832 ldrb w3, [x22, #:lo12:.LANCHOR68] 19833 mov w2, 4 19834 add x0, x0, :lo12:.LC144 19835 lsr w3, w3, 1 19836 bl rknand_print_hex 19837.L3092: 19838 ldrh w0, [x19, 6] 19839 mov w27, 4 19840 sub w0, w0, #1 19841 strh w0, [x19, 6] 19842 ldrh w0, [x19, 10] 19843 add w0, w0, 1 19844 strh w0, [x19, 10] 19845.L3085: 19846 add w23, w23, 1 19847 and w23, w23, 65535 19848 b .L3084 19849.L3090: 19850 cmn w28, #1 19851 beq .L3092 19852.L3093: 19853 ldr x1, [x20, 24] 19854 ldr w0, [x1, 4] 19855 cmn w0, #1 19856 beq .L3092 19857 ldr w1, [x1] 19858 mov w2, 15555 19859 movk w2, 0xf55f, lsl 16 19860 cmp w1, w2 19861 beq .L3092 19862 bl lpa_hash_get_ppa 19863 ldr x1, [x29, 144] 19864 cbz x1, .L3095 19865 ldr x3, [x20, 24] 19866 ldr w1, [x3, 8] 19867 cmp w0, w1 19868 beq .L3095 19869 cmn w0, #1 19870 beq .L3095 19871 adrp x4, .LANCHOR31 19872 adrp x5, .LANCHOR80 19873 mov w28, 24 19874 mov w27, 1 19875 ldrb w1, [x4, #:lo12:.LANCHOR31] 19876 ldrh w6, [x5, #:lo12:.LANCHOR80] 19877 sub w1, w28, w1 19878 sub w1, w1, w6 19879 lsr w2, w0, w6 19880 adrp x6, .LANCHOR81 19881 lsl w1, w27, w1 19882 sub w1, w1, #1 19883 and w1, w1, w2 19884 ldrb w2, [x6, #:lo12:.LANCHOR81] 19885 udiv w1, w1, w2 19886 ldr x2, [x29, 144] 19887 ldrh w2, [x2] 19888 cmp w2, w1, uxth 19889 bne .L3095 19890 ldr w8, [x3] 19891 adrp x7, .LANCHOR192 19892 ldrb w3, [x22, #:lo12:.LANCHOR68] 19893 add x2, x7, :lo12:.LANCHOR192 19894 ldr x1, [x20, 8] 19895 str w8, [x29, 124] 19896 str x7, [x29, 168] 19897 stp x6, x4, [x29, 96] 19898 str x5, [x29, 112] 19899 bl ftl_read_ppa_page 19900 ldr x7, [x29, 168] 19901 ldr w8, [x29, 124] 19902 ldr w0, [x7, #:lo12:.LANCHOR192] 19903 cmp w8, w0 19904 bhi .L3095 19905 ldr x0, [x20, 24] 19906 ldr w0, [x0, 8] 19907 cmn w0, #1 19908 beq .L3092 19909 ldp x6, x4, [x29, 96] 19910 ldr x5, [x29, 112] 19911 ldrb w2, [x4, #:lo12:.LANCHOR31] 19912 ldrh w1, [x5, #:lo12:.LANCHOR80] 19913 sub w28, w28, w2 19914 sub w28, w28, w1 19915 lsr w0, w0, w1 19916 lsl w27, w27, w28 19917 sub w27, w27, #1 19918 and w27, w27, w0 19919 ldrb w0, [x6, #:lo12:.LANCHOR81] 19920 udiv w0, w27, w0 19921 bl ftl_vpn_decrement 19922 b .L3092 19923.L3102: 19924 ldrh w2, [x19, 12] 19925 add w2, w2, w1 19926 ldr w2, [x4, x2, lsl 2] 19927 cmn w2, #1 19928 beq .L3101 19929 add w23, w0, 1 19930 and w0, w23, 65535 19931.L3101: 19932 add w1, w1, 1 19933 b .L3100 19934.L3116: 19935 ldr w0, [x26, x24, lsl 2] 19936 cmn w0, #1 19937 bne .L3106 19938.L3110: 19939 adrp x0, .LANCHOR69 19940 ldr x1, [x20, 24] 19941 mov w23, -1 19942 mov x2, 0 19943 ldr x0, [x0, #:lo12:.LANCHOR69] 19944 ldr w0, [x0, 8] 19945 stp w0, w23, [x1] 19946 ldr x0, [x20, 8] 19947 stp w23, wzr, [x1, 8] 19948 str wzr, [x1, 16]! 19949 str wzr, [x0] 19950 mov w0, 2 19951 bl ftl_debug_info_fill 19952.L3107: 19953 ldrh w0, [x19, 6] 19954 cmp w0, 1 19955 bls .L3112 19956 add x0, x21, :lo12:.LANCHOR19 19957 str x0, [x29, 160] 19958 add x0, x22, :lo12:.LANCHOR68 19959 str x0, [x29, 144] 19960.L3176: 19961 mov x0, x19 19962 bl ftl_get_new_free_page 19963 mov w4, w0 19964 ldr x0, [x29, 160] 19965 ldr w0, [x0] 19966 tbz x0, 14, .L3113 19967 ldrh w0, [x19, 12] 19968 mov w1, w4 19969 ldrh w3, [x19, 10] 19970 str w4, [x29, 124] 19971 add w3, w3, w0 19972 ldr x0, [x20, 24] 19973 sub w3, w3, #1 19974 ldr w2, [x0, 4] 19975 ldr x0, [x29, 136] 19976 bl printf 19977 ldr w4, [x29, 124] 19978.L3113: 19979 ldr x0, [x29, 128] 19980 ldr w2, [x29, 168] 19981 ldrh w1, [x19, 6] 19982 ldrb w0, [x0] 19983 mul w0, w0, w27 19984 add w0, w0, 1 19985 sub w0, w0, w2 19986 cmp w1, w0 19987 bls .L3112 19988 ldr x0, [x29, 144] 19989 ldr x1, [x20, 8] 19990 ldr x2, [x20, 24] 19991 str w4, [x29, 112] 19992 ldrb w3, [x0] 19993 mov w0, w4 19994 bl ftl_prog_ppa_page 19995 mov w1, w0 19996 ldrh w0, [x19] 19997 str w1, [x29, 124] 19998 bl ftl_vpn_decrement 19999 ldr w1, [x29, 124] 20000 cmn w23, #1 20001 ldr w4, [x29, 112] 20002 ccmn w1, #1, 4, ne 20003 beq .L3115 20004 add x0, x29, 240 20005 ldrh w1, [x19, 12] 20006 str w4, [x0, x24, lsl 2] 20007 ldrh w0, [x19, 10] 20008 add w0, w0, w1 20009 add x1, x29, 304 20010 sub w0, w0, #1 20011 str w0, [x1, x24, lsl 2] 20012.L3112: 20013 add x24, x24, 1 20014 b .L3105 20015.L3106: 20016 ldrb w3, [x22, #:lo12:.LANCHOR68] 20017 ldr x1, [x20, 8] 20018 ldr x2, [x20, 24] 20019 bl ftl_read_ppa_page 20020 mov w23, w0 20021 ldr x0, [x20, 24] 20022 ldr w0, [x0, 4] 20023 bl lpa_hash_get_ppa 20024 mov w4, w0 20025 ldr w0, [x21, #:lo12:.LANCHOR19] 20026 tbz x0, 14, .L3108 20027 ldr x0, [x20, 24] 20028 mov w1, w4 20029 ldr w2, [x26, x24, lsl 2] 20030 str w4, [x29, 160] 20031 ldr w3, [x0, 4] 20032 adrp x0, .LC181 20033 add x0, x0, :lo12:.LC181 20034 bl printf 20035 ldr w4, [x29, 160] 20036.L3108: 20037 ldr x1, [x20, 24] 20038 mov x2, 0 20039 ldr w0, [x26, x24, lsl 2] 20040 cmp w4, w0 20041 mov w0, 1 20042 stp w4, w0, [x1, 8] 20043 csinv w23, w23, wzr, eq 20044 str wzr, [x1, 16]! 20045 mov w0, 2 20046 bl ftl_debug_info_fill 20047 cmn w23, #1 20048 bne .L3107 20049 b .L3110 20050.L3115: 20051 ldrh w0, [x19, 6] 20052 cmp w0, 1 20053 bls .L3112 20054 cmn w23, #1 20055 bne .L3176 20056 b .L3112 20057.L3123: 20058 add x0, x29, 240 20059 ldr w0, [x0, x28, lsl 2] 20060 cmn w0, #1 20061 beq .L3119 20062 ldrb w3, [x22, #:lo12:.LANCHOR68] 20063 ldr w0, [x26, x28, lsl 2] 20064 ldr x1, [x20, 8] 20065 ldr x2, [x20, 24] 20066 bl ftl_read_ppa_page 20067 cmp w0, 256 20068 ccmn w0, #1, 4, ne 20069 bne .L3119 20070 add x0, x29, 240 20071 ldrb w3, [x22, #:lo12:.LANCHOR68] 20072 ldr x1, [x20, 8] 20073 ldr x2, [x20, 24] 20074 ldr w0, [x0, x28, lsl 2] 20075 bl ftl_read_ppa_page 20076 mov w5, w0 20077 ldr w0, [x21, #:lo12:.LANCHOR19] 20078 tbz x0, 14, .L3121 20079 ldr x0, [x20, 24] 20080 mov w1, w5 20081 ldr w3, [x26, x28, lsl 2] 20082 str w5, [x29, 168] 20083 ldr w2, [x0, 8] 20084 mov x0, x23 20085 bl printf 20086 ldr w5, [x29, 168] 20087.L3121: 20088 cmn w5, #1 20089 beq .L3119 20090 ldr x0, [x20, 24] 20091 ldr w2, [x26, x28, lsl 2] 20092 ldr w1, [x0, 8] 20093 cmp w2, w1 20094 bne .L3119 20095 ldr w1, [x21, #:lo12:.LANCHOR19] 20096 tbz x1, 14, .L3122 20097 add x1, x29, 304 20098 ldr w3, [x1, x28, lsl 2] 20099 ldr w1, [x0, 4] 20100 mov x0, x24 20101 bl printf 20102.L3122: 20103 add x1, x29, 304 20104 ldr x0, [x20, 24] 20105 ldr w1, [x1, x28, lsl 2] 20106 str w1, [x29, 168] 20107 ldr w1, [x0, 8] 20108 ldrh w2, [x29, 168] 20109 ldr w0, [x0, 4] 20110 bl lpa_hash_update_ppa 20111.L3119: 20112 add x28, x28, 1 20113 b .L3117 20114.L3095: 20115 ldr x3, [x20, 24] 20116 adrp x0, .LANCHOR219 20117 ldr w0, [x0, #:lo12:.LANCHOR219] 20118 ldr w1, [x3, 4] 20119 cmp w1, w0 20120 bcs .L3092 20121 ldrb w0, [x19, 9] 20122 ldrh w1, [x25, #:lo12:.LANCHOR100] 20123 ldrh w2, [x19, 10] 20124 mul w0, w0, w1 20125 sub w0, w0, #1 20126 cmp w2, w0 20127 bge .L3092 20128 adrp x0, .LANCHOR69 20129 ldr w1, [x3] 20130 ldr x0, [x0, #:lo12:.LANCHOR69] 20131 ldr w4, [x0, 8] 20132 cmp w1, w4 20133 bls .L3096 20134 str w1, [x0, 8] 20135.L3096: 20136 ldrh w0, [x19, 12] 20137 add w2, w2, w0 20138 ldp w0, w1, [x3, 4] 20139 bl lpa_hash_update_ppa 20140 ldr w0, [x29, 180] 20141 str w0, [x29, 176] 20142 ldr w0, [x29, 184] 20143 str w0, [x29, 180] 20144 ldr w0, [x29, 188] 20145 str w0, [x29, 184] 20146 ldr w0, [x29, 160] 20147 str w0, [x29, 188] 20148 b .L3092 20149 .size ftl_open_sblk_recovery, .-ftl_open_sblk_recovery 20150 .section .text.load_l2p_region,"ax",@progbits 20151 .align 2 20152 .type load_l2p_region, %function 20153load_l2p_region: 20154 stp x29, x30, [sp, -80]! 20155 add x29, sp, 0 20156 stp x19, x20, [sp, 16] 20157 and w19, w0, 65535 20158 stp x21, x22, [sp, 32] 20159 and x21, x1, 65535 20160 stp x23, x24, [sp, 48] 20161 cmp w21, 7 20162 stp x25, x26, [sp, 64] 20163 bls .L3205 20164 adrp x1, .LANCHOR220 20165 adrp x0, .LC0 20166 mov w2, 32 20167 add x1, x1, :lo12:.LANCHOR220 20168 add x0, x0, :lo12:.LC0 20169 bl printf 20170.L3205: 20171 adrp x20, .LANCHOR69 20172 mov x25, x20 20173 ldr x0, [x20, #:lo12:.LANCHOR69] 20174 ldrh w2, [x0, 698] 20175 cmp w2, w19 20176 bcs .L3206 20177 mov w1, w19 20178 adrp x0, .LC184 20179 add x0, x0, :lo12:.LC184 20180 bl printf 20181 adrp x0, .LANCHOR221 20182 mov w1, 255 20183 ldrh w2, [x0, #:lo12:.LANCHOR221] 20184 mov x0, 0 20185 ldr x0, [x0, 8] 20186 bl ftl_memset 20187 ldr x0, [x20, #:lo12:.LANCHOR69] 20188 ldrh w0, [x0, 698] 20189 cmp w0, w19 20190 bcc .L3207 20191.L3217: 20192 mov w0, 0 20193.L3204: 20194 ldp x19, x20, [sp, 16] 20195 ldp x21, x22, [sp, 32] 20196 ldp x23, x24, [sp, 48] 20197 ldp x25, x26, [sp, 64] 20198 ldp x29, x30, [sp], 80 20199 ret 20200.L3207: 20201 mov w2, 37 20202.L3218: 20203 adrp x1, .LANCHOR220 20204 adrp x0, .LC0 20205 add x1, x1, :lo12:.LANCHOR220 20206 add x0, x0, :lo12:.LC0 20207 bl printf 20208 b .L3217 20209.L3206: 20210 add x0, x0, x19, sxtw 2 20211 adrp x22, .LANCHOR136 20212 add x1, x22, :lo12:.LANCHOR136 20213 ldr w23, [x0, 704] 20214 lsl x0, x21, 4 20215 add x26, x1, x0 20216 strh w19, [x1, x0] 20217 strh wzr, [x26, 2] 20218 cbnz w23, .L3209 20219 mov w1, w19 20220 mov w2, 0 20221 adrp x0, .LC185 20222 add x0, x0, :lo12:.LC185 20223 bl printf 20224 adrp x0, .LANCHOR221 20225 mov w1, 255 20226 ldrh w2, [x0, #:lo12:.LANCHOR221] 20227 ldr x0, [x26, 8] 20228 bl ftl_memset 20229 b .L3217 20230.L3209: 20231 adrp x20, .LANCHOR206 20232 adrp x24, .LANCHOR68 20233 ldr x1, [x26, 8] 20234 mov w0, w23 20235 ldr x2, [x20, #:lo12:.LANCHOR206] 20236 ldrb w3, [x24, #:lo12:.LANCHOR68] 20237 bl ftl_read_ppa_page 20238 ldr x1, [x20, #:lo12:.LANCHOR206] 20239 ldr w2, [x1] 20240 cmp w2, w19 20241 bne .L3210 20242 cmp w0, 512 20243 ccmn w0, #1, 4, ne 20244 beq .L3210 20245.L3214: 20246 ldr x0, [x20, #:lo12:.LANCHOR206] 20247 ldr w0, [x0] 20248 cmp w19, w0 20249 beq .L3217 20250 mov w2, 73 20251 b .L3218 20252.L3210: 20253 mov w4, w23 20254 mov w3, w0 20255 mov w1, w19 20256 adrp x0, .LC186 20257 add x0, x0, :lo12:.LC186 20258 bl printf 20259 ldr x1, [x25, #:lo12:.LANCHOR69] 20260 add x22, x22, :lo12:.LANCHOR136 20261 add x21, x22, x21, lsl 4 20262 mov w2, 4 20263 add x1, x1, 704 20264 adrp x0, .LC187 20265 add x0, x0, :lo12:.LC187 20266 ldrh w3, [x1, -6] 20267 bl rknand_print_hex 20268 ldr x1, [x21, 8] 20269 mov w2, 4 20270 ldrb w3, [x24, #:lo12:.LANCHOR68] 20271 adrp x0, .LC178 20272 add x0, x0, :lo12:.LC178 20273 lsl w3, w3, 7 20274 bl rknand_print_hex 20275 ldr x1, [x20, #:lo12:.LANCHOR206] 20276 mov w3, 16 20277 mov w2, 4 20278 adrp x0, .LC188 20279 add x0, x0, :lo12:.LC188 20280 bl rknand_print_hex 20281 ldrb w3, [x24, #:lo12:.LANCHOR68] 20282 mov w0, w23 20283 ldr x2, [x20, #:lo12:.LANCHOR206] 20284 ldr x1, [x21, 8] 20285 bl ftl_read_ppa_page 20286 cmp w0, 512 20287 ccmn w0, #1, 4, ne 20288 bne .L3213 20289 adrp x0, .LANCHOR221 20290 mov w1, 255 20291 ldrh w2, [x0, #:lo12:.LANCHOR221] 20292 ldr x0, [x21, 8] 20293 bl ftl_memset 20294.L3215: 20295 mov w0, -1 20296 b .L3204 20297.L3213: 20298 ldr x0, [x20, #:lo12:.LANCHOR206] 20299 ldr w0, [x0] 20300 cmp w19, w0 20301 beq .L3214 20302 b .L3215 20303 .size load_l2p_region, .-load_l2p_region 20304 .section .text.pm_gc,"ax",@progbits 20305 .align 2 20306 .global pm_gc 20307 .type pm_gc, %function 20308pm_gc: 20309 stp x29, x30, [sp, -96]! 20310 add x29, sp, 0 20311 stp x19, x20, [sp, 16] 20312 adrp x19, .LANCHOR69 20313 stp x21, x22, [sp, 32] 20314 adrp x21, .LANCHOR149 20315 ldr x0, [x19, #:lo12:.LANCHOR69] 20316 stp x23, x24, [sp, 48] 20317 stp x25, x26, [sp, 64] 20318 ldrh w2, [x0, 688] 20319 adrp x0, .LANCHOR153 20320 str x27, [sp, 80] 20321 mov x20, x0 20322 ldrh w1, [x0, #:lo12:.LANCHOR153] 20323 sub w1, w1, #1 20324 cmp w2, w1 20325 bge .L3220 20326 ldr w0, [x21, #:lo12:.LANCHOR149] 20327 cbz w0, .L3221 20328.L3220: 20329 bl pm_free_sblk 20330 ldr x2, [x19, #:lo12:.LANCHOR69] 20331 ldrh w1, [x20, #:lo12:.LANCHOR153] 20332 sub w1, w1, #1 20333 ldrh w3, [x2, 688] 20334 cmp w3, w1 20335 bge .L3222 20336 ldr w1, [x21, #:lo12:.LANCHOR149] 20337 cbz w1, .L3221 20338.L3222: 20339 add x0, x2, x0, uxth 1 20340 str wzr, [x21, #:lo12:.LANCHOR149] 20341 mov w20, 65535 20342 ldrh w21, [x0, 416] 20343 cmp w21, w20 20344 bne .L3224 20345 adrp x1, .LANCHOR222 20346 add x1, x1, :lo12:.LANCHOR222 20347 mov w2, 182 20348 adrp x0, .LC0 20349 add x0, x0, :lo12:.LC0 20350 bl printf 20351 bl pm_free_sblk 20352 ldr x1, [x19, #:lo12:.LANCHOR69] 20353 add x0, x1, x0, uxth 1 20354 ldrh w21, [x0, 416] 20355 cmp w21, w20 20356 beq .L3221 20357.L3224: 20358 bl pm_select_ram_region 20359 and x22, x0, 65535 20360 lsl x0, x22, 4 20361 adrp x20, .LANCHOR136 20362 add x1, x20, :lo12:.LANCHOR136 20363 mov x25, x22 20364 add x23, x1, x0 20365 ldrh w0, [x1, x0] 20366 mov w1, 65535 20367 cmp w0, w1 20368 beq .L3225 20369 ldr x1, [x23, 8] 20370 cbz x1, .L3225 20371 ldrsh w2, [x23, 2] 20372 tbz w2, #31, .L3225 20373 bl pm_write_page 20374 ldrh w0, [x23, 2] 20375 and w0, w0, 32767 20376 strh w0, [x23, 2] 20377.L3225: 20378 adrp x23, .LANCHOR80 20379 adrp x24, .LANCHOR31 20380 add x23, x23, :lo12:.LANCHOR80 20381 add x24, x24, :lo12:.LANCHOR31 20382 mov w27, 0 20383 mov w26, 24 20384.L3226: 20385 ldr x2, [x19, #:lo12:.LANCHOR69] 20386 ldrh w0, [x2, 698] 20387 cmp w0, w27 20388 bhi .L3229 20389 bl pm_free_sblk 20390.L3221: 20391 mov w0, 0 20392 ldr x27, [sp, 80] 20393 ldp x19, x20, [sp, 16] 20394 ldp x21, x22, [sp, 32] 20395 ldp x23, x24, [sp, 48] 20396 ldp x25, x26, [sp, 64] 20397 ldp x29, x30, [sp], 96 20398 ret 20399.L3229: 20400 ldrb w0, [x24] 20401 add x2, x2, x27, sxtw 2 20402 ldrh w3, [x23] 20403 sub w0, w26, w0 20404 sub w1, w0, w3 20405 mov w0, 1 20406 lsl w0, w0, w1 20407 ldr w1, [x2, 704] 20408 sub w0, w0, #1 20409 lsr w1, w1, w3 20410 and w0, w0, w1 20411 adrp x1, .LANCHOR81 20412 ldrb w1, [x1, #:lo12:.LANCHOR81] 20413 udiv w0, w0, w1 20414 cmp w21, w0, uxth 20415 bne .L3227 20416 mov w1, w25 20417 mov w0, w27 20418 bl load_l2p_region 20419 cbnz w0, .L3228 20420 add x0, x20, :lo12:.LANCHOR136 20421 add x0, x0, x22, lsl 4 20422 ldr x1, [x0, 8] 20423 mov w0, w27 20424 bl pm_write_page 20425.L3228: 20426 add x1, x20, :lo12:.LANCHOR136 20427 lsl x0, x22, 4 20428 mov w2, -1 20429 strh w2, [x1, x0] 20430.L3227: 20431 add w27, w27, 1 20432 and w27, w27, 65535 20433 b .L3226 20434 .size pm_gc, .-pm_gc 20435 .section .text.pm_flush_id,"ax",@progbits 20436 .align 2 20437 .global pm_flush_id 20438 .type pm_flush_id, %function 20439pm_flush_id: 20440 stp x29, x30, [sp, -32]! 20441 ubfiz x0, x0, 4, 16 20442 adrp x2, .LANCHOR136 20443 add x2, x2, :lo12:.LANCHOR136 20444 add x29, sp, 0 20445 str x19, [sp, 16] 20446 add x19, x2, x0 20447 ldrh w0, [x2, x0] 20448 ldr x1, [x19, 8] 20449 bl pm_write_page 20450 ldrh w0, [x19, 2] 20451 and w0, w0, 32767 20452 strh w0, [x19, 2] 20453 adrp x19, .LANCHOR134 20454 ldr w0, [x19, #:lo12:.LANCHOR134] 20455 cbz w0, .L3238 20456 bl pm_gc 20457 str wzr, [x19, #:lo12:.LANCHOR134] 20458.L3238: 20459 mov w0, 0 20460 ldr x19, [sp, 16] 20461 ldp x29, x30, [sp], 32 20462 ret 20463 .size pm_flush_id, .-pm_flush_id 20464 .section .text.pm_flush,"ax",@progbits 20465 .align 2 20466 .global pm_flush 20467 .type pm_flush, %function 20468pm_flush: 20469 stp x29, x30, [sp, -32]! 20470 add x29, sp, 0 20471 stp x19, x20, [sp, 16] 20472 adrp x19, .LANCHOR136 20473 add x19, x19, :lo12:.LANCHOR136 20474 mov w20, 0 20475 add x19, x19, 2 20476.L3245: 20477 ldrsh w0, [x19] 20478 tbz w0, #31, .L3244 20479 mov w0, w20 20480 bl pm_flush_id 20481.L3244: 20482 add w20, w20, 1 20483 add x19, x19, 16 20484 and w20, w20, 65535 20485 cmp w20, 8 20486 bne .L3245 20487 mov w0, 0 20488 ldp x19, x20, [sp, 16] 20489 ldp x29, x30, [sp], 32 20490 ret 20491 .size pm_flush, .-pm_flush 20492 .section .text.flt_sys_flush,"ax",@progbits 20493 .align 2 20494 .global flt_sys_flush 20495 .type flt_sys_flush, %function 20496flt_sys_flush: 20497 stp x29, x30, [sp, -16]! 20498 add x29, sp, 0 20499 bl ftl_flush 20500 bl pm_flush 20501 bl ftl_ext_info_flush 20502 ldp x29, x30, [sp], 16 20503 mov w0, 0 20504 b ftl_info_flush 20505 .size flt_sys_flush, .-flt_sys_flush 20506 .section .text.rk_ftl_de_init,"ax",@progbits 20507 .align 2 20508 .global rk_ftl_de_init 20509 .type rk_ftl_de_init, %function 20510rk_ftl_de_init: 20511 stp x29, x30, [sp, -16]! 20512 add x29, sp, 0 20513 bl zftl_flash_de_init 20514 bl flt_sys_flush 20515 ldp x29, x30, [sp], 16 20516 b zftl_flash_de_init 20517 .size rk_ftl_de_init, .-rk_ftl_de_init 20518 .section .text.zftl_deinit,"ax",@progbits 20519 .align 2 20520 .global zftl_deinit 20521 .type zftl_deinit, %function 20522zftl_deinit: 20523 b rk_ftl_de_init 20524 .size zftl_deinit, .-zftl_deinit 20525 .section .text.pm_init,"ax",@progbits 20526 .align 2 20527 .global pm_init 20528 .type pm_init, %function 20529pm_init: 20530 stp x29, x30, [sp, -112]! 20531 mov w1, 1 20532 add x29, sp, 0 20533 stp x23, x24, [sp, 48] 20534 mov w24, w0 20535 adrp x0, .LANCHOR149 20536 stp x19, x20, [sp, 16] 20537 stp x21, x22, [sp, 32] 20538 adrp x19, .LANCHOR136 20539 str wzr, [x0, #:lo12:.LANCHOR149] 20540 adrp x0, .LANCHOR134 20541 stp x25, x26, [sp, 64] 20542 add x20, x19, :lo12:.LANCHOR136 20543 str wzr, [x0, #:lo12:.LANCHOR134] 20544 adrp x0, .LANCHOR207 20545 stp x27, x28, [sp, 80] 20546 adrp x22, .LANCHOR68 20547 strb w1, [x0, #:lo12:.LANCHOR207] 20548 mov w0, 64 20549 bl ftl_malloc 20550 add x23, x20, 128 20551 adrp x1, .LANCHOR206 20552 add x22, x22, :lo12:.LANCHOR68 20553 mov x21, x1 20554 mov w25, -1 20555 str x0, [x1, #:lo12:.LANCHOR206] 20556.L3255: 20557 strh w25, [x20] 20558 strh wzr, [x20, 2] 20559 cbz w24, .L3254 20560 ldrb w0, [x22] 20561 lsl w0, w0, 9 20562 bl ftl_malloc 20563 str x0, [x20, 8] 20564.L3254: 20565 add x20, x20, 16 20566 cmp x20, x23 20567 bne .L3255 20568 add x0, x19, :lo12:.LANCHOR136 20569 adrp x20, .LANCHOR69 20570 ldr x22, [x21, #:lo12:.LANCHOR206] 20571 mov w4, 4 20572 ldr x27, [x0, 8] 20573 mov x3, x22 20574 ldr x0, [x20, #:lo12:.LANCHOR69] 20575 mov x2, x27 20576 ldrh w1, [x0, 692] 20577 ldrb w0, [x0, 694] 20578 bl flash_get_last_written_page 20579 sxth w26, w0 20580 ldr x0, [x20, #:lo12:.LANCHOR69] 20581 mov w24, w26 20582 ldrh w2, [x0, 696] 20583 cmp w2, w26 20584 bgt .L3256 20585 ldrh w1, [x0, 692] 20586 mov w3, w26 20587 adrp x0, .LC189 20588 add x0, x0, :lo12:.LC189 20589 adrp x25, .LANCHOR68 20590 add x25, x25, :lo12:.LANCHOR68 20591 adrp x28, .LC190 20592 bl printf 20593 ldr x0, [x20, #:lo12:.LANCHOR69] 20594 ldrsh w21, [x0, 696] 20595 adrp x0, .LANCHOR117 20596 add x0, x0, :lo12:.LANCHOR117 20597 str x0, [x29, 104] 20598.L3257: 20599 cmp w21, w26 20600 ble .L3260 20601 adrp x0, .LANCHOR197 20602 mov w1, 1 20603 add w24, w24, 1 20604 strb w1, [x0, #:lo12:.LANCHOR197] 20605 ldr x0, [x20, #:lo12:.LANCHOR69] 20606 strh w24, [x0, 696] 20607 bl pm_free_sblk 20608.L3256: 20609 add x19, x19, :lo12:.LANCHOR136 20610 adrp x0, .LANCHOR221 20611 mov w1, 255 20612 ldrh w2, [x0, #:lo12:.LANCHOR221] 20613 ldr x0, [x19, 8] 20614 bl ftl_memset 20615 ldr x1, [x19, 8] 20616 mov w0, -1 20617 bl pm_write_page 20618 adrp x0, .LANCHOR197 20619 ldrb w0, [x0, #:lo12:.LANCHOR197] 20620 cbz w0, .L3261 20621 ldr x1, [x19, 8] 20622 mov w0, -1 20623 bl pm_write_page 20624 ldr x1, [x19, 8] 20625 mov w0, -1 20626 bl pm_write_page 20627 ldr x1, [x19, 8] 20628 mov w0, -1 20629 bl pm_write_page 20630.L3261: 20631 bl pm_free_sblk 20632 bl pm_gc 20633 mov w0, 0 20634 ldp x19, x20, [sp, 16] 20635 ldp x21, x22, [sp, 32] 20636 ldp x23, x24, [sp, 48] 20637 ldp x25, x26, [sp, 64] 20638 ldp x27, x28, [sp, 80] 20639 ldp x29, x30, [sp], 112 20640 ret 20641.L3260: 20642 ldr x0, [x20, #:lo12:.LANCHOR69] 20643 mov x3, x22 20644 ldr x1, [x29, 104] 20645 mov x2, x27 20646 ldrb w4, [x25] 20647 ldrh w23, [x0, 692] 20648 ldrh w1, [x1] 20649 ldrb w0, [x0, 694] 20650 madd w23, w23, w1, w21 20651 mov w1, w23 20652 bl flash_read_page_en 20653 mov w4, w0 20654 ldr x0, [x20, #:lo12:.LANCHOR69] 20655 str w4, [x29, 100] 20656 mov w2, w23 20657 ldr w1, [x0, 48] 20658 ldrh w3, [x0, 694] 20659 add w1, w1, 1 20660 str w1, [x0, 48] 20661 add x0, x28, :lo12:.LC190 20662 ldr w1, [x22] 20663 bl printf 20664 ldr w4, [x29, 100] 20665 cmp w4, 512 20666 ccmn w4, #1, 4, ne 20667 beq .L3258 20668 ldr x8, [x20, #:lo12:.LANCHOR69] 20669 ldr w6, [x22] 20670 ldrh w0, [x8, 698] 20671 cmp w6, w0 20672 bcs .L3258 20673 ldr w7, [x22, 8] 20674 cbz w7, .L3259 20675 ldrb w1, [x25] 20676 mov x0, x27 20677 lsl w1, w1, 9 20678 bl js_hash 20679 cmp w7, w0 20680 beq .L3259 20681 adrp x0, .LC191 20682 mov w1, w7 20683 add x0, x0, :lo12:.LC191 20684 bl printf 20685.L3258: 20686 add w21, w21, 1 20687 sxth w21, w21 20688 b .L3257 20689.L3259: 20690 add x6, x8, x6, uxtw 2 20691 str w23, [x6, 704] 20692 b .L3258 20693 .size pm_init, .-pm_init 20694 .section .text.pm_log2phys,"ax",@progbits 20695 .align 2 20696 .global pm_log2phys 20697 .type pm_log2phys, %function 20698pm_log2phys: 20699 stp x29, x30, [sp, -96]! 20700 add x29, sp, 0 20701 stp x25, x26, [sp, 64] 20702 mov w25, w0 20703 adrp x0, .LANCHOR219 20704 stp x23, x24, [sp, 48] 20705 stp x19, x20, [sp, 16] 20706 mov w24, w2 20707 stp x21, x22, [sp, 32] 20708 mov x23, x1 20709 ldr w2, [x0, #:lo12:.LANCHOR219] 20710 str x27, [sp, 80] 20711 cmp w25, w2 20712 bcc .L3277 20713 mov w1, w25 20714 adrp x0, .LC192 20715 add x0, x0, :lo12:.LC192 20716 bl printf 20717 mov w0, -1 20718 cbnz w24, .L3276 20719 str w0, [x23] 20720.L3276: 20721 ldp x19, x20, [sp, 16] 20722 ldp x21, x22, [sp, 32] 20723 ldp x23, x24, [sp, 48] 20724 ldp x25, x26, [sp, 64] 20725 ldr x27, [sp, 80] 20726 ldp x29, x30, [sp], 96 20727 ret 20728.L3277: 20729 adrp x0, .LANCHOR68 20730 adrp x21, .LANCHOR136 20731 mov x19, 0 20732 ldrb w20, [x0, #:lo12:.LANCHOR68] 20733 add x0, x21, :lo12:.LANCHOR136 20734 add x0, x0, 8 20735 lsl w22, w20, 7 20736 udiv w22, w25, w22 20737 and w26, w22, 65535 20738.L3283: 20739 ldr x1, [x0] 20740 cbz x1, .L3279 20741 ldrh w1, [x0, -8] 20742 cmp w1, w26 20743 bne .L3279 20744.L3280: 20745 ubfiz w20, w20, 7, 9 20746 msub w25, w26, w20, w25 20747 and x25, x25, 65535 20748 cbnz w24, .L3281 20749 add x0, x21, :lo12:.LANCHOR136 20750 adrp x1, .LANCHOR31 20751 add x0, x0, x19, lsl 4 20752 mov w2, 24 20753 ldr x0, [x0, 8] 20754 ldr w0, [x0, x25, lsl 2] 20755 str w0, [x23] 20756 ldrb w3, [x1, #:lo12:.LANCHOR31] 20757 mov w1, 1 20758 sub w2, w2, w3 20759 lsl w1, w1, w3 20760 sub w1, w1, #1 20761 lsr w0, w0, w2 20762 and w0, w0, w1 20763 adrp x1, .LANCHOR118 20764 ldrb w1, [x1, #:lo12:.LANCHOR118] 20765 cmp w0, w1 20766 bcc .L3282 20767 mov w0, -1 20768 str w0, [x23] 20769.L3282: 20770 add x21, x21, :lo12:.LANCHOR136 20771 add x19, x21, x19, lsl 4 20772 ldrh w0, [x19, 2] 20773 mvn x1, x0 20774 tst x1, 32767 20775 beq .L3286 20776 add w0, w0, 1 20777 strh w0, [x19, 2] 20778.L3286: 20779 mov w0, 0 20780 b .L3276 20781.L3281: 20782 add x0, x21, :lo12:.LANCHOR136 20783 ldr w2, [x23] 20784 add x0, x0, x19, lsl 4 20785 ldr x1, [x0, 8] 20786 str w2, [x1, x25, lsl 2] 20787 ldrh w1, [x0, 2] 20788 orr w1, w1, -32768 20789 strh w1, [x0, 2] 20790 adrp x0, .LANCHOR137 20791 strb w22, [x0, #:lo12:.LANCHOR137] 20792 b .L3282 20793.L3279: 20794 add w19, w19, 1 20795 add x0, x0, 16 20796 and x19, x19, 65535 20797 cmp w19, 8 20798 bne .L3283 20799 bl pm_select_ram_region 20800 and x19, x0, 65535 20801 sbfiz x1, x19, 4, 32 20802 add x2, x21, :lo12:.LANCHOR136 20803 add x3, x2, x1 20804 mov w27, w0 20805 ldrh w2, [x2, x1] 20806 mov w1, 65535 20807 cmp w2, w1 20808 beq .L3284 20809 ldrsh w1, [x3, 2] 20810 tbz w1, #31, .L3284 20811 bl pm_flush_id 20812.L3284: 20813 adrp x0, .LANCHOR223 20814 mov w1, w27 20815 strb w19, [x0, #:lo12:.LANCHOR223] 20816 mov w0, w26 20817 bl load_l2p_region 20818 b .L3280 20819 .size pm_log2phys, .-pm_log2phys 20820 .section .text.gc_recovery,"ax",@progbits 20821 .align 2 20822 .global gc_recovery 20823 .type gc_recovery, %function 20824gc_recovery: 20825 sub sp, sp, #240 20826 adrp x0, .LANCHOR12 20827 adrp x1, .LANCHOR90 20828 mov w2, 65535 20829 stp x29, x30, [sp, 32] 20830 add x29, sp, 32 20831 stp x23, x24, [sp, 80] 20832 ldr x23, [x0, #:lo12:.LANCHOR12] 20833 strb wzr, [x1, #:lo12:.LANCHOR90] 20834 adrp x1, .LANCHOR157 20835 stp x25, x26, [sp, 96] 20836 mov x26, x0 20837 strb wzr, [x1, #:lo12:.LANCHOR157] 20838 add x1, x23, 80 20839 stp x19, x20, [sp, 48] 20840 str x1, [x29, 168] 20841 stp x21, x22, [sp, 64] 20842 ldrh w1, [x23, 80] 20843 stp x27, x28, [sp, 112] 20844 cmp w1, w2 20845 beq .L3293 20846 mov w0, -1 20847 strh w0, [x23, 130] 20848 mov w0, 1 20849 bl buf_alloc 20850 mov x27, x0 20851 ldrb w0, [x23, 89] 20852 add x1, x23, 80 20853 adrp x3, .LANCHOR117 20854 str x3, [x29, 152] 20855 sub w0, w0, #1 20856 add x0, x1, x0, sxtw 1 20857 ldrh w1, [x3, #:lo12:.LANCHOR117] 20858 ldrh w0, [x0, 16] 20859 mul w1, w0, w1 20860 adrp x0, .LANCHOR84 20861 str w1, [x29, 200] 20862 ldrb w2, [x0, #:lo12:.LANCHOR84] 20863 str x0, [x29, 176] 20864 cmp w2, 2 20865 beq .L3294 20866 adrp x0, .LANCHOR35 20867 ldrb w0, [x0, #:lo12:.LANCHOR35] 20868 cbnz w0, .L3294 20869 adrp x0, .LANCHOR36 20870 ldrb w0, [x0, #:lo12:.LANCHOR36] 20871 cbz w0, .L3295 20872.L3294: 20873 adrp x0, .LANCHOR91 20874 ldrh w0, [x0, #:lo12:.LANCHOR91] 20875 sub w0, w0, #1 20876 add w0, w0, w1 20877 orr w2, w0, w2, lsl 24 20878 str w2, [x27, 40] 20879.L3296: 20880 mov w1, 1 20881 mov x0, x27 20882 bl sblk_read_page 20883 ldr w0, [x27, 52] 20884 cmp w0, 512 20885 ccmn w0, #1, 4, ne 20886 beq .L3297 20887 ldr x0, [x27, 24] 20888 ldr w1, [x0] 20889 mov w0, 15555 20890 movk w0, 0xf55f, lsl 16 20891 cmp w1, w0 20892 beq .L3298 20893.L3297: 20894 mov x0, x27 20895 bl zbuf_free 20896 ldr x1, [x27, 24] 20897 ldr x0, [x27, 8] 20898 ldr w2, [x1, 12] 20899 str w2, [sp, 16] 20900 ldr w2, [x1, 8] 20901 str w2, [sp, 8] 20902 ldr w2, [x1, 4] 20903 str w2, [sp] 20904 ldp w3, w4, [x0] 20905 ldp w5, w6, [x0, 8] 20906 adrp x0, .LC193 20907 ldr w7, [x1] 20908 add x0, x0, :lo12:.LC193 20909 ldr w1, [x27, 40] 20910 ldr w2, [x27, 52] 20911 bl printf 20912.L3387: 20913 adrp x0, .LANCHOR11 20914 ldrh w1, [x23, 80] 20915 mov w25, 0 20916 ldr x0, [x0, #:lo12:.LANCHOR11] 20917 strh wzr, [x0, x1, lsl 1] 20918 ldr x0, [x26, #:lo12:.LANCHOR12] 20919 ldrh w1, [x23, 80] 20920 strh w1, [x0, 130] 20921.L3299: 20922 ldrh w0, [x23, 80] 20923 adrp x2, .LANCHOR11 20924 ldr x2, [x2, #:lo12:.LANCHOR11] 20925 ubfiz x1, x0, 1, 16 20926 ldrh w1, [x2, x1] 20927 cbnz w1, .L3343 20928 bl ftl_dump_write_open_sblk 20929.L3343: 20930 ldrh w1, [x23, 80] 20931 mov w2, w25 20932 adrp x0, .LC195 20933 add x0, x0, :lo12:.LC195 20934 bl printf 20935 mov w0, -1 20936 strh w0, [x23, 80] 20937 bl pm_flush 20938 bl ftl_ext_info_flush 20939 ldr x0, [x26, #:lo12:.LANCHOR12] 20940 mov w1, 65535 20941 ldrh w0, [x0, 130] 20942 cmp w0, w1 20943 beq .L3344 20944 adrp x1, .LANCHOR8 20945 ldrh w1, [x1, #:lo12:.LANCHOR8] 20946 cmp w1, w0 20947 bhi .L3345 20948 adrp x1, .LANCHOR225 20949 adrp x0, .LC0 20950 mov w2, 517 20951 add x1, x1, :lo12:.LANCHOR225 20952 add x0, x0, :lo12:.LC0 20953 bl printf 20954.L3345: 20955 ldr x0, [x26, #:lo12:.LANCHOR12] 20956 ldrh w0, [x0, 130] 20957 bl ftl_free_sblk 20958.L3344: 20959 adrp x0, .LANCHOR69 20960 ldr x1, [x0, #:lo12:.LANCHOR69] 20961 mov w0, -1 20962 strh w0, [x1, 126] 20963 ldr x1, [x26, #:lo12:.LANCHOR12] 20964 strh w0, [x1, 130] 20965 mov w0, 0 20966 bl ftl_info_flush 20967.L3292: 20968 ldp x19, x20, [sp, 48] 20969 ldp x21, x22, [sp, 64] 20970 ldp x23, x24, [sp, 80] 20971 ldp x25, x26, [sp, 96] 20972 ldp x27, x28, [sp, 112] 20973 ldp x29, x30, [sp, 32] 20974 add sp, sp, 240 20975 ret 20976.L3295: 20977 cmp w2, 3 20978 bne .L3296 20979 adrp x0, .LANCHOR100 20980 ldrh w0, [x0, #:lo12:.LANCHOR100] 20981 sub w0, w0, #1 20982 add w0, w0, w1 20983 orr w0, w0, 50331648 20984 str w0, [x27, 40] 20985 b .L3296 20986.L3298: 20987 adrp x21, .LANCHOR224 20988 adrp x19, .LANCHOR91 20989 adrp x20, .LANCHOR85 20990 adrp x24, .LANCHOR160 20991 ldrb w0, [x21, #:lo12:.LANCHOR224] 20992 cmp w0, 2 20993 bne .L3300 20994 ldr x0, [x29, 176] 20995 ldrb w0, [x0, #:lo12:.LANCHOR84] 20996 cmp w0, 3 20997 bne .L3300 20998 ldrh w2, [x19, #:lo12:.LANCHOR91] 20999 adrp x22, .LANCHOR221 21000 ldrb w1, [x20, #:lo12:.LANCHOR85] 21001 ldr x3, [x24, #:lo12:.LANCHOR160] 21002 ubfiz w2, w2, 2, 14 21003 ldrh w0, [x22, #:lo12:.LANCHOR221] 21004 mul w2, w2, w1 21005 ldr x1, [x27, 8] 21006 sub w2, w2, w0 21007 and x0, x0, 65532 21008 and w2, w2, 65535 21009 add x0, x3, x0 21010 bl ftl_memcpy 21011 adrp x0, .LANCHOR35 21012 ldrb w0, [x0, #:lo12:.LANCHOR35] 21013 cbnz w0, .L3301 21014 adrp x0, .LANCHOR36 21015 ldrb w0, [x0, #:lo12:.LANCHOR36] 21016 cbz w0, .L3302 21017.L3301: 21018 ldr w0, [x27, 40] 21019 sub w0, w0, #1 21020.L3381: 21021 str w0, [x27, 40] 21022 mov w1, 1 21023 mov x0, x27 21024 bl sblk_read_page 21025 ldr w0, [x27, 52] 21026 cmp w0, 512 21027 ccmn w0, #1, 4, ne 21028 beq .L3304 21029 ldr x0, [x27, 24] 21030 ldr w1, [x0] 21031 mov w0, 15555 21032 movk w0, 0xf55f, lsl 16 21033 cmp w1, w0 21034 beq .L3305 21035.L3304: 21036 mov x0, x27 21037 bl zbuf_free 21038 b .L3387 21039.L3302: 21040 adrp x1, .LANCHOR100 21041 ldr w0, [x29, 200] 21042 ldrh w1, [x1, #:lo12:.LANCHOR100] 21043 sub w0, w0, #1 21044 add w0, w0, w1 21045 orr w0, w0, 33554432 21046 b .L3381 21047.L3305: 21048 ldrh w2, [x22, #:lo12:.LANCHOR221] 21049.L3382: 21050 ldr x1, [x27, 8] 21051 adrp x22, .LANCHOR161 21052 ldr x0, [x24, #:lo12:.LANCHOR160] 21053 bl ftl_memcpy 21054 ldrb w1, [x20, #:lo12:.LANCHOR85] 21055 ldrh w0, [x19, #:lo12:.LANCHOR91] 21056 mul w0, w0, w1 21057 adrp x1, .LANCHOR68 21058 ldrb w1, [x1, #:lo12:.LANCHOR68] 21059 lsl w2, w0, 2 21060 cmp w1, w0, lsr 6 21061 bge .L3307 21062 ldr x0, [x22, #:lo12:.LANCHOR161] 21063 mov w1, 0 21064 bl ftl_memset 21065 ldrb w21, [x21, #:lo12:.LANCHOR224] 21066 cmp w21, 1 21067 bne .L3348 21068 ldrb w1, [x20, #:lo12:.LANCHOR85] 21069 ldrh w0, [x19, #:lo12:.LANCHOR91] 21070 mul w0, w0, w1 21071 adrp x1, .LANCHOR221 21072 ldrh w1, [x1, #:lo12:.LANCHOR221] 21073 sub w25, w1, w0, lsl 2 21074 ldr x1, [x27, 8] 21075 mov w2, w25 21076 add x1, x1, x0, sxtw 2 21077 ldr x0, [x22, #:lo12:.LANCHOR161] 21078 bl ftl_memcpy 21079.L3308: 21080 adrp x0, .LANCHOR100 21081 ldrh w0, [x0, #:lo12:.LANCHOR100] 21082 str w0, [x29, 184] 21083 ldr x0, [x29, 176] 21084 ldrb w0, [x0, #:lo12:.LANCHOR84] 21085 str w0, [x29, 188] 21086 cmp w0, 2 21087 bne .L3309 21088 adrp x0, .LANCHOR86 21089 ldrb w0, [x0, #:lo12:.LANCHOR86] 21090 cbz w0, .L3310 21091.L3309: 21092 adrp x0, .LANCHOR35 21093 ldrb w0, [x0, #:lo12:.LANCHOR35] 21094 cbz w0, .L3311 21095.L3310: 21096 ldp w0, w1, [x29, 184] 21097 mul w0, w0, w1 21098 str w0, [x29, 184] 21099 mov w0, 1 21100 str w0, [x29, 188] 21101.L3311: 21102 adrp x22, .LANCHOR35 21103 mov w28, 0 21104 add x0, x22, :lo12:.LANCHOR35 21105 mov w10, 0 21106 str x0, [x29, 112] 21107.L3312: 21108 sub w0, w28, #1 21109 str w0, [x29, 144] 21110 ldr w0, [x29, 184] 21111 cmp w0, w28 21112 bls .L3325 21113 add w0, w28, w28, lsl 1 21114 mov x20, 0 21115 sub w0, w0, #1 21116 str w0, [x29, 164] 21117 adrp x0, .LANCHOR36 21118 add x0, x0, :lo12:.LANCHOR36 21119 str x0, [x29, 120] 21120 b .L3326 21121.L3300: 21122 ldrh w2, [x19, #:lo12:.LANCHOR91] 21123 ldrb w0, [x20, #:lo12:.LANCHOR85] 21124 mul w2, w2, w0 21125 lsl w2, w2, 2 21126 b .L3382 21127.L3307: 21128 ldr x1, [x27, 8] 21129 mov w21, 0 21130 add x1, x1, x0, sxtw 2 21131 ldr x0, [x22, #:lo12:.LANCHOR161] 21132 bl ftl_memcpy 21133.L3383: 21134 mov w25, 0 21135 b .L3308 21136.L3348: 21137 mov w21, 1 21138 b .L3383 21139.L3321: 21140 ldp x1, x0, [x29, 128] 21141 ldr x2, [x29, 176] 21142 ldrh w0, [x0, 96] 21143 ldrh w1, [x1] 21144 ldrb w2, [x2, #:lo12:.LANCHOR84] 21145 cmp w2, 2 21146 mul w0, w0, w1 21147 str w0, [x29, 200] 21148 add w1, w22, w0 21149 beq .L3313 21150 ldr x3, [x29, 112] 21151 ldrb w3, [x3] 21152 cbz w3, .L3314 21153.L3313: 21154 ldr w0, [x29, 144] 21155 add w1, w1, w0 21156 orr w1, w1, w2, lsl 24 21157.L3384: 21158 str w1, [x27, 40] 21159.L3315: 21160 mov w1, 1 21161 str x8, [x29, 96] 21162 str w10, [x29, 104] 21163 mov x0, x27 21164 bl sblk_read_page 21165 adrp x1, .LANCHOR161 21166 ldr w10, [x29, 104] 21167 ldr x0, [x27, 24] 21168 ldr x8, [x29, 96] 21169 cbz w21, .L3318 21170 ldr x2, [x1, #:lo12:.LANCHOR161] 21171 ldr w3, [x2, x8] 21172 cbnz w3, .L3318 21173 ldr w3, [x0, 8] 21174 str w3, [x2, x8] 21175.L3318: 21176 ldr x2, [x24, #:lo12:.LANCHOR160] 21177 ldr w6, [x0, 4] 21178 ldr w3, [x2, x8] 21179 cmp w3, w6 21180 bne .L3319 21181 ldr x2, [x1, #:lo12:.LANCHOR161] 21182 ldr w4, [x2, x8] 21183 ldr w2, [x0, 8] 21184 cmp w4, w2 21185 beq .L3320 21186.L3319: 21187 ldr x1, [x1, #:lo12:.LANCHOR161] 21188 ldr w2, [x0, 12] 21189 str w2, [sp] 21190 str w10, [x29, 96] 21191 ldr w4, [x1, x8] 21192 ldr w5, [x0] 21193 ldr w7, [x0, 8] 21194 adrp x0, .LC194 21195 ldr w1, [x27, 40] 21196 add x0, x0, :lo12:.LC194 21197 ldr w2, [x27, 52] 21198 str x8, [x29, 104] 21199 bl printf 21200 ldr x0, [x24, #:lo12:.LANCHOR160] 21201 ldr x8, [x29, 104] 21202 ldr w10, [x29, 96] 21203 ldr w0, [x0, x8] 21204 cmn w0, #1 21205 beq .L3320 21206 mov x0, x27 21207 bl zbuf_free 21208 adrp x0, .LANCHOR11 21209 ldrh w1, [x23, 80] 21210 ldr x0, [x0, #:lo12:.LANCHOR11] 21211 strh wzr, [x0, x1, lsl 1] 21212 ldr x0, [x26, #:lo12:.LANCHOR12] 21213 ldrh w1, [x23, 80] 21214 strh w1, [x0, 130] 21215 b .L3299 21216.L3314: 21217 cmp w2, 3 21218 bne .L3316 21219 ldr x2, [x29, 120] 21220 ldrb w2, [x2] 21221 cbz w2, .L3317 21222 ldr w0, [x29, 164] 21223 add w1, w1, w0 21224 orr w1, w1, 50331648 21225 b .L3384 21226.L3317: 21227 add w0, w28, w0 21228 orr w0, w0, w22, lsl 24 21229.L3385: 21230 str w0, [x27, 40] 21231 b .L3315 21232.L3316: 21233 add w0, w28, w0 21234 b .L3385 21235.L3320: 21236 add w10, w10, 1 21237 add w22, w22, 1 21238 add x8, x8, 4 21239.L3323: 21240 ldr w0, [x29, 188] 21241 cmp w0, w22 21242 bcs .L3321 21243 add x20, x20, 1 21244.L3326: 21245 ldr x0, [x29, 168] 21246 ldrb w0, [x0, 9] 21247 cmp w0, w20 21248 ble .L3322 21249 add x0, x23, x20, lsl 1 21250 str x0, [x29, 136] 21251 ldr x0, [x29, 152] 21252 sbfiz x8, x10, 2, 32 21253 mov w22, 1 21254 add x0, x0, :lo12:.LANCHOR117 21255 str x0, [x29, 128] 21256 b .L3323 21257.L3322: 21258 adrp x0, .LANCHOR86 21259 ldrb w0, [x0, #:lo12:.LANCHOR86] 21260 cmp w0, 0 21261 cinc w28, w28, ne 21262 add w28, w28, 1 21263 b .L3312 21264.L3325: 21265 mov x0, x27 21266 bl zbuf_free 21267 ldr x0, [x29, 168] 21268 adrp x20, .LANCHOR11 21269 ldrh w3, [x19, #:lo12:.LANCHOR91] 21270 mov w25, 0 21271 ldrh w2, [x23, 80] 21272 mov w27, 0 21273 ldr x1, [x20, #:lo12:.LANCHOR11] 21274 mov w28, 0 21275 ldrb w0, [x0, 9] 21276 str x20, [x29, 144] 21277 mul w0, w0, w3 21278 strh w0, [x1, x2, lsl 1] 21279 adrp x0, .LANCHOR80 21280 add x0, x0, :lo12:.LANCHOR80 21281 str x0, [x29, 104] 21282.L3327: 21283 sub w0, w27, #1 21284 str w0, [x29, 128] 21285 ldr w0, [x29, 184] 21286 cmp w0, w27 21287 bls .L3341 21288 add w22, w27, w27, lsl 1 21289 mov x21, 0 21290 sub w0, w22, #1 21291 str w0, [x29, 120] 21292 b .L3342 21293.L3337: 21294 ldr x1, [x24, #:lo12:.LANCHOR160] 21295 sbfiz x0, x28, 2, 32 21296 ldr w20, [x1, x0] 21297 cmn w20, #1 21298 beq .L3328 21299 adrp x1, .LANCHOR161 21300 ldr x1, [x1, #:lo12:.LANCHOR161] 21301 ldr w0, [x1, x0] 21302 str w0, [x29, 164] 21303 mov w0, w20 21304 bl lpa_hash_get_ppa 21305 str w0, [x29, 204] 21306 cmn w0, #1 21307 bne .L3329 21308 mov w2, 0 21309 add x1, x29, 204 21310 mov w0, w20 21311 bl pm_log2phys 21312.L3329: 21313 ldr x0, [x29, 136] 21314 ldr x1, [x29, 152] 21315 ldr x2, [x29, 176] 21316 ldrh w0, [x0, 96] 21317 ldrh w1, [x1, #:lo12:.LANCHOR117] 21318 ldrb w2, [x2, #:lo12:.LANCHOR84] 21319 cmp w2, 2 21320 mul w0, w0, w1 21321 add w1, w22, w0 21322 beq .L3330 21323 adrp x6, .LANCHOR35 21324 ldrb w6, [x6, #:lo12:.LANCHOR35] 21325 cbz w6, .L3331 21326.L3330: 21327 ldr w0, [x29, 128] 21328 add w1, w0, w1 21329 orr w1, w1, w2, lsl 24 21330 str w1, [x29, 200] 21331.L3332: 21332 ldp x0, x1, [x29, 104] 21333 mov w19, 24 21334 mov w2, 1 21335 ldrb w1, [x1] 21336 ldrh w0, [x0] 21337 sub w19, w19, w1 21338 ldr w1, [x29, 164] 21339 sub w19, w19, w0 21340 lsr w0, w1, w0 21341 lsl w19, w2, w19 21342 sub w19, w19, #1 21343 and w19, w19, w0 21344 adrp x0, .LANCHOR81 21345 ldrb w0, [x0, #:lo12:.LANCHOR81] 21346 udiv w19, w19, w0 21347 ldr w0, [x29, 204] 21348 cmp w1, w0 21349 and x19, x19, 65535 21350 bne .L3335 21351 add x1, x29, 200 21352 mov w0, w20 21353 bl pm_log2phys 21354 add w25, w25, 1 21355 mov w0, w19 21356 bl ftl_vpn_decrement 21357.L3336: 21358 adrp x0, .LANCHOR9 21359 add w28, w28, 1 21360 ldr x0, [x0, #:lo12:.LANCHOR9] 21361 add x0, x0, x19, lsl 2 21362 ldrb w0, [x0, 2] 21363 tst w0, 224 21364 bne .L3328 21365 ldr x0, [x29, 144] 21366 lsl x19, x19, 1 21367 ldr x0, [x0, #:lo12:.LANCHOR11] 21368 ldrh w1, [x0, x19] 21369 cbz w1, .L3328 21370 strh wzr, [x0, x19] 21371.L3328: 21372 add w22, w22, 1 21373.L3339: 21374 ldr w0, [x29, 188] 21375 cmp w0, w22 21376 bcs .L3337 21377 add x21, x21, 1 21378.L3342: 21379 ldr x0, [x29, 168] 21380 ldrb w0, [x0, 9] 21381 cmp w0, w21 21382 ble .L3338 21383 add x0, x23, x21, lsl 1 21384 mov w22, 1 21385 str x0, [x29, 136] 21386 adrp x0, .LANCHOR31 21387 add x0, x0, :lo12:.LANCHOR31 21388 str x0, [x29, 112] 21389 b .L3339 21390.L3331: 21391 cmp w2, 3 21392 bne .L3333 21393 adrp x2, .LANCHOR36 21394 ldrb w6, [x2, #:lo12:.LANCHOR36] 21395 lsl w2, w22, 24 21396 cbz w6, .L3334 21397 ldr w0, [x29, 120] 21398 add w1, w0, w1 21399 orr w0, w1, w2 21400.L3386: 21401 str w0, [x29, 200] 21402 b .L3332 21403.L3334: 21404 add w0, w27, w0 21405 orr w0, w0, w2 21406 b .L3386 21407.L3333: 21408 add w0, w27, w0 21409 b .L3386 21410.L3335: 21411 ldr w1, [x29, 200] 21412 cmp w0, w1 21413 cinc w25, w25, eq 21414 b .L3336 21415.L3338: 21416 adrp x0, .LANCHOR86 21417 ldrb w0, [x0, #:lo12:.LANCHOR86] 21418 cmp w0, 0 21419 cinc w27, w27, ne 21420 add w27, w27, 1 21421 b .L3327 21422.L3341: 21423 ldr x0, [x29, 144] 21424 ldrh w1, [x23, 80] 21425 ldr x0, [x0, #:lo12:.LANCHOR11] 21426 strh w25, [x0, x1, lsl 1] 21427 ldrh w0, [x23, 80] 21428 bl zftl_insert_data_list 21429 b .L3299 21430.L3293: 21431 ldrh w0, [x23, 130] 21432 cmp w0, w1 21433 beq .L3292 21434 adrp x19, .LANCHOR69 21435 ldr x1, [x19, #:lo12:.LANCHOR69] 21436 ldrh w1, [x1, 126] 21437 cmp w1, w0 21438 bne .L3347 21439 bl pm_flush 21440 ldr x0, [x26, #:lo12:.LANCHOR12] 21441 ldrh w0, [x0, 130] 21442 bl ftl_free_sblk 21443 ldr x0, [x19, #:lo12:.LANCHOR69] 21444 mov w1, -1 21445 strh w1, [x0, 126] 21446 mov w0, 0 21447 bl ftl_info_flush 21448.L3347: 21449 ldr x0, [x26, #:lo12:.LANCHOR12] 21450 mov w1, -1 21451 strh w1, [x0, 130] 21452 b .L3292 21453 .size gc_recovery, .-gc_recovery 21454 .section .text.zftl_init,"ax",@progbits 21455 .align 2 21456 .global zftl_init 21457 .type zftl_init, %function 21458zftl_init: 21459 stp x29, x30, [sp, -112]! 21460 adrp x1, .LANCHOR65 21461 mov w0, -1 21462 add x29, sp, 0 21463 strb w0, [x1, #:lo12:.LANCHOR65] 21464 adrp x1, .LANCHOR66 21465 stp x21, x22, [sp, 32] 21466 adrp x22, .LANCHOR100 21467 strb wzr, [x1, #:lo12:.LANCHOR66] 21468 adrp x1, .LANCHOR71 21469 stp x19, x20, [sp, 16] 21470 adrp x21, .LANCHOR85 21471 strb w0, [x1, #:lo12:.LANCHOR71] 21472 adrp x1, .LANCHOR72 21473 stp x23, x24, [sp, 48] 21474 adrp x20, .LANCHOR221 21475 strb wzr, [x1, #:lo12:.LANCHOR72] 21476 adrp x1, .LANCHOR184 21477 stp x25, x26, [sp, 64] 21478 adrp x23, .LANCHOR8 21479 strb w0, [x1, #:lo12:.LANCHOR184] 21480 adrp x0, .LANCHOR183 21481 mov w1, -1 21482 stp x27, x28, [sp, 80] 21483 strb wzr, [x0, #:lo12:.LANCHOR183] 21484 adrp x0, .LANCHOR226 21485 str w1, [x0, #:lo12:.LANCHOR226] 21486 adrp x1, .LC196 21487 adrp x0, .LC98 21488 add x1, x1, :lo12:.LC196 21489 add x0, x0, :lo12:.LC98 21490 bl printf 21491 adrp x1, .LANCHOR32 21492 add x1, x1, :lo12:.LANCHOR32 21493 adrp x0, .LANCHOR84 21494 adrp x2, .LANCHOR68 21495 adrp x3, .LANCHOR118 21496 adrp x4, .LANCHOR81 21497 ldrb w7, [x1, 12] 21498 strb w7, [x0, #:lo12:.LANCHOR84] 21499 ldrb w0, [x1, 9] 21500 strb w0, [x2, #:lo12:.LANCHOR68] 21501 adrp x2, .LANCHOR91 21502 ldrh w5, [x1, 10] 21503 strh w5, [x2, #:lo12:.LANCHOR91] 21504 adrp x2, .LANCHOR23 21505 ldrh w8, [x1, 14] 21506 ubfiz w6, w0, 9, 7 21507 ldrb w2, [x2, #:lo12:.LANCHOR23] 21508 sdiv w11, w5, w7 21509 strb w2, [x3, #:lo12:.LANCHOR118] 21510 ldrb w3, [x1, 13] 21511 adrp x1, .LANCHOR2 21512 strb w3, [x4, #:lo12:.LANCHOR81] 21513 ldrh w4, [x1, #:lo12:.LANCHOR2] 21514 adrp x1, .LANCHOR117 21515 strh w11, [x22, #:lo12:.LANCHOR100] 21516 mul w2, w2, w3 21517 strh w4, [x1, #:lo12:.LANCHOR117] 21518 strh w8, [x23, #:lo12:.LANCHOR8] 21519 mov w3, 1 21520 and w2, w2, 255 21521 strh w6, [x20, #:lo12:.LANCHOR221] 21522 strb w2, [x21, #:lo12:.LANCHOR85] 21523 mov w1, 0 21524.L3389: 21525 cmp w4, w3 21526 bcs .L3390 21527 mul w10, w0, w5 21528 adrp x3, .LANCHOR80 21529 sub w1, w1, #1 21530 mov w4, 0 21531 strh w1, [x3, #:lo12:.LANCHOR80] 21532 mov w1, 1 21533 mul w3, w8, w10 21534 lsr w12, w3, 21 21535.L3391: 21536 cmp w12, w1 21537 bcs .L3392 21538 mov w1, 57344 21539 sub w4, w4, #1 21540 movk w1, 0x1c, lsl 16 21541 mul w3, w3, w2 21542 adrp x28, .LANCHOR219 21543 sub w12, w6, #1 21544 mul w1, w2, w1 21545 adrp x24, .LANCHOR203 21546 mul w11, w11, w2 21547 adrp x27, .LANCHOR228 21548 mul w10, w10, w2 21549 adrp x26, .LANCHOR153 21550 lsl w1, w1, w4 21551 adrp x4, .LANCHOR73 21552 sub w10, w10, #1 21553 adrp x25, .LANCHOR104 21554 str w1, [x4, #:lo12:.LANCHOR73] 21555 adrp x4, .LANCHOR227 21556 lsr w8, w8, 4 21557 strh w8, [x25, #:lo12:.LANCHOR104] 21558 str w3, [x4, #:lo12:.LANCHOR227] 21559 add w3, w1, 24576 21560 str w3, [x27, #:lo12:.LANCHOR228] 21561 cmp w8, 79 21562 udiv w0, w3, w0 21563 udiv w3, w3, w10 21564 str w0, [x28, #:lo12:.LANCHOR219] 21565 add w0, w12, w0, lsl 2 21566 add w3, w3, 8 21567 udiv w0, w0, w6 21568 strh w0, [x24, #:lo12:.LANCHOR203] 21569 ubfiz w0, w0, 4, 16 21570 sdiv w0, w0, w11 21571 strh w0, [x26, #:lo12:.LANCHOR153] 21572 adrp x0, .LANCHOR107 21573 str x0, [x29, 104] 21574 strh w3, [x0, #:lo12:.LANCHOR107] 21575 bhi .L3393 21576 mov w0, 80 21577 strh w0, [x25, #:lo12:.LANCHOR104] 21578.L3393: 21579 adrp x12, .LANCHOR132 21580 mov w0, 2000 21581 adrp x11, .LANCHOR131 21582 adrp x3, .LANCHOR150 21583 strh w0, [x12, #:lo12:.LANCHOR132] 21584 mov w0, 50 21585 adrp x8, .LANCHOR151 21586 strh w0, [x11, #:lo12:.LANCHOR131] 21587 mov w0, 256 21588 strh w0, [x3, #:lo12:.LANCHOR150] 21589 mov w0, 48 21590 strh w0, [x8, #:lo12:.LANCHOR151] 21591 adrp x0, .LANCHOR10 21592 mov w10, 32 21593 cmp w7, 2 21594 mov x13, x11 21595 strh w10, [x0, #:lo12:.LANCHOR10] 21596 mov x7, x12 21597 mov x14, x8 21598 beq .L3394 21599 adrp x15, .LANCHOR89 21600 ldrb w15, [x15, #:lo12:.LANCHOR89] 21601 cbz w15, .L3395 21602.L3394: 21603 mov w8, 150 21604 strh w8, [x13, #:lo12:.LANCHOR131] 21605 mov w8, 64 21606 strh w8, [x14, #:lo12:.LANCHOR151] 21607 mov w8, 12 21608 strh w8, [x0, #:lo12:.LANCHOR10] 21609 adrp x8, .LANCHOR0 21610 ldrb w8, [x8, #:lo12:.LANCHOR0] 21611 cbnz w8, .L3396 21612 mov w8, 4 21613 strh w8, [x0, #:lo12:.LANCHOR10] 21614 mov w0, 600 21615 strh w0, [x7, #:lo12:.LANCHOR132] 21616 mov w0, 128 21617 strh w0, [x3, #:lo12:.LANCHOR150] 21618.L3396: 21619 adrp x0, .LANCHOR36 21620 ldrb w0, [x0, #:lo12:.LANCHOR36] 21621 cbz w0, .L3398 21622 mov w0, 200 21623 strh w0, [x13, #:lo12:.LANCHOR131] 21624 mov w0, 2000 21625 strh w0, [x7, #:lo12:.LANCHOR132] 21626.L3398: 21627 adrp x0, .LANCHOR128 21628 mul w2, w5, w2 21629 mov w3, 1 21630 str wzr, [x0, #:lo12:.LANCHOR128] 21631 adrp x0, .LANCHOR224 21632 cmp w6, w2, lsl 2 21633 strb w3, [x0, #:lo12:.LANCHOR224] 21634 bge .L3400 21635 mov w2, 2 21636 strb w2, [x0, #:lo12:.LANCHOR224] 21637.L3400: 21638 adrp x19, .LANCHOR19 21639 ldr w0, [x19, #:lo12:.LANCHOR19] 21640 tbz x0, 12, .L3401 21641 str x4, [x29, 96] 21642 adrp x0, .LC197 21643 add x0, x0, :lo12:.LC197 21644 bl printf 21645 ldr x4, [x29, 96] 21646.L3401: 21647 ldr w0, [x19, #:lo12:.LANCHOR19] 21648 tbz x0, 12, .L3402 21649 ldr w1, [x4, #:lo12:.LANCHOR227] 21650 adrp x0, .LC198 21651 add x0, x0, :lo12:.LC198 21652 bl printf 21653.L3402: 21654 ldr w0, [x19, #:lo12:.LANCHOR19] 21655 tbz x0, 12, .L3403 21656 ldr w1, [x28, #:lo12:.LANCHOR219] 21657 adrp x0, .LC199 21658 add x0, x0, :lo12:.LC199 21659 bl printf 21660.L3403: 21661 ldr w0, [x19, #:lo12:.LANCHOR19] 21662 tbz x0, 12, .L3404 21663 ldr w1, [x27, #:lo12:.LANCHOR228] 21664 adrp x0, .LC200 21665 add x0, x0, :lo12:.LC200 21666 bl printf 21667.L3404: 21668 ldr w0, [x19, #:lo12:.LANCHOR19] 21669 tbz x0, 12, .L3405 21670 ldrh w1, [x24, #:lo12:.LANCHOR203] 21671 adrp x0, .LC201 21672 add x0, x0, :lo12:.LC201 21673 bl printf 21674.L3405: 21675 ldr w0, [x19, #:lo12:.LANCHOR19] 21676 tbz x0, 12, .L3406 21677 ldrh w1, [x20, #:lo12:.LANCHOR221] 21678 adrp x0, .LC202 21679 add x0, x0, :lo12:.LC202 21680 bl printf 21681.L3406: 21682 ldr w0, [x19, #:lo12:.LANCHOR19] 21683 tbz x0, 12, .L3407 21684 ldrh w1, [x26, #:lo12:.LANCHOR153] 21685 adrp x0, .LC203 21686 add x0, x0, :lo12:.LC203 21687 bl printf 21688.L3407: 21689 ldr w0, [x19, #:lo12:.LANCHOR19] 21690 tbz x0, 12, .L3408 21691 ldrh w1, [x25, #:lo12:.LANCHOR104] 21692 adrp x0, .LC204 21693 add x0, x0, :lo12:.LC204 21694 bl printf 21695.L3408: 21696 ldr w0, [x19, #:lo12:.LANCHOR19] 21697 tbz x0, 12, .L3409 21698 ldr x0, [x29, 104] 21699 ldrh w1, [x0, #:lo12:.LANCHOR107] 21700 adrp x0, .LC205 21701 add x0, x0, :lo12:.LC205 21702 bl printf 21703.L3409: 21704 bl zbuf_init 21705 adrp x25, .LANCHOR199 21706 mov w0, 16384 21707 bl ftl_malloc 21708 adrp x1, .LANCHOR194 21709 str x0, [x1, #:lo12:.LANCHOR194] 21710 mov w0, 16384 21711 bl ftl_malloc 21712 str x0, [x25, #:lo12:.LANCHOR199] 21713 mov w0, 16384 21714 bl ftl_malloc 21715 adrp x1, .LANCHOR189 21716 str x0, [x1, #:lo12:.LANCHOR189] 21717 mov w0, 6 21718 ldrh w1, [x23, #:lo12:.LANCHOR8] 21719 mul w0, w1, w0 21720 bl ftl_malloc 21721 adrp x1, .LANCHOR4 21722 str x0, [x1, #:lo12:.LANCHOR4] 21723 ldrb w1, [x21, #:lo12:.LANCHOR85] 21724 ldrh w0, [x22, #:lo12:.LANCHOR100] 21725 mul w0, w0, w1 21726 lsl w0, w0, 2 21727 bl ftl_malloc 21728 adrp x1, .LANCHOR124 21729 ldr x2, [x25, #:lo12:.LANCHOR199] 21730 adrp x25, .LANCHOR12 21731 str x0, [x1, #:lo12:.LANCHOR124] 21732 adrp x0, .LANCHOR123 21733 ldrh w1, [x22, #:lo12:.LANCHOR100] 21734 str x2, [x0, #:lo12:.LANCHOR123] 21735 ldrb w0, [x21, #:lo12:.LANCHOR85] 21736 mul w1, w1, w0 21737 lsl w0, w1, 1 21738 adrp x1, .LANCHOR11 21739 add x3, x2, x0, sxtw 2 21740 str x3, [x1, #:lo12:.LANCHOR11] 21741 ldrh w1, [x23, #:lo12:.LANCHOR8] 21742 add w1, w0, w1, lsr 1 21743 ldr w0, [x19, #:lo12:.LANCHOR19] 21744 add x1, x2, x1, sxtw 2 21745 str x1, [x25, #:lo12:.LANCHOR12] 21746 tbz x0, 12, .L3410 21747 adrp x0, .LC206 21748 add x0, x0, :lo12:.LC206 21749 bl printf 21750.L3410: 21751 ldrh w0, [x22, #:lo12:.LANCHOR100] 21752 ldrb w21, [x21, #:lo12:.LANCHOR85] 21753 ldrh w1, [x23, #:lo12:.LANCHOR8] 21754 ldrh w22, [x24, #:lo12:.LANCHOR203] 21755 mul w21, w0, w21 21756 ldr w0, [x19, #:lo12:.LANCHOR19] 21757 add w21, w1, w21, lsl 2 21758 lsl w1, w1, 2 21759 lsl w21, w21, 1 21760 add w22, w1, w22, lsl 2 21761 add w21, w21, 632 21762 add w22, w22, 704 21763 tbz x0, 12, .L3411 21764 ldrh w3, [x20, #:lo12:.LANCHOR221] 21765 adrp x0, .LC207 21766 mov w2, w22 21767 mov w1, w21 21768 add x0, x0, :lo12:.LC207 21769 bl printf 21770.L3411: 21771 ldrh w0, [x20, #:lo12:.LANCHOR221] 21772 cmp w21, w0 21773 bhi .L3412 21774 cmp w22, w0 21775 bls .L3413 21776.L3412: 21777.L3459: 21778 b .L3459 21779.L3390: 21780 add w1, w1, 1 21781 lsl w3, w3, 1 21782 and w1, w1, 65535 21783 b .L3389 21784.L3392: 21785 add w4, w4, 1 21786 lsl w1, w1, 1 21787 and w4, w4, 65535 21788 b .L3391 21789.L3395: 21790 adrp x0, .LANCHOR35 21791 ldrb w0, [x0, #:lo12:.LANCHOR35] 21792 cbz w0, .L3398 21793 mov w0, 1200 21794 strh w10, [x11, #:lo12:.LANCHOR131] 21795 strh w0, [x12, #:lo12:.LANCHOR132] 21796 strh w10, [x8, #:lo12:.LANCHOR151] 21797 b .L3398 21798.L3413: 21799 bl sblk_init 21800 bl ftl_info_blk_init 21801 cmn w0, #1 21802 beq .L3388 21803 bl ftl_ext_info_init 21804 adrp x19, .LANCHOR69 21805 bl gc_init 21806 mov w0, 1 21807 bl pm_init 21808 bl lpa_rebuild_hash 21809 ldr x0, [x25, #:lo12:.LANCHOR12] 21810 mov x1, 0 21811 add x0, x0, 16 21812 bl ftl_open_sblk_recovery 21813 ldr x0, [x25, #:lo12:.LANCHOR12] 21814 add x1, x0, 16 21815 add x0, x0, 48 21816 bl ftl_open_sblk_recovery 21817 ldr x1, [x19, #:lo12:.LANCHOR69] 21818 ldr w0, [x1, 8] 21819 add w0, w0, 16 21820 str w0, [x1, 8] 21821 ldr x0, [x25, #:lo12:.LANCHOR12] 21822 add x0, x0, 16 21823 bl ftl_info_data_recovery 21824 ldr x0, [x25, #:lo12:.LANCHOR12] 21825 add x0, x0, 48 21826 bl ftl_info_data_recovery 21827 ldr x0, [x25, #:lo12:.LANCHOR12] 21828 add x0, x0, 80 21829 bl ftl_info_data_recovery 21830 bl gc_recovery 21831 bl pm_flush 21832 mov w0, 1 21833 bl ftl_total_vpn_update 21834 adrp x0, .LANCHOR197 21835 ldrb w0, [x0, #:lo12:.LANCHOR197] 21836 cbz w0, .L3415 21837 ldr x1, [x19, #:lo12:.LANCHOR69] 21838 ldr w0, [x1, 68] 21839 add w0, w0, 1 21840 str w0, [x1, 68] 21841.L3415: 21842 bl ftl_ext_info_flush 21843 mov w0, 0 21844 bl ftl_info_flush 21845 mov w0, 0 21846.L3388: 21847 ldp x19, x20, [sp, 16] 21848 ldp x21, x22, [sp, 32] 21849 ldp x23, x24, [sp, 48] 21850 ldp x25, x26, [sp, 64] 21851 ldp x27, x28, [sp, 80] 21852 ldp x29, x30, [sp], 112 21853 ret 21854 .size zftl_init, .-zftl_init 21855 .section .text.rk_ftl_init,"ax",@progbits 21856 .align 2 21857 .global rk_ftl_init 21858 .type rk_ftl_init, %function 21859rk_ftl_init: 21860 stp x29, x30, [sp, -32]! 21861 add x29, sp, 0 21862 str x19, [sp, 16] 21863 bl nand_flash_init 21864 cbnz w0, .L3463 21865 bl zftl_init 21866.L3463: 21867 mov w19, w0 21868 bl idb_init 21869 mov w1, w19 21870 adrp x0, .LC208 21871 add x0, x0, :lo12:.LC208 21872 bl printf 21873 mov w0, w19 21874 ldr x19, [sp, 16] 21875 ldp x29, x30, [sp], 32 21876 ret 21877 .size rk_ftl_init, .-rk_ftl_init 21878 .section .text.gc_update_l2p_map_new,"ax",@progbits 21879 .align 2 21880 .global gc_update_l2p_map_new 21881 .type gc_update_l2p_map_new, %function 21882gc_update_l2p_map_new: 21883 stp x29, x30, [sp, -176]! 21884 adrp x0, .LANCHOR12 21885 adrp x1, .LANCHOR91 21886 add x29, sp, 0 21887 stp x21, x22, [sp, 32] 21888 ldr x21, [x0, #:lo12:.LANCHOR12] 21889 stp x25, x26, [sp, 64] 21890 ldrh w26, [x1, #:lo12:.LANCHOR91] 21891 add x1, x21, 80 21892 stp x23, x24, [sp, 48] 21893 adrp x24, .LANCHOR19 21894 stp x19, x20, [sp, 16] 21895 stp x27, x28, [sp, 80] 21896 stp x0, x1, [x29, 128] 21897 ldrb w1, [x1, 9] 21898 mul w26, w26, w1 21899 ldr w1, [x24, #:lo12:.LANCHOR19] 21900 tbz x1, 8, .L3466 21901 ldrh w1, [x21, 80] 21902 adrp x0, .LC209 21903 add x0, x0, :lo12:.LC209 21904 bl printf 21905.L3466: 21906 adrp x23, .LANCHOR11 21907 adrp x0, .LANCHOR224 21908 ldrh w2, [x21, 80] 21909 mov x22, 0 21910 ldr x1, [x23, #:lo12:.LANCHOR11] 21911 mov w25, 0 21912 ldrb w0, [x0, #:lo12:.LANCHOR224] 21913 sub w0, w26, w0 21914 strh w0, [x1, x2, lsl 1] 21915 adrp x0, .LANCHOR68 21916 add x0, x0, :lo12:.LANCHOR68 21917 str x0, [x29, 104] 21918.L3467: 21919 mov w28, w22 21920 cmp w26, w22 21921 bhi .L3477 21922 ldr w0, [x24, #:lo12:.LANCHOR19] 21923 tbz x0, 8, .L3478 21924 ldr x0, [x29, 128] 21925 mov w3, w25 21926 ldr x1, [x23, #:lo12:.LANCHOR11] 21927 ldrh w2, [x21, 80] 21928 ldr x0, [x0, #:lo12:.LANCHOR12] 21929 ldrh w2, [x1, x2, lsl 1] 21930 ldrh w1, [x0, 80] 21931 adrp x0, .LC212 21932 add x0, x0, :lo12:.LC212 21933 bl printf 21934.L3478: 21935 ldrh w1, [x21, 80] 21936 ldr x0, [x23, #:lo12:.LANCHOR11] 21937 ldrh w0, [x0, x1, lsl 1] 21938 cmp w25, w0 21939 beq .L3479 21940 adrp x1, .LANCHOR229 21941 adrp x0, .LC0 21942 mov w2, 898 21943 add x1, x1, :lo12:.LANCHOR229 21944 add x0, x0, :lo12:.LC0 21945 bl printf 21946.L3479: 21947 ldrh w1, [x21, 80] 21948 ldr x0, [x23, #:lo12:.LANCHOR11] 21949 strh w25, [x0, x1, lsl 1] 21950 ldrh w0, [x21, 80] 21951 bl zftl_insert_data_list 21952 ldp x19, x20, [sp, 16] 21953 ldp x21, x22, [sp, 32] 21954 ldp x23, x24, [sp, 48] 21955 ldp x25, x26, [sp, 64] 21956 ldp x27, x28, [sp, 80] 21957 ldp x29, x30, [sp], 176 21958 ret 21959.L3477: 21960 adrp x27, .LANCHOR160 21961 lsl x19, x22, 2 21962 ldr x0, [x27, #:lo12:.LANCHOR160] 21963 ldr w2, [x0, x19] 21964 cmn w2, #1 21965 beq .L3468 21966 adrp x0, .LANCHOR68 21967 ldrb w20, [x0, #:lo12:.LANCHOR68] 21968 lsl w20, w20, 7 21969 udiv w20, w2, w20 21970 and w0, w20, 65535 21971 str w0, [x29, 156] 21972 ldr w0, [x24, #:lo12:.LANCHOR19] 21973 tbz x0, 8, .L3469 21974 ldr w1, [x29, 156] 21975 adrp x0, .LC210 21976 mov w3, w22 21977 add x0, x0, :lo12:.LC210 21978 bl printf 21979.L3469: 21980 sub w28, w26, w28 21981 add x28, x28, x22 21982 lsl x0, x28, 2 21983 str x0, [x29, 144] 21984 adrp x0, .LC211 21985 add x0, x0, :lo12:.LC211 21986 str x0, [x29, 120] 21987 adrp x0, .LANCHOR80 21988 add x0, x0, :lo12:.LANCHOR80 21989 str x0, [x29, 112] 21990.L3470: 21991 ldr x0, [x29, 144] 21992 cmp x0, x19 21993 bne .L3476 21994.L3468: 21995 add x22, x22, 1 21996 b .L3467 21997.L3476: 21998 ldr x0, [x27, #:lo12:.LANCHOR160] 21999 ldr w20, [x0, x19] 22000 cmn w20, #1 22001 beq .L3471 22002 ldr x0, [x29, 104] 22003 ldr w1, [x29, 156] 22004 ldrb w0, [x0] 22005 lsl w0, w0, 7 22006 udiv w0, w20, w0 22007 cmp w1, w0, uxth 22008 bne .L3471 22009 adrp x0, .LANCHOR161 22010 ldr x0, [x0, #:lo12:.LANCHOR161] 22011 ldr w28, [x0, x19] 22012 mov w0, w20 22013 bl lpa_hash_get_ppa 22014 str w0, [x29, 172] 22015 cmn w0, #1 22016 bne .L3472 22017 mov w2, 0 22018 add x1, x29, 172 22019 mov w0, w20 22020 bl pm_log2phys 22021.L3472: 22022 ldr w3, [x29, 172] 22023 cmp w28, w3 22024 bne .L3473 22025 adrp x0, .LANCHOR162 22026 mov w2, 1 22027 add x1, x29, 168 22028 add w25, w25, 1 22029 ldr x0, [x0, #:lo12:.LANCHOR162] 22030 ldr w0, [x0, x19] 22031 str w0, [x29, 168] 22032 mov w0, w20 22033 bl pm_log2phys 22034 ldr x0, [x29, 112] 22035 ldrh w2, [x0] 22036 adrp x0, .LANCHOR31 22037 ldrb w1, [x0, #:lo12:.LANCHOR31] 22038 mov w0, 24 22039 lsr w28, w28, w2 22040 sub w0, w0, w1 22041 sub w1, w0, w2 22042 mov w0, 1 22043 lsl w0, w0, w1 22044 sub w0, w0, #1 22045 and w28, w0, w28 22046 adrp x0, .LANCHOR81 22047 ldrb w0, [x0, #:lo12:.LANCHOR81] 22048 udiv w0, w28, w0 22049.L3499: 22050 bl ftl_vpn_decrement 22051 ldr x0, [x27, #:lo12:.LANCHOR160] 22052 mov w1, -1 22053 str w1, [x0, x19] 22054.L3471: 22055 add x19, x19, 4 22056 b .L3470 22057.L3473: 22058 ldr w0, [x24, #:lo12:.LANCHOR19] 22059 tbz x0, 8, .L3475 22060 ldr x0, [x29, 120] 22061 mov w2, w28 22062 mov w1, w20 22063 bl printf 22064.L3475: 22065 ldr x0, [x29, 136] 22066 ldrh w0, [x0] 22067 b .L3499 22068 .size gc_update_l2p_map_new, .-gc_update_l2p_map_new 22069 .section .text.gc_scan_src_blk_one_page,"ax",@progbits 22070 .align 2 22071 .global gc_scan_src_blk_one_page 22072 .type gc_scan_src_blk_one_page, %function 22073gc_scan_src_blk_one_page: 22074 stp x29, x30, [sp, -96]! 22075 mov w3, 0 22076 mov w4, 0 22077 mov w5, 65535 22078 add x29, sp, 0 22079 stp x19, x20, [sp, 16] 22080 adrp x20, .LANCHOR76 22081 add x1, x20, :lo12:.LANCHOR76 22082 stp x21, x22, [sp, 32] 22083 stp x23, x24, [sp, 48] 22084 adrp x21, .LANCHOR85 22085 stp x25, x26, [sp, 64] 22086 ldrb w6, [x21, #:lo12:.LANCHOR85] 22087 ldrb w0, [x1, 4] 22088 add x2, x1, x0, sxtw 1 22089 ldrh w22, [x2, 40] 22090 ldrh w2, [x1, 2] 22091.L3501: 22092 cmp w22, w5 22093 beq .L3503 22094 cbz w4, .L3504 22095 add x1, x20, :lo12:.LANCHOR76 22096 strh w2, [x1, 2] 22097.L3504: 22098 cbz w3, .L3505 22099 add x1, x20, :lo12:.LANCHOR76 22100 strb w0, [x1, 4] 22101.L3505: 22102 mov w0, 1 22103 adrp x23, .LANCHOR117 22104 bl buf_alloc 22105 adrp x24, .LANCHOR35 22106 mov x25, x0 22107 add x23, x23, :lo12:.LANCHOR117 22108 add x24, x24, :lo12:.LANCHOR35 22109 mov w26, 1 22110.L3506: 22111 add x19, x20, :lo12:.LANCHOR76 22112 ldrb w1, [x19, 6] 22113 cmp w26, w1 22114 ble .L3516 22115 mov x0, x25 22116 bl zbuf_free 22117 ldrb w0, [x19, 4] 22118 ldrb w1, [x21, #:lo12:.LANCHOR85] 22119 add w0, w0, 1 22120 and w0, w0, 255 22121 strb w0, [x19, 4] 22122 cmp w1, w0 22123 bne .L3500 22124 ldrh w0, [x19, 2] 22125 strb wzr, [x19, 4] 22126 add w0, w0, 1 22127 strh w0, [x19, 2] 22128.L3500: 22129 ldp x19, x20, [sp, 16] 22130 ldp x21, x22, [sp, 32] 22131 ldp x23, x24, [sp, 48] 22132 ldp x25, x26, [sp, 64] 22133 ldp x29, x30, [sp], 96 22134 ret 22135.L3503: 22136 add w0, w0, 1 22137 and w0, w0, 255 22138 cmp w0, w6 22139 bne .L3502 22140 add w2, w2, 1 22141 mov w0, 0 22142 and w2, w2, 65535 22143 mov w4, 1 22144.L3502: 22145 add x3, x1, x0, sxtw 1 22146 ldrh w22, [x3, 40] 22147 mov w3, 1 22148 b .L3501 22149.L3516: 22150 ldrh w0, [x23] 22151 cmp w1, 2 22152 mul w0, w0, w22 22153 bne .L3507 22154 ldrh w1, [x19, 2] 22155 lsl w1, w1, 1 22156.L3526: 22157 sub w1, w1, #1 22158 add w0, w26, w0 22159 add w0, w1, w0 22160 adrp x1, .LANCHOR84 22161 ldrb w1, [x1, #:lo12:.LANCHOR84] 22162 orr w0, w0, w1, lsl 24 22163.L3525: 22164 str w0, [x25, 40] 22165 mov w1, 1 22166 mov x0, x25 22167 bl sblk_read_page 22168 ldr w0, [x25, 52] 22169 cmp w0, 512 22170 ccmn w0, #1, 4, ne 22171 beq .L3513 22172 ldr x0, [x25, 24] 22173 ldr w19, [x0, 4] 22174 mov w0, w19 22175 bl lpa_hash_get_ppa 22176 str w0, [x29, 92] 22177 cmn w0, #1 22178 bne .L3514 22179 adrp x0, .LANCHOR219 22180 ldr w0, [x0, #:lo12:.LANCHOR219] 22181 cmp w19, w0 22182 bcs .L3514 22183 mov w2, 0 22184 add x1, x29, 92 22185 mov w0, w19 22186 bl pm_log2phys 22187.L3514: 22188 ldr w2, [x25, 40] 22189 ldr w0, [x29, 92] 22190 cmp w2, w0 22191 bne .L3513 22192 add x1, x20, :lo12:.LANCHOR76 22193 adrp x4, .LANCHOR82 22194 ldr x4, [x4, #:lo12:.LANCHOR82] 22195 ldrh w0, [x1, 24] 22196 ubfiz x3, x0, 2, 16 22197 add w0, w0, 1 22198 str w2, [x4, x3] 22199 strh w0, [x1, 24] 22200.L3513: 22201 add x1, x20, :lo12:.LANCHOR76 22202 add w26, w26, 1 22203 ldrh w0, [x1, 26] 22204 add w0, w0, 1 22205 strh w0, [x1, 26] 22206 b .L3506 22207.L3507: 22208 cmp w1, 3 22209 bne .L3509 22210 ldrb w1, [x24] 22211 cbnz w1, .L3510 22212 adrp x1, .LANCHOR36 22213 ldrb w1, [x1, #:lo12:.LANCHOR36] 22214 cbz w1, .L3511 22215.L3510: 22216 add x1, x20, :lo12:.LANCHOR76 22217 ldrh w1, [x1, 2] 22218 add w1, w1, w1, lsl 1 22219 b .L3526 22220.L3511: 22221 ldrh w1, [x19, 2] 22222 add w0, w1, w0 22223 orr w0, w0, w26, lsl 24 22224 b .L3525 22225.L3509: 22226 ldrh w1, [x19, 2] 22227 add w0, w1, w0 22228 b .L3525 22229 .size gc_scan_src_blk_one_page, .-gc_scan_src_blk_one_page 22230 .section .text.gc_scan_src_blk,"ax",@progbits 22231 .align 2 22232 .global gc_scan_src_blk 22233 .type gc_scan_src_blk, %function 22234gc_scan_src_blk: 22235 stp x29, x30, [sp, -112]! 22236 mov w0, 65535 22237 add x29, sp, 0 22238 stp x21, x22, [sp, 32] 22239 adrp x21, .LANCHOR76 22240 stp x19, x20, [sp, 16] 22241 ldrh w1, [x21, #:lo12:.LANCHOR76] 22242 stp x23, x24, [sp, 48] 22243 stp x25, x26, [sp, 64] 22244 cmp w1, w0 22245 stp x27, x28, [sp, 80] 22246 bne .L3528 22247 adrp x1, .LANCHOR230 22248 adrp x0, .LC0 22249 mov w2, 1505 22250 add x1, x1, :lo12:.LANCHOR230 22251 add x0, x0, :lo12:.LC0 22252 bl printf 22253.L3528: 22254 ldrh w1, [x21, #:lo12:.LANCHOR76] 22255 mov w0, 65535 22256 cmp w1, w0 22257 beq .L3558 22258 adrp x0, .LANCHOR19 22259 ldr w0, [x0, #:lo12:.LANCHOR19] 22260 tbz x0, 8, .L3530 22261 adrp x2, .LANCHOR11 22262 ubfiz x0, x1, 1, 16 22263 ldr x2, [x2, #:lo12:.LANCHOR11] 22264 ldrh w2, [x2, x0] 22265 adrp x0, .LC213 22266 add x0, x0, :lo12:.LC213 22267 bl printf 22268.L3530: 22269 ldrh w0, [x21, #:lo12:.LANCHOR76] 22270 add x14, x21, :lo12:.LANCHOR76 22271 add x1, x14, 40 22272 bl ftl_get_blk_list_in_sblk 22273 and w1, w0, 255 22274 strb w1, [x14, 5] 22275 cbnz w1, .L3531 22276 mov w0, -1 22277 strh w0, [x21, #:lo12:.LANCHOR76] 22278.L3558: 22279 mov w0, 0 22280 b .L3527 22281.L3531: 22282 adrp x4, .LANCHOR9 22283 ldrh w3, [x21, #:lo12:.LANCHOR76] 22284 mov x19, x4 22285 ldr x1, [x4, #:lo12:.LANCHOR9] 22286 mov x2, x3 22287 add x1, x1, x3, lsl 2 22288 ldrb w1, [x1, 2] 22289 and w1, w1, 224 22290 cmp w1, 32 22291 beq .L3532 22292 cmp w1, 224 22293 beq .L3532 22294 cbz w1, .L3533 22295 adrp x1, .LANCHOR12 22296 ldr x1, [x1, #:lo12:.LANCHOR12] 22297 ldrh w3, [x1, 16] 22298 cmp w3, w2 22299 beq .L3532 22300 ldrh w3, [x1, 48] 22301 cmp w3, w2 22302 beq .L3532 22303 ldrh w1, [x1, 80] 22304 cmp w1, w2 22305 bne .L3578 22306.L3532: 22307 add x0, x21, :lo12:.LANCHOR76 22308 mov w1, -1 22309 strh w1, [x21, #:lo12:.LANCHOR76] 22310 strh wzr, [x0, 24] 22311 b .L3558 22312.L3533: 22313 adrp x0, .LANCHOR11 22314 mov x19, x0 22315 ldr x1, [x0, #:lo12:.LANCHOR11] 22316 ldrh w1, [x1, x3, lsl 1] 22317 cbz w1, .L3535 22318 adrp x1, .LANCHOR230 22319 adrp x0, .LC0 22320 mov w2, 1530 22321 add x1, x1, :lo12:.LANCHOR230 22322 add x0, x0, :lo12:.LC0 22323 bl printf 22324.L3535: 22325 ldrh w1, [x21, #:lo12:.LANCHOR76] 22326 ldr x0, [x19, #:lo12:.LANCHOR11] 22327 strh wzr, [x0, x1, lsl 1] 22328 b .L3532 22329.L3578: 22330 and w0, w0, 255 22331 sub w0, w0, #1 22332 add x0, x14, x0, sxtw 1 22333 ldrh w24, [x0, 40] 22334 mov w0, 65535 22335 cmp w24, w0 22336 bne .L3536 22337 adrp x1, .LANCHOR230 22338 adrp x0, .LC0 22339 mov w2, 1540 22340 add x1, x1, :lo12:.LANCHOR230 22341 add x0, x0, :lo12:.LC0 22342 bl printf 22343.L3536: 22344 ldrh w1, [x21, #:lo12:.LANCHOR76] 22345 adrp x23, .LANCHOR117 22346 ldr x2, [x19, #:lo12:.LANCHOR9] 22347 adrp x22, .LANCHOR100 22348 ldrh w20, [x23, #:lo12:.LANCHOR117] 22349 ldrh w0, [x22, #:lo12:.LANCHOR100] 22350 add x1, x2, x1, lsl 2 22351 sub w0, w0, #1 22352 and w0, w0, 65535 22353 mul w20, w20, w24 22354 ldrb w1, [x1, 2] 22355 and w1, w1, 224 22356 cmp w1, 160 22357 bne .L3559 22358 adrp x1, .LANCHOR84 22359 ldrb w1, [x1, #:lo12:.LANCHOR84] 22360 and w27, w1, 65535 22361 cmp w1, 2 22362 orr w20, w20, w1, lsl 24 22363 bne .L3538 22364 adrp x0, .LANCHOR91 22365 ldrh w0, [x0, #:lo12:.LANCHOR91] 22366 sub w0, w0, #1 22367 and w0, w0, 65535 22368.L3538: 22369 adrp x1, .LANCHOR35 22370 ldrb w1, [x1, #:lo12:.LANCHOR35] 22371 cbnz w1, .L3539 22372 adrp x1, .LANCHOR36 22373 ldrb w1, [x1, #:lo12:.LANCHOR36] 22374 cbz w1, .L3537 22375.L3539: 22376 adrp x0, .LANCHOR91 22377 ldrh w0, [x0, #:lo12:.LANCHOR91] 22378 sub w0, w0, #1 22379 and w0, w0, 65535 22380.L3537: 22381 add x25, x21, :lo12:.LANCHOR76 22382 orr w20, w0, w20 22383 mov w0, 1 22384 strb w27, [x25, 6] 22385 strh wzr, [x25, 2] 22386 strb wzr, [x25, 4] 22387 strh wzr, [x25, 26] 22388 strh wzr, [x25, 28] 22389 bl buf_alloc 22390 mov x19, x0 22391 str w20, [x0, 40] 22392 mov w1, 1 22393 bl sblk_read_page 22394 strh wzr, [x25, 24] 22395 ldr w0, [x19, 52] 22396 cmp w0, 512 22397 ccmn w0, #1, 4, ne 22398 bne .L3540 22399.L3583: 22400 mov x0, x19 22401 bl zbuf_free 22402.L3581: 22403 mov w0, -1 22404.L3527: 22405 ldp x19, x20, [sp, 16] 22406 ldp x21, x22, [sp, 32] 22407 ldp x23, x24, [sp, 48] 22408 ldp x25, x26, [sp, 64] 22409 ldp x27, x28, [sp, 80] 22410 ldp x29, x30, [sp], 112 22411 ret 22412.L3559: 22413 mov w27, 1 22414 b .L3537 22415.L3540: 22416 ldr x7, [x19, 24] 22417 mov w0, 15555 22418 movk w0, 0xf55f, lsl 16 22419 ldr w1, [x7] 22420 cmp w1, w0 22421 beq .L3541 22422 mov w2, 1578 22423.L3584: 22424 adrp x1, .LANCHOR230 22425 adrp x0, .LC0 22426 add x1, x1, :lo12:.LANCHOR230 22427 add x0, x0, :lo12:.LC0 22428 bl printf 22429 b .L3583 22430.L3541: 22431 adrp x0, .LANCHOR85 22432 ldrh w26, [x22, #:lo12:.LANCHOR100] 22433 ldrb w25, [x0, #:lo12:.LANCHOR85] 22434 adrp x0, .LANCHOR224 22435 ldrb w0, [x0, #:lo12:.LANCHOR224] 22436 mul w26, w25, w26 22437 cmp w0, 2 22438 mul w26, w27, w26 22439 and w26, w26, 65535 22440 bne .L3542 22441 cmp w27, 3 22442 bne .L3542 22443 adrp x1, .LANCHOR91 22444 adrp x28, .LANCHOR221 22445 adrp x27, .LANCHOR82 22446 ldrh w1, [x1, #:lo12:.LANCHOR91] 22447 ldrh w0, [x28, #:lo12:.LANCHOR221] 22448 ldr x3, [x27, #:lo12:.LANCHOR82] 22449 ubfiz w1, w1, 2, 14 22450 mul w25, w25, w1 22451 ldr x1, [x19, 8] 22452 sub w25, w25, w0 22453 and x0, x0, 65532 22454 and w25, w25, 65535 22455 add x0, x3, x0 22456 mov w2, w25 22457 bl ftl_memcpy 22458 ldr x0, [x19, 24] 22459 ldr w6, [x0, 4] 22460 cbz w6, .L3543 22461 ldr x0, [x19, 8] 22462 mov w1, w25 22463 bl js_hash 22464 cmp w6, w0 22465 beq .L3543 22466 mov x0, x19 22467 bl zbuf_free 22468 ldr x0, [x19, 24] 22469 mov w3, w25 22470.L3582: 22471 ldr w1, [x0, 4] 22472 adrp x0, .LC214 22473 ldr w2, [x19, 40] 22474 add x0, x0, :lo12:.LC214 22475 bl printf 22476 b .L3581 22477.L3543: 22478 adrp x0, .LANCHOR35 22479 ldrb w0, [x0, #:lo12:.LANCHOR35] 22480 cbnz w0, .L3544 22481 adrp x0, .LANCHOR36 22482 ldrb w0, [x0, #:lo12:.LANCHOR36] 22483 cbz w0, .L3545 22484.L3544: 22485 sub w0, w20, #1 22486 str w0, [x19, 40] 22487.L3546: 22488 mov w1, 1 22489 mov x0, x19 22490 bl sblk_read_page 22491 ldr w0, [x19, 52] 22492 cmp w0, 512 22493 ccmn w0, #1, 4, ne 22494 beq .L3583 22495 ldr x0, [x19, 24] 22496 ldr w1, [x0] 22497 mov w0, 15555 22498 movk w0, 0xf55f, lsl 16 22499 cmp w1, w0 22500 beq .L3548 22501 mov w2, 1619 22502 b .L3584 22503.L3545: 22504 ldrh w1, [x23, #:lo12:.LANCHOR117] 22505 ldrh w0, [x22, #:lo12:.LANCHOR100] 22506 sub w0, w0, #1 22507 and w0, w0, 65535 22508 mul w24, w1, w24 22509 orr w0, w0, 33554432 22510 orr w24, w0, w24 22511 str w24, [x19, 40] 22512 b .L3546 22513.L3548: 22514 ldrh w2, [x28, #:lo12:.LANCHOR221] 22515 ldr x0, [x27, #:lo12:.LANCHOR82] 22516 ldr x1, [x19, 8] 22517.L3580: 22518 adrp x20, .LANCHOR82 22519 bl ftl_memcpy 22520 adrp x22, .LANCHOR80 22521 adrp x23, .LANCHOR31 22522 ldr x24, [x20, #:lo12:.LANCHOR82] 22523 add x22, x22, :lo12:.LANCHOR80 22524 add x23, x23, :lo12:.LANCHOR31 22525 mov x25, 0 22526.L3551: 22527 cmp w26, w25 22528 bgt .L3556 22529 mov x0, x19 22530 bl zbuf_free 22531 adrp x0, .LANCHOR11 22532 ldrh w1, [x21, #:lo12:.LANCHOR76] 22533 add x3, x21, :lo12:.LANCHOR76 22534 mov x19, x0 22535 ldr x4, [x0, #:lo12:.LANCHOR11] 22536 ubfiz x2, x1, 1, 16 22537 ldrh w3, [x3, 24] 22538 ldrh w2, [x4, x2] 22539 cmp w2, w3 22540 beq .L3557 22541 adrp x0, .LC215 22542 add x0, x0, :lo12:.LC215 22543 bl printf 22544.L3557: 22545 add x0, x21, :lo12:.LANCHOR76 22546 ldrh w2, [x21, #:lo12:.LANCHOR76] 22547 ldr x1, [x19, #:lo12:.LANCHOR11] 22548 ldrh w3, [x0, 24] 22549 strh w3, [x1, x2, lsl 1] 22550 strh wzr, [x0, 28] 22551 ldrh w0, [x0, 24] 22552 b .L3527 22553.L3542: 22554 ldr x6, [x19, 8] 22555 lsl w20, w26, 2 22556 mov w1, w20 22557 mov x0, x6 22558 bl js_hash 22559 ldr w1, [x7, 4] 22560 cmp w1, w0 22561 beq .L3550 22562 mov x0, x19 22563 bl zbuf_free 22564 mov w3, w20 22565 ldr x0, [x19, 24] 22566 b .L3582 22567.L3550: 22568 adrp x0, .LANCHOR82 22569 mov w2, w20 22570 mov x1, x6 22571 ldr x0, [x0, #:lo12:.LANCHOR82] 22572 b .L3580 22573.L3556: 22574 ldr w0, [x24, x25, lsl 2] 22575 cmn w0, #1 22576 beq .L3553 22577 bl lpa_hash_get_ppa 22578 str w0, [x29, 108] 22579 cmn w0, #1 22580 bne .L3554 22581 ldr w0, [x24, x25, lsl 2] 22582 mov w2, 0 22583 add x1, x29, 108 22584 bl pm_log2phys 22585.L3554: 22586 ldrb w0, [x23] 22587 mov w1, 24 22588 ldrh w2, [x22] 22589 sub w0, w1, w0 22590 ldr w3, [x29, 108] 22591 sub w1, w0, w2 22592 mov w0, 1 22593 lsl w0, w0, w1 22594 adrp x1, .LANCHOR81 22595 sub w0, w0, #1 22596 lsr w2, w3, w2 22597 ldrb w1, [x1, #:lo12:.LANCHOR81] 22598 and w0, w0, w2 22599 ldrh w2, [x21, #:lo12:.LANCHOR76] 22600 udiv w0, w0, w1 22601 add x1, x21, :lo12:.LANCHOR76 22602 cmp w0, w2 22603 bne .L3553 22604 ldrh w0, [x1, 24] 22605 ldr x4, [x20, #:lo12:.LANCHOR82] 22606 ubfiz x2, x0, 2, 16 22607 add w0, w0, 1 22608 str w3, [x4, x2] 22609 strh w0, [x1, 24] 22610.L3553: 22611 add x25, x25, 1 22612 b .L3551 22613 .size gc_scan_src_blk, .-gc_scan_src_blk 22614 .section .text.gc_scan_static_data,"ax",@progbits 22615 .align 2 22616 .global gc_scan_static_data 22617 .type gc_scan_static_data, %function 22618gc_scan_static_data: 22619 stp x29, x30, [sp, -80]! 22620 add x29, sp, 0 22621 stp x19, x20, [sp, 16] 22622 adrp x19, .LANCHOR12 22623 stp x21, x22, [sp, 32] 22624 ldr x0, [x19, #:lo12:.LANCHOR12] 22625 ldr w1, [x0, 544] 22626 str x23, [sp, 48] 22627 cmn w1, #1 22628 beq .L3586 22629 adrp x21, .LANCHOR231 22630 adrp x22, .LC0 22631 add x21, x21, :lo12:.LANCHOR231 22632 add x22, x22, :lo12:.LC0 22633 mov w20, 0 22634.L3594: 22635 ldr x0, [x19, #:lo12:.LANCHOR12] 22636 mov w2, 0 22637 add x1, x29, 76 22638 ldr w0, [x0, 544] 22639 bl pm_log2phys 22640 ldr w0, [x29, 76] 22641 cmn w0, #1 22642 beq .L3587 22643 mov w0, 1 22644 bl buf_alloc 22645 ldr w1, [x29, 76] 22646 mov x23, x0 22647 str w1, [x0, 40] 22648 mov w1, 1 22649 bl sblk_read_page 22650 ldr w0, [x23, 52] 22651 cmp w0, 256 22652 bne .L3588 22653 adrp x0, .LANCHOR80 22654 ldr w2, [x29, 76] 22655 ldrh w3, [x0, #:lo12:.LANCHOR80] 22656 adrp x0, .LANCHOR31 22657 ldrb w1, [x0, #:lo12:.LANCHOR31] 22658 mov w0, 24 22659 lsr w2, w2, w3 22660 sub w0, w0, w1 22661 mov w1, 1 22662 sub w0, w0, w3 22663 lsl w0, w1, w0 22664 sub w0, w0, #1 22665 and w0, w0, w2 22666 adrp x2, .LANCHOR81 22667 ldrb w3, [x2, #:lo12:.LANCHOR81] 22668 mov w2, 0 22669 udiv w0, w0, w3 22670 bl gc_add_sblk 22671.L3588: 22672 ldr x0, [x19, #:lo12:.LANCHOR12] 22673 ldr x1, [x23, 24] 22674 ldr w0, [x0, 544] 22675 ldr w1, [x1, 4] 22676 cmp w1, w0 22677 beq .L3589 22678 mov w2, 2163 22679 mov x1, x21 22680 mov x0, x22 22681 bl printf 22682.L3589: 22683 mov x0, x23 22684 bl zbuf_free 22685.L3587: 22686 ldr x0, [x19, #:lo12:.LANCHOR12] 22687 adrp x2, .LANCHOR219 22688 ldr w2, [x2, #:lo12:.LANCHOR219] 22689 ldr w1, [x0, 544] 22690 add w1, w1, 1 22691 str w1, [x0, 544] 22692 cmp w1, w2 22693 bcc .L3590 22694 mov w1, -1 22695 str w1, [x0, 544] 22696 ldr w1, [x0, 548] 22697 add w1, w1, 1 22698 str w1, [x0, 548] 22699 bl ftl_flush 22700 bl pm_flush 22701 bl ftl_ext_info_flush 22702 mov w0, 0 22703 bl ftl_info_flush 22704.L3585: 22705 ldp x19, x20, [sp, 16] 22706 ldp x21, x22, [sp, 32] 22707 ldr x23, [sp, 48] 22708 ldp x29, x30, [sp], 80 22709 ret 22710.L3590: 22711 ldr w0, [x29, 76] 22712 cmn w0, #1 22713 bne .L3585 22714 adrp x1, .LANCHOR221 22715 add w0, w20, 1 22716 and w0, w0, 65535 22717 ldrh w1, [x1, #:lo12:.LANCHOR221] 22718 cmp w20, w1, lsr 2 22719 bcs .L3585 22720 mov w20, w0 22721 b .L3594 22722.L3586: 22723 ldr w1, [x0, 536] 22724 adrp x3, .LANCHOR69 22725 ldr w2, [x0, 12] 22726 add w1, w1, 12959744 22727 add w1, w1, 256 22728 cmp w2, w1 22729 bhi .L3596 22730 ldr x4, [x3, #:lo12:.LANCHOR69] 22731 mov w5, 5000 22732 ldr w1, [x0, 540] 22733 add w1, w1, w5 22734 ldr w4, [x4, 44] 22735 cmp w4, w1 22736 bls .L3585 22737.L3596: 22738 ldr x1, [x3, #:lo12:.LANCHOR69] 22739 ldr w1, [x1, 44] 22740 str w1, [x0, 540] 22741 str w2, [x0, 536] 22742 str wzr, [x0, 544] 22743 b .L3585 22744 .size gc_scan_static_data, .-gc_scan_static_data 22745 .section .text.ftl_sblk_dump,"ax",@progbits 22746 .align 2 22747 .global ftl_sblk_dump 22748 .type ftl_sblk_dump, %function 22749ftl_sblk_dump: 22750 sub sp, sp, #288 22751 and x0, x0, 65535 22752 stp x29, x30, [sp, 48] 22753 add x29, sp, 48 22754 stp x23, x24, [sp, 96] 22755 adrp x24, .LANCHOR9 22756 lsl x23, x0, 2 22757 stp x19, x20, [sp, 64] 22758 str x0, [x29, 144] 22759 mov x20, x0 22760 ldr x0, [x24, #:lo12:.LANCHOR9] 22761 str x1, [x29, 160] 22762 add x1, x0, x23 22763 stp x21, x22, [sp, 80] 22764 stp x25, x26, [sp, 112] 22765 ldr w5, [x0, x23] 22766 ldrb w2, [x1, 2] 22767 mov w1, w20 22768 ldrh w4, [x0, x23] 22769 adrp x0, .LC216 22770 stp x27, x28, [sp, 128] 22771 ubfx x5, x5, 11, 8 22772 ubfx x3, x2, 3, 2 22773 and w4, w4, 2047 22774 ubfx x2, x2, 5, 3 22775 add x0, x0, :lo12:.LC216 22776 bl printf 22777 mov w0, 65535 22778 cmp w20, w0 22779 beq .L3625 22780 adrp x0, .LANCHOR8 22781 ldrh w0, [x0, #:lo12:.LANCHOR8] 22782 cmp w0, w20 22783 bls .L3625 22784 ldr x0, [x24, #:lo12:.LANCHOR9] 22785 add x0, x0, x23 22786 ldrb w0, [x0, 2] 22787 and w0, w0, 224 22788 cmp w0, 160 22789 bne .L3626 22790 adrp x0, .LANCHOR84 22791 ldrb w25, [x0, #:lo12:.LANCHOR84] 22792.L3604: 22793 add x28, x29, 240 22794 adrp x21, .LANCHOR100 22795 mov w0, w20 22796 mov w19, 0 22797 strh w20, [x28, -32]! 22798 add x1, x28, 16 22799 bl ftl_get_blk_list_in_sblk 22800 ldrh w2, [x21, #:lo12:.LANCHOR100] 22801 and w1, w0, 255 22802 strb w1, [x29, 217] 22803 and w4, w0, 255 22804 strb wzr, [x29, 213] 22805 mov w3, w25 22806 strh wzr, [x29, 210] 22807 adrp x0, .LC217 22808 mul w1, w1, w2 22809 strh wzr, [x29, 218] 22810 strh w1, [x29, 214] 22811 add x0, x0, :lo12:.LC217 22812 ldr x1, [x24, #:lo12:.LANCHOR9] 22813 add x1, x1, x23 22814 ldrb w2, [x1, 2] 22815 mov w1, w20 22816 ubfx x2, x2, 5, 3 22817 bl printf 22818 mov w0, 1 22819 bl buf_alloc 22820 str x21, [x29, 136] 22821 mov x26, x0 22822 stp wzr, wzr, [x29, 168] 22823 adrp x0, .LANCHOR117 22824 str wzr, [x29, 176] 22825 add x0, x0, :lo12:.LANCHOR117 22826 str x0, [x29, 112] 22827.L3605: 22828 ldr x0, [x29, 136] 22829 ldrh w0, [x0, #:lo12:.LANCHOR100] 22830 cmp w0, w19 22831 bls .L3622 22832 lsl w0, w19, 1 22833 mov w22, 0 22834 sub w1, w0, #1 22835 add w0, w0, w19 22836 sub w0, w0, #1 22837 stp w1, w0, [x29, 152] 22838 adrp x0, .LC161 22839 add x0, x0, :lo12:.LC161 22840 str x0, [x29, 120] 22841 b .L3623 22842.L3626: 22843 mov w25, 1 22844 b .L3604 22845.L3619: 22846 ldr x0, [x29, 128] 22847 ldrh w11, [x28, x0] 22848 mov w0, 65535 22849 cmp w11, w0 22850 beq .L3606 22851 ldr x0, [x29, 112] 22852 cmp w25, 3 22853 ldrh w8, [x0] 22854 mul w1, w8, w11 22855 add w0, w21, w1 22856 bne .L3607 22857 adrp x2, .LANCHOR35 22858 ldrb w2, [x2, #:lo12:.LANCHOR35] 22859 cbz w2, .L3608 22860 adrp x1, .LANCHOR84 22861 ldrb w8, [x1, #:lo12:.LANCHOR84] 22862 ldr w1, [x29, 156] 22863.L3635: 22864 add w0, w0, w1 22865 orr w27, w0, w8, lsl 24 22866 b .L3609 22867.L3608: 22868 adrp x2, .LANCHOR36 22869 lsl w8, w21, 24 22870 ldrb w2, [x2, #:lo12:.LANCHOR36] 22871 cbz w2, .L3610 22872 ldr w1, [x29, 156] 22873 add w0, w0, w1 22874 orr w27, w0, w8 22875.L3609: 22876 str w27, [x26, 40] 22877 mov w1, 1 22878 str w11, [x29, 100] 22879 mov x0, x26 22880 bl sblk_read_page 22881 ldr x1, [x26, 24] 22882 mov w3, w27 22883 ldr x0, [x26, 8] 22884 ldr w12, [x26, 52] 22885 ldr w11, [x29, 100] 22886 ldr w2, [x1, 12] 22887 mov w4, w12 22888 str w2, [sp, 32] 22889 str w12, [x29, 104] 22890 ldr w2, [x1, 8] 22891 str w2, [sp, 24] 22892 ldr w2, [x1, 4] 22893 str w2, [sp, 16] 22894 mov w2, w19 22895 ldr w1, [x1] 22896 str w1, [sp, 8] 22897 ldr w1, [x0, 12] 22898 str w1, [sp] 22899 mov w1, w11 22900 ldp w5, w6, [x0] 22901 ldr w7, [x0, 8] 22902 ldr x0, [x29, 120] 22903 bl printf 22904 ldr w12, [x29, 104] 22905 mov w1, 32 22906 ldr w0, [x29, 168] 22907 cmp w12, 512 22908 ccmn w12, #1, 4, ne 22909 csinc w0, w0, wzr, ne 22910 str w0, [x29, 168] 22911 ldr x0, [x24, #:lo12:.LANCHOR9] 22912 add x0, x0, x23 22913 ldrb w0, [x0, 2] 22914 and w0, w0, 224 22915 cmp w0, 224 22916 ccmp w0, w1, 4, ne 22917 beq .L3606 22918 ldr x0, [x26, 24] 22919 ldr w0, [x0, 4] 22920 bl lpa_hash_get_ppa 22921 str w0, [x29, 204] 22922 cmn w0, #1 22923 bne .L3613 22924 ldr x0, [x26, 24] 22925 mov w2, 0 22926 add x1, x29, 204 22927 ldr w0, [x0, 4] 22928 bl pm_log2phys 22929.L3613: 22930 ldr w0, [x29, 204] 22931 cmp w27, w0 22932 bne .L3614 22933 ldr w0, [x29, 172] 22934 mov w1, w27 22935 add w0, w0, 1 22936 str w0, [x29, 172] 22937 ldr x0, [x26, 24] 22938 ldr w3, [x29, 172] 22939 ldr w2, [x0, 4] 22940 adrp x0, .LC218 22941 add x0, x0, :lo12:.LC218 22942 bl printf 22943.L3614: 22944 ldr x0, [x29, 160] 22945 cbz x0, .L3616 22946 ldr x0, [x29, 176] 22947 ubfiz x3, x0, 2, 32 22948 ldr x0, [x29, 160] 22949 ldr w2, [x0, x3] 22950 ldr x0, [x26, 24] 22951 ldr w0, [x0, 4] 22952 cmp w0, w2 22953 beq .L3617 22954 adrp x0, .LANCHOR19 22955 ldr w0, [x0, #:lo12:.LANCHOR19] 22956 tbz x0, 12, .L3617 22957 ldr w1, [x29, 176] 22958 adrp x0, .LC219 22959 str x3, [x29, 104] 22960 add x0, x0, :lo12:.LC219 22961 bl printf 22962 ldr x3, [x29, 104] 22963.L3617: 22964 ldr x1, [x26, 24] 22965 ldr x0, [x29, 160] 22966 ldr w1, [x1, 4] 22967 ldr w0, [x0, x3] 22968 cmp w1, w0 22969 beq .L3616 22970 cmn w0, #1 22971 beq .L3616 22972 adrp x1, .LANCHOR232 22973 adrp x0, .LC0 22974 mov w2, 1580 22975 add x1, x1, :lo12:.LANCHOR232 22976 add x0, x0, :lo12:.LC0 22977 bl printf 22978.L3616: 22979 ldr w0, [x29, 176] 22980 add w0, w0, 1 22981 str w0, [x29, 176] 22982.L3606: 22983 add w21, w21, 1 22984 and w21, w21, 65535 22985.L3621: 22986 cmp w25, w21 22987 bcs .L3619 22988 add w22, w22, 1 22989 and w22, w22, 65535 22990.L3623: 22991 ldrb w0, [x29, 217] 22992 cmp w0, w22 22993 bls .L3620 22994 sxtw x0, w22 22995 mov w21, 1 22996 add x0, x0, 8 22997 lsl x0, x0, 1 22998 str x0, [x29, 128] 22999 b .L3621 23000.L3610: 23001 add w1, w19, w1 23002 orr w27, w8, w1 23003 b .L3609 23004.L3607: 23005 cmp w25, 2 23006 bne .L3611 23007 adrp x1, .LANCHOR84 23008 ldrb w8, [x1, #:lo12:.LANCHOR84] 23009 ldr w1, [x29, 152] 23010 b .L3635 23011.L3611: 23012 add w27, w19, w1 23013 b .L3609 23014.L3620: 23015 add w19, w19, 1 23016 and w19, w19, 65535 23017 b .L3605 23018.L3622: 23019 mov x0, x26 23020 bl zbuf_free 23021 adrp x0, .LANCHOR11 23022 ldr x1, [x29, 144] 23023 ldr w3, [x29, 172] 23024 ldr x0, [x0, #:lo12:.LANCHOR11] 23025 ldrh w2, [x0, x1, lsl 1] 23026 mov w1, w20 23027 adrp x0, .LC220 23028 add x0, x0, :lo12:.LC220 23029 bl printf 23030 ldr w0, [x29, 168] 23031.L3602: 23032 ldp x19, x20, [sp, 64] 23033 ldp x21, x22, [sp, 80] 23034 ldp x23, x24, [sp, 96] 23035 ldp x25, x26, [sp, 112] 23036 ldp x27, x28, [sp, 128] 23037 ldp x29, x30, [sp, 48] 23038 add sp, sp, 288 23039 ret 23040.L3625: 23041 mov w0, 0 23042 b .L3602 23043 .size ftl_sblk_dump, .-ftl_sblk_dump 23044 .section .text.zftl_read,"ax",@progbits 23045 .align 2 23046 .global zftl_read 23047 .type zftl_read, %function 23048zftl_read: 23049 sub sp, sp, #192 23050 stp x29, x30, [sp, 16] 23051 add x29, sp, 16 23052 stp x19, x20, [sp, 32] 23053 mov w19, w0 23054 adrp x0, .LANCHOR19 23055 stp x21, x22, [sp, 48] 23056 stp x23, x24, [sp, 64] 23057 mov w20, w1 23058 ldr w0, [x0, #:lo12:.LANCHOR19] 23059 mov w23, w2 23060 stp x25, x26, [sp, 80] 23061 mov x22, x3 23062 stp x27, x28, [sp, 96] 23063 tbz x0, 12, .L3637 23064 mov w3, w2 23065 adrp x0, .LC221 23066 mov w2, w1 23067 add x0, x0, :lo12:.LC221 23068 mov w1, w19 23069 bl printf 23070.L3637: 23071 cbnz w19, .L3638 23072 adrp x0, .LANCHOR73 23073 mov w19, 24576 23074 ldr w0, [x0, #:lo12:.LANCHOR73] 23075.L3639: 23076 cmp w0, w20 23077 ccmp w0, w23, 0, hi 23078 bcc .L3672 23079 add w1, w20, w23 23080 cmp w0, w1 23081 bcc .L3672 23082 adrp x1, .LANCHOR69 23083 adrp x24, .LANCHOR68 23084 add w19, w19, w20 23085 str x1, [x29, 112] 23086 ldr x2, [x1, #:lo12:.LANCHOR69] 23087 ldr w0, [x2, 24] 23088 add w0, w0, w23 23089 str w0, [x2, 24] 23090 ldrb w0, [x24, #:lo12:.LANCHOR68] 23091 udiv w2, w19, w0 23092 stp wzr, w2, [x29, 152] 23093 add w2, w23, w19 23094 str w2, [x29, 148] 23095 sub w2, w2, #1 23096 udiv w0, w2, w0 23097 ldr w2, [x29, 156] 23098 mov x21, x2 23099 sub w26, w0, w2 23100 str w0, [x29, 144] 23101 add w26, w26, 1 23102 adrp x0, .LANCHOR72 23103 add x28, x0, :lo12:.LANCHOR72 23104.L3641: 23105 cbnz w26, .L3669 23106 ldr w0, [x29, 152] 23107.L3636: 23108 ldp x19, x20, [sp, 32] 23109 ldp x21, x22, [sp, 48] 23110 ldp x23, x24, [sp, 64] 23111 ldp x25, x26, [sp, 80] 23112 ldp x27, x28, [sp, 96] 23113 ldp x29, x30, [sp, 16] 23114 add sp, sp, 192 23115 ret 23116.L3638: 23117 cmp w19, 3 23118 bhi .L3672 23119 lsl w19, w19, 13 23120 mov w0, 8192 23121 b .L3639 23122.L3669: 23123 ldr w0, [x29, 156] 23124 ldrb w1, [x24, #:lo12:.LANCHOR68] 23125 cmp w21, w0 23126 ldr w0, [x29, 144] 23127 and w25, w1, 65535 23128 ccmp w21, w0, 4, ne 23129 bne .L3673 23130 ldr w0, [x29, 156] 23131 cmp w21, w0 23132 bne .L3643 23133 udiv w3, w19, w1 23134 and w0, w23, 65535 23135 msub w1, w3, w1, w19 23136 and w27, w1, 65535 23137 sub w25, w25, w27 23138 and w25, w25, 65535 23139 cmp w23, w25 23140 csel w25, w0, w25, cc 23141.L3642: 23142 adrp x20, .LANCHOR55 23143 add x1, x20, :lo12:.LANCHOR55 23144 add x1, x1, 2 23145 mov w0, 0 23146.L3646: 23147 ldr w2, [x1, 34] 23148 cmp w21, w2 23149 bne .L3644 23150 ldrb w2, [x1] 23151 tbz x2, 3, .L3644 23152 add x1, x20, :lo12:.LANCHOR55 23153 ubfiz x0, x0, 6, 32 23154 add x0, x1, x0 23155 lsl w2, w25, 9 23156 ubfiz x25, x25, 9, 16 23157 ubfiz x27, x27, 9, 16 23158 ldr x1, [x0, 8] 23159 mov x0, x22 23160 add x22, x22, x25 23161 add x1, x1, x27 23162 bl ftl_memcpy 23163.L3645: 23164 add w21, w21, 1 23165 sub w26, w26, #1 23166.L3652: 23167 adrp x0, .LANCHOR57 23168 ldrb w0, [x0, #:lo12:.LANCHOR57] 23169 cmp w0, 2 23170 bls .L3653 23171 cbnz w26, .L3641 23172.L3653: 23173 adrp x0, .LANCHOR72 23174 ldrb w1, [x0, #:lo12:.LANCHOR72] 23175 cbz w1, .L3641 23176 adrp x25, .LANCHOR71 23177 add x0, x20, :lo12:.LANCHOR55 23178 ldrb w2, [x25, #:lo12:.LANCHOR71] 23179 add x0, x0, x2, lsl 6 23180 bl sblk_read_page 23181 adrp x0, .LANCHOR233 23182 add x0, x0, :lo12:.LANCHOR233 23183 str x0, [x29, 128] 23184 adrp x0, .LC0 23185 add x0, x0, :lo12:.LC0 23186 str x0, [x29, 120] 23187.L3655: 23188 ldrb w0, [x28] 23189 cbnz w0, .L3668 23190 mov w0, -1 23191 strb wzr, [x28] 23192 strb w0, [x25, #:lo12:.LANCHOR71] 23193 b .L3641 23194.L3643: 23195 ldr w0, [x29, 148] 23196 msub w25, w1, w21, w0 23197 and w25, w25, 255 23198.L3673: 23199 mov w27, 0 23200 b .L3642 23201.L3644: 23202 add w0, w0, 1 23203 add x1, x1, 64 23204 cmp w0, 16 23205 bne .L3646 23206 mov w0, w21 23207 bl lpa_hash_get_ppa 23208 str w0, [x29, 172] 23209 cmn w0, #1 23210 bne .L3647 23211 mov w2, 0 23212 add x1, x29, 172 23213 mov w0, w21 23214 bl pm_log2phys 23215.L3647: 23216 ldr w0, [x29, 172] 23217 cmn w0, #1 23218 bne .L3648 23219 add x27, x24, :lo12:.LANCHOR68 23220 mov w25, 0 23221.L3649: 23222 ldrb w0, [x27] 23223 cmp w25, w0 23224 bcs .L3645 23225 madd w0, w21, w0, w25 23226 cmp w19, w0 23227 bhi .L3650 23228 ldr w1, [x29, 148] 23229 cmp w1, w0 23230 bls .L3650 23231 mov x0, x22 23232 add x22, x22, 512 23233 mov w2, 512 23234 mov w1, 0 23235 bl ftl_memset 23236.L3650: 23237 add w25, w25, 1 23238 b .L3649 23239.L3648: 23240 mov w0, 0 23241 bl buf_alloc 23242 cbz x0, .L3652 23243 ldr x2, [x29, 112] 23244 ldr x4, [x2, #:lo12:.LANCHOR69] 23245 ldr w2, [x4, 40] 23246 add w2, w2, 1 23247 str w2, [x4, 40] 23248 ldr w2, [x29, 172] 23249 strb w25, [x0, 56] 23250 ubfiz x25, x25, 9, 16 23251 str x22, [x0, 16] 23252 add x22, x22, x25 23253 strb w27, [x0, 57] 23254 stp w21, w2, [x0, 36] 23255 str w2, [x0, 44] 23256 bl zftl_add_read_buf 23257 b .L3645 23258.L3668: 23259 ldrb w0, [x25, #:lo12:.LANCHOR71] 23260 cmp w0, 255 23261 bne .L3656 23262 ldp x0, x1, [x29, 120] 23263 mov w2, 1280 23264 bl printf 23265.L3656: 23266 ldrb w27, [x25, #:lo12:.LANCHOR71] 23267 add x0, x20, :lo12:.LANCHOR55 23268 ubfiz x1, x27, 6, 8 23269 lsl x2, x27, 6 23270 add x1, x0, x1 23271 str x1, [x29, 136] 23272 add x1, x0, x2 23273 ldrb w0, [x0, x2] 23274 strb w0, [x25, #:lo12:.LANCHOR71] 23275 ldr w10, [x1, 52] 23276 cmn w10, #1 23277 bne .L3657 23278 adrp x0, .LANCHOR12 23279 str w10, [x29, 152] 23280 ldr x1, [x0, #:lo12:.LANCHOR12] 23281 ldr w0, [x1, 552] 23282 add w0, w0, 1 23283 str w0, [x1, 552] 23284.L3658: 23285 add x0, x20, :lo12:.LANCHOR55 23286 add x0, x0, x27, lsl 6 23287 ldr x3, [x0, 24] 23288 ldr w0, [x0, 36] 23289 ldr w1, [x3, 4] 23290 cmp w1, w0 23291 bne .L3659 23292 cmn w10, #1 23293 bne .L3660 23294.L3659: 23295 add x0, x20, :lo12:.LANCHOR55 23296 ldrb w4, [x24, #:lo12:.LANCHOR68] 23297 add x0, x0, x27, lsl 6 23298 mov w5, 1 23299 ldrb w1, [x0, 56] 23300 ldp x2, x7, [x0, 8] 23301 cmp w1, w4 23302 ldr w1, [x0, 40] 23303 adrp x0, .LANCHOR31 23304 csel x2, x7, x2, cs 23305 ldrb w6, [x0, #:lo12:.LANCHOR31] 23306 mov w0, 24 23307 sub w0, w0, w6 23308 lsl w5, w5, w6 23309 sub w5, w5, #1 23310 lsl w6, w5, w0 23311 lsr w0, w1, w0 23312 bic w1, w1, w6 23313 and w0, w0, w5 23314 bl flash_read_page_en 23315 mov w10, w0 23316.L3660: 23317 add x1, x20, :lo12:.LANCHOR55 23318 add x1, x1, x27, lsl 6 23319 ldr x0, [x1, 24] 23320 ldr w3, [x1, 36] 23321 ldr w1, [x0, 4] 23322 cmp w1, w3 23323 bne .L3662 23324 cmn w10, #1 23325 bne .L3663 23326.L3662: 23327 adrp x1, .LANCHOR12 23328 add x11, x20, :lo12:.LANCHOR55 23329 add x11, x11, x27, lsl 6 23330 str w10, [x29, 108] 23331 ldr x2, [x1, #:lo12:.LANCHOR12] 23332 str x11, [x29, 96] 23333 ldr w1, [x2, 552] 23334 add w1, w1, 1 23335 str w1, [x2, 552] 23336 ldrb w1, [x11, 1] 23337 ldr w2, [x0, 12] 23338 str w2, [sp] 23339 mov w2, w10 23340 ldp w5, w6, [x0] 23341 ldr w7, [x0, 8] 23342 adrp x0, .LC223 23343 ldr w4, [x11, 40] 23344 add x0, x0, :lo12:.LC223 23345 bl printf 23346 adrp x0, .LANCHOR80 23347 ldr x11, [x29, 96] 23348 ldrh w2, [x0, #:lo12:.LANCHOR80] 23349 adrp x0, .LANCHOR31 23350 ldrb w1, [x0, #:lo12:.LANCHOR31] 23351 mov w0, 24 23352 sub w0, w0, w1 23353 sub w1, w0, w2 23354 mov w0, 1 23355 lsl w0, w0, w1 23356 ldr w1, [x11, 40] 23357 sub w0, w0, #1 23358 lsr w1, w1, w2 23359 and w0, w0, w1 23360 adrp x1, .LANCHOR81 23361 ldrb w2, [x1, #:lo12:.LANCHOR81] 23362 mov x1, 0 23363 udiv w0, w0, w2 23364 bl ftl_sblk_dump 23365 ldr w10, [x29, 108] 23366.L3663: 23367 add x0, x20, :lo12:.LANCHOR55 23368 add x0, x0, x27, lsl 6 23369 ldr x1, [x0, 24] 23370 ldr w0, [x0, 36] 23371 ldr w1, [x1, 4] 23372 cmp w1, w0 23373 bne .L3664 23374 cmn w10, #1 23375 bne .L3665 23376.L3664: 23377 ldp x0, x1, [x29, 120] 23378 mov w2, 1316 23379 bl printf 23380.L3665: 23381 add x0, x20, :lo12:.LANCHOR55 23382 add x8, x0, x27, lsl 6 23383 ldrb w0, [x24, #:lo12:.LANCHOR68] 23384 ldrb w2, [x8, 56] 23385 cmp w0, w2 23386 bls .L3666 23387 ldrb w0, [x8, 57] 23388 lsl w2, w2, 9 23389 ldr x1, [x8, 8] 23390 ubfiz x0, x0, 9, 8 23391 add x1, x1, x0 23392 ldr x0, [x8, 16] 23393 bl ftl_memcpy 23394.L3667: 23395 ldr x1, [x29, 136] 23396 adrp x0, .LANCHOR62 23397 add x0, x0, :lo12:.LANCHOR62 23398 bl buf_remove_buf 23399 ldr x0, [x29, 136] 23400 bl zbuf_free 23401 ldrb w0, [x28] 23402 sub w0, w0, #1 23403 strb w0, [x28] 23404 b .L3655 23405.L3657: 23406 cmp w10, 256 23407 bne .L3658 23408 adrp x2, .LANCHOR31 23409 adrp x0, .LANCHOR80 23410 mov w4, 24 23411 mov w5, 1 23412 ldrb w2, [x2, #:lo12:.LANCHOR31] 23413 ldrh w0, [x0, #:lo12:.LANCHOR80] 23414 sub w4, w4, w2 23415 str w5, [x29, 96] 23416 ldp w2, w3, [x1, 36] 23417 sub w4, w4, w0 23418 lsl w4, w5, w4 23419 sub w4, w4, #1 23420 lsr w0, w3, w0 23421 and w4, w4, w0 23422 adrp x0, .LANCHOR81 23423 ldrb w0, [x0, #:lo12:.LANCHOR81] 23424 udiv w4, w4, w0 23425 adrp x0, .LC222 23426 add x0, x0, :lo12:.LC222 23427 stp w10, w4, [x29, 104] 23428 and w1, w4, 65535 23429 bl printf 23430 ldr w5, [x29, 96] 23431 mov w2, 0 23432 ldr w4, [x29, 108] 23433 mov w1, w5 23434 mov w0, w4 23435 bl gc_add_sblk 23436 ldr w10, [x29, 104] 23437 b .L3658 23438.L3666: 23439 ldrb w0, [x8, 2] 23440 and w0, w0, -9 23441 strb w0, [x8, 2] 23442 b .L3667 23443.L3672: 23444 mov w0, -1 23445 b .L3636 23446 .size zftl_read, .-zftl_read 23447 .section .text.zftl_sys_read,"ax",@progbits 23448 .align 2 23449 .global zftl_sys_read 23450 .type zftl_sys_read, %function 23451zftl_sys_read: 23452 mov x3, x2 23453 mov w2, w1 23454 mov w1, w0 23455 mov w0, 2 23456 b zftl_read 23457 .size zftl_sys_read, .-zftl_sys_read 23458 .section .text.StorageSysDataLoad,"ax",@progbits 23459 .align 2 23460 .global StorageSysDataLoad 23461 .type StorageSysDataLoad, %function 23462StorageSysDataLoad: 23463 stp x29, x30, [sp, -32]! 23464 mov w2, 512 23465 add x29, sp, 0 23466 stp x19, x20, [sp, 16] 23467 mov x19, x1 23468 mov w20, w0 23469 mov w1, 0 23470 mov x0, x19 23471 bl ftl_memset 23472 mov x3, x19 23473 mov w1, w20 23474 ldp x19, x20, [sp, 16] 23475 mov w2, 1 23476 ldp x29, x30, [sp], 32 23477 mov w0, 2 23478 b zftl_read 23479 .size StorageSysDataLoad, .-StorageSysDataLoad 23480 .section .text.FlashBootVendorRead,"ax",@progbits 23481 .align 2 23482 .global FlashBootVendorRead 23483 .type FlashBootVendorRead, %function 23484FlashBootVendorRead: 23485 mov x3, x2 23486 mov w2, w1 23487 add w1, w0, 512 23488 mov w0, 2 23489 b zftl_read 23490 .size FlashBootVendorRead, .-FlashBootVendorRead 23491 .section .text.ftl_read,"ax",@progbits 23492 .align 2 23493 .global ftl_read 23494 .type ftl_read, %function 23495ftl_read: 23496 and w0, w0, 255 23497 b zftl_read 23498 .size ftl_read, .-ftl_read 23499 .section .text.ftl_vendor_read,"ax",@progbits 23500 .align 2 23501 .global ftl_vendor_read 23502 .type ftl_vendor_read, %function 23503ftl_vendor_read: 23504 mov x3, x2 23505 mov w2, w1 23506 add w1, w0, 512 23507 mov w0, 2 23508 b zftl_read 23509 .size ftl_vendor_read, .-ftl_vendor_read 23510 .section .text.zftl_vendor_read,"ax",@progbits 23511 .align 2 23512 .global zftl_vendor_read 23513 .type zftl_vendor_read, %function 23514zftl_vendor_read: 23515 b ftl_vendor_read 23516 .size zftl_vendor_read, .-zftl_vendor_read 23517 .section .text.ftl_update_l2p_map,"ax",@progbits 23518 .align 2 23519 .global ftl_update_l2p_map 23520 .type ftl_update_l2p_map, %function 23521ftl_update_l2p_map: 23522 stp x29, x30, [sp, -128]! 23523 add x29, sp, 0 23524 stp x21, x22, [sp, 32] 23525 mov x22, x0 23526 stp x19, x20, [sp, 16] 23527 adrp x0, .LANCHOR100 23528 stp x23, x24, [sp, 48] 23529 stp x25, x26, [sp, 64] 23530 stp x27, x28, [sp, 80] 23531 ldrh w23, [x0, #:lo12:.LANCHOR100] 23532 ldrb w0, [x22, 9] 23533 ldrh w19, [x22, 12] 23534 mul w23, w23, w0 23535 adrp x0, .LANCHOR123 23536 str x0, [x29, 104] 23537 ldr x1, [x0, #:lo12:.LANCHOR123] 23538 add x19, x1, x19, lsl 2 23539 add x1, x19, x23, sxtw 2 23540 ldr w1, [x1, -4] 23541 cmn w1, #1 23542 beq .L3696 23543 adrp x1, .LANCHOR234 23544 adrp x0, .LC0 23545 mov w2, 2003 23546 add x1, x1, :lo12:.LANCHOR234 23547 add x0, x0, :lo12:.LC0 23548 bl printf 23549.L3696: 23550 adrp x27, .LANCHOR68 23551 mov x24, 0 23552 add x0, x27, :lo12:.LANCHOR68 23553 mov w21, 0 23554 str x0, [x29, 96] 23555.L3697: 23556 cmp w24, w23 23557 blt .L3703 23558 adrp x0, .LANCHOR19 23559 adrp x19, .LANCHOR11 23560 ldr w0, [x0, #:lo12:.LANCHOR19] 23561 tbz x0, 12, .L3704 23562 ldrh w1, [x22] 23563 ldr x2, [x19, #:lo12:.LANCHOR11] 23564 ubfiz x0, x1, 1, 16 23565 ldrh w3, [x2, x0] 23566 adrp x0, .LC227 23567 mov w2, w21 23568 add x0, x0, :lo12:.LC227 23569 bl printf 23570.L3704: 23571 ldrh w1, [x22] 23572 ldr x0, [x19, #:lo12:.LANCHOR11] 23573 ldp x23, x24, [sp, 48] 23574 ldp x19, x20, [sp, 16] 23575 strh w21, [x0, x1, lsl 1] 23576 ldp x25, x26, [sp, 64] 23577 ldp x21, x22, [sp, 32] 23578 ldp x27, x28, [sp, 80] 23579 ldp x29, x30, [sp], 128 23580 ret 23581.L3703: 23582 ldr w2, [x19, x24, lsl 2] 23583 cmn w2, #1 23584 beq .L3698 23585 ldrb w20, [x27, #:lo12:.LANCHOR68] 23586 adrp x0, .LANCHOR19 23587 ldr w0, [x0, #:lo12:.LANCHOR19] 23588 lsl w20, w20, 7 23589 udiv w20, w2, w20 23590 and w20, w20, 65535 23591 tbz x0, 12, .L3699 23592 adrp x0, .LC224 23593 mov w3, w24 23594 mov w1, w20 23595 add x0, x0, :lo12:.LC224 23596 bl printf 23597.L3699: 23598 adrp x25, .LANCHOR117 23599 adrp x26, .LC225 23600 mov x28, x24 23601 add x25, x25, :lo12:.LANCHOR117 23602 add x26, x26, :lo12:.LC225 23603.L3702: 23604 ldr w1, [x19, x28, lsl 2] 23605 cmn w1, #1 23606 beq .L3700 23607 ldr x0, [x29, 96] 23608 ldrb w2, [x0] 23609 lsl w2, w2, 7 23610 udiv w1, w1, w2 23611 cmp w20, w1, uxth 23612 bne .L3700 23613 ldrb w0, [x22, 9] 23614 sdiv w1, w28, w0 23615 msub w0, w1, w0, w28 23616 add x0, x22, x0, sxtw 1 23617 ldrh w2, [x0, 16] 23618 ldrh w0, [x25] 23619 madd w2, w2, w0, w1 23620 mov x0, x26 23621 str w2, [x29, 124] 23622 ldr w1, [x19, x28, lsl 2] 23623 bl pm_ppa_update_check 23624 cbz w0, .L3701 23625 ldr x0, [x29, 104] 23626 mov w3, w23 23627 mov w2, 4 23628 ldr x1, [x0, #:lo12:.LANCHOR123] 23629 adrp x0, .LC226 23630 add x0, x0, :lo12:.LC226 23631 bl rknand_print_hex 23632.L3701: 23633 ldr w0, [x19, x28, lsl 2] 23634 add w21, w21, 1 23635 mov w2, 1 23636 add x1, x29, 124 23637 and w21, w21, 65535 23638 bl pm_log2phys 23639 mov w0, -1 23640 str w0, [x19, x28, lsl 2] 23641.L3700: 23642 add x28, x28, 1 23643 cmp w23, w28 23644 bgt .L3702 23645.L3698: 23646 add x24, x24, 1 23647 b .L3697 23648 .size ftl_update_l2p_map, .-ftl_update_l2p_map 23649 .section .text.ftl_alloc_new_data_sblk,"ax",@progbits 23650 .align 2 23651 .global ftl_alloc_new_data_sblk 23652 .type ftl_alloc_new_data_sblk, %function 23653ftl_alloc_new_data_sblk: 23654 stp x29, x30, [sp, -48]! 23655 add x29, sp, 0 23656 stp x19, x20, [sp, 16] 23657 mov x20, x0 23658 str x21, [sp, 32] 23659 ldrh w21, [x0] 23660 bl ftl_update_l2p_map 23661 bl pm_flush 23662 ldrh w0, [x20] 23663 mov w1, 65535 23664 cmp w0, w1 23665 beq .L3726 23666 bl zftl_insert_data_list 23667.L3726: 23668 adrp x19, .LANCHOR12 23669 ldr x0, [x19, #:lo12:.LANCHOR12] 23670 add x0, x0, 16 23671 cmp x20, x0 23672 mov x0, x20 23673 cset w1, ne 23674 add w1, w1, 2 23675 bl ftl_open_sblk_init 23676 ldr x0, [x19, #:lo12:.LANCHOR12] 23677 ldr w0, [x0, 560] 23678 cmp w0, w21 23679 bne .L3728 23680 mov w20, 65535 23681 cmp w21, w20 23682 beq .L3728 23683 mov w1, w21 23684 adrp x0, .LC228 23685 add x0, x0, :lo12:.LC228 23686 bl printf 23687 ldr x0, [x19, #:lo12:.LANCHOR12] 23688 ldr w0, [x0, 564] 23689 bl gc_mark_bad_ppa 23690 ldr x0, [x19, #:lo12:.LANCHOR12] 23691 mov w1, -1 23692 str w20, [x0, 560] 23693 str w1, [x0, 564] 23694.L3728: 23695 bl ftl_ext_info_flush 23696 mov w0, 0 23697 bl ftl_info_flush 23698 bl lpa_rebuild_hash 23699 ldr x21, [sp, 32] 23700 mov w0, 0 23701 ldp x19, x20, [sp, 16] 23702 ldp x29, x30, [sp], 48 23703 ret 23704 .size ftl_alloc_new_data_sblk, .-ftl_alloc_new_data_sblk 23705 .section .text.ftl_write_commit,"ax",@progbits 23706 .align 2 23707 .global ftl_write_commit 23708 .type ftl_write_commit, %function 23709ftl_write_commit: 23710 stp x29, x30, [sp, -160]! 23711 adrp x0, .LANCHOR55 23712 add x29, sp, 0 23713 stp x23, x24, [sp, 48] 23714 add x24, x0, :lo12:.LANCHOR55 23715 add x0, x24, 1026 23716 stp x19, x20, [sp, 16] 23717 stp x21, x22, [sp, 32] 23718 stp x25, x26, [sp, 64] 23719 stp x27, x28, [sp, 80] 23720 str x0, [x29, 104] 23721.L3732: 23722 adrp x2, .LANCHOR66 23723 ldrb w1, [x2, #:lo12:.LANCHOR66] 23724 cbz w1, .L3734 23725 adrp x3, .LANCHOR65 23726 adrp x0, .LANCHOR55 23727 add x0, x0, :lo12:.LANCHOR55 23728 sub w1, w1, #1 23729 ldrb w4, [x3, #:lo12:.LANCHOR65] 23730 strb w1, [x2, #:lo12:.LANCHOR66] 23731 ubfiz x5, x4, 6, 8 23732 add x5, x0, x5 23733 stp x4, x5, [x29, 120] 23734 lsl x4, x4, 6 23735 add x5, x0, x4 23736 ldrb w0, [x0, x4] 23737 strb w0, [x3, #:lo12:.LANCHOR65] 23738 adrp x0, .LANCHOR219 23739 ldr w2, [x5, 36] 23740 mov x19, x0 23741 ldr w1, [x0, #:lo12:.LANCHOR219] 23742 cmp w2, w1 23743 bcc .L3736 23744 adrp x1, .LANCHOR235 23745 adrp x0, .LC0 23746 mov w2, 602 23747 add x1, x1, :lo12:.LANCHOR235 23748 add x0, x0, :lo12:.LC0 23749 bl printf 23750.L3736: 23751 ldr x0, [x29, 120] 23752 ldr w1, [x19, #:lo12:.LANCHOR219] 23753 add x0, x24, x0, lsl 6 23754 ldr w22, [x0, 36] 23755 cmp w22, w1 23756 bcc .L3737 23757 ldr x0, [x29, 128] 23758 bl zbuf_free 23759 mov w0, -1 23760.L3731: 23761 ldp x19, x20, [sp, 16] 23762 ldp x21, x22, [sp, 32] 23763 ldp x23, x24, [sp, 48] 23764 ldp x25, x26, [sp, 64] 23765 ldp x27, x28, [sp, 80] 23766 ldp x29, x30, [sp], 160 23767 ret 23768.L3737: 23769 ldrb w21, [x0, 57] 23770 ldrb w20, [x0, 56] 23771 ldr x26, [x0, 8] 23772 ldr x23, [x0, 24] 23773 adrp x0, .LANCHOR183 23774 str x0, [x29, 112] 23775 ldrb w1, [x0, #:lo12:.LANCHOR183] 23776 cbz w1, .L3739 23777 adrp x0, .LANCHOR184 23778 ldrb w19, [x0, #:lo12:.LANCHOR184] 23779 add x19, x24, x19, lsl 6 23780.L3740: 23781 ldrb w0, [x19] 23782 cmp w0, 255 23783 bne .L3741 23784 ldr w0, [x19, 36] 23785 cmp w22, w0 23786 bne .L3739 23787 ldr x0, [x19, 8] 23788 ubfiz x21, x21, 9, 8 23789 lsl w2, w20, 9 23790 add x1, x26, x21 23791 add x0, x0, x21 23792 bl ftl_memcpy 23793 adrp x0, .LANCHOR68 23794 ldr x2, [x19, 8] 23795 ldr x1, [x19, 24] 23796 ldrb w0, [x0, #:lo12:.LANCHOR68] 23797 add x1, x1, 16 23798 sub w0, w0, #2 23799 lsl w0, w0, 7 23800 add x2, x2, x0, sxtw 2 23801 mov w0, 2 23802 bl ftl_debug_info_fill 23803 ldr x0, [x29, 128] 23804 bl zbuf_free 23805 b .L3732 23806.L3741: 23807 ubfiz x19, x0, 6, 8 23808 add x19, x24, x19 23809 b .L3740 23810.L3739: 23811 mov w0, w22 23812 bl lpa_hash_get_ppa 23813 str w0, [x29, 156] 23814 cmn w0, #1 23815 bne .L3743 23816 mov w2, 0 23817 add x1, x29, 156 23818 mov w0, w22 23819 bl pm_log2phys 23820.L3743: 23821 adrp x27, .LANCHOR12 23822 ldr w2, [x29, 156] 23823 add x0, x24, 2 23824 mov w3, 0 23825 ldr x19, [x27, #:lo12:.LANCHOR12] 23826 mov x25, 0 23827 add x19, x19, 16 23828.L3745: 23829 ldr w1, [x0, 34] 23830 cmp w22, w1 23831 bne .L3744 23832 ldrb w1, [x0] 23833 tbz x1, 3, .L3744 23834 ldr w2, [x0, 38] 23835 and w1, w1, -9 23836 ldr x25, [x0, 6] 23837 mov w3, 1 23838 strb w1, [x0] 23839.L3744: 23840 ldr x1, [x29, 104] 23841 add x0, x0, 64 23842 cmp x0, x1 23843 bne .L3745 23844 cbz w3, .L3746 23845 str w2, [x29, 156] 23846.L3746: 23847 adrp x28, .LANCHOR68 23848 str x28, [x29, 136] 23849 ldrb w0, [x28, #:lo12:.LANCHOR68] 23850 cmp w20, w0 23851 bcs .L3772 23852 add w20, w21, w20 23853 cbz x25, .L3748 23854 cbz w21, .L3749 23855 lsl w2, w21, 9 23856 mov x1, x25 23857 mov x0, x26 23858 bl ftl_memcpy 23859 ldr x19, [x27, #:lo12:.LANCHOR12] 23860 add x19, x19, 48 23861.L3749: 23862 ldr x0, [x29, 136] 23863 ldrb w2, [x0, #:lo12:.LANCHOR68] 23864 cmp w20, w2 23865 bcc .L3750 23866 ldr x19, [x27, #:lo12:.LANCHOR12] 23867 add x19, x19, 16 23868.L3772: 23869 mov w25, 0 23870 b .L3747 23871.L3750: 23872 ubfiz x0, x20, 9, 9 23873 sub w2, w2, w20 23874 add x1, x25, x0 23875 lsl w2, w2, 9 23876 add x0, x26, x0 23877 bl ftl_memcpy 23878 b .L3772 23879.L3748: 23880 ldr w0, [x29, 156] 23881 cmn w0, #1 23882 beq .L3751 23883 mov w0, 1 23884 bl buf_alloc 23885 ldr w1, [x29, 156] 23886 mov x28, x0 23887 stp w22, w1, [x0, 36] 23888 mov w1, 1 23889 bl sblk_read_page 23890 ldr x3, [x28, 24] 23891 ldr w0, [x3, 4] 23892 ldr w25, [x3, 12] 23893 cmp w22, w0 23894 add w25, w25, 1 23895 bne .L3752 23896 ldr w0, [x28, 52] 23897 cmn w0, #1 23898 bne .L3753 23899.L3752: 23900 adrp x0, .LANCHOR31 23901 mov w6, 1 23902 ldr w1, [x28, 40] 23903 ldrb w2, [x0, #:lo12:.LANCHOR31] 23904 mov w0, 24 23905 sub w0, w0, w2 23906 lsl w6, w6, w2 23907 ldr x2, [x29, 136] 23908 sub w6, w6, #1 23909 lsl w7, w6, w0 23910 ldrb w4, [x2, #:lo12:.LANCHOR68] 23911 lsr w0, w1, w0 23912 ldr x2, [x28, 8] 23913 bic w1, w1, w7 23914 and w0, w0, w6 23915 bl flash_read_page_en 23916 str w0, [x28, 52] 23917.L3753: 23918 ldr x0, [x28, 24] 23919 ldr w0, [x0, 4] 23920 cmp w22, w0 23921 bne .L3754 23922 ldr w0, [x28, 52] 23923 cmn w0, #1 23924 bne .L3755 23925.L3754: 23926 ldr x1, [x27, #:lo12:.LANCHOR12] 23927 mov w3, w22 23928 ldr w4, [x28, 52] 23929 ldr w2, [x29, 156] 23930 ldr w0, [x1, 552] 23931 add w0, w0, 1 23932 str w0, [x1, 552] 23933 adrp x0, .LC229 23934 add x0, x0, :lo12:.LC229 23935 ldrb w1, [x28, 1] 23936 bl printf 23937 ldr x1, [x28, 24] 23938 mov w3, 4 23939 adrp x0, .LC188 23940 mov w2, w3 23941 add x0, x0, :lo12:.LC188 23942 bl rknand_print_hex 23943.L3755: 23944 ldr x0, [x28, 24] 23945 ldr w0, [x0, 4] 23946 cmp w22, w0 23947 bne .L3756 23948 ldr w0, [x28, 52] 23949 cmn w0, #1 23950 bne .L3757 23951.L3756: 23952 adrp x1, .LANCHOR235 23953 adrp x0, .LC0 23954 mov w2, 694 23955 add x1, x1, :lo12:.LANCHOR235 23956 add x0, x0, :lo12:.LC0 23957 bl printf 23958.L3757: 23959 cbz w21, .L3758 23960 ldr w0, [x29, 156] 23961 lsl w2, w21, 9 23962 cmn w0, #1 23963 beq .L3759 23964 ldr x1, [x28, 8] 23965 mov x0, x26 23966 bl ftl_memcpy 23967.L3760: 23968 ldr x19, [x27, #:lo12:.LANCHOR12] 23969 add x19, x19, 48 23970.L3758: 23971 ldr x0, [x29, 136] 23972 ldrb w2, [x0, #:lo12:.LANCHOR68] 23973 cmp w20, w2 23974 bcc .L3761 23975 bls .L3762 23976 ldr x19, [x27, #:lo12:.LANCHOR12] 23977 add x19, x19, 16 23978.L3762: 23979 cbz x28, .L3747 23980 ldrb w0, [x28, 2] 23981 mov x1, x28 23982 and w0, w0, -9 23983 strb w0, [x28, 2] 23984 adrp x0, .LANCHOR62 23985 add x0, x0, :lo12:.LANCHOR62 23986 bl buf_remove_buf 23987 mov x0, x28 23988 bl zbuf_free 23989.L3747: 23990 ldrh w0, [x19, 6] 23991 cbnz w0, .L3764 23992 bl ftl_flush 23993 mov x0, x19 23994 bl ftl_alloc_new_data_sblk 23995.L3764: 23996 mov x0, x19 23997 bl ftl_get_new_free_page 23998 mov w10, w0 23999 ldr x0, [x29, 120] 24000 mov x1, x23 24001 adrp x20, .LANCHOR184 24002 lsl x8, x0, 6 24003 add x7, x24, x8 24004 ldr w0, [x7, 32] 24005 stp w0, w22, [x23] 24006 str w25, [x23, 12] 24007 ldr w0, [x29, 156] 24008 str w0, [x23, 8] 24009 ldr x0, [x29, 136] 24010 str wzr, [x1, 16]! 24011 ldrb w2, [x0, #:lo12:.LANCHOR68] 24012 mov w0, 2 24013 sub w2, w2, #2 24014 lsl w2, w2, 7 24015 add x2, x26, x2, sxtw 2 24016 bl ftl_debug_info_fill 24017 ldr w0, [x29, 156] 24018 mov w1, 10 24019 stp w10, w0, [x7, 40] 24020 mov w0, -1 24021 strb w0, [x24, x8] 24022 ldrb w0, [x7, 2] 24023 orr w0, w0, w1 24024 ldrh w1, [x19, 12] 24025 strb w0, [x7, 2] 24026 ldrh w0, [x19, 10] 24027 add w0, w0, w1 24028 ldr x1, [x29, 128] 24029 sub w0, w0, #1 24030 strh w0, [x7, 48] 24031 add x0, x20, :lo12:.LANCHOR184 24032 bl buf_add_tail 24033 ldr x0, [x29, 112] 24034 ldrb w2, [x0, #:lo12:.LANCHOR183] 24035 add w2, w2, 1 24036 and w2, w2, 255 24037 strb w2, [x0, #:lo12:.LANCHOR183] 24038 adrp x0, .LANCHOR236 24039 cmp w2, 2 24040 str wzr, [x0, #:lo12:.LANCHOR236] 24041 ldrh w0, [x19, 6] 24042 bhi .L3765 24043 cmp w0, 1 24044 bne .L3735 24045.L3765: 24046 ldrb w1, [x19, 5] 24047 cmp w1, 0 24048 mov w1, 0 24049 cset w4, ne 24050 cmp w0, 1 24051 ldrb w0, [x20, #:lo12:.LANCHOR184] 24052 csinc w4, w2, w4, eq 24053 mov w3, w0 24054.L3769: 24055 cmp w1, w4 24056 bne .L3770 24057 strb w3, [x20, #:lo12:.LANCHOR184] 24058 and w1, w1, 255 24059 ldr x3, [x29, 112] 24060 sub w2, w2, w1 24061 ubfiz x0, x0, 6, 8 24062 add x0, x24, x0 24063 strb w2, [x3, #:lo12:.LANCHOR183] 24064 bl sblk_prog_page 24065 ldrh w0, [x19, 6] 24066 cmp w0, 1 24067 bne .L3735 24068 bl sblk_wait_write_queue_completed 24069 bl ftl_write_completed 24070 mov x0, x19 24071 bl ftl_write_last_log_page 24072 mov x0, x19 24073 bl ftl_alloc_new_data_sblk 24074.L3735: 24075 adrp x0, .LANCHOR66 24076 ldrb w0, [x0, #:lo12:.LANCHOR66] 24077 cbnz w0, .L3732 24078.L3734: 24079 bl ftl_write_completed 24080 mov w0, 0 24081 b .L3731 24082.L3761: 24083 ldr w0, [x29, 156] 24084 sub w2, w2, w20 24085 lsl w2, w2, 9 24086 cmn w0, #1 24087 ubfiz x0, x20, 7, 9 24088 beq .L3763 24089 ldr x1, [x28, 8] 24090 lsl x0, x0, 2 24091 add x1, x1, x0 24092 add x0, x26, x0 24093 bl ftl_memcpy 24094 b .L3762 24095.L3763: 24096 mov w1, 0 24097 add x0, x26, x0, lsl 2 24098 bl ftl_memset 24099 b .L3762 24100.L3770: 24101 ubfiz x3, x3, 6, 8 24102 add w1, w1, 1 24103 ldrb w3, [x24, x3] 24104 b .L3769 24105.L3771: 24106 lsl w2, w21, 9 24107 mov x28, 0 24108 mov w25, 0 24109.L3759: 24110 mov w1, 0 24111 mov x0, x26 24112 bl ftl_memset 24113 b .L3760 24114.L3751: 24115 cbnz w21, .L3771 24116 mov w25, 0 24117 mov x28, 0 24118 b .L3758 24119 .size ftl_write_commit, .-ftl_write_commit 24120 .section .text.zftl_write,"ax",@progbits 24121 .align 2 24122 .global zftl_write 24123 .type zftl_write, %function 24124zftl_write: 24125 stp x29, x30, [sp, -112]! 24126 add x29, sp, 0 24127 stp x19, x20, [sp, 16] 24128 mov w19, w0 24129 adrp x0, .LANCHOR19 24130 stp x21, x22, [sp, 32] 24131 stp x25, x26, [sp, 64] 24132 mov w20, w1 24133 ldr w0, [x0, #:lo12:.LANCHOR19] 24134 mov w21, w2 24135 stp x23, x24, [sp, 48] 24136 mov x25, x3 24137 stp x27, x28, [sp, 80] 24138 tbz x0, 12, .L3798 24139 ldr w4, [x25] 24140 mov w3, w2 24141 adrp x0, .LC230 24142 mov w2, w1 24143 add x0, x0, :lo12:.LC230 24144 mov w1, w19 24145 bl printf 24146.L3798: 24147 cbnz w19, .L3799 24148 adrp x0, .LANCHOR73 24149 mov w19, 24576 24150 ldr w0, [x0, #:lo12:.LANCHOR73] 24151.L3800: 24152 cmp w0, w20 24153 ccmp w0, w21, 0, hi 24154 bcc .L3814 24155 add w1, w20, w21 24156 cmp w0, w1 24157 bcc .L3814 24158 adrp x26, .LANCHOR68 24159 add w19, w19, w20 24160 sub w22, w21, #1 24161 adrp x27, .LANCHOR66 24162 ldrb w0, [x26, #:lo12:.LANCHOR68] 24163 add w22, w22, w19 24164 adrp x28, .LANCHOR57 24165 add x27, x27, :lo12:.LANCHOR66 24166 add x28, x28, :lo12:.LANCHOR57 24167 udiv w24, w19, w0 24168 udiv w22, w22, w0 24169 add x0, x26, :lo12:.LANCHOR68 24170 str x0, [x29, 104] 24171 mov w20, w24 24172 sub w23, w22, w24 24173 add w23, w23, 1 24174.L3802: 24175 cbnz w23, .L3811 24176 bl ftl_write_commit 24177 bl ftl_flush 24178 mov w0, 0 24179.L3797: 24180 ldp x19, x20, [sp, 16] 24181 ldp x21, x22, [sp, 32] 24182 ldp x23, x24, [sp, 48] 24183 ldp x25, x26, [sp, 64] 24184 ldp x27, x28, [sp, 80] 24185 ldp x29, x30, [sp], 112 24186 ret 24187.L3799: 24188 cmp w19, 3 24189 bhi .L3814 24190 lsl w19, w19, 13 24191 mov w0, 8192 24192 b .L3800 24193.L3811: 24194 ldrb w0, [x27] 24195 cbz w0, .L3803 24196 ldrb w0, [x28] 24197 cmp w0, 2 24198 bhi .L3803 24199 bl ftl_write_commit 24200.L3803: 24201 mov w0, 0 24202 bl buf_alloc 24203 mov x26, x0 24204 cbnz x0, .L3804 24205 bl ftl_write_commit 24206 b .L3802 24207.L3804: 24208 strb wzr, [x0, 57] 24209 cmp w20, w24 24210 ldr x0, [x29, 104] 24211 ccmp w20, w22, 4, ne 24212 ldrb w0, [x0] 24213 strb w0, [x26, 56] 24214 bne .L3807 24215 cmp w20, w24 24216 bne .L3808 24217 udiv w1, w19, w0 24218 msub w1, w1, w0, w19 24219 and w1, w1, 255 24220 strb w1, [x26, 57] 24221 sub w0, w0, w1 24222 and w0, w0, 255 24223 cmp w21, w0 24224 csel w0, w21, w0, cc 24225.L3822: 24226 strb w0, [x26, 56] 24227.L3807: 24228 ldr x4, [x26, 8] 24229 mov x1, x25 24230 ldrb w0, [x26, 57] 24231 sub w23, w23, #1 24232 ldrb w2, [x26, 56] 24233 ubfiz x0, x0, 9, 8 24234 lsl w2, w2, 9 24235 add x0, x4, x0 24236 bl ftl_memcpy 24237 adrp x0, .LANCHOR69 24238 ldr x1, [x0, #:lo12:.LANCHOR69] 24239 ldr w0, [x1, 8] 24240 str w20, [x26, 36] 24241 add w20, w20, 1 24242 add w2, w0, 1 24243 str w2, [x1, 8] 24244 str w0, [x26, 32] 24245 mov x0, x26 24246 bl ftl_write_buf 24247 ldrb w0, [x26, 56] 24248 ubfiz x0, x0, 9, 8 24249 add x25, x25, x0 24250 b .L3802 24251.L3808: 24252 add w1, w19, w21 24253 msub w0, w0, w20, w1 24254 b .L3822 24255.L3814: 24256 mov w0, -1 24257 b .L3797 24258 .size zftl_write, .-zftl_write 24259 .section .text.zftl_sys_write,"ax",@progbits 24260 .align 2 24261 .global zftl_sys_write 24262 .type zftl_sys_write, %function 24263zftl_sys_write: 24264 mov x3, x2 24265 mov w2, w1 24266 mov w1, w0 24267 mov w0, 2 24268 b zftl_write 24269 .size zftl_sys_write, .-zftl_sys_write 24270 .section .text.StorageSysDataStore,"ax",@progbits 24271 .align 2 24272 .global StorageSysDataStore 24273 .type StorageSysDataStore, %function 24274StorageSysDataStore: 24275 mov x3, x1 24276 mov w2, 1 24277 mov w1, w0 24278 mov w0, 2 24279 b zftl_write 24280 .size StorageSysDataStore, .-StorageSysDataStore 24281 .section .text.FlashBootVendorWrite,"ax",@progbits 24282 .align 2 24283 .global FlashBootVendorWrite 24284 .type FlashBootVendorWrite, %function 24285FlashBootVendorWrite: 24286 mov x3, x2 24287 mov w2, w1 24288 add w1, w0, 512 24289 mov w0, 2 24290 b zftl_write 24291 .size FlashBootVendorWrite, .-FlashBootVendorWrite 24292 .section .text.ftl_write,"ax",@progbits 24293 .align 2 24294 .global ftl_write 24295 .type ftl_write, %function 24296ftl_write: 24297 stp x29, x30, [sp, -48]! 24298 add x29, sp, 0 24299 stp x19, x20, [sp, 16] 24300 mov w19, w2 24301 stp x21, x22, [sp, 32] 24302 mov x20, x3 24303 mov w22, w1 24304 ands w21, w0, 255 24305 bne .L3827 24306 mov w3, w2 24307 mov w0, 0 24308 mov x2, x20 24309 bl idb_write_data 24310.L3827: 24311 mov x3, x20 24312 mov w2, w19 24313 mov w1, w22 24314 mov w0, w21 24315 ldp x19, x20, [sp, 16] 24316 ldp x21, x22, [sp, 32] 24317 ldp x29, x30, [sp], 48 24318 b zftl_write 24319 .size ftl_write, .-ftl_write 24320 .section .text.ftl_vendor_write,"ax",@progbits 24321 .align 2 24322 .global ftl_vendor_write 24323 .type ftl_vendor_write, %function 24324ftl_vendor_write: 24325 mov x3, x2 24326 mov w2, w1 24327 add w1, w0, 512 24328 mov w0, 2 24329 b zftl_write 24330 .size ftl_vendor_write, .-ftl_vendor_write 24331 .section .text.zftl_vendor_write,"ax",@progbits 24332 .align 2 24333 .global zftl_vendor_write 24334 .type zftl_vendor_write, %function 24335zftl_vendor_write: 24336 b ftl_vendor_write 24337 .size zftl_vendor_write, .-zftl_vendor_write 24338 .section .text.gc_do_copy_back,"ax",@progbits 24339 .align 2 24340 .global gc_do_copy_back 24341 .type gc_do_copy_back, %function 24342gc_do_copy_back: 24343 stp x29, x30, [sp, -224]! 24344 adrp x0, .LANCHOR90 24345 add x29, sp, 0 24346 ldrb w0, [x0, #:lo12:.LANCHOR90] 24347 stp x19, x20, [sp, 16] 24348 stp x21, x22, [sp, 32] 24349 stp x23, x24, [sp, 48] 24350 stp x25, x26, [sp, 64] 24351 stp x27, x28, [sp, 80] 24352 cbnz w0, .L3832 24353 bl buf_alloc 24354 mov x19, x0 24355 cbz x0, .L3831 24356 adrp x21, .LANCHOR76 24357 add x3, x21, :lo12:.LANCHOR76 24358 ldrh w2, [x3, 26] 24359 mov w0, w2 24360 bl gc_get_src_ppa_from_index 24361 add w2, w2, 1 24362 mov w22, w0 24363 str w22, [x19, 40] 24364 strh w2, [x3, 26] 24365 mov w1, 1 24366 mov x0, x19 24367 bl sblk_read_page 24368 ldr w0, [x19, 52] 24369 cmp w0, 512 24370 ccmn w0, #1, 4, ne 24371 bne .L3834 24372 adrp x1, .LANCHOR237 24373 adrp x0, .LC0 24374 mov w2, 1032 24375 add x1, x1, :lo12:.LANCHOR237 24376 add x0, x0, :lo12:.LC0 24377 bl printf 24378.L3834: 24379 ldr x0, [x19, 24] 24380 ldr w20, [x0, 4] 24381 mov w0, w20 24382 bl lpa_hash_get_ppa 24383 str w0, [x29, 176] 24384 cmn w0, #1 24385 bne .L3835 24386 mov w2, 0 24387 add x1, x29, 176 24388 mov w0, w20 24389 bl pm_log2phys 24390.L3835: 24391 ldr w23, [x29, 176] 24392 cmp w22, w23 24393 bne .L3836 24394 adrp x0, .LANCHOR55 24395 add x0, x0, :lo12:.LANCHOR55 24396 add x1, x0, 2 24397 add x0, x0, 1026 24398.L3839: 24399 ldr w2, [x1, 34] 24400 cmp w20, w2 24401 bne .L3837 24402 ldrb w2, [x1] 24403 tbz x2, 1, .L3837 24404 mov x0, x19 24405 bl zbuf_free 24406 adrp x0, .LANCHOR19 24407 ldr w0, [x0, #:lo12:.LANCHOR19] 24408 tbz x0, 8, .L3831 24409 add x21, x21, :lo12:.LANCHOR76 24410 adrp x0, .LC231 24411 mov w2, w22 24412 mov w1, w20 24413 add x0, x0, :lo12:.LC231 24414 ldrh w3, [x21, 26] 24415 bl printf 24416.L3831: 24417 ldp x19, x20, [sp, 16] 24418 ldp x21, x22, [sp, 32] 24419 ldp x23, x24, [sp, 48] 24420 ldp x25, x26, [sp, 64] 24421 ldp x27, x28, [sp, 80] 24422 ldp x29, x30, [sp], 224 24423 ret 24424.L3837: 24425 add x1, x1, 64 24426 cmp x1, x0 24427 bne .L3839 24428 adrp x0, .LANCHOR68 24429 strb wzr, [x19, 57] 24430 str w20, [x19, 36] 24431 ldrb w0, [x0, #:lo12:.LANCHOR68] 24432 strb w0, [x19, 56] 24433 ldr x0, [x19, 24] 24434 ldr w1, [x0] 24435 str w1, [x19, 32] 24436 str wzr, [x0, 16] 24437 adrp x0, .LANCHOR19 24438 ldr w0, [x0, #:lo12:.LANCHOR19] 24439 tbz x0, 8, .L3840 24440 mov w0, w20 24441 bl lpa_hash_get_ppa 24442 add x1, x21, :lo12:.LANCHOR76 24443 mov w3, w0 24444 mov w4, w22 24445 adrp x0, .LC232 24446 mov w2, w23 24447 add x0, x0, :lo12:.LC232 24448 ldrh w5, [x1, 26] 24449 mov w1, w20 24450 bl printf 24451.L3840: 24452 mov x0, x19 24453 bl ftl_gc_write_buf 24454 bl ftl_write_commit 24455 add x21, x21, :lo12:.LANCHOR76 24456 adrp x0, .LANCHOR69 24457 ldr x1, [x0, #:lo12:.LANCHOR69] 24458 ldr w0, [x1, 60] 24459 add w0, w0, 1 24460 str w0, [x1, 60] 24461 ldrh w0, [x21, 28] 24462 add w0, w0, 1 24463 strh w0, [x21, 28] 24464 b .L3831 24465.L3836: 24466 adrp x0, .LANCHOR19 24467 ldr w0, [x0, #:lo12:.LANCHOR19] 24468 tbz x0, 8, .L3841 24469 add x21, x21, :lo12:.LANCHOR76 24470 mov w0, w20 24471 bl lpa_hash_get_ppa 24472 mov w3, w0 24473 mov w4, w22 24474 adrp x0, .LC232 24475 ldrh w5, [x21, 26] 24476 mov w2, w23 24477 mov w1, w20 24478 add x0, x0, :lo12:.LC232 24479 bl printf 24480.L3841: 24481 mov x0, x19 24482 bl zbuf_free 24483 b .L3831 24484.L3832: 24485 adrp x2, .LANCHOR12 24486 adrp x1, .LANCHOR85 24487 stp x1, x2, [x29, 136] 24488 ldr x26, [x2, #:lo12:.LANCHOR12] 24489 ldrb w3, [x1, #:lo12:.LANCHOR85] 24490 add x26, x26, 80 24491 ldrb w0, [x26, 9] 24492 and w20, w0, 65535 24493 cmp w3, w20 24494 bhi .L3896 24495 cmp w20, 2 24496 mov w21, 2 24497 csel w21, w20, w21, ls 24498 and w21, w21, 65535 24499.L3842: 24500 adrp x1, .LANCHOR84 24501 str x1, [x29, 120] 24502 ldrb w19, [x1, #:lo12:.LANCHOR84] 24503 cmp w19, 3 24504 bne .L3843 24505 adrp x1, .LANCHOR35 24506 ldrb w1, [x1, #:lo12:.LANCHOR35] 24507 cbz w1, .L3844 24508 adrp x1, .LANCHOR76 24509 add x1, x1, :lo12:.LANCHOR76 24510 ldrh w22, [x1, 2106] 24511 adrp x1, .LANCHOR130 24512 ldrb w1, [x1, #:lo12:.LANCHOR130] 24513 sdiv w2, w22, w0 24514 and w25, w2, 65535 24515 cbz w1, .L3845 24516 adrp x1, .LANCHOR238 24517 add x1, x1, :lo12:.LANCHOR238 24518 ldrh w1, [x1, w2, sxtw 1] 24519 cmp w1, 0 24520 cset w19, ne 24521.L3963: 24522 add w19, w19, 1 24523.L3846: 24524 msub w20, w20, w25, w22 24525 and w20, w20, 65535 24526.L3847: 24527 adrp x1, .LANCHOR91 24528 mul w11, w19, w21 24529 adrp x10, .LANCHOR238 24530 sxtw x13, w25 24531 ldrh w5, [x1, #:lo12:.LANCHOR91] 24532 adrp x1, .LANCHOR224 24533 add x10, x10, :lo12:.LANCHOR238 24534 mov w2, 0 24535 mul w0, w5, w0 24536 ldrb w5, [x1, #:lo12:.LANCHOR224] 24537 sub w5, w0, w5 24538 adrp x0, .LANCHOR130 24539 ldrb w12, [x0, #:lo12:.LANCHOR130] 24540 adrp x0, .LANCHOR161 24541 ldr x8, [x0, #:lo12:.LANCHOR161] 24542 adrp x0, .LANCHOR76 24543 add x6, x0, :lo12:.LANCHOR76 24544 ldrh w14, [x6, 24] 24545.L3851: 24546 cmp w2, w11 24547 bge .L3904 24548 add w4, w22, w2 24549 cmp w4, w5 24550 blt .L3852 24551 cbz w12, .L3904 24552 ldrh w0, [x10, x13, lsl 1] 24553 cmp w0, w25 24554 bcc .L3853 24555.L3904: 24556 mov w23, 1 24557 b .L3849 24558.L3896: 24559 mov w21, 1 24560 b .L3842 24561.L3845: 24562 adrp x1, .LANCHOR216 24563 ldrb w1, [x1, #:lo12:.LANCHOR216] 24564 cbz w1, .L3898 24565 sub w1, w25, #62 24566 and w1, w1, 65535 24567 cmp w1, 2159 24568 bhi .L3899 24569 udiv w19, w25, w19 24570 add w19, w19, w19, lsl 1 24571 sub w19, w25, w19 24572 and w19, w19, 65535 24573 cmp w19, 0 24574 cset w19, eq 24575 b .L3963 24576.L3898: 24577 mov w19, 1 24578 b .L3846 24579.L3899: 24580 mov w19, 2 24581 b .L3846 24582.L3844: 24583 adrp x1, .LANCHOR89 24584 ldrb w1, [x1, #:lo12:.LANCHOR89] 24585 cbz w1, .L3848 24586 adrp x1, .LANCHOR76 24587 add x1, x1, :lo12:.LANCHOR76 24588 add w20, w0, w0, lsl 1 24589 ldrh w22, [x1, 2106] 24590 adrp x1, .LANCHOR36 24591 ldrb w1, [x1, #:lo12:.LANCHOR36] 24592 sdiv w20, w22, w20 24593 and w25, w20, 65535 24594 mul w20, w0, w20 24595 sub w20, w20, w20, lsl 2 24596 add w20, w20, w22 24597 sdiv w20, w20, w19 24598 and w20, w20, 65535 24599 cbz w1, .L3847 24600 add w3, w25, w25, lsl 1 24601 and w25, w3, 65535 24602 b .L3847 24603.L3848: 24604 adrp x1, .LANCHOR76 24605 add x1, x1, :lo12:.LANCHOR76 24606 adrp x2, .LANCHOR239 24607 add x2, x2, :lo12:.LANCHOR239 24608 ldrh w4, [x1, 2106] 24609 sdiv w1, w4, w0 24610 ldrh w23, [x2, w1, sxtw 1] 24611 msub w20, w20, w1, w4 24612 and w20, w20, 65535 24613 lsr w25, w23, 3 24614 and w23, w23, 7 24615 cmp w23, 1 24616 madd w22, w25, w0, w20 24617 add w22, w22, w22, lsl 1 24618 and w22, w22, 65535 24619 beq .L3847 24620.L3849: 24621 mul w0, w19, w21 24622 stp wzr, w0, [x29, 152] 24623 ubfiz w0, w21, 1, 15 24624 str w0, [x29, 132] 24625 msub w0, w0, w19, w22 24626 and w0, w0, 65535 24627 str w0, [x29, 128] 24628 ldrh w0, [x29, 128] 24629 str x0, [x29, 112] 24630 adrp x0, .LANCHOR55 24631 add x0, x0, :lo12:.LANCHOR55 24632 str x0, [x29, 104] 24633.L3854: 24634 ldp w0, w1, [x29, 152] 24635 ldrh w24, [x29, 152] 24636 and w0, w0, 65535 24637 str w0, [x29, 168] 24638 cmp w0, w1 24639 blt .L3878 24640 ldr x0, [x29, 120] 24641 ldrb w0, [x0, #:lo12:.LANCHOR84] 24642 cmp w0, 3 24643 add x0, x29, 176 24644 bne .L3879 24645 adrp x1, .LANCHOR35 24646 ldrb w1, [x1, #:lo12:.LANCHOR35] 24647 cbz w1, .L3880 24648 ldr w2, [x29, 156] 24649 mov w1, 0 24650 sub w2, w2, #1 24651.L3881: 24652 cmp w1, w2 24653 blt .L3882 24654.L3967: 24655 ldr x0, [x0, w2, sxtw 3] 24656 mov w1, -1 24657 strb w1, [x0] 24658 mul w1, w21, w19 24659 ldr x0, [x29, 176] 24660 bl sblk_prog_page 24661 b .L3883 24662.L3843: 24663 adrp x1, .LANCHOR86 24664 ldrb w1, [x1, #:lo12:.LANCHOR86] 24665 cbnz w1, .L3850 24666 adrp x1, .LANCHOR76 24667 add x1, x1, :lo12:.LANCHOR76 24668 mov w19, 1 24669 ldrh w22, [x1, 2106] 24670 sdiv w25, w22, w0 24671 msub w20, w20, w25, w22 24672 and w20, w20, 65535 24673 b .L3847 24674.L3850: 24675 adrp x1, .LANCHOR76 24676 add x1, x1, :lo12:.LANCHOR76 24677 mov w19, 2 24678 ldrh w22, [x1, 2106] 24679 sdiv w25, w22, w0 24680 msub w20, w20, w25, w22 24681 and w20, w20, 65535 24682 b .L3847 24683.L3853: 24684 tbz x2, 0, .L3904 24685.L3852: 24686 sbfiz x4, x4, 2, 32 24687 ldr w0, [x8, x4] 24688 cmn w0, #1 24689 bne .L3855 24690 ldrh w7, [x6, 26] 24691 cmp w7, w14 24692 bcs .L3831 24693 cbz w12, .L3856 24694 ldrh w0, [x10, x13, lsl 1] 24695 cmp w0, w25 24696 bcs .L3856 24697 tbz x2, 0, .L3856 24698 ubfiz x0, x0, 2, 16 24699 ldr w0, [x8, x0] 24700.L3964: 24701 str w0, [x8, x4] 24702.L3855: 24703 add w2, w2, 1 24704 and w2, w2, 65535 24705 b .L3851 24706.L3856: 24707 mov w0, w7 24708 bl gc_get_src_ppa_from_index 24709 add w7, w7, 1 24710 strh w7, [x6, 26] 24711 b .L3964 24712.L3878: 24713 ldr w0, [x29, 168] 24714 add w0, w22, w0 24715 str w0, [x29, 172] 24716 sxtw x0, w0 24717 str x0, [x29, 160] 24718 adrp x0, .LANCHOR88 24719 ldr x1, [x29, 160] 24720 ldr x0, [x0, #:lo12:.LANCHOR88] 24721 ldrb w0, [x0, x1] 24722 cmp w0, 255 24723 bne .L3858 24724 mov w0, 0 24725 bl buf_alloc 24726 mov x27, x0 24727 cbnz x0, .L3859 24728 bl sblk_wait_write_queue_completed 24729 bl ftl_write_completed 24730 bl gc_write_completed 24731 bl gc_free_temp_buf 24732 mov w0, 0 24733 bl buf_alloc 24734 mov x27, x0 24735 cbz x0, .L3831 24736.L3859: 24737 adrp x0, .LANCHOR88 24738 ldr x2, [x29, 160] 24739 ldrb w1, [x27, 1] 24740 ldr x0, [x0, #:lo12:.LANCHOR88] 24741 strb w1, [x0, x2] 24742 adrp x0, .LANCHOR76 24743 add x1, x0, :lo12:.LANCHOR76 24744 strb w23, [x27, 61] 24745 ldrb w0, [x1, 7] 24746 add w0, w0, 1 24747 strb w0, [x1, 7] 24748 add w0, w24, w22 24749 strh w0, [x27, 48] 24750 adrp x0, .LANCHOR91 24751 ldr w1, [x29, 172] 24752 ldrh w6, [x0, #:lo12:.LANCHOR91] 24753 adrp x0, .LANCHOR224 24754 ldrb w5, [x0, #:lo12:.LANCHOR224] 24755 ldrb w0, [x26, 9] 24756 mul w0, w0, w6 24757 sub w0, w0, w5 24758 cmp w1, w0 24759 blt .L3860 24760 adrp x1, .LANCHOR130 24761 ldrb w1, [x1, #:lo12:.LANCHOR130] 24762 cbz w1, .L3861 24763 adrp x1, .LANCHOR238 24764 add x1, x1, :lo12:.LANCHOR238 24765 ldrh w1, [x1, w25, sxtw 1] 24766 cmp w1, w25 24767 bcs .L3861 24768 tbnz x24, 0, .L3860 24769.L3861: 24770 adrp x1, .LANCHOR160 24771 ldr w3, [x29, 172] 24772 mov w2, -1 24773 cmp w5, 2 24774 ldr x1, [x1, #:lo12:.LANCHOR160] 24775 str w2, [x1, w3, sxtw 2] 24776 bne .L3862 24777 cmp w3, w0 24778 adrp x28, .LANCHOR221 24779 bne .L3863 24780 ldrh w2, [x28, #:lo12:.LANCHOR221] 24781 ldr x0, [x27, 8] 24782 bl ftl_memcpy 24783 adrp x0, .LANCHOR68 24784 mov w1, 0 24785 ldrb w2, [x0, #:lo12:.LANCHOR68] 24786 ldr x0, [x27, 24] 24787 lsl w2, w2, 1 24788 bl ftl_memset 24789 ldr x6, [x27, 24] 24790 mov w0, 15555 24791 movk w0, 0xf55f, lsl 16 24792 ldrh w1, [x28, #:lo12:.LANCHOR221] 24793 str w0, [x6] 24794 ldr x0, [x27, 8] 24795 bl js_hash 24796 str w0, [x6, 4] 24797 ldr x0, [x29, 144] 24798 ldr x0, [x0, #:lo12:.LANCHOR12] 24799 ldr w0, [x0, 132] 24800 stp w0, wzr, [x6, 8] 24801.L3864: 24802 ldr x0, [x27, 24] 24803 str wzr, [x0, 16] 24804.L3858: 24805 adrp x0, .LANCHOR88 24806 ldrsw x2, [x29, 168] 24807 add x4, x29, 176 24808 ldr x1, [x0, #:lo12:.LANCHOR88] 24809 ldr x0, [x29, 160] 24810 ldrb w5, [x1, x0] 24811 adrp x0, .LANCHOR55 24812 add x6, x0, :lo12:.LANCHOR55 24813 mov x7, x5 24814 ubfiz x0, x5, 6, 8 24815 add x0, x6, x0 24816 add x6, x6, x5, lsl 6 24817 str x0, [x4, x2, lsl 3] 24818 mov w0, 2 24819 strh w0, [x6, 50] 24820 ldr x0, [x29, 120] 24821 strb w23, [x6, 61] 24822 ldrb w0, [x0, #:lo12:.LANCHOR84] 24823 cmp w0, 3 24824 bne .L3869 24825 adrp x8, .LANCHOR35 24826 ldrb w8, [x8, #:lo12:.LANCHOR35] 24827 cbz w8, .L3870 24828 adrp x0, .LANCHOR130 24829 and w8, w24, 1 24830 add w10, w8, w25 24831 ldrb w0, [x0, #:lo12:.LANCHOR130] 24832 cbz w0, .L3871 24833 adrp x6, .LANCHOR238 24834 add x6, x6, :lo12:.LANCHOR238 24835 ldrh w6, [x6, w25, sxtw 1] 24836 cmp w6, w25 24837 bcs .L3871 24838 cmp w8, 0 24839 csel w10, w10, w6, eq 24840.L3871: 24841 adrp x0, .LANCHOR55 24842 add x6, x0, :lo12:.LANCHOR55 24843 add x5, x6, x5, lsl 6 24844 udiv w6, w24, w19 24845 add w6, w6, w20 24846 add x6, x26, x6, sxtw 1 24847 ldrh w0, [x6, 16] 24848 adrp x6, .LANCHOR117 24849 ldrh w6, [x6, #:lo12:.LANCHOR117] 24850 madd w0, w0, w6, w10 24851 orr w0, w0, 50331648 24852 str w0, [x5, 40] 24853.L3876: 24854 adrp x0, .LANCHOR55 24855 sbfiz x7, x7, 6, 32 24856 add x0, x0, :lo12:.LANCHOR55 24857 add x0, x0, x7 24858 ldrh w5, [x0, 48] 24859 ldr w6, [x0, 40] 24860 adrp x0, .LANCHOR162 24861 ldr x0, [x0, #:lo12:.LANCHOR162] 24862 str w6, [x0, x5, lsl 2] 24863 b .L3895 24864.L3863: 24865 ldr x2, [x29, 136] 24866 ldrh w0, [x28, #:lo12:.LANCHOR221] 24867 ldrb w28, [x2, #:lo12:.LANCHOR85] 24868 mul w28, w28, w6 24869 lsl w28, w28, 2 24870 sub w28, w28, w0 24871 and x0, x0, 65532 24872 add x1, x1, x0 24873 ldr x0, [x27, 8] 24874 mov w2, w28 24875 bl ftl_memcpy 24876 adrp x0, .LANCHOR68 24877 mov w1, 0 24878 ldrb w2, [x0, #:lo12:.LANCHOR68] 24879 ldr x0, [x27, 24] 24880 lsl w2, w2, 1 24881 bl ftl_memset 24882 ldr x6, [x27, 24] 24883 mov w0, 15555 24884 movk w0, 0xf55f, lsl 16 24885 mov w1, w28 24886 str w0, [x6] 24887 ldr x0, [x27, 8] 24888 bl js_hash 24889 str w0, [x6, 4] 24890 ldr x0, [x29, 144] 24891 ldr x0, [x0, #:lo12:.LANCHOR12] 24892 ldr w0, [x0, 132] 24893 str w0, [x6, 8] 24894 mov w0, 1 24895 str w0, [x6, 12] 24896 b .L3864 24897.L3862: 24898 ldr x0, [x29, 136] 24899 ldrb w2, [x0, #:lo12:.LANCHOR85] 24900 ldr x0, [x27, 8] 24901 mul w2, w2, w6 24902 lsl w2, w2, 2 24903 bl ftl_memcpy 24904 ldr x1, [x29, 136] 24905 adrp x0, .LANCHOR91 24906 ldrh w0, [x0, #:lo12:.LANCHOR91] 24907 ldrb w1, [x1, #:lo12:.LANCHOR85] 24908 mul w0, w0, w1 24909 adrp x1, .LANCHOR68 24910 ldrb w1, [x1, #:lo12:.LANCHOR68] 24911 lsl w2, w0, 2 24912 cmp w1, w0, lsr 6 24913 bge .L3865 24914 adrp x1, .LANCHOR221 24915 ldrh w1, [x1, #:lo12:.LANCHOR221] 24916 sub w2, w1, w2 24917.L3865: 24918 adrp x1, .LANCHOR161 24919 ldr x5, [x27, 8] 24920 ldr x1, [x1, #:lo12:.LANCHOR161] 24921 add x0, x5, x0, sxtw 2 24922 bl ftl_memcpy 24923 adrp x0, .LANCHOR68 24924 mov w1, 0 24925 ldrb w2, [x0, #:lo12:.LANCHOR68] 24926 ldr x0, [x27, 24] 24927 lsl w2, w2, 1 24928 bl ftl_memset 24929 ldr x6, [x27, 24] 24930 mov w0, 15555 24931 movk w0, 0xf55f, lsl 16 24932 str w0, [x6] 24933 adrp x0, .LANCHOR91 24934 ldrh w1, [x0, #:lo12:.LANCHOR91] 24935 ldr x0, [x29, 136] 24936 ldrb w0, [x0, #:lo12:.LANCHOR85] 24937 mul w1, w1, w0 24938 ldr x0, [x27, 8] 24939 lsl w1, w1, 2 24940 bl js_hash 24941 str w0, [x6, 4] 24942 ldr x0, [x29, 144] 24943 ldr x0, [x0, #:lo12:.LANCHOR12] 24944 ldr w0, [x0, 132] 24945 str w0, [x6, 8] 24946 b .L3864 24947.L3860: 24948 ldr x0, [x29, 160] 24949 mov w1, 1 24950 lsl x28, x0, 2 24951 adrp x0, .LANCHOR161 24952 ldr x0, [x0, #:lo12:.LANCHOR161] 24953 ldr w0, [x0, x28] 24954 str w0, [x27, 40] 24955 mov x0, x27 24956 bl sblk_read_page 24957 ldr w0, [x27, 52] 24958 cmp w0, 512 24959 ccmn w0, #1, 4, ne 24960 bne .L3867 24961 adrp x0, .LANCHOR80 24962 ldrh w2, [x0, #:lo12:.LANCHOR80] 24963 adrp x0, .LANCHOR31 24964 ldrb w1, [x0, #:lo12:.LANCHOR31] 24965 mov w0, 24 24966 sub w0, w0, w1 24967 sub w1, w0, w2 24968 mov w0, 1 24969 lsl w0, w0, w1 24970 ldr w1, [x27, 40] 24971 sub w0, w0, #1 24972 lsr w1, w1, w2 24973 and w0, w0, w1 24974 adrp x1, .LANCHOR81 24975 ldrb w2, [x1, #:lo12:.LANCHOR81] 24976 mov x1, 0 24977 udiv w0, w0, w2 24978 bl ftl_sblk_dump 24979 ldr w0, [x27, 52] 24980 cmp w0, 512 24981 ccmn w0, #1, 4, ne 24982 bne .L3867 24983 ldr x0, [x27, 24] 24984 mov w1, -1 24985 str w1, [x0, 4] 24986 ldr w0, [x27, 52] 24987 cmp w0, 512 24988 ccmp w0, w1, 4, ne 24989 bne .L3867 24990 adrp x1, .LANCHOR237 24991 adrp x0, .LC0 24992 mov w2, 1223 24993 add x1, x1, :lo12:.LANCHOR237 24994 add x0, x0, :lo12:.LC0 24995 bl printf 24996.L3867: 24997 ldr x0, [x27, 24] 24998 adrp x1, .LANCHOR219 24999 ldr w1, [x1, #:lo12:.LANCHOR219] 25000 ldr w2, [x0, 4] 25001 cmp w2, w1 25002 bcc .L3868 25003 mov w1, -1 25004 str w1, [x0, 4] 25005.L3868: 25006 adrp x1, .LANCHOR160 25007 ldr w2, [x0, 4] 25008 ldr x1, [x1, #:lo12:.LANCHOR160] 25009 str w2, [x1, x28] 25010 ldr w1, [x27, 40] 25011 str w1, [x0, 8] 25012 b .L3864 25013.L3870: 25014 udiv w0, w24, w0 25015 adrp x7, .LANCHOR36 25016 ldrb w7, [x7, #:lo12:.LANCHOR36] 25017 cbz w7, .L3873 25018 add w7, w0, w20 25019 adrp x8, .LANCHOR117 25020 add x7, x26, x7, sxtw 1 25021 add w0, w0, w0, lsl 1 25022 ldrh w8, [x8, #:lo12:.LANCHOR117] 25023 sub w0, w24, w0 25024 ldrh w7, [x7, 16] 25025 madd w7, w7, w8, w25 25026 add w0, w7, w0, uxth 25027.L3968: 25028 str w0, [x6, 40] 25029 ldr x0, [x29, 104] 25030 add x5, x0, x5, lsl 6 25031 adrp x0, .LANCHOR162 25032 ldr x6, [x0, #:lo12:.LANCHOR162] 25033 mov w0, 3 25034 ldrh w7, [x5, 48] 25035 udiv w0, w24, w0 25036 ldr w5, [x5, 40] 25037 add w0, w0, w0, lsl 1 25038 sub w0, w24, w0 25039 and w0, w0, 65535 25040 add w0, w0, 1 25041 orr w0, w5, w0, lsl 24 25042 str w0, [x6, x7, lsl 2] 25043.L3895: 25044 adrp x0, .LANCHOR130 25045 ldrb w0, [x0, #:lo12:.LANCHOR130] 25046 cbz w0, .L3877 25047 adrp x0, .LANCHOR238 25048 add x0, x0, :lo12:.LANCHOR238 25049 ldrh w0, [x0, w25, sxtw 1] 25050 cmp w0, w25 25051 bcs .L3877 25052 tbz x24, 0, .L3877 25053 ldr x3, [x29, 160] 25054 mov w0, -1 25055 strb w0, [x1, x3] 25056 ldrh w1, [x29, 128] 25057 ldr x0, [x4, x2, lsl 3] 25058 ldr x2, [x29, 112] 25059 strh w1, [x0, 48] 25060 ldrb w1, [x0, 1] 25061 adrp x0, .LANCHOR88 25062 ldr x0, [x0, #:lo12:.LANCHOR88] 25063 strb w1, [x0, x2] 25064 adrp x0, .LANCHOR161 25065 ldr w2, [x29, 172] 25066 mov w1, -1 25067 ldr x0, [x0, #:lo12:.LANCHOR161] 25068 str w1, [x0, w2, sxtw 2] 25069.L3877: 25070 ldr w0, [x29, 152] 25071 add w0, w0, 1 25072 str w0, [x29, 152] 25073 b .L3854 25074.L3873: 25075 add w0, w0, w20 25076 adrp x7, .LANCHOR117 25077 add x0, x26, x0, sxtw 1 25078 ldrh w7, [x7, #:lo12:.LANCHOR117] 25079 ldrh w0, [x0, 16] 25080 madd w0, w0, w7, w25 25081 b .L3968 25082.L3869: 25083 cmp w0, 2 25084 bne .L3876 25085 adrp x0, .LANCHOR86 25086 adrp x5, .LANCHOR117 25087 ldrb w0, [x0, #:lo12:.LANCHOR86] 25088 cbnz w0, .L3875 25089 ldr w0, [x29, 168] 25090 ldrh w5, [x5, #:lo12:.LANCHOR117] 25091 add w27, w20, w0 25092 add x27, x26, x27, sxtw 1 25093 ldrh w0, [x27, 16] 25094 madd w0, w0, w5, w25 25095.L3965: 25096 orr w0, w0, 33554432 25097 str w0, [x6, 40] 25098 b .L3876 25099.L3875: 25100 add w0, w20, w24, lsr 1 25101 ldrh w5, [x5, #:lo12:.LANCHOR117] 25102 add x0, x26, x0, sxtw 1 25103 ldrh w0, [x0, 16] 25104 madd w0, w0, w5, w25 25105 and w5, w24, 1 25106 add w0, w0, w5 25107 b .L3965 25108.L3882: 25109 ldr x4, [x0, w1, sxtw 3] 25110 add w1, w1, 1 25111 ldr x5, [x0, w1, sxtw 3] 25112 and w1, w1, 65535 25113 ldrb w5, [x5, 1] 25114 strb w5, [x4] 25115 b .L3881 25116.L3880: 25117 adrp x1, .LANCHOR89 25118 ldrb w2, [x1, #:lo12:.LANCHOR89] 25119 ldr x1, [x29, 176] 25120 cbz w2, .L3884 25121.L3887: 25122 strb wzr, [x1, 60] 25123 b .L3886 25124.L3884: 25125 cmp w23, 1 25126 bne .L3885 25127 mov w2, 9 25128.L3966: 25129 strb w2, [x1, 60] 25130.L3886: 25131 mov w2, w21 25132 add x1, x0, 24 25133 bl sblk_xlc_prog_pages 25134.L3883: 25135 adrp x0, .LANCHOR89 25136 ldrb w0, [x0, #:lo12:.LANCHOR89] 25137 cbz w0, .L3892 25138 add w21, w21, w21, lsl 1 25139 and w21, w21, 65535 25140.L3893: 25141 adrp x0, .LANCHOR69 25142 ldr x1, [x0, #:lo12:.LANCHOR69] 25143 ldr w0, [x1, 52] 25144 add w0, w0, w21 25145 str w0, [x1, 52] 25146 adrp x0, .LANCHOR76 25147 add x25, x0, :lo12:.LANCHOR76 25148 ldrh w0, [x25, 2106] 25149 add w21, w21, w0 25150 adrp x0, .LANCHOR91 25151 and w21, w21, 65535 25152 strh w21, [x25, 2106] 25153 ldrh w0, [x0, #:lo12:.LANCHOR91] 25154 ldrb w1, [x26, 9] 25155 mul w0, w0, w1 25156 cmp w21, w0 25157 blt .L3894 25158 ldr x0, [x29, 144] 25159 ldr x0, [x0, #:lo12:.LANCHOR12] 25160 strh wzr, [x0, 86] 25161.L3894: 25162 bl gc_write_completed 25163 b .L3831 25164.L3885: 25165 cmp w23, 2 25166 bne .L3887 25167 mov w2, 13 25168 b .L3966 25169.L3879: 25170 adrp x1, .LANCHOR86 25171 ldrb w1, [x1, #:lo12:.LANCHOR86] 25172 cbz w1, .L3905 25173 adrp x1, .LANCHOR87 25174 ldrb w1, [x1, #:lo12:.LANCHOR87] 25175 cbnz w1, .L3889 25176.L3888: 25177 ldr w2, [x29, 156] 25178 sub w2, w2, #1 25179.L3890: 25180 cmp w1, w2 25181 bge .L3967 25182 ldr x4, [x0, w1, sxtw 3] 25183 add w1, w1, 1 25184 ldr x5, [x0, w1, sxtw 3] 25185 and w1, w1, 65535 25186 ldrb w5, [x5, 1] 25187 strb w5, [x4] 25188 b .L3890 25189.L3905: 25190 mov w1, 0 25191 b .L3888 25192.L3889: 25193 mov w1, w21 25194 bl sblk_3d_mlc_prog_pages 25195 b .L3883 25196.L3892: 25197 adrp x0, .LANCHOR86 25198 ldrb w0, [x0, #:lo12:.LANCHOR86] 25199 cbnz w0, .L3906 25200 adrp x0, .LANCHOR35 25201 ldrb w0, [x0, #:lo12:.LANCHOR35] 25202 cbz w0, .L3893 25203 adrp x0, .LANCHOR130 25204 ldrh w1, [x29, 156] 25205 ldrb w0, [x0, #:lo12:.LANCHOR130] 25206 cbz w0, .L3907 25207 adrp x0, .LANCHOR238 25208 add x0, x0, :lo12:.LANCHOR238 25209 ldrh w0, [x0, w25, sxtw 1] 25210 cmp w0, w25 25211 csel w21, w21, w1, cc 25212 b .L3893 25213.L3906: 25214 ldr w21, [x29, 132] 25215 b .L3893 25216.L3907: 25217 mov w21, w1 25218 b .L3893 25219 .size gc_do_copy_back, .-gc_do_copy_back 25220 .section .text.zftl_do_gc,"ax",@progbits 25221 .align 2 25222 .global zftl_do_gc 25223 .type zftl_do_gc, %function 25224zftl_do_gc: 25225 sub sp, sp, #144 25226 adrp x1, .LANCHOR113 25227 stp x29, x30, [sp, 16] 25228 add x29, sp, 16 25229 ldrh w1, [x1, #:lo12:.LANCHOR113] 25230 stp x21, x22, [sp, 48] 25231 adrp x22, .LANCHOR109 25232 stp x19, x20, [sp, 32] 25233 adrp x20, .LANCHOR157 25234 stp x23, x24, [sp, 64] 25235 adrp x23, .LANCHOR12 25236 stp x25, x26, [sp, 80] 25237 ldrh w21, [x22, #:lo12:.LANCHOR109] 25238 ldrb w2, [x20, #:lo12:.LANCHOR157] 25239 stp x27, x28, [sp, 96] 25240 add w21, w1, w21 25241 ldr x26, [x23, #:lo12:.LANCHOR12] 25242 cmp w2, 6 25243 bhi .L4086 25244 mov w25, w0 25245 and w21, w21, 65535 25246 adrp x0, .L3972 25247 add x0, x0, :lo12:.L3972 25248 ldrh w0, [x0,w2,uxtw #1] 25249 adr x2, .Lrtx3972 25250 add x0, x2, w0, sxth #2 25251 br x0 25252.Lrtx3972: 25253 .section .rodata.zftl_do_gc,"a",@progbits 25254 .align 0 25255 .align 2 25256.L3972: 25257 .2byte (.L3971 - .Lrtx3972) / 4 25258 .2byte (.L3973 - .Lrtx3972) / 4 25259 .2byte (.L3974 - .Lrtx3972) / 4 25260 .2byte (.L3975 - .Lrtx3972) / 4 25261 .2byte (.L3976 - .Lrtx3972) / 4 25262 .2byte (.L3977 - .Lrtx3972) / 4 25263 .2byte (.L3978 - .Lrtx3972) / 4 25264 .section .text.zftl_do_gc 25265.L3977: 25266 adrp x19, .LANCHOR76 25267 add x24, x19, :lo12:.LANCHOR76 25268 mov w22, 0 25269.L3979: 25270 bl gc_check_data_one_wl 25271 cbz w0, .L4082 25272 ldr x0, [x23, #:lo12:.LANCHOR12] 25273 add x19, x19, :lo12:.LANCHOR76 25274 strh wzr, [x19, 56] 25275 ldrh w0, [x0, 80] 25276 bl ftl_free_sblk 25277 adrp x2, .LANCHOR69 25278 ldr x1, [x23, #:lo12:.LANCHOR12] 25279 mov w0, -1 25280 ldr x2, [x2, #:lo12:.LANCHOR69] 25281 strh w0, [x1, 80] 25282 strh w0, [x2, 126] 25283 strh w0, [x1, 130] 25284 ldr x0, [x19, 8] 25285 bl zbuf_free 25286 strb wzr, [x20, #:lo12:.LANCHOR157] 25287 str xzr, [x19, 8] 25288 b .L4172 25289.L3971: 25290 adrp x0, .LANCHOR111 25291 adrp x27, .LANCHOR103 25292 ldrh w3, [x26, 80] 25293 ldrh w22, [x0, #:lo12:.LANCHOR111] 25294 adrp x0, .LANCHOR105 25295 ldrh w24, [x27, #:lo12:.LANCHOR103] 25296 ldrh w2, [x0, #:lo12:.LANCHOR105] 25297 add w22, w1, w22 25298 stp x0, x27, [x29, 112] 25299 and w22, w22, 65535 25300 add w24, w24, w2 25301 mov w2, 65535 25302 and w24, w24, 65535 25303 cmp w3, w2 25304 beq .L3980 25305 cbnz w25, .L3981 25306 adrp x0, .LANCHOR92 25307 ldrh w0, [x0, #:lo12:.LANCHOR92] 25308 cmp w21, w0, lsl 1 25309 blt .L3981 25310.L4086: 25311 mov w19, 16 25312 b .L3969 25313.L3981: 25314 adrp x5, .LANCHOR102 25315 adrp x0, .LANCHOR98 25316 add x0, x0, :lo12:.LANCHOR98 25317 adrp x25, .LANCHOR90 25318 ldrh w1, [x5, #:lo12:.LANCHOR102] 25319 add w1, w1, 1 25320 and w1, w1, 65535 25321 strh w1, [x5, #:lo12:.LANCHOR102] 25322 bl _list_get_gc_head_node 25323 and w3, w0, 65535 25324 mov w1, 65535 25325 cmp w3, w1 25326 beq .L3982 25327 adrp x4, .LANCHOR11 25328 ubfiz x3, x3, 1, 16 25329 adrp x1, .LANCHOR158 25330 mov x19, x1 25331 ldr x4, [x4, #:lo12:.LANCHOR11] 25332 ldr w2, [x1, #:lo12:.LANCHOR158] 25333 add w2, w2, 1 25334 str w2, [x1, #:lo12:.LANCHOR158] 25335 ldrh w3, [x4, x3] 25336 adrp x4, .LANCHOR100 25337 ldrh w4, [x4, #:lo12:.LANCHOR100] 25338 cmp w4, w3 25339 bcs .L3983 25340 adrp x1, .LANCHOR8 25341 ldrh w1, [x1, #:lo12:.LANCHOR8] 25342 cmp w2, w1, lsr 4 25343 bls .L3982 25344 adrp x1, .LANCHOR106 25345 ldrh w1, [x1, #:lo12:.LANCHOR106] 25346 cmp w1, w3 25347 bls .L3982 25348.L3983: 25349 ldrb w2, [x25, #:lo12:.LANCHOR90] 25350 mov w1, 0 25351 bl gc_add_sblk 25352 cbz w0, .L3984 25353 mov w0, 1 25354 str wzr, [x19, #:lo12:.LANCHOR158] 25355 strb w0, [x20, #:lo12:.LANCHOR157] 25356 b .L4086 25357.L3982: 25358 strh wzr, [x5, #:lo12:.LANCHOR102] 25359.L3984: 25360 cmp w22, 15 25361 bls .L4088 25362 adrp x0, .LANCHOR97 25363 ldrh w1, [x0, #:lo12:.LANCHOR97] 25364 adrp x0, .LANCHOR107 25365 ldrh w0, [x0, #:lo12:.LANCHOR107] 25366 cmp w1, w0 25367 bhi .L4088 25368 cmp w24, 0 25369 cset w19, eq 25370 add w19, w19, 1 25371.L3985: 25372 adrp x0, .LANCHOR19 25373 ldr w0, [x0, #:lo12:.LANCHOR19] 25374 tbz x0, 8, .L3986 25375 ldr x0, [x23, #:lo12:.LANCHOR12] 25376 mov w4, w22 25377 ldrb w2, [x25, #:lo12:.LANCHOR90] 25378 mov w3, w21 25379 mov w1, 2807 25380 ldrh w7, [x0, 122] 25381 ldrh w6, [x0, 120] 25382 ldrh w5, [x0, 124] 25383 ldrh w0, [x26, 80] 25384 str w0, [sp] 25385 adrp x0, .LC233 25386 add x0, x0, :lo12:.LC233 25387 bl printf 25388.L3986: 25389 ldrb w0, [x25, #:lo12:.LANCHOR90] 25390 mov w2, 1 25391 mov w1, w19 25392 bl gc_search_src_blk 25393 cmp w0, 0 25394 ble .L3987 25395.L3988: 25396 mov w0, 1 25397.L4174: 25398 strb w0, [x20, #:lo12:.LANCHOR157] 25399 b .L4086 25400.L4088: 25401 mov w19, 2 25402 b .L3985 25403.L3987: 25404 ldrb w0, [x25, #:lo12:.LANCHOR90] 25405 mov w2, 1 25406 mov w1, 3 25407 bl gc_search_src_blk 25408 cmp w0, 0 25409 bgt .L3988 25410 b .L4086 25411.L3980: 25412 cmp w25, 1 25413 bne .L3990 25414 adrp x0, .LANCHOR69 25415 ldr x0, [x0, #:lo12:.LANCHOR69] 25416 ldrh w0, [x0, 150] 25417 cbz w0, .L3991 25418 cmp w1, 8 25419 bls .L3991 25420 bl gc_ink_check_sblk 25421.L3991: 25422 bl gc_scan_static_data 25423 adrp x26, .LANCHOR90 25424 ldr x0, [x23, #:lo12:.LANCHOR12] 25425 ldrh w0, [x0, 122] 25426 cbz w0, .L3992 25427.L3993: 25428 mov w0, 1 25429 strb w0, [x26, #:lo12:.LANCHOR90] 25430 b .L4174 25431.L3992: 25432 bl gc_static_wearleveling 25433 mov w19, w0 25434 cbnz w0, .L3993 25435 adrp x27, .LANCHOR159 25436 cbz w22, .L3994 25437 cmp w21, w24 25438 adrp x1, .LANCHOR104 25439 bcs .L3995 25440 ldrh w0, [x1, #:lo12:.LANCHOR104] 25441 cmp w0, w21 25442 bhi .L3996 25443.L3995: 25444 ldrh w1, [x1, #:lo12:.LANCHOR104] 25445 add w0, w21, w24 25446 cmp w0, w1 25447 blt .L3996 25448 adrp x0, .LANCHOR97 25449 ldrh w1, [x0, #:lo12:.LANCHOR97] 25450 adrp x0, .LANCHOR107 25451 ldrh w0, [x0, #:lo12:.LANCHOR107] 25452 cmp w1, w0 25453 bcc .L3994 25454.L3996: 25455 mov w0, 1 25456 mov w1, 16 25457 strb w0, [x26, #:lo12:.LANCHOR90] 25458 adrp x0, .LANCHOR101 25459 add x0, x0, :lo12:.LANCHOR101 25460 bl _list_get_gc_head_node 25461 and w1, w0, 65535 25462 mov w2, 65535 25463 adrp x28, .LANCHOR158 25464 cmp w1, w2 25465 beq .L3997 25466 adrp x2, .LANCHOR11 25467 ubfiz x1, x1, 1, 16 25468 ldr x2, [x2, #:lo12:.LANCHOR11] 25469 ldrh w2, [x2, x1] 25470 ldrh w1, [x27, #:lo12:.LANCHOR159] 25471 cmp w2, w1 25472 bcs .L3997 25473 cmp w21, 2 25474 bls .L3997 25475 strb wzr, [x26, #:lo12:.LANCHOR90] 25476 mov w2, 0 25477 str wzr, [x28, #:lo12:.LANCHOR158] 25478 mov w1, 1 25479 bl gc_add_sblk 25480 cbnz w0, .L3988 25481.L3997: 25482 mov w1, 0 25483 adrp x0, .LANCHOR96 25484 add x0, x0, :lo12:.LANCHOR96 25485 bl _list_get_gc_head_node 25486 and w1, w0, 65535 25487 mov w2, 65535 25488 cmp w1, w2 25489 beq .L3998 25490 adrp x2, .LANCHOR11 25491 ubfiz x1, x1, 1, 16 25492 ldr x2, [x2, #:lo12:.LANCHOR11] 25493 ldrh w2, [x2, x1] 25494 ldrh w1, [x27, #:lo12:.LANCHOR159] 25495 cmp w2, w1 25496 bcs .L3998 25497 cmp w21, 2 25498 bls .L3998 25499 strb wzr, [x26, #:lo12:.LANCHOR90] 25500 mov w2, 0 25501 str wzr, [x28, #:lo12:.LANCHOR158] 25502 mov w1, 1 25503 bl gc_add_sblk 25504 cbnz w0, .L3988 25505.L3998: 25506 ldrh w0, [x27, #:lo12:.LANCHOR159] 25507 adrp x1, .LANCHOR100 25508 add w0, w0, 1 25509 ldrh w5, [x1, #:lo12:.LANCHOR100] 25510 and w0, w0, 65535 25511 strh w0, [x27, #:lo12:.LANCHOR159] 25512 cmp w0, w5, lsr 5 25513 bls .L3999 25514 mov w0, 4 25515 strh w0, [x27, #:lo12:.LANCHOR159] 25516.L3999: 25517 adrp x1, .LANCHOR93 25518 ldr w0, [x28, #:lo12:.LANCHOR158] 25519 strh wzr, [x1, #:lo12:.LANCHOR93] 25520 adrp x1, .LANCHOR94 25521 add w0, w0, 1 25522 str w0, [x28, #:lo12:.LANCHOR158] 25523 strh wzr, [x1, #:lo12:.LANCHOR94] 25524 adrp x1, .LANCHOR95 25525 strh wzr, [x1, #:lo12:.LANCHOR95] 25526 adrp x1, .LANCHOR8 25527 ldrh w1, [x1, #:lo12:.LANCHOR8] 25528 cmp w0, w1, lsr 5 25529 adrp x0, .LANCHOR97 25530 bls .L4000 25531 ldrh w1, [x0, #:lo12:.LANCHOR97] 25532 cmp w1, w22 25533 bls .L4000 25534 mov w1, 0 25535 adrp x0, .LANCHOR98 25536 add x0, x0, :lo12:.LANCHOR98 25537 bl _list_get_gc_head_node 25538 and w0, w0, 65535 25539 mov w1, 65535 25540 cmp w0, w1 25541 bne .L4001 25542.L4162: 25543 mov w19, 16 25544 b .L4002 25545.L4001: 25546 adrp x1, .LANCHOR11 25547 ubfiz x0, x0, 1, 16 25548 ldr x1, [x1, #:lo12:.LANCHOR11] 25549 ldrh w1, [x1, x0] 25550 adrp x0, .LANCHOR85 25551 ldrb w0, [x0, #:lo12:.LANCHOR85] 25552 mul w0, w0, w5 25553 cmp w1, w0 25554 bgt .L4162 25555 str wzr, [x28, #:lo12:.LANCHOR158] 25556 mov w2, 4 25557.L4168: 25558 mov w1, 2 25559.L4161: 25560 ldrb w0, [x26, #:lo12:.LANCHOR90] 25561 bl gc_search_src_blk 25562 and w0, w0, 65535 25563 cbz w0, .L4162 25564 b .L3988 25565.L4000: 25566 ldrh w1, [x0, #:lo12:.LANCHOR97] 25567 adrp x0, .LANCHOR107 25568 ldrh w0, [x0, #:lo12:.LANCHOR107] 25569 cmp w1, w0 25570 bcc .L4005 25571 mov w2, 1 25572 b .L4168 25573.L4005: 25574 ldr x0, [x29, 120] 25575 ldrh w0, [x0, #:lo12:.LANCHOR103] 25576 cbnz w0, .L4006 25577 ldr x0, [x29, 112] 25578 ldrh w0, [x0, #:lo12:.LANCHOR105] 25579 cmp w0, 8 25580 bls .L4007 25581.L4006: 25582 mov w2, 4 25583 mov w1, 1 25584 b .L4161 25585.L4007: 25586 adrp x0, .LANCHOR76+2110 25587 ldrh w0, [x0, #:lo12:.LANCHOR76+2110] 25588 cbnz w0, .L4162 25589.L4002: 25590 ldr x0, [x23, #:lo12:.LANCHOR12] 25591 adrp x28, .LANCHOR90 25592 mov w1, 1 25593 mov x23, x28 25594 strb w1, [x28, #:lo12:.LANCHOR90] 25595 ldrh w0, [x0, 124] 25596 cbz w0, .L4008 25597 strb wzr, [x28, #:lo12:.LANCHOR90] 25598 strb w1, [x20, #:lo12:.LANCHOR157] 25599.L3969: 25600 mov w0, w19 25601 ldp x19, x20, [sp, 32] 25602 ldp x21, x22, [sp, 48] 25603 ldp x23, x24, [sp, 64] 25604 ldp x25, x26, [sp, 80] 25605 ldp x27, x28, [sp, 96] 25606 ldp x29, x30, [sp, 16] 25607 add sp, sp, 144 25608 ret 25609.L3994: 25610 adrp x0, .LANCHOR100 25611 ldrh w1, [x0, #:lo12:.LANCHOR100] 25612 ldrh w0, [x27, #:lo12:.LANCHOR159] 25613 cmp w0, w1, lsr 5 25614 bcc .L4162 25615 mov w0, 4 25616 strh w0, [x27, #:lo12:.LANCHOR159] 25617 b .L4162 25618.L3990: 25619 adrp x0, .LANCHOR92 25620 ldrh w0, [x0, #:lo12:.LANCHOR92] 25621 cmp w0, w21 25622 bcs .L4162 25623 ldrh w0, [x26, 124] 25624 cbz w0, .L4086 25625 b .L4162 25626.L4008: 25627 adrp x0, .LANCHOR92 25628 mov x26, x0 25629 ldrh w2, [x0, #:lo12:.LANCHOR92] 25630 cmp w21, w2 25631 bcs .L4009 25632 cbz w22, .L4010 25633 cmp w22, 16 25634 bls .L4011 25635 adrp x0, .LANCHOR97 25636 ldrh w2, [x0, #:lo12:.LANCHOR97] 25637 adrp x0, .LANCHOR107 25638 ldrh w0, [x0, #:lo12:.LANCHOR107] 25639 cmp w2, w0 25640 bhi .L4011 25641 mov w2, 4 25642 mov w0, w1 25643 bl gc_search_src_blk 25644 tst w0, 65535 25645 bne .L4012 25646.L4169: 25647 mov w2, 4 25648 mov w1, 3 25649 ldrb w0, [x28, #:lo12:.LANCHOR90] 25650 b .L4164 25651.L4012: 25652 mov w1, 0 25653 adrp x0, .LANCHOR98 25654 add x0, x0, :lo12:.LANCHOR98 25655 bl _list_get_gc_head_node 25656 and w3, w0, 65535 25657 mov w1, 65535 25658 cmp w3, w1 25659 beq .L4015 25660 adrp x4, .LANCHOR11 25661 ubfiz x3, x3, 1, 16 25662 adrp x1, .LANCHOR158 25663 mov x21, x1 25664 ldr x4, [x4, #:lo12:.LANCHOR11] 25665 ldr w2, [x1, #:lo12:.LANCHOR158] 25666 add w2, w2, 1 25667 str w2, [x1, #:lo12:.LANCHOR158] 25668 ldrh w3, [x4, x3] 25669 adrp x4, .LANCHOR100 25670 ldrh w4, [x4, #:lo12:.LANCHOR100] 25671 cmp w4, w3 25672 bcs .L4016 25673 adrp x1, .LANCHOR8 25674 ldrh w1, [x1, #:lo12:.LANCHOR8] 25675 cmp w2, w1, lsr 4 25676 bls .L4015 25677 adrp x1, .LANCHOR106 25678 ldrh w1, [x1, #:lo12:.LANCHOR106] 25679 cmp w1, w3 25680 bls .L4015 25681.L4016: 25682 ldrb w2, [x23, #:lo12:.LANCHOR90] 25683 mov w1, 0 25684 bl gc_add_sblk 25685 str wzr, [x21, #:lo12:.LANCHOR158] 25686 adrp x0, .LANCHOR128 25687 mov w1, 1 25688 str w1, [x0, #:lo12:.LANCHOR128] 25689.L4015: 25690 mov w0, 1 25691 strb w0, [x20, #:lo12:.LANCHOR157] 25692 b .L3969 25693.L4011: 25694 mov w2, 1 25695 mov w1, 2 25696 mov w0, w2 25697 bl gc_search_src_blk 25698 tst w0, 65535 25699 bne .L4015 25700 ldrb w0, [x23, #:lo12:.LANCHOR90] 25701 mov w2, 4 25702 mov w1, 3 25703.L4164: 25704 bl gc_search_src_blk 25705 and w0, w0, 65535 25706.L4013: 25707 cbnz w0, .L4015 25708 b .L3969 25709.L4010: 25710 strb wzr, [x28, #:lo12:.LANCHOR90] 25711 cmp w21, 16 25712 bls .L4018 25713 mov w2, 4 25714 mov w1, 3 25715 mov w0, 0 25716 b .L4164 25717.L4018: 25718 mov w2, w1 25719 mov w0, 0 25720 bl gc_search_src_blk 25721 tst w0, 65535 25722 bne .L4015 25723 b .L4169 25724.L4009: 25725 cmp w25, 1 25726 bne .L3969 25727 cmp w21, w2, lsl 1 25728 bge .L4019 25729 cmp w24, w22, lsr 1 25730 bcs .L4020 25731 adrp x1, .LANCHOR97 25732 ldrh w2, [x1, #:lo12:.LANCHOR97] 25733 adrp x1, .LANCHOR107 25734 ldrh w1, [x1, #:lo12:.LANCHOR107] 25735 cmp w2, w1 25736 bcs .L4020 25737 adrp x1, .LANCHOR104 25738 ldrh w1, [x1, #:lo12:.LANCHOR104] 25739 lsr w1, w1, 2 25740 strh w1, [x0, #:lo12:.LANCHOR92] 25741 b .L3969 25742.L4020: 25743 mov w1, 8 25744 adrp x25, .LANCHOR101 25745 add x0, x25, :lo12:.LANCHOR101 25746 bl _list_get_gc_head_node 25747 and w1, w0, 65535 25748 mov w2, 65535 25749 cmp w1, w2 25750 beq .L4021 25751 adrp x2, .LANCHOR11 25752 ubfiz x1, x1, 1, 16 25753 ldr x2, [x2, #:lo12:.LANCHOR11] 25754 ldrh w1, [x2, x1] 25755 cmp w1, 3 25756 bhi .L4021 25757 cbz w21, .L4021 25758 strb wzr, [x23, #:lo12:.LANCHOR90] 25759 mov w2, 0 25760 mov w1, 1 25761 bl gc_add_sblk 25762 cbnz w0, .L4015 25763.L4021: 25764 mov w1, 0 25765 adrp x0, .LANCHOR98 25766 add x0, x0, :lo12:.LANCHOR98 25767 bl _list_get_gc_head_node 25768 and w28, w0, 65535 25769 mov w1, 65535 25770 mov w3, w28 25771 cmp w28, w1 25772 bne .L4022 25773.L4027: 25774 cmp w22, 1 25775 bhi .L4023 25776.L4024: 25777 cmp w21, w24 25778 adrp x21, .LANCHOR104 25779 bcs .L4031 25780 mov w1, 4 25781 strb wzr, [x23, #:lo12:.LANCHOR90] 25782 add x0, x25, :lo12:.LANCHOR101 25783 bl _list_get_gc_head_node 25784 and w0, w0, 65535 25785 mov w1, 65535 25786 cmp w0, w1 25787 beq .L4031 25788 adrp x1, .LANCHOR11 25789 ubfiz x0, x0, 1, 16 25790 adrp x2, .LANCHOR85 25791 ldr x1, [x1, #:lo12:.LANCHOR11] 25792 ldrb w2, [x2, #:lo12:.LANCHOR85] 25793 ldrh w1, [x1, x0] 25794 adrp x0, .LANCHOR100 25795 ldrh w0, [x0, #:lo12:.LANCHOR100] 25796 mul w0, w0, w2 25797 cmp w1, w0, lsr 1 25798 ble .L4033 25799.L4031: 25800 ldrh w0, [x21, #:lo12:.LANCHOR104] 25801 lsr w0, w0, 2 25802 strh w0, [x26, #:lo12:.LANCHOR92] 25803 b .L3969 25804.L4022: 25805 adrp x2, .LANCHOR158 25806 adrp x4, .LANCHOR8 25807 uxtw x28, w28 25808 ldr w1, [x2, #:lo12:.LANCHOR158] 25809 ldrh w4, [x4, #:lo12:.LANCHOR8] 25810 add w1, w1, 1 25811 str w1, [x2, #:lo12:.LANCHOR158] 25812 cmp w1, w4, lsr 4 25813 adrp x4, .LANCHOR11 25814 bls .L4025 25815 ldr x1, [x4, #:lo12:.LANCHOR11] 25816 str wzr, [x2, #:lo12:.LANCHOR158] 25817 ldrh w2, [x1, x28, lsl 1] 25818 adrp x1, .LANCHOR106 25819 ldrh w1, [x1, #:lo12:.LANCHOR106] 25820 cmp w2, w1 25821 bcs .L4025 25822 mov w5, 1 25823 str x4, [x29, 96] 25824 strb w5, [x23, #:lo12:.LANCHOR90] 25825 mov w2, 1 25826 stp w3, w5, [x29, 104] 25827 mov w1, 0 25828 bl gc_add_sblk 25829 ldp w3, w5, [x29, 104] 25830 ldr x4, [x29, 96] 25831 cbz w0, .L4025 25832 strb w5, [x20, #:lo12:.LANCHOR157] 25833 b .L3969 25834.L4025: 25835 ldr x0, [x4, #:lo12:.LANCHOR11] 25836 ldrh w1, [x0, x28, lsl 1] 25837 adrp x0, .LANCHOR100 25838 ldrh w0, [x0, #:lo12:.LANCHOR100] 25839 cmp w1, w0, lsr 1 25840 bhi .L4026 25841 mov w2, 0 25842 mov w1, 1 25843 mov w0, w3 25844 bl gc_add_sblk 25845 b .L4015 25846.L4026: 25847 ldp x2, x0, [x29, 112] 25848 ldrh w2, [x2, #:lo12:.LANCHOR105] 25849 ldrh w0, [x0, #:lo12:.LANCHOR103] 25850 add w0, w0, w2 25851 adrp x2, .LANCHOR104 25852 ldrh w2, [x2, #:lo12:.LANCHOR104] 25853 cmp w0, w2, lsl 1 25854 ble .L4027 25855 adrp x0, .LANCHOR106 25856 ldrh w0, [x0, #:lo12:.LANCHOR106] 25857 cmp w0, w1 25858 bcc .L4024 25859 b .L4027 25860.L4023: 25861 mov w1, 1 25862 strb w1, [x23, #:lo12:.LANCHOR90] 25863 cmp w22, 16 25864 bls .L4028 25865 adrp x0, .LANCHOR97 25866 ldrh w2, [x0, #:lo12:.LANCHOR97] 25867 adrp x0, .LANCHOR107 25868 ldrh w0, [x0, #:lo12:.LANCHOR107] 25869 cmp w2, w0 25870 bhi .L4028 25871 mov w0, w1 25872 mov w2, 4 25873.L4171: 25874 bl gc_search_src_blk 25875 ands w0, w0, 65535 25876 bne .L4029 25877 ldrb w0, [x23, #:lo12:.LANCHOR90] 25878 mov w2, 4 25879 mov w1, 3 25880 bl gc_search_src_blk 25881 and w0, w0, 65535 25882.L4029: 25883 adrp x1, .LANCHOR104 25884 cmp w21, w24, lsr 1 25885 ldrh w1, [x1, #:lo12:.LANCHOR104] 25886 bls .L4165 25887 lsr w1, w1, 2 25888.L4166: 25889 strh w1, [x26, #:lo12:.LANCHOR92] 25890 b .L4013 25891.L4028: 25892 mov w2, 1 25893 mov w1, 2 25894 mov w0, w2 25895 b .L4171 25896.L4033: 25897 mov w1, 3 25898 mov w2, 4 25899 mov w0, 0 25900 bl gc_search_src_blk 25901 ldrh w1, [x21, #:lo12:.LANCHOR104] 25902 and w0, w0, 65535 25903.L4165: 25904 lsr w1, w1, 1 25905 b .L4166 25906.L4019: 25907 adrp x1, .LANCHOR104 25908 ldrh w1, [x1, #:lo12:.LANCHOR104] 25909 lsr w1, w1, 2 25910 strh w1, [x0, #:lo12:.LANCHOR92] 25911 adrp x0, .LANCHOR76+2110 25912 ldrh w0, [x0, #:lo12:.LANCHOR76+2110] 25913 cmp w0, 0 25914 csel w19, w19, wzr, ne 25915 b .L3969 25916.L3973: 25917 adrp x7, .LANCHOR76 25918 mov w0, 65535 25919 ldrh w1, [x7, #:lo12:.LANCHOR76] 25920 cmp w1, w0 25921 bne .L4034 25922 bl gc_get_src_blk 25923 strh w0, [x7, #:lo12:.LANCHOR76] 25924.L4034: 25925 ldrh w0, [x7, #:lo12:.LANCHOR76] 25926 mov w1, 65535 25927 cmp w0, w1 25928 beq .L4035 25929 adrp x1, .LANCHOR8 25930 ldrh w1, [x1, #:lo12:.LANCHOR8] 25931 cmp w1, w0 25932 bhi .L4035 25933 mov w0, -1 25934 strh w0, [x7, #:lo12:.LANCHOR76] 25935.L4035: 25936 ldrh w3, [x7, #:lo12:.LANCHOR76] 25937 mov w0, 65535 25938 add x1, x7, :lo12:.LANCHOR76 25939 cmp w3, w0 25940 beq .L4173 25941 adrp x0, .LANCHOR9 25942 ldrh w5, [x1, 56] 25943 uxtw x4, w3 25944 ldr x2, [x0, #:lo12:.LANCHOR9] 25945 add x2, x2, x4, lsl 2 25946 cbz w5, .L4037 25947 add x1, x1, 58 25948 mov w0, 0 25949.L4039: 25950 ldrh w6, [x1], 2 25951 cmp w6, w3 25952 bne .L4038 25953.L4043: 25954 adrp x0, .LANCHOR76 25955 mov w1, -1 25956 strh w1, [x0, #:lo12:.LANCHOR76] 25957 b .L4086 25958.L4038: 25959 add w0, w0, 1 25960 and w0, w0, 65535 25961 cmp w5, w0 25962 bne .L4039 25963.L4037: 25964 ldrb w0, [x2, 2] 25965 and w1, w0, 224 25966 cmp w1, 224 25967 beq .L4040 25968 tst w0, 192 25969 bne .L4041 25970.L4040: 25971 adrp x0, .LANCHOR11 25972 ldr x0, [x0, #:lo12:.LANCHOR11] 25973 ldrh w0, [x0, x4, lsl 1] 25974 cbz w0, .L4043 25975 mov w2, 3306 25976 adrp x1, .LANCHOR240 25977 adrp x0, .LC0 25978 add x1, x1, :lo12:.LANCHOR240 25979 add x0, x0, :lo12:.LC0 25980 bl printf 25981 b .L4043 25982.L4041: 25983 mov w0, 2 25984 b .L4174 25985.L3974: 25986 bl gc_scan_src_blk 25987 cmn w0, #1 25988 bne .L4044 25989 mov w0, 3 25990 b .L4174 25991.L4044: 25992 adrp x19, .LANCHOR76 25993 mov w2, 65535 25994 add x0, x19, :lo12:.LANCHOR76 25995 ldrh w1, [x19, #:lo12:.LANCHOR76] 25996 cmp w1, w2 25997 beq .L3988 25998 ldrh w2, [x0, 24] 25999 cbz w2, .L4045 26000 mov w1, 4 26001 strh wzr, [x0, 26] 26002 strb w1, [x20, #:lo12:.LANCHOR157] 26003 b .L4086 26004.L4045: 26005 mov w0, 1 26006 strb w0, [x20, #:lo12:.LANCHOR157] 26007 adrp x0, .LANCHOR11 26008 ubfiz x1, x1, 1, 16 26009 mov x20, x0 26010 ldr x2, [x0, #:lo12:.LANCHOR11] 26011 ldrh w1, [x2, x1] 26012 cbz w1, .L4046 26013 adrp x1, .LANCHOR240 26014 adrp x0, .LC0 26015 mov w2, 3336 26016 add x1, x1, :lo12:.LANCHOR240 26017 add x0, x0, :lo12:.LC0 26018 bl printf 26019.L4046: 26020 ldrh w0, [x19, #:lo12:.LANCHOR76] 26021 add x21, x19, :lo12:.LANCHOR76 26022 bl ftl_free_sblk 26023 ldr x0, [x20, #:lo12:.LANCHOR11] 26024 ldrh w1, [x19, #:lo12:.LANCHOR76] 26025 strh wzr, [x0, x1, lsl 1] 26026 ldrh w0, [x21, 30] 26027 add w0, w0, 1 26028 and w0, w0, 65535 26029 cmp w0, 8 26030 bhi .L4047 26031 strh w0, [x21, 30] 26032 b .L4043 26033.L4047: 26034 strh wzr, [x21, 30] 26035 bl ftl_flush 26036 bl pm_flush 26037 bl ftl_ext_info_flush 26038 mov w0, 0 26039 bl ftl_info_flush 26040 b .L4043 26041.L3975: 26042 adrp x19, .LANCHOR76 26043 adrp x23, .LANCHOR100 26044 add x22, x19, :lo12:.LANCHOR76 26045 add x23, x23, :lo12:.LANCHOR100 26046.L4135: 26047 bl gc_scan_src_blk_one_page 26048 ldrh w1, [x22, 2] 26049 ldrh w0, [x23] 26050 cmp w1, w0 26051 bcs .L4049 26052 cmp w21, 7 26053 bls .L4135 26054 b .L4086 26055.L4049: 26056 ldrh w3, [x22, 24] 26057 ldrh w1, [x22] 26058 cbz w3, .L4050 26059 mov w0, 4 26060 strb w0, [x20, #:lo12:.LANCHOR157] 26061 adrp x20, .LANCHOR11 26062 ubfiz x0, x1, 1, 16 26063 strh wzr, [x22, 26] 26064 ldr x2, [x20, #:lo12:.LANCHOR11] 26065 ldrh w2, [x2, x0] 26066 cmp w3, w2 26067 beq .L4051 26068 adrp x0, .LANCHOR19 26069 ldr w0, [x0, #:lo12:.LANCHOR19] 26070 tbz x0, 10, .L4051 26071 adrp x0, .LC234 26072 add x0, x0, :lo12:.LC234 26073 bl printf 26074.L4051: 26075 ldrh w2, [x19, #:lo12:.LANCHOR76] 26076 add x0, x19, :lo12:.LANCHOR76 26077 ldr x1, [x20, #:lo12:.LANCHOR11] 26078 ldrh w0, [x0, 24] 26079 ldrh w1, [x1, x2, lsl 1] 26080 cmp w1, w0 26081 beq .L4052 26082 adrp x1, .LANCHOR240 26083 adrp x0, .LC0 26084 mov w2, 3379 26085 add x1, x1, :lo12:.LANCHOR240 26086 add x0, x0, :lo12:.LC0 26087 bl printf 26088.L4052: 26089 add x0, x19, :lo12:.LANCHOR76 26090 ldrh w1, [x19, #:lo12:.LANCHOR76] 26091 ldrh w2, [x0, 24] 26092 ldr x0, [x20, #:lo12:.LANCHOR11] 26093 strh w2, [x0, x1, lsl 1] 26094 b .L4086 26095.L4050: 26096 adrp x0, .LANCHOR9 26097 ldr x21, [x0, #:lo12:.LANCHOR9] 26098 mov w0, 1 26099 strb w0, [x20, #:lo12:.LANCHOR157] 26100 adrp x0, .LANCHOR19 26101 ldr w0, [x0, #:lo12:.LANCHOR19] 26102 add x21, x21, x1, uxth 2 26103 tbz x0, 8, .L4053 26104 ldrb w2, [x21, 2] 26105 adrp x0, .LC235 26106 add x0, x0, :lo12:.LC235 26107 ubfx x2, x2, 5, 3 26108 bl printf 26109.L4053: 26110 ldrb w0, [x21, 2] 26111 and w1, w0, 224 26112 cmp w1, 224 26113 beq .L4054 26114 tst w0, 192 26115 bne .L4055 26116.L4054: 26117 adrp x1, .LANCHOR240 26118 adrp x0, .LC0 26119 mov w2, 3389 26120 add x1, x1, :lo12:.LANCHOR240 26121 add x0, x0, :lo12:.LC0 26122 bl printf 26123.L4055: 26124 ldrh w0, [x19, #:lo12:.LANCHOR76] 26125 add x20, x19, :lo12:.LANCHOR76 26126 bl ftl_free_sblk 26127 mov w0, -1 26128 strh w0, [x19, #:lo12:.LANCHOR76] 26129 ldrh w0, [x20, 30] 26130 add w0, w0, 1 26131 and w0, w0, 65535 26132 cmp w0, 8 26133 bhi .L4056 26134 strh w0, [x20, 30] 26135 b .L4086 26136.L4056: 26137 strh wzr, [x20, 30] 26138.L4172: 26139 bl flt_sys_flush 26140 b .L4086 26141.L3976: 26142 ldrh w1, [x26, 80] 26143 mov w0, 65535 26144 cmp w1, w0 26145 bne .L4057 26146 adrp x0, .LANCHOR90 26147 ldrb w19, [x0, #:lo12:.LANCHOR90] 26148 cmp w19, 1 26149 bne .L4057 26150 bl ftl_flush 26151 adrp x0, .LANCHOR76 26152 add x1, x0, :lo12:.LANCHOR76 26153 mov x20, x0 26154 ldrh w1, [x1, 2192] 26155 cbz w1, .L4058 26156 mov w0, w19 26157 mov w1, 5 26158.L4167: 26159 bl zftl_gc_get_free_sblk 26160 and w19, w0, 65535 26161 mov w0, 65535 26162 cmp w19, w0 26163 beq .L4060 26164 adrp x0, .LANCHOR9 26165 ldr x21, [x0, #:lo12:.LANCHOR9] 26166 add x21, x21, x19, uxth 2 26167 ldrb w0, [x21, 2] 26168 tst w0, 224 26169 beq .L4061 26170 adrp x1, .LANCHOR240 26171 adrp x0, .LC0 26172 mov w2, 3423 26173 add x1, x1, :lo12:.LANCHOR240 26174 add x0, x0, :lo12:.LC0 26175 bl printf 26176.L4061: 26177 ldrb w0, [x21, 2] 26178 mov w1, 5 26179 bfi w0, w1, 5, 3 26180 orr w0, w0, 16 26181 strb w0, [x21, 2] 26182.L4085: 26183 mov w1, 1 26184 mov w0, w19 26185 bl ftl_erase_sblk 26186 adrp x22, .LANCHOR91 26187 mov w0, 5 26188 strb w0, [x26, 84] 26189 add x1, x26, 96 26190 mov w0, w19 26191 bl ftl_get_blk_list_in_sblk 26192 and w0, w0, 255 26193 adrp x1, .LANCHOR100 26194 adrp x21, .LANCHOR85 26195 strb w0, [x26, 89] 26196 ldrh w1, [x1, #:lo12:.LANCHOR100] 26197 ldrh w2, [x22, #:lo12:.LANCHOR91] 26198 strh w19, [x26, 80] 26199 strh wzr, [x26, 82] 26200 mul w0, w0, w1 26201 strb wzr, [x26, 85] 26202 strh w0, [x26, 86] 26203 mov w1, 255 26204 ldrb w0, [x21, #:lo12:.LANCHOR85] 26205 strh wzr, [x26, 90] 26206 mul w2, w2, w0 26207 adrp x0, .LANCHOR160 26208 ldr x0, [x0, #:lo12:.LANCHOR160] 26209 lsl w2, w2, 2 26210 bl ftl_memset 26211 ldrb w0, [x21, #:lo12:.LANCHOR85] 26212 mov w1, 255 26213 ldrh w2, [x22, #:lo12:.LANCHOR91] 26214 mul w2, w2, w0 26215 adrp x0, .LANCHOR161 26216 ldr x0, [x0, #:lo12:.LANCHOR161] 26217 lsl w2, w2, 2 26218 bl ftl_memset 26219 ldrb w0, [x21, #:lo12:.LANCHOR85] 26220 mov w1, 255 26221 ldrh w2, [x22, #:lo12:.LANCHOR91] 26222 mul w2, w2, w0 26223 adrp x0, .LANCHOR88 26224 ldr x0, [x0, #:lo12:.LANCHOR88] 26225 bl ftl_memset 26226 ldr x0, [x23, #:lo12:.LANCHOR12] 26227 mov w1, -1 26228 str w19, [x0, 132] 26229 strh w1, [x0, 128] 26230 strh w1, [x0, 130] 26231 bl pm_flush 26232 bl ftl_ext_info_flush 26233 adrp x0, .LANCHOR69 26234 mov w1, -1 26235 ldr x0, [x0, #:lo12:.LANCHOR69] 26236 strh w19, [x0, 126] 26237 add x0, x20, :lo12:.LANCHOR76 26238 str w1, [x0, 2196] 26239 strh wzr, [x0, 2106] 26240 strh wzr, [x0, 56] 26241 strh wzr, [x0, 2108] 26242 strh wzr, [x0, 2194] 26243 mov w0, 0 26244 bl ftl_info_flush 26245 b .L4086 26246.L4058: 26247 mov w1, 5 26248 mov w0, 0 26249 b .L4167 26250.L4057: 26251 cmp w25, 1 26252 mov w24, 4 26253 csinc w24, w24, wzr, eq 26254 cmp w21, 15 26255 mov w0, w24 26256 add w24, w24, 4 26257 adrp x25, .LANCHOR90 26258 adrp x21, .LANCHOR76 26259 csel w24, w24, w0, ls 26260 add x25, x25, :lo12:.LANCHOR90 26261 add x19, x21, :lo12:.LANCHOR76 26262 add x27, x26, 80 26263.L4064: 26264 sub w24, w24, #1 26265 and w24, w24, 255 26266 cmp w24, 255 26267 beq .L4086 26268 bl gc_do_copy_back 26269 ldrb w0, [x25] 26270 cbnz w0, .L4065 26271 adrp x0, .LANCHOR57 26272 ldrb w0, [x0, #:lo12:.LANCHOR57] 26273 cmp w0, 3 26274 bhi .L4066 26275 bl ftl_write_commit 26276.L4066: 26277 ldrh w1, [x19, 26] 26278 ldrh w0, [x19, 24] 26279 cmp w1, w0 26280 bcc .L4064 26281 mov w0, 1 26282 strb w0, [x20, #:lo12:.LANCHOR157] 26283 bl ftl_write_commit 26284 bl ftl_flush 26285 adrp x0, .LANCHOR11 26286 ldrh w2, [x19] 26287 mov x19, x0 26288 ldr x1, [x0, #:lo12:.LANCHOR11] 26289 ldrh w1, [x1, x2, lsl 1] 26290 cbz w1, .L4068 26291 adrp x1, .LANCHOR240 26292 adrp x0, .LC0 26293 mov w2, 3507 26294 add x1, x1, :lo12:.LANCHOR240 26295 add x0, x0, :lo12:.LC0 26296 bl printf 26297.L4068: 26298 ldrh w0, [x21, #:lo12:.LANCHOR76] 26299 ldr x2, [x19, #:lo12:.LANCHOR11] 26300 ubfiz x1, x0, 1, 16 26301 ldrh w1, [x2, x1] 26302 cbnz w1, .L4069 26303 bl ftl_free_sblk 26304 b .L4043 26305.L4069: 26306 mov w2, 1 26307 mov w1, 0 26308 bl gc_add_sblk 26309 b .L4043 26310.L4065: 26311 ldrh w0, [x19, 2194] 26312 cbz w0, .L4070 26313 strh wzr, [x19, 2194] 26314 bl sblk_wait_write_queue_completed 26315 bl gc_write_completed 26316 ldr w0, [x19, 2196] 26317 adrp x19, .LANCHOR69 26318 cmn w0, #1 26319 beq .L4071 26320 adrp x1, .LANCHOR130 26321 ldrb w1, [x1, #:lo12:.LANCHOR130] 26322 cbnz w1, .L4072 26323 adrp x1, .LANCHOR86 26324 ldrb w1, [x1, #:lo12:.LANCHOR86] 26325 cbz w1, .L4073 26326.L4072: 26327 ldr x1, [x19, #:lo12:.LANCHOR69] 26328 ldr w2, [x1, 156] 26329 mov w1, 20041 26330 movk w1, 0x444b, lsl 16 26331 cmp w2, w1 26332 bne .L4073 26333 adrp x1, .LANCHOR80 26334 ldrh w3, [x1, #:lo12:.LANCHOR80] 26335 adrp x1, .LANCHOR31 26336 ldrb w2, [x1, #:lo12:.LANCHOR31] 26337 mov w1, 24 26338 lsr w0, w0, w3 26339 sub w1, w1, w2 26340 sub w2, w1, w3 26341 mov w1, 1 26342 lsl w1, w1, w2 26343 sub w1, w1, #1 26344 and w0, w1, w0 26345 adrp x1, .LANCHOR81 26346 ldrb w1, [x1, #:lo12:.LANCHOR81] 26347 udiv w0, w0, w1 26348 adrp x1, .LANCHOR9 26349 ldr x2, [x1, #:lo12:.LANCHOR9] 26350 lsl x0, x0, 2 26351 add x4, x2, x0 26352 ldrb w1, [x4, 2] 26353 tbz x1, 3, .L4071 26354 adrp x5, .LANCHOR104 26355 ldrh w3, [x22, #:lo12:.LANCHOR109] 26356 ldrh w5, [x5, #:lo12:.LANCHOR104] 26357 add w3, w3, 8 26358 cmp w3, w5 26359 bge .L4071 26360 and w1, w1, -25 26361 strb w1, [x4, 2] 26362 adrp x1, .LANCHOR10 26363 ldr w3, [x2, x0] 26364 ldrh w1, [x1, #:lo12:.LANCHOR10] 26365 ldrh w4, [x2, x0] 26366 ubfx x3, x3, 11, 8 26367 and w5, w4, 2047 26368 mul w1, w1, w3 26369 lsr w3, w3, 3 26370 add w1, w1, w1, lsl 1 26371 add w1, w5, w1, lsr 2 26372 bfi w4, w1, 0, 11 26373 strh w4, [x2, x0] 26374 ldr w1, [x2, x0] 26375 bfi w1, w3, 11, 8 26376 str w1, [x2, x0] 26377.L4071: 26378 ldr x0, [x23, #:lo12:.LANCHOR12] 26379 add x22, x21, :lo12:.LANCHOR76 26380 strh wzr, [x22, 56] 26381 ldrh w0, [x0, 80] 26382 str wzr, [x22, 2196] 26383 bl ftl_free_sblk 26384 ldr x1, [x23, #:lo12:.LANCHOR12] 26385 mov w0, -1 26386 ldr x2, [x19, #:lo12:.LANCHOR69] 26387 strh w0, [x1, 80] 26388 strh w0, [x2, 126] 26389 strh w0, [x1, 130] 26390 ldr x0, [x22, 8] 26391 cbz x0, .L4074 26392 bl zbuf_free 26393.L4074: 26394 add x21, x21, :lo12:.LANCHOR76 26395 str xzr, [x21, 8] 26396 bl flt_sys_flush 26397 mov w2, 3567 26398 strb wzr, [x20, #:lo12:.LANCHOR157] 26399 adrp x1, .LANCHOR240 26400 adrp x0, .LC0 26401 add x1, x1, :lo12:.LANCHOR240 26402 add x0, x0, :lo12:.LC0 26403 bl printf 26404 b .L4086 26405.L4073: 26406 bl ftl_mask_bad_block 26407 b .L4071 26408.L4070: 26409 ldrh w0, [x27, 6] 26410 ldrh w1, [x19, 26] 26411 cmp w0, 1 26412 ldrh w0, [x19, 24] 26413 bls .L4075 26414 cmp w1, w0 26415 bcc .L4064 26416 mov w0, 1 26417 strb w0, [x20, #:lo12:.LANCHOR157] 26418 ldrh w0, [x19, 56] 26419 add w1, w0, 1 26420 strh w1, [x19, 56] 26421 add x0, x19, x0, sxtw 1 26422 ldrh w1, [x19] 26423 strh w1, [x0, 58] 26424 mov w0, -1 26425 strh w0, [x19] 26426 b .L4086 26427.L4075: 26428 mov w2, 5 26429 strb w2, [x20, #:lo12:.LANCHOR157] 26430 cmp w1, w0 26431 bcc .L4076 26432 ldrh w0, [x19, 56] 26433 add w1, w0, 1 26434 strh w1, [x19, 56] 26435 add x0, x19, x0, sxtw 1 26436 ldrh w1, [x19] 26437 strh w1, [x0, 58] 26438 mov w0, -1 26439 strh w0, [x19] 26440.L4076: 26441 bl ftl_flush 26442 bl sblk_wait_write_queue_completed 26443 bl gc_write_completed 26444 ldr x0, [x23, #:lo12:.LANCHOR12] 26445 ldrh w1, [x26, 80] 26446 strh w1, [x0, 128] 26447 bl pm_flush 26448 bl ftl_ext_info_flush 26449 adrp x1, .LANCHOR100 26450 add x0, x21, :lo12:.LANCHOR76 26451 adrp x2, .LANCHOR35 26452 ldrh w1, [x1, #:lo12:.LANCHOR100] 26453 strh w1, [x0, 18] 26454 adrp x1, .LANCHOR84 26455 ldrb w2, [x2, #:lo12:.LANCHOR35] 26456 strh wzr, [x0, 16] 26457 ldrb w1, [x1, #:lo12:.LANCHOR84] 26458 strh w1, [x0, 20] 26459 cbz w2, .L4077 26460 adrp x2, .LANCHOR91 26461 ldrh w2, [x2, #:lo12:.LANCHOR91] 26462 strh w2, [x0, 18] 26463 mov w2, 1 26464 strh w2, [x0, 20] 26465.L4077: 26466 cmp w1, 2 26467 bne .L4079 26468 add x0, x21, :lo12:.LANCHOR76 26469 ldrh w1, [x0, 18] 26470 ubfiz w1, w1, 1, 15 26471 strh w1, [x0, 18] 26472 adrp x1, .LANCHOR86 26473 ldrb w1, [x1, #:lo12:.LANCHOR86] 26474 cbnz w1, .L4079 26475 mov w1, 1 26476 strh w1, [x0, 20] 26477.L4079: 26478 add x21, x21, :lo12:.LANCHOR76 26479 strh wzr, [x21, 22] 26480 b .L4086 26481.L4082: 26482 ldrh w1, [x24, 16] 26483 ldrh w0, [x24, 18] 26484 cmp w1, w0 26485 bcc .L4083 26486 mov w0, 6 26487 strb w0, [x20, #:lo12:.LANCHOR157] 26488 ldr x0, [x24, 8] 26489 bl zbuf_free 26490 str xzr, [x24, 8] 26491 b .L4086 26492.L4083: 26493 cmp w21, 15 26494 bls .L3979 26495 cmp w25, 1 26496 bne .L4086 26497 add w22, w22, 1 26498 and w22, w22, 255 26499 cmp w22, 4 26500 bls .L3979 26501 b .L4086 26502.L3978: 26503 bl gc_update_l2p_map_new 26504 mov w19, -1 26505 bl gc_free_src_blk 26506 bl ftl_flush 26507 bl pm_flush 26508 strh w19, [x26, 80] 26509 bl ftl_ext_info_flush 26510 adrp x0, .LANCHOR69 26511 ldr x0, [x0, #:lo12:.LANCHOR69] 26512 strh w19, [x0, 126] 26513 mov w0, 0 26514 bl ftl_info_flush 26515.L4173: 26516 strb wzr, [x20, #:lo12:.LANCHOR157] 26517 b .L4086 26518.L4060: 26519 mov w2, 3430 26520 adrp x1, .LANCHOR240 26521 adrp x0, .LC0 26522 add x1, x1, :lo12:.LANCHOR240 26523 add x0, x0, :lo12:.LC0 26524 bl printf 26525 b .L4085 26526 .size zftl_do_gc, .-zftl_do_gc 26527 .section .text.zftl_discard,"ax",@progbits 26528 .align 2 26529 .global zftl_discard 26530 .type zftl_discard, %function 26531zftl_discard: 26532 stp x29, x30, [sp, -128]! 26533 add x29, sp, 0 26534 stp x19, x20, [sp, 16] 26535 mov w19, w1 26536 adrp x1, .LANCHOR73 26537 stp x21, x22, [sp, 32] 26538 stp x23, x24, [sp, 48] 26539 ldr w1, [x1, #:lo12:.LANCHOR73] 26540 stp x25, x26, [sp, 64] 26541 stp x27, x28, [sp, 80] 26542 cmp w0, w1 26543 ccmp w19, w1, 2, cc 26544 bhi .L4197 26545 add w2, w0, w19 26546 cmp w1, w2 26547 bcc .L4197 26548 adrp x24, .LANCHOR241 26549 add w22, w0, 24576 26550 adrp x0, .LANCHOR19 26551 str x0, [x29, 104] 26552 ldr w1, [x24, #:lo12:.LANCHOR241] 26553 ldr w2, [x0, #:lo12:.LANCHOR19] 26554 add w1, w19, w1 26555 str w1, [x24, #:lo12:.LANCHOR241] 26556 tbz x2, 12, .L4177 26557 adrp x0, .LC236 26558 mov w4, 0 26559 mov w3, w19 26560 mov w2, w22 26561 add x0, x0, :lo12:.LC236 26562 bl printf 26563.L4177: 26564 adrp x23, .LANCHOR69 26565 adrp x26, .LANCHOR68 26566 ldr x0, [x23, #:lo12:.LANCHOR69] 26567 ldr w27, [x0, 8] 26568 add w1, w27, 1 26569 str w1, [x0, 8] 26570 bl ftl_write_commit 26571 bl ftl_flush 26572 ldrb w21, [x26, #:lo12:.LANCHOR68] 26573 udiv w20, w22, w21 26574 msub w25, w20, w21, w22 26575 cbz w25, .L4178 26576 sub w21, w21, w25 26577 mov w0, w20 26578 cmp w21, w19 26579 csel w21, w21, w19, ls 26580 bl lpa_hash_get_ppa 26581 str w0, [x29, 120] 26582 cmn w0, #1 26583 bne .L4179 26584 mov w2, 0 26585 add x1, x29, 120 26586 mov w0, w20 26587 bl pm_log2phys 26588.L4179: 26589 ldr w0, [x29, 120] 26590 and w28, w21, 65535 26591 cmn w0, #1 26592 beq .L4181 26593 mov w0, 0 26594 bl buf_alloc 26595 mov x3, x0 26596 cbz x0, .L4181 26597 strb w25, [x0, 57] 26598 ubfiz x25, x25, 9, 25 26599 strb w21, [x0, 56] 26600 mov w1, 0 26601 ldr x0, [x0, 8] 26602 lsl w2, w28, 9 26603 stp w27, w20, [x3, 32] 26604 str x3, [x29, 96] 26605 add x0, x0, x25 26606 bl ftl_memset 26607 ldr x3, [x29, 96] 26608 mov x0, x3 26609 bl ftl_write_buf 26610 bl ftl_write_commit 26611 ldr x1, [x23, #:lo12:.LANCHOR69] 26612 ldr w0, [x1, 76] 26613 add w0, w0, 1 26614 str w0, [x1, 76] 26615.L4181: 26616 add w20, w20, 1 26617 sub w19, w19, w28 26618.L4178: 26619 cbz w19, .L4183 26620 bl ftl_flush 26621.L4183: 26622 adrp x25, .LANCHOR80 26623 add x21, x26, :lo12:.LANCHOR68 26624 add x25, x25, :lo12:.LANCHOR80 26625 mov w0, -1 26626 str w0, [x29, 124] 26627.L4184: 26628 ldrb w0, [x21] 26629 cmp w19, w0 26630 bcs .L4189 26631 cbz w19, .L4191 26632 mov w0, w20 26633 bl lpa_hash_get_ppa 26634 str w0, [x29, 120] 26635 cmn w0, #1 26636 bne .L4192 26637 mov w2, 0 26638 add x1, x29, 120 26639 mov w0, w20 26640 bl pm_log2phys 26641.L4192: 26642 ldr w0, [x29, 120] 26643 cmn w0, #1 26644 beq .L4191 26645 mov w0, 0 26646 bl buf_alloc 26647 mov x21, x0 26648 cbz x0, .L4191 26649 strb wzr, [x0, 57] 26650 strb w19, [x0, 56] 26651 stp w27, w20, [x21, 32] 26652 ldrb w0, [x26, #:lo12:.LANCHOR68] 26653 cmp w19, w0 26654 bcc .L4194 26655 adrp x1, .LANCHOR242 26656 adrp x0, .LC0 26657 mov w2, 1492 26658 add x1, x1, :lo12:.LANCHOR242 26659 add x0, x0, :lo12:.LC0 26660 bl printf 26661.L4194: 26662 ldr x0, [x21, 8] 26663 lsl w2, w19, 9 26664 mov w1, 0 26665 bl ftl_memset 26666 mov x0, x21 26667 bl ftl_write_buf 26668 bl ftl_write_commit 26669 ldr x1, [x23, #:lo12:.LANCHOR69] 26670 ldr w0, [x1, 76] 26671 add w0, w0, 1 26672 str w0, [x1, 76] 26673.L4191: 26674 ldr w1, [x24, #:lo12:.LANCHOR241] 26675 cmp w1, 8192 26676 bls .L4198 26677 ldr x0, [x29, 104] 26678 ldr w0, [x0, #:lo12:.LANCHOR19] 26679 tbz x0, 12, .L4195 26680 adrp x0, .LC236 26681 mov w4, 0 26682 mov w3, w19 26683 mov w2, w22 26684 add x0, x0, :lo12:.LC236 26685 bl printf 26686.L4195: 26687 str wzr, [x24, #:lo12:.LANCHOR241] 26688 bl flt_sys_flush 26689 adrp x0, .LANCHOR128 26690 mov w1, 1 26691 str w1, [x0, #:lo12:.LANCHOR128] 26692.L4198: 26693 mov w0, 0 26694 b .L4175 26695.L4189: 26696 mov w0, w20 26697 bl lpa_hash_get_ppa 26698 str w0, [x29, 120] 26699 cmn w0, #1 26700 beq .L4185 26701 mov w0, 0 26702 bl buf_alloc 26703 mov x28, x0 26704 cbz x0, .L4187 26705 ldrb w2, [x21] 26706 mov w1, 0 26707 strb w2, [x0, 56] 26708 strb wzr, [x0, 57] 26709 ldr x0, [x0, 8] 26710 lsl w2, w2, 9 26711 stp w27, w20, [x28, 32] 26712 bl ftl_memset 26713 mov x0, x28 26714 bl ftl_write_buf 26715 bl ftl_write_commit 26716.L4224: 26717 ldr x1, [x23, #:lo12:.LANCHOR69] 26718 ldr w0, [x1, 76] 26719 add w0, w0, 1 26720 str w0, [x1, 76] 26721.L4187: 26722 ldrb w0, [x21] 26723 add w20, w20, 1 26724 sub w19, w19, w0 26725 b .L4184 26726.L4185: 26727 mov w2, 0 26728 add x1, x29, 120 26729 mov w0, w20 26730 bl pm_log2phys 26731 ldr w0, [x29, 120] 26732 cmn w0, #1 26733 beq .L4187 26734 add x1, x29, 124 26735 mov w2, 1 26736 mov w0, w20 26737 bl pm_log2phys 26738 adrp x0, .LANCHOR31 26739 ldrh w2, [x25] 26740 ldrb w1, [x0, #:lo12:.LANCHOR31] 26741 mov w0, 24 26742 sub w0, w0, w1 26743 sub w1, w0, w2 26744 mov w0, 1 26745 lsl w0, w0, w1 26746 ldr w1, [x29, 120] 26747 sub w0, w0, #1 26748 lsr w1, w1, w2 26749 and w0, w0, w1 26750 adrp x1, .LANCHOR81 26751 ldrb w1, [x1, #:lo12:.LANCHOR81] 26752 udiv w0, w0, w1 26753 bl ftl_vpn_decrement 26754 b .L4224 26755.L4197: 26756 mov w0, -1 26757.L4175: 26758 ldp x19, x20, [sp, 16] 26759 ldp x21, x22, [sp, 32] 26760 ldp x23, x24, [sp, 48] 26761 ldp x25, x26, [sp, 64] 26762 ldp x27, x28, [sp, 80] 26763 ldp x29, x30, [sp], 128 26764 ret 26765 .size zftl_discard, .-zftl_discard 26766 .section .text.ftl_discard,"ax",@progbits 26767 .align 2 26768 .global ftl_discard 26769 .type ftl_discard, %function 26770ftl_discard: 26771 mov w0, w1 26772 mov w1, w2 26773 b zftl_discard 26774 .size ftl_discard, .-ftl_discard 26775 .section .text.dump_pm_blk,"ax",@progbits 26776 .align 2 26777 .global dump_pm_blk 26778 .type dump_pm_blk, %function 26779dump_pm_blk: 26780 stp x29, x30, [sp, -48]! 26781 mov w2, 4 26782 adrp x0, .LC237 26783 add x0, x0, :lo12:.LC237 26784 add x29, sp, 0 26785 stp x19, x20, [sp, 16] 26786 adrp x20, .LANCHOR69 26787 stp x21, x22, [sp, 32] 26788 adrp x21, .LANCHOR153 26789 ldr x1, [x20, #:lo12:.LANCHOR69] 26790 mov w19, 0 26791 mov w22, 65535 26792 add x1, x1, 704 26793 ldrh w3, [x1, -6] 26794 bl rknand_print_hex 26795 ldrh w3, [x21, #:lo12:.LANCHOR153] 26796 add x21, x21, :lo12:.LANCHOR153 26797 ldr x1, [x20, #:lo12:.LANCHOR69] 26798 mov w2, 2 26799 adrp x0, .LC238 26800 add x0, x0, :lo12:.LC238 26801 add x1, x1, 416 26802 bl rknand_print_hex 26803.L4227: 26804 ldrh w0, [x21] 26805 cmp w0, w19 26806 bhi .L4229 26807 ldp x19, x20, [sp, 16] 26808 ldp x21, x22, [sp, 32] 26809 ldp x29, x30, [sp], 48 26810 ret 26811.L4229: 26812 ldr x0, [x20, #:lo12:.LANCHOR69] 26813 add x0, x0, x19, sxtw 1 26814 ldrh w0, [x0, 416] 26815 cmp w0, w22 26816 beq .L4228 26817 mov x1, 0 26818 bl ftl_sblk_dump 26819.L4228: 26820 add w19, w19, 1 26821 and w19, w19, 65535 26822 b .L4227 26823 .size dump_pm_blk, .-dump_pm_blk 26824 .global g_pm_spare 26825 .global pm_first_write 26826 .global pm_force_gc 26827 .global pm_gc_enable 26828 .global pm_last_load_ram_id 26829 .global pm_last_update_ram_id 26830 .global pm_ram_info 26831 .global sblk_gc_write_completed_queue_head 26832 .global sblk_read_completed_queue_head 26833 .global sblk_write_completed_queue_head 26834 .global sblk_queue_head 26835 .global slc_cache_sblk 26836 .global xlc_data_sblk 26837 .global slc_data_sblk 26838 .global free_mix_sblk 26839 .global free_xlc_sblk 26840 .global free_slc_sblk 26841 .global gp_data_xlc_data_head 26842 .global gp_data_slc_data_head 26843 .global gp_data_slc_cache_head 26844 .global gp_free_mix_head 26845 .global gp_free_xlc_head 26846 .global gp_free_slc_head 26847 .global gp_sblk_list_tbl 26848 .global zftl_print_list_count 26849 .global ftl_ext_info_first_write 26850 .global ftl_sys_info_first_write 26851 .global ftl_low_format_cur_blk 26852 .global ftl_power_lost_flag 26853 .global ftl_vpn_update_count 26854 .global ftl_sblk_update_list_offset 26855 .global ftl_sblk_update_list 26856 .global ftl_sblk_vpn_update_id 26857 .global ftl_sblk_lpa_tbl 26858 .global ftl_sblk_vpn 26859 .global gp_ftl_ext_info 26860 .global gp_ftl_info 26861 .global gp_blk_info 26862 .global ftl_tmp_buffer 26863 .global ftl_ext_info_data_buffer 26864 .global ftl_info_data_buffer 26865 .global ftl_tmp_spare 26866 .global ftl_info_spare 26867 .global g_ftl_info_blk 26868 .global tlc_b05a_prog_tbl 26869 .global tlc_prog_order 26870 .global gc_des_ppa_tbl 26871 .global gc_valid_page_ppa 26872 .global gc_page_buf_id 26873 .global gc_pre_ppa_tbl 26874 .global gc_lpa_tbl 26875 .global g_gc_info 26876 .global gc_xlc_search_index 26877 .global gc_xlc_data_index 26878 .global gc_slc_cache_index 26879 .global gc_slc_data_index 26880 .global gc_free_slc_sblk_th 26881 .global gc_slc_mode_vpn_th 26882 .global gc_slc_mode_slc_vpn_th 26883 .global gc_slc_mode_tlc_vpn_th 26884 .global gc_tlc_mode_tlc_vpn_th 26885 .global gc_tlc_mode_slc_vpn_th 26886 .global gc_state 26887 .global gc_mode 26888 .global p_read_ahead_ext_buf 26889 .global discard_sector_count 26890 .global read_ahead_lpa 26891 .global _ftl_gc_tag_page_num 26892 .global read_buf_count 26893 .global read_buf_head 26894 .global write_commit_count 26895 .global write_commit_head 26896 .global write_buf_count 26897 .global write_buf_head 26898 .global ftl_flush_jiffies 26899 .global lpa_hash 26900 .global lpa_hash_index 26901 .global _c_slc_to_xlc_ec_ratio 26902 .global _c_mix_max_xlc_ec_count 26903 .global _c_mix_max_slc_ec_count 26904 .global _c_swl_xlc_gc_th 26905 .global _c_swl_slc_gc_th 26906 .global _gc_after_discard_en 26907 .global _last_write_time 26908 .global _last_read_time 26909 .global _min_slc_super_block 26910 .global _max_xlc_super_block 26911 .global _c_max_pm_sblk 26912 .global _c_ftl_pm_page_num 26913 .global _c_totle_log_page 26914 .global _c_totle_data_density 26915 .global _c_user_data_density 26916 .global _c_totle_phy_density 26917 .global _c_ftl_block_addr_log2 26918 .global _c_ftl_block_align_addr 26919 .global _c_ftl_byte_pre_page 26920 .global _c_ftl_nand_blks_per_die 26921 .global _c_ftl_page_pre_slc_blk 26922 .global _c_ftl_page_pre_blk 26923 .global _c_ftl_blk_pre_plane 26924 .global _c_ftl_nand_planes_num 26925 .global _c_ftl_planes_per_die 26926 .global _c_ftl_sec_per_page 26927 .global _c_ftl_nand_die_num 26928 .global _c_ftl_nand_type 26929 .global zftl_debug 26930 .global g_flash_blk_info 26931 .global gp_flash_info 26932 .global p_free_buf_head 26933 .global free_buf_count 26934 .global g_buf 26935 .global nandc_ecc_sts 26936 .global g_nandc_v6_master_info 26937 .global nandc_randomizer_en 26938 .global nandc_hw_seed 26939 .global fill_spare_size 26940 .global g_nandc_ecc_bits 26941 .global g_nandc_tran_timeout 26942 .global g_nandc_ver 26943 .global gp_nandc 26944 .global hy_f26_ref_value 26945 .global sd15_tlc_rr 26946 .global sd15_slc_rr 26947 .global g_nand_para_info 26948 .global gp_nand_para_info 26949 .global g_nand_opt_para 26950 .global g_msb_page_tbl 26951 .global g_lsb_page_tbl 26952 .global g_die_addr 26953 .global g_die_cs_idx 26954 .global IDByte 26955 .global flash_read_retry 26956 .global _c_ftl_cs_bits 26957 .global g_maxRetryCount 26958 .global g_maxRegNum 26959 .global g_retryMode 26960 .global g_flash_toggle_mode_en 26961 .global g_flash_ymtc_3d_tlc_flag 26962 .global g_flash_micron_3d_tlc_b16a 26963 .global g_flash_micron_3d_tlc_b05a 26964 .global g_flash_micron_3d_tlc_flag 26965 .global g_flash_3d_mlc_flag 26966 .global g_flash_3d_tlc_flag 26967 .global g_flash_multi_page_prog_en 26968 .global g_flash_multi_page_read_en 26969 .global g_flash_interface_mode 26970 .global g_idb_ecc_bits 26971 .global g_idb_slc_mode_enable 26972 .global g_one_pass_program 26973 .global g_slc_mode_addr2 26974 .global g_slc_mode_enable 26975 .global g_flash_cur_mode 26976 .global g_flash_six_addr 26977 .global g_flash_slc_mode 26978 .global g_slc_page_num 26979 .global g_totle_phy_block 26980 .global g_block_align_addr 26981 .global g_flash_reversd_blks 26982 .global g_nand_max_die 26983 .global g_flash_tmp_spare_buffer 26984 .global g_flash_tmp_page_buffer 26985 .global g_flash_sys_spare_buffer 26986 .global g_flash_spare_buffer 26987 .global g_flash_page_buffer 26988 .section .bss.IDByte,"aw",@nobits 26989 .align 2 26990 .set .LANCHOR47,. + 0 26991 .type IDByte, %object 26992 .size IDByte, 32 26993IDByte: 26994 .zero 32 26995 .section .bss._c_ftl_blk_pre_plane,"aw",@nobits 26996 .align 1 26997 .set .LANCHOR8,. + 0 26998 .type _c_ftl_blk_pre_plane, %object 26999 .size _c_ftl_blk_pre_plane, 2 27000_c_ftl_blk_pre_plane: 27001 .zero 2 27002 .section .bss._c_ftl_block_addr_log2,"aw",@nobits 27003 .align 1 27004 .set .LANCHOR80,. + 0 27005 .type _c_ftl_block_addr_log2, %object 27006 .size _c_ftl_block_addr_log2, 2 27007_c_ftl_block_addr_log2: 27008 .zero 2 27009 .section .bss._c_ftl_block_align_addr,"aw",@nobits 27010 .align 1 27011 .set .LANCHOR117,. + 0 27012 .type _c_ftl_block_align_addr, %object 27013 .size _c_ftl_block_align_addr, 2 27014_c_ftl_block_align_addr: 27015 .zero 2 27016 .section .bss._c_ftl_byte_pre_page,"aw",@nobits 27017 .align 1 27018 .set .LANCHOR221,. + 0 27019 .type _c_ftl_byte_pre_page, %object 27020 .size _c_ftl_byte_pre_page, 2 27021_c_ftl_byte_pre_page: 27022 .zero 2 27023 .section .bss._c_ftl_cs_bits,"aw",@nobits 27024 .set .LANCHOR31,. + 0 27025 .type _c_ftl_cs_bits, %object 27026 .size _c_ftl_cs_bits, 1 27027_c_ftl_cs_bits: 27028 .zero 1 27029 .section .bss._c_ftl_nand_blks_per_die,"aw",@nobits 27030 .align 1 27031 .type _c_ftl_nand_blks_per_die, %object 27032 .size _c_ftl_nand_blks_per_die, 2 27033_c_ftl_nand_blks_per_die: 27034 .zero 2 27035 .section .bss._c_ftl_nand_die_num,"aw",@nobits 27036 .set .LANCHOR118,. + 0 27037 .type _c_ftl_nand_die_num, %object 27038 .size _c_ftl_nand_die_num, 1 27039_c_ftl_nand_die_num: 27040 .zero 1 27041 .section .bss._c_ftl_nand_planes_num,"aw",@nobits 27042 .set .LANCHOR85,. + 0 27043 .type _c_ftl_nand_planes_num, %object 27044 .size _c_ftl_nand_planes_num, 1 27045_c_ftl_nand_planes_num: 27046 .zero 1 27047 .section .bss._c_ftl_nand_type,"aw",@nobits 27048 .set .LANCHOR84,. + 0 27049 .type _c_ftl_nand_type, %object 27050 .size _c_ftl_nand_type, 1 27051_c_ftl_nand_type: 27052 .zero 1 27053 .section .bss._c_ftl_page_pre_blk,"aw",@nobits 27054 .align 1 27055 .set .LANCHOR91,. + 0 27056 .type _c_ftl_page_pre_blk, %object 27057 .size _c_ftl_page_pre_blk, 2 27058_c_ftl_page_pre_blk: 27059 .zero 2 27060 .section .bss._c_ftl_page_pre_slc_blk,"aw",@nobits 27061 .align 1 27062 .set .LANCHOR100,. + 0 27063 .type _c_ftl_page_pre_slc_blk, %object 27064 .size _c_ftl_page_pre_slc_blk, 2 27065_c_ftl_page_pre_slc_blk: 27066 .zero 2 27067 .section .bss._c_ftl_planes_per_die,"aw",@nobits 27068 .set .LANCHOR81,. + 0 27069 .type _c_ftl_planes_per_die, %object 27070 .size _c_ftl_planes_per_die, 1 27071_c_ftl_planes_per_die: 27072 .zero 1 27073 .section .bss._c_ftl_pm_page_num,"aw",@nobits 27074 .align 1 27075 .set .LANCHOR203,. + 0 27076 .type _c_ftl_pm_page_num, %object 27077 .size _c_ftl_pm_page_num, 2 27078_c_ftl_pm_page_num: 27079 .zero 2 27080 .section .bss._c_ftl_sec_per_page,"aw",@nobits 27081 .set .LANCHOR68,. + 0 27082 .type _c_ftl_sec_per_page, %object 27083 .size _c_ftl_sec_per_page, 1 27084_c_ftl_sec_per_page: 27085 .zero 1 27086 .section .bss._c_max_pm_sblk,"aw",@nobits 27087 .align 1 27088 .set .LANCHOR153,. + 0 27089 .type _c_max_pm_sblk, %object 27090 .size _c_max_pm_sblk, 2 27091_c_max_pm_sblk: 27092 .zero 2 27093 .section .bss._c_mix_max_slc_ec_count,"aw",@nobits 27094 .align 1 27095 .set .LANCHOR132,. + 0 27096 .type _c_mix_max_slc_ec_count, %object 27097 .size _c_mix_max_slc_ec_count, 2 27098_c_mix_max_slc_ec_count: 27099 .zero 2 27100 .section .bss._c_mix_max_xlc_ec_count,"aw",@nobits 27101 .align 1 27102 .set .LANCHOR131,. + 0 27103 .type _c_mix_max_xlc_ec_count, %object 27104 .size _c_mix_max_xlc_ec_count, 2 27105_c_mix_max_xlc_ec_count: 27106 .zero 2 27107 .section .bss._c_slc_to_xlc_ec_ratio,"aw",@nobits 27108 .align 1 27109 .set .LANCHOR10,. + 0 27110 .type _c_slc_to_xlc_ec_ratio, %object 27111 .size _c_slc_to_xlc_ec_ratio, 2 27112_c_slc_to_xlc_ec_ratio: 27113 .zero 2 27114 .section .bss._c_swl_slc_gc_th,"aw",@nobits 27115 .align 1 27116 .set .LANCHOR150,. + 0 27117 .type _c_swl_slc_gc_th, %object 27118 .size _c_swl_slc_gc_th, 2 27119_c_swl_slc_gc_th: 27120 .zero 2 27121 .section .bss._c_swl_xlc_gc_th,"aw",@nobits 27122 .align 1 27123 .set .LANCHOR151,. + 0 27124 .type _c_swl_xlc_gc_th, %object 27125 .size _c_swl_xlc_gc_th, 2 27126_c_swl_xlc_gc_th: 27127 .zero 2 27128 .section .bss._c_totle_data_density,"aw",@nobits 27129 .align 2 27130 .set .LANCHOR228,. + 0 27131 .type _c_totle_data_density, %object 27132 .size _c_totle_data_density, 4 27133_c_totle_data_density: 27134 .zero 4 27135 .section .bss._c_totle_log_page,"aw",@nobits 27136 .align 2 27137 .set .LANCHOR219,. + 0 27138 .type _c_totle_log_page, %object 27139 .size _c_totle_log_page, 4 27140_c_totle_log_page: 27141 .zero 4 27142 .section .bss._c_totle_phy_density,"aw",@nobits 27143 .align 2 27144 .set .LANCHOR227,. + 0 27145 .type _c_totle_phy_density, %object 27146 .size _c_totle_phy_density, 4 27147_c_totle_phy_density: 27148 .zero 4 27149 .section .bss._c_user_data_density,"aw",@nobits 27150 .align 2 27151 .set .LANCHOR73,. + 0 27152 .type _c_user_data_density, %object 27153 .size _c_user_data_density, 4 27154_c_user_data_density: 27155 .zero 4 27156 .section .bss._ftl_gc_tag_page_num,"aw",@nobits 27157 .set .LANCHOR224,. + 0 27158 .type _ftl_gc_tag_page_num, %object 27159 .size _ftl_gc_tag_page_num, 1 27160_ftl_gc_tag_page_num: 27161 .zero 1 27162 .section .bss._gc_after_discard_en,"aw",@nobits 27163 .align 2 27164 .set .LANCHOR128,. + 0 27165 .type _gc_after_discard_en, %object 27166 .size _gc_after_discard_en, 4 27167_gc_after_discard_en: 27168 .zero 4 27169 .section .bss._last_read_time,"aw",@nobits 27170 .align 2 27171 .type _last_read_time, %object 27172 .size _last_read_time, 4 27173_last_read_time: 27174 .zero 4 27175 .section .bss._last_write_time,"aw",@nobits 27176 .align 2 27177 .type _last_write_time, %object 27178 .size _last_write_time, 4 27179_last_write_time: 27180 .zero 4 27181 .section .bss._max_xlc_super_block,"aw",@nobits 27182 .align 1 27183 .set .LANCHOR107,. + 0 27184 .type _max_xlc_super_block, %object 27185 .size _max_xlc_super_block, 2 27186_max_xlc_super_block: 27187 .zero 2 27188 .section .bss._min_slc_super_block,"aw",@nobits 27189 .align 1 27190 .set .LANCHOR104,. + 0 27191 .type _min_slc_super_block, %object 27192 .size _min_slc_super_block, 2 27193_min_slc_super_block: 27194 .zero 2 27195 .section .bss.discard_sector_count,"aw",@nobits 27196 .align 2 27197 .set .LANCHOR241,. + 0 27198 .type discard_sector_count, %object 27199 .size discard_sector_count, 4 27200discard_sector_count: 27201 .zero 4 27202 .section .bss.fill_spare_size,"aw",@nobits 27203 .align 1 27204 .set .LANCHOR53,. + 0 27205 .type fill_spare_size, %object 27206 .size fill_spare_size, 2 27207fill_spare_size: 27208 .zero 2 27209 .section .bss.flash_ddr_tuning_sdr_read_count,"aw",@nobits 27210 .align 2 27211 .set .LANCHOR170,. + 0 27212 .type flash_ddr_tuning_sdr_read_count, %object 27213 .size flash_ddr_tuning_sdr_read_count, 4 27214flash_ddr_tuning_sdr_read_count: 27215 .zero 4 27216 .section .bss.flash_read_retry,"aw",@nobits 27217 .align 3 27218 .set .LANCHOR172,. + 0 27219 .type flash_read_retry, %object 27220 .size flash_read_retry, 8 27221flash_read_retry: 27222 .zero 8 27223 .section .bss.free_buf_count,"aw",@nobits 27224 .set .LANCHOR57,. + 0 27225 .type free_buf_count, %object 27226 .size free_buf_count, 1 27227free_buf_count: 27228 .zero 1 27229 .section .bss.free_mix_sblk,"aw",@nobits 27230 .align 1 27231 .set .LANCHOR113,. + 0 27232 .type free_mix_sblk, %object 27233 .size free_mix_sblk, 2 27234free_mix_sblk: 27235 .zero 2 27236 .section .bss.free_slc_sblk,"aw",@nobits 27237 .align 1 27238 .set .LANCHOR109,. + 0 27239 .type free_slc_sblk, %object 27240 .size free_slc_sblk, 2 27241free_slc_sblk: 27242 .zero 2 27243 .section .bss.free_xlc_sblk,"aw",@nobits 27244 .align 1 27245 .set .LANCHOR111,. + 0 27246 .type free_xlc_sblk, %object 27247 .size free_xlc_sblk, 2 27248free_xlc_sblk: 27249 .zero 2 27250 .section .bss.ftl_ext_info_data_buffer,"aw",@nobits 27251 .align 3 27252 .set .LANCHOR199,. + 0 27253 .type ftl_ext_info_data_buffer, %object 27254 .size ftl_ext_info_data_buffer, 8 27255ftl_ext_info_data_buffer: 27256 .zero 8 27257 .section .bss.ftl_ext_info_first_write,"aw",@nobits 27258 .set .LANCHOR198,. + 0 27259 .type ftl_ext_info_first_write, %object 27260 .size ftl_ext_info_first_write, 1 27261ftl_ext_info_first_write: 27262 .zero 1 27263 .section .bss.ftl_flush_jiffies,"aw",@nobits 27264 .align 2 27265 .set .LANCHOR236,. + 0 27266 .type ftl_flush_jiffies, %object 27267 .size ftl_flush_jiffies, 4 27268ftl_flush_jiffies: 27269 .zero 4 27270 .section .bss.ftl_info_data_buffer,"aw",@nobits 27271 .align 3 27272 .set .LANCHOR194,. + 0 27273 .type ftl_info_data_buffer, %object 27274 .size ftl_info_data_buffer, 8 27275ftl_info_data_buffer: 27276 .zero 8 27277 .section .bss.ftl_info_spare,"aw",@nobits 27278 .align 6 27279 .set .LANCHOR192,. + 0 27280 .type ftl_info_spare, %object 27281 .size ftl_info_spare, 256 27282ftl_info_spare: 27283 .zero 256 27284 .section .bss.ftl_low_format_cur_blk,"aw",@nobits 27285 .align 1 27286 .set .LANCHOR74,. + 0 27287 .type ftl_low_format_cur_blk, %object 27288 .size ftl_low_format_cur_blk, 2 27289ftl_low_format_cur_blk: 27290 .zero 2 27291 .section .bss.ftl_power_lost_flag,"aw",@nobits 27292 .set .LANCHOR197,. + 0 27293 .type ftl_power_lost_flag, %object 27294 .size ftl_power_lost_flag, 1 27295ftl_power_lost_flag: 27296 .zero 1 27297 .section .bss.ftl_sblk_lpa_tbl,"aw",@nobits 27298 .align 3 27299 .set .LANCHOR123,. + 0 27300 .type ftl_sblk_lpa_tbl, %object 27301 .size ftl_sblk_lpa_tbl, 8 27302ftl_sblk_lpa_tbl: 27303 .zero 8 27304 .section .bss.ftl_sblk_update_list,"aw",@nobits 27305 .align 3 27306 .set .LANCHOR79,. + 0 27307 .type ftl_sblk_update_list, %object 27308 .size ftl_sblk_update_list, 16 27309ftl_sblk_update_list: 27310 .zero 16 27311 .section .bss.ftl_sblk_update_list_offset,"aw",@nobits 27312 .align 1 27313 .set .LANCHOR129,. + 0 27314 .type ftl_sblk_update_list_offset, %object 27315 .size ftl_sblk_update_list_offset, 2 27316ftl_sblk_update_list_offset: 27317 .zero 2 27318 .section .bss.ftl_sblk_vpn,"aw",@nobits 27319 .align 3 27320 .set .LANCHOR11,. + 0 27321 .type ftl_sblk_vpn, %object 27322 .size ftl_sblk_vpn, 8 27323ftl_sblk_vpn: 27324 .zero 8 27325 .section .bss.ftl_sblk_vpn_update_id,"aw",@nobits 27326 .align 1 27327 .set .LANCHOR78,. + 0 27328 .type ftl_sblk_vpn_update_id, %object 27329 .size ftl_sblk_vpn_update_id, 2 27330ftl_sblk_vpn_update_id: 27331 .zero 2 27332 .section .bss.ftl_sys_info_first_write,"aw",@nobits 27333 .set .LANCHOR196,. + 0 27334 .type ftl_sys_info_first_write, %object 27335 .size ftl_sys_info_first_write, 1 27336ftl_sys_info_first_write: 27337 .zero 1 27338 .section .bss.ftl_tmp_buffer,"aw",@nobits 27339 .align 3 27340 .set .LANCHOR189,. + 0 27341 .type ftl_tmp_buffer, %object 27342 .size ftl_tmp_buffer, 8 27343ftl_tmp_buffer: 27344 .zero 8 27345 .section .bss.ftl_tmp_spare,"aw",@nobits 27346 .align 6 27347 .set .LANCHOR190,. + 0 27348 .type ftl_tmp_spare, %object 27349 .size ftl_tmp_spare, 256 27350ftl_tmp_spare: 27351 .zero 256 27352 .section .bss.ftl_vpn_update_count,"aw",@nobits 27353 .align 1 27354 .set .LANCHOR127,. + 0 27355 .type ftl_vpn_update_count, %object 27356 .size ftl_vpn_update_count, 2 27357ftl_vpn_update_count: 27358 .zero 2 27359 .section .bss.g_block_align_addr,"aw",@nobits 27360 .align 1 27361 .set .LANCHOR2,. + 0 27362 .type g_block_align_addr, %object 27363 .size g_block_align_addr, 2 27364g_block_align_addr: 27365 .zero 2 27366 .section .bss.g_buf,"aw",@nobits 27367 .align 3 27368 .set .LANCHOR55,. + 0 27369 .type g_buf, %object 27370 .size g_buf, 1024 27371g_buf: 27372 .zero 1024 27373 .section .bss.g_die_addr,"aw",@nobits 27374 .align 2 27375 .set .LANCHOR146,. + 0 27376 .type g_die_addr, %object 27377 .size g_die_addr, 32 27378g_die_addr: 27379 .zero 32 27380 .section .bss.g_die_cs_idx,"aw",@nobits 27381 .align 2 27382 .set .LANCHOR29,. + 0 27383 .type g_die_cs_idx, %object 27384 .size g_die_cs_idx, 8 27385g_die_cs_idx: 27386 .zero 8 27387 .section .bss.g_flash_3d_mlc_flag,"aw",@nobits 27388 .set .LANCHOR86,. + 0 27389 .type g_flash_3d_mlc_flag, %object 27390 .size g_flash_3d_mlc_flag, 1 27391g_flash_3d_mlc_flag: 27392 .zero 1 27393 .section .bss.g_flash_3d_tlc_flag,"aw",@nobits 27394 .set .LANCHOR89,. + 0 27395 .type g_flash_3d_tlc_flag, %object 27396 .size g_flash_3d_tlc_flag, 1 27397g_flash_3d_tlc_flag: 27398 .zero 1 27399 .section .bss.g_flash_blk_info,"aw",@nobits 27400 .align 3 27401 .set .LANCHOR210,. + 0 27402 .type g_flash_blk_info, %object 27403 .size g_flash_blk_info, 4 27404g_flash_blk_info: 27405 .zero 4 27406 .section .bss.g_flash_cur_mode,"aw",@nobits 27407 .align 3 27408 .set .LANCHOR33,. + 0 27409 .type g_flash_cur_mode, %object 27410 .size g_flash_cur_mode, 4 27411g_flash_cur_mode: 27412 .zero 4 27413 .section .bss.g_flash_interface_mode,"aw",@nobits 27414 .set .LANCHOR48,. + 0 27415 .type g_flash_interface_mode, %object 27416 .size g_flash_interface_mode, 1 27417g_flash_interface_mode: 27418 .zero 1 27419 .section .bss.g_flash_micron_3d_tlc_b05a,"aw",@nobits 27420 .set .LANCHOR130,. + 0 27421 .type g_flash_micron_3d_tlc_b05a, %object 27422 .size g_flash_micron_3d_tlc_b05a, 1 27423g_flash_micron_3d_tlc_b05a: 27424 .zero 1 27425 .section .bss.g_flash_micron_3d_tlc_b16a,"aw",@nobits 27426 .set .LANCHOR216,. + 0 27427 .type g_flash_micron_3d_tlc_b16a, %object 27428 .size g_flash_micron_3d_tlc_b16a, 1 27429g_flash_micron_3d_tlc_b16a: 27430 .zero 1 27431 .section .bss.g_flash_micron_3d_tlc_flag,"aw",@nobits 27432 .set .LANCHOR35,. + 0 27433 .type g_flash_micron_3d_tlc_flag, %object 27434 .size g_flash_micron_3d_tlc_flag, 1 27435g_flash_micron_3d_tlc_flag: 27436 .zero 1 27437 .section .bss.g_flash_multi_page_prog_en,"aw",@nobits 27438 .set .LANCHOR44,. + 0 27439 .type g_flash_multi_page_prog_en, %object 27440 .size g_flash_multi_page_prog_en, 1 27441g_flash_multi_page_prog_en: 27442 .zero 1 27443 .section .bss.g_flash_multi_page_read_en,"aw",@nobits 27444 .set .LANCHOR185,. + 0 27445 .type g_flash_multi_page_read_en, %object 27446 .size g_flash_multi_page_read_en, 1 27447g_flash_multi_page_read_en: 27448 .zero 1 27449 .section .bss.g_flash_page_buffer,"aw",@nobits 27450 .align 3 27451 .set .LANCHOR174,. + 0 27452 .type g_flash_page_buffer, %object 27453 .size g_flash_page_buffer, 8 27454g_flash_page_buffer: 27455 .zero 8 27456 .section .bss.g_flash_reversd_blks,"aw",@nobits 27457 .set .LANCHOR215,. + 0 27458 .type g_flash_reversd_blks, %object 27459 .size g_flash_reversd_blks, 1 27460g_flash_reversd_blks: 27461 .zero 1 27462 .section .bss.g_flash_six_addr,"aw",@nobits 27463 .set .LANCHOR30,. + 0 27464 .type g_flash_six_addr, %object 27465 .size g_flash_six_addr, 1 27466g_flash_six_addr: 27467 .zero 1 27468 .section .bss.g_flash_slc_mode,"aw",@nobits 27469 .set .LANCHOR0,. + 0 27470 .type g_flash_slc_mode, %object 27471 .size g_flash_slc_mode, 1 27472g_flash_slc_mode: 27473 .zero 1 27474 .section .bss.g_flash_spare_buffer,"aw",@nobits 27475 .align 3 27476 .set .LANCHOR173,. + 0 27477 .type g_flash_spare_buffer, %object 27478 .size g_flash_spare_buffer, 8 27479g_flash_spare_buffer: 27480 .zero 8 27481 .section .bss.g_flash_sys_spare_buffer,"aw",@nobits 27482 .align 3 27483 .set .LANCHOR209,. + 0 27484 .type g_flash_sys_spare_buffer, %object 27485 .size g_flash_sys_spare_buffer, 8 27486g_flash_sys_spare_buffer: 27487 .zero 8 27488 .section .bss.g_flash_tmp_page_buffer,"aw",@nobits 27489 .align 3 27490 .set .LANCHOR164,. + 0 27491 .type g_flash_tmp_page_buffer, %object 27492 .size g_flash_tmp_page_buffer, 8 27493g_flash_tmp_page_buffer: 27494 .zero 8 27495 .section .bss.g_flash_tmp_spare_buffer,"aw",@nobits 27496 .align 3 27497 .set .LANCHOR166,. + 0 27498 .type g_flash_tmp_spare_buffer, %object 27499 .size g_flash_tmp_spare_buffer, 8 27500g_flash_tmp_spare_buffer: 27501 .zero 8 27502 .section .bss.g_flash_toggle_mode_en,"aw",@nobits 27503 .set .LANCHOR26,. + 0 27504 .type g_flash_toggle_mode_en, %object 27505 .size g_flash_toggle_mode_en, 1 27506g_flash_toggle_mode_en: 27507 .zero 1 27508 .section .bss.g_flash_ymtc_3d_tlc_flag,"aw",@nobits 27509 .set .LANCHOR36,. + 0 27510 .type g_flash_ymtc_3d_tlc_flag, %object 27511 .size g_flash_ymtc_3d_tlc_flag, 1 27512g_flash_ymtc_3d_tlc_flag: 27513 .zero 1 27514 .section .bss.g_ftl_info_blk,"aw",@nobits 27515 .align 6 27516 .set .LANCHOR193,. + 0 27517 .type g_ftl_info_blk, %object 27518 .size g_ftl_info_blk, 4 27519g_ftl_info_blk: 27520 .zero 4 27521 .section .bss.g_gc_info,"aw",@nobits 27522 .align 3 27523 .set .LANCHOR76,. + 0 27524 .type g_gc_info, %object 27525 .size g_gc_info, 2216 27526g_gc_info: 27527 .zero 2216 27528 .section .bss.g_idb_ecc_bits,"aw",@nobits 27529 .set .LANCHOR22,. + 0 27530 .type g_idb_ecc_bits, %object 27531 .size g_idb_ecc_bits, 1 27532g_idb_ecc_bits: 27533 .zero 1 27534 .section .bss.g_idb_slc_mode_enable,"aw",@nobits 27535 .set .LANCHOR24,. + 0 27536 .type g_idb_slc_mode_enable, %object 27537 .size g_idb_slc_mode_enable, 1 27538g_idb_slc_mode_enable: 27539 .zero 1 27540 .section .bss.g_lsb_page_tbl,"aw",@nobits 27541 .align 2 27542 .set .LANCHOR3,. + 0 27543 .type g_lsb_page_tbl, %object 27544 .size g_lsb_page_tbl, 1024 27545g_lsb_page_tbl: 27546 .zero 1024 27547 .section .bss.g_maxRegNum,"aw",@nobits 27548 .set .LANCHOR18,. + 0 27549 .type g_maxRegNum, %object 27550 .size g_maxRegNum, 1 27551g_maxRegNum: 27552 .zero 1 27553 .section .bss.g_maxRetryCount,"aw",@nobits 27554 .set .LANCHOR167,. + 0 27555 .type g_maxRetryCount, %object 27556 .size g_maxRetryCount, 1 27557g_maxRetryCount: 27558 .zero 1 27559 .section .bss.g_msb_page_tbl,"aw",@nobits 27560 .align 2 27561 .set .LANCHOR143,. + 0 27562 .type g_msb_page_tbl, %object 27563 .size g_msb_page_tbl, 2048 27564g_msb_page_tbl: 27565 .zero 2048 27566 .section .bss.g_nand_max_die,"aw",@nobits 27567 .set .LANCHOR23,. + 0 27568 .type g_nand_max_die, %object 27569 .size g_nand_max_die, 1 27570g_nand_max_die: 27571 .zero 1 27572 .section .bss.g_nand_opt_para,"aw",@nobits 27573 .align 3 27574 .set .LANCHOR25,. + 0 27575 .type g_nand_opt_para, %object 27576 .size g_nand_opt_para, 32 27577g_nand_opt_para: 27578 .zero 32 27579 .section .bss.g_nandc_ecc_bits,"aw",@nobits 27580 .set .LANCHOR49,. + 0 27581 .type g_nandc_ecc_bits, %object 27582 .size g_nandc_ecc_bits, 1 27583g_nandc_ecc_bits: 27584 .zero 1 27585 .section .bss.g_nandc_tran_timeout,"aw",@nobits 27586 .set .LANCHOR165,. + 0 27587 .type g_nandc_tran_timeout, %object 27588 .size g_nandc_tran_timeout, 1 27589g_nandc_tran_timeout: 27590 .zero 1 27591 .section .bss.g_nandc_v6_master_info,"aw",@nobits 27592 .align 3 27593 .set .LANCHOR52,. + 0 27594 .type g_nandc_v6_master_info, %object 27595 .size g_nandc_v6_master_info, 40 27596g_nandc_v6_master_info: 27597 .zero 40 27598 .section .bss.g_nandc_ver,"aw",@nobits 27599 .set .LANCHOR27,. + 0 27600 .type g_nandc_ver, %object 27601 .size g_nandc_ver, 1 27602g_nandc_ver: 27603 .zero 1 27604 .section .bss.g_one_pass_program,"aw",@nobits 27605 .set .LANCHOR87,. + 0 27606 .type g_one_pass_program, %object 27607 .size g_one_pass_program, 1 27608g_one_pass_program: 27609 .zero 1 27610 .section .bss.g_pm_spare,"aw",@nobits 27611 .align 3 27612 .set .LANCHOR206,. + 0 27613 .type g_pm_spare, %object 27614 .size g_pm_spare, 8 27615g_pm_spare: 27616 .zero 8 27617 .section .bss.g_retryMode,"aw",@nobits 27618 .set .LANCHOR16,. + 0 27619 .type g_retryMode, %object 27620 .size g_retryMode, 1 27621g_retryMode: 27622 .zero 1 27623 .section .bss.g_slc_mode_addr2,"aw",@nobits 27624 .set .LANCHOR1,. + 0 27625 .type g_slc_mode_addr2, %object 27626 .size g_slc_mode_addr2, 1 27627g_slc_mode_addr2: 27628 .zero 1 27629 .section .bss.g_slc_mode_enable,"aw",@nobits 27630 .type g_slc_mode_enable, %object 27631 .size g_slc_mode_enable, 1 27632g_slc_mode_enable: 27633 .zero 1 27634 .section .bss.g_slc_page_num,"aw",@nobits 27635 .align 1 27636 .set .LANCHOR145,. + 0 27637 .type g_slc_page_num, %object 27638 .size g_slc_page_num, 2 27639g_slc_page_num: 27640 .zero 2 27641 .section .bss.g_totle_phy_block,"aw",@nobits 27642 .align 1 27643 .set .LANCHOR147,. + 0 27644 .type g_totle_phy_block, %object 27645 .size g_totle_phy_block, 2 27646g_totle_phy_block: 27647 .zero 2 27648 .section .bss.gc_des_ppa_tbl,"aw",@nobits 27649 .align 3 27650 .set .LANCHOR162,. + 0 27651 .type gc_des_ppa_tbl, %object 27652 .size gc_des_ppa_tbl, 8 27653gc_des_ppa_tbl: 27654 .zero 8 27655 .section .bss.gc_free_slc_sblk_th,"aw",@nobits 27656 .align 1 27657 .set .LANCHOR92,. + 0 27658 .type gc_free_slc_sblk_th, %object 27659 .size gc_free_slc_sblk_th, 2 27660gc_free_slc_sblk_th: 27661 .zero 2 27662 .section .bss.gc_lpa_tbl,"aw",@nobits 27663 .align 3 27664 .set .LANCHOR160,. + 0 27665 .type gc_lpa_tbl, %object 27666 .size gc_lpa_tbl, 8 27667gc_lpa_tbl: 27668 .zero 8 27669 .section .bss.gc_mode,"aw",@nobits 27670 .set .LANCHOR90,. + 0 27671 .type gc_mode, %object 27672 .size gc_mode, 1 27673gc_mode: 27674 .zero 1 27675 .section .bss.gc_page_buf_id,"aw",@nobits 27676 .align 3 27677 .set .LANCHOR88,. + 0 27678 .type gc_page_buf_id, %object 27679 .size gc_page_buf_id, 8 27680gc_page_buf_id: 27681 .zero 8 27682 .section .bss.gc_pre_ppa_tbl,"aw",@nobits 27683 .align 3 27684 .set .LANCHOR161,. + 0 27685 .type gc_pre_ppa_tbl, %object 27686 .size gc_pre_ppa_tbl, 8 27687gc_pre_ppa_tbl: 27688 .zero 8 27689 .section .bss.gc_search_count,"aw",@nobits 27690 .align 2 27691 .set .LANCHOR158,. + 0 27692 .type gc_search_count, %object 27693 .size gc_search_count, 4 27694gc_search_count: 27695 .zero 4 27696 .section .bss.gc_slc_cache_index,"aw",@nobits 27697 .align 1 27698 .set .LANCHOR94,. + 0 27699 .type gc_slc_cache_index, %object 27700 .size gc_slc_cache_index, 2 27701gc_slc_cache_index: 27702 .zero 2 27703 .section .bss.gc_slc_data_index,"aw",@nobits 27704 .align 1 27705 .set .LANCHOR93,. + 0 27706 .type gc_slc_data_index, %object 27707 .size gc_slc_data_index, 2 27708gc_slc_data_index: 27709 .zero 2 27710 .section .bss.gc_slc_mode_slc_vpn_th,"aw",@nobits 27711 .align 1 27712 .set .LANCHOR159,. + 0 27713 .type gc_slc_mode_slc_vpn_th, %object 27714 .size gc_slc_mode_slc_vpn_th, 2 27715gc_slc_mode_slc_vpn_th: 27716 .zero 2 27717 .section .bss.gc_slc_mode_tlc_vpn_th,"aw",@nobits 27718 .align 1 27719 .set .LANCHOR99,. + 0 27720 .type gc_slc_mode_tlc_vpn_th, %object 27721 .size gc_slc_mode_tlc_vpn_th, 2 27722gc_slc_mode_tlc_vpn_th: 27723 .zero 2 27724 .section .bss.gc_slc_mode_vpn_th,"aw",@nobits 27725 .align 1 27726 .set .LANCHOR75,. + 0 27727 .type gc_slc_mode_vpn_th, %object 27728 .size gc_slc_mode_vpn_th, 2 27729gc_slc_mode_vpn_th: 27730 .zero 2 27731 .section .bss.gc_state,"aw",@nobits 27732 .set .LANCHOR157,. + 0 27733 .type gc_state, %object 27734 .size gc_state, 1 27735gc_state: 27736 .zero 1 27737 .section .bss.gc_tlc_mode_slc_vpn_th,"aw",@nobits 27738 .align 1 27739 .set .LANCHOR108,. + 0 27740 .type gc_tlc_mode_slc_vpn_th, %object 27741 .size gc_tlc_mode_slc_vpn_th, 2 27742gc_tlc_mode_slc_vpn_th: 27743 .zero 2 27744 .section .bss.gc_tlc_mode_tlc_vpn_th,"aw",@nobits 27745 .align 1 27746 .set .LANCHOR106,. + 0 27747 .type gc_tlc_mode_tlc_vpn_th, %object 27748 .size gc_tlc_mode_tlc_vpn_th, 2 27749gc_tlc_mode_tlc_vpn_th: 27750 .zero 2 27751 .section .bss.gc_valid_page_ppa,"aw",@nobits 27752 .align 3 27753 .set .LANCHOR82,. + 0 27754 .type gc_valid_page_ppa, %object 27755 .size gc_valid_page_ppa, 8 27756gc_valid_page_ppa: 27757 .zero 8 27758 .section .bss.gc_xlc_data_index,"aw",@nobits 27759 .align 1 27760 .set .LANCHOR95,. + 0 27761 .type gc_xlc_data_index, %object 27762 .size gc_xlc_data_index, 2 27763gc_xlc_data_index: 27764 .zero 2 27765 .section .bss.gc_xlc_search_index,"aw",@nobits 27766 .align 1 27767 .set .LANCHOR102,. + 0 27768 .type gc_xlc_search_index, %object 27769 .size gc_xlc_search_index, 2 27770gc_xlc_search_index: 27771 .zero 2 27772 .section .bss.gp_blk_info,"aw",@nobits 27773 .align 3 27774 .set .LANCHOR9,. + 0 27775 .type gp_blk_info, %object 27776 .size gp_blk_info, 8 27777gp_blk_info: 27778 .zero 8 27779 .section .bss.gp_data_slc_cache_head,"aw",@nobits 27780 .align 3 27781 .set .LANCHOR96,. + 0 27782 .type gp_data_slc_cache_head, %object 27783 .size gp_data_slc_cache_head, 8 27784gp_data_slc_cache_head: 27785 .zero 8 27786 .section .bss.gp_data_slc_data_head,"aw",@nobits 27787 .align 3 27788 .set .LANCHOR101,. + 0 27789 .type gp_data_slc_data_head, %object 27790 .size gp_data_slc_data_head, 8 27791gp_data_slc_data_head: 27792 .zero 8 27793 .section .bss.gp_data_xlc_data_head,"aw",@nobits 27794 .align 3 27795 .set .LANCHOR98,. + 0 27796 .type gp_data_xlc_data_head, %object 27797 .size gp_data_xlc_data_head, 8 27798gp_data_xlc_data_head: 27799 .zero 8 27800 .section .bss.gp_flash_check_buf,"aw",@nobits 27801 .align 3 27802 .set .LANCHOR142,. + 0 27803 .type gp_flash_check_buf, %object 27804 .size gp_flash_check_buf, 8 27805gp_flash_check_buf: 27806 .zero 8 27807 .section .bss.gp_flash_info,"aw",@nobits 27808 .align 3 27809 .set .LANCHOR6,. + 0 27810 .type gp_flash_info, %object 27811 .size gp_flash_info, 8 27812gp_flash_info: 27813 .zero 8 27814 .section .bss.gp_free_mix_head,"aw",@nobits 27815 .align 3 27816 .set .LANCHOR114,. + 0 27817 .type gp_free_mix_head, %object 27818 .size gp_free_mix_head, 8 27819gp_free_mix_head: 27820 .zero 8 27821 .section .bss.gp_free_slc_head,"aw",@nobits 27822 .align 3 27823 .set .LANCHOR110,. + 0 27824 .type gp_free_slc_head, %object 27825 .size gp_free_slc_head, 8 27826gp_free_slc_head: 27827 .zero 8 27828 .section .bss.gp_free_xlc_head,"aw",@nobits 27829 .align 3 27830 .set .LANCHOR112,. + 0 27831 .type gp_free_xlc_head, %object 27832 .size gp_free_xlc_head, 8 27833gp_free_xlc_head: 27834 .zero 8 27835 .section .bss.gp_ftl_ext_info,"aw",@nobits 27836 .align 3 27837 .set .LANCHOR12,. + 0 27838 .type gp_ftl_ext_info, %object 27839 .size gp_ftl_ext_info, 8 27840gp_ftl_ext_info: 27841 .zero 8 27842 .section .bss.gp_ftl_info,"aw",@nobits 27843 .align 3 27844 .set .LANCHOR69,. + 0 27845 .type gp_ftl_info, %object 27846 .size gp_ftl_info, 8 27847gp_ftl_info: 27848 .zero 8 27849 .section .bss.gp_nand_para_info,"aw",@nobits 27850 .align 3 27851 .set .LANCHOR21,. + 0 27852 .type gp_nand_para_info, %object 27853 .size gp_nand_para_info, 8 27854gp_nand_para_info: 27855 .zero 8 27856 .section .bss.gp_nandc,"aw",@nobits 27857 .align 3 27858 .set .LANCHOR7,. + 0 27859 .type gp_nandc, %object 27860 .size gp_nandc, 8 27861gp_nandc: 27862 .zero 8 27863 .section .bss.gp_sblk_list_tbl,"aw",@nobits 27864 .align 3 27865 .set .LANCHOR4,. + 0 27866 .type gp_sblk_list_tbl, %object 27867 .size gp_sblk_list_tbl, 8 27868gp_sblk_list_tbl: 27869 .zero 8 27870 .section .bss.idb_buf,"aw",@nobits 27871 .align 3 27872 .set .LANCHOR139,. + 0 27873 .type idb_buf, %object 27874 .size idb_buf, 8 27875idb_buf: 27876 .zero 8 27877 .section .bss.idb_last_lba,"aw",@nobits 27878 .align 2 27879 .set .LANCHOR175,. + 0 27880 .type idb_last_lba, %object 27881 .size idb_last_lba, 4 27882idb_last_lba: 27883 .zero 4 27884 .section .bss.idb_need_write_back,"aw",@nobits 27885 .align 2 27886 .set .LANCHOR140,. + 0 27887 .type idb_need_write_back, %object 27888 .size idb_need_write_back, 4 27889idb_need_write_back: 27890 .zero 4 27891 .section .bss.idb_write_enable,"aw",@nobits 27892 .set .LANCHOR141,. + 0 27893 .type idb_write_enable, %object 27894 .size idb_write_enable, 1 27895idb_write_enable: 27896 .zero 1 27897 .section .bss.lpa_hash,"aw",@nobits 27898 .align 3 27899 .set .LANCHOR122,. + 0 27900 .type lpa_hash, %object 27901 .size lpa_hash, 512 27902lpa_hash: 27903 .zero 512 27904 .section .bss.lpa_hash_index,"aw",@nobits 27905 .align 3 27906 .set .LANCHOR124,. + 0 27907 .type lpa_hash_index, %object 27908 .size lpa_hash_index, 8 27909lpa_hash_index: 27910 .zero 8 27911 .section .bss.nandc_ecc_sts,"aw",@nobits 27912 .align 3 27913 .type nandc_ecc_sts, %object 27914 .size nandc_ecc_sts, 16 27915nandc_ecc_sts: 27916 .zero 16 27917 .section .bss.nandc_hw_seed,"aw",@nobits 27918 .set .LANCHOR50,. + 0 27919 .type nandc_hw_seed, %object 27920 .size nandc_hw_seed, 1 27921nandc_hw_seed: 27922 .zero 1 27923 .section .bss.nandc_randomizer_en,"aw",@nobits 27924 .set .LANCHOR51,. + 0 27925 .type nandc_randomizer_en, %object 27926 .size nandc_randomizer_en, 1 27927nandc_randomizer_en: 27928 .zero 1 27929 .section .bss.p_free_buf_head,"aw",@nobits 27930 .set .LANCHOR56,. + 0 27931 .type p_free_buf_head, %object 27932 .size p_free_buf_head, 1 27933p_free_buf_head: 27934 .zero 1 27935 .section .bss.p_read_ahead_ext_buf,"aw",@nobits 27936 .align 3 27937 .type p_read_ahead_ext_buf, %object 27938 .size p_read_ahead_ext_buf, 8 27939p_read_ahead_ext_buf: 27940 .zero 8 27941 .section .bss.pm_first_write,"aw",@nobits 27942 .set .LANCHOR207,. + 0 27943 .type pm_first_write, %object 27944 .size pm_first_write, 1 27945pm_first_write: 27946 .zero 1 27947 .section .bss.pm_force_gc,"aw",@nobits 27948 .align 2 27949 .set .LANCHOR149,. + 0 27950 .type pm_force_gc, %object 27951 .size pm_force_gc, 4 27952pm_force_gc: 27953 .zero 4 27954 .section .bss.pm_gc_enable,"aw",@nobits 27955 .align 2 27956 .set .LANCHOR134,. + 0 27957 .type pm_gc_enable, %object 27958 .size pm_gc_enable, 4 27959pm_gc_enable: 27960 .zero 4 27961 .section .bss.pm_last_load_ram_id,"aw",@nobits 27962 .set .LANCHOR223,. + 0 27963 .type pm_last_load_ram_id, %object 27964 .size pm_last_load_ram_id, 1 27965pm_last_load_ram_id: 27966 .zero 1 27967 .section .bss.pm_last_update_ram_id,"aw",@nobits 27968 .set .LANCHOR137,. + 0 27969 .type pm_last_update_ram_id, %object 27970 .size pm_last_update_ram_id, 1 27971pm_last_update_ram_id: 27972 .zero 1 27973 .section .bss.pm_ram_info,"aw",@nobits 27974 .align 3 27975 .set .LANCHOR136,. + 0 27976 .type pm_ram_info, %object 27977 .size pm_ram_info, 128 27978pm_ram_info: 27979 .zero 128 27980 .section .bss.read_ahead_lpa,"aw",@nobits 27981 .align 2 27982 .set .LANCHOR226,. + 0 27983 .type read_ahead_lpa, %object 27984 .size read_ahead_lpa, 4 27985read_ahead_lpa: 27986 .zero 4 27987 .section .bss.read_buf_count,"aw",@nobits 27988 .set .LANCHOR72,. + 0 27989 .type read_buf_count, %object 27990 .size read_buf_count, 1 27991read_buf_count: 27992 .zero 1 27993 .section .bss.read_buf_head,"aw",@nobits 27994 .set .LANCHOR71,. + 0 27995 .type read_buf_head, %object 27996 .size read_buf_head, 1 27997read_buf_head: 27998 .zero 1 27999 .section .bss.sblk_gc_write_completed_queue_head,"aw",@nobits 28000 .set .LANCHOR63,. + 0 28001 .type sblk_gc_write_completed_queue_head, %object 28002 .size sblk_gc_write_completed_queue_head, 1 28003sblk_gc_write_completed_queue_head: 28004 .zero 1 28005 .section .bss.sblk_queue_head,"aw",@nobits 28006 .set .LANCHOR59,. + 0 28007 .type sblk_queue_head, %object 28008 .size sblk_queue_head, 1 28009sblk_queue_head: 28010 .zero 1 28011 .section .bss.sblk_read_completed_queue_head,"aw",@nobits 28012 .set .LANCHOR62,. + 0 28013 .type sblk_read_completed_queue_head, %object 28014 .size sblk_read_completed_queue_head, 1 28015sblk_read_completed_queue_head: 28016 .zero 1 28017 .section .bss.sblk_write_completed_queue_head,"aw",@nobits 28018 .set .LANCHOR64,. + 0 28019 .type sblk_write_completed_queue_head, %object 28020 .size sblk_write_completed_queue_head, 1 28021sblk_write_completed_queue_head: 28022 .zero 1 28023 .section .bss.slc_cache_sblk,"aw",@nobits 28024 .align 1 28025 .set .LANCHOR105,. + 0 28026 .type slc_cache_sblk, %object 28027 .size slc_cache_sblk, 2 28028slc_cache_sblk: 28029 .zero 2 28030 .section .bss.slc_data_sblk,"aw",@nobits 28031 .align 1 28032 .set .LANCHOR103,. + 0 28033 .type slc_data_sblk, %object 28034 .size slc_data_sblk, 2 28035slc_data_sblk: 28036 .zero 2 28037 .section .bss.write_buf_count,"aw",@nobits 28038 .set .LANCHOR66,. + 0 28039 .type write_buf_count, %object 28040 .size write_buf_count, 1 28041write_buf_count: 28042 .zero 1 28043 .section .bss.write_buf_head,"aw",@nobits 28044 .set .LANCHOR65,. + 0 28045 .type write_buf_head, %object 28046 .size write_buf_head, 1 28047write_buf_head: 28048 .zero 1 28049 .section .bss.write_commit_count,"aw",@nobits 28050 .set .LANCHOR183,. + 0 28051 .type write_commit_count, %object 28052 .size write_commit_count, 1 28053write_commit_count: 28054 .zero 1 28055 .section .bss.write_commit_head,"aw",@nobits 28056 .set .LANCHOR184,. + 0 28057 .type write_commit_head, %object 28058 .size write_commit_head, 1 28059write_commit_head: 28060 .zero 1 28061 .section .bss.xlc_data_sblk,"aw",@nobits 28062 .align 1 28063 .set .LANCHOR97,. + 0 28064 .type xlc_data_sblk, %object 28065 .size xlc_data_sblk, 2 28066xlc_data_sblk: 28067 .zero 2 28068 .section .bss.zftl_print_list_count,"aw",@nobits 28069 .align 1 28070 .set .LANCHOR115,. + 0 28071 .type zftl_print_list_count, %object 28072 .size zftl_print_list_count, 2 28073zftl_print_list_count: 28074 .zero 2 28075 .section .data.g_nand_para_info,"aw",@progbits 28076 .align 3 28077 .set .LANCHOR32,. + 0 28078 .type g_nand_para_info, %object 28079 .size g_nand_para_info, 32 28080g_nand_para_info: 28081 .byte 6 28082 .byte -104 28083 .byte 58 28084 .byte -104 28085 .byte -77 28086 .byte 118 28087 .byte 114 28088 .byte 1 28089 .byte 1 28090 .byte 32 28091 .hword 768 28092 .byte 3 28093 .byte 2 28094 .hword 758 28095 .hword 5593 28096 .byte 0 28097 .byte 37 28098 .byte 60 28099 .byte 32 28100 .byte 2 28101 .byte 1 28102 .byte 4 28103 .byte 0 28104 .hword 256 28105 .byte 1 28106 .byte -94 28107 .byte 0 28108 .byte 0 28109 .section .data.hy_f26_ref_value,"aw",@progbits 28110 .align 3 28111 .set .LANCHOR163,. + 0 28112 .type hy_f26_ref_value, %object 28113 .size hy_f26_ref_value, 28 28114hy_f26_ref_value: 28115 .byte 0 28116 .byte 0 28117 .byte 0 28118 .byte 0 28119 .byte 0 28120 .byte 6 28121 .byte 10 28122 .byte 6 28123 .byte 0 28124 .byte -3 28125 .byte -7 28126 .byte -8 28127 .byte 0 28128 .byte -6 28129 .byte -13 28130 .byte -15 28131 .byte 0 28132 .byte -11 28133 .byte -20 28134 .byte -23 28135 .byte 0 28136 .byte 0 28137 .byte -26 28138 .byte -30 28139 .byte 0 28140 .byte 0 28141 .byte -32 28142 .byte -37 28143 .section .data.nand_opt_para,"aw",@progbits 28144 .align 3 28145 .set .LANCHOR214,. + 0 28146 .type nand_opt_para, %object 28147 .size nand_opt_para, 128 28148nand_opt_para: 28149 .byte 1 28150 .byte 0 28151 .byte 49 28152 .byte 63 28153 .byte 0 28154 .byte 49 28155 .byte -128 28156 .byte 21 28157 .byte 0 28158 .byte 50 28159 .byte 17 28160 .byte -128 28161 .byte 112 28162 .byte 120 28163 .byte 120 28164 .byte 3 28165 .byte 1 28166 .byte 0 28167 .zero 14 28168 .byte 2 28169 .byte 0 28170 .byte 49 28171 .byte 63 28172 .byte 0 28173 .byte 49 28174 .byte -128 28175 .byte 21 28176 .byte 0 28177 .byte 0 28178 .byte 17 28179 .byte -127 28180 .byte 112 28181 .byte -15 28182 .byte -14 28183 .byte 0 28184 .byte 0 28185 .byte 0 28186 .zero 14 28187 .byte 3 28188 .byte 0 28189 .byte 49 28190 .byte 63 28191 .byte 0 28192 .byte 49 28193 .byte -128 28194 .byte 21 28195 .byte 96 28196 .byte 96 28197 .byte 17 28198 .byte -127 28199 .byte 112 28200 .byte -15 28201 .byte -14 28202 .byte 0 28203 .byte 0 28204 .byte 0 28205 .zero 14 28206 .byte 4 28207 .byte 0 28208 .byte 49 28209 .byte 63 28210 .byte 0 28211 .byte 49 28212 .byte -128 28213 .byte 21 28214 .byte 96 28215 .byte 96 28216 .byte 17 28217 .byte -127 28218 .byte 112 28219 .byte 112 28220 .byte 112 28221 .byte 0 28222 .byte 0 28223 .byte 0 28224 .zero 14 28225 .section .data.sd15_slc_rr,"aw",@progbits 28226 .align 3 28227 .set .LANCHOR40,. + 0 28228 .type sd15_slc_rr, %object 28229 .size sd15_slc_rr, 25 28230sd15_slc_rr: 28231 .byte 0 28232 .byte 8 28233 .byte -8 28234 .byte 16 28235 .byte -16 28236 .byte 24 28237 .byte -24 28238 .byte 32 28239 .byte -32 28240 .byte 32 28241 .byte -40 28242 .byte 48 28243 .byte -48 28244 .byte 56 28245 .byte -56 28246 .byte 64 28247 .byte -64 28248 .byte 72 28249 .byte -72 28250 .byte 80 28251 .byte -80 28252 .byte 88 28253 .byte 96 28254 .byte 104 28255 .byte 112 28256 .section .data.sd15_tlc_rr,"aw",@progbits 28257 .align 3 28258 .set .LANCHOR39,. + 0 28259 .type sd15_tlc_rr, %object 28260 .size sd15_tlc_rr, 329 28261sd15_tlc_rr: 28262 .byte 0 28263 .byte 0 28264 .byte 0 28265 .byte 0 28266 .byte 0 28267 .byte 0 28268 .byte 0 28269 .byte -8 28270 .byte 0 28271 .byte 16 28272 .byte 8 28273 .byte 8 28274 .byte 0 28275 .byte -8 28276 .byte -8 28277 .byte -8 28278 .byte -16 28279 .byte -8 28280 .byte -8 28281 .byte -8 28282 .byte -8 28283 .byte -24 28284 .byte 0 28285 .byte 0 28286 .byte 0 28287 .byte -8 28288 .byte -16 28289 .byte -32 28290 .byte 0 28291 .byte 8 28292 .byte -8 28293 .byte 8 28294 .byte 8 28295 .byte 0 28296 .byte 0 28297 .byte -16 28298 .byte -8 28299 .byte -8 28300 .byte -8 28301 .byte 0 28302 .byte -16 28303 .byte -24 28304 .byte -16 28305 .byte 8 28306 .byte 8 28307 .byte -8 28308 .byte -16 28309 .byte -16 28310 .byte 0 28311 .byte 8 28312 .byte 8 28313 .byte 8 28314 .byte 8 28315 .byte -8 28316 .byte -8 28317 .byte -24 28318 .byte 0 28319 .byte -16 28320 .byte 0 28321 .byte -8 28322 .byte -16 28323 .byte -8 28324 .byte -8 28325 .byte 0 28326 .byte 8 28327 .byte 0 28328 .byte 0 28329 .byte -8 28330 .byte 0 28331 .byte -24 28332 .byte -8 28333 .byte 0 28334 .byte 0 28335 .byte -8 28336 .byte -24 28337 .byte -8 28338 .byte 8 28339 .byte -8 28340 .byte 0 28341 .byte -8 28342 .byte 8 28343 .byte -16 28344 .byte -8 28345 .byte -8 28346 .byte -8 28347 .byte 8 28348 .byte 8 28349 .byte 0 28350 .byte 0 28351 .byte -8 28352 .byte -8 28353 .byte 8 28354 .byte -8 28355 .byte -8 28356 .byte 0 28357 .byte 0 28358 .byte -8 28359 .byte -16 28360 .byte -16 28361 .byte -8 28362 .byte 0 28363 .byte 0 28364 .byte -8 28365 .byte 0 28366 .byte -16 28367 .byte 8 28368 .byte 0 28369 .byte 8 28370 .byte 0 28371 .byte -16 28372 .byte -8 28373 .byte -16 28374 .byte 16 28375 .byte 0 28376 .byte 16 28377 .byte 0 28378 .byte -8 28379 .byte 8 28380 .byte 0 28381 .byte -24 28382 .byte 0 28383 .byte -16 28384 .byte -8 28385 .byte -16 28386 .byte -16 28387 .byte -16 28388 .byte -16 28389 .byte 0 28390 .byte 8 28391 .byte -8 28392 .byte -24 28393 .byte 0 28394 .byte 8 28395 .byte 8 28396 .byte 16 28397 .byte 16 28398 .byte 0 28399 .byte 8 28400 .byte -8 28401 .byte 8 28402 .byte 16 28403 .byte -8 28404 .byte 24 28405 .byte 0 28406 .byte 8 28407 .byte -4 28408 .byte 0 28409 .byte 16 28410 .byte 8 28411 .byte 24 28412 .byte 8 28413 .byte 0 28414 .byte -4 28415 .byte -8 28416 .byte 24 28417 .byte 16 28418 .byte 16 28419 .byte 0 28420 .byte 0 28421 .byte 0 28422 .byte -16 28423 .byte 0 28424 .byte 0 28425 .byte 4 28426 .byte 0 28427 .byte -4 28428 .byte -4 28429 .byte -4 28430 .byte 8 28431 .byte 8 28432 .byte 16 28433 .byte 0 28434 .byte 16 28435 .byte -4 28436 .byte 16 28437 .byte 0 28438 .byte 16 28439 .byte 8 28440 .byte 0 28441 .byte 16 28442 .byte -4 28443 .byte 16 28444 .byte -8 28445 .byte 0 28446 .byte 0 28447 .byte -8 28448 .byte 16 28449 .byte -4 28450 .byte 16 28451 .byte -16 28452 .byte -8 28453 .byte -8 28454 .byte -8 28455 .byte 8 28456 .byte -4 28457 .byte 8 28458 .byte -24 28459 .byte 4 28460 .byte -16 28461 .byte 0 28462 .byte 8 28463 .byte 0 28464 .byte 0 28465 .byte -24 28466 .byte 8 28467 .byte -16 28468 .byte 8 28469 .byte 0 28470 .byte 8 28471 .byte -24 28472 .byte -32 28473 .byte 16 28474 .byte -24 28475 .byte 8 28476 .byte -8 28477 .byte 8 28478 .byte -24 28479 .byte -32 28480 .byte 8 28481 .byte 0 28482 .byte 16 28483 .byte 0 28484 .byte 16 28485 .byte 0 28486 .byte -32 28487 .byte 4 28488 .byte 0 28489 .byte -8 28490 .byte -16 28491 .byte -8 28492 .byte 0 28493 .byte -32 28494 .byte 4 28495 .byte 0 28496 .byte 8 28497 .byte -24 28498 .byte 8 28499 .byte 0 28500 .byte -32 28501 .byte 4 28502 .byte 0 28503 .byte 0 28504 .byte -32 28505 .byte -4 28506 .byte 0 28507 .byte -24 28508 .byte 4 28509 .byte 0 28510 .byte 16 28511 .byte -24 28512 .byte 16 28513 .byte 0 28514 .byte -24 28515 .byte -4 28516 .byte 0 28517 .byte 8 28518 .byte -32 28519 .byte 8 28520 .byte 0 28521 .byte 0 28522 .byte -4 28523 .byte 0 28524 .byte 0 28525 .byte 0 28526 .byte 0 28527 .byte 0 28528 .byte 0 28529 .byte -4 28530 .byte 0 28531 .byte 0 28532 .byte 0 28533 .byte -4 28534 .byte 0 28535 .byte 0 28536 .byte -4 28537 .byte 0 28538 .byte -8 28539 .byte 0 28540 .byte -8 28541 .byte 0 28542 .byte 0 28543 .byte -4 28544 .byte 0 28545 .byte -16 28546 .byte 0 28547 .byte -16 28548 .byte 0 28549 .byte 0 28550 .byte -16 28551 .byte 0 28552 .byte -16 28553 .byte 0 28554 .byte -16 28555 .byte 0 28556 .byte 0 28557 .byte -8 28558 .byte 0 28559 .byte -16 28560 .byte 0 28561 .byte -16 28562 .byte 0 28563 .byte 0 28564 .byte -16 28565 .byte 0 28566 .byte -24 28567 .byte 0 28568 .byte -24 28569 .byte 0 28570 .byte 0 28571 .byte -24 28572 .byte 0 28573 .byte -24 28574 .byte 0 28575 .byte -24 28576 .byte 0 28577 .byte 0 28578 .byte -24 28579 .byte 0 28580 .byte -16 28581 .byte 0 28582 .byte -16 28583 .byte 0 28584 .byte 0 28585 .byte -24 28586 .byte 0 28587 .byte -32 28588 .byte 0 28589 .byte -32 28590 .byte 0 28591 .section .data.tlc_b05a_prog_tbl,"aw",@progbits 28592 .align 3 28593 .set .LANCHOR238,. + 0 28594 .type tlc_b05a_prog_tbl, %object 28595 .size tlc_b05a_prog_tbl, 1536 28596tlc_b05a_prog_tbl: 28597 .hword 0 28598 .hword 0 28599 .hword 0 28600 .hword 0 28601 .hword 0 28602 .hword 0 28603 .hword 0 28604 .hword 0 28605 .hword 9 28606 .hword 0 28607 .hword 11 28608 .hword 0 28609 .hword 13 28610 .hword 0 28611 .hword 15 28612 .hword 0 28613 .hword 17 28614 .hword 0 28615 .hword 19 28616 .hword 0 28617 .hword 21 28618 .hword 0 28619 .hword 23 28620 .hword 0 28621 .hword 25 28622 .hword 0 28623 .hword 27 28624 .hword 0 28625 .hword 29 28626 .hword 0 28627 .hword 31 28628 .hword 0 28629 .hword 33 28630 .hword 0 28631 .hword 35 28632 .hword 0 28633 .hword 37 28634 .hword 0 28635 .hword 39 28636 .hword 0 28637 .hword 41 28638 .hword 0 28639 .hword 43 28640 .hword 0 28641 .hword 45 28642 .hword 0 28643 .hword 47 28644 .hword 0 28645 .hword 49 28646 .hword 0 28647 .hword 51 28648 .hword 0 28649 .hword 53 28650 .hword 0 28651 .hword 55 28652 .hword 0 28653 .hword 25 28654 .hword 58 28655 .hword 0 28656 .hword 27 28657 .hword 61 28658 .hword 0 28659 .hword 29 28660 .hword 64 28661 .hword 0 28662 .hword 31 28663 .hword 67 28664 .hword 0 28665 .hword 33 28666 .hword 70 28667 .hword 0 28668 .hword 35 28669 .hword 73 28670 .hword 0 28671 .hword 37 28672 .hword 76 28673 .hword 0 28674 .hword 39 28675 .hword 79 28676 .hword 0 28677 .hword 41 28678 .hword 82 28679 .hword 0 28680 .hword 43 28681 .hword 85 28682 .hword 0 28683 .hword 45 28684 .hword 88 28685 .hword 0 28686 .hword 47 28687 .hword 91 28688 .hword 0 28689 .hword 49 28690 .hword 94 28691 .hword 0 28692 .hword 51 28693 .hword 97 28694 .hword 0 28695 .hword 53 28696 .hword 100 28697 .hword 0 28698 .hword 55 28699 .hword 103 28700 .hword 0 28701 .hword 58 28702 .hword 106 28703 .hword 0 28704 .hword 61 28705 .hword 109 28706 .hword 0 28707 .hword 64 28708 .hword 112 28709 .hword 0 28710 .hword 67 28711 .hword 115 28712 .hword 0 28713 .hword 70 28714 .hword 118 28715 .hword 0 28716 .hword 73 28717 .hword 121 28718 .hword 0 28719 .hword 76 28720 .hword 124 28721 .hword 0 28722 .hword 79 28723 .hword 127 28724 .hword 0 28725 .hword 82 28726 .hword 130 28727 .hword 0 28728 .hword 85 28729 .hword 133 28730 .hword 0 28731 .hword 88 28732 .hword 136 28733 .hword 0 28734 .hword 91 28735 .hword 139 28736 .hword 0 28737 .hword 94 28738 .hword 142 28739 .hword 0 28740 .hword 97 28741 .hword 145 28742 .hword 0 28743 .hword 100 28744 .hword 148 28745 .hword 0 28746 .hword 103 28747 .hword 151 28748 .hword 0 28749 .hword 106 28750 .hword 154 28751 .hword 0 28752 .hword 109 28753 .hword 157 28754 .hword 0 28755 .hword 112 28756 .hword 160 28757 .hword 0 28758 .hword 115 28759 .hword 163 28760 .hword 0 28761 .hword 118 28762 .hword 166 28763 .hword 0 28764 .hword 121 28765 .hword 169 28766 .hword 0 28767 .hword 124 28768 .hword 172 28769 .hword 0 28770 .hword 127 28771 .hword 175 28772 .hword 0 28773 .hword 130 28774 .hword 178 28775 .hword 0 28776 .hword 133 28777 .hword 181 28778 .hword 0 28779 .hword 136 28780 .hword 184 28781 .hword 0 28782 .hword 139 28783 .hword 187 28784 .hword 0 28785 .hword 142 28786 .hword 190 28787 .hword 0 28788 .hword 145 28789 .hword 193 28790 .hword 0 28791 .hword 148 28792 .hword 196 28793 .hword 0 28794 .hword 151 28795 .hword 199 28796 .hword 0 28797 .hword 154 28798 .hword 202 28799 .hword 0 28800 .hword 157 28801 .hword 205 28802 .hword 0 28803 .hword 160 28804 .hword 208 28805 .hword 0 28806 .hword 163 28807 .hword 211 28808 .hword 0 28809 .hword 166 28810 .hword 214 28811 .hword 0 28812 .hword 169 28813 .hword 217 28814 .hword 0 28815 .hword 172 28816 .hword 220 28817 .hword 0 28818 .hword 175 28819 .hword 223 28820 .hword 0 28821 .hword 178 28822 .hword 226 28823 .hword 0 28824 .hword 181 28825 .hword 229 28826 .hword 0 28827 .hword 184 28828 .hword 232 28829 .hword 0 28830 .hword 187 28831 .hword 235 28832 .hword 0 28833 .hword 190 28834 .hword 238 28835 .hword 0 28836 .hword 193 28837 .hword 241 28838 .hword 0 28839 .hword 196 28840 .hword 244 28841 .hword 0 28842 .hword 199 28843 .hword 247 28844 .hword 0 28845 .hword 202 28846 .hword 250 28847 .hword 0 28848 .hword 205 28849 .hword 253 28850 .hword 0 28851 .hword 208 28852 .hword 256 28853 .hword 0 28854 .hword 211 28855 .hword 259 28856 .hword 0 28857 .hword 214 28858 .hword 262 28859 .hword 0 28860 .hword 217 28861 .hword 265 28862 .hword 0 28863 .hword 220 28864 .hword 268 28865 .hword 0 28866 .hword 223 28867 .hword 271 28868 .hword 0 28869 .hword 226 28870 .hword 274 28871 .hword 0 28872 .hword 229 28873 .hword 277 28874 .hword 0 28875 .hword 232 28876 .hword 280 28877 .hword 0 28878 .hword 235 28879 .hword 283 28880 .hword 0 28881 .hword 238 28882 .hword 286 28883 .hword 0 28884 .hword 241 28885 .hword 289 28886 .hword 0 28887 .hword 244 28888 .hword 292 28889 .hword 0 28890 .hword 247 28891 .hword 295 28892 .hword 0 28893 .hword 250 28894 .hword 298 28895 .hword 0 28896 .hword 253 28897 .hword 301 28898 .hword 0 28899 .hword 256 28900 .hword 304 28901 .hword 0 28902 .hword 259 28903 .hword 307 28904 .hword 0 28905 .hword 262 28906 .hword 310 28907 .hword 0 28908 .hword 265 28909 .hword 313 28910 .hword 0 28911 .hword 268 28912 .hword 316 28913 .hword 0 28914 .hword 271 28915 .hword 319 28916 .hword 0 28917 .hword 274 28918 .hword 322 28919 .hword 0 28920 .hword 277 28921 .hword 325 28922 .hword 0 28923 .hword 280 28924 .hword 328 28925 .hword 0 28926 .hword 283 28927 .hword 331 28928 .hword 0 28929 .hword 286 28930 .hword 334 28931 .hword 0 28932 .hword 289 28933 .hword 337 28934 .hword 0 28935 .hword 292 28936 .hword 340 28937 .hword 0 28938 .hword 295 28939 .hword 343 28940 .hword 0 28941 .hword 298 28942 .hword 346 28943 .hword 0 28944 .hword 301 28945 .hword 349 28946 .hword 0 28947 .hword 304 28948 .hword 352 28949 .hword 0 28950 .hword 307 28951 .hword 355 28952 .hword 0 28953 .hword 310 28954 .hword 358 28955 .hword 0 28956 .hword 313 28957 .hword 361 28958 .hword 0 28959 .hword 316 28960 .hword 364 28961 .hword 0 28962 .hword 319 28963 .hword 367 28964 .hword 0 28965 .hword 322 28966 .hword 370 28967 .hword 0 28968 .hword 325 28969 .hword 373 28970 .hword 0 28971 .hword 328 28972 .hword 376 28973 .hword 0 28974 .hword 331 28975 .hword 379 28976 .hword 0 28977 .hword 334 28978 .hword 382 28979 .hword 0 28980 .hword 337 28981 .hword 385 28982 .hword 0 28983 .hword 340 28984 .hword 388 28985 .hword 0 28986 .hword 343 28987 .hword 391 28988 .hword 0 28989 .hword 346 28990 .hword 394 28991 .hword 0 28992 .hword 349 28993 .hword 397 28994 .hword 0 28995 .hword 352 28996 .hword 400 28997 .hword 0 28998 .hword 355 28999 .hword 403 29000 .hword 0 29001 .hword 358 29002 .hword 406 29003 .hword 0 29004 .hword 361 29005 .hword 409 29006 .hword 0 29007 .hword 364 29008 .hword 412 29009 .hword 0 29010 .hword 367 29011 .hword 415 29012 .hword 0 29013 .hword 370 29014 .hword 418 29015 .hword 0 29016 .hword 373 29017 .hword 421 29018 .hword 0 29019 .hword 376 29020 .hword 424 29021 .hword 0 29022 .hword 379 29023 .hword 427 29024 .hword 0 29025 .hword 382 29026 .hword 430 29027 .hword 0 29028 .hword 385 29029 .hword 433 29030 .hword 0 29031 .hword 388 29032 .hword 436 29033 .hword 0 29034 .hword 391 29035 .hword 439 29036 .hword 0 29037 .hword 394 29038 .hword 442 29039 .hword 0 29040 .hword 397 29041 .hword 445 29042 .hword 0 29043 .hword 400 29044 .hword 448 29045 .hword 0 29046 .hword 403 29047 .hword 451 29048 .hword 0 29049 .hword 406 29050 .hword 454 29051 .hword 0 29052 .hword 409 29053 .hword 457 29054 .hword 0 29055 .hword 412 29056 .hword 460 29057 .hword 0 29058 .hword 415 29059 .hword 463 29060 .hword 0 29061 .hword 418 29062 .hword 466 29063 .hword 0 29064 .hword 421 29065 .hword 469 29066 .hword 0 29067 .hword 424 29068 .hword 472 29069 .hword 0 29070 .hword 427 29071 .hword 475 29072 .hword 0 29073 .hword 430 29074 .hword 478 29075 .hword 0 29076 .hword 433 29077 .hword 481 29078 .hword 0 29079 .hword 436 29080 .hword 484 29081 .hword 0 29082 .hword 439 29083 .hword 487 29084 .hword 0 29085 .hword 442 29086 .hword 490 29087 .hword 0 29088 .hword 445 29089 .hword 493 29090 .hword 0 29091 .hword 448 29092 .hword 496 29093 .hword 0 29094 .hword 451 29095 .hword 499 29096 .hword 0 29097 .hword 454 29098 .hword 502 29099 .hword 0 29100 .hword 457 29101 .hword 505 29102 .hword 0 29103 .hword 460 29104 .hword 508 29105 .hword 0 29106 .hword 463 29107 .hword 511 29108 .hword 0 29109 .hword 466 29110 .hword 514 29111 .hword 0 29112 .hword 469 29113 .hword 517 29114 .hword 0 29115 .hword 472 29116 .hword 520 29117 .hword 0 29118 .hword 475 29119 .hword 523 29120 .hword 0 29121 .hword 478 29122 .hword 526 29123 .hword 0 29124 .hword 481 29125 .hword 529 29126 .hword 0 29127 .hword 484 29128 .hword 532 29129 .hword 0 29130 .hword 487 29131 .hword 535 29132 .hword 0 29133 .hword 490 29134 .hword 538 29135 .hword 0 29136 .hword 493 29137 .hword 541 29138 .hword 0 29139 .hword 496 29140 .hword 544 29141 .hword 0 29142 .hword 499 29143 .hword 547 29144 .hword 0 29145 .hword 502 29146 .hword 550 29147 .hword 0 29148 .hword 505 29149 .hword 553 29150 .hword 0 29151 .hword 508 29152 .hword 556 29153 .hword 0 29154 .hword 511 29155 .hword 559 29156 .hword 0 29157 .hword 514 29158 .hword 562 29159 .hword 0 29160 .hword 517 29161 .hword 565 29162 .hword 0 29163 .hword 520 29164 .hword 568 29165 .hword 0 29166 .hword 523 29167 .hword 571 29168 .hword 0 29169 .hword 526 29170 .hword 574 29171 .hword 0 29172 .hword 529 29173 .hword 577 29174 .hword 0 29175 .hword 532 29176 .hword 580 29177 .hword 0 29178 .hword 535 29179 .hword 583 29180 .hword 0 29181 .hword 538 29182 .hword 586 29183 .hword 0 29184 .hword 541 29185 .hword 589 29186 .hword 0 29187 .hword 544 29188 .hword 592 29189 .hword 0 29190 .hword 547 29191 .hword 595 29192 .hword 0 29193 .hword 550 29194 .hword 598 29195 .hword 0 29196 .hword 553 29197 .hword 601 29198 .hword 0 29199 .hword 556 29200 .hword 604 29201 .hword 0 29202 .hword 559 29203 .hword 607 29204 .hword 0 29205 .hword 562 29206 .hword 610 29207 .hword 0 29208 .hword 565 29209 .hword 613 29210 .hword 0 29211 .hword 568 29212 .hword 616 29213 .hword 0 29214 .hword 571 29215 .hword 619 29216 .hword 0 29217 .hword 574 29218 .hword 622 29219 .hword 0 29220 .hword 577 29221 .hword 625 29222 .hword 0 29223 .hword 580 29224 .hword 628 29225 .hword 0 29226 .hword 583 29227 .hword 631 29228 .hword 0 29229 .hword 586 29230 .hword 634 29231 .hword 0 29232 .hword 589 29233 .hword 637 29234 .hword 0 29235 .hword 592 29236 .hword 640 29237 .hword 0 29238 .hword 595 29239 .hword 643 29240 .hword 0 29241 .hword 598 29242 .hword 646 29243 .hword 0 29244 .hword 601 29245 .hword 649 29246 .hword 0 29247 .hword 604 29248 .hword 652 29249 .hword 0 29250 .hword 607 29251 .hword 655 29252 .hword 0 29253 .hword 610 29254 .hword 658 29255 .hword 0 29256 .hword 613 29257 .hword 661 29258 .hword 0 29259 .hword 616 29260 .hword 664 29261 .hword 0 29262 .hword 619 29263 .hword 667 29264 .hword 0 29265 .hword 622 29266 .hword 670 29267 .hword 0 29268 .hword 625 29269 .hword 673 29270 .hword 0 29271 .hword 628 29272 .hword 676 29273 .hword 0 29274 .hword 631 29275 .hword 679 29276 .hword 0 29277 .hword 634 29278 .hword 682 29279 .hword 0 29280 .hword 637 29281 .hword 685 29282 .hword 0 29283 .hword 640 29284 .hword 688 29285 .hword 0 29286 .hword 643 29287 .hword 691 29288 .hword 0 29289 .hword 646 29290 .hword 694 29291 .hword 0 29292 .hword 649 29293 .hword 697 29294 .hword 0 29295 .hword 652 29296 .hword 700 29297 .hword 0 29298 .hword 655 29299 .hword 703 29300 .hword 0 29301 .hword 658 29302 .hword 706 29303 .hword 0 29304 .hword 661 29305 .hword 709 29306 .hword 0 29307 .hword 664 29308 .hword 712 29309 .hword 0 29310 .hword 667 29311 .hword 715 29312 .hword 0 29313 .hword 670 29314 .hword 718 29315 .hword 0 29316 .hword 673 29317 .hword 721 29318 .hword 0 29319 .hword 676 29320 .hword 724 29321 .hword 0 29322 .hword 679 29323 .hword 727 29324 .hword 0 29325 .hword 682 29326 .hword 730 29327 .hword 0 29328 .hword 685 29329 .hword 733 29330 .hword 0 29331 .hword 688 29332 .hword 736 29333 .hword 0 29334 .hword 691 29335 .hword 739 29336 .hword 0 29337 .hword 694 29338 .hword 742 29339 .hword 0 29340 .hword 697 29341 .hword 745 29342 .hword 0 29343 .hword 700 29344 .hword 748 29345 .hword 0 29346 .hword 703 29347 .hword 751 29348 .hword 0 29349 .hword 706 29350 .hword 0 29351 .hword 709 29352 .hword 0 29353 .hword 712 29354 .hword 0 29355 .hword 715 29356 .hword 0 29357 .hword 718 29358 .hword 0 29359 .hword 721 29360 .hword 0 29361 .hword 724 29362 .hword 0 29363 .hword 727 29364 .hword 0 29365 .section .data.tlc_prog_order,"aw",@progbits 29366 .align 3 29367 .set .LANCHOR239,. + 0 29368 .type tlc_prog_order, %object 29369 .size tlc_prog_order, 768 29370tlc_prog_order: 29371 .hword 1 29372 .hword 9 29373 .hword 2 29374 .hword 17 29375 .hword 10 29376 .hword 3 29377 .hword 25 29378 .hword 18 29379 .hword 11 29380 .hword 33 29381 .hword 26 29382 .hword 19 29383 .hword 41 29384 .hword 34 29385 .hword 27 29386 .hword 49 29387 .hword 42 29388 .hword 35 29389 .hword 57 29390 .hword 50 29391 .hword 43 29392 .hword 65 29393 .hword 58 29394 .hword 51 29395 .hword 73 29396 .hword 66 29397 .hword 59 29398 .hword 81 29399 .hword 74 29400 .hword 67 29401 .hword 89 29402 .hword 82 29403 .hword 75 29404 .hword 97 29405 .hword 90 29406 .hword 83 29407 .hword 105 29408 .hword 98 29409 .hword 91 29410 .hword 113 29411 .hword 106 29412 .hword 99 29413 .hword 121 29414 .hword 114 29415 .hword 107 29416 .hword 129 29417 .hword 122 29418 .hword 115 29419 .hword 137 29420 .hword 130 29421 .hword 123 29422 .hword 145 29423 .hword 138 29424 .hword 131 29425 .hword 153 29426 .hword 146 29427 .hword 139 29428 .hword 161 29429 .hword 154 29430 .hword 147 29431 .hword 169 29432 .hword 162 29433 .hword 155 29434 .hword 177 29435 .hword 170 29436 .hword 163 29437 .hword 185 29438 .hword 178 29439 .hword 171 29440 .hword 193 29441 .hword 186 29442 .hword 179 29443 .hword 201 29444 .hword 194 29445 .hword 187 29446 .hword 209 29447 .hword 202 29448 .hword 195 29449 .hword 217 29450 .hword 210 29451 .hword 203 29452 .hword 225 29453 .hword 218 29454 .hword 211 29455 .hword 233 29456 .hword 226 29457 .hword 219 29458 .hword 241 29459 .hword 234 29460 .hword 227 29461 .hword 249 29462 .hword 242 29463 .hword 235 29464 .hword 257 29465 .hword 250 29466 .hword 243 29467 .hword 265 29468 .hword 258 29469 .hword 251 29470 .hword 273 29471 .hword 266 29472 .hword 259 29473 .hword 281 29474 .hword 274 29475 .hword 267 29476 .hword 289 29477 .hword 282 29478 .hword 275 29479 .hword 297 29480 .hword 290 29481 .hword 283 29482 .hword 305 29483 .hword 298 29484 .hword 291 29485 .hword 313 29486 .hword 306 29487 .hword 299 29488 .hword 321 29489 .hword 314 29490 .hword 307 29491 .hword 329 29492 .hword 322 29493 .hword 315 29494 .hword 337 29495 .hword 330 29496 .hword 323 29497 .hword 345 29498 .hword 338 29499 .hword 331 29500 .hword 353 29501 .hword 346 29502 .hword 339 29503 .hword 361 29504 .hword 354 29505 .hword 347 29506 .hword 369 29507 .hword 362 29508 .hword 355 29509 .hword 377 29510 .hword 370 29511 .hword 363 29512 .hword 385 29513 .hword 378 29514 .hword 371 29515 .hword 393 29516 .hword 386 29517 .hword 379 29518 .hword 401 29519 .hword 394 29520 .hword 387 29521 .hword 409 29522 .hword 402 29523 .hword 395 29524 .hword 417 29525 .hword 410 29526 .hword 403 29527 .hword 425 29528 .hword 418 29529 .hword 411 29530 .hword 433 29531 .hword 426 29532 .hword 419 29533 .hword 441 29534 .hword 434 29535 .hword 427 29536 .hword 449 29537 .hword 442 29538 .hword 435 29539 .hword 457 29540 .hword 450 29541 .hword 443 29542 .hword 465 29543 .hword 458 29544 .hword 451 29545 .hword 473 29546 .hword 466 29547 .hword 459 29548 .hword 481 29549 .hword 474 29550 .hword 467 29551 .hword 489 29552 .hword 482 29553 .hword 475 29554 .hword 497 29555 .hword 490 29556 .hword 483 29557 .hword 505 29558 .hword 498 29559 .hword 491 29560 .hword 513 29561 .hword 506 29562 .hword 499 29563 .hword 521 29564 .hword 514 29565 .hword 507 29566 .hword 529 29567 .hword 522 29568 .hword 515 29569 .hword 537 29570 .hword 530 29571 .hword 523 29572 .hword 545 29573 .hword 538 29574 .hword 531 29575 .hword 553 29576 .hword 546 29577 .hword 539 29578 .hword 561 29579 .hword 554 29580 .hword 547 29581 .hword 569 29582 .hword 562 29583 .hword 555 29584 .hword 577 29585 .hword 570 29586 .hword 563 29587 .hword 585 29588 .hword 578 29589 .hword 571 29590 .hword 593 29591 .hword 586 29592 .hword 579 29593 .hword 601 29594 .hword 594 29595 .hword 587 29596 .hword 609 29597 .hword 602 29598 .hword 595 29599 .hword 617 29600 .hword 610 29601 .hword 603 29602 .hword 625 29603 .hword 618 29604 .hword 611 29605 .hword 633 29606 .hword 626 29607 .hword 619 29608 .hword 641 29609 .hword 634 29610 .hword 627 29611 .hword 649 29612 .hword 642 29613 .hword 635 29614 .hword 657 29615 .hword 650 29616 .hword 643 29617 .hword 665 29618 .hword 658 29619 .hword 651 29620 .hword 673 29621 .hword 666 29622 .hword 659 29623 .hword 681 29624 .hword 674 29625 .hword 667 29626 .hword 689 29627 .hword 682 29628 .hword 675 29629 .hword 697 29630 .hword 690 29631 .hword 683 29632 .hword 705 29633 .hword 698 29634 .hword 691 29635 .hword 713 29636 .hword 706 29637 .hword 699 29638 .hword 721 29639 .hword 714 29640 .hword 707 29641 .hword 729 29642 .hword 722 29643 .hword 715 29644 .hword 737 29645 .hword 730 29646 .hword 723 29647 .hword 745 29648 .hword 738 29649 .hword 731 29650 .hword 753 29651 .hword 746 29652 .hword 739 29653 .hword 761 29654 .hword 754 29655 .hword 747 29656 .hword 769 29657 .hword 762 29658 .hword 755 29659 .hword 777 29660 .hword 770 29661 .hword 763 29662 .hword 785 29663 .hword 778 29664 .hword 771 29665 .hword 793 29666 .hword 786 29667 .hword 779 29668 .hword 801 29669 .hword 794 29670 .hword 787 29671 .hword 809 29672 .hword 802 29673 .hword 795 29674 .hword 817 29675 .hword 810 29676 .hword 803 29677 .hword 825 29678 .hword 818 29679 .hword 811 29680 .hword 833 29681 .hword 826 29682 .hword 819 29683 .hword 841 29684 .hword 834 29685 .hword 827 29686 .hword 849 29687 .hword 842 29688 .hword 835 29689 .hword 857 29690 .hword 850 29691 .hword 843 29692 .hword 865 29693 .hword 858 29694 .hword 851 29695 .hword 873 29696 .hword 866 29697 .hword 859 29698 .hword 881 29699 .hword 874 29700 .hword 867 29701 .hword 889 29702 .hword 882 29703 .hword 875 29704 .hword 897 29705 .hword 890 29706 .hword 883 29707 .hword 905 29708 .hword 898 29709 .hword 891 29710 .hword 913 29711 .hword 906 29712 .hword 899 29713 .hword 921 29714 .hword 914 29715 .hword 907 29716 .hword 929 29717 .hword 922 29718 .hword 915 29719 .hword 937 29720 .hword 930 29721 .hword 923 29722 .hword 945 29723 .hword 938 29724 .hword 931 29725 .hword 953 29726 .hword 946 29727 .hword 939 29728 .hword 961 29729 .hword 954 29730 .hword 947 29731 .hword 969 29732 .hword 962 29733 .hword 955 29734 .hword 977 29735 .hword 970 29736 .hword 963 29737 .hword 985 29738 .hword 978 29739 .hword 971 29740 .hword 993 29741 .hword 986 29742 .hword 979 29743 .hword 1001 29744 .hword 994 29745 .hword 987 29746 .hword 1009 29747 .hword 1002 29748 .hword 995 29749 .hword 1017 29750 .hword 1010 29751 .hword 1003 29752 .hword 1018 29753 .hword 1011 29754 .hword 1019 29755 .section .data.zftl_debug,"aw",@progbits 29756 .align 2 29757 .set .LANCHOR19,. + 0 29758 .type zftl_debug, %object 29759 .size zftl_debug, 4 29760zftl_debug: 29761 .word 17476 29762 .section .data.zftl_nand_flash_para_tbl,"aw",@progbits 29763 .align 3 29764 .set .LANCHOR213,. + 0 29765 .type zftl_nand_flash_para_tbl, %object 29766 .size zftl_nand_flash_para_tbl, 1568 29767zftl_nand_flash_para_tbl: 29768 .byte 6 29769 .byte -104 29770 .byte 58 29771 .byte -104 29772 .byte -77 29773 .byte 118 29774 .byte 114 29775 .byte 1 29776 .byte 1 29777 .byte 32 29778 .hword 768 29779 .byte 3 29780 .byte 2 29781 .hword 758 29782 .hword 5593 29783 .byte 0 29784 .byte 37 29785 .byte 60 29786 .byte 32 29787 .byte 3 29788 .byte 1 29789 .byte 4 29790 .byte 0 29791 .hword 256 29792 .byte 1 29793 .byte -94 29794 .byte 0 29795 .byte 0 29796 .byte 6 29797 .byte -104 29798 .byte 60 29799 .byte -104 29800 .byte -77 29801 .byte 118 29802 .byte 114 29803 .byte 1 29804 .byte 1 29805 .byte 32 29806 .hword 768 29807 .byte 3 29808 .byte 2 29809 .hword 1478 29810 .hword 5593 29811 .byte 0 29812 .byte 37 29813 .byte 60 29814 .byte 32 29815 .byte 3 29816 .byte 1 29817 .byte 4 29818 .byte 0 29819 .hword 256 29820 .byte 1 29821 .byte -94 29822 .byte 0 29823 .byte 0 29824 .byte 6 29825 .byte -104 29826 .byte 58 29827 .byte -104 29828 .byte -93 29829 .byte 118 29830 .byte 81 29831 .byte 1 29832 .byte 1 29833 .byte 32 29834 .hword 384 29835 .byte 3 29836 .byte 2 29837 .hword 1446 29838 .hword 1497 29839 .byte 0 29840 .byte 36 29841 .byte 60 29842 .byte 32 29843 .byte 3 29844 .byte 1 29845 .byte 4 29846 .byte 0 29847 .hword 256 29848 .byte 1 29849 .byte -94 29850 .byte 0 29851 .byte 0 29852 .byte 6 29853 .byte -104 29854 .byte -34 29855 .byte -108 29856 .byte -109 29857 .byte 118 29858 .byte 81 29859 .byte 1 29860 .byte 1 29861 .byte 32 29862 .hword 256 29863 .byte 2 29864 .byte 2 29865 .hword 1074 29866 .hword 17881 29867 .byte 2 29868 .byte 35 29869 .byte 40 29870 .byte 32 29871 .byte 3 29872 .byte 1 29873 .byte 4 29874 .byte 0 29875 .hword 256 29876 .byte 1 29877 .byte -94 29878 .byte 0 29879 .byte 0 29880 .byte 6 29881 .byte -104 29882 .byte -34 29883 .byte -124 29884 .byte -109 29885 .byte 114 29886 .byte 87 29887 .byte 1 29888 .byte 1 29889 .byte 32 29890 .hword 256 29891 .byte 2 29892 .byte 1 29893 .hword 2092 29894 .hword 17857 29895 .byte 2 29896 .byte 33 29897 .byte 40 29898 .byte 32 29899 .byte 3 29900 .byte 1 29901 .byte 1 29902 .byte 0 29903 .hword 256 29904 .byte 1 29905 .byte -94 29906 .byte 0 29907 .byte 0 29908 .byte 6 29909 .byte -104 29910 .byte 58 29911 .byte -108 29912 .byte -109 29913 .byte 118 29914 .byte 81 29915 .byte 1 29916 .byte 1 29917 .byte 32 29918 .hword 256 29919 .byte 2 29920 .byte 2 29921 .hword 2106 29922 .hword 17881 29923 .byte 2 29924 .byte 35 29925 .byte 40 29926 .byte 32 29927 .byte 3 29928 .byte 1 29929 .byte 4 29930 .byte 0 29931 .hword 256 29932 .byte 1 29933 .byte -94 29934 .byte 0 29935 .byte 0 29936 .byte 6 29937 .byte -104 29938 .byte -41 29939 .byte -124 29940 .byte -109 29941 .byte 114 29942 .byte 81 29943 .byte 1 29944 .byte 1 29945 .byte 32 29946 .hword 256 29947 .byte 2 29948 .byte 1 29949 .hword 1056 29950 .hword 17857 29951 .byte 2 29952 .byte 35 29953 .byte 40 29954 .byte 32 29955 .byte 3 29956 .byte 1 29957 .byte 4 29958 .byte 0 29959 .hword 256 29960 .byte 1 29961 .byte -94 29962 .byte 0 29963 .byte 0 29964 .byte 6 29965 .byte -104 29966 .byte -41 29967 .byte -124 29968 .byte -109 29969 .byte 114 29970 .byte 80 29971 .byte 1 29972 .byte 1 29973 .byte 32 29974 .hword 256 29975 .byte 2 29976 .byte 1 29977 .hword 1060 29978 .hword 17857 29979 .byte 2 29980 .byte 34 29981 .byte 40 29982 .byte 32 29983 .byte 3 29984 .byte 1 29985 .byte 4 29986 .byte 0 29987 .hword 256 29988 .byte 1 29989 .byte -94 29990 .byte 0 29991 .byte 0 29992 .byte 6 29993 .byte -104 29994 .byte -34 29995 .byte -108 29996 .byte -109 29997 .byte 118 29998 .byte 80 29999 .byte 1 30000 .byte 1 30001 .byte 32 30002 .hword 256 30003 .byte 2 30004 .byte 2 30005 .hword 1066 30006 .hword 17881 30007 .byte 2 30008 .byte 34 30009 .byte 40 30010 .byte 32 30011 .byte 3 30012 .byte 1 30013 .byte 1 30014 .byte 0 30015 .hword 256 30016 .byte 1 30017 .byte -94 30018 .byte 0 30019 .byte 0 30020 .byte 6 30021 .byte -104 30022 .byte -41 30023 .byte -124 30024 .byte -109 30025 .byte 114 30026 .byte 87 30027 .byte 1 30028 .byte 1 30029 .byte 32 30030 .hword 256 30031 .byte 2 30032 .byte 1 30033 .hword 1060 30034 .hword 17857 30035 .byte 2 30036 .byte 33 30037 .byte 40 30038 .byte 32 30039 .byte 3 30040 .byte 1 30041 .byte 1 30042 .byte 0 30043 .hword 256 30044 .byte 1 30045 .byte -94 30046 .byte 0 30047 .byte 0 30048 .byte 6 30049 .byte -104 30050 .byte -34 30051 .byte -108 30052 .byte -109 30053 .byte 118 30054 .byte 87 30055 .byte 1 30056 .byte 1 30057 .byte 32 30058 .hword 256 30059 .byte 2 30060 .byte 2 30061 .hword 1058 30062 .hword 17881 30063 .byte 2 30064 .byte 33 30065 .byte 40 30066 .byte 32 30067 .byte 3 30068 .byte 1 30069 .byte 1 30070 .byte 0 30071 .hword 256 30072 .byte 1 30073 .byte -94 30074 .byte 0 30075 .byte 0 30076 .byte 6 30077 .byte -104 30078 .byte -34 30079 .byte -108 30080 .byte -109 30081 .byte 118 30082 .byte -47 30083 .byte 1 30084 .byte 1 30085 .byte 32 30086 .hword 256 30087 .byte 2 30088 .byte 2 30089 .hword 1074 30090 .hword 17881 30091 .byte 2 30092 .byte 35 30093 .byte 40 30094 .byte 32 30095 .byte 3 30096 .byte 1 30097 .byte 4 30098 .byte 0 30099 .hword 256 30100 .byte 1 30101 .byte -94 30102 .byte 0 30103 .byte 0 30104 .byte 6 30105 .byte 69 30106 .byte 58 30107 .byte -108 30108 .byte -109 30109 .byte 118 30110 .byte 81 30111 .byte 8 30112 .byte 1 30113 .byte 32 30114 .hword 256 30115 .byte 2 30116 .byte 2 30117 .hword 2106 30118 .hword 17881 30119 .byte 2 30120 .byte 68 30121 .byte 40 30122 .byte 32 30123 .byte 3 30124 .byte 1 30125 .byte 4 30126 .byte 0 30127 .hword 256 30128 .byte 1 30129 .byte -94 30130 .byte 0 30131 .byte 0 30132 .byte 6 30133 .byte 69 30134 .byte -34 30135 .byte -108 30136 .byte -109 30137 .byte 118 30138 .byte 81 30139 .byte 8 30140 .byte 1 30141 .byte 32 30142 .hword 256 30143 .byte 2 30144 .byte 2 30145 .hword 1074 30146 .hword 17881 30147 .byte 2 30148 .byte 68 30149 .byte 40 30150 .byte 32 30151 .byte 3 30152 .byte 1 30153 .byte 4 30154 .byte 0 30155 .hword 256 30156 .byte 1 30157 .byte -94 30158 .byte 0 30159 .byte 0 30160 .byte 6 30161 .byte 69 30162 .byte -34 30163 .byte -108 30164 .byte -109 30165 .byte 118 30166 .byte 87 30167 .byte 8 30168 .byte 1 30169 .byte 32 30170 .hword 256 30171 .byte 2 30172 .byte 2 30173 .hword 1058 30174 .hword 17881 30175 .byte 2 30176 .byte 66 30177 .byte 40 30178 .byte 32 30179 .byte 3 30180 .byte 1 30181 .byte 4 30182 .byte 0 30183 .hword 256 30184 .byte 1 30185 .byte -94 30186 .byte 0 30187 .byte 0 30188 .byte 6 30189 .byte 69 30190 .byte -34 30191 .byte -108 30192 .byte -109 30193 .byte 118 30194 .byte 80 30195 .byte 8 30196 .byte 1 30197 .byte 32 30198 .hword 256 30199 .byte 2 30200 .byte 2 30201 .hword 1066 30202 .hword 17881 30203 .byte 2 30204 .byte 67 30205 .byte 40 30206 .byte 32 30207 .byte 3 30208 .byte 1 30209 .byte 1 30210 .byte 0 30211 .hword 256 30212 .byte 1 30213 .byte -94 30214 .byte 0 30215 .byte 0 30216 .byte 6 30217 .byte 69 30218 .byte -41 30219 .byte -124 30220 .byte -109 30221 .byte 114 30222 .byte 87 30223 .byte 8 30224 .byte 1 30225 .byte 32 30226 .hword 256 30227 .byte 2 30228 .byte 1 30229 .hword 1060 30230 .hword 17857 30231 .byte 2 30232 .byte 66 30233 .byte 40 30234 .byte 32 30235 .byte 2 30236 .byte 1 30237 .byte 1 30238 .byte 0 30239 .hword 256 30240 .byte 1 30241 .byte -94 30242 .byte 0 30243 .byte 0 30244 .byte 5 30245 .byte 44 30246 .byte 100 30247 .byte 68 30248 .byte 50 30249 .byte -91 30250 .byte 0 30251 .byte 4 30252 .byte 1 30253 .byte 32 30254 .hword 512 30255 .byte 2 30256 .byte 1 30257 .hword 1048 30258 .hword 9671 30259 .byte 5 30260 .byte 19 30261 .byte 70 30262 .byte 32 30263 .byte 1 30264 .byte 0 30265 .byte 4 30266 .byte 0 30267 .hword 512 30268 .byte 1 30269 .byte -38 30270 .byte -33 30271 .byte 0 30272 .byte 5 30273 .byte 44 30274 .byte 100 30275 .byte 100 30276 .byte 86 30277 .byte -91 30278 .byte 0 30279 .byte 4 30280 .byte 1 30281 .byte 24 30282 .hword 512 30283 .byte 2 30284 .byte 2 30285 .hword 700 30286 .hword 479 30287 .byte 4 30288 .byte 18 30289 .byte 60 30290 .byte 32 30291 .byte 1 30292 .byte 0 30293 .byte 1 30294 .byte 0 30295 .hword 512 30296 .byte 3 30297 .byte 0 30298 .byte 0 30299 .byte 0 30300 .byte 5 30301 .byte 44 30302 .byte 68 30303 .byte 68 30304 .byte 75 30305 .byte -87 30306 .byte 0 30307 .byte 4 30308 .byte 1 30309 .byte 16 30310 .hword 256 30311 .byte 2 30312 .byte 2 30313 .hword 1064 30314 .hword 479 30315 .byte 3 30316 .byte 17 30317 .byte 40 30318 .byte 32 30319 .byte 1 30320 .byte 0 30321 .byte 1 30322 .byte 0 30323 .hword 256 30324 .byte 3 30325 .byte 0 30326 .byte 0 30327 .byte 0 30328 .byte 5 30329 .byte 44 30330 .byte -124 30331 .byte 100 30332 .byte 84 30333 .byte -87 30334 .byte 0 30335 .byte 4 30336 .byte 1 30337 .byte 32 30338 .hword 512 30339 .byte 2 30340 .byte 2 30341 .hword 1024 30342 .hword 479 30343 .byte 4 30344 .byte 18 30345 .byte 60 30346 .byte 32 30347 .byte 1 30348 .byte 0 30349 .byte 1 30350 .byte 0 30351 .hword 512 30352 .byte 0 30353 .byte 0 30354 .byte 0 30355 .byte 1 30356 .byte 5 30357 .byte 44 30358 .byte 100 30359 .byte 100 30360 .byte 84 30361 .byte -92 30362 .byte 0 30363 .byte 4 30364 .byte 1 30365 .byte 32 30366 .hword 512 30367 .byte 2 30368 .byte 1 30369 .hword 1024 30370 .hword 455 30371 .byte 4 30372 .byte 18 30373 .byte 60 30374 .byte 32 30375 .byte 1 30376 .byte 0 30377 .byte 1 30378 .byte 0 30379 .hword 512 30380 .byte 0 30381 .byte 0 30382 .byte 0 30383 .byte 0 30384 .byte 5 30385 .byte 44 30386 .byte 100 30387 .byte 68 30388 .byte 75 30389 .byte -87 30390 .byte 0 30391 .byte 4 30392 .byte 1 30393 .byte 16 30394 .hword 256 30395 .byte 2 30396 .byte 4 30397 .hword 1024 30398 .hword 449 30399 .byte 3 30400 .byte 17 30401 .byte 40 30402 .byte 32 30403 .byte 1 30404 .byte 0 30405 .byte 1 30406 .byte 0 30407 .hword 256 30408 .byte 3 30409 .byte 0 30410 .byte 0 30411 .byte 0 30412 .byte 5 30413 .byte 44 30414 .byte -124 30415 .byte 100 30416 .byte 60 30417 .byte -91 30418 .byte 0 30419 .byte 4 30420 .byte 1 30421 .byte 32 30422 .hword 512 30423 .byte 2 30424 .byte 2 30425 .hword 1024 30426 .hword 479 30427 .byte 3 30428 .byte 17 30429 .byte 40 30430 .byte 32 30431 .byte 1 30432 .byte 0 30433 .byte 1 30434 .byte 0 30435 .hword 512 30436 .byte 3 30437 .byte 0 30438 .byte 0 30439 .byte 0 30440 .byte 5 30441 .byte 44 30442 .byte -124 30443 .byte 68 30444 .byte 52 30445 .byte -92 30446 .byte 0 30447 .byte 4 30448 .byte 1 30449 .byte 32 30450 .hword 512 30451 .byte 2 30452 .byte 1 30453 .hword 2184 30454 .hword 9671 30455 .byte 5 30456 .byte 19 30457 .byte 70 30458 .byte 32 30459 .byte 1 30460 .byte 0 30461 .byte 4 30462 .byte 0 30463 .hword 512 30464 .byte 1 30465 .byte -38 30466 .byte -33 30467 .byte 0 30468 .byte 5 30469 .byte 44 30470 .byte 100 30471 .byte 100 30472 .byte 60 30473 .byte -91 30474 .byte 0 30475 .byte 4 30476 .byte 1 30477 .byte 32 30478 .hword 512 30479 .byte 2 30480 .byte 1 30481 .hword 1044 30482 .hword 471 30483 .byte 3 30484 .byte 17 30485 .byte 40 30486 .byte 32 30487 .byte 1 30488 .byte 0 30489 .byte 1 30490 .byte 0 30491 .hword 512 30492 .byte 3 30493 .byte 0 30494 .byte 0 30495 .byte 0 30496 .byte 5 30497 .byte 44 30498 .byte -124 30499 .byte 68 30500 .byte 50 30501 .byte -86 30502 .byte 0 30503 .byte 4 30504 .byte 1 30505 .byte 32 30506 .hword 512 30507 .byte 2 30508 .byte 1 30509 .hword 2184 30510 .hword 9671 30511 .byte 5 30512 .byte 19 30513 .byte 70 30514 .byte 32 30515 .byte 1 30516 .byte 0 30517 .byte 4 30518 .byte 0 30519 .hword 512 30520 .byte 1 30521 .byte -38 30522 .byte -33 30523 .byte 0 30524 .byte 5 30525 .byte 44 30526 .byte -124 30527 .byte -60 30528 .byte 52 30529 .byte -86 30530 .byte 0 30531 .byte 4 30532 .byte 1 30533 .byte 32 30534 .hword 512 30535 .byte 2 30536 .byte 1 30537 .hword 2184 30538 .hword 9671 30539 .byte 5 30540 .byte 19 30541 .byte 70 30542 .byte 32 30543 .byte 1 30544 .byte 0 30545 .byte 4 30546 .byte 0 30547 .hword 512 30548 .byte 1 30549 .byte -38 30550 .byte -33 30551 .byte 0 30552 .byte 5 30553 .byte 44 30554 .byte -124 30555 .byte 68 30556 .byte 52 30557 .byte -86 30558 .byte 0 30559 .byte 4 30560 .byte 1 30561 .byte 32 30562 .hword 512 30563 .byte 2 30564 .byte 1 30565 .hword 2184 30566 .hword 9671 30567 .byte 5 30568 .byte 19 30569 .byte 70 30570 .byte 32 30571 .byte 1 30572 .byte 0 30573 .byte 4 30574 .byte 0 30575 .hword 512 30576 .byte 1 30577 .byte -38 30578 .byte -33 30579 .byte 0 30580 .byte 6 30581 .byte -101 30582 .byte 73 30583 .byte 1 30584 .byte 0 30585 .byte -101 30586 .byte 73 30587 .byte 9 30588 .byte 1 30589 .byte 32 30590 .hword 256 30591 .byte 2 30592 .byte 1 30593 .hword 2144 30594 .hword -23097 30595 .byte 8 30596 .byte 21 30597 .byte 70 30598 .byte 32 30599 .byte 1 30600 .byte 0 30601 .byte 8 30602 .byte 0 30603 .hword 256 30604 .byte 3 30605 .byte 0 30606 .byte 0 30607 .byte 0 30608 .byte 5 30609 .byte 44 30610 .byte -124 30611 .byte 100 30612 .byte 60 30613 .byte -87 30614 .byte 4 30615 .byte 4 30616 .byte 1 30617 .byte 32 30618 .hword 512 30619 .byte 2 30620 .byte 2 30621 .hword 1024 30622 .hword 479 30623 .byte 3 30624 .byte 17 30625 .byte 40 30626 .byte 32 30627 .byte 1 30628 .byte 0 30629 .byte 1 30630 .byte 0 30631 .hword 512 30632 .byte 0 30633 .byte 0 30634 .byte 0 30635 .byte 1 30636 .byte 5 30637 .byte 44 30638 .byte -124 30639 .byte 88 30640 .byte 50 30641 .byte -95 30642 .byte 0 30643 .byte 4 30644 .byte 1 30645 .byte 32 30646 .hword 768 30647 .byte 3 30648 .byte 1 30649 .hword 1440 30650 .hword 3527 30651 .byte 0 30652 .byte 19 30653 .byte 70 30654 .byte 32 30655 .byte 1 30656 .byte 0 30657 .byte 1 30658 .byte 0 30659 .hword 1024 30660 .byte 3 30661 .byte 0 30662 .byte 0 30663 .byte 2 30664 .byte 6 30665 .byte 44 30666 .byte -92 30667 .byte 8 30668 .byte 50 30669 .byte -95 30670 .byte 0 30671 .byte 4 30672 .byte 1 30673 .byte 32 30674 .hword 2304 30675 .byte 3 30676 .byte 1 30677 .hword 1008 30678 .hword 3521 30679 .byte 0 30680 .byte 19 30681 .byte 70 30682 .byte 32 30683 .byte 1 30684 .byte 0 30685 .byte 1 30686 .byte 0 30687 .hword 4096 30688 .byte 3 30689 .byte 0 30690 .byte 0 30691 .byte 4 30692 .byte 6 30693 .byte 44 30694 .byte -92 30695 .byte 100 30696 .byte 50 30697 .byte -86 30698 .byte 4 30699 .byte 4 30700 .byte 1 30701 .byte 32 30702 .hword 1024 30703 .byte 2 30704 .byte 1 30705 .hword 2192 30706 .hword 9671 30707 .byte 10 30708 .byte 19 30709 .byte 70 30710 .byte 32 30711 .byte 1 30712 .byte 0 30713 .byte 1 30714 .byte 0 30715 .hword 1024 30716 .byte 1 30717 .byte -38 30718 .byte -33 30719 .byte 0 30720 .byte 6 30721 .byte -101 30722 .byte -61 30723 .byte 72 30724 .byte 37 30725 .byte 16 30726 .byte 0 30727 .byte 9 30728 .byte 1 30729 .byte 32 30730 .hword 1152 30731 .byte 3 30732 .byte 2 30733 .hword 1006 30734 .hword -27169 30735 .byte 13 30736 .byte 81 30737 .byte 70 30738 .byte 32 30739 .byte 1 30740 .byte 0 30741 .byte 4 30742 .byte 0 30743 .hword 2048 30744 .byte 1 30745 .byte -38 30746 .byte -33 30747 .byte 24 30748 .byte 6 30749 .byte -83 30750 .byte -34 30751 .byte 20 30752 .byte -85 30753 .byte 66 30754 .byte 74 30755 .byte 2 30756 .byte 1 30757 .byte 32 30758 .hword 256 30759 .byte 2 30760 .byte 2 30761 .hword 1056 30762 .hword 455 30763 .byte 2 30764 .byte 6 30765 .byte 40 30766 .byte 32 30767 .byte 3 30768 .byte 1 30769 .byte 3 30770 .byte 0 30771 .hword 256 30772 .byte 2 30773 .byte -65 30774 .byte -66 30775 .byte 0 30776 .byte 6 30777 .byte -83 30778 .byte -34 30779 .byte -108 30780 .byte -21 30781 .byte 116 30782 .byte 68 30783 .byte 2 30784 .byte 1 30785 .byte 32 30786 .hword 256 30787 .byte 2 30788 .byte 2 30789 .hword 1066 30790 .hword 473 30791 .byte 1 30792 .byte 7 30793 .byte 40 30794 .byte 32 30795 .byte 4 30796 .byte 1 30797 .byte 3 30798 .byte 0 30799 .hword 256 30800 .byte 0 30801 .byte 0 30802 .byte 0 30803 .byte 0 30804 .byte 6 30805 .byte -83 30806 .byte -34 30807 .byte 20 30808 .byte -89 30809 .byte 66 30810 .byte 74 30811 .byte 2 30812 .byte 1 30813 .byte 32 30814 .hword 256 30815 .byte 2 30816 .byte 2 30817 .hword 1060 30818 .hword 473 30819 .byte 2 30820 .byte 5 30821 .byte 40 30822 .byte 32 30823 .byte 4 30824 .byte 1 30825 .byte 3 30826 .byte 0 30827 .hword 256 30828 .byte 2 30829 .byte -65 30830 .byte -66 30831 .byte 0 30832 .byte 6 30833 .byte -83 30834 .byte -41 30835 .byte -108 30836 .byte -111 30837 .byte 96 30838 .byte 68 30839 .byte 2 30840 .byte 1 30841 .byte 16 30842 .hword 256 30843 .byte 2 30844 .byte 2 30845 .hword 1046 30846 .hword 473 30847 .byte 1 30848 .byte 3 30849 .byte 40 30850 .byte 32 30851 .byte 4 30852 .byte 1 30853 .byte 3 30854 .byte 0 30855 .hword 256 30856 .byte 0 30857 .byte 0 30858 .byte 0 30859 .byte 0 30860 .byte 6 30861 .byte -83 30862 .byte 58 30863 .byte 20 30864 .byte -85 30865 .byte 66 30866 .byte 74 30867 .byte 2 30868 .byte 1 30869 .byte 32 30870 .hword 256 30871 .byte 2 30872 .byte 2 30873 .hword 2092 30874 .hword 473 30875 .byte 2 30876 .byte 5 30877 .byte 40 30878 .byte 32 30879 .byte 3 30880 .byte 1 30881 .byte 3 30882 .byte 0 30883 .hword 256 30884 .byte 0 30885 .byte 0 30886 .byte 0 30887 .byte 0 30888 .byte 6 30889 .byte -83 30890 .byte -41 30891 .byte 20 30892 .byte -98 30893 .byte 52 30894 .byte 74 30895 .byte 2 30896 .byte 1 30897 .byte 16 30898 .hword 256 30899 .byte 2 30900 .byte 2 30901 .hword 1056 30902 .hword 473 30903 .byte 2 30904 .byte 5 30905 .byte 40 30906 .byte 32 30907 .byte 4 30908 .byte 1 30909 .byte 3 30910 .byte 0 30911 .hword 256 30912 .byte 0 30913 .byte 0 30914 .byte 0 30915 .byte 0 30916 .byte 6 30917 .byte -83 30918 .byte 58 30919 .byte 20 30920 .byte 3 30921 .byte 8 30922 .byte 80 30923 .byte 2 30924 .byte 1 30925 .byte 32 30926 .hword 388 30927 .byte 2 30928 .byte 2 30929 .hword 1362 30930 .hword 473 30931 .byte 9 30932 .byte 8 30933 .byte 40 30934 .byte 32 30935 .byte 3 30936 .byte 1 30937 .byte 3 30938 .byte 0 30939 .hword 512 30940 .byte 0 30941 .byte -65 30942 .byte -66 30943 .byte 1 30944 .byte 5 30945 .byte -119 30946 .byte 100 30947 .byte 100 30948 .byte 60 30949 .byte -95 30950 .byte 0 30951 .byte 7 30952 .byte 1 30953 .byte 32 30954 .hword 512 30955 .byte 2 30956 .byte 1 30957 .hword 1024 30958 .hword 455 30959 .byte 4 30960 .byte 17 30961 .byte 40 30962 .byte 32 30963 .byte 1 30964 .byte 0 30965 .byte 1 30966 .byte 0 30967 .hword 512 30968 .byte 3 30969 .byte 0 30970 .byte 0 30971 .byte 0 30972 .byte 5 30973 .byte -119 30974 .byte -124 30975 .byte 100 30976 .byte 60 30977 .byte -91 30978 .byte 0 30979 .byte 7 30980 .byte 1 30981 .byte 32 30982 .hword 512 30983 .byte 2 30984 .byte 2 30985 .hword 1024 30986 .hword 455 30987 .byte 4 30988 .byte 17 30989 .byte 40 30990 .byte 32 30991 .byte 1 30992 .byte 0 30993 .byte 1 30994 .byte 0 30995 .hword 512 30996 .byte 3 30997 .byte 0 30998 .byte 0 30999 .byte 0 31000 .byte 6 31001 .byte -119 31002 .byte 100 31003 .byte 68 31004 .byte 75 31005 .byte -87 31006 .byte 0 31007 .byte 7 31008 .byte 1 31009 .byte 16 31010 .hword 256 31011 .byte 2 31012 .byte 4 31013 .hword 1024 31014 .hword 449 31015 .byte 3 31016 .byte 17 31017 .byte 40 31018 .byte 32 31019 .byte 1 31020 .byte 0 31021 .byte 1 31022 .byte 0 31023 .hword 256 31024 .byte 0 31025 .byte 0 31026 .byte 0 31027 .byte 0 31028 .byte 6 31029 .byte -119 31030 .byte -120 31031 .byte 36 31032 .byte 75 31033 .byte -87 31034 .byte -124 31035 .byte 7 31036 .byte 1 31037 .byte 16 31038 .hword 256 31039 .byte 2 31040 .byte 4 31041 .hword 1024 31042 .hword 449 31043 .byte 3 31044 .byte 17 31045 .byte 40 31046 .byte 32 31047 .byte 1 31048 .byte 0 31049 .byte 1 31050 .byte 0 31051 .hword 256 31052 .byte 0 31053 .byte 0 31054 .byte 0 31055 .byte 0 31056 .byte 6 31057 .byte -119 31058 .byte -120 31059 .byte 4 31060 .byte 75 31061 .byte -87 31062 .byte 0 31063 .byte 7 31064 .byte 1 31065 .byte 16 31066 .hword 256 31067 .byte 2 31068 .byte 4 31069 .hword 1024 31070 .hword 449 31071 .byte 1 31072 .byte 0 31073 .byte 24 31074 .byte 32 31075 .byte 1 31076 .byte 0 31077 .byte 1 31078 .byte 0 31079 .hword 256 31080 .byte 0 31081 .byte 0 31082 .byte 0 31083 .byte 0 31084 .byte 6 31085 .byte -119 31086 .byte -92 31087 .byte 8 31088 .byte 50 31089 .byte -95 31090 .byte 0 31091 .byte 7 31092 .byte 1 31093 .byte 32 31094 .hword 2304 31095 .byte 3 31096 .byte 1 31097 .hword 1008 31098 .hword 3521 31099 .byte 0 31100 .byte 19 31101 .byte 70 31102 .byte 32 31103 .byte 1 31104 .byte 0 31105 .byte 1 31106 .byte 0 31107 .hword 4096 31108 .byte 3 31109 .byte 0 31110 .byte 0 31111 .byte 4 31112 .byte 6 31113 .byte -20 31114 .byte -34 31115 .byte -108 31116 .byte -61 31117 .byte -92 31118 .byte -54 31119 .byte 0 31120 .byte 1 31121 .byte 32 31122 .hword 792 31123 .byte 2 31124 .byte 1 31125 .hword 688 31126 .hword 1217 31127 .byte 11 31128 .byte 50 31129 .byte 40 31130 .byte 32 31131 .byte 3 31132 .byte 1 31133 .byte 1 31134 .byte 0 31135 .hword 1024 31136 .byte 1 31137 .byte -38 31138 .byte -33 31139 .byte 0 31140 .section .rodata.__func__.7123,"a",@progbits 31141 .align 3 31142 .set .LANCHOR171,. + 0 31143 .type __func__.7123, %object 31144 .size __func__.7123, 19 31145__func__.7123: 31146 .string "flash_read_page_en" 31147 .section .rodata.__func__.7184,"a",@progbits 31148 .align 3 31149 .set .LANCHOR188,. + 0 31150 .type __func__.7184, %object 31151 .size __func__.7184, 19 31152__func__.7184: 31153 .string "flash_prog_page_en" 31154 .section .rodata.__func__.7200,"a",@progbits 31155 .align 3 31156 .set .LANCHOR43,. + 0 31157 .type __func__.7200, %object 31158 .size __func__.7200, 26 31159__func__.7200: 31160 .string "flash_erase_duplane_block" 31161 .section .rodata.__func__.7211,"a",@progbits 31162 .align 3 31163 .set .LANCHOR45,. + 0 31164 .type __func__.7211, %object 31165 .size __func__.7211, 21 31166__func__.7211: 31167 .string "flash_erase_block_en" 31168 .section .rodata.__func__.7225,"a",@progbits 31169 .align 3 31170 .set .LANCHOR28,. + 0 31171 .type __func__.7225, %object 31172 .size __func__.7225, 28 31173__func__.7225: 31174 .string "flash_wait_device_ready_raw" 31175 .section .rodata.__func__.7249,"a",@progbits 31176 .align 3 31177 .set .LANCHOR176,. + 0 31178 .type __func__.7249, %object 31179 .size __func__.7249, 26 31180__func__.7249: 31181 .string "flash_start_tlc_page_prog" 31182 .section .rodata.__func__.7260,"a",@progbits 31183 .align 3 31184 .set .LANCHOR177,. + 0 31185 .type __func__.7260, %object 31186 .size __func__.7260, 29 31187__func__.7260: 31188 .string "flash_start_3d_mlc_page_prog" 31189 .section .rodata.__func__.7278,"a",@progbits 31190 .align 3 31191 .set .LANCHOR178,. + 0 31192 .type __func__.7278, %object 31193 .size __func__.7278, 22 31194__func__.7278: 31195 .string "flash_start_page_prog" 31196 .section .rodata.__func__.7289,"a",@progbits 31197 .align 3 31198 .set .LANCHOR34,. + 0 31199 .type __func__.7289, %object 31200 .size __func__.7289, 22 31201__func__.7289: 31202 .string "flash_start_page_read" 31203 .section .rodata.__func__.7302,"a",@progbits 31204 .align 3 31205 .set .LANCHOR179,. + 0 31206 .type __func__.7302, %object 31207 .size __func__.7302, 31 31208__func__.7302: 31209 .string "flash_complete_plane_page_read" 31210 .section .rodata.__func__.7314,"a",@progbits 31211 .align 3 31212 .set .LANCHOR46,. + 0 31213 .type __func__.7314, %object 31214 .size __func__.7314, 23 31215__func__.7314: 31216 .string "flash_start_plane_read" 31217 .section .rodata.__func__.7327,"a",@progbits 31218 .align 3 31219 .set .LANCHOR180,. + 0 31220 .type __func__.7327, %object 31221 .size __func__.7327, 25 31222__func__.7327: 31223 .string "flash_complete_page_read" 31224 .section .rodata.__func__.7742,"a",@progbits 31225 .align 3 31226 .set .LANCHOR144,. + 0 31227 .type __func__.7742, %object 31228 .size __func__.7742, 20 31229__func__.7742: 31230 .string "flash_die_info_init" 31231 .section .rodata.__func__.7753,"a",@progbits 31232 .align 3 31233 .set .LANCHOR20,. + 0 31234 .type __func__.7753, %object 31235 .size __func__.7753, 22 31236__func__.7753: 31237 .string "nand_flash_print_info" 31238 .section .rodata.__func__.7802,"a",@progbits 31239 .align 3 31240 .set .LANCHOR212,. + 0 31241 .type __func__.7802, %object 31242 .size __func__.7802, 16 31243__func__.7802: 31244 .string "nand_flash_init" 31245 .section .rodata.__func__.7825,"a",@progbits 31246 .align 3 31247 .set .LANCHOR156,. + 0 31248 .type __func__.7825, %object 31249 .size __func__.7825, 11 31250__func__.7825: 31251 .string "nandc_init" 31252 .section .rodata.__func__.7990,"a",@progbits 31253 .align 3 31254 .set .LANCHOR58,. + 0 31255 .type __func__.7990, %object 31256 .size __func__.7990, 13 31257__func__.7990: 31258 .string "buf_add_tail" 31259 .section .rodata.__func__.8003,"a",@progbits 31260 .align 3 31261 .set .LANCHOR60,. + 0 31262 .type __func__.8003, %object 31263 .size __func__.8003, 10 31264__func__.8003: 31265 .string "buf_alloc" 31266 .section .rodata.__func__.8017,"a",@progbits 31267 .align 3 31268 .set .LANCHOR61,. + 0 31269 .type __func__.8017, %object 31270 .size __func__.8017, 16 31271__func__.8017: 31272 .string "buf_remove_free" 31273 .section .rodata.__func__.8038,"a",@progbits 31274 .align 3 31275 .set .LANCHOR211,. + 0 31276 .type __func__.8038, %object 31277 .size __func__.8038, 20 31278__func__.8038: 31279 .string "flash_info_blk_init" 31280 .section .rodata.__func__.8053,"a",@progbits 31281 .align 3 31282 .set .LANCHOR155,. + 0 31283 .type __func__.8053, %object 31284 .size __func__.8053, 21 31285__func__.8053: 31286 .string "flash_info_data_init" 31287 .section .rodata.__func__.8075,"a",@progbits 31288 .align 3 31289 .set .LANCHOR208,. + 0 31290 .type __func__.8075, %object 31291 .size __func__.8075, 17 31292__func__.8075: 31293 .string "flash_info_flush" 31294 .section .rodata.__func__.8151,"a",@progbits 31295 .align 3 31296 .set .LANCHOR148,. + 0 31297 .type __func__.8151, %object 31298 .size __func__.8151, 17 31299__func__.8151: 31300 .string "lpa_rebuild_hash" 31301 .section .rodata.__func__.8198,"a",@progbits 31302 .align 3 31303 .set .LANCHOR235,. + 0 31304 .type __func__.8198, %object 31305 .size __func__.8198, 17 31306__func__.8198: 31307 .string "ftl_write_commit" 31308 .section .rodata.__func__.8216,"a",@progbits 31309 .align 3 31310 .set .LANCHOR67,. + 0 31311 .type __func__.8216, %object 31312 .size __func__.8216, 14 31313__func__.8216: 31314 .string "ftl_write_buf" 31315 .section .rodata.__func__.8258,"a",@progbits 31316 .align 3 31317 .set .LANCHOR70,. + 0 31318 .type __func__.8258, %object 31319 .size __func__.8258, 18 31320__func__.8258: 31321 .string "zftl_add_read_buf" 31322 .section .rodata.__func__.8291,"a",@progbits 31323 .align 3 31324 .set .LANCHOR233,. + 0 31325 .type __func__.8291, %object 31326 .size __func__.8291, 10 31327__func__.8291: 31328 .string "zftl_read" 31329 .section .rodata.__func__.8323,"a",@progbits 31330 .align 3 31331 .set .LANCHOR242,. + 0 31332 .type __func__.8323, %object 31333 .size __func__.8323, 13 31334__func__.8323: 31335 .string "_ftl_discard" 31336 .section .rodata.__func__.8469,"a",@progbits 31337 .align 3 31338 .set .LANCHOR225,. + 0 31339 .type __func__.8469, %object 31340 .size __func__.8469, 12 31341__func__.8469: 31342 .string "gc_recovery" 31343 .section .rodata.__func__.8479,"a",@progbits 31344 .align 3 31345 .set .LANCHOR77,. + 0 31346 .type __func__.8479, %object 31347 .size __func__.8479, 12 31348__func__.8479: 31349 .string "gc_add_sblk" 31350 .section .rodata.__func__.8526,"a",@progbits 31351 .align 3 31352 .set .LANCHOR187,. + 0 31353 .type __func__.8526, %object 31354 .size __func__.8526, 21 31355__func__.8526: 31356 .string "gc_check_data_one_wl" 31357 .section .rodata.__func__.8558,"a",@progbits 31358 .align 3 31359 .set .LANCHOR229,. + 0 31360 .type __func__.8558, %object 31361 .size __func__.8558, 22 31362__func__.8558: 31363 .string "gc_update_l2p_map_new" 31364 .section .rodata.__func__.8571,"a",@progbits 31365 .align 3 31366 .set .LANCHOR83,. + 0 31367 .type __func__.8571, %object 31368 .size __func__.8571, 19 31369__func__.8571: 31370 .string "gc_write_completed" 31371 .section .rodata.__func__.8601,"a",@progbits 31372 .align 3 31373 .set .LANCHOR237,. + 0 31374 .type __func__.8601, %object 31375 .size __func__.8601, 16 31376__func__.8601: 31377 .string "gc_do_copy_back" 31378 .section .rodata.__func__.8628,"a",@progbits 31379 .align 3 31380 .set .LANCHOR133,. + 0 31381 .type __func__.8628, %object 31382 .size __func__.8628, 16 31383__func__.8628: 31384 .string "gc_free_src_blk" 31385 .section .rodata.__func__.8672,"a",@progbits 31386 .align 3 31387 .set .LANCHOR230,. + 0 31388 .type __func__.8672, %object 31389 .size __func__.8672, 16 31390__func__.8672: 31391 .string "gc_scan_src_blk" 31392 .section .rodata.__func__.8733,"a",@progbits 31393 .align 3 31394 .set .LANCHOR231,. + 0 31395 .type __func__.8733, %object 31396 .size __func__.8733, 20 31397__func__.8733: 31398 .string "gc_scan_static_data" 31399 .section .rodata.__func__.8827,"a",@progbits 31400 .align 3 31401 .set .LANCHOR240,. + 0 31402 .type __func__.8827, %object 31403 .size __func__.8827, 11 31404__func__.8827: 31405 .string "zftl_do_gc" 31406 .section .rodata.__func__.8922,"a",@progbits 31407 .align 3 31408 .set .LANCHOR5,. + 0 31409 .type __func__.8922, %object 31410 .size __func__.8922, 18 31411__func__.8922: 31412 .string "_list_remove_node" 31413 .section .rodata.__func__.8947,"a",@progbits 31414 .align 3 31415 .set .LANCHOR13,. + 0 31416 .type __func__.8947, %object 31417 .size __func__.8947, 23 31418__func__.8947: 31419 .string "_list_update_data_list" 31420 .section .rodata.__func__.9022,"a",@progbits 31421 .align 3 31422 .set .LANCHOR152,. + 0 31423 .type __func__.9022, %object 31424 .size __func__.9022, 20 31425__func__.9022: 31426 .string "zftl_sblk_list_init" 31427 .section .rodata.__func__.9056,"a",@progbits 31428 .align 3 31429 .set .LANCHOR195,. + 0 31430 .type __func__.9056, %object 31431 .size __func__.9056, 15 31432__func__.9056: 31433 .string "ftl_info_flush" 31434 .section .rodata.__func__.9091,"a",@progbits 31435 .align 3 31436 .set .LANCHOR116,. + 0 31437 .type __func__.9091, %object 31438 .size __func__.9091, 15 31439__func__.9091: 31440 .string "ftl_alloc_sblk" 31441 .section .rodata.__func__.9132,"a",@progbits 31442 .align 3 31443 .set .LANCHOR119,. + 0 31444 .type __func__.9132, %object 31445 .size __func__.9132, 18 31446__func__.9132: 31447 .string "ftl_alloc_sys_blk" 31448 .section .rodata.__func__.9142,"a",@progbits 31449 .align 3 31450 .set .LANCHOR120,. + 0 31451 .type __func__.9142, %object 31452 .size __func__.9142, 17 31453__func__.9142: 31454 .string "ftl_free_sys_blk" 31455 .section .rodata.__func__.9177,"a",@progbits 31456 .align 3 31457 .set .LANCHOR232,. + 0 31458 .type __func__.9177, %object 31459 .size __func__.9177, 14 31460__func__.9177: 31461 .string "ftl_sblk_dump" 31462 .section .rodata.__func__.9201,"a",@progbits 31463 .align 3 31464 .set .LANCHOR217,. + 0 31465 .type __func__.9201, %object 31466 .size __func__.9201, 16 31467__func__.9201: 31468 .string "ftl_sysblk_dump" 31469 .section .rodata.__func__.9226,"a",@progbits 31470 .align 3 31471 .set .LANCHOR218,. + 0 31472 .type __func__.9226, %object 31473 .size __func__.9226, 23 31474__func__.9226: 31475 .string "ftl_open_sblk_recovery" 31476 .section .rodata.__func__.9259,"a",@progbits 31477 .align 3 31478 .set .LANCHOR121,. + 0 31479 .type __func__.9259, %object 31480 .size __func__.9259, 23 31481__func__.9259: 31482 .string "ftl_get_ppa_from_index" 31483 .section .rodata.__func__.9280,"a",@progbits 31484 .align 3 31485 .set .LANCHOR234,. + 0 31486 .type __func__.9280, %object 31487 .size __func__.9280, 19 31488__func__.9280: 31489 .string "ftl_update_l2p_map" 31490 .section .rodata.__func__.9299,"a",@progbits 31491 .align 3 31492 .set .LANCHOR125,. + 0 31493 .type __func__.9299, %object 31494 .size __func__.9299, 22 31495__func__.9299: 31496 .string "ftl_get_new_free_page" 31497 .section .rodata.__func__.9310,"a",@progbits 31498 .align 3 31499 .set .LANCHOR126,. + 0 31500 .type __func__.9310, %object 31501 .size __func__.9310, 22 31502__func__.9310: 31503 .string "ftl_ext_alloc_new_blk" 31504 .section .rodata.__func__.9336,"a",@progbits 31505 .align 3 31506 .set .LANCHOR200,. + 0 31507 .type __func__.9336, %object 31508 .size __func__.9336, 19 31509__func__.9336: 31510 .string "ftl_ext_info_flush" 31511 .section .rodata.__func__.9348,"a",@progbits 31512 .align 3 31513 .set .LANCHOR201,. + 0 31514 .type __func__.9348, %object 31515 .size __func__.9348, 18 31516__func__.9348: 31517 .string "ftl_ext_info_init" 31518 .section .rodata.__func__.9387,"a",@progbits 31519 .align 3 31520 .set .LANCHOR202,. + 0 31521 .type __func__.9387, %object 31522 .size __func__.9387, 25 31523__func__.9387: 31524 .string "ftl_low_format_data_init" 31525 .section .rodata.__func__.9402,"a",@progbits 31526 .align 3 31527 .set .LANCHOR204,. + 0 31528 .type __func__.9402, %object 31529 .size __func__.9402, 15 31530__func__.9402: 31531 .string "ftl_low_format" 31532 .section .rodata.__func__.9450,"a",@progbits 31533 .align 3 31534 .set .LANCHOR191,. + 0 31535 .type __func__.9450, %object 31536 .size __func__.9450, 14 31537__func__.9450: 31538 .string "ftl_prog_page" 31539 .section .rodata.__func__.9569,"a",@progbits 31540 .align 3 31541 .set .LANCHOR181,. + 0 31542 .type __func__.9569, %object 31543 .size __func__.9569, 31 31544__func__.9569: 31545 .string "queue_wait_first_req_completed" 31546 .section .rodata.__func__.9623,"a",@progbits 31547 .align 3 31548 .set .LANCHOR182,. + 0 31549 .type __func__.9623, %object 31550 .size __func__.9623, 15 31551__func__.9623: 31552 .string "sblk_prog_page" 31553 .section .rodata.__func__.9650,"a",@progbits 31554 .align 3 31555 .set .LANCHOR186,. + 0 31556 .type __func__.9650, %object 31557 .size __func__.9650, 15 31558__func__.9650: 31559 .string "sblk_read_page" 31560 .section .rodata.__func__.9720,"a",@progbits 31561 .align 3 31562 .set .LANCHOR220,. + 0 31563 .type __func__.9720, %object 31564 .size __func__.9720, 16 31565__func__.9720: 31566 .string "load_l2p_region" 31567 .section .rodata.__func__.9736,"a",@progbits 31568 .align 3 31569 .set .LANCHOR154,. + 0 31570 .type __func__.9736, %object 31571 .size __func__.9736, 13 31572__func__.9736: 31573 .string "pm_free_sblk" 31574 .section .rodata.__func__.9760,"a",@progbits 31575 .align 3 31576 .set .LANCHOR222,. + 0 31577 .type __func__.9760, %object 31578 .size __func__.9760, 6 31579__func__.9760: 31580 .string "pm_gc" 31581 .section .rodata.__func__.9776,"a",@progbits 31582 .align 3 31583 .set .LANCHOR135,. + 0 31584 .type __func__.9776, %object 31585 .size __func__.9776, 17 31586__func__.9776: 31587 .string "pm_alloc_new_blk" 31588 .section .rodata.__func__.9786,"a",@progbits 31589 .align 3 31590 .set .LANCHOR205,. + 0 31591 .type __func__.9786, %object 31592 .size __func__.9786, 14 31593__func__.9786: 31594 .string "pm_write_page" 31595 .section .rodata.__func__.9804,"a",@progbits 31596 .align 3 31597 .set .LANCHOR138,. + 0 31598 .type __func__.9804, %object 31599 .size __func__.9804, 21 31600__func__.9804: 31601 .string "pm_select_ram_region" 31602 .section .rodata._list_remove_node.str1.1,"aMS",@progbits,1 31603.LC0: 31604 .string "\n!!!!! error @ func:%s - line:%d\n" 31605 .section .rodata.dump_buf_info.str1.1,"aMS",@progbits,1 31606.LC41: 31607 .string "sblk_queue_head = %d\n" 31608.LC42: 31609 .string "sblk_read_completed_queue_head = %d\n" 31610.LC43: 31611 .string "sblk_gc_write_completed_queue_head = %d\n" 31612.LC44: 31613 .string "sblk_write_completed_queue_head = %d\n" 31614.LC45: 31615 .string "p_free_buf_head = %d\n" 31616.LC46: 31617 .string "free_buf_count = %d\n" 31618.LC47: 31619 .string "buf = %d, next=%d, flag=%d gc_write_flag=%d, lun_state=%d, op_status = %d lpa=%x, ppa=%x\n" 31620 .section .rodata.dump_pm_blk.str1.1,"aMS",@progbits,1 31621.LC237: 31622 .string "pm l2p:" 31623.LC238: 31624 .string "pm blk:" 31625 .section .rodata.dump_sblk_queue.str1.1,"aMS",@progbits,1 31626.LC73: 31627 .string "dump_sblk_queue: %d\n" 31628.LC74: 31629 .string "buf id= %d state = %d ppa = %x\n" 31630 .section .rodata.flash_complete_page_read.str1.1,"aMS",@progbits,1 31631.LC133: 31632 .string "flash_complete_page_read %x %x error_ecc %d %d\n" 31633 .section .rodata.flash_ddr_tuning_read.str1.1,"aMS",@progbits,1 31634.LC119: 31635 .string "%d flash_ddr_tuning_read %x ecc=%d\n" 31636.LC120: 31637 .string "sync para %d\n" 31638.LC121: 31639 .string "DDR mode Read error %x %x\n" 31640.LC122: 31641 .string "SDR mode Read %x %x ecc:%x\n" 31642 .section .rodata.flash_dual_page_prog.str1.1,"aMS",@progbits,1 31643.LC127: 31644 .string "flash_prog_page %x %x %x\n" 31645 .section .rodata.flash_erase_all.str1.1,"aMS",@progbits,1 31646.LC35: 31647 .string "erase done: %x\n" 31648 .section .rodata.flash_erase_block_en.str1.1,"aMS",@progbits,1 31649.LC33: 31650 .string "flash_erase_block %x %x %x\n" 31651.LC34: 31652 .string "flash_erase_block %d block = %x status = %x\n" 31653 .section .rodata.flash_erase_duplane_block.str1.1,"aMS",@progbits,1 31654.LC31: 31655 .string "flash_erase_duplane_block %x %x %x\n" 31656.LC32: 31657 .string "flash_erase_duplane_block pageadd = %x status = %x\n" 31658 .section .rodata.flash_get_last_written_page.str1.1,"aMS",@progbits,1 31659.LC125: 31660 .string "flash_get_last_written_page: %x %x %x\n" 31661 .section .rodata.flash_info_blk_init.str1.1,"aMS",@progbits,1 31662.LC169: 31663 .string "...%d @ %s %d %p\n" 31664.LC170: 31665 .string "no sys info %x\n" 31666 .section .rodata.flash_info_data_init.str1.1,"aMS",@progbits,1 31667.LC91: 31668 .string "...%d @ %s\n" 31669 .section .rodata.flash_info_flush.str1.1,"aMS",@progbits,1 31670.LC166: 31671 .string "finfo:" 31672.LC167: 31673 .string "flash_info_flush id = %x, page = %x\n" 31674.LC168: 31675 .string "sys_info_flush error:%x\n" 31676 .section .rodata.flash_mask_bad_block.str1.1,"aMS",@progbits,1 31677.LC48: 31678 .string "flash_mask_bad_block %d %d\n" 31679 .section .rodata.flash_prog_page.str1.1,"aMS",@progbits,1 31680.LC126: 31681 .string "flash_prog_page page_addr = %x status = %x\n" 31682 .section .rodata.flash_prog_page_en.str1.1,"aMS",@progbits,1 31683.LC141: 31684 .string "flash_prog_page_en:%x %x %x\n" 31685.LC142: 31686 .string "w d:" 31687.LC143: 31688 .string "w s:" 31689.LC144: 31690 .string "spare" 31691.LC145: 31692 .string "data" 31693.LC146: 31694 .string "write error: %x\n" 31695 .section .rodata.flash_read_id.str1.1,"aMS",@progbits,1 31696.LC38: 31697 .string "No.%d FLASH ID:%x %x %x %x %x %x\n" 31698 .section .rodata.flash_read_otp_data.str1.1,"aMS",@progbits,1 31699.LC39: 31700 .string "otp:%x %x %x %x\n" 31701 .section .rodata.flash_read_page_en.str1.1,"aMS",@progbits,1 31702.LC123: 31703 .string "flash_read_page_en %x %x %x %x\n" 31704.LC124: 31705 .string "flash_read_page_en %x %x error_ecc %d %d\n" 31706 .section .rodata.flash_set_interface_mode.str1.1,"aMS",@progbits,1 31707.LC36: 31708 .string "nand sdr mode %x\n" 31709.LC37: 31710 .string "nand ddr mode %x\n" 31711 .section .rodata.ftl_alloc_new_data_sblk.str1.1,"aMS",@progbits,1 31712.LC228: 31713 .string "error gc_add_sblk: %x\n" 31714 .section .rodata.ftl_dump_write_open_sblk.str1.1,"aMS",@progbits,1 31715.LC160: 31716 .string "ftl_sblk_dump_write = %x %d %d %d %d\n" 31717.LC161: 31718 .string "blk= %x, page=%x, ppa = %x, status = %x, data:%x %x %x %x, spare: %x %x %x %x\n" 31719.LC162: 31720 .string "ftl_sblk_dump_write2 = %x %d %d %d\n" 31721.LC163: 31722 .string "ftl_sblk_dump_write = %x %x\n" 31723.LC164: 31724 .string "ftl_sblk_dump_write done = %x\n" 31725 .section .rodata.ftl_ext_info_init.str1.1,"aMS",@progbits,1 31726.LC153: 31727 .string "%s %d %d %x %x\n" 31728.LC154: 31729 .string "ext info hash %x error\n" 31730.LC155: 31731 .string "%s %x %x %x\n" 31732 .section .rodata.ftl_free_sblk.str1.1,"aMS",@progbits,1 31733.LC70: 31734 .string "swl_slc_free_mini_ec_blk sblk %x\n" 31735 .section .rodata.ftl_info_blk_init.str1.1,"aMS",@progbits,1 31736.LC149: 31737 .string "%d %x @%d %x\n" 31738.LC150: 31739 .string "ftl_info_blk_init %d %d %x\n" 31740.LC151: 31741 .string "ftl info hash %x error\n" 31742.LC152: 31743 .string "ink flag: %x\n" 31744 .section .rodata.ftl_info_flush.str1.1,"aMS",@progbits,1 31745.LC148: 31746 .string "g_ftl_info_blk blk = %x, page = %x version = %d\n" 31747 .section .rodata.ftl_low_format.str1.1,"aMS",@progbits,1 31748.LC156: 31749 .string "ftl_low_format %d\n" 31750.LC157: 31751 .string "low format %d %d %d %d\n" 31752 .section .rodata.ftl_mask_bad_block.str1.1,"aMS",@progbits,1 31753.LC68: 31754 .string "mask bad block:cs %x %x block: %x %x\n" 31755 .section .rodata.ftl_open_sblk_recovery.str1.1,"aMS",@progbits,1 31756.LC172: 31757 .string "saved_active_page = %x\n" 31758.LC173: 31759 .string "saved_active_plane = %x\n" 31760.LC174: 31761 .string "sblk = %x\n" 31762.LC175: 31763 .string "phy_blk = %x %x\n" 31764.LC176: 31765 .string "num_planes = %x\n" 31766.LC177: 31767 .string "recovery blk=%x, page=%x, ppa = %x, status = %x, hash:%x\n" 31768.LC178: 31769 .string "data:" 31770.LC179: 31771 .string "sblk = %x, vpn0 = %d, vpn1 = %d\n" 31772.LC180: 31773 .string "dump_write_lpa = %x %x %x %x\n" 31774.LC181: 31775 .string "dump write new ppa = %x, last ppa = %x lpa = %x\n" 31776.LC182: 31777 .string "dump write = %x %x %x\n" 31778.LC183: 31779 .string "dump write hash update = %x %x %x\n" 31780 .section .rodata.ftl_re_low_format.str1.1,"aMS",@progbits,1 31781.LC158: 31782 .string "re low format %d\n" 31783 .section .rodata.ftl_sblk_dump.str1.1,"aMS",@progbits,1 31784.LC216: 31785 .string "ftl_sblk_dump = %x %d %d %d %d\n" 31786.LC217: 31787 .string "ftl_sblk_dump = %x %x %x %x\n" 31788.LC218: 31789 .string "page_addr = %x, lpa=%x vpn = %d\n" 31790.LC219: 31791 .string "index= %x, lpa=%x\n" 31792.LC220: 31793 .string "block = %x, vpn=%x check vpn = %x\n" 31794 .section .rodata.ftl_sysblk_dump.str1.1,"aMS",@progbits,1 31795.LC171: 31796 .string "l2p:" 31797 .section .rodata.ftl_test_block.str1.1,"aMS",@progbits,1 31798.LC147: 31799 .string "low format %d\n" 31800 .section .rodata.ftl_update_l2p_map.str1.1,"aMS",@progbits,1 31801.LC224: 31802 .string "ftl_update_l2p_map: %x %x %x\n" 31803.LC225: 31804 .string "ftl_update_l2p_map" 31805.LC226: 31806 .string "lpa_tbl:" 31807.LC227: 31808 .string "sblk %x vpn: %d %d\n" 31809 .section .rodata.ftl_vpn_decrement.str1.1,"aMS",@progbits,1 31810.LC65: 31811 .string "ftl_vpn_decrement %x = %d, %d\n" 31812 .section .rodata.ftl_write_commit.str1.1,"aMS",@progbits,1 31813.LC229: 31814 .string "%d read error: ppa:%x, lpa:%x, status:%x\n" 31815 .section .rodata.ftl_write_completed.str1.1,"aMS",@progbits,1 31816.LC66: 31817 .string "ftl prog error =%x, lpa = %x, ppa= %x\n" 31818.LC67: 31819 .string "ftl re prog: lpa = %x, ppa= %x\n" 31820 .section .rodata.gc_add_sblk.str1.1,"aMS",@progbits,1 31821.LC49: 31822 .string "gc_add_sblk = %d, %d, %d, %d, %d, %d, %d\n" 31823.LC50: 31824 .string "gc_add_sblk = %d, %d, %d\n" 31825.LC51: 31826 .string "gc_add_sblk = %d, %d, %d,last update:%d, %d\n" 31827.LC52: 31828 .string "gc_add_sblk = %d, %d, %d, %d, %d, %d\n" 31829 .section .rodata.gc_check_data_one_wl.str1.1,"aMS",@progbits,1 31830.LC140: 31831 .string "err: ppa = %x, status = %x, %x %x spare: %x %x %x %x\n" 31832 .section .rodata.gc_do_copy_back.str1.1,"aMS",@progbits,1 31833.LC231: 31834 .string "gc page in buf: lpa %x ppa = %x pageindex= %x\n" 31835.LC232: 31836 .string "gc_do_copy_back: lpa %x des_ppa = %x %x gc_ppa= %x page_index= %d\n" 31837 .section .rodata.gc_free_bad_sblk.str1.1,"aMS",@progbits,1 31838.LC69: 31839 .string "gc_free_bad_sblk 0x%x\n" 31840 .section .rodata.gc_free_src_blk.str1.1,"aMS",@progbits,1 31841.LC71: 31842 .string "gc_free_src_blk = %x, vpn = %d\n" 31843.LC72: 31844 .string "gc_free_src_blk %x, %d\n" 31845 .section .rodata.gc_free_temp_buf.str1.1,"aMS",@progbits,1 31846.LC55: 31847 .string "%d gc_free_temp_buf buf id= %x\n" 31848 .section .rodata.gc_ink_check_sblk.str1.1,"aMS",@progbits,1 31849.LC165: 31850 .string "%x: ink_scaned_blk_num %x\n" 31851 .section .rodata.gc_mark_bad_ppa.str1.1,"aMS",@progbits,1 31852.LC53: 31853 .string "gc_mark_bad_ppa %d %x %x\n" 31854 .section .rodata.gc_recovery.str1.1,"aMS",@progbits,1 31855.LC193: 31856 .string "ppa = %x, status = %x, data:%x %x %x %x, spare: %x %x %x %x\n" 31857.LC194: 31858 .string "ppa = %x, status = %x, %x %x spare: %x %x %x %x\n" 31859.LC195: 31860 .string "gc_recovery: %x vpn = %x\n" 31861 .section .rodata.gc_scan_src_blk.str1.1,"aMS",@progbits,1 31862.LC213: 31863 .string "gc_scan_src_blk = %x, vpn = %d\n" 31864.LC214: 31865 .string "js hash error:%x %x %x\n" 31866.LC215: 31867 .string "gc_scan_src_blk = %x, s vpn0 = %d, c vpn1 = %d\n" 31868 .section .rodata.gc_search_src_blk.str1.1,"aMS",@progbits,1 31869.LC57: 31870 .string "zftl_get_gc_node cache = %x index = %d vpn = %x\n" 31871.LC58: 31872 .string "gc_search_src_blk mode = %x, src mode = %x, count= %d %d\n" 31873 .section .rodata.gc_static_wearleveling.str1.1,"aMS",@progbits,1 31874.LC79: 31875 .string "gc_static_wearleveling: min blk: %x,sec=%d,xec = %d ,mode=%d, func=%x, bbt=%x vpn = %d\n" 31876.LC80: 31877 .string "gc_static_wearleveling: min slc blk: %x,sec=%d,xec = %d ,mode=%d, func=%x, bbt=%x vpn = %d\n" 31878.LC81: 31879 .string "gc_static_wearleveling: min tlc blk: %x,sec=%d,xec = %d ,mode=%d, func=%x, bbt=%x vpn = %d\n" 31880.LC82: 31881 .string "gc_static_wearleveling: max slc blk: %x,sec=%d,xec = %d ,mode=%d, func=%x, bbt=%x vpn = %d\n" 31882.LC83: 31883 .string "gc_static_wearleveling: max xlc blk: %x,sec=%d,xec = %d ,mode=%d, func=%x, bbt=%x vpn = %d\n" 31884.LC84: 31885 .string "gc_static_wearleveling: slc blk: %x, tlc blk: %d avg slc ec: %d, avg tlc ec: %d \n" 31886.LC85: 31887 .string "gc_static_wearleveling: min slc ec: %x, min tlc ec: %d max slc ec: %d, max tlc ec: %d; %d %d\n" 31888.LC86: 31889 .string "swl add tlc gc = %x, %d, %d, %d, %d, %d\n" 31890.LC87: 31891 .string "swl add slc gc = %x, %d, %d, %d, %d, %d\n" 31892 .section .rodata.gc_update_l2p_map_new.str1.1,"aMS",@progbits,1 31893.LC209: 31894 .string "gc_update_l2p_map_new sblk %x\n" 31895.LC210: 31896 .string "gc_update_l2p_map_new: %x %x %x\n" 31897.LC211: 31898 .string "lpa: %x %x %x\n" 31899.LC212: 31900 .string "gc_update_l2p_map_new: %x vpn = %x vpn1 = %x done\n" 31901 .section .rodata.gc_write_completed.str1.1,"aMS",@progbits,1 31902.LC54: 31903 .string "status: %x, ppa: %x\n" 31904 .section .rodata.hynix_get_read_retry_default.str1.1,"aMS",@progbits,1 31905.LC99: 31906 .string "otp error! %d" 31907.LC100: 31908 .string "rr" 31909 .section .rodata.hynix_read_retrial.str1.1,"aMS",@progbits,1 31910.LC118: 31911 .string "hynix RR %d row=%x, count %d, status=%d\n" 31912 .section .rodata.idb_write_data.str1.1,"aMS",@progbits,1 31913.LC129: 31914 .string "1 write_idblock fix data %x %x %x\n" 31915.LC130: 31916 .string "write_idblock check fail! %x\n" 31917.LC131: 31918 .string "write_idblock fail! %x\n" 31919 .section .rodata.load_l2p_region.str1.1,"aMS",@progbits,1 31920.LC184: 31921 .string "region_id = %d, pm_max_region = %d\n" 31922.LC185: 31923 .string "load_l2p_region no ppa = %x , %x, all setting 0xff....\n" 31924.LC186: 31925 .string "load_l2p_region = %x,%x,%x, %x\n" 31926.LC187: 31927 .string "pm_ppa:" 31928.LC188: 31929 .string "spare:" 31930 .section .rodata.lpa_rebuild_hash.str1.1,"aMS",@progbits,1 31931.LC78: 31932 .string "%s %d %d\n" 31933 .section .rodata.micron_read_retrial.str1.1,"aMS",@progbits,1 31934.LC109: 31935 .string "MT %d row=%x,last status %d,status = %d\n" 31936.LC110: 31937 .string "MT RR %d row=%x,count %d,status=%d\n" 31938 .section .rodata.nand_flash_print_info.str1.1,"aMS",@progbits,1 31939.LC1: 31940 .string "...%s enter...\n" 31941.LC2: 31942 .string "No.0 FLASH ID: %x %x %x %x %x %x\n" 31943.LC3: 31944 .string "DiePerChip: %x\n" 31945.LC4: 31946 .string "SectPerPage: %x\n" 31947.LC5: 31948 .string "PagePerBlk: %x\n" 31949.LC6: 31950 .string "Cell: %x\n" 31951.LC7: 31952 .string "PlanePerDie: %x\n" 31953.LC8: 31954 .string "BlkPerPlane: %x\n" 31955.LC9: 31956 .string "die gap: %x\n" 31957.LC10: 31958 .string "lsbMode: %x\n" 31959.LC11: 31960 .string "ReadRetryMode: %x\n" 31961.LC12: 31962 .string "ecc: %x\n" 31963.LC13: 31964 .string "idb ecc: %x\n" 31965.LC14: 31966 .string "OptMode: %x\n" 31967.LC15: 31968 .string "g_nand_max_die: %x\n" 31969.LC16: 31970 .string "Cache read enable: %x\n" 31971.LC17: 31972 .string "Cache random read enable: %x\n" 31973.LC18: 31974 .string "Cache prog enable: %x\n" 31975.LC19: 31976 .string "multi read enable: %x\n" 31977.LC20: 31978 .string "multi prog enable: %x\n" 31979.LC21: 31980 .string "interleave enable: %x\n" 31981.LC22: 31982 .string "read retry enable: %x\n" 31983.LC23: 31984 .string "randomizer enable: %x\n" 31985.LC24: 31986 .string "SDR enable: %x\n" 31987.LC25: 31988 .string "ONFI enable: %x\n" 31989.LC26: 31990 .string "TOGGLE enable: %x\n" 31991.LC27: 31992 .string "g_flash_slc_mode: %x %x\n" 31993.LC28: 31994 .string "MultiPlaneProgCmd: %x %x\n" 31995.LC29: 31996 .string "MultiPlaneReadCmd: %x %x\n" 31997.LC30: 31998 .string "g_flash_toggle_mode_en: %x\n" 31999 .section .rodata.nandc_init.str1.1,"aMS",@progbits,1 32000.LC92: 32001 .string "...%s enter... %p\n" 32002.LC93: 32003 .string "0:%x %x %x %x %x\n" 32004.LC94: 32005 .string "g_nandc_ver...%d\n" 32006 .section .rodata.nandc_xfer.str1.1,"aMS",@progbits,1 32007.LC106: 32008 .string "dqs data abort %x\n" 32009.LC107: 32010 .string "dqs data timeout %x\n" 32011.LC108: 32012 .string "xfer error %x\n" 32013 .section .rodata.nandc_xfer_done.str1.1,"aMS",@progbits,1 32014.LC101: 32015 .string "flash_abort_clear = %d\n" 32016.LC102: 32017 .string "%d mtrans_cnt = %d page_num = %d\n" 32018.LC103: 32019 .string "%d flReg.d32=%x %x\n" 32020.LC104: 32021 .string "nandc:" 32022.LC105: 32023 .string "nandc_xfer_done read error %x\n" 32024 .section .rodata.pm_alloc_new_blk.str1.1,"aMS",@progbits,1 32025.LC75: 32026 .string "blk %x is bad block\n" 32027.LC76: 32028 .string "pm_alloc_new_blk: %x %x %x %x\n" 32029 .section .rodata.pm_free_sblk.str1.1,"aMS",@progbits,1 32030.LC89: 32031 .string "GC PM block %x %x %x %d\n" 32032.LC90: 32033 .string "ftl_free_no_use_map_blk %x %x %x %d\n" 32034 .section .rodata.pm_init.str1.1,"aMS",@progbits,1 32035.LC189: 32036 .string "pm_init posr %x %x %x\n" 32037.LC190: 32038 .string "pm_init recovery %x %x %x\n" 32039.LC191: 32040 .string "pm_init hash %x error\n" 32041 .section .rodata.pm_log2phys.str1.1,"aMS",@progbits,1 32042.LC192: 32043 .string "pm_log2phys lpn = %d, max lpn = %d\n" 32044 .section .rodata.pm_ppa_update_check.str1.1,"aMS",@progbits,1 32045.LC77: 32046 .string "%s w error lpn = %x, max ppa = %d\n" 32047 .section .rodata.pm_write_page.str1.1,"aMS",@progbits,1 32048.LC159: 32049 .string "pm_write_page write error: %x\n" 32050 .section .rodata.print_gc_debug_info.str1.1,"aMS",@progbits,1 32051.LC56: 32052 .string "gc: b:%x,p:%x,i:%x; free buf=%d %d free slc th: %d\n" 32053 .section .rodata.print_list_info.str1.1,"aMS",@progbits,1 32054.LC63: 32055 .string "list count:%p %d\n" 32056.LC64: 32057 .string "%d: node:%x %x %x %x, %d %d %d %d %d\n" 32058 .section .rodata.queue_wait_first_req_completed.str1.1,"aMS",@progbits,1 32059.LC134: 32060 .string "read: %x %x %x %x\n" 32061.LC135: 32062 .string "0set buf %d,status = %x, ppa = %x lun state = %d\n" 32063.LC136: 32064 .string "prog end %x %x error_ecc %d %d\n" 32065.LC137: 32066 .string "1set buf %d,status = %x, ppa = %x lun state = %d\n" 32067.LC138: 32068 .string "dp prog end %x %x error_ecc %d %d\n" 32069 .section .rodata.random_seed,"a",@progbits 32070 .align 3 32071 .set .LANCHOR54,. + 0 32072 .type random_seed, %object 32073 .size random_seed, 256 32074random_seed: 32075 .hword 22378 32076 .hword 1512 32077 .hword 25245 32078 .hword 17827 32079 .hword 25756 32080 .hword 19440 32081 .hword 9026 32082 .hword 10030 32083 .hword 29528 32084 .hword 20467 32085 .hword 29676 32086 .hword 24432 32087 .hword 31328 32088 .hword 6872 32089 .hword 13426 32090 .hword 13842 32091 .hword 8783 32092 .hword 1108 32093 .hword 782 32094 .hword 28837 32095 .hword 30729 32096 .hword 9505 32097 .hword 18676 32098 .hword 23085 32099 .hword 18730 32100 .hword 1085 32101 .hword 32609 32102 .hword 14697 32103 .hword 20858 32104 .hword 15170 32105 .hword 30365 32106 .hword 1607 32107 .hword 32298 32108 .hword 4995 32109 .hword 18905 32110 .hword 1976 32111 .hword 9592 32112 .hword 20204 32113 .hword 17443 32114 .hword 13615 32115 .hword 23330 32116 .hword 29369 32117 .hword 13947 32118 .hword 9398 32119 .hword 32398 32120 .hword 8984 32121 .hword 27600 32122 .hword 21785 32123 .hword 6019 32124 .hword 6311 32125 .hword 31598 32126 .hword 30210 32127 .hword 19327 32128 .hword 13896 32129 .hword 11347 32130 .hword 27545 32131 .hword 3107 32132 .hword 26575 32133 .hword 32270 32134 .hword 19852 32135 .hword 20601 32136 .hword 8349 32137 .hword 9290 32138 .hword 29819 32139 .hword 13579 32140 .hword 3661 32141 .hword 28676 32142 .hword 27331 32143 .hword 32574 32144 .hword 8693 32145 .hword 31253 32146 .hword 9081 32147 .hword 5399 32148 .hword 6842 32149 .hword 20087 32150 .hword 5537 32151 .hword 1274 32152 .hword 11617 32153 .hword 9530 32154 .hword 4866 32155 .hword 8035 32156 .hword 23219 32157 .hword 1178 32158 .hword 23272 32159 .hword 7383 32160 .hword 18944 32161 .hword 12488 32162 .hword 12871 32163 .hword 29340 32164 .hword 20532 32165 .hword 11022 32166 .hword 22514 32167 .hword 228 32168 .hword 22363 32169 .hword 24978 32170 .hword 14584 32171 .hword 12138 32172 .hword 3092 32173 .hword 17916 32174 .hword 16863 32175 .hword 14554 32176 .hword 31457 32177 .hword 29474 32178 .hword 25311 32179 .hword 24121 32180 .hword 3684 32181 .hword 28037 32182 .hword 22865 32183 .hword 22839 32184 .hword 25217 32185 .hword 13217 32186 .hword 27186 32187 .hword 14938 32188 .hword 11180 32189 .hword 29754 32190 .hword 24180 32191 .hword 15150 32192 .hword 32455 32193 .hword 20434 32194 .hword 23848 32195 .hword 29983 32196 .hword 16120 32197 .hword 14769 32198 .hword 20041 32199 .hword 29803 32200 .hword 28406 32201 .hword 17598 32202 .hword 28087 32203 .section .rodata.rk_ftl_init.str1.1,"aMS",@progbits,1 32204.LC208: 32205 .string "zftl_init %x\n" 32206 .section .rodata.rknand_print_hex.str1.1,"aMS",@progbits,1 32207.LC95: 32208 .string "%s %p + 0x%x:" 32209.LC96: 32210 .string "%x " 32211.LC97: 32212 .string "" 32213.LC98: 32214 .string "%s\n" 32215 .section .rodata.samsung_14nm_mlc_rr,"a",@progbits 32216 .align 3 32217 .set .LANCHOR169,. + 0 32218 .type samsung_14nm_mlc_rr, %object 32219 .size samsung_14nm_mlc_rr, 104 32220samsung_14nm_mlc_rr: 32221 .byte 0 32222 .byte 0 32223 .byte 0 32224 .byte 0 32225 .byte -4 32226 .byte 3 32227 .byte -4 32228 .byte -6 32229 .byte 6 32230 .byte 0 32231 .byte 6 32232 .byte -10 32233 .byte -10 32234 .byte 4 32235 .byte -10 32236 .byte 16 32237 .byte 12 32238 .byte -4 32239 .byte 12 32240 .byte 8 32241 .byte -16 32242 .byte 10 32243 .byte -16 32244 .byte 24 32245 .byte 18 32246 .byte -14 32247 .byte 18 32248 .byte -4 32249 .byte -22 32250 .byte -16 32251 .byte -22 32252 .byte -8 32253 .byte 24 32254 .byte -9 32255 .byte 24 32256 .byte 8 32257 .byte -28 32258 .byte -4 32259 .byte -28 32260 .byte 16 32261 .byte 30 32262 .byte 10 32263 .byte 30 32264 .byte 10 32265 .byte -34 32266 .byte 6 32267 .byte -34 32268 .byte 0 32269 .byte 36 32270 .byte -8 32271 .byte 36 32272 .byte -8 32273 .byte -40 32274 .byte -2 32275 .byte -40 32276 .byte -20 32277 .byte -46 32278 .byte -4 32279 .byte -46 32280 .byte -30 32281 .byte 3 32282 .byte 0 32283 .byte 3 32284 .byte -3 32285 .byte -2 32286 .byte -4 32287 .byte -2 32288 .byte -6 32289 .byte -4 32290 .byte -4 32291 .byte -4 32292 .byte -10 32293 .byte -6 32294 .byte -8 32295 .byte -6 32296 .byte -14 32297 .byte -9 32298 .byte -8 32299 .byte -9 32300 .byte -18 32301 .byte -52 32302 .byte 22 32303 .byte -52 32304 .byte 10 32305 .byte 42 32306 .byte 4 32307 .byte 42 32308 .byte 4 32309 .byte 48 32310 .byte -9 32311 .byte 48 32312 .byte 4 32313 .byte -58 32314 .byte 12 32315 .byte -58 32316 .byte 0 32317 .byte -64 32318 .byte -24 32319 .byte -64 32320 .byte -6 32321 .byte 9 32322 .byte 18 32323 .byte 9 32324 .byte 8 32325 .section .rodata.samsung_14nm_slc_rr,"a",@progbits 32326 .align 3 32327 .set .LANCHOR168,. + 0 32328 .type samsung_14nm_slc_rr, %object 32329 .size samsung_14nm_slc_rr, 26 32330samsung_14nm_slc_rr: 32331 .byte 0 32332 .byte 10 32333 .byte -10 32334 .byte 20 32335 .byte -20 32336 .byte 30 32337 .byte -30 32338 .byte 40 32339 .byte -40 32340 .byte 50 32341 .byte -50 32342 .byte 60 32343 .byte -60 32344 .byte -70 32345 .byte -80 32346 .byte -90 32347 .byte -100 32348 .byte -110 32349 .byte -120 32350 .byte -9 32351 .byte 70 32352 .byte 80 32353 .byte 90 32354 .byte -125 32355 .byte -115 32356 .byte 100 32357 .section .rodata.samsung_read_retrial.str1.1,"aMS",@progbits,1 32358.LC115: 32359 .string "samsung SRR %d row=%x, status=%d\n" 32360.LC116: 32361 .string "samsung TRR %d row=%x, status=%d\n" 32362.LC117: 32363 .string "samsung RR %d row=%x,count %d,status=%d\n" 32364 .section .rodata.sandisk_prog_test_bad_block.str1.1,"aMS",@progbits,1 32365.LC40: 32366 .string "bad block test:%x %x\n" 32367 .section .rodata.sblk_mlc_dump_prog.str1.1,"aMS",@progbits,1 32368.LC132: 32369 .string "sblk_mlc_dump_prog wl_addr= %x ppa = %x ppa = %x\n" 32370 .section .rodata.sblk_prog_page.str1.1,"aMS",@progbits,1 32371.LC139: 32372 .string "sblk_prog_page ppa = %x, count = %d\n" 32373 .section .rodata.toshiba_15ref_value,"a",@progbits 32374 .align 3 32375 .set .LANCHOR14,. + 0 32376 .type toshiba_15ref_value, %object 32377 .size toshiba_15ref_value, 95 32378toshiba_15ref_value: 32379 .byte 4 32380 .byte 5 32381 .byte 6 32382 .byte 7 32383 .byte 13 32384 .byte 0 32385 .byte 0 32386 .byte 0 32387 .byte 0 32388 .byte 0 32389 .byte 0 32390 .byte 0 32391 .byte 0 32392 .byte 0 32393 .byte 0 32394 .byte 2 32395 .byte 4 32396 .byte 2 32397 .byte 0 32398 .byte 0 32399 .byte 8 32400 .byte 8 32401 .byte 0 32402 .byte 0 32403 .byte 0 32404 .byte 124 32405 .byte 0 32406 .byte 124 32407 .byte 124 32408 .byte 0 32409 .byte 122 32410 .byte 0 32411 .byte 122 32412 .byte 122 32413 .byte 0 32414 .byte 11 32415 .byte 126 32416 .byte 118 32417 .byte 116 32418 .byte 0 32419 .byte 120 32420 .byte 2 32421 .byte 120 32422 .byte 122 32423 .byte 0 32424 .byte 126 32425 .byte 4 32426 .byte 126 32427 .byte 122 32428 .byte 0 32429 .byte 16 32430 .byte 118 32431 .byte 114 32432 .byte 112 32433 .byte 0 32434 .byte 118 32435 .byte 4 32436 .byte 118 32437 .byte 120 32438 .byte 0 32439 .byte 4 32440 .byte 4 32441 .byte 4 32442 .byte 118 32443 .byte 0 32444 .byte 2 32445 .byte 0 32446 .byte 126 32447 .byte 124 32448 .byte 0 32449 .byte 6 32450 .byte 10 32451 .byte 6 32452 .byte 2 32453 .byte 0 32454 .byte 116 32455 .byte 124 32456 .byte 116 32457 .byte 118 32458 .byte 0 32459 .byte 4 32460 .byte 4 32461 .byte 124 32462 .byte 126 32463 .byte 0 32464 .byte 0 32465 .byte 124 32466 .byte 120 32467 .byte 120 32468 .byte 0 32469 .byte 124 32470 .byte 118 32471 .byte 116 32472 .byte 114 32473 .byte 0 32474 .section .rodata.toshiba_3D_slc_value,"a",@progbits 32475 .align 3 32476 .set .LANCHOR38,. + 0 32477 .type toshiba_3D_slc_value, %object 32478 .size toshiba_3D_slc_value, 11 32479toshiba_3D_slc_value: 32480 .byte -117 32481 .byte 0 32482 .byte -8 32483 .byte 8 32484 .byte -16 32485 .byte -24 32486 .byte 24 32487 .byte -40 32488 .byte 40 32489 .byte -56 32490 .byte 56 32491 .section .rodata.toshiba_3D_tlc_value,"a",@progbits 32492 .align 3 32493 .set .LANCHOR37,. + 0 32494 .type toshiba_3D_tlc_value, %object 32495 .size toshiba_3D_tlc_value, 399 32496toshiba_3D_tlc_value: 32497 .byte -119 32498 .byte -119 32499 .byte -119 32500 .byte -119 32501 .byte -118 32502 .byte -118 32503 .byte -118 32504 .byte 0 32505 .byte 0 32506 .byte 0 32507 .byte 0 32508 .byte 0 32509 .byte 0 32510 .byte 0 32511 .byte 5 32512 .byte -2 32513 .byte -1 32514 .byte 0 32515 .byte -3 32516 .byte -2 32517 .byte 6 32518 .byte -9 32519 .byte -12 32520 .byte -9 32521 .byte -7 32522 .byte -13 32523 .byte -12 32524 .byte -7 32525 .byte -6 32526 .byte -15 32527 .byte -15 32528 .byte -2 32529 .byte -12 32530 .byte -16 32531 .byte -6 32532 .byte -2 32533 .byte -19 32534 .byte -19 32535 .byte -6 32536 .byte -4 32537 .byte -12 32538 .byte -14 32539 .byte -2 32540 .byte -11 32541 .byte -23 32542 .byte -34 32543 .byte -4 32544 .byte -20 32545 .byte -22 32546 .byte -2 32547 .byte -7 32548 .byte -31 32549 .byte -30 32550 .byte -12 32551 .byte -20 32552 .byte -18 32553 .byte 2 32554 .byte -15 32555 .byte -19 32556 .byte -36 32557 .byte -12 32558 .byte -28 32559 .byte -34 32560 .byte -6 32561 .byte -15 32562 .byte -11 32563 .byte 2 32564 .byte -12 32565 .byte -8 32566 .byte -2 32567 .byte 2 32568 .byte -3 32569 .byte -7 32570 .byte -10 32571 .byte -4 32572 .byte -8 32573 .byte -6 32574 .byte -6 32575 .byte -11 32576 .byte -27 32577 .byte -38 32578 .byte -16 32579 .byte -12 32580 .byte -2 32581 .byte 2 32582 .byte -7 32583 .byte -31 32584 .byte -22 32585 .byte -4 32586 .byte -16 32587 .byte -22 32588 .byte -7 32589 .byte -31 32590 .byte -23 32591 .byte -22 32592 .byte -28 32593 .byte -28 32594 .byte -26 32595 .byte 2 32596 .byte -7 32597 .byte -11 32598 .byte -14 32599 .byte -8 32600 .byte -12 32601 .byte -10 32602 .byte -10 32603 .byte -27 32604 .byte -25 32605 .byte -22 32606 .byte -20 32607 .byte -28 32608 .byte -22 32609 .byte -7 32610 .byte -23 32611 .byte -29 32612 .byte -34 32613 .byte -24 32614 .byte -32 32615 .byte -22 32616 .byte -10 32617 .byte -11 32618 .byte -29 32619 .byte -18 32620 .byte -12 32621 .byte -24 32622 .byte -22 32623 .byte 6 32624 .byte 1 32625 .byte -3 32626 .byte -6 32627 .byte 0 32628 .byte -4 32629 .byte -2 32630 .byte 10 32631 .byte -3 32632 .byte -7 32633 .byte -6 32634 .byte 4 32635 .byte -4 32636 .byte -2 32637 .byte -10 32638 .byte -23 32639 .byte -39 32640 .byte -22 32641 .byte -19 32642 .byte -24 32643 .byte -18 32644 .byte -14 32645 .byte -23 32646 .byte -29 32647 .byte -30 32648 .byte -15 32649 .byte -30 32650 .byte -30 32651 .byte -7 32652 .byte -27 32653 .byte -35 32654 .byte -26 32655 .byte -15 32656 .byte -24 32657 .byte -26 32658 .byte 6 32659 .byte -11 32660 .byte 5 32661 .byte -2 32662 .byte -16 32663 .byte -16 32664 .byte -2 32665 .byte -2 32666 .byte -15 32667 .byte -15 32668 .byte -20 32669 .byte -8 32670 .byte -16 32671 .byte -18 32672 .byte 6 32673 .byte 5 32674 .byte -15 32675 .byte -2 32676 .byte -24 32677 .byte -28 32678 .byte -22 32679 .byte 10 32680 .byte -15 32681 .byte -3 32682 .byte -30 32683 .byte -8 32684 .byte -24 32685 .byte -30 32686 .byte -10 32687 .byte -27 32688 .byte -19 32689 .byte -30 32690 .byte -12 32691 .byte -16 32692 .byte -10 32693 .byte 14 32694 .byte -19 32695 .byte -3 32696 .byte -30 32697 .byte 4 32698 .byte 4 32699 .byte 6 32700 .byte 2 32701 .byte 1 32702 .byte -3 32703 .byte -10 32704 .byte -8 32705 .byte -4 32706 .byte -6 32707 .byte -2 32708 .byte -15 32709 .byte -11 32710 .byte -26 32711 .byte -8 32712 .byte -20 32713 .byte -30 32714 .byte 6 32715 .byte -19 32716 .byte -3 32717 .byte -46 32718 .byte 0 32719 .byte 0 32720 .byte 2 32721 .byte 6 32722 .byte 9 32723 .byte 5 32724 .byte 2 32725 .byte 4 32726 .byte 8 32727 .byte 6 32728 .byte 8 32729 .byte 9 32730 .byte 9 32731 .byte 6 32732 .byte 8 32733 .byte 8 32734 .byte 6 32735 .byte 10 32736 .byte 13 32737 .byte 9 32738 .byte 6 32739 .byte 8 32740 .byte 12 32741 .byte 10 32742 .byte 2 32743 .byte 5 32744 .byte 1 32745 .byte -2 32746 .byte 0 32747 .byte 0 32748 .byte 6 32749 .byte 12 32750 .byte 1 32751 .byte 13 32752 .byte 2 32753 .byte 12 32754 .byte 12 32755 .byte 14 32756 .byte -12 32757 .byte -14 32758 .byte -20 32759 .byte -18 32760 .byte -16 32761 .byte -16 32762 .byte -14 32763 .byte -12 32764 .byte -10 32765 .byte -21 32766 .byte -14 32767 .byte -12 32768 .byte -12 32769 .byte -10 32770 .byte -12 32771 .byte -18 32772 .byte -22 32773 .byte -24 32774 .byte -18 32775 .byte -18 32776 .byte -18 32777 .byte -12 32778 .byte -14 32779 .byte -23 32780 .byte -20 32781 .byte -20 32782 .byte -20 32783 .byte -20 32784 .byte -12 32785 .byte -24 32786 .byte -24 32787 .byte -30 32788 .byte -24 32789 .byte -28 32790 .byte -28 32791 .byte -12 32792 .byte -26 32793 .byte -25 32794 .byte -34 32795 .byte -24 32796 .byte -24 32797 .byte -24 32798 .byte -12 32799 .byte -13 32800 .byte -26 32801 .byte -20 32802 .byte -14 32803 .byte -18 32804 .byte -18 32805 .byte -12 32806 .byte -15 32807 .byte -27 32808 .byte -22 32809 .byte -20 32810 .byte -24 32811 .byte -22 32812 .byte -12 32813 .byte -21 32814 .byte -28 32815 .byte -28 32816 .byte -24 32817 .byte -26 32818 .byte -24 32819 .byte 20 32820 .byte 16 32821 .byte 6 32822 .byte 10 32823 .byte 16 32824 .byte 12 32825 .byte 12 32826 .byte 16 32827 .byte 16 32828 .byte 8 32829 .byte 8 32830 .byte 12 32831 .byte 12 32832 .byte 12 32833 .byte 18 32834 .byte 18 32835 .byte 10 32836 .byte 8 32837 .byte 14 32838 .byte 14 32839 .byte 14 32840 .byte 16 32841 .byte 14 32842 .byte 6 32843 .byte 6 32844 .byte 12 32845 .byte 14 32846 .byte 8 32847 .byte 20 32848 .byte 18 32849 .byte 8 32850 .byte 6 32851 .byte 14 32852 .byte 14 32853 .byte 10 32854 .byte 20 32855 .byte 20 32856 .byte 6 32857 .byte 10 32858 .byte 10 32859 .byte 12 32860 .byte 12 32861 .byte 10 32862 .byte 13 32863 .byte 5 32864 .byte 2 32865 .byte 14 32866 .byte 8 32867 .byte 6 32868 .byte 6 32869 .byte 13 32870 .byte 9 32871 .byte 4 32872 .byte 14 32873 .byte 10 32874 .byte 10 32875 .byte 10 32876 .byte 13 32877 .byte 9 32878 .byte 6 32879 .byte 8 32880 .byte 12 32881 .byte 10 32882 .byte 2 32883 .byte 5 32884 .byte 1 32885 .byte -2 32886 .byte 0 32887 .byte 0 32888 .byte 6 32889 .byte 12 32890 .byte 1 32891 .byte 13 32892 .byte 2 32893 .byte 12 32894 .byte 12 32895 .byte 14 32896 .section .rodata.toshiba_3d_read_retrial.str1.1,"aMS",@progbits,1 32897.LC111: 32898 .string "toshiba SRR %d row=%x, status=%d\n" 32899.LC112: 32900 .string "toshiba TRR %d row=%x, status=%d\n" 32901.LC113: 32902 .string "toshiba RR %d row=%x,count %d,status=%d\n" 32903 .section .rodata.toshiba_A19ref_value,"a",@progbits 32904 .align 3 32905 .set .LANCHOR15,. + 0 32906 .type toshiba_A19ref_value, %object 32907 .size toshiba_A19ref_value, 45 32908toshiba_A19ref_value: 32909 .byte 4 32910 .byte 5 32911 .byte 6 32912 .byte 7 32913 .byte 13 32914 .byte 0 32915 .byte 0 32916 .byte 0 32917 .byte 0 32918 .byte 0 32919 .byte 4 32920 .byte 4 32921 .byte 124 32922 .byte 126 32923 .byte 0 32924 .byte 0 32925 .byte 124 32926 .byte 120 32927 .byte 120 32928 .byte 0 32929 .byte 124 32930 .byte 118 32931 .byte 116 32932 .byte 114 32933 .byte 0 32934 .byte 8 32935 .byte 8 32936 .byte 0 32937 .byte 0 32938 .byte 0 32939 .byte 11 32940 .byte 126 32941 .byte 118 32942 .byte 116 32943 .byte 0 32944 .byte 16 32945 .byte 118 32946 .byte 114 32947 .byte 112 32948 .byte 0 32949 .byte 2 32950 .byte 0 32951 .byte 126 32952 .byte 124 32953 .byte 0 32954 .section .rodata.toshiba_ref_value,"a",@progbits 32955 .align 3 32956 .set .LANCHOR17,. + 0 32957 .type toshiba_ref_value, %object 32958 .size toshiba_ref_value, 8 32959toshiba_ref_value: 32960 .byte 0 32961 .byte 4 32962 .byte 124 32963 .byte 120 32964 .byte 116 32965 .byte 8 32966 .byte 12 32967 .byte 112 32968 .section .rodata.ymtc_3D_slc_value,"a",@progbits 32969 .align 3 32970 .set .LANCHOR42,. + 0 32971 .type ymtc_3D_slc_value, %object 32972 .size ymtc_3D_slc_value, 10 32973ymtc_3D_slc_value: 32974 .byte 0 32975 .byte -8 32976 .byte 8 32977 .byte -16 32978 .byte -20 32979 .byte 24 32980 .byte -26 32981 .byte 40 32982 .byte -12 32983 .byte 56 32984 .section .rodata.ymtc_3D_tlc_value,"a",@progbits 32985 .align 3 32986 .set .LANCHOR41,. + 0 32987 .type ymtc_3D_tlc_value, %object 32988 .size ymtc_3D_tlc_value, 357 32989ymtc_3D_tlc_value: 32990 .byte 0 32991 .byte 0 32992 .byte 0 32993 .byte 0 32994 .byte 0 32995 .byte 0 32996 .byte 0 32997 .byte -10 32998 .byte -10 32999 .byte -6 33000 .byte -6 33001 .byte -2 33002 .byte 2 33003 .byte 2 33004 .byte -6 33005 .byte -6 33006 .byte -4 33007 .byte -4 33008 .byte -4 33009 .byte -6 33010 .byte -8 33011 .byte 6 33012 .byte 0 33013 .byte 0 33014 .byte 0 33015 .byte 0 33016 .byte 0 33017 .byte 0 33018 .byte -2 33019 .byte -2 33020 .byte -2 33021 .byte -4 33022 .byte -4 33023 .byte -6 33024 .byte -6 33025 .byte -6 33026 .byte -6 33027 .byte -6 33028 .byte -6 33029 .byte -6 33030 .byte -6 33031 .byte -11 33032 .byte -2 33033 .byte 2 33034 .byte 4 33035 .byte 4 33036 .byte 6 33037 .byte 6 33038 .byte 6 33039 .byte -6 33040 .byte -6 33041 .byte -6 33042 .byte -6 33043 .byte -6 33044 .byte -8 33045 .byte -14 33046 .byte -6 33047 .byte -15 33048 .byte -11 33049 .byte 2 33050 .byte -12 33051 .byte -8 33052 .byte -2 33053 .byte 2 33054 .byte -3 33055 .byte -7 33056 .byte -10 33057 .byte -4 33058 .byte -8 33059 .byte -6 33060 .byte -18 33061 .byte -18 33062 .byte -14 33063 .byte -14 33064 .byte -10 33065 .byte -5 33066 .byte -5 33067 .byte -14 33068 .byte -14 33069 .byte -12 33070 .byte -12 33071 .byte -12 33072 .byte -13 33073 .byte -15 33074 .byte -2 33075 .byte -8 33076 .byte -8 33077 .byte -8 33078 .byte -8 33079 .byte -7 33080 .byte -7 33081 .byte -10 33082 .byte -10 33083 .byte -10 33084 .byte -12 33085 .byte -12 33086 .byte -13 33087 .byte -13 33088 .byte -14 33089 .byte -14 33090 .byte -14 33091 .byte -14 33092 .byte -14 33093 .byte -13 33094 .byte -18 33095 .byte -10 33096 .byte -6 33097 .byte -4 33098 .byte -4 33099 .byte -2 33100 .byte -1 33101 .byte -1 33102 .byte -14 33103 .byte -14 33104 .byte -14 33105 .byte -14 33106 .byte -14 33107 .byte -15 33108 .byte -21 33109 .byte -12 33110 .byte -11 33111 .byte -7 33112 .byte -7 33113 .byte -3 33114 .byte 1 33115 .byte 1 33116 .byte -8 33117 .byte -7 33118 .byte -5 33119 .byte -5 33120 .byte -5 33121 .byte -7 33122 .byte -9 33123 .byte 4 33124 .byte -1 33125 .byte -1 33126 .byte -1 33127 .byte -1 33128 .byte -1 33129 .byte -1 33130 .byte -4 33131 .byte -3 33132 .byte -3 33133 .byte -5 33134 .byte -5 33135 .byte -7 33136 .byte -7 33137 .byte -8 33138 .byte -7 33139 .byte -7 33140 .byte -7 33141 .byte -7 33142 .byte -7 33143 .byte -12 33144 .byte -4 33145 .byte 1 33146 .byte 3 33147 .byte 3 33148 .byte 5 33149 .byte 5 33150 .byte 5 33151 .byte -8 33152 .byte -7 33153 .byte -7 33154 .byte -7 33155 .byte -7 33156 .byte -9 33157 .byte -15 33158 .byte 2 33159 .byte -7 33160 .byte -11 33161 .byte -14 33162 .byte -8 33163 .byte -12 33164 .byte -10 33165 .byte 6 33166 .byte 1 33167 .byte -3 33168 .byte -6 33169 .byte 0 33170 .byte -4 33171 .byte -2 33172 .byte 10 33173 .byte -3 33174 .byte -7 33175 .byte -6 33176 .byte 4 33177 .byte -4 33178 .byte -2 33179 .byte -10 33180 .byte -23 33181 .byte -39 33182 .byte -22 33183 .byte -19 33184 .byte -24 33185 .byte -18 33186 .byte -7 33187 .byte -27 33188 .byte -35 33189 .byte -26 33190 .byte -15 33191 .byte -24 33192 .byte -26 33193 .byte 6 33194 .byte -11 33195 .byte 5 33196 .byte -2 33197 .byte -16 33198 .byte -16 33199 .byte -2 33200 .byte -2 33201 .byte -15 33202 .byte -15 33203 .byte -20 33204 .byte -8 33205 .byte -16 33206 .byte -18 33207 .byte 2 33208 .byte 1 33209 .byte -3 33210 .byte -10 33211 .byte -8 33212 .byte -4 33213 .byte -6 33214 .byte -2 33215 .byte -15 33216 .byte -11 33217 .byte -26 33218 .byte -8 33219 .byte -20 33220 .byte -30 33221 .byte 6 33222 .byte -19 33223 .byte -3 33224 .byte -46 33225 .byte 0 33226 .byte 0 33227 .byte 2 33228 .byte 6 33229 .byte 9 33230 .byte 5 33231 .byte 2 33232 .byte 4 33233 .byte 8 33234 .byte 6 33235 .byte 8 33236 .byte 9 33237 .byte 9 33238 .byte 6 33239 .byte 8 33240 .byte 8 33241 .byte 6 33242 .byte 10 33243 .byte 13 33244 .byte 9 33245 .byte 6 33246 .byte 8 33247 .byte 12 33248 .byte 10 33249 .byte 2 33250 .byte 5 33251 .byte 1 33252 .byte -2 33253 .byte 0 33254 .byte 0 33255 .byte 6 33256 .byte 12 33257 .byte 1 33258 .byte 13 33259 .byte 2 33260 .byte 12 33261 .byte 12 33262 .byte 14 33263 .byte -12 33264 .byte -14 33265 .byte -20 33266 .byte -18 33267 .byte -16 33268 .byte -16 33269 .byte -14 33270 .byte -12 33271 .byte -10 33272 .byte -21 33273 .byte -14 33274 .byte -12 33275 .byte -12 33276 .byte -10 33277 .byte -12 33278 .byte -18 33279 .byte -22 33280 .byte -24 33281 .byte -18 33282 .byte -18 33283 .byte -18 33284 .byte -12 33285 .byte -14 33286 .byte -23 33287 .byte -20 33288 .byte -20 33289 .byte -20 33290 .byte -20 33291 .byte 16 33292 .byte 16 33293 .byte 8 33294 .byte 8 33295 .byte 12 33296 .byte 12 33297 .byte 12 33298 .byte 18 33299 .byte 18 33300 .byte 10 33301 .byte 8 33302 .byte 14 33303 .byte 14 33304 .byte 14 33305 .byte 16 33306 .byte 14 33307 .byte 6 33308 .byte 6 33309 .byte 12 33310 .byte 14 33311 .byte 8 33312 .byte 10 33313 .byte 13 33314 .byte 5 33315 .byte 2 33316 .byte 14 33317 .byte 8 33318 .byte 6 33319 .byte 6 33320 .byte 13 33321 .byte 9 33322 .byte 4 33323 .byte 14 33324 .byte 10 33325 .byte 10 33326 .byte 10 33327 .byte 13 33328 .byte 9 33329 .byte 6 33330 .byte 8 33331 .byte 12 33332 .byte 10 33333 .byte 2 33334 .byte 5 33335 .byte 1 33336 .byte -2 33337 .byte 0 33338 .byte 0 33339 .byte 6 33340 .byte 12 33341 .byte 1 33342 .byte 13 33343 .byte 2 33344 .byte 12 33345 .byte 12 33346 .byte 14 33347 .section .rodata.ymtc_3d_read_retrial.str1.1,"aMS",@progbits,1 33348.LC114: 33349 .string "YMTC RR %d row=%x,count %d,status=%d\n" 33350 .section .rodata.ymtc_flash_tlc_page_prog.str1.1,"aMS",@progbits,1 33351.LC128: 33352 .string "ymtc_flash_tlc_page_prog page_addr = %x status = %x\n" 33353 .section .rodata.zftl_discard.str1.1,"aMS",@progbits,1 33354.LC236: 33355 .string "ftl_discard:(%x, %x, %x, %x)\n" 33356 .section .rodata.zftl_do_gc.str1.1,"aMS",@progbits,1 33357.LC233: 33358 .string "gc %d: %d %d %d %d %d %d %d\n" 33359.LC234: 33360 .string "GC_STATE_SCAN_ALL_PAGE = %x, vpn0 = %d, vpn1 = %d\n" 33361.LC235: 33362 .string "gc free %x, %d\n" 33363 .section .rodata.zftl_gc_get_free_sblk.str1.1,"aMS",@progbits,1 33364.LC59: 33365 .string "swl_tlc_free_mini_ec_blk alloc sblk %x\n" 33366.LC60: 33367 .string "zftl_get_free_sblk %x %d, %p %d %d\n" 33368.LC61: 33369 .string "zftl_gc_get_free_sblk %x %x %x, %d %d %d\n" 33370 .section .rodata.zftl_get_free_sblk.str1.1,"aMS",@progbits,1 33371.LC62: 33372 .string "swl_slc_free_mini_ec_blk alloc sblk %x\n" 33373 .section .rodata.zftl_init.str1.1,"aMS",@progbits,1 33374.LC196: 33375 .string "FTL version: 6.0.24 20210615" 33376.LC197: 33377 .string "_c_user_data_density := %d\n" 33378.LC198: 33379 .string "_c_totle_phy_density := %d\n" 33380.LC199: 33381 .string "_c_totle_log_page := %d\n" 33382.LC200: 33383 .string "_c_totle_data_density := %d\n" 33384.LC201: 33385 .string "_c_ftl_pm_page_num := %d\n" 33386.LC202: 33387 .string "_c_ftl_byte_pre_page := %d\n" 33388.LC203: 33389 .string "_c_max_pm_sblk := %d\n" 33390.LC204: 33391 .string "_min_slc_super_block := %d\n" 33392.LC205: 33393 .string "_max_xlc_super_block := %d\n" 33394.LC206: 33395 .string "gp_ftl_ext_info %p %p %p\n" 33396.LC207: 33397 .string "flash info size: %d %d %d\n" 33398 .section .rodata.zftl_read.str1.1,"aMS",@progbits,1 33399.LC221: 33400 .string "ftl_read %x %x %x\n" 33401.LC222: 33402 .string "ftl_read refresh =%x, lpa = %x, ppa= %x\n" 33403.LC223: 33404 .string "id=%d, status = %x, lpa = %x, ppa = %x spare = %x %x %x %x\n" 33405 .section .rodata.zftl_sblk_list_init.str1.1,"aMS",@progbits,1 33406.LC88: 33407 .string "free blk vpn error: %x %x\n" 33408 .section .rodata.zftl_write.str1.1,"aMS",@progbits,1 33409.LC230: 33410 .string "ftlwrite %x %x %x %x\n" 33411