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: 2020-09-23 9 */ 10 .arch armv8-a 11 .file "rk_ftl_arm_v8.S" 12 .section .text.flash_read_ecc,"ax",@progbits 13 .align 2 14 .type flash_read_ecc, %function 15flash_read_ecc: 16 ubfiz x0, x0, 4, 8 17 adrp x1, .LANCHOR0 18 add x1, x1, :lo12:.LANCHOR0 19 stp x29, x30, [sp, -32]! 20 add x2, x1, x0 21 add x29, sp, 0 22 ldr x0, [x1, x0] 23 str x19, [sp, 16] 24 ldrb w19, [x2, 8] 25 add x19, x0, x19, lsl 8 26 mov w0, 122 27 str w0, [x19, 2056] 28 mov x0, 80 29 bl udelay 30 ldr w1, [x19, 2048] 31 ldr w0, [x19, 2048] 32 and w1, w1, 15 33 and w0, w0, 15 34 cmp w1, w0 35 csel w1, w1, w0, cs 36 ldr w0, [x19, 2048] 37 ldr w2, [x19, 2048] 38 and w0, w0, 15 39 ldr x19, [sp, 16] 40 and w2, w2, 15 41 cmp w0, w2 42 csel w0, w0, w2, cs 43 cmp w0, w1 44 csel w0, w0, w1, cs 45 ldp x29, x30, [sp], 32 46 ret 47 .size flash_read_ecc, .-flash_read_ecc 48 .section .text.ftl_set_blk_mode.part.11,"ax",@progbits 49 .align 2 50 .type ftl_set_blk_mode.part.11, %function 51ftl_set_blk_mode.part.11: 52 and w0, w0, 65535 53 adrp x2, .LANCHOR1 54 ubfx x1, x0, 5, 11 55 ldr x3, [x2, #:lo12:.LANCHOR1] 56 lsl x1, x1, 2 57 and w0, w0, 31 58 mov w2, 1 59 lsl w2, w2, w0 60 ldr w0, [x3, x1] 61 orr w0, w0, w2 62 str w0, [x3, x1] 63 ret 64 .size ftl_set_blk_mode.part.11, .-ftl_set_blk_mode.part.11 65 .section .text.FlashMemCmp8,"ax",@progbits 66 .align 2 67 .global FlashMemCmp8 68 .type FlashMemCmp8, %function 69FlashMemCmp8: 70 adrp x3, .LANCHOR2 71 ldrb w3, [x3, #:lo12:.LANCHOR2] 72 cbz w3, .L9 73 ldrb w4, [x0, 1] 74 ldrb w3, [x1, 1] 75 cmp w4, w3 76 beq .L10 77.L9: 78 mov x3, 0 79.L7: 80 mov w4, w3 81 cmp w3, w2 82 bcc .L8 83.L10: 84 mov w0, 0 85 ret 86.L8: 87 ldrb w5, [x0, x3] 88 add x3, x3, 1 89 add x6, x1, x3 90 ldrb w6, [x6, -1] 91 cmp w6, w5 92 beq .L7 93 add w0, w4, 1 94 ret 95 .size FlashMemCmp8, .-FlashMemCmp8 96 .section .text.FlashRsvdBlkChk,"ax",@progbits 97 .align 2 98 .global FlashRsvdBlkChk 99 .type FlashRsvdBlkChk, %function 100FlashRsvdBlkChk: 101 adrp x2, .LANCHOR3 102 adrp x3, .LANCHOR4 103 and w0, w0, 255 104 ldrb w2, [x2, #:lo12:.LANCHOR3] 105 ldr w3, [x3, #:lo12:.LANCHOR4] 106 mul w2, w2, w3 107 cmp w2, w1 108 bls .L14 109 cmp w0, 0 110 cset w0, ne 111 ret 112.L14: 113 mov w0, 1 114 ret 115 .size FlashRsvdBlkChk, .-FlashRsvdBlkChk 116 .section .text.FlashGetRandomizer,"ax",@progbits 117 .align 2 118 .global FlashGetRandomizer 119 .type FlashGetRandomizer, %function 120FlashGetRandomizer: 121 and x3, x1, 127 122 adrp x2, .LANCHOR5 123 add x2, x2, :lo12:.LANCHOR5 124 ldrh w4, [x2, x3, lsl 1] 125 adrp x2, .LANCHOR6 126 ldrb w2, [x2, #:lo12:.LANCHOR6] 127 cbz w2, .L23 128 stp x29, x30, [sp, -16]! 129 and w0, w0, 255 130 add x29, sp, 0 131 bl FlashRsvdBlkChk 132 cmp w0, 0 133 orr w1, w4, -1073741824 134 csel w4, w1, w4, ne 135 mov w0, w4 136 ldp x29, x30, [sp], 16 137 ret 138.L23: 139 mov w0, w4 140 ret 141 .size FlashGetRandomizer, .-FlashGetRandomizer 142 .section .text.FlashSetRandomizer,"ax",@progbits 143 .align 2 144 .global FlashSetRandomizer 145 .type FlashSetRandomizer, %function 146FlashSetRandomizer: 147 and w5, w0, 255 148 and x2, x1, 127 149 adrp x0, .LANCHOR5 150 add x0, x0, :lo12:.LANCHOR5 151 ldrh w4, [x0, x2, lsl 1] 152 adrp x0, .LANCHOR6 153 ldrb w0, [x0, #:lo12:.LANCHOR6] 154 cbz w0, .L34 155 stp x29, x30, [sp, -16]! 156 mov w0, w5 157 add x29, sp, 0 158 bl FlashRsvdBlkChk 159 cmp w0, 0 160 sbfiz x5, x5, 4, 32 161 adrp x0, .LANCHOR0 162 add x0, x0, :lo12:.LANCHOR0 163 orr w1, w4, -1073741824 164 csel w4, w1, w4, ne 165 ldr x0, [x0, x5] 166 str w4, [x0, 336] 167 ldp x29, x30, [sp], 16 168 ret 169.L34: 170 sbfiz x5, x5, 4, 32 171 adrp x0, .LANCHOR0 172 add x0, x0, :lo12:.LANCHOR0 173 ldr x0, [x0, x5] 174 str w4, [x0, 336] 175 ret 176 .size FlashSetRandomizer, .-FlashSetRandomizer 177 .section .text.FlashBlockAlignInit,"ax",@progbits 178 .align 2 179 .global FlashBlockAlignInit 180 .type FlashBlockAlignInit, %function 181FlashBlockAlignInit: 182 and w0, w0, 65535 183 adrp x1, .LANCHOR4 184 cmp w0, 512 185 bls .L38 186 mov w0, 1024 187.L42: 188 str w0, [x1, #:lo12:.LANCHOR4] 189 ret 190.L38: 191 cmp w0, 256 192 bls .L40 193 mov w0, 512 194 b .L42 195.L40: 196 cmp w0, 128 197 bls .L42 198 mov w0, 256 199 b .L42 200 .size FlashBlockAlignInit, .-FlashBlockAlignInit 201 .section .text.FlashReadCmd,"ax",@progbits 202 .align 2 203 .global FlashReadCmd 204 .type FlashReadCmd, %function 205FlashReadCmd: 206 and w0, w0, 255 207 adrp x2, .LANCHOR0 208 sbfiz x3, x0, 4, 32 209 add x2, x2, :lo12:.LANCHOR0 210 add x4, x2, x3 211 ldr x2, [x2, x3] 212 adrp x3, .LANCHOR7 213 ldrb w4, [x4, 8] 214 ldr x3, [x3, #:lo12:.LANCHOR7] 215 ldrb w3, [x3, 7] 216 cmp w3, 1 217 bne .L44 218 sxtw x3, w4 219 mov w5, 38 220 add x3, x3, 8 221 add x3, x2, x3, lsl 8 222 str w5, [x3, 8] 223.L44: 224 ubfiz x4, x4, 8, 8 225 and w3, w1, 255 226 add x2, x2, x4 227 str wzr, [x2, 2056] 228 str wzr, [x2, 2052] 229 str wzr, [x2, 2052] 230 str w3, [x2, 2052] 231 lsr w3, w1, 8 232 str w3, [x2, 2052] 233 lsr w3, w1, 16 234 str w3, [x2, 2052] 235 mov w3, 48 236 str w3, [x2, 2056] 237 b FlashSetRandomizer 238 .size FlashReadCmd, .-FlashReadCmd 239 .section .text.FlashReadDpDataOutCmd,"ax",@progbits 240 .align 2 241 .global FlashReadDpDataOutCmd 242 .type FlashReadDpDataOutCmd, %function 243FlashReadDpDataOutCmd: 244 and w0, w0, 255 245 adrp x2, .LANCHOR0 246 sbfiz x3, x0, 4, 32 247 add x2, x2, :lo12:.LANCHOR0 248 add x4, x2, x3 249 and w5, w1, 255 250 ldr x6, [x2, x3] 251 adrp x2, .LANCHOR8+16 252 lsr w3, w1, 16 253 ldrb w2, [x2, #:lo12:.LANCHOR8+16] 254 cmp w2, 1 255 ldrb w2, [x4, 8] 256 lsr w4, w1, 8 257 add x2, x6, x2, lsl 8 258 bne .L46 259 mov w6, 6 260 str w6, [x2, 2056] 261 str wzr, [x2, 2052] 262 str wzr, [x2, 2052] 263 str w5, [x2, 2052] 264 str w4, [x2, 2052] 265 str w3, [x2, 2052] 266.L48: 267 mov w3, 224 268 str w3, [x2, 2056] 269 b FlashSetRandomizer 270.L46: 271 str wzr, [x2, 2056] 272 str wzr, [x2, 2052] 273 str wzr, [x2, 2052] 274 str w5, [x2, 2052] 275 str w4, [x2, 2052] 276 str w3, [x2, 2052] 277 mov w3, 5 278 str w3, [x2, 2056] 279 str wzr, [x2, 2052] 280 str wzr, [x2, 2052] 281 b .L48 282 .size FlashReadDpDataOutCmd, .-FlashReadDpDataOutCmd 283 .section .text.FlashProgFirstCmd,"ax",@progbits 284 .align 2 285 .global FlashProgFirstCmd 286 .type FlashProgFirstCmd, %function 287FlashProgFirstCmd: 288 and w0, w0, 255 289 adrp x4, .LANCHOR0 290 sbfiz x5, x0, 4, 32 291 add x4, x4, :lo12:.LANCHOR0 292 add x2, x4, x5 293 lsr w3, w1, 16 294 ldr x4, [x4, x5] 295 ldrb w2, [x2, 8] 296 add x2, x4, x2, lsl 8 297 mov w4, 128 298 str w4, [x2, 2056] 299 and w4, w1, 255 300 str wzr, [x2, 2052] 301 str wzr, [x2, 2052] 302 str w4, [x2, 2052] 303 lsr w4, w1, 8 304 str w4, [x2, 2052] 305 str w3, [x2, 2052] 306 b FlashSetRandomizer 307 .size FlashProgFirstCmd, .-FlashProgFirstCmd 308 .section .text.FlashEraseCmd,"ax",@progbits 309 .align 2 310 .global FlashEraseCmd 311 .type FlashEraseCmd, %function 312FlashEraseCmd: 313 ubfiz x0, x0, 4, 8 314 adrp x3, .LANCHOR0 315 add x3, x3, :lo12:.LANCHOR0 316 add x4, x3, x0 317 ldr x3, [x3, x0] 318 ldrb w0, [x4, 8] 319 cbz w2, .L51 320 add x2, x3, x0, lsl 8 321 mov w4, 96 322 str w4, [x2, 2056] 323 and w4, w1, 255 324 str w4, [x2, 2052] 325 lsr w4, w1, 8 326 str w4, [x2, 2052] 327 lsr w4, w1, 16 328 str w4, [x2, 2052] 329 adrp x2, .LANCHOR4 330 ldr w2, [x2, #:lo12:.LANCHOR4] 331 add w1, w1, w2 332.L51: 333 add x0, x3, x0, lsl 8 334 mov w2, 96 335 str w2, [x0, 2056] 336 and w2, w1, 255 337 str w2, [x0, 2052] 338 lsr w2, w1, 8 339 str w2, [x0, 2052] 340 lsr w1, w1, 16 341 str w1, [x0, 2052] 342 mov w1, 208 343 str w1, [x0, 2056] 344 ret 345 .size FlashEraseCmd, .-FlashEraseCmd 346 .section .text.FlashProgDpSecondCmd,"ax",@progbits 347 .align 2 348 .global FlashProgDpSecondCmd 349 .type FlashProgDpSecondCmd, %function 350FlashProgDpSecondCmd: 351 and w0, w0, 255 352 adrp x2, .LANCHOR8+11 353 sbfiz x5, x0, 4, 32 354 adrp x4, .LANCHOR0 355 add x4, x4, :lo12:.LANCHOR0 356 ldrb w6, [x2, #:lo12:.LANCHOR8+11] 357 add x2, x4, x5 358 lsr w3, w1, 16 359 ldr x4, [x4, x5] 360 ldrb w2, [x2, 8] 361 add x2, x4, x2, lsl 8 362 and w4, w1, 255 363 str w6, [x2, 2056] 364 str wzr, [x2, 2052] 365 str wzr, [x2, 2052] 366 str w4, [x2, 2052] 367 lsr w4, w1, 8 368 str w4, [x2, 2052] 369 str w3, [x2, 2052] 370 b FlashSetRandomizer 371 .size FlashProgDpSecondCmd, .-FlashProgDpSecondCmd 372 .section .text.FlashProgSecondCmd,"ax",@progbits 373 .align 2 374 .global FlashProgSecondCmd 375 .type FlashProgSecondCmd, %function 376FlashProgSecondCmd: 377 ubfiz x0, x0, 4, 8 378 adrp x1, .LANCHOR0 379 add x1, x1, :lo12:.LANCHOR0 380 add x2, x1, x0 381 ldr x1, [x1, x0] 382 ldrb w0, [x2, 8] 383 add x0, x0, 8 384 add x0, x1, x0, lsl 8 385 mov w1, 16 386 str w1, [x0, 8] 387 ret 388 .size FlashProgSecondCmd, .-FlashProgSecondCmd 389 .section .text.FlashProgDpFirstCmd,"ax",@progbits 390 .align 2 391 .global FlashProgDpFirstCmd 392 .type FlashProgDpFirstCmd, %function 393FlashProgDpFirstCmd: 394 ubfiz x0, x0, 4, 8 395 adrp x1, .LANCHOR0 396 add x1, x1, :lo12:.LANCHOR0 397 add x3, x1, x0 398 ldr x2, [x1, x0] 399 adrp x0, .LANCHOR8+10 400 ldrb w1, [x0, #:lo12:.LANCHOR8+10] 401 ldrb w0, [x3, 8] 402 add x0, x0, 8 403 add x0, x2, x0, lsl 8 404 str w1, [x0, 8] 405 ret 406 .size FlashProgDpFirstCmd, .-FlashProgDpFirstCmd 407 .section .text.FlashReadStatus,"ax",@progbits 408 .align 2 409 .global FlashReadStatus 410 .type FlashReadStatus, %function 411FlashReadStatus: 412 ubfiz x0, x0, 4, 8 413 adrp x1, .LANCHOR0 414 add x1, x1, :lo12:.LANCHOR0 415 stp x29, x30, [sp, -32]! 416 add x2, x1, x0 417 add x29, sp, 0 418 ldr x0, [x1, x0] 419 str x19, [sp, 16] 420 ldrb w19, [x2, 8] 421 add x19, x0, x19, lsl 8 422 mov w0, 112 423 str w0, [x19, 2056] 424 mov x0, 80 425 bl udelay 426 ldr w0, [x19, 2048] 427 ldr x19, [sp, 16] 428 ldp x29, x30, [sp], 32 429 ret 430 .size FlashReadStatus, .-FlashReadStatus 431 .section .text.js_hash,"ax",@progbits 432 .align 2 433 .global js_hash 434 .type js_hash, %function 435js_hash: 436 mov x4, x0 437 mov w0, 42982 438 mov x3, 0 439 movk w0, 0x47c6, lsl 16 440.L61: 441 cmp w1, w3 442 bhi .L62 443 ret 444.L62: 445 lsr w2, w0, 2 446 ldrb w5, [x4, x3] 447 add w2, w2, w0, lsl 5 448 add x3, x3, 1 449 add w2, w2, w5 450 eor w0, w0, w2 451 b .L61 452 .size js_hash, .-js_hash 453 .section .text.FlashLoadIdbInfo,"ax",@progbits 454 .align 2 455 .global FlashLoadIdbInfo 456 .type FlashLoadIdbInfo, %function 457FlashLoadIdbInfo: 458 mov w0, 0 459 ret 460 .size FlashLoadIdbInfo, .-FlashLoadIdbInfo 461 .section .text.FlashPrintInfo,"ax",@progbits 462 .align 2 463 .global FlashPrintInfo 464 .type FlashPrintInfo, %function 465FlashPrintInfo: 466 ret 467 .size FlashPrintInfo, .-FlashPrintInfo 468 .section .text.ToshibaSetRRPara,"ax",@progbits 469 .align 2 470 .global ToshibaSetRRPara 471 .type ToshibaSetRRPara, %function 472ToshibaSetRRPara: 473 stp x29, x30, [sp, -96]! 474 add x29, sp, 0 475 str x27, [sp, 80] 476 and w27, w1, 255 477 add w2, w27, 1 478 stp x21, x22, [sp, 32] 479 mov x21, x0 480 mov w0, 5 481 stp x19, x20, [sp, 16] 482 adrp x20, .LANCHOR9 483 umull x2, w2, w0 484 stp x23, x24, [sp, 48] 485 adrp x0, .LANCHOR10 486 add x20, x20, :lo12:.LANCHOR9 487 add x24, x0, :lo12:.LANCHOR10 488 stp x25, x26, [sp, 64] 489 adrp x23, .LANCHOR13 490 adrp x25, .LANCHOR11 491 adrp x26, .LANCHOR12 492 add x23, x23, :lo12:.LANCHOR13 493 add x25, x25, :lo12:.LANCHOR11 494 add x26, x26, :lo12:.LANCHOR12 495 add x20, x20, x2 496 add x24, x24, x2 497 mov x22, x0 498 mov x19, 0 499.L66: 500 ldrb w0, [x23] 501 cmp w0, w19 502 bhi .L70 503 ldp x19, x20, [sp, 16] 504 ldp x21, x22, [sp, 32] 505 ldp x23, x24, [sp, 48] 506 ldp x25, x26, [sp, 64] 507 ldr x27, [sp, 80] 508 ldp x29, x30, [sp], 96 509 ret 510.L70: 511 mov w0, 85 512 str w0, [x21, 8] 513 add x0, x22, :lo12:.LANCHOR10 514 ldrsb w0, [x19, x0] 515 str w0, [x21, 4] 516 mov x0, 200 517 bl udelay 518 ldrb w0, [x25] 519 cmp w0, 34 520 bne .L67 521 ldrsb w0, [x24, x19] 522.L72: 523 add x19, x19, 1 524 str w0, [x21] 525 b .L66 526.L67: 527 cmp w0, 35 528 bne .L69 529 ldrsb w0, [x20, x19] 530 b .L72 531.L69: 532 ldrsb w0, [x26, w27, sxtw] 533 b .L72 534 .size ToshibaSetRRPara, .-ToshibaSetRRPara 535 .section .text.SamsungSetRRPara,"ax",@progbits 536 .align 2 537 .global SamsungSetRRPara 538 .type SamsungSetRRPara, %function 539SamsungSetRRPara: 540 stp x29, x30, [sp, -64]! 541 add x29, sp, 0 542 stp x21, x22, [sp, 32] 543 ubfiz x21, x1, 2, 8 544 mov x22, x0 545 add x21, x21, 4 546 adrp x0, .LANCHOR14 547 add x0, x0, :lo12:.LANCHOR14 548 stp x19, x20, [sp, 16] 549 add x21, x0, x21 550 stp x23, x24, [sp, 48] 551 mov x19, x0 552 adrp x23, .LANCHOR13 553 add x23, x23, :lo12:.LANCHOR13 554 mov x20, 0 555 mov w24, 161 556.L74: 557 ldrb w0, [x23] 558 cmp w0, w20 559 bhi .L75 560 ldp x19, x20, [sp, 16] 561 ldp x21, x22, [sp, 32] 562 ldp x23, x24, [sp, 48] 563 ldp x29, x30, [sp], 64 564 ret 565.L75: 566 str w24, [x22, 8] 567 str wzr, [x22] 568 ldrsb w0, [x20, x19] 569 str w0, [x22] 570 ldrsb w0, [x21, x20] 571 add x20, x20, 1 572 str w0, [x22] 573 mov x0, 300 574 bl udelay 575 b .L74 576 .size SamsungSetRRPara, .-SamsungSetRRPara 577 .section .text.LogAddr2PhyAddr,"ax",@progbits 578 .align 2 579 .global LogAddr2PhyAddr 580 .type LogAddr2PhyAddr, %function 581LogAddr2PhyAddr: 582 adrp x6, .LANCHOR15 583 add x6, x6, :lo12:.LANCHOR15 584 and w4, w4, 255 585 ldrh w8, [x6, 12] 586 ldrh w5, [x6, 14] 587 mul w5, w5, w8 588 and w8, w5, 65535 589 adrp x5, .LANCHOR4 590 ldrh w7, [x5, #:lo12:.LANCHOR4] 591 adrp x5, .LANCHOR2 592 ldrb w6, [x5, #:lo12:.LANCHOR2] 593 ubfiz w5, w7, 1, 15 594 cmp w6, 1 595 ldr w6, [x0, 4] 596 csel w7, w5, w7, eq 597 cmp w1, 1 598 ubfx x11, x6, 10, 16 599 and w6, w6, 1023 600 udiv w5, w11, w8 601 and w10, w5, 65535 602 msub w5, w5, w8, w11 603 and w5, w5, 65535 604 bne .L79 605 adrp x1, .LANCHOR16 606 ldrb w1, [x1, #:lo12:.LANCHOR16] 607 cbnz w1, .L79 608 adrp x1, .LANCHOR17 609 add x1, x1, :lo12:.LANCHOR17 610 ldrh w6, [x1, w6, sxtw 1] 611.L79: 612 uxtw x8, w10 613 adrp x1, .LANCHOR18 614 add x1, x1, :lo12:.LANCHOR18 615 cmp w4, 1 616 ldr w1, [x1, x8, lsl 2] 617 madd w5, w5, w7, w1 618 add w5, w5, w6 619 str w5, [x2] 620 str w10, [x3] 621 bls .L81 622 ldr w1, [x0, 4] 623 ldr w0, [x0, 60] 624 add w1, w1, 1024 625 cmp w1, w0 626 cset w0, eq 627 ret 628.L81: 629 mov w0, 0 630 ret 631 .size LogAddr2PhyAddr, .-LogAddr2PhyAddr 632 .section .text.FlashReadStatusEN,"ax",@progbits 633 .align 2 634 .global FlashReadStatusEN 635 .type FlashReadStatusEN, %function 636FlashReadStatusEN: 637 stp x29, x30, [sp, -32]! 638 ubfiz x0, x0, 4, 8 639 adrp x3, .LANCHOR0 640 add x3, x3, :lo12:.LANCHOR0 641 add x29, sp, 0 642 stp x19, x20, [sp, 16] 643 add x4, x3, x0 644 ldr x20, [x3, x0] 645 adrp x0, .LANCHOR7 646 ldr x0, [x0, #:lo12:.LANCHOR7] 647 ldrb w19, [x4, 8] 648 ldrb w0, [x0, 8] 649 cmp w0, 2 650 bne .L83 651 and w2, w2, 255 652 adrp x0, .LANCHOR8 653 cbnz w2, .L84 654 add x2, x0, :lo12:.LANCHOR8 655 ldrb w3, [x2, 13] 656.L94: 657 add x2, x19, 8 658 add x0, x0, :lo12:.LANCHOR8 659 add x2, x20, x2, lsl 8 660 str w3, [x2, 8] 661 ldrb w4, [x0, 15] 662 cbz w4, .L88 663 add x3, x19, 8 664 mov w2, 0 665 add x3, x20, x3, lsl 8 666.L87: 667 cmp w2, w4 668 bcc .L89 669.L88: 670 add x19, x19, 8 671 mov x0, 80 672 lsl x19, x19, 8 673 bl udelay 674 ldr w0, [x20, x19] 675 ldp x19, x20, [sp, 16] 676 and w0, w0, 255 677 ldp x29, x30, [sp], 32 678 ret 679.L84: 680 add x2, x0, :lo12:.LANCHOR8 681 ldrb w3, [x2, 14] 682 b .L94 683.L89: 684 lsl w0, w2, 3 685 add w2, w2, 1 686 lsr w0, w1, w0 687 and w0, w0, 255 688 str w0, [x3, 4] 689 b .L87 690.L83: 691 add x0, x19, 8 692 mov w1, 112 693 add x0, x20, x0, lsl 8 694 str w1, [x0, 8] 695 b .L88 696 .size FlashReadStatusEN, .-FlashReadStatusEN 697 .section .text.FlashWaitReadyEN,"ax",@progbits 698 .align 2 699 .global FlashWaitReadyEN 700 .type FlashWaitReadyEN, %function 701FlashWaitReadyEN: 702 stp x29, x30, [sp, -48]! 703 add x29, sp, 0 704 stp x19, x20, [sp, 16] 705 and w19, w0, 255 706 str x21, [sp, 32] 707 mov w20, w1 708 and w21, w2, 255 709.L99: 710 mov w1, w20 711 mov w2, w21 712 mov w0, w19 713 bl FlashReadStatusEN 714 mov w1, w0 715 cmp w0, 255 716 beq .L99 717 tbz x1, 6, .L99 718 ldp x19, x20, [sp, 16] 719 ldr x21, [sp, 32] 720 ldp x29, x30, [sp], 48 721 ret 722 .size FlashWaitReadyEN, .-FlashWaitReadyEN 723 .section .text.NandcReadDontCaseBusyEn,"ax",@progbits 724 .align 2 725 .global NandcReadDontCaseBusyEn 726 .type NandcReadDontCaseBusyEn, %function 727NandcReadDontCaseBusyEn: 728 ret 729 .size NandcReadDontCaseBusyEn, .-NandcReadDontCaseBusyEn 730 .section .text.NandcGetChipIf,"ax",@progbits 731 .align 2 732 .global NandcGetChipIf 733 .type NandcGetChipIf, %function 734NandcGetChipIf: 735 ubfiz x0, x0, 4, 8 736 adrp x1, .LANCHOR0 737 add x1, x1, :lo12:.LANCHOR0 738 add x2, x1, x0 739 ldr x0, [x1, x0] 740 ldrb w2, [x2, 8] 741 add x2, x2, 8 742 add x0, x0, x2, lsl 8 743 ret 744 .size NandcGetChipIf, .-NandcGetChipIf 745 .section .text.NandcSetDdrPara,"ax",@progbits 746 .align 2 747 .global NandcSetDdrPara 748 .type NandcSetDdrPara, %function 749NandcSetDdrPara: 750 adrp x1, .LANCHOR19 751 and w0, w0, 255 752 lsl w2, w0, 8 753 ldr x1, [x1, #:lo12:.LANCHOR19] 754 orr w0, w2, w0, lsl 16 755 orr w0, w0, 1 756 str w0, [x1, 304] 757 ret 758 .size NandcSetDdrPara, .-NandcSetDdrPara 759 .section .text.NandcSetDdrDiv,"ax",@progbits 760 .align 2 761 .global NandcSetDdrDiv 762 .type NandcSetDdrDiv, %function 763NandcSetDdrDiv: 764 adrp x1, .LANCHOR19 765 and w0, w0, 255 766 mov w2, 16640 767 orr w0, w0, w2 768 ldr x1, [x1, #:lo12:.LANCHOR19] 769 str w0, [x1, 344] 770 ret 771 .size NandcSetDdrDiv, .-NandcSetDdrDiv 772 .section .text.NandcSetDdrMode,"ax",@progbits 773 .align 2 774 .global NandcSetDdrMode 775 .type NandcSetDdrMode, %function 776NandcSetDdrMode: 777 adrp x1, .LANCHOR19 778 cmp w0, 0 779 ldr x2, [x1, #:lo12:.LANCHOR19] 780 ldr w1, [x2] 781 and w3, w1, -8193 782 orr w1, w1, 253952 783 csel w1, w1, w3, ne 784 str w1, [x2] 785 ret 786 .size NandcSetDdrMode, .-NandcSetDdrMode 787 .section .text.NandcSetMode,"ax",@progbits 788 .align 2 789 .global NandcSetMode 790 .type NandcSetMode, %function 791NandcSetMode: 792 adrp x1, .LANCHOR19 793 and w0, w0, 255 794 tst w0, 6 795 ldr x2, [x1, #:lo12:.LANCHOR19] 796 ldr w1, [x2] 797 beq .L111 798 orr w1, w1, 24576 799 tst x0, 4 800 and w1, w1, -32769 801 mov w0, 16641 802 orr w1, w1, 196608 803 str w0, [x2, 344] 804 mov w0, 6659 805 orr w3, w1, 32768 806 movk w0, 0x1a, lsl 16 807 str w0, [x2, 304] 808 csel w1, w3, w1, ne 809 mov w0, 38 810 str w0, [x2, 308] 811 mov w0, 39 812 str w0, [x2, 308] 813.L113: 814 mov w0, 0 815 str w1, [x2] 816 ret 817.L111: 818 and w1, w1, -8193 819 b .L113 820 .size NandcSetMode, .-NandcSetMode 821 .section .text.NandcFlashCs,"ax",@progbits 822 .align 2 823 .global NandcFlashCs 824 .type NandcFlashCs, %function 825NandcFlashCs: 826 ubfiz x0, x0, 4, 8 827 adrp x1, .LANCHOR0 828 add x1, x1, :lo12:.LANCHOR0 829 add x3, x1, x0 830 ldr x2, [x1, x0] 831 mov w1, 1 832 ldrb w3, [x3, 8] 833 ldr w0, [x2] 834 lsl w1, w1, w3 835 bfi w0, w1, 0, 8 836 str w0, [x2] 837 ret 838 .size NandcFlashCs, .-NandcFlashCs 839 .section .text.NandcFlashDeCs,"ax",@progbits 840 .align 2 841 .global NandcFlashDeCs 842 .type NandcFlashDeCs, %function 843NandcFlashDeCs: 844 ubfiz x0, x0, 4, 8 845 adrp x1, .LANCHOR0 846 add x1, x1, :lo12:.LANCHOR0 847 ldr x1, [x1, x0] 848 ldr w0, [x1] 849 and w0, w0, -256 850 and w0, w0, -131073 851 str w0, [x1] 852 ret 853 .size NandcFlashDeCs, .-NandcFlashDeCs 854 .section .text.HynixSetRRPara,"ax",@progbits 855 .align 2 856 .global HynixSetRRPara 857 .type HynixSetRRPara, %function 858HynixSetRRPara: 859 stp x29, x30, [sp, -80]! 860 add x29, sp, 0 861 stp x21, x22, [sp, 32] 862 and w22, w0, 255 863 adrp x0, .LANCHOR7 864 stp x19, x20, [sp, 16] 865 stp x25, x26, [sp, 64] 866 mov x20, x2 867 ldr x0, [x0, #:lo12:.LANCHOR7] 868 and w26, w1, 255 869 stp x23, x24, [sp, 48] 870 and w21, w3, 255 871 adrp x19, .LANCHOR20 872 ldrb w0, [x0, 19] 873 cmp w0, 6 874 bne .L119 875 add x0, x19, :lo12:.LANCHOR20 876 ubfiz x19, x22, 6, 8 877 add x19, x19, 20 878 add x19, x19, x21, uxtw 2 879.L126: 880 add x19, x0, x19 881.L120: 882 sxtw x25, w22 883 adrp x0, .LANCHOR0 884 lsl x1, x25, 4 885 add x0, x0, :lo12:.LANCHOR0 886 add x2, x0, x1 887 and x26, x26, 255 888 mov x24, 0 889 ldr x23, [x0, x1] 890 mov w0, w22 891 ldrb w5, [x2, 8] 892 bl NandcFlashCs 893 ubfiz x5, x5, 8, 8 894 add x23, x23, x5 895 mov w0, 54 896 str w0, [x23, 2056] 897.L123: 898 cmp x24, x26 899 bne .L124 900 mov w0, 22 901 str w0, [x23, 2056] 902 mov w0, w22 903 bl NandcFlashDeCs 904 adrp x0, .LANCHOR21 905 add x0, x0, :lo12:.LANCHOR21 906 strb w21, [x0, x25] 907 ldp x19, x20, [sp, 16] 908 ldp x21, x22, [sp, 32] 909 ldp x23, x24, [sp, 48] 910 ldp x25, x26, [sp, 64] 911 ldp x29, x30, [sp], 80 912 ret 913.L119: 914 cmp w0, 7 915 bne .L121 916 add x0, x19, :lo12:.LANCHOR20 917 mov x1, 28 918 mov w19, 160 919 umaddl x1, w19, w22, x1 920 mov w19, 10 921 umaddl x19, w21, w19, x1 922 b .L126 923.L121: 924 cmp w0, 8 925 bne .L122 926 add x19, x19, :lo12:.LANCHOR20 927 add x0, x19, 28 928 add w19, w21, w21, lsl 2 929 add x19, x0, x19, sxtw 930 b .L120 931.L122: 932 add x0, x19, :lo12:.LANCHOR20 933 and x19, x21, 255 934 add x19, x19, 2 935 add x19, x19, x22, uxtw 3 936 add x19, x0, x19, lsl 3 937 add x19, x19, 4 938 b .L120 939.L124: 940 ldrb w0, [x20, x24] 941 str w0, [x23, 2052] 942 mov x0, 200 943 bl udelay 944 ldrsb w0, [x19, x24] 945 add x24, x24, 1 946 str w0, [x23, 2048] 947 b .L123 948 .size HynixSetRRPara, .-HynixSetRRPara 949 .section .text.FlashSetReadRetryDefault,"ax",@progbits 950 .align 2 951 .global FlashSetReadRetryDefault 952 .type FlashSetReadRetryDefault, %function 953FlashSetReadRetryDefault: 954 adrp x0, .LANCHOR7 955 ldr x0, [x0, #:lo12:.LANCHOR7] 956 ldrb w0, [x0, 19] 957 sub w0, w0, #1 958 and w0, w0, 255 959 cmp w0, 7 960 bhi .L134 961 stp x29, x30, [sp, -48]! 962 add x29, sp, 0 963 stp x19, x20, [sp, 16] 964 adrp x20, .LANCHOR20 965 add x20, x20, :lo12:.LANCHOR20 966 stp x21, x22, [sp, 32] 967 adrp x21, .LANCHOR22 968 add x22, x20, 4 969 add x21, x21, :lo12:.LANCHOR22 970 mov x19, 0 971.L130: 972 lsl x1, x19, 3 973 and w0, w19, 255 974 ldrb w1, [x1, x21] 975 cmp w1, 173 976 bne .L129 977 ldrb w1, [x20, 1] 978 mov w3, 0 979 mov x2, x22 980 bl HynixSetRRPara 981.L129: 982 add x19, x19, 1 983 cmp x19, 4 984 bne .L130 985 ldp x19, x20, [sp, 16] 986 ldp x21, x22, [sp, 32] 987 ldp x29, x30, [sp], 48 988 ret 989.L134: 990 ret 991 .size FlashSetReadRetryDefault, .-FlashSetReadRetryDefault 992 .section .text.FlashWaitCmdDone,"ax",@progbits 993 .align 2 994 .global FlashWaitCmdDone 995 .type FlashWaitCmdDone, %function 996FlashWaitCmdDone: 997 and x4, x0, 255 998 mov x0, 24 999 stp x29, x30, [sp, -32]! 1000 adrp x1, .LANCHOR23 1001 add x1, x1, :lo12:.LANCHOR23 1002 mul x0, x4, x0 1003 add x29, sp, 0 1004 stp x19, x20, [sp, 16] 1005 add x19, x1, x0 1006 ldr x2, [x19, 8] 1007 cbz x2, .L139 1008 ldrb w20, [x1, x0] 1009 mov w0, w20 1010 bl NandcFlashCs 1011 adrp x0, .LANCHOR18 1012 add x0, x0, :lo12:.LANCHOR18 1013 ldr w1, [x19, 4] 1014 ldr w0, [x0, x4, lsl 2] 1015 cmp w0, 0 1016 mov w0, w20 1017 cset w2, ne 1018 bl FlashWaitReadyEN 1019 mov w2, w0 1020 mov w0, w20 1021 bl NandcFlashDeCs 1022 sbfx x0, x2, 0, 1 1023 ldr x1, [x19, 8] 1024 str w0, [x1] 1025 ldr x1, [x19, 16] 1026 str xzr, [x19, 8] 1027 cbz x1, .L139 1028 str w0, [x1] 1029 str xzr, [x19, 16] 1030.L139: 1031 mov w0, 0 1032 ldp x19, x20, [sp, 16] 1033 ldp x29, x30, [sp], 32 1034 ret 1035 .size FlashWaitCmdDone, .-FlashWaitCmdDone 1036 .section .text.NandcDelayns,"ax",@progbits 1037 .align 2 1038 .global NandcDelayns 1039 .type NandcDelayns, %function 1040NandcDelayns: 1041 stp x29, x30, [sp, -16]! 1042 uxtw x0, w0 1043 add x29, sp, 0 1044 bl udelay 1045 mov w0, 0 1046 ldp x29, x30, [sp], 16 1047 ret 1048 .size NandcDelayns, .-NandcDelayns 1049 .section .text.NandcWaitFlashReadyNoDelay,"ax",@progbits 1050 .align 2 1051 .global NandcWaitFlashReadyNoDelay 1052 .type NandcWaitFlashReadyNoDelay, %function 1053NandcWaitFlashReadyNoDelay: 1054 stp x29, x30, [sp, -48]! 1055 ubfiz x0, x0, 4, 8 1056 adrp x1, .LANCHOR0 1057 add x1, x1, :lo12:.LANCHOR0 1058 add x29, sp, 0 1059 stp x19, x20, [sp, 16] 1060 mov w19, 34464 1061 ldr x20, [x1, x0] 1062 movk w19, 0x1, lsl 16 1063.L149: 1064 ldr w0, [x20] 1065 str w0, [x29, 40] 1066 ldr w0, [x29, 40] 1067 tbnz x0, 9, .L150 1068 mov x0, 10 1069 bl udelay 1070 subs w19, w19, #1 1071 bne .L149 1072 mov w0, -1 1073.L147: 1074 ldp x19, x20, [sp, 16] 1075 ldp x29, x30, [sp], 48 1076 ret 1077.L150: 1078 mov w0, 0 1079 b .L147 1080 .size NandcWaitFlashReadyNoDelay, .-NandcWaitFlashReadyNoDelay 1081 .section .text.NandcWaitFlashReady,"ax",@progbits 1082 .align 2 1083 .global NandcWaitFlashReady 1084 .type NandcWaitFlashReady, %function 1085NandcWaitFlashReady: 1086 stp x29, x30, [sp, -48]! 1087 ubfiz x0, x0, 4, 8 1088 adrp x1, .LANCHOR0 1089 add x1, x1, :lo12:.LANCHOR0 1090 add x29, sp, 0 1091 stp x19, x20, [sp, 16] 1092 mov w19, 34464 1093 movk w19, 0x1, lsl 16 1094 ldr x20, [x1, x0] 1095 mov x0, 130 1096 bl udelay 1097.L155: 1098 ldr w0, [x20] 1099 str w0, [x29, 40] 1100 ldr w0, [x29, 40] 1101 tbnz x0, 9, .L156 1102 mov x0, 10 1103 bl udelay 1104 subs w19, w19, #1 1105 bne .L155 1106 mov w0, -1 1107.L153: 1108 ldp x19, x20, [sp, 16] 1109 ldp x29, x30, [sp], 48 1110 ret 1111.L156: 1112 mov w0, 0 1113 b .L153 1114 .size NandcWaitFlashReady, .-NandcWaitFlashReady 1115 .section .text.FlashReset,"ax",@progbits 1116 .align 2 1117 .global FlashReset 1118 .type FlashReset, %function 1119FlashReset: 1120 stp x29, x30, [sp, -32]! 1121 add x29, sp, 0 1122 str x19, [sp, 16] 1123 and w19, w0, 255 1124 sbfiz x1, x19, 4, 32 1125 adrp x0, .LANCHOR0 1126 add x0, x0, :lo12:.LANCHOR0 1127 add x2, x0, x1 1128 ldr x5, [x0, x1] 1129 mov w0, w19 1130 ldrb w4, [x2, 8] 1131 bl NandcFlashCs 1132 add x4, x4, 8 1133 add x4, x5, x4, lsl 8 1134 mov w0, 255 1135 str w0, [x4, 8] 1136 mov w0, w19 1137 bl NandcWaitFlashReady 1138 mov w0, w19 1139 ldr x19, [sp, 16] 1140 ldp x29, x30, [sp], 32 1141 b NandcFlashDeCs 1142 .size FlashReset, .-FlashReset 1143 .section .text.flash_enter_slc_mode,"ax",@progbits 1144 .align 2 1145 .global flash_enter_slc_mode 1146 .type flash_enter_slc_mode, %function 1147flash_enter_slc_mode: 1148 stp x29, x30, [sp, -48]! 1149 add x29, sp, 0 1150 stp x21, x22, [sp, 32] 1151 and w21, w0, 255 1152 adrp x0, .LANCHOR16 1153 stp x19, x20, [sp, 16] 1154 ldrb w0, [x0, #:lo12:.LANCHOR16] 1155 cbz w0, .L161 1156 mov w0, w21 1157 bl NandcFlashCs 1158 sxtw x0, w21 1159 adrp x1, .LANCHOR0 1160 lsl x2, x0, 4 1161 add x1, x1, :lo12:.LANCHOR0 1162 add x3, x1, x2 1163 lsl x0, x0, 3 1164 ldr x22, [x1, x2] 1165 adrp x1, .LANCHOR22 1166 add x1, x1, :lo12:.LANCHOR22 1167 ldrb w19, [x3, 8] 1168 ldrb w0, [x1, x0] 1169 cmp w0, 44 1170 bne .L163 1171 ubfiz x20, x19, 8, 8 1172 mov w0, 239 1173 add x20, x22, x20 1174 str w0, [x20, 2056] 1175 mov w0, 145 1176 str w0, [x20, 2052] 1177 mov x0, 50 1178 bl udelay 1179 str wzr, [x20, 2048] 1180 mov w0, 1 1181 str w0, [x20, 2048] 1182 str wzr, [x20, 2048] 1183 mov x0, 100 1184 str wzr, [x20, 2048] 1185 bl udelay 1186.L163: 1187 add x19, x19, 8 1188 mov w0, w21 1189 add x19, x22, x19, lsl 8 1190 bl NandcWaitFlashReadyNoDelay 1191 mov w0, 218 1192 str w0, [x19, 8] 1193 mov w0, w21 1194 bl NandcWaitFlashReady 1195 adrp x0, .LANCHOR24 1196 mov w1, 2 1197 strb w1, [x0, #:lo12:.LANCHOR24] 1198.L161: 1199 ldp x19, x20, [sp, 16] 1200 ldp x21, x22, [sp, 32] 1201 ldp x29, x30, [sp], 48 1202 ret 1203 .size flash_enter_slc_mode, .-flash_enter_slc_mode 1204 .section .text.flash_exit_slc_mode,"ax",@progbits 1205 .align 2 1206 .global flash_exit_slc_mode 1207 .type flash_exit_slc_mode, %function 1208flash_exit_slc_mode: 1209 stp x29, x30, [sp, -48]! 1210 add x29, sp, 0 1211 stp x21, x22, [sp, 32] 1212 and w21, w0, 255 1213 adrp x0, .LANCHOR16 1214 stp x19, x20, [sp, 16] 1215 ldrb w0, [x0, #:lo12:.LANCHOR16] 1216 cbz w0, .L168 1217 mov w0, w21 1218 bl NandcFlashCs 1219 sxtw x0, w21 1220 adrp x1, .LANCHOR0 1221 lsl x2, x0, 4 1222 add x1, x1, :lo12:.LANCHOR0 1223 add x3, x1, x2 1224 lsl x0, x0, 3 1225 ldr x22, [x1, x2] 1226 adrp x1, .LANCHOR22 1227 add x1, x1, :lo12:.LANCHOR22 1228 ldrb w19, [x3, 8] 1229 ldrb w0, [x1, x0] 1230 cmp w0, 44 1231 bne .L170 1232 ubfiz x20, x19, 8, 8 1233 mov w0, 239 1234 add x20, x22, x20 1235 str w0, [x20, 2056] 1236 mov w0, 145 1237 str w0, [x20, 2052] 1238 mov x0, 50 1239 bl udelay 1240 mov w0, 2 1241 str w0, [x20, 2048] 1242 mov w0, 1 1243 str w0, [x20, 2048] 1244 str wzr, [x20, 2048] 1245 mov x0, 100 1246 str wzr, [x20, 2048] 1247 bl udelay 1248.L170: 1249 add x19, x19, 8 1250 mov w0, w21 1251 add x19, x22, x19, lsl 8 1252 bl NandcWaitFlashReadyNoDelay 1253 mov w0, 223 1254 str w0, [x19, 8] 1255 mov w0, w21 1256 bl NandcWaitFlashReady 1257 adrp x0, .LANCHOR24 1258 strb wzr, [x0, #:lo12:.LANCHOR24] 1259.L168: 1260 ldp x19, x20, [sp, 16] 1261 ldp x21, x22, [sp, 32] 1262 ldp x29, x30, [sp], 48 1263 ret 1264 .size flash_exit_slc_mode, .-flash_exit_slc_mode 1265 .section .text.FlashEraseBlock,"ax",@progbits 1266 .align 2 1267 .global FlashEraseBlock 1268 .type FlashEraseBlock, %function 1269FlashEraseBlock: 1270 stp x29, x30, [sp, -48]! 1271 add x29, sp, 0 1272 stp x19, x20, [sp, 16] 1273 and w19, w0, 255 1274 mov w20, w1 1275 str x21, [sp, 32] 1276 mov w0, w19 1277 mov w21, w2 1278 bl NandcWaitFlashReady 1279 mov w0, w19 1280 bl NandcFlashCs 1281 mov w2, w21 1282 mov w1, w20 1283 mov w0, w19 1284 bl FlashEraseCmd 1285 mov w0, w19 1286 bl NandcWaitFlashReady 1287 mov w1, w20 1288 mov w0, w19 1289 bl FlashReadStatus 1290 mov w2, w0 1291 mov w0, w19 1292 bl NandcFlashDeCs 1293 ldr x21, [sp, 32] 1294 and w0, w2, 1 1295 ldp x19, x20, [sp, 16] 1296 ldp x29, x30, [sp], 48 1297 ret 1298 .size FlashEraseBlock, .-FlashEraseBlock 1299 .section .text.FlashSetInterfaceMode,"ax",@progbits 1300 .align 2 1301 .global FlashSetInterfaceMode 1302 .type FlashSetInterfaceMode, %function 1303FlashSetInterfaceMode: 1304 stp x29, x30, [sp, -16]! 1305 adrp x1, .LANCHOR25 1306 adrp x2, .LANCHOR0 1307 add x2, x2, :lo12:.LANCHOR0 1308 add x29, sp, 0 1309 ldrb w1, [x1, #:lo12:.LANCHOR25] 1310 adrp x7, .LANCHOR22 1311 add x2, x2, 8 1312 add x7, x7, :lo12:.LANCHOR22 1313 and w12, w1, 4 1314 and w6, w1, 1 1315 mov x5, 0 1316 mov w13, 69 1317 mov w8, 239 1318 mov w10, 128 1319 mov w11, 1 1320 mov w14, 35 1321 mov w15, 32 1322 mov w16, 5 1323 mov w17, 44 1324.L187: 1325 ldrb w3, [x5, x7] 1326 ldrb w4, [x2] 1327 cmp w3, 152 1328 ccmp w3, w13, 4, ne 1329 beq .L178 1330 cmp w3, 173 1331 ccmp w3, w17, 4, ne 1332 bne .L179 1333.L178: 1334 cmp w0, 1 1335 ldr x1, [x2, -8] 1336 bne .L180 1337 cbz w6, .L179 1338 ubfiz x4, x4, 8, 8 1339 cmp w3, 173 1340 add x1, x1, x4 1341 str w8, [x1, 2056] 1342 bne .L181 1343 str w0, [x1, 2052] 1344.L199: 1345 str wzr, [x1, 2048] 1346 b .L185 1347.L181: 1348 cmp w3, 44 1349 bne .L183 1350 str w0, [x1, 2052] 1351 str w16, [x1, 2048] 1352.L185: 1353 str wzr, [x1, 2048] 1354 str wzr, [x1, 2048] 1355 str wzr, [x1, 2048] 1356.L179: 1357 add x5, x5, 8 1358 add x2, x2, 16 1359 cmp x5, 32 1360 bne .L187 1361 mov w0, 0 1362 bl NandcWaitFlashReady 1363 mov w0, 0 1364 ldp x29, x30, [sp], 16 1365 ret 1366.L183: 1367 str w10, [x1, 2052] 1368 str w0, [x1, 2048] 1369 b .L185 1370.L180: 1371 cbz w12, .L179 1372 ubfiz x4, x4, 8, 8 1373 cmp w3, 173 1374 add x1, x1, x4 1375 str w8, [x1, 2056] 1376 bne .L184 1377 str w11, [x1, 2052] 1378 str w15, [x1, 2048] 1379 b .L185 1380.L184: 1381 cmp w3, 44 1382 bne .L186 1383 str w11, [x1, 2052] 1384 str w14, [x1, 2048] 1385 b .L185 1386.L186: 1387 str w10, [x1, 2052] 1388 b .L199 1389 .size FlashSetInterfaceMode, .-FlashSetInterfaceMode 1390 .section .text.SandiskSetRRPara,"ax",@progbits 1391 .align 2 1392 .global SandiskSetRRPara 1393 .type SandiskSetRRPara, %function 1394SandiskSetRRPara: 1395 stp x29, x30, [sp, -32]! 1396 add x29, sp, 0 1397 stp x19, x20, [sp, 16] 1398 mov x20, x0 1399 mov w0, 239 1400 and w19, w1, 255 1401 str w0, [x20, 8] 1402 mov w0, 17 1403 str w0, [x20, 4] 1404 mov x0, 200 1405 bl udelay 1406 adrp x0, .LANCHOR13 1407 add w1, w19, 1 1408 adrp x2, .LANCHOR9 1409 add x2, x2, :lo12:.LANCHOR9 1410 ldrb w3, [x0, #:lo12:.LANCHOR13] 1411 adrp x0, .LANCHOR11 1412 ldrb w4, [x0, #:lo12:.LANCHOR11] 1413 mov w0, 5 1414 umull x1, w1, w0 1415 adrp x0, .LANCHOR10 1416 add x0, x0, :lo12:.LANCHOR10 1417 add x2, x2, x1 1418 add x1, x0, x1 1419 mov x0, 0 1420.L201: 1421 cmp w3, w0 1422 bhi .L204 1423 ldp x19, x20, [sp, 16] 1424 mov w0, 0 1425 ldp x29, x30, [sp], 32 1426 b NandcWaitFlashReady 1427.L204: 1428 cmp w4, 67 1429 bne .L202 1430 ldrsb w5, [x1, x0] 1431.L206: 1432 add x0, x0, 1 1433 str w5, [x20] 1434 b .L201 1435.L202: 1436 ldrsb w5, [x2, x0] 1437 b .L206 1438 .size SandiskSetRRPara, .-SandiskSetRRPara 1439 .section .text.micron_auto_read_calibration_config,"ax",@progbits 1440 .align 2 1441 .global micron_auto_read_calibration_config 1442 .type micron_auto_read_calibration_config, %function 1443micron_auto_read_calibration_config: 1444 stp x29, x30, [sp, -32]! 1445 add x29, sp, 0 1446 stp x19, x20, [sp, 16] 1447 and w19, w0, 255 1448 mov w20, w1 1449 mov w0, w19 1450 bl NandcWaitFlashReady 1451 sbfiz x0, x19, 4, 32 1452 adrp x2, .LANCHOR0 1453 add x2, x2, :lo12:.LANCHOR0 1454 add x1, x2, x0 1455 ldr x0, [x2, x0] 1456 ldrb w19, [x1, 8] 1457 add x19, x0, x19, lsl 8 1458 mov w0, 239 1459 str w0, [x19, 2056] 1460 mov w0, 150 1461 str w0, [x19, 2052] 1462 mov x0, 200 1463 bl udelay 1464 str w20, [x19, 2048] 1465 str wzr, [x19, 2048] 1466 str wzr, [x19, 2048] 1467 str wzr, [x19, 2048] 1468 ldp x19, x20, [sp, 16] 1469 ldp x29, x30, [sp], 32 1470 ret 1471 .size micron_auto_read_calibration_config, .-micron_auto_read_calibration_config 1472 .section .text.FlashEraseSLc2KBlocks,"ax",@progbits 1473 .align 2 1474 .global FlashEraseSLc2KBlocks 1475 .type FlashEraseSLc2KBlocks, %function 1476FlashEraseSLc2KBlocks: 1477 stp x29, x30, [sp, -80]! 1478 add x29, sp, 0 1479 stp x21, x22, [sp, 32] 1480 mov w22, 56 1481 stp x23, x24, [sp, 48] 1482 and w21, w1, 255 1483 umaddl x22, w1, w22, x0 1484 stp x19, x20, [sp, 16] 1485 adrp x23, .LANCHOR26 1486 mov x20, x0 1487 add x23, x23, :lo12:.LANCHOR26 1488 adrp x24, .LANCHOR27 1489.L210: 1490 cmp x20, x22 1491 bne .L215 1492 ldp x19, x20, [sp, 16] 1493 mov w0, 0 1494 ldp x21, x22, [sp, 32] 1495 ldp x23, x24, [sp, 48] 1496 ldp x29, x30, [sp], 80 1497 ret 1498.L215: 1499 mov w1, 0 1500 mov w4, w21 1501 add x3, x29, 76 1502 add x2, x29, 72 1503 mov x0, x20 1504 bl LogAddr2PhyAddr 1505 ldrb w1, [x23] 1506 ldr w0, [x29, 76] 1507 cmp w1, w0 1508 bhi .L211 1509 mov w0, -1 1510 str w0, [x20] 1511.L212: 1512 sub w21, w21, #1 1513 add x20, x20, 56 1514 and w21, w21, 255 1515 b .L210 1516.L211: 1517 uxtw x0, w0 1518 add x1, x24, :lo12:.LANCHOR27 1519 ldrb w19, [x1, x0] 1520 mov x1, 24 1521 mul x0, x0, x1 1522 adrp x1, .LANCHOR23 1523 add x1, x1, :lo12:.LANCHOR23 1524 strb w19, [x1, x0] 1525 mov w0, w19 1526 bl NandcWaitFlashReady 1527 mov w0, w19 1528 bl NandcFlashCs 1529 ldr w1, [x29, 72] 1530 mov w2, 0 1531 mov w0, w19 1532 bl FlashEraseCmd 1533 mov w0, w19 1534 bl NandcWaitFlashReady 1535 ldr w1, [x29, 72] 1536 mov w0, w19 1537 bl FlashReadStatus 1538 sbfx x0, x0, 0, 1 1539 str w0, [x20] 1540 adrp x0, .LANCHOR4 1541 ldr w1, [x29, 72] 1542 mov w2, 0 1543 ldr w0, [x0, #:lo12:.LANCHOR4] 1544 add w1, w1, w0 1545 mov w0, w19 1546 bl FlashEraseCmd 1547 mov w0, w19 1548 bl NandcWaitFlashReady 1549 ldr w1, [x29, 72] 1550 mov w0, w19 1551 bl FlashReadStatus 1552 tbz x0, 0, .L213 1553 mov w0, -1 1554 str w0, [x20] 1555.L213: 1556 ldr w0, [x20] 1557 cmn w0, #1 1558 bne .L214 1559 ldr w1, [x29, 72] 1560 adrp x0, .LC1 1561 add x0, x0, :lo12:.LC1 1562 bl printf 1563.L214: 1564 mov w0, w19 1565 bl NandcFlashDeCs 1566 b .L212 1567 .size FlashEraseSLc2KBlocks, .-FlashEraseSLc2KBlocks 1568 .section .text.FlashEraseBlocks,"ax",@progbits 1569 .align 2 1570 .global FlashEraseBlocks 1571 .type FlashEraseBlocks, %function 1572FlashEraseBlocks: 1573 stp x29, x30, [sp, -96]! 1574 add x29, sp, 0 1575 stp x23, x24, [sp, 48] 1576 mov w24, w1 1577 adrp x1, .LANCHOR2 1578 stp x21, x22, [sp, 32] 1579 stp x19, x20, [sp, 16] 1580 mov w22, w2 1581 ldrb w1, [x1, #:lo12:.LANCHOR2] 1582 stp x25, x26, [sp, 64] 1583 cbnz w1, .L221 1584 adrp x25, .LANCHOR23 1585 mov x23, x0 1586 add x26, x25, :lo12:.LANCHOR23 1587 mov w19, 0 1588.L222: 1589 cmp w19, w22 1590 adrp x13, .LANCHOR26 1591 bcc .L231 1592 adrp x20, .LANCHOR16 1593 adrp x21, .LANCHOR23 1594 add x22, x13, :lo12:.LANCHOR26 1595 add x20, x20, :lo12:.LANCHOR16 1596 add x21, x21, :lo12:.LANCHOR23 1597 mov x19, 0 1598.L232: 1599 ldrb w0, [x22] 1600 cmp w0, w19 1601 bhi .L234 1602 mov w0, 0 1603 b .L220 1604.L221: 1605 mov w1, w2 1606 bl FlashEraseSLc2KBlocks 1607.L220: 1608 ldp x19, x20, [sp, 16] 1609 ldp x21, x22, [sp, 32] 1610 ldp x23, x24, [sp, 48] 1611 ldp x25, x26, [sp, 64] 1612 ldp x29, x30, [sp], 96 1613 ret 1614.L231: 1615 mov w12, 56 1616 mov w1, 0 1617 sub w4, w22, w19 1618 add x3, x29, 92 1619 umull x12, w19, w12 1620 add x2, x29, 88 1621 add x20, x23, x12 1622 mov x0, x20 1623 bl LogAddr2PhyAddr 1624 mov w21, w0 1625 ldrb w1, [x13, #:lo12:.LANCHOR26] 1626 ldr w0, [x29, 92] 1627 cmp w1, w0 1628 bhi .L224 1629 mov w0, -1 1630 str w0, [x23, x12] 1631.L225: 1632 add w19, w19, 1 1633 b .L222 1634.L224: 1635 adrp x1, .LANCHOR28 1636 add x2, x25, :lo12:.LANCHOR23 1637 mov x3, 24 1638 ldrb w1, [x1, #:lo12:.LANCHOR28] 1639 cmp w1, 0 1640 uxtw x1, w0 1641 csel w21, w21, wzr, ne 1642 madd x1, x1, x3, x2 1643 ldr x1, [x1, 8] 1644 cbz x1, .L227 1645 bl FlashWaitCmdDone 1646.L227: 1647 ldp w2, w1, [x29, 88] 1648 mov x0, 24 1649 madd x0, x1, x0, x26 1650 str w2, [x0, 4] 1651 stp x20, xzr, [x0, 8] 1652 cbz w21, .L228 1653 add w2, w19, 1 1654 mov w3, 56 1655 umaddl x2, w2, w3, x23 1656 str x2, [x0, 16] 1657.L228: 1658 adrp x0, .LANCHOR27 1659 add x0, x0, :lo12:.LANCHOR27 1660 ldrb w20, [x0, x1] 1661 mov x0, 24 1662 mul x1, x1, x0 1663 mov w0, w20 1664 strb w20, [x26, x1] 1665 bl NandcFlashCs 1666 cmp w24, 1 1667 bne .L229 1668 adrp x0, .LANCHOR16 1669 ldrb w0, [x0, #:lo12:.LANCHOR16] 1670 cbz w0, .L229 1671 mov w0, w20 1672 bl flash_enter_slc_mode 1673.L230: 1674 ldr w1, [x29, 92] 1675 adrp x0, .LANCHOR18 1676 add x0, x0, :lo12:.LANCHOR18 1677 add w19, w19, w21 1678 ldr w0, [x0, x1, lsl 2] 1679 ldr w1, [x29, 88] 1680 cmp w0, 0 1681 mov w0, w20 1682 cset w2, ne 1683 bl FlashWaitReadyEN 1684 ldr w1, [x29, 88] 1685 mov w2, w21 1686 mov w0, w20 1687 bl FlashEraseCmd 1688 mov w0, w20 1689 bl NandcFlashDeCs 1690 b .L225 1691.L229: 1692 mov w0, w20 1693 bl flash_exit_slc_mode 1694 b .L230 1695.L234: 1696 mov w0, w19 1697 bl FlashWaitCmdDone 1698 cmp w24, 1 1699 bne .L233 1700 ldrb w0, [x20] 1701 cbz w0, .L233 1702 mov x0, 24 1703 mul x0, x19, x0 1704 ldrb w0, [x0, x21] 1705 bl flash_exit_slc_mode 1706.L233: 1707 add x19, x19, 1 1708 b .L232 1709 .size FlashEraseBlocks, .-FlashEraseBlocks 1710 .section .text.FlashReadDpCmd,"ax",@progbits 1711 .align 2 1712 .global FlashReadDpCmd 1713 .type FlashReadDpCmd, %function 1714FlashReadDpCmd: 1715 stp x29, x30, [sp, -64]! 1716 adrp x7, .LANCHOR7 1717 add x29, sp, 0 1718 stp x21, x22, [sp, 32] 1719 and w22, w0, 255 1720 mov w21, w1 1721 adrp x0, .LANCHOR0 1722 sbfiz x1, x22, 4, 32 1723 add x0, x0, :lo12:.LANCHOR0 1724 add x3, x0, x1 1725 stp x19, x20, [sp, 16] 1726 stp x23, x24, [sp, 48] 1727 lsr w20, w2, 16 1728 ldr x4, [x0, x1] 1729 and w24, w2, 255 1730 ldrb w19, [x3, 8] 1731 adrp x3, .LANCHOR8 1732 add x1, x3, :lo12:.LANCHOR8 1733 lsr w23, w2, 8 1734 ldr x2, [x7, #:lo12:.LANCHOR7] 1735 and w6, w21, 255 1736 lsr w5, w21, 8 1737 ldrb w1, [x1, 16] 1738 ldrb w2, [x2, 7] 1739 cmp w1, 1 1740 lsr w1, w21, 16 1741 bne .L249 1742 cmp w2, 1 1743 bne .L250 1744 sxtw x0, w19 1745 mov w2, 38 1746 add x0, x0, 8 1747 add x0, x4, x0, lsl 8 1748 str w2, [x0, 8] 1749.L250: 1750 add x0, x3, :lo12:.LANCHOR8 1751 add x19, x4, x19, lsl 8 1752 ldrb w2, [x0, 8] 1753 str w2, [x19, 2056] 1754 str wzr, [x19, 2052] 1755 str wzr, [x19, 2052] 1756 str w6, [x19, 2052] 1757 str w5, [x19, 2052] 1758 ldrb w0, [x0, 9] 1759 str w1, [x19, 2052] 1760 str w0, [x19, 2056] 1761 mov w0, w22 1762 bl NandcWaitFlashReady 1763 str wzr, [x19, 2056] 1764 str wzr, [x19, 2052] 1765 str wzr, [x19, 2052] 1766.L254: 1767 str w24, [x19, 2052] 1768 mov w0, 48 1769 str w23, [x19, 2052] 1770 mov w1, w21 1771 str w20, [x19, 2052] 1772 str w0, [x19, 2056] 1773 mov w0, w22 1774 ldp x19, x20, [sp, 16] 1775 ldp x21, x22, [sp, 32] 1776 ldp x23, x24, [sp, 48] 1777 ldp x29, x30, [sp], 64 1778 b FlashSetRandomizer 1779.L249: 1780 cmp w2, 1 1781 bne .L252 1782 sxtw x0, w19 1783 mov w2, 38 1784 add x0, x0, 8 1785 add x0, x4, x0, lsl 8 1786 str w2, [x0, 8] 1787.L252: 1788 add x0, x3, :lo12:.LANCHOR8 1789 add x19, x4, x19, lsl 8 1790 ldrb w2, [x0, 8] 1791 str w2, [x19, 2056] 1792 str w6, [x19, 2052] 1793 str w5, [x19, 2052] 1794 ldrb w0, [x0, 9] 1795 str w1, [x19, 2052] 1796 str w0, [x19, 2056] 1797 b .L254 1798 .size FlashReadDpCmd, .-FlashReadDpCmd 1799 .section .text.ftl_flash_de_init,"ax",@progbits 1800 .align 2 1801 .global ftl_flash_de_init 1802 .type ftl_flash_de_init, %function 1803ftl_flash_de_init: 1804 stp x29, x30, [sp, -32]! 1805 mov w0, 0 1806 add x29, sp, 0 1807 str x19, [sp, 16] 1808 bl NandcWaitFlashReady 1809 bl FlashSetReadRetryDefault 1810 adrp x0, .LANCHOR29 1811 ldr w0, [x0, #:lo12:.LANCHOR29] 1812 cbz w0, .L256 1813 mov w0, 0 1814 bl flash_enter_slc_mode 1815.L257: 1816 adrp x19, .LANCHOR30 1817 ldrb w0, [x19, #:lo12:.LANCHOR30] 1818 cbz w0, .L258 1819 adrp x0, .LANCHOR25 1820 ldrb w0, [x0, #:lo12:.LANCHOR25] 1821 tbz x0, 0, .L258 1822 mov w0, 1 1823 bl FlashSetInterfaceMode 1824 mov w0, 1 1825 bl NandcSetMode 1826 strb wzr, [x19, #:lo12:.LANCHOR30] 1827.L258: 1828 adrp x0, .LANCHOR0 1829 ldr x0, [x0, #:lo12:.LANCHOR0] 1830 str wzr, [x0, 336] 1831 mov w0, 0 1832 ldr x19, [sp, 16] 1833 ldp x29, x30, [sp], 32 1834 ret 1835.L256: 1836 mov w0, 0 1837 bl flash_exit_slc_mode 1838 b .L257 1839 .size ftl_flash_de_init, .-ftl_flash_de_init 1840 .section .text.NandcRandmzSel,"ax",@progbits 1841 .align 2 1842 .global NandcRandmzSel 1843 .type NandcRandmzSel, %function 1844NandcRandmzSel: 1845 ubfiz x0, x0, 4, 8 1846 adrp x2, .LANCHOR0 1847 add x2, x2, :lo12:.LANCHOR0 1848 ldr x0, [x2, x0] 1849 str w1, [x0, 336] 1850 ret 1851 .size NandcRandmzSel, .-NandcRandmzSel 1852 .section .text.NandcTimeCfg,"ax",@progbits 1853 .align 2 1854 .global NandcTimeCfg 1855 .type NandcTimeCfg, %function 1856NandcTimeCfg: 1857 cmp w0, 35 1858 adrp x1, .LANCHOR19 1859 bhi .L268 1860 ldr x0, [x1, #:lo12:.LANCHOR19] 1861 mov w1, 4193 1862.L271: 1863 str w1, [x0, 4] 1864 ret 1865.L268: 1866 cmp w0, 99 1867 ldr x0, [x1, #:lo12:.LANCHOR19] 1868 bls .L270 1869 mov w1, 8322 1870 b .L271 1871.L270: 1872 mov w1, 4225 1873 b .L271 1874 .size NandcTimeCfg, .-NandcTimeCfg 1875 .section .text.FlashTimingCfg,"ax",@progbits 1876 .align 2 1877 .global FlashTimingCfg 1878 .type FlashTimingCfg, %function 1879FlashTimingCfg: 1880 adrp x0, .LANCHOR31+21 1881 ldrb w0, [x0, #:lo12:.LANCHOR31+21] 1882 b NandcTimeCfg 1883 .size FlashTimingCfg, .-FlashTimingCfg 1884 .section .text.NandcBchSel,"ax",@progbits 1885 .align 2 1886 .global NandcBchSel 1887 .type NandcBchSel, %function 1888NandcBchSel: 1889 adrp x1, .LANCHOR19 1890 and w0, w0, 255 1891 cmp w0, 16 1892 ldr x2, [x1, #:lo12:.LANCHOR19] 1893 mov w1, 1 1894 str w1, [x2, 8] 1895 adrp x1, .LANCHOR32 1896 str w0, [x1, #:lo12:.LANCHOR32] 1897 mov w1, 4096 1898 bne .L274 1899.L277: 1900 and w1, w1, -17 1901.L275: 1902 orr w1, w1, 1 1903 str w1, [x2, 12] 1904 ret 1905.L274: 1906 cmp w0, 24 1907 bne .L276 1908 orr w1, w1, 16 1909 b .L275 1910.L276: 1911 orr w1, w1, 262144 1912 cmp w0, 40 1913 orr w1, w1, 16 1914 bne .L275 1915 b .L277 1916 .size NandcBchSel, .-NandcBchSel 1917 .section .text.FlashBchSel,"ax",@progbits 1918 .align 2 1919 .global FlashBchSel 1920 .type FlashBchSel, %function 1921FlashBchSel: 1922 adrp x1, .LANCHOR33 1923 and w0, w0, 255 1924 strb w0, [x1, #:lo12:.LANCHOR33] 1925 b NandcBchSel 1926 .size FlashBchSel, .-FlashBchSel 1927 .section .text.ftl_nandc_get_irq_status,"ax",@progbits 1928 .align 2 1929 .global ftl_nandc_get_irq_status 1930 .type ftl_nandc_get_irq_status, %function 1931ftl_nandc_get_irq_status: 1932 ldr w0, [x0, 372] 1933 ret 1934 .size ftl_nandc_get_irq_status, .-ftl_nandc_get_irq_status 1935 .section .text.rk_nandc_flash_ready,"ax",@progbits 1936 .align 2 1937 .global rk_nandc_flash_ready 1938 .type rk_nandc_flash_ready, %function 1939rk_nandc_flash_ready: 1940 ret 1941 .size rk_nandc_flash_ready, .-rk_nandc_flash_ready 1942 .section .text.NandcIqrWaitFlashReady,"ax",@progbits 1943 .align 2 1944 .global NandcIqrWaitFlashReady 1945 .type NandcIqrWaitFlashReady, %function 1946NandcIqrWaitFlashReady: 1947 ret 1948 .size NandcIqrWaitFlashReady, .-NandcIqrWaitFlashReady 1949 .section .text.rk_nandc_flash_xfer_completed,"ax",@progbits 1950 .align 2 1951 .global rk_nandc_flash_xfer_completed 1952 .type rk_nandc_flash_xfer_completed, %function 1953rk_nandc_flash_xfer_completed: 1954 ret 1955 .size rk_nandc_flash_xfer_completed, .-rk_nandc_flash_xfer_completed 1956 .section .text.NandcSendDumpDataStart,"ax",@progbits 1957 .align 2 1958 .global NandcSendDumpDataStart 1959 .type NandcSendDumpDataStart, %function 1960NandcSendDumpDataStart: 1961 sub sp, sp, #16 1962 ldr w2, [x0, 16] 1963 mov w1, 1066 1964 movk w1, 0x2020, lsl 16 1965 str w2, [sp, 8] 1966 ldr w2, [sp, 8] 1967 and w2, w2, -5 1968 str w2, [sp, 8] 1969 ldr w2, [sp, 8] 1970 str w2, [x0, 16] 1971 str w1, [x0, 8] 1972 orr w1, w1, 4 1973 str w1, [x0, 8] 1974 add sp, sp, 16 1975 ret 1976 .size NandcSendDumpDataStart, .-NandcSendDumpDataStart 1977 .section .text.NandcSendDumpDataDone,"ax",@progbits 1978 .align 2 1979 .global NandcSendDumpDataDone 1980 .type NandcSendDumpDataDone, %function 1981NandcSendDumpDataDone: 1982 sub sp, sp, #16 1983.L289: 1984 ldr w1, [x0, 8] 1985 str w1, [sp, 8] 1986 ldr w1, [sp, 8] 1987 tbz x1, 20, .L289 1988 add sp, sp, 16 1989 ret 1990 .size NandcSendDumpDataDone, .-NandcSendDumpDataDone 1991 .section .text.NandcXferStart,"ax",@progbits 1992 .align 2 1993 .global NandcXferStart 1994 .type NandcXferStart, %function 1995NandcXferStart: 1996 stp x29, x30, [sp, -96]! 1997 ubfiz x0, x0, 4, 8 1998 ubfx x3, x3, 1, 7 1999 add x29, sp, 0 2000 stp x23, x24, [sp, 48] 2001 and w24, w1, 255 2002 adrp x1, .LANCHOR0 2003 add x1, x1, :lo12:.LANCHOR0 2004 add x6, x1, x0 2005 stp x21, x22, [sp, 32] 2006 stp x19, x20, [sp, 16] 2007 ubfiz w19, w24, 1, 1 2008 ldr x21, [x1, x0] 2009 mov w1, 16 2010 ldrb w0, [x6, 8] 2011 orr w19, w19, 8 2012 str x25, [sp, 64] 2013 ldr w22, [x21, 12] 2014 bfi w22, w1, 8, 8 2015 and w22, w22, -9 2016 bfi w22, w0, 5, 3 2017 mov w0, 1 2018 bfi w19, w0, 5, 2 2019 adrp x0, .LANCHOR34 2020 orr w19, w19, 536870912 2021 orr w19, w19, 1024 2022 ldr w0, [x0, #:lo12:.LANCHOR34] 2023 bfi w19, w3, 4, 1 2024 cmp w0, 3 2025 bls .L294 2026 ldr w0, [x21, 16] 2027 cmp x5, 0 2028 str w0, [x29, 88] 2029 ccmp x4, 0, 0, eq 2030 ldr w0, [x29, 88] 2031 and w0, w0, -5 2032 str w0, [x29, 88] 2033 beq .L295 2034 and w2, w2, 255 2035 adrp x20, .LANCHOR35 2036 cbnz w24, .L296 2037.L304: 2038 ldr x0, [x20, #:lo12:.LANCHOR35] 2039 add w2, w2, 1 2040 cmp x4, 0 2041 asr w2, w2, 1 2042 csel x0, x4, x0, ne 2043 add x20, x20, :lo12:.LANCHOR35 2044 bfi w19, w2, 22, 6 2045 and x2, x0, 4294967295 2046 add x2, x2, 63 2047 mov x25, x4 2048 and x2, x2, -64 2049 ldr x1, [x20, 8] 2050 ubfx x23, x19, 22, 5 2051 stp x0, x1, [x20, 16] 2052 stp w0, w1, [x20, 32] 2053 ubfiz x1, x23, 10, 5 2054 add x1, x2, x1 2055 and x0, x0, 4294967232 2056 bl flush_dcache_range 2057 ubfiz x23, x23, 7, 5 2058 ldr w0, [x20, 36] 2059 add x1, x0, 63 2060 and x0, x0, 4294967232 2061 and x1, x1, -64 2062 add x1, x1, x23 2063 bl flush_dcache_range 2064 mov w0, 1 2065 str w0, [x20, 40] 2066 ldr w0, [x20, 32] 2067 mov w1, 16 2068 str w0, [x21, 20] 2069 tst x25, 3 2070 ldr w0, [x20, 36] 2071 str w0, [x21, 24] 2072 str wzr, [x29, 88] 2073 ldr w0, [x29, 88] 2074 bfi w0, w1, 9, 5 2075 str w0, [x29, 88] 2076 ldr w0, [x29, 88] 2077 orr w0, w0, 448 2078 str w0, [x29, 88] 2079 bne .L305 2080 ldr w0, [x29, 88] 2081 mov w1, 2 2082 bfi w0, w1, 3, 3 2083 str w0, [x29, 88] 2084.L305: 2085 ldr w0, [x29, 88] 2086 cmp w24, 0 2087 cset w1, eq 2088 orr w0, w0, 4 2089 str w0, [x29, 88] 2090 ldr w0, [x29, 88] 2091 bfi w0, w1, 1, 1 2092 str w0, [x29, 88] 2093 ldr w0, [x29, 88] 2094 orr w0, w0, 1 2095 str w0, [x29, 88] 2096.L295: 2097 ldr w0, [x29, 88] 2098 str w0, [x21, 16] 2099.L294: 2100 str w22, [x21, 12] 2101 str w19, [x21, 8] 2102 orr w19, w19, 4 2103 str w19, [x21, 8] 2104 ldp x19, x20, [sp, 16] 2105 ldp x21, x22, [sp, 32] 2106 ldp x23, x24, [sp, 48] 2107 ldr x25, [sp, 64] 2108 ldp x29, x30, [sp], 96 2109 ret 2110.L296: 2111 adrp x0, .LANCHOR32 2112 mov w6, 64 2113 lsr w11, w2, 1 2114 mov x1, x5 2115 ldr w0, [x0, #:lo12:.LANCHOR32] 2116 mov w7, 0 2117 mov w3, 0 2118 mov w12, -1 2119 cmp w0, 25 2120 mov w0, 128 2121 csel w6, w6, w0, cc 2122 add x0, x20, :lo12:.LANCHOR35 2123 ldr x10, [x0, 8] 2124.L300: 2125 cmp w3, w11 2126 bcs .L304 2127 lsr w0, w7, 2 2128 lsl w0, w0, 2 2129 cbz x5, .L301 2130 ldrh w13, [x1] 2131 add x1, x1, 4 2132 ldrh w8, [x1, -2] 2133 orr x8, x13, x8, lsl 16 2134 str w8, [x10, x0] 2135.L302: 2136 add w3, w3, 1 2137 add w7, w7, w6 2138 b .L300 2139.L301: 2140 str w12, [x10, x0] 2141 b .L302 2142 .size NandcXferStart, .-NandcXferStart 2143 .section .text.NandcXferComp,"ax",@progbits 2144 .align 2 2145 .global NandcXferComp 2146 .type NandcXferComp, %function 2147NandcXferComp: 2148 ubfiz x0, x0, 4, 8 2149 adrp x1, .LANCHOR0 2150 add x1, x1, :lo12:.LANCHOR0 2151 stp x29, x30, [sp, -32]! 2152 add x29, sp, 0 2153 ldr x3, [x1, x0] 2154 adrp x0, .LANCHOR34 2155 ldr w2, [x0, #:lo12:.LANCHOR34] 2156 cmp w2, 3 2157 bls .L333 2158 ldr w0, [x3, 16] 2159 tbz x0, 2, .L333 2160 ldr w0, [x3, 16] 2161 tbz x0, 1, .L321 2162 ldr w0, [x3, 8] 2163 str w0, [x29, 16] 2164.L316: 2165 ldr w1, [x3, 28] 2166 ldr w0, [x29, 16] 2167 ubfx x1, x1, 16, 5 2168 ubfx x0, x0, 22, 6 2169 cmp w1, w0 2170 bge .L317 2171 cmp w2, 5 2172 bls .L316 2173 ldr w0, [x3] 2174 str w0, [x29, 24] 2175 ldr w0, [x29, 24] 2176 tbz x0, 13, .L316 2177 ldr w0, [x29, 24] 2178 tbz x0, 17, .L316 2179.L317: 2180 adrp x0, .LANCHOR35+40 2181 str wzr, [x0, #:lo12:.LANCHOR35+40] 2182.L312: 2183 ldp x29, x30, [sp], 32 2184 ret 2185.L321: 2186 ldr w0, [x3, 8] 2187 str w0, [x29, 16] 2188 ldr w0, [x29, 16] 2189 tbz x0, 20, .L321 2190 adrp x0, .LANCHOR36 2191 mov x4, x0 2192 ldr w1, [x0, #:lo12:.LANCHOR36] 2193 cbz w1, .L322 2194 mov x0, x3 2195 bl NandcSendDumpDataStart 2196.L322: 2197 ldr w0, [x4, #:lo12:.LANCHOR36] 2198 cbz w0, .L317 2199 mov x0, x3 2200 bl NandcSendDumpDataDone 2201 b .L317 2202.L333: 2203 ldr w0, [x3, 8] 2204 str w0, [x29, 16] 2205 ldr w0, [x29, 16] 2206 tbz x0, 20, .L333 2207 b .L312 2208 .size NandcXferComp, .-NandcXferComp 2209 .section .text.Ftl_log2,"ax",@progbits 2210 .align 2 2211 .global Ftl_log2 2212 .type Ftl_log2, %function 2213Ftl_log2: 2214 mov w2, 1 2215 mov w1, 0 2216.L342: 2217 cmp w2, w0 2218 bls .L343 2219 sub w0, w1, #1 2220 ret 2221.L343: 2222 add w1, w1, 1 2223 lsl w2, w2, 1 2224 and w1, w1, 65535 2225 b .L342 2226 .size Ftl_log2, .-Ftl_log2 2227 .section .text.FtlPrintInfo,"ax",@progbits 2228 .align 2 2229 .global FtlPrintInfo 2230 .type FtlPrintInfo, %function 2231FtlPrintInfo: 2232 ret 2233 .size FtlPrintInfo, .-FtlPrintInfo 2234 .section .text.FtlSysBlkNumInit,"ax",@progbits 2235 .align 2 2236 .global FtlSysBlkNumInit 2237 .type FtlSysBlkNumInit, %function 2238FtlSysBlkNumInit: 2239 and w0, w0, 65535 2240 mov w1, 24 2241 cmp w0, 24 2242 adrp x2, .LANCHOR39 2243 csel w0, w0, w1, cs 2244 adrp x1, .LANCHOR37 2245 and w0, w0, 65535 2246 str w0, [x1, #:lo12:.LANCHOR37] 2247 adrp x1, .LANCHOR38 2248 ldrh w1, [x1, #:lo12:.LANCHOR38] 2249 mul w1, w1, w0 2250 str w1, [x2, #:lo12:.LANCHOR39] 2251 adrp x2, .LANCHOR41 2252 ldrh w2, [x2, #:lo12:.LANCHOR41] 2253 sub w0, w2, w0 2254 adrp x2, .LANCHOR40 2255 strh w0, [x2, #:lo12:.LANCHOR40] 2256 adrp x0, .LANCHOR43 2257 ldr w0, [x0, #:lo12:.LANCHOR43] 2258 sub w1, w0, w1 2259 adrp x0, .LANCHOR42 2260 str w1, [x0, #:lo12:.LANCHOR42] 2261 mov w0, 0 2262 ret 2263 .size FtlSysBlkNumInit, .-FtlSysBlkNumInit 2264 .section .text.FtlConstantsInit,"ax",@progbits 2265 .align 2 2266 .global FtlConstantsInit 2267 .type FtlConstantsInit, %function 2268FtlConstantsInit: 2269 stp x29, x30, [sp, -32]! 2270 mov x5, x0 2271 adrp x1, .LANCHOR46 2272 adrp x4, .LANCHOR45 2273 add x29, sp, 0 2274 ldrh w11, [x0, 8] 2275 adrp x0, .LANCHOR44 2276 adrp x6, .LANCHOR41 2277 ldrh w2, [x5, 10] 2278 strh w11, [x0, #:lo12:.LANCHOR44] 2279 mov x3, 0 2280 ldrh w0, [x5, 12] 2281 ldrh w8, [x5, 14] 2282 strh w0, [x1, #:lo12:.LANCHOR46] 2283 adrp x1, .LANCHOR47 2284 add x7, x1, :lo12:.LANCHOR47 2285 strh w2, [x4, #:lo12:.LANCHOR45] 2286 strh w8, [x6, #:lo12:.LANCHOR41] 2287 str x19, [sp, 16] 2288.L347: 2289 strb w3, [x3, x7] 2290 add x3, x3, 1 2291 cmp x3, 32 2292 bne .L347 2293 ldrh w7, [x5, 20] 2294 ldrb w3, [x5, 15] 2295 cmp w7, w3 2296 bcs .L348 2297 and w13, w0, 255 2298 mul w15, w0, w2 2299 ubfiz w14, w13, 1, 7 2300 add x1, x1, :lo12:.LANCHOR47 2301 mov w7, 0 2302.L349: 2303 cmp w7, w0 2304 bcs .L351 2305 and w3, w7, 255 2306 mov w10, w7 2307 mov w12, 0 2308 b .L352 2309.L350: 2310 add w16, w15, w10 2311 strb w3, [x1, w10, uxtw] 2312 add w17, w13, w3 2313 add w3, w14, w3 2314 add w12, w12, 1 2315 and w3, w3, 255 2316 add w10, w10, w0 2317 strb w17, [x1, x16] 2318.L352: 2319 cmp w12, w2 2320 bcc .L350 2321 add w7, w7, 1 2322 b .L349 2323.L351: 2324 ubfiz w2, w2, 1, 15 2325 lsr w8, w8, 1 2326 strh w2, [x4, #:lo12:.LANCHOR45] 2327 strh w8, [x6, #:lo12:.LANCHOR41] 2328.L348: 2329 adrp x1, .LANCHOR48 2330 adrp x13, .LANCHOR49 2331 mov w2, 5 2332 cmp w11, 1 2333 strh w2, [x1, #:lo12:.LANCHOR48] 2334 strh wzr, [x13, #:lo12:.LANCHOR49] 2335 bne .L353 2336 strh w11, [x1, #:lo12:.LANCHOR48] 2337.L353: 2338 adrp x8, .LANCHOR50 2339 mov w1, 4352 2340 strh w1, [x8, #:lo12:.LANCHOR50] 2341 adrp x1, .LANCHOR2 2342 ldrb w11, [x1, #:lo12:.LANCHOR2] 2343 cbz w11, .L354 2344 mov w1, 384 2345 strh w1, [x8, #:lo12:.LANCHOR50] 2346.L354: 2347 ldrh w4, [x4, #:lo12:.LANCHOR45] 2348 adrp x1, .LANCHOR38 2349 ldrh w3, [x6, #:lo12:.LANCHOR41] 2350 adrp x7, .LANCHOR52 2351 ldrh w19, [x5, 16] 2352 adrp x15, .LANCHOR55 2353 ldrh w10, [x5, 20] 2354 mul w4, w0, w4 2355 ldrh w14, [x5, 18] 2356 mul w0, w0, w3 2357 strh w19, [x7, #:lo12:.LANCHOR52] 2358 and w4, w4, 65535 2359 strh w4, [x1, #:lo12:.LANCHOR38] 2360 adrp x1, .LANCHOR51 2361 strh w10, [x15, #:lo12:.LANCHOR55] 2362 strh w0, [x1, #:lo12:.LANCHOR51] 2363 mul w1, w4, w19 2364 adrp x0, .LANCHOR53 2365 strh w14, [x0, #:lo12:.LANCHOR53] 2366 adrp x0, .LANCHOR54 2367 strh w1, [x0, #:lo12:.LANCHOR54] 2368 mov w0, w10 2369 bl Ftl_log2 2370 and w12, w0, 65535 2371 adrp x6, .LANCHOR56 2372 ubfiz w2, w10, 9, 7 2373 ldrh w1, [x5, 26] 2374 cmp w3, 1024 2375 strh w0, [x6, #:lo12:.LANCHOR56] 2376 adrp x0, .LANCHOR57 2377 strh w2, [x0, #:lo12:.LANCHOR57] 2378 adrp x0, .LANCHOR58 2379 ubfx w2, w2, 8, 8 2380 strh w2, [x0, #:lo12:.LANCHOR58] 2381 adrp x0, .LANCHOR59 2382 strh w1, [x0, #:lo12:.LANCHOR59] 2383 adrp x0, .LANCHOR43 2384 mul w1, w4, w3 2385 str w1, [x0, #:lo12:.LANCHOR43] 2386 bls .L355 2387 and w0, w3, 255 2388 strh w0, [x13, #:lo12:.LANCHOR49] 2389.L355: 2390 ldrh w0, [x13, #:lo12:.LANCHOR49] 2391 adrp x1, .LANCHOR60 2392 sub w0, w3, w0 2393 mul w0, w0, w4 2394 mul w0, w0, w10 2395 mul w0, w0, w19 2396 asr w0, w0, 11 2397 str w0, [x1, #:lo12:.LANCHOR60] 2398 ldrh w0, [x8, #:lo12:.LANCHOR50] 2399 mul w1, w14, w10 2400 adrp x10, .LANCHOR61 2401 lsl w0, w0, 3 2402 sdiv w0, w0, w1 2403 and w0, w0, 65535 2404 cmp w0, 4 2405 bls .L356 2406.L372: 2407 strh w0, [x10, #:lo12:.LANCHOR61] 2408 cbz w11, .L358 2409 mov w0, 640 2410 strh w0, [x8, #:lo12:.LANCHOR50] 2411.L358: 2412 ldrh w0, [x8, #:lo12:.LANCHOR50] 2413 adrp x1, .LANCHOR62 2414 lsl w3, w3, 6 2415 cmp w4, 1 2416 adrp x8, .LANCHOR37 2417 asr w0, w0, w12 2418 add w0, w0, 2 2419 strh w0, [x1, #:lo12:.LANCHOR62] 2420 add w0, w12, 9 2421 adrp x1, .LANCHOR64 2422 asr w3, w3, w0 2423 adrp x0, .LANCHOR63 2424 strh w3, [x0, #:lo12:.LANCHOR63] 2425 and w3, w3, 65535 2426 mul w0, w4, w3 2427 add w3, w3, 8 2428 str w0, [x1, #:lo12:.LANCHOR64] 2429 ldrh w0, [x10, #:lo12:.LANCHOR61] 2430 udiv w0, w0, w4 2431 mov x4, x1 2432 add w3, w0, w3 2433 beq .L359 2434.L373: 2435 str w3, [x8, #:lo12:.LANCHOR37] 2436 ldrh w0, [x8, #:lo12:.LANCHOR37] 2437 bl FtlSysBlkNumInit 2438 ldr w1, [x8, #:lo12:.LANCHOR37] 2439 adrp x0, .LANCHOR65 2440 mov w2, 24 2441 str w1, [x0, #:lo12:.LANCHOR65] 2442 adrp x0, .LANCHOR42 2443 ldrh w1, [x7, #:lo12:.LANCHOR52] 2444 ldr w0, [x0, #:lo12:.LANCHOR42] 2445 lsl w0, w0, 2 2446 mul w0, w0, w1 2447 ldrh w1, [x6, #:lo12:.LANCHOR56] 2448 adrp x6, .LANCHOR16 2449 add w1, w1, 9 2450 ldrb w6, [x6, #:lo12:.LANCHOR16] 2451 lsr w0, w0, w1 2452 adrp x1, .LANCHOR66 2453 add w0, w0, 2 2454 and w0, w0, 65535 2455 strh w0, [x1, #:lo12:.LANCHOR66] 2456 adrp x1, .LANCHOR67 2457 strh w2, [x1, #:lo12:.LANCHOR67] 2458 adrp x1, .LANCHOR68 2459 ldrh w2, [x10, #:lo12:.LANCHOR61] 2460 str wzr, [x1, #:lo12:.LANCHOR68] 2461 add w1, w2, 3 2462 strh w1, [x10, #:lo12:.LANCHOR61] 2463 ldr w1, [x4, #:lo12:.LANCHOR64] 2464 add w3, w1, 3 2465 str w3, [x4, #:lo12:.LANCHOR64] 2466 cbz w6, .L361 2467 add w1, w1, 5 2468 add w2, w2, 4 2469 strh w2, [x10, #:lo12:.LANCHOR61] 2470.L374: 2471 str w1, [x4, #:lo12:.LANCHOR64] 2472.L362: 2473 adrp x1, .LANCHOR40 2474 adrp x3, .LANCHOR69 2475 ldrh w1, [x1, #:lo12:.LANCHOR40] 2476 strh wzr, [x3, #:lo12:.LANCHOR69] 2477 lsl w2, w1, 1 2478 lsr w1, w1, 3 2479 add w2, w2, 48 2480 add w1, w1, 4 2481 add w0, w2, w0, lsl 2 2482 add w0, w0, w1 2483 ldrh w1, [x15, #:lo12:.LANCHOR55] 2484 cmp w0, w1, lsl 9 2485 bcs .L363 2486 mov w0, 1 2487 strh w0, [x3, #:lo12:.LANCHOR69] 2488.L363: 2489 mov w0, 0 2490 ldr x19, [sp, 16] 2491 ldp x29, x30, [sp], 32 2492 ret 2493.L356: 2494 mov w0, 4 2495 b .L372 2496.L359: 2497 add w3, w3, 4 2498 b .L373 2499.L361: 2500 cmp w3, 7 2501 bhi .L362 2502 mov w1, 8 2503 b .L374 2504 .size FtlConstantsInit, .-FtlConstantsInit 2505 .section .text.IsBlkInVendorPart,"ax",@progbits 2506 .align 2 2507 .global IsBlkInVendorPart 2508 .type IsBlkInVendorPart, %function 2509IsBlkInVendorPart: 2510 adrp x1, .LANCHOR70 2511 and w0, w0, 65535 2512 ldrh w1, [x1, #:lo12:.LANCHOR70] 2513 cbz w1, .L379 2514 adrp x1, .LANCHOR61 2515 ldrh w2, [x1, #:lo12:.LANCHOR61] 2516 adrp x1, .LANCHOR71 2517 ldr x3, [x1, #:lo12:.LANCHOR71] 2518 mov x1, 0 2519.L377: 2520 cmp w2, w1, uxth 2521 bhi .L378 2522.L379: 2523 mov w0, 0 2524 ret 2525.L378: 2526 add x1, x1, 1 2527 add x4, x3, x1, lsl 1 2528 ldrh w4, [x4, -2] 2529 cmp w4, w0 2530 bne .L377 2531 mov w0, 1 2532 ret 2533 .size IsBlkInVendorPart, .-IsBlkInVendorPart 2534 .section .text.FtlCacheMetchLpa,"ax",@progbits 2535 .align 2 2536 .global FtlCacheMetchLpa 2537 .type FtlCacheMetchLpa, %function 2538FtlCacheMetchLpa: 2539 adrp x2, .LANCHOR72 2540 ldr w4, [x2, #:lo12:.LANCHOR72] 2541 cbz w4, .L386 2542 adrp x2, .LANCHOR73 2543 mov x5, 24 2544 mov w6, 56 2545 ldr x2, [x2, #:lo12:.LANCHOR73] 2546 nop // between mem op and mult-accumulate 2547 umaddl x4, w4, w6, x5 2548 add x3, x2, 24 2549 add x2, x2, x4 2550.L383: 2551 cmp x3, x2 2552 bne .L385 2553.L386: 2554 mov w0, 0 2555 ret 2556.L385: 2557 ldr w4, [x3] 2558 cmp w4, w0 2559 bcc .L384 2560 cmp w4, w1 2561 bls .L387 2562.L384: 2563 add x3, x3, 56 2564 b .L383 2565.L387: 2566 mov w0, 1 2567 ret 2568 .size FtlCacheMetchLpa, .-FtlCacheMetchLpa 2569 .section .text.FtlGetCap,"ax",@progbits 2570 .align 2 2571 .global FtlGetCap 2572 .type FtlGetCap, %function 2573FtlGetCap: 2574 adrp x0, .LANCHOR68 2575 ldr w0, [x0, #:lo12:.LANCHOR68] 2576 ret 2577 .size FtlGetCap, .-FtlGetCap 2578 .section .text.FtlGetCapacity,"ax",@progbits 2579 .align 2 2580 .global FtlGetCapacity 2581 .type FtlGetCapacity, %function 2582FtlGetCapacity: 2583 adrp x0, .LANCHOR68 2584 ldr w0, [x0, #:lo12:.LANCHOR68] 2585 ret 2586 .size FtlGetCapacity, .-FtlGetCapacity 2587 .section .text.ftl_get_density,"ax",@progbits 2588 .align 2 2589 .global ftl_get_density 2590 .type ftl_get_density, %function 2591ftl_get_density: 2592 adrp x0, .LANCHOR68 2593 ldr w0, [x0, #:lo12:.LANCHOR68] 2594 ret 2595 .size ftl_get_density, .-ftl_get_density 2596 .section .text.FtlGetLpn,"ax",@progbits 2597 .align 2 2598 .global FtlGetLpn 2599 .type FtlGetLpn, %function 2600FtlGetLpn: 2601 adrp x0, .LANCHOR74 2602 ldr w0, [x0, #:lo12:.LANCHOR74] 2603 ret 2604 .size FtlGetLpn, .-FtlGetLpn 2605 .section .text.FtlGetCurEraseBlock,"ax",@progbits 2606 .align 2 2607 .global FtlGetCurEraseBlock 2608 .type FtlGetCurEraseBlock, %function 2609FtlGetCurEraseBlock: 2610 adrp x0, .LANCHOR38 2611 ldrh w1, [x0, #:lo12:.LANCHOR38] 2612 adrp x0, .LANCHOR75 2613 ldr w0, [x0, #:lo12:.LANCHOR75] 2614 mul w0, w1, w0 2615 ret 2616 .size FtlGetCurEraseBlock, .-FtlGetCurEraseBlock 2617 .section .text.FtlGetAllBlockNum,"ax",@progbits 2618 .align 2 2619 .global FtlGetAllBlockNum 2620 .type FtlGetAllBlockNum, %function 2621FtlGetAllBlockNum: 2622 adrp x0, .LANCHOR41 2623 ldrh w1, [x0, #:lo12:.LANCHOR41] 2624 adrp x0, .LANCHOR38 2625 ldrh w0, [x0, #:lo12:.LANCHOR38] 2626 mul w0, w1, w0 2627 ret 2628 .size FtlGetAllBlockNum, .-FtlGetAllBlockNum 2629 .section .text.FtlBbmMapBadBlock,"ax",@progbits 2630 .align 2 2631 .global FtlBbmMapBadBlock 2632 .type FtlBbmMapBadBlock, %function 2633FtlBbmMapBadBlock: 2634 stp x29, x30, [sp, -32]! 2635 and w1, w0, 65535 2636 adrp x0, .LANCHOR51 2637 mov w4, 1 2638 add x29, sp, 0 2639 ldrh w0, [x0, #:lo12:.LANCHOR51] 2640 str x19, [sp, 16] 2641 adrp x19, .LANCHOR76 2642 add x19, x19, :lo12:.LANCHOR76 2643 udiv w3, w1, w0 2644 and w2, w3, 65535 2645 msub w3, w3, w0, w1 2646 add x0, x19, x2, uxth 3 2647 and w3, w3, 65535 2648 and w6, w3, 31 2649 ldr x0, [x0, 32] 2650 ubfx x5, x3, 5, 11 2651 lsl x5, x5, 2 2652 lsl w4, w4, w6 2653 ldr w6, [x0, x5] 2654 orr w4, w4, w6 2655 str w4, [x0, x5] 2656 adrp x0, .LC2 2657 add x0, x0, :lo12:.LC2 2658 bl printf 2659 ldrh w0, [x19, 6] 2660 add w0, w0, 1 2661 strh w0, [x19, 6] 2662 mov w0, 0 2663 ldr x19, [sp, 16] 2664 ldp x29, x30, [sp], 32 2665 ret 2666 .size FtlBbmMapBadBlock, .-FtlBbmMapBadBlock 2667 .section .text.FtlBbmIsBadBlock,"ax",@progbits 2668 .align 2 2669 .global FtlBbmIsBadBlock 2670 .type FtlBbmIsBadBlock, %function 2671FtlBbmIsBadBlock: 2672 adrp x1, .LANCHOR51 2673 and w0, w0, 65535 2674 ldrh w1, [x1, #:lo12:.LANCHOR51] 2675 udiv w2, w0, w1 2676 msub w0, w2, w1, w0 2677 adrp x1, .LANCHOR76 2678 add x1, x1, :lo12:.LANCHOR76 2679 add x2, x1, x2, uxth 3 2680 and w0, w0, 65535 2681 ubfx x3, x0, 5, 11 2682 and w0, w0, 31 2683 ldr x1, [x2, 32] 2684 ldr w1, [x1, x3, lsl 2] 2685 lsr w0, w1, w0 2686 and w0, w0, 1 2687 ret 2688 .size FtlBbmIsBadBlock, .-FtlBbmIsBadBlock 2689 .section .text.FtlBbtInfoPrint,"ax",@progbits 2690 .align 2 2691 .global FtlBbtInfoPrint 2692 .type FtlBbtInfoPrint, %function 2693FtlBbtInfoPrint: 2694 ret 2695 .size FtlBbtInfoPrint, .-FtlBbtInfoPrint 2696 .section .text.V2P_block,"ax",@progbits 2697 .align 2 2698 .global V2P_block 2699 .type V2P_block, %function 2700V2P_block: 2701 adrp x2, .LANCHOR46 2702 and w0, w0, 65535 2703 adrp x4, .LANCHOR51 2704 and w1, w1, 65535 2705 ldrh w2, [x2, #:lo12:.LANCHOR46] 2706 ldrh w4, [x4, #:lo12:.LANCHOR51] 2707 udiv w3, w0, w2 2708 msub w0, w3, w2, w0 2709 madd w2, w2, w1, w0 2710 madd w0, w3, w4, w2 2711 ret 2712 .size V2P_block, .-V2P_block 2713 .section .text.P2V_plane,"ax",@progbits 2714 .align 2 2715 .global P2V_plane 2716 .type P2V_plane, %function 2717P2V_plane: 2718 and w3, w0, 65535 2719 adrp x0, .LANCHOR46 2720 ldrh w1, [x0, #:lo12:.LANCHOR46] 2721 adrp x0, .LANCHOR51 2722 ldrh w2, [x0, #:lo12:.LANCHOR51] 2723 udiv w0, w3, w1 2724 udiv w2, w3, w2 2725 msub w0, w0, w1, w3 2726 madd w0, w1, w2, w0 2727 ret 2728 .size P2V_plane, .-P2V_plane 2729 .section .text.P2V_block_in_plane,"ax",@progbits 2730 .align 2 2731 .global P2V_block_in_plane 2732 .type P2V_block_in_plane, %function 2733P2V_block_in_plane: 2734 and w2, w0, 65535 2735 adrp x0, .LANCHOR51 2736 ldrh w1, [x0, #:lo12:.LANCHOR51] 2737 udiv w0, w2, w1 2738 msub w0, w0, w1, w2 2739 adrp x1, .LANCHOR46 2740 ldrh w1, [x1, #:lo12:.LANCHOR46] 2741 and w0, w0, 65535 2742 udiv w0, w0, w1 2743 ret 2744 .size P2V_block_in_plane, .-P2V_block_in_plane 2745 .section .text.ftl_cmp_data_ver,"ax",@progbits 2746 .align 2 2747 .global ftl_cmp_data_ver 2748 .type ftl_cmp_data_ver, %function 2749ftl_cmp_data_ver: 2750 cmp w0, w1 2751 mov w2, -2147483648 2752 bls .L402 2753 sub w1, w0, w1 2754 cmp w1, w2 2755 cset w0, ls 2756 ret 2757.L402: 2758 sub w1, w1, w0 2759 cmp w1, w2 2760 cset w0, hi 2761 ret 2762 .size ftl_cmp_data_ver, .-ftl_cmp_data_ver 2763 .section .text.FtlFreeSysBlkQueueEmpty,"ax",@progbits 2764 .align 2 2765 .global FtlFreeSysBlkQueueEmpty 2766 .type FtlFreeSysBlkQueueEmpty, %function 2767FtlFreeSysBlkQueueEmpty: 2768 adrp x0, .LANCHOR77+6 2769 ldrh w0, [x0, #:lo12:.LANCHOR77+6] 2770 cmp w0, 0 2771 cset w0, eq 2772 ret 2773 .size FtlFreeSysBlkQueueEmpty, .-FtlFreeSysBlkQueueEmpty 2774 .section .text.FtlFreeSysBlkQueueFull,"ax",@progbits 2775 .align 2 2776 .global FtlFreeSysBlkQueueFull 2777 .type FtlFreeSysBlkQueueFull, %function 2778FtlFreeSysBlkQueueFull: 2779 adrp x0, .LANCHOR77+6 2780 ldrh w0, [x0, #:lo12:.LANCHOR77+6] 2781 cmp w0, 1024 2782 cset w0, eq 2783 ret 2784 .size FtlFreeSysBlkQueueFull, .-FtlFreeSysBlkQueueFull 2785 .section .text.FtlFreeSysBlkQueueIn,"ax",@progbits 2786 .align 2 2787 .global FtlFreeSysBlkQueueIn 2788 .type FtlFreeSysBlkQueueIn, %function 2789FtlFreeSysBlkQueueIn: 2790 stp x29, x30, [sp, -48]! 2791 add x29, sp, 0 2792 stp x19, x20, [sp, 16] 2793 and w20, w0, 65535 2794 str x21, [sp, 32] 2795 sub w2, w20, #1 2796 mov w0, 65533 2797 cmp w0, w2, uxth 2798 bcc .L406 2799 adrp x0, .LANCHOR77 2800 add x2, x0, :lo12:.LANCHOR77 2801 mov x19, x0 2802 ldrh w2, [x2, 6] 2803 cmp w2, 1024 2804 beq .L406 2805 and w1, w1, 65535 2806 cbz w1, .L408 2807 adrp x0, .LANCHOR78 2808 ldr w0, [x0, #:lo12:.LANCHOR78] 2809 cbnz w0, .L408 2810 mov w0, w20 2811 bl P2V_block_in_plane 2812 and w21, w0, 65535 2813 adrp x0, .LANCHOR79 2814 lsl w1, w20, 10 2815 mov w2, 1 2816 ldr x0, [x0, #:lo12:.LANCHOR79] 2817 str w1, [x0, 4] 2818 mov w1, w2 2819 bl FlashEraseBlocks 2820 adrp x1, .LANCHOR80 2821 ubfiz x0, x21, 1, 16 2822 ldr x2, [x1, #:lo12:.LANCHOR80] 2823 ldrh w1, [x2, x0] 2824 add w1, w1, 1 2825 strh w1, [x2, x0] 2826 adrp x1, .LANCHOR81 2827 ldr w0, [x1, #:lo12:.LANCHOR81] 2828 add w0, w0, 1 2829 str w0, [x1, #:lo12:.LANCHOR81] 2830.L408: 2831 add x0, x19, :lo12:.LANCHOR77 2832 ldrh w1, [x0, 6] 2833 add w1, w1, 1 2834 strh w1, [x0, 6] 2835 ldrh w1, [x0, 4] 2836 add x2, x0, x1, sxtw 1 2837 add w1, w1, 1 2838 and w1, w1, 1023 2839 strh w1, [x0, 4] 2840 strh w20, [x2, 8] 2841.L406: 2842 ldp x19, x20, [sp, 16] 2843 ldr x21, [sp, 32] 2844 ldp x29, x30, [sp], 48 2845 ret 2846 .size FtlFreeSysBlkQueueIn, .-FtlFreeSysBlkQueueIn 2847 .section .text.FtlFreeSysBLkSort,"ax",@progbits 2848 .align 2 2849 .global FtlFreeSysBLkSort 2850 .type FtlFreeSysBLkSort, %function 2851FtlFreeSysBLkSort: 2852 adrp x0, .LANCHOR77 2853 add x1, x0, :lo12:.LANCHOR77 2854 ldrh w2, [x1, 6] 2855 cbz w2, .L416 2856 adrp x2, .LANCHOR82+28 2857 ldrh w3, [x1, 2] 2858 mov w6, 0 2859 mov w4, 0 2860 ldrh w5, [x2, #:lo12:.LANCHOR82+28] 2861 ldrh w2, [x1, 4] 2862 and w5, w5, 31 2863.L418: 2864 cmp w5, w4 2865 bgt .L419 2866 cbz w6, .L416 2867 add x0, x0, :lo12:.LANCHOR77 2868 strh w3, [x0, 2] 2869 strh w2, [x0, 4] 2870.L416: 2871 ret 2872.L419: 2873 add x6, x1, x3, sxtw 1 2874 add w4, w4, 1 2875 add w3, w3, 1 2876 and w4, w4, 65535 2877 and w3, w3, 1023 2878 ldrh w7, [x6, 8] 2879 add x6, x1, x2, sxtw 1 2880 strh w7, [x6, 8] 2881 mov w6, 1 2882 add w2, w2, w6 2883 and w2, w2, 1023 2884 b .L418 2885 .size FtlFreeSysBLkSort, .-FtlFreeSysBLkSort 2886 .section .text.FtlFreeSysBlkQueueOut,"ax",@progbits 2887 .align 2 2888 .global FtlFreeSysBlkQueueOut 2889 .type FtlFreeSysBlkQueueOut, %function 2890FtlFreeSysBlkQueueOut: 2891 stp x29, x30, [sp, -64]! 2892 add x29, sp, 0 2893 stp x19, x20, [sp, 16] 2894 adrp x19, .LANCHOR77 2895 add x19, x19, :lo12:.LANCHOR77 2896 stp x21, x22, [sp, 32] 2897 stp x23, x24, [sp, 48] 2898 adrp x22, .LANCHOR78 2899 mov x23, x19 2900 add x22, x22, :lo12:.LANCHOR78 2901.L426: 2902 ldrh w1, [x19, 6] 2903 cbz w1, .L427 2904 ldrh w0, [x19, 2] 2905 sub w1, w1, #1 2906 strh w1, [x19, 6] 2907 add x2, x19, x0, sxtw 1 2908 add w0, w0, 1 2909 and w0, w0, 1023 2910 strh w0, [x19, 2] 2911 ldr w0, [x22] 2912 ldrh w20, [x2, 8] 2913 cbnz w0, .L428 2914 mov w0, w20 2915 bl P2V_block_in_plane 2916 adrp x1, .LANCHOR79 2917 and w21, w0, 65535 2918 lsl w2, w20, 10 2919 mov x24, x1 2920 ldr x0, [x1, #:lo12:.LANCHOR79] 2921 str w2, [x0, 4] 2922 adrp x2, .LANCHOR16 2923 ldrb w2, [x2, #:lo12:.LANCHOR16] 2924 cbz w2, .L429 2925 mov w2, 1 2926 mov w1, 0 2927 bl FlashEraseBlocks 2928.L429: 2929 ldr x0, [x24, #:lo12:.LANCHOR79] 2930 mov w2, 1 2931 mov w1, w2 2932 bl FlashEraseBlocks 2933 adrp x1, .LANCHOR80 2934 ubfiz x0, x21, 1, 16 2935 ldr x2, [x1, #:lo12:.LANCHOR80] 2936 ldrh w1, [x2, x0] 2937 add w1, w1, 1 2938 strh w1, [x2, x0] 2939 adrp x1, .LANCHOR81 2940 ldr w0, [x1, #:lo12:.LANCHOR81] 2941 add w0, w0, 1 2942 str w0, [x1, #:lo12:.LANCHOR81] 2943.L428: 2944 sub w0, w20, #1 2945 mov w1, 65533 2946 cmp w1, w0, uxth 2947 bcs .L431 2948 ldrh w2, [x23, 6] 2949 mov w1, w20 2950 adrp x0, .LC4 2951 add x0, x0, :lo12:.LC4 2952 bl printf 2953 b .L426 2954.L427: 2955 adrp x0, .LC3 2956 mov w1, 0 2957 add x0, x0, :lo12:.LC3 2958 bl printf 2959.L430: 2960 b .L430 2961.L431: 2962 mov w0, w20 2963 ldp x19, x20, [sp, 16] 2964 ldp x21, x22, [sp, 32] 2965 ldp x23, x24, [sp, 48] 2966 ldp x29, x30, [sp], 64 2967 ret 2968 .size FtlFreeSysBlkQueueOut, .-FtlFreeSysBlkQueueOut 2969 .section .text.test_node_in_list,"ax",@progbits 2970 .align 2 2971 .global test_node_in_list 2972 .type test_node_in_list, %function 2973test_node_in_list: 2974 ldr x2, [x0] 2975 adrp x0, .LANCHOR83 2976 mov x4, -6148914691236517206 2977 and w1, w1, 65535 2978 ldr x3, [x0, #:lo12:.LANCHOR83] 2979 movk x4, 0xaaab, lsl 0 2980 mov w5, 65535 2981 sub x0, x2, x3 2982 asr x0, x0, 1 2983 mul x0, x0, x4 2984 mov w4, 6 2985 and w0, w0, 65535 2986.L438: 2987 cmp w0, w1 2988 beq .L439 2989 ldrh w0, [x2] 2990 cmp w0, w5 2991 beq .L440 2992 umaddl x2, w0, w4, x3 2993 b .L438 2994.L439: 2995 mov w0, 1 2996 ret 2997.L440: 2998 mov w0, 0 2999 ret 3000 .size test_node_in_list, .-test_node_in_list 3001 .section .text.insert_data_list,"ax",@progbits 3002 .align 2 3003 .global insert_data_list 3004 .type insert_data_list, %function 3005insert_data_list: 3006 adrp x1, .LANCHOR40 3007 and w0, w0, 65535 3008 ldrh w14, [x1, #:lo12:.LANCHOR40] 3009 cmp w14, w0 3010 bls .L457 3011 adrp x1, .LANCHOR83 3012 mov w3, 6 3013 ldr x6, [x1, #:lo12:.LANCHOR83] 3014 umull x13, w0, w3 3015 mov w1, -1 3016 add x5, x6, x13 3017 strh w1, [x5, 2] 3018 strh w1, [x6, x13] 3019 adrp x1, .LANCHOR84 3020 mov x15, x1 3021 ldr x12, [x1, #:lo12:.LANCHOR84] 3022 cbnz x12, .L444 3023 str x5, [x1, #:lo12:.LANCHOR84] 3024.L457: 3025 mov w0, 0 3026 ret 3027.L444: 3028 stp x29, x30, [sp, -32]! 3029 adrp x1, .LANCHOR85 3030 ubfiz x2, x0, 1, 16 3031 mov x4, -6148914691236517206 3032 add x29, sp, 0 3033 ldr x16, [x1, #:lo12:.LANCHOR85] 3034 movk x4, 0xaaab, lsl 0 3035 ldrh w1, [x5, 4] 3036 mov w8, -1 3037 mov w11, w8 3038 stp x19, x20, [sp, 16] 3039 cmp w1, 0 3040 mov w20, 65535 3041 ldrh w7, [x16, x2] 3042 mul w7, w7, w1 3043 sub x1, x12, x6 3044 asr x1, x1, 1 3045 csel w7, w7, w8, ne 3046 mov w8, w3 3047 mul x1, x1, x4 3048 adrp x4, .LANCHOR80 3049 ldr x17, [x4, #:lo12:.LANCHOR80] 3050 and w1, w1, 65535 3051 mov x4, x12 3052 add x10, x17, x2 3053 mov w2, 0 3054.L452: 3055 add w2, w2, 1 3056 and w2, w2, 65535 3057 cmp w14, w2 3058 bcc .L443 3059 cmp w1, w0 3060 beq .L443 3061 ubfiz x30, x1, 1, 16 3062 ldrh w19, [x4, 4] 3063 cmp w19, 0 3064 ldrh w3, [x16, x30] 3065 mul w3, w3, w19 3066 csel w3, w3, w11, ne 3067 cmp w7, w3 3068 bne .L448 3069 ldrh w19, [x17, x30] 3070 ldrh w3, [x10] 3071 cmp w19, w3 3072 bcc .L450 3073.L449: 3074 strh w1, [x6, x13] 3075 cmp x4, x12 3076 ldrh w1, [x4, 2] 3077 strh w1, [x5, 2] 3078 bne .L453 3079 strh w0, [x4, 2] 3080 str x5, [x15, #:lo12:.LANCHOR84] 3081 b .L443 3082.L448: 3083 bcc .L449 3084.L450: 3085 ldrh w3, [x4] 3086 cmp w3, w20 3087 bne .L451 3088 strh w1, [x5, 2] 3089 strh w0, [x4] 3090 adrp x0, .LANCHOR86 3091 str x5, [x0, #:lo12:.LANCHOR86] 3092.L443: 3093 mov w0, 0 3094 ldp x19, x20, [sp, 16] 3095 ldp x29, x30, [sp], 32 3096 ret 3097.L451: 3098 umaddl x4, w3, w8, x6 3099 mov w1, w3 3100 b .L452 3101.L453: 3102 ldrh w1, [x4, 2] 3103 mov w2, 6 3104 umull x1, w1, w2 3105 strh w0, [x6, x1] 3106 strh w0, [x4, 2] 3107 b .L443 3108 .size insert_data_list, .-insert_data_list 3109 .section .text.INSERT_DATA_LIST,"ax",@progbits 3110 .align 2 3111 .global INSERT_DATA_LIST 3112 .type INSERT_DATA_LIST, %function 3113INSERT_DATA_LIST: 3114 stp x29, x30, [sp, -16]! 3115 add x29, sp, 0 3116 bl insert_data_list 3117 adrp x1, .LANCHOR87 3118 ldrh w0, [x1, #:lo12:.LANCHOR87] 3119 add w0, w0, 1 3120 and w0, w0, 65535 3121 strh w0, [x1, #:lo12:.LANCHOR87] 3122 adrp x1, .LANCHOR40 3123 ldrh w1, [x1, #:lo12:.LANCHOR40] 3124 cmp w1, w0 3125 bcs .L459 3126 mov w2, 245 3127 adrp x1, .LANCHOR88 3128 adrp x0, .LC5 3129 add x1, x1, :lo12:.LANCHOR88 3130 add x0, x0, :lo12:.LC5 3131 bl printf 3132 ldp x29, x30, [sp], 16 3133 adrp x1, .LC6 3134 adrp x0, .LC7 3135 add x1, x1, :lo12:.LC6 3136 add x0, x0, :lo12:.LC7 3137 b printf 3138.L459: 3139 ldp x29, x30, [sp], 16 3140 ret 3141 .size INSERT_DATA_LIST, .-INSERT_DATA_LIST 3142 .section .text.insert_free_list,"ax",@progbits 3143 .align 2 3144 .global insert_free_list 3145 .type insert_free_list, %function 3146insert_free_list: 3147 and w0, w0, 65535 3148 mov w7, 65535 3149 cmp w0, w7 3150 beq .L463 3151 adrp x1, .LANCHOR83 3152 mov w6, 6 3153 ldr x3, [x1, #:lo12:.LANCHOR83] 3154 umull x8, w0, w6 3155 mov w1, -1 3156 add x4, x3, x8 3157 strh w1, [x4, 2] 3158 strh w1, [x3, x8] 3159 adrp x1, .LANCHOR89 3160 mov x12, x1 3161 ldr x5, [x1, #:lo12:.LANCHOR89] 3162 cbnz x5, .L464 3163 str x4, [x1, #:lo12:.LANCHOR89] 3164.L463: 3165 mov w0, 0 3166 ret 3167.L464: 3168 adrp x1, .LANCHOR80 3169 mov x2, -6148914691236517206 3170 movk x2, 0xaaab, lsl 0 3171 ldr x11, [x1, #:lo12:.LANCHOR80] 3172 ubfiz x1, x0, 1, 16 3173 ldrh w13, [x11, x1] 3174 sub x1, x5, x3 3175 asr x1, x1, 1 3176 mul x1, x1, x2 3177 mov x2, x5 3178 and w1, w1, 65535 3179.L467: 3180 ubfiz x10, x1, 1, 16 3181 ldrh w10, [x11, x10] 3182 cmp w10, w13 3183 bcs .L465 3184 ldrh w10, [x2] 3185 cmp w10, w7 3186 bne .L466 3187 strh w1, [x4, 2] 3188 strh w0, [x2] 3189 b .L463 3190.L466: 3191 umaddl x2, w10, w6, x3 3192 mov w1, w10 3193 b .L467 3194.L465: 3195 ldrh w6, [x2, 2] 3196 cmp x2, x5 3197 strh w6, [x4, 2] 3198 strh w1, [x3, x8] 3199 bne .L468 3200 strh w0, [x2, 2] 3201 str x4, [x12, #:lo12:.LANCHOR89] 3202 b .L463 3203.L468: 3204 ldrh w1, [x2, 2] 3205 mov w4, 6 3206 umull x1, w1, w4 3207 strh w0, [x3, x1] 3208 strh w0, [x2, 2] 3209 b .L463 3210 .size insert_free_list, .-insert_free_list 3211 .section .text.INSERT_FREE_LIST,"ax",@progbits 3212 .align 2 3213 .global INSERT_FREE_LIST 3214 .type INSERT_FREE_LIST, %function 3215INSERT_FREE_LIST: 3216 stp x29, x30, [sp, -16]! 3217 add x29, sp, 0 3218 bl insert_free_list 3219 adrp x1, .LANCHOR90 3220 ldrh w0, [x1, #:lo12:.LANCHOR90] 3221 add w0, w0, 1 3222 and w0, w0, 65535 3223 strh w0, [x1, #:lo12:.LANCHOR90] 3224 adrp x1, .LANCHOR40 3225 ldrh w1, [x1, #:lo12:.LANCHOR40] 3226 cmp w1, w0 3227 bcs .L469 3228 mov w2, 238 3229 adrp x1, .LANCHOR91 3230 adrp x0, .LC5 3231 add x1, x1, :lo12:.LANCHOR91 3232 add x0, x0, :lo12:.LC5 3233 bl printf 3234 ldp x29, x30, [sp], 16 3235 adrp x1, .LC6 3236 adrp x0, .LC7 3237 add x1, x1, :lo12:.LC6 3238 add x0, x0, :lo12:.LC7 3239 b printf 3240.L469: 3241 ldp x29, x30, [sp], 16 3242 ret 3243 .size INSERT_FREE_LIST, .-INSERT_FREE_LIST 3244 .section .text.List_remove_node,"ax",@progbits 3245 .align 2 3246 .global List_remove_node 3247 .type List_remove_node, %function 3248List_remove_node: 3249 stp x29, x30, [sp, -64]! 3250 and w1, w1, 65535 3251 add x29, sp, 0 3252 stp x19, x20, [sp, 16] 3253 adrp x20, .LANCHOR83 3254 stp x21, x22, [sp, 32] 3255 mov x22, x0 3256 mov w0, 6 3257 str x23, [sp, 48] 3258 ldr x23, [x20, #:lo12:.LANCHOR83] 3259 umull x21, w1, w0 3260 mov w0, 65535 3261 add x19, x23, x21 3262 ldrh w1, [x19, 2] 3263 cmp w1, w0 3264 bne .L473 3265 ldr x0, [x22] 3266 cmp x19, x0 3267 beq .L473 3268 mov w2, 435 3269 adrp x1, .LANCHOR92 3270 adrp x0, .LC5 3271 add x1, x1, :lo12:.LANCHOR92 3272 add x0, x0, :lo12:.LC5 3273 bl printf 3274 adrp x1, .LC6 3275 adrp x0, .LC7 3276 add x1, x1, :lo12:.LC6 3277 add x0, x0, :lo12:.LC7 3278 bl printf 3279.L473: 3280 ldr x0, [x22] 3281 mov w1, 65535 3282 cmp x19, x0 3283 ldrh w0, [x23, x21] 3284 bne .L474 3285 cmp w0, w1 3286 bne .L475 3287 str xzr, [x22] 3288.L476: 3289 mov w0, -1 3290 strh w0, [x23, x21] 3291 strh w0, [x19, 2] 3292 mov w0, 0 3293 ldp x19, x20, [sp, 16] 3294 ldp x21, x22, [sp, 32] 3295 ldr x23, [sp, 48] 3296 ldp x29, x30, [sp], 64 3297 ret 3298.L475: 3299 ldr x1, [x20, #:lo12:.LANCHOR83] 3300 mov w2, 6 3301 umaddl x0, w0, w2, x1 3302 mov w1, -1 3303 str x0, [x22] 3304 strh w1, [x0, 2] 3305 b .L476 3306.L474: 3307 cmp w0, w1 3308 ldrh w1, [x19, 2] 3309 bne .L477 3310 cmp w1, w0 3311 beq .L476 3312 mov w0, 6 3313 mov w2, -1 3314 umull x1, w1, w0 3315 ldr x0, [x20, #:lo12:.LANCHOR83] 3316 strh w2, [x0, x1] 3317 b .L476 3318.L477: 3319 ldr x2, [x20, #:lo12:.LANCHOR83] 3320 mov w3, 6 3321 umaddl x4, w0, w3, x2 3322 strh w1, [x4, 2] 3323 ldrh w1, [x19, 2] 3324 umull x1, w1, w3 3325 strh w0, [x2, x1] 3326 b .L476 3327 .size List_remove_node, .-List_remove_node 3328 .section .text.List_pop_index_node,"ax",@progbits 3329 .align 2 3330 .global List_pop_index_node 3331 .type List_pop_index_node, %function 3332List_pop_index_node: 3333 ldr x2, [x0] 3334 cbz x2, .L485 3335 stp x29, x30, [sp, -32]! 3336 adrp x3, .LANCHOR83 3337 and w1, w1, 65535 3338 mov w4, 65535 3339 add x29, sp, 0 3340 str x19, [sp, 16] 3341 mov w5, 6 3342 ldr x19, [x3, #:lo12:.LANCHOR83] 3343.L481: 3344 cbnz w1, .L482 3345.L484: 3346 sub x19, x2, x19 3347 mov x2, -6148914691236517206 3348 asr x19, x19, 1 3349 movk x2, 0xaaab, lsl 0 3350 mul x19, x19, x2 3351 and w19, w19, 65535 3352 mov w1, w19 3353 bl List_remove_node 3354 mov w0, w19 3355 ldr x19, [sp, 16] 3356 ldp x29, x30, [sp], 32 3357 ret 3358.L482: 3359 ldrh w3, [x2] 3360 cmp w3, w4 3361 beq .L484 3362 sub w1, w1, #1 3363 umaddl x2, w3, w5, x19 3364 and w1, w1, 65535 3365 b .L481 3366.L485: 3367 mov w0, 65535 3368 ret 3369 .size List_pop_index_node, .-List_pop_index_node 3370 .section .text.List_get_gc_head_node,"ax",@progbits 3371 .align 2 3372 .global List_get_gc_head_node 3373 .type List_get_gc_head_node, %function 3374List_get_gc_head_node: 3375 and w2, w0, 65535 3376 adrp x0, .LANCHOR84 3377 ldr x1, [x0, #:lo12:.LANCHOR84] 3378 cbz x1, .L495 3379 adrp x0, .LANCHOR83 3380 mov w4, 6 3381 ldr x3, [x0, #:lo12:.LANCHOR83] 3382 mov w0, 65535 3383.L492: 3384 cbz w2, .L493 3385 ldrh w1, [x1] 3386 cmp w1, w0 3387 bne .L494 3388 ret 3389.L494: 3390 sub w2, w2, #1 3391 umaddl x1, w1, w4, x3 3392 and w2, w2, 65535 3393 b .L492 3394.L495: 3395 mov w0, 65535 3396 ret 3397.L493: 3398 sub x0, x1, x3 3399 mov x1, -6148914691236517206 3400 asr x0, x0, 1 3401 movk x1, 0xaaab, lsl 0 3402 mul x0, x0, x1 3403 and w0, w0, 65535 3404 ret 3405 .size List_get_gc_head_node, .-List_get_gc_head_node 3406 .section .text.List_update_data_list,"ax",@progbits 3407 .align 2 3408 .global List_update_data_list 3409 .type List_update_data_list, %function 3410List_update_data_list: 3411 stp x29, x30, [sp, -80]! 3412 add x29, sp, 0 3413 stp x19, x20, [sp, 16] 3414 and w19, w0, 65535 3415 adrp x0, .LANCHOR93 3416 stp x21, x22, [sp, 32] 3417 stp x23, x24, [sp, 48] 3418 ldrh w0, [x0, #:lo12:.LANCHOR93] 3419 stp x25, x26, [sp, 64] 3420 cmp w0, w19 3421 beq .L498 3422 adrp x0, .LANCHOR94 3423 ldrh w0, [x0, #:lo12:.LANCHOR94] 3424 cmp w0, w19 3425 beq .L498 3426 adrp x0, .LANCHOR95 3427 ldrh w0, [x0, #:lo12:.LANCHOR95] 3428 cmp w0, w19 3429 beq .L498 3430 adrp x0, .LANCHOR83 3431 mov w21, 6 3432 adrp x24, .LANCHOR84 3433 mov x26, x0 3434 umull x21, w19, w21 3435 ldr x23, [x0, #:lo12:.LANCHOR83] 3436 ldr x1, [x24, #:lo12:.LANCHOR84] 3437 add x22, x23, x21 3438 cmp x22, x1 3439 beq .L498 3440 adrp x1, .LANCHOR85 3441 ubfiz x0, x19, 1, 16 3442 mov x25, x1 3443 ldr x2, [x1, #:lo12:.LANCHOR85] 3444 mov w1, 65535 3445 ldrh w20, [x2, x0] 3446 ldrh w0, [x22, 4] 3447 cmp w0, 0 3448 mul w20, w20, w0 3449 ldrh w0, [x22, 2] 3450 csinv w20, w20, wzr, ne 3451 cmp w0, w1 3452 bne .L501 3453 ldrh w1, [x23, x21] 3454 cmp w1, w0 3455 bne .L501 3456 mov w2, 571 3457 adrp x1, .LANCHOR96 3458 adrp x0, .LC5 3459 add x1, x1, :lo12:.LANCHOR96 3460 add x0, x0, :lo12:.LC5 3461 bl printf 3462 adrp x1, .LC6 3463 adrp x0, .LC7 3464 add x1, x1, :lo12:.LC6 3465 add x0, x0, :lo12:.LC7 3466 bl printf 3467.L501: 3468 ldrh w0, [x22, 2] 3469 mov w1, 65535 3470 cmp w0, w1 3471 bne .L502 3472 ldrh w1, [x23, x21] 3473 cmp w1, w0 3474 beq .L498 3475.L502: 3476 mov w1, 6 3477 mov x2, -6148914691236517206 3478 movk x2, 0xaaab, lsl 0 3479 umull x0, w0, w1 3480 asr x1, x0, 1 3481 mul x1, x1, x2 3482 ldr x2, [x25, #:lo12:.LANCHOR85] 3483 ldrh w1, [x2, x1, lsl 1] 3484 ldr x2, [x26, #:lo12:.LANCHOR83] 3485 add x0, x2, x0 3486 ldrh w2, [x0, 4] 3487 cmp w2, 0 3488 mul w0, w1, w2 3489 csinv w0, w0, wzr, ne 3490 cmp w20, w0 3491 bcs .L498 3492 adrp x20, .LANCHOR87 3493 mov w1, w19 3494 add x0, x24, :lo12:.LANCHOR84 3495 bl List_remove_node 3496 ldrh w0, [x20, #:lo12:.LANCHOR87] 3497 cbnz w0, .L504 3498 mov w2, 585 3499 adrp x1, .LANCHOR96 3500 adrp x0, .LC5 3501 add x1, x1, :lo12:.LANCHOR96 3502 add x0, x0, :lo12:.LC5 3503 bl printf 3504 adrp x1, .LC6 3505 adrp x0, .LC7 3506 add x1, x1, :lo12:.LC6 3507 add x0, x0, :lo12:.LC7 3508 bl printf 3509.L504: 3510 ldrh w0, [x20, #:lo12:.LANCHOR87] 3511 sub w0, w0, #1 3512 strh w0, [x20, #:lo12:.LANCHOR87] 3513 mov w0, w19 3514 bl INSERT_DATA_LIST 3515.L498: 3516 mov w0, 0 3517 ldp x19, x20, [sp, 16] 3518 ldp x21, x22, [sp, 32] 3519 ldp x23, x24, [sp, 48] 3520 ldp x25, x26, [sp, 64] 3521 ldp x29, x30, [sp], 80 3522 ret 3523 .size List_update_data_list, .-List_update_data_list 3524 .section .text.ftl_map_blk_alloc_new_blk,"ax",@progbits 3525 .align 2 3526 .global ftl_map_blk_alloc_new_blk 3527 .type ftl_map_blk_alloc_new_blk, %function 3528ftl_map_blk_alloc_new_blk: 3529 stp x29, x30, [sp, -48]! 3530 add x29, sp, 0 3531 stp x19, x20, [sp, 16] 3532 mov x19, x0 3533 ldrh w1, [x0, 10] 3534 mov w20, 0 3535 ldr x0, [x0, 16] 3536 str x21, [sp, 32] 3537.L509: 3538 cmp w20, w1 3539 beq .L513 3540 mov x21, x0 3541 ldrh w2, [x0], 2 3542 cbnz w2, .L510 3543 bl FtlFreeSysBlkQueueOut 3544 and w1, w0, 65535 3545 strh w0, [x21] 3546 sub w2, w1, #1 3547 mov w0, 65533 3548 cmp w0, w2, uxth 3549 bcs .L511 3550 adrp x0, .LANCHOR77+6 3551 ldrh w2, [x0, #:lo12:.LANCHOR77+6] 3552 adrp x0, .LC8 3553 add x0, x0, :lo12:.LC8 3554 bl printf 3555.L512: 3556 b .L512 3557.L511: 3558 ldr w0, [x19, 48] 3559 strh wzr, [x19, 2] 3560 add w0, w0, 1 3561 str w0, [x19, 48] 3562 ldrh w0, [x19, 8] 3563 strh w20, [x19] 3564 add w0, w0, 1 3565 strh w0, [x19, 8] 3566.L513: 3567 ldrh w0, [x19, 10] 3568 cmp w0, w20 3569 bhi .L515 3570 mov w2, 715 3571 adrp x1, .LANCHOR97 3572 adrp x0, .LC5 3573 add x1, x1, :lo12:.LANCHOR97 3574 add x0, x0, :lo12:.LC5 3575 bl printf 3576 adrp x1, .LC6 3577 adrp x0, .LC7 3578 add x1, x1, :lo12:.LC6 3579 add x0, x0, :lo12:.LC7 3580 bl printf 3581.L515: 3582 mov w0, 0 3583 ldr x21, [sp, 32] 3584 ldp x19, x20, [sp, 16] 3585 ldp x29, x30, [sp], 48 3586 ret 3587.L510: 3588 add w20, w20, 1 3589 and w20, w20, 65535 3590 b .L509 3591 .size ftl_map_blk_alloc_new_blk, .-ftl_map_blk_alloc_new_blk 3592 .section .text.select_l2p_ram_region,"ax",@progbits 3593 .align 2 3594 .global select_l2p_ram_region 3595 .type select_l2p_ram_region, %function 3596select_l2p_ram_region: 3597 stp x29, x30, [sp, -32]! 3598 adrp x0, .LANCHOR67 3599 mov x1, 0 3600 mov w3, 65535 3601 add x29, sp, 0 3602 ldrh w2, [x0, #:lo12:.LANCHOR67] 3603 adrp x0, .LANCHOR98 3604 str x19, [sp, 16] 3605 ldr x0, [x0, #:lo12:.LANCHOR98] 3606.L518: 3607 and w19, w1, 65535 3608 cmp w19, w2 3609 bcc .L520 3610 add x3, x0, 4 3611 mov w19, w2 3612 mov w5, -2147483648 3613 mov w1, 0 3614.L521: 3615 cmp w1, w2 3616 bne .L523 3617 cmp w19, w2 3618 bcc .L519 3619 adrp x1, .LANCHOR99 3620 mov w19, w2 3621 mov w3, -1 3622 ldrh w4, [x1, #:lo12:.LANCHOR99] 3623 mov w1, 0 3624.L524: 3625 cmp w1, w2 3626 bne .L526 3627 cmp w19, w1 3628 bcc .L519 3629 mov w2, 977 3630 adrp x1, .LANCHOR100 3631 adrp x0, .LC5 3632 add x1, x1, :lo12:.LANCHOR100 3633 add x0, x0, :lo12:.LC5 3634 bl printf 3635 adrp x1, .LC6 3636 adrp x0, .LC7 3637 add x1, x1, :lo12:.LC6 3638 add x0, x0, :lo12:.LC7 3639 bl printf 3640 b .L519 3641.L520: 3642 add x1, x1, 1 3643 add x4, x0, x1, lsl 4 3644 ldrh w4, [x4, -16] 3645 cmp w4, w3 3646 bne .L518 3647.L519: 3648 mov w0, w19 3649 ldr x19, [sp, 16] 3650 ldp x29, x30, [sp], 32 3651 ret 3652.L523: 3653 ldr w4, [x3] 3654 tbnz w4, #31, .L522 3655 cmp w5, w4 3656 bls .L522 3657 mov w5, w4 3658 mov w19, w1 3659.L522: 3660 add w1, w1, 1 3661 add x3, x3, 16 3662 and w1, w1, 65535 3663 b .L521 3664.L526: 3665 ldr w6, [x0, 4] 3666 cmp w3, w6 3667 bls .L525 3668 ldrh w5, [x0] 3669 cmp w5, w4 3670 csel w3, w3, w6, eq 3671 csel w19, w19, w1, eq 3672.L525: 3673 add w1, w1, 1 3674 add x0, x0, 16 3675 and w1, w1, 65535 3676 b .L524 3677 .size select_l2p_ram_region, .-select_l2p_ram_region 3678 .section .text.FtlUpdateVaildLpn,"ax",@progbits 3679 .align 2 3680 .global FtlUpdateVaildLpn 3681 .type FtlUpdateVaildLpn, %function 3682FtlUpdateVaildLpn: 3683 adrp x2, .LANCHOR101 3684 mov x3, x2 3685 ldrh w1, [x2, #:lo12:.LANCHOR101] 3686 cmp w1, 4 3687 bhi .L529 3688 cbnz w0, .L529 3689 add w1, w1, 1 3690 strh w1, [x2, #:lo12:.LANCHOR101] 3691 ret 3692.L529: 3693 adrp x1, .LANCHOR40 3694 adrp x0, .LANCHOR102 3695 strh wzr, [x3, #:lo12:.LANCHOR101] 3696 mov w2, 0 3697 ldrh w5, [x1, #:lo12:.LANCHOR40] 3698 adrp x1, .LANCHOR85 3699 str wzr, [x0, #:lo12:.LANCHOR102] 3700 mov w3, 0 3701 ldr x6, [x1, #:lo12:.LANCHOR85] 3702 mov w7, 65535 3703 mov x1, 0 3704.L530: 3705 cmp w5, w1, uxth 3706 bhi .L532 3707 cbz w3, .L528 3708 str w2, [x0, #:lo12:.LANCHOR102] 3709.L528: 3710 ret 3711.L532: 3712 ldrh w4, [x6, x1, lsl 1] 3713 cmp w4, w7 3714 beq .L531 3715 add w2, w2, w4 3716 mov w3, 1 3717.L531: 3718 add x1, x1, 1 3719 b .L530 3720 .size FtlUpdateVaildLpn, .-FtlUpdateVaildLpn 3721 .section .text.ftl_set_blk_mode,"ax",@progbits 3722 .align 2 3723 .global ftl_set_blk_mode 3724 .type ftl_set_blk_mode, %function 3725ftl_set_blk_mode: 3726 and w0, w0, 65535 3727 cbz w1, .L539 3728 b ftl_set_blk_mode.part.11 3729.L539: 3730 adrp x1, .LANCHOR1 3731 ubfx x2, x0, 5, 11 3732 lsl x2, x2, 2 3733 ldr x3, [x1, #:lo12:.LANCHOR1] 3734 and w1, w0, 31 3735 mov w0, 1 3736 lsl w0, w0, w1 3737 ldr w1, [x3, x2] 3738 bic w0, w1, w0 3739 str w0, [x3, x2] 3740 ret 3741 .size ftl_set_blk_mode, .-ftl_set_blk_mode 3742 .section .text.ftl_get_blk_mode,"ax",@progbits 3743 .align 2 3744 .global ftl_get_blk_mode 3745 .type ftl_get_blk_mode, %function 3746ftl_get_blk_mode: 3747 adrp x1, .LANCHOR1 3748 and w0, w0, 65535 3749 ldr x1, [x1, #:lo12:.LANCHOR1] 3750 ubfx x2, x0, 5, 11 3751 and w0, w0, 31 3752 ldr w1, [x1, x2, lsl 2] 3753 lsr w0, w1, w0 3754 and w0, w0, 1 3755 ret 3756 .size ftl_get_blk_mode, .-ftl_get_blk_mode 3757 .section .text.ftl_sb_update_avl_pages,"ax",@progbits 3758 .align 2 3759 .global ftl_sb_update_avl_pages 3760 .type ftl_sb_update_avl_pages, %function 3761ftl_sb_update_avl_pages: 3762 and w2, w2, 65535 3763 and w6, w1, 65535 3764 ubfiz x4, x2, 1, 16 3765 adrp x1, .LANCHOR38 3766 add x4, x4, 16 3767 strh wzr, [x0, 4] 3768 add x4, x0, x4 3769 ldrh w3, [x1, #:lo12:.LANCHOR38] 3770 mov w1, 65535 3771.L542: 3772 cmp w2, w3 3773 bcc .L544 3774 adrp x1, .LANCHOR52 3775 ubfiz x3, x3, 1, 16 3776 add x3, x3, 16 3777 add x2, x0, 16 3778 ldrh w1, [x1, #:lo12:.LANCHOR52] 3779 add x3, x0, x3 3780 mov w5, 65535 3781 sub w1, w1, #1 3782 and w1, w1, 65535 3783 sub w1, w1, w6 3784.L545: 3785 cmp x2, x3 3786 bne .L547 3787 ret 3788.L544: 3789 ldrh w5, [x4] 3790 cmp w5, w1 3791 beq .L543 3792 ldrh w5, [x0, 4] 3793 add w5, w5, 1 3794 strh w5, [x0, 4] 3795.L543: 3796 add w2, w2, 1 3797 add x4, x4, 2 3798 and w2, w2, 65535 3799 b .L542 3800.L547: 3801 ldrh w4, [x2] 3802 cmp w4, w5 3803 beq .L546 3804 ldrh w4, [x0, 4] 3805 add w4, w1, w4 3806 strh w4, [x0, 4] 3807.L546: 3808 add x2, x2, 2 3809 b .L545 3810 .size ftl_sb_update_avl_pages, .-ftl_sb_update_avl_pages 3811 .section .text.make_superblock,"ax",@progbits 3812 .align 2 3813 .global make_superblock 3814 .type make_superblock, %function 3815make_superblock: 3816 stp x29, x30, [sp, -32]! 3817 add x29, sp, 0 3818 ldrh w1, [x0] 3819 str x19, [sp, 16] 3820 mov x19, x0 3821 adrp x0, .LANCHOR40 3822 ldrh w0, [x0, #:lo12:.LANCHOR40] 3823 cmp w1, w0 3824 bcc .L549 3825 mov w2, 2819 3826 adrp x1, .LANCHOR103 3827 adrp x0, .LC5 3828 add x1, x1, :lo12:.LANCHOR103 3829 add x0, x0, :lo12:.LC5 3830 bl printf 3831 adrp x1, .LC6 3832 adrp x0, .LC7 3833 add x1, x1, :lo12:.LC6 3834 add x0, x0, :lo12:.LC7 3835 bl printf 3836.L549: 3837 adrp x0, .LANCHOR38 3838 adrp x7, .LANCHOR47 3839 add x6, x19, 16 3840 add x7, x7, :lo12:.LANCHOR47 3841 ldrh w8, [x0, #:lo12:.LANCHOR38] 3842 mov x5, 0 3843 strh wzr, [x19, 4] 3844 mov w10, -1 3845 strb wzr, [x19, 7] 3846.L550: 3847 cmp w8, w5, uxth 3848 bhi .L552 3849 adrp x1, .LANCHOR52 3850 ldrb w0, [x19, 7] 3851 strb wzr, [x19, 9] 3852 ldrh w1, [x1, #:lo12:.LANCHOR52] 3853 mul w0, w0, w1 3854 strh w0, [x19, 4] 3855 adrp x0, .LANCHOR104 3856 ldr w0, [x0, #:lo12:.LANCHOR104] 3857 cbz w0, .L553 3858 adrp x0, .LANCHOR80 3859 ldrh w1, [x19] 3860 ldr x0, [x0, #:lo12:.LANCHOR80] 3861 ldrh w0, [x0, x1, lsl 1] 3862 cmp w0, 79 3863 bhi .L553 3864 mov w0, 1 3865 strb w0, [x19, 9] 3866.L553: 3867 adrp x0, .LANCHOR2 3868 ldrb w0, [x0, #:lo12:.LANCHOR2] 3869 cbz w0, .L554 3870 mov w0, 1 3871 strb w0, [x19, 9] 3872.L554: 3873 mov w0, 0 3874 ldr x19, [sp, 16] 3875 ldp x29, x30, [sp], 32 3876 ret 3877.L552: 3878 ldrh w1, [x19] 3879 ldrb w0, [x7, x5] 3880 bl V2P_block 3881 mov w4, w0 3882 strh w10, [x6] 3883 bl FtlBbmIsBadBlock 3884 cbnz w0, .L551 3885 strh w4, [x6] 3886 ldrb w0, [x19, 7] 3887 add w0, w0, 1 3888 strb w0, [x19, 7] 3889.L551: 3890 add x5, x5, 1 3891 add x6, x6, 2 3892 b .L550 3893 .size make_superblock, .-make_superblock 3894 .section .text.update_multiplier_value,"ax",@progbits 3895 .align 2 3896 .global update_multiplier_value 3897 .type update_multiplier_value, %function 3898update_multiplier_value: 3899 and w6, w0, 65535 3900 adrp x0, .LANCHOR38 3901 mov x7, 0 3902 adrp x8, .LANCHOR47 3903 ldrh w10, [x0, #:lo12:.LANCHOR38] 3904 adrp x0, .LANCHOR52 3905 mov w5, 0 3906 add x8, x8, :lo12:.LANCHOR47 3907 ldrh w11, [x0, #:lo12:.LANCHOR52] 3908 cmp w10, w7, uxth 3909 bhi .L574 3910 cbz w5, .L572 3911 mov w0, 32768 3912 sdiv w5, w0, w5 3913.L573: 3914 adrp x0, .LANCHOR83 3915 mov w1, 6 3916 ldr x0, [x0, #:lo12:.LANCHOR83] 3917 umaddl x6, w6, w1, x0 3918 mov w0, 0 3919 strh w5, [x6, 4] 3920 ret 3921.L567: 3922 mov w5, 0 3923 b .L566 3924.L572: 3925 mov w5, 0 3926 b .L573 3927.L574: 3928 stp x29, x30, [sp, -16]! 3929 add x29, sp, 0 3930.L565: 3931 ldrb w0, [x8, x7] 3932 mov w1, w6 3933 bl V2P_block 3934 bl FtlBbmIsBadBlock 3935 cbnz w0, .L564 3936 add w5, w5, w11 3937 and w5, w5, 65535 3938.L564: 3939 add x7, x7, 1 3940 cmp w10, w7, uxth 3941 bhi .L565 3942 cbz w5, .L567 3943 mov w0, 32768 3944 sdiv w5, w0, w5 3945.L566: 3946 adrp x0, .LANCHOR83 3947 mov w1, 6 3948 ldr x0, [x0, #:lo12:.LANCHOR83] 3949 umaddl x6, w6, w1, x0 3950 mov w0, 0 3951 strh w5, [x6, 4] 3952 ldp x29, x30, [sp], 16 3953 ret 3954 .size update_multiplier_value, .-update_multiplier_value 3955 .section .text.GetFreeBlockMinEraseCount,"ax",@progbits 3956 .align 2 3957 .global GetFreeBlockMinEraseCount 3958 .type GetFreeBlockMinEraseCount, %function 3959GetFreeBlockMinEraseCount: 3960 adrp x0, .LANCHOR89 3961 ldr x0, [x0, #:lo12:.LANCHOR89] 3962 cbz x0, .L577 3963 adrp x1, .LANCHOR83 3964 ldr x1, [x1, #:lo12:.LANCHOR83] 3965 sub x0, x0, x1 3966 mov x1, -6148914691236517206 3967 asr x0, x0, 1 3968 movk x1, 0xaaab, lsl 0 3969 mul x0, x0, x1 3970 adrp x1, .LANCHOR80 3971 ldr x1, [x1, #:lo12:.LANCHOR80] 3972 and x0, x0, 65535 3973 ldrh w0, [x1, x0, lsl 1] 3974 ret 3975.L577: 3976 mov w0, 0 3977 ret 3978 .size GetFreeBlockMinEraseCount, .-GetFreeBlockMinEraseCount 3979 .section .text.GetFreeBlockMaxEraseCount,"ax",@progbits 3980 .align 2 3981 .global GetFreeBlockMaxEraseCount 3982 .type GetFreeBlockMaxEraseCount, %function 3983GetFreeBlockMaxEraseCount: 3984 adrp x1, .LANCHOR89 3985 and w0, w0, 65535 3986 ldr x1, [x1, #:lo12:.LANCHOR89] 3987 cbz x1, .L585 3988 adrp x2, .LANCHOR90 3989 mov w3, 7 3990 mov w5, 6 3991 mov w6, 65535 3992 ldrh w2, [x2, #:lo12:.LANCHOR90] 3993 mul w2, w2, w3 3994 asr w2, w2, 3 3995 cmp w0, w2 3996 csel w0, w2, w0, gt 3997 adrp x2, .LANCHOR83 3998 ldr x3, [x2, #:lo12:.LANCHOR83] 3999 mov x2, -6148914691236517206 4000 movk x2, 0xaaab, lsl 0 4001 sub x1, x1, x3 4002 asr x1, x1, 1 4003 mul x1, x1, x2 4004 mov w2, 0 4005 and w1, w1, 65535 4006.L581: 4007 cmp w0, w2 4008 beq .L584 4009 umull x4, w1, w5 4010 ldrh w4, [x3, x4] 4011 cmp w4, w6 4012 bne .L582 4013.L584: 4014 adrp x0, .LANCHOR80 4015 ubfiz x1, x1, 1, 16 4016 ldr x0, [x0, #:lo12:.LANCHOR80] 4017 ldrh w0, [x0, x1] 4018 ret 4019.L582: 4020 add w2, w2, 1 4021 mov w1, w4 4022 and w2, w2, 65535 4023 b .L581 4024.L585: 4025 mov w0, 0 4026 ret 4027 .size GetFreeBlockMaxEraseCount, .-GetFreeBlockMaxEraseCount 4028 .section .text.free_data_superblock,"ax",@progbits 4029 .align 2 4030 .global free_data_superblock 4031 .type free_data_superblock, %function 4032free_data_superblock: 4033 and w0, w0, 65535 4034 mov w1, 65535 4035 cmp w0, w1 4036 beq .L589 4037 stp x29, x30, [sp, -16]! 4038 adrp x2, .LANCHOR85 4039 ubfiz x1, x0, 1, 16 4040 add x29, sp, 0 4041 ldr x2, [x2, #:lo12:.LANCHOR85] 4042 strh wzr, [x2, x1] 4043 bl INSERT_FREE_LIST 4044 mov w0, 0 4045 ldp x29, x30, [sp], 16 4046 ret 4047.L589: 4048 mov w0, 0 4049 ret 4050 .size free_data_superblock, .-free_data_superblock 4051 .section .text.FtlGcBufInit,"ax",@progbits 4052 .align 2 4053 .global FtlGcBufInit 4054 .type FtlGcBufInit, %function 4055FtlGcBufInit: 4056 adrp x1, .LANCHOR106 4057 adrp x0, .LANCHOR105 4058 adrp x7, .LANCHOR107 4059 adrp x6, .LANCHOR108 4060 ldr x5, [x1, #:lo12:.LANCHOR106] 4061 adrp x1, .LANCHOR57 4062 str wzr, [x0, #:lo12:.LANCHOR105] 4063 adrp x0, .LANCHOR38 4064 ldrh w10, [x1, #:lo12:.LANCHOR57] 4065 adrp x1, .LANCHOR58 4066 ldrh w0, [x0, #:lo12:.LANCHOR38] 4067 mov w8, 24 4068 ldrh w11, [x1, #:lo12:.LANCHOR58] 4069 adrp x1, .LANCHOR109 4070 ldr x14, [x7, #:lo12:.LANCHOR107] 4071 mov x3, x5 4072 ldr x4, [x1, #:lo12:.LANCHOR109] 4073 mov w2, 0 4074 ldr x15, [x6, #:lo12:.LANCHOR108] 4075 nop // between mem op and mult-accumulate 4076 umaddl x8, w0, w8, x5 4077 add x4, x4, 8 4078 mov w1, 0 4079 mov w16, 1 4080.L593: 4081 add w13, w2, w10 4082 add w12, w1, w11 4083 cmp x3, x8 4084 bne .L594 4085 adrp x1, .LANCHOR110 4086 ldr x7, [x7, #:lo12:.LANCHOR107] 4087 ldr x6, [x6, #:lo12:.LANCHOR108] 4088 mov w8, 24 4089 ldr w4, [x1, #:lo12:.LANCHOR110] 4090.L595: 4091 cmp w0, w4 4092 bcc .L596 4093 ret 4094.L594: 4095 asr w2, w2, 2 4096 asr w1, w1, 2 4097 add x2, x14, x2, sxtw 2 4098 add x1, x15, x1, sxtw 2 4099 str w16, [x3, 16] 4100 stp x2, x1, [x3] 4101 add x3, x3, 24 4102 stp x2, x1, [x4] 4103 add x4, x4, 56 4104 mov w1, w12 4105 mov w2, w13 4106 b .L593 4107.L596: 4108 umull x3, w0, w8 4109 mul w1, w10, w0 4110 add x2, x5, x3 4111 asr w1, w1, 2 4112 add x1, x7, x1, sxtw 2 4113 str wzr, [x2, 16] 4114 str x1, [x5, x3] 4115 mul w1, w11, w0 4116 add w0, w0, 1 4117 and w0, w0, 65535 4118 asr w1, w1, 2 4119 add x1, x6, x1, sxtw 2 4120 str x1, [x2, 8] 4121 b .L595 4122 .size FtlGcBufInit, .-FtlGcBufInit 4123 .section .text.FtlGcBufFree,"ax",@progbits 4124 .align 2 4125 .global FtlGcBufFree 4126 .type FtlGcBufFree, %function 4127FtlGcBufFree: 4128 adrp x2, .LANCHOR110 4129 mov w3, 0 4130 mov w7, 56 4131 mov w10, 24 4132 ldr w8, [x2, #:lo12:.LANCHOR110] 4133 adrp x2, .LANCHOR106 4134 ldr x4, [x2, #:lo12:.LANCHOR106] 4135.L598: 4136 cmp w3, w1 4137 bcs .L597 4138 umaddl x6, w3, w7, x0 4139 mov w2, 0 4140 b .L603 4141.L599: 4142 add w2, w2, 1 4143 and w2, w2, 65535 4144.L603: 4145 cmp w2, w8 4146 bcs .L600 4147 umull x5, w2, w10 4148 add x11, x4, x5 4149 ldr x12, [x4, x5] 4150 ldr x5, [x6, 8] 4151 cmp x12, x5 4152 bne .L599 4153 str wzr, [x11, 16] 4154.L600: 4155 add w3, w3, 1 4156 and w3, w3, 65535 4157 b .L598 4158.L597: 4159 ret 4160 .size FtlGcBufFree, .-FtlGcBufFree 4161 .section .text.FtlGcBufAlloc,"ax",@progbits 4162 .align 2 4163 .global FtlGcBufAlloc 4164 .type FtlGcBufAlloc, %function 4165FtlGcBufAlloc: 4166 adrp x2, .LANCHOR110 4167 mov w3, 0 4168 mov w7, 24 4169 mov w8, 1 4170 ldr w5, [x2, #:lo12:.LANCHOR110] 4171 adrp x2, .LANCHOR106 4172 mov w10, 56 4173 ldr x6, [x2, #:lo12:.LANCHOR106] 4174.L605: 4175 cmp w3, w1 4176 bcs .L604 4177 mov w2, 0 4178 b .L610 4179.L606: 4180 add w2, w2, 1 4181 and w2, w2, 65535 4182.L610: 4183 cmp w2, w5 4184 bcs .L607 4185 umaddl x4, w2, w7, x6 4186 ldr w11, [x4, 16] 4187 cbnz w11, .L606 4188 umaddl x2, w3, w10, x0 4189 ldr x11, [x4] 4190 str w8, [x4, 16] 4191 ldr x4, [x4, 8] 4192 stp x11, x4, [x2, 8] 4193.L607: 4194 add w3, w3, 1 4195 and w3, w3, 65535 4196 b .L605 4197.L604: 4198 ret 4199 .size FtlGcBufAlloc, .-FtlGcBufAlloc 4200 .section .text.IsBlkInGcList,"ax",@progbits 4201 .align 2 4202 .global IsBlkInGcList 4203 .type IsBlkInGcList, %function 4204IsBlkInGcList: 4205 adrp x1, .LANCHOR111 4206 and w0, w0, 65535 4207 ldrh w2, [x1, #:lo12:.LANCHOR111] 4208 adrp x1, .LANCHOR112 4209 ldr x3, [x1, #:lo12:.LANCHOR112] 4210 mov x1, 0 4211.L612: 4212 cmp w2, w1, uxth 4213 bhi .L614 4214 mov w0, 0 4215 ret 4216.L614: 4217 add x1, x1, 1 4218 add x4, x3, x1, lsl 1 4219 ldrh w4, [x4, -2] 4220 cmp w4, w0 4221 bne .L612 4222 mov w0, 1 4223 ret 4224 .size IsBlkInGcList, .-IsBlkInGcList 4225 .section .text.FtlGcUpdatePage,"ax",@progbits 4226 .align 2 4227 .global FtlGcUpdatePage 4228 .type FtlGcUpdatePage, %function 4229FtlGcUpdatePage: 4230 mov w6, w0 4231 mov w10, w1 4232 mov w8, w2 4233 stp x29, x30, [sp, -16]! 4234 lsr w0, w0, 10 4235 add x29, sp, 0 4236 bl P2V_block_in_plane 4237 and w7, w0, 65535 4238 adrp x4, .LANCHOR111 4239 adrp x2, .LANCHOR112 4240 mov x3, 0 4241 ldrh w1, [x4, #:lo12:.LANCHOR111] 4242 ldr x5, [x2, #:lo12:.LANCHOR112] 4243.L617: 4244 and w2, w3, 65535 4245 cmp w2, w1 4246 bcc .L619 4247 bne .L618 4248 and x3, x3, 65535 4249 strh w0, [x5, x3, lsl 1] 4250 ldrh w0, [x4, #:lo12:.LANCHOR111] 4251 add w0, w0, 1 4252 strh w0, [x4, #:lo12:.LANCHOR111] 4253 b .L618 4254.L619: 4255 add x3, x3, 1 4256 add x2, x5, x3, lsl 1 4257 ldrh w2, [x2, -2] 4258 cmp w2, w7 4259 bne .L617 4260.L618: 4261 adrp x4, .LANCHOR113 4262 adrp x1, .LANCHOR114 4263 mov w3, 12 4264 ldrh w0, [x4, #:lo12:.LANCHOR113] 4265 ldr x5, [x1, #:lo12:.LANCHOR114] 4266 umull x3, w0, w3 4267 add w0, w0, 1 4268 add x7, x5, x3 4269 stp w10, w8, [x7, 4] 4270 str w6, [x5, x3] 4271 strh w0, [x4, #:lo12:.LANCHOR113] 4272 ldp x29, x30, [sp], 16 4273 ret 4274 .size FtlGcUpdatePage, .-FtlGcUpdatePage 4275 .section .text.FtlGcRefreshOpenBlock,"ax",@progbits 4276 .align 2 4277 .global FtlGcRefreshOpenBlock 4278 .type FtlGcRefreshOpenBlock, %function 4279FtlGcRefreshOpenBlock: 4280 adrp x8, .LANCHOR115 4281 and w0, w0, 65535 4282 ldrh w10, [x8, #:lo12:.LANCHOR115] 4283 cmp w10, w0 4284 beq .L622 4285 adrp x6, .LANCHOR116 4286 ldrh w7, [x6, #:lo12:.LANCHOR116] 4287 cmp w0, w7 4288 beq .L622 4289 adrp x4, .LANCHOR117 4290 ldrh w5, [x4, #:lo12:.LANCHOR117] 4291 cmp w0, w5 4292 beq .L622 4293 adrp x2, .LANCHOR118 4294 ldrh w3, [x2, #:lo12:.LANCHOR118] 4295 cmp w0, w3 4296 beq .L622 4297 mov w1, 65535 4298 cmp w10, w1 4299 bne .L623 4300 strh w0, [x8, #:lo12:.LANCHOR115] 4301.L622: 4302 mov w0, 0 4303 ret 4304.L623: 4305 cmp w7, w1 4306 bne .L624 4307 strh w0, [x6, #:lo12:.LANCHOR116] 4308 b .L622 4309.L624: 4310 cmp w5, w1 4311 bne .L625 4312 strh w0, [x4, #:lo12:.LANCHOR117] 4313 b .L622 4314.L625: 4315 cmp w3, w1 4316 bne .L622 4317 strh w0, [x2, #:lo12:.LANCHOR118] 4318 b .L622 4319 .size FtlGcRefreshOpenBlock, .-FtlGcRefreshOpenBlock 4320 .section .text.FtlGcRefreshBlock,"ax",@progbits 4321 .align 2 4322 .global FtlGcRefreshBlock 4323 .type FtlGcRefreshBlock, %function 4324FtlGcRefreshBlock: 4325 adrp x8, .LANCHOR115 4326 and w0, w0, 65535 4327 ldrh w10, [x8, #:lo12:.LANCHOR115] 4328 cmp w10, w0 4329 beq .L634 4330 adrp x6, .LANCHOR116 4331 ldrh w7, [x6, #:lo12:.LANCHOR116] 4332 cmp w0, w7 4333 beq .L634 4334 adrp x4, .LANCHOR117 4335 ldrh w5, [x4, #:lo12:.LANCHOR117] 4336 cmp w0, w5 4337 beq .L634 4338 adrp x2, .LANCHOR118 4339 ldrh w3, [x2, #:lo12:.LANCHOR118] 4340 cmp w0, w3 4341 beq .L634 4342 mov w1, 65535 4343 cmp w10, w1 4344 bne .L628 4345 strh w0, [x8, #:lo12:.LANCHOR115] 4346.L634: 4347 mov w0, 0 4348 ret 4349.L628: 4350 cmp w7, w1 4351 bne .L629 4352 strh w0, [x6, #:lo12:.LANCHOR116] 4353 b .L634 4354.L629: 4355 cmp w5, w1 4356 bne .L630 4357 strh w0, [x4, #:lo12:.LANCHOR117] 4358 b .L634 4359.L630: 4360 cmp w3, w1 4361 bne .L635 4362 strh w0, [x2, #:lo12:.LANCHOR118] 4363 b .L634 4364.L635: 4365 mov w0, -1 4366 ret 4367 .size FtlGcRefreshBlock, .-FtlGcRefreshBlock 4368 .section .text.FtlGcMarkBadPhyBlk,"ax",@progbits 4369 .align 2 4370 .global FtlGcMarkBadPhyBlk 4371 .type FtlGcMarkBadPhyBlk, %function 4372FtlGcMarkBadPhyBlk: 4373 and w12, w0, 65535 4374 stp x29, x30, [sp, -16]! 4375 mov w0, w12 4376 add x29, sp, 0 4377 bl P2V_block_in_plane 4378 and w11, w0, 65535 4379 bl FtlGcRefreshBlock 4380 adrp x0, .LANCHOR104 4381 ldr w0, [x0, #:lo12:.LANCHOR104] 4382 cbz w0, .L637 4383 adrp x1, .LANCHOR80 4384 ubfiz x0, x11, 1, 16 4385 ldr x2, [x1, #:lo12:.LANCHOR80] 4386 ldrh w1, [x2, x0] 4387 cmp w1, 39 4388 bls .L637 4389 sub w1, w1, #40 4390 strh w1, [x2, x0] 4391.L637: 4392 adrp x1, .LANCHOR119 4393 adrp x3, .LANCHOR120 4394 add x3, x3, :lo12:.LANCHOR120 4395 mov x2, 0 4396 ldrh w0, [x1, #:lo12:.LANCHOR119] 4397.L638: 4398 cmp w0, w2, uxth 4399 bhi .L640 4400 cmp w0, 15 4401 bhi .L639 4402 add w2, w0, 1 4403 strh w2, [x1, #:lo12:.LANCHOR119] 4404 adrp x1, .LANCHOR120 4405 add x1, x1, :lo12:.LANCHOR120 4406 strh w12, [x1, w0, sxtw 1] 4407 b .L639 4408.L640: 4409 add x2, x2, 1 4410 add x4, x3, x2, lsl 1 4411 ldrh w4, [x4, -2] 4412 cmp w4, w12 4413 bne .L638 4414.L639: 4415 mov w0, 0 4416 ldp x29, x30, [sp], 16 4417 ret 4418 .size FtlGcMarkBadPhyBlk, .-FtlGcMarkBadPhyBlk 4419 .section .text.FtlGcReFreshBadBlk,"ax",@progbits 4420 .align 2 4421 .global FtlGcReFreshBadBlk 4422 .type FtlGcReFreshBadBlk, %function 4423FtlGcReFreshBadBlk: 4424 adrp x0, .LANCHOR119 4425 ldrh w0, [x0, #:lo12:.LANCHOR119] 4426 cbz w0, .L652 4427 adrp x1, .LANCHOR115 4428 ldrh w2, [x1, #:lo12:.LANCHOR115] 4429 mov w1, 65535 4430 cmp w2, w1 4431 bne .L652 4432 stp x29, x30, [sp, -16]! 4433 adrp x11, .LANCHOR121 4434 add x29, sp, 0 4435 ldrh w1, [x11, #:lo12:.LANCHOR121] 4436 cmp w1, w0 4437 bcc .L647 4438 strh wzr, [x11, #:lo12:.LANCHOR121] 4439.L647: 4440 ldrh w1, [x11, #:lo12:.LANCHOR121] 4441 adrp x0, .LANCHOR120 4442 add x0, x0, :lo12:.LANCHOR120 4443 ldrh w0, [x0, x1, lsl 1] 4444 bl P2V_block_in_plane 4445 bl FtlGcRefreshBlock 4446 ldrh w0, [x11, #:lo12:.LANCHOR121] 4447 ldp x29, x30, [sp], 16 4448 add w0, w0, 1 4449 strh w0, [x11, #:lo12:.LANCHOR121] 4450 mov w0, 0 4451 ret 4452.L652: 4453 mov w0, 0 4454 ret 4455 .size FtlGcReFreshBadBlk, .-FtlGcReFreshBadBlk 4456 .section .text.flash_boot_enter_slc_mode,"ax",@progbits 4457 .align 2 4458 .global flash_boot_enter_slc_mode 4459 .type flash_boot_enter_slc_mode, %function 4460flash_boot_enter_slc_mode: 4461 adrp x1, .LANCHOR122 4462 and w0, w0, 255 4463 ldr w2, [x1, #:lo12:.LANCHOR122] 4464 mov w1, 12336 4465 movk w1, 0x5638, lsl 16 4466 cmp w2, w1 4467 bne .L655 4468 b flash_enter_slc_mode 4469.L655: 4470 ret 4471 .size flash_boot_enter_slc_mode, .-flash_boot_enter_slc_mode 4472 .section .text.flash_boot_exit_slc_mode,"ax",@progbits 4473 .align 2 4474 .global flash_boot_exit_slc_mode 4475 .type flash_boot_exit_slc_mode, %function 4476flash_boot_exit_slc_mode: 4477 adrp x1, .LANCHOR122 4478 and w0, w0, 255 4479 ldr w2, [x1, #:lo12:.LANCHOR122] 4480 mov w1, 12336 4481 movk w1, 0x5638, lsl 16 4482 cmp w2, w1 4483 bne .L657 4484 b flash_exit_slc_mode 4485.L657: 4486 ret 4487 .size flash_boot_exit_slc_mode, .-flash_boot_exit_slc_mode 4488 .section .text.FW_FlashBlockErase.constprop.42,"ax",@progbits 4489 .align 2 4490 .type FW_FlashBlockErase.constprop.42, %function 4491FW_FlashBlockErase.constprop.42: 4492 stp x29, x30, [sp, -32]! 4493 add x29, sp, 0 4494 stp x19, x20, [sp, 16] 4495 mov w20, w0 4496 adrp x0, .LANCHOR7 4497 ldr x0, [x0, #:lo12:.LANCHOR7] 4498 ldrb w19, [x0, 9] 4499 mov w0, 0 4500 bl flash_boot_enter_slc_mode 4501 mov w2, 0 4502 mov w0, 0 4503 udiv w1, w20, w19 4504 bl FlashEraseBlock 4505 mov w19, w0 4506 mov w0, 0 4507 bl flash_boot_exit_slc_mode 4508 and w0, w19, 255 4509 ldp x19, x20, [sp, 16] 4510 ldp x29, x30, [sp], 32 4511 ret 4512 .size FW_FlashBlockErase.constprop.42, .-FW_FlashBlockErase.constprop.42 4513 .section .text.ftl_memset,"ax",@progbits 4514 .align 2 4515 .global ftl_memset 4516 .type ftl_memset, %function 4517ftl_memset: 4518 uxtw x2, w2 4519 b memset 4520 .size ftl_memset, .-ftl_memset 4521 .section .text.BuildFlashLsbPageTable,"ax",@progbits 4522 .align 2 4523 .global BuildFlashLsbPageTable 4524 .type BuildFlashLsbPageTable, %function 4525BuildFlashLsbPageTable: 4526 stp x29, x30, [sp, -32]! 4527 add x29, sp, 0 4528 stp x19, x20, [sp, 16] 4529 mov w19, w1 4530 cbnz w0, .L663 4531 adrp x1, .LANCHOR17 4532 add x1, x1, :lo12:.LANCHOR17 4533 mov x0, 0 4534.L664: 4535 strh w0, [x1, x0, lsl 1] 4536 add x0, x0, 1 4537 cmp x0, 512 4538 bne .L664 4539.L670: 4540 adrp x20, .LANCHOR123 4541 add x20, x20, :lo12:.LANCHOR123 4542 mov w1, 255 4543 mov w2, 2048 4544 mov x0, x20 4545 bl ftl_memset 4546 adrp x1, .LANCHOR17 4547 and w19, w19, 65535 4548 add x1, x1, :lo12:.LANCHOR17 4549 mov x0, 0 4550.L665: 4551 cmp w19, w0, uxth 4552 bhi .L698 4553 ldp x19, x20, [sp, 16] 4554 ldp x29, x30, [sp], 32 4555 ret 4556.L663: 4557 cmp w0, 1 4558 bne .L666 4559 adrp x2, .LANCHOR17 4560 add x2, x2, :lo12:.LANCHOR17 4561 mov x1, 0 4562.L669: 4563 and w0, w1, 65535 4564 cmp x1, 3 4565 bls .L667 4566 ubfiz w3, w0, 1, 15 4567 and w0, w0, 1 4568 add w0, w0, 2 4569 sub w0, w3, w0 4570 and w0, w0, 65535 4571.L667: 4572 strh w0, [x2, x1, lsl 1] 4573 add x1, x1, 1 4574 cmp x1, 512 4575 bne .L669 4576 b .L670 4577.L666: 4578 cmp w0, 2 4579 bne .L671 4580 adrp x2, .LANCHOR17 4581 add x2, x2, :lo12:.LANCHOR17 4582 mov w1, 65535 4583 mov x0, 0 4584.L673: 4585 cmp x0, 2 4586 and w3, w0, 65535 4587 csel w3, w3, w1, cc 4588 strh w3, [x2, x0, lsl 1] 4589 add w1, w1, 2 4590 add x0, x0, 1 4591 and w1, w1, 65535 4592 cmp x0, 512 4593 bne .L673 4594 b .L670 4595.L671: 4596 cmp w0, 3 4597 bne .L674 4598 adrp x2, .LANCHOR17 4599 add x2, x2, :lo12:.LANCHOR17 4600 mov x1, 0 4601.L677: 4602 and w0, w1, 65535 4603 cmp x1, 5 4604 bls .L675 4605 ubfiz w3, w0, 1, 15 4606 and w0, w0, 1 4607 add w0, w0, 4 4608 sub w0, w3, w0 4609 and w0, w0, 65535 4610.L675: 4611 strh w0, [x2, x1, lsl 1] 4612 add x1, x1, 1 4613 cmp x1, 512 4614 bne .L677 4615 b .L670 4616.L674: 4617 cmp w0, 4 4618 bne .L678 4619 adrp x2, .LANCHOR17 4620 add x1, x2, :lo12:.LANCHOR17 4621 add x1, x1, 16 4622 strh wzr, [x2, #:lo12:.LANCHOR17] 4623 mov w2, 1 4624 strh w0, [x1, -8] 4625 mov w0, 5 4626 strh w2, [x1, -14] 4627 mov w2, 2 4628 strh w0, [x1, -6] 4629 mov w0, 7 4630 strh w2, [x1, -12] 4631 mov w2, 3 4632 strh w0, [x1, -4] 4633 mov w0, 8 4634 strh w2, [x1, -10] 4635 strh w0, [x1, -2] 4636 mov w0, 8 4637.L680: 4638 and w3, w0, 1 4639 ubfiz w2, w0, 1, 15 4640 add w3, w3, 6 4641 add w0, w0, 1 4642 sub w2, w2, w3 4643 strh w2, [x1], 2 4644 and w0, w0, 65535 4645 cmp w0, 512 4646 bne .L680 4647 b .L670 4648.L678: 4649 cmp w0, 5 4650 bne .L681 4651 adrp x1, .LANCHOR17 4652 add x1, x1, :lo12:.LANCHOR17 4653 mov x0, 0 4654.L682: 4655 strh w0, [x1, x0, lsl 1] 4656 add x0, x0, 1 4657 cmp x0, 16 4658 bne .L682 4659 add x1, x1, 32 4660.L683: 4661 strh w0, [x1], 2 4662 add w0, w0, 2 4663 and w0, w0, 65535 4664 cmp w0, 1008 4665 bne .L683 4666 b .L670 4667.L681: 4668 cmp w0, 6 4669 bne .L684 4670 adrp x3, .LANCHOR17 4671 add x3, x3, :lo12:.LANCHOR17 4672 mov w1, 0 4673 mov x2, 0 4674 mov w4, 12 4675 mov w5, 10 4676.L687: 4677 and w0, w2, 65535 4678 cmp x2, 5 4679 bls .L685 4680 tst x0, 1 4681 csel w0, w4, w5, ne 4682 sub w0, w1, w0 4683 and w0, w0, 65535 4684.L685: 4685 strh w0, [x3, x2, lsl 1] 4686 add w1, w1, 3 4687 and w1, w1, 65535 4688 add x2, x2, 1 4689 cmp w1, 1536 4690 bne .L687 4691 b .L670 4692.L684: 4693 cmp w0, 9 4694 bne .L688 4695 adrp x1, .LANCHOR17 4696 add x0, x1, :lo12:.LANCHOR17 4697 strh wzr, [x1, #:lo12:.LANCHOR17] 4698 mov w1, 1 4699 strh w1, [x0, 2] 4700 mov w1, 2 4701 strh w1, [x0, 4] 4702 add x1, x0, 6 4703 mov w0, 3 4704.L689: 4705 strh w0, [x1], 2 4706 add w0, w0, 2 4707 and w0, w0, 65535 4708 cmp w0, 1021 4709 bne .L689 4710 b .L670 4711.L688: 4712 cmp w0, 10 4713 bne .L690 4714 adrp x1, .LANCHOR17 4715 add x1, x1, :lo12:.LANCHOR17 4716 mov x0, 0 4717.L691: 4718 strh w0, [x1, x0, lsl 1] 4719 add x0, x0, 1 4720 cmp x0, 63 4721 bne .L691 4722 add x1, x1, 126 4723.L692: 4724 strh w0, [x1], 2 4725 add w0, w0, 2 4726 and w0, w0, 65535 4727 cmp w0, 961 4728 bne .L692 4729 b .L670 4730.L690: 4731 cmp w0, 11 4732 bne .L693 4733 adrp x1, .LANCHOR17 4734 add x1, x1, :lo12:.LANCHOR17 4735 mov x0, 0 4736.L694: 4737 strh w0, [x1, x0, lsl 1] 4738 add x0, x0, 1 4739 cmp x0, 8 4740 bne .L694 4741 add x1, x1, 16 4742.L696: 4743 and w3, w0, 1 4744 ubfiz w2, w0, 1, 15 4745 add w3, w3, 6 4746 add w0, w0, 1 4747 sub w2, w2, w3 4748 strh w2, [x1], 2 4749 and w0, w0, 65535 4750 cmp w0, 512 4751 bne .L696 4752 b .L670 4753.L693: 4754 cmp w0, 12 4755 bne .L670 4756 adrp x1, .LANCHOR17 4757 add x0, x1, :lo12:.LANCHOR17 4758 strh wzr, [x1, #:lo12:.LANCHOR17] 4759 mov w1, 1 4760 strh w1, [x0, 2] 4761 mov w1, 2 4762 strh w1, [x0, 4] 4763 mov w1, 3 4764 strh w1, [x0, 6] 4765 add x1, x0, 8 4766 mov w0, 4 4767.L697: 4768 sub w2, w0, #1 4769 add w2, w2, w0, lsr 1 4770 add w0, w0, 1 4771 strh w2, [x1], 2 4772 and w0, w0, 65535 4773 cmp w0, 512 4774 bne .L697 4775 b .L670 4776.L698: 4777 ldrh w2, [x1, x0, lsl 1] 4778 add x0, x0, 1 4779 strh w2, [x20, w2, sxtw 1] 4780 b .L665 4781 .size BuildFlashLsbPageTable, .-BuildFlashLsbPageTable 4782 .section .text.FlashDieInfoInit,"ax",@progbits 4783 .align 2 4784 .global FlashDieInfoInit 4785 .type FlashDieInfoInit, %function 4786FlashDieInfoInit: 4787 stp x29, x30, [sp, -80]! 4788 adrp x0, .LANCHOR31+10 4789 add x29, sp, 0 4790 ldrh w0, [x0, #:lo12:.LANCHOR31+10] 4791 stp x19, x20, [sp, 16] 4792 adrp x19, .LANCHOR124 4793 str x25, [sp, 64] 4794 adrp x25, .LANCHOR26 4795 stp x21, x22, [sp, 32] 4796 mov x22, 0 4797 stp x23, x24, [sp, 48] 4798 adrp x24, .LANCHOR27 4799 strb wzr, [x19, #:lo12:.LANCHOR124] 4800 add x21, x24, :lo12:.LANCHOR27 4801 strb wzr, [x25, #:lo12:.LANCHOR26] 4802 bl FlashBlockAlignInit 4803 mov w2, 8 4804 mov w1, 0 4805 adrp x23, .LANCHOR18 4806 mov x0, x21 4807 add x20, x23, :lo12:.LANCHOR18 4808 bl ftl_memset 4809 mov w2, 32 4810 mov w1, 0 4811 mov x0, x20 4812 bl ftl_memset 4813 mov w2, 192 4814 mov w1, 0 4815 adrp x0, .LANCHOR23 4816 add x0, x0, :lo12:.LANCHOR23 4817 bl ftl_memset 4818 adrp x0, .LANCHOR7 4819 adrp x13, .LANCHOR22 4820 add x15, x25, :lo12:.LANCHOR26 4821 add x10, x13, :lo12:.LANCHOR22 4822 ldr x7, [x0, #:lo12:.LANCHOR7] 4823 add x11, x7, 1 4824 ldrb w12, [x7] 4825.L722: 4826 mov w2, w12 4827 add x1, x10, x22, lsl 3 4828 mov x0, x11 4829 bl FlashMemCmp8 4830 cbnz w0, .L721 4831 ldrb w1, [x15] 4832 add w0, w1, 1 4833 strb w0, [x15] 4834 str wzr, [x20, x1, lsl 2] 4835 strb w22, [x21, x1] 4836.L721: 4837 add x22, x22, 1 4838 cmp x22, 4 4839 bne .L722 4840 ldrb w0, [x25, #:lo12:.LANCHOR26] 4841 strb w0, [x19, #:lo12:.LANCHOR124] 4842 ldrb w0, [x7, 8] 4843 cmp w0, 2 4844 beq .L723 4845.L727: 4846 ldrb w0, [x25, #:lo12:.LANCHOR26] 4847 ldrh w1, [x7, 14] 4848 ldp x19, x20, [sp, 16] 4849 ldp x21, x22, [sp, 32] 4850 mul w0, w0, w1 4851 ldrb w1, [x7, 13] 4852 ldp x23, x24, [sp, 48] 4853 ldr x25, [sp, 64] 4854 mul w0, w0, w1 4855 adrp x1, .LANCHOR125 4856 ldp x29, x30, [sp], 80 4857 strh w0, [x1, #:lo12:.LANCHOR125] 4858 ret 4859.L723: 4860 adrp x0, .LANCHOR4 4861 add x13, x13, :lo12:.LANCHOR22 4862 add x15, x25, :lo12:.LANCHOR26 4863 add x23, x23, :lo12:.LANCHOR18 4864 ldr w20, [x0, #:lo12:.LANCHOR4] 4865 add x14, x24, :lo12:.LANCHOR27 4866 mov x19, 0 4867.L726: 4868 mov w2, w12 4869 add x1, x13, x19, lsl 3 4870 mov x0, x11 4871 bl FlashMemCmp8 4872 cbnz w0, .L724 4873 ldrb w2, [x7, 13] 4874 ldrh w0, [x7, 14] 4875 ldrb w1, [x15] 4876 and w0, w0, 65280 4877 mul w2, w2, w20 4878 mul w0, w0, w2 4879 sxtw x2, w1 4880 str w0, [x23, x2, lsl 2] 4881 ldrb w3, [x7, 23] 4882 cbz w3, .L725 4883 lsl w0, w0, 1 4884 str w0, [x23, x2, lsl 2] 4885.L725: 4886 add w1, w1, 1 4887 strb w19, [x14, x2] 4888 strb w1, [x15] 4889.L724: 4890 add x19, x19, 1 4891 cmp x19, 4 4892 bne .L726 4893 b .L727 4894 .size FlashDieInfoInit, .-FlashDieInfoInit 4895 .section .text.ftl_read_flash_info,"ax",@progbits 4896 .align 2 4897 .global ftl_read_flash_info 4898 .type ftl_read_flash_info, %function 4899ftl_read_flash_info: 4900 stp x29, x30, [sp, -32]! 4901 mov w2, 11 4902 mov w1, 0 4903 add x29, sp, 0 4904 str x19, [sp, 16] 4905 mov x19, x0 4906 bl ftl_memset 4907 adrp x0, .LANCHOR7 4908 mov w4, 1 4909 ldr x2, [x0, #:lo12:.LANCHOR7] 4910 adrp x0, .LANCHOR4 4911 ldr w0, [x0, #:lo12:.LANCHOR4] 4912 ldrb w3, [x2, 9] 4913 mul w0, w0, w3 4914 and w1, w0, 65535 4915 strb w1, [x19, 4] 4916 ubfx x0, x1, 8, 8 4917 strb w0, [x19, 5] 4918 adrp x0, .LANCHOR33 4919 ldrb w0, [x0, #:lo12:.LANCHOR33] 4920 strb w0, [x19, 7] 4921 ldrb w0, [x2, 13] 4922 mul w0, w0, w1 4923 ldrh w1, [x2, 14] 4924 mul w0, w0, w1 4925 ldrb w1, [x2, 8] 4926 strb w3, [x19, 6] 4927 mul w0, w0, w1 4928 strb w0, [x19] 4929 ubfx x1, x0, 8, 8 4930 strb w1, [x19, 1] 4931 ubfx x1, x0, 16, 8 4932 lsr w0, w0, 24 4933 strb w1, [x19, 2] 4934 mov x1, 0 4935 strb w0, [x19, 3] 4936 mov w0, 32 4937 strb w0, [x19, 8] 4938 ldrb w0, [x2, 7] 4939 adrp x2, .LANCHOR27 4940 strb w0, [x19, 9] 4941 add x2, x2, :lo12:.LANCHOR27 4942 adrp x0, .LANCHOR26 4943 strb wzr, [x19, 10] 4944 ldrb w3, [x0, #:lo12:.LANCHOR26] 4945.L736: 4946 cmp w3, w1, uxtb 4947 bhi .L737 4948 ldr x19, [sp, 16] 4949 ldp x29, x30, [sp], 32 4950 ret 4951.L737: 4952 ldrb w0, [x1, x2] 4953 add x1, x1, 1 4954 ldrb w5, [x19, 10] 4955 lsl w0, w4, w0 4956 orr w0, w0, w5 4957 strb w0, [x19, 10] 4958 b .L736 4959 .size ftl_read_flash_info, .-ftl_read_flash_info 4960 .section .text.FtlBbt2Bitmap,"ax",@progbits 4961 .align 2 4962 .global FtlBbt2Bitmap 4963 .type FtlBbt2Bitmap, %function 4964FtlBbt2Bitmap: 4965 stp x29, x30, [sp, -64]! 4966 add x29, sp, 0 4967 stp x19, x20, [sp, 16] 4968 mov x20, x0 4969 adrp x0, .LANCHOR126 4970 stp x21, x22, [sp, 32] 4971 stp x23, x24, [sp, 48] 4972 adrp x22, .LANCHOR51 4973 ldrh w2, [x0, #:lo12:.LANCHOR126] 4974 adrp x23, .LANCHOR127 4975 add x22, x22, :lo12:.LANCHOR51 4976 add x23, x23, :lo12:.LANCHOR127 4977 mov x19, 0 4978 mov w24, 65535 4979 mov x21, x1 4980 lsl w2, w2, 2 4981 mov w1, 0 4982 mov x0, x21 4983 bl ftl_memset 4984.L742: 4985 ldrh w0, [x20, x19] 4986 cmp w0, w24 4987 beq .L739 4988 ldrh w1, [x22] 4989 cmp w1, w0 4990 bhi .L741 4991 mov w2, 92 4992 mov x1, x23 4993 adrp x0, .LC5 4994 add x0, x0, :lo12:.LC5 4995 bl printf 4996 adrp x1, .LC6 4997 adrp x0, .LC7 4998 add x1, x1, :lo12:.LC6 4999 add x0, x0, :lo12:.LC7 5000 bl printf 5001.L741: 5002 ldrh w1, [x20, x19] 5003 mov w2, 1 5004 add x19, x19, 2 5005 cmp x19, 1024 5006 ubfx x0, x1, 5, 11 5007 and w1, w1, 31 5008 lsl x0, x0, 2 5009 lsl w2, w2, w1 5010 ldr w1, [x21, x0] 5011 orr w1, w1, w2 5012 str w1, [x21, x0] 5013 adrp x0, .LANCHOR76 5014 add x0, x0, :lo12:.LANCHOR76 5015 ldrh w1, [x0, 6] 5016 add w1, w1, 1 5017 strh w1, [x0, 6] 5018 bne .L742 5019.L739: 5020 ldp x19, x20, [sp, 16] 5021 ldp x21, x22, [sp, 32] 5022 ldp x23, x24, [sp, 48] 5023 ldp x29, x30, [sp], 64 5024 ret 5025 .size FtlBbt2Bitmap, .-FtlBbt2Bitmap 5026 .section .text.FtlBbtMemInit,"ax",@progbits 5027 .align 2 5028 .global FtlBbtMemInit 5029 .type FtlBbtMemInit, %function 5030FtlBbtMemInit: 5031 adrp x1, .LANCHOR76 5032 add x0, x1, :lo12:.LANCHOR76 5033 mov w2, -1 5034 add x0, x0, 12 5035 strh w2, [x1, #:lo12:.LANCHOR76] 5036 mov w2, 16 5037 strh wzr, [x0, -6] 5038 mov w1, 255 5039 b ftl_memset 5040 .size FtlBbtMemInit, .-FtlBbtMemInit 5041 .section .text.FtlFreeSysBlkQueueInit,"ax",@progbits 5042 .align 2 5043 .global FtlFreeSysBlkQueueInit 5044 .type FtlFreeSysBlkQueueInit, %function 5045FtlFreeSysBlkQueueInit: 5046 stp x29, x30, [sp, -16]! 5047 adrp x1, .LANCHOR77 5048 add x3, x1, :lo12:.LANCHOR77 5049 mov w2, 2048 5050 add x29, sp, 0 5051 strh w0, [x1, #:lo12:.LANCHOR77] 5052 mov w1, 0 5053 strh wzr, [x3, 2] 5054 add x0, x3, 8 5055 strh wzr, [x3, 4] 5056 strh wzr, [x3, 6] 5057 bl ftl_memset 5058 mov w0, 0 5059 ldp x29, x30, [sp], 16 5060 ret 5061 .size FtlFreeSysBlkQueueInit, .-FtlFreeSysBlkQueueInit 5062 .section .text.ftl_free_no_use_map_blk,"ax",@progbits 5063 .align 2 5064 .global ftl_free_no_use_map_blk 5065 .type ftl_free_no_use_map_blk, %function 5066ftl_free_no_use_map_blk: 5067 stp x29, x30, [sp, -80]! 5068 mov w1, 0 5069 add x29, sp, 0 5070 stp x19, x20, [sp, 16] 5071 mov x19, x0 5072 ldrh w2, [x0, 10] 5073 stp x21, x22, [sp, 32] 5074 ldp x21, x20, [x0, 32] 5075 stp x23, x24, [sp, 48] 5076 ldr x22, [x0, 16] 5077 lsl w2, w2, 1 5078 mov x0, x21 5079 str x25, [sp, 64] 5080 bl ftl_memset 5081 mov w0, 0 5082.L750: 5083 ldrh w1, [x19, 6] 5084 cmp w1, w0 5085 bhi .L754 5086 adrp x0, .LANCHOR53 5087 mov w23, 0 5088 mov w20, 0 5089 ldrh w1, [x0, #:lo12:.LANCHOR53] 5090 ldrh w0, [x19] 5091 strh w1, [x21, x0, lsl 1] 5092 ldrh w24, [x21] 5093.L755: 5094 ldrh w0, [x19, 10] 5095 cmp w0, w20 5096 bhi .L759 5097 mov w0, w23 5098 ldr x25, [sp, 64] 5099 ldp x19, x20, [sp, 16] 5100 ldp x21, x22, [sp, 32] 5101 ldp x23, x24, [sp, 48] 5102 ldp x29, x30, [sp], 80 5103 ret 5104.L754: 5105 ubfiz x1, x0, 2, 16 5106 ldr w2, [x20, x1] 5107 mov w1, 0 5108 ubfx x2, x2, 10, 16 5109.L751: 5110 ldrh w3, [x19, 10] 5111 cmp w3, w1 5112 bhi .L753 5113 add w0, w0, 1 5114 and w0, w0, 65535 5115 b .L750 5116.L753: 5117 ubfiz x3, x1, 1, 16 5118 ldrh w4, [x22, x3] 5119 cmp w4, w2 5120 bne .L752 5121 cbz w2, .L752 5122 ldrh w4, [x21, x3] 5123 add w4, w4, 1 5124 strh w4, [x21, x3] 5125.L752: 5126 add w1, w1, 1 5127 and w1, w1, 65535 5128 b .L751 5129.L759: 5130 ubfiz x0, x20, 1, 16 5131 ldrh w1, [x21, x0] 5132 cmp w24, w1 5133 bls .L756 5134 add x25, x22, x0 5135 ldrh w0, [x22, x0] 5136 cbnz w0, .L757 5137.L758: 5138 add w20, w20, 1 5139 and w20, w20, 65535 5140 b .L755 5141.L756: 5142 cbnz w1, .L758 5143 add x25, x22, x0 5144 ldrh w0, [x22, x0] 5145 cbz w0, .L758 5146.L760: 5147 mov w1, 1 5148 bl FtlFreeSysBlkQueueIn 5149 strh wzr, [x25] 5150 ldrh w0, [x19, 8] 5151 sub w0, w0, #1 5152 strh w0, [x19, 8] 5153 b .L758 5154.L761: 5155 mov w24, 0 5156 b .L760 5157.L757: 5158 mov w23, w20 5159 cbz w1, .L761 5160 mov w24, w1 5161 b .L758 5162 .size ftl_free_no_use_map_blk, .-ftl_free_no_use_map_blk 5163 .section .text.FtlL2PDataInit,"ax",@progbits 5164 .align 2 5165 .global FtlL2PDataInit 5166 .type FtlL2PDataInit, %function 5167FtlL2PDataInit: 5168 stp x29, x30, [sp, -64]! 5169 mov w1, 0 5170 add x29, sp, 0 5171 stp x19, x20, [sp, 16] 5172 adrp x19, .LANCHOR128 5173 adrp x20, .LANCHOR64 5174 stp x21, x22, [sp, 32] 5175 ldr x0, [x19, #:lo12:.LANCHOR128] 5176 adrp x22, .LANCHOR57 5177 ldr w2, [x20, #:lo12:.LANCHOR64] 5178 adrp x21, .LANCHOR67 5179 str x23, [sp, 48] 5180 adrp x23, .LANCHOR129 5181 lsl w2, w2, 1 5182 bl ftl_memset 5183 ldrh w0, [x21, #:lo12:.LANCHOR67] 5184 mov w1, 255 5185 ldrh w2, [x22, #:lo12:.LANCHOR57] 5186 mul w2, w2, w0 5187 ldr x0, [x23, #:lo12:.LANCHOR129] 5188 bl ftl_memset 5189 adrp x0, .LANCHOR98 5190 ldrh w3, [x21, #:lo12:.LANCHOR67] 5191 ldr x6, [x23, #:lo12:.LANCHOR129] 5192 mov x1, 0 5193 ldr x0, [x0, #:lo12:.LANCHOR98] 5194 mov w2, -1 5195 ldrh w5, [x22, #:lo12:.LANCHOR57] 5196 add x3, x0, x3, lsl 4 5197.L771: 5198 add x4, x1, x5 5199 cmp x0, x3 5200 bne .L772 5201 adrp x1, .LANCHOR130 5202 add x0, x1, :lo12:.LANCHOR130 5203 ldp x21, x22, [sp, 32] 5204 strh w2, [x1, #:lo12:.LANCHOR130] 5205 ldr w1, [x20, #:lo12:.LANCHOR64] 5206 strh w1, [x0, 10] 5207 mov w1, -3902 5208 strh w1, [x0, 4] 5209 adrp x1, .LANCHOR131 5210 ldr x23, [sp, 48] 5211 strh w2, [x0, 2] 5212 ldrh w1, [x1, #:lo12:.LANCHOR131] 5213 strh w1, [x0, 8] 5214 adrp x1, .LANCHOR66 5215 ldrh w1, [x1, #:lo12:.LANCHOR66] 5216 strh w1, [x0, 6] 5217 adrp x1, .LANCHOR132 5218 ldr x1, [x1, #:lo12:.LANCHOR132] 5219 str x1, [x0, 16] 5220 adrp x1, .LANCHOR133 5221 ldr x1, [x1, #:lo12:.LANCHOR133] 5222 str x1, [x0, 24] 5223 ldr x1, [x19, #:lo12:.LANCHOR128] 5224 ldp x19, x20, [sp, 16] 5225 str x1, [x0, 32] 5226 adrp x1, .LANCHOR134 5227 ldr x1, [x1, #:lo12:.LANCHOR134] 5228 str x1, [x0, 40] 5229 ldp x29, x30, [sp], 64 5230 ret 5231.L772: 5232 and x1, x1, -4 5233 strh w2, [x0] 5234 add x1, x6, x1 5235 str wzr, [x0, 4] 5236 str x1, [x0, 8] 5237 add x0, x0, 16 5238 mov x1, x4 5239 b .L771 5240 .size FtlL2PDataInit, .-FtlL2PDataInit 5241 .section .text.FtlVariablesInit,"ax",@progbits 5242 .align 2 5243 .global FtlVariablesInit 5244 .type FtlVariablesInit, %function 5245FtlVariablesInit: 5246 stp x29, x30, [sp, -32]! 5247 adrp x0, .LANCHOR135 5248 mov w1, -1 5249 add x29, sp, 0 5250 str xzr, [x0, #:lo12:.LANCHOR135] 5251 adrp x0, .LANCHOR136 5252 str x19, [sp, 16] 5253 adrp x19, .LANCHOR41 5254 strh w1, [x0, #:lo12:.LANCHOR136] 5255 adrp x0, .LANCHOR137 5256 mov w1, -1 5257 str wzr, [x0, #:lo12:.LANCHOR137] 5258 adrp x0, .LANCHOR138 5259 str wzr, [x0, #:lo12:.LANCHOR138] 5260 adrp x0, .LANCHOR139 5261 str w1, [x0, #:lo12:.LANCHOR139] 5262 adrp x0, .LANCHOR104 5263 mov w1, 0 5264 str wzr, [x0, #:lo12:.LANCHOR104] 5265 adrp x0, .LANCHOR70 5266 strh wzr, [x0, #:lo12:.LANCHOR70] 5267 adrp x0, .LANCHOR61 5268 ldrh w2, [x0, #:lo12:.LANCHOR61] 5269 adrp x0, .LANCHOR71 5270 ldr x0, [x0, #:lo12:.LANCHOR71] 5271 lsl w2, w2, 1 5272 bl ftl_memset 5273 adrp x0, .LANCHOR80 5274 ldrh w2, [x19, #:lo12:.LANCHOR41] 5275 mov w1, 0 5276 ldr x0, [x0, #:lo12:.LANCHOR80] 5277 lsl w2, w2, 1 5278 bl ftl_memset 5279 adrp x0, .LANCHOR140 5280 ldrh w2, [x19, #:lo12:.LANCHOR41] 5281 mov w1, 0 5282 ldr x0, [x0, #:lo12:.LANCHOR140] 5283 lsl w2, w2, 1 5284 bl ftl_memset 5285 mov w2, 48 5286 mov w1, 0 5287 adrp x0, .LANCHOR82 5288 add x0, x0, :lo12:.LANCHOR82 5289 bl ftl_memset 5290 mov w2, 512 5291 mov w1, 0 5292 adrp x0, .LANCHOR141 5293 add x0, x0, :lo12:.LANCHOR141 5294 bl ftl_memset 5295 bl FtlGcBufInit 5296 bl FtlL2PDataInit 5297 ldr x19, [sp, 16] 5298 mov w0, 0 5299 ldp x29, x30, [sp], 32 5300 ret 5301 .size FtlVariablesInit, .-FtlVariablesInit 5302 .section .text.SupperBlkListInit,"ax",@progbits 5303 .align 2 5304 .global SupperBlkListInit 5305 .type SupperBlkListInit, %function 5306SupperBlkListInit: 5307 stp x29, x30, [sp, -96]! 5308 adrp x0, .LANCHOR41 5309 mov w1, 0 5310 add x29, sp, 0 5311 ldrh w2, [x0, #:lo12:.LANCHOR41] 5312 mov w0, 6 5313 stp x23, x24, [sp, 48] 5314 adrp x24, .LANCHOR83 5315 stp x19, x20, [sp, 16] 5316 adrp x23, .LANCHOR87 5317 stp x21, x22, [sp, 32] 5318 adrp x22, .LANCHOR90 5319 mul w2, w2, w0 5320 ldr x0, [x24, #:lo12:.LANCHOR83] 5321 stp x25, x26, [sp, 64] 5322 adrp x25, .LANCHOR40 5323 str x27, [sp, 80] 5324 adrp x26, .LANCHOR47 5325 add x25, x25, :lo12:.LANCHOR40 5326 add x26, x26, :lo12:.LANCHOR47 5327 bl ftl_memset 5328 mov w21, 0 5329 adrp x0, .LANCHOR89 5330 mov w20, 0 5331 mov w19, 0 5332 strh wzr, [x23, #:lo12:.LANCHOR87] 5333 str xzr, [x0, #:lo12:.LANCHOR89] 5334 adrp x0, .LANCHOR84 5335 strh wzr, [x22, #:lo12:.LANCHOR90] 5336 adrp x27, .LANCHOR38 5337 str xzr, [x0, #:lo12:.LANCHOR84] 5338 adrp x0, .LANCHOR86 5339 str xzr, [x0, #:lo12:.LANCHOR86] 5340 adrp x0, .LANCHOR142 5341 strh wzr, [x0, #:lo12:.LANCHOR142] 5342.L777: 5343 ldrh w0, [x25] 5344 cmp w19, w0 5345 bge .L784 5346 adrp x0, .LANCHOR52 5347 ldrh w8, [x27, #:lo12:.LANCHOR38] 5348 mov w5, 0 5349 mov w6, 0 5350 ldrh w7, [x0, #:lo12:.LANCHOR52] 5351 b .L785 5352.L779: 5353 ldrb w0, [x26, w6, sxtw] 5354 mov w1, w19 5355 bl V2P_block 5356 bl FtlBbmIsBadBlock 5357 cbnz w0, .L778 5358 add w5, w7, w5 5359 sxth w5, w5 5360.L778: 5361 add w6, w6, 1 5362 sxth w6, w6 5363.L785: 5364 cmp w6, w8 5365 blt .L779 5366 cbz w5, .L780 5367 mov w0, 32768 5368 sdiv w5, w0, w5 5369 sxth w5, w5 5370.L781: 5371 ldr x1, [x24, #:lo12:.LANCHOR83] 5372 mov w0, 6 5373 smaddl x0, w19, w0, x1 5374 strh w5, [x0, 4] 5375 adrp x0, .LANCHOR93 5376 ldrh w0, [x0, #:lo12:.LANCHOR93] 5377 cmp w19, w0 5378 beq .L782 5379 adrp x0, .LANCHOR94 5380 ldrh w0, [x0, #:lo12:.LANCHOR94] 5381 cmp w19, w0 5382 beq .L782 5383 adrp x0, .LANCHOR95 5384 ldrh w0, [x0, #:lo12:.LANCHOR95] 5385 cmp w19, w0 5386 beq .L782 5387 adrp x0, .LANCHOR85 5388 ldr x0, [x0, #:lo12:.LANCHOR85] 5389 ldrh w0, [x0, w19, sxtw 1] 5390 cbnz w0, .L783 5391 add w21, w21, 1 5392 mov w0, w19 5393 and w21, w21, 65535 5394 bl INSERT_FREE_LIST 5395.L782: 5396 add w19, w19, 1 5397 sxth w19, w19 5398 b .L777 5399.L780: 5400 adrp x0, .LANCHOR85 5401 mov w1, -1 5402 ldr x0, [x0, #:lo12:.LANCHOR85] 5403 strh w1, [x0, w19, sxtw 1] 5404 b .L781 5405.L783: 5406 add w20, w20, 1 5407 mov w0, w19 5408 and w20, w20, 65535 5409 bl INSERT_DATA_LIST 5410 b .L782 5411.L784: 5412 strh w20, [x23, #:lo12:.LANCHOR87] 5413 add w20, w20, w21 5414 strh w21, [x22, #:lo12:.LANCHOR90] 5415 cmp w0, w20 5416 bge .L786 5417 mov w2, 2899 5418 adrp x1, .LANCHOR143 5419 adrp x0, .LC5 5420 add x1, x1, :lo12:.LANCHOR143 5421 add x0, x0, :lo12:.LC5 5422 bl printf 5423 adrp x1, .LC6 5424 adrp x0, .LC7 5425 add x1, x1, :lo12:.LC6 5426 add x0, x0, :lo12:.LC7 5427 bl printf 5428.L786: 5429 mov w0, 0 5430 ldr x27, [sp, 80] 5431 ldp x19, x20, [sp, 16] 5432 ldp x21, x22, [sp, 32] 5433 ldp x23, x24, [sp, 48] 5434 ldp x25, x26, [sp, 64] 5435 ldp x29, x30, [sp], 96 5436 ret 5437 .size SupperBlkListInit, .-SupperBlkListInit 5438 .section .text.FtlGcPageVarInit,"ax",@progbits 5439 .align 2 5440 .global FtlGcPageVarInit 5441 .type FtlGcPageVarInit, %function 5442FtlGcPageVarInit: 5443 stp x29, x30, [sp, -32]! 5444 adrp x0, .LANCHOR111 5445 mov w1, 255 5446 add x29, sp, 0 5447 strh wzr, [x0, #:lo12:.LANCHOR111] 5448 adrp x0, .LANCHOR113 5449 str x19, [sp, 16] 5450 adrp x19, .LANCHOR54 5451 strh wzr, [x0, #:lo12:.LANCHOR113] 5452 adrp x0, .LANCHOR112 5453 ldrh w2, [x19, #:lo12:.LANCHOR54] 5454 ldr x0, [x0, #:lo12:.LANCHOR112] 5455 lsl w2, w2, 1 5456 bl ftl_memset 5457 ldrh w2, [x19, #:lo12:.LANCHOR54] 5458 mov w0, 12 5459 mov w1, 255 5460 mul w2, w2, w0 5461 adrp x0, .LANCHOR114 5462 ldr x0, [x0, #:lo12:.LANCHOR114] 5463 bl ftl_memset 5464 ldr x19, [sp, 16] 5465 ldp x29, x30, [sp], 32 5466 b FtlGcBufInit 5467 .size FtlGcPageVarInit, .-FtlGcPageVarInit 5468 .section .text.idb_init,"ax",@progbits 5469 .align 2 5470 .global idb_init 5471 .type idb_init, %function 5472idb_init: 5473 stp x29, x30, [sp, -16]! 5474 mov w2, 262144 5475 mov w1, 0 5476 adrp x0, idb_buf 5477 add x29, sp, 0 5478 add x0, x0, :lo12:idb_buf 5479 bl ftl_memset 5480 mov w0, 0 5481 ldp x29, x30, [sp], 16 5482 ret 5483 .size idb_init, .-idb_init 5484 .section .text.ftl_memcpy,"ax",@progbits 5485 .align 2 5486 .global ftl_memcpy 5487 .type ftl_memcpy, %function 5488ftl_memcpy: 5489 uxtw x2, w2 5490 b memcpy 5491 .size ftl_memcpy, .-ftl_memcpy 5492 .section .text.FlashReadIdbData,"ax",@progbits 5493 .align 2 5494 .global FlashReadIdbData 5495 .type FlashReadIdbData, %function 5496FlashReadIdbData: 5497 stp x29, x30, [sp, -16]! 5498 mov w2, 2048 5499 adrp x1, .LANCHOR144 5500 add x1, x1, :lo12:.LANCHOR144 5501 add x29, sp, 0 5502 bl ftl_memcpy 5503 mov w0, 0 5504 ldp x29, x30, [sp], 16 5505 ret 5506 .size FlashReadIdbData, .-FlashReadIdbData 5507 .section .text.FlashLoadPhyInfoInRam,"ax",@progbits 5508 .align 2 5509 .global FlashLoadPhyInfoInRam 5510 .type FlashLoadPhyInfoInRam, %function 5511FlashLoadPhyInfoInRam: 5512 stp x29, x30, [sp, -48]! 5513 adrp x0, .LANCHOR145 5514 add x8, x0, :lo12:.LANCHOR145 5515 adrp x11, .LANCHOR22 5516 add x29, sp, 0 5517 add x8, x8, 1 5518 mov x7, x0 5519 add x11, x11, :lo12:.LANCHOR22 5520 stp x19, x20, [sp, 16] 5521 mov x10, 0 5522 str x21, [sp, 32] 5523.L798: 5524 ldrb w2, [x8, -1] 5525 mov w12, w10 5526 lsl x21, x10, 5 5527 mov x1, x11 5528 mov x0, x8 5529 bl FlashMemCmp8 5530 mov w20, w0 5531 cbnz w0, .L796 5532 add x0, x7, :lo12:.LANCHOR145 5533 ubfiz x12, x12, 5, 32 5534 add x21, x0, x21 5535 add x0, x0, x12 5536 adrp x1, .LANCHOR146 5537 add x4, x1, :lo12:.LANCHOR146 5538 ldrb w3, [x0, 22] 5539 mov x0, 0 5540.L797: 5541 lsl x5, x0, 5 5542 mov w2, w0 5543 ldrb w5, [x5, x4] 5544 cmp w5, w3 5545 beq .L800 5546 add x0, x0, 1 5547 cmp x0, 4 5548 bne .L797 5549 mov w2, w0 5550.L800: 5551 ubfiz x0, x2, 5, 32 5552 add x1, x1, :lo12:.LANCHOR146 5553 adrp x19, .LANCHOR31 5554 add x19, x19, :lo12:.LANCHOR31 5555 add x1, x1, x0 5556 mov w2, 32 5557 adrp x0, .LANCHOR8 5558 add x0, x0, :lo12:.LANCHOR8 5559 bl ftl_memcpy 5560 mov w2, 32 5561 mov x1, x21 5562 mov x0, x19 5563 bl ftl_memcpy 5564 ldrh w0, [x19, 10] 5565 bl FlashBlockAlignInit 5566 b .L795 5567.L796: 5568 add x10, x10, 1 5569 add x8, x8, 32 5570 cmp x10, 86 5571 bne .L798 5572 mov w20, -1 5573.L795: 5574 mov w0, w20 5575 ldr x21, [sp, 32] 5576 ldp x19, x20, [sp, 16] 5577 ldp x29, x30, [sp], 48 5578 ret 5579 .size FlashLoadPhyInfoInRam, .-FlashLoadPhyInfoInRam 5580 .section .text.NandcCopy1KB,"ax",@progbits 5581 .align 2 5582 .global NandcCopy1KB 5583 .type NandcCopy1KB, %function 5584NandcCopy1KB: 5585 stp x29, x30, [sp, -48]! 5586 and w1, w1, 255 5587 cmp w1, 1 5588 add x29, sp, 0 5589 stp x19, x20, [sp, 16] 5590 and w19, w2, 255 5591 str x21, [sp, 32] 5592 add x2, x0, 4096 5593 add x21, x0, 512 5594 ubfiz x0, x19, 9, 8 5595 mov x20, x4 5596 add x0, x2, x0 5597 bne .L805 5598 cbz x3, .L806 5599 mov w2, 1024 5600 mov x1, x3 5601 bl ftl_memcpy 5602.L806: 5603 cbz x20, .L804 5604 ldrb w0, [x20] 5605 lsr w19, w19, 1 5606 ldrb w1, [x20, 1] 5607 orr x1, x0, x1, lsl 8 5608 ldrb w0, [x20, 2] 5609 orr x1, x1, x0, lsl 16 5610 ldrb w0, [x20, 3] 5611 orr x0, x1, x0, lsl 24 5612 mov w1, 12 5613 mul w19, w19, w1 5614 str w0, [x21, w19, sxtw 2] 5615.L804: 5616 ldp x19, x20, [sp, 16] 5617 ldr x21, [sp, 32] 5618 ldp x29, x30, [sp], 48 5619 ret 5620.L805: 5621 cbz x3, .L809 5622 mov x1, x0 5623 mov w2, 1024 5624 mov x0, x3 5625 bl ftl_memcpy 5626.L809: 5627 cbz x20, .L804 5628 lsr w19, w19, 1 5629 mov w0, 12 5630 mul w19, w19, w0 5631 ldr w0, [x21, w19, sxtw 2] 5632 strb w0, [x20] 5633 lsr w1, w0, 8 5634 strb w1, [x20, 1] 5635 lsr w1, w0, 16 5636 lsr w0, w0, 24 5637 strb w1, [x20, 2] 5638 strb w0, [x20, 3] 5639 b .L804 5640 .size NandcCopy1KB, .-NandcCopy1KB 5641 .section .text.NandcXferData,"ax",@progbits 5642 .align 2 5643 .global NandcXferData 5644 .type NandcXferData, %function 5645NandcXferData: 5646 stp x29, x30, [sp, -192]! 5647 tst x3, 63 5648 add x29, sp, 0 5649 stp x25, x26, [sp, 64] 5650 and w25, w0, 255 5651 stp x19, x20, [sp, 16] 5652 adrp x0, .LANCHOR0 5653 and w20, w1, 255 5654 add x0, x0, :lo12:.LANCHOR0 5655 sbfiz x1, x25, 4, 32 5656 stp x21, x22, [sp, 32] 5657 stp x23, x24, [sp, 48] 5658 mov x26, x3 5659 stp x27, x28, [sp, 80] 5660 and w24, w2, 255 5661 mov x21, x4 5662 ldr x19, [x0, x1] 5663 bne .L822 5664 cbnz x4, .L823 5665 add x21, x29, 128 5666 mov w2, 64 5667 mov w1, 255 5668 add x0, x29, 128 5669 bl ftl_memset 5670.L823: 5671 mov x5, x21 5672 mov x4, x26 5673 mov w2, w24 5674 mov w3, 0 5675 mov w1, w20 5676 mov w0, w25 5677 bl NandcXferStart 5678 mov w1, w20 5679 mov w0, w25 5680 bl NandcXferComp 5681 cbnz w20, .L847 5682 adrp x0, .LANCHOR32 5683 adrp x4, .LANCHOR35 5684 mov x1, x0 5685 add x4, x4, :lo12:.LANCHOR35 5686 ldr w2, [x0, #:lo12:.LANCHOR32] 5687 mov w0, 128 5688 mov w3, 64 5689 cmp w2, 25 5690 ubfx x2, x24, 1, 7 5691 add x2, x21, x2, lsl 2 5692 csel w3, w3, w0, cc 5693 mov w0, 0 5694.L826: 5695 add w5, w3, w0 5696 cmp x21, x2 5697 bne .L827 5698 adrp x0, .LANCHOR34 5699 ldr w4, [x1, #:lo12:.LANCHOR32] 5700 lsr w24, w24, 2 5701 mov w2, 0 5702 ldr w3, [x0, #:lo12:.LANCHOR34] 5703 mov w22, 0 5704.L828: 5705 cmp w2, w24 5706 bcs .L824 5707 cbnz w4, .L834 5708.L824: 5709 str wzr, [x19, 16] 5710.L835: 5711 adrp x0, .LANCHOR34 5712 ldr w0, [x0, #:lo12:.LANCHOR34] 5713 cmp w0, 5 5714 bls .L821 5715 cbnz w20, .L821 5716 ldr w0, [x19] 5717 mov w1, 8192 5718 movk w1, 0x2, lsl 16 5719 and w1, w0, w1 5720 cmp w1, 139264 5721 bne .L821 5722 orr w0, w0, 131072 5723 mov w22, -1 5724 str w0, [x19] 5725.L821: 5726 mov w0, w22 5727 ldp x19, x20, [sp, 16] 5728 ldp x21, x22, [sp, 32] 5729 ldp x23, x24, [sp, 48] 5730 ldp x25, x26, [sp, 64] 5731 ldp x27, x28, [sp, 80] 5732 ldp x29, x30, [sp], 192 5733 ret 5734.L827: 5735 ldr x6, [x4, 8] 5736 and x0, x0, 4294967292 5737 add x21, x21, 4 5738 ldr w0, [x6, x0] 5739 strb w0, [x21, -4] 5740 lsr w6, w0, 8 5741 strb w6, [x21, -3] 5742 lsr w6, w0, 16 5743 strb w6, [x21, -2] 5744 lsr w0, w0, 24 5745 strb w0, [x21, -1] 5746 mov w0, w5 5747 b .L826 5748.L834: 5749 uxtw x0, w2 5750 add x0, x0, 8 5751 ldr w0, [x19, x0, lsl 2] 5752 str w0, [x29, 120] 5753 ldr w0, [x29, 120] 5754 tbnz x0, 2, .L850 5755 ldr w0, [x29, 120] 5756 tbnz x0, 15, .L850 5757 cmp w3, 5 5758 bls .L830 5759 ldr w1, [x29, 120] 5760 ubfx x6, x1, 3, 5 5761 ldr w1, [x29, 120] 5762 ldr w0, [x29, 120] 5763 ubfx x1, x1, 27, 1 5764 ubfx x5, x0, 16, 5 5765 ldr w0, [x29, 120] 5766 orr w1, w6, w1, lsl 5 5767 ubfx x0, x0, 29, 1 5768 orr w0, w5, w0, lsl 5 5769 cmp w1, w0 5770 ldr w0, [x29, 120] 5771 bls .L831 5772 ubfx x1, x0, 3, 5 5773 ldr w0, [x29, 120] 5774 ubfx x0, x0, 27, 1 5775.L856: 5776 orr w0, w1, w0, lsl 5 5777.L832: 5778 cmp w22, w0 5779 csel w22, w22, w0, cs 5780.L829: 5781 add w2, w2, 1 5782 b .L828 5783.L831: 5784 ubfx x1, x0, 16, 5 5785 ldr w0, [x29, 120] 5786 ubfx x0, x0, 29, 1 5787 b .L856 5788.L830: 5789 cmp w3, 3 5790 bls .L851 5791 ldr w1, [x29, 120] 5792 ubfx x6, x1, 3, 5 5793 ldr w1, [x29, 120] 5794 ldr w0, [x29, 120] 5795 ubfx x1, x1, 28, 1 5796 ubfx x5, x0, 16, 5 5797 ldr w0, [x29, 120] 5798 orr w1, w6, w1, lsl 5 5799 ubfx x0, x0, 30, 1 5800 orr w0, w5, w0, lsl 5 5801 cmp w1, w0 5802 ldr w0, [x29, 120] 5803 bls .L833 5804 ubfx x1, x0, 3, 5 5805 ldr w0, [x29, 120] 5806 ubfx x0, x0, 28, 1 5807 b .L856 5808.L833: 5809 ubfx x1, x0, 16, 5 5810 ldr w0, [x29, 120] 5811 ubfx x0, x0, 30, 1 5812 b .L856 5813.L851: 5814 mov w0, 0 5815 b .L832 5816.L850: 5817 mov w22, -1 5818 b .L829 5819.L847: 5820 mov w22, 0 5821 b .L824 5822.L822: 5823 cmp w20, 1 5824 bne .L836 5825 cmp x4, 0 5826 mov w23, 2 5827 csel w23, w23, wzr, ne 5828 mov w27, 0 5829 lsl w23, w23, 1 5830 mov w22, 0 5831.L837: 5832 cmp w22, w24 5833 bcc .L839 5834 mov w22, 0 5835 b .L835 5836.L839: 5837 and w28, w22, 3 5838 cbz x26, .L852 5839 lsl w3, w22, 9 5840 add x3, x26, x3 5841.L838: 5842 add x4, x21, x27, uxtw 5843 mov w2, w28 5844 mov w1, 1 5845 mov x0, x19 5846 bl NandcCopy1KB 5847 add w22, w22, 2 5848 mov w3, w28 5849 mov x5, 0 5850 mov x4, 0 5851 mov w2, 2 5852 mov w1, 1 5853 mov w0, w25 5854 bl NandcXferStart 5855 add w27, w27, w23 5856 mov w1, 1 5857 mov w0, w25 5858 bl NandcXferComp 5859 b .L837 5860.L852: 5861 mov x3, 0 5862 b .L838 5863.L836: 5864 mov w0, w25 5865 mov x5, 0 5866 mov x4, 0 5867 mov w3, 0 5868 mov w2, 2 5869 mov w1, 0 5870 bl NandcXferStart 5871 mov w27, 2 5872 cmp x21, 0 5873 mov w28, 0 5874 csel w27, w27, wzr, ne 5875 mov w23, 0 5876 lsl w0, w27, 1 5877 mov w22, 0 5878 str w0, [x29, 108] 5879.L840: 5880 cmp w24, w23 5881 bls .L835 5882 mov w0, w25 5883 mov w1, w20 5884 bl NandcXferComp 5885 add w27, w23, 2 5886 ldr w0, [x19, 32] 5887 cmp w24, w27 5888 str w0, [x29, 120] 5889 bls .L841 5890 mov x5, 0 5891 mov x4, 0 5892 and w3, w27, 3 5893 mov w2, 2 5894 mov w1, 0 5895 mov w0, w25 5896 bl NandcXferStart 5897.L841: 5898 ldr w0, [x29, 120] 5899 tbnz x0, 2, .L853 5900 ldr w0, [x29, 120] 5901 ubfx x1, x0, 3, 5 5902 ldr w0, [x29, 120] 5903 ubfx x0, x0, 27, 1 5904 orr w0, w1, w0, lsl 5 5905 cmp w22, w0 5906 csel w22, w22, w0, cs 5907.L842: 5908 and w2, w23, 3 5909 cbz x26, .L854 5910 lsl w3, w23, 9 5911 add x3, x26, x3 5912.L843: 5913 add x4, x21, x28, uxtw 5914 mov x0, x19 5915 mov w1, 0 5916 bl NandcCopy1KB 5917 ldr w0, [x29, 108] 5918 mov w23, w27 5919 add w28, w28, w0 5920 b .L840 5921.L853: 5922 mov w22, -1 5923 b .L842 5924.L854: 5925 mov x3, 0 5926 b .L843 5927 .size NandcXferData, .-NandcXferData 5928 .section .text.FlashReadRawPage,"ax",@progbits 5929 .align 2 5930 .global FlashReadRawPage 5931 .type FlashReadRawPage, %function 5932FlashReadRawPage: 5933 stp x29, x30, [sp, -64]! 5934 add x29, sp, 0 5935 stp x19, x20, [sp, 16] 5936 ands w19, w0, 255 5937 stp x21, x22, [sp, 32] 5938 mov w21, w1 5939 str x23, [sp, 48] 5940 adrp x1, .LANCHOR31+9 5941 mov x22, x2 5942 mov x23, x3 5943 ldrb w20, [x1, #:lo12:.LANCHOR31+9] 5944 bne .L858 5945 adrp x0, .LANCHOR3 5946 adrp x1, .LANCHOR4 5947 ldrb w0, [x0, #:lo12:.LANCHOR3] 5948 ldr w1, [x1, #:lo12:.LANCHOR4] 5949 mul w0, w0, w1 5950 cmp w0, w21 5951 mov w0, 4 5952 csel w20, w20, w0, ls 5953.L858: 5954 mov w0, w19 5955 bl NandcWaitFlashReady 5956 mov w0, w19 5957 bl NandcFlashCs 5958 mov w1, w21 5959 mov w0, w19 5960 bl FlashReadCmd 5961 mov w0, w19 5962 bl NandcWaitFlashReady 5963 mov w2, w20 5964 mov x4, x23 5965 mov x3, x22 5966 mov w1, 0 5967 mov w0, w19 5968 bl NandcXferData 5969 mov w2, w0 5970 mov w0, w19 5971 bl NandcFlashDeCs 5972 ldr x23, [sp, 48] 5973 mov w0, w2 5974 ldp x19, x20, [sp, 16] 5975 ldp x21, x22, [sp, 32] 5976 ldp x29, x30, [sp], 64 5977 ret 5978 .size FlashReadRawPage, .-FlashReadRawPage 5979 .section .text.FlashDdrTunningRead,"ax",@progbits 5980 .align 2 5981 .global FlashDdrTunningRead 5982 .type FlashDdrTunningRead, %function 5983FlashDdrTunningRead: 5984 stp x29, x30, [sp, -112]! 5985 add x29, sp, 0 5986 stp x23, x24, [sp, 48] 5987 and w24, w0, 255 5988 adrp x0, .LANCHOR19 5989 stp x25, x26, [sp, 64] 5990 stp x21, x22, [sp, 32] 5991 mov w25, w1 5992 ldr x0, [x0, #:lo12:.LANCHOR19] 5993 mov w22, 6 5994 stp x27, x28, [sp, 80] 5995 mov x23, x2 5996 stp x19, x20, [sp, 16] 5997 mov x28, x3 5998 mov w26, w4 5999 ldr w0, [x0, 304] 6000 str w0, [x29, 108] 6001 adrp x0, .LANCHOR34 6002 ldr w0, [x0, #:lo12:.LANCHOR34] 6003 cmp w0, 8 6004 mov w0, 12 6005 csel w22, w22, w0, cc 6006 cbz w4, .L874 6007 mov w0, 1 6008 bl FlashSetInterfaceMode 6009 mov w0, 1 6010 bl NandcSetMode 6011 mov w0, w24 6012 adrp x19, .LANCHOR25 6013 bl FlashReset 6014 mov x3, x28 6015 mov x2, x23 6016 mov w1, w25 6017 mov w0, w24 6018 bl FlashReadRawPage 6019 mov w21, w0 6020 ldrb w0, [x19, #:lo12:.LANCHOR25] 6021 bl FlashSetInterfaceMode 6022 ldrb w0, [x19, #:lo12:.LANCHOR25] 6023 bl NandcSetMode 6024 cmn w21, #1 6025 bne .L863 6026.L872: 6027 mov w21, -1 6028.L860: 6029 mov w0, w21 6030 ldp x19, x20, [sp, 16] 6031 ldp x21, x22, [sp, 32] 6032 ldp x23, x24, [sp, 48] 6033 ldp x25, x26, [sp, 64] 6034 ldp x27, x28, [sp, 80] 6035 ldp x29, x30, [sp], 112 6036 ret 6037.L863: 6038 mov w1, w25 6039 mov w2, w21 6040 adrp x0, .LC9 6041 add x0, x0, :lo12:.LC9 6042 bl printf 6043 adrp x1, .LANCHOR147 6044 ldr w0, [x1, #:lo12:.LANCHOR147] 6045 add w0, w0, 1 6046 cmp w0, 2047 6047 bhi .L865 6048 str w0, [x1, #:lo12:.LANCHOR147] 6049 b .L860 6050.L865: 6051 str wzr, [x1, #:lo12:.LANCHOR147] 6052 mov x28, 0 6053 mov x23, 0 6054.L862: 6055 mov w5, 0 6056 mov w20, 0 6057 mov w6, 0 6058 mov w19, 0 6059 mov w27, -1 6060.L870: 6061 stp w5, w6, [x29, 100] 6062 mov w0, w22 6063 bl NandcSetDdrPara 6064 mov w1, w25 6065 mov x3, x28 6066 mov x2, x23 6067 mov w0, w24 6068 bl FlashReadRawPage 6069 add w1, w21, 1 6070 cmp w0, w1 6071 ldp w5, w6, [x29, 100] 6072 bhi .L866 6073 cmp w0, 2 6074 bhi .L876 6075 add w19, w19, 1 6076 cmp w19, 9 6077 bls .L876 6078 mov w1, w20 6079 mov w21, w0 6080 sub w20, w22, w19 6081 mov w27, 0 6082.L868: 6083 cmp w19, w6 6084 csel w20, w20, w1, hi 6085.L869: 6086 cbz w20, .L871 6087 mov w1, w20 6088 adrp x0, .LC10 6089 add x0, x0, :lo12:.LC10 6090 bl printf 6091 mov w0, w20 6092 bl NandcSetDdrPara 6093.L871: 6094 cbz w27, .L860 6095 adrp x0, .LC11 6096 mov w2, w25 6097 mov w1, w24 6098 add x0, x0, :lo12:.LC11 6099 bl printf 6100 cbz w26, .L872 6101 ldr w1, [x29, 108] 6102 lsr w0, w1, 8 6103 bl NandcSetDdrPara 6104 b .L860 6105.L874: 6106 mov w21, 1024 6107 b .L862 6108.L866: 6109 cmp w19, w6 6110 bls .L877 6111 sub w20, w5, w19 6112 cmp w19, 7 6113 bhi .L869 6114 mov w6, w19 6115.L877: 6116 mov w19, 0 6117 b .L867 6118.L876: 6119 mov w5, w22 6120 mov w21, w0 6121 mov w27, 0 6122 mov x28, 0 6123 mov x23, 0 6124.L867: 6125 add w22, w22, 2 6126 cmp w22, 69 6127 bls .L870 6128 mov w1, w20 6129 mov w20, w5 6130 b .L868 6131 .size FlashDdrTunningRead, .-FlashDdrTunningRead 6132 .section .text.FlashReadPage,"ax",@progbits 6133 .align 2 6134 .global FlashReadPage 6135 .type FlashReadPage, %function 6136FlashReadPage: 6137 stp x29, x30, [sp, -80]! 6138 add x29, sp, 0 6139 stp x19, x20, [sp, 16] 6140 and w20, w0, 255 6141 stp x21, x22, [sp, 32] 6142 mov w0, w20 6143 stp x23, x24, [sp, 48] 6144 mov w21, w1 6145 mov x22, x2 6146 mov x23, x3 6147 str x25, [sp, 64] 6148 bl FlashReadRawPage 6149 mov w19, w0 6150 cmn w0, #1 6151 bne .L887 6152 adrp x24, .LANCHOR6 6153 ldrb w25, [x24, #:lo12:.LANCHOR6] 6154 cbnz w25, .L888 6155.L890: 6156 adrp x0, .LANCHOR30 6157 ldrb w0, [x0, #:lo12:.LANCHOR30] 6158 cbz w0, .L887 6159 adrp x0, .LANCHOR19 6160 mov w4, 1 6161 mov x3, x23 6162 mov x2, x22 6163 ldr x0, [x0, #:lo12:.LANCHOR19] 6164 mov w1, w21 6165 ldr w24, [x0, 304] 6166 mov w0, w20 6167 bl FlashDdrTunningRead 6168 mov w19, w0 6169 cmn w0, #1 6170 beq .L891 6171 adrp x0, .LANCHOR33 6172 ldrb w0, [x0, #:lo12:.LANCHOR33] 6173 cmp w19, w0, lsr 1 6174 bls .L887 6175.L891: 6176 lsr w0, w24, 8 6177 bl NandcSetDdrPara 6178 b .L887 6179.L888: 6180 strb wzr, [x24, #:lo12:.LANCHOR6] 6181 mov x3, x23 6182 mov x2, x22 6183 mov w1, w21 6184 mov w0, w20 6185 bl FlashReadRawPage 6186 strb w25, [x24, #:lo12:.LANCHOR6] 6187 cmn w0, #1 6188 beq .L890 6189 mov w19, w0 6190.L887: 6191 adrp x24, .LANCHOR148 6192 ldr x4, [x24, #:lo12:.LANCHOR148] 6193 cbz x4, .L886 6194 cmn w19, #1 6195 bne .L886 6196 mov x3, x23 6197 mov x2, x22 6198 mov w1, w21 6199 mov w0, w20 6200 blr x4 6201 mov w19, w0 6202 mov w1, w0 6203 mov w3, w21 6204 mov w2, w20 6205 adrp x0, .LC12 6206 add x0, x0, :lo12:.LC12 6207 bl printf 6208 cmn w19, #1 6209 bne .L886 6210 adrp x0, .LANCHOR16 6211 ldrb w0, [x0, #:lo12:.LANCHOR16] 6212 cbz w0, .L886 6213 mov w0, w20 6214 bl flash_enter_slc_mode 6215 ldr x4, [x24, #:lo12:.LANCHOR148] 6216 mov x3, x23 6217 mov x2, x22 6218 mov w1, w21 6219 mov w0, w20 6220 blr x4 6221 mov w19, w0 6222 mov w0, w20 6223 bl flash_exit_slc_mode 6224.L886: 6225 mov w0, w19 6226 ldr x25, [sp, 64] 6227 ldp x19, x20, [sp, 16] 6228 ldp x21, x22, [sp, 32] 6229 ldp x23, x24, [sp, 48] 6230 ldp x29, x30, [sp], 80 6231 ret 6232 .size FlashReadPage, .-FlashReadPage 6233 .section .text.FlashDdrParaScan,"ax",@progbits 6234 .align 2 6235 .global FlashDdrParaScan 6236 .type FlashDdrParaScan, %function 6237FlashDdrParaScan: 6238 stp x29, x30, [sp, -48]! 6239 add x29, sp, 0 6240 stp x19, x20, [sp, 16] 6241 adrp x19, .LANCHOR25 6242 and w20, w0, 255 6243 stp x21, x22, [sp, 32] 6244 ldrb w0, [x19, #:lo12:.LANCHOR25] 6245 mov w21, w1 6246 bl FlashSetInterfaceMode 6247 ldrb w0, [x19, #:lo12:.LANCHOR25] 6248 bl NandcSetMode 6249 mov w4, 0 6250 mov x3, 0 6251 mov x2, 0 6252 mov w1, w21 6253 mov w0, w20 6254 bl FlashDdrTunningRead 6255 mov x3, 0 6256 mov w22, w0 6257 mov x2, 0 6258 mov w0, w20 6259 mov w1, w21 6260 adrp x20, .LANCHOR30 6261 bl FlashReadRawPage 6262 cmn w0, #1 6263 beq .L907 6264 cmn w22, #1 6265 bne .L908 6266.L907: 6267 ldrb w0, [x19, #:lo12:.LANCHOR25] 6268 tbz x0, 0, .L908 6269 mov w0, 1 6270 bl FlashSetInterfaceMode 6271 mov w0, 1 6272 bl NandcSetMode 6273 strb wzr, [x20, #:lo12:.LANCHOR30] 6274.L909: 6275 mov w0, 0 6276 ldp x19, x20, [sp, 16] 6277 ldp x21, x22, [sp, 32] 6278 ldp x29, x30, [sp], 48 6279 ret 6280.L908: 6281 mov w0, 1 6282 strb w0, [x20, #:lo12:.LANCHOR30] 6283 b .L909 6284 .size FlashDdrParaScan, .-FlashDdrParaScan 6285 .section .text.ToshibaReadRetrial,"ax",@progbits 6286 .align 2 6287 .global ToshibaReadRetrial 6288 .type ToshibaReadRetrial, %function 6289ToshibaReadRetrial: 6290 stp x29, x30, [sp, -128]! 6291 add x29, sp, 0 6292 stp x21, x22, [sp, 32] 6293 and w21, w0, 255 6294 stp x25, x26, [sp, 64] 6295 mov w0, w21 6296 stp x19, x20, [sp, 16] 6297 mov x25, x2 6298 stp x27, x28, [sp, 80] 6299 mov x26, x3 6300 str w1, [x29, 120] 6301 stp x23, x24, [sp, 48] 6302 bl NandcWaitFlashReady 6303 sbfiz x1, x21, 4, 32 6304 adrp x0, .LANCHOR0 6305 add x0, x0, :lo12:.LANCHOR0 6306 add x2, x0, x1 6307 ldr x22, [x0, x1] 6308 adrp x1, .LANCHOR11 6309 ldrb w27, [x2, 8] 6310 ldrb w0, [x1, #:lo12:.LANCHOR11] 6311 str x1, [x29, 112] 6312 add x19, x27, 8 6313 sub w0, w0, #67 6314 str w27, [x29, 124] 6315 and w0, w0, 255 6316 add x19, x22, x19, lsl 8 6317 cmp w0, 1 6318 bls .L934 6319 adrp x0, .LANCHOR30 6320 ldrb w0, [x0, #:lo12:.LANCHOR30] 6321 cbz w0, .L935 6322 mov w23, 1 6323 mov w0, 0 6324 bl NandcSetDdrMode 6325.L919: 6326 add x0, x22, x27, lsl 8 6327 mov w1, 92 6328 str w1, [x0, 2056] 6329 mov w1, 197 6330 str w1, [x0, 2056] 6331.L918: 6332 ldrsw x0, [x29, 124] 6333 mov w20, 1 6334 mov w24, -1 6335 add x0, x0, 8 6336 add x0, x22, x0, lsl 8 6337 str x0, [x29, 104] 6338.L920: 6339 adrp x0, .LANCHOR149 6340 ldrb w0, [x0, #:lo12:.LANCHOR149] 6341 add w0, w0, 1 6342 cmp w20, w0 6343 bcc .L929 6344 mov w28, w24 6345.L928: 6346 ldr x0, [x29, 112] 6347 mov w1, 0 6348 ldrb w0, [x0, #:lo12:.LANCHOR11] 6349 sub w0, w0, #67 6350 and w0, w0, 255 6351 cmp w0, 1 6352 mov x0, x19 6353 bhi .L930 6354 bl SandiskSetRRPara 6355.L931: 6356 ldrsw x0, [x29, 124] 6357 add x0, x0, 8 6358 add x22, x22, x0, lsl 8 6359 mov w0, 255 6360 str w0, [x22, 8] 6361 adrp x0, .LANCHOR33 6362 ldrb w0, [x0, #:lo12:.LANCHOR33] 6363 add w0, w0, w0, lsl 1 6364 cmp w28, w0, lsr 2 6365 bcc .L932 6366 cmn w28, #1 6367 mov w0, 256 6368 csel w28, w28, w0, eq 6369.L932: 6370 mov w0, w21 6371 bl NandcWaitFlashReady 6372 cbz w23, .L917 6373 mov w0, 4 6374 bl NandcSetDdrMode 6375.L917: 6376 mov w0, w28 6377 ldp x19, x20, [sp, 16] 6378 ldp x21, x22, [sp, 32] 6379 ldp x23, x24, [sp, 48] 6380 ldp x25, x26, [sp, 64] 6381 ldp x27, x28, [sp, 80] 6382 ldp x29, x30, [sp], 128 6383 ret 6384.L935: 6385 mov w23, 0 6386 b .L919 6387.L934: 6388 mov w23, 0 6389 b .L918 6390.L929: 6391 ldr x0, [x29, 112] 6392 mov w1, w20 6393 ldrb w0, [x0, #:lo12:.LANCHOR11] 6394 sub w0, w0, #67 6395 and w0, w0, 255 6396 cmp w0, 1 6397 mov x0, x19 6398 bhi .L921 6399 bl SandiskSetRRPara 6400.L922: 6401 ldr x0, [x29, 112] 6402 ldrb w0, [x0, #:lo12:.LANCHOR11] 6403 cmp w0, 34 6404 bne .L923 6405 adrp x0, .LANCHOR149 6406 ldrb w0, [x0, #:lo12:.LANCHOR149] 6407 sub w0, w0, #3 6408 cmp w20, w0 6409 bne .L923 6410 ldr x1, [x29, 104] 6411 mov w0, 179 6412 str w0, [x1, 8] 6413.L923: 6414 add x0, x22, x27, lsl 8 6415 mov w1, 38 6416 str w1, [x0, 2056] 6417 mov w1, 93 6418 str w1, [x0, 2056] 6419 cbz w23, .L924 6420 mov w0, 4 6421 bl NandcSetDdrMode 6422 ldr w1, [x29, 120] 6423 mov x3, x26 6424 mov x2, x25 6425 mov w0, w21 6426 bl FlashReadRawPage 6427 mov w28, w0 6428 mov w0, 0 6429 bl NandcSetDdrMode 6430.L925: 6431 cmn w28, #1 6432 beq .L926 6433 adrp x0, .LANCHOR33 6434 cmn w24, #1 6435 csel w24, w24, w28, ne 6436 ldrb w0, [x0, #:lo12:.LANCHOR33] 6437 add w0, w0, w0, lsl 1 6438 cmp w28, w0, lsr 2 6439 bcc .L928 6440 mov x26, 0 6441 mov x25, 0 6442.L926: 6443 add w20, w20, 1 6444 b .L920 6445.L921: 6446 bl ToshibaSetRRPara 6447 b .L922 6448.L924: 6449 ldr w1, [x29, 120] 6450 mov x3, x26 6451 mov x2, x25 6452 mov w0, w21 6453 bl FlashReadRawPage 6454 mov w28, w0 6455 b .L925 6456.L930: 6457 bl ToshibaSetRRPara 6458 b .L931 6459 .size ToshibaReadRetrial, .-ToshibaReadRetrial 6460 .section .text.SamsungReadRetrial,"ax",@progbits 6461 .align 2 6462 .global SamsungReadRetrial 6463 .type SamsungReadRetrial, %function 6464SamsungReadRetrial: 6465 stp x29, x30, [sp, -96]! 6466 add x29, sp, 0 6467 stp x21, x22, [sp, 32] 6468 and w22, w0, 255 6469 stp x19, x20, [sp, 16] 6470 mov w0, w22 6471 stp x23, x24, [sp, 48] 6472 mov w23, w1 6473 stp x25, x26, [sp, 64] 6474 mov x24, x2 6475 str x27, [sp, 80] 6476 mov x25, x3 6477 bl NandcWaitFlashReady 6478 adrp x26, .LANCHOR149 6479 sbfiz x1, x22, 4, 32 6480 adrp x0, .LANCHOR0 6481 add x0, x0, :lo12:.LANCHOR0 6482 adrp x27, .LANCHOR33 6483 add x2, x0, x1 6484 add x26, x26, :lo12:.LANCHOR149 6485 add x27, x27, :lo12:.LANCHOR33 6486 mov w21, 1 6487 ldr x0, [x0, x1] 6488 mov w19, -1 6489 ldrb w20, [x2, 8] 6490 add x20, x20, 8 6491 add x20, x0, x20, lsl 8 6492.L946: 6493 ldrb w0, [x26] 6494 add w0, w0, 1 6495 cmp w21, w0 6496 bcc .L950 6497.L949: 6498 mov x0, x20 6499 mov w1, 0 6500 bl SamsungSetRRPara 6501 adrp x0, .LANCHOR33 6502 ldrb w0, [x0, #:lo12:.LANCHOR33] 6503 add w0, w0, w0, lsl 1 6504 cmp w19, w0, lsr 2 6505 bcc .L945 6506 cmn w19, #1 6507 mov w0, 256 6508 csel w19, w19, w0, eq 6509.L945: 6510 mov w0, w19 6511 ldr x27, [sp, 80] 6512 ldp x19, x20, [sp, 16] 6513 ldp x21, x22, [sp, 32] 6514 ldp x23, x24, [sp, 48] 6515 ldp x25, x26, [sp, 64] 6516 ldp x29, x30, [sp], 96 6517 ret 6518.L950: 6519 mov w1, w21 6520 mov x0, x20 6521 bl SamsungSetRRPara 6522 mov x3, x25 6523 mov x2, x24 6524 mov w1, w23 6525 mov w0, w22 6526 bl FlashReadRawPage 6527 cmn w0, #1 6528 beq .L947 6529 ldrb w1, [x27] 6530 cmn w19, #1 6531 csel w19, w19, w0, ne 6532 add w1, w1, w1, lsl 1 6533 cmp w0, w1, lsr 2 6534 bcc .L952 6535 mov x25, 0 6536 mov x24, 0 6537.L947: 6538 add w21, w21, 1 6539 b .L946 6540.L952: 6541 mov w19, w0 6542 b .L949 6543 .size SamsungReadRetrial, .-SamsungReadRetrial 6544 .section .text.MicronReadRetrial,"ax",@progbits 6545 .align 2 6546 .global MicronReadRetrial 6547 .type MicronReadRetrial, %function 6548MicronReadRetrial: 6549 stp x29, x30, [sp, -144]! 6550 add x29, sp, 0 6551 stp x19, x20, [sp, 16] 6552 and w20, w0, 255 6553 adrp x0, .LANCHOR33 6554 stp x23, x24, [sp, 48] 6555 str w1, [x29, 140] 6556 mov x24, x2 6557 ldrb w19, [x0, #:lo12:.LANCHOR33] 6558 adrp x0, .LANCHOR16 6559 stp x25, x26, [sp, 64] 6560 mov x25, x3 6561 ldrb w1, [x0, #:lo12:.LANCHOR16] 6562 stp x21, x22, [sp, 32] 6563 stp x27, x28, [sp, 80] 6564 str x0, [x29, 128] 6565 cbnz w1, .L960 6566 add w19, w19, w19, lsl 1 6567 asr w19, w19, 2 6568.L961: 6569 adrp x21, .LANCHOR0 6570 add x21, x21, :lo12:.LANCHOR0 6571 add x21, x21, x20, sxtw 4 6572 mov w23, 0 6573 mov w28, 137 6574.L971: 6575 mov w0, w20 6576 bl NandcWaitFlashReady 6577 ldrb w4, [x21, 8] 6578 adrp x7, .LANCHOR149 6579 ldr x8, [x21] 6580 add x7, x7, :lo12:.LANCHOR149 6581 mov w22, 0 6582 mov w26, -1 6583 add x27, x8, x4, lsl 8 6584.L962: 6585 ldrb w0, [x7] 6586 cmp w22, w0 6587 bcc .L966 6588.L965: 6589 add x4, x8, x4, lsl 8 6590 mov w0, 239 6591 str x4, [x29, 120] 6592 str w0, [x4, 2056] 6593 mov x0, 200 6594 str w28, [x4, 2052] 6595 bl udelay 6596 ldr x4, [x29, 120] 6597 cmp w26, w19 6598 str wzr, [x4, 2048] 6599 str wzr, [x4, 2048] 6600 str wzr, [x4, 2048] 6601 str wzr, [x4, 2048] 6602 bcc .L967 6603 cmn w26, #1 6604 mov w0, 256 6605 csel w26, w26, w0, eq 6606.L967: 6607 cmp w26, 256 6608 ccmn w26, #1, 4, ne 6609 bne .L968 6610 ldr w2, [x29, 140] 6611 adrp x0, .LC13 6612 mov w4, w26 6613 mov w3, w22 6614 mov w1, w22 6615 add x0, x0, :lo12:.LC13 6616 bl printf 6617 cbnz w23, .L969 6618 ldr x0, [x29, 128] 6619 ldrb w0, [x0, #:lo12:.LANCHOR16] 6620 cbz w0, .L959 6621 cmn w26, #1 6622 bne .L959 6623 mov w1, 3 6624 mov w0, w20 6625 mov w23, 1 6626 bl micron_auto_read_calibration_config 6627 b .L971 6628.L960: 6629 mov w0, 3 6630 sdiv w19, w19, w0 6631 b .L961 6632.L966: 6633 mov w0, 239 6634 str w0, [x27, 2056] 6635 str w28, [x27, 2052] 6636 mov x0, 200 6637 stp x4, x7, [x29, 96] 6638 str x8, [x29, 112] 6639 bl udelay 6640 add w10, w22, 1 6641 str w10, [x27, 2048] 6642 str wzr, [x27, 2048] 6643 mov x3, x25 6644 ldr w1, [x29, 140] 6645 mov x2, x24 6646 str wzr, [x27, 2048] 6647 mov w0, w20 6648 str wzr, [x27, 2048] 6649 str w10, [x29, 120] 6650 bl FlashReadRawPage 6651 cmn w0, #1 6652 ldr w10, [x29, 120] 6653 ldp x4, x7, [x29, 96] 6654 ldr x8, [x29, 112] 6655 beq .L963 6656 cmn w26, #1 6657 csel w26, w26, w0, ne 6658 cmp w0, w19 6659 bcc .L973 6660 mov x25, 0 6661 mov x24, 0 6662.L963: 6663 mov w22, w10 6664 b .L962 6665.L973: 6666 mov w26, w0 6667 mov x25, 0 6668 mov x24, 0 6669 b .L965 6670.L969: 6671 mov w0, w20 6672 mov w1, 0 6673 bl micron_auto_read_calibration_config 6674 cmn w26, #1 6675 mov w0, 256 6676 csel w26, w26, w0, eq 6677.L959: 6678 mov w0, w26 6679 ldp x19, x20, [sp, 16] 6680 ldp x21, x22, [sp, 32] 6681 ldp x23, x24, [sp, 48] 6682 ldp x25, x26, [sp, 64] 6683 ldp x27, x28, [sp, 80] 6684 ldp x29, x30, [sp], 144 6685 ret 6686.L968: 6687 cbz w23, .L959 6688 mov w1, 0 6689 mov w0, w20 6690 mov w26, 256 6691 bl micron_auto_read_calibration_config 6692 b .L959 6693 .size MicronReadRetrial, .-MicronReadRetrial 6694 .section .text.HynixReadRetrial,"ax",@progbits 6695 .align 2 6696 .global HynixReadRetrial 6697 .type HynixReadRetrial, %function 6698HynixReadRetrial: 6699 stp x29, x30, [sp, -128]! 6700 add x29, sp, 0 6701 stp x19, x20, [sp, 16] 6702 adrp x19, .LANCHOR20 6703 stp x27, x28, [sp, 80] 6704 and x28, x0, 255 6705 add x0, x19, :lo12:.LANCHOR20 6706 stp x23, x24, [sp, 48] 6707 stp x21, x22, [sp, 32] 6708 mov w22, w1 6709 stp x25, x26, [sp, 64] 6710 adrp x25, .LANCHOR7 6711 add x1, x0, x28 6712 mov x20, x28 6713 ldrb w21, [x0, 2] 6714 mov x23, x2 6715 ldr x0, [x25, #:lo12:.LANCHOR7] 6716 mov x24, x3 6717 ldrb w26, [x1, 12] 6718 ldrb w0, [x0, 19] 6719 sub w0, w0, #7 6720 and w0, w0, 255 6721 cmp w0, 1 6722 bhi .L985 6723 ldrb w26, [x1, 20] 6724.L985: 6725 mov w0, w20 6726 bl NandcWaitFlashReady 6727 add x6, x19, :lo12:.LANCHOR20 6728 adrp x5, .LANCHOR33 6729 add x7, x6, 4 6730 add x5, x5, :lo12:.LANCHOR33 6731 mov w4, 0 6732 mov w27, -1 6733.L986: 6734 cmp w4, w21 6735 bcc .L991 6736.L990: 6737 ldr x0, [x25, #:lo12:.LANCHOR7] 6738 add x19, x19, :lo12:.LANCHOR20 6739 add x19, x19, x28 6740 ldrb w0, [x0, 19] 6741 sub w0, w0, #7 6742 and w0, w0, 255 6743 cmp w0, 1 6744 bhi .L992 6745 strb w26, [x19, 20] 6746.L993: 6747 adrp x0, .LANCHOR33 6748 ldrb w0, [x0, #:lo12:.LANCHOR33] 6749 add w0, w0, w0, lsl 1 6750 cmp w27, w0, lsr 2 6751 bcc .L984 6752 cmn w27, #1 6753 mov w0, 256 6754 csel w27, w27, w0, eq 6755.L984: 6756 mov w0, w27 6757 ldp x19, x20, [sp, 16] 6758 ldp x21, x22, [sp, 32] 6759 ldp x23, x24, [sp, 48] 6760 ldp x25, x26, [sp, 64] 6761 ldp x27, x28, [sp, 80] 6762 ldp x29, x30, [sp], 128 6763 ret 6764.L991: 6765 add w26, w26, 1 6766 ldrb w1, [x6, 1] 6767 and w26, w26, 255 6768 mov x2, x7 6769 cmp w21, w26 6770 str x5, [x29, 96] 6771 csel w26, w26, wzr, hi 6772 str w4, [x29, 108] 6773 stp x7, x6, [x29, 112] 6774 mov w3, w26 6775 mov w0, w20 6776 bl HynixSetRRPara 6777 mov x3, x24 6778 mov x2, x23 6779 mov w1, w22 6780 mov w0, w20 6781 bl FlashReadRawPage 6782 cmn w0, #1 6783 ldr w4, [x29, 108] 6784 ldr x5, [x29, 96] 6785 ldp x7, x6, [x29, 112] 6786 beq .L988 6787 ldrb w1, [x5] 6788 cmn w27, #1 6789 csel w27, w27, w0, ne 6790 add w1, w1, w1, lsl 1 6791 cmp w0, w1, lsr 2 6792 bcc .L995 6793 mov x24, 0 6794 mov x23, 0 6795.L988: 6796 add w4, w4, 1 6797 b .L986 6798.L995: 6799 mov w27, w0 6800 b .L990 6801.L992: 6802 strb w26, [x19, 12] 6803 b .L993 6804 .size HynixReadRetrial, .-HynixReadRetrial 6805 .section .text.samsung_read_retrial,"ax",@progbits 6806 .align 2 6807 .type samsung_read_retrial, %function 6808samsung_read_retrial: 6809 stp x29, x30, [sp, -112]! 6810 add x29, sp, 0 6811 stp x21, x22, [sp, 32] 6812 and w22, w0, 255 6813 stp x23, x24, [sp, 48] 6814 mov w0, w22 6815 stp x19, x20, [sp, 16] 6816 mov x23, x2 6817 stp x25, x26, [sp, 64] 6818 mov x24, x3 6819 mov w25, w1 6820 stp x27, x28, [sp, 80] 6821 bl NandcWaitFlashReady 6822 sbfiz x1, x22, 4, 32 6823 adrp x0, .LANCHOR0 6824 add x0, x0, :lo12:.LANCHOR0 6825 add x2, x0, x1 6826 ldr x0, [x0, x1] 6827 adrp x1, .LANCHOR24 6828 ldrb w19, [x2, 8] 6829 ldrb w1, [x1, #:lo12:.LANCHOR24] 6830 cbnz w1, .L1003 6831 adrp x27, .LANCHOR150 6832 adrp x28, .LANCHOR33 6833 add x19, x0, x19, lsl 8 6834 add x27, x27, :lo12:.LANCHOR150 6835 add x28, x28, :lo12:.LANCHOR33 6836 mov x21, 0 6837 mov w20, -1 6838 mov w4, 239 6839.L1007: 6840 str w4, [x19, 2056] 6841 mov w0, 141 6842 str w0, [x19, 2052] 6843 add x0, x27, x21 6844 str w4, [x29, 108] 6845 mov x3, x24 6846 mov x2, x23 6847 mov w1, w25 6848 ldrsb w0, [x0, 1] 6849 add w26, w21, 1 6850 str w0, [x19, 2048] 6851 mov w0, w22 6852 str wzr, [x19, 2048] 6853 str wzr, [x19, 2048] 6854 str wzr, [x19, 2048] 6855 bl FlashReadRawPage 6856 cmn w0, #1 6857 ldr w4, [x29, 108] 6858 beq .L1004 6859 ldrb w1, [x28] 6860 cmn w20, #1 6861 csel w20, w20, w0, ne 6862 add w1, w1, w1, lsl 1 6863 cmp w0, w1, lsr 2 6864 bcc .L1015 6865 mov x24, 0 6866 mov x23, 0 6867.L1004: 6868 add x21, x21, 1 6869 cmp x21, 25 6870 bne .L1007 6871 mov w26, 26 6872.L1006: 6873 mov w0, 239 6874 str w0, [x19, 2056] 6875 mov w0, 141 6876.L1031: 6877 str w0, [x19, 2052] 6878 adrp x0, .LANCHOR33 6879 str wzr, [x19, 2048] 6880 str wzr, [x19, 2048] 6881 str wzr, [x19, 2048] 6882 str wzr, [x19, 2048] 6883 ldrb w0, [x0, #:lo12:.LANCHOR33] 6884 add w0, w0, w0, lsl 1 6885 cmp w20, w0, lsr 2 6886 bcc .L1013 6887 cmn w20, #1 6888 mov w0, 256 6889 csel w20, w20, w0, eq 6890.L1013: 6891 cmp w20, 256 6892 ccmn w20, #1, 4, ne 6893 bne .L1014 6894 adrp x0, .LC14 6895 mov w4, w20 6896 mov w3, w26 6897 mov w2, w25 6898 mov w1, w26 6899 add x0, x0, :lo12:.LC14 6900 bl printf 6901.L1014: 6902 mov w0, w22 6903 bl NandcWaitFlashReady 6904 mov w0, w20 6905 ldp x19, x20, [sp, 16] 6906 ldp x21, x22, [sp, 32] 6907 ldp x23, x24, [sp, 48] 6908 ldp x25, x26, [sp, 64] 6909 ldp x27, x28, [sp, 80] 6910 ldp x29, x30, [sp], 112 6911 ret 6912.L1015: 6913 mov w20, w0 6914 b .L1006 6915.L1003: 6916 adrp x21, .LANCHOR151 6917 add x21, x21, :lo12:.LANCHOR151 6918 adrp x27, .LANCHOR33 6919 add x21, x21, 4 6920 add x19, x0, x19, lsl 8 6921 add x27, x27, :lo12:.LANCHOR33 6922 mov w20, -1 6923 mov w26, 1 6924 mov w4, 239 6925 mov w28, 137 6926.L1012: 6927 str w4, [x19, 2056] 6928 mov x3, x24 6929 str w28, [x19, 2052] 6930 mov x2, x23 6931 str w4, [x29, 108] 6932 mov w1, w25 6933 ldrb w0, [x21] 6934 str w0, [x19, 2048] 6935 ldrb w0, [x21, 1] 6936 str w0, [x19, 2048] 6937 ldrb w0, [x21, 2] 6938 str w0, [x19, 2048] 6939 ldrb w0, [x21, 3] 6940 str w0, [x19, 2048] 6941 mov w0, w22 6942 bl FlashReadRawPage 6943 cmn w0, #1 6944 ldr w4, [x29, 108] 6945 beq .L1009 6946 ldrb w1, [x27] 6947 cmn w20, #1 6948 csel w20, w20, w0, ne 6949 add w1, w1, w1, lsl 1 6950 cmp w0, w1, lsr 2 6951 bcc .L1016 6952 mov x24, 0 6953 mov x23, 0 6954.L1009: 6955 add w26, w26, 1 6956 add x21, x21, 4 6957 cmp w26, 26 6958 bne .L1012 6959.L1011: 6960 mov w0, 239 6961 str w0, [x19, 2056] 6962 mov w0, 137 6963 b .L1031 6964.L1016: 6965 mov w20, w0 6966 b .L1011 6967 .size samsung_read_retrial, .-samsung_read_retrial 6968 .section .text.FlashProgPage,"ax",@progbits 6969 .align 2 6970 .global FlashProgPage 6971 .type FlashProgPage, %function 6972FlashProgPage: 6973 stp x29, x30, [sp, -64]! 6974 add x29, sp, 0 6975 stp x19, x20, [sp, 16] 6976 mov w20, w1 6977 stp x21, x22, [sp, 32] 6978 adrp x1, .LANCHOR31+9 6979 str x23, [sp, 48] 6980 mov x22, x2 6981 ldrb w21, [x1, #:lo12:.LANCHOR31+9] 6982 ands w19, w0, 255 6983 mov x23, x3 6984 bne .L1033 6985 adrp x0, .LANCHOR3 6986 adrp x1, .LANCHOR4 6987 ldrb w0, [x0, #:lo12:.LANCHOR3] 6988 ldr w1, [x1, #:lo12:.LANCHOR4] 6989 mul w0, w0, w1 6990 cmp w0, w20 6991 bls .L1033 6992 adrp x0, .LANCHOR2 6993 ldrb w0, [x0, #:lo12:.LANCHOR2] 6994 cmp w0, 0 6995 mov w0, 4 6996 csel w21, w21, w0, eq 6997.L1033: 6998 mov w0, w19 6999 bl NandcWaitFlashReady 7000 mov w0, w19 7001 bl NandcFlashCs 7002 mov w1, w20 7003 mov w0, w19 7004 bl FlashProgFirstCmd 7005 mov x4, x23 7006 mov x3, x22 7007 mov w2, w21 7008 mov w1, 1 7009 mov w0, w19 7010 bl NandcXferData 7011 mov w1, w20 7012 mov w0, w19 7013 bl FlashProgSecondCmd 7014 mov w0, w19 7015 bl NandcWaitFlashReady 7016 mov w1, w20 7017 mov w0, w19 7018 bl FlashReadStatus 7019 mov w2, w0 7020 mov w0, w19 7021 bl NandcFlashDeCs 7022 ldr x23, [sp, 48] 7023 and w0, w2, 1 7024 ldp x19, x20, [sp, 16] 7025 ldp x21, x22, [sp, 32] 7026 ldp x29, x30, [sp], 64 7027 ret 7028 .size FlashProgPage, .-FlashProgPage 7029 .section .text.FlashPageProgMsbFFData,"ax",@progbits 7030 .align 2 7031 .global FlashPageProgMsbFFData 7032 .type FlashPageProgMsbFFData, %function 7033FlashPageProgMsbFFData: 7034 stp x29, x30, [sp, -80]! 7035 add x29, sp, 0 7036 stp x23, x24, [sp, 48] 7037 and w23, w0, 255 7038 adrp x0, .LANCHOR16 7039 stp x19, x20, [sp, 16] 7040 stp x21, x22, [sp, 32] 7041 and w19, w2, 65535 7042 ldrb w0, [x0, #:lo12:.LANCHOR16] 7043 str x25, [sp, 64] 7044 cbz w0, .L1037 7045 adrp x0, .LANCHOR29 7046 ldr w0, [x0, #:lo12:.LANCHOR29] 7047 cbnz w0, .L1036 7048.L1037: 7049 adrp x2, .LANCHOR7 7050 mov x20, x2 7051 ldr x0, [x2, #:lo12:.LANCHOR7] 7052 ldrb w0, [x0, 19] 7053 sub w0, w0, #5 7054 and w3, w0, 255 7055 cmp w3, 63 7056 bhi .L1036 7057 mov x2, 16391 7058 movk x2, 0x4000, lsl 16 7059 movk x2, 0x2000, lsl 32 7060 movk x2, 0x8000, lsl 48 7061 lsr x0, x2, x3 7062 tbz x0, 0, .L1036 7063 adrp x21, .LANCHOR123 7064 mov w22, w1 7065 add x21, x21, :lo12:.LANCHOR123 7066 mov w25, 65535 7067 adrp x24, .LANCHOR152 7068.L1039: 7069 ldr x0, [x20, #:lo12:.LANCHOR7] 7070 ldrh w0, [x0, 10] 7071 cmp w0, w19 7072 bhi .L1040 7073.L1036: 7074 ldp x19, x20, [sp, 16] 7075 ldp x21, x22, [sp, 32] 7076 ldp x23, x24, [sp, 48] 7077 ldr x25, [sp, 64] 7078 ldp x29, x30, [sp], 80 7079 ret 7080.L1040: 7081 ldrh w0, [x21, w19, sxtw 1] 7082 cmp w0, w25 7083 bne .L1036 7084 ldr x0, [x24, #:lo12:.LANCHOR152] 7085 mov w2, 32768 7086 mov w1, 255 7087 bl ftl_memset 7088 ldr x3, [x24, #:lo12:.LANCHOR152] 7089 add w1, w19, w22 7090 add w19, w19, 1 7091 mov w0, w23 7092 mov x2, x3 7093 and w19, w19, 65535 7094 bl FlashProgPage 7095 b .L1039 7096 .size FlashPageProgMsbFFData, .-FlashPageProgMsbFFData 7097 .section .text.FlashLoadPhyInfo,"ax",@progbits 7098 .align 2 7099 .global FlashLoadPhyInfo 7100 .type FlashLoadPhyInfo, %function 7101FlashLoadPhyInfo: 7102 stp x29, x30, [sp, -128]! 7103 mov w0, 60 7104 add x29, sp, 0 7105 stp x21, x22, [sp, 32] 7106 adrp x21, .LANCHOR4 7107 adrp x22, .LANCHOR154 7108 stp x19, x20, [sp, 16] 7109 strb w0, [x29, 120] 7110 mov w0, 40 7111 strb w0, [x29, 121] 7112 mov w0, 24 7113 strb w0, [x29, 122] 7114 mov w0, 16 7115 strb w0, [x29, 123] 7116 adrp x20, .LANCHOR153 7117 ldr w0, [x21, #:lo12:.LANCHOR4] 7118 mov w19, 0 7119 stp x23, x24, [sp, 48] 7120 adrp x24, .LANCHOR155 7121 str w0, [x29, 108] 7122 mov w23, -1 7123 ldr x0, [x22, #:lo12:.LANCHOR154] 7124 stp x25, x26, [sp, 64] 7125 adrp x25, .LANCHOR31 7126 str x0, [x20, #:lo12:.LANCHOR153] 7127 mov w26, 4 7128 stp x27, x28, [sp, 80] 7129 add x25, x25, :lo12:.LANCHOR31 7130 str wzr, [x24, #:lo12:.LANCHOR155] 7131 mov w0, 0 7132 bl flash_enter_slc_mode 7133.L1046: 7134 add w28, w19, 1 7135 mov x27, 0 7136.L1048: 7137 add x0, x29, 120 7138 ldrb w0, [x0, x27] 7139 bl FlashBchSel 7140 ldr x2, [x22, #:lo12:.LANCHOR154] 7141 mov x3, 0 7142 mov w1, w19 7143 mov w0, 0 7144 bl FlashReadRawPage 7145 cmn w0, #1 7146 bne .L1047 7147 ldr x2, [x22, #:lo12:.LANCHOR154] 7148 mov x3, 0 7149 mov w1, w28 7150 mov w0, 0 7151 bl FlashReadRawPage 7152 cmn w0, #1 7153 bne .L1047 7154 add x27, x27, 1 7155 cmp x27, 4 7156 bne .L1048 7157.L1049: 7158 ldr w0, [x29, 108] 7159 subs w26, w26, #1 7160 add w19, w19, w0 7161 bne .L1046 7162 b .L1054 7163.L1050: 7164 mov w1, 2036 7165 add x0, x6, 12 7166 bl js_hash 7167 ldr w1, [x6, 8] 7168 cmp w1, w0 7169 bne .L1056 7170 add x1, x6, 160 7171 mov w2, 32 7172 mov x0, x25 7173 bl ftl_memcpy 7174 ldr x1, [x20, #:lo12:.LANCHOR153] 7175 mov w2, 32 7176 adrp x0, .LANCHOR8 7177 add x0, x0, :lo12:.LANCHOR8 7178 add x1, x1, 192 7179 bl ftl_memcpy 7180 ldr x1, [x20, #:lo12:.LANCHOR153] 7181 mov w2, 852 7182 adrp x0, .LANCHOR20 7183 add x0, x0, :lo12:.LANCHOR20 7184 add x1, x1, 224 7185 bl ftl_memcpy 7186 ldrh w0, [x25, 10] 7187 bl FlashBlockAlignInit 7188 str w19, [x24, #:lo12:.LANCHOR155] 7189 ldr x1, [x20, #:lo12:.LANCHOR153] 7190 adrp x0, .LANCHOR30 7191 ldr w2, [x1, 1076] 7192 strb w2, [x0, #:lo12:.LANCHOR30] 7193 ldr w0, [x21, #:lo12:.LANCHOR4] 7194 adrp x2, .LANCHOR156 7195 udiv w0, w19, w0 7196 add w0, w0, 1 7197 cmp w0, 1 7198 bls .L1052 7199.L1059: 7200 str w0, [x2, #:lo12:.LANCHOR156] 7201 adrp x0, .LANCHOR157 7202 ldrh w1, [x1, 14] 7203 mov w23, 0 7204 strb w1, [x0, #:lo12:.LANCHOR157] 7205 b .L1049 7206.L1052: 7207 mov w0, 2 7208 b .L1059 7209.L1056: 7210 mov w23, -1 7211 b .L1049 7212.L1047: 7213 ldr x6, [x20, #:lo12:.LANCHOR153] 7214 mov w1, 20036 7215 movk w1, 0x4e41, lsl 16 7216 ldr w0, [x6] 7217 cmp w0, w1 7218 bne .L1049 7219 cbnz w23, .L1050 7220 ldr w0, [x21, #:lo12:.LANCHOR4] 7221 udiv w19, w19, w0 7222 adrp x0, .LANCHOR156 7223 add w19, w19, 1 7224 str w19, [x0, #:lo12:.LANCHOR156] 7225.L1054: 7226 mov w0, 0 7227 bl flash_exit_slc_mode 7228 mov w0, w23 7229 ldp x19, x20, [sp, 16] 7230 ldp x21, x22, [sp, 32] 7231 ldp x23, x24, [sp, 48] 7232 ldp x25, x26, [sp, 64] 7233 ldp x27, x28, [sp, 80] 7234 ldp x29, x30, [sp], 128 7235 ret 7236 .size FlashLoadPhyInfo, .-FlashLoadPhyInfo 7237 .section .text.FlashSavePhyInfo,"ax",@progbits 7238 .align 2 7239 .global FlashSavePhyInfo 7240 .type FlashSavePhyInfo, %function 7241FlashSavePhyInfo: 7242 stp x29, x30, [sp, -96]! 7243 add x29, sp, 0 7244 stp x21, x22, [sp, 32] 7245 adrp x21, .LANCHOR154 7246 stp x19, x20, [sp, 16] 7247 adrp x19, .LANCHOR153 7248 ldr x0, [x21, #:lo12:.LANCHOR154] 7249 mov w22, 0 7250 str x0, [x19, #:lo12:.LANCHOR153] 7251 mov w20, 0 7252 adrp x0, .LANCHOR158 7253 stp x23, x24, [sp, 48] 7254 stp x27, x28, [sp, 80] 7255 adrp x24, .LANCHOR152 7256 ldrb w0, [x0, #:lo12:.LANCHOR158] 7257 adrp x23, .LANCHOR4 7258 stp x25, x26, [sp, 64] 7259 mov w25, 20036 7260 movk w25, 0x4e41, lsl 16 7261 adrp x27, .LANCHOR16 7262 add x28, x23, :lo12:.LANCHOR4 7263 add x27, x27, :lo12:.LANCHOR16 7264 bl FlashBchSel 7265 ldr x0, [x21, #:lo12:.LANCHOR154] 7266 mov w2, 2048 7267 mov w1, 0 7268 bl ftl_memset 7269 ldr x0, [x19, #:lo12:.LANCHOR153] 7270 adrp x1, .LANCHOR26 7271 mov w2, 32 7272 add x0, x0, 16 7273 str w25, [x0, -16] 7274 ldrb w1, [x1, #:lo12:.LANCHOR26] 7275 strh w1, [x0, -4] 7276 adrp x1, .LANCHOR3 7277 ldrb w1, [x1, #:lo12:.LANCHOR3] 7278 strh w1, [x0, -2] 7279 adrp x1, .LANCHOR30 7280 ldrb w1, [x1, #:lo12:.LANCHOR30] 7281 str w1, [x0, 1060] 7282 adrp x1, .LANCHOR22 7283 add x1, x1, :lo12:.LANCHOR22 7284 bl ftl_memcpy 7285 ldr x0, [x19, #:lo12:.LANCHOR153] 7286 mov w2, 8 7287 adrp x1, .LANCHOR27 7288 add x1, x1, :lo12:.LANCHOR27 7289 add x0, x0, 80 7290 bl ftl_memcpy 7291 ldr x0, [x19, #:lo12:.LANCHOR153] 7292 mov w2, 32 7293 adrp x1, .LANCHOR18 7294 add x1, x1, :lo12:.LANCHOR18 7295 add x0, x0, 96 7296 bl ftl_memcpy 7297 ldr x0, [x19, #:lo12:.LANCHOR153] 7298 mov w2, 32 7299 adrp x1, .LANCHOR31 7300 add x1, x1, :lo12:.LANCHOR31 7301 add x0, x0, 160 7302 bl ftl_memcpy 7303 ldr x0, [x19, #:lo12:.LANCHOR153] 7304 mov w2, 32 7305 adrp x1, .LANCHOR8 7306 add x1, x1, :lo12:.LANCHOR8 7307 add x0, x0, 192 7308 bl ftl_memcpy 7309 ldr x0, [x19, #:lo12:.LANCHOR153] 7310 mov w2, 852 7311 adrp x1, .LANCHOR20 7312 add x1, x1, :lo12:.LANCHOR20 7313 add x0, x0, 224 7314 bl ftl_memcpy 7315 ldr x6, [x19, #:lo12:.LANCHOR153] 7316 mov w1, 2036 7317 add x0, x6, 12 7318 bl js_hash 7319 str w0, [x6, 8] 7320 mov w0, 1592 7321 str w0, [x6, 4] 7322 ldr x0, [x24, #:lo12:.LANCHOR152] 7323 str x0, [x19, #:lo12:.LANCHOR153] 7324 mov w0, 0 7325 bl flash_enter_slc_mode 7326.L1066: 7327 ldr w1, [x23, #:lo12:.LANCHOR4] 7328 mov w2, 0 7329 mov w0, 0 7330 mul w1, w20, w1 7331 bl FlashEraseBlock 7332 ldrb w0, [x27] 7333 cbz w0, .L1061 7334 mov w26, 0 7335.L1062: 7336 ldr w1, [x28] 7337 mov x3, 0 7338 ldr x2, [x21, #:lo12:.LANCHOR154] 7339 mov w0, 0 7340 madd w1, w20, w1, w26 7341 add w26, w26, 1 7342 bl FlashProgPage 7343 cmp w26, 10 7344 bne .L1062 7345.L1063: 7346 ldr w1, [x28] 7347 mov x3, 0 7348 ldr x2, [x24, #:lo12:.LANCHOR152] 7349 mov w0, 0 7350 mul w1, w20, w1 7351 bl FlashReadRawPage 7352 cmn w0, #1 7353 add w7, w20, 1 7354 beq .L1064 7355 ldr x6, [x19, #:lo12:.LANCHOR153] 7356 ldr w0, [x6] 7357 cmp w0, w25 7358 bne .L1064 7359 mov w1, 2036 7360 add x0, x6, 12 7361 bl js_hash 7362 ldr w1, [x6, 8] 7363 cmp w1, w0 7364 bne .L1064 7365 adrp x0, .LANCHOR156 7366 cmp w22, 1 7367 str w7, [x0, #:lo12:.LANCHOR156] 7368 ldr w0, [x28] 7369 mul w20, w0, w20 7370 adrp x0, .LANCHOR155 7371 str w20, [x0, #:lo12:.LANCHOR155] 7372 beq .L1067 7373 mov w22, 1 7374.L1064: 7375 mov w20, w7 7376 cmp w7, 4 7377 bne .L1066 7378.L1065: 7379 mov w0, 0 7380 bl flash_exit_slc_mode 7381 cmp w22, 0 7382 csetm w0, eq 7383 ldp x19, x20, [sp, 16] 7384 ldp x21, x22, [sp, 32] 7385 ldp x23, x24, [sp, 48] 7386 ldp x25, x26, [sp, 64] 7387 ldp x27, x28, [sp, 80] 7388 ldp x29, x30, [sp], 96 7389 ret 7390.L1061: 7391 ldr w1, [x23, #:lo12:.LANCHOR4] 7392 mov x3, 0 7393 ldr x2, [x21, #:lo12:.LANCHOR154] 7394 mov w0, 0 7395 mul w1, w20, w1 7396 bl FlashProgPage 7397 ldr w1, [x23, #:lo12:.LANCHOR4] 7398 mov x3, 0 7399 ldr x2, [x21, #:lo12:.LANCHOR154] 7400 mov w0, 0 7401 mul w1, w20, w1 7402 add w1, w1, 1 7403 bl FlashProgPage 7404 b .L1063 7405.L1067: 7406 mov w22, 2 7407 b .L1065 7408 .size FlashSavePhyInfo, .-FlashSavePhyInfo 7409 .section .text.FlashReadIdbDataRaw,"ax",@progbits 7410 .align 2 7411 .global FlashReadIdbDataRaw 7412 .type FlashReadIdbDataRaw, %function 7413FlashReadIdbDataRaw: 7414 stp x29, x30, [sp, -144]! 7415 add x29, sp, 0 7416 stp x23, x24, [sp, 48] 7417 mov x23, x0 7418 mov w0, 60 7419 stp x25, x26, [sp, 64] 7420 strb w0, [x29, 136] 7421 mov w0, 40 7422 strb w0, [x29, 137] 7423 mov w0, 24 7424 strb w0, [x29, 138] 7425 mov w0, 16 7426 strb w0, [x29, 139] 7427 adrp x0, .LANCHOR33 7428 stp x19, x20, [sp, 16] 7429 ldrb w26, [x0, #:lo12:.LANCHOR33] 7430 adrp x0, .LANCHOR29 7431 stp x21, x22, [sp, 32] 7432 ldr w1, [x0, #:lo12:.LANCHOR29] 7433 stp x27, x28, [sp, 80] 7434 str x0, [x29, 120] 7435 cbz w1, .L1075 7436 mov w0, 0 7437 bl flash_enter_slc_mode 7438.L1075: 7439 adrp x24, .LANCHOR3 7440 adrp x22, .LANCHOR4 7441 add x27, x29, 136 7442 add x22, x22, :lo12:.LANCHOR4 7443 add x28, x24, :lo12:.LANCHOR3 7444 mov w20, -1 7445 mov w19, 2 7446 mov w2, 2048 7447 mov w1, 0 7448 mov x0, x23 7449 bl ftl_memset 7450.L1076: 7451 ldrb w0, [x24, #:lo12:.LANCHOR3] 7452 cmp w19, w0 7453 bcc .L1081 7454.L1080: 7455 mov w0, w26 7456 bl FlashBchSel 7457 ldr x0, [x29, 120] 7458 ldr w0, [x0, #:lo12:.LANCHOR29] 7459 cbz w0, .L1074 7460 mov w0, 0 7461 bl flash_exit_slc_mode 7462.L1074: 7463 mov w0, w20 7464 ldp x19, x20, [sp, 16] 7465 ldp x21, x22, [sp, 32] 7466 ldp x23, x24, [sp, 48] 7467 ldp x25, x26, [sp, 64] 7468 ldp x27, x28, [sp, 80] 7469 ldp x29, x30, [sp], 144 7470 ret 7471.L1081: 7472 mov x4, 0 7473 adrp x25, .LANCHOR154 7474.L1078: 7475 ldrb w5, [x4, x27] 7476 add x21, x25, :lo12:.LANCHOR154 7477 str w5, [x29, 116] 7478 mov w0, w5 7479 str x4, [x29, 104] 7480 bl FlashBchSel 7481 ldr w1, [x22] 7482 mov x3, 0 7483 ldr x2, [x25, #:lo12:.LANCHOR154] 7484 mov w0, 0 7485 mul w1, w19, w1 7486 bl FlashReadRawPage 7487 cmn w0, #1 7488 ldr w5, [x29, 116] 7489 bne .L1077 7490 ldr x4, [x29, 104] 7491 add x4, x4, 1 7492 cmp x4, 4 7493 bne .L1078 7494.L1079: 7495 add w19, w19, 1 7496 b .L1076 7497.L1084: 7498 mov w20, 0 7499 b .L1080 7500.L1077: 7501 ldr x0, [x21] 7502 ldr w1, [x0] 7503 mov w0, 35899 7504 movk w0, 0xfcdc, lsl 16 7505 cmp w1, w0 7506 bne .L1079 7507 mov w1, w5 7508 adrp x0, .LC15 7509 add x0, x0, :lo12:.LC15 7510 bl printf 7511 ldr x1, [x21] 7512 mov w2, 2048 7513 mov x0, x23 7514 bl ftl_memcpy 7515 ldr x0, [x21] 7516 ldr w0, [x0, 512] 7517 strb w0, [x28] 7518 adrp x0, .LANCHOR156 7519 ldr w1, [x0, #:lo12:.LANCHOR156] 7520 cmp w19, w1 7521 bcs .L1084 7522 str w19, [x0, #:lo12:.LANCHOR156] 7523 mov w20, 0 7524 bl FlashSavePhyInfo 7525 b .L1079 7526 .size FlashReadIdbDataRaw, .-FlashReadIdbDataRaw 7527 .section .text.idb_write_data,"ax",@progbits 7528 .align 2 7529 .global idb_write_data 7530 .type idb_write_data, %function 7531idb_write_data: 7532 stp x29, x30, [sp, -240]! 7533 add w0, w1, w3 7534 mov w4, w1 7535 cmp w0, 63 7536 add x29, sp, 0 7537 stp x19, x20, [sp, 16] 7538 stp x21, x22, [sp, 32] 7539 stp x23, x24, [sp, 48] 7540 stp x25, x26, [sp, 64] 7541 stp x27, x28, [sp, 80] 7542 bls .L1094 7543 cmp w1, 575 7544 bhi .L1095 7545 adrp x0, .LANCHOR159 7546 mov x1, x2 7547 mov w2, 1 7548 cmp w4, 64 7549 str w2, [x0, #:lo12:.LANCHOR159] 7550 adrp x0, idb_buf 7551 bhi .L1096 7552 mov w2, 64 7553 sub w4, w2, w4 7554 sub w2, w3, w4 7555 ubfiz x4, x4, 9, 25 7556 lsl w2, w2, 9 7557 add x1, x1, x4 7558 add x0, x0, :lo12:idb_buf 7559.L1146: 7560 bl ftl_memcpy 7561.L1129: 7562 ldp x19, x20, [sp, 16] 7563 mov w0, 0 7564 ldp x21, x22, [sp, 32] 7565 ldp x23, x24, [sp, 48] 7566 ldp x25, x26, [sp, 64] 7567 ldp x27, x28, [sp, 80] 7568 ldp x29, x30, [sp], 240 7569 ret 7570.L1096: 7571 mov w2, 576 7572 sub w2, w2, w4 7573 cmp w3, w2 7574 sub w4, w4, #64 7575 csel w2, w3, w2, ls 7576 ubfiz x4, x4, 9, 25 7577 add x0, x0, :lo12:idb_buf 7578 lsl w2, w2, 9 7579 add x0, x0, x4 7580 b .L1146 7581.L1094: 7582 cmp w1, 575 7583 bls .L1129 7584.L1095: 7585 adrp x0, .LANCHOR159 7586 str x0, [x29, 104] 7587 ldr w1, [x0, #:lo12:.LANCHOR159] 7588 cbz w1, .L1129 7589 adrp x21, .LANCHOR7 7590 adrp x1, idb_buf+262140 7591 adrp x25, idb_buf 7592 add x1, x1, :lo12:idb_buf+262140 7593 ldr x0, [x21, #:lo12:.LANCHOR7] 7594 add x5, x25, :lo12:idb_buf 7595 mov w2, 65535 7596 mov w3, 4097 7597 ldrb w20, [x0, 9] 7598 ldrh w0, [x0, 10] 7599 mul w20, w20, w0 7600 and w20, w20, 65535 7601 add w0, w20, 511 7602 udiv w0, w0, w20 7603 str w0, [x29, 172] 7604 mov w0, 0 7605.L1100: 7606 ldr w4, [x1] 7607 cbnz w4, .L1098 7608 ldr w4, [x5, w0, uxtw 2] 7609 add w0, w0, 1 7610 str w4, [x1], -4 7611 cmp w0, w3 7612 sub w2, w2, #1 7613 csel w0, w0, wzr, cc 7614 cmp w2, 4096 7615 bne .L1100 7616.L1098: 7617 add x0, x25, :lo12:idb_buf 7618 mov w3, 512 7619 mov w23, 0 7620 ldr w1, [x0, w2, uxtw 2] 7621 adrp x0, .LC16 7622 add x0, x0, :lo12:.LC16 7623 bl printf 7624 adrp x0, .LANCHOR156 7625 ldr w24, [x0, #:lo12:.LANCHOR156] 7626 ldr w0, [x29, 172] 7627 mul w19, w20, w24 7628 mul w0, w20, w0 7629 str w0, [x29, 136] 7630 adrp x0, .LANCHOR17 7631 add x0, x0, :lo12:.LANCHOR17 7632 str x0, [x29, 160] 7633.L1101: 7634 cmp w24, 15 7635 bls .L1119 7636 cbnz w23, .L1121 7637 adrp x0, .LC18 7638 mov w1, 0 7639 add x0, x0, :lo12:.LC18 7640 bl printf 7641.L1121: 7642 ldr x0, [x29, 104] 7643 str wzr, [x0, #:lo12:.LANCHOR159] 7644 b .L1129 7645.L1119: 7646 adrp x27, gp_flash_check_buf 7647 mov x2, 512 7648 mov w1, 0 7649 add x0, x27, :lo12:gp_flash_check_buf 7650 bl memset 7651 ldr x0, [x21, #:lo12:.LANCHOR7] 7652 ldrb w22, [x0, 9] 7653 ldrh w26, [x0, 10] 7654 mov w0, w19 7655 bl FW_FlashBlockErase.constprop.42 7656 str x27, [x29, 128] 7657 mul w26, w22, w26 7658 and w26, w26, 65535 7659 cmp w26, 511 7660 bhi .L1102 7661 add w0, w26, w19 7662 bl FW_FlashBlockErase.constprop.42 7663.L1102: 7664 udiv w4, w19, w26 7665 adrp x5, .LANCHOR16 7666 add x5, x5, :lo12:.LANCHOR16 7667 mov x28, 0 7668 msub w4, w4, w26, w19 7669 sub w26, w19, w4 7670.L1103: 7671 add x2, x25, :lo12:idb_buf 7672 cmp x28, 128 7673 add x2, x2, x28, lsl 11 7674 bne .L1107 7675 ldr x0, [x21, #:lo12:.LANCHOR7] 7676 mov w26, 0 7677 ldr x1, [x29, 128] 7678 add x27, x1, :lo12:gp_flash_check_buf 7679 adrp x1, .LANCHOR16 7680 ldrb w28, [x0, 9] 7681 add x1, x1, :lo12:.LANCHOR16 7682 ldrh w22, [x0, 10] 7683 str x1, [x29, 96] 7684 mul w22, w28, w22 7685 and w0, w22, 65535 7686 udiv w22, w19, w0 7687 msub w22, w22, w0, w19 7688 sub w0, w19, w22 7689 str w0, [x29, 120] 7690 mul w0, w22, w28 7691 ubfx x0, x0, 2, 2 7692.L1108: 7693 cmp w26, 511 7694 bhi .L1115 7695 ldr x3, [x29, 96] 7696 mov w1, 4 7697 sub w1, w1, w0 7698 ldr x2, [x29, 160] 7699 and w1, w1, 65535 7700 str w1, [x29, 144] 7701 add w1, w22, w26 7702 ldrb w3, [x3] 7703 lsr w1, w1, 2 7704 ldrh w2, [x2, w1, sxtw 1] 7705 cbz w3, .L1109 7706 adrp x3, .LANCHOR122 7707 mov w4, 12336 7708 movk w4, 0x5638, lsl 16 7709 ldr w3, [x3, #:lo12:.LANCHOR122] 7710 cmp w3, w4 7711 csel w2, w2, w1, ne 7712.L1109: 7713 ldr w1, [x29, 120] 7714 add w0, w0, w1 7715 adrp x1, .LANCHOR4 7716 ldr w1, [x1, #:lo12:.LANCHOR4] 7717 madd w0, w28, w2, w0 7718 str w0, [x29, 168] 7719 adrp x0, .LANCHOR33 7720 ldrb w0, [x0, #:lo12:.LANCHOR33] 7721 str w0, [x29, 112] 7722 ldr x0, [x21, #:lo12:.LANCHOR7] 7723 ldrb w0, [x0, 9] 7724 str w0, [x29, 140] 7725 adrp x0, .LANCHOR15+26 7726 ldrh w0, [x0, #:lo12:.LANCHOR15+26] 7727 mul w0, w0, w1 7728 ldr w1, [x29, 140] 7729 mul w0, w0, w1 7730 ldr w1, [x29, 168] 7731 cmp w1, w0 7732 bcs .L1110 7733 adrp x0, .LANCHOR158 7734 ldrb w0, [x0, #:lo12:.LANCHOR158] 7735 bl FlashBchSel 7736.L1110: 7737 mov w0, 0 7738 bl flash_boot_enter_slc_mode 7739 ldr w0, [x29, 168] 7740 add x3, x29, 176 7741 ldr w1, [x29, 140] 7742 mov x2, x27 7743 udiv w1, w0, w1 7744 mov w0, 0 7745 str w1, [x29, 168] 7746 bl FlashReadPage 7747 mov w1, w0 7748 cmn w0, #1 7749 bne .L1111 7750 adrp x0, .LANCHOR158 7751 ldrb w0, [x0, #:lo12:.LANCHOR158] 7752 cmp w0, 40 7753 beq .L1111 7754 mov w0, 40 7755 bl FlashBchSel 7756 ldr w1, [x29, 168] 7757 add x3, x29, 176 7758 mov x2, x27 7759 mov w0, 0 7760 bl FlashReadPage 7761 mov w1, w0 7762.L1111: 7763 str w1, [x29, 168] 7764 mov w0, 0 7765 bl flash_boot_exit_slc_mode 7766 ldrb w0, [x29, 112] 7767 bl FlashBchSel 7768 ldr w1, [x29, 168] 7769 cmn w1, #1 7770 bne .L1112 7771.L1115: 7772 ldr x0, [x29, 128] 7773 add x1, x25, :lo12:idb_buf 7774 mov x22, 0 7775 add x26, x0, :lo12:gp_flash_check_buf 7776.L1113: 7777 lsl x0, x22, 2 7778 mov w27, w22 7779 add x28, x0, x1 7780 ldr w2, [x0, x26] 7781 ldr w0, [x0, x1] 7782 cmp w2, w0 7783 beq .L1116 7784 mov x2, 512 7785 mov w1, 0 7786 mov x0, x26 7787 bl memset 7788 ldr w2, [x26, w27, uxtw 2] 7789 mov w4, w22 7790 ldr w3, [x28] 7791 mov w1, w19 7792 adrp x0, .LC17 7793 add x0, x0, :lo12:.LC17 7794 bl printf 7795 mov w0, w19 7796 bl FW_FlashBlockErase.constprop.42 7797 ldr w0, [x29, 172] 7798 cmp w0, 1 7799 bls .L1117 7800 add w0, w20, w19 7801 bl FW_FlashBlockErase.constprop.42 7802.L1117: 7803 ldr w0, [x29, 172] 7804 add w24, w24, w0 7805 ldr w0, [x29, 136] 7806 add w19, w19, w0 7807 b .L1101 7808.L1107: 7809 add w1, w4, w28, lsl 2 7810 lsr w1, w1, 2 7811 cbz w1, .L1104 7812 ldr x0, [x29, 160] 7813 add w3, w1, 1 7814 ldrb w6, [x5] 7815 ldrh w0, [x0, w3, sxtw 1] 7816 cbz w6, .L1105 7817 adrp x6, .LANCHOR122 7818 mov w7, 12336 7819 movk w7, 0x5638, lsl 16 7820 ldr w6, [x6, #:lo12:.LANCHOR122] 7821 cmp w6, w7 7822 csel w0, w0, w3, ne 7823.L1105: 7824 lsl w0, w0, 2 7825 sub w0, w0, #4 7826 str w0, [x29, 176] 7827.L1104: 7828 mov w0, 61424 7829 str w0, [x29, 180] 7830 ldr x0, [x29, 160] 7831 ldrh w27, [x0, w1, sxtw 1] 7832 ldrb w0, [x5] 7833 cbz w0, .L1106 7834 adrp x0, .LANCHOR122 7835 mov w3, 12336 7836 movk w3, 0x5638, lsl 16 7837 ldr w0, [x0, #:lo12:.LANCHOR122] 7838 cmp w0, w3 7839 csel w27, w27, w1, ne 7840.L1106: 7841 adrp x0, .LANCHOR33 7842 madd w1, w22, w27, w26 7843 stp x5, x2, [x29, 112] 7844 add x28, x28, 1 7845 ldrb w6, [x0, #:lo12:.LANCHOR33] 7846 adrp x0, .LANCHOR158 7847 stp w4, w6, [x29, 140] 7848 ldrb w0, [x0, #:lo12:.LANCHOR158] 7849 str w1, [x29, 168] 7850 bl FlashBchSel 7851 mov w0, 0 7852 bl flash_boot_enter_slc_mode 7853 ldr x0, [x21, #:lo12:.LANCHOR7] 7854 add x3, x29, 176 7855 ldr w1, [x29, 168] 7856 ldr x2, [x29, 120] 7857 ldrb w0, [x0, 9] 7858 udiv w1, w1, w0 7859 mov w0, 0 7860 bl FlashProgPage 7861 mov w0, 0 7862 bl flash_boot_exit_slc_mode 7863 ldr w6, [x29, 144] 7864 mov w0, w6 7865 bl FlashBchSel 7866 udiv w1, w26, w22 7867 add w2, w27, 1 7868 mov w0, 0 7869 bl FlashPageProgMsbFFData 7870 ldr w4, [x29, 140] 7871 ldr x5, [x29, 112] 7872 b .L1103 7873.L1112: 7874 ldr x0, [x29, 144] 7875 ubfiz x0, x0, 9, 16 7876 add x27, x27, x0 7877 ldr w0, [x29, 144] 7878 add w26, w0, w26 7879 mov w0, 0 7880 and w26, w26, 65535 7881 b .L1108 7882.L1116: 7883 add x22, x22, 1 7884 cmp x22, 65536 7885 bne .L1113 7886 add w23, w23, 1 7887 cmp w23, 5 7888 bls .L1117 7889 b .L1121 7890 .size idb_write_data, .-idb_write_data 7891 .section .text.ftl_memcpy32,"ax",@progbits 7892 .align 2 7893 .global ftl_memcpy32 7894 .type ftl_memcpy32, %function 7895ftl_memcpy32: 7896 mov x3, 0 7897.L1148: 7898 cmp w2, w3 7899 bhi .L1149 7900 ret 7901.L1149: 7902 ldr w4, [x1, x3, lsl 2] 7903 str w4, [x0, x3, lsl 2] 7904 add x3, x3, 1 7905 b .L1148 7906 .size ftl_memcpy32, .-ftl_memcpy32 7907 .section .text.ftl_memcmp,"ax",@progbits 7908 .align 2 7909 .global ftl_memcmp 7910 .type ftl_memcmp, %function 7911ftl_memcmp: 7912 uxtw x2, w2 7913 b memcmp 7914 .size ftl_memcmp, .-ftl_memcmp 7915 .section .text.rknand_get_clk_rate,"ax",@progbits 7916 .align 2 7917 .global rknand_get_clk_rate 7918 .type rknand_get_clk_rate, %function 7919rknand_get_clk_rate: 7920 mov w0, 19712 7921 movk w0, 0x8d2, lsl 16 7922 ret 7923 .size rknand_get_clk_rate, .-rknand_get_clk_rate 7924 .section .text.ftl_malloc,"ax",@progbits 7925 .align 2 7926 .global ftl_malloc 7927 .type ftl_malloc, %function 7928ftl_malloc: 7929 mov w1, 0 7930 sxtw x0, w0 7931 b kmalloc 7932 .size ftl_malloc, .-ftl_malloc 7933 .section .text.NandcInit,"ax",@progbits 7934 .align 2 7935 .global NandcInit 7936 .type NandcInit, %function 7937NandcInit: 7938 stp x29, x30, [sp, -16]! 7939 adrp x2, .LANCHOR0 7940 add x1, x2, :lo12:.LANCHOR0 7941 adrp x4, .LANCHOR122 7942 add x29, sp, 0 7943 str x0, [x2, #:lo12:.LANCHOR0] 7944 mov w2, 1 7945 str w2, [x1, 24] 7946 mov w2, 2 7947 str wzr, [x1, 8] 7948 str w2, [x1, 40] 7949 mov w2, 3 7950 str x0, [x1, 16] 7951 str w2, [x1, 56] 7952 adrp x2, .LANCHOR160 7953 str x0, [x1, 32] 7954 str x0, [x1, 48] 7955 adrp x1, .LANCHOR19 7956 str x0, [x1, #:lo12:.LANCHOR19] 7957 ldr w1, [x0] 7958 ubfx x3, x1, 13, 1 7959 str w3, [x2, #:lo12:.LANCHOR160] 7960 ldr w2, [x0, 352] 7961 adrp x3, .LANCHOR34 7962 and w1, w1, 245760 7963 orr w1, w1, 256 7964 ubfx x2, x2, 16, 4 7965 str w2, [x3, #:lo12:.LANCHOR34] 7966 ldr w2, [x0, 352] 7967 str w2, [x4, #:lo12:.LANCHOR122] 7968 cmp w2, 2049 7969 bne .L1154 7970 mov w2, 8 7971 str w2, [x3, #:lo12:.LANCHOR34] 7972.L1154: 7973 str w1, [x0] 7974 mov w1, 4225 7975 str wzr, [x0, 336] 7976 str w1, [x0, 4] 7977 mov w1, 8322 7978 str w1, [x0, 344] 7979 mov w1, 6657 7980 movk w1, 0x1a, lsl 16 7981 str w1, [x0, 304] 7982 mov w0, 36864 7983 bl ftl_malloc 7984 adrp x1, .LANCHOR161 7985 adrp x2, .LANCHOR35 7986 str x0, [x1, #:lo12:.LANCHOR161] 7987 add x1, x2, :lo12:.LANCHOR35 7988 str x0, [x2, #:lo12:.LANCHOR35] 7989 add x0, x0, 32768 7990 str wzr, [x1, 40] 7991 str x0, [x1, 8] 7992 adrp x0, .LANCHOR36 7993 ldp x29, x30, [sp], 16 7994 str wzr, [x0, #:lo12:.LANCHOR36] 7995 ret 7996 .size NandcInit, .-NandcInit 7997 .section .text.FtlMemInit,"ax",@progbits 7998 .align 2 7999 .global FtlMemInit 8000 .type FtlMemInit, %function 8001FtlMemInit: 8002 stp x29, x30, [sp, -64]! 8003 adrp x0, .LANCHOR142 8004 mov w1, 65535 8005 add x29, sp, 0 8006 strh wzr, [x0, #:lo12:.LANCHOR142] 8007 adrp x0, .LANCHOR162 8008 stp x19, x20, [sp, 16] 8009 adrp x19, .LANCHOR185 8010 str wzr, [x0, #:lo12:.LANCHOR162] 8011 adrp x0, .LANCHOR163 8012 stp x21, x22, [sp, 32] 8013 adrp x21, .LANCHOR38 8014 str wzr, [x0, #:lo12:.LANCHOR163] 8015 adrp x0, .LANCHOR164 8016 stp x23, x24, [sp, 48] 8017 str wzr, [x0, #:lo12:.LANCHOR164] 8018 adrp x0, .LANCHOR165 8019 str wzr, [x0, #:lo12:.LANCHOR165] 8020 adrp x0, .LANCHOR166 8021 str wzr, [x0, #:lo12:.LANCHOR166] 8022 adrp x0, .LANCHOR167 8023 str wzr, [x0, #:lo12:.LANCHOR167] 8024 adrp x0, .LANCHOR168 8025 str wzr, [x0, #:lo12:.LANCHOR168] 8026 adrp x0, .LANCHOR169 8027 str wzr, [x0, #:lo12:.LANCHOR169] 8028 adrp x0, .LANCHOR170 8029 str wzr, [x0, #:lo12:.LANCHOR170] 8030 adrp x0, .LANCHOR171 8031 str wzr, [x0, #:lo12:.LANCHOR171] 8032 adrp x0, .LANCHOR172 8033 str wzr, [x0, #:lo12:.LANCHOR172] 8034 adrp x0, .LANCHOR173 8035 str wzr, [x0, #:lo12:.LANCHOR173] 8036 adrp x0, .LANCHOR81 8037 str wzr, [x0, #:lo12:.LANCHOR81] 8038 adrp x0, .LANCHOR174 8039 str wzr, [x0, #:lo12:.LANCHOR174] 8040 adrp x0, .LANCHOR175 8041 str wzr, [x0, #:lo12:.LANCHOR175] 8042 adrp x0, .LANCHOR176 8043 str wzr, [x0, #:lo12:.LANCHOR176] 8044 adrp x0, .LANCHOR177 8045 str wzr, [x0, #:lo12:.LANCHOR177] 8046 adrp x0, .LANCHOR178 8047 str w1, [x0, #:lo12:.LANCHOR178] 8048 adrp x0, .LANCHOR179 8049 adrp x1, .LANCHOR115 8050 str wzr, [x0, #:lo12:.LANCHOR179] 8051 adrp x0, .LANCHOR180 8052 str wzr, [x0, #:lo12:.LANCHOR180] 8053 adrp x0, .LANCHOR75 8054 str wzr, [x0, #:lo12:.LANCHOR75] 8055 mov w0, -1 8056 strh w0, [x1, #:lo12:.LANCHOR115] 8057 adrp x1, .LANCHOR116 8058 strh w0, [x1, #:lo12:.LANCHOR116] 8059 adrp x1, .LANCHOR117 8060 strh w0, [x1, #:lo12:.LANCHOR117] 8061 adrp x1, .LANCHOR118 8062 strh w0, [x1, #:lo12:.LANCHOR118] 8063 adrp x0, .LANCHOR181 8064 mov w1, 32 8065 strh w1, [x0, #:lo12:.LANCHOR181] 8066 adrp x0, .LANCHOR182 8067 mov w1, 128 8068 strh w1, [x0, #:lo12:.LANCHOR182] 8069 adrp x0, .LANCHOR183 8070 mov w1, 128 8071 strh wzr, [x0, #:lo12:.LANCHOR183] 8072 adrp x0, .LANCHOR119 8073 strh wzr, [x0, #:lo12:.LANCHOR119] 8074 adrp x0, .LANCHOR184 8075 strh wzr, [x0, #:lo12:.LANCHOR184] 8076 adrp x0, .LANCHOR121 8077 strh wzr, [x0, #:lo12:.LANCHOR121] 8078 adrp x0, .LANCHOR55 8079 ldrh w0, [x0, #:lo12:.LANCHOR55] 8080 sdiv w1, w1, w0 8081 ldrh w0, [x21, #:lo12:.LANCHOR38] 8082 lsl w0, w0, 2 8083 str w1, [x19, #:lo12:.LANCHOR185] 8084 cmp w1, w0 8085 bls .L1157 8086 str w0, [x19, #:lo12:.LANCHOR185] 8087.L1157: 8088 adrp x20, .LANCHOR54 8089 adrp x0, .LANCHOR72 8090 mov w22, 56 8091 adrp x24, .LANCHOR58 8092 str wzr, [x0, #:lo12:.LANCHOR72] 8093 ldrh w0, [x20, #:lo12:.LANCHOR54] 8094 lsl w0, w0, 1 8095 bl ftl_malloc 8096 adrp x1, .LANCHOR112 8097 str x0, [x1, #:lo12:.LANCHOR112] 8098 mov w0, 12 8099 ldrh w1, [x20, #:lo12:.LANCHOR54] 8100 mul w0, w1, w0 8101 bl ftl_malloc 8102 ldrh w20, [x21, #:lo12:.LANCHOR38] 8103 adrp x1, .LANCHOR114 8104 str x0, [x1, #:lo12:.LANCHOR114] 8105 mul w20, w20, w22 8106 lsl w23, w20, 2 8107 mov w0, w23 8108 bl ftl_malloc 8109 adrp x1, .LANCHOR186 8110 str x0, [x1, #:lo12:.LANCHOR186] 8111 mov w0, w20 8112 bl ftl_malloc 8113 adrp x1, .LANCHOR187 8114 str x0, [x1, #:lo12:.LANCHOR187] 8115 mov w0, w23 8116 bl ftl_malloc 8117 adrp x23, .LANCHOR57 8118 adrp x1, .LANCHOR188 8119 str x0, [x1, #:lo12:.LANCHOR188] 8120 mov w0, w20 8121 bl ftl_malloc 8122 adrp x1, .LANCHOR79 8123 str x0, [x1, #:lo12:.LANCHOR79] 8124 mov w0, w20 8125 bl ftl_malloc 8126 adrp x1, .LANCHOR109 8127 str x0, [x1, #:lo12:.LANCHOR109] 8128 ldr w0, [x19, #:lo12:.LANCHOR185] 8129 mul w0, w0, w22 8130 adrp x22, .LANCHOR110 8131 bl ftl_malloc 8132 ldrh w20, [x23, #:lo12:.LANCHOR57] 8133 adrp x1, .LANCHOR73 8134 str x0, [x1, #:lo12:.LANCHOR73] 8135 ldrh w0, [x21, #:lo12:.LANCHOR38] 8136 lsl w0, w0, 1 8137 add w0, w0, 1 8138 str w0, [x22, #:lo12:.LANCHOR110] 8139 mov w0, w20 8140 bl ftl_malloc 8141 adrp x1, .LANCHOR189 8142 str x0, [x1, #:lo12:.LANCHOR189] 8143 mov w0, w20 8144 bl ftl_malloc 8145 adrp x1, .LANCHOR190 8146 str x0, [x1, #:lo12:.LANCHOR190] 8147 mov w0, w20 8148 bl ftl_malloc 8149 adrp x1, .LANCHOR191 8150 str x0, [x1, #:lo12:.LANCHOR191] 8151 ldr w0, [x22, #:lo12:.LANCHOR110] 8152 mul w0, w20, w0 8153 bl ftl_malloc 8154 adrp x1, .LANCHOR107 8155 str x0, [x1, #:lo12:.LANCHOR107] 8156 ldr w0, [x19, #:lo12:.LANCHOR185] 8157 mul w0, w20, w0 8158 bl ftl_malloc 8159 adrp x1, .LANCHOR192 8160 str x0, [x1, #:lo12:.LANCHOR192] 8161 mov w0, w20 8162 bl ftl_malloc 8163 adrp x1, .LANCHOR193 8164 str x0, [x1, #:lo12:.LANCHOR193] 8165 mov w0, w20 8166 bl ftl_malloc 8167 adrp x1, .LANCHOR194 8168 str x0, [x1, #:lo12:.LANCHOR194] 8169 mov w0, 24 8170 ldr w1, [x22, #:lo12:.LANCHOR110] 8171 mul w0, w1, w0 8172 bl ftl_malloc 8173 ldrh w20, [x24, #:lo12:.LANCHOR58] 8174 adrp x1, .LANCHOR106 8175 str x0, [x1, #:lo12:.LANCHOR106] 8176 ldrh w0, [x21, #:lo12:.LANCHOR38] 8177 adrp x21, .LANCHOR64 8178 mul w20, w20, w0 8179 mov w0, w20 8180 bl ftl_malloc 8181 adrp x1, .LANCHOR195 8182 str x0, [x1, #:lo12:.LANCHOR195] 8183 lsl w0, w20, 2 8184 bl ftl_malloc 8185 adrp x20, .LANCHOR41 8186 adrp x1, .LANCHOR196 8187 str x0, [x1, #:lo12:.LANCHOR196] 8188 ldrh w1, [x24, #:lo12:.LANCHOR58] 8189 ldr w0, [x22, #:lo12:.LANCHOR110] 8190 mul w0, w1, w0 8191 bl ftl_malloc 8192 adrp x1, .LANCHOR108 8193 str x0, [x1, #:lo12:.LANCHOR108] 8194 ldrh w1, [x24, #:lo12:.LANCHOR58] 8195 ldr w0, [x19, #:lo12:.LANCHOR185] 8196 adrp x19, .LANCHOR198 8197 mul w0, w1, w0 8198 bl ftl_malloc 8199 adrp x1, .LANCHOR197 8200 str x0, [x1, #:lo12:.LANCHOR197] 8201 ldrh w0, [x20, #:lo12:.LANCHOR41] 8202 ubfiz w0, w0, 1, 15 8203 strh w0, [x19, #:lo12:.LANCHOR198] 8204 and w0, w0, 65534 8205 bl ftl_malloc 8206 adrp x1, .LANCHOR140 8207 str x0, [x1, #:lo12:.LANCHOR140] 8208 ldrh w0, [x19, #:lo12:.LANCHOR198] 8209 add x0, x0, 547 8210 lsr x0, x0, 9 8211 strh w0, [x19, #:lo12:.LANCHOR198] 8212 lsl w0, w0, 9 8213 bl ftl_malloc 8214 adrp x1, .LANCHOR199 8215 str x0, [x1, #:lo12:.LANCHOR199] 8216 adrp x1, .LANCHOR80 8217 add x0, x0, 32 8218 str x0, [x1, #:lo12:.LANCHOR80] 8219 ldrh w0, [x20, #:lo12:.LANCHOR41] 8220 lsl w0, w0, 1 8221 bl ftl_malloc 8222 ldr w19, [x21, #:lo12:.LANCHOR64] 8223 adrp x1, .LANCHOR85 8224 str x0, [x1, #:lo12:.LANCHOR85] 8225 lsl w19, w19, 1 8226 mov w0, w19 8227 bl ftl_malloc 8228 adrp x1, .LANCHOR132 8229 str x0, [x1, #:lo12:.LANCHOR132] 8230 mov w0, w19 8231 bl ftl_malloc 8232 adrp x19, .LANCHOR61 8233 adrp x1, .LANCHOR128 8234 str x0, [x1, #:lo12:.LANCHOR128] 8235 ldrh w0, [x20, #:lo12:.LANCHOR41] 8236 lsr w0, w0, 3 8237 add w0, w0, 4 8238 bl ftl_malloc 8239 adrp x1, .LANCHOR1 8240 str x0, [x1, #:lo12:.LANCHOR1] 8241 ldrh w0, [x19, #:lo12:.LANCHOR61] 8242 lsl w0, w0, 1 8243 bl ftl_malloc 8244 adrp x1, .LANCHOR71 8245 str x0, [x1, #:lo12:.LANCHOR71] 8246 ldrh w0, [x19, #:lo12:.LANCHOR61] 8247 lsl w0, w0, 1 8248 bl ftl_malloc 8249 adrp x1, .LANCHOR200 8250 str x0, [x1, #:lo12:.LANCHOR200] 8251 ldrh w0, [x19, #:lo12:.LANCHOR61] 8252 adrp x19, .LANCHOR62 8253 lsl w0, w0, 2 8254 bl ftl_malloc 8255 adrp x1, .LANCHOR201 8256 str x0, [x1, #:lo12:.LANCHOR201] 8257 ldrh w0, [x19, #:lo12:.LANCHOR62] 8258 lsl w0, w0, 2 8259 bl ftl_malloc 8260 ldrh w2, [x19, #:lo12:.LANCHOR62] 8261 adrp x1, .LANCHOR202 8262 str x0, [x1, #:lo12:.LANCHOR202] 8263 mov w1, 0 8264 lsl w2, w2, 2 8265 bl ftl_memset 8266 adrp x0, .LANCHOR66 8267 ldrh w19, [x0, #:lo12:.LANCHOR66] 8268 lsl w19, w19, 2 8269 mov w0, w19 8270 bl ftl_malloc 8271 adrp x1, .LANCHOR134 8272 str x0, [x1, #:lo12:.LANCHOR134] 8273 mov w0, w19 8274 bl ftl_malloc 8275 adrp x19, .LANCHOR67 8276 adrp x1, .LANCHOR203 8277 str x0, [x1, #:lo12:.LANCHOR203] 8278 ldr w0, [x21, #:lo12:.LANCHOR64] 8279 lsl w0, w0, 2 8280 bl ftl_malloc 8281 adrp x1, .LANCHOR133 8282 str x0, [x1, #:lo12:.LANCHOR133] 8283 ldrh w0, [x19, #:lo12:.LANCHOR67] 8284 lsl w0, w0, 4 8285 bl ftl_malloc 8286 adrp x1, .LANCHOR98 8287 str x0, [x1, #:lo12:.LANCHOR98] 8288 ldrh w1, [x19, #:lo12:.LANCHOR67] 8289 adrp x19, .LANCHOR126 8290 ldrh w0, [x23, #:lo12:.LANCHOR57] 8291 mul w0, w1, w0 8292 bl ftl_malloc 8293 adrp x1, .LANCHOR129 8294 str x0, [x1, #:lo12:.LANCHOR129] 8295 mov w0, 6 8296 ldrh w1, [x20, #:lo12:.LANCHOR41] 8297 adrp x20, .LANCHOR45 8298 mul w0, w1, w0 8299 bl ftl_malloc 8300 adrp x1, .LANCHOR83 8301 str x0, [x1, #:lo12:.LANCHOR83] 8302 adrp x0, .LANCHOR51 8303 ldrh w1, [x20, #:lo12:.LANCHOR45] 8304 ldrh w0, [x0, #:lo12:.LANCHOR51] 8305 add w0, w0, 31 8306 asr w0, w0, 5 8307 strh w0, [x19, #:lo12:.LANCHOR126] 8308 mul w0, w1, w0 8309 lsl w0, w0, 2 8310 bl ftl_malloc 8311 adrp x1, .LANCHOR76 8312 ldrh w5, [x19, #:lo12:.LANCHOR126] 8313 add x2, x1, :lo12:.LANCHOR76 8314 ldrh w7, [x20, #:lo12:.LANCHOR45] 8315 add x6, x2, 40 8316 mov w3, w5 8317 str x0, [x2, 32] 8318 mov x0, 1 8319.L1158: 8320 cmp w0, w7 8321 bcc .L1159 8322 mov w2, 8 8323 sub w2, w2, w0 8324 add x2, x2, 1 8325 add x1, x1, :lo12:.LANCHOR76 8326 mov x3, 0 8327.L1160: 8328 add x3, x3, 1 8329 cmp x2, x3 8330 bne .L1161 8331 mov w0, 0 8332 ldp x19, x20, [sp, 16] 8333 ldp x21, x22, [sp, 32] 8334 ldp x23, x24, [sp, 48] 8335 ldp x29, x30, [sp], 64 8336 ret 8337.L1159: 8338 ldr x4, [x2, 32] 8339 add w0, w0, 1 8340 add x4, x4, x3, uxtw 2 8341 add w3, w3, w5 8342 str x4, [x6], 8 8343 b .L1158 8344.L1161: 8345 add x4, x0, x3 8346 add x4, x1, x4, lsl 3 8347 str xzr, [x4, 24] 8348 b .L1160 8349 .size FtlMemInit, .-FtlMemInit 8350 .section .text.ftl_free,"ax",@progbits 8351 .align 2 8352 .global ftl_free 8353 .type ftl_free, %function 8354ftl_free: 8355 b free 8356 .size ftl_free, .-ftl_free 8357 .section .text.FlashCs123Init,"ax",@progbits 8358 .align 2 8359 .global FlashCs123Init 8360 .type FlashCs123Init, %function 8361FlashCs123Init: 8362 ret 8363 .size FlashCs123Init, .-FlashCs123Init 8364 .section .text.rk_nand_de_init,"ax",@progbits 8365 .align 2 8366 .global rk_nand_de_init 8367 .type rk_nand_de_init, %function 8368rk_nand_de_init: 8369 b FlashDeInit 8370 .size rk_nand_de_init, .-rk_nand_de_init 8371 .section .text.rk_ftl_get_capacity,"ax",@progbits 8372 .align 2 8373 .global rk_ftl_get_capacity 8374 .type rk_ftl_get_capacity, %function 8375rk_ftl_get_capacity: 8376 adrp x0, .LANCHOR68 8377 ldr w0, [x0, #:lo12:.LANCHOR68] 8378 ret 8379 .size rk_ftl_get_capacity, .-rk_ftl_get_capacity 8380 .section .text.rknand_print_hex,"ax",@progbits 8381 .align 2 8382 .global rknand_print_hex 8383 .type rknand_print_hex, %function 8384rknand_print_hex: 8385 stp x29, x30, [sp, -96]! 8386 add x29, sp, 0 8387 stp x21, x22, [sp, 32] 8388 adrp x21, .LC20 8389 stp x23, x24, [sp, 48] 8390 mov x22, x1 8391 stp x25, x26, [sp, 64] 8392 adrp x23, .LC19 8393 mov x26, x0 8394 mov w24, w2 8395 uxtw x25, w3 8396 add x23, x23, :lo12:.LC19 8397 add x21, x21, :lo12:.LC20 8398 stp x19, x20, [sp, 16] 8399 str x27, [sp, 80] 8400 mov x19, 0 8401 mov w20, 0 8402 adrp x27, .LC21 8403.L1168: 8404 cmp x25, x19 8405 bne .L1174 8406 ldp x19, x20, [sp, 16] 8407 adrp x1, .LC21 8408 ldp x21, x22, [sp, 32] 8409 add x1, x1, :lo12:.LC21 8410 ldp x23, x24, [sp, 48] 8411 adrp x0, .LC7 8412 ldp x25, x26, [sp, 64] 8413 add x0, x0, :lo12:.LC7 8414 ldr x27, [sp, 80] 8415 ldp x29, x30, [sp], 96 8416 b printf 8417.L1174: 8418 cbnz w20, .L1169 8419 mov w2, w19 8420 mov x1, x26 8421 mov x0, x23 8422 bl printf 8423.L1169: 8424 cmp w24, 4 8425 bne .L1170 8426 ldr w1, [x22, x19, lsl 2] 8427.L1176: 8428 mov x0, x21 8429 add w20, w20, 1 8430 bl printf 8431 cmp w20, 15 8432 bls .L1173 8433 mov w20, 0 8434 add x1, x27, :lo12:.LC21 8435 adrp x0, .LC7 8436 add x0, x0, :lo12:.LC7 8437 bl printf 8438.L1173: 8439 add x19, x19, 1 8440 b .L1168 8441.L1170: 8442 cmp w24, 2 8443 bne .L1172 8444 ldrsh w1, [x22, x19, lsl 1] 8445 b .L1176 8446.L1172: 8447 ldrb w1, [x22, x19] 8448 b .L1176 8449 .size rknand_print_hex, .-rknand_print_hex 8450 .section .text.HynixGetReadRetryDefault,"ax",@progbits 8451 .align 2 8452 .global HynixGetReadRetryDefault 8453 .type HynixGetReadRetryDefault, %function 8454HynixGetReadRetryDefault: 8455 stp x29, x30, [sp, -144]! 8456 mov w1, -84 8457 mov w4, -83 8458 mov w3, -82 8459 add x29, sp, 0 8460 stp x19, x20, [sp, 16] 8461 adrp x20, .LANCHOR20 8462 stp x25, x26, [sp, 64] 8463 mov w26, w0 8464 add x0, x20, :lo12:.LANCHOR20 8465 stp x21, x22, [sp, 32] 8466 stp x23, x24, [sp, 48] 8467 cmp w26, 2 8468 stp x27, x28, [sp, 80] 8469 strb w1, [x0, 4] 8470 mov w1, -81 8471 strb w26, [x20, #:lo12:.LANCHOR20] 8472 strb w4, [x0, 5] 8473 strb w3, [x0, 6] 8474 strb w1, [x0, 7] 8475 bne .L1178 8476 mov w1, -89 8477 strb w1, [x0, 4] 8478 adrp x0, .LANCHOR204+17 8479 mov w1, -9 8480 strb w1, [x0, #:lo12:.LANCHOR204+17] 8481.L1243: 8482 mov w27, 7 8483 b .L1287 8484.L1178: 8485 cmp w26, 3 8486 bne .L1180 8487 mov w1, -80 8488 strb w1, [x0, 4] 8489 mov w1, -79 8490 strb w1, [x0, 5] 8491 mov w1, -78 8492 strb w1, [x0, 6] 8493 mov w1, -77 8494 strb w1, [x0, 7] 8495 mov w1, -76 8496 strb w1, [x0, 8] 8497 mov w1, -75 8498 strb w1, [x0, 9] 8499 mov w1, -74 8500 strb w1, [x0, 10] 8501 mov w1, -73 8502.L1286: 8503 mov w27, 8 8504 mov w28, w27 8505 strb w1, [x0, 11] 8506.L1179: 8507 sub w0, w26, #1 8508 cmp w0, 1 8509 bhi .L1185 8510 adrp x26, .LANCHOR26 8511 adrp x0, .LANCHOR27 8512 adrp x25, .LANCHOR0 8513 add x26, x26, :lo12:.LANCHOR26 8514 add x4, x0, :lo12:.LANCHOR27 8515 add x25, x25, :lo12:.LANCHOR0 8516 mov w24, 0 8517.L1186: 8518 ldrb w0, [x26] 8519 cmp w0, w24 8520 bhi .L1192 8521.L1193: 8522 add x20, x20, :lo12:.LANCHOR20 8523 ldp x21, x22, [sp, 32] 8524 strb w28, [x20, 1] 8525 strb w27, [x20, 2] 8526 ldp x23, x24, [sp, 48] 8527 ldp x19, x20, [sp, 16] 8528 ldp x25, x26, [sp, 64] 8529 ldp x27, x28, [sp, 80] 8530 ldp x29, x30, [sp], 144 8531 ret 8532.L1180: 8533 cmp w26, 4 8534 bne .L1181 8535 mov w5, -52 8536 strb w5, [x0, 4] 8537 mov w5, -65 8538 strb w5, [x0, 5] 8539 mov w5, -86 8540 strb w5, [x0, 6] 8541 mov w5, -85 8542 strb w4, [x0, 9] 8543 strb w5, [x0, 7] 8544 mov w5, -51 8545 strb w3, [x0, 10] 8546 strb w5, [x0, 8] 8547 b .L1286 8548.L1181: 8549 cmp w26, 5 8550 bne .L1182 8551 mov w1, 56 8552 strb w1, [x0, 4] 8553 mov w1, 57 8554 strb w1, [x0, 5] 8555 mov w1, 58 8556 mov w27, 8 8557 strb w1, [x0, 6] 8558 mov w1, 59 8559 strb w1, [x0, 7] 8560.L1287: 8561 mov w28, 4 8562 b .L1179 8563.L1182: 8564 cmp w26, 6 8565 bne .L1183 8566 mov w1, 14 8567 strb w1, [x0, 4] 8568 mov w1, 15 8569 strb w1, [x0, 5] 8570 mov w1, 16 8571 mov w27, 12 8572 strb w1, [x0, 6] 8573 mov w1, 17 8574 strb w1, [x0, 7] 8575 b .L1287 8576.L1183: 8577 cmp w26, 7 8578 bne .L1184 8579 mov w1, -80 8580 strb w1, [x0, 4] 8581 mov w1, -79 8582 strb w1, [x0, 5] 8583 mov w1, -78 8584 strb w1, [x0, 6] 8585 mov w1, -77 8586 strb w1, [x0, 7] 8587 mov w1, -76 8588 strb w1, [x0, 8] 8589 mov w1, -75 8590 strb w1, [x0, 9] 8591 mov w1, -74 8592 strb w1, [x0, 10] 8593 mov w1, -73 8594 strb w1, [x0, 11] 8595 mov w1, -44 8596 mov w27, 12 8597 strb w1, [x0, 12] 8598 mov w28, 10 8599 mov w1, -43 8600 strb w1, [x0, 13] 8601 b .L1179 8602.L1184: 8603 cmp w26, 8 8604 bne .L1243 8605 mov w1, 6 8606 strb w1, [x0, 4] 8607 mov w1, 7 8608 strb w1, [x0, 5] 8609 mov w1, 9 8610 strb w26, [x0, 6] 8611 strb w1, [x0, 7] 8612 mov w27, 50 8613 mov w1, 10 8614 mov w28, 5 8615 strb w1, [x0, 8] 8616 b .L1179 8617.L1192: 8618 ldrb w1, [x4, w24, sxtw] 8619 add x0, x20, :lo12:.LANCHOR20 8620 mov x21, x0 8621 mov x22, 0 8622 ubfiz x19, x1, 6, 8 8623 sbfiz x1, x1, 4, 32 8624 add x2, x25, x1 8625 add x19, x19, 20 8626 add x19, x0, x19 8627 ldr x1, [x25, x1] 8628 ldrb w23, [x2, 8] 8629 add x23, x1, x23, lsl 8 8630 mov w1, 55 8631.L1187: 8632 add x0, x21, x22 8633 str w1, [x23, 2056] 8634 str x4, [x29, 128] 8635 str w1, [x29, 140] 8636 ldrb w0, [x0, 4] 8637 str w0, [x23, 2052] 8638 mov x0, 80 8639 bl udelay 8640 ldr w0, [x23, 2048] 8641 strb w0, [x19, x22] 8642 add x22, x22, 1 8643 cmp w28, w22, uxtb 8644 ldr w1, [x29, 140] 8645 ldr x4, [x29, 128] 8646 bhi .L1187 8647 adrp x2, .LANCHOR204 8648 add x2, x2, :lo12:.LANCHOR204 8649 mov x0, 0 8650.L1190: 8651 add x7, x19, x0 8652 add x6, x2, x0 8653 mov x1, 1 8654.L1189: 8655 lsl x3, x1, 2 8656 lsl x8, x1, 3 8657 ldrb w10, [x19, x0] 8658 add x1, x1, 1 8659 cmp x1, 7 8660 ldrb w3, [x6, x3] 8661 add w3, w3, w10 8662 strb w3, [x7, x8] 8663 bne .L1189 8664 add x0, x0, 1 8665 cmp x0, 4 8666 bne .L1190 8667 add w24, w24, 1 8668 strb wzr, [x19, 16] 8669 strb wzr, [x19, 24] 8670 and w24, w24, 255 8671 strb wzr, [x19, 32] 8672 strb wzr, [x19, 40] 8673 strb wzr, [x19, 48] 8674 strb wzr, [x19, 41] 8675 strb wzr, [x19, 49] 8676 b .L1186 8677.L1185: 8678 sub w0, w26, #3 8679 cmp w0, 5 8680 bhi .L1193 8681 mul w24, w27, w28 8682 adrp x25, .LANCHOR26 8683 sub w22, w28, #1 8684 mov w21, 0 8685 and x22, x22, 255 8686 lsl w0, w24, 4 8687 asr w23, w24, 1 8688 str w0, [x29, 128] 8689 lsl w0, w23, 1 8690 sbfiz x24, x23, 1, 32 8691 str w0, [x29, 140] 8692 add x0, x25, :lo12:.LANCHOR26 8693 sub w25, w26, #5 8694 str x0, [x29, 120] 8695 add x0, x22, 1 8696 str x0, [x29, 112] 8697.L1194: 8698 ldr x0, [x29, 120] 8699 ldrb w0, [x0] 8700 cmp w0, w21 8701 bls .L1193 8702 adrp x0, .LANCHOR27 8703 add x0, x0, :lo12:.LANCHOR27 8704 ldrb w22, [x0, w21, sxtw] 8705 adrp x0, .LANCHOR0 8706 add x0, x0, :lo12:.LANCHOR0 8707 sbfiz x1, x22, 4, 32 8708 add x3, x0, x1 8709 ldr x0, [x0, x1] 8710 ldrb w19, [x3, 8] 8711 add x19, x0, x19, lsl 8 8712 mov w0, 255 8713 str w0, [x19, 2056] 8714 mov w0, w22 8715 bl NandcWaitFlashReady 8716 cmp w26, 7 8717 bne .L1195 8718 mov x1, 28 8719 mov w0, 160 8720 add x3, x20, :lo12:.LANCHOR20 8721 umaddl x0, w0, w22, x1 8722.L1288: 8723 add x3, x3, x0 8724 mov w0, 54 8725 str w0, [x19, 2056] 8726 cmp w26, 4 8727 bne .L1198 8728 mov w0, 255 8729 str w0, [x19, 2052] 8730 mov w0, 64 8731 str w0, [x19, 2048] 8732 mov w0, 204 8733.L1289: 8734 str w0, [x19, 2052] 8735 mov w0, 77 8736 b .L1290 8737.L1195: 8738 cmp w26, 8 8739 beq .L1197 8740 ubfiz x0, x22, 6, 8 8741 add x3, x20, :lo12:.LANCHOR20 8742 add x0, x0, 20 8743 b .L1288 8744.L1198: 8745 cmp w25, 1 8746 bhi .L1200 8747 add x0, x20, :lo12:.LANCHOR20 8748 ldrb w0, [x0, 4] 8749 str w0, [x19, 2052] 8750 mov w0, 82 8751.L1290: 8752 str w0, [x19, 2048] 8753.L1199: 8754 mov w0, 22 8755 str w0, [x19, 2056] 8756 mov w0, 23 8757 str w0, [x19, 2056] 8758 mov w0, 4 8759 str w0, [x19, 2056] 8760 mov w0, 25 8761 str w0, [x19, 2056] 8762 str wzr, [x19, 2056] 8763 cmp w26, 6 8764 str wzr, [x19, 2052] 8765 str wzr, [x19, 2052] 8766 bne .L1201 8767 mov w0, 31 8768 str w0, [x19, 2052] 8769.L1202: 8770 mov w0, 2 8771 str w0, [x19, 2052] 8772 str wzr, [x19, 2052] 8773.L1242: 8774 mov w0, 48 8775 str w0, [x19, 2056] 8776 str x3, [x29, 104] 8777 mov w0, w22 8778 bl NandcWaitFlashReady 8779 cmp w25, 1 8780 ldr x3, [x29, 104] 8781 ccmp w26, 8, 4, hi 8782 beq .L1244 8783 cmp w26, 7 8784 mov w0, 2 8785 mov w1, 32 8786 csel w1, w1, w0, eq 8787.L1203: 8788 adrp x8, .LANCHOR154 8789 mov x7, 0 8790 ldr x0, [x8, #:lo12:.LANCHOR154] 8791.L1204: 8792 ldr w10, [x19, 2048] 8793 strb w10, [x0, x7] 8794 add x7, x7, 1 8795 cmp w1, w7, uxtb 8796 bhi .L1204 8797 cmp w26, 8 8798 bne .L1205 8799 mov w1, 0 8800.L1207: 8801 ldrb w7, [x0] 8802 cmp w7, 50 8803 beq .L1206 8804 ldrb w7, [x0, 1] 8805 cmp w7, 5 8806 beq .L1206 8807 add w1, w1, 1 8808 add x0, x0, 4 8809 and w1, w1, 255 8810 cmp w1, 8 8811 bne .L1207 8812.L1208: 8813 adrp x0, .LC22 8814 mov w1, 0 8815 add x0, x0, :lo12:.LC22 8816 bl printf 8817.L1210: 8818 b .L1210 8819.L1200: 8820 cmp w26, 7 8821 bne .L1199 8822 mov w0, 174 8823 str w0, [x19, 2052] 8824 str wzr, [x19, 2048] 8825 mov w0, 176 8826 b .L1289 8827.L1201: 8828 str wzr, [x19, 2052] 8829 b .L1202 8830.L1244: 8831 mov w1, 16 8832 b .L1203 8833.L1206: 8834 cmp w1, 6 8835 bhi .L1208 8836.L1209: 8837 ldr x7, [x8, #:lo12:.LANCHOR154] 8838 mov x0, 0 8839.L1219: 8840 ldr w1, [x29, 128] 8841 cmp w1, w0 8842 bgt .L1220 8843 ldr x1, [x8, #:lo12:.LANCHOR154] 8844 mov w10, 8 8845 add x8, x1, x24 8846.L1222: 8847 mov x0, 0 8848.L1221: 8849 ldrh w11, [x8, x0, lsl 1] 8850 mvn w11, w11 8851 strh w11, [x8, x0, lsl 1] 8852 add x0, x0, 1 8853 cmp w23, w0 8854 bgt .L1221 8855 ldr w0, [x29, 140] 8856 subs w10, w10, #1 8857 add x8, x8, x0, uxtw 1 8858 bne .L1222 8859 mov x10, x1 8860 mov w11, 0 8861 mov w16, 1 8862.L1228: 8863 mov w0, 0 8864 mov w8, 0 8865.L1227: 8866 mov x14, x10 8867 lsl w15, w16, w8 8868 mov w13, 16 8869 mov w12, 0 8870.L1225: 8871 ldrh w17, [x14] 8872 add x14, x14, x24 8873 bics wzr, w15, w17 8874 cinc w12, w12, eq 8875 subs w13, w13, #1 8876 bne .L1225 8877 cmp w12, 8 8878 bls .L1226 8879 orr w0, w0, w15 8880 and w0, w0, 65535 8881.L1226: 8882 add w8, w8, 1 8883 cmp w8, 16 8884 bne .L1227 8885 strh w0, [x10], 2 8886 add w11, w11, 1 8887 cmp w23, w11 8888 bgt .L1228 8889 mov x0, 0 8890 mov w8, 0 8891.L1231: 8892 ldr w10, [x1, x0] 8893 add x0, x0, 4 8894 cmp w10, 0 8895 cinc w8, w8, eq 8896 cmp x0, 32 8897 bne .L1231 8898 cmp w8, 7 8899 ble .L1232 8900 mov w3, 1024 8901 mov w2, 1 8902 adrp x0, .LC23 8903 add x0, x0, :lo12:.LC23 8904 bl rknand_print_hex 8905 adrp x0, .LC22 8906 mov w1, 0 8907 add x0, x0, :lo12:.LC22 8908 bl printf 8909.L1233: 8910 b .L1233 8911.L1205: 8912 cmp w26, 7 8913 bne .L1211 8914 mov w1, 0 8915.L1213: 8916 ldrb w7, [x0] 8917 cmp w7, 12 8918 beq .L1212 8919 ldrb w7, [x0, 1] 8920 cmp w7, 10 8921 beq .L1212 8922 add w1, w1, 1 8923 add x0, x0, 4 8924 and w1, w1, 255 8925 cmp w1, 8 8926 bne .L1213 8927.L1214: 8928 adrp x0, .LC22 8929 mov w1, 0 8930 add x0, x0, :lo12:.LC22 8931 bl printf 8932.L1215: 8933 b .L1215 8934.L1212: 8935 cmp w1, 6 8936 bls .L1209 8937 b .L1214 8938.L1211: 8939 cmp w26, 6 8940 bne .L1209 8941 mov x1, 0 8942.L1216: 8943 ldrb w7, [x0, x1] 8944 cmp w7, 12 8945 beq .L1209 8946 add x7, x0, x1 8947 ldrb w7, [x7, 8] 8948 cmp w7, 4 8949 beq .L1209 8950 add x1, x1, 1 8951 cmp x1, 8 8952 bne .L1216 8953 adrp x0, .LC22 8954 mov w1, 0 8955 add x0, x0, :lo12:.LC22 8956 bl printf 8957.L1218: 8958 b .L1218 8959.L1220: 8960 ldr w1, [x19, 2048] 8961 strb w1, [x7, x0] 8962 add x0, x0, 1 8963 b .L1219 8964.L1232: 8965 cmp w26, 6 8966 beq .L1246 8967 cmp w26, 7 8968 beq .L1247 8969 cmp w26, 8 8970 mov x1, 8 8971 mov x0, 5 8972 csel x0, x0, x1, eq 8973.L1234: 8974 mov w8, 0 8975.L1235: 8976 mov x1, 0 8977.L1236: 8978 ldrb w10, [x7, x1] 8979 strb w10, [x3, x1] 8980 add x1, x1, 1 8981 cmp w28, w1, uxtb 8982 bhi .L1236 8983 ldr x1, [x29, 112] 8984 add w8, w8, 1 8985 add x3, x3, x0 8986 cmp w27, w8 8987 add x7, x7, x1 8988 bgt .L1235 8989 mov w0, 255 8990 str w0, [x19, 2056] 8991 mov w0, w22 8992 bl NandcWaitFlashReady 8993 cmp w25, 1 8994 bhi .L1238 8995 mov w0, 54 8996 str w0, [x19, 2056] 8997 adrp x0, .LANCHOR20+4 8998 mov w1, -1 8999 ldrb w0, [x0, #:lo12:.LANCHOR20+4] 9000 str w0, [x19, 2052] 9001 str wzr, [x19, 2048] 9002 mov w0, 22 9003 str w0, [x19, 2056] 9004 mov w0, w21 9005 bl FlashReadCmd 9006.L1239: 9007 add w21, w21, 1 9008 mov w0, w22 9009 and w21, w21, 255 9010 bl NandcWaitFlashReady 9011 b .L1194 9012.L1246: 9013 mov x0, 4 9014 b .L1234 9015.L1247: 9016 mov x0, 10 9017 b .L1234 9018.L1238: 9019 cmp w26, 8 9020 bne .L1240 9021 mov w0, 190 9022.L1291: 9023 str w0, [x19, 2056] 9024 b .L1239 9025.L1240: 9026 mov w0, 56 9027 b .L1291 9028.L1197: 9029 mov w0, 120 9030 str w0, [x19, 2056] 9031 str wzr, [x19, 2052] 9032 mov w0, 23 9033 str wzr, [x19, 2052] 9034 mov w1, 25 9035 str wzr, [x19, 2052] 9036 add x3, x20, :lo12:.LANCHOR20 9037 str w0, [x19, 2056] 9038 mov w0, 4 9039 str w0, [x19, 2056] 9040 add x3, x3, 28 9041 str w1, [x19, 2056] 9042 mov w1, 218 9043 str w1, [x19, 2056] 9044 mov w1, 21 9045 str wzr, [x19, 2056] 9046 str wzr, [x19, 2052] 9047 str wzr, [x19, 2052] 9048 str w1, [x19, 2052] 9049 str w0, [x19, 2052] 9050 str wzr, [x19, 2052] 9051 b .L1242 9052 .size HynixGetReadRetryDefault, .-HynixGetReadRetryDefault 9053 .section .text.FlashGetReadRetryDefault,"ax",@progbits 9054 .align 2 9055 .global FlashGetReadRetryDefault 9056 .type FlashGetReadRetryDefault, %function 9057FlashGetReadRetryDefault: 9058 mov w1, w0 9059 cbz w0, .L1292 9060 sub w2, w0, #1 9061 cmp w2, 7 9062 bhi .L1294 9063 b HynixGetReadRetryDefault 9064.L1294: 9065 cmp w0, 49 9066 bne .L1295 9067 adrp x2, .LANCHOR20 9068 add x0, x2, :lo12:.LANCHOR20 9069 strb w1, [x2, #:lo12:.LANCHOR20] 9070 mov w1, 4 9071 strb w1, [x0, 1] 9072 mov w1, 15 9073 strb w1, [x0, 2] 9074 adrp x1, .LANCHOR14 9075 add x1, x1, :lo12:.LANCHOR14 9076 mov w2, 64 9077.L1304: 9078 add x0, x0, 4 9079 b ftl_memcpy 9080.L1295: 9081 sub w0, w0, #65 9082 cmp w1, 33 9083 ccmp w0, 1, 0, ne 9084 bhi .L1296 9085 adrp x2, .LANCHOR20 9086 add x0, x2, :lo12:.LANCHOR20 9087 strb w1, [x2, #:lo12:.LANCHOR20] 9088 mov w1, 4 9089.L1305: 9090 strb w1, [x0, 1] 9091 mov w1, 7 9092 mov w2, 45 9093 strb w1, [x0, 2] 9094 adrp x1, .LANCHOR10 9095 add x1, x1, :lo12:.LANCHOR10 9096 b .L1304 9097.L1296: 9098 cmp w1, 34 9099 mov w0, 67 9100 ccmp w1, w0, 4, ne 9101 bne .L1297 9102 adrp x2, .LANCHOR20 9103 add x0, x2, :lo12:.LANCHOR20 9104 strb w1, [x2, #:lo12:.LANCHOR20] 9105 mov w1, 5 9106 b .L1305 9107.L1297: 9108 cmp w1, 35 9109 mov w0, 68 9110 ccmp w1, w0, 4, ne 9111 bne .L1292 9112 adrp x2, .LANCHOR20 9113 add x0, x2, :lo12:.LANCHOR20 9114 strb w1, [x2, #:lo12:.LANCHOR20] 9115 mov w1, 5 9116 strb w1, [x0, 1] 9117 mov w1, 17 9118 mov w2, 95 9119 strb w1, [x0, 2] 9120 adrp x1, .LANCHOR9 9121 add x1, x1, :lo12:.LANCHOR9 9122 b .L1304 9123.L1292: 9124 ret 9125 .size FlashGetReadRetryDefault, .-FlashGetReadRetryDefault 9126 .section .text.FlashInit,"ax",@progbits 9127 .align 2 9128 .global FlashInit 9129 .type FlashInit, %function 9130FlashInit: 9131 stp x29, x30, [sp, -128]! 9132 add x29, sp, 0 9133 stp x19, x20, [sp, 16] 9134 mov x19, x0 9135 stp x21, x22, [sp, 32] 9136 mov w0, 32768 9137 stp x23, x24, [sp, 48] 9138 adrp x20, .LANCHOR30 9139 stp x25, x26, [sp, 64] 9140 adrp x25, .LANCHOR3 9141 stp x27, x28, [sp, 80] 9142 bl ftl_malloc 9143 adrp x1, .LANCHOR154 9144 adrp x26, .LANCHOR208 9145 adrp x21, .LANCHOR2 9146 adrp x22, .LANCHOR158 9147 str x0, [x1, #:lo12:.LANCHOR154] 9148 mov w0, 32768 9149 bl ftl_malloc 9150 adrp x24, .LANCHOR0 9151 adrp x1, .LANCHOR152 9152 add x24, x24, :lo12:.LANCHOR0 9153 mov w23, 0 9154 str x0, [x1, #:lo12:.LANCHOR152] 9155 mov w0, 4096 9156 bl ftl_malloc 9157 adrp x1, .LANCHOR205 9158 str x0, [x1, #:lo12:.LANCHOR205] 9159 mov w0, 32768 9160 bl ftl_malloc 9161 adrp x1, .LANCHOR206 9162 str x0, [x1, #:lo12:.LANCHOR206] 9163 mov w0, 4096 9164 bl ftl_malloc 9165 strb wzr, [x26, #:lo12:.LANCHOR208] 9166 adrp x1, .LANCHOR207 9167 strb wzr, [x20, #:lo12:.LANCHOR30] 9168 strb wzr, [x21, #:lo12:.LANCHOR2] 9169 str x0, [x1, #:lo12:.LANCHOR207] 9170 adrp x1, .LANCHOR157 9171 mov w0, 50 9172 strb w0, [x25, #:lo12:.LANCHOR3] 9173 strb w0, [x1, #:lo12:.LANCHOR157] 9174 adrp x0, .LANCHOR156 9175 mov w1, 128 9176 str wzr, [x0, #:lo12:.LANCHOR156] 9177 adrp x0, .LANCHOR4 9178 str w1, [x0, #:lo12:.LANCHOR4] 9179 adrp x0, .LANCHOR147 9180 str wzr, [x0, #:lo12:.LANCHOR147] 9181 mov w0, 60 9182 strb w0, [x22, #:lo12:.LANCHOR158] 9183 mov x0, x19 9184 adrp x19, .LANCHOR22 9185 bl NandcInit 9186 add x28, x19, :lo12:.LANCHOR22 9187 str x26, [x29, 120] 9188 adrp x26, .LC24 9189 add x0, x26, :lo12:.LC24 9190 str x0, [x29, 112] 9191.L1312: 9192 ldrb w2, [x24, 8] 9193 and w27, w23, 255 9194 str w2, [x29, 108] 9195 mov w0, w27 9196 ldr x26, [x24] 9197 bl FlashReset 9198 mov w0, w27 9199 bl NandcFlashCs 9200 ldr w2, [x29, 108] 9201 mov w0, 144 9202 ubfiz x2, x2, 8, 8 9203 add x26, x26, x2 9204 str w0, [x26, 2056] 9205 mov x0, 200 9206 str wzr, [x26, 2052] 9207 bl udelay 9208 ldr w0, [x26, 2048] 9209 and w0, w0, 255 9210 strb w0, [x28] 9211 cmp w0, 44 9212 ldr w2, [x26, 2048] 9213 strb w2, [x28, 1] 9214 ldr w2, [x26, 2048] 9215 strb w2, [x28, 2] 9216 ldr w2, [x26, 2048] 9217 strb w2, [x28, 3] 9218 ldr w2, [x26, 2048] 9219 strb w2, [x28, 4] 9220 ldr w2, [x26, 2048] 9221 strb w2, [x28, 5] 9222 bne .L1307 9223 mov w0, 239 9224 str w0, [x26, 2056] 9225 mov w0, 1 9226 str w0, [x26, 2052] 9227 mov x0, 200 9228 bl udelay 9229 mov w0, 4 9230 str w0, [x26, 2048] 9231 str wzr, [x26, 2048] 9232 str wzr, [x26, 2048] 9233 str wzr, [x26, 2048] 9234.L1307: 9235 mov w0, w27 9236 bl NandcFlashDeCs 9237 ldrb w2, [x28] 9238 sub w0, w2, #1 9239 and w0, w0, 255 9240 cmp w0, 253 9241 bhi .L1308 9242 ldrb w7, [x28, 5] 9243 add w1, w23, 1 9244 ldrb w6, [x28, 4] 9245 ldrb w5, [x28, 3] 9246 ldrb w4, [x28, 2] 9247 ldrb w3, [x28, 1] 9248 ldr x0, [x29, 112] 9249 bl printf 9250.L1308: 9251 cbnz w23, .L1309 9252 ldrb w0, [x19, #:lo12:.LANCHOR22] 9253 add x1, x19, :lo12:.LANCHOR22 9254 sub w0, w0, #1 9255 and w0, w0, 255 9256 cmp w0, 253 9257 bhi .L1357 9258 ldrb w0, [x1, 1] 9259 cmp w0, 255 9260 beq .L1357 9261.L1309: 9262 ldrb w0, [x28] 9263 cmp w0, 181 9264 bne .L1311 9265 mov w0, 44 9266 strb w0, [x28] 9267.L1311: 9268 add w23, w23, 1 9269 add x24, x24, 16 9270 add x28, x28, 8 9271 cmp w23, 4 9272 bne .L1312 9273 ldrb w0, [x19, #:lo12:.LANCHOR22] 9274 cmp w0, 173 9275 beq .L1313 9276 adrp x0, .LANCHOR160 9277 ldr w0, [x0, #:lo12:.LANCHOR160] 9278 bl NandcSetDdrMode 9279.L1313: 9280 adrp x24, .LANCHOR7 9281 adrp x27, .LANCHOR6 9282 adrp x26, .LANCHOR122 9283 mov w1, 0 9284 adrp x23, .LANCHOR20 9285 mov w2, 852 9286 add x0, x23, :lo12:.LANCHOR20 9287 bl ftl_memset 9288 adrp x3, .LANCHOR31 9289 ldr w4, [x26, #:lo12:.LANCHOR122] 9290 add x0, x3, :lo12:.LANCHOR31 9291 strb wzr, [x27, #:lo12:.LANCHOR6] 9292 str x0, [x24, #:lo12:.LANCHOR7] 9293 mov w1, 12336 9294 movk w1, 0x5638, lsl 16 9295 cmp w4, w1 9296 bne .L1314 9297 ldrb w0, [x0, 19] 9298 cmp w0, 50 9299 beq .L1314 9300 adrp x0, .LANCHOR29 9301 mov w1, 1 9302 str w1, [x0, #:lo12:.LANCHOR29] 9303.L1314: 9304 add x0, x19, :lo12:.LANCHOR22 9305 ldrb w2, [x0, 1] 9306 add w0, w2, 95 9307 and w1, w0, 255 9308 mov x0, 1 9309 cmp w1, 57 9310 bhi .L1315 9311 movk x0, 0x205, lsl 48 9312 lsr x0, x0, x1 9313 mvn x0, x0 9314.L1315: 9315 cmp w2, 241 9316 and w0, w0, 1 9317 cset w1, eq 9318 eor w0, w0, 1 9319 orr w0, w1, w0 9320 cbnz w0, .L1316 9321 cmp w2, 220 9322 bne .L1317 9323 add x0, x19, :lo12:.LANCHOR22 9324 ldrb w0, [x0, 3] 9325 cmp w0, 149 9326 bne .L1317 9327.L1316: 9328 adrp x28, .LANCHOR209 9329 add x5, x28, :lo12:.LANCHOR209 9330 mov w1, 16 9331 strb w1, [x25, #:lo12:.LANCHOR3] 9332 strb w1, [x22, #:lo12:.LANCHOR158] 9333 mov w0, 1 9334 ldrb w1, [x19, #:lo12:.LANCHOR22] 9335 add x6, x19, :lo12:.LANCHOR22 9336 strb w0, [x21, #:lo12:.LANCHOR2] 9337 strb w1, [x5, 1] 9338 cmp w1, 152 9339 strb w2, [x5, 2] 9340 bne .L1319 9341 ldrsb w1, [x6, 4] 9342 tbnz w1, #31, .L1320 9343 mov w0, 24 9344 strb w0, [x22, #:lo12:.LANCHOR158] 9345.L1319: 9346 cmp w4, 2049 9347 mov w0, 12336 9348 movk w0, 0x5638, lsl 16 9349 ccmp w4, w0, 4, ne 9350 bne .L1322 9351 mov w0, 16 9352 strb w0, [x22, #:lo12:.LANCHOR158] 9353.L1322: 9354 cmp w2, 218 9355 bne .L1323 9356 add x0, x28, :lo12:.LANCHOR209 9357 mov w1, 2048 9358 strh w1, [x0, 14] 9359 mov w1, -38 9360.L1394: 9361 strb w1, [x0, 2] 9362.L1324: 9363 adrp x1, .LANCHOR146 9364 add x1, x1, :lo12:.LANCHOR146 9365 mov w2, 32 9366 add x1, x1, 32 9367 str x3, [x29, 120] 9368 adrp x0, .LANCHOR8 9369 add x0, x0, :lo12:.LANCHOR8 9370 bl ftl_memcpy 9371 ldr x3, [x29, 120] 9372 mov w2, 32 9373 add x1, x28, :lo12:.LANCHOR209 9374 add x0, x3, :lo12:.LANCHOR31 9375 bl ftl_memcpy 9376.L1317: 9377 ldrb w0, [x21, #:lo12:.LANCHOR2] 9378 adrp x22, .LANCHOR16 9379 cbnz w0, .L1327 9380 bl FlashLoadPhyInfoInRam 9381 cbnz w0, .L1329 9382 ldr x0, [x24, #:lo12:.LANCHOR7] 9383 adrp x28, .LANCHOR25 9384 ldrb w1, [x0, 17] 9385 and w0, w1, 7 9386 strb w0, [x28, #:lo12:.LANCHOR25] 9387 tbnz x1, 0, .L1329 9388 mov w1, 1 9389 strb w1, [x20, #:lo12:.LANCHOR30] 9390 bl FlashSetInterfaceMode 9391 ldrb w0, [x28, #:lo12:.LANCHOR25] 9392 bl NandcSetMode 9393.L1329: 9394 ldr x0, [x24, #:lo12:.LANCHOR7] 9395 ldrb w0, [x0, 26] 9396 strb w0, [x22, #:lo12:.LANCHOR16] 9397 bl FlashLoadPhyInfo 9398 cbz w0, .L1327 9399 ldr x0, [x24, #:lo12:.LANCHOR7] 9400 ldrh w1, [x0, 14] 9401 adrp x0, .LC25 9402 add x0, x0, :lo12:.LC25 9403 bl printf 9404 bl FlashLoadPhyInfoInRam 9405 cmn w0, #1 9406 beq .L1306 9407 bl FlashDieInfoInit 9408 ldr x0, [x24, #:lo12:.LANCHOR7] 9409 ldrb w0, [x0, 19] 9410 bl FlashGetReadRetryDefault 9411 ldr x0, [x24, #:lo12:.LANCHOR7] 9412 adrp x1, .LANCHOR125 9413 ldrh w1, [x1, #:lo12:.LANCHOR125] 9414 ldrb w2, [x0, 9] 9415 add w1, w1, 4095 9416 cmp w2, w1, lsr 12 9417 blt .L1332 9418 ldrh w1, [x0, 14] 9419 add w1, w1, 255 9420 cmp w2, w1, lsr 8 9421 bge .L1333 9422.L1332: 9423 ldrh w1, [x0, 14] 9424 and w1, w1, -256 9425 strh w1, [x0, 14] 9426.L1333: 9427 adrp x0, .LANCHOR25 9428 ldrb w0, [x0, #:lo12:.LANCHOR25] 9429 tst w0, 6 9430 beq .L1334 9431 bl FlashSavePhyInfo 9432 mov w0, 0 9433 bl flash_enter_slc_mode 9434 adrp x0, .LANCHOR155 9435 ldr w1, [x0, #:lo12:.LANCHOR155] 9436 mov w0, 0 9437 bl FlashDdrParaScan 9438 mov w0, 0 9439 bl flash_exit_slc_mode 9440.L1334: 9441 bl FlashSavePhyInfo 9442.L1327: 9443 ldr x2, [x24, #:lo12:.LANCHOR7] 9444 adrp x28, .LANCHOR148 9445 str xzr, [x28, #:lo12:.LANCHOR148] 9446 ldrb w0, [x2, 26] 9447 strb w0, [x22, #:lo12:.LANCHOR16] 9448 ldrh w0, [x2, 16] 9449 ubfx x1, x0, 7, 1 9450 strb w1, [x27, #:lo12:.LANCHOR6] 9451 adrp x1, .LANCHOR210 9452 ubfx x3, x0, 3, 1 9453 adrp x27, .LANCHOR25 9454 strb w3, [x1, #:lo12:.LANCHOR210] 9455 adrp x1, .LANCHOR28 9456 ubfx x3, x0, 4, 1 9457 ubfx x0, x0, 8, 3 9458 strb w3, [x1, #:lo12:.LANCHOR28] 9459 strb w0, [x27, #:lo12:.LANCHOR25] 9460 ldrh w1, [x2, 10] 9461 ldrb w0, [x2, 12] 9462 sdiv w1, w1, w0 9463 ldrb w0, [x2, 18] 9464 bl BuildFlashLsbPageTable 9465 bl FlashDieInfoInit 9466 ldr x0, [x24, #:lo12:.LANCHOR7] 9467 ldrh w1, [x0, 16] 9468 tbz x1, 6, .L1336 9469 add x3, x23, :lo12:.LANCHOR20 9470 adrp x1, .LANCHOR11 9471 ldrb w0, [x0, 19] 9472 adrp x2, .LANCHOR13 9473 strb w0, [x1, #:lo12:.LANCHOR11] 9474 mov x4, x2 9475 ldrb w1, [x3, 1] 9476 strb w1, [x2, #:lo12:.LANCHOR13] 9477 adrp x1, .LANCHOR149 9478 ldrb w3, [x3, 2] 9479 strb w3, [x1, #:lo12:.LANCHOR149] 9480 sub w3, w0, #1 9481 and w3, w3, 255 9482 cmp w3, 7 9483 bhi .L1337 9484 adrp x1, HynixReadRetrial 9485 add x1, x1, :lo12:HynixReadRetrial 9486 str x1, [x28, #:lo12:.LANCHOR148] 9487 sub w1, w0, #5 9488 and w1, w1, 255 9489 cmp w1, 1 9490 ccmp w0, 8, 4, hi 9491 bne .L1338 9492 adrp x1, .LANCHOR36 9493 mov w2, 1 9494 str w2, [x1, #:lo12:.LANCHOR36] 9495.L1338: 9496 add x23, x23, :lo12:.LANCHOR20 9497 cmp w0, 7 9498 beq .L1395 9499 cmp w0, 8 9500 bne .L1360 9501.L1395: 9502 add x23, x23, 28 9503.L1339: 9504 mov x1, 0 9505 mov w2, 0 9506.L1341: 9507 ldrsb w3, [x23, x1] 9508 add x1, x1, 1 9509 cmp w3, 0 9510 cinc w2, w2, eq 9511 cmp x1, 32 9512 bne .L1341 9513 cmp w2, 27 9514 bls .L1336 9515 bl FlashGetReadRetryDefault 9516 bl FlashSavePhyInfo 9517.L1336: 9518 ldr w1, [x26, #:lo12:.LANCHOR122] 9519 mov w0, 12336 9520 movk w0, 0x5638, lsl 16 9521 cmp w1, w0 9522 bne .L1351 9523 ldrb w0, [x22, #:lo12:.LANCHOR16] 9524 cbz w0, .L1351 9525 ldr x0, [x24, #:lo12:.LANCHOR7] 9526 strb wzr, [x0, 18] 9527.L1351: 9528 ldrb w0, [x19, #:lo12:.LANCHOR22] 9529 cmp w0, 44 9530 bne .L1352 9531 ldrb w0, [x20, #:lo12:.LANCHOR30] 9532 cbz w0, .L1352 9533 strb wzr, [x20, #:lo12:.LANCHOR30] 9534 mov w0, 1 9535 bl FlashSetInterfaceMode 9536 mov w0, 1 9537 bl NandcSetMode 9538.L1352: 9539 ldrb w0, [x27, #:lo12:.LANCHOR25] 9540 tst w0, 6 9541 beq .L1353 9542 ldrb w1, [x20, #:lo12:.LANCHOR30] 9543 cbnz w1, .L1354 9544 tbnz x0, 0, .L1353 9545.L1354: 9546 mov w0, 0 9547 bl flash_enter_slc_mode 9548 adrp x0, .LANCHOR155 9549 ldr w1, [x0, #:lo12:.LANCHOR155] 9550 mov w0, 0 9551 bl FlashDdrParaScan 9552 mov w0, 0 9553 bl flash_exit_slc_mode 9554.L1353: 9555 ldr x0, [x24, #:lo12:.LANCHOR7] 9556 ldrb w0, [x0, 20] 9557 bl FlashBchSel 9558 adrp x0, .LANCHOR144 9559 add x0, x0, :lo12:.LANCHOR144 9560 bl FlashReadIdbDataRaw 9561 ldr x2, [x24, #:lo12:.LANCHOR7] 9562 mov w0, 16 9563 adrp x5, .LANCHOR15 9564 strb w0, [x25, #:lo12:.LANCHOR3] 9565 add x0, x5, :lo12:.LANCHOR15 9566 ldrb w6, [x19, #:lo12:.LANCHOR22] 9567 ldrb w3, [x2, 12] 9568 strh w3, [x0, 8] 9569 ldrb w1, [x2, 7] 9570 str w1, [x0, 4] 9571 add x1, x19, :lo12:.LANCHOR22 9572 ldrb w4, [x1, 1] 9573 ldrb w1, [x1, 3] 9574 orr w1, w6, w1, lsl 24 9575 lsl w6, w4, 16 9576 orr w4, w6, w4, lsl 8 9577 orr w1, w1, w4 9578 str w1, [x5, #:lo12:.LANCHOR15] 9579 adrp x1, .LANCHOR26 9580 ldrh w4, [x2, 14] 9581 ldrb w1, [x1, #:lo12:.LANCHOR26] 9582 strh w1, [x0, 10] 9583 ldrb w1, [x2, 13] 9584 strh w1, [x0, 12] 9585 ldrh w1, [x2, 10] 9586 strh w1, [x0, 16] 9587 strh w4, [x0, 14] 9588 sdiv w3, w1, w3 9589 strh w3, [x0, 18] 9590 ldrb w5, [x2, 9] 9591 strh w5, [x0, 20] 9592 mov w3, w5 9593 mul w1, w1, w5 9594 mov w5, 512 9595 strh w5, [x0, 24] 9596 mov w5, 16 9597 and w1, w1, 65535 9598 strh w5, [x0, 26] 9599 strh w1, [x0, 22] 9600 ldrb w5, [x21, #:lo12:.LANCHOR2] 9601 cmp w5, 1 9602 bne .L1355 9603 ubfiz w1, w1, 1, 15 9604 lsr w4, w4, 1 9605 ubfiz w3, w3, 1, 15 9606 strh w1, [x0, 22] 9607 strh w4, [x0, 14] 9608 mov w1, 8 9609 strh w3, [x0, 20] 9610 strh w1, [x0, 26] 9611.L1355: 9612 ldrb w0, [x2, 20] 9613 bl FlashBchSel 9614 mov w0, 0 9615.L1306: 9616 ldp x19, x20, [sp, 16] 9617 ldp x21, x22, [sp, 32] 9618 ldp x23, x24, [sp, 48] 9619 ldp x25, x26, [sp, 64] 9620 ldp x27, x28, [sp, 80] 9621 ldp x29, x30, [sp], 128 9622 ret 9623.L1323: 9624 cmp w2, 220 9625 bne .L1325 9626 add x0, x28, :lo12:.LANCHOR209 9627 mov w1, 4096 9628 strh w1, [x0, 14] 9629 mov w1, -36 9630 b .L1394 9631.L1325: 9632 cmp w2, 211 9633 bne .L1324 9634 add x0, x28, :lo12:.LANCHOR209 9635 mov w1, 4096 9636 strh w1, [x0, 14] 9637 mov w1, 2 9638 strb w1, [x0, 13] 9639 b .L1324 9640.L1360: 9641 add x23, x23, 20 9642 b .L1339 9643.L1337: 9644 sub w3, w0, #17 9645 and w3, w3, 255 9646 cmp w3, 2 9647 bhi .L1343 9648 adrp x2, MicronReadRetrial 9649 add x2, x2, :lo12:MicronReadRetrial 9650 str x2, [x28, #:lo12:.LANCHOR148] 9651 cmp w0, 19 9652 beq .L1344 9653.L1399: 9654 mov w0, 7 9655 b .L1397 9656.L1344: 9657 mov w0, 15 9658.L1397: 9659 strb w0, [x1, #:lo12:.LANCHOR149] 9660 b .L1336 9661.L1343: 9662 sub w3, w0, #65 9663 cmp w0, 33 9664 and w3, w3, 255 9665 ccmp w3, 1, 0, ne 9666 bhi .L1345 9667 adrp x0, ToshibaReadRetrial 9668 add x0, x0, :lo12:ToshibaReadRetrial 9669 str x0, [x28, #:lo12:.LANCHOR148] 9670 mov w0, 4 9671 strb w0, [x2, #:lo12:.LANCHOR13] 9672 b .L1399 9673.L1345: 9674 sub w3, w0, #34 9675 sub w2, w0, #67 9676 and w3, w3, 255 9677 and w2, w2, 255 9678 cmp w3, 1 9679 ccmp w2, 1, 0, hi 9680 bhi .L1346 9681 adrp x3, ToshibaReadRetrial 9682 add x3, x3, :lo12:ToshibaReadRetrial 9683 str x3, [x28, #:lo12:.LANCHOR148] 9684 cmp w0, 35 9685 mov w3, 68 9686 ccmp w0, w3, 4, ne 9687 beq .L1347 9688 mov w0, 7 9689.L1396: 9690 strb w0, [x1, #:lo12:.LANCHOR149] 9691 cmp w2, 1 9692 bhi .L1349 9693 mov w0, 4 9694.L1398: 9695 strb w0, [x4, #:lo12:.LANCHOR13] 9696 b .L1336 9697.L1347: 9698 mov w0, 17 9699 b .L1396 9700.L1349: 9701 mov w0, 5 9702 b .L1398 9703.L1346: 9704 cmp w0, 49 9705 bne .L1350 9706 adrp x0, SamsungReadRetrial 9707 add x0, x0, :lo12:SamsungReadRetrial 9708 str x0, [x28, #:lo12:.LANCHOR148] 9709 b .L1336 9710.L1350: 9711 cmp w0, 50 9712 bne .L1336 9713 adrp x0, samsung_read_retrial 9714 add x0, x0, :lo12:samsung_read_retrial 9715 str x0, [x28, #:lo12:.LANCHOR148] 9716 adrp x0, .LANCHOR29 9717 str wzr, [x0, #:lo12:.LANCHOR29] 9718 b .L1336 9719.L1357: 9720 mov w0, -2 9721 b .L1306 9722.L1320: 9723 ldr x1, [x29, 120] 9724 strb w0, [x1, #:lo12:.LANCHOR208] 9725 b .L1319 9726 .size FlashInit, .-FlashInit 9727 .section .text.FlashReadSlc2KPages,"ax",@progbits 9728 .align 2 9729 .global FlashReadSlc2KPages 9730 .type FlashReadSlc2KPages, %function 9731FlashReadSlc2KPages: 9732 stp x29, x30, [sp, -144]! 9733 add x29, sp, 0 9734 stp x21, x22, [sp, 32] 9735 mov w22, 56 9736 stp x25, x26, [sp, 64] 9737 and w21, w1, 255 9738 str w2, [x29, 116] 9739 adrp x2, .LANCHOR31+9 9740 stp x19, x20, [sp, 16] 9741 mov x19, x0 9742 ldrb w25, [x2, #:lo12:.LANCHOR31+9] 9743 nop // between mem op and mult-accumulate 9744 umaddl x0, w1, w22, x0 9745 adrp x26, .LANCHOR208 9746 str x0, [x29, 120] 9747 stp x23, x24, [sp, 48] 9748 add x0, x26, :lo12:.LANCHOR208 9749 stp x27, x28, [sp, 80] 9750 str x0, [x29, 104] 9751.L1401: 9752 ldr x0, [x29, 120] 9753 cmp x19, x0 9754 bne .L1421 9755 ldp x19, x20, [sp, 16] 9756 mov w0, 0 9757 ldp x21, x22, [sp, 32] 9758 ldp x23, x24, [sp, 48] 9759 ldp x25, x26, [sp, 64] 9760 ldp x27, x28, [sp, 80] 9761 ldp x29, x30, [sp], 144 9762 ret 9763.L1421: 9764 ldr w1, [x29, 116] 9765 mov w4, w21 9766 add x3, x29, 136 9767 add x2, x29, 140 9768 mov x0, x19 9769 bl LogAddr2PhyAddr 9770 adrp x0, .LANCHOR26 9771 ldr w1, [x29, 136] 9772 ldrb w0, [x0, #:lo12:.LANCHOR26] 9773 cmp w0, w1 9774 bhi .L1402 9775 mov w0, -1 9776 str w0, [x19] 9777.L1403: 9778 sub w21, w21, #1 9779 add x19, x19, 56 9780 and w21, w21, 255 9781 b .L1401 9782.L1402: 9783 adrp x0, .LANCHOR27 9784 add x0, x0, :lo12:.LANCHOR27 9785 add x23, x26, :lo12:.LANCHOR208 9786 mov w22, 0 9787 mov w24, 256 9788 ldrb w20, [x0, w1, uxtw] 9789 mov w0, w20 9790 bl NandcWaitFlashReady 9791 mov w0, w20 9792 bl NandcFlashCs 9793.L1404: 9794 ldr w1, [x29, 140] 9795 mov w0, w20 9796 bl FlashReadCmd 9797 mov w0, w20 9798 bl NandcWaitFlashReady 9799 ldp x3, x4, [x19, 8] 9800 mov w2, w25 9801 mov w1, 0 9802 mov w0, w20 9803 bl NandcXferData 9804 mov w28, w0 9805 ldrb w0, [x23] 9806 cbz w0, .L1405 9807 mov w0, w20 9808 bl flash_read_ecc 9809 cmp w0, 5 9810 csel w28, w28, w24, ls 9811.L1405: 9812 cmp w22, 9 9813 ccmn w28, #1, 0, ls 9814 bne .L1406 9815 add w22, w22, 1 9816 b .L1404 9817.L1406: 9818 cmp w22, 0 9819 mov w23, 256 9820 adrp x24, .LANCHOR4 9821 csel w28, w28, w23, eq 9822 add x24, x24, :lo12:.LANCHOR4 9823 mov w22, 0 9824.L1408: 9825 ldr w0, [x24] 9826 ldr w1, [x29, 140] 9827 add w1, w1, w0 9828 mov w0, w20 9829 bl FlashReadCmd 9830 mov w0, w20 9831 bl NandcWaitFlashReady 9832 ldr x0, [x19, 8] 9833 mov w2, w25 9834 mov w1, 0 9835 cmp x0, 0 9836 add x3, x0, 2048 9837 ldr x0, [x19, 16] 9838 csel x3, x3, xzr, ne 9839 cmp x0, 0 9840 add x4, x0, 8 9841 csel x4, x4, xzr, ne 9842 mov w0, w20 9843 bl NandcXferData 9844 mov w27, w0 9845 ldr x0, [x29, 104] 9846 ldrb w0, [x0] 9847 cbz w0, .L1411 9848 mov w0, w20 9849 bl flash_read_ecc 9850 cmp w0, 5 9851 csel w27, w27, w23, ls 9852.L1411: 9853 cmp w22, 9 9854 ccmn w27, #1, 0, ls 9855 bne .L1412 9856 add w22, w22, 1 9857 b .L1408 9858.L1412: 9859 cmp w22, 0 9860 mov w3, 256 9861 mov w0, w20 9862 csel w27, w27, w3, eq 9863 bl NandcFlashDeCs 9864 adrp x0, .LANCHOR33 9865 cmp w28, w27 9866 csel w5, w28, w27, cs 9867 ldrb w2, [x0, #:lo12:.LANCHOR33] 9868 add w0, w2, w2, lsl 1 9869 cmp w5, w0, lsr 2 9870 bls .L1414 9871 cmn w5, #1 9872 csel w5, w5, w3, eq 9873.L1414: 9874 cmp w5, 256 9875 ldr x0, [x19, 16] 9876 ccmn w5, #1, 4, ne 9877 csel w5, w5, wzr, eq 9878 str w5, [x19] 9879 cbz x0, .L1417 9880 ldr w1, [x0, 12] 9881 cmn w1, #1 9882 bne .L1417 9883 ldr w1, [x0, 8] 9884 cmn w1, #1 9885 bne .L1417 9886 ldr w0, [x0] 9887 cmn w0, #1 9888 beq .L1417 9889 str w1, [x19] 9890.L1417: 9891 ldr w3, [x19] 9892 cmn w3, #1 9893 bne .L1403 9894 ldr w1, [x19, 4] 9895 adrp x0, .LC26 9896 add x0, x0, :lo12:.LC26 9897 bl printf 9898 ldr x1, [x19, 8] 9899 cbz x1, .L1419 9900 adrp x0, .LC27 9901 mov w3, 8 9902 mov w2, 4 9903 add x0, x0, :lo12:.LC27 9904 bl rknand_print_hex 9905.L1419: 9906 ldr x1, [x19, 16] 9907 cbz x1, .L1403 9908 mov w3, 4 9909 adrp x0, .LC28 9910 mov w2, w3 9911 add x0, x0, :lo12:.LC28 9912 bl rknand_print_hex 9913 b .L1403 9914 .size FlashReadSlc2KPages, .-FlashReadSlc2KPages 9915 .section .text.FlashReadPages,"ax",@progbits 9916 .align 2 9917 .global FlashReadPages 9918 .type FlashReadPages, %function 9919FlashReadPages: 9920 stp x29, x30, [sp, -176]! 9921 adrp x3, .LANCHOR2 9922 add x29, sp, 0 9923 ldrb w3, [x3, #:lo12:.LANCHOR2] 9924 stp x19, x20, [sp, 16] 9925 stp x21, x22, [sp, 32] 9926 stp x23, x24, [sp, 48] 9927 stp x25, x26, [sp, 64] 9928 stp x27, x28, [sp, 80] 9929 stp w2, w1, [x29, 148] 9930 cbnz w3, .L1450 9931 mov x25, x0 9932 adrp x0, .LANCHOR31+9 9933 adrp x27, .LANCHOR20 9934 mov w23, 0 9935 ldrb w0, [x0, #:lo12:.LANCHOR31+9] 9936 mov w22, 0 9937 str w0, [x29, 156] 9938 adrp x0, .LANCHOR6 9939 str x0, [x29, 128] 9940 ldrb w1, [x0, #:lo12:.LANCHOR6] 9941 add x0, x27, :lo12:.LANCHOR20 9942 str w1, [x29, 144] 9943 str x0, [x29, 104] 9944 add x0, x0, 4 9945 str x0, [x29, 96] 9946.L1451: 9947 ldr w0, [x29, 152] 9948 cmp w22, w0 9949 bcc .L1485 9950 mov w0, 0 9951 b .L1449 9952.L1450: 9953 bl FlashReadSlc2KPages 9954.L1449: 9955 ldp x19, x20, [sp, 16] 9956 ldp x21, x22, [sp, 32] 9957 ldp x23, x24, [sp, 48] 9958 ldp x25, x26, [sp, 64] 9959 ldp x27, x28, [sp, 80] 9960 ldp x29, x30, [sp], 176 9961 ret 9962.L1485: 9963 mov w26, 56 9964 add x3, x29, 168 9965 ldp w1, w0, [x29, 148] 9966 umull x26, w22, w26 9967 add x2, x29, 172 9968 add x21, x25, x26 9969 sub w4, w0, w22 9970 mov x0, x21 9971 ldr w24, [x21, 4] 9972 bl LogAddr2PhyAddr 9973 mov w20, w0 9974 adrp x0, .LANCHOR26 9975 ldr w1, [x29, 168] 9976 ldrb w0, [x0, #:lo12:.LANCHOR26] 9977 cmp w0, w1 9978 bhi .L1453 9979 mov w0, -1 9980 str w0, [x25, x26] 9981.L1454: 9982 add w22, w22, 1 9983 b .L1451 9984.L1453: 9985 adrp x0, .LANCHOR27 9986 add x0, x0, :lo12:.LANCHOR27 9987 ldrb w19, [x0, w1, uxtw] 9988 adrp x0, .LANCHOR210 9989 ldrb w0, [x0, #:lo12:.LANCHOR210] 9990 cmp w0, 0 9991 mov w0, w19 9992 csel w20, w20, wzr, ne 9993 bl NandcWaitFlashReady 9994 adrp x2, .LANCHOR7 9995 str x2, [x29, 120] 9996 ldr x0, [x2, #:lo12:.LANCHOR7] 9997 ldrb w1, [x0, 19] 9998 sub w0, w1, #1 9999 and w0, w0, 255 10000 cmp w0, 7 10001 bhi .L1456 10002 add x0, x27, :lo12:.LANCHOR20 10003 sxtw x2, w19 10004 add x0, x0, x2 10005 sub w1, w1, #7 10006 and w1, w1, 255 10007 cmp w1, 1 10008 ldrb w3, [x0, 12] 10009 bhi .L1457 10010 ldrb w3, [x0, 20] 10011.L1457: 10012 adrp x0, .LANCHOR21 10013 add x0, x0, :lo12:.LANCHOR21 10014 ldrb w0, [x0, x2] 10015 cmp w0, w3 10016 beq .L1456 10017 ldp x2, x0, [x29, 96] 10018 ldrb w1, [x0, 1] 10019 mov w0, w19 10020 bl HynixSetRRPara 10021.L1456: 10022 mov w0, w19 10023 bl NandcFlashCs 10024 ldr w0, [x29, 148] 10025 cmp w0, 1 10026 cset w0, eq 10027 orr w24, w0, w24, lsr 31 10028 cbz w24, .L1458 10029 adrp x0, .LANCHOR16 10030 ldrb w0, [x0, #:lo12:.LANCHOR16] 10031 cbz w0, .L1458 10032 mov w0, w19 10033 bl flash_enter_slc_mode 10034.L1459: 10035 adrp x0, .LANCHOR4 10036 add x0, x0, :lo12:.LANCHOR4 10037 str x0, [x29, 112] 10038 ldr x0, [x29, 128] 10039 add x0, x0, :lo12:.LANCHOR6 10040 str x0, [x29, 136] 10041.L1465: 10042 ldr w1, [x29, 172] 10043 cmn w1, #1 10044 bne .L1460 10045 cmp w19, 255 10046 beq .L1487 10047.L1460: 10048 cbz w20, .L1462 10049 ldr x0, [x29, 112] 10050 ldr w2, [x0] 10051 mov w0, w19 10052 add w2, w1, w2 10053 bl FlashReadDpCmd 10054.L1463: 10055 mov w0, w19 10056 bl NandcWaitFlashReady 10057 cbz w20, .L1461 10058 ldr w1, [x29, 172] 10059 mov w0, w19 10060 bl FlashReadDpDataOutCmd 10061.L1461: 10062 ldrb w2, [x29, 156] 10063 mov w1, 0 10064 ldp x3, x4, [x21, 8] 10065 mov w0, w19 10066 bl NandcXferData 10067 mov w28, w0 10068 ldr x0, [x29, 136] 10069 ldrb w0, [x0] 10070 cbz w0, .L1464 10071 cmn w28, #1 10072 bne .L1464 10073 ldr x0, [x29, 136] 10074 mov w20, 0 10075 strb wzr, [x0] 10076 b .L1465 10077.L1458: 10078 mov w0, w19 10079 bl flash_exit_slc_mode 10080 b .L1459 10081.L1462: 10082 mov w0, w19 10083 bl FlashReadCmd 10084 b .L1463 10085.L1487: 10086 mov w20, 0 10087 b .L1461 10088.L1464: 10089 cbz w20, .L1466 10090 adrp x0, .LANCHOR4 10091 ldr w1, [x29, 172] 10092 ldr w0, [x0, #:lo12:.LANCHOR4] 10093 add w1, w1, w0 10094 mov w0, w19 10095 bl FlashReadDpDataOutCmd 10096 add w0, w22, 1 10097 mov w1, 56 10098 ldrb w2, [x29, 156] 10099 nop // between mem op and mult-accumulate 10100 umaddl x0, w0, w1, x25 10101 mov w1, 0 10102 ldp x3, x4, [x0, 8] 10103 mov w0, w19 10104 bl NandcXferData 10105 cmn w0, #1 10106 mov w23, w0 10107 csel w20, w20, wzr, ne 10108.L1466: 10109 mov w0, w19 10110 bl NandcFlashDeCs 10111 ldr x0, [x29, 128] 10112 cmn w28, #1 10113 ldrb w1, [x29, 144] 10114 strb w1, [x0, #:lo12:.LANCHOR6] 10115 bne .L1467 10116 adrp x0, .LANCHOR30 10117 ldrb w0, [x0, #:lo12:.LANCHOR30] 10118 cbnz w0, .L1468 10119.L1472: 10120 adrp x20, .LANCHOR148 10121 ldr x4, [x20, #:lo12:.LANCHOR148] 10122 cbnz x4, .L1469 10123 ldr w1, [x29, 172] 10124 mov w0, w19 10125 ldp x2, x3, [x21, 8] 10126 bl FlashReadRawPage 10127 b .L1524 10128.L1468: 10129 adrp x0, .LANCHOR19 10130 ldr w1, [x29, 172] 10131 ldp x2, x3, [x21, 8] 10132 mov w4, 1 10133 ldr x0, [x0, #:lo12:.LANCHOR19] 10134 ldr w20, [x0, 304] 10135 mov w0, w19 10136 bl FlashDdrTunningRead 10137 mov w28, w0 10138 cmn w0, #1 10139 beq .L1471 10140 adrp x0, .LANCHOR33 10141 ldrb w0, [x0, #:lo12:.LANCHOR33] 10142 cmp w28, w0, lsr 1 10143 bls .L1488 10144.L1471: 10145 lsr w0, w20, 8 10146 bl NandcSetDdrPara 10147 cmn w28, #1 10148 beq .L1472 10149.L1488: 10150 mov w20, 0 10151.L1467: 10152 adrp x0, .LANCHOR33 10153 ldrb w0, [x0, #:lo12:.LANCHOR33] 10154 add w0, w0, w0, lsl 1 10155 cmp w28, w0, lsr 2 10156 bls .L1473 10157 adrp x0, .LANCHOR148 10158 ldr x0, [x0, #:lo12:.LANCHOR148] 10159 cmp x0, 0 10160 mov w0, 256 10161 csel w28, w28, w0, ne 10162.L1473: 10163 cmp w28, 256 10164 ccmn w28, #1, 4, ne 10165 csel w3, w28, wzr, eq 10166 str w3, [x25, x26] 10167 cmn w3, #1 10168 bne .L1480 10169 adrp x0, .LANCHOR33 10170 ldr w1, [x21, 4] 10171 ldrb w2, [x0, #:lo12:.LANCHOR33] 10172 adrp x0, .LC26 10173 add x0, x0, :lo12:.LC26 10174 bl printf 10175 ldr x1, [x21, 16] 10176 cbz x1, .L1480 10177 mov w3, 4 10178 adrp x0, .LC28 10179 mov w2, w3 10180 add x0, x0, :lo12:.LC28 10181 bl rknand_print_hex 10182.L1480: 10183 cbz w20, .L1482 10184 adrp x0, .LANCHOR33 10185 ldrb w0, [x0, #:lo12:.LANCHOR33] 10186 add w0, w0, w0, lsl 1 10187 cmp w23, w0, lsr 2 10188 bls .L1483 10189 adrp x0, .LANCHOR148 10190 ldr x0, [x0, #:lo12:.LANCHOR148] 10191 cmp x0, 0 10192 mov w0, 256 10193 csel w23, w23, w0, ne 10194.L1483: 10195 add w0, w22, 1 10196 mov w1, 56 10197 cmp w23, 256 10198 ccmn w23, #1, 4, ne 10199 umull x0, w0, w1 10200 csel w1, w23, wzr, eq 10201 str w1, [x25, x0] 10202.L1482: 10203 add w22, w22, w20 10204 cbz w24, .L1454 10205 adrp x0, .LANCHOR16 10206 ldrb w0, [x0, #:lo12:.LANCHOR16] 10207 cbz w0, .L1454 10208 mov w0, w19 10209 bl flash_exit_slc_mode 10210 b .L1454 10211.L1469: 10212 ldr w1, [x29, 172] 10213 mov w0, w19 10214 ldp x2, x3, [x21, 8] 10215 blr x4 10216 mov w28, w0 10217 cmn w0, #1 10218 bne .L1491 10219 ldr x0, [x29, 120] 10220 ldr x0, [x0, #:lo12:.LANCHOR7] 10221 ldrb w0, [x0, 19] 10222 sub w0, w0, #1 10223 and w0, w0, 255 10224 cmp w0, 7 10225 bhi .L1474 10226 add x0, x27, :lo12:.LANCHOR20 10227 mov w3, 0 10228 add x2, x0, 4 10229 ldrb w1, [x0, 1] 10230 mov w0, w19 10231 bl HynixSetRRPara 10232.L1474: 10233 ldp x2, x3, [x21, 8] 10234 mov w0, w19 10235 ldr w1, [x29, 172] 10236 bl FlashReadRawPage 10237 mov w28, w0 10238 mov w3, w0 10239 adrp x0, .LANCHOR33 10240 ldr w1, [x21, 4] 10241 ldrb w2, [x0, #:lo12:.LANCHOR33] 10242 adrp x0, .LC29 10243 add x0, x0, :lo12:.LC29 10244 bl printf 10245 cmn w28, #1 10246 bne .L1491 10247 adrp x0, .LANCHOR16 10248 ldrb w0, [x0, #:lo12:.LANCHOR16] 10249 cbz w0, .L1491 10250 mov w0, w19 10251 cbz w24, .L1475 10252 bl flash_enter_slc_mode 10253.L1476: 10254 ldr x4, [x20, #:lo12:.LANCHOR148] 10255 mov w0, w19 10256 ldr w1, [x29, 172] 10257 ldp x2, x3, [x21, 8] 10258 blr x4 10259.L1524: 10260 mov w28, w0 10261.L1491: 10262 mov w20, 0 10263 b .L1473 10264.L1475: 10265 bl flash_exit_slc_mode 10266 b .L1476 10267 .size FlashReadPages, .-FlashReadPages 10268 .section .text.FlashProgSlc2KPages,"ax",@progbits 10269 .align 2 10270 .global FlashProgSlc2KPages 10271 .type FlashProgSlc2KPages, %function 10272FlashProgSlc2KPages: 10273 stp x29, x30, [sp, -160]! 10274 add x29, sp, 0 10275 stp x23, x24, [sp, 48] 10276 mov w24, 56 10277 stp x25, x26, [sp, 64] 10278 mov w25, w2 10279 adrp x2, .LANCHOR31+9 10280 stp x21, x22, [sp, 32] 10281 nop // between mem op and mult-accumulate 10282 umaddl x24, w1, w24, x0 10283 and w22, w1, 255 10284 ldrb w26, [x2, #:lo12:.LANCHOR31+9] 10285 mov w23, w22 10286 stp x27, x28, [sp, 80] 10287 mov x21, x0 10288 stp x19, x20, [sp, 16] 10289 adrp x27, .LANCHOR4 10290 mov x19, x0 10291 add x28, x27, :lo12:.LANCHOR4 10292.L1526: 10293 cmp x21, x24 10294 bne .L1532 10295 adrp x23, .LANCHOR206 10296 mov x24, x23 10297.L1533: 10298 cmp x19, x21 10299 bne .L1540 10300 ldp x19, x20, [sp, 16] 10301 mov w0, 0 10302 ldp x21, x22, [sp, 32] 10303 ldp x23, x24, [sp, 48] 10304 ldp x25, x26, [sp, 64] 10305 ldp x27, x28, [sp, 80] 10306 ldp x29, x30, [sp], 160 10307 ret 10308.L1532: 10309 mov w1, w25 10310 mov w4, w23 10311 add x3, x29, 100 10312 add x2, x29, 96 10313 mov x0, x21 10314 bl LogAddr2PhyAddr 10315 adrp x0, .LANCHOR26 10316 ldr w1, [x29, 100] 10317 ldrb w0, [x0, #:lo12:.LANCHOR26] 10318 cmp w0, w1 10319 bhi .L1527 10320 mov w0, -1 10321 str w0, [x21] 10322.L1528: 10323 sub w23, w23, #1 10324 add x21, x21, 56 10325 and w23, w23, 255 10326 b .L1526 10327.L1527: 10328 adrp x0, .LANCHOR27 10329 add x0, x0, :lo12:.LANCHOR27 10330 ldrb w20, [x0, w1, uxtw] 10331 mov w0, w20 10332 bl NandcWaitFlashReady 10333 mov w0, w20 10334 bl NandcFlashCs 10335 ldr w1, [x29, 96] 10336 mov w0, w20 10337 bl FlashProgFirstCmd 10338 ldp x3, x4, [x21, 8] 10339 mov w2, w26 10340 mov w1, 1 10341 mov w0, w20 10342 bl NandcXferData 10343 ldr w1, [x29, 96] 10344 mov w0, w20 10345 bl FlashProgSecondCmd 10346 mov w0, w20 10347 bl NandcWaitFlashReady 10348 ldr w1, [x29, 96] 10349 mov w0, w20 10350 bl FlashReadStatus 10351 sbfx x0, x0, 0, 1 10352 str w0, [x21] 10353 ldr w1, [x29, 96] 10354 ldr w0, [x27, #:lo12:.LANCHOR4] 10355 add w1, w1, w0 10356 mov w0, w20 10357 bl FlashProgFirstCmd 10358 ldr x0, [x21, 8] 10359 mov w2, w26 10360 mov w1, 1 10361 cmp x0, 0 10362 add x3, x0, 2048 10363 ldr x0, [x21, 16] 10364 csel x3, x3, xzr, ne 10365 cmp x0, 0 10366 add x4, x0, 8 10367 csel x4, x4, xzr, ne 10368 mov w0, w20 10369 bl NandcXferData 10370 ldr w0, [x28] 10371 ldr w1, [x29, 96] 10372 add w1, w1, w0 10373 mov w0, w20 10374 bl FlashProgSecondCmd 10375 mov w0, w20 10376 bl NandcWaitFlashReady 10377 ldr w1, [x29, 96] 10378 mov w0, w20 10379 bl FlashReadStatus 10380 tbz x0, 0, .L1531 10381 mov w0, -1 10382 str w0, [x21] 10383.L1531: 10384 mov w0, w20 10385 bl NandcFlashDeCs 10386 b .L1528 10387.L1540: 10388 ldr w0, [x19] 10389 cmn w0, #1 10390 bne .L1534 10391 ldr w1, [x19, 4] 10392 adrp x0, .LC30 10393 add x0, x0, :lo12:.LC30 10394 bl printf 10395.L1535: 10396 sub w22, w22, #1 10397 add x19, x19, 56 10398 and w22, w22, 255 10399 b .L1533 10400.L1534: 10401 adrp x20, .LANCHOR207 10402 mov w4, w22 10403 add x3, x29, 100 10404 add x2, x29, 96 10405 mov w1, w25 10406 mov x0, x19 10407 bl LogAddr2PhyAddr 10408 ldr x27, [x23, #:lo12:.LANCHOR206] 10409 ldr x26, [x20, #:lo12:.LANCHOR207] 10410 mov x2, 56 10411 mov x1, x19 10412 add x0, x29, 104 10413 str wzr, [x27] 10414 str wzr, [x26] 10415 bl memcpy 10416 stp x27, x26, [x29, 112] 10417 mov w2, w25 10418 mov w1, 1 10419 add x0, x29, 104 10420 bl FlashReadPages 10421 ldr w26, [x29, 104] 10422 cmn w26, #1 10423 bne .L1536 10424 ldr w1, [x19, 4] 10425 adrp x0, .LC31 10426 add x0, x0, :lo12:.LC31 10427 bl printf 10428 str w26, [x19] 10429.L1536: 10430 ldr w26, [x29, 104] 10431 cmp w26, 256 10432 bne .L1537 10433 ldr w1, [x19, 4] 10434 adrp x0, .LC32 10435 add x0, x0, :lo12:.LC32 10436 bl printf 10437 str w26, [x19] 10438.L1537: 10439 ldr x0, [x19, 16] 10440 cbz x0, .L1538 10441 ldr w2, [x0] 10442 ldr x0, [x20, #:lo12:.LANCHOR207] 10443 ldr w3, [x0] 10444 cmp w2, w3 10445 beq .L1538 10446 ldr w1, [x19, 4] 10447 adrp x0, .LC33 10448 add x0, x0, :lo12:.LC33 10449 bl printf 10450 mov w0, -1 10451 str w0, [x19] 10452.L1538: 10453 ldr x0, [x19, 8] 10454 cbz x0, .L1535 10455 ldr w2, [x0] 10456 ldr x0, [x24, #:lo12:.LANCHOR206] 10457 ldr w3, [x0] 10458 cmp w2, w3 10459 beq .L1535 10460 ldr w1, [x19, 4] 10461 adrp x0, .LC34 10462 add x0, x0, :lo12:.LC34 10463 bl printf 10464 mov w0, -1 10465 str w0, [x19] 10466 b .L1535 10467 .size FlashProgSlc2KPages, .-FlashProgSlc2KPages 10468 .section .text.FlashProgPages,"ax",@progbits 10469 .align 2 10470 .global FlashProgPages 10471 .type FlashProgPages, %function 10472FlashProgPages: 10473 stp x29, x30, [sp, -176]! 10474 adrp x4, .LANCHOR7 10475 add x29, sp, 0 10476 ldr x4, [x4, #:lo12:.LANCHOR7] 10477 stp x19, x20, [sp, 16] 10478 stp x21, x22, [sp, 32] 10479 stp x23, x24, [sp, 48] 10480 stp x25, x26, [sp, 64] 10481 stp x27, x28, [sp, 80] 10482 ldrb w4, [x4, 19] 10483 stp w3, w4, [x29, 100] 10484 adrp x4, .LANCHOR2 10485 ldrb w4, [x4, #:lo12:.LANCHOR2] 10486 cbnz w4, .L1554 10487 mov x19, x0 10488 adrp x0, .LANCHOR31+9 10489 adrp x27, .LANCHOR23 10490 mov w24, w1 10491 ldrb w0, [x0, #:lo12:.LANCHOR31+9] 10492 mov w22, w2 10493 add x28, x27, :lo12:.LANCHOR23 10494 mov w21, 0 10495 str w0, [x29, 108] 10496.L1555: 10497 cmp w21, w24 10498 adrp x26, .LANCHOR26 10499 bcc .L1568 10500 adrp x21, .LANCHOR16 10501 adrp x23, .LANCHOR23 10502 add x25, x26, :lo12:.LANCHOR26 10503 add x21, x21, :lo12:.LANCHOR16 10504 add x23, x23, :lo12:.LANCHOR23 10505 mov x20, 0 10506.L1569: 10507 ldrb w0, [x25] 10508 cmp w0, w20 10509 bhi .L1571 10510 ldr w0, [x29, 100] 10511 cbnz w0, .L1572 10512.L1580: 10513 mov w0, 0 10514 b .L1553 10515.L1554: 10516 bl FlashProgSlc2KPages 10517.L1553: 10518 ldp x19, x20, [sp, 16] 10519 ldp x21, x22, [sp, 32] 10520 ldp x23, x24, [sp, 48] 10521 ldp x25, x26, [sp, 64] 10522 ldp x27, x28, [sp, 80] 10523 ldp x29, x30, [sp], 176 10524 ret 10525.L1568: 10526 mov w12, 56 10527 mov w1, w22 10528 sub w4, w24, w21 10529 add x3, x29, 116 10530 umull x12, w21, w12 10531 add x2, x29, 112 10532 add x25, x19, x12 10533 mov x0, x25 10534 bl LogAddr2PhyAddr 10535 mov w23, w0 10536 ldrb w1, [x26, #:lo12:.LANCHOR26] 10537 ldr w0, [x29, 116] 10538 cmp w1, w0 10539 bhi .L1557 10540 mov w0, -1 10541 str w0, [x19, x12] 10542.L1558: 10543 add w21, w21, 1 10544 b .L1555 10545.L1557: 10546 adrp x1, .LANCHOR28 10547 add x2, x27, :lo12:.LANCHOR23 10548 mov x3, 24 10549 ldrb w1, [x1, #:lo12:.LANCHOR28] 10550 cmp w1, 0 10551 uxtw x1, w0 10552 csel w23, w23, wzr, ne 10553 madd x1, x1, x3, x2 10554 ldr x1, [x1, 8] 10555 cbz x1, .L1560 10556 bl FlashWaitCmdDone 10557.L1560: 10558 ldp w2, w1, [x29, 112] 10559 mov x0, 24 10560 madd x0, x1, x0, x28 10561 str w2, [x0, 4] 10562 stp x25, xzr, [x0, 8] 10563 cbz w23, .L1561 10564 add w2, w21, 1 10565 mov w3, 56 10566 umaddl x2, w2, w3, x19 10567 str x2, [x0, 16] 10568.L1561: 10569 adrp x0, .LANCHOR27 10570 add x0, x0, :lo12:.LANCHOR27 10571 ldrb w20, [x0, x1] 10572 mov x0, 24 10573 mul x1, x1, x0 10574 ldrb w0, [x26, #:lo12:.LANCHOR26] 10575 cmp w0, 1 10576 mov w0, w20 10577 strb w20, [x28, x1] 10578 bne .L1562 10579 bl NandcWaitFlashReady 10580.L1563: 10581 ldr w0, [x29, 104] 10582 sub w0, w0, #1 10583 cmp w0, 7 10584 bhi .L1564 10585 adrp x0, .LANCHOR21 10586 add x0, x0, :lo12:.LANCHOR21 10587 ldrb w0, [x0, w20, sxtw] 10588 cbz w0, .L1564 10589 adrp x0, .LANCHOR20 10590 add x0, x0, :lo12:.LANCHOR20 10591 add x2, x0, 4 10592 mov w3, 0 10593 ldrb w1, [x0, 1] 10594 mov w0, w20 10595 bl HynixSetRRPara 10596.L1564: 10597 mov w0, w20 10598 bl NandcFlashCs 10599 cmp w22, 1 10600 bne .L1565 10601 adrp x0, .LANCHOR16 10602 ldrb w0, [x0, #:lo12:.LANCHOR16] 10603 cbz w0, .L1565 10604 mov w0, w20 10605 bl flash_enter_slc_mode 10606.L1566: 10607 ldr w1, [x29, 112] 10608 mov w0, w20 10609 bl FlashProgFirstCmd 10610 ldrb w2, [x29, 108] 10611 mov w1, 1 10612 ldp x3, x4, [x25, 8] 10613 mov w0, w20 10614 bl NandcXferData 10615 cbz w23, .L1567 10616 ldr w1, [x29, 112] 10617 mov w0, w20 10618 bl FlashProgDpFirstCmd 10619 ldr w1, [x29, 116] 10620 adrp x0, .LANCHOR18 10621 add x0, x0, :lo12:.LANCHOR18 10622 ldr w0, [x0, x1, lsl 2] 10623 ldr w1, [x29, 112] 10624 cmp w0, 0 10625 mov w0, w20 10626 cset w2, ne 10627 bl FlashWaitReadyEN 10628 adrp x0, .LANCHOR4 10629 ldr w1, [x29, 112] 10630 ldr w0, [x0, #:lo12:.LANCHOR4] 10631 add w1, w1, w0 10632 mov w0, w20 10633 bl FlashProgDpSecondCmd 10634 add w0, w21, 1 10635 mov w1, 56 10636 ldrb w2, [x29, 108] 10637 nop // between mem op and mult-accumulate 10638 umaddl x0, w0, w1, x19 10639 mov w1, 1 10640 ldp x3, x4, [x0, 8] 10641 mov w0, w20 10642 bl NandcXferData 10643.L1567: 10644 ldr w1, [x29, 112] 10645 mov w0, w20 10646 add w21, w21, w23 10647 bl FlashProgSecondCmd 10648 mov w0, w20 10649 bl NandcFlashDeCs 10650 b .L1558 10651.L1562: 10652 bl NandcFlashCs 10653 ldr w1, [x29, 116] 10654 adrp x0, .LANCHOR18 10655 add x0, x0, :lo12:.LANCHOR18 10656 ldr w0, [x0, x1, lsl 2] 10657 ldr w1, [x29, 112] 10658 cmp w0, 0 10659 mov w0, w20 10660 cset w2, ne 10661 bl FlashWaitReadyEN 10662 mov w0, w20 10663 bl NandcFlashDeCs 10664 b .L1563 10665.L1565: 10666 mov w0, w20 10667 bl flash_exit_slc_mode 10668 b .L1566 10669.L1571: 10670 mov w0, w20 10671 bl FlashWaitCmdDone 10672 cmp w22, 1 10673 bne .L1570 10674 ldrb w0, [x21] 10675 cbz w0, .L1570 10676 mov x0, 24 10677 mul x0, x20, x0 10678 ldrb w0, [x0, x23] 10679 bl flash_exit_slc_mode 10680.L1570: 10681 add x20, x20, 1 10682 b .L1569 10683.L1572: 10684 mov w0, 56 10685 and w20, w24, 255 10686 adrp x23, .LANCHOR206 10687 mov x25, x23 10688 umaddl x24, w24, w0, x19 10689.L1573: 10690 cmp x24, x19 10691 beq .L1580 10692 ldr w0, [x19] 10693 cmn w0, #1 10694 bne .L1574 10695 ldr w1, [x19, 4] 10696 adrp x0, .LC30 10697 add x0, x0, :lo12:.LC30 10698 bl printf 10699.L1575: 10700 sub w20, w20, #1 10701 add x19, x19, 56 10702 and w20, w20, 255 10703 b .L1573 10704.L1574: 10705 adrp x21, .LANCHOR207 10706 mov w4, w20 10707 add x3, x29, 116 10708 add x2, x29, 112 10709 mov w1, w22 10710 mov x0, x19 10711 bl LogAddr2PhyAddr 10712 ldr x27, [x23, #:lo12:.LANCHOR206] 10713 ldr x26, [x21, #:lo12:.LANCHOR207] 10714 mov x2, 56 10715 mov x1, x19 10716 add x0, x29, 120 10717 str wzr, [x27] 10718 str wzr, [x26] 10719 bl memcpy 10720 stp x27, x26, [x29, 128] 10721 mov w2, w22 10722 mov w1, 1 10723 add x0, x29, 120 10724 bl FlashReadPages 10725 ldr w26, [x29, 120] 10726 cmn w26, #1 10727 bne .L1576 10728 ldr w1, [x19, 4] 10729 adrp x0, .LC31 10730 add x0, x0, :lo12:.LC31 10731 bl printf 10732 str w26, [x19] 10733.L1576: 10734 ldr x0, [x19, 16] 10735 cbz x0, .L1577 10736 ldr w2, [x0] 10737 ldr x0, [x21, #:lo12:.LANCHOR207] 10738 ldr w3, [x0] 10739 cmp w2, w3 10740 beq .L1577 10741 ldr w1, [x19, 4] 10742 adrp x0, .LC33 10743 add x0, x0, :lo12:.LC33 10744 bl printf 10745 mov w0, -1 10746 str w0, [x19] 10747.L1577: 10748 ldr x0, [x19, 8] 10749 cbz x0, .L1575 10750 ldr w2, [x0] 10751 ldr x0, [x25, #:lo12:.LANCHOR206] 10752 ldr w3, [x0] 10753 cmp w2, w3 10754 beq .L1575 10755 ldr w1, [x19, 4] 10756 adrp x0, .LC34 10757 add x0, x0, :lo12:.LC34 10758 bl printf 10759 mov w0, -1 10760 str w0, [x19] 10761 b .L1575 10762 .size FlashProgPages, .-FlashProgPages 10763 .section .text.FlashTestBlk,"ax",@progbits 10764 .align 2 10765 .global FlashTestBlk 10766 .type FlashTestBlk, %function 10767FlashTestBlk: 10768 stp x29, x30, [sp, -160]! 10769 add x29, sp, 0 10770 stp x19, x20, [sp, 16] 10771 and w19, w0, 65535 10772 adrp x0, .LANCHOR156 10773 ldr w0, [x0, #:lo12:.LANCHOR156] 10774 cmp w19, w0 10775 bcc .L1608 10776 adrp x20, .LANCHOR152 10777 mov w2, 32 10778 mov w1, 165 10779 lsl w19, w19, 10 10780 ldr x0, [x20, #:lo12:.LANCHOR152] 10781 str x0, [x29, 48] 10782 add x0, x29, 96 10783 str x0, [x29, 56] 10784 bl ftl_memset 10785 ldr x0, [x20, #:lo12:.LANCHOR152] 10786 mov w2, 8 10787 mov w1, 90 10788 bl ftl_memset 10789 str w19, [x29, 44] 10790 mov w2, 1 10791 add x0, x29, 40 10792 mov w1, w2 10793 bl FlashEraseBlocks 10794 mov w3, 1 10795 add x0, x29, 40 10796 mov w2, w3 10797 mov w1, w3 10798 bl FlashProgPages 10799 ldr w0, [x29, 40] 10800 mov w2, 1 10801 mov w1, 0 10802 cmp w0, 0 10803 add x0, x29, 40 10804 csetm w19, ne 10805 bl FlashEraseBlocks 10806.L1606: 10807 mov w0, w19 10808 ldp x19, x20, [sp, 16] 10809 ldp x29, x30, [sp], 160 10810 ret 10811.L1608: 10812 mov w19, 0 10813 b .L1606 10814 .size FlashTestBlk, .-FlashTestBlk 10815 .section .text.FtlLowFormatEraseBlock,"ax",@progbits 10816 .align 2 10817 .global FtlLowFormatEraseBlock 10818 .type FtlLowFormatEraseBlock, %function 10819FtlLowFormatEraseBlock: 10820 stp x29, x30, [sp, -144]! 10821 add x29, sp, 0 10822 stp x25, x26, [sp, 64] 10823 and w26, w0, 65535 10824 adrp x0, .LANCHOR78 10825 stp x19, x20, [sp, 16] 10826 stp x21, x22, [sp, 32] 10827 ldr w0, [x0, #:lo12:.LANCHOR78] 10828 stp x23, x24, [sp, 48] 10829 stp x27, x28, [sp, 80] 10830 cbnz w0, .L1633 10831 adrp x23, .LANCHOR28 10832 and w25, w1, 255 10833 adrp x20, .LANCHOR16 10834 adrp x1, .LANCHOR38 10835 ldrb w0, [x23, #:lo12:.LANCHOR28] 10836 adrp x21, .LANCHOR79 10837 str w0, [x29, 136] 10838 mov x8, 56 10839 adrp x0, .LANCHOR75 10840 ldrb w10, [x20, #:lo12:.LANCHOR16] 10841 ldrh w11, [x1, #:lo12:.LANCHOR38] 10842 adrp x7, .LANCHOR47 10843 str w26, [x0, #:lo12:.LANCHOR75] 10844 adrp x0, .LANCHOR196 10845 ldr x6, [x21, #:lo12:.LANCHOR79] 10846 add x7, x7, :lo12:.LANCHOR47 10847 ldr x12, [x0, #:lo12:.LANCHOR196] 10848 adrp x0, .LANCHOR58 10849 mov w14, w8 10850 mov x5, 0 10851 ldrh w13, [x0, #:lo12:.LANCHOR58] 10852 mov w24, 0 10853 mov w19, 0 10854 str x1, [x29, 128] 10855 str x0, [x29, 120] 10856.L1612: 10857 cmp w11, w5, uxth 10858 bhi .L1616 10859 cbz w24, .L1610 10860 cmp w10, 0 10861 mov w2, w24 10862 cset w22, ne 10863 strb wzr, [x23, #:lo12:.LANCHOR28] 10864 mov w1, w22 10865 mov x0, x6 10866 bl FlashEraseBlocks 10867 mov x27, 0 10868 ldrb w0, [x29, 136] 10869 strb w0, [x23, #:lo12:.LANCHOR28] 10870 mov w0, 56 10871 umull x24, w24, w0 10872.L1619: 10873 ldr x0, [x21, #:lo12:.LANCHOR79] 10874 add x1, x0, x27 10875 ldr w0, [x0, x27] 10876 cmn w0, #1 10877 bne .L1618 10878 ldr w0, [x1, 4] 10879 add w19, w19, 1 10880 and w19, w19, 65535 10881 lsr w0, w0, 10 10882 bl FtlBbmMapBadBlock 10883.L1618: 10884 add x27, x27, 56 10885 cmp x27, x24 10886 bne .L1619 10887 cbnz w25, .L1620 10888 and w22, w22, 65535 10889 mov w28, 6 10890 mov w27, 1 10891.L1621: 10892 adrp x0, .LANCHOR47 10893 mov w24, 0 10894 add x0, x0, :lo12:.LANCHOR47 10895 str x0, [x29, 112] 10896.L1629: 10897 ldr x0, [x29, 128] 10898 mov x5, 0 10899 ldr x6, [x21, #:lo12:.LANCHOR79] 10900 mov w20, 0 10901 mov w12, 56 10902 ldrh w7, [x0, #:lo12:.LANCHOR38] 10903 adrp x0, .LANCHOR193 10904 ldr x8, [x0, #:lo12:.LANCHOR193] 10905 adrp x0, .LANCHOR194 10906 ldr x10, [x0, #:lo12:.LANCHOR194] 10907 ldr x0, [x29, 120] 10908 ldrh w11, [x0, #:lo12:.LANCHOR58] 10909.L1622: 10910 cmp w7, w5, uxth 10911 bhi .L1625 10912 cbz w20, .L1610 10913 mov w2, w22 10914 mov w1, w20 10915 strb wzr, [x23, #:lo12:.LANCHOR28] 10916 mov w3, 1 10917 mov x0, x6 10918 bl FlashProgPages 10919 mov w1, 56 10920 ldrb w0, [x29, 136] 10921 strb w0, [x23, #:lo12:.LANCHOR28] 10922 mov x2, 0 10923 umull x1, w20, w1 10924.L1628: 10925 ldr x0, [x21, #:lo12:.LANCHOR79] 10926 add x3, x0, x2 10927 ldr w0, [x0, x2] 10928 cbz w0, .L1627 10929 ldr w0, [x3, 4] 10930 add w19, w19, 1 10931 stp x2, x1, [x29, 96] 10932 and w19, w19, 65535 10933 lsr w0, w0, 10 10934 bl FtlBbmMapBadBlock 10935 ldp x2, x1, [x29, 96] 10936.L1627: 10937 add x2, x2, 56 10938 cmp x1, x2 10939 bne .L1628 10940 add w24, w24, w28 10941 and w24, w24, 65535 10942 cmp w27, w24 10943 bhi .L1629 10944 mov x23, 0 10945.L1631: 10946 cbz w25, .L1630 10947 ldr x0, [x21, #:lo12:.LANCHOR79] 10948 add x1, x0, x23 10949 ldr w0, [x0, x23] 10950 cbnz w0, .L1630 10951 ldr w0, [x1, 4] 10952 mov w1, 1 10953 str x2, [x29, 136] 10954 lsr w0, w0, 10 10955 bl FtlFreeSysBlkQueueIn 10956 ldr x2, [x29, 136] 10957.L1630: 10958 add x23, x23, 56 10959 cmp x23, x2 10960 bne .L1631 10961 cmp w26, 63 10962 ccmp w25, 0, 0, hi 10963 beq .L1610 10964 ldr x0, [x21, #:lo12:.LANCHOR79] 10965 mov w2, w20 10966 mov w1, w22 10967 bl FlashEraseBlocks 10968.L1610: 10969 mov w0, w19 10970 ldp x19, x20, [sp, 16] 10971 ldp x21, x22, [sp, 32] 10972 ldp x23, x24, [sp, 48] 10973 ldp x25, x26, [sp, 64] 10974 ldp x27, x28, [sp, 80] 10975 ldp x29, x30, [sp], 144 10976 ret 10977.L1616: 10978 mul x0, x5, x8 10979 mov w1, w26 10980 str wzr, [x6, x0] 10981 ldrb w0, [x7, x5] 10982 bl V2P_block 10983 and w15, w0, 65535 10984 mov w22, w15 10985 cbz w25, .L1613 10986 bl IsBlkInVendorPart 10987 cbnz w0, .L1614 10988.L1613: 10989 mov w0, w22 10990 bl FtlBbmIsBadBlock 10991 cbnz w0, .L1615 10992 umaddl x1, w24, w14, x6 10993 lsl w15, w15, 10 10994 mul w0, w24, w13 10995 add w24, w24, 1 10996 and w24, w24, 65535 10997 asr w0, w0, 2 10998 str w15, [x1, 4] 10999 add x0, x12, x0, sxtw 2 11000 stp xzr, x0, [x1, 8] 11001.L1614: 11002 add x5, x5, 1 11003 b .L1612 11004.L1615: 11005 add w19, w19, 1 11006 and w19, w19, 65535 11007 b .L1614 11008.L1620: 11009 adrp x0, .LANCHOR53 11010 ldrh w27, [x0, #:lo12:.LANCHOR53] 11011 ldrb w0, [x20, #:lo12:.LANCHOR16] 11012 cbnz w0, .L1634 11013 lsr w28, w27, 2 11014 mov w22, 1 11015 b .L1621 11016.L1634: 11017 mov w22, 1 11018 mov w28, w22 11019 b .L1621 11020.L1625: 11021 mov x0, 56 11022 mov w1, w26 11023 mul x0, x5, x0 11024 str wzr, [x6, x0] 11025 ldr x0, [x29, 112] 11026 ldrb w0, [x0, x5] 11027 bl V2P_block 11028 and w13, w0, 65535 11029 mov w14, w13 11030 cbz w25, .L1623 11031 bl IsBlkInVendorPart 11032 cbnz w0, .L1624 11033.L1623: 11034 mov w0, w14 11035 bl FtlBbmIsBadBlock 11036 cbnz w0, .L1624 11037 umaddl x1, w20, w12, x6 11038 add w13, w24, w13, lsl 10 11039 mul w0, w20, w11 11040 add w20, w20, 1 11041 and w20, w20, 65535 11042 asr w0, w0, 2 11043 str w13, [x1, 4] 11044 add x0, x10, x0, sxtw 2 11045 stp x8, x0, [x1, 8] 11046.L1624: 11047 add x5, x5, 1 11048 b .L1622 11049.L1633: 11050 mov w19, 0 11051 b .L1610 11052 .size FtlLowFormatEraseBlock, .-FtlLowFormatEraseBlock 11053 .section .text.FtlBbmTblFlush,"ax",@progbits 11054 .align 2 11055 .global FtlBbmTblFlush 11056 .type FtlBbmTblFlush, %function 11057FtlBbmTblFlush: 11058 stp x29, x30, [sp, -96]! 11059 add x29, sp, 0 11060 stp x21, x22, [sp, 32] 11061 adrp x22, .LANCHOR78 11062 stp x19, x20, [sp, 16] 11063 ldr w0, [x22, #:lo12:.LANCHOR78] 11064 stp x23, x24, [sp, 48] 11065 stp x25, x26, [sp, 64] 11066 stp x27, x28, [sp, 80] 11067 cbnz w0, .L1657 11068 adrp x24, .LANCHOR195 11069 adrp x23, .LANCHOR189 11070 adrp x20, .LANCHOR211 11071 add x19, x20, :lo12:.LANCHOR211 11072 ldr x1, [x24, #:lo12:.LANCHOR195] 11073 adrp x21, .LANCHOR76 11074 ldr x0, [x23, #:lo12:.LANCHOR189] 11075 add x26, x21, :lo12:.LANCHOR76 11076 stp x0, x1, [x19, 8] 11077 adrp x1, .LANCHOR57 11078 adrp x27, .LANCHOR45 11079 adrp x28, .LANCHOR126 11080 ldrh w2, [x1, #:lo12:.LANCHOR57] 11081 add x26, x26, 32 11082 mov w25, 0 11083 add x27, x27, :lo12:.LANCHOR45 11084 add x28, x28, :lo12:.LANCHOR126 11085 mov w1, 0 11086 bl ftl_memset 11087.L1658: 11088 ldrh w0, [x27] 11089 cmp w25, w0 11090 blt .L1659 11091 add x20, x20, :lo12:.LANCHOR211 11092 add x19, x21, :lo12:.LANCHOR76 11093 mov w2, 16 11094 mov w1, 255 11095 adrp x26, .LC35 11096 adrp x27, .LANCHOR53 11097 ldr x28, [x20, 16] 11098 add x26, x26, :lo12:.LC35 11099 add x27, x27, :lo12:.LANCHOR53 11100 mov w25, 0 11101 mov x0, x28 11102 bl ftl_memset 11103 mov w0, -3887 11104 strh w0, [x28] 11105 ldr w0, [x19, 8] 11106 str w0, [x28, 4] 11107 ldrh w0, [x21, #:lo12:.LANCHOR76] 11108 mov w21, 0 11109 strh w0, [x28, 2] 11110 ldrh w0, [x19, 4] 11111 strh w0, [x28, 8] 11112 ldrh w0, [x19, 6] 11113 strh w0, [x28, 10] 11114 adrp x0, .LANCHOR37 11115 ldr w0, [x0, #:lo12:.LANCHOR37] 11116 strh w0, [x28, 12] 11117.L1660: 11118 ldrh w1, [x19] 11119 ldrh w4, [x28, 10] 11120 ldrh w2, [x19, 2] 11121 ldrh w3, [x19, 4] 11122 ldr x0, [x23, #:lo12:.LANCHOR189] 11123 str x0, [x20, 8] 11124 ldr x0, [x24, #:lo12:.LANCHOR195] 11125 str x0, [x20, 16] 11126 orr w0, w2, w1, lsl 10 11127 str wzr, [x20] 11128 str w0, [x20, 4] 11129 mov x0, x26 11130 bl printf 11131 ldrh w0, [x27] 11132 ldrh w1, [x19, 2] 11133 sub w0, w0, #1 11134 cmp w1, w0 11135 blt .L1661 11136 ldr w0, [x19, 8] 11137 mov w2, 1 11138 ldrh w1, [x19, 4] 11139 add w0, w0, 1 11140 str w0, [x19, 8] 11141 str w0, [x28, 4] 11142 ldrh w0, [x19] 11143 strh w0, [x28, 8] 11144 strh w0, [x19, 4] 11145 adrp x0, .LANCHOR79 11146 strh w1, [x19] 11147 lsl w1, w1, 10 11148 ldr x0, [x0, #:lo12:.LANCHOR79] 11149 str w1, [x20, 4] 11150 strh wzr, [x19, 2] 11151 str w1, [x0, 4] 11152 mov w1, w2 11153 bl FlashEraseBlocks 11154.L1661: 11155 mov w3, 1 11156 mov x0, x20 11157 mov w2, w3 11158 mov w1, w3 11159 bl FlashProgPages 11160 ldrh w0, [x19, 2] 11161 add w0, w0, 1 11162 strh w0, [x19, 2] 11163 ldr w0, [x20] 11164 cmn w0, #1 11165 bne .L1662 11166 ldr w1, [x20, 4] 11167 add w21, w21, 1 11168 adrp x0, .LC36 11169 and w21, w21, 65535 11170 add x0, x0, :lo12:.LC36 11171 bl printf 11172 cmp w21, 3 11173 bls .L1660 11174 ldr w1, [x20, 4] 11175 mov w2, w21 11176 adrp x0, .LC37 11177 add x0, x0, :lo12:.LC37 11178 bl printf 11179 mov w0, 1 11180 str w0, [x22, #:lo12:.LANCHOR78] 11181.L1657: 11182 mov w0, 0 11183 ldp x19, x20, [sp, 16] 11184 ldp x21, x22, [sp, 32] 11185 ldp x23, x24, [sp, 48] 11186 ldp x25, x26, [sp, 64] 11187 ldp x27, x28, [sp, 80] 11188 ldp x29, x30, [sp], 96 11189 ret 11190.L1659: 11191 ldrh w2, [x28] 11192 ldr x1, [x26], 8 11193 ldr x0, [x19, 8] 11194 mul w3, w2, w25 11195 lsl w2, w2, 2 11196 add w25, w25, 1 11197 add x0, x0, x3, sxtw 2 11198 bl ftl_memcpy 11199 b .L1658 11200.L1662: 11201 add w25, w25, 1 11202 cmp w25, 1 11203 beq .L1660 11204 cmp w0, 256 11205 beq .L1660 11206 b .L1657 11207 .size FtlBbmTblFlush, .-FtlBbmTblFlush 11208 .section .text.allocate_data_superblock,"ax",@progbits 11209 .align 2 11210 .global allocate_data_superblock 11211 .type allocate_data_superblock, %function 11212allocate_data_superblock: 11213 adrp x1, .LANCHOR78 11214 ldr w1, [x1, #:lo12:.LANCHOR78] 11215 cbnz w1, .L1736 11216 stp x29, x30, [sp, -128]! 11217 add x29, sp, 0 11218 stp x19, x20, [sp, 16] 11219 mov x19, x0 11220 stp x27, x28, [sp, 80] 11221 adrp x27, .LANCHOR87 11222 add x0, x27, :lo12:.LANCHOR87 11223 stp x23, x24, [sp, 48] 11224 str x0, [x29, 120] 11225 adrp x0, .LANCHOR90 11226 add x23, x0, :lo12:.LANCHOR90 11227 stp x21, x22, [sp, 32] 11228 stp x25, x26, [sp, 64] 11229.L1727: 11230 ldr x1, [x29, 120] 11231 adrp x0, .LANCHOR90 11232 adrp x24, .LANCHOR40 11233 ldrh w0, [x0, #:lo12:.LANCHOR90] 11234 ldrh w1, [x1] 11235 add w0, w0, w1 11236 ldrh w1, [x24, #:lo12:.LANCHOR40] 11237 cmp w0, w1 11238 ble .L1675 11239 mov w2, 3507 11240 adrp x1, .LANCHOR212 11241 adrp x0, .LC5 11242 add x1, x1, :lo12:.LANCHOR212 11243 add x0, x0, :lo12:.LC5 11244 bl printf 11245 adrp x1, .LC6 11246 adrp x0, .LC7 11247 add x1, x1, :lo12:.LC6 11248 add x0, x0, :lo12:.LC7 11249 bl printf 11250.L1675: 11251 adrp x0, .LANCHOR95 11252 add x0, x0, :lo12:.LANCHOR95 11253 cmp x19, x0 11254 bne .L1676 11255 adrp x1, .LANCHOR177 11256 ldrh w2, [x23] 11257 ldr w3, [x1, #:lo12:.LANCHOR177] 11258 lsr w0, w2, 1 11259 add w4, w0, 1 11260 mul w1, w2, w3 11261 add w1, w4, w1, lsr 2 11262 adrp x4, .LANCHOR104 11263 and w1, w1, 65535 11264 ldr w4, [x4, #:lo12:.LANCHOR104] 11265 cbz w4, .L1677 11266 adrp x4, .LANCHOR175 11267 ldr w4, [x4, #:lo12:.LANCHOR175] 11268 cmp w4, 39 11269 bhi .L1677 11270 cmp w4, 2 11271 bls .L1711 11272 tbz x2, 0, .L1707 11273 cbz w3, .L1711 11274.L1707: 11275 mov w1, w0 11276 b .L1677 11277.L1676: 11278 ldrb w0, [x19, 8] 11279 cmp w0, 1 11280 bne .L1711 11281 adrp x0, .LANCHOR44 11282 ldrh w0, [x0, #:lo12:.LANCHOR44] 11283 cmp w0, 1 11284 beq .L1711 11285 adrp x0, .LANCHOR16 11286 ldrb w0, [x0, #:lo12:.LANCHOR16] 11287 cbnz w0, .L1711 11288 adrp x2, .LANCHOR104 11289 ldrh w0, [x23] 11290 ldr w2, [x2, #:lo12:.LANCHOR104] 11291 lsr w1, w0, 3 11292 cbz w2, .L1677 11293 adrp x2, .LANCHOR175 11294 ldr w2, [x2, #:lo12:.LANCHOR175] 11295 cmp w2, 1 11296 bhi .L1677 11297 mov w1, 7 11298 mul w1, w0, w1 11299 lsr w1, w1, 3 11300.L1677: 11301 cbz w1, .L1678 11302 sub w1, w1, #1 11303 and w1, w1, 65535 11304.L1678: 11305 ldrb w2, [x19, 8] 11306 adrp x0, .LANCHOR89 11307 add x0, x0, :lo12:.LANCHOR89 11308 bl List_pop_index_node 11309 and w22, w0, 65535 11310 ldrh w0, [x23] 11311 cbnz w0, .L1679 11312 mov w2, 3532 11313 adrp x1, .LANCHOR212 11314 adrp x0, .LC5 11315 add x1, x1, :lo12:.LANCHOR212 11316 add x0, x0, :lo12:.LC5 11317 bl printf 11318 adrp x1, .LC6 11319 adrp x0, .LC7 11320 add x1, x1, :lo12:.LC6 11321 add x0, x0, :lo12:.LC7 11322 bl printf 11323.L1679: 11324 ldrh w0, [x23] 11325 sub w0, w0, #1 11326 strh w0, [x23] 11327 ldrh w0, [x24, #:lo12:.LANCHOR40] 11328 cmp w0, w22 11329 bls .L1727 11330 adrp x25, .LANCHOR85 11331 ubfiz x21, x22, 1, 16 11332 ldr x0, [x25, #:lo12:.LANCHOR85] 11333 ldrh w20, [x0, x21] 11334 cbnz w20, .L1727 11335 strh w22, [x19] 11336 mov x0, x19 11337 bl make_superblock 11338 ldrb w0, [x19, 7] 11339 cbnz w0, .L1681 11340 ldr x0, [x25, #:lo12:.LANCHOR85] 11341 mov w1, -1 11342 strh w1, [x0, x21] 11343 ldrh w1, [x27, #:lo12:.LANCHOR87] 11344 ldrh w0, [x23] 11345 add w0, w0, w1 11346 ldrh w1, [x24, #:lo12:.LANCHOR40] 11347 cmp w0, w1 11348 ble .L1727 11349 mov w2, 3552 11350 adrp x1, .LANCHOR212 11351 adrp x0, .LC5 11352 add x1, x1, :lo12:.LANCHOR212 11353 add x0, x0, :lo12:.LC5 11354 bl printf 11355 adrp x1, .LC6 11356 adrp x0, .LC7 11357 add x1, x1, :lo12:.LC6 11358 add x0, x0, :lo12:.LC7 11359 bl printf 11360 b .L1727 11361.L1711: 11362 mov w1, 0 11363 b .L1678 11364.L1681: 11365 ldrh w1, [x27, #:lo12:.LANCHOR87] 11366 ldrh w0, [x23] 11367 add w0, w0, w1 11368 ldrh w1, [x24, #:lo12:.LANCHOR40] 11369 cmp w0, w1 11370 ble .L1683 11371 mov w2, 3556 11372 adrp x1, .LANCHOR212 11373 adrp x0, .LC5 11374 add x1, x1, :lo12:.LANCHOR212 11375 add x0, x0, :lo12:.LC5 11376 bl printf 11377 adrp x1, .LC6 11378 adrp x0, .LC7 11379 add x1, x1, :lo12:.LC6 11380 add x0, x0, :lo12:.LC7 11381 bl printf 11382.L1683: 11383 adrp x1, .LANCHOR38 11384 adrp x25, .LANCHOR79 11385 mov w2, 56 11386 mov x3, 8 11387 ldrh w1, [x1, #:lo12:.LANCHOR38] 11388 add x26, x19, 16 11389 ldr x4, [x25, #:lo12:.LANCHOR79] 11390 mov x5, x26 11391 mov w6, 65535 11392 add x0, x4, 8 11393 umaddl x1, w2, w1, x3 11394 add x1, x4, x1 11395.L1684: 11396 cmp x1, x0 11397 bne .L1686 11398 cbnz w20, .L1687 11399 mov w2, 3571 11400 adrp x1, .LANCHOR212 11401 adrp x0, .LC5 11402 add x1, x1, :lo12:.LANCHOR212 11403 add x0, x0, :lo12:.LC5 11404 bl printf 11405 adrp x1, .LC6 11406 adrp x0, .LC7 11407 add x1, x1, :lo12:.LC6 11408 add x0, x0, :lo12:.LC7 11409 bl printf 11410.L1687: 11411 adrp x0, .LANCHOR104 11412 adrp x28, .LANCHOR80 11413 ldr w0, [x0, #:lo12:.LANCHOR104] 11414 cbz w0, .L1688 11415 adrp x0, .LANCHOR93 11416 add x0, x0, :lo12:.LANCHOR93 11417 cmp x19, x0 11418 bne .L1688 11419 ldr x0, [x28, #:lo12:.LANCHOR80] 11420 ldrh w0, [x0, x21] 11421 cmp w0, 40 11422 bls .L1688 11423 strb wzr, [x19, 8] 11424.L1688: 11425 adrp x0, .LANCHOR213 11426 ldrh w0, [x0, #:lo12:.LANCHOR213] 11427 cmp w0, w22 11428 bne .L1689 11429 mov w2, 3578 11430 adrp x1, .LANCHOR212 11431 adrp x0, .LC5 11432 add x1, x1, :lo12:.LANCHOR212 11433 add x0, x0, :lo12:.LC5 11434 bl printf 11435 adrp x1, .LC6 11436 adrp x0, .LC7 11437 add x1, x1, :lo12:.LC6 11438 add x0, x0, :lo12:.LC7 11439 bl printf 11440.L1689: 11441 ldrb w0, [x19, 8] 11442 adrp x6, .LANCHOR48 11443 adrp x5, .LANCHOR172 11444 adrp x4, .LANCHOR173 11445 ldr x1, [x28, #:lo12:.LANCHOR80] 11446 cbnz w0, .L1690 11447 ldrh w0, [x1, x21] 11448 cbz w0, .L1691 11449 ldrh w2, [x6, #:lo12:.LANCHOR48] 11450 add w0, w0, w2 11451.L1739: 11452 strh w0, [x1, x21] 11453 mov w1, 0 11454 ldr w0, [x5, #:lo12:.LANCHOR172] 11455 add w0, w0, 1 11456 str w0, [x5, #:lo12:.LANCHOR172] 11457 mov w0, w22 11458 bl ftl_set_blk_mode 11459.L1693: 11460 ldr x0, [x28, #:lo12:.LANCHOR80] 11461 ldrh w1, [x0, x21] 11462 adrp x0, .LANCHOR174 11463 ldr w2, [x0, #:lo12:.LANCHOR174] 11464 cmp w1, w2 11465 bls .L1694 11466 str w1, [x0, #:lo12:.LANCHOR174] 11467.L1694: 11468 ldr w2, [x5, #:lo12:.LANCHOR172] 11469 mov x3, 4 11470 ldr w1, [x4, #:lo12:.LANCHOR173] 11471 ldrh w0, [x6, #:lo12:.LANCHOR48] 11472 madd w0, w0, w2, w1 11473 ldrh w1, [x24, #:lo12:.LANCHOR40] 11474 udiv w0, w0, w1 11475 adrp x1, .LANCHOR214 11476 str w0, [x1, #:lo12:.LANCHOR214] 11477 adrp x0, .LANCHOR199 11478 ldr x1, [x0, #:lo12:.LANCHOR199] 11479 ldr w0, [x1, 16] 11480 add w0, w0, 1 11481 str w0, [x1, 16] 11482 mov w1, 56 11483 ldr x0, [x25, #:lo12:.LANCHOR79] 11484 nop // between mem op and mult-accumulate 11485 umaddl x1, w1, w20, x3 11486 add x2, x0, 4 11487 add x1, x0, x1 11488.L1695: 11489 cmp x1, x2 11490 bne .L1696 11491 adrp x1, .LANCHOR16 11492 ldrb w1, [x1, #:lo12:.LANCHOR16] 11493 cbz w1, .L1697 11494 ldrb w1, [x19, 8] 11495 mov w2, w20 11496 cmp w1, 1 11497 bne .L1698 11498 mov w1, 0 11499.L1740: 11500 bl FlashEraseBlocks 11501.L1697: 11502 ldrb w1, [x19, 8] 11503 mov w2, w20 11504 ldr x0, [x25, #:lo12:.LANCHOR79] 11505 mov x24, 0 11506 bl FlashEraseBlocks 11507 mov w1, 0 11508 mov x3, 56 11509.L1699: 11510 cmp w20, w24, uxth 11511 bhi .L1701 11512 cbz w1, .L1702 11513 mov w0, w22 11514 bl update_multiplier_value 11515 bl FtlBbmTblFlush 11516.L1702: 11517 ldrb w0, [x19, 7] 11518 cbnz w0, .L1703 11519 adrp x0, .LANCHOR85 11520 mov w1, -1 11521 ldr x0, [x0, #:lo12:.LANCHOR85] 11522 strh w1, [x0, x21] 11523 b .L1727 11524.L1686: 11525 ldrh w3, [x5] 11526 stp xzr, xzr, [x0] 11527 cmp w3, w6 11528 beq .L1685 11529 umaddl x7, w20, w2, x4 11530 add w20, w20, 1 11531 and w20, w20, 65535 11532 lsl w3, w3, 10 11533 str w3, [x7, 4] 11534.L1685: 11535 add x0, x0, 56 11536 add x5, x5, 2 11537 b .L1684 11538.L1691: 11539 mov w0, 2 11540 b .L1739 11541.L1690: 11542 ldrh w0, [x1, x21] 11543 add w0, w0, 1 11544 strh w0, [x1, x21] 11545 ldr w0, [x4, #:lo12:.LANCHOR173] 11546 add w0, w0, 1 11547 str w0, [x4, #:lo12:.LANCHOR173] 11548 mov w0, w22 11549 bl ftl_set_blk_mode.part.11 11550 b .L1693 11551.L1696: 11552 ldr w3, [x2] 11553 and w3, w3, -1024 11554 str w3, [x2], 56 11555 b .L1695 11556.L1698: 11557 mov w1, 1 11558 b .L1740 11559.L1701: 11560 mul x0, x24, x3 11561 ldr x2, [x25, #:lo12:.LANCHOR79] 11562 add x4, x2, x0 11563 ldr w2, [x2, x0] 11564 cmn w2, #1 11565 bne .L1700 11566 add w1, w1, 1 11567 ldr w0, [x4, 4] 11568 str x3, [x29, 104] 11569 stp w2, w1, [x29, 112] 11570 lsr w0, w0, 10 11571 bl FtlBbmMapBadBlock 11572 ldp w2, w1, [x29, 112] 11573 strh w2, [x26] 11574 ldr x3, [x29, 104] 11575 ldrb w0, [x19, 7] 11576 sub w0, w0, #1 11577 strb w0, [x19, 7] 11578.L1700: 11579 add x24, x24, 1 11580 add x26, x26, 2 11581 b .L1699 11582.L1703: 11583 adrp x1, .LANCHOR52 11584 adrp x2, .LANCHOR164 11585 strh wzr, [x19, 2] 11586 ldrh w1, [x1, #:lo12:.LANCHOR52] 11587 strh w22, [x19] 11588 strb wzr, [x19, 6] 11589 mul w0, w0, w1 11590 ldr w1, [x2, #:lo12:.LANCHOR164] 11591 str w1, [x19, 12] 11592 add w1, w1, 1 11593 str w1, [x2, #:lo12:.LANCHOR164] 11594 adrp x1, .LANCHOR85 11595 and w0, w0, 65535 11596 strh w0, [x19, 4] 11597 ldr x1, [x1, #:lo12:.LANCHOR85] 11598 strh w0, [x1, x21] 11599 ldrh w0, [x19, 4] 11600 cbz w0, .L1704 11601 ldrb w0, [x19, 7] 11602 cbnz w0, .L1674 11603.L1704: 11604 mov w2, 3642 11605 adrp x1, .LANCHOR212 11606 adrp x0, .LC5 11607 add x1, x1, :lo12:.LANCHOR212 11608 add x0, x0, :lo12:.LC5 11609 bl printf 11610 adrp x1, .LC6 11611 adrp x0, .LC7 11612 add x1, x1, :lo12:.LC6 11613 add x0, x0, :lo12:.LC7 11614 bl printf 11615.L1674: 11616 ldp x19, x20, [sp, 16] 11617 mov w0, 0 11618 ldp x21, x22, [sp, 32] 11619 ldp x23, x24, [sp, 48] 11620 ldp x25, x26, [sp, 64] 11621 ldp x27, x28, [sp, 80] 11622 ldp x29, x30, [sp], 128 11623 ret 11624.L1736: 11625 mov w0, 0 11626 ret 11627 .size allocate_data_superblock, .-allocate_data_superblock 11628 .section .text.FtlGcFreeBadSuperBlk,"ax",@progbits 11629 .align 2 11630 .global FtlGcFreeBadSuperBlk 11631 .type FtlGcFreeBadSuperBlk, %function 11632FtlGcFreeBadSuperBlk: 11633 stp x29, x30, [sp, -96]! 11634 add x29, sp, 0 11635 stp x21, x22, [sp, 32] 11636 adrp x21, .LANCHOR119 11637 stp x25, x26, [sp, 64] 11638 and w25, w0, 65535 11639 ldrh w0, [x21, #:lo12:.LANCHOR119] 11640 stp x19, x20, [sp, 16] 11641 stp x23, x24, [sp, 48] 11642 str x27, [sp, 80] 11643 cbz w0, .L1742 11644 adrp x23, .LANCHOR120 11645 add x24, x23, :lo12:.LANCHOR120 11646 mov w19, 0 11647.L1743: 11648 adrp x0, .LANCHOR38 11649 ldrh w0, [x0, #:lo12:.LANCHOR38] 11650 cmp w0, w19 11651 bhi .L1749 11652 bl FtlGcReFreshBadBlk 11653.L1742: 11654 mov w0, 0 11655 ldr x27, [sp, 80] 11656 ldp x19, x20, [sp, 16] 11657 ldp x21, x22, [sp, 32] 11658 ldp x23, x24, [sp, 48] 11659 ldp x25, x26, [sp, 64] 11660 ldp x29, x30, [sp], 96 11661 ret 11662.L1749: 11663 adrp x0, .LANCHOR47 11664 add x0, x0, :lo12:.LANCHOR47 11665 mov w1, w25 11666 add x22, x21, :lo12:.LANCHOR119 11667 mov w20, 0 11668 ldrb w0, [x0, w19, sxtw] 11669 bl V2P_block 11670 and w26, w0, 65535 11671.L1744: 11672 ldrh w0, [x22] 11673 cmp w0, w20 11674 bhi .L1748 11675 add w19, w19, 1 11676 and w19, w19, 65535 11677 b .L1743 11678.L1748: 11679 add x0, x23, :lo12:.LANCHOR120 11680 add w27, w20, 1 11681 ldrh w0, [x0, w20, sxtw 1] 11682 cmp w0, w26 11683 bne .L1745 11684 mov w0, w26 11685 bl FtlBbmMapBadBlock 11686 bl FtlBbmTblFlush 11687 ldrh w1, [x22] 11688 sxtw x3, w27 11689 and x4, x20, 65535 11690 mov x0, 0 11691.L1746: 11692 add w2, w20, w0 11693 cmp w1, w2, uxth 11694 bhi .L1747 11695 sub w1, w1, #1 11696 strh w1, [x22] 11697.L1745: 11698 and w20, w27, 65535 11699 b .L1744 11700.L1747: 11701 add x2, x3, x0 11702 ldrh w5, [x24, x2, lsl 1] 11703 add x2, x4, x0 11704 add x0, x0, 1 11705 strh w5, [x24, x2, lsl 1] 11706 b .L1746 11707 .size FtlGcFreeBadSuperBlk, .-FtlGcFreeBadSuperBlk 11708 .section .text.update_vpc_list,"ax",@progbits 11709 .align 2 11710 .global update_vpc_list 11711 .type update_vpc_list, %function 11712update_vpc_list: 11713 stp x29, x30, [sp, -32]! 11714 adrp x1, .LANCHOR85 11715 add x29, sp, 0 11716 stp x19, x20, [sp, 16] 11717 and w19, w0, 65535 11718 ldr x1, [x1, #:lo12:.LANCHOR85] 11719 ubfiz x0, x19, 1, 16 11720 ldrh w0, [x1, x0] 11721 cbnz w0, .L1755 11722 adrp x0, .LANCHOR213 11723 ldrh w1, [x0, #:lo12:.LANCHOR213] 11724 cmp w1, w19 11725 bne .L1756 11726 mov w1, -1 11727 strh w1, [x0, #:lo12:.LANCHOR213] 11728.L1757: 11729 adrp x20, .LANCHOR87 11730 mov w1, w19 11731 adrp x0, .LANCHOR84 11732 add x0, x0, :lo12:.LANCHOR84 11733 bl List_remove_node 11734 ldrh w0, [x20, #:lo12:.LANCHOR87] 11735 cbnz w0, .L1759 11736 mov w2, 3767 11737 adrp x1, .LANCHOR215 11738 adrp x0, .LC5 11739 add x1, x1, :lo12:.LANCHOR215 11740 add x0, x0, :lo12:.LC5 11741 bl printf 11742 adrp x1, .LC6 11743 adrp x0, .LC7 11744 add x1, x1, :lo12:.LC6 11745 add x0, x0, :lo12:.LC7 11746 bl printf 11747.L1759: 11748 ldrh w0, [x20, #:lo12:.LANCHOR87] 11749 sub w0, w0, #1 11750 strh w0, [x20, #:lo12:.LANCHOR87] 11751 mov w0, w19 11752 bl free_data_superblock 11753 mov w0, w19 11754 bl FtlGcFreeBadSuperBlk 11755 adrp x0, .LANCHOR90 11756 ldrh w1, [x20, #:lo12:.LANCHOR87] 11757 ldrh w0, [x0, #:lo12:.LANCHOR90] 11758 add w0, w0, w1 11759 adrp x1, .LANCHOR40 11760 ldrh w1, [x1, #:lo12:.LANCHOR40] 11761 cmp w0, w1 11762 ble .L1763 11763 mov w2, 3770 11764 adrp x1, .LANCHOR215 11765 adrp x0, .LC5 11766 add x1, x1, :lo12:.LANCHOR215 11767 add x0, x0, :lo12:.LC5 11768 bl printf 11769 adrp x1, .LC6 11770 adrp x0, .LC7 11771 add x1, x1, :lo12:.LC6 11772 add x0, x0, :lo12:.LC7 11773 bl printf 11774.L1763: 11775 mov w0, 1 11776 b .L1754 11777.L1756: 11778 adrp x0, .LANCHOR93 11779 ldrh w0, [x0, #:lo12:.LANCHOR93] 11780 cmp w0, w19 11781 beq .L1762 11782 adrp x0, .LANCHOR94 11783 ldrh w0, [x0, #:lo12:.LANCHOR94] 11784 cmp w0, w19 11785 beq .L1762 11786 adrp x0, .LANCHOR95 11787 ldrh w0, [x0, #:lo12:.LANCHOR95] 11788 cmp w0, w19 11789 bne .L1757 11790.L1762: 11791 mov w0, 0 11792.L1754: 11793 ldp x19, x20, [sp, 16] 11794 ldp x29, x30, [sp], 32 11795 ret 11796.L1755: 11797 mov w0, w19 11798 bl List_update_data_list 11799 b .L1762 11800 .size update_vpc_list, .-update_vpc_list 11801 .section .text.decrement_vpc_count,"ax",@progbits 11802 .align 2 11803 .global decrement_vpc_count 11804 .type decrement_vpc_count, %function 11805decrement_vpc_count: 11806 stp x29, x30, [sp, -48]! 11807 add x29, sp, 0 11808 stp x19, x20, [sp, 16] 11809 and w19, w0, 65535 11810 stp x21, x22, [sp, 32] 11811 mov w0, 65535 11812 cmp w19, w0 11813 beq .L1766 11814 adrp x20, .LANCHOR85 11815 ubfiz x21, x19, 1, 16 11816 ldr x1, [x20, #:lo12:.LANCHOR85] 11817 ldrh w0, [x1, x21] 11818 cbnz w0, .L1767 11819 mov w2, 0 11820 mov w1, w19 11821 adrp x0, .LC38 11822 add x0, x0, :lo12:.LC38 11823 bl printf 11824 ldr x0, [x20, #:lo12:.LANCHOR85] 11825 ldrh w0, [x0, x21] 11826 cbnz w0, .L1768 11827 mov w2, 3786 11828 adrp x1, .LANCHOR216 11829 adrp x0, .LC5 11830 add x1, x1, :lo12:.LANCHOR216 11831 add x0, x0, :lo12:.LC5 11832 bl printf 11833 adrp x1, .LC6 11834 adrp x0, .LC7 11835 add x1, x1, :lo12:.LC6 11836 add x0, x0, :lo12:.LC7 11837 bl printf 11838.L1768: 11839 ldr x0, [x20, #:lo12:.LANCHOR85] 11840 adrp x6, .LANCHOR89 11841 add x6, x6, :lo12:.LANCHOR89 11842 mov w1, 32 11843 strh w1, [x0, x21] 11844 mov w1, w19 11845 mov x0, x6 11846 bl test_node_in_list 11847 cbz w0, .L1769 11848 adrp x22, .LANCHOR90 11849 mov w1, w19 11850 mov x0, x6 11851 bl List_remove_node 11852 ldrh w0, [x22, #:lo12:.LANCHOR90] 11853 cbnz w0, .L1770 11854 mov w2, 3792 11855 adrp x1, .LANCHOR216 11856 adrp x0, .LC5 11857 add x1, x1, :lo12:.LANCHOR216 11858 add x0, x0, :lo12:.LC5 11859 bl printf 11860 adrp x1, .LC6 11861 adrp x0, .LC7 11862 add x1, x1, :lo12:.LC6 11863 add x0, x0, :lo12:.LC7 11864 bl printf 11865.L1770: 11866 ldrh w0, [x22, #:lo12:.LANCHOR90] 11867 sub w0, w0, #1 11868 strh w0, [x22, #:lo12:.LANCHOR90] 11869 mov w0, w19 11870 bl INSERT_DATA_LIST 11871 ldr x0, [x20, #:lo12:.LANCHOR85] 11872 mov w1, w19 11873 ldrh w2, [x0, x21] 11874 adrp x0, .LC39 11875 add x0, x0, :lo12:.LC39 11876 bl printf 11877.L1769: 11878 mov w0, w19 11879 bl FtlGcRefreshBlock 11880.L1773: 11881 mov w20, 0 11882 b .L1765 11883.L1767: 11884 sub w0, w0, #1 11885 strh w0, [x1, x21] 11886.L1766: 11887 adrp x21, .LANCHOR136 11888 mov w1, 65535 11889 ldrh w0, [x21, #:lo12:.LANCHOR136] 11890 cmp w0, w1 11891 bne .L1772 11892 strh w19, [x21, #:lo12:.LANCHOR136] 11893 b .L1773 11894.L1772: 11895 cmp w19, w0 11896 beq .L1773 11897 bl update_vpc_list 11898 cmp w0, 0 11899 adrp x1, .LANCHOR83 11900 adrp x0, .LANCHOR84 11901 strh w19, [x21, #:lo12:.LANCHOR136] 11902 cset w20, ne 11903 ldr x1, [x1, #:lo12:.LANCHOR83] 11904 ldr x0, [x0, #:lo12:.LANCHOR84] 11905 sub x0, x0, x1 11906 mov x1, -6148914691236517206 11907 asr x0, x0, 1 11908 movk x1, 0xaaab, lsl 0 11909 mul x0, x0, x1 11910 adrp x1, .LANCHOR85 11911 ldr x1, [x1, #:lo12:.LANCHOR85] 11912 and x2, x0, 65535 11913 ldrh w1, [x1, x2, lsl 1] 11914 cbnz w1, .L1765 11915 cmp w19, w0, uxth 11916 beq .L1765 11917 mov w2, 3816 11918 adrp x1, .LANCHOR216 11919 adrp x0, .LC5 11920 add x1, x1, :lo12:.LANCHOR216 11921 add x0, x0, :lo12:.LC5 11922 bl printf 11923 adrp x1, .LC6 11924 adrp x0, .LC7 11925 add x1, x1, :lo12:.LC6 11926 add x0, x0, :lo12:.LC7 11927 bl printf 11928.L1765: 11929 mov w0, w20 11930 ldp x19, x20, [sp, 16] 11931 ldp x21, x22, [sp, 32] 11932 ldp x29, x30, [sp], 48 11933 ret 11934 .size decrement_vpc_count, .-decrement_vpc_count 11935 .section .text.FtlSlcSuperblockCheck,"ax",@progbits 11936 .align 2 11937 .global FtlSlcSuperblockCheck 11938 .type FtlSlcSuperblockCheck, %function 11939FtlSlcSuperblockCheck: 11940 ldrh w1, [x0, 4] 11941 cbz w1, .L1790 11942 stp x29, x30, [sp, -64]! 11943 add x29, sp, 0 11944 stp x19, x20, [sp, 16] 11945 mov w20, 65535 11946 ldrh w1, [x0] 11947 stp x21, x22, [sp, 32] 11948 str x23, [sp, 48] 11949 cmp w1, w20 11950 beq .L1778 11951 mov x19, x0 11952 ldrb w0, [x0, 6] 11953 adrp x22, .LANCHOR16 11954 adrp x21, .LANCHOR123 11955 add x0, x0, 8 11956 add x23, x22, :lo12:.LANCHOR16 11957 add x21, x21, :lo12:.LANCHOR123 11958 ldrh w0, [x19, x0, lsl 1] 11959.L1782: 11960 cmp w0, w20 11961 beq .L1784 11962 ldrb w0, [x19, 8] 11963 cmp w0, 1 11964 bne .L1785 11965 ldrb w1, [x23] 11966 cbnz w1, .L1785 11967 ldrh w1, [x19, 2] 11968 ldrh w1, [x21, x1, lsl 1] 11969 cmp w1, w20 11970 bne .L1785 11971 ldrh w0, [x19, 4] 11972 sub w0, w0, #1 11973 strh w0, [x19, 4] 11974 ldrh w0, [x19] 11975 bl decrement_vpc_count 11976 ldrh w0, [x19, 4] 11977 cbnz w0, .L1784 11978 ldrh w0, [x19, 2] 11979 add w0, w0, 1 11980.L1793: 11981 strh w0, [x19, 2] 11982 strb wzr, [x19, 6] 11983.L1778: 11984 ldp x19, x20, [sp, 16] 11985 ldp x21, x22, [sp, 32] 11986 ldr x23, [sp, 48] 11987 ldp x29, x30, [sp], 64 11988 ret 11989.L1784: 11990 ldrb w0, [x19, 6] 11991 adrp x1, .LANCHOR38 11992 add w0, w0, 1 11993 ldrh w1, [x1, #:lo12:.LANCHOR38] 11994 and w0, w0, 255 11995 strb w0, [x19, 6] 11996 cmp w1, w0 11997 bne .L1783 11998 ldrh w0, [x19, 2] 11999 strb wzr, [x19, 6] 12000 add w0, w0, 1 12001 strh w0, [x19, 2] 12002.L1783: 12003 ldrb w0, [x19, 6] 12004 add x0, x0, 8 12005 ldrh w0, [x19, x0, lsl 1] 12006 b .L1782 12007.L1785: 12008 ldrb w1, [x22, #:lo12:.LANCHOR16] 12009 cbz w1, .L1778 12010 cmp w0, 1 12011 bne .L1778 12012 adrp x0, .LANCHOR53 12013 ldrh w1, [x19, 2] 12014 ldrh w0, [x0, #:lo12:.LANCHOR53] 12015 cmp w1, w0 12016 bcc .L1778 12017 ldrh w0, [x19] 12018 adrp x1, .LANCHOR85 12019 ldrh w3, [x19, 4] 12020 ldr x2, [x1, #:lo12:.LANCHOR85] 12021 lsl x0, x0, 1 12022 ldrh w1, [x2, x0] 12023 sub w1, w1, w3 12024 strh w1, [x2, x0] 12025 adrp x0, .LANCHOR52 12026 strh wzr, [x19, 4] 12027 ldrh w0, [x0, #:lo12:.LANCHOR52] 12028 b .L1793 12029.L1790: 12030 ret 12031 .size FtlSlcSuperblockCheck, .-FtlSlcSuperblockCheck 12032 .section .text.get_new_active_ppa,"ax",@progbits 12033 .align 2 12034 .global get_new_active_ppa 12035 .type get_new_active_ppa, %function 12036get_new_active_ppa: 12037 stp x29, x30, [sp, -80]! 12038 add x29, sp, 0 12039 stp x19, x20, [sp, 16] 12040 mov x19, x0 12041 ldrh w1, [x0] 12042 mov w0, 65535 12043 stp x21, x22, [sp, 32] 12044 stp x23, x24, [sp, 48] 12045 cmp w1, w0 12046 str x25, [sp, 64] 12047 bne .L1795 12048 mov w2, 3700 12049 adrp x1, .LANCHOR217 12050 adrp x0, .LC5 12051 add x1, x1, :lo12:.LANCHOR217 12052 add x0, x0, :lo12:.LC5 12053 bl printf 12054 adrp x1, .LC6 12055 adrp x0, .LC7 12056 add x1, x1, :lo12:.LC6 12057 add x0, x0, :lo12:.LC7 12058 bl printf 12059.L1795: 12060 adrp x20, .LANCHOR52 12061 ldrh w1, [x19, 2] 12062 ldrh w0, [x20, #:lo12:.LANCHOR52] 12063 cmp w1, w0 12064 bne .L1796 12065 mov w2, 3701 12066 adrp x1, .LANCHOR217 12067 adrp x0, .LC5 12068 add x1, x1, :lo12:.LANCHOR217 12069 add x0, x0, :lo12:.LC5 12070 bl printf 12071 adrp x1, .LC6 12072 adrp x0, .LC7 12073 add x1, x1, :lo12:.LC6 12074 add x0, x0, :lo12:.LC7 12075 bl printf 12076.L1796: 12077 ldrh w0, [x19, 4] 12078 cbnz w0, .L1797 12079 mov w2, 3702 12080 adrp x1, .LANCHOR217 12081 adrp x0, .LC5 12082 add x1, x1, :lo12:.LANCHOR217 12083 add x0, x0, :lo12:.LC5 12084 bl printf 12085 adrp x1, .LC6 12086 adrp x0, .LC7 12087 add x1, x1, :lo12:.LC6 12088 add x0, x0, :lo12:.LC7 12089 bl printf 12090.L1797: 12091 ldrb w0, [x19, 6] 12092 adrp x21, .LANCHOR38 12093 strb wzr, [x19, 10] 12094 adrp x23, .LANCHOR16 12095 add x0, x0, 8 12096 adrp x24, .LANCHOR123 12097 add x23, x23, :lo12:.LANCHOR16 12098 add x24, x24, :lo12:.LANCHOR123 12099 add x25, x21, :lo12:.LANCHOR38 12100 ldrh w22, [x19, x0, lsl 1] 12101.L1798: 12102 mov w2, 65535 12103 cmp w22, w2 12104 beq .L1799 12105 ldrb w0, [x19, 8] 12106 ldrh w1, [x19, 4] 12107 cmp w0, 1 12108 ldrh w0, [x19, 2] 12109 bne .L1801 12110 ldrb w3, [x23] 12111 cbnz w3, .L1801 12112 ldrh w3, [x24, w0, sxtw 1] 12113 cmp w3, w2 12114 bne .L1801 12115 ldrh w0, [x19] 12116 sub w1, w1, #1 12117 strh w1, [x19, 4] 12118 bl decrement_vpc_count 12119.L1799: 12120 ldrb w0, [x19, 6] 12121 ldrh w1, [x25] 12122 add w0, w0, 1 12123 and w0, w0, 255 12124 strb w0, [x19, 6] 12125 cmp w1, w0 12126 bne .L1800 12127 ldrh w0, [x19, 2] 12128 strb wzr, [x19, 6] 12129 add w0, w0, 1 12130 strh w0, [x19, 2] 12131.L1800: 12132 ldrb w0, [x19, 6] 12133 add x0, x0, 8 12134 ldrh w22, [x19, x0, lsl 1] 12135 b .L1798 12136.L1801: 12137 adrp x23, .LANCHOR16 12138 adrp x24, .LANCHOR123 12139 orr w22, w0, w22, lsl 10 12140 add x23, x23, :lo12:.LANCHOR16 12141 add x24, x24, :lo12:.LANCHOR123 12142 sub w1, w1, #1 12143 strh w1, [x19, 4] 12144.L1802: 12145 ldrb w0, [x19, 6] 12146 mov w1, 65535 12147 ldrh w3, [x21, #:lo12:.LANCHOR38] 12148.L1804: 12149 add w0, w0, 1 12150 and w0, w0, 255 12151 cmp w0, w3 12152 bne .L1803 12153 ldrh w0, [x19, 2] 12154 add w0, w0, 1 12155 strh w0, [x19, 2] 12156 mov w0, 0 12157.L1803: 12158 add x2, x19, x0, sxtw 1 12159 ldrh w2, [x2, 16] 12160 cmp w2, w1 12161 beq .L1804 12162 strb w0, [x19, 6] 12163 ldrb w0, [x19, 8] 12164 cmp w0, 1 12165 bne .L1805 12166 ldrb w2, [x23] 12167 ldrh w0, [x19, 2] 12168 cbnz w2, .L1806 12169 ldrh w0, [x24, w0, sxtw 1] 12170 cmp w0, w1 12171 bne .L1805 12172 ldrh w0, [x19, 4] 12173 cbz w0, .L1805 12174 sub w0, w0, #1 12175 strh w0, [x19, 4] 12176 ldrh w0, [x19] 12177 bl decrement_vpc_count 12178 b .L1802 12179.L1806: 12180 adrp x1, .LANCHOR53 12181 ldrh w1, [x1, #:lo12:.LANCHOR53] 12182 cmp w0, w1 12183 bcc .L1805 12184 ldrh w0, [x19] 12185 adrp x1, .LANCHOR85 12186 ldrh w3, [x19, 4] 12187 ldr x2, [x1, #:lo12:.LANCHOR85] 12188 lsl x0, x0, 1 12189 ldrh w1, [x2, x0] 12190 sub w1, w1, w3 12191 strh w1, [x2, x0] 12192 strh wzr, [x19, 4] 12193 ldrh w0, [x20, #:lo12:.LANCHOR52] 12194 strh w0, [x19, 2] 12195 strb wzr, [x19, 6] 12196.L1805: 12197 ldrh w1, [x19, 2] 12198 ldrh w0, [x20, #:lo12:.LANCHOR52] 12199 cmp w1, w0 12200 bne .L1794 12201 ldrh w0, [x19, 4] 12202 cbz w0, .L1794 12203 mov w2, 3752 12204 adrp x1, .LANCHOR217 12205 adrp x0, .LC5 12206 add x1, x1, :lo12:.LANCHOR217 12207 add x0, x0, :lo12:.LC5 12208 bl printf 12209 adrp x1, .LC6 12210 adrp x0, .LC7 12211 add x1, x1, :lo12:.LC6 12212 add x0, x0, :lo12:.LC7 12213 bl printf 12214.L1794: 12215 mov w0, w22 12216 ldr x25, [sp, 64] 12217 ldp x19, x20, [sp, 16] 12218 ldp x21, x22, [sp, 32] 12219 ldp x23, x24, [sp, 48] 12220 ldp x29, x30, [sp], 80 12221 ret 12222 .size get_new_active_ppa, .-get_new_active_ppa 12223 .section .text.FtlVpcTblFlush,"ax",@progbits 12224 .align 2 12225 .global FtlVpcTblFlush 12226 .type FtlVpcTblFlush, %function 12227FtlVpcTblFlush: 12228 stp x29, x30, [sp, -128]! 12229 adrp x0, .LANCHOR78 12230 add x29, sp, 0 12231 ldr w1, [x0, #:lo12:.LANCHOR78] 12232 stp x19, x20, [sp, 16] 12233 stp x21, x22, [sp, 32] 12234 stp x23, x24, [sp, 48] 12235 stp x25, x26, [sp, 64] 12236 stp x27, x28, [sp, 80] 12237 str x0, [x29, 112] 12238 cbnz w1, .L1819 12239 adrp x25, .LANCHOR195 12240 adrp x27, .LANCHOR218 12241 adrp x23, .LANCHOR189 12242 adrp x20, .LANCHOR211 12243 ldr x19, [x25, #:lo12:.LANCHOR195] 12244 add x22, x20, :lo12:.LANCHOR211 12245 ldr x0, [x23, #:lo12:.LANCHOR189] 12246 add x1, x27, :lo12:.LANCHOR218 12247 ldrh w2, [x27, #:lo12:.LANCHOR218] 12248 mov w3, 19539 12249 stp x0, x19, [x22, 8] 12250 movk w3, 0x4654, lsl 16 12251 strh w2, [x19, 2] 12252 mov w2, -3932 12253 strh w2, [x19] 12254 adrp x24, .LANCHOR164 12255 ldr w2, [x1, 8] 12256 adrp x26, .LANCHOR57 12257 ldrh w1, [x1, 6] 12258 stp w2, wzr, [x19, 4] 12259 adrp x2, .LANCHOR82 12260 add x21, x2, :lo12:.LANCHOR82 12261 str wzr, [x19, 12] 12262 str w3, [x2, #:lo12:.LANCHOR82] 12263 mov w2, 99 12264 movk w2, 0x5000, lsl 16 12265 strh w1, [x21, 8] 12266 adrp x1, .LANCHOR45 12267 str w2, [x21, 4] 12268 adrp x2, .LANCHOR93 12269 ldrh w1, [x1, #:lo12:.LANCHOR45] 12270 strb w1, [x21, 10] 12271 add x1, x2, :lo12:.LANCHOR93 12272 ldrh w2, [x2, #:lo12:.LANCHOR93] 12273 strh w2, [x21, 14] 12274 ldrb w3, [x1, 6] 12275 ldrh w2, [x1, 2] 12276 ldrb w1, [x1, 8] 12277 strb w1, [x21, 11] 12278 orr w2, w3, w2, lsl 6 12279 strh w2, [x21, 16] 12280 adrp x2, .LANCHOR94 12281 add x1, x2, :lo12:.LANCHOR94 12282 ldrh w2, [x2, #:lo12:.LANCHOR94] 12283 ldrb w3, [x1, 6] 12284 strh w2, [x21, 18] 12285 ldrh w2, [x1, 2] 12286 ldrb w1, [x1, 8] 12287 strb w1, [x21, 12] 12288 orr w2, w3, w2, lsl 6 12289 strh w2, [x21, 20] 12290 adrp x2, .LANCHOR95 12291 add x1, x2, :lo12:.LANCHOR95 12292 ldrh w2, [x2, #:lo12:.LANCHOR95] 12293 strh w2, [x21, 22] 12294 ldrb w3, [x1, 6] 12295 ldrh w2, [x1, 2] 12296 ldrb w1, [x1, 8] 12297 strb w1, [x21, 13] 12298 adrp x1, .LANCHOR172 12299 orr w2, w3, w2, lsl 6 12300 strh w2, [x21, 24] 12301 ldr w1, [x1, #:lo12:.LANCHOR172] 12302 str w1, [x21, 32] 12303 ldr w1, [x24, #:lo12:.LANCHOR164] 12304 str w1, [x21, 40] 12305 adrp x1, .LANCHOR165 12306 ldrh w2, [x26, #:lo12:.LANCHOR57] 12307 ldr w1, [x1, #:lo12:.LANCHOR165] 12308 str w1, [x21, 36] 12309 adrp x1, .LANCHOR115 12310 ldrh w1, [x1, #:lo12:.LANCHOR115] 12311 strh w1, [x21, 44] 12312 adrp x1, .LANCHOR116 12313 ldrh w1, [x1, #:lo12:.LANCHOR116] 12314 strh w1, [x21, 46] 12315 mov w1, 255 12316 bl ftl_memset 12317 ldr x0, [x22, 8] 12318 mov x1, x21 12319 mov w2, 48 12320 adrp x21, .LANCHOR40 12321 bl ftl_memcpy 12322 adrp x1, .LANCHOR85 12323 ldrh w2, [x21, #:lo12:.LANCHOR40] 12324 ldr x0, [x22, 8] 12325 ldr x1, [x1, #:lo12:.LANCHOR85] 12326 lsl w2, w2, 1 12327 add x0, x0, 48 12328 bl ftl_memcpy 12329 ldrh w0, [x21, #:lo12:.LANCHOR40] 12330 adrp x1, .LANCHOR1 12331 ldr x3, [x22, 8] 12332 ldr x1, [x1, #:lo12:.LANCHOR1] 12333 lsr w2, w0, 3 12334 ubfiz x0, x0, 1, 16 12335 add x0, x0, 51 12336 add w2, w2, 4 12337 and x0, x0, -4 12338 add x0, x3, x0 12339 bl ftl_memcpy 12340 adrp x0, .LANCHOR69 12341 str x26, [x29, 104] 12342 ldrh w0, [x0, #:lo12:.LANCHOR69] 12343 cbz w0, .L1820 12344 ldrh w0, [x21, #:lo12:.LANCHOR40] 12345 adrp x1, .LANCHOR66 12346 ldr x3, [x22, 8] 12347 ldrh w2, [x1, #:lo12:.LANCHOR66] 12348 lsr w1, w0, 3 12349 add w0, w1, w0, lsl 1 12350 adrp x1, .LANCHOR134 12351 add w0, w0, 52 12352 lsl w2, w2, 2 12353 ldr x1, [x1, #:lo12:.LANCHOR134] 12354 and x0, x0, 65532 12355 add x0, x3, x0 12356 bl ftl_memcpy 12357.L1820: 12358 mov w0, 0 12359 bl FtlUpdateVaildLpn 12360 adrp x0, .LANCHOR2 12361 add x22, x20, :lo12:.LANCHOR211 12362 add x0, x0, :lo12:.LANCHOR2 12363 add x28, x27, :lo12:.LANCHOR218 12364 str x0, [x29, 120] 12365 adrp x27, .LANCHOR53 12366 mov w21, 0 12367 add x0, x27, :lo12:.LANCHOR53 12368 mov w26, 65535 12369 str x0, [x29, 96] 12370.L1821: 12371 ldrh w2, [x28, 2] 12372 ldrh w1, [x28] 12373 ldr x0, [x23, #:lo12:.LANCHOR189] 12374 str x0, [x22, 8] 12375 ldr x0, [x25, #:lo12:.LANCHOR195] 12376 str x0, [x22, 16] 12377 orr w0, w2, w1, lsl 10 12378 str w0, [x22, 4] 12379 ldrh w0, [x27, #:lo12:.LANCHOR53] 12380 sub w0, w0, #1 12381 cmp w2, w0 12382 blt .L1822 12383 ldrh w26, [x28, 4] 12384 strh wzr, [x28, 2] 12385 strh w1, [x28, 4] 12386 bl FtlFreeSysBlkQueueOut 12387 ldr w1, [x24, #:lo12:.LANCHOR164] 12388 str w1, [x28, 8] 12389 add w2, w1, 1 12390 str w2, [x24, #:lo12:.LANCHOR164] 12391 ubfiz w2, w0, 10, 16 12392 str w2, [x22, 4] 12393 strh w0, [x28] 12394 strh w0, [x19, 2] 12395 str w1, [x19, 4] 12396.L1822: 12397 ldr x0, [x29, 120] 12398 ldrb w0, [x0] 12399 cbz w0, .L1823 12400 ldr x0, [x29, 104] 12401 ldrh w1, [x0, #:lo12:.LANCHOR57] 12402 ldr x0, [x23, #:lo12:.LANCHOR189] 12403 bl js_hash 12404 str w0, [x19, 12] 12405.L1823: 12406 mov w3, 1 12407 mov x0, x22 12408 mov w1, w3 12409 mov w2, w3 12410 bl FlashProgPages 12411 ldrh w0, [x28, 2] 12412 ldr w1, [x22] 12413 add w0, w0, 1 12414 and w0, w0, 65535 12415 strh w0, [x28, 2] 12416 cmn w1, #1 12417 bne .L1824 12418 cmp w0, 1 12419 bne .L1825 12420 mov w2, 1375 12421 adrp x1, .LANCHOR219 12422 adrp x0, .LC5 12423 add x1, x1, :lo12:.LANCHOR219 12424 add x0, x0, :lo12:.LC5 12425 bl printf 12426 adrp x1, .LC6 12427 adrp x0, .LC7 12428 add x1, x1, :lo12:.LC6 12429 add x0, x0, :lo12:.LC7 12430 bl printf 12431.L1825: 12432 ldrh w0, [x28, 2] 12433 cmp w0, 1 12434 bne .L1826 12435 ldr x0, [x29, 96] 12436 ldrh w0, [x0] 12437 sub w0, w0, #1 12438 strh w0, [x28, 2] 12439.L1826: 12440 add w21, w21, 1 12441 and w21, w21, 65535 12442 cmp w21, 3 12443 bls .L1821 12444 add x20, x20, :lo12:.LANCHOR211 12445 mov w2, w21 12446 adrp x0, .LC40 12447 add x0, x0, :lo12:.LC40 12448 ldr w1, [x20, 4] 12449 bl printf 12450 ldr x1, [x29, 112] 12451 mov w0, 1 12452 str w0, [x1, #:lo12:.LANCHOR78] 12453.L1819: 12454 ldp x19, x20, [sp, 16] 12455 mov w0, 0 12456 ldp x21, x22, [sp, 32] 12457 ldp x23, x24, [sp, 48] 12458 ldp x25, x26, [sp, 64] 12459 ldp x27, x28, [sp, 80] 12460 ldp x29, x30, [sp], 128 12461 ret 12462.L1824: 12463 cmp w0, 1 12464 beq .L1821 12465 cmp w1, 256 12466 beq .L1821 12467 mov w0, 65535 12468 cmp w26, w0 12469 beq .L1819 12470 mov w1, 1 12471 mov w0, w26 12472 bl FtlFreeSysBlkQueueIn 12473 b .L1819 12474 .size FtlVpcTblFlush, .-FtlVpcTblFlush 12475 .section .text.FtlSuperblockPowerLostFix,"ax",@progbits 12476 .align 2 12477 .global FtlSuperblockPowerLostFix 12478 .type FtlSuperblockPowerLostFix, %function 12479FtlSuperblockPowerLostFix: 12480 stp x29, x30, [sp, -128]! 12481 adrp x1, .LANCHOR78 12482 add x29, sp, 0 12483 str x23, [sp, 48] 12484 ldr w23, [x1, #:lo12:.LANCHOR78] 12485 stp x19, x20, [sp, 16] 12486 stp x21, x22, [sp, 32] 12487 cbnz w23, .L1842 12488 adrp x1, .LANCHOR16 12489 ldrb w1, [x1, #:lo12:.LANCHOR16] 12490 cbz w1, .L1853 12491 ldrb w1, [x0, 8] 12492 cmp w1, 1 12493 bne .L1853 12494 ldrh w21, [x0, 4] 12495 mov w23, w1 12496.L1844: 12497 adrp x1, .LANCHOR195 12498 mov x19, x0 12499 mov w0, -1 12500 str w0, [x29, 96] 12501 ldr x20, [x1, #:lo12:.LANCHOR195] 12502 adrp x0, .LANCHOR189 12503 str x20, [x29, 88] 12504 mov w1, -3 12505 ldr x0, [x0, #:lo12:.LANCHOR189] 12506 adrp x22, .LANCHOR165 12507 str x0, [x29, 80] 12508 add x22, x22, :lo12:.LANCHOR165 12509 str w1, [x20, 8] 12510 mov w1, -2 12511 str w1, [x20, 12] 12512 ldrh w1, [x19] 12513 strh w1, [x20, 2] 12514 strh wzr, [x20] 12515 mov w1, 61589 12516 str w1, [x0] 12517 mov w1, 22136 12518 movk w1, 0x1234, lsl 16 12519 str w1, [x0, 4] 12520.L1845: 12521 sub w21, w21, #1 12522 cmn w21, #1 12523 beq .L1848 12524 ldrh w0, [x19, 4] 12525 cbnz w0, .L1846 12526.L1848: 12527 ldrh w0, [x19] 12528 adrp x1, .LANCHOR85 12529 ldrh w3, [x19, 4] 12530 ldr x2, [x1, #:lo12:.LANCHOR85] 12531 lsl x0, x0, 1 12532 ldrh w1, [x2, x0] 12533 sub w1, w1, w3 12534 strh w1, [x2, x0] 12535 adrp x0, .LANCHOR52 12536 strb wzr, [x19, 6] 12537 strh wzr, [x19, 4] 12538 ldrh w0, [x0, #:lo12:.LANCHOR52] 12539 strh w0, [x19, 2] 12540.L1842: 12541 ldp x19, x20, [sp, 16] 12542 ldp x21, x22, [sp, 32] 12543 ldr x23, [sp, 48] 12544 ldp x29, x30, [sp], 128 12545 ret 12546.L1853: 12547 mov w21, 12 12548 b .L1844 12549.L1846: 12550 mov x0, x19 12551 bl get_new_active_ppa 12552 str w0, [x29, 76] 12553 cmn w0, #1 12554 beq .L1848 12555 ldr w0, [x22] 12556 mov w3, 0 12557 str w0, [x20, 4] 12558 mov w2, w23 12559 add w0, w0, 1 12560 mov w1, 1 12561 cmn w0, #1 12562 csel w0, w0, wzr, ne 12563 str w0, [x22] 12564 add x0, x29, 72 12565 bl FlashProgPages 12566 ldrh w0, [x19] 12567 bl decrement_vpc_count 12568 b .L1845 12569 .size FtlSuperblockPowerLostFix, .-FtlSuperblockPowerLostFix 12570 .section .text.FtlLoadFactoryBbt,"ax",@progbits 12571 .align 2 12572 .global FtlLoadFactoryBbt 12573 .type FtlLoadFactoryBbt, %function 12574FtlLoadFactoryBbt: 12575 stp x29, x30, [sp, -112]! 12576 adrp x2, .LANCHOR189 12577 adrp x0, .LANCHOR211 12578 add x1, x0, :lo12:.LANCHOR211 12579 add x29, sp, 0 12580 ldr x2, [x2, #:lo12:.LANCHOR189] 12581 stp x21, x22, [sp, 32] 12582 mov x22, x0 12583 stp x25, x26, [sp, 64] 12584 adrp x26, .LANCHOR51 12585 stp x27, x28, [sp, 80] 12586 add x28, x26, :lo12:.LANCHOR51 12587 stp x19, x20, [sp, 16] 12588 adrp x20, .LANCHOR76 12589 stp x23, x24, [sp, 48] 12590 add x20, x20, :lo12:.LANCHOR76 12591 str x2, [x1, 8] 12592 adrp x2, .LANCHOR195 12593 adrp x23, .LANCHOR45 12594 add x20, x20, 12 12595 ldr x25, [x2, #:lo12:.LANCHOR195] 12596 add x23, x23, :lo12:.LANCHOR45 12597 mov w21, 0 12598 mov w27, -1 12599 str x25, [x1, 16] 12600.L1859: 12601 ldrh w0, [x23] 12602 cmp w21, w0 12603 bcc .L1864 12604 ldp x19, x20, [sp, 16] 12605 mov w0, 0 12606 ldp x21, x22, [sp, 32] 12607 ldp x23, x24, [sp, 48] 12608 ldp x25, x26, [sp, 64] 12609 ldp x27, x28, [sp, 80] 12610 ldp x29, x30, [sp], 112 12611 ret 12612.L1864: 12613 ldrh w19, [x26, #:lo12:.LANCHOR51] 12614 add x24, x22, :lo12:.LANCHOR211 12615 strh w27, [x20] 12616 mov w3, 61664 12617 sub w19, w19, #1 12618 and w19, w19, 65535 12619.L1860: 12620 ldrh w0, [x28] 12621 sub w1, w0, #15 12622 cmp w1, w19 12623 bgt .L1862 12624 madd w0, w0, w21, w19 12625 mov w2, 1 12626 str w3, [x29, 108] 12627 mov w1, w2 12628 lsl w0, w0, 10 12629 str w0, [x24, 4] 12630 mov x0, x24 12631 bl FlashReadPages 12632 ldr w0, [x24] 12633 ldr w3, [x29, 108] 12634 cmn w0, #1 12635 beq .L1861 12636 ldrh w0, [x25] 12637 cmp w0, w3 12638 bne .L1861 12639 strh w19, [x20] 12640.L1862: 12641 add w21, w21, 1 12642 add x20, x20, 2 12643 b .L1859 12644.L1861: 12645 sub w19, w19, #1 12646 and w19, w19, 65535 12647 b .L1860 12648 .size FtlLoadFactoryBbt, .-FtlLoadFactoryBbt 12649 .section .text.FtlGetLastWrittenPage,"ax",@progbits 12650 .align 2 12651 .global FtlGetLastWrittenPage 12652 .type FtlGetLastWrittenPage, %function 12653FtlGetLastWrittenPage: 12654 stp x29, x30, [sp, -192]! 12655 cmp w1, 1 12656 add x29, sp, 0 12657 stp x23, x24, [sp, 48] 12658 mov w23, w1 12659 stp x19, x20, [sp, 16] 12660 stp x21, x22, [sp, 32] 12661 bne .L1870 12662 adrp x1, .LANCHOR53 12663 ldrh w19, [x1, #:lo12:.LANCHOR53] 12664.L1871: 12665 sub w19, w19, #1 12666 lsl w21, w0, 10 12667 sxth w19, w19 12668 add x1, x29, 128 12669 orr w0, w19, w21 12670 stp xzr, x1, [x29, 80] 12671 str w0, [x29, 76] 12672 mov w2, w23 12673 mov w1, 1 12674 add x0, x29, 72 12675 bl FlashReadPages 12676 ldr w0, [x29, 128] 12677 cmn w0, #1 12678 bne .L1872 12679 mov w22, 0 12680 mov w24, 2 12681.L1873: 12682 cmp w22, w19 12683 ble .L1876 12684.L1872: 12685 mov w0, w19 12686 ldp x19, x20, [sp, 16] 12687 ldp x21, x22, [sp, 32] 12688 ldp x23, x24, [sp, 48] 12689 ldp x29, x30, [sp], 192 12690 ret 12691.L1870: 12692 adrp x1, .LANCHOR52 12693 ldrh w19, [x1, #:lo12:.LANCHOR52] 12694 b .L1871 12695.L1876: 12696 add w20, w22, w19 12697 mov w2, w23 12698 mov w1, 1 12699 sdiv w20, w20, w24 12700 sxth w0, w20 12701 orr w0, w0, w21 12702 str w0, [x29, 76] 12703 add x0, x29, 72 12704 bl FlashReadPages 12705 ldr w0, [x29, 128] 12706 cmn w0, #1 12707 bne .L1874 12708 ldr w0, [x29, 132] 12709 cmn w0, #1 12710 bne .L1874 12711 ldr w0, [x29, 72] 12712 cmn w0, #1 12713 beq .L1874 12714 sub w19, w20, #1 12715 sxth w19, w19 12716 b .L1873 12717.L1874: 12718 add w20, w20, 1 12719 sxth w22, w20 12720 b .L1873 12721 .size FtlGetLastWrittenPage, .-FtlGetLastWrittenPage 12722 .section .text.FtlLoadBbt,"ax",@progbits 12723 .align 2 12724 .global FtlLoadBbt 12725 .type FtlLoadBbt, %function 12726FtlLoadBbt: 12727 stp x29, x30, [sp, -80]! 12728 add x29, sp, 0 12729 stp x23, x24, [sp, 48] 12730 adrp x23, .LANCHOR189 12731 stp x19, x20, [sp, 16] 12732 adrp x24, .LANCHOR51 12733 stp x21, x22, [sp, 32] 12734 adrp x22, .LANCHOR211 12735 add x20, x22, :lo12:.LANCHOR211 12736 ldr x0, [x23, #:lo12:.LANCHOR189] 12737 str x25, [sp, 64] 12738 mov w25, 61649 12739 str x0, [x20, 8] 12740 adrp x0, .LANCHOR195 12741 ldr x21, [x0, #:lo12:.LANCHOR195] 12742 str x21, [x20, 16] 12743 bl FtlBbtMemInit 12744 ldrh w19, [x24, #:lo12:.LANCHOR51] 12745 add x24, x24, :lo12:.LANCHOR51 12746 sub w19, w19, #1 12747 and w19, w19, 65535 12748.L1882: 12749 ldrh w0, [x24] 12750 sub w0, w0, #47 12751 cmp w0, w19 12752 bgt .L1885 12753 lsl w0, w19, 10 12754 mov w2, 1 12755 str w0, [x20, 4] 12756 mov w1, w2 12757 mov x0, x20 12758 bl FlashReadPages 12759 ldr w0, [x20] 12760 cmn w0, #1 12761 bne .L1883 12762 ldr w0, [x20, 4] 12763 mov w2, 1 12764 mov w1, w2 12765 add w0, w0, 1 12766 str w0, [x20, 4] 12767 mov x0, x20 12768 bl FlashReadPages 12769.L1883: 12770 ldr w0, [x20] 12771 cmn w0, #1 12772 beq .L1884 12773 ldrh w0, [x21] 12774 cmp w0, w25 12775 bne .L1884 12776 adrp x1, .LANCHOR76 12777 add x0, x1, :lo12:.LANCHOR76 12778 strh w19, [x1, #:lo12:.LANCHOR76] 12779 ldr w1, [x21, 4] 12780 str w1, [x0, 8] 12781 ldrh w1, [x21, 8] 12782 strh w1, [x0, 4] 12783.L1885: 12784 adrp x19, .LANCHOR76 12785 mov w0, 65535 12786 add x20, x19, :lo12:.LANCHOR76 12787 ldrh w1, [x19, #:lo12:.LANCHOR76] 12788 cmp w1, w0 12789 beq .L1899 12790 ldrh w1, [x20, 4] 12791 cmp w1, w0 12792 beq .L1889 12793 add x0, x22, :lo12:.LANCHOR211 12794 lsl w1, w1, 10 12795 mov w2, 1 12796 str w1, [x0, 4] 12797 mov w1, w2 12798 bl FlashReadPages 12799 ldr w0, [x22, #:lo12:.LANCHOR211] 12800 cmn w0, #1 12801 beq .L1889 12802 ldrh w1, [x21] 12803 mov w0, 61649 12804 cmp w1, w0 12805 bne .L1889 12806 ldr w1, [x20, 8] 12807 ldr w0, [x21, 4] 12808 cmp w0, w1 12809 bls .L1889 12810 ldrh w1, [x20, 4] 12811 str w0, [x20, 8] 12812 ldrh w0, [x21, 8] 12813 strh w1, [x19, #:lo12:.LANCHOR76] 12814 strh w0, [x20, 4] 12815.L1889: 12816 ldrh w0, [x19, #:lo12:.LANCHOR76] 12817 add x24, x19, :lo12:.LANCHOR76 12818 mov w1, 1 12819 mov w25, 61649 12820 bl FtlGetLastWrittenPage 12821 sxth w20, w0 12822 add w0, w0, 1 12823 strh w0, [x24, 2] 12824 add x24, x22, :lo12:.LANCHOR211 12825.L1891: 12826 tbz w20, #31, .L1894 12827 mov w2, 339 12828 adrp x1, .LANCHOR220 12829 adrp x0, .LC5 12830 add x1, x1, :lo12:.LANCHOR220 12831 add x0, x0, :lo12:.LC5 12832 bl printf 12833 adrp x1, .LC6 12834 adrp x0, .LC7 12835 add x1, x1, :lo12:.LC6 12836 add x0, x0, :lo12:.LC7 12837 bl printf 12838.L1893: 12839 add x0, x19, :lo12:.LANCHOR76 12840 ldrh w1, [x21, 10] 12841 strh w1, [x0, 6] 12842 mov w1, 65535 12843 ldrh w0, [x21, 12] 12844 cmp w0, w1 12845 beq .L1896 12846 adrp x1, .LANCHOR37 12847 ldr w2, [x1, #:lo12:.LANCHOR37] 12848 cmp w0, w2 12849 beq .L1896 12850 adrp x1, .LANCHOR41 12851 ldrh w1, [x1, #:lo12:.LANCHOR41] 12852 lsr w1, w1, 2 12853 cmp w2, w1 12854 bcs .L1896 12855 cmp w0, w1 12856 bcs .L1896 12857 bl FtlSysBlkNumInit 12858.L1896: 12859 add x19, x19, :lo12:.LANCHOR76 12860 adrp x21, .LANCHOR45 12861 adrp x23, .LANCHOR126 12862 add x19, x19, 32 12863 add x21, x21, :lo12:.LANCHOR45 12864 add x23, x23, :lo12:.LANCHOR126 12865 add x22, x22, :lo12:.LANCHOR211 12866 mov w20, 0 12867.L1897: 12868 ldrh w0, [x21] 12869 cmp w20, w0 12870 bcc .L1898 12871 mov w0, 0 12872.L1881: 12873 ldp x19, x20, [sp, 16] 12874 ldp x21, x22, [sp, 32] 12875 ldp x23, x24, [sp, 48] 12876 ldr x25, [sp, 64] 12877 ldp x29, x30, [sp], 80 12878 ret 12879.L1884: 12880 sub w19, w19, #1 12881 and w19, w19, 65535 12882 b .L1882 12883.L1894: 12884 ldrh w0, [x19, #:lo12:.LANCHOR76] 12885 mov w2, 1 12886 mov w1, w2 12887 orr w0, w20, w0, lsl 10 12888 str w0, [x24, 4] 12889 ldr x0, [x23, #:lo12:.LANCHOR189] 12890 str x0, [x24, 8] 12891 mov x0, x24 12892 bl FlashReadPages 12893 ldr w0, [x24] 12894 cmn w0, #1 12895 beq .L1892 12896 ldrh w0, [x21] 12897 cmp w0, w25 12898 beq .L1893 12899.L1892: 12900 sub w20, w20, #1 12901 sxth w20, w20 12902 b .L1891 12903.L1898: 12904 ldrh w2, [x23] 12905 ldr x0, [x22, 8] 12906 mul w1, w2, w20 12907 lsl w2, w2, 2 12908 add w20, w20, 1 12909 add x1, x0, x1, lsl 2 12910 ldr x0, [x19], 8 12911 bl ftl_memcpy 12912 b .L1897 12913.L1899: 12914 mov w0, -1 12915 b .L1881 12916 .size FtlLoadBbt, .-FtlLoadBbt 12917 .section .text.ftl_map_blk_gc,"ax",@progbits 12918 .align 2 12919 .global ftl_map_blk_gc 12920 .type ftl_map_blk_gc, %function 12921ftl_map_blk_gc: 12922 stp x29, x30, [sp, -112]! 12923 add x29, sp, 0 12924 stp x19, x20, [sp, 16] 12925 mov x19, x0 12926 stp x25, x26, [sp, 64] 12927 adrp x25, .LANCHOR53 12928 stp x21, x22, [sp, 32] 12929 stp x23, x24, [sp, 48] 12930 stp x27, x28, [sp, 80] 12931 ldr x20, [x0, 16] 12932 ldr x26, [x0, 40] 12933 bl ftl_free_no_use_map_blk 12934 ldrh w1, [x19, 10] 12935 ldrh w2, [x19, 8] 12936 sub w1, w1, #4 12937 cmp w2, w1 12938 blt .L1912 12939 ubfiz x0, x0, 1, 16 12940 ldrh w21, [x20, x0] 12941 cbz w21, .L1912 12942 ldr w1, [x19, 52] 12943 cbnz w1, .L1912 12944 mov w1, 1 12945 str w1, [x19, 52] 12946 strh wzr, [x20, x0] 12947 ldrh w0, [x19, 8] 12948 ldrh w1, [x19, 2] 12949 sub w0, w0, #1 12950 strh w0, [x19, 8] 12951 ldrh w0, [x25, #:lo12:.LANCHOR53] 12952 cmp w1, w0 12953 bcc .L1913 12954 mov x0, x19 12955 bl ftl_map_blk_alloc_new_blk 12956.L1913: 12957 adrp x22, .LANCHOR211 12958 adrp x24, .LANCHOR221 12959 mov x23, x22 12960 add x27, x22, :lo12:.LANCHOR211 12961 add x24, x24, :lo12:.LANCHOR221 12962 mov w20, 0 12963.L1914: 12964 ldrh w0, [x19, 6] 12965 cmp w0, w20 12966 bhi .L1920 12967 mov w1, 1 12968 mov w0, w21 12969 bl FtlFreeSysBlkQueueIn 12970 str wzr, [x19, 52] 12971.L1912: 12972 ldrh w1, [x19, 2] 12973 ldrh w0, [x25, #:lo12:.LANCHOR53] 12974 cmp w1, w0 12975 bcc .L1918 12976 mov x0, x19 12977 bl ftl_map_blk_alloc_new_blk 12978 b .L1918 12979.L1920: 12980 ubfiz x0, x20, 2, 16 12981 add x1, x26, x0 12982 str x1, [x29, 104] 12983 ldr w1, [x26, x0] 12984 cmp w21, w1, lsr 10 12985 bne .L1915 12986 adrp x2, .LANCHOR190 12987 add x0, x22, :lo12:.LANCHOR211 12988 ldr x2, [x2, #:lo12:.LANCHOR190] 12989 str x2, [x0, 8] 12990 adrp x2, .LANCHOR195 12991 str w1, [x0, 4] 12992 ldr x28, [x2, #:lo12:.LANCHOR195] 12993 mov w2, 1 12994 str x28, [x0, 16] 12995 mov w1, w2 12996 bl FlashReadPages 12997 ldrh w0, [x28, 8] 12998 cmp w0, w20 12999 beq .L1916 13000 mov w2, 752 13001 mov x1, x24 13002 adrp x0, .LC5 13003 add x0, x0, :lo12:.LC5 13004 bl printf 13005 adrp x1, .LC6 13006 adrp x0, .LC7 13007 add x1, x1, :lo12:.LC6 13008 add x0, x0, :lo12:.LC7 13009 bl printf 13010.L1916: 13011 ldr w0, [x27] 13012 ldrh w2, [x28, 8] 13013 cmn w0, #1 13014 bne .L1917 13015.L1919: 13016 ldr x0, [x29, 104] 13017 add x23, x23, :lo12:.LANCHOR211 13018 str wzr, [x0] 13019 adrp x0, .LC41 13020 add x0, x0, :lo12:.LC41 13021 ldr w1, [x23, 4] 13022 bl printf 13023 adrp x0, .LANCHOR78 13024 mov w1, 1 13025 str w1, [x0, #:lo12:.LANCHOR78] 13026.L1918: 13027 ldp x19, x20, [sp, 16] 13028 mov w0, 0 13029 ldp x21, x22, [sp, 32] 13030 ldp x23, x24, [sp, 48] 13031 ldp x25, x26, [sp, 64] 13032 ldp x27, x28, [sp, 80] 13033 ldp x29, x30, [sp], 112 13034 ret 13035.L1917: 13036 cmp w2, w20 13037 bne .L1919 13038 ldrh w1, [x28] 13039 ldrh w0, [x19, 4] 13040 cmp w1, w0 13041 bne .L1919 13042 ldr x2, [x27, 8] 13043 mov w1, w20 13044 mov x0, x19 13045 bl FtlMapWritePage 13046.L1915: 13047 add w20, w20, 1 13048 and w20, w20, 65535 13049 b .L1914 13050 .size ftl_map_blk_gc, .-ftl_map_blk_gc 13051 .section .text.Ftl_write_map_blk_to_last_page,"ax",@progbits 13052 .align 2 13053 .global Ftl_write_map_blk_to_last_page 13054 .type Ftl_write_map_blk_to_last_page, %function 13055Ftl_write_map_blk_to_last_page: 13056 adrp x1, .LANCHOR78 13057 ldr w1, [x1, #:lo12:.LANCHOR78] 13058 cbnz w1, .L1940 13059 stp x29, x30, [sp, -64]! 13060 mov w1, 65535 13061 add x29, sp, 0 13062 stp x19, x20, [sp, 16] 13063 mov x19, x0 13064 stp x21, x22, [sp, 32] 13065 ldrh w0, [x0] 13066 stp x23, x24, [sp, 48] 13067 cmp w0, w1 13068 ldr x20, [x19, 16] 13069 bne .L1927 13070 ldrh w0, [x19, 8] 13071 cbz w0, .L1928 13072 mov w2, 793 13073 adrp x1, .LANCHOR222 13074 adrp x0, .LC5 13075 add x1, x1, :lo12:.LANCHOR222 13076 add x0, x0, :lo12:.LC5 13077 bl printf 13078 adrp x1, .LC6 13079 adrp x0, .LC7 13080 add x1, x1, :lo12:.LC6 13081 add x0, x0, :lo12:.LC7 13082 bl printf 13083.L1928: 13084 ldrh w0, [x19, 8] 13085 add w0, w0, 1 13086 strh w0, [x19, 8] 13087 bl FtlFreeSysBlkQueueOut 13088 strh w0, [x20] 13089 ldr w0, [x19, 48] 13090 strh wzr, [x19, 2] 13091 add w0, w0, 1 13092 strh wzr, [x19] 13093 str w0, [x19, 48] 13094.L1926: 13095 mov w0, 0 13096 ldp x19, x20, [sp, 16] 13097 ldp x21, x22, [sp, 32] 13098 ldp x23, x24, [sp, 48] 13099 ldp x29, x30, [sp], 64 13100 ret 13101.L1927: 13102 ubfiz x0, x0, 1, 16 13103 adrp x2, .LANCHOR195 13104 adrp x21, .LANCHOR211 13105 add x1, x21, :lo12:.LANCHOR211 13106 adrp x24, .LANCHOR189 13107 ldr x23, [x19, 40] 13108 ldrh w22, [x20, x0] 13109 ldrh w0, [x19, 2] 13110 ldr x20, [x2, #:lo12:.LANCHOR195] 13111 str x20, [x1, 16] 13112 orr w0, w0, w22, lsl 10 13113 str w0, [x1, 4] 13114 ldr x0, [x24, #:lo12:.LANCHOR189] 13115 str x0, [x1, 8] 13116 ldr w1, [x19, 48] 13117 str w1, [x20, 4] 13118 mov w1, -1291 13119 strh w1, [x20, 8] 13120 ldrh w1, [x19, 4] 13121 strh w1, [x20] 13122 adrp x1, .LANCHOR53 13123 strh w22, [x20, 2] 13124 ldrh w2, [x1, #:lo12:.LANCHOR53] 13125 mov w1, 255 13126 lsl w2, w2, 3 13127 bl ftl_memset 13128 ldrh w4, [x19, 6] 13129 mov x1, 0 13130 ldr x3, [x24, #:lo12:.LANCHOR189] 13131 mov w0, 0 13132.L1929: 13133 cmp w4, w1, uxth 13134 bhi .L1931 13135 adrp x0, .LANCHOR2 13136 ldrb w0, [x0, #:lo12:.LANCHOR2] 13137 cbz w0, .L1932 13138 add x0, x21, :lo12:.LANCHOR211 13139 adrp x1, .LANCHOR57 13140 ldrh w1, [x1, #:lo12:.LANCHOR57] 13141 ldr x0, [x0, 8] 13142 bl js_hash 13143 str w0, [x20, 12] 13144.L1932: 13145 mov w2, 1 13146 mov w3, 0 13147 mov w1, w2 13148 add x0, x21, :lo12:.LANCHOR211 13149 bl FlashProgPages 13150 ldrh w0, [x19, 2] 13151 add w0, w0, 1 13152 strh w0, [x19, 2] 13153 mov x0, x19 13154 bl ftl_map_blk_gc 13155 b .L1926 13156.L1931: 13157 ldr w2, [x23, x1, lsl 2] 13158 cmp w22, w2, lsr 10 13159 bne .L1930 13160 add w0, w0, 1 13161 and w0, w0, 65535 13162 ubfiz x2, x0, 1, 16 13163 str w1, [x3, x2, lsl 2] 13164 add x2, x2, 1 13165 ldr w5, [x23, x1, lsl 2] 13166 str w5, [x3, x2, lsl 2] 13167.L1930: 13168 add x1, x1, 1 13169 b .L1929 13170.L1940: 13171 mov w0, 0 13172 ret 13173 .size Ftl_write_map_blk_to_last_page, .-Ftl_write_map_blk_to_last_page 13174 .section .text.FtlMapWritePage,"ax",@progbits 13175 .align 2 13176 .global FtlMapWritePage 13177 .type FtlMapWritePage, %function 13178FtlMapWritePage: 13179 stp x29, x30, [sp, -112]! 13180 add x29, sp, 0 13181 stp x19, x20, [sp, 16] 13182 mov w19, 0 13183 stp x25, x26, [sp, 64] 13184 adrp x26, .LANCHOR53 13185 stp x27, x28, [sp, 80] 13186 mov w25, w1 13187 stp x21, x22, [sp, 32] 13188 mov x27, x0 13189 adrp x22, .LANCHOR211 13190 stp x23, x24, [sp, 48] 13191 mov x20, x22 13192 add x23, x22, :lo12:.LANCHOR211 13193 add x28, x26, :lo12:.LANCHOR53 13194 str x2, [x29, 104] 13195.L1944: 13196 adrp x1, .LANCHOR170 13197 ldr w0, [x1, #:lo12:.LANCHOR170] 13198 add w0, w0, 1 13199 str w0, [x1, #:lo12:.LANCHOR170] 13200 ldrh w0, [x26, #:lo12:.LANCHOR53] 13201 ldrh w1, [x27, 2] 13202 sub w0, w0, #1 13203 cmp w1, w0 13204 bge .L1945 13205 ldrh w1, [x27] 13206 mov w0, 65535 13207 cmp w1, w0 13208 bne .L1946 13209.L1945: 13210 mov x0, x27 13211 bl Ftl_write_map_blk_to_last_page 13212.L1946: 13213 adrp x21, .LANCHOR78 13214 ldr w0, [x21, #:lo12:.LANCHOR78] 13215 cbnz w0, .L1961 13216 ldrh w1, [x27] 13217 ldr x0, [x27, 16] 13218 ldrh w0, [x0, x1, lsl 1] 13219 cbnz w0, .L1948 13220 mov w2, 865 13221 adrp x1, .LANCHOR223 13222 adrp x0, .LC5 13223 add x1, x1, :lo12:.LANCHOR223 13224 add x0, x0, :lo12:.LC5 13225 bl printf 13226 adrp x1, .LC6 13227 adrp x0, .LC7 13228 add x1, x1, :lo12:.LC6 13229 add x0, x0, :lo12:.LC7 13230 bl printf 13231.L1948: 13232 ldrh w1, [x27] 13233 ldrh w0, [x27, 10] 13234 cmp w1, w0 13235 bcc .L1949 13236 mov w2, 866 13237 adrp x1, .LANCHOR223 13238 adrp x0, .LC5 13239 add x1, x1, :lo12:.LANCHOR223 13240 add x0, x0, :lo12:.LC5 13241 bl printf 13242 adrp x1, .LC6 13243 adrp x0, .LC7 13244 add x1, x1, :lo12:.LC6 13245 add x0, x0, :lo12:.LC7 13246 bl printf 13247.L1949: 13248 ldrh w1, [x27] 13249 add x3, x22, :lo12:.LANCHOR211 13250 ldr x0, [x27, 16] 13251 mov w2, 16 13252 str x3, [x29, 96] 13253 ldrh w24, [x0, x1, lsl 1] 13254 mov w1, 0 13255 ldrh w0, [x27, 2] 13256 orr w0, w0, w24, lsl 10 13257 str w0, [x3, 4] 13258 ldr x0, [x29, 104] 13259 str x0, [x3, 8] 13260 adrp x0, .LANCHOR195 13261 ldr x0, [x0, #:lo12:.LANCHOR195] 13262 str x0, [x3, 16] 13263 bl ftl_memset 13264 ldr x3, [x29, 96] 13265 ldr w0, [x27, 48] 13266 ldr x6, [x3, 16] 13267 str w0, [x6, 4] 13268 ldrh w0, [x27, 4] 13269 strh w0, [x6] 13270 adrp x0, .LANCHOR2 13271 strh w25, [x6, 8] 13272 strh w24, [x6, 2] 13273 ldrb w0, [x0, #:lo12:.LANCHOR2] 13274 cbz w0, .L1950 13275 adrp x0, .LANCHOR57 13276 ldrh w1, [x0, #:lo12:.LANCHOR57] 13277 ldr x0, [x3, 8] 13278 bl js_hash 13279 str w0, [x6, 12] 13280.L1950: 13281 mov w3, 1 13282 mov x0, x23 13283 mov w1, w3 13284 mov w2, w3 13285 bl FlashProgPages 13286 ldrh w0, [x27, 2] 13287 ldr w1, [x23] 13288 add w0, w0, 1 13289 and w0, w0, 65535 13290 strh w0, [x27, 2] 13291 cmn w1, #1 13292 bne .L1951 13293 ldr w1, [x23, 4] 13294 adrp x0, .LC42 13295 add x0, x0, :lo12:.LC42 13296 add w19, w19, 1 13297 and w19, w19, 65535 13298 bl printf 13299 ldrh w0, [x27, 2] 13300 cmp w0, 2 13301 bhi .L1952 13302 ldrh w0, [x28] 13303 sub w0, w0, #1 13304 strh w0, [x27, 2] 13305.L1952: 13306 cmp w19, 3 13307 bls .L1944 13308 add x20, x20, :lo12:.LANCHOR211 13309 mov w2, w19 13310 adrp x0, .LC43 13311 add x0, x0, :lo12:.LC43 13312 ldr w1, [x20, 4] 13313 bl printf 13314 mov w0, 1 13315 str w0, [x21, #:lo12:.LANCHOR78] 13316.L1961: 13317 ldp x19, x20, [sp, 16] 13318 mov w0, 0 13319 ldp x21, x22, [sp, 32] 13320 ldp x23, x24, [sp, 48] 13321 ldp x25, x26, [sp, 64] 13322 ldp x27, x28, [sp, 80] 13323 ldp x29, x30, [sp], 112 13324 ret 13325.L1951: 13326 cbz w1, .L1954 13327 strh w24, [x27, 60] 13328 cmp w0, 1 13329 bne .L1955 13330.L1956: 13331 str wzr, [x27, 56] 13332 b .L1944 13333.L1955: 13334 cmp w1, 256 13335.L1969: 13336 beq .L1956 13337 ldr w0, [x27, 56] 13338 cbnz w0, .L1956 13339 add x20, x20, :lo12:.LANCHOR211 13340 ldr x0, [x27, 40] 13341 ldr w1, [x20, 4] 13342 str w1, [x0, w25, uxtw 2] 13343 b .L1961 13344.L1954: 13345 cmp w0, 1 13346 b .L1969 13347 .size FtlMapWritePage, .-FtlMapWritePage 13348 .section .text.flush_l2p_region,"ax",@progbits 13349 .align 2 13350 .global flush_l2p_region 13351 .type flush_l2p_region, %function 13352flush_l2p_region: 13353 stp x29, x30, [sp, -32]! 13354 add x29, sp, 0 13355 stp x19, x20, [sp, 16] 13356 adrp x20, .LANCHOR98 13357 ubfiz x19, x0, 4, 16 13358 ldr x0, [x20, #:lo12:.LANCHOR98] 13359 add x1, x0, x19 13360 ldr x2, [x1, 8] 13361 ldrh w1, [x0, x19] 13362 adrp x0, .LANCHOR130 13363 add x0, x0, :lo12:.LANCHOR130 13364 bl FtlMapWritePage 13365 ldr x0, [x20, #:lo12:.LANCHOR98] 13366 add x0, x0, x19 13367 ldp x19, x20, [sp, 16] 13368 ldr w1, [x0, 4] 13369 and w1, w1, 2147483647 13370 str w1, [x0, 4] 13371 mov w0, 0 13372 ldp x29, x30, [sp], 32 13373 ret 13374 .size flush_l2p_region, .-flush_l2p_region 13375 .section .text.l2p_flush,"ax",@progbits 13376 .align 2 13377 .global l2p_flush 13378 .type l2p_flush, %function 13379l2p_flush: 13380 stp x29, x30, [sp, -48]! 13381 add x29, sp, 0 13382 stp x19, x20, [sp, 16] 13383 adrp x20, .LANCHOR67 13384 add x20, x20, :lo12:.LANCHOR67 13385 str x21, [sp, 32] 13386 mov w19, 0 13387 adrp x21, .LANCHOR98 13388.L1973: 13389 ldrh w0, [x20] 13390 cmp w0, w19 13391 bhi .L1975 13392 mov w0, 0 13393 ldr x21, [sp, 32] 13394 ldp x19, x20, [sp, 16] 13395 ldp x29, x30, [sp], 48 13396 ret 13397.L1975: 13398 ldr x1, [x21, #:lo12:.LANCHOR98] 13399 ubfiz x0, x19, 4, 16 13400 add x0, x1, x0 13401 ldr w0, [x0, 4] 13402 tbz w0, #31, .L1974 13403 mov w0, w19 13404 bl flush_l2p_region 13405.L1974: 13406 add w19, w19, 1 13407 and w19, w19, 65535 13408 b .L1973 13409 .size l2p_flush, .-l2p_flush 13410 .section .text.FtlVendorPartWrite,"ax",@progbits 13411 .align 2 13412 .global FtlVendorPartWrite 13413 .type FtlVendorPartWrite, %function 13414FtlVendorPartWrite: 13415 stp x29, x30, [sp, -176]! 13416 add x29, sp, 0 13417 stp x19, x20, [sp, 16] 13418 mov w20, w1 13419 stp x21, x22, [sp, 32] 13420 add w1, w0, w1 13421 mov w22, w0 13422 adrp x0, .LANCHOR50 13423 stp x23, x24, [sp, 48] 13424 ldrh w0, [x0, #:lo12:.LANCHOR50] 13425 stp x25, x26, [sp, 64] 13426 stp x27, x28, [sp, 80] 13427 cmp w1, w0 13428 bhi .L1985 13429 adrp x0, .LANCHOR56 13430 adrp x26, .LANCHOR55 13431 adrp x27, .LANCHOR57 13432 mov x25, x2 13433 ldrh w21, [x0, #:lo12:.LANCHOR56] 13434 add x26, x26, :lo12:.LANCHOR55 13435 add x27, x27, :lo12:.LANCHOR57 13436 mov w24, 0 13437 lsr w21, w22, w21 13438.L1979: 13439 cbnz w20, .L1984 13440.L1977: 13441 mov w0, w24 13442 ldp x19, x20, [sp, 16] 13443 ldp x21, x22, [sp, 32] 13444 ldp x23, x24, [sp, 48] 13445 ldp x25, x26, [sp, 64] 13446 ldp x27, x28, [sp, 80] 13447 ldp x29, x30, [sp], 176 13448 ret 13449.L1984: 13450 ldrh w1, [x26] 13451 adrp x0, .LANCHOR202 13452 adrp x28, .LANCHOR191 13453 ldr x0, [x0, #:lo12:.LANCHOR202] 13454 udiv w23, w22, w1 13455 ldr w2, [x0, w21, uxtw 2] 13456 and w0, w20, 65535 13457 msub w23, w23, w1, w22 13458 sub w19, w1, w23 13459 and w19, w19, 65535 13460 cmp w20, w19 13461 csel w19, w0, w19, cc 13462 cbz w2, .L1981 13463 cmp w19, w1 13464 beq .L1981 13465 ldr x0, [x28, #:lo12:.LANCHOR191] 13466 str w2, [x29, 124] 13467 mov w2, 1 13468 stp x0, xzr, [x29, 128] 13469 mov w1, w2 13470 add x0, x29, 120 13471 bl FlashReadPages 13472.L1982: 13473 lsl w3, w19, 9 13474 ldr x0, [x28, #:lo12:.LANCHOR191] 13475 lsl w23, w23, 7 13476 mov w2, w3 13477 mov x1, x25 13478 str w3, [x29, 108] 13479 add x0, x0, x23, sxtw 2 13480 bl ftl_memcpy 13481 ldr x2, [x28, #:lo12:.LANCHOR191] 13482 mov w1, w21 13483 adrp x0, .LANCHOR224 13484 add x0, x0, :lo12:.LANCHOR224 13485 sub w20, w20, w19 13486 add w22, w22, w19 13487 add w21, w21, 1 13488 bl FtlMapWritePage 13489 cmn w0, #1 13490 ldr w3, [x29, 108] 13491 csinv w24, w24, wzr, ne 13492 add x25, x25, x3, sxtw 13493 b .L1979 13494.L1981: 13495 ldrh w2, [x27] 13496 mov w1, 0 13497 ldr x0, [x28, #:lo12:.LANCHOR191] 13498 bl ftl_memset 13499 b .L1982 13500.L1985: 13501 mov w24, -1 13502 b .L1977 13503 .size FtlVendorPartWrite, .-FtlVendorPartWrite 13504 .section .text.Ftl_save_ext_data,"ax",@progbits 13505 .align 2 13506 .global Ftl_save_ext_data 13507 .type Ftl_save_ext_data, %function 13508Ftl_save_ext_data: 13509 adrp x0, .LANCHOR141 13510 add x2, x0, :lo12:.LANCHOR141 13511 ldr w1, [x0, #:lo12:.LANCHOR141] 13512 mov w0, 19539 13513 movk w0, 0x4654, lsl 16 13514 cmp w1, w0 13515 bne .L1990 13516 mov w0, 99 13517 mov w1, 1 13518 movk w0, 0x5000, lsl 16 13519 str w0, [x2, 4] 13520 adrp x0, .LANCHOR225 13521 ldr w0, [x0, #:lo12:.LANCHOR225] 13522 str w0, [x2, 88] 13523 adrp x0, .LANCHOR226 13524 ldr w0, [x0, #:lo12:.LANCHOR226] 13525 str w0, [x2, 92] 13526 adrp x0, .LANCHOR166 13527 ldr w0, [x0, #:lo12:.LANCHOR166] 13528 str w0, [x2, 8] 13529 adrp x0, .LANCHOR167 13530 ldr w0, [x0, #:lo12:.LANCHOR167] 13531 str w0, [x2, 12] 13532 adrp x0, .LANCHOR171 13533 ldr w0, [x0, #:lo12:.LANCHOR171] 13534 str w0, [x2, 16] 13535 adrp x0, .LANCHOR170 13536 ldr w0, [x0, #:lo12:.LANCHOR170] 13537 str w0, [x2, 20] 13538 adrp x0, .LANCHOR173 13539 ldr w0, [x0, #:lo12:.LANCHOR173] 13540 str w0, [x2, 28] 13541 adrp x0, .LANCHOR81 13542 ldr w0, [x0, #:lo12:.LANCHOR81] 13543 str w0, [x2, 32] 13544 adrp x0, .LANCHOR168 13545 ldr w0, [x0, #:lo12:.LANCHOR168] 13546 str w0, [x2, 36] 13547 adrp x0, .LANCHOR169 13548 ldr w0, [x0, #:lo12:.LANCHOR169] 13549 str w0, [x2, 40] 13550 adrp x0, .LANCHOR174 13551 ldr w0, [x0, #:lo12:.LANCHOR174] 13552 str w0, [x2, 44] 13553 adrp x0, .LANCHOR175 13554 ldr w0, [x0, #:lo12:.LANCHOR175] 13555 str w0, [x2, 48] 13556 adrp x0, .LANCHOR163 13557 ldr w0, [x0, #:lo12:.LANCHOR163] 13558 str w0, [x2, 60] 13559 adrp x0, .LANCHOR162 13560 ldr w0, [x0, #:lo12:.LANCHOR162] 13561 str w0, [x2, 64] 13562 mov w0, 0 13563 b FtlVendorPartWrite 13564.L1990: 13565 ret 13566 .size Ftl_save_ext_data, .-Ftl_save_ext_data 13567 .section .text.FtlEctTblFlush,"ax",@progbits 13568 .align 2 13569 .global FtlEctTblFlush 13570 .type FtlEctTblFlush, %function 13571FtlEctTblFlush: 13572 adrp x1, .LANCHOR104 13573 ldr w1, [x1, #:lo12:.LANCHOR104] 13574 cbz w1, .L1997 13575 adrp x1, .LANCHOR175 13576 mov w2, 4 13577 ldr w1, [x1, #:lo12:.LANCHOR175] 13578 cmp w1, 39 13579 mov w1, 32 13580 csel w1, w1, w2, hi 13581.L1993: 13582 adrp x3, .LANCHOR227 13583 ldrh w2, [x3, #:lo12:.LANCHOR227] 13584 cmp w2, 31 13585 bhi .L1994 13586 add w2, w2, 1 13587 mov w1, 1 13588 strh w2, [x3, #:lo12:.LANCHOR227] 13589.L1994: 13590 adrp x2, .LANCHOR199 13591 cbnz w0, .L1995 13592 ldr x0, [x2, #:lo12:.LANCHOR199] 13593 ldr w3, [x0, 20] 13594 ldr w0, [x0, 16] 13595 add w1, w1, w3 13596 cmp w0, w1 13597 bcc .L2000 13598.L1995: 13599 stp x29, x30, [sp, -16]! 13600 add x29, sp, 0 13601 ldr x2, [x2, #:lo12:.LANCHOR199] 13602 ldr w0, [x2, 16] 13603 str w0, [x2, 20] 13604 mov w0, 17221 13605 str wzr, [x2, 4] 13606 movk w0, 0x4254, lsl 16 13607 str w0, [x2] 13608 adrp x0, .LANCHOR198 13609 ldrh w1, [x0, #:lo12:.LANCHOR198] 13610 lsl w0, w1, 9 13611 str w0, [x2, 12] 13612 ldr w0, [x2, 8] 13613 add w0, w0, 1 13614 str w0, [x2, 8] 13615 mov w0, 64 13616 bl FtlVendorPartWrite 13617 bl Ftl_save_ext_data 13618 mov w0, 0 13619 ldp x29, x30, [sp], 16 13620 ret 13621.L1997: 13622 mov w1, 32 13623 b .L1993 13624.L2000: 13625 mov w0, 0 13626 ret 13627 .size FtlEctTblFlush, .-FtlEctTblFlush 13628 .section .text.allocate_new_data_superblock,"ax",@progbits 13629 .align 2 13630 .global allocate_new_data_superblock 13631 .type allocate_new_data_superblock, %function 13632allocate_new_data_superblock: 13633 stp x29, x30, [sp, -48]! 13634 add x29, sp, 0 13635 stp x19, x20, [sp, 16] 13636 mov x19, x0 13637 ldrh w20, [x0] 13638 adrp x0, .LANCHOR40 13639 str x21, [sp, 32] 13640 ldrh w0, [x0, #:lo12:.LANCHOR40] 13641 cmp w0, w20 13642 bcs .L2003 13643 mov w2, 3650 13644 adrp x1, .LANCHOR228 13645 adrp x0, .LC5 13646 add x1, x1, :lo12:.LANCHOR228 13647 add x0, x0, :lo12:.LC5 13648 bl printf 13649 adrp x1, .LC6 13650 adrp x0, .LC7 13651 add x1, x1, :lo12:.LC6 13652 add x0, x0, :lo12:.LC7 13653 bl printf 13654.L2003: 13655 adrp x0, .LANCHOR78 13656 ldr w0, [x0, #:lo12:.LANCHOR78] 13657 cbnz w0, .L2004 13658 mov w0, 65535 13659 cmp w20, w0 13660 beq .L2005 13661 adrp x1, .LANCHOR85 13662 ubfiz x0, x20, 1, 16 13663 ldr x1, [x1, #:lo12:.LANCHOR85] 13664 ldrh w0, [x1, x0] 13665 cbz w0, .L2006 13666 mov w0, w20 13667 bl INSERT_DATA_LIST 13668.L2005: 13669 strb wzr, [x19, 8] 13670 adrp x0, .LANCHOR94 13671 add x0, x0, :lo12:.LANCHOR94 13672 cmp x19, x0 13673 beq .L2007 13674 adrp x0, .LANCHOR44 13675 ldrh w1, [x0, #:lo12:.LANCHOR44] 13676 cmp w1, 1 13677 beq .L2007 13678 adrp x0, .LANCHOR16 13679 ldrb w0, [x0, #:lo12:.LANCHOR16] 13680 cbz w0, .L2008 13681.L2007: 13682 mov w0, 1 13683 strb w0, [x19, 8] 13684.L2009: 13685 adrp x1, .LANCHOR136 13686 mov w2, 65535 13687 mov x21, x1 13688 ldrh w0, [x1, #:lo12:.LANCHOR136] 13689 cmp w0, w2 13690 beq .L2014 13691 cmp w20, w0 13692 bne .L2015 13693 adrp x2, .LANCHOR85 13694 ubfiz x1, x0, 1, 16 13695 ldr x2, [x2, #:lo12:.LANCHOR85] 13696 ldrh w1, [x2, x1] 13697 cbz w1, .L2016 13698.L2015: 13699 bl update_vpc_list 13700.L2016: 13701 mov w0, -1 13702 strh w0, [x21, #:lo12:.LANCHOR136] 13703.L2014: 13704 mov x0, x19 13705 bl allocate_data_superblock 13706 bl l2p_flush 13707 mov w0, 0 13708 bl FtlEctTblFlush 13709 bl FtlVpcTblFlush 13710.L2004: 13711 mov w0, 0 13712 ldr x21, [sp, 32] 13713 ldp x19, x20, [sp, 16] 13714 ldp x29, x30, [sp], 48 13715 ret 13716.L2006: 13717 mov w0, w20 13718 bl INSERT_FREE_LIST 13719 b .L2005 13720.L2008: 13721 adrp x0, .LANCHOR93 13722 add x2, x0, :lo12:.LANCHOR93 13723 cmp x19, x2 13724 bne .L2009 13725 cmp w1, 3 13726 beq .L2011 13727 adrp x1, .LANCHOR163 13728 ldr w1, [x1, #:lo12:.LANCHOR163] 13729 cmp w1, 1 13730 bne .L2012 13731.L2011: 13732 add x1, x0, :lo12:.LANCHOR93 13733 mov w2, 1 13734 strb w2, [x1, 8] 13735.L2012: 13736 adrp x1, .LANCHOR104 13737 ldr w1, [x1, #:lo12:.LANCHOR104] 13738 cbz w1, .L2009 13739 adrp x1, .LANCHOR175 13740 ldr w1, [x1, #:lo12:.LANCHOR175] 13741 cmp w1, 39 13742 bhi .L2009 13743 add x0, x0, :lo12:.LANCHOR93 13744 mov w1, 1 13745 strb w1, [x0, 8] 13746 b .L2009 13747 .size allocate_new_data_superblock, .-allocate_new_data_superblock 13748 .section .text.FtlVendorPartRead,"ax",@progbits 13749 .align 2 13750 .global FtlVendorPartRead 13751 .type FtlVendorPartRead, %function 13752FtlVendorPartRead: 13753 stp x29, x30, [sp, -176]! 13754 add x29, sp, 0 13755 stp x21, x22, [sp, 32] 13756 mov w22, w0 13757 mov w21, w1 13758 add w1, w0, w1 13759 adrp x0, .LANCHOR50 13760 stp x19, x20, [sp, 16] 13761 stp x23, x24, [sp, 48] 13762 ldrh w0, [x0, #:lo12:.LANCHOR50] 13763 stp x25, x26, [sp, 64] 13764 stp x27, x28, [sp, 80] 13765 cmp w1, w0 13766 bhi .L2039 13767 adrp x0, .LANCHOR56 13768 adrp x26, .LANCHOR191 13769 mov x25, x2 13770 mov x28, x26 13771 ldrh w20, [x0, #:lo12:.LANCHOR56] 13772 mov w24, 0 13773 adrp x0, .LANCHOR55 13774 add x0, x0, :lo12:.LANCHOR55 13775 str x0, [x29, 104] 13776 lsr w20, w22, w20 13777.L2032: 13778 cbnz w21, .L2038 13779.L2030: 13780 mov w0, w24 13781 ldp x19, x20, [sp, 16] 13782 ldp x21, x22, [sp, 32] 13783 ldp x23, x24, [sp, 48] 13784 ldp x25, x26, [sp, 64] 13785 ldp x27, x28, [sp, 80] 13786 ldp x29, x30, [sp], 176 13787 ret 13788.L2038: 13789 adrp x0, .LANCHOR202 13790 ldr x0, [x0, #:lo12:.LANCHOR202] 13791 ldr w3, [x0, w20, uxtw 2] 13792 ldr x0, [x29, 104] 13793 ldrh w19, [x0] 13794 and w0, w21, 65535 13795 udiv w23, w22, w19 13796 msub w23, w23, w19, w22 13797 sub w19, w19, w23 13798 and w19, w19, 65535 13799 cmp w21, w19 13800 csel w19, w0, w19, cc 13801 lsl w27, w19, 9 13802 cbz w3, .L2034 13803 ldr x0, [x26, #:lo12:.LANCHOR191] 13804 mov w2, 1 13805 str w3, [x29, 100] 13806 mov w1, w2 13807 str w3, [x29, 124] 13808 stp x0, xzr, [x29, 128] 13809 add x0, x29, 120 13810 bl FlashReadPages 13811 ldr w0, [x29, 120] 13812 ldr w3, [x29, 100] 13813 cmn w0, #1 13814 adrp x0, .LANCHOR211 13815 csinv w24, w24, wzr, ne 13816 ldr w0, [x0, #:lo12:.LANCHOR211] 13817 cmp w0, 256 13818 bne .L2036 13819 mov w2, w3 13820 mov w1, w20 13821 adrp x0, .LC44 13822 add x0, x0, :lo12:.LC44 13823 bl printf 13824 ldr x2, [x26, #:lo12:.LANCHOR191] 13825 adrp x0, .LANCHOR224 13826 mov w1, w20 13827 add x0, x0, :lo12:.LANCHOR224 13828 bl FtlMapWritePage 13829.L2036: 13830 ldr x1, [x28, #:lo12:.LANCHOR191] 13831 lsl w23, w23, 7 13832 mov w2, w27 13833 mov x0, x25 13834 add x1, x1, x23, sxtw 2 13835 bl ftl_memcpy 13836.L2037: 13837 add w20, w20, 1 13838 sub w21, w21, w19 13839 add w22, w22, w19 13840 add x25, x25, x27, sxtw 13841 b .L2032 13842.L2034: 13843 mov w2, w27 13844 mov w1, 0 13845 mov x0, x25 13846 bl ftl_memset 13847 b .L2037 13848.L2039: 13849 mov w24, -1 13850 b .L2030 13851 .size FtlVendorPartRead, .-FtlVendorPartRead 13852 .section .text.FtlLoadEctTbl,"ax",@progbits 13853 .align 2 13854 .global FtlLoadEctTbl 13855 .type FtlLoadEctTbl, %function 13856FtlLoadEctTbl: 13857 stp x29, x30, [sp, -32]! 13858 mov w0, 64 13859 add x29, sp, 0 13860 stp x19, x20, [sp, 16] 13861 adrp x19, .LANCHOR199 13862 adrp x20, .LANCHOR198 13863 ldr x2, [x19, #:lo12:.LANCHOR199] 13864 ldrh w1, [x20, #:lo12:.LANCHOR198] 13865 bl FtlVendorPartRead 13866 ldr x0, [x19, #:lo12:.LANCHOR199] 13867 ldr w1, [x0] 13868 mov w0, 17221 13869 movk w0, 0x4254, lsl 16 13870 cmp w1, w0 13871 beq .L2042 13872 adrp x1, .LC45 13873 adrp x0, .LC7 13874 add x1, x1, :lo12:.LC45 13875 add x0, x0, :lo12:.LC7 13876 bl printf 13877 ldr x0, [x19, #:lo12:.LANCHOR199] 13878 mov w1, 0 13879 ldrh w2, [x20, #:lo12:.LANCHOR198] 13880 lsl w2, w2, 9 13881 bl ftl_memset 13882.L2042: 13883 mov w0, 0 13884 ldp x19, x20, [sp, 16] 13885 ldp x29, x30, [sp], 32 13886 ret 13887 .size FtlLoadEctTbl, .-FtlLoadEctTbl 13888 .section .text.Ftl_load_ext_data,"ax",@progbits 13889 .align 2 13890 .global Ftl_load_ext_data 13891 .type Ftl_load_ext_data, %function 13892Ftl_load_ext_data: 13893 stp x29, x30, [sp, -48]! 13894 mov w1, 1 13895 mov w0, 0 13896 add x29, sp, 0 13897 stp x19, x20, [sp, 16] 13898 adrp x19, .LANCHOR141 13899 str x21, [sp, 32] 13900 add x21, x19, :lo12:.LANCHOR141 13901 mov x2, x21 13902 bl FtlVendorPartRead 13903 ldr w0, [x19, #:lo12:.LANCHOR141] 13904 mov w20, 19539 13905 movk w20, 0x4654, lsl 16 13906 cmp w0, w20 13907 beq .L2045 13908 mov w2, 512 13909 mov w1, 0 13910 mov x0, x21 13911 bl ftl_memset 13912 str w20, [x19, #:lo12:.LANCHOR141] 13913.L2045: 13914 ldr w1, [x19, #:lo12:.LANCHOR141] 13915 add x0, x19, :lo12:.LANCHOR141 13916 cmp w1, w20 13917 adrp x20, .LANCHOR173 13918 bne .L2046 13919 adrp x1, .LANCHOR225 13920 ldr w2, [x0, 88] 13921 str w2, [x1, #:lo12:.LANCHOR225] 13922 adrp x1, .LANCHOR226 13923 ldr w2, [x0, 92] 13924 str w2, [x1, #:lo12:.LANCHOR226] 13925 adrp x1, .LANCHOR166 13926 ldr w2, [x0, 8] 13927 str w2, [x1, #:lo12:.LANCHOR166] 13928 adrp x1, .LANCHOR167 13929 ldr w2, [x0, 12] 13930 str w2, [x1, #:lo12:.LANCHOR167] 13931 adrp x1, .LANCHOR171 13932 ldr w2, [x0, 16] 13933 str w2, [x1, #:lo12:.LANCHOR171] 13934 adrp x1, .LANCHOR170 13935 ldr w2, [x0, 20] 13936 str w2, [x1, #:lo12:.LANCHOR170] 13937 ldp w1, w2, [x0, 28] 13938 str w1, [x20, #:lo12:.LANCHOR173] 13939 adrp x1, .LANCHOR81 13940 str w2, [x1, #:lo12:.LANCHOR81] 13941 adrp x1, .LANCHOR168 13942 ldr w2, [x0, 36] 13943 str w2, [x1, #:lo12:.LANCHOR168] 13944 adrp x1, .LANCHOR169 13945 ldr w2, [x0, 40] 13946 str w2, [x1, #:lo12:.LANCHOR169] 13947 adrp x1, .LANCHOR174 13948 ldr w2, [x0, 44] 13949 str w2, [x1, #:lo12:.LANCHOR174] 13950 adrp x1, .LANCHOR175 13951 ldr w2, [x0, 48] 13952 str w2, [x1, #:lo12:.LANCHOR175] 13953 ldr w1, [x0, 60] 13954 adrp x0, .LANCHOR163 13955 str w1, [x0, #:lo12:.LANCHOR163] 13956.L2046: 13957 add x19, x19, :lo12:.LANCHOR141 13958 adrp x0, .LANCHOR162 13959 str wzr, [x0, #:lo12:.LANCHOR162] 13960 mov w0, 34661 13961 ldr w1, [x19, 68] 13962 movk w0, 0x1234, lsl 16 13963 cmp w1, w0 13964 bne .L2047 13965 adrp x0, .LANCHOR16 13966 ldrb w0, [x0, #:lo12:.LANCHOR16] 13967 cbz w0, .L2048 13968 str wzr, [x19, 68] 13969 bl Ftl_save_ext_data 13970.L2047: 13971 adrp x1, .LANCHOR172 13972 adrp x0, .LANCHOR48 13973 ldr x21, [sp, 32] 13974 ldr w2, [x1, #:lo12:.LANCHOR172] 13975 ldrh w0, [x0, #:lo12:.LANCHOR48] 13976 ldr w1, [x20, #:lo12:.LANCHOR173] 13977 ldp x19, x20, [sp, 16] 13978 ldp x29, x30, [sp], 48 13979 madd w0, w0, w2, w1 13980 adrp x1, .LANCHOR40 13981 ldrh w1, [x1, #:lo12:.LANCHOR40] 13982 udiv w0, w0, w1 13983 adrp x1, .LANCHOR214 13984 str w0, [x1, #:lo12:.LANCHOR214] 13985 ret 13986.L2048: 13987 adrp x0, .LANCHOR104 13988 mov w1, 1 13989 str w1, [x0, #:lo12:.LANCHOR104] 13990 adrp x1, .LC46 13991 adrp x0, .LC7 13992 add x1, x1, :lo12:.LC46 13993 add x0, x0, :lo12:.LC7 13994 bl printf 13995 b .L2047 13996 .size Ftl_load_ext_data, .-Ftl_load_ext_data 13997 .section .text.FtlMapBlkWriteDumpData,"ax",@progbits 13998 .align 2 13999 .global FtlMapBlkWriteDumpData 14000 .type FtlMapBlkWriteDumpData, %function 14001FtlMapBlkWriteDumpData: 14002 ldr w1, [x0, 56] 14003 cbz w1, .L2064 14004 stp x29, x30, [sp, -80]! 14005 adrp x1, .LANCHOR78 14006 add x29, sp, 0 14007 ldr w1, [x1, #:lo12:.LANCHOR78] 14008 stp x19, x20, [sp, 16] 14009 stp x21, x22, [sp, 32] 14010 stp x23, x24, [sp, 48] 14011 ldrh w20, [x0, 6] 14012 str x25, [sp, 64] 14013 str wzr, [x0, 56] 14014 ldr x25, [x0, 40] 14015 cbnz w1, .L2050 14016 mov x19, x0 14017 adrp x0, .LANCHOR190 14018 adrp x23, .LANCHOR211 14019 add x21, x23, :lo12:.LANCHOR211 14020 ldr x0, [x0, #:lo12:.LANCHOR190] 14021 mov x22, x23 14022 str x0, [x21, 8] 14023 adrp x0, .LANCHOR195 14024 ldr x24, [x0, #:lo12:.LANCHOR195] 14025 ldrh w0, [x19, 2] 14026 str x24, [x21, 16] 14027 cbz w0, .L2054 14028 adrp x1, .LANCHOR53 14029 ldrh w1, [x1, #:lo12:.LANCHOR53] 14030 sub w1, w1, #1 14031 cmp w0, w1 14032 bge .L2054 14033 ldrh w1, [x19] 14034 mov w2, 65535 14035 cmp w1, w2 14036 beq .L2054 14037 ldr x2, [x19, 16] 14038 ubfiz x1, x1, 1, 16 14039 sub w0, w0, #1 14040 ldrh w1, [x2, x1] 14041 mov w2, 1 14042 orr w0, w0, w1, lsl 10 14043 mov w1, w2 14044 str w0, [x21, 4] 14045 mov x0, x21 14046 bl FlashReadPages 14047 ldr w0, [x23, #:lo12:.LANCHOR211] 14048 cmn w0, #1 14049 beq .L2054 14050 ldrh w1, [x24, 8] 14051 ldr x2, [x19, 40] 14052 ubfiz x0, x1, 2, 16 14053 ldr w2, [x2, x0] 14054 ldr w0, [x21, 4] 14055 cmp w2, w0 14056 bne .L2054 14057 ldr x2, [x21, 8] 14058.L2067: 14059 mov x0, x19 14060 ldr x25, [sp, 64] 14061 ldp x19, x20, [sp, 16] 14062 ldp x21, x22, [sp, 32] 14063 ldp x23, x24, [sp, 48] 14064 ldp x29, x30, [sp], 80 14065 b FtlMapWritePage 14066.L2054: 14067 sub w20, w20, #1 14068 and w20, w20, 65535 14069 ubfiz x0, x20, 2, 16 14070 ldr w1, [x25, x0] 14071 add x0, x22, :lo12:.LANCHOR211 14072 str w1, [x0, 4] 14073 cbz w1, .L2055 14074 mov w2, 1 14075 mov w1, w2 14076 bl FlashReadPages 14077.L2056: 14078 add x22, x22, :lo12:.LANCHOR211 14079 mov w1, w20 14080 ldr x2, [x22, 8] 14081 b .L2067 14082.L2055: 14083 adrp x1, .LANCHOR57 14084 ldr x0, [x0, 8] 14085 ldrh w2, [x1, #:lo12:.LANCHOR57] 14086 mov w1, 255 14087 bl ftl_memset 14088 b .L2056 14089.L2050: 14090 ldp x19, x20, [sp, 16] 14091 ldp x21, x22, [sp, 32] 14092 ldp x23, x24, [sp, 48] 14093 ldr x25, [sp, 64] 14094 ldp x29, x30, [sp], 80 14095 ret 14096.L2064: 14097 ret 14098 .size FtlMapBlkWriteDumpData, .-FtlMapBlkWriteDumpData 14099 .section .text.FtlScanSysBlk,"ax",@progbits 14100 .align 2 14101 .global FtlScanSysBlk 14102 .type FtlScanSysBlk, %function 14103FtlScanSysBlk: 14104 stp x29, x30, [sp, -176]! 14105 mov w1, 0 14106 add x29, sp, 0 14107 stp x25, x26, [sp, 64] 14108 adrp x25, .LANCHOR133 14109 stp x21, x22, [sp, 32] 14110 adrp x21, .LANCHOR64 14111 ldr x0, [x25, #:lo12:.LANCHOR133] 14112 adrp x22, .LANCHOR201 14113 ldr w2, [x21, #:lo12:.LANCHOR64] 14114 stp x19, x20, [sp, 16] 14115 adrp x20, .LANCHOR131 14116 stp x23, x24, [sp, 48] 14117 adrp x23, .LANCHOR70 14118 stp x27, x28, [sp, 80] 14119 adrp x27, .LANCHOR132 14120 lsl w2, w2, 2 14121 strh wzr, [x20, #:lo12:.LANCHOR131] 14122 strh wzr, [x23, #:lo12:.LANCHOR70] 14123 bl ftl_memset 14124 ldr x0, [x27, #:lo12:.LANCHOR132] 14125 mov w1, 0 14126 ldr w2, [x21, #:lo12:.LANCHOR64] 14127 adrp x19, .LANCHOR61 14128 adrp x28, .LANCHOR71 14129 adrp x24, .LANCHOR218 14130 lsl w2, w2, 1 14131 bl ftl_memset 14132 ldr x0, [x22, #:lo12:.LANCHOR201] 14133 mov w1, 0 14134 ldrh w2, [x19, #:lo12:.LANCHOR61] 14135 lsl w2, w2, 2 14136 bl ftl_memset 14137 ldr x0, [x28, #:lo12:.LANCHOR71] 14138 mov w1, 0 14139 ldrh w2, [x19, #:lo12:.LANCHOR61] 14140 lsl w2, w2, 1 14141 bl ftl_memset 14142 mov w2, 16 14143 mov w1, 255 14144 add x0, x24, :lo12:.LANCHOR218 14145 bl ftl_memset 14146 adrp x0, .LANCHOR40 14147 stp x22, x25, [x29, 144] 14148 str x27, [x29, 160] 14149 ldrh w0, [x0, #:lo12:.LANCHOR40] 14150 str w0, [x29, 172] 14151 adrp x0, .LANCHOR41 14152 add x0, x0, :lo12:.LANCHOR41 14153 str x0, [x29, 120] 14154 adrp x0, .LANCHOR164 14155 add x0, x0, :lo12:.LANCHOR164 14156 str x0, [x29, 112] 14157.L2069: 14158 ldr x0, [x29, 120] 14159 ldr w1, [x29, 172] 14160 ldrh w0, [x0] 14161 cmp w0, w1 14162 bls .L2110 14163 adrp x0, .LANCHOR38 14164 adrp x25, .LANCHOR186 14165 adrp x6, .LANCHOR47 14166 mov x5, 0 14167 ldrh w13, [x0, #:lo12:.LANCHOR38] 14168 adrp x0, .LANCHOR107 14169 ldr x7, [x25, #:lo12:.LANCHOR186] 14170 mov w22, 0 14171 ldr x12, [x0, #:lo12:.LANCHOR107] 14172 adrp x0, .LANCHOR108 14173 add x6, x6, :lo12:.LANCHOR47 14174 mov w8, 56 14175 ldr x11, [x0, #:lo12:.LANCHOR108] 14176 adrp x0, .LANCHOR58 14177 ldrh w10, [x0, #:lo12:.LANCHOR58] 14178 b .L2111 14179.L2071: 14180 ldrh w1, [x29, 172] 14181 ldrb w0, [x6, x5] 14182 bl V2P_block 14183 and w4, w0, 65535 14184 bl FtlBbmIsBadBlock 14185 cbnz w0, .L2070 14186 umaddl x1, w22, w8, x7 14187 lsl w4, w4, 10 14188 mul w0, w22, w10 14189 add w22, w22, 1 14190 and w22, w22, 65535 14191 asr w0, w0, 2 14192 str w4, [x1, 4] 14193 add x0, x11, x0, sxtw 2 14194 stp x12, x0, [x1, 8] 14195.L2070: 14196 add x5, x5, 1 14197.L2111: 14198 cmp w13, w5, uxth 14199 bhi .L2071 14200 cbnz w22, .L2072 14201.L2109: 14202 ldr w0, [x29, 172] 14203 add w26, w0, 1 14204 and w0, w26, 65535 14205 str w0, [x29, 172] 14206 b .L2069 14207.L2072: 14208 mov w1, w22 14209 mov w2, 1 14210 mov x0, x7 14211 bl FlashReadPages 14212 mov w0, 56 14213 umull x0, w22, w0 14214 mov x22, 0 14215 str x0, [x29, 128] 14216 adrp x0, .LANCHOR229 14217 add x0, x0, :lo12:.LANCHOR229 14218 str x0, [x29, 136] 14219.L2108: 14220 ldr x0, [x25, #:lo12:.LANCHOR186] 14221 add x1, x0, x22 14222 ldr w0, [x0, x22] 14223 ldr w3, [x1, 4] 14224 cmn w0, #1 14225 ldr x27, [x1, 16] 14226 ubfx x26, x3, 10, 16 14227 bne .L2075 14228 mov w5, 16 14229 mov w7, 65535 14230.L2077: 14231 ldr x0, [x25, #:lo12:.LANCHOR186] 14232 add x6, x25, :lo12:.LANCHOR186 14233 mov w2, 1 14234 str w7, [x29, 100] 14235 add x0, x0, x22 14236 str x6, [x29, 104] 14237 str w5, [x29, 168] 14238 ldr w1, [x0, 4] 14239 add w1, w1, 1 14240 str w1, [x0, 4] 14241 mov w1, w2 14242 bl FlashReadPages 14243 ldrh w0, [x27] 14244 ldr w7, [x29, 100] 14245 ldr w5, [x29, 168] 14246 cmp w0, w7 14247 ldr x6, [x29, 104] 14248 bne .L2074 14249 ldr x0, [x6] 14250 mov w1, -1 14251 str w1, [x0, x22] 14252 ldr x0, [x6] 14253 ldr w0, [x0, x22] 14254 cmp w0, w1 14255 beq .L2147 14256.L2075: 14257 adrp x0, .LANCHOR164 14258 ldr w1, [x0, #:lo12:.LANCHOR164] 14259 ldr w0, [x27, 4] 14260 cmn w1, #1 14261 beq .L2078 14262 cmp w1, w0 14263 bhi .L2079 14264.L2078: 14265 cmn w0, #1 14266 beq .L2079 14267 ldr x2, [x29, 112] 14268 add w1, w0, 1 14269 str w1, [x2] 14270.L2079: 14271 ldrh w1, [x27] 14272 mov w2, 61604 14273 cmp w1, w2 14274 beq .L2081 14275 bhi .L2082 14276 mov w0, 61574 14277 cmp w1, w0 14278 beq .L2083 14279.L2080: 14280 ldr x0, [x29, 128] 14281 add x22, x22, 56 14282 cmp x0, x22 14283 bne .L2108 14284 b .L2109 14285.L2074: 14286 ldr x0, [x25, #:lo12:.LANCHOR186] 14287 ldr w0, [x0, x22] 14288 cmn w0, #1 14289 bne .L2075 14290 sub w5, w5, #1 14291 ands w5, w5, 65535 14292 bne .L2077 14293.L2147: 14294 mov w1, 0 14295 mov w0, w26 14296 bl FtlFreeSysBlkQueueIn 14297 b .L2080 14298.L2082: 14299 mov w0, 61634 14300 cmp w1, w0 14301 beq .L2084 14302 mov w0, 65535 14303 cmp w1, w0 14304 beq .L2147 14305 b .L2080 14306.L2084: 14307 ldrh w1, [x20, #:lo12:.LANCHOR131] 14308 ldr w0, [x21, #:lo12:.LANCHOR64] 14309 cmp w1, w0 14310 bls .L2086 14311 ldr x1, [x29, 136] 14312 mov w2, 1469 14313 adrp x0, .LC5 14314 add x0, x0, :lo12:.LC5 14315 bl printf 14316 adrp x1, .LC6 14317 adrp x0, .LC7 14318 add x1, x1, :lo12:.LC6 14319 add x0, x0, :lo12:.LC7 14320 bl printf 14321.L2086: 14322 ldr w6, [x21, #:lo12:.LANCHOR64] 14323 ldr x3, [x29, 152] 14324 ldrh w1, [x20, #:lo12:.LANCHOR131] 14325 and w2, w6, 65535 14326 sub w0, w2, #1 14327 sub w2, w2, w1 14328 sxth x0, w0 14329 sub w2, w2, #1 14330 ldr x5, [x3, #:lo12:.LANCHOR133] 14331 sxth w2, w2 14332.L2087: 14333 cmp w0, w2 14334 bgt .L2093 14335 tbz w0, #31, .L2128 14336 b .L2080 14337.L2093: 14338 sxtw x8, w0 14339 ldr w11, [x27, 4] 14340 lsl x7, x8, 2 14341 add x10, x5, x7 14342 ldr w7, [x5, x7] 14343 cmp w11, w7 14344 bls .L2088 14345 ldr w2, [x5] 14346 cbnz w2, .L2089 14347 cmp w6, w1 14348 beq .L2089 14349 add w1, w1, 1 14350 strh w1, [x20, #:lo12:.LANCHOR131] 14351.L2089: 14352 ldr x1, [x29, 160] 14353 ldr x6, [x1, #:lo12:.LANCHOR132] 14354 mov w1, 0 14355.L2090: 14356 cmp w1, w0 14357 bne .L2091 14358 ldr w1, [x27, 4] 14359 str w1, [x10] 14360 strh w26, [x6, x8, lsl 1] 14361 tbnz w0, #31, .L2080 14362 ldrh w1, [x20, #:lo12:.LANCHOR131] 14363 ldr w2, [x21, #:lo12:.LANCHOR64] 14364 sub w2, w2, w1 14365 sub w2, w2, #1 14366 cmp w0, w2, sxth 14367 bgt .L2080 14368.L2128: 14369 add w1, w1, 1 14370 strh w1, [x20, #:lo12:.LANCHOR131] 14371 ldr w1, [x27, 4] 14372 str w1, [x5, x0, lsl 2] 14373 ldr x1, [x29, 160] 14374 ldr x1, [x1, #:lo12:.LANCHOR132] 14375.L2146: 14376 strh w26, [x1, x0, lsl 1] 14377 b .L2080 14378.L2091: 14379 sxtw x2, w1 14380 add w1, w1, 1 14381 lsl x7, x2, 2 14382 lsl x2, x2, 1 14383 add x11, x5, x7 14384 sxth w1, w1 14385 ldr w11, [x11, 4] 14386 str w11, [x5, x7] 14387 add x7, x6, x2 14388 ldrh w7, [x7, 2] 14389 strh w7, [x6, x2] 14390 b .L2090 14391.L2088: 14392 sub w0, w0, #1 14393 sxth x0, w0 14394 b .L2087 14395.L2083: 14396 ldrh w1, [x23, #:lo12:.LANCHOR70] 14397 ldrh w0, [x19, #:lo12:.LANCHOR61] 14398 cmp w1, w0 14399 bls .L2096 14400 ldr x1, [x29, 136] 14401 mov w2, 1513 14402 adrp x0, .LC5 14403 add x0, x0, :lo12:.LC5 14404 bl printf 14405 adrp x1, .LC6 14406 adrp x0, .LC7 14407 add x1, x1, :lo12:.LC6 14408 add x0, x0, :lo12:.LC7 14409 bl printf 14410.L2096: 14411 ldrh w6, [x19, #:lo12:.LANCHOR61] 14412 ldrh w2, [x23, #:lo12:.LANCHOR70] 14413 sub w1, w6, #1 14414 sxth x0, w1 14415 sub w5, w1, w2 14416 ldr x1, [x29, 144] 14417 ldr x1, [x1, #:lo12:.LANCHOR201] 14418.L2097: 14419 cmp w0, w5 14420 ble .L2102 14421 sxtw x7, w0 14422 ldr w11, [x27, 4] 14423 lsl x8, x7, 2 14424 add x10, x1, x8 14425 ldr w8, [x1, x8] 14426 cmp w11, w8 14427 bls .L2098 14428 ldr w5, [x1] 14429 cbnz w5, .L2099 14430 cmp w6, w2 14431 beq .L2099 14432 add w2, w2, 1 14433 strh w2, [x23, #:lo12:.LANCHOR70] 14434.L2099: 14435 ldr x6, [x28, #:lo12:.LANCHOR71] 14436 mov w2, 0 14437.L2100: 14438 cmp w2, w0 14439 bne .L2101 14440 ldr w2, [x27, 4] 14441 str w2, [x10] 14442 strh w26, [x6, x7, lsl 1] 14443.L2102: 14444 tbnz w0, #31, .L2080 14445 ldrh w2, [x19, #:lo12:.LANCHOR61] 14446 ldrh w5, [x23, #:lo12:.LANCHOR70] 14447 sub w2, w2, #1 14448 sub w2, w2, w5 14449 cmp w0, w2, sxth 14450 bgt .L2080 14451 add w5, w5, 1 14452 ldr w2, [x27, 4] 14453 strh w5, [x23, #:lo12:.LANCHOR70] 14454 str w2, [x1, x0, lsl 2] 14455 ldr x1, [x28, #:lo12:.LANCHOR71] 14456 b .L2146 14457.L2101: 14458 sxtw x5, w2 14459 add w2, w2, 1 14460 lsl x8, x5, 2 14461 lsl x5, x5, 1 14462 add x11, x1, x8 14463 sxth w2, w2 14464 ldr w11, [x11, 4] 14465 str w11, [x1, x8] 14466 add x8, x6, x5 14467 ldrh w8, [x8, 2] 14468 strh w8, [x6, x5] 14469 b .L2100 14470.L2098: 14471 sub w0, w0, #1 14472 sxth x0, w0 14473 b .L2097 14474.L2081: 14475 ldrh w5, [x24, #:lo12:.LANCHOR218] 14476 mov w1, 65535 14477 add x2, x24, :lo12:.LANCHOR218 14478 cmp w5, w1 14479 bne .L2104 14480 strh w26, [x24, #:lo12:.LANCHOR218] 14481 str w0, [x2, 8] 14482 b .L2080 14483.L2104: 14484 ldrh w0, [x2, 4] 14485 cmp w0, w1 14486 beq .L2105 14487 mov w1, 1 14488 bl FtlFreeSysBlkQueueIn 14489.L2105: 14490 add x0, x24, :lo12:.LANCHOR218 14491 ldr w1, [x27, 4] 14492 ldr w2, [x0, 8] 14493 cmp w2, w1 14494 bcs .L2106 14495 ldrh w2, [x24, #:lo12:.LANCHOR218] 14496 strh w2, [x0, 4] 14497 strh w26, [x24, #:lo12:.LANCHOR218] 14498 str w1, [x0, 8] 14499 b .L2080 14500.L2106: 14501 strh w26, [x0, 4] 14502 b .L2080 14503.L2110: 14504 ldr x0, [x29, 160] 14505 ldr x2, [x0, #:lo12:.LANCHOR132] 14506 ldrh w0, [x2] 14507 cbz w0, .L2112 14508.L2115: 14509 ldr x1, [x28, #:lo12:.LANCHOR71] 14510 ldrh w0, [x1] 14511 cbz w0, .L2113 14512.L2114: 14513 ldrh w1, [x20, #:lo12:.LANCHOR131] 14514 ldr w0, [x21, #:lo12:.LANCHOR64] 14515 cmp w1, w0 14516 bls .L2144 14517 mov w2, 1631 14518 adrp x1, .LANCHOR229 14519 adrp x0, .LC5 14520 add x1, x1, :lo12:.LANCHOR229 14521 add x0, x0, :lo12:.LC5 14522 bl printf 14523 adrp x1, .LC6 14524 adrp x0, .LC7 14525 add x1, x1, :lo12:.LC6 14526 add x0, x0, :lo12:.LC7 14527 bl printf 14528.L2144: 14529 ldp x19, x20, [sp, 16] 14530 mov w0, 0 14531 ldp x21, x22, [sp, 32] 14532 ldp x23, x24, [sp, 48] 14533 ldp x25, x26, [sp, 64] 14534 ldp x27, x28, [sp, 80] 14535 ldp x29, x30, [sp], 176 14536 ret 14537.L2112: 14538 ldrh w0, [x20, #:lo12:.LANCHOR131] 14539 cbz w0, .L2115 14540 ldr w1, [x21, #:lo12:.LANCHOR64] 14541 mov w0, 0 14542.L2116: 14543 cmp w0, w1 14544 bcs .L2115 14545 ldrh w3, [x2, w0, sxtw 1] 14546 cbz w3, .L2117 14547 ldr x1, [x29, 152] 14548 add x7, x21, :lo12:.LANCHOR64 14549 ldr x4, [x1, #:lo12:.LANCHOR133] 14550 mov w1, w0 14551.L2118: 14552 ldr w3, [x7] 14553 cmp w1, w3 14554 bcs .L2115 14555 sxtw x6, w1 14556 sub w3, w1, w0 14557 lsl x5, x6, 1 14558 sxtw x3, w3 14559 add w1, w1, 1 14560 ldr w6, [x4, x6, lsl 2] 14561 sxth w1, w1 14562 ldrh w8, [x2, x5] 14563 strh w8, [x2, x3, lsl 1] 14564 str w6, [x4, x3, lsl 2] 14565 strh wzr, [x2, x5] 14566 b .L2118 14567.L2117: 14568 add w0, w0, 1 14569 sxth w0, w0 14570 b .L2116 14571.L2113: 14572 ldrh w0, [x23, #:lo12:.LANCHOR70] 14573 cbz w0, .L2114 14574 ldrh w2, [x19, #:lo12:.LANCHOR61] 14575 mov w0, 0 14576.L2123: 14577 mov w6, w0 14578 cmp w0, w2 14579 bge .L2114 14580 ldrh w3, [x1, w0, sxtw 1] 14581 cbz w3, .L2124 14582 ldr x2, [x29, 144] 14583 add x19, x19, :lo12:.LANCHOR61 14584 ldr x3, [x2, #:lo12:.LANCHOR201] 14585.L2125: 14586 ldrh w2, [x19] 14587 cmp w0, w2 14588 bge .L2114 14589 sxtw x5, w0 14590 sub w2, w0, w6 14591 lsl x4, x5, 1 14592 sxtw x2, w2 14593 add w0, w0, 1 14594 ldr w5, [x3, x5, lsl 2] 14595 sxth w0, w0 14596 ldrh w7, [x1, x4] 14597 strh w7, [x1, x2, lsl 1] 14598 str w5, [x3, x2, lsl 2] 14599 strh wzr, [x1, x4] 14600 b .L2125 14601.L2124: 14602 add w0, w0, 1 14603 sxth w0, w0 14604 b .L2123 14605 .size FtlScanSysBlk, .-FtlScanSysBlk 14606 .section .text.FtlLoadSysInfo,"ax",@progbits 14607 .align 2 14608 .global FtlLoadSysInfo 14609 .type FtlLoadSysInfo, %function 14610FtlLoadSysInfo: 14611 sub sp, sp, #128 14612 stp x29, x30, [sp, 16] 14613 add x29, sp, 16 14614 stp x23, x24, [sp, 64] 14615 adrp x23, .LANCHOR189 14616 stp x19, x20, [sp, 32] 14617 adrp x19, .LANCHOR211 14618 add x0, x19, :lo12:.LANCHOR211 14619 stp x25, x26, [sp, 80] 14620 adrp x25, .LANCHOR195 14621 stp x21, x22, [sp, 48] 14622 stp x27, x28, [sp, 96] 14623 adrp x24, .LANCHOR85 14624 ldr x1, [x23, #:lo12:.LANCHOR189] 14625 adrp x22, .LANCHOR40 14626 str x1, [x0, 8] 14627 adrp x21, .LANCHOR218 14628 ldr x1, [x25, #:lo12:.LANCHOR195] 14629 str x1, [x0, 16] 14630 ldr x0, [x24, #:lo12:.LANCHOR85] 14631 mov w1, 0 14632 ldrh w2, [x22, #:lo12:.LANCHOR40] 14633 lsl w2, w2, 1 14634 bl ftl_memset 14635 ldrh w0, [x21, #:lo12:.LANCHOR218] 14636 mov w1, 65535 14637 cmp w0, w1 14638 bne .L2149 14639.L2161: 14640 mov w0, -1 14641.L2148: 14642 ldp x19, x20, [sp, 32] 14643 ldp x21, x22, [sp, 48] 14644 ldp x23, x24, [sp, 64] 14645 ldp x25, x26, [sp, 80] 14646 ldp x27, x28, [sp, 96] 14647 ldp x29, x30, [sp, 16] 14648 add sp, sp, 128 14649 ret 14650.L2149: 14651 add x26, x21, :lo12:.LANCHOR218 14652 mov w1, 1 14653 bl FtlGetLastWrittenPage 14654 ldrsh w28, [x21, #:lo12:.LANCHOR218] 14655 sxth w20, w0 14656 adrp x27, .LANCHOR57 14657 add w0, w0, 1 14658 add x27, x27, :lo12:.LANCHOR57 14659 strh w0, [x26, 2] 14660 adrp x26, .LANCHOR2 14661 add x0, x26, :lo12:.LANCHOR2 14662 str x0, [x29, 104] 14663.L2151: 14664 tbz w20, #31, .L2157 14665 mov w2, 1708 14666 adrp x1, .LANCHOR230 14667 adrp x0, .LC5 14668 add x1, x1, :lo12:.LANCHOR230 14669 add x0, x0, :lo12:.LC5 14670 bl printf 14671 adrp x1, .LC6 14672 adrp x0, .LC7 14673 add x1, x1, :lo12:.LC6 14674 add x0, x0, :lo12:.LC7 14675 bl printf 14676 b .L2156 14677.L2157: 14678 add x26, x19, :lo12:.LANCHOR211 14679 orr w0, w20, w28, lsl 10 14680 mov w2, 1 14681 mov w1, w2 14682 str w0, [x26, 4] 14683 ldr x0, [x23, #:lo12:.LANCHOR189] 14684 str x0, [x26, 8] 14685 mov x0, x26 14686 bl FlashReadPages 14687 ldr x0, [x29, 104] 14688 ldrb w0, [x0] 14689 cbz w0, .L2152 14690 ldr x8, [x26, 16] 14691 ldr w7, [x8, 12] 14692 cbz w7, .L2152 14693 ldr x6, [x26, 8] 14694 ldrh w1, [x27] 14695 mov x0, x6 14696 bl js_hash 14697 cmp w7, w0 14698 beq .L2152 14699 cbnz w20, .L2153 14700 add x10, x21, :lo12:.LANCHOR218 14701 str x10, [x29, 96] 14702 ldrh w0, [x10, 4] 14703 cmp w28, w0 14704 beq .L2153 14705 ldr w0, [x6] 14706 str w0, [sp] 14707 ldrh w1, [x21, #:lo12:.LANCHOR218] 14708 adrp x0, .LC47 14709 ldr w2, [x19, #:lo12:.LANCHOR211] 14710 add x0, x0, :lo12:.LC47 14711 ldp w4, w5, [x8] 14712 ldr w6, [x8, 8] 14713 ldr w3, [x26, 4] 14714 bl printf 14715 ldr x10, [x29, 96] 14716 adrp x0, .LANCHOR53 14717 ldrh w20, [x0, #:lo12:.LANCHOR53] 14718 ldrsh w28, [x10, 4] 14719.L2155: 14720 sub w20, w20, #1 14721 sxth w20, w20 14722 b .L2151 14723.L2153: 14724 mov w0, -1 14725 str w0, [x19, #:lo12:.LANCHOR211] 14726.L2152: 14727 ldr w0, [x19, #:lo12:.LANCHOR211] 14728 cmn w0, #1 14729 beq .L2155 14730 ldr x0, [x23, #:lo12:.LANCHOR189] 14731 mov w1, 19539 14732 movk w1, 0x4654, lsl 16 14733 ldr w0, [x0] 14734 cmp w0, w1 14735 bne .L2155 14736 ldr x0, [x25, #:lo12:.LANCHOR195] 14737 ldrh w1, [x0] 14738 mov w0, 61604 14739 cmp w1, w0 14740 bne .L2155 14741.L2156: 14742 adrp x1, .LANCHOR57 14743 ldrh w0, [x22, #:lo12:.LANCHOR40] 14744 ldrh w1, [x1, #:lo12:.LANCHOR57] 14745 add x0, x0, 24 14746 cmp x1, x0, lsl 1 14747 bcs .L2159 14748 mov w2, 1710 14749 adrp x1, .LANCHOR230 14750 adrp x0, .LC5 14751 add x1, x1, :lo12:.LANCHOR230 14752 add x0, x0, :lo12:.LC5 14753 bl printf 14754 adrp x1, .LC6 14755 adrp x0, .LC7 14756 add x1, x1, :lo12:.LC6 14757 add x0, x0, :lo12:.LC7 14758 bl printf 14759.L2159: 14760 add x19, x19, :lo12:.LANCHOR211 14761 mov w2, 48 14762 adrp x20, .LANCHOR82 14763 add x0, x20, :lo12:.LANCHOR82 14764 ldr x1, [x19, 8] 14765 bl ftl_memcpy 14766 ldr x0, [x24, #:lo12:.LANCHOR85] 14767 ldrh w2, [x22, #:lo12:.LANCHOR40] 14768 ldr x1, [x19, 8] 14769 lsl w2, w2, 1 14770 add x1, x1, 48 14771 bl ftl_memcpy 14772 ldrh w1, [x22, #:lo12:.LANCHOR40] 14773 ldr x0, [x19, 8] 14774 lsr w2, w1, 3 14775 ubfiz x1, x1, 1, 16 14776 add x1, x1, 51 14777 add w2, w2, 4 14778 and x1, x1, -4 14779 add x1, x0, x1 14780 adrp x0, .LANCHOR1 14781 ldr x0, [x0, #:lo12:.LANCHOR1] 14782 bl ftl_memcpy 14783 adrp x0, .LANCHOR69 14784 ldrh w0, [x0, #:lo12:.LANCHOR69] 14785 cbz w0, .L2160 14786 ldrh w1, [x22, #:lo12:.LANCHOR40] 14787 adrp x0, .LANCHOR66 14788 ldrh w2, [x0, #:lo12:.LANCHOR66] 14789 lsr w0, w1, 3 14790 add w1, w0, w1, lsl 1 14791 ldr x0, [x19, 8] 14792 add w1, w1, 52 14793 lsl w2, w2, 2 14794 and x1, x1, 65532 14795 add x1, x0, x1 14796 adrp x0, .LANCHOR203 14797 ldr x0, [x0, #:lo12:.LANCHOR203] 14798 bl ftl_memcpy 14799.L2160: 14800 ldr w2, [x20, #:lo12:.LANCHOR82] 14801 mov w1, 19539 14802 movk w1, 0x4654, lsl 16 14803 add x0, x20, :lo12:.LANCHOR82 14804 cmp w2, w1 14805 bne .L2161 14806 add x21, x21, :lo12:.LANCHOR218 14807 ldrh w1, [x0, 8] 14808 ldrb w2, [x0, 10] 14809 adrp x0, .LANCHOR45 14810 strh w1, [x21, 6] 14811 ldrh w0, [x0, #:lo12:.LANCHOR45] 14812 cmp w2, w0 14813 bne .L2161 14814 adrp x0, .LANCHOR231 14815 adrp x2, .LANCHOR74 14816 adrp x3, .LANCHOR38 14817 str w1, [x0, #:lo12:.LANCHOR231] 14818 adrp x0, .LANCHOR52 14819 ldrh w3, [x3, #:lo12:.LANCHOR38] 14820 ldrh w0, [x0, #:lo12:.LANCHOR52] 14821 mul w0, w0, w1 14822 str w0, [x2, #:lo12:.LANCHOR74] 14823 adrp x2, .LANCHOR55 14824 ldrh w2, [x2, #:lo12:.LANCHOR55] 14825 mul w0, w2, w0 14826 adrp x2, .LANCHOR68 14827 str w0, [x2, #:lo12:.LANCHOR68] 14828 adrp x0, .LANCHOR42 14829 ldr w2, [x0, #:lo12:.LANCHOR42] 14830 adrp x0, .LANCHOR76+6 14831 ldrh w0, [x0, #:lo12:.LANCHOR76+6] 14832 cmp w1, w2 14833 sub w0, w2, w0 14834 sub w0, w0, w1 14835 udiv w0, w0, w3 14836 adrp x3, .LANCHOR232 14837 strh w0, [x3, #:lo12:.LANCHOR232] 14838 bls .L2162 14839 mov w2, 1739 14840 adrp x1, .LANCHOR230 14841 adrp x0, .LC5 14842 add x1, x1, :lo12:.LANCHOR230 14843 add x0, x0, :lo12:.LC5 14844 bl printf 14845 adrp x1, .LC6 14846 adrp x0, .LC7 14847 add x1, x1, :lo12:.LC6 14848 add x0, x0, :lo12:.LC7 14849 bl printf 14850.L2162: 14851 add x4, x20, :lo12:.LANCHOR82 14852 adrp x0, .LANCHOR93 14853 add x2, x0, :lo12:.LANCHOR93 14854 adrp x5, .LANCHOR213 14855 adrp x19, .LANCHOR94 14856 mov x22, x5 14857 ldrh w1, [x4, 16] 14858 ldrh w6, [x4, 14] 14859 strh w6, [x0, #:lo12:.LANCHOR93] 14860 lsr w3, w1, 6 14861 and w1, w1, 63 14862 strb w1, [x2, 6] 14863 ldrb w1, [x4, 11] 14864 strb w1, [x2, 8] 14865 add x1, x5, :lo12:.LANCHOR213 14866 strh w3, [x2, 2] 14867 mov w2, -1 14868 strh w2, [x5, #:lo12:.LANCHOR213] 14869 add x2, x19, :lo12:.LANCHOR94 14870 strh wzr, [x1, 2] 14871 strb wzr, [x1, 6] 14872 strb wzr, [x1, 8] 14873 ldrh w1, [x4, 18] 14874 strh w1, [x19, #:lo12:.LANCHOR94] 14875 ldrh w1, [x4, 20] 14876 lsr w3, w1, 6 14877 and w1, w1, 63 14878 strb w1, [x2, 6] 14879 ldrb w1, [x4, 12] 14880 strh w3, [x2, 2] 14881 strb w1, [x2, 8] 14882 adrp x2, .LANCHOR95 14883 ldrh w1, [x4, 22] 14884 add x3, x2, :lo12:.LANCHOR95 14885 strh w1, [x2, #:lo12:.LANCHOR95] 14886 mov x21, x2 14887 ldrh w1, [x4, 24] 14888 lsr w7, w1, 6 14889 and w1, w1, 63 14890 strb w1, [x3, 6] 14891 ldrb w1, [x4, 13] 14892 strb w1, [x3, 8] 14893 adrp x1, .LANCHOR166 14894 strh w7, [x3, 2] 14895 ldr w3, [x4, 32] 14896 str wzr, [x1, #:lo12:.LANCHOR166] 14897 adrp x1, .LANCHOR167 14898 str wzr, [x1, #:lo12:.LANCHOR167] 14899 adrp x1, .LANCHOR171 14900 str wzr, [x1, #:lo12:.LANCHOR171] 14901 adrp x1, .LANCHOR170 14902 str wzr, [x1, #:lo12:.LANCHOR170] 14903 adrp x1, .LANCHOR172 14904 str w3, [x1, #:lo12:.LANCHOR172] 14905 adrp x1, .LANCHOR173 14906 str wzr, [x1, #:lo12:.LANCHOR173] 14907 adrp x1, .LANCHOR174 14908 str wzr, [x1, #:lo12:.LANCHOR174] 14909 adrp x1, .LANCHOR169 14910 ldr w3, [x4, 40] 14911 str wzr, [x1, #:lo12:.LANCHOR169] 14912 adrp x1, .LANCHOR164 14913 ldr w4, [x1, #:lo12:.LANCHOR164] 14914 cmp w3, w4 14915 bls .L2163 14916 str w3, [x1, #:lo12:.LANCHOR164] 14917.L2163: 14918 add x20, x20, :lo12:.LANCHOR82 14919 adrp x1, .LANCHOR165 14920 ldr w3, [x1, #:lo12:.LANCHOR165] 14921 ldr w2, [x20, 36] 14922 cmp w2, w3 14923 bls .L2164 14924 str w2, [x1, #:lo12:.LANCHOR165] 14925.L2164: 14926 mov w1, 65535 14927 cmp w6, w1 14928 beq .L2165 14929 add x0, x0, :lo12:.LANCHOR93 14930 bl make_superblock 14931.L2165: 14932 ldrh w2, [x19, #:lo12:.LANCHOR94] 14933 mov w1, 65535 14934 add x0, x19, :lo12:.LANCHOR94 14935 cmp w2, w1 14936 beq .L2166 14937 bl make_superblock 14938.L2166: 14939 ldrh w2, [x21, #:lo12:.LANCHOR95] 14940 mov w1, 65535 14941 add x0, x21, :lo12:.LANCHOR95 14942 cmp w2, w1 14943 beq .L2167 14944 bl make_superblock 14945.L2167: 14946 ldrh w2, [x22, #:lo12:.LANCHOR213] 14947 mov w1, 65535 14948 add x0, x22, :lo12:.LANCHOR213 14949 cmp w2, w1 14950 beq .L2168 14951 bl make_superblock 14952.L2168: 14953 mov w0, 0 14954 b .L2148 14955 .size FtlLoadSysInfo, .-FtlLoadSysInfo 14956 .section .text.FtlDumpBlockInfo,"ax",@progbits 14957 .align 2 14958 .global FtlDumpBlockInfo 14959 .type FtlDumpBlockInfo, %function 14960FtlDumpBlockInfo: 14961 sub sp, sp, #160 14962 lsr w0, w0, 10 14963 stp x29, x30, [sp, 16] 14964 add x29, sp, 16 14965 stp x19, x20, [sp, 32] 14966 adrp x19, .LANCHOR52 14967 stp x21, x22, [sp, 48] 14968 and w22, w1, 255 14969 stp x23, x24, [sp, 64] 14970 add x23, x29, 144 14971 stp x25, x26, [sp, 80] 14972 str x27, [sp, 96] 14973 bl P2V_block_in_plane 14974 ldrh w25, [x19, #:lo12:.LANCHOR52] 14975 and w21, w0, 65535 14976 adrp x1, .LANCHOR233 14977 adrp x0, .LC48 14978 add x1, x1, :lo12:.LANCHOR233 14979 add x0, x0, :lo12:.LC48 14980 bl printf 14981 adrp x1, .LANCHOR85 14982 ubfiz x0, x21, 1, 16 14983 ldr x1, [x1, #:lo12:.LANCHOR85] 14984 ldrh w2, [x1, x0] 14985 mov w1, w21 14986 adrp x0, .LC49 14987 add x0, x0, :lo12:.LC49 14988 bl printf 14989 strh w21, [x23, -48]! 14990 mov x0, x23 14991 bl make_superblock 14992 adrp x0, .LANCHOR16 14993 ldrb w0, [x0, #:lo12:.LANCHOR16] 14994 cbz w0, .L2193 14995 cbnz w22, .L2193 14996 mov w0, w21 14997 bl ftl_get_blk_mode 14998 mov w21, w0 14999 cmp w0, 1 15000 bne .L2184 15001 adrp x0, .LANCHOR53 15002 ldrh w25, [x0, #:lo12:.LANCHOR53] 15003.L2184: 15004 ldrh w3, [x19, #:lo12:.LANCHOR52] 15005 adrp x26, .LC51 15006 add x26, x26, :lo12:.LC51 15007 mov w20, 0 15008 mov w27, 56 15009 mov w2, w25 15010 mov w1, w21 15011 adrp x0, .LC50 15012 add x0, x0, :lo12:.LC50 15013 bl printf 15014.L2185: 15015 adrp x1, .LANCHOR107 15016 adrp x0, .LANCHOR38 15017 adrp x24, .LANCHOR186 15018 add x3, x23, 16 15019 ldr x6, [x1, #:lo12:.LANCHOR107] 15020 adrp x1, .LANCHOR57 15021 ldrh w5, [x0, #:lo12:.LANCHOR38] 15022 mov w19, 0 15023 ldrh w7, [x1, #:lo12:.LANCHOR57] 15024 adrp x1, .LANCHOR108 15025 ldr x0, [x24, #:lo12:.LANCHOR186] 15026 mov w11, 65535 15027 ldr x8, [x1, #:lo12:.LANCHOR108] 15028 adrp x1, .LANCHOR58 15029 ldrh w10, [x1, #:lo12:.LANCHOR58] 15030 mov w1, 0 15031.L2186: 15032 cmp w1, w5 15033 bne .L2188 15034 mov w1, w19 15035 umull x19, w19, w27 15036 mov x22, 0 15037 mov w2, w21 15038 bl FlashReadPages 15039.L2189: 15040 cmp x22, x19 15041 bne .L2190 15042 add w20, w20, 1 15043 and w20, w20, 65535 15044 cmp w25, w20 15045 bne .L2185 15046.L2191: 15047 ldp x19, x20, [sp, 32] 15048 mov w0, 0 15049 ldp x21, x22, [sp, 48] 15050 ldp x23, x24, [sp, 64] 15051 ldp x25, x26, [sp, 80] 15052 ldp x29, x30, [sp, 16] 15053 ldr x27, [sp, 96] 15054 add sp, sp, 160 15055 ret 15056.L2193: 15057 mov w21, 0 15058 b .L2184 15059.L2188: 15060 ldrh w2, [x3] 15061 cmp w2, w11 15062 beq .L2187 15063 umaddl x4, w19, w27, x0 15064 orr w2, w20, w2, lsl 10 15065 str w2, [x4, 4] 15066 mul w2, w19, w7 15067 asr w2, w2, 2 15068 add x2, x6, x2, sxtw 2 15069 str x2, [x4, 8] 15070 mul w2, w19, w10 15071 add w19, w19, 1 15072 and w19, w19, 65535 15073 asr w2, w2, 2 15074 add x2, x8, x2, sxtw 2 15075 str x2, [x4, 16] 15076.L2187: 15077 add w1, w1, 1 15078 add x3, x3, 2 15079 and w1, w1, 65535 15080 b .L2186 15081.L2190: 15082 ldr x8, [x24, #:lo12:.LANCHOR186] 15083 ldrh w1, [x29, 96] 15084 add x2, x8, x22 15085 ldp x3, x0, [x2, 8] 15086 ldr w4, [x3, 4] 15087 str w4, [sp, 8] 15088 ldr w3, [x3] 15089 str w3, [sp] 15090 ldp w4, w5, [x0] 15091 ldp w6, w7, [x0, 8] 15092 mov x0, x26 15093 ldr w3, [x2, 4] 15094 ldr w2, [x8, x22] 15095 add x22, x22, 56 15096 bl printf 15097 b .L2189 15098 .size FtlDumpBlockInfo, .-FtlDumpBlockInfo 15099 .section .text.FtlScanAllBlock,"ax",@progbits 15100 .align 2 15101 .global FtlScanAllBlock 15102 .type FtlScanAllBlock, %function 15103FtlScanAllBlock: 15104 sub sp, sp, #144 15105 adrp x1, .LANCHOR234 15106 adrp x0, .LC48 15107 add x1, x1, :lo12:.LANCHOR234 15108 add x0, x0, :lo12:.LC48 15109 stp x29, x30, [sp, 16] 15110 add x29, sp, 16 15111 stp x23, x24, [sp, 64] 15112 adrp x23, .LANCHOR41 15113 stp x19, x20, [sp, 32] 15114 adrp x24, .LC53 15115 stp x21, x22, [sp, 48] 15116 mov w20, 0 15117 add x23, x23, :lo12:.LANCHOR41 15118 add x24, x24, :lo12:.LC53 15119 str x25, [sp, 80] 15120 bl printf 15121.L2197: 15122 ldrh w0, [x23] 15123 cmp w0, w20 15124 bhi .L2205 15125 ldp x19, x20, [sp, 32] 15126 mov w0, 0 15127 ldp x21, x22, [sp, 48] 15128 ldp x23, x24, [sp, 64] 15129 ldp x29, x30, [sp, 16] 15130 ldr x25, [sp, 80] 15131 add sp, sp, 144 15132 ret 15133.L2205: 15134 strh w20, [x29, 80] 15135 mov w0, w20 15136 bl ftl_get_blk_mode 15137 mov w3, w0 15138 adrp x2, .LANCHOR85 15139 ubfiz x1, x20, 1, 16 15140 adrp x0, .LC52 15141 add x0, x0, :lo12:.LC52 15142 ldr x2, [x2, #:lo12:.LANCHOR85] 15143 adrp x22, .LANCHOR186 15144 mov w19, 0 15145 ldrh w2, [x2, x1] 15146 mov w1, w20 15147 bl printf 15148 add x0, x29, 80 15149 bl make_superblock 15150 adrp x1, .LANCHOR107 15151 adrp x0, .LANCHOR38 15152 add x3, x29, 96 15153 mov w11, 65535 15154 ldr x6, [x1, #:lo12:.LANCHOR107] 15155 adrp x1, .LANCHOR57 15156 ldrh w5, [x0, #:lo12:.LANCHOR38] 15157 mov w12, 56 15158 ldrh w7, [x1, #:lo12:.LANCHOR57] 15159 adrp x1, .LANCHOR108 15160 ldr x0, [x22, #:lo12:.LANCHOR186] 15161 ldr x8, [x1, #:lo12:.LANCHOR108] 15162 adrp x1, .LANCHOR58 15163 ldrh w10, [x1, #:lo12:.LANCHOR58] 15164 mov w1, 0 15165.L2198: 15166 cmp w1, w5 15167 bne .L2200 15168 mov w25, 56 15169 mov x21, 0 15170 mov w2, 0 15171 mov w1, w19 15172 umull x25, w19, w25 15173 bl FlashReadPages 15174.L2201: 15175 cmp x21, x25 15176 bne .L2202 15177 ldr x0, [x22, #:lo12:.LANCHOR186] 15178 adrp x25, .LC54 15179 add x25, x25, :lo12:.LC54 15180 mov w1, w19 15181 mov x19, 0 15182 mov w2, 1 15183 bl FlashReadPages 15184.L2203: 15185 cmp x21, x19 15186 bne .L2204 15187 add w20, w20, 1 15188 and w20, w20, 65535 15189 b .L2197 15190.L2200: 15191 ldrh w2, [x3] 15192 cmp w2, w11 15193 beq .L2199 15194 umaddl x4, w19, w12, x0 15195 lsl w2, w2, 10 15196 str w2, [x4, 4] 15197 mul w2, w19, w7 15198 asr w2, w2, 2 15199 add x2, x6, x2, sxtw 2 15200 str x2, [x4, 8] 15201 mul w2, w19, w10 15202 add w19, w19, 1 15203 and w19, w19, 65535 15204 asr w2, w2, 2 15205 add x2, x8, x2, sxtw 2 15206 str x2, [x4, 16] 15207.L2199: 15208 add w1, w1, 1 15209 add x3, x3, 2 15210 and w1, w1, 65535 15211 b .L2198 15212.L2202: 15213 ldr x8, [x22, #:lo12:.LANCHOR186] 15214 ldrh w1, [x29, 80] 15215 add x2, x8, x21 15216 ldp x3, x0, [x2, 8] 15217 ldr w4, [x3, 4] 15218 str w4, [sp, 8] 15219 ldr w3, [x3] 15220 str w3, [sp] 15221 ldp w4, w5, [x0] 15222 ldp w6, w7, [x0, 8] 15223 mov x0, x24 15224 ldr w3, [x2, 4] 15225 ldr w2, [x8, x21] 15226 add x21, x21, 56 15227 bl printf 15228 b .L2201 15229.L2204: 15230 ldr x8, [x22, #:lo12:.LANCHOR186] 15231 ldrh w1, [x29, 80] 15232 add x2, x8, x19 15233 ldp x3, x0, [x2, 8] 15234 ldr w4, [x3, 4] 15235 str w4, [sp, 8] 15236 ldr w3, [x3] 15237 str w3, [sp] 15238 ldp w4, w5, [x0] 15239 ldp w6, w7, [x0, 8] 15240 mov x0, x25 15241 ldr w3, [x2, 4] 15242 ldr w2, [x8, x19] 15243 add x19, x19, 56 15244 bl printf 15245 b .L2203 15246 .size FtlScanAllBlock, .-FtlScanAllBlock 15247 .section .text.FtlMapTblRecovery,"ax",@progbits 15248 .align 2 15249 .global FtlMapTblRecovery 15250 .type FtlMapTblRecovery, %function 15251FtlMapTblRecovery: 15252 stp x29, x30, [sp, -160]! 15253 mov w1, 0 15254 add x29, sp, 0 15255 stp x27, x28, [sp, 80] 15256 mov x28, x0 15257 stp x23, x24, [sp, 48] 15258 ldrh w24, [x0, 6] 15259 stp x21, x22, [sp, 32] 15260 adrp x21, .LANCHOR189 15261 ldr x22, [x0, 40] 15262 ldr x23, [x0, 16] 15263 lsl w2, w24, 2 15264 ldr x0, [x0, 24] 15265 str x0, [x29, 144] 15266 ldrh w0, [x28, 8] 15267 stp x19, x20, [sp, 16] 15268 mov w19, 0 15269 stp x25, x26, [sp, 64] 15270 adrp x25, .LANCHOR53 15271 str w0, [x29, 156] 15272 mov x0, x22 15273 bl ftl_memset 15274 stp wzr, wzr, [x28, 48] 15275 adrp x0, .LANCHOR211 15276 add x4, x0, :lo12:.LANCHOR211 15277 ldr x1, [x21, #:lo12:.LANCHOR189] 15278 mov x27, x4 15279 str x0, [x29, 128] 15280 str x1, [x4, 8] 15281 adrp x1, .LANCHOR195 15282 ldr w0, [x29, 156] 15283 ldr x20, [x1, #:lo12:.LANCHOR195] 15284 mov w1, -1 15285 str x20, [x4, 16] 15286 sub w0, w0, #1 15287 strh w1, [x28] 15288 strh w1, [x28, 2] 15289 mov w1, 1 15290 str w0, [x29, 116] 15291 add x0, x25, :lo12:.LANCHOR53 15292 str w1, [x28, 56] 15293 str x0, [x29, 104] 15294.L2208: 15295 ldr w0, [x29, 156] 15296 cmp w19, w0 15297 bge .L2227 15298 ldr w0, [x29, 116] 15299 sxtw x26, w19 15300 cmp w19, w0 15301 bne .L2209 15302 lsl x0, x26, 1 15303 mov w1, 1 15304 add x21, x23, x0 15305 adrp x27, .LANCHOR57 15306 add x27, x27, :lo12:.LANCHOR57 15307 mov w25, 0 15308 ldrh w0, [x23, x0] 15309 bl FtlGetLastWrittenPage 15310 sxth w23, w0 15311 add w0, w0, 1 15312 strh w0, [x28, 2] 15313 ldr x0, [x29, 144] 15314 strh w19, [x28] 15315 ldr w0, [x0, x26, lsl 2] 15316 adrp x26, .LANCHOR2 15317 str w0, [x28, 48] 15318 add x26, x26, :lo12:.LANCHOR2 15319 ldr x0, [x29, 128] 15320 add x19, x0, :lo12:.LANCHOR211 15321.L2210: 15322 cmp w25, w23 15323 ble .L2213 15324.L2227: 15325 mov x0, x28 15326 bl ftl_free_no_use_map_blk 15327 adrp x0, .LANCHOR53 15328 ldrh w1, [x28, 2] 15329 ldrh w0, [x0, #:lo12:.LANCHOR53] 15330 cmp w1, w0 15331 bne .L2215 15332 mov x0, x28 15333 bl ftl_map_blk_alloc_new_blk 15334.L2215: 15335 mov x0, x28 15336 bl ftl_map_blk_gc 15337 mov x0, x28 15338 bl ftl_map_blk_gc 15339 mov w0, 0 15340 ldp x19, x20, [sp, 16] 15341 ldp x21, x22, [sp, 32] 15342 ldp x23, x24, [sp, 48] 15343 ldp x25, x26, [sp, 64] 15344 ldp x27, x28, [sp, 80] 15345 ldp x29, x30, [sp], 160 15346 ret 15347.L2213: 15348 ldrh w0, [x21] 15349 mov w2, 1 15350 mov w1, w2 15351 orr w0, w25, w0, lsl 10 15352 str w0, [x19, 4] 15353 mov x0, x19 15354 bl FlashReadPages 15355 ldrb w0, [x26] 15356 cbz w0, .L2211 15357 ldr x0, [x19, 16] 15358 ldr w0, [x0, 12] 15359 str w0, [x29, 156] 15360 uxtw x0, w0 15361 cbz w0, .L2211 15362 ldrh w1, [x27] 15363 ldr x0, [x19, 8] 15364 bl js_hash 15365 ldr w1, [x29, 156] 15366 cmp w1, w0 15367 beq .L2211 15368 mov w0, -1 15369 str w0, [x19] 15370.L2211: 15371 ldr w0, [x19] 15372 cmn w0, #1 15373 beq .L2212 15374 ldrh w0, [x20, 8] 15375 cmp w24, w0 15376 bls .L2212 15377 ldrh w2, [x20] 15378 ldrh w1, [x28, 4] 15379 cmp w2, w1 15380 bne .L2212 15381 ubfiz x0, x0, 2, 16 15382 ldr w1, [x19, 4] 15383 str w1, [x22, x0] 15384.L2212: 15385 add w25, w25, 1 15386 sxth w25, w25 15387 b .L2210 15388.L2209: 15389 lsl x26, x26, 1 15390 ldr x0, [x21, #:lo12:.LANCHOR189] 15391 str x0, [x27, 8] 15392 add x0, x23, x26 15393 ldrh w1, [x25, #:lo12:.LANCHOR53] 15394 mov w2, 1 15395 str x0, [x29, 136] 15396 ldrh w0, [x23, x26] 15397 sub w1, w1, #1 15398 orr w0, w1, w0, lsl 10 15399 mov w1, w2 15400 str w0, [x27, 4] 15401 mov x0, x27 15402 bl FlashReadPages 15403 ldr w0, [x27] 15404 cmn w0, #1 15405 beq .L2229 15406 ldrh w1, [x20] 15407 ldrh w0, [x28, 4] 15408 cmp w1, w0 15409 bne .L2229 15410 ldrh w1, [x20, 8] 15411 mov w0, 64245 15412 cmp w1, w0 15413 beq .L2217 15414.L2229: 15415 adrp x26, .LANCHOR57 15416 add x26, x26, :lo12:.LANCHOR57 15417 adrp x0, .LANCHOR2 15418 mov w5, 0 15419 add x0, x0, :lo12:.LANCHOR2 15420 str x0, [x29, 120] 15421.L2218: 15422 ldr x0, [x29, 104] 15423 ldrh w0, [x0] 15424 cmp w5, w0 15425 bge .L2225 15426 ldr x0, [x29, 136] 15427 mov w2, 1 15428 str w5, [x29, 152] 15429 mov w1, w2 15430 ldrh w0, [x0] 15431 orr w0, w5, w0, lsl 10 15432 str w0, [x27, 4] 15433 mov x0, x27 15434 bl FlashReadPages 15435 ldr x0, [x29, 120] 15436 ldr w5, [x29, 152] 15437 ldrb w0, [x0] 15438 cbz w0, .L2222 15439 ldr x0, [x27, 16] 15440 ldr w0, [x0, 12] 15441 str w0, [x29, 152] 15442 uxtw x0, w0 15443 cbz w0, .L2222 15444 ldrh w1, [x26] 15445 ldr x0, [x27, 8] 15446 str w5, [x29, 112] 15447 bl js_hash 15448 ldr w1, [x29, 152] 15449 ldr w5, [x29, 112] 15450 cmp w1, w0 15451 beq .L2222 15452 mov w0, -1 15453 str w0, [x27] 15454.L2222: 15455 ldr w0, [x27] 15456 cmn w0, #1 15457 beq .L2223 15458 ldrh w0, [x20, 8] 15459 cmp w24, w0 15460 bls .L2223 15461 ldrh w2, [x20] 15462 ldrh w1, [x28, 4] 15463 cmp w2, w1 15464 bne .L2223 15465 ubfiz x0, x0, 2, 16 15466 ldr w1, [x27, 4] 15467 str w1, [x22, x0] 15468.L2223: 15469 add w5, w5, 1 15470 sxth w5, w5 15471 b .L2218 15472.L2217: 15473 ldrh w5, [x25, #:lo12:.LANCHOR53] 15474 mov w0, 0 15475 ldr x6, [x21, #:lo12:.LANCHOR189] 15476 sub w5, w5, #1 15477.L2219: 15478 cmp w0, w5 15479 blt .L2221 15480.L2225: 15481 add w19, w19, 1 15482 sxth w19, w19 15483 b .L2208 15484.L2221: 15485 lsl w2, w0, 1 15486 sxtw x2, w2 15487 lsl x1, x2, 2 15488 ldrh w1, [x6, x1] 15489 cmp w24, w1 15490 bls .L2220 15491 add x2, x2, 1 15492 ubfiz x1, x1, 2, 16 15493 ldr w2, [x6, x2, lsl 2] 15494 str w2, [x22, x1] 15495.L2220: 15496 add w0, w0, 1 15497 sxth w0, w0 15498 b .L2219 15499 .size FtlMapTblRecovery, .-FtlMapTblRecovery 15500 .section .text.FtlLoadVonderInfo,"ax",@progbits 15501 .align 2 15502 .global FtlLoadVonderInfo 15503 .type FtlLoadVonderInfo, %function 15504FtlLoadVonderInfo: 15505 stp x29, x30, [sp, -16]! 15506 adrp x1, .LANCHOR61 15507 adrp x0, .LANCHOR224 15508 add x0, x0, :lo12:.LANCHOR224 15509 add x29, sp, 0 15510 ldrh w1, [x1, #:lo12:.LANCHOR61] 15511 strh w1, [x0, 10] 15512 mov w1, -3962 15513 strh w1, [x0, 4] 15514 adrp x1, .LANCHOR70 15515 ldrh w1, [x1, #:lo12:.LANCHOR70] 15516 strh w1, [x0, 8] 15517 adrp x1, .LANCHOR62 15518 ldrh w1, [x1, #:lo12:.LANCHOR62] 15519 strh w1, [x0, 6] 15520 adrp x1, .LANCHOR71 15521 ldr x1, [x1, #:lo12:.LANCHOR71] 15522 str x1, [x0, 16] 15523 adrp x1, .LANCHOR201 15524 ldr x1, [x1, #:lo12:.LANCHOR201] 15525 str x1, [x0, 24] 15526 adrp x1, .LANCHOR200 15527 ldr x1, [x1, #:lo12:.LANCHOR200] 15528 str x1, [x0, 32] 15529 adrp x1, .LANCHOR202 15530 ldr x1, [x1, #:lo12:.LANCHOR202] 15531 str x1, [x0, 40] 15532 bl FtlMapTblRecovery 15533 mov w0, 0 15534 ldp x29, x30, [sp], 16 15535 ret 15536 .size FtlLoadVonderInfo, .-FtlLoadVonderInfo 15537 .section .text.FtlLoadMapInfo,"ax",@progbits 15538 .align 2 15539 .global FtlLoadMapInfo 15540 .type FtlLoadMapInfo, %function 15541FtlLoadMapInfo: 15542 stp x29, x30, [sp, -16]! 15543 add x29, sp, 0 15544 bl FtlL2PDataInit 15545 adrp x0, .LANCHOR130 15546 add x0, x0, :lo12:.LANCHOR130 15547 bl FtlMapTblRecovery 15548 mov w0, 0 15549 ldp x29, x30, [sp], 16 15550 ret 15551 .size FtlLoadMapInfo, .-FtlLoadMapInfo 15552 .section .text.ftl_scan_all_ppa,"ax",@progbits 15553 .align 2 15554 .global ftl_scan_all_ppa 15555 .type ftl_scan_all_ppa, %function 15556ftl_scan_all_ppa: 15557 sub sp, sp, #112 15558 stp x29, x30, [sp, 16] 15559 add x29, sp, 16 15560 stp x21, x22, [sp, 48] 15561 adrp x22, .LANCHOR51 15562 stp x19, x20, [sp, 32] 15563 adrp x20, .LANCHOR211 15564 ldrh w19, [x22, #:lo12:.LANCHOR51] 15565 add x20, x20, :lo12:.LANCHOR211 15566 stp x25, x26, [sp, 80] 15567 adrp x26, .LANCHOR16 15568 sub w19, w19, #16 15569 add x26, x26, :lo12:.LANCHOR16 15570 lsl w25, w19, 10 15571 stp x23, x24, [sp, 64] 15572 str x27, [sp, 96] 15573.L2254: 15574 ldrh w0, [x22, #:lo12:.LANCHOR51] 15575 cmp w19, w0 15576 blt .L2262 15577 ldp x19, x20, [sp, 32] 15578 adrp x1, .LANCHOR235 15579 ldp x21, x22, [sp, 48] 15580 add x1, x1, :lo12:.LANCHOR235 15581 ldp x23, x24, [sp, 64] 15582 adrp x0, .LC58 15583 ldp x25, x26, [sp, 80] 15584 add x0, x0, :lo12:.LC58 15585 ldp x29, x30, [sp, 16] 15586 ldr x27, [sp, 96] 15587 add sp, sp, 112 15588 b printf 15589.L2262: 15590 and w24, w19, 65535 15591 mov w0, w24 15592 bl ftl_get_blk_mode 15593 ldrb w1, [x26] 15594 cbz w1, .L2255 15595 adrp x1, .LANCHOR40 15596 ldrh w1, [x1, #:lo12:.LANCHOR40] 15597 cmp w19, w1 15598 bge .L2256 15599 adrp x1, .LANCHOR59 15600 ldrh w1, [x1, #:lo12:.LANCHOR59] 15601 cmp w19, w1 15602 blt .L2256 15603.L2255: 15604 cmp w0, 1 15605 bne .L2257 15606.L2256: 15607 adrp x0, .LANCHOR53 15608 mov w21, -2147483648 15609 ldrh w23, [x0, #:lo12:.LANCHOR53] 15610.L2258: 15611 mov w3, w21 15612 mov w2, w23 15613 mov w1, w19 15614 adrp x0, .LC55 15615 add x0, x0, :lo12:.LC55 15616 bl printf 15617 mov w0, w24 15618 bl FtlBbmIsBadBlock 15619 cbz w0, .L2259 15620 adrp x0, .LC56 15621 mov w3, w21 15622 mov w2, w23 15623 mov w1, w19 15624 add x0, x0, :lo12:.LC56 15625 bl printf 15626.L2259: 15627 adrp x27, .LC57 15628 add w21, w21, w25 15629 add x27, x27, :lo12:.LC57 15630 mov w24, 0 15631.L2260: 15632 cmp w24, w23 15633 bne .L2261 15634 add w19, w19, 1 15635 add w25, w25, 1024 15636 b .L2254 15637.L2257: 15638 adrp x0, .LANCHOR52 15639 mov w21, 0 15640 ldrh w23, [x0, #:lo12:.LANCHOR52] 15641 b .L2258 15642.L2261: 15643 add w0, w21, w24 15644 stp wzr, w0, [x20] 15645 adrp x0, .LANCHOR189 15646 mov w2, 0 15647 mov w1, 1 15648 add w24, w24, 1 15649 ldr x0, [x0, #:lo12:.LANCHOR189] 15650 str x0, [x20, 8] 15651 adrp x0, .LANCHOR195 15652 ldr x0, [x0, #:lo12:.LANCHOR195] 15653 str x0, [x20, 16] 15654 mov x0, x20 15655 bl FlashReadPages 15656 ldp x1, x0, [x20, 8] 15657 ldr w2, [x1, 4] 15658 str w2, [sp] 15659 ldp w3, w4, [x0] 15660 ldp w5, w6, [x0, 8] 15661 mov x0, x27 15662 ldr w7, [x1] 15663 ldp w2, w1, [x20] 15664 bl printf 15665 b .L2260 15666 .size ftl_scan_all_ppa, .-ftl_scan_all_ppa 15667 .section .text.FlashReadFacBbtData,"ax",@progbits 15668 .align 2 15669 .global FlashReadFacBbtData 15670 .type FlashReadFacBbtData, %function 15671FlashReadFacBbtData: 15672 stp x29, x30, [sp, -160]! 15673 add x29, sp, 0 15674 stp x25, x26, [sp, 64] 15675 mov w25, w1 15676 adrp x1, .LANCHOR15 15677 add x1, x1, :lo12:.LANCHOR15 15678 stp x23, x24, [sp, 48] 15679 mov x23, x0 15680 stp x21, x22, [sp, 32] 15681 adrp x21, .LANCHOR154 15682 ldrh w0, [x1, 14] 15683 mov w24, w2 15684 ldrh w1, [x1, 12] 15685 stp x19, x20, [sp, 16] 15686 str x27, [sp, 80] 15687 mov w27, 61664 15688 mul w0, w0, w1 15689 ldr x1, [x21, #:lo12:.LANCHOR154] 15690 str x1, [x29, 112] 15691 and w0, w0, 65535 15692 adrp x1, .LANCHOR205 15693 sub w20, w0, #1 15694 sub w19, w0, #15 15695 ldr x2, [x1, #:lo12:.LANCHOR205] 15696 and w20, w20, 65535 15697 mul w26, w0, w25 15698 mov x22, x1 15699 str x2, [x29, 120] 15700.L2271: 15701 cmp w19, w20 15702 ble .L2278 15703 mov w0, -1 15704.L2270: 15705 ldp x19, x20, [sp, 16] 15706 ldp x21, x22, [sp, 32] 15707 ldp x23, x24, [sp, 48] 15708 ldp x25, x26, [sp, 64] 15709 ldr x27, [sp, 80] 15710 ldp x29, x30, [sp], 160 15711 ret 15712.L2278: 15713 add w0, w20, w26 15714 mov w2, 1 15715 lsl w0, w0, 10 15716 mov w1, w2 15717 str w0, [x29, 108] 15718 add x0, x29, 104 15719 bl FlashReadPages 15720 ldr w0, [x29, 104] 15721 cmn w0, #1 15722 beq .L2272 15723 ldr x0, [x22, #:lo12:.LANCHOR205] 15724 ldrh w0, [x0] 15725 cmp w0, w27 15726 bne .L2272 15727 cbz x23, .L2279 15728 cbz w25, .L2274 15729.L2277: 15730 ldr x1, [x21, #:lo12:.LANCHOR154] 15731 mov w2, w24 15732 mov x0, x23 15733 bl ftl_memcpy 15734 mov w3, 4 15735 adrp x0, .LC59 15736 mov w2, w3 15737 mov x1, x23 15738 add x0, x0, :lo12:.LC59 15739 bl rknand_print_hex 15740.L2279: 15741 mov w0, 0 15742 b .L2270 15743.L2274: 15744 ldr x5, [x21, #:lo12:.LANCHOR154] 15745 adrp x2, .LANCHOR156 15746 add x2, x2, :lo12:.LANCHOR156 15747 mov w0, 0 15748 mov w6, 1 15749.L2275: 15750 ldr w1, [x2] 15751 cmp w0, w1 15752 bcs .L2277 15753 ubfx x1, x0, 5, 11 15754 and w3, w0, 31 15755 lsl x1, x1, 2 15756 add w0, w0, 1 15757 lsl w4, w6, w3 15758 and w0, w0, 65535 15759 ldr w3, [x5, x1] 15760 orr w3, w3, w4 15761 str w3, [x5, x1] 15762 b .L2275 15763.L2272: 15764 sub w20, w20, #1 15765 and w20, w20, 65535 15766 b .L2271 15767 .size FlashReadFacBbtData, .-FlashReadFacBbtData 15768 .section .text.FlashGetBadBlockList,"ax",@progbits 15769 .align 2 15770 .global FlashGetBadBlockList 15771 .type FlashGetBadBlockList, %function 15772FlashGetBadBlockList: 15773 stp x29, x30, [sp, -48]! 15774 add x29, sp, 0 15775 stp x19, x20, [sp, 16] 15776 mov x20, x0 15777 adrp x0, .LANCHOR7 15778 ldr x0, [x0, #:lo12:.LANCHOR7] 15779 ldrh w19, [x0, 14] 15780 str x21, [sp, 32] 15781 adrp x21, .LANCHOR152 15782 ldrb w2, [x0, 13] 15783 ldr x0, [x21, #:lo12:.LANCHOR152] 15784 mul w19, w19, w2 15785 and w19, w19, 65535 15786 add w2, w19, 7 15787 lsr w2, w2, 3 15788 bl FlashReadFacBbtData 15789 cmn w0, #1 15790 bne .L2285 15791.L2289: 15792 mov w0, 0 15793.L2286: 15794 ubfiz x0, x0, 1, 16 15795 mov w1, -1 15796 ldr x21, [sp, 32] 15797 strh w1, [x20, x0] 15798 mov w0, 0 15799 ldp x19, x20, [sp, 16] 15800 ldp x29, x30, [sp], 48 15801 ret 15802.L2285: 15803 ldr x4, [x21, #:lo12:.LANCHOR152] 15804 lsr w5, w19, 4 15805 sub w19, w19, #1 15806 mov w1, 0 15807 mov w0, 0 15808 mov w6, 1 15809.L2287: 15810 cmp w1, w19 15811 bge .L2286 15812 ubfx x3, x1, 5, 11 15813 and w2, w1, 31 15814 lsl w2, w6, w2 15815 ldr w3, [x4, x3, lsl 2] 15816 tst w2, w3 15817 beq .L2288 15818 add w2, w0, 1 15819 ubfiz x0, x0, 1, 16 15820 strh w1, [x20, x0] 15821 and w0, w2, 65535 15822.L2288: 15823 cmp w0, w5 15824 bcs .L2289 15825 add w1, w1, 1 15826 and w1, w1, 65535 15827 b .L2287 15828 .size FlashGetBadBlockList, .-FlashGetBadBlockList 15829 .section .text.FtlMakeBbt,"ax",@progbits 15830 .align 2 15831 .global FtlMakeBbt 15832 .type FtlMakeBbt, %function 15833FtlMakeBbt: 15834 stp x29, x30, [sp, -128]! 15835 adrp x0, .LANCHOR78 15836 add x29, sp, 0 15837 stp x21, x22, [sp, 32] 15838 ldr w21, [x0, #:lo12:.LANCHOR78] 15839 stp x19, x20, [sp, 16] 15840 stp x23, x24, [sp, 48] 15841 stp x25, x26, [sp, 64] 15842 stp x27, x28, [sp, 80] 15843 cbnz w21, .L2296 15844 adrp x20, .LANCHOR76 15845 add x22, x20, :lo12:.LANCHOR76 15846 bl FtlBbtMemInit 15847 add x24, x22, 32 15848 bl FtlLoadFactoryBbt 15849 adrp x28, .LANCHOR211 15850 add x22, x22, 12 15851 add x25, x28, :lo12:.LANCHOR211 15852 adrp x0, .LANCHOR45 15853 add x0, x0, :lo12:.LANCHOR45 15854 str x0, [x29, 120] 15855.L2297: 15856 ldr x0, [x29, 120] 15857 ldrh w0, [x0] 15858 cmp w21, w0 15859 bcc .L2303 15860 adrp x21, .LANCHOR59 15861 add x21, x21, :lo12:.LANCHOR59 15862 mov w19, 0 15863.L2304: 15864 ldrh w0, [x21] 15865 cmp w0, w19 15866 bhi .L2305 15867 add x21, x20, :lo12:.LANCHOR76 15868 mov w22, 65535 15869 ldrh w19, [x21, 12] 15870 sub w19, w19, #1 15871 and w19, w19, 65535 15872.L2306: 15873 ldrh w0, [x21, 12] 15874 sub w0, w0, #47 15875 cmp w0, w19 15876 bgt .L2310 15877 mov w0, w19 15878 bl FtlBbmIsBadBlock 15879 cmp w0, 1 15880 beq .L2307 15881 mov w0, w19 15882 bl FlashTestBlk 15883 cbz w0, .L2308 15884 mov w0, w19 15885 bl FtlBbmMapBadBlock 15886.L2307: 15887 sub w19, w19, #1 15888 and w19, w19, 65535 15889 b .L2306 15890.L2303: 15891 adrp x2, .LANCHOR195 15892 adrp x0, .LANCHOR189 15893 add x19, x28, :lo12:.LANCHOR211 15894 ldrh w1, [x22] 15895 ldr x0, [x0, #:lo12:.LANCHOR189] 15896 mov w3, 65535 15897 ldr x26, [x2, #:lo12:.LANCHOR195] 15898 cmp w1, w3 15899 stp x0, x26, [x19, 8] 15900 adrp x23, .LANCHOR51 15901 str x2, [x29, 112] 15902 beq .L2298 15903 ldrh w4, [x23, #:lo12:.LANCHOR51] 15904 mov w2, 1 15905 madd w27, w4, w21, w1 15906 mov w1, w2 15907 lsl w0, w27, 10 15908 str w0, [x19, 4] 15909 mov x0, x19 15910 bl FlashReadPages 15911 ldr x1, [x19, 8] 15912 ldr x0, [x24] 15913 ldrh w2, [x23, #:lo12:.LANCHOR51] 15914 add w2, w2, 7 15915 lsr w2, w2, 3 15916 bl ftl_memcpy 15917.L2299: 15918 mov w0, w27 15919 add w21, w21, 1 15920 bl FtlBbmMapBadBlock 15921 add x24, x24, 8 15922 add x22, x22, 2 15923 b .L2297 15924.L2298: 15925 mov w1, w21 15926 bl FlashGetBadBlockList 15927 ldr x0, [x19, 8] 15928 adrp x27, .LANCHOR126 15929 ldr x1, [x24] 15930 bl FtlBbt2Bitmap 15931 ldrh w19, [x23, #:lo12:.LANCHOR51] 15932 add x23, x23, :lo12:.LANCHOR51 15933 add x0, x27, :lo12:.LANCHOR126 15934 sub w19, w19, #1 15935 str x0, [x29, 104] 15936 and w19, w19, 65535 15937.L2300: 15938 ldrh w0, [x23] 15939 madd w0, w21, w0, w19 15940 bl FtlBbmIsBadBlock 15941 cmp w0, 1 15942 beq .L2301 15943 ldr x0, [x29, 112] 15944 mov w2, 16 15945 strh w19, [x22] 15946 mov w1, 0 15947 ldr x0, [x0, #:lo12:.LANCHOR195] 15948 bl ftl_memset 15949 mov w0, -3872 15950 strh w0, [x26] 15951 ldrh w4, [x23] 15952 ldrh w0, [x22] 15953 strh w0, [x26, 2] 15954 ldr x1, [x24] 15955 str wzr, [x26, 4] 15956 madd w27, w4, w21, w0 15957 lsl w0, w27, 10 15958 str w0, [x25, 4] 15959 ldr x0, [x29, 104] 15960 ldrh w2, [x0] 15961 ldr x0, [x25, 8] 15962 lsl w2, w2, 2 15963 bl ftl_memcpy 15964 mov w2, 1 15965 mov x0, x25 15966 mov w1, w2 15967 bl FlashEraseBlocks 15968 mov w3, 1 15969 mov x0, x25 15970 mov w2, w3 15971 mov w1, w3 15972 bl FlashProgPages 15973 ldr w0, [x25] 15974 cmn w0, #1 15975 bne .L2299 15976 mov w0, w27 15977 bl FtlBbmMapBadBlock 15978 b .L2300 15979.L2301: 15980 sub w19, w19, #1 15981 and w19, w19, 65535 15982 b .L2300 15983.L2305: 15984 mov w0, w19 15985 add w19, w19, 1 15986 bl FtlBbmMapBadBlock 15987 and w19, w19, 65535 15988 b .L2304 15989.L2308: 15990 ldrh w0, [x21] 15991 cmp w0, w22 15992 bne .L2309 15993 strh w19, [x21] 15994 b .L2307 15995.L2309: 15996 strh w19, [x21, 4] 15997.L2310: 15998 adrp x0, .LANCHOR79 15999 add x19, x20, :lo12:.LANCHOR76 16000 ldrh w1, [x20, #:lo12:.LANCHOR76] 16001 mov w2, 2 16002 ldr x0, [x0, #:lo12:.LANCHOR79] 16003 str wzr, [x19, 8] 16004 lsl w1, w1, 10 16005 strh wzr, [x19, 2] 16006 str w1, [x0, 4] 16007 ldrh w1, [x19, 4] 16008 lsl w1, w1, 10 16009 str w1, [x0, 60] 16010 mov w1, 1 16011 bl FlashEraseBlocks 16012 ldrh w0, [x20, #:lo12:.LANCHOR76] 16013 bl FtlBbmMapBadBlock 16014 ldrh w0, [x19, 4] 16015 bl FtlBbmMapBadBlock 16016 bl FtlBbmTblFlush 16017 strh wzr, [x19, 2] 16018 ldr w0, [x19, 8] 16019 ldrh w1, [x19, 4] 16020 add w0, w0, 1 16021 str w0, [x19, 8] 16022 ldrh w0, [x20, #:lo12:.LANCHOR76] 16023 strh w0, [x19, 4] 16024 strh w1, [x20, #:lo12:.LANCHOR76] 16025 bl FtlBbmTblFlush 16026.L2296: 16027 ldp x19, x20, [sp, 16] 16028 mov w0, 0 16029 ldp x21, x22, [sp, 32] 16030 ldp x23, x24, [sp, 48] 16031 ldp x25, x26, [sp, 64] 16032 ldp x27, x28, [sp, 80] 16033 ldp x29, x30, [sp], 128 16034 ret 16035 .size FtlMakeBbt, .-FtlMakeBbt 16036 .section .text.log2phys,"ax",@progbits 16037 .align 2 16038 .global log2phys 16039 .type log2phys, %function 16040log2phys: 16041 stp x29, x30, [sp, -128]! 16042 add x29, sp, 0 16043 stp x25, x26, [sp, 64] 16044 mov w25, w0 16045 adrp x0, .LANCHOR56 16046 stp x23, x24, [sp, 48] 16047 stp x19, x20, [sp, 16] 16048 mov x26, x1 16049 ldrh w24, [x0, #:lo12:.LANCHOR56] 16050 adrp x0, .LANCHOR74 16051 stp x21, x22, [sp, 32] 16052 mov x19, x0 16053 ldr w1, [x0, #:lo12:.LANCHOR74] 16054 stp x27, x28, [sp, 80] 16055 str w2, [x29, 116] 16056 cmp w25, w1 16057 bcc .L2317 16058 mov w2, 1004 16059 adrp x1, .LANCHOR236 16060 adrp x0, .LC5 16061 add x1, x1, :lo12:.LANCHOR236 16062 add x0, x0, :lo12:.LC5 16063 bl printf 16064 adrp x1, .LC6 16065 adrp x0, .LC7 16066 add x1, x1, :lo12:.LC6 16067 add x0, x0, :lo12:.LC7 16068 bl printf 16069.L2317: 16070 ldr w0, [x19, #:lo12:.LANCHOR74] 16071 cmp w25, w0 16072 bcs .L2318 16073 adrp x19, .LANCHOR98 16074 add w24, w24, 7 16075 adrp x0, .LANCHOR67 16076 ldr x2, [x19, #:lo12:.LANCHOR98] 16077 lsr w23, w25, w24 16078 and w22, w23, 65535 16079 ldrh w1, [x0, #:lo12:.LANCHOR67] 16080 mov x0, 0 16081.L2319: 16082 and x20, x0, 65535 16083 cmp w20, w1 16084 bcc .L2324 16085 bl select_l2p_ram_region 16086 and x20, x0, 65535 16087 ldr x1, [x19, #:lo12:.LANCHOR98] 16088 ubfiz x21, x20, 4, 16 16089 add x2, x1, x21 16090 ldrh w3, [x1, x21] 16091 mov w1, 65535 16092 cmp w3, w1 16093 beq .L2325 16094 ldr w1, [x2, 4] 16095 tbz w1, #31, .L2325 16096 bl flush_l2p_region 16097.L2325: 16098 adrp x0, .LANCHOR66 16099 str x0, [x29, 104] 16100 ldrh w1, [x0, #:lo12:.LANCHOR66] 16101 cmp w1, w22 16102 bcs .L2326 16103 mov w2, 597 16104 adrp x1, .LANCHOR237 16105 adrp x0, .LC5 16106 add x1, x1, :lo12:.LANCHOR237 16107 add x0, x0, :lo12:.LC5 16108 bl printf 16109 adrp x1, .LC6 16110 adrp x0, .LC7 16111 add x1, x1, :lo12:.LC6 16112 add x0, x0, :lo12:.LC7 16113 bl printf 16114.L2326: 16115 adrp x27, .LANCHOR134 16116 ubfiz x0, x22, 2, 16 16117 ldr x1, [x27, #:lo12:.LANCHOR134] 16118 ldr w3, [x1, x0] 16119 cbnz w3, .L2327 16120 ldr x0, [x19, #:lo12:.LANCHOR98] 16121 adrp x1, .LANCHOR57 16122 add x0, x0, x21 16123 ldrh w2, [x1, #:lo12:.LANCHOR57] 16124 mov w1, 255 16125 ldr x0, [x0, 8] 16126 bl ftl_memset 16127 ldr x0, [x19, #:lo12:.LANCHOR98] 16128 add x1, x0, x21 16129 strh w22, [x0, x21] 16130 str wzr, [x1, 4] 16131 b .L2321 16132.L2318: 16133 ldr w1, [x29, 116] 16134 mov w0, -1 16135 cbnz w1, .L2316 16136 str w0, [x26] 16137.L2316: 16138 ldp x19, x20, [sp, 16] 16139 ldp x21, x22, [sp, 32] 16140 ldp x23, x24, [sp, 48] 16141 ldp x25, x26, [sp, 64] 16142 ldp x27, x28, [sp, 80] 16143 ldp x29, x30, [sp], 128 16144 ret 16145.L2324: 16146 add x0, x0, 1 16147 add x3, x2, x0, lsl 4 16148 ldrh w3, [x3, -16] 16149 cmp w3, w22 16150 bne .L2319 16151.L2321: 16152 mov x0, 1 16153 lsl x24, x0, x24 16154 ldr w0, [x29, 116] 16155 sub w24, w24, #1 16156 and w25, w24, w25 16157 and x25, x25, 65535 16158 cbnz w0, .L2322 16159 ldr x0, [x19, #:lo12:.LANCHOR98] 16160 add x0, x0, x20, lsl 4 16161 ldr x0, [x0, 8] 16162 ldr w0, [x0, x25, lsl 2] 16163 str w0, [x26] 16164.L2323: 16165 ldr x0, [x19, #:lo12:.LANCHOR98] 16166 add x20, x0, x20, lsl 4 16167 ldr w0, [x20, 4] 16168 cmn w0, #1 16169 beq .L2332 16170 add w0, w0, 1 16171 str w0, [x20, 4] 16172.L2332: 16173 mov w0, 0 16174 b .L2316 16175.L2322: 16176 ldr x0, [x19, #:lo12:.LANCHOR98] 16177 ldr w2, [x26] 16178 add x0, x0, x20, lsl 4 16179 ldr x1, [x0, 8] 16180 str w2, [x1, x25, lsl 2] 16181 ldr w1, [x0, 4] 16182 orr w1, w1, -2147483648 16183 str w1, [x0, 4] 16184 adrp x0, .LANCHOR99 16185 strh w22, [x0, #:lo12:.LANCHOR99] 16186 b .L2323 16187.L2327: 16188 ldr x0, [x19, #:lo12:.LANCHOR98] 16189 adrp x5, .LANCHOR211 16190 add x28, x5, :lo12:.LANCHOR211 16191 mov w2, 1 16192 add x0, x0, x21 16193 str x5, [x29, 96] 16194 str w3, [x29, 112] 16195 mov w1, w2 16196 str w3, [x28, 4] 16197 ldr x0, [x0, 8] 16198 str x0, [x28, 8] 16199 adrp x0, .LANCHOR195 16200 ldr x0, [x0, #:lo12:.LANCHOR195] 16201 str x0, [x28, 16] 16202 mov x0, x28 16203 bl FlashReadPages 16204 ldr x0, [x28, 16] 16205 str x0, [x29, 120] 16206 ldr w3, [x29, 112] 16207 ldr x5, [x29, 96] 16208 ldrh w0, [x0, 8] 16209 cmp w0, w22 16210 beq .L2328 16211 mov w2, w3 16212 and w1, w23, 65535 16213 adrp x0, .LC60 16214 add x0, x0, :lo12:.LC60 16215 bl printf 16216 ldr x1, [x28, 16] 16217 mov w3, 4 16218 adrp x0, .LC28 16219 mov w2, w3 16220 add x0, x0, :lo12:.LC28 16221 bl rknand_print_hex 16222 ldr x0, [x29, 104] 16223 mov w2, 4 16224 ldr x1, [x27, #:lo12:.LANCHOR134] 16225 ldrh w3, [x0, #:lo12:.LANCHOR66] 16226 adrp x0, .LC61 16227 add x0, x0, :lo12:.LC61 16228 bl rknand_print_hex 16229 adrp x0, .LANCHOR78 16230 mov w1, 1 16231 str w1, [x0, #:lo12:.LANCHOR78] 16232.L2329: 16233 ldr x0, [x29, 120] 16234 ldrh w0, [x0, 8] 16235 cmp w0, w22 16236 beq .L2330 16237 mov w2, 624 16238 adrp x1, .LANCHOR237 16239 adrp x0, .LC5 16240 add x1, x1, :lo12:.LANCHOR237 16241 add x0, x0, :lo12:.LC5 16242 bl printf 16243 adrp x1, .LC6 16244 adrp x0, .LC7 16245 add x1, x1, :lo12:.LC6 16246 add x0, x0, :lo12:.LC7 16247 bl printf 16248.L2330: 16249 ldr x0, [x19, #:lo12:.LANCHOR98] 16250 add x1, x0, x21 16251 str wzr, [x1, 4] 16252 strh w22, [x0, x21] 16253 b .L2321 16254.L2328: 16255 ldr w0, [x5, #:lo12:.LANCHOR211] 16256 cmp w0, 256 16257 bne .L2329 16258 and w23, w23, 65535 16259 mov w2, w3 16260 mov w1, w23 16261 adrp x0, .LC62 16262 add x0, x0, :lo12:.LC62 16263 bl printf 16264 ldr x0, [x19, #:lo12:.LANCHOR98] 16265 mov w1, w23 16266 add x0, x0, x21 16267 ldr x2, [x0, 8] 16268 adrp x0, .LANCHOR130 16269 add x0, x0, :lo12:.LANCHOR130 16270 bl FtlMapWritePage 16271 b .L2329 16272 .size log2phys, .-log2phys 16273 .section .text.FtlCheckVpc,"ax",@progbits 16274 .align 2 16275 .global FtlCheckVpc 16276 .type FtlCheckVpc, %function 16277FtlCheckVpc: 16278 stp x29, x30, [sp, -112]! 16279 adrp x0, .LC48 16280 add x0, x0, :lo12:.LC48 16281 add x29, sp, 0 16282 stp x23, x24, [sp, 48] 16283 adrp x23, .LANCHOR74 16284 add x23, x23, :lo12:.LANCHOR74 16285 stp x21, x22, [sp, 32] 16286 mov w22, 0 16287 stp x19, x20, [sp, 16] 16288 stp x25, x26, [sp, 64] 16289 adrp x21, .LANCHOR238 16290 stp x27, x28, [sp, 80] 16291 add x1, x21, :lo12:.LANCHOR238 16292 adrp x20, check_valid_page_count_table 16293 bl printf 16294 add x19, x20, :lo12:check_valid_page_count_table 16295 mov x2, 8192 16296 mov w1, 0 16297 mov x0, x19 16298 bl memset 16299.L2336: 16300 ldr w0, [x23] 16301 cmp w22, w0 16302 bcc .L2338 16303 adrp x23, .LANCHOR40 16304 adrp x24, .LC63 16305 add x23, x23, :lo12:.LANCHOR40 16306 add x26, x20, :lo12:check_valid_page_count_table 16307 add x24, x24, :lo12:.LC63 16308 mov w22, 0 16309 mov w19, 0 16310 adrp x25, .LANCHOR85 16311.L2339: 16312 ldrh w0, [x23] 16313 cmp w0, w19 16314 bhi .L2341 16315 adrp x0, .LANCHOR89 16316 ldr x19, [x0, #:lo12:.LANCHOR89] 16317 cbz x19, .L2342 16318 adrp x0, .LANCHOR90 16319 adrp x25, .LC64 16320 add x20, x20, :lo12:check_valid_page_count_table 16321 add x25, x25, :lo12:.LC64 16322 ldrh w26, [x0, #:lo12:.LANCHOR90] 16323 adrp x0, .LANCHOR83 16324 mov x24, x0 16325 mov w23, 0 16326 ldr x1, [x0, #:lo12:.LANCHOR83] 16327 adrp x27, .LANCHOR85 16328 mov w28, 6 16329 sub x19, x19, x1 16330 mov x1, -6148914691236517206 16331 asr x19, x19, 1 16332 movk x1, 0xaaab, lsl 0 16333 mul x19, x19, x1 16334 and w19, w19, 65535 16335.L2343: 16336 cmp w23, w26 16337 bne .L2345 16338.L2342: 16339 adrp x0, .LC65 16340 mov w1, w22 16341 add x0, x0, :lo12:.LC65 16342 bl printf 16343 cbz w22, .L2335 16344 mov w2, 1849 16345 add x1, x21, :lo12:.LANCHOR238 16346 adrp x0, .LC5 16347 add x0, x0, :lo12:.LC5 16348 bl printf 16349 adrp x1, .LC6 16350 adrp x0, .LC7 16351 add x1, x1, :lo12:.LC6 16352 add x0, x0, :lo12:.LC7 16353 bl printf 16354.L2335: 16355 ldp x19, x20, [sp, 16] 16356 ldp x21, x22, [sp, 32] 16357 ldp x23, x24, [sp, 48] 16358 ldp x25, x26, [sp, 64] 16359 ldp x27, x28, [sp, 80] 16360 ldp x29, x30, [sp], 112 16361 ret 16362.L2338: 16363 mov w2, 0 16364 add x1, x29, 108 16365 mov w0, w22 16366 bl log2phys 16367 ldr w0, [x29, 108] 16368 cmn w0, #1 16369 beq .L2337 16370 lsr w0, w0, 10 16371 bl P2V_block_in_plane 16372 and x0, x0, 65535 16373 ldrh w1, [x19, x0, lsl 1] 16374 add w1, w1, 1 16375 strh w1, [x19, x0, lsl 1] 16376.L2337: 16377 add w22, w22, 1 16378 b .L2336 16379.L2341: 16380 ldr x0, [x25, #:lo12:.LANCHOR85] 16381 ubfiz x28, x19, 1, 16 16382 sxtw x27, w19 16383 ldrh w2, [x0, x28] 16384 ldrh w3, [x26, x27, lsl 1] 16385 cmp w2, w3 16386 beq .L2340 16387 mov w1, w19 16388 mov x0, x24 16389 bl printf 16390 ldr x0, [x25, #:lo12:.LANCHOR85] 16391 mov w1, 65535 16392 ldrh w0, [x0, x28] 16393 cmp w0, w1 16394 beq .L2340 16395 ldrh w1, [x26, x27, lsl 1] 16396 cmp w1, w0 16397 csinc w22, w22, wzr, ls 16398.L2340: 16399 add w19, w19, 1 16400 and w19, w19, 65535 16401 b .L2339 16402.L2345: 16403 ldr x1, [x27, #:lo12:.LANCHOR85] 16404 ubfiz x0, x19, 1, 16 16405 ldrh w2, [x1, x0] 16406 cbz w2, .L2344 16407 ldrh w3, [x20, w19, sxtw 1] 16408 mov w22, 1 16409 mov w1, w19 16410 mov x0, x25 16411 bl printf 16412.L2344: 16413 ldr x0, [x24, #:lo12:.LANCHOR83] 16414 umull x19, w19, w28 16415 ldrh w19, [x0, x19] 16416 mov w0, 65535 16417 cmp w19, w0 16418 beq .L2342 16419 add w23, w23, 1 16420 and w23, w23, 65535 16421 b .L2343 16422 .size FtlCheckVpc, .-FtlCheckVpc 16423 .section .text.Ftlscanalldata,"ax",@progbits 16424 .align 2 16425 .global Ftlscanalldata 16426 .type Ftlscanalldata, %function 16427Ftlscanalldata: 16428 sub sp, sp, #96 16429 adrp x0, .LC66 16430 mov w1, 0 16431 add x0, x0, :lo12:.LC66 16432 stp x29, x30, [sp, 16] 16433 add x29, sp, 16 16434 stp x19, x20, [sp, 32] 16435 adrp x20, .LANCHOR211 16436 stp x21, x22, [sp, 48] 16437 mov w19, 0 16438 adrp x21, .LANCHOR74 16439 add x22, x20, :lo12:.LANCHOR211 16440 add x21, x21, :lo12:.LANCHOR74 16441 str x23, [sp, 64] 16442 bl printf 16443.L2361: 16444 ldr w0, [x21] 16445 cmp w19, w0 16446 bcc .L2367 16447 ldp x19, x20, [sp, 32] 16448 ldp x21, x22, [sp, 48] 16449 ldp x29, x30, [sp, 16] 16450 ldr x23, [sp, 64] 16451 add sp, sp, 96 16452 ret 16453.L2367: 16454 mov w2, 0 16455 add x1, x29, 76 16456 mov w0, w19 16457 bl log2phys 16458 tst x19, 2047 16459 bne .L2362 16460 ldr w2, [x29, 76] 16461 adrp x0, .LC67 16462 mov w1, w19 16463 add x0, x0, :lo12:.LC67 16464 bl printf 16465.L2362: 16466 ldr w1, [x29, 76] 16467 cmn w1, #1 16468 beq .L2364 16469 add x0, x20, :lo12:.LANCHOR211 16470 str wzr, [x20, #:lo12:.LANCHOR211] 16471 mov w2, 0 16472 str w1, [x0, 4] 16473 adrp x1, .LANCHOR189 16474 str w19, [x0, 24] 16475 ldr x1, [x1, #:lo12:.LANCHOR189] 16476 str x1, [x0, 8] 16477 adrp x1, .LANCHOR195 16478 ldr x23, [x1, #:lo12:.LANCHOR195] 16479 mov w1, 1 16480 str x23, [x0, 16] 16481 bl FlashReadPages 16482 ldr w0, [x20, #:lo12:.LANCHOR211] 16483 cmp w0, 256 16484 ccmn w0, #1, 4, ne 16485 beq .L2365 16486 ldr w0, [x23, 8] 16487 cmp w19, w0 16488 beq .L2364 16489.L2365: 16490 ldp x1, x0, [x22, 8] 16491 ldr w2, [x1, 4] 16492 str w2, [sp] 16493 ldr w2, [x22, 4] 16494 ldp w3, w4, [x0] 16495 ldp w5, w6, [x0, 8] 16496 adrp x0, .LC68 16497 ldr w7, [x1] 16498 add x0, x0, :lo12:.LC68 16499 mov w1, w19 16500 bl printf 16501.L2364: 16502 add w19, w19, 1 16503 b .L2361 16504 .size Ftlscanalldata, .-Ftlscanalldata 16505 .section .text.FtlReUsePrevPpa,"ax",@progbits 16506 .align 2 16507 .global FtlReUsePrevPpa 16508 .type FtlReUsePrevPpa, %function 16509FtlReUsePrevPpa: 16510 stp x29, x30, [sp, -80]! 16511 add x29, sp, 0 16512 stp x21, x22, [sp, 32] 16513 adrp x22, .LANCHOR85 16514 stp x19, x20, [sp, 16] 16515 mov w21, w0 16516 str w1, [x29, 76] 16517 lsr w0, w1, 10 16518 str x23, [sp, 48] 16519 bl P2V_block_in_plane 16520 ldr x2, [x22, #:lo12:.LANCHOR85] 16521 and w3, w0, 65535 16522 ubfiz x20, x3, 1, 16 16523 ldrh w1, [x2, x20] 16524 cbnz w1, .L2370 16525 adrp x0, .LANCHOR89 16526 ldr x19, [x0, #:lo12:.LANCHOR89] 16527 cbz x19, .L2371 16528 adrp x2, .LANCHOR83 16529 mov x5, -6148914691236517206 16530 movk x5, 0xaaab, lsl 0 16531 adrp x23, .LANCHOR90 16532 ldr x2, [x2, #:lo12:.LANCHOR83] 16533 mov w6, 65535 16534 ldrh w4, [x23, #:lo12:.LANCHOR90] 16535 sub x19, x19, x2 16536 asr x19, x19, 1 16537 mul x19, x19, x5 16538 mov w5, 6 16539 and w19, w19, 65535 16540.L2372: 16541 cmp w1, w4 16542 beq .L2371 16543 cmp w19, w3 16544 bne .L2373 16545 mov w1, w19 16546 add x0, x0, :lo12:.LANCHOR89 16547 bl List_remove_node 16548 ldrh w0, [x23, #:lo12:.LANCHOR90] 16549 cbnz w0, .L2374 16550 mov w2, 2271 16551 adrp x1, .LANCHOR239 16552 adrp x0, .LC5 16553 add x1, x1, :lo12:.LANCHOR239 16554 add x0, x0, :lo12:.LC5 16555 bl printf 16556 adrp x1, .LC6 16557 adrp x0, .LC7 16558 add x1, x1, :lo12:.LC6 16559 add x0, x0, :lo12:.LC7 16560 bl printf 16561.L2374: 16562 ldrh w0, [x23, #:lo12:.LANCHOR90] 16563 sub w0, w0, #1 16564 strh w0, [x23, #:lo12:.LANCHOR90] 16565 mov w0, w19 16566 bl INSERT_DATA_LIST 16567 ldr x1, [x22, #:lo12:.LANCHOR85] 16568 ldrh w0, [x1, x20] 16569 add w0, w0, 1 16570 strh w0, [x1, x20] 16571.L2371: 16572 add x1, x29, 76 16573 mov w2, 1 16574 mov w0, w21 16575 bl log2phys 16576 ldp x19, x20, [sp, 16] 16577 ldp x21, x22, [sp, 32] 16578 ldr x23, [sp, 48] 16579 ldp x29, x30, [sp], 80 16580 ret 16581.L2373: 16582 umull x19, w19, w5 16583 ldrh w19, [x2, x19] 16584 cmp w19, w6 16585 beq .L2371 16586 add w1, w1, 1 16587 and w1, w1, 65535 16588 b .L2372 16589.L2370: 16590 add w1, w1, 1 16591 strh w1, [x2, x20] 16592 b .L2371 16593 .size FtlReUsePrevPpa, .-FtlReUsePrevPpa 16594 .section .text.FtlRecoverySuperblock,"ax",@progbits 16595 .align 2 16596 .global FtlRecoverySuperblock 16597 .type FtlRecoverySuperblock, %function 16598FtlRecoverySuperblock: 16599 stp x29, x30, [sp, -208]! 16600 mov w1, 65535 16601 add x29, sp, 0 16602 stp x19, x20, [sp, 16] 16603 mov x19, x0 16604 stp x21, x22, [sp, 32] 16605 ldrh w0, [x0] 16606 stp x23, x24, [sp, 48] 16607 stp x25, x26, [sp, 64] 16608 cmp w0, w1 16609 stp x27, x28, [sp, 80] 16610 beq .L2542 16611 ldrb w0, [x19, 6] 16612 str w0, [x29, 180] 16613 adrp x0, .LANCHOR52 16614 ldrh w26, [x19, 2] 16615 str x0, [x29, 144] 16616 ldrh w2, [x0, #:lo12:.LANCHOR52] 16617 cmp w2, w26 16618 bne .L2383 16619 strh wzr, [x19, 4] 16620.L2549: 16621 strb wzr, [x19, 6] 16622.L2542: 16623 ldp x19, x20, [sp, 16] 16624 mov w0, 0 16625 ldp x21, x22, [sp, 32] 16626 ldp x23, x24, [sp, 48] 16627 ldp x25, x26, [sp, 64] 16628 ldp x27, x28, [sp, 80] 16629 ldp x29, x30, [sp], 208 16630 ret 16631.L2383: 16632 ldrh w0, [x19, 16] 16633 mov w21, 0 16634.L2384: 16635 cmp w0, w1 16636 beq .L2385 16637 ldrb w1, [x19, 8] 16638 cmp w1, 1 16639 bne .L2386 16640 bl FtlGetLastWrittenPage 16641 mov w20, w0 16642 cmn w0, #1 16643 beq .L2387 16644 adrp x0, .LANCHOR16 16645 ldrb w0, [x0, #:lo12:.LANCHOR16] 16646 cbnz w0, .L2464 16647 adrp x0, .LANCHOR17 16648 add x0, x0, :lo12:.LANCHOR17 16649 ldrh w23, [x0, w20, sxtw 1] 16650.L2388: 16651 adrp x1, .LANCHOR108 16652 adrp x2, .LANCHOR38 16653 adrp x22, .LANCHOR186 16654 add x4, x19, 16 16655 ldr x6, [x1, #:lo12:.LANCHOR108] 16656 adrp x1, .LANCHOR58 16657 ldr x0, [x22, #:lo12:.LANCHOR186] 16658 mov w27, 0 16659 ldrh w7, [x1, #:lo12:.LANCHOR58] 16660 add x1, x19, 16 16661 str x1, [x29, 184] 16662 mov w8, 65535 16663 ldrh w1, [x2, #:lo12:.LANCHOR38] 16664 mov w10, 56 16665 str x2, [x29, 160] 16666 add x1, x1, 8 16667 add x1, x19, x1, lsl 1 16668.L2389: 16669 cmp x1, x4 16670 bne .L2393 16671 ldrb w1, [x19, 8] 16672 cmp w1, 1 16673 bne .L2465 16674 adrp x1, .LANCHOR16 16675 ldrb w1, [x1, #:lo12:.LANCHOR16] 16676 cmp w1, 0 16677 cset w1, ne 16678 str w1, [x29, 176] 16679.L2394: 16680 ldr w2, [x29, 176] 16681 mov w1, w27 16682 adrp x24, .LC69 16683 adrp x25, .LANCHOR241 16684 add x24, x24, :lo12:.LC69 16685 add x25, x25, :lo12:.LANCHOR241 16686 mov x28, 0 16687 bl FlashReadPages 16688 adrp x0, .LANCHOR165 16689 mov w5, 65535 16690 str x0, [x29, 168] 16691 ldr w21, [x0, #:lo12:.LANCHOR165] 16692 sub w21, w21, #1 16693.L2395: 16694 and w0, w28, 65535 16695 cmp w27, w0 16696 bhi .L2400 16697 bne .L2398 16698 ldr x0, [x22, #:lo12:.LANCHOR186] 16699 add w20, w20, 1 16700 and w20, w20, 65535 16701 ldr w0, [x0, 4] 16702.L2544: 16703 lsr w0, w0, 10 16704 bl P2V_plane 16705 ldrb w1, [x19, 8] 16706 and w27, w0, 65535 16707 cmp w1, 1 16708 bne .L2402 16709 adrp x0, .LANCHOR16 16710 ldrb w0, [x0, #:lo12:.LANCHOR16] 16711 cbnz w0, .L2402 16712 adrp x0, .LANCHOR17 16713 add x0, x0, :lo12:.LANCHOR17 16714 ldrh w20, [x0, w20, sxtw 1] 16715.L2402: 16716 ldr x0, [x29, 144] 16717 ldrh w0, [x0, #:lo12:.LANCHOR52] 16718 cmp w0, w20 16719 bne .L2403 16720 strh w20, [x19, 2] 16721 strb wzr, [x19, 6] 16722 strh wzr, [x19, 4] 16723.L2403: 16724 ldr w0, [x29, 180] 16725 cmp w20, w26 16726 cset w2, eq 16727 cmp w27, w0 16728 cset w0, eq 16729 tst w2, w0 16730 beq .L2404 16731.L2550: 16732 mov w2, w27 16733 mov w1, w20 16734 mov x0, x19 16735 bl ftl_sb_update_avl_pages 16736 b .L2542 16737.L2385: 16738 add w21, w21, 1 16739 and w21, w21, 65535 16740 add x0, x19, x21, sxtw 1 16741 ldrh w0, [x0, 16] 16742 b .L2384 16743.L2386: 16744 mov w1, 0 16745 bl FtlGetLastWrittenPage 16746 mov w20, w0 16747 cmn w0, #1 16748 beq .L2387 16749.L2464: 16750 mov w23, w20 16751 b .L2388 16752.L2387: 16753 cbz w26, .L2390 16754 mov w2, 2350 16755 adrp x1, .LANCHOR240 16756 adrp x0, .LC5 16757 add x1, x1, :lo12:.LANCHOR240 16758 add x0, x0, :lo12:.LC5 16759 bl printf 16760 adrp x1, .LC6 16761 adrp x0, .LC7 16762 add x1, x1, :lo12:.LC6 16763 add x0, x0, :lo12:.LC7 16764 bl printf 16765.L2390: 16766 ldr w0, [x29, 180] 16767 cmp w0, 0 16768 ccmp w21, w0, 4, ne 16769 beq .L2391 16770 mov w2, 2351 16771 adrp x1, .LANCHOR240 16772 adrp x0, .LC5 16773 add x1, x1, :lo12:.LANCHOR240 16774 add x0, x0, :lo12:.LC5 16775 bl printf 16776 adrp x1, .LC6 16777 adrp x0, .LC7 16778 add x1, x1, :lo12:.LC6 16779 add x0, x0, :lo12:.LC7 16780 bl printf 16781.L2391: 16782 strh wzr, [x19, 2] 16783 b .L2549 16784.L2393: 16785 ldrh w2, [x4] 16786 cmp w2, w8 16787 beq .L2392 16788 umaddl x5, w27, w10, x0 16789 orr w2, w23, w2, lsl 10 16790 add w3, w27, 1 16791 str w2, [x5, 4] 16792 mul w2, w27, w7 16793 and w27, w3, 65535 16794 str xzr, [x5, 8] 16795 asr w2, w2, 2 16796 add x2, x6, x2, sxtw 2 16797 str x2, [x5, 16] 16798.L2392: 16799 add x4, x4, 2 16800 b .L2389 16801.L2465: 16802 str wzr, [x29, 176] 16803 b .L2394 16804.L2400: 16805 mov x0, 56 16806 ldr x2, [x22, #:lo12:.LANCHOR186] 16807 mul x0, x28, x0 16808 add x1, x2, x0 16809 ldr w0, [x2, x0] 16810 cbnz w0, .L2396 16811 ldr x6, [x1, 16] 16812 ldr w4, [x6, 4] 16813 cmn w4, #1 16814 beq .L2397 16815 ldr x0, [x29, 168] 16816 ldr w1, [x0, #:lo12:.LANCHOR165] 16817 mov w0, w4 16818 bl ftl_cmp_data_ver 16819 cbz w0, .L2397 16820 ldr x0, [x29, 168] 16821 add w4, w4, 1 16822 str w4, [x0, #:lo12:.LANCHOR165] 16823.L2397: 16824 ldr w0, [x6] 16825 cmn w0, #1 16826 bne .L2399 16827.L2398: 16828 ldr x0, [x22, #:lo12:.LANCHOR186] 16829 and x28, x28, 65535 16830 mov x1, 56 16831 and w20, w20, 65535 16832 madd x28, x28, x1, x0 16833 ldr w0, [x28, 4] 16834 b .L2544 16835.L2396: 16836 ldr w1, [x1, 4] 16837 mov x0, x24 16838 bl printf 16839 ldrh w0, [x19] 16840 and w5, w23, 65535 16841 strh w0, [x25] 16842.L2399: 16843 add x28, x28, 1 16844 b .L2395 16845.L2404: 16846 mov w0, 65535 16847 cmp w5, w0 16848 bne .L2405 16849 cbnz w1, .L2406 16850.L2405: 16851 adrp x24, .LANCHOR139 16852 and w6, w23, 65535 16853 ldr w0, [x24, #:lo12:.LANCHOR139] 16854 cmn w0, #1 16855 bne .L2407 16856 str w21, [x24, #:lo12:.LANCHOR139] 16857.L2407: 16858 add w0, w26, 7 16859 ldr w7, [x24, #:lo12:.LANCHOR139] 16860 cmp w0, w23, uxth 16861 bge .L2466 16862 sub w23, w6, #7 16863 and w23, w23, 65535 16864.L2408: 16865 mov w3, -1 16866 adrp x5, .LANCHOR123 16867 mov w28, w3 16868 add x5, x5, :lo12:.LANCHOR123 16869 mov w4, 65535 16870.L2409: 16871 cmp w23, w6 16872 bhi .L2424 16873 ldr x1, [x29, 160] 16874 mov w25, 0 16875 ldr x0, [x22, #:lo12:.LANCHOR186] 16876 mov w10, 56 16877 ldr x2, [x29, 184] 16878 ldrh w1, [x1, #:lo12:.LANCHOR38] 16879 add x1, x1, 8 16880 add x1, x19, x1, lsl 1 16881 b .L2425 16882.L2466: 16883 mov w23, w26 16884 b .L2408 16885.L2411: 16886 ldrh w8, [x2] 16887 cmp w8, w4 16888 beq .L2410 16889 umaddl x11, w25, w10, x0 16890 add w25, w25, 1 16891 and w25, w25, 65535 16892 orr w8, w23, w8, lsl 10 16893 str w8, [x11, 4] 16894.L2410: 16895 add x2, x2, 2 16896.L2425: 16897 cmp x2, x1 16898 bne .L2411 16899 ldr w2, [x29, 176] 16900 mov w1, w25 16901 str x5, [x29, 112] 16902 str w4, [x29, 120] 16903 str w7, [x29, 128] 16904 str w6, [x29, 136] 16905 str w3, [x29, 152] 16906 bl FlashReadPages 16907 adrp x1, .LANCHOR16 16908 mov w2, 56 16909 ldr w0, [x24, #:lo12:.LANCHOR139] 16910 sxtw x12, w23 16911 ldrb w10, [x1, #:lo12:.LANCHOR16] 16912 mov w11, 1 16913 ldr x1, [x22, #:lo12:.LANCHOR186] 16914 ldr w4, [x29, 120] 16915 ldr w7, [x29, 128] 16916 ldr w6, [x29, 136] 16917 ldr w3, [x29, 152] 16918 nop // between mem op and mult-accumulate 16919 umaddl x25, w25, w2, x1 16920 ldr x5, [x29, 112] 16921 mov w2, 0 16922.L2412: 16923 cmp x25, x1 16924 bne .L2422 16925 cbz w2, .L2423 16926 str w0, [x24, #:lo12:.LANCHOR139] 16927.L2423: 16928 add w23, w23, 1 16929 and w23, w23, 65535 16930 b .L2409 16931.L2422: 16932 ldr w8, [x1] 16933 cbnz w8, .L2413 16934 ldr x8, [x1, 16] 16935 ldrh w13, [x8] 16936 cmp w13, w4 16937 beq .L2468 16938 ldr w8, [x8, 4] 16939 cmn w8, #1 16940 beq .L2468 16941 cmn w3, #1 16942 bne .L2470 16943 ldrh w2, [x5, x12, lsl 1] 16944 cmp w2, w4 16945 bne .L2415 16946 cbz w10, .L2470 16947.L2415: 16948 cmp w21, w0 16949 mov w2, w11 16950 csel w3, w3, w0, eq 16951.L2414: 16952 mov w28, w0 16953 add x1, x1, 56 16954 mov w0, w8 16955 b .L2412 16956.L2413: 16957 cbz w2, .L2416 16958 str w0, [x24, #:lo12:.LANCHOR139] 16959.L2416: 16960 adrp x0, .LANCHOR241 16961 ldrh w1, [x19] 16962 strh w1, [x0, #:lo12:.LANCHOR241] 16963 ldrb w0, [x19, 8] 16964 cbnz w0, .L2406 16965 adrp x0, .LANCHOR123 16966 add x0, x0, :lo12:.LANCHOR123 16967 ldrh w1, [x0, w23, sxtw 1] 16968 mov w0, 65535 16969 cmp w1, w0 16970 bne .L2418 16971 cmn w3, #1 16972 beq .L2419 16973 str w3, [x24, #:lo12:.LANCHOR139] 16974.L2406: 16975 adrp x0, .LANCHOR242 16976 mov w23, w26 16977 mov w1, 1 16978 adrp x28, .LANCHOR139 16979 strh w1, [x0, #:lo12:.LANCHOR242] 16980 add x0, x28, :lo12:.LANCHOR139 16981 str x0, [x29, 112] 16982.L2426: 16983 ldr x2, [x29, 160] 16984 adrp x1, .LANCHOR16 16985 ldr x0, [x22, #:lo12:.LANCHOR186] 16986 mov w24, 0 16987 ldrb w5, [x1, #:lo12:.LANCHOR16] 16988 mov w6, 65535 16989 ldr x3, [x29, 184] 16990 ldrh w2, [x2, #:lo12:.LANCHOR38] 16991 str x1, [x29, 128] 16992 add x2, x2, 8 16993 add x2, x19, x2, lsl 1 16994.L2427: 16995 cmp x2, x3 16996 bne .L2430 16997 ldr w2, [x29, 176] 16998 mov w1, w24 16999 mov x25, 0 17000 bl FlashReadPages 17001 mov w0, 56 17002 umull x0, w24, w0 17003 str x0, [x29, 136] 17004 adrp x0, .LANCHOR241 17005 add x0, x0, :lo12:.LANCHOR241 17006 str x0, [x29, 120] 17007.L2431: 17008 ldr x0, [x29, 136] 17009 cmp x25, x0 17010 bne .L2457 17011 ldrb w0, [x19, 8] 17012 add w23, w23, 1 17013 and w23, w23, 65535 17014 cmp w0, 1 17015 bne .L2458 17016 ldr x0, [x29, 128] 17017 ldrb w0, [x0, #:lo12:.LANCHOR16] 17018 cbz w0, .L2458 17019 adrp x0, .LANCHOR53 17020 ldrh w0, [x0, #:lo12:.LANCHOR53] 17021 cmp w0, w23 17022 bne .L2458 17023 cmp w20, w23 17024 beq .L2433 17025.L2458: 17026 ldr x0, [x29, 144] 17027 ldrh w0, [x0, #:lo12:.LANCHOR52] 17028 cmp w0, w23 17029 bne .L2426 17030 ldr x0, [x29, 160] 17031 mov w2, 65535 17032 strh w23, [x19, 2] 17033 strh wzr, [x19, 4] 17034 ldrh w1, [x0, #:lo12:.LANCHOR38] 17035 mov w0, 0 17036.L2459: 17037 cmp w0, w1 17038 beq .L2542 17039 ldr x4, [x29, 184] 17040 ldrh w3, [x4], 2 17041 str x4, [x29, 184] 17042 cmp w3, w2 17043 beq .L2460 17044 strb w0, [x19, 6] 17045 b .L2542 17046.L2419: 17047 cmp w21, w7 17048 beq .L2420 17049 str w7, [x24, #:lo12:.LANCHOR139] 17050 b .L2406 17051.L2420: 17052 ldr w0, [x24, #:lo12:.LANCHOR139] 17053.L2551: 17054 sub w0, w0, #1 17055.L2545: 17056 str w0, [x24, #:lo12:.LANCHOR139] 17057 b .L2406 17058.L2418: 17059 cmp w28, w21 17060 beq .L2421 17061 cmn w28, #1 17062 beq .L2406 17063 str w28, [x24, #:lo12:.LANCHOR139] 17064 b .L2406 17065.L2421: 17066 ldr w0, [x24, #:lo12:.LANCHOR139] 17067 cmp w21, w0 17068 bne .L2551 17069 b .L2406 17070.L2468: 17071 mov w8, w0 17072 mov w0, w28 17073 b .L2414 17074.L2470: 17075 mov w2, 1 17076 b .L2414 17077.L2424: 17078 mov w0, -1 17079 b .L2545 17080.L2430: 17081 ldrh w1, [x3] 17082 cmp w1, w6 17083 beq .L2428 17084 mov w4, 56 17085 orr w1, w23, w1, lsl 10 17086 umaddl x4, w24, w4, x0 17087 str w1, [x4, 4] 17088 ldrb w7, [x19, 8] 17089 cmp w7, 1 17090 bne .L2429 17091 cbz w5, .L2429 17092 orr w1, w1, -2147483648 17093 str w1, [x4, 4] 17094.L2429: 17095 add w24, w24, 1 17096 and w24, w24, 65535 17097.L2428: 17098 add x3, x3, 2 17099 b .L2427 17100.L2457: 17101 ldr x4, [x22, #:lo12:.LANCHOR186] 17102 add x4, x4, x25 17103 ldr w5, [x4, 4] 17104 str w5, [x29, 204] 17105 lsr w0, w5, 10 17106 bl P2V_plane 17107 and w0, w0, 65535 17108 cmp w23, w26 17109 bcc .L2432 17110 ldr w1, [x29, 180] 17111 ccmp w1, w0, 0, eq 17112 bhi .L2432 17113 cmp w23, w20 17114 ccmp w27, w0, 0, eq 17115 beq .L2433 17116 ldr w0, [x4] 17117 cmn w0, #1 17118 beq .L2434 17119 ldr x3, [x4, 16] 17120 mov w0, 61589 17121 ldrh w1, [x3] 17122 cmp w1, w0 17123 beq .L2435 17124 ldrh w0, [x19] 17125.L2547: 17126 bl decrement_vpc_count 17127 b .L2432 17128.L2435: 17129 ldr w21, [x3, 4] 17130 cmn w21, #1 17131 beq .L2436 17132 ldr x0, [x29, 168] 17133 ldr w1, [x0, #:lo12:.LANCHOR165] 17134 mov w0, w21 17135 bl ftl_cmp_data_ver 17136 cbz w0, .L2436 17137 ldr x1, [x29, 168] 17138 add w0, w21, 1 17139 str w0, [x1, #:lo12:.LANCHOR165] 17140.L2436: 17141 ldp w24, w0, [x3, 8] 17142 add x1, x29, 200 17143 str w0, [x29, 196] 17144 mov w2, 0 17145 mov w0, w24 17146 bl log2phys 17147 ldr w1, [x28, #:lo12:.LANCHOR139] 17148 ldr w3, [x29, 196] 17149 cmn w1, #1 17150 beq .L2437 17151 mov w0, w21 17152 bl ftl_cmp_data_ver 17153 cbz w0, .L2437 17154 cmn w3, #1 17155 beq .L2438 17156 ldr x0, [x22, #:lo12:.LANCHOR186] 17157 mov w2, 0 17158 mov w1, 1 17159 add x0, x0, x25 17160 ldr x4, [x0, 16] 17161 str w3, [x0, 4] 17162 str x4, [x29, 152] 17163 bl FlashReadPages 17164 ldr x0, [x22, #:lo12:.LANCHOR186] 17165 ldr x4, [x29, 152] 17166 add x3, x0, x25 17167 ldr w0, [x0, x25] 17168 cmn w0, #1 17169 bne .L2439 17170.L2440: 17171 mov w0, -1 17172 str w0, [x29, 196] 17173.L2447: 17174 ldr w3, [x29, 196] 17175 cmn w3, #1 17176 beq .L2432 17177.L2463: 17178 lsr w0, w3, 10 17179 bl P2V_block_in_plane 17180 and w24, w0, 65535 17181 adrp x0, .LANCHOR40 17182 mov w3, w24 17183 ldrh w0, [x0, #:lo12:.LANCHOR40] 17184 cmp w0, w24 17185 bhi .L2453 17186 mov w2, 2683 17187 adrp x1, .LANCHOR240 17188 adrp x0, .LC5 17189 add x1, x1, :lo12:.LANCHOR240 17190 add x0, x0, :lo12:.LC5 17191 str w24, [x29, 152] 17192 bl printf 17193 adrp x1, .LC6 17194 adrp x0, .LC7 17195 add x1, x1, :lo12:.LC6 17196 add x0, x0, :lo12:.LC7 17197 bl printf 17198 ldr w3, [x29, 152] 17199.L2453: 17200 adrp x1, .LANCHOR85 17201 ubfiz x0, x24, 1, 16 17202 ldr x1, [x1, #:lo12:.LANCHOR85] 17203 ldrh w0, [x1, x0] 17204 cbz w0, .L2454 17205 mov w0, w3 17206 b .L2547 17207.L2438: 17208 ldp w1, w0, [x29, 200] 17209 cmp w1, w0 17210 bne .L2432 17211 mov w2, 1 17212 add x1, x29, 196 17213 mov w0, w24 17214 bl log2phys 17215.L2432: 17216 add x25, x25, 56 17217 b .L2431 17218.L2439: 17219 ldr w0, [x4, 8] 17220 cmp w24, w0 17221 bne .L2440 17222 ldr w0, [x4, 4] 17223 str w0, [x29, 152] 17224 str x4, [x29, 104] 17225 uxtw x1, w0 17226 ldr w0, [x28, #:lo12:.LANCHOR139] 17227 bl ftl_cmp_data_ver 17228 cbz w0, .L2440 17229 ldp w0, w1, [x29, 200] 17230 ldr x4, [x29, 104] 17231 cmp w0, w1 17232 ldr w1, [x29, 196] 17233 bne .L2442 17234.L2546: 17235 mov w0, w24 17236 bl FtlReUsePrevPpa 17237 b .L2440 17238.L2442: 17239 cmp w0, w1 17240 beq .L2440 17241 cmn w0, #1 17242 beq .L2443 17243 ldr x4, [x3, 16] 17244 mov w2, 0 17245 str w0, [x3, 4] 17246 mov w1, 1 17247 str x4, [x29, 104] 17248 mov x0, x3 17249 bl FlashReadPages 17250 ldr x4, [x29, 104] 17251.L2444: 17252 ldr x0, [x22, #:lo12:.LANCHOR186] 17253 ldr w0, [x0, x25] 17254 cmn w0, #1 17255 beq .L2445 17256 ldr x0, [x29, 112] 17257 ldr w3, [x4, 4] 17258 mov w1, w3 17259 ldr w0, [x0] 17260 bl ftl_cmp_data_ver 17261 cbz w0, .L2445 17262 ldr w0, [x29, 152] 17263 mov w1, w3 17264 bl ftl_cmp_data_ver 17265 cbz w0, .L2440 17266.L2445: 17267 ldr w1, [x29, 196] 17268 b .L2546 17269.L2443: 17270 str w0, [x3] 17271 b .L2444 17272.L2437: 17273 ldp w1, w0, [x29, 200] 17274 cmp w1, w0 17275 beq .L2447 17276 cmn w3, #1 17277 beq .L2449 17278 adrp x0, .LANCHOR43 17279 ubfx x3, x3, 10, 21 17280 ldr w0, [x0, #:lo12:.LANCHOR43] 17281 cmp w3, w0 17282 bcs .L2432 17283.L2449: 17284 mov w2, 1 17285 add x1, x29, 204 17286 mov w0, w24 17287 bl log2phys 17288 ldr w3, [x29, 200] 17289 cmn w3, #1 17290 beq .L2447 17291 ldr w0, [x29, 196] 17292 cmp w3, w0 17293 beq .L2463 17294 lsr w0, w3, 10 17295 bl P2V_block_in_plane 17296 adrp x1, .LANCHOR93 17297 and w0, w0, 65535 17298 ldrh w1, [x1, #:lo12:.LANCHOR93] 17299 cmp w1, w0 17300 beq .L2452 17301 adrp x1, .LANCHOR94 17302 ldrh w1, [x1, #:lo12:.LANCHOR94] 17303 cmp w1, w0 17304 beq .L2452 17305 adrp x1, .LANCHOR95 17306 ldrh w1, [x1, #:lo12:.LANCHOR95] 17307 cmp w1, w0 17308 bne .L2447 17309.L2452: 17310 ldr x0, [x22, #:lo12:.LANCHOR186] 17311 mov w2, 0 17312 mov w1, 1 17313 ldr x4, [x0, 16] 17314 str w3, [x0, 4] 17315 str x4, [x29, 152] 17316 bl FlashReadPages 17317 ldr x0, [x22, #:lo12:.LANCHOR186] 17318 ldr w0, [x0] 17319 cmn w0, #1 17320 beq .L2447 17321 ldr x4, [x29, 152] 17322 mov w0, w21 17323 ldr w1, [x4, 4] 17324 bl ftl_cmp_data_ver 17325 cbnz w0, .L2447 17326 mov w2, 1 17327 add x1, x29, 200 17328 mov w0, w24 17329 bl log2phys 17330 b .L2447 17331.L2454: 17332 mov w1, w24 17333 adrp x0, .LC70 17334 add x0, x0, :lo12:.LC70 17335 bl printf 17336 b .L2432 17337.L2434: 17338 ldr x1, [x29, 120] 17339 mov w2, w21 17340 ldrh w0, [x19] 17341 strh w0, [x1] 17342 mov w1, w5 17343 adrp x0, .LC71 17344 add x0, x0, :lo12:.LC71 17345 bl printf 17346 adrp x2, .LANCHOR243 17347 ldr w0, [x2, #:lo12:.LANCHOR243] 17348 cmp w0, 31 17349 bhi .L2455 17350 adrp x1, .LANCHOR244 17351 add x1, x1, :lo12:.LANCHOR244 17352 ldr w3, [x29, 204] 17353 str w3, [x1, w0, uxtw 2] 17354 add w0, w0, 1 17355 str w0, [x2, #:lo12:.LANCHOR243] 17356.L2455: 17357 ldrh w0, [x19] 17358 bl decrement_vpc_count 17359 ldr w0, [x28, #:lo12:.LANCHOR139] 17360 cmn w0, #1 17361 bne .L2456 17362.L2548: 17363 str w21, [x28, #:lo12:.LANCHOR139] 17364 b .L2432 17365.L2456: 17366 cmp w21, w0 17367 bcs .L2432 17368 b .L2548 17369.L2460: 17370 add w0, w0, 1 17371 and w0, w0, 65535 17372 b .L2459 17373.L2433: 17374 strb w27, [x19, 6] 17375 strh w20, [x19, 2] 17376 b .L2550 17377 .size FtlRecoverySuperblock, .-FtlRecoverySuperblock 17378 .section .text.FtlGcScanTempBlk,"ax",@progbits 17379 .align 2 17380 .global FtlGcScanTempBlk 17381 .type FtlGcScanTempBlk, %function 17382FtlGcScanTempBlk: 17383 stp x29, x30, [sp, -176]! 17384 mov w2, 65535 17385 add x29, sp, 0 17386 stp x19, x20, [sp, 16] 17387 mov x19, x0 17388 adrp x0, .LANCHOR245 17389 stp x21, x22, [sp, 32] 17390 stp x23, x24, [sp, 48] 17391 ldrh w20, [x0, #:lo12:.LANCHOR245] 17392 stp x25, x26, [sp, 64] 17393 stp x27, x28, [sp, 80] 17394 cmp w20, w2 17395 str x0, [x29, 96] 17396 beq .L2580 17397 cbnz w20, .L2553 17398.L2554: 17399 bl FtlGcPageVarInit 17400 b .L2555 17401.L2580: 17402 mov w20, 0 17403.L2553: 17404 adrp x0, .LANCHOR52 17405 ldrh w0, [x0, #:lo12:.LANCHOR52] 17406 cmp w0, w1 17407 beq .L2554 17408.L2555: 17409 adrp x24, .LANCHOR74 17410 add x24, x24, :lo12:.LANCHOR74 17411 mov w27, -1 17412.L2556: 17413 ldrh w1, [x19] 17414 mov w0, 65535 17415 strb wzr, [x19, 8] 17416 cmp w1, w0 17417 beq .L2581 17418 mov w28, 56 17419.L2579: 17420 adrp x1, .LANCHOR107 17421 adrp x23, .LANCHOR186 17422 add x3, x19, 16 17423 mov w21, 0 17424 ldr x5, [x1, #:lo12:.LANCHOR107] 17425 adrp x1, .LANCHOR57 17426 ldr x0, [x23, #:lo12:.LANCHOR186] 17427 mov w10, 65535 17428 ldrh w6, [x1, #:lo12:.LANCHOR57] 17429 adrp x1, .LANCHOR108 17430 ldr x7, [x1, #:lo12:.LANCHOR108] 17431 adrp x1, .LANCHOR58 17432 ldrh w8, [x1, #:lo12:.LANCHOR58] 17433 adrp x1, .LANCHOR38 17434 ldrh w1, [x1, #:lo12:.LANCHOR38] 17435 add x1, x1, 8 17436 add x1, x19, x1, lsl 1 17437.L2558: 17438 cmp x3, x1 17439 bne .L2560 17440 mov w2, 0 17441 mov w1, w21 17442 bl FlashReadPages 17443 adrp x25, .LANCHOR2 17444 umull x0, w21, w28 17445 add x25, x25, :lo12:.LANCHOR2 17446 mov x22, 0 17447 str x0, [x29, 104] 17448.L2561: 17449 ldr x0, [x29, 104] 17450 cmp x22, x0 17451 bne .L2578 17452 adrp x0, .LANCHOR52 17453 add w20, w20, 1 17454 and w20, w20, 65535 17455 ldrh w0, [x0, #:lo12:.LANCHOR52] 17456 cmp w0, w20 17457 bhi .L2579 17458.L2581: 17459 mov w2, 0 17460 b .L2557 17461.L2560: 17462 ldrh w2, [x3] 17463 cmp w2, w10 17464 beq .L2559 17465 umaddl x4, w21, w28, x0 17466 orr w2, w20, w2, lsl 10 17467 str w2, [x4, 4] 17468 mul w2, w21, w6 17469 asr w2, w2, 2 17470 add x2, x5, x2, sxtw 2 17471 str x2, [x4, 8] 17472 mul w2, w21, w8 17473 add w21, w21, 1 17474 and w21, w21, 65535 17475 asr w2, w2, 2 17476 add x2, x7, x2, sxtw 2 17477 str x2, [x4, 16] 17478.L2559: 17479 add x3, x3, 2 17480 b .L2558 17481.L2578: 17482 ldr x4, [x23, #:lo12:.LANCHOR186] 17483 add x5, x4, x22 17484 ldr w26, [x5, 4] 17485 lsr w0, w26, 10 17486 bl P2V_plane 17487 and w2, w0, 65535 17488 ldr w0, [x4, x22] 17489 ldr x21, [x5, 16] 17490 cbnz w0, .L2562 17491 ldrh w1, [x21] 17492 mov w0, 65535 17493 cmp w1, w0 17494 bne .L2563 17495.L2566: 17496 adrp x0, .LANCHOR16 17497 ldrb w0, [x0, #:lo12:.LANCHOR16] 17498 cbz w0, .L2597 17499 adrp x0, .LANCHOR138 17500 mov w1, 1 17501 str w1, [x0, #:lo12:.LANCHOR138] 17502.L2557: 17503 ldr x1, [x29, 96] 17504 mov w0, -1 17505 strb w2, [x19, 6] 17506 strh w20, [x19, 2] 17507 strh w0, [x1, #:lo12:.LANCHOR245] 17508 mov w1, w20 17509 mov x0, x19 17510 bl ftl_sb_update_avl_pages 17511 mov w0, w27 17512 ldp x19, x20, [sp, 16] 17513 ldp x21, x22, [sp, 32] 17514 ldp x23, x24, [sp, 48] 17515 ldp x25, x26, [sp, 64] 17516 ldp x27, x28, [sp, 80] 17517 ldp x29, x30, [sp], 176 17518 ret 17519.L2563: 17520 ldr w0, [x21, 8] 17521 ldr w1, [x24] 17522 cmp w0, w1 17523 bhi .L2566 17524 ldrb w1, [x25] 17525 cbnz w1, .L2569 17526.L2570: 17527 ldp w2, w0, [x21, 8] 17528 mov w1, w26 17529 add x22, x22, 56 17530 bl FtlGcUpdatePage 17531 b .L2561 17532.L2569: 17533 add x1, x29, 116 17534 mov w2, 0 17535 bl log2phys 17536 ldr w0, [x21, 12] 17537 ldr w1, [x29, 116] 17538 cmp w0, w1 17539 bne .L2570 17540 cmn w0, #1 17541 beq .L2570 17542 str w0, [x29, 124] 17543 adrp x0, .LANCHOR194 17544 mov w2, 0 17545 mov w1, 1 17546 ldr x0, [x0, #:lo12:.LANCHOR194] 17547 str x0, [x29, 128] 17548 adrp x0, .LANCHOR196 17549 ldr x0, [x0, #:lo12:.LANCHOR196] 17550 str x0, [x29, 136] 17551 add x0, x29, 120 17552 bl FlashReadPages 17553 adrp x0, .LANCHOR55 17554 ldr x2, [x23, #:lo12:.LANCHOR186] 17555 ldr x4, [x29, 128] 17556 ldrh w1, [x0, #:lo12:.LANCHOR55] 17557 add x2, x2, x22 17558 mov x0, 0 17559 ubfiz x1, x1, 9, 16 17560.L2571: 17561 cmp x0, x1 17562 beq .L2570 17563 ldr x5, [x2, 8] 17564 ldr w6, [x5, x0] 17565 add x0, x0, 4 17566 add x5, x4, x0 17567 ldr w5, [x5, -4] 17568 cmp w6, w5 17569 beq .L2571 17570 ldrh w1, [x19] 17571 adrp x0, .LC72 17572 ldr w2, [x29, 124] 17573 add x0, x0, :lo12:.LC72 17574 bl printf 17575.L2597: 17576 adrp x0, .LANCHOR85 17577 ldrh w1, [x19] 17578 ldr x0, [x0, #:lo12:.LANCHOR85] 17579 strh wzr, [x0, x1, lsl 1] 17580 ldrh w0, [x19] 17581 bl INSERT_FREE_LIST 17582 adrp x1, .LANCHOR213 17583 mov w0, -1 17584 strh w0, [x19] 17585 strh w0, [x1, #:lo12:.LANCHOR213] 17586.L2596: 17587 bl FtlGcPageVarInit 17588 mov w20, 0 17589 b .L2556 17590.L2562: 17591 ldrh w1, [x19] 17592 mov w2, w26 17593 adrp x0, .LC73 17594 add x0, x0, :lo12:.LC73 17595 bl printf 17596 adrp x0, .LANCHOR104 17597 ldr w1, [x0, #:lo12:.LANCHOR104] 17598 ldrh w0, [x19] 17599 cbnz w1, .L2574 17600 adrp x1, .LANCHOR16 17601 ldrb w1, [x1, #:lo12:.LANCHOR16] 17602 cbz w1, .L2575 17603.L2574: 17604 adrp x2, .LANCHOR80 17605 ubfiz x1, x0, 1, 16 17606 ldr x2, [x2, #:lo12:.LANCHOR80] 17607 ldrh w1, [x2, x1] 17608 cmp w1, 159 17609 bls .L2576 17610.L2575: 17611 ldr x1, [x23, #:lo12:.LANCHOR186] 17612 ldr w1, [x1, x22] 17613 cmn w1, #1 17614 bne .L2577 17615.L2576: 17616 ldr x1, [x23, #:lo12:.LANCHOR186] 17617 add x22, x1, x22 17618 ldr w27, [x22, 4] 17619.L2577: 17620 adrp x1, .LANCHOR85 17621 ubfiz x0, x0, 1, 16 17622 ldr x1, [x1, #:lo12:.LANCHOR85] 17623 strh wzr, [x1, x0] 17624 ldrh w0, [x19] 17625 bl INSERT_FREE_LIST 17626 mov w0, -1 17627 strh w0, [x19] 17628 b .L2596 17629 .size FtlGcScanTempBlk, .-FtlGcScanTempBlk 17630 .section .text.FtlGcFreeTempBlock,"ax",@progbits 17631 .align 2 17632 .global FtlGcFreeTempBlock 17633 .type FtlGcFreeTempBlock, %function 17634FtlGcFreeTempBlock: 17635 adrp x0, .LANCHOR78 17636 ldr w0, [x0, #:lo12:.LANCHOR78] 17637 cbz w0, .L2599 17638 mov w0, 0 17639 ret 17640.L2599: 17641 stp x29, x30, [sp, -112]! 17642 mov w1, 65535 17643 add x29, sp, 0 17644 stp x19, x20, [sp, 16] 17645 adrp x19, .LANCHOR95 17646 stp x21, x22, [sp, 32] 17647 add x0, x19, :lo12:.LANCHOR95 17648 ldrh w20, [x19, #:lo12:.LANCHOR95] 17649 adrp x21, .LANCHOR138 17650 stp x23, x24, [sp, 48] 17651 stp x25, x26, [sp, 64] 17652 cmp w20, w1 17653 stp x27, x28, [sp, 80] 17654 beq .L2601 17655 adrp x1, .LANCHOR52 17656 ldrh w1, [x1, #:lo12:.LANCHOR52] 17657 bl FtlGcScanTempBlk 17658 str w0, [x29, 108] 17659 cmn w0, #1 17660 beq .L2601 17661 adrp x0, .LANCHOR80 17662 ubfiz x20, x20, 1, 16 17663 ldr x1, [x0, #:lo12:.LANCHOR80] 17664 ldrh w0, [x1, x20] 17665 cmp w0, 4 17666 bls .L2602 17667 sub w0, w0, #5 17668 strh w0, [x1, x20] 17669 mov w0, 1 17670 bl FtlEctTblFlush 17671.L2602: 17672 ldr w0, [x21, #:lo12:.LANCHOR138] 17673 cbnz w0, .L2603 17674 adrp x0, .LANCHOR141 17675 add x0, x0, :lo12:.LANCHOR141 17676 ldr w1, [x0, 96] 17677 add w1, w1, 1 17678 str w1, [x0, 96] 17679 ldr w0, [x29, 108] 17680 lsr w0, w0, 10 17681 bl FtlBbmMapBadBlock 17682 bl FtlBbmTblFlush 17683.L2603: 17684 str wzr, [x21, #:lo12:.LANCHOR138] 17685 mov w0, 1 17686.L2598: 17687 ldp x19, x20, [sp, 16] 17688 ldp x21, x22, [sp, 32] 17689 ldp x23, x24, [sp, 48] 17690 ldp x25, x26, [sp, 64] 17691 ldp x27, x28, [sp, 80] 17692 ldp x29, x30, [sp], 112 17693 ret 17694.L2601: 17695 str wzr, [x21, #:lo12:.LANCHOR138] 17696 mov w0, 65535 17697 ldrh w1, [x19, #:lo12:.LANCHOR95] 17698 add x21, x19, :lo12:.LANCHOR95 17699 cmp w1, w0 17700 beq .L2625 17701 bl FtlCacheWriteBack 17702 adrp x20, .LANCHOR113 17703 adrp x0, .LANCHOR52 17704 ldrb w1, [x21, 7] 17705 ldrh w2, [x20, #:lo12:.LANCHOR113] 17706 mov x21, x0 17707 ldrh w3, [x0, #:lo12:.LANCHOR52] 17708 mul w1, w1, w3 17709 cmp w2, w1 17710 beq .L2605 17711 mov w2, 193 17712 adrp x1, .LANCHOR246 17713 adrp x0, .LC5 17714 add x1, x1, :lo12:.LANCHOR246 17715 add x0, x0, :lo12:.LC5 17716 bl printf 17717 adrp x1, .LC6 17718 adrp x0, .LC7 17719 add x1, x1, :lo12:.LC6 17720 add x0, x0, :lo12:.LC7 17721 bl printf 17722.L2605: 17723 add x0, x19, :lo12:.LANCHOR95 17724 adrp x22, .LANCHOR85 17725 ldrh w3, [x21, #:lo12:.LANCHOR52] 17726 adrp x25, .LANCHOR74 17727 ldrh w2, [x19, #:lo12:.LANCHOR95] 17728 add x26, x20, :lo12:.LANCHOR113 17729 ldrb w0, [x0, 7] 17730 add x25, x25, :lo12:.LANCHOR74 17731 ldr x1, [x22, #:lo12:.LANCHOR85] 17732 mov w21, 0 17733 adrp x27, .LANCHOR114 17734 mul w0, w0, w3 17735 strh w0, [x1, x2, lsl 1] 17736 adrp x1, .LANCHOR166 17737 ldrh w0, [x20, #:lo12:.LANCHOR113] 17738 ldr w2, [x1, #:lo12:.LANCHOR166] 17739 add w0, w0, w2 17740 str w0, [x1, #:lo12:.LANCHOR166] 17741.L2606: 17742 ldrh w0, [x26] 17743 cmp w0, w21 17744 bhi .L2610 17745 mov w0, -1 17746 bl decrement_vpc_count 17747 adrp x0, .LANCHOR16 17748 ldrb w0, [x0, #:lo12:.LANCHOR16] 17749 cbz w0, .L2611 17750 ldrh w1, [x19, #:lo12:.LANCHOR95] 17751 adrp x0, .LC74 17752 add x0, x0, :lo12:.LC74 17753 bl printf 17754.L2611: 17755 ldrh w0, [x19, #:lo12:.LANCHOR95] 17756 ldr x2, [x22, #:lo12:.LANCHOR85] 17757 ubfiz x1, x0, 1, 16 17758 ldrh w1, [x2, x1] 17759 cbz w1, .L2612 17760 bl INSERT_DATA_LIST 17761.L2613: 17762 adrp x0, .LANCHOR111 17763 mov w21, -1 17764 strh wzr, [x20, #:lo12:.LANCHOR113] 17765 strh w21, [x19, #:lo12:.LANCHOR95] 17766 strh wzr, [x0, #:lo12:.LANCHOR111] 17767 bl l2p_flush 17768 bl FtlVpcTblFlush 17769 adrp x0, .LANCHOR213 17770 strh w21, [x0, #:lo12:.LANCHOR213] 17771 adrp x0, .LANCHOR90 17772 ldrh w1, [x0, #:lo12:.LANCHOR90] 17773 adrp x0, .LANCHOR232 17774 ldrh w0, [x0, #:lo12:.LANCHOR232] 17775 add w0, w0, w0, lsl 1 17776 cmp w1, w0, lsr 2 17777 ble .L2625 17778 adrp x0, .LANCHOR181 17779 mov w1, 20 17780 strh w1, [x0, #:lo12:.LANCHOR181] 17781.L2625: 17782 mov w0, 0 17783 b .L2598 17784.L2610: 17785 mov w24, 12 17786 ldr x28, [x27, #:lo12:.LANCHOR114] 17787 ldr w1, [x25] 17788 umull x24, w21, w24 17789 add x23, x28, x24 17790 ldr w0, [x23, 8] 17791 cmp w0, w1 17792 bcc .L2607 17793.L2623: 17794 ldrh w0, [x19, #:lo12:.LANCHOR95] 17795 b .L2624 17796.L2607: 17797 add x1, x29, 108 17798 mov w2, 0 17799 bl log2phys 17800 ldr w0, [x28, x24] 17801 ldr w1, [x29, 108] 17802 cmp w0, w1 17803 bne .L2609 17804 lsr w0, w0, 10 17805 bl P2V_block_in_plane 17806 mov w24, w0 17807 ldr w0, [x23, 8] 17808 mov w2, 1 17809 add x1, x23, 4 17810 bl log2phys 17811 mov w0, w24 17812.L2624: 17813 bl decrement_vpc_count 17814 b .L2608 17815.L2609: 17816 ldr w0, [x23, 4] 17817 cmp w1, w0 17818 bne .L2623 17819.L2608: 17820 add w21, w21, 1 17821 and w21, w21, 65535 17822 b .L2606 17823.L2612: 17824 bl INSERT_FREE_LIST 17825 b .L2613 17826 .size FtlGcFreeTempBlock, .-FtlGcFreeTempBlock 17827 .section .text.FtlGcPageRecovery,"ax",@progbits 17828 .align 2 17829 .global FtlGcPageRecovery 17830 .type FtlGcPageRecovery, %function 17831FtlGcPageRecovery: 17832 stp x29, x30, [sp, -32]! 17833 add x29, sp, 0 17834 stp x19, x20, [sp, 16] 17835 adrp x20, .LANCHOR52 17836 adrp x19, .LANCHOR95 17837 add x19, x19, :lo12:.LANCHOR95 17838 ldrh w1, [x20, #:lo12:.LANCHOR52] 17839 mov x0, x19 17840 bl FtlGcScanTempBlk 17841 ldrh w1, [x19, 2] 17842 ldrh w0, [x20, #:lo12:.LANCHOR52] 17843 cmp w1, w0 17844 bcc .L2626 17845 adrp x0, .LANCHOR130 17846 add x0, x0, :lo12:.LANCHOR130 17847 bl FtlMapBlkWriteDumpData 17848 mov w0, 0 17849 bl FtlGcFreeTempBlock 17850 adrp x0, .LANCHOR138 17851 str wzr, [x0, #:lo12:.LANCHOR138] 17852.L2626: 17853 ldp x19, x20, [sp, 16] 17854 ldp x29, x30, [sp], 32 17855 ret 17856 .size FtlGcPageRecovery, .-FtlGcPageRecovery 17857 .section .text.FtlPowerLostRecovery,"ax",@progbits 17858 .align 2 17859 .global FtlPowerLostRecovery 17860 .type FtlPowerLostRecovery, %function 17861FtlPowerLostRecovery: 17862 stp x29, x30, [sp, -32]! 17863 adrp x0, .LANCHOR243 17864 add x29, sp, 0 17865 str x19, [sp, 16] 17866 adrp x19, .LANCHOR93 17867 add x19, x19, :lo12:.LANCHOR93 17868 str wzr, [x0, #:lo12:.LANCHOR243] 17869 mov x0, x19 17870 bl FtlRecoverySuperblock 17871 mov x0, x19 17872 adrp x19, .LANCHOR94 17873 bl FtlSlcSuperblockCheck 17874 add x19, x19, :lo12:.LANCHOR94 17875 mov x0, x19 17876 bl FtlRecoverySuperblock 17877 mov x0, x19 17878 bl FtlSlcSuperblockCheck 17879 bl FtlGcPageRecovery 17880 mov w0, -1 17881 bl decrement_vpc_count 17882 mov w0, 0 17883 ldr x19, [sp, 16] 17884 ldp x29, x30, [sp], 32 17885 ret 17886 .size FtlPowerLostRecovery, .-FtlPowerLostRecovery 17887 .section .text.FtlSysBlkInit,"ax",@progbits 17888 .align 2 17889 .global FtlSysBlkInit 17890 .type FtlSysBlkInit, %function 17891FtlSysBlkInit: 17892 stp x29, x30, [sp, -32]! 17893 adrp x0, .LANCHOR241 17894 mov w1, -1 17895 add x29, sp, 0 17896 strh w1, [x0, #:lo12:.LANCHOR241] 17897 adrp x0, .LANCHOR39 17898 stp x19, x20, [sp, 16] 17899 adrp x20, .LANCHOR242 17900 ldrh w0, [x0, #:lo12:.LANCHOR39] 17901 strh wzr, [x20, #:lo12:.LANCHOR242] 17902 bl FtlFreeSysBlkQueueInit 17903 bl FtlScanSysBlk 17904 adrp x0, .LANCHOR218 17905 ldrh w1, [x0, #:lo12:.LANCHOR218] 17906 mov w0, 65535 17907 cmp w1, w0 17908 bne .L2632 17909.L2634: 17910 mov w19, -1 17911.L2631: 17912 mov w0, w19 17913 ldp x19, x20, [sp, 16] 17914 ldp x29, x30, [sp], 32 17915 ret 17916.L2632: 17917 bl FtlLoadSysInfo 17918 mov w19, w0 17919 cbnz w0, .L2634 17920 bl FtlLoadMapInfo 17921 bl FtlLoadVonderInfo 17922 bl Ftl_load_ext_data 17923 bl FtlLoadEctTbl 17924 bl FtlFreeSysBLkSort 17925 bl SupperBlkListInit 17926 bl FtlPowerLostRecovery 17927 mov w0, 1 17928 bl FtlUpdateVaildLpn 17929 adrp x0, .LANCHOR67 17930 ldrh w2, [x0, #:lo12:.LANCHOR67] 17931 adrp x0, .LANCHOR98 17932 ldr x1, [x0, #:lo12:.LANCHOR98] 17933 mov w0, 0 17934 add x1, x1, 4 17935.L2635: 17936 cmp w0, w2 17937 bge .L2640 17938 ldr w3, [x1], 16 17939 tbz w3, #31, .L2636 17940.L2640: 17941 adrp x3, .LANCHOR165 17942 cmp w0, w2 17943 ldr w1, [x3, #:lo12:.LANCHOR165] 17944 add w1, w1, 32 17945 str w1, [x3, #:lo12:.LANCHOR165] 17946 bge .L2642 17947.L2637: 17948 adrp x0, .LANCHOR85 17949 adrp x1, .LANCHOR93 17950 ldr x2, [x0, #:lo12:.LANCHOR85] 17951 add x0, x1, :lo12:.LANCHOR93 17952 ldrh w1, [x1, #:lo12:.LANCHOR93] 17953 ldrh w4, [x0, 4] 17954 lsl x1, x1, 1 17955 ldrh w3, [x2, x1] 17956 sub w3, w3, w4 17957 adrp x4, .LANCHOR52 17958 strh w3, [x2, x1] 17959 strh wzr, [x0, 4] 17960 ldrh w1, [x4, #:lo12:.LANCHOR52] 17961 strh w1, [x0, 2] 17962 adrp x1, .LANCHOR94 17963 strb wzr, [x0, 6] 17964 add x0, x1, :lo12:.LANCHOR94 17965 ldrh w1, [x1, #:lo12:.LANCHOR94] 17966 ldrh w5, [x0, 4] 17967 lsl x1, x1, 1 17968 ldrh w3, [x2, x1] 17969 sub w3, w3, w5 17970 strh w3, [x2, x1] 17971 strb wzr, [x0, 6] 17972 ldrh w1, [x4, #:lo12:.LANCHOR52] 17973 strh w1, [x0, 2] 17974 strh wzr, [x0, 4] 17975 adrp x0, .LANCHOR82 17976 add x0, x0, :lo12:.LANCHOR82 17977 ldrh w1, [x0, 30] 17978 add w1, w1, 1 17979 strh w1, [x0, 30] 17980 bl l2p_flush 17981 bl FtlVpcTblFlush 17982.L2644: 17983 bl FtlVpcTblFlush 17984 b .L2631 17985.L2636: 17986 add w0, w0, 1 17987 b .L2635 17988.L2642: 17989 ldrh w0, [x20, #:lo12:.LANCHOR242] 17990 cbnz w0, .L2637 17991 bl l2p_flush 17992 b .L2644 17993 .size FtlSysBlkInit, .-FtlSysBlkInit 17994 .section .text.FtlLowFormat,"ax",@progbits 17995 .align 2 17996 .global FtlLowFormat 17997 .type FtlLowFormat, %function 17998FtlLowFormat: 17999 adrp x0, .LANCHOR78 18000 ldr w0, [x0, #:lo12:.LANCHOR78] 18001 cbnz w0, .L2677 18002 stp x29, x30, [sp, -96]! 18003 adrp x0, .LANCHOR203 18004 mov w1, 0 18005 add x29, sp, 0 18006 stp x19, x20, [sp, 16] 18007 adrp x19, .LANCHOR66 18008 ldr x0, [x0, #:lo12:.LANCHOR203] 18009 adrp x20, .LANCHOR164 18010 ldrh w2, [x19, #:lo12:.LANCHOR66] 18011 stp x23, x24, [sp, 48] 18012 adrp x24, .LANCHOR39 18013 stp x21, x22, [sp, 32] 18014 stp x25, x26, [sp, 64] 18015 lsl w2, w2, 2 18016 str x27, [sp, 80] 18017 bl ftl_memset 18018 adrp x0, .LANCHOR134 18019 ldrh w2, [x19, #:lo12:.LANCHOR66] 18020 mov w1, 0 18021 ldr x0, [x0, #:lo12:.LANCHOR134] 18022 lsl w2, w2, 2 18023 bl ftl_memset 18024 str wzr, [x20, #:lo12:.LANCHOR164] 18025 adrp x0, .LANCHOR165 18026 str wzr, [x0, #:lo12:.LANCHOR165] 18027 ldrh w0, [x24, #:lo12:.LANCHOR39] 18028 bl FtlFreeSysBlkQueueInit 18029 bl FtlLoadBbt 18030 cbz w0, .L2648 18031 bl FtlMakeBbt 18032.L2648: 18033 adrp x23, .LANCHOR55 18034 adrp x0, .LANCHOR193 18035 mov w6, 23752 18036 ldrh w1, [x23, #:lo12:.LANCHOR55] 18037 movk w6, 0xa0f, lsl 16 18038 ldr x4, [x0, #:lo12:.LANCHOR193] 18039 adrp x0, .LANCHOR194 18040 lsl w1, w1, 7 18041 ldr x5, [x0, #:lo12:.LANCHOR194] 18042 mov w0, 0 18043.L2649: 18044 cmp w0, w1 18045 blt .L2650 18046 adrp x21, .LANCHOR40 18047 adrp x22, .LANCHOR41 18048 add x26, x22, :lo12:.LANCHOR41 18049 mov w19, 0 18050 ldrh w25, [x21, #:lo12:.LANCHOR40] 18051.L2651: 18052 ldrh w0, [x26] 18053 cmp w0, w25 18054 bhi .L2652 18055 adrp x26, .LANCHOR38 18056 sub w1, w19, #2 18057 ldrh w0, [x26, #:lo12:.LANCHOR38] 18058 cmp w1, w0, lsl 1 18059 ble .L2653 18060 adrp x1, .LANCHOR65 18061 add x25, x22, :lo12:.LANCHOR41 18062 udiv w0, w19, w0 18063 ldr w19, [x1, #:lo12:.LANCHOR65] 18064 add w0, w0, w19 18065 bl FtlSysBlkNumInit 18066 ldrh w0, [x24, #:lo12:.LANCHOR39] 18067 mov w19, 0 18068 bl FtlFreeSysBlkQueueInit 18069 ldrh w24, [x21, #:lo12:.LANCHOR40] 18070.L2654: 18071 ldrh w0, [x25] 18072 cmp w0, w24 18073 bhi .L2655 18074.L2653: 18075 add x27, x21, :lo12:.LANCHOR40 18076 mov w24, 0 18077 mov w25, 0 18078.L2656: 18079 ldrh w0, [x27] 18080 cmp w0, w25 18081 bhi .L2657 18082 adrp x0, .LANCHOR75 18083 ldrh w1, [x22, #:lo12:.LANCHOR41] 18084 adrp x2, .LANCHOR232 18085 str w1, [x0, #:lo12:.LANCHOR75] 18086 adrp x0, .LANCHOR42 18087 ldrh w1, [x26, #:lo12:.LANCHOR38] 18088 ldr w3, [x0, #:lo12:.LANCHOR42] 18089 adrp x0, .LANCHOR74 18090 udiv w6, w3, w1 18091 ubfx x5, x6, 5, 16 18092 str w6, [x0, #:lo12:.LANCHOR74] 18093 add w4, w5, 36 18094 strh w4, [x2, #:lo12:.LANCHOR232] 18095 mov w4, 24 18096 mul w4, w1, w4 18097 cmp w24, w4 18098 ble .L2658 18099 sub w3, w3, w24 18100 udiv w3, w3, w1 18101 str w3, [x0, #:lo12:.LANCHOR74] 18102 lsr w3, w3, 5 18103 add w3, w3, 24 18104 strh w3, [x2, #:lo12:.LANCHOR232] 18105.L2658: 18106 adrp x3, .LANCHOR104 18107 ldr w3, [x3, #:lo12:.LANCHOR104] 18108 cmp w3, 1 18109 bne .L2659 18110 udiv w4, w24, w1 18111 ldrh w3, [x2, #:lo12:.LANCHOR232] 18112 add w4, w4, w3 18113 add w4, w3, w4, asr 2 18114 strh w4, [x2, #:lo12:.LANCHOR232] 18115.L2659: 18116 adrp x3, .LANCHOR16 18117 ldrb w3, [x3, #:lo12:.LANCHOR16] 18118 cbz w3, .L2660 18119 udiv w4, w24, w1 18120 ldrh w3, [x2, #:lo12:.LANCHOR232] 18121 add w4, w4, w3 18122 add w4, w3, w4, asr 2 18123 strh w4, [x2, #:lo12:.LANCHOR232] 18124.L2660: 18125 adrp x3, .LANCHOR49 18126 ldrh w3, [x3, #:lo12:.LANCHOR49] 18127 cbz w3, .L2662 18128 ldrh w4, [x2, #:lo12:.LANCHOR232] 18129 add w4, w4, w3, lsr 1 18130 strh w4, [x2, #:lo12:.LANCHOR232] 18131 mul w4, w3, w1 18132 cmp w24, w4 18133 bge .L2662 18134 add w3, w3, 32 18135 str w6, [x0, #:lo12:.LANCHOR74] 18136 add w3, w5, w3 18137 strh w3, [x2, #:lo12:.LANCHOR232] 18138.L2662: 18139 ldrh w3, [x2, #:lo12:.LANCHOR232] 18140 adrp x25, .LANCHOR231 18141 ldr w2, [x0, #:lo12:.LANCHOR74] 18142 sub w2, w2, w3 18143 mul w1, w2, w1 18144 adrp x2, .LANCHOR52 18145 str w1, [x25, #:lo12:.LANCHOR231] 18146 ldrh w2, [x2, #:lo12:.LANCHOR52] 18147 mul w1, w2, w1 18148 str w1, [x0, #:lo12:.LANCHOR74] 18149 ldrh w0, [x23, #:lo12:.LANCHOR55] 18150 mul w1, w0, w1 18151 adrp x0, .LANCHOR68 18152 str w1, [x0, #:lo12:.LANCHOR68] 18153 bl FtlBbmTblFlush 18154 adrp x0, .LANCHOR43 18155 add w1, w19, w24 18156 ldr w2, [x0, #:lo12:.LANCHOR43] 18157 adrp x0, .LANCHOR59 18158 ldrh w0, [x0, #:lo12:.LANCHOR59] 18159 add w0, w0, w2, lsr 3 18160 cmp w1, w0 18161 bls .L2664 18162 adrp x0, .LC75 18163 lsr w2, w2, 5 18164 add x0, x0, :lo12:.LC75 18165 bl printf 18166.L2664: 18167 adrp x24, .LANCHOR85 18168 ldrh w2, [x22, #:lo12:.LANCHOR41] 18169 mov w1, 0 18170 mov w22, -1 18171 ldr x0, [x24, #:lo12:.LANCHOR85] 18172 lsl w2, w2, 1 18173 bl ftl_memset 18174 adrp x0, .LANCHOR102 18175 adrp x1, .LANCHOR213 18176 ldrh w2, [x21, #:lo12:.LANCHOR40] 18177 str wzr, [x0, #:lo12:.LANCHOR102] 18178 add x0, x1, :lo12:.LANCHOR213 18179 strh w22, [x1, #:lo12:.LANCHOR213] 18180 mov w1, 255 18181 lsr w2, w2, 3 18182 strh wzr, [x0, 2] 18183 strb wzr, [x0, 6] 18184 strb wzr, [x0, 8] 18185 adrp x0, .LANCHOR93 18186 add x19, x0, :lo12:.LANCHOR93 18187 strh wzr, [x0, #:lo12:.LANCHOR93] 18188 mov w0, 1 18189 strb w0, [x19, 8] 18190 adrp x0, .LANCHOR1 18191 strh wzr, [x19, 2] 18192 ldr x0, [x0, #:lo12:.LANCHOR1] 18193 strb wzr, [x19, 6] 18194 bl ftl_memset 18195.L2665: 18196 mov x0, x19 18197 bl make_superblock 18198 ldrb w1, [x19, 7] 18199 ldrh w0, [x19] 18200 cbnz w1, .L2666 18201 ldr x1, [x24, #:lo12:.LANCHOR85] 18202 ubfiz x0, x0, 1, 16 18203 strh w22, [x1, x0] 18204 ldrh w0, [x19] 18205 add w0, w0, 1 18206 strh w0, [x19] 18207 b .L2665 18208.L2650: 18209 ubfiz x3, x0, 2, 16 18210 mvn w2, w0 18211 orr w2, w0, w2, lsl 16 18212 add w0, w0, 1 18213 and w0, w0, 65535 18214 str w2, [x4, x3] 18215 str w6, [x5, x3] 18216 b .L2649 18217.L2652: 18218 mov w0, w25 18219 mov w1, 1 18220 add w25, w25, 1 18221 bl FtlLowFormatEraseBlock 18222 add w19, w19, w0 18223 and w25, w25, 65535 18224 and w19, w19, 65535 18225 b .L2651 18226.L2655: 18227 mov w0, w24 18228 mov w1, 1 18229 add w24, w24, 1 18230 bl FtlLowFormatEraseBlock 18231 add w19, w19, w0 18232 and w24, w24, 65535 18233 and w19, w19, 65535 18234 b .L2654 18235.L2657: 18236 mov w0, w25 18237 mov w1, 0 18238 add w25, w25, 1 18239 bl FtlLowFormatEraseBlock 18240 add w24, w24, w0 18241 and w25, w25, 65535 18242 and w24, w24, 65535 18243 b .L2656 18244.L2666: 18245 ldr w1, [x20, #:lo12:.LANCHOR164] 18246 ubfiz x0, x0, 1, 16 18247 str w1, [x19, 12] 18248 mov w22, -1 18249 add w1, w1, 1 18250 str w1, [x20, #:lo12:.LANCHOR164] 18251 ldr x1, [x24, #:lo12:.LANCHOR85] 18252 ldrh w2, [x19, 4] 18253 strh w2, [x1, x0] 18254 adrp x2, .LANCHOR94 18255 add x0, x2, :lo12:.LANCHOR94 18256 ldrh w1, [x19] 18257 mov x19, x0 18258 add w1, w1, 1 18259 strh wzr, [x0, 2] 18260 strh w1, [x2, #:lo12:.LANCHOR94] 18261 mov w1, 1 18262 strb wzr, [x0, 6] 18263 strb w1, [x0, 8] 18264.L2667: 18265 mov x0, x19 18266 bl make_superblock 18267 ldrb w1, [x19, 7] 18268 ldrh w0, [x19] 18269 cbnz w1, .L2668 18270 ldr x1, [x24, #:lo12:.LANCHOR85] 18271 ubfiz x0, x0, 1, 16 18272 strh w22, [x1, x0] 18273 ldrh w0, [x19] 18274 add w0, w0, 1 18275 strh w0, [x19] 18276 b .L2667 18277.L2668: 18278 ldr w1, [x20, #:lo12:.LANCHOR164] 18279 ubfiz x0, x0, 1, 16 18280 str w1, [x19, 12] 18281 add w1, w1, 1 18282 str w1, [x20, #:lo12:.LANCHOR164] 18283 ldr x1, [x24, #:lo12:.LANCHOR85] 18284 ldrh w2, [x19, 4] 18285 mov w19, -1 18286 strh w2, [x1, x0] 18287 adrp x0, .LANCHOR95 18288 strh w19, [x0, #:lo12:.LANCHOR95] 18289 bl FtlFreeSysBlkQueueOut 18290 adrp x2, .LANCHOR218 18291 add x1, x2, :lo12:.LANCHOR218 18292 strh w0, [x2, #:lo12:.LANCHOR218] 18293 ldr w0, [x25, #:lo12:.LANCHOR231] 18294 strh w0, [x1, 6] 18295 ldr w0, [x20, #:lo12:.LANCHOR164] 18296 str w0, [x1, 8] 18297 add w0, w0, 1 18298 strh wzr, [x1, 2] 18299 strh w19, [x1, 4] 18300 str w0, [x20, #:lo12:.LANCHOR164] 18301 bl FtlVpcTblFlush 18302 bl FtlSysBlkInit 18303 cbnz w0, .L2647 18304 adrp x0, .LANCHOR247 18305 mov w1, 1 18306 str w1, [x0, #:lo12:.LANCHOR247] 18307.L2647: 18308 mov w0, 0 18309 ldr x27, [sp, 80] 18310 ldp x19, x20, [sp, 16] 18311 ldp x21, x22, [sp, 32] 18312 ldp x23, x24, [sp, 48] 18313 ldp x25, x26, [sp, 64] 18314 ldp x29, x30, [sp], 96 18315 ret 18316.L2677: 18317 mov w0, 0 18318 ret 18319 .size FtlLowFormat, .-FtlLowFormat 18320 .section .text.Ftl_gc_temp_data_write_back,"ax",@progbits 18321 .align 2 18322 .global Ftl_gc_temp_data_write_back 18323 .type Ftl_gc_temp_data_write_back, %function 18324Ftl_gc_temp_data_write_back: 18325 adrp x0, .LANCHOR78 18326 ldr w0, [x0, #:lo12:.LANCHOR78] 18327 cbz w0, .L2681 18328 mov w0, 0 18329 ret 18330.L2684: 18331 mov w0, 0 18332.L2680: 18333 ldp x19, x20, [sp, 16] 18334 ldp x29, x30, [sp], 32 18335 ret 18336.L2681: 18337 stp x29, x30, [sp, -32]! 18338 adrp x0, .LANCHOR16 18339 add x29, sp, 0 18340 ldrb w0, [x0, #:lo12:.LANCHOR16] 18341 stp x19, x20, [sp, 16] 18342 adrp x19, .LANCHOR105 18343 cbz w0, .L2683 18344 ldr w0, [x19, #:lo12:.LANCHOR105] 18345 tbz x0, 0, .L2683 18346 adrp x0, .LANCHOR95+4 18347 ldrh w0, [x0, #:lo12:.LANCHOR95+4] 18348 cbnz w0, .L2684 18349.L2683: 18350 adrp x20, .LANCHOR187 18351 ldr w1, [x19, #:lo12:.LANCHOR105] 18352 mov w3, 0 18353 mov w2, 0 18354 ldr x0, [x20, #:lo12:.LANCHOR187] 18355 add x19, x19, :lo12:.LANCHOR105 18356 bl FlashProgPages 18357 mov w11, 0 18358 mov w12, 56 18359.L2685: 18360 ldr w1, [x19] 18361 cmp w11, w1 18362 bcc .L2687 18363 ldr x0, [x20, #:lo12:.LANCHOR187] 18364 bl FtlGcBufFree 18365 str wzr, [x19] 18366 adrp x0, .LANCHOR95+4 18367 ldrh w0, [x0, #:lo12:.LANCHOR95+4] 18368 cbnz w0, .L2684 18369 mov w0, 1 18370 bl FtlGcFreeTempBlock 18371 b .L2697 18372.L2687: 18373 umull x0, w11, w12 18374 ldr x2, [x20, #:lo12:.LANCHOR187] 18375 add x1, x2, x0 18376 ldr w2, [x2, x0] 18377 ldr x3, [x1, 16] 18378 cmn w2, #1 18379 bne .L2686 18380 adrp x0, .LANCHOR95 18381 adrp x3, .LANCHOR85 18382 ldrh w4, [x0, #:lo12:.LANCHOR95] 18383 ldr x3, [x3, #:lo12:.LANCHOR85] 18384 strh wzr, [x3, x4, lsl 1] 18385 strh w2, [x0, #:lo12:.LANCHOR95] 18386 adrp x0, .LANCHOR141 18387 add x0, x0, :lo12:.LANCHOR141 18388 ldr w2, [x0, 96] 18389 add w2, w2, 1 18390 str w2, [x0, 96] 18391 ldr w0, [x1, 4] 18392 lsr w0, w0, 10 18393 bl FtlBbmMapBadBlock 18394 bl FtlBbmTblFlush 18395 bl FtlGcPageVarInit 18396.L2697: 18397 mov w0, 1 18398 b .L2680 18399.L2686: 18400 ldr w1, [x1, 4] 18401 ldp w2, w0, [x3, 8] 18402 bl FtlGcUpdatePage 18403 add w11, w11, 1 18404 and w11, w11, 65535 18405 b .L2685 18406 .size Ftl_gc_temp_data_write_back, .-Ftl_gc_temp_data_write_back 18407 .section .text.Ftl_get_new_temp_ppa,"ax",@progbits 18408 .align 2 18409 .global Ftl_get_new_temp_ppa 18410 .type Ftl_get_new_temp_ppa, %function 18411Ftl_get_new_temp_ppa: 18412 stp x29, x30, [sp, -32]! 18413 adrp x0, .LANCHOR95 18414 mov w2, 65535 18415 add x29, sp, 0 18416 str x19, [sp, 16] 18417 mov x19, x0 18418 ldrh w3, [x0, #:lo12:.LANCHOR95] 18419 cmp w3, w2 18420 beq .L2699 18421 add x1, x0, :lo12:.LANCHOR95 18422 ldrh w0, [x1, 4] 18423 cbnz w0, .L2700 18424.L2699: 18425 bl FtlCacheWriteBack 18426 mov w0, 0 18427 bl FtlGcFreeTempBlock 18428 add x0, x19, :lo12:.LANCHOR95 18429 strb wzr, [x0, 8] 18430 bl allocate_data_superblock 18431 adrp x0, .LANCHOR111 18432 strh wzr, [x0, #:lo12:.LANCHOR111] 18433 adrp x0, .LANCHOR113 18434 strh wzr, [x0, #:lo12:.LANCHOR113] 18435 bl l2p_flush 18436 mov w0, 0 18437 bl FtlEctTblFlush 18438 bl FtlVpcTblFlush 18439.L2700: 18440 add x0, x19, :lo12:.LANCHOR95 18441 ldr x19, [sp, 16] 18442 ldp x29, x30, [sp], 32 18443 b get_new_active_ppa 18444 .size Ftl_get_new_temp_ppa, .-Ftl_get_new_temp_ppa 18445 .section .text.ftl_do_gc,"ax",@progbits 18446 .align 2 18447 .global ftl_do_gc 18448 .type ftl_do_gc, %function 18449ftl_do_gc: 18450 adrp x1, .LANCHOR78 18451 ldr w1, [x1, #:lo12:.LANCHOR78] 18452 cbnz w1, .L2762 18453 adrp x1, .LANCHOR247 18454 ldr w1, [x1, #:lo12:.LANCHOR247] 18455 cmp w1, 1 18456 bne .L2762 18457 stp x29, x30, [sp, -176]! 18458 add x29, sp, 0 18459 stp x21, x22, [sp, 32] 18460 adrp x21, .LANCHOR176 18461 stp x19, x20, [sp, 16] 18462 ldr w1, [x21, #:lo12:.LANCHOR176] 18463 stp x23, x24, [sp, 48] 18464 stp x25, x26, [sp, 64] 18465 stp x27, x28, [sp, 80] 18466 cbnz w1, .L2764 18467 adrp x1, .LANCHOR87 18468 ldrh w1, [x1, #:lo12:.LANCHOR87] 18469 cmp w1, 47 18470 bls .L2764 18471 adrp x5, .LANCHOR116 18472 mov w2, 65535 18473 ldrh w8, [x5, #:lo12:.LANCHOR116] 18474 cmp w8, w2 18475 beq .L2704 18476 adrp x7, .LANCHOR115 18477 ldrh w1, [x7, #:lo12:.LANCHOR115] 18478 cmp w1, w2 18479 bne .L2704 18480 adrp x3, .LANCHOR117 18481 ldrh w6, [x3, #:lo12:.LANCHOR117] 18482 cmp w6, w1 18483 beq .L2704 18484 adrp x2, .LANCHOR118 18485 ldrh w4, [x2, #:lo12:.LANCHOR118] 18486 cmp w4, w1 18487 beq .L2704 18488 mov w1, -1 18489 strh w8, [x7, #:lo12:.LANCHOR115] 18490 strh w6, [x5, #:lo12:.LANCHOR116] 18491 strh w4, [x3, #:lo12:.LANCHOR117] 18492 strh w1, [x2, #:lo12:.LANCHOR118] 18493.L2704: 18494 cbnz w0, .L2765 18495 adrp x0, .LANCHOR90 18496 ldrh w0, [x0, #:lo12:.LANCHOR90] 18497 cmp w0, 24 18498 bhi .L2766 18499 adrp x1, .LANCHOR52 18500 cmp w0, 16 18501 ldrh w20, [x1, #:lo12:.LANCHOR52] 18502 bls .L2707 18503 lsr w20, w20, 5 18504.L2706: 18505 adrp x2, .LANCHOR181 18506 mov x3, x2 18507 ldrh w1, [x2, #:lo12:.LANCHOR181] 18508 cmp w1, w0 18509 bcs .L2710 18510 adrp x0, .LANCHOR95 18511 mov w1, 65535 18512 ldrh w0, [x0, #:lo12:.LANCHOR95] 18513 cmp w0, w1 18514 bne .L2711 18515 adrp x1, .LANCHOR115 18516 ldrh w1, [x1, #:lo12:.LANCHOR115] 18517 cmp w1, w0 18518 bne .L2711 18519 adrp x0, .LANCHOR248 18520 ldrh w0, [x0, #:lo12:.LANCHOR248] 18521 cbnz w0, .L2712 18522 adrp x1, .LANCHOR74 18523 adrp x4, .LANCHOR102 18524 ldr w1, [x1, #:lo12:.LANCHOR74] 18525 ldr w4, [x4, #:lo12:.LANCHOR102] 18526 add w1, w1, w1, lsl 1 18527 cmp w4, w1, lsr 2 18528 bcs .L2713 18529.L2712: 18530 adrp x1, .LANCHOR232 18531 ldrh w1, [x1, #:lo12:.LANCHOR232] 18532 add w1, w1, w1, lsl 1 18533 asr w1, w1, 2 18534 strh w1, [x3, #:lo12:.LANCHOR181] 18535.L2714: 18536 adrp x1, .LANCHOR177 18537 str wzr, [x1, #:lo12:.LANCHOR177] 18538.L2702: 18539 ldp x19, x20, [sp, 16] 18540 ldp x21, x22, [sp, 32] 18541 ldp x23, x24, [sp, 48] 18542 ldp x25, x26, [sp, 64] 18543 ldp x27, x28, [sp, 80] 18544 ldp x29, x30, [sp], 176 18545 ret 18546.L2707: 18547 cmp w0, 12 18548 bls .L2708 18549 lsr w20, w20, 4 18550 b .L2706 18551.L2708: 18552 cmp w0, 8 18553 bls .L2706 18554 lsr w20, w20, 2 18555 b .L2706 18556.L2766: 18557 mov w20, 1 18558 b .L2706 18559.L2713: 18560 mov w1, 18 18561 strh w1, [x2, #:lo12:.LANCHOR181] 18562 b .L2714 18563.L2711: 18564 adrp x0, .LANCHOR232 18565 ldrh w0, [x0, #:lo12:.LANCHOR232] 18566 add w0, w0, w0, lsl 1 18567 asr w0, w0, 2 18568 strh w0, [x3, #:lo12:.LANCHOR181] 18569.L2710: 18570 adrp x0, .LANCHOR119 18571 ldrh w0, [x0, #:lo12:.LANCHOR119] 18572 cbz w0, .L2705 18573 add w20, w20, 32 18574 and w20, w20, 65535 18575.L2705: 18576 adrp x19, .LANCHOR213 18577 mov w0, 65535 18578 ldrh w2, [x19, #:lo12:.LANCHOR213] 18579 cmp w2, w0 18580 bne .L2717 18581 adrp x0, .LANCHOR115 18582 ldrh w1, [x0, #:lo12:.LANCHOR115] 18583 cmp w1, w2 18584 beq .L2718 18585 adrp x2, .LANCHOR85 18586 ubfiz x1, x1, 1, 16 18587 ldr x2, [x2, #:lo12:.LANCHOR85] 18588 ldrh w1, [x2, x1] 18589 cbnz w1, .L2719 18590 mov w1, -1 18591 strh w1, [x0, #:lo12:.LANCHOR115] 18592.L2719: 18593 ldrh w1, [x0, #:lo12:.LANCHOR115] 18594 strh w1, [x19, #:lo12:.LANCHOR213] 18595 mov w1, -1 18596 strh w1, [x0, #:lo12:.LANCHOR115] 18597.L2718: 18598 add x0, x19, :lo12:.LANCHOR213 18599 mov w1, 65535 18600 strb wzr, [x0, 8] 18601 ldrh w0, [x19, #:lo12:.LANCHOR213] 18602 cmp w0, w1 18603 beq .L2717 18604 bl IsBlkInGcList 18605 cbz w0, .L2721 18606 mov w0, -1 18607 strh w0, [x19, #:lo12:.LANCHOR213] 18608.L2721: 18609 adrp x0, .LANCHOR16 18610 ldrb w0, [x0, #:lo12:.LANCHOR16] 18611 cbz w0, .L2722 18612 ldrh w0, [x19, #:lo12:.LANCHOR213] 18613 add x3, x19, :lo12:.LANCHOR213 18614 bl ftl_get_blk_mode 18615 strb w0, [x3, 8] 18616.L2722: 18617 ldrh w1, [x19, #:lo12:.LANCHOR213] 18618 mov w0, 65535 18619 add x22, x19, :lo12:.LANCHOR213 18620 cmp w1, w0 18621 beq .L2717 18622 mov x0, x22 18623 bl make_superblock 18624 adrp x0, .LANCHOR249 18625 ldrh w1, [x19, #:lo12:.LANCHOR213] 18626 strh wzr, [x22, 2] 18627 strh wzr, [x0, #:lo12:.LANCHOR249] 18628 adrp x0, .LANCHOR85 18629 strb wzr, [x22, 6] 18630 ldr x0, [x0, #:lo12:.LANCHOR85] 18631 ldrh w1, [x0, x1, lsl 1] 18632 adrp x0, .LANCHOR250 18633 strh w1, [x0, #:lo12:.LANCHOR250] 18634.L2717: 18635 adrp x1, .LANCHOR93 18636 ldrh w0, [x19, #:lo12:.LANCHOR213] 18637 str x1, [x29, 128] 18638 ldrh w2, [x1, #:lo12:.LANCHOR93] 18639 cmp w2, w0 18640 beq .L2723 18641 adrp x1, .LANCHOR94 18642 ldrh w1, [x1, #:lo12:.LANCHOR94] 18643 cmp w1, w0 18644 beq .L2723 18645 adrp x1, .LANCHOR95 18646 ldrh w1, [x1, #:lo12:.LANCHOR95] 18647 cmp w1, w0 18648 bne .L2724 18649.L2723: 18650 mov w0, -1 18651 strh w0, [x19, #:lo12:.LANCHOR213] 18652.L2724: 18653 adrp x25, .LANCHOR183 18654 add x26, x25, :lo12:.LANCHOR183 18655.L2760: 18656 ldrh w1, [x19, #:lo12:.LANCHOR213] 18657 mov w0, 65535 18658 cmp w1, w0 18659 bne .L2725 18660 adrp x0, .LANCHOR177 18661 adrp x22, .LANCHOR52 18662 add x22, x22, :lo12:.LANCHOR52 18663 str wzr, [x0, #:lo12:.LANCHOR177] 18664.L2726: 18665 ldrh w5, [x25, #:lo12:.LANCHOR183] 18666 add x7, x25, :lo12:.LANCHOR183 18667 mov w0, w5 18668 bl List_get_gc_head_node 18669 and w6, w0, 65535 18670 strh w6, [x19, #:lo12:.LANCHOR213] 18671 mov w0, 65535 18672 cmp w6, w0 18673 bne .L2727 18674 strh wzr, [x7] 18675 mov w0, 8 18676 b .L2702 18677.L2765: 18678 mov w20, 1 18679 b .L2705 18680.L2727: 18681 mov w0, w6 18682 bl IsBlkInGcList 18683 add w5, w5, 1 18684 cbz w0, .L2728 18685 strh w5, [x25, #:lo12:.LANCHOR183] 18686 b .L2726 18687.L2728: 18688 adrp x23, .LANCHOR85 18689 adrp x4, .LANCHOR38 18690 ldrh w0, [x22] 18691 ubfiz x1, x6, 1, 16 18692 ldr x2, [x23, #:lo12:.LANCHOR85] 18693 and w5, w5, 65535 18694 ldrh w4, [x4, #:lo12:.LANCHOR38] 18695 strh w5, [x25, #:lo12:.LANCHOR183] 18696 ldrh w3, [x2, x1] 18697 mul w0, w0, w4 18698 cmp w3, w0, asr 1 18699 bgt .L2730 18700 cmp w5, 48 18701 bls .L2731 18702 cmp w3, 8 18703 bls .L2731 18704 adrp x3, .LANCHOR111 18705 ldrh w3, [x3, #:lo12:.LANCHOR111] 18706 cmp w3, 35 18707 bhi .L2731 18708.L2730: 18709 strh wzr, [x26] 18710.L2731: 18711 ldrh w1, [x2, x1] 18712 cmp w0, w1 18713 bgt .L2732 18714 ldrh w0, [x26] 18715 cmp w0, 3 18716 bhi .L2732 18717 mov w0, -1 18718 strh wzr, [x26] 18719 strh w0, [x19, #:lo12:.LANCHOR213] 18720.L2804: 18721 adrp x0, .LANCHOR248 18722 ldrh w0, [x0, #:lo12:.LANCHOR248] 18723 b .L2702 18724.L2732: 18725 cbnz w1, .L2733 18726 mov w0, -1 18727 bl decrement_vpc_count 18728 ldrh w0, [x26] 18729 add w0, w0, 1 18730 strh w0, [x26] 18731 b .L2726 18732.L2733: 18733 adrp x0, .LANCHOR16 18734 add x3, x19, :lo12:.LANCHOR213 18735 ldrb w0, [x0, #:lo12:.LANCHOR16] 18736 strb wzr, [x3, 8] 18737 cbz w0, .L2734 18738 mov w0, w6 18739 bl ftl_get_blk_mode 18740 strb w0, [x3, 8] 18741.L2734: 18742 ldr x0, [x29, 128] 18743 ldrh w0, [x0, #:lo12:.LANCHOR93] 18744 cmp w0, w6 18745 bne .L2735 18746 mov w2, 1069 18747 adrp x1, .LANCHOR251 18748 adrp x0, .LC5 18749 add x1, x1, :lo12:.LANCHOR251 18750 add x0, x0, :lo12:.LC5 18751 bl printf 18752 adrp x1, .LC6 18753 adrp x0, .LC7 18754 add x1, x1, :lo12:.LC6 18755 add x0, x0, :lo12:.LC7 18756 bl printf 18757.L2735: 18758 adrp x0, .LANCHOR94 18759 ldrh w1, [x19, #:lo12:.LANCHOR213] 18760 ldrh w0, [x0, #:lo12:.LANCHOR94] 18761 cmp w1, w0 18762 bne .L2736 18763 mov w2, 1070 18764 adrp x1, .LANCHOR251 18765 adrp x0, .LC5 18766 add x1, x1, :lo12:.LANCHOR251 18767 add x0, x0, :lo12:.LC5 18768 bl printf 18769 adrp x1, .LC6 18770 adrp x0, .LC7 18771 add x1, x1, :lo12:.LC6 18772 add x0, x0, :lo12:.LC7 18773 bl printf 18774.L2736: 18775 adrp x0, .LANCHOR95 18776 ldrh w1, [x19, #:lo12:.LANCHOR213] 18777 ldrh w0, [x0, #:lo12:.LANCHOR95] 18778 cmp w1, w0 18779 bne .L2737 18780 mov w2, 1071 18781 adrp x1, .LANCHOR251 18782 adrp x0, .LC5 18783 add x1, x1, :lo12:.LANCHOR251 18784 add x0, x0, :lo12:.LC5 18785 bl printf 18786 adrp x1, .LC6 18787 adrp x0, .LC7 18788 add x1, x1, :lo12:.LC6 18789 add x0, x0, :lo12:.LC7 18790 bl printf 18791.L2737: 18792 add x22, x19, :lo12:.LANCHOR213 18793 mov x0, x22 18794 bl make_superblock 18795 adrp x0, .LANCHOR249 18796 ldrh w1, [x19, #:lo12:.LANCHOR213] 18797 strh wzr, [x0, #:lo12:.LANCHOR249] 18798 ldr x0, [x23, #:lo12:.LANCHOR85] 18799 ldrh w1, [x0, x1, lsl 1] 18800 adrp x0, .LANCHOR250 18801 strh wzr, [x22, 2] 18802 strh w1, [x0, #:lo12:.LANCHOR250] 18803 strb wzr, [x22, 6] 18804.L2725: 18805 adrp x1, .LANCHOR52 18806 mov w0, 1 18807 str w0, [x21, #:lo12:.LANCHOR176] 18808 ldrh w0, [x1, #:lo12:.LANCHOR52] 18809 str w0, [x29, 156] 18810 adrp x0, .LANCHOR16 18811 str x1, [x29, 120] 18812 str x0, [x29, 112] 18813 ldrb w2, [x0, #:lo12:.LANCHOR16] 18814 cbz w2, .L2738 18815 add x0, x19, :lo12:.LANCHOR213 18816 ldrb w0, [x0, 8] 18817 cmp w0, 1 18818 bne .L2738 18819 adrp x0, .LANCHOR53 18820 ldrh w0, [x0, #:lo12:.LANCHOR53] 18821 str w0, [x29, 156] 18822.L2738: 18823 add x0, x19, :lo12:.LANCHOR213 18824 ldr w2, [x29, 156] 18825 ldrh w0, [x0, 2] 18826 add w1, w0, w20 18827 cmp w1, w2 18828 ble .L2739 18829 sub w20, w2, w0 18830 and w20, w20, 65535 18831.L2739: 18832 adrp x0, .LANCHOR249 18833 mov w28, 0 18834 add x0, x0, :lo12:.LANCHOR249 18835 str x0, [x29, 144] 18836.L2740: 18837 cmp w20, w28, uxth 18838 bls .L2748 18839 add x1, x19, :lo12:.LANCHOR213 18840 adrp x0, .LANCHOR38 18841 adrp x23, .LANCHOR109 18842 add x1, x1, 16 18843 ldrh w7, [x0, #:lo12:.LANCHOR38] 18844 mov w22, 0 18845 ldrh w4, [x1, -14] 18846 mov w2, 0 18847 ldr x0, [x23, #:lo12:.LANCHOR109] 18848 mov w6, 65535 18849 add w4, w4, w28 18850 mov w5, 56 18851 b .L2749 18852.L2742: 18853 ldrh w3, [x1] 18854 cmp w3, w6 18855 beq .L2741 18856 umaddl x8, w22, w5, x0 18857 add w22, w22, 1 18858 and w22, w22, 65535 18859 orr w3, w4, w3, lsl 10 18860 str w3, [x8, 4] 18861.L2741: 18862 add w2, w2, 1 18863 add x1, x1, 2 18864 and w2, w2, 65535 18865.L2749: 18866 cmp w2, w7 18867 bne .L2742 18868 add x1, x19, :lo12:.LANCHOR213 18869 adrp x24, .LANCHOR105 18870 add x24, x24, :lo12:.LANCHOR105 18871 ldrb w2, [x1, 8] 18872 mov w1, w22 18873 bl FlashReadPages 18874 mov w0, 56 18875 umull x0, w22, w0 18876 mov x22, 0 18877 str x0, [x29, 136] 18878.L2743: 18879 ldr x0, [x29, 136] 18880 cmp x0, x22 18881 bne .L2747 18882 add w28, w28, 1 18883 b .L2740 18884.L2747: 18885 ldr x0, [x23, #:lo12:.LANCHOR109] 18886 add x1, x0, x22 18887 ldr w0, [x0, x22] 18888 cmn w0, #1 18889 beq .L2744 18890 ldr x27, [x1, 16] 18891 mov w0, 61589 18892 ldrh w1, [x27] 18893 cmp w1, w0 18894 bne .L2744 18895 ldr w4, [x27, 8] 18896 cmn w4, #1 18897 bne .L2745 18898 mov w2, 1119 18899 str w4, [x29, 104] 18900 adrp x1, .LANCHOR251 18901 adrp x0, .LC5 18902 add x1, x1, :lo12:.LANCHOR251 18903 add x0, x0, :lo12:.LC5 18904 bl printf 18905 adrp x1, .LC6 18906 adrp x0, .LC7 18907 add x1, x1, :lo12:.LC6 18908 add x0, x0, :lo12:.LC7 18909 bl printf 18910 ldr w4, [x29, 104] 18911.L2745: 18912 mov w2, 0 18913 add x1, x29, 168 18914 mov w0, w4 18915 bl log2phys 18916 ldr x0, [x23, #:lo12:.LANCHOR109] 18917 ldr w1, [x29, 168] 18918 add x0, x0, x22 18919 and w1, w1, 2147483647 18920 ldr w2, [x0, 4] 18921 cmp w1, w2 18922 bne .L2744 18923 ldr x1, [x29, 144] 18924 adrp x4, .LANCHOR187 18925 ldr x2, [x29, 144] 18926 ldr x5, [x4, #:lo12:.LANCHOR187] 18927 ldr w0, [x0, 24] 18928 ldrh w1, [x1] 18929 add w1, w1, 1 18930 strh w1, [x2] 18931 ldr w2, [x24] 18932 mov w1, 56 18933 str w1, [x29, 152] 18934 nop // between mem op and mult-accumulate 18935 umaddl x2, w2, w1, x5 18936 stp x4, x2, [x29, 96] 18937 str w0, [x2, 24] 18938 bl Ftl_get_new_temp_ppa 18939 ldp x4, x2, [x29, 96] 18940 ldr w1, [x29, 152] 18941 str w0, [x2, 4] 18942 ldr x0, [x4, #:lo12:.LANCHOR187] 18943 ldr w2, [x24] 18944 umaddl x1, w2, w1, x0 18945 ldr x0, [x23, #:lo12:.LANCHOR109] 18946 add w2, w2, 1 18947 add x0, x0, x22 18948 ldr x4, [x0, 8] 18949 str x4, [x1, 8] 18950 ldr x4, [x0, 16] 18951 str x4, [x1, 16] 18952 ldr w1, [x29, 168] 18953 str w1, [x27, 12] 18954 adrp x1, .LANCHOR95 18955 add x12, x1, :lo12:.LANCHOR95 18956 ldrh w1, [x1, #:lo12:.LANCHOR95] 18957 strh w1, [x27, 2] 18958 adrp x1, .LANCHOR165 18959 str w2, [x24] 18960 ldr w1, [x1, #:lo12:.LANCHOR165] 18961 str w1, [x27, 4] 18962 mov w1, 1 18963 bl FtlGcBufAlloc 18964 ldr x0, [x29, 112] 18965 ldrb w0, [x0, #:lo12:.LANCHOR16] 18966 cbnz w0, .L2746 18967 ldrb w1, [x12, 7] 18968 ldr w0, [x24] 18969 cmp w1, w0 18970 beq .L2746 18971 ldrh w0, [x12, 4] 18972 cbnz w0, .L2744 18973.L2746: 18974 bl Ftl_gc_temp_data_write_back 18975 cbz w0, .L2744 18976 add x0, x19, :lo12:.LANCHOR213 18977 mov w1, -1 18978 str wzr, [x21, #:lo12:.LANCHOR176] 18979 strh w1, [x19, #:lo12:.LANCHOR213] 18980 strh wzr, [x0, 2] 18981 b .L2804 18982.L2744: 18983 add x22, x22, 56 18984 b .L2743 18985.L2748: 18986 add x1, x19, :lo12:.LANCHOR213 18987 ldrh w0, [x1, 2] 18988 add w20, w20, w0 18989 ldr w0, [x29, 156] 18990 and w20, w20, 65535 18991 strh w20, [x1, 2] 18992 cmp w0, w20 18993 bhi .L2750 18994 adrp x0, .LANCHOR105 18995 ldr w0, [x0, #:lo12:.LANCHOR105] 18996 cbz w0, .L2751 18997 bl Ftl_gc_temp_data_write_back 18998 cbz w0, .L2751 18999 str wzr, [x21, #:lo12:.LANCHOR176] 19000 b .L2804 19001.L2751: 19002 adrp x0, .LANCHOR249 19003 ldrh w0, [x0, #:lo12:.LANCHOR249] 19004 cbnz w0, .L2752 19005 adrp x22, .LANCHOR85 19006 ldrh w1, [x19, #:lo12:.LANCHOR213] 19007 ldr x0, [x22, #:lo12:.LANCHOR85] 19008 ldrh w0, [x0, x1, lsl 1] 19009 cbz w0, .L2752 19010 adrp x23, .LANCHOR74 19011 add x24, x23, :lo12:.LANCHOR74 19012 mov w20, 0 19013.L2753: 19014 ldr w0, [x24] 19015 cmp w20, w0 19016 bcs .L2758 19017 mov w2, 0 19018 add x1, x29, 172 19019 mov w0, w20 19020 bl log2phys 19021 ldr w0, [x29, 172] 19022 cmn w0, #1 19023 beq .L2754 19024 lsr w0, w0, 10 19025 bl P2V_block_in_plane 19026 ldrh w1, [x19, #:lo12:.LANCHOR213] 19027 cmp w1, w0, uxth 19028 bne .L2754 19029.L2758: 19030 ldr w0, [x23, #:lo12:.LANCHOR74] 19031 cmp w20, w0 19032 bcc .L2752 19033 ldrh w1, [x19, #:lo12:.LANCHOR213] 19034 ldr x0, [x22, #:lo12:.LANCHOR85] 19035 strh wzr, [x0, x1, lsl 1] 19036 ldrh w0, [x19, #:lo12:.LANCHOR213] 19037 bl update_vpc_list 19038 bl FtlCacheWriteBack 19039 bl l2p_flush 19040 bl FtlVpcTblFlush 19041.L2752: 19042 mov w0, -1 19043 strh w0, [x19, #:lo12:.LANCHOR213] 19044.L2750: 19045 adrp x0, .LANCHOR90 19046 ldrh w0, [x0, #:lo12:.LANCHOR90] 19047 cmp w0, 2 19048 bhi .L2759 19049 ldr x0, [x29, 120] 19050 ldrh w20, [x0, #:lo12:.LANCHOR52] 19051 b .L2760 19052.L2754: 19053 add w20, w20, 1 19054 b .L2753 19055.L2759: 19056 str wzr, [x21, #:lo12:.LANCHOR176] 19057 add w0, w0, 1 19058 b .L2702 19059.L2762: 19060 mov w0, 0 19061 ret 19062.L2764: 19063 mov w0, 0 19064 b .L2702 19065 .size ftl_do_gc, .-ftl_do_gc 19066 .section .text.FtlCacheWriteBack,"ax",@progbits 19067 .align 2 19068 .global FtlCacheWriteBack 19069 .type FtlCacheWriteBack, %function 19070FtlCacheWriteBack: 19071 stp x29, x30, [sp, -128]! 19072 add x29, sp, 0 19073 stp x25, x26, [sp, 64] 19074 adrp x25, .LANCHOR78 19075 stp x23, x24, [sp, 48] 19076 ldr w23, [x25, #:lo12:.LANCHOR78] 19077 stp x19, x20, [sp, 16] 19078 stp x21, x22, [sp, 32] 19079 stp x27, x28, [sp, 80] 19080 cbnz w23, .L2807 19081 adrp x22, .LANCHOR72 19082 ldr w1, [x22, #:lo12:.LANCHOR72] 19083 cbz w1, .L2807 19084 adrp x0, .LANCHOR252 19085 ldr x19, [x0, #:lo12:.LANCHOR252] 19086 adrp x0, .LANCHOR16 19087 ldrb w0, [x0, #:lo12:.LANCHOR16] 19088 cbz w0, .L2832 19089 ldrb w0, [x19, 8] 19090 cmp w0, 1 19091 cset w24, eq 19092.L2809: 19093 adrp x20, .LANCHOR73 19094 ldrb w3, [x19, 9] 19095 adrp x26, .LC76 19096 add x27, x22, :lo12:.LANCHOR72 19097 ldr x0, [x20, #:lo12:.LANCHOR73] 19098 add x26, x26, :lo12:.LC76 19099 mov w21, 0 19100 mov w28, 56 19101 mov w2, w24 19102 bl FlashProgPages 19103.L2810: 19104 ldr w0, [x27] 19105 cmp w21, w0 19106 bcc .L2817 19107.L2829: 19108 str wzr, [x22, #:lo12:.LANCHOR72] 19109.L2807: 19110 ldp x19, x20, [sp, 16] 19111 mov w0, 0 19112 ldp x21, x22, [sp, 32] 19113 ldp x23, x24, [sp, 48] 19114 ldp x25, x26, [sp, 64] 19115 ldp x27, x28, [sp, 80] 19116 ldp x29, x30, [sp], 128 19117 ret 19118.L2832: 19119 mov w24, 0 19120 b .L2809 19121.L2817: 19122 umull x3, w21, w28 19123 ldr x0, [x20, #:lo12:.LANCHOR73] 19124 add x4, x0, x3 19125 ldr w0, [x0, x3] 19126 cmn w0, #1 19127 bne .L2811 19128 adrp x27, .LANCHOR52 19129 adrp x26, .LANCHOR141 19130 add x27, x27, :lo12:.LANCHOR52 19131 add x26, x26, :lo12:.LANCHOR141 19132.L2812: 19133 ldr w0, [x22, #:lo12:.LANCHOR72] 19134 cmp w23, w0 19135 bcc .L2827 19136 adrp x19, .LANCHOR119 19137 add x19, x19, :lo12:.LANCHOR119 19138 mov w20, 16386 19139.L2830: 19140 ldrh w0, [x19] 19141 cbz w0, .L2829 19142 mov w1, 1 19143 mov w0, w1 19144 bl ftl_do_gc 19145 subs w20, w20, #1 19146 bne .L2830 19147 b .L2829 19148.L2811: 19149 ldr w0, [x4, 4] 19150 cbnz w24, .L2813 19151.L2846: 19152 str w0, [x29, 124] 19153 mov w2, 1 19154 ldr w0, [x4, 24] 19155 add x1, x29, 124 19156 str x3, [x29, 104] 19157 bl log2phys 19158 ldr x0, [x20, #:lo12:.LANCHOR73] 19159 ldr x3, [x29, 104] 19160 add x0, x0, x3 19161 ldr x0, [x0, 16] 19162 ldr w0, [x0, 12] 19163 cmn w0, #1 19164 beq .L2815 19165 lsr w0, w0, 10 19166 bl P2V_block_in_plane 19167 adrp x2, .LANCHOR85 19168 and w1, w0, 65535 19169 ubfiz x0, x1, 1, 16 19170 mov w3, w1 19171 ldr x2, [x2, #:lo12:.LANCHOR85] 19172 ldrh w0, [x2, x0] 19173 cbnz w0, .L2816 19174 mov w2, 0 19175 mov x0, x26 19176 str w1, [x29, 104] 19177 bl printf 19178 ldr w3, [x29, 104] 19179.L2816: 19180 mov w0, w3 19181 bl decrement_vpc_count 19182.L2815: 19183 add w21, w21, 1 19184 b .L2810 19185.L2813: 19186 orr w0, w0, -2147483648 19187 b .L2846 19188.L2827: 19189 mov w21, 56 19190 ldr x0, [x20, #:lo12:.LANCHOR73] 19191 mov w1, -1 19192 adrp x28, .LANCHOR85 19193 umull x21, w23, w21 19194 str w1, [x0, x21] 19195.L2818: 19196 ldr x0, [x20, #:lo12:.LANCHOR73] 19197 add x3, x0, x21 19198 ldr w0, [x0, x21] 19199 cmn w0, #1 19200 ldr w0, [x3, 4] 19201 beq .L2822 19202 cbnz w24, .L2823 19203.L2847: 19204 str w0, [x29, 124] 19205 mov w2, 1 19206 ldr w0, [x3, 24] 19207 add x1, x29, 124 19208 bl log2phys 19209 ldr x0, [x20, #:lo12:.LANCHOR73] 19210 add x21, x0, x21 19211 ldr x0, [x21, 16] 19212 ldr w0, [x0, 12] 19213 cmn w0, #1 19214 beq .L2825 19215 lsr w0, w0, 10 19216 bl P2V_block_in_plane 19217 adrp x2, .LANCHOR85 19218 and w1, w0, 65535 19219 ubfiz x0, x1, 1, 16 19220 mov w21, w1 19221 ldr x2, [x2, #:lo12:.LANCHOR85] 19222 ldrh w0, [x2, x0] 19223 cbnz w0, .L2826 19224 adrp x0, .LC76 19225 mov w2, 0 19226 add x0, x0, :lo12:.LC76 19227 bl printf 19228.L2826: 19229 mov w0, w21 19230 bl decrement_vpc_count 19231.L2825: 19232 add w23, w23, 1 19233 b .L2812 19234.L2822: 19235 lsr w0, w0, 10 19236 bl P2V_block_in_plane 19237 ldrh w1, [x19] 19238 cmp w1, w0, uxth 19239 bne .L2819 19240 ldr x2, [x28, #:lo12:.LANCHOR85] 19241 ubfiz x1, x1, 1, 16 19242 ldrh w3, [x19, 4] 19243 ldrh w0, [x2, x1] 19244 sub w0, w0, w3 19245 strh w0, [x2, x1] 19246 strb wzr, [x19, 6] 19247 ldrh w0, [x27] 19248 strh w0, [x19, 2] 19249 strh wzr, [x19, 4] 19250.L2819: 19251 ldrh w0, [x19, 4] 19252 cbnz w0, .L2820 19253 mov x0, x19 19254 bl allocate_new_data_superblock 19255.L2820: 19256 ldr w0, [x26, 96] 19257 add w0, w0, 1 19258 str w0, [x26, 96] 19259 ldr x0, [x20, #:lo12:.LANCHOR73] 19260 add x0, x0, x21 19261 ldr w0, [x0, 4] 19262 lsr w0, w0, 10 19263 bl FtlGcMarkBadPhyBlk 19264 mov x0, x19 19265 bl get_new_active_ppa 19266 ldr x1, [x20, #:lo12:.LANCHOR73] 19267 mov w2, w0 19268 str w2, [x29, 124] 19269 add x0, x1, x21 19270 mov w1, 1 19271 str w2, [x0, 4] 19272 mov w2, w24 19273 ldrb w3, [x19, 9] 19274 bl FlashProgPages 19275 ldr x0, [x20, #:lo12:.LANCHOR73] 19276 ldr w0, [x0, x21] 19277 cmn w0, #1 19278 bne .L2821 19279 mov w0, 1 19280 str w0, [x25, #:lo12:.LANCHOR78] 19281.L2821: 19282 ldr w0, [x25, #:lo12:.LANCHOR78] 19283 cbz w0, .L2818 19284 b .L2807 19285.L2823: 19286 orr w0, w0, -2147483648 19287 b .L2847 19288 .size FtlCacheWriteBack, .-FtlCacheWriteBack 19289 .section .text.FtlSysFlush,"ax",@progbits 19290 .align 2 19291 .global FtlSysFlush 19292 .type FtlSysFlush, %function 19293FtlSysFlush: 19294 adrp x0, .LANCHOR78 19295 ldr w0, [x0, #:lo12:.LANCHOR78] 19296 cbnz w0, .L2851 19297 stp x29, x30, [sp, -32]! 19298 adrp x0, .LANCHOR247 19299 add x29, sp, 0 19300 str x19, [sp, 16] 19301 ldr w19, [x0, #:lo12:.LANCHOR247] 19302 cmp w19, 1 19303 bne .L2849 19304 bl FtlCacheWriteBack 19305 bl l2p_flush 19306 mov w0, w19 19307 bl FtlEctTblFlush 19308 bl FtlVpcTblFlush 19309.L2849: 19310 mov w0, 0 19311 ldr x19, [sp, 16] 19312 ldp x29, x30, [sp], 32 19313 ret 19314.L2851: 19315 mov w0, 0 19316 ret 19317 .size FtlSysFlush, .-FtlSysFlush 19318 .section .text.FtlDeInit,"ax",@progbits 19319 .align 2 19320 .global FtlDeInit 19321 .type FtlDeInit, %function 19322FtlDeInit: 19323 adrp x0, .LANCHOR247 19324 ldr w0, [x0, #:lo12:.LANCHOR247] 19325 cmp w0, 1 19326 bne .L2857 19327 stp x29, x30, [sp, -16]! 19328 add x29, sp, 0 19329 bl FtlSysFlush 19330 mov w0, 0 19331 ldp x29, x30, [sp], 16 19332 ret 19333.L2857: 19334 mov w0, 0 19335 ret 19336 .size FtlDeInit, .-FtlDeInit 19337 .section .text.ftl_deinit,"ax",@progbits 19338 .align 2 19339 .global ftl_deinit 19340 .type ftl_deinit, %function 19341ftl_deinit: 19342 stp x29, x30, [sp, -16]! 19343 add x29, sp, 0 19344 bl ftl_flash_de_init 19345 bl FtlDeInit 19346 ldp x29, x30, [sp], 16 19347 b ftl_flash_de_init 19348 .size ftl_deinit, .-ftl_deinit 19349 .section .text.rk_ftl_de_init,"ax",@progbits 19350 .align 2 19351 .global rk_ftl_de_init 19352 .type rk_ftl_de_init, %function 19353rk_ftl_de_init: 19354 stp x29, x30, [sp, -16]! 19355 add x29, sp, 0 19356 bl FlashDeInit 19357 bl FtlDeInit 19358 ldp x29, x30, [sp], 16 19359 b FlashDeInit 19360 .size rk_ftl_de_init, .-rk_ftl_de_init 19361 .section .text.ftl_cache_flush,"ax",@progbits 19362 .align 2 19363 .global ftl_cache_flush 19364 .type ftl_cache_flush, %function 19365ftl_cache_flush: 19366 b FtlCacheWriteBack 19367 .size ftl_cache_flush, .-ftl_cache_flush 19368 .section .text.ftl_discard,"ax",@progbits 19369 .align 2 19370 .global ftl_discard 19371 .type ftl_discard, %function 19372ftl_discard: 19373 adrp x0, .LANCHOR68 19374 ldr w0, [x0, #:lo12:.LANCHOR68] 19375 cmp w0, w1 19376 bls .L2873 19377 stp x29, x30, [sp, -80]! 19378 cmp w0, w2 19379 add x29, sp, 0 19380 stp x19, x20, [sp, 16] 19381 mov w19, w2 19382 stp x21, x22, [sp, 32] 19383 str x23, [sp, 48] 19384 bcc .L2875 19385 mov w20, w1 19386 add w1, w1, w2 19387 cmp w0, w1 19388 bcc .L2875 19389 cmp w2, 31 19390 bhi .L2867 19391.L2886: 19392 mov w0, 0 19393.L2865: 19394 ldp x19, x20, [sp, 16] 19395 ldp x21, x22, [sp, 32] 19396 ldr x23, [sp, 48] 19397 ldp x29, x30, [sp], 80 19398 ret 19399.L2867: 19400 adrp x0, .LANCHOR78 19401 ldr w0, [x0, #:lo12:.LANCHOR78] 19402 cbnz w0, .L2886 19403 adrp x22, .LANCHOR55 19404 bl FtlCacheWriteBack 19405 ldrh w0, [x22, #:lo12:.LANCHOR55] 19406 udiv w21, w20, w0 19407 msub w20, w0, w21, w20 19408 ands w20, w20, 65535 19409 beq .L2869 19410 sub w20, w0, w20 19411 add w21, w21, 1 19412 cmp w20, w19 19413 csel w20, w20, w19, ls 19414 sub w19, w19, w20, uxth 19415.L2869: 19416 adrp x20, .LANCHOR253 19417 adrp x23, .LANCHOR168 19418 add x20, x20, :lo12:.LANCHOR253 19419 add x23, x23, :lo12:.LANCHOR168 19420 mov w0, -1 19421 str w0, [x29, 76] 19422.L2870: 19423 ldrh w0, [x22, #:lo12:.LANCHOR55] 19424 cmp w19, w0 19425 bcs .L2872 19426 adrp x0, .LANCHOR253 19427 ldr w1, [x0, #:lo12:.LANCHOR253] 19428 cmp w1, 32 19429 bls .L2886 19430 str wzr, [x0, #:lo12:.LANCHOR253] 19431 bl l2p_flush 19432 bl FtlVpcTblFlush 19433 b .L2886 19434.L2872: 19435 mov w2, 0 19436 add x1, x29, 72 19437 mov w0, w21 19438 bl log2phys 19439 ldr w0, [x29, 72] 19440 cmn w0, #1 19441 beq .L2871 19442 ldr w0, [x20] 19443 mov w2, 1 19444 add x1, x29, 76 19445 add w0, w0, 1 19446 str w0, [x20] 19447 ldr w0, [x23] 19448 add w0, w0, 1 19449 str w0, [x23] 19450 mov w0, w21 19451 bl log2phys 19452 ldr w0, [x29, 72] 19453 lsr w0, w0, 10 19454 bl P2V_block_in_plane 19455 bl decrement_vpc_count 19456.L2871: 19457 ldrh w0, [x22, #:lo12:.LANCHOR55] 19458 add w21, w21, 1 19459 sub w19, w19, w0 19460 b .L2870 19461.L2873: 19462 mov w0, -1 19463 ret 19464.L2875: 19465 mov w0, -1 19466 b .L2865 19467 .size ftl_discard, .-ftl_discard 19468 .section .text.FtlRead,"ax",@progbits 19469 .align 2 19470 .global FtlRead 19471 .type FtlRead, %function 19472FtlRead: 19473 sub sp, sp, #208 19474 adrp x4, .LANCHOR247 19475 stp x29, x30, [sp, 16] 19476 add x29, sp, 16 19477 ldr w4, [x4, #:lo12:.LANCHOR247] 19478 stp x19, x20, [sp, 32] 19479 stp x21, x22, [sp, 48] 19480 cmp w4, 1 19481 stp x23, x24, [sp, 64] 19482 stp x25, x26, [sp, 80] 19483 stp x27, x28, [sp, 96] 19484 bne .L2914 19485 mov x21, x3 19486 mov w23, w2 19487 mov w19, w1 19488 cmp w0, 16 19489 bne .L2889 19490 mov x2, x3 19491 mov w1, w23 19492 add w0, w19, 256 19493 bl FtlVendorPartRead 19494 mov w25, w0 19495.L2887: 19496 mov w0, w25 19497 ldp x19, x20, [sp, 32] 19498 ldp x21, x22, [sp, 48] 19499 ldp x23, x24, [sp, 64] 19500 ldp x25, x26, [sp, 80] 19501 ldp x27, x28, [sp, 96] 19502 ldp x29, x30, [sp, 16] 19503 add sp, sp, 208 19504 ret 19505.L2889: 19506 adrp x0, .LANCHOR68 19507 ldr w0, [x0, #:lo12:.LANCHOR68] 19508 cmp w1, w0 19509 bcs .L2914 19510 cmp w2, w0 19511 bhi .L2914 19512 add w1, w1, w2 19513 str w1, [x29, 148] 19514 cmp w0, w1 19515 bcc .L2914 19516 adrp x22, .LANCHOR55 19517 ldrh w0, [x22, #:lo12:.LANCHOR55] 19518 udiv w1, w19, w0 19519 str w1, [x29, 172] 19520 add w1, w19, w2 19521 sub w1, w1, #1 19522 udiv w0, w1, w0 19523 adrp x1, .LANCHOR226 19524 str w0, [x29, 168] 19525 ldr w0, [x29, 172] 19526 sub w4, w4, w0 19527 ldr w0, [x29, 168] 19528 add w0, w4, w0 19529 str w0, [x29, 164] 19530 ldr w0, [x1, #:lo12:.LANCHOR226] 19531 add w0, w0, w2 19532 str w0, [x1, #:lo12:.LANCHOR226] 19533 adrp x1, .LANCHOR171 19534 ldr w2, [x29, 164] 19535 ldr w0, [x1, #:lo12:.LANCHOR171] 19536 add w0, w0, w2 19537 str w0, [x1, #:lo12:.LANCHOR171] 19538 ldp w1, w0, [x29, 168] 19539 bl FtlCacheMetchLpa 19540 cbz w0, .L2890 19541 bl FtlCacheWriteBack 19542.L2890: 19543 ldr w20, [x29, 172] 19544 adrp x26, .LANCHOR141 19545 add x26, x26, :lo12:.LANCHOR141 19546 mov w24, 0 19547 mov w25, 0 19548 adrp x27, .LANCHOR186 19549 stp wzr, wzr, [x29, 156] 19550.L2891: 19551 ldr w0, [x29, 164] 19552 cbnz w0, .L2910 19553 adrp x0, .LANCHOR119 19554 ldrh w0, [x0, #:lo12:.LANCHOR119] 19555 cbz w0, .L2887 19556 mov w1, 1 19557 mov w0, 0 19558 bl ftl_do_gc 19559 b .L2887 19560.L2910: 19561 add x1, x29, 188 19562 mov w2, 0 19563 mov w0, w20 19564 bl log2phys 19565 ldr w1, [x29, 188] 19566 cmn w1, #1 19567 bne .L2892 19568 add x3, x22, :lo12:.LANCHOR55 19569 mov w28, 0 19570.L2893: 19571 ldrh w0, [x3] 19572 cmp w28, w0 19573 bcc .L2895 19574.L2896: 19575 ldr w0, [x29, 164] 19576 add w20, w20, 1 19577 subs w0, w0, #1 19578 str w0, [x29, 164] 19579 beq .L2900 19580 adrp x0, .LANCHOR38 19581 ldrh w0, [x0, #:lo12:.LANCHOR38] 19582 cmp w24, w0, lsl 2 19583 bne .L2891 19584.L2900: 19585 cbz w24, .L2891 19586 ldr x0, [x27, #:lo12:.LANCHOR186] 19587 mov w1, w24 19588 mov w2, 0 19589 adrp x28, .LANCHOR194 19590 bl FlashReadPages 19591 ldr w0, [x29, 156] 19592 lsl w0, w0, 9 19593 str w0, [x29, 132] 19594 ldr w0, [x29, 152] 19595 lsl w0, w0, 9 19596 str x0, [x29, 136] 19597 ldr w0, [x29, 160] 19598 lsl w0, w0, 9 19599 str w0, [x29, 144] 19600 mov w0, 56 19601 umull x0, w24, w0 19602 mov x24, 0 19603 str x0, [x29, 120] 19604 adrp x0, .LC68 19605 add x0, x0, :lo12:.LC68 19606 str x0, [x29, 112] 19607.L2909: 19608 ldr x0, [x27, #:lo12:.LANCHOR186] 19609 ldr w2, [x29, 172] 19610 add x0, x0, x24 19611 ldr w1, [x0, 24] 19612 cmp w2, w1 19613 bne .L2902 19614 ldr x1, [x0, 8] 19615 adrp x0, .LANCHOR193 19616 ldr x0, [x0, #:lo12:.LANCHOR193] 19617 cmp x1, x0 19618 bne .L2903 19619 ldr x0, [x29, 136] 19620 ldr w2, [x29, 144] 19621 add x1, x1, x0 19622 mov x0, x21 19623.L2931: 19624 bl ftl_memcpy 19625.L2903: 19626 ldr x0, [x27, #:lo12:.LANCHOR186] 19627 add x2, x0, x24 19628 ldr w1, [x0, x24] 19629 cmn w1, #1 19630 bne .L2904 19631 ldr w0, [x26, 72] 19632 mov w25, w1 19633 add w0, w0, 1 19634 str w0, [x26, 72] 19635.L2904: 19636 ldr x0, [x2, 16] 19637 ldr w1, [x2, 24] 19638 ldr w3, [x0, 8] 19639 cmp w1, w3 19640 beq .L2905 19641 ldr w3, [x26, 72] 19642 add w3, w3, 1 19643 str w3, [x26, 72] 19644 ldr x3, [x2, 8] 19645 ldr w4, [x3, 4] 19646 str w4, [sp] 19647 ldp w4, w5, [x0, 4] 19648 ldr w6, [x0, 12] 19649 ldr w7, [x3] 19650 ldr w2, [x2, 4] 19651 ldr w3, [x0] 19652 ldr x0, [x29, 112] 19653 bl printf 19654.L2905: 19655 ldr x0, [x27, #:lo12:.LANCHOR186] 19656 add x1, x0, x24 19657 ldr w0, [x0, x24] 19658 cmp w0, 256 19659 bne .L2906 19660 ldr w0, [x1, 4] 19661 lsr w0, w0, 10 19662 bl P2V_block_in_plane 19663 and w1, w0, 65535 19664 str w1, [x29, 128] 19665 bl FtlGcRefreshBlock 19666 adrp x2, .LANCHOR78 19667 add x2, x2, :lo12:.LANCHOR78 19668 adrp x3, .LANCHOR213 19669.L2908: 19670 mov w1, 1 19671 stp x3, x2, [x29, 96] 19672 mov w0, w1 19673 bl ftl_do_gc 19674 ldr x2, [x29, 104] 19675 ldr w0, [x2] 19676 cbnz w0, .L2907 19677 ldr x3, [x29, 96] 19678 ldr w1, [x29, 128] 19679 ldrh w0, [x3, #:lo12:.LANCHOR213] 19680 cmp w0, w1 19681 beq .L2908 19682.L2907: 19683 bl FtlSysFlush 19684.L2906: 19685 ldr x0, [x29, 120] 19686 add x24, x24, 56 19687 cmp x0, x24 19688 bne .L2909 19689 mov w24, 0 19690 b .L2891 19691.L2895: 19692 madd w0, w20, w0, w28 19693 cmp w19, w0 19694 bhi .L2894 19695 ldr w1, [x29, 148] 19696 cmp w1, w0 19697 bls .L2894 19698 sub w0, w0, w19 19699 str x3, [x29, 136] 19700 lsl w0, w0, 9 19701 mov w2, 512 19702 mov w1, 0 19703 add x0, x21, x0 19704 bl ftl_memset 19705 ldr x3, [x29, 136] 19706.L2894: 19707 add w28, w28, 1 19708 b .L2893 19709.L2892: 19710 ldr x0, [x27, #:lo12:.LANCHOR186] 19711 mov w2, 56 19712 umaddl x0, w24, w2, x0 19713 str w1, [x0, 4] 19714 ldr w1, [x29, 172] 19715 cmp w20, w1 19716 bne .L2897 19717 adrp x1, .LANCHOR193 19718 ldr x1, [x1, #:lo12:.LANCHOR193] 19719 str x1, [x0, 8] 19720 ldrh w1, [x22, #:lo12:.LANCHOR55] 19721 udiv w2, w19, w1 19722 msub w2, w2, w1, w19 19723 str w2, [x29, 152] 19724 sub w2, w1, w2 19725 cmp w23, w2 19726 csel w2, w23, w2, ls 19727 str w2, [x29, 160] 19728 cmp w2, w1 19729 bne .L2898 19730 str x21, [x0, 8] 19731.L2898: 19732 adrp x1, .LANCHOR58 19733 adrp x2, .LANCHOR196 19734 str w20, [x0, 24] 19735 ldrh w1, [x1, #:lo12:.LANCHOR58] 19736 ldr x2, [x2, #:lo12:.LANCHOR196] 19737 mul w1, w1, w24 19738 add w24, w24, 1 19739 and x1, x1, 4294967292 19740 add x1, x2, x1 19741 str x1, [x0, 16] 19742 b .L2896 19743.L2897: 19744 ldr w1, [x29, 168] 19745 cmp w20, w1 19746 bne .L2899 19747 ldrh w2, [x22, #:lo12:.LANCHOR55] 19748 adrp x1, .LANCHOR194 19749 ldr w3, [x29, 148] 19750 ldr x1, [x1, #:lo12:.LANCHOR194] 19751 str x1, [x0, 8] 19752 mul w1, w20, w2 19753 sub w3, w3, w1 19754 str w3, [x29, 156] 19755 cmp w2, w3 19756 bne .L2898 19757.L2930: 19758 sub w1, w1, w19 19759 lsl w1, w1, 9 19760 add x1, x21, x1 19761 str x1, [x0, 8] 19762 b .L2898 19763.L2899: 19764 ldrh w1, [x22, #:lo12:.LANCHOR55] 19765 mul w1, w1, w20 19766 b .L2930 19767.L2902: 19768 ldr w2, [x29, 168] 19769 cmp w2, w1 19770 bne .L2903 19771 ldr x1, [x0, 8] 19772 ldr x0, [x28, #:lo12:.LANCHOR194] 19773 cmp x1, x0 19774 bne .L2903 19775 ldrh w0, [x22, #:lo12:.LANCHOR55] 19776 mul w0, w0, w2 19777 ldr w2, [x29, 132] 19778 sub w0, w0, w19 19779 lsl w0, w0, 9 19780 add x0, x21, x0 19781 b .L2931 19782.L2914: 19783 mov w25, -1 19784 b .L2887 19785 .size FtlRead, .-FtlRead 19786 .section .text.ftl_vendor_read,"ax",@progbits 19787 .align 2 19788 .global ftl_vendor_read 19789 .type ftl_vendor_read, %function 19790ftl_vendor_read: 19791 mov x3, x2 19792 mov w2, w1 19793 mov w1, w0 19794 mov w0, 16 19795 b FtlRead 19796 .size ftl_vendor_read, .-ftl_vendor_read 19797 .section .text.ftl_sys_read,"ax",@progbits 19798 .align 2 19799 .global ftl_sys_read 19800 .type ftl_sys_read, %function 19801ftl_sys_read: 19802 mov x3, x2 19803 mov w2, w1 19804 add w1, w0, 256 19805 mov w0, 16 19806 b FtlRead 19807 .size ftl_sys_read, .-ftl_sys_read 19808 .section .text.StorageSysDataLoad,"ax",@progbits 19809 .align 2 19810 .global StorageSysDataLoad 19811 .type StorageSysDataLoad, %function 19812StorageSysDataLoad: 19813 stp x29, x30, [sp, -32]! 19814 mov x2, 512 19815 add x29, sp, 0 19816 stp x19, x20, [sp, 16] 19817 mov x19, x1 19818 mov w20, w0 19819 mov w1, 0 19820 mov x0, x19 19821 bl memset 19822 mov x3, x19 19823 add w1, w20, 256 19824 ldp x19, x20, [sp, 16] 19825 mov w2, 1 19826 ldp x29, x30, [sp], 32 19827 mov w0, 16 19828 b FtlRead 19829 .size StorageSysDataLoad, .-StorageSysDataLoad 19830 .section .text.FlashBootVendorRead,"ax",@progbits 19831 .align 2 19832 .global FlashBootVendorRead 19833 .type FlashBootVendorRead, %function 19834FlashBootVendorRead: 19835 mov x3, x2 19836 mov w1, w0 19837 mov w2, 1 19838 mov w0, 16 19839 b FtlRead 19840 .size FlashBootVendorRead, .-FlashBootVendorRead 19841 .section .text.ftl_read,"ax",@progbits 19842 .align 2 19843 .global ftl_read 19844 .type ftl_read, %function 19845ftl_read: 19846 and w0, w0, 255 19847 b FtlRead 19848 .size ftl_read, .-ftl_read 19849 .section .text.FtlInit,"ax",@progbits 19850 .align 2 19851 .global FtlInit 19852 .type FtlInit, %function 19853FtlInit: 19854 stp x29, x30, [sp, -64]! 19855 mov w0, -1 19856 adrp x1, .LC77 19857 add x1, x1, :lo12:.LC77 19858 add x29, sp, 0 19859 stp x19, x20, [sp, 16] 19860 adrp x19, .LANCHOR247 19861 stp x21, x22, [sp, 32] 19862 str w0, [x19, #:lo12:.LANCHOR247] 19863 adrp x0, .LANCHOR254 19864 stp x23, x24, [sp, 48] 19865 str wzr, [x0, #:lo12:.LANCHOR254] 19866 adrp x0, .LANCHOR78 19867 str wzr, [x0, #:lo12:.LANCHOR78] 19868 adrp x0, .LC7 19869 add x0, x0, :lo12:.LC7 19870 bl printf 19871 adrp x0, .LANCHOR15 19872 add x0, x0, :lo12:.LANCHOR15 19873 bl FtlConstantsInit 19874 bl FtlMemInit 19875 bl FtlVariablesInit 19876 adrp x0, .LANCHOR39 19877 ldrh w0, [x0, #:lo12:.LANCHOR39] 19878 bl FtlFreeSysBlkQueueInit 19879 bl FtlLoadBbt 19880 cbz w0, .L2939 19881 adrp x1, .LANCHOR255 19882 adrp x0, .LC78 19883 add x1, x1, :lo12:.LANCHOR255 19884 add x0, x0, :lo12:.LC78 19885.L2948: 19886 bl printf 19887.L2940: 19888 mov w0, 0 19889 ldp x19, x20, [sp, 16] 19890 ldp x21, x22, [sp, 32] 19891 ldp x23, x24, [sp, 48] 19892 ldp x29, x30, [sp], 64 19893 ret 19894.L2939: 19895 bl FtlSysBlkInit 19896 cbz w0, .L2941 19897 adrp x1, .LANCHOR255 19898 adrp x0, .LC79 19899 add x1, x1, :lo12:.LANCHOR255 19900 add x0, x0, :lo12:.LC79 19901 b .L2948 19902.L2941: 19903 mov w1, 1 19904 str w1, [x19, #:lo12:.LANCHOR247] 19905 bl ftl_do_gc 19906 adrp x0, .LANCHOR90 19907 mov x22, x0 19908 ldrh w23, [x0, #:lo12:.LANCHOR90] 19909 cmp w23, 15 19910 bhi .L2940 19911 adrp x20, .LANCHOR115 19912 add x20, x20, :lo12:.LANCHOR115 19913 mov w19, 0 19914 adrp x24, .LANCHOR213 19915 mov w21, 65535 19916.L2945: 19917 ldrh w0, [x24, #:lo12:.LANCHOR213] 19918 cmp w0, w21 19919 bne .L2943 19920 ldrh w0, [x20] 19921 cmp w0, w21 19922 bne .L2943 19923 and w0, w19, 63 19924 bl List_get_gc_head_node 19925 bl FtlGcRefreshBlock 19926.L2943: 19927 mov w1, 1 19928 mov w0, w1 19929 bl ftl_do_gc 19930 mov w1, 1 19931 mov w0, 0 19932 bl ftl_do_gc 19933 ldrh w1, [x22, #:lo12:.LANCHOR90] 19934 add w0, w23, 2 19935 cmp w1, w0 19936 bhi .L2940 19937 add w19, w19, 1 19938 cmp w19, 4096 19939 bne .L2945 19940 b .L2940 19941 .size FtlInit, .-FtlInit 19942 .section .text.rk_ftl_init,"ax",@progbits 19943 .align 2 19944 .global rk_ftl_init 19945 .type rk_ftl_init, %function 19946rk_ftl_init: 19947 stp x29, x30, [sp, -32]! 19948 add x29, sp, 0 19949 str x19, [sp, 16] 19950 bl FlashInit 19951 mov w19, w0 19952 cbnz w0, .L2950 19953 bl FtlInit 19954.L2950: 19955 bl idb_init 19956 mov w1, w19 19957 adrp x0, .LC80 19958 add x0, x0, :lo12:.LC80 19959 bl printf 19960 mov w0, w19 19961 ldr x19, [sp, 16] 19962 ldp x29, x30, [sp], 32 19963 ret 19964 .size rk_ftl_init, .-rk_ftl_init 19965 .section .text.ftl_fix_nand_power_lost_error,"ax",@progbits 19966 .align 2 19967 .global ftl_fix_nand_power_lost_error 19968 .type ftl_fix_nand_power_lost_error, %function 19969ftl_fix_nand_power_lost_error: 19970 adrp x0, .LANCHOR16 19971 ldrb w0, [x0, #:lo12:.LANCHOR16] 19972 cbz w0, .L2967 19973 stp x29, x30, [sp, -128]! 19974 add x29, sp, 0 19975 str x25, [sp, 64] 19976 adrp x25, .LANCHOR241 19977 stp x23, x24, [sp, 48] 19978 stp x21, x22, [sp, 32] 19979 adrp x21, .LANCHOR85 19980 ldrh w23, [x25, #:lo12:.LANCHOR241] 19981 ldr x0, [x21, #:lo12:.LANCHOR85] 19982 mov w1, w23 19983 stp x19, x20, [sp, 16] 19984 ubfiz x24, x23, 1, 16 19985 adrp x19, .LC81 19986 ldrh w2, [x0, x24] 19987 add x0, x19, :lo12:.LC81 19988 bl printf 19989 adrp x0, .LANCHOR93 19990 add x11, x0, :lo12:.LANCHOR93 19991 ldrh w0, [x0, #:lo12:.LANCHOR93] 19992 bl FtlGcRefreshOpenBlock 19993 adrp x0, .LANCHOR94 19994 add x20, x0, :lo12:.LANCHOR94 19995 ldrh w0, [x0, #:lo12:.LANCHOR94] 19996 bl FtlGcRefreshOpenBlock 19997 mov x0, x11 19998 bl allocate_new_data_superblock 19999 mov x0, x20 20000 mov w20, 4097 20001 bl allocate_new_data_superblock 20002.L2954: 20003 subs w20, w20, #1 20004 beq .L2958 20005 mov w1, 1 20006 mov w0, w1 20007 bl ftl_do_gc 20008 ldr x0, [x21, #:lo12:.LANCHOR85] 20009 ldrh w0, [x0, x24] 20010 cbnz w0, .L2954 20011.L2958: 20012 ldr x0, [x21, #:lo12:.LANCHOR85] 20013 mov w1, w23 20014 ldrh w2, [x0, x24] 20015 add x0, x19, :lo12:.LC81 20016 bl printf 20017 ldr x0, [x21, #:lo12:.LANCHOR85] 20018 ldrh w19, [x0, x24] 20019 cbnz w19, .L2956 20020 add x20, x29, 128 20021 adrp x22, .LANCHOR79 20022 strh w23, [x20, -48]! 20023 mov x0, x20 20024 bl make_superblock 20025 adrp x0, .LANCHOR38 20026 ldr x4, [x22, #:lo12:.LANCHOR79] 20027 add x20, x20, 16 20028 mov w5, 65535 20029 ldrh w3, [x0, #:lo12:.LANCHOR38] 20030 mov w6, 56 20031 mov w0, 0 20032.L2959: 20033 cmp w0, w3 20034 bne .L2961 20035 ldr x0, [x21, #:lo12:.LANCHOR85] 20036 mov w1, w23 20037 ldrh w2, [x0, x24] 20038 adrp x0, .LC82 20039 add x0, x0, :lo12:.LC82 20040 bl printf 20041 ldr x0, [x22, #:lo12:.LANCHOR79] 20042 mov w2, w19 20043 mov w1, 0 20044 bl FlashEraseBlocks 20045 ldr x0, [x22, #:lo12:.LANCHOR79] 20046 mov w2, w19 20047 mov w1, 1 20048 bl FlashEraseBlocks 20049.L2956: 20050 mov w0, -1 20051 strh w0, [x25, #:lo12:.LANCHOR241] 20052 ldp x19, x20, [sp, 16] 20053 ldp x21, x22, [sp, 32] 20054 ldp x23, x24, [sp, 48] 20055 ldr x25, [sp, 64] 20056 ldp x29, x30, [sp], 128 20057 ret 20058.L2961: 20059 ldrh w1, [x20] 20060 cmp w1, w5 20061 beq .L2960 20062 umaddl x2, w19, w6, x4 20063 add w19, w19, 1 20064 and w19, w19, 65535 20065 lsl w1, w1, 10 20066 stp xzr, xzr, [x2, 8] 20067 str w1, [x2, 4] 20068.L2960: 20069 add w0, w0, 1 20070 add x20, x20, 2 20071 and w0, w0, 65535 20072 b .L2959 20073.L2967: 20074 ret 20075 .size ftl_fix_nand_power_lost_error, .-ftl_fix_nand_power_lost_error 20076 .section .text.FtlWrite,"ax",@progbits 20077 .align 2 20078 .global FtlWrite 20079 .type FtlWrite, %function 20080FtlWrite: 20081 stp x29, x30, [sp, -256]! 20082 add x29, sp, 0 20083 stp x21, x22, [sp, 32] 20084 mov w22, w1 20085 adrp x1, .LANCHOR78 20086 stp x25, x26, [sp, 64] 20087 mov w25, w2 20088 stp x19, x20, [sp, 16] 20089 ldr w2, [x1, #:lo12:.LANCHOR78] 20090 stp x23, x24, [sp, 48] 20091 stp x27, x28, [sp, 80] 20092 str x1, [x29, 120] 20093 cbnz w2, .L3013 20094 adrp x1, .LANCHOR247 20095 ldr w1, [x1, #:lo12:.LANCHOR247] 20096 cmp w1, 1 20097 bne .L3013 20098 mov x23, x3 20099 cmp w0, 16 20100 bne .L2972 20101 mov x2, x3 20102 mov w1, w25 20103 add w0, w22, 256 20104 bl FtlVendorPartWrite 20105.L2970: 20106 ldp x19, x20, [sp, 16] 20107 ldp x21, x22, [sp, 32] 20108 ldp x23, x24, [sp, 48] 20109 ldp x25, x26, [sp, 64] 20110 ldp x27, x28, [sp, 80] 20111 ldp x29, x30, [sp], 256 20112 ret 20113.L2972: 20114 adrp x0, .LANCHOR68 20115 ldr w1, [x0, #:lo12:.LANCHOR68] 20116 cmp w22, w1 20117 bcs .L3016 20118 cmp w25, w1 20119 bhi .L3016 20120 add w0, w22, w25 20121 cmp w1, w0 20122 bcc .L3016 20123 adrp x1, .LANCHOR256 20124 adrp x3, .LANCHOR55 20125 mov w2, 2048 20126 sub w0, w0, #1 20127 str w2, [x1, #:lo12:.LANCHOR256] 20128 adrp x2, .LANCHOR167 20129 ldrh w1, [x3, #:lo12:.LANCHOR55] 20130 adrp x21, .LANCHOR72 20131 str x3, [x29, 184] 20132 cmp w25, w1, lsl 1 20133 udiv w0, w0, w1 20134 udiv w26, w22, w1 20135 str w0, [x29, 172] 20136 sub w27, w0, w26 20137 ldr w0, [x2, #:lo12:.LANCHOR167] 20138 add w24, w27, 1 20139 add w0, w0, w24 20140 str w0, [x2, #:lo12:.LANCHOR167] 20141 adrp x2, .LANCHOR225 20142 ldr w0, [x2, #:lo12:.LANCHOR225] 20143 add w0, w0, w25 20144 str w0, [x2, #:lo12:.LANCHOR225] 20145 ldr w2, [x21, #:lo12:.LANCHOR72] 20146 cset w0, cs 20147 str w0, [x29, 176] 20148 cbz w2, .L2974 20149 adrp x0, .LANCHOR73 20150 sub w2, w2, #1 20151 mov w3, 56 20152 adrp x20, .LANCHOR257 20153 ldr x0, [x0, #:lo12:.LANCHOR73] 20154 umaddl x2, w2, w3, x0 20155 ldr w0, [x2, 24] 20156 cmp w26, w0 20157 bne .L2975 20158 adrp x3, .LANCHOR169 20159 ldr w0, [x3, #:lo12:.LANCHOR169] 20160 add w0, w0, 1 20161 str w0, [x3, #:lo12:.LANCHOR169] 20162 ldr w0, [x20, #:lo12:.LANCHOR257] 20163 ldr x3, [x2, 8] 20164 add w0, w0, 1 20165 str w0, [x20, #:lo12:.LANCHOR257] 20166 msub w0, w26, w1, w22 20167 sub w1, w1, w0 20168 cmp w25, w1 20169 lsl w0, w0, 9 20170 csel w19, w25, w1, ls 20171 add x0, x3, x0 20172 lsl w24, w19, 9 20173 mov x1, x23 20174 mov w2, w24 20175 bl ftl_memcpy 20176 cbnz w27, .L2976 20177 ldr w0, [x20, #:lo12:.LANCHOR257] 20178 cmp w0, 2 20179 bgt .L2976 20180.L3013: 20181 mov w0, 0 20182 b .L2970 20183.L2976: 20184 add x23, x23, x24 20185 sub w25, w25, w19 20186 add w22, w22, w19 20187 add w26, w26, 1 20188 mov w24, w27 20189.L2975: 20190 str wzr, [x20, #:lo12:.LANCHOR257] 20191.L2974: 20192 ldr w1, [x29, 172] 20193 mov w0, w26 20194 bl FtlCacheMetchLpa 20195 cbz w0, .L2977 20196 bl FtlCacheWriteBack 20197.L2977: 20198 adrp x0, .LANCHOR252 20199 mov w20, w26 20200 adrp x27, .LANCHOR93 20201 str x0, [x29, 112] 20202 add x1, x27, :lo12:.LANCHOR93 20203 str x1, [x0, #:lo12:.LANCHOR252] 20204 adrp x0, .LANCHOR57 20205 add x0, x0, :lo12:.LANCHOR57 20206 str x0, [x29, 136] 20207.L2978: 20208 cbnz w24, .L3007 20209 bl FtlCacheWriteBack 20210 ldr w0, [x29, 172] 20211 sub w1, w0, w26 20212 mov w0, 0 20213 bl ftl_do_gc 20214 adrp x1, .LANCHOR90 20215 mov x22, x1 20216 ldrh w0, [x1, #:lo12:.LANCHOR90] 20217 cmp w0, 5 20218 bls .L3008 20219 cmp w0, 31 20220 bhi .L3013 20221 adrp x0, .LANCHOR2 20222 ldrb w0, [x0, #:lo12:.LANCHOR2] 20223 cbnz w0, .L3013 20224.L3008: 20225 adrp x20, .LANCHOR115 20226 adrp x21, .LANCHOR116 20227 adrp x19, .LANCHOR182 20228 add x20, x20, :lo12:.LANCHOR115 20229 add x21, x21, :lo12:.LANCHOR116 20230 add x19, x19, :lo12:.LANCHOR182 20231.L3011: 20232 adrp x0, .LANCHOR213 20233 ldrh w1, [x0, #:lo12:.LANCHOR213] 20234 mov w0, 65535 20235 cmp w1, w0 20236 bne .L3010 20237 ldrh w0, [x20] 20238 cmp w0, w1 20239 bne .L3010 20240 ldrh w1, [x21] 20241 cmp w1, w0 20242 bne .L3010 20243 and w0, w24, 7 20244 bl List_get_gc_head_node 20245 bl FtlGcRefreshBlock 20246.L3010: 20247 adrp x1, .LANCHOR181 20248 mov w0, 128 20249 strh w0, [x19] 20250 strh w0, [x1, #:lo12:.LANCHOR181] 20251 mov w1, 1 20252 mov w0, w1 20253 bl ftl_do_gc 20254 mov w1, 1 20255 mov w0, 0 20256 bl ftl_do_gc 20257 ldr x0, [x29, 120] 20258 ldr w0, [x0, #:lo12:.LANCHOR78] 20259 cbnz w0, .L3013 20260 ldrh w0, [x22, #:lo12:.LANCHOR90] 20261 cmp w0, 2 20262 bhi .L3013 20263 add w24, w24, 1 20264 cmp w24, 256 20265 bne .L3011 20266 b .L3013 20267.L3007: 20268 add x0, x27, :lo12:.LANCHOR93 20269 adrp x1, .LANCHOR38 20270 str x1, [x29, 144] 20271 ldrb w2, [x0, 6] 20272 ldrh w0, [x1, #:lo12:.LANCHOR38] 20273 cmp w2, w0 20274 bcc .L2979 20275 mov w2, 1472 20276 adrp x1, .LANCHOR258 20277 adrp x0, .LC5 20278 add x1, x1, :lo12:.LANCHOR258 20279 add x0, x0, :lo12:.LC5 20280 bl printf 20281 adrp x1, .LC6 20282 adrp x0, .LC7 20283 add x1, x1, :lo12:.LC6 20284 add x0, x0, :lo12:.LC7 20285 bl printf 20286.L2979: 20287 add x19, x27, :lo12:.LANCHOR93 20288 ldrh w0, [x19, 4] 20289 cbnz w0, .L2980 20290 mov x0, x19 20291 bl allocate_new_data_superblock 20292 ldr x0, [x29, 112] 20293 str x19, [x0, #:lo12:.LANCHOR252] 20294.L2980: 20295 adrp x1, .LANCHOR185 20296 ldr w2, [x21, #:lo12:.LANCHOR72] 20297 str x1, [x29, 104] 20298 ldr w0, [x1, #:lo12:.LANCHOR185] 20299 sub w0, w0, w2 20300 add x2, x27, :lo12:.LANCHOR93 20301 ldrh w3, [x2, 4] 20302 ldrb w2, [x2, 6] 20303 cmp w0, w3 20304 csel w0, w0, w3, ls 20305 cmp w0, w24 20306 csel w0, w0, w24, ls 20307 str w0, [x29, 132] 20308 ldr x0, [x29, 144] 20309 ldrh w0, [x0, #:lo12:.LANCHOR38] 20310 cmp w2, w0 20311 bcc .L2981 20312 mov w2, 1515 20313 adrp x1, .LANCHOR258 20314 adrp x0, .LC5 20315 add x1, x1, :lo12:.LANCHOR258 20316 add x0, x0, :lo12:.LC5 20317 bl printf 20318 adrp x1, .LC6 20319 adrp x0, .LC7 20320 add x1, x1, :lo12:.LC6 20321 add x0, x0, :lo12:.LC7 20322 bl printf 20323.L2981: 20324 str wzr, [x29, 180] 20325.L2982: 20326 ldr w1, [x29, 132] 20327 ldr w0, [x29, 180] 20328 cmp w0, w1 20329 bne .L3002 20330.L2983: 20331 ldr w0, [x29, 180] 20332 cmp w24, w0 20333 bcs .L3003 20334 mov w2, 1609 20335 adrp x1, .LANCHOR258 20336 adrp x0, .LC5 20337 add x1, x1, :lo12:.LANCHOR258 20338 add x0, x0, :lo12:.LC5 20339 bl printf 20340 adrp x1, .LC6 20341 adrp x0, .LC7 20342 add x1, x1, :lo12:.LC6 20343 add x0, x0, :lo12:.LC7 20344 bl printf 20345.L3003: 20346 ldr w0, [x29, 180] 20347 ldr w1, [x21, #:lo12:.LANCHOR72] 20348 sub w24, w24, w0 20349 ldr x0, [x29, 104] 20350 ldr w0, [x0, #:lo12:.LANCHOR185] 20351 cmp w1, w0 20352 bcs .L3004 20353 ldr w0, [x29, 176] 20354 cbnz w0, .L3004 20355 add x0, x27, :lo12:.LANCHOR93 20356 ldrh w0, [x0, 4] 20357 cbz w0, .L3004 20358.L3006: 20359 str wzr, [x29, 176] 20360 b .L2978 20361.L3002: 20362 add x0, x27, :lo12:.LANCHOR93 20363 ldrh w0, [x0, 4] 20364 cbz w0, .L2983 20365 ldr w0, [x29, 172] 20366 cmp w0, w20 20367 ldr w0, [x29, 176] 20368 cset w3, eq 20369 tst w3, w0 20370 beq .L2984 20371 ldr w0, [x29, 180] 20372 cbz w0, .L2984 20373 ldr x0, [x29, 184] 20374 ldrh w1, [x0, #:lo12:.LANCHOR55] 20375 add w0, w22, w25 20376 msub w0, w20, w1, w0 20377 cmp w1, w0 20378 bne .L2983 20379.L2984: 20380 add x1, x29, 196 20381 mov w2, 0 20382 str w3, [x29, 96] 20383 adrp x19, .LANCHOR73 20384 mov w0, w20 20385 bl log2phys 20386 add x0, x27, :lo12:.LANCHOR93 20387 bl get_new_active_ppa 20388 ldr w5, [x21, #:lo12:.LANCHOR72] 20389 mov w4, 56 20390 ldr x1, [x19, #:lo12:.LANCHOR73] 20391 str w4, [x29, 168] 20392 nop // between mem op and mult-accumulate 20393 umaddl x1, w5, w4, x1 20394 str w0, [x1, 4] 20395 adrp x0, .LANCHOR58 20396 str w20, [x1, 24] 20397 ldrh w2, [x0, #:lo12:.LANCHOR58] 20398 mul w0, w5, w2 20399 and x0, x0, 4294967292 20400 str x0, [x29, 160] 20401 adrp x0, .LANCHOR197 20402 ldr x3, [x29, 160] 20403 ldr x0, [x0, #:lo12:.LANCHOR197] 20404 str x0, [x29, 152] 20405 add x28, x0, x3 20406 adrp x0, .LANCHOR57 20407 str x28, [x1, 16] 20408 ldrh w0, [x0, #:lo12:.LANCHOR57] 20409 mul w0, w0, w5 20410 adrp x5, .LANCHOR192 20411 ldr x5, [x5, #:lo12:.LANCHOR192] 20412 and x0, x0, 4294967292 20413 add x0, x5, x0 20414 str x0, [x1, 8] 20415 mov w1, 0 20416 mov x0, x28 20417 bl ftl_memset 20418 ldr w3, [x29, 96] 20419 cmp w26, w20 20420 cset w0, eq 20421 ldr w4, [x29, 168] 20422 orr w0, w3, w0 20423 mov x3, x19 20424 cbz w0, .L2985 20425 bne .L2986 20426 ldr x0, [x29, 184] 20427 ldrh w19, [x0, #:lo12:.LANCHOR55] 20428 udiv w0, w22, w19 20429 msub w0, w0, w19, w22 20430 str w0, [x29, 168] 20431 sub w19, w19, w0 20432 cmp w19, w25 20433 csel w19, w19, w25, ls 20434.L2987: 20435 ldr x0, [x29, 184] 20436 ldrh w0, [x0, #:lo12:.LANCHOR55] 20437 cmp w0, w19 20438 bne .L2988 20439 cmp w26, w20 20440 beq .L3019 20441 mul w1, w20, w19 20442 sub w1, w1, w22 20443 lsl w1, w1, 9 20444 add x1, x23, x1 20445.L2989: 20446 ldr w0, [x29, 176] 20447 cbz w0, .L2990 20448 ldr x2, [x3, #:lo12:.LANCHOR73] 20449 mov w3, 56 20450 ldr w0, [x21, #:lo12:.LANCHOR72] 20451 umaddl x0, w0, w3, x2 20452 str x1, [x0, 8] 20453.L2991: 20454 add x0, x27, :lo12:.LANCHOR93 20455 ldrb w1, [x0, 6] 20456 ldr x0, [x29, 144] 20457 ldrh w0, [x0, #:lo12:.LANCHOR38] 20458 cmp w1, w0 20459 bcc .L2999 20460 mov w2, 1599 20461 adrp x1, .LANCHOR258 20462 adrp x0, .LC5 20463 add x1, x1, :lo12:.LANCHOR258 20464 add x0, x0, :lo12:.LC5 20465 bl printf 20466 adrp x1, .LC6 20467 adrp x0, .LC7 20468 add x1, x1, :lo12:.LC6 20469 add x0, x0, :lo12:.LC7 20470 bl printf 20471.L2999: 20472 ldp x1, x2, [x29, 152] 20473 mov w0, -3947 20474 strh w0, [x1, x2] 20475 adrp x1, .LANCHOR165 20476 ldr w0, [x1, #:lo12:.LANCHOR165] 20477 stp w0, w20, [x28, 4] 20478 add w20, w20, 1 20479 add w0, w0, 1 20480 cmn w0, #1 20481 csel w0, w0, wzr, ne 20482 str w0, [x1, #:lo12:.LANCHOR165] 20483 ldr w0, [x29, 196] 20484 str w0, [x28, 12] 20485 ldrh w0, [x27, #:lo12:.LANCHOR93] 20486 strh w0, [x28, 2] 20487 ldr w0, [x21, #:lo12:.LANCHOR72] 20488 add w0, w0, 1 20489 str w0, [x21, #:lo12:.LANCHOR72] 20490 ldr w0, [x29, 180] 20491 add w0, w0, 1 20492 str w0, [x29, 180] 20493 b .L2982 20494.L2986: 20495 ldr x0, [x29, 184] 20496 add w19, w22, w25 20497 str wzr, [x29, 168] 20498 ldrh w0, [x0, #:lo12:.LANCHOR55] 20499 msub w19, w20, w0, w19 20500 and w19, w19, 65535 20501 b .L2987 20502.L3019: 20503 mov x1, x23 20504 b .L2989 20505.L2990: 20506 ldr x2, [x3, #:lo12:.LANCHOR73] 20507 mov w3, 56 20508 ldr w0, [x21, #:lo12:.LANCHOR72] 20509 umaddl x0, w0, w3, x2 20510 ldr x2, [x29, 136] 20511 ldrh w2, [x2] 20512.L3039: 20513 ldr x0, [x0, 8] 20514 b .L3038 20515.L2988: 20516 ldr w0, [x29, 196] 20517 cmn w0, #1 20518 beq .L2992 20519 ldr x1, [x3, #:lo12:.LANCHOR73] 20520 mov w2, 56 20521 str w0, [x29, 204] 20522 ldr w0, [x21, #:lo12:.LANCHOR72] 20523 str x3, [x29, 96] 20524 str w20, [x29, 224] 20525 nop // between mem op and mult-accumulate 20526 umaddl x0, w0, w2, x1 20527 mov w2, 0 20528 ldp x1, x0, [x0, 8] 20529 stp x1, x0, [x29, 208] 20530 mov w1, 1 20531 add x0, x29, 200 20532 bl FlashReadPages 20533 ldr w0, [x29, 200] 20534 ldr x3, [x29, 96] 20535 cmn w0, #1 20536 bne .L2993 20537 adrp x0, .LANCHOR141 20538 add x0, x0, :lo12:.LANCHOR141 20539 ldr w1, [x0, 72] 20540 add w1, w1, 1 20541 str w1, [x0, 72] 20542.L2996: 20543 cmp w26, w20 20544 lsl w2, w19, 9 20545 bne .L2997 20546 ldr x0, [x3, #:lo12:.LANCHOR73] 20547 mov w3, 56 20548 ldr w1, [x21, #:lo12:.LANCHOR72] 20549 umaddl x1, w1, w3, x0 20550 ldr w0, [x29, 168] 20551 lsl w0, w0, 9 20552 ldr x3, [x1, 8] 20553 mov x1, x23 20554 add x0, x3, x0 20555.L3038: 20556 bl ftl_memcpy 20557 b .L2991 20558.L2993: 20559 ldr w1, [x28, 8] 20560 cmp w20, w1 20561 beq .L2995 20562 adrp x0, .LANCHOR141 20563 add x0, x0, :lo12:.LANCHOR141 20564 str x3, [x29, 96] 20565 ldr w2, [x0, 72] 20566 add w2, w2, 1 20567 str w2, [x0, 72] 20568 mov w2, w20 20569 adrp x0, .LC83 20570 add x0, x0, :lo12:.LC83 20571 bl printf 20572 ldr x3, [x29, 96] 20573.L2995: 20574 ldr w0, [x28, 8] 20575 cmp w20, w0 20576 beq .L2996 20577 mov w2, 1581 20578 adrp x1, .LANCHOR258 20579 adrp x0, .LC5 20580 add x1, x1, :lo12:.LANCHOR258 20581 add x0, x0, :lo12:.LC5 20582 str x3, [x29, 96] 20583 bl printf 20584 adrp x1, .LC6 20585 adrp x0, .LC7 20586 add x1, x1, :lo12:.LC6 20587 add x0, x0, :lo12:.LC7 20588 bl printf 20589.L3037: 20590 ldr x3, [x29, 96] 20591 b .L2996 20592.L2992: 20593 ldr x1, [x3, #:lo12:.LANCHOR73] 20594 mov w2, 56 20595 ldr w0, [x21, #:lo12:.LANCHOR72] 20596 str x3, [x29, 96] 20597 nop // between mem op and mult-accumulate 20598 umaddl x0, w0, w2, x1 20599 ldr x1, [x29, 136] 20600 ldr x0, [x0, 8] 20601 ldrh w2, [x1] 20602 mov w1, 0 20603 bl ftl_memset 20604 b .L3037 20605.L2997: 20606 ldr x0, [x29, 184] 20607 mov w4, 56 20608 ldr x3, [x3, #:lo12:.LANCHOR73] 20609 ldrh w1, [x0, #:lo12:.LANCHOR55] 20610 ldr w0, [x21, #:lo12:.LANCHOR72] 20611 mul w1, w1, w20 20612 umaddl x0, w0, w4, x3 20613 sub w1, w1, w22 20614 lsl w1, w1, 9 20615 add x1, x23, x1 20616 b .L3039 20617.L2985: 20618 ldr w0, [x29, 176] 20619 cbz w0, .L2998 20620 ldr w0, [x21, #:lo12:.LANCHOR72] 20621 ldr x1, [x19, #:lo12:.LANCHOR73] 20622 umaddl x4, w0, w4, x1 20623 ldr x0, [x29, 184] 20624 ldrh w0, [x0, #:lo12:.LANCHOR55] 20625 mul w0, w0, w20 20626 sub w0, w0, w22 20627 lsl w0, w0, 9 20628 add x0, x23, x0 20629 str x0, [x4, 8] 20630 b .L2991 20631.L2998: 20632 ldr x0, [x29, 184] 20633 ldr x2, [x19, #:lo12:.LANCHOR73] 20634 ldrh w1, [x0, #:lo12:.LANCHOR55] 20635 ldr w0, [x21, #:lo12:.LANCHOR72] 20636 mul w1, w1, w20 20637 umaddl x4, w0, w4, x2 20638 adrp x0, .LANCHOR57 20639 sub w1, w1, w22 20640 lsl w1, w1, 9 20641 ldrh w2, [x0, #:lo12:.LANCHOR57] 20642 add x1, x23, x1 20643 ldr x0, [x4, 8] 20644 b .L3038 20645.L3004: 20646 bl FtlCacheWriteBack 20647 str wzr, [x21, #:lo12:.LANCHOR72] 20648 cmp w24, 1 20649 bhi .L2978 20650 b .L3006 20651.L3016: 20652 mov w0, -1 20653 b .L2970 20654 .size FtlWrite, .-FtlWrite 20655 .section .text.ftl_vendor_write,"ax",@progbits 20656 .align 2 20657 .global ftl_vendor_write 20658 .type ftl_vendor_write, %function 20659ftl_vendor_write: 20660 mov x3, x2 20661 mov w2, w1 20662 mov w1, w0 20663 mov w0, 16 20664 b FtlWrite 20665 .size ftl_vendor_write, .-ftl_vendor_write 20666 .section .text.ftl_sys_write,"ax",@progbits 20667 .align 2 20668 .global ftl_sys_write 20669 .type ftl_sys_write, %function 20670ftl_sys_write: 20671 mov x3, x2 20672 mov w2, w1 20673 add w1, w0, 256 20674 mov w0, 16 20675 b FtlWrite 20676 .size ftl_sys_write, .-ftl_sys_write 20677 .section .text.StorageSysDataStore,"ax",@progbits 20678 .align 2 20679 .global StorageSysDataStore 20680 .type StorageSysDataStore, %function 20681StorageSysDataStore: 20682 mov x3, x1 20683 mov w2, 1 20684 add w1, w0, 256 20685 mov w0, 16 20686 b FtlWrite 20687 .size StorageSysDataStore, .-StorageSysDataStore 20688 .section .text.FlashBootVendorWrite,"ax",@progbits 20689 .align 2 20690 .global FlashBootVendorWrite 20691 .type FlashBootVendorWrite, %function 20692FlashBootVendorWrite: 20693 mov x3, x2 20694 mov w1, w0 20695 mov w2, 1 20696 mov w0, 16 20697 b FtlWrite 20698 .size FlashBootVendorWrite, .-FlashBootVendorWrite 20699 .section .text.ftl_write,"ax",@progbits 20700 .align 2 20701 .global ftl_write 20702 .type ftl_write, %function 20703ftl_write: 20704 stp x29, x30, [sp, -48]! 20705 add x29, sp, 0 20706 stp x19, x20, [sp, 16] 20707 mov w19, w2 20708 stp x21, x22, [sp, 32] 20709 mov x20, x3 20710 mov w22, w1 20711 ands w21, w0, 255 20712 bne .L3045 20713 mov w3, w2 20714 mov w0, 0 20715 mov x2, x20 20716 bl idb_write_data 20717.L3045: 20718 mov x3, x20 20719 mov w2, w19 20720 mov w1, w22 20721 mov w0, w21 20722 ldp x19, x20, [sp, 16] 20723 ldp x21, x22, [sp, 32] 20724 ldp x29, x30, [sp], 48 20725 b FtlWrite 20726 .size ftl_write, .-ftl_write 20727 .section .text.FtlDumpSysBlock,"ax",@progbits 20728 .align 2 20729 .global FtlDumpSysBlock 20730 .type FtlDumpSysBlock, %function 20731FtlDumpSysBlock: 20732 sub sp, sp, #112 20733 stp x29, x30, [sp, 16] 20734 add x29, sp, 16 20735 stp x25, x26, [sp, 80] 20736 and w25, w0, 65535 20737 adrp x0, .LANCHOR189 20738 stp x21, x22, [sp, 48] 20739 adrp x21, .LANCHOR211 20740 add x1, x21, :lo12:.LANCHOR211 20741 ldr x2, [x0, #:lo12:.LANCHOR189] 20742 adrp x22, .LANCHOR53 20743 stp x23, x24, [sp, 64] 20744 lsl w26, w25, 10 20745 stp x19, x20, [sp, 32] 20746 adrp x23, .LC84 20747 str x27, [sp, 96] 20748 adrp x24, .LC85 20749 str x2, [x1, 8] 20750 adrp x2, .LANCHOR195 20751 add x22, x22, :lo12:.LANCHOR53 20752 add x23, x23, :lo12:.LC84 20753 ldr x2, [x2, #:lo12:.LANCHOR195] 20754 add x24, x24, :lo12:.LC85 20755 mov x27, x0 20756 mov w19, 0 20757 str x2, [x1, 16] 20758.L3048: 20759 ldrh w0, [x22] 20760 cmp w19, w0 20761 blt .L3050 20762 ldp x19, x20, [sp, 32] 20763 ldp x21, x22, [sp, 48] 20764 ldp x23, x24, [sp, 64] 20765 ldp x25, x26, [sp, 80] 20766 ldp x29, x30, [sp, 16] 20767 ldr x27, [sp, 96] 20768 add sp, sp, 112 20769 ret 20770.L3050: 20771 add x20, x21, :lo12:.LANCHOR211 20772 orr w0, w19, w26 20773 mov w2, 1 20774 mov w1, w2 20775 str w0, [x20, 4] 20776 mov x0, x20 20777 bl FlashReadPages 20778 ldp x1, x0, [x20, 8] 20779 ldr w2, [x21, #:lo12:.LANCHOR211] 20780 ldr w3, [x20, 4] 20781 ldr w1, [x1] 20782 str w1, [sp] 20783 mov w1, w25 20784 ldp w4, w5, [x0] 20785 ldp w6, w7, [x0, 8] 20786 mov x0, x23 20787 bl printf 20788 ldr x0, [x20, 16] 20789 ldr w0, [x0] 20790 cmn w0, #1 20791 beq .L3049 20792 ldr x1, [x27, #:lo12:.LANCHOR189] 20793 mov w3, 768 20794 mov w2, 4 20795 mov x0, x24 20796 bl rknand_print_hex 20797.L3049: 20798 add w19, w19, 1 20799 sxth w19, w19 20800 b .L3048 20801 .size FtlDumpSysBlock, .-FtlDumpSysBlock 20802 .section .text.dump_map_info,"ax",@progbits 20803 .align 2 20804 .global dump_map_info 20805 .type dump_map_info, %function 20806dump_map_info: 20807 sub sp, sp, #96 20808 adrp x0, .LANCHOR40 20809 stp x29, x30, [sp, 16] 20810 add x29, sp, 16 20811 stp x19, x20, [sp, 32] 20812 ldrh w20, [x0, #:lo12:.LANCHOR40] 20813 stp x23, x24, [sp, 64] 20814 adrp x23, .LANCHOR47 20815 stp x21, x22, [sp, 48] 20816 add x23, x23, :lo12:.LANCHOR47 20817 adrp x22, .LANCHOR41 20818 add x22, x22, :lo12:.LANCHOR41 20819 stp x25, x26, [sp, 80] 20820 adrp x24, .LANCHOR38 20821.L3056: 20822 ldrh w0, [x22] 20823 cmp w0, w20 20824 bhi .L3062 20825 adrp x25, .LANCHOR131 20826 adrp x19, .LANCHOR211 20827 add x25, x25, :lo12:.LANCHOR131 20828 add x19, x19, :lo12:.LANCHOR211 20829 mov w26, 0 20830.L3063: 20831 ldrh w0, [x25] 20832 cmp w26, w0 20833 bge .L3066 20834 adrp x21, .LANCHOR53 20835 adrp x0, .LC51 20836 sbfiz x23, x26, 1, 32 20837 mov w20, 0 20838 add x21, x21, :lo12:.LANCHOR53 20839 add x24, x0, :lo12:.LC51 20840 b .L3067 20841.L3058: 20842 ldrb w0, [x23, x5] 20843 mov w1, w20 20844 bl V2P_block 20845 and w4, w0, 65535 20846 bl FtlBbmIsBadBlock 20847 cbnz w0, .L3057 20848 umaddl x1, w19, w7, x6 20849 lsl w4, w4, 10 20850 mul w0, w19, w8 20851 add w19, w19, 1 20852 and w19, w19, 65535 20853 asr w0, w0, 2 20854 str w4, [x1, 4] 20855 add x0, x10, x0, sxtw 2 20856 stp x11, x0, [x1, 8] 20857.L3057: 20858 add x5, x5, 1 20859.L3064: 20860 cmp w12, w5, uxth 20861 bhi .L3058 20862 cbnz w19, .L3059 20863.L3061: 20864 add w20, w20, 1 20865 and w20, w20, 65535 20866 b .L3056 20867.L3059: 20868 mov w1, w19 20869 mov w2, 1 20870 mov x0, x6 20871 bl FlashReadPages 20872 mov w0, 56 20873 adrp x26, .LC86 20874 add x26, x26, :lo12:.LC86 20875 mov x25, 0 20876 umull x19, w19, w0 20877.L3060: 20878 ldr x0, [x21, #:lo12:.LANCHOR186] 20879 add x0, x0, x25 20880 add x25, x25, 56 20881 ldr x1, [x0, 16] 20882 ldr w2, [x0, 4] 20883 ldr x0, [x0, 8] 20884 ldr w3, [x0, 4] 20885 str w3, [sp] 20886 ldr w7, [x0] 20887 mov x0, x26 20888 ldp w3, w4, [x1] 20889 ldp w5, w6, [x1, 8] 20890 ubfx x1, x2, 10, 16 20891 bl printf 20892 cmp x25, x19 20893 bne .L3060 20894 b .L3061 20895.L3062: 20896 adrp x0, .LANCHOR107 20897 adrp x21, .LANCHOR186 20898 ldrh w12, [x24, #:lo12:.LANCHOR38] 20899 mov x5, 0 20900 ldr x11, [x0, #:lo12:.LANCHOR107] 20901 adrp x0, .LANCHOR108 20902 ldr x6, [x21, #:lo12:.LANCHOR186] 20903 mov w19, 0 20904 ldr x10, [x0, #:lo12:.LANCHOR108] 20905 adrp x0, .LANCHOR58 20906 mov w7, 56 20907 ldrh w8, [x0, #:lo12:.LANCHOR58] 20908 b .L3064 20909.L3065: 20910 adrp x22, .LANCHOR132 20911 mov w2, 1 20912 mov w1, w2 20913 ldr x0, [x22, #:lo12:.LANCHOR132] 20914 ldrh w0, [x0, x23] 20915 orr w0, w20, w0, lsl 10 20916 str w0, [x19, 4] 20917 mov x0, x19 20918 bl FlashReadPages 20919 ldp x2, x0, [x19, 8] 20920 add w20, w20, 1 20921 ldr x1, [x22, #:lo12:.LANCHOR132] 20922 sxth w20, w20 20923 ldr w3, [x2, 4] 20924 ldrh w1, [x1, x23] 20925 str w3, [sp, 8] 20926 ldr w2, [x2] 20927 str w2, [sp] 20928 ldp w4, w5, [x0] 20929 ldp w6, w7, [x0, 8] 20930 mov x0, x24 20931 ldp w2, w3, [x19] 20932 bl printf 20933.L3067: 20934 ldrh w0, [x21] 20935 cmp w20, w0 20936 blt .L3065 20937 add w0, w26, 1 20938 sxth w26, w0 20939 b .L3063 20940.L3066: 20941 adrp x0, .LANCHOR64 20942 mov w2, 2 20943 adrp x19, .LANCHOR66 20944 ldr w3, [x0, #:lo12:.LANCHOR64] 20945 adrp x0, .LANCHOR132 20946 ldr x1, [x0, #:lo12:.LANCHOR132] 20947 adrp x0, .LC87 20948 add x0, x0, :lo12:.LC87 20949 bl rknand_print_hex 20950 adrp x0, .LANCHOR134 20951 ldrh w3, [x19, #:lo12:.LANCHOR66] 20952 mov w2, 4 20953 ldr x1, [x0, #:lo12:.LANCHOR134] 20954 adrp x0, .LC88 20955 add x0, x0, :lo12:.LC88 20956 bl rknand_print_hex 20957 adrp x0, .LANCHOR203 20958 ldrh w3, [x19, #:lo12:.LANCHOR66] 20959 ldp x21, x22, [sp, 48] 20960 mov w2, 4 20961 ldr x1, [x0, #:lo12:.LANCHOR203] 20962 adrp x0, .LC89 20963 ldp x19, x20, [sp, 32] 20964 add x0, x0, :lo12:.LC89 20965 ldp x23, x24, [sp, 64] 20966 ldp x25, x26, [sp, 80] 20967 ldp x29, x30, [sp, 16] 20968 add sp, sp, 96 20969 b rknand_print_hex 20970 .size dump_map_info, .-dump_map_info 20971 .global FtlMallocOffset 20972 .global FtlMallocBuffer 20973 .global LastWritenPbaAddr 20974 .global gc_ink_free_return_value 20975 .global check_valid_page_count_table 20976 .global FtlUpdateVaildLpnCount 20977 .global g_ect_tbl_power_up_flush 20978 .global last_cache_match_count 20979 .global power_up_flag 20980 .global g_LowFormat 20981 .global gFtlInitStatus 20982 .global DeviceCapacity 20983 .global ToshibaRefValue 20984 .global Toshiba15RefValue 20985 .global ToshibaA19RefValue 20986 .global SamsungRefValue 20987 .global refValueDefault 20988 .global random_seed 20989 .global gSlcNandParaInfo 20990 .global gNandParaInfo 20991 .global g_page_map_check_enable 20992 .global g_power_lost_ecc_error_blk 20993 .global g_power_lost_recovery_flag 20994 .global c_mlc_erase_count_value 20995 .global g_recovery_ppa_tbl 20996 .global g_recovery_page_min_ver 20997 .global g_recovery_page_num 20998 .global g_cur_erase_blk 20999 .global g_gc_skip_write_count 21000 .global g_gc_head_data_block_count 21001 .global g_gc_head_data_block 21002 .global g_ftl_nand_free_count 21003 .global g_in_swl_replace 21004 .global g_in_gc_progress 21005 .global g_all_blk_used_slc_mode 21006 .global g_max_erase_count 21007 .global g_totle_sys_slc_erase_count 21008 .global g_totle_slc_erase_count 21009 .global g_min_erase_count 21010 .global g_totle_avg_erase_count 21011 .global g_totle_mlc_erase_count 21012 .global g_totle_l2p_write_count 21013 .global g_totle_cache_write_count 21014 .global g_tmp_data_superblock_id 21015 .global g_totle_read_page_count 21016 .global g_totle_discard_page_count 21017 .global g_totle_read_sector 21018 .global g_totle_write_sector 21019 .global g_totle_write_page_count 21020 .global g_totle_gc_page_count 21021 .global g_gc_blk_index 21022 .global g_gc_merge_free_blk_threshold 21023 .global g_gc_free_blk_threshold 21024 .global g_gc_refresh_block_temp_tbl 21025 .global g_free_slc_blk_num 21026 .global g_gc_refresh_block_temp_num 21027 .global g_gc_bad_block_temp_tbl 21028 .global g_gc_bad_block_gc_index 21029 .global g_gc_bad_block_temp_num 21030 .global g_gc_next_blk_3 21031 .global g_gc_next_blk_2 21032 .global g_gc_next_blk_1 21033 .global g_gc_next_blk 21034 .global g_gc_cur_blk_max_valid_pages 21035 .global g_gc_cur_blk_valid_pages 21036 .global g_gc_page_offset 21037 .global g_gc_blk_num 21038 .global p_gc_blk_tbl 21039 .global p_gc_page_info 21040 .global g_sys_ext_data 21041 .global g_sys_save_data 21042 .global gp_last_act_superblock 21043 .global g_gc_superblock 21044 .global g_gc_temp_superblock 21045 .global g_buffer_superblock 21046 .global g_active_superblock 21047 .global g_num_data_superblocks 21048 .global g_num_free_superblocks 21049 .global p_data_block_list_tail 21050 .global p_data_block_list_head 21051 .global p_free_data_block_list_head 21052 .global p_data_block_list_table 21053 .global g_l2p_last_update_region_id 21054 .global p_l2p_map_buf 21055 .global p_l2p_ram_map 21056 .global g_totle_vendor_block 21057 .global p_vendor_region_ppn_table 21058 .global p_vendor_block_ver_table 21059 .global p_vendor_block_valid_page_count 21060 .global p_vendor_block_table 21061 .global g_totle_map_block 21062 .global p_map_region_ppn_check_table 21063 .global p_map_region_ppn_table 21064 .global p_map_block_ver_table 21065 .global p_map_block_valid_page_count 21066 .global p_map_block_table 21067 .global p_blk_mode_table 21068 .global p_valid_page_count_table 21069 .global g_totle_swl_count 21070 .global p_swl_mul_table 21071 .global p_erase_count_table 21072 .global g_ect_tbl_info_size 21073 .global gp_ect_tbl_info 21074 .global g_gc_num_req 21075 .global c_gc_page_buf_num 21076 .global gp_gc_page_buf_info 21077 .global p_gc_data_buf 21078 .global p_gc_spare_buf 21079 .global p_io_spare_buf 21080 .global p_io_data_buf_1 21081 .global p_io_data_buf_0 21082 .global p_sys_spare_buf 21083 .global p_vendor_data_buf 21084 .global p_sys_data_buf_1 21085 .global p_sys_data_buf 21086 .global g_wr_page_num 21087 .global req_wr_io 21088 .global c_wr_page_buf_num 21089 .global p_wr_io_data_buf 21090 .global p_wr_io_spare_buf 21091 .global p_plane_order_table 21092 .global g_req_cache 21093 .global req_gc_dst 21094 .global req_gc 21095 .global req_erase 21096 .global req_prgm 21097 .global req_read 21098 .global req_sys 21099 .global gVendorBlkInfo 21100 .global gL2pMapInfo 21101 .global gSysFreeQueue 21102 .global gSysInfo 21103 .global gBbtInfo 21104 .global g_flash_read_only_en 21105 .global g_inkDie_check_enable 21106 .global g_SlcPartLbaEndSector 21107 .global g_MaxLbn 21108 .global g_VaildLpn 21109 .global g_MaxLpn 21110 .global g_MaxLbaSector 21111 .global g_GlobalDataVersion 21112 .global g_GlobalSysVersion 21113 .global ftl_gc_temp_power_lost_recovery_flag 21114 .global c_ftl_nand_max_data_blks 21115 .global c_ftl_nand_data_op_blks_per_plane 21116 .global c_ftl_nand_data_blks_per_plane 21117 .global c_ftl_nand_max_sys_blks 21118 .global c_ftl_nand_init_sys_blks_per_plane 21119 .global c_ftl_nand_sys_blks_per_plane 21120 .global c_ftl_vendor_part_size 21121 .global c_ftl_nand_max_vendor_blks 21122 .global c_ftl_nand_max_map_blks 21123 .global c_ftl_nand_map_blks_per_plane 21124 .global c_ftl_nand_vendor_region_num 21125 .global c_ftl_nand_l2pmap_ram_region_num 21126 .global c_ftl_nand_map_region_num 21127 .global c_ftl_nand_totle_phy_blks 21128 .global c_ftl_nand_reserved_blks 21129 .global c_ftl_nand_byte_pre_oob 21130 .global c_ftl_nand_byte_pre_page 21131 .global c_ftl_nand_sec_pre_page_shift 21132 .global c_ftl_nand_sec_pre_page 21133 .global c_ftl_nand_page_pre_super_blk 21134 .global c_ftl_nand_page_pre_slc_blk 21135 .global c_ftl_nand_page_pre_blk 21136 .global c_ftl_nand_bbm_buf_size 21137 .global c_ftl_nand_ext_blk_pre_plane 21138 .global c_ftl_nand_blk_pre_plane 21139 .global c_ftl_nand_planes_num 21140 .global c_ftl_nand_blks_per_die 21141 .global c_ftl_nand_planes_per_die 21142 .global c_ftl_nand_die_num 21143 .global c_ftl_nand_type 21144 .global gMasterTempBuf 21145 .global gMasterInfo 21146 .global gNandcDumpWriteEn 21147 .global gToggleModeClkDiv 21148 .global gBootDdrMode 21149 .global gNandcEccBits 21150 .global gpNandc1 21151 .global gpNandc 21152 .global g_nandc_version_data 21153 .global gNandcVer 21154 .global gNandChipMap 21155 .global gNandIDataBuf 21156 .global idb_flash_slc_mode 21157 .global FlashDdrTunningReadCount 21158 .global FlashWaitBusyScheduleEn 21159 .global gNandPhyInfo 21160 .global gFlashProgCheckSpareBuffer 21161 .global gFlashProgCheckBuffer 21162 .global gFlashSpareBuffer 21163 .global gFlashPageBuffer1 21164 .global gFlashPageBuffer0 21165 .global gpFlashSaveInfo 21166 .global gReadRetryInfo 21167 .global gpNandParaInfo 21168 .global gNandOptPara 21169 .global g_nand_ecc_en 21170 .global g_slc2KBNand 21171 .global g_maxRetryCount 21172 .global g_maxRegNum 21173 .global g_retryMode 21174 .global gNandIDBResBlkNumSaveInFlash 21175 .global gNandIDBResBlkNum 21176 .global gNandFlashResEndPageAddr 21177 .global gNandFlashInfoBlockAddr 21178 .global gNandFlashIdbBlockAddr 21179 .global gNandFlashInfoBlockEcc 21180 .global gNandFlashIDBEccBits 21181 .global gNandFlashEccBits 21182 .global gNandRandomizer 21183 .global gBlockPageAlignSize 21184 .global gTotleBlock 21185 .global gNandMaxChip 21186 .global gNandMaxDie 21187 .global gFlashInterfaceMode 21188 .global gFlashCurMode 21189 .global gFlashSlcMode 21190 .global gFlashOnfiModeEn 21191 .global gFlashToggleModeEn 21192 .global gFlashSdrModeEn 21193 .global gMultiPageProgEn 21194 .global gMultiPageReadEn 21195 .global gpReadRetrial 21196 .global mlcPageToSlcPageTbl 21197 .global slcPageToMlcPageTbl 21198 .global DieAddrs 21199 .global gDieOp 21200 .global DieCsIndex 21201 .global IDByte 21202 .global read_retry_cur_offset 21203 .section .bss.DeviceCapacity,"aw",@nobits 21204 .align 2 21205 .set .LANCHOR60,. + 0 21206 .type DeviceCapacity, %object 21207 .size DeviceCapacity, 4 21208DeviceCapacity: 21209 .zero 4 21210 .section .bss.DieAddrs,"aw",@nobits 21211 .align 2 21212 .set .LANCHOR18,. + 0 21213 .type DieAddrs, %object 21214 .size DieAddrs, 32 21215DieAddrs: 21216 .zero 32 21217 .section .bss.DieCsIndex,"aw",@nobits 21218 .align 2 21219 .set .LANCHOR27,. + 0 21220 .type DieCsIndex, %object 21221 .size DieCsIndex, 8 21222DieCsIndex: 21223 .zero 8 21224 .section .bss.FlashDdrTunningReadCount,"aw",@nobits 21225 .align 2 21226 .set .LANCHOR147,. + 0 21227 .type FlashDdrTunningReadCount, %object 21228 .size FlashDdrTunningReadCount, 4 21229FlashDdrTunningReadCount: 21230 .zero 4 21231 .section .bss.FlashWaitBusyScheduleEn,"aw",@nobits 21232 .align 2 21233 .type FlashWaitBusyScheduleEn, %object 21234 .size FlashWaitBusyScheduleEn, 4 21235FlashWaitBusyScheduleEn: 21236 .zero 4 21237 .section .bss.FtlMallocBuffer,"aw",@nobits 21238 .align 6 21239 .type FtlMallocBuffer, %object 21240 .size FtlMallocBuffer, 1310720 21241FtlMallocBuffer: 21242 .zero 1310720 21243 .section .bss.FtlUpdateVaildLpnCount,"aw",@nobits 21244 .align 1 21245 .set .LANCHOR101,. + 0 21246 .type FtlUpdateVaildLpnCount, %object 21247 .size FtlUpdateVaildLpnCount, 2 21248FtlUpdateVaildLpnCount: 21249 .zero 2 21250 .section .bss.IDByte,"aw",@nobits 21251 .align 2 21252 .set .LANCHOR22,. + 0 21253 .type IDByte, %object 21254 .size IDByte, 32 21255IDByte: 21256 .zero 32 21257 .section .bss.c_ftl_nand_bbm_buf_size,"aw",@nobits 21258 .align 1 21259 .set .LANCHOR126,. + 0 21260 .type c_ftl_nand_bbm_buf_size, %object 21261 .size c_ftl_nand_bbm_buf_size, 2 21262c_ftl_nand_bbm_buf_size: 21263 .zero 2 21264 .section .bss.c_ftl_nand_blk_pre_plane,"aw",@nobits 21265 .align 1 21266 .set .LANCHOR41,. + 0 21267 .type c_ftl_nand_blk_pre_plane, %object 21268 .size c_ftl_nand_blk_pre_plane, 2 21269c_ftl_nand_blk_pre_plane: 21270 .zero 2 21271 .section .bss.c_ftl_nand_blks_per_die,"aw",@nobits 21272 .align 1 21273 .set .LANCHOR51,. + 0 21274 .type c_ftl_nand_blks_per_die, %object 21275 .size c_ftl_nand_blks_per_die, 2 21276c_ftl_nand_blks_per_die: 21277 .zero 2 21278 .section .bss.c_ftl_nand_byte_pre_oob,"aw",@nobits 21279 .align 1 21280 .set .LANCHOR58,. + 0 21281 .type c_ftl_nand_byte_pre_oob, %object 21282 .size c_ftl_nand_byte_pre_oob, 2 21283c_ftl_nand_byte_pre_oob: 21284 .zero 2 21285 .section .bss.c_ftl_nand_byte_pre_page,"aw",@nobits 21286 .align 1 21287 .set .LANCHOR57,. + 0 21288 .type c_ftl_nand_byte_pre_page, %object 21289 .size c_ftl_nand_byte_pre_page, 2 21290c_ftl_nand_byte_pre_page: 21291 .zero 2 21292 .section .bss.c_ftl_nand_data_blks_per_plane,"aw",@nobits 21293 .align 1 21294 .set .LANCHOR40,. + 0 21295 .type c_ftl_nand_data_blks_per_plane, %object 21296 .size c_ftl_nand_data_blks_per_plane, 2 21297c_ftl_nand_data_blks_per_plane: 21298 .zero 2 21299 .section .bss.c_ftl_nand_data_op_blks_per_plane,"aw",@nobits 21300 .align 1 21301 .set .LANCHOR232,. + 0 21302 .type c_ftl_nand_data_op_blks_per_plane, %object 21303 .size c_ftl_nand_data_op_blks_per_plane, 2 21304c_ftl_nand_data_op_blks_per_plane: 21305 .zero 2 21306 .section .bss.c_ftl_nand_die_num,"aw",@nobits 21307 .align 1 21308 .set .LANCHOR45,. + 0 21309 .type c_ftl_nand_die_num, %object 21310 .size c_ftl_nand_die_num, 2 21311c_ftl_nand_die_num: 21312 .zero 2 21313 .section .bss.c_ftl_nand_ext_blk_pre_plane,"aw",@nobits 21314 .align 1 21315 .set .LANCHOR49,. + 0 21316 .type c_ftl_nand_ext_blk_pre_plane, %object 21317 .size c_ftl_nand_ext_blk_pre_plane, 2 21318c_ftl_nand_ext_blk_pre_plane: 21319 .zero 2 21320 .section .bss.c_ftl_nand_init_sys_blks_per_plane,"aw",@nobits 21321 .align 2 21322 .set .LANCHOR65,. + 0 21323 .type c_ftl_nand_init_sys_blks_per_plane, %object 21324 .size c_ftl_nand_init_sys_blks_per_plane, 4 21325c_ftl_nand_init_sys_blks_per_plane: 21326 .zero 4 21327 .section .bss.c_ftl_nand_l2pmap_ram_region_num,"aw",@nobits 21328 .align 1 21329 .set .LANCHOR67,. + 0 21330 .type c_ftl_nand_l2pmap_ram_region_num, %object 21331 .size c_ftl_nand_l2pmap_ram_region_num, 2 21332c_ftl_nand_l2pmap_ram_region_num: 21333 .zero 2 21334 .section .bss.c_ftl_nand_map_blks_per_plane,"aw",@nobits 21335 .align 1 21336 .set .LANCHOR63,. + 0 21337 .type c_ftl_nand_map_blks_per_plane, %object 21338 .size c_ftl_nand_map_blks_per_plane, 2 21339c_ftl_nand_map_blks_per_plane: 21340 .zero 2 21341 .section .bss.c_ftl_nand_map_region_num,"aw",@nobits 21342 .align 1 21343 .set .LANCHOR66,. + 0 21344 .type c_ftl_nand_map_region_num, %object 21345 .size c_ftl_nand_map_region_num, 2 21346c_ftl_nand_map_region_num: 21347 .zero 2 21348 .section .bss.c_ftl_nand_max_data_blks,"aw",@nobits 21349 .align 2 21350 .set .LANCHOR42,. + 0 21351 .type c_ftl_nand_max_data_blks, %object 21352 .size c_ftl_nand_max_data_blks, 4 21353c_ftl_nand_max_data_blks: 21354 .zero 4 21355 .section .bss.c_ftl_nand_max_map_blks,"aw",@nobits 21356 .align 2 21357 .set .LANCHOR64,. + 0 21358 .type c_ftl_nand_max_map_blks, %object 21359 .size c_ftl_nand_max_map_blks, 4 21360c_ftl_nand_max_map_blks: 21361 .zero 4 21362 .section .bss.c_ftl_nand_max_sys_blks,"aw",@nobits 21363 .align 2 21364 .set .LANCHOR39,. + 0 21365 .type c_ftl_nand_max_sys_blks, %object 21366 .size c_ftl_nand_max_sys_blks, 4 21367c_ftl_nand_max_sys_blks: 21368 .zero 4 21369 .section .bss.c_ftl_nand_max_vendor_blks,"aw",@nobits 21370 .align 1 21371 .set .LANCHOR61,. + 0 21372 .type c_ftl_nand_max_vendor_blks, %object 21373 .size c_ftl_nand_max_vendor_blks, 2 21374c_ftl_nand_max_vendor_blks: 21375 .zero 2 21376 .section .bss.c_ftl_nand_page_pre_blk,"aw",@nobits 21377 .align 1 21378 .set .LANCHOR52,. + 0 21379 .type c_ftl_nand_page_pre_blk, %object 21380 .size c_ftl_nand_page_pre_blk, 2 21381c_ftl_nand_page_pre_blk: 21382 .zero 2 21383 .section .bss.c_ftl_nand_page_pre_slc_blk,"aw",@nobits 21384 .align 1 21385 .set .LANCHOR53,. + 0 21386 .type c_ftl_nand_page_pre_slc_blk, %object 21387 .size c_ftl_nand_page_pre_slc_blk, 2 21388c_ftl_nand_page_pre_slc_blk: 21389 .zero 2 21390 .section .bss.c_ftl_nand_page_pre_super_blk,"aw",@nobits 21391 .align 1 21392 .set .LANCHOR54,. + 0 21393 .type c_ftl_nand_page_pre_super_blk, %object 21394 .size c_ftl_nand_page_pre_super_blk, 2 21395c_ftl_nand_page_pre_super_blk: 21396 .zero 2 21397 .section .bss.c_ftl_nand_planes_num,"aw",@nobits 21398 .align 1 21399 .set .LANCHOR38,. + 0 21400 .type c_ftl_nand_planes_num, %object 21401 .size c_ftl_nand_planes_num, 2 21402c_ftl_nand_planes_num: 21403 .zero 2 21404 .section .bss.c_ftl_nand_planes_per_die,"aw",@nobits 21405 .align 1 21406 .set .LANCHOR46,. + 0 21407 .type c_ftl_nand_planes_per_die, %object 21408 .size c_ftl_nand_planes_per_die, 2 21409c_ftl_nand_planes_per_die: 21410 .zero 2 21411 .section .bss.c_ftl_nand_reserved_blks,"aw",@nobits 21412 .align 1 21413 .set .LANCHOR59,. + 0 21414 .type c_ftl_nand_reserved_blks, %object 21415 .size c_ftl_nand_reserved_blks, 2 21416c_ftl_nand_reserved_blks: 21417 .zero 2 21418 .section .bss.c_ftl_nand_sec_pre_page,"aw",@nobits 21419 .align 1 21420 .set .LANCHOR55,. + 0 21421 .type c_ftl_nand_sec_pre_page, %object 21422 .size c_ftl_nand_sec_pre_page, 2 21423c_ftl_nand_sec_pre_page: 21424 .zero 2 21425 .section .bss.c_ftl_nand_sec_pre_page_shift,"aw",@nobits 21426 .align 1 21427 .set .LANCHOR56,. + 0 21428 .type c_ftl_nand_sec_pre_page_shift, %object 21429 .size c_ftl_nand_sec_pre_page_shift, 2 21430c_ftl_nand_sec_pre_page_shift: 21431 .zero 2 21432 .section .bss.c_ftl_nand_sys_blks_per_plane,"aw",@nobits 21433 .align 2 21434 .set .LANCHOR37,. + 0 21435 .type c_ftl_nand_sys_blks_per_plane, %object 21436 .size c_ftl_nand_sys_blks_per_plane, 4 21437c_ftl_nand_sys_blks_per_plane: 21438 .zero 4 21439 .section .bss.c_ftl_nand_totle_phy_blks,"aw",@nobits 21440 .align 2 21441 .set .LANCHOR43,. + 0 21442 .type c_ftl_nand_totle_phy_blks, %object 21443 .size c_ftl_nand_totle_phy_blks, 4 21444c_ftl_nand_totle_phy_blks: 21445 .zero 4 21446 .section .bss.c_ftl_nand_type,"aw",@nobits 21447 .align 1 21448 .set .LANCHOR44,. + 0 21449 .type c_ftl_nand_type, %object 21450 .size c_ftl_nand_type, 2 21451c_ftl_nand_type: 21452 .zero 2 21453 .section .bss.c_ftl_nand_vendor_region_num,"aw",@nobits 21454 .align 1 21455 .set .LANCHOR62,. + 0 21456 .type c_ftl_nand_vendor_region_num, %object 21457 .size c_ftl_nand_vendor_region_num, 2 21458c_ftl_nand_vendor_region_num: 21459 .zero 2 21460 .section .bss.c_ftl_vendor_part_size,"aw",@nobits 21461 .align 1 21462 .set .LANCHOR50,. + 0 21463 .type c_ftl_vendor_part_size, %object 21464 .size c_ftl_vendor_part_size, 2 21465c_ftl_vendor_part_size: 21466 .zero 2 21467 .section .bss.c_gc_page_buf_num,"aw",@nobits 21468 .align 2 21469 .set .LANCHOR110,. + 0 21470 .type c_gc_page_buf_num, %object 21471 .size c_gc_page_buf_num, 4 21472c_gc_page_buf_num: 21473 .zero 4 21474 .section .bss.c_mlc_erase_count_value,"aw",@nobits 21475 .align 1 21476 .set .LANCHOR48,. + 0 21477 .type c_mlc_erase_count_value, %object 21478 .size c_mlc_erase_count_value, 2 21479c_mlc_erase_count_value: 21480 .zero 2 21481 .section .bss.c_wr_page_buf_num,"aw",@nobits 21482 .align 2 21483 .set .LANCHOR185,. + 0 21484 .type c_wr_page_buf_num, %object 21485 .size c_wr_page_buf_num, 4 21486c_wr_page_buf_num: 21487 .zero 4 21488 .section .bss.check_valid_page_count_table,"aw",@nobits 21489 .align 3 21490 .type check_valid_page_count_table, %object 21491 .size check_valid_page_count_table, 8192 21492check_valid_page_count_table: 21493 .zero 8192 21494 .section .bss.ftl_gc_temp_power_lost_recovery_flag,"aw",@nobits 21495 .align 2 21496 .set .LANCHOR138,. + 0 21497 .type ftl_gc_temp_power_lost_recovery_flag, %object 21498 .size ftl_gc_temp_power_lost_recovery_flag, 4 21499ftl_gc_temp_power_lost_recovery_flag: 21500 .zero 4 21501 .section .bss.gBbtInfo,"aw",@nobits 21502 .align 3 21503 .set .LANCHOR76,. + 0 21504 .type gBbtInfo, %object 21505 .size gBbtInfo, 96 21506gBbtInfo: 21507 .zero 96 21508 .section .bss.gBlockPageAlignSize,"aw",@nobits 21509 .align 2 21510 .set .LANCHOR4,. + 0 21511 .type gBlockPageAlignSize, %object 21512 .size gBlockPageAlignSize, 4 21513gBlockPageAlignSize: 21514 .zero 4 21515 .section .bss.gBootDdrMode,"aw",@nobits 21516 .align 2 21517 .set .LANCHOR160,. + 0 21518 .type gBootDdrMode, %object 21519 .size gBootDdrMode, 4 21520gBootDdrMode: 21521 .zero 4 21522 .section .bss.gDieOp,"aw",@nobits 21523 .align 2 21524 .set .LANCHOR23,. + 0 21525 .type gDieOp, %object 21526 .size gDieOp, 192 21527gDieOp: 21528 .zero 192 21529 .section .bss.gFlashCurMode,"aw",@nobits 21530 .set .LANCHOR24,. + 0 21531 .type gFlashCurMode, %object 21532 .size gFlashCurMode, 1 21533gFlashCurMode: 21534 .zero 1 21535 .section .bss.gFlashInterfaceMode,"aw",@nobits 21536 .set .LANCHOR25,. + 0 21537 .type gFlashInterfaceMode, %object 21538 .size gFlashInterfaceMode, 1 21539gFlashInterfaceMode: 21540 .zero 1 21541 .section .bss.gFlashOnfiModeEn,"aw",@nobits 21542 .type gFlashOnfiModeEn, %object 21543 .size gFlashOnfiModeEn, 1 21544gFlashOnfiModeEn: 21545 .zero 1 21546 .section .bss.gFlashPageBuffer0,"aw",@nobits 21547 .align 3 21548 .set .LANCHOR154,. + 0 21549 .type gFlashPageBuffer0, %object 21550 .size gFlashPageBuffer0, 8 21551gFlashPageBuffer0: 21552 .zero 8 21553 .section .bss.gFlashPageBuffer1,"aw",@nobits 21554 .align 3 21555 .set .LANCHOR152,. + 0 21556 .type gFlashPageBuffer1, %object 21557 .size gFlashPageBuffer1, 8 21558gFlashPageBuffer1: 21559 .zero 8 21560 .section .bss.gFlashProgCheckBuffer,"aw",@nobits 21561 .align 3 21562 .set .LANCHOR206,. + 0 21563 .type gFlashProgCheckBuffer, %object 21564 .size gFlashProgCheckBuffer, 8 21565gFlashProgCheckBuffer: 21566 .zero 8 21567 .section .bss.gFlashProgCheckSpareBuffer,"aw",@nobits 21568 .align 3 21569 .set .LANCHOR207,. + 0 21570 .type gFlashProgCheckSpareBuffer, %object 21571 .size gFlashProgCheckSpareBuffer, 8 21572gFlashProgCheckSpareBuffer: 21573 .zero 8 21574 .section .bss.gFlashSdrModeEn,"aw",@nobits 21575 .type gFlashSdrModeEn, %object 21576 .size gFlashSdrModeEn, 1 21577gFlashSdrModeEn: 21578 .zero 1 21579 .section .bss.gFlashSlcMode,"aw",@nobits 21580 .set .LANCHOR16,. + 0 21581 .type gFlashSlcMode, %object 21582 .size gFlashSlcMode, 1 21583gFlashSlcMode: 21584 .zero 1 21585 .section .bss.gFlashSpareBuffer,"aw",@nobits 21586 .align 3 21587 .set .LANCHOR205,. + 0 21588 .type gFlashSpareBuffer, %object 21589 .size gFlashSpareBuffer, 8 21590gFlashSpareBuffer: 21591 .zero 8 21592 .section .bss.gFlashToggleModeEn,"aw",@nobits 21593 .set .LANCHOR30,. + 0 21594 .type gFlashToggleModeEn, %object 21595 .size gFlashToggleModeEn, 1 21596gFlashToggleModeEn: 21597 .zero 1 21598 .section .bss.gL2pMapInfo,"aw",@nobits 21599 .align 3 21600 .set .LANCHOR130,. + 0 21601 .type gL2pMapInfo, %object 21602 .size gL2pMapInfo, 64 21603gL2pMapInfo: 21604 .zero 64 21605 .section .bss.gMasterInfo,"aw",@nobits 21606 .align 3 21607 .set .LANCHOR35,. + 0 21608 .type gMasterInfo, %object 21609 .size gMasterInfo, 48 21610gMasterInfo: 21611 .zero 48 21612 .section .bss.gMasterTempBuf,"aw",@nobits 21613 .align 3 21614 .set .LANCHOR161,. + 0 21615 .type gMasterTempBuf, %object 21616 .size gMasterTempBuf, 8 21617gMasterTempBuf: 21618 .zero 8 21619 .section .bss.gMultiPageProgEn,"aw",@nobits 21620 .set .LANCHOR28,. + 0 21621 .type gMultiPageProgEn, %object 21622 .size gMultiPageProgEn, 1 21623gMultiPageProgEn: 21624 .zero 1 21625 .section .bss.gMultiPageReadEn,"aw",@nobits 21626 .set .LANCHOR210,. + 0 21627 .type gMultiPageReadEn, %object 21628 .size gMultiPageReadEn, 1 21629gMultiPageReadEn: 21630 .zero 1 21631 .section .bss.gNandChipMap,"aw",@nobits 21632 .align 3 21633 .set .LANCHOR0,. + 0 21634 .type gNandChipMap, %object 21635 .size gNandChipMap, 64 21636gNandChipMap: 21637 .zero 64 21638 .section .bss.gNandFlashEccBits,"aw",@nobits 21639 .set .LANCHOR33,. + 0 21640 .type gNandFlashEccBits, %object 21641 .size gNandFlashEccBits, 1 21642gNandFlashEccBits: 21643 .zero 1 21644 .section .bss.gNandFlashIDBEccBits,"aw",@nobits 21645 .set .LANCHOR158,. + 0 21646 .type gNandFlashIDBEccBits, %object 21647 .size gNandFlashIDBEccBits, 1 21648gNandFlashIDBEccBits: 21649 .zero 1 21650 .section .bss.gNandFlashIdbBlockAddr,"aw",@nobits 21651 .align 2 21652 .set .LANCHOR156,. + 0 21653 .type gNandFlashIdbBlockAddr, %object 21654 .size gNandFlashIdbBlockAddr, 4 21655gNandFlashIdbBlockAddr: 21656 .zero 4 21657 .section .bss.gNandFlashInfoBlockAddr,"aw",@nobits 21658 .align 2 21659 .set .LANCHOR155,. + 0 21660 .type gNandFlashInfoBlockAddr, %object 21661 .size gNandFlashInfoBlockAddr, 4 21662gNandFlashInfoBlockAddr: 21663 .zero 4 21664 .section .bss.gNandFlashInfoBlockEcc,"aw",@nobits 21665 .type gNandFlashInfoBlockEcc, %object 21666 .size gNandFlashInfoBlockEcc, 1 21667gNandFlashInfoBlockEcc: 21668 .zero 1 21669 .section .bss.gNandFlashResEndPageAddr,"aw",@nobits 21670 .align 2 21671 .type gNandFlashResEndPageAddr, %object 21672 .size gNandFlashResEndPageAddr, 4 21673gNandFlashResEndPageAddr: 21674 .zero 4 21675 .section .bss.gNandIDBResBlkNum,"aw",@nobits 21676 .set .LANCHOR3,. + 0 21677 .type gNandIDBResBlkNum, %object 21678 .size gNandIDBResBlkNum, 1 21679gNandIDBResBlkNum: 21680 .zero 1 21681 .section .bss.gNandIDBResBlkNumSaveInFlash,"aw",@nobits 21682 .set .LANCHOR157,. + 0 21683 .type gNandIDBResBlkNumSaveInFlash, %object 21684 .size gNandIDBResBlkNumSaveInFlash, 1 21685gNandIDBResBlkNumSaveInFlash: 21686 .zero 1 21687 .section .bss.gNandIDataBuf,"aw",@nobits 21688 .align 3 21689 .set .LANCHOR144,. + 0 21690 .type gNandIDataBuf, %object 21691 .size gNandIDataBuf, 2048 21692gNandIDataBuf: 21693 .zero 2048 21694 .section .bss.gNandMaxChip,"aw",@nobits 21695 .set .LANCHOR124,. + 0 21696 .type gNandMaxChip, %object 21697 .size gNandMaxChip, 1 21698gNandMaxChip: 21699 .zero 1 21700 .section .bss.gNandMaxDie,"aw",@nobits 21701 .set .LANCHOR26,. + 0 21702 .type gNandMaxDie, %object 21703 .size gNandMaxDie, 1 21704gNandMaxDie: 21705 .zero 1 21706 .section .bss.gNandOptPara,"aw",@nobits 21707 .align 3 21708 .set .LANCHOR8,. + 0 21709 .type gNandOptPara, %object 21710 .size gNandOptPara, 32 21711gNandOptPara: 21712 .zero 32 21713 .section .bss.gNandPhyInfo,"aw",@nobits 21714 .align 3 21715 .set .LANCHOR15,. + 0 21716 .type gNandPhyInfo, %object 21717 .size gNandPhyInfo, 28 21718gNandPhyInfo: 21719 .zero 28 21720 .section .bss.gNandRandomizer,"aw",@nobits 21721 .set .LANCHOR6,. + 0 21722 .type gNandRandomizer, %object 21723 .size gNandRandomizer, 1 21724gNandRandomizer: 21725 .zero 1 21726 .section .bss.gNandcDumpWriteEn,"aw",@nobits 21727 .align 2 21728 .set .LANCHOR36,. + 0 21729 .type gNandcDumpWriteEn, %object 21730 .size gNandcDumpWriteEn, 4 21731gNandcDumpWriteEn: 21732 .zero 4 21733 .section .bss.gNandcEccBits,"aw",@nobits 21734 .align 2 21735 .set .LANCHOR32,. + 0 21736 .type gNandcEccBits, %object 21737 .size gNandcEccBits, 4 21738gNandcEccBits: 21739 .zero 4 21740 .section .bss.gNandcVer,"aw",@nobits 21741 .align 2 21742 .set .LANCHOR34,. + 0 21743 .type gNandcVer, %object 21744 .size gNandcVer, 4 21745gNandcVer: 21746 .zero 4 21747 .section .bss.gReadRetryInfo,"aw",@nobits 21748 .align 3 21749 .set .LANCHOR20,. + 0 21750 .type gReadRetryInfo, %object 21751 .size gReadRetryInfo, 852 21752gReadRetryInfo: 21753 .zero 852 21754 .section .bss.gSysFreeQueue,"aw",@nobits 21755 .align 3 21756 .set .LANCHOR77,. + 0 21757 .type gSysFreeQueue, %object 21758 .size gSysFreeQueue, 2056 21759gSysFreeQueue: 21760 .zero 2056 21761 .section .bss.gSysInfo,"aw",@nobits 21762 .align 3 21763 .set .LANCHOR218,. + 0 21764 .type gSysInfo, %object 21765 .size gSysInfo, 16 21766gSysInfo: 21767 .zero 16 21768 .section .bss.gToggleModeClkDiv,"aw",@nobits 21769 .align 2 21770 .type gToggleModeClkDiv, %object 21771 .size gToggleModeClkDiv, 4 21772gToggleModeClkDiv: 21773 .zero 4 21774 .section .bss.gTotleBlock,"aw",@nobits 21775 .align 1 21776 .set .LANCHOR125,. + 0 21777 .type gTotleBlock, %object 21778 .size gTotleBlock, 2 21779gTotleBlock: 21780 .zero 2 21781 .section .bss.gVendorBlkInfo,"aw",@nobits 21782 .align 3 21783 .set .LANCHOR224,. + 0 21784 .type gVendorBlkInfo, %object 21785 .size gVendorBlkInfo, 64 21786gVendorBlkInfo: 21787 .zero 64 21788 .section .bss.g_GlobalDataVersion,"aw",@nobits 21789 .align 2 21790 .set .LANCHOR165,. + 0 21791 .type g_GlobalDataVersion, %object 21792 .size g_GlobalDataVersion, 4 21793g_GlobalDataVersion: 21794 .zero 4 21795 .section .bss.g_GlobalSysVersion,"aw",@nobits 21796 .align 2 21797 .set .LANCHOR164,. + 0 21798 .type g_GlobalSysVersion, %object 21799 .size g_GlobalSysVersion, 4 21800g_GlobalSysVersion: 21801 .zero 4 21802 .section .bss.g_LowFormat,"aw",@nobits 21803 .align 2 21804 .set .LANCHOR254,. + 0 21805 .type g_LowFormat, %object 21806 .size g_LowFormat, 4 21807g_LowFormat: 21808 .zero 4 21809 .section .bss.g_MaxLbaSector,"aw",@nobits 21810 .align 2 21811 .set .LANCHOR68,. + 0 21812 .type g_MaxLbaSector, %object 21813 .size g_MaxLbaSector, 4 21814g_MaxLbaSector: 21815 .zero 4 21816 .section .bss.g_MaxLbn,"aw",@nobits 21817 .align 2 21818 .set .LANCHOR231,. + 0 21819 .type g_MaxLbn, %object 21820 .size g_MaxLbn, 4 21821g_MaxLbn: 21822 .zero 4 21823 .section .bss.g_MaxLpn,"aw",@nobits 21824 .align 2 21825 .set .LANCHOR74,. + 0 21826 .type g_MaxLpn, %object 21827 .size g_MaxLpn, 4 21828g_MaxLpn: 21829 .zero 4 21830 .section .bss.g_SlcPartLbaEndSector,"aw",@nobits 21831 .align 2 21832 .set .LANCHOR162,. + 0 21833 .type g_SlcPartLbaEndSector, %object 21834 .size g_SlcPartLbaEndSector, 4 21835g_SlcPartLbaEndSector: 21836 .zero 4 21837 .section .bss.g_VaildLpn,"aw",@nobits 21838 .align 2 21839 .set .LANCHOR102,. + 0 21840 .type g_VaildLpn, %object 21841 .size g_VaildLpn, 4 21842g_VaildLpn: 21843 .zero 4 21844 .section .bss.g_active_superblock,"aw",@nobits 21845 .align 3 21846 .set .LANCHOR93,. + 0 21847 .type g_active_superblock, %object 21848 .size g_active_superblock, 48 21849g_active_superblock: 21850 .zero 48 21851 .section .bss.g_all_blk_used_slc_mode,"aw",@nobits 21852 .align 2 21853 .set .LANCHOR163,. + 0 21854 .type g_all_blk_used_slc_mode, %object 21855 .size g_all_blk_used_slc_mode, 4 21856g_all_blk_used_slc_mode: 21857 .zero 4 21858 .section .bss.g_buffer_superblock,"aw",@nobits 21859 .align 3 21860 .set .LANCHOR94,. + 0 21861 .type g_buffer_superblock, %object 21862 .size g_buffer_superblock, 48 21863g_buffer_superblock: 21864 .zero 48 21865 .section .bss.g_cur_erase_blk,"aw",@nobits 21866 .align 2 21867 .set .LANCHOR75,. + 0 21868 .type g_cur_erase_blk, %object 21869 .size g_cur_erase_blk, 4 21870g_cur_erase_blk: 21871 .zero 4 21872 .section .bss.g_ect_tbl_info_size,"aw",@nobits 21873 .align 1 21874 .set .LANCHOR198,. + 0 21875 .type g_ect_tbl_info_size, %object 21876 .size g_ect_tbl_info_size, 2 21877g_ect_tbl_info_size: 21878 .zero 2 21879 .section .bss.g_ect_tbl_power_up_flush,"aw",@nobits 21880 .align 1 21881 .set .LANCHOR227,. + 0 21882 .type g_ect_tbl_power_up_flush, %object 21883 .size g_ect_tbl_power_up_flush, 2 21884g_ect_tbl_power_up_flush: 21885 .zero 2 21886 .section .bss.g_flash_read_only_en,"aw",@nobits 21887 .align 2 21888 .set .LANCHOR78,. + 0 21889 .type g_flash_read_only_en, %object 21890 .size g_flash_read_only_en, 4 21891g_flash_read_only_en: 21892 .zero 4 21893 .section .bss.g_free_slc_blk_num,"aw",@nobits 21894 .align 1 21895 .set .LANCHOR142,. + 0 21896 .type g_free_slc_blk_num, %object 21897 .size g_free_slc_blk_num, 2 21898g_free_slc_blk_num: 21899 .zero 2 21900 .section .bss.g_ftl_nand_free_count,"aw",@nobits 21901 .align 2 21902 .set .LANCHOR256,. + 0 21903 .type g_ftl_nand_free_count, %object 21904 .size g_ftl_nand_free_count, 4 21905g_ftl_nand_free_count: 21906 .zero 4 21907 .section .bss.g_gc_bad_block_gc_index,"aw",@nobits 21908 .align 1 21909 .set .LANCHOR121,. + 0 21910 .type g_gc_bad_block_gc_index, %object 21911 .size g_gc_bad_block_gc_index, 2 21912g_gc_bad_block_gc_index: 21913 .zero 2 21914 .section .bss.g_gc_bad_block_temp_num,"aw",@nobits 21915 .align 1 21916 .set .LANCHOR119,. + 0 21917 .type g_gc_bad_block_temp_num, %object 21918 .size g_gc_bad_block_temp_num, 2 21919g_gc_bad_block_temp_num: 21920 .zero 2 21921 .section .bss.g_gc_bad_block_temp_tbl,"aw",@nobits 21922 .align 3 21923 .set .LANCHOR120,. + 0 21924 .type g_gc_bad_block_temp_tbl, %object 21925 .size g_gc_bad_block_temp_tbl, 34 21926g_gc_bad_block_temp_tbl: 21927 .zero 34 21928 .section .bss.g_gc_blk_index,"aw",@nobits 21929 .align 1 21930 .set .LANCHOR183,. + 0 21931 .type g_gc_blk_index, %object 21932 .size g_gc_blk_index, 2 21933g_gc_blk_index: 21934 .zero 2 21935 .section .bss.g_gc_blk_num,"aw",@nobits 21936 .align 1 21937 .set .LANCHOR111,. + 0 21938 .type g_gc_blk_num, %object 21939 .size g_gc_blk_num, 2 21940g_gc_blk_num: 21941 .zero 2 21942 .section .bss.g_gc_cur_blk_max_valid_pages,"aw",@nobits 21943 .align 1 21944 .set .LANCHOR250,. + 0 21945 .type g_gc_cur_blk_max_valid_pages, %object 21946 .size g_gc_cur_blk_max_valid_pages, 2 21947g_gc_cur_blk_max_valid_pages: 21948 .zero 2 21949 .section .bss.g_gc_cur_blk_valid_pages,"aw",@nobits 21950 .align 1 21951 .set .LANCHOR249,. + 0 21952 .type g_gc_cur_blk_valid_pages, %object 21953 .size g_gc_cur_blk_valid_pages, 2 21954g_gc_cur_blk_valid_pages: 21955 .zero 2 21956 .section .bss.g_gc_free_blk_threshold,"aw",@nobits 21957 .align 1 21958 .set .LANCHOR181,. + 0 21959 .type g_gc_free_blk_threshold, %object 21960 .size g_gc_free_blk_threshold, 2 21961g_gc_free_blk_threshold: 21962 .zero 2 21963 .section .bss.g_gc_head_data_block,"aw",@nobits 21964 .align 2 21965 .set .LANCHOR178,. + 0 21966 .type g_gc_head_data_block, %object 21967 .size g_gc_head_data_block, 4 21968g_gc_head_data_block: 21969 .zero 4 21970 .section .bss.g_gc_head_data_block_count,"aw",@nobits 21971 .align 2 21972 .set .LANCHOR179,. + 0 21973 .type g_gc_head_data_block_count, %object 21974 .size g_gc_head_data_block_count, 4 21975g_gc_head_data_block_count: 21976 .zero 4 21977 .section .bss.g_gc_merge_free_blk_threshold,"aw",@nobits 21978 .align 1 21979 .set .LANCHOR182,. + 0 21980 .type g_gc_merge_free_blk_threshold, %object 21981 .size g_gc_merge_free_blk_threshold, 2 21982g_gc_merge_free_blk_threshold: 21983 .zero 2 21984 .section .bss.g_gc_next_blk,"aw",@nobits 21985 .align 1 21986 .set .LANCHOR115,. + 0 21987 .type g_gc_next_blk, %object 21988 .size g_gc_next_blk, 2 21989g_gc_next_blk: 21990 .zero 2 21991 .section .bss.g_gc_next_blk_1,"aw",@nobits 21992 .align 1 21993 .set .LANCHOR116,. + 0 21994 .type g_gc_next_blk_1, %object 21995 .size g_gc_next_blk_1, 2 21996g_gc_next_blk_1: 21997 .zero 2 21998 .section .bss.g_gc_next_blk_2,"aw",@nobits 21999 .align 1 22000 .set .LANCHOR117,. + 0 22001 .type g_gc_next_blk_2, %object 22002 .size g_gc_next_blk_2, 2 22003g_gc_next_blk_2: 22004 .zero 2 22005 .section .bss.g_gc_next_blk_3,"aw",@nobits 22006 .align 1 22007 .set .LANCHOR118,. + 0 22008 .type g_gc_next_blk_3, %object 22009 .size g_gc_next_blk_3, 2 22010g_gc_next_blk_3: 22011 .zero 2 22012 .section .bss.g_gc_num_req,"aw",@nobits 22013 .align 2 22014 .set .LANCHOR105,. + 0 22015 .type g_gc_num_req, %object 22016 .size g_gc_num_req, 4 22017g_gc_num_req: 22018 .zero 4 22019 .section .bss.g_gc_page_offset,"aw",@nobits 22020 .align 1 22021 .set .LANCHOR113,. + 0 22022 .type g_gc_page_offset, %object 22023 .size g_gc_page_offset, 2 22024g_gc_page_offset: 22025 .zero 2 22026 .section .bss.g_gc_refresh_block_temp_num,"aw",@nobits 22027 .align 1 22028 .set .LANCHOR184,. + 0 22029 .type g_gc_refresh_block_temp_num, %object 22030 .size g_gc_refresh_block_temp_num, 2 22031g_gc_refresh_block_temp_num: 22032 .zero 2 22033 .section .bss.g_gc_refresh_block_temp_tbl,"aw",@nobits 22034 .align 3 22035 .type g_gc_refresh_block_temp_tbl, %object 22036 .size g_gc_refresh_block_temp_tbl, 34 22037g_gc_refresh_block_temp_tbl: 22038 .zero 34 22039 .section .bss.g_gc_skip_write_count,"aw",@nobits 22040 .align 2 22041 .set .LANCHOR180,. + 0 22042 .type g_gc_skip_write_count, %object 22043 .size g_gc_skip_write_count, 4 22044g_gc_skip_write_count: 22045 .zero 4 22046 .section .bss.g_gc_superblock,"aw",@nobits 22047 .align 3 22048 .set .LANCHOR213,. + 0 22049 .type g_gc_superblock, %object 22050 .size g_gc_superblock, 48 22051g_gc_superblock: 22052 .zero 48 22053 .section .bss.g_gc_temp_superblock,"aw",@nobits 22054 .align 3 22055 .set .LANCHOR95,. + 0 22056 .type g_gc_temp_superblock, %object 22057 .size g_gc_temp_superblock, 48 22058g_gc_temp_superblock: 22059 .zero 48 22060 .section .bss.g_in_gc_progress,"aw",@nobits 22061 .align 2 22062 .set .LANCHOR176,. + 0 22063 .type g_in_gc_progress, %object 22064 .size g_in_gc_progress, 4 22065g_in_gc_progress: 22066 .zero 4 22067 .section .bss.g_in_swl_replace,"aw",@nobits 22068 .align 2 22069 .set .LANCHOR177,. + 0 22070 .type g_in_swl_replace, %object 22071 .size g_in_swl_replace, 4 22072g_in_swl_replace: 22073 .zero 4 22074 .section .bss.g_inkDie_check_enable,"aw",@nobits 22075 .align 2 22076 .set .LANCHOR104,. + 0 22077 .type g_inkDie_check_enable, %object 22078 .size g_inkDie_check_enable, 4 22079g_inkDie_check_enable: 22080 .zero 4 22081 .section .bss.g_l2p_last_update_region_id,"aw",@nobits 22082 .align 1 22083 .set .LANCHOR99,. + 0 22084 .type g_l2p_last_update_region_id, %object 22085 .size g_l2p_last_update_region_id, 2 22086g_l2p_last_update_region_id: 22087 .zero 2 22088 .section .bss.g_maxRegNum,"aw",@nobits 22089 .set .LANCHOR13,. + 0 22090 .type g_maxRegNum, %object 22091 .size g_maxRegNum, 1 22092g_maxRegNum: 22093 .zero 1 22094 .section .bss.g_maxRetryCount,"aw",@nobits 22095 .set .LANCHOR149,. + 0 22096 .type g_maxRetryCount, %object 22097 .size g_maxRetryCount, 1 22098g_maxRetryCount: 22099 .zero 1 22100 .section .bss.g_max_erase_count,"aw",@nobits 22101 .align 2 22102 .set .LANCHOR174,. + 0 22103 .type g_max_erase_count, %object 22104 .size g_max_erase_count, 4 22105g_max_erase_count: 22106 .zero 4 22107 .section .bss.g_min_erase_count,"aw",@nobits 22108 .align 2 22109 .set .LANCHOR175,. + 0 22110 .type g_min_erase_count, %object 22111 .size g_min_erase_count, 4 22112g_min_erase_count: 22113 .zero 4 22114 .section .bss.g_nand_ecc_en,"aw",@nobits 22115 .set .LANCHOR208,. + 0 22116 .type g_nand_ecc_en, %object 22117 .size g_nand_ecc_en, 1 22118g_nand_ecc_en: 22119 .zero 1 22120 .section .bss.g_nandc_version_data,"aw",@nobits 22121 .align 2 22122 .set .LANCHOR122,. + 0 22123 .type g_nandc_version_data, %object 22124 .size g_nandc_version_data, 4 22125g_nandc_version_data: 22126 .zero 4 22127 .section .bss.g_num_data_superblocks,"aw",@nobits 22128 .align 1 22129 .set .LANCHOR87,. + 0 22130 .type g_num_data_superblocks, %object 22131 .size g_num_data_superblocks, 2 22132g_num_data_superblocks: 22133 .zero 2 22134 .section .bss.g_num_free_superblocks,"aw",@nobits 22135 .align 1 22136 .set .LANCHOR90,. + 0 22137 .type g_num_free_superblocks, %object 22138 .size g_num_free_superblocks, 2 22139g_num_free_superblocks: 22140 .zero 2 22141 .section .bss.g_page_map_check_enable,"aw",@nobits 22142 .align 1 22143 .set .LANCHOR69,. + 0 22144 .type g_page_map_check_enable, %object 22145 .size g_page_map_check_enable, 2 22146g_page_map_check_enable: 22147 .zero 2 22148 .section .bss.g_power_lost_ecc_error_blk,"aw",@nobits 22149 .align 1 22150 .set .LANCHOR241,. + 0 22151 .type g_power_lost_ecc_error_blk, %object 22152 .size g_power_lost_ecc_error_blk, 2 22153g_power_lost_ecc_error_blk: 22154 .zero 2 22155 .section .bss.g_power_lost_recovery_flag,"aw",@nobits 22156 .align 1 22157 .set .LANCHOR242,. + 0 22158 .type g_power_lost_recovery_flag, %object 22159 .size g_power_lost_recovery_flag, 2 22160g_power_lost_recovery_flag: 22161 .zero 2 22162 .section .bss.g_recovery_page_min_ver,"aw",@nobits 22163 .align 2 22164 .set .LANCHOR139,. + 0 22165 .type g_recovery_page_min_ver, %object 22166 .size g_recovery_page_min_ver, 4 22167g_recovery_page_min_ver: 22168 .zero 4 22169 .section .bss.g_recovery_page_num,"aw",@nobits 22170 .align 2 22171 .set .LANCHOR243,. + 0 22172 .type g_recovery_page_num, %object 22173 .size g_recovery_page_num, 4 22174g_recovery_page_num: 22175 .zero 4 22176 .section .bss.g_recovery_ppa_tbl,"aw",@nobits 22177 .align 3 22178 .set .LANCHOR244,. + 0 22179 .type g_recovery_ppa_tbl, %object 22180 .size g_recovery_ppa_tbl, 128 22181g_recovery_ppa_tbl: 22182 .zero 128 22183 .section .bss.g_req_cache,"aw",@nobits 22184 .align 3 22185 .set .LANCHOR135,. + 0 22186 .type g_req_cache, %object 22187 .size g_req_cache, 8 22188g_req_cache: 22189 .zero 8 22190 .section .bss.g_retryMode,"aw",@nobits 22191 .set .LANCHOR11,. + 0 22192 .type g_retryMode, %object 22193 .size g_retryMode, 1 22194g_retryMode: 22195 .zero 1 22196 .section .bss.g_slc2KBNand,"aw",@nobits 22197 .set .LANCHOR2,. + 0 22198 .type g_slc2KBNand, %object 22199 .size g_slc2KBNand, 1 22200g_slc2KBNand: 22201 .zero 1 22202 .section .bss.g_sys_ext_data,"aw",@nobits 22203 .align 3 22204 .set .LANCHOR141,. + 0 22205 .type g_sys_ext_data, %object 22206 .size g_sys_ext_data, 512 22207g_sys_ext_data: 22208 .zero 512 22209 .section .bss.g_sys_save_data,"aw",@nobits 22210 .align 3 22211 .set .LANCHOR82,. + 0 22212 .type g_sys_save_data, %object 22213 .size g_sys_save_data, 48 22214g_sys_save_data: 22215 .zero 48 22216 .section .bss.g_tmp_data_superblock_id,"aw",@nobits 22217 .align 1 22218 .set .LANCHOR136,. + 0 22219 .type g_tmp_data_superblock_id, %object 22220 .size g_tmp_data_superblock_id, 2 22221g_tmp_data_superblock_id: 22222 .zero 2 22223 .section .bss.g_totle_avg_erase_count,"aw",@nobits 22224 .align 2 22225 .set .LANCHOR214,. + 0 22226 .type g_totle_avg_erase_count, %object 22227 .size g_totle_avg_erase_count, 4 22228g_totle_avg_erase_count: 22229 .zero 4 22230 .section .bss.g_totle_cache_write_count,"aw",@nobits 22231 .align 2 22232 .set .LANCHOR169,. + 0 22233 .type g_totle_cache_write_count, %object 22234 .size g_totle_cache_write_count, 4 22235g_totle_cache_write_count: 22236 .zero 4 22237 .section .bss.g_totle_discard_page_count,"aw",@nobits 22238 .align 2 22239 .set .LANCHOR168,. + 0 22240 .type g_totle_discard_page_count, %object 22241 .size g_totle_discard_page_count, 4 22242g_totle_discard_page_count: 22243 .zero 4 22244 .section .bss.g_totle_gc_page_count,"aw",@nobits 22245 .align 2 22246 .set .LANCHOR166,. + 0 22247 .type g_totle_gc_page_count, %object 22248 .size g_totle_gc_page_count, 4 22249g_totle_gc_page_count: 22250 .zero 4 22251 .section .bss.g_totle_l2p_write_count,"aw",@nobits 22252 .align 2 22253 .set .LANCHOR170,. + 0 22254 .type g_totle_l2p_write_count, %object 22255 .size g_totle_l2p_write_count, 4 22256g_totle_l2p_write_count: 22257 .zero 4 22258 .section .bss.g_totle_map_block,"aw",@nobits 22259 .align 1 22260 .set .LANCHOR131,. + 0 22261 .type g_totle_map_block, %object 22262 .size g_totle_map_block, 2 22263g_totle_map_block: 22264 .zero 2 22265 .section .bss.g_totle_mlc_erase_count,"aw",@nobits 22266 .align 2 22267 .set .LANCHOR172,. + 0 22268 .type g_totle_mlc_erase_count, %object 22269 .size g_totle_mlc_erase_count, 4 22270g_totle_mlc_erase_count: 22271 .zero 4 22272 .section .bss.g_totle_read_page_count,"aw",@nobits 22273 .align 2 22274 .set .LANCHOR171,. + 0 22275 .type g_totle_read_page_count, %object 22276 .size g_totle_read_page_count, 4 22277g_totle_read_page_count: 22278 .zero 4 22279 .section .bss.g_totle_read_sector,"aw",@nobits 22280 .align 2 22281 .set .LANCHOR226,. + 0 22282 .type g_totle_read_sector, %object 22283 .size g_totle_read_sector, 4 22284g_totle_read_sector: 22285 .zero 4 22286 .section .bss.g_totle_slc_erase_count,"aw",@nobits 22287 .align 2 22288 .set .LANCHOR173,. + 0 22289 .type g_totle_slc_erase_count, %object 22290 .size g_totle_slc_erase_count, 4 22291g_totle_slc_erase_count: 22292 .zero 4 22293 .section .bss.g_totle_swl_count,"aw",@nobits 22294 .align 2 22295 .set .LANCHOR137,. + 0 22296 .type g_totle_swl_count, %object 22297 .size g_totle_swl_count, 4 22298g_totle_swl_count: 22299 .zero 4 22300 .section .bss.g_totle_sys_slc_erase_count,"aw",@nobits 22301 .align 2 22302 .set .LANCHOR81,. + 0 22303 .type g_totle_sys_slc_erase_count, %object 22304 .size g_totle_sys_slc_erase_count, 4 22305g_totle_sys_slc_erase_count: 22306 .zero 4 22307 .section .bss.g_totle_vendor_block,"aw",@nobits 22308 .align 1 22309 .set .LANCHOR70,. + 0 22310 .type g_totle_vendor_block, %object 22311 .size g_totle_vendor_block, 2 22312g_totle_vendor_block: 22313 .zero 2 22314 .section .bss.g_totle_write_page_count,"aw",@nobits 22315 .align 2 22316 .set .LANCHOR167,. + 0 22317 .type g_totle_write_page_count, %object 22318 .size g_totle_write_page_count, 4 22319g_totle_write_page_count: 22320 .zero 4 22321 .section .bss.g_totle_write_sector,"aw",@nobits 22322 .align 2 22323 .set .LANCHOR225,. + 0 22324 .type g_totle_write_sector, %object 22325 .size g_totle_write_sector, 4 22326g_totle_write_sector: 22327 .zero 4 22328 .section .bss.g_wr_page_num,"aw",@nobits 22329 .align 2 22330 .set .LANCHOR72,. + 0 22331 .type g_wr_page_num, %object 22332 .size g_wr_page_num, 4 22333g_wr_page_num: 22334 .zero 4 22335 .section .bss.gc_discard_updated,"aw",@nobits 22336 .align 2 22337 .set .LANCHOR253,. + 0 22338 .type gc_discard_updated, %object 22339 .size gc_discard_updated, 4 22340gc_discard_updated: 22341 .zero 4 22342 .section .bss.gc_ink_free_return_value,"aw",@nobits 22343 .align 1 22344 .set .LANCHOR248,. + 0 22345 .type gc_ink_free_return_value, %object 22346 .size gc_ink_free_return_value, 2 22347gc_ink_free_return_value: 22348 .zero 2 22349 .section .bss.gpFlashSaveInfo,"aw",@nobits 22350 .align 3 22351 .set .LANCHOR153,. + 0 22352 .type gpFlashSaveInfo, %object 22353 .size gpFlashSaveInfo, 8 22354gpFlashSaveInfo: 22355 .zero 8 22356 .section .bss.gpNandParaInfo,"aw",@nobits 22357 .align 3 22358 .set .LANCHOR7,. + 0 22359 .type gpNandParaInfo, %object 22360 .size gpNandParaInfo, 8 22361gpNandParaInfo: 22362 .zero 8 22363 .section .bss.gpNandc,"aw",@nobits 22364 .align 3 22365 .set .LANCHOR19,. + 0 22366 .type gpNandc, %object 22367 .size gpNandc, 8 22368gpNandc: 22369 .zero 8 22370 .section .bss.gpNandc1,"aw",@nobits 22371 .align 3 22372 .type gpNandc1, %object 22373 .size gpNandc1, 8 22374gpNandc1: 22375 .zero 8 22376 .section .bss.gpReadRetrial,"aw",@nobits 22377 .align 3 22378 .set .LANCHOR148,. + 0 22379 .type gpReadRetrial, %object 22380 .size gpReadRetrial, 8 22381gpReadRetrial: 22382 .zero 8 22383 .section .bss.gp_ect_tbl_info,"aw",@nobits 22384 .align 3 22385 .set .LANCHOR199,. + 0 22386 .type gp_ect_tbl_info, %object 22387 .size gp_ect_tbl_info, 8 22388gp_ect_tbl_info: 22389 .zero 8 22390 .section .bss.gp_flash_check_buf,"aw",@nobits 22391 .align 3 22392 .type gp_flash_check_buf, %object 22393 .size gp_flash_check_buf, 262144 22394gp_flash_check_buf: 22395 .zero 262144 22396 .section .bss.gp_gc_page_buf_info,"aw",@nobits 22397 .align 3 22398 .set .LANCHOR106,. + 0 22399 .type gp_gc_page_buf_info, %object 22400 .size gp_gc_page_buf_info, 8 22401gp_gc_page_buf_info: 22402 .zero 8 22403 .section .bss.gp_last_act_superblock,"aw",@nobits 22404 .align 3 22405 .set .LANCHOR252,. + 0 22406 .type gp_last_act_superblock, %object 22407 .size gp_last_act_superblock, 8 22408gp_last_act_superblock: 22409 .zero 8 22410 .section .bss.idb_buf,"aw",@nobits 22411 .align 3 22412 .type idb_buf, %object 22413 .size idb_buf, 262144 22414idb_buf: 22415 .zero 262144 22416 .section .bss.idb_flash_slc_mode,"aw",@nobits 22417 .align 2 22418 .set .LANCHOR29,. + 0 22419 .type idb_flash_slc_mode, %object 22420 .size idb_flash_slc_mode, 4 22421idb_flash_slc_mode: 22422 .zero 4 22423 .section .bss.idb_need_write_back,"aw",@nobits 22424 .align 2 22425 .set .LANCHOR159,. + 0 22426 .type idb_need_write_back, %object 22427 .size idb_need_write_back, 4 22428idb_need_write_back: 22429 .zero 4 22430 .section .bss.last_cache_match_count,"aw",@nobits 22431 .align 2 22432 .set .LANCHOR257,. + 0 22433 .type last_cache_match_count, %object 22434 .size last_cache_match_count, 4 22435last_cache_match_count: 22436 .zero 4 22437 .section .bss.mlcPageToSlcPageTbl,"aw",@nobits 22438 .align 2 22439 .set .LANCHOR123,. + 0 22440 .type mlcPageToSlcPageTbl, %object 22441 .size mlcPageToSlcPageTbl, 2048 22442mlcPageToSlcPageTbl: 22443 .zero 2048 22444 .section .bss.p_blk_mode_table,"aw",@nobits 22445 .align 3 22446 .set .LANCHOR1,. + 0 22447 .type p_blk_mode_table, %object 22448 .size p_blk_mode_table, 8 22449p_blk_mode_table: 22450 .zero 8 22451 .section .bss.p_data_block_list_head,"aw",@nobits 22452 .align 3 22453 .set .LANCHOR84,. + 0 22454 .type p_data_block_list_head, %object 22455 .size p_data_block_list_head, 8 22456p_data_block_list_head: 22457 .zero 8 22458 .section .bss.p_data_block_list_table,"aw",@nobits 22459 .align 3 22460 .set .LANCHOR83,. + 0 22461 .type p_data_block_list_table, %object 22462 .size p_data_block_list_table, 8 22463p_data_block_list_table: 22464 .zero 8 22465 .section .bss.p_data_block_list_tail,"aw",@nobits 22466 .align 3 22467 .set .LANCHOR86,. + 0 22468 .type p_data_block_list_tail, %object 22469 .size p_data_block_list_tail, 8 22470p_data_block_list_tail: 22471 .zero 8 22472 .section .bss.p_erase_count_table,"aw",@nobits 22473 .align 3 22474 .set .LANCHOR80,. + 0 22475 .type p_erase_count_table, %object 22476 .size p_erase_count_table, 8 22477p_erase_count_table: 22478 .zero 8 22479 .section .bss.p_free_data_block_list_head,"aw",@nobits 22480 .align 3 22481 .set .LANCHOR89,. + 0 22482 .type p_free_data_block_list_head, %object 22483 .size p_free_data_block_list_head, 8 22484p_free_data_block_list_head: 22485 .zero 8 22486 .section .bss.p_gc_blk_tbl,"aw",@nobits 22487 .align 3 22488 .set .LANCHOR112,. + 0 22489 .type p_gc_blk_tbl, %object 22490 .size p_gc_blk_tbl, 8 22491p_gc_blk_tbl: 22492 .zero 8 22493 .section .bss.p_gc_data_buf,"aw",@nobits 22494 .align 3 22495 .set .LANCHOR107,. + 0 22496 .type p_gc_data_buf, %object 22497 .size p_gc_data_buf, 8 22498p_gc_data_buf: 22499 .zero 8 22500 .section .bss.p_gc_page_info,"aw",@nobits 22501 .align 3 22502 .set .LANCHOR114,. + 0 22503 .type p_gc_page_info, %object 22504 .size p_gc_page_info, 8 22505p_gc_page_info: 22506 .zero 8 22507 .section .bss.p_gc_spare_buf,"aw",@nobits 22508 .align 3 22509 .set .LANCHOR108,. + 0 22510 .type p_gc_spare_buf, %object 22511 .size p_gc_spare_buf, 8 22512p_gc_spare_buf: 22513 .zero 8 22514 .section .bss.p_io_data_buf_0,"aw",@nobits 22515 .align 3 22516 .set .LANCHOR193,. + 0 22517 .type p_io_data_buf_0, %object 22518 .size p_io_data_buf_0, 8 22519p_io_data_buf_0: 22520 .zero 8 22521 .section .bss.p_io_data_buf_1,"aw",@nobits 22522 .align 3 22523 .set .LANCHOR194,. + 0 22524 .type p_io_data_buf_1, %object 22525 .size p_io_data_buf_1, 8 22526p_io_data_buf_1: 22527 .zero 8 22528 .section .bss.p_io_spare_buf,"aw",@nobits 22529 .align 3 22530 .set .LANCHOR196,. + 0 22531 .type p_io_spare_buf, %object 22532 .size p_io_spare_buf, 8 22533p_io_spare_buf: 22534 .zero 8 22535 .section .bss.p_l2p_map_buf,"aw",@nobits 22536 .align 3 22537 .set .LANCHOR129,. + 0 22538 .type p_l2p_map_buf, %object 22539 .size p_l2p_map_buf, 8 22540p_l2p_map_buf: 22541 .zero 8 22542 .section .bss.p_l2p_ram_map,"aw",@nobits 22543 .align 3 22544 .set .LANCHOR98,. + 0 22545 .type p_l2p_ram_map, %object 22546 .size p_l2p_ram_map, 8 22547p_l2p_ram_map: 22548 .zero 8 22549 .section .bss.p_map_block_table,"aw",@nobits 22550 .align 3 22551 .set .LANCHOR132,. + 0 22552 .type p_map_block_table, %object 22553 .size p_map_block_table, 8 22554p_map_block_table: 22555 .zero 8 22556 .section .bss.p_map_block_valid_page_count,"aw",@nobits 22557 .align 3 22558 .set .LANCHOR128,. + 0 22559 .type p_map_block_valid_page_count, %object 22560 .size p_map_block_valid_page_count, 8 22561p_map_block_valid_page_count: 22562 .zero 8 22563 .section .bss.p_map_block_ver_table,"aw",@nobits 22564 .align 3 22565 .set .LANCHOR133,. + 0 22566 .type p_map_block_ver_table, %object 22567 .size p_map_block_ver_table, 8 22568p_map_block_ver_table: 22569 .zero 8 22570 .section .bss.p_map_region_ppn_check_table,"aw",@nobits 22571 .align 3 22572 .set .LANCHOR203,. + 0 22573 .type p_map_region_ppn_check_table, %object 22574 .size p_map_region_ppn_check_table, 8 22575p_map_region_ppn_check_table: 22576 .zero 8 22577 .section .bss.p_map_region_ppn_table,"aw",@nobits 22578 .align 3 22579 .set .LANCHOR134,. + 0 22580 .type p_map_region_ppn_table, %object 22581 .size p_map_region_ppn_table, 8 22582p_map_region_ppn_table: 22583 .zero 8 22584 .section .bss.p_plane_order_table,"aw",@nobits 22585 .align 3 22586 .set .LANCHOR47,. + 0 22587 .type p_plane_order_table, %object 22588 .size p_plane_order_table, 32 22589p_plane_order_table: 22590 .zero 32 22591 .section .bss.p_swl_mul_table,"aw",@nobits 22592 .align 3 22593 .set .LANCHOR140,. + 0 22594 .type p_swl_mul_table, %object 22595 .size p_swl_mul_table, 8 22596p_swl_mul_table: 22597 .zero 8 22598 .section .bss.p_sys_data_buf,"aw",@nobits 22599 .align 3 22600 .set .LANCHOR189,. + 0 22601 .type p_sys_data_buf, %object 22602 .size p_sys_data_buf, 8 22603p_sys_data_buf: 22604 .zero 8 22605 .section .bss.p_sys_data_buf_1,"aw",@nobits 22606 .align 3 22607 .set .LANCHOR190,. + 0 22608 .type p_sys_data_buf_1, %object 22609 .size p_sys_data_buf_1, 8 22610p_sys_data_buf_1: 22611 .zero 8 22612 .section .bss.p_sys_spare_buf,"aw",@nobits 22613 .align 3 22614 .set .LANCHOR195,. + 0 22615 .type p_sys_spare_buf, %object 22616 .size p_sys_spare_buf, 8 22617p_sys_spare_buf: 22618 .zero 8 22619 .section .bss.p_valid_page_count_table,"aw",@nobits 22620 .align 3 22621 .set .LANCHOR85,. + 0 22622 .type p_valid_page_count_table, %object 22623 .size p_valid_page_count_table, 8 22624p_valid_page_count_table: 22625 .zero 8 22626 .section .bss.p_vendor_block_table,"aw",@nobits 22627 .align 3 22628 .set .LANCHOR71,. + 0 22629 .type p_vendor_block_table, %object 22630 .size p_vendor_block_table, 8 22631p_vendor_block_table: 22632 .zero 8 22633 .section .bss.p_vendor_block_valid_page_count,"aw",@nobits 22634 .align 3 22635 .set .LANCHOR200,. + 0 22636 .type p_vendor_block_valid_page_count, %object 22637 .size p_vendor_block_valid_page_count, 8 22638p_vendor_block_valid_page_count: 22639 .zero 8 22640 .section .bss.p_vendor_block_ver_table,"aw",@nobits 22641 .align 3 22642 .set .LANCHOR201,. + 0 22643 .type p_vendor_block_ver_table, %object 22644 .size p_vendor_block_ver_table, 8 22645p_vendor_block_ver_table: 22646 .zero 8 22647 .section .bss.p_vendor_data_buf,"aw",@nobits 22648 .align 3 22649 .set .LANCHOR191,. + 0 22650 .type p_vendor_data_buf, %object 22651 .size p_vendor_data_buf, 8 22652p_vendor_data_buf: 22653 .zero 8 22654 .section .bss.p_vendor_region_ppn_table,"aw",@nobits 22655 .align 3 22656 .set .LANCHOR202,. + 0 22657 .type p_vendor_region_ppn_table, %object 22658 .size p_vendor_region_ppn_table, 8 22659p_vendor_region_ppn_table: 22660 .zero 8 22661 .section .bss.p_wr_io_data_buf,"aw",@nobits 22662 .align 3 22663 .set .LANCHOR192,. + 0 22664 .type p_wr_io_data_buf, %object 22665 .size p_wr_io_data_buf, 8 22666p_wr_io_data_buf: 22667 .zero 8 22668 .section .bss.p_wr_io_spare_buf,"aw",@nobits 22669 .align 3 22670 .set .LANCHOR197,. + 0 22671 .type p_wr_io_spare_buf, %object 22672 .size p_wr_io_spare_buf, 8 22673p_wr_io_spare_buf: 22674 .zero 8 22675 .section .bss.read_retry_cur_offset,"aw",@nobits 22676 .align 3 22677 .set .LANCHOR21,. + 0 22678 .type read_retry_cur_offset, %object 22679 .size read_retry_cur_offset, 4 22680read_retry_cur_offset: 22681 .zero 4 22682 .section .bss.req_erase,"aw",@nobits 22683 .align 3 22684 .set .LANCHOR79,. + 0 22685 .type req_erase, %object 22686 .size req_erase, 8 22687req_erase: 22688 .zero 8 22689 .section .bss.req_gc,"aw",@nobits 22690 .align 3 22691 .set .LANCHOR109,. + 0 22692 .type req_gc, %object 22693 .size req_gc, 8 22694req_gc: 22695 .zero 8 22696 .section .bss.req_gc_dst,"aw",@nobits 22697 .align 3 22698 .set .LANCHOR187,. + 0 22699 .type req_gc_dst, %object 22700 .size req_gc_dst, 8 22701req_gc_dst: 22702 .zero 8 22703 .section .bss.req_prgm,"aw",@nobits 22704 .align 3 22705 .set .LANCHOR188,. + 0 22706 .type req_prgm, %object 22707 .size req_prgm, 8 22708req_prgm: 22709 .zero 8 22710 .section .bss.req_read,"aw",@nobits 22711 .align 3 22712 .set .LANCHOR186,. + 0 22713 .type req_read, %object 22714 .size req_read, 8 22715req_read: 22716 .zero 8 22717 .section .bss.req_sys,"aw",@nobits 22718 .align 3 22719 .set .LANCHOR211,. + 0 22720 .type req_sys, %object 22721 .size req_sys, 56 22722req_sys: 22723 .zero 56 22724 .section .bss.req_wr_io,"aw",@nobits 22725 .align 3 22726 .set .LANCHOR73,. + 0 22727 .type req_wr_io, %object 22728 .size req_wr_io, 8 22729req_wr_io: 22730 .zero 8 22731 .section .bss.slcPageToMlcPageTbl,"aw",@nobits 22732 .align 2 22733 .set .LANCHOR17,. + 0 22734 .type slcPageToMlcPageTbl, %object 22735 .size slcPageToMlcPageTbl, 1024 22736slcPageToMlcPageTbl: 22737 .zero 1024 22738 .section .data.FtlMallocOffset,"aw",@progbits 22739 .align 2 22740 .type FtlMallocOffset, %object 22741 .size FtlMallocOffset, 4 22742FtlMallocOffset: 22743 .word 64 22744 .section .data.LastWritenPbaAddr,"aw",@progbits 22745 .align 2 22746 .type LastWritenPbaAddr, %object 22747 .size LastWritenPbaAddr, 4 22748LastWritenPbaAddr: 22749 .word -1 22750 .section .data.NandFlashParaTbl,"aw",@progbits 22751 .align 3 22752 .set .LANCHOR145,. + 0 22753 .type NandFlashParaTbl, %object 22754 .size NandFlashParaTbl, 2752 22755NandFlashParaTbl: 22756 .byte 6 22757 .byte 44 22758 .byte 100 22759 .byte 68 22760 .byte 75 22761 .byte -87 22762 .byte 0 22763 .byte 4 22764 .byte 1 22765 .byte 16 22766 .hword 256 22767 .byte 2 22768 .byte 2 22769 .hword 2048 22770 .hword 479 22771 .byte 3 22772 .byte 17 22773 .byte 40 22774 .byte 32 22775 .byte 1 22776 .byte 0 22777 .byte 1 22778 .byte 0 22779 .byte 0 22780 .byte 0 22781 .zero 4 22782 .byte 6 22783 .byte 44 22784 .byte 68 22785 .byte 68 22786 .byte 75 22787 .byte -87 22788 .byte 0 22789 .byte 4 22790 .byte 1 22791 .byte 16 22792 .hword 256 22793 .byte 2 22794 .byte 2 22795 .hword 1064 22796 .hword 479 22797 .byte 3 22798 .byte 17 22799 .byte 40 22800 .byte 32 22801 .byte 1 22802 .byte 0 22803 .byte 1 22804 .byte 0 22805 .byte 0 22806 .byte 0 22807 .zero 4 22808 .byte 6 22809 .byte 44 22810 .byte 104 22811 .byte 4 22812 .byte 74 22813 .byte -87 22814 .byte 0 22815 .byte 4 22816 .byte 1 22817 .byte 8 22818 .hword 256 22819 .byte 2 22820 .byte 2 22821 .hword 2048 22822 .hword 287 22823 .byte 1 22824 .byte 0 22825 .byte 24 22826 .byte 32 22827 .byte 1 22828 .byte 0 22829 .byte 1 22830 .byte 0 22831 .byte 0 22832 .byte 0 22833 .zero 4 22834 .byte 5 22835 .byte 44 22836 .byte -120 22837 .byte 4 22838 .byte 75 22839 .byte -87 22840 .byte 0 22841 .byte 4 22842 .byte 1 22843 .byte 16 22844 .hword 256 22845 .byte 2 22846 .byte 2 22847 .hword 2048 22848 .hword 287 22849 .byte 1 22850 .byte 0 22851 .byte 24 22852 .byte 32 22853 .byte 1 22854 .byte 0 22855 .byte 1 22856 .byte 0 22857 .byte 0 22858 .byte 0 22859 .zero 4 22860 .byte 6 22861 .byte 44 22862 .byte -88 22863 .byte 5 22864 .byte -53 22865 .byte -87 22866 .byte 0 22867 .byte 4 22868 .byte 2 22869 .byte 16 22870 .hword 256 22871 .byte 2 22872 .byte 2 22873 .hword 2048 22874 .hword 287 22875 .byte 1 22876 .byte 0 22877 .byte 24 22878 .byte 32 22879 .byte 1 22880 .byte 0 22881 .byte 1 22882 .byte 0 22883 .byte 0 22884 .byte 0 22885 .zero 4 22886 .byte 6 22887 .byte 44 22888 .byte 104 22889 .byte 4 22890 .byte 70 22891 .byte -119 22892 .byte 0 22893 .byte 4 22894 .byte 1 22895 .byte 8 22896 .hword 256 22897 .byte 2 22898 .byte 2 22899 .hword 2048 22900 .hword 287 22901 .byte 1 22902 .byte 0 22903 .byte 24 22904 .byte 32 22905 .byte 1 22906 .byte 0 22907 .byte 1 22908 .byte 0 22909 .byte 0 22910 .byte 0 22911 .zero 4 22912 .byte 6 22913 .byte 44 22914 .byte 72 22915 .byte 4 22916 .byte 74 22917 .byte -91 22918 .byte 0 22919 .byte 4 22920 .byte 1 22921 .byte 8 22922 .hword 256 22923 .byte 2 22924 .byte 2 22925 .hword 1024 22926 .hword 287 22927 .byte 1 22928 .byte 0 22929 .byte 24 22930 .byte 32 22931 .byte 1 22932 .byte 0 22933 .byte 1 22934 .byte 0 22935 .byte 0 22936 .byte 0 22937 .zero 4 22938 .byte 6 22939 .byte 44 22940 .byte -124 22941 .byte 100 22942 .byte 60 22943 .byte -91 22944 .byte 0 22945 .byte 4 22946 .byte 1 22947 .byte 32 22948 .hword 512 22949 .byte 2 22950 .byte 2 22951 .hword 1024 22952 .hword 479 22953 .byte 3 22954 .byte 17 22955 .byte 40 22956 .byte 32 22957 .byte 1 22958 .byte 0 22959 .byte 1 22960 .byte 0 22961 .byte 0 22962 .byte 0 22963 .zero 4 22964 .byte 5 22965 .byte 44 22966 .byte -124 22967 .byte 100 22968 .byte 84 22969 .byte -87 22970 .byte 0 22971 .byte 4 22972 .byte 1 22973 .byte 32 22974 .hword 512 22975 .byte 2 22976 .byte 2 22977 .hword 1024 22978 .hword 479 22979 .byte 4 22980 .byte 18 22981 .byte 60 22982 .byte 32 22983 .byte 1 22984 .byte 0 22985 .byte 1 22986 .byte 0 22987 .byte 0 22988 .byte 0 22989 .zero 4 22990 .byte 6 22991 .byte 44 22992 .byte -41 22993 .byte -108 22994 .byte 62 22995 .byte -124 22996 .byte 0 22997 .byte 4 22998 .byte 1 22999 .byte 8 23000 .hword 128 23001 .byte 2 23002 .byte 2 23003 .hword 4096 23004 .hword 279 23005 .byte 1 23006 .byte 0 23007 .byte 24 23008 .byte 32 23009 .byte 1 23010 .byte 0 23011 .byte 1 23012 .byte 0 23013 .byte 0 23014 .byte 0 23015 .zero 4 23016 .byte 6 23017 .byte 44 23018 .byte 72 23019 .byte 4 23020 .byte 70 23021 .byte -123 23022 .byte 0 23023 .byte 4 23024 .byte 1 23025 .byte 8 23026 .hword 256 23027 .byte 2 23028 .byte 2 23029 .hword 1024 23030 .hword 287 23031 .byte 1 23032 .byte 0 23033 .byte 24 23034 .byte 32 23035 .byte 1 23036 .byte 0 23037 .byte 1 23038 .byte 0 23039 .byte 0 23040 .byte 0 23041 .zero 4 23042 .byte 6 23043 .byte 44 23044 .byte -120 23045 .byte 5 23046 .byte -58 23047 .byte -119 23048 .byte 0 23049 .byte 4 23050 .byte 2 23051 .byte 8 23052 .hword 256 23053 .byte 2 23054 .byte 2 23055 .hword 2048 23056 .hword 287 23057 .byte 1 23058 .byte 0 23059 .byte 24 23060 .byte 32 23061 .byte 1 23062 .byte 0 23063 .byte 1 23064 .byte 0 23065 .byte 0 23066 .byte 0 23067 .zero 4 23068 .byte 5 23069 .byte 44 23070 .byte -120 23071 .byte 36 23072 .byte 75 23073 .byte -87 23074 .byte 0 23075 .byte 4 23076 .byte 1 23077 .byte 16 23078 .hword 256 23079 .byte 2 23080 .byte 2 23081 .hword 2048 23082 .hword 287 23083 .byte 1 23084 .byte 0 23085 .byte 24 23086 .byte 32 23087 .byte 1 23088 .byte 0 23089 .byte 1 23090 .byte 0 23091 .byte 0 23092 .byte 0 23093 .zero 4 23094 .byte 6 23095 .byte 44 23096 .byte 104 23097 .byte 0 23098 .byte 39 23099 .byte -87 23100 .byte 0 23101 .byte 4 23102 .byte 1 23103 .byte 16 23104 .hword 128 23105 .byte 1 23106 .byte 2 23107 .hword 2048 23108 .hword 287 23109 .byte 0 23110 .byte 0 23111 .byte 24 23112 .byte 32 23113 .byte 1 23114 .byte 0 23115 .byte 1 23116 .byte 0 23117 .byte 0 23118 .byte 0 23119 .zero 4 23120 .byte 5 23121 .byte 44 23122 .byte 100 23123 .byte 100 23124 .byte 86 23125 .byte -91 23126 .byte 0 23127 .byte 4 23128 .byte 1 23129 .byte 24 23130 .hword 512 23131 .byte 2 23132 .byte 2 23133 .hword 700 23134 .hword 479 23135 .byte 4 23136 .byte 18 23137 .byte 60 23138 .byte 32 23139 .byte 1 23140 .byte 0 23141 .byte 1 23142 .byte 0 23143 .byte 0 23144 .byte 0 23145 .zero 4 23146 .byte 6 23147 .byte 44 23148 .byte -124 23149 .byte -59 23150 .byte 75 23151 .byte -87 23152 .byte 0 23153 .byte 4 23154 .byte 2 23155 .byte 16 23156 .hword 256 23157 .byte 2 23158 .byte 2 23159 .hword 2048 23160 .hword 479 23161 .byte 3 23162 .byte 17 23163 .byte 40 23164 .byte 32 23165 .byte 1 23166 .byte 0 23167 .byte 1 23168 .byte 0 23169 .byte 0 23170 .byte 0 23171 .zero 4 23172 .byte 6 23173 .byte 44 23174 .byte -43 23175 .byte -47 23176 .byte -90 23177 .byte 104 23178 .byte 0 23179 .byte 4 23180 .byte 2 23181 .byte 8 23182 .hword 64 23183 .byte 1 23184 .byte 2 23185 .hword 2048 23186 .hword 279 23187 .byte 0 23188 .byte 0 23189 .byte 24 23190 .byte 32 23191 .byte 1 23192 .byte 0 23193 .byte 1 23194 .byte 0 23195 .byte 0 23196 .byte 0 23197 .zero 4 23198 .byte 6 23199 .byte 44 23200 .byte -36 23201 .byte -112 23202 .byte -90 23203 .byte 84 23204 .byte 0 23205 .byte 4 23206 .byte 1 23207 .byte 8 23208 .hword 64 23209 .byte 1 23210 .byte 2 23211 .hword 1024 23212 .hword 279 23213 .byte 0 23214 .byte 0 23215 .byte 24 23216 .byte 32 23217 .byte 1 23218 .byte 0 23219 .byte 1 23220 .byte 0 23221 .byte 0 23222 .byte 0 23223 .zero 4 23224 .byte 5 23225 .byte 44 23226 .byte 100 23227 .byte 100 23228 .byte 84 23229 .byte -92 23230 .byte 0 23231 .byte 4 23232 .byte 1 23233 .byte 32 23234 .hword 512 23235 .byte 2 23236 .byte 1 23237 .hword 1024 23238 .hword 479 23239 .byte 4 23240 .byte 18 23241 .byte 60 23242 .byte 32 23243 .byte 1 23244 .byte 0 23245 .byte 1 23246 .byte 0 23247 .byte 0 23248 .byte 0 23249 .zero 4 23250 .byte 5 23251 .byte 44 23252 .byte -124 23253 .byte 68 23254 .byte 50 23255 .byte -86 23256 .byte 0 23257 .byte 4 23258 .byte 1 23259 .byte 32 23260 .hword 512 23261 .byte 2 23262 .byte 1 23263 .hword 2184 23264 .hword 1479 23265 .byte 5 23266 .byte 19 23267 .byte 60 23268 .byte 32 23269 .byte 1 23270 .byte 0 23271 .byte 1 23272 .byte 0 23273 .byte 1 23274 .byte 0 23275 .zero 4 23276 .byte 5 23277 .byte 44 23278 .byte 100 23279 .byte 68 23280 .byte 50 23281 .byte -91 23282 .byte 0 23283 .byte 4 23284 .byte 1 23285 .byte 32 23286 .hword 512 23287 .byte 2 23288 .byte 1 23289 .hword 1048 23290 .hword 1479 23291 .byte 5 23292 .byte 19 23293 .byte 60 23294 .byte 32 23295 .byte 1 23296 .byte 0 23297 .byte 1 23298 .byte 0 23299 .byte 1 23300 .byte 0 23301 .zero 4 23302 .byte 5 23303 .byte 44 23304 .byte 100 23305 .byte 100 23306 .byte 60 23307 .byte -91 23308 .byte 0 23309 .byte 4 23310 .byte 1 23311 .byte 32 23312 .hword 512 23313 .byte 2 23314 .byte 1 23315 .hword 1044 23316 .hword 479 23317 .byte 3 23318 .byte 17 23319 .byte 40 23320 .byte 32 23321 .byte 1 23322 .byte 0 23323 .byte 1 23324 .byte 0 23325 .byte 0 23326 .byte 0 23327 .zero 4 23328 .byte 5 23329 .byte 44 23330 .byte -124 23331 .byte 68 23332 .byte 50 23333 .byte -86 23334 .byte 0 23335 .byte 4 23336 .byte 1 23337 .byte 32 23338 .hword 512 23339 .byte 2 23340 .byte 1 23341 .hword 2184 23342 .hword 1479 23343 .byte 5 23344 .byte 19 23345 .byte 60 23346 .byte 32 23347 .byte 1 23348 .byte 0 23349 .byte 4 23350 .byte 0 23351 .byte 1 23352 .byte 0 23353 .zero 4 23354 .byte 5 23355 .byte 44 23356 .byte -124 23357 .byte 68 23358 .byte 52 23359 .byte -86 23360 .byte 0 23361 .byte 4 23362 .byte 1 23363 .byte 32 23364 .hword 512 23365 .byte 2 23366 .byte 1 23367 .hword 2184 23368 .hword 1479 23369 .byte 5 23370 .byte 19 23371 .byte 60 23372 .byte 32 23373 .byte 1 23374 .byte 0 23375 .byte 4 23376 .byte 0 23377 .byte 1 23378 .byte 0 23379 .zero 4 23380 .byte 5 23381 .byte 44 23382 .byte -124 23383 .byte -60 23384 .byte 52 23385 .byte -86 23386 .byte 0 23387 .byte 4 23388 .byte 1 23389 .byte 32 23390 .hword 512 23391 .byte 2 23392 .byte 1 23393 .hword 2184 23394 .hword 1479 23395 .byte 5 23396 .byte 19 23397 .byte 60 23398 .byte 32 23399 .byte 1 23400 .byte 0 23401 .byte 1 23402 .byte 0 23403 .byte 1 23404 .byte 0 23405 .zero 4 23406 .byte 5 23407 .byte 44 23408 .byte -124 23409 .byte 68 23410 .byte 52 23411 .byte -92 23412 .byte 0 23413 .byte 4 23414 .byte 1 23415 .byte 32 23416 .hword 512 23417 .byte 2 23418 .byte 1 23419 .hword 2184 23420 .hword 1479 23421 .byte 5 23422 .byte 19 23423 .byte 60 23424 .byte 32 23425 .byte 1 23426 .byte 0 23427 .byte 1 23428 .byte 0 23429 .byte 1 23430 .byte 0 23431 .zero 4 23432 .byte 5 23433 .byte 44 23434 .byte -124 23435 .byte 100 23436 .byte 60 23437 .byte -87 23438 .byte 0 23439 .byte 4 23440 .byte 1 23441 .byte 32 23442 .hword 512 23443 .byte 2 23444 .byte 2 23445 .hword 1024 23446 .hword 479 23447 .byte 3 23448 .byte 17 23449 .byte 40 23450 .byte 32 23451 .byte 1 23452 .byte 0 23453 .byte 1 23454 .byte 0 23455 .byte 0 23456 .byte 0 23457 .zero 4 23458 .byte 6 23459 .byte 44 23460 .byte -92 23461 .byte 100 23462 .byte 50 23463 .byte -86 23464 .byte 4 23465 .byte 4 23466 .byte 1 23467 .byte 32 23468 .hword 1024 23469 .byte 2 23470 .byte 1 23471 .hword 2192 23472 .hword 1479 23473 .byte 10 23474 .byte 19 23475 .byte 60 23476 .byte 32 23477 .byte 1 23478 .byte 0 23479 .byte 4 23480 .byte 0 23481 .byte 1 23482 .byte 0 23483 .zero 4 23484 .byte 6 23485 .byte -83 23486 .byte -34 23487 .byte -108 23488 .byte -46 23489 .byte 4 23490 .byte 67 23491 .byte 2 23492 .byte 1 23493 .byte 16 23494 .hword 256 23495 .byte 2 23496 .byte 2 23497 .hword 2048 23498 .hword 473 23499 .byte 1 23500 .byte 1 23501 .byte 24 23502 .byte 32 23503 .byte 4 23504 .byte 0 23505 .byte 3 23506 .byte 0 23507 .byte 0 23508 .byte 0 23509 .zero 4 23510 .byte 6 23511 .byte -83 23512 .byte -41 23513 .byte -108 23514 .byte -38 23515 .byte 116 23516 .byte -61 23517 .byte 2 23518 .byte 1 23519 .byte 16 23520 .hword 256 23521 .byte 2 23522 .byte 2 23523 .hword 1024 23524 .hword 473 23525 .byte 1 23526 .byte 2 23527 .byte 40 23528 .byte 32 23529 .byte 4 23530 .byte 0 23531 .byte 3 23532 .byte 0 23533 .byte 0 23534 .byte 0 23535 .zero 4 23536 .byte 6 23537 .byte -83 23538 .byte -41 23539 .byte -108 23540 .byte -111 23541 .byte 96 23542 .byte 68 23543 .byte 2 23544 .byte 1 23545 .byte 16 23546 .hword 256 23547 .byte 2 23548 .byte 2 23549 .hword 1046 23550 .hword 473 23551 .byte 1 23552 .byte 3 23553 .byte 40 23554 .byte 32 23555 .byte 4 23556 .byte 1 23557 .byte 3 23558 .byte 0 23559 .byte 0 23560 .byte 0 23561 .zero 4 23562 .byte 6 23563 .byte -83 23564 .byte -34 23565 .byte -108 23566 .byte -38 23567 .byte 116 23568 .byte -60 23569 .byte 2 23570 .byte 1 23571 .byte 16 23572 .hword 256 23573 .byte 2 23574 .byte 2 23575 .hword 2090 23576 .hword 473 23577 .byte 1 23578 .byte 4 23579 .byte 40 23580 .byte 32 23581 .byte 4 23582 .byte 1 23583 .byte 3 23584 .byte 0 23585 .byte 0 23586 .byte 0 23587 .zero 4 23588 .byte 6 23589 .byte -83 23590 .byte -34 23591 .byte -108 23592 .byte -21 23593 .byte 116 23594 .byte 68 23595 .byte 2 23596 .byte 1 23597 .byte 32 23598 .hword 256 23599 .byte 2 23600 .byte 2 23601 .hword 1066 23602 .hword 473 23603 .byte 1 23604 .byte 7 23605 .byte 40 23606 .byte 32 23607 .byte 4 23608 .byte 1 23609 .byte 3 23610 .byte 0 23611 .byte 0 23612 .byte 0 23613 .zero 4 23614 .byte 6 23615 .byte -83 23616 .byte -43 23617 .byte -108 23618 .byte -38 23619 .byte 116 23620 .byte -60 23621 .byte 2 23622 .byte 1 23623 .byte 16 23624 .hword 256 23625 .byte 2 23626 .byte 2 23627 .hword 530 23628 .hword 473 23629 .byte 1 23630 .byte 3 23631 .byte 40 23632 .byte 32 23633 .byte 4 23634 .byte 1 23635 .byte 3 23636 .byte 0 23637 .byte 0 23638 .byte 0 23639 .zero 4 23640 .byte 6 23641 .byte -83 23642 .byte -41 23643 .byte -108 23644 .byte -102 23645 .byte 116 23646 .byte 66 23647 .byte 2 23648 .byte 1 23649 .byte 16 23650 .hword 256 23651 .byte 2 23652 .byte 2 23653 .hword 1024 23654 .hword 281 23655 .byte 1 23656 .byte 0 23657 .byte 24 23658 .byte 32 23659 .byte 4 23660 .byte 0 23661 .byte 3 23662 .byte 0 23663 .byte 0 23664 .byte 0 23665 .zero 4 23666 .byte 6 23667 .byte -83 23668 .byte -34 23669 .byte 20 23670 .byte -89 23671 .byte 66 23672 .byte 74 23673 .byte 2 23674 .byte 1 23675 .byte 32 23676 .hword 256 23677 .byte 2 23678 .byte 2 23679 .hword 1060 23680 .hword 473 23681 .byte 2 23682 .byte 5 23683 .byte 40 23684 .byte 32 23685 .byte 4 23686 .byte 1 23687 .byte 3 23688 .byte 0 23689 .byte 0 23690 .byte 0 23691 .zero 4 23692 .byte 6 23693 .byte -83 23694 .byte -41 23695 .byte 20 23696 .byte -98 23697 .byte 52 23698 .byte 74 23699 .byte 2 23700 .byte 1 23701 .byte 16 23702 .hword 256 23703 .byte 2 23704 .byte 2 23705 .hword 1056 23706 .hword 473 23707 .byte 2 23708 .byte 5 23709 .byte 40 23710 .byte 32 23711 .byte 4 23712 .byte 1 23713 .byte 3 23714 .byte 0 23715 .byte 0 23716 .byte 0 23717 .zero 4 23718 .byte 6 23719 .byte -83 23720 .byte -34 23721 .byte -108 23722 .byte -89 23723 .byte 66 23724 .byte 72 23725 .byte 2 23726 .byte 1 23727 .byte 32 23728 .hword 256 23729 .byte 2 23730 .byte 2 23731 .hword 1060 23732 .hword 473 23733 .byte 2 23734 .byte 5 23735 .byte 40 23736 .byte 32 23737 .byte 4 23738 .byte 1 23739 .byte 3 23740 .byte 0 23741 .byte 0 23742 .byte 0 23743 .zero 4 23744 .byte 6 23745 .byte -83 23746 .byte -34 23747 .byte 20 23748 .byte -85 23749 .byte 66 23750 .byte 74 23751 .byte 2 23752 .byte 1 23753 .byte 32 23754 .hword 256 23755 .byte 2 23756 .byte 2 23757 .hword 1056 23758 .hword 473 23759 .byte 2 23760 .byte 6 23761 .byte 40 23762 .byte 32 23763 .byte 3 23764 .byte 1 23765 .byte 3 23766 .byte 0 23767 .byte 0 23768 .byte 0 23769 .zero 4 23770 .byte 6 23771 .byte -83 23772 .byte 58 23773 .byte 20 23774 .byte -85 23775 .byte 66 23776 .byte 74 23777 .byte 2 23778 .byte 1 23779 .byte 32 23780 .hword 256 23781 .byte 2 23782 .byte 2 23783 .hword 2092 23784 .hword 473 23785 .byte 2 23786 .byte 5 23787 .byte 40 23788 .byte 32 23789 .byte 3 23790 .byte 1 23791 .byte 3 23792 .byte 0 23793 .byte 0 23794 .byte 0 23795 .zero 4 23796 .byte 6 23797 .byte -83 23798 .byte -43 23799 .byte -108 23800 .byte -102 23801 .byte 116 23802 .byte 66 23803 .byte 2 23804 .byte 1 23805 .byte 16 23806 .hword 256 23807 .byte 2 23808 .byte 1 23809 .hword 1024 23810 .hword 273 23811 .byte 1 23812 .byte 0 23813 .byte 24 23814 .byte 32 23815 .byte 4 23816 .byte 1 23817 .byte 3 23818 .byte 0 23819 .byte 0 23820 .byte 0 23821 .zero 4 23822 .byte 6 23823 .byte -83 23824 .byte 58 23825 .byte 20 23826 .byte 3 23827 .byte 8 23828 .byte 80 23829 .byte 2 23830 .byte 1 23831 .byte 32 23832 .hword 388 23833 .byte 2 23834 .byte 2 23835 .hword 1362 23836 .hword 473 23837 .byte 9 23838 .byte 8 23839 .byte 40 23840 .byte 32 23841 .byte 3 23842 .byte 1 23843 .byte 3 23844 .byte 0 23845 .byte 0 23846 .byte 0 23847 .zero 4 23848 .byte 6 23849 .byte -119 23850 .byte 100 23851 .byte 68 23852 .byte 75 23853 .byte -87 23854 .byte 0 23855 .byte 7 23856 .byte 1 23857 .byte 16 23858 .hword 256 23859 .byte 2 23860 .byte 2 23861 .hword 2048 23862 .hword 479 23863 .byte 3 23864 .byte 17 23865 .byte 40 23866 .byte 32 23867 .byte 1 23868 .byte 0 23869 .byte 1 23870 .byte 0 23871 .byte 0 23872 .byte 0 23873 .zero 4 23874 .byte 6 23875 .byte -119 23876 .byte -120 23877 .byte 36 23878 .byte 75 23879 .byte -87 23880 .byte -124 23881 .byte 7 23882 .byte 1 23883 .byte 16 23884 .hword 256 23885 .byte 2 23886 .byte 2 23887 .hword 2048 23888 .hword 479 23889 .byte 3 23890 .byte 17 23891 .byte 40 23892 .byte 32 23893 .byte 1 23894 .byte 0 23895 .byte 1 23896 .byte 0 23897 .byte 0 23898 .byte 0 23899 .zero 4 23900 .byte 6 23901 .byte -119 23902 .byte -120 23903 .byte 36 23904 .byte 75 23905 .byte -87 23906 .byte 0 23907 .byte 7 23908 .byte 1 23909 .byte 16 23910 .hword 256 23911 .byte 2 23912 .byte 2 23913 .hword 2048 23914 .hword 279 23915 .byte 1 23916 .byte 0 23917 .byte 24 23918 .byte 32 23919 .byte 1 23920 .byte 0 23921 .byte 1 23922 .byte 0 23923 .byte 0 23924 .byte 0 23925 .zero 4 23926 .byte 6 23927 .byte -119 23928 .byte 104 23929 .byte 36 23930 .byte 74 23931 .byte -87 23932 .byte 0 23933 .byte 7 23934 .byte 1 23935 .byte 8 23936 .hword 256 23937 .byte 2 23938 .byte 2 23939 .hword 2048 23940 .hword 279 23941 .byte 1 23942 .byte 0 23943 .byte 24 23944 .byte 32 23945 .byte 1 23946 .byte 0 23947 .byte 1 23948 .byte 0 23949 .byte 0 23950 .byte 0 23951 .zero 4 23952 .byte 6 23953 .byte -119 23954 .byte 104 23955 .byte 4 23956 .byte 74 23957 .byte -87 23958 .byte 0 23959 .byte 7 23960 .byte 1 23961 .byte 8 23962 .hword 256 23963 .byte 2 23964 .byte 2 23965 .hword 2048 23966 .hword 279 23967 .byte 1 23968 .byte 0 23969 .byte 24 23970 .byte 32 23971 .byte 1 23972 .byte 0 23973 .byte 1 23974 .byte 0 23975 .byte 0 23976 .byte 0 23977 .zero 4 23978 .byte 6 23979 .byte -119 23980 .byte -41 23981 .byte -108 23982 .byte 62 23983 .byte -124 23984 .byte 0 23985 .byte 7 23986 .byte 1 23987 .byte 8 23988 .hword 256 23989 .byte 2 23990 .byte 2 23991 .hword 2048 23992 .hword 279 23993 .byte 1 23994 .byte 0 23995 .byte 24 23996 .byte 32 23997 .byte 1 23998 .byte 0 23999 .byte 1 24000 .byte 0 24001 .byte 0 24002 .byte 0 24003 .zero 4 24004 .byte 6 24005 .byte -119 24006 .byte 104 24007 .byte 4 24008 .byte 70 24009 .byte -87 24010 .byte 0 24011 .byte 7 24012 .byte 1 24013 .byte 8 24014 .hword 256 24015 .byte 2 24016 .byte 2 24017 .hword 2048 24018 .hword 279 24019 .byte 1 24020 .byte 0 24021 .byte 24 24022 .byte 32 24023 .byte 1 24024 .byte 0 24025 .byte 1 24026 .byte 0 24027 .byte 0 24028 .byte 0 24029 .zero 4 24030 .byte 5 24031 .byte -119 24032 .byte 100 24033 .byte 100 24034 .byte 60 24035 .byte -95 24036 .byte 0 24037 .byte 7 24038 .byte 1 24039 .byte 32 24040 .hword 512 24041 .byte 2 24042 .byte 1 24043 .hword 1024 24044 .hword 455 24045 .byte 4 24046 .byte 17 24047 .byte 40 24048 .byte 32 24049 .byte 1 24050 .byte 0 24051 .byte 1 24052 .byte 0 24053 .byte 0 24054 .byte 0 24055 .zero 4 24056 .byte 5 24057 .byte -119 24058 .byte -124 24059 .byte 100 24060 .byte 60 24061 .byte -91 24062 .byte 0 24063 .byte 7 24064 .byte 1 24065 .byte 32 24066 .hword 512 24067 .byte 2 24068 .byte 2 24069 .hword 1024 24070 .hword 455 24071 .byte 4 24072 .byte 17 24073 .byte 40 24074 .byte 32 24075 .byte 1 24076 .byte 0 24077 .byte 1 24078 .byte 0 24079 .byte 0 24080 .byte 0 24081 .zero 4 24082 .byte 6 24083 .byte -119 24084 .byte -120 24085 .byte 36 24086 .byte 59 24087 .byte -87 24088 .byte 0 24089 .byte 7 24090 .byte 1 24091 .byte 16 24092 .hword 192 24093 .byte 2 24094 .byte 2 24095 .hword 2048 24096 .hword 279 24097 .byte 12 24098 .byte 0 24099 .byte 24 24100 .byte 32 24101 .byte 1 24102 .byte 0 24103 .byte 1 24104 .byte 0 24105 .byte 0 24106 .byte 0 24107 .zero 4 24108 .byte 6 24109 .byte -104 24110 .byte -41 24111 .byte -124 24112 .byte -109 24113 .byte 114 24114 .byte 87 24115 .byte 1 24116 .byte 1 24117 .byte 32 24118 .hword 256 24119 .byte 2 24120 .byte 1 24121 .hword 1060 24122 .hword 1473 24123 .byte 2 24124 .byte 33 24125 .byte 40 24126 .byte 32 24127 .byte 2 24128 .byte 1 24129 .byte 1 24130 .byte 0 24131 .byte 0 24132 .byte 0 24133 .zero 4 24134 .byte 6 24135 .byte -104 24136 .byte -34 24137 .byte -124 24138 .byte -109 24139 .byte 114 24140 .byte 87 24141 .byte 1 24142 .byte 1 24143 .byte 32 24144 .hword 256 24145 .byte 2 24146 .byte 1 24147 .hword 2092 24148 .hword 1473 24149 .byte 2 24150 .byte 33 24151 .byte 40 24152 .byte 32 24153 .byte 2 24154 .byte 1 24155 .byte 1 24156 .byte 0 24157 .byte 0 24158 .byte 0 24159 .zero 4 24160 .byte 6 24161 .byte -104 24162 .byte 58 24163 .byte -123 24164 .byte -109 24165 .byte 118 24166 .byte 87 24167 .byte 1 24168 .byte 2 24169 .byte 32 24170 .hword 256 24171 .byte 2 24172 .byte 1 24173 .hword 2092 24174 .hword 1505 24175 .byte 2 24176 .byte 33 24177 .byte 40 24178 .byte 32 24179 .byte 2 24180 .byte 1 24181 .byte 1 24182 .byte 0 24183 .byte 0 24184 .byte 0 24185 .zero 4 24186 .byte 6 24187 .byte -104 24188 .byte -43 24189 .byte -124 24190 .byte 50 24191 .byte 114 24192 .byte 86 24193 .byte 1 24194 .byte 1 24195 .byte 16 24196 .hword 128 24197 .byte 2 24198 .byte 1 24199 .hword 2056 24200 .hword 1473 24201 .byte 2 24202 .byte 33 24203 .byte 40 24204 .byte 32 24205 .byte 2 24206 .byte 1 24207 .byte 1 24208 .byte 0 24209 .byte 0 24210 .byte 0 24211 .zero 4 24212 .byte 6 24213 .byte -104 24214 .byte -41 24215 .byte -108 24216 .byte 50 24217 .byte 118 24218 .byte 86 24219 .byte 1 24220 .byte 1 24221 .byte 16 24222 .hword 128 24223 .byte 2 24224 .byte 2 24225 .hword 2058 24226 .hword 1489 24227 .byte 2 24228 .byte 33 24229 .byte 40 24230 .byte 32 24231 .byte 2 24232 .byte 1 24233 .byte 1 24234 .byte 0 24235 .byte 0 24236 .byte 0 24237 .zero 4 24238 .byte 6 24239 .byte -104 24240 .byte -34 24241 .byte -108 24242 .byte -126 24243 .byte 118 24244 .byte 86 24245 .byte 1 24246 .byte 1 24247 .byte 16 24248 .hword 256 24249 .byte 2 24250 .byte 2 24251 .hword 2062 24252 .hword 1489 24253 .byte 1 24254 .byte 33 24255 .byte 40 24256 .byte 32 24257 .byte 2 24258 .byte 1 24259 .byte 1 24260 .byte 0 24261 .byte 0 24262 .byte 0 24263 .zero 4 24264 .byte 6 24265 .byte -104 24266 .byte -34 24267 .byte -108 24268 .byte -109 24269 .byte 118 24270 .byte 80 24271 .byte 1 24272 .byte 1 24273 .byte 32 24274 .hword 256 24275 .byte 2 24276 .byte 2 24277 .hword 1066 24278 .hword 1497 24279 .byte 2 24280 .byte 34 24281 .byte 40 24282 .byte 32 24283 .byte 3 24284 .byte 1 24285 .byte 1 24286 .byte 0 24287 .byte 0 24288 .byte 0 24289 .zero 4 24290 .byte 6 24291 .byte -104 24292 .byte 58 24293 .byte -107 24294 .byte -109 24295 .byte 122 24296 .byte 80 24297 .byte 1 24298 .byte 2 24299 .byte 32 24300 .hword 256 24301 .byte 2 24302 .byte 2 24303 .hword 1066 24304 .hword 1497 24305 .byte 2 24306 .byte 34 24307 .byte 40 24308 .byte 32 24309 .byte 3 24310 .byte 1 24311 .byte 1 24312 .byte 0 24313 .byte 0 24314 .byte 0 24315 .zero 4 24316 .byte 6 24317 .byte -104 24318 .byte -41 24319 .byte -108 24320 .byte 50 24321 .byte 118 24322 .byte 85 24323 .byte 1 24324 .byte 1 24325 .byte 16 24326 .hword 128 24327 .byte 2 24328 .byte 2 24329 .hword 2050 24330 .hword 401 24331 .byte 2 24332 .byte 0 24333 .byte 24 24334 .byte 32 24335 .byte 1 24336 .byte 1 24337 .byte 1 24338 .byte 0 24339 .byte 0 24340 .byte 0 24341 .zero 4 24342 .byte 6 24343 .byte -104 24344 .byte -34 24345 .byte -108 24346 .byte -109 24347 .byte 118 24348 .byte 87 24349 .byte 1 24350 .byte 1 24351 .byte 32 24352 .hword 256 24353 .byte 2 24354 .byte 2 24355 .hword 1058 24356 .hword 1497 24357 .byte 2 24358 .byte 33 24359 .byte 40 24360 .byte 32 24361 .byte 3 24362 .byte 1 24363 .byte 1 24364 .byte 0 24365 .byte 0 24366 .byte 0 24367 .zero 4 24368 .byte 6 24369 .byte -104 24370 .byte -41 24371 .byte -124 24372 .byte -109 24373 .byte 114 24374 .byte 80 24375 .byte 1 24376 .byte 1 24377 .byte 32 24378 .hword 256 24379 .byte 2 24380 .byte 1 24381 .hword 1060 24382 .hword 1473 24383 .byte 2 24384 .byte 34 24385 .byte 40 24386 .byte 32 24387 .byte 3 24388 .byte 1 24389 .byte 1 24390 .byte 0 24391 .byte 0 24392 .byte 0 24393 .zero 4 24394 .byte 6 24395 .byte -104 24396 .byte -34 24397 .byte -108 24398 .byte -109 24399 .byte 118 24400 .byte 81 24401 .byte 1 24402 .byte 1 24403 .byte 32 24404 .hword 256 24405 .byte 2 24406 .byte 2 24407 .hword 1074 24408 .hword 1497 24409 .byte 2 24410 .byte 35 24411 .byte 40 24412 .byte 32 24413 .byte 3 24414 .byte 1 24415 .byte 4 24416 .byte 0 24417 .byte 0 24418 .byte 0 24419 .zero 4 24420 .byte 6 24421 .byte -104 24422 .byte 58 24423 .byte -108 24424 .byte -109 24425 .byte 118 24426 .byte 81 24427 .byte 1 24428 .byte 1 24429 .byte 32 24430 .hword 256 24431 .byte 2 24432 .byte 2 24433 .hword 2106 24434 .hword 1497 24435 .byte 2 24436 .byte 35 24437 .byte 40 24438 .byte 32 24439 .byte 3 24440 .byte 1 24441 .byte 4 24442 .byte 0 24443 .byte 0 24444 .byte 0 24445 .zero 4 24446 .byte 6 24447 .byte -104 24448 .byte -41 24449 .byte -124 24450 .byte -109 24451 .byte 114 24452 .byte 81 24453 .byte 1 24454 .byte 1 24455 .byte 32 24456 .hword 256 24457 .byte 2 24458 .byte 1 24459 .hword 1056 24460 .hword 1497 24461 .byte 2 24462 .byte 35 24463 .byte 40 24464 .byte 32 24465 .byte 3 24466 .byte 1 24467 .byte 4 24468 .byte 0 24469 .byte 0 24470 .byte 0 24471 .zero 4 24472 .byte 6 24473 .byte -104 24474 .byte -34 24475 .byte -108 24476 .byte -109 24477 .byte 118 24478 .byte -47 24479 .byte 1 24480 .byte 1 24481 .byte 32 24482 .hword 256 24483 .byte 2 24484 .byte 2 24485 .hword 1074 24486 .hword 1497 24487 .byte 2 24488 .byte 35 24489 .byte 40 24490 .byte 32 24491 .byte 3 24492 .byte 1 24493 .byte 4 24494 .byte 0 24495 .byte 0 24496 .byte 0 24497 .zero 4 24498 .byte 6 24499 .byte 69 24500 .byte -34 24501 .byte -108 24502 .byte -109 24503 .byte 118 24504 .byte 87 24505 .byte 8 24506 .byte 1 24507 .byte 32 24508 .hword 256 24509 .byte 2 24510 .byte 2 24511 .hword 1058 24512 .hword 1497 24513 .byte 2 24514 .byte 66 24515 .byte 40 24516 .byte 32 24517 .byte 3 24518 .byte 1 24519 .byte 1 24520 .byte 0 24521 .byte 0 24522 .byte 0 24523 .zero 4 24524 .byte 6 24525 .byte 69 24526 .byte -41 24527 .byte -124 24528 .byte -109 24529 .byte 114 24530 .byte 87 24531 .byte 8 24532 .byte 1 24533 .byte 32 24534 .hword 256 24535 .byte 2 24536 .byte 1 24537 .hword 1060 24538 .hword 1473 24539 .byte 2 24540 .byte 66 24541 .byte 40 24542 .byte 32 24543 .byte 2 24544 .byte 1 24545 .byte 1 24546 .byte 0 24547 .byte 0 24548 .byte 0 24549 .zero 4 24550 .byte 6 24551 .byte 69 24552 .byte -34 24553 .byte -92 24554 .byte -126 24555 .byte 118 24556 .byte 86 24557 .byte 8 24558 .byte 1 24559 .byte 16 24560 .hword 256 24561 .byte 2 24562 .byte 2 24563 .hword 2082 24564 .hword 473 24565 .byte 1 24566 .byte 65 24567 .byte 40 24568 .byte 32 24569 .byte 3 24570 .byte 1 24571 .byte 1 24572 .byte 0 24573 .byte 0 24574 .byte 0 24575 .zero 4 24576 .byte 6 24577 .byte 69 24578 .byte -34 24579 .byte -108 24580 .byte -109 24581 .byte 118 24582 .byte 80 24583 .byte 8 24584 .byte 1 24585 .byte 32 24586 .hword 256 24587 .byte 2 24588 .byte 2 24589 .hword 1066 24590 .hword 1497 24591 .byte 2 24592 .byte 67 24593 .byte 40 24594 .byte 32 24595 .byte 3 24596 .byte 1 24597 .byte 1 24598 .byte 0 24599 .byte 0 24600 .byte 0 24601 .zero 4 24602 .byte 6 24603 .byte 69 24604 .byte -41 24605 .byte -124 24606 .byte -109 24607 .byte 114 24608 .byte 80 24609 .byte 8 24610 .byte 1 24611 .byte 32 24612 .hword 256 24613 .byte 2 24614 .byte 1 24615 .hword 1060 24616 .hword 1473 24617 .byte 2 24618 .byte 67 24619 .byte 40 24620 .byte 32 24621 .byte 3 24622 .byte 1 24623 .byte 1 24624 .byte 0 24625 .byte 0 24626 .byte 0 24627 .zero 4 24628 .byte 6 24629 .byte 69 24630 .byte -34 24631 .byte -92 24632 .byte -126 24633 .byte 118 24634 .byte -41 24635 .byte 8 24636 .byte 1 24637 .byte 16 24638 .hword 256 24639 .byte 2 24640 .byte 2 24641 .hword 2090 24642 .hword 1241 24643 .byte 1 24644 .byte 66 24645 .byte 40 24646 .byte 32 24647 .byte 3 24648 .byte 1 24649 .byte 1 24650 .byte 0 24651 .byte 0 24652 .byte 0 24653 .zero 4 24654 .byte 6 24655 .byte 69 24656 .byte -34 24657 .byte -124 24658 .byte -109 24659 .byte 114 24660 .byte 87 24661 .byte 8 24662 .byte 1 24663 .byte 32 24664 .hword 256 24665 .byte 2 24666 .byte 1 24667 .hword 2092 24668 .hword 1473 24669 .byte 2 24670 .byte 66 24671 .byte 40 24672 .byte 32 24673 .byte 3 24674 .byte 1 24675 .byte 1 24676 .byte 0 24677 .byte 0 24678 .byte 0 24679 .zero 4 24680 .byte 6 24681 .byte 69 24682 .byte 58 24683 .byte -108 24684 .byte -109 24685 .byte 118 24686 .byte 81 24687 .byte 8 24688 .byte 1 24689 .byte 32 24690 .hword 256 24691 .byte 2 24692 .byte 2 24693 .hword 2106 24694 .hword 473 24695 .byte 2 24696 .byte 68 24697 .byte 40 24698 .byte 32 24699 .byte 3 24700 .byte 1 24701 .byte 4 24702 .byte 0 24703 .byte 0 24704 .byte 0 24705 .zero 4 24706 .byte 6 24707 .byte 69 24708 .byte -34 24709 .byte -108 24710 .byte -109 24711 .byte 118 24712 .byte 81 24713 .byte 8 24714 .byte 1 24715 .byte 32 24716 .hword 256 24717 .byte 2 24718 .byte 2 24719 .hword 1074 24720 .hword 473 24721 .byte 2 24722 .byte 68 24723 .byte 40 24724 .byte 32 24725 .byte 3 24726 .byte 1 24727 .byte 4 24728 .byte 0 24729 .byte 0 24730 .byte 0 24731 .zero 4 24732 .byte 6 24733 .byte 69 24734 .byte 58 24735 .byte -92 24736 .byte -109 24737 .byte 122 24738 .byte 80 24739 .byte 8 24740 .byte 1 24741 .byte 32 24742 .hword 256 24743 .byte 2 24744 .byte 2 24745 .hword 2138 24746 .hword 1497 24747 .byte 2 24748 .byte 0 24749 .byte 40 24750 .byte 32 24751 .byte 3 24752 .byte 1 24753 .byte 1 24754 .byte 0 24755 .byte 0 24756 .byte 0 24757 .zero 4 24758 .byte 6 24759 .byte 69 24760 .byte -34 24761 .byte -108 24762 .byte -126 24763 .byte 118 24764 .byte 86 24765 .byte 8 24766 .byte 1 24767 .byte 16 24768 .hword 256 24769 .byte 2 24770 .byte 2 24771 .hword 2062 24772 .hword 473 24773 .byte 1 24774 .byte 0 24775 .byte 40 24776 .byte 32 24777 .byte 3 24778 .byte 1 24779 .byte 1 24780 .byte 0 24781 .byte 0 24782 .byte 0 24783 .zero 4 24784 .byte 6 24785 .byte 69 24786 .byte -34 24787 .byte -108 24788 .byte -109 24789 .byte 118 24790 .byte -41 24791 .byte 8 24792 .byte 1 24793 .byte 32 24794 .hword 256 24795 .byte 2 24796 .byte 2 24797 .hword 1058 24798 .hword 1497 24799 .byte 2 24800 .byte 66 24801 .byte 40 24802 .byte 32 24803 .byte 3 24804 .byte 1 24805 .byte 1 24806 .byte 0 24807 .byte 0 24808 .byte 0 24809 .zero 4 24810 .byte 5 24811 .byte -20 24812 .byte -41 24813 .byte -108 24814 .byte 126 24815 .byte 100 24816 .byte 68 24817 .byte 0 24818 .byte 1 24819 .byte 16 24820 .hword 128 24821 .byte 2 24822 .byte 2 24823 .hword 2048 24824 .hword 473 24825 .byte 2 24826 .byte 49 24827 .byte 60 24828 .byte 36 24829 .byte 3 24830 .byte 0 24831 .byte 3 24832 .byte 0 24833 .byte 0 24834 .byte 0 24835 .zero 4 24836 .byte 6 24837 .byte -20 24838 .byte -34 24839 .byte -43 24840 .byte 126 24841 .byte 104 24842 .byte 68 24843 .byte 0 24844 .byte 2 24845 .byte 16 24846 .hword 128 24847 .byte 2 24848 .byte 2 24849 .hword 2048 24850 .hword 505 24851 .byte 2 24852 .byte 49 24853 .byte 60 24854 .byte 36 24855 .byte 3 24856 .byte 0 24857 .byte 3 24858 .byte 0 24859 .byte 0 24860 .byte 0 24861 .zero 4 24862 .byte 6 24863 .byte -20 24864 .byte -41 24865 .byte -108 24866 .byte 122 24867 .byte 84 24868 .byte 67 24869 .byte 0 24870 .byte 1 24871 .byte 16 24872 .hword 128 24873 .byte 2 24874 .byte 2 24875 .hword 2076 24876 .hword 409 24877 .byte 2 24878 .byte 0 24879 .byte 40 24880 .byte 36 24881 .byte 3 24882 .byte 1 24883 .byte 3 24884 .byte 0 24885 .byte 0 24886 .byte 0 24887 .zero 4 24888 .byte 6 24889 .byte -20 24890 .byte -34 24891 .byte -43 24892 .byte 122 24893 .byte 88 24894 .byte 67 24895 .byte 0 24896 .byte 2 24897 .byte 16 24898 .hword 128 24899 .byte 2 24900 .byte 2 24901 .hword 2076 24902 .hword 441 24903 .byte 2 24904 .byte 0 24905 .byte 40 24906 .byte 36 24907 .byte 3 24908 .byte 1 24909 .byte 3 24910 .byte 0 24911 .byte 0 24912 .byte 0 24913 .zero 4 24914 .byte 6 24915 .byte -20 24916 .byte -43 24917 .byte -108 24918 .byte 118 24919 .byte 84 24920 .byte 67 24921 .byte 0 24922 .byte 1 24923 .byte 16 24924 .hword 128 24925 .byte 2 24926 .byte 2 24927 .hword 1038 24928 .hword 281 24929 .byte 2 24930 .byte 0 24931 .byte 24 24932 .byte 36 24933 .byte 3 24934 .byte 1 24935 .byte 3 24936 .byte 0 24937 .byte 0 24938 .byte 0 24939 .zero 4 24940 .byte 6 24941 .byte -20 24942 .byte -41 24943 .byte 20 24944 .byte 118 24945 .byte 84 24946 .byte -62 24947 .byte 0 24948 .byte 1 24949 .byte 16 24950 .hword 128 24951 .byte 2 24952 .byte 2 24953 .hword 2076 24954 .hword 1169 24955 .byte 2 24956 .byte 0 24957 .byte 24 24958 .byte 40 24959 .byte 3 24960 .byte 1 24961 .byte 3 24962 .byte 0 24963 .byte 0 24964 .byte 0 24965 .zero 4 24966 .byte 6 24967 .byte -20 24968 .byte -34 24969 .byte -108 24970 .byte -61 24971 .byte -92 24972 .byte -54 24973 .byte 0 24974 .byte 1 24975 .byte 32 24976 .hword 792 24977 .byte 2 24978 .byte 1 24979 .hword 688 24980 .hword 1217 24981 .byte 11 24982 .byte 50 24983 .byte 40 24984 .byte 32 24985 .byte 3 24986 .byte 1 24987 .byte 1 24988 .byte 0 24989 .byte 1 24990 .byte 0 24991 .zero 4 24992 .section .data.NandOptPara,"aw",@progbits 24993 .align 3 24994 .set .LANCHOR146,. + 0 24995 .type NandOptPara, %object 24996 .size NandOptPara, 128 24997NandOptPara: 24998 .byte 1 24999 .byte 0 25000 .byte 49 25001 .byte 63 25002 .byte 0 25003 .byte 49 25004 .byte -128 25005 .byte 21 25006 .byte 0 25007 .byte 50 25008 .byte 17 25009 .byte -128 25010 .byte 112 25011 .byte 120 25012 .byte 120 25013 .byte 3 25014 .byte 1 25015 .byte 0 25016 .zero 14 25017 .byte 2 25018 .byte 0 25019 .byte 49 25020 .byte 63 25021 .byte 0 25022 .byte 49 25023 .byte -128 25024 .byte 21 25025 .byte 0 25026 .byte 0 25027 .byte 17 25028 .byte -127 25029 .byte 112 25030 .byte -15 25031 .byte -14 25032 .byte 0 25033 .byte 0 25034 .byte 0 25035 .zero 14 25036 .byte 3 25037 .byte 0 25038 .byte 49 25039 .byte 63 25040 .byte 0 25041 .byte 49 25042 .byte -128 25043 .byte 21 25044 .byte 96 25045 .byte 96 25046 .byte 17 25047 .byte -127 25048 .byte 112 25049 .byte -15 25050 .byte -14 25051 .byte 0 25052 .byte 0 25053 .byte 0 25054 .zero 14 25055 .byte 4 25056 .byte 0 25057 .byte 49 25058 .byte 63 25059 .byte 0 25060 .byte 49 25061 .byte -128 25062 .byte 21 25063 .byte 96 25064 .byte 96 25065 .byte 17 25066 .byte -127 25067 .byte 112 25068 .byte 112 25069 .byte 112 25070 .byte 0 25071 .byte 0 25072 .byte 0 25073 .zero 14 25074 .section .data.SamsungRefValue,"aw",@progbits 25075 .align 3 25076 .set .LANCHOR14,. + 0 25077 .type SamsungRefValue, %object 25078 .size SamsungRefValue, 64 25079SamsungRefValue: 25080 .byte -89 25081 .byte -92 25082 .byte -91 25083 .byte -90 25084 .byte 0 25085 .byte 0 25086 .byte 0 25087 .byte 0 25088 .byte 5 25089 .byte 10 25090 .byte 0 25091 .byte 0 25092 .byte 40 25093 .byte 0 25094 .byte -20 25095 .byte -40 25096 .byte -19 25097 .byte -11 25098 .byte -19 25099 .byte -26 25100 .byte 10 25101 .byte 15 25102 .byte 5 25103 .byte 0 25104 .byte 15 25105 .byte 10 25106 .byte -5 25107 .byte -20 25108 .byte -24 25109 .byte -17 25110 .byte -24 25111 .byte -36 25112 .byte -15 25113 .byte -5 25114 .byte -2 25115 .byte -16 25116 .byte 10 25117 .byte 0 25118 .byte -5 25119 .byte -20 25120 .byte -48 25121 .byte -30 25122 .byte -48 25123 .byte -62 25124 .byte 20 25125 .byte 15 25126 .byte -5 25127 .byte -20 25128 .byte -24 25129 .byte -5 25130 .byte -24 25131 .byte -36 25132 .byte 30 25133 .byte 20 25134 .byte -5 25135 .byte -20 25136 .byte -5 25137 .byte -1 25138 .byte -5 25139 .byte -8 25140 .byte 7 25141 .byte 12 25142 .byte 2 25143 .byte 0 25144 .section .data.Toshiba15RefValue,"aw",@progbits 25145 .align 3 25146 .set .LANCHOR9,. + 0 25147 .type Toshiba15RefValue, %object 25148 .size Toshiba15RefValue, 95 25149Toshiba15RefValue: 25150 .byte 4 25151 .byte 5 25152 .byte 6 25153 .byte 7 25154 .byte 13 25155 .byte 0 25156 .byte 0 25157 .byte 0 25158 .byte 0 25159 .byte 0 25160 .byte 0 25161 .byte 0 25162 .byte 0 25163 .byte 0 25164 .byte 0 25165 .byte 2 25166 .byte 4 25167 .byte 2 25168 .byte 0 25169 .byte 0 25170 .byte 8 25171 .byte 8 25172 .byte 0 25173 .byte 0 25174 .byte 0 25175 .byte 124 25176 .byte 0 25177 .byte 124 25178 .byte 124 25179 .byte 0 25180 .byte 122 25181 .byte 0 25182 .byte 122 25183 .byte 122 25184 .byte 0 25185 .byte 11 25186 .byte 126 25187 .byte 118 25188 .byte 116 25189 .byte 0 25190 .byte 120 25191 .byte 2 25192 .byte 120 25193 .byte 122 25194 .byte 0 25195 .byte 126 25196 .byte 4 25197 .byte 126 25198 .byte 122 25199 .byte 0 25200 .byte 16 25201 .byte 118 25202 .byte 114 25203 .byte 112 25204 .byte 0 25205 .byte 118 25206 .byte 4 25207 .byte 118 25208 .byte 120 25209 .byte 0 25210 .byte 4 25211 .byte 4 25212 .byte 4 25213 .byte 118 25214 .byte 0 25215 .byte 2 25216 .byte 0 25217 .byte 126 25218 .byte 124 25219 .byte 0 25220 .byte 6 25221 .byte 10 25222 .byte 6 25223 .byte 2 25224 .byte 0 25225 .byte 116 25226 .byte 124 25227 .byte 116 25228 .byte 118 25229 .byte 0 25230 .byte 4 25231 .byte 4 25232 .byte 124 25233 .byte 126 25234 .byte 0 25235 .byte 0 25236 .byte 124 25237 .byte 120 25238 .byte 120 25239 .byte 0 25240 .byte 124 25241 .byte 118 25242 .byte 116 25243 .byte 114 25244 .byte 0 25245 .section .data.ToshibaA19RefValue,"aw",@progbits 25246 .align 3 25247 .set .LANCHOR10,. + 0 25248 .type ToshibaA19RefValue, %object 25249 .size ToshibaA19RefValue, 45 25250ToshibaA19RefValue: 25251 .byte 4 25252 .byte 5 25253 .byte 6 25254 .byte 7 25255 .byte 13 25256 .byte 0 25257 .byte 0 25258 .byte 0 25259 .byte 0 25260 .byte 0 25261 .byte 4 25262 .byte 4 25263 .byte 124 25264 .byte 126 25265 .byte 0 25266 .byte 0 25267 .byte 124 25268 .byte 120 25269 .byte 120 25270 .byte 0 25271 .byte 124 25272 .byte 118 25273 .byte 116 25274 .byte 114 25275 .byte 0 25276 .byte 8 25277 .byte 8 25278 .byte 0 25279 .byte 0 25280 .byte 0 25281 .byte 11 25282 .byte 126 25283 .byte 118 25284 .byte 116 25285 .byte 0 25286 .byte 16 25287 .byte 118 25288 .byte 114 25289 .byte 112 25290 .byte 0 25291 .byte 2 25292 .byte 0 25293 .byte 126 25294 .byte 124 25295 .byte 0 25296 .section .data.ToshibaRefValue,"aw",@progbits 25297 .align 3 25298 .set .LANCHOR12,. + 0 25299 .type ToshibaRefValue, %object 25300 .size ToshibaRefValue, 8 25301ToshibaRefValue: 25302 .byte 0 25303 .byte 4 25304 .byte 124 25305 .byte 120 25306 .byte 116 25307 .byte 8 25308 .byte 12 25309 .byte 112 25310 .section .data.ftl_gc_temp_block_bops_scan_page_addr,"aw",@progbits 25311 .align 1 25312 .set .LANCHOR245,. + 0 25313 .type ftl_gc_temp_block_bops_scan_page_addr, %object 25314 .size ftl_gc_temp_block_bops_scan_page_addr, 2 25315ftl_gc_temp_block_bops_scan_page_addr: 25316 .hword -1 25317 .section .data.gFtlInitStatus,"aw",@progbits 25318 .align 2 25319 .set .LANCHOR247,. + 0 25320 .type gFtlInitStatus, %object 25321 .size gFtlInitStatus, 4 25322gFtlInitStatus: 25323 .word -1 25324 .section .data.gNandParaInfo,"aw",@progbits 25325 .align 3 25326 .set .LANCHOR31,. + 0 25327 .type gNandParaInfo, %object 25328 .size gNandParaInfo, 32 25329gNandParaInfo: 25330 .byte 0 25331 .byte 0 25332 .zero 5 25333 .byte 0 25334 .byte 1 25335 .byte 8 25336 .hword 128 25337 .byte 2 25338 .byte 1 25339 .hword 2048 25340 .hword 0 25341 .byte 1 25342 .byte 0 25343 .byte 24 25344 .byte 32 25345 .byte 1 25346 .byte 0 25347 .byte 1 25348 .byte 0 25349 .byte 0 25350 .byte 0 25351 .zero 4 25352 .section .data.gSlcNandParaInfo,"aw",@progbits 25353 .align 3 25354 .set .LANCHOR209,. + 0 25355 .type gSlcNandParaInfo, %object 25356 .size gSlcNandParaInfo, 32 25357gSlcNandParaInfo: 25358 .byte 2 25359 .byte -104 25360 .byte -15 25361 .byte 0 25362 .byte 0 25363 .byte 0 25364 .byte 0 25365 .byte 1 25366 .byte 1 25367 .byte 4 25368 .hword 64 25369 .byte 1 25370 .byte 1 25371 .hword 1024 25372 .hword 256 25373 .byte 0 25374 .byte 0 25375 .byte 16 25376 .byte 40 25377 .byte 1 25378 .byte 0 25379 .byte 1 25380 .byte 0 25381 .byte 0 25382 .byte 0 25383 .zero 4 25384 .section .data.power_up_flag,"aw",@progbits 25385 .align 2 25386 .type power_up_flag, %object 25387 .size power_up_flag, 4 25388power_up_flag: 25389 .word 1 25390 .section .data.random_seed,"aw",@progbits 25391 .align 3 25392 .set .LANCHOR5,. + 0 25393 .type random_seed, %object 25394 .size random_seed, 256 25395random_seed: 25396 .hword 22378 25397 .hword 1512 25398 .hword 25245 25399 .hword 17827 25400 .hword 25756 25401 .hword 19440 25402 .hword 9026 25403 .hword 10030 25404 .hword 29528 25405 .hword 20467 25406 .hword 29676 25407 .hword 24432 25408 .hword 31328 25409 .hword 6872 25410 .hword 13426 25411 .hword 13842 25412 .hword 8783 25413 .hword 1108 25414 .hword 782 25415 .hword 28837 25416 .hword 30729 25417 .hword 9505 25418 .hword 18676 25419 .hword 23085 25420 .hword 18730 25421 .hword 1085 25422 .hword 32609 25423 .hword 14697 25424 .hword 20858 25425 .hword 15170 25426 .hword 30365 25427 .hword 1607 25428 .hword 32298 25429 .hword 4995 25430 .hword 18905 25431 .hword 1976 25432 .hword 9592 25433 .hword 20204 25434 .hword 17443 25435 .hword 13615 25436 .hword 23330 25437 .hword 29369 25438 .hword 13947 25439 .hword 9398 25440 .hword 32398 25441 .hword 8984 25442 .hword 27600 25443 .hword 21785 25444 .hword 6019 25445 .hword 6311 25446 .hword 31598 25447 .hword 30210 25448 .hword 19327 25449 .hword 13896 25450 .hword 11347 25451 .hword 27545 25452 .hword 3107 25453 .hword 26575 25454 .hword 32270 25455 .hword 19852 25456 .hword 20601 25457 .hword 8349 25458 .hword 9290 25459 .hword 29819 25460 .hword 13579 25461 .hword 3661 25462 .hword 28676 25463 .hword 27331 25464 .hword 32574 25465 .hword 8693 25466 .hword 31253 25467 .hword 9081 25468 .hword 5399 25469 .hword 6842 25470 .hword 20087 25471 .hword 5537 25472 .hword 1274 25473 .hword 11617 25474 .hword 9530 25475 .hword 4866 25476 .hword 8035 25477 .hword 23219 25478 .hword 1178 25479 .hword 23272 25480 .hword 7383 25481 .hword 18944 25482 .hword 12488 25483 .hword 12871 25484 .hword 29340 25485 .hword 20532 25486 .hword 11022 25487 .hword 22514 25488 .hword 228 25489 .hword 22363 25490 .hword 24978 25491 .hword 14584 25492 .hword 12138 25493 .hword 3092 25494 .hword 17916 25495 .hword 16863 25496 .hword 14554 25497 .hword 31457 25498 .hword 29474 25499 .hword 25311 25500 .hword 24121 25501 .hword 3684 25502 .hword 28037 25503 .hword 22865 25504 .hword 22839 25505 .hword 25217 25506 .hword 13217 25507 .hword 27186 25508 .hword 14938 25509 .hword 11180 25510 .hword 29754 25511 .hword 24180 25512 .hword 15150 25513 .hword 32455 25514 .hword 20434 25515 .hword 23848 25516 .hword 29983 25517 .hword 16120 25518 .hword 14769 25519 .hword 20041 25520 .hword 29803 25521 .hword 28406 25522 .hword 17598 25523 .hword 28087 25524 .section .data.refValueDefault,"aw",@progbits 25525 .align 3 25526 .set .LANCHOR204,. + 0 25527 .type refValueDefault, %object 25528 .size refValueDefault, 28 25529refValueDefault: 25530 .byte 0 25531 .byte 0 25532 .byte 0 25533 .byte 0 25534 .byte 0 25535 .byte 6 25536 .byte 10 25537 .byte 6 25538 .byte 0 25539 .byte -3 25540 .byte -7 25541 .byte -8 25542 .byte 0 25543 .byte -6 25544 .byte -13 25545 .byte -15 25546 .byte 0 25547 .byte -11 25548 .byte -20 25549 .byte -23 25550 .byte 0 25551 .byte 0 25552 .byte -26 25553 .byte -30 25554 .byte 0 25555 .byte 0 25556 .byte -32 25557 .byte -37 25558 .section .rodata.FlashDdrTunningRead.str1.1,"aMS",@progbits,1 25559.LC9: 25560 .string "sdr read ok %x ecc=%d\n" 25561.LC10: 25562 .string "sync para %d\n" 25563.LC11: 25564 .string "TOG mode Read error %x %x\n" 25565 .section .rodata.FlashEraseSLc2KBlocks.str1.1,"aMS",@progbits,1 25566.LC1: 25567 .string "FlashEraseBlocks pageAddr error %x\n" 25568 .section .rodata.FlashInit.str1.1,"aMS",@progbits,1 25569.LC24: 25570 .string "No.%d FLASH ID:%x %x %x %x %x %x\n" 25571.LC25: 25572 .string "FlashLoadPhyInfo fail %x!!\n" 25573 .section .rodata.FlashProgSlc2KPages.str1.1,"aMS",@progbits,1 25574.LC30: 25575 .string "prog error: = %x\n" 25576.LC31: 25577 .string "prog read error: = %x\n" 25578.LC32: 25579 .string "prog read REFRESH: = %x\n" 25580.LC33: 25581 .string "prog read s error: = %x %x %x\n" 25582.LC34: 25583 .string "prog read d error: = %x %x %x\n" 25584 .section .rodata.FlashReadFacBbtData.str1.1,"aMS",@progbits,1 25585.LC59: 25586 .string "BBT:" 25587 .section .rodata.FlashReadIdbDataRaw.str1.1,"aMS",@progbits,1 25588.LC15: 25589 .string "ECC:%d\n" 25590 .section .rodata.FlashReadPage.str1.1,"aMS",@progbits,1 25591.LC12: 25592 .string "read retry status %x %x %x\n" 25593 .section .rodata.FlashReadPages.str1.1,"aMS",@progbits,1 25594.LC29: 25595 .string "ReadRetry pageadd=%x ecc=%x err=%x\n" 25596 .section .rodata.FlashReadSlc2KPages.str1.1,"aMS",@progbits,1 25597.LC26: 25598 .string "Read pageadd=%x ecc=%x err=%x\n" 25599.LC27: 25600 .string "data:" 25601.LC28: 25602 .string "spare:" 25603 .section .rodata.FtlBbmMapBadBlock.str1.1,"aMS",@progbits,1 25604.LC2: 25605 .string "phyBlk = 0x%x die = %d block_in_die = 0x%x 0x%8x\n" 25606 .section .rodata.FtlBbmTblFlush.str1.1,"aMS",@progbits,1 25607.LC35: 25608 .string "FtlBbmTblFlush id=%x,page=%x,previd=%x cnt=%d\n" 25609.LC36: 25610 .string "FtlBbmTblFlush error:%x\n" 25611.LC37: 25612 .string "FtlBbmTblFlush error = %x error count = %d\n" 25613 .section .rodata.FtlCacheWriteBack.str1.1,"aMS",@progbits,1 25614.LC76: 25615 .string "Ftlwrite decrement_vpc_count %x = %d\n" 25616 .section .rodata.FtlCheckVpc.str1.1,"aMS",@progbits,1 25617.LC63: 25618 .string "FtlCheckVpc2 %x = %x %x\n" 25619.LC64: 25620 .string "free blk vpc error %x = %x %x\n" 25621.LC65: 25622 .string "error_flag %x\n" 25623 .section .rodata.FtlDumpBlockInfo.str1.1,"aMS",@progbits,1 25624.LC48: 25625 .string "...%s enter...\n" 25626.LC49: 25627 .string "superBlkID = %x vpc=%x\n" 25628.LC50: 25629 .string "flashmode = %x pagenum = %x %x\n" 25630.LC51: 25631 .string "id = %x,%x addr= %x,spare= %x %x %x %x data=%x %x\n" 25632 .section .rodata.FtlDumpSysBlock.str1.1,"aMS",@progbits,1 25633.LC84: 25634 .string "id = %x,%x addr= %x,spare= %x %x %x %x data = %x\n" 25635.LC85: 25636 .string ":" 25637 .section .rodata.FtlFreeSysBlkQueueOut.str1.1,"aMS",@progbits,1 25638.LC3: 25639 .string "FtlFreeSysBlkQueueOut free count = %d\n" 25640.LC4: 25641 .string "FtlFreeSysBlkQueueOut = %x, free count = %d, error\n" 25642 .section .rodata.FtlGcFreeTempBlock.str1.1,"aMS",@progbits,1 25643.LC74: 25644 .string "GC des block %x done\n" 25645 .section .rodata.FtlGcScanTempBlk.str1.1,"aMS",@progbits,1 25646.LC72: 25647 .string "FtlGcScanTempBlk Error ID %x %x!!!!!!! \n" 25648.LC73: 25649 .string "FtlGcScanTempBlkError ID %x %x!!!!!!!\n" 25650 .section .rodata.FtlInit.str1.1,"aMS",@progbits,1 25651.LC77: 25652 .string "FTL version: 5.0.63 20200923" 25653.LC78: 25654 .string "...%s: no bad block mapping table, format device\n" 25655.LC79: 25656 .string "...%s FtlSysBlkInit error ,format device!\n" 25657 .section .rodata.FtlLoadEctTbl.str1.1,"aMS",@progbits,1 25658.LC45: 25659 .string "no ect" 25660 .section .rodata.FtlLoadSysInfo.str1.1,"aMS",@progbits,1 25661.LC47: 25662 .string "id = %x,%x addr= %x,spare= %x %x %x %x data= %x\n" 25663 .section .rodata.FtlLowFormat.str1.1,"aMS",@progbits,1 25664.LC75: 25665 .string "too many bad block = %d %d\n" 25666 .section .rodata.FtlMapWritePage.str1.1,"aMS",@progbits,1 25667.LC42: 25668 .string "FtlMapWritePage error = %x\n" 25669.LC43: 25670 .string "FtlMapWritePage error = %x error count = %d\n" 25671 .section .rodata.FtlRecoverySuperblock.str1.1,"aMS",@progbits,1 25672.LC69: 25673 .string "RSB refresh addr %x\n" 25674.LC70: 25675 .string "spuer block %x vpn is 0\n " 25676.LC71: 25677 .string "g_recovery_ppa %x ver %x\n " 25678 .section .rodata.FtlScanAllBlock.str1.1,"aMS",@progbits,1 25679.LC52: 25680 .string "blk = %x vpc=%x mode = %x\n" 25681.LC53: 25682 .string "mlc id = %x,%x addr= %x,spare= %x %x %x %x data=%x %x\n" 25683.LC54: 25684 .string "slc id = %x,%x addr= %x,spare= %x %x %x %x data=%x %x\n" 25685 .section .rodata.FtlVendorPartRead.str1.1,"aMS",@progbits,1 25686.LC44: 25687 .string "FtlVendorPartRead refresh = %x phyAddr = %x\n" 25688 .section .rodata.FtlVpcTblFlush.str1.1,"aMS",@progbits,1 25689.LC40: 25690 .string "FtlVpcTblFlush error = %x error count = %d\n" 25691 .section .rodata.FtlWrite.str1.1,"aMS",@progbits,1 25692.LC83: 25693 .string "FtlWrite: lpa error:%x %x\n" 25694 .section .rodata.Ftl_load_ext_data.str1.1,"aMS",@progbits,1 25695.LC46: 25696 .string "slc mode" 25697 .section .rodata.Ftlscanalldata.str1.1,"aMS",@progbits,1 25698.LC66: 25699 .string "Ftlscanalldata = %x\n" 25700.LC67: 25701 .string "scan lpa = %x ppa= %x\n" 25702.LC68: 25703 .string "lba = %x,addr= %x,spare= %x %x %x %x data=%x %x\n" 25704 .section .rodata.HynixGetReadRetryDefault.str1.1,"aMS",@progbits,1 25705.LC22: 25706 .string "otp error! %d" 25707.LC23: 25708 .string "rr" 25709 .section .rodata.INSERT_DATA_LIST.str1.1,"aMS",@progbits,1 25710.LC5: 25711 .string "\n!!!!! error @ func:%s - line:%d\n" 25712.LC6: 25713 .string "!!!!! FTL sys Error !!!!!" 25714.LC7: 25715 .string "%s\n" 25716 .section .rodata.MicronReadRetrial.str1.1,"aMS",@progbits,1 25717.LC13: 25718 .string "micron RR %d row=%x,count %d,status=%d\n" 25719 .section .rodata.__func__.10027,"a",@progbits 25720 .align 3 25721 .set .LANCHOR96,. + 0 25722 .type __func__.10027, %object 25723 .size __func__.10027, 22 25724__func__.10027: 25725 .string "List_update_data_list" 25726 .section .rodata.__func__.10034,"a",@progbits 25727 .align 3 25728 .set .LANCHOR237,. + 0 25729 .type __func__.10034, %object 25730 .size __func__.10034, 20 25731__func__.10034: 25732 .string "ftl_load_l2p_region" 25733 .section .rodata.__func__.10065,"a",@progbits 25734 .align 3 25735 .set .LANCHOR97,. + 0 25736 .type __func__.10065, %object 25737 .size __func__.10065, 26 25738__func__.10065: 25739 .string "ftl_map_blk_alloc_new_blk" 25740 .section .rodata.__func__.10075,"a",@progbits 25741 .align 3 25742 .set .LANCHOR221,. + 0 25743 .type __func__.10075, %object 25744 .size __func__.10075, 15 25745__func__.10075: 25746 .string "ftl_map_blk_gc" 25747 .section .rodata.__func__.10088,"a",@progbits 25748 .align 3 25749 .set .LANCHOR222,. + 0 25750 .type __func__.10088, %object 25751 .size __func__.10088, 31 25752__func__.10088: 25753 .string "Ftl_write_map_blk_to_last_page" 25754 .section .rodata.__func__.10101,"a",@progbits 25755 .align 3 25756 .set .LANCHOR223,. + 0 25757 .type __func__.10101, %object 25758 .size __func__.10101, 16 25759__func__.10101: 25760 .string "FtlMapWritePage" 25761 .section .rodata.__func__.10121,"a",@progbits 25762 .align 3 25763 .set .LANCHOR100,. + 0 25764 .type __func__.10121, %object 25765 .size __func__.10121, 22 25766__func__.10121: 25767 .string "select_l2p_ram_region" 25768 .section .rodata.__func__.10137,"a",@progbits 25769 .align 3 25770 .set .LANCHOR236,. + 0 25771 .type __func__.10137, %object 25772 .size __func__.10137, 9 25773__func__.10137: 25774 .string "log2phys" 25775 .section .rodata.__func__.10199,"a",@progbits 25776 .align 3 25777 .set .LANCHOR219,. + 0 25778 .type __func__.10199, %object 25779 .size __func__.10199, 15 25780__func__.10199: 25781 .string "FtlVpcTblFlush" 25782 .section .rodata.__func__.10218,"a",@progbits 25783 .align 3 25784 .set .LANCHOR229,. + 0 25785 .type __func__.10218, %object 25786 .size __func__.10218, 14 25787__func__.10218: 25788 .string "FtlScanSysBlk" 25789 .section .rodata.__func__.10273,"a",@progbits 25790 .align 3 25791 .set .LANCHOR230,. + 0 25792 .type __func__.10273, %object 25793 .size __func__.10273, 15 25794__func__.10273: 25795 .string "FtlLoadSysInfo" 25796 .section .rodata.__func__.10284,"a",@progbits 25797 .align 3 25798 .set .LANCHOR238,. + 0 25799 .type __func__.10284, %object 25800 .size __func__.10284, 12 25801__func__.10284: 25802 .string "FtlCheckVpc" 25803 .section .rodata.__func__.10316,"a",@progbits 25804 .align 3 25805 .set .LANCHOR233,. + 0 25806 .type __func__.10316, %object 25807 .size __func__.10316, 17 25808__func__.10316: 25809 .string "FtlDumpBlockInfo" 25810 .section .rodata.__func__.10335,"a",@progbits 25811 .align 3 25812 .set .LANCHOR234,. + 0 25813 .type __func__.10335, %object 25814 .size __func__.10335, 16 25815__func__.10335: 25816 .string "FtlScanAllBlock" 25817 .section .rodata.__func__.10440,"a",@progbits 25818 .align 3 25819 .set .LANCHOR239,. + 0 25820 .type __func__.10440, %object 25821 .size __func__.10440, 16 25822__func__.10440: 25823 .string "FtlReUsePrevPpa" 25824 .section .rodata.__func__.10473,"a",@progbits 25825 .align 3 25826 .set .LANCHOR240,. + 0 25827 .type __func__.10473, %object 25828 .size __func__.10473, 22 25829__func__.10473: 25830 .string "FtlRecoverySuperblock" 25831 .section .rodata.__func__.10527,"a",@progbits 25832 .align 3 25833 .set .LANCHOR103,. + 0 25834 .type __func__.10527, %object 25835 .size __func__.10527, 16 25836__func__.10527: 25837 .string "make_superblock" 25838 .section .rodata.__func__.10547,"a",@progbits 25839 .align 3 25840 .set .LANCHOR143,. + 0 25841 .type __func__.10547, %object 25842 .size __func__.10547, 18 25843__func__.10547: 25844 .string "SupperBlkListInit" 25845 .section .rodata.__func__.10593,"a",@progbits 25846 .align 3 25847 .set .LANCHOR235,. + 0 25848 .type __func__.10593, %object 25849 .size __func__.10593, 17 25850__func__.10593: 25851 .string "ftl_scan_all_ppa" 25852 .section .rodata.__func__.10638,"a",@progbits 25853 .align 3 25854 .set .LANCHOR212,. + 0 25855 .type __func__.10638, %object 25856 .size __func__.10638, 25 25857__func__.10638: 25858 .string "allocate_data_superblock" 25859 .section .rodata.__func__.10652,"a",@progbits 25860 .align 3 25861 .set .LANCHOR228,. + 0 25862 .type __func__.10652, %object 25863 .size __func__.10652, 29 25864__func__.10652: 25865 .string "allocate_new_data_superblock" 25866 .section .rodata.__func__.10658,"a",@progbits 25867 .align 3 25868 .set .LANCHOR217,. + 0 25869 .type __func__.10658, %object 25870 .size __func__.10658, 19 25871__func__.10658: 25872 .string "get_new_active_ppa" 25873 .section .rodata.__func__.10669,"a",@progbits 25874 .align 3 25875 .set .LANCHOR215,. + 0 25876 .type __func__.10669, %object 25877 .size __func__.10669, 16 25878__func__.10669: 25879 .string "update_vpc_list" 25880 .section .rodata.__func__.10674,"a",@progbits 25881 .align 3 25882 .set .LANCHOR216,. + 0 25883 .type __func__.10674, %object 25884 .size __func__.10674, 20 25885__func__.10674: 25886 .string "decrement_vpc_count" 25887 .section .rodata.__func__.10742,"a",@progbits 25888 .align 3 25889 .set .LANCHOR246,. + 0 25890 .type __func__.10742, %object 25891 .size __func__.10742, 19 25892__func__.10742: 25893 .string "FtlGcFreeTempBlock" 25894 .section .rodata.__func__.10843,"a",@progbits 25895 .align 3 25896 .set .LANCHOR251,. + 0 25897 .type __func__.10843, %object 25898 .size __func__.10843, 10 25899__func__.10843: 25900 .string "ftl_do_gc" 25901 .section .rodata.__func__.9622,"a",@progbits 25902 .align 3 25903 .set .LANCHOR255,. + 0 25904 .type __func__.9622, %object 25905 .size __func__.9622, 8 25906__func__.9622: 25907 .string "FtlInit" 25908 .section .rodata.__func__.9726,"a",@progbits 25909 .align 3 25910 .set .LANCHOR258,. + 0 25911 .type __func__.9726, %object 25912 .size __func__.9726, 9 25913__func__.9726: 25914 .string "FtlWrite" 25915 .section .rodata.__func__.9816,"a",@progbits 25916 .align 3 25917 .set .LANCHOR127,. + 0 25918 .type __func__.9816, %object 25919 .size __func__.9816, 14 25920__func__.9816: 25921 .string "FtlBbt2Bitmap" 25922 .section .rodata.__func__.9862,"a",@progbits 25923 .align 3 25924 .set .LANCHOR220,. + 0 25925 .type __func__.9862, %object 25926 .size __func__.9862, 11 25927__func__.9862: 25928 .string "FtlLoadBbt" 25929 .section .rodata.__func__.9955,"a",@progbits 25930 .align 3 25931 .set .LANCHOR91,. + 0 25932 .type __func__.9955, %object 25933 .size __func__.9955, 17 25934__func__.9955: 25935 .string "INSERT_FREE_LIST" 25936 .section .rodata.__func__.9959,"a",@progbits 25937 .align 3 25938 .set .LANCHOR88,. + 0 25939 .type __func__.9959, %object 25940 .size __func__.9959, 17 25941__func__.9959: 25942 .string "INSERT_DATA_LIST" 25943 .section .rodata.__func__.9997,"a",@progbits 25944 .align 3 25945 .set .LANCHOR92,. + 0 25946 .type __func__.9997, %object 25947 .size __func__.9997, 17 25948__func__.9997: 25949 .string "List_remove_node" 25950 .section .rodata.decrement_vpc_count.str1.1,"aMS",@progbits,1 25951.LC38: 25952 .string "decrement_vpc_count %x = %d\n" 25953.LC39: 25954 .string "decrement_vpc_count %x = %d in free list\n" 25955 .section .rodata.dump_map_info.str1.1,"aMS",@progbits,1 25956.LC86: 25957 .string "phyBlk = %x,addr= %x,spare= %x %x %x %x data=%x %x\n" 25958.LC87: 25959 .string "Mblk:" 25960.LC88: 25961 .string "L2P:" 25962.LC89: 25963 .string "L2PC:" 25964 .section .rodata.ftl_fix_nand_power_lost_error.str1.1,"aMS",@progbits,1 25965.LC81: 25966 .string "fix power lost blk = %x vpc=%x\n" 25967.LC82: 25968 .string "erase power lost blk = %x vpc=%x\n" 25969 .section .rodata.ftl_map_blk_alloc_new_blk.str1.1,"aMS",@progbits,1 25970.LC8: 25971 .string "FtlFreeSysBlkQueueOut = %x, free count = %d\n" 25972 .section .rodata.ftl_map_blk_gc.str1.1,"aMS",@progbits,1 25973.LC41: 25974 .string "page map lost: %x %x\n" 25975 .section .rodata.ftl_scan_all_ppa.str1.1,"aMS",@progbits,1 25976.LC55: 25977 .string "ftl_scan_all_ppa blk %x page %x flag: %x\n" 25978.LC56: 25979 .string "ftl_scan_all_ppa blk %x page %x flag: %x ............... is bad block\n" 25980.LC57: 25981 .string "addr= %x, status= %d,spare= %x %x %x %x data=%x %x\n" 25982.LC58: 25983 .string "%s finished\n" 25984 .section .rodata.idb_write_data.str1.1,"aMS",@progbits,1 25985.LC16: 25986 .string "1 write_idblock fix data %x %x %x\n" 25987.LC17: 25988 .string "write_idblock fail! %x %x %x %x\n" 25989.LC18: 25990 .string "write_idblock fail! %x\n" 25991 .section .rodata.log2phys.str1.1,"aMS",@progbits,1 25992.LC60: 25993 .string "region_id = %x phyAddr = %x\n" 25994.LC61: 25995 .string "map_ppn:" 25996.LC62: 25997 .string "load_l2p_region refresh = %x phyAddr = %x\n" 25998 .section .rodata.rk_ftl_init.str1.1,"aMS",@progbits,1 25999.LC80: 26000 .string "FtlInit %x\n" 26001 .section .rodata.rknand_print_hex.str1.1,"aMS",@progbits,1 26002.LC19: 26003 .string "%s 0x%x:" 26004.LC20: 26005 .string "%x " 26006.LC21: 26007 .string "" 26008 .section .rodata.samsung_14nm_mlc_rr,"a",@progbits 26009 .align 3 26010 .set .LANCHOR151,. + 0 26011 .type samsung_14nm_mlc_rr, %object 26012 .size samsung_14nm_mlc_rr, 104 26013samsung_14nm_mlc_rr: 26014 .byte 0 26015 .byte 0 26016 .byte 0 26017 .byte 0 26018 .byte -4 26019 .byte 3 26020 .byte -4 26021 .byte -6 26022 .byte 6 26023 .byte 0 26024 .byte 6 26025 .byte -10 26026 .byte -10 26027 .byte 4 26028 .byte -10 26029 .byte 16 26030 .byte 12 26031 .byte -4 26032 .byte 12 26033 .byte 8 26034 .byte -16 26035 .byte 10 26036 .byte -16 26037 .byte 24 26038 .byte 18 26039 .byte -14 26040 .byte 18 26041 .byte -4 26042 .byte -22 26043 .byte -16 26044 .byte -22 26045 .byte -8 26046 .byte 24 26047 .byte -9 26048 .byte 24 26049 .byte 8 26050 .byte -28 26051 .byte -4 26052 .byte -28 26053 .byte 16 26054 .byte 30 26055 .byte 10 26056 .byte 30 26057 .byte 10 26058 .byte -34 26059 .byte 6 26060 .byte -34 26061 .byte 0 26062 .byte 36 26063 .byte -8 26064 .byte 36 26065 .byte -8 26066 .byte -40 26067 .byte -2 26068 .byte -40 26069 .byte -20 26070 .byte -46 26071 .byte -4 26072 .byte -46 26073 .byte -30 26074 .byte 3 26075 .byte 0 26076 .byte 3 26077 .byte -3 26078 .byte -2 26079 .byte -4 26080 .byte -2 26081 .byte -6 26082 .byte -4 26083 .byte -4 26084 .byte -4 26085 .byte -10 26086 .byte -6 26087 .byte -8 26088 .byte -6 26089 .byte -14 26090 .byte -9 26091 .byte -8 26092 .byte -9 26093 .byte -18 26094 .byte -52 26095 .byte 22 26096 .byte -52 26097 .byte 10 26098 .byte 42 26099 .byte 4 26100 .byte 42 26101 .byte 4 26102 .byte 48 26103 .byte -9 26104 .byte 48 26105 .byte 4 26106 .byte -58 26107 .byte 12 26108 .byte -58 26109 .byte 0 26110 .byte -64 26111 .byte -24 26112 .byte -64 26113 .byte -6 26114 .byte 9 26115 .byte 18 26116 .byte 9 26117 .byte 8 26118 .section .rodata.samsung_14nm_slc_rr,"a",@progbits 26119 .align 3 26120 .set .LANCHOR150,. + 0 26121 .type samsung_14nm_slc_rr, %object 26122 .size samsung_14nm_slc_rr, 26 26123samsung_14nm_slc_rr: 26124 .byte 0 26125 .byte 10 26126 .byte -10 26127 .byte 20 26128 .byte -20 26129 .byte 30 26130 .byte -30 26131 .byte 40 26132 .byte -40 26133 .byte 50 26134 .byte -50 26135 .byte 60 26136 .byte -60 26137 .byte -70 26138 .byte -80 26139 .byte -90 26140 .byte -100 26141 .byte -110 26142 .byte -120 26143 .byte -9 26144 .byte 70 26145 .byte 80 26146 .byte 90 26147 .byte -125 26148 .byte -115 26149 .byte 100 26150 .section .rodata.samsung_read_retrial.str1.1,"aMS",@progbits,1 26151.LC14: 26152 .string "samsung RR %d row=%x,count %d,status=%d\n" 26153 .hidden free 26154