1/* 2 * Copyright (c) 2018 Fuzhou Rockchip Electronics Co., Ltd 3 * 4 * SPDX-License-Identifier: GPL-2.0 5 * date: 2019-02-20 6 */ 7 .arch armv8-a+nosimd 8 .file "rk_sftl.c" 9 .section .text.l2p_addr_tran.isra.0,"ax",@progbits 10 .align 2 11 .type l2p_addr_tran.isra.0, %function 12l2p_addr_tran.isra.0: 13 adrp x4, .LANCHOR0 14 add x4, x4, :lo12:.LANCHOR0 15 ldrh w3, [x4, 8] 16 ldrh w6, [x4, 10] 17 ldrh w4, [x4, 14] 18 cmp w4, 4 19 bne .L2 20 lsr w3, w3, 1 21 ubfiz w6, w6, 1, 15 22.L2: 23 lsr w5, w0, 10 24 and w0, w0, 1023 25 and w4, w5, 65535 26 and w5, w5, 65535 27 udiv w4, w4, w3 28 msub w3, w3, w4, w5 29 madd w3, w3, w6, w0 30 mov w0, 0 31 str w3, [x1] 32 str w4, [x2] 33 ret 34 .size l2p_addr_tran.isra.0, .-l2p_addr_tran.isra.0 35 .section .text.ftl_set_blk_mode.part.6,"ax",@progbits 36 .align 2 37 .type ftl_set_blk_mode.part.6, %function 38ftl_set_blk_mode.part.6: 39 and w0, w0, 65535 40 adrp x2, .LANCHOR1 41 ubfx x1, x0, 5, 11 42 ldr x3, [x2, #:lo12:.LANCHOR1] 43 lsl x1, x1, 2 44 mov w2, 1 45 lsl w2, w2, w0 46 ldr w0, [x3, x1] 47 orr w0, w0, w2 48 str w0, [x3, x1] 49 ret 50 .size ftl_set_blk_mode.part.6, .-ftl_set_blk_mode.part.6 51 .section .text.Ftl_log2,"ax",@progbits 52 .align 2 53 .global Ftl_log2 54 .type Ftl_log2, %function 55Ftl_log2: 56 mov w2, 1 57 mov w1, 0 58.L5: 59 cmp w2, w0 60 bls .L6 61 sub w0, w1, #1 62 ret 63.L6: 64 add w1, w1, 1 65 lsl w2, w2, 1 66 and w1, w1, 65535 67 b .L5 68 .size Ftl_log2, .-Ftl_log2 69 .section .text.FtlPrintInfo,"ax",@progbits 70 .align 2 71 .global FtlPrintInfo 72 .type FtlPrintInfo, %function 73FtlPrintInfo: 74 ret 75 .size FtlPrintInfo, .-FtlPrintInfo 76 .section .text.FtlSysBlkNumInit,"ax",@progbits 77 .align 2 78 .global FtlSysBlkNumInit 79 .type FtlSysBlkNumInit, %function 80FtlSysBlkNumInit: 81 and w0, w0, 65535 82 mov w1, 24 83 cmp w0, 24 84 adrp x2, .LANCHOR4 85 csel w0, w0, w1, cs 86 adrp x1, .LANCHOR2 87 and w0, w0, 65535 88 str w0, [x1, #:lo12:.LANCHOR2] 89 adrp x1, .LANCHOR3 90 ldrh w1, [x1, #:lo12:.LANCHOR3] 91 mul w1, w1, w0 92 str w1, [x2, #:lo12:.LANCHOR4] 93 adrp x2, .LANCHOR6 94 ldrh w2, [x2, #:lo12:.LANCHOR6] 95 sub w0, w2, w0 96 adrp x2, .LANCHOR5 97 strh w0, [x2, #:lo12:.LANCHOR5] 98 adrp x0, .LANCHOR8 99 ldr w0, [x0, #:lo12:.LANCHOR8] 100 sub w1, w0, w1 101 adrp x0, .LANCHOR7 102 str w1, [x0, #:lo12:.LANCHOR7] 103 mov w0, 0 104 ret 105 .size FtlSysBlkNumInit, .-FtlSysBlkNumInit 106 .section .text.FtlConstantsInit,"ax",@progbits 107 .align 2 108 .global FtlConstantsInit 109 .type FtlConstantsInit, %function 110FtlConstantsInit: 111 stp x29, x30, [sp, -16]! 112 mov x5, x0 113 adrp x1, .LANCHOR11 114 adrp x6, .LANCHOR12 115 add x29, sp, 0 116 ldrh w3, [x0] 117 adrp x0, .LANCHOR9 118 ldrh w4, [x5, 2] 119 strh w3, [x0, #:lo12:.LANCHOR9] 120 adrp x0, .LANCHOR10 121 ldrh w7, [x5, 14] 122 strh w4, [x0, #:lo12:.LANCHOR10] 123 ldrh w0, [x5, 4] 124 cmp w7, 4 125 strh w0, [x1, #:lo12:.LANCHOR11] 126 adrp x1, .LANCHOR6 127 ldrh w2, [x5, 6] 128 strh w2, [x1, #:lo12:.LANCHOR6] 129 strh w7, [x6, #:lo12:.LANCHOR12] 130 bne .L10 131 lsr w2, w2, 1 132 strh w2, [x1, #:lo12:.LANCHOR6] 133 mov w2, 8 134 strh w2, [x6, #:lo12:.LANCHOR12] 135.L10: 136 adrp x7, .LANCHOR13 137 add x7, x7, :lo12:.LANCHOR13 138 mov x2, 0 139.L11: 140 strb w2, [x2, x7] 141 add x2, x2, 1 142 cmp x2, 32 143 bne .L11 144 adrp x2, .LANCHOR14 145 mov w7, 5 146 cmp w3, 1 147 strh w7, [x2, #:lo12:.LANCHOR14] 148 adrp x7, .LANCHOR15 149 strh wzr, [x7, #:lo12:.LANCHOR15] 150 bne .L12 151 strh w3, [x2, #:lo12:.LANCHOR14] 152.L12: 153 adrp x2, .LANCHOR16 154 mov w3, 640 155 mul w4, w4, w0 156 strh w3, [x2, #:lo12:.LANCHOR16] 157 adrp x2, .LANCHOR3 158 ldrh w3, [x1, #:lo12:.LANCHOR6] 159 and w4, w4, 65535 160 adrp x1, .LANCHOR17 161 strh w4, [x2, #:lo12:.LANCHOR3] 162 mul w0, w0, w3 163 and w0, w0, 65535 164 strh w0, [x1, #:lo12:.LANCHOR17] 165 bl Ftl_log2 166 ldrh w7, [x5, 12] 167 adrp x1, .LANCHOR18 168 ldrh w6, [x6, #:lo12:.LANCHOR12] 169 adrp x8, .LANCHOR19 170 strh w0, [x1, #:lo12:.LANCHOR18] 171 adrp x0, .LANCHOR20 172 mul w1, w4, w7 173 strh w7, [x8, #:lo12:.LANCHOR19] 174 strh w7, [x0, #:lo12:.LANCHOR20] 175 adrp x0, .LANCHOR21 176 strh w1, [x0, #:lo12:.LANCHOR21] 177 mov w0, w6 178 bl Ftl_log2 179 and w10, w0, 65535 180 adrp x2, .LANCHOR22 181 ubfiz w1, w6, 9, 7 182 strh w0, [x2, #:lo12:.LANCHOR22] 183 adrp x0, .LANCHOR23 184 strh w1, [x0, #:lo12:.LANCHOR23] 185 adrp x0, .LANCHOR24 186 ubfx w1, w1, 8, 8 187 strh w1, [x0, #:lo12:.LANCHOR24] 188 adrp x0, .LANCHOR25 189 ldrh w1, [x5, 20] 190 adrp x5, .LANCHOR27 191 strh w1, [x0, #:lo12:.LANCHOR25] 192 mul w0, w4, w3 193 adrp x1, .LANCHOR8 194 str w0, [x1, #:lo12:.LANCHOR8] 195 adrp x1, .LANCHOR26 196 mul w0, w0, w6 197 mul w6, w6, w7 198 mul w0, w0, w7 199 mov x7, x2 200 asr w0, w0, 11 201 str w0, [x1, #:lo12:.LANCHOR26] 202 mov w0, 5120 203 sdiv w0, w0, w6 204 and w0, w0, 65535 205 cmp w0, 4 206 bls .L13 207.L19: 208 strh w0, [x5, #:lo12:.LANCHOR27] 209 adrp x1, .LANCHOR28 210 mov w0, 640 211 lsl w3, w3, 6 212 asr w0, w0, w10 213 add w0, w0, 2 214 strh w0, [x1, #:lo12:.LANCHOR28] 215 add w0, w10, 9 216 adrp x1, .LANCHOR30 217 cmp w4, 1 218 asr w3, w3, w0 219 adrp x0, .LANCHOR29 220 adrp x6, .LANCHOR2 221 strh w3, [x0, #:lo12:.LANCHOR29] 222 and w3, w3, 65535 223 mul w0, w3, w4 224 add w3, w3, 8 225 str w0, [x1, #:lo12:.LANCHOR30] 226 ldrh w0, [x5, #:lo12:.LANCHOR27] 227 udiv w0, w0, w4 228 mov x4, x1 229 add w3, w0, w3 230 beq .L15 231.L20: 232 str w3, [x6, #:lo12:.LANCHOR2] 233 ldrh w0, [x6, #:lo12:.LANCHOR2] 234 bl FtlSysBlkNumInit 235 ldr w1, [x6, #:lo12:.LANCHOR2] 236 adrp x0, .LANCHOR31 237 ldp x29, x30, [sp], 16 238 str w1, [x0, #:lo12:.LANCHOR31] 239 adrp x0, .LANCHOR7 240 ldrh w1, [x8, #:lo12:.LANCHOR19] 241 ldr w0, [x0, #:lo12:.LANCHOR7] 242 lsl w0, w0, 2 243 mul w0, w0, w1 244 ldrh w1, [x7, #:lo12:.LANCHOR22] 245 add w1, w1, 9 246 lsr w0, w0, w1 247 adrp x1, .LANCHOR32 248 add w0, w0, 2 249 strh w0, [x1, #:lo12:.LANCHOR32] 250 adrp x0, .LANCHOR33 251 mov w1, 32 252 strh w1, [x0, #:lo12:.LANCHOR33] 253 adrp x0, .LANCHOR34 254 str wzr, [x0, #:lo12:.LANCHOR34] 255 ldrh w0, [x5, #:lo12:.LANCHOR27] 256 add w0, w0, 3 257 strh w0, [x5, #:lo12:.LANCHOR27] 258 ldr w0, [x4, #:lo12:.LANCHOR30] 259 add w0, w0, 3 260 str w0, [x4, #:lo12:.LANCHOR30] 261 mov w0, 0 262 ret 263.L13: 264 mov w0, 4 265 b .L19 266.L15: 267 add w3, w3, 4 268 b .L20 269 .size FtlConstantsInit, .-FtlConstantsInit 270 .section .text.IsBlkInVendorPart,"ax",@progbits 271 .align 2 272 .global IsBlkInVendorPart 273 .type IsBlkInVendorPart, %function 274IsBlkInVendorPart: 275 adrp x1, .LANCHOR35 276 and w0, w0, 65535 277 ldrh w1, [x1, #:lo12:.LANCHOR35] 278 cbz w1, .L25 279 adrp x1, .LANCHOR27 280 ldrh w2, [x1, #:lo12:.LANCHOR27] 281 adrp x1, .LANCHOR36 282 ldr x3, [x1, #:lo12:.LANCHOR36] 283 mov x1, 0 284.L23: 285 cmp w2, w1, uxth 286 bhi .L24 287.L25: 288 mov w0, 0 289 ret 290.L24: 291 add x1, x1, 1 292 add x4, x3, x1, lsl 1 293 ldrh w4, [x4, -2] 294 cmp w4, w0 295 bne .L23 296 mov w0, 1 297 ret 298 .size IsBlkInVendorPart, .-IsBlkInVendorPart 299 .section .text.FtlCacheWriteBack,"ax",@progbits 300 .align 2 301 .global FtlCacheWriteBack 302 .type FtlCacheWriteBack, %function 303FtlCacheWriteBack: 304 mov w0, 0 305 ret 306 .size FtlCacheWriteBack, .-FtlCacheWriteBack 307 .section .text.sftl_get_density,"ax",@progbits 308 .align 2 309 .global sftl_get_density 310 .type sftl_get_density, %function 311sftl_get_density: 312 adrp x0, .LANCHOR34 313 ldr w0, [x0, #:lo12:.LANCHOR34] 314 ret 315 .size sftl_get_density, .-sftl_get_density 316 .section .text.FtlBbmMapBadBlock,"ax",@progbits 317 .align 2 318 .global FtlBbmMapBadBlock 319 .type FtlBbmMapBadBlock, %function 320FtlBbmMapBadBlock: 321 stp x29, x30, [sp, -32]! 322 and w1, w0, 65535 323 adrp x0, .LANCHOR17 324 mov w4, 1 325 add x29, sp, 0 326 ldrh w0, [x0, #:lo12:.LANCHOR17] 327 str x19, [sp, 16] 328 adrp x19, .LANCHOR37 329 add x19, x19, :lo12:.LANCHOR37 330 udiv w3, w1, w0 331 and w2, w3, 65535 332 msub w3, w3, w0, w1 333 add x0, x19, x2, uxth 3 334 and w3, w3, 65535 335 ldr x0, [x0, 32] 336 ubfx x5, x3, 5, 11 337 lsl x5, x5, 2 338 lsl w4, w4, w3 339 ldr w6, [x0, x5] 340 orr w4, w4, w6 341 str w4, [x0, x5] 342 adrp x0, .LC0 343 add x0, x0, :lo12:.LC0 344 bl printf 345 ldrh w0, [x19, 6] 346 add w0, w0, 1 347 strh w0, [x19, 6] 348 mov w0, 0 349 ldr x19, [sp, 16] 350 ldp x29, x30, [sp], 32 351 ret 352 .size FtlBbmMapBadBlock, .-FtlBbmMapBadBlock 353 .section .text.FtlBbmIsBadBlock,"ax",@progbits 354 .align 2 355 .global FtlBbmIsBadBlock 356 .type FtlBbmIsBadBlock, %function 357FtlBbmIsBadBlock: 358 adrp x1, .LANCHOR17 359 and w0, w0, 65535 360 ldrh w1, [x1, #:lo12:.LANCHOR17] 361 udiv w2, w0, w1 362 msub w0, w2, w1, w0 363 adrp x1, .LANCHOR37 364 add x1, x1, :lo12:.LANCHOR37 365 add x2, x1, x2, uxth 3 366 and w0, w0, 65535 367 ubfx x3, x0, 5, 11 368 ldr x1, [x2, 32] 369 ldr w1, [x1, x3, lsl 2] 370 lsr w0, w1, w0 371 and w0, w0, 1 372 ret 373 .size FtlBbmIsBadBlock, .-FtlBbmIsBadBlock 374 .section .text.FtlBbtInfoPrint,"ax",@progbits 375 .align 2 376 .global FtlBbtInfoPrint 377 .type FtlBbtInfoPrint, %function 378FtlBbtInfoPrint: 379 ret 380 .size FtlBbtInfoPrint, .-FtlBbtInfoPrint 381 .section .text.V2P_block,"ax",@progbits 382 .align 2 383 .global V2P_block 384 .type V2P_block, %function 385V2P_block: 386 adrp x2, .LANCHOR11 387 and w0, w0, 65535 388 adrp x4, .LANCHOR17 389 and w1, w1, 65535 390 ldrh w2, [x2, #:lo12:.LANCHOR11] 391 ldrh w4, [x4, #:lo12:.LANCHOR17] 392 udiv w3, w0, w2 393 msub w0, w3, w2, w0 394 madd w2, w2, w1, w0 395 madd w0, w3, w4, w2 396 ret 397 .size V2P_block, .-V2P_block 398 .section .text.P2V_plane,"ax",@progbits 399 .align 2 400 .global P2V_plane 401 .type P2V_plane, %function 402P2V_plane: 403 and w3, w0, 65535 404 adrp x0, .LANCHOR11 405 ldrh w1, [x0, #:lo12:.LANCHOR11] 406 adrp x0, .LANCHOR17 407 ldrh w2, [x0, #:lo12:.LANCHOR17] 408 udiv w0, w3, w1 409 udiv w2, w3, w2 410 msub w0, w0, w1, w3 411 madd w0, w1, w2, w0 412 ret 413 .size P2V_plane, .-P2V_plane 414 .section .text.P2V_block_in_plane,"ax",@progbits 415 .align 2 416 .global P2V_block_in_plane 417 .type P2V_block_in_plane, %function 418P2V_block_in_plane: 419 and w2, w0, 65535 420 adrp x0, .LANCHOR17 421 ldrh w1, [x0, #:lo12:.LANCHOR17] 422 udiv w0, w2, w1 423 msub w0, w0, w1, w2 424 adrp x1, .LANCHOR11 425 ldrh w1, [x1, #:lo12:.LANCHOR11] 426 and w0, w0, 65535 427 udiv w0, w0, w1 428 ret 429 .size P2V_block_in_plane, .-P2V_block_in_plane 430 .section .text.ftl_cmp_data_ver,"ax",@progbits 431 .align 2 432 .global ftl_cmp_data_ver 433 .type ftl_cmp_data_ver, %function 434ftl_cmp_data_ver: 435 cmp w0, w1 436 mov w2, -2147483648 437 bls .L37 438 sub w1, w0, w1 439 cmp w1, w2 440 cset w0, ls 441 ret 442.L37: 443 sub w1, w1, w0 444 cmp w1, w2 445 cset w0, hi 446 ret 447 .size ftl_cmp_data_ver, .-ftl_cmp_data_ver 448 .section .text.FtlFreeSysBlkQueueEmpty,"ax",@progbits 449 .align 2 450 .global FtlFreeSysBlkQueueEmpty 451 .type FtlFreeSysBlkQueueEmpty, %function 452FtlFreeSysBlkQueueEmpty: 453 adrp x0, .LANCHOR38+6 454 ldrh w0, [x0, #:lo12:.LANCHOR38+6] 455 cmp w0, 0 456 cset w0, eq 457 ret 458 .size FtlFreeSysBlkQueueEmpty, .-FtlFreeSysBlkQueueEmpty 459 .section .text.FtlFreeSysBlkQueueFull,"ax",@progbits 460 .align 2 461 .global FtlFreeSysBlkQueueFull 462 .type FtlFreeSysBlkQueueFull, %function 463FtlFreeSysBlkQueueFull: 464 adrp x0, .LANCHOR38+6 465 ldrh w0, [x0, #:lo12:.LANCHOR38+6] 466 cmp w0, 1024 467 cset w0, eq 468 ret 469 .size FtlFreeSysBlkQueueFull, .-FtlFreeSysBlkQueueFull 470 .section .text.FtlFreeSysBLkSort,"ax",@progbits 471 .align 2 472 .global FtlFreeSysBLkSort 473 .type FtlFreeSysBLkSort, %function 474FtlFreeSysBLkSort: 475 adrp x0, .LANCHOR38 476 add x1, x0, :lo12:.LANCHOR38 477 ldrh w2, [x1, 6] 478 cbz w2, .L41 479 adrp x2, .LANCHOR39+28 480 ldrh w3, [x1, 2] 481 mov w6, 0 482 mov w4, 0 483 ldrh w5, [x2, #:lo12:.LANCHOR39+28] 484 ldrh w2, [x1, 4] 485 and w5, w5, 31 486.L43: 487 cmp w5, w4 488 bgt .L44 489 cbz w6, .L41 490 add x0, x0, :lo12:.LANCHOR38 491 strh w3, [x0, 2] 492 strh w2, [x0, 4] 493.L41: 494 ret 495.L44: 496 add x6, x1, x3, sxtw 1 497 add w4, w4, 1 498 add w3, w3, 1 499 and w4, w4, 65535 500 and w3, w3, 1023 501 ldrh w7, [x6, 8] 502 add x6, x1, x2, sxtw 1 503 strh w7, [x6, 8] 504 mov w6, 1 505 add w2, w2, w6 506 and w2, w2, 1023 507 b .L43 508 .size FtlFreeSysBLkSort, .-FtlFreeSysBLkSort 509 .section .text.IsInFreeQueue,"ax",@progbits 510 .align 2 511 .global IsInFreeQueue 512 .type IsInFreeQueue, %function 513IsInFreeQueue: 514 adrp x1, .LANCHOR38 515 add x1, x1, :lo12:.LANCHOR38 516 and w0, w0, 65535 517 ldrh w4, [x1, 6] 518 cmp w4, 1024 519 beq .L54 520 ldrh w5, [x1, 2] 521 mov w3, 0 522.L52: 523 cmp w3, w4 524 bcc .L53 525.L54: 526 mov w0, 0 527 ret 528.L53: 529 add w2, w3, w5 530 ubfiz x2, x2, 1, 10 531 add x2, x1, x2 532 ldrh w2, [x2, 8] 533 cmp w2, w0 534 beq .L55 535 add w3, w3, 1 536 b .L52 537.L55: 538 mov w0, 1 539 ret 540 .size IsInFreeQueue, .-IsInFreeQueue 541 .section .text.insert_data_list,"ax",@progbits 542 .align 2 543 .global insert_data_list 544 .type insert_data_list, %function 545insert_data_list: 546 adrp x1, .LANCHOR5 547 and w0, w0, 65535 548 ldrh w12, [x1, #:lo12:.LANCHOR5] 549 cmp w12, w0 550 bls .L58 551 adrp x1, .LANCHOR40 552 mov w8, 6 553 ldr x4, [x1, #:lo12:.LANCHOR40] 554 umull x10, w0, w8 555 mov w1, -1 556 add x3, x4, x10 557 strh w1, [x3, 2] 558 strh w1, [x4, x10] 559 adrp x1, .LANCHOR41 560 mov x15, x1 561 ldr x7, [x1, #:lo12:.LANCHOR41] 562 cbnz x7, .L59 563 str x3, [x1, #:lo12:.LANCHOR41] 564.L58: 565 mov w0, 0 566 ret 567.L59: 568 adrp x1, .LANCHOR42 569 mov x2, -6148914691236517206 570 movk x2, 0xaaab, lsl 0 571 mov w6, 0 572 ldr x13, [x1, #:lo12:.LANCHOR42] 573 ubfiz x1, x0, 1, 16 574 mov w16, 65535 575 ldrh w5, [x13, x1] 576 ldrh w1, [x3, 4] 577 cmp w1, 0 578 mul w5, w5, w1 579 sub x1, x7, x4 580 asr x1, x1, 1 581 csinv w5, w5, wzr, ne 582 mul x1, x1, x2 583 mov x2, x7 584 and w1, w1, 65535 585.L64: 586 add w6, w6, 1 587 and w6, w6, 65535 588 cmp w12, w6 589 bcc .L58 590 cmp w1, w0 591 beq .L58 592 ldrh w14, [x2, 4] 593 cbz w14, .L62 594 ubfiz x11, x1, 1, 16 595 ldrh w11, [x13, x11] 596 mul w11, w11, w14 597 cmp w5, w11 598 bls .L62 599 ldrh w11, [x2] 600 cmp w11, w16 601 bne .L63 602 strh w1, [x3, 2] 603 strh w0, [x2] 604 adrp x0, .LANCHOR43 605 str x3, [x0, #:lo12:.LANCHOR43] 606 b .L58 607.L63: 608 umaddl x2, w11, w8, x4 609 mov w1, w11 610 b .L64 611.L62: 612 strh w1, [x4, x10] 613 cmp x2, x7 614 ldrh w1, [x2, 2] 615 strh w1, [x3, 2] 616 bne .L65 617 strh w0, [x2, 2] 618 str x3, [x15, #:lo12:.LANCHOR41] 619 b .L58 620.L65: 621 ldrh w1, [x2, 2] 622 mov w3, 6 623 umull x1, w1, w3 624 strh w0, [x4, x1] 625 strh w0, [x2, 2] 626 b .L58 627 .size insert_data_list, .-insert_data_list 628 .section .text.INSERT_DATA_LIST,"ax",@progbits 629 .align 2 630 .global INSERT_DATA_LIST 631 .type INSERT_DATA_LIST, %function 632INSERT_DATA_LIST: 633 stp x29, x30, [sp, -16]! 634 add x29, sp, 0 635 bl insert_data_list 636 adrp x1, .LANCHOR44 637 ldrh w0, [x1, #:lo12:.LANCHOR44] 638 add w0, w0, 1 639 and w0, w0, 65535 640 strh w0, [x1, #:lo12:.LANCHOR44] 641 adrp x1, .LANCHOR5 642 ldrh w1, [x1, #:lo12:.LANCHOR5] 643 cmp w1, w0 644 bcs .L70 645 ldp x29, x30, [sp], 16 646 mov w2, 214 647 adrp x1, .LANCHOR45 648 adrp x0, .LC1 649 add x1, x1, :lo12:.LANCHOR45 650 add x0, x0, :lo12:.LC1 651 b printf 652.L70: 653 ldp x29, x30, [sp], 16 654 ret 655 .size INSERT_DATA_LIST, .-INSERT_DATA_LIST 656 .section .text.insert_free_list,"ax",@progbits 657 .align 2 658 .global insert_free_list 659 .type insert_free_list, %function 660insert_free_list: 661 and w0, w0, 65535 662 mov w7, 65535 663 cmp w0, w7 664 beq .L74 665 adrp x1, .LANCHOR40 666 mov w6, 6 667 ldr x3, [x1, #:lo12:.LANCHOR40] 668 umull x8, w0, w6 669 mov w1, -1 670 add x4, x3, x8 671 strh w1, [x4, 2] 672 strh w1, [x3, x8] 673 adrp x1, .LANCHOR46 674 mov x12, x1 675 ldr x5, [x1, #:lo12:.LANCHOR46] 676 cbnz x5, .L75 677 str x4, [x1, #:lo12:.LANCHOR46] 678.L74: 679 mov w0, 0 680 ret 681.L75: 682 adrp x1, .LANCHOR47 683 mov x2, -6148914691236517206 684 movk x2, 0xaaab, lsl 0 685 ldr x11, [x1, #:lo12:.LANCHOR47] 686 ubfiz x1, x0, 1, 16 687 ldrh w13, [x11, x1] 688 sub x1, x5, x3 689 asr x1, x1, 1 690 mul x1, x1, x2 691 mov x2, x5 692 and w1, w1, 65535 693.L78: 694 ubfiz x10, x1, 1, 16 695 ldrh w10, [x11, x10] 696 cmp w10, w13 697 bcs .L76 698 ldrh w10, [x2] 699 cmp w10, w7 700 bne .L77 701 strh w1, [x4, 2] 702 strh w0, [x2] 703 b .L74 704.L77: 705 umaddl x2, w10, w6, x3 706 mov w1, w10 707 b .L78 708.L76: 709 ldrh w6, [x2, 2] 710 cmp x2, x5 711 strh w6, [x4, 2] 712 strh w1, [x3, x8] 713 bne .L79 714 strh w0, [x2, 2] 715 str x4, [x12, #:lo12:.LANCHOR46] 716 b .L74 717.L79: 718 ldrh w1, [x2, 2] 719 mov w4, 6 720 umull x1, w1, w4 721 strh w0, [x3, x1] 722 strh w0, [x2, 2] 723 b .L74 724 .size insert_free_list, .-insert_free_list 725 .section .text.INSERT_FREE_LIST,"ax",@progbits 726 .align 2 727 .global INSERT_FREE_LIST 728 .type INSERT_FREE_LIST, %function 729INSERT_FREE_LIST: 730 stp x29, x30, [sp, -16]! 731 add x29, sp, 0 732 bl insert_free_list 733 adrp x1, .LANCHOR48 734 ldrh w0, [x1, #:lo12:.LANCHOR48] 735 add w0, w0, 1 736 and w0, w0, 65535 737 strh w0, [x1, #:lo12:.LANCHOR48] 738 adrp x1, .LANCHOR5 739 ldrh w1, [x1, #:lo12:.LANCHOR5] 740 cmp w1, w0 741 bcs .L80 742 ldp x29, x30, [sp], 16 743 mov w2, 207 744 adrp x1, .LANCHOR49 745 adrp x0, .LC1 746 add x1, x1, :lo12:.LANCHOR49 747 add x0, x0, :lo12:.LC1 748 b printf 749.L80: 750 ldp x29, x30, [sp], 16 751 ret 752 .size INSERT_FREE_LIST, .-INSERT_FREE_LIST 753 .section .text.List_remove_node,"ax",@progbits 754 .align 2 755 .global List_remove_node 756 .type List_remove_node, %function 757List_remove_node: 758 stp x29, x30, [sp, -64]! 759 and w1, w1, 65535 760 add x29, sp, 0 761 stp x19, x20, [sp, 16] 762 adrp x20, .LANCHOR40 763 stp x21, x22, [sp, 32] 764 mov x22, x0 765 mov w0, 6 766 str x23, [sp, 48] 767 ldr x23, [x20, #:lo12:.LANCHOR40] 768 umull x21, w1, w0 769 mov w0, 65535 770 add x19, x23, x21 771 ldrh w1, [x19, 2] 772 cmp w1, w0 773 bne .L84 774 ldr x0, [x22] 775 cmp x19, x0 776 beq .L84 777 adrp x1, .LANCHOR50 778 adrp x0, .LC1 779 mov w2, 372 780 add x1, x1, :lo12:.LANCHOR50 781 add x0, x0, :lo12:.LC1 782 bl printf 783.L84: 784 ldr x0, [x22] 785 mov w1, 65535 786 cmp x19, x0 787 ldrh w0, [x23, x21] 788 bne .L85 789 cmp w0, w1 790 bne .L86 791 str xzr, [x22] 792.L87: 793 mov w0, -1 794 strh w0, [x23, x21] 795 strh w0, [x19, 2] 796 mov w0, 0 797 ldp x19, x20, [sp, 16] 798 ldp x21, x22, [sp, 32] 799 ldr x23, [sp, 48] 800 ldp x29, x30, [sp], 64 801 ret 802.L86: 803 ldr x1, [x20, #:lo12:.LANCHOR40] 804 mov w2, 6 805 umaddl x0, w0, w2, x1 806 mov w1, -1 807 str x0, [x22] 808 strh w1, [x0, 2] 809 b .L87 810.L85: 811 cmp w0, w1 812 ldrh w1, [x19, 2] 813 bne .L88 814 cmp w1, w0 815 beq .L87 816 mov w0, 6 817 mov w2, -1 818 umull x1, w1, w0 819 ldr x0, [x20, #:lo12:.LANCHOR40] 820 strh w2, [x0, x1] 821 b .L87 822.L88: 823 ldr x2, [x20, #:lo12:.LANCHOR40] 824 mov w3, 6 825 umaddl x4, w0, w3, x2 826 strh w1, [x4, 2] 827 ldrh w1, [x19, 2] 828 umull x1, w1, w3 829 strh w0, [x2, x1] 830 b .L87 831 .size List_remove_node, .-List_remove_node 832 .section .text.List_pop_index_node,"ax",@progbits 833 .align 2 834 .global List_pop_index_node 835 .type List_pop_index_node, %function 836List_pop_index_node: 837 ldr x2, [x0] 838 cbz x2, .L96 839 stp x29, x30, [sp, -32]! 840 adrp x3, .LANCHOR40 841 and w1, w1, 65535 842 mov w4, 65535 843 add x29, sp, 0 844 str x19, [sp, 16] 845 mov w5, 6 846 ldr x19, [x3, #:lo12:.LANCHOR40] 847.L92: 848 cbnz w1, .L93 849.L95: 850 sub x19, x2, x19 851 mov x2, -6148914691236517206 852 asr x19, x19, 1 853 movk x2, 0xaaab, lsl 0 854 mul x19, x19, x2 855 and w19, w19, 65535 856 mov w1, w19 857 bl List_remove_node 858 mov w0, w19 859 ldr x19, [sp, 16] 860 ldp x29, x30, [sp], 32 861 ret 862.L93: 863 ldrh w3, [x2] 864 cmp w3, w4 865 beq .L95 866 sub w1, w1, #1 867 umaddl x2, w3, w5, x19 868 and w1, w1, 65535 869 b .L92 870.L96: 871 mov w0, 65535 872 ret 873 .size List_pop_index_node, .-List_pop_index_node 874 .section .text.List_pop_head_node,"ax",@progbits 875 .align 2 876 .global List_pop_head_node 877 .type List_pop_head_node, %function 878List_pop_head_node: 879 mov w1, 0 880 b List_pop_index_node 881 .size List_pop_head_node, .-List_pop_head_node 882 .section .text.List_get_gc_head_node,"ax",@progbits 883 .align 2 884 .global List_get_gc_head_node 885 .type List_get_gc_head_node, %function 886List_get_gc_head_node: 887 and w2, w0, 65535 888 adrp x0, .LANCHOR41 889 ldr x1, [x0, #:lo12:.LANCHOR41] 890 cbz x1, .L107 891 adrp x0, .LANCHOR40 892 mov w4, 6 893 ldr x3, [x0, #:lo12:.LANCHOR40] 894 mov w0, 65535 895.L104: 896 cbz w2, .L105 897 ldrh w1, [x1] 898 cmp w1, w0 899 bne .L106 900 ret 901.L106: 902 sub w2, w2, #1 903 umaddl x1, w1, w4, x3 904 and w2, w2, 65535 905 b .L104 906.L107: 907 mov w0, 65535 908 ret 909.L105: 910 sub x0, x1, x3 911 mov x1, -6148914691236517206 912 asr x0, x0, 1 913 movk x1, 0xaaab, lsl 0 914 mul x0, x0, x1 915 and w0, w0, 65535 916 ret 917 .size List_get_gc_head_node, .-List_get_gc_head_node 918 .section .text.List_update_data_list,"ax",@progbits 919 .align 2 920 .global List_update_data_list 921 .type List_update_data_list, %function 922List_update_data_list: 923 stp x29, x30, [sp, -80]! 924 add x29, sp, 0 925 stp x19, x20, [sp, 16] 926 and w19, w0, 65535 927 adrp x0, .LANCHOR51 928 stp x21, x22, [sp, 32] 929 stp x23, x24, [sp, 48] 930 ldrh w0, [x0, #:lo12:.LANCHOR51] 931 stp x25, x26, [sp, 64] 932 cmp w0, w19 933 beq .L110 934 adrp x0, .LANCHOR52 935 ldrh w0, [x0, #:lo12:.LANCHOR52] 936 cmp w0, w19 937 beq .L110 938 adrp x0, .LANCHOR53 939 ldrh w0, [x0, #:lo12:.LANCHOR53] 940 cmp w0, w19 941 beq .L110 942 adrp x0, .LANCHOR40 943 mov w21, 6 944 adrp x24, .LANCHOR41 945 mov x26, x0 946 umull x21, w19, w21 947 ldr x23, [x0, #:lo12:.LANCHOR40] 948 ldr x1, [x24, #:lo12:.LANCHOR41] 949 add x22, x23, x21 950 cmp x22, x1 951 beq .L110 952 adrp x1, .LANCHOR42 953 ubfiz x0, x19, 1, 16 954 mov x25, x1 955 ldr x2, [x1, #:lo12:.LANCHOR42] 956 mov w1, 65535 957 ldrh w20, [x2, x0] 958 ldrh w0, [x22, 4] 959 cmp w0, 0 960 mul w20, w20, w0 961 ldrh w0, [x22, 2] 962 csinv w20, w20, wzr, ne 963 cmp w0, w1 964 bne .L113 965 ldrh w1, [x23, x21] 966 cmp w1, w0 967 bne .L113 968 adrp x1, .LANCHOR54 969 adrp x0, .LC1 970 mov w2, 463 971 add x1, x1, :lo12:.LANCHOR54 972 add x0, x0, :lo12:.LC1 973 bl printf 974.L113: 975 ldrh w0, [x22, 2] 976 mov w1, 65535 977 cmp w0, w1 978 bne .L114 979 ldrh w1, [x23, x21] 980 cmp w1, w0 981 beq .L110 982.L114: 983 mov w1, 6 984 mov x2, -6148914691236517206 985 movk x2, 0xaaab, lsl 0 986 umull x0, w0, w1 987 asr x1, x0, 1 988 mul x1, x1, x2 989 ldr x2, [x25, #:lo12:.LANCHOR42] 990 ldrh w1, [x2, x1, lsl 1] 991 ldr x2, [x26, #:lo12:.LANCHOR40] 992 add x0, x2, x0 993 ldrh w2, [x0, 4] 994 cmp w2, 0 995 mul w0, w1, w2 996 csinv w0, w0, wzr, ne 997 cmp w20, w0 998 bcs .L110 999 adrp x20, .LANCHOR44 1000 mov w1, w19 1001 add x0, x24, :lo12:.LANCHOR41 1002 bl List_remove_node 1003 ldrh w0, [x20, #:lo12:.LANCHOR44] 1004 cbnz w0, .L116 1005 adrp x1, .LANCHOR54 1006 adrp x0, .LC1 1007 mov w2, 474 1008 add x1, x1, :lo12:.LANCHOR54 1009 add x0, x0, :lo12:.LC1 1010 bl printf 1011.L116: 1012 ldrh w0, [x20, #:lo12:.LANCHOR44] 1013 sub w0, w0, #1 1014 strh w0, [x20, #:lo12:.LANCHOR44] 1015 mov w0, w19 1016 bl INSERT_DATA_LIST 1017.L110: 1018 mov w0, 0 1019 ldp x19, x20, [sp, 16] 1020 ldp x21, x22, [sp, 32] 1021 ldp x23, x24, [sp, 48] 1022 ldp x25, x26, [sp, 64] 1023 ldp x29, x30, [sp], 80 1024 ret 1025 .size List_update_data_list, .-List_update_data_list 1026 .section .text.select_l2p_ram_region,"ax",@progbits 1027 .align 2 1028 .global select_l2p_ram_region 1029 .type select_l2p_ram_region, %function 1030select_l2p_ram_region: 1031 stp x29, x30, [sp, -32]! 1032 adrp x0, .LANCHOR33 1033 mov x1, 0 1034 mov w3, 65535 1035 add x29, sp, 0 1036 ldrh w2, [x0, #:lo12:.LANCHOR33] 1037 adrp x0, .LANCHOR55 1038 str x19, [sp, 16] 1039 ldr x0, [x0, #:lo12:.LANCHOR55] 1040.L121: 1041 and w19, w1, 65535 1042 cmp w19, w2 1043 bcc .L123 1044 add x3, x0, 4 1045 mov w19, w2 1046 mov w5, -2147483648 1047 mov w1, 0 1048.L124: 1049 cmp w1, w2 1050 bne .L126 1051 cmp w19, w2 1052 bcc .L122 1053 adrp x1, .LANCHOR56 1054 mov w19, w2 1055 mov w3, -1 1056 ldrh w4, [x1, #:lo12:.LANCHOR56] 1057 mov w1, 0 1058.L127: 1059 cmp w1, w2 1060 bne .L129 1061 cmp w19, w1 1062 bcc .L122 1063 mov w2, 789 1064 adrp x1, .LANCHOR57 1065 adrp x0, .LC1 1066 add x1, x1, :lo12:.LANCHOR57 1067 add x0, x0, :lo12:.LC1 1068 bl printf 1069 b .L122 1070.L123: 1071 add x1, x1, 1 1072 add x4, x0, x1, lsl 4 1073 ldrh w4, [x4, -16] 1074 cmp w4, w3 1075 bne .L121 1076.L122: 1077 mov w0, w19 1078 ldr x19, [sp, 16] 1079 ldp x29, x30, [sp], 32 1080 ret 1081.L126: 1082 ldr w4, [x3] 1083 tbnz w4, #31, .L125 1084 cmp w5, w4 1085 bls .L125 1086 mov w5, w4 1087 mov w19, w1 1088.L125: 1089 add w1, w1, 1 1090 add x3, x3, 16 1091 and w1, w1, 65535 1092 b .L124 1093.L129: 1094 ldr w6, [x0, 4] 1095 cmp w3, w6 1096 bls .L128 1097 ldrh w5, [x0] 1098 cmp w5, w4 1099 csel w3, w3, w6, eq 1100 csel w19, w19, w1, eq 1101.L128: 1102 add w1, w1, 1 1103 add x0, x0, 16 1104 and w1, w1, 65535 1105 b .L127 1106 .size select_l2p_ram_region, .-select_l2p_ram_region 1107 .section .text.FtlUpdateVaildLpn,"ax",@progbits 1108 .align 2 1109 .global FtlUpdateVaildLpn 1110 .type FtlUpdateVaildLpn, %function 1111FtlUpdateVaildLpn: 1112 adrp x2, .LANCHOR58 1113 mov x3, x2 1114 ldrh w1, [x2, #:lo12:.LANCHOR58] 1115 cmp w1, 4 1116 bhi .L132 1117 cbnz w0, .L132 1118 add w1, w1, 1 1119 strh w1, [x2, #:lo12:.LANCHOR58] 1120 ret 1121.L132: 1122 adrp x1, .LANCHOR5 1123 adrp x0, .LANCHOR59 1124 strh wzr, [x3, #:lo12:.LANCHOR58] 1125 mov w2, 0 1126 ldrh w5, [x1, #:lo12:.LANCHOR5] 1127 adrp x1, .LANCHOR42 1128 str wzr, [x0, #:lo12:.LANCHOR59] 1129 mov w3, 0 1130 ldr x6, [x1, #:lo12:.LANCHOR42] 1131 mov w7, 65535 1132 mov x1, 0 1133.L133: 1134 cmp w5, w1, uxth 1135 bhi .L135 1136 cbz w3, .L131 1137 str w2, [x0, #:lo12:.LANCHOR59] 1138.L131: 1139 ret 1140.L135: 1141 ldrh w4, [x6, x1, lsl 1] 1142 cmp w4, w7 1143 beq .L134 1144 add w2, w2, w4 1145 mov w3, 1 1146.L134: 1147 add x1, x1, 1 1148 b .L133 1149 .size FtlUpdateVaildLpn, .-FtlUpdateVaildLpn 1150 .section .text.ftl_set_blk_mode,"ax",@progbits 1151 .align 2 1152 .global ftl_set_blk_mode 1153 .type ftl_set_blk_mode, %function 1154ftl_set_blk_mode: 1155 and w0, w0, 65535 1156 cbz w1, .L142 1157 b ftl_set_blk_mode.part.6 1158.L142: 1159 adrp x1, .LANCHOR1 1160 ubfx x2, x0, 5, 11 1161 lsl x2, x2, 2 1162 ldr x3, [x1, #:lo12:.LANCHOR1] 1163 mov w1, 1 1164 lsl w0, w1, w0 1165 ldr w1, [x3, x2] 1166 bic w0, w1, w0 1167 str w0, [x3, x2] 1168 ret 1169 .size ftl_set_blk_mode, .-ftl_set_blk_mode 1170 .section .text.ftl_get_blk_mode,"ax",@progbits 1171 .align 2 1172 .global ftl_get_blk_mode 1173 .type ftl_get_blk_mode, %function 1174ftl_get_blk_mode: 1175 and w1, w0, 65535 1176 adrp x0, .LANCHOR1 1177 ldr x0, [x0, #:lo12:.LANCHOR1] 1178 ubfx x2, x1, 5, 11 1179 ldr w0, [x0, x2, lsl 2] 1180 lsr w0, w0, w1 1181 and w0, w0, 1 1182 ret 1183 .size ftl_get_blk_mode, .-ftl_get_blk_mode 1184 .section .text.ftl_sb_update_avl_pages,"ax",@progbits 1185 .align 2 1186 .global ftl_sb_update_avl_pages 1187 .type ftl_sb_update_avl_pages, %function 1188ftl_sb_update_avl_pages: 1189 and w2, w2, 65535 1190 and w6, w1, 65535 1191 ubfiz x4, x2, 1, 16 1192 adrp x1, .LANCHOR3 1193 add x4, x4, 16 1194 strh wzr, [x0, 4] 1195 add x4, x0, x4 1196 ldrh w3, [x1, #:lo12:.LANCHOR3] 1197 mov w1, 65535 1198.L145: 1199 cmp w2, w3 1200 bcc .L147 1201 adrp x1, .LANCHOR19 1202 ubfiz x3, x3, 1, 16 1203 add x3, x3, 16 1204 add x2, x0, 16 1205 ldrh w1, [x1, #:lo12:.LANCHOR19] 1206 add x3, x0, x3 1207 mov w5, 65535 1208 sub w1, w1, #1 1209 and w1, w1, 65535 1210 sub w1, w1, w6 1211.L148: 1212 cmp x2, x3 1213 bne .L150 1214 ret 1215.L147: 1216 ldrh w5, [x4] 1217 cmp w5, w1 1218 beq .L146 1219 ldrh w5, [x0, 4] 1220 add w5, w5, 1 1221 strh w5, [x0, 4] 1222.L146: 1223 add w2, w2, 1 1224 add x4, x4, 2 1225 and w2, w2, 65535 1226 b .L145 1227.L150: 1228 ldrh w4, [x2] 1229 cmp w4, w5 1230 beq .L149 1231 ldrh w4, [x0, 4] 1232 add w4, w1, w4 1233 strh w4, [x0, 4] 1234.L149: 1235 add x2, x2, 2 1236 b .L148 1237 .size ftl_sb_update_avl_pages, .-ftl_sb_update_avl_pages 1238 .section .text.FtlSlcSuperblockCheck,"ax",@progbits 1239 .align 2 1240 .global FtlSlcSuperblockCheck 1241 .type FtlSlcSuperblockCheck, %function 1242FtlSlcSuperblockCheck: 1243 ldrh w1, [x0, 4] 1244 cbz w1, .L151 1245 ldrh w2, [x0] 1246 mov w1, 65535 1247 cmp w2, w1 1248 beq .L151 1249 ldrb w2, [x0, 6] 1250 add x2, x2, 8 1251 ldrh w3, [x0, x2, lsl 1] 1252 adrp x2, .LANCHOR3 1253 ldrh w4, [x2, #:lo12:.LANCHOR3] 1254 mov w2, w1 1255.L154: 1256 cmp w3, w2 1257 beq .L156 1258.L151: 1259 ret 1260.L156: 1261 ldrb w1, [x0, 6] 1262 add w1, w1, 1 1263 and w1, w1, 255 1264 strb w1, [x0, 6] 1265 cmp w1, w4 1266 bne .L155 1267 ldrh w1, [x0, 2] 1268 strb wzr, [x0, 6] 1269 add w1, w1, 1 1270 strh w1, [x0, 2] 1271.L155: 1272 ldrb w1, [x0, 6] 1273 add x1, x1, 8 1274 ldrh w3, [x0, x1, lsl 1] 1275 b .L154 1276 .size FtlSlcSuperblockCheck, .-FtlSlcSuperblockCheck 1277 .section .text.make_superblock,"ax",@progbits 1278 .align 2 1279 .global make_superblock 1280 .type make_superblock, %function 1281make_superblock: 1282 stp x29, x30, [sp, -32]! 1283 add x29, sp, 0 1284 ldrh w1, [x0] 1285 str x19, [sp, 16] 1286 mov x19, x0 1287 adrp x0, .LANCHOR5 1288 ldrh w0, [x0, #:lo12:.LANCHOR5] 1289 cmp w1, w0 1290 bcc .L158 1291 adrp x1, .LANCHOR60 1292 adrp x0, .LC1 1293 mov w2, 2148 1294 add x1, x1, :lo12:.LANCHOR60 1295 add x0, x0, :lo12:.LC1 1296 bl printf 1297.L158: 1298 adrp x0, .LANCHOR3 1299 adrp x7, .LANCHOR13 1300 add x6, x19, 16 1301 add x7, x7, :lo12:.LANCHOR13 1302 ldrh w8, [x0, #:lo12:.LANCHOR3] 1303 mov x5, 0 1304 strh wzr, [x19, 4] 1305 mov w10, -1 1306 strb wzr, [x19, 7] 1307.L159: 1308 cmp w8, w5, uxth 1309 bhi .L161 1310 adrp x1, .LANCHOR19 1311 ldrb w0, [x19, 7] 1312 strb wzr, [x19, 9] 1313 ldrh w1, [x1, #:lo12:.LANCHOR19] 1314 mul w0, w0, w1 1315 ldrh w1, [x19] 1316 strh w0, [x19, 4] 1317 adrp x0, .LANCHOR47 1318 ldr x0, [x0, #:lo12:.LANCHOR47] 1319 ldrh w1, [x0, x1, lsl 1] 1320 mov w0, 10000 1321 cmp w1, w0 1322 bls .L162 1323 mov w0, 1 1324 strb w0, [x19, 9] 1325.L162: 1326 mov w0, 0 1327 ldr x19, [sp, 16] 1328 ldp x29, x30, [sp], 32 1329 ret 1330.L161: 1331 ldrh w1, [x19] 1332 ldrb w0, [x7, x5] 1333 bl V2P_block 1334 mov w4, w0 1335 strh w10, [x6] 1336 bl FtlBbmIsBadBlock 1337 cbnz w0, .L160 1338 strh w4, [x6] 1339 ldrb w0, [x19, 7] 1340 add w0, w0, 1 1341 strb w0, [x19, 7] 1342.L160: 1343 add x5, x5, 1 1344 add x6, x6, 2 1345 b .L159 1346 .size make_superblock, .-make_superblock 1347 .section .text.update_multiplier_value,"ax",@progbits 1348 .align 2 1349 .global update_multiplier_value 1350 .type update_multiplier_value, %function 1351update_multiplier_value: 1352 and w6, w0, 65535 1353 adrp x0, .LANCHOR3 1354 mov x7, 0 1355 adrp x8, .LANCHOR13 1356 ldrh w10, [x0, #:lo12:.LANCHOR3] 1357 adrp x0, .LANCHOR19 1358 mov w5, 0 1359 add x8, x8, :lo12:.LANCHOR13 1360 ldrh w11, [x0, #:lo12:.LANCHOR19] 1361 cmp w10, w7, uxth 1362 bhi .L176 1363 cbz w5, .L174 1364 mov w0, 32768 1365 sdiv w5, w0, w5 1366.L175: 1367 adrp x0, .LANCHOR40 1368 mov w1, 6 1369 ldr x0, [x0, #:lo12:.LANCHOR40] 1370 umaddl x6, w6, w1, x0 1371 mov w0, 0 1372 strh w5, [x6, 4] 1373 ret 1374.L169: 1375 mov w5, 0 1376 b .L168 1377.L174: 1378 mov w5, 0 1379 b .L175 1380.L176: 1381 stp x29, x30, [sp, -16]! 1382 add x29, sp, 0 1383.L167: 1384 ldrb w0, [x8, x7] 1385 mov w1, w6 1386 bl V2P_block 1387 bl FtlBbmIsBadBlock 1388 cbnz w0, .L166 1389 add w5, w5, w11 1390 and w5, w5, 65535 1391.L166: 1392 add x7, x7, 1 1393 cmp w10, w7, uxth 1394 bhi .L167 1395 cbz w5, .L169 1396 mov w0, 32768 1397 sdiv w5, w0, w5 1398.L168: 1399 adrp x0, .LANCHOR40 1400 mov w1, 6 1401 ldr x0, [x0, #:lo12:.LANCHOR40] 1402 umaddl x6, w6, w1, x0 1403 mov w0, 0 1404 strh w5, [x6, 4] 1405 ldp x29, x30, [sp], 16 1406 ret 1407 .size update_multiplier_value, .-update_multiplier_value 1408 .section .text.GetFreeBlockMinEraseCount,"ax",@progbits 1409 .align 2 1410 .global GetFreeBlockMinEraseCount 1411 .type GetFreeBlockMinEraseCount, %function 1412GetFreeBlockMinEraseCount: 1413 adrp x0, .LANCHOR46 1414 ldr x0, [x0, #:lo12:.LANCHOR46] 1415 cbz x0, .L179 1416 adrp x1, .LANCHOR40 1417 ldr x1, [x1, #:lo12:.LANCHOR40] 1418 sub x0, x0, x1 1419 mov x1, -6148914691236517206 1420 asr x0, x0, 1 1421 movk x1, 0xaaab, lsl 0 1422 mul x0, x0, x1 1423 adrp x1, .LANCHOR47 1424 ldr x1, [x1, #:lo12:.LANCHOR47] 1425 and x0, x0, 65535 1426 ldrh w0, [x1, x0, lsl 1] 1427 ret 1428.L179: 1429 mov w0, 0 1430 ret 1431 .size GetFreeBlockMinEraseCount, .-GetFreeBlockMinEraseCount 1432 .section .text.GetFreeBlockMaxEraseCount,"ax",@progbits 1433 .align 2 1434 .global GetFreeBlockMaxEraseCount 1435 .type GetFreeBlockMaxEraseCount, %function 1436GetFreeBlockMaxEraseCount: 1437 adrp x1, .LANCHOR46 1438 and w0, w0, 65535 1439 ldr x1, [x1, #:lo12:.LANCHOR46] 1440 cbz x1, .L187 1441 adrp x2, .LANCHOR48 1442 mov w3, 7 1443 mov w5, 6 1444 mov w6, 65535 1445 ldrh w2, [x2, #:lo12:.LANCHOR48] 1446 mul w2, w2, w3 1447 asr w2, w2, 3 1448 cmp w0, w2 1449 csel w0, w2, w0, gt 1450 adrp x2, .LANCHOR40 1451 ldr x3, [x2, #:lo12:.LANCHOR40] 1452 mov x2, -6148914691236517206 1453 movk x2, 0xaaab, lsl 0 1454 sub x1, x1, x3 1455 asr x1, x1, 1 1456 mul x1, x1, x2 1457 mov w2, 0 1458 and w1, w1, 65535 1459.L183: 1460 cmp w0, w2 1461 beq .L186 1462 umull x4, w1, w5 1463 ldrh w4, [x3, x4] 1464 cmp w4, w6 1465 bne .L184 1466.L186: 1467 adrp x0, .LANCHOR47 1468 ubfiz x1, x1, 1, 16 1469 ldr x0, [x0, #:lo12:.LANCHOR47] 1470 ldrh w0, [x0, x1] 1471 ret 1472.L184: 1473 add w2, w2, 1 1474 mov w1, w4 1475 and w2, w2, 65535 1476 b .L183 1477.L187: 1478 mov w0, 0 1479 ret 1480 .size GetFreeBlockMaxEraseCount, .-GetFreeBlockMaxEraseCount 1481 .section .text.free_data_superblock,"ax",@progbits 1482 .align 2 1483 .global free_data_superblock 1484 .type free_data_superblock, %function 1485free_data_superblock: 1486 and w0, w0, 65535 1487 mov w1, 65535 1488 cmp w0, w1 1489 beq .L191 1490 stp x29, x30, [sp, -16]! 1491 adrp x2, .LANCHOR42 1492 ubfiz x1, x0, 1, 16 1493 add x29, sp, 0 1494 ldr x2, [x2, #:lo12:.LANCHOR42] 1495 strh wzr, [x2, x1] 1496 bl INSERT_FREE_LIST 1497 mov w0, 0 1498 ldp x29, x30, [sp], 16 1499 ret 1500.L191: 1501 mov w0, 0 1502 ret 1503 .size free_data_superblock, .-free_data_superblock 1504 .section .text.get_new_active_ppa,"ax",@progbits 1505 .align 2 1506 .global get_new_active_ppa 1507 .type get_new_active_ppa, %function 1508get_new_active_ppa: 1509 stp x29, x30, [sp, -48]! 1510 add x29, sp, 0 1511 stp x19, x20, [sp, 16] 1512 mov x19, x0 1513 ldrh w1, [x0] 1514 mov w0, 65535 1515 str x21, [sp, 32] 1516 cmp w1, w0 1517 bne .L195 1518 adrp x1, .LANCHOR61 1519 adrp x0, .LC1 1520 mov w2, 2781 1521 add x1, x1, :lo12:.LANCHOR61 1522 add x0, x0, :lo12:.LC1 1523 bl printf 1524.L195: 1525 adrp x21, .LANCHOR19 1526 ldrh w1, [x19, 2] 1527 ldrh w0, [x21, #:lo12:.LANCHOR19] 1528 cmp w1, w0 1529 bne .L196 1530 adrp x1, .LANCHOR61 1531 adrp x0, .LC1 1532 mov w2, 2782 1533 add x1, x1, :lo12:.LANCHOR61 1534 add x0, x0, :lo12:.LC1 1535 bl printf 1536.L196: 1537 ldrh w0, [x19, 4] 1538 cbnz w0, .L197 1539 adrp x1, .LANCHOR61 1540 adrp x0, .LC1 1541 mov w2, 2783 1542 add x1, x1, :lo12:.LANCHOR61 1543 add x0, x0, :lo12:.LC1 1544 bl printf 1545.L197: 1546 ldrb w0, [x19, 6] 1547 adrp x1, .LANCHOR3 1548 strb wzr, [x19, 10] 1549 add x0, x0, 8 1550 ldrh w3, [x1, #:lo12:.LANCHOR3] 1551 mov w1, 65535 1552 ldrh w0, [x19, x0, lsl 1] 1553.L198: 1554 cmp w0, w1 1555 beq .L200 1556 ldrh w20, [x19, 2] 1557 ldrh w2, [x21, #:lo12:.LANCHOR19] 1558 cmp w20, w2 1559 bcs .L204 1560 ldrh w1, [x19, 4] 1561 orr w20, w20, w0, lsl 10 1562 ldrb w0, [x19, 6] 1563 mov w4, 65535 1564 sub w1, w1, #1 1565 and w1, w1, 65535 1566 strh w1, [x19, 4] 1567.L203: 1568 add w0, w0, 1 1569 and w0, w0, 255 1570 cmp w3, w0 1571 bne .L202 1572 ldrh w0, [x19, 2] 1573 add w0, w0, 1 1574 strh w0, [x19, 2] 1575 mov w0, 0 1576.L202: 1577 add x5, x19, x0, sxtw 1 1578 ldrh w5, [x5, 16] 1579 cmp w5, w4 1580 beq .L203 1581 strb w0, [x19, 6] 1582 ldrh w0, [x19, 2] 1583 cmp w0, w2 1584 bne .L194 1585 cbz w1, .L194 1586 adrp x1, .LANCHOR61 1587 adrp x0, .LC1 1588 mov w2, 2806 1589 add x1, x1, :lo12:.LANCHOR61 1590 add x0, x0, :lo12:.LC1 1591 bl printf 1592.L194: 1593 mov w0, w20 1594 ldr x21, [sp, 32] 1595 ldp x19, x20, [sp, 16] 1596 ldp x29, x30, [sp], 48 1597 ret 1598.L200: 1599 ldrb w0, [x19, 6] 1600 add w0, w0, 1 1601 and w0, w0, 255 1602 strb w0, [x19, 6] 1603 cmp w0, w3 1604 bne .L199 1605 ldrh w0, [x19, 2] 1606 strb wzr, [x19, 6] 1607 add w0, w0, 1 1608 strh w0, [x19, 2] 1609.L199: 1610 ldrb w0, [x19, 6] 1611 add x0, x0, 8 1612 ldrh w0, [x19, x0, lsl 1] 1613 b .L198 1614.L204: 1615 mov w20, 65535 1616 b .L194 1617 .size get_new_active_ppa, .-get_new_active_ppa 1618 .section .text.FtlGcBufInit,"ax",@progbits 1619 .align 2 1620 .global FtlGcBufInit 1621 .type FtlGcBufInit, %function 1622FtlGcBufInit: 1623 adrp x1, .LANCHOR63 1624 adrp x0, .LANCHOR62 1625 adrp x7, .LANCHOR64 1626 adrp x6, .LANCHOR65 1627 ldr x5, [x1, #:lo12:.LANCHOR63] 1628 adrp x1, .LANCHOR23 1629 str wzr, [x0, #:lo12:.LANCHOR62] 1630 adrp x0, .LANCHOR3 1631 ldrh w10, [x1, #:lo12:.LANCHOR23] 1632 adrp x1, .LANCHOR24 1633 ldrh w0, [x0, #:lo12:.LANCHOR3] 1634 mov w8, 24 1635 ldrh w11, [x1, #:lo12:.LANCHOR24] 1636 adrp x1, .LANCHOR66 1637 ldr x14, [x7, #:lo12:.LANCHOR64] 1638 mov x3, x5 1639 ldr x4, [x1, #:lo12:.LANCHOR66] 1640 mov w2, 0 1641 ldr x15, [x6, #:lo12:.LANCHOR65] 1642 nop // between mem op and mult-accumulate 1643 umaddl x8, w0, w8, x5 1644 add x4, x4, 8 1645 mov w1, 0 1646 mov w16, 1 1647.L211: 1648 add w13, w2, w10 1649 add w12, w1, w11 1650 cmp x3, x8 1651 bne .L212 1652 adrp x1, .LANCHOR67 1653 ldr x7, [x7, #:lo12:.LANCHOR64] 1654 ldr x6, [x6, #:lo12:.LANCHOR65] 1655 mov w8, 24 1656 ldr w4, [x1, #:lo12:.LANCHOR67] 1657.L213: 1658 cmp w0, w4 1659 bcc .L214 1660 ret 1661.L212: 1662 asr w2, w2, 2 1663 asr w1, w1, 2 1664 add x2, x14, x2, sxtw 2 1665 add x1, x15, x1, sxtw 2 1666 str w16, [x3, 16] 1667 stp x2, x1, [x3] 1668 add x3, x3, 24 1669 stp x2, x1, [x4] 1670 add x4, x4, 32 1671 mov w1, w12 1672 mov w2, w13 1673 b .L211 1674.L214: 1675 umull x3, w0, w8 1676 mul w1, w10, w0 1677 add x2, x5, x3 1678 asr w1, w1, 2 1679 add x1, x7, x1, sxtw 2 1680 str wzr, [x2, 16] 1681 str x1, [x5, x3] 1682 mul w1, w11, w0 1683 add w0, w0, 1 1684 and w0, w0, 65535 1685 asr w1, w1, 2 1686 add x1, x6, x1, sxtw 2 1687 str x1, [x2, 8] 1688 b .L213 1689 .size FtlGcBufInit, .-FtlGcBufInit 1690 .section .text.FtlGcBufFree,"ax",@progbits 1691 .align 2 1692 .global FtlGcBufFree 1693 .type FtlGcBufFree, %function 1694FtlGcBufFree: 1695 adrp x2, .LANCHOR67 1696 mov w3, 0 1697 mov w8, 24 1698 ldr w7, [x2, #:lo12:.LANCHOR67] 1699 adrp x2, .LANCHOR63 1700 ldr x5, [x2, #:lo12:.LANCHOR63] 1701.L216: 1702 cmp w3, w1 1703 bcs .L215 1704 ubfiz x4, x3, 5, 16 1705 mov w2, 0 1706 add x4, x0, x4 1707 b .L221 1708.L217: 1709 add w2, w2, 1 1710 and w2, w2, 65535 1711.L221: 1712 cmp w2, w7 1713 bcs .L218 1714 umull x6, w2, w8 1715 add x10, x5, x6 1716 ldr x11, [x5, x6] 1717 ldr x6, [x4, 8] 1718 cmp x11, x6 1719 bne .L217 1720 str wzr, [x10, 16] 1721.L218: 1722 add w3, w3, 1 1723 and w3, w3, 65535 1724 b .L216 1725.L215: 1726 ret 1727 .size FtlGcBufFree, .-FtlGcBufFree 1728 .section .text.FtlGcBufAlloc,"ax",@progbits 1729 .align 2 1730 .global FtlGcBufAlloc 1731 .type FtlGcBufAlloc, %function 1732FtlGcBufAlloc: 1733 adrp x2, .LANCHOR67 1734 mov w3, 0 1735 mov w7, 24 1736 mov w8, 1 1737 ldr w5, [x2, #:lo12:.LANCHOR67] 1738 adrp x2, .LANCHOR63 1739 ldr x6, [x2, #:lo12:.LANCHOR63] 1740.L223: 1741 cmp w3, w1 1742 bcs .L222 1743 mov w2, 0 1744 b .L228 1745.L224: 1746 add w2, w2, 1 1747 and w2, w2, 65535 1748.L228: 1749 cmp w2, w5 1750 bcs .L225 1751 umaddl x4, w2, w7, x6 1752 ldr w10, [x4, 16] 1753 cbnz w10, .L224 1754 ubfiz x2, x3, 5, 16 1755 ldr x10, [x4] 1756 add x2, x0, x2 1757 str w8, [x4, 16] 1758 ldr x4, [x4, 8] 1759 stp x10, x4, [x2, 8] 1760.L225: 1761 add w3, w3, 1 1762 and w3, w3, 65535 1763 b .L223 1764.L222: 1765 ret 1766 .size FtlGcBufAlloc, .-FtlGcBufAlloc 1767 .section .text.IsBlkInGcList,"ax",@progbits 1768 .align 2 1769 .global IsBlkInGcList 1770 .type IsBlkInGcList, %function 1771IsBlkInGcList: 1772 adrp x1, .LANCHOR68 1773 and w0, w0, 65535 1774 ldrh w2, [x1, #:lo12:.LANCHOR68] 1775 adrp x1, .LANCHOR69 1776 ldr x3, [x1, #:lo12:.LANCHOR69] 1777 mov x1, 0 1778.L230: 1779 cmp w2, w1, uxth 1780 bhi .L232 1781 mov w0, 0 1782 ret 1783.L232: 1784 add x1, x1, 1 1785 add x4, x3, x1, lsl 1 1786 ldrh w4, [x4, -2] 1787 cmp w4, w0 1788 bne .L230 1789 mov w0, 1 1790 ret 1791 .size IsBlkInGcList, .-IsBlkInGcList 1792 .section .text.FtlGcUpdatePage,"ax",@progbits 1793 .align 2 1794 .global FtlGcUpdatePage 1795 .type FtlGcUpdatePage, %function 1796FtlGcUpdatePage: 1797 mov w6, w0 1798 mov w10, w1 1799 mov w8, w2 1800 stp x29, x30, [sp, -16]! 1801 lsr w0, w0, 10 1802 add x29, sp, 0 1803 bl P2V_block_in_plane 1804 and w7, w0, 65535 1805 adrp x4, .LANCHOR68 1806 adrp x2, .LANCHOR69 1807 mov x3, 0 1808 ldrh w1, [x4, #:lo12:.LANCHOR68] 1809 ldr x5, [x2, #:lo12:.LANCHOR69] 1810.L235: 1811 and w2, w3, 65535 1812 cmp w2, w1 1813 bcc .L237 1814 bne .L236 1815 and x3, x3, 65535 1816 strh w0, [x5, x3, lsl 1] 1817 ldrh w0, [x4, #:lo12:.LANCHOR68] 1818 add w0, w0, 1 1819 strh w0, [x4, #:lo12:.LANCHOR68] 1820 b .L236 1821.L237: 1822 add x3, x3, 1 1823 add x2, x5, x3, lsl 1 1824 ldrh w2, [x2, -2] 1825 cmp w2, w7 1826 bne .L235 1827.L236: 1828 adrp x4, .LANCHOR70 1829 adrp x1, .LANCHOR71 1830 mov w3, 12 1831 ldrh w0, [x4, #:lo12:.LANCHOR70] 1832 ldr x5, [x1, #:lo12:.LANCHOR71] 1833 umull x3, w0, w3 1834 add w0, w0, 1 1835 add x7, x5, x3 1836 stp w10, w8, [x7, 4] 1837 str w6, [x5, x3] 1838 strh w0, [x4, #:lo12:.LANCHOR70] 1839 ldp x29, x30, [sp], 16 1840 ret 1841 .size FtlGcUpdatePage, .-FtlGcUpdatePage 1842 .section .text.FtlGcRefreshBlock,"ax",@progbits 1843 .align 2 1844 .global FtlGcRefreshBlock 1845 .type FtlGcRefreshBlock, %function 1846FtlGcRefreshBlock: 1847 adrp x4, .LANCHOR72 1848 and w0, w0, 65535 1849 ldrh w5, [x4, #:lo12:.LANCHOR72] 1850 cmp w5, w0 1851 beq .L240 1852 adrp x1, .LANCHOR73 1853 ldrh w3, [x1, #:lo12:.LANCHOR73] 1854 cmp w0, w3 1855 beq .L240 1856 mov w2, 65535 1857 cmp w5, w2 1858 bne .L241 1859 strh w0, [x4, #:lo12:.LANCHOR72] 1860.L240: 1861 mov w0, 0 1862 ret 1863.L241: 1864 cmp w3, w2 1865 bne .L240 1866 strh w0, [x1, #:lo12:.LANCHOR73] 1867 b .L240 1868 .size FtlGcRefreshBlock, .-FtlGcRefreshBlock 1869 .section .text.FtlGcMarkBadPhyBlk,"ax",@progbits 1870 .align 2 1871 .global FtlGcMarkBadPhyBlk 1872 .type FtlGcMarkBadPhyBlk, %function 1873FtlGcMarkBadPhyBlk: 1874 and w6, w0, 65535 1875 stp x29, x30, [sp, -16]! 1876 mov w0, w6 1877 add x29, sp, 0 1878 bl P2V_block_in_plane 1879 bl FtlGcRefreshBlock 1880 adrp x1, .LANCHOR74 1881 adrp x3, .LANCHOR75 1882 add x3, x3, :lo12:.LANCHOR75 1883 mov x2, 0 1884 ldrh w0, [x1, #:lo12:.LANCHOR74] 1885.L243: 1886 cmp w0, w2, uxth 1887 bhi .L245 1888 cmp w0, 15 1889 bhi .L244 1890 add w2, w0, 1 1891 strh w2, [x1, #:lo12:.LANCHOR74] 1892 adrp x1, .LANCHOR75 1893 add x1, x1, :lo12:.LANCHOR75 1894 strh w6, [x1, w0, sxtw 1] 1895 b .L244 1896.L245: 1897 add x2, x2, 1 1898 add x4, x3, x2, lsl 1 1899 ldrh w4, [x4, -2] 1900 cmp w4, w6 1901 bne .L243 1902.L244: 1903 mov w0, 0 1904 ldp x29, x30, [sp], 16 1905 ret 1906 .size FtlGcMarkBadPhyBlk, .-FtlGcMarkBadPhyBlk 1907 .section .text.FtlGcReFreshBadBlk,"ax",@progbits 1908 .align 2 1909 .global FtlGcReFreshBadBlk 1910 .type FtlGcReFreshBadBlk, %function 1911FtlGcReFreshBadBlk: 1912 adrp x0, .LANCHOR74 1913 ldrh w0, [x0, #:lo12:.LANCHOR74] 1914 cbz w0, .L254 1915 adrp x1, .LANCHOR72 1916 ldrh w2, [x1, #:lo12:.LANCHOR72] 1917 mov w1, 65535 1918 cmp w2, w1 1919 bne .L254 1920 stp x29, x30, [sp, -16]! 1921 adrp x6, .LANCHOR76 1922 add x29, sp, 0 1923 ldrh w1, [x6, #:lo12:.LANCHOR76] 1924 cmp w1, w0 1925 bcc .L249 1926 strh wzr, [x6, #:lo12:.LANCHOR76] 1927.L249: 1928 ldrh w1, [x6, #:lo12:.LANCHOR76] 1929 adrp x0, .LANCHOR75 1930 add x0, x0, :lo12:.LANCHOR75 1931 ldrh w0, [x0, x1, lsl 1] 1932 bl P2V_block_in_plane 1933 bl FtlGcRefreshBlock 1934 ldrh w0, [x6, #:lo12:.LANCHOR76] 1935 ldp x29, x30, [sp], 16 1936 add w0, w0, 1 1937 strh w0, [x6, #:lo12:.LANCHOR76] 1938 mov w0, 0 1939 ret 1940.L254: 1941 mov w0, 0 1942 ret 1943 .size FtlGcReFreshBadBlk, .-FtlGcReFreshBadBlk 1944 .section .text.ftl_malloc,"ax",@progbits 1945 .align 2 1946 .global ftl_malloc 1947 .type ftl_malloc, %function 1948ftl_malloc: 1949 mov w1, 0 1950 sxtw x0, w0 1951 b kmalloc 1952 .size ftl_malloc, .-ftl_malloc 1953 .section .text.ftl_free,"ax",@progbits 1954 .align 2 1955 .global ftl_free 1956 .type ftl_free, %function 1957ftl_free: 1958 b free 1959 .size ftl_free, .-ftl_free 1960 .section .text.rknand_print_hex,"ax",@progbits 1961 .align 2 1962 .global rknand_print_hex 1963 .type rknand_print_hex, %function 1964rknand_print_hex: 1965 stp x29, x30, [sp, -96]! 1966 add x29, sp, 0 1967 stp x21, x22, [sp, 32] 1968 mov x22, x1 1969 stp x23, x24, [sp, 48] 1970 adrp x24, .LC2 1971 stp x25, x26, [sp, 64] 1972 mov w23, w2 1973 stp x27, x28, [sp, 80] 1974 adrp x25, .LC4 1975 mov x28, x0 1976 mov w27, w3 1977 add x24, x24, :lo12:.LC2 1978 add x25, x25, :lo12:.LC4 1979 stp x19, x20, [sp, 16] 1980 mov w21, 0 1981 mov x19, 0 1982 mov w20, 0 1983 adrp x26, .LC3 1984.L260: 1985 cmp w27, w19 1986 bhi .L266 1987 ldp x19, x20, [sp, 16] 1988 adrp x0, .LC5 1989 ldp x21, x22, [sp, 32] 1990 add x0, x0, :lo12:.LC5 1991 ldp x23, x24, [sp, 48] 1992 ldp x25, x26, [sp, 64] 1993 ldp x27, x28, [sp, 80] 1994 ldp x29, x30, [sp], 96 1995 b printf 1996.L266: 1997 cbnz w20, .L261 1998 mov w2, w21 1999 mov x1, x28 2000 mov x0, x24 2001 bl printf 2002.L261: 2003 cmp w23, 4 2004 bne .L262 2005 ldr w1, [x22, x19, lsl 2] 2006.L269: 2007 add x0, x26, :lo12:.LC3 2008.L268: 2009 bl printf 2010 add w20, w20, 1 2011 cmp w20, 15 2012 bls .L265 2013 mov w20, 0 2014 adrp x0, .LC5 2015 add x0, x0, :lo12:.LC5 2016 bl printf 2017.L265: 2018 add x19, x19, 1 2019 add w21, w21, w23 2020 b .L260 2021.L262: 2022 cmp w23, 2 2023 bne .L264 2024 ldrh w1, [x22, x19, lsl 1] 2025 b .L269 2026.L264: 2027 ldrb w1, [x22, x19] 2028 mov x0, x25 2029 b .L268 2030 .size rknand_print_hex, .-rknand_print_hex 2031 .section .text.FlashEraseBlocks,"ax",@progbits 2032 .align 2 2033 .global FlashEraseBlocks 2034 .type FlashEraseBlocks, %function 2035FlashEraseBlocks: 2036 stp x29, x30, [sp, -112]! 2037 add x29, sp, 0 2038 stp x19, x20, [sp, 16] 2039 mov x20, x0 2040 adrp x0, .LANCHOR0 2041 add x1, x0, :lo12:.LANCHOR0 2042 stp x23, x24, [sp, 48] 2043 add x19, x20, 4 2044 stp x21, x22, [sp, 32] 2045 ubfiz x21, x2, 5, 32 2046 ldrh w24, [x1, 12] 2047 add x23, x21, 4 2048 stp x25, x26, [sp, 64] 2049 add x23, x20, x23 2050 adrp x25, .LANCHOR78 2051 str x27, [sp, 80] 2052 lsl w26, w24, 3 2053 mov x22, x0 2054 add x27, x25, :lo12:.LANCHOR78 2055.L271: 2056 cmp x19, x23 2057 beq .L285 2058 ldr w0, [x19] 2059 add x2, x29, 104 2060 add x1, x29, 108 2061 bl l2p_addr_tran.isra.0 2062 ldr w0, [x29, 104] 2063 cbnz w0, .L272 2064 ldr w1, [x29, 108] 2065 cmp w26, w1 2066 bls .L272 2067 mov x19, x20 2068 add x21, x20, x21 2069 adrp x22, .LC6 2070 adrp x20, .LANCHOR77 2071 add x22, x22, :lo12:.LC6 2072 add x20, x20, :lo12:.LANCHOR77 2073 mov w23, -1 2074.L273: 2075 cmp x19, x21 2076 bne .L274 2077.L285: 2078 ldp x19, x20, [sp, 16] 2079 mov w0, 0 2080 ldp x21, x22, [sp, 32] 2081 ldp x23, x24, [sp, 48] 2082 ldp x25, x26, [sp, 64] 2083 ldr x27, [sp, 80] 2084 ldp x29, x30, [sp], 112 2085 ret 2086.L274: 2087 ldr w2, [x29, 108] 2088 mov x1, x20 2089 str w23, [x19] 2090 mov x0, x22 2091 add x19, x19, 32 2092 bl printf 2093 ldr x1, [x19, -24] 2094 mov w3, 16 2095 mov w2, 4 2096 adrp x0, .LC7 2097 add x0, x0, :lo12:.LC7 2098 bl rknand_print_hex 2099 ldr x1, [x19, -16] 2100 mov w3, 4 2101 adrp x0, .LC8 2102 mov w2, w3 2103 add x0, x0, :lo12:.LC8 2104 bl rknand_print_hex 2105 b .L273 2106.L272: 2107 add x1, x25, :lo12:.LANCHOR78 2108 ldr x2, [x1, 8] 2109 ldr w1, [x29, 108] 2110 blr x2 2111 cbnz w0, .L275 2112 str wzr, [x19, -4] 2113.L276: 2114 add x0, x22, :lo12:.LANCHOR0 2115 ldrh w0, [x0, 14] 2116 cmp w0, 4 2117 bne .L278 2118 ldrb w0, [x29, 104] 2119 ldr x2, [x27, 8] 2120 ldr w1, [x29, 108] 2121 add w1, w24, w1 2122 blr x2 2123 cbz w0, .L278 2124 mov w0, -1 2125 str w0, [x19, -4] 2126.L278: 2127 add x19, x19, 32 2128 b .L271 2129.L275: 2130 mov w0, -1 2131 str w0, [x19, -4] 2132 b .L276 2133 .size FlashEraseBlocks, .-FlashEraseBlocks 2134 .section .text.FtlFreeSysBlkQueueIn,"ax",@progbits 2135 .align 2 2136 .global FtlFreeSysBlkQueueIn 2137 .type FtlFreeSysBlkQueueIn, %function 2138FtlFreeSysBlkQueueIn: 2139 stp x29, x30, [sp, -48]! 2140 add x29, sp, 0 2141 stp x19, x20, [sp, 16] 2142 and w20, w0, 65535 2143 str x21, [sp, 32] 2144 sub w2, w20, #1 2145 mov w0, 65533 2146 cmp w0, w2, uxth 2147 bcc .L287 2148 adrp x0, .LANCHOR38 2149 add x2, x0, :lo12:.LANCHOR38 2150 mov x19, x0 2151 ldrh w2, [x2, 6] 2152 cmp w2, 1024 2153 beq .L287 2154 and w1, w1, 65535 2155 cbz w1, .L289 2156 mov w0, w20 2157 bl P2V_block_in_plane 2158 and w21, w0, 65535 2159 adrp x0, .LANCHOR79 2160 lsl w1, w20, 10 2161 mov w2, 1 2162 ldr x0, [x0, #:lo12:.LANCHOR79] 2163 str w1, [x0, 4] 2164 mov w1, w2 2165 bl FlashEraseBlocks 2166 adrp x1, .LANCHOR47 2167 ubfiz x0, x21, 1, 16 2168 ldr x2, [x1, #:lo12:.LANCHOR47] 2169 ldrh w1, [x2, x0] 2170 add w1, w1, 1 2171 strh w1, [x2, x0] 2172 adrp x1, .LANCHOR80 2173 ldr w0, [x1, #:lo12:.LANCHOR80] 2174 add w0, w0, 1 2175 str w0, [x1, #:lo12:.LANCHOR80] 2176.L289: 2177 add x0, x19, :lo12:.LANCHOR38 2178 ldrh w1, [x0, 6] 2179 add w1, w1, 1 2180 strh w1, [x0, 6] 2181 ldrh w1, [x0, 4] 2182 add x2, x0, x1, sxtw 1 2183 add w1, w1, 1 2184 and w1, w1, 1023 2185 strh w1, [x0, 4] 2186 strh w20, [x2, 8] 2187.L287: 2188 ldp x19, x20, [sp, 16] 2189 ldr x21, [sp, 32] 2190 ldp x29, x30, [sp], 48 2191 ret 2192 .size FtlFreeSysBlkQueueIn, .-FtlFreeSysBlkQueueIn 2193 .section .text.FtlFreeSysBlkQueueOut,"ax",@progbits 2194 .align 2 2195 .global FtlFreeSysBlkQueueOut 2196 .type FtlFreeSysBlkQueueOut, %function 2197FtlFreeSysBlkQueueOut: 2198 adrp x0, .LANCHOR38 2199 add x1, x0, :lo12:.LANCHOR38 2200 stp x29, x30, [sp, -32]! 2201 add x29, sp, 0 2202 ldrh w2, [x1, 6] 2203 stp x19, x20, [sp, 16] 2204 mov x19, x0 2205 cbz w2, .L301 2206 ldrh w0, [x1, 2] 2207 sub w2, w2, #1 2208 strh w2, [x1, 6] 2209 mov w2, 1 2210 add x3, x1, x0, sxtw 1 2211 add w0, w0, 1 2212 and w0, w0, 1023 2213 strh w0, [x1, 2] 2214 adrp x0, .LANCHOR79 2215 ldrh w20, [x3, 8] 2216 ldr x0, [x0, #:lo12:.LANCHOR79] 2217 lsl w1, w20, 10 2218 str w1, [x0, 4] 2219 mov w1, w2 2220 bl FlashEraseBlocks 2221 adrp x1, .LANCHOR80 2222 ldr w0, [x1, #:lo12:.LANCHOR80] 2223 add w0, w0, 1 2224 str w0, [x1, #:lo12:.LANCHOR80] 2225.L298: 2226 sub w0, w20, #1 2227 mov w1, 65533 2228 cmp w1, w0, uxth 2229 bcs .L299 2230 add x0, x19, :lo12:.LANCHOR38 2231 mov w1, w20 2232 ldrh w2, [x0, 6] 2233 adrp x0, .LC9 2234 add x0, x0, :lo12:.LC9 2235 bl printf 2236.L300: 2237 b .L300 2238.L301: 2239 mov w20, 65535 2240 b .L298 2241.L299: 2242 mov w0, w20 2243 ldp x19, x20, [sp, 16] 2244 ldp x29, x30, [sp], 32 2245 ret 2246 .size FtlFreeSysBlkQueueOut, .-FtlFreeSysBlkQueueOut 2247 .section .text.ftl_map_blk_alloc_new_blk,"ax",@progbits 2248 .align 2 2249 .global ftl_map_blk_alloc_new_blk 2250 .type ftl_map_blk_alloc_new_blk, %function 2251ftl_map_blk_alloc_new_blk: 2252 stp x29, x30, [sp, -48]! 2253 add x29, sp, 0 2254 stp x19, x20, [sp, 16] 2255 mov x19, x0 2256 ldrh w1, [x0, 10] 2257 mov w20, 0 2258 ldr x0, [x0, 16] 2259 str x21, [sp, 32] 2260.L304: 2261 cmp w20, w1 2262 beq .L308 2263 mov x21, x0 2264 ldrh w2, [x0], 2 2265 cbnz w2, .L305 2266 bl FtlFreeSysBlkQueueOut 2267 and w1, w0, 65535 2268 strh w0, [x21] 2269 sub w2, w1, #1 2270 mov w0, 65533 2271 cmp w0, w2, uxth 2272 bcs .L306 2273 adrp x0, .LANCHOR38+6 2274 ldrh w2, [x0, #:lo12:.LANCHOR38+6] 2275 adrp x0, .LC10 2276 add x0, x0, :lo12:.LC10 2277 bl printf 2278.L307: 2279 b .L307 2280.L306: 2281 ldr w0, [x19, 48] 2282 strh wzr, [x19, 2] 2283 add w0, w0, 1 2284 str w0, [x19, 48] 2285 ldrh w0, [x19, 8] 2286 strh w20, [x19] 2287 add w0, w0, 1 2288 strh w0, [x19, 8] 2289.L308: 2290 ldrh w0, [x19, 10] 2291 cmp w0, w20 2292 bhi .L310 2293 adrp x1, .LANCHOR81 2294 adrp x0, .LC1 2295 mov w2, 578 2296 add x1, x1, :lo12:.LANCHOR81 2297 add x0, x0, :lo12:.LC1 2298 bl printf 2299.L310: 2300 mov w0, 0 2301 ldr x21, [sp, 32] 2302 ldp x19, x20, [sp, 16] 2303 ldp x29, x30, [sp], 48 2304 ret 2305.L305: 2306 add w20, w20, 1 2307 and w20, w20, 65535 2308 b .L304 2309 .size ftl_map_blk_alloc_new_blk, .-ftl_map_blk_alloc_new_blk 2310 .section .text.ftl_memset,"ax",@progbits 2311 .align 2 2312 .global ftl_memset 2313 .type ftl_memset, %function 2314ftl_memset: 2315 uxtw x2, w2 2316 b memset 2317 .size ftl_memset, .-ftl_memset 2318 .section .text.FtlMemInit,"ax",@progbits 2319 .align 2 2320 .global FtlMemInit 2321 .type FtlMemInit, %function 2322FtlMemInit: 2323 stp x29, x30, [sp, -64]! 2324 adrp x0, .LANCHOR82 2325 mov w1, 65535 2326 add x29, sp, 0 2327 str wzr, [x0, #:lo12:.LANCHOR82] 2328 adrp x0, .LANCHOR83 2329 stp x19, x20, [sp, 16] 2330 adrp x19, .LANCHOR21 2331 str wzr, [x0, #:lo12:.LANCHOR83] 2332 adrp x0, .LANCHOR84 2333 stp x21, x22, [sp, 32] 2334 adrp x22, .LANCHOR3 2335 str wzr, [x0, #:lo12:.LANCHOR84] 2336 adrp x0, .LANCHOR85 2337 str x23, [sp, 48] 2338 adrp x21, .LANCHOR23 2339 str wzr, [x0, #:lo12:.LANCHOR85] 2340 adrp x0, .LANCHOR86 2341 adrp x23, .LANCHOR24 2342 str wzr, [x0, #:lo12:.LANCHOR86] 2343 adrp x0, .LANCHOR87 2344 str wzr, [x0, #:lo12:.LANCHOR87] 2345 adrp x0, .LANCHOR88 2346 str wzr, [x0, #:lo12:.LANCHOR88] 2347 adrp x0, .LANCHOR89 2348 str wzr, [x0, #:lo12:.LANCHOR89] 2349 adrp x0, .LANCHOR90 2350 str wzr, [x0, #:lo12:.LANCHOR90] 2351 adrp x0, .LANCHOR91 2352 str wzr, [x0, #:lo12:.LANCHOR91] 2353 adrp x0, .LANCHOR80 2354 str wzr, [x0, #:lo12:.LANCHOR80] 2355 adrp x0, .LANCHOR92 2356 str wzr, [x0, #:lo12:.LANCHOR92] 2357 adrp x0, .LANCHOR93 2358 str wzr, [x0, #:lo12:.LANCHOR93] 2359 adrp x0, .LANCHOR94 2360 str wzr, [x0, #:lo12:.LANCHOR94] 2361 adrp x0, .LANCHOR95 2362 str wzr, [x0, #:lo12:.LANCHOR95] 2363 adrp x0, .LANCHOR96 2364 str w1, [x0, #:lo12:.LANCHOR96] 2365 adrp x0, .LANCHOR97 2366 adrp x1, .LANCHOR72 2367 str wzr, [x0, #:lo12:.LANCHOR97] 2368 adrp x0, .LANCHOR98 2369 str wzr, [x0, #:lo12:.LANCHOR98] 2370 adrp x0, .LANCHOR99 2371 str wzr, [x0, #:lo12:.LANCHOR99] 2372 mov w0, -1 2373 strh w0, [x1, #:lo12:.LANCHOR72] 2374 adrp x1, .LANCHOR73 2375 strh w0, [x1, #:lo12:.LANCHOR73] 2376 adrp x0, .LANCHOR100 2377 mov w1, 32 2378 strh w1, [x0, #:lo12:.LANCHOR100] 2379 adrp x0, .LANCHOR101 2380 mov w1, 128 2381 strh w1, [x0, #:lo12:.LANCHOR101] 2382 adrp x0, .LANCHOR102 2383 strh wzr, [x0, #:lo12:.LANCHOR102] 2384 adrp x0, .LANCHOR74 2385 strh wzr, [x0, #:lo12:.LANCHOR74] 2386 adrp x0, .LANCHOR76 2387 strh wzr, [x0, #:lo12:.LANCHOR76] 2388 ldrh w0, [x19, #:lo12:.LANCHOR21] 2389 lsl w0, w0, 1 2390 bl ftl_malloc 2391 adrp x1, .LANCHOR69 2392 str x0, [x1, #:lo12:.LANCHOR69] 2393 mov w0, 12 2394 ldrh w1, [x19, #:lo12:.LANCHOR21] 2395 mul w0, w1, w0 2396 bl ftl_malloc 2397 ldrh w19, [x22, #:lo12:.LANCHOR3] 2398 adrp x1, .LANCHOR71 2399 lsl w20, w19, 5 2400 lsl w19, w19, 7 2401 str x0, [x1, #:lo12:.LANCHOR71] 2402 mov w0, w19 2403 bl ftl_malloc 2404 adrp x1, .LANCHOR103 2405 str x0, [x1, #:lo12:.LANCHOR103] 2406 mov w0, w20 2407 bl ftl_malloc 2408 adrp x1, .LANCHOR104 2409 str x0, [x1, #:lo12:.LANCHOR104] 2410 mov w0, w19 2411 bl ftl_malloc 2412 adrp x1, .LANCHOR105 2413 str x0, [x1, #:lo12:.LANCHOR105] 2414 mov w0, w20 2415 bl ftl_malloc 2416 adrp x1, .LANCHOR79 2417 str x0, [x1, #:lo12:.LANCHOR79] 2418 mov w0, w20 2419 bl ftl_malloc 2420 adrp x20, .LANCHOR67 2421 adrp x1, .LANCHOR66 2422 ldrh w19, [x21, #:lo12:.LANCHOR23] 2423 str x0, [x1, #:lo12:.LANCHOR66] 2424 ldrh w0, [x22, #:lo12:.LANCHOR3] 2425 lsl w0, w0, 1 2426 add w0, w0, 1 2427 str w0, [x20, #:lo12:.LANCHOR67] 2428 mov w0, w19 2429 bl ftl_malloc 2430 adrp x1, .LANCHOR106 2431 str x0, [x1, #:lo12:.LANCHOR106] 2432 mov w0, w19 2433 bl ftl_malloc 2434 adrp x1, .LANCHOR107 2435 str x0, [x1, #:lo12:.LANCHOR107] 2436 mov w0, w19 2437 bl ftl_malloc 2438 adrp x1, .LANCHOR108 2439 str x0, [x1, #:lo12:.LANCHOR108] 2440 ldr w0, [x20, #:lo12:.LANCHOR67] 2441 mul w0, w19, w0 2442 bl ftl_malloc 2443 adrp x1, .LANCHOR64 2444 str x0, [x1, #:lo12:.LANCHOR64] 2445 mov w0, w19 2446 bl ftl_malloc 2447 adrp x1, .LANCHOR109 2448 str x0, [x1, #:lo12:.LANCHOR109] 2449 mov w0, w19 2450 bl ftl_malloc 2451 adrp x1, .LANCHOR110 2452 str x0, [x1, #:lo12:.LANCHOR110] 2453 mov w0, 24 2454 ldr w1, [x20, #:lo12:.LANCHOR67] 2455 mul w0, w1, w0 2456 bl ftl_malloc 2457 adrp x1, .LANCHOR63 2458 str x0, [x1, #:lo12:.LANCHOR63] 2459 mov w0, w19 2460 bl ftl_malloc 2461 adrp x1, .LANCHOR111 2462 str x0, [x1, #:lo12:.LANCHOR111] 2463 mov w0, w19 2464 bl ftl_malloc 2465 adrp x1, .LANCHOR112 2466 str x0, [x1, #:lo12:.LANCHOR112] 2467 adrp x0, .LANCHOR12 2468 ldrh w0, [x0, #:lo12:.LANCHOR12] 2469 lsl w0, w0, 2 2470 bl ftl_malloc 2471 adrp x1, .LANCHOR113 2472 ldrh w19, [x23, #:lo12:.LANCHOR24] 2473 str x0, [x1, #:lo12:.LANCHOR113] 2474 ldrh w0, [x22, #:lo12:.LANCHOR3] 2475 adrp x22, .LANCHOR30 2476 mul w19, w19, w0 2477 mov w0, w19 2478 bl ftl_malloc 2479 adrp x1, .LANCHOR114 2480 str x0, [x1, #:lo12:.LANCHOR114] 2481 lsl w0, w19, 2 2482 bl ftl_malloc 2483 adrp x19, .LANCHOR6 2484 adrp x1, .LANCHOR115 2485 str x0, [x1, #:lo12:.LANCHOR115] 2486 ldrh w1, [x23, #:lo12:.LANCHOR24] 2487 ldr w0, [x20, #:lo12:.LANCHOR67] 2488 adrp x20, .LANCHOR116 2489 mul w0, w1, w0 2490 bl ftl_malloc 2491 adrp x1, .LANCHOR65 2492 str x0, [x1, #:lo12:.LANCHOR65] 2493 ldrh w0, [x19, #:lo12:.LANCHOR6] 2494 ubfiz w0, w0, 1, 15 2495 strh w0, [x20, #:lo12:.LANCHOR116] 2496 and w0, w0, 65534 2497 bl ftl_malloc 2498 adrp x1, .LANCHOR117 2499 str x0, [x1, #:lo12:.LANCHOR117] 2500 ldrh w0, [x20, #:lo12:.LANCHOR116] 2501 add x0, x0, 547 2502 lsr x0, x0, 9 2503 strh w0, [x20, #:lo12:.LANCHOR116] 2504 lsl w0, w0, 9 2505 bl ftl_malloc 2506 adrp x1, .LANCHOR118 2507 str x0, [x1, #:lo12:.LANCHOR118] 2508 adrp x1, .LANCHOR47 2509 add x0, x0, 32 2510 str x0, [x1, #:lo12:.LANCHOR47] 2511 ldrh w0, [x19, #:lo12:.LANCHOR6] 2512 lsl w0, w0, 1 2513 bl ftl_malloc 2514 ldr w20, [x22, #:lo12:.LANCHOR30] 2515 adrp x1, .LANCHOR42 2516 str x0, [x1, #:lo12:.LANCHOR42] 2517 lsl w20, w20, 1 2518 mov w0, w20 2519 bl ftl_malloc 2520 adrp x1, .LANCHOR119 2521 str x0, [x1, #:lo12:.LANCHOR119] 2522 mov w0, w20 2523 bl ftl_malloc 2524 adrp x20, .LANCHOR27 2525 adrp x1, .LANCHOR120 2526 str x0, [x1, #:lo12:.LANCHOR120] 2527 ldrh w0, [x19, #:lo12:.LANCHOR6] 2528 lsr w0, w0, 3 2529 add w0, w0, 4 2530 bl ftl_malloc 2531 adrp x1, .LANCHOR1 2532 str x0, [x1, #:lo12:.LANCHOR1] 2533 ldrh w0, [x20, #:lo12:.LANCHOR27] 2534 lsl w0, w0, 1 2535 bl ftl_malloc 2536 adrp x1, .LANCHOR36 2537 str x0, [x1, #:lo12:.LANCHOR36] 2538 ldrh w0, [x20, #:lo12:.LANCHOR27] 2539 lsl w0, w0, 1 2540 bl ftl_malloc 2541 adrp x1, .LANCHOR121 2542 str x0, [x1, #:lo12:.LANCHOR121] 2543 ldrh w0, [x20, #:lo12:.LANCHOR27] 2544 adrp x20, .LANCHOR28 2545 lsl w0, w0, 2 2546 bl ftl_malloc 2547 adrp x1, .LANCHOR122 2548 str x0, [x1, #:lo12:.LANCHOR122] 2549 ldrh w0, [x20, #:lo12:.LANCHOR28] 2550 lsl w0, w0, 2 2551 bl ftl_malloc 2552 ldrh w2, [x20, #:lo12:.LANCHOR28] 2553 adrp x1, .LANCHOR123 2554 adrp x20, .LANCHOR33 2555 str x0, [x1, #:lo12:.LANCHOR123] 2556 mov w1, 0 2557 lsl w2, w2, 2 2558 bl ftl_memset 2559 adrp x0, .LANCHOR32 2560 ldrh w0, [x0, #:lo12:.LANCHOR32] 2561 lsl w0, w0, 2 2562 bl ftl_malloc 2563 adrp x1, .LANCHOR124 2564 str x0, [x1, #:lo12:.LANCHOR124] 2565 ldr w0, [x22, #:lo12:.LANCHOR30] 2566 lsl w0, w0, 2 2567 bl ftl_malloc 2568 adrp x1, .LANCHOR125 2569 str x0, [x1, #:lo12:.LANCHOR125] 2570 ldrh w0, [x20, #:lo12:.LANCHOR33] 2571 lsl w0, w0, 4 2572 bl ftl_malloc 2573 adrp x1, .LANCHOR55 2574 str x0, [x1, #:lo12:.LANCHOR55] 2575 ldrh w1, [x20, #:lo12:.LANCHOR33] 2576 adrp x20, .LANCHOR10 2577 ldrh w0, [x21, #:lo12:.LANCHOR23] 2578 mul w0, w1, w0 2579 bl ftl_malloc 2580 adrp x1, .LANCHOR126 2581 str x0, [x1, #:lo12:.LANCHOR126] 2582 mov w0, 6 2583 ldrh w1, [x19, #:lo12:.LANCHOR6] 2584 adrp x19, .LANCHOR127 2585 mul w0, w1, w0 2586 bl ftl_malloc 2587 adrp x1, .LANCHOR40 2588 str x0, [x1, #:lo12:.LANCHOR40] 2589 adrp x0, .LANCHOR17 2590 ldrh w1, [x20, #:lo12:.LANCHOR10] 2591 ldrh w0, [x0, #:lo12:.LANCHOR17] 2592 add w0, w0, 31 2593 asr w0, w0, 5 2594 strh w0, [x19, #:lo12:.LANCHOR127] 2595 mul w0, w1, w0 2596 lsl w0, w0, 2 2597 bl ftl_malloc 2598 adrp x1, .LANCHOR37 2599 ldrh w5, [x19, #:lo12:.LANCHOR127] 2600 add x2, x1, :lo12:.LANCHOR37 2601 ldrh w7, [x20, #:lo12:.LANCHOR10] 2602 add x6, x2, 40 2603 mov w3, w5 2604 str x0, [x2, 32] 2605 mov x0, 1 2606.L314: 2607 cmp w0, w7 2608 bcc .L315 2609 mov w2, 8 2610 sub w2, w2, w0 2611 add x2, x2, 1 2612 add x1, x1, :lo12:.LANCHOR37 2613 mov x3, 0 2614.L316: 2615 add x3, x3, 1 2616 cmp x2, x3 2617 bne .L317 2618 mov w0, 0 2619 ldr x23, [sp, 48] 2620 ldp x19, x20, [sp, 16] 2621 ldp x21, x22, [sp, 32] 2622 ldp x29, x30, [sp], 64 2623 ret 2624.L315: 2625 ldr x4, [x2, 32] 2626 add w0, w0, 1 2627 add x4, x4, x3, uxtw 2 2628 add w3, w3, w5 2629 str x4, [x6], 8 2630 b .L314 2631.L317: 2632 add x4, x0, x3 2633 add x4, x1, x4, lsl 3 2634 str xzr, [x4, 24] 2635 b .L316 2636 .size FtlMemInit, .-FtlMemInit 2637 .section .text.FtlBbt2Bitmap,"ax",@progbits 2638 .align 2 2639 .global FtlBbt2Bitmap 2640 .type FtlBbt2Bitmap, %function 2641FtlBbt2Bitmap: 2642 stp x29, x30, [sp, -64]! 2643 add x29, sp, 0 2644 stp x21, x22, [sp, 32] 2645 mov x22, x0 2646 adrp x0, .LANCHOR127 2647 stp x23, x24, [sp, 48] 2648 adrp x21, .LANCHOR17 2649 adrp x23, .LANCHOR128 2650 ldrh w2, [x0, #:lo12:.LANCHOR127] 2651 add x21, x21, :lo12:.LANCHOR17 2652 add x23, x23, :lo12:.LANCHOR128 2653 stp x19, x20, [sp, 16] 2654 mov w24, 65535 2655 mov x19, 0 2656 mov x20, x1 2657 lsl w2, w2, 2 2658 mov w1, 0 2659 mov x0, x20 2660 bl ftl_memset 2661.L322: 2662 ldrh w0, [x22, x19] 2663 cmp w0, w24 2664 beq .L319 2665 ldrh w1, [x21] 2666 cmp w1, w0 2667 bhi .L321 2668 adrp x0, .LC1 2669 mov w2, 74 2670 mov x1, x23 2671 add x0, x0, :lo12:.LC1 2672 bl printf 2673.L321: 2674 ldrh w2, [x22, x19] 2675 mov w1, 1 2676 add x19, x19, 2 2677 cmp x19, 1024 2678 ubfx x0, x2, 5, 11 2679 lsl w2, w1, w2 2680 lsl x0, x0, 2 2681 ldr w1, [x20, x0] 2682 orr w1, w1, w2 2683 str w1, [x20, x0] 2684 bne .L322 2685.L319: 2686 ldp x19, x20, [sp, 16] 2687 ldp x21, x22, [sp, 32] 2688 ldp x23, x24, [sp, 48] 2689 ldp x29, x30, [sp], 64 2690 ret 2691 .size FtlBbt2Bitmap, .-FtlBbt2Bitmap 2692 .section .text.FtlBbtMemInit,"ax",@progbits 2693 .align 2 2694 .global FtlBbtMemInit 2695 .type FtlBbtMemInit, %function 2696FtlBbtMemInit: 2697 adrp x1, .LANCHOR37 2698 add x0, x1, :lo12:.LANCHOR37 2699 mov w2, -1 2700 add x0, x0, 12 2701 strh w2, [x1, #:lo12:.LANCHOR37] 2702 mov w2, 16 2703 strh wzr, [x0, -6] 2704 mov w1, 255 2705 b ftl_memset 2706 .size FtlBbtMemInit, .-FtlBbtMemInit 2707 .section .text.FtlFreeSysBlkQueueInit,"ax",@progbits 2708 .align 2 2709 .global FtlFreeSysBlkQueueInit 2710 .type FtlFreeSysBlkQueueInit, %function 2711FtlFreeSysBlkQueueInit: 2712 stp x29, x30, [sp, -16]! 2713 adrp x1, .LANCHOR38 2714 add x3, x1, :lo12:.LANCHOR38 2715 mov w2, 2048 2716 add x29, sp, 0 2717 strh w0, [x1, #:lo12:.LANCHOR38] 2718 mov w1, 0 2719 strh wzr, [x3, 2] 2720 add x0, x3, 8 2721 strh wzr, [x3, 4] 2722 strh wzr, [x3, 6] 2723 bl ftl_memset 2724 mov w0, 0 2725 ldp x29, x30, [sp], 16 2726 ret 2727 .size FtlFreeSysBlkQueueInit, .-FtlFreeSysBlkQueueInit 2728 .section .text.ftl_free_no_use_map_blk,"ax",@progbits 2729 .align 2 2730 .global ftl_free_no_use_map_blk 2731 .type ftl_free_no_use_map_blk, %function 2732ftl_free_no_use_map_blk: 2733 stp x29, x30, [sp, -80]! 2734 mov w1, 0 2735 add x29, sp, 0 2736 stp x19, x20, [sp, 16] 2737 mov x19, x0 2738 ldrh w2, [x0, 10] 2739 stp x21, x22, [sp, 32] 2740 ldp x21, x20, [x0, 32] 2741 stp x23, x24, [sp, 48] 2742 ldr x22, [x0, 16] 2743 lsl w2, w2, 1 2744 mov x0, x21 2745 str x25, [sp, 64] 2746 bl ftl_memset 2747 mov w0, 0 2748.L330: 2749 ldrh w1, [x19, 6] 2750 cmp w1, w0 2751 bhi .L334 2752 adrp x0, .LANCHOR20 2753 mov w23, 0 2754 mov w20, 0 2755 ldrh w1, [x0, #:lo12:.LANCHOR20] 2756 ldrh w0, [x19] 2757 strh w1, [x21, x0, lsl 1] 2758 ldrh w24, [x21] 2759.L335: 2760 ldrh w0, [x19, 10] 2761 cmp w0, w20 2762 bhi .L339 2763 mov w0, w23 2764 ldr x25, [sp, 64] 2765 ldp x19, x20, [sp, 16] 2766 ldp x21, x22, [sp, 32] 2767 ldp x23, x24, [sp, 48] 2768 ldp x29, x30, [sp], 80 2769 ret 2770.L334: 2771 ubfiz x1, x0, 2, 16 2772 ldr w2, [x20, x1] 2773 mov w1, 0 2774 ubfx x2, x2, 10, 16 2775.L331: 2776 ldrh w3, [x19, 10] 2777 cmp w3, w1 2778 bhi .L333 2779 add w0, w0, 1 2780 and w0, w0, 65535 2781 b .L330 2782.L333: 2783 ubfiz x3, x1, 1, 16 2784 ldrh w4, [x22, x3] 2785 cmp w4, w2 2786 bne .L332 2787 cbz w2, .L332 2788 ldrh w4, [x21, x3] 2789 add w4, w4, 1 2790 strh w4, [x21, x3] 2791.L332: 2792 add w1, w1, 1 2793 and w1, w1, 65535 2794 b .L331 2795.L339: 2796 ubfiz x0, x20, 1, 16 2797 ldrh w1, [x21, x0] 2798 cmp w24, w1 2799 bls .L336 2800 add x25, x22, x0 2801 ldrh w0, [x22, x0] 2802 cbnz w0, .L337 2803.L338: 2804 add w20, w20, 1 2805 and w20, w20, 65535 2806 b .L335 2807.L336: 2808 cbnz w1, .L338 2809 add x25, x22, x0 2810 ldrh w0, [x22, x0] 2811 cbz w0, .L338 2812.L340: 2813 mov w1, 1 2814 bl FtlFreeSysBlkQueueIn 2815 strh wzr, [x25] 2816 ldrh w0, [x19, 8] 2817 sub w0, w0, #1 2818 strh w0, [x19, 8] 2819 b .L338 2820.L341: 2821 mov w24, 0 2822 b .L340 2823.L337: 2824 mov w23, w20 2825 cbz w1, .L341 2826 mov w24, w1 2827 b .L338 2828 .size ftl_free_no_use_map_blk, .-ftl_free_no_use_map_blk 2829 .section .text.FtlL2PDataInit,"ax",@progbits 2830 .align 2 2831 .global FtlL2PDataInit 2832 .type FtlL2PDataInit, %function 2833FtlL2PDataInit: 2834 stp x29, x30, [sp, -64]! 2835 mov w1, 0 2836 add x29, sp, 0 2837 stp x19, x20, [sp, 16] 2838 adrp x19, .LANCHOR120 2839 adrp x20, .LANCHOR30 2840 stp x21, x22, [sp, 32] 2841 ldr x0, [x19, #:lo12:.LANCHOR120] 2842 adrp x22, .LANCHOR23 2843 ldr w2, [x20, #:lo12:.LANCHOR30] 2844 adrp x21, .LANCHOR33 2845 str x23, [sp, 48] 2846 adrp x23, .LANCHOR126 2847 lsl w2, w2, 1 2848 bl ftl_memset 2849 ldrh w0, [x21, #:lo12:.LANCHOR33] 2850 mov w1, 255 2851 ldrh w2, [x22, #:lo12:.LANCHOR23] 2852 mul w2, w2, w0 2853 ldr x0, [x23, #:lo12:.LANCHOR126] 2854 bl ftl_memset 2855 adrp x0, .LANCHOR55 2856 ldrh w3, [x21, #:lo12:.LANCHOR33] 2857 ldr x6, [x23, #:lo12:.LANCHOR126] 2858 mov x1, 0 2859 ldr x0, [x0, #:lo12:.LANCHOR55] 2860 mov w2, -1 2861 ldrh w5, [x22, #:lo12:.LANCHOR23] 2862 add x3, x0, x3, lsl 4 2863.L351: 2864 add x4, x1, x5 2865 cmp x0, x3 2866 bne .L352 2867 adrp x1, .LANCHOR129 2868 add x0, x1, :lo12:.LANCHOR129 2869 ldp x21, x22, [sp, 32] 2870 strh w2, [x1, #:lo12:.LANCHOR129] 2871 ldr w1, [x20, #:lo12:.LANCHOR30] 2872 strh w1, [x0, 10] 2873 mov w1, -3902 2874 strh w1, [x0, 4] 2875 adrp x1, .LANCHOR130 2876 ldr x23, [sp, 48] 2877 strh w2, [x0, 2] 2878 ldrh w1, [x1, #:lo12:.LANCHOR130] 2879 strh w1, [x0, 8] 2880 adrp x1, .LANCHOR32 2881 ldrh w1, [x1, #:lo12:.LANCHOR32] 2882 strh w1, [x0, 6] 2883 adrp x1, .LANCHOR119 2884 ldr x1, [x1, #:lo12:.LANCHOR119] 2885 str x1, [x0, 16] 2886 adrp x1, .LANCHOR125 2887 ldr x1, [x1, #:lo12:.LANCHOR125] 2888 str x1, [x0, 24] 2889 ldr x1, [x19, #:lo12:.LANCHOR120] 2890 ldp x19, x20, [sp, 16] 2891 str x1, [x0, 32] 2892 adrp x1, .LANCHOR124 2893 ldr x1, [x1, #:lo12:.LANCHOR124] 2894 str x1, [x0, 40] 2895 ldp x29, x30, [sp], 64 2896 ret 2897.L352: 2898 and x1, x1, -4 2899 strh w2, [x0] 2900 add x1, x6, x1 2901 str wzr, [x0, 4] 2902 str x1, [x0, 8] 2903 add x0, x0, 16 2904 mov x1, x4 2905 b .L351 2906 .size FtlL2PDataInit, .-FtlL2PDataInit 2907 .section .text.FtlVariablesInit,"ax",@progbits 2908 .align 2 2909 .global FtlVariablesInit 2910 .type FtlVariablesInit, %function 2911FtlVariablesInit: 2912 stp x29, x30, [sp, -32]! 2913 adrp x0, .LANCHOR131 2914 mov w1, -1 2915 add x29, sp, 0 2916 strh w1, [x0, #:lo12:.LANCHOR131] 2917 adrp x0, .LANCHOR132 2918 mov w1, -1 2919 str x19, [sp, 16] 2920 str wzr, [x0, #:lo12:.LANCHOR132] 2921 adrp x0, .LANCHOR133 2922 adrp x19, .LANCHOR6 2923 str wzr, [x0, #:lo12:.LANCHOR133] 2924 adrp x0, .LANCHOR134 2925 str w1, [x0, #:lo12:.LANCHOR134] 2926 adrp x0, .LANCHOR35 2927 mov w1, 0 2928 strh wzr, [x0, #:lo12:.LANCHOR35] 2929 adrp x0, .LANCHOR27 2930 ldrh w2, [x0, #:lo12:.LANCHOR27] 2931 adrp x0, .LANCHOR36 2932 ldr x0, [x0, #:lo12:.LANCHOR36] 2933 lsl w2, w2, 1 2934 bl ftl_memset 2935 adrp x0, .LANCHOR47 2936 ldrh w2, [x19, #:lo12:.LANCHOR6] 2937 mov w1, 0 2938 ldr x0, [x0, #:lo12:.LANCHOR47] 2939 lsl w2, w2, 1 2940 bl ftl_memset 2941 adrp x0, .LANCHOR117 2942 ldrh w2, [x19, #:lo12:.LANCHOR6] 2943 mov w1, 0 2944 ldr x0, [x0, #:lo12:.LANCHOR117] 2945 lsl w2, w2, 1 2946 bl ftl_memset 2947 mov w2, 48 2948 mov w1, 0 2949 adrp x0, .LANCHOR39 2950 add x0, x0, :lo12:.LANCHOR39 2951 bl ftl_memset 2952 mov w2, 512 2953 mov w1, 0 2954 adrp x0, .LANCHOR135 2955 add x0, x0, :lo12:.LANCHOR135 2956 bl ftl_memset 2957 bl FtlGcBufInit 2958 bl FtlL2PDataInit 2959 ldr x19, [sp, 16] 2960 mov w0, 0 2961 ldp x29, x30, [sp], 32 2962 ret 2963 .size FtlVariablesInit, .-FtlVariablesInit 2964 .section .text.SupperBlkListInit,"ax",@progbits 2965 .align 2 2966 .global SupperBlkListInit 2967 .type SupperBlkListInit, %function 2968SupperBlkListInit: 2969 stp x29, x30, [sp, -96]! 2970 adrp x0, .LANCHOR6 2971 mov w1, 0 2972 add x29, sp, 0 2973 ldrh w2, [x0, #:lo12:.LANCHOR6] 2974 mov w0, 6 2975 stp x23, x24, [sp, 48] 2976 adrp x24, .LANCHOR40 2977 stp x19, x20, [sp, 16] 2978 adrp x23, .LANCHOR44 2979 stp x21, x22, [sp, 32] 2980 adrp x22, .LANCHOR48 2981 mul w2, w2, w0 2982 ldr x0, [x24, #:lo12:.LANCHOR40] 2983 stp x25, x26, [sp, 64] 2984 adrp x25, .LANCHOR5 2985 str x27, [sp, 80] 2986 adrp x26, .LANCHOR13 2987 add x25, x25, :lo12:.LANCHOR5 2988 add x26, x26, :lo12:.LANCHOR13 2989 bl ftl_memset 2990 mov w21, 0 2991 adrp x0, .LANCHOR46 2992 mov w20, 0 2993 mov w19, 0 2994 strh wzr, [x23, #:lo12:.LANCHOR44] 2995 str xzr, [x0, #:lo12:.LANCHOR46] 2996 adrp x0, .LANCHOR41 2997 strh wzr, [x22, #:lo12:.LANCHOR48] 2998 adrp x27, .LANCHOR3 2999 str xzr, [x0, #:lo12:.LANCHOR41] 3000 adrp x0, .LANCHOR43 3001 str xzr, [x0, #:lo12:.LANCHOR43] 3002.L357: 3003 ldrh w0, [x25] 3004 cmp w19, w0 3005 bcs .L364 3006 adrp x0, .LANCHOR19 3007 ldrh w8, [x27, #:lo12:.LANCHOR3] 3008 mov x6, 0 3009 mov w5, 0 3010 ldrh w7, [x0, #:lo12:.LANCHOR19] 3011 b .L365 3012.L359: 3013 ldrb w0, [x26, x6] 3014 mov w1, w19 3015 bl V2P_block 3016 bl FtlBbmIsBadBlock 3017 cbnz w0, .L358 3018 add w5, w5, w7 3019 and w5, w5, 65535 3020.L358: 3021 add x6, x6, 1 3022.L365: 3023 cmp w8, w6, uxth 3024 bhi .L359 3025 cbz w5, .L360 3026 mov w0, 32768 3027 sdiv w5, w0, w5 3028.L361: 3029 ldr x1, [x24, #:lo12:.LANCHOR40] 3030 mov w0, 6 3031 umaddl x0, w19, w0, x1 3032 strh w5, [x0, 4] 3033 adrp x0, .LANCHOR51 3034 ldrh w0, [x0, #:lo12:.LANCHOR51] 3035 cmp w0, w19 3036 beq .L362 3037 adrp x0, .LANCHOR52 3038 ldrh w0, [x0, #:lo12:.LANCHOR52] 3039 cmp w0, w19 3040 beq .L362 3041 adrp x0, .LANCHOR53 3042 ldrh w0, [x0, #:lo12:.LANCHOR53] 3043 cmp w0, w19 3044 beq .L362 3045 adrp x1, .LANCHOR42 3046 ubfiz x0, x19, 1, 16 3047 ldr x1, [x1, #:lo12:.LANCHOR42] 3048 ldrh w0, [x1, x0] 3049 cbnz w0, .L363 3050 add w21, w21, 1 3051 mov w0, w19 3052 and w21, w21, 65535 3053 bl INSERT_FREE_LIST 3054.L362: 3055 add w19, w19, 1 3056 and w19, w19, 65535 3057 b .L357 3058.L360: 3059 adrp x1, .LANCHOR42 3060 ubfiz x0, x19, 1, 16 3061 mov w2, -1 3062 ldr x1, [x1, #:lo12:.LANCHOR42] 3063 strh w2, [x1, x0] 3064 b .L361 3065.L363: 3066 add w20, w20, 1 3067 mov w0, w19 3068 and w20, w20, 65535 3069 bl INSERT_DATA_LIST 3070 b .L362 3071.L364: 3072 strh w20, [x23, #:lo12:.LANCHOR44] 3073 add w20, w20, w21 3074 strh w21, [x22, #:lo12:.LANCHOR48] 3075 cmp w20, w0 3076 ble .L366 3077 adrp x1, .LANCHOR136 3078 adrp x0, .LC1 3079 mov w2, 2210 3080 add x1, x1, :lo12:.LANCHOR136 3081 add x0, x0, :lo12:.LC1 3082 bl printf 3083.L366: 3084 mov w0, 0 3085 ldr x27, [sp, 80] 3086 ldp x19, x20, [sp, 16] 3087 ldp x21, x22, [sp, 32] 3088 ldp x23, x24, [sp, 48] 3089 ldp x25, x26, [sp, 64] 3090 ldp x29, x30, [sp], 96 3091 ret 3092 .size SupperBlkListInit, .-SupperBlkListInit 3093 .section .text.FtlGcPageVarInit,"ax",@progbits 3094 .align 2 3095 .global FtlGcPageVarInit 3096 .type FtlGcPageVarInit, %function 3097FtlGcPageVarInit: 3098 stp x29, x30, [sp, -32]! 3099 adrp x0, .LANCHOR68 3100 mov w1, 255 3101 add x29, sp, 0 3102 strh wzr, [x0, #:lo12:.LANCHOR68] 3103 adrp x0, .LANCHOR70 3104 str x19, [sp, 16] 3105 adrp x19, .LANCHOR21 3106 strh wzr, [x0, #:lo12:.LANCHOR70] 3107 adrp x0, .LANCHOR69 3108 ldrh w2, [x19, #:lo12:.LANCHOR21] 3109 ldr x0, [x0, #:lo12:.LANCHOR69] 3110 lsl w2, w2, 1 3111 bl ftl_memset 3112 ldrh w2, [x19, #:lo12:.LANCHOR21] 3113 mov w0, 12 3114 mov w1, 255 3115 mul w2, w2, w0 3116 adrp x0, .LANCHOR71 3117 ldr x0, [x0, #:lo12:.LANCHOR71] 3118 bl ftl_memset 3119 ldr x19, [sp, 16] 3120 ldp x29, x30, [sp], 32 3121 b FtlGcBufInit 3122 .size FtlGcPageVarInit, .-FtlGcPageVarInit 3123 .section .text.FlashGetBadBlockList,"ax",@progbits 3124 .align 2 3125 .global FlashGetBadBlockList 3126 .type FlashGetBadBlockList, %function 3127FlashGetBadBlockList: 3128 stp x29, x30, [sp, -32]! 3129 mov w2, 256 3130 add x29, sp, 0 3131 stp x19, x20, [sp, 16] 3132 mov x19, x0 3133 mov w20, w1 3134 mov w1, 255 3135 bl ftl_memset 3136 adrp x0, .LANCHOR78 3137 mov w1, w20 3138 ldr x2, [x0, #:lo12:.LANCHOR78] 3139 mov x0, x19 3140 blr x2 3141 and w0, w0, 65535 3142 cmp w0, 50 3143 bls .L371 3144 mov w2, 256 3145 mov w1, 255 3146 mov x0, x19 3147 bl ftl_memset 3148 mov w0, 0 3149.L371: 3150 adrp x1, .LANCHOR0+14 3151 ldrh w1, [x1, #:lo12:.LANCHOR0+14] 3152 cmp w1, 4 3153 bne .L375 3154 mov x1, 0 3155.L373: 3156 cmp w0, w1, uxth 3157 bhi .L374 3158.L375: 3159 ldp x19, x20, [sp, 16] 3160 ldp x29, x30, [sp], 32 3161 ret 3162.L374: 3163 ldrh w2, [x19, x1, lsl 1] 3164 lsr w2, w2, 1 3165 strh w2, [x19, x1, lsl 1] 3166 add x1, x1, 1 3167 b .L373 3168 .size FlashGetBadBlockList, .-FlashGetBadBlockList 3169 .section .text.ftl_memcpy,"ax",@progbits 3170 .align 2 3171 .global ftl_memcpy 3172 .type ftl_memcpy, %function 3173ftl_memcpy: 3174 uxtw x2, w2 3175 b memcpy 3176 .size ftl_memcpy, .-ftl_memcpy 3177 .section .text.FlashReadPages,"ax",@progbits 3178 .align 2 3179 .global FlashReadPages 3180 .type FlashReadPages, %function 3181FlashReadPages: 3182 stp x29, x30, [sp, -112]! 3183 ubfiz x1, x1, 5, 32 3184 add x29, sp, 0 3185 stp x21, x22, [sp, 32] 3186 adrp x21, .LANCHOR0 3187 add x2, x21, :lo12:.LANCHOR0 3188 str x27, [sp, 80] 3189 stp x23, x24, [sp, 48] 3190 adrp x24, .LANCHOR137 3191 stp x19, x20, [sp, 16] 3192 add x23, x0, x1 3193 ldrh w27, [x2, 12] 3194 mov x19, x0 3195 stp x25, x26, [sp, 64] 3196 add x24, x24, :lo12:.LANCHOR137 3197 adrp x25, .LC1 3198 add x25, x25, :lo12:.LC1 3199.L379: 3200 cmp x23, x19 3201 bne .L392 3202 ldp x19, x20, [sp, 16] 3203 mov w0, 0 3204 ldp x21, x22, [sp, 32] 3205 ldp x23, x24, [sp, 48] 3206 ldp x25, x26, [sp, 64] 3207 ldr x27, [sp, 80] 3208 ldp x29, x30, [sp], 112 3209 ret 3210.L392: 3211 ldr x0, [x19, 8] 3212 cbz x0, .L380 3213 ldr x0, [x19, 16] 3214 cbnz x0, .L381 3215.L380: 3216 mov w2, 90 3217 mov x1, x24 3218 mov x0, x25 3219 bl printf 3220.L381: 3221 ldr w0, [x19, 4] 3222 add x2, x29, 104 3223 add x1, x29, 108 3224 bl l2p_addr_tran.isra.0 3225 ldr w0, [x29, 104] 3226 cmp w0, 3 3227 bls .L382 3228 mov w0, -1 3229 str w0, [x19] 3230.L383: 3231 add x19, x19, 32 3232 b .L379 3233.L382: 3234 ldr x20, [x19, 8] 3235 adrp x26, .LANCHOR111 3236 tst x20, 63 3237 beq .L384 3238 ldr x20, [x26, #:lo12:.LANCHOR111] 3239.L384: 3240 adrp x22, .LANCHOR78 3241 add x22, x22, :lo12:.LANCHOR78 3242 ldr w1, [x29, 108] 3243 mov x2, x20 3244 ldr x3, [x19, 16] 3245 ldr x4, [x22, 24] 3246 blr x4 3247 str w0, [x19] 3248 add x0, x21, :lo12:.LANCHOR0 3249 ldrh w0, [x0, 14] 3250 cmp w0, 4 3251 bne .L386 3252 ldrb w0, [x29, 104] 3253 add x2, x20, 2048 3254 ldr x4, [x22, 24] 3255 ldr w1, [x29, 108] 3256 ldr x3, [x19, 16] 3257 add w1, w27, w1 3258 add x3, x3, 8 3259 blr x4 3260 cmn w0, #1 3261 beq .L387 3262 ldr x1, [x19, 16] 3263 ldr w2, [x1, 12] 3264 cmn w2, #1 3265 bne .L388 3266 ldr w2, [x1, 8] 3267 cmn w2, #1 3268 bne .L388 3269 ldr w1, [x1] 3270 cmn w1, #1 3271 beq .L388 3272.L387: 3273 mov w1, -1 3274 str w1, [x19] 3275.L388: 3276 ldr w1, [x19] 3277 cmn w1, #1 3278 beq .L389 3279 cmp w0, 256 3280 bne .L389 3281 str w0, [x19] 3282.L389: 3283 ldr w3, [x19] 3284 cmp w3, 256 3285 ccmn w3, #1, 4, ne 3286 bne .L386 3287 ldr w1, [x19, 4] 3288 adrp x0, .LC11 3289 ldr w2, [x29, 108] 3290 add x0, x0, :lo12:.LC11 3291 bl printf 3292 ldr x1, [x19, 8] 3293 cbz x1, .L391 3294 mov w3, 4 3295 adrp x0, .LC12 3296 mov w2, w3 3297 add x0, x0, :lo12:.LC12 3298 bl rknand_print_hex 3299.L391: 3300 ldr x1, [x19, 16] 3301 cbz x1, .L386 3302 mov w3, 4 3303 adrp x0, .LC13 3304 mov w2, w3 3305 add x0, x0, :lo12:.LC13 3306 bl rknand_print_hex 3307.L386: 3308 ldr x0, [x26, #:lo12:.LANCHOR111] 3309 cmp x20, x0 3310 bne .L383 3311 ldr x0, [x19, 8] 3312 cmp x20, x0 3313 beq .L383 3314 adrp x1, .LANCHOR12 3315 ldrh w2, [x1, #:lo12:.LANCHOR12] 3316 mov x1, x20 3317 lsl w2, w2, 9 3318 bl ftl_memcpy 3319 b .L383 3320 .size FlashReadPages, .-FlashReadPages 3321 .section .text.FtlLoadFactoryBbt,"ax",@progbits 3322 .align 2 3323 .global FtlLoadFactoryBbt 3324 .type FtlLoadFactoryBbt, %function 3325FtlLoadFactoryBbt: 3326 stp x29, x30, [sp, -112]! 3327 adrp x2, .LANCHOR106 3328 adrp x0, .LANCHOR138 3329 add x1, x0, :lo12:.LANCHOR138 3330 add x29, sp, 0 3331 ldr x2, [x2, #:lo12:.LANCHOR106] 3332 stp x21, x22, [sp, 32] 3333 mov x22, x0 3334 stp x25, x26, [sp, 64] 3335 adrp x26, .LANCHOR17 3336 stp x27, x28, [sp, 80] 3337 add x28, x26, :lo12:.LANCHOR17 3338 stp x19, x20, [sp, 16] 3339 adrp x20, .LANCHOR37 3340 stp x23, x24, [sp, 48] 3341 add x20, x20, :lo12:.LANCHOR37 3342 str x2, [x1, 8] 3343 adrp x2, .LANCHOR114 3344 adrp x23, .LANCHOR10 3345 add x20, x20, 12 3346 ldr x25, [x2, #:lo12:.LANCHOR114] 3347 add x23, x23, :lo12:.LANCHOR10 3348 mov w21, 0 3349 mov w27, -1 3350 str x25, [x1, 16] 3351.L419: 3352 ldrh w0, [x23] 3353 cmp w21, w0 3354 bcc .L424 3355 ldp x19, x20, [sp, 16] 3356 mov w0, 0 3357 ldp x21, x22, [sp, 32] 3358 ldp x23, x24, [sp, 48] 3359 ldp x25, x26, [sp, 64] 3360 ldp x27, x28, [sp, 80] 3361 ldp x29, x30, [sp], 112 3362 ret 3363.L424: 3364 ldrh w19, [x26, #:lo12:.LANCHOR17] 3365 add x24, x22, :lo12:.LANCHOR138 3366 strh w27, [x20] 3367 mov w3, 61664 3368 sub w19, w19, #1 3369 and w19, w19, 65535 3370.L420: 3371 ldrh w0, [x28] 3372 sub w1, w0, #15 3373 cmp w1, w19 3374 bgt .L422 3375 madd w0, w0, w21, w19 3376 mov w2, 1 3377 str w3, [x29, 108] 3378 mov w1, w2 3379 lsl w0, w0, 10 3380 str w0, [x24, 4] 3381 mov x0, x24 3382 bl FlashReadPages 3383 ldr w0, [x24] 3384 ldr w3, [x29, 108] 3385 cmn w0, #1 3386 beq .L421 3387 ldrh w0, [x25] 3388 cmp w0, w3 3389 bne .L421 3390 strh w19, [x20] 3391.L422: 3392 add w21, w21, 1 3393 add x20, x20, 2 3394 b .L419 3395.L421: 3396 sub w19, w19, #1 3397 and w19, w19, 65535 3398 b .L420 3399 .size FtlLoadFactoryBbt, .-FtlLoadFactoryBbt 3400 .section .text.FtlGetLastWrittenPage,"ax",@progbits 3401 .align 2 3402 .global FtlGetLastWrittenPage 3403 .type FtlGetLastWrittenPage, %function 3404FtlGetLastWrittenPage: 3405 stp x29, x30, [sp, -160]! 3406 cmp w1, 1 3407 add x29, sp, 0 3408 stp x23, x24, [sp, 48] 3409 mov w23, w1 3410 stp x19, x20, [sp, 16] 3411 stp x21, x22, [sp, 32] 3412 bne .L430 3413 adrp x1, .LANCHOR20 3414 ldrh w19, [x1, #:lo12:.LANCHOR20] 3415.L431: 3416 adrp x1, .LANCHOR112 3417 sub w19, w19, #1 3418 sxth w19, w19 3419 lsl w21, w0, 10 3420 ldr x1, [x1, #:lo12:.LANCHOR112] 3421 orr w0, w19, w21 3422 str x1, [x29, 72] 3423 add x1, x29, 96 3424 str w0, [x29, 68] 3425 mov w2, w23 3426 str x1, [x29, 80] 3427 add x0, x29, 64 3428 mov w1, 1 3429 bl FlashReadPages 3430 ldr w0, [x29, 96] 3431 cmn w0, #1 3432 bne .L432 3433 mov w22, 0 3434 mov w24, 2 3435.L433: 3436 cmp w22, w19 3437 ble .L436 3438.L432: 3439 mov w0, w19 3440 ldp x19, x20, [sp, 16] 3441 ldp x21, x22, [sp, 32] 3442 ldp x23, x24, [sp, 48] 3443 ldp x29, x30, [sp], 160 3444 ret 3445.L430: 3446 adrp x1, .LANCHOR19 3447 ldrh w19, [x1, #:lo12:.LANCHOR19] 3448 b .L431 3449.L436: 3450 add w20, w22, w19 3451 mov w2, w23 3452 mov w1, 1 3453 sdiv w20, w20, w24 3454 sxth w0, w20 3455 orr w0, w0, w21 3456 str w0, [x29, 68] 3457 add x0, x29, 64 3458 bl FlashReadPages 3459 ldr w0, [x29, 96] 3460 cmn w0, #1 3461 bne .L434 3462 ldr w0, [x29, 100] 3463 cmn w0, #1 3464 bne .L434 3465 ldr w0, [x29, 64] 3466 cmn w0, #1 3467 beq .L434 3468 sub w19, w20, #1 3469 sxth w19, w19 3470 b .L433 3471.L434: 3472 add w20, w20, 1 3473 sxth w22, w20 3474 b .L433 3475 .size FtlGetLastWrittenPage, .-FtlGetLastWrittenPage 3476 .section .text.FtlScanSysBlk,"ax",@progbits 3477 .align 2 3478 .global FtlScanSysBlk 3479 .type FtlScanSysBlk, %function 3480FtlScanSysBlk: 3481 stp x29, x30, [sp, -176]! 3482 mov w1, 0 3483 add x29, sp, 0 3484 stp x25, x26, [sp, 64] 3485 adrp x25, .LANCHOR125 3486 stp x21, x22, [sp, 32] 3487 adrp x21, .LANCHOR30 3488 ldr x0, [x25, #:lo12:.LANCHOR125] 3489 adrp x22, .LANCHOR122 3490 ldr w2, [x21, #:lo12:.LANCHOR30] 3491 stp x19, x20, [sp, 16] 3492 adrp x20, .LANCHOR130 3493 stp x23, x24, [sp, 48] 3494 adrp x23, .LANCHOR35 3495 stp x27, x28, [sp, 80] 3496 adrp x27, .LANCHOR119 3497 lsl w2, w2, 2 3498 strh wzr, [x20, #:lo12:.LANCHOR130] 3499 strh wzr, [x23, #:lo12:.LANCHOR35] 3500 bl ftl_memset 3501 ldr x0, [x27, #:lo12:.LANCHOR119] 3502 mov w1, 0 3503 ldr w2, [x21, #:lo12:.LANCHOR30] 3504 adrp x19, .LANCHOR27 3505 adrp x28, .LANCHOR36 3506 adrp x24, .LANCHOR139 3507 lsl w2, w2, 1 3508 bl ftl_memset 3509 ldr x0, [x22, #:lo12:.LANCHOR122] 3510 mov w1, 0 3511 ldrh w2, [x19, #:lo12:.LANCHOR27] 3512 lsl w2, w2, 2 3513 bl ftl_memset 3514 ldr x0, [x28, #:lo12:.LANCHOR36] 3515 mov w1, 0 3516 ldrh w2, [x19, #:lo12:.LANCHOR27] 3517 lsl w2, w2, 1 3518 bl ftl_memset 3519 mov w2, 16 3520 mov w1, 255 3521 add x0, x24, :lo12:.LANCHOR139 3522 bl ftl_memset 3523 adrp x0, .LANCHOR5 3524 stp x22, x25, [x29, 144] 3525 str x27, [x29, 160] 3526 ldrh w0, [x0, #:lo12:.LANCHOR5] 3527 str w0, [x29, 172] 3528 adrp x0, .LANCHOR6 3529 add x0, x0, :lo12:.LANCHOR6 3530 str x0, [x29, 120] 3531 adrp x0, .LANCHOR82 3532 add x0, x0, :lo12:.LANCHOR82 3533 str x0, [x29, 112] 3534.L442: 3535 ldr x0, [x29, 120] 3536 ldr w1, [x29, 172] 3537 ldrh w0, [x0] 3538 cmp w0, w1 3539 bls .L482 3540 adrp x0, .LANCHOR3 3541 adrp x25, .LANCHOR103 3542 adrp x6, .LANCHOR13 3543 mov x5, 0 3544 ldrh w12, [x0, #:lo12:.LANCHOR3] 3545 adrp x0, .LANCHOR64 3546 ldr x7, [x25, #:lo12:.LANCHOR103] 3547 mov w22, 0 3548 ldr x11, [x0, #:lo12:.LANCHOR64] 3549 adrp x0, .LANCHOR65 3550 add x6, x6, :lo12:.LANCHOR13 3551 ldr x10, [x0, #:lo12:.LANCHOR65] 3552 adrp x0, .LANCHOR24 3553 ldrh w8, [x0, #:lo12:.LANCHOR24] 3554 b .L483 3555.L444: 3556 ldrh w1, [x29, 172] 3557 ldrb w0, [x6, x5] 3558 bl V2P_block 3559 and w4, w0, 65535 3560 bl FtlBbmIsBadBlock 3561 cbnz w0, .L443 3562 ubfiz x0, x22, 5, 16 3563 mul w1, w22, w8 3564 add x0, x7, x0 3565 add w22, w22, 1 3566 and w22, w22, 65535 3567 lsl w4, w4, 10 3568 asr w1, w1, 2 3569 add x1, x10, x1, sxtw 2 3570 str w4, [x0, 4] 3571 stp x11, x1, [x0, 8] 3572.L443: 3573 add x5, x5, 1 3574.L483: 3575 cmp w12, w5, uxth 3576 bhi .L444 3577 cbnz w22, .L445 3578.L481: 3579 ldr w0, [x29, 172] 3580 add w26, w0, 1 3581 and w0, w26, 65535 3582 str w0, [x29, 172] 3583 b .L442 3584.L445: 3585 mov w1, w22 3586 mov w2, 1 3587 mov x0, x7 3588 bl FlashReadPages 3589 ubfiz x0, x22, 5, 16 3590 mov x22, 0 3591 str x0, [x29, 128] 3592 adrp x0, .LANCHOR140 3593 add x0, x0, :lo12:.LANCHOR140 3594 str x0, [x29, 136] 3595.L480: 3596 ldr x0, [x25, #:lo12:.LANCHOR103] 3597 add x1, x0, x22 3598 ldr w0, [x0, x22] 3599 ldr w3, [x1, 4] 3600 cmn w0, #1 3601 ldr x27, [x1, 16] 3602 ubfx x26, x3, 10, 16 3603 bne .L448 3604 mov w5, 16 3605 mov w7, 65535 3606.L450: 3607 ldr x0, [x25, #:lo12:.LANCHOR103] 3608 add x6, x25, :lo12:.LANCHOR103 3609 mov w2, 1 3610 str w7, [x29, 100] 3611 add x0, x0, x22 3612 str x6, [x29, 104] 3613 str w5, [x29, 168] 3614 ldr w1, [x0, 4] 3615 add w1, w1, 1 3616 str w1, [x0, 4] 3617 mov w1, w2 3618 bl FlashReadPages 3619 ldrh w0, [x27] 3620 ldr w7, [x29, 100] 3621 ldr w5, [x29, 168] 3622 cmp w0, w7 3623 ldr x6, [x29, 104] 3624 bne .L447 3625 ldr x0, [x6] 3626 mov w1, -1 3627 str w1, [x0, x22] 3628 ldr x0, [x6] 3629 ldr w0, [x0, x22] 3630 cmp w0, w1 3631 bne .L448 3632.L449: 3633 mov w1, 1 3634 b .L519 3635.L447: 3636 ldr x0, [x25, #:lo12:.LANCHOR103] 3637 ldr w0, [x0, x22] 3638 cmn w0, #1 3639 bne .L448 3640 sub w5, w5, #1 3641 ands w5, w5, 65535 3642 bne .L450 3643 b .L449 3644.L448: 3645 adrp x0, .LANCHOR82 3646 ldr w1, [x0, #:lo12:.LANCHOR82] 3647 ldr w0, [x27, 4] 3648 cmn w1, #1 3649 beq .L451 3650 cmp w1, w0 3651 bhi .L452 3652.L451: 3653 cmn w0, #1 3654 beq .L452 3655 ldr x2, [x29, 112] 3656 add w1, w0, 1 3657 str w1, [x2] 3658.L452: 3659 ldrh w1, [x27] 3660 mov w2, 61604 3661 cmp w1, w2 3662 beq .L454 3663 bhi .L455 3664 mov w0, 61574 3665 cmp w1, w0 3666 beq .L456 3667.L453: 3668 ldr x0, [x29, 128] 3669 add x22, x22, 32 3670 cmp x0, x22 3671 bne .L480 3672 b .L481 3673.L455: 3674 mov w0, 61634 3675 cmp w1, w0 3676 beq .L457 3677 mov w0, 65535 3678 cmp w1, w0 3679 bne .L453 3680 mov w1, 0 3681.L519: 3682 mov w0, w26 3683 bl FtlFreeSysBlkQueueIn 3684 b .L453 3685.L457: 3686 ldrh w1, [x20, #:lo12:.LANCHOR130] 3687 ldr w0, [x21, #:lo12:.LANCHOR30] 3688 cmp w1, w0 3689 bls .L459 3690 ldr x1, [x29, 136] 3691 adrp x0, .LC1 3692 mov w2, 1225 3693 add x0, x0, :lo12:.LC1 3694 bl printf 3695.L459: 3696 ldr w6, [x21, #:lo12:.LANCHOR30] 3697 ldr x3, [x29, 152] 3698 ldrh w1, [x20, #:lo12:.LANCHOR130] 3699 and w2, w6, 65535 3700 sub w0, w2, #1 3701 sub w2, w2, w1 3702 sxth x0, w0 3703 sub w2, w2, #1 3704 ldr x5, [x3, #:lo12:.LANCHOR125] 3705 sxth w2, w2 3706.L460: 3707 cmp w0, w2 3708 bgt .L466 3709 tbz w0, #31, .L500 3710 b .L453 3711.L466: 3712 sxtw x8, w0 3713 ldr w11, [x27, 4] 3714 lsl x7, x8, 2 3715 add x10, x5, x7 3716 ldr w7, [x5, x7] 3717 cmp w11, w7 3718 bls .L461 3719 ldr w2, [x5] 3720 cbnz w2, .L462 3721 cmp w6, w1 3722 beq .L462 3723 add w1, w1, 1 3724 strh w1, [x20, #:lo12:.LANCHOR130] 3725.L462: 3726 ldr x1, [x29, 160] 3727 ldr x6, [x1, #:lo12:.LANCHOR119] 3728 mov w1, 0 3729.L463: 3730 cmp w1, w0 3731 bne .L464 3732 ldr w1, [x27, 4] 3733 str w1, [x10] 3734 strh w26, [x6, x8, lsl 1] 3735 tbnz w0, #31, .L453 3736 ldrh w1, [x20, #:lo12:.LANCHOR130] 3737 ldr w2, [x21, #:lo12:.LANCHOR30] 3738 sub w2, w2, w1 3739 sub w2, w2, #1 3740 cmp w0, w2, sxth 3741 bgt .L453 3742.L500: 3743 add w1, w1, 1 3744 strh w1, [x20, #:lo12:.LANCHOR130] 3745 ldr w1, [x27, 4] 3746 str w1, [x5, x0, lsl 2] 3747 ldr x1, [x29, 160] 3748 ldr x1, [x1, #:lo12:.LANCHOR119] 3749.L518: 3750 strh w26, [x1, x0, lsl 1] 3751 b .L453 3752.L464: 3753 sxtw x2, w1 3754 add w1, w1, 1 3755 lsl x7, x2, 2 3756 lsl x2, x2, 1 3757 add x11, x5, x7 3758 sxth w1, w1 3759 ldr w11, [x11, 4] 3760 str w11, [x5, x7] 3761 add x7, x6, x2 3762 ldrh w7, [x7, 2] 3763 strh w7, [x6, x2] 3764 b .L463 3765.L461: 3766 sub w0, w0, #1 3767 sxth x0, w0 3768 b .L460 3769.L456: 3770 ldrh w1, [x23, #:lo12:.LANCHOR35] 3771 ldrh w0, [x19, #:lo12:.LANCHOR27] 3772 cmp w1, w0 3773 bls .L469 3774 ldr x1, [x29, 136] 3775 adrp x0, .LC1 3776 mov w2, 1266 3777 add x0, x0, :lo12:.LC1 3778 bl printf 3779.L469: 3780 ldrh w6, [x19, #:lo12:.LANCHOR27] 3781 ldrh w2, [x23, #:lo12:.LANCHOR35] 3782 sub w1, w6, #1 3783 sxth x0, w1 3784 sub w5, w1, w2 3785 ldr x1, [x29, 144] 3786 ldr x1, [x1, #:lo12:.LANCHOR122] 3787.L470: 3788 cmp w0, w5 3789 ble .L475 3790 sxtw x7, w0 3791 ldr w11, [x27, 4] 3792 lsl x8, x7, 2 3793 add x10, x1, x8 3794 ldr w8, [x1, x8] 3795 cmp w11, w8 3796 bls .L471 3797 ldr w5, [x1] 3798 cbnz w5, .L472 3799 cmp w6, w2 3800 beq .L472 3801 add w2, w2, 1 3802 strh w2, [x23, #:lo12:.LANCHOR35] 3803.L472: 3804 ldr x6, [x28, #:lo12:.LANCHOR36] 3805 mov w2, 0 3806.L473: 3807 cmp w2, w0 3808 bne .L474 3809 ldr w2, [x27, 4] 3810 str w2, [x10] 3811 strh w26, [x6, x7, lsl 1] 3812.L475: 3813 tbnz w0, #31, .L453 3814 ldrh w2, [x19, #:lo12:.LANCHOR27] 3815 ldrh w5, [x23, #:lo12:.LANCHOR35] 3816 sub w2, w2, #1 3817 sub w2, w2, w5 3818 cmp w0, w2, sxth 3819 bgt .L453 3820 add w5, w5, 1 3821 ldr w2, [x27, 4] 3822 strh w5, [x23, #:lo12:.LANCHOR35] 3823 str w2, [x1, x0, lsl 2] 3824 ldr x1, [x28, #:lo12:.LANCHOR36] 3825 b .L518 3826.L474: 3827 sxtw x5, w2 3828 add w2, w2, 1 3829 lsl x8, x5, 2 3830 lsl x5, x5, 1 3831 add x11, x1, x8 3832 sxth w2, w2 3833 ldr w11, [x11, 4] 3834 str w11, [x1, x8] 3835 add x8, x6, x5 3836 ldrh w8, [x8, 2] 3837 strh w8, [x6, x5] 3838 b .L473 3839.L471: 3840 sub w0, w0, #1 3841 sxth x0, w0 3842 b .L470 3843.L454: 3844 ldrh w5, [x24, #:lo12:.LANCHOR139] 3845 mov w1, 65535 3846 add x2, x24, :lo12:.LANCHOR139 3847 cmp w5, w1 3848 bne .L477 3849 strh w26, [x24, #:lo12:.LANCHOR139] 3850 str w0, [x2, 8] 3851 b .L453 3852.L477: 3853 ldrh w0, [x2, 4] 3854 cmp w0, w1 3855 beq .L478 3856 mov w1, 1 3857 bl FtlFreeSysBlkQueueIn 3858.L478: 3859 add x0, x24, :lo12:.LANCHOR139 3860 ldr w1, [x27, 4] 3861 ldr w2, [x0, 8] 3862 cmp w2, w1 3863 bcs .L479 3864 ldrh w2, [x24, #:lo12:.LANCHOR139] 3865 strh w2, [x0, 4] 3866 strh w26, [x24, #:lo12:.LANCHOR139] 3867 str w1, [x0, 8] 3868 b .L453 3869.L479: 3870 strh w26, [x0, 4] 3871 b .L453 3872.L482: 3873 ldr x0, [x29, 160] 3874 ldr x2, [x0, #:lo12:.LANCHOR119] 3875 ldrh w0, [x2] 3876 cbz w0, .L484 3877.L487: 3878 ldr x1, [x28, #:lo12:.LANCHOR36] 3879 ldrh w0, [x1] 3880 cbz w0, .L485 3881.L486: 3882 ldrh w1, [x20, #:lo12:.LANCHOR130] 3883 ldr w0, [x21, #:lo12:.LANCHOR30] 3884 cmp w1, w0 3885 bls .L516 3886 adrp x1, .LANCHOR140 3887 adrp x0, .LC1 3888 mov w2, 1391 3889 add x1, x1, :lo12:.LANCHOR140 3890 add x0, x0, :lo12:.LC1 3891 bl printf 3892.L516: 3893 ldp x19, x20, [sp, 16] 3894 mov w0, 0 3895 ldp x21, x22, [sp, 32] 3896 ldp x23, x24, [sp, 48] 3897 ldp x25, x26, [sp, 64] 3898 ldp x27, x28, [sp, 80] 3899 ldp x29, x30, [sp], 176 3900 ret 3901.L484: 3902 ldrh w0, [x20, #:lo12:.LANCHOR130] 3903 cbz w0, .L487 3904 ldr w1, [x21, #:lo12:.LANCHOR30] 3905 mov w0, 0 3906.L488: 3907 cmp w0, w1 3908 bcs .L487 3909 ldrh w3, [x2, w0, sxtw 1] 3910 cbz w3, .L489 3911 ldr x1, [x29, 152] 3912 add x7, x21, :lo12:.LANCHOR30 3913 ldr x4, [x1, #:lo12:.LANCHOR125] 3914 mov w1, w0 3915.L490: 3916 ldr w3, [x7] 3917 cmp w1, w3 3918 bcs .L487 3919 sxtw x6, w1 3920 sub w3, w1, w0 3921 lsl x5, x6, 1 3922 sxtw x3, w3 3923 add w1, w1, 1 3924 ldr w6, [x4, x6, lsl 2] 3925 sxth w1, w1 3926 ldrh w8, [x2, x5] 3927 strh w8, [x2, x3, lsl 1] 3928 str w6, [x4, x3, lsl 2] 3929 strh wzr, [x2, x5] 3930 b .L490 3931.L489: 3932 add w0, w0, 1 3933 sxth w0, w0 3934 b .L488 3935.L485: 3936 ldrh w0, [x23, #:lo12:.LANCHOR35] 3937 cbz w0, .L486 3938 ldrh w2, [x19, #:lo12:.LANCHOR27] 3939 mov w0, 0 3940.L495: 3941 mov w6, w0 3942 cmp w0, w2 3943 bge .L486 3944 ldrh w3, [x1, w0, sxtw 1] 3945 cbz w3, .L496 3946 ldr x2, [x29, 144] 3947 add x19, x19, :lo12:.LANCHOR27 3948 ldr x3, [x2, #:lo12:.LANCHOR122] 3949.L497: 3950 ldrh w2, [x19] 3951 cmp w0, w2 3952 bge .L486 3953 sxtw x5, w0 3954 sub w2, w0, w6 3955 lsl x4, x5, 1 3956 sxtw x2, w2 3957 add w0, w0, 1 3958 ldr w5, [x3, x5, lsl 2] 3959 sxth w0, w0 3960 ldrh w7, [x1, x4] 3961 strh w7, [x1, x2, lsl 1] 3962 str w5, [x3, x2, lsl 2] 3963 strh wzr, [x1, x4] 3964 b .L497 3965.L496: 3966 add w0, w0, 1 3967 sxth w0, w0 3968 b .L495 3969 .size FtlScanSysBlk, .-FtlScanSysBlk 3970 .section .text.FtlLoadBbt,"ax",@progbits 3971 .align 2 3972 .global FtlLoadBbt 3973 .type FtlLoadBbt, %function 3974FtlLoadBbt: 3975 stp x29, x30, [sp, -80]! 3976 add x29, sp, 0 3977 stp x23, x24, [sp, 48] 3978 adrp x23, .LANCHOR106 3979 stp x19, x20, [sp, 16] 3980 adrp x24, .LANCHOR17 3981 stp x21, x22, [sp, 32] 3982 adrp x22, .LANCHOR138 3983 add x20, x22, :lo12:.LANCHOR138 3984 ldr x0, [x23, #:lo12:.LANCHOR106] 3985 str x25, [sp, 64] 3986 mov w25, 61649 3987 str x0, [x20, 8] 3988 adrp x0, .LANCHOR114 3989 ldr x21, [x0, #:lo12:.LANCHOR114] 3990 str x21, [x20, 16] 3991 bl FtlBbtMemInit 3992 ldrh w19, [x24, #:lo12:.LANCHOR17] 3993 add x24, x24, :lo12:.LANCHOR17 3994 sub w19, w19, #1 3995 and w19, w19, 65535 3996.L521: 3997 ldrh w0, [x24] 3998 sub w0, w0, #15 3999 cmp w0, w19 4000 bgt .L524 4001 lsl w0, w19, 10 4002 mov w2, 1 4003 str w0, [x20, 4] 4004 mov w1, w2 4005 mov x0, x20 4006 bl FlashReadPages 4007 ldr w0, [x20] 4008 cmn w0, #1 4009 bne .L522 4010 ldr w0, [x20, 4] 4011 mov w2, 1 4012 mov w1, w2 4013 add w0, w0, 1 4014 str w0, [x20, 4] 4015 mov x0, x20 4016 bl FlashReadPages 4017.L522: 4018 ldr w0, [x20] 4019 cmn w0, #1 4020 beq .L523 4021 ldrh w0, [x21] 4022 cmp w0, w25 4023 bne .L523 4024 adrp x1, .LANCHOR37 4025 add x0, x1, :lo12:.LANCHOR37 4026 strh w19, [x1, #:lo12:.LANCHOR37] 4027 ldr w1, [x21, 4] 4028 str w1, [x0, 8] 4029 ldrh w1, [x21, 8] 4030 strh w1, [x0, 4] 4031.L524: 4032 adrp x19, .LANCHOR37 4033 mov w0, 65535 4034 add x20, x19, :lo12:.LANCHOR37 4035 ldrh w1, [x19, #:lo12:.LANCHOR37] 4036 cmp w1, w0 4037 beq .L538 4038 ldrh w1, [x20, 4] 4039 cmp w1, w0 4040 beq .L528 4041 add x0, x22, :lo12:.LANCHOR138 4042 lsl w1, w1, 10 4043 mov w2, 1 4044 str w1, [x0, 4] 4045 mov w1, w2 4046 bl FlashReadPages 4047 ldr w0, [x22, #:lo12:.LANCHOR138] 4048 cmn w0, #1 4049 beq .L528 4050 ldrh w1, [x21] 4051 mov w0, 61649 4052 cmp w1, w0 4053 bne .L528 4054 ldr w1, [x20, 8] 4055 ldr w0, [x21, 4] 4056 cmp w0, w1 4057 bls .L528 4058 ldrh w1, [x20, 4] 4059 str w0, [x20, 8] 4060 ldrh w0, [x21, 8] 4061 strh w1, [x19, #:lo12:.LANCHOR37] 4062 strh w0, [x20, 4] 4063.L528: 4064 ldrh w0, [x19, #:lo12:.LANCHOR37] 4065 add x24, x19, :lo12:.LANCHOR37 4066 mov w1, 1 4067 mov w25, 61649 4068 bl FtlGetLastWrittenPage 4069 sxth w20, w0 4070 add w0, w0, 1 4071 strh w0, [x24, 2] 4072 add x24, x22, :lo12:.LANCHOR138 4073.L530: 4074 tbz w20, #31, .L533 4075 adrp x1, .LANCHOR141 4076 adrp x0, .LC1 4077 mov w2, 251 4078 add x1, x1, :lo12:.LANCHOR141 4079 add x0, x0, :lo12:.LC1 4080 bl printf 4081.L532: 4082 add x0, x19, :lo12:.LANCHOR37 4083 ldrh w1, [x21, 10] 4084 strh w1, [x0, 6] 4085 mov w1, 65535 4086 ldrh w0, [x21, 12] 4087 cmp w0, w1 4088 beq .L535 4089 adrp x1, .LANCHOR2 4090 ldr w2, [x1, #:lo12:.LANCHOR2] 4091 cmp w0, w2 4092 beq .L535 4093 adrp x1, .LANCHOR6 4094 ldrh w1, [x1, #:lo12:.LANCHOR6] 4095 lsr w1, w1, 2 4096 cmp w2, w1 4097 bcs .L535 4098 cmp w0, w1 4099 bcs .L535 4100 bl FtlSysBlkNumInit 4101.L535: 4102 add x19, x19, :lo12:.LANCHOR37 4103 adrp x21, .LANCHOR10 4104 adrp x23, .LANCHOR127 4105 add x19, x19, 32 4106 add x21, x21, :lo12:.LANCHOR10 4107 add x23, x23, :lo12:.LANCHOR127 4108 add x22, x22, :lo12:.LANCHOR138 4109 mov w20, 0 4110.L536: 4111 ldrh w0, [x21] 4112 cmp w20, w0 4113 bcc .L537 4114 mov w0, 0 4115.L520: 4116 ldp x19, x20, [sp, 16] 4117 ldp x21, x22, [sp, 32] 4118 ldp x23, x24, [sp, 48] 4119 ldr x25, [sp, 64] 4120 ldp x29, x30, [sp], 80 4121 ret 4122.L523: 4123 sub w19, w19, #1 4124 and w19, w19, 65535 4125 b .L521 4126.L533: 4127 ldrh w0, [x19, #:lo12:.LANCHOR37] 4128 mov w2, 1 4129 mov w1, w2 4130 orr w0, w20, w0, lsl 10 4131 str w0, [x24, 4] 4132 ldr x0, [x23, #:lo12:.LANCHOR106] 4133 str x0, [x24, 8] 4134 mov x0, x24 4135 bl FlashReadPages 4136 ldr w0, [x24] 4137 cmn w0, #1 4138 beq .L531 4139 ldrh w0, [x21] 4140 cmp w0, w25 4141 beq .L532 4142.L531: 4143 sub w20, w20, #1 4144 sxth w20, w20 4145 b .L530 4146.L537: 4147 ldrh w2, [x23] 4148 ldr x0, [x22, 8] 4149 mul w1, w2, w20 4150 lsl w2, w2, 2 4151 add w20, w20, 1 4152 add x1, x0, x1, lsl 2 4153 ldr x0, [x19], 8 4154 bl ftl_memcpy 4155 b .L536 4156.L538: 4157 mov w0, -1 4158 b .L520 4159 .size FtlLoadBbt, .-FtlLoadBbt 4160 .section .text.FlashProgPages,"ax",@progbits 4161 .align 2 4162 .global FlashProgPages 4163 .type FlashProgPages, %function 4164FlashProgPages: 4165 stp x29, x30, [sp, -160]! 4166 ubfiz x1, x1, 5, 32 4167 add x29, sp, 0 4168 stp x21, x22, [sp, 32] 4169 adrp x21, .LANCHOR0 4170 stp x23, x24, [sp, 48] 4171 adrp x22, .LANCHOR142 4172 stp w3, w2, [x29, 104] 4173 add x2, x21, :lo12:.LANCHOR0 4174 stp x19, x20, [sp, 16] 4175 adrp x24, .LANCHOR78 4176 stp x27, x28, [sp, 80] 4177 mov x19, x0 4178 ldrh w23, [x2, 12] 4179 add x20, x0, x1 4180 stp x25, x26, [sp, 64] 4181 add x22, x22, :lo12:.LANCHOR142 4182 mov x25, x0 4183 add x28, x24, :lo12:.LANCHOR78 4184 lsl w27, w23, 3 4185.L551: 4186 cmp x25, x20 4187 bne .L564 4188 ldr w0, [x29, 104] 4189 cbz w0, .L578 4190 adrp x21, .LANCHOR111 4191 adrp x22, .LANCHOR113 4192 mov x23, x21 4193 mov x24, x22 4194.L566: 4195 cmp x19, x20 4196 beq .L578 4197 ldr x1, [x21, #:lo12:.LANCHOR111] 4198 ldr x0, [x22, #:lo12:.LANCHOR113] 4199 str wzr, [x1] 4200 str wzr, [x0] 4201 stp x1, x0, [x29, 136] 4202 mov w1, 1 4203 ldr w2, [x19, 4] 4204 add x0, x29, 128 4205 str w2, [x29, 132] 4206 ldr w2, [x29, 108] 4207 bl FlashReadPages 4208 ldr w26, [x29, 128] 4209 cmn w26, #1 4210 bne .L567 4211 ldr w1, [x19, 4] 4212 adrp x0, .LC14 4213 add x0, x0, :lo12:.LC14 4214 bl printf 4215 str w26, [x19] 4216.L567: 4217 ldr w26, [x29, 128] 4218 cmp w26, 256 4219 bne .L568 4220 ldr w1, [x19, 4] 4221 adrp x0, .LC15 4222 add x0, x0, :lo12:.LC15 4223 bl printf 4224 str w26, [x19] 4225.L568: 4226 ldr x0, [x19, 16] 4227 cbz x0, .L569 4228 ldr w2, [x0] 4229 ldr x0, [x24, #:lo12:.LANCHOR113] 4230 ldr w3, [x0] 4231 cmp w2, w3 4232 beq .L569 4233 ldr w1, [x19, 4] 4234 adrp x0, .LC16 4235 add x0, x0, :lo12:.LC16 4236 bl printf 4237 mov w0, -1 4238 str w0, [x19] 4239.L569: 4240 ldr x0, [x19, 8] 4241 cbz x0, .L570 4242 ldr w2, [x0] 4243 ldr x0, [x23, #:lo12:.LANCHOR111] 4244 ldr w3, [x0] 4245 cmp w2, w3 4246 beq .L570 4247 ldr w1, [x19, 4] 4248 adrp x0, .LC17 4249 add x0, x0, :lo12:.LC17 4250 bl printf 4251 mov w0, -1 4252 str w0, [x19] 4253.L570: 4254 add x19, x19, 32 4255 b .L566 4256.L564: 4257 ldr x0, [x25, 8] 4258 cbz x0, .L552 4259 ldr x0, [x25, 16] 4260 cbnz x0, .L553 4261.L552: 4262 adrp x0, .LC1 4263 mov w2, 142 4264 mov x1, x22 4265 add x0, x0, :lo12:.LC1 4266 bl printf 4267.L553: 4268 ldr w0, [x25, 4] 4269 add x2, x29, 120 4270 add x1, x29, 124 4271 bl l2p_addr_tran.isra.0 4272 ldr w0, [x29, 120] 4273 cmp w0, 3 4274 bls .L554 4275.L591: 4276 mov w0, -1 4277 str w0, [x25] 4278 b .L555 4279.L554: 4280 cbnz w0, .L556 4281 ldr w0, [x29, 124] 4282 cmp w27, w0 4283 bls .L556 4284 adrp x21, .LANCHOR142 4285 adrp x22, .LC6 4286 mov w23, -1 4287 add x21, x21, :lo12:.LANCHOR142 4288 add x22, x22, :lo12:.LC6 4289 b .L589 4290.L558: 4291 ldr w2, [x19, 4] 4292 mov x1, x21 4293 str w23, [x19] 4294 mov x0, x22 4295 add x19, x19, 32 4296 bl printf 4297 ldr x1, [x19, -24] 4298 mov w3, 16 4299 mov w2, 4 4300 adrp x0, .LC7 4301 add x0, x0, :lo12:.LC7 4302 bl rknand_print_hex 4303 ldr x1, [x19, -16] 4304 mov w3, 4 4305 adrp x0, .LC8 4306 mov w2, w3 4307 add x0, x0, :lo12:.LC8 4308 bl rknand_print_hex 4309.L589: 4310 cmp x19, x20 4311 bne .L558 4312.L578: 4313 ldp x19, x20, [sp, 16] 4314 mov w0, 0 4315 ldp x21, x22, [sp, 32] 4316 ldp x23, x24, [sp, 48] 4317 ldp x25, x26, [sp, 64] 4318 ldp x27, x28, [sp, 80] 4319 ldp x29, x30, [sp], 160 4320 ret 4321.L556: 4322 ldr x1, [x25, 8] 4323 tst x1, 63 4324 beq .L572 4325 adrp x0, .LANCHOR111 4326 ldr x26, [x0, #:lo12:.LANCHOR111] 4327 cmp x1, x26 4328 beq .L559 4329 adrp x0, .LANCHOR12 4330 ldrh w2, [x0, #:lo12:.LANCHOR12] 4331 mov x0, x26 4332 lsl w2, w2, 9 4333 bl ftl_memcpy 4334.L559: 4335 add x0, x24, :lo12:.LANCHOR78 4336 ldr w1, [x29, 124] 4337 ldr x3, [x25, 16] 4338 mov x2, x26 4339 ldr x6, [x0, 16] 4340 ldrb w0, [x29, 120] 4341 blr x6 4342 cbnz w0, .L560 4343 str wzr, [x25] 4344.L561: 4345 add x0, x21, :lo12:.LANCHOR0 4346 ldrh w0, [x0, 14] 4347 cmp w0, 4 4348 bne .L555 4349 ldrb w0, [x29, 120] 4350 add x2, x26, 2048 4351 ldr x6, [x28, 16] 4352 ldr w1, [x29, 124] 4353 ldr x3, [x25, 16] 4354 add w1, w23, w1 4355 add x3, x3, 8 4356 blr x6 4357 cbnz w0, .L591 4358.L555: 4359 add x25, x25, 32 4360 b .L551 4361.L572: 4362 mov x26, x1 4363 b .L559 4364.L560: 4365 mov w0, -1 4366 str w0, [x25] 4367 b .L561 4368 .size FlashProgPages, .-FlashProgPages 4369 .section .text.FtlLowFormatEraseBlock,"ax",@progbits 4370 .align 2 4371 .global FtlLowFormatEraseBlock 4372 .type FtlLowFormatEraseBlock, %function 4373FtlLowFormatEraseBlock: 4374 stp x29, x30, [sp, -128]! 4375 adrp x7, .LANCHOR13 4376 add x7, x7, :lo12:.LANCHOR13 4377 mov x5, 0 4378 add x29, sp, 0 4379 stp x23, x24, [sp, 48] 4380 and w23, w0, 65535 4381 adrp x0, .LANCHOR99 4382 stp x19, x20, [sp, 16] 4383 stp x21, x22, [sp, 32] 4384 adrp x20, .LANCHOR3 4385 stp x25, x26, [sp, 64] 4386 and w22, w1, 255 4387 str w23, [x0, #:lo12:.LANCHOR99] 4388 adrp x21, .LANCHOR79 4389 adrp x0, .LANCHOR110 4390 adrp x1, .LANCHOR115 4391 adrp x25, .LANCHOR24 4392 ldrh w8, [x20, #:lo12:.LANCHOR3] 4393 ldr x6, [x21, #:lo12:.LANCHOR79] 4394 mov w24, 0 4395 ldr x10, [x0, #:lo12:.LANCHOR110] 4396 mov w19, 0 4397 ldr x11, [x1, #:lo12:.LANCHOR115] 4398 ldrh w12, [x25, #:lo12:.LANCHOR24] 4399 stp x27, x28, [sp, 80] 4400 str x0, [x29, 112] 4401.L593: 4402 cmp w8, w5, uxth 4403 bhi .L597 4404 cbz w24, .L592 4405 mov w2, w24 4406 ubfiz x24, x24, 5, 16 4407 mov x26, 0 4408 mov w1, 0 4409 mov x0, x6 4410 bl FlashEraseBlocks 4411.L601: 4412 ldr x0, [x21, #:lo12:.LANCHOR79] 4413 add x1, x0, x26 4414 ldr w0, [x0, x26] 4415 cmn w0, #1 4416 bne .L600 4417 ldr w0, [x1, 4] 4418 add w19, w19, 1 4419 and w19, w19, 65535 4420 lsr w0, w0, 10 4421 bl FtlBbmMapBadBlock 4422.L600: 4423 add x26, x26, 32 4424 cmp x26, x24 4425 bne .L601 4426 cbz w22, .L614 4427 adrp x0, .LANCHOR20 4428 mov w26, 1 4429 ldrh w28, [x0, #:lo12:.LANCHOR20] 4430.L602: 4431 add x0, x20, :lo12:.LANCHOR3 4432 adrp x27, .LANCHOR13 4433 str x0, [x29, 120] 4434 mov w24, 0 4435 add x0, x27, :lo12:.LANCHOR13 4436 str x0, [x29, 104] 4437.L610: 4438 ldr x0, [x29, 120] 4439 mov x5, 0 4440 ldr x6, [x21, #:lo12:.LANCHOR79] 4441 mov w20, 0 4442 ldrh w11, [x25, #:lo12:.LANCHOR24] 4443 ldrh w7, [x0] 4444 adrp x0, .LANCHOR109 4445 ldr x8, [x0, #:lo12:.LANCHOR109] 4446 ldr x0, [x29, 112] 4447 ldr x10, [x0, #:lo12:.LANCHOR110] 4448.L603: 4449 cmp w7, w5, uxth 4450 bhi .L606 4451 cbz w20, .L592 4452 mov w1, w20 4453 mov w3, 1 4454 mov w2, w26 4455 mov x0, x6 4456 bl FlashProgPages 4457 mov x27, 0 4458 ubfiz x1, x20, 5, 16 4459.L609: 4460 ldr x0, [x21, #:lo12:.LANCHOR79] 4461 add x3, x0, x27 4462 ldr w0, [x0, x27] 4463 cbz w0, .L608 4464 ldr w0, [x3, 4] 4465 add w19, w19, 1 4466 str x1, [x29, 96] 4467 and w19, w19, 65535 4468 lsr w0, w0, 10 4469 bl FtlBbmMapBadBlock 4470 ldr x1, [x29, 96] 4471.L608: 4472 add x27, x27, 32 4473 cmp x1, x27 4474 bne .L609 4475 add w24, w24, 1 4476 cmp w28, w24, uxth 4477 bhi .L610 4478 mov x24, 0 4479.L612: 4480 cbz w22, .L611 4481 ldr x0, [x21, #:lo12:.LANCHOR79] 4482 add x1, x0, x24 4483 ldr w0, [x0, x24] 4484 cbnz w0, .L611 4485 ldr w0, [x1, 4] 4486 mov w1, 1 4487 lsr w0, w0, 10 4488 bl FtlFreeSysBlkQueueIn 4489.L611: 4490 add x24, x24, 32 4491 cmp x24, x27 4492 bne .L612 4493 cmp w23, 63 4494 ccmp w22, 0, 0, hi 4495 beq .L592 4496 ldr x0, [x21, #:lo12:.LANCHOR79] 4497 mov w2, w20 4498 mov w1, w26 4499 bl FlashEraseBlocks 4500.L592: 4501 mov w0, w19 4502 ldp x19, x20, [sp, 16] 4503 ldp x21, x22, [sp, 32] 4504 ldp x23, x24, [sp, 48] 4505 ldp x25, x26, [sp, 64] 4506 ldp x27, x28, [sp, 80] 4507 ldp x29, x30, [sp], 128 4508 ret 4509.L597: 4510 lsl x0, x5, 5 4511 mov w1, w23 4512 str wzr, [x6, x0] 4513 ldrb w0, [x7, x5] 4514 bl V2P_block 4515 and w13, w0, 65535 4516 mov w14, w13 4517 cbz w22, .L594 4518 bl IsBlkInVendorPart 4519 cbnz w0, .L595 4520.L594: 4521 mov w0, w14 4522 bl FtlBbmIsBadBlock 4523 cbnz w0, .L596 4524 ubfiz x0, x24, 5, 16 4525 mul w1, w24, w12 4526 add x0, x6, x0 4527 add w24, w24, 1 4528 and w24, w24, 65535 4529 lsl w13, w13, 10 4530 asr w1, w1, 2 4531 add x1, x11, x1, sxtw 2 4532 str w13, [x0, 4] 4533 stp x10, x1, [x0, 8] 4534.L595: 4535 add x5, x5, 1 4536 b .L593 4537.L596: 4538 add w19, w19, 1 4539 and w19, w19, 65535 4540 b .L595 4541.L614: 4542 mov w26, 0 4543 mov w28, 2 4544 b .L602 4545.L606: 4546 lsl x0, x5, 5 4547 mov w1, w23 4548 str wzr, [x6, x0] 4549 ldr x0, [x29, 104] 4550 ldrb w0, [x0, x5] 4551 bl V2P_block 4552 and w12, w0, 65535 4553 mov w13, w12 4554 cbz w22, .L604 4555 bl IsBlkInVendorPart 4556 cbnz w0, .L605 4557.L604: 4558 mov w0, w13 4559 bl FtlBbmIsBadBlock 4560 cbnz w0, .L605 4561 ubfiz x0, x20, 5, 16 4562 mul w1, w20, w11 4563 add x0, x6, x0 4564 add w20, w20, 1 4565 and w20, w20, 65535 4566 add w12, w24, w12, lsl 10 4567 asr w1, w1, 2 4568 add x1, x10, x1, sxtw 2 4569 str w12, [x0, 4] 4570 stp x8, x1, [x0, 8] 4571.L605: 4572 add x5, x5, 1 4573 b .L603 4574 .size FtlLowFormatEraseBlock, .-FtlLowFormatEraseBlock 4575 .section .text.FlashTestBlk,"ax",@progbits 4576 .align 2 4577 .global FlashTestBlk 4578 .type FlashTestBlk, %function 4579FlashTestBlk: 4580 stp x29, x30, [sp, -128]! 4581 add x29, sp, 0 4582 stp x19, x20, [sp, 16] 4583 and w19, w0, 65535 4584 cmp w19, 11 4585 bls .L638 4586 adrp x20, .LANCHOR112 4587 mov w2, 32 4588 mov w1, 165 4589 lsl w19, w19, 10 4590 ldr x0, [x20, #:lo12:.LANCHOR112] 4591 str x0, [x29, 40] 4592 add x0, x29, 64 4593 str x0, [x29, 48] 4594 bl ftl_memset 4595 ldr x0, [x20, #:lo12:.LANCHOR112] 4596 mov w2, 8 4597 mov w1, 90 4598 bl ftl_memset 4599 str w19, [x29, 36] 4600 mov w2, 1 4601 add x0, x29, 32 4602 mov w1, w2 4603 bl FlashEraseBlocks 4604 mov w3, 1 4605 add x0, x29, 32 4606 mov w2, w3 4607 mov w1, w3 4608 bl FlashProgPages 4609 ldr w0, [x29, 32] 4610 cbnz w0, .L639 4611 add w0, w19, 1 4612 mov w3, 1 4613 str w0, [x29, 36] 4614 mov w2, w3 4615 mov w1, w3 4616 add x0, x29, 32 4617 bl FlashProgPages 4618 ldr w0, [x29, 32] 4619 cmp w0, 0 4620 csetm w20, ne 4621.L637: 4622 mov w2, 1 4623 mov w1, 0 4624 add x0, x29, 32 4625 str w19, [x29, 36] 4626 bl FlashEraseBlocks 4627.L635: 4628 mov w0, w20 4629 ldp x19, x20, [sp, 16] 4630 ldp x29, x30, [sp], 128 4631 ret 4632.L639: 4633 mov w20, -1 4634 b .L637 4635.L638: 4636 mov w20, 0 4637 b .L635 4638 .size FlashTestBlk, .-FlashTestBlk 4639 .section .text.FtlBbmTblFlush,"ax",@progbits 4640 .align 2 4641 .global FtlBbmTblFlush 4642 .type FtlBbmTblFlush, %function 4643FtlBbmTblFlush: 4644 stp x29, x30, [sp, -96]! 4645 add x29, sp, 0 4646 stp x23, x24, [sp, 48] 4647 adrp x23, .LANCHOR114 4648 stp x19, x20, [sp, 16] 4649 adrp x20, .LANCHOR138 4650 stp x21, x22, [sp, 32] 4651 add x19, x20, :lo12:.LANCHOR138 4652 adrp x22, .LANCHOR106 4653 ldr x1, [x23, #:lo12:.LANCHOR114] 4654 stp x25, x26, [sp, 64] 4655 adrp x21, .LANCHOR37 4656 str x27, [sp, 80] 4657 add x25, x21, :lo12:.LANCHOR37 4658 ldr x0, [x22, #:lo12:.LANCHOR106] 4659 adrp x26, .LANCHOR10 4660 stp x0, x1, [x19, 8] 4661 adrp x1, .LANCHOR23 4662 adrp x27, .LANCHOR127 4663 add x25, x25, 32 4664 ldrh w2, [x1, #:lo12:.LANCHOR23] 4665 mov w24, 0 4666 add x26, x26, :lo12:.LANCHOR10 4667 add x27, x27, :lo12:.LANCHOR127 4668 mov w1, 0 4669 bl ftl_memset 4670.L642: 4671 ldrh w0, [x26] 4672 cmp w24, w0 4673 blt .L643 4674 add x20, x20, :lo12:.LANCHOR138 4675 add x19, x21, :lo12:.LANCHOR37 4676 mov w2, 16 4677 mov w1, 255 4678 adrp x25, .LC18 4679 adrp x26, .LANCHOR20 4680 ldr x27, [x20, 16] 4681 add x25, x25, :lo12:.LC18 4682 add x26, x26, :lo12:.LANCHOR20 4683 mov w24, 0 4684 mov x0, x27 4685 bl ftl_memset 4686 mov w0, -3887 4687 strh w0, [x27] 4688 ldr w0, [x19, 8] 4689 str w0, [x27, 4] 4690 ldrh w0, [x21, #:lo12:.LANCHOR37] 4691 mov w21, 0 4692 strh w0, [x27, 2] 4693 ldrh w0, [x19, 4] 4694 strh w0, [x27, 8] 4695 ldrh w0, [x19, 6] 4696 strh w0, [x27, 10] 4697 adrp x0, .LANCHOR2 4698 ldr w0, [x0, #:lo12:.LANCHOR2] 4699 strh w0, [x27, 12] 4700 adrp x0, .LANCHOR143 4701 ldr w0, [x0, #:lo12:.LANCHOR143] 4702 strh w0, [x27, 14] 4703.L644: 4704 ldrh w1, [x19] 4705 ldrh w4, [x27, 10] 4706 ldrh w2, [x19, 2] 4707 ldrh w3, [x19, 4] 4708 ldr x0, [x22, #:lo12:.LANCHOR106] 4709 str x0, [x20, 8] 4710 ldr x0, [x23, #:lo12:.LANCHOR114] 4711 str x0, [x20, 16] 4712 orr w0, w2, w1, lsl 10 4713 str wzr, [x20] 4714 str w0, [x20, 4] 4715 mov x0, x25 4716 bl printf 4717 ldrh w0, [x26] 4718 ldrh w1, [x19, 2] 4719 sub w0, w0, #1 4720 cmp w1, w0 4721 blt .L645 4722 ldr w0, [x19, 8] 4723 mov w2, 1 4724 ldrh w1, [x19, 4] 4725 add w0, w0, 1 4726 str w0, [x19, 8] 4727 str w0, [x27, 4] 4728 ldrh w0, [x19] 4729 strh w0, [x27, 8] 4730 strh w0, [x19, 4] 4731 adrp x0, .LANCHOR79 4732 strh w1, [x19] 4733 lsl w1, w1, 10 4734 ldr x0, [x0, #:lo12:.LANCHOR79] 4735 str w1, [x20, 4] 4736 strh wzr, [x19, 2] 4737 str w1, [x0, 4] 4738 mov w1, w2 4739 bl FlashEraseBlocks 4740.L645: 4741 mov w3, 1 4742 mov x0, x20 4743 mov w2, w3 4744 mov w1, w3 4745 bl FlashProgPages 4746 ldrh w0, [x19, 2] 4747 add w0, w0, 1 4748 strh w0, [x19, 2] 4749 ldr w0, [x20] 4750 cmn w0, #1 4751 bne .L646 4752 ldr w1, [x20, 4] 4753 add w21, w21, 1 4754 adrp x0, .LC19 4755 and w21, w21, 65535 4756 add x0, x0, :lo12:.LC19 4757 bl printf 4758 cmp w21, 3 4759 bls .L644 4760 ldr w1, [x20, 4] 4761 adrp x0, .LC20 4762 mov w2, w21 4763 add x0, x0, :lo12:.LC20 4764 bl printf 4765.L648: 4766 b .L648 4767.L643: 4768 ldrh w2, [x27] 4769 ldr x1, [x25], 8 4770 ldr x0, [x19, 8] 4771 mul w3, w24, w2 4772 lsl w2, w2, 2 4773 add w24, w24, 1 4774 add x0, x0, x3, sxtw 2 4775 bl ftl_memcpy 4776 b .L642 4777.L646: 4778 add w24, w24, 1 4779 cmp w24, 1 4780 beq .L644 4781 cmp w0, 256 4782 beq .L644 4783 mov w0, 0 4784 ldr x27, [sp, 80] 4785 ldp x19, x20, [sp, 16] 4786 ldp x21, x22, [sp, 32] 4787 ldp x23, x24, [sp, 48] 4788 ldp x25, x26, [sp, 64] 4789 ldp x29, x30, [sp], 96 4790 ret 4791 .size FtlBbmTblFlush, .-FtlBbmTblFlush 4792 .section .text.allocate_data_superblock,"ax",@progbits 4793 .align 2 4794 .global allocate_data_superblock 4795 .type allocate_data_superblock, %function 4796allocate_data_superblock: 4797 stp x29, x30, [sp, -112]! 4798 add x29, sp, 0 4799 stp x27, x28, [sp, 80] 4800 adrp x28, .LANCHOR48 4801 stp x23, x24, [sp, 48] 4802 add x24, x28, :lo12:.LANCHOR48 4803 stp x19, x20, [sp, 16] 4804 adrp x27, .LANCHOR44 4805 mov x19, x0 4806 stp x21, x22, [sp, 32] 4807 add x0, x27, :lo12:.LANCHOR44 4808 stp x25, x26, [sp, 64] 4809 str x0, [x29, 104] 4810.L657: 4811 ldr x1, [x29, 104] 4812 adrp x23, .LANCHOR5 4813 ldrh w0, [x28, #:lo12:.LANCHOR48] 4814 ldrh w1, [x1] 4815 add w0, w0, w1 4816 ldrh w1, [x23, #:lo12:.LANCHOR5] 4817 cmp w0, w1 4818 ble .L658 4819 adrp x1, .LANCHOR144 4820 adrp x0, .LC1 4821 mov w2, 2656 4822 add x1, x1, :lo12:.LANCHOR144 4823 add x0, x0, :lo12:.LC1 4824 bl printf 4825.L658: 4826 adrp x0, .LANCHOR53 4827 add x0, x0, :lo12:.LANCHOR53 4828 cmp x19, x0 4829 bne .L684 4830 adrp x1, .LANCHOR95 4831 ldrh w0, [x24] 4832 ldr w1, [x1, #:lo12:.LANCHOR95] 4833 mul w1, w0, w1 4834 lsr w0, w0, 1 4835 add w0, w0, 1 4836 add w1, w0, w1, lsr 2 4837 ands w1, w1, 65535 4838 beq .L659 4839 sub w1, w1, #1 4840 and w1, w1, 65535 4841.L659: 4842 adrp x0, .LANCHOR46 4843 add x0, x0, :lo12:.LANCHOR46 4844 bl List_pop_index_node 4845 and w22, w0, 65535 4846 ldrh w0, [x24] 4847 cbnz w0, .L660 4848 adrp x1, .LANCHOR144 4849 adrp x0, .LC1 4850 mov w2, 2665 4851 add x1, x1, :lo12:.LANCHOR144 4852 add x0, x0, :lo12:.LC1 4853 bl printf 4854.L660: 4855 ldrh w0, [x24] 4856 sub w0, w0, #1 4857 strh w0, [x24] 4858 ldrh w0, [x23, #:lo12:.LANCHOR5] 4859 cmp w0, w22 4860 bls .L657 4861 adrp x25, .LANCHOR42 4862 ubfiz x20, x22, 1, 16 4863 ldr x0, [x25, #:lo12:.LANCHOR42] 4864 ldrh w21, [x0, x20] 4865 cbnz w21, .L657 4866 strh w22, [x19] 4867 mov x0, x19 4868 bl make_superblock 4869 ldrb w0, [x19, 7] 4870 cbnz w0, .L662 4871 ldr x0, [x25, #:lo12:.LANCHOR42] 4872 mov w1, -1 4873 strh w1, [x0, x20] 4874 mov w0, w22 4875 bl INSERT_DATA_LIST 4876 ldrh w1, [x27, #:lo12:.LANCHOR44] 4877 ldrh w0, [x24] 4878 add w0, w0, w1 4879 ldrh w1, [x23, #:lo12:.LANCHOR5] 4880 cmp w0, w1 4881 ble .L657 4882 mov w2, 2679 4883 adrp x1, .LANCHOR144 4884 adrp x0, .LC1 4885 add x1, x1, :lo12:.LANCHOR144 4886 add x0, x0, :lo12:.LC1 4887 bl printf 4888 b .L657 4889.L684: 4890 mov w1, 0 4891 b .L659 4892.L662: 4893 ldrh w1, [x27, #:lo12:.LANCHOR44] 4894 ldrh w0, [x24] 4895 add w0, w0, w1 4896 ldrh w1, [x23, #:lo12:.LANCHOR5] 4897 cmp w0, w1 4898 ble .L664 4899 adrp x1, .LANCHOR144 4900 adrp x0, .LC1 4901 mov w2, 2682 4902 add x1, x1, :lo12:.LANCHOR144 4903 add x0, x0, :lo12:.LC1 4904 bl printf 4905.L664: 4906 adrp x0, .LANCHOR3 4907 adrp x25, .LANCHOR79 4908 add x26, x19, 16 4909 mov w6, 65535 4910 ldrh w0, [x0, #:lo12:.LANCHOR3] 4911 mov x4, x26 4912 ldr x3, [x25, #:lo12:.LANCHOR79] 4913 ubfiz x0, x0, 5, 16 4914 add x1, x3, 8 4915 add x0, x0, 8 4916 add x0, x3, x0 4917.L665: 4918 cmp x0, x1 4919 bne .L667 4920 cbnz w21, .L668 4921 adrp x1, .LANCHOR144 4922 adrp x0, .LC1 4923 mov w2, 2693 4924 add x1, x1, :lo12:.LANCHOR144 4925 add x0, x0, :lo12:.LC1 4926 bl printf 4927.L668: 4928 adrp x0, .LANCHOR145 4929 ldrh w0, [x0, #:lo12:.LANCHOR145] 4930 cmp w0, w22 4931 bne .L669 4932 adrp x1, .LANCHOR144 4933 adrp x0, .LC1 4934 mov w2, 2695 4935 add x1, x1, :lo12:.LANCHOR144 4936 add x0, x0, :lo12:.LC1 4937 bl printf 4938.L669: 4939 ldrb w0, [x19, 8] 4940 adrp x6, .LANCHOR47 4941 adrp x7, .LANCHOR14 4942 adrp x5, .LANCHOR90 4943 adrp x4, .LANCHOR91 4944 ldr x1, [x6, #:lo12:.LANCHOR47] 4945 cbnz w0, .L670 4946 ldrh w0, [x1, x20] 4947 cbz w0, .L671 4948 ldrh w2, [x7, #:lo12:.LANCHOR14] 4949 add w0, w0, w2 4950.L695: 4951 strh w0, [x1, x20] 4952 mov w1, 0 4953 ldr w0, [x5, #:lo12:.LANCHOR90] 4954 add w0, w0, 1 4955 str w0, [x5, #:lo12:.LANCHOR90] 4956 mov w0, w22 4957 bl ftl_set_blk_mode 4958.L673: 4959 ldr x0, [x6, #:lo12:.LANCHOR47] 4960 ldrh w1, [x0, x20] 4961 adrp x0, .LANCHOR92 4962 ldr w2, [x0, #:lo12:.LANCHOR92] 4963 cmp w1, w2 4964 bls .L674 4965 str w1, [x0, #:lo12:.LANCHOR92] 4966.L674: 4967 ldr w2, [x5, #:lo12:.LANCHOR90] 4968 ldr w1, [x4, #:lo12:.LANCHOR91] 4969 ldrh w0, [x7, #:lo12:.LANCHOR14] 4970 madd w0, w0, w2, w1 4971 ldrh w1, [x23, #:lo12:.LANCHOR5] 4972 udiv w0, w0, w1 4973 adrp x1, .LANCHOR143 4974 str w0, [x1, #:lo12:.LANCHOR143] 4975 adrp x0, .LANCHOR118 4976 ldr x1, [x0, #:lo12:.LANCHOR118] 4977 ldr w0, [x1, 16] 4978 add w0, w0, 1 4979 str w0, [x1, 16] 4980 ldr x0, [x25, #:lo12:.LANCHOR79] 4981 ubfiz x1, x21, 5, 16 4982 add x1, x1, 4 4983 add x2, x0, 4 4984 add x1, x0, x1 4985.L675: 4986 cmp x1, x2 4987 bne .L676 4988 ldrb w1, [x19, 8] 4989 mov w2, w21 4990 mov x23, 0 4991 bl FlashEraseBlocks 4992 mov w1, 0 4993.L677: 4994 cmp w21, w23, uxth 4995 bhi .L679 4996 cbz w1, .L680 4997 mov w0, w22 4998 bl update_multiplier_value 4999 bl FtlBbmTblFlush 5000.L680: 5001 ldrb w0, [x19, 7] 5002 cbnz w0, .L681 5003 adrp x0, .LANCHOR42 5004 mov w1, -1 5005 ldr x0, [x0, #:lo12:.LANCHOR42] 5006 strh w1, [x0, x20] 5007 b .L657 5008.L667: 5009 ldrh w2, [x4] 5010 stp xzr, xzr, [x1] 5011 cmp w2, w6 5012 beq .L666 5013 ubfiz x5, x21, 5, 16 5014 add w21, w21, 1 5015 add x5, x3, x5 5016 and w21, w21, 65535 5017 lsl w2, w2, 10 5018 str w2, [x5, 4] 5019.L666: 5020 add x1, x1, 32 5021 add x4, x4, 2 5022 b .L665 5023.L671: 5024 mov w0, 2 5025 b .L695 5026.L670: 5027 ldrh w0, [x1, x20] 5028 add w0, w0, 1 5029 strh w0, [x1, x20] 5030 ldr w0, [x4, #:lo12:.LANCHOR91] 5031 add w0, w0, 1 5032 str w0, [x4, #:lo12:.LANCHOR91] 5033 mov w0, w22 5034 bl ftl_set_blk_mode.part.6 5035 b .L673 5036.L676: 5037 ldr w3, [x2] 5038 and w3, w3, -1024 5039 str w3, [x2], 32 5040 b .L675 5041.L679: 5042 ldr x2, [x25, #:lo12:.LANCHOR79] 5043 lsl x0, x23, 5 5044 add x3, x2, x0 5045 ldr w2, [x2, x0] 5046 cmn w2, #1 5047 bne .L678 5048 add w1, w1, 1 5049 ldr w0, [x3, 4] 5050 stp w2, w1, [x29, 96] 5051 lsr w0, w0, 10 5052 bl FtlBbmMapBadBlock 5053 ldp w2, w1, [x29, 96] 5054 strh w2, [x26] 5055 ldrb w0, [x19, 7] 5056 sub w0, w0, #1 5057 strb w0, [x19, 7] 5058.L678: 5059 add x23, x23, 1 5060 add x26, x26, 2 5061 b .L677 5062.L681: 5063 adrp x1, .LANCHOR19 5064 adrp x2, .LANCHOR82 5065 strh wzr, [x19, 2] 5066 ldrh w1, [x1, #:lo12:.LANCHOR19] 5067 strh w22, [x19] 5068 strb wzr, [x19, 6] 5069 mul w0, w0, w1 5070 ldr w1, [x2, #:lo12:.LANCHOR82] 5071 str w1, [x19, 12] 5072 add w1, w1, 1 5073 str w1, [x2, #:lo12:.LANCHOR82] 5074 adrp x1, .LANCHOR42 5075 and w0, w0, 65535 5076 strh w0, [x19, 4] 5077 ldr x1, [x1, #:lo12:.LANCHOR42] 5078 strh w0, [x1, x20] 5079 ldrh w0, [x19, 4] 5080 cbz w0, .L682 5081 ldrb w0, [x19, 7] 5082 cbnz w0, .L683 5083.L682: 5084 adrp x1, .LANCHOR144 5085 adrp x0, .LC1 5086 mov w2, 2748 5087 add x1, x1, :lo12:.LANCHOR144 5088 add x0, x0, :lo12:.LC1 5089 bl printf 5090.L683: 5091 ldp x19, x20, [sp, 16] 5092 mov w0, 0 5093 ldp x21, x22, [sp, 32] 5094 ldp x23, x24, [sp, 48] 5095 ldp x25, x26, [sp, 64] 5096 ldp x27, x28, [sp, 80] 5097 ldp x29, x30, [sp], 112 5098 ret 5099 .size allocate_data_superblock, .-allocate_data_superblock 5100 .section .text.FtlGcFreeBadSuperBlk,"ax",@progbits 5101 .align 2 5102 .global FtlGcFreeBadSuperBlk 5103 .type FtlGcFreeBadSuperBlk, %function 5104FtlGcFreeBadSuperBlk: 5105 stp x29, x30, [sp, -96]! 5106 add x29, sp, 0 5107 stp x21, x22, [sp, 32] 5108 adrp x21, .LANCHOR74 5109 stp x25, x26, [sp, 64] 5110 and w25, w0, 65535 5111 ldrh w0, [x21, #:lo12:.LANCHOR74] 5112 stp x19, x20, [sp, 16] 5113 stp x23, x24, [sp, 48] 5114 str x27, [sp, 80] 5115 cbz w0, .L697 5116 adrp x23, .LANCHOR75 5117 add x24, x23, :lo12:.LANCHOR75 5118 mov w19, 0 5119.L698: 5120 adrp x0, .LANCHOR3 5121 ldrh w0, [x0, #:lo12:.LANCHOR3] 5122 cmp w0, w19 5123 bhi .L704 5124 bl FtlGcReFreshBadBlk 5125.L697: 5126 mov w0, 0 5127 ldr x27, [sp, 80] 5128 ldp x19, x20, [sp, 16] 5129 ldp x21, x22, [sp, 32] 5130 ldp x23, x24, [sp, 48] 5131 ldp x25, x26, [sp, 64] 5132 ldp x29, x30, [sp], 96 5133 ret 5134.L704: 5135 adrp x0, .LANCHOR13 5136 add x0, x0, :lo12:.LANCHOR13 5137 mov w1, w25 5138 add x22, x21, :lo12:.LANCHOR74 5139 mov w20, 0 5140 ldrb w0, [x0, w19, sxtw] 5141 bl V2P_block 5142 and w26, w0, 65535 5143.L699: 5144 ldrh w0, [x22] 5145 cmp w0, w20 5146 bhi .L703 5147 add w19, w19, 1 5148 and w19, w19, 65535 5149 b .L698 5150.L703: 5151 add x0, x23, :lo12:.LANCHOR75 5152 add w27, w20, 1 5153 ldrh w0, [x0, w20, sxtw 1] 5154 cmp w0, w26 5155 bne .L700 5156 mov w0, w26 5157 bl FtlBbmMapBadBlock 5158 bl FtlBbmTblFlush 5159 ldrh w1, [x22] 5160 sxtw x3, w27 5161 and x4, x20, 65535 5162 mov x0, 0 5163.L701: 5164 add w2, w20, w0 5165 cmp w1, w2, uxth 5166 bhi .L702 5167 sub w1, w1, #1 5168 strh w1, [x22] 5169.L700: 5170 and w20, w27, 65535 5171 b .L699 5172.L702: 5173 add x2, x3, x0 5174 ldrh w5, [x24, x2, lsl 1] 5175 add x2, x4, x0 5176 add x0, x0, 1 5177 strh w5, [x24, x2, lsl 1] 5178 b .L701 5179 .size FtlGcFreeBadSuperBlk, .-FtlGcFreeBadSuperBlk 5180 .section .text.update_vpc_list,"ax",@progbits 5181 .align 2 5182 .global update_vpc_list 5183 .type update_vpc_list, %function 5184update_vpc_list: 5185 stp x29, x30, [sp, -32]! 5186 adrp x1, .LANCHOR42 5187 add x29, sp, 0 5188 stp x19, x20, [sp, 16] 5189 and w19, w0, 65535 5190 ldr x1, [x1, #:lo12:.LANCHOR42] 5191 ubfiz x0, x19, 1, 16 5192 ldrh w0, [x1, x0] 5193 cbnz w0, .L710 5194 adrp x0, .LANCHOR72 5195 ldrh w1, [x0, #:lo12:.LANCHOR72] 5196 cmp w1, w19 5197 bne .L711 5198 mov w1, -1 5199 strh w1, [x0, #:lo12:.LANCHOR72] 5200.L711: 5201 adrp x0, .LANCHOR73 5202 ldrh w1, [x0, #:lo12:.LANCHOR73] 5203 cmp w1, w19 5204 bne .L712 5205 mov w1, -1 5206 strh w1, [x0, #:lo12:.LANCHOR73] 5207.L712: 5208 adrp x0, .LANCHOR145 5209 ldrh w1, [x0, #:lo12:.LANCHOR145] 5210 cmp w1, w19 5211 bne .L713 5212 mov w1, -1 5213 strh w1, [x0, #:lo12:.LANCHOR145] 5214.L714: 5215 adrp x20, .LANCHOR44 5216 mov w1, w19 5217 adrp x0, .LANCHOR41 5218 add x0, x0, :lo12:.LANCHOR41 5219 bl List_remove_node 5220 ldrh w0, [x20, #:lo12:.LANCHOR44] 5221 cbnz w0, .L716 5222 adrp x1, .LANCHOR146 5223 adrp x0, .LC1 5224 mov w2, 2824 5225 add x1, x1, :lo12:.LANCHOR146 5226 add x0, x0, :lo12:.LC1 5227 bl printf 5228.L716: 5229 ldrh w0, [x20, #:lo12:.LANCHOR44] 5230 sub w0, w0, #1 5231 strh w0, [x20, #:lo12:.LANCHOR44] 5232 mov w0, w19 5233 bl free_data_superblock 5234 mov w0, w19 5235 bl FtlGcFreeBadSuperBlk 5236 adrp x0, .LANCHOR48 5237 ldrh w1, [x20, #:lo12:.LANCHOR44] 5238 ldrh w0, [x0, #:lo12:.LANCHOR48] 5239 add w0, w0, w1 5240 adrp x1, .LANCHOR5 5241 ldrh w1, [x1, #:lo12:.LANCHOR5] 5242 cmp w0, w1 5243 ble .L720 5244 adrp x1, .LANCHOR146 5245 adrp x0, .LC1 5246 mov w2, 2827 5247 add x1, x1, :lo12:.LANCHOR146 5248 add x0, x0, :lo12:.LC1 5249 bl printf 5250.L720: 5251 mov w0, 1 5252 b .L709 5253.L713: 5254 adrp x0, .LANCHOR51 5255 ldrh w0, [x0, #:lo12:.LANCHOR51] 5256 cmp w0, w19 5257 beq .L719 5258 adrp x0, .LANCHOR52 5259 ldrh w0, [x0, #:lo12:.LANCHOR52] 5260 cmp w0, w19 5261 beq .L719 5262 adrp x0, .LANCHOR53 5263 ldrh w0, [x0, #:lo12:.LANCHOR53] 5264 cmp w0, w19 5265 bne .L714 5266.L719: 5267 mov w0, 0 5268.L709: 5269 ldp x19, x20, [sp, 16] 5270 ldp x29, x30, [sp], 32 5271 ret 5272.L710: 5273 mov w0, w19 5274 bl List_update_data_list 5275 b .L719 5276 .size update_vpc_list, .-update_vpc_list 5277 .section .text.decrement_vpc_count,"ax",@progbits 5278 .align 2 5279 .global decrement_vpc_count 5280 .type decrement_vpc_count, %function 5281decrement_vpc_count: 5282 stp x29, x30, [sp, -48]! 5283 add x29, sp, 0 5284 stp x19, x20, [sp, 16] 5285 and w19, w0, 65535 5286 str x21, [sp, 32] 5287 mov w0, 65535 5288 cmp w19, w0 5289 beq .L723 5290 adrp x21, .LANCHOR42 5291 ubfiz x20, x19, 1, 16 5292 ldr x1, [x21, #:lo12:.LANCHOR42] 5293 ldrh w0, [x1, x20] 5294 cbnz w0, .L724 5295 mov w2, 0 5296 mov w1, w19 5297 adrp x0, .LC21 5298 add x0, x0, :lo12:.LC21 5299 bl printf 5300 ldr x0, [x21, #:lo12:.LANCHOR42] 5301 ldrh w0, [x0, x20] 5302 cbz w0, .L725 5303.L730: 5304 mov w20, 0 5305.L722: 5306 mov w0, w20 5307 ldr x21, [sp, 32] 5308 ldp x19, x20, [sp, 16] 5309 ldp x29, x30, [sp], 48 5310 ret 5311.L725: 5312 mov w2, 2842 5313 adrp x1, .LANCHOR147 5314 adrp x0, .LC1 5315 add x1, x1, :lo12:.LANCHOR147 5316 add x0, x0, :lo12:.LC1 5317 bl printf 5318 b .L730 5319.L724: 5320 sub w0, w0, #1 5321 strh w0, [x1, x20] 5322.L723: 5323 adrp x21, .LANCHOR131 5324 mov w1, 65535 5325 ldrh w0, [x21, #:lo12:.LANCHOR131] 5326 cmp w0, w1 5327 bne .L727 5328 strh w19, [x21, #:lo12:.LANCHOR131] 5329 b .L730 5330.L727: 5331 cmp w19, w0 5332 beq .L730 5333 bl update_vpc_list 5334 cmp w0, 0 5335 adrp x1, .LANCHOR40 5336 adrp x0, .LANCHOR41 5337 strh w19, [x21, #:lo12:.LANCHOR131] 5338 cset w20, ne 5339 ldr x1, [x1, #:lo12:.LANCHOR40] 5340 ldr x0, [x0, #:lo12:.LANCHOR41] 5341 sub x0, x0, x1 5342 mov x1, -6148914691236517206 5343 asr x0, x0, 1 5344 movk x1, 0xaaab, lsl 0 5345 mul x0, x0, x1 5346 adrp x1, .LANCHOR42 5347 ldr x1, [x1, #:lo12:.LANCHOR42] 5348 and x2, x0, 65535 5349 ldrh w1, [x1, x2, lsl 1] 5350 cbnz w1, .L722 5351 cmp w19, w0, uxth 5352 beq .L722 5353 mov w2, 2858 5354 adrp x1, .LANCHOR147 5355 adrp x0, .LC1 5356 add x1, x1, :lo12:.LANCHOR147 5357 add x0, x0, :lo12:.LC1 5358 bl printf 5359 b .L722 5360 .size decrement_vpc_count, .-decrement_vpc_count 5361 .section .text.FtlSuperblockPowerLostFix,"ax",@progbits 5362 .align 2 5363 .global FtlSuperblockPowerLostFix 5364 .type FtlSuperblockPowerLostFix, %function 5365FtlSuperblockPowerLostFix: 5366 stp x29, x30, [sp, -80]! 5367 adrp x1, .LANCHOR114 5368 add x29, sp, 0 5369 stp x19, x20, [sp, 16] 5370 mov x19, x0 5371 mov w0, -1 5372 stp x21, x22, [sp, 32] 5373 str w0, [x29, 72] 5374 adrp x0, .LANCHOR106 5375 ldr x21, [x1, #:lo12:.LANCHOR114] 5376 mov w1, -3 5377 ldr x0, [x0, #:lo12:.LANCHOR106] 5378 adrp x22, .LANCHOR83 5379 str x21, [x29, 64] 5380 add x22, x22, :lo12:.LANCHOR83 5381 str x0, [x29, 56] 5382 ldrh w20, [x19, 4] 5383 str w1, [x21, 8] 5384 mov w1, -2 5385 str w1, [x21, 12] 5386 and w20, w20, 1 5387 ldrh w1, [x19] 5388 add w20, w20, 6 5389 strh w1, [x21, 2] 5390 strh wzr, [x21] 5391 mov w1, 61589 5392 str w1, [x0] 5393 mov w1, 22136 5394 movk w1, 0x1234, lsl 16 5395 str w1, [x0, 4] 5396.L737: 5397 ldrh w0, [x19, 4] 5398 cbnz w0, .L733 5399.L734: 5400 ldrh w0, [x19] 5401 adrp x1, .LANCHOR42 5402 ldrh w3, [x19, 4] 5403 ldr x2, [x1, #:lo12:.LANCHOR42] 5404 lsl x0, x0, 1 5405 ldrh w1, [x2, x0] 5406 sub w1, w1, w3 5407 strh w1, [x2, x0] 5408 adrp x0, .LANCHOR19 5409 strb wzr, [x19, 6] 5410 strh wzr, [x19, 4] 5411 ldrh w0, [x0, #:lo12:.LANCHOR19] 5412 strh w0, [x19, 2] 5413 ldp x21, x22, [sp, 32] 5414 ldp x19, x20, [sp, 16] 5415 ldp x29, x30, [sp], 80 5416 ret 5417.L733: 5418 mov x0, x19 5419 bl get_new_active_ppa 5420 str w0, [x29, 52] 5421 cmn w0, #1 5422 beq .L734 5423 ldr w0, [x22] 5424 mov w3, 0 5425 str w0, [x21, 4] 5426 mov w2, 0 5427 add w0, w0, 1 5428 mov w1, 1 5429 cmn w0, #1 5430 csel w0, w0, wzr, ne 5431 str w0, [x22] 5432 add x0, x29, 48 5433 bl FlashProgPages 5434 ldrh w0, [x19] 5435 bl decrement_vpc_count 5436 subs w20, w20, #1 5437 bne .L737 5438 b .L734 5439 .size FtlSuperblockPowerLostFix, .-FtlSuperblockPowerLostFix 5440 .section .text.FtlMakeBbt,"ax",@progbits 5441 .align 2 5442 .global FtlMakeBbt 5443 .type FtlMakeBbt, %function 5444FtlMakeBbt: 5445 stp x29, x30, [sp, -128]! 5446 add x29, sp, 0 5447 stp x21, x22, [sp, 32] 5448 mov w22, 0 5449 stp x19, x20, [sp, 16] 5450 adrp x20, .LANCHOR37 5451 stp x23, x24, [sp, 48] 5452 add x21, x20, :lo12:.LANCHOR37 5453 stp x25, x26, [sp, 64] 5454 add x24, x21, 32 5455 stp x27, x28, [sp, 80] 5456 bl FtlBbtMemInit 5457 bl FtlLoadFactoryBbt 5458 adrp x28, .LANCHOR138 5459 add x21, x21, 12 5460 add x25, x28, :lo12:.LANCHOR138 5461 adrp x0, .LANCHOR10 5462 add x0, x0, :lo12:.LANCHOR10 5463 str x0, [x29, 120] 5464.L746: 5465 ldr x0, [x29, 120] 5466 ldrh w0, [x0] 5467 cmp w22, w0 5468 bcc .L752 5469 adrp x21, .LANCHOR25 5470 add x21, x21, :lo12:.LANCHOR25 5471 mov w19, 0 5472.L753: 5473 ldrh w0, [x21] 5474 cmp w0, w19 5475 bhi .L754 5476 add x21, x20, :lo12:.LANCHOR37 5477 mov w22, 65535 5478 ldrh w19, [x21, 12] 5479 sub w19, w19, #1 5480 and w19, w19, 65535 5481.L755: 5482 ldrh w0, [x21, 12] 5483 sub w0, w0, #47 5484 cmp w0, w19 5485 bgt .L759 5486 mov w0, w19 5487 bl FtlBbmIsBadBlock 5488 cmp w0, 1 5489 beq .L756 5490 mov w0, w19 5491 bl FlashTestBlk 5492 cbz w0, .L757 5493 mov w0, w19 5494 bl FtlBbmMapBadBlock 5495.L756: 5496 sub w19, w19, #1 5497 and w19, w19, 65535 5498 b .L755 5499.L752: 5500 adrp x2, .LANCHOR114 5501 adrp x0, .LANCHOR106 5502 add x19, x28, :lo12:.LANCHOR138 5503 ldrh w1, [x21] 5504 ldr x0, [x0, #:lo12:.LANCHOR106] 5505 mov w3, 65535 5506 ldr x26, [x2, #:lo12:.LANCHOR114] 5507 cmp w1, w3 5508 stp x0, x26, [x19, 8] 5509 adrp x23, .LANCHOR17 5510 str x2, [x29, 112] 5511 beq .L747 5512 ldrh w4, [x23, #:lo12:.LANCHOR17] 5513 mov w2, 1 5514 madd w27, w4, w22, w1 5515 mov w1, w2 5516 lsl w0, w27, 10 5517 str w0, [x19, 4] 5518 mov x0, x19 5519 bl FlashReadPages 5520 ldr x1, [x19, 8] 5521 ldr x0, [x24] 5522 ldrh w2, [x23, #:lo12:.LANCHOR17] 5523 add w2, w2, 7 5524 lsr w2, w2, 3 5525 bl ftl_memcpy 5526.L748: 5527 mov w0, w27 5528 add w22, w22, 1 5529 bl FtlBbmMapBadBlock 5530 add x24, x24, 8 5531 add x21, x21, 2 5532 b .L746 5533.L747: 5534 mov w1, w22 5535 bl FlashGetBadBlockList 5536 ldr x0, [x19, 8] 5537 ldr x1, [x24] 5538 bl FtlBbt2Bitmap 5539 ldrh w19, [x23, #:lo12:.LANCHOR17] 5540 add x23, x23, :lo12:.LANCHOR17 5541 adrp x0, .LANCHOR127 5542 sub w19, w19, #1 5543 add x0, x0, :lo12:.LANCHOR127 5544 and w19, w19, 65535 5545 str x0, [x29, 104] 5546.L749: 5547 ldrh w0, [x23] 5548 madd w0, w22, w0, w19 5549 bl FtlBbmIsBadBlock 5550 cmp w0, 1 5551 beq .L750 5552 ldr x0, [x29, 112] 5553 mov w2, 16 5554 strh w19, [x21] 5555 mov w1, 0 5556 ldr x0, [x0, #:lo12:.LANCHOR114] 5557 bl ftl_memset 5558 adrp x0, .LANCHOR106 5559 mov w2, 4096 5560 mov w1, 0 5561 ldr x0, [x0, #:lo12:.LANCHOR106] 5562 bl ftl_memset 5563 mov w0, -3872 5564 strh w0, [x26] 5565 ldrh w4, [x23] 5566 ldrh w0, [x21] 5567 strh w0, [x26, 2] 5568 ldr x1, [x24] 5569 str wzr, [x26, 4] 5570 madd w27, w4, w22, w0 5571 lsl w0, w27, 10 5572 str w0, [x25, 4] 5573 ldr x0, [x29, 104] 5574 ldrh w2, [x0] 5575 ldr x0, [x25, 8] 5576 lsl w2, w2, 2 5577 bl ftl_memcpy 5578 mov w2, 1 5579 mov x0, x25 5580 mov w1, w2 5581 bl FlashEraseBlocks 5582 mov w3, 1 5583 mov x0, x25 5584 mov w2, w3 5585 mov w1, w3 5586 bl FlashProgPages 5587 ldr w0, [x25] 5588 cmn w0, #1 5589 bne .L748 5590 mov w0, w27 5591 bl FtlBbmMapBadBlock 5592 b .L749 5593.L750: 5594 sub w19, w19, #1 5595 and w19, w19, 65535 5596 b .L749 5597.L754: 5598 mov w0, w19 5599 add w19, w19, 1 5600 bl FtlBbmMapBadBlock 5601 and w19, w19, 65535 5602 b .L753 5603.L757: 5604 ldrh w0, [x21] 5605 cmp w0, w22 5606 bne .L758 5607 strh w19, [x21] 5608 b .L756 5609.L758: 5610 strh w19, [x21, 4] 5611.L759: 5612 adrp x0, .LANCHOR79 5613 add x19, x20, :lo12:.LANCHOR37 5614 ldrh w1, [x20, #:lo12:.LANCHOR37] 5615 mov w2, 2 5616 ldr x0, [x0, #:lo12:.LANCHOR79] 5617 str wzr, [x19, 8] 5618 lsl w1, w1, 10 5619 strh wzr, [x19, 2] 5620 str w1, [x0, 4] 5621 ldrh w1, [x19, 4] 5622 lsl w1, w1, 10 5623 str w1, [x0, 36] 5624 mov w1, 1 5625 bl FlashEraseBlocks 5626 ldrh w0, [x20, #:lo12:.LANCHOR37] 5627 bl FtlBbmMapBadBlock 5628 ldrh w0, [x19, 4] 5629 bl FtlBbmMapBadBlock 5630 bl FtlBbmTblFlush 5631 strh wzr, [x19, 2] 5632 ldr w0, [x19, 8] 5633 ldrh w1, [x19, 4] 5634 add w0, w0, 1 5635 str w0, [x19, 8] 5636 ldrh w0, [x20, #:lo12:.LANCHOR37] 5637 strh w0, [x19, 4] 5638 strh w1, [x20, #:lo12:.LANCHOR37] 5639 bl FtlBbmTblFlush 5640 mov w0, 0 5641 ldp x19, x20, [sp, 16] 5642 ldp x21, x22, [sp, 32] 5643 ldp x23, x24, [sp, 48] 5644 ldp x25, x26, [sp, 64] 5645 ldp x27, x28, [sp, 80] 5646 ldp x29, x30, [sp], 128 5647 ret 5648 .size FtlMakeBbt, .-FtlMakeBbt 5649 .section .text.ftl_memcmp,"ax",@progbits 5650 .align 2 5651 .global ftl_memcmp 5652 .type ftl_memcmp, %function 5653ftl_memcmp: 5654 uxtw x2, w2 5655 b memcmp 5656 .size ftl_memcmp, .-ftl_memcmp 5657 .section .text.js_hash,"ax",@progbits 5658 .align 2 5659 .global js_hash 5660 .type js_hash, %function 5661js_hash: 5662 mov x4, x0 5663 mov w0, 42982 5664 mov x3, 0 5665 movk w0, 0x47c6, lsl 16 5666.L767: 5667 cmp w1, w3 5668 bhi .L768 5669 ret 5670.L768: 5671 lsr w2, w0, 2 5672 ldrb w5, [x4, x3] 5673 add w2, w2, w0, lsl 5 5674 add x3, x3, 1 5675 add w2, w2, w5 5676 eor w0, w0, w2 5677 b .L767 5678 .size js_hash, .-js_hash 5679 .section .text.Ftl_write_map_blk_to_last_page,"ax",@progbits 5680 .align 2 5681 .global Ftl_write_map_blk_to_last_page 5682 .type Ftl_write_map_blk_to_last_page, %function 5683Ftl_write_map_blk_to_last_page: 5684 stp x29, x30, [sp, -64]! 5685 mov w1, 65535 5686 add x29, sp, 0 5687 stp x19, x20, [sp, 16] 5688 mov x19, x0 5689 ldr x20, [x0, 16] 5690 stp x21, x22, [sp, 32] 5691 ldrh w0, [x0] 5692 stp x23, x24, [sp, 48] 5693 cmp w0, w1 5694 bne .L770 5695 ldrh w0, [x19, 8] 5696 cbz w0, .L771 5697 adrp x1, .LANCHOR148 5698 adrp x0, .LC1 5699 mov w2, 641 5700 add x1, x1, :lo12:.LANCHOR148 5701 add x0, x0, :lo12:.LC1 5702 bl printf 5703.L771: 5704 ldrh w0, [x19, 8] 5705 add w0, w0, 1 5706 strh w0, [x19, 8] 5707 bl FtlFreeSysBlkQueueOut 5708 strh w0, [x20] 5709 ldr w0, [x19, 48] 5710 strh wzr, [x19, 2] 5711 add w0, w0, 1 5712 strh wzr, [x19] 5713 str w0, [x19, 48] 5714.L772: 5715 mov w0, 0 5716 ldp x19, x20, [sp, 16] 5717 ldp x21, x22, [sp, 32] 5718 ldp x23, x24, [sp, 48] 5719 ldp x29, x30, [sp], 64 5720 ret 5721.L770: 5722 ubfiz x0, x0, 1, 16 5723 adrp x2, .LANCHOR114 5724 adrp x24, .LANCHOR106 5725 ldr x23, [x19, 40] 5726 ldr x21, [x2, #:lo12:.LANCHOR114] 5727 ldrh w22, [x20, x0] 5728 adrp x20, .LANCHOR138 5729 ldrh w0, [x19, 2] 5730 add x1, x20, :lo12:.LANCHOR138 5731 orr w0, w0, w22, lsl 10 5732 str w0, [x1, 4] 5733 ldr x0, [x24, #:lo12:.LANCHOR106] 5734 str x21, [x1, 16] 5735 str x0, [x1, 8] 5736 ldr w1, [x19, 48] 5737 str w1, [x21, 4] 5738 mov w1, -1291 5739 strh w1, [x21, 8] 5740 ldrh w1, [x19, 4] 5741 strh w1, [x21] 5742 adrp x1, .LANCHOR20 5743 strh w22, [x21, 2] 5744 ldrh w2, [x1, #:lo12:.LANCHOR20] 5745 mov w1, 255 5746 lsl w2, w2, 3 5747 bl ftl_memset 5748 ldrh w4, [x19, 6] 5749 mov x0, 0 5750 ldr x3, [x24, #:lo12:.LANCHOR106] 5751 mov w1, 0 5752.L773: 5753 cmp w4, w0, uxth 5754 bhi .L775 5755 add x20, x20, :lo12:.LANCHOR138 5756 adrp x0, .LANCHOR23 5757 ldrh w1, [x0, #:lo12:.LANCHOR23] 5758 ldr x0, [x20, 8] 5759 bl js_hash 5760 str w0, [x21, 12] 5761 mov w2, 1 5762 mov w3, 0 5763 mov w1, w2 5764 mov x0, x20 5765 bl FlashProgPages 5766 ldrh w0, [x19, 2] 5767 add w0, w0, 1 5768 strh w0, [x19, 2] 5769 mov x0, x19 5770 bl ftl_map_blk_gc 5771 b .L772 5772.L775: 5773 ldr w2, [x23, x0, lsl 2] 5774 cmp w22, w2, lsr 10 5775 bne .L774 5776 add w1, w1, 1 5777 and w1, w1, 65535 5778 ubfiz x2, x1, 1, 16 5779 str w0, [x3, x2, lsl 2] 5780 add x2, x2, 1 5781 ldr w5, [x23, x0, lsl 2] 5782 str w5, [x3, x2, lsl 2] 5783.L774: 5784 add x0, x0, 1 5785 b .L773 5786 .size Ftl_write_map_blk_to_last_page, .-Ftl_write_map_blk_to_last_page 5787 .section .text.FtlMapWritePage,"ax",@progbits 5788 .align 2 5789 .global FtlMapWritePage 5790 .type FtlMapWritePage, %function 5791FtlMapWritePage: 5792 stp x29, x30, [sp, -112]! 5793 add x29, sp, 0 5794 stp x23, x24, [sp, 48] 5795 adrp x23, .LANCHOR88 5796 stp x25, x26, [sp, 64] 5797 adrp x24, .LANCHOR149 5798 stp x27, x28, [sp, 80] 5799 adrp x26, .LANCHOR20 5800 stp x19, x20, [sp, 16] 5801 mov w25, w1 5802 mov x19, x0 5803 mov x27, x2 5804 add x23, x23, :lo12:.LANCHOR88 5805 add x24, x24, :lo12:.LANCHOR149 5806 add x28, x26, :lo12:.LANCHOR20 5807 stp x21, x22, [sp, 32] 5808 mov w22, 0 5809.L781: 5810 ldr w0, [x23] 5811 ldrh w1, [x19, 2] 5812 add w0, w0, 1 5813 str w0, [x23] 5814 ldrh w0, [x26, #:lo12:.LANCHOR20] 5815 sub w0, w0, #1 5816 cmp w1, w0 5817 bge .L782 5818 ldrh w1, [x19] 5819 mov w0, 65535 5820 cmp w1, w0 5821 bne .L783 5822.L782: 5823 mov x0, x19 5824 bl Ftl_write_map_blk_to_last_page 5825.L783: 5826 ldrh w1, [x19] 5827 ldr x0, [x19, 16] 5828 ldrh w0, [x0, x1, lsl 1] 5829 cbnz w0, .L784 5830 adrp x0, .LC1 5831 mov w2, 700 5832 mov x1, x24 5833 add x0, x0, :lo12:.LC1 5834 bl printf 5835.L784: 5836 ldrh w1, [x19] 5837 ldrh w0, [x19, 10] 5838 cmp w1, w0 5839 bcc .L785 5840 adrp x0, .LC1 5841 mov w2, 701 5842 mov x1, x24 5843 add x0, x0, :lo12:.LC1 5844 bl printf 5845.L785: 5846 ldrh w1, [x19] 5847 adrp x21, .LANCHOR138 5848 ldr x0, [x19, 16] 5849 add x20, x21, :lo12:.LANCHOR138 5850 mov w2, 16 5851 ldrh w3, [x0, x1, lsl 1] 5852 mov w1, 0 5853 ldrh w0, [x19, 2] 5854 str w3, [x29, 108] 5855 str x27, [x20, 8] 5856 orr w0, w0, w3, lsl 10 5857 str w0, [x20, 4] 5858 adrp x0, .LANCHOR114 5859 ldr x0, [x0, #:lo12:.LANCHOR114] 5860 str x0, [x20, 16] 5861 bl ftl_memset 5862 ldr x6, [x20, 16] 5863 ldr w0, [x19, 48] 5864 ldr w3, [x29, 108] 5865 str w0, [x6, 4] 5866 ldrh w0, [x19, 4] 5867 strh w0, [x6] 5868 adrp x0, .LANCHOR23 5869 strh w3, [x6, 2] 5870 strh w25, [x6, 8] 5871 ldrh w1, [x0, #:lo12:.LANCHOR23] 5872 ldr x0, [x20, 8] 5873 bl js_hash 5874 str w0, [x6, 12] 5875 mov w3, 1 5876 mov x0, x20 5877 mov w1, w3 5878 mov w2, w3 5879 bl FlashProgPages 5880 ldrh w0, [x19, 2] 5881 ldr w1, [x21, #:lo12:.LANCHOR138] 5882 add w0, w0, 1 5883 and w0, w0, 65535 5884 strh w0, [x19, 2] 5885 cmn w1, #1 5886 bne .L786 5887 ldr w1, [x20, 4] 5888 adrp x0, .LC22 5889 add x0, x0, :lo12:.LC22 5890 add w22, w22, 1 5891 and w22, w22, 65535 5892 bl printf 5893 ldrh w0, [x19, 2] 5894 cmp w0, 2 5895 bhi .L787 5896 ldrh w0, [x28] 5897 sub w0, w0, #1 5898 strh w0, [x19, 2] 5899.L787: 5900 cmp w22, 3 5901 bls .L788 5902 add x21, x21, :lo12:.LANCHOR138 5903 adrp x0, .LC23 5904 mov w2, w22 5905 add x0, x0, :lo12:.LC23 5906 ldr w1, [x21, 4] 5907 bl printf 5908.L789: 5909 b .L789 5910.L788: 5911 ldr w0, [x19, 52] 5912 cbz w0, .L781 5913.L803: 5914 b .L803 5915.L786: 5916 cmp w0, 1 5917 beq .L792 5918 cmp w1, 256 5919 beq .L792 5920 ldr w0, [x19, 56] 5921 cbz w0, .L793 5922.L792: 5923 str wzr, [x19, 56] 5924 b .L781 5925.L793: 5926 ldr x0, [x19, 40] 5927 ldr w1, [x20, 4] 5928 ldp x21, x22, [sp, 32] 5929 ldp x23, x24, [sp, 48] 5930 ldp x27, x28, [sp, 80] 5931 str w1, [x0, w25, uxtw 2] 5932 ldp x19, x20, [sp, 16] 5933 mov w0, 0 5934 ldp x25, x26, [sp, 64] 5935 ldp x29, x30, [sp], 112 5936 ret 5937 .size FtlMapWritePage, .-FtlMapWritePage 5938 .section .text.load_l2p_region,"ax",@progbits 5939 .align 2 5940 .global load_l2p_region 5941 .type load_l2p_region, %function 5942load_l2p_region: 5943 stp x29, x30, [sp, -96]! 5944 add x29, sp, 0 5945 stp x23, x24, [sp, 48] 5946 adrp x24, .LANCHOR32 5947 stp x19, x20, [sp, 16] 5948 and w20, w0, 65535 5949 stp x21, x22, [sp, 32] 5950 and x19, x1, 65535 5951 ldrh w0, [x24, #:lo12:.LANCHOR32] 5952 stp x25, x26, [sp, 64] 5953 str x27, [sp, 80] 5954 cmp w0, w20 5955 bcs .L806 5956 adrp x1, .LANCHOR150 5957 adrp x0, .LC1 5958 mov w2, 485 5959 add x1, x1, :lo12:.LANCHOR150 5960 add x0, x0, :lo12:.LC1 5961 bl printf 5962.L806: 5963 adrp x27, .LANCHOR124 5964 ubfiz x0, x20, 2, 16 5965 adrp x22, .LANCHOR55 5966 ldr x1, [x27, #:lo12:.LANCHOR124] 5967 ldr w23, [x1, x0] 5968 cbnz w23, .L807 5969 ldr x0, [x22, #:lo12:.LANCHOR55] 5970 lsl x19, x19, 4 5971 adrp x1, .LANCHOR23 5972 add x0, x0, x19 5973 ldrh w2, [x1, #:lo12:.LANCHOR23] 5974 mov w1, 255 5975 ldr x0, [x0, 8] 5976 bl ftl_memset 5977 ldr x0, [x22, #:lo12:.LANCHOR55] 5978 add x1, x0, x19 5979 strh w20, [x0, x19] 5980 str wzr, [x1, 4] 5981.L808: 5982 mov w0, 0 5983 ldr x27, [sp, 80] 5984 ldp x19, x20, [sp, 16] 5985 ldp x21, x22, [sp, 32] 5986 ldp x23, x24, [sp, 48] 5987 ldp x25, x26, [sp, 64] 5988 ldp x29, x30, [sp], 96 5989 ret 5990.L807: 5991 ldr x0, [x22, #:lo12:.LANCHOR55] 5992 lsl x19, x19, 4 5993 adrp x26, .LANCHOR138 5994 add x21, x26, :lo12:.LANCHOR138 5995 add x0, x0, x19 5996 mov w2, 1 5997 mov w1, w2 5998 str w23, [x21, 4] 5999 ldr x0, [x0, 8] 6000 str x0, [x21, 8] 6001 adrp x0, .LANCHOR114 6002 ldr x0, [x0, #:lo12:.LANCHOR114] 6003 str x0, [x21, 16] 6004 mov x0, x21 6005 bl FlashReadPages 6006 ldr x25, [x21, 16] 6007 ldrh w0, [x25, 8] 6008 cmp w0, w20 6009 beq .L809 6010 mov w2, w23 6011 mov w1, w20 6012 adrp x0, .LC24 6013 add x0, x0, :lo12:.LC24 6014 bl printf 6015 ldr x1, [x21, 16] 6016 mov w3, 4 6017 adrp x0, .LC13 6018 mov w2, w3 6019 add x0, x0, :lo12:.LC13 6020 bl rknand_print_hex 6021 ldrh w3, [x24, #:lo12:.LANCHOR32] 6022 adrp x0, .LC25 6023 ldr x1, [x27, #:lo12:.LANCHOR124] 6024 mov w2, 4 6025 add x0, x0, :lo12:.LC25 6026 bl rknand_print_hex 6027.L810: 6028 ldrh w0, [x25, 8] 6029 cmp w0, w20 6030 beq .L811 6031 adrp x1, .LANCHOR150 6032 adrp x0, .LC1 6033 mov w2, 508 6034 add x1, x1, :lo12:.LANCHOR150 6035 add x0, x0, :lo12:.LC1 6036 bl printf 6037.L811: 6038 ldr x0, [x22, #:lo12:.LANCHOR55] 6039 add x1, x0, x19 6040 str wzr, [x1, 4] 6041 strh w20, [x0, x19] 6042 b .L808 6043.L809: 6044 ldr w0, [x26, #:lo12:.LANCHOR138] 6045 cmp w0, 256 6046 bne .L810 6047 mov w2, w23 6048 mov w1, w20 6049 adrp x0, .LC26 6050 add x0, x0, :lo12:.LC26 6051 bl printf 6052 ldr x0, [x22, #:lo12:.LANCHOR55] 6053 mov w1, w20 6054 add x0, x0, x19 6055 ldr x2, [x0, 8] 6056 adrp x0, .LANCHOR129 6057 add x0, x0, :lo12:.LANCHOR129 6058 bl FtlMapWritePage 6059 b .L810 6060 .size load_l2p_region, .-load_l2p_region 6061 .section .text.ftl_map_blk_gc,"ax",@progbits 6062 .align 2 6063 .global ftl_map_blk_gc 6064 .type ftl_map_blk_gc, %function 6065ftl_map_blk_gc: 6066 stp x29, x30, [sp, -96]! 6067 add x29, sp, 0 6068 stp x19, x20, [sp, 16] 6069 mov x19, x0 6070 stp x23, x24, [sp, 48] 6071 adrp x24, .LANCHOR20 6072 stp x25, x26, [sp, 64] 6073 stp x21, x22, [sp, 32] 6074 stp x27, x28, [sp, 80] 6075 ldr x20, [x0, 16] 6076 ldr x25, [x0, 40] 6077 bl ftl_free_no_use_map_blk 6078 ldrh w1, [x19, 10] 6079 ldrh w2, [x19, 8] 6080 sub w1, w1, #5 6081 cmp w2, w1 6082 blt .L814 6083 ubfiz x0, x0, 1, 16 6084 ldrh w22, [x20, x0] 6085 cbz w22, .L814 6086 ldr w1, [x19, 52] 6087 cbnz w1, .L814 6088 mov w1, 1 6089 str w1, [x19, 52] 6090 strh wzr, [x20, x0] 6091 ldrh w0, [x19, 8] 6092 ldrh w1, [x19, 2] 6093 sub w0, w0, #1 6094 strh w0, [x19, 8] 6095 ldrh w0, [x24, #:lo12:.LANCHOR20] 6096 cmp w1, w0 6097 bcc .L815 6098 mov x0, x19 6099 bl ftl_map_blk_alloc_new_blk 6100.L815: 6101 adrp x26, .LANCHOR138 6102 adrp x23, .LANCHOR151 6103 add x27, x26, :lo12:.LANCHOR138 6104 add x23, x23, :lo12:.LANCHOR151 6105 mov w20, 0 6106.L816: 6107 ldrh w0, [x19, 6] 6108 cmp w0, w20 6109 bhi .L823 6110 mov w1, 1 6111 mov w0, w22 6112 bl FtlFreeSysBlkQueueIn 6113 str wzr, [x19, 52] 6114.L814: 6115 ldrh w1, [x19, 2] 6116 ldrh w0, [x24, #:lo12:.LANCHOR20] 6117 cmp w1, w0 6118 bcc .L824 6119 mov x0, x19 6120 bl ftl_map_blk_alloc_new_blk 6121.L824: 6122 mov w0, 0 6123 ldp x19, x20, [sp, 16] 6124 ldp x21, x22, [sp, 32] 6125 ldp x23, x24, [sp, 48] 6126 ldp x25, x26, [sp, 64] 6127 ldp x27, x28, [sp, 80] 6128 ldp x29, x30, [sp], 96 6129 ret 6130.L823: 6131 ubfiz x0, x20, 2, 16 6132 add x28, x25, x0 6133 ldr w1, [x25, x0] 6134 cmp w22, w1, lsr 10 6135 bne .L817 6136 adrp x2, .LANCHOR107 6137 add x0, x26, :lo12:.LANCHOR138 6138 ldr x2, [x2, #:lo12:.LANCHOR107] 6139 str x2, [x0, 8] 6140 adrp x2, .LANCHOR114 6141 str w1, [x0, 4] 6142 ldr x21, [x2, #:lo12:.LANCHOR114] 6143 mov w2, 1 6144 str x21, [x0, 16] 6145 mov w1, w2 6146 bl FlashReadPages 6147 ldrh w0, [x21, 8] 6148 cmp w0, w20 6149 beq .L818 6150 adrp x0, .LC1 6151 mov w2, 611 6152 mov x1, x23 6153 add x0, x0, :lo12:.LC1 6154 bl printf 6155.L818: 6156 ldr w0, [x27] 6157 cmn w0, #1 6158 bne .L819 6159.L821: 6160 str wzr, [x28] 6161.L820: 6162 b .L820 6163.L819: 6164 ldrh w0, [x21, 8] 6165 cmp w0, w20 6166 bne .L821 6167 ldrh w1, [x21] 6168 ldrh w0, [x19, 4] 6169 cmp w1, w0 6170 bne .L821 6171 ldr x2, [x27, 8] 6172 mov w1, w20 6173 mov x0, x19 6174 bl FtlMapWritePage 6175.L817: 6176 add w20, w20, 1 6177 and w20, w20, 65535 6178 b .L816 6179 .size ftl_map_blk_gc, .-ftl_map_blk_gc 6180 .section .text.flush_l2p_region,"ax",@progbits 6181 .align 2 6182 .global flush_l2p_region 6183 .type flush_l2p_region, %function 6184flush_l2p_region: 6185 stp x29, x30, [sp, -32]! 6186 add x29, sp, 0 6187 stp x19, x20, [sp, 16] 6188 adrp x20, .LANCHOR55 6189 ubfiz x19, x0, 4, 16 6190 ldr x0, [x20, #:lo12:.LANCHOR55] 6191 add x1, x0, x19 6192 ldr x2, [x1, 8] 6193 ldrh w1, [x0, x19] 6194 adrp x0, .LANCHOR129 6195 add x0, x0, :lo12:.LANCHOR129 6196 bl FtlMapWritePage 6197 ldr x0, [x20, #:lo12:.LANCHOR55] 6198 add x0, x0, x19 6199 ldp x19, x20, [sp, 16] 6200 ldr w1, [x0, 4] 6201 and w1, w1, 2147483647 6202 str w1, [x0, 4] 6203 mov w0, 0 6204 ldp x29, x30, [sp], 32 6205 ret 6206 .size flush_l2p_region, .-flush_l2p_region 6207 .section .text.l2p_flush,"ax",@progbits 6208 .align 2 6209 .global l2p_flush 6210 .type l2p_flush, %function 6211l2p_flush: 6212 stp x29, x30, [sp, -48]! 6213 add x29, sp, 0 6214 stp x19, x20, [sp, 16] 6215 adrp x20, .LANCHOR33 6216 add x20, x20, :lo12:.LANCHOR33 6217 str x21, [sp, 32] 6218 mov w19, 0 6219 adrp x21, .LANCHOR55 6220.L833: 6221 ldrh w0, [x20] 6222 cmp w0, w19 6223 bhi .L835 6224 mov w0, 0 6225 ldr x21, [sp, 32] 6226 ldp x19, x20, [sp, 16] 6227 ldp x29, x30, [sp], 48 6228 ret 6229.L835: 6230 ldr x1, [x21, #:lo12:.LANCHOR55] 6231 ubfiz x0, x19, 4, 16 6232 add x0, x1, x0 6233 ldr w0, [x0, 4] 6234 tbz w0, #31, .L834 6235 mov w0, w19 6236 bl flush_l2p_region 6237.L834: 6238 add w19, w19, 1 6239 and w19, w19, 65535 6240 b .L833 6241 .size l2p_flush, .-l2p_flush 6242 .section .text.log2phys,"ax",@progbits 6243 .align 2 6244 .global log2phys 6245 .type log2phys, %function 6246log2phys: 6247 stp x29, x30, [sp, -80]! 6248 add x29, sp, 0 6249 stp x25, x26, [sp, 64] 6250 mov w25, w0 6251 adrp x0, .LANCHOR22 6252 stp x23, x24, [sp, 48] 6253 stp x19, x20, [sp, 16] 6254 mov x20, x1 6255 ldrh w24, [x0, #:lo12:.LANCHOR22] 6256 adrp x0, .LANCHOR152 6257 stp x21, x22, [sp, 32] 6258 mov x19, x0 6259 ldr w1, [x0, #:lo12:.LANCHOR152] 6260 mov w21, w2 6261 cmp w25, w1 6262 bcc .L838 6263 adrp x1, .LANCHOR153 6264 adrp x0, .LC1 6265 mov w2, 813 6266 add x1, x1, :lo12:.LANCHOR153 6267 add x0, x0, :lo12:.LC1 6268 bl printf 6269.L838: 6270 ldr w0, [x19, #:lo12:.LANCHOR152] 6271 cmp w25, w0 6272 bcs .L839 6273 adrp x23, .LANCHOR55 6274 add w24, w24, 7 6275 adrp x0, .LANCHOR33 6276 ldr x2, [x23, #:lo12:.LANCHOR55] 6277 lsr w22, w25, w24 6278 and w22, w22, 65535 6279 ldrh w1, [x0, #:lo12:.LANCHOR33] 6280 mov x0, 0 6281.L840: 6282 and x19, x0, 65535 6283 cmp w19, w1 6284 bcc .L845 6285 bl select_l2p_ram_region 6286 and x19, x0, 65535 6287 ldr x2, [x23, #:lo12:.LANCHOR55] 6288 ubfiz x1, x19, 4, 16 6289 mov w26, w0 6290 add x3, x2, x1 6291 ldrh w2, [x2, x1] 6292 mov w1, 65535 6293 cmp w2, w1 6294 beq .L846 6295 ldr w1, [x3, 4] 6296 tbz w1, #31, .L846 6297 bl flush_l2p_region 6298.L846: 6299 mov w1, w26 6300 mov w0, w22 6301 bl load_l2p_region 6302 b .L842 6303.L839: 6304 mov w0, -1 6305 cbnz w21, .L837 6306 str w0, [x20] 6307.L837: 6308 ldp x19, x20, [sp, 16] 6309 ldp x21, x22, [sp, 32] 6310 ldp x23, x24, [sp, 48] 6311 ldp x25, x26, [sp, 64] 6312 ldp x29, x30, [sp], 80 6313 ret 6314.L845: 6315 add x0, x0, 1 6316 add x3, x2, x0, lsl 4 6317 ldrh w3, [x3, -16] 6318 cmp w3, w22 6319 bne .L840 6320.L842: 6321 mov x0, 1 6322 ldr x1, [x23, #:lo12:.LANCHOR55] 6323 lsl x0, x0, x24 6324 sub w0, w0, #1 6325 and w0, w0, w25 6326 and x0, x0, 65535 6327 add x1, x1, x19, lsl 4 6328 cbnz w21, .L843 6329 ldr x1, [x1, 8] 6330 ldr w0, [x1, x0, lsl 2] 6331 str w0, [x20] 6332.L844: 6333 ldr x0, [x23, #:lo12:.LANCHOR55] 6334 add x19, x0, x19, lsl 4 6335 ldr w0, [x19, 4] 6336 cmn w0, #1 6337 beq .L848 6338 add w0, w0, 1 6339 str w0, [x19, 4] 6340.L848: 6341 mov w0, 0 6342 b .L837 6343.L843: 6344 ldr x2, [x1, 8] 6345 ldr w3, [x20] 6346 str w3, [x2, x0, lsl 2] 6347 ldr w0, [x1, 4] 6348 orr w0, w0, -2147483648 6349 str w0, [x1, 4] 6350 adrp x0, .LANCHOR56 6351 strh w22, [x0, #:lo12:.LANCHOR56] 6352 b .L844 6353 .size log2phys, .-log2phys 6354 .section .text.FtlReUsePrevPpa,"ax",@progbits 6355 .align 2 6356 .global FtlReUsePrevPpa 6357 .type FtlReUsePrevPpa, %function 6358FtlReUsePrevPpa: 6359 stp x29, x30, [sp, -80]! 6360 add x29, sp, 0 6361 stp x21, x22, [sp, 32] 6362 adrp x22, .LANCHOR42 6363 stp x19, x20, [sp, 16] 6364 mov w21, w0 6365 str w1, [x29, 76] 6366 lsr w0, w1, 10 6367 str x23, [sp, 48] 6368 bl P2V_block_in_plane 6369 ldr x2, [x22, #:lo12:.LANCHOR42] 6370 and w3, w0, 65535 6371 ubfiz x20, x3, 1, 16 6372 ldrh w1, [x2, x20] 6373 cbnz w1, .L852 6374 adrp x0, .LANCHOR46 6375 ldr x19, [x0, #:lo12:.LANCHOR46] 6376 cbz x19, .L853 6377 adrp x2, .LANCHOR40 6378 mov x5, -6148914691236517206 6379 movk x5, 0xaaab, lsl 0 6380 adrp x23, .LANCHOR48 6381 ldr x2, [x2, #:lo12:.LANCHOR40] 6382 mov w6, 65535 6383 ldrh w4, [x23, #:lo12:.LANCHOR48] 6384 sub x19, x19, x2 6385 asr x19, x19, 1 6386 mul x19, x19, x5 6387 mov w5, 6 6388 and w19, w19, 65535 6389.L854: 6390 cmp w1, w4 6391 beq .L853 6392 cmp w19, w3 6393 bne .L855 6394 mov w1, w19 6395 add x0, x0, :lo12:.LANCHOR46 6396 bl List_remove_node 6397 ldrh w0, [x23, #:lo12:.LANCHOR48] 6398 cbnz w0, .L856 6399 adrp x1, .LANCHOR154 6400 adrp x0, .LC1 6401 mov w2, 1733 6402 add x1, x1, :lo12:.LANCHOR154 6403 add x0, x0, :lo12:.LC1 6404 bl printf 6405.L856: 6406 ldrh w0, [x23, #:lo12:.LANCHOR48] 6407 sub w0, w0, #1 6408 strh w0, [x23, #:lo12:.LANCHOR48] 6409 mov w0, w19 6410 bl INSERT_DATA_LIST 6411 ldr x1, [x22, #:lo12:.LANCHOR42] 6412 ldrh w0, [x1, x20] 6413 add w0, w0, 1 6414 strh w0, [x1, x20] 6415.L853: 6416 add x1, x29, 76 6417 mov w2, 1 6418 mov w0, w21 6419 bl log2phys 6420 ldp x19, x20, [sp, 16] 6421 ldp x21, x22, [sp, 32] 6422 ldr x23, [sp, 48] 6423 ldp x29, x30, [sp], 80 6424 ret 6425.L855: 6426 umull x19, w19, w5 6427 ldrh w19, [x2, x19] 6428 cmp w19, w6 6429 beq .L853 6430 add w1, w1, 1 6431 and w1, w1, 65535 6432 b .L854 6433.L852: 6434 add w1, w1, 1 6435 strh w1, [x2, x20] 6436 b .L853 6437 .size FtlReUsePrevPpa, .-FtlReUsePrevPpa 6438 .section .text.FtlRecoverySuperblock,"ax",@progbits 6439 .align 2 6440 .global FtlRecoverySuperblock 6441 .type FtlRecoverySuperblock, %function 6442FtlRecoverySuperblock: 6443 stp x29, x30, [sp, -192]! 6444 mov w1, 65535 6445 add x29, sp, 0 6446 stp x19, x20, [sp, 16] 6447 mov x19, x0 6448 stp x21, x22, [sp, 32] 6449 ldrh w0, [x0] 6450 stp x23, x24, [sp, 48] 6451 stp x25, x26, [sp, 64] 6452 cmp w0, w1 6453 stp x27, x28, [sp, 80] 6454 beq .L989 6455 ldrb w0, [x19, 6] 6456 str w0, [x29, 164] 6457 adrp x0, .LANCHOR19 6458 ldrh w26, [x19, 2] 6459 str x0, [x29, 128] 6460 ldrh w2, [x0, #:lo12:.LANCHOR19] 6461 cmp w2, w26 6462 bne .L865 6463 strh wzr, [x19, 4] 6464.L996: 6465 strb wzr, [x19, 6] 6466.L989: 6467 ldp x19, x20, [sp, 16] 6468 mov w0, 0 6469 ldp x21, x22, [sp, 32] 6470 ldp x23, x24, [sp, 48] 6471 ldp x25, x26, [sp, 64] 6472 ldp x27, x28, [sp, 80] 6473 ldp x29, x30, [sp], 192 6474 ret 6475.L865: 6476 ldrh w0, [x19, 16] 6477 mov w20, 0 6478.L866: 6479 cmp w0, w1 6480 beq .L867 6481 mov w1, 1 6482 bl FtlGetLastWrittenPage 6483 mov w23, w0 6484 cmn w0, #1 6485 beq .L868 6486 adrp x1, .LANCHOR64 6487 adrp x2, .LANCHOR3 6488 adrp x20, .LANCHOR103 6489 add x4, x19, 16 6490 ldr x5, [x1, #:lo12:.LANCHOR64] 6491 adrp x1, .LANCHOR23 6492 ldr x0, [x20, #:lo12:.LANCHOR103] 6493 mov w22, 0 6494 ldrh w6, [x1, #:lo12:.LANCHOR23] 6495 adrp x1, .LANCHOR65 6496 mov w10, 65535 6497 str x2, [x29, 152] 6498 ldr x7, [x1, #:lo12:.LANCHOR65] 6499 adrp x1, .LANCHOR24 6500 ldrh w8, [x1, #:lo12:.LANCHOR24] 6501 add x1, x19, 16 6502 str x1, [x29, 168] 6503 ldrh w1, [x2, #:lo12:.LANCHOR3] 6504 add x1, x1, 8 6505 add x1, x19, x1, lsl 1 6506.L869: 6507 cmp x4, x1 6508 bne .L873 6509 mov w2, 0 6510 mov w1, w22 6511 bl FlashReadPages 6512 adrp x0, .LANCHOR83 6513 ldr x4, [x20, #:lo12:.LANCHOR103] 6514 and w10, w23, 65535 6515 add x7, x0, :lo12:.LANCHOR83 6516 ldr w21, [x0, #:lo12:.LANCHOR83] 6517 mov x11, x4 6518 mov w6, 65535 6519 mov w3, 0 6520 sub w21, w21, #1 6521 str x0, [x29, 144] 6522.L874: 6523 cmp w22, w3 6524 bne .L879 6525 add w22, w23, 1 6526 ldr w0, [x4, 4] 6527 and w22, w22, 65535 6528.L991: 6529 lsr w0, w0, 10 6530 bl P2V_plane 6531 and w27, w0, 65535 6532 ldr x0, [x29, 128] 6533 ldrh w0, [x0, #:lo12:.LANCHOR19] 6534 cmp w0, w22 6535 bne .L881 6536 strh w22, [x19, 2] 6537 strb wzr, [x19, 6] 6538 strh wzr, [x19, 4] 6539.L881: 6540 ldr w0, [x29, 164] 6541 cmp w22, w26 6542 cset w1, eq 6543 cmp w27, w0 6544 cset w0, eq 6545 tst w1, w0 6546 beq .L882 6547.L997: 6548 mov w2, w27 6549 mov w1, w22 6550 mov x0, x19 6551 bl ftl_sb_update_avl_pages 6552 b .L989 6553.L867: 6554 add w20, w20, 1 6555 and w20, w20, 65535 6556 add x0, x19, x20, sxtw 1 6557 ldrh w0, [x0, 16] 6558 b .L866 6559.L868: 6560 cbz w26, .L870 6561 adrp x1, .LANCHOR155 6562 adrp x0, .LC1 6563 mov w2, 1800 6564 add x1, x1, :lo12:.LANCHOR155 6565 add x0, x0, :lo12:.LC1 6566 bl printf 6567.L870: 6568 ldr w0, [x29, 164] 6569 cmp w0, 0 6570 ccmp w20, w0, 4, ne 6571 beq .L871 6572 adrp x1, .LANCHOR155 6573 adrp x0, .LC1 6574 mov w2, 1801 6575 add x1, x1, :lo12:.LANCHOR155 6576 add x0, x0, :lo12:.LC1 6577 bl printf 6578.L871: 6579 strh wzr, [x19, 2] 6580 b .L996 6581.L873: 6582 ldrh w3, [x4] 6583 cmp w3, w10 6584 beq .L872 6585 ubfiz x2, x22, 5, 16 6586 orr w3, w23, w3, lsl 10 6587 add x2, x0, x2 6588 str w3, [x2, 4] 6589 mul w3, w22, w6 6590 asr w3, w3, 2 6591 add x3, x5, x3, sxtw 2 6592 str x3, [x2, 8] 6593 mul w3, w22, w8 6594 add w22, w22, 1 6595 and w22, w22, 65535 6596 asr w3, w3, 2 6597 add x3, x7, x3, sxtw 2 6598 str x3, [x2, 16] 6599.L872: 6600 add x4, x4, 2 6601 b .L869 6602.L879: 6603 ldr w0, [x11] 6604 cbnz w0, .L875 6605 ldr x8, [x11, 16] 6606 ldr w5, [x8, 4] 6607 cmn w5, #1 6608 beq .L876 6609 ldr w1, [x7] 6610 mov w0, w5 6611 bl ftl_cmp_data_ver 6612 cbz w0, .L876 6613 add w5, w5, 1 6614 str w5, [x7] 6615.L876: 6616 ldr w0, [x8] 6617 cmn w0, #1 6618 bne .L878 6619 ubfiz x3, x3, 5, 16 6620 and w22, w23, 65535 6621 add x3, x4, x3 6622 ldr w0, [x3, 4] 6623 b .L991 6624.L875: 6625 mov w6, w10 6626.L878: 6627 add w3, w3, 1 6628 add x11, x11, 32 6629 and w3, w3, 65535 6630 b .L874 6631.L882: 6632 mov w0, 65535 6633 cmp w6, w0 6634 bne .L883 6635 ldrb w0, [x19, 8] 6636 cbnz w0, .L884 6637.L883: 6638 adrp x25, .LANCHOR134 6639 and w28, w23, 65535 6640 ldr w0, [x25, #:lo12:.LANCHOR134] 6641 cmn w0, #1 6642 bne .L885 6643 str w21, [x25, #:lo12:.LANCHOR134] 6644.L885: 6645 add w0, w26, 7 6646 cmp w0, w23, uxth 6647 bge .L935 6648 sub w24, w28, #7 6649 and w24, w24, 65535 6650.L886: 6651 ldr x0, [x29, 152] 6652 mov w3, 65535 6653 mov w5, 1 6654 add x4, x0, :lo12:.LANCHOR3 6655.L887: 6656 cmp w24, w28 6657 bhi .L897 6658 ldrh w1, [x4] 6659 mov w23, 0 6660 ldr x0, [x20, #:lo12:.LANCHOR103] 6661 add x1, x1, 8 6662 ldr x2, [x29, 168] 6663 add x1, x19, x1, lsl 1 6664 b .L898 6665.L935: 6666 mov w24, w26 6667 b .L886 6668.L889: 6669 ldrh w6, [x2] 6670 cmp w6, w3 6671 beq .L888 6672 ubfiz x7, x23, 5, 16 6673 add w23, w23, 1 6674 add x7, x0, x7 6675 and w23, w23, 65535 6676 orr w6, w24, w6, lsl 10 6677 str w6, [x7, 4] 6678.L888: 6679 add x2, x2, 2 6680.L898: 6681 cmp x1, x2 6682 bne .L889 6683 mov w1, w23 6684 mov w2, 0 6685 str w5, [x29, 112] 6686 ubfiz x23, x23, 5, 16 6687 str w3, [x29, 120] 6688 add x23, x23, 16 6689 str x4, [x29, 136] 6690 bl FlashReadPages 6691 ldr x2, [x20, #:lo12:.LANCHOR103] 6692 ldr w1, [x25, #:lo12:.LANCHOR134] 6693 ldr w5, [x29, 112] 6694 add x0, x2, 16 6695 ldr w3, [x29, 120] 6696 add x23, x2, x23 6697 ldr x4, [x29, 136] 6698 mov w2, 0 6699.L890: 6700 cmp x23, x0 6701 bne .L895 6702 cbz w2, .L896 6703 str w1, [x25, #:lo12:.LANCHOR134] 6704.L896: 6705 add w24, w24, 1 6706 and w24, w24, 65535 6707 b .L887 6708.L895: 6709 ldr w6, [x0, -16] 6710 cbz w6, .L891 6711 cbz w2, .L884 6712 str w1, [x25, #:lo12:.LANCHOR134] 6713.L884: 6714 adrp x0, .LANCHOR156 6715 mov w23, w26 6716 mov w1, 1 6717 adrp x28, .LANCHOR134 6718 strh w1, [x0, #:lo12:.LANCHOR156] 6719 add x0, x28, :lo12:.LANCHOR134 6720 str x0, [x29, 104] 6721.L899: 6722 ldr x1, [x29, 152] 6723 mov w24, 0 6724 ldr x0, [x20, #:lo12:.LANCHOR103] 6725 mov w5, 65535 6726 ldr x2, [x29, 168] 6727 ldrh w1, [x1, #:lo12:.LANCHOR3] 6728 add x1, x1, 8 6729 add x1, x19, x1, lsl 1 6730.L900: 6731 cmp x1, x2 6732 bne .L902 6733 mov w2, 0 6734 mov w1, w24 6735 bl FlashReadPages 6736 mov x25, 0 6737 ubfiz x0, x24, 5, 16 6738 str x0, [x29, 112] 6739 adrp x0, .LANCHOR157 6740 add x0, x0, :lo12:.LANCHOR157 6741 str x0, [x29, 120] 6742.L903: 6743 ldr x0, [x29, 112] 6744 cmp x25, x0 6745 bne .L929 6746 ldr x0, [x29, 128] 6747 add w23, w23, 1 6748 and w23, w23, 65535 6749 ldrh w0, [x0, #:lo12:.LANCHOR19] 6750 cmp w0, w23 6751 bne .L899 6752 ldr x0, [x29, 152] 6753 mov w2, 65535 6754 strh w23, [x19, 2] 6755 strh wzr, [x19, 4] 6756 ldrh w1, [x0, #:lo12:.LANCHOR3] 6757 mov w0, 0 6758.L930: 6759 cmp w0, w1 6760 beq .L989 6761 ldr x4, [x29, 168] 6762 ldrh w3, [x4], 2 6763 str x4, [x29, 168] 6764 cmp w3, w2 6765 beq .L931 6766 strb w0, [x19, 6] 6767 b .L989 6768.L891: 6769 ldr x6, [x0] 6770 ldrh w7, [x6] 6771 cmp w7, w3 6772 beq .L894 6773 ldr w6, [x6, 4] 6774 cmn w6, #1 6775 csel w1, w1, w6, eq 6776 csel w2, w2, w5, eq 6777.L894: 6778 add x0, x0, 32 6779 b .L890 6780.L897: 6781 mov w0, -1 6782 str w0, [x25, #:lo12:.LANCHOR134] 6783 b .L884 6784.L902: 6785 ldrh w3, [x2] 6786 cmp w3, w5 6787 beq .L901 6788 ubfiz x4, x24, 5, 16 6789 add w24, w24, 1 6790 add x4, x0, x4 6791 and w24, w24, 65535 6792 orr w3, w23, w3, lsl 10 6793 str w3, [x4, 4] 6794.L901: 6795 add x2, x2, 2 6796 b .L900 6797.L929: 6798 ldr x4, [x20, #:lo12:.LANCHOR103] 6799 add x4, x4, x25 6800 ldr w5, [x4, 4] 6801 str w5, [x29, 188] 6802 lsr w0, w5, 10 6803 bl P2V_plane 6804 and w0, w0, 65535 6805 cmp w23, w26 6806 bcc .L904 6807 ldr w1, [x29, 164] 6808 ccmp w1, w0, 0, eq 6809 bhi .L904 6810 cmp w23, w22 6811 ccmp w27, w0, 0, eq 6812 beq .L905 6813 ldr w0, [x4] 6814 cmn w0, #1 6815 beq .L906 6816 ldr x3, [x4, 16] 6817 mov w0, 61589 6818 ldrh w1, [x3] 6819 cmp w1, w0 6820 beq .L907 6821 ldrh w0, [x19] 6822.L993: 6823 bl decrement_vpc_count 6824 b .L904 6825.L907: 6826 ldr w21, [x3, 4] 6827 cmn w21, #1 6828 beq .L908 6829 ldr x0, [x29, 144] 6830 ldr w1, [x0, #:lo12:.LANCHOR83] 6831 mov w0, w21 6832 bl ftl_cmp_data_ver 6833 cbz w0, .L908 6834 ldr x1, [x29, 144] 6835 add w0, w21, 1 6836 str w0, [x1, #:lo12:.LANCHOR83] 6837.L908: 6838 ldp w24, w0, [x3, 8] 6839 add x1, x29, 184 6840 str w0, [x29, 180] 6841 mov w2, 0 6842 mov w0, w24 6843 bl log2phys 6844 ldr w1, [x28, #:lo12:.LANCHOR134] 6845 ldr w3, [x29, 180] 6846 cmn w1, #1 6847 beq .L909 6848 mov w0, w21 6849 bl ftl_cmp_data_ver 6850 cbz w0, .L909 6851 cmn w3, #1 6852 beq .L910 6853 ldr x0, [x20, #:lo12:.LANCHOR103] 6854 mov w2, 0 6855 mov w1, 1 6856 add x0, x0, x25 6857 ldr x4, [x0, 16] 6858 str w3, [x0, 4] 6859 str x4, [x29, 136] 6860 bl FlashReadPages 6861 ldr x0, [x20, #:lo12:.LANCHOR103] 6862 ldr x4, [x29, 136] 6863 add x3, x0, x25 6864 ldr w0, [x0, x25] 6865 cmn w0, #1 6866 bne .L911 6867.L912: 6868 mov w0, -1 6869 str w0, [x29, 180] 6870.L919: 6871 ldr w3, [x29, 180] 6872 cmn w3, #1 6873 beq .L904 6874.L934: 6875 lsr w0, w3, 10 6876 bl P2V_block_in_plane 6877 and w24, w0, 65535 6878 adrp x0, .LANCHOR5 6879 mov w3, w24 6880 ldrh w0, [x0, #:lo12:.LANCHOR5] 6881 cmp w0, w24 6882 bhi .L925 6883 mov w2, 2057 6884 adrp x1, .LANCHOR155 6885 adrp x0, .LC1 6886 add x1, x1, :lo12:.LANCHOR155 6887 add x0, x0, :lo12:.LC1 6888 str w24, [x29, 136] 6889 bl printf 6890 ldr w3, [x29, 136] 6891.L925: 6892 adrp x1, .LANCHOR42 6893 ubfiz x0, x24, 1, 16 6894 ldr x1, [x1, #:lo12:.LANCHOR42] 6895 ldrh w0, [x1, x0] 6896 cbz w0, .L926 6897 mov w0, w3 6898 b .L993 6899.L910: 6900 ldp w1, w0, [x29, 184] 6901 cmp w1, w0 6902 bne .L904 6903 mov w2, 1 6904 add x1, x29, 180 6905 mov w0, w24 6906 bl log2phys 6907.L904: 6908 add x25, x25, 32 6909 b .L903 6910.L911: 6911 ldr w0, [x4, 8] 6912 cmp w24, w0 6913 bne .L912 6914 ldr w0, [x4, 4] 6915 str w0, [x29, 136] 6916 str x4, [x29, 96] 6917 uxtw x1, w0 6918 ldr w0, [x28, #:lo12:.LANCHOR134] 6919 bl ftl_cmp_data_ver 6920 cbz w0, .L912 6921 ldp w0, w1, [x29, 184] 6922 ldr x4, [x29, 96] 6923 cmp w0, w1 6924 ldr w1, [x29, 180] 6925 bne .L914 6926.L992: 6927 mov w0, w24 6928 bl FtlReUsePrevPpa 6929 b .L912 6930.L914: 6931 cmp w0, w1 6932 beq .L912 6933 cmn w0, #1 6934 beq .L915 6935 ldr x4, [x3, 16] 6936 mov w2, 0 6937 str w0, [x3, 4] 6938 mov w1, 1 6939 str x4, [x29, 96] 6940 mov x0, x3 6941 bl FlashReadPages 6942 ldr x4, [x29, 96] 6943.L916: 6944 ldr x0, [x20, #:lo12:.LANCHOR103] 6945 ldr w0, [x0, x25] 6946 cmn w0, #1 6947 beq .L917 6948 ldr x0, [x29, 104] 6949 ldr w3, [x4, 4] 6950 mov w1, w3 6951 ldr w0, [x0] 6952 bl ftl_cmp_data_ver 6953 cbz w0, .L917 6954 ldr w0, [x29, 136] 6955 mov w1, w3 6956 bl ftl_cmp_data_ver 6957 cbz w0, .L912 6958.L917: 6959 ldr w1, [x29, 180] 6960 b .L992 6961.L915: 6962 str w0, [x3] 6963 b .L916 6964.L909: 6965 ldp w1, w0, [x29, 184] 6966 cmp w1, w0 6967 beq .L919 6968 cmn w3, #1 6969 beq .L921 6970 adrp x0, .LANCHOR8 6971 ldr w0, [x0, #:lo12:.LANCHOR8] 6972 cmp w0, w3, lsr 10 6973 bhi .L921 6974 adrp x0, .LC27 6975 mov w1, w3 6976 add x0, x0, :lo12:.LC27 6977.L995: 6978 bl printf 6979 b .L904 6980.L921: 6981 mov w2, 1 6982 add x1, x29, 188 6983 mov w0, w24 6984 bl log2phys 6985 ldr w3, [x29, 184] 6986 cmn w3, #1 6987 beq .L919 6988 ldr w0, [x29, 180] 6989 cmp w3, w0 6990 beq .L934 6991 lsr w0, w3, 10 6992 bl P2V_block_in_plane 6993 adrp x1, .LANCHOR51 6994 and w0, w0, 65535 6995 ldrh w1, [x1, #:lo12:.LANCHOR51] 6996 cmp w1, w0 6997 beq .L924 6998 adrp x1, .LANCHOR52 6999 ldrh w1, [x1, #:lo12:.LANCHOR52] 7000 cmp w1, w0 7001 beq .L924 7002 adrp x1, .LANCHOR53 7003 ldrh w1, [x1, #:lo12:.LANCHOR53] 7004 cmp w1, w0 7005 bne .L919 7006.L924: 7007 ldr x0, [x20, #:lo12:.LANCHOR103] 7008 mov w2, 0 7009 mov w1, 1 7010 ldr x4, [x0, 16] 7011 str w3, [x0, 4] 7012 str x4, [x29, 136] 7013 bl FlashReadPages 7014 ldr x0, [x20, #:lo12:.LANCHOR103] 7015 ldr w0, [x0] 7016 cmn w0, #1 7017 beq .L919 7018 ldr x4, [x29, 136] 7019 mov w0, w21 7020 ldr w1, [x4, 4] 7021 bl ftl_cmp_data_ver 7022 cbnz w0, .L919 7023 mov w2, 1 7024 add x1, x29, 184 7025 mov w0, w24 7026 bl log2phys 7027 b .L919 7028.L926: 7029 adrp x0, .LC28 7030 mov w1, w24 7031 add x0, x0, :lo12:.LC28 7032 b .L995 7033.L906: 7034 ldr x0, [x29, 120] 7035 ldr w0, [x0] 7036 cmp w0, 31 7037 bhi .L927 7038 adrp x1, .LANCHOR158 7039 add x1, x1, :lo12:.LANCHOR158 7040 str w5, [x1, w0, uxtw 2] 7041 add w0, w0, 1 7042 ldr x1, [x29, 120] 7043 str w0, [x1] 7044.L927: 7045 ldrh w0, [x19] 7046 bl decrement_vpc_count 7047 ldr w0, [x28, #:lo12:.LANCHOR134] 7048 cmn w0, #1 7049 bne .L928 7050.L994: 7051 str w21, [x28, #:lo12:.LANCHOR134] 7052 b .L904 7053.L928: 7054 cmp w21, w0 7055 bcs .L904 7056 b .L994 7057.L931: 7058 add w0, w0, 1 7059 and w0, w0, 65535 7060 b .L930 7061.L905: 7062 strb w27, [x19, 6] 7063 strh w22, [x19, 2] 7064 b .L997 7065 .size FtlRecoverySuperblock, .-FtlRecoverySuperblock 7066 .section .text.ftl_check_vpc,"ax",@progbits 7067 .align 2 7068 .global ftl_check_vpc 7069 .type ftl_check_vpc, %function 7070ftl_check_vpc: 7071 stp x29, x30, [sp, -112]! 7072 adrp x0, .LC29 7073 add x0, x0, :lo12:.LC29 7074 add x29, sp, 0 7075 stp x23, x24, [sp, 48] 7076 adrp x23, .LANCHOR152 7077 add x23, x23, :lo12:.LANCHOR152 7078 stp x21, x22, [sp, 32] 7079 mov w22, 0 7080 stp x19, x20, [sp, 16] 7081 stp x25, x26, [sp, 64] 7082 adrp x21, .LANCHOR159 7083 stp x27, x28, [sp, 80] 7084 add x1, x21, :lo12:.LANCHOR159 7085 adrp x20, check_vpc_table 7086 bl printf 7087 add x19, x20, :lo12:check_vpc_table 7088 mov w2, 8192 7089 mov w1, 0 7090 mov x0, x19 7091 bl ftl_memset 7092.L999: 7093 ldr w0, [x23] 7094 cmp w22, w0 7095 bcc .L1001 7096 adrp x22, .LANCHOR5 7097 adrp x24, .LC30 7098 add x22, x22, :lo12:.LANCHOR5 7099 add x26, x20, :lo12:check_vpc_table 7100 add x24, x24, :lo12:.LC30 7101 mov w23, 0 7102 mov w19, 0 7103 adrp x25, .LANCHOR42 7104.L1002: 7105 ldrh w0, [x22] 7106 cmp w0, w19 7107 bhi .L1004 7108 adrp x0, .LANCHOR46 7109 ldr x19, [x0, #:lo12:.LANCHOR46] 7110 cbz x19, .L1005 7111 adrp x0, .LANCHOR48 7112 adrp x25, .LC31 7113 add x20, x20, :lo12:check_vpc_table 7114 add x25, x25, :lo12:.LC31 7115 ldrh w26, [x0, #:lo12:.LANCHOR48] 7116 adrp x0, .LANCHOR40 7117 mov x24, x0 7118 mov w22, 0 7119 ldr x1, [x0, #:lo12:.LANCHOR40] 7120 adrp x27, .LANCHOR42 7121 mov w28, 6 7122 sub x19, x19, x1 7123 mov x1, -6148914691236517206 7124 asr x19, x19, 1 7125 movk x1, 0xaaab, lsl 0 7126 mul x19, x19, x1 7127 and w19, w19, 65535 7128.L1006: 7129 cmp w22, w26 7130 bne .L1008 7131.L1005: 7132 cbz w23, .L998 7133 adrp x0, .LC1 7134 mov w2, 2383 7135 add x1, x21, :lo12:.LANCHOR159 7136 add x0, x0, :lo12:.LC1 7137 bl printf 7138.L998: 7139 ldp x19, x20, [sp, 16] 7140 ldp x21, x22, [sp, 32] 7141 ldp x23, x24, [sp, 48] 7142 ldp x25, x26, [sp, 64] 7143 ldp x27, x28, [sp, 80] 7144 ldp x29, x30, [sp], 112 7145 ret 7146.L1001: 7147 mov w2, 0 7148 add x1, x29, 108 7149 mov w0, w22 7150 bl log2phys 7151 ldr w0, [x29, 108] 7152 cmn w0, #1 7153 beq .L1000 7154 lsr w0, w0, 10 7155 bl P2V_block_in_plane 7156 and x0, x0, 65535 7157 ldrh w1, [x19, x0, lsl 1] 7158 add w1, w1, 1 7159 strh w1, [x19, x0, lsl 1] 7160.L1000: 7161 add w22, w22, 1 7162 b .L999 7163.L1004: 7164 ldr x0, [x25, #:lo12:.LANCHOR42] 7165 ubfiz x28, x19, 1, 16 7166 sxtw x27, w19 7167 ldrh w2, [x0, x28] 7168 ldrh w3, [x26, x27, lsl 1] 7169 cmp w2, w3 7170 beq .L1003 7171 mov w1, w19 7172 mov x0, x24 7173 bl printf 7174 ldr x0, [x25, #:lo12:.LANCHOR42] 7175 mov w1, 65535 7176 ldrh w0, [x0, x28] 7177 cmp w0, w1 7178 beq .L1003 7179 ldrh w1, [x26, x27, lsl 1] 7180 cmp w1, w0 7181 csinc w23, w23, wzr, ls 7182.L1003: 7183 add w19, w19, 1 7184 and w19, w19, 65535 7185 b .L1002 7186.L1008: 7187 ldr x1, [x27, #:lo12:.LANCHOR42] 7188 ubfiz x0, x19, 1, 16 7189 ldrh w2, [x1, x0] 7190 cbz w2, .L1007 7191 ldrh w3, [x20, w19, sxtw 1] 7192 mov w23, 1 7193 mov w1, w19 7194 mov x0, x25 7195 bl printf 7196.L1007: 7197 ldr x0, [x24, #:lo12:.LANCHOR40] 7198 umull x19, w19, w28 7199 ldrh w19, [x0, x19] 7200 mov w0, 65535 7201 cmp w19, w0 7202 beq .L1005 7203 add w22, w22, 1 7204 and w22, w22, 65535 7205 b .L1006 7206 .size ftl_check_vpc, .-ftl_check_vpc 7207 .section .text.ftl_scan_all_data,"ax",@progbits 7208 .align 2 7209 .global ftl_scan_all_data 7210 .type ftl_scan_all_data, %function 7211ftl_scan_all_data: 7212 sub sp, sp, #96 7213 adrp x0, .LC32 7214 mov w1, 0 7215 add x0, x0, :lo12:.LC32 7216 stp x29, x30, [sp, 16] 7217 add x29, sp, 16 7218 stp x19, x20, [sp, 32] 7219 adrp x20, .LANCHOR138 7220 stp x21, x22, [sp, 48] 7221 mov w19, 0 7222 adrp x21, .LANCHOR152 7223 add x22, x20, :lo12:.LANCHOR138 7224 add x21, x21, :lo12:.LANCHOR152 7225 str x23, [sp, 64] 7226 bl printf 7227.L1024: 7228 ldr w0, [x21] 7229 cmp w19, w0 7230 bcc .L1030 7231 ldp x19, x20, [sp, 32] 7232 ldp x21, x22, [sp, 48] 7233 ldp x29, x30, [sp, 16] 7234 ldr x23, [sp, 64] 7235 add sp, sp, 96 7236 ret 7237.L1030: 7238 mov w2, 0 7239 add x1, x29, 76 7240 mov w0, w19 7241 bl log2phys 7242 tst x19, 2047 7243 bne .L1025 7244 ldr w2, [x29, 76] 7245 adrp x0, .LC33 7246 mov w1, w19 7247 add x0, x0, :lo12:.LC33 7248 bl printf 7249.L1025: 7250 ldr w1, [x29, 76] 7251 cmn w1, #1 7252 beq .L1027 7253 add x0, x20, :lo12:.LANCHOR138 7254 str wzr, [x20, #:lo12:.LANCHOR138] 7255 mov w2, 0 7256 str w1, [x0, 4] 7257 adrp x1, .LANCHOR106 7258 str w19, [x0, 24] 7259 ldr x1, [x1, #:lo12:.LANCHOR106] 7260 str x1, [x0, 8] 7261 adrp x1, .LANCHOR114 7262 ldr x23, [x1, #:lo12:.LANCHOR114] 7263 mov w1, 1 7264 str x23, [x0, 16] 7265 bl FlashReadPages 7266 ldr w0, [x20, #:lo12:.LANCHOR138] 7267 cmp w0, 256 7268 ccmn w0, #1, 4, ne 7269 beq .L1028 7270 ldr w0, [x23, 8] 7271 cmp w19, w0 7272 beq .L1027 7273.L1028: 7274 ldp x1, x0, [x22, 8] 7275 ldr w2, [x1, 4] 7276 str w2, [sp] 7277 ldr w2, [x22, 4] 7278 ldp w3, w4, [x0] 7279 ldp w5, w6, [x0, 8] 7280 adrp x0, .LC34 7281 ldr w7, [x1] 7282 add x0, x0, :lo12:.LC34 7283 mov w1, w19 7284 bl printf 7285.L1027: 7286 add w19, w19, 1 7287 b .L1024 7288 .size ftl_scan_all_data, .-ftl_scan_all_data 7289 .section .text.FtlGcScanTempBlk,"ax",@progbits 7290 .align 2 7291 .global FtlGcScanTempBlk 7292 .type FtlGcScanTempBlk, %function 7293FtlGcScanTempBlk: 7294 stp x29, x30, [sp, -144]! 7295 add x29, sp, 0 7296 stp x25, x26, [sp, 64] 7297 adrp x25, .LANCHOR160 7298 stp x19, x20, [sp, 16] 7299 mov x19, x0 7300 ldrh w20, [x25, #:lo12:.LANCHOR160] 7301 mov w0, 65535 7302 stp x21, x22, [sp, 32] 7303 stp x23, x24, [sp, 48] 7304 cmp w20, w0 7305 str x27, [sp, 80] 7306 beq .L1053 7307 cbnz w20, .L1033 7308.L1034: 7309 bl FtlGcPageVarInit 7310 b .L1035 7311.L1053: 7312 mov w20, 0 7313.L1033: 7314 adrp x0, .LANCHOR19 7315 ldrh w0, [x0, #:lo12:.LANCHOR19] 7316 cmp w0, w1 7317 beq .L1034 7318.L1035: 7319 adrp x26, .LANCHOR152 7320 add x26, x26, :lo12:.LANCHOR152 7321.L1050: 7322 ldrh w1, [x19] 7323 mov w0, 65535 7324 strb wzr, [x19, 8] 7325 cmp w1, w0 7326 beq .L1036 7327.L1052: 7328 adrp x1, .LANCHOR64 7329 adrp x24, .LANCHOR103 7330 add x4, x19, 16 7331 mov w21, 0 7332 ldr x5, [x1, #:lo12:.LANCHOR64] 7333 adrp x1, .LANCHOR23 7334 ldr x0, [x24, #:lo12:.LANCHOR103] 7335 mov w10, 65535 7336 ldrh w6, [x1, #:lo12:.LANCHOR23] 7337 adrp x1, .LANCHOR65 7338 ldr x7, [x1, #:lo12:.LANCHOR65] 7339 adrp x1, .LANCHOR24 7340 ldrh w8, [x1, #:lo12:.LANCHOR24] 7341 adrp x1, .LANCHOR3 7342 ldrh w1, [x1, #:lo12:.LANCHOR3] 7343 add x1, x1, 8 7344 add x1, x19, x1, lsl 1 7345.L1037: 7346 cmp x1, x4 7347 bne .L1039 7348 mov w1, w21 7349 ubfiz x21, x21, 5, 16 7350 mov x22, 0 7351 mov w2, 0 7352 bl FlashReadPages 7353.L1040: 7354 cmp x21, x22 7355 bne .L1051 7356 adrp x0, .LANCHOR19 7357 add w20, w20, 1 7358 and w20, w20, 65535 7359 ldrh w0, [x0, #:lo12:.LANCHOR19] 7360 cmp w0, w20 7361 bhi .L1052 7362.L1036: 7363 strh w20, [x19, 2] 7364 mov w0, -1 7365 strb wzr, [x19, 6] 7366 mov w1, w20 7367 strh w0, [x25, #:lo12:.LANCHOR160] 7368 mov w2, 0 7369 mov x0, x19 7370 bl ftl_sb_update_avl_pages 7371 mov w0, -1 7372 ldr x27, [sp, 80] 7373 ldp x19, x20, [sp, 16] 7374 ldp x21, x22, [sp, 32] 7375 ldp x23, x24, [sp, 48] 7376 ldp x25, x26, [sp, 64] 7377 ldp x29, x30, [sp], 144 7378 ret 7379.L1039: 7380 ldrh w3, [x4] 7381 cmp w3, w10 7382 beq .L1038 7383 ubfiz x2, x21, 5, 16 7384 orr w3, w20, w3, lsl 10 7385 add x2, x0, x2 7386 str w3, [x2, 4] 7387 mul w3, w21, w6 7388 asr w3, w3, 2 7389 add x3, x5, x3, sxtw 2 7390 str x3, [x2, 8] 7391 mul w3, w21, w8 7392 add w21, w21, 1 7393 and w21, w21, 65535 7394 asr w3, w3, 2 7395 add x3, x7, x3, sxtw 2 7396 str x3, [x2, 16] 7397.L1038: 7398 add x4, x4, 2 7399 b .L1037 7400.L1051: 7401 ldr x0, [x24, #:lo12:.LANCHOR103] 7402 add x1, x0, x22 7403 ldr w0, [x0, x22] 7404 ldr w27, [x1, 4] 7405 ldr x23, [x1, 16] 7406 cbnz w0, .L1041 7407 ldrh w1, [x23] 7408 mov w0, 65535 7409 cmp w1, w0 7410 beq .L1063 7411 ldr w0, [x23, 8] 7412 ldr w1, [x26] 7413 cmp w0, w1 7414 bls .L1043 7415.L1063: 7416 adrp x0, .LANCHOR42 7417 ldrh w1, [x19] 7418 mov w20, 0 7419 ldr x0, [x0, #:lo12:.LANCHOR42] 7420 strh wzr, [x0, x1, lsl 1] 7421 ldrh w0, [x19] 7422 bl INSERT_FREE_LIST 7423 mov w0, -1 7424 adrp x1, .LANCHOR145 7425 strh w0, [x19] 7426 strh w0, [x1, #:lo12:.LANCHOR145] 7427 bl FtlGcPageVarInit 7428 b .L1050 7429.L1043: 7430 add x1, x29, 108 7431 mov w2, 0 7432 bl log2phys 7433 ldr w0, [x23, 12] 7434 ldr w1, [x29, 108] 7435 cmp w0, w1 7436 beq .L1045 7437.L1047: 7438 ldr w2, [x23, 8] 7439.L1064: 7440 ldr w0, [x23, 12] 7441 mov w1, w27 7442 add x22, x22, 32 7443 bl FtlGcUpdatePage 7444 b .L1040 7445.L1045: 7446 cmn w0, #1 7447 beq .L1047 7448 str w0, [x29, 116] 7449 adrp x0, .LANCHOR110 7450 mov w2, 0 7451 mov w1, 1 7452 ldr x0, [x0, #:lo12:.LANCHOR110] 7453 str x0, [x29, 120] 7454 adrp x0, .LANCHOR115 7455 ldr x0, [x0, #:lo12:.LANCHOR115] 7456 str x0, [x29, 128] 7457 add x0, x29, 112 7458 bl FlashReadPages 7459 adrp x0, .LANCHOR12 7460 ldr x2, [x24, #:lo12:.LANCHOR103] 7461 ldr x3, [x29, 120] 7462 ldrh w1, [x0, #:lo12:.LANCHOR12] 7463 add x2, x2, x22 7464 mov x0, 0 7465 ubfiz x1, x1, 9, 16 7466.L1048: 7467 cmp x0, x1 7468 beq .L1047 7469 ldr x4, [x2, 8] 7470 ldr w5, [x4, x0] 7471 add x0, x0, 4 7472 add x4, x3, x0 7473 ldr w4, [x4, -4] 7474 cmp w5, w4 7475 beq .L1048 7476 ldrh w1, [x19] 7477 adrp x0, .LC35 7478 ldr w2, [x29, 116] 7479 add x0, x0, :lo12:.LC35 7480 bl printf 7481 b .L1063 7482.L1041: 7483 mov w2, -1 7484 b .L1064 7485 .size FtlGcScanTempBlk, .-FtlGcScanTempBlk 7486 .section .text.FtlVendorPartWrite,"ax",@progbits 7487 .align 2 7488 .global FtlVendorPartWrite 7489 .type FtlVendorPartWrite, %function 7490FtlVendorPartWrite: 7491 stp x29, x30, [sp, -208]! 7492 add x29, sp, 0 7493 stp x19, x20, [sp, 16] 7494 mov w20, w1 7495 stp x27, x28, [sp, 80] 7496 add w1, w0, w1 7497 mov w28, w0 7498 adrp x0, .LANCHOR16 7499 stp x21, x22, [sp, 32] 7500 ldrh w0, [x0, #:lo12:.LANCHOR16] 7501 stp x23, x24, [sp, 48] 7502 stp x25, x26, [sp, 64] 7503 cmp w1, w0 7504 bhi .L1073 7505 adrp x0, .LANCHOR22 7506 adrp x25, .LANCHOR12 7507 adrp x26, .LANCHOR23 7508 mov x24, x2 7509 ldrh w21, [x0, #:lo12:.LANCHOR22] 7510 add x25, x25, :lo12:.LANCHOR12 7511 add x26, x26, :lo12:.LANCHOR23 7512 mov w23, 0 7513 lsr w21, w28, w21 7514.L1067: 7515 cbnz w20, .L1072 7516.L1065: 7517 mov w0, w23 7518 ldp x19, x20, [sp, 16] 7519 ldp x21, x22, [sp, 32] 7520 ldp x23, x24, [sp, 48] 7521 ldp x25, x26, [sp, 64] 7522 ldp x27, x28, [sp, 80] 7523 ldp x29, x30, [sp], 208 7524 ret 7525.L1072: 7526 ldrh w1, [x25] 7527 adrp x0, .LANCHOR123 7528 adrp x27, .LANCHOR108 7529 ldr x0, [x0, #:lo12:.LANCHOR123] 7530 udiv w22, w28, w1 7531 ldr w2, [x0, w21, uxtw 2] 7532 and w0, w20, 65535 7533 msub w22, w22, w1, w28 7534 sub w19, w1, w22 7535 and w19, w19, 65535 7536 cmp w20, w19 7537 csel w19, w0, w19, cc 7538 cbz w2, .L1069 7539 cmp w19, w1 7540 beq .L1069 7541 ldr x0, [x27, #:lo12:.LANCHOR108] 7542 str x0, [x29, 120] 7543 add x0, x29, 144 7544 str w2, [x29, 116] 7545 mov w2, 1 7546 str x0, [x29, 128] 7547 mov w1, w2 7548 add x0, x29, 112 7549 bl FlashReadPages 7550.L1070: 7551 lsl w4, w19, 9 7552 ldr x0, [x27, #:lo12:.LANCHOR108] 7553 lsl w22, w22, 7 7554 mov w2, w4 7555 mov x1, x24 7556 str w4, [x29, 108] 7557 add x0, x0, x22, sxtw 2 7558 bl ftl_memcpy 7559 ldr x2, [x27, #:lo12:.LANCHOR108] 7560 mov w1, w21 7561 adrp x0, .LANCHOR161 7562 add x0, x0, :lo12:.LANCHOR161 7563 sub w20, w20, w19 7564 add w28, w28, w19 7565 add w21, w21, 1 7566 bl FtlMapWritePage 7567 cmn w0, #1 7568 ldr w4, [x29, 108] 7569 csinv w23, w23, wzr, ne 7570 add x24, x24, x4, sxtw 7571 b .L1067 7572.L1069: 7573 ldrh w2, [x26] 7574 mov w1, 0 7575 ldr x0, [x27, #:lo12:.LANCHOR108] 7576 bl ftl_memset 7577 b .L1070 7578.L1073: 7579 mov w23, -1 7580 b .L1065 7581 .size FtlVendorPartWrite, .-FtlVendorPartWrite 7582 .section .text.Ftl_save_ext_data,"ax",@progbits 7583 .align 2 7584 .global Ftl_save_ext_data 7585 .type Ftl_save_ext_data, %function 7586Ftl_save_ext_data: 7587 adrp x0, .LANCHOR135 7588 add x2, x0, :lo12:.LANCHOR135 7589 ldr w1, [x0, #:lo12:.LANCHOR135] 7590 mov w0, 19539 7591 movk w0, 0x4654, lsl 16 7592 cmp w1, w0 7593 bne .L1078 7594 mov w0, 72 7595 mov w1, 1 7596 movk w0, 0x5000, lsl 16 7597 str w0, [x2, 4] 7598 adrp x0, .LANCHOR162 7599 ldr w0, [x0, #:lo12:.LANCHOR162] 7600 str w0, [x2, 88] 7601 adrp x0, .LANCHOR163 7602 ldr w0, [x0, #:lo12:.LANCHOR163] 7603 str w0, [x2, 92] 7604 adrp x0, .LANCHOR84 7605 ldr w0, [x0, #:lo12:.LANCHOR84] 7606 str w0, [x2, 8] 7607 adrp x0, .LANCHOR85 7608 ldr w0, [x0, #:lo12:.LANCHOR85] 7609 str w0, [x2, 12] 7610 adrp x0, .LANCHOR89 7611 ldr w0, [x0, #:lo12:.LANCHOR89] 7612 str w0, [x2, 16] 7613 adrp x0, .LANCHOR88 7614 ldr w0, [x0, #:lo12:.LANCHOR88] 7615 str w0, [x2, 20] 7616 adrp x0, .LANCHOR91 7617 ldr w0, [x0, #:lo12:.LANCHOR91] 7618 str w0, [x2, 28] 7619 adrp x0, .LANCHOR80 7620 ldr w0, [x0, #:lo12:.LANCHOR80] 7621 str w0, [x2, 32] 7622 adrp x0, .LANCHOR86 7623 ldr w0, [x0, #:lo12:.LANCHOR86] 7624 str w0, [x2, 36] 7625 adrp x0, .LANCHOR87 7626 ldr w0, [x0, #:lo12:.LANCHOR87] 7627 str w0, [x2, 40] 7628 adrp x0, .LANCHOR92 7629 ldr w0, [x0, #:lo12:.LANCHOR92] 7630 str w0, [x2, 44] 7631 adrp x0, .LANCHOR93 7632 ldr w0, [x0, #:lo12:.LANCHOR93] 7633 str w0, [x2, 48] 7634 mov w0, 0 7635 b FtlVendorPartWrite 7636.L1078: 7637 ret 7638 .size Ftl_save_ext_data, .-Ftl_save_ext_data 7639 .section .text.FtlEctTblFlush,"ax",@progbits 7640 .align 2 7641 .global FtlEctTblFlush 7642 .type FtlEctTblFlush, %function 7643FtlEctTblFlush: 7644 adrp x2, .LANCHOR164 7645 ldrh w1, [x2, #:lo12:.LANCHOR164] 7646 cmp w1, 31 7647 bhi .L1084 7648 add w1, w1, 1 7649 strh w1, [x2, #:lo12:.LANCHOR164] 7650 mov w1, 1 7651.L1081: 7652 adrp x2, .LANCHOR118 7653 cbnz w0, .L1082 7654 ldr x0, [x2, #:lo12:.LANCHOR118] 7655 ldr w3, [x0, 20] 7656 ldr w0, [x0, 16] 7657 add w1, w1, w3 7658 cmp w0, w1 7659 bcc .L1086 7660.L1082: 7661 stp x29, x30, [sp, -16]! 7662 add x29, sp, 0 7663 ldr x2, [x2, #:lo12:.LANCHOR118] 7664 ldr w0, [x2, 16] 7665 str w0, [x2, 20] 7666 mov w0, 17221 7667 str wzr, [x2, 4] 7668 movk w0, 0x4254, lsl 16 7669 str w0, [x2] 7670 adrp x0, .LANCHOR116 7671 ldrh w1, [x0, #:lo12:.LANCHOR116] 7672 lsl w0, w1, 9 7673 str w0, [x2, 12] 7674 ldr w0, [x2, 8] 7675 add w0, w0, 1 7676 str w0, [x2, 8] 7677 mov w0, 64 7678 bl FtlVendorPartWrite 7679 bl Ftl_save_ext_data 7680 mov w0, 0 7681 ldp x29, x30, [sp], 16 7682 ret 7683.L1084: 7684 mov w1, 32 7685 b .L1081 7686.L1086: 7687 mov w0, 0 7688 ret 7689 .size FtlEctTblFlush, .-FtlEctTblFlush 7690 .section .text.sftl_vendor_write,"ax",@progbits 7691 .align 2 7692 .global sftl_vendor_write 7693 .type sftl_vendor_write, %function 7694sftl_vendor_write: 7695 add w0, w0, 256 7696 b FtlVendorPartWrite 7697 .size sftl_vendor_write, .-sftl_vendor_write 7698 .section .text.FtlVendorPartRead,"ax",@progbits 7699 .align 2 7700 .global FtlVendorPartRead 7701 .type FtlVendorPartRead, %function 7702FtlVendorPartRead: 7703 stp x29, x30, [sp, -208]! 7704 add x29, sp, 0 7705 stp x21, x22, [sp, 32] 7706 mov w22, w0 7707 mov w21, w1 7708 add w1, w0, w1 7709 adrp x0, .LANCHOR16 7710 stp x19, x20, [sp, 16] 7711 stp x23, x24, [sp, 48] 7712 ldrh w0, [x0, #:lo12:.LANCHOR16] 7713 stp x25, x26, [sp, 64] 7714 stp x27, x28, [sp, 80] 7715 cmp w1, w0 7716 bhi .L1098 7717 adrp x0, .LANCHOR22 7718 mov x25, x2 7719 mov w24, 0 7720 adrp x27, .LANCHOR123 7721 ldrh w20, [x0, #:lo12:.LANCHOR22] 7722 adrp x0, .LANCHOR12 7723 add x0, x0, :lo12:.LANCHOR12 7724 str x0, [x29, 104] 7725 lsr w20, w22, w20 7726.L1091: 7727 cbnz w21, .L1097 7728.L1089: 7729 mov w0, w24 7730 ldp x19, x20, [sp, 16] 7731 ldp x21, x22, [sp, 32] 7732 ldp x23, x24, [sp, 48] 7733 ldp x25, x26, [sp, 64] 7734 ldp x27, x28, [sp, 80] 7735 ldp x29, x30, [sp], 208 7736 ret 7737.L1097: 7738 ldr x0, [x27, #:lo12:.LANCHOR123] 7739 ldr w4, [x0, w20, uxtw 2] 7740 ldr x0, [x29, 104] 7741 ldrh w19, [x0] 7742 and w0, w21, 65535 7743 udiv w23, w22, w19 7744 msub w23, w23, w19, w22 7745 sub w19, w19, w23 7746 and w19, w19, 65535 7747 cmp w21, w19 7748 csel w19, w0, w19, cc 7749 lsl w26, w19, 9 7750 cbz w4, .L1093 7751 adrp x28, .LANCHOR108 7752 mov w2, 1 7753 str w4, [x29, 96] 7754 mov w1, w2 7755 ldr x0, [x28, #:lo12:.LANCHOR108] 7756 str x0, [x29, 120] 7757 add x0, x29, 144 7758 str w4, [x29, 116] 7759 str x0, [x29, 128] 7760 add x0, x29, 112 7761 bl FlashReadPages 7762 ldr w0, [x29, 112] 7763 mov x5, x28 7764 ldr w4, [x29, 96] 7765 cmn w0, #1 7766 adrp x0, .LANCHOR138 7767 csinv w24, w24, wzr, ne 7768 ldr w0, [x0, #:lo12:.LANCHOR138] 7769 cmp w0, 256 7770 bne .L1095 7771 mov w2, w4 7772 mov w1, w20 7773 adrp x0, .LC36 7774 str x28, [x29, 96] 7775 add x0, x0, :lo12:.LC36 7776 bl printf 7777 ldr x2, [x28, #:lo12:.LANCHOR108] 7778 mov w1, w20 7779 adrp x0, .LANCHOR161 7780 add x0, x0, :lo12:.LANCHOR161 7781 bl FtlMapWritePage 7782 ldr x5, [x29, 96] 7783.L1095: 7784 ldr x1, [x5, #:lo12:.LANCHOR108] 7785 lsl w23, w23, 7 7786 mov w2, w26 7787 mov x0, x25 7788 add x1, x1, x23, sxtw 2 7789 bl ftl_memcpy 7790.L1096: 7791 add w20, w20, 1 7792 sub w21, w21, w19 7793 add w22, w22, w19 7794 add x25, x25, x26, sxtw 7795 b .L1091 7796.L1093: 7797 mov w2, w26 7798 mov w1, 0 7799 mov x0, x25 7800 bl ftl_memset 7801 b .L1096 7802.L1098: 7803 mov w24, -1 7804 b .L1089 7805 .size FtlVendorPartRead, .-FtlVendorPartRead 7806 .section .text.FtlLoadEctTbl,"ax",@progbits 7807 .align 2 7808 .global FtlLoadEctTbl 7809 .type FtlLoadEctTbl, %function 7810FtlLoadEctTbl: 7811 stp x29, x30, [sp, -32]! 7812 mov w0, 64 7813 add x29, sp, 0 7814 stp x19, x20, [sp, 16] 7815 adrp x19, .LANCHOR118 7816 adrp x20, .LANCHOR116 7817 ldr x2, [x19, #:lo12:.LANCHOR118] 7818 ldrh w1, [x20, #:lo12:.LANCHOR116] 7819 bl FtlVendorPartRead 7820 ldr x0, [x19, #:lo12:.LANCHOR118] 7821 ldr w1, [x0] 7822 mov w0, 17221 7823 movk w0, 0x4254, lsl 16 7824 cmp w1, w0 7825 beq .L1101 7826 adrp x1, .LC37 7827 adrp x0, .LC38 7828 add x1, x1, :lo12:.LC37 7829 add x0, x0, :lo12:.LC38 7830 bl printf 7831 ldr x0, [x19, #:lo12:.LANCHOR118] 7832 mov w1, 0 7833 ldrh w2, [x20, #:lo12:.LANCHOR116] 7834 lsl w2, w2, 9 7835 bl ftl_memset 7836.L1101: 7837 mov w0, 0 7838 ldp x19, x20, [sp, 16] 7839 ldp x29, x30, [sp], 32 7840 ret 7841 .size FtlLoadEctTbl, .-FtlLoadEctTbl 7842 .section .text.Ftl_load_ext_data,"ax",@progbits 7843 .align 2 7844 .global Ftl_load_ext_data 7845 .type Ftl_load_ext_data, %function 7846Ftl_load_ext_data: 7847 stp x29, x30, [sp, -48]! 7848 mov w1, 1 7849 mov w0, 0 7850 add x29, sp, 0 7851 stp x19, x20, [sp, 16] 7852 adrp x19, .LANCHOR135 7853 str x21, [sp, 32] 7854 add x21, x19, :lo12:.LANCHOR135 7855 mov x2, x21 7856 bl FtlVendorPartRead 7857 ldr w0, [x19, #:lo12:.LANCHOR135] 7858 mov w20, 19539 7859 movk w20, 0x4654, lsl 16 7860 cmp w0, w20 7861 beq .L1104 7862 mov w2, 512 7863 mov w1, 0 7864 mov x0, x21 7865 bl ftl_memset 7866 str w20, [x19, #:lo12:.LANCHOR135] 7867.L1104: 7868 ldr w1, [x19, #:lo12:.LANCHOR135] 7869 add x0, x19, :lo12:.LANCHOR135 7870 cmp w1, w20 7871 adrp x1, .LANCHOR91 7872 bne .L1105 7873 adrp x2, .LANCHOR162 7874 ldr w3, [x0, 88] 7875 str w3, [x2, #:lo12:.LANCHOR162] 7876 adrp x2, .LANCHOR163 7877 ldr w3, [x0, 92] 7878 str w3, [x2, #:lo12:.LANCHOR163] 7879 adrp x2, .LANCHOR84 7880 ldr w3, [x0, 8] 7881 str w3, [x2, #:lo12:.LANCHOR84] 7882 adrp x2, .LANCHOR85 7883 ldr w3, [x0, 12] 7884 str w3, [x2, #:lo12:.LANCHOR85] 7885 adrp x2, .LANCHOR89 7886 ldr w3, [x0, 16] 7887 str w3, [x2, #:lo12:.LANCHOR89] 7888 adrp x2, .LANCHOR88 7889 ldr w3, [x0, 20] 7890 str w3, [x2, #:lo12:.LANCHOR88] 7891 ldp w2, w3, [x0, 28] 7892 str w2, [x1, #:lo12:.LANCHOR91] 7893 adrp x2, .LANCHOR80 7894 str w3, [x2, #:lo12:.LANCHOR80] 7895 adrp x2, .LANCHOR86 7896 ldr w3, [x0, 36] 7897 str w3, [x2, #:lo12:.LANCHOR86] 7898 adrp x2, .LANCHOR87 7899 ldr w3, [x0, 40] 7900 str w3, [x2, #:lo12:.LANCHOR87] 7901 adrp x2, .LANCHOR92 7902 ldr w3, [x0, 44] 7903 str w3, [x2, #:lo12:.LANCHOR92] 7904 ldr w2, [x0, 48] 7905 adrp x0, .LANCHOR93 7906 str w2, [x0, #:lo12:.LANCHOR93] 7907.L1105: 7908 adrp x0, .LANCHOR14 7909 adrp x2, .LANCHOR90 7910 ldr w1, [x1, #:lo12:.LANCHOR91] 7911 ldrh w0, [x0, #:lo12:.LANCHOR14] 7912 ldr w2, [x2, #:lo12:.LANCHOR90] 7913 ldp x19, x20, [sp, 16] 7914 ldr x21, [sp, 32] 7915 madd w0, w0, w2, w1 7916 adrp x1, .LANCHOR5 7917 ldp x29, x30, [sp], 48 7918 ldrh w1, [x1, #:lo12:.LANCHOR5] 7919 udiv w0, w0, w1 7920 adrp x1, .LANCHOR143 7921 str w0, [x1, #:lo12:.LANCHOR143] 7922 ret 7923 .size Ftl_load_ext_data, .-Ftl_load_ext_data 7924 .section .text.sftl_vendor_read,"ax",@progbits 7925 .align 2 7926 .global sftl_vendor_read 7927 .type sftl_vendor_read, %function 7928sftl_vendor_read: 7929 add w0, w0, 256 7930 b FtlVendorPartRead 7931 .size sftl_vendor_read, .-sftl_vendor_read 7932 .section .text.FtlMapBlkWriteDump_data,"ax",@progbits 7933 .align 2 7934 .global FtlMapBlkWriteDump_data 7935 .type FtlMapBlkWriteDump_data, %function 7936FtlMapBlkWriteDump_data: 7937 ldr w1, [x0, 56] 7938 cbz w1, .L1108 7939 stp x29, x30, [sp, -80]! 7940 add x29, sp, 0 7941 stp x19, x20, [sp, 16] 7942 mov x19, x0 7943 ldrh w20, [x0, 6] 7944 adrp x0, .LANCHOR107 7945 stp x21, x22, [sp, 32] 7946 stp x23, x24, [sp, 48] 7947 adrp x23, .LANCHOR138 7948 add x21, x23, :lo12:.LANCHOR138 7949 ldr x0, [x0, #:lo12:.LANCHOR107] 7950 mov x22, x23 7951 str x0, [x21, 8] 7952 adrp x0, .LANCHOR114 7953 ldr x24, [x0, #:lo12:.LANCHOR114] 7954 ldrh w0, [x19, 2] 7955 str x25, [sp, 64] 7956 str x24, [x21, 16] 7957 str wzr, [x19, 56] 7958 ldr x25, [x19, 40] 7959 cbz w0, .L1110 7960 adrp x1, .LANCHOR20 7961 ldrh w1, [x1, #:lo12:.LANCHOR20] 7962 sub w1, w1, #1 7963 cmp w0, w1 7964 bge .L1110 7965 ldrh w1, [x19] 7966 mov w2, 65535 7967 cmp w1, w2 7968 beq .L1110 7969 ldr x2, [x19, 16] 7970 ubfiz x1, x1, 1, 16 7971 sub w0, w0, #1 7972 ldrh w1, [x2, x1] 7973 mov w2, 1 7974 orr w0, w0, w1, lsl 10 7975 mov w1, w2 7976 str w0, [x21, 4] 7977 mov x0, x21 7978 bl FlashReadPages 7979 ldr w0, [x23, #:lo12:.LANCHOR138] 7980 cmn w0, #1 7981 beq .L1110 7982 ldrh w1, [x24, 8] 7983 ldr x2, [x19, 40] 7984 ubfiz x0, x1, 2, 16 7985 ldr w2, [x2, x0] 7986 ldr w0, [x21, 4] 7987 cmp w2, w0 7988 bne .L1110 7989 ldr x2, [x21, 8] 7990.L1122: 7991 mov x0, x19 7992 ldr x25, [sp, 64] 7993 ldp x19, x20, [sp, 16] 7994 ldp x21, x22, [sp, 32] 7995 ldp x23, x24, [sp, 48] 7996 ldp x29, x30, [sp], 80 7997 b FtlMapWritePage 7998.L1110: 7999 sub w20, w20, #1 8000 and w20, w20, 65535 8001 ubfiz x0, x20, 2, 16 8002 ldr w1, [x25, x0] 8003 add x0, x22, :lo12:.LANCHOR138 8004 str w1, [x0, 4] 8005 cbz w1, .L1111 8006 mov w2, 1 8007 mov w1, w2 8008 bl FlashReadPages 8009.L1112: 8010 add x22, x22, :lo12:.LANCHOR138 8011 mov w1, w20 8012 ldr x2, [x22, 8] 8013 b .L1122 8014.L1111: 8015 adrp x1, .LANCHOR23 8016 ldr x0, [x0, 8] 8017 ldrh w2, [x1, #:lo12:.LANCHOR23] 8018 mov w1, 255 8019 bl ftl_memset 8020 b .L1112 8021.L1108: 8022 ret 8023 .size FtlMapBlkWriteDump_data, .-FtlMapBlkWriteDump_data 8024 .section .text.FtlVpcTblFlush,"ax",@progbits 8025 .align 2 8026 .global FtlVpcTblFlush 8027 .type FtlVpcTblFlush, %function 8028FtlVpcTblFlush: 8029 stp x29, x30, [sp, -112]! 8030 adrp x1, .LANCHOR139 8031 mov w2, 19539 8032 add x29, sp, 0 8033 stp x25, x26, [sp, 64] 8034 adrp x25, .LANCHOR114 8035 stp x21, x22, [sp, 32] 8036 adrp x22, .LANCHOR106 8037 stp x27, x28, [sp, 80] 8038 adrp x21, .LANCHOR138 8039 ldr x27, [x25, #:lo12:.LANCHOR114] 8040 add x28, x21, :lo12:.LANCHOR138 8041 stp x19, x20, [sp, 16] 8042 movk w2, 0x4654, lsl 16 8043 stp x23, x24, [sp, 48] 8044 add x24, x1, :lo12:.LANCHOR139 8045 ldr x0, [x22, #:lo12:.LANCHOR106] 8046 adrp x23, .LANCHOR82 8047 ldrh w1, [x1, #:lo12:.LANCHOR139] 8048 adrp x26, .LANCHOR23 8049 stp x0, x27, [x28, 8] 8050 mov w20, 0 8051 strh w1, [x27, 2] 8052 mov w1, -3932 8053 strh w1, [x27] 8054 ldr w1, [x24, 8] 8055 stp w1, wzr, [x27, 4] 8056 adrp x1, .LANCHOR39 8057 add x19, x1, :lo12:.LANCHOR39 8058 str wzr, [x27, 12] 8059 str w2, [x1, #:lo12:.LANCHOR39] 8060 mov w1, 72 8061 movk w1, 0x5000, lsl 16 8062 str w1, [x19, 4] 8063 ldrh w1, [x24, 6] 8064 adrp x2, .LANCHOR51 8065 strh w1, [x19, 8] 8066 adrp x1, .LANCHOR10 8067 ldrh w1, [x1, #:lo12:.LANCHOR10] 8068 strb w1, [x19, 10] 8069 add x1, x2, :lo12:.LANCHOR51 8070 ldrh w2, [x2, #:lo12:.LANCHOR51] 8071 strh w2, [x19, 14] 8072 ldrh w2, [x1, 2] 8073 ldrb w3, [x1, 6] 8074 ldrb w1, [x1, 8] 8075 strb w1, [x19, 11] 8076 orr w2, w3, w2, lsl 6 8077 strh w2, [x19, 16] 8078 adrp x2, .LANCHOR52 8079 add x1, x2, :lo12:.LANCHOR52 8080 ldrh w2, [x2, #:lo12:.LANCHOR52] 8081 ldrb w3, [x1, 6] 8082 strh w2, [x19, 18] 8083 ldrh w2, [x1, 2] 8084 ldrb w1, [x1, 8] 8085 strb w1, [x19, 12] 8086 orr w2, w3, w2, lsl 6 8087 strh w2, [x19, 20] 8088 adrp x2, .LANCHOR53 8089 add x1, x2, :lo12:.LANCHOR53 8090 ldrh w2, [x2, #:lo12:.LANCHOR53] 8091 ldrb w3, [x1, 6] 8092 strh w2, [x19, 22] 8093 ldrh w2, [x1, 2] 8094 ldrb w1, [x1, 8] 8095 strb w1, [x19, 13] 8096 adrp x1, .LANCHOR90 8097 orr w2, w3, w2, lsl 6 8098 strh w2, [x19, 24] 8099 ldr w1, [x1, #:lo12:.LANCHOR90] 8100 str w1, [x19, 32] 8101 ldr w1, [x23, #:lo12:.LANCHOR82] 8102 str w1, [x19, 40] 8103 ldrh w2, [x26, #:lo12:.LANCHOR23] 8104 adrp x1, .LANCHOR83 8105 ldr w1, [x1, #:lo12:.LANCHOR83] 8106 str w1, [x19, 36] 8107 mov w1, 255 8108 bl ftl_memset 8109 ldr x0, [x28, 8] 8110 mov x1, x19 8111 mov w2, 48 8112 adrp x19, .LANCHOR5 8113 bl ftl_memcpy 8114 adrp x1, .LANCHOR42 8115 ldrh w2, [x19, #:lo12:.LANCHOR5] 8116 ldr x0, [x28, 8] 8117 ldr x1, [x1, #:lo12:.LANCHOR42] 8118 lsl w2, w2, 1 8119 add x0, x0, 48 8120 bl ftl_memcpy 8121 ldrh w0, [x19, #:lo12:.LANCHOR5] 8122 adrp x1, .LANCHOR1 8123 ldr x3, [x28, 8] 8124 mov x19, x28 8125 ldr x1, [x1, #:lo12:.LANCHOR1] 8126 mov x28, x24 8127 lsr w2, w0, 3 8128 ubfiz x0, x0, 1, 16 8129 add w2, w2, 4 8130 add x0, x0, 48 8131 and x0, x0, -4 8132 adrp x24, .LANCHOR20 8133 add x0, x3, x0 8134 bl ftl_memcpy 8135 mov w0, 0 8136 bl FtlUpdateVaildLpn 8137 mov w0, 65535 8138 add x24, x24, :lo12:.LANCHOR20 8139 str w0, [x29, 108] 8140 str x24, [x29, 96] 8141.L1124: 8142 ldrh w2, [x28, 2] 8143 ldrh w1, [x28] 8144 ldr x0, [x22, #:lo12:.LANCHOR106] 8145 str x0, [x19, 8] 8146 ldr x0, [x25, #:lo12:.LANCHOR114] 8147 str x0, [x19, 16] 8148 orr w0, w2, w1, lsl 10 8149 str w0, [x19, 4] 8150 ldrh w0, [x24] 8151 sub w0, w0, #1 8152 cmp w2, w0 8153 blt .L1125 8154 ldrh w0, [x28, 4] 8155 strh wzr, [x28, 2] 8156 strh w1, [x28, 4] 8157 str w0, [x29, 108] 8158 bl FtlFreeSysBlkQueueOut 8159 strh w0, [x28] 8160 ldr w1, [x23, #:lo12:.LANCHOR82] 8161 str w1, [x28, 8] 8162 add w2, w1, 1 8163 str w2, [x23, #:lo12:.LANCHOR82] 8164 ubfiz w2, w0, 10, 16 8165 str w2, [x19, 4] 8166 strh w0, [x27, 2] 8167 str w1, [x27, 4] 8168.L1125: 8169 ldrh w1, [x26, #:lo12:.LANCHOR23] 8170 ldr x0, [x22, #:lo12:.LANCHOR106] 8171 bl js_hash 8172 str w0, [x27, 12] 8173 mov w3, 1 8174 mov x0, x19 8175 mov w1, w3 8176 mov w2, w3 8177 bl FlashProgPages 8178 ldrh w0, [x28, 2] 8179 ldr w1, [x19] 8180 add w0, w0, 1 8181 and w0, w0, 65535 8182 strh w0, [x28, 2] 8183 cmn w1, #1 8184 bne .L1126 8185 cmp w0, 1 8186 bne .L1127 8187 adrp x1, .LANCHOR165 8188 adrp x0, .LC1 8189 mov w2, 1138 8190 add x1, x1, :lo12:.LANCHOR165 8191 add x0, x0, :lo12:.LC1 8192 bl printf 8193.L1127: 8194 ldrh w0, [x28, 2] 8195 cmp w0, 1 8196 bne .L1128 8197 ldr x0, [x29, 96] 8198 ldrh w0, [x0] 8199 sub w0, w0, #1 8200 strh w0, [x28, 2] 8201.L1128: 8202 add w20, w20, 1 8203 and w20, w20, 65535 8204 cmp w20, 3 8205 bls .L1124 8206 add x21, x21, :lo12:.LANCHOR138 8207 adrp x0, .LC39 8208 mov w2, w20 8209 add x0, x0, :lo12:.LC39 8210 ldr w1, [x21, 4] 8211 bl printf 8212.L1130: 8213 b .L1130 8214.L1126: 8215 cmp w0, 1 8216 beq .L1124 8217 cmp w1, 256 8218 beq .L1124 8219 ldr w1, [x29, 108] 8220 mov w0, 65535 8221 cmp w1, w0 8222 beq .L1131 8223 ldrh w0, [x29, 108] 8224 mov w1, 1 8225 bl FtlFreeSysBlkQueueIn 8226.L1131: 8227 ldp x19, x20, [sp, 16] 8228 mov w0, 0 8229 ldp x21, x22, [sp, 32] 8230 ldp x23, x24, [sp, 48] 8231 ldp x25, x26, [sp, 64] 8232 ldp x27, x28, [sp, 80] 8233 ldp x29, x30, [sp], 112 8234 ret 8235 .size FtlVpcTblFlush, .-FtlVpcTblFlush 8236 .section .text.FtlSysFlush,"ax",@progbits 8237 .align 2 8238 .global FtlSysFlush 8239 .type FtlSysFlush, %function 8240FtlSysFlush: 8241 stp x29, x30, [sp, -16]! 8242 add x29, sp, 0 8243 bl l2p_flush 8244 mov w0, 1 8245 bl FtlEctTblFlush 8246 bl FtlVpcTblFlush 8247 mov w0, 0 8248 ldp x29, x30, [sp], 16 8249 ret 8250 .size FtlSysFlush, .-FtlSysFlush 8251 .section .text.sftl_deinit,"ax",@progbits 8252 .align 2 8253 .global sftl_deinit 8254 .type sftl_deinit, %function 8255sftl_deinit: 8256 adrp x0, .LANCHOR166 8257 ldr w0, [x0, #:lo12:.LANCHOR166] 8258 cmp w0, 1 8259 bne .L1144 8260 stp x29, x30, [sp, -16]! 8261 add x29, sp, 0 8262 bl FtlSysFlush 8263 mov w0, 0 8264 ldp x29, x30, [sp], 16 8265 ret 8266.L1144: 8267 mov w0, 0 8268 ret 8269 .size sftl_deinit, .-sftl_deinit 8270 .section .text.FtlDiscard,"ax",@progbits 8271 .align 2 8272 .global FtlDiscard 8273 .type FtlDiscard, %function 8274FtlDiscard: 8275 stp x29, x30, [sp, -80]! 8276 add w2, w0, w1 8277 add x29, sp, 0 8278 stp x19, x20, [sp, 16] 8279 mov w19, w1 8280 adrp x1, .LANCHOR34 8281 stp x21, x22, [sp, 32] 8282 str x23, [sp, 48] 8283 ldr w1, [x1, #:lo12:.LANCHOR34] 8284 cmp w2, w1 8285 bhi .L1155 8286 cmp w19, 31 8287 bhi .L1149 8288.L1163: 8289 mov w0, 0 8290.L1147: 8291 ldp x19, x20, [sp, 16] 8292 ldp x21, x22, [sp, 32] 8293 ldr x23, [sp, 48] 8294 ldp x29, x30, [sp], 80 8295 ret 8296.L1149: 8297 adrp x21, .LANCHOR12 8298 ldrh w1, [x21, #:lo12:.LANCHOR12] 8299 udiv w20, w0, w1 8300 msub w0, w1, w20, w0 8301 ands w0, w0, 65535 8302 beq .L1150 8303 sub w1, w1, w0 8304 add w20, w20, 1 8305 cmp w1, w19 8306 csel w1, w1, w19, ls 8307 sub w19, w19, w1, uxth 8308.L1150: 8309 adrp x22, .LANCHOR167 8310 adrp x23, .LANCHOR86 8311 add x22, x22, :lo12:.LANCHOR167 8312 add x23, x23, :lo12:.LANCHOR86 8313 mov w0, -1 8314 str w0, [x29, 76] 8315.L1151: 8316 ldrh w0, [x21, #:lo12:.LANCHOR12] 8317 cmp w19, w0 8318 bcs .L1153 8319 adrp x0, .LANCHOR167 8320 ldr w1, [x0, #:lo12:.LANCHOR167] 8321 cmp w1, 32 8322 bls .L1163 8323 str wzr, [x0, #:lo12:.LANCHOR167] 8324 bl l2p_flush 8325 bl FtlVpcTblFlush 8326 b .L1163 8327.L1153: 8328 mov w2, 0 8329 add x1, x29, 72 8330 mov w0, w20 8331 bl log2phys 8332 ldr w0, [x29, 72] 8333 cmn w0, #1 8334 beq .L1152 8335 ldr w0, [x22] 8336 mov w2, 1 8337 add x1, x29, 76 8338 add w0, w0, 1 8339 str w0, [x22] 8340 ldr w0, [x23] 8341 add w0, w0, 1 8342 str w0, [x23] 8343 mov w0, w20 8344 bl log2phys 8345 ldr w0, [x29, 72] 8346 lsr w0, w0, 10 8347 bl P2V_block_in_plane 8348 bl decrement_vpc_count 8349.L1152: 8350 ldrh w0, [x21, #:lo12:.LANCHOR12] 8351 add w20, w20, 1 8352 sub w19, w19, w0 8353 b .L1151 8354.L1155: 8355 mov w0, -1 8356 b .L1147 8357 .size FtlDiscard, .-FtlDiscard 8358 .section .text.allocate_new_data_superblock,"ax",@progbits 8359 .align 2 8360 .global allocate_new_data_superblock 8361 .type allocate_new_data_superblock, %function 8362allocate_new_data_superblock: 8363 stp x29, x30, [sp, -48]! 8364 add x29, sp, 0 8365 stp x19, x20, [sp, 16] 8366 ldrh w19, [x0] 8367 str x21, [sp, 32] 8368 mov x21, x0 8369 adrp x0, .LANCHOR5 8370 ldrh w0, [x0, #:lo12:.LANCHOR5] 8371 cmp w0, w19 8372 bcs .L1165 8373 adrp x1, .LANCHOR168 8374 adrp x0, .LC1 8375 mov w2, 2755 8376 add x1, x1, :lo12:.LANCHOR168 8377 add x0, x0, :lo12:.LC1 8378 bl printf 8379.L1165: 8380 mov w0, 65535 8381 cmp w19, w0 8382 beq .L1166 8383 adrp x1, .LANCHOR42 8384 ubfiz x0, x19, 1, 16 8385 ldr x1, [x1, #:lo12:.LANCHOR42] 8386 ldrh w0, [x1, x0] 8387 cbz w0, .L1167 8388 mov w0, w19 8389 bl INSERT_DATA_LIST 8390.L1166: 8391 adrp x1, .LANCHOR131 8392 mov w0, 1 8393 strb w0, [x21, 8] 8394 mov w2, 65535 8395 ldrh w0, [x1, #:lo12:.LANCHOR131] 8396 mov x20, x1 8397 cmp w0, w2 8398 beq .L1168 8399 cmp w19, w0 8400 bne .L1169 8401 adrp x2, .LANCHOR42 8402 ubfiz x1, x0, 1, 16 8403 ldr x2, [x2, #:lo12:.LANCHOR42] 8404 ldrh w1, [x2, x1] 8405 cbz w1, .L1170 8406.L1169: 8407 bl update_vpc_list 8408.L1170: 8409 mov w0, -1 8410 strh w0, [x20, #:lo12:.LANCHOR131] 8411.L1168: 8412 mov x0, x21 8413 bl allocate_data_superblock 8414 bl l2p_flush 8415 mov w0, 0 8416 bl FtlEctTblFlush 8417 bl FtlVpcTblFlush 8418 ldr x21, [sp, 32] 8419 mov w0, 0 8420 ldp x19, x20, [sp, 16] 8421 ldp x29, x30, [sp], 48 8422 ret 8423.L1167: 8424 mov w0, w19 8425 bl INSERT_FREE_LIST 8426 b .L1166 8427 .size allocate_new_data_superblock, .-allocate_new_data_superblock 8428 .section .text.FtlProgPages,"ax",@progbits 8429 .align 2 8430 .global FtlProgPages 8431 .type FtlProgPages, %function 8432FtlProgPages: 8433 stp x29, x30, [sp, -80]! 8434 mov w2, 0 8435 add x29, sp, 0 8436 stp x19, x20, [sp, 16] 8437 mov x20, x3 8438 stp x21, x22, [sp, 32] 8439 mov w21, w1 8440 stp x23, x24, [sp, 48] 8441 ubfiz x21, x21, 5, 32 8442 mov x22, x0 8443 add x21, x21, 4 8444 ldrb w3, [x3, 9] 8445 adrp x23, .LC40 8446 adrp x24, .LANCHOR3 8447 add x19, x22, 4 8448 add x21, x22, x21 8449 add x23, x23, :lo12:.LC40 8450 add x24, x24, :lo12:.LANCHOR3 8451 bl FlashProgPages 8452.L1176: 8453 cmp x21, x19 8454 beq .L1182 8455 sub x22, x19, #4 8456 b .L1183 8457.L1178: 8458 ldr w1, [x19] 8459 mov x0, x23 8460 bl printf 8461 ldr w0, [x19] 8462 lsr w0, w0, 10 8463 bl P2V_block_in_plane 8464 bl decrement_vpc_count 8465 ldrh w0, [x20, 4] 8466 cbnz w0, .L1177 8467 mov x0, x20 8468 bl allocate_new_data_superblock 8469.L1177: 8470 mov x0, x20 8471 bl get_new_active_ppa 8472 str w0, [x19] 8473 mov w2, 0 8474 str w0, [x29, 76] 8475 mov w1, 1 8476 ldrb w3, [x20, 9] 8477 mov x0, x22 8478 bl FlashProgPages 8479.L1183: 8480 ldr w2, [x19, -4] 8481 cmp w2, 256 8482 ccmn w2, #1, 4, ne 8483 beq .L1178 8484 ldrb w1, [x20, 6] 8485 ldrh w0, [x24] 8486 cmp w1, w0 8487 bcc .L1179 8488 adrp x1, .LANCHOR169 8489 adrp x0, .LC1 8490 mov w2, 982 8491 add x1, x1, :lo12:.LANCHOR169 8492 add x0, x0, :lo12:.LC1 8493 bl printf 8494.L1179: 8495 add x1, x29, 80 8496 ldr w0, [x22, 4] 8497 mov w2, 1 8498 str w0, [x1, -4]! 8499 ldr w0, [x22, 24] 8500 bl log2phys 8501 ldr x0, [x22, 16] 8502 ldr w3, [x0, 12] 8503 lsr w0, w3, 10 8504 bl P2V_block_in_plane 8505 and w1, w0, 65535 8506 mov w22, w1 8507 cmn w3, #1 8508 beq .L1180 8509 adrp x2, .LANCHOR42 8510 ubfiz x0, x1, 1, 16 8511 ldr x2, [x2, #:lo12:.LANCHOR42] 8512 ldrh w0, [x2, x0] 8513 cbnz w0, .L1181 8514 adrp x0, .LC41 8515 mov w2, 0 8516 add x0, x0, :lo12:.LC41 8517 bl printf 8518.L1181: 8519 mov w0, w22 8520 bl decrement_vpc_count 8521.L1180: 8522 add x19, x19, 32 8523 b .L1176 8524.L1182: 8525 adrp x0, .LANCHOR3 8526 ldrb w1, [x20, 6] 8527 ldrh w0, [x0, #:lo12:.LANCHOR3] 8528 cmp w1, w0 8529 bcc .L1175 8530 adrp x1, .LANCHOR169 8531 adrp x0, .LC1 8532 mov w2, 997 8533 add x1, x1, :lo12:.LANCHOR169 8534 add x0, x0, :lo12:.LC1 8535 bl printf 8536.L1175: 8537 ldp x19, x20, [sp, 16] 8538 ldp x21, x22, [sp, 32] 8539 ldp x23, x24, [sp, 48] 8540 ldp x29, x30, [sp], 80 8541 ret 8542 .size FtlProgPages, .-FtlProgPages 8543 .section .text.FtlGcFreeTempBlock,"ax",@progbits 8544 .align 2 8545 .global FtlGcFreeTempBlock 8546 .type FtlGcFreeTempBlock, %function 8547FtlGcFreeTempBlock: 8548 stp x29, x30, [sp, -112]! 8549 mov w1, 65535 8550 add x29, sp, 0 8551 stp x19, x20, [sp, 16] 8552 adrp x19, .LANCHOR53 8553 stp x21, x22, [sp, 32] 8554 ldrh w2, [x19, #:lo12:.LANCHOR53] 8555 stp x23, x24, [sp, 48] 8556 stp x25, x26, [sp, 64] 8557 cmp w2, w1 8558 stp x27, x28, [sp, 80] 8559 beq .L1190 8560 adrp x1, .LANCHOR19 8561 add x0, x19, :lo12:.LANCHOR53 8562 ldrh w1, [x1, #:lo12:.LANCHOR19] 8563 bl FtlGcScanTempBlk 8564 str w0, [x29, 108] 8565.L1190: 8566 adrp x0, .LANCHOR133 8567 ldrh w2, [x19, #:lo12:.LANCHOR53] 8568 mov w1, 65535 8569 str wzr, [x0, #:lo12:.LANCHOR133] 8570 cmp w2, w1 8571 add x0, x19, :lo12:.LANCHOR53 8572 beq .L1192 8573 ldrb w1, [x0, 7] 8574 adrp x0, .LANCHOR19 8575 adrp x20, .LANCHOR70 8576 mov x21, x0 8577 ldrh w3, [x0, #:lo12:.LANCHOR19] 8578 ldrh w2, [x20, #:lo12:.LANCHOR70] 8579 mul w1, w1, w3 8580 cmp w2, w1 8581 beq .L1193 8582 adrp x1, .LANCHOR170 8583 adrp x0, .LC1 8584 mov w2, 164 8585 add x1, x1, :lo12:.LANCHOR170 8586 add x0, x0, :lo12:.LC1 8587 bl printf 8588.L1193: 8589 add x0, x19, :lo12:.LANCHOR53 8590 adrp x22, .LANCHOR42 8591 ldrh w3, [x21, #:lo12:.LANCHOR19] 8592 adrp x25, .LANCHOR152 8593 ldrh w2, [x19, #:lo12:.LANCHOR53] 8594 add x26, x20, :lo12:.LANCHOR70 8595 ldrb w0, [x0, 7] 8596 add x25, x25, :lo12:.LANCHOR152 8597 ldr x1, [x22, #:lo12:.LANCHOR42] 8598 mov w21, 0 8599 adrp x27, .LANCHOR71 8600 mul w0, w0, w3 8601 strh w0, [x1, x2, lsl 1] 8602 adrp x1, .LANCHOR84 8603 ldrh w0, [x20, #:lo12:.LANCHOR70] 8604 ldr w2, [x1, #:lo12:.LANCHOR84] 8605 add w0, w0, w2 8606 str w0, [x1, #:lo12:.LANCHOR84] 8607.L1194: 8608 ldrh w0, [x26] 8609 cmp w0, w21 8610 bhi .L1198 8611 mov w0, -1 8612 bl decrement_vpc_count 8613 ldrh w0, [x19, #:lo12:.LANCHOR53] 8614 ldr x2, [x22, #:lo12:.LANCHOR42] 8615 ubfiz x1, x0, 1, 16 8616 ldrh w1, [x2, x1] 8617 cbz w1, .L1199 8618 bl INSERT_DATA_LIST 8619.L1200: 8620 adrp x0, .LANCHOR68 8621 mov w21, -1 8622 strh wzr, [x20, #:lo12:.LANCHOR70] 8623 strh w21, [x19, #:lo12:.LANCHOR53] 8624 strh wzr, [x0, #:lo12:.LANCHOR68] 8625 bl l2p_flush 8626 bl FtlVpcTblFlush 8627 adrp x0, .LANCHOR145 8628 strh w21, [x0, #:lo12:.LANCHOR145] 8629 adrp x0, .LANCHOR48 8630 ldrh w1, [x0, #:lo12:.LANCHOR48] 8631 adrp x0, .LANCHOR171 8632 ldrh w0, [x0, #:lo12:.LANCHOR171] 8633 add w0, w0, w0, lsl 1 8634 cmp w1, w0, lsr 2 8635 ble .L1192 8636 adrp x0, .LANCHOR100 8637 mov w1, 20 8638 strh w1, [x0, #:lo12:.LANCHOR100] 8639.L1192: 8640 ldp x19, x20, [sp, 16] 8641 mov w0, 0 8642 ldp x21, x22, [sp, 32] 8643 ldp x23, x24, [sp, 48] 8644 ldp x25, x26, [sp, 64] 8645 ldp x27, x28, [sp, 80] 8646 ldp x29, x30, [sp], 112 8647 ret 8648.L1198: 8649 mov w24, 12 8650 ldr x28, [x27, #:lo12:.LANCHOR71] 8651 ldr w1, [x25] 8652 umull x24, w21, w24 8653 add x23, x28, x24 8654 ldr w0, [x23, 8] 8655 cmp w0, w1 8656 bcc .L1195 8657.L1203: 8658 ldrh w0, [x19, #:lo12:.LANCHOR53] 8659 b .L1204 8660.L1195: 8661 add x1, x29, 108 8662 mov w2, 0 8663 bl log2phys 8664 ldr w0, [x28, x24] 8665 ldr w1, [x29, 108] 8666 cmp w0, w1 8667 bne .L1197 8668 lsr w0, w0, 10 8669 bl P2V_block_in_plane 8670 mov w24, w0 8671 ldr w0, [x23, 8] 8672 mov w2, 1 8673 add x1, x23, 4 8674 bl log2phys 8675 mov w0, w24 8676.L1204: 8677 bl decrement_vpc_count 8678 b .L1196 8679.L1197: 8680 ldr w0, [x23, 4] 8681 cmp w1, w0 8682 bne .L1203 8683.L1196: 8684 add w21, w21, 1 8685 and w21, w21, 65535 8686 b .L1194 8687.L1199: 8688 bl INSERT_FREE_LIST 8689 b .L1200 8690 .size FtlGcFreeTempBlock, .-FtlGcFreeTempBlock 8691 .section .text.FtlGcPageRecovery,"ax",@progbits 8692 .align 2 8693 .global FtlGcPageRecovery 8694 .type FtlGcPageRecovery, %function 8695FtlGcPageRecovery: 8696 stp x29, x30, [sp, -32]! 8697 add x29, sp, 0 8698 stp x19, x20, [sp, 16] 8699 adrp x20, .LANCHOR19 8700 adrp x19, .LANCHOR53 8701 add x19, x19, :lo12:.LANCHOR53 8702 ldrh w1, [x20, #:lo12:.LANCHOR19] 8703 mov x0, x19 8704 bl FtlGcScanTempBlk 8705 ldrh w1, [x19, 2] 8706 ldrh w0, [x20, #:lo12:.LANCHOR19] 8707 cmp w1, w0 8708 bcc .L1205 8709 adrp x0, .LANCHOR129 8710 add x0, x0, :lo12:.LANCHOR129 8711 bl FtlMapBlkWriteDump_data 8712 mov w0, 0 8713 bl FtlGcFreeTempBlock 8714 adrp x0, .LANCHOR133 8715 str wzr, [x0, #:lo12:.LANCHOR133] 8716.L1205: 8717 ldp x19, x20, [sp, 16] 8718 ldp x29, x30, [sp], 32 8719 ret 8720 .size FtlGcPageRecovery, .-FtlGcPageRecovery 8721 .section .text.FtlPowerLostRecovery,"ax",@progbits 8722 .align 2 8723 .global FtlPowerLostRecovery 8724 .type FtlPowerLostRecovery, %function 8725FtlPowerLostRecovery: 8726 stp x29, x30, [sp, -32]! 8727 adrp x0, .LANCHOR157 8728 add x29, sp, 0 8729 str x19, [sp, 16] 8730 adrp x19, .LANCHOR51 8731 add x19, x19, :lo12:.LANCHOR51 8732 str wzr, [x0, #:lo12:.LANCHOR157] 8733 mov x0, x19 8734 bl FtlRecoverySuperblock 8735 mov x0, x19 8736 adrp x19, .LANCHOR52 8737 bl FtlSlcSuperblockCheck 8738 add x19, x19, :lo12:.LANCHOR52 8739 mov x0, x19 8740 bl FtlRecoverySuperblock 8741 mov x0, x19 8742 bl FtlSlcSuperblockCheck 8743 bl FtlGcPageRecovery 8744 mov w0, -1 8745 bl decrement_vpc_count 8746 mov w0, 0 8747 ldr x19, [sp, 16] 8748 ldp x29, x30, [sp], 32 8749 ret 8750 .size FtlPowerLostRecovery, .-FtlPowerLostRecovery 8751 .section .text.Ftl_gc_temp_data_write_back,"ax",@progbits 8752 .align 2 8753 .global Ftl_gc_temp_data_write_back 8754 .type Ftl_gc_temp_data_write_back, %function 8755Ftl_gc_temp_data_write_back: 8756 stp x29, x30, [sp, -32]! 8757 mov w3, 0 8758 mov w2, 0 8759 add x29, sp, 0 8760 stp x19, x20, [sp, 16] 8761 adrp x19, .LANCHOR62 8762 adrp x20, .LANCHOR104 8763 ldr w1, [x19, #:lo12:.LANCHOR62] 8764 add x19, x19, :lo12:.LANCHOR62 8765 ldr x0, [x20, #:lo12:.LANCHOR104] 8766 bl FlashProgPages 8767 mov w11, 0 8768.L1211: 8769 ldr w1, [x19] 8770 cmp w11, w1 8771 bcc .L1214 8772 ldr x0, [x20, #:lo12:.LANCHOR104] 8773 bl FtlGcBufFree 8774 str wzr, [x19] 8775 adrp x0, .LANCHOR53+4 8776 ldrh w0, [x0, #:lo12:.LANCHOR53+4] 8777 cbnz w0, .L1216 8778 mov w0, 1 8779 bl FtlGcFreeTempBlock 8780 mov w0, 1 8781.L1210: 8782 ldp x19, x20, [sp, 16] 8783 ldp x29, x30, [sp], 32 8784 ret 8785.L1214: 8786 ldr x2, [x20, #:lo12:.LANCHOR104] 8787 ubfiz x0, x11, 5, 16 8788 add x1, x2, x0 8789 ldr w2, [x2, x0] 8790 ldr x3, [x1, 16] 8791 cmn w2, #1 8792 bne .L1212 8793.L1218: 8794 ldr w1, [x1, 4] 8795 ldr w0, [x3, 12] 8796 bl FtlGcUpdatePage 8797 add w11, w11, 1 8798 and w11, w11, 65535 8799 b .L1211 8800.L1212: 8801 ldr w2, [x3, 8] 8802 b .L1218 8803.L1216: 8804 mov w0, 0 8805 b .L1210 8806 .size Ftl_gc_temp_data_write_back, .-Ftl_gc_temp_data_write_back 8807 .section .text.Ftl_get_new_temp_ppa,"ax",@progbits 8808 .align 2 8809 .global Ftl_get_new_temp_ppa 8810 .type Ftl_get_new_temp_ppa, %function 8811Ftl_get_new_temp_ppa: 8812 stp x29, x30, [sp, -32]! 8813 adrp x0, .LANCHOR53 8814 mov w2, 65535 8815 add x29, sp, 0 8816 str x19, [sp, 16] 8817 mov x19, x0 8818 ldrh w3, [x0, #:lo12:.LANCHOR53] 8819 cmp w3, w2 8820 beq .L1220 8821 add x1, x0, :lo12:.LANCHOR53 8822 ldrh w0, [x1, 4] 8823 cbnz w0, .L1221 8824.L1220: 8825 mov w0, 0 8826 bl FtlGcFreeTempBlock 8827 add x0, x19, :lo12:.LANCHOR53 8828 strb wzr, [x0, 8] 8829 bl allocate_data_superblock 8830 adrp x0, .LANCHOR68 8831 strh wzr, [x0, #:lo12:.LANCHOR68] 8832 adrp x0, .LANCHOR70 8833 strh wzr, [x0, #:lo12:.LANCHOR70] 8834 bl l2p_flush 8835 mov w0, 0 8836 bl FtlEctTblFlush 8837 bl FtlVpcTblFlush 8838.L1221: 8839 add x0, x19, :lo12:.LANCHOR53 8840 ldr x19, [sp, 16] 8841 ldp x29, x30, [sp], 32 8842 b get_new_active_ppa 8843 .size Ftl_get_new_temp_ppa, .-Ftl_get_new_temp_ppa 8844 .section .text.rk_ftl_garbage_collect,"ax",@progbits 8845 .align 2 8846 .global rk_ftl_garbage_collect 8847 .type rk_ftl_garbage_collect, %function 8848rk_ftl_garbage_collect: 8849 stp x29, x30, [sp, -176]! 8850 add x29, sp, 0 8851 stp x21, x22, [sp, 32] 8852 adrp x21, .LANCHOR94 8853 stp x19, x20, [sp, 16] 8854 ldr w1, [x21, #:lo12:.LANCHOR94] 8855 stp x23, x24, [sp, 48] 8856 stp x25, x26, [sp, 64] 8857 stp x27, x28, [sp, 80] 8858 cbnz w1, .L1280 8859 adrp x1, .LANCHOR44 8860 ldrh w1, [x1, #:lo12:.LANCHOR44] 8861 cmp w1, 47 8862 bls .L1280 8863 adrp x1, .LANCHOR73 8864 mov w4, 65535 8865 ldrh w3, [x1, #:lo12:.LANCHOR73] 8866 cmp w3, w4 8867 beq .L1225 8868 adrp x2, .LANCHOR72 8869 ldrh w5, [x2, #:lo12:.LANCHOR72] 8870 cmp w5, w4 8871 bne .L1225 8872 strh w3, [x2, #:lo12:.LANCHOR72] 8873 mov w2, -1 8874 strh w2, [x1, #:lo12:.LANCHOR73] 8875.L1225: 8876 cbnz w0, .L1281 8877 adrp x1, .LANCHOR48 8878 ldrh w1, [x1, #:lo12:.LANCHOR48] 8879 cmp w1, 24 8880 bhi .L1282 8881 adrp x2, .LANCHOR19 8882 cmp w1, 16 8883 ldrh w20, [x2, #:lo12:.LANCHOR19] 8884 bls .L1228 8885 lsr w20, w20, 5 8886.L1227: 8887 adrp x2, .LANCHOR100 8888 ldrh w3, [x2, #:lo12:.LANCHOR100] 8889 cmp w3, w1 8890 mov x3, x2 8891 bcs .L1231 8892 adrp x1, .LANCHOR53 8893 mov w4, 65535 8894 ldrh w1, [x1, #:lo12:.LANCHOR53] 8895 cmp w1, w4 8896 bne .L1232 8897 adrp x4, .LANCHOR72 8898 ldrh w4, [x4, #:lo12:.LANCHOR72] 8899 cmp w4, w1 8900 bne .L1232 8901 adrp x0, .LANCHOR172 8902 ldrh w0, [x0, #:lo12:.LANCHOR172] 8903 cbnz w0, .L1233 8904 adrp x1, .LANCHOR152 8905 adrp x4, .LANCHOR59 8906 ldr w1, [x1, #:lo12:.LANCHOR152] 8907 ldr w4, [x4, #:lo12:.LANCHOR59] 8908 add w1, w1, w1, lsl 1 8909 cmp w4, w1, lsr 2 8910 bcs .L1234 8911.L1233: 8912 adrp x1, .LANCHOR171 8913 ldrh w1, [x1, #:lo12:.LANCHOR171] 8914 add w1, w1, w1, lsl 1 8915 asr w1, w1, 2 8916 strh w1, [x3, #:lo12:.LANCHOR100] 8917.L1235: 8918 adrp x1, .LANCHOR95 8919 str wzr, [x1, #:lo12:.LANCHOR95] 8920.L1223: 8921 ldp x19, x20, [sp, 16] 8922 ldp x21, x22, [sp, 32] 8923 ldp x23, x24, [sp, 48] 8924 ldp x25, x26, [sp, 64] 8925 ldp x27, x28, [sp, 80] 8926 ldp x29, x30, [sp], 176 8927 ret 8928.L1228: 8929 cmp w1, 12 8930 bls .L1229 8931 lsr w20, w20, 4 8932 b .L1227 8933.L1229: 8934 cmp w1, 8 8935 bls .L1227 8936 lsr w20, w20, 2 8937 b .L1227 8938.L1282: 8939 mov w20, 1 8940 b .L1227 8941.L1234: 8942 mov w1, 18 8943 strh w1, [x2, #:lo12:.LANCHOR100] 8944 b .L1235 8945.L1232: 8946 adrp x1, .LANCHOR171 8947 ldrh w1, [x1, #:lo12:.LANCHOR171] 8948 add w1, w1, w1, lsl 1 8949 asr w1, w1, 2 8950 strh w1, [x3, #:lo12:.LANCHOR100] 8951.L1231: 8952 adrp x1, .LANCHOR74 8953 ldrh w1, [x1, #:lo12:.LANCHOR74] 8954 cbz w1, .L1226 8955 add w20, w20, 32 8956 and w20, w20, 65535 8957.L1226: 8958 adrp x19, .LANCHOR145 8959 str w0, [x29, 152] 8960 mov w0, 65535 8961 ldrh w2, [x19, #:lo12:.LANCHOR145] 8962 cmp w2, w0 8963 bne .L1238 8964 adrp x0, .LANCHOR72 8965 ldrh w1, [x0, #:lo12:.LANCHOR72] 8966 cmp w1, w2 8967 beq .L1239 8968 adrp x2, .LANCHOR42 8969 ubfiz x1, x1, 1, 16 8970 ldr x2, [x2, #:lo12:.LANCHOR42] 8971 ldrh w1, [x2, x1] 8972 cbnz w1, .L1240 8973 mov w1, -1 8974 strh w1, [x0, #:lo12:.LANCHOR72] 8975.L1240: 8976 ldrh w1, [x0, #:lo12:.LANCHOR72] 8977 strh w1, [x19, #:lo12:.LANCHOR145] 8978 mov w1, -1 8979 strh w1, [x0, #:lo12:.LANCHOR72] 8980.L1239: 8981 add x0, x19, :lo12:.LANCHOR145 8982 mov w1, 65535 8983 strb wzr, [x0, 8] 8984 ldrh w0, [x19, #:lo12:.LANCHOR145] 8985 cmp w0, w1 8986 beq .L1238 8987 bl IsBlkInGcList 8988 cbz w0, .L1242 8989 mov w0, -1 8990 strh w0, [x19, #:lo12:.LANCHOR145] 8991.L1242: 8992 ldrh w1, [x19, #:lo12:.LANCHOR145] 8993 mov w0, 65535 8994 add x22, x19, :lo12:.LANCHOR145 8995 cmp w1, w0 8996 beq .L1238 8997 mov x0, x22 8998 bl make_superblock 8999 adrp x0, .LANCHOR173 9000 ldrh w1, [x19, #:lo12:.LANCHOR145] 9001 strh wzr, [x22, 2] 9002 strh wzr, [x0, #:lo12:.LANCHOR173] 9003 adrp x0, .LANCHOR42 9004 strb wzr, [x22, 6] 9005 ldr x0, [x0, #:lo12:.LANCHOR42] 9006 ldrh w1, [x0, x1, lsl 1] 9007 adrp x0, .LANCHOR174 9008 strh w1, [x0, #:lo12:.LANCHOR174] 9009.L1238: 9010 adrp x1, .LANCHOR51 9011 ldrh w0, [x19, #:lo12:.LANCHOR145] 9012 str x1, [x29, 128] 9013 ldrh w2, [x1, #:lo12:.LANCHOR51] 9014 cmp w2, w0 9015 beq .L1243 9016 adrp x1, .LANCHOR52 9017 ldrh w1, [x1, #:lo12:.LANCHOR52] 9018 cmp w1, w0 9019 beq .L1243 9020 adrp x1, .LANCHOR53 9021 ldrh w1, [x1, #:lo12:.LANCHOR53] 9022 cmp w1, w0 9023 bne .L1244 9024.L1243: 9025 mov w0, -1 9026 strh w0, [x19, #:lo12:.LANCHOR145] 9027.L1244: 9028 adrp x25, .LANCHOR102 9029 add x26, x25, :lo12:.LANCHOR102 9030.L1278: 9031 ldrh w1, [x19, #:lo12:.LANCHOR145] 9032 mov w0, 65535 9033 cmp w1, w0 9034 bne .L1245 9035 adrp x0, .LANCHOR95 9036 adrp x22, .LANCHOR19 9037 add x22, x22, :lo12:.LANCHOR19 9038 str wzr, [x0, #:lo12:.LANCHOR95] 9039.L1246: 9040 ldrh w5, [x25, #:lo12:.LANCHOR102] 9041 add x7, x25, :lo12:.LANCHOR102 9042 mov w0, w5 9043 bl List_get_gc_head_node 9044 and w6, w0, 65535 9045 strh w6, [x19, #:lo12:.LANCHOR145] 9046 mov w0, 65535 9047 cmp w6, w0 9048 bne .L1247 9049 strh wzr, [x7] 9050 mov w0, 8 9051 b .L1223 9052.L1281: 9053 mov w20, 1 9054 b .L1226 9055.L1247: 9056 mov w0, w6 9057 bl IsBlkInGcList 9058 add w5, w5, 1 9059 cbz w0, .L1248 9060 strh w5, [x25, #:lo12:.LANCHOR102] 9061 b .L1246 9062.L1248: 9063 adrp x23, .LANCHOR42 9064 adrp x4, .LANCHOR3 9065 ldrh w0, [x22] 9066 ubfiz x1, x6, 1, 16 9067 ldr x2, [x23, #:lo12:.LANCHOR42] 9068 and w5, w5, 65535 9069 ldrh w4, [x4, #:lo12:.LANCHOR3] 9070 strh w5, [x25, #:lo12:.LANCHOR102] 9071 ldrh w3, [x2, x1] 9072 mul w0, w0, w4 9073 cmp w3, w0, asr 1 9074 bgt .L1250 9075 cmp w5, 48 9076 bls .L1251 9077 cmp w3, 8 9078 bls .L1251 9079 adrp x3, .LANCHOR68 9080 ldrh w3, [x3, #:lo12:.LANCHOR68] 9081 cmp w3, 35 9082 bhi .L1251 9083.L1250: 9084 strh wzr, [x26] 9085.L1251: 9086 ldrh w1, [x2, x1] 9087 cmp w0, w1 9088 bgt .L1252 9089 ldrh w0, [x26] 9090 cmp w0, 3 9091 bhi .L1252 9092 mov w0, -1 9093 strh wzr, [x26] 9094 strh w0, [x19, #:lo12:.LANCHOR145] 9095.L1311: 9096 adrp x0, .LANCHOR172 9097 ldrh w0, [x0, #:lo12:.LANCHOR172] 9098 b .L1223 9099.L1252: 9100 cbnz w1, .L1253 9101 mov w0, -1 9102 bl decrement_vpc_count 9103 ldrh w0, [x26] 9104 add w0, w0, 1 9105 strh w0, [x26] 9106 b .L1246 9107.L1253: 9108 add x0, x19, :lo12:.LANCHOR145 9109 strb wzr, [x0, 8] 9110 ldr x0, [x29, 128] 9111 ldrh w0, [x0, #:lo12:.LANCHOR51] 9112 cmp w0, w6 9113 bne .L1254 9114 adrp x1, .LANCHOR175 9115 adrp x0, .LC1 9116 mov w2, 717 9117 add x1, x1, :lo12:.LANCHOR175 9118 add x0, x0, :lo12:.LC1 9119 bl printf 9120.L1254: 9121 adrp x0, .LANCHOR52 9122 ldrh w1, [x19, #:lo12:.LANCHOR145] 9123 ldrh w0, [x0, #:lo12:.LANCHOR52] 9124 cmp w1, w0 9125 bne .L1255 9126 adrp x1, .LANCHOR175 9127 adrp x0, .LC1 9128 mov w2, 718 9129 add x1, x1, :lo12:.LANCHOR175 9130 add x0, x0, :lo12:.LC1 9131 bl printf 9132.L1255: 9133 adrp x0, .LANCHOR53 9134 ldrh w1, [x19, #:lo12:.LANCHOR145] 9135 ldrh w0, [x0, #:lo12:.LANCHOR53] 9136 cmp w1, w0 9137 bne .L1256 9138 adrp x1, .LANCHOR175 9139 adrp x0, .LC1 9140 mov w2, 719 9141 add x1, x1, :lo12:.LANCHOR175 9142 add x0, x0, :lo12:.LC1 9143 bl printf 9144.L1256: 9145 add x22, x19, :lo12:.LANCHOR145 9146 mov x0, x22 9147 bl make_superblock 9148 adrp x0, .LANCHOR173 9149 ldrh w1, [x19, #:lo12:.LANCHOR145] 9150 strh wzr, [x0, #:lo12:.LANCHOR173] 9151 ldr x0, [x23, #:lo12:.LANCHOR42] 9152 ldrh w1, [x0, x1, lsl 1] 9153 adrp x0, .LANCHOR174 9154 strh wzr, [x22, 2] 9155 strh w1, [x0, #:lo12:.LANCHOR174] 9156 strb wzr, [x22, 6] 9157.L1245: 9158 mov w0, 1 9159 str w0, [x21, #:lo12:.LANCHOR94] 9160 adrp x0, .LANCHOR19 9161 str x0, [x29, 120] 9162 ldrh w1, [x0, #:lo12:.LANCHOR19] 9163 ldr w0, [x29, 152] 9164 str w1, [x29, 156] 9165 cbz w0, .L1257 9166 adrp x0, .LANCHOR3 9167 ldrh w2, [x19, #:lo12:.LANCHOR145] 9168 ldrh w0, [x0, #:lo12:.LANCHOR3] 9169 mul w0, w0, w1 9170 adrp x1, .LANCHOR42 9171 ldr x1, [x1, #:lo12:.LANCHOR42] 9172 ldrh w1, [x1, x2, lsl 1] 9173 sub w0, w0, w1 9174 mov w1, 4 9175 sdiv w0, w0, w1 9176 add w20, w20, w0 9177 and w20, w20, 65535 9178.L1257: 9179 add x0, x19, :lo12:.LANCHOR145 9180 ldr w2, [x29, 156] 9181 ldrh w0, [x0, 2] 9182 add w1, w0, w20 9183 cmp w1, w2 9184 ble .L1258 9185 sub w20, w2, w0 9186 and w20, w20, 65535 9187.L1258: 9188 adrp x0, .LANCHOR173 9189 mov w28, 0 9190 add x0, x0, :lo12:.LANCHOR173 9191 str x0, [x29, 144] 9192.L1259: 9193 cmp w20, w28, uxth 9194 bls .L1267 9195 add x1, x19, :lo12:.LANCHOR145 9196 adrp x0, .LANCHOR3 9197 adrp x23, .LANCHOR66 9198 add x1, x1, 16 9199 ldrh w7, [x0, #:lo12:.LANCHOR3] 9200 mov w22, 0 9201 ldrh w4, [x1, -14] 9202 mov w2, 0 9203 ldr x0, [x23, #:lo12:.LANCHOR66] 9204 mov w6, 65535 9205 add w4, w4, w28 9206 b .L1268 9207.L1261: 9208 ldrh w3, [x1] 9209 cmp w3, w6 9210 beq .L1260 9211 ubfiz x5, x22, 5, 16 9212 add w22, w22, 1 9213 add x5, x0, x5 9214 and w22, w22, 65535 9215 orr w3, w4, w3, lsl 10 9216 str w3, [x5, 4] 9217.L1260: 9218 add w2, w2, 1 9219 add x1, x1, 2 9220 and w2, w2, 65535 9221.L1268: 9222 cmp w2, w7 9223 bne .L1261 9224 add x1, x19, :lo12:.LANCHOR145 9225 adrp x24, .LANCHOR62 9226 add x24, x24, :lo12:.LANCHOR62 9227 ldrb w2, [x1, 8] 9228 mov w1, w22 9229 bl FlashReadPages 9230 ubfiz x0, x22, 5, 16 9231 mov x22, 0 9232 str x0, [x29, 136] 9233.L1262: 9234 ldr x0, [x29, 136] 9235 cmp x22, x0 9236 bne .L1266 9237 add w28, w28, 1 9238 b .L1259 9239.L1266: 9240 ldr x0, [x23, #:lo12:.LANCHOR66] 9241 add x1, x0, x22 9242 ldr w0, [x0, x22] 9243 cmn w0, #1 9244 beq .L1263 9245 ldr x27, [x1, 16] 9246 mov w0, 61589 9247 ldrh w1, [x27] 9248 cmp w1, w0 9249 bne .L1263 9250 ldr w4, [x27, 8] 9251 cmn w4, #1 9252 bne .L1264 9253 str w4, [x29, 112] 9254 mov w2, 753 9255 adrp x1, .LANCHOR175 9256 adrp x0, .LC1 9257 add x1, x1, :lo12:.LANCHOR175 9258 add x0, x0, :lo12:.LC1 9259 bl printf 9260 ldr w4, [x29, 112] 9261.L1264: 9262 mov w2, 0 9263 add x1, x29, 168 9264 mov w0, w4 9265 bl log2phys 9266 ldr x0, [x23, #:lo12:.LANCHOR66] 9267 ldr w1, [x29, 168] 9268 add x0, x0, x22 9269 ldr w2, [x0, 4] 9270 cmp w2, w1 9271 bne .L1263 9272 ldr x1, [x29, 144] 9273 adrp x4, .LANCHOR104 9274 ldr x2, [x29, 144] 9275 ldr w0, [x0, 24] 9276 ldrh w1, [x1] 9277 add w1, w1, 1 9278 strh w1, [x2] 9279 ldr x2, [x4, #:lo12:.LANCHOR104] 9280 ldr w1, [x24] 9281 add x1, x2, x1, lsl 5 9282 stp x4, x1, [x29, 104] 9283 str w0, [x1, 24] 9284 bl Ftl_get_new_temp_ppa 9285 ldp x4, x1, [x29, 104] 9286 ldr x2, [x4, #:lo12:.LANCHOR104] 9287 str w0, [x1, 4] 9288 ldr w1, [x24] 9289 ubfiz x0, x1, 5, 32 9290 add w1, w1, 1 9291 add x2, x2, x0 9292 ldr x0, [x23, #:lo12:.LANCHOR66] 9293 add x0, x0, x22 9294 ldr x4, [x0, 8] 9295 str x4, [x2, 8] 9296 ldr x4, [x0, 16] 9297 str x4, [x2, 16] 9298 ldr w2, [x29, 168] 9299 str w2, [x27, 12] 9300 adrp x2, .LANCHOR53 9301 add x11, x2, :lo12:.LANCHOR53 9302 ldrh w2, [x2, #:lo12:.LANCHOR53] 9303 strh w2, [x27, 2] 9304 adrp x2, .LANCHOR83 9305 str w1, [x24] 9306 mov w1, 1 9307 ldr w2, [x2, #:lo12:.LANCHOR83] 9308 str w2, [x27, 4] 9309 bl FtlGcBufAlloc 9310 ldrb w1, [x11, 7] 9311 ldr w0, [x24] 9312 cmp w1, w0 9313 beq .L1265 9314 ldrh w0, [x11, 4] 9315 cbnz w0, .L1263 9316.L1265: 9317 bl Ftl_gc_temp_data_write_back 9318 cbz w0, .L1263 9319 add x0, x19, :lo12:.LANCHOR145 9320 mov w1, -1 9321 str wzr, [x21, #:lo12:.LANCHOR94] 9322 strh w1, [x19, #:lo12:.LANCHOR145] 9323 strh wzr, [x0, 2] 9324 b .L1311 9325.L1263: 9326 add x22, x22, 32 9327 b .L1262 9328.L1267: 9329 add x1, x19, :lo12:.LANCHOR145 9330 ldrh w0, [x1, 2] 9331 add w20, w20, w0 9332 ldr w0, [x29, 156] 9333 and w20, w20, 65535 9334 strh w20, [x1, 2] 9335 cmp w0, w20 9336 bhi .L1269 9337 adrp x0, .LANCHOR62 9338 ldr w0, [x0, #:lo12:.LANCHOR62] 9339 cbz w0, .L1270 9340 bl Ftl_gc_temp_data_write_back 9341 cbz w0, .L1270 9342 str wzr, [x21, #:lo12:.LANCHOR94] 9343 b .L1311 9344.L1270: 9345 adrp x0, .LANCHOR173 9346 ldrh w0, [x0, #:lo12:.LANCHOR173] 9347 cbnz w0, .L1271 9348 ldrh w1, [x19, #:lo12:.LANCHOR145] 9349 adrp x20, .LANCHOR42 9350 add x0, x19, :lo12:.LANCHOR145 9351 ldr x3, [x20, #:lo12:.LANCHOR42] 9352 ubfiz x2, x1, 1, 16 9353 ldrh w4, [x3, x2] 9354 cbz w4, .L1271 9355 adrp x2, .LANCHOR174 9356 adrp x22, .LANCHOR152 9357 add x23, x22, :lo12:.LANCHOR152 9358 mov w24, 0 9359 ldrh w5, [x2, #:lo12:.LANCHOR174] 9360 mov w3, 0 9361 ldrh w2, [x0, 2] 9362 adrp x0, .LC42 9363 add x0, x0, :lo12:.LC42 9364 bl printf 9365.L1272: 9366 ldr w0, [x23] 9367 cmp w24, w0 9368 bcs .L1274 9369 mov w2, 0 9370 add x1, x29, 172 9371 mov w0, w24 9372 bl log2phys 9373 ldr w3, [x29, 172] 9374 cmn w3, #1 9375 beq .L1273 9376 lsr w0, w3, 10 9377 bl P2V_block_in_plane 9378 ldrh w1, [x19, #:lo12:.LANCHOR145] 9379 cmp w1, w0, uxth 9380 bne .L1273 9381 adrp x0, .LC43 9382 mov w2, w3 9383 mov w1, w24 9384 add x0, x0, :lo12:.LC43 9385 bl printf 9386.L1274: 9387 ldr w0, [x22, #:lo12:.LANCHOR152] 9388 cmp w24, w0 9389 bcc .L1271 9390 ldrh w1, [x19, #:lo12:.LANCHOR145] 9391 ldr x0, [x20, #:lo12:.LANCHOR42] 9392 strh wzr, [x0, x1, lsl 1] 9393 ldrh w0, [x19, #:lo12:.LANCHOR145] 9394 bl update_vpc_list 9395 bl l2p_flush 9396 bl FtlVpcTblFlush 9397.L1271: 9398 mov w0, -1 9399 strh w0, [x19, #:lo12:.LANCHOR145] 9400.L1269: 9401 adrp x0, .LANCHOR48 9402 str wzr, [x21, #:lo12:.LANCHOR94] 9403 ldrh w0, [x0, #:lo12:.LANCHOR48] 9404 cmp w0, 2 9405 bhi .L1277 9406 ldr x0, [x29, 120] 9407 ldrh w20, [x0, #:lo12:.LANCHOR19] 9408 b .L1278 9409.L1273: 9410 add w24, w24, 1 9411 b .L1272 9412.L1277: 9413 add w0, w0, 1 9414 b .L1223 9415.L1280: 9416 mov w0, 0 9417 b .L1223 9418 .size rk_ftl_garbage_collect, .-rk_ftl_garbage_collect 9419 .section .text.FtlRead,"ax",@progbits 9420 .align 2 9421 .global FtlRead 9422 .type FtlRead, %function 9423FtlRead: 9424 stp x29, x30, [sp, -176]! 9425 and w0, w0, 255 9426 cmp w0, 16 9427 add x29, sp, 0 9428 stp x19, x20, [sp, 16] 9429 mov w19, w1 9430 stp x23, x24, [sp, 48] 9431 mov x23, x3 9432 stp x25, x26, [sp, 64] 9433 mov w26, w2 9434 stp x21, x22, [sp, 32] 9435 stp x27, x28, [sp, 80] 9436 bne .L1313 9437 mov x2, x3 9438 mov w1, w26 9439 add w0, w19, 256 9440 bl FtlVendorPartRead 9441 mov w21, w0 9442.L1312: 9443 mov w0, w21 9444 ldp x19, x20, [sp, 16] 9445 ldp x21, x22, [sp, 32] 9446 ldp x23, x24, [sp, 48] 9447 ldp x25, x26, [sp, 64] 9448 ldp x27, x28, [sp, 80] 9449 ldp x29, x30, [sp], 176 9450 ret 9451.L1313: 9452 add w0, w1, w2 9453 str w0, [x29, 136] 9454 adrp x0, .LANCHOR34 9455 add w1, w1, w2 9456 ldr w0, [x0, #:lo12:.LANCHOR34] 9457 cmp w1, w0 9458 bhi .L1334 9459 adrp x0, .LANCHOR166 9460 ldr w21, [x0, #:lo12:.LANCHOR166] 9461 cmn w21, #1 9462 beq .L1312 9463 adrp x22, .LANCHOR12 9464 adrp x25, .LANCHOR135 9465 add x25, x25, :lo12:.LANCHOR135 9466 mov w27, 0 9467 ldrh w0, [x22, #:lo12:.LANCHOR12] 9468 mov w21, 0 9469 adrp x28, .LANCHOR103 9470 stp wzr, wzr, [x29, 140] 9471 udiv w1, w19, w0 9472 stp wzr, w1, [x29, 148] 9473 add w1, w19, w2 9474 sub w24, w1, #1 9475 adrp x1, .LANCHOR163 9476 ldr w20, [x29, 152] 9477 udiv w24, w24, w0 9478 ldr w0, [x29, 152] 9479 sub w0, w24, w0 9480 add w0, w0, 1 9481 str w0, [x29, 156] 9482 ldr w0, [x1, #:lo12:.LANCHOR163] 9483 add w0, w0, w2 9484 str w0, [x1, #:lo12:.LANCHOR163] 9485 adrp x1, .LANCHOR89 9486 ldr w2, [x29, 156] 9487 ldr w0, [x1, #:lo12:.LANCHOR89] 9488 add w0, w0, w2 9489 str w0, [x1, #:lo12:.LANCHOR89] 9490.L1315: 9491 ldr w0, [x29, 156] 9492 cbnz w0, .L1332 9493 adrp x0, .LANCHOR74 9494 ldrh w0, [x0, #:lo12:.LANCHOR74] 9495 cbnz w0, .L1333 9496 adrp x0, .LANCHOR48 9497 ldrh w0, [x0, #:lo12:.LANCHOR48] 9498 cmp w0, 31 9499 bhi .L1312 9500.L1333: 9501 mov w1, 1 9502 mov w0, 0 9503 bl rk_ftl_garbage_collect 9504 b .L1312 9505.L1332: 9506 add x1, x29, 172 9507 mov w2, 0 9508 mov w0, w20 9509 bl log2phys 9510 ldr w1, [x29, 172] 9511 cmn w1, #1 9512 bne .L1316 9513 add x5, x22, :lo12:.LANCHOR12 9514 mov w4, 0 9515.L1317: 9516 ldrh w0, [x5] 9517 cmp w4, w0 9518 bcc .L1319 9519.L1320: 9520 ldr w0, [x29, 156] 9521 add w20, w20, 1 9522 subs w0, w0, #1 9523 str w0, [x29, 156] 9524 beq .L1324 9525 adrp x0, .LANCHOR3 9526 ldrh w0, [x0, #:lo12:.LANCHOR3] 9527 cmp w27, w0, lsl 2 9528 bne .L1315 9529.L1324: 9530 cbz w27, .L1315 9531 ldr x0, [x28, #:lo12:.LANCHOR103] 9532 mov w1, w27 9533 mov w2, 0 9534 bl FlashReadPages 9535 ldr w0, [x29, 140] 9536 lsl w0, w0, 9 9537 str w0, [x29, 116] 9538 ldr w0, [x29, 148] 9539 lsl w0, w0, 9 9540 str x0, [x29, 128] 9541 ldr w0, [x29, 144] 9542 lsl w0, w0, 9 9543 str w0, [x29, 120] 9544 ubfiz x0, x27, 5, 32 9545 mov x27, 0 9546 str x0, [x29, 104] 9547 add x0, x22, :lo12:.LANCHOR12 9548 str x0, [x29, 96] 9549.L1331: 9550 ldr x0, [x28, #:lo12:.LANCHOR103] 9551 ldr w2, [x29, 152] 9552 add x0, x0, x27 9553 ldr w1, [x0, 24] 9554 cmp w2, w1 9555 bne .L1326 9556 ldr x1, [x0, 8] 9557 adrp x0, .LANCHOR109 9558 ldr x0, [x0, #:lo12:.LANCHOR109] 9559 cmp x1, x0 9560 bne .L1327 9561 ldr x0, [x29, 128] 9562 ldr w2, [x29, 120] 9563 add x1, x1, x0 9564 mov x0, x23 9565.L1345: 9566 bl ftl_memcpy 9567.L1327: 9568 ldr x0, [x28, #:lo12:.LANCHOR103] 9569 add x0, x0, x27 9570 ldr x1, [x0, 16] 9571 ldr w2, [x0, 24] 9572 ldr w1, [x1, 8] 9573 cmp w2, w1 9574 beq .L1328 9575 ldr w1, [x25, 72] 9576 add w1, w1, 1 9577 str w1, [x25, 72] 9578.L1328: 9579 ldr w1, [x0] 9580 cmn w1, #1 9581 bne .L1329 9582 ldr w0, [x25, 72] 9583 mov w21, w1 9584 add w0, w0, 1 9585 str w0, [x25, 72] 9586.L1330: 9587 ldr x0, [x29, 104] 9588 add x27, x27, 32 9589 cmp x0, x27 9590 bne .L1331 9591 mov w27, 0 9592 b .L1315 9593.L1319: 9594 madd w0, w20, w0, w4 9595 cmp w19, w0 9596 bhi .L1318 9597 ldr w1, [x29, 136] 9598 cmp w1, w0 9599 bls .L1318 9600 sub w0, w0, w19 9601 str x5, [x29, 120] 9602 lsl w0, w0, 9 9603 str w4, [x29, 128] 9604 mov w2, 512 9605 mov w1, 0 9606 add x0, x23, x0 9607 bl ftl_memset 9608 ldr w4, [x29, 128] 9609 ldr x5, [x29, 120] 9610.L1318: 9611 add w4, w4, 1 9612 b .L1317 9613.L1316: 9614 ldr x2, [x28, #:lo12:.LANCHOR103] 9615 ubfiz x0, x27, 5, 32 9616 add x0, x2, x0 9617 str w1, [x0, 4] 9618 ldr w1, [x29, 152] 9619 cmp w20, w1 9620 bne .L1321 9621 adrp x1, .LANCHOR109 9622 ldr x1, [x1, #:lo12:.LANCHOR109] 9623 str x1, [x0, 8] 9624 ldrh w1, [x22, #:lo12:.LANCHOR12] 9625 udiv w2, w19, w1 9626 msub w2, w2, w1, w19 9627 str w2, [x29, 148] 9628 sub w2, w1, w2 9629 cmp w26, w2 9630 csel w2, w26, w2, ls 9631 str w2, [x29, 144] 9632 cmp w1, w2 9633 bne .L1322 9634 str x23, [x0, 8] 9635.L1322: 9636 adrp x1, .LANCHOR24 9637 adrp x2, .LANCHOR115 9638 str w20, [x0, 24] 9639 ldrh w1, [x1, #:lo12:.LANCHOR24] 9640 ldr x2, [x2, #:lo12:.LANCHOR115] 9641 mul w1, w1, w27 9642 add w27, w27, 1 9643 and x1, x1, 4294967292 9644 add x1, x2, x1 9645 str x1, [x0, 16] 9646 b .L1320 9647.L1321: 9648 cmp w20, w24 9649 bne .L1323 9650 ldrh w2, [x22, #:lo12:.LANCHOR12] 9651 adrp x1, .LANCHOR110 9652 ldr w3, [x29, 136] 9653 ldr x1, [x1, #:lo12:.LANCHOR110] 9654 str x1, [x0, 8] 9655 mul w1, w20, w2 9656 sub w3, w3, w1 9657 str w3, [x29, 140] 9658 cmp w2, w3 9659 bne .L1322 9660.L1344: 9661 sub w1, w1, w19 9662 lsl w1, w1, 9 9663 add x1, x23, x1 9664 str x1, [x0, 8] 9665 b .L1322 9666.L1323: 9667 ldrh w1, [x22, #:lo12:.LANCHOR12] 9668 mul w1, w1, w20 9669 b .L1344 9670.L1326: 9671 cmp w24, w1 9672 bne .L1327 9673 ldr x1, [x0, 8] 9674 adrp x0, .LANCHOR110 9675 ldr x0, [x0, #:lo12:.LANCHOR110] 9676 cmp x1, x0 9677 bne .L1327 9678 ldr x0, [x29, 96] 9679 ldr w2, [x29, 116] 9680 ldrh w0, [x0] 9681 mul w0, w0, w24 9682 sub w0, w0, w19 9683 lsl w0, w0, 9 9684 add x0, x23, x0 9685 b .L1345 9686.L1329: 9687 cmp w1, 256 9688 bne .L1330 9689 ldr w0, [x0, 4] 9690 lsr w0, w0, 10 9691 bl P2V_block_in_plane 9692 bl FtlGcRefreshBlock 9693 b .L1330 9694.L1334: 9695 mov w21, -1 9696 b .L1312 9697 .size FtlRead, .-FtlRead 9698 .section .text.sftl_read,"ax",@progbits 9699 .align 2 9700 .global sftl_read 9701 .type sftl_read, %function 9702sftl_read: 9703 mov x3, x2 9704 mov w2, w1 9705 mov w1, w0 9706 mov w0, 0 9707 b FtlRead 9708 .size sftl_read, .-sftl_read 9709 .section .text.FtlWrite,"ax",@progbits 9710 .align 2 9711 .global FtlWrite 9712 .type FtlWrite, %function 9713FtlWrite: 9714 stp x29, x30, [sp, -224]! 9715 and w0, w0, 255 9716 cmp w0, 16 9717 add x29, sp, 0 9718 stp x23, x24, [sp, 48] 9719 mov w23, w1 9720 stp x25, x26, [sp, 64] 9721 mov x26, x3 9722 stp x19, x20, [sp, 16] 9723 stp x21, x22, [sp, 32] 9724 stp x27, x28, [sp, 80] 9725 str w2, [x29, 172] 9726 bne .L1348 9727 add w0, w1, 256 9728 ldr w1, [x29, 172] 9729 mov x2, x3 9730 bl FtlVendorPartWrite 9731.L1347: 9732 ldp x19, x20, [sp, 16] 9733 ldp x21, x22, [sp, 32] 9734 ldp x23, x24, [sp, 48] 9735 ldp x25, x26, [sp, 64] 9736 ldp x27, x28, [sp, 80] 9737 ldp x29, x30, [sp], 224 9738 ret 9739.L1348: 9740 ldr w0, [x29, 172] 9741 add w0, w1, w0 9742 str w0, [x29, 152] 9743 adrp x0, .LANCHOR34 9744 ldr w1, [x29, 152] 9745 ldr w0, [x0, #:lo12:.LANCHOR34] 9746 cmp w1, w0 9747 bhi .L1380 9748 adrp x0, .LANCHOR166 9749 ldr w0, [x0, #:lo12:.LANCHOR166] 9750 cmn w0, #1 9751 beq .L1347 9752 adrp x0, .LANCHOR176 9753 mov w1, 2048 9754 ldr w2, [x29, 152] 9755 str w1, [x0, #:lo12:.LANCHOR176] 9756 adrp x1, .LANCHOR12 9757 sub w2, w2, #1 9758 ldr w3, [x29, 172] 9759 ldrh w0, [x1, #:lo12:.LANCHOR12] 9760 str x1, [x29, 160] 9761 udiv w25, w23, w0 9762 udiv w0, w2, w0 9763 adrp x2, .LANCHOR162 9764 mov w19, w25 9765 str w0, [x29, 144] 9766 sub w0, w0, w25 9767 add w24, w0, 1 9768 str w0, [x29, 140] 9769 ldr w0, [x2, #:lo12:.LANCHOR162] 9770 add w0, w0, w3 9771 str w0, [x2, #:lo12:.LANCHOR162] 9772 adrp x2, .LANCHOR85 9773 ldr w0, [x2, #:lo12:.LANCHOR85] 9774 add w0, w0, w24 9775 str w0, [x2, #:lo12:.LANCHOR85] 9776 adrp x0, .LANCHOR51 9777 add x20, x0, :lo12:.LANCHOR51 9778.L1350: 9779 cbnz w24, .L1375 9780 ldr w1, [x29, 140] 9781 mov w0, 0 9782 bl rk_ftl_garbage_collect 9783 adrp x0, .LANCHOR48 9784 mov x22, x0 9785 ldrh w1, [x0, #:lo12:.LANCHOR48] 9786 cmp w1, 5 9787 bls .L1376 9788.L1378: 9789 mov w0, 0 9790 b .L1347 9791.L1375: 9792 adrp x0, .LANCHOR51 9793 add x0, x0, :lo12:.LANCHOR51 9794 adrp x1, .LANCHOR3 9795 str x1, [x29, 112] 9796 ldrb w2, [x0, 6] 9797 ldrh w0, [x1, #:lo12:.LANCHOR3] 9798 cmp w2, w0 9799 bcc .L1351 9800 adrp x1, .LANCHOR177 9801 adrp x0, .LC1 9802 mov w2, 1038 9803 add x1, x1, :lo12:.LANCHOR177 9804 add x0, x0, :lo12:.LC1 9805 bl printf 9806.L1351: 9807 ldrh w0, [x20, 4] 9808 cbnz w0, .L1352 9809 mov x0, x20 9810 bl allocate_new_data_superblock 9811.L1352: 9812 ldrb w0, [x20, 7] 9813 ldrh w1, [x20, 4] 9814 lsl w0, w0, 2 9815 cmp w0, w1 9816 csel w0, w0, w1, ls 9817 ldrb w1, [x20, 6] 9818 cmp w0, w24 9819 csel w0, w0, w24, ls 9820 str w0, [x29, 148] 9821 ldr x0, [x29, 112] 9822 ldrh w0, [x0, #:lo12:.LANCHOR3] 9823 cmp w1, w0 9824 bcc .L1353 9825 adrp x1, .LANCHOR177 9826 adrp x0, .LC1 9827 mov w2, 1071 9828 add x1, x1, :lo12:.LANCHOR177 9829 add x0, x0, :lo12:.LC1 9830 bl printf 9831.L1353: 9832 adrp x0, .LANCHOR24 9833 add x0, x0, :lo12:.LANCHOR24 9834 mov x28, 0 9835 str x0, [x29, 104] 9836 adrp x0, .LANCHOR23 9837 add x0, x0, :lo12:.LANCHOR23 9838 str x0, [x29, 96] 9839.L1354: 9840 ldr w0, [x29, 148] 9841 mov w22, w28 9842 adrp x27, .LANCHOR105 9843 cmp w28, w0 9844 bcc .L1373 9845 mov x22, x0 9846.L1355: 9847 ldr x0, [x27, #:lo12:.LANCHOR105] 9848 mov x3, x20 9849 mov w2, 0 9850 mov w1, w22 9851 bl FtlProgPages 9852 cmp w24, w22 9853 bcs .L1374 9854 adrp x1, .LANCHOR177 9855 adrp x0, .LC1 9856 mov w2, 1149 9857 add x1, x1, :lo12:.LANCHOR177 9858 add x0, x0, :lo12:.LC1 9859 bl printf 9860.L1374: 9861 sub w24, w24, w22 9862 b .L1350 9863.L1373: 9864 ldrh w0, [x20, 4] 9865 cbz w0, .L1355 9866 add x1, x29, 188 9867 mov w2, 0 9868 mov w0, w19 9869 bl log2phys 9870 mov x0, x20 9871 lsl x21, x28, 5 9872 bl get_new_active_ppa 9873 ldr x1, [x27, #:lo12:.LANCHOR105] 9874 add x1, x1, x21 9875 str w0, [x1, 4] 9876 ldr x0, [x29, 104] 9877 str w19, [x1, 24] 9878 ldrh w2, [x0] 9879 mul w22, w22, w2 9880 and x0, x22, 4294967292 9881 str x0, [x29, 128] 9882 adrp x0, .LANCHOR115 9883 ldr x3, [x29, 128] 9884 ldr x0, [x0, #:lo12:.LANCHOR115] 9885 str x0, [x29, 120] 9886 add x22, x0, x3 9887 str x22, [x1, 16] 9888 mov x0, x22 9889 mov w1, 0 9890 bl ftl_memset 9891 ldr w0, [x29, 144] 9892 cmp w19, w25 9893 ccmp w19, w0, 4, ne 9894 bne .L1356 9895 cmp w19, w25 9896 ldr x0, [x29, 160] 9897 bne .L1357 9898 ldrh w2, [x0, #:lo12:.LANCHOR12] 9899 udiv w0, w23, w2 9900 msub w0, w0, w2, w23 9901 str w0, [x29, 156] 9902 sub w2, w2, w0 9903 ldr w0, [x29, 172] 9904 cmp w2, w0 9905 csel w0, w2, w0, ls 9906 str w0, [x29, 168] 9907.L1358: 9908 ldr x0, [x29, 160] 9909 ldr w1, [x29, 168] 9910 ldrh w0, [x0, #:lo12:.LANCHOR12] 9911 cmp w1, w0 9912 ldr x0, [x27, #:lo12:.LANCHOR105] 9913 bne .L1359 9914 add x21, x0, x21 9915 cmp w19, w25 9916 bne .L1360 9917 str x26, [x21, 8] 9918.L1361: 9919 ldr x0, [x29, 112] 9920 ldrb w1, [x20, 6] 9921 ldrh w0, [x0, #:lo12:.LANCHOR3] 9922 cmp w1, w0 9923 bcc .L1370 9924 adrp x1, .LANCHOR177 9925 adrp x0, .LC1 9926 mov w2, 1140 9927 add x1, x1, :lo12:.LANCHOR177 9928 add x0, x0, :lo12:.LC1 9929 bl printf 9930.L1370: 9931 ldp x1, x2, [x29, 120] 9932 mov w0, -3947 9933 add x28, x28, 1 9934 strh w0, [x1, x2] 9935 adrp x1, .LANCHOR83 9936 ldr w0, [x1, #:lo12:.LANCHOR83] 9937 stp w0, w19, [x22, 4] 9938 add w19, w19, 1 9939 add w0, w0, 1 9940 cmn w0, #1 9941 csel w0, w0, wzr, ne 9942 str w0, [x1, #:lo12:.LANCHOR83] 9943 ldr w0, [x29, 188] 9944 str w0, [x22, 12] 9945 ldrh w0, [x20] 9946 strh w0, [x22, 2] 9947 b .L1354 9948.L1357: 9949 ldrh w2, [x0, #:lo12:.LANCHOR12] 9950 ldr w0, [x29, 152] 9951 str wzr, [x29, 156] 9952 msub w2, w19, w2, w0 9953 and w0, w2, 65535 9954 str w0, [x29, 168] 9955 b .L1358 9956.L1360: 9957 ldr w0, [x29, 168] 9958.L1388: 9959 mul w0, w0, w19 9960 sub w0, w0, w23 9961 lsl w0, w0, 9 9962 add x0, x26, x0 9963 str x0, [x21, 8] 9964 b .L1361 9965.L1359: 9966 add x0, x0, x21 9967 cmp w19, w25 9968 bne .L1362 9969 adrp x1, .LANCHOR109 9970 ldr x1, [x1, #:lo12:.LANCHOR109] 9971.L1387: 9972 str x1, [x0, 8] 9973 ldr w0, [x29, 188] 9974 cmn w0, #1 9975 beq .L1364 9976 str w0, [x29, 196] 9977 mov w2, 0 9978 ldr x0, [x27, #:lo12:.LANCHOR105] 9979 str w19, [x29, 216] 9980 add x0, x0, x21 9981 ldp x1, x0, [x0, 8] 9982 stp x1, x0, [x29, 200] 9983 mov w1, 1 9984 add x0, x29, 192 9985 bl FlashReadPages 9986 ldr w3, [x29, 192] 9987 cmn w3, #1 9988 bne .L1365 9989 adrp x0, .LANCHOR135 9990 add x0, x0, :lo12:.LANCHOR135 9991 mov w2, w19 9992 ldr w1, [x0, 72] 9993 add w1, w1, 1 9994 str w1, [x0, 72] 9995 ldr w1, [x22, 8] 9996 adrp x0, .LC44 9997 add x0, x0, :lo12:.LC44 9998 bl printf 9999.L1368: 10000 ldr w0, [x29, 168] 10001 cmp w19, w25 10002 lsl w2, w0, 9 10003 bne .L1369 10004 ldr x0, [x27, #:lo12:.LANCHOR105] 10005 mov x1, x26 10006 add x21, x0, x21 10007 ldr w0, [x29, 156] 10008 ldr x3, [x21, 8] 10009 lsl w0, w0, 9 10010 add x0, x3, x0 10011.L1389: 10012 bl ftl_memcpy 10013 b .L1361 10014.L1362: 10015 adrp x1, .LANCHOR110 10016 ldr x1, [x1, #:lo12:.LANCHOR110] 10017 b .L1387 10018.L1365: 10019 ldr w1, [x22, 8] 10020 cmp w19, w1 10021 beq .L1367 10022 adrp x0, .LANCHOR135 10023 add x0, x0, :lo12:.LANCHOR135 10024 ldr w2, [x0, 72] 10025 add w2, w2, 1 10026 str w2, [x0, 72] 10027 adrp x0, .LC45 10028 mov w2, w19 10029 add x0, x0, :lo12:.LC45 10030 bl printf 10031.L1367: 10032 ldr w0, [x22, 8] 10033 cmp w19, w0 10034 beq .L1368 10035 mov w2, 1125 10036 adrp x1, .LANCHOR177 10037 adrp x0, .LC1 10038 add x1, x1, :lo12:.LANCHOR177 10039 add x0, x0, :lo12:.LC1 10040 bl printf 10041 b .L1368 10042.L1364: 10043 ldr x0, [x27, #:lo12:.LANCHOR105] 10044 ldr x1, [x29, 96] 10045 add x0, x0, x21 10046 ldrh w2, [x1] 10047 mov w1, 0 10048 ldr x0, [x0, 8] 10049 bl ftl_memset 10050 b .L1368 10051.L1369: 10052 ldr x0, [x29, 160] 10053 ldrh w1, [x0, #:lo12:.LANCHOR12] 10054 ldr x0, [x27, #:lo12:.LANCHOR105] 10055 add x21, x0, x21 10056 mul w1, w1, w19 10057 sub w1, w1, w23 10058 ldr x0, [x21, 8] 10059 lsl w1, w1, 9 10060 add x1, x26, x1 10061 b .L1389 10062.L1356: 10063 ldr x0, [x27, #:lo12:.LANCHOR105] 10064 add x21, x0, x21 10065 ldr x0, [x29, 160] 10066 ldrh w0, [x0, #:lo12:.LANCHOR12] 10067 b .L1388 10068.L1376: 10069 adrp x23, .LANCHOR72 10070 adrp x20, .LANCHOR101 10071 adrp x21, .LANCHOR100 10072 add x23, x23, :lo12:.LANCHOR72 10073 add x20, x20, :lo12:.LANCHOR101 10074 add x21, x21, :lo12:.LANCHOR100 10075 mov w19, 256 10076.L1379: 10077 adrp x0, .LANCHOR145 10078 mov w1, 65535 10079 ldrh w0, [x0, #:lo12:.LANCHOR145] 10080 cmp w0, w1 10081 bne .L1377 10082 ldrh w1, [x23] 10083 cmp w1, w0 10084 bne .L1377 10085 mov w0, 0 10086 bl List_get_gc_head_node 10087 bl FtlGcRefreshBlock 10088.L1377: 10089 mov w0, 128 10090 mov w1, 1 10091 strh w0, [x20] 10092 strh w0, [x21] 10093 mov w0, w1 10094 bl rk_ftl_garbage_collect 10095 mov w1, 1 10096 mov w0, 0 10097 bl rk_ftl_garbage_collect 10098 ldrh w0, [x22, #:lo12:.LANCHOR48] 10099 cmp w0, 2 10100 bhi .L1378 10101 subs w19, w19, #1 10102 bne .L1379 10103 b .L1378 10104.L1380: 10105 mov w0, -1 10106 b .L1347 10107 .size FtlWrite, .-FtlWrite 10108 .section .text.sftl_gc,"ax",@progbits 10109 .align 2 10110 .global sftl_gc 10111 .type sftl_gc, %function 10112sftl_gc: 10113 mov w1, 1 10114 mov w0, w1 10115 b rk_ftl_garbage_collect 10116 .size sftl_gc, .-sftl_gc 10117 .section .text.FtlLoadSysInfo,"ax",@progbits 10118 .align 2 10119 .global FtlLoadSysInfo 10120 .type FtlLoadSysInfo, %function 10121FtlLoadSysInfo: 10122 stp x29, x30, [sp, -112]! 10123 add x29, sp, 0 10124 stp x19, x20, [sp, 16] 10125 adrp x19, .LANCHOR138 10126 stp x21, x22, [sp, 32] 10127 add x0, x19, :lo12:.LANCHOR138 10128 adrp x22, .LANCHOR106 10129 stp x25, x26, [sp, 64] 10130 adrp x25, .LANCHOR114 10131 stp x23, x24, [sp, 48] 10132 stp x27, x28, [sp, 80] 10133 adrp x23, .LANCHOR42 10134 ldr x1, [x22, #:lo12:.LANCHOR106] 10135 adrp x21, .LANCHOR5 10136 str x1, [x0, 8] 10137 adrp x20, .LANCHOR139 10138 ldr x1, [x25, #:lo12:.LANCHOR114] 10139 str x1, [x0, 16] 10140 ldr x0, [x23, #:lo12:.LANCHOR42] 10141 mov w1, 0 10142 ldrh w2, [x21, #:lo12:.LANCHOR5] 10143 lsl w2, w2, 1 10144 bl ftl_memset 10145 ldrh w0, [x20, #:lo12:.LANCHOR139] 10146 mov w1, 65535 10147 cmp w0, w1 10148 bne .L1392 10149.L1403: 10150 mov w0, -1 10151.L1391: 10152 ldp x19, x20, [sp, 16] 10153 ldp x21, x22, [sp, 32] 10154 ldp x23, x24, [sp, 48] 10155 ldp x25, x26, [sp, 64] 10156 ldp x27, x28, [sp, 80] 10157 ldp x29, x30, [sp], 112 10158 ret 10159.L1392: 10160 add x24, x20, :lo12:.LANCHOR139 10161 mov w1, 1 10162 bl FtlGetLastWrittenPage 10163 sxth w28, w0 10164 add w0, w0, 1 10165 adrp x26, .LANCHOR23 10166 strh w0, [x24, 2] 10167 adrp x27, .LANCHOR178 10168 ldrsh w24, [x20, #:lo12:.LANCHOR139] 10169 add x26, x26, :lo12:.LANCHOR23 10170 add x27, x27, :lo12:.LANCHOR178 10171.L1394: 10172 tbz w28, #31, .L1400 10173 adrp x1, .LANCHOR178 10174 adrp x0, .LC1 10175 mov w2, 1465 10176 add x1, x1, :lo12:.LANCHOR178 10177 add x0, x0, :lo12:.LC1 10178 bl printf 10179.L1399: 10180 adrp x1, .LANCHOR23 10181 ldrh w0, [x21, #:lo12:.LANCHOR5] 10182 ldrh w1, [x1, #:lo12:.LANCHOR23] 10183 add x0, x0, 24 10184 cmp x1, x0, lsl 1 10185 bcs .L1402 10186 adrp x1, .LANCHOR178 10187 adrp x0, .LC1 10188 mov w2, 1467 10189 add x1, x1, :lo12:.LANCHOR178 10190 add x0, x0, :lo12:.LC1 10191 bl printf 10192.L1402: 10193 add x24, x19, :lo12:.LANCHOR138 10194 adrp x19, .LANCHOR39 10195 add x22, x19, :lo12:.LANCHOR39 10196 mov w2, 48 10197 mov x0, x22 10198 ldr x1, [x24, 8] 10199 bl ftl_memcpy 10200 ldr x0, [x23, #:lo12:.LANCHOR42] 10201 ldrh w2, [x21, #:lo12:.LANCHOR5] 10202 ldr x1, [x24, 8] 10203 lsl w2, w2, 1 10204 add x1, x1, 48 10205 bl ftl_memcpy 10206 ldrh w1, [x21, #:lo12:.LANCHOR5] 10207 ldr x0, [x24, 8] 10208 lsr w2, w1, 3 10209 ubfiz x1, x1, 1, 16 10210 add x1, x1, 48 10211 add w2, w2, 4 10212 and x1, x1, -4 10213 add x1, x0, x1 10214 adrp x0, .LANCHOR1 10215 ldr x0, [x0, #:lo12:.LANCHOR1] 10216 bl ftl_memcpy 10217 ldr w1, [x19, #:lo12:.LANCHOR39] 10218 mov w0, 19539 10219 movk w0, 0x4654, lsl 16 10220 cmp w1, w0 10221 bne .L1403 10222 add x20, x20, :lo12:.LANCHOR139 10223 adrp x0, .LANCHOR10 10224 ldrh w1, [x22, 8] 10225 ldrb w2, [x22, 10] 10226 ldrh w0, [x0, #:lo12:.LANCHOR10] 10227 strh w1, [x20, 6] 10228 cmp w2, w0 10229 bne .L1403 10230 adrp x0, .LANCHOR179 10231 adrp x2, .LANCHOR152 10232 adrp x3, .LANCHOR3 10233 str w1, [x0, #:lo12:.LANCHOR179] 10234 adrp x0, .LANCHOR19 10235 ldrh w3, [x3, #:lo12:.LANCHOR3] 10236 ldrh w0, [x0, #:lo12:.LANCHOR19] 10237 mul w0, w0, w1 10238 str w0, [x2, #:lo12:.LANCHOR152] 10239 adrp x2, .LANCHOR12 10240 ldrh w2, [x2, #:lo12:.LANCHOR12] 10241 mul w0, w2, w0 10242 adrp x2, .LANCHOR34 10243 str w0, [x2, #:lo12:.LANCHOR34] 10244 adrp x0, .LANCHOR7 10245 ldr w2, [x0, #:lo12:.LANCHOR7] 10246 adrp x0, .LANCHOR37+6 10247 ldrh w0, [x0, #:lo12:.LANCHOR37+6] 10248 cmp w1, w2 10249 sub w0, w2, w0 10250 sub w0, w0, w1 10251 udiv w0, w0, w3 10252 adrp x3, .LANCHOR171 10253 strh w0, [x3, #:lo12:.LANCHOR171] 10254 bls .L1404 10255 adrp x1, .LANCHOR178 10256 adrp x0, .LC1 10257 mov w2, 1489 10258 add x1, x1, :lo12:.LANCHOR178 10259 add x0, x0, :lo12:.LC1 10260 bl printf 10261.L1404: 10262 add x4, x19, :lo12:.LANCHOR39 10263 adrp x0, .LANCHOR51 10264 add x2, x0, :lo12:.LANCHOR51 10265 adrp x5, .LANCHOR145 10266 adrp x20, .LANCHOR52 10267 mov x22, x5 10268 ldrh w1, [x4, 16] 10269 ldrh w6, [x4, 14] 10270 strh w6, [x0, #:lo12:.LANCHOR51] 10271 lsr w3, w1, 6 10272 and w1, w1, 63 10273 strb w1, [x2, 6] 10274 ldrb w1, [x4, 11] 10275 strb w1, [x2, 8] 10276 add x1, x5, :lo12:.LANCHOR145 10277 strh w3, [x2, 2] 10278 mov w2, -1 10279 strh w2, [x5, #:lo12:.LANCHOR145] 10280 add x2, x20, :lo12:.LANCHOR52 10281 strh wzr, [x1, 2] 10282 strb wzr, [x1, 6] 10283 strb wzr, [x1, 8] 10284 ldrh w1, [x4, 18] 10285 strh w1, [x20, #:lo12:.LANCHOR52] 10286 ldrh w1, [x4, 20] 10287 lsr w3, w1, 6 10288 and w1, w1, 63 10289 strb w1, [x2, 6] 10290 ldrb w1, [x4, 12] 10291 strh w3, [x2, 2] 10292 strb w1, [x2, 8] 10293 adrp x2, .LANCHOR53 10294 ldrh w1, [x4, 22] 10295 add x3, x2, :lo12:.LANCHOR53 10296 strh w1, [x2, #:lo12:.LANCHOR53] 10297 mov x21, x2 10298 ldrh w1, [x4, 24] 10299 lsr w7, w1, 6 10300 and w1, w1, 63 10301 strb w1, [x3, 6] 10302 ldrb w1, [x4, 13] 10303 strb w1, [x3, 8] 10304 adrp x1, .LANCHOR84 10305 strh w7, [x3, 2] 10306 ldr w3, [x4, 32] 10307 str wzr, [x1, #:lo12:.LANCHOR84] 10308 adrp x1, .LANCHOR85 10309 str wzr, [x1, #:lo12:.LANCHOR85] 10310 adrp x1, .LANCHOR89 10311 str wzr, [x1, #:lo12:.LANCHOR89] 10312 adrp x1, .LANCHOR88 10313 str wzr, [x1, #:lo12:.LANCHOR88] 10314 adrp x1, .LANCHOR90 10315 str w3, [x1, #:lo12:.LANCHOR90] 10316 adrp x1, .LANCHOR91 10317 str wzr, [x1, #:lo12:.LANCHOR91] 10318 adrp x1, .LANCHOR92 10319 str wzr, [x1, #:lo12:.LANCHOR92] 10320 adrp x1, .LANCHOR87 10321 ldr w3, [x4, 40] 10322 str wzr, [x1, #:lo12:.LANCHOR87] 10323 adrp x1, .LANCHOR82 10324 ldr w4, [x1, #:lo12:.LANCHOR82] 10325 cmp w3, w4 10326 bls .L1405 10327 str w3, [x1, #:lo12:.LANCHOR82] 10328.L1405: 10329 add x19, x19, :lo12:.LANCHOR39 10330 adrp x1, .LANCHOR83 10331 ldr w3, [x1, #:lo12:.LANCHOR83] 10332 ldr w2, [x19, 36] 10333 cmp w2, w3 10334 bls .L1406 10335 str w2, [x1, #:lo12:.LANCHOR83] 10336.L1406: 10337 mov w1, 65535 10338 cmp w6, w1 10339 beq .L1407 10340 add x0, x0, :lo12:.LANCHOR51 10341 bl make_superblock 10342.L1407: 10343 ldrh w2, [x20, #:lo12:.LANCHOR52] 10344 mov w1, 65535 10345 add x0, x20, :lo12:.LANCHOR52 10346 cmp w2, w1 10347 beq .L1408 10348 bl make_superblock 10349.L1408: 10350 ldrh w2, [x21, #:lo12:.LANCHOR53] 10351 mov w1, 65535 10352 add x0, x21, :lo12:.LANCHOR53 10353 cmp w2, w1 10354 beq .L1409 10355 bl make_superblock 10356.L1409: 10357 ldrh w2, [x22, #:lo12:.LANCHOR145] 10358 mov w1, 65535 10359 add x0, x22, :lo12:.LANCHOR145 10360 cmp w2, w1 10361 beq .L1410 10362 bl make_superblock 10363.L1410: 10364 mov w0, 0 10365 b .L1391 10366.L1400: 10367 add x3, x19, :lo12:.LANCHOR138 10368 orr w0, w28, w24, lsl 10 10369 mov w2, 1 10370 str x3, [x29, 104] 10371 mov w1, w2 10372 str w0, [x3, 4] 10373 ldr x0, [x22, #:lo12:.LANCHOR106] 10374 str x0, [x3, 8] 10375 mov x0, x3 10376 bl FlashReadPages 10377 ldr x3, [x29, 104] 10378 ldr x0, [x3, 16] 10379 ldr w8, [x0, 12] 10380 cbz w8, .L1395 10381 ldr w0, [x19, #:lo12:.LANCHOR138] 10382 cmn w0, #1 10383 beq .L1395 10384 ldrh w1, [x26] 10385 ldr x0, [x3, 8] 10386 bl js_hash 10387 cmp w8, w0 10388 beq .L1395 10389 add x10, x20, :lo12:.LANCHOR139 10390 mov w6, w0 10391 mov w5, w8 10392 adrp x0, .LC46 10393 mov w3, w28 10394 mov w2, w24 10395 ldrh w4, [x10, 4] 10396 mov x1, x27 10397 add x0, x0, :lo12:.LC46 10398 str x10, [x29, 104] 10399 bl printf 10400 cbnz w28, .L1396 10401 ldr x10, [x29, 104] 10402 ldrh w0, [x10, 4] 10403 cmp w24, w0 10404 beq .L1396 10405 sxth w24, w0 10406 adrp x0, .LANCHOR20 10407 ldrh w7, [x0, #:lo12:.LANCHOR20] 10408 sub w7, w7, #1 10409.L1422: 10410 sxth w28, w7 10411 b .L1394 10412.L1396: 10413 mov w0, -1 10414 str w0, [x19, #:lo12:.LANCHOR138] 10415.L1395: 10416 ldr w0, [x19, #:lo12:.LANCHOR138] 10417 cmn w0, #1 10418 beq .L1398 10419 ldr x0, [x22, #:lo12:.LANCHOR106] 10420 mov w1, 19539 10421 movk w1, 0x4654, lsl 16 10422 ldr w0, [x0] 10423 cmp w0, w1 10424 bne .L1398 10425 ldr x0, [x25, #:lo12:.LANCHOR114] 10426 ldrh w1, [x0] 10427 mov w0, 61604 10428 cmp w1, w0 10429 beq .L1399 10430.L1398: 10431 sub w7, w28, #1 10432 b .L1422 10433 .size FtlLoadSysInfo, .-FtlLoadSysInfo 10434 .section .text.FtlMapTblRecovery,"ax",@progbits 10435 .align 2 10436 .global FtlMapTblRecovery 10437 .type FtlMapTblRecovery, %function 10438FtlMapTblRecovery: 10439 stp x29, x30, [sp, -160]! 10440 mov w1, 0 10441 add x29, sp, 0 10442 stp x19, x20, [sp, 16] 10443 mov x19, x0 10444 stp x25, x26, [sp, 64] 10445 mov w20, 0 10446 ldrh w25, [x0, 6] 10447 adrp x26, .LANCHOR20 10448 stp x23, x24, [sp, 48] 10449 ldr x23, [x0, 40] 10450 ldr x24, [x0, 16] 10451 lsl w2, w25, 2 10452 ldr x0, [x0, 24] 10453 str x0, [x29, 144] 10454 ldrh w0, [x19, 8] 10455 stp x21, x22, [sp, 32] 10456 adrp x22, .LANCHOR106 10457 stp x27, x28, [sp, 80] 10458 str w0, [x29, 152] 10459 mov x0, x23 10460 bl ftl_memset 10461 stp wzr, wzr, [x19, 48] 10462 adrp x0, .LANCHOR138 10463 add x6, x0, :lo12:.LANCHOR138 10464 ldr x1, [x22, #:lo12:.LANCHOR106] 10465 mov x27, x6 10466 str x0, [x29, 128] 10467 str x1, [x6, 8] 10468 adrp x1, .LANCHOR114 10469 ldr w0, [x29, 152] 10470 ldr x21, [x1, #:lo12:.LANCHOR114] 10471 mov w1, -1 10472 str x21, [x6, 16] 10473 sub w0, w0, #1 10474 strh w1, [x19] 10475 strh w1, [x19, 2] 10476 mov w1, 1 10477 str w0, [x29, 108] 10478 add x0, x26, :lo12:.LANCHOR20 10479 str w1, [x19, 56] 10480 str x0, [x29, 96] 10481.L1424: 10482 ldr w0, [x29, 152] 10483 cmp w20, w0 10484 bge .L1443 10485 ldr w0, [x29, 108] 10486 sxtw x28, w20 10487 cmp w20, w0 10488 bne .L1425 10489 lsl x0, x28, 1 10490 mov w1, 1 10491 add x26, x24, x0 10492 adrp x27, .LANCHOR23 10493 add x27, x27, :lo12:.LANCHOR23 10494 ldrh w0, [x24, x0] 10495 mov w24, 0 10496 bl FtlGetLastWrittenPage 10497 sxth w1, w0 10498 add w0, w0, 1 10499 strh w0, [x19, 2] 10500 ldr x0, [x29, 144] 10501 strh w20, [x19] 10502 str w1, [x29, 152] 10503 ldr w0, [x0, x28, lsl 2] 10504 adrp x28, .LANCHOR180 10505 str w0, [x19, 48] 10506 add x28, x28, :lo12:.LANCHOR180 10507 ldr x0, [x29, 128] 10508 add x22, x0, :lo12:.LANCHOR138 10509.L1426: 10510 ldr w0, [x29, 152] 10511 cmp w24, w0 10512 ble .L1429 10513.L1443: 10514 mov x0, x19 10515 bl ftl_free_no_use_map_blk 10516 adrp x0, .LANCHOR20 10517 ldrh w1, [x19, 2] 10518 ldrh w0, [x0, #:lo12:.LANCHOR20] 10519 cmp w1, w0 10520 bne .L1431 10521 mov x0, x19 10522 bl ftl_map_blk_alloc_new_blk 10523.L1431: 10524 mov x0, x19 10525 bl ftl_map_blk_gc 10526 mov x0, x19 10527 bl ftl_map_blk_gc 10528 mov w0, 0 10529 ldp x19, x20, [sp, 16] 10530 ldp x21, x22, [sp, 32] 10531 ldp x23, x24, [sp, 48] 10532 ldp x25, x26, [sp, 64] 10533 ldp x27, x28, [sp, 80] 10534 ldp x29, x30, [sp], 160 10535 ret 10536.L1429: 10537 ldrh w0, [x26] 10538 mov w2, 1 10539 mov w1, w2 10540 orr w0, w24, w0, lsl 10 10541 str w0, [x22, 4] 10542 mov x0, x22 10543 bl FlashReadPages 10544 ldr x0, [x22, 16] 10545 ldr w0, [x0, 12] 10546 str w0, [x29, 156] 10547 uxtw x0, w0 10548 cbz w0, .L1427 10549 ldr w0, [x22] 10550 cmn w0, #1 10551 beq .L1427 10552 ldrh w1, [x27] 10553 ldr x0, [x22, 8] 10554 bl js_hash 10555 ldr w1, [x29, 156] 10556 cmp w1, w0 10557 beq .L1427 10558 mov w5, w0 10559 mov x4, x1 10560 mov w3, w24 10561 mov w2, w20 10562 mov x1, x28 10563 adrp x0, .LC47 10564 add x0, x0, :lo12:.LC47 10565 bl printf 10566 mov w0, -1 10567 str w0, [x22] 10568.L1427: 10569 ldr w0, [x22] 10570 cmn w0, #1 10571 beq .L1428 10572 ldrh w0, [x21, 8] 10573 cmp w25, w0 10574 bls .L1428 10575 ldrh w2, [x21] 10576 ldrh w1, [x19, 4] 10577 cmp w2, w1 10578 bne .L1428 10579 ubfiz x0, x0, 2, 16 10580 ldr w1, [x22, 4] 10581 str w1, [x23, x0] 10582.L1428: 10583 add w6, w24, 1 10584 sxth w24, w6 10585 b .L1426 10586.L1425: 10587 lsl x2, x28, 1 10588 ldr x0, [x22, #:lo12:.LANCHOR106] 10589 str x0, [x27, 8] 10590 add x0, x24, x2 10591 ldrh w1, [x26, #:lo12:.LANCHOR20] 10592 str x0, [x29, 136] 10593 ldrh w0, [x24, x2] 10594 sub w1, w1, #1 10595 mov w2, 1 10596 orr w0, w1, w0, lsl 10 10597 mov w1, w2 10598 str w0, [x27, 4] 10599 mov x0, x27 10600 bl FlashReadPages 10601 ldr w0, [x27] 10602 cmn w0, #1 10603 beq .L1445 10604 ldrh w1, [x21] 10605 ldrh w0, [x19, 4] 10606 cmp w1, w0 10607 bne .L1445 10608 ldrh w1, [x21, 8] 10609 mov w0, 64245 10610 cmp w1, w0 10611 beq .L1433 10612.L1445: 10613 adrp x0, .LANCHOR23 10614 add x0, x0, :lo12:.LANCHOR23 10615 mov w28, 0 10616 str x0, [x29, 120] 10617 adrp x0, .LANCHOR180 10618 add x0, x0, :lo12:.LANCHOR180 10619 str x0, [x29, 112] 10620.L1434: 10621 ldr x0, [x29, 96] 10622 ldrh w0, [x0] 10623 cmp w28, w0 10624 bge .L1441 10625 ldr x0, [x29, 136] 10626 mov w2, 1 10627 mov w1, w2 10628 ldrh w0, [x0] 10629 orr w0, w28, w0, lsl 10 10630 str w0, [x27, 4] 10631 mov x0, x27 10632 bl FlashReadPages 10633 ldr x0, [x27, 16] 10634 ldr w0, [x0, 12] 10635 str w0, [x29, 156] 10636 uxtw x0, w0 10637 cbz w0, .L1438 10638 ldr w0, [x27] 10639 cmn w0, #1 10640 beq .L1438 10641 ldr x0, [x29, 120] 10642 ldrh w1, [x0] 10643 ldr x0, [x27, 8] 10644 bl js_hash 10645 ldr w1, [x29, 156] 10646 cmp w1, w0 10647 beq .L1438 10648 mov x4, x1 10649 ldr x1, [x29, 112] 10650 mov w5, w0 10651 mov w3, w28 10652 mov w2, w20 10653 adrp x0, .LC48 10654 add x0, x0, :lo12:.LC48 10655 bl printf 10656 mov w0, -1 10657 str w0, [x27] 10658.L1438: 10659 ldr w0, [x27] 10660 cmn w0, #1 10661 beq .L1439 10662 ldrh w0, [x21, 8] 10663 cmp w25, w0 10664 bls .L1439 10665 ldrh w2, [x21] 10666 ldrh w1, [x19, 4] 10667 cmp w2, w1 10668 bne .L1439 10669 ubfiz x0, x0, 2, 16 10670 ldr w1, [x27, 4] 10671 str w1, [x23, x0] 10672.L1439: 10673 add w7, w28, 1 10674 sxth w28, w7 10675 b .L1434 10676.L1433: 10677 ldrh w3, [x26, #:lo12:.LANCHOR20] 10678 mov w0, 0 10679 ldr x4, [x22, #:lo12:.LANCHOR106] 10680 sub w3, w3, #1 10681.L1435: 10682 cmp w0, w3 10683 blt .L1437 10684.L1441: 10685 add w20, w20, 1 10686 sxth w20, w20 10687 b .L1424 10688.L1437: 10689 lsl w2, w0, 1 10690 sxtw x2, w2 10691 lsl x1, x2, 2 10692 ldrh w1, [x4, x1] 10693 cmp w25, w1 10694 bls .L1436 10695 add x2, x2, 1 10696 ubfiz x1, x1, 2, 16 10697 ldr w2, [x4, x2, lsl 2] 10698 str w2, [x23, x1] 10699.L1436: 10700 add w0, w0, 1 10701 sxth w0, w0 10702 b .L1435 10703 .size FtlMapTblRecovery, .-FtlMapTblRecovery 10704 .section .text.FtlLoadVonderInfo,"ax",@progbits 10705 .align 2 10706 .global FtlLoadVonderInfo 10707 .type FtlLoadVonderInfo, %function 10708FtlLoadVonderInfo: 10709 stp x29, x30, [sp, -16]! 10710 adrp x1, .LANCHOR27 10711 adrp x0, .LANCHOR161 10712 add x0, x0, :lo12:.LANCHOR161 10713 add x29, sp, 0 10714 ldrh w1, [x1, #:lo12:.LANCHOR27] 10715 strh w1, [x0, 10] 10716 mov w1, -3962 10717 strh w1, [x0, 4] 10718 adrp x1, .LANCHOR35 10719 ldrh w1, [x1, #:lo12:.LANCHOR35] 10720 strh w1, [x0, 8] 10721 adrp x1, .LANCHOR28 10722 ldrh w1, [x1, #:lo12:.LANCHOR28] 10723 strh w1, [x0, 6] 10724 adrp x1, .LANCHOR36 10725 ldr x1, [x1, #:lo12:.LANCHOR36] 10726 str x1, [x0, 16] 10727 adrp x1, .LANCHOR122 10728 ldr x1, [x1, #:lo12:.LANCHOR122] 10729 str x1, [x0, 24] 10730 adrp x1, .LANCHOR121 10731 ldr x1, [x1, #:lo12:.LANCHOR121] 10732 str x1, [x0, 32] 10733 adrp x1, .LANCHOR123 10734 ldr x1, [x1, #:lo12:.LANCHOR123] 10735 str x1, [x0, 40] 10736 bl FtlMapTblRecovery 10737 mov w0, 0 10738 ldp x29, x30, [sp], 16 10739 ret 10740 .size FtlLoadVonderInfo, .-FtlLoadVonderInfo 10741 .section .text.FtlLoadMapInfo,"ax",@progbits 10742 .align 2 10743 .global FtlLoadMapInfo 10744 .type FtlLoadMapInfo, %function 10745FtlLoadMapInfo: 10746 stp x29, x30, [sp, -16]! 10747 add x29, sp, 0 10748 bl FtlL2PDataInit 10749 adrp x0, .LANCHOR129 10750 add x0, x0, :lo12:.LANCHOR129 10751 bl FtlMapTblRecovery 10752 mov w0, 0 10753 ldp x29, x30, [sp], 16 10754 ret 10755 .size FtlLoadMapInfo, .-FtlLoadMapInfo 10756 .section .text.FtlSysBlkInit,"ax",@progbits 10757 .align 2 10758 .global FtlSysBlkInit 10759 .type FtlSysBlkInit, %function 10760FtlSysBlkInit: 10761 stp x29, x30, [sp, -64]! 10762 adrp x0, .LANCHOR4 10763 add x29, sp, 0 10764 ldrh w0, [x0, #:lo12:.LANCHOR4] 10765 stp x19, x20, [sp, 16] 10766 adrp x19, .LANCHOR156 10767 stp x21, x22, [sp, 32] 10768 strh wzr, [x19, #:lo12:.LANCHOR156] 10769 str x23, [sp, 48] 10770 bl FtlFreeSysBlkQueueInit 10771 bl FtlScanSysBlk 10772 adrp x0, .LANCHOR139 10773 ldrh w1, [x0, #:lo12:.LANCHOR139] 10774 mov w0, 65535 10775 cmp w1, w0 10776 bne .L1470 10777.L1472: 10778 mov w21, -1 10779.L1469: 10780 mov w0, w21 10781 ldr x23, [sp, 48] 10782 ldp x19, x20, [sp, 16] 10783 ldp x21, x22, [sp, 32] 10784 ldp x29, x30, [sp], 64 10785 ret 10786.L1470: 10787 bl FtlLoadSysInfo 10788 mov w21, w0 10789 cbnz w0, .L1472 10790 bl FtlLoadMapInfo 10791 bl FtlLoadVonderInfo 10792 bl Ftl_load_ext_data 10793 bl FtlLoadEctTbl 10794 bl FtlFreeSysBLkSort 10795 bl SupperBlkListInit 10796 bl FtlPowerLostRecovery 10797 mov w0, 1 10798 bl FtlUpdateVaildLpn 10799 adrp x0, .LANCHOR33 10800 ldrh w2, [x0, #:lo12:.LANCHOR33] 10801 adrp x0, .LANCHOR55 10802 ldr x1, [x0, #:lo12:.LANCHOR55] 10803 mov w0, 0 10804 add x1, x1, 4 10805.L1473: 10806 cmp w0, w2 10807 bge .L1478 10808 ldr w3, [x1], 16 10809 tbz w3, #31, .L1474 10810.L1478: 10811 adrp x3, .LANCHOR83 10812 cmp w0, w2 10813 ldr w1, [x3, #:lo12:.LANCHOR83] 10814 add w1, w1, 32 10815 str w1, [x3, #:lo12:.LANCHOR83] 10816 bge .L1480 10817.L1475: 10818 adrp x23, .LANCHOR51 10819 add x20, x23, :lo12:.LANCHOR51 10820 mov x0, x20 10821 adrp x22, .LANCHOR52 10822 bl FtlSuperblockPowerLostFix 10823 add x19, x22, :lo12:.LANCHOR52 10824 mov x0, x19 10825 bl FtlSuperblockPowerLostFix 10826 adrp x0, .LANCHOR42 10827 ldrh w3, [x20, 4] 10828 ldr x1, [x0, #:lo12:.LANCHOR42] 10829 ldrh w0, [x23, #:lo12:.LANCHOR51] 10830 lsl x0, x0, 1 10831 ldrh w2, [x1, x0] 10832 sub w2, w2, w3 10833 adrp x3, .LANCHOR19 10834 strh w2, [x1, x0] 10835 strb wzr, [x20, 6] 10836 ldrh w0, [x3, #:lo12:.LANCHOR19] 10837 strh w0, [x20, 2] 10838 ldrh w0, [x22, #:lo12:.LANCHOR52] 10839 strh wzr, [x20, 4] 10840 ldrh w4, [x19, 4] 10841 lsl x0, x0, 1 10842 ldrh w2, [x1, x0] 10843 sub w2, w2, w4 10844 strh w2, [x1, x0] 10845 strb wzr, [x19, 6] 10846 ldrh w0, [x3, #:lo12:.LANCHOR19] 10847 strh w0, [x19, 2] 10848 adrp x0, .LANCHOR39 10849 add x0, x0, :lo12:.LANCHOR39 10850 strh wzr, [x19, 4] 10851 ldrh w1, [x0, 30] 10852 add w1, w1, 1 10853 strh w1, [x0, 30] 10854 bl l2p_flush 10855 bl FtlVpcTblFlush 10856.L1482: 10857 bl FtlVpcTblFlush 10858 b .L1469 10859.L1474: 10860 add w0, w0, 1 10861 b .L1473 10862.L1480: 10863 ldrh w0, [x19, #:lo12:.LANCHOR156] 10864 cbnz w0, .L1475 10865 bl l2p_flush 10866 b .L1482 10867 .size FtlSysBlkInit, .-FtlSysBlkInit 10868 .section .text.ftl_low_format,"ax",@progbits 10869 .align 2 10870 .global ftl_low_format 10871 .type ftl_low_format, %function 10872ftl_low_format: 10873 stp x29, x30, [sp, -80]! 10874 adrp x0, .LANCHOR83 10875 add x29, sp, 0 10876 stp x23, x24, [sp, 48] 10877 adrp x24, .LANCHOR4 10878 str wzr, [x0, #:lo12:.LANCHOR83] 10879 adrp x0, .LANCHOR143 10880 stp x19, x20, [sp, 16] 10881 adrp x20, .LANCHOR82 10882 str wzr, [x0, #:lo12:.LANCHOR143] 10883 ldrh w0, [x24, #:lo12:.LANCHOR4] 10884 stp x21, x22, [sp, 32] 10885 stp x25, x26, [sp, 64] 10886 str wzr, [x20, #:lo12:.LANCHOR82] 10887 bl FtlFreeSysBlkQueueInit 10888 bl FtlLoadBbt 10889 cbz w0, .L1484 10890 bl FtlMakeBbt 10891.L1484: 10892 adrp x23, .LANCHOR12 10893 adrp x0, .LANCHOR109 10894 mov w6, 23752 10895 ldrh w1, [x23, #:lo12:.LANCHOR12] 10896 movk w6, 0xa0f, lsl 16 10897 ldr x4, [x0, #:lo12:.LANCHOR109] 10898 adrp x0, .LANCHOR110 10899 lsl w1, w1, 7 10900 ldr x5, [x0, #:lo12:.LANCHOR110] 10901 mov w0, 0 10902.L1485: 10903 cmp w0, w1 10904 blt .L1486 10905 adrp x21, .LANCHOR5 10906 adrp x22, .LANCHOR6 10907 add x26, x22, :lo12:.LANCHOR6 10908 mov w19, 0 10909 ldrh w25, [x21, #:lo12:.LANCHOR5] 10910.L1487: 10911 ldrh w0, [x26] 10912 cmp w0, w25 10913 bhi .L1488 10914 adrp x25, .LANCHOR3 10915 sub w1, w19, #2 10916 ldrh w0, [x25, #:lo12:.LANCHOR3] 10917 cmp w1, w0, lsl 1 10918 bgt .L1489 10919.L1493: 10920 add x26, x21, :lo12:.LANCHOR5 10921 mov w19, 0 10922 mov w24, 0 10923.L1490: 10924 ldrh w0, [x26] 10925 cmp w0, w24 10926 bhi .L1494 10927 adrp x0, .LANCHOR99 10928 ldrh w1, [x22, #:lo12:.LANCHOR6] 10929 ldrh w4, [x25, #:lo12:.LANCHOR3] 10930 adrp x2, .LANCHOR171 10931 str w1, [x0, #:lo12:.LANCHOR99] 10932 adrp x0, .LANCHOR7 10933 adrp x3, .LANCHOR152 10934 ldr w1, [x0, #:lo12:.LANCHOR7] 10935 udiv w5, w1, w4 10936 ubfx x0, x5, 5, 16 10937 str w5, [x3, #:lo12:.LANCHOR152] 10938 add w6, w0, 36 10939 strh w6, [x2, #:lo12:.LANCHOR171] 10940 mov w6, 24 10941 mul w6, w4, w6 10942 cmp w19, w6 10943 ble .L1495 10944 sub w1, w1, w19 10945 udiv w1, w1, w4 10946 str w1, [x3, #:lo12:.LANCHOR152] 10947 lsr w1, w1, 5 10948 add w1, w1, 24 10949 strh w1, [x2, #:lo12:.LANCHOR171] 10950.L1495: 10951 adrp x1, .LANCHOR15 10952 ldrh w1, [x1, #:lo12:.LANCHOR15] 10953 cbz w1, .L1497 10954 ldrh w6, [x2, #:lo12:.LANCHOR171] 10955 add w6, w6, w1, lsr 1 10956 strh w6, [x2, #:lo12:.LANCHOR171] 10957 mul w6, w1, w4 10958 cmp w19, w6 10959 bge .L1497 10960 add w1, w1, 32 10961 str w5, [x3, #:lo12:.LANCHOR152] 10962 add w1, w0, w1 10963 strh w1, [x2, #:lo12:.LANCHOR171] 10964.L1497: 10965 ldrh w1, [x2, #:lo12:.LANCHOR171] 10966 adrp x25, .LANCHOR179 10967 ldr w0, [x3, #:lo12:.LANCHOR152] 10968 adrp x24, .LANCHOR42 10969 sub w0, w0, w1 10970 adrp x1, .LANCHOR19 10971 ldrh w1, [x1, #:lo12:.LANCHOR19] 10972 mul w0, w0, w4 10973 str w0, [x25, #:lo12:.LANCHOR179] 10974 mul w0, w1, w0 10975 ldrh w1, [x23, #:lo12:.LANCHOR12] 10976 str w0, [x3, #:lo12:.LANCHOR152] 10977 mov w23, -1 10978 mul w0, w1, w0 10979 adrp x1, .LANCHOR34 10980 str w0, [x1, #:lo12:.LANCHOR34] 10981 bl FtlBbmTblFlush 10982 ldr x0, [x24, #:lo12:.LANCHOR42] 10983 mov w1, 0 10984 ldrh w2, [x22, #:lo12:.LANCHOR6] 10985 lsl w2, w2, 1 10986 bl ftl_memset 10987 adrp x0, .LANCHOR59 10988 adrp x1, .LANCHOR145 10989 ldrh w2, [x21, #:lo12:.LANCHOR5] 10990 str wzr, [x0, #:lo12:.LANCHOR59] 10991 add x0, x1, :lo12:.LANCHOR145 10992 strh w23, [x1, #:lo12:.LANCHOR145] 10993 mov w1, 255 10994 lsr w2, w2, 3 10995 strh wzr, [x0, 2] 10996 strb wzr, [x0, 6] 10997 strb wzr, [x0, 8] 10998 adrp x0, .LANCHOR51 10999 add x19, x0, :lo12:.LANCHOR51 11000 strh wzr, [x0, #:lo12:.LANCHOR51] 11001 mov w0, 1 11002 strb w0, [x19, 8] 11003 adrp x0, .LANCHOR1 11004 strh wzr, [x19, 2] 11005 ldr x0, [x0, #:lo12:.LANCHOR1] 11006 strb wzr, [x19, 6] 11007 bl ftl_memset 11008.L1499: 11009 mov x0, x19 11010 bl make_superblock 11011 ldrb w1, [x19, 7] 11012 ldrh w0, [x19] 11013 cbnz w1, .L1500 11014 ldr x1, [x24, #:lo12:.LANCHOR42] 11015 ubfiz x0, x0, 1, 16 11016 strh w23, [x1, x0] 11017 ldrh w0, [x19] 11018 add w0, w0, 1 11019 strh w0, [x19] 11020 b .L1499 11021.L1486: 11022 ubfiz x3, x0, 2, 16 11023 mvn w2, w0 11024 orr w2, w0, w2, lsl 16 11025 add w0, w0, 1 11026 and w0, w0, 65535 11027 str w2, [x4, x3] 11028 str w6, [x5, x3] 11029 b .L1485 11030.L1488: 11031 mov w0, w25 11032 mov w1, 1 11033 add w25, w25, 1 11034 bl FtlLowFormatEraseBlock 11035 add w19, w19, w0 11036 and w25, w25, 65535 11037 and w19, w19, 65535 11038 b .L1487 11039.L1489: 11040 udiv w0, w19, w0 11041 adrp x1, .LANCHOR31 11042 ldr w19, [x1, #:lo12:.LANCHOR31] 11043 add w0, w0, w19 11044 bl FtlSysBlkNumInit 11045 ldrh w0, [x24, #:lo12:.LANCHOR4] 11046 add x24, x22, :lo12:.LANCHOR6 11047 bl FtlFreeSysBlkQueueInit 11048 ldrh w19, [x21, #:lo12:.LANCHOR5] 11049.L1491: 11050 ldrh w0, [x24] 11051 cmp w0, w19 11052 bls .L1493 11053 mov w0, w19 11054 add w19, w19, 1 11055 mov w1, 1 11056 and w19, w19, 65535 11057 bl FtlLowFormatEraseBlock 11058 b .L1491 11059.L1494: 11060 mov w0, w24 11061 mov w1, 0 11062 add w24, w24, 1 11063 bl FtlLowFormatEraseBlock 11064 add w19, w19, w0 11065 and w24, w24, 65535 11066 and w19, w19, 65535 11067 b .L1490 11068.L1500: 11069 ldr w1, [x20, #:lo12:.LANCHOR82] 11070 ubfiz x0, x0, 1, 16 11071 str w1, [x19, 12] 11072 mov w23, -1 11073 add w1, w1, 1 11074 str w1, [x20, #:lo12:.LANCHOR82] 11075 ldr x1, [x24, #:lo12:.LANCHOR42] 11076 ldrh w2, [x19, 4] 11077 strh w2, [x1, x0] 11078 adrp x2, .LANCHOR52 11079 add x0, x2, :lo12:.LANCHOR52 11080 ldrh w1, [x19] 11081 mov x19, x0 11082 add w1, w1, 1 11083 strh wzr, [x0, 2] 11084 strh w1, [x2, #:lo12:.LANCHOR52] 11085 mov w1, 1 11086 strb wzr, [x0, 6] 11087 strb w1, [x0, 8] 11088.L1501: 11089 mov x0, x19 11090 bl make_superblock 11091 ldrb w1, [x19, 7] 11092 ldrh w0, [x19] 11093 cbnz w1, .L1502 11094 ldr x1, [x24, #:lo12:.LANCHOR42] 11095 ubfiz x0, x0, 1, 16 11096 strh w23, [x1, x0] 11097 ldrh w0, [x19] 11098 add w0, w0, 1 11099 strh w0, [x19] 11100 b .L1501 11101.L1502: 11102 ldr w1, [x20, #:lo12:.LANCHOR82] 11103 ubfiz x0, x0, 1, 16 11104 str w1, [x19, 12] 11105 add w1, w1, 1 11106 str w1, [x20, #:lo12:.LANCHOR82] 11107 ldr x1, [x24, #:lo12:.LANCHOR42] 11108 ldrh w2, [x19, 4] 11109 mov w19, -1 11110 strh w2, [x1, x0] 11111 adrp x0, .LANCHOR53 11112 strh w19, [x0, #:lo12:.LANCHOR53] 11113 bl FtlFreeSysBlkQueueOut 11114 adrp x2, .LANCHOR139 11115 add x1, x2, :lo12:.LANCHOR139 11116 strh w0, [x2, #:lo12:.LANCHOR139] 11117 ldr w0, [x25, #:lo12:.LANCHOR179] 11118 strh w0, [x1, 6] 11119 ldr w0, [x20, #:lo12:.LANCHOR82] 11120 str w0, [x1, 8] 11121 add w0, w0, 1 11122 strh wzr, [x1, 2] 11123 strh w19, [x1, 4] 11124 str w0, [x20, #:lo12:.LANCHOR82] 11125 bl FtlVpcTblFlush 11126 bl FtlSysBlkInit 11127 cbnz w0, .L1503 11128 adrp x0, .LANCHOR166 11129 mov w1, 1 11130 str w1, [x0, #:lo12:.LANCHOR166] 11131.L1503: 11132 mov w0, 0 11133 ldp x19, x20, [sp, 16] 11134 ldp x21, x22, [sp, 32] 11135 ldp x23, x24, [sp, 48] 11136 ldp x25, x26, [sp, 64] 11137 ldp x29, x30, [sp], 80 11138 ret 11139 .size ftl_low_format, .-ftl_low_format 11140 .section .text.sftl_init,"ax",@progbits 11141 .align 2 11142 .global sftl_init 11143 .type sftl_init, %function 11144sftl_init: 11145 stp x29, x30, [sp, -32]! 11146 adrp x1, .LC49 11147 add x1, x1, :lo12:.LC49 11148 mov w0, -1 11149 add x29, sp, 0 11150 stp x19, x20, [sp, 16] 11151 adrp x20, .LANCHOR166 11152 adrp x19, .LANCHOR181 11153 add x19, x19, :lo12:.LANCHOR181 11154 str w0, [x20, #:lo12:.LANCHOR166] 11155 adrp x0, .LC38 11156 add x0, x0, :lo12:.LC38 11157 bl printf 11158 adrp x0, .LANCHOR0 11159 add x0, x0, :lo12:.LANCHOR0 11160 bl FtlConstantsInit 11161 bl FtlMemInit 11162 bl FtlVariablesInit 11163 adrp x0, .LANCHOR4 11164 ldrh w0, [x0, #:lo12:.LANCHOR4] 11165 bl FtlFreeSysBlkQueueInit 11166.L1509: 11167 bl FtlLoadBbt 11168 cbz w0, .L1510 11169.L1520: 11170 ldr w0, [x19] 11171 cmp w0, 1 11172 bne .L1509 11173 str wzr, [x19] 11174 bl ftl_low_format 11175 b .L1509 11176.L1510: 11177 bl FtlSysBlkInit 11178 cbnz w0, .L1520 11179 mov w1, 1 11180 str w1, [x20, #:lo12:.LANCHOR166] 11181 ldp x19, x20, [sp, 16] 11182 ldp x29, x30, [sp], 32 11183 ret 11184 .size sftl_init, .-sftl_init 11185 .section .text.FtlWriteToIDB,"ax",@progbits 11186 .align 2 11187 .global FtlWriteToIDB 11188 .type FtlWriteToIDB, %function 11189FtlWriteToIDB: 11190 stp x29, x30, [sp, -224]! 11191 add x29, sp, 0 11192 stp x23, x24, [sp, 48] 11193 add w23, w1, w0 11194 stp x25, x26, [sp, 64] 11195 sub w25, w23, #1 11196 stp x19, x20, [sp, 16] 11197 cmp w25, 63 11198 stp x21, x22, [sp, 32] 11199 adrp x24, .LANCHOR182 11200 stp x27, x28, [sp, 80] 11201 bls .L1522 11202 mov w19, w0 11203 cmp w0, 575 11204 bls .L1523 11205.L1522: 11206 ldr w0, [x24, #:lo12:.LANCHOR182] 11207 cbnz w0, .L1524 11208.L1589: 11209 mov w19, 0 11210 b .L1521 11211.L1524: 11212 adrp x0, .LANCHOR183 11213 str x0, [x29, 120] 11214 mov w1, 35899 11215 ldr x23, [x0, #:lo12:.LANCHOR183] 11216 movk w1, 0xfcdc, lsl 16 11217 ldr w2, [x23] 11218 cmp w2, w1 11219 bne .L1526 11220 adrp x21, .LANCHOR0 11221 add x0, x21, :lo12:.LANCHOR0 11222 mov w19, 65535 11223 mov w3, 4097 11224 ldrh w1, [x0, 10] 11225 mov x0, 262140 11226 add x2, x23, x0 11227 mov w0, 0 11228.L1530: 11229 ldr w4, [x2] 11230 cbnz w4, .L1527 11231 ldr w4, [x23, w0, uxtw 2] 11232 add w0, w0, 1 11233 str w4, [x2], -4 11234 cmp w0, w3 11235 sub w19, w19, #1 11236 csel w0, w0, wzr, cc 11237 cmp w19, 4096 11238 bne .L1530 11239 mov w19, 512 11240 b .L1529 11241.L1527: 11242 add w19, w19, 127 11243 lsr w19, w19, 7 11244.L1529: 11245 add w0, w19, 4 11246 ubfiz w1, w1, 2, 14 11247 mov w22, 0 11248 udiv w0, w0, w1 11249 add w0, w0, 1 11250 stp wzr, w0, [x29, 152] 11251 lsl w0, w19, 7 11252 str w0, [x29, 136] 11253 adrp x0, .LANCHOR78 11254 add x20, x0, :lo12:.LANCHOR78 11255.L1552: 11256 adrp x26, .LANCHOR184 11257 mov w1, 0 11258 mov x2, 512 11259 ldr x0, [x26, #:lo12:.LANCHOR184] 11260 bl memset 11261 str x26, [x29, 144] 11262 add x0, x21, :lo12:.LANCHOR0 11263 ldrh w27, [x0, 10] 11264 adrp x0, .LANCHOR78 11265 add x0, x0, :lo12:.LANCHOR78 11266 ldr x1, [x0, 32] 11267 mul w25, w27, w22 11268 cbz x1, .L1560 11269 ldr x0, [x0, 40] 11270 mov w26, 6 11271 cmp x0, 0 11272 mov w0, 9 11273 csel w26, w26, w0, eq 11274.L1531: 11275 ldr x2, [x20, 8] 11276 mov w1, w25 11277 mov w0, 0 11278 blr x2 11279 ldr w0, [x29, 156] 11280 cmp w0, 1 11281 beq .L1532 11282 ldr x2, [x20, 8] 11283 add w1, w27, w25 11284 mov w0, 0 11285 blr x2 11286.L1532: 11287 cmp w26, 9 11288 bne .L1562 11289 ldr x0, [x29, 144] 11290 mov w2, 1024 11291 mov w1, 0 11292 ldr x28, [x0, #:lo12:.LANCHOR184] 11293 mov x0, x28 11294 bl ftl_memset 11295 mov w0, 18766 11296 mov w1, 12 11297 movk w0, 0x464e, lsl 16 11298 stp w0, w1, [x28] 11299 mov w0, 4 11300 strb w0, [x28, 17] 11301 add x0, x21, :lo12:.LANCHOR0 11302 strb wzr, [x28, 16] 11303 strb wzr, [x28, 20] 11304 strh wzr, [x28, 22] 11305 ldrh w0, [x0, 10] 11306 strh w0, [x28, 18] 11307 str wzr, [x28, 12] 11308 mov w0, 16 11309 strb w0, [x28, 21] 11310 add x0, x28, 12 11311 bl js_hash 11312 str w0, [x28, 8] 11313.L1533: 11314 ldr w0, [x29, 156] 11315 mov x6, x23 11316 mul w0, w0, w27 11317 mov x27, 0 11318 str w0, [x29, 140] 11319 add w0, w25, 1 11320 str w0, [x29, 132] 11321.L1534: 11322 ldr w0, [x29, 140] 11323 mov w1, w27 11324 cmp w27, w0 11325 bcs .L1541 11326 cmp w26, 9 11327 bne .L1535 11328 ldr w0, [x29, 132] 11329 add w0, w0, w1 11330.L1588: 11331 str w0, [x29, 160] 11332 mov w0, 61424 11333 str w0, [x29, 164] 11334 cmp w1, 0 11335 ccmp w26, 9, 0, eq 11336 bne .L1537 11337 ldr x1, [x20, 32] 11338 mov w0, 70 11339 str x6, [x29, 104] 11340 blr x1 11341 ldr x7, [x20, 16] 11342 add x3, x29, 160 11343 mov x2, x28 11344 mov w1, w25 11345 mov w0, 0 11346 blr x7 11347 mov w1, w0 11348 add x0, x21, :lo12:.LANCHOR0 11349 ldr x2, [x20, 32] 11350 str w1, [x29, 112] 11351 ldrb w0, [x0, 22] 11352 blr x2 11353 ldr w1, [x29, 112] 11354 ldr x6, [x29, 104] 11355 cmn w1, #1 11356 bne .L1538 11357.L1541: 11358 ldr x0, [x29, 144] 11359 ldr x26, [x0, #:lo12:.LANCHOR184] 11360 add x0, x21, :lo12:.LANCHOR0 11361 ldrb w28, [x0, 14] 11362 ldrh w0, [x0, 10] 11363 mul w1, w0, w22 11364 str w1, [x29, 140] 11365 ldr x1, [x20, 32] 11366 cbnz x1, .L1539 11367 mov w25, 6 11368.L1540: 11369 ldr w1, [x29, 156] 11370 mov x27, 0 11371 mul w0, w1, w0 11372 str w0, [x29, 132] 11373.L1543: 11374 ldr w0, [x29, 132] 11375 mov w1, w27 11376 cmp w27, w0 11377 bcs .L1547 11378 cmp w27, 0 11379 ccmp w25, 9, 0, eq 11380 bne .L1544 11381 ldr x1, [x20, 32] 11382 mov w0, 70 11383 blr x1 11384 ldr x1, [x20, 40] 11385 mov w0, 2 11386 blr x1 11387 ldr x6, [x20, 24] 11388 add x3, x29, 160 11389 ldr w1, [x29, 140] 11390 mov x2, x26 11391 mov w0, 0 11392 blr x6 11393 ldr x1, [x20, 40] 11394 mov w0, w28 11395 blr x1 11396 add x0, x21, :lo12:.LANCHOR0 11397 ldr x1, [x20, 32] 11398 ldrb w0, [x0, 22] 11399 blr x1 11400 ldr w0, [x26] 11401 mov w1, 18766 11402 movk w1, 0x464e, lsl 16 11403 cmp w0, w1 11404 beq .L1545 11405.L1547: 11406 ldr x0, [x29, 144] 11407 mov x2, x23 11408 mov x1, 0 11409 ldr x0, [x0, #:lo12:.LANCHOR184] 11410.L1546: 11411 ldr w3, [x29, 136] 11412 mov w26, w1 11413 cmp w1, w3 11414 bcc .L1550 11415 ldr w0, [x29, 152] 11416 add w0, w0, 1 11417 str w0, [x29, 152] 11418 cmp w0, 5 11419 bls .L1549 11420 b .L1553 11421.L1560: 11422 mov w26, 6 11423 b .L1531 11424.L1562: 11425 mov x28, 0 11426 b .L1533 11427.L1535: 11428 add w0, w1, w25 11429 lsl w0, w0, 2 11430 b .L1588 11431.L1537: 11432 ldr x7, [x20, 16] 11433 add x3, x29, 160 11434 mov x2, x6 11435 add w1, w1, w25 11436 mov w0, 0 11437 str x6, [x29, 112] 11438 blr x7 11439 cmn w0, #1 11440 beq .L1541 11441 ldr x6, [x29, 112] 11442 add x6, x6, 2048 11443.L1538: 11444 add x27, x27, 1 11445 b .L1534 11446.L1539: 11447 ldr x1, [x20, 40] 11448 mov w25, 6 11449 cmp x1, 0 11450 mov w1, 9 11451 csel w25, w25, w1, eq 11452 b .L1540 11453.L1544: 11454 ldr x6, [x20, 24] 11455 add x3, x29, 160 11456 ldr w0, [x29, 140] 11457 mov x2, x26 11458 add w1, w1, w0 11459 mov w0, 0 11460 blr x6 11461 cmn w0, #1 11462 beq .L1547 11463 ldr w0, [x29, 164] 11464 mov w1, 61424 11465 cmp w0, w1 11466 bne .L1547 11467 add x26, x26, 2048 11468.L1545: 11469 add x27, x27, 1 11470 b .L1543 11471.L1550: 11472 mov x25, x2 11473 ldr w4, [x0, x1, lsl 2] 11474 lsl x27, x1, 2 11475 add x2, x2, 4 11476 add x1, x1, 1 11477 ldr w3, [x25] 11478 cmp w4, w3 11479 beq .L1546 11480 mov x2, 512 11481 mov w1, 0 11482 bl memset 11483 ldr x0, [x29, 144] 11484 mov w1, w22 11485 ldr w3, [x25] 11486 mov w4, w26 11487 ldr x0, [x0, #:lo12:.LANCHOR184] 11488 ldr w2, [x0, x27] 11489 adrp x0, .LC50 11490 add x0, x0, :lo12:.LC50 11491 bl printf 11492 add x0, x21, :lo12:.LANCHOR0 11493 ldr x2, [x20, 8] 11494 ldrh w1, [x0, 10] 11495 mov w0, 0 11496 mul w1, w1, w22 11497 blr x2 11498.L1549: 11499 ldr w0, [x29, 156] 11500 add w22, w22, w0 11501 cmp w22, 15 11502 bls .L1552 11503 ldr w0, [x29, 152] 11504 cbnz w0, .L1553 11505.L1526: 11506 mov w19, -1 11507.L1553: 11508 ldr x0, [x29, 120] 11509 str wzr, [x24, #:lo12:.LANCHOR182] 11510 ldr x0, [x0, #:lo12:.LANCHOR183] 11511 bl free 11512 adrp x0, .LANCHOR184 11513 ldr x0, [x0, #:lo12:.LANCHOR184] 11514 bl free 11515.L1521: 11516 mov w0, w19 11517 ldp x19, x20, [sp, 16] 11518 ldp x21, x22, [sp, 32] 11519 ldp x23, x24, [sp, 48] 11520 ldp x25, x26, [sp, 64] 11521 ldp x27, x28, [sp, 80] 11522 ldp x29, x30, [sp], 224 11523 ret 11524.L1523: 11525 mov w21, w1 11526 mov x22, x2 11527 cmp w0, 64 11528 bne .L1554 11529 adrp x20, .LANCHOR183 11530 mov w0, 262144 11531 bl ftl_malloc 11532 str x0, [x20, #:lo12:.LANCHOR183] 11533 mov w0, 262144 11534 bl ftl_malloc 11535 mov x1, x0 11536 adrp x0, .LANCHOR184 11537 str x1, [x0, #:lo12:.LANCHOR184] 11538 ldr x0, [x20, #:lo12:.LANCHOR183] 11539 cbz x0, .L1555 11540 cbz x1, .L1555 11541 mov w1, 1 11542 mov w2, 262144 11543 str w1, [x24, #:lo12:.LANCHOR182] 11544 mov w1, 0 11545 bl ftl_memset 11546.L1554: 11547 ldr w0, [x24, #:lo12:.LANCHOR182] 11548 cbz w0, .L1589 11549 adrp x0, .LANCHOR183 11550 cmp w19, 63 11551 ldr x1, [x0, #:lo12:.LANCHOR183] 11552 bhi .L1557 11553 mov w0, 64 11554 sub w19, w0, w19 11555 sub w21, w21, w19 11556 ubfiz x19, x19, 9, 25 11557 add x22, x22, x19 11558 mov x20, x1 11559.L1558: 11560 cmp w25, 575 11561 bls .L1559 11562 sub w21, w21, w23 11563 sub w21, w21, #446 11564.L1559: 11565 mov w4, w21 11566 mov x3, x20 11567 mov w2, 262144 11568 adrp x0, .LC52 11569 add x0, x0, :lo12:.LC52 11570 bl printf 11571 lsl w2, w21, 9 11572 mov x1, x22 11573 mov x0, x20 11574 bl ftl_memcpy 11575 b .L1589 11576.L1555: 11577 adrp x1, .LANCHOR185 11578 adrp x0, .LC51 11579 add x1, x1, :lo12:.LANCHOR185 11580 add x0, x0, :lo12:.LC51 11581 bl printf 11582 b .L1554 11583.L1557: 11584 lsl w20, w19, 7 11585 sub w20, w20, #8192 11586 add x20, x1, x20, lsl 2 11587 b .L1558 11588 .size FtlWriteToIDB, .-FtlWriteToIDB 11589 .section .text.sftl_write,"ax",@progbits 11590 .align 2 11591 .global sftl_write 11592 .type sftl_write, %function 11593sftl_write: 11594 stp x29, x30, [sp, -48]! 11595 add x29, sp, 0 11596 stp x19, x20, [sp, 16] 11597 mov w20, w1 11598 mov w19, w0 11599 str x21, [sp, 32] 11600 mov x21, x2 11601 bl FtlWriteToIDB 11602 mov x3, x21 11603 mov w2, w20 11604 mov w1, w19 11605 ldr x21, [sp, 32] 11606 ldp x19, x20, [sp, 16] 11607 mov w0, 0 11608 ldp x29, x30, [sp], 48 11609 b FtlWrite 11610 .size sftl_write, .-sftl_write 11611 .global g_nand_ops 11612 .global g_nand_phy_info 11613 .global gc_ink_free_return_value 11614 .global check_vpc_table 11615 .global FtlUpdateVaildLpnCount 11616 .global g_ect_tbl_power_up_flush 11617 .global power_up_flag 11618 .global low_format_en 11619 .global gFtlInitStatus 11620 .global DeviceCapacity 11621 .global g_power_lost_recovery_flag 11622 .global c_mlc_erase_count_value 11623 .global g_recovery_ppa_tbl 11624 .global g_recovery_page_min_ver 11625 .global g_recovery_page_num 11626 .global sftl_nand_check_spare_buf 11627 .global sftl_temp_buf 11628 .global sftl_nand_check_buf 11629 .global g_cur_erase_blk 11630 .global g_gc_skip_write_count 11631 .global g_gc_head_data_block_count 11632 .global g_gc_head_data_block 11633 .global g_ftl_nand_free_count 11634 .global g_in_swl_replace 11635 .global g_in_gc_progress 11636 .global g_max_erase_count 11637 .global g_totle_sys_slc_erase_count 11638 .global g_totle_slc_erase_count 11639 .global g_min_erase_count 11640 .global g_totle_avg_erase_count 11641 .global g_totle_mlc_erase_count 11642 .global g_totle_l2p_write_count 11643 .global g_totle_cache_write_count 11644 .global g_tmp_data_superblock_id 11645 .global g_totle_read_page_count 11646 .global g_totle_discard_page_count 11647 .global g_totle_read_sector 11648 .global g_totle_write_sector 11649 .global g_totle_write_page_count 11650 .global g_totle_gc_page_count 11651 .global g_gc_blk_index 11652 .global g_gc_merge_free_blk_threshold 11653 .global g_gc_free_blk_threshold 11654 .global g_gc_bad_block_temp_tbl 11655 .global g_gc_bad_block_gc_index 11656 .global g_gc_bad_block_temp_num 11657 .global g_gc_next_blk_1 11658 .global g_gc_next_blk 11659 .global g_gc_cur_blk_max_valid_pages 11660 .global g_gc_cur_blk_valid_pages 11661 .global g_gc_page_offset 11662 .global g_gc_blk_num 11663 .global p_gc_blk_tbl 11664 .global p_gc_page_info 11665 .global g_sys_ext_data 11666 .global g_sys_save_data 11667 .global gp_last_act_superblock 11668 .global g_gc_superblock 11669 .global g_gc_temp_superblock 11670 .global g_buffer_superblock 11671 .global g_active_superblock 11672 .global g_num_data_superblocks 11673 .global g_num_free_superblocks 11674 .global p_data_block_list_tail 11675 .global p_data_block_list_head 11676 .global p_free_data_block_list_head 11677 .global p_data_block_list_table 11678 .global g_l2p_last_update_region_id 11679 .global p_l2p_map_buf 11680 .global p_l2p_ram_map 11681 .global g_totle_vendor_block 11682 .global p_vendor_region_ppn_table 11683 .global p_vendor_block_ver_table 11684 .global p_vendor_block_valid_page_count 11685 .global p_vendor_block_table 11686 .global g_totle_map_block 11687 .global p_map_region_ppn_table 11688 .global p_map_block_ver_table 11689 .global p_map_block_valid_page_count 11690 .global p_map_block_table 11691 .global p_blk_mode_table 11692 .global p_valid_page_count_check_table 11693 .global p_valid_page_count_table 11694 .global g_totle_swl_count 11695 .global p_swl_mul_table 11696 .global p_erase_count_table 11697 .global g_ect_tbl_info_size 11698 .global gp_ect_tbl_info 11699 .global g_gc_num_req 11700 .global c_gc_page_buf_num 11701 .global gp_gc_page_buf_info 11702 .global p_gc_data_buf 11703 .global p_gc_spare_buf 11704 .global p_io_spare_buf 11705 .global p_io_data_buf_1 11706 .global p_io_data_buf_0 11707 .global p_sys_spare_buf 11708 .global p_vendor_data_buf 11709 .global p_sys_data_buf_1 11710 .global p_sys_data_buf 11711 .global p_plane_order_table 11712 .global req_gc_dst 11713 .global req_gc 11714 .global req_erase 11715 .global req_prgm 11716 .global req_read 11717 .global req_sys 11718 .global gVendorBlkInfo 11719 .global gL2pMapInfo 11720 .global gSysFreeQueue 11721 .global gSysInfo 11722 .global gBbtInfo 11723 .global g_MaxLbn 11724 .global g_VaildLpn 11725 .global g_MaxLpn 11726 .global g_MaxLbaSector 11727 .global g_GlobalDataVersion 11728 .global g_GlobalSysVersion 11729 .global ftl_gc_temp_power_lost_recovery_flag 11730 .global c_ftl_nand_max_data_blks 11731 .global c_ftl_nand_data_op_blks_per_plane 11732 .global c_ftl_nand_data_blks_per_plane 11733 .global c_ftl_nand_max_sys_blks 11734 .global c_ftl_nand_init_sys_blks_per_plane 11735 .global c_ftl_nand_sys_blks_per_plane 11736 .global c_ftl_vendor_part_size 11737 .global c_ftl_nand_max_vendor_blks 11738 .global c_ftl_nand_max_map_blks 11739 .global c_ftl_nand_map_blks_per_plane 11740 .global c_ftl_nand_vendor_region_num 11741 .global c_ftl_nand_l2pmap_ram_region_num 11742 .global c_ftl_nand_map_region_num 11743 .global c_ftl_nand_totle_phy_blks 11744 .global c_ftl_nand_reserved_blks 11745 .global c_ftl_nand_byte_pre_oob 11746 .global c_ftl_nand_byte_pre_page 11747 .global c_ftl_nand_sec_pre_page_shift 11748 .global c_ftl_nand_sec_pre_page 11749 .global c_ftl_nand_page_pre_super_blk 11750 .global c_ftl_nand_page_pre_slc_blk 11751 .global c_ftl_nand_page_pre_blk 11752 .global c_ftl_nand_bbm_buf_size 11753 .global c_ftl_nand_ext_blk_pre_plane 11754 .global c_ftl_nand_blk_pre_plane 11755 .global c_ftl_nand_planes_num 11756 .global c_ftl_nand_blks_per_die_shift 11757 .global c_ftl_nand_blks_per_die 11758 .global c_ftl_nand_planes_per_die 11759 .global c_ftl_nand_die_num 11760 .global c_ftl_nand_type 11761 .section .bss.DeviceCapacity,"aw",@nobits 11762 .align 2 11763 .set .LANCHOR26,. + 0 11764 .type DeviceCapacity, %object 11765 .size DeviceCapacity, 4 11766DeviceCapacity: 11767 .zero 4 11768 .section .bss.FtlUpdateVaildLpnCount,"aw",@nobits 11769 .align 1 11770 .set .LANCHOR58,. + 0 11771 .type FtlUpdateVaildLpnCount, %object 11772 .size FtlUpdateVaildLpnCount, 2 11773FtlUpdateVaildLpnCount: 11774 .zero 2 11775 .section .bss.c_ftl_nand_bbm_buf_size,"aw",@nobits 11776 .align 1 11777 .set .LANCHOR127,. + 0 11778 .type c_ftl_nand_bbm_buf_size, %object 11779 .size c_ftl_nand_bbm_buf_size, 2 11780c_ftl_nand_bbm_buf_size: 11781 .zero 2 11782 .section .bss.c_ftl_nand_blk_pre_plane,"aw",@nobits 11783 .align 1 11784 .set .LANCHOR6,. + 0 11785 .type c_ftl_nand_blk_pre_plane, %object 11786 .size c_ftl_nand_blk_pre_plane, 2 11787c_ftl_nand_blk_pre_plane: 11788 .zero 2 11789 .section .bss.c_ftl_nand_blks_per_die,"aw",@nobits 11790 .align 1 11791 .set .LANCHOR17,. + 0 11792 .type c_ftl_nand_blks_per_die, %object 11793 .size c_ftl_nand_blks_per_die, 2 11794c_ftl_nand_blks_per_die: 11795 .zero 2 11796 .section .bss.c_ftl_nand_blks_per_die_shift,"aw",@nobits 11797 .align 1 11798 .set .LANCHOR18,. + 0 11799 .type c_ftl_nand_blks_per_die_shift, %object 11800 .size c_ftl_nand_blks_per_die_shift, 2 11801c_ftl_nand_blks_per_die_shift: 11802 .zero 2 11803 .section .bss.c_ftl_nand_byte_pre_oob,"aw",@nobits 11804 .align 1 11805 .set .LANCHOR24,. + 0 11806 .type c_ftl_nand_byte_pre_oob, %object 11807 .size c_ftl_nand_byte_pre_oob, 2 11808c_ftl_nand_byte_pre_oob: 11809 .zero 2 11810 .section .bss.c_ftl_nand_byte_pre_page,"aw",@nobits 11811 .align 1 11812 .set .LANCHOR23,. + 0 11813 .type c_ftl_nand_byte_pre_page, %object 11814 .size c_ftl_nand_byte_pre_page, 2 11815c_ftl_nand_byte_pre_page: 11816 .zero 2 11817 .section .bss.c_ftl_nand_data_blks_per_plane,"aw",@nobits 11818 .align 1 11819 .set .LANCHOR5,. + 0 11820 .type c_ftl_nand_data_blks_per_plane, %object 11821 .size c_ftl_nand_data_blks_per_plane, 2 11822c_ftl_nand_data_blks_per_plane: 11823 .zero 2 11824 .section .bss.c_ftl_nand_data_op_blks_per_plane,"aw",@nobits 11825 .align 1 11826 .set .LANCHOR171,. + 0 11827 .type c_ftl_nand_data_op_blks_per_plane, %object 11828 .size c_ftl_nand_data_op_blks_per_plane, 2 11829c_ftl_nand_data_op_blks_per_plane: 11830 .zero 2 11831 .section .bss.c_ftl_nand_die_num,"aw",@nobits 11832 .align 1 11833 .set .LANCHOR10,. + 0 11834 .type c_ftl_nand_die_num, %object 11835 .size c_ftl_nand_die_num, 2 11836c_ftl_nand_die_num: 11837 .zero 2 11838 .section .bss.c_ftl_nand_ext_blk_pre_plane,"aw",@nobits 11839 .align 1 11840 .set .LANCHOR15,. + 0 11841 .type c_ftl_nand_ext_blk_pre_plane, %object 11842 .size c_ftl_nand_ext_blk_pre_plane, 2 11843c_ftl_nand_ext_blk_pre_plane: 11844 .zero 2 11845 .section .bss.c_ftl_nand_init_sys_blks_per_plane,"aw",@nobits 11846 .align 2 11847 .set .LANCHOR31,. + 0 11848 .type c_ftl_nand_init_sys_blks_per_plane, %object 11849 .size c_ftl_nand_init_sys_blks_per_plane, 4 11850c_ftl_nand_init_sys_blks_per_plane: 11851 .zero 4 11852 .section .bss.c_ftl_nand_l2pmap_ram_region_num,"aw",@nobits 11853 .align 1 11854 .set .LANCHOR33,. + 0 11855 .type c_ftl_nand_l2pmap_ram_region_num, %object 11856 .size c_ftl_nand_l2pmap_ram_region_num, 2 11857c_ftl_nand_l2pmap_ram_region_num: 11858 .zero 2 11859 .section .bss.c_ftl_nand_map_blks_per_plane,"aw",@nobits 11860 .align 1 11861 .set .LANCHOR29,. + 0 11862 .type c_ftl_nand_map_blks_per_plane, %object 11863 .size c_ftl_nand_map_blks_per_plane, 2 11864c_ftl_nand_map_blks_per_plane: 11865 .zero 2 11866 .section .bss.c_ftl_nand_map_region_num,"aw",@nobits 11867 .align 1 11868 .set .LANCHOR32,. + 0 11869 .type c_ftl_nand_map_region_num, %object 11870 .size c_ftl_nand_map_region_num, 2 11871c_ftl_nand_map_region_num: 11872 .zero 2 11873 .section .bss.c_ftl_nand_max_data_blks,"aw",@nobits 11874 .align 2 11875 .set .LANCHOR7,. + 0 11876 .type c_ftl_nand_max_data_blks, %object 11877 .size c_ftl_nand_max_data_blks, 4 11878c_ftl_nand_max_data_blks: 11879 .zero 4 11880 .section .bss.c_ftl_nand_max_map_blks,"aw",@nobits 11881 .align 2 11882 .set .LANCHOR30,. + 0 11883 .type c_ftl_nand_max_map_blks, %object 11884 .size c_ftl_nand_max_map_blks, 4 11885c_ftl_nand_max_map_blks: 11886 .zero 4 11887 .section .bss.c_ftl_nand_max_sys_blks,"aw",@nobits 11888 .align 2 11889 .set .LANCHOR4,. + 0 11890 .type c_ftl_nand_max_sys_blks, %object 11891 .size c_ftl_nand_max_sys_blks, 4 11892c_ftl_nand_max_sys_blks: 11893 .zero 4 11894 .section .bss.c_ftl_nand_max_vendor_blks,"aw",@nobits 11895 .align 1 11896 .set .LANCHOR27,. + 0 11897 .type c_ftl_nand_max_vendor_blks, %object 11898 .size c_ftl_nand_max_vendor_blks, 2 11899c_ftl_nand_max_vendor_blks: 11900 .zero 2 11901 .section .bss.c_ftl_nand_page_pre_blk,"aw",@nobits 11902 .align 1 11903 .set .LANCHOR19,. + 0 11904 .type c_ftl_nand_page_pre_blk, %object 11905 .size c_ftl_nand_page_pre_blk, 2 11906c_ftl_nand_page_pre_blk: 11907 .zero 2 11908 .section .bss.c_ftl_nand_page_pre_slc_blk,"aw",@nobits 11909 .align 1 11910 .set .LANCHOR20,. + 0 11911 .type c_ftl_nand_page_pre_slc_blk, %object 11912 .size c_ftl_nand_page_pre_slc_blk, 2 11913c_ftl_nand_page_pre_slc_blk: 11914 .zero 2 11915 .section .bss.c_ftl_nand_page_pre_super_blk,"aw",@nobits 11916 .align 1 11917 .set .LANCHOR21,. + 0 11918 .type c_ftl_nand_page_pre_super_blk, %object 11919 .size c_ftl_nand_page_pre_super_blk, 2 11920c_ftl_nand_page_pre_super_blk: 11921 .zero 2 11922 .section .bss.c_ftl_nand_planes_num,"aw",@nobits 11923 .align 1 11924 .set .LANCHOR3,. + 0 11925 .type c_ftl_nand_planes_num, %object 11926 .size c_ftl_nand_planes_num, 2 11927c_ftl_nand_planes_num: 11928 .zero 2 11929 .section .bss.c_ftl_nand_planes_per_die,"aw",@nobits 11930 .align 1 11931 .set .LANCHOR11,. + 0 11932 .type c_ftl_nand_planes_per_die, %object 11933 .size c_ftl_nand_planes_per_die, 2 11934c_ftl_nand_planes_per_die: 11935 .zero 2 11936 .section .bss.c_ftl_nand_reserved_blks,"aw",@nobits 11937 .align 1 11938 .set .LANCHOR25,. + 0 11939 .type c_ftl_nand_reserved_blks, %object 11940 .size c_ftl_nand_reserved_blks, 2 11941c_ftl_nand_reserved_blks: 11942 .zero 2 11943 .section .bss.c_ftl_nand_sec_pre_page,"aw",@nobits 11944 .align 1 11945 .set .LANCHOR12,. + 0 11946 .type c_ftl_nand_sec_pre_page, %object 11947 .size c_ftl_nand_sec_pre_page, 2 11948c_ftl_nand_sec_pre_page: 11949 .zero 2 11950 .section .bss.c_ftl_nand_sec_pre_page_shift,"aw",@nobits 11951 .align 1 11952 .set .LANCHOR22,. + 0 11953 .type c_ftl_nand_sec_pre_page_shift, %object 11954 .size c_ftl_nand_sec_pre_page_shift, 2 11955c_ftl_nand_sec_pre_page_shift: 11956 .zero 2 11957 .section .bss.c_ftl_nand_sys_blks_per_plane,"aw",@nobits 11958 .align 2 11959 .set .LANCHOR2,. + 0 11960 .type c_ftl_nand_sys_blks_per_plane, %object 11961 .size c_ftl_nand_sys_blks_per_plane, 4 11962c_ftl_nand_sys_blks_per_plane: 11963 .zero 4 11964 .section .bss.c_ftl_nand_totle_phy_blks,"aw",@nobits 11965 .align 2 11966 .set .LANCHOR8,. + 0 11967 .type c_ftl_nand_totle_phy_blks, %object 11968 .size c_ftl_nand_totle_phy_blks, 4 11969c_ftl_nand_totle_phy_blks: 11970 .zero 4 11971 .section .bss.c_ftl_nand_type,"aw",@nobits 11972 .align 1 11973 .set .LANCHOR9,. + 0 11974 .type c_ftl_nand_type, %object 11975 .size c_ftl_nand_type, 2 11976c_ftl_nand_type: 11977 .zero 2 11978 .section .bss.c_ftl_nand_vendor_region_num,"aw",@nobits 11979 .align 1 11980 .set .LANCHOR28,. + 0 11981 .type c_ftl_nand_vendor_region_num, %object 11982 .size c_ftl_nand_vendor_region_num, 2 11983c_ftl_nand_vendor_region_num: 11984 .zero 2 11985 .section .bss.c_ftl_vendor_part_size,"aw",@nobits 11986 .align 1 11987 .set .LANCHOR16,. + 0 11988 .type c_ftl_vendor_part_size, %object 11989 .size c_ftl_vendor_part_size, 2 11990c_ftl_vendor_part_size: 11991 .zero 2 11992 .section .bss.c_gc_page_buf_num,"aw",@nobits 11993 .align 2 11994 .set .LANCHOR67,. + 0 11995 .type c_gc_page_buf_num, %object 11996 .size c_gc_page_buf_num, 4 11997c_gc_page_buf_num: 11998 .zero 4 11999 .section .bss.c_mlc_erase_count_value,"aw",@nobits 12000 .align 1 12001 .set .LANCHOR14,. + 0 12002 .type c_mlc_erase_count_value, %object 12003 .size c_mlc_erase_count_value, 2 12004c_mlc_erase_count_value: 12005 .zero 2 12006 .section .bss.check_vpc_table,"aw",@nobits 12007 .align 3 12008 .type check_vpc_table, %object 12009 .size check_vpc_table, 16384 12010check_vpc_table: 12011 .zero 16384 12012 .section .bss.ftl_gc_temp_power_lost_recovery_flag,"aw",@nobits 12013 .align 2 12014 .set .LANCHOR133,. + 0 12015 .type ftl_gc_temp_power_lost_recovery_flag, %object 12016 .size ftl_gc_temp_power_lost_recovery_flag, 4 12017ftl_gc_temp_power_lost_recovery_flag: 12018 .zero 4 12019 .section .bss.gBbtInfo,"aw",@nobits 12020 .align 3 12021 .set .LANCHOR37,. + 0 12022 .type gBbtInfo, %object 12023 .size gBbtInfo, 96 12024gBbtInfo: 12025 .zero 96 12026 .section .bss.gL2pMapInfo,"aw",@nobits 12027 .align 3 12028 .set .LANCHOR129,. + 0 12029 .type gL2pMapInfo, %object 12030 .size gL2pMapInfo, 64 12031gL2pMapInfo: 12032 .zero 64 12033 .section .bss.gSysFreeQueue,"aw",@nobits 12034 .align 3 12035 .set .LANCHOR38,. + 0 12036 .type gSysFreeQueue, %object 12037 .size gSysFreeQueue, 2056 12038gSysFreeQueue: 12039 .zero 2056 12040 .section .bss.gSysInfo,"aw",@nobits 12041 .align 3 12042 .set .LANCHOR139,. + 0 12043 .type gSysInfo, %object 12044 .size gSysInfo, 16 12045gSysInfo: 12046 .zero 16 12047 .section .bss.gVendorBlkInfo,"aw",@nobits 12048 .align 3 12049 .set .LANCHOR161,. + 0 12050 .type gVendorBlkInfo, %object 12051 .size gVendorBlkInfo, 64 12052gVendorBlkInfo: 12053 .zero 64 12054 .section .bss.g_GlobalDataVersion,"aw",@nobits 12055 .align 2 12056 .set .LANCHOR83,. + 0 12057 .type g_GlobalDataVersion, %object 12058 .size g_GlobalDataVersion, 4 12059g_GlobalDataVersion: 12060 .zero 4 12061 .section .bss.g_GlobalSysVersion,"aw",@nobits 12062 .align 2 12063 .set .LANCHOR82,. + 0 12064 .type g_GlobalSysVersion, %object 12065 .size g_GlobalSysVersion, 4 12066g_GlobalSysVersion: 12067 .zero 4 12068 .section .bss.g_MaxLbaSector,"aw",@nobits 12069 .align 2 12070 .set .LANCHOR34,. + 0 12071 .type g_MaxLbaSector, %object 12072 .size g_MaxLbaSector, 4 12073g_MaxLbaSector: 12074 .zero 4 12075 .section .bss.g_MaxLbn,"aw",@nobits 12076 .align 2 12077 .set .LANCHOR179,. + 0 12078 .type g_MaxLbn, %object 12079 .size g_MaxLbn, 4 12080g_MaxLbn: 12081 .zero 4 12082 .section .bss.g_MaxLpn,"aw",@nobits 12083 .align 2 12084 .set .LANCHOR152,. + 0 12085 .type g_MaxLpn, %object 12086 .size g_MaxLpn, 4 12087g_MaxLpn: 12088 .zero 4 12089 .section .bss.g_VaildLpn,"aw",@nobits 12090 .align 2 12091 .set .LANCHOR59,. + 0 12092 .type g_VaildLpn, %object 12093 .size g_VaildLpn, 4 12094g_VaildLpn: 12095 .zero 4 12096 .section .bss.g_active_superblock,"aw",@nobits 12097 .align 3 12098 .set .LANCHOR51,. + 0 12099 .type g_active_superblock, %object 12100 .size g_active_superblock, 48 12101g_active_superblock: 12102 .zero 48 12103 .section .bss.g_buffer_superblock,"aw",@nobits 12104 .align 3 12105 .set .LANCHOR52,. + 0 12106 .type g_buffer_superblock, %object 12107 .size g_buffer_superblock, 48 12108g_buffer_superblock: 12109 .zero 48 12110 .section .bss.g_cur_erase_blk,"aw",@nobits 12111 .align 2 12112 .set .LANCHOR99,. + 0 12113 .type g_cur_erase_blk, %object 12114 .size g_cur_erase_blk, 4 12115g_cur_erase_blk: 12116 .zero 4 12117 .section .bss.g_ect_tbl_info_size,"aw",@nobits 12118 .align 1 12119 .set .LANCHOR116,. + 0 12120 .type g_ect_tbl_info_size, %object 12121 .size g_ect_tbl_info_size, 2 12122g_ect_tbl_info_size: 12123 .zero 2 12124 .section .bss.g_ect_tbl_power_up_flush,"aw",@nobits 12125 .align 1 12126 .set .LANCHOR164,. + 0 12127 .type g_ect_tbl_power_up_flush, %object 12128 .size g_ect_tbl_power_up_flush, 2 12129g_ect_tbl_power_up_flush: 12130 .zero 2 12131 .section .bss.g_ftl_nand_free_count,"aw",@nobits 12132 .align 2 12133 .set .LANCHOR176,. + 0 12134 .type g_ftl_nand_free_count, %object 12135 .size g_ftl_nand_free_count, 4 12136g_ftl_nand_free_count: 12137 .zero 4 12138 .section .bss.g_gc_bad_block_gc_index,"aw",@nobits 12139 .align 1 12140 .set .LANCHOR76,. + 0 12141 .type g_gc_bad_block_gc_index, %object 12142 .size g_gc_bad_block_gc_index, 2 12143g_gc_bad_block_gc_index: 12144 .zero 2 12145 .section .bss.g_gc_bad_block_temp_num,"aw",@nobits 12146 .align 1 12147 .set .LANCHOR74,. + 0 12148 .type g_gc_bad_block_temp_num, %object 12149 .size g_gc_bad_block_temp_num, 2 12150g_gc_bad_block_temp_num: 12151 .zero 2 12152 .section .bss.g_gc_bad_block_temp_tbl,"aw",@nobits 12153 .align 3 12154 .set .LANCHOR75,. + 0 12155 .type g_gc_bad_block_temp_tbl, %object 12156 .size g_gc_bad_block_temp_tbl, 34 12157g_gc_bad_block_temp_tbl: 12158 .zero 34 12159 .section .bss.g_gc_blk_index,"aw",@nobits 12160 .align 1 12161 .set .LANCHOR102,. + 0 12162 .type g_gc_blk_index, %object 12163 .size g_gc_blk_index, 2 12164g_gc_blk_index: 12165 .zero 2 12166 .section .bss.g_gc_blk_num,"aw",@nobits 12167 .align 1 12168 .set .LANCHOR68,. + 0 12169 .type g_gc_blk_num, %object 12170 .size g_gc_blk_num, 2 12171g_gc_blk_num: 12172 .zero 2 12173 .section .bss.g_gc_cur_blk_max_valid_pages,"aw",@nobits 12174 .align 1 12175 .set .LANCHOR174,. + 0 12176 .type g_gc_cur_blk_max_valid_pages, %object 12177 .size g_gc_cur_blk_max_valid_pages, 2 12178g_gc_cur_blk_max_valid_pages: 12179 .zero 2 12180 .section .bss.g_gc_cur_blk_valid_pages,"aw",@nobits 12181 .align 1 12182 .set .LANCHOR173,. + 0 12183 .type g_gc_cur_blk_valid_pages, %object 12184 .size g_gc_cur_blk_valid_pages, 2 12185g_gc_cur_blk_valid_pages: 12186 .zero 2 12187 .section .bss.g_gc_free_blk_threshold,"aw",@nobits 12188 .align 1 12189 .set .LANCHOR100,. + 0 12190 .type g_gc_free_blk_threshold, %object 12191 .size g_gc_free_blk_threshold, 2 12192g_gc_free_blk_threshold: 12193 .zero 2 12194 .section .bss.g_gc_head_data_block,"aw",@nobits 12195 .align 2 12196 .set .LANCHOR96,. + 0 12197 .type g_gc_head_data_block, %object 12198 .size g_gc_head_data_block, 4 12199g_gc_head_data_block: 12200 .zero 4 12201 .section .bss.g_gc_head_data_block_count,"aw",@nobits 12202 .align 2 12203 .set .LANCHOR97,. + 0 12204 .type g_gc_head_data_block_count, %object 12205 .size g_gc_head_data_block_count, 4 12206g_gc_head_data_block_count: 12207 .zero 4 12208 .section .bss.g_gc_merge_free_blk_threshold,"aw",@nobits 12209 .align 1 12210 .set .LANCHOR101,. + 0 12211 .type g_gc_merge_free_blk_threshold, %object 12212 .size g_gc_merge_free_blk_threshold, 2 12213g_gc_merge_free_blk_threshold: 12214 .zero 2 12215 .section .bss.g_gc_next_blk,"aw",@nobits 12216 .align 1 12217 .set .LANCHOR72,. + 0 12218 .type g_gc_next_blk, %object 12219 .size g_gc_next_blk, 2 12220g_gc_next_blk: 12221 .zero 2 12222 .section .bss.g_gc_next_blk_1,"aw",@nobits 12223 .align 1 12224 .set .LANCHOR73,. + 0 12225 .type g_gc_next_blk_1, %object 12226 .size g_gc_next_blk_1, 2 12227g_gc_next_blk_1: 12228 .zero 2 12229 .section .bss.g_gc_num_req,"aw",@nobits 12230 .align 2 12231 .set .LANCHOR62,. + 0 12232 .type g_gc_num_req, %object 12233 .size g_gc_num_req, 4 12234g_gc_num_req: 12235 .zero 4 12236 .section .bss.g_gc_page_offset,"aw",@nobits 12237 .align 1 12238 .set .LANCHOR70,. + 0 12239 .type g_gc_page_offset, %object 12240 .size g_gc_page_offset, 2 12241g_gc_page_offset: 12242 .zero 2 12243 .section .bss.g_gc_skip_write_count,"aw",@nobits 12244 .align 2 12245 .set .LANCHOR98,. + 0 12246 .type g_gc_skip_write_count, %object 12247 .size g_gc_skip_write_count, 4 12248g_gc_skip_write_count: 12249 .zero 4 12250 .section .bss.g_gc_superblock,"aw",@nobits 12251 .align 3 12252 .set .LANCHOR145,. + 0 12253 .type g_gc_superblock, %object 12254 .size g_gc_superblock, 48 12255g_gc_superblock: 12256 .zero 48 12257 .section .bss.g_gc_temp_superblock,"aw",@nobits 12258 .align 3 12259 .set .LANCHOR53,. + 0 12260 .type g_gc_temp_superblock, %object 12261 .size g_gc_temp_superblock, 48 12262g_gc_temp_superblock: 12263 .zero 48 12264 .section .bss.g_in_gc_progress,"aw",@nobits 12265 .align 2 12266 .set .LANCHOR94,. + 0 12267 .type g_in_gc_progress, %object 12268 .size g_in_gc_progress, 4 12269g_in_gc_progress: 12270 .zero 4 12271 .section .bss.g_in_swl_replace,"aw",@nobits 12272 .align 2 12273 .set .LANCHOR95,. + 0 12274 .type g_in_swl_replace, %object 12275 .size g_in_swl_replace, 4 12276g_in_swl_replace: 12277 .zero 4 12278 .section .bss.g_l2p_last_update_region_id,"aw",@nobits 12279 .align 1 12280 .set .LANCHOR56,. + 0 12281 .type g_l2p_last_update_region_id, %object 12282 .size g_l2p_last_update_region_id, 2 12283g_l2p_last_update_region_id: 12284 .zero 2 12285 .section .bss.g_max_erase_count,"aw",@nobits 12286 .align 2 12287 .set .LANCHOR92,. + 0 12288 .type g_max_erase_count, %object 12289 .size g_max_erase_count, 4 12290g_max_erase_count: 12291 .zero 4 12292 .section .bss.g_min_erase_count,"aw",@nobits 12293 .align 2 12294 .set .LANCHOR93,. + 0 12295 .type g_min_erase_count, %object 12296 .size g_min_erase_count, 4 12297g_min_erase_count: 12298 .zero 4 12299 .section .bss.g_nand_ops,"aw",@nobits 12300 .align 3 12301 .set .LANCHOR78,. + 0 12302 .type g_nand_ops, %object 12303 .size g_nand_ops, 48 12304g_nand_ops: 12305 .zero 48 12306 .section .bss.g_nand_phy_info,"aw",@nobits 12307 .align 3 12308 .set .LANCHOR0,. + 0 12309 .type g_nand_phy_info, %object 12310 .size g_nand_phy_info, 24 12311g_nand_phy_info: 12312 .zero 24 12313 .section .bss.g_num_data_superblocks,"aw",@nobits 12314 .align 1 12315 .set .LANCHOR44,. + 0 12316 .type g_num_data_superblocks, %object 12317 .size g_num_data_superblocks, 2 12318g_num_data_superblocks: 12319 .zero 2 12320 .section .bss.g_num_free_superblocks,"aw",@nobits 12321 .align 1 12322 .set .LANCHOR48,. + 0 12323 .type g_num_free_superblocks, %object 12324 .size g_num_free_superblocks, 2 12325g_num_free_superblocks: 12326 .zero 2 12327 .section .bss.g_power_lost_recovery_flag,"aw",@nobits 12328 .align 1 12329 .set .LANCHOR156,. + 0 12330 .type g_power_lost_recovery_flag, %object 12331 .size g_power_lost_recovery_flag, 2 12332g_power_lost_recovery_flag: 12333 .zero 2 12334 .section .bss.g_recovery_page_min_ver,"aw",@nobits 12335 .align 2 12336 .set .LANCHOR134,. + 0 12337 .type g_recovery_page_min_ver, %object 12338 .size g_recovery_page_min_ver, 4 12339g_recovery_page_min_ver: 12340 .zero 4 12341 .section .bss.g_recovery_page_num,"aw",@nobits 12342 .align 2 12343 .set .LANCHOR157,. + 0 12344 .type g_recovery_page_num, %object 12345 .size g_recovery_page_num, 4 12346g_recovery_page_num: 12347 .zero 4 12348 .section .bss.g_recovery_ppa_tbl,"aw",@nobits 12349 .align 3 12350 .set .LANCHOR158,. + 0 12351 .type g_recovery_ppa_tbl, %object 12352 .size g_recovery_ppa_tbl, 128 12353g_recovery_ppa_tbl: 12354 .zero 128 12355 .section .bss.g_sys_ext_data,"aw",@nobits 12356 .align 3 12357 .set .LANCHOR135,. + 0 12358 .type g_sys_ext_data, %object 12359 .size g_sys_ext_data, 512 12360g_sys_ext_data: 12361 .zero 512 12362 .section .bss.g_sys_save_data,"aw",@nobits 12363 .align 3 12364 .set .LANCHOR39,. + 0 12365 .type g_sys_save_data, %object 12366 .size g_sys_save_data, 48 12367g_sys_save_data: 12368 .zero 48 12369 .section .bss.g_tmp_data_superblock_id,"aw",@nobits 12370 .align 1 12371 .set .LANCHOR131,. + 0 12372 .type g_tmp_data_superblock_id, %object 12373 .size g_tmp_data_superblock_id, 2 12374g_tmp_data_superblock_id: 12375 .zero 2 12376 .section .bss.g_totle_avg_erase_count,"aw",@nobits 12377 .align 2 12378 .set .LANCHOR143,. + 0 12379 .type g_totle_avg_erase_count, %object 12380 .size g_totle_avg_erase_count, 4 12381g_totle_avg_erase_count: 12382 .zero 4 12383 .section .bss.g_totle_cache_write_count,"aw",@nobits 12384 .align 2 12385 .set .LANCHOR87,. + 0 12386 .type g_totle_cache_write_count, %object 12387 .size g_totle_cache_write_count, 4 12388g_totle_cache_write_count: 12389 .zero 4 12390 .section .bss.g_totle_discard_page_count,"aw",@nobits 12391 .align 2 12392 .set .LANCHOR86,. + 0 12393 .type g_totle_discard_page_count, %object 12394 .size g_totle_discard_page_count, 4 12395g_totle_discard_page_count: 12396 .zero 4 12397 .section .bss.g_totle_gc_page_count,"aw",@nobits 12398 .align 2 12399 .set .LANCHOR84,. + 0 12400 .type g_totle_gc_page_count, %object 12401 .size g_totle_gc_page_count, 4 12402g_totle_gc_page_count: 12403 .zero 4 12404 .section .bss.g_totle_l2p_write_count,"aw",@nobits 12405 .align 2 12406 .set .LANCHOR88,. + 0 12407 .type g_totle_l2p_write_count, %object 12408 .size g_totle_l2p_write_count, 4 12409g_totle_l2p_write_count: 12410 .zero 4 12411 .section .bss.g_totle_map_block,"aw",@nobits 12412 .align 1 12413 .set .LANCHOR130,. + 0 12414 .type g_totle_map_block, %object 12415 .size g_totle_map_block, 2 12416g_totle_map_block: 12417 .zero 2 12418 .section .bss.g_totle_mlc_erase_count,"aw",@nobits 12419 .align 2 12420 .set .LANCHOR90,. + 0 12421 .type g_totle_mlc_erase_count, %object 12422 .size g_totle_mlc_erase_count, 4 12423g_totle_mlc_erase_count: 12424 .zero 4 12425 .section .bss.g_totle_read_page_count,"aw",@nobits 12426 .align 2 12427 .set .LANCHOR89,. + 0 12428 .type g_totle_read_page_count, %object 12429 .size g_totle_read_page_count, 4 12430g_totle_read_page_count: 12431 .zero 4 12432 .section .bss.g_totle_read_sector,"aw",@nobits 12433 .align 2 12434 .set .LANCHOR163,. + 0 12435 .type g_totle_read_sector, %object 12436 .size g_totle_read_sector, 4 12437g_totle_read_sector: 12438 .zero 4 12439 .section .bss.g_totle_slc_erase_count,"aw",@nobits 12440 .align 2 12441 .set .LANCHOR91,. + 0 12442 .type g_totle_slc_erase_count, %object 12443 .size g_totle_slc_erase_count, 4 12444g_totle_slc_erase_count: 12445 .zero 4 12446 .section .bss.g_totle_swl_count,"aw",@nobits 12447 .align 2 12448 .set .LANCHOR132,. + 0 12449 .type g_totle_swl_count, %object 12450 .size g_totle_swl_count, 4 12451g_totle_swl_count: 12452 .zero 4 12453 .section .bss.g_totle_sys_slc_erase_count,"aw",@nobits 12454 .align 2 12455 .set .LANCHOR80,. + 0 12456 .type g_totle_sys_slc_erase_count, %object 12457 .size g_totle_sys_slc_erase_count, 4 12458g_totle_sys_slc_erase_count: 12459 .zero 4 12460 .section .bss.g_totle_vendor_block,"aw",@nobits 12461 .align 1 12462 .set .LANCHOR35,. + 0 12463 .type g_totle_vendor_block, %object 12464 .size g_totle_vendor_block, 2 12465g_totle_vendor_block: 12466 .zero 2 12467 .section .bss.g_totle_write_page_count,"aw",@nobits 12468 .align 2 12469 .set .LANCHOR85,. + 0 12470 .type g_totle_write_page_count, %object 12471 .size g_totle_write_page_count, 4 12472g_totle_write_page_count: 12473 .zero 4 12474 .section .bss.g_totle_write_sector,"aw",@nobits 12475 .align 2 12476 .set .LANCHOR162,. + 0 12477 .type g_totle_write_sector, %object 12478 .size g_totle_write_sector, 4 12479g_totle_write_sector: 12480 .zero 4 12481 .section .bss.gc_discard_updated,"aw",@nobits 12482 .align 2 12483 .set .LANCHOR167,. + 0 12484 .type gc_discard_updated, %object 12485 .size gc_discard_updated, 4 12486gc_discard_updated: 12487 .zero 4 12488 .section .bss.gc_ink_free_return_value,"aw",@nobits 12489 .align 1 12490 .set .LANCHOR172,. + 0 12491 .type gc_ink_free_return_value, %object 12492 .size gc_ink_free_return_value, 2 12493gc_ink_free_return_value: 12494 .zero 2 12495 .section .bss.gp_ect_tbl_info,"aw",@nobits 12496 .align 3 12497 .set .LANCHOR118,. + 0 12498 .type gp_ect_tbl_info, %object 12499 .size gp_ect_tbl_info, 8 12500gp_ect_tbl_info: 12501 .zero 8 12502 .section .bss.gp_flash_check_buf,"aw",@nobits 12503 .align 3 12504 .set .LANCHOR184,. + 0 12505 .type gp_flash_check_buf, %object 12506 .size gp_flash_check_buf, 8 12507gp_flash_check_buf: 12508 .zero 8 12509 .section .bss.gp_gc_page_buf_info,"aw",@nobits 12510 .align 3 12511 .set .LANCHOR63,. + 0 12512 .type gp_gc_page_buf_info, %object 12513 .size gp_gc_page_buf_info, 8 12514gp_gc_page_buf_info: 12515 .zero 8 12516 .section .bss.gp_last_act_superblock,"aw",@nobits 12517 .align 3 12518 .type gp_last_act_superblock, %object 12519 .size gp_last_act_superblock, 8 12520gp_last_act_superblock: 12521 .zero 8 12522 .section .bss.idb_buf,"aw",@nobits 12523 .align 3 12524 .set .LANCHOR183,. + 0 12525 .type idb_buf, %object 12526 .size idb_buf, 8 12527idb_buf: 12528 .zero 8 12529 .section .bss.idb_need_write_back,"aw",@nobits 12530 .align 2 12531 .set .LANCHOR182,. + 0 12532 .type idb_need_write_back, %object 12533 .size idb_need_write_back, 4 12534idb_need_write_back: 12535 .zero 4 12536 .section .bss.low_format_en,"aw",@nobits 12537 .align 2 12538 .set .LANCHOR181,. + 0 12539 .type low_format_en, %object 12540 .size low_format_en, 4 12541low_format_en: 12542 .zero 4 12543 .section .bss.p_blk_mode_table,"aw",@nobits 12544 .align 3 12545 .set .LANCHOR1,. + 0 12546 .type p_blk_mode_table, %object 12547 .size p_blk_mode_table, 8 12548p_blk_mode_table: 12549 .zero 8 12550 .section .bss.p_data_block_list_head,"aw",@nobits 12551 .align 3 12552 .set .LANCHOR41,. + 0 12553 .type p_data_block_list_head, %object 12554 .size p_data_block_list_head, 8 12555p_data_block_list_head: 12556 .zero 8 12557 .section .bss.p_data_block_list_table,"aw",@nobits 12558 .align 3 12559 .set .LANCHOR40,. + 0 12560 .type p_data_block_list_table, %object 12561 .size p_data_block_list_table, 8 12562p_data_block_list_table: 12563 .zero 8 12564 .section .bss.p_data_block_list_tail,"aw",@nobits 12565 .align 3 12566 .set .LANCHOR43,. + 0 12567 .type p_data_block_list_tail, %object 12568 .size p_data_block_list_tail, 8 12569p_data_block_list_tail: 12570 .zero 8 12571 .section .bss.p_erase_count_table,"aw",@nobits 12572 .align 3 12573 .set .LANCHOR47,. + 0 12574 .type p_erase_count_table, %object 12575 .size p_erase_count_table, 8 12576p_erase_count_table: 12577 .zero 8 12578 .section .bss.p_free_data_block_list_head,"aw",@nobits 12579 .align 3 12580 .set .LANCHOR46,. + 0 12581 .type p_free_data_block_list_head, %object 12582 .size p_free_data_block_list_head, 8 12583p_free_data_block_list_head: 12584 .zero 8 12585 .section .bss.p_gc_blk_tbl,"aw",@nobits 12586 .align 3 12587 .set .LANCHOR69,. + 0 12588 .type p_gc_blk_tbl, %object 12589 .size p_gc_blk_tbl, 8 12590p_gc_blk_tbl: 12591 .zero 8 12592 .section .bss.p_gc_data_buf,"aw",@nobits 12593 .align 3 12594 .set .LANCHOR64,. + 0 12595 .type p_gc_data_buf, %object 12596 .size p_gc_data_buf, 8 12597p_gc_data_buf: 12598 .zero 8 12599 .section .bss.p_gc_page_info,"aw",@nobits 12600 .align 3 12601 .set .LANCHOR71,. + 0 12602 .type p_gc_page_info, %object 12603 .size p_gc_page_info, 8 12604p_gc_page_info: 12605 .zero 8 12606 .section .bss.p_gc_spare_buf,"aw",@nobits 12607 .align 3 12608 .set .LANCHOR65,. + 0 12609 .type p_gc_spare_buf, %object 12610 .size p_gc_spare_buf, 8 12611p_gc_spare_buf: 12612 .zero 8 12613 .section .bss.p_io_data_buf_0,"aw",@nobits 12614 .align 3 12615 .set .LANCHOR109,. + 0 12616 .type p_io_data_buf_0, %object 12617 .size p_io_data_buf_0, 8 12618p_io_data_buf_0: 12619 .zero 8 12620 .section .bss.p_io_data_buf_1,"aw",@nobits 12621 .align 3 12622 .set .LANCHOR110,. + 0 12623 .type p_io_data_buf_1, %object 12624 .size p_io_data_buf_1, 8 12625p_io_data_buf_1: 12626 .zero 8 12627 .section .bss.p_io_spare_buf,"aw",@nobits 12628 .align 3 12629 .set .LANCHOR115,. + 0 12630 .type p_io_spare_buf, %object 12631 .size p_io_spare_buf, 8 12632p_io_spare_buf: 12633 .zero 8 12634 .section .bss.p_l2p_map_buf,"aw",@nobits 12635 .align 3 12636 .set .LANCHOR126,. + 0 12637 .type p_l2p_map_buf, %object 12638 .size p_l2p_map_buf, 8 12639p_l2p_map_buf: 12640 .zero 8 12641 .section .bss.p_l2p_ram_map,"aw",@nobits 12642 .align 3 12643 .set .LANCHOR55,. + 0 12644 .type p_l2p_ram_map, %object 12645 .size p_l2p_ram_map, 8 12646p_l2p_ram_map: 12647 .zero 8 12648 .section .bss.p_map_block_table,"aw",@nobits 12649 .align 3 12650 .set .LANCHOR119,. + 0 12651 .type p_map_block_table, %object 12652 .size p_map_block_table, 8 12653p_map_block_table: 12654 .zero 8 12655 .section .bss.p_map_block_valid_page_count,"aw",@nobits 12656 .align 3 12657 .set .LANCHOR120,. + 0 12658 .type p_map_block_valid_page_count, %object 12659 .size p_map_block_valid_page_count, 8 12660p_map_block_valid_page_count: 12661 .zero 8 12662 .section .bss.p_map_block_ver_table,"aw",@nobits 12663 .align 3 12664 .set .LANCHOR125,. + 0 12665 .type p_map_block_ver_table, %object 12666 .size p_map_block_ver_table, 8 12667p_map_block_ver_table: 12668 .zero 8 12669 .section .bss.p_map_region_ppn_table,"aw",@nobits 12670 .align 3 12671 .set .LANCHOR124,. + 0 12672 .type p_map_region_ppn_table, %object 12673 .size p_map_region_ppn_table, 8 12674p_map_region_ppn_table: 12675 .zero 8 12676 .section .bss.p_plane_order_table,"aw",@nobits 12677 .align 3 12678 .set .LANCHOR13,. + 0 12679 .type p_plane_order_table, %object 12680 .size p_plane_order_table, 32 12681p_plane_order_table: 12682 .zero 32 12683 .section .bss.p_swl_mul_table,"aw",@nobits 12684 .align 3 12685 .set .LANCHOR117,. + 0 12686 .type p_swl_mul_table, %object 12687 .size p_swl_mul_table, 8 12688p_swl_mul_table: 12689 .zero 8 12690 .section .bss.p_sys_data_buf,"aw",@nobits 12691 .align 3 12692 .set .LANCHOR106,. + 0 12693 .type p_sys_data_buf, %object 12694 .size p_sys_data_buf, 8 12695p_sys_data_buf: 12696 .zero 8 12697 .section .bss.p_sys_data_buf_1,"aw",@nobits 12698 .align 3 12699 .set .LANCHOR107,. + 0 12700 .type p_sys_data_buf_1, %object 12701 .size p_sys_data_buf_1, 8 12702p_sys_data_buf_1: 12703 .zero 8 12704 .section .bss.p_sys_spare_buf,"aw",@nobits 12705 .align 3 12706 .set .LANCHOR114,. + 0 12707 .type p_sys_spare_buf, %object 12708 .size p_sys_spare_buf, 8 12709p_sys_spare_buf: 12710 .zero 8 12711 .section .bss.p_valid_page_count_check_table,"aw",@nobits 12712 .align 3 12713 .type p_valid_page_count_check_table, %object 12714 .size p_valid_page_count_check_table, 8 12715p_valid_page_count_check_table: 12716 .zero 8 12717 .section .bss.p_valid_page_count_table,"aw",@nobits 12718 .align 3 12719 .set .LANCHOR42,. + 0 12720 .type p_valid_page_count_table, %object 12721 .size p_valid_page_count_table, 8 12722p_valid_page_count_table: 12723 .zero 8 12724 .section .bss.p_vendor_block_table,"aw",@nobits 12725 .align 3 12726 .set .LANCHOR36,. + 0 12727 .type p_vendor_block_table, %object 12728 .size p_vendor_block_table, 8 12729p_vendor_block_table: 12730 .zero 8 12731 .section .bss.p_vendor_block_valid_page_count,"aw",@nobits 12732 .align 3 12733 .set .LANCHOR121,. + 0 12734 .type p_vendor_block_valid_page_count, %object 12735 .size p_vendor_block_valid_page_count, 8 12736p_vendor_block_valid_page_count: 12737 .zero 8 12738 .section .bss.p_vendor_block_ver_table,"aw",@nobits 12739 .align 3 12740 .set .LANCHOR122,. + 0 12741 .type p_vendor_block_ver_table, %object 12742 .size p_vendor_block_ver_table, 8 12743p_vendor_block_ver_table: 12744 .zero 8 12745 .section .bss.p_vendor_data_buf,"aw",@nobits 12746 .align 3 12747 .set .LANCHOR108,. + 0 12748 .type p_vendor_data_buf, %object 12749 .size p_vendor_data_buf, 8 12750p_vendor_data_buf: 12751 .zero 8 12752 .section .bss.p_vendor_region_ppn_table,"aw",@nobits 12753 .align 3 12754 .set .LANCHOR123,. + 0 12755 .type p_vendor_region_ppn_table, %object 12756 .size p_vendor_region_ppn_table, 8 12757p_vendor_region_ppn_table: 12758 .zero 8 12759 .section .bss.req_erase,"aw",@nobits 12760 .align 3 12761 .set .LANCHOR79,. + 0 12762 .type req_erase, %object 12763 .size req_erase, 8 12764req_erase: 12765 .zero 8 12766 .section .bss.req_gc,"aw",@nobits 12767 .align 3 12768 .set .LANCHOR66,. + 0 12769 .type req_gc, %object 12770 .size req_gc, 8 12771req_gc: 12772 .zero 8 12773 .section .bss.req_gc_dst,"aw",@nobits 12774 .align 3 12775 .set .LANCHOR104,. + 0 12776 .type req_gc_dst, %object 12777 .size req_gc_dst, 8 12778req_gc_dst: 12779 .zero 8 12780 .section .bss.req_prgm,"aw",@nobits 12781 .align 3 12782 .set .LANCHOR105,. + 0 12783 .type req_prgm, %object 12784 .size req_prgm, 8 12785req_prgm: 12786 .zero 8 12787 .section .bss.req_read,"aw",@nobits 12788 .align 3 12789 .set .LANCHOR103,. + 0 12790 .type req_read, %object 12791 .size req_read, 8 12792req_read: 12793 .zero 8 12794 .section .bss.req_sys,"aw",@nobits 12795 .align 3 12796 .set .LANCHOR138,. + 0 12797 .type req_sys, %object 12798 .size req_sys, 32 12799req_sys: 12800 .zero 32 12801 .section .bss.sftl_nand_check_buf,"aw",@nobits 12802 .align 3 12803 .set .LANCHOR111,. + 0 12804 .type sftl_nand_check_buf, %object 12805 .size sftl_nand_check_buf, 8 12806sftl_nand_check_buf: 12807 .zero 8 12808 .section .bss.sftl_nand_check_spare_buf,"aw",@nobits 12809 .align 3 12810 .set .LANCHOR113,. + 0 12811 .type sftl_nand_check_spare_buf, %object 12812 .size sftl_nand_check_spare_buf, 8 12813sftl_nand_check_spare_buf: 12814 .zero 8 12815 .section .bss.sftl_temp_buf,"aw",@nobits 12816 .align 3 12817 .set .LANCHOR112,. + 0 12818 .type sftl_temp_buf, %object 12819 .size sftl_temp_buf, 8 12820sftl_temp_buf: 12821 .zero 8 12822 .section .data.ftl_gc_temp_block_bops_scan_page_addr,"aw",@progbits 12823 .align 1 12824 .set .LANCHOR160,. + 0 12825 .type ftl_gc_temp_block_bops_scan_page_addr, %object 12826 .size ftl_gc_temp_block_bops_scan_page_addr, 2 12827ftl_gc_temp_block_bops_scan_page_addr: 12828 .hword -1 12829 .section .data.gFtlInitStatus,"aw",@progbits 12830 .align 2 12831 .set .LANCHOR166,. + 0 12832 .type gFtlInitStatus, %object 12833 .size gFtlInitStatus, 4 12834gFtlInitStatus: 12835 .word -1 12836 .section .data.power_up_flag,"aw",@progbits 12837 .align 2 12838 .type power_up_flag, %object 12839 .size power_up_flag, 4 12840power_up_flag: 12841 .word 1 12842 .section .rodata.FlashEraseBlocks.str1.1,"aMS",@progbits,1 12843.LC6: 12844 .string "%s: addr: %x is in id block!!!!!!!!!!\n" 12845.LC7: 12846 .string "not free: w: d:" 12847.LC8: 12848 .string "not free: w: s:" 12849 .section .rodata.FlashProgPages.str1.1,"aMS",@progbits,1 12850.LC14: 12851 .string "prog read error: = %x\n" 12852.LC15: 12853 .string "prog read REFRESH: = %x\n" 12854.LC16: 12855 .string "prog read s error: = %x %x %x\n" 12856.LC17: 12857 .string "prog read d error: = %x %x %x\n" 12858 .section .rodata.FlashReadPages.str1.1,"aMS",@progbits,1 12859.LC11: 12860 .string "FlashReadPages %x %x error_ecc_bits %d\n" 12861.LC12: 12862 .string "data:" 12863.LC13: 12864 .string "spare:" 12865 .section .rodata.FtlBbmMapBadBlock.str1.1,"aMS",@progbits,1 12866.LC0: 12867 .string "phyBlk = 0x%x die = %d block_in_die = 0x%x 0x%8x\n" 12868 .section .rodata.FtlBbmTblFlush.str1.1,"aMS",@progbits,1 12869.LC18: 12870 .string "FtlBbmTblFlush id=%x,page=%x,previd=%x cnt=%d\n" 12871.LC19: 12872 .string "FtlBbmTblFlush error:%x\n" 12873.LC20: 12874 .string "FtlBbmTblFlush error = %x error count = %d\n" 12875 .section .rodata.FtlFreeSysBlkQueueOut.str1.1,"aMS",@progbits,1 12876.LC9: 12877 .string "FtlFreeSysBlkQueueOut = %x, free count = %d, error\n" 12878 .section .rodata.FtlGcScanTempBlk.str1.1,"aMS",@progbits,1 12879.LC35: 12880 .string "FtlGcScanTempBlk Error ID %x %x!!!!!!! \n" 12881 .section .rodata.FtlLoadEctTbl.str1.1,"aMS",@progbits,1 12882.LC37: 12883 .string "no ect" 12884.LC38: 12885 .string "%s\n" 12886 .section .rodata.FtlLoadSysInfo.str1.1,"aMS",@progbits,1 12887.LC46: 12888 .string "%s hash error this.id =%x page =%x pre_id =%x hash =%x hash_r =%x\n" 12889 .section .rodata.FtlMapTblRecovery.str1.1,"aMS",@progbits,1 12890.LC47: 12891 .string "%s last blk_id =%x page =%x hash error hash =%x hash_r =%x\n" 12892.LC48: 12893 .string "%s scan blk_id =%x page =%x hash error hash =%x hash_r =%x\n" 12894 .section .rodata.FtlMapWritePage.str1.1,"aMS",@progbits,1 12895.LC22: 12896 .string "FtlMapWritePage error = %x \n" 12897.LC23: 12898 .string "FtlMapWritePage error = %x error count = %d\n" 12899 .section .rodata.FtlProgPages.str1.1,"aMS",@progbits,1 12900.LC40: 12901 .string "FtlProgPages error %x = %d\n" 12902.LC41: 12903 .string "Ftlwrite decrement_vpc_count %x = %d\n" 12904 .section .rodata.FtlRecoverySuperblock.str1.1,"aMS",@progbits,1 12905.LC27: 12906 .string "data prev_ppa = %x error...................\n" 12907.LC28: 12908 .string "spuer block %x vpn is 0\n " 12909 .section .rodata.FtlVendorPartRead.str1.1,"aMS",@progbits,1 12910.LC36: 12911 .string "FtlVendorPartRead refresh = %x phyAddr = %x\n" 12912 .section .rodata.FtlVpcTblFlush.str1.1,"aMS",@progbits,1 12913.LC39: 12914 .string "FtlVpcTblFlush error = %x error count = %d\n" 12915 .section .rodata.FtlWrite.str1.1,"aMS",@progbits,1 12916.LC44: 12917 .string "FtlWrite: ecc error:%x %x %x\n" 12918.LC45: 12919 .string "FtlWrite: lpa error:%x %x\n" 12920 .section .rodata.FtlWriteToIDB.str1.1,"aMS",@progbits,1 12921.LC50: 12922 .string "write_idblock fail! %x %x %x %x\n" 12923.LC51: 12924 .string "%s idb buffer alloc fail\n" 12925.LC52: 12926 .string "%p %x %p %x\n" 12927 .section .rodata.INSERT_DATA_LIST.str1.1,"aMS",@progbits,1 12928.LC1: 12929 .string "\n!!!!! error @ func:%s - line:%d\n" 12930 .section .rodata.__func__.6243,"a",@progbits 12931 .align 3 12932 .set .LANCHOR169,. + 0 12933 .type __func__.6243, %object 12934 .size __func__.6243, 13 12935__func__.6243: 12936 .string "FtlProgPages" 12937 .section .rodata.__func__.6271,"a",@progbits 12938 .align 3 12939 .set .LANCHOR177,. + 0 12940 .type __func__.6271, %object 12941 .size __func__.6271, 9 12942__func__.6271: 12943 .string "FtlWrite" 12944 .section .rodata.__func__.6346,"a",@progbits 12945 .align 3 12946 .set .LANCHOR128,. + 0 12947 .type __func__.6346, %object 12948 .size __func__.6346, 14 12949__func__.6346: 12950 .string "FtlBbt2Bitmap" 12951 .section .rodata.__func__.6381,"a",@progbits 12952 .align 3 12953 .set .LANCHOR141,. + 0 12954 .type __func__.6381, %object 12955 .size __func__.6381, 11 12956__func__.6381: 12957 .string "FtlLoadBbt" 12958 .section .rodata.__func__.6496,"a",@progbits 12959 .align 3 12960 .set .LANCHOR49,. + 0 12961 .type __func__.6496, %object 12962 .size __func__.6496, 17 12963__func__.6496: 12964 .string "INSERT_FREE_LIST" 12965 .section .rodata.__func__.6501,"a",@progbits 12966 .align 3 12967 .set .LANCHOR45,. + 0 12968 .type __func__.6501, %object 12969 .size __func__.6501, 17 12970__func__.6501: 12971 .string "INSERT_DATA_LIST" 12972 .section .rodata.__func__.6532,"a",@progbits 12973 .align 3 12974 .set .LANCHOR50,. + 0 12975 .type __func__.6532, %object 12976 .size __func__.6532, 17 12977__func__.6532: 12978 .string "List_remove_node" 12979 .section .rodata.__func__.6564,"a",@progbits 12980 .align 3 12981 .set .LANCHOR54,. + 0 12982 .type __func__.6564, %object 12983 .size __func__.6564, 22 12984__func__.6564: 12985 .string "List_update_data_list" 12986 .section .rodata.__func__.6573,"a",@progbits 12987 .align 3 12988 .set .LANCHOR150,. + 0 12989 .type __func__.6573, %object 12990 .size __func__.6573, 16 12991__func__.6573: 12992 .string "load_l2p_region" 12993 .section .rodata.__func__.6606,"a",@progbits 12994 .align 3 12995 .set .LANCHOR81,. + 0 12996 .type __func__.6606, %object 12997 .size __func__.6606, 26 12998__func__.6606: 12999 .string "ftl_map_blk_alloc_new_blk" 13000 .section .rodata.__func__.6617,"a",@progbits 13001 .align 3 13002 .set .LANCHOR151,. + 0 13003 .type __func__.6617, %object 13004 .size __func__.6617, 15 13005__func__.6617: 13006 .string "ftl_map_blk_gc" 13007 .section .rodata.__func__.6632,"a",@progbits 13008 .align 3 13009 .set .LANCHOR148,. + 0 13010 .type __func__.6632, %object 13011 .size __func__.6632, 31 13012__func__.6632: 13013 .string "Ftl_write_map_blk_to_last_page" 13014 .section .rodata.__func__.6646,"a",@progbits 13015 .align 3 13016 .set .LANCHOR149,. + 0 13017 .type __func__.6646, %object 13018 .size __func__.6646, 16 13019__func__.6646: 13020 .string "FtlMapWritePage" 13021 .section .rodata.__func__.6671,"a",@progbits 13022 .align 3 13023 .set .LANCHOR57,. + 0 13024 .type __func__.6671, %object 13025 .size __func__.6671, 22 13026__func__.6671: 13027 .string "select_l2p_ram_region" 13028 .section .rodata.__func__.6688,"a",@progbits 13029 .align 3 13030 .set .LANCHOR153,. + 0 13031 .type __func__.6688, %object 13032 .size __func__.6688, 9 13033__func__.6688: 13034 .string "log2phys" 13035 .section .rodata.__func__.6752,"a",@progbits 13036 .align 3 13037 .set .LANCHOR165,. + 0 13038 .type __func__.6752, %object 13039 .size __func__.6752, 15 13040__func__.6752: 13041 .string "FtlVpcTblFlush" 13042 .section .rodata.__func__.6774,"a",@progbits 13043 .align 3 13044 .set .LANCHOR140,. + 0 13045 .type __func__.6774, %object 13046 .size __func__.6774, 14 13047__func__.6774: 13048 .string "FtlScanSysBlk" 13049 .section .rodata.__func__.6830,"a",@progbits 13050 .align 3 13051 .set .LANCHOR178,. + 0 13052 .type __func__.6830, %object 13053 .size __func__.6830, 15 13054__func__.6830: 13055 .string "FtlLoadSysInfo" 13056 .section .rodata.__func__.6852,"a",@progbits 13057 .align 3 13058 .set .LANCHOR180,. + 0 13059 .type __func__.6852, %object 13060 .size __func__.6852, 18 13061__func__.6852: 13062 .string "FtlMapTblRecovery" 13063 .section .rodata.__func__.6898,"a",@progbits 13064 .align 3 13065 .set .LANCHOR154,. + 0 13066 .type __func__.6898, %object 13067 .size __func__.6898, 16 13068__func__.6898: 13069 .string "FtlReUsePrevPpa" 13070 .section .rodata.__func__.6932,"a",@progbits 13071 .align 3 13072 .set .LANCHOR155,. + 0 13073 .type __func__.6932, %object 13074 .size __func__.6932, 22 13075__func__.6932: 13076 .string "FtlRecoverySuperblock" 13077 .section .rodata.__func__.6989,"a",@progbits 13078 .align 3 13079 .set .LANCHOR60,. + 0 13080 .type __func__.6989, %object 13081 .size __func__.6989, 16 13082__func__.6989: 13083 .string "make_superblock" 13084 .section .rodata.__func__.7010,"a",@progbits 13085 .align 3 13086 .set .LANCHOR136,. + 0 13087 .type __func__.7010, %object 13088 .size __func__.7010, 18 13089__func__.7010: 13090 .string "SupperBlkListInit" 13091 .section .rodata.__func__.7037,"a",@progbits 13092 .align 3 13093 .set .LANCHOR159,. + 0 13094 .type __func__.7037, %object 13095 .size __func__.7037, 14 13096__func__.7037: 13097 .string "ftl_check_vpc" 13098 .section .rodata.__func__.7102,"a",@progbits 13099 .align 3 13100 .set .LANCHOR144,. + 0 13101 .type __func__.7102, %object 13102 .size __func__.7102, 25 13103__func__.7102: 13104 .string "allocate_data_superblock" 13105 .section .rodata.__func__.7123,"a",@progbits 13106 .align 3 13107 .set .LANCHOR168,. + 0 13108 .type __func__.7123, %object 13109 .size __func__.7123, 29 13110__func__.7123: 13111 .string "allocate_new_data_superblock" 13112 .section .rodata.__func__.7130,"a",@progbits 13113 .align 3 13114 .set .LANCHOR61,. + 0 13115 .type __func__.7130, %object 13116 .size __func__.7130, 19 13117__func__.7130: 13118 .string "get_new_active_ppa" 13119 .section .rodata.__func__.7143,"a",@progbits 13120 .align 3 13121 .set .LANCHOR146,. + 0 13122 .type __func__.7143, %object 13123 .size __func__.7143, 16 13124__func__.7143: 13125 .string "update_vpc_list" 13126 .section .rodata.__func__.7150,"a",@progbits 13127 .align 3 13128 .set .LANCHOR147,. + 0 13129 .type __func__.7150, %object 13130 .size __func__.7150, 20 13131__func__.7150: 13132 .string "decrement_vpc_count" 13133 .section .rodata.__func__.7220,"a",@progbits 13134 .align 3 13135 .set .LANCHOR170,. + 0 13136 .type __func__.7220, %object 13137 .size __func__.7220, 19 13138__func__.7220: 13139 .string "FtlGcFreeTempBlock" 13140 .section .rodata.__func__.7319,"a",@progbits 13141 .align 3 13142 .set .LANCHOR175,. + 0 13143 .type __func__.7319, %object 13144 .size __func__.7319, 23 13145__func__.7319: 13146 .string "rk_ftl_garbage_collect" 13147 .section .rodata.__func__.7591,"a",@progbits 13148 .align 3 13149 .set .LANCHOR137,. + 0 13150 .type __func__.7591, %object 13151 .size __func__.7591, 15 13152__func__.7591: 13153 .string "FlashReadPages" 13154 .section .rodata.__func__.7610,"a",@progbits 13155 .align 3 13156 .set .LANCHOR142,. + 0 13157 .type __func__.7610, %object 13158 .size __func__.7610, 15 13159__func__.7610: 13160 .string "FlashProgPages" 13161 .section .rodata.__func__.7634,"a",@progbits 13162 .align 3 13163 .set .LANCHOR77,. + 0 13164 .type __func__.7634, %object 13165 .size __func__.7634, 17 13166__func__.7634: 13167 .string "FlashEraseBlocks" 13168 .section .rodata.__func__.7749,"a",@progbits 13169 .align 3 13170 .set .LANCHOR185,. + 0 13171 .type __func__.7749, %object 13172 .size __func__.7749, 14 13173__func__.7749: 13174 .string "FtlWriteToIDB" 13175 .section .rodata.decrement_vpc_count.str1.1,"aMS",@progbits,1 13176.LC21: 13177 .string "decrement_vpc_count %x = %d\n" 13178 .section .rodata.ftl_check_vpc.str1.1,"aMS",@progbits,1 13179.LC29: 13180 .string "...%s enter...\n" 13181.LC30: 13182 .string "FtlCheckVpc2 %x = %x %x\n" 13183.LC31: 13184 .string "free blk vpc error %x = %x %x\n" 13185 .section .rodata.ftl_map_blk_alloc_new_blk.str1.1,"aMS",@progbits,1 13186.LC10: 13187 .string "FtlFreeSysBlkQueueOut = %x, free count = %d\n" 13188 .section .rodata.ftl_scan_all_data.str1.1,"aMS",@progbits,1 13189.LC32: 13190 .string "ftl_scan_all_data = %x\n" 13191.LC33: 13192 .string "scan lpa = %x ppa= %x\n" 13193.LC34: 13194 .string "lba = %x,addr= %x,spare= %x %x %x %x data=%x %x\n" 13195 .section .rodata.load_l2p_region.str1.1,"aMS",@progbits,1 13196.LC24: 13197 .string "region_id = %x phyAddr = %x\n" 13198.LC25: 13199 .string "map_ppn:" 13200.LC26: 13201 .string "load_l2p_region refresh = %x phyAddr = %x\n" 13202 .section .rodata.rk_ftl_garbage_collect.str1.1,"aMS",@progbits,1 13203.LC42: 13204 .string "g_gc_superblock_free %x %x %x %x %x\n" 13205.LC43: 13206 .string "lpa=%x, ppa=%x\n" 13207 .section .rodata.rknand_print_hex.str1.1,"aMS",@progbits,1 13208.LC2: 13209 .string "%s 0x%x:" 13210.LC3: 13211 .string "%x " 13212.LC4: 13213 .string "%02x " 13214.LC5: 13215 .string "\n" 13216 .section .rodata.sftl_init.str1.1,"aMS",@progbits,1 13217.LC49: 13218 .string "SFTL version: 5.0.50 20190215" 13219 .hidden free 13220