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