1/* 2 * Copyright (c) 2018 Fuzhou Rockchip Electronics Co., Ltd 3 * 4 * SPDX-License-Identifier: GPL-2.0 5 * date: 2021-03-29 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, 796 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, 2157 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, 2792 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, 2793 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, 2794 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, 2817 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, 2219 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, 1232 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, 1273 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, 1398 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, 2667 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, 2676 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, 2690 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, 2693 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, 2704 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, 2706 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, 2759 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, 2835 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, 2838 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, 2853 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, 2869 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 mov w24, w1 5744 stp x21, x22, [sp, 32] 5745 adrp x23, .LANCHOR148 5746 stp x25, x26, [sp, 64] 5747 adrp x22, .LANCHOR87 5748 stp x27, x28, [sp, 80] 5749 adrp x25, .LANCHOR19 5750 stp x19, x20, [sp, 16] 5751 mov x27, x2 5752 mov x19, x0 5753 ubfiz x26, x24, 2, 32 5754 add x22, x22, :lo12:.LANCHOR87 5755 add x23, x23, :lo12:.LANCHOR148 5756 add x28, x25, :lo12:.LANCHOR19 5757 mov w21, 0 5758.L775: 5759 ldr w0, [x22] 5760 ldrh w1, [x19, 2] 5761 add w0, w0, 1 5762 str w0, [x22] 5763 ldrh w0, [x25, #:lo12:.LANCHOR19] 5764 sub w0, w0, #1 5765 cmp w1, w0 5766 bge .L776 5767 ldrh w1, [x19] 5768 mov w0, 65535 5769 cmp w1, w0 5770 bne .L777 5771.L776: 5772 mov x0, x19 5773 bl Ftl_write_map_blk_to_last_page 5774.L777: 5775 ldrh w1, [x19] 5776 ldr x0, [x19, 16] 5777 ldrh w0, [x0, x1, lsl 1] 5778 cbnz w0, .L778 5779 adrp x0, .LC1 5780 mov w2, 700 5781 mov x1, x23 5782 add x0, x0, :lo12:.LC1 5783 bl printf 5784.L778: 5785 ldrh w1, [x19] 5786 ldrh w0, [x19, 10] 5787 cmp w1, w0 5788 bcc .L779 5789 adrp x0, .LC1 5790 mov w2, 701 5791 mov x1, x23 5792 add x0, x0, :lo12:.LC1 5793 bl printf 5794.L779: 5795 ldrh w1, [x19] 5796 adrp x4, .LANCHOR137 5797 ldr x0, [x19, 16] 5798 add x20, x4, :lo12:.LANCHOR137 5799 str x4, [x29, 96] 5800 mov w2, 16 5801 ldrh w3, [x0, x1, lsl 1] 5802 mov w1, 0 5803 ldrh w0, [x19, 2] 5804 str w3, [x29, 104] 5805 str x27, [x20, 8] 5806 orr w0, w0, w3, lsl 10 5807 str w0, [x20, 4] 5808 adrp x0, .LANCHOR113 5809 ldr x0, [x0, #:lo12:.LANCHOR113] 5810 str x0, [x20, 16] 5811 bl ftl_memset 5812 ldr x6, [x20, 16] 5813 ldr w0, [x19, 48] 5814 ldr w3, [x29, 104] 5815 str w0, [x6, 4] 5816 ldrh w0, [x19, 4] 5817 strh w0, [x6] 5818 adrp x0, .LANCHOR22 5819 strh w3, [x6, 2] 5820 strh w24, [x6, 8] 5821 ldrh w1, [x0, #:lo12:.LANCHOR22] 5822 ldr x0, [x20, 8] 5823 bl js_hash 5824 str w0, [x6, 12] 5825 mov w3, 1 5826 mov x0, x20 5827 mov w1, w3 5828 mov w2, w3 5829 bl FlashProgPages 5830 ldr x4, [x29, 96] 5831 ldrh w0, [x19, 2] 5832 add w0, w0, 1 5833 and w0, w0, 65535 5834 ldr w1, [x4, #:lo12:.LANCHOR137] 5835 strh w0, [x19, 2] 5836 cmn w1, #1 5837 bne .L780 5838 ldr w1, [x20, 4] 5839 adrp x0, .LC22 5840 str x4, [x29, 104] 5841 add x0, x0, :lo12:.LC22 5842 add w21, w21, 1 5843 and w21, w21, 65535 5844 bl printf 5845 ldrh w0, [x19, 2] 5846 ldr x2, [x29, 104] 5847 cmp w0, 2 5848 bhi .L781 5849 ldrh w0, [x28] 5850 sub w0, w0, #1 5851 strh w0, [x19, 2] 5852.L781: 5853 cmp w21, 3 5854 bls .L782 5855 add x0, x2, :lo12:.LANCHOR137 5856 mov w2, w21 5857 ldr w1, [x0, 4] 5858 adrp x0, .LC23 5859 add x0, x0, :lo12:.LC23 5860 bl printf 5861.L783: 5862 b .L783 5863.L782: 5864 ldr w0, [x19, 52] 5865 cbz w0, .L775 5866.L798: 5867 b .L798 5868.L780: 5869 ldr x1, [x19, 40] 5870 cmp w0, 1 5871 ldr w2, [x20, 4] 5872 str w2, [x1, x26] 5873 beq .L786 5874 ldr w0, [x4, #:lo12:.LANCHOR137] 5875 cmp w0, 256 5876 beq .L786 5877 ldr w1, [x19, 56] 5878 cbz w1, .L787 5879.L786: 5880 str wzr, [x19, 56] 5881 b .L775 5882.L787: 5883 cmn w0, #1 5884 bne .L788 5885 adrp x1, .LANCHOR148 5886 adrp x0, .LC1 5887 mov w2, 745 5888 add x1, x1, :lo12:.LANCHOR148 5889 add x0, x0, :lo12:.LC1 5890 bl printf 5891.L788: 5892 ldp x19, x20, [sp, 16] 5893 mov w0, 0 5894 ldp x21, x22, [sp, 32] 5895 ldp x23, x24, [sp, 48] 5896 ldp x25, x26, [sp, 64] 5897 ldp x27, x28, [sp, 80] 5898 ldp x29, x30, [sp], 112 5899 ret 5900 .size FtlMapWritePage, .-FtlMapWritePage 5901 .section .text.load_l2p_region,"ax",@progbits 5902 .align 2 5903 .global load_l2p_region 5904 .type load_l2p_region, %function 5905load_l2p_region: 5906 stp x29, x30, [sp, -96]! 5907 add x29, sp, 0 5908 stp x23, x24, [sp, 48] 5909 adrp x24, .LANCHOR31 5910 stp x19, x20, [sp, 16] 5911 and w20, w0, 65535 5912 stp x21, x22, [sp, 32] 5913 and x19, x1, 65535 5914 ldrh w0, [x24, #:lo12:.LANCHOR31] 5915 stp x25, x26, [sp, 64] 5916 str x27, [sp, 80] 5917 cmp w0, w20 5918 bcs .L801 5919 adrp x1, .LANCHOR149 5920 adrp x0, .LC1 5921 mov w2, 485 5922 add x1, x1, :lo12:.LANCHOR149 5923 add x0, x0, :lo12:.LC1 5924 bl printf 5925.L801: 5926 adrp x27, .LANCHOR123 5927 ubfiz x0, x20, 2, 16 5928 adrp x22, .LANCHOR54 5929 ldr x1, [x27, #:lo12:.LANCHOR123] 5930 ldr w23, [x1, x0] 5931 cbnz w23, .L802 5932 ldr x0, [x22, #:lo12:.LANCHOR54] 5933 lsl x19, x19, 4 5934 adrp x1, .LANCHOR22 5935 add x0, x0, x19 5936 ldrh w2, [x1, #:lo12:.LANCHOR22] 5937 mov w1, 255 5938 ldr x0, [x0, 8] 5939 bl ftl_memset 5940 ldr x0, [x22, #:lo12:.LANCHOR54] 5941 add x1, x0, x19 5942 strh w20, [x0, x19] 5943 str wzr, [x1, 4] 5944.L803: 5945 mov w0, 0 5946 ldr x27, [sp, 80] 5947 ldp x19, x20, [sp, 16] 5948 ldp x21, x22, [sp, 32] 5949 ldp x23, x24, [sp, 48] 5950 ldp x25, x26, [sp, 64] 5951 ldp x29, x30, [sp], 96 5952 ret 5953.L802: 5954 ldr x0, [x22, #:lo12:.LANCHOR54] 5955 lsl x19, x19, 4 5956 adrp x26, .LANCHOR137 5957 add x21, x26, :lo12:.LANCHOR137 5958 add x0, x0, x19 5959 mov w2, 1 5960 mov w1, w2 5961 str w23, [x21, 4] 5962 ldr x0, [x0, 8] 5963 str x0, [x21, 8] 5964 adrp x0, .LANCHOR113 5965 ldr x0, [x0, #:lo12:.LANCHOR113] 5966 str x0, [x21, 16] 5967 mov x0, x21 5968 bl FlashReadPages 5969 ldr x25, [x21, 16] 5970 ldrh w0, [x25, 8] 5971 cmp w0, w20 5972 beq .L804 5973 mov w2, w23 5974 mov w1, w20 5975 adrp x0, .LC24 5976 add x0, x0, :lo12:.LC24 5977 bl printf 5978 ldr x1, [x21, 16] 5979 mov w3, 4 5980 adrp x0, .LC13 5981 mov w2, w3 5982 add x0, x0, :lo12:.LC13 5983 bl rknand_print_hex 5984 ldrh w3, [x24, #:lo12:.LANCHOR31] 5985 adrp x0, .LC25 5986 ldr x1, [x27, #:lo12:.LANCHOR123] 5987 mov w2, 4 5988 add x0, x0, :lo12:.LC25 5989 bl rknand_print_hex 5990.L805: 5991 ldrh w0, [x25, 8] 5992 cmp w0, w20 5993 beq .L806 5994 adrp x1, .LANCHOR149 5995 adrp x0, .LC1 5996 mov w2, 508 5997 add x1, x1, :lo12:.LANCHOR149 5998 add x0, x0, :lo12:.LC1 5999 bl printf 6000.L806: 6001 ldr x0, [x22, #:lo12:.LANCHOR54] 6002 add x1, x0, x19 6003 str wzr, [x1, 4] 6004 strh w20, [x0, x19] 6005 b .L803 6006.L804: 6007 ldr w0, [x26, #:lo12:.LANCHOR137] 6008 cmp w0, 256 6009 bne .L805 6010 mov w2, w23 6011 mov w1, w20 6012 adrp x0, .LC26 6013 add x0, x0, :lo12:.LC26 6014 bl printf 6015 ldr x0, [x22, #:lo12:.LANCHOR54] 6016 mov w1, w20 6017 add x0, x0, x19 6018 ldr x2, [x0, 8] 6019 adrp x0, .LANCHOR128 6020 add x0, x0, :lo12:.LANCHOR128 6021 bl FtlMapWritePage 6022 b .L805 6023 .size load_l2p_region, .-load_l2p_region 6024 .section .text.ftl_map_blk_gc,"ax",@progbits 6025 .align 2 6026 .global ftl_map_blk_gc 6027 .type ftl_map_blk_gc, %function 6028ftl_map_blk_gc: 6029 stp x29, x30, [sp, -96]! 6030 add x29, sp, 0 6031 stp x19, x20, [sp, 16] 6032 mov x19, x0 6033 stp x23, x24, [sp, 48] 6034 adrp x24, .LANCHOR19 6035 stp x25, x26, [sp, 64] 6036 stp x21, x22, [sp, 32] 6037 stp x27, x28, [sp, 80] 6038 ldr x20, [x0, 16] 6039 ldr x25, [x0, 40] 6040 bl ftl_free_no_use_map_blk 6041 ldrh w1, [x19, 10] 6042 ldrh w2, [x19, 8] 6043 sub w1, w1, #5 6044 cmp w2, w1 6045 blt .L809 6046 ubfiz x0, x0, 1, 16 6047 ldrh w22, [x20, x0] 6048 cbz w22, .L809 6049 ldr w1, [x19, 52] 6050 cbnz w1, .L809 6051 mov w1, 1 6052 str w1, [x19, 52] 6053 strh wzr, [x20, x0] 6054 ldrh w0, [x19, 8] 6055 ldrh w1, [x19, 2] 6056 sub w0, w0, #1 6057 strh w0, [x19, 8] 6058 ldrh w0, [x24, #:lo12:.LANCHOR19] 6059 cmp w1, w0 6060 bcc .L810 6061 mov x0, x19 6062 bl ftl_map_blk_alloc_new_blk 6063.L810: 6064 adrp x26, .LANCHOR137 6065 adrp x23, .LANCHOR150 6066 add x27, x26, :lo12:.LANCHOR137 6067 add x23, x23, :lo12:.LANCHOR150 6068 mov w20, 0 6069.L811: 6070 ldrh w0, [x19, 6] 6071 cmp w0, w20 6072 bhi .L818 6073 mov w1, 1 6074 mov w0, w22 6075 bl FtlFreeSysBlkQueueIn 6076 str wzr, [x19, 52] 6077.L809: 6078 ldrh w1, [x19, 2] 6079 ldrh w0, [x24, #:lo12:.LANCHOR19] 6080 cmp w1, w0 6081 bcc .L819 6082 mov x0, x19 6083 bl ftl_map_blk_alloc_new_blk 6084.L819: 6085 mov w0, 0 6086 ldp x19, x20, [sp, 16] 6087 ldp x21, x22, [sp, 32] 6088 ldp x23, x24, [sp, 48] 6089 ldp x25, x26, [sp, 64] 6090 ldp x27, x28, [sp, 80] 6091 ldp x29, x30, [sp], 96 6092 ret 6093.L818: 6094 ubfiz x0, x20, 2, 16 6095 add x28, x25, x0 6096 ldr w1, [x25, x0] 6097 cmp w22, w1, lsr 10 6098 bne .L812 6099 adrp x2, .LANCHOR106 6100 add x0, x26, :lo12:.LANCHOR137 6101 ldr x2, [x2, #:lo12:.LANCHOR106] 6102 str x2, [x0, 8] 6103 adrp x2, .LANCHOR113 6104 str w1, [x0, 4] 6105 ldr x21, [x2, #:lo12:.LANCHOR113] 6106 mov w2, 1 6107 str x21, [x0, 16] 6108 mov w1, w2 6109 bl FlashReadPages 6110 ldrh w0, [x21, 8] 6111 cmp w0, w20 6112 beq .L813 6113 adrp x0, .LC1 6114 mov w2, 611 6115 mov x1, x23 6116 add x0, x0, :lo12:.LC1 6117 bl printf 6118.L813: 6119 ldr w0, [x27] 6120 cmn w0, #1 6121 bne .L814 6122.L816: 6123 str wzr, [x28] 6124.L815: 6125 b .L815 6126.L814: 6127 ldrh w0, [x21, 8] 6128 cmp w0, w20 6129 bne .L816 6130 ldrh w1, [x21] 6131 ldrh w0, [x19, 4] 6132 cmp w1, w0 6133 bne .L816 6134 ldr x2, [x27, 8] 6135 mov w1, w20 6136 mov x0, x19 6137 bl FtlMapWritePage 6138.L812: 6139 add w20, w20, 1 6140 and w20, w20, 65535 6141 b .L811 6142 .size ftl_map_blk_gc, .-ftl_map_blk_gc 6143 .section .text.flush_l2p_region,"ax",@progbits 6144 .align 2 6145 .global flush_l2p_region 6146 .type flush_l2p_region, %function 6147flush_l2p_region: 6148 stp x29, x30, [sp, -32]! 6149 add x29, sp, 0 6150 stp x19, x20, [sp, 16] 6151 adrp x20, .LANCHOR54 6152 ubfiz x19, x0, 4, 16 6153 ldr x0, [x20, #:lo12:.LANCHOR54] 6154 add x1, x0, x19 6155 ldr x2, [x1, 8] 6156 ldrh w1, [x0, x19] 6157 adrp x0, .LANCHOR128 6158 add x0, x0, :lo12:.LANCHOR128 6159 bl FtlMapWritePage 6160 ldr x0, [x20, #:lo12:.LANCHOR54] 6161 add x0, x0, x19 6162 ldp x19, x20, [sp, 16] 6163 ldr w1, [x0, 4] 6164 and w1, w1, 2147483647 6165 str w1, [x0, 4] 6166 mov w0, 0 6167 ldp x29, x30, [sp], 32 6168 ret 6169 .size flush_l2p_region, .-flush_l2p_region 6170 .section .text.l2p_flush,"ax",@progbits 6171 .align 2 6172 .global l2p_flush 6173 .type l2p_flush, %function 6174l2p_flush: 6175 stp x29, x30, [sp, -48]! 6176 add x29, sp, 0 6177 stp x19, x20, [sp, 16] 6178 adrp x20, .LANCHOR32 6179 add x20, x20, :lo12:.LANCHOR32 6180 str x21, [sp, 32] 6181 mov w19, 0 6182 adrp x21, .LANCHOR54 6183.L828: 6184 ldrh w0, [x20] 6185 cmp w0, w19 6186 bhi .L830 6187 mov w0, 0 6188 ldr x21, [sp, 32] 6189 ldp x19, x20, [sp, 16] 6190 ldp x29, x30, [sp], 48 6191 ret 6192.L830: 6193 ldr x1, [x21, #:lo12:.LANCHOR54] 6194 ubfiz x0, x19, 4, 16 6195 add x0, x1, x0 6196 ldr w0, [x0, 4] 6197 tbz w0, #31, .L829 6198 mov w0, w19 6199 bl flush_l2p_region 6200.L829: 6201 add w19, w19, 1 6202 and w19, w19, 65535 6203 b .L828 6204 .size l2p_flush, .-l2p_flush 6205 .section .text.log2phys,"ax",@progbits 6206 .align 2 6207 .global log2phys 6208 .type log2phys, %function 6209log2phys: 6210 stp x29, x30, [sp, -80]! 6211 add x29, sp, 0 6212 stp x25, x26, [sp, 64] 6213 mov w25, w0 6214 adrp x0, .LANCHOR21 6215 stp x23, x24, [sp, 48] 6216 stp x19, x20, [sp, 16] 6217 mov x20, x1 6218 ldrh w24, [x0, #:lo12:.LANCHOR21] 6219 adrp x0, .LANCHOR151 6220 stp x21, x22, [sp, 32] 6221 mov x19, x0 6222 ldr w1, [x0, #:lo12:.LANCHOR151] 6223 mov w21, w2 6224 cmp w25, w1 6225 bcc .L833 6226 adrp x1, .LANCHOR152 6227 adrp x0, .LC1 6228 mov w2, 820 6229 add x1, x1, :lo12:.LANCHOR152 6230 add x0, x0, :lo12:.LC1 6231 bl printf 6232.L833: 6233 ldr w0, [x19, #:lo12:.LANCHOR151] 6234 cmp w25, w0 6235 bcs .L834 6236 adrp x23, .LANCHOR54 6237 add w24, w24, 7 6238 adrp x0, .LANCHOR32 6239 ldr x2, [x23, #:lo12:.LANCHOR54] 6240 lsr w22, w25, w24 6241 and w22, w22, 65535 6242 ldrh w1, [x0, #:lo12:.LANCHOR32] 6243 mov x0, 0 6244.L835: 6245 and x19, x0, 65535 6246 cmp w19, w1 6247 bcc .L840 6248 bl select_l2p_ram_region 6249 and x19, x0, 65535 6250 ldr x2, [x23, #:lo12:.LANCHOR54] 6251 ubfiz x1, x19, 4, 16 6252 mov w26, w0 6253 add x3, x2, x1 6254 ldrh w2, [x2, x1] 6255 mov w1, 65535 6256 cmp w2, w1 6257 beq .L841 6258 ldr w1, [x3, 4] 6259 tbz w1, #31, .L841 6260 bl flush_l2p_region 6261.L841: 6262 mov w1, w26 6263 mov w0, w22 6264 bl load_l2p_region 6265 b .L837 6266.L834: 6267 mov w0, -1 6268 cbnz w21, .L832 6269 str w0, [x20] 6270.L832: 6271 ldp x19, x20, [sp, 16] 6272 ldp x21, x22, [sp, 32] 6273 ldp x23, x24, [sp, 48] 6274 ldp x25, x26, [sp, 64] 6275 ldp x29, x30, [sp], 80 6276 ret 6277.L840: 6278 add x0, x0, 1 6279 add x3, x2, x0, lsl 4 6280 ldrh w3, [x3, -16] 6281 cmp w3, w22 6282 bne .L835 6283.L837: 6284 mov x0, 1 6285 ldr x1, [x23, #:lo12:.LANCHOR54] 6286 lsl x0, x0, x24 6287 sub w0, w0, #1 6288 and w0, w0, w25 6289 and x0, x0, 65535 6290 add x1, x1, x19, lsl 4 6291 cbnz w21, .L838 6292 ldr x1, [x1, 8] 6293 ldr w0, [x1, x0, lsl 2] 6294 str w0, [x20] 6295.L839: 6296 ldr x0, [x23, #:lo12:.LANCHOR54] 6297 add x19, x0, x19, lsl 4 6298 ldr w0, [x19, 4] 6299 cmn w0, #1 6300 beq .L843 6301 add w0, w0, 1 6302 str w0, [x19, 4] 6303.L843: 6304 mov w0, 0 6305 b .L832 6306.L838: 6307 ldr x2, [x1, 8] 6308 ldr w3, [x20] 6309 str w3, [x2, x0, lsl 2] 6310 ldr w0, [x1, 4] 6311 orr w0, w0, -2147483648 6312 str w0, [x1, 4] 6313 adrp x0, .LANCHOR55 6314 strh w22, [x0, #:lo12:.LANCHOR55] 6315 b .L839 6316 .size log2phys, .-log2phys 6317 .section .text.FtlReUsePrevPpa,"ax",@progbits 6318 .align 2 6319 .global FtlReUsePrevPpa 6320 .type FtlReUsePrevPpa, %function 6321FtlReUsePrevPpa: 6322 stp x29, x30, [sp, -80]! 6323 add x29, sp, 0 6324 stp x21, x22, [sp, 32] 6325 adrp x22, .LANCHOR41 6326 stp x19, x20, [sp, 16] 6327 mov w21, w0 6328 str w1, [x29, 76] 6329 lsr w0, w1, 10 6330 str x23, [sp, 48] 6331 bl P2V_block_in_plane 6332 ldr x2, [x22, #:lo12:.LANCHOR41] 6333 and w3, w0, 65535 6334 ubfiz x20, x3, 1, 16 6335 ldrh w1, [x2, x20] 6336 cbnz w1, .L847 6337 adrp x0, .LANCHOR45 6338 ldr x19, [x0, #:lo12:.LANCHOR45] 6339 cbz x19, .L848 6340 adrp x2, .LANCHOR39 6341 mov x5, -6148914691236517206 6342 movk x5, 0xaaab, lsl 0 6343 adrp x23, .LANCHOR47 6344 ldr x2, [x2, #:lo12:.LANCHOR39] 6345 mov w6, 65535 6346 ldrh w4, [x23, #:lo12:.LANCHOR47] 6347 sub x19, x19, x2 6348 asr x19, x19, 1 6349 mul x19, x19, x5 6350 mov w5, 6 6351 and w19, w19, 65535 6352.L849: 6353 cmp w1, w4 6354 beq .L848 6355 cmp w19, w3 6356 bne .L850 6357 mov w1, w19 6358 add x0, x0, :lo12:.LANCHOR45 6359 bl List_remove_node 6360 ldrh w0, [x23, #:lo12:.LANCHOR47] 6361 cbnz w0, .L851 6362 adrp x1, .LANCHOR153 6363 adrp x0, .LC1 6364 mov w2, 1742 6365 add x1, x1, :lo12:.LANCHOR153 6366 add x0, x0, :lo12:.LC1 6367 bl printf 6368.L851: 6369 ldrh w0, [x23, #:lo12:.LANCHOR47] 6370 sub w0, w0, #1 6371 strh w0, [x23, #:lo12:.LANCHOR47] 6372 mov w0, w19 6373 bl INSERT_DATA_LIST 6374 ldr x1, [x22, #:lo12:.LANCHOR41] 6375 ldrh w0, [x1, x20] 6376 add w0, w0, 1 6377 strh w0, [x1, x20] 6378.L848: 6379 add x1, x29, 76 6380 mov w2, 1 6381 mov w0, w21 6382 bl log2phys 6383 ldp x19, x20, [sp, 16] 6384 ldp x21, x22, [sp, 32] 6385 ldr x23, [sp, 48] 6386 ldp x29, x30, [sp], 80 6387 ret 6388.L850: 6389 umull x19, w19, w5 6390 ldrh w19, [x2, x19] 6391 cmp w19, w6 6392 beq .L848 6393 add w1, w1, 1 6394 and w1, w1, 65535 6395 b .L849 6396.L847: 6397 add w1, w1, 1 6398 strh w1, [x2, x20] 6399 b .L848 6400 .size FtlReUsePrevPpa, .-FtlReUsePrevPpa 6401 .section .text.FtlRecoverySuperblock,"ax",@progbits 6402 .align 2 6403 .global FtlRecoverySuperblock 6404 .type FtlRecoverySuperblock, %function 6405FtlRecoverySuperblock: 6406 stp x29, x30, [sp, -192]! 6407 mov w1, 65535 6408 add x29, sp, 0 6409 stp x19, x20, [sp, 16] 6410 mov x19, x0 6411 stp x21, x22, [sp, 32] 6412 ldrh w0, [x0] 6413 stp x23, x24, [sp, 48] 6414 stp x25, x26, [sp, 64] 6415 cmp w0, w1 6416 stp x27, x28, [sp, 80] 6417 beq .L984 6418 ldrb w0, [x19, 6] 6419 str w0, [x29, 164] 6420 adrp x0, .LANCHOR18 6421 ldrh w26, [x19, 2] 6422 str x0, [x29, 128] 6423 ldrh w2, [x0, #:lo12:.LANCHOR18] 6424 cmp w2, w26 6425 bne .L860 6426 strh wzr, [x19, 4] 6427.L991: 6428 strb wzr, [x19, 6] 6429.L984: 6430 ldp x19, x20, [sp, 16] 6431 mov w0, 0 6432 ldp x21, x22, [sp, 32] 6433 ldp x23, x24, [sp, 48] 6434 ldp x25, x26, [sp, 64] 6435 ldp x27, x28, [sp, 80] 6436 ldp x29, x30, [sp], 192 6437 ret 6438.L860: 6439 ldrh w0, [x19, 16] 6440 mov w20, 0 6441.L861: 6442 cmp w0, w1 6443 beq .L862 6444 mov w1, 1 6445 bl FtlGetLastWrittenPage 6446 mov w23, w0 6447 cmn w0, #1 6448 beq .L863 6449 adrp x1, .LANCHOR63 6450 adrp x2, .LANCHOR2 6451 adrp x20, .LANCHOR102 6452 add x4, x19, 16 6453 ldr x5, [x1, #:lo12:.LANCHOR63] 6454 adrp x1, .LANCHOR22 6455 ldr x0, [x20, #:lo12:.LANCHOR102] 6456 mov w22, 0 6457 ldrh w6, [x1, #:lo12:.LANCHOR22] 6458 adrp x1, .LANCHOR64 6459 mov w10, 65535 6460 str x2, [x29, 152] 6461 ldr x7, [x1, #:lo12:.LANCHOR64] 6462 adrp x1, .LANCHOR23 6463 ldrh w8, [x1, #:lo12:.LANCHOR23] 6464 add x1, x19, 16 6465 str x1, [x29, 168] 6466 ldrh w1, [x2, #:lo12:.LANCHOR2] 6467 add x1, x1, 8 6468 add x1, x19, x1, lsl 1 6469.L864: 6470 cmp x4, x1 6471 bne .L868 6472 mov w2, 0 6473 mov w1, w22 6474 bl FlashReadPages 6475 adrp x0, .LANCHOR82 6476 ldr x4, [x20, #:lo12:.LANCHOR102] 6477 and w10, w23, 65535 6478 add x7, x0, :lo12:.LANCHOR82 6479 ldr w21, [x0, #:lo12:.LANCHOR82] 6480 mov x11, x4 6481 mov w6, 65535 6482 mov w3, 0 6483 sub w21, w21, #1 6484 str x0, [x29, 144] 6485.L869: 6486 cmp w22, w3 6487 bne .L874 6488 add w22, w23, 1 6489 ldr w0, [x4, 4] 6490 and w22, w22, 65535 6491.L986: 6492 lsr w0, w0, 10 6493 bl P2V_plane 6494 and w27, w0, 65535 6495 ldr x0, [x29, 128] 6496 ldrh w0, [x0, #:lo12:.LANCHOR18] 6497 cmp w0, w22 6498 bne .L876 6499 strh w22, [x19, 2] 6500 strb wzr, [x19, 6] 6501 strh wzr, [x19, 4] 6502.L876: 6503 ldr w0, [x29, 164] 6504 cmp w22, w26 6505 cset w1, eq 6506 cmp w27, w0 6507 cset w0, eq 6508 tst w1, w0 6509 beq .L877 6510.L992: 6511 mov w2, w27 6512 mov w1, w22 6513 mov x0, x19 6514 bl ftl_sb_update_avl_pages 6515 b .L984 6516.L862: 6517 add w20, w20, 1 6518 and w20, w20, 65535 6519 add x0, x19, x20, sxtw 1 6520 ldrh w0, [x0, 16] 6521 b .L861 6522.L863: 6523 cbz w26, .L865 6524 adrp x1, .LANCHOR154 6525 adrp x0, .LC1 6526 mov w2, 1809 6527 add x1, x1, :lo12:.LANCHOR154 6528 add x0, x0, :lo12:.LC1 6529 bl printf 6530.L865: 6531 ldr w0, [x29, 164] 6532 cmp w0, 0 6533 ccmp w20, w0, 4, ne 6534 beq .L866 6535 adrp x1, .LANCHOR154 6536 adrp x0, .LC1 6537 mov w2, 1810 6538 add x1, x1, :lo12:.LANCHOR154 6539 add x0, x0, :lo12:.LC1 6540 bl printf 6541.L866: 6542 strh wzr, [x19, 2] 6543 b .L991 6544.L868: 6545 ldrh w3, [x4] 6546 cmp w3, w10 6547 beq .L867 6548 ubfiz x2, x22, 5, 16 6549 orr w3, w23, w3, lsl 10 6550 add x2, x0, x2 6551 str w3, [x2, 4] 6552 mul w3, w22, w6 6553 asr w3, w3, 2 6554 add x3, x5, x3, sxtw 2 6555 str x3, [x2, 8] 6556 mul w3, w22, w8 6557 add w22, w22, 1 6558 and w22, w22, 65535 6559 asr w3, w3, 2 6560 add x3, x7, x3, sxtw 2 6561 str x3, [x2, 16] 6562.L867: 6563 add x4, x4, 2 6564 b .L864 6565.L874: 6566 ldr w0, [x11] 6567 cbnz w0, .L870 6568 ldr x8, [x11, 16] 6569 ldr w5, [x8, 4] 6570 cmn w5, #1 6571 beq .L871 6572 ldr w1, [x7] 6573 mov w0, w5 6574 bl ftl_cmp_data_ver 6575 cbz w0, .L871 6576 add w5, w5, 1 6577 str w5, [x7] 6578.L871: 6579 ldr w0, [x8] 6580 cmn w0, #1 6581 bne .L873 6582 ubfiz x3, x3, 5, 16 6583 and w22, w23, 65535 6584 add x3, x4, x3 6585 ldr w0, [x3, 4] 6586 b .L986 6587.L870: 6588 mov w6, w10 6589.L873: 6590 add w3, w3, 1 6591 add x11, x11, 32 6592 and w3, w3, 65535 6593 b .L869 6594.L877: 6595 mov w0, 65535 6596 cmp w6, w0 6597 bne .L878 6598 ldrb w0, [x19, 8] 6599 cbnz w0, .L879 6600.L878: 6601 adrp x25, .LANCHOR133 6602 and w28, w23, 65535 6603 ldr w0, [x25, #:lo12:.LANCHOR133] 6604 cmn w0, #1 6605 bne .L880 6606 str w21, [x25, #:lo12:.LANCHOR133] 6607.L880: 6608 add w0, w26, 7 6609 cmp w0, w23, uxth 6610 bge .L930 6611 sub w24, w28, #7 6612 and w24, w24, 65535 6613.L881: 6614 ldr x0, [x29, 152] 6615 mov w3, 65535 6616 mov w5, 1 6617 add x4, x0, :lo12:.LANCHOR2 6618.L882: 6619 cmp w24, w28 6620 bhi .L892 6621 ldrh w1, [x4] 6622 mov w23, 0 6623 ldr x0, [x20, #:lo12:.LANCHOR102] 6624 add x1, x1, 8 6625 ldr x2, [x29, 168] 6626 add x1, x19, x1, lsl 1 6627 b .L893 6628.L930: 6629 mov w24, w26 6630 b .L881 6631.L884: 6632 ldrh w6, [x2] 6633 cmp w6, w3 6634 beq .L883 6635 ubfiz x7, x23, 5, 16 6636 add w23, w23, 1 6637 add x7, x0, x7 6638 and w23, w23, 65535 6639 orr w6, w24, w6, lsl 10 6640 str w6, [x7, 4] 6641.L883: 6642 add x2, x2, 2 6643.L893: 6644 cmp x1, x2 6645 bne .L884 6646 mov w1, w23 6647 mov w2, 0 6648 str w5, [x29, 112] 6649 ubfiz x23, x23, 5, 16 6650 str w3, [x29, 120] 6651 add x23, x23, 16 6652 str x4, [x29, 136] 6653 bl FlashReadPages 6654 ldr x2, [x20, #:lo12:.LANCHOR102] 6655 ldr w1, [x25, #:lo12:.LANCHOR133] 6656 ldr w5, [x29, 112] 6657 add x0, x2, 16 6658 ldr w3, [x29, 120] 6659 add x23, x2, x23 6660 ldr x4, [x29, 136] 6661 mov w2, 0 6662.L885: 6663 cmp x23, x0 6664 bne .L890 6665 cbz w2, .L891 6666 str w1, [x25, #:lo12:.LANCHOR133] 6667.L891: 6668 add w24, w24, 1 6669 and w24, w24, 65535 6670 b .L882 6671.L890: 6672 ldr w6, [x0, -16] 6673 cbz w6, .L886 6674 cbz w2, .L879 6675 str w1, [x25, #:lo12:.LANCHOR133] 6676.L879: 6677 adrp x0, .LANCHOR155 6678 mov w23, w26 6679 mov w1, 1 6680 adrp x28, .LANCHOR133 6681 strh w1, [x0, #:lo12:.LANCHOR155] 6682 add x0, x28, :lo12:.LANCHOR133 6683 str x0, [x29, 104] 6684.L894: 6685 ldr x1, [x29, 152] 6686 mov w24, 0 6687 ldr x0, [x20, #:lo12:.LANCHOR102] 6688 mov w5, 65535 6689 ldr x2, [x29, 168] 6690 ldrh w1, [x1, #:lo12:.LANCHOR2] 6691 add x1, x1, 8 6692 add x1, x19, x1, lsl 1 6693.L895: 6694 cmp x1, x2 6695 bne .L897 6696 mov w2, 0 6697 mov w1, w24 6698 bl FlashReadPages 6699 mov x25, 0 6700 ubfiz x0, x24, 5, 16 6701 str x0, [x29, 112] 6702 adrp x0, .LANCHOR156 6703 add x0, x0, :lo12:.LANCHOR156 6704 str x0, [x29, 120] 6705.L898: 6706 ldr x0, [x29, 112] 6707 cmp x25, x0 6708 bne .L924 6709 ldr x0, [x29, 128] 6710 add w23, w23, 1 6711 and w23, w23, 65535 6712 ldrh w0, [x0, #:lo12:.LANCHOR18] 6713 cmp w0, w23 6714 bne .L894 6715 ldr x0, [x29, 152] 6716 mov w2, 65535 6717 strh w23, [x19, 2] 6718 strh wzr, [x19, 4] 6719 ldrh w1, [x0, #:lo12:.LANCHOR2] 6720 mov w0, 0 6721.L925: 6722 cmp w0, w1 6723 beq .L984 6724 ldr x4, [x29, 168] 6725 ldrh w3, [x4], 2 6726 str x4, [x29, 168] 6727 cmp w3, w2 6728 beq .L926 6729 strb w0, [x19, 6] 6730 b .L984 6731.L886: 6732 ldr x6, [x0] 6733 ldrh w7, [x6] 6734 cmp w7, w3 6735 beq .L889 6736 ldr w6, [x6, 4] 6737 cmn w6, #1 6738 csel w1, w1, w6, eq 6739 csel w2, w2, w5, eq 6740.L889: 6741 add x0, x0, 32 6742 b .L885 6743.L892: 6744 mov w0, -1 6745 str w0, [x25, #:lo12:.LANCHOR133] 6746 b .L879 6747.L897: 6748 ldrh w3, [x2] 6749 cmp w3, w5 6750 beq .L896 6751 ubfiz x4, x24, 5, 16 6752 add w24, w24, 1 6753 add x4, x0, x4 6754 and w24, w24, 65535 6755 orr w3, w23, w3, lsl 10 6756 str w3, [x4, 4] 6757.L896: 6758 add x2, x2, 2 6759 b .L895 6760.L924: 6761 ldr x4, [x20, #:lo12:.LANCHOR102] 6762 add x4, x4, x25 6763 ldr w5, [x4, 4] 6764 str w5, [x29, 188] 6765 lsr w0, w5, 10 6766 bl P2V_plane 6767 and w0, w0, 65535 6768 cmp w23, w26 6769 bcc .L899 6770 ldr w1, [x29, 164] 6771 ccmp w1, w0, 0, eq 6772 bhi .L899 6773 cmp w23, w22 6774 ccmp w27, w0, 0, eq 6775 beq .L900 6776 ldr w0, [x4] 6777 cmn w0, #1 6778 beq .L901 6779 ldr x3, [x4, 16] 6780 mov w0, 61589 6781 ldrh w1, [x3] 6782 cmp w1, w0 6783 beq .L902 6784 ldrh w0, [x19] 6785.L988: 6786 bl decrement_vpc_count 6787 b .L899 6788.L902: 6789 ldr w21, [x3, 4] 6790 cmn w21, #1 6791 beq .L903 6792 ldr x0, [x29, 144] 6793 ldr w1, [x0, #:lo12:.LANCHOR82] 6794 mov w0, w21 6795 bl ftl_cmp_data_ver 6796 cbz w0, .L903 6797 ldr x1, [x29, 144] 6798 add w0, w21, 1 6799 str w0, [x1, #:lo12:.LANCHOR82] 6800.L903: 6801 ldp w24, w0, [x3, 8] 6802 add x1, x29, 184 6803 str w0, [x29, 180] 6804 mov w2, 0 6805 mov w0, w24 6806 bl log2phys 6807 ldr w1, [x28, #:lo12:.LANCHOR133] 6808 ldr w3, [x29, 180] 6809 cmn w1, #1 6810 beq .L904 6811 mov w0, w21 6812 bl ftl_cmp_data_ver 6813 cbz w0, .L904 6814 cmn w3, #1 6815 beq .L905 6816 ldr x0, [x20, #:lo12:.LANCHOR102] 6817 mov w2, 0 6818 mov w1, 1 6819 add x0, x0, x25 6820 ldr x4, [x0, 16] 6821 str w3, [x0, 4] 6822 str x4, [x29, 136] 6823 bl FlashReadPages 6824 ldr x0, [x20, #:lo12:.LANCHOR102] 6825 ldr x4, [x29, 136] 6826 add x3, x0, x25 6827 ldr w0, [x0, x25] 6828 cmn w0, #1 6829 bne .L906 6830.L907: 6831 mov w0, -1 6832 str w0, [x29, 180] 6833.L914: 6834 ldr w3, [x29, 180] 6835 cmn w3, #1 6836 beq .L899 6837.L929: 6838 lsr w0, w3, 10 6839 bl P2V_block_in_plane 6840 and w24, w0, 65535 6841 adrp x0, .LANCHOR4 6842 mov w3, w24 6843 ldrh w0, [x0, #:lo12:.LANCHOR4] 6844 cmp w0, w24 6845 bhi .L920 6846 mov w2, 2066 6847 adrp x1, .LANCHOR154 6848 adrp x0, .LC1 6849 add x1, x1, :lo12:.LANCHOR154 6850 add x0, x0, :lo12:.LC1 6851 str w24, [x29, 136] 6852 bl printf 6853 ldr w3, [x29, 136] 6854.L920: 6855 adrp x1, .LANCHOR41 6856 ubfiz x0, x24, 1, 16 6857 ldr x1, [x1, #:lo12:.LANCHOR41] 6858 ldrh w0, [x1, x0] 6859 cbz w0, .L921 6860 mov w0, w3 6861 b .L988 6862.L905: 6863 ldp w1, w0, [x29, 184] 6864 cmp w1, w0 6865 bne .L899 6866 mov w2, 1 6867 add x1, x29, 180 6868 mov w0, w24 6869 bl log2phys 6870.L899: 6871 add x25, x25, 32 6872 b .L898 6873.L906: 6874 ldr w0, [x4, 8] 6875 cmp w24, w0 6876 bne .L907 6877 ldr w0, [x4, 4] 6878 str w0, [x29, 136] 6879 str x4, [x29, 96] 6880 uxtw x1, w0 6881 ldr w0, [x28, #:lo12:.LANCHOR133] 6882 bl ftl_cmp_data_ver 6883 cbz w0, .L907 6884 ldp w0, w1, [x29, 184] 6885 ldr x4, [x29, 96] 6886 cmp w0, w1 6887 ldr w1, [x29, 180] 6888 bne .L909 6889.L987: 6890 mov w0, w24 6891 bl FtlReUsePrevPpa 6892 b .L907 6893.L909: 6894 cmp w0, w1 6895 beq .L907 6896 cmn w0, #1 6897 beq .L910 6898 ldr x4, [x3, 16] 6899 mov w2, 0 6900 str w0, [x3, 4] 6901 mov w1, 1 6902 str x4, [x29, 96] 6903 mov x0, x3 6904 bl FlashReadPages 6905 ldr x4, [x29, 96] 6906.L911: 6907 ldr x0, [x20, #:lo12:.LANCHOR102] 6908 ldr w0, [x0, x25] 6909 cmn w0, #1 6910 beq .L912 6911 ldr x0, [x29, 104] 6912 ldr w3, [x4, 4] 6913 mov w1, w3 6914 ldr w0, [x0] 6915 bl ftl_cmp_data_ver 6916 cbz w0, .L912 6917 ldr w0, [x29, 136] 6918 mov w1, w3 6919 bl ftl_cmp_data_ver 6920 cbz w0, .L907 6921.L912: 6922 ldr w1, [x29, 180] 6923 b .L987 6924.L910: 6925 str w0, [x3] 6926 b .L911 6927.L904: 6928 ldp w1, w0, [x29, 184] 6929 cmp w1, w0 6930 beq .L914 6931 cmn w3, #1 6932 beq .L916 6933 adrp x0, .LANCHOR7 6934 ldr w0, [x0, #:lo12:.LANCHOR7] 6935 cmp w0, w3, lsr 10 6936 bhi .L916 6937 adrp x0, .LC27 6938 mov w1, w3 6939 add x0, x0, :lo12:.LC27 6940.L990: 6941 bl printf 6942 b .L899 6943.L916: 6944 mov w2, 1 6945 add x1, x29, 188 6946 mov w0, w24 6947 bl log2phys 6948 ldr w3, [x29, 184] 6949 cmn w3, #1 6950 beq .L914 6951 ldr w0, [x29, 180] 6952 cmp w3, w0 6953 beq .L929 6954 lsr w0, w3, 10 6955 bl P2V_block_in_plane 6956 adrp x1, .LANCHOR50 6957 and w0, w0, 65535 6958 ldrh w1, [x1, #:lo12:.LANCHOR50] 6959 cmp w1, w0 6960 beq .L919 6961 adrp x1, .LANCHOR51 6962 ldrh w1, [x1, #:lo12:.LANCHOR51] 6963 cmp w1, w0 6964 beq .L919 6965 adrp x1, .LANCHOR52 6966 ldrh w1, [x1, #:lo12:.LANCHOR52] 6967 cmp w1, w0 6968 bne .L914 6969.L919: 6970 ldr x0, [x20, #:lo12:.LANCHOR102] 6971 mov w2, 0 6972 mov w1, 1 6973 ldr x4, [x0, 16] 6974 str w3, [x0, 4] 6975 str x4, [x29, 136] 6976 bl FlashReadPages 6977 ldr x0, [x20, #:lo12:.LANCHOR102] 6978 ldr w0, [x0] 6979 cmn w0, #1 6980 beq .L914 6981 ldr x4, [x29, 136] 6982 mov w0, w21 6983 ldr w1, [x4, 4] 6984 bl ftl_cmp_data_ver 6985 cbnz w0, .L914 6986 mov w2, 1 6987 add x1, x29, 184 6988 mov w0, w24 6989 bl log2phys 6990 b .L914 6991.L921: 6992 adrp x0, .LC28 6993 mov w1, w24 6994 add x0, x0, :lo12:.LC28 6995 b .L990 6996.L901: 6997 ldr x0, [x29, 120] 6998 ldr w0, [x0] 6999 cmp w0, 31 7000 bhi .L922 7001 adrp x1, .LANCHOR157 7002 add x1, x1, :lo12:.LANCHOR157 7003 str w5, [x1, w0, uxtw 2] 7004 add w0, w0, 1 7005 ldr x1, [x29, 120] 7006 str w0, [x1] 7007.L922: 7008 ldrh w0, [x19] 7009 bl decrement_vpc_count 7010 ldr w0, [x28, #:lo12:.LANCHOR133] 7011 cmn w0, #1 7012 bne .L923 7013.L989: 7014 str w21, [x28, #:lo12:.LANCHOR133] 7015 b .L899 7016.L923: 7017 cmp w21, w0 7018 bcs .L899 7019 b .L989 7020.L926: 7021 add w0, w0, 1 7022 and w0, w0, 65535 7023 b .L925 7024.L900: 7025 strb w27, [x19, 6] 7026 strh w22, [x19, 2] 7027 b .L992 7028 .size FtlRecoverySuperblock, .-FtlRecoverySuperblock 7029 .section .text.ftl_check_vpc,"ax",@progbits 7030 .align 2 7031 .global ftl_check_vpc 7032 .type ftl_check_vpc, %function 7033ftl_check_vpc: 7034 stp x29, x30, [sp, -112]! 7035 adrp x0, .LC29 7036 add x0, x0, :lo12:.LC29 7037 add x29, sp, 0 7038 stp x23, x24, [sp, 48] 7039 adrp x23, .LANCHOR151 7040 add x23, x23, :lo12:.LANCHOR151 7041 stp x21, x22, [sp, 32] 7042 mov w22, 0 7043 stp x19, x20, [sp, 16] 7044 stp x25, x26, [sp, 64] 7045 adrp x21, .LANCHOR158 7046 stp x27, x28, [sp, 80] 7047 add x1, x21, :lo12:.LANCHOR158 7048 adrp x20, check_vpc_table 7049 bl printf 7050 add x19, x20, :lo12:check_vpc_table 7051 mov w2, 8192 7052 mov w1, 0 7053 mov x0, x19 7054 bl ftl_memset 7055.L994: 7056 ldr w0, [x23] 7057 cmp w22, w0 7058 bcc .L996 7059 adrp x22, .LANCHOR4 7060 adrp x24, .LC30 7061 add x22, x22, :lo12:.LANCHOR4 7062 add x26, x20, :lo12:check_vpc_table 7063 add x24, x24, :lo12:.LC30 7064 mov w23, 0 7065 mov w19, 0 7066 adrp x25, .LANCHOR41 7067.L997: 7068 ldrh w0, [x22] 7069 cmp w0, w19 7070 bhi .L999 7071 adrp x0, .LANCHOR45 7072 ldr x19, [x0, #:lo12:.LANCHOR45] 7073 cbz x19, .L1000 7074 adrp x0, .LANCHOR47 7075 adrp x25, .LC31 7076 add x20, x20, :lo12:check_vpc_table 7077 add x25, x25, :lo12:.LC31 7078 ldrh w26, [x0, #:lo12:.LANCHOR47] 7079 adrp x0, .LANCHOR39 7080 mov x24, x0 7081 mov w22, 0 7082 ldr x1, [x0, #:lo12:.LANCHOR39] 7083 adrp x27, .LANCHOR41 7084 mov w28, 6 7085 sub x19, x19, x1 7086 mov x1, -6148914691236517206 7087 asr x19, x19, 1 7088 movk x1, 0xaaab, lsl 0 7089 mul x19, x19, x1 7090 and w19, w19, 65535 7091.L1001: 7092 cmp w22, w26 7093 bne .L1003 7094.L1000: 7095 cbz w23, .L993 7096 adrp x0, .LC1 7097 mov w2, 2394 7098 add x1, x21, :lo12:.LANCHOR158 7099 add x0, x0, :lo12:.LC1 7100 bl printf 7101.L993: 7102 ldp x19, x20, [sp, 16] 7103 ldp x21, x22, [sp, 32] 7104 ldp x23, x24, [sp, 48] 7105 ldp x25, x26, [sp, 64] 7106 ldp x27, x28, [sp, 80] 7107 ldp x29, x30, [sp], 112 7108 ret 7109.L996: 7110 mov w2, 0 7111 add x1, x29, 108 7112 mov w0, w22 7113 bl log2phys 7114 ldr w0, [x29, 108] 7115 cmn w0, #1 7116 beq .L995 7117 lsr w0, w0, 10 7118 bl P2V_block_in_plane 7119 and x0, x0, 65535 7120 ldrh w1, [x19, x0, lsl 1] 7121 add w1, w1, 1 7122 strh w1, [x19, x0, lsl 1] 7123.L995: 7124 add w22, w22, 1 7125 b .L994 7126.L999: 7127 ldr x0, [x25, #:lo12:.LANCHOR41] 7128 ubfiz x28, x19, 1, 16 7129 sxtw x27, w19 7130 ldrh w2, [x0, x28] 7131 ldrh w3, [x26, x27, lsl 1] 7132 cmp w2, w3 7133 beq .L998 7134 mov w1, w19 7135 mov x0, x24 7136 bl printf 7137 ldr x0, [x25, #:lo12:.LANCHOR41] 7138 mov w1, 65535 7139 ldrh w0, [x0, x28] 7140 cmp w0, w1 7141 beq .L998 7142 ldrh w1, [x26, x27, lsl 1] 7143 cmp w1, w0 7144 csinc w23, w23, wzr, ls 7145.L998: 7146 add w19, w19, 1 7147 and w19, w19, 65535 7148 b .L997 7149.L1003: 7150 ldr x1, [x27, #:lo12:.LANCHOR41] 7151 ubfiz x0, x19, 1, 16 7152 ldrh w2, [x1, x0] 7153 cbz w2, .L1002 7154 ldrh w3, [x20, w19, sxtw 1] 7155 mov w23, 1 7156 mov w1, w19 7157 mov x0, x25 7158 bl printf 7159.L1002: 7160 ldr x0, [x24, #:lo12:.LANCHOR39] 7161 umull x19, w19, w28 7162 ldrh w19, [x0, x19] 7163 mov w0, 65535 7164 cmp w19, w0 7165 beq .L1000 7166 add w22, w22, 1 7167 and w22, w22, 65535 7168 b .L1001 7169 .size ftl_check_vpc, .-ftl_check_vpc 7170 .section .text.ftl_scan_all_data,"ax",@progbits 7171 .align 2 7172 .global ftl_scan_all_data 7173 .type ftl_scan_all_data, %function 7174ftl_scan_all_data: 7175 sub sp, sp, #96 7176 adrp x0, .LC32 7177 mov w1, 0 7178 add x0, x0, :lo12:.LC32 7179 stp x29, x30, [sp, 16] 7180 add x29, sp, 16 7181 stp x19, x20, [sp, 32] 7182 adrp x20, .LANCHOR137 7183 stp x21, x22, [sp, 48] 7184 mov w19, 0 7185 adrp x21, .LANCHOR151 7186 add x22, x20, :lo12:.LANCHOR137 7187 add x21, x21, :lo12:.LANCHOR151 7188 str x23, [sp, 64] 7189 bl printf 7190.L1019: 7191 ldr w0, [x21] 7192 cmp w19, w0 7193 bcc .L1025 7194 ldp x19, x20, [sp, 32] 7195 ldp x21, x22, [sp, 48] 7196 ldp x29, x30, [sp, 16] 7197 ldr x23, [sp, 64] 7198 add sp, sp, 96 7199 ret 7200.L1025: 7201 mov w2, 0 7202 add x1, x29, 76 7203 mov w0, w19 7204 bl log2phys 7205 tst x19, 2047 7206 bne .L1020 7207 ldr w2, [x29, 76] 7208 adrp x0, .LC33 7209 mov w1, w19 7210 add x0, x0, :lo12:.LC33 7211 bl printf 7212.L1020: 7213 ldr w1, [x29, 76] 7214 cmn w1, #1 7215 beq .L1022 7216 add x0, x20, :lo12:.LANCHOR137 7217 str wzr, [x20, #:lo12:.LANCHOR137] 7218 mov w2, 0 7219 str w1, [x0, 4] 7220 adrp x1, .LANCHOR105 7221 str w19, [x0, 24] 7222 ldr x1, [x1, #:lo12:.LANCHOR105] 7223 str x1, [x0, 8] 7224 adrp x1, .LANCHOR113 7225 ldr x23, [x1, #:lo12:.LANCHOR113] 7226 mov w1, 1 7227 str x23, [x0, 16] 7228 bl FlashReadPages 7229 ldr w0, [x20, #:lo12:.LANCHOR137] 7230 cmp w0, 256 7231 ccmn w0, #1, 4, ne 7232 beq .L1023 7233 ldr w0, [x23, 8] 7234 cmp w19, w0 7235 beq .L1022 7236.L1023: 7237 ldp x1, x0, [x22, 8] 7238 ldr w2, [x1, 4] 7239 str w2, [sp] 7240 ldr w2, [x22, 4] 7241 ldp w3, w4, [x0] 7242 ldp w5, w6, [x0, 8] 7243 adrp x0, .LC34 7244 ldr w7, [x1] 7245 add x0, x0, :lo12:.LC34 7246 mov w1, w19 7247 bl printf 7248.L1022: 7249 add w19, w19, 1 7250 b .L1019 7251 .size ftl_scan_all_data, .-ftl_scan_all_data 7252 .section .text.FtlGcScanTempBlk,"ax",@progbits 7253 .align 2 7254 .global FtlGcScanTempBlk 7255 .type FtlGcScanTempBlk, %function 7256FtlGcScanTempBlk: 7257 stp x29, x30, [sp, -144]! 7258 add x29, sp, 0 7259 stp x25, x26, [sp, 64] 7260 adrp x25, .LANCHOR159 7261 stp x19, x20, [sp, 16] 7262 mov x19, x0 7263 ldrh w20, [x25, #:lo12:.LANCHOR159] 7264 mov w0, 65535 7265 stp x21, x22, [sp, 32] 7266 stp x23, x24, [sp, 48] 7267 cmp w20, w0 7268 str x27, [sp, 80] 7269 beq .L1048 7270 cbnz w20, .L1028 7271.L1029: 7272 bl FtlGcPageVarInit 7273 b .L1030 7274.L1048: 7275 mov w20, 0 7276.L1028: 7277 adrp x0, .LANCHOR18 7278 ldrh w0, [x0, #:lo12:.LANCHOR18] 7279 cmp w0, w1 7280 beq .L1029 7281.L1030: 7282 adrp x26, .LANCHOR151 7283 add x26, x26, :lo12:.LANCHOR151 7284.L1045: 7285 ldrh w1, [x19] 7286 mov w0, 65535 7287 strb wzr, [x19, 8] 7288 cmp w1, w0 7289 beq .L1031 7290.L1047: 7291 adrp x1, .LANCHOR63 7292 adrp x24, .LANCHOR102 7293 add x4, x19, 16 7294 mov w21, 0 7295 ldr x5, [x1, #:lo12:.LANCHOR63] 7296 adrp x1, .LANCHOR22 7297 ldr x0, [x24, #:lo12:.LANCHOR102] 7298 mov w10, 65535 7299 ldrh w6, [x1, #:lo12:.LANCHOR22] 7300 adrp x1, .LANCHOR64 7301 ldr x7, [x1, #:lo12:.LANCHOR64] 7302 adrp x1, .LANCHOR23 7303 ldrh w8, [x1, #:lo12:.LANCHOR23] 7304 adrp x1, .LANCHOR2 7305 ldrh w1, [x1, #:lo12:.LANCHOR2] 7306 add x1, x1, 8 7307 add x1, x19, x1, lsl 1 7308.L1032: 7309 cmp x1, x4 7310 bne .L1034 7311 mov w1, w21 7312 ubfiz x21, x21, 5, 16 7313 mov x22, 0 7314 mov w2, 0 7315 bl FlashReadPages 7316.L1035: 7317 cmp x21, x22 7318 bne .L1046 7319 adrp x0, .LANCHOR18 7320 add w20, w20, 1 7321 and w20, w20, 65535 7322 ldrh w0, [x0, #:lo12:.LANCHOR18] 7323 cmp w0, w20 7324 bhi .L1047 7325.L1031: 7326 strh w20, [x19, 2] 7327 mov w0, -1 7328 strb wzr, [x19, 6] 7329 mov w1, w20 7330 strh w0, [x25, #:lo12:.LANCHOR159] 7331 mov w2, 0 7332 mov x0, x19 7333 bl ftl_sb_update_avl_pages 7334 mov w0, -1 7335 ldr x27, [sp, 80] 7336 ldp x19, x20, [sp, 16] 7337 ldp x21, x22, [sp, 32] 7338 ldp x23, x24, [sp, 48] 7339 ldp x25, x26, [sp, 64] 7340 ldp x29, x30, [sp], 144 7341 ret 7342.L1034: 7343 ldrh w3, [x4] 7344 cmp w3, w10 7345 beq .L1033 7346 ubfiz x2, x21, 5, 16 7347 orr w3, w20, w3, lsl 10 7348 add x2, x0, x2 7349 str w3, [x2, 4] 7350 mul w3, w21, w6 7351 asr w3, w3, 2 7352 add x3, x5, x3, sxtw 2 7353 str x3, [x2, 8] 7354 mul w3, w21, w8 7355 add w21, w21, 1 7356 and w21, w21, 65535 7357 asr w3, w3, 2 7358 add x3, x7, x3, sxtw 2 7359 str x3, [x2, 16] 7360.L1033: 7361 add x4, x4, 2 7362 b .L1032 7363.L1046: 7364 ldr x0, [x24, #:lo12:.LANCHOR102] 7365 add x1, x0, x22 7366 ldr w0, [x0, x22] 7367 ldr w27, [x1, 4] 7368 ldr x23, [x1, 16] 7369 cbnz w0, .L1036 7370 ldrh w1, [x23] 7371 mov w0, 65535 7372 cmp w1, w0 7373 beq .L1058 7374 ldr w0, [x23, 8] 7375 ldr w1, [x26] 7376 cmp w0, w1 7377 bls .L1038 7378.L1058: 7379 adrp x0, .LANCHOR41 7380 ldrh w1, [x19] 7381 mov w20, 0 7382 ldr x0, [x0, #:lo12:.LANCHOR41] 7383 strh wzr, [x0, x1, lsl 1] 7384 ldrh w0, [x19] 7385 bl INSERT_FREE_LIST 7386 mov w0, -1 7387 adrp x1, .LANCHOR144 7388 strh w0, [x19] 7389 strh w0, [x1, #:lo12:.LANCHOR144] 7390 bl FtlGcPageVarInit 7391 b .L1045 7392.L1038: 7393 add x1, x29, 108 7394 mov w2, 0 7395 bl log2phys 7396 ldr w0, [x23, 12] 7397 ldr w1, [x29, 108] 7398 cmp w0, w1 7399 beq .L1040 7400.L1042: 7401 ldr w2, [x23, 8] 7402.L1059: 7403 ldr w0, [x23, 12] 7404 mov w1, w27 7405 add x22, x22, 32 7406 bl FtlGcUpdatePage 7407 b .L1035 7408.L1040: 7409 cmn w0, #1 7410 beq .L1042 7411 str w0, [x29, 116] 7412 adrp x0, .LANCHOR109 7413 mov w2, 0 7414 mov w1, 1 7415 ldr x0, [x0, #:lo12:.LANCHOR109] 7416 str x0, [x29, 120] 7417 adrp x0, .LANCHOR114 7418 ldr x0, [x0, #:lo12:.LANCHOR114] 7419 str x0, [x29, 128] 7420 add x0, x29, 112 7421 bl FlashReadPages 7422 adrp x0, .LANCHOR11 7423 ldr x2, [x24, #:lo12:.LANCHOR102] 7424 ldr x3, [x29, 120] 7425 ldrh w1, [x0, #:lo12:.LANCHOR11] 7426 add x2, x2, x22 7427 mov x0, 0 7428 ubfiz x1, x1, 9, 16 7429.L1043: 7430 cmp x0, x1 7431 beq .L1042 7432 ldr x4, [x2, 8] 7433 ldr w5, [x4, x0] 7434 add x0, x0, 4 7435 add x4, x3, x0 7436 ldr w4, [x4, -4] 7437 cmp w5, w4 7438 beq .L1043 7439 ldrh w1, [x19] 7440 adrp x0, .LC35 7441 ldr w2, [x29, 116] 7442 add x0, x0, :lo12:.LC35 7443 bl printf 7444 b .L1058 7445.L1036: 7446 mov w2, -1 7447 b .L1059 7448 .size FtlGcScanTempBlk, .-FtlGcScanTempBlk 7449 .section .text.FtlVendorPartWrite,"ax",@progbits 7450 .align 2 7451 .global FtlVendorPartWrite 7452 .type FtlVendorPartWrite, %function 7453FtlVendorPartWrite: 7454 stp x29, x30, [sp, -208]! 7455 add x29, sp, 0 7456 stp x19, x20, [sp, 16] 7457 mov w20, w1 7458 stp x27, x28, [sp, 80] 7459 add w1, w0, w1 7460 mov w28, w0 7461 adrp x0, .LANCHOR15 7462 stp x21, x22, [sp, 32] 7463 ldrh w0, [x0, #:lo12:.LANCHOR15] 7464 stp x23, x24, [sp, 48] 7465 stp x25, x26, [sp, 64] 7466 cmp w1, w0 7467 bhi .L1068 7468 adrp x0, .LANCHOR21 7469 adrp x25, .LANCHOR11 7470 adrp x26, .LANCHOR22 7471 mov x24, x2 7472 ldrh w21, [x0, #:lo12:.LANCHOR21] 7473 add x25, x25, :lo12:.LANCHOR11 7474 add x26, x26, :lo12:.LANCHOR22 7475 mov w23, 0 7476 lsr w21, w28, w21 7477.L1062: 7478 cbnz w20, .L1067 7479.L1060: 7480 mov w0, w23 7481 ldp x19, x20, [sp, 16] 7482 ldp x21, x22, [sp, 32] 7483 ldp x23, x24, [sp, 48] 7484 ldp x25, x26, [sp, 64] 7485 ldp x27, x28, [sp, 80] 7486 ldp x29, x30, [sp], 208 7487 ret 7488.L1067: 7489 ldrh w1, [x25] 7490 adrp x0, .LANCHOR122 7491 adrp x27, .LANCHOR107 7492 ldr x0, [x0, #:lo12:.LANCHOR122] 7493 udiv w22, w28, w1 7494 ldr w2, [x0, w21, uxtw 2] 7495 and w0, w20, 65535 7496 msub w22, w22, w1, w28 7497 sub w19, w1, w22 7498 and w19, w19, 65535 7499 cmp w20, w19 7500 csel w19, w0, w19, cc 7501 cbz w2, .L1064 7502 cmp w19, w1 7503 beq .L1064 7504 ldr x0, [x27, #:lo12:.LANCHOR107] 7505 str x0, [x29, 120] 7506 add x0, x29, 144 7507 str w2, [x29, 116] 7508 mov w2, 1 7509 str x0, [x29, 128] 7510 mov w1, w2 7511 add x0, x29, 112 7512 bl FlashReadPages 7513.L1065: 7514 lsl w4, w19, 9 7515 ldr x0, [x27, #:lo12:.LANCHOR107] 7516 lsl w22, w22, 7 7517 mov w2, w4 7518 mov x1, x24 7519 str w4, [x29, 108] 7520 add x0, x0, x22, sxtw 2 7521 bl ftl_memcpy 7522 ldr x2, [x27, #:lo12:.LANCHOR107] 7523 mov w1, w21 7524 adrp x0, .LANCHOR160 7525 add x0, x0, :lo12:.LANCHOR160 7526 sub w20, w20, w19 7527 add w28, w28, w19 7528 add w21, w21, 1 7529 bl FtlMapWritePage 7530 cmn w0, #1 7531 ldr w4, [x29, 108] 7532 csinv w23, w23, wzr, ne 7533 add x24, x24, x4, sxtw 7534 b .L1062 7535.L1064: 7536 ldrh w2, [x26] 7537 mov w1, 0 7538 ldr x0, [x27, #:lo12:.LANCHOR107] 7539 bl ftl_memset 7540 b .L1065 7541.L1068: 7542 mov w23, -1 7543 b .L1060 7544 .size FtlVendorPartWrite, .-FtlVendorPartWrite 7545 .section .text.Ftl_save_ext_data,"ax",@progbits 7546 .align 2 7547 .global Ftl_save_ext_data 7548 .type Ftl_save_ext_data, %function 7549Ftl_save_ext_data: 7550 adrp x0, .LANCHOR134 7551 add x2, x0, :lo12:.LANCHOR134 7552 ldr w1, [x0, #:lo12:.LANCHOR134] 7553 mov w0, 19539 7554 movk w0, 0x4654, lsl 16 7555 cmp w1, w0 7556 bne .L1073 7557 mov w0, 86 7558 mov w1, 1 7559 movk w0, 0x5000, lsl 16 7560 str w0, [x2, 4] 7561 adrp x0, .LANCHOR161 7562 ldr w0, [x0, #:lo12:.LANCHOR161] 7563 str w0, [x2, 88] 7564 adrp x0, .LANCHOR162 7565 ldr w0, [x0, #:lo12:.LANCHOR162] 7566 str w0, [x2, 92] 7567 adrp x0, .LANCHOR83 7568 ldr w0, [x0, #:lo12:.LANCHOR83] 7569 str w0, [x2, 8] 7570 adrp x0, .LANCHOR84 7571 ldr w0, [x0, #:lo12:.LANCHOR84] 7572 str w0, [x2, 12] 7573 adrp x0, .LANCHOR88 7574 ldr w0, [x0, #:lo12:.LANCHOR88] 7575 str w0, [x2, 16] 7576 adrp x0, .LANCHOR87 7577 ldr w0, [x0, #:lo12:.LANCHOR87] 7578 str w0, [x2, 20] 7579 adrp x0, .LANCHOR90 7580 ldr w0, [x0, #:lo12:.LANCHOR90] 7581 str w0, [x2, 28] 7582 adrp x0, .LANCHOR79 7583 ldr w0, [x0, #:lo12:.LANCHOR79] 7584 str w0, [x2, 32] 7585 adrp x0, .LANCHOR85 7586 ldr w0, [x0, #:lo12:.LANCHOR85] 7587 str w0, [x2, 36] 7588 adrp x0, .LANCHOR86 7589 ldr w0, [x0, #:lo12:.LANCHOR86] 7590 str w0, [x2, 40] 7591 adrp x0, .LANCHOR91 7592 ldr w0, [x0, #:lo12:.LANCHOR91] 7593 str w0, [x2, 44] 7594 adrp x0, .LANCHOR92 7595 ldr w0, [x0, #:lo12:.LANCHOR92] 7596 str w0, [x2, 48] 7597 mov w0, 0 7598 b FtlVendorPartWrite 7599.L1073: 7600 ret 7601 .size Ftl_save_ext_data, .-Ftl_save_ext_data 7602 .section .text.FtlEctTblFlush,"ax",@progbits 7603 .align 2 7604 .global FtlEctTblFlush 7605 .type FtlEctTblFlush, %function 7606FtlEctTblFlush: 7607 adrp x2, .LANCHOR163 7608 ldrh w1, [x2, #:lo12:.LANCHOR163] 7609 cmp w1, 31 7610 bhi .L1079 7611 add w1, w1, 1 7612 strh w1, [x2, #:lo12:.LANCHOR163] 7613 mov w1, 1 7614.L1076: 7615 adrp x2, .LANCHOR117 7616 cbnz w0, .L1077 7617 ldr x0, [x2, #:lo12:.LANCHOR117] 7618 ldr w3, [x0, 20] 7619 ldr w0, [x0, 16] 7620 add w1, w1, w3 7621 cmp w0, w1 7622 bcc .L1081 7623.L1077: 7624 stp x29, x30, [sp, -16]! 7625 add x29, sp, 0 7626 ldr x2, [x2, #:lo12:.LANCHOR117] 7627 ldr w0, [x2, 16] 7628 str w0, [x2, 20] 7629 mov w0, 17221 7630 str wzr, [x2, 4] 7631 movk w0, 0x4254, lsl 16 7632 str w0, [x2] 7633 adrp x0, .LANCHOR115 7634 ldrh w1, [x0, #:lo12:.LANCHOR115] 7635 lsl w0, w1, 9 7636 str w0, [x2, 12] 7637 ldr w0, [x2, 8] 7638 add w0, w0, 1 7639 str w0, [x2, 8] 7640 mov w0, 64 7641 bl FtlVendorPartWrite 7642 bl Ftl_save_ext_data 7643 mov w0, 0 7644 ldp x29, x30, [sp], 16 7645 ret 7646.L1079: 7647 mov w1, 32 7648 b .L1076 7649.L1081: 7650 mov w0, 0 7651 ret 7652 .size FtlEctTblFlush, .-FtlEctTblFlush 7653 .section .text.sftl_vendor_write,"ax",@progbits 7654 .align 2 7655 .global sftl_vendor_write 7656 .type sftl_vendor_write, %function 7657sftl_vendor_write: 7658 add w0, w0, 256 7659 b FtlVendorPartWrite 7660 .size sftl_vendor_write, .-sftl_vendor_write 7661 .section .text.FtlVendorPartRead,"ax",@progbits 7662 .align 2 7663 .global FtlVendorPartRead 7664 .type FtlVendorPartRead, %function 7665FtlVendorPartRead: 7666 stp x29, x30, [sp, -208]! 7667 add x29, sp, 0 7668 stp x21, x22, [sp, 32] 7669 mov w22, w0 7670 mov w21, w1 7671 add w1, w0, w1 7672 adrp x0, .LANCHOR15 7673 stp x19, x20, [sp, 16] 7674 stp x23, x24, [sp, 48] 7675 ldrh w0, [x0, #:lo12:.LANCHOR15] 7676 stp x25, x26, [sp, 64] 7677 stp x27, x28, [sp, 80] 7678 cmp w1, w0 7679 bhi .L1093 7680 adrp x0, .LANCHOR21 7681 mov x25, x2 7682 mov w24, 0 7683 adrp x27, .LANCHOR122 7684 ldrh w20, [x0, #:lo12:.LANCHOR21] 7685 adrp x0, .LANCHOR11 7686 add x0, x0, :lo12:.LANCHOR11 7687 str x0, [x29, 104] 7688 lsr w20, w22, w20 7689.L1086: 7690 cbnz w21, .L1092 7691.L1084: 7692 mov w0, w24 7693 ldp x19, x20, [sp, 16] 7694 ldp x21, x22, [sp, 32] 7695 ldp x23, x24, [sp, 48] 7696 ldp x25, x26, [sp, 64] 7697 ldp x27, x28, [sp, 80] 7698 ldp x29, x30, [sp], 208 7699 ret 7700.L1092: 7701 ldr x0, [x27, #:lo12:.LANCHOR122] 7702 ldr w4, [x0, w20, uxtw 2] 7703 ldr x0, [x29, 104] 7704 ldrh w19, [x0] 7705 and w0, w21, 65535 7706 udiv w23, w22, w19 7707 msub w23, w23, w19, w22 7708 sub w19, w19, w23 7709 and w19, w19, 65535 7710 cmp w21, w19 7711 csel w19, w0, w19, cc 7712 lsl w26, w19, 9 7713 cbz w4, .L1088 7714 adrp x28, .LANCHOR107 7715 mov w2, 1 7716 str w4, [x29, 96] 7717 mov w1, w2 7718 ldr x0, [x28, #:lo12:.LANCHOR107] 7719 str x0, [x29, 120] 7720 add x0, x29, 144 7721 str w4, [x29, 116] 7722 str x0, [x29, 128] 7723 add x0, x29, 112 7724 bl FlashReadPages 7725 ldr w0, [x29, 112] 7726 mov x5, x28 7727 ldr w4, [x29, 96] 7728 cmn w0, #1 7729 adrp x0, .LANCHOR137 7730 csinv w24, w24, wzr, ne 7731 ldr w0, [x0, #:lo12:.LANCHOR137] 7732 cmp w0, 256 7733 bne .L1090 7734 mov w2, w4 7735 mov w1, w20 7736 adrp x0, .LC36 7737 str x28, [x29, 96] 7738 add x0, x0, :lo12:.LC36 7739 bl printf 7740 ldr x2, [x28, #:lo12:.LANCHOR107] 7741 mov w1, w20 7742 adrp x0, .LANCHOR160 7743 add x0, x0, :lo12:.LANCHOR160 7744 bl FtlMapWritePage 7745 ldr x5, [x29, 96] 7746.L1090: 7747 ldr x1, [x5, #:lo12:.LANCHOR107] 7748 lsl w23, w23, 7 7749 mov w2, w26 7750 mov x0, x25 7751 add x1, x1, x23, sxtw 2 7752 bl ftl_memcpy 7753.L1091: 7754 add w20, w20, 1 7755 sub w21, w21, w19 7756 add w22, w22, w19 7757 add x25, x25, x26, sxtw 7758 b .L1086 7759.L1088: 7760 mov w2, w26 7761 mov w1, 0 7762 mov x0, x25 7763 bl ftl_memset 7764 b .L1091 7765.L1093: 7766 mov w24, -1 7767 b .L1084 7768 .size FtlVendorPartRead, .-FtlVendorPartRead 7769 .section .text.FtlLoadEctTbl,"ax",@progbits 7770 .align 2 7771 .global FtlLoadEctTbl 7772 .type FtlLoadEctTbl, %function 7773FtlLoadEctTbl: 7774 stp x29, x30, [sp, -32]! 7775 mov w0, 64 7776 add x29, sp, 0 7777 stp x19, x20, [sp, 16] 7778 adrp x19, .LANCHOR117 7779 adrp x20, .LANCHOR115 7780 ldr x2, [x19, #:lo12:.LANCHOR117] 7781 ldrh w1, [x20, #:lo12:.LANCHOR115] 7782 bl FtlVendorPartRead 7783 ldr x0, [x19, #:lo12:.LANCHOR117] 7784 ldr w1, [x0] 7785 mov w0, 17221 7786 movk w0, 0x4254, lsl 16 7787 cmp w1, w0 7788 beq .L1096 7789 adrp x1, .LC37 7790 adrp x0, .LC38 7791 add x1, x1, :lo12:.LC37 7792 add x0, x0, :lo12:.LC38 7793 bl printf 7794 ldr x0, [x19, #:lo12:.LANCHOR117] 7795 mov w1, 0 7796 ldrh w2, [x20, #:lo12:.LANCHOR115] 7797 lsl w2, w2, 9 7798 bl ftl_memset 7799.L1096: 7800 mov w0, 0 7801 ldp x19, x20, [sp, 16] 7802 ldp x29, x30, [sp], 32 7803 ret 7804 .size FtlLoadEctTbl, .-FtlLoadEctTbl 7805 .section .text.Ftl_load_ext_data,"ax",@progbits 7806 .align 2 7807 .global Ftl_load_ext_data 7808 .type Ftl_load_ext_data, %function 7809Ftl_load_ext_data: 7810 stp x29, x30, [sp, -48]! 7811 mov w1, 1 7812 mov w0, 0 7813 add x29, sp, 0 7814 stp x19, x20, [sp, 16] 7815 adrp x19, .LANCHOR134 7816 str x21, [sp, 32] 7817 add x21, x19, :lo12:.LANCHOR134 7818 mov x2, x21 7819 bl FtlVendorPartRead 7820 ldr w0, [x19, #:lo12:.LANCHOR134] 7821 mov w20, 19539 7822 movk w20, 0x4654, lsl 16 7823 cmp w0, w20 7824 beq .L1099 7825 mov w2, 512 7826 mov w1, 0 7827 mov x0, x21 7828 bl ftl_memset 7829 str w20, [x19, #:lo12:.LANCHOR134] 7830.L1099: 7831 ldr w1, [x19, #:lo12:.LANCHOR134] 7832 add x0, x19, :lo12:.LANCHOR134 7833 cmp w1, w20 7834 adrp x1, .LANCHOR90 7835 bne .L1100 7836 adrp x2, .LANCHOR161 7837 ldr w3, [x0, 88] 7838 str w3, [x2, #:lo12:.LANCHOR161] 7839 adrp x2, .LANCHOR162 7840 ldr w3, [x0, 92] 7841 str w3, [x2, #:lo12:.LANCHOR162] 7842 adrp x2, .LANCHOR83 7843 ldr w3, [x0, 8] 7844 str w3, [x2, #:lo12:.LANCHOR83] 7845 adrp x2, .LANCHOR84 7846 ldr w3, [x0, 12] 7847 str w3, [x2, #:lo12:.LANCHOR84] 7848 adrp x2, .LANCHOR88 7849 ldr w3, [x0, 16] 7850 str w3, [x2, #:lo12:.LANCHOR88] 7851 adrp x2, .LANCHOR87 7852 ldr w3, [x0, 20] 7853 str w3, [x2, #:lo12:.LANCHOR87] 7854 ldp w2, w3, [x0, 28] 7855 str w2, [x1, #:lo12:.LANCHOR90] 7856 adrp x2, .LANCHOR79 7857 str w3, [x2, #:lo12:.LANCHOR79] 7858 adrp x2, .LANCHOR85 7859 ldr w3, [x0, 36] 7860 str w3, [x2, #:lo12:.LANCHOR85] 7861 adrp x2, .LANCHOR86 7862 ldr w3, [x0, 40] 7863 str w3, [x2, #:lo12:.LANCHOR86] 7864 adrp x2, .LANCHOR91 7865 ldr w3, [x0, 44] 7866 str w3, [x2, #:lo12:.LANCHOR91] 7867 ldr w2, [x0, 48] 7868 adrp x0, .LANCHOR92 7869 str w2, [x0, #:lo12:.LANCHOR92] 7870.L1100: 7871 adrp x0, .LANCHOR13 7872 adrp x2, .LANCHOR89 7873 ldr w1, [x1, #:lo12:.LANCHOR90] 7874 ldrh w0, [x0, #:lo12:.LANCHOR13] 7875 ldr w2, [x2, #:lo12:.LANCHOR89] 7876 ldp x19, x20, [sp, 16] 7877 ldr x21, [sp, 32] 7878 madd w0, w0, w2, w1 7879 adrp x1, .LANCHOR4 7880 ldp x29, x30, [sp], 48 7881 ldrh w1, [x1, #:lo12:.LANCHOR4] 7882 udiv w0, w0, w1 7883 adrp x1, .LANCHOR142 7884 str w0, [x1, #:lo12:.LANCHOR142] 7885 ret 7886 .size Ftl_load_ext_data, .-Ftl_load_ext_data 7887 .section .text.sftl_vendor_read,"ax",@progbits 7888 .align 2 7889 .global sftl_vendor_read 7890 .type sftl_vendor_read, %function 7891sftl_vendor_read: 7892 add w0, w0, 256 7893 b FtlVendorPartRead 7894 .size sftl_vendor_read, .-sftl_vendor_read 7895 .section .text.FtlMapBlkWriteDump_data,"ax",@progbits 7896 .align 2 7897 .global FtlMapBlkWriteDump_data 7898 .type FtlMapBlkWriteDump_data, %function 7899FtlMapBlkWriteDump_data: 7900 ldr w1, [x0, 56] 7901 cbz w1, .L1103 7902 stp x29, x30, [sp, -80]! 7903 add x29, sp, 0 7904 stp x19, x20, [sp, 16] 7905 mov x19, x0 7906 ldrh w20, [x0, 6] 7907 adrp x0, .LANCHOR106 7908 stp x21, x22, [sp, 32] 7909 stp x23, x24, [sp, 48] 7910 adrp x23, .LANCHOR137 7911 add x21, x23, :lo12:.LANCHOR137 7912 ldr x0, [x0, #:lo12:.LANCHOR106] 7913 mov x22, x23 7914 str x0, [x21, 8] 7915 adrp x0, .LANCHOR113 7916 ldr x24, [x0, #:lo12:.LANCHOR113] 7917 ldrh w0, [x19, 2] 7918 str x25, [sp, 64] 7919 str x24, [x21, 16] 7920 str wzr, [x19, 56] 7921 ldr x25, [x19, 40] 7922 cbz w0, .L1105 7923 adrp x1, .LANCHOR19 7924 ldrh w1, [x1, #:lo12:.LANCHOR19] 7925 sub w1, w1, #1 7926 cmp w0, w1 7927 bge .L1105 7928 ldrh w1, [x19] 7929 mov w2, 65535 7930 cmp w1, w2 7931 beq .L1105 7932 ldr x2, [x19, 16] 7933 ubfiz x1, x1, 1, 16 7934 sub w0, w0, #1 7935 ldrh w1, [x2, x1] 7936 mov w2, 1 7937 orr w0, w0, w1, lsl 10 7938 mov w1, w2 7939 str w0, [x21, 4] 7940 mov x0, x21 7941 bl FlashReadPages 7942 ldr w0, [x23, #:lo12:.LANCHOR137] 7943 cmn w0, #1 7944 beq .L1105 7945 ldrh w1, [x24, 8] 7946 ldr x2, [x19, 40] 7947 ubfiz x0, x1, 2, 16 7948 ldr w2, [x2, x0] 7949 ldr w0, [x21, 4] 7950 cmp w2, w0 7951 bne .L1105 7952 ldr x2, [x21, 8] 7953.L1117: 7954 mov x0, x19 7955 ldr x25, [sp, 64] 7956 ldp x19, x20, [sp, 16] 7957 ldp x21, x22, [sp, 32] 7958 ldp x23, x24, [sp, 48] 7959 ldp x29, x30, [sp], 80 7960 b FtlMapWritePage 7961.L1105: 7962 sub w20, w20, #1 7963 and w20, w20, 65535 7964 ubfiz x0, x20, 2, 16 7965 ldr w1, [x25, x0] 7966 add x0, x22, :lo12:.LANCHOR137 7967 str w1, [x0, 4] 7968 cbz w1, .L1106 7969 mov w2, 1 7970 mov w1, w2 7971 bl FlashReadPages 7972.L1107: 7973 add x22, x22, :lo12:.LANCHOR137 7974 mov w1, w20 7975 ldr x2, [x22, 8] 7976 b .L1117 7977.L1106: 7978 adrp x1, .LANCHOR22 7979 ldr x0, [x0, 8] 7980 ldrh w2, [x1, #:lo12:.LANCHOR22] 7981 mov w1, 255 7982 bl ftl_memset 7983 b .L1107 7984.L1103: 7985 ret 7986 .size FtlMapBlkWriteDump_data, .-FtlMapBlkWriteDump_data 7987 .section .text.FtlVpcTblFlush,"ax",@progbits 7988 .align 2 7989 .global FtlVpcTblFlush 7990 .type FtlVpcTblFlush, %function 7991FtlVpcTblFlush: 7992 stp x29, x30, [sp, -112]! 7993 adrp x1, .LANCHOR138 7994 mov w2, 19539 7995 add x29, sp, 0 7996 stp x25, x26, [sp, 64] 7997 adrp x25, .LANCHOR113 7998 stp x21, x22, [sp, 32] 7999 adrp x22, .LANCHOR105 8000 stp x23, x24, [sp, 48] 8001 adrp x21, .LANCHOR137 8002 stp x27, x28, [sp, 80] 8003 add x24, x21, :lo12:.LANCHOR137 8004 ldr x27, [x25, #:lo12:.LANCHOR113] 8005 add x28, x1, :lo12:.LANCHOR138 8006 stp x19, x20, [sp, 16] 8007 movk w2, 0x4654, lsl 16 8008 ldr x0, [x22, #:lo12:.LANCHOR105] 8009 adrp x23, .LANCHOR81 8010 ldrh w1, [x1, #:lo12:.LANCHOR138] 8011 adrp x26, .LANCHOR22 8012 stp x0, x27, [x24, 8] 8013 mov w20, 0 8014 strh w1, [x27, 2] 8015 mov w1, -3932 8016 strh w1, [x27] 8017 ldr w1, [x28, 8] 8018 stp w1, wzr, [x27, 4] 8019 adrp x1, .LANCHOR38 8020 add x19, x1, :lo12:.LANCHOR38 8021 str wzr, [x27, 12] 8022 str w2, [x1, #:lo12:.LANCHOR38] 8023 mov w1, 86 8024 movk w1, 0x5000, lsl 16 8025 str w1, [x19, 4] 8026 ldrh w1, [x28, 6] 8027 adrp x2, .LANCHOR50 8028 strh w1, [x19, 8] 8029 adrp x1, .LANCHOR9 8030 ldrh w1, [x1, #:lo12:.LANCHOR9] 8031 strb w1, [x19, 10] 8032 add x1, x2, :lo12:.LANCHOR50 8033 ldrh w2, [x2, #:lo12:.LANCHOR50] 8034 strh w2, [x19, 14] 8035 ldrh w2, [x1, 2] 8036 ldrb w3, [x1, 6] 8037 ldrb w1, [x1, 8] 8038 strb w1, [x19, 11] 8039 orr w2, w3, w2, lsl 6 8040 strh w2, [x19, 16] 8041 adrp x2, .LANCHOR51 8042 add x1, x2, :lo12:.LANCHOR51 8043 ldrh w2, [x2, #:lo12:.LANCHOR51] 8044 ldrb w3, [x1, 6] 8045 strh w2, [x19, 18] 8046 ldrh w2, [x1, 2] 8047 ldrb w1, [x1, 8] 8048 strb w1, [x19, 12] 8049 orr w2, w3, w2, lsl 6 8050 strh w2, [x19, 20] 8051 adrp x2, .LANCHOR52 8052 add x1, x2, :lo12:.LANCHOR52 8053 ldrh w2, [x2, #:lo12:.LANCHOR52] 8054 ldrb w3, [x1, 6] 8055 strh w2, [x19, 22] 8056 ldrh w2, [x1, 2] 8057 ldrb w1, [x1, 8] 8058 strb w1, [x19, 13] 8059 adrp x1, .LANCHOR89 8060 orr w2, w3, w2, lsl 6 8061 strh w2, [x19, 24] 8062 ldr w1, [x1, #:lo12:.LANCHOR89] 8063 str w1, [x19, 32] 8064 ldr w1, [x23, #:lo12:.LANCHOR81] 8065 str w1, [x19, 40] 8066 ldrh w2, [x26, #:lo12:.LANCHOR22] 8067 adrp x1, .LANCHOR82 8068 ldr w1, [x1, #:lo12:.LANCHOR82] 8069 str w1, [x19, 36] 8070 mov w1, 255 8071 bl ftl_memset 8072 ldr x0, [x24, 8] 8073 mov x1, x19 8074 mov w2, 48 8075 mov x19, x24 8076 bl ftl_memcpy 8077 adrp x0, .LANCHOR4 8078 adrp x1, .LANCHOR41 8079 ldrh w2, [x0, #:lo12:.LANCHOR4] 8080 ldr x1, [x1, #:lo12:.LANCHOR41] 8081 ldr x0, [x24, 8] 8082 adrp x24, .LANCHOR19 8083 lsl w2, w2, 1 8084 add x24, x24, :lo12:.LANCHOR19 8085 add x0, x0, 48 8086 bl ftl_memcpy 8087 mov w0, 0 8088 bl FtlUpdateVaildLpn 8089 mov w0, 65535 8090 str x24, [x29, 96] 8091 str w0, [x29, 108] 8092.L1119: 8093 ldrh w2, [x28, 2] 8094 ldrh w1, [x28] 8095 ldr x0, [x22, #:lo12:.LANCHOR105] 8096 str x0, [x19, 8] 8097 ldr x0, [x25, #:lo12:.LANCHOR113] 8098 str x0, [x19, 16] 8099 orr w0, w2, w1, lsl 10 8100 str w0, [x19, 4] 8101 ldrh w0, [x24] 8102 sub w0, w0, #1 8103 cmp w2, w0 8104 blt .L1120 8105 ldrh w0, [x28, 4] 8106 strh wzr, [x28, 2] 8107 strh w1, [x28, 4] 8108 str w0, [x29, 108] 8109 bl FtlFreeSysBlkQueueOut 8110 strh w0, [x28] 8111 ldr w1, [x23, #:lo12:.LANCHOR81] 8112 str w1, [x28, 8] 8113 add w2, w1, 1 8114 str w2, [x23, #:lo12:.LANCHOR81] 8115 ubfiz w2, w0, 10, 16 8116 str w2, [x19, 4] 8117 strh w0, [x27, 2] 8118 str w1, [x27, 4] 8119.L1120: 8120 ldrh w1, [x26, #:lo12:.LANCHOR22] 8121 ldr x0, [x22, #:lo12:.LANCHOR105] 8122 bl js_hash 8123 str w0, [x27, 12] 8124 mov w3, 1 8125 mov x0, x19 8126 mov w1, w3 8127 mov w2, w3 8128 bl FlashProgPages 8129 ldrh w0, [x28, 2] 8130 ldr w1, [x19] 8131 add w0, w0, 1 8132 and w0, w0, 65535 8133 strh w0, [x28, 2] 8134 cmn w1, #1 8135 bne .L1121 8136 cmp w0, 1 8137 bne .L1122 8138 adrp x1, .LANCHOR164 8139 adrp x0, .LC1 8140 mov w2, 1145 8141 add x1, x1, :lo12:.LANCHOR164 8142 add x0, x0, :lo12:.LC1 8143 bl printf 8144.L1122: 8145 ldrh w0, [x28, 2] 8146 cmp w0, 1 8147 bne .L1123 8148 ldr x0, [x29, 96] 8149 ldrh w0, [x0] 8150 sub w0, w0, #1 8151 strh w0, [x28, 2] 8152.L1123: 8153 add w20, w20, 1 8154 and w20, w20, 65535 8155 cmp w20, 3 8156 bls .L1119 8157 add x21, x21, :lo12:.LANCHOR137 8158 adrp x0, .LC39 8159 mov w2, w20 8160 add x0, x0, :lo12:.LC39 8161 ldr w1, [x21, 4] 8162 bl printf 8163.L1125: 8164 b .L1125 8165.L1121: 8166 cmp w0, 1 8167 beq .L1119 8168 cmp w1, 256 8169 beq .L1119 8170 ldr w1, [x29, 108] 8171 mov w0, 65535 8172 cmp w1, w0 8173 beq .L1126 8174 ldrh w0, [x29, 108] 8175 mov w1, 1 8176 bl FtlFreeSysBlkQueueIn 8177.L1126: 8178 ldp x19, x20, [sp, 16] 8179 mov w0, 0 8180 ldp x21, x22, [sp, 32] 8181 ldp x23, x24, [sp, 48] 8182 ldp x25, x26, [sp, 64] 8183 ldp x27, x28, [sp, 80] 8184 ldp x29, x30, [sp], 112 8185 ret 8186 .size FtlVpcTblFlush, .-FtlVpcTblFlush 8187 .section .text.FtlSysFlush,"ax",@progbits 8188 .align 2 8189 .global FtlSysFlush 8190 .type FtlSysFlush, %function 8191FtlSysFlush: 8192 stp x29, x30, [sp, -16]! 8193 add x29, sp, 0 8194 bl l2p_flush 8195 mov w0, 1 8196 bl FtlEctTblFlush 8197 bl FtlVpcTblFlush 8198 mov w0, 0 8199 ldp x29, x30, [sp], 16 8200 ret 8201 .size FtlSysFlush, .-FtlSysFlush 8202 .section .text.sftl_deinit,"ax",@progbits 8203 .align 2 8204 .global sftl_deinit 8205 .type sftl_deinit, %function 8206sftl_deinit: 8207 adrp x0, .LANCHOR165 8208 ldr w0, [x0, #:lo12:.LANCHOR165] 8209 cmp w0, 1 8210 bne .L1139 8211 stp x29, x30, [sp, -16]! 8212 add x29, sp, 0 8213 bl FtlSysFlush 8214 mov w0, 0 8215 ldp x29, x30, [sp], 16 8216 ret 8217.L1139: 8218 mov w0, 0 8219 ret 8220 .size sftl_deinit, .-sftl_deinit 8221 .section .text.FtlDiscard,"ax",@progbits 8222 .align 2 8223 .global FtlDiscard 8224 .type FtlDiscard, %function 8225FtlDiscard: 8226 stp x29, x30, [sp, -80]! 8227 add x29, sp, 0 8228 stp x19, x20, [sp, 16] 8229 mov w19, w1 8230 adrp x1, .LANCHOR33 8231 stp x21, x22, [sp, 32] 8232 str x23, [sp, 48] 8233 ldr w1, [x1, #:lo12:.LANCHOR33] 8234 cmp w1, w0 8235 bls .L1152 8236 cmp w1, w19 8237 bcc .L1152 8238 add w2, w0, w19 8239 cmp w1, w2 8240 bcc .L1152 8241 cmp w19, 31 8242 bhi .L1144 8243.L1160: 8244 mov w0, 0 8245.L1142: 8246 ldp x19, x20, [sp, 16] 8247 ldp x21, x22, [sp, 32] 8248 ldr x23, [sp, 48] 8249 ldp x29, x30, [sp], 80 8250 ret 8251.L1144: 8252 adrp x21, .LANCHOR11 8253 ldrh w1, [x21, #:lo12:.LANCHOR11] 8254 udiv w20, w0, w1 8255 msub w0, w1, w20, w0 8256 ands w0, w0, 65535 8257 beq .L1145 8258 sub w0, w1, w0 8259 add w20, w20, 1 8260 cmp w0, w19 8261 csel w0, w0, w19, ls 8262 sub w19, w19, w0, uxth 8263.L1145: 8264 adrp x22, .LANCHOR166 8265 adrp x23, .LANCHOR85 8266 add x22, x22, :lo12:.LANCHOR166 8267 add x23, x23, :lo12:.LANCHOR85 8268 mov w0, -1 8269 str w0, [x29, 76] 8270.L1146: 8271 ldrh w0, [x21, #:lo12:.LANCHOR11] 8272 cmp w19, w0 8273 bcs .L1148 8274 adrp x0, .LANCHOR166 8275 ldr w1, [x0, #:lo12:.LANCHOR166] 8276 cmp w1, 32 8277 bls .L1160 8278 str wzr, [x0, #:lo12:.LANCHOR166] 8279 bl l2p_flush 8280 bl FtlVpcTblFlush 8281 b .L1160 8282.L1148: 8283 mov w2, 0 8284 add x1, x29, 72 8285 mov w0, w20 8286 bl log2phys 8287 ldr w0, [x29, 72] 8288 cmn w0, #1 8289 beq .L1147 8290 ldr w0, [x22] 8291 mov w2, 1 8292 add x1, x29, 76 8293 add w0, w0, 1 8294 str w0, [x22] 8295 ldr w0, [x23] 8296 add w0, w0, 1 8297 str w0, [x23] 8298 mov w0, w20 8299 bl log2phys 8300 ldr w0, [x29, 72] 8301 lsr w0, w0, 10 8302 bl P2V_block_in_plane 8303 bl decrement_vpc_count 8304.L1147: 8305 ldrh w0, [x21, #:lo12:.LANCHOR11] 8306 add w20, w20, 1 8307 sub w19, w19, w0 8308 b .L1146 8309.L1152: 8310 mov w0, -1 8311 b .L1142 8312 .size FtlDiscard, .-FtlDiscard 8313 .section .text.allocate_new_data_superblock,"ax",@progbits 8314 .align 2 8315 .global allocate_new_data_superblock 8316 .type allocate_new_data_superblock, %function 8317allocate_new_data_superblock: 8318 stp x29, x30, [sp, -48]! 8319 add x29, sp, 0 8320 stp x19, x20, [sp, 16] 8321 ldrh w19, [x0] 8322 str x21, [sp, 32] 8323 mov x21, x0 8324 adrp x0, .LANCHOR4 8325 ldrh w0, [x0, #:lo12:.LANCHOR4] 8326 cmp w0, w19 8327 bcs .L1162 8328 adrp x1, .LANCHOR167 8329 adrp x0, .LC1 8330 mov w2, 2766 8331 add x1, x1, :lo12:.LANCHOR167 8332 add x0, x0, :lo12:.LC1 8333 bl printf 8334.L1162: 8335 mov w0, 65535 8336 cmp w19, w0 8337 beq .L1163 8338 adrp x1, .LANCHOR41 8339 ubfiz x0, x19, 1, 16 8340 ldr x1, [x1, #:lo12:.LANCHOR41] 8341 ldrh w0, [x1, x0] 8342 cbz w0, .L1164 8343 mov w0, w19 8344 bl INSERT_DATA_LIST 8345.L1163: 8346 adrp x1, .LANCHOR130 8347 mov w0, 1 8348 strb w0, [x21, 8] 8349 mov w2, 65535 8350 ldrh w0, [x1, #:lo12:.LANCHOR130] 8351 mov x20, x1 8352 cmp w0, w2 8353 beq .L1165 8354 cmp w19, w0 8355 bne .L1166 8356 adrp x2, .LANCHOR41 8357 ubfiz x1, x0, 1, 16 8358 ldr x2, [x2, #:lo12:.LANCHOR41] 8359 ldrh w1, [x2, x1] 8360 cbz w1, .L1167 8361.L1166: 8362 bl update_vpc_list 8363.L1167: 8364 mov w0, -1 8365 strh w0, [x20, #:lo12:.LANCHOR130] 8366.L1165: 8367 mov x0, x21 8368 bl allocate_data_superblock 8369 bl l2p_flush 8370 mov w0, 0 8371 bl FtlEctTblFlush 8372 bl FtlVpcTblFlush 8373 ldr x21, [sp, 32] 8374 mov w0, 0 8375 ldp x19, x20, [sp, 16] 8376 ldp x29, x30, [sp], 48 8377 ret 8378.L1164: 8379 mov w0, w19 8380 bl INSERT_FREE_LIST 8381 b .L1163 8382 .size allocate_new_data_superblock, .-allocate_new_data_superblock 8383 .section .text.FtlProgPages,"ax",@progbits 8384 .align 2 8385 .global FtlProgPages 8386 .type FtlProgPages, %function 8387FtlProgPages: 8388 stp x29, x30, [sp, -80]! 8389 mov w2, 0 8390 add x29, sp, 0 8391 stp x19, x20, [sp, 16] 8392 mov x20, x3 8393 stp x21, x22, [sp, 32] 8394 mov w21, w1 8395 stp x23, x24, [sp, 48] 8396 ubfiz x21, x21, 5, 32 8397 mov x22, x0 8398 add x21, x21, 4 8399 ldrb w3, [x3, 9] 8400 adrp x23, .LC40 8401 adrp x24, .LANCHOR2 8402 add x19, x22, 4 8403 add x21, x22, x21 8404 add x23, x23, :lo12:.LC40 8405 add x24, x24, :lo12:.LANCHOR2 8406 bl FlashProgPages 8407.L1173: 8408 cmp x21, x19 8409 beq .L1179 8410 sub x22, x19, #4 8411 b .L1180 8412.L1175: 8413 ldr w1, [x19] 8414 mov x0, x23 8415 bl printf 8416 ldr w0, [x19] 8417 lsr w0, w0, 10 8418 bl P2V_block_in_plane 8419 bl decrement_vpc_count 8420 ldrh w0, [x20, 4] 8421 cbnz w0, .L1174 8422 mov x0, x20 8423 bl allocate_new_data_superblock 8424.L1174: 8425 mov x0, x20 8426 bl get_new_active_ppa 8427 str w0, [x19] 8428 mov w2, 0 8429 str w0, [x29, 76] 8430 mov w1, 1 8431 ldrb w3, [x20, 9] 8432 mov x0, x22 8433 bl FlashProgPages 8434.L1180: 8435 ldr w2, [x19, -4] 8436 cmp w2, 256 8437 ccmn w2, #1, 4, ne 8438 beq .L1175 8439 ldrb w1, [x20, 6] 8440 ldrh w0, [x24] 8441 cmp w1, w0 8442 bcc .L1176 8443 adrp x1, .LANCHOR168 8444 adrp x0, .LC1 8445 mov w2, 985 8446 add x1, x1, :lo12:.LANCHOR168 8447 add x0, x0, :lo12:.LC1 8448 bl printf 8449.L1176: 8450 add x1, x29, 80 8451 ldr w0, [x22, 4] 8452 mov w2, 1 8453 str w0, [x1, -4]! 8454 ldr w0, [x22, 24] 8455 bl log2phys 8456 ldr x0, [x22, 16] 8457 ldr w3, [x0, 12] 8458 lsr w0, w3, 10 8459 bl P2V_block_in_plane 8460 and w1, w0, 65535 8461 mov w22, w1 8462 cmn w3, #1 8463 beq .L1177 8464 adrp x2, .LANCHOR41 8465 ubfiz x0, x1, 1, 16 8466 ldr x2, [x2, #:lo12:.LANCHOR41] 8467 ldrh w0, [x2, x0] 8468 cbnz w0, .L1178 8469 adrp x0, .LC41 8470 mov w2, 0 8471 add x0, x0, :lo12:.LC41 8472 bl printf 8473.L1178: 8474 mov w0, w22 8475 bl decrement_vpc_count 8476.L1177: 8477 add x19, x19, 32 8478 b .L1173 8479.L1179: 8480 adrp x0, .LANCHOR2 8481 ldrb w1, [x20, 6] 8482 ldrh w0, [x0, #:lo12:.LANCHOR2] 8483 cmp w1, w0 8484 bcc .L1172 8485 adrp x1, .LANCHOR168 8486 adrp x0, .LC1 8487 mov w2, 1000 8488 add x1, x1, :lo12:.LANCHOR168 8489 add x0, x0, :lo12:.LC1 8490 bl printf 8491.L1172: 8492 ldp x19, x20, [sp, 16] 8493 ldp x21, x22, [sp, 32] 8494 ldp x23, x24, [sp, 48] 8495 ldp x29, x30, [sp], 80 8496 ret 8497 .size FtlProgPages, .-FtlProgPages 8498 .section .text.FtlGcFreeTempBlock,"ax",@progbits 8499 .align 2 8500 .global FtlGcFreeTempBlock 8501 .type FtlGcFreeTempBlock, %function 8502FtlGcFreeTempBlock: 8503 stp x29, x30, [sp, -112]! 8504 mov w1, 65535 8505 add x29, sp, 0 8506 stp x19, x20, [sp, 16] 8507 adrp x19, .LANCHOR52 8508 stp x21, x22, [sp, 32] 8509 ldrh w2, [x19, #:lo12:.LANCHOR52] 8510 stp x23, x24, [sp, 48] 8511 stp x25, x26, [sp, 64] 8512 cmp w2, w1 8513 stp x27, x28, [sp, 80] 8514 beq .L1187 8515 adrp x1, .LANCHOR18 8516 add x0, x19, :lo12:.LANCHOR52 8517 ldrh w1, [x1, #:lo12:.LANCHOR18] 8518 bl FtlGcScanTempBlk 8519 str w0, [x29, 108] 8520.L1187: 8521 adrp x0, .LANCHOR132 8522 ldrh w2, [x19, #:lo12:.LANCHOR52] 8523 mov w1, 65535 8524 str wzr, [x0, #:lo12:.LANCHOR132] 8525 cmp w2, w1 8526 add x0, x19, :lo12:.LANCHOR52 8527 beq .L1189 8528 ldrb w1, [x0, 7] 8529 adrp x0, .LANCHOR18 8530 adrp x20, .LANCHOR69 8531 mov x21, x0 8532 ldrh w3, [x0, #:lo12:.LANCHOR18] 8533 ldrh w2, [x20, #:lo12:.LANCHOR69] 8534 mul w1, w1, w3 8535 cmp w2, w1 8536 beq .L1190 8537 adrp x1, .LANCHOR169 8538 adrp x0, .LC1 8539 mov w2, 164 8540 add x1, x1, :lo12:.LANCHOR169 8541 add x0, x0, :lo12:.LC1 8542 bl printf 8543.L1190: 8544 add x0, x19, :lo12:.LANCHOR52 8545 adrp x22, .LANCHOR41 8546 ldrh w3, [x21, #:lo12:.LANCHOR18] 8547 adrp x25, .LANCHOR151 8548 ldrh w2, [x19, #:lo12:.LANCHOR52] 8549 add x26, x20, :lo12:.LANCHOR69 8550 ldrb w0, [x0, 7] 8551 add x25, x25, :lo12:.LANCHOR151 8552 ldr x1, [x22, #:lo12:.LANCHOR41] 8553 mov w21, 0 8554 adrp x27, .LANCHOR70 8555 mul w0, w0, w3 8556 strh w0, [x1, x2, lsl 1] 8557 adrp x1, .LANCHOR83 8558 ldrh w0, [x20, #:lo12:.LANCHOR69] 8559 ldr w2, [x1, #:lo12:.LANCHOR83] 8560 add w0, w0, w2 8561 str w0, [x1, #:lo12:.LANCHOR83] 8562.L1191: 8563 ldrh w0, [x26] 8564 cmp w0, w21 8565 bhi .L1195 8566 mov w0, -1 8567 bl decrement_vpc_count 8568 ldrh w0, [x19, #:lo12:.LANCHOR52] 8569 ldr x2, [x22, #:lo12:.LANCHOR41] 8570 ubfiz x1, x0, 1, 16 8571 ldrh w1, [x2, x1] 8572 cbz w1, .L1196 8573 bl INSERT_DATA_LIST 8574.L1197: 8575 adrp x0, .LANCHOR67 8576 mov w21, -1 8577 strh wzr, [x20, #:lo12:.LANCHOR69] 8578 strh w21, [x19, #:lo12:.LANCHOR52] 8579 strh wzr, [x0, #:lo12:.LANCHOR67] 8580 bl l2p_flush 8581 bl FtlVpcTblFlush 8582 adrp x0, .LANCHOR144 8583 strh w21, [x0, #:lo12:.LANCHOR144] 8584 adrp x0, .LANCHOR47 8585 ldrh w1, [x0, #:lo12:.LANCHOR47] 8586 adrp x0, .LANCHOR170 8587 ldrh w0, [x0, #:lo12:.LANCHOR170] 8588 add w0, w0, w0, lsl 1 8589 cmp w1, w0, lsr 2 8590 ble .L1189 8591 adrp x0, .LANCHOR99 8592 mov w1, 20 8593 strh w1, [x0, #:lo12:.LANCHOR99] 8594.L1189: 8595 ldp x19, x20, [sp, 16] 8596 mov w0, 0 8597 ldp x21, x22, [sp, 32] 8598 ldp x23, x24, [sp, 48] 8599 ldp x25, x26, [sp, 64] 8600 ldp x27, x28, [sp, 80] 8601 ldp x29, x30, [sp], 112 8602 ret 8603.L1195: 8604 mov w24, 12 8605 ldr x28, [x27, #:lo12:.LANCHOR70] 8606 ldr w1, [x25] 8607 umull x24, w21, w24 8608 add x23, x28, x24 8609 ldr w0, [x23, 8] 8610 cmp w0, w1 8611 bcc .L1192 8612.L1200: 8613 ldrh w0, [x19, #:lo12:.LANCHOR52] 8614 b .L1201 8615.L1192: 8616 add x1, x29, 108 8617 mov w2, 0 8618 bl log2phys 8619 ldr w0, [x28, x24] 8620 ldr w1, [x29, 108] 8621 cmp w0, w1 8622 bne .L1194 8623 lsr w0, w0, 10 8624 bl P2V_block_in_plane 8625 mov w24, w0 8626 ldr w0, [x23, 8] 8627 mov w2, 1 8628 add x1, x23, 4 8629 bl log2phys 8630 mov w0, w24 8631.L1201: 8632 bl decrement_vpc_count 8633 b .L1193 8634.L1194: 8635 ldr w0, [x23, 4] 8636 cmp w1, w0 8637 bne .L1200 8638.L1193: 8639 add w21, w21, 1 8640 and w21, w21, 65535 8641 b .L1191 8642.L1196: 8643 bl INSERT_FREE_LIST 8644 b .L1197 8645 .size FtlGcFreeTempBlock, .-FtlGcFreeTempBlock 8646 .section .text.FtlGcPageRecovery,"ax",@progbits 8647 .align 2 8648 .global FtlGcPageRecovery 8649 .type FtlGcPageRecovery, %function 8650FtlGcPageRecovery: 8651 stp x29, x30, [sp, -32]! 8652 add x29, sp, 0 8653 stp x19, x20, [sp, 16] 8654 adrp x20, .LANCHOR18 8655 adrp x19, .LANCHOR52 8656 add x19, x19, :lo12:.LANCHOR52 8657 ldrh w1, [x20, #:lo12:.LANCHOR18] 8658 mov x0, x19 8659 bl FtlGcScanTempBlk 8660 ldrh w1, [x19, 2] 8661 ldrh w0, [x20, #:lo12:.LANCHOR18] 8662 cmp w1, w0 8663 bcc .L1202 8664 adrp x0, .LANCHOR128 8665 add x0, x0, :lo12:.LANCHOR128 8666 bl FtlMapBlkWriteDump_data 8667 mov w0, 0 8668 bl FtlGcFreeTempBlock 8669 adrp x0, .LANCHOR132 8670 str wzr, [x0, #:lo12:.LANCHOR132] 8671.L1202: 8672 ldp x19, x20, [sp, 16] 8673 ldp x29, x30, [sp], 32 8674 ret 8675 .size FtlGcPageRecovery, .-FtlGcPageRecovery 8676 .section .text.FtlPowerLostRecovery,"ax",@progbits 8677 .align 2 8678 .global FtlPowerLostRecovery 8679 .type FtlPowerLostRecovery, %function 8680FtlPowerLostRecovery: 8681 stp x29, x30, [sp, -32]! 8682 adrp x0, .LANCHOR156 8683 add x29, sp, 0 8684 str x19, [sp, 16] 8685 adrp x19, .LANCHOR50 8686 add x19, x19, :lo12:.LANCHOR50 8687 str wzr, [x0, #:lo12:.LANCHOR156] 8688 mov x0, x19 8689 bl FtlRecoverySuperblock 8690 mov x0, x19 8691 adrp x19, .LANCHOR51 8692 bl FtlSlcSuperblockCheck 8693 add x19, x19, :lo12:.LANCHOR51 8694 mov x0, x19 8695 bl FtlRecoverySuperblock 8696 mov x0, x19 8697 bl FtlSlcSuperblockCheck 8698 bl FtlGcPageRecovery 8699 mov w0, -1 8700 bl decrement_vpc_count 8701 mov w0, 0 8702 ldr x19, [sp, 16] 8703 ldp x29, x30, [sp], 32 8704 ret 8705 .size FtlPowerLostRecovery, .-FtlPowerLostRecovery 8706 .section .text.Ftl_gc_temp_data_write_back,"ax",@progbits 8707 .align 2 8708 .global Ftl_gc_temp_data_write_back 8709 .type Ftl_gc_temp_data_write_back, %function 8710Ftl_gc_temp_data_write_back: 8711 stp x29, x30, [sp, -32]! 8712 mov w3, 0 8713 mov w2, 0 8714 add x29, sp, 0 8715 stp x19, x20, [sp, 16] 8716 adrp x19, .LANCHOR61 8717 adrp x20, .LANCHOR103 8718 ldr w1, [x19, #:lo12:.LANCHOR61] 8719 add x19, x19, :lo12:.LANCHOR61 8720 ldr x0, [x20, #:lo12:.LANCHOR103] 8721 bl FlashProgPages 8722 mov w11, 0 8723.L1208: 8724 ldr w1, [x19] 8725 cmp w11, w1 8726 bcc .L1211 8727 ldr x0, [x20, #:lo12:.LANCHOR103] 8728 bl FtlGcBufFree 8729 str wzr, [x19] 8730 adrp x0, .LANCHOR52+4 8731 ldrh w0, [x0, #:lo12:.LANCHOR52+4] 8732 cbnz w0, .L1213 8733 mov w0, 1 8734 bl FtlGcFreeTempBlock 8735 mov w0, 1 8736.L1207: 8737 ldp x19, x20, [sp, 16] 8738 ldp x29, x30, [sp], 32 8739 ret 8740.L1211: 8741 ldr x2, [x20, #:lo12:.LANCHOR103] 8742 ubfiz x0, x11, 5, 16 8743 add x1, x2, x0 8744 ldr w2, [x2, x0] 8745 ldr x3, [x1, 16] 8746 cmn w2, #1 8747 bne .L1209 8748.L1215: 8749 ldr w1, [x1, 4] 8750 ldr w0, [x3, 12] 8751 bl FtlGcUpdatePage 8752 add w11, w11, 1 8753 and w11, w11, 65535 8754 b .L1208 8755.L1209: 8756 ldr w2, [x3, 8] 8757 b .L1215 8758.L1213: 8759 mov w0, 0 8760 b .L1207 8761 .size Ftl_gc_temp_data_write_back, .-Ftl_gc_temp_data_write_back 8762 .section .text.Ftl_get_new_temp_ppa,"ax",@progbits 8763 .align 2 8764 .global Ftl_get_new_temp_ppa 8765 .type Ftl_get_new_temp_ppa, %function 8766Ftl_get_new_temp_ppa: 8767 stp x29, x30, [sp, -32]! 8768 adrp x0, .LANCHOR52 8769 mov w2, 65535 8770 add x29, sp, 0 8771 str x19, [sp, 16] 8772 mov x19, x0 8773 ldrh w3, [x0, #:lo12:.LANCHOR52] 8774 cmp w3, w2 8775 beq .L1217 8776 add x1, x0, :lo12:.LANCHOR52 8777 ldrh w0, [x1, 4] 8778 cbnz w0, .L1218 8779.L1217: 8780 mov w0, 0 8781 bl FtlGcFreeTempBlock 8782 add x0, x19, :lo12:.LANCHOR52 8783 strb wzr, [x0, 8] 8784 bl allocate_data_superblock 8785 adrp x0, .LANCHOR67 8786 strh wzr, [x0, #:lo12:.LANCHOR67] 8787 adrp x0, .LANCHOR69 8788 strh wzr, [x0, #:lo12:.LANCHOR69] 8789 bl l2p_flush 8790 mov w0, 0 8791 bl FtlEctTblFlush 8792 bl FtlVpcTblFlush 8793.L1218: 8794 add x0, x19, :lo12:.LANCHOR52 8795 ldr x19, [sp, 16] 8796 ldp x29, x30, [sp], 32 8797 b get_new_active_ppa 8798 .size Ftl_get_new_temp_ppa, .-Ftl_get_new_temp_ppa 8799 .section .text.rk_ftl_garbage_collect,"ax",@progbits 8800 .align 2 8801 .global rk_ftl_garbage_collect 8802 .type rk_ftl_garbage_collect, %function 8803rk_ftl_garbage_collect: 8804 stp x29, x30, [sp, -176]! 8805 add x29, sp, 0 8806 stp x21, x22, [sp, 32] 8807 adrp x21, .LANCHOR93 8808 stp x19, x20, [sp, 16] 8809 ldr w1, [x21, #:lo12:.LANCHOR93] 8810 stp x23, x24, [sp, 48] 8811 stp x25, x26, [sp, 64] 8812 stp x27, x28, [sp, 80] 8813 cbnz w1, .L1277 8814 adrp x1, .LANCHOR43 8815 ldrh w1, [x1, #:lo12:.LANCHOR43] 8816 cmp w1, 47 8817 bls .L1277 8818 adrp x1, .LANCHOR72 8819 mov w4, 65535 8820 ldrh w3, [x1, #:lo12:.LANCHOR72] 8821 cmp w3, w4 8822 beq .L1222 8823 adrp x2, .LANCHOR71 8824 ldrh w5, [x2, #:lo12:.LANCHOR71] 8825 cmp w5, w4 8826 bne .L1222 8827 strh w3, [x2, #:lo12:.LANCHOR71] 8828 mov w2, -1 8829 strh w2, [x1, #:lo12:.LANCHOR72] 8830.L1222: 8831 cbnz w0, .L1278 8832 adrp x1, .LANCHOR47 8833 ldrh w1, [x1, #:lo12:.LANCHOR47] 8834 cmp w1, 24 8835 bhi .L1279 8836 adrp x2, .LANCHOR18 8837 cmp w1, 16 8838 ldrh w20, [x2, #:lo12:.LANCHOR18] 8839 bls .L1225 8840 lsr w20, w20, 5 8841.L1224: 8842 adrp x2, .LANCHOR99 8843 ldrh w3, [x2, #:lo12:.LANCHOR99] 8844 cmp w3, w1 8845 mov x3, x2 8846 bcs .L1228 8847 adrp x1, .LANCHOR52 8848 mov w4, 65535 8849 ldrh w1, [x1, #:lo12:.LANCHOR52] 8850 cmp w1, w4 8851 bne .L1229 8852 adrp x4, .LANCHOR71 8853 ldrh w4, [x4, #:lo12:.LANCHOR71] 8854 cmp w4, w1 8855 bne .L1229 8856 adrp x0, .LANCHOR171 8857 ldrh w0, [x0, #:lo12:.LANCHOR171] 8858 cbnz w0, .L1230 8859 adrp x1, .LANCHOR151 8860 adrp x4, .LANCHOR58 8861 ldr w1, [x1, #:lo12:.LANCHOR151] 8862 ldr w4, [x4, #:lo12:.LANCHOR58] 8863 add w1, w1, w1, lsl 1 8864 cmp w4, w1, lsr 2 8865 bcs .L1231 8866.L1230: 8867 adrp x1, .LANCHOR170 8868 ldrh w1, [x1, #:lo12:.LANCHOR170] 8869 add w1, w1, w1, lsl 1 8870 asr w1, w1, 2 8871 strh w1, [x3, #:lo12:.LANCHOR99] 8872.L1232: 8873 adrp x1, .LANCHOR94 8874 str wzr, [x1, #:lo12:.LANCHOR94] 8875.L1220: 8876 ldp x19, x20, [sp, 16] 8877 ldp x21, x22, [sp, 32] 8878 ldp x23, x24, [sp, 48] 8879 ldp x25, x26, [sp, 64] 8880 ldp x27, x28, [sp, 80] 8881 ldp x29, x30, [sp], 176 8882 ret 8883.L1225: 8884 cmp w1, 12 8885 bls .L1226 8886 lsr w20, w20, 4 8887 b .L1224 8888.L1226: 8889 cmp w1, 8 8890 bls .L1224 8891 lsr w20, w20, 2 8892 b .L1224 8893.L1279: 8894 mov w20, 1 8895 b .L1224 8896.L1231: 8897 mov w1, 18 8898 strh w1, [x2, #:lo12:.LANCHOR99] 8899 b .L1232 8900.L1229: 8901 adrp x1, .LANCHOR170 8902 ldrh w1, [x1, #:lo12:.LANCHOR170] 8903 add w1, w1, w1, lsl 1 8904 asr w1, w1, 2 8905 strh w1, [x3, #:lo12:.LANCHOR99] 8906.L1228: 8907 adrp x1, .LANCHOR73 8908 ldrh w1, [x1, #:lo12:.LANCHOR73] 8909 cbz w1, .L1223 8910 add w20, w20, 32 8911 and w20, w20, 65535 8912.L1223: 8913 adrp x19, .LANCHOR144 8914 str w0, [x29, 152] 8915 mov w0, 65535 8916 ldrh w2, [x19, #:lo12:.LANCHOR144] 8917 cmp w2, w0 8918 bne .L1235 8919 adrp x0, .LANCHOR71 8920 ldrh w1, [x0, #:lo12:.LANCHOR71] 8921 cmp w1, w2 8922 beq .L1236 8923 adrp x2, .LANCHOR41 8924 ubfiz x1, x1, 1, 16 8925 ldr x2, [x2, #:lo12:.LANCHOR41] 8926 ldrh w1, [x2, x1] 8927 cbnz w1, .L1237 8928 mov w1, -1 8929 strh w1, [x0, #:lo12:.LANCHOR71] 8930.L1237: 8931 ldrh w1, [x0, #:lo12:.LANCHOR71] 8932 strh w1, [x19, #:lo12:.LANCHOR144] 8933 mov w1, -1 8934 strh w1, [x0, #:lo12:.LANCHOR71] 8935.L1236: 8936 add x0, x19, :lo12:.LANCHOR144 8937 mov w1, 65535 8938 strb wzr, [x0, 8] 8939 ldrh w0, [x19, #:lo12:.LANCHOR144] 8940 cmp w0, w1 8941 beq .L1235 8942 bl IsBlkInGcList 8943 cbz w0, .L1239 8944 mov w0, -1 8945 strh w0, [x19, #:lo12:.LANCHOR144] 8946.L1239: 8947 ldrh w1, [x19, #:lo12:.LANCHOR144] 8948 mov w0, 65535 8949 add x22, x19, :lo12:.LANCHOR144 8950 cmp w1, w0 8951 beq .L1235 8952 mov x0, x22 8953 bl make_superblock 8954 adrp x0, .LANCHOR172 8955 ldrh w1, [x19, #:lo12:.LANCHOR144] 8956 strh wzr, [x22, 2] 8957 strh wzr, [x0, #:lo12:.LANCHOR172] 8958 adrp x0, .LANCHOR41 8959 strb wzr, [x22, 6] 8960 ldr x0, [x0, #:lo12:.LANCHOR41] 8961 ldrh w1, [x0, x1, lsl 1] 8962 adrp x0, .LANCHOR173 8963 strh w1, [x0, #:lo12:.LANCHOR173] 8964.L1235: 8965 adrp x1, .LANCHOR50 8966 ldrh w0, [x19, #:lo12:.LANCHOR144] 8967 str x1, [x29, 128] 8968 ldrh w2, [x1, #:lo12:.LANCHOR50] 8969 cmp w2, w0 8970 beq .L1240 8971 adrp x1, .LANCHOR51 8972 ldrh w1, [x1, #:lo12:.LANCHOR51] 8973 cmp w1, w0 8974 beq .L1240 8975 adrp x1, .LANCHOR52 8976 ldrh w1, [x1, #:lo12:.LANCHOR52] 8977 cmp w1, w0 8978 bne .L1241 8979.L1240: 8980 mov w0, -1 8981 strh w0, [x19, #:lo12:.LANCHOR144] 8982.L1241: 8983 adrp x25, .LANCHOR101 8984 add x26, x25, :lo12:.LANCHOR101 8985.L1275: 8986 ldrh w1, [x19, #:lo12:.LANCHOR144] 8987 mov w0, 65535 8988 cmp w1, w0 8989 bne .L1242 8990 adrp x0, .LANCHOR94 8991 adrp x22, .LANCHOR18 8992 add x22, x22, :lo12:.LANCHOR18 8993 str wzr, [x0, #:lo12:.LANCHOR94] 8994.L1243: 8995 ldrh w5, [x25, #:lo12:.LANCHOR101] 8996 add x7, x25, :lo12:.LANCHOR101 8997 mov w0, w5 8998 bl List_get_gc_head_node 8999 and w6, w0, 65535 9000 strh w6, [x19, #:lo12:.LANCHOR144] 9001 mov w0, 65535 9002 cmp w6, w0 9003 bne .L1244 9004 strh wzr, [x7] 9005 mov w0, 8 9006 b .L1220 9007.L1278: 9008 mov w20, 1 9009 b .L1223 9010.L1244: 9011 mov w0, w6 9012 bl IsBlkInGcList 9013 add w5, w5, 1 9014 cbz w0, .L1245 9015 strh w5, [x25, #:lo12:.LANCHOR101] 9016 b .L1243 9017.L1245: 9018 adrp x23, .LANCHOR41 9019 adrp x4, .LANCHOR2 9020 ldrh w0, [x22] 9021 ubfiz x1, x6, 1, 16 9022 ldr x2, [x23, #:lo12:.LANCHOR41] 9023 and w5, w5, 65535 9024 ldrh w4, [x4, #:lo12:.LANCHOR2] 9025 strh w5, [x25, #:lo12:.LANCHOR101] 9026 ldrh w3, [x2, x1] 9027 mul w0, w0, w4 9028 cmp w3, w0, asr 1 9029 bgt .L1247 9030 cmp w5, 48 9031 bls .L1248 9032 cmp w3, 8 9033 bls .L1248 9034 adrp x3, .LANCHOR67 9035 ldrh w3, [x3, #:lo12:.LANCHOR67] 9036 cmp w3, 35 9037 bhi .L1248 9038.L1247: 9039 strh wzr, [x26] 9040.L1248: 9041 ldrh w1, [x2, x1] 9042 cmp w0, w1 9043 bgt .L1249 9044 ldrh w0, [x26] 9045 cmp w0, 3 9046 bhi .L1249 9047 mov w0, -1 9048 strh wzr, [x26] 9049 strh w0, [x19, #:lo12:.LANCHOR144] 9050.L1308: 9051 adrp x0, .LANCHOR171 9052 ldrh w0, [x0, #:lo12:.LANCHOR171] 9053 b .L1220 9054.L1249: 9055 cbnz w1, .L1250 9056 mov w0, -1 9057 bl decrement_vpc_count 9058 ldrh w0, [x26] 9059 add w0, w0, 1 9060 strh w0, [x26] 9061 b .L1243 9062.L1250: 9063 add x0, x19, :lo12:.LANCHOR144 9064 strb wzr, [x0, 8] 9065 ldr x0, [x29, 128] 9066 ldrh w0, [x0, #:lo12:.LANCHOR50] 9067 cmp w0, w6 9068 bne .L1251 9069 adrp x1, .LANCHOR174 9070 adrp x0, .LC1 9071 mov w2, 717 9072 add x1, x1, :lo12:.LANCHOR174 9073 add x0, x0, :lo12:.LC1 9074 bl printf 9075.L1251: 9076 adrp x0, .LANCHOR51 9077 ldrh w1, [x19, #:lo12:.LANCHOR144] 9078 ldrh w0, [x0, #:lo12:.LANCHOR51] 9079 cmp w1, w0 9080 bne .L1252 9081 adrp x1, .LANCHOR174 9082 adrp x0, .LC1 9083 mov w2, 718 9084 add x1, x1, :lo12:.LANCHOR174 9085 add x0, x0, :lo12:.LC1 9086 bl printf 9087.L1252: 9088 adrp x0, .LANCHOR52 9089 ldrh w1, [x19, #:lo12:.LANCHOR144] 9090 ldrh w0, [x0, #:lo12:.LANCHOR52] 9091 cmp w1, w0 9092 bne .L1253 9093 adrp x1, .LANCHOR174 9094 adrp x0, .LC1 9095 mov w2, 719 9096 add x1, x1, :lo12:.LANCHOR174 9097 add x0, x0, :lo12:.LC1 9098 bl printf 9099.L1253: 9100 add x22, x19, :lo12:.LANCHOR144 9101 mov x0, x22 9102 bl make_superblock 9103 adrp x0, .LANCHOR172 9104 ldrh w1, [x19, #:lo12:.LANCHOR144] 9105 strh wzr, [x0, #:lo12:.LANCHOR172] 9106 ldr x0, [x23, #:lo12:.LANCHOR41] 9107 ldrh w1, [x0, x1, lsl 1] 9108 adrp x0, .LANCHOR173 9109 strh wzr, [x22, 2] 9110 strh w1, [x0, #:lo12:.LANCHOR173] 9111 strb wzr, [x22, 6] 9112.L1242: 9113 mov w0, 1 9114 str w0, [x21, #:lo12:.LANCHOR93] 9115 adrp x0, .LANCHOR18 9116 str x0, [x29, 120] 9117 ldrh w1, [x0, #:lo12:.LANCHOR18] 9118 ldr w0, [x29, 152] 9119 str w1, [x29, 156] 9120 cbz w0, .L1254 9121 adrp x0, .LANCHOR2 9122 ldrh w2, [x19, #:lo12:.LANCHOR144] 9123 ldrh w0, [x0, #:lo12:.LANCHOR2] 9124 mul w0, w0, w1 9125 adrp x1, .LANCHOR41 9126 ldr x1, [x1, #:lo12:.LANCHOR41] 9127 ldrh w1, [x1, x2, lsl 1] 9128 sub w0, w0, w1 9129 mov w1, 4 9130 sdiv w0, w0, w1 9131 add w20, w20, w0 9132 and w20, w20, 65535 9133.L1254: 9134 add x0, x19, :lo12:.LANCHOR144 9135 ldr w2, [x29, 156] 9136 ldrh w0, [x0, 2] 9137 add w1, w0, w20 9138 cmp w1, w2 9139 ble .L1255 9140 sub w20, w2, w0 9141 and w20, w20, 65535 9142.L1255: 9143 adrp x0, .LANCHOR172 9144 mov w28, 0 9145 add x0, x0, :lo12:.LANCHOR172 9146 str x0, [x29, 144] 9147.L1256: 9148 cmp w20, w28, uxth 9149 bls .L1264 9150 add x1, x19, :lo12:.LANCHOR144 9151 adrp x0, .LANCHOR2 9152 adrp x23, .LANCHOR65 9153 add x1, x1, 16 9154 ldrh w7, [x0, #:lo12:.LANCHOR2] 9155 mov w22, 0 9156 ldrh w4, [x1, -14] 9157 mov w2, 0 9158 ldr x0, [x23, #:lo12:.LANCHOR65] 9159 mov w6, 65535 9160 add w4, w4, w28 9161 b .L1265 9162.L1258: 9163 ldrh w3, [x1] 9164 cmp w3, w6 9165 beq .L1257 9166 ubfiz x5, x22, 5, 16 9167 add w22, w22, 1 9168 add x5, x0, x5 9169 and w22, w22, 65535 9170 orr w3, w4, w3, lsl 10 9171 str w3, [x5, 4] 9172.L1257: 9173 add w2, w2, 1 9174 add x1, x1, 2 9175 and w2, w2, 65535 9176.L1265: 9177 cmp w2, w7 9178 bne .L1258 9179 add x1, x19, :lo12:.LANCHOR144 9180 adrp x24, .LANCHOR61 9181 add x24, x24, :lo12:.LANCHOR61 9182 ldrb w2, [x1, 8] 9183 mov w1, w22 9184 bl FlashReadPages 9185 ubfiz x0, x22, 5, 16 9186 mov x22, 0 9187 str x0, [x29, 136] 9188.L1259: 9189 ldr x0, [x29, 136] 9190 cmp x22, x0 9191 bne .L1263 9192 add w28, w28, 1 9193 b .L1256 9194.L1263: 9195 ldr x0, [x23, #:lo12:.LANCHOR65] 9196 add x1, x0, x22 9197 ldr w0, [x0, x22] 9198 cmn w0, #1 9199 beq .L1260 9200 ldr x27, [x1, 16] 9201 mov w0, 61589 9202 ldrh w1, [x27] 9203 cmp w1, w0 9204 bne .L1260 9205 ldr w4, [x27, 8] 9206 cmn w4, #1 9207 bne .L1261 9208 str w4, [x29, 112] 9209 mov w2, 753 9210 adrp x1, .LANCHOR174 9211 adrp x0, .LC1 9212 add x1, x1, :lo12:.LANCHOR174 9213 add x0, x0, :lo12:.LC1 9214 bl printf 9215 ldr w4, [x29, 112] 9216.L1261: 9217 mov w2, 0 9218 add x1, x29, 168 9219 mov w0, w4 9220 bl log2phys 9221 ldr x0, [x23, #:lo12:.LANCHOR65] 9222 ldr w1, [x29, 168] 9223 add x0, x0, x22 9224 ldr w2, [x0, 4] 9225 cmp w2, w1 9226 bne .L1260 9227 ldr x1, [x29, 144] 9228 adrp x4, .LANCHOR103 9229 ldr x2, [x29, 144] 9230 ldr w0, [x0, 24] 9231 ldrh w1, [x1] 9232 add w1, w1, 1 9233 strh w1, [x2] 9234 ldr x2, [x4, #:lo12:.LANCHOR103] 9235 ldr w1, [x24] 9236 add x1, x2, x1, lsl 5 9237 stp x4, x1, [x29, 104] 9238 str w0, [x1, 24] 9239 bl Ftl_get_new_temp_ppa 9240 ldp x4, x1, [x29, 104] 9241 ldr x2, [x4, #:lo12:.LANCHOR103] 9242 str w0, [x1, 4] 9243 ldr w1, [x24] 9244 ubfiz x0, x1, 5, 32 9245 add w1, w1, 1 9246 add x2, x2, x0 9247 ldr x0, [x23, #:lo12:.LANCHOR65] 9248 add x0, x0, x22 9249 ldr x4, [x0, 8] 9250 str x4, [x2, 8] 9251 ldr x4, [x0, 16] 9252 str x4, [x2, 16] 9253 ldr w2, [x29, 168] 9254 str w2, [x27, 12] 9255 adrp x2, .LANCHOR52 9256 add x11, x2, :lo12:.LANCHOR52 9257 ldrh w2, [x2, #:lo12:.LANCHOR52] 9258 strh w2, [x27, 2] 9259 adrp x2, .LANCHOR82 9260 str w1, [x24] 9261 mov w1, 1 9262 ldr w2, [x2, #:lo12:.LANCHOR82] 9263 str w2, [x27, 4] 9264 bl FtlGcBufAlloc 9265 ldrb w1, [x11, 7] 9266 ldr w0, [x24] 9267 cmp w1, w0 9268 beq .L1262 9269 ldrh w0, [x11, 4] 9270 cbnz w0, .L1260 9271.L1262: 9272 bl Ftl_gc_temp_data_write_back 9273 cbz w0, .L1260 9274 add x0, x19, :lo12:.LANCHOR144 9275 mov w1, -1 9276 str wzr, [x21, #:lo12:.LANCHOR93] 9277 strh w1, [x19, #:lo12:.LANCHOR144] 9278 strh wzr, [x0, 2] 9279 b .L1308 9280.L1260: 9281 add x22, x22, 32 9282 b .L1259 9283.L1264: 9284 add x1, x19, :lo12:.LANCHOR144 9285 ldrh w0, [x1, 2] 9286 add w20, w20, w0 9287 ldr w0, [x29, 156] 9288 and w20, w20, 65535 9289 strh w20, [x1, 2] 9290 cmp w0, w20 9291 bhi .L1266 9292 adrp x0, .LANCHOR61 9293 ldr w0, [x0, #:lo12:.LANCHOR61] 9294 cbz w0, .L1267 9295 bl Ftl_gc_temp_data_write_back 9296 cbz w0, .L1267 9297 str wzr, [x21, #:lo12:.LANCHOR93] 9298 b .L1308 9299.L1267: 9300 adrp x0, .LANCHOR172 9301 ldrh w0, [x0, #:lo12:.LANCHOR172] 9302 cbnz w0, .L1268 9303 ldrh w1, [x19, #:lo12:.LANCHOR144] 9304 adrp x20, .LANCHOR41 9305 add x0, x19, :lo12:.LANCHOR144 9306 ldr x3, [x20, #:lo12:.LANCHOR41] 9307 ubfiz x2, x1, 1, 16 9308 ldrh w4, [x3, x2] 9309 cbz w4, .L1268 9310 adrp x2, .LANCHOR173 9311 adrp x22, .LANCHOR151 9312 add x23, x22, :lo12:.LANCHOR151 9313 mov w24, 0 9314 ldrh w5, [x2, #:lo12:.LANCHOR173] 9315 mov w3, 0 9316 ldrh w2, [x0, 2] 9317 adrp x0, .LC42 9318 add x0, x0, :lo12:.LC42 9319 bl printf 9320.L1269: 9321 ldr w0, [x23] 9322 cmp w24, w0 9323 bcs .L1271 9324 mov w2, 0 9325 add x1, x29, 172 9326 mov w0, w24 9327 bl log2phys 9328 ldr w3, [x29, 172] 9329 cmn w3, #1 9330 beq .L1270 9331 lsr w0, w3, 10 9332 bl P2V_block_in_plane 9333 ldrh w1, [x19, #:lo12:.LANCHOR144] 9334 cmp w1, w0, uxth 9335 bne .L1270 9336 adrp x0, .LC43 9337 mov w2, w3 9338 mov w1, w24 9339 add x0, x0, :lo12:.LC43 9340 bl printf 9341.L1271: 9342 ldr w0, [x22, #:lo12:.LANCHOR151] 9343 cmp w24, w0 9344 bcc .L1268 9345 ldrh w1, [x19, #:lo12:.LANCHOR144] 9346 ldr x0, [x20, #:lo12:.LANCHOR41] 9347 strh wzr, [x0, x1, lsl 1] 9348 ldrh w0, [x19, #:lo12:.LANCHOR144] 9349 bl update_vpc_list 9350 bl l2p_flush 9351 bl FtlVpcTblFlush 9352.L1268: 9353 mov w0, -1 9354 strh w0, [x19, #:lo12:.LANCHOR144] 9355.L1266: 9356 adrp x0, .LANCHOR47 9357 str wzr, [x21, #:lo12:.LANCHOR93] 9358 ldrh w0, [x0, #:lo12:.LANCHOR47] 9359 cmp w0, 2 9360 bhi .L1274 9361 ldr x0, [x29, 120] 9362 ldrh w20, [x0, #:lo12:.LANCHOR18] 9363 b .L1275 9364.L1270: 9365 add w24, w24, 1 9366 b .L1269 9367.L1274: 9368 add w0, w0, 1 9369 b .L1220 9370.L1277: 9371 mov w0, 0 9372 b .L1220 9373 .size rk_ftl_garbage_collect, .-rk_ftl_garbage_collect 9374 .section .text.FtlRead,"ax",@progbits 9375 .align 2 9376 .global FtlRead 9377 .type FtlRead, %function 9378FtlRead: 9379 stp x29, x30, [sp, -176]! 9380 and w0, w0, 255 9381 cmp w0, 16 9382 add x29, sp, 0 9383 stp x21, x22, [sp, 32] 9384 mov x22, x3 9385 stp x23, x24, [sp, 48] 9386 mov w24, w2 9387 stp x27, x28, [sp, 80] 9388 mov w27, w1 9389 stp x19, x20, [sp, 16] 9390 stp x25, x26, [sp, 64] 9391 bne .L1310 9392 mov x2, x3 9393 mov w1, w24 9394 add w0, w27, 256 9395 bl FtlVendorPartRead 9396 mov w19, w0 9397.L1309: 9398 mov w0, w19 9399 ldp x19, x20, [sp, 16] 9400 ldp x21, x22, [sp, 32] 9401 ldp x23, x24, [sp, 48] 9402 ldp x25, x26, [sp, 64] 9403 ldp x27, x28, [sp, 80] 9404 ldp x29, x30, [sp], 176 9405 ret 9406.L1310: 9407 adrp x0, .LANCHOR33 9408 ldr w0, [x0, #:lo12:.LANCHOR33] 9409 cmp w1, w0 9410 bcs .L1333 9411 cmp w2, w0 9412 bhi .L1333 9413 add w1, w1, w2 9414 str w1, [x29, 136] 9415 cmp w0, w1 9416 bcc .L1333 9417 adrp x0, .LANCHOR165 9418 ldr w19, [x0, #:lo12:.LANCHOR165] 9419 cmn w19, #1 9420 beq .L1309 9421 adrp x21, .LANCHOR11 9422 adrp x25, .LANCHOR134 9423 add x25, x25, :lo12:.LANCHOR134 9424 mov w26, 0 9425 ldrh w0, [x21, #:lo12:.LANCHOR11] 9426 mov w19, 0 9427 adrp x28, .LANCHOR102 9428 stp wzr, wzr, [x29, 140] 9429 udiv w1, w27, w0 9430 stp wzr, w1, [x29, 148] 9431 add w1, w27, w2 9432 sub w23, w1, #1 9433 adrp x1, .LANCHOR162 9434 ldr w20, [x29, 152] 9435 udiv w23, w23, w0 9436 ldr w0, [x29, 152] 9437 sub w0, w23, w0 9438 add w0, w0, 1 9439 str w0, [x29, 156] 9440 ldr w0, [x1, #:lo12:.LANCHOR162] 9441 add w0, w0, w2 9442 str w0, [x1, #:lo12:.LANCHOR162] 9443 adrp x1, .LANCHOR88 9444 ldr w2, [x29, 156] 9445 ldr w0, [x1, #:lo12:.LANCHOR88] 9446 add w0, w0, w2 9447 str w0, [x1, #:lo12:.LANCHOR88] 9448.L1312: 9449 ldr w0, [x29, 156] 9450 cbnz w0, .L1329 9451 adrp x0, .LANCHOR73 9452 ldrh w0, [x0, #:lo12:.LANCHOR73] 9453 cbnz w0, .L1330 9454 adrp x0, .LANCHOR47 9455 ldrh w0, [x0, #:lo12:.LANCHOR47] 9456 cmp w0, 31 9457 bhi .L1309 9458.L1330: 9459 mov w1, 1 9460 mov w0, 0 9461 bl rk_ftl_garbage_collect 9462 b .L1309 9463.L1329: 9464 add x1, x29, 172 9465 mov w2, 0 9466 mov w0, w20 9467 bl log2phys 9468 ldr w1, [x29, 172] 9469 cmn w1, #1 9470 bne .L1313 9471 add x6, x21, :lo12:.LANCHOR11 9472 mov w5, 0 9473.L1314: 9474 ldrh w0, [x6] 9475 cmp w5, w0 9476 bcc .L1316 9477.L1317: 9478 ldr w0, [x29, 156] 9479 add w20, w20, 1 9480 subs w0, w0, #1 9481 str w0, [x29, 156] 9482 beq .L1321 9483 adrp x0, .LANCHOR2 9484 ldrh w0, [x0, #:lo12:.LANCHOR2] 9485 cmp w26, w0, lsl 2 9486 bne .L1312 9487.L1321: 9488 cbz w26, .L1312 9489 ldr x0, [x28, #:lo12:.LANCHOR102] 9490 mov w1, w26 9491 mov w2, 0 9492 bl FlashReadPages 9493 ldr w0, [x29, 140] 9494 lsl w0, w0, 9 9495 str w0, [x29, 116] 9496 ldr w0, [x29, 148] 9497 lsl w0, w0, 9 9498 str x0, [x29, 128] 9499 ldr w0, [x29, 144] 9500 lsl w0, w0, 9 9501 str w0, [x29, 120] 9502 ubfiz x0, x26, 5, 32 9503 mov x26, 0 9504 str x0, [x29, 104] 9505 add x0, x21, :lo12:.LANCHOR11 9506 str x0, [x29, 96] 9507.L1328: 9508 ldr x0, [x28, #:lo12:.LANCHOR102] 9509 ldr w2, [x29, 152] 9510 add x0, x0, x26 9511 ldr w1, [x0, 24] 9512 cmp w2, w1 9513 bne .L1323 9514 ldr x1, [x0, 8] 9515 adrp x0, .LANCHOR108 9516 ldr x0, [x0, #:lo12:.LANCHOR108] 9517 cmp x1, x0 9518 bne .L1324 9519 ldr x0, [x29, 128] 9520 ldr w2, [x29, 120] 9521 add x1, x1, x0 9522 mov x0, x22 9523.L1344: 9524 bl ftl_memcpy 9525.L1324: 9526 ldr x0, [x28, #:lo12:.LANCHOR102] 9527 add x0, x0, x26 9528 ldr x1, [x0, 16] 9529 ldr w2, [x0, 24] 9530 ldr w1, [x1, 8] 9531 cmp w2, w1 9532 beq .L1325 9533 ldr w1, [x25, 72] 9534 add w1, w1, 1 9535 str w1, [x25, 72] 9536.L1325: 9537 ldr w1, [x0] 9538 cmn w1, #1 9539 bne .L1326 9540 ldr w0, [x25, 72] 9541 mov w19, w1 9542 add w0, w0, 1 9543 str w0, [x25, 72] 9544.L1327: 9545 ldr x0, [x29, 104] 9546 add x26, x26, 32 9547 cmp x0, x26 9548 bne .L1328 9549 mov w26, 0 9550 b .L1312 9551.L1316: 9552 madd w0, w20, w0, w5 9553 cmp w27, w0 9554 bhi .L1315 9555 ldr w1, [x29, 136] 9556 cmp w1, w0 9557 bls .L1315 9558 sub w0, w0, w27 9559 str x6, [x29, 120] 9560 lsl w0, w0, 9 9561 str w5, [x29, 128] 9562 mov w2, 512 9563 mov w1, 0 9564 add x0, x22, x0 9565 bl ftl_memset 9566 ldr w5, [x29, 128] 9567 ldr x6, [x29, 120] 9568.L1315: 9569 add w5, w5, 1 9570 b .L1314 9571.L1313: 9572 ldr x2, [x28, #:lo12:.LANCHOR102] 9573 ubfiz x0, x26, 5, 32 9574 add x0, x2, x0 9575 str w1, [x0, 4] 9576 ldr w1, [x29, 152] 9577 cmp w20, w1 9578 bne .L1318 9579 adrp x1, .LANCHOR108 9580 ldr x1, [x1, #:lo12:.LANCHOR108] 9581 str x1, [x0, 8] 9582 ldrh w1, [x21, #:lo12:.LANCHOR11] 9583 udiv w2, w27, w1 9584 msub w2, w2, w1, w27 9585 str w2, [x29, 148] 9586 sub w2, w1, w2 9587 cmp w24, w2 9588 csel w2, w24, w2, ls 9589 str w2, [x29, 144] 9590 cmp w1, w2 9591 bne .L1319 9592 str x22, [x0, 8] 9593.L1319: 9594 adrp x1, .LANCHOR23 9595 adrp x2, .LANCHOR114 9596 str w20, [x0, 24] 9597 ldrh w1, [x1, #:lo12:.LANCHOR23] 9598 ldr x2, [x2, #:lo12:.LANCHOR114] 9599 mul w1, w1, w26 9600 add w26, w26, 1 9601 and x1, x1, 4294967292 9602 add x1, x2, x1 9603 str x1, [x0, 16] 9604 b .L1317 9605.L1318: 9606 cmp w20, w23 9607 bne .L1320 9608 ldrh w2, [x21, #:lo12:.LANCHOR11] 9609 adrp x1, .LANCHOR109 9610 ldr w3, [x29, 136] 9611 ldr x1, [x1, #:lo12:.LANCHOR109] 9612 str x1, [x0, 8] 9613 mul w1, w20, w2 9614 sub w3, w3, w1 9615 str w3, [x29, 140] 9616 cmp w2, w3 9617 bne .L1319 9618.L1343: 9619 sub w1, w1, w27 9620 lsl w1, w1, 9 9621 add x1, x22, x1 9622 str x1, [x0, 8] 9623 b .L1319 9624.L1320: 9625 ldrh w1, [x21, #:lo12:.LANCHOR11] 9626 mul w1, w1, w20 9627 b .L1343 9628.L1323: 9629 cmp w23, w1 9630 bne .L1324 9631 ldr x1, [x0, 8] 9632 adrp x0, .LANCHOR109 9633 ldr x0, [x0, #:lo12:.LANCHOR109] 9634 cmp x1, x0 9635 bne .L1324 9636 ldr x0, [x29, 96] 9637 ldr w2, [x29, 116] 9638 ldrh w0, [x0] 9639 mul w0, w0, w23 9640 sub w0, w0, w27 9641 lsl w0, w0, 9 9642 add x0, x22, x0 9643 b .L1344 9644.L1326: 9645 cmp w1, 256 9646 bne .L1327 9647 ldr w0, [x0, 4] 9648 lsr w0, w0, 10 9649 bl P2V_block_in_plane 9650 bl FtlGcRefreshBlock 9651 b .L1327 9652.L1333: 9653 mov w19, -1 9654 b .L1309 9655 .size FtlRead, .-FtlRead 9656 .section .text.sftl_read,"ax",@progbits 9657 .align 2 9658 .global sftl_read 9659 .type sftl_read, %function 9660sftl_read: 9661 mov x3, x2 9662 mov w2, w1 9663 mov w1, w0 9664 mov w0, 0 9665 b FtlRead 9666 .size sftl_read, .-sftl_read 9667 .section .text.FtlWrite,"ax",@progbits 9668 .align 2 9669 .global FtlWrite 9670 .type FtlWrite, %function 9671FtlWrite: 9672 stp x29, x30, [sp, -224]! 9673 and w0, w0, 255 9674 cmp w0, 16 9675 add x29, sp, 0 9676 stp x21, x22, [sp, 32] 9677 mov w22, w1 9678 stp x25, x26, [sp, 64] 9679 mov w26, w2 9680 stp x27, x28, [sp, 80] 9681 mov x27, x3 9682 stp x19, x20, [sp, 16] 9683 stp x23, x24, [sp, 48] 9684 bne .L1347 9685 mov x2, x3 9686 mov w1, w26 9687 add w0, w22, 256 9688 bl FtlVendorPartWrite 9689.L1346: 9690 ldp x19, x20, [sp, 16] 9691 ldp x21, x22, [sp, 32] 9692 ldp x23, x24, [sp, 48] 9693 ldp x25, x26, [sp, 64] 9694 ldp x27, x28, [sp, 80] 9695 ldp x29, x30, [sp], 224 9696 ret 9697.L1347: 9698 adrp x0, .LANCHOR33 9699 ldr w0, [x0, #:lo12:.LANCHOR33] 9700 cmp w1, w0 9701 bcs .L1381 9702 cmp w2, w0 9703 bhi .L1381 9704 add w1, w1, w2 9705 str w1, [x29, 136] 9706 cmp w0, w1 9707 bcc .L1381 9708 adrp x0, .LANCHOR165 9709 ldr w0, [x0, #:lo12:.LANCHOR165] 9710 cmn w0, #1 9711 beq .L1346 9712 adrp x0, .LANCHOR175 9713 mov w1, 2048 9714 add w2, w22, w2 9715 str w1, [x0, #:lo12:.LANCHOR175] 9716 adrp x1, .LANCHOR11 9717 sub w2, w2, #1 9718 str x1, [x29, 160] 9719 ldrh w0, [x1, #:lo12:.LANCHOR11] 9720 udiv w25, w22, w0 9721 udiv w0, w2, w0 9722 adrp x2, .LANCHOR161 9723 mov w19, w25 9724 str w0, [x29, 144] 9725 sub w0, w0, w25 9726 add w24, w0, 1 9727 str w0, [x29, 140] 9728 ldr w0, [x2, #:lo12:.LANCHOR161] 9729 add w0, w0, w26 9730 str w0, [x2, #:lo12:.LANCHOR161] 9731 adrp x2, .LANCHOR84 9732 ldr w0, [x2, #:lo12:.LANCHOR84] 9733 add w0, w0, w24 9734 str w0, [x2, #:lo12:.LANCHOR84] 9735 adrp x0, .LANCHOR50 9736 add x20, x0, :lo12:.LANCHOR50 9737.L1349: 9738 cbnz w24, .L1374 9739 ldr w1, [x29, 140] 9740 mov w0, 0 9741 bl rk_ftl_garbage_collect 9742 adrp x0, .LANCHOR47 9743 mov x22, x0 9744 ldrh w1, [x0, #:lo12:.LANCHOR47] 9745 cmp w1, 5 9746 bls .L1375 9747.L1377: 9748 mov w0, 0 9749 b .L1346 9750.L1374: 9751 adrp x0, .LANCHOR50 9752 add x0, x0, :lo12:.LANCHOR50 9753 adrp x1, .LANCHOR2 9754 str x1, [x29, 112] 9755 ldrb w2, [x0, 6] 9756 ldrh w0, [x1, #:lo12:.LANCHOR2] 9757 cmp w2, w0 9758 bcc .L1350 9759 adrp x1, .LANCHOR176 9760 adrp x0, .LC1 9761 mov w2, 1041 9762 add x1, x1, :lo12:.LANCHOR176 9763 add x0, x0, :lo12:.LC1 9764 bl printf 9765.L1350: 9766 ldrh w0, [x20, 4] 9767 cbnz w0, .L1351 9768 mov x0, x20 9769 bl allocate_new_data_superblock 9770.L1351: 9771 ldrb w0, [x20, 7] 9772 ldrh w1, [x20, 4] 9773 lsl w0, w0, 2 9774 cmp w0, w1 9775 csel w0, w0, w1, ls 9776 ldrb w1, [x20, 6] 9777 cmp w0, w24 9778 csel w0, w0, w24, ls 9779 str w0, [x29, 148] 9780 ldr x0, [x29, 112] 9781 ldrh w0, [x0, #:lo12:.LANCHOR2] 9782 cmp w1, w0 9783 bcc .L1352 9784 adrp x1, .LANCHOR176 9785 adrp x0, .LC1 9786 mov w2, 1074 9787 add x1, x1, :lo12:.LANCHOR176 9788 add x0, x0, :lo12:.LC1 9789 bl printf 9790.L1352: 9791 adrp x0, .LANCHOR23 9792 add x0, x0, :lo12:.LANCHOR23 9793 str xzr, [x29, 168] 9794 str x0, [x29, 104] 9795 adrp x0, .LANCHOR22 9796 add x0, x0, :lo12:.LANCHOR22 9797 str x0, [x29, 96] 9798.L1353: 9799 ldr w1, [x29, 148] 9800 adrp x28, .LANCHOR104 9801 ldr w23, [x29, 168] 9802 cmp w23, w1 9803 bcc .L1372 9804 mov x23, x1 9805.L1354: 9806 ldr x0, [x28, #:lo12:.LANCHOR104] 9807 mov x3, x20 9808 mov w2, 0 9809 mov w1, w23 9810 bl FtlProgPages 9811 cmp w24, w23 9812 bcs .L1373 9813 adrp x1, .LANCHOR176 9814 adrp x0, .LC1 9815 mov w2, 1152 9816 add x1, x1, :lo12:.LANCHOR176 9817 add x0, x0, :lo12:.LC1 9818 bl printf 9819.L1373: 9820 sub w24, w24, w23 9821 b .L1349 9822.L1372: 9823 ldrh w0, [x20, 4] 9824 cbz w0, .L1354 9825 add x1, x29, 188 9826 mov w2, 0 9827 mov w0, w19 9828 bl log2phys 9829 mov x0, x20 9830 bl get_new_active_ppa 9831 ldr x1, [x29, 168] 9832 lsl x21, x1, 5 9833 ldr x1, [x28, #:lo12:.LANCHOR104] 9834 add x1, x1, x21 9835 str w0, [x1, 4] 9836 ldr x0, [x29, 104] 9837 str w19, [x1, 24] 9838 ldrh w2, [x0] 9839 mul w23, w23, w2 9840 and x0, x23, 4294967292 9841 str x0, [x29, 128] 9842 adrp x0, .LANCHOR114 9843 ldr x3, [x29, 128] 9844 ldr x0, [x0, #:lo12:.LANCHOR114] 9845 str x0, [x29, 120] 9846 add x23, x0, x3 9847 str x23, [x1, 16] 9848 mov x0, x23 9849 mov w1, 0 9850 bl ftl_memset 9851 ldr w0, [x29, 144] 9852 cmp w19, w25 9853 ccmp w19, w0, 4, ne 9854 bne .L1355 9855 cmp w19, w25 9856 ldr x0, [x29, 160] 9857 bne .L1356 9858 ldrh w2, [x0, #:lo12:.LANCHOR11] 9859 udiv w0, w22, w2 9860 msub w0, w0, w2, w22 9861 str w0, [x29, 152] 9862 sub w2, w2, w0 9863 cmp w2, w26 9864 csel w0, w2, w26, ls 9865 str w0, [x29, 156] 9866.L1357: 9867 ldr x0, [x29, 160] 9868 ldr w1, [x29, 156] 9869 ldrh w0, [x0, #:lo12:.LANCHOR11] 9870 cmp w1, w0 9871 ldr x0, [x28, #:lo12:.LANCHOR104] 9872 bne .L1358 9873 add x21, x0, x21 9874 cmp w19, w25 9875 bne .L1359 9876 str x27, [x21, 8] 9877.L1360: 9878 ldr x0, [x29, 112] 9879 ldrb w1, [x20, 6] 9880 ldrh w0, [x0, #:lo12:.LANCHOR2] 9881 cmp w1, w0 9882 bcc .L1369 9883 adrp x1, .LANCHOR176 9884 adrp x0, .LC1 9885 mov w2, 1143 9886 add x1, x1, :lo12:.LANCHOR176 9887 add x0, x0, :lo12:.LC1 9888 bl printf 9889.L1369: 9890 ldp x1, x2, [x29, 120] 9891 mov w0, -3947 9892 strh w0, [x1, x2] 9893 adrp x1, .LANCHOR82 9894 ldr w0, [x1, #:lo12:.LANCHOR82] 9895 stp w0, w19, [x23, 4] 9896 add w19, w19, 1 9897 add w0, w0, 1 9898 cmn w0, #1 9899 csel w0, w0, wzr, ne 9900 str w0, [x1, #:lo12:.LANCHOR82] 9901 ldr w0, [x29, 188] 9902 str w0, [x23, 12] 9903 ldrh w0, [x20] 9904 strh w0, [x23, 2] 9905 ldr x0, [x29, 168] 9906 add x0, x0, 1 9907 str x0, [x29, 168] 9908 b .L1353 9909.L1356: 9910 ldrh w2, [x0, #:lo12:.LANCHOR11] 9911 ldr w0, [x29, 136] 9912 msub w2, w19, w2, w0 9913 and w0, w2, 65535 9914 stp wzr, w0, [x29, 152] 9915 b .L1357 9916.L1359: 9917 ldr w0, [x29, 156] 9918.L1389: 9919 mul w0, w0, w19 9920 sub w0, w0, w22 9921 lsl w0, w0, 9 9922 add x0, x27, x0 9923 str x0, [x21, 8] 9924 b .L1360 9925.L1358: 9926 add x0, x0, x21 9927 cmp w19, w25 9928 bne .L1361 9929 adrp x1, .LANCHOR108 9930 ldr x1, [x1, #:lo12:.LANCHOR108] 9931.L1388: 9932 str x1, [x0, 8] 9933 ldr w0, [x29, 188] 9934 cmn w0, #1 9935 beq .L1363 9936 str w0, [x29, 196] 9937 mov w2, 0 9938 ldr x0, [x28, #:lo12:.LANCHOR104] 9939 str w19, [x29, 216] 9940 add x0, x0, x21 9941 ldp x1, x0, [x0, 8] 9942 stp x1, x0, [x29, 200] 9943 mov w1, 1 9944 add x0, x29, 192 9945 bl FlashReadPages 9946 ldr w3, [x29, 192] 9947 cmn w3, #1 9948 bne .L1364 9949 adrp x0, .LANCHOR134 9950 add x0, x0, :lo12:.LANCHOR134 9951 mov w2, w19 9952 ldr w1, [x0, 72] 9953 add w1, w1, 1 9954 str w1, [x0, 72] 9955 ldr w1, [x23, 8] 9956 adrp x0, .LC44 9957 add x0, x0, :lo12:.LC44 9958 bl printf 9959.L1367: 9960 ldr w0, [x29, 156] 9961 cmp w19, w25 9962 lsl w2, w0, 9 9963 bne .L1368 9964 ldr x0, [x28, #:lo12:.LANCHOR104] 9965 mov x1, x27 9966 add x21, x0, x21 9967 ldr w0, [x29, 152] 9968 ldr x3, [x21, 8] 9969 lsl w0, w0, 9 9970 add x0, x3, x0 9971.L1390: 9972 bl ftl_memcpy 9973 b .L1360 9974.L1361: 9975 adrp x1, .LANCHOR109 9976 ldr x1, [x1, #:lo12:.LANCHOR109] 9977 b .L1388 9978.L1364: 9979 ldr w1, [x23, 8] 9980 cmp w19, w1 9981 beq .L1366 9982 adrp x0, .LANCHOR134 9983 add x0, x0, :lo12:.LANCHOR134 9984 ldr w2, [x0, 72] 9985 add w2, w2, 1 9986 str w2, [x0, 72] 9987 adrp x0, .LC45 9988 mov w2, w19 9989 add x0, x0, :lo12:.LC45 9990 bl printf 9991.L1366: 9992 ldr w0, [x23, 8] 9993 cmp w19, w0 9994 beq .L1367 9995 mov w2, 1128 9996 adrp x1, .LANCHOR176 9997 adrp x0, .LC1 9998 add x1, x1, :lo12:.LANCHOR176 9999 add x0, x0, :lo12:.LC1 10000 bl printf 10001 b .L1367 10002.L1363: 10003 ldr x0, [x28, #:lo12:.LANCHOR104] 10004 ldr x1, [x29, 96] 10005 add x0, x0, x21 10006 ldrh w2, [x1] 10007 mov w1, 0 10008 ldr x0, [x0, 8] 10009 bl ftl_memset 10010 b .L1367 10011.L1368: 10012 ldr x0, [x29, 160] 10013 ldrh w1, [x0, #:lo12:.LANCHOR11] 10014 ldr x0, [x28, #:lo12:.LANCHOR104] 10015 add x21, x0, x21 10016 mul w1, w1, w19 10017 sub w1, w1, w22 10018 ldr x0, [x21, 8] 10019 lsl w1, w1, 9 10020 add x1, x27, x1 10021 b .L1390 10022.L1355: 10023 ldr x0, [x28, #:lo12:.LANCHOR104] 10024 add x21, x0, x21 10025 ldr x0, [x29, 160] 10026 ldrh w0, [x0, #:lo12:.LANCHOR11] 10027 b .L1389 10028.L1375: 10029 adrp x23, .LANCHOR71 10030 adrp x20, .LANCHOR100 10031 adrp x21, .LANCHOR99 10032 add x23, x23, :lo12:.LANCHOR71 10033 add x20, x20, :lo12:.LANCHOR100 10034 add x21, x21, :lo12:.LANCHOR99 10035 mov w19, 256 10036.L1378: 10037 adrp x0, .LANCHOR144 10038 mov w1, 65535 10039 ldrh w0, [x0, #:lo12:.LANCHOR144] 10040 cmp w0, w1 10041 bne .L1376 10042 ldrh w1, [x23] 10043 cmp w1, w0 10044 bne .L1376 10045 mov w0, 0 10046 bl List_get_gc_head_node 10047 bl FtlGcRefreshBlock 10048.L1376: 10049 mov w0, 128 10050 mov w1, 1 10051 strh w0, [x20] 10052 strh w0, [x21] 10053 mov w0, w1 10054 bl rk_ftl_garbage_collect 10055 mov w1, 1 10056 mov w0, 0 10057 bl rk_ftl_garbage_collect 10058 ldrh w0, [x22, #:lo12:.LANCHOR47] 10059 cmp w0, 2 10060 bhi .L1377 10061 subs w19, w19, #1 10062 bne .L1378 10063 b .L1377 10064.L1381: 10065 mov w0, -1 10066 b .L1346 10067 .size FtlWrite, .-FtlWrite 10068 .section .text.sftl_gc,"ax",@progbits 10069 .align 2 10070 .global sftl_gc 10071 .type sftl_gc, %function 10072sftl_gc: 10073 mov w1, 1 10074 mov w0, w1 10075 b rk_ftl_garbage_collect 10076 .size sftl_gc, .-sftl_gc 10077 .section .text.FtlLoadSysInfo,"ax",@progbits 10078 .align 2 10079 .global FtlLoadSysInfo 10080 .type FtlLoadSysInfo, %function 10081FtlLoadSysInfo: 10082 stp x29, x30, [sp, -112]! 10083 add x29, sp, 0 10084 stp x19, x20, [sp, 16] 10085 adrp x19, .LANCHOR137 10086 stp x21, x22, [sp, 32] 10087 add x0, x19, :lo12:.LANCHOR137 10088 adrp x22, .LANCHOR105 10089 stp x25, x26, [sp, 64] 10090 adrp x25, .LANCHOR113 10091 stp x23, x24, [sp, 48] 10092 stp x27, x28, [sp, 80] 10093 adrp x23, .LANCHOR41 10094 ldr x1, [x22, #:lo12:.LANCHOR105] 10095 adrp x21, .LANCHOR4 10096 str x1, [x0, 8] 10097 adrp x20, .LANCHOR138 10098 ldr x1, [x25, #:lo12:.LANCHOR113] 10099 str x1, [x0, 16] 10100 ldr x0, [x23, #:lo12:.LANCHOR41] 10101 mov w1, 0 10102 ldrh w2, [x21, #:lo12:.LANCHOR4] 10103 lsl w2, w2, 1 10104 bl ftl_memset 10105 ldrh w0, [x20, #:lo12:.LANCHOR138] 10106 mov w1, 65535 10107 cmp w0, w1 10108 bne .L1393 10109.L1404: 10110 mov w0, -1 10111.L1392: 10112 ldp x19, x20, [sp, 16] 10113 ldp x21, x22, [sp, 32] 10114 ldp x23, x24, [sp, 48] 10115 ldp x25, x26, [sp, 64] 10116 ldp x27, x28, [sp, 80] 10117 ldp x29, x30, [sp], 112 10118 ret 10119.L1393: 10120 add x24, x20, :lo12:.LANCHOR138 10121 mov w1, 1 10122 bl FtlGetLastWrittenPage 10123 sxth w28, w0 10124 add w0, w0, 1 10125 adrp x26, .LANCHOR22 10126 strh w0, [x24, 2] 10127 adrp x27, .LANCHOR177 10128 ldrsh w24, [x20, #:lo12:.LANCHOR138] 10129 add x26, x26, :lo12:.LANCHOR22 10130 add x27, x27, :lo12:.LANCHOR177 10131.L1395: 10132 tbz w28, #31, .L1401 10133 adrp x1, .LANCHOR177 10134 adrp x0, .LC1 10135 mov w2, 1474 10136 add x1, x1, :lo12:.LANCHOR177 10137 add x0, x0, :lo12:.LC1 10138 bl printf 10139.L1400: 10140 adrp x1, .LANCHOR22 10141 ldrh w0, [x21, #:lo12:.LANCHOR4] 10142 ldrh w1, [x1, #:lo12:.LANCHOR22] 10143 add x0, x0, 24 10144 cmp x1, x0, lsl 1 10145 bcs .L1403 10146 adrp x1, .LANCHOR177 10147 adrp x0, .LC1 10148 mov w2, 1476 10149 add x1, x1, :lo12:.LANCHOR177 10150 add x0, x0, :lo12:.LC1 10151 bl printf 10152.L1403: 10153 add x24, x19, :lo12:.LANCHOR137 10154 adrp x19, .LANCHOR38 10155 add x22, x19, :lo12:.LANCHOR38 10156 mov w2, 48 10157 mov x0, x22 10158 ldr x1, [x24, 8] 10159 bl ftl_memcpy 10160 ldr x0, [x23, #:lo12:.LANCHOR41] 10161 ldrh w2, [x21, #:lo12:.LANCHOR4] 10162 ldr x1, [x24, 8] 10163 lsl w2, w2, 1 10164 add x1, x1, 48 10165 bl ftl_memcpy 10166 ldr w1, [x19, #:lo12:.LANCHOR38] 10167 mov w0, 19539 10168 movk w0, 0x4654, lsl 16 10169 cmp w1, w0 10170 bne .L1404 10171 add x20, x20, :lo12:.LANCHOR138 10172 adrp x0, .LANCHOR9 10173 ldrh w1, [x22, 8] 10174 ldrb w2, [x22, 10] 10175 ldrh w0, [x0, #:lo12:.LANCHOR9] 10176 strh w1, [x20, 6] 10177 cmp w2, w0 10178 bne .L1404 10179 adrp x0, .LANCHOR178 10180 adrp x2, .LANCHOR151 10181 adrp x3, .LANCHOR2 10182 str w1, [x0, #:lo12:.LANCHOR178] 10183 adrp x0, .LANCHOR18 10184 ldrh w3, [x3, #:lo12:.LANCHOR2] 10185 ldrh w0, [x0, #:lo12:.LANCHOR18] 10186 mul w0, w0, w1 10187 str w0, [x2, #:lo12:.LANCHOR151] 10188 adrp x2, .LANCHOR11 10189 ldrh w2, [x2, #:lo12:.LANCHOR11] 10190 mul w0, w2, w0 10191 adrp x2, .LANCHOR33 10192 str w0, [x2, #:lo12:.LANCHOR33] 10193 adrp x0, .LANCHOR6 10194 ldr w2, [x0, #:lo12:.LANCHOR6] 10195 adrp x0, .LANCHOR36+6 10196 ldrh w0, [x0, #:lo12:.LANCHOR36+6] 10197 cmp w1, w2 10198 sub w0, w2, w0 10199 sub w0, w0, w1 10200 udiv w0, w0, w3 10201 adrp x3, .LANCHOR170 10202 strh w0, [x3, #:lo12:.LANCHOR170] 10203 bls .L1405 10204 adrp x1, .LANCHOR177 10205 adrp x0, .LC1 10206 mov w2, 1498 10207 add x1, x1, :lo12:.LANCHOR177 10208 add x0, x0, :lo12:.LC1 10209 bl printf 10210.L1405: 10211 add x4, x19, :lo12:.LANCHOR38 10212 adrp x0, .LANCHOR50 10213 add x2, x0, :lo12:.LANCHOR50 10214 adrp x5, .LANCHOR144 10215 adrp x20, .LANCHOR51 10216 mov x22, x5 10217 ldrh w1, [x4, 16] 10218 ldrh w6, [x4, 14] 10219 strh w6, [x0, #:lo12:.LANCHOR50] 10220 lsr w3, w1, 6 10221 and w1, w1, 63 10222 strb w1, [x2, 6] 10223 ldrb w1, [x4, 11] 10224 strb w1, [x2, 8] 10225 add x1, x5, :lo12:.LANCHOR144 10226 strh w3, [x2, 2] 10227 mov w2, -1 10228 strh w2, [x5, #:lo12:.LANCHOR144] 10229 add x2, x20, :lo12:.LANCHOR51 10230 strh wzr, [x1, 2] 10231 strb wzr, [x1, 6] 10232 strb wzr, [x1, 8] 10233 ldrh w1, [x4, 18] 10234 strh w1, [x20, #:lo12:.LANCHOR51] 10235 ldrh w1, [x4, 20] 10236 lsr w3, w1, 6 10237 and w1, w1, 63 10238 strb w1, [x2, 6] 10239 ldrb w1, [x4, 12] 10240 strh w3, [x2, 2] 10241 strb w1, [x2, 8] 10242 adrp x2, .LANCHOR52 10243 ldrh w1, [x4, 22] 10244 add x3, x2, :lo12:.LANCHOR52 10245 strh w1, [x2, #:lo12:.LANCHOR52] 10246 mov x21, x2 10247 ldrh w1, [x4, 24] 10248 lsr w7, w1, 6 10249 and w1, w1, 63 10250 strb w1, [x3, 6] 10251 ldrb w1, [x4, 13] 10252 strb w1, [x3, 8] 10253 adrp x1, .LANCHOR83 10254 strh w7, [x3, 2] 10255 ldr w3, [x4, 32] 10256 str wzr, [x1, #:lo12:.LANCHOR83] 10257 adrp x1, .LANCHOR84 10258 str wzr, [x1, #:lo12:.LANCHOR84] 10259 adrp x1, .LANCHOR88 10260 str wzr, [x1, #:lo12:.LANCHOR88] 10261 adrp x1, .LANCHOR87 10262 str wzr, [x1, #:lo12:.LANCHOR87] 10263 adrp x1, .LANCHOR89 10264 str w3, [x1, #:lo12:.LANCHOR89] 10265 adrp x1, .LANCHOR90 10266 str wzr, [x1, #:lo12:.LANCHOR90] 10267 adrp x1, .LANCHOR91 10268 str wzr, [x1, #:lo12:.LANCHOR91] 10269 adrp x1, .LANCHOR86 10270 ldr w3, [x4, 40] 10271 str wzr, [x1, #:lo12:.LANCHOR86] 10272 adrp x1, .LANCHOR81 10273 ldr w4, [x1, #:lo12:.LANCHOR81] 10274 cmp w3, w4 10275 bls .L1406 10276 str w3, [x1, #:lo12:.LANCHOR81] 10277.L1406: 10278 add x19, x19, :lo12:.LANCHOR38 10279 adrp x1, .LANCHOR82 10280 ldr w3, [x1, #:lo12:.LANCHOR82] 10281 ldr w2, [x19, 36] 10282 cmp w2, w3 10283 bls .L1407 10284 str w2, [x1, #:lo12:.LANCHOR82] 10285.L1407: 10286 mov w1, 65535 10287 cmp w6, w1 10288 beq .L1408 10289 add x0, x0, :lo12:.LANCHOR50 10290 bl make_superblock 10291.L1408: 10292 ldrh w2, [x20, #:lo12:.LANCHOR51] 10293 mov w1, 65535 10294 add x0, x20, :lo12:.LANCHOR51 10295 cmp w2, w1 10296 beq .L1409 10297 bl make_superblock 10298.L1409: 10299 ldrh w2, [x21, #:lo12:.LANCHOR52] 10300 mov w1, 65535 10301 add x0, x21, :lo12:.LANCHOR52 10302 cmp w2, w1 10303 beq .L1410 10304 bl make_superblock 10305.L1410: 10306 ldrh w2, [x22, #:lo12:.LANCHOR144] 10307 mov w1, 65535 10308 add x0, x22, :lo12:.LANCHOR144 10309 cmp w2, w1 10310 beq .L1411 10311 bl make_superblock 10312.L1411: 10313 mov w0, 0 10314 b .L1392 10315.L1401: 10316 add x3, x19, :lo12:.LANCHOR137 10317 orr w0, w28, w24, lsl 10 10318 mov w2, 1 10319 str x3, [x29, 104] 10320 mov w1, w2 10321 str w0, [x3, 4] 10322 ldr x0, [x22, #:lo12:.LANCHOR105] 10323 str x0, [x3, 8] 10324 mov x0, x3 10325 bl FlashReadPages 10326 ldr x3, [x29, 104] 10327 ldr x0, [x3, 16] 10328 ldr w8, [x0, 12] 10329 cbz w8, .L1396 10330 ldr w0, [x19, #:lo12:.LANCHOR137] 10331 cmn w0, #1 10332 beq .L1396 10333 ldrh w1, [x26] 10334 ldr x0, [x3, 8] 10335 bl js_hash 10336 cmp w8, w0 10337 beq .L1396 10338 add x10, x20, :lo12:.LANCHOR138 10339 mov w6, w0 10340 mov w5, w8 10341 adrp x0, .LC46 10342 mov w3, w28 10343 mov w2, w24 10344 ldrh w4, [x10, 4] 10345 mov x1, x27 10346 add x0, x0, :lo12:.LC46 10347 str x10, [x29, 104] 10348 bl printf 10349 cbnz w28, .L1397 10350 ldr x10, [x29, 104] 10351 ldrh w0, [x10, 4] 10352 cmp w24, w0 10353 beq .L1397 10354 sxth w24, w0 10355 adrp x0, .LANCHOR19 10356 ldrh w7, [x0, #:lo12:.LANCHOR19] 10357 sub w7, w7, #1 10358.L1423: 10359 sxth w28, w7 10360 b .L1395 10361.L1397: 10362 mov w0, -1 10363 str w0, [x19, #:lo12:.LANCHOR137] 10364.L1396: 10365 ldr w0, [x19, #:lo12:.LANCHOR137] 10366 cmn w0, #1 10367 beq .L1399 10368 ldr x0, [x22, #:lo12:.LANCHOR105] 10369 mov w1, 19539 10370 movk w1, 0x4654, lsl 16 10371 ldr w0, [x0] 10372 cmp w0, w1 10373 bne .L1399 10374 ldr x0, [x25, #:lo12:.LANCHOR113] 10375 ldrh w1, [x0] 10376 mov w0, 61604 10377 cmp w1, w0 10378 beq .L1400 10379.L1399: 10380 sub w7, w28, #1 10381 b .L1423 10382 .size FtlLoadSysInfo, .-FtlLoadSysInfo 10383 .section .text.FtlMapTblRecovery,"ax",@progbits 10384 .align 2 10385 .global FtlMapTblRecovery 10386 .type FtlMapTblRecovery, %function 10387FtlMapTblRecovery: 10388 stp x29, x30, [sp, -160]! 10389 mov w1, 0 10390 add x29, sp, 0 10391 stp x19, x20, [sp, 16] 10392 mov x19, x0 10393 stp x25, x26, [sp, 64] 10394 mov w20, 0 10395 ldrh w25, [x0, 6] 10396 adrp x26, .LANCHOR19 10397 stp x23, x24, [sp, 48] 10398 ldr x23, [x0, 40] 10399 ldr x24, [x0, 16] 10400 lsl w2, w25, 2 10401 ldr x0, [x0, 24] 10402 str x0, [x29, 144] 10403 ldrh w0, [x19, 8] 10404 stp x21, x22, [sp, 32] 10405 adrp x22, .LANCHOR105 10406 stp x27, x28, [sp, 80] 10407 str w0, [x29, 152] 10408 mov x0, x23 10409 bl ftl_memset 10410 stp wzr, wzr, [x19, 48] 10411 adrp x0, .LANCHOR137 10412 add x6, x0, :lo12:.LANCHOR137 10413 ldr x1, [x22, #:lo12:.LANCHOR105] 10414 mov x27, x6 10415 str x0, [x29, 128] 10416 str x1, [x6, 8] 10417 adrp x1, .LANCHOR113 10418 ldr w0, [x29, 152] 10419 ldr x21, [x1, #:lo12:.LANCHOR113] 10420 mov w1, -1 10421 str x21, [x6, 16] 10422 sub w0, w0, #1 10423 strh w1, [x19] 10424 strh w1, [x19, 2] 10425 mov w1, 1 10426 str w0, [x29, 108] 10427 add x0, x26, :lo12:.LANCHOR19 10428 str w1, [x19, 56] 10429 str x0, [x29, 96] 10430.L1425: 10431 ldr w0, [x29, 152] 10432 cmp w20, w0 10433 bge .L1444 10434 ldr w0, [x29, 108] 10435 sxtw x28, w20 10436 cmp w20, w0 10437 bne .L1426 10438 lsl x0, x28, 1 10439 mov w1, 1 10440 add x26, x24, x0 10441 adrp x27, .LANCHOR22 10442 add x27, x27, :lo12:.LANCHOR22 10443 ldrh w0, [x24, x0] 10444 mov w24, 0 10445 bl FtlGetLastWrittenPage 10446 sxth w1, w0 10447 add w0, w0, 1 10448 strh w0, [x19, 2] 10449 ldr x0, [x29, 144] 10450 strh w20, [x19] 10451 str w1, [x29, 152] 10452 ldr w0, [x0, x28, lsl 2] 10453 adrp x28, .LANCHOR179 10454 str w0, [x19, 48] 10455 add x28, x28, :lo12:.LANCHOR179 10456 ldr x0, [x29, 128] 10457 add x22, x0, :lo12:.LANCHOR137 10458.L1427: 10459 ldr w0, [x29, 152] 10460 cmp w24, w0 10461 ble .L1430 10462.L1444: 10463 mov x0, x19 10464 bl ftl_free_no_use_map_blk 10465 adrp x0, .LANCHOR19 10466 ldrh w1, [x19, 2] 10467 ldrh w0, [x0, #:lo12:.LANCHOR19] 10468 cmp w1, w0 10469 bne .L1432 10470 mov x0, x19 10471 bl ftl_map_blk_alloc_new_blk 10472.L1432: 10473 mov x0, x19 10474 bl ftl_map_blk_gc 10475 mov x0, x19 10476 bl ftl_map_blk_gc 10477 mov w0, 0 10478 ldp x19, x20, [sp, 16] 10479 ldp x21, x22, [sp, 32] 10480 ldp x23, x24, [sp, 48] 10481 ldp x25, x26, [sp, 64] 10482 ldp x27, x28, [sp, 80] 10483 ldp x29, x30, [sp], 160 10484 ret 10485.L1430: 10486 ldrh w0, [x26] 10487 mov w2, 1 10488 mov w1, w2 10489 orr w0, w24, w0, lsl 10 10490 str w0, [x22, 4] 10491 mov x0, x22 10492 bl FlashReadPages 10493 ldr x0, [x22, 16] 10494 ldr w0, [x0, 12] 10495 str w0, [x29, 156] 10496 uxtw x0, w0 10497 cbz w0, .L1428 10498 ldr w0, [x22] 10499 cmn w0, #1 10500 beq .L1428 10501 ldrh w1, [x27] 10502 ldr x0, [x22, 8] 10503 bl js_hash 10504 ldr w1, [x29, 156] 10505 cmp w1, w0 10506 beq .L1428 10507 mov w5, w0 10508 mov x4, x1 10509 mov w3, w24 10510 mov w2, w20 10511 mov x1, x28 10512 adrp x0, .LC47 10513 add x0, x0, :lo12:.LC47 10514 bl printf 10515 mov w0, -1 10516 str w0, [x22] 10517.L1428: 10518 ldr w0, [x22] 10519 cmn w0, #1 10520 beq .L1429 10521 ldrh w0, [x21, 8] 10522 cmp w25, w0 10523 bls .L1429 10524 ldrh w2, [x21] 10525 ldrh w1, [x19, 4] 10526 cmp w2, w1 10527 bne .L1429 10528 ubfiz x0, x0, 2, 16 10529 ldr w1, [x22, 4] 10530 str w1, [x23, x0] 10531.L1429: 10532 add w6, w24, 1 10533 sxth w24, w6 10534 b .L1427 10535.L1426: 10536 lsl x2, x28, 1 10537 ldr x0, [x22, #:lo12:.LANCHOR105] 10538 str x0, [x27, 8] 10539 add x0, x24, x2 10540 ldrh w1, [x26, #:lo12:.LANCHOR19] 10541 str x0, [x29, 136] 10542 ldrh w0, [x24, x2] 10543 sub w1, w1, #1 10544 mov w2, 1 10545 orr w0, w1, w0, lsl 10 10546 mov w1, w2 10547 str w0, [x27, 4] 10548 mov x0, x27 10549 bl FlashReadPages 10550 ldr w0, [x27] 10551 cmn w0, #1 10552 beq .L1446 10553 ldrh w1, [x21] 10554 ldrh w0, [x19, 4] 10555 cmp w1, w0 10556 bne .L1446 10557 ldrh w1, [x21, 8] 10558 mov w0, 64245 10559 cmp w1, w0 10560 beq .L1434 10561.L1446: 10562 adrp x0, .LANCHOR22 10563 add x0, x0, :lo12:.LANCHOR22 10564 mov w28, 0 10565 str x0, [x29, 120] 10566 adrp x0, .LANCHOR179 10567 add x0, x0, :lo12:.LANCHOR179 10568 str x0, [x29, 112] 10569.L1435: 10570 ldr x0, [x29, 96] 10571 ldrh w0, [x0] 10572 cmp w28, w0 10573 bge .L1442 10574 ldr x0, [x29, 136] 10575 mov w2, 1 10576 mov w1, w2 10577 ldrh w0, [x0] 10578 orr w0, w28, w0, lsl 10 10579 str w0, [x27, 4] 10580 mov x0, x27 10581 bl FlashReadPages 10582 ldr x0, [x27, 16] 10583 ldr w0, [x0, 12] 10584 str w0, [x29, 156] 10585 uxtw x0, w0 10586 cbz w0, .L1439 10587 ldr w0, [x27] 10588 cmn w0, #1 10589 beq .L1439 10590 ldr x0, [x29, 120] 10591 ldrh w1, [x0] 10592 ldr x0, [x27, 8] 10593 bl js_hash 10594 ldr w1, [x29, 156] 10595 cmp w1, w0 10596 beq .L1439 10597 mov x4, x1 10598 ldr x1, [x29, 112] 10599 mov w5, w0 10600 mov w3, w28 10601 mov w2, w20 10602 adrp x0, .LC48 10603 add x0, x0, :lo12:.LC48 10604 bl printf 10605 mov w0, -1 10606 str w0, [x27] 10607.L1439: 10608 ldr w0, [x27] 10609 cmn w0, #1 10610 beq .L1440 10611 ldrh w0, [x21, 8] 10612 cmp w25, w0 10613 bls .L1440 10614 ldrh w2, [x21] 10615 ldrh w1, [x19, 4] 10616 cmp w2, w1 10617 bne .L1440 10618 ubfiz x0, x0, 2, 16 10619 ldr w1, [x27, 4] 10620 str w1, [x23, x0] 10621.L1440: 10622 add w7, w28, 1 10623 sxth w28, w7 10624 b .L1435 10625.L1434: 10626 ldrh w3, [x26, #:lo12:.LANCHOR19] 10627 mov w0, 0 10628 ldr x4, [x22, #:lo12:.LANCHOR105] 10629 sub w3, w3, #1 10630.L1436: 10631 cmp w0, w3 10632 blt .L1438 10633.L1442: 10634 add w20, w20, 1 10635 sxth w20, w20 10636 b .L1425 10637.L1438: 10638 lsl w2, w0, 1 10639 sxtw x2, w2 10640 lsl x1, x2, 2 10641 ldrh w1, [x4, x1] 10642 cmp w25, w1 10643 bls .L1437 10644 add x2, x2, 1 10645 ubfiz x1, x1, 2, 16 10646 ldr w2, [x4, x2, lsl 2] 10647 str w2, [x23, x1] 10648.L1437: 10649 add w0, w0, 1 10650 sxth w0, w0 10651 b .L1436 10652 .size FtlMapTblRecovery, .-FtlMapTblRecovery 10653 .section .text.FtlLoadVonderInfo,"ax",@progbits 10654 .align 2 10655 .global FtlLoadVonderInfo 10656 .type FtlLoadVonderInfo, %function 10657FtlLoadVonderInfo: 10658 stp x29, x30, [sp, -16]! 10659 adrp x1, .LANCHOR26 10660 adrp x0, .LANCHOR160 10661 add x0, x0, :lo12:.LANCHOR160 10662 add x29, sp, 0 10663 ldrh w1, [x1, #:lo12:.LANCHOR26] 10664 strh w1, [x0, 10] 10665 mov w1, -3962 10666 strh w1, [x0, 4] 10667 adrp x1, .LANCHOR34 10668 ldrh w1, [x1, #:lo12:.LANCHOR34] 10669 strh w1, [x0, 8] 10670 adrp x1, .LANCHOR27 10671 ldrh w1, [x1, #:lo12:.LANCHOR27] 10672 strh w1, [x0, 6] 10673 adrp x1, .LANCHOR35 10674 ldr x1, [x1, #:lo12:.LANCHOR35] 10675 str x1, [x0, 16] 10676 adrp x1, .LANCHOR121 10677 ldr x1, [x1, #:lo12:.LANCHOR121] 10678 str x1, [x0, 24] 10679 adrp x1, .LANCHOR120 10680 ldr x1, [x1, #:lo12:.LANCHOR120] 10681 str x1, [x0, 32] 10682 adrp x1, .LANCHOR122 10683 ldr x1, [x1, #:lo12:.LANCHOR122] 10684 str x1, [x0, 40] 10685 bl FtlMapTblRecovery 10686 mov w0, 0 10687 ldp x29, x30, [sp], 16 10688 ret 10689 .size FtlLoadVonderInfo, .-FtlLoadVonderInfo 10690 .section .text.FtlLoadMapInfo,"ax",@progbits 10691 .align 2 10692 .global FtlLoadMapInfo 10693 .type FtlLoadMapInfo, %function 10694FtlLoadMapInfo: 10695 stp x29, x30, [sp, -16]! 10696 add x29, sp, 0 10697 bl FtlL2PDataInit 10698 adrp x0, .LANCHOR128 10699 add x0, x0, :lo12:.LANCHOR128 10700 bl FtlMapTblRecovery 10701 mov w0, 0 10702 ldp x29, x30, [sp], 16 10703 ret 10704 .size FtlLoadMapInfo, .-FtlLoadMapInfo 10705 .section .text.FtlSysBlkInit,"ax",@progbits 10706 .align 2 10707 .global FtlSysBlkInit 10708 .type FtlSysBlkInit, %function 10709FtlSysBlkInit: 10710 stp x29, x30, [sp, -64]! 10711 adrp x0, .LANCHOR3 10712 add x29, sp, 0 10713 ldrh w0, [x0, #:lo12:.LANCHOR3] 10714 stp x19, x20, [sp, 16] 10715 adrp x19, .LANCHOR155 10716 stp x21, x22, [sp, 32] 10717 strh wzr, [x19, #:lo12:.LANCHOR155] 10718 str x23, [sp, 48] 10719 bl FtlFreeSysBlkQueueInit 10720 bl FtlScanSysBlk 10721 adrp x0, .LANCHOR138 10722 ldrh w1, [x0, #:lo12:.LANCHOR138] 10723 mov w0, 65535 10724 cmp w1, w0 10725 bne .L1471 10726.L1473: 10727 mov w21, -1 10728.L1470: 10729 mov w0, w21 10730 ldr x23, [sp, 48] 10731 ldp x19, x20, [sp, 16] 10732 ldp x21, x22, [sp, 32] 10733 ldp x29, x30, [sp], 64 10734 ret 10735.L1471: 10736 bl FtlLoadSysInfo 10737 mov w21, w0 10738 cbnz w0, .L1473 10739 bl FtlLoadMapInfo 10740 bl FtlLoadVonderInfo 10741 bl Ftl_load_ext_data 10742 bl FtlLoadEctTbl 10743 bl FtlFreeSysBLkSort 10744 bl SupperBlkListInit 10745 bl FtlPowerLostRecovery 10746 mov w0, 1 10747 bl FtlUpdateVaildLpn 10748 adrp x0, .LANCHOR32 10749 ldrh w2, [x0, #:lo12:.LANCHOR32] 10750 adrp x0, .LANCHOR54 10751 ldr x1, [x0, #:lo12:.LANCHOR54] 10752 mov w0, 0 10753 add x1, x1, 4 10754.L1474: 10755 cmp w0, w2 10756 bge .L1479 10757 ldr w3, [x1], 16 10758 tbz w3, #31, .L1475 10759.L1479: 10760 adrp x3, .LANCHOR82 10761 cmp w0, w2 10762 ldr w1, [x3, #:lo12:.LANCHOR82] 10763 add w1, w1, 32 10764 str w1, [x3, #:lo12:.LANCHOR82] 10765 bge .L1481 10766.L1476: 10767 adrp x23, .LANCHOR50 10768 add x20, x23, :lo12:.LANCHOR50 10769 mov x0, x20 10770 adrp x22, .LANCHOR51 10771 bl FtlSuperblockPowerLostFix 10772 add x19, x22, :lo12:.LANCHOR51 10773 mov x0, x19 10774 bl FtlSuperblockPowerLostFix 10775 adrp x0, .LANCHOR41 10776 ldrh w3, [x20, 4] 10777 ldr x1, [x0, #:lo12:.LANCHOR41] 10778 ldrh w0, [x23, #:lo12:.LANCHOR50] 10779 lsl x0, x0, 1 10780 ldrh w2, [x1, x0] 10781 sub w2, w2, w3 10782 adrp x3, .LANCHOR18 10783 strh w2, [x1, x0] 10784 strb wzr, [x20, 6] 10785 ldrh w0, [x3, #:lo12:.LANCHOR18] 10786 strh w0, [x20, 2] 10787 ldrh w0, [x22, #:lo12:.LANCHOR51] 10788 strh wzr, [x20, 4] 10789 ldrh w4, [x19, 4] 10790 lsl x0, x0, 1 10791 ldrh w2, [x1, x0] 10792 sub w2, w2, w4 10793 strh w2, [x1, x0] 10794 strb wzr, [x19, 6] 10795 ldrh w0, [x3, #:lo12:.LANCHOR18] 10796 strh w0, [x19, 2] 10797 adrp x0, .LANCHOR38 10798 add x0, x0, :lo12:.LANCHOR38 10799 strh wzr, [x19, 4] 10800 ldrh w1, [x0, 30] 10801 add w1, w1, 1 10802 strh w1, [x0, 30] 10803 bl l2p_flush 10804 bl FtlVpcTblFlush 10805.L1483: 10806 bl FtlVpcTblFlush 10807 b .L1470 10808.L1475: 10809 add w0, w0, 1 10810 b .L1474 10811.L1481: 10812 ldrh w0, [x19, #:lo12:.LANCHOR155] 10813 cbnz w0, .L1476 10814 bl l2p_flush 10815 b .L1483 10816 .size FtlSysBlkInit, .-FtlSysBlkInit 10817 .section .text.ftl_low_format,"ax",@progbits 10818 .align 2 10819 .global ftl_low_format 10820 .type ftl_low_format, %function 10821ftl_low_format: 10822 stp x29, x30, [sp, -80]! 10823 adrp x0, .LANCHOR82 10824 add x29, sp, 0 10825 stp x23, x24, [sp, 48] 10826 adrp x23, .LANCHOR3 10827 str wzr, [x0, #:lo12:.LANCHOR82] 10828 adrp x0, .LANCHOR142 10829 stp x19, x20, [sp, 16] 10830 adrp x20, .LANCHOR81 10831 str wzr, [x0, #:lo12:.LANCHOR142] 10832 ldrh w0, [x23, #:lo12:.LANCHOR3] 10833 stp x21, x22, [sp, 32] 10834 stp x25, x26, [sp, 64] 10835 str wzr, [x20, #:lo12:.LANCHOR81] 10836 bl FtlFreeSysBlkQueueInit 10837 bl FtlLoadBbt 10838 cbz w0, .L1485 10839 bl FtlMakeBbt 10840.L1485: 10841 adrp x22, .LANCHOR11 10842 adrp x0, .LANCHOR108 10843 mov w6, 23752 10844 ldrh w1, [x22, #:lo12:.LANCHOR11] 10845 movk w6, 0xa0f, lsl 16 10846 ldr x4, [x0, #:lo12:.LANCHOR108] 10847 adrp x0, .LANCHOR109 10848 lsl w1, w1, 7 10849 ldr x5, [x0, #:lo12:.LANCHOR109] 10850 mov w0, 0 10851.L1486: 10852 cmp w0, w1 10853 blt .L1487 10854 adrp x24, .LANCHOR4 10855 adrp x21, .LANCHOR5 10856 add x26, x21, :lo12:.LANCHOR5 10857 mov w19, 0 10858 ldrh w25, [x24, #:lo12:.LANCHOR4] 10859.L1488: 10860 ldrh w0, [x26] 10861 cmp w0, w25 10862 bhi .L1489 10863 adrp x25, .LANCHOR2 10864 sub w1, w19, #2 10865 ldrh w0, [x25, #:lo12:.LANCHOR2] 10866 cmp w1, w0, lsl 1 10867 bgt .L1490 10868.L1494: 10869 add x24, x24, :lo12:.LANCHOR4 10870 mov w19, 0 10871 mov w23, 0 10872.L1491: 10873 ldrh w0, [x24] 10874 cmp w0, w23 10875 bhi .L1495 10876 adrp x0, .LANCHOR98 10877 ldrh w1, [x21, #:lo12:.LANCHOR5] 10878 ldrh w4, [x25, #:lo12:.LANCHOR2] 10879 adrp x2, .LANCHOR170 10880 str w1, [x0, #:lo12:.LANCHOR98] 10881 adrp x0, .LANCHOR6 10882 adrp x3, .LANCHOR151 10883 ldr w1, [x0, #:lo12:.LANCHOR6] 10884 udiv w5, w1, w4 10885 ubfx x0, x5, 5, 16 10886 str w5, [x3, #:lo12:.LANCHOR151] 10887 add w6, w0, 36 10888 strh w6, [x2, #:lo12:.LANCHOR170] 10889 mov w6, 24 10890 mul w6, w4, w6 10891 cmp w19, w6 10892 ble .L1496 10893 sub w1, w1, w19 10894 udiv w1, w1, w4 10895 str w1, [x3, #:lo12:.LANCHOR151] 10896 lsr w1, w1, 5 10897 add w1, w1, 24 10898 strh w1, [x2, #:lo12:.LANCHOR170] 10899.L1496: 10900 adrp x1, .LANCHOR14 10901 ldrh w1, [x1, #:lo12:.LANCHOR14] 10902 cbz w1, .L1498 10903 ldrh w6, [x2, #:lo12:.LANCHOR170] 10904 add w6, w6, w1, lsr 1 10905 strh w6, [x2, #:lo12:.LANCHOR170] 10906 mul w6, w1, w4 10907 cmp w19, w6 10908 bge .L1498 10909 add w1, w1, 32 10910 str w5, [x3, #:lo12:.LANCHOR151] 10911 add w1, w0, w1 10912 strh w1, [x2, #:lo12:.LANCHOR170] 10913.L1498: 10914 ldrh w1, [x2, #:lo12:.LANCHOR170] 10915 adrp x23, .LANCHOR178 10916 ldr w0, [x3, #:lo12:.LANCHOR151] 10917 sub w0, w0, w1 10918 adrp x1, .LANCHOR18 10919 ldrh w1, [x1, #:lo12:.LANCHOR18] 10920 mul w0, w0, w4 10921 str w0, [x23, #:lo12:.LANCHOR178] 10922 mul w0, w1, w0 10923 ldrh w1, [x22, #:lo12:.LANCHOR11] 10924 str w0, [x3, #:lo12:.LANCHOR151] 10925 mov x22, x23 10926 mul w0, w1, w0 10927 adrp x1, .LANCHOR33 10928 str w0, [x1, #:lo12:.LANCHOR33] 10929 bl FtlBbmTblFlush 10930 ldrh w2, [x21, #:lo12:.LANCHOR5] 10931 adrp x21, .LANCHOR41 10932 mov w1, 0 10933 ldr x0, [x21, #:lo12:.LANCHOR41] 10934 lsl w2, w2, 1 10935 bl ftl_memset 10936 adrp x2, .LANCHOR144 10937 add x1, x2, :lo12:.LANCHOR144 10938 adrp x0, .LANCHOR58 10939 strh wzr, [x1, 2] 10940 strb wzr, [x1, 6] 10941 strb wzr, [x1, 8] 10942 adrp x1, .LANCHOR50 10943 add x19, x1, :lo12:.LANCHOR50 10944 str wzr, [x0, #:lo12:.LANCHOR58] 10945 mov w0, -1 10946 mov w23, w0 10947 strh wzr, [x1, #:lo12:.LANCHOR50] 10948 mov w1, 1 10949 strh w0, [x2, #:lo12:.LANCHOR144] 10950 strh wzr, [x19, 2] 10951 strb wzr, [x19, 6] 10952 strb w1, [x19, 8] 10953.L1500: 10954 mov x0, x19 10955 bl make_superblock 10956 ldrb w1, [x19, 7] 10957 ldrh w0, [x19] 10958 cbnz w1, .L1501 10959 ldr x1, [x21, #:lo12:.LANCHOR41] 10960 ubfiz x0, x0, 1, 16 10961 strh w23, [x1, x0] 10962 ldrh w0, [x19] 10963 add w0, w0, 1 10964 strh w0, [x19] 10965 b .L1500 10966.L1487: 10967 ubfiz x3, x0, 2, 16 10968 mvn w2, w0 10969 orr w2, w0, w2, lsl 16 10970 add w0, w0, 1 10971 and w0, w0, 65535 10972 str w2, [x4, x3] 10973 str w6, [x5, x3] 10974 b .L1486 10975.L1489: 10976 mov w0, w25 10977 mov w1, 1 10978 add w25, w25, 1 10979 bl FtlLowFormatEraseBlock 10980 add w19, w19, w0 10981 and w25, w25, 65535 10982 and w19, w19, 65535 10983 b .L1488 10984.L1490: 10985 udiv w0, w19, w0 10986 adrp x1, .LANCHOR30 10987 ldr w19, [x1, #:lo12:.LANCHOR30] 10988 add w0, w0, w19 10989 bl FtlSysBlkNumInit 10990 ldrh w0, [x23, #:lo12:.LANCHOR3] 10991 add x23, x21, :lo12:.LANCHOR5 10992 bl FtlFreeSysBlkQueueInit 10993 ldrh w19, [x24, #:lo12:.LANCHOR4] 10994.L1492: 10995 ldrh w0, [x23] 10996 cmp w0, w19 10997 bls .L1494 10998 mov w0, w19 10999 add w19, w19, 1 11000 mov w1, 1 11001 and w19, w19, 65535 11002 bl FtlLowFormatEraseBlock 11003 b .L1492 11004.L1495: 11005 mov w0, w23 11006 mov w1, 0 11007 add w23, w23, 1 11008 bl FtlLowFormatEraseBlock 11009 add w19, w19, w0 11010 and w23, w23, 65535 11011 and w19, w19, 65535 11012 b .L1491 11013.L1501: 11014 ldr w1, [x20, #:lo12:.LANCHOR81] 11015 ubfiz x0, x0, 1, 16 11016 str w1, [x19, 12] 11017 mov w23, -1 11018 add w1, w1, 1 11019 str w1, [x20, #:lo12:.LANCHOR81] 11020 ldr x1, [x21, #:lo12:.LANCHOR41] 11021 ldrh w2, [x19, 4] 11022 strh w2, [x1, x0] 11023 adrp x2, .LANCHOR51 11024 add x0, x2, :lo12:.LANCHOR51 11025 ldrh w1, [x19] 11026 mov x19, x0 11027 add w1, w1, 1 11028 strh wzr, [x0, 2] 11029 strh w1, [x2, #:lo12:.LANCHOR51] 11030 mov w1, 1 11031 strb wzr, [x0, 6] 11032 strb w1, [x0, 8] 11033.L1502: 11034 mov x0, x19 11035 bl make_superblock 11036 ldrb w1, [x19, 7] 11037 ldrh w0, [x19] 11038 cbnz w1, .L1503 11039 ldr x1, [x21, #:lo12:.LANCHOR41] 11040 ubfiz x0, x0, 1, 16 11041 strh w23, [x1, x0] 11042 ldrh w0, [x19] 11043 add w0, w0, 1 11044 strh w0, [x19] 11045 b .L1502 11046.L1503: 11047 ldr w1, [x20, #:lo12:.LANCHOR81] 11048 ubfiz x0, x0, 1, 16 11049 str w1, [x19, 12] 11050 add w1, w1, 1 11051 str w1, [x20, #:lo12:.LANCHOR81] 11052 ldr x1, [x21, #:lo12:.LANCHOR41] 11053 ldrh w2, [x19, 4] 11054 mov w19, -1 11055 strh w2, [x1, x0] 11056 adrp x0, .LANCHOR52 11057 strh w19, [x0, #:lo12:.LANCHOR52] 11058 bl FtlFreeSysBlkQueueOut 11059 adrp x2, .LANCHOR138 11060 add x1, x2, :lo12:.LANCHOR138 11061 strh w0, [x2, #:lo12:.LANCHOR138] 11062 ldr w0, [x22, #:lo12:.LANCHOR178] 11063 strh w0, [x1, 6] 11064 ldr w0, [x20, #:lo12:.LANCHOR81] 11065 str w0, [x1, 8] 11066 add w0, w0, 1 11067 strh wzr, [x1, 2] 11068 strh w19, [x1, 4] 11069 str w0, [x20, #:lo12:.LANCHOR81] 11070 bl FtlVpcTblFlush 11071 bl FtlSysBlkInit 11072 cbnz w0, .L1504 11073 adrp x0, .LANCHOR165 11074 mov w1, 1 11075 str w1, [x0, #:lo12:.LANCHOR165] 11076.L1504: 11077 mov w0, 0 11078 ldp x19, x20, [sp, 16] 11079 ldp x21, x22, [sp, 32] 11080 ldp x23, x24, [sp, 48] 11081 ldp x25, x26, [sp, 64] 11082 ldp x29, x30, [sp], 80 11083 ret 11084 .size ftl_low_format, .-ftl_low_format 11085 .section .text.sftl_init,"ax",@progbits 11086 .align 2 11087 .global sftl_init 11088 .type sftl_init, %function 11089sftl_init: 11090 stp x29, x30, [sp, -32]! 11091 adrp x1, .LC49 11092 add x1, x1, :lo12:.LC49 11093 mov w0, -1 11094 add x29, sp, 0 11095 stp x19, x20, [sp, 16] 11096 adrp x20, .LANCHOR165 11097 adrp x19, .LANCHOR180 11098 add x19, x19, :lo12:.LANCHOR180 11099 str w0, [x20, #:lo12:.LANCHOR165] 11100 adrp x0, .LC38 11101 add x0, x0, :lo12:.LC38 11102 bl printf 11103 adrp x0, .LANCHOR0 11104 add x0, x0, :lo12:.LANCHOR0 11105 bl FtlConstantsInit 11106 bl FtlMemInit 11107 bl FtlVariablesInit 11108 adrp x0, .LANCHOR3 11109 ldrh w0, [x0, #:lo12:.LANCHOR3] 11110 bl FtlFreeSysBlkQueueInit 11111.L1510: 11112 bl FtlLoadBbt 11113 cbz w0, .L1511 11114.L1521: 11115 ldr w0, [x19] 11116 cmp w0, 1 11117 bne .L1510 11118 str wzr, [x19] 11119 bl ftl_low_format 11120 b .L1510 11121.L1511: 11122 bl FtlSysBlkInit 11123 cbnz w0, .L1521 11124 mov w1, 1 11125 str w1, [x20, #:lo12:.LANCHOR165] 11126 ldp x19, x20, [sp, 16] 11127 ldp x29, x30, [sp], 32 11128 ret 11129 .size sftl_init, .-sftl_init 11130 .section .text.FtlWriteToIDB,"ax",@progbits 11131 .align 2 11132 .global FtlWriteToIDB 11133 .type FtlWriteToIDB, %function 11134FtlWriteToIDB: 11135 stp x29, x30, [sp, -224]! 11136 add x29, sp, 0 11137 stp x21, x22, [sp, 32] 11138 add w22, w1, w0 11139 stp x23, x24, [sp, 48] 11140 sub w23, w22, #1 11141 stp x27, x28, [sp, 80] 11142 cmp w23, 63 11143 stp x19, x20, [sp, 16] 11144 adrp x27, .LANCHOR181 11145 stp x25, x26, [sp, 64] 11146 bls .L1523 11147 mov w19, w0 11148 cmp w0, 575 11149 bls .L1524 11150.L1523: 11151 ldr w0, [x27, #:lo12:.LANCHOR181] 11152 cbnz w0, .L1525 11153.L1589: 11154 mov w19, 0 11155 b .L1522 11156.L1525: 11157 adrp x0, .LANCHOR182 11158 str x0, [x29, 112] 11159 mov w1, 35899 11160 ldr x26, [x0, #:lo12:.LANCHOR182] 11161 movk w1, 0xfcdc, lsl 16 11162 ldr w2, [x26] 11163 cmp w2, w1 11164 bne .L1527 11165 adrp x22, .LANCHOR0 11166 add x0, x22, :lo12:.LANCHOR0 11167 add x1, x26, 258048 11168 mov w19, 65023 11169 add x1, x1, 2044 11170 mov w3, 4097 11171 ldrh w2, [x0, 10] 11172 mov w0, 0 11173.L1531: 11174 ldr w4, [x1] 11175 cbnz w4, .L1528 11176 ldr w4, [x26, w0, uxtw 2] 11177 add w0, w0, 1 11178 str w4, [x1, 2048] 11179 cmp w0, w3 11180 sub w19, w19, #1 11181 csel w0, w0, wzr, cc 11182 sub x1, x1, #4 11183 cmp w19, 4096 11184 bne .L1531 11185 mov w19, 512 11186 b .L1530 11187.L1528: 11188 add w19, w19, 127 11189 lsr w19, w19, 7 11190.L1530: 11191 ubfiz w0, w2, 2, 14 11192 add w21, w19, 4 11193 mov w1, w19 11194 mov w24, 0 11195 udiv w21, w21, w0 11196 adrp x0, .LC50 11197 add x0, x0, :lo12:.LC50 11198 add w21, w21, 1 11199 mov w2, w21 11200 bl printf 11201 lsl w0, w19, 7 11202 str w0, [x29, 136] 11203 adrp x0, .LANCHOR77 11204 add x20, x0, :lo12:.LANCHOR77 11205 str wzr, [x29, 156] 11206.L1532: 11207 add w0, w21, w24 11208 str w0, [x29, 140] 11209 cmp w0, 8 11210 bls .L1554 11211 ldr w0, [x29, 156] 11212 cbnz w0, .L1555 11213.L1527: 11214 mov w19, -1 11215.L1555: 11216 ldr x0, [x29, 112] 11217 str wzr, [x27, #:lo12:.LANCHOR181] 11218 ldr x0, [x0, #:lo12:.LANCHOR182] 11219 bl free 11220 adrp x0, .LANCHOR183 11221 ldr x0, [x0, #:lo12:.LANCHOR183] 11222 bl free 11223.L1522: 11224 mov w0, w19 11225 ldp x19, x20, [sp, 16] 11226 ldp x21, x22, [sp, 32] 11227 ldp x23, x24, [sp, 48] 11228 ldp x25, x26, [sp, 64] 11229 ldp x27, x28, [sp, 80] 11230 ldp x29, x30, [sp], 224 11231 ret 11232.L1554: 11233 adrp x23, .LANCHOR183 11234 mov w1, 0 11235 mov x2, 512 11236 ldr x0, [x23, #:lo12:.LANCHOR183] 11237 bl memset 11238 add x0, x22, :lo12:.LANCHOR0 11239 ldrh w3, [x0, 10] 11240 mul w0, w24, w3 11241 str w0, [x29, 144] 11242 adrp x0, .LANCHOR77 11243 add x0, x0, :lo12:.LANCHOR77 11244 ldr x1, [x0, 32] 11245 cbz x1, .L1562 11246 ldr x0, [x0, 40] 11247 mov w25, 6 11248 cmp x0, 0 11249 mov w0, 9 11250 csel w25, w25, w0, eq 11251.L1533: 11252 mul w4, w24, w3 11253 mov w28, 0 11254.L1534: 11255 ldr x5, [x20, 8] 11256 mov w1, w4 11257 str w3, [x29, 128] 11258 mov w0, 0 11259 str w4, [x29, 152] 11260 add w28, w28, 1 11261 blr x5 11262 ldr w3, [x29, 128] 11263 cmp w21, w28 11264 ldr w4, [x29, 152] 11265 add w4, w4, w3 11266 bhi .L1534 11267 cmp w25, 9 11268 bne .L1564 11269 ldr x28, [x23, #:lo12:.LANCHOR183] 11270 mov w2, 1024 11271 str w3, [x29, 152] 11272 mov w1, 0 11273 mov x0, x28 11274 bl ftl_memset 11275 mov w0, 18766 11276 mov w1, 12 11277 movk w0, 0x464e, lsl 16 11278 stp w0, w1, [x28] 11279 mov w0, 4 11280 strb w0, [x28, 17] 11281 add x0, x22, :lo12:.LANCHOR0 11282 strb wzr, [x28, 16] 11283 strb wzr, [x28, 20] 11284 strh wzr, [x28, 22] 11285 ldrh w0, [x0, 10] 11286 strh w0, [x28, 18] 11287 str wzr, [x28, 12] 11288 mov w0, 16 11289 strb w0, [x28, 21] 11290 add x0, x28, 12 11291 bl js_hash 11292 str w0, [x28, 8] 11293 ldr w3, [x29, 152] 11294.L1535: 11295 mul w0, w21, w3 11296 mov x6, x26 11297 str w0, [x29, 152] 11298 mov x5, 0 11299 add x0, x22, :lo12:.LANCHOR0 11300 str x0, [x29, 128] 11301.L1536: 11302 ldr w0, [x29, 152] 11303 mov w1, w5 11304 cmp w5, w0 11305 bcs .L1543 11306 cmp w25, 9 11307 bne .L1537 11308 add w0, w1, 1 11309.L1587: 11310 str w0, [x29, 160] 11311 mov w0, 61424 11312 str w0, [x29, 164] 11313 cmp w1, 0 11314 ccmp w25, 9, 0, eq 11315 bne .L1539 11316 ldr x1, [x20, 32] 11317 mov w0, 70 11318 stp x6, x5, [x29, 96] 11319 blr x1 11320 ldr w1, [x29, 144] 11321 add x3, x29, 160 11322 ldr x7, [x20, 16] 11323 mov x2, x28 11324 mov w0, 0 11325 blr x7 11326 mov w1, w0 11327 ldr x0, [x29, 128] 11328 ldr x2, [x20, 32] 11329 str w1, [x29, 120] 11330 ldrb w0, [x0, 22] 11331 blr x2 11332 ldr w1, [x29, 120] 11333 ldp x6, x5, [x29, 96] 11334 cmn w1, #1 11335 bne .L1540 11336.L1543: 11337 add x0, x22, :lo12:.LANCHOR0 11338 ldr x25, [x23, #:lo12:.LANCHOR183] 11339 ldrb w1, [x0, 14] 11340 ldrh w0, [x0, 10] 11341 str w1, [x29, 128] 11342 mul w1, w24, w0 11343 str w1, [x29, 144] 11344 ldr x1, [x20, 32] 11345 cbnz x1, .L1541 11346 mov w1, 6 11347.L1588: 11348 mul w0, w21, w0 11349 mov x28, 0 11350 str w0, [x29, 120] 11351 str w1, [x29, 152] 11352.L1545: 11353 ldr w0, [x29, 120] 11354 mov w1, w28 11355 cmp w0, w28 11356 bls .L1549 11357 ldr w0, [x29, 152] 11358 cmp w28, 0 11359 ccmp w0, 9, 0, eq 11360 bne .L1546 11361 ldr x1, [x20, 32] 11362 mov w0, 70 11363 blr x1 11364 ldr x1, [x20, 40] 11365 mov w0, 2 11366 blr x1 11367 ldr x6, [x20, 24] 11368 add x3, x29, 160 11369 ldr w1, [x29, 144] 11370 mov x2, x25 11371 mov w0, 0 11372 blr x6 11373 ldrb w0, [x29, 128] 11374 ldr x1, [x20, 40] 11375 blr x1 11376 add x0, x22, :lo12:.LANCHOR0 11377 ldr x1, [x20, 32] 11378 ldrb w0, [x0, 22] 11379 blr x1 11380 ldr w0, [x25] 11381 mov w1, 18766 11382 movk w1, 0x464e, lsl 16 11383 cmp w0, w1 11384 beq .L1547 11385.L1549: 11386 ldr x0, [x23, #:lo12:.LANCHOR183] 11387 mov x2, x26 11388 mov x1, 0 11389.L1548: 11390 ldr w3, [x29, 136] 11391 mov w28, w1 11392 cmp w1, w3 11393 bcc .L1552 11394 ldr w0, [x29, 156] 11395 add w0, w0, 1 11396 str w0, [x29, 156] 11397 cmp w0, 5 11398 bls .L1551 11399 b .L1555 11400.L1562: 11401 mov w25, 6 11402 b .L1533 11403.L1564: 11404 mov x28, 0 11405 b .L1535 11406.L1537: 11407 lsl w0, w1, 2 11408 b .L1587 11409.L1539: 11410 ldr x7, [x20, 16] 11411 add x3, x29, 160 11412 ldr w0, [x29, 144] 11413 mov x2, x6 11414 str x5, [x29, 104] 11415 add w1, w1, w0 11416 str x6, [x29, 120] 11417 mov w0, 0 11418 blr x7 11419 cmn w0, #1 11420 beq .L1543 11421 ldr x6, [x29, 120] 11422 ldr x5, [x29, 104] 11423 add x6, x6, 2048 11424.L1540: 11425 add x5, x5, 1 11426 b .L1536 11427.L1541: 11428 ldr x1, [x20, 40] 11429 mov w2, 6 11430 cmp x1, 0 11431 mov w1, 9 11432 csel w1, w2, w1, eq 11433 b .L1588 11434.L1546: 11435 ldr x6, [x20, 24] 11436 add x3, x29, 160 11437 ldr w0, [x29, 144] 11438 mov x2, x25 11439 add w1, w0, w1 11440 mov w0, 0 11441 blr x6 11442 cmn w0, #1 11443 beq .L1549 11444 ldr w0, [x29, 164] 11445 mov w1, 61424 11446 cmp w0, w1 11447 bne .L1549 11448 add x25, x25, 2048 11449.L1547: 11450 add x28, x28, 1 11451 b .L1545 11452.L1552: 11453 mov x25, x2 11454 ldr w4, [x0, x1, lsl 2] 11455 lsl x5, x1, 2 11456 add x2, x2, 4 11457 add x1, x1, 1 11458 ldr w3, [x25] 11459 cmp w4, w3 11460 beq .L1548 11461 mov x2, 512 11462 mov w1, 0 11463 str x5, [x29, 144] 11464 bl memset 11465 ldr x0, [x23, #:lo12:.LANCHOR183] 11466 mov w1, w24 11467 ldr x5, [x29, 144] 11468 mov w4, w28 11469 ldr w3, [x25] 11470 ldr w2, [x0, x5] 11471 adrp x0, .LC51 11472 add x0, x0, :lo12:.LC51 11473 bl printf 11474 add x0, x22, :lo12:.LANCHOR0 11475 ldr x2, [x20, 8] 11476 ldrh w1, [x0, 10] 11477 mov w0, 0 11478 mul w1, w1, w24 11479 blr x2 11480.L1551: 11481 ldr w24, [x29, 140] 11482 b .L1532 11483.L1524: 11484 mov w20, w1 11485 mov x21, x2 11486 cmp w0, 64 11487 bne .L1556 11488 adrp x24, .LANCHOR182 11489 mov w0, 262144 11490 bl ftl_malloc 11491 str x0, [x24, #:lo12:.LANCHOR182] 11492 mov w0, 262144 11493 bl ftl_malloc 11494 mov x1, x0 11495 adrp x0, .LANCHOR183 11496 str x1, [x0, #:lo12:.LANCHOR183] 11497 ldr x0, [x24, #:lo12:.LANCHOR182] 11498 cbz x0, .L1557 11499 cbz x1, .L1557 11500 mov w1, 1 11501 mov w2, 262144 11502 str w1, [x27, #:lo12:.LANCHOR181] 11503 mov w1, 0 11504 bl ftl_memset 11505.L1556: 11506 ldr w0, [x27, #:lo12:.LANCHOR181] 11507 cbz w0, .L1589 11508 adrp x0, .LANCHOR182 11509 cmp w19, 63 11510 ldr x0, [x0, #:lo12:.LANCHOR182] 11511 bhi .L1559 11512 mov w1, 64 11513 sub w19, w1, w19 11514 sub w20, w20, w19 11515 ubfiz x19, x19, 9, 25 11516 add x1, x21, x19 11517.L1560: 11518 cmp w23, 575 11519 bls .L1561 11520 sub w20, w20, w22 11521 sub w20, w20, #446 11522.L1561: 11523 lsl w2, w20, 9 11524 bl ftl_memcpy 11525 b .L1589 11526.L1557: 11527 adrp x1, .LANCHOR184 11528 adrp x0, .LC52 11529 add x1, x1, :lo12:.LANCHOR184 11530 add x0, x0, :lo12:.LC52 11531 bl printf 11532 b .L1556 11533.L1559: 11534 lsl w2, w19, 7 11535 mov x1, x21 11536 sub w2, w2, #8192 11537 add x0, x0, x2, lsl 2 11538 b .L1560 11539 .size FtlWriteToIDB, .-FtlWriteToIDB 11540 .section .text.sftl_write,"ax",@progbits 11541 .align 2 11542 .global sftl_write 11543 .type sftl_write, %function 11544sftl_write: 11545 stp x29, x30, [sp, -48]! 11546 add x29, sp, 0 11547 stp x19, x20, [sp, 16] 11548 mov w19, w1 11549 str x21, [sp, 32] 11550 mov w21, w0 11551 add w21, w19, w21 11552 mov x20, x2 11553 bl FtlWriteToIDB 11554.L1591: 11555 sub w1, w21, w19 11556 mov x3, x20 11557 cmp w19, 256 11558 bhi .L1593 11559 mov w2, w19 11560 ldr x21, [sp, 32] 11561 ldp x19, x20, [sp, 16] 11562 mov w0, 0 11563 ldp x29, x30, [sp], 48 11564 b FtlWrite 11565.L1593: 11566 mov w2, 256 11567 mov w0, 0 11568 bl FtlWrite 11569 cbnz w0, .L1590 11570 add x20, x20, 131072 11571 sub w19, w19, #256 11572 b .L1591 11573.L1590: 11574 ldp x19, x20, [sp, 16] 11575 ldr x21, [sp, 32] 11576 ldp x29, x30, [sp], 48 11577 ret 11578 .size sftl_write, .-sftl_write 11579 .global g_nand_ops 11580 .global g_nand_phy_info 11581 .global gc_ink_free_return_value 11582 .global check_vpc_table 11583 .global FtlUpdateVaildLpnCount 11584 .global g_ect_tbl_power_up_flush 11585 .global power_up_flag 11586 .global low_format_en 11587 .global gFtlInitStatus 11588 .global DeviceCapacity 11589 .global g_power_lost_recovery_flag 11590 .global c_mlc_erase_count_value 11591 .global g_recovery_ppa_tbl 11592 .global g_recovery_page_min_ver 11593 .global g_recovery_page_num 11594 .global sftl_nand_check_spare_buf 11595 .global sftl_temp_buf 11596 .global sftl_nand_check_buf 11597 .global g_cur_erase_blk 11598 .global g_gc_skip_write_count 11599 .global g_gc_head_data_block_count 11600 .global g_gc_head_data_block 11601 .global g_ftl_nand_free_count 11602 .global g_in_swl_replace 11603 .global g_in_gc_progress 11604 .global g_max_erase_count 11605 .global g_totle_sys_slc_erase_count 11606 .global g_totle_slc_erase_count 11607 .global g_min_erase_count 11608 .global g_totle_avg_erase_count 11609 .global g_totle_mlc_erase_count 11610 .global g_totle_l2p_write_count 11611 .global g_totle_cache_write_count 11612 .global g_tmp_data_superblock_id 11613 .global g_totle_read_page_count 11614 .global g_totle_discard_page_count 11615 .global g_totle_read_sector 11616 .global g_totle_write_sector 11617 .global g_totle_write_page_count 11618 .global g_totle_gc_page_count 11619 .global g_gc_blk_index 11620 .global g_gc_merge_free_blk_threshold 11621 .global g_gc_free_blk_threshold 11622 .global g_gc_bad_block_temp_tbl 11623 .global g_gc_bad_block_gc_index 11624 .global g_gc_bad_block_temp_num 11625 .global g_gc_next_blk_1 11626 .global g_gc_next_blk 11627 .global g_gc_cur_blk_max_valid_pages 11628 .global g_gc_cur_blk_valid_pages 11629 .global g_gc_page_offset 11630 .global g_gc_blk_num 11631 .global p_gc_blk_tbl 11632 .global p_gc_page_info 11633 .global g_sys_ext_data 11634 .global g_sys_save_data 11635 .global gp_last_act_superblock 11636 .global g_gc_superblock 11637 .global g_gc_temp_superblock 11638 .global g_buffer_superblock 11639 .global g_active_superblock 11640 .global g_num_data_superblocks 11641 .global g_num_free_superblocks 11642 .global p_data_block_list_tail 11643 .global p_data_block_list_head 11644 .global p_free_data_block_list_head 11645 .global p_data_block_list_table 11646 .global g_l2p_last_update_region_id 11647 .global p_l2p_map_buf 11648 .global p_l2p_ram_map 11649 .global g_totle_vendor_block 11650 .global p_vendor_region_ppn_table 11651 .global p_vendor_block_ver_table 11652 .global p_vendor_block_valid_page_count 11653 .global p_vendor_block_table 11654 .global g_totle_map_block 11655 .global p_map_region_ppn_table 11656 .global p_map_block_ver_table 11657 .global p_map_block_valid_page_count 11658 .global p_map_block_table 11659 .global p_valid_page_count_check_table 11660 .global p_valid_page_count_table 11661 .global g_totle_swl_count 11662 .global p_swl_mul_table 11663 .global p_erase_count_table 11664 .global g_ect_tbl_info_size 11665 .global gp_ect_tbl_info 11666 .global g_gc_num_req 11667 .global c_gc_page_buf_num 11668 .global gp_gc_page_buf_info 11669 .global p_gc_data_buf 11670 .global p_gc_spare_buf 11671 .global p_io_spare_buf 11672 .global p_io_data_buf_1 11673 .global p_io_data_buf_0 11674 .global p_sys_spare_buf 11675 .global p_vendor_data_buf 11676 .global p_sys_data_buf_1 11677 .global p_sys_data_buf 11678 .global p_plane_order_table 11679 .global req_gc_dst 11680 .global req_gc 11681 .global req_erase 11682 .global req_prgm 11683 .global req_read 11684 .global req_sys 11685 .global gVendorBlkInfo 11686 .global gL2pMapInfo 11687 .global gSysFreeQueue 11688 .global gSysInfo 11689 .global gBbtInfo 11690 .global g_MaxLbn 11691 .global g_VaildLpn 11692 .global g_MaxLpn 11693 .global g_MaxLbaSector 11694 .global g_GlobalDataVersion 11695 .global g_GlobalSysVersion 11696 .global ftl_gc_temp_power_lost_recovery_flag 11697 .global c_ftl_nand_max_data_blks 11698 .global c_ftl_nand_data_op_blks_per_plane 11699 .global c_ftl_nand_data_blks_per_plane 11700 .global c_ftl_nand_max_sys_blks 11701 .global c_ftl_nand_init_sys_blks_per_plane 11702 .global c_ftl_nand_sys_blks_per_plane 11703 .global c_ftl_vendor_part_size 11704 .global c_ftl_nand_max_vendor_blks 11705 .global c_ftl_nand_max_map_blks 11706 .global c_ftl_nand_map_blks_per_plane 11707 .global c_ftl_nand_vendor_region_num 11708 .global c_ftl_nand_l2pmap_ram_region_num 11709 .global c_ftl_nand_map_region_num 11710 .global c_ftl_nand_totle_phy_blks 11711 .global c_ftl_nand_reserved_blks 11712 .global c_ftl_nand_byte_pre_oob 11713 .global c_ftl_nand_byte_pre_page 11714 .global c_ftl_nand_sec_pre_page_shift 11715 .global c_ftl_nand_sec_pre_page 11716 .global c_ftl_nand_page_pre_super_blk 11717 .global c_ftl_nand_page_pre_slc_blk 11718 .global c_ftl_nand_page_pre_blk 11719 .global c_ftl_nand_bbm_buf_size 11720 .global c_ftl_nand_ext_blk_pre_plane 11721 .global c_ftl_nand_blk_pre_plane 11722 .global c_ftl_nand_planes_num 11723 .global c_ftl_nand_blks_per_die_shift 11724 .global c_ftl_nand_blks_per_die 11725 .global c_ftl_nand_planes_per_die 11726 .global c_ftl_nand_die_num 11727 .global c_ftl_nand_type 11728 .section .bss.DeviceCapacity,"aw",@nobits 11729 .align 2 11730 .set .LANCHOR25,. + 0 11731 .type DeviceCapacity, %object 11732 .size DeviceCapacity, 4 11733DeviceCapacity: 11734 .zero 4 11735 .section .bss.FtlUpdateVaildLpnCount,"aw",@nobits 11736 .align 1 11737 .set .LANCHOR57,. + 0 11738 .type FtlUpdateVaildLpnCount, %object 11739 .size FtlUpdateVaildLpnCount, 2 11740FtlUpdateVaildLpnCount: 11741 .zero 2 11742 .section .bss.c_ftl_nand_bbm_buf_size,"aw",@nobits 11743 .align 1 11744 .set .LANCHOR126,. + 0 11745 .type c_ftl_nand_bbm_buf_size, %object 11746 .size c_ftl_nand_bbm_buf_size, 2 11747c_ftl_nand_bbm_buf_size: 11748 .zero 2 11749 .section .bss.c_ftl_nand_blk_pre_plane,"aw",@nobits 11750 .align 1 11751 .set .LANCHOR5,. + 0 11752 .type c_ftl_nand_blk_pre_plane, %object 11753 .size c_ftl_nand_blk_pre_plane, 2 11754c_ftl_nand_blk_pre_plane: 11755 .zero 2 11756 .section .bss.c_ftl_nand_blks_per_die,"aw",@nobits 11757 .align 1 11758 .set .LANCHOR16,. + 0 11759 .type c_ftl_nand_blks_per_die, %object 11760 .size c_ftl_nand_blks_per_die, 2 11761c_ftl_nand_blks_per_die: 11762 .zero 2 11763 .section .bss.c_ftl_nand_blks_per_die_shift,"aw",@nobits 11764 .align 1 11765 .set .LANCHOR17,. + 0 11766 .type c_ftl_nand_blks_per_die_shift, %object 11767 .size c_ftl_nand_blks_per_die_shift, 2 11768c_ftl_nand_blks_per_die_shift: 11769 .zero 2 11770 .section .bss.c_ftl_nand_byte_pre_oob,"aw",@nobits 11771 .align 1 11772 .set .LANCHOR23,. + 0 11773 .type c_ftl_nand_byte_pre_oob, %object 11774 .size c_ftl_nand_byte_pre_oob, 2 11775c_ftl_nand_byte_pre_oob: 11776 .zero 2 11777 .section .bss.c_ftl_nand_byte_pre_page,"aw",@nobits 11778 .align 1 11779 .set .LANCHOR22,. + 0 11780 .type c_ftl_nand_byte_pre_page, %object 11781 .size c_ftl_nand_byte_pre_page, 2 11782c_ftl_nand_byte_pre_page: 11783 .zero 2 11784 .section .bss.c_ftl_nand_data_blks_per_plane,"aw",@nobits 11785 .align 1 11786 .set .LANCHOR4,. + 0 11787 .type c_ftl_nand_data_blks_per_plane, %object 11788 .size c_ftl_nand_data_blks_per_plane, 2 11789c_ftl_nand_data_blks_per_plane: 11790 .zero 2 11791 .section .bss.c_ftl_nand_data_op_blks_per_plane,"aw",@nobits 11792 .align 1 11793 .set .LANCHOR170,. + 0 11794 .type c_ftl_nand_data_op_blks_per_plane, %object 11795 .size c_ftl_nand_data_op_blks_per_plane, 2 11796c_ftl_nand_data_op_blks_per_plane: 11797 .zero 2 11798 .section .bss.c_ftl_nand_die_num,"aw",@nobits 11799 .align 1 11800 .set .LANCHOR9,. + 0 11801 .type c_ftl_nand_die_num, %object 11802 .size c_ftl_nand_die_num, 2 11803c_ftl_nand_die_num: 11804 .zero 2 11805 .section .bss.c_ftl_nand_ext_blk_pre_plane,"aw",@nobits 11806 .align 1 11807 .set .LANCHOR14,. + 0 11808 .type c_ftl_nand_ext_blk_pre_plane, %object 11809 .size c_ftl_nand_ext_blk_pre_plane, 2 11810c_ftl_nand_ext_blk_pre_plane: 11811 .zero 2 11812 .section .bss.c_ftl_nand_init_sys_blks_per_plane,"aw",@nobits 11813 .align 2 11814 .set .LANCHOR30,. + 0 11815 .type c_ftl_nand_init_sys_blks_per_plane, %object 11816 .size c_ftl_nand_init_sys_blks_per_plane, 4 11817c_ftl_nand_init_sys_blks_per_plane: 11818 .zero 4 11819 .section .bss.c_ftl_nand_l2pmap_ram_region_num,"aw",@nobits 11820 .align 1 11821 .set .LANCHOR32,. + 0 11822 .type c_ftl_nand_l2pmap_ram_region_num, %object 11823 .size c_ftl_nand_l2pmap_ram_region_num, 2 11824c_ftl_nand_l2pmap_ram_region_num: 11825 .zero 2 11826 .section .bss.c_ftl_nand_map_blks_per_plane,"aw",@nobits 11827 .align 1 11828 .set .LANCHOR28,. + 0 11829 .type c_ftl_nand_map_blks_per_plane, %object 11830 .size c_ftl_nand_map_blks_per_plane, 2 11831c_ftl_nand_map_blks_per_plane: 11832 .zero 2 11833 .section .bss.c_ftl_nand_map_region_num,"aw",@nobits 11834 .align 1 11835 .set .LANCHOR31,. + 0 11836 .type c_ftl_nand_map_region_num, %object 11837 .size c_ftl_nand_map_region_num, 2 11838c_ftl_nand_map_region_num: 11839 .zero 2 11840 .section .bss.c_ftl_nand_max_data_blks,"aw",@nobits 11841 .align 2 11842 .set .LANCHOR6,. + 0 11843 .type c_ftl_nand_max_data_blks, %object 11844 .size c_ftl_nand_max_data_blks, 4 11845c_ftl_nand_max_data_blks: 11846 .zero 4 11847 .section .bss.c_ftl_nand_max_map_blks,"aw",@nobits 11848 .align 2 11849 .set .LANCHOR29,. + 0 11850 .type c_ftl_nand_max_map_blks, %object 11851 .size c_ftl_nand_max_map_blks, 4 11852c_ftl_nand_max_map_blks: 11853 .zero 4 11854 .section .bss.c_ftl_nand_max_sys_blks,"aw",@nobits 11855 .align 2 11856 .set .LANCHOR3,. + 0 11857 .type c_ftl_nand_max_sys_blks, %object 11858 .size c_ftl_nand_max_sys_blks, 4 11859c_ftl_nand_max_sys_blks: 11860 .zero 4 11861 .section .bss.c_ftl_nand_max_vendor_blks,"aw",@nobits 11862 .align 1 11863 .set .LANCHOR26,. + 0 11864 .type c_ftl_nand_max_vendor_blks, %object 11865 .size c_ftl_nand_max_vendor_blks, 2 11866c_ftl_nand_max_vendor_blks: 11867 .zero 2 11868 .section .bss.c_ftl_nand_page_pre_blk,"aw",@nobits 11869 .align 1 11870 .set .LANCHOR18,. + 0 11871 .type c_ftl_nand_page_pre_blk, %object 11872 .size c_ftl_nand_page_pre_blk, 2 11873c_ftl_nand_page_pre_blk: 11874 .zero 2 11875 .section .bss.c_ftl_nand_page_pre_slc_blk,"aw",@nobits 11876 .align 1 11877 .set .LANCHOR19,. + 0 11878 .type c_ftl_nand_page_pre_slc_blk, %object 11879 .size c_ftl_nand_page_pre_slc_blk, 2 11880c_ftl_nand_page_pre_slc_blk: 11881 .zero 2 11882 .section .bss.c_ftl_nand_page_pre_super_blk,"aw",@nobits 11883 .align 1 11884 .set .LANCHOR20,. + 0 11885 .type c_ftl_nand_page_pre_super_blk, %object 11886 .size c_ftl_nand_page_pre_super_blk, 2 11887c_ftl_nand_page_pre_super_blk: 11888 .zero 2 11889 .section .bss.c_ftl_nand_planes_num,"aw",@nobits 11890 .align 1 11891 .set .LANCHOR2,. + 0 11892 .type c_ftl_nand_planes_num, %object 11893 .size c_ftl_nand_planes_num, 2 11894c_ftl_nand_planes_num: 11895 .zero 2 11896 .section .bss.c_ftl_nand_planes_per_die,"aw",@nobits 11897 .align 1 11898 .set .LANCHOR10,. + 0 11899 .type c_ftl_nand_planes_per_die, %object 11900 .size c_ftl_nand_planes_per_die, 2 11901c_ftl_nand_planes_per_die: 11902 .zero 2 11903 .section .bss.c_ftl_nand_reserved_blks,"aw",@nobits 11904 .align 1 11905 .set .LANCHOR24,. + 0 11906 .type c_ftl_nand_reserved_blks, %object 11907 .size c_ftl_nand_reserved_blks, 2 11908c_ftl_nand_reserved_blks: 11909 .zero 2 11910 .section .bss.c_ftl_nand_sec_pre_page,"aw",@nobits 11911 .align 1 11912 .set .LANCHOR11,. + 0 11913 .type c_ftl_nand_sec_pre_page, %object 11914 .size c_ftl_nand_sec_pre_page, 2 11915c_ftl_nand_sec_pre_page: 11916 .zero 2 11917 .section .bss.c_ftl_nand_sec_pre_page_shift,"aw",@nobits 11918 .align 1 11919 .set .LANCHOR21,. + 0 11920 .type c_ftl_nand_sec_pre_page_shift, %object 11921 .size c_ftl_nand_sec_pre_page_shift, 2 11922c_ftl_nand_sec_pre_page_shift: 11923 .zero 2 11924 .section .bss.c_ftl_nand_sys_blks_per_plane,"aw",@nobits 11925 .align 2 11926 .set .LANCHOR1,. + 0 11927 .type c_ftl_nand_sys_blks_per_plane, %object 11928 .size c_ftl_nand_sys_blks_per_plane, 4 11929c_ftl_nand_sys_blks_per_plane: 11930 .zero 4 11931 .section .bss.c_ftl_nand_totle_phy_blks,"aw",@nobits 11932 .align 2 11933 .set .LANCHOR7,. + 0 11934 .type c_ftl_nand_totle_phy_blks, %object 11935 .size c_ftl_nand_totle_phy_blks, 4 11936c_ftl_nand_totle_phy_blks: 11937 .zero 4 11938 .section .bss.c_ftl_nand_type,"aw",@nobits 11939 .align 1 11940 .set .LANCHOR8,. + 0 11941 .type c_ftl_nand_type, %object 11942 .size c_ftl_nand_type, 2 11943c_ftl_nand_type: 11944 .zero 2 11945 .section .bss.c_ftl_nand_vendor_region_num,"aw",@nobits 11946 .align 1 11947 .set .LANCHOR27,. + 0 11948 .type c_ftl_nand_vendor_region_num, %object 11949 .size c_ftl_nand_vendor_region_num, 2 11950c_ftl_nand_vendor_region_num: 11951 .zero 2 11952 .section .bss.c_ftl_vendor_part_size,"aw",@nobits 11953 .align 1 11954 .set .LANCHOR15,. + 0 11955 .type c_ftl_vendor_part_size, %object 11956 .size c_ftl_vendor_part_size, 2 11957c_ftl_vendor_part_size: 11958 .zero 2 11959 .section .bss.c_gc_page_buf_num,"aw",@nobits 11960 .align 2 11961 .set .LANCHOR66,. + 0 11962 .type c_gc_page_buf_num, %object 11963 .size c_gc_page_buf_num, 4 11964c_gc_page_buf_num: 11965 .zero 4 11966 .section .bss.c_mlc_erase_count_value,"aw",@nobits 11967 .align 1 11968 .set .LANCHOR13,. + 0 11969 .type c_mlc_erase_count_value, %object 11970 .size c_mlc_erase_count_value, 2 11971c_mlc_erase_count_value: 11972 .zero 2 11973 .section .bss.check_vpc_table,"aw",@nobits 11974 .align 3 11975 .type check_vpc_table, %object 11976 .size check_vpc_table, 16384 11977check_vpc_table: 11978 .zero 16384 11979 .section .bss.ftl_gc_temp_power_lost_recovery_flag,"aw",@nobits 11980 .align 2 11981 .set .LANCHOR132,. + 0 11982 .type ftl_gc_temp_power_lost_recovery_flag, %object 11983 .size ftl_gc_temp_power_lost_recovery_flag, 4 11984ftl_gc_temp_power_lost_recovery_flag: 11985 .zero 4 11986 .section .bss.gBbtInfo,"aw",@nobits 11987 .align 3 11988 .set .LANCHOR36,. + 0 11989 .type gBbtInfo, %object 11990 .size gBbtInfo, 96 11991gBbtInfo: 11992 .zero 96 11993 .section .bss.gL2pMapInfo,"aw",@nobits 11994 .align 3 11995 .set .LANCHOR128,. + 0 11996 .type gL2pMapInfo, %object 11997 .size gL2pMapInfo, 64 11998gL2pMapInfo: 11999 .zero 64 12000 .section .bss.gSysFreeQueue,"aw",@nobits 12001 .align 3 12002 .set .LANCHOR37,. + 0 12003 .type gSysFreeQueue, %object 12004 .size gSysFreeQueue, 2056 12005gSysFreeQueue: 12006 .zero 2056 12007 .section .bss.gSysInfo,"aw",@nobits 12008 .align 3 12009 .set .LANCHOR138,. + 0 12010 .type gSysInfo, %object 12011 .size gSysInfo, 16 12012gSysInfo: 12013 .zero 16 12014 .section .bss.gVendorBlkInfo,"aw",@nobits 12015 .align 3 12016 .set .LANCHOR160,. + 0 12017 .type gVendorBlkInfo, %object 12018 .size gVendorBlkInfo, 64 12019gVendorBlkInfo: 12020 .zero 64 12021 .section .bss.g_GlobalDataVersion,"aw",@nobits 12022 .align 2 12023 .set .LANCHOR82,. + 0 12024 .type g_GlobalDataVersion, %object 12025 .size g_GlobalDataVersion, 4 12026g_GlobalDataVersion: 12027 .zero 4 12028 .section .bss.g_GlobalSysVersion,"aw",@nobits 12029 .align 2 12030 .set .LANCHOR81,. + 0 12031 .type g_GlobalSysVersion, %object 12032 .size g_GlobalSysVersion, 4 12033g_GlobalSysVersion: 12034 .zero 4 12035 .section .bss.g_MaxLbaSector,"aw",@nobits 12036 .align 2 12037 .set .LANCHOR33,. + 0 12038 .type g_MaxLbaSector, %object 12039 .size g_MaxLbaSector, 4 12040g_MaxLbaSector: 12041 .zero 4 12042 .section .bss.g_MaxLbn,"aw",@nobits 12043 .align 2 12044 .set .LANCHOR178,. + 0 12045 .type g_MaxLbn, %object 12046 .size g_MaxLbn, 4 12047g_MaxLbn: 12048 .zero 4 12049 .section .bss.g_MaxLpn,"aw",@nobits 12050 .align 2 12051 .set .LANCHOR151,. + 0 12052 .type g_MaxLpn, %object 12053 .size g_MaxLpn, 4 12054g_MaxLpn: 12055 .zero 4 12056 .section .bss.g_VaildLpn,"aw",@nobits 12057 .align 2 12058 .set .LANCHOR58,. + 0 12059 .type g_VaildLpn, %object 12060 .size g_VaildLpn, 4 12061g_VaildLpn: 12062 .zero 4 12063 .section .bss.g_active_superblock,"aw",@nobits 12064 .align 3 12065 .set .LANCHOR50,. + 0 12066 .type g_active_superblock, %object 12067 .size g_active_superblock, 48 12068g_active_superblock: 12069 .zero 48 12070 .section .bss.g_buffer_superblock,"aw",@nobits 12071 .align 3 12072 .set .LANCHOR51,. + 0 12073 .type g_buffer_superblock, %object 12074 .size g_buffer_superblock, 48 12075g_buffer_superblock: 12076 .zero 48 12077 .section .bss.g_cur_erase_blk,"aw",@nobits 12078 .align 2 12079 .set .LANCHOR98,. + 0 12080 .type g_cur_erase_blk, %object 12081 .size g_cur_erase_blk, 4 12082g_cur_erase_blk: 12083 .zero 4 12084 .section .bss.g_ect_tbl_info_size,"aw",@nobits 12085 .align 1 12086 .set .LANCHOR115,. + 0 12087 .type g_ect_tbl_info_size, %object 12088 .size g_ect_tbl_info_size, 2 12089g_ect_tbl_info_size: 12090 .zero 2 12091 .section .bss.g_ect_tbl_power_up_flush,"aw",@nobits 12092 .align 1 12093 .set .LANCHOR163,. + 0 12094 .type g_ect_tbl_power_up_flush, %object 12095 .size g_ect_tbl_power_up_flush, 2 12096g_ect_tbl_power_up_flush: 12097 .zero 2 12098 .section .bss.g_ftl_nand_free_count,"aw",@nobits 12099 .align 2 12100 .set .LANCHOR175,. + 0 12101 .type g_ftl_nand_free_count, %object 12102 .size g_ftl_nand_free_count, 4 12103g_ftl_nand_free_count: 12104 .zero 4 12105 .section .bss.g_gc_bad_block_gc_index,"aw",@nobits 12106 .align 1 12107 .set .LANCHOR75,. + 0 12108 .type g_gc_bad_block_gc_index, %object 12109 .size g_gc_bad_block_gc_index, 2 12110g_gc_bad_block_gc_index: 12111 .zero 2 12112 .section .bss.g_gc_bad_block_temp_num,"aw",@nobits 12113 .align 1 12114 .set .LANCHOR73,. + 0 12115 .type g_gc_bad_block_temp_num, %object 12116 .size g_gc_bad_block_temp_num, 2 12117g_gc_bad_block_temp_num: 12118 .zero 2 12119 .section .bss.g_gc_bad_block_temp_tbl,"aw",@nobits 12120 .align 3 12121 .set .LANCHOR74,. + 0 12122 .type g_gc_bad_block_temp_tbl, %object 12123 .size g_gc_bad_block_temp_tbl, 34 12124g_gc_bad_block_temp_tbl: 12125 .zero 34 12126 .section .bss.g_gc_blk_index,"aw",@nobits 12127 .align 1 12128 .set .LANCHOR101,. + 0 12129 .type g_gc_blk_index, %object 12130 .size g_gc_blk_index, 2 12131g_gc_blk_index: 12132 .zero 2 12133 .section .bss.g_gc_blk_num,"aw",@nobits 12134 .align 1 12135 .set .LANCHOR67,. + 0 12136 .type g_gc_blk_num, %object 12137 .size g_gc_blk_num, 2 12138g_gc_blk_num: 12139 .zero 2 12140 .section .bss.g_gc_cur_blk_max_valid_pages,"aw",@nobits 12141 .align 1 12142 .set .LANCHOR173,. + 0 12143 .type g_gc_cur_blk_max_valid_pages, %object 12144 .size g_gc_cur_blk_max_valid_pages, 2 12145g_gc_cur_blk_max_valid_pages: 12146 .zero 2 12147 .section .bss.g_gc_cur_blk_valid_pages,"aw",@nobits 12148 .align 1 12149 .set .LANCHOR172,. + 0 12150 .type g_gc_cur_blk_valid_pages, %object 12151 .size g_gc_cur_blk_valid_pages, 2 12152g_gc_cur_blk_valid_pages: 12153 .zero 2 12154 .section .bss.g_gc_free_blk_threshold,"aw",@nobits 12155 .align 1 12156 .set .LANCHOR99,. + 0 12157 .type g_gc_free_blk_threshold, %object 12158 .size g_gc_free_blk_threshold, 2 12159g_gc_free_blk_threshold: 12160 .zero 2 12161 .section .bss.g_gc_head_data_block,"aw",@nobits 12162 .align 2 12163 .set .LANCHOR95,. + 0 12164 .type g_gc_head_data_block, %object 12165 .size g_gc_head_data_block, 4 12166g_gc_head_data_block: 12167 .zero 4 12168 .section .bss.g_gc_head_data_block_count,"aw",@nobits 12169 .align 2 12170 .set .LANCHOR96,. + 0 12171 .type g_gc_head_data_block_count, %object 12172 .size g_gc_head_data_block_count, 4 12173g_gc_head_data_block_count: 12174 .zero 4 12175 .section .bss.g_gc_merge_free_blk_threshold,"aw",@nobits 12176 .align 1 12177 .set .LANCHOR100,. + 0 12178 .type g_gc_merge_free_blk_threshold, %object 12179 .size g_gc_merge_free_blk_threshold, 2 12180g_gc_merge_free_blk_threshold: 12181 .zero 2 12182 .section .bss.g_gc_next_blk,"aw",@nobits 12183 .align 1 12184 .set .LANCHOR71,. + 0 12185 .type g_gc_next_blk, %object 12186 .size g_gc_next_blk, 2 12187g_gc_next_blk: 12188 .zero 2 12189 .section .bss.g_gc_next_blk_1,"aw",@nobits 12190 .align 1 12191 .set .LANCHOR72,. + 0 12192 .type g_gc_next_blk_1, %object 12193 .size g_gc_next_blk_1, 2 12194g_gc_next_blk_1: 12195 .zero 2 12196 .section .bss.g_gc_num_req,"aw",@nobits 12197 .align 2 12198 .set .LANCHOR61,. + 0 12199 .type g_gc_num_req, %object 12200 .size g_gc_num_req, 4 12201g_gc_num_req: 12202 .zero 4 12203 .section .bss.g_gc_page_offset,"aw",@nobits 12204 .align 1 12205 .set .LANCHOR69,. + 0 12206 .type g_gc_page_offset, %object 12207 .size g_gc_page_offset, 2 12208g_gc_page_offset: 12209 .zero 2 12210 .section .bss.g_gc_skip_write_count,"aw",@nobits 12211 .align 2 12212 .set .LANCHOR97,. + 0 12213 .type g_gc_skip_write_count, %object 12214 .size g_gc_skip_write_count, 4 12215g_gc_skip_write_count: 12216 .zero 4 12217 .section .bss.g_gc_superblock,"aw",@nobits 12218 .align 3 12219 .set .LANCHOR144,. + 0 12220 .type g_gc_superblock, %object 12221 .size g_gc_superblock, 48 12222g_gc_superblock: 12223 .zero 48 12224 .section .bss.g_gc_temp_superblock,"aw",@nobits 12225 .align 3 12226 .set .LANCHOR52,. + 0 12227 .type g_gc_temp_superblock, %object 12228 .size g_gc_temp_superblock, 48 12229g_gc_temp_superblock: 12230 .zero 48 12231 .section .bss.g_in_gc_progress,"aw",@nobits 12232 .align 2 12233 .set .LANCHOR93,. + 0 12234 .type g_in_gc_progress, %object 12235 .size g_in_gc_progress, 4 12236g_in_gc_progress: 12237 .zero 4 12238 .section .bss.g_in_swl_replace,"aw",@nobits 12239 .align 2 12240 .set .LANCHOR94,. + 0 12241 .type g_in_swl_replace, %object 12242 .size g_in_swl_replace, 4 12243g_in_swl_replace: 12244 .zero 4 12245 .section .bss.g_l2p_last_update_region_id,"aw",@nobits 12246 .align 1 12247 .set .LANCHOR55,. + 0 12248 .type g_l2p_last_update_region_id, %object 12249 .size g_l2p_last_update_region_id, 2 12250g_l2p_last_update_region_id: 12251 .zero 2 12252 .section .bss.g_max_erase_count,"aw",@nobits 12253 .align 2 12254 .set .LANCHOR91,. + 0 12255 .type g_max_erase_count, %object 12256 .size g_max_erase_count, 4 12257g_max_erase_count: 12258 .zero 4 12259 .section .bss.g_min_erase_count,"aw",@nobits 12260 .align 2 12261 .set .LANCHOR92,. + 0 12262 .type g_min_erase_count, %object 12263 .size g_min_erase_count, 4 12264g_min_erase_count: 12265 .zero 4 12266 .section .bss.g_nand_ops,"aw",@nobits 12267 .align 3 12268 .set .LANCHOR77,. + 0 12269 .type g_nand_ops, %object 12270 .size g_nand_ops, 48 12271g_nand_ops: 12272 .zero 48 12273 .section .bss.g_nand_phy_info,"aw",@nobits 12274 .align 3 12275 .set .LANCHOR0,. + 0 12276 .type g_nand_phy_info, %object 12277 .size g_nand_phy_info, 24 12278g_nand_phy_info: 12279 .zero 24 12280 .section .bss.g_num_data_superblocks,"aw",@nobits 12281 .align 1 12282 .set .LANCHOR43,. + 0 12283 .type g_num_data_superblocks, %object 12284 .size g_num_data_superblocks, 2 12285g_num_data_superblocks: 12286 .zero 2 12287 .section .bss.g_num_free_superblocks,"aw",@nobits 12288 .align 1 12289 .set .LANCHOR47,. + 0 12290 .type g_num_free_superblocks, %object 12291 .size g_num_free_superblocks, 2 12292g_num_free_superblocks: 12293 .zero 2 12294 .section .bss.g_power_lost_recovery_flag,"aw",@nobits 12295 .align 1 12296 .set .LANCHOR155,. + 0 12297 .type g_power_lost_recovery_flag, %object 12298 .size g_power_lost_recovery_flag, 2 12299g_power_lost_recovery_flag: 12300 .zero 2 12301 .section .bss.g_recovery_page_min_ver,"aw",@nobits 12302 .align 2 12303 .set .LANCHOR133,. + 0 12304 .type g_recovery_page_min_ver, %object 12305 .size g_recovery_page_min_ver, 4 12306g_recovery_page_min_ver: 12307 .zero 4 12308 .section .bss.g_recovery_page_num,"aw",@nobits 12309 .align 2 12310 .set .LANCHOR156,. + 0 12311 .type g_recovery_page_num, %object 12312 .size g_recovery_page_num, 4 12313g_recovery_page_num: 12314 .zero 4 12315 .section .bss.g_recovery_ppa_tbl,"aw",@nobits 12316 .align 3 12317 .set .LANCHOR157,. + 0 12318 .type g_recovery_ppa_tbl, %object 12319 .size g_recovery_ppa_tbl, 128 12320g_recovery_ppa_tbl: 12321 .zero 128 12322 .section .bss.g_sys_ext_data,"aw",@nobits 12323 .align 3 12324 .set .LANCHOR134,. + 0 12325 .type g_sys_ext_data, %object 12326 .size g_sys_ext_data, 512 12327g_sys_ext_data: 12328 .zero 512 12329 .section .bss.g_sys_save_data,"aw",@nobits 12330 .align 3 12331 .set .LANCHOR38,. + 0 12332 .type g_sys_save_data, %object 12333 .size g_sys_save_data, 48 12334g_sys_save_data: 12335 .zero 48 12336 .section .bss.g_tmp_data_superblock_id,"aw",@nobits 12337 .align 1 12338 .set .LANCHOR130,. + 0 12339 .type g_tmp_data_superblock_id, %object 12340 .size g_tmp_data_superblock_id, 2 12341g_tmp_data_superblock_id: 12342 .zero 2 12343 .section .bss.g_totle_avg_erase_count,"aw",@nobits 12344 .align 2 12345 .set .LANCHOR142,. + 0 12346 .type g_totle_avg_erase_count, %object 12347 .size g_totle_avg_erase_count, 4 12348g_totle_avg_erase_count: 12349 .zero 4 12350 .section .bss.g_totle_cache_write_count,"aw",@nobits 12351 .align 2 12352 .set .LANCHOR86,. + 0 12353 .type g_totle_cache_write_count, %object 12354 .size g_totle_cache_write_count, 4 12355g_totle_cache_write_count: 12356 .zero 4 12357 .section .bss.g_totle_discard_page_count,"aw",@nobits 12358 .align 2 12359 .set .LANCHOR85,. + 0 12360 .type g_totle_discard_page_count, %object 12361 .size g_totle_discard_page_count, 4 12362g_totle_discard_page_count: 12363 .zero 4 12364 .section .bss.g_totle_gc_page_count,"aw",@nobits 12365 .align 2 12366 .set .LANCHOR83,. + 0 12367 .type g_totle_gc_page_count, %object 12368 .size g_totle_gc_page_count, 4 12369g_totle_gc_page_count: 12370 .zero 4 12371 .section .bss.g_totle_l2p_write_count,"aw",@nobits 12372 .align 2 12373 .set .LANCHOR87,. + 0 12374 .type g_totle_l2p_write_count, %object 12375 .size g_totle_l2p_write_count, 4 12376g_totle_l2p_write_count: 12377 .zero 4 12378 .section .bss.g_totle_map_block,"aw",@nobits 12379 .align 1 12380 .set .LANCHOR129,. + 0 12381 .type g_totle_map_block, %object 12382 .size g_totle_map_block, 2 12383g_totle_map_block: 12384 .zero 2 12385 .section .bss.g_totle_mlc_erase_count,"aw",@nobits 12386 .align 2 12387 .set .LANCHOR89,. + 0 12388 .type g_totle_mlc_erase_count, %object 12389 .size g_totle_mlc_erase_count, 4 12390g_totle_mlc_erase_count: 12391 .zero 4 12392 .section .bss.g_totle_read_page_count,"aw",@nobits 12393 .align 2 12394 .set .LANCHOR88,. + 0 12395 .type g_totle_read_page_count, %object 12396 .size g_totle_read_page_count, 4 12397g_totle_read_page_count: 12398 .zero 4 12399 .section .bss.g_totle_read_sector,"aw",@nobits 12400 .align 2 12401 .set .LANCHOR162,. + 0 12402 .type g_totle_read_sector, %object 12403 .size g_totle_read_sector, 4 12404g_totle_read_sector: 12405 .zero 4 12406 .section .bss.g_totle_slc_erase_count,"aw",@nobits 12407 .align 2 12408 .set .LANCHOR90,. + 0 12409 .type g_totle_slc_erase_count, %object 12410 .size g_totle_slc_erase_count, 4 12411g_totle_slc_erase_count: 12412 .zero 4 12413 .section .bss.g_totle_swl_count,"aw",@nobits 12414 .align 2 12415 .set .LANCHOR131,. + 0 12416 .type g_totle_swl_count, %object 12417 .size g_totle_swl_count, 4 12418g_totle_swl_count: 12419 .zero 4 12420 .section .bss.g_totle_sys_slc_erase_count,"aw",@nobits 12421 .align 2 12422 .set .LANCHOR79,. + 0 12423 .type g_totle_sys_slc_erase_count, %object 12424 .size g_totle_sys_slc_erase_count, 4 12425g_totle_sys_slc_erase_count: 12426 .zero 4 12427 .section .bss.g_totle_vendor_block,"aw",@nobits 12428 .align 1 12429 .set .LANCHOR34,. + 0 12430 .type g_totle_vendor_block, %object 12431 .size g_totle_vendor_block, 2 12432g_totle_vendor_block: 12433 .zero 2 12434 .section .bss.g_totle_write_page_count,"aw",@nobits 12435 .align 2 12436 .set .LANCHOR84,. + 0 12437 .type g_totle_write_page_count, %object 12438 .size g_totle_write_page_count, 4 12439g_totle_write_page_count: 12440 .zero 4 12441 .section .bss.g_totle_write_sector,"aw",@nobits 12442 .align 2 12443 .set .LANCHOR161,. + 0 12444 .type g_totle_write_sector, %object 12445 .size g_totle_write_sector, 4 12446g_totle_write_sector: 12447 .zero 4 12448 .section .bss.gc_discard_updated,"aw",@nobits 12449 .align 2 12450 .set .LANCHOR166,. + 0 12451 .type gc_discard_updated, %object 12452 .size gc_discard_updated, 4 12453gc_discard_updated: 12454 .zero 4 12455 .section .bss.gc_ink_free_return_value,"aw",@nobits 12456 .align 1 12457 .set .LANCHOR171,. + 0 12458 .type gc_ink_free_return_value, %object 12459 .size gc_ink_free_return_value, 2 12460gc_ink_free_return_value: 12461 .zero 2 12462 .section .bss.gp_ect_tbl_info,"aw",@nobits 12463 .align 3 12464 .set .LANCHOR117,. + 0 12465 .type gp_ect_tbl_info, %object 12466 .size gp_ect_tbl_info, 8 12467gp_ect_tbl_info: 12468 .zero 8 12469 .section .bss.gp_flash_check_buf,"aw",@nobits 12470 .align 3 12471 .set .LANCHOR183,. + 0 12472 .type gp_flash_check_buf, %object 12473 .size gp_flash_check_buf, 8 12474gp_flash_check_buf: 12475 .zero 8 12476 .section .bss.gp_gc_page_buf_info,"aw",@nobits 12477 .align 3 12478 .set .LANCHOR62,. + 0 12479 .type gp_gc_page_buf_info, %object 12480 .size gp_gc_page_buf_info, 8 12481gp_gc_page_buf_info: 12482 .zero 8 12483 .section .bss.gp_last_act_superblock,"aw",@nobits 12484 .align 3 12485 .type gp_last_act_superblock, %object 12486 .size gp_last_act_superblock, 8 12487gp_last_act_superblock: 12488 .zero 8 12489 .section .bss.idb_buf,"aw",@nobits 12490 .align 3 12491 .set .LANCHOR182,. + 0 12492 .type idb_buf, %object 12493 .size idb_buf, 8 12494idb_buf: 12495 .zero 8 12496 .section .bss.idb_need_write_back,"aw",@nobits 12497 .align 2 12498 .set .LANCHOR181,. + 0 12499 .type idb_need_write_back, %object 12500 .size idb_need_write_back, 4 12501idb_need_write_back: 12502 .zero 4 12503 .section .bss.low_format_en,"aw",@nobits 12504 .align 2 12505 .set .LANCHOR180,. + 0 12506 .type low_format_en, %object 12507 .size low_format_en, 4 12508low_format_en: 12509 .zero 4 12510 .section .bss.p_data_block_list_head,"aw",@nobits 12511 .align 3 12512 .set .LANCHOR40,. + 0 12513 .type p_data_block_list_head, %object 12514 .size p_data_block_list_head, 8 12515p_data_block_list_head: 12516 .zero 8 12517 .section .bss.p_data_block_list_table,"aw",@nobits 12518 .align 3 12519 .set .LANCHOR39,. + 0 12520 .type p_data_block_list_table, %object 12521 .size p_data_block_list_table, 8 12522p_data_block_list_table: 12523 .zero 8 12524 .section .bss.p_data_block_list_tail,"aw",@nobits 12525 .align 3 12526 .set .LANCHOR42,. + 0 12527 .type p_data_block_list_tail, %object 12528 .size p_data_block_list_tail, 8 12529p_data_block_list_tail: 12530 .zero 8 12531 .section .bss.p_erase_count_table,"aw",@nobits 12532 .align 3 12533 .set .LANCHOR46,. + 0 12534 .type p_erase_count_table, %object 12535 .size p_erase_count_table, 8 12536p_erase_count_table: 12537 .zero 8 12538 .section .bss.p_free_data_block_list_head,"aw",@nobits 12539 .align 3 12540 .set .LANCHOR45,. + 0 12541 .type p_free_data_block_list_head, %object 12542 .size p_free_data_block_list_head, 8 12543p_free_data_block_list_head: 12544 .zero 8 12545 .section .bss.p_gc_blk_tbl,"aw",@nobits 12546 .align 3 12547 .set .LANCHOR68,. + 0 12548 .type p_gc_blk_tbl, %object 12549 .size p_gc_blk_tbl, 8 12550p_gc_blk_tbl: 12551 .zero 8 12552 .section .bss.p_gc_data_buf,"aw",@nobits 12553 .align 3 12554 .set .LANCHOR63,. + 0 12555 .type p_gc_data_buf, %object 12556 .size p_gc_data_buf, 8 12557p_gc_data_buf: 12558 .zero 8 12559 .section .bss.p_gc_page_info,"aw",@nobits 12560 .align 3 12561 .set .LANCHOR70,. + 0 12562 .type p_gc_page_info, %object 12563 .size p_gc_page_info, 8 12564p_gc_page_info: 12565 .zero 8 12566 .section .bss.p_gc_spare_buf,"aw",@nobits 12567 .align 3 12568 .set .LANCHOR64,. + 0 12569 .type p_gc_spare_buf, %object 12570 .size p_gc_spare_buf, 8 12571p_gc_spare_buf: 12572 .zero 8 12573 .section .bss.p_io_data_buf_0,"aw",@nobits 12574 .align 3 12575 .set .LANCHOR108,. + 0 12576 .type p_io_data_buf_0, %object 12577 .size p_io_data_buf_0, 8 12578p_io_data_buf_0: 12579 .zero 8 12580 .section .bss.p_io_data_buf_1,"aw",@nobits 12581 .align 3 12582 .set .LANCHOR109,. + 0 12583 .type p_io_data_buf_1, %object 12584 .size p_io_data_buf_1, 8 12585p_io_data_buf_1: 12586 .zero 8 12587 .section .bss.p_io_spare_buf,"aw",@nobits 12588 .align 3 12589 .set .LANCHOR114,. + 0 12590 .type p_io_spare_buf, %object 12591 .size p_io_spare_buf, 8 12592p_io_spare_buf: 12593 .zero 8 12594 .section .bss.p_l2p_map_buf,"aw",@nobits 12595 .align 3 12596 .set .LANCHOR125,. + 0 12597 .type p_l2p_map_buf, %object 12598 .size p_l2p_map_buf, 8 12599p_l2p_map_buf: 12600 .zero 8 12601 .section .bss.p_l2p_ram_map,"aw",@nobits 12602 .align 3 12603 .set .LANCHOR54,. + 0 12604 .type p_l2p_ram_map, %object 12605 .size p_l2p_ram_map, 8 12606p_l2p_ram_map: 12607 .zero 8 12608 .section .bss.p_map_block_table,"aw",@nobits 12609 .align 3 12610 .set .LANCHOR118,. + 0 12611 .type p_map_block_table, %object 12612 .size p_map_block_table, 8 12613p_map_block_table: 12614 .zero 8 12615 .section .bss.p_map_block_valid_page_count,"aw",@nobits 12616 .align 3 12617 .set .LANCHOR119,. + 0 12618 .type p_map_block_valid_page_count, %object 12619 .size p_map_block_valid_page_count, 8 12620p_map_block_valid_page_count: 12621 .zero 8 12622 .section .bss.p_map_block_ver_table,"aw",@nobits 12623 .align 3 12624 .set .LANCHOR124,. + 0 12625 .type p_map_block_ver_table, %object 12626 .size p_map_block_ver_table, 8 12627p_map_block_ver_table: 12628 .zero 8 12629 .section .bss.p_map_region_ppn_table,"aw",@nobits 12630 .align 3 12631 .set .LANCHOR123,. + 0 12632 .type p_map_region_ppn_table, %object 12633 .size p_map_region_ppn_table, 8 12634p_map_region_ppn_table: 12635 .zero 8 12636 .section .bss.p_plane_order_table,"aw",@nobits 12637 .align 3 12638 .set .LANCHOR12,. + 0 12639 .type p_plane_order_table, %object 12640 .size p_plane_order_table, 32 12641p_plane_order_table: 12642 .zero 32 12643 .section .bss.p_swl_mul_table,"aw",@nobits 12644 .align 3 12645 .set .LANCHOR116,. + 0 12646 .type p_swl_mul_table, %object 12647 .size p_swl_mul_table, 8 12648p_swl_mul_table: 12649 .zero 8 12650 .section .bss.p_sys_data_buf,"aw",@nobits 12651 .align 3 12652 .set .LANCHOR105,. + 0 12653 .type p_sys_data_buf, %object 12654 .size p_sys_data_buf, 8 12655p_sys_data_buf: 12656 .zero 8 12657 .section .bss.p_sys_data_buf_1,"aw",@nobits 12658 .align 3 12659 .set .LANCHOR106,. + 0 12660 .type p_sys_data_buf_1, %object 12661 .size p_sys_data_buf_1, 8 12662p_sys_data_buf_1: 12663 .zero 8 12664 .section .bss.p_sys_spare_buf,"aw",@nobits 12665 .align 3 12666 .set .LANCHOR113,. + 0 12667 .type p_sys_spare_buf, %object 12668 .size p_sys_spare_buf, 8 12669p_sys_spare_buf: 12670 .zero 8 12671 .section .bss.p_valid_page_count_check_table,"aw",@nobits 12672 .align 3 12673 .type p_valid_page_count_check_table, %object 12674 .size p_valid_page_count_check_table, 8 12675p_valid_page_count_check_table: 12676 .zero 8 12677 .section .bss.p_valid_page_count_table,"aw",@nobits 12678 .align 3 12679 .set .LANCHOR41,. + 0 12680 .type p_valid_page_count_table, %object 12681 .size p_valid_page_count_table, 8 12682p_valid_page_count_table: 12683 .zero 8 12684 .section .bss.p_vendor_block_table,"aw",@nobits 12685 .align 3 12686 .set .LANCHOR35,. + 0 12687 .type p_vendor_block_table, %object 12688 .size p_vendor_block_table, 8 12689p_vendor_block_table: 12690 .zero 8 12691 .section .bss.p_vendor_block_valid_page_count,"aw",@nobits 12692 .align 3 12693 .set .LANCHOR120,. + 0 12694 .type p_vendor_block_valid_page_count, %object 12695 .size p_vendor_block_valid_page_count, 8 12696p_vendor_block_valid_page_count: 12697 .zero 8 12698 .section .bss.p_vendor_block_ver_table,"aw",@nobits 12699 .align 3 12700 .set .LANCHOR121,. + 0 12701 .type p_vendor_block_ver_table, %object 12702 .size p_vendor_block_ver_table, 8 12703p_vendor_block_ver_table: 12704 .zero 8 12705 .section .bss.p_vendor_data_buf,"aw",@nobits 12706 .align 3 12707 .set .LANCHOR107,. + 0 12708 .type p_vendor_data_buf, %object 12709 .size p_vendor_data_buf, 8 12710p_vendor_data_buf: 12711 .zero 8 12712 .section .bss.p_vendor_region_ppn_table,"aw",@nobits 12713 .align 3 12714 .set .LANCHOR122,. + 0 12715 .type p_vendor_region_ppn_table, %object 12716 .size p_vendor_region_ppn_table, 8 12717p_vendor_region_ppn_table: 12718 .zero 8 12719 .section .bss.req_erase,"aw",@nobits 12720 .align 3 12721 .set .LANCHOR78,. + 0 12722 .type req_erase, %object 12723 .size req_erase, 8 12724req_erase: 12725 .zero 8 12726 .section .bss.req_gc,"aw",@nobits 12727 .align 3 12728 .set .LANCHOR65,. + 0 12729 .type req_gc, %object 12730 .size req_gc, 8 12731req_gc: 12732 .zero 8 12733 .section .bss.req_gc_dst,"aw",@nobits 12734 .align 3 12735 .set .LANCHOR103,. + 0 12736 .type req_gc_dst, %object 12737 .size req_gc_dst, 8 12738req_gc_dst: 12739 .zero 8 12740 .section .bss.req_prgm,"aw",@nobits 12741 .align 3 12742 .set .LANCHOR104,. + 0 12743 .type req_prgm, %object 12744 .size req_prgm, 8 12745req_prgm: 12746 .zero 8 12747 .section .bss.req_read,"aw",@nobits 12748 .align 3 12749 .set .LANCHOR102,. + 0 12750 .type req_read, %object 12751 .size req_read, 8 12752req_read: 12753 .zero 8 12754 .section .bss.req_sys,"aw",@nobits 12755 .align 3 12756 .set .LANCHOR137,. + 0 12757 .type req_sys, %object 12758 .size req_sys, 32 12759req_sys: 12760 .zero 32 12761 .section .bss.sftl_nand_check_buf,"aw",@nobits 12762 .align 3 12763 .set .LANCHOR110,. + 0 12764 .type sftl_nand_check_buf, %object 12765 .size sftl_nand_check_buf, 8 12766sftl_nand_check_buf: 12767 .zero 8 12768 .section .bss.sftl_nand_check_spare_buf,"aw",@nobits 12769 .align 3 12770 .set .LANCHOR112,. + 0 12771 .type sftl_nand_check_spare_buf, %object 12772 .size sftl_nand_check_spare_buf, 8 12773sftl_nand_check_spare_buf: 12774 .zero 8 12775 .section .bss.sftl_temp_buf,"aw",@nobits 12776 .align 3 12777 .set .LANCHOR111,. + 0 12778 .type sftl_temp_buf, %object 12779 .size sftl_temp_buf, 8 12780sftl_temp_buf: 12781 .zero 8 12782 .section .data.ftl_gc_temp_block_bops_scan_page_addr,"aw",@progbits 12783 .align 1 12784 .set .LANCHOR159,. + 0 12785 .type ftl_gc_temp_block_bops_scan_page_addr, %object 12786 .size ftl_gc_temp_block_bops_scan_page_addr, 2 12787ftl_gc_temp_block_bops_scan_page_addr: 12788 .hword -1 12789 .section .data.gFtlInitStatus,"aw",@progbits 12790 .align 2 12791 .set .LANCHOR165,. + 0 12792 .type gFtlInitStatus, %object 12793 .size gFtlInitStatus, 4 12794gFtlInitStatus: 12795 .word -1 12796 .section .data.power_up_flag,"aw",@progbits 12797 .align 2 12798 .type power_up_flag, %object 12799 .size power_up_flag, 4 12800power_up_flag: 12801 .word 1 12802 .section .rodata.FlashEraseBlocks.str1.1,"aMS",@progbits,1 12803.LC6: 12804 .string "%s: addr: %x is in id block!!!!!!!!!!\n" 12805.LC7: 12806 .string "not free: w: d:" 12807.LC8: 12808 .string "not free: w: s:" 12809 .section .rodata.FlashProgPages.str1.1,"aMS",@progbits,1 12810.LC14: 12811 .string "prog read error: = %x\n" 12812.LC15: 12813 .string "prog read REFRESH: = %x\n" 12814.LC16: 12815 .string "prog read s error: = %x %x %x\n" 12816.LC17: 12817 .string "prog read d error: = %x %x %x\n" 12818 .section .rodata.FlashReadPages.str1.1,"aMS",@progbits,1 12819.LC11: 12820 .string "FlashReadPages %x %x error_ecc_bits %d\n" 12821.LC12: 12822 .string "data:" 12823.LC13: 12824 .string "spare:" 12825 .section .rodata.FtlBbmMapBadBlock.str1.1,"aMS",@progbits,1 12826.LC0: 12827 .string "phyBlk = 0x%x die = %d block_in_die = 0x%x 0x%8x\n" 12828 .section .rodata.FtlBbmTblFlush.str1.1,"aMS",@progbits,1 12829.LC18: 12830 .string "FtlBbmTblFlush id=%x,page=%x,previd=%x cnt=%d\n" 12831.LC19: 12832 .string "FtlBbmTblFlush error:%x\n" 12833.LC20: 12834 .string "FtlBbmTblFlush error = %x error count = %d\n" 12835 .section .rodata.FtlFreeSysBlkQueueOut.str1.1,"aMS",@progbits,1 12836.LC9: 12837 .string "FtlFreeSysBlkQueueOut = %x, free count = %d, error\n" 12838 .section .rodata.FtlGcScanTempBlk.str1.1,"aMS",@progbits,1 12839.LC35: 12840 .string "FtlGcScanTempBlk Error ID %x %x!!!!!!! \n" 12841 .section .rodata.FtlLoadEctTbl.str1.1,"aMS",@progbits,1 12842.LC37: 12843 .string "no ect" 12844.LC38: 12845 .string "%s\n" 12846 .section .rodata.FtlLoadSysInfo.str1.1,"aMS",@progbits,1 12847.LC46: 12848 .string "%s hash error this.id =%x page =%x pre_id =%x hash =%x hash_r =%x\n" 12849 .section .rodata.FtlMapTblRecovery.str1.1,"aMS",@progbits,1 12850.LC47: 12851 .string "%s last blk_id =%x page =%x hash error hash =%x hash_r =%x\n" 12852.LC48: 12853 .string "%s scan blk_id =%x page =%x hash error hash =%x hash_r =%x\n" 12854 .section .rodata.FtlMapWritePage.str1.1,"aMS",@progbits,1 12855.LC22: 12856 .string "FtlMapWritePage error = %x \n" 12857.LC23: 12858 .string "FtlMapWritePage error = %x error count = %d\n" 12859 .section .rodata.FtlProgPages.str1.1,"aMS",@progbits,1 12860.LC40: 12861 .string "FtlProgPages error %x = %d\n" 12862.LC41: 12863 .string "Ftlwrite decrement_vpc_count %x = %d\n" 12864 .section .rodata.FtlRecoverySuperblock.str1.1,"aMS",@progbits,1 12865.LC27: 12866 .string "data prev_ppa = %x error...................\n" 12867.LC28: 12868 .string "spuer block %x vpn is 0\n " 12869 .section .rodata.FtlVendorPartRead.str1.1,"aMS",@progbits,1 12870.LC36: 12871 .string "FtlVendorPartRead refresh = %x phyAddr = %x\n" 12872 .section .rodata.FtlVpcTblFlush.str1.1,"aMS",@progbits,1 12873.LC39: 12874 .string "FtlVpcTblFlush error = %x error count = %d\n" 12875 .section .rodata.FtlWrite.str1.1,"aMS",@progbits,1 12876.LC44: 12877 .string "FtlWrite: ecc error:%x %x %x\n" 12878.LC45: 12879 .string "FtlWrite: lpa error:%x %x\n" 12880 .section .rodata.FtlWriteToIDB.str1.1,"aMS",@progbits,1 12881.LC50: 12882 .string "write_idblock %x %x\n" 12883.LC51: 12884 .string "write_idblock fail! %x %x %x %x\n" 12885.LC52: 12886 .string "%s idb buffer alloc fail\n" 12887 .section .rodata.INSERT_DATA_LIST.str1.1,"aMS",@progbits,1 12888.LC1: 12889 .string "\n!!!!! error @ func:%s - line:%d\n" 12890 .section .rodata.__func__.6364,"a",@progbits 12891 .align 3 12892 .set .LANCHOR168,. + 0 12893 .type __func__.6364, %object 12894 .size __func__.6364, 13 12895__func__.6364: 12896 .string "FtlProgPages" 12897 .section .rodata.__func__.6392,"a",@progbits 12898 .align 3 12899 .set .LANCHOR176,. + 0 12900 .type __func__.6392, %object 12901 .size __func__.6392, 9 12902__func__.6392: 12903 .string "FtlWrite" 12904 .section .rodata.__func__.6474,"a",@progbits 12905 .align 3 12906 .set .LANCHOR127,. + 0 12907 .type __func__.6474, %object 12908 .size __func__.6474, 14 12909__func__.6474: 12910 .string "FtlBbt2Bitmap" 12911 .section .rodata.__func__.6509,"a",@progbits 12912 .align 3 12913 .set .LANCHOR140,. + 0 12914 .type __func__.6509, %object 12915 .size __func__.6509, 11 12916__func__.6509: 12917 .string "FtlLoadBbt" 12918 .section .rodata.__func__.6624,"a",@progbits 12919 .align 3 12920 .set .LANCHOR48,. + 0 12921 .type __func__.6624, %object 12922 .size __func__.6624, 17 12923__func__.6624: 12924 .string "INSERT_FREE_LIST" 12925 .section .rodata.__func__.6629,"a",@progbits 12926 .align 3 12927 .set .LANCHOR44,. + 0 12928 .type __func__.6629, %object 12929 .size __func__.6629, 17 12930__func__.6629: 12931 .string "INSERT_DATA_LIST" 12932 .section .rodata.__func__.6660,"a",@progbits 12933 .align 3 12934 .set .LANCHOR49,. + 0 12935 .type __func__.6660, %object 12936 .size __func__.6660, 17 12937__func__.6660: 12938 .string "List_remove_node" 12939 .section .rodata.__func__.6692,"a",@progbits 12940 .align 3 12941 .set .LANCHOR53,. + 0 12942 .type __func__.6692, %object 12943 .size __func__.6692, 22 12944__func__.6692: 12945 .string "List_update_data_list" 12946 .section .rodata.__func__.6701,"a",@progbits 12947 .align 3 12948 .set .LANCHOR149,. + 0 12949 .type __func__.6701, %object 12950 .size __func__.6701, 16 12951__func__.6701: 12952 .string "load_l2p_region" 12953 .section .rodata.__func__.6734,"a",@progbits 12954 .align 3 12955 .set .LANCHOR80,. + 0 12956 .type __func__.6734, %object 12957 .size __func__.6734, 26 12958__func__.6734: 12959 .string "ftl_map_blk_alloc_new_blk" 12960 .section .rodata.__func__.6745,"a",@progbits 12961 .align 3 12962 .set .LANCHOR150,. + 0 12963 .type __func__.6745, %object 12964 .size __func__.6745, 15 12965__func__.6745: 12966 .string "ftl_map_blk_gc" 12967 .section .rodata.__func__.6760,"a",@progbits 12968 .align 3 12969 .set .LANCHOR147,. + 0 12970 .type __func__.6760, %object 12971 .size __func__.6760, 31 12972__func__.6760: 12973 .string "Ftl_write_map_blk_to_last_page" 12974 .section .rodata.__func__.6774,"a",@progbits 12975 .align 3 12976 .set .LANCHOR148,. + 0 12977 .type __func__.6774, %object 12978 .size __func__.6774, 16 12979__func__.6774: 12980 .string "FtlMapWritePage" 12981 .section .rodata.__func__.6799,"a",@progbits 12982 .align 3 12983 .set .LANCHOR56,. + 0 12984 .type __func__.6799, %object 12985 .size __func__.6799, 22 12986__func__.6799: 12987 .string "select_l2p_ram_region" 12988 .section .rodata.__func__.6816,"a",@progbits 12989 .align 3 12990 .set .LANCHOR152,. + 0 12991 .type __func__.6816, %object 12992 .size __func__.6816, 9 12993__func__.6816: 12994 .string "log2phys" 12995 .section .rodata.__func__.6880,"a",@progbits 12996 .align 3 12997 .set .LANCHOR164,. + 0 12998 .type __func__.6880, %object 12999 .size __func__.6880, 15 13000__func__.6880: 13001 .string "FtlVpcTblFlush" 13002 .section .rodata.__func__.6902,"a",@progbits 13003 .align 3 13004 .set .LANCHOR139,. + 0 13005 .type __func__.6902, %object 13006 .size __func__.6902, 14 13007__func__.6902: 13008 .string "FtlScanSysBlk" 13009 .section .rodata.__func__.6951,"a",@progbits 13010 .align 3 13011 .set .LANCHOR177,. + 0 13012 .type __func__.6951, %object 13013 .size __func__.6951, 15 13014__func__.6951: 13015 .string "FtlLoadSysInfo" 13016 .section .rodata.__func__.6973,"a",@progbits 13017 .align 3 13018 .set .LANCHOR179,. + 0 13019 .type __func__.6973, %object 13020 .size __func__.6973, 18 13021__func__.6973: 13022 .string "FtlMapTblRecovery" 13023 .section .rodata.__func__.7019,"a",@progbits 13024 .align 3 13025 .set .LANCHOR153,. + 0 13026 .type __func__.7019, %object 13027 .size __func__.7019, 16 13028__func__.7019: 13029 .string "FtlReUsePrevPpa" 13030 .section .rodata.__func__.7053,"a",@progbits 13031 .align 3 13032 .set .LANCHOR154,. + 0 13033 .type __func__.7053, %object 13034 .size __func__.7053, 22 13035__func__.7053: 13036 .string "FtlRecoverySuperblock" 13037 .section .rodata.__func__.7110,"a",@progbits 13038 .align 3 13039 .set .LANCHOR59,. + 0 13040 .type __func__.7110, %object 13041 .size __func__.7110, 16 13042__func__.7110: 13043 .string "make_superblock" 13044 .section .rodata.__func__.7131,"a",@progbits 13045 .align 3 13046 .set .LANCHOR135,. + 0 13047 .type __func__.7131, %object 13048 .size __func__.7131, 18 13049__func__.7131: 13050 .string "SupperBlkListInit" 13051 .section .rodata.__func__.7158,"a",@progbits 13052 .align 3 13053 .set .LANCHOR158,. + 0 13054 .type __func__.7158, %object 13055 .size __func__.7158, 14 13056__func__.7158: 13057 .string "ftl_check_vpc" 13058 .section .rodata.__func__.7223,"a",@progbits 13059 .align 3 13060 .set .LANCHOR143,. + 0 13061 .type __func__.7223, %object 13062 .size __func__.7223, 25 13063__func__.7223: 13064 .string "allocate_data_superblock" 13065 .section .rodata.__func__.7244,"a",@progbits 13066 .align 3 13067 .set .LANCHOR167,. + 0 13068 .type __func__.7244, %object 13069 .size __func__.7244, 29 13070__func__.7244: 13071 .string "allocate_new_data_superblock" 13072 .section .rodata.__func__.7251,"a",@progbits 13073 .align 3 13074 .set .LANCHOR60,. + 0 13075 .type __func__.7251, %object 13076 .size __func__.7251, 19 13077__func__.7251: 13078 .string "get_new_active_ppa" 13079 .section .rodata.__func__.7264,"a",@progbits 13080 .align 3 13081 .set .LANCHOR145,. + 0 13082 .type __func__.7264, %object 13083 .size __func__.7264, 16 13084__func__.7264: 13085 .string "update_vpc_list" 13086 .section .rodata.__func__.7271,"a",@progbits 13087 .align 3 13088 .set .LANCHOR146,. + 0 13089 .type __func__.7271, %object 13090 .size __func__.7271, 20 13091__func__.7271: 13092 .string "decrement_vpc_count" 13093 .section .rodata.__func__.7341,"a",@progbits 13094 .align 3 13095 .set .LANCHOR169,. + 0 13096 .type __func__.7341, %object 13097 .size __func__.7341, 19 13098__func__.7341: 13099 .string "FtlGcFreeTempBlock" 13100 .section .rodata.__func__.7440,"a",@progbits 13101 .align 3 13102 .set .LANCHOR174,. + 0 13103 .type __func__.7440, %object 13104 .size __func__.7440, 23 13105__func__.7440: 13106 .string "rk_ftl_garbage_collect" 13107 .section .rodata.__func__.7708,"a",@progbits 13108 .align 3 13109 .set .LANCHOR136,. + 0 13110 .type __func__.7708, %object 13111 .size __func__.7708, 15 13112__func__.7708: 13113 .string "FlashReadPages" 13114 .section .rodata.__func__.7727,"a",@progbits 13115 .align 3 13116 .set .LANCHOR141,. + 0 13117 .type __func__.7727, %object 13118 .size __func__.7727, 15 13119__func__.7727: 13120 .string "FlashProgPages" 13121 .section .rodata.__func__.7751,"a",@progbits 13122 .align 3 13123 .set .LANCHOR76,. + 0 13124 .type __func__.7751, %object 13125 .size __func__.7751, 17 13126__func__.7751: 13127 .string "FlashEraseBlocks" 13128 .section .rodata.__func__.7870,"a",@progbits 13129 .align 3 13130 .set .LANCHOR184,. + 0 13131 .type __func__.7870, %object 13132 .size __func__.7870, 14 13133__func__.7870: 13134 .string "FtlWriteToIDB" 13135 .section .rodata.decrement_vpc_count.str1.1,"aMS",@progbits,1 13136.LC21: 13137 .string "decrement_vpc_count %x = %d\n" 13138 .section .rodata.ftl_check_vpc.str1.1,"aMS",@progbits,1 13139.LC29: 13140 .string "...%s enter...\n" 13141.LC30: 13142 .string "FtlCheckVpc2 %x = %x %x\n" 13143.LC31: 13144 .string "free blk vpc error %x = %x %x\n" 13145 .section .rodata.ftl_map_blk_alloc_new_blk.str1.1,"aMS",@progbits,1 13146.LC10: 13147 .string "FtlFreeSysBlkQueueOut = %x, free count = %d\n" 13148 .section .rodata.ftl_scan_all_data.str1.1,"aMS",@progbits,1 13149.LC32: 13150 .string "ftl_scan_all_data = %x\n" 13151.LC33: 13152 .string "scan lpa = %x ppa= %x\n" 13153.LC34: 13154 .string "lpa = %x,addr= %x,spare= %x %x %x %x data=%x %x\n" 13155 .section .rodata.load_l2p_region.str1.1,"aMS",@progbits,1 13156.LC24: 13157 .string "region_id = %x phyAddr = %x\n" 13158.LC25: 13159 .string "map_ppn:" 13160.LC26: 13161 .string "load_l2p_region refresh = %x phyAddr = %x\n" 13162 .section .rodata.rk_ftl_garbage_collect.str1.1,"aMS",@progbits,1 13163.LC42: 13164 .string "g_gc_superblock_free %x %x %x %x %x\n" 13165.LC43: 13166 .string "lpa=%x, ppa=%x\n" 13167 .section .rodata.rknand_print_hex.str1.1,"aMS",@progbits,1 13168.LC2: 13169 .string "%s 0x%x:" 13170.LC3: 13171 .string "%x " 13172.LC4: 13173 .string "%02x " 13174.LC5: 13175 .string "\n" 13176 .section .rodata.sftl_init.str1.1,"aMS",@progbits,1 13177.LC49: 13178 .string "SFTL version: 5.0.56 20210329" 13179 .hidden free 13180