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