1/* 2 * Copyright (c) 2018 Fuzhou Rockchip Electronics Co., Ltd 3 * 4 * SPDX-License-Identifier: GPL-2.0 5 * date: 2018-08-02 6 */ 7 .arch armv8-a+nosimd 8 .file "rk_sftl.c" 9 .section .text.l2p_addr_tran.isra.0,"ax",@progbits 10 .align 2 11 .type l2p_addr_tran.isra.0, %function 12l2p_addr_tran.isra.0: 13 adrp x4, .LANCHOR0 14 add x4, x4, :lo12:.LANCHOR0 15 ldrh w3, [x4, 8] 16 ldrh w6, [x4, 10] 17 ldrh w4, [x4, 14] 18 cmp w4, 4 19 bne .L2 20 lsr w3, w3, 1 21 ubfiz w6, w6, 1, 15 22.L2: 23 lsr w5, w0, 10 24 and w0, w0, 1023 25 and w4, w5, 65535 26 and w5, w5, 65535 27 udiv w4, w4, w3 28 msub w3, w3, w4, w5 29 madd w3, w3, w6, w0 30 mov w0, 0 31 str w3, [x1] 32 str w4, [x2] 33 ret 34 .size l2p_addr_tran.isra.0, .-l2p_addr_tran.isra.0 35 .section .text.ftl_set_blk_mode.part.6,"ax",@progbits 36 .align 2 37 .type ftl_set_blk_mode.part.6, %function 38ftl_set_blk_mode.part.6: 39 and w0, w0, 65535 40 adrp x2, .LANCHOR1 41 ubfx x1, x0, 5, 11 42 ldr x3, [x2, #:lo12:.LANCHOR1] 43 lsl x1, x1, 2 44 mov w2, 1 45 lsl w2, w2, w0 46 ldr w0, [x3, x1] 47 orr w0, w0, w2 48 str w0, [x3, x1] 49 ret 50 .size ftl_set_blk_mode.part.6, .-ftl_set_blk_mode.part.6 51 .section .text.Ftl_log2,"ax",@progbits 52 .align 2 53 .global Ftl_log2 54 .type Ftl_log2, %function 55Ftl_log2: 56 mov w2, 1 57 mov w1, 0 58.L5: 59 cmp w2, w0 60 bls .L6 61 sub w0, w1, #1 62 ret 63.L6: 64 add w1, w1, 1 65 lsl w2, w2, 1 66 and w1, w1, 65535 67 b .L5 68 .size Ftl_log2, .-Ftl_log2 69 .section .text.FtlPrintInfo,"ax",@progbits 70 .align 2 71 .global FtlPrintInfo 72 .type FtlPrintInfo, %function 73FtlPrintInfo: 74 ret 75 .size FtlPrintInfo, .-FtlPrintInfo 76 .section .text.FtlSysBlkNumInit,"ax",@progbits 77 .align 2 78 .global FtlSysBlkNumInit 79 .type FtlSysBlkNumInit, %function 80FtlSysBlkNumInit: 81 and w0, w0, 65535 82 mov w1, 24 83 cmp w0, 24 84 adrp x2, .LANCHOR4 85 csel w0, w0, w1, cs 86 adrp x1, .LANCHOR2 87 and w0, w0, 65535 88 str w0, [x1, #:lo12:.LANCHOR2] 89 adrp x1, .LANCHOR3 90 ldrh w1, [x1, #:lo12:.LANCHOR3] 91 mul w1, w1, w0 92 str w1, [x2, #:lo12:.LANCHOR4] 93 adrp x2, .LANCHOR6 94 ldrh w2, [x2, #:lo12:.LANCHOR6] 95 sub w0, w2, w0 96 adrp x2, .LANCHOR5 97 strh w0, [x2, #:lo12:.LANCHOR5] 98 adrp x0, .LANCHOR8 99 ldr w0, [x0, #:lo12:.LANCHOR8] 100 sub w1, w0, w1 101 adrp x0, .LANCHOR7 102 str w1, [x0, #:lo12:.LANCHOR7] 103 mov w0, 0 104 ret 105 .size FtlSysBlkNumInit, .-FtlSysBlkNumInit 106 .section .text.FtlConstantsInit,"ax",@progbits 107 .align 2 108 .global FtlConstantsInit 109 .type FtlConstantsInit, %function 110FtlConstantsInit: 111 stp x29, x30, [sp, -16]! 112 mov x5, x0 113 adrp x1, .LANCHOR11 114 add x29, sp, 0 115 ldrh w2, [x0] 116 adrp x0, .LANCHOR9 117 ldrh w4, [x5, 2] 118 strh w2, [x0, #:lo12:.LANCHOR9] 119 adrp x0, .LANCHOR10 120 strh w4, [x0, #:lo12:.LANCHOR10] 121 ldrh w0, [x5, 4] 122 strh w0, [x1, #:lo12:.LANCHOR11] 123 ldrh w1, [x5, 14] 124 cmp w1, 4 125 bne .L10 126 ldrh w1, [x5, 6] 127 adrp x3, .LANCHOR6 128 lsr w1, w1, 1 129 strh w1, [x3, #:lo12:.LANCHOR6] 130 adrp x1, .LANCHOR12 131 mov w3, 8 132 strh w3, [x1, #:lo12:.LANCHOR12] 133.L10: 134 adrp x3, .LANCHOR13 135 add x3, x3, :lo12:.LANCHOR13 136 mov x1, 0 137.L11: 138 strb w1, [x1, x3] 139 add x1, x1, 1 140 cmp x1, 32 141 bne .L11 142 adrp x1, .LANCHOR14 143 mov w3, 5 144 cmp w2, 1 145 strh w3, [x1, #:lo12:.LANCHOR14] 146 adrp x3, .LANCHOR15 147 strh wzr, [x3, #:lo12:.LANCHOR15] 148 bne .L12 149 strh w2, [x1, #:lo12:.LANCHOR14] 150.L12: 151 adrp x1, .LANCHOR16 152 mov w2, 640 153 mul w4, w4, w0 154 strh w2, [x1, #:lo12:.LANCHOR16] 155 adrp x1, .LANCHOR3 156 and w4, w4, 65535 157 strh w4, [x1, #:lo12:.LANCHOR3] 158 adrp x1, .LANCHOR6 159 ldrh w3, [x1, #:lo12:.LANCHOR6] 160 adrp x1, .LANCHOR17 161 mul w0, w0, w3 162 and w0, w0, 65535 163 strh w0, [x1, #:lo12:.LANCHOR17] 164 bl Ftl_log2 165 ldrh w7, [x5, 12] 166 adrp x1, .LANCHOR18 167 adrp x8, .LANCHOR19 168 strh w0, [x1, #:lo12:.LANCHOR18] 169 adrp x0, .LANCHOR20 170 mul w1, w4, w7 171 strh w7, [x8, #:lo12:.LANCHOR19] 172 strh w7, [x0, #:lo12:.LANCHOR20] 173 adrp x0, .LANCHOR21 174 strh w1, [x0, #:lo12:.LANCHOR21] 175 adrp x0, .LANCHOR12 176 ldrh w6, [x0, #:lo12:.LANCHOR12] 177 mov w0, w6 178 bl Ftl_log2 179 and w1, w0, 65535 180 adrp x2, .LANCHOR22 181 adrp x10, .LANCHOR23 182 ldrh w5, [x5, 20] 183 strh w0, [x2, #:lo12:.LANCHOR22] 184 ubfiz w0, w6, 9, 7 185 strh w0, [x10, #:lo12:.LANCHOR23] 186 adrp x10, .LANCHOR24 187 ubfx w0, w0, 8, 8 188 strh w0, [x10, #:lo12:.LANCHOR24] 189 adrp x0, .LANCHOR25 190 strh w5, [x0, #:lo12:.LANCHOR25] 191 mul w0, w4, w3 192 adrp x5, .LANCHOR8 193 str w0, [x5, #:lo12:.LANCHOR8] 194 adrp x5, .LANCHOR26 195 mul w0, w0, w6 196 mul w6, w6, w7 197 mul w0, w0, w7 198 mov x7, x2 199 asr w0, w0, 11 200 str w0, [x5, #:lo12:.LANCHOR26] 201 mov w0, 5120 202 adrp x5, .LANCHOR27 203 sdiv w0, w0, w6 204 and w0, w0, 65535 205 cmp w0, 4 206 bls .L13 207.L19: 208 strh w0, [x5, #:lo12:.LANCHOR27] 209 adrp x2, .LANCHOR28 210 mov w0, 640 211 lsl w3, w3, 6 212 asr w0, w0, w1 213 add w0, w0, 2 214 add w1, w1, 9 215 strh w0, [x2, #:lo12:.LANCHOR28] 216 adrp x0, .LANCHOR29 217 cmp w4, 1 218 asr w3, w3, w1 219 adrp x1, .LANCHOR30 220 strh w3, [x0, #:lo12:.LANCHOR29] 221 and w3, w3, 65535 222 adrp x6, .LANCHOR2 223 mul w0, w3, w4 224 add w3, w3, 8 225 str w0, [x1, #:lo12:.LANCHOR30] 226 ldrh w0, [x5, #:lo12:.LANCHOR27] 227 udiv w0, w0, w4 228 mov x4, x1 229 add w3, w0, w3 230 beq .L15 231.L20: 232 str w3, [x6, #:lo12:.LANCHOR2] 233 ldrh w0, [x6, #:lo12:.LANCHOR2] 234 bl FtlSysBlkNumInit 235 ldr w1, [x6, #:lo12:.LANCHOR2] 236 adrp x0, .LANCHOR31 237 ldp x29, x30, [sp], 16 238 str w1, [x0, #:lo12:.LANCHOR31] 239 adrp x0, .LANCHOR7 240 ldrh w1, [x8, #:lo12:.LANCHOR19] 241 ldr w0, [x0, #:lo12:.LANCHOR7] 242 lsl w0, w0, 2 243 mul w0, w0, w1 244 ldrh w1, [x7, #:lo12:.LANCHOR22] 245 add w1, w1, 9 246 lsr w0, w0, w1 247 adrp x1, .LANCHOR32 248 add w0, w0, 2 249 strh w0, [x1, #:lo12:.LANCHOR32] 250 adrp x0, .LANCHOR33 251 mov w1, 32 252 strh w1, [x0, #:lo12:.LANCHOR33] 253 adrp x0, .LANCHOR34 254 str wzr, [x0, #:lo12:.LANCHOR34] 255 ldrh w0, [x5, #:lo12:.LANCHOR27] 256 add w0, w0, 3 257 strh w0, [x5, #:lo12:.LANCHOR27] 258 ldr w0, [x4, #:lo12:.LANCHOR30] 259 add w0, w0, 3 260 str w0, [x4, #:lo12:.LANCHOR30] 261 mov w0, 0 262 ret 263.L13: 264 mov w0, 4 265 b .L19 266.L15: 267 add w3, w3, 4 268 b .L20 269 .size FtlConstantsInit, .-FtlConstantsInit 270 .section .text.IsBlkInVendorPart,"ax",@progbits 271 .align 2 272 .global IsBlkInVendorPart 273 .type IsBlkInVendorPart, %function 274IsBlkInVendorPart: 275 adrp x1, .LANCHOR35 276 and w0, w0, 65535 277 ldrh w1, [x1, #:lo12:.LANCHOR35] 278 cbz w1, .L25 279 adrp x1, .LANCHOR27 280 ldrh w2, [x1, #:lo12:.LANCHOR27] 281 adrp x1, .LANCHOR36 282 ldr x3, [x1, #:lo12:.LANCHOR36] 283 mov x1, 0 284.L23: 285 cmp w2, w1, uxth 286 bhi .L24 287.L25: 288 mov w0, 0 289 ret 290.L24: 291 add x1, x1, 1 292 add x4, x3, x1, lsl 1 293 ldrh w4, [x4, -2] 294 cmp w4, w0 295 bne .L23 296 mov w0, 1 297 ret 298 .size IsBlkInVendorPart, .-IsBlkInVendorPart 299 .section .text.FtlCacheWriteBack,"ax",@progbits 300 .align 2 301 .global FtlCacheWriteBack 302 .type FtlCacheWriteBack, %function 303FtlCacheWriteBack: 304 mov w0, 0 305 ret 306 .size FtlCacheWriteBack, .-FtlCacheWriteBack 307 .section .text.sftl_get_density,"ax",@progbits 308 .align 2 309 .global sftl_get_density 310 .type sftl_get_density, %function 311sftl_get_density: 312 adrp x0, .LANCHOR34 313 ldr w0, [x0, #:lo12:.LANCHOR34] 314 ret 315 .size sftl_get_density, .-sftl_get_density 316 .section .text.FtlBbmMapBadBlock,"ax",@progbits 317 .align 2 318 .global FtlBbmMapBadBlock 319 .type FtlBbmMapBadBlock, %function 320FtlBbmMapBadBlock: 321 stp x29, x30, [sp, -32]! 322 and w1, w0, 65535 323 adrp x0, .LANCHOR17 324 mov w4, 1 325 add x29, sp, 0 326 ldrh w0, [x0, #:lo12:.LANCHOR17] 327 str x19, [sp, 16] 328 adrp x19, .LANCHOR37 329 add x19, x19, :lo12:.LANCHOR37 330 udiv w3, w1, w0 331 and w2, w3, 65535 332 msub w3, w3, w0, w1 333 add x0, x19, x2, uxth 3 334 and w3, w3, 65535 335 ldr x0, [x0, 32] 336 ubfx x5, x3, 5, 11 337 lsl x5, x5, 2 338 lsl w4, w4, w3 339 ldr w6, [x0, x5] 340 orr w4, w4, w6 341 str w4, [x0, x5] 342 adrp x0, .LC0 343 add x0, x0, :lo12:.LC0 344 bl printf 345 ldrh w0, [x19, 6] 346 add w0, w0, 1 347 strh w0, [x19, 6] 348 mov w0, 0 349 ldr x19, [sp, 16] 350 ldp x29, x30, [sp], 32 351 ret 352 .size FtlBbmMapBadBlock, .-FtlBbmMapBadBlock 353 .section .text.FtlBbmIsBadBlock,"ax",@progbits 354 .align 2 355 .global FtlBbmIsBadBlock 356 .type FtlBbmIsBadBlock, %function 357FtlBbmIsBadBlock: 358 adrp x1, .LANCHOR17 359 and w0, w0, 65535 360 ldrh w1, [x1, #:lo12:.LANCHOR17] 361 udiv w2, w0, w1 362 msub w0, w2, w1, w0 363 adrp x1, .LANCHOR37 364 add x1, x1, :lo12:.LANCHOR37 365 add x2, x1, x2, uxth 3 366 and w0, w0, 65535 367 ubfx x3, x0, 5, 11 368 ldr x1, [x2, 32] 369 ldr w1, [x1, x3, lsl 2] 370 lsr w0, w1, w0 371 and w0, w0, 1 372 ret 373 .size FtlBbmIsBadBlock, .-FtlBbmIsBadBlock 374 .section .text.FtlBbtInfoPrint,"ax",@progbits 375 .align 2 376 .global FtlBbtInfoPrint 377 .type FtlBbtInfoPrint, %function 378FtlBbtInfoPrint: 379 ret 380 .size FtlBbtInfoPrint, .-FtlBbtInfoPrint 381 .section .text.FtlBbtCalcTotleCnt,"ax",@progbits 382 .align 2 383 .global FtlBbtCalcTotleCnt 384 .type FtlBbtCalcTotleCnt, %function 385FtlBbtCalcTotleCnt: 386 adrp x0, .LANCHOR17 387 mov w4, 0 388 mov w5, 0 389 ldrh w6, [x0, #:lo12:.LANCHOR17] 390 adrp x0, .LANCHOR10 391 ldrh w0, [x0, #:lo12:.LANCHOR10] 392 mul w6, w6, w0 393 cmp w4, w6 394 blt .L43 395 mov w0, w5 396 ret 397.L43: 398 stp x29, x30, [sp, -16]! 399 add x29, sp, 0 400.L36: 401 mov w0, w4 402 bl FtlBbmIsBadBlock 403 cbz w0, .L35 404 add w5, w5, 1 405 and w5, w5, 65535 406.L35: 407 add w4, w4, 1 408 and w4, w4, 65535 409 cmp w4, w6 410 blt .L36 411 mov w0, w5 412 ldp x29, x30, [sp], 16 413 ret 414 .size FtlBbtCalcTotleCnt, .-FtlBbtCalcTotleCnt 415 .section .text.V2P_block,"ax",@progbits 416 .align 2 417 .global V2P_block 418 .type V2P_block, %function 419V2P_block: 420 adrp x2, .LANCHOR11 421 and w0, w0, 65535 422 adrp x4, .LANCHOR17 423 and w1, w1, 65535 424 ldrh w2, [x2, #:lo12:.LANCHOR11] 425 ldrh w4, [x4, #:lo12:.LANCHOR17] 426 udiv w3, w0, w2 427 msub w0, w3, w2, w0 428 madd w2, w2, w1, w0 429 madd w0, w3, w4, w2 430 ret 431 .size V2P_block, .-V2P_block 432 .section .text.P2V_plane,"ax",@progbits 433 .align 2 434 .global P2V_plane 435 .type P2V_plane, %function 436P2V_plane: 437 and w3, w0, 65535 438 adrp x0, .LANCHOR11 439 ldrh w1, [x0, #:lo12:.LANCHOR11] 440 adrp x0, .LANCHOR17 441 ldrh w2, [x0, #:lo12:.LANCHOR17] 442 udiv w0, w3, w1 443 udiv w2, w3, w2 444 msub w0, w0, w1, w3 445 madd w0, w1, w2, w0 446 ret 447 .size P2V_plane, .-P2V_plane 448 .section .text.P2V_block_in_plane,"ax",@progbits 449 .align 2 450 .global P2V_block_in_plane 451 .type P2V_block_in_plane, %function 452P2V_block_in_plane: 453 and w2, w0, 65535 454 adrp x0, .LANCHOR17 455 ldrh w1, [x0, #:lo12:.LANCHOR17] 456 udiv w0, w2, w1 457 msub w0, w0, w1, w2 458 adrp x1, .LANCHOR11 459 ldrh w1, [x1, #:lo12:.LANCHOR11] 460 and w0, w0, 65535 461 udiv w0, w0, w1 462 ret 463 .size P2V_block_in_plane, .-P2V_block_in_plane 464 .section .text.ftl_cmp_data_ver,"ax",@progbits 465 .align 2 466 .global ftl_cmp_data_ver 467 .type ftl_cmp_data_ver, %function 468ftl_cmp_data_ver: 469 cmp w0, w1 470 mov w2, -2147483648 471 bls .L48 472 sub w1, w0, w1 473 cmp w1, w2 474 cset w0, ls 475 ret 476.L48: 477 sub w1, w1, w0 478 cmp w1, w2 479 cset w0, hi 480 ret 481 .size ftl_cmp_data_ver, .-ftl_cmp_data_ver 482 .section .text.FtlFreeSysBlkQueueEmpty,"ax",@progbits 483 .align 2 484 .global FtlFreeSysBlkQueueEmpty 485 .type FtlFreeSysBlkQueueEmpty, %function 486FtlFreeSysBlkQueueEmpty: 487 adrp x0, .LANCHOR38+6 488 ldrh w0, [x0, #:lo12:.LANCHOR38+6] 489 cmp w0, 0 490 cset w0, eq 491 ret 492 .size FtlFreeSysBlkQueueEmpty, .-FtlFreeSysBlkQueueEmpty 493 .section .text.FtlFreeSysBlkQueueFull,"ax",@progbits 494 .align 2 495 .global FtlFreeSysBlkQueueFull 496 .type FtlFreeSysBlkQueueFull, %function 497FtlFreeSysBlkQueueFull: 498 adrp x0, .LANCHOR38+6 499 ldrh w0, [x0, #:lo12:.LANCHOR38+6] 500 cmp w0, 1024 501 cset w0, eq 502 ret 503 .size FtlFreeSysBlkQueueFull, .-FtlFreeSysBlkQueueFull 504 .section .text.FtlFreeSysBLkSort,"ax",@progbits 505 .align 2 506 .global FtlFreeSysBLkSort 507 .type FtlFreeSysBLkSort, %function 508FtlFreeSysBLkSort: 509 adrp x0, .LANCHOR38 510 add x1, x0, :lo12:.LANCHOR38 511 ldrh w2, [x1, 6] 512 cbz w2, .L52 513 adrp x2, .LANCHOR39+28 514 ldrh w3, [x1, 2] 515 mov w6, 0 516 mov w4, 0 517 ldrh w5, [x2, #:lo12:.LANCHOR39+28] 518 ldrh w2, [x1, 4] 519 and w5, w5, 31 520.L54: 521 cmp w5, w4 522 bgt .L55 523 cbz w6, .L52 524 add x0, x0, :lo12:.LANCHOR38 525 strh w3, [x0, 2] 526 strh w2, [x0, 4] 527.L52: 528 ret 529.L55: 530 add x6, x1, x3, sxtw 1 531 add w4, w4, 1 532 add w3, w3, 1 533 and w4, w4, 65535 534 and w3, w3, 1023 535 ldrh w7, [x6, 8] 536 add x6, x1, x2, sxtw 1 537 strh w7, [x6, 8] 538 mov w6, 1 539 add w2, w2, w6 540 and w2, w2, 1023 541 b .L54 542 .size FtlFreeSysBLkSort, .-FtlFreeSysBLkSort 543 .section .text.IsInFreeQueue,"ax",@progbits 544 .align 2 545 .global IsInFreeQueue 546 .type IsInFreeQueue, %function 547IsInFreeQueue: 548 adrp x1, .LANCHOR38 549 add x1, x1, :lo12:.LANCHOR38 550 and w0, w0, 65535 551 ldrh w4, [x1, 6] 552 cmp w4, 1024 553 beq .L65 554 ldrh w5, [x1, 2] 555 mov w3, 0 556.L63: 557 cmp w3, w4 558 bcc .L64 559.L65: 560 mov w0, 0 561 ret 562.L64: 563 add w2, w3, w5 564 ubfiz x2, x2, 1, 10 565 add x2, x1, x2 566 ldrh w2, [x2, 8] 567 cmp w2, w0 568 beq .L66 569 add w3, w3, 1 570 b .L63 571.L66: 572 mov w0, 1 573 ret 574 .size IsInFreeQueue, .-IsInFreeQueue 575 .section .text.insert_data_list,"ax",@progbits 576 .align 2 577 .global insert_data_list 578 .type insert_data_list, %function 579insert_data_list: 580 adrp x1, .LANCHOR5 581 and w0, w0, 65535 582 ldrh w14, [x1, #:lo12:.LANCHOR5] 583 cmp w14, w0 584 bls .L83 585 adrp x1, .LANCHOR40 586 mov w3, 6 587 ldr x6, [x1, #:lo12:.LANCHOR40] 588 umull x13, w0, w3 589 mov w1, -1 590 add x5, x6, x13 591 strh w1, [x5, 2] 592 strh w1, [x6, x13] 593 adrp x1, .LANCHOR41 594 mov x15, x1 595 ldr x12, [x1, #:lo12:.LANCHOR41] 596 cbnz x12, .L70 597 str x5, [x1, #:lo12:.LANCHOR41] 598.L83: 599 mov w0, 0 600 ret 601.L70: 602 stp x29, x30, [sp, -32]! 603 adrp x1, .LANCHOR42 604 ubfiz x2, x0, 1, 16 605 mov x4, -6148914691236517206 606 add x29, sp, 0 607 ldr x16, [x1, #:lo12:.LANCHOR42] 608 movk x4, 0xaaab, lsl 0 609 ldrh w1, [x5, 4] 610 mov w8, -1 611 mov w11, w8 612 stp x19, x20, [sp, 16] 613 cmp w1, 0 614 mov w20, 65535 615 ldrh w7, [x16, x2] 616 mul w7, w7, w1 617 sub x1, x12, x6 618 asr x1, x1, 1 619 csel w7, w7, w8, ne 620 mov w8, w3 621 mul x1, x1, x4 622 adrp x4, .LANCHOR43 623 ldr x17, [x4, #:lo12:.LANCHOR43] 624 and w1, w1, 65535 625 mov x4, x12 626 add x10, x17, x2 627 mov w2, 0 628.L78: 629 add w2, w2, 1 630 and w2, w2, 65535 631 cmp w14, w2 632 bcc .L69 633 cmp w1, w0 634 beq .L69 635 ubfiz x30, x1, 1, 16 636 ldrh w19, [x4, 4] 637 cmp w19, 0 638 ldrh w3, [x16, x30] 639 mul w3, w3, w19 640 csel w3, w3, w11, ne 641 cmp w7, w3 642 bne .L74 643 ldrh w19, [x17, x30] 644 ldrh w3, [x10] 645 cmp w19, w3 646 bcc .L76 647.L75: 648 strh w1, [x6, x13] 649 cmp x4, x12 650 ldrh w1, [x4, 2] 651 strh w1, [x5, 2] 652 bne .L79 653 strh w0, [x4, 2] 654 str x5, [x15, #:lo12:.LANCHOR41] 655 b .L69 656.L74: 657 bcc .L75 658.L76: 659 ldrh w3, [x4] 660 cmp w3, w20 661 bne .L77 662 strh w1, [x5, 2] 663 strh w0, [x4] 664 adrp x0, .LANCHOR44 665 str x5, [x0, #:lo12:.LANCHOR44] 666.L69: 667 mov w0, 0 668 ldp x19, x20, [sp, 16] 669 ldp x29, x30, [sp], 32 670 ret 671.L77: 672 umaddl x4, w3, w8, x6 673 mov w1, w3 674 b .L78 675.L79: 676 ldrh w1, [x4, 2] 677 mov w2, 6 678 umull x1, w1, w2 679 strh w0, [x6, x1] 680 strh w0, [x4, 2] 681 b .L69 682 .size insert_data_list, .-insert_data_list 683 .section .text.INSERT_DATA_LIST,"ax",@progbits 684 .align 2 685 .global INSERT_DATA_LIST 686 .type INSERT_DATA_LIST, %function 687INSERT_DATA_LIST: 688 stp x29, x30, [sp, -16]! 689 add x29, sp, 0 690 bl insert_data_list 691 adrp x1, .LANCHOR45 692 ldrh w0, [x1, #:lo12:.LANCHOR45] 693 add w0, w0, 1 694 and w0, w0, 65535 695 strh w0, [x1, #:lo12:.LANCHOR45] 696 adrp x1, .LANCHOR5 697 ldrh w1, [x1, #:lo12:.LANCHOR5] 698 cmp w1, w0 699 bcs .L85 700 ldp x29, x30, [sp], 16 701 mov w2, 221 702 adrp x1, .LANCHOR46 703 adrp x0, .LC1 704 add x1, x1, :lo12:.LANCHOR46 705 add x0, x0, :lo12:.LC1 706 b printf 707.L85: 708 ldp x29, x30, [sp], 16 709 ret 710 .size INSERT_DATA_LIST, .-INSERT_DATA_LIST 711 .section .text.insert_free_list,"ax",@progbits 712 .align 2 713 .global insert_free_list 714 .type insert_free_list, %function 715insert_free_list: 716 and w0, w0, 65535 717 mov w7, 65535 718 cmp w0, w7 719 beq .L89 720 adrp x1, .LANCHOR40 721 mov w6, 6 722 ldr x3, [x1, #:lo12:.LANCHOR40] 723 umull x8, w0, w6 724 mov w1, -1 725 add x4, x3, x8 726 strh w1, [x4, 2] 727 strh w1, [x3, x8] 728 adrp x1, .LANCHOR47 729 mov x12, x1 730 ldr x5, [x1, #:lo12:.LANCHOR47] 731 cbnz x5, .L90 732 str x4, [x1, #:lo12:.LANCHOR47] 733.L89: 734 mov w0, 0 735 ret 736.L90: 737 adrp x1, .LANCHOR43 738 mov x2, -6148914691236517206 739 movk x2, 0xaaab, lsl 0 740 ldr x11, [x1, #:lo12:.LANCHOR43] 741 ubfiz x1, x0, 1, 16 742 ldrh w13, [x11, x1] 743 sub x1, x5, x3 744 asr x1, x1, 1 745 mul x1, x1, x2 746 mov x2, x5 747 and w1, w1, 65535 748.L93: 749 ubfiz x10, x1, 1, 16 750 ldrh w10, [x11, x10] 751 cmp w10, w13 752 bcs .L91 753 ldrh w10, [x2] 754 cmp w10, w7 755 bne .L92 756 strh w1, [x4, 2] 757 strh w0, [x2] 758 b .L89 759.L92: 760 umaddl x2, w10, w6, x3 761 mov w1, w10 762 b .L93 763.L91: 764 ldrh w6, [x2, 2] 765 cmp x2, x5 766 strh w6, [x4, 2] 767 strh w1, [x3, x8] 768 bne .L94 769 strh w0, [x2, 2] 770 str x4, [x12, #:lo12:.LANCHOR47] 771 b .L89 772.L94: 773 ldrh w1, [x2, 2] 774 mov w4, 6 775 umull x1, w1, w4 776 strh w0, [x3, x1] 777 strh w0, [x2, 2] 778 b .L89 779 .size insert_free_list, .-insert_free_list 780 .section .text.INSERT_FREE_LIST,"ax",@progbits 781 .align 2 782 .global INSERT_FREE_LIST 783 .type INSERT_FREE_LIST, %function 784INSERT_FREE_LIST: 785 stp x29, x30, [sp, -16]! 786 add x29, sp, 0 787 bl insert_free_list 788 adrp x1, .LANCHOR48 789 ldrh w0, [x1, #:lo12:.LANCHOR48] 790 add w0, w0, 1 791 and w0, w0, 65535 792 strh w0, [x1, #:lo12:.LANCHOR48] 793 adrp x1, .LANCHOR5 794 ldrh w1, [x1, #:lo12:.LANCHOR5] 795 cmp w1, w0 796 bcs .L95 797 ldp x29, x30, [sp], 16 798 mov w2, 214 799 adrp x1, .LANCHOR49 800 adrp x0, .LC1 801 add x1, x1, :lo12:.LANCHOR49 802 add x0, x0, :lo12:.LC1 803 b printf 804.L95: 805 ldp x29, x30, [sp], 16 806 ret 807 .size INSERT_FREE_LIST, .-INSERT_FREE_LIST 808 .section .text.List_remove_node,"ax",@progbits 809 .align 2 810 .global List_remove_node 811 .type List_remove_node, %function 812List_remove_node: 813 stp x29, x30, [sp, -64]! 814 and w1, w1, 65535 815 add x29, sp, 0 816 stp x19, x20, [sp, 16] 817 adrp x20, .LANCHOR40 818 stp x21, x22, [sp, 32] 819 mov x22, x0 820 mov w0, 6 821 str x23, [sp, 48] 822 ldr x23, [x20, #:lo12:.LANCHOR40] 823 umull x21, w1, w0 824 mov w0, 65535 825 add x19, x23, x21 826 ldrh w1, [x19, 2] 827 cmp w1, w0 828 bne .L99 829 ldr x0, [x22] 830 cmp x19, x0 831 beq .L99 832 adrp x1, .LANCHOR50 833 adrp x0, .LC1 834 mov w2, 379 835 add x1, x1, :lo12:.LANCHOR50 836 add x0, x0, :lo12:.LC1 837 bl printf 838.L99: 839 ldr x0, [x22] 840 mov w1, 65535 841 cmp x19, x0 842 ldrh w0, [x23, x21] 843 bne .L100 844 cmp w0, w1 845 bne .L101 846 str xzr, [x22] 847.L102: 848 mov w0, -1 849 strh w0, [x23, x21] 850 strh w0, [x19, 2] 851 mov w0, 0 852 ldp x19, x20, [sp, 16] 853 ldp x21, x22, [sp, 32] 854 ldr x23, [sp, 48] 855 ldp x29, x30, [sp], 64 856 ret 857.L101: 858 ldr x1, [x20, #:lo12:.LANCHOR40] 859 mov w2, 6 860 umaddl x0, w0, w2, x1 861 mov w1, -1 862 str x0, [x22] 863 strh w1, [x0, 2] 864 b .L102 865.L100: 866 cmp w0, w1 867 ldrh w1, [x19, 2] 868 bne .L103 869 cmp w1, w0 870 beq .L102 871 mov w0, 6 872 mov w2, -1 873 umull x1, w1, w0 874 ldr x0, [x20, #:lo12:.LANCHOR40] 875 strh w2, [x0, x1] 876 b .L102 877.L103: 878 ldr x2, [x20, #:lo12:.LANCHOR40] 879 mov w3, 6 880 umaddl x4, w0, w3, x2 881 strh w1, [x4, 2] 882 ldrh w1, [x19, 2] 883 umull x1, w1, w3 884 strh w0, [x2, x1] 885 b .L102 886 .size List_remove_node, .-List_remove_node 887 .section .text.List_pop_index_node,"ax",@progbits 888 .align 2 889 .global List_pop_index_node 890 .type List_pop_index_node, %function 891List_pop_index_node: 892 ldr x2, [x0] 893 cbz x2, .L111 894 stp x29, x30, [sp, -32]! 895 adrp x3, .LANCHOR40 896 and w1, w1, 65535 897 mov w4, 65535 898 add x29, sp, 0 899 str x19, [sp, 16] 900 mov w5, 6 901 ldr x19, [x3, #:lo12:.LANCHOR40] 902.L107: 903 cbnz w1, .L108 904.L110: 905 sub x19, x2, x19 906 mov x2, -6148914691236517206 907 asr x19, x19, 1 908 movk x2, 0xaaab, lsl 0 909 mul x19, x19, x2 910 and w19, w19, 65535 911 mov w1, w19 912 bl List_remove_node 913 mov w0, w19 914 ldr x19, [sp, 16] 915 ldp x29, x30, [sp], 32 916 ret 917.L108: 918 ldrh w3, [x2] 919 cmp w3, w4 920 beq .L110 921 sub w1, w1, #1 922 umaddl x2, w3, w5, x19 923 and w1, w1, 65535 924 b .L107 925.L111: 926 mov w0, 65535 927 ret 928 .size List_pop_index_node, .-List_pop_index_node 929 .section .text.List_pop_head_node,"ax",@progbits 930 .align 2 931 .global List_pop_head_node 932 .type List_pop_head_node, %function 933List_pop_head_node: 934 mov w1, 0 935 b List_pop_index_node 936 .size List_pop_head_node, .-List_pop_head_node 937 .section .text.List_get_gc_head_node,"ax",@progbits 938 .align 2 939 .global List_get_gc_head_node 940 .type List_get_gc_head_node, %function 941List_get_gc_head_node: 942 and w2, w0, 65535 943 adrp x0, .LANCHOR41 944 ldr x1, [x0, #:lo12:.LANCHOR41] 945 cbz x1, .L122 946 adrp x0, .LANCHOR40 947 mov w4, 6 948 ldr x3, [x0, #:lo12:.LANCHOR40] 949 mov w0, 65535 950.L119: 951 cbz w2, .L120 952 ldrh w1, [x1] 953 cmp w1, w0 954 bne .L121 955 ret 956.L121: 957 sub w2, w2, #1 958 umaddl x1, w1, w4, x3 959 and w2, w2, 65535 960 b .L119 961.L122: 962 mov w0, 65535 963 ret 964.L120: 965 sub x0, x1, x3 966 mov x1, -6148914691236517206 967 asr x0, x0, 1 968 movk x1, 0xaaab, lsl 0 969 mul x0, x0, x1 970 and w0, w0, 65535 971 ret 972 .size List_get_gc_head_node, .-List_get_gc_head_node 973 .section .text.List_update_data_list,"ax",@progbits 974 .align 2 975 .global List_update_data_list 976 .type List_update_data_list, %function 977List_update_data_list: 978 stp x29, x30, [sp, -80]! 979 add x29, sp, 0 980 stp x19, x20, [sp, 16] 981 and w19, w0, 65535 982 adrp x0, .LANCHOR51 983 stp x21, x22, [sp, 32] 984 stp x23, x24, [sp, 48] 985 ldrh w0, [x0, #:lo12:.LANCHOR51] 986 stp x25, x26, [sp, 64] 987 cmp w0, w19 988 beq .L125 989 adrp x0, .LANCHOR52 990 ldrh w0, [x0, #:lo12:.LANCHOR52] 991 cmp w0, w19 992 beq .L125 993 adrp x0, .LANCHOR53 994 ldrh w0, [x0, #:lo12:.LANCHOR53] 995 cmp w0, w19 996 beq .L125 997 adrp x0, .LANCHOR40 998 mov w21, 6 999 adrp x24, .LANCHOR41 1000 mov x26, x0 1001 umull x21, w19, w21 1002 ldr x23, [x0, #:lo12:.LANCHOR40] 1003 ldr x1, [x24, #:lo12:.LANCHOR41] 1004 add x22, x23, x21 1005 cmp x22, x1 1006 beq .L125 1007 adrp x1, .LANCHOR42 1008 ubfiz x0, x19, 1, 16 1009 mov x25, x1 1010 ldr x2, [x1, #:lo12:.LANCHOR42] 1011 mov w1, 65535 1012 ldrh w20, [x2, x0] 1013 ldrh w0, [x22, 4] 1014 cmp w0, 0 1015 mul w20, w20, w0 1016 ldrh w0, [x22, 2] 1017 csinv w20, w20, wzr, ne 1018 cmp w0, w1 1019 bne .L128 1020 ldrh w1, [x23, x21] 1021 cmp w1, w0 1022 bne .L128 1023 adrp x1, .LANCHOR54 1024 adrp x0, .LC1 1025 mov w2, 470 1026 add x1, x1, :lo12:.LANCHOR54 1027 add x0, x0, :lo12:.LC1 1028 bl printf 1029.L128: 1030 ldrh w0, [x22, 2] 1031 mov w1, 65535 1032 cmp w0, w1 1033 bne .L129 1034 ldrh w1, [x23, x21] 1035 cmp w1, w0 1036 beq .L125 1037.L129: 1038 mov w1, 6 1039 mov x2, -6148914691236517206 1040 movk x2, 0xaaab, lsl 0 1041 umull x0, w0, w1 1042 asr x1, x0, 1 1043 mul x1, x1, x2 1044 ldr x2, [x25, #:lo12:.LANCHOR42] 1045 ldrh w1, [x2, x1, lsl 1] 1046 ldr x2, [x26, #:lo12:.LANCHOR40] 1047 add x0, x2, x0 1048 ldrh w2, [x0, 4] 1049 cmp w2, 0 1050 mul w0, w1, w2 1051 csinv w0, w0, wzr, ne 1052 cmp w20, w0 1053 bcs .L125 1054 adrp x20, .LANCHOR45 1055 mov w1, w19 1056 add x0, x24, :lo12:.LANCHOR41 1057 bl List_remove_node 1058 ldrh w0, [x20, #:lo12:.LANCHOR45] 1059 cbnz w0, .L131 1060 adrp x1, .LANCHOR54 1061 adrp x0, .LC1 1062 mov w2, 481 1063 add x1, x1, :lo12:.LANCHOR54 1064 add x0, x0, :lo12:.LC1 1065 bl printf 1066.L131: 1067 ldrh w0, [x20, #:lo12:.LANCHOR45] 1068 sub w0, w0, #1 1069 strh w0, [x20, #:lo12:.LANCHOR45] 1070 mov w0, w19 1071 bl INSERT_DATA_LIST 1072.L125: 1073 mov w0, 0 1074 ldp x19, x20, [sp, 16] 1075 ldp x21, x22, [sp, 32] 1076 ldp x23, x24, [sp, 48] 1077 ldp x25, x26, [sp, 64] 1078 ldp x29, x30, [sp], 80 1079 ret 1080 .size List_update_data_list, .-List_update_data_list 1081 .section .text.select_l2p_ram_region,"ax",@progbits 1082 .align 2 1083 .global select_l2p_ram_region 1084 .type select_l2p_ram_region, %function 1085select_l2p_ram_region: 1086 stp x29, x30, [sp, -32]! 1087 adrp x0, .LANCHOR33 1088 mov x1, 0 1089 mov w3, 65535 1090 add x29, sp, 0 1091 ldrh w2, [x0, #:lo12:.LANCHOR33] 1092 adrp x0, .LANCHOR55 1093 str x19, [sp, 16] 1094 ldr x0, [x0, #:lo12:.LANCHOR55] 1095.L136: 1096 and w19, w1, 65535 1097 cmp w19, w2 1098 bcc .L138 1099 add x3, x0, 4 1100 mov w19, w2 1101 mov w5, -2147483648 1102 mov w1, 0 1103.L139: 1104 cmp w1, w2 1105 bne .L141 1106 cmp w19, w2 1107 bcc .L137 1108 adrp x1, .LANCHOR56 1109 mov w19, w2 1110 mov w3, -1 1111 ldrh w4, [x1, #:lo12:.LANCHOR56] 1112 mov w1, 0 1113.L142: 1114 cmp w1, w2 1115 bne .L144 1116 cmp w19, w1 1117 bcc .L137 1118 mov w2, 784 1119 adrp x1, .LANCHOR57 1120 adrp x0, .LC1 1121 add x1, x1, :lo12:.LANCHOR57 1122 add x0, x0, :lo12:.LC1 1123 bl printf 1124 b .L137 1125.L138: 1126 add x1, x1, 1 1127 add x4, x0, x1, lsl 4 1128 ldrh w4, [x4, -16] 1129 cmp w4, w3 1130 bne .L136 1131.L137: 1132 mov w0, w19 1133 ldr x19, [sp, 16] 1134 ldp x29, x30, [sp], 32 1135 ret 1136.L141: 1137 ldr w4, [x3] 1138 tbnz w4, #31, .L140 1139 cmp w5, w4 1140 bls .L140 1141 mov w5, w4 1142 mov w19, w1 1143.L140: 1144 add w1, w1, 1 1145 add x3, x3, 16 1146 and w1, w1, 65535 1147 b .L139 1148.L144: 1149 ldr w6, [x0, 4] 1150 cmp w3, w6 1151 bls .L143 1152 ldrh w5, [x0] 1153 cmp w5, w4 1154 csel w3, w3, w6, eq 1155 csel w19, w19, w1, eq 1156.L143: 1157 add w1, w1, 1 1158 add x0, x0, 16 1159 and w1, w1, 65535 1160 b .L142 1161 .size select_l2p_ram_region, .-select_l2p_ram_region 1162 .section .text.FtlUpdateVaildLpn,"ax",@progbits 1163 .align 2 1164 .global FtlUpdateVaildLpn 1165 .type FtlUpdateVaildLpn, %function 1166FtlUpdateVaildLpn: 1167 adrp x2, .LANCHOR58 1168 mov x3, x2 1169 ldrh w1, [x2, #:lo12:.LANCHOR58] 1170 cmp w1, 4 1171 bhi .L147 1172 cbnz w0, .L147 1173 add w1, w1, 1 1174 strh w1, [x2, #:lo12:.LANCHOR58] 1175 ret 1176.L147: 1177 adrp x1, .LANCHOR5 1178 adrp x0, .LANCHOR59 1179 strh wzr, [x3, #:lo12:.LANCHOR58] 1180 mov w2, 0 1181 ldrh w5, [x1, #:lo12:.LANCHOR5] 1182 adrp x1, .LANCHOR42 1183 str wzr, [x0, #:lo12:.LANCHOR59] 1184 mov w3, 0 1185 ldr x6, [x1, #:lo12:.LANCHOR42] 1186 mov w7, 65535 1187 mov x1, 0 1188.L148: 1189 cmp w5, w1, uxth 1190 bhi .L150 1191 cbz w3, .L146 1192 str w2, [x0, #:lo12:.LANCHOR59] 1193.L146: 1194 ret 1195.L150: 1196 ldrh w4, [x6, x1, lsl 1] 1197 cmp w4, w7 1198 beq .L149 1199 add w2, w2, w4 1200 mov w3, 1 1201.L149: 1202 add x1, x1, 1 1203 b .L148 1204 .size FtlUpdateVaildLpn, .-FtlUpdateVaildLpn 1205 .section .text.ftl_set_blk_mode,"ax",@progbits 1206 .align 2 1207 .global ftl_set_blk_mode 1208 .type ftl_set_blk_mode, %function 1209ftl_set_blk_mode: 1210 and w0, w0, 65535 1211 cbz w1, .L157 1212 b ftl_set_blk_mode.part.6 1213.L157: 1214 adrp x1, .LANCHOR1 1215 ubfx x2, x0, 5, 11 1216 lsl x2, x2, 2 1217 ldr x3, [x1, #:lo12:.LANCHOR1] 1218 mov w1, 1 1219 lsl w0, w1, w0 1220 ldr w1, [x3, x2] 1221 bic w0, w1, w0 1222 str w0, [x3, x2] 1223 ret 1224 .size ftl_set_blk_mode, .-ftl_set_blk_mode 1225 .section .text.ftl_get_blk_mode,"ax",@progbits 1226 .align 2 1227 .global ftl_get_blk_mode 1228 .type ftl_get_blk_mode, %function 1229ftl_get_blk_mode: 1230 and w1, w0, 65535 1231 adrp x0, .LANCHOR1 1232 ldr x0, [x0, #:lo12:.LANCHOR1] 1233 ubfx x2, x1, 5, 11 1234 ldr w0, [x0, x2, lsl 2] 1235 lsr w0, w0, w1 1236 and w0, w0, 1 1237 ret 1238 .size ftl_get_blk_mode, .-ftl_get_blk_mode 1239 .section .text.ftl_sb_update_avl_pages,"ax",@progbits 1240 .align 2 1241 .global ftl_sb_update_avl_pages 1242 .type ftl_sb_update_avl_pages, %function 1243ftl_sb_update_avl_pages: 1244 and w2, w2, 65535 1245 and w6, w1, 65535 1246 ubfiz x4, x2, 1, 16 1247 adrp x1, .LANCHOR3 1248 add x4, x4, 16 1249 strh wzr, [x0, 4] 1250 add x4, x0, x4 1251 ldrh w3, [x1, #:lo12:.LANCHOR3] 1252 mov w1, 65535 1253.L160: 1254 cmp w2, w3 1255 bcc .L162 1256 adrp x1, .LANCHOR19 1257 ubfiz x3, x3, 1, 16 1258 add x3, x3, 16 1259 add x2, x0, 16 1260 ldrh w1, [x1, #:lo12:.LANCHOR19] 1261 add x3, x0, x3 1262 mov w5, 65535 1263 sub w1, w1, #1 1264 and w1, w1, 65535 1265 sub w1, w1, w6 1266.L163: 1267 cmp x2, x3 1268 bne .L165 1269 ret 1270.L162: 1271 ldrh w5, [x4] 1272 cmp w5, w1 1273 beq .L161 1274 ldrh w5, [x0, 4] 1275 add w5, w5, 1 1276 strh w5, [x0, 4] 1277.L161: 1278 add w2, w2, 1 1279 add x4, x4, 2 1280 and w2, w2, 65535 1281 b .L160 1282.L165: 1283 ldrh w4, [x2] 1284 cmp w4, w5 1285 beq .L164 1286 ldrh w4, [x0, 4] 1287 add w4, w1, w4 1288 strh w4, [x0, 4] 1289.L164: 1290 add x2, x2, 2 1291 b .L163 1292 .size ftl_sb_update_avl_pages, .-ftl_sb_update_avl_pages 1293 .section .text.FtlSlcSuperblockCheck,"ax",@progbits 1294 .align 2 1295 .global FtlSlcSuperblockCheck 1296 .type FtlSlcSuperblockCheck, %function 1297FtlSlcSuperblockCheck: 1298 ldrh w1, [x0, 4] 1299 cbz w1, .L166 1300 ldrh w2, [x0] 1301 mov w1, 65535 1302 cmp w2, w1 1303 beq .L166 1304 ldrb w2, [x0, 6] 1305 add x2, x2, 8 1306 ldrh w3, [x0, x2, lsl 1] 1307 adrp x2, .LANCHOR3 1308 ldrh w4, [x2, #:lo12:.LANCHOR3] 1309 mov w2, w1 1310.L169: 1311 cmp w3, w2 1312 beq .L171 1313.L166: 1314 ret 1315.L171: 1316 ldrb w1, [x0, 6] 1317 add w1, w1, 1 1318 and w1, w1, 255 1319 strb w1, [x0, 6] 1320 cmp w1, w4 1321 bne .L170 1322 ldrh w1, [x0, 2] 1323 strb wzr, [x0, 6] 1324 add w1, w1, 1 1325 strh w1, [x0, 2] 1326.L170: 1327 ldrb w1, [x0, 6] 1328 add x1, x1, 8 1329 ldrh w3, [x0, x1, lsl 1] 1330 b .L169 1331 .size FtlSlcSuperblockCheck, .-FtlSlcSuperblockCheck 1332 .section .text.make_superblock,"ax",@progbits 1333 .align 2 1334 .global make_superblock 1335 .type make_superblock, %function 1336make_superblock: 1337 stp x29, x30, [sp, -32]! 1338 add x29, sp, 0 1339 ldrh w1, [x0] 1340 str x19, [sp, 16] 1341 mov x19, x0 1342 adrp x0, .LANCHOR5 1343 ldrh w0, [x0, #:lo12:.LANCHOR5] 1344 cmp w1, w0 1345 bcc .L173 1346 adrp x1, .LANCHOR60 1347 adrp x0, .LC1 1348 mov w2, 2097 1349 add x1, x1, :lo12:.LANCHOR60 1350 add x0, x0, :lo12:.LC1 1351 bl printf 1352.L173: 1353 adrp x0, .LANCHOR3 1354 adrp x7, .LANCHOR13 1355 add x6, x19, 16 1356 add x7, x7, :lo12:.LANCHOR13 1357 ldrh w8, [x0, #:lo12:.LANCHOR3] 1358 mov x5, 0 1359 strh wzr, [x19, 4] 1360 mov w10, -1 1361 strb wzr, [x19, 7] 1362.L174: 1363 cmp w8, w5, uxth 1364 bhi .L176 1365 adrp x1, .LANCHOR19 1366 ldrb w0, [x19, 7] 1367 ldrh w1, [x1, #:lo12:.LANCHOR19] 1368 mul w0, w0, w1 1369 strh w0, [x19, 4] 1370 mov w0, 1 1371 strb w0, [x19, 9] 1372 mov w0, 0 1373 ldr x19, [sp, 16] 1374 ldp x29, x30, [sp], 32 1375 ret 1376.L176: 1377 ldrh w1, [x19] 1378 ldrb w0, [x7, x5] 1379 bl V2P_block 1380 mov w4, w0 1381 strh w10, [x6] 1382 bl FtlBbmIsBadBlock 1383 cbnz w0, .L175 1384 strh w4, [x6] 1385 ldrb w0, [x19, 7] 1386 add w0, w0, 1 1387 strb w0, [x19, 7] 1388.L175: 1389 add x5, x5, 1 1390 add x6, x6, 2 1391 b .L174 1392 .size make_superblock, .-make_superblock 1393 .section .text.update_multiplier_value,"ax",@progbits 1394 .align 2 1395 .global update_multiplier_value 1396 .type update_multiplier_value, %function 1397update_multiplier_value: 1398 and w6, w0, 65535 1399 adrp x0, .LANCHOR3 1400 mov x7, 0 1401 adrp x8, .LANCHOR13 1402 ldrh w10, [x0, #:lo12:.LANCHOR3] 1403 adrp x0, .LANCHOR19 1404 mov w5, 0 1405 add x8, x8, :lo12:.LANCHOR13 1406 ldrh w11, [x0, #:lo12:.LANCHOR19] 1407 cmp w10, w7, uxth 1408 bhi .L190 1409 cbz w5, .L188 1410 mov w0, 32768 1411 sdiv w5, w0, w5 1412.L189: 1413 adrp x0, .LANCHOR40 1414 mov w1, 6 1415 ldr x0, [x0, #:lo12:.LANCHOR40] 1416 umaddl x6, w6, w1, x0 1417 mov w0, 0 1418 strh w5, [x6, 4] 1419 ret 1420.L183: 1421 mov w5, 0 1422 b .L182 1423.L188: 1424 mov w5, 0 1425 b .L189 1426.L190: 1427 stp x29, x30, [sp, -16]! 1428 add x29, sp, 0 1429.L181: 1430 ldrb w0, [x8, x7] 1431 mov w1, w6 1432 bl V2P_block 1433 bl FtlBbmIsBadBlock 1434 cbnz w0, .L180 1435 add w5, w5, w11 1436 and w5, w5, 65535 1437.L180: 1438 add x7, x7, 1 1439 cmp w10, w7, uxth 1440 bhi .L181 1441 cbz w5, .L183 1442 mov w0, 32768 1443 sdiv w5, w0, w5 1444.L182: 1445 adrp x0, .LANCHOR40 1446 mov w1, 6 1447 ldr x0, [x0, #:lo12:.LANCHOR40] 1448 umaddl x6, w6, w1, x0 1449 mov w0, 0 1450 strh w5, [x6, 4] 1451 ldp x29, x30, [sp], 16 1452 ret 1453 .size update_multiplier_value, .-update_multiplier_value 1454 .section .text.GetFreeBlockMinEraseCount,"ax",@progbits 1455 .align 2 1456 .global GetFreeBlockMinEraseCount 1457 .type GetFreeBlockMinEraseCount, %function 1458GetFreeBlockMinEraseCount: 1459 adrp x0, .LANCHOR47 1460 ldr x0, [x0, #:lo12:.LANCHOR47] 1461 cbz x0, .L193 1462 adrp x1, .LANCHOR40 1463 ldr x1, [x1, #:lo12:.LANCHOR40] 1464 sub x0, x0, x1 1465 mov x1, -6148914691236517206 1466 asr x0, x0, 1 1467 movk x1, 0xaaab, lsl 0 1468 mul x0, x0, x1 1469 adrp x1, .LANCHOR43 1470 ldr x1, [x1, #:lo12:.LANCHOR43] 1471 and x0, x0, 65535 1472 ldrh w0, [x1, x0, lsl 1] 1473 ret 1474.L193: 1475 mov w0, 0 1476 ret 1477 .size GetFreeBlockMinEraseCount, .-GetFreeBlockMinEraseCount 1478 .section .text.GetFreeBlockMaxEraseCount,"ax",@progbits 1479 .align 2 1480 .global GetFreeBlockMaxEraseCount 1481 .type GetFreeBlockMaxEraseCount, %function 1482GetFreeBlockMaxEraseCount: 1483 adrp x1, .LANCHOR47 1484 and w0, w0, 65535 1485 ldr x1, [x1, #:lo12:.LANCHOR47] 1486 cbz x1, .L201 1487 adrp x2, .LANCHOR48 1488 mov w3, 7 1489 mov w5, 6 1490 mov w6, 65535 1491 ldrh w2, [x2, #:lo12:.LANCHOR48] 1492 mul w2, w2, w3 1493 asr w2, w2, 3 1494 cmp w0, w2 1495 csel w0, w2, w0, gt 1496 adrp x2, .LANCHOR40 1497 ldr x3, [x2, #:lo12:.LANCHOR40] 1498 mov x2, -6148914691236517206 1499 movk x2, 0xaaab, lsl 0 1500 sub x1, x1, x3 1501 asr x1, x1, 1 1502 mul x1, x1, x2 1503 mov w2, 0 1504 and w1, w1, 65535 1505.L197: 1506 cmp w0, w2 1507 beq .L200 1508 umull x4, w1, w5 1509 ldrh w4, [x3, x4] 1510 cmp w4, w6 1511 bne .L198 1512.L200: 1513 adrp x0, .LANCHOR43 1514 ubfiz x1, x1, 1, 16 1515 ldr x0, [x0, #:lo12:.LANCHOR43] 1516 ldrh w0, [x0, x1] 1517 ret 1518.L198: 1519 add w2, w2, 1 1520 mov w1, w4 1521 and w2, w2, 65535 1522 b .L197 1523.L201: 1524 mov w0, 0 1525 ret 1526 .size GetFreeBlockMaxEraseCount, .-GetFreeBlockMaxEraseCount 1527 .section .text.FtlPrintInfo2buf,"ax",@progbits 1528 .align 2 1529 .global FtlPrintInfo2buf 1530 .type FtlPrintInfo2buf, %function 1531FtlPrintInfo2buf: 1532 stp x29, x30, [sp, -96]! 1533 adrp x1, .LC2 1534 add x1, x1, :lo12:.LC2 1535 add x29, sp, 0 1536 stp x19, x20, [sp, 16] 1537 adrp x19, .LANCHOR37 1538 stp x21, x22, [sp, 32] 1539 mov x21, x0 1540 stp x23, x24, [sp, 48] 1541 adrp x23, .LANCHOR48 1542 stp x25, x26, [sp, 64] 1543 adrp x22, .LANCHOR39 1544 str x27, [sp, 80] 1545 bl sprintf 1546 add x20, x21, x0, sxtw 1547 adrp x0, .LANCHOR26 1548 adrp x1, .LC3 1549 add x1, x1, :lo12:.LC3 1550 ldr w2, [x0, #:lo12:.LANCHOR26] 1551 mov x0, x20 1552 add x22, x22, :lo12:.LANCHOR39 1553 adrp x24, .LANCHOR51 1554 adrp x25, .LANCHOR80 1555 bl sprintf 1556 add x20, x20, x0, sxtw 1557 mov x0, x20 1558 adrp x1, .LC4 1559 add x1, x1, :lo12:.LC4 1560 bl sprintf 1561 add x20, x20, x0, sxtw 1562 adrp x0, .LANCHOR61 1563 adrp x1, .LC5 1564 add x1, x1, :lo12:.LC5 1565 ldr w2, [x0, #:lo12:.LANCHOR61] 1566 mov x0, x20 1567 bl sprintf 1568 add x20, x20, x0, sxtw 1569 adrp x0, .LANCHOR59 1570 adrp x1, .LC6 1571 add x1, x1, :lo12:.LC6 1572 ldr w2, [x0, #:lo12:.LANCHOR59] 1573 mov x0, x20 1574 bl sprintf 1575 add x20, x20, x0, sxtw 1576 adrp x0, .LANCHOR62 1577 adrp x1, .LC7 1578 add x1, x1, :lo12:.LC7 1579 ldr w2, [x0, #:lo12:.LANCHOR62] 1580 mov x0, x20 1581 bl sprintf 1582 add x20, x20, x0, sxtw 1583 adrp x0, .LANCHOR63 1584 adrp x1, .LC8 1585 add x1, x1, :lo12:.LC8 1586 ldr w2, [x0, #:lo12:.LANCHOR63] 1587 mov x0, x20 1588 bl sprintf 1589 add x20, x20, x0, sxtw 1590 adrp x0, .LANCHOR64 1591 adrp x1, .LC9 1592 add x1, x1, :lo12:.LC9 1593 ldr w2, [x0, #:lo12:.LANCHOR64] 1594 mov x0, x20 1595 bl sprintf 1596 add x20, x20, x0, sxtw 1597 adrp x0, .LANCHOR65 1598 adrp x1, .LC10 1599 add x1, x1, :lo12:.LC10 1600 ldr w2, [x0, #:lo12:.LANCHOR65] 1601 mov x0, x20 1602 bl sprintf 1603 add x20, x20, x0, sxtw 1604 adrp x0, .LANCHOR66 1605 adrp x1, .LC11 1606 add x1, x1, :lo12:.LC11 1607 ldr w2, [x0, #:lo12:.LANCHOR66] 1608 mov x0, x20 1609 bl sprintf 1610 add x20, x20, x0, sxtw 1611 adrp x0, .LANCHOR67 1612 adrp x1, .LC12 1613 add x1, x1, :lo12:.LC12 1614 ldr w2, [x0, #:lo12:.LANCHOR67] 1615 mov x0, x20 1616 bl sprintf 1617 add x20, x20, x0, sxtw 1618 adrp x0, .LANCHOR68 1619 adrp x1, .LC13 1620 add x1, x1, :lo12:.LC13 1621 ldr w2, [x0, #:lo12:.LANCHOR68] 1622 mov x0, x20 1623 lsr w2, w2, 11 1624 bl sprintf 1625 add x20, x20, x0, sxtw 1626 adrp x0, .LANCHOR69 1627 adrp x1, .LC14 1628 add x1, x1, :lo12:.LC14 1629 ldr w2, [x0, #:lo12:.LANCHOR69] 1630 mov x0, x20 1631 lsr w2, w2, 11 1632 bl sprintf 1633 add x20, x20, x0, sxtw 1634 adrp x0, .LANCHOR70 1635 adrp x1, .LC15 1636 add x1, x1, :lo12:.LC15 1637 ldr w2, [x0, #:lo12:.LANCHOR70] 1638 mov x0, x20 1639 bl sprintf 1640 add x20, x20, x0, sxtw 1641 adrp x0, .LANCHOR71 1642 adrp x1, .LC16 1643 add x1, x1, :lo12:.LC16 1644 ldr w2, [x0, #:lo12:.LANCHOR71] 1645 mov x0, x20 1646 bl sprintf 1647 add x20, x20, x0, sxtw 1648 add x0, x19, :lo12:.LANCHOR37 1649 adrp x1, .LC17 1650 add x1, x1, :lo12:.LC17 1651 ldrh w2, [x0, 6] 1652 mov x0, x20 1653 bl sprintf 1654 add x20, x20, x0, sxtw 1655 ldrh w2, [x23, #:lo12:.LANCHOR48] 1656 mov x0, x20 1657 adrp x1, .LC18 1658 add x1, x1, :lo12:.LC18 1659 bl sprintf 1660 add x20, x20, x0, sxtw 1661 adrp x0, .LANCHOR72 1662 adrp x1, .LC19 1663 add x1, x1, :lo12:.LC19 1664 ldr w2, [x0, #:lo12:.LANCHOR72] 1665 mov x0, x20 1666 bl sprintf 1667 add x20, x20, x0, sxtw 1668 adrp x0, .LANCHOR73 1669 adrp x1, .LC20 1670 add x1, x1, :lo12:.LC20 1671 ldr w2, [x0, #:lo12:.LANCHOR73] 1672 mov x0, x20 1673 bl sprintf 1674 add x20, x20, x0, sxtw 1675 adrp x0, .LANCHOR74 1676 adrp x1, .LC21 1677 add x1, x1, :lo12:.LC21 1678 ldr w2, [x0, #:lo12:.LANCHOR74] 1679 mov x0, x20 1680 bl sprintf 1681 add x20, x20, x0, sxtw 1682 adrp x0, .LANCHOR75 1683 adrp x1, .LC22 1684 add x1, x1, :lo12:.LC22 1685 ldr w2, [x0, #:lo12:.LANCHOR75] 1686 mov x0, x20 1687 bl sprintf 1688 add x20, x20, x0, sxtw 1689 adrp x0, .LANCHOR76 1690 adrp x1, .LC23 1691 add x1, x1, :lo12:.LC23 1692 ldr w2, [x0, #:lo12:.LANCHOR76] 1693 mov x0, x20 1694 bl sprintf 1695 add x20, x20, x0, sxtw 1696 adrp x0, .LANCHOR77 1697 adrp x1, .LC24 1698 add x1, x1, :lo12:.LC24 1699 ldr w2, [x0, #:lo12:.LANCHOR77] 1700 mov x0, x20 1701 bl sprintf 1702 add x20, x20, x0, sxtw 1703 ldrh w2, [x22, 30] 1704 mov x0, x20 1705 adrp x1, .LC25 1706 add x1, x1, :lo12:.LC25 1707 bl sprintf 1708 add x20, x20, x0, sxtw 1709 ldrh w2, [x22, 28] 1710 mov x0, x20 1711 adrp x1, .LC26 1712 add x1, x1, :lo12:.LC26 1713 adrp x22, .LANCHOR42 1714 bl sprintf 1715 add x20, x20, x0, sxtw 1716 adrp x0, .LANCHOR34 1717 adrp x1, .LC27 1718 add x1, x1, :lo12:.LC27 1719 ldr w2, [x0, #:lo12:.LANCHOR34] 1720 mov x0, x20 1721 bl sprintf 1722 add x20, x20, x0, sxtw 1723 adrp x0, .LANCHOR31 1724 adrp x1, .LC28 1725 add x1, x1, :lo12:.LC28 1726 ldr w2, [x0, #:lo12:.LANCHOR31] 1727 mov x0, x20 1728 bl sprintf 1729 add x20, x20, x0, sxtw 1730 adrp x0, .LANCHOR2 1731 adrp x1, .LC29 1732 add x1, x1, :lo12:.LC29 1733 ldr w2, [x0, #:lo12:.LANCHOR2] 1734 mov x0, x20 1735 bl sprintf 1736 add x20, x20, x0, sxtw 1737 adrp x0, .LANCHOR38+6 1738 adrp x1, .LC30 1739 add x1, x1, :lo12:.LC30 1740 ldrh w2, [x0, #:lo12:.LANCHOR38+6] 1741 mov x0, x20 1742 bl sprintf 1743 add x20, x20, x0, sxtw 1744 adrp x0, .LANCHOR5 1745 adrp x1, .LC31 1746 add x1, x1, :lo12:.LC31 1747 ldrh w2, [x0, #:lo12:.LANCHOR5] 1748 mov x0, x20 1749 bl sprintf 1750 add x20, x20, x0, sxtw 1751 adrp x0, .LANCHOR78 1752 adrp x1, .LC32 1753 add x1, x1, :lo12:.LC32 1754 ldrh w2, [x0, #:lo12:.LANCHOR78] 1755 mov x0, x20 1756 bl sprintf 1757 add x20, x20, x0, sxtw 1758 adrp x0, .LANCHOR7 1759 adrp x1, .LC33 1760 add x1, x1, :lo12:.LC33 1761 ldr w2, [x0, #:lo12:.LANCHOR7] 1762 mov x0, x20 1763 bl sprintf 1764 add x20, x20, x0, sxtw 1765 adrp x0, .LANCHOR79 1766 adrp x1, .LC34 1767 add x1, x1, :lo12:.LC34 1768 ldrh w2, [x0, #:lo12:.LANCHOR79] 1769 mov x0, x20 1770 bl sprintf 1771 add x20, x20, x0, sxtw 1772 ldrh w2, [x19, #:lo12:.LANCHOR37] 1773 add x19, x24, :lo12:.LANCHOR51 1774 mov x0, x20 1775 adrp x1, .LC35 1776 add x1, x1, :lo12:.LC35 1777 bl sprintf 1778 add x20, x20, x0, sxtw 1779 ldrh w2, [x19, 2] 1780 mov x0, x20 1781 adrp x1, .LC36 1782 add x1, x1, :lo12:.LC36 1783 bl sprintf 1784 add x20, x20, x0, sxtw 1785 ldrb w2, [x19, 6] 1786 mov x0, x20 1787 adrp x1, .LC37 1788 add x1, x1, :lo12:.LC37 1789 bl sprintf 1790 add x20, x20, x0, sxtw 1791 ldrh w2, [x24, #:lo12:.LANCHOR51] 1792 mov x0, x20 1793 adrp x1, .LC38 1794 add x1, x1, :lo12:.LC38 1795 bl sprintf 1796 add x20, x20, x0, sxtw 1797 ldrb w2, [x19, 8] 1798 mov x0, x20 1799 adrp x1, .LC39 1800 add x1, x1, :lo12:.LC39 1801 bl sprintf 1802 add x20, x20, x0, sxtw 1803 ldrh w2, [x19, 4] 1804 mov x0, x20 1805 adrp x1, .LC40 1806 add x1, x1, :lo12:.LC40 1807 bl sprintf 1808 add x20, x20, x0, sxtw 1809 ldrh w1, [x24, #:lo12:.LANCHOR51] 1810 adrp x24, .LANCHOR52 1811 ldr x0, [x22, #:lo12:.LANCHOR42] 1812 add x19, x24, :lo12:.LANCHOR52 1813 ldrh w2, [x0, x1, lsl 1] 1814 mov x0, x20 1815 adrp x1, .LC41 1816 add x1, x1, :lo12:.LC41 1817 bl sprintf 1818 add x20, x20, x0, sxtw 1819 ldrh w2, [x19, 2] 1820 mov x0, x20 1821 adrp x1, .LC42 1822 add x1, x1, :lo12:.LC42 1823 bl sprintf 1824 add x20, x20, x0, sxtw 1825 ldrb w2, [x19, 6] 1826 mov x0, x20 1827 adrp x1, .LC43 1828 add x1, x1, :lo12:.LC43 1829 bl sprintf 1830 add x20, x20, x0, sxtw 1831 ldrh w2, [x24, #:lo12:.LANCHOR52] 1832 mov x0, x20 1833 adrp x1, .LC44 1834 add x1, x1, :lo12:.LC44 1835 bl sprintf 1836 add x20, x20, x0, sxtw 1837 ldrb w2, [x19, 8] 1838 mov x0, x20 1839 adrp x1, .LC45 1840 add x1, x1, :lo12:.LC45 1841 bl sprintf 1842 add x20, x20, x0, sxtw 1843 ldrh w2, [x19, 4] 1844 mov x0, x20 1845 adrp x1, .LC46 1846 add x1, x1, :lo12:.LC46 1847 bl sprintf 1848 add x20, x20, x0, sxtw 1849 ldrh w1, [x24, #:lo12:.LANCHOR52] 1850 adrp x24, .LANCHOR53 1851 ldr x0, [x22, #:lo12:.LANCHOR42] 1852 add x19, x24, :lo12:.LANCHOR53 1853 ldrh w2, [x0, x1, lsl 1] 1854 mov x0, x20 1855 adrp x1, .LC47 1856 add x1, x1, :lo12:.LC47 1857 bl sprintf 1858 add x20, x20, x0, sxtw 1859 ldrh w2, [x19, 2] 1860 mov x0, x20 1861 adrp x1, .LC48 1862 add x1, x1, :lo12:.LC48 1863 bl sprintf 1864 add x20, x20, x0, sxtw 1865 ldrb w2, [x19, 6] 1866 mov x0, x20 1867 adrp x1, .LC49 1868 add x1, x1, :lo12:.LC49 1869 bl sprintf 1870 add x20, x20, x0, sxtw 1871 ldrh w2, [x24, #:lo12:.LANCHOR53] 1872 mov x0, x20 1873 adrp x1, .LC50 1874 add x1, x1, :lo12:.LC50 1875 adrp x24, .LANCHOR81 1876 add x24, x24, :lo12:.LANCHOR81 1877 bl sprintf 1878 add x20, x20, x0, sxtw 1879 ldrb w2, [x19, 8] 1880 mov x0, x20 1881 adrp x1, .LC51 1882 add x1, x1, :lo12:.LC51 1883 bl sprintf 1884 add x20, x20, x0, sxtw 1885 ldrh w2, [x19, 4] 1886 add x19, x25, :lo12:.LANCHOR80 1887 mov x0, x20 1888 adrp x1, .LC52 1889 add x1, x1, :lo12:.LC52 1890 bl sprintf 1891 add x20, x20, x0, sxtw 1892 ldrh w2, [x19, 2] 1893 mov x0, x20 1894 adrp x1, .LC53 1895 add x1, x1, :lo12:.LC53 1896 bl sprintf 1897 add x20, x20, x0, sxtw 1898 ldrb w2, [x19, 6] 1899 mov x0, x20 1900 adrp x1, .LC54 1901 add x1, x1, :lo12:.LC54 1902 bl sprintf 1903 add x20, x20, x0, sxtw 1904 ldrh w2, [x25, #:lo12:.LANCHOR80] 1905 mov x0, x20 1906 adrp x1, .LC55 1907 add x1, x1, :lo12:.LC55 1908 bl sprintf 1909 add x20, x20, x0, sxtw 1910 ldrb w2, [x19, 8] 1911 mov x0, x20 1912 adrp x1, .LC56 1913 add x1, x1, :lo12:.LC56 1914 bl sprintf 1915 add x20, x20, x0, sxtw 1916 ldrh w2, [x19, 4] 1917 mov x0, x20 1918 adrp x1, .LC57 1919 add x1, x1, :lo12:.LC57 1920 bl sprintf 1921 add x20, x20, x0, sxtw 1922 ldp w4, w2, [x24, 76] 1923 adrp x1, .LC58 1924 ldr w3, [x24, 84] 1925 add x1, x1, :lo12:.LC58 1926 mov x0, x20 1927 bl sprintf 1928 add x19, x20, x0, sxtw 1929 ldr w2, [x24, 72] 1930 mov x0, x19 1931 adrp x1, .LC59 1932 add x1, x1, :lo12:.LC59 1933 bl sprintf 1934 add x19, x19, x0, sxtw 1935 ldr w2, [x24, 96] 1936 mov x0, x19 1937 adrp x1, .LC60 1938 add x1, x1, :lo12:.LC60 1939 bl sprintf 1940 add x19, x19, x0, sxtw 1941 adrp x0, .LANCHOR82 1942 adrp x1, .LC61 1943 add x1, x1, :lo12:.LC61 1944 ldrh w2, [x0, #:lo12:.LANCHOR82] 1945 mov x0, x19 1946 bl sprintf 1947 add x19, x19, x0, sxtw 1948 adrp x0, .LANCHOR83 1949 adrp x1, .LC62 1950 add x1, x1, :lo12:.LC62 1951 ldrh w2, [x0, #:lo12:.LANCHOR83] 1952 mov x0, x19 1953 bl sprintf 1954 add x19, x19, x0, sxtw 1955 adrp x0, .LANCHOR84 1956 adrp x1, .LC63 1957 add x1, x1, :lo12:.LC63 1958 ldr w2, [x0, #:lo12:.LANCHOR84] 1959 mov x0, x19 1960 bl sprintf 1961 add x19, x19, x0, sxtw 1962 adrp x0, .LANCHOR85 1963 adrp x1, .LC64 1964 add x1, x1, :lo12:.LC64 1965 ldrh w2, [x0, #:lo12:.LANCHOR85] 1966 mov x0, x19 1967 bl sprintf 1968 add x19, x19, x0, sxtw 1969 bl GetFreeBlockMinEraseCount 1970 and w2, w0, 65535 1971 adrp x1, .LC65 1972 mov x0, x19 1973 add x1, x1, :lo12:.LC65 1974 bl sprintf 1975 add x19, x19, x0, sxtw 1976 ldrh w0, [x23, #:lo12:.LANCHOR48] 1977 bl GetFreeBlockMaxEraseCount 1978 and w2, w0, 65535 1979 adrp x1, .LC66 1980 mov x0, x19 1981 add x1, x1, :lo12:.LC66 1982 bl sprintf 1983 add x19, x19, x0, sxtw 1984 adrp x0, .LANCHOR86 1985 ldr w0, [x0, #:lo12:.LANCHOR86] 1986 cmp w0, 1 1987 beq .L203 1988.L208: 1989 sub w0, w19, w21 1990 ldr x27, [sp, 80] 1991 ldp x19, x20, [sp, 16] 1992 ldp x21, x22, [sp, 32] 1993 ldp x23, x24, [sp, 48] 1994 ldp x25, x26, [sp, 64] 1995 ldp x29, x30, [sp], 96 1996 ret 1997.L203: 1998 ldrh w0, [x25, #:lo12:.LANCHOR80] 1999 mov w1, 65535 2000 cmp w0, w1 2001 beq .L205 2002 ldr x1, [x22, #:lo12:.LANCHOR42] 2003 ubfiz x0, x0, 1, 16 2004 ldrh w2, [x1, x0] 2005 mov x0, x19 2006 adrp x1, .LC67 2007 add x1, x1, :lo12:.LC67 2008 bl sprintf 2009 add x19, x19, x0, sxtw 2010.L205: 2011 mov w0, 0 2012 adrp x24, .LC68 2013 bl List_get_gc_head_node 2014 add x24, x24, :lo12:.LC68 2015 and w3, w0, 65535 2016 mov w23, 0 2017 mov w27, 65535 2018 adrp x20, .LANCHOR40 2019 mov w26, 6 2020.L207: 2021 cmp w3, w27 2022 beq .L206 2023 adrp x0, .LANCHOR43 2024 umull x25, w3, w26 2025 ldr x2, [x22, #:lo12:.LANCHOR42] 2026 ubfiz x1, x3, 1, 16 2027 ldr x4, [x0, #:lo12:.LANCHOR43] 2028 ldr x0, [x20, #:lo12:.LANCHOR40] 2029 add x0, x0, x25 2030 ldrh w6, [x4, x1] 2031 ldrh w4, [x2, x1] 2032 mov w2, w23 2033 ldrh w5, [x0, 4] 2034 mov x1, x24 2035 mov x0, x19 2036 add w23, w23, 1 2037 bl sprintf 2038 add x19, x19, x0, sxtw 2039 ldr x0, [x20, #:lo12:.LANCHOR40] 2040 cmp w23, 16 2041 ldrh w3, [x0, x25] 2042 bne .L207 2043.L206: 2044 adrp x0, .LANCHOR47 2045 adrp x23, .LC69 2046 add x23, x23, :lo12:.LC69 2047 mov w22, 0 2048 ldr x3, [x0, #:lo12:.LANCHOR47] 2049 mov w25, 65535 2050 ldr x0, [x20, #:lo12:.LANCHOR40] 2051 mov w26, 6 2052 adrp x27, .LANCHOR43 2053 sub x3, x3, x0 2054 mov x0, -6148914691236517206 2055 asr x3, x3, 1 2056 movk x0, 0xaaab, lsl 0 2057 mul x3, x3, x0 2058 and w3, w3, 65535 2059.L209: 2060 cmp w3, w25 2061 beq .L208 2062 umull x24, w3, w26 2063 ldr x0, [x20, #:lo12:.LANCHOR40] 2064 ldr x2, [x27, #:lo12:.LANCHOR43] 2065 ubfiz x1, x3, 1, 16 2066 add x0, x0, x24 2067 ldrh w5, [x2, x1] 2068 mov w2, w22 2069 ldrh w4, [x0, 4] 2070 mov x1, x23 2071 mov x0, x19 2072 add w22, w22, 1 2073 bl sprintf 2074 add x19, x19, x0, sxtw 2075 cmp w22, 4 2076 beq .L208 2077 ldr x0, [x20, #:lo12:.LANCHOR40] 2078 ldrh w3, [x0, x24] 2079 b .L209 2080 .size FtlPrintInfo2buf, .-FtlPrintInfo2buf 2081 .section .text.rknand_proc_ftlread,"ax",@progbits 2082 .align 2 2083 .global rknand_proc_ftlread 2084 .type rknand_proc_ftlread, %function 2085rknand_proc_ftlread: 2086 stp x29, x30, [sp, -32]! 2087 adrp x2, .LC70 2088 adrp x1, .LC71 2089 add x2, x2, :lo12:.LC70 2090 add x29, sp, 0 2091 add x1, x1, :lo12:.LC71 2092 stp x19, x20, [sp, 16] 2093 mov x20, x0 2094 bl sprintf 2095 add x19, x20, x0, sxtw 2096 mov x0, x19 2097 bl FtlPrintInfo2buf 2098 add x0, x19, x0, sxtw 2099 sub w0, w0, w20 2100 ldp x19, x20, [sp, 16] 2101 ldp x29, x30, [sp], 32 2102 ret 2103 .size rknand_proc_ftlread, .-rknand_proc_ftlread 2104 .section .text.GetSwlReplaceBlock,"ax",@progbits 2105 .align 2 2106 .global GetSwlReplaceBlock 2107 .type GetSwlReplaceBlock, %function 2108GetSwlReplaceBlock: 2109 stp x29, x30, [sp, -32]! 2110 adrp x2, .LANCHOR74 2111 adrp x8, .LANCHOR77 2112 add x29, sp, 0 2113 str x19, [sp, 16] 2114 ldr w3, [x2, #:lo12:.LANCHOR74] 2115 ldr w7, [x8, #:lo12:.LANCHOR77] 2116 cmp w3, w7 2117 bcs .L218 2118 adrp x1, .LANCHOR5 2119 adrp x0, .LANCHOR72 2120 mov w5, 0 2121 mov w4, 0 2122 ldrh w3, [x1, #:lo12:.LANCHOR5] 2123 adrp x1, .LANCHOR43 2124 str wzr, [x0, #:lo12:.LANCHOR72] 2125 ldr x6, [x1, #:lo12:.LANCHOR43] 2126 mov x1, 0 2127.L219: 2128 cmp w3, w1 2129 bhi .L220 2130 cbz w5, .L221 2131 str w4, [x0, #:lo12:.LANCHOR72] 2132.L221: 2133 ldr w1, [x0, #:lo12:.LANCHOR72] 2134 udiv w3, w1, w3 2135 str w3, [x2, #:lo12:.LANCHOR74] 2136 adrp x3, .LANCHOR73 2137 ldr w3, [x3, #:lo12:.LANCHOR73] 2138 sub w1, w1, w3 2139 adrp x3, .LANCHOR14 2140 ldrh w3, [x3, #:lo12:.LANCHOR14] 2141 udiv w1, w1, w3 2142 str w1, [x0, #:lo12:.LANCHOR72] 2143.L222: 2144 ldr w10, [x2, #:lo12:.LANCHOR74] 2145 add w0, w7, 256 2146 cmp w0, w10 2147 bls .L227 2148 adrp x1, .LANCHOR76 2149 add w0, w7, 768 2150 ldr w1, [x1, #:lo12:.LANCHOR76] 2151 cmp w0, w1 2152 bls .L227 2153.L229: 2154 mov w19, 65535 2155.L228: 2156 mov w0, w19 2157 ldr x19, [sp, 16] 2158 ldp x29, x30, [sp], 32 2159 ret 2160.L220: 2161 ldrh w5, [x6, x1, lsl 1] 2162 add x1, x1, 1 2163 add w4, w4, w5 2164 mov w5, 1 2165 b .L219 2166.L218: 2167 adrp x1, .LANCHOR76 2168 ldr w0, [x1, #:lo12:.LANCHOR76] 2169 cmp w3, w0 2170 bls .L222 2171 add w0, w0, 1 2172 str w0, [x1, #:lo12:.LANCHOR76] 2173 adrp x0, .LANCHOR43 2174 adrp x1, .LANCHOR5 2175 add x1, x1, :lo12:.LANCHOR5 2176 ldr x4, [x0, #:lo12:.LANCHOR43] 2177 mov w0, 0 2178.L224: 2179 ldrh w3, [x1] 2180 cmp w0, w3 2181 bcs .L222 2182 ubfiz x5, x0, 1, 32 2183 add w0, w0, 1 2184 ldrh w3, [x4, x5] 2185 add w3, w3, 1 2186 strh w3, [x4, x5] 2187 b .L224 2188.L227: 2189 adrp x0, .LANCHOR48 2190 ldrh w0, [x0, #:lo12:.LANCHOR48] 2191 add w0, w0, w0, lsl 1 2192 lsr w0, w0, 2 2193 bl GetFreeBlockMaxEraseCount 2194 and w6, w0, 65535 2195 add w0, w7, 64 2196 cmp w6, w0 2197 bcc .L229 2198 adrp x0, .LANCHOR41 2199 ldr x0, [x0, #:lo12:.LANCHOR41] 2200 cbz x0, .L229 2201 adrp x1, .LANCHOR5 2202 mov w3, 65535 2203 mov x14, -6148914691236517206 2204 mov w2, w3 2205 ldrh w13, [x1, #:lo12:.LANCHOR5] 2206 adrp x1, .LANCHOR40 2207 mov w12, w3 2208 movk x14, 0xaaab, lsl 0 2209 ldr x11, [x1, #:lo12:.LANCHOR40] 2210 adrp x1, .LANCHOR43 2211 mov w15, 6 2212 ldr x4, [x1, #:lo12:.LANCHOR43] 2213 mov w1, 0 2214.L230: 2215 ldrh w5, [x0] 2216 cmp w5, w12 2217 bne .L233 2218 mov w19, w2 2219.L232: 2220 mov w0, 65535 2221 cmp w19, w0 2222 beq .L229 2223 ubfiz x2, x19, 1, 32 2224 ldrh w5, [x4, x2] 2225 cmp w7, w5 2226 bcs .L234 2227 bl GetFreeBlockMinEraseCount 2228 cmp w7, w0, uxth 2229 bcs .L234 2230 str w3, [x8, #:lo12:.LANCHOR77] 2231.L234: 2232 cmp w10, w5 2233 bls .L229 2234 add w0, w5, 128 2235 cmp w6, w0 2236 ble .L229 2237 add w0, w5, 256 2238 adrp x1, .LANCHOR76 2239 cmp w10, w0 2240 bhi .L235 2241 ldr w3, [x1, #:lo12:.LANCHOR76] 2242 add w0, w5, 768 2243 cmp w0, w3 2244 bcs .L229 2245.L235: 2246 adrp x0, .LANCHOR42 2247 ldr w3, [x1, #:lo12:.LANCHOR76] 2248 mov w1, w19 2249 ldr x0, [x0, #:lo12:.LANCHOR42] 2250 ldrh w4, [x0, x2] 2251 mov w2, w10 2252 adrp x0, .LC72 2253 add x0, x0, :lo12:.LC72 2254 bl printf 2255 adrp x0, .LANCHOR87 2256 mov w1, 1 2257 str w1, [x0, #:lo12:.LANCHOR87] 2258 b .L228 2259.L233: 2260 add w1, w1, 1 2261 and w1, w1, 65535 2262 cmp w1, w13 2263 bhi .L229 2264 ldrh w16, [x0, 4] 2265 cbz w16, .L231 2266 sub x0, x0, x11 2267 asr x0, x0, 1 2268 mul x0, x0, x14 2269 and w19, w0, 65535 2270 and x0, x0, 65535 2271 ldrh w0, [x4, x0, lsl 1] 2272 cmp w7, w0 2273 bcs .L232 2274 cmp w3, w0 2275 bls .L231 2276 mov w3, w0 2277 mov w2, w19 2278.L231: 2279 umaddl x0, w5, w15, x11 2280 b .L230 2281 .size GetSwlReplaceBlock, .-GetSwlReplaceBlock 2282 .section .text.free_data_superblock,"ax",@progbits 2283 .align 2 2284 .global free_data_superblock 2285 .type free_data_superblock, %function 2286free_data_superblock: 2287 and w0, w0, 65535 2288 mov w1, 65535 2289 cmp w0, w1 2290 beq .L249 2291 stp x29, x30, [sp, -16]! 2292 adrp x2, .LANCHOR42 2293 ubfiz x1, x0, 1, 16 2294 add x29, sp, 0 2295 ldr x2, [x2, #:lo12:.LANCHOR42] 2296 strh wzr, [x2, x1] 2297 bl INSERT_FREE_LIST 2298 mov w0, 0 2299 ldp x29, x30, [sp], 16 2300 ret 2301.L249: 2302 mov w0, 0 2303 ret 2304 .size free_data_superblock, .-free_data_superblock 2305 .section .text.get_new_active_ppa,"ax",@progbits 2306 .align 2 2307 .global get_new_active_ppa 2308 .type get_new_active_ppa, %function 2309get_new_active_ppa: 2310 stp x29, x30, [sp, -48]! 2311 add x29, sp, 0 2312 stp x19, x20, [sp, 16] 2313 mov x19, x0 2314 ldrh w1, [x0] 2315 mov w0, 65535 2316 str x21, [sp, 32] 2317 cmp w1, w0 2318 bne .L253 2319 adrp x1, .LANCHOR88 2320 adrp x0, .LC1 2321 mov w2, 2710 2322 add x1, x1, :lo12:.LANCHOR88 2323 add x0, x0, :lo12:.LC1 2324 bl printf 2325.L253: 2326 adrp x20, .LANCHOR19 2327 ldrh w1, [x19, 2] 2328 ldrh w0, [x20, #:lo12:.LANCHOR19] 2329 cmp w1, w0 2330 bne .L254 2331 adrp x1, .LANCHOR88 2332 adrp x0, .LC1 2333 mov w2, 2711 2334 add x1, x1, :lo12:.LANCHOR88 2335 add x0, x0, :lo12:.LC1 2336 bl printf 2337.L254: 2338 ldrh w0, [x19, 4] 2339 cbnz w0, .L255 2340 adrp x1, .LANCHOR88 2341 adrp x0, .LC1 2342 mov w2, 2712 2343 add x1, x1, :lo12:.LANCHOR88 2344 add x0, x0, :lo12:.LC1 2345 bl printf 2346.L255: 2347 ldrb w0, [x19, 6] 2348 adrp x1, .LANCHOR3 2349 strb wzr, [x19, 10] 2350 add x0, x0, 8 2351 ldrh w2, [x1, #:lo12:.LANCHOR3] 2352 mov w1, 65535 2353 ldrh w0, [x19, x0, lsl 1] 2354.L256: 2355 cmp w0, w1 2356 beq .L258 2357 ldrh w21, [x19, 2] 2358 mov w3, 65535 2359 ldrh w1, [x19, 4] 2360 orr w21, w21, w0, lsl 10 2361 ldrb w0, [x19, 6] 2362 sub w1, w1, #1 2363 and w1, w1, 65535 2364 strh w1, [x19, 4] 2365.L260: 2366 add w0, w0, 1 2367 and w0, w0, 255 2368 cmp w2, w0 2369 bne .L259 2370 ldrh w0, [x19, 2] 2371 add w0, w0, 1 2372 strh w0, [x19, 2] 2373 mov w0, 0 2374.L259: 2375 add x4, x19, x0, sxtw 1 2376 ldrh w4, [x4, 16] 2377 cmp w4, w3 2378 beq .L260 2379 strb w0, [x19, 6] 2380 ldrh w2, [x19, 2] 2381 ldrh w0, [x20, #:lo12:.LANCHOR19] 2382 cmp w2, w0 2383 bne .L252 2384 cbz w1, .L252 2385 adrp x1, .LANCHOR88 2386 adrp x0, .LC1 2387 mov w2, 2733 2388 add x1, x1, :lo12:.LANCHOR88 2389 add x0, x0, :lo12:.LC1 2390 bl printf 2391.L252: 2392 mov w0, w21 2393 ldr x21, [sp, 32] 2394 ldp x19, x20, [sp, 16] 2395 ldp x29, x30, [sp], 48 2396 ret 2397.L258: 2398 ldrb w0, [x19, 6] 2399 add w0, w0, 1 2400 and w0, w0, 255 2401 strb w0, [x19, 6] 2402 cmp w0, w2 2403 bne .L257 2404 ldrh w0, [x19, 2] 2405 strb wzr, [x19, 6] 2406 add w0, w0, 1 2407 strh w0, [x19, 2] 2408.L257: 2409 ldrb w0, [x19, 6] 2410 add x0, x0, 8 2411 ldrh w0, [x19, x0, lsl 1] 2412 b .L256 2413 .size get_new_active_ppa, .-get_new_active_ppa 2414 .section .text.FtlGcBufInit,"ax",@progbits 2415 .align 2 2416 .global FtlGcBufInit 2417 .type FtlGcBufInit, %function 2418FtlGcBufInit: 2419 adrp x1, .LANCHOR90 2420 adrp x0, .LANCHOR89 2421 adrp x7, .LANCHOR91 2422 adrp x6, .LANCHOR92 2423 ldr x5, [x1, #:lo12:.LANCHOR90] 2424 adrp x1, .LANCHOR23 2425 str wzr, [x0, #:lo12:.LANCHOR89] 2426 adrp x0, .LANCHOR3 2427 ldrh w10, [x1, #:lo12:.LANCHOR23] 2428 adrp x1, .LANCHOR24 2429 ldrh w0, [x0, #:lo12:.LANCHOR3] 2430 mov w8, 24 2431 ldrh w11, [x1, #:lo12:.LANCHOR24] 2432 adrp x1, .LANCHOR93 2433 ldr x14, [x7, #:lo12:.LANCHOR91] 2434 mov x3, x5 2435 ldr x4, [x1, #:lo12:.LANCHOR93] 2436 mov w2, 0 2437 ldr x15, [x6, #:lo12:.LANCHOR92] 2438 nop // between mem op and mult-accumulate 2439 umaddl x8, w0, w8, x5 2440 add x4, x4, 8 2441 mov w1, 0 2442 mov w16, 1 2443.L268: 2444 add w13, w2, w10 2445 add w12, w1, w11 2446 cmp x3, x8 2447 bne .L269 2448 adrp x1, .LANCHOR94 2449 ldr x7, [x7, #:lo12:.LANCHOR91] 2450 ldr x6, [x6, #:lo12:.LANCHOR92] 2451 mov w8, 24 2452 ldr w4, [x1, #:lo12:.LANCHOR94] 2453.L270: 2454 cmp w0, w4 2455 bcc .L271 2456 ret 2457.L269: 2458 asr w2, w2, 2 2459 asr w1, w1, 2 2460 add x2, x14, x2, sxtw 2 2461 add x1, x15, x1, sxtw 2 2462 str w16, [x3, 16] 2463 stp x2, x1, [x3] 2464 add x3, x3, 24 2465 stp x2, x1, [x4] 2466 add x4, x4, 32 2467 mov w1, w12 2468 mov w2, w13 2469 b .L268 2470.L271: 2471 umull x3, w0, w8 2472 mul w1, w10, w0 2473 add x2, x5, x3 2474 asr w1, w1, 2 2475 add x1, x7, x1, sxtw 2 2476 str wzr, [x2, 16] 2477 str x1, [x5, x3] 2478 mul w1, w11, w0 2479 add w0, w0, 1 2480 and w0, w0, 65535 2481 asr w1, w1, 2 2482 add x1, x6, x1, sxtw 2 2483 str x1, [x2, 8] 2484 b .L270 2485 .size FtlGcBufInit, .-FtlGcBufInit 2486 .section .text.FtlGcBufFree,"ax",@progbits 2487 .align 2 2488 .global FtlGcBufFree 2489 .type FtlGcBufFree, %function 2490FtlGcBufFree: 2491 adrp x2, .LANCHOR94 2492 mov w3, 0 2493 mov w8, 24 2494 ldr w7, [x2, #:lo12:.LANCHOR94] 2495 adrp x2, .LANCHOR90 2496 ldr x5, [x2, #:lo12:.LANCHOR90] 2497.L273: 2498 cmp w3, w1 2499 bcs .L272 2500 ubfiz x4, x3, 5, 16 2501 mov w2, 0 2502 add x4, x0, x4 2503 b .L278 2504.L274: 2505 add w2, w2, 1 2506 and w2, w2, 65535 2507.L278: 2508 cmp w2, w7 2509 bcs .L275 2510 umull x6, w2, w8 2511 add x10, x5, x6 2512 ldr x11, [x5, x6] 2513 ldr x6, [x4, 8] 2514 cmp x11, x6 2515 bne .L274 2516 str wzr, [x10, 16] 2517.L275: 2518 add w3, w3, 1 2519 and w3, w3, 65535 2520 b .L273 2521.L272: 2522 ret 2523 .size FtlGcBufFree, .-FtlGcBufFree 2524 .section .text.FtlGcBufAlloc,"ax",@progbits 2525 .align 2 2526 .global FtlGcBufAlloc 2527 .type FtlGcBufAlloc, %function 2528FtlGcBufAlloc: 2529 adrp x2, .LANCHOR94 2530 mov w3, 0 2531 mov w7, 24 2532 mov w8, 1 2533 ldr w5, [x2, #:lo12:.LANCHOR94] 2534 adrp x2, .LANCHOR90 2535 ldr x6, [x2, #:lo12:.LANCHOR90] 2536.L280: 2537 cmp w3, w1 2538 bcs .L279 2539 mov w2, 0 2540 b .L285 2541.L281: 2542 add w2, w2, 1 2543 and w2, w2, 65535 2544.L285: 2545 cmp w2, w5 2546 bcs .L282 2547 umaddl x4, w2, w7, x6 2548 ldr w10, [x4, 16] 2549 cbnz w10, .L281 2550 ubfiz x2, x3, 5, 16 2551 ldr x10, [x4] 2552 add x2, x0, x2 2553 str w8, [x4, 16] 2554 ldr x4, [x4, 8] 2555 stp x10, x4, [x2, 8] 2556.L282: 2557 add w3, w3, 1 2558 and w3, w3, 65535 2559 b .L280 2560.L279: 2561 ret 2562 .size FtlGcBufAlloc, .-FtlGcBufAlloc 2563 .section .text.IsBlkInGcList,"ax",@progbits 2564 .align 2 2565 .global IsBlkInGcList 2566 .type IsBlkInGcList, %function 2567IsBlkInGcList: 2568 adrp x1, .LANCHOR95 2569 and w0, w0, 65535 2570 ldrh w2, [x1, #:lo12:.LANCHOR95] 2571 adrp x1, .LANCHOR96 2572 ldr x3, [x1, #:lo12:.LANCHOR96] 2573 mov x1, 0 2574.L287: 2575 cmp w2, w1, uxth 2576 bhi .L289 2577 mov w0, 0 2578 ret 2579.L289: 2580 add x1, x1, 1 2581 add x4, x3, x1, lsl 1 2582 ldrh w4, [x4, -2] 2583 cmp w4, w0 2584 bne .L287 2585 mov w0, 1 2586 ret 2587 .size IsBlkInGcList, .-IsBlkInGcList 2588 .section .text.FtlGcUpdatePage,"ax",@progbits 2589 .align 2 2590 .global FtlGcUpdatePage 2591 .type FtlGcUpdatePage, %function 2592FtlGcUpdatePage: 2593 mov w6, w0 2594 mov w10, w1 2595 mov w8, w2 2596 stp x29, x30, [sp, -16]! 2597 lsr w0, w0, 10 2598 add x29, sp, 0 2599 bl P2V_block_in_plane 2600 and w7, w0, 65535 2601 adrp x4, .LANCHOR95 2602 adrp x2, .LANCHOR96 2603 mov x3, 0 2604 ldrh w1, [x4, #:lo12:.LANCHOR95] 2605 ldr x5, [x2, #:lo12:.LANCHOR96] 2606.L292: 2607 and w2, w3, 65535 2608 cmp w2, w1 2609 bcc .L294 2610 bne .L293 2611 and x3, x3, 65535 2612 strh w0, [x5, x3, lsl 1] 2613 ldrh w0, [x4, #:lo12:.LANCHOR95] 2614 add w0, w0, 1 2615 strh w0, [x4, #:lo12:.LANCHOR95] 2616 b .L293 2617.L294: 2618 add x3, x3, 1 2619 add x2, x5, x3, lsl 1 2620 ldrh w2, [x2, -2] 2621 cmp w2, w7 2622 bne .L292 2623.L293: 2624 adrp x4, .LANCHOR97 2625 adrp x1, .LANCHOR98 2626 mov w3, 12 2627 ldrh w0, [x4, #:lo12:.LANCHOR97] 2628 ldr x5, [x1, #:lo12:.LANCHOR98] 2629 umull x3, w0, w3 2630 add w0, w0, 1 2631 add x7, x5, x3 2632 stp w10, w8, [x7, 4] 2633 str w6, [x5, x3] 2634 strh w0, [x4, #:lo12:.LANCHOR97] 2635 ldp x29, x30, [sp], 16 2636 ret 2637 .size FtlGcUpdatePage, .-FtlGcUpdatePage 2638 .section .text.FtlGcRefreshBlock,"ax",@progbits 2639 .align 2 2640 .global FtlGcRefreshBlock 2641 .type FtlGcRefreshBlock, %function 2642FtlGcRefreshBlock: 2643 stp x29, x30, [sp, -32]! 2644 add x29, sp, 0 2645 str x19, [sp, 16] 2646 and w19, w0, 65535 2647 mov w1, w19 2648 adrp x0, .LC73 2649 add x0, x0, :lo12:.LC73 2650 bl printf 2651 adrp x3, .LANCHOR99 2652 ldrh w4, [x3, #:lo12:.LANCHOR99] 2653 cmp w19, w4 2654 beq .L297 2655 adrp x0, .LANCHOR100 2656 ldrh w2, [x0, #:lo12:.LANCHOR100] 2657 cmp w19, w2 2658 beq .L297 2659 mov w1, 65535 2660 cmp w4, w1 2661 bne .L298 2662 strh w19, [x3, #:lo12:.LANCHOR99] 2663.L297: 2664 mov w0, 0 2665 ldr x19, [sp, 16] 2666 ldp x29, x30, [sp], 32 2667 ret 2668.L298: 2669 cmp w2, w1 2670 bne .L297 2671 strh w19, [x0, #:lo12:.LANCHOR100] 2672 b .L297 2673 .size FtlGcRefreshBlock, .-FtlGcRefreshBlock 2674 .section .text.FtlGcMarkBadPhyBlk,"ax",@progbits 2675 .align 2 2676 .global FtlGcMarkBadPhyBlk 2677 .type FtlGcMarkBadPhyBlk, %function 2678FtlGcMarkBadPhyBlk: 2679 stp x29, x30, [sp, -48]! 2680 add x29, sp, 0 2681 stp x19, x20, [sp, 16] 2682 and w20, w0, 65535 2683 adrp x19, .LANCHOR101 2684 str x21, [sp, 32] 2685 mov w0, w20 2686 bl P2V_block_in_plane 2687 ldrh w1, [x19, #:lo12:.LANCHOR101] 2688 mov w2, w20 2689 mov w21, w0 2690 adrp x0, .LC74 2691 add x0, x0, :lo12:.LC74 2692 bl printf 2693 mov w0, w21 2694 bl FtlGcRefreshBlock 2695 ldrh w0, [x19, #:lo12:.LANCHOR101] 2696 adrp x2, .LANCHOR102 2697 add x2, x2, :lo12:.LANCHOR102 2698 mov x1, 0 2699.L301: 2700 cmp w0, w1, uxth 2701 bhi .L303 2702 cmp w0, 15 2703 bhi .L302 2704 add w1, w0, 1 2705 strh w1, [x19, #:lo12:.LANCHOR101] 2706 adrp x1, .LANCHOR102 2707 add x1, x1, :lo12:.LANCHOR102 2708 strh w20, [x1, w0, sxtw 1] 2709 b .L302 2710.L303: 2711 add x1, x1, 1 2712 add x3, x2, x1, lsl 1 2713 ldrh w3, [x3, -2] 2714 cmp w3, w20 2715 bne .L301 2716.L302: 2717 mov w0, 0 2718 ldr x21, [sp, 32] 2719 ldp x19, x20, [sp, 16] 2720 ldp x29, x30, [sp], 48 2721 ret 2722 .size FtlGcMarkBadPhyBlk, .-FtlGcMarkBadPhyBlk 2723 .section .text.FtlGcReFreshBadBlk,"ax",@progbits 2724 .align 2 2725 .global FtlGcReFreshBadBlk 2726 .type FtlGcReFreshBadBlk, %function 2727FtlGcReFreshBadBlk: 2728 adrp x0, .LANCHOR101 2729 ldrh w0, [x0, #:lo12:.LANCHOR101] 2730 cbz w0, .L312 2731 adrp x1, .LANCHOR99 2732 ldrh w2, [x1, #:lo12:.LANCHOR99] 2733 mov w1, 65535 2734 cmp w2, w1 2735 bne .L312 2736 stp x29, x30, [sp, -32]! 2737 add x29, sp, 0 2738 str x19, [sp, 16] 2739 adrp x19, .LANCHOR103 2740 ldrh w1, [x19, #:lo12:.LANCHOR103] 2741 cmp w1, w0 2742 bcc .L307 2743 strh wzr, [x19, #:lo12:.LANCHOR103] 2744.L307: 2745 ldrh w1, [x19, #:lo12:.LANCHOR103] 2746 adrp x0, .LANCHOR102 2747 add x0, x0, :lo12:.LANCHOR102 2748 ldrh w0, [x0, x1, lsl 1] 2749 bl P2V_block_in_plane 2750 bl FtlGcRefreshBlock 2751 ldrh w0, [x19, #:lo12:.LANCHOR103] 2752 add w0, w0, 1 2753 strh w0, [x19, #:lo12:.LANCHOR103] 2754 mov w0, 0 2755 ldr x19, [sp, 16] 2756 ldp x29, x30, [sp], 32 2757 ret 2758.L312: 2759 mov w0, 0 2760 ret 2761 .size FtlGcReFreshBadBlk, .-FtlGcReFreshBadBlk 2762 .section .text.ftl_malloc,"ax",@progbits 2763 .align 2 2764 .global ftl_malloc 2765 .type ftl_malloc, %function 2766ftl_malloc: 2767 mov w1, 0 2768 sxtw x0, w0 2769 b kmalloc 2770 .size ftl_malloc, .-ftl_malloc 2771 .section .text.ftl_free,"ax",@progbits 2772 .align 2 2773 .global ftl_free 2774 .type ftl_free, %function 2775ftl_free: 2776 b free 2777 .size ftl_free, .-ftl_free 2778 .section .text.rknand_print_hex,"ax",@progbits 2779 .align 2 2780 .global rknand_print_hex 2781 .type rknand_print_hex, %function 2782rknand_print_hex: 2783 stp x29, x30, [sp, -96]! 2784 add x29, sp, 0 2785 stp x21, x22, [sp, 32] 2786 mov x22, x1 2787 stp x23, x24, [sp, 48] 2788 adrp x24, .LC75 2789 stp x25, x26, [sp, 64] 2790 mov w23, w2 2791 stp x27, x28, [sp, 80] 2792 adrp x25, .LC77 2793 mov x28, x0 2794 mov w27, w3 2795 add x24, x24, :lo12:.LC75 2796 add x25, x25, :lo12:.LC77 2797 stp x19, x20, [sp, 16] 2798 mov w21, 0 2799 mov x19, 0 2800 mov w20, 0 2801 adrp x26, .LC76 2802.L318: 2803 cmp w27, w19 2804 bhi .L324 2805 ldp x19, x20, [sp, 16] 2806 adrp x0, .LC78 2807 ldp x21, x22, [sp, 32] 2808 add x0, x0, :lo12:.LC78 2809 ldp x23, x24, [sp, 48] 2810 ldp x25, x26, [sp, 64] 2811 ldp x27, x28, [sp, 80] 2812 ldp x29, x30, [sp], 96 2813 b printf 2814.L324: 2815 cbnz w20, .L319 2816 mov w2, w21 2817 mov x1, x28 2818 mov x0, x24 2819 bl printf 2820.L319: 2821 cmp w23, 4 2822 bne .L320 2823 ldr w1, [x22, x19, lsl 2] 2824.L327: 2825 add x0, x26, :lo12:.LC76 2826.L326: 2827 bl printf 2828 add w20, w20, 1 2829 cmp w20, 15 2830 bls .L323 2831 mov w20, 0 2832 adrp x0, .LC78 2833 add x0, x0, :lo12:.LC78 2834 bl printf 2835.L323: 2836 add x19, x19, 1 2837 add w21, w21, w23 2838 b .L318 2839.L320: 2840 cmp w23, 2 2841 bne .L322 2842 ldrsh w1, [x22, x19, lsl 1] 2843 b .L327 2844.L322: 2845 ldrb w1, [x22, x19] 2846 mov x0, x25 2847 b .L326 2848 .size rknand_print_hex, .-rknand_print_hex 2849 .section .text.FlashReadPages,"ax",@progbits 2850 .align 2 2851 .global FlashReadPages 2852 .type FlashReadPages, %function 2853FlashReadPages: 2854 stp x29, x30, [sp, -96]! 2855 adrp x2, .LANCHOR0 2856 add x3, x2, :lo12:.LANCHOR0 2857 ubfiz x1, x1, 5, 32 2858 add x29, sp, 0 2859 str x25, [sp, 64] 2860 ldrh w25, [x3, 12] 2861 stp x21, x22, [sp, 32] 2862 adrp x21, .LANCHOR104 2863 stp x23, x24, [sp, 48] 2864 adrp x22, .LC1 2865 stp x19, x20, [sp, 16] 2866 add x24, x0, x1 2867 mov x19, x0 2868 mov x23, x2 2869 add x21, x21, :lo12:.LANCHOR104 2870 add x22, x22, :lo12:.LC1 2871.L329: 2872 cmp x19, x24 2873 bne .L336 2874 ldp x19, x20, [sp, 16] 2875 mov w0, 0 2876 ldp x21, x22, [sp, 32] 2877 ldp x23, x24, [sp, 48] 2878 ldr x25, [sp, 64] 2879 ldp x29, x30, [sp], 96 2880 ret 2881.L336: 2882 ldr x0, [x19, 8] 2883 cbz x0, .L330 2884 ldr x0, [x19, 16] 2885 cbnz x0, .L331 2886.L330: 2887 mov w2, 96 2888 mov x1, x21 2889 mov x0, x22 2890 bl printf 2891.L331: 2892 ldr w0, [x19, 4] 2893 adrp x20, .LANCHOR105 2894 add x20, x20, :lo12:.LANCHOR105 2895 add x2, x29, 88 2896 add x1, x29, 92 2897 bl l2p_addr_tran.isra.0 2898 ldrb w0, [x29, 88] 2899 ldr w1, [x29, 92] 2900 ldp x2, x3, [x19, 8] 2901 ldr x4, [x20, 24] 2902 blr x4 2903 str w0, [x19] 2904 add x0, x23, :lo12:.LANCHOR0 2905 ldrh w0, [x0, 14] 2906 cmp w0, 4 2907 bne .L333 2908 ldrb w0, [x29, 88] 2909 ldr x4, [x20, 24] 2910 ldp x2, x3, [x19, 8] 2911 ldr w1, [x29, 92] 2912 add x3, x3, 8 2913 add x2, x2, 2048 2914 add w1, w25, w1 2915 blr x4 2916 cmn w0, #1 2917 beq .L334 2918 ldr x0, [x19, 16] 2919 ldr w1, [x0, 12] 2920 cmn w1, #1 2921 bne .L333 2922 ldr w1, [x0, 8] 2923 cmn w1, #1 2924 bne .L333 2925 ldr w0, [x0] 2926 cmn w0, #1 2927 beq .L333 2928.L334: 2929 mov w0, -1 2930 str w0, [x19] 2931.L333: 2932 add x19, x19, 32 2933 b .L329 2934 .size FlashReadPages, .-FlashReadPages 2935 .section .text.FtlLoadFactoryBbt,"ax",@progbits 2936 .align 2 2937 .global FtlLoadFactoryBbt 2938 .type FtlLoadFactoryBbt, %function 2939FtlLoadFactoryBbt: 2940 stp x29, x30, [sp, -112]! 2941 adrp x2, .LANCHOR107 2942 adrp x0, .LANCHOR106 2943 add x1, x0, :lo12:.LANCHOR106 2944 add x29, sp, 0 2945 ldr x2, [x2, #:lo12:.LANCHOR107] 2946 stp x21, x22, [sp, 32] 2947 mov x22, x0 2948 stp x25, x26, [sp, 64] 2949 adrp x26, .LANCHOR17 2950 stp x27, x28, [sp, 80] 2951 add x28, x26, :lo12:.LANCHOR17 2952 stp x19, x20, [sp, 16] 2953 adrp x20, .LANCHOR37 2954 stp x23, x24, [sp, 48] 2955 add x20, x20, :lo12:.LANCHOR37 2956 str x2, [x1, 8] 2957 adrp x2, .LANCHOR108 2958 adrp x23, .LANCHOR10 2959 add x20, x20, 12 2960 ldr x25, [x2, #:lo12:.LANCHOR108] 2961 add x23, x23, :lo12:.LANCHOR10 2962 mov w21, 0 2963 mov w27, -1 2964 str x25, [x1, 16] 2965.L348: 2966 ldrh w0, [x23] 2967 cmp w21, w0 2968 bcc .L353 2969 ldp x19, x20, [sp, 16] 2970 mov w0, 0 2971 ldp x21, x22, [sp, 32] 2972 ldp x23, x24, [sp, 48] 2973 ldp x25, x26, [sp, 64] 2974 ldp x27, x28, [sp, 80] 2975 ldp x29, x30, [sp], 112 2976 ret 2977.L353: 2978 ldrh w19, [x26, #:lo12:.LANCHOR17] 2979 add x24, x22, :lo12:.LANCHOR106 2980 strh w27, [x20] 2981 mov w3, 61664 2982 sub w19, w19, #1 2983 and w19, w19, 65535 2984.L349: 2985 ldrh w0, [x28] 2986 sub w1, w0, #15 2987 cmp w1, w19 2988 bgt .L351 2989 madd w0, w0, w21, w19 2990 mov w2, 1 2991 str w3, [x29, 108] 2992 mov w1, w2 2993 lsl w0, w0, 10 2994 str w0, [x24, 4] 2995 mov x0, x24 2996 bl FlashReadPages 2997 ldr w0, [x24] 2998 ldr w3, [x29, 108] 2999 cmn w0, #1 3000 beq .L350 3001 ldrh w0, [x25] 3002 cmp w0, w3 3003 bne .L350 3004 strh w19, [x20] 3005.L351: 3006 add w21, w21, 1 3007 add x20, x20, 2 3008 b .L348 3009.L350: 3010 sub w19, w19, #1 3011 and w19, w19, 65535 3012 b .L349 3013 .size FtlLoadFactoryBbt, .-FtlLoadFactoryBbt 3014 .section .text.FtlGetLastWrittenPage,"ax",@progbits 3015 .align 2 3016 .global FtlGetLastWrittenPage 3017 .type FtlGetLastWrittenPage, %function 3018FtlGetLastWrittenPage: 3019 stp x29, x30, [sp, -160]! 3020 cmp w1, 1 3021 add x29, sp, 0 3022 stp x23, x24, [sp, 48] 3023 mov w23, w1 3024 stp x19, x20, [sp, 16] 3025 stp x21, x22, [sp, 32] 3026 bne .L359 3027 adrp x1, .LANCHOR20 3028 ldrh w19, [x1, #:lo12:.LANCHOR20] 3029.L360: 3030 sub w19, w19, #1 3031 adrp x1, ftl_temp_buf 3032 sxth w19, w19 3033 add x1, x1, :lo12:ftl_temp_buf 3034 lsl w21, w0, 10 3035 str x1, [x29, 72] 3036 orr w0, w19, w21 3037 add x1, x29, 96 3038 str w0, [x29, 68] 3039 mov w2, w23 3040 str x1, [x29, 80] 3041 add x0, x29, 64 3042 mov w1, 1 3043 bl FlashReadPages 3044 ldr w0, [x29, 96] 3045 cmn w0, #1 3046 bne .L361 3047 mov w22, 0 3048 mov w24, 2 3049.L362: 3050 cmp w22, w19 3051 ble .L365 3052.L361: 3053 mov w0, w19 3054 ldp x19, x20, [sp, 16] 3055 ldp x21, x22, [sp, 32] 3056 ldp x23, x24, [sp, 48] 3057 ldp x29, x30, [sp], 160 3058 ret 3059.L359: 3060 adrp x1, .LANCHOR19 3061 ldrh w19, [x1, #:lo12:.LANCHOR19] 3062 b .L360 3063.L365: 3064 add w20, w22, w19 3065 mov w2, w23 3066 mov w1, 1 3067 sdiv w20, w20, w24 3068 sxth w0, w20 3069 orr w0, w0, w21 3070 str w0, [x29, 68] 3071 add x0, x29, 64 3072 bl FlashReadPages 3073 ldr w0, [x29, 96] 3074 cmn w0, #1 3075 bne .L363 3076 ldr w0, [x29, 100] 3077 cmn w0, #1 3078 bne .L363 3079 sub w19, w20, #1 3080 sxth w19, w19 3081 b .L362 3082.L363: 3083 add w20, w20, 1 3084 sxth w22, w20 3085 b .L362 3086 .size FtlGetLastWrittenPage, .-FtlGetLastWrittenPage 3087 .section .text.FlashProgPages,"ax",@progbits 3088 .align 2 3089 .global FlashProgPages 3090 .type FlashProgPages, %function 3091FlashProgPages: 3092 stp x29, x30, [sp, -144]! 3093 ubfiz x1, x1, 5, 32 3094 add x29, sp, 0 3095 stp x25, x26, [sp, 64] 3096 mov w25, w2 3097 mov w26, w3 3098 adrp x2, .LANCHOR0 3099 add x3, x2, :lo12:.LANCHOR0 3100 stp x27, x28, [sp, 80] 3101 stp x19, x20, [sp, 16] 3102 mov x20, x0 3103 stp x21, x22, [sp, 32] 3104 mov x19, x0 3105 ldrh w27, [x3, 12] 3106 adrp x21, .LANCHOR109 3107 stp x23, x24, [sp, 48] 3108 adrp x22, .LANCHOR105 3109 add x24, x0, x1 3110 mov x23, x2 3111 add x21, x21, :lo12:.LANCHOR109 3112 add x28, x22, :lo12:.LANCHOR105 3113.L368: 3114 cmp x19, x24 3115 bne .L376 3116 cbnz w26, .L377 3117.L395: 3118 ldp x19, x20, [sp, 16] 3119 mov w0, 0 3120 ldp x21, x22, [sp, 32] 3121 ldp x23, x24, [sp, 48] 3122 ldp x25, x26, [sp, 64] 3123 ldp x27, x28, [sp, 80] 3124 ldp x29, x30, [sp], 144 3125 ret 3126.L376: 3127 ldr x0, [x19, 8] 3128 cbz x0, .L369 3129 ldr x0, [x19, 16] 3130 cbnz x0, .L370 3131.L369: 3132 adrp x0, .LC1 3133 mov w2, 126 3134 mov x1, x21 3135 add x0, x0, :lo12:.LC1 3136 bl printf 3137.L370: 3138 ldr w0, [x19, 4] 3139 add x2, x29, 104 3140 add x1, x29, 108 3141 bl l2p_addr_tran.isra.0 3142 add x0, x22, :lo12:.LANCHOR105 3143 ldr w1, [x29, 108] 3144 ldp x2, x3, [x19, 8] 3145 ldr x4, [x0, 16] 3146 ldrb w0, [x29, 104] 3147 blr x4 3148 cbnz w0, .L371 3149 str wzr, [x19] 3150.L372: 3151 add x0, x23, :lo12:.LANCHOR0 3152 ldrh w0, [x0, 14] 3153 cmp w0, 4 3154 bne .L374 3155 ldrb w0, [x29, 104] 3156 ldr x4, [x28, 16] 3157 ldp x2, x3, [x19, 8] 3158 ldr w1, [x29, 108] 3159 add x3, x3, 8 3160 add x2, x2, 2048 3161 add w1, w27, w1 3162 blr x4 3163 cbz w0, .L374 3164 mov w0, -1 3165 str w0, [x19] 3166.L374: 3167 add x19, x19, 32 3168 b .L368 3169.L371: 3170 mov w0, -1 3171 str w0, [x19] 3172 b .L372 3173.L381: 3174 str wzr, [x22] 3175 mov w2, w25 3176 str wzr, [x24] 3177 mov w1, 1 3178 stp x22, x24, [x29, 120] 3179 ldr w0, [x20, 4] 3180 str w0, [x29, 116] 3181 add x0, x29, 112 3182 bl FlashReadPages 3183 ldr w26, [x29, 112] 3184 cmn w26, #1 3185 bne .L378 3186 ldr w1, [x20, 4] 3187 adrp x0, .LC79 3188 add x0, x0, :lo12:.LC79 3189 bl printf 3190 str w26, [x20] 3191.L378: 3192 ldr x0, [x20, 16] 3193 cbz x0, .L379 3194 ldr w3, [x23, #:lo12:.LANCHOR110] 3195 ldr w2, [x0] 3196 cmp w2, w3 3197 beq .L379 3198 ldr w1, [x20, 4] 3199 adrp x0, .LC80 3200 add x0, x0, :lo12:.LC80 3201 bl printf 3202 mov w0, -1 3203 str w0, [x20] 3204.L379: 3205 ldr x0, [x20, 8] 3206 cbz x0, .L380 3207 ldr w3, [x21, #:lo12:check_buf] 3208 ldr w2, [x0] 3209 cmp w2, w3 3210 beq .L380 3211 ldr w1, [x20, 4] 3212 adrp x0, .LC81 3213 add x0, x0, :lo12:.LC81 3214 bl printf 3215 mov w0, -1 3216 str w0, [x20] 3217.L380: 3218 add x20, x20, 32 3219.L396: 3220 cmp x20, x19 3221 bne .L381 3222 b .L395 3223.L377: 3224 adrp x21, check_buf 3225 adrp x23, .LANCHOR110 3226 add x22, x21, :lo12:check_buf 3227 add x24, x23, :lo12:.LANCHOR110 3228 b .L396 3229 .size FlashProgPages, .-FlashProgPages 3230 .section .text.FlashEraseBlocks,"ax",@progbits 3231 .align 2 3232 .global FlashEraseBlocks 3233 .type FlashEraseBlocks, %function 3234FlashEraseBlocks: 3235 stp x29, x30, [sp, -80]! 3236 adrp x1, .LANCHOR0 3237 add x3, x1, :lo12:.LANCHOR0 3238 ubfiz x2, x2, 5, 32 3239 add x29, sp, 0 3240 stp x23, x24, [sp, 48] 3241 add x2, x2, 4 3242 ldrh w23, [x3, 12] 3243 stp x19, x20, [sp, 16] 3244 add x19, x0, 4 3245 stp x21, x22, [sp, 32] 3246 mov x20, x1 3247 adrp x21, .LANCHOR105 3248 add x22, x0, x2 3249 add x24, x21, :lo12:.LANCHOR105 3250.L399: 3251 cmp x19, x22 3252 bne .L405 3253 ldp x19, x20, [sp, 16] 3254 mov w0, 0 3255 ldp x21, x22, [sp, 32] 3256 ldp x23, x24, [sp, 48] 3257 ldp x29, x30, [sp], 80 3258 ret 3259.L405: 3260 ldr w0, [x19] 3261 add x2, x29, 72 3262 add x1, x29, 76 3263 bl l2p_addr_tran.isra.0 3264 add x0, x21, :lo12:.LANCHOR105 3265 ldr w1, [x29, 76] 3266 ldr x2, [x0, 8] 3267 ldrb w0, [x29, 72] 3268 blr x2 3269 cbnz w0, .L400 3270 str wzr, [x19, -4] 3271.L401: 3272 add x0, x20, :lo12:.LANCHOR0 3273 ldrh w0, [x0, 14] 3274 cmp w0, 4 3275 bne .L403 3276 ldrb w0, [x29, 72] 3277 ldr x2, [x24, 8] 3278 ldr w1, [x29, 76] 3279 add w1, w23, w1 3280 blr x2 3281 cbz w0, .L403 3282 mov w0, -1 3283 str w0, [x19, -4] 3284.L403: 3285 add x19, x19, 32 3286 b .L399 3287.L400: 3288 mov w0, -1 3289 str w0, [x19, -4] 3290 b .L401 3291 .size FlashEraseBlocks, .-FlashEraseBlocks 3292 .section .text.FtlFreeSysBlkQueueIn,"ax",@progbits 3293 .align 2 3294 .global FtlFreeSysBlkQueueIn 3295 .type FtlFreeSysBlkQueueIn, %function 3296FtlFreeSysBlkQueueIn: 3297 stp x29, x30, [sp, -48]! 3298 add x29, sp, 0 3299 stp x19, x20, [sp, 16] 3300 and w20, w0, 65535 3301 str x21, [sp, 32] 3302 sub w2, w20, #1 3303 mov w0, 65533 3304 cmp w0, w2, uxth 3305 bcc .L410 3306 adrp x0, .LANCHOR38 3307 add x2, x0, :lo12:.LANCHOR38 3308 mov x19, x0 3309 ldrh w2, [x2, 6] 3310 cmp w2, 1024 3311 beq .L410 3312 and w1, w1, 65535 3313 cbz w1, .L412 3314 mov w0, w20 3315 bl P2V_block_in_plane 3316 and w21, w0, 65535 3317 adrp x0, .LANCHOR111 3318 lsl w1, w20, 10 3319 mov w2, 1 3320 ldr x0, [x0, #:lo12:.LANCHOR111] 3321 str w1, [x0, 4] 3322 mov w1, w2 3323 bl FlashEraseBlocks 3324 adrp x1, .LANCHOR43 3325 ubfiz x0, x21, 1, 16 3326 ldr x2, [x1, #:lo12:.LANCHOR43] 3327 ldrh w1, [x2, x0] 3328 add w1, w1, 1 3329 strh w1, [x2, x0] 3330 adrp x1, .LANCHOR75 3331 ldr w0, [x1, #:lo12:.LANCHOR75] 3332 add w0, w0, 1 3333 str w0, [x1, #:lo12:.LANCHOR75] 3334.L412: 3335 add x0, x19, :lo12:.LANCHOR38 3336 ldrh w1, [x0, 6] 3337 add w1, w1, 1 3338 strh w1, [x0, 6] 3339 ldrh w1, [x0, 4] 3340 add x2, x0, x1, sxtw 1 3341 add w1, w1, 1 3342 and w1, w1, 1023 3343 strh w1, [x0, 4] 3344 strh w20, [x2, 8] 3345.L410: 3346 ldp x19, x20, [sp, 16] 3347 ldr x21, [sp, 32] 3348 ldp x29, x30, [sp], 48 3349 ret 3350 .size FtlFreeSysBlkQueueIn, .-FtlFreeSysBlkQueueIn 3351 .section .text.FtlLowFormatEraseBlock,"ax",@progbits 3352 .align 2 3353 .global FtlLowFormatEraseBlock 3354 .type FtlLowFormatEraseBlock, %function 3355FtlLowFormatEraseBlock: 3356 stp x29, x30, [sp, -144]! 3357 adrp x7, .LANCHOR13 3358 add x7, x7, :lo12:.LANCHOR13 3359 mov x5, 0 3360 add x29, sp, 0 3361 stp x23, x24, [sp, 48] 3362 and w24, w0, 65535 3363 adrp x0, .LANCHOR112 3364 stp x19, x20, [sp, 16] 3365 stp x21, x22, [sp, 32] 3366 and w23, w1, 255 3367 str w24, [x0, #:lo12:.LANCHOR112] 3368 adrp x0, .LANCHOR114 3369 adrp x1, .LANCHOR113 3370 adrp x20, .LANCHOR3 3371 adrp x21, .LANCHOR111 3372 ldr x11, [x0, #:lo12:.LANCHOR114] 3373 adrp x0, .LANCHOR24 3374 ldrh w8, [x20, #:lo12:.LANCHOR3] 3375 ldr x6, [x21, #:lo12:.LANCHOR111] 3376 mov w22, 0 3377 ldr x10, [x1, #:lo12:.LANCHOR113] 3378 mov w19, 0 3379 ldrh w12, [x0, #:lo12:.LANCHOR24] 3380 stp x25, x26, [sp, 64] 3381 stp x27, x28, [sp, 80] 3382 stp x0, x1, [x29, 120] 3383.L421: 3384 cmp w8, w5, uxth 3385 bhi .L425 3386 cbz w22, .L420 3387 mov w2, w22 3388 ubfiz x22, x22, 5, 16 3389 mov x25, 0 3390 mov w1, 0 3391 mov x0, x6 3392 bl FlashEraseBlocks 3393.L429: 3394 ldr x0, [x21, #:lo12:.LANCHOR111] 3395 add x1, x0, x25 3396 ldr w0, [x0, x25] 3397 cmn w0, #1 3398 bne .L428 3399 ldr w0, [x1, 4] 3400 add w19, w19, 1 3401 and w19, w19, 65535 3402 lsr w0, w0, 10 3403 bl FtlBbmMapBadBlock 3404.L428: 3405 add x25, x25, 32 3406 cmp x25, x22 3407 bne .L429 3408 cbz w23, .L442 3409 adrp x0, .LANCHOR20 3410 mov w25, 1 3411 ldrh w26, [x0, #:lo12:.LANCHOR20] 3412 lsr w28, w26, 2 3413.L430: 3414 add x0, x20, :lo12:.LANCHOR3 3415 adrp x27, .LANCHOR13 3416 str x0, [x29, 136] 3417 mov w22, 0 3418 add x0, x27, :lo12:.LANCHOR13 3419 str x0, [x29, 112] 3420.L438: 3421 ldr x0, [x29, 136] 3422 mov x5, 0 3423 ldr x6, [x21, #:lo12:.LANCHOR111] 3424 mov w20, 0 3425 ldrh w7, [x0] 3426 adrp x0, .LANCHOR115 3427 ldr x8, [x0, #:lo12:.LANCHOR115] 3428 ldr x0, [x29, 128] 3429 ldr x10, [x0, #:lo12:.LANCHOR113] 3430 ldr x0, [x29, 120] 3431 ldrh w11, [x0, #:lo12:.LANCHOR24] 3432.L431: 3433 cmp w7, w5, uxth 3434 bhi .L434 3435 cbz w20, .L420 3436 mov w1, w20 3437 mov w3, 1 3438 mov w2, w25 3439 mov x0, x6 3440 bl FlashProgPages 3441 mov x27, 0 3442 ubfiz x1, x20, 5, 16 3443.L437: 3444 ldr x0, [x21, #:lo12:.LANCHOR111] 3445 add x3, x0, x27 3446 ldr w0, [x0, x27] 3447 cbz w0, .L436 3448 ldr w0, [x3, 4] 3449 add w19, w19, 1 3450 str x1, [x29, 104] 3451 and w19, w19, 65535 3452 lsr w0, w0, 10 3453 bl FtlBbmMapBadBlock 3454 ldr x1, [x29, 104] 3455.L436: 3456 add x27, x27, 32 3457 cmp x1, x27 3458 bne .L437 3459 add w22, w22, w28 3460 and w22, w22, 65535 3461 cmp w26, w22 3462 bhi .L438 3463 mov x22, 0 3464.L440: 3465 cbz w23, .L439 3466 ldr x0, [x21, #:lo12:.LANCHOR111] 3467 add x1, x0, x22 3468 ldr w0, [x0, x22] 3469 cbnz w0, .L439 3470 ldr w0, [x1, 4] 3471 mov w1, 1 3472 lsr w0, w0, 10 3473 bl FtlFreeSysBlkQueueIn 3474.L439: 3475 add x22, x22, 32 3476 cmp x22, x27 3477 bne .L440 3478 cmp w24, 63 3479 ccmp w23, 0, 0, hi 3480 beq .L420 3481 ldr x0, [x21, #:lo12:.LANCHOR111] 3482 mov w2, w20 3483 mov w1, w25 3484 bl FlashEraseBlocks 3485.L420: 3486 mov w0, w19 3487 ldp x19, x20, [sp, 16] 3488 ldp x21, x22, [sp, 32] 3489 ldp x23, x24, [sp, 48] 3490 ldp x25, x26, [sp, 64] 3491 ldp x27, x28, [sp, 80] 3492 ldp x29, x30, [sp], 144 3493 ret 3494.L425: 3495 lsl x0, x5, 5 3496 mov w1, w24 3497 str wzr, [x6, x0] 3498 ldrb w0, [x7, x5] 3499 bl V2P_block 3500 and w13, w0, 65535 3501 mov w14, w13 3502 cbz w23, .L422 3503 bl IsBlkInVendorPart 3504 cbnz w0, .L423 3505.L422: 3506 mov w0, w14 3507 bl FtlBbmIsBadBlock 3508 cbnz w0, .L424 3509 ubfiz x0, x22, 5, 16 3510 mul w1, w22, w12 3511 add x0, x6, x0 3512 add w22, w22, 1 3513 and w22, w22, 65535 3514 lsl w13, w13, 10 3515 asr w1, w1, 2 3516 add x1, x11, x1, sxtw 2 3517 str w13, [x0, 4] 3518 stp x10, x1, [x0, 8] 3519.L423: 3520 add x5, x5, 1 3521 b .L421 3522.L424: 3523 add w19, w19, 1 3524 and w19, w19, 65535 3525 b .L423 3526.L442: 3527 mov w25, 0 3528 mov w28, 6 3529 mov w26, 1 3530 b .L430 3531.L434: 3532 lsl x0, x5, 5 3533 mov w1, w24 3534 str wzr, [x6, x0] 3535 ldr x0, [x29, 112] 3536 ldrb w0, [x0, x5] 3537 bl V2P_block 3538 and w12, w0, 65535 3539 mov w13, w12 3540 cbz w23, .L432 3541 bl IsBlkInVendorPart 3542 cbnz w0, .L433 3543.L432: 3544 mov w0, w13 3545 bl FtlBbmIsBadBlock 3546 cbnz w0, .L433 3547 ubfiz x0, x20, 5, 16 3548 mul w1, w20, w11 3549 add x0, x6, x0 3550 add w20, w20, 1 3551 and w20, w20, 65535 3552 add w12, w22, w12, lsl 10 3553 asr w1, w1, 2 3554 add x1, x10, x1, sxtw 2 3555 str w12, [x0, 4] 3556 stp x8, x1, [x0, 8] 3557.L433: 3558 add x5, x5, 1 3559 b .L431 3560 .size FtlLowFormatEraseBlock, .-FtlLowFormatEraseBlock 3561 .section .text.FtlFreeSysBlkQueueOut,"ax",@progbits 3562 .align 2 3563 .global FtlFreeSysBlkQueueOut 3564 .type FtlFreeSysBlkQueueOut, %function 3565FtlFreeSysBlkQueueOut: 3566 stp x29, x30, [sp, -64]! 3567 add x29, sp, 0 3568 stp x19, x20, [sp, 16] 3569 adrp x19, .LANCHOR38 3570 stp x21, x22, [sp, 32] 3571 add x19, x19, :lo12:.LANCHOR38 3572 adrp x21, .LANCHOR75 3573 str x23, [sp, 48] 3574 add x21, x21, :lo12:.LANCHOR75 3575 adrp x23, .LC83 3576 add x23, x23, :lo12:.LC83 3577.L464: 3578 ldrh w1, [x19, 6] 3579 cbz w1, .L465 3580 ldrh w0, [x19, 2] 3581 sub w1, w1, #1 3582 strh w1, [x19, 6] 3583 add x2, x19, x0, sxtw 1 3584 add w0, w0, 1 3585 and w0, w0, 1023 3586 strh w0, [x19, 2] 3587 ldrh w20, [x2, 8] 3588 mov w0, w20 3589 bl P2V_block_in_plane 3590 and w22, w0, 65535 3591 adrp x0, .LANCHOR111 3592 lsl w1, w20, 10 3593 mov w2, 1 3594 ldr x0, [x0, #:lo12:.LANCHOR111] 3595 str w1, [x0, 4] 3596 mov w1, w2 3597 bl FlashEraseBlocks 3598 adrp x1, .LANCHOR43 3599 ubfiz x0, x22, 1, 16 3600 ldr x2, [x1, #:lo12:.LANCHOR43] 3601 ldrh w1, [x2, x0] 3602 add w1, w1, 1 3603 strh w1, [x2, x0] 3604 ldr w0, [x21] 3605 sub w1, w20, #1 3606 add w0, w0, 1 3607 str w0, [x21] 3608 mov w0, 65533 3609 cmp w0, w1, uxth 3610 bcc .L466 3611 mov w0, w20 3612 ldr x23, [sp, 48] 3613 ldp x19, x20, [sp, 16] 3614 ldp x21, x22, [sp, 32] 3615 ldp x29, x30, [sp], 64 3616 ret 3617.L465: 3618 adrp x0, .LC82 3619 mov w1, 0 3620 add x0, x0, :lo12:.LC82 3621 bl printf 3622.L468: 3623 b .L468 3624.L466: 3625 ldrh w2, [x19, 6] 3626 mov w1, w20 3627 mov x0, x23 3628 bl printf 3629 b .L464 3630 .size FtlFreeSysBlkQueueOut, .-FtlFreeSysBlkQueueOut 3631 .section .text.ftl_map_blk_alloc_new_blk,"ax",@progbits 3632 .align 2 3633 .global ftl_map_blk_alloc_new_blk 3634 .type ftl_map_blk_alloc_new_blk, %function 3635ftl_map_blk_alloc_new_blk: 3636 stp x29, x30, [sp, -48]! 3637 add x29, sp, 0 3638 stp x19, x20, [sp, 16] 3639 mov x19, x0 3640 ldrh w1, [x0, 10] 3641 mov w20, 0 3642 ldr x0, [x0, 16] 3643 str x21, [sp, 32] 3644.L472: 3645 cmp w20, w1 3646 beq .L476 3647 mov x21, x0 3648 ldrh w2, [x0], 2 3649 cbnz w2, .L473 3650 bl FtlFreeSysBlkQueueOut 3651 and w1, w0, 65535 3652 strh w0, [x21] 3653 sub w2, w1, #1 3654 mov w0, 65533 3655 cmp w0, w2, uxth 3656 bcs .L474 3657 adrp x0, .LANCHOR38+6 3658 ldrh w2, [x0, #:lo12:.LANCHOR38+6] 3659 adrp x0, .LC84 3660 add x0, x0, :lo12:.LC84 3661 bl printf 3662.L475: 3663 b .L475 3664.L474: 3665 ldr w0, [x19, 48] 3666 strh wzr, [x19, 2] 3667 add w0, w0, 1 3668 str w0, [x19, 48] 3669 ldrh w0, [x19, 8] 3670 strh w20, [x19] 3671 add w0, w0, 1 3672 strh w0, [x19, 8] 3673.L476: 3674 ldrh w0, [x19, 10] 3675 cmp w0, w20 3676 bhi .L478 3677 adrp x1, .LANCHOR116 3678 adrp x0, .LC1 3679 mov w2, 581 3680 add x1, x1, :lo12:.LANCHOR116 3681 add x0, x0, :lo12:.LC1 3682 bl printf 3683.L478: 3684 mov w0, 0 3685 ldr x21, [sp, 32] 3686 ldp x19, x20, [sp, 16] 3687 ldp x29, x30, [sp], 48 3688 ret 3689.L473: 3690 add w20, w20, 1 3691 and w20, w20, 65535 3692 b .L472 3693 .size ftl_map_blk_alloc_new_blk, .-ftl_map_blk_alloc_new_blk 3694 .section .text.ftl_memset,"ax",@progbits 3695 .align 2 3696 .global ftl_memset 3697 .type ftl_memset, %function 3698ftl_memset: 3699 uxtw x2, w2 3700 b memset 3701 .size ftl_memset, .-ftl_memset 3702 .section .text.FtlMemInit,"ax",@progbits 3703 .align 2 3704 .global FtlMemInit 3705 .type FtlMemInit, %function 3706FtlMemInit: 3707 stp x29, x30, [sp, -208]! 3708 adrp x0, .LANCHOR70 3709 mov w1, 65535 3710 add x29, sp, 0 3711 str wzr, [x0, #:lo12:.LANCHOR70] 3712 adrp x0, .LANCHOR71 3713 stp x19, x20, [sp, 16] 3714 adrp x19, .LANCHOR21 3715 str wzr, [x0, #:lo12:.LANCHOR71] 3716 adrp x0, .LANCHOR67 3717 stp x21, x22, [sp, 32] 3718 adrp x22, .LANCHOR3 3719 str wzr, [x0, #:lo12:.LANCHOR67] 3720 adrp x0, .LANCHOR64 3721 stp x23, x24, [sp, 48] 3722 adrp x21, .LANCHOR23 3723 str wzr, [x0, #:lo12:.LANCHOR64] 3724 adrp x0, .LANCHOR63 3725 stp x25, x26, [sp, 64] 3726 adrp x24, .LANCHOR108 3727 str wzr, [x0, #:lo12:.LANCHOR63] 3728 adrp x0, .LANCHOR65 3729 stp x27, x28, [sp, 80] 3730 adrp x23, .LANCHOR114 3731 str wzr, [x0, #:lo12:.LANCHOR65] 3732 adrp x0, .LANCHOR66 3733 adrp x25, .LANCHOR42 3734 adrp x27, .LANCHOR129 3735 str wzr, [x0, #:lo12:.LANCHOR66] 3736 adrp x0, .LANCHOR62 3737 adrp x26, .LANCHOR130 3738 str wzr, [x0, #:lo12:.LANCHOR62] 3739 adrp x0, .LANCHOR72 3740 str wzr, [x0, #:lo12:.LANCHOR72] 3741 adrp x0, .LANCHOR73 3742 str wzr, [x0, #:lo12:.LANCHOR73] 3743 adrp x0, .LANCHOR75 3744 str wzr, [x0, #:lo12:.LANCHOR75] 3745 adrp x0, .LANCHOR76 3746 str wzr, [x0, #:lo12:.LANCHOR76] 3747 adrp x0, .LANCHOR77 3748 str wzr, [x0, #:lo12:.LANCHOR77] 3749 adrp x0, .LANCHOR117 3750 str wzr, [x0, #:lo12:.LANCHOR117] 3751 adrp x0, .LANCHOR87 3752 str wzr, [x0, #:lo12:.LANCHOR87] 3753 adrp x0, .LANCHOR118 3754 str w1, [x0, #:lo12:.LANCHOR118] 3755 adrp x0, .LANCHOR119 3756 adrp x1, .LANCHOR99 3757 str wzr, [x0, #:lo12:.LANCHOR119] 3758 adrp x0, .LANCHOR84 3759 str wzr, [x0, #:lo12:.LANCHOR84] 3760 adrp x0, .LANCHOR112 3761 str wzr, [x0, #:lo12:.LANCHOR112] 3762 mov w0, -1 3763 strh w0, [x1, #:lo12:.LANCHOR99] 3764 adrp x1, .LANCHOR100 3765 strh w0, [x1, #:lo12:.LANCHOR100] 3766 adrp x0, .LANCHOR82 3767 mov w1, 32 3768 strh w1, [x0, #:lo12:.LANCHOR82] 3769 adrp x0, .LANCHOR83 3770 mov w1, 128 3771 strh w1, [x0, #:lo12:.LANCHOR83] 3772 adrp x0, .LANCHOR85 3773 strh wzr, [x0, #:lo12:.LANCHOR85] 3774 adrp x0, .LANCHOR101 3775 strh wzr, [x0, #:lo12:.LANCHOR101] 3776 adrp x0, .LANCHOR103 3777 strh wzr, [x0, #:lo12:.LANCHOR103] 3778 ldrh w0, [x19, #:lo12:.LANCHOR21] 3779 lsl w0, w0, 1 3780 bl ftl_malloc 3781 adrp x1, .LANCHOR96 3782 str x0, [x1, #:lo12:.LANCHOR96] 3783 mov w0, 12 3784 ldrh w1, [x19, #:lo12:.LANCHOR21] 3785 mul w0, w1, w0 3786 bl ftl_malloc 3787 ldrh w19, [x22, #:lo12:.LANCHOR3] 3788 adrp x3, .LANCHOR98 3789 str x3, [x29, 104] 3790 lsl w20, w19, 5 3791 lsl w19, w19, 7 3792 str x0, [x3, #:lo12:.LANCHOR98] 3793 mov w0, w19 3794 bl ftl_malloc 3795 adrp x15, .LANCHOR120 3796 str x15, [x29, 112] 3797 str x0, [x15, #:lo12:.LANCHOR120] 3798 mov w0, w20 3799 bl ftl_malloc 3800 adrp x11, .LANCHOR121 3801 str x11, [x29, 120] 3802 str x0, [x11, #:lo12:.LANCHOR121] 3803 mov w0, w19 3804 bl ftl_malloc 3805 adrp x14, .LANCHOR122 3806 str x14, [x29, 128] 3807 str x0, [x14, #:lo12:.LANCHOR122] 3808 mov w0, w20 3809 bl ftl_malloc 3810 adrp x13, .LANCHOR111 3811 str x13, [x29, 136] 3812 str x0, [x13, #:lo12:.LANCHOR111] 3813 mov w0, w20 3814 bl ftl_malloc 3815 adrp x20, .LANCHOR94 3816 adrp x12, .LANCHOR93 3817 ldrh w19, [x21, #:lo12:.LANCHOR23] 3818 str x12, [x29, 144] 3819 str x0, [x12, #:lo12:.LANCHOR93] 3820 ldrh w0, [x22, #:lo12:.LANCHOR3] 3821 lsl w0, w0, 1 3822 add w0, w0, 1 3823 str w0, [x20, #:lo12:.LANCHOR94] 3824 mov w0, w19 3825 bl ftl_malloc 3826 adrp x10, .LANCHOR107 3827 str x10, [x29, 152] 3828 str x0, [x10, #:lo12:.LANCHOR107] 3829 mov w0, w19 3830 bl ftl_malloc 3831 adrp x8, .LANCHOR123 3832 str x8, [x29, 160] 3833 str x0, [x8, #:lo12:.LANCHOR123] 3834 mov w0, w19 3835 bl ftl_malloc 3836 adrp x7, .LANCHOR124 3837 str x7, [x29, 168] 3838 str x0, [x7, #:lo12:.LANCHOR124] 3839 ldr w0, [x20, #:lo12:.LANCHOR94] 3840 mul w0, w19, w0 3841 bl ftl_malloc 3842 adrp x6, .LANCHOR91 3843 str x6, [x29, 176] 3844 str x0, [x6, #:lo12:.LANCHOR91] 3845 mov w0, w19 3846 bl ftl_malloc 3847 adrp x5, .LANCHOR115 3848 str x5, [x29, 184] 3849 str x0, [x5, #:lo12:.LANCHOR115] 3850 mov w0, w19 3851 bl ftl_malloc 3852 adrp x19, .LANCHOR24 3853 adrp x4, .LANCHOR113 3854 ldr w2, [x20, #:lo12:.LANCHOR94] 3855 str x4, [x29, 192] 3856 str x0, [x4, #:lo12:.LANCHOR113] 3857 mov w0, 24 3858 mul w0, w2, w0 3859 bl ftl_malloc 3860 ldrh w28, [x19, #:lo12:.LANCHOR24] 3861 adrp x1, .LANCHOR90 3862 str x0, [x1, #:lo12:.LANCHOR90] 3863 ldrh w0, [x22, #:lo12:.LANCHOR3] 3864 adrp x22, .LANCHOR92 3865 mul w28, w28, w0 3866 mov w0, w28 3867 bl ftl_malloc 3868 str x0, [x24, #:lo12:.LANCHOR108] 3869 lsl w0, w28, 2 3870 bl ftl_malloc 3871 str x0, [x23, #:lo12:.LANCHOR114] 3872 ldrh w1, [x19, #:lo12:.LANCHOR24] 3873 adrp x28, .LANCHOR125 3874 ldr w0, [x20, #:lo12:.LANCHOR94] 3875 adrp x20, .LANCHOR6 3876 mul w0, w1, w0 3877 bl ftl_malloc 3878 str x0, [x22, #:lo12:.LANCHOR92] 3879 ldrh w0, [x20, #:lo12:.LANCHOR6] 3880 ubfiz w0, w0, 1, 15 3881 strh w0, [x28, #:lo12:.LANCHOR125] 3882 and w0, w0, 65534 3883 bl ftl_malloc 3884 adrp x1, .LANCHOR126 3885 str x0, [x1, #:lo12:.LANCHOR126] 3886 ldrh w0, [x28, #:lo12:.LANCHOR125] 3887 add x0, x0, 547 3888 lsr x0, x0, 9 3889 strh w0, [x28, #:lo12:.LANCHOR125] 3890 lsl w0, w0, 9 3891 bl ftl_malloc 3892 adrp x1, .LANCHOR127 3893 ldrh w28, [x20, #:lo12:.LANCHOR6] 3894 str x0, [x1, #:lo12:.LANCHOR127] 3895 adrp x1, .LANCHOR43 3896 lsl w28, w28, 1 3897 add x0, x0, 32 3898 str x0, [x1, #:lo12:.LANCHOR43] 3899 mov w0, w28 3900 bl ftl_malloc 3901 adrp x1, .LANCHOR128 3902 str x0, [x1, #:lo12:.LANCHOR128] 3903 mov w0, w28 3904 adrp x28, .LANCHOR30 3905 bl ftl_malloc 3906 str x0, [x25, #:lo12:.LANCHOR42] 3907 ldr w1, [x28, #:lo12:.LANCHOR30] 3908 lsl w19, w1, 1 3909 mov w0, w19 3910 bl ftl_malloc 3911 str x0, [x27, #:lo12:.LANCHOR129] 3912 mov w0, w19 3913 bl ftl_malloc 3914 str x0, [x26, #:lo12:.LANCHOR130] 3915 ldrh w0, [x20, #:lo12:.LANCHOR6] 3916 adrp x19, .LANCHOR27 3917 lsr w0, w0, 3 3918 add w0, w0, 4 3919 bl ftl_malloc 3920 adrp x1, .LANCHOR1 3921 str x0, [x1, #:lo12:.LANCHOR1] 3922 ldrh w0, [x19, #:lo12:.LANCHOR27] 3923 lsl w0, w0, 1 3924 bl ftl_malloc 3925 adrp x2, .LANCHOR36 3926 str x0, [x2, #:lo12:.LANCHOR36] 3927 ldrh w0, [x19, #:lo12:.LANCHOR27] 3928 lsl w0, w0, 1 3929 bl ftl_malloc 3930 adrp x2, .LANCHOR131 3931 str x0, [x2, #:lo12:.LANCHOR131] 3932 ldrh w0, [x19, #:lo12:.LANCHOR27] 3933 adrp x19, .LANCHOR43 3934 lsl w0, w0, 2 3935 bl ftl_malloc 3936 adrp x1, .LANCHOR132 3937 str x0, [x1, #:lo12:.LANCHOR132] 3938 adrp x1, .LANCHOR28 3939 str x1, [x29, 200] 3940 ldrh w0, [x1, #:lo12:.LANCHOR28] 3941 lsl w0, w0, 2 3942 bl ftl_malloc 3943 ldr x1, [x29, 200] 3944 adrp x2, .LANCHOR133 3945 str x0, [x2, #:lo12:.LANCHOR133] 3946 ldrh w2, [x1, #:lo12:.LANCHOR28] 3947 mov w1, 0 3948 lsl w2, w2, 2 3949 bl ftl_memset 3950 adrp x0, .LANCHOR32 3951 ldrh w0, [x0, #:lo12:.LANCHOR32] 3952 lsl w0, w0, 2 3953 bl ftl_malloc 3954 adrp x1, .LANCHOR134 3955 str x0, [x1, #:lo12:.LANCHOR134] 3956 ldr w0, [x28, #:lo12:.LANCHOR30] 3957 adrp x28, .LANCHOR33 3958 lsl w0, w0, 2 3959 bl ftl_malloc 3960 adrp x1, .LANCHOR135 3961 str x0, [x1, #:lo12:.LANCHOR135] 3962 ldrh w0, [x28, #:lo12:.LANCHOR33] 3963 lsl w0, w0, 4 3964 bl ftl_malloc 3965 adrp x1, .LANCHOR55 3966 str x0, [x1, #:lo12:.LANCHOR55] 3967 ldrh w1, [x28, #:lo12:.LANCHOR33] 3968 ldrh w0, [x21, #:lo12:.LANCHOR23] 3969 adrp x21, .LANCHOR10 3970 mul w0, w1, w0 3971 bl ftl_malloc 3972 adrp x1, .LANCHOR136 3973 str x0, [x1, #:lo12:.LANCHOR136] 3974 mov w0, 6 3975 ldrh w1, [x20, #:lo12:.LANCHOR6] 3976 adrp x20, .LANCHOR137 3977 mul w0, w1, w0 3978 bl ftl_malloc 3979 adrp x1, .LANCHOR40 3980 str x0, [x1, #:lo12:.LANCHOR40] 3981 adrp x0, .LANCHOR17 3982 ldrh w1, [x21, #:lo12:.LANCHOR10] 3983 ldrh w0, [x0, #:lo12:.LANCHOR17] 3984 add w0, w0, 31 3985 asr w0, w0, 5 3986 strh w0, [x20, #:lo12:.LANCHOR137] 3987 mul w0, w1, w0 3988 lsl w0, w0, 2 3989 bl ftl_malloc 3990 ldp x3, x15, [x29, 104] 3991 adrp x1, .LANCHOR37 3992 ldrh w20, [x20, #:lo12:.LANCHOR137] 3993 add x2, x1, :lo12:.LANCHOR37 3994 ldp x11, x14, [x29, 120] 3995 mov w30, w20 3996 ldp x13, x12, [x29, 136] 3997 mov x16, x3 3998 ldp x10, x8, [x29, 152] 3999 str x0, [x2, 32] 4000 ldp x7, x6, [x29, 168] 4001 adrp x17, .LANCHOR96 4002 ldp x5, x4, [x29, 184] 4003 adrp x3, .LANCHOR90 4004 ldrh w28, [x21, #:lo12:.LANCHOR10] 4005 add x21, x2, 40 4006 mov x0, 1 4007 str x19, [x29, 200] 4008.L482: 4009 cmp w0, w28 4010 bcc .L483 4011 mov w2, 8 4012 sub w2, w2, w0 4013 add x2, x2, 1 4014 add x1, x1, :lo12:.LANCHOR37 4015 mov x19, 0 4016.L484: 4017 add x19, x19, 1 4018 cmp x19, x2 4019 bne .L485 4020 ldr x0, [x27, #:lo12:.LANCHOR129] 4021 cbnz x0, .L486 4022.L488: 4023 adrp x1, .LANCHOR138 4024 adrp x0, .LC85 4025 add x1, x1, :lo12:.LANCHOR138 4026 add x0, x0, :lo12:.LC85 4027 bl printf 4028 mov w0, -1 4029.L481: 4030 ldp x19, x20, [sp, 16] 4031 ldp x21, x22, [sp, 32] 4032 ldp x23, x24, [sp, 48] 4033 ldp x25, x26, [sp, 64] 4034 ldp x27, x28, [sp, 80] 4035 ldp x29, x30, [sp], 208 4036 ret 4037.L483: 4038 ldr x19, [x2, 32] 4039 add w0, w0, 1 4040 add x19, x19, x30, uxtw 2 4041 add w30, w30, w20 4042 str x19, [x21], 8 4043 b .L482 4044.L485: 4045 add x20, x0, x19 4046 add x20, x1, x20, lsl 3 4047 str xzr, [x20, 24] 4048 b .L484 4049.L486: 4050 ldr x0, [x26, #:lo12:.LANCHOR130] 4051 cbz x0, .L488 4052 adrp x0, .LANCHOR134 4053 ldr x0, [x0, #:lo12:.LANCHOR134] 4054 cbz x0, .L488 4055 adrp x0, .LANCHOR135 4056 ldr x0, [x0, #:lo12:.LANCHOR135] 4057 cbz x0, .L488 4058 adrp x0, .LANCHOR55 4059 ldr x0, [x0, #:lo12:.LANCHOR55] 4060 cbz x0, .L488 4061 adrp x0, .LANCHOR136 4062 ldr x0, [x0, #:lo12:.LANCHOR136] 4063 cbz x0, .L488 4064 adrp x0, .LANCHOR40 4065 ldr x0, [x0, #:lo12:.LANCHOR40] 4066 cbz x0, .L488 4067 adrp x0, .LANCHOR37+32 4068 ldr x0, [x0, #:lo12:.LANCHOR37+32] 4069 cbz x0, .L488 4070 ldr x0, [x25, #:lo12:.LANCHOR42] 4071 cbz x0, .L488 4072 ldr x0, [x17, #:lo12:.LANCHOR96] 4073 cbz x0, .L488 4074 ldr x0, [x16, #:lo12:.LANCHOR98] 4075 cbz x0, .L488 4076 ldr x0, [x15, #:lo12:.LANCHOR120] 4077 cbz x0, .L488 4078 ldr x0, [x14, #:lo12:.LANCHOR122] 4079 cbz x0, .L488 4080 ldr x0, [x13, #:lo12:.LANCHOR111] 4081 cbz x0, .L488 4082 ldr x0, [x12, #:lo12:.LANCHOR93] 4083 cbz x0, .L488 4084 ldr x0, [x11, #:lo12:.LANCHOR121] 4085 cbz x0, .L488 4086 ldr x0, [x10, #:lo12:.LANCHOR107] 4087 cbz x0, .L488 4088 ldr x0, [x8, #:lo12:.LANCHOR123] 4089 cbz x0, .L488 4090 ldr x0, [x7, #:lo12:.LANCHOR124] 4091 cbz x0, .L488 4092 ldr x0, [x6, #:lo12:.LANCHOR91] 4093 cbz x0, .L488 4094 ldr x0, [x5, #:lo12:.LANCHOR115] 4095 cbz x0, .L488 4096 ldr x0, [x4, #:lo12:.LANCHOR113] 4097 cbz x0, .L488 4098 ldr x0, [x3, #:lo12:.LANCHOR90] 4099 cbz x0, .L488 4100 ldr x0, [x24, #:lo12:.LANCHOR108] 4101 cbz x0, .L488 4102 ldr x0, [x23, #:lo12:.LANCHOR114] 4103 cbz x0, .L488 4104 ldr x0, [x22, #:lo12:.LANCHOR92] 4105 cbz x0, .L488 4106 ldr x0, [x29, 200] 4107 ldr x0, [x0, #:lo12:.LANCHOR43] 4108 cbz x0, .L488 4109 adrp x0, .LANCHOR126 4110 ldr x0, [x0, #:lo12:.LANCHOR126] 4111 cbz x0, .L488 4112 adrp x0, .LANCHOR36 4113 ldr x0, [x0, #:lo12:.LANCHOR36] 4114 cbz x0, .L488 4115 adrp x0, .LANCHOR131 4116 ldr x0, [x0, #:lo12:.LANCHOR131] 4117 cbz x0, .L488 4118 adrp x0, .LANCHOR132 4119 ldr x0, [x0, #:lo12:.LANCHOR132] 4120 cbz x0, .L488 4121 adrp x0, .LANCHOR133 4122 ldr x0, [x0, #:lo12:.LANCHOR133] 4123 cbz x0, .L488 4124 mov w0, 0 4125 b .L481 4126 .size FtlMemInit, .-FtlMemInit 4127 .section .text.FtlBbt2Bitmap,"ax",@progbits 4128 .align 2 4129 .global FtlBbt2Bitmap 4130 .type FtlBbt2Bitmap, %function 4131FtlBbt2Bitmap: 4132 stp x29, x30, [sp, -64]! 4133 add x29, sp, 0 4134 stp x21, x22, [sp, 32] 4135 mov x22, x0 4136 adrp x0, .LANCHOR137 4137 stp x23, x24, [sp, 48] 4138 adrp x21, .LANCHOR17 4139 adrp x23, .LANCHOR139 4140 ldrh w2, [x0, #:lo12:.LANCHOR137] 4141 add x21, x21, :lo12:.LANCHOR17 4142 add x23, x23, :lo12:.LANCHOR139 4143 stp x19, x20, [sp, 16] 4144 mov w24, 65535 4145 mov x19, 0 4146 mov x20, x1 4147 lsl w2, w2, 2 4148 mov w1, 0 4149 mov x0, x20 4150 bl ftl_memset 4151.L586: 4152 ldrh w0, [x22, x19] 4153 cmp w0, w24 4154 beq .L583 4155 ldrh w1, [x21] 4156 cmp w1, w0 4157 bhi .L585 4158 adrp x0, .LC1 4159 mov w2, 74 4160 mov x1, x23 4161 add x0, x0, :lo12:.LC1 4162 bl printf 4163.L585: 4164 ldrh w2, [x22, x19] 4165 mov w1, 1 4166 add x19, x19, 2 4167 cmp x19, 1024 4168 ubfx x0, x2, 5, 11 4169 lsl w2, w1, w2 4170 lsl x0, x0, 2 4171 ldr w1, [x20, x0] 4172 orr w1, w1, w2 4173 str w1, [x20, x0] 4174 bne .L586 4175.L583: 4176 ldp x19, x20, [sp, 16] 4177 ldp x21, x22, [sp, 32] 4178 ldp x23, x24, [sp, 48] 4179 ldp x29, x30, [sp], 64 4180 ret 4181 .size FtlBbt2Bitmap, .-FtlBbt2Bitmap 4182 .section .text.FtlBbtMemInit,"ax",@progbits 4183 .align 2 4184 .global FtlBbtMemInit 4185 .type FtlBbtMemInit, %function 4186FtlBbtMemInit: 4187 adrp x1, .LANCHOR37 4188 add x0, x1, :lo12:.LANCHOR37 4189 mov w2, -1 4190 add x0, x0, 12 4191 strh w2, [x1, #:lo12:.LANCHOR37] 4192 mov w2, 16 4193 strh wzr, [x0, -6] 4194 mov w1, 255 4195 b ftl_memset 4196 .size FtlBbtMemInit, .-FtlBbtMemInit 4197 .section .text.FtlFreeSysBlkQueueInit,"ax",@progbits 4198 .align 2 4199 .global FtlFreeSysBlkQueueInit 4200 .type FtlFreeSysBlkQueueInit, %function 4201FtlFreeSysBlkQueueInit: 4202 stp x29, x30, [sp, -16]! 4203 adrp x1, .LANCHOR38 4204 add x3, x1, :lo12:.LANCHOR38 4205 mov w2, 2048 4206 add x29, sp, 0 4207 strh w0, [x1, #:lo12:.LANCHOR38] 4208 mov w1, 0 4209 strh wzr, [x3, 2] 4210 add x0, x3, 8 4211 strh wzr, [x3, 4] 4212 strh wzr, [x3, 6] 4213 bl ftl_memset 4214 mov w0, 0 4215 ldp x29, x30, [sp], 16 4216 ret 4217 .size FtlFreeSysBlkQueueInit, .-FtlFreeSysBlkQueueInit 4218 .section .text.load_l2p_region,"ax",@progbits 4219 .align 2 4220 .global load_l2p_region 4221 .type load_l2p_region, %function 4222load_l2p_region: 4223 stp x29, x30, [sp, -80]! 4224 add x29, sp, 0 4225 stp x23, x24, [sp, 48] 4226 adrp x23, .LANCHOR32 4227 stp x19, x20, [sp, 16] 4228 and x19, x1, 65535 4229 stp x21, x22, [sp, 32] 4230 and w21, w0, 65535 4231 stp x25, x26, [sp, 64] 4232 ldrh w0, [x23, #:lo12:.LANCHOR32] 4233 cmp w0, w21 4234 bcs .L594 4235 adrp x1, .LANCHOR140 4236 adrp x0, .LC1 4237 mov w2, 492 4238 add x1, x1, :lo12:.LANCHOR140 4239 add x0, x0, :lo12:.LC1 4240 bl printf 4241.L594: 4242 adrp x26, .LANCHOR134 4243 ubfiz x0, x21, 2, 16 4244 adrp x22, .LANCHOR55 4245 ldr x1, [x26, #:lo12:.LANCHOR134] 4246 ldr w24, [x1, x0] 4247 cbnz w24, .L595 4248 ldr x0, [x22, #:lo12:.LANCHOR55] 4249 lsl x19, x19, 4 4250 adrp x1, .LANCHOR23 4251 add x0, x0, x19 4252 ldrh w2, [x1, #:lo12:.LANCHOR23] 4253 mov w1, 255 4254 ldr x0, [x0, 8] 4255 bl ftl_memset 4256 ldr x0, [x22, #:lo12:.LANCHOR55] 4257 add x1, x0, x19 4258 strh w21, [x0, x19] 4259 str wzr, [x1, 4] 4260.L596: 4261 mov w0, 0 4262 ldp x19, x20, [sp, 16] 4263 ldp x21, x22, [sp, 32] 4264 ldp x23, x24, [sp, 48] 4265 ldp x25, x26, [sp, 64] 4266 ldp x29, x30, [sp], 80 4267 ret 4268.L595: 4269 ldr x0, [x22, #:lo12:.LANCHOR55] 4270 lsl x19, x19, 4 4271 adrp x20, .LANCHOR106 4272 add x20, x20, :lo12:.LANCHOR106 4273 add x0, x0, x19 4274 mov w2, 1 4275 mov w1, w2 4276 str w24, [x20, 4] 4277 ldr x0, [x0, 8] 4278 str x0, [x20, 8] 4279 adrp x0, .LANCHOR108 4280 ldr x0, [x0, #:lo12:.LANCHOR108] 4281 str x0, [x20, 16] 4282 mov x0, x20 4283 bl FlashReadPages 4284 ldr x25, [x20, 16] 4285 ldrh w0, [x25, 8] 4286 cmp w0, w21 4287 beq .L597 4288 mov w2, w24 4289 mov w1, w21 4290 adrp x0, .LC86 4291 add x0, x0, :lo12:.LC86 4292 bl printf 4293 ldr x1, [x20, 16] 4294 mov w3, 4 4295 adrp x0, .LC87 4296 mov w2, w3 4297 add x0, x0, :lo12:.LC87 4298 bl rknand_print_hex 4299 ldrh w3, [x23, #:lo12:.LANCHOR32] 4300 adrp x0, .LC88 4301 ldr x1, [x26, #:lo12:.LANCHOR134] 4302 mov w2, 4 4303 add x0, x0, :lo12:.LC88 4304 bl rknand_print_hex 4305.L597: 4306 ldrh w0, [x25, 8] 4307 cmp w0, w21 4308 beq .L598 4309 adrp x1, .LANCHOR140 4310 adrp x0, .LC1 4311 mov w2, 513 4312 add x1, x1, :lo12:.LANCHOR140 4313 add x0, x0, :lo12:.LC1 4314 bl printf 4315.L598: 4316 ldr x0, [x22, #:lo12:.LANCHOR55] 4317 add x1, x0, x19 4318 str wzr, [x1, 4] 4319 strh w21, [x0, x19] 4320 b .L596 4321 .size load_l2p_region, .-load_l2p_region 4322 .section .text.ftl_free_no_use_map_blk,"ax",@progbits 4323 .align 2 4324 .global ftl_free_no_use_map_blk 4325 .type ftl_free_no_use_map_blk, %function 4326ftl_free_no_use_map_blk: 4327 stp x29, x30, [sp, -80]! 4328 mov w1, 0 4329 add x29, sp, 0 4330 stp x19, x20, [sp, 16] 4331 mov x19, x0 4332 ldrh w2, [x0, 10] 4333 stp x21, x22, [sp, 32] 4334 ldp x21, x20, [x0, 32] 4335 stp x23, x24, [sp, 48] 4336 stp x25, x26, [sp, 64] 4337 lsl w2, w2, 1 4338 ldr x23, [x0, 16] 4339 mov x0, x21 4340 bl ftl_memset 4341 mov w0, 0 4342.L601: 4343 ldrh w1, [x19, 6] 4344 cmp w1, w0 4345 bhi .L605 4346 ldrh w26, [x21] 4347 adrp x24, .LANCHOR20 4348 add x24, x24, :lo12:.LANCHOR20 4349 mov w25, 0 4350 mov w20, 0 4351.L606: 4352 ldrh w0, [x19, 10] 4353 cmp w0, w20 4354 bhi .L610 4355 mov w0, w25 4356 ldp x19, x20, [sp, 16] 4357 ldp x21, x22, [sp, 32] 4358 ldp x23, x24, [sp, 48] 4359 ldp x25, x26, [sp, 64] 4360 ldp x29, x30, [sp], 80 4361 ret 4362.L605: 4363 ubfiz x1, x0, 2, 16 4364 ldr w2, [x20, x1] 4365 mov w1, 0 4366 ubfx x2, x2, 10, 16 4367.L602: 4368 ldrh w3, [x19, 10] 4369 cmp w3, w1 4370 bhi .L604 4371 add w0, w0, 1 4372 and w0, w0, 65535 4373 b .L601 4374.L604: 4375 ubfiz x3, x1, 1, 16 4376 ldrh w4, [x23, x3] 4377 cmp w4, w2 4378 bne .L603 4379 ldrh w4, [x21, x3] 4380 add w4, w4, 1 4381 strh w4, [x21, x3] 4382.L603: 4383 add w1, w1, 1 4384 and w1, w1, 65535 4385 b .L602 4386.L610: 4387 ldrh w0, [x19] 4388 uxtw x22, w20 4389 cmp w0, w20 4390 bne .L607 4391 ldrh w0, [x24] 4392 ldrh w1, [x19, 2] 4393 cmp w1, w0 4394 bcs .L607 4395 strh w0, [x21, x22, lsl 1] 4396.L607: 4397 lsl x22, x22, 1 4398 ldrh w0, [x21, x22] 4399 cmp w26, w0 4400 bls .L608 4401 mov w25, w20 4402 mov w26, w0 4403.L608: 4404 cbnz w0, .L609 4405 ldrh w0, [x23, x22] 4406 cbz w0, .L609 4407 mov w1, 1 4408 bl FtlFreeSysBlkQueueIn 4409 strh wzr, [x23, x22] 4410 ldrh w0, [x19, 8] 4411 sub w0, w0, #1 4412 strh w0, [x19, 8] 4413.L609: 4414 add w20, w20, 1 4415 and w20, w20, 65535 4416 b .L606 4417 .size ftl_free_no_use_map_blk, .-ftl_free_no_use_map_blk 4418 .section .text.Ftl_write_map_blk_to_last_page,"ax",@progbits 4419 .align 2 4420 .global Ftl_write_map_blk_to_last_page 4421 .type Ftl_write_map_blk_to_last_page, %function 4422Ftl_write_map_blk_to_last_page: 4423 stp x29, x30, [sp, -64]! 4424 mov w1, 65535 4425 add x29, sp, 0 4426 stp x19, x20, [sp, 16] 4427 mov x19, x0 4428 ldr x20, [x0, 16] 4429 stp x21, x22, [sp, 32] 4430 ldrh w0, [x0] 4431 str x23, [sp, 48] 4432 cmp w0, w1 4433 bne .L616 4434 ldrh w0, [x19, 8] 4435 cbz w0, .L617 4436 adrp x1, .LANCHOR141 4437 adrp x0, .LC1 4438 mov w2, 641 4439 add x1, x1, :lo12:.LANCHOR141 4440 add x0, x0, :lo12:.LC1 4441 bl printf 4442.L617: 4443 ldrh w0, [x19, 8] 4444 add w0, w0, 1 4445 strh w0, [x19, 8] 4446 bl FtlFreeSysBlkQueueOut 4447 strh w0, [x20] 4448 ldr w0, [x19, 48] 4449 strh wzr, [x19, 2] 4450 add w0, w0, 1 4451 strh wzr, [x19] 4452 str w0, [x19, 48] 4453.L618: 4454 mov w0, 0 4455 ldr x23, [sp, 48] 4456 ldp x19, x20, [sp, 16] 4457 ldp x21, x22, [sp, 32] 4458 ldp x29, x30, [sp], 64 4459 ret 4460.L616: 4461 ubfiz x0, x0, 1, 16 4462 adrp x1, .LANCHOR108 4463 adrp x23, .LANCHOR107 4464 ldr x22, [x19, 40] 4465 ldr x1, [x1, #:lo12:.LANCHOR108] 4466 ldrh w21, [x20, x0] 4467 adrp x20, .LANCHOR106 4468 ldrh w0, [x19, 2] 4469 add x2, x20, :lo12:.LANCHOR106 4470 orr w0, w0, w21, lsl 10 4471 str w0, [x2, 4] 4472 ldr x0, [x23, #:lo12:.LANCHOR107] 4473 str x1, [x2, 16] 4474 str x0, [x2, 8] 4475 ldr w2, [x19, 48] 4476 str w2, [x1, 4] 4477 mov w2, -1291 4478 strh w2, [x1, 8] 4479 ldrh w2, [x19, 4] 4480 strh w2, [x1] 4481 strh w21, [x1, 2] 4482 adrp x1, .LANCHOR20 4483 ldrh w2, [x1, #:lo12:.LANCHOR20] 4484 mov w1, 255 4485 lsl w2, w2, 3 4486 bl ftl_memset 4487 ldrh w4, [x19, 6] 4488 mov x1, 0 4489 ldr x3, [x23, #:lo12:.LANCHOR107] 4490 mov w2, 0 4491.L619: 4492 cmp w4, w1, uxth 4493 bhi .L621 4494 mov w2, 1 4495 mov w3, 0 4496 mov w1, w2 4497 add x0, x20, :lo12:.LANCHOR106 4498 bl FlashProgPages 4499 ldrh w0, [x19, 2] 4500 add w0, w0, 1 4501 strh w0, [x19, 2] 4502 mov x0, x19 4503 bl ftl_map_blk_gc 4504 b .L618 4505.L621: 4506 ldr w0, [x22, x1, lsl 2] 4507 cmp w21, w0, lsr 10 4508 bne .L620 4509 add w2, w2, 1 4510 and w2, w2, 65535 4511 ubfiz x0, x2, 1, 16 4512 str w1, [x3, x0, lsl 2] 4513 add x0, x0, 1 4514 ldr w5, [x22, x1, lsl 2] 4515 str w5, [x3, x0, lsl 2] 4516.L620: 4517 add x1, x1, 1 4518 b .L619 4519 .size Ftl_write_map_blk_to_last_page, .-Ftl_write_map_blk_to_last_page 4520 .section .text.FtlMapWritePage,"ax",@progbits 4521 .align 2 4522 .global FtlMapWritePage 4523 .type FtlMapWritePage, %function 4524FtlMapWritePage: 4525 stp x29, x30, [sp, -112]! 4526 add x29, sp, 0 4527 stp x23, x24, [sp, 48] 4528 adrp x23, .LANCHOR66 4529 stp x25, x26, [sp, 64] 4530 adrp x24, .LANCHOR142 4531 stp x27, x28, [sp, 80] 4532 adrp x26, .LANCHOR20 4533 stp x19, x20, [sp, 16] 4534 mov w25, w1 4535 mov x19, x0 4536 mov x27, x2 4537 add x23, x23, :lo12:.LANCHOR66 4538 add x24, x24, :lo12:.LANCHOR142 4539 add x28, x26, :lo12:.LANCHOR20 4540 stp x21, x22, [sp, 32] 4541 mov w22, 0 4542.L627: 4543 ldr w0, [x23] 4544 ldrh w1, [x19, 2] 4545 add w0, w0, 1 4546 str w0, [x23] 4547 ldrh w0, [x26, #:lo12:.LANCHOR20] 4548 sub w0, w0, #1 4549 cmp w1, w0 4550 bge .L628 4551 ldrh w1, [x19] 4552 mov w0, 65535 4553 cmp w1, w0 4554 bne .L629 4555.L628: 4556 mov x0, x19 4557 bl Ftl_write_map_blk_to_last_page 4558.L629: 4559 ldrh w1, [x19] 4560 ldr x0, [x19, 16] 4561 ldrh w0, [x0, x1, lsl 1] 4562 cbnz w0, .L630 4563 adrp x0, .LC1 4564 mov w2, 699 4565 mov x1, x24 4566 add x0, x0, :lo12:.LC1 4567 bl printf 4568.L630: 4569 ldrh w1, [x19] 4570 ldrh w0, [x19, 10] 4571 cmp w1, w0 4572 bcc .L631 4573 adrp x0, .LC1 4574 mov w2, 700 4575 mov x1, x24 4576 add x0, x0, :lo12:.LC1 4577 bl printf 4578.L631: 4579 ldrh w1, [x19] 4580 adrp x21, .LANCHOR106 4581 ldr x0, [x19, 16] 4582 add x20, x21, :lo12:.LANCHOR106 4583 mov w2, 16 4584 ldrh w3, [x0, x1, lsl 1] 4585 mov w1, 0 4586 ldrh w0, [x19, 2] 4587 str w3, [x29, 108] 4588 str x27, [x20, 8] 4589 orr w0, w0, w3, lsl 10 4590 str w0, [x20, 4] 4591 adrp x0, .LANCHOR108 4592 ldr x0, [x0, #:lo12:.LANCHOR108] 4593 str x0, [x20, 16] 4594 bl ftl_memset 4595 ldr x0, [x20, 16] 4596 ldr w1, [x19, 48] 4597 ldr w3, [x29, 108] 4598 str w1, [x0, 4] 4599 ldrh w1, [x19, 4] 4600 strh w1, [x0] 4601 strh w3, [x0, 2] 4602 mov w3, 1 4603 strh w25, [x0, 8] 4604 mov w1, w3 4605 mov w2, w3 4606 mov x0, x20 4607 bl FlashProgPages 4608 ldrh w0, [x19, 2] 4609 ldr w1, [x21, #:lo12:.LANCHOR106] 4610 add w0, w0, 1 4611 and w0, w0, 65535 4612 strh w0, [x19, 2] 4613 cmn w1, #1 4614 bne .L632 4615 ldr w1, [x20, 4] 4616 adrp x0, .LC89 4617 add x0, x0, :lo12:.LC89 4618 add w22, w22, 1 4619 and w22, w22, 65535 4620 bl printf 4621 ldrh w0, [x19, 2] 4622 cmp w0, 2 4623 bhi .L633 4624 ldrh w0, [x28] 4625 sub w0, w0, #1 4626 strh w0, [x19, 2] 4627.L633: 4628 cmp w22, 3 4629 bls .L634 4630 add x21, x21, :lo12:.LANCHOR106 4631 adrp x0, .LC90 4632 mov w2, w22 4633 add x0, x0, :lo12:.LC90 4634 ldr w1, [x21, 4] 4635 bl printf 4636.L635: 4637 b .L635 4638.L634: 4639 ldr w0, [x19, 52] 4640 cbz w0, .L627 4641.L644: 4642 b .L644 4643.L632: 4644 cmp w0, 1 4645 beq .L627 4646 ldr x0, [x19, 40] 4647 ldr w1, [x20, 4] 4648 ldp x21, x22, [sp, 32] 4649 ldp x23, x24, [sp, 48] 4650 ldp x27, x28, [sp, 80] 4651 str w1, [x0, w25, uxtw 2] 4652 ldp x19, x20, [sp, 16] 4653 mov w0, 0 4654 ldp x25, x26, [sp, 64] 4655 ldp x29, x30, [sp], 112 4656 ret 4657 .size FtlMapWritePage, .-FtlMapWritePage 4658 .section .text.ftl_map_blk_gc,"ax",@progbits 4659 .align 2 4660 .global ftl_map_blk_gc 4661 .type ftl_map_blk_gc, %function 4662ftl_map_blk_gc: 4663 stp x29, x30, [sp, -96]! 4664 add x29, sp, 0 4665 stp x19, x20, [sp, 16] 4666 mov x19, x0 4667 stp x23, x24, [sp, 48] 4668 adrp x23, .LANCHOR20 4669 stp x21, x22, [sp, 32] 4670 stp x25, x26, [sp, 64] 4671 stp x27, x28, [sp, 80] 4672 ldr x20, [x0, 16] 4673 ldr x24, [x0, 40] 4674 bl ftl_free_no_use_map_blk 4675 ldrh w1, [x19, 10] 4676 ldrh w2, [x19, 8] 4677 sub w1, w1, #4 4678 cmp w2, w1 4679 blt .L647 4680 ubfiz x0, x0, 1, 16 4681 ldrh w21, [x20, x0] 4682 cbz w21, .L647 4683 ldr w1, [x19, 52] 4684 cbnz w1, .L647 4685 mov w1, 1 4686 str w1, [x19, 52] 4687 strh wzr, [x20, x0] 4688 ldrh w0, [x19, 8] 4689 ldrh w1, [x19, 2] 4690 sub w0, w0, #1 4691 strh w0, [x19, 8] 4692 ldrh w0, [x23, #:lo12:.LANCHOR20] 4693 cmp w1, w0 4694 bcc .L648 4695 mov x0, x19 4696 bl ftl_map_blk_alloc_new_blk 4697.L648: 4698 adrp x25, .LANCHOR106 4699 adrp x22, .LANCHOR143 4700 add x26, x25, :lo12:.LANCHOR106 4701 add x22, x22, :lo12:.LANCHOR143 4702 mov w20, 0 4703.L649: 4704 ldrh w0, [x19, 6] 4705 cmp w0, w20 4706 bhi .L653 4707 mov w1, 1 4708 mov w0, w21 4709 bl FtlFreeSysBlkQueueIn 4710 str wzr, [x19, 52] 4711.L647: 4712 ldrh w1, [x19, 2] 4713 ldrh w0, [x23, #:lo12:.LANCHOR20] 4714 cmp w1, w0 4715 bcc .L654 4716 mov x0, x19 4717 bl ftl_map_blk_alloc_new_blk 4718.L654: 4719 mov w0, 0 4720 ldp x19, x20, [sp, 16] 4721 ldp x21, x22, [sp, 32] 4722 ldp x23, x24, [sp, 48] 4723 ldp x25, x26, [sp, 64] 4724 ldp x27, x28, [sp, 80] 4725 ldp x29, x30, [sp], 96 4726 ret 4727.L653: 4728 ubfiz x27, x20, 2, 16 4729 ldr w1, [x24, x27] 4730 cmp w21, w1, lsr 10 4731 bne .L650 4732 adrp x2, .LANCHOR123 4733 add x0, x25, :lo12:.LANCHOR106 4734 ldr x2, [x2, #:lo12:.LANCHOR123] 4735 str x2, [x0, 8] 4736 adrp x2, .LANCHOR108 4737 str w1, [x0, 4] 4738 ldr x28, [x2, #:lo12:.LANCHOR108] 4739 mov w2, 1 4740 str x28, [x0, 16] 4741 mov w1, w2 4742 bl FlashReadPages 4743 ldrh w0, [x28, 8] 4744 cmp w0, w20 4745 beq .L651 4746 adrp x0, .LC1 4747 mov w2, 613 4748 mov x1, x22 4749 add x0, x0, :lo12:.LC1 4750 bl printf 4751.L651: 4752 ldr w0, [x26] 4753 cmn w0, #1 4754 bne .L652 4755 str wzr, [x24, x27] 4756.L650: 4757 add w20, w20, 1 4758 and w20, w20, 65535 4759 b .L649 4760.L652: 4761 ldr x2, [x26, 8] 4762 mov w1, w20 4763 mov x0, x19 4764 bl FtlMapWritePage 4765 b .L650 4766 .size ftl_map_blk_gc, .-ftl_map_blk_gc 4767 .section .text.flush_l2p_region,"ax",@progbits 4768 .align 2 4769 .global flush_l2p_region 4770 .type flush_l2p_region, %function 4771flush_l2p_region: 4772 stp x29, x30, [sp, -32]! 4773 add x29, sp, 0 4774 stp x19, x20, [sp, 16] 4775 adrp x20, .LANCHOR55 4776 ubfiz x19, x0, 4, 16 4777 ldr x0, [x20, #:lo12:.LANCHOR55] 4778 add x1, x0, x19 4779 ldr x2, [x1, 8] 4780 ldrh w1, [x0, x19] 4781 adrp x0, .LANCHOR144 4782 add x0, x0, :lo12:.LANCHOR144 4783 bl FtlMapWritePage 4784 ldr x0, [x20, #:lo12:.LANCHOR55] 4785 add x0, x0, x19 4786 ldp x19, x20, [sp, 16] 4787 ldr w1, [x0, 4] 4788 and w1, w1, 2147483647 4789 str w1, [x0, 4] 4790 mov w0, 0 4791 ldp x29, x30, [sp], 32 4792 ret 4793 .size flush_l2p_region, .-flush_l2p_region 4794 .section .text.log2phys,"ax",@progbits 4795 .align 2 4796 .global log2phys 4797 .type log2phys, %function 4798log2phys: 4799 stp x29, x30, [sp, -80]! 4800 add x29, sp, 0 4801 stp x23, x24, [sp, 48] 4802 mov x23, x1 4803 adrp x1, .LANCHOR22 4804 stp x19, x20, [sp, 16] 4805 stp x21, x22, [sp, 32] 4806 mov w24, w2 4807 ldrh w19, [x1, #:lo12:.LANCHOR22] 4808 str x25, [sp, 64] 4809 add w1, w19, 7 4810 mov x19, 1 4811 lsr w22, w0, w1 4812 and w22, w22, 65535 4813 lsl x19, x19, x1 4814 adrp x1, .LANCHOR61 4815 sub w19, w19, #1 4816 ldr w1, [x1, #:lo12:.LANCHOR61] 4817 and w19, w19, w0 4818 and x19, x19, 65535 4819 cmp w0, w1 4820 bcc .L662 4821 adrp x1, .LANCHOR145 4822 adrp x0, .LC1 4823 mov w2, 808 4824 add x1, x1, :lo12:.LANCHOR145 4825 add x0, x0, :lo12:.LC1 4826 bl printf 4827.L662: 4828 adrp x21, .LANCHOR55 4829 adrp x0, .LANCHOR33 4830 ldr x2, [x21, #:lo12:.LANCHOR55] 4831 ldrh w1, [x0, #:lo12:.LANCHOR33] 4832 mov x0, 0 4833.L663: 4834 and x20, x0, 65535 4835 cmp w20, w1 4836 bcc .L668 4837 bl select_l2p_ram_region 4838 and x20, x0, 65535 4839 ldr x2, [x21, #:lo12:.LANCHOR55] 4840 ubfiz x1, x20, 4, 16 4841 mov w25, w0 4842 add x3, x2, x1 4843 ldrh w2, [x2, x1] 4844 mov w1, 65535 4845 cmp w2, w1 4846 beq .L669 4847 ldr w1, [x3, 4] 4848 tbz w1, #31, .L669 4849 bl flush_l2p_region 4850.L669: 4851 mov w1, w25 4852 mov w0, w22 4853 bl load_l2p_region 4854 b .L664 4855.L668: 4856 add x0, x0, 1 4857 add x3, x2, x0, lsl 4 4858 ldrh w3, [x3, -16] 4859 cmp w3, w22 4860 bne .L663 4861.L664: 4862 ldr x0, [x21, #:lo12:.LANCHOR55] 4863 add x0, x0, x20, lsl 4 4864 cbnz w24, .L665 4865 ldr x0, [x0, 8] 4866 ldr w0, [x0, x19, lsl 2] 4867 str w0, [x23] 4868.L666: 4869 ldr x0, [x21, #:lo12:.LANCHOR55] 4870 add x20, x0, x20, lsl 4 4871 ldr w0, [x20, 4] 4872 cmn w0, #1 4873 beq .L671 4874 add w0, w0, 1 4875 str w0, [x20, 4] 4876.L671: 4877 mov w0, 0 4878 ldr x25, [sp, 64] 4879 ldp x19, x20, [sp, 16] 4880 ldp x21, x22, [sp, 32] 4881 ldp x23, x24, [sp, 48] 4882 ldp x29, x30, [sp], 80 4883 ret 4884.L665: 4885 ldr x1, [x0, 8] 4886 ldr w2, [x23] 4887 str w2, [x1, x19, lsl 2] 4888 ldr w1, [x0, 4] 4889 orr w1, w1, -2147483648 4890 str w1, [x0, 4] 4891 adrp x0, .LANCHOR56 4892 strh w22, [x0, #:lo12:.LANCHOR56] 4893 b .L666 4894 .size log2phys, .-log2phys 4895 .section .text.FtlReUsePrevPpa,"ax",@progbits 4896 .align 2 4897 .global FtlReUsePrevPpa 4898 .type FtlReUsePrevPpa, %function 4899FtlReUsePrevPpa: 4900 stp x29, x30, [sp, -80]! 4901 add x29, sp, 0 4902 stp x21, x22, [sp, 32] 4903 adrp x22, .LANCHOR42 4904 stp x19, x20, [sp, 16] 4905 mov w21, w0 4906 str w1, [x29, 76] 4907 lsr w0, w1, 10 4908 str x23, [sp, 48] 4909 bl P2V_block_in_plane 4910 ldr x2, [x22, #:lo12:.LANCHOR42] 4911 and w3, w0, 65535 4912 ubfiz x20, x3, 1, 16 4913 ldrh w1, [x2, x20] 4914 cbnz w1, .L677 4915 adrp x0, .LANCHOR47 4916 ldr x19, [x0, #:lo12:.LANCHOR47] 4917 cbz x19, .L678 4918 adrp x2, .LANCHOR40 4919 mov x5, -6148914691236517206 4920 movk x5, 0xaaab, lsl 0 4921 adrp x23, .LANCHOR48 4922 ldr x2, [x2, #:lo12:.LANCHOR40] 4923 mov w6, 65535 4924 ldrh w4, [x23, #:lo12:.LANCHOR48] 4925 sub x19, x19, x2 4926 asr x19, x19, 1 4927 mul x19, x19, x5 4928 mov w5, 6 4929 and w19, w19, 65535 4930.L679: 4931 cmp w1, w4 4932 beq .L678 4933 cmp w19, w3 4934 bne .L680 4935 mov w1, w19 4936 add x0, x0, :lo12:.LANCHOR47 4937 bl List_remove_node 4938 ldrh w0, [x23, #:lo12:.LANCHOR48] 4939 cbnz w0, .L681 4940 adrp x1, .LANCHOR146 4941 adrp x0, .LC1 4942 mov w2, 1688 4943 add x1, x1, :lo12:.LANCHOR146 4944 add x0, x0, :lo12:.LC1 4945 bl printf 4946.L681: 4947 ldrh w0, [x23, #:lo12:.LANCHOR48] 4948 sub w0, w0, #1 4949 strh w0, [x23, #:lo12:.LANCHOR48] 4950 mov w0, w19 4951 bl INSERT_DATA_LIST 4952 ldr x1, [x22, #:lo12:.LANCHOR42] 4953 ldrh w0, [x1, x20] 4954 add w0, w0, 1 4955 strh w0, [x1, x20] 4956.L678: 4957 add x1, x29, 76 4958 mov w2, 1 4959 mov w0, w21 4960 bl log2phys 4961 ldp x19, x20, [sp, 16] 4962 ldp x21, x22, [sp, 32] 4963 ldr x23, [sp, 48] 4964 ldp x29, x30, [sp], 80 4965 ret 4966.L680: 4967 umull x19, w19, w5 4968 ldrh w19, [x2, x19] 4969 cmp w19, w6 4970 beq .L678 4971 add w1, w1, 1 4972 and w1, w1, 65535 4973 b .L679 4974.L677: 4975 add w1, w1, 1 4976 strh w1, [x2, x20] 4977 b .L678 4978 .size FtlReUsePrevPpa, .-FtlReUsePrevPpa 4979 .section .text.ftl_scan_all_data,"ax",@progbits 4980 .align 2 4981 .global ftl_scan_all_data 4982 .type ftl_scan_all_data, %function 4983ftl_scan_all_data: 4984 sub sp, sp, #96 4985 adrp x0, .LC91 4986 mov w1, 0 4987 add x0, x0, :lo12:.LC91 4988 stp x29, x30, [sp, 16] 4989 add x29, sp, 16 4990 stp x19, x20, [sp, 32] 4991 adrp x20, .LANCHOR106 4992 stp x21, x22, [sp, 48] 4993 mov w19, 0 4994 adrp x21, .LANCHOR61 4995 add x22, x20, :lo12:.LANCHOR106 4996 add x21, x21, :lo12:.LANCHOR61 4997 str x23, [sp, 64] 4998 bl printf 4999.L688: 5000 ldr w0, [x21] 5001 cmp w19, w0 5002 bcc .L694 5003 ldp x19, x20, [sp, 32] 5004 ldp x21, x22, [sp, 48] 5005 ldp x29, x30, [sp, 16] 5006 ldr x23, [sp, 64] 5007 add sp, sp, 96 5008 ret 5009.L694: 5010 mov w2, 0 5011 add x1, x29, 76 5012 mov w0, w19 5013 bl log2phys 5014 tst x19, 2047 5015 bne .L689 5016 ldr w2, [x29, 76] 5017 adrp x0, .LC92 5018 mov w1, w19 5019 add x0, x0, :lo12:.LC92 5020 bl printf 5021.L689: 5022 ldr w1, [x29, 76] 5023 cmn w1, #1 5024 beq .L691 5025 add x0, x20, :lo12:.LANCHOR106 5026 str wzr, [x20, #:lo12:.LANCHOR106] 5027 mov w2, 0 5028 str w1, [x0, 4] 5029 adrp x1, .LANCHOR107 5030 str w19, [x0, 24] 5031 ldr x1, [x1, #:lo12:.LANCHOR107] 5032 str x1, [x0, 8] 5033 adrp x1, .LANCHOR108 5034 ldr x23, [x1, #:lo12:.LANCHOR108] 5035 mov w1, 1 5036 str x23, [x0, 16] 5037 bl FlashReadPages 5038 ldr w0, [x20, #:lo12:.LANCHOR106] 5039 cmp w0, 256 5040 ccmn w0, #1, 4, ne 5041 beq .L692 5042 ldr w0, [x23, 8] 5043 cmp w19, w0 5044 beq .L691 5045.L692: 5046 ldp x1, x0, [x22, 8] 5047 ldr w2, [x1, 4] 5048 str w2, [sp] 5049 ldr w2, [x22, 4] 5050 ldp w3, w4, [x0] 5051 ldp w5, w6, [x0, 8] 5052 adrp x0, .LC93 5053 ldr w7, [x1] 5054 add x0, x0, :lo12:.LC93 5055 mov w1, w19 5056 bl printf 5057.L691: 5058 add w19, w19, 1 5059 b .L688 5060 .size ftl_scan_all_data, .-ftl_scan_all_data 5061 .section .text.FtlReadRefresh,"ax",@progbits 5062 .align 2 5063 .global FtlReadRefresh 5064 .type FtlReadRefresh, %function 5065FtlReadRefresh: 5066 adrp x1, .LANCHOR81 5067 add x0, x1, :lo12:.LANCHOR81 5068 ldr w2, [x0, 80] 5069 cbz w2, .L697 5070 adrp x1, .LANCHOR61 5071 ldr w3, [x0, 84] 5072 ldr w2, [x1, #:lo12:.LANCHOR61] 5073 cmp w3, w2 5074 bcs .L698 5075 stp x29, x30, [sp, -160]! 5076 add x29, sp, 0 5077 stp x19, x20, [sp, 16] 5078 mov x19, x0 5079 add x20, x1, :lo12:.LANCHOR61 5080 str x21, [sp, 32] 5081 mov w21, 2048 5082.L703: 5083 ldr w0, [x19, 84] 5084 ldr w1, [x20] 5085 cmp w0, w1 5086 bcs .L700 5087 add x1, x29, 60 5088 mov w2, 0 5089 bl log2phys 5090 ldr w0, [x19, 84] 5091 ldr w1, [x29, 60] 5092 add w0, w0, 1 5093 str w0, [x19, 84] 5094 cmn w1, #1 5095 beq .L701 5096 str w0, [x29, 88] 5097 adrp x0, ftl_temp_buf 5098 add x0, x0, :lo12:ftl_temp_buf 5099 str x0, [x29, 72] 5100 add x0, x29, 96 5101 str x0, [x29, 80] 5102 add x0, x29, 160 5103 str w1, [x29, 68] 5104 mov w2, 0 5105 mov w1, 1 5106 str wzr, [x0, -96]! 5107 bl FlashReadPages 5108 ldr w0, [x29, 64] 5109 cmp w0, 256 5110 bne .L700 5111 ldr w0, [x29, 60] 5112 lsr w0, w0, 10 5113 bl P2V_block_in_plane 5114 bl FtlGcRefreshBlock 5115.L700: 5116 ldp x19, x20, [sp, 16] 5117 mov w0, -1 5118 ldr x21, [sp, 32] 5119 ldp x29, x30, [sp], 160 5120 ret 5121.L701: 5122 subs w21, w21, #1 5123 bne .L703 5124 b .L700 5125.L698: 5126 adrp x1, .LANCHOR62 5127 str wzr, [x0, 84] 5128 ldr w1, [x1, #:lo12:.LANCHOR62] 5129 stp w1, wzr, [x0, 76] 5130.L707: 5131 mov w0, 0 5132 ret 5133.L697: 5134 ldr w4, [x0, 76] 5135 adrp x0, .LANCHOR62 5136 ldr w2, [x0, #:lo12:.LANCHOR62] 5137 add w0, w2, 1048576 5138 cmp w4, w0 5139 bhi .L706 5140 adrp x0, .LANCHOR76 5141 ldr w0, [x0, #:lo12:.LANCHOR76] 5142 lsr w3, w0, 10 5143 mov w0, 33554432 5144 asr w0, w0, w3 5145 add w0, w0, w4 5146 cmp w2, w0 5147 bhi .L706 5148 adrp x0, .LANCHOR39+28 5149 ldrb w0, [x0, #:lo12:.LANCHOR39+28] 5150 cbnz w0, .L707 5151.L706: 5152 add x0, x1, :lo12:.LANCHOR81 5153 mov w1, 1 5154 str wzr, [x0, 84] 5155 stp w2, w1, [x0, 76] 5156 b .L707 5157 .size FtlReadRefresh, .-FtlReadRefresh 5158 .section .text.FtlMapBlkWriteDump_data,"ax",@progbits 5159 .align 2 5160 .global FtlMapBlkWriteDump_data 5161 .type FtlMapBlkWriteDump_data, %function 5162FtlMapBlkWriteDump_data: 5163 ldr w1, [x0, 56] 5164 cbz w1, .L713 5165 stp x29, x30, [sp, -48]! 5166 adrp x1, .LANCHOR106 5167 adrp x2, .LANCHOR108 5168 add x29, sp, 0 5169 stp x19, x20, [sp, 16] 5170 mov x19, x0 5171 ldrh w20, [x0, 6] 5172 adrp x0, .LANCHOR123 5173 ldr x2, [x2, #:lo12:.LANCHOR108] 5174 ldr x3, [x0, #:lo12:.LANCHOR123] 5175 add x0, x1, :lo12:.LANCHOR106 5176 sub w20, w20, #1 5177 ldr x4, [x19, 40] 5178 and w20, w20, 65535 5179 str x21, [sp, 32] 5180 stp x3, x2, [x0, 8] 5181 ubfiz x2, x20, 2, 16 5182 str wzr, [x19, 56] 5183 mov x21, x1 5184 ldr w2, [x4, x2] 5185 str w2, [x0, 4] 5186 cbz w2, .L715 5187 mov w2, 1 5188 mov w1, w2 5189 bl FlashReadPages 5190.L716: 5191 add x1, x21, :lo12:.LANCHOR106 5192 mov x0, x19 5193 ldr x21, [sp, 32] 5194 ldr x2, [x1, 8] 5195 mov w1, w20 5196 ldp x19, x20, [sp, 16] 5197 ldp x29, x30, [sp], 48 5198 b FtlMapWritePage 5199.L715: 5200 adrp x0, .LANCHOR23 5201 mov w1, 255 5202 ldrh w2, [x0, #:lo12:.LANCHOR23] 5203 mov x0, x3 5204 bl ftl_memset 5205 b .L716 5206.L713: 5207 ret 5208 .size FtlMapBlkWriteDump_data, .-FtlMapBlkWriteDump_data 5209 .section .text.FtlScanSysBlk,"ax",@progbits 5210 .align 2 5211 .global FtlScanSysBlk 5212 .type FtlScanSysBlk, %function 5213FtlScanSysBlk: 5214 stp x29, x30, [sp, -176]! 5215 mov w1, 0 5216 add x29, sp, 0 5217 stp x25, x26, [sp, 64] 5218 adrp x25, .LANCHOR135 5219 stp x21, x22, [sp, 32] 5220 adrp x21, .LANCHOR30 5221 ldr x0, [x25, #:lo12:.LANCHOR135] 5222 adrp x22, .LANCHOR132 5223 ldr w2, [x21, #:lo12:.LANCHOR30] 5224 stp x19, x20, [sp, 16] 5225 adrp x20, .LANCHOR147 5226 stp x23, x24, [sp, 48] 5227 adrp x23, .LANCHOR35 5228 stp x27, x28, [sp, 80] 5229 adrp x27, .LANCHOR129 5230 lsl w2, w2, 2 5231 strh wzr, [x20, #:lo12:.LANCHOR147] 5232 strh wzr, [x23, #:lo12:.LANCHOR35] 5233 bl ftl_memset 5234 ldr x0, [x27, #:lo12:.LANCHOR129] 5235 mov w1, 0 5236 ldr w2, [x21, #:lo12:.LANCHOR30] 5237 adrp x19, .LANCHOR27 5238 adrp x28, .LANCHOR36 5239 adrp x24, .LANCHOR79 5240 lsl w2, w2, 1 5241 bl ftl_memset 5242 ldr x0, [x22, #:lo12:.LANCHOR132] 5243 mov w1, 0 5244 ldrh w2, [x19, #:lo12:.LANCHOR27] 5245 lsl w2, w2, 2 5246 bl ftl_memset 5247 ldr x0, [x28, #:lo12:.LANCHOR36] 5248 mov w1, 0 5249 ldrh w2, [x19, #:lo12:.LANCHOR27] 5250 lsl w2, w2, 1 5251 bl ftl_memset 5252 mov w2, 12 5253 mov w1, 255 5254 add x0, x24, :lo12:.LANCHOR79 5255 bl ftl_memset 5256 adrp x0, .LANCHOR5 5257 stp x22, x25, [x29, 144] 5258 str x27, [x29, 160] 5259 ldrh w0, [x0, #:lo12:.LANCHOR5] 5260 str w0, [x29, 172] 5261 adrp x0, .LANCHOR6 5262 add x0, x0, :lo12:.LANCHOR6 5263 str x0, [x29, 120] 5264 adrp x0, .LANCHOR70 5265 add x0, x0, :lo12:.LANCHOR70 5266 str x0, [x29, 112] 5267.L721: 5268 ldr x0, [x29, 120] 5269 ldr w1, [x29, 172] 5270 ldrh w0, [x0] 5271 cmp w0, w1 5272 bls .L761 5273 adrp x0, .LANCHOR3 5274 adrp x25, .LANCHOR120 5275 adrp x6, .LANCHOR13 5276 mov x5, 0 5277 ldrh w12, [x0, #:lo12:.LANCHOR3] 5278 adrp x0, .LANCHOR91 5279 ldr x7, [x25, #:lo12:.LANCHOR120] 5280 mov w22, 0 5281 ldr x11, [x0, #:lo12:.LANCHOR91] 5282 adrp x0, .LANCHOR92 5283 add x6, x6, :lo12:.LANCHOR13 5284 ldr x10, [x0, #:lo12:.LANCHOR92] 5285 adrp x0, .LANCHOR24 5286 ldrh w8, [x0, #:lo12:.LANCHOR24] 5287 b .L762 5288.L723: 5289 ldrh w1, [x29, 172] 5290 ldrb w0, [x6, x5] 5291 bl V2P_block 5292 and w4, w0, 65535 5293 bl FtlBbmIsBadBlock 5294 cbnz w0, .L722 5295 ubfiz x0, x22, 5, 16 5296 mul w1, w22, w8 5297 add x0, x7, x0 5298 add w22, w22, 1 5299 and w22, w22, 65535 5300 lsl w4, w4, 10 5301 asr w1, w1, 2 5302 add x1, x10, x1, sxtw 2 5303 str w4, [x0, 4] 5304 stp x11, x1, [x0, 8] 5305.L722: 5306 add x5, x5, 1 5307.L762: 5308 cmp w12, w5, uxth 5309 bhi .L723 5310 cbnz w22, .L724 5311.L760: 5312 ldr w0, [x29, 172] 5313 add w26, w0, 1 5314 and w0, w26, 65535 5315 str w0, [x29, 172] 5316 b .L721 5317.L724: 5318 mov w1, w22 5319 mov w2, 1 5320 mov x0, x7 5321 bl FlashReadPages 5322 ubfiz x0, x22, 5, 16 5323 mov x22, 0 5324 str x0, [x29, 128] 5325 adrp x0, .LANCHOR148 5326 add x0, x0, :lo12:.LANCHOR148 5327 str x0, [x29, 136] 5328.L759: 5329 ldr x0, [x25, #:lo12:.LANCHOR120] 5330 add x1, x0, x22 5331 ldr w0, [x0, x22] 5332 ldr w3, [x1, 4] 5333 cmn w0, #1 5334 ldr x27, [x1, 16] 5335 ubfx x26, x3, 10, 16 5336 bne .L727 5337 mov w5, 16 5338 mov w7, 65535 5339.L729: 5340 ldr x0, [x25, #:lo12:.LANCHOR120] 5341 add x6, x25, :lo12:.LANCHOR120 5342 mov w2, 1 5343 str w7, [x29, 100] 5344 add x0, x0, x22 5345 str x6, [x29, 104] 5346 str w5, [x29, 168] 5347 ldr w1, [x0, 4] 5348 add w1, w1, 1 5349 str w1, [x0, 4] 5350 mov w1, w2 5351 bl FlashReadPages 5352 ldrh w0, [x27] 5353 ldr w7, [x29, 100] 5354 ldr w5, [x29, 168] 5355 cmp w0, w7 5356 ldr x6, [x29, 104] 5357 bne .L726 5358 ldr x0, [x6] 5359 mov w1, -1 5360 str w1, [x0, x22] 5361 ldr x0, [x6] 5362 ldr w0, [x0, x22] 5363 cmp w0, w1 5364 bne .L727 5365.L728: 5366 mov w1, 0 5367 mov w0, w26 5368 bl FtlFreeSysBlkQueueIn 5369 b .L732 5370.L726: 5371 ldr x0, [x25, #:lo12:.LANCHOR120] 5372 ldr w0, [x0, x22] 5373 cmn w0, #1 5374 bne .L727 5375 sub w5, w5, #1 5376 ands w5, w5, 65535 5377 bne .L729 5378 b .L728 5379.L727: 5380 adrp x0, .LANCHOR70 5381 ldr w1, [x0, #:lo12:.LANCHOR70] 5382 ldr w0, [x27, 4] 5383 cmn w1, #1 5384 beq .L730 5385 cmp w1, w0 5386 bhi .L731 5387.L730: 5388 cmn w0, #1 5389 beq .L731 5390 ldr x2, [x29, 112] 5391 add w1, w0, 1 5392 str w1, [x2] 5393.L731: 5394 ldrh w1, [x27] 5395 mov w2, 61604 5396 cmp w1, w2 5397 beq .L733 5398 bhi .L734 5399 mov w0, 61574 5400 cmp w1, w0 5401 beq .L735 5402.L732: 5403 ldr x0, [x29, 128] 5404 add x22, x22, 32 5405 cmp x0, x22 5406 bne .L759 5407 b .L760 5408.L734: 5409 mov w0, 61634 5410 cmp w1, w0 5411 beq .L736 5412 mov w0, 65535 5413 cmp w1, w0 5414 beq .L728 5415 b .L732 5416.L736: 5417 ldrh w1, [x20, #:lo12:.LANCHOR147] 5418 ldr w0, [x21, #:lo12:.LANCHOR30] 5419 cmp w1, w0 5420 bls .L738 5421 ldr x1, [x29, 136] 5422 adrp x0, .LC1 5423 mov w2, 1211 5424 add x0, x0, :lo12:.LC1 5425 bl printf 5426.L738: 5427 ldr w6, [x21, #:lo12:.LANCHOR30] 5428 ldr x3, [x29, 152] 5429 ldrh w1, [x20, #:lo12:.LANCHOR147] 5430 and w2, w6, 65535 5431 sub w0, w2, #1 5432 sub w2, w2, w1 5433 sxth x0, w0 5434 sub w2, w2, #1 5435 ldr x5, [x3, #:lo12:.LANCHOR135] 5436 sxth w2, w2 5437.L739: 5438 cmp w0, w2 5439 bgt .L745 5440 tbz w0, #31, .L779 5441 b .L732 5442.L745: 5443 sxtw x8, w0 5444 ldr w11, [x27, 4] 5445 lsl x7, x8, 2 5446 add x10, x5, x7 5447 ldr w7, [x5, x7] 5448 cmp w11, w7 5449 bls .L740 5450 ldr w2, [x5] 5451 cbnz w2, .L741 5452 cmp w6, w1 5453 beq .L741 5454 add w1, w1, 1 5455 strh w1, [x20, #:lo12:.LANCHOR147] 5456.L741: 5457 ldr x1, [x29, 160] 5458 ldr x6, [x1, #:lo12:.LANCHOR129] 5459 mov w1, 0 5460.L742: 5461 cmp w1, w0 5462 bne .L743 5463 ldr w1, [x27, 4] 5464 str w1, [x10] 5465 strh w26, [x6, x8, lsl 1] 5466 tbnz w0, #31, .L732 5467 ldrh w1, [x20, #:lo12:.LANCHOR147] 5468 ldr w2, [x21, #:lo12:.LANCHOR30] 5469 sub w2, w2, w1 5470 sub w2, w2, #1 5471 cmp w0, w2, sxth 5472 bgt .L732 5473.L779: 5474 add w1, w1, 1 5475 strh w1, [x20, #:lo12:.LANCHOR147] 5476 ldr w1, [x27, 4] 5477 str w1, [x5, x0, lsl 2] 5478 ldr x1, [x29, 160] 5479 ldr x1, [x1, #:lo12:.LANCHOR129] 5480.L797: 5481 strh w26, [x1, x0, lsl 1] 5482 b .L732 5483.L743: 5484 sxtw x2, w1 5485 add w1, w1, 1 5486 lsl x7, x2, 2 5487 lsl x2, x2, 1 5488 add x11, x5, x7 5489 sxth w1, w1 5490 ldr w11, [x11, 4] 5491 str w11, [x5, x7] 5492 add x7, x6, x2 5493 ldrh w7, [x7, 2] 5494 strh w7, [x6, x2] 5495 b .L742 5496.L740: 5497 sub w0, w0, #1 5498 sxth x0, w0 5499 b .L739 5500.L735: 5501 ldrh w1, [x23, #:lo12:.LANCHOR35] 5502 ldrh w0, [x19, #:lo12:.LANCHOR27] 5503 cmp w1, w0 5504 bls .L748 5505 ldr x1, [x29, 136] 5506 adrp x0, .LC1 5507 mov w2, 1252 5508 add x0, x0, :lo12:.LC1 5509 bl printf 5510.L748: 5511 ldrh w6, [x19, #:lo12:.LANCHOR27] 5512 ldrh w2, [x23, #:lo12:.LANCHOR35] 5513 sub w1, w6, #1 5514 sxth x0, w1 5515 sub w5, w1, w2 5516 ldr x1, [x29, 144] 5517 ldr x1, [x1, #:lo12:.LANCHOR132] 5518.L749: 5519 cmp w0, w5 5520 ble .L754 5521 sxtw x7, w0 5522 ldr w11, [x27, 4] 5523 lsl x8, x7, 2 5524 add x10, x1, x8 5525 ldr w8, [x1, x8] 5526 cmp w11, w8 5527 bls .L750 5528 ldr w5, [x1] 5529 cbnz w5, .L751 5530 cmp w6, w2 5531 beq .L751 5532 add w2, w2, 1 5533 strh w2, [x23, #:lo12:.LANCHOR35] 5534.L751: 5535 ldr x6, [x28, #:lo12:.LANCHOR36] 5536 mov w2, 0 5537.L752: 5538 cmp w2, w0 5539 bne .L753 5540 ldr w2, [x27, 4] 5541 str w2, [x10] 5542 strh w26, [x6, x7, lsl 1] 5543.L754: 5544 tbnz w0, #31, .L732 5545 ldrh w2, [x19, #:lo12:.LANCHOR27] 5546 ldrh w5, [x23, #:lo12:.LANCHOR35] 5547 sub w2, w2, #1 5548 sub w2, w2, w5 5549 cmp w0, w2, sxth 5550 bgt .L732 5551 add w5, w5, 1 5552 ldr w2, [x27, 4] 5553 strh w5, [x23, #:lo12:.LANCHOR35] 5554 str w2, [x1, x0, lsl 2] 5555 ldr x1, [x28, #:lo12:.LANCHOR36] 5556 b .L797 5557.L753: 5558 sxtw x5, w2 5559 add w2, w2, 1 5560 lsl x8, x5, 2 5561 lsl x5, x5, 1 5562 add x11, x1, x8 5563 sxth w2, w2 5564 ldr w11, [x11, 4] 5565 str w11, [x1, x8] 5566 add x8, x6, x5 5567 ldrh w8, [x8, 2] 5568 strh w8, [x6, x5] 5569 b .L752 5570.L750: 5571 sub w0, w0, #1 5572 sxth x0, w0 5573 b .L749 5574.L733: 5575 ldrh w5, [x24, #:lo12:.LANCHOR79] 5576 mov w1, 65535 5577 add x2, x24, :lo12:.LANCHOR79 5578 cmp w5, w1 5579 bne .L756 5580 strh w26, [x24, #:lo12:.LANCHOR79] 5581 str w0, [x2, 8] 5582 b .L732 5583.L756: 5584 ldrh w0, [x2, 4] 5585 cmp w0, w1 5586 beq .L757 5587 mov w1, 1 5588 bl FtlFreeSysBlkQueueIn 5589.L757: 5590 add x0, x24, :lo12:.LANCHOR79 5591 ldr w1, [x27, 4] 5592 ldr w2, [x0, 8] 5593 cmp w2, w1 5594 bcs .L758 5595 ldrh w2, [x24, #:lo12:.LANCHOR79] 5596 strh w2, [x0, 4] 5597 strh w26, [x24, #:lo12:.LANCHOR79] 5598 str w1, [x0, 8] 5599 b .L732 5600.L758: 5601 strh w26, [x0, 4] 5602 b .L732 5603.L761: 5604 ldr x0, [x29, 160] 5605 ldr x2, [x0, #:lo12:.LANCHOR129] 5606 ldrh w0, [x2] 5607 cbz w0, .L763 5608.L766: 5609 ldr x1, [x28, #:lo12:.LANCHOR36] 5610 ldrh w0, [x1] 5611 cbz w0, .L764 5612.L765: 5613 ldrh w1, [x20, #:lo12:.LANCHOR147] 5614 ldr w0, [x21, #:lo12:.LANCHOR30] 5615 cmp w1, w0 5616 bls .L795 5617 adrp x1, .LANCHOR148 5618 adrp x0, .LC1 5619 mov w2, 1377 5620 add x1, x1, :lo12:.LANCHOR148 5621 add x0, x0, :lo12:.LC1 5622 bl printf 5623.L795: 5624 ldp x19, x20, [sp, 16] 5625 mov w0, 0 5626 ldp x21, x22, [sp, 32] 5627 ldp x23, x24, [sp, 48] 5628 ldp x25, x26, [sp, 64] 5629 ldp x27, x28, [sp, 80] 5630 ldp x29, x30, [sp], 176 5631 ret 5632.L763: 5633 ldrh w0, [x20, #:lo12:.LANCHOR147] 5634 cbz w0, .L766 5635 ldr w1, [x21, #:lo12:.LANCHOR30] 5636 mov w0, 0 5637.L767: 5638 cmp w0, w1 5639 bcs .L766 5640 ldrh w3, [x2, w0, sxtw 1] 5641 cbz w3, .L768 5642 ldr x1, [x29, 152] 5643 add x7, x21, :lo12:.LANCHOR30 5644 ldr x4, [x1, #:lo12:.LANCHOR135] 5645 mov w1, w0 5646.L769: 5647 ldr w3, [x7] 5648 cmp w1, w3 5649 bcs .L766 5650 sxtw x6, w1 5651 sub w3, w1, w0 5652 lsl x5, x6, 1 5653 sxtw x3, w3 5654 add w1, w1, 1 5655 ldr w6, [x4, x6, lsl 2] 5656 sxth w1, w1 5657 ldrh w8, [x2, x5] 5658 strh w8, [x2, x3, lsl 1] 5659 str w6, [x4, x3, lsl 2] 5660 strh wzr, [x2, x5] 5661 b .L769 5662.L768: 5663 add w0, w0, 1 5664 sxth w0, w0 5665 b .L767 5666.L764: 5667 ldrh w0, [x23, #:lo12:.LANCHOR35] 5668 cbz w0, .L765 5669 ldrh w2, [x19, #:lo12:.LANCHOR27] 5670 mov w0, 0 5671.L774: 5672 mov w6, w0 5673 cmp w0, w2 5674 bge .L765 5675 ldrh w3, [x1, w0, sxtw 1] 5676 cbz w3, .L775 5677 ldr x2, [x29, 144] 5678 add x19, x19, :lo12:.LANCHOR27 5679 ldr x3, [x2, #:lo12:.LANCHOR132] 5680.L776: 5681 ldrh w2, [x19] 5682 cmp w0, w2 5683 bge .L765 5684 sxtw x5, w0 5685 sub w2, w0, w6 5686 lsl x4, x5, 1 5687 sxtw x2, w2 5688 add w0, w0, 1 5689 ldr w5, [x3, x5, lsl 2] 5690 sxth w0, w0 5691 ldrh w7, [x1, x4] 5692 strh w7, [x1, x2, lsl 1] 5693 str w5, [x3, x2, lsl 2] 5694 strh wzr, [x1, x4] 5695 b .L776 5696.L775: 5697 add w0, w0, 1 5698 sxth w0, w0 5699 b .L774 5700 .size FtlScanSysBlk, .-FtlScanSysBlk 5701 .section .text.FtlMapTblRecovery,"ax",@progbits 5702 .align 2 5703 .global FtlMapTblRecovery 5704 .type FtlMapTblRecovery, %function 5705FtlMapTblRecovery: 5706 stp x29, x30, [sp, -144]! 5707 mov w1, 0 5708 add x29, sp, 0 5709 stp x19, x20, [sp, 16] 5710 mov x19, x0 5711 stp x23, x24, [sp, 48] 5712 adrp x20, .LANCHOR106 5713 ldrh w23, [x0, 6] 5714 adrp x24, .LANCHOR20 5715 stp x21, x22, [sp, 32] 5716 ldr x21, [x0, 40] 5717 ldr x22, [x0, 16] 5718 lsl w2, w23, 2 5719 ldr x0, [x0, 24] 5720 str x0, [x29, 128] 5721 ldrh w0, [x19, 8] 5722 stp x25, x26, [sp, 64] 5723 stp x27, x28, [sp, 80] 5724 mov w27, 0 5725 str w0, [x29, 140] 5726 mov x0, x21 5727 bl ftl_memset 5728 str x20, [x29, 120] 5729 adrp x7, .LANCHOR107 5730 add x3, x20, :lo12:.LANCHOR106 5731 mov x26, x7 5732 mov x20, x3 5733 ldr x0, [x7, #:lo12:.LANCHOR107] 5734 str x0, [x3, 8] 5735 adrp x0, .LANCHOR108 5736 stp wzr, wzr, [x19, 48] 5737 ldr x25, [x0, #:lo12:.LANCHOR108] 5738 mov w0, -1 5739 str x25, [x3, 16] 5740 strh w0, [x19] 5741 strh w0, [x19, 2] 5742 mov w0, 1 5743 str w0, [x19, 56] 5744 ldr w0, [x29, 140] 5745 sub w0, w0, #1 5746 str w0, [x29, 136] 5747 add x0, x24, :lo12:.LANCHOR20 5748 str x0, [x29, 112] 5749.L799: 5750 ldr w0, [x29, 140] 5751 cmp w27, w0 5752 bge .L816 5753 ldr w0, [x29, 136] 5754 sxtw x28, w27 5755 cmp w27, w0 5756 bne .L800 5757 lsl x0, x28, 1 5758 mov w1, 1 5759 add x24, x22, x0 5760 ldrh w0, [x22, x0] 5761 mov w22, 0 5762 bl FtlGetLastWrittenPage 5763 sxth w26, w0 5764 add w0, w0, 1 5765 strh w0, [x19, 2] 5766 ldr x0, [x29, 128] 5767 strh w27, [x19] 5768 ldr w0, [x0, x28, lsl 2] 5769 str w0, [x19, 48] 5770 ldr x0, [x29, 120] 5771 add x20, x0, :lo12:.LANCHOR106 5772.L801: 5773 cmp w22, w26 5774 ble .L803 5775.L816: 5776 mov x0, x19 5777 bl ftl_free_no_use_map_blk 5778 adrp x0, .LANCHOR20 5779 ldrh w1, [x19, 2] 5780 ldrh w0, [x0, #:lo12:.LANCHOR20] 5781 cmp w1, w0 5782 bne .L805 5783 mov x0, x19 5784 bl ftl_map_blk_alloc_new_blk 5785.L805: 5786 mov x0, x19 5787 bl ftl_map_blk_gc 5788 mov x0, x19 5789 bl ftl_map_blk_gc 5790 mov w0, 0 5791 ldp x19, x20, [sp, 16] 5792 ldp x21, x22, [sp, 32] 5793 ldp x23, x24, [sp, 48] 5794 ldp x25, x26, [sp, 64] 5795 ldp x27, x28, [sp, 80] 5796 ldp x29, x30, [sp], 144 5797 ret 5798.L803: 5799 ldrh w0, [x24] 5800 mov w2, 1 5801 mov w1, w2 5802 orr w0, w22, w0, lsl 10 5803 str w0, [x20, 4] 5804 mov x0, x20 5805 bl FlashReadPages 5806 ldr w0, [x20] 5807 cmn w0, #1 5808 beq .L802 5809 ldrh w0, [x25, 8] 5810 cmp w23, w0 5811 bls .L802 5812 ldrh w2, [x25] 5813 ldrh w1, [x19, 4] 5814 cmp w2, w1 5815 bne .L802 5816 ubfiz x0, x0, 2, 16 5817 ldr w1, [x20, 4] 5818 str w1, [x21, x0] 5819.L802: 5820 add w22, w22, 1 5821 sxth w22, w22 5822 b .L801 5823.L800: 5824 ldr x0, [x26, #:lo12:.LANCHOR107] 5825 mov w2, 1 5826 str x0, [x20, 8] 5827 lsl x0, x28, 1 5828 ldrh w1, [x24, #:lo12:.LANCHOR20] 5829 add x28, x22, x0 5830 ldrh w0, [x22, x0] 5831 sub w1, w1, #1 5832 orr w0, w1, w0, lsl 10 5833 mov w1, w2 5834 str w0, [x20, 4] 5835 mov x0, x20 5836 bl FlashReadPages 5837 ldr w0, [x20] 5838 cmn w0, #1 5839 beq .L818 5840 ldrh w1, [x25] 5841 ldrh w0, [x19, 4] 5842 cmp w1, w0 5843 bne .L818 5844 ldrh w1, [x25, 8] 5845 mov w0, 64245 5846 cmp w1, w0 5847 beq .L807 5848.L818: 5849 mov w5, 0 5850.L808: 5851 ldr x0, [x29, 112] 5852 ldrh w0, [x0] 5853 cmp w5, w0 5854 bge .L814 5855 ldrh w0, [x28] 5856 mov w2, 1 5857 str w5, [x29, 108] 5858 mov w1, w2 5859 orr w0, w5, w0, lsl 10 5860 str w0, [x20, 4] 5861 mov x0, x20 5862 bl FlashReadPages 5863 ldr w0, [x20] 5864 ldr w5, [x29, 108] 5865 cmn w0, #1 5866 beq .L812 5867 ldrh w0, [x25, 8] 5868 cmp w23, w0 5869 bls .L812 5870 ldrh w2, [x25] 5871 ldrh w1, [x19, 4] 5872 cmp w2, w1 5873 bne .L812 5874 ubfiz x0, x0, 2, 16 5875 ldr w1, [x20, 4] 5876 str w1, [x21, x0] 5877.L812: 5878 add w5, w5, 1 5879 sxth w5, w5 5880 b .L808 5881.L807: 5882 ldrh w5, [x24, #:lo12:.LANCHOR20] 5883 mov w0, 0 5884 ldr x10, [x26, #:lo12:.LANCHOR107] 5885 sub w5, w5, #1 5886.L809: 5887 cmp w0, w5 5888 blt .L811 5889.L814: 5890 add w4, w27, 1 5891 sxth w27, w4 5892 b .L799 5893.L811: 5894 lsl w2, w0, 1 5895 sxtw x2, w2 5896 lsl x1, x2, 2 5897 ldrh w1, [x10, x1] 5898 cmp w23, w1 5899 bls .L810 5900 add x2, x2, 1 5901 ubfiz x1, x1, 2, 16 5902 ldr w2, [x10, x2, lsl 2] 5903 str w2, [x21, x1] 5904.L810: 5905 add w0, w0, 1 5906 sxth w0, w0 5907 b .L809 5908 .size FtlMapTblRecovery, .-FtlMapTblRecovery 5909 .section .text.FtlLoadVonderInfo,"ax",@progbits 5910 .align 2 5911 .global FtlLoadVonderInfo 5912 .type FtlLoadVonderInfo, %function 5913FtlLoadVonderInfo: 5914 stp x29, x30, [sp, -16]! 5915 adrp x1, .LANCHOR27 5916 adrp x0, .LANCHOR149 5917 add x0, x0, :lo12:.LANCHOR149 5918 add x29, sp, 0 5919 ldrh w1, [x1, #:lo12:.LANCHOR27] 5920 strh w1, [x0, 10] 5921 mov w1, -3962 5922 strh w1, [x0, 4] 5923 adrp x1, .LANCHOR35 5924 ldrh w1, [x1, #:lo12:.LANCHOR35] 5925 strh w1, [x0, 8] 5926 adrp x1, .LANCHOR28 5927 ldrh w1, [x1, #:lo12:.LANCHOR28] 5928 strh w1, [x0, 6] 5929 adrp x1, .LANCHOR36 5930 ldr x1, [x1, #:lo12:.LANCHOR36] 5931 str x1, [x0, 16] 5932 adrp x1, .LANCHOR132 5933 ldr x1, [x1, #:lo12:.LANCHOR132] 5934 str x1, [x0, 24] 5935 adrp x1, .LANCHOR131 5936 ldr x1, [x1, #:lo12:.LANCHOR131] 5937 str x1, [x0, 32] 5938 adrp x1, .LANCHOR133 5939 ldr x1, [x1, #:lo12:.LANCHOR133] 5940 str x1, [x0, 40] 5941 bl FtlMapTblRecovery 5942 mov w0, 0 5943 ldp x29, x30, [sp], 16 5944 ret 5945 .size FtlLoadVonderInfo, .-FtlLoadVonderInfo 5946 .section .text.FtlL2PDataInit,"ax",@progbits 5947 .align 2 5948 .global FtlL2PDataInit 5949 .type FtlL2PDataInit, %function 5950FtlL2PDataInit: 5951 stp x29, x30, [sp, -64]! 5952 mov w1, 0 5953 add x29, sp, 0 5954 stp x19, x20, [sp, 16] 5955 adrp x19, .LANCHOR130 5956 adrp x20, .LANCHOR30 5957 stp x21, x22, [sp, 32] 5958 ldr x0, [x19, #:lo12:.LANCHOR130] 5959 adrp x22, .LANCHOR23 5960 ldr w2, [x20, #:lo12:.LANCHOR30] 5961 adrp x21, .LANCHOR33 5962 str x23, [sp, 48] 5963 adrp x23, .LANCHOR136 5964 lsl w2, w2, 1 5965 bl ftl_memset 5966 ldrh w0, [x21, #:lo12:.LANCHOR33] 5967 mov w1, 255 5968 ldrh w2, [x22, #:lo12:.LANCHOR23] 5969 mul w2, w2, w0 5970 ldr x0, [x23, #:lo12:.LANCHOR136] 5971 bl ftl_memset 5972 adrp x0, .LANCHOR55 5973 ldrh w3, [x21, #:lo12:.LANCHOR33] 5974 ldr x6, [x23, #:lo12:.LANCHOR136] 5975 mov x1, 0 5976 ldr x0, [x0, #:lo12:.LANCHOR55] 5977 mov w2, -1 5978 ldrh w5, [x22, #:lo12:.LANCHOR23] 5979 add x3, x0, x3, lsl 4 5980.L829: 5981 add x4, x1, x5 5982 cmp x0, x3 5983 bne .L830 5984 adrp x1, .LANCHOR144 5985 add x0, x1, :lo12:.LANCHOR144 5986 ldp x21, x22, [sp, 32] 5987 strh w2, [x1, #:lo12:.LANCHOR144] 5988 ldr w1, [x20, #:lo12:.LANCHOR30] 5989 strh w1, [x0, 10] 5990 mov w1, -3902 5991 strh w1, [x0, 4] 5992 adrp x1, .LANCHOR147 5993 ldr x23, [sp, 48] 5994 strh w2, [x0, 2] 5995 ldrh w1, [x1, #:lo12:.LANCHOR147] 5996 strh w1, [x0, 8] 5997 adrp x1, .LANCHOR32 5998 ldrh w1, [x1, #:lo12:.LANCHOR32] 5999 strh w1, [x0, 6] 6000 adrp x1, .LANCHOR129 6001 ldr x1, [x1, #:lo12:.LANCHOR129] 6002 str x1, [x0, 16] 6003 adrp x1, .LANCHOR135 6004 ldr x1, [x1, #:lo12:.LANCHOR135] 6005 str x1, [x0, 24] 6006 ldr x1, [x19, #:lo12:.LANCHOR130] 6007 ldp x19, x20, [sp, 16] 6008 str x1, [x0, 32] 6009 adrp x1, .LANCHOR134 6010 ldr x1, [x1, #:lo12:.LANCHOR134] 6011 str x1, [x0, 40] 6012 ldp x29, x30, [sp], 64 6013 ret 6014.L830: 6015 and x1, x1, -4 6016 strh w2, [x0] 6017 add x1, x6, x1 6018 str wzr, [x0, 4] 6019 str x1, [x0, 8] 6020 add x0, x0, 16 6021 mov x1, x4 6022 b .L829 6023 .size FtlL2PDataInit, .-FtlL2PDataInit 6024 .section .text.FtlLoadMapInfo,"ax",@progbits 6025 .align 2 6026 .global FtlLoadMapInfo 6027 .type FtlLoadMapInfo, %function 6028FtlLoadMapInfo: 6029 stp x29, x30, [sp, -16]! 6030 add x29, sp, 0 6031 bl FtlL2PDataInit 6032 adrp x0, .LANCHOR144 6033 add x0, x0, :lo12:.LANCHOR144 6034 bl FtlMapTblRecovery 6035 mov w0, 0 6036 ldp x29, x30, [sp], 16 6037 ret 6038 .size FtlLoadMapInfo, .-FtlLoadMapInfo 6039 .section .text.FtlVariablesInit,"ax",@progbits 6040 .align 2 6041 .global FtlVariablesInit 6042 .type FtlVariablesInit, %function 6043FtlVariablesInit: 6044 stp x29, x30, [sp, -32]! 6045 adrp x0, .LANCHOR150 6046 mov w1, -1 6047 add x29, sp, 0 6048 strh w1, [x0, #:lo12:.LANCHOR150] 6049 adrp x0, .LANCHOR151 6050 mov w1, -1 6051 str x19, [sp, 16] 6052 str wzr, [x0, #:lo12:.LANCHOR151] 6053 adrp x0, .LANCHOR152 6054 adrp x19, .LANCHOR6 6055 str wzr, [x0, #:lo12:.LANCHOR152] 6056 adrp x0, .LANCHOR153 6057 str w1, [x0, #:lo12:.LANCHOR153] 6058 adrp x0, .LANCHOR35 6059 mov w1, 0 6060 strh wzr, [x0, #:lo12:.LANCHOR35] 6061 adrp x0, .LANCHOR27 6062 ldrh w2, [x0, #:lo12:.LANCHOR27] 6063 adrp x0, .LANCHOR36 6064 ldr x0, [x0, #:lo12:.LANCHOR36] 6065 lsl w2, w2, 1 6066 bl ftl_memset 6067 adrp x0, .LANCHOR43 6068 ldrh w2, [x19, #:lo12:.LANCHOR6] 6069 mov w1, 0 6070 ldr x0, [x0, #:lo12:.LANCHOR43] 6071 lsl w2, w2, 1 6072 bl ftl_memset 6073 adrp x0, .LANCHOR126 6074 ldrh w2, [x19, #:lo12:.LANCHOR6] 6075 mov w1, 0 6076 ldr x0, [x0, #:lo12:.LANCHOR126] 6077 lsl w2, w2, 1 6078 bl ftl_memset 6079 mov w2, 48 6080 mov w1, 0 6081 adrp x0, .LANCHOR39 6082 add x0, x0, :lo12:.LANCHOR39 6083 bl ftl_memset 6084 mov w2, 512 6085 mov w1, 0 6086 adrp x0, .LANCHOR81 6087 add x0, x0, :lo12:.LANCHOR81 6088 bl ftl_memset 6089 bl FtlGcBufInit 6090 bl FtlL2PDataInit 6091 ldr x19, [sp, 16] 6092 mov w0, 0 6093 ldp x29, x30, [sp], 32 6094 ret 6095 .size FtlVariablesInit, .-FtlVariablesInit 6096 .section .text.SupperBlkListInit,"ax",@progbits 6097 .align 2 6098 .global SupperBlkListInit 6099 .type SupperBlkListInit, %function 6100SupperBlkListInit: 6101 stp x29, x30, [sp, -96]! 6102 adrp x0, .LANCHOR6 6103 mov w1, 0 6104 add x29, sp, 0 6105 ldrh w2, [x0, #:lo12:.LANCHOR6] 6106 mov w0, 6 6107 stp x23, x24, [sp, 48] 6108 adrp x24, .LANCHOR40 6109 stp x19, x20, [sp, 16] 6110 adrp x23, .LANCHOR45 6111 stp x21, x22, [sp, 32] 6112 adrp x22, .LANCHOR48 6113 mul w2, w2, w0 6114 ldr x0, [x24, #:lo12:.LANCHOR40] 6115 stp x25, x26, [sp, 64] 6116 adrp x25, .LANCHOR5 6117 str x27, [sp, 80] 6118 adrp x26, .LANCHOR13 6119 add x25, x25, :lo12:.LANCHOR5 6120 add x26, x26, :lo12:.LANCHOR13 6121 bl ftl_memset 6122 mov w21, 0 6123 adrp x0, .LANCHOR47 6124 mov w20, 0 6125 mov w19, 0 6126 strh wzr, [x23, #:lo12:.LANCHOR45] 6127 str xzr, [x0, #:lo12:.LANCHOR47] 6128 adrp x0, .LANCHOR41 6129 strh wzr, [x22, #:lo12:.LANCHOR48] 6130 adrp x27, .LANCHOR3 6131 str xzr, [x0, #:lo12:.LANCHOR41] 6132 adrp x0, .LANCHOR44 6133 str xzr, [x0, #:lo12:.LANCHOR44] 6134.L837: 6135 ldrh w0, [x25] 6136 cmp w19, w0 6137 bcs .L843 6138 adrp x0, .LANCHOR19 6139 ldrh w8, [x27, #:lo12:.LANCHOR3] 6140 mov x6, 0 6141 mov w5, 0 6142 ldrh w7, [x0, #:lo12:.LANCHOR19] 6143 b .L844 6144.L839: 6145 ldrb w0, [x26, x6] 6146 mov w1, w19 6147 bl V2P_block 6148 bl FtlBbmIsBadBlock 6149 cbnz w0, .L838 6150 add w5, w5, w7 6151 and w5, w5, 65535 6152.L838: 6153 add x6, x6, 1 6154.L844: 6155 cmp w8, w6, uxth 6156 bhi .L839 6157 cbz w5, .L846 6158 mov w0, 32768 6159 sdiv w5, w0, w5 6160.L840: 6161 ldr x1, [x24, #:lo12:.LANCHOR40] 6162 mov w0, 6 6163 umaddl x0, w19, w0, x1 6164 strh w5, [x0, 4] 6165 adrp x0, .LANCHOR51 6166 ldrh w0, [x0, #:lo12:.LANCHOR51] 6167 cmp w0, w19 6168 beq .L841 6169 adrp x0, .LANCHOR52 6170 ldrh w0, [x0, #:lo12:.LANCHOR52] 6171 cmp w0, w19 6172 beq .L841 6173 adrp x0, .LANCHOR53 6174 ldrh w0, [x0, #:lo12:.LANCHOR53] 6175 cmp w0, w19 6176 beq .L841 6177 adrp x1, .LANCHOR42 6178 ubfiz x0, x19, 1, 16 6179 ldr x1, [x1, #:lo12:.LANCHOR42] 6180 ldrh w0, [x1, x0] 6181 cbnz w0, .L842 6182 add w21, w21, 1 6183 mov w0, w19 6184 and w21, w21, 65535 6185 bl INSERT_FREE_LIST 6186.L841: 6187 add w19, w19, 1 6188 and w19, w19, 65535 6189 b .L837 6190.L846: 6191 mov w5, 0 6192 b .L840 6193.L842: 6194 add w20, w20, 1 6195 mov w0, w19 6196 and w20, w20, 65535 6197 bl INSERT_DATA_LIST 6198 b .L841 6199.L843: 6200 strh w20, [x23, #:lo12:.LANCHOR45] 6201 add w20, w20, w21 6202 strh w21, [x22, #:lo12:.LANCHOR48] 6203 cmp w20, w0 6204 ble .L845 6205 adrp x1, .LANCHOR154 6206 adrp x0, .LC1 6207 mov w2, 2154 6208 add x1, x1, :lo12:.LANCHOR154 6209 add x0, x0, :lo12:.LC1 6210 bl printf 6211.L845: 6212 mov w0, 0 6213 ldr x27, [sp, 80] 6214 ldp x19, x20, [sp, 16] 6215 ldp x21, x22, [sp, 32] 6216 ldp x23, x24, [sp, 48] 6217 ldp x25, x26, [sp, 64] 6218 ldp x29, x30, [sp], 96 6219 ret 6220 .size SupperBlkListInit, .-SupperBlkListInit 6221 .section .text.ftl_check_vpc,"ax",@progbits 6222 .align 2 6223 .global ftl_check_vpc 6224 .type ftl_check_vpc, %function 6225ftl_check_vpc: 6226 stp x29, x30, [sp, -112]! 6227 adrp x0, .LC94 6228 add x0, x0, :lo12:.LC94 6229 add x29, sp, 0 6230 stp x23, x24, [sp, 48] 6231 adrp x23, .LANCHOR61 6232 add x23, x23, :lo12:.LANCHOR61 6233 stp x21, x22, [sp, 32] 6234 mov w22, 0 6235 stp x19, x20, [sp, 16] 6236 stp x25, x26, [sp, 64] 6237 adrp x21, .LANCHOR155 6238 stp x27, x28, [sp, 80] 6239 add x1, x21, :lo12:.LANCHOR155 6240 adrp x20, check_vpc_table 6241 bl printf 6242 add x19, x20, :lo12:check_vpc_table 6243 mov w2, 8192 6244 mov w1, 0 6245 mov x0, x19 6246 bl ftl_memset 6247.L849: 6248 ldr w0, [x23] 6249 cmp w22, w0 6250 bcc .L851 6251 adrp x22, .LANCHOR5 6252 adrp x24, .LC95 6253 add x22, x22, :lo12:.LANCHOR5 6254 add x26, x20, :lo12:check_vpc_table 6255 add x24, x24, :lo12:.LC95 6256 mov w23, 0 6257 mov w19, 0 6258 adrp x25, .LANCHOR42 6259.L852: 6260 ldrh w0, [x22] 6261 cmp w0, w19 6262 bhi .L854 6263 adrp x0, .LANCHOR47 6264 ldr x19, [x0, #:lo12:.LANCHOR47] 6265 cbz x19, .L855 6266 adrp x0, .LANCHOR48 6267 adrp x25, .LC96 6268 add x20, x20, :lo12:check_vpc_table 6269 add x25, x25, :lo12:.LC96 6270 ldrh w26, [x0, #:lo12:.LANCHOR48] 6271 adrp x0, .LANCHOR40 6272 mov x24, x0 6273 mov w22, 0 6274 ldr x1, [x0, #:lo12:.LANCHOR40] 6275 adrp x27, .LANCHOR42 6276 mov w28, 6 6277 sub x19, x19, x1 6278 mov x1, -6148914691236517206 6279 asr x19, x19, 1 6280 movk x1, 0xaaab, lsl 0 6281 mul x19, x19, x1 6282 and w19, w19, 65535 6283.L856: 6284 cmp w22, w26 6285 bne .L858 6286.L855: 6287 cbz w23, .L848 6288 adrp x0, .LC1 6289 mov w2, 2321 6290 add x1, x21, :lo12:.LANCHOR155 6291 add x0, x0, :lo12:.LC1 6292 bl printf 6293.L848: 6294 ldp x19, x20, [sp, 16] 6295 ldp x21, x22, [sp, 32] 6296 ldp x23, x24, [sp, 48] 6297 ldp x25, x26, [sp, 64] 6298 ldp x27, x28, [sp, 80] 6299 ldp x29, x30, [sp], 112 6300 ret 6301.L851: 6302 mov w2, 0 6303 add x1, x29, 108 6304 mov w0, w22 6305 bl log2phys 6306 ldr w0, [x29, 108] 6307 cmn w0, #1 6308 beq .L850 6309 lsr w0, w0, 10 6310 bl P2V_block_in_plane 6311 and x0, x0, 65535 6312 ldrh w1, [x19, x0, lsl 1] 6313 add w1, w1, 1 6314 strh w1, [x19, x0, lsl 1] 6315.L850: 6316 add w22, w22, 1 6317 b .L849 6318.L854: 6319 ldr x0, [x25, #:lo12:.LANCHOR42] 6320 ubfiz x28, x19, 1, 16 6321 sxtw x27, w19 6322 ldrh w2, [x0, x28] 6323 ldrh w3, [x26, x27, lsl 1] 6324 cmp w2, w3 6325 beq .L853 6326 mov w1, w19 6327 mov x0, x24 6328 bl printf 6329 ldr x0, [x25, #:lo12:.LANCHOR42] 6330 mov w1, 65535 6331 ldrh w0, [x0, x28] 6332 cmp w0, w1 6333 beq .L853 6334 ldrh w1, [x26, x27, lsl 1] 6335 cmp w1, w0 6336 csinc w23, w23, wzr, ls 6337.L853: 6338 add w19, w19, 1 6339 and w19, w19, 65535 6340 b .L852 6341.L858: 6342 ldr x1, [x27, #:lo12:.LANCHOR42] 6343 ubfiz x0, x19, 1, 16 6344 ldrh w2, [x1, x0] 6345 cbz w2, .L857 6346 ldrh w3, [x20, w19, sxtw 1] 6347 mov w23, 1 6348 mov w1, w19 6349 mov x0, x25 6350 bl printf 6351.L857: 6352 ldr x0, [x24, #:lo12:.LANCHOR40] 6353 umull x19, w19, w28 6354 ldrh w19, [x0, x19] 6355 mov w0, 65535 6356 cmp w19, w0 6357 beq .L855 6358 add w22, w22, 1 6359 and w22, w22, 65535 6360 b .L856 6361 .size ftl_check_vpc, .-ftl_check_vpc 6362 .section .text.FtlGcPageVarInit,"ax",@progbits 6363 .align 2 6364 .global FtlGcPageVarInit 6365 .type FtlGcPageVarInit, %function 6366FtlGcPageVarInit: 6367 stp x29, x30, [sp, -32]! 6368 adrp x0, .LANCHOR95 6369 mov w1, 255 6370 add x29, sp, 0 6371 strh wzr, [x0, #:lo12:.LANCHOR95] 6372 adrp x0, .LANCHOR97 6373 str x19, [sp, 16] 6374 adrp x19, .LANCHOR21 6375 strh wzr, [x0, #:lo12:.LANCHOR97] 6376 adrp x0, .LANCHOR96 6377 ldrh w2, [x19, #:lo12:.LANCHOR21] 6378 ldr x0, [x0, #:lo12:.LANCHOR96] 6379 lsl w2, w2, 1 6380 bl ftl_memset 6381 ldrh w2, [x19, #:lo12:.LANCHOR21] 6382 mov w0, 12 6383 mov w1, 255 6384 mul w2, w2, w0 6385 adrp x0, .LANCHOR98 6386 ldr x0, [x0, #:lo12:.LANCHOR98] 6387 bl ftl_memset 6388 ldr x19, [sp, 16] 6389 ldp x29, x30, [sp], 32 6390 b FtlGcBufInit 6391 .size FtlGcPageVarInit, .-FtlGcPageVarInit 6392 .section .text.FtlGcScanTempBlk,"ax",@progbits 6393 .align 2 6394 .global FtlGcScanTempBlk 6395 .type FtlGcScanTempBlk, %function 6396FtlGcScanTempBlk: 6397 stp x29, x30, [sp, -112]! 6398 add x29, sp, 0 6399 stp x21, x22, [sp, 32] 6400 adrp x21, .LANCHOR156 6401 stp x19, x20, [sp, 16] 6402 mov x20, x0 6403 stp x27, x28, [sp, 80] 6404 mov w0, 65535 6405 ldrh w19, [x21, #:lo12:.LANCHOR156] 6406 mov w28, w1 6407 stp x23, x24, [sp, 48] 6408 stp x25, x26, [sp, 64] 6409 cmp w19, w0 6410 beq .L892 6411 cbnz w19, .L876 6412.L877: 6413 bl FtlGcPageVarInit 6414 b .L878 6415.L892: 6416 mov w19, 0 6417.L876: 6418 adrp x0, .LANCHOR19 6419 ldrh w0, [x0, #:lo12:.LANCHOR19] 6420 cmp w0, w28 6421 beq .L877 6422.L878: 6423 adrp x27, .LANCHOR23 6424 add x27, x27, :lo12:.LANCHOR23 6425 mov w22, 0 6426 mov w23, 65535 6427.L886: 6428 ldrh w0, [x20] 6429 strb wzr, [x20, 8] 6430 cmp w0, w23 6431 beq .L893 6432 adrp x25, .LANCHOR24 6433 adrp x26, .LANCHOR3 6434 add x25, x25, :lo12:.LANCHOR24 6435 add x26, x26, :lo12:.LANCHOR3 6436.L889: 6437 adrp x1, .LANCHOR91 6438 adrp x24, .LANCHOR120 6439 ldrh w7, [x27] 6440 add x5, x20, 16 6441 ldr x6, [x1, #:lo12:.LANCHOR91] 6442 adrp x1, .LANCHOR92 6443 ldr x0, [x24, #:lo12:.LANCHOR120] 6444 mov w3, 0 6445 ldr x8, [x1, #:lo12:.LANCHOR92] 6446 ldrh w1, [x26] 6447 ldrh w10, [x25] 6448 add x1, x1, 8 6449 add x1, x20, x1, lsl 1 6450.L880: 6451 cmp x1, x5 6452 bne .L882 6453 mov w1, w3 6454 str w3, [x29, 108] 6455 mov w2, 0 6456 bl FlashReadPages 6457 ldr w3, [x29, 108] 6458 mov x11, 0 6459 ubfiz x12, x3, 5, 16 6460.L883: 6461 cmp x11, x12 6462 bne .L887 6463 add w19, w19, 1 6464 add w22, w22, 1 6465 and w19, w19, 65535 6466 cmp w28, w22 6467 adrp x1, .LANCHOR19 6468 bls .L888 6469.L890: 6470 ldrh w0, [x1, #:lo12:.LANCHOR19] 6471 cmp w0, w19 6472 bhi .L889 6473.L893: 6474 mov w2, 0 6475 b .L879 6476.L882: 6477 ldrh w4, [x5] 6478 cmp w4, w23 6479 beq .L881 6480 ubfiz x2, x3, 5, 16 6481 orr w4, w19, w4, lsl 10 6482 add x2, x0, x2 6483 str w4, [x2, 4] 6484 mul w4, w3, w7 6485 asr w4, w4, 2 6486 add x4, x6, x4, sxtw 2 6487 str x4, [x2, 8] 6488 mul w4, w3, w10 6489 add w3, w3, 1 6490 and w3, w3, 65535 6491 asr w4, w4, 2 6492 add x4, x8, x4, sxtw 2 6493 str x4, [x2, 16] 6494.L881: 6495 add x5, x5, 2 6496 b .L880 6497.L887: 6498 ldr x6, [x24, #:lo12:.LANCHOR120] 6499 add x5, x6, x11 6500 ldr w4, [x5, 4] 6501 lsr w0, w4, 10 6502 bl P2V_plane 6503 and w2, w0, 65535 6504 ldr w0, [x6, x11] 6505 cbnz w0, .L884 6506 ldr x0, [x5, 16] 6507 add x11, x11, 32 6508 ldrh w1, [x0] 6509 cmp w1, w23 6510 bne .L885 6511 adrp x0, .LANCHOR152 6512 mov w1, 1 6513 str w1, [x0, #:lo12:.LANCHOR152] 6514.L879: 6515 strh w19, [x20, 2] 6516 mov w0, -1 6517 strb w2, [x20, 6] 6518 mov w1, w19 6519 strh w0, [x21, #:lo12:.LANCHOR156] 6520 mov x0, x20 6521 bl ftl_sb_update_avl_pages 6522 b .L891 6523.L885: 6524 ldp w2, w0, [x0, 8] 6525 mov w1, w4 6526 bl FtlGcUpdatePage 6527 b .L883 6528.L884: 6529 adrp x0, .LANCHOR42 6530 ldrh w1, [x20] 6531 mov w19, 0 6532 ldr x0, [x0, #:lo12:.LANCHOR42] 6533 strh wzr, [x0, x1, lsl 1] 6534 ldrh w0, [x20] 6535 bl INSERT_FREE_LIST 6536 mov w0, -1 6537 strh w0, [x20] 6538 bl FtlGcPageVarInit 6539 b .L886 6540.L888: 6541 ldrh w0, [x21, #:lo12:.LANCHOR156] 6542 cmp w0, w23 6543 beq .L890 6544 add w0, w0, w22 6545 strh w0, [x21, #:lo12:.LANCHOR156] 6546 ldrh w0, [x1, #:lo12:.LANCHOR19] 6547 cmp w0, w19 6548 bls .L890 6549.L891: 6550 ldp x19, x20, [sp, 16] 6551 mov w0, -1 6552 ldp x21, x22, [sp, 32] 6553 ldp x23, x24, [sp, 48] 6554 ldp x25, x26, [sp, 64] 6555 ldp x27, x28, [sp, 80] 6556 ldp x29, x30, [sp], 112 6557 ret 6558 .size FtlGcScanTempBlk, .-FtlGcScanTempBlk 6559 .section .text.FlashTestBlk,"ax",@progbits 6560 .align 2 6561 .global FlashTestBlk 6562 .type FlashTestBlk, %function 6563FlashTestBlk: 6564 stp x29, x30, [sp, -128]! 6565 add x29, sp, 0 6566 stp x19, x20, [sp, 16] 6567 and w19, w0, 65535 6568 cmp w19, 11 6569 bls .L901 6570 add x0, x29, 64 6571 mov w2, 32 6572 mov w1, 165 6573 adrp x20, ftl_temp_buf 6574 add x20, x20, :lo12:ftl_temp_buf 6575 stp x20, x0, [x29, 40] 6576 bl ftl_memset 6577 lsl w19, w19, 10 6578 mov w2, 8 6579 mov w1, 90 6580 mov x0, x20 6581 bl ftl_memset 6582 mov w2, 1 6583 str w19, [x29, 36] 6584 mov w1, w2 6585 add x0, x29, 32 6586 bl FlashEraseBlocks 6587 mov w3, 1 6588 add x0, x29, 32 6589 mov w2, w3 6590 mov w1, w3 6591 bl FlashProgPages 6592 ldr w0, [x29, 32] 6593 mov w2, 1 6594 mov w1, 0 6595 cmp w0, 0 6596 add x0, x29, 32 6597 csetm w19, ne 6598 bl FlashEraseBlocks 6599.L899: 6600 mov w0, w19 6601 ldp x19, x20, [sp, 16] 6602 ldp x29, x30, [sp], 128 6603 ret 6604.L901: 6605 mov w19, 0 6606 b .L899 6607 .size FlashTestBlk, .-FlashTestBlk 6608 .section .text.FlashGetBadBlockList,"ax",@progbits 6609 .align 2 6610 .global FlashGetBadBlockList 6611 .type FlashGetBadBlockList, %function 6612FlashGetBadBlockList: 6613 stp x29, x30, [sp, -32]! 6614 mov w2, 256 6615 add x29, sp, 0 6616 stp x19, x20, [sp, 16] 6617 mov x19, x0 6618 mov w20, w1 6619 mov w1, 255 6620 bl ftl_memset 6621 adrp x0, .LANCHOR105 6622 mov w1, w20 6623 ldr x2, [x0, #:lo12:.LANCHOR105] 6624 mov x0, x19 6625 blr x2 6626 and w0, w0, 65535 6627 cmp w0, 50 6628 bls .L904 6629 mov w2, 256 6630 mov w1, 255 6631 mov x0, x19 6632 bl ftl_memset 6633 mov w0, 0 6634.L904: 6635 adrp x1, .LANCHOR0+14 6636 ldrh w1, [x1, #:lo12:.LANCHOR0+14] 6637 cmp w1, 4 6638 bne .L908 6639 mov x1, 0 6640.L906: 6641 cmp w0, w1, uxth 6642 bhi .L907 6643.L908: 6644 ldp x19, x20, [sp, 16] 6645 ldp x29, x30, [sp], 32 6646 ret 6647.L907: 6648 ldrh w2, [x19, x1, lsl 1] 6649 lsr w2, w2, 1 6650 strh w2, [x19, x1, lsl 1] 6651 add x1, x1, 1 6652 b .L906 6653 .size FlashGetBadBlockList, .-FlashGetBadBlockList 6654 .section .text.ftl_memcpy,"ax",@progbits 6655 .align 2 6656 .global ftl_memcpy 6657 .type ftl_memcpy, %function 6658ftl_memcpy: 6659 uxtw x2, w2 6660 b memcpy 6661 .size ftl_memcpy, .-ftl_memcpy 6662 .section .text.FtlBbmTblFlush,"ax",@progbits 6663 .align 2 6664 .global FtlBbmTblFlush 6665 .type FtlBbmTblFlush, %function 6666FtlBbmTblFlush: 6667 stp x29, x30, [sp, -96]! 6668 add x29, sp, 0 6669 stp x23, x24, [sp, 48] 6670 adrp x23, .LANCHOR108 6671 stp x19, x20, [sp, 16] 6672 adrp x19, .LANCHOR106 6673 stp x21, x22, [sp, 32] 6674 add x20, x19, :lo12:.LANCHOR106 6675 adrp x22, .LANCHOR107 6676 ldr x1, [x23, #:lo12:.LANCHOR108] 6677 stp x25, x26, [sp, 64] 6678 adrp x21, .LANCHOR37 6679 str x27, [sp, 80] 6680 add x25, x21, :lo12:.LANCHOR37 6681 ldr x0, [x22, #:lo12:.LANCHOR107] 6682 adrp x26, .LANCHOR10 6683 stp x0, x1, [x20, 8] 6684 adrp x1, .LANCHOR23 6685 adrp x27, .LANCHOR137 6686 add x25, x25, 32 6687 ldrh w2, [x1, #:lo12:.LANCHOR23] 6688 mov w24, 0 6689 add x26, x26, :lo12:.LANCHOR10 6690 add x27, x27, :lo12:.LANCHOR137 6691 mov w1, 0 6692 bl ftl_memset 6693.L912: 6694 ldrh w0, [x26] 6695 cmp w24, w0 6696 blt .L913 6697 add x19, x19, :lo12:.LANCHOR106 6698 add x20, x21, :lo12:.LANCHOR37 6699 mov w2, 16 6700 mov w1, 255 6701 adrp x24, .LC97 6702 adrp x26, .LANCHOR20 6703 ldr x27, [x19, 16] 6704 add x24, x24, :lo12:.LC97 6705 add x26, x26, :lo12:.LANCHOR20 6706 mov w25, 0 6707 mov x0, x27 6708 bl ftl_memset 6709 mov w0, -3887 6710 strh w0, [x27] 6711 ldr w0, [x20, 8] 6712 str w0, [x27, 4] 6713 ldrh w0, [x21, #:lo12:.LANCHOR37] 6714 mov w21, 0 6715 strh w0, [x27, 2] 6716 ldrh w0, [x20, 4] 6717 strh w0, [x27, 8] 6718 ldrh w0, [x20, 6] 6719 strh w0, [x27, 10] 6720 adrp x0, .LANCHOR2 6721 ldr w0, [x0, #:lo12:.LANCHOR2] 6722 strh w0, [x27, 12] 6723.L914: 6724 ldrh w4, [x27, 10] 6725 ldrh w1, [x20] 6726 ldrh w2, [x20, 2] 6727 ldrh w3, [x20, 4] 6728 ldr x0, [x22, #:lo12:.LANCHOR107] 6729 str x0, [x19, 8] 6730 ldr x0, [x23, #:lo12:.LANCHOR108] 6731 str x0, [x19, 16] 6732 orr w0, w2, w1, lsl 10 6733 str wzr, [x19] 6734 str w0, [x19, 4] 6735 mov x0, x24 6736 bl printf 6737 mov w3, 1 6738 mov x0, x19 6739 mov w1, w3 6740 mov w2, w3 6741 bl FlashProgPages 6742 ldrh w0, [x26] 6743 ldrh w1, [x20, 2] 6744 sub w0, w0, #1 6745 cmp w1, w0 6746 blt .L915 6747 ldr w0, [x20, 8] 6748 mov w2, 1 6749 ldrh w1, [x20, 4] 6750 add w0, w0, 1 6751 str w0, [x20, 8] 6752 str w0, [x27, 4] 6753 ldrh w0, [x20] 6754 strh w0, [x27, 8] 6755 strh w0, [x20, 4] 6756 adrp x0, .LANCHOR111 6757 strh w1, [x20] 6758 lsl w1, w1, 10 6759 ldr x0, [x0, #:lo12:.LANCHOR111] 6760 str w1, [x19, 4] 6761 strh wzr, [x20, 2] 6762 str w1, [x0, 4] 6763 mov w1, w2 6764 bl FlashEraseBlocks 6765 mov w3, 1 6766 mov x0, x19 6767 mov w2, w3 6768 mov w1, w3 6769 bl FlashProgPages 6770.L915: 6771 ldrh w0, [x20, 2] 6772 add w0, w0, 1 6773 strh w0, [x20, 2] 6774 ldr w0, [x19] 6775 cmn w0, #1 6776 bne .L916 6777 ldr w1, [x19, 4] 6778 add w21, w21, 1 6779 adrp x0, .LC98 6780 and w21, w21, 65535 6781 add x0, x0, :lo12:.LC98 6782 bl printf 6783 cmp w21, 3 6784 bls .L914 6785 ldr w1, [x19, 4] 6786 adrp x0, .LC99 6787 mov w2, w21 6788 add x0, x0, :lo12:.LC99 6789 bl printf 6790.L918: 6791 b .L918 6792.L913: 6793 ldrh w2, [x27] 6794 ldr x1, [x25], 8 6795 ldr x0, [x20, 8] 6796 mul w3, w24, w2 6797 lsl w2, w2, 2 6798 add w24, w24, 1 6799 add x0, x0, x3, sxtw 2 6800 bl ftl_memcpy 6801 b .L912 6802.L919: 6803 mov w25, 1 6804 b .L914 6805.L916: 6806 cbz w25, .L919 6807 mov w0, 0 6808 ldr x27, [sp, 80] 6809 ldp x19, x20, [sp, 16] 6810 ldp x21, x22, [sp, 32] 6811 ldp x23, x24, [sp, 48] 6812 ldp x25, x26, [sp, 64] 6813 ldp x29, x30, [sp], 96 6814 ret 6815 .size FtlBbmTblFlush, .-FtlBbmTblFlush 6816 .section .text.allocate_data_superblock,"ax",@progbits 6817 .align 2 6818 .global allocate_data_superblock 6819 .type allocate_data_superblock, %function 6820allocate_data_superblock: 6821 stp x29, x30, [sp, -112]! 6822 add x29, sp, 0 6823 stp x27, x28, [sp, 80] 6824 adrp x28, .LANCHOR48 6825 stp x23, x24, [sp, 48] 6826 add x23, x28, :lo12:.LANCHOR48 6827 stp x19, x20, [sp, 16] 6828 adrp x27, .LANCHOR45 6829 mov x19, x0 6830 stp x21, x22, [sp, 32] 6831 add x0, x27, :lo12:.LANCHOR45 6832 stp x25, x26, [sp, 64] 6833 str x0, [x29, 104] 6834.L922: 6835 ldr x1, [x29, 104] 6836 adrp x24, .LANCHOR5 6837 ldrh w0, [x28, #:lo12:.LANCHOR48] 6838 ldrh w1, [x1] 6839 add w0, w0, w1 6840 ldrh w1, [x24, #:lo12:.LANCHOR5] 6841 cmp w0, w1 6842 ble .L923 6843 adrp x1, .LANCHOR157 6844 adrp x0, .LC1 6845 mov w2, 2588 6846 add x1, x1, :lo12:.LANCHOR157 6847 add x0, x0, :lo12:.LC1 6848 bl printf 6849.L923: 6850 adrp x0, .LANCHOR53 6851 add x0, x0, :lo12:.LANCHOR53 6852 cmp x19, x0 6853 bne .L948 6854 adrp x1, .LANCHOR87 6855 ldrh w0, [x23] 6856 ldr w1, [x1, #:lo12:.LANCHOR87] 6857 mul w1, w0, w1 6858 lsr w0, w0, 1 6859 add w0, w0, 1 6860 add w1, w0, w1, lsr 2 6861 ands w1, w1, 65535 6862 beq .L924 6863 sub w1, w1, #1 6864 and w1, w1, 65535 6865.L924: 6866 adrp x0, .LANCHOR47 6867 add x0, x0, :lo12:.LANCHOR47 6868 bl List_pop_index_node 6869 and w20, w0, 65535 6870 ldrh w0, [x23] 6871 cbnz w0, .L925 6872 adrp x1, .LANCHOR157 6873 adrp x0, .LC1 6874 mov w2, 2597 6875 add x1, x1, :lo12:.LANCHOR157 6876 add x0, x0, :lo12:.LC1 6877 bl printf 6878.L925: 6879 ldrh w0, [x23] 6880 sub w0, w0, #1 6881 strh w0, [x23] 6882 strh w20, [x19] 6883 mov x0, x19 6884 bl make_superblock 6885 ldrb w0, [x19, 7] 6886 cbnz w0, .L926 6887 adrp x1, .LANCHOR42 6888 ubfiz x0, x20, 1, 16 6889 mov w2, -1 6890 ldr x1, [x1, #:lo12:.LANCHOR42] 6891 strh w2, [x1, x0] 6892 mov w0, w20 6893 bl INSERT_DATA_LIST 6894 ldrh w1, [x27, #:lo12:.LANCHOR45] 6895 ldrh w0, [x23] 6896 add w0, w0, w1 6897 ldrh w1, [x24, #:lo12:.LANCHOR5] 6898 cmp w0, w1 6899 ble .L922 6900 mov w2, 2608 6901 adrp x1, .LANCHOR157 6902 adrp x0, .LC1 6903 add x1, x1, :lo12:.LANCHOR157 6904 add x0, x0, :lo12:.LC1 6905 bl printf 6906 b .L922 6907.L948: 6908 mov w1, 0 6909 b .L924 6910.L926: 6911 ldrh w1, [x27, #:lo12:.LANCHOR45] 6912 ldrh w0, [x23] 6913 add w0, w0, w1 6914 ldrh w1, [x24, #:lo12:.LANCHOR5] 6915 cmp w0, w1 6916 ble .L928 6917 adrp x1, .LANCHOR157 6918 adrp x0, .LC1 6919 mov w2, 2611 6920 add x1, x1, :lo12:.LANCHOR157 6921 add x0, x0, :lo12:.LC1 6922 bl printf 6923.L928: 6924 adrp x0, .LANCHOR3 6925 adrp x25, .LANCHOR111 6926 add x26, x19, 16 6927 mov w21, 0 6928 ldrh w0, [x0, #:lo12:.LANCHOR3] 6929 mov x4, x26 6930 ldr x3, [x25, #:lo12:.LANCHOR111] 6931 mov w6, 65535 6932 ubfiz x0, x0, 5, 16 6933 add x1, x3, 8 6934 add x0, x0, 8 6935 add x0, x3, x0 6936.L929: 6937 cmp x0, x1 6938 bne .L931 6939 cbnz w21, .L932 6940 adrp x1, .LANCHOR157 6941 adrp x0, .LC1 6942 mov w2, 2622 6943 add x1, x1, :lo12:.LANCHOR157 6944 add x0, x0, :lo12:.LC1 6945 bl printf 6946.L932: 6947 adrp x0, .LANCHOR80 6948 ldrh w0, [x0, #:lo12:.LANCHOR80] 6949 cmp w0, w20 6950 bne .L933 6951 adrp x1, .LANCHOR157 6952 adrp x0, .LC1 6953 mov w2, 2624 6954 add x1, x1, :lo12:.LANCHOR157 6955 add x0, x0, :lo12:.LC1 6956 bl printf 6957.L933: 6958 ldrb w0, [x19, 8] 6959 uxtw x22, w20 6960 adrp x6, .LANCHOR43 6961 adrp x7, .LANCHOR14 6962 adrp x5, .LANCHOR72 6963 adrp x4, .LANCHOR73 6964 cbnz w0, .L934 6965 ldr x2, [x6, #:lo12:.LANCHOR43] 6966 lsl x1, x22, 1 6967 ldrh w0, [x2, x1] 6968 cbz w0, .L935 6969 ldrh w3, [x7, #:lo12:.LANCHOR14] 6970 add w0, w0, w3 6971.L959: 6972 strh w0, [x2, x1] 6973 mov w1, 0 6974 ldr w0, [x5, #:lo12:.LANCHOR72] 6975 add w0, w0, 1 6976 str w0, [x5, #:lo12:.LANCHOR72] 6977 mov w0, w20 6978 bl ftl_set_blk_mode 6979.L937: 6980 ldr x0, [x6, #:lo12:.LANCHOR43] 6981 lsl x22, x22, 1 6982 ldrh w1, [x0, x22] 6983 adrp x0, .LANCHOR76 6984 ldr w2, [x0, #:lo12:.LANCHOR76] 6985 cmp w1, w2 6986 bls .L938 6987 str w1, [x0, #:lo12:.LANCHOR76] 6988.L938: 6989 ldr w2, [x5, #:lo12:.LANCHOR72] 6990 ldr w1, [x4, #:lo12:.LANCHOR73] 6991 ldrh w0, [x7, #:lo12:.LANCHOR14] 6992 madd w0, w0, w2, w1 6993 ldrh w1, [x24, #:lo12:.LANCHOR5] 6994 udiv w0, w0, w1 6995 adrp x1, .LANCHOR74 6996 str w0, [x1, #:lo12:.LANCHOR74] 6997 adrp x0, .LANCHOR127 6998 ldr x1, [x0, #:lo12:.LANCHOR127] 6999 ldr w0, [x1, 16] 7000 add w0, w0, 1 7001 str w0, [x1, 16] 7002 ldr x0, [x25, #:lo12:.LANCHOR111] 7003 ubfiz x1, x21, 5, 16 7004 add x1, x1, 4 7005 add x2, x0, 4 7006 add x1, x0, x1 7007.L939: 7008 cmp x1, x2 7009 bne .L940 7010 ldrb w1, [x19, 8] 7011 mov w2, w21 7012 mov x24, 0 7013 bl FlashEraseBlocks 7014 mov w1, 0 7015.L941: 7016 cmp w21, w24, uxth 7017 bhi .L943 7018 cbz w1, .L944 7019 mov w0, w20 7020 bl update_multiplier_value 7021 bl FtlBbmTblFlush 7022.L944: 7023 ldrb w0, [x19, 7] 7024 adrp x2, .LANCHOR42 7025 cbnz w0, .L945 7026 ldr x0, [x2, #:lo12:.LANCHOR42] 7027 mov w1, -1 7028 strh w1, [x0, x22] 7029 mov w0, w20 7030 bl INSERT_DATA_LIST 7031 b .L922 7032.L931: 7033 ldrh w2, [x4] 7034 stp xzr, xzr, [x1] 7035 cmp w2, w6 7036 beq .L930 7037 ubfiz x5, x21, 5, 16 7038 add w21, w21, 1 7039 add x5, x3, x5 7040 and w21, w21, 65535 7041 lsl w2, w2, 10 7042 str w2, [x5, 4] 7043.L930: 7044 add x1, x1, 32 7045 add x4, x4, 2 7046 b .L929 7047.L935: 7048 mov w0, 2 7049 b .L959 7050.L934: 7051 ldr x2, [x6, #:lo12:.LANCHOR43] 7052 lsl x0, x22, 1 7053 ldrh w1, [x2, x0] 7054 add w1, w1, 1 7055 strh w1, [x2, x0] 7056 ldr w0, [x4, #:lo12:.LANCHOR73] 7057 add w0, w0, 1 7058 str w0, [x4, #:lo12:.LANCHOR73] 7059 mov w0, w20 7060 bl ftl_set_blk_mode.part.6 7061 b .L937 7062.L940: 7063 ldr w3, [x2] 7064 and w3, w3, -1024 7065 str w3, [x2], 32 7066 b .L939 7067.L943: 7068 ldr x2, [x25, #:lo12:.LANCHOR111] 7069 lsl x0, x24, 5 7070 add x3, x2, x0 7071 ldr w2, [x2, x0] 7072 cmn w2, #1 7073 bne .L942 7074 add w1, w1, 1 7075 ldr w0, [x3, 4] 7076 stp w2, w1, [x29, 96] 7077 lsr w0, w0, 10 7078 bl FtlBbmMapBadBlock 7079 ldp w2, w1, [x29, 96] 7080 strh w2, [x26] 7081 ldrb w0, [x19, 7] 7082 sub w0, w0, #1 7083 strb w0, [x19, 7] 7084.L942: 7085 add x24, x24, 1 7086 add x26, x26, 2 7087 b .L941 7088.L945: 7089 adrp x1, .LANCHOR19 7090 adrp x3, .LANCHOR70 7091 strb wzr, [x19, 6] 7092 ldrh w1, [x1, #:lo12:.LANCHOR19] 7093 strh wzr, [x19, 2] 7094 strh w20, [x19] 7095 mul w0, w0, w1 7096 ldr w1, [x3, #:lo12:.LANCHOR70] 7097 str w1, [x19, 12] 7098 add w1, w1, 1 7099 str w1, [x3, #:lo12:.LANCHOR70] 7100 ldr x1, [x2, #:lo12:.LANCHOR42] 7101 and w0, w0, 65535 7102 strh w0, [x19, 4] 7103 strh w0, [x1, x22] 7104 ldrh w0, [x19, 4] 7105 cbz w0, .L946 7106 ldrb w0, [x19, 7] 7107 cbnz w0, .L947 7108.L946: 7109 adrp x1, .LANCHOR157 7110 adrp x0, .LC1 7111 mov w2, 2677 7112 add x1, x1, :lo12:.LANCHOR157 7113 add x0, x0, :lo12:.LC1 7114 bl printf 7115.L947: 7116 ldp x19, x20, [sp, 16] 7117 mov w0, 0 7118 ldp x21, x22, [sp, 32] 7119 ldp x23, x24, [sp, 48] 7120 ldp x25, x26, [sp, 64] 7121 ldp x27, x28, [sp, 80] 7122 ldp x29, x30, [sp], 112 7123 ret 7124 .size allocate_data_superblock, .-allocate_data_superblock 7125 .section .text.FtlGcFreeBadSuperBlk,"ax",@progbits 7126 .align 2 7127 .global FtlGcFreeBadSuperBlk 7128 .type FtlGcFreeBadSuperBlk, %function 7129FtlGcFreeBadSuperBlk: 7130 stp x29, x30, [sp, -96]! 7131 add x29, sp, 0 7132 stp x21, x22, [sp, 32] 7133 adrp x21, .LANCHOR101 7134 stp x25, x26, [sp, 64] 7135 and w25, w0, 65535 7136 ldrh w0, [x21, #:lo12:.LANCHOR101] 7137 stp x19, x20, [sp, 16] 7138 stp x23, x24, [sp, 48] 7139 str x27, [sp, 80] 7140 cbz w0, .L961 7141 adrp x23, .LANCHOR102 7142 add x24, x23, :lo12:.LANCHOR102 7143 mov w19, 0 7144.L962: 7145 adrp x0, .LANCHOR3 7146 ldrh w0, [x0, #:lo12:.LANCHOR3] 7147 cmp w0, w19 7148 bhi .L968 7149 bl FtlGcReFreshBadBlk 7150.L961: 7151 mov w0, 0 7152 ldr x27, [sp, 80] 7153 ldp x19, x20, [sp, 16] 7154 ldp x21, x22, [sp, 32] 7155 ldp x23, x24, [sp, 48] 7156 ldp x25, x26, [sp, 64] 7157 ldp x29, x30, [sp], 96 7158 ret 7159.L968: 7160 adrp x0, .LANCHOR13 7161 add x0, x0, :lo12:.LANCHOR13 7162 mov w1, w25 7163 add x22, x21, :lo12:.LANCHOR101 7164 mov w20, 0 7165 ldrb w0, [x0, w19, sxtw] 7166 bl V2P_block 7167 and w26, w0, 65535 7168.L963: 7169 ldrh w0, [x22] 7170 cmp w0, w20 7171 bhi .L967 7172 add w19, w19, 1 7173 and w19, w19, 65535 7174 b .L962 7175.L967: 7176 add x0, x23, :lo12:.LANCHOR102 7177 add w27, w20, 1 7178 ldrh w0, [x0, w20, sxtw 1] 7179 cmp w0, w26 7180 bne .L964 7181 mov w1, w26 7182 adrp x0, .LC100 7183 add x0, x0, :lo12:.LC100 7184 bl printf 7185 mov w0, w26 7186 bl FtlBbmMapBadBlock 7187 bl FtlBbmTblFlush 7188 ldrh w1, [x22] 7189 sxtw x3, w27 7190 and x4, x20, 65535 7191 mov x0, 0 7192.L965: 7193 add w2, w20, w0 7194 cmp w1, w2, uxth 7195 bhi .L966 7196 sub w1, w1, #1 7197 strh w1, [x22] 7198.L964: 7199 and w20, w27, 65535 7200 b .L963 7201.L966: 7202 add x2, x3, x0 7203 ldrh w5, [x24, x2, lsl 1] 7204 add x2, x4, x0 7205 add x0, x0, 1 7206 strh w5, [x24, x2, lsl 1] 7207 b .L965 7208 .size FtlGcFreeBadSuperBlk, .-FtlGcFreeBadSuperBlk 7209 .section .text.update_vpc_list,"ax",@progbits 7210 .align 2 7211 .global update_vpc_list 7212 .type update_vpc_list, %function 7213update_vpc_list: 7214 stp x29, x30, [sp, -32]! 7215 adrp x1, .LANCHOR42 7216 add x29, sp, 0 7217 stp x19, x20, [sp, 16] 7218 and w19, w0, 65535 7219 ldr x1, [x1, #:lo12:.LANCHOR42] 7220 ubfiz x0, x19, 1, 16 7221 ldrh w0, [x1, x0] 7222 cbnz w0, .L974 7223 adrp x0, .LANCHOR80 7224 ldrh w1, [x0, #:lo12:.LANCHOR80] 7225 cmp w1, w19 7226 bne .L975 7227 mov w1, -1 7228 strh w1, [x0, #:lo12:.LANCHOR80] 7229.L976: 7230 adrp x20, .LANCHOR45 7231 mov w1, w19 7232 adrp x0, .LANCHOR41 7233 add x0, x0, :lo12:.LANCHOR41 7234 bl List_remove_node 7235 ldrh w0, [x20, #:lo12:.LANCHOR45] 7236 cbnz w0, .L978 7237 adrp x1, .LANCHOR158 7238 adrp x0, .LC1 7239 mov w2, 2747 7240 add x1, x1, :lo12:.LANCHOR158 7241 add x0, x0, :lo12:.LC1 7242 bl printf 7243.L978: 7244 ldrh w0, [x20, #:lo12:.LANCHOR45] 7245 sub w0, w0, #1 7246 strh w0, [x20, #:lo12:.LANCHOR45] 7247 mov w0, w19 7248 bl free_data_superblock 7249 mov w0, w19 7250 bl FtlGcFreeBadSuperBlk 7251 adrp x0, .LANCHOR48 7252 ldrh w1, [x20, #:lo12:.LANCHOR45] 7253 ldrh w0, [x0, #:lo12:.LANCHOR48] 7254 add w0, w0, w1 7255 adrp x1, .LANCHOR5 7256 ldrh w1, [x1, #:lo12:.LANCHOR5] 7257 cmp w0, w1 7258 ble .L982 7259 adrp x1, .LANCHOR158 7260 adrp x0, .LC1 7261 mov w2, 2750 7262 add x1, x1, :lo12:.LANCHOR158 7263 add x0, x0, :lo12:.LC1 7264 bl printf 7265.L982: 7266 mov w0, 1 7267 b .L973 7268.L975: 7269 adrp x0, .LANCHOR51 7270 ldrh w0, [x0, #:lo12:.LANCHOR51] 7271 cmp w0, w19 7272 beq .L981 7273 adrp x0, .LANCHOR52 7274 ldrh w0, [x0, #:lo12:.LANCHOR52] 7275 cmp w0, w19 7276 beq .L981 7277 adrp x0, .LANCHOR53 7278 ldrh w0, [x0, #:lo12:.LANCHOR53] 7279 cmp w0, w19 7280 bne .L976 7281.L981: 7282 mov w0, 0 7283.L973: 7284 ldp x19, x20, [sp, 16] 7285 ldp x29, x30, [sp], 32 7286 ret 7287.L974: 7288 mov w0, w19 7289 bl List_update_data_list 7290 b .L981 7291 .size update_vpc_list, .-update_vpc_list 7292 .section .text.decrement_vpc_count,"ax",@progbits 7293 .align 2 7294 .global decrement_vpc_count 7295 .type decrement_vpc_count, %function 7296decrement_vpc_count: 7297 stp x29, x30, [sp, -48]! 7298 add x29, sp, 0 7299 stp x19, x20, [sp, 16] 7300 and w19, w0, 65535 7301 str x21, [sp, 32] 7302 mov w0, 65535 7303 cmp w19, w0 7304 beq .L985 7305 adrp x21, .LANCHOR42 7306 ubfiz x20, x19, 1, 16 7307 ldr x1, [x21, #:lo12:.LANCHOR42] 7308 ldrh w0, [x1, x20] 7309 cbnz w0, .L986 7310 mov w2, 0 7311 mov w1, w19 7312 adrp x0, .LC101 7313 add x0, x0, :lo12:.LC101 7314 bl printf 7315 ldr x0, [x21, #:lo12:.LANCHOR42] 7316 ldrh w0, [x0, x20] 7317 cbz w0, .L987 7318.L992: 7319 mov w20, 0 7320.L984: 7321 mov w0, w20 7322 ldr x21, [sp, 32] 7323 ldp x19, x20, [sp, 16] 7324 ldp x29, x30, [sp], 48 7325 ret 7326.L987: 7327 mov w2, 2765 7328 adrp x1, .LANCHOR159 7329 adrp x0, .LC1 7330 add x1, x1, :lo12:.LANCHOR159 7331 add x0, x0, :lo12:.LC1 7332 bl printf 7333 b .L992 7334.L986: 7335 sub w0, w0, #1 7336 strh w0, [x1, x20] 7337.L985: 7338 adrp x21, .LANCHOR150 7339 mov w1, 65535 7340 ldrh w0, [x21, #:lo12:.LANCHOR150] 7341 cmp w0, w1 7342 bne .L989 7343 strh w19, [x21, #:lo12:.LANCHOR150] 7344 b .L992 7345.L989: 7346 cmp w19, w0 7347 beq .L992 7348 bl update_vpc_list 7349 cmp w0, 0 7350 adrp x1, .LANCHOR40 7351 adrp x0, .LANCHOR41 7352 strh w19, [x21, #:lo12:.LANCHOR150] 7353 cset w20, ne 7354 ldr x1, [x1, #:lo12:.LANCHOR40] 7355 ldr x0, [x0, #:lo12:.LANCHOR41] 7356 sub x0, x0, x1 7357 mov x1, -6148914691236517206 7358 asr x0, x0, 1 7359 movk x1, 0xaaab, lsl 0 7360 mul x0, x0, x1 7361 adrp x1, .LANCHOR42 7362 ldr x1, [x1, #:lo12:.LANCHOR42] 7363 and x2, x0, 65535 7364 ldrh w1, [x1, x2, lsl 1] 7365 cbnz w1, .L984 7366 cmp w19, w0, uxth 7367 beq .L984 7368 mov w2, 2781 7369 adrp x1, .LANCHOR159 7370 adrp x0, .LC1 7371 add x1, x1, :lo12:.LANCHOR159 7372 add x0, x0, :lo12:.LC1 7373 bl printf 7374 b .L984 7375 .size decrement_vpc_count, .-decrement_vpc_count 7376 .section .text.FtlWriteDump_data,"ax",@progbits 7377 .align 2 7378 .global FtlWriteDump_data 7379 .type FtlWriteDump_data, %function 7380FtlWriteDump_data: 7381 stp x29, x30, [sp, -128]! 7382 add x29, sp, 0 7383 stp x19, x20, [sp, 16] 7384 adrp x19, .LANCHOR51 7385 add x0, x19, :lo12:.LANCHOR51 7386 stp x21, x22, [sp, 32] 7387 stp x23, x24, [sp, 48] 7388 ldrh w2, [x0, 4] 7389 str x25, [sp, 64] 7390 cbz w2, .L994 7391 ldrb w1, [x0, 8] 7392 cbnz w1, .L994 7393 adrp x3, .LANCHOR19 7394 ldrb w1, [x0, 7] 7395 ldrh w3, [x3, #:lo12:.LANCHOR19] 7396 mul w1, w1, w3 7397 cmp w2, w1 7398 beq .L994 7399 ldrb w0, [x0, 10] 7400 cbnz w0, .L993 7401 adrp x0, .LANCHOR61 7402 mov w2, 0 7403 add x1, x29, 92 7404 ldr w21, [x0, #:lo12:.LANCHOR61] 7405 adrp x0, .LANCHOR3 7406 sub w21, w21, #1 7407 ldrh w25, [x0, #:lo12:.LANCHOR3] 7408 mov w0, w21 7409 bl log2phys 7410 adrp x2, .LANCHOR108 7411 adrp x0, .LANCHOR107 7412 ldr w1, [x29, 92] 7413 ldr x20, [x2, #:lo12:.LANCHOR108] 7414 ldr x0, [x0, #:lo12:.LANCHOR107] 7415 cmn w1, #1 7416 str w1, [x29, 100] 7417 stp x0, x20, [x29, 104] 7418 str w21, [x29, 120] 7419 str wzr, [x20, 4] 7420 beq .L996 7421 mov w2, 0 7422 mov w1, 1 7423 add x0, x29, 96 7424 bl FlashReadPages 7425.L997: 7426 adrp x23, .LANCHOR71 7427 lsl w25, w25, 2 7428 add x22, x19, :lo12:.LANCHOR51 7429 add x23, x23, :lo12:.LANCHOR71 7430 mov w0, -3947 7431 mov w24, 0 7432 strh w0, [x20] 7433.L998: 7434 cmp w25, w24 7435 bne .L1002 7436.L999: 7437 add x19, x19, :lo12:.LANCHOR51 7438 mov w0, 1 7439 strb w0, [x19, 10] 7440.L993: 7441 ldp x19, x20, [sp, 16] 7442 ldp x21, x22, [sp, 32] 7443 ldp x23, x24, [sp, 48] 7444 ldr x25, [sp, 64] 7445 ldp x29, x30, [sp], 128 7446 ret 7447.L996: 7448 adrp x1, .LANCHOR23 7449 ldrh w2, [x1, #:lo12:.LANCHOR23] 7450 mov w1, 255 7451 bl ftl_memset 7452 b .L997 7453.L1002: 7454 ldrh w0, [x22, 4] 7455 cbz w0, .L999 7456 ldr w0, [x29, 100] 7457 add w24, w24, 1 7458 stp w21, w0, [x20, 8] 7459 ldrh w0, [x22] 7460 strh w0, [x20, 2] 7461 mov x0, x22 7462 bl get_new_active_ppa 7463 str w0, [x29, 100] 7464 ldr w0, [x23] 7465 mov w3, 0 7466 str w0, [x20, 4] 7467 mov w2, 0 7468 add w0, w0, 1 7469 mov w1, 1 7470 cmn w0, #1 7471 csel w0, w0, wzr, ne 7472 str w0, [x23] 7473 add x0, x29, 96 7474 bl FlashProgPages 7475 ldrh w0, [x22] 7476 bl decrement_vpc_count 7477 b .L998 7478.L994: 7479 add x19, x19, :lo12:.LANCHOR51 7480 strb wzr, [x19, 10] 7481 b .L993 7482 .size FtlWriteDump_data, .-FtlWriteDump_data 7483 .section .text.l2p_flush,"ax",@progbits 7484 .align 2 7485 .global l2p_flush 7486 .type l2p_flush, %function 7487l2p_flush: 7488 stp x29, x30, [sp, -48]! 7489 add x29, sp, 0 7490 stp x19, x20, [sp, 16] 7491 adrp x20, .LANCHOR33 7492 add x20, x20, :lo12:.LANCHOR33 7493 str x21, [sp, 32] 7494 mov w19, 0 7495 adrp x21, .LANCHOR55 7496 bl FtlWriteDump_data 7497.L1012: 7498 ldrh w0, [x20] 7499 cmp w0, w19 7500 bhi .L1014 7501 mov w0, 0 7502 ldr x21, [sp, 32] 7503 ldp x19, x20, [sp, 16] 7504 ldp x29, x30, [sp], 48 7505 ret 7506.L1014: 7507 ldr x1, [x21, #:lo12:.LANCHOR55] 7508 ubfiz x0, x19, 4, 16 7509 add x0, x1, x0 7510 ldr w0, [x0, 4] 7511 tbz w0, #31, .L1013 7512 mov w0, w19 7513 bl flush_l2p_region 7514.L1013: 7515 add w19, w19, 1 7516 and w19, w19, 65535 7517 b .L1012 7518 .size l2p_flush, .-l2p_flush 7519 .section .text.FtlRecoverySuperblock,"ax",@progbits 7520 .align 2 7521 .global FtlRecoverySuperblock 7522 .type FtlRecoverySuperblock, %function 7523FtlRecoverySuperblock: 7524 stp x29, x30, [sp, -192]! 7525 mov w1, 65535 7526 add x29, sp, 0 7527 stp x19, x20, [sp, 16] 7528 mov x19, x0 7529 stp x21, x22, [sp, 32] 7530 ldrh w0, [x0] 7531 stp x23, x24, [sp, 48] 7532 stp x25, x26, [sp, 64] 7533 cmp w0, w1 7534 stp x27, x28, [sp, 80] 7535 beq .L1140 7536 ldrb w0, [x19, 6] 7537 str w0, [x29, 164] 7538 adrp x0, .LANCHOR19 7539 ldrh w26, [x19, 2] 7540 str x0, [x29, 128] 7541 ldrh w2, [x0, #:lo12:.LANCHOR19] 7542 cmp w2, w26 7543 bne .L1019 7544 strh wzr, [x19, 4] 7545.L1146: 7546 strb wzr, [x19, 6] 7547.L1140: 7548 ldp x19, x20, [sp, 16] 7549 mov w0, 0 7550 ldp x21, x22, [sp, 32] 7551 ldp x23, x24, [sp, 48] 7552 ldp x25, x26, [sp, 64] 7553 ldp x27, x28, [sp, 80] 7554 ldp x29, x30, [sp], 192 7555 ret 7556.L1019: 7557 ldrh w0, [x19, 16] 7558 mov w20, 0 7559.L1020: 7560 cmp w0, w1 7561 beq .L1021 7562 mov w1, 1 7563 bl FtlGetLastWrittenPage 7564 mov w23, w0 7565 cmn w0, #1 7566 beq .L1022 7567 adrp x1, .LANCHOR91 7568 adrp x2, .LANCHOR3 7569 adrp x20, .LANCHOR120 7570 add x4, x19, 16 7571 ldr x5, [x1, #:lo12:.LANCHOR91] 7572 adrp x1, .LANCHOR23 7573 ldr x0, [x20, #:lo12:.LANCHOR120] 7574 mov w22, 0 7575 ldrh w6, [x1, #:lo12:.LANCHOR23] 7576 adrp x1, .LANCHOR92 7577 mov w10, 65535 7578 str x2, [x29, 152] 7579 ldr x7, [x1, #:lo12:.LANCHOR92] 7580 adrp x1, .LANCHOR24 7581 ldrh w8, [x1, #:lo12:.LANCHOR24] 7582 add x1, x19, 16 7583 str x1, [x29, 168] 7584 ldrh w1, [x2, #:lo12:.LANCHOR3] 7585 add x1, x1, 8 7586 add x1, x19, x1, lsl 1 7587.L1023: 7588 cmp x4, x1 7589 bne .L1027 7590 mov w2, 0 7591 mov w1, w22 7592 bl FlashReadPages 7593 adrp x0, .LANCHOR71 7594 ldr x4, [x20, #:lo12:.LANCHOR120] 7595 and w10, w23, 65535 7596 add x7, x0, :lo12:.LANCHOR71 7597 ldr w21, [x0, #:lo12:.LANCHOR71] 7598 mov x11, x4 7599 mov w6, 65535 7600 mov w3, 0 7601 sub w21, w21, #1 7602 str x0, [x29, 144] 7603.L1028: 7604 cmp w22, w3 7605 bne .L1033 7606 add w22, w23, 1 7607 ldr w0, [x4, 4] 7608 and w22, w22, 65535 7609.L1142: 7610 lsr w0, w0, 10 7611 bl P2V_plane 7612 and w27, w0, 65535 7613 ldr x0, [x29, 128] 7614 ldrh w0, [x0, #:lo12:.LANCHOR19] 7615 cmp w0, w22 7616 bne .L1035 7617 strh w22, [x19, 2] 7618 strb wzr, [x19, 6] 7619 strh wzr, [x19, 4] 7620.L1035: 7621 ldr w0, [x29, 164] 7622 cmp w22, w26 7623 cset w1, eq 7624 cmp w27, w0 7625 cset w0, eq 7626 tst w1, w0 7627 beq .L1036 7628.L1147: 7629 mov w2, w27 7630 mov w1, w22 7631 mov x0, x19 7632 bl ftl_sb_update_avl_pages 7633 b .L1140 7634.L1021: 7635 add w20, w20, 1 7636 and w20, w20, 65535 7637 add x0, x19, x20, sxtw 1 7638 ldrh w0, [x0, 16] 7639 b .L1020 7640.L1022: 7641 cbz w26, .L1024 7642 adrp x1, .LANCHOR160 7643 adrp x0, .LC1 7644 mov w2, 1755 7645 add x1, x1, :lo12:.LANCHOR160 7646 add x0, x0, :lo12:.LC1 7647 bl printf 7648.L1024: 7649 ldr w0, [x29, 164] 7650 cmp w0, 0 7651 ccmp w20, w0, 4, ne 7652 beq .L1025 7653 adrp x1, .LANCHOR160 7654 adrp x0, .LC1 7655 mov w2, 1756 7656 add x1, x1, :lo12:.LANCHOR160 7657 add x0, x0, :lo12:.LC1 7658 bl printf 7659.L1025: 7660 strh wzr, [x19, 2] 7661 b .L1146 7662.L1027: 7663 ldrh w3, [x4] 7664 cmp w3, w10 7665 beq .L1026 7666 ubfiz x2, x22, 5, 16 7667 orr w3, w23, w3, lsl 10 7668 add x2, x0, x2 7669 str w3, [x2, 4] 7670 mul w3, w22, w6 7671 asr w3, w3, 2 7672 add x3, x5, x3, sxtw 2 7673 str x3, [x2, 8] 7674 mul w3, w22, w8 7675 add w22, w22, 1 7676 and w22, w22, 65535 7677 asr w3, w3, 2 7678 add x3, x7, x3, sxtw 2 7679 str x3, [x2, 16] 7680.L1026: 7681 add x4, x4, 2 7682 b .L1023 7683.L1033: 7684 ldr w0, [x11] 7685 cbnz w0, .L1029 7686 ldr x8, [x11, 16] 7687 ldr w5, [x8, 4] 7688 cmn w5, #1 7689 beq .L1030 7690 ldr w1, [x7] 7691 mov w0, w5 7692 bl ftl_cmp_data_ver 7693 cbz w0, .L1030 7694 add w5, w5, 1 7695 str w5, [x7] 7696.L1030: 7697 ldr w0, [x8] 7698 cmn w0, #1 7699 bne .L1032 7700 ubfiz x3, x3, 5, 16 7701 and w22, w23, 65535 7702 add x3, x4, x3 7703 ldr w0, [x3, 4] 7704 b .L1142 7705.L1029: 7706 mov w6, w10 7707.L1032: 7708 add w3, w3, 1 7709 add x11, x11, 32 7710 and w3, w3, 65535 7711 b .L1028 7712.L1036: 7713 mov w0, 65535 7714 cmp w6, w0 7715 bne .L1037 7716 ldrb w0, [x19, 8] 7717 cbnz w0, .L1038 7718.L1037: 7719 adrp x25, .LANCHOR153 7720 and w28, w23, 65535 7721 ldr w0, [x25, #:lo12:.LANCHOR153] 7722 cmn w0, #1 7723 bne .L1039 7724 str w21, [x25, #:lo12:.LANCHOR153] 7725.L1039: 7726 add w0, w26, 7 7727 cmp w0, w23, uxth 7728 bge .L1089 7729 sub w24, w28, #7 7730 and w24, w24, 65535 7731.L1040: 7732 ldr x0, [x29, 152] 7733 mov w3, 65535 7734 mov w5, 1 7735 add x4, x0, :lo12:.LANCHOR3 7736.L1041: 7737 cmp w24, w28 7738 bhi .L1051 7739 ldrh w1, [x4] 7740 mov w23, 0 7741 ldr x0, [x20, #:lo12:.LANCHOR120] 7742 add x1, x1, 8 7743 ldr x2, [x29, 168] 7744 add x1, x19, x1, lsl 1 7745 b .L1052 7746.L1089: 7747 mov w24, w26 7748 b .L1040 7749.L1043: 7750 ldrh w6, [x2] 7751 cmp w6, w3 7752 beq .L1042 7753 ubfiz x7, x23, 5, 16 7754 add w23, w23, 1 7755 add x7, x0, x7 7756 and w23, w23, 65535 7757 orr w6, w24, w6, lsl 10 7758 str w6, [x7, 4] 7759.L1042: 7760 add x2, x2, 2 7761.L1052: 7762 cmp x2, x1 7763 bne .L1043 7764 mov w1, w23 7765 mov w2, 0 7766 str w5, [x29, 112] 7767 ubfiz x23, x23, 5, 16 7768 str w3, [x29, 120] 7769 add x23, x23, 16 7770 str x4, [x29, 136] 7771 bl FlashReadPages 7772 ldr x2, [x20, #:lo12:.LANCHOR120] 7773 ldr w1, [x25, #:lo12:.LANCHOR153] 7774 ldr w5, [x29, 112] 7775 add x0, x2, 16 7776 ldr w3, [x29, 120] 7777 add x23, x2, x23 7778 ldr x4, [x29, 136] 7779 mov w2, 0 7780.L1044: 7781 cmp x23, x0 7782 bne .L1049 7783 cbz w2, .L1050 7784 str w1, [x25, #:lo12:.LANCHOR153] 7785.L1050: 7786 add w24, w24, 1 7787 and w24, w24, 65535 7788 b .L1041 7789.L1049: 7790 ldr w6, [x0, -16] 7791 cbz w6, .L1045 7792 cbz w2, .L1038 7793 str w1, [x25, #:lo12:.LANCHOR153] 7794.L1038: 7795 mov w1, 1 7796 adrp x0, .LANCHOR161 7797 mov w23, w26 7798 adrp x28, .LANCHOR153 7799 strh w1, [x0, #:lo12:.LANCHOR161] 7800 adrp x0, .LANCHOR144 7801 add x0, x0, :lo12:.LANCHOR144 7802 bl FtlMapBlkWriteDump_data 7803 add x0, x28, :lo12:.LANCHOR153 7804 str x0, [x29, 104] 7805.L1053: 7806 ldr x1, [x29, 152] 7807 mov w24, 0 7808 ldr x0, [x20, #:lo12:.LANCHOR120] 7809 mov w5, 65535 7810 ldr x2, [x29, 168] 7811 ldrh w1, [x1, #:lo12:.LANCHOR3] 7812 add x1, x1, 8 7813 add x1, x19, x1, lsl 1 7814.L1054: 7815 cmp x1, x2 7816 bne .L1056 7817 mov w2, 0 7818 mov w1, w24 7819 bl FlashReadPages 7820 mov x25, 0 7821 ubfiz x0, x24, 5, 16 7822 str x0, [x29, 112] 7823 adrp x0, .LANCHOR162 7824 add x0, x0, :lo12:.LANCHOR162 7825 str x0, [x29, 120] 7826.L1057: 7827 ldr x0, [x29, 112] 7828 cmp x25, x0 7829 bne .L1083 7830 ldr x0, [x29, 128] 7831 add w23, w23, 1 7832 and w23, w23, 65535 7833 ldrh w0, [x0, #:lo12:.LANCHOR19] 7834 cmp w0, w23 7835 bne .L1053 7836 ldr x0, [x29, 152] 7837 mov w2, 65535 7838 strh w23, [x19, 2] 7839 strh wzr, [x19, 4] 7840 ldrh w1, [x0, #:lo12:.LANCHOR3] 7841 mov w0, 0 7842.L1084: 7843 cmp w0, w1 7844 beq .L1140 7845 ldr x4, [x29, 168] 7846 ldrh w3, [x4], 2 7847 str x4, [x29, 168] 7848 cmp w3, w2 7849 beq .L1085 7850 strb w0, [x19, 6] 7851 b .L1140 7852.L1045: 7853 ldr x6, [x0] 7854 ldrh w7, [x6] 7855 cmp w7, w3 7856 beq .L1048 7857 ldr w6, [x6, 4] 7858 cmn w6, #1 7859 csel w1, w1, w6, eq 7860 csel w2, w2, w5, eq 7861.L1048: 7862 add x0, x0, 32 7863 b .L1044 7864.L1051: 7865 mov w0, -1 7866 str w0, [x25, #:lo12:.LANCHOR153] 7867 b .L1038 7868.L1056: 7869 ldrh w3, [x2] 7870 cmp w3, w5 7871 beq .L1055 7872 ubfiz x4, x24, 5, 16 7873 add w24, w24, 1 7874 add x4, x0, x4 7875 and w24, w24, 65535 7876 orr w3, w23, w3, lsl 10 7877 str w3, [x4, 4] 7878.L1055: 7879 add x2, x2, 2 7880 b .L1054 7881.L1083: 7882 ldr x4, [x20, #:lo12:.LANCHOR120] 7883 add x4, x4, x25 7884 ldr w5, [x4, 4] 7885 str w5, [x29, 188] 7886 lsr w0, w5, 10 7887 bl P2V_plane 7888 and w0, w0, 65535 7889 cmp w23, w26 7890 bcc .L1058 7891 ldr w1, [x29, 164] 7892 ccmp w1, w0, 0, eq 7893 bhi .L1058 7894 cmp w23, w22 7895 ccmp w27, w0, 0, eq 7896 beq .L1059 7897 ldr w0, [x4] 7898 cmn w0, #1 7899 beq .L1060 7900 ldr x3, [x4, 16] 7901 mov w0, 61589 7902 ldrh w1, [x3] 7903 cmp w1, w0 7904 beq .L1061 7905.L1067: 7906 ldrh w0, [x19] 7907.L1145: 7908 bl decrement_vpc_count 7909.L1058: 7910 add x25, x25, 32 7911 b .L1057 7912.L1061: 7913 ldr w21, [x3, 4] 7914 cmn w21, #1 7915 beq .L1062 7916 ldr x0, [x29, 144] 7917 ldr w1, [x0, #:lo12:.LANCHOR71] 7918 mov w0, w21 7919 bl ftl_cmp_data_ver 7920 cbz w0, .L1062 7921 ldr x1, [x29, 144] 7922 add w0, w21, 1 7923 str w0, [x1, #:lo12:.LANCHOR71] 7924.L1062: 7925 ldp w24, w0, [x3, 8] 7926 add x1, x29, 184 7927 str w0, [x29, 180] 7928 mov w2, 0 7929 mov w0, w24 7930 bl log2phys 7931 ldr w1, [x28, #:lo12:.LANCHOR153] 7932 cmn w1, #1 7933 beq .L1063 7934 mov w0, w21 7935 bl ftl_cmp_data_ver 7936 cbz w0, .L1063 7937 ldr w1, [x29, 180] 7938 cmn w1, #1 7939 beq .L1064 7940 ldr x0, [x20, #:lo12:.LANCHOR120] 7941 mov w2, 0 7942 add x0, x0, x25 7943 ldr x3, [x0, 16] 7944 str w1, [x0, 4] 7945 mov w1, 1 7946 str x3, [x29, 136] 7947 bl FlashReadPages 7948 ldr x0, [x20, #:lo12:.LANCHOR120] 7949 ldr x3, [x29, 136] 7950 add x4, x0, x25 7951 ldr w0, [x0, x25] 7952 cmn w0, #1 7953 bne .L1065 7954.L1066: 7955 mov w0, -1 7956 str w0, [x29, 180] 7957 ldrh w0, [x19] 7958 bl decrement_vpc_count 7959.L1074: 7960 ldr w3, [x29, 180] 7961 cmn w3, #1 7962 beq .L1058 7963.L1088: 7964 lsr w0, w3, 10 7965 bl P2V_block_in_plane 7966 and w24, w0, 65535 7967 adrp x0, .LANCHOR5 7968 mov w3, w24 7969 ldrh w0, [x0, #:lo12:.LANCHOR5] 7970 cmp w0, w24 7971 bhi .L1079 7972 mov w2, 2006 7973 adrp x1, .LANCHOR160 7974 adrp x0, .LC1 7975 add x1, x1, :lo12:.LANCHOR160 7976 add x0, x0, :lo12:.LC1 7977 str w24, [x29, 136] 7978 bl printf 7979 ldr w3, [x29, 136] 7980.L1079: 7981 adrp x1, .LANCHOR42 7982 ubfiz x0, x24, 1, 16 7983 ldr x1, [x1, #:lo12:.LANCHOR42] 7984 ldrh w0, [x1, x0] 7985 cbz w0, .L1080 7986 mov w0, w3 7987 b .L1145 7988.L1064: 7989 ldp w1, w0, [x29, 184] 7990 cmp w1, w0 7991 bne .L1067 7992 mov w2, 1 7993 add x1, x29, 180 7994 mov w0, w24 7995 bl log2phys 7996 b .L1067 7997.L1065: 7998 ldr w0, [x3, 8] 7999 cmp w24, w0 8000 bne .L1066 8001 ldr w0, [x3, 4] 8002 str w0, [x29, 136] 8003 str x3, [x29, 96] 8004 uxtw x1, w0 8005 ldr w0, [x28, #:lo12:.LANCHOR153] 8006 bl ftl_cmp_data_ver 8007 cbz w0, .L1066 8008 ldp w0, w1, [x29, 184] 8009 ldr x3, [x29, 96] 8010 cmp w0, w1 8011 ldr w1, [x29, 180] 8012 bne .L1069 8013.L1143: 8014 mov w0, w24 8015 bl FtlReUsePrevPpa 8016 b .L1066 8017.L1069: 8018 cmp w0, w1 8019 beq .L1066 8020 cmn w0, #1 8021 beq .L1070 8022 ldr x3, [x4, 16] 8023 mov w2, 0 8024 str w0, [x4, 4] 8025 mov w1, 1 8026 str x3, [x29, 96] 8027 mov x0, x4 8028 bl FlashReadPages 8029 ldr x3, [x29, 96] 8030.L1071: 8031 ldr x0, [x20, #:lo12:.LANCHOR120] 8032 ldr w0, [x0, x25] 8033 cmn w0, #1 8034 beq .L1072 8035 ldr x0, [x29, 104] 8036 ldr w3, [x3, 4] 8037 mov w1, w3 8038 ldr w0, [x0] 8039 bl ftl_cmp_data_ver 8040 cbz w0, .L1072 8041 ldr w0, [x29, 136] 8042 mov w1, w3 8043 bl ftl_cmp_data_ver 8044 cbz w0, .L1066 8045.L1072: 8046 ldr w1, [x29, 180] 8047 b .L1143 8048.L1070: 8049 str w0, [x4] 8050 b .L1071 8051.L1063: 8052 ldp w1, w0, [x29, 184] 8053 cmp w1, w0 8054 beq .L1074 8055 mov w2, 1 8056 add x1, x29, 188 8057 mov w0, w24 8058 bl log2phys 8059 ldr w3, [x29, 184] 8060 cmn w3, #1 8061 beq .L1074 8062 ldr w0, [x29, 180] 8063 cmp w3, w0 8064 beq .L1088 8065 lsr w0, w3, 10 8066 bl P2V_block_in_plane 8067 adrp x1, .LANCHOR51 8068 and w0, w0, 65535 8069 ldrh w1, [x1, #:lo12:.LANCHOR51] 8070 cmp w1, w0 8071 beq .L1078 8072 adrp x1, .LANCHOR52 8073 ldrh w1, [x1, #:lo12:.LANCHOR52] 8074 cmp w1, w0 8075 beq .L1078 8076 adrp x1, .LANCHOR53 8077 ldrh w1, [x1, #:lo12:.LANCHOR53] 8078 cmp w1, w0 8079 bne .L1074 8080.L1078: 8081 ldr x0, [x20, #:lo12:.LANCHOR120] 8082 mov w2, 0 8083 mov w1, 1 8084 ldr x4, [x0, 16] 8085 str w3, [x0, 4] 8086 str x4, [x29, 136] 8087 bl FlashReadPages 8088 ldr x0, [x20, #:lo12:.LANCHOR120] 8089 ldr w0, [x0] 8090 cmn w0, #1 8091 beq .L1074 8092 ldr x4, [x29, 136] 8093 mov w0, w21 8094 ldr w1, [x4, 4] 8095 bl ftl_cmp_data_ver 8096 cbnz w0, .L1074 8097 mov w2, 1 8098 add x1, x29, 184 8099 mov w0, w24 8100 bl log2phys 8101 b .L1074 8102.L1080: 8103 mov w1, w24 8104 adrp x0, .LC102 8105 add x0, x0, :lo12:.LC102 8106 bl printf 8107 b .L1058 8108.L1060: 8109 ldr x0, [x29, 120] 8110 ldr w0, [x0] 8111 cmp w0, 31 8112 bhi .L1081 8113 adrp x1, .LANCHOR163 8114 add x1, x1, :lo12:.LANCHOR163 8115 str w5, [x1, w0, uxtw 2] 8116 add w0, w0, 1 8117 ldr x1, [x29, 120] 8118 str w0, [x1] 8119.L1081: 8120 ldrh w0, [x19] 8121 bl decrement_vpc_count 8122 ldr w0, [x28, #:lo12:.LANCHOR153] 8123 cmn w0, #1 8124 bne .L1082 8125.L1144: 8126 str w21, [x28, #:lo12:.LANCHOR153] 8127 b .L1058 8128.L1082: 8129 cmp w21, w0 8130 bcs .L1058 8131 b .L1144 8132.L1085: 8133 add w0, w0, 1 8134 and w0, w0, 65535 8135 b .L1084 8136.L1059: 8137 strb w27, [x19, 6] 8138 strh w22, [x19, 2] 8139 b .L1147 8140 .size FtlRecoverySuperblock, .-FtlRecoverySuperblock 8141 .section .text.FtlSuperblockPowerLostFix,"ax",@progbits 8142 .align 2 8143 .global FtlSuperblockPowerLostFix 8144 .type FtlSuperblockPowerLostFix, %function 8145FtlSuperblockPowerLostFix: 8146 stp x29, x30, [sp, -80]! 8147 adrp x1, .LANCHOR108 8148 add x29, sp, 0 8149 stp x19, x20, [sp, 16] 8150 mov x19, x0 8151 mov w0, -1 8152 ldr x20, [x1, #:lo12:.LANCHOR108] 8153 str w0, [x29, 72] 8154 adrp x0, .LANCHOR107 8155 stp x21, x22, [sp, 32] 8156 mov w1, -3 8157 ldr x0, [x0, #:lo12:.LANCHOR107] 8158 adrp x21, .LANCHOR71 8159 str x20, [x29, 64] 8160 add x21, x21, :lo12:.LANCHOR71 8161 str x0, [x29, 56] 8162 mov w22, 7 8163 str w1, [x20, 8] 8164 mov w1, -2 8165 str w1, [x20, 12] 8166 ldrh w1, [x19] 8167 strh w1, [x20, 2] 8168 strh wzr, [x20] 8169 mov w1, 61589 8170 str w1, [x0] 8171 mov w1, 22136 8172 movk w1, 0x1234, lsl 16 8173 str w1, [x0, 4] 8174.L1149: 8175 subs w22, w22, #1 8176 beq .L1151 8177 ldrh w0, [x19, 4] 8178 cbnz w0, .L1150 8179.L1151: 8180 ldrh w0, [x19] 8181 adrp x1, .LANCHOR42 8182 ldrh w3, [x19, 4] 8183 ldr x2, [x1, #:lo12:.LANCHOR42] 8184 lsl x0, x0, 1 8185 ldrh w1, [x2, x0] 8186 sub w1, w1, w3 8187 strh w1, [x2, x0] 8188 adrp x0, .LANCHOR19 8189 strb wzr, [x19, 6] 8190 strh wzr, [x19, 4] 8191 ldrh w0, [x0, #:lo12:.LANCHOR19] 8192 strh w0, [x19, 2] 8193 ldp x21, x22, [sp, 32] 8194 ldp x19, x20, [sp, 16] 8195 ldp x29, x30, [sp], 80 8196 ret 8197.L1150: 8198 mov x0, x19 8199 bl get_new_active_ppa 8200 str w0, [x29, 52] 8201 cmn w0, #1 8202 beq .L1151 8203 ldr w0, [x21] 8204 mov w3, 0 8205 str w0, [x20, 4] 8206 mov w2, 0 8207 add w0, w0, 1 8208 mov w1, 1 8209 cmn w0, #1 8210 csel w0, w0, wzr, ne 8211 str w0, [x21] 8212 add x0, x29, 48 8213 bl FlashProgPages 8214 ldrh w0, [x19] 8215 bl decrement_vpc_count 8216 b .L1149 8217 .size FtlSuperblockPowerLostFix, .-FtlSuperblockPowerLostFix 8218 .section .text.FtlLoadBbt,"ax",@progbits 8219 .align 2 8220 .global FtlLoadBbt 8221 .type FtlLoadBbt, %function 8222FtlLoadBbt: 8223 stp x29, x30, [sp, -80]! 8224 add x29, sp, 0 8225 stp x23, x24, [sp, 48] 8226 adrp x23, .LANCHOR107 8227 stp x19, x20, [sp, 16] 8228 adrp x24, .LANCHOR17 8229 stp x21, x22, [sp, 32] 8230 adrp x22, .LANCHOR106 8231 add x20, x22, :lo12:.LANCHOR106 8232 ldr x0, [x23, #:lo12:.LANCHOR107] 8233 str x25, [sp, 64] 8234 mov w25, 61649 8235 str x0, [x20, 8] 8236 adrp x0, .LANCHOR108 8237 ldr x21, [x0, #:lo12:.LANCHOR108] 8238 str x21, [x20, 16] 8239 bl FtlBbtMemInit 8240 ldrh w19, [x24, #:lo12:.LANCHOR17] 8241 add x24, x24, :lo12:.LANCHOR17 8242 sub w19, w19, #1 8243 and w19, w19, 65535 8244.L1161: 8245 ldrh w0, [x24] 8246 sub w0, w0, #15 8247 cmp w0, w19 8248 bgt .L1164 8249 lsl w0, w19, 10 8250 mov w2, 1 8251 str w0, [x20, 4] 8252 mov w1, w2 8253 mov x0, x20 8254 bl FlashReadPages 8255 ldr w0, [x20] 8256 cmn w0, #1 8257 bne .L1162 8258 ldr w0, [x20, 4] 8259 mov w2, 1 8260 mov w1, w2 8261 add w0, w0, 1 8262 str w0, [x20, 4] 8263 mov x0, x20 8264 bl FlashReadPages 8265.L1162: 8266 ldr w0, [x20] 8267 cmn w0, #1 8268 beq .L1163 8269 ldrh w0, [x21] 8270 cmp w0, w25 8271 bne .L1163 8272 adrp x1, .LANCHOR37 8273 add x0, x1, :lo12:.LANCHOR37 8274 strh w19, [x1, #:lo12:.LANCHOR37] 8275 ldr w1, [x21, 4] 8276 str w1, [x0, 8] 8277 ldrh w1, [x21, 8] 8278 strh w1, [x0, 4] 8279.L1164: 8280 adrp x19, .LANCHOR37 8281 mov w0, 65535 8282 add x20, x19, :lo12:.LANCHOR37 8283 ldrh w1, [x19, #:lo12:.LANCHOR37] 8284 cmp w1, w0 8285 beq .L1178 8286 ldrh w1, [x20, 4] 8287 cmp w1, w0 8288 beq .L1168 8289 add x0, x22, :lo12:.LANCHOR106 8290 lsl w1, w1, 10 8291 mov w2, 1 8292 str w1, [x0, 4] 8293 mov w1, w2 8294 bl FlashReadPages 8295 ldr w0, [x22, #:lo12:.LANCHOR106] 8296 cmn w0, #1 8297 beq .L1168 8298 ldrh w1, [x21] 8299 mov w0, 61649 8300 cmp w1, w0 8301 bne .L1168 8302 ldr w1, [x20, 8] 8303 ldr w0, [x21, 4] 8304 cmp w0, w1 8305 bls .L1168 8306 ldrh w1, [x20, 4] 8307 str w0, [x20, 8] 8308 ldrh w0, [x21, 8] 8309 strh w1, [x19, #:lo12:.LANCHOR37] 8310 strh w0, [x20, 4] 8311.L1168: 8312 ldrh w0, [x19, #:lo12:.LANCHOR37] 8313 add x24, x19, :lo12:.LANCHOR37 8314 mov w1, 1 8315 mov w25, 61649 8316 bl FtlGetLastWrittenPage 8317 sxth w20, w0 8318 add w0, w0, 1 8319 strh w0, [x24, 2] 8320 add x24, x22, :lo12:.LANCHOR106 8321.L1170: 8322 tbz w20, #31, .L1173 8323 adrp x1, .LANCHOR164 8324 adrp x0, .LC1 8325 mov w2, 254 8326 add x1, x1, :lo12:.LANCHOR164 8327 add x0, x0, :lo12:.LC1 8328 bl printf 8329.L1172: 8330 add x0, x19, :lo12:.LANCHOR37 8331 ldrh w1, [x21, 10] 8332 strh w1, [x0, 6] 8333 mov w1, 65535 8334 ldrh w0, [x21, 12] 8335 cmp w0, w1 8336 beq .L1175 8337 adrp x1, .LANCHOR2 8338 ldr w2, [x1, #:lo12:.LANCHOR2] 8339 cmp w0, w2 8340 beq .L1175 8341 adrp x1, .LANCHOR6 8342 ldrh w1, [x1, #:lo12:.LANCHOR6] 8343 lsr w1, w1, 2 8344 cmp w2, w1 8345 bcs .L1175 8346 cmp w0, w1 8347 bcs .L1175 8348 bl FtlSysBlkNumInit 8349.L1175: 8350 add x19, x19, :lo12:.LANCHOR37 8351 adrp x21, .LANCHOR10 8352 adrp x23, .LANCHOR137 8353 add x19, x19, 32 8354 add x21, x21, :lo12:.LANCHOR10 8355 add x23, x23, :lo12:.LANCHOR137 8356 add x22, x22, :lo12:.LANCHOR106 8357 mov w20, 0 8358.L1176: 8359 ldrh w0, [x21] 8360 cmp w20, w0 8361 bcc .L1177 8362 mov w0, 0 8363.L1160: 8364 ldp x19, x20, [sp, 16] 8365 ldp x21, x22, [sp, 32] 8366 ldp x23, x24, [sp, 48] 8367 ldr x25, [sp, 64] 8368 ldp x29, x30, [sp], 80 8369 ret 8370.L1163: 8371 sub w19, w19, #1 8372 and w19, w19, 65535 8373 b .L1161 8374.L1173: 8375 ldrh w0, [x19, #:lo12:.LANCHOR37] 8376 mov w2, 1 8377 mov w1, w2 8378 orr w0, w20, w0, lsl 10 8379 str w0, [x24, 4] 8380 ldr x0, [x23, #:lo12:.LANCHOR107] 8381 str x0, [x24, 8] 8382 mov x0, x24 8383 bl FlashReadPages 8384 ldr w0, [x24] 8385 cmn w0, #1 8386 beq .L1171 8387 ldrh w0, [x21] 8388 cmp w0, w25 8389 beq .L1172 8390.L1171: 8391 sub w20, w20, #1 8392 sxth w20, w20 8393 b .L1170 8394.L1177: 8395 ldrh w2, [x23] 8396 ldr x0, [x22, 8] 8397 mul w1, w2, w20 8398 lsl w2, w2, 2 8399 add w20, w20, 1 8400 add x1, x0, x1, lsl 2 8401 ldr x0, [x19], 8 8402 bl ftl_memcpy 8403 b .L1176 8404.L1178: 8405 mov w0, -1 8406 b .L1160 8407 .size FtlLoadBbt, .-FtlLoadBbt 8408 .section .text.FtlMakeBbt,"ax",@progbits 8409 .align 2 8410 .global FtlMakeBbt 8411 .type FtlMakeBbt, %function 8412FtlMakeBbt: 8413 stp x29, x30, [sp, -128]! 8414 add x29, sp, 0 8415 stp x21, x22, [sp, 32] 8416 mov w22, 0 8417 stp x19, x20, [sp, 16] 8418 adrp x20, .LANCHOR37 8419 stp x23, x24, [sp, 48] 8420 add x21, x20, :lo12:.LANCHOR37 8421 stp x25, x26, [sp, 64] 8422 add x24, x21, 32 8423 stp x27, x28, [sp, 80] 8424 bl FtlBbtMemInit 8425 bl FtlLoadFactoryBbt 8426 adrp x28, .LANCHOR106 8427 add x21, x21, 12 8428 add x25, x28, :lo12:.LANCHOR106 8429 adrp x0, .LANCHOR10 8430 add x0, x0, :lo12:.LANCHOR10 8431 str x0, [x29, 120] 8432.L1191: 8433 ldr x0, [x29, 120] 8434 ldrh w0, [x0] 8435 cmp w22, w0 8436 bcc .L1197 8437 adrp x21, .LANCHOR25 8438 add x21, x21, :lo12:.LANCHOR25 8439 mov w19, 0 8440.L1198: 8441 ldrh w0, [x21] 8442 cmp w0, w19 8443 bhi .L1199 8444 add x21, x20, :lo12:.LANCHOR37 8445 mov w22, 65535 8446 ldrh w19, [x21, 12] 8447 sub w19, w19, #1 8448 and w19, w19, 65535 8449.L1200: 8450 ldrh w0, [x21, 12] 8451 sub w0, w0, #47 8452 cmp w0, w19 8453 bgt .L1204 8454 mov w0, w19 8455 bl FtlBbmIsBadBlock 8456 cmp w0, 1 8457 beq .L1201 8458 mov w0, w19 8459 bl FlashTestBlk 8460 cbz w0, .L1202 8461 mov w0, w19 8462 bl FtlBbmMapBadBlock 8463.L1201: 8464 sub w19, w19, #1 8465 and w19, w19, 65535 8466 b .L1200 8467.L1197: 8468 adrp x2, .LANCHOR108 8469 adrp x0, .LANCHOR107 8470 add x19, x28, :lo12:.LANCHOR106 8471 ldrh w1, [x21] 8472 ldr x0, [x0, #:lo12:.LANCHOR107] 8473 mov w3, 65535 8474 ldr x26, [x2, #:lo12:.LANCHOR108] 8475 cmp w1, w3 8476 stp x0, x26, [x19, 8] 8477 adrp x23, .LANCHOR17 8478 str x2, [x29, 112] 8479 beq .L1192 8480 ldrh w4, [x23, #:lo12:.LANCHOR17] 8481 mov w2, 1 8482 madd w27, w4, w22, w1 8483 mov w1, w2 8484 lsl w0, w27, 10 8485 str w0, [x19, 4] 8486 mov x0, x19 8487 bl FlashReadPages 8488 ldr x1, [x19, 8] 8489 ldr x0, [x24] 8490 ldrh w2, [x23, #:lo12:.LANCHOR17] 8491 add w2, w2, 7 8492 lsr w2, w2, 3 8493 bl ftl_memcpy 8494.L1193: 8495 mov w0, w27 8496 add w22, w22, 1 8497 bl FtlBbmMapBadBlock 8498 add x24, x24, 8 8499 add x21, x21, 2 8500 b .L1191 8501.L1192: 8502 mov w1, w22 8503 bl FlashGetBadBlockList 8504 ldr x0, [x19, 8] 8505 ldr x1, [x24] 8506 bl FtlBbt2Bitmap 8507 ldrh w19, [x23, #:lo12:.LANCHOR17] 8508 add x23, x23, :lo12:.LANCHOR17 8509 adrp x0, .LANCHOR137 8510 sub w19, w19, #1 8511 add x0, x0, :lo12:.LANCHOR137 8512 and w19, w19, 65535 8513 str x0, [x29, 104] 8514.L1194: 8515 ldrh w0, [x23] 8516 madd w0, w22, w0, w19 8517 bl FtlBbmIsBadBlock 8518 cmp w0, 1 8519 beq .L1195 8520 ldr x0, [x29, 112] 8521 mov w2, 16 8522 strh w19, [x21] 8523 mov w1, 0 8524 ldr x0, [x0, #:lo12:.LANCHOR108] 8525 bl ftl_memset 8526 adrp x0, .LANCHOR107 8527 mov w2, 4096 8528 mov w1, 0 8529 ldr x0, [x0, #:lo12:.LANCHOR107] 8530 bl ftl_memset 8531 mov w0, -3872 8532 strh w0, [x26] 8533 ldrh w4, [x23] 8534 ldrh w0, [x21] 8535 strh w0, [x26, 2] 8536 ldr x1, [x24] 8537 str wzr, [x26, 4] 8538 madd w27, w4, w22, w0 8539 lsl w0, w27, 10 8540 str w0, [x25, 4] 8541 ldr x0, [x29, 104] 8542 ldrh w2, [x0] 8543 ldr x0, [x25, 8] 8544 lsl w2, w2, 2 8545 bl ftl_memcpy 8546 mov w2, 1 8547 mov x0, x25 8548 mov w1, w2 8549 bl FlashEraseBlocks 8550 mov w3, 1 8551 mov x0, x25 8552 mov w2, w3 8553 mov w1, w3 8554 bl FlashProgPages 8555 ldr w0, [x25] 8556 cmn w0, #1 8557 bne .L1193 8558 mov w0, w27 8559 bl FtlBbmMapBadBlock 8560 b .L1194 8561.L1195: 8562 sub w19, w19, #1 8563 and w19, w19, 65535 8564 b .L1194 8565.L1199: 8566 mov w0, w19 8567 add w19, w19, 1 8568 bl FtlBbmMapBadBlock 8569 and w19, w19, 65535 8570 b .L1198 8571.L1202: 8572 ldrh w0, [x21] 8573 cmp w0, w22 8574 bne .L1203 8575 strh w19, [x21] 8576 b .L1201 8577.L1203: 8578 strh w19, [x21, 4] 8579.L1204: 8580 adrp x0, .LANCHOR111 8581 add x19, x20, :lo12:.LANCHOR37 8582 ldrh w1, [x20, #:lo12:.LANCHOR37] 8583 mov w2, 2 8584 ldr x0, [x0, #:lo12:.LANCHOR111] 8585 str wzr, [x19, 8] 8586 lsl w1, w1, 10 8587 strh wzr, [x19, 2] 8588 str w1, [x0, 4] 8589 ldrh w1, [x19, 4] 8590 lsl w1, w1, 10 8591 str w1, [x0, 36] 8592 mov w1, 1 8593 bl FlashEraseBlocks 8594 ldrh w0, [x20, #:lo12:.LANCHOR37] 8595 bl FtlBbmMapBadBlock 8596 ldrh w0, [x19, 4] 8597 bl FtlBbmMapBadBlock 8598 bl FtlBbmTblFlush 8599 strh wzr, [x19, 2] 8600 ldr w0, [x19, 8] 8601 ldrh w1, [x19, 4] 8602 add w0, w0, 1 8603 str w0, [x19, 8] 8604 ldrh w0, [x20, #:lo12:.LANCHOR37] 8605 strh w0, [x19, 4] 8606 strh w1, [x20, #:lo12:.LANCHOR37] 8607 bl FtlBbmTblFlush 8608 mov w0, 0 8609 ldp x19, x20, [sp, 16] 8610 ldp x21, x22, [sp, 32] 8611 ldp x23, x24, [sp, 48] 8612 ldp x25, x26, [sp, 64] 8613 ldp x27, x28, [sp, 80] 8614 ldp x29, x30, [sp], 128 8615 ret 8616 .size FtlMakeBbt, .-FtlMakeBbt 8617 .section .text.FtlVendorPartWrite,"ax",@progbits 8618 .align 2 8619 .global FtlVendorPartWrite 8620 .type FtlVendorPartWrite, %function 8621FtlVendorPartWrite: 8622 stp x29, x30, [sp, -208]! 8623 add x29, sp, 0 8624 stp x19, x20, [sp, 16] 8625 mov w20, w1 8626 stp x27, x28, [sp, 80] 8627 add w1, w0, w1 8628 mov w28, w0 8629 adrp x0, .LANCHOR16 8630 stp x21, x22, [sp, 32] 8631 ldrh w0, [x0, #:lo12:.LANCHOR16] 8632 stp x23, x24, [sp, 48] 8633 stp x25, x26, [sp, 64] 8634 cmp w1, w0 8635 bhi .L1218 8636 adrp x0, .LANCHOR22 8637 adrp x25, .LANCHOR12 8638 adrp x26, .LANCHOR23 8639 mov x24, x2 8640 ldrh w21, [x0, #:lo12:.LANCHOR22] 8641 add x25, x25, :lo12:.LANCHOR12 8642 add x26, x26, :lo12:.LANCHOR23 8643 mov w23, 0 8644 lsr w21, w28, w21 8645.L1212: 8646 cbnz w20, .L1217 8647.L1210: 8648 mov w0, w23 8649 ldp x19, x20, [sp, 16] 8650 ldp x21, x22, [sp, 32] 8651 ldp x23, x24, [sp, 48] 8652 ldp x25, x26, [sp, 64] 8653 ldp x27, x28, [sp, 80] 8654 ldp x29, x30, [sp], 208 8655 ret 8656.L1217: 8657 ldrh w1, [x25] 8658 adrp x0, .LANCHOR133 8659 adrp x27, .LANCHOR124 8660 ldr x0, [x0, #:lo12:.LANCHOR133] 8661 udiv w22, w28, w1 8662 ldr w2, [x0, w21, uxtw 2] 8663 and w0, w20, 65535 8664 msub w22, w22, w1, w28 8665 sub w19, w1, w22 8666 and w19, w19, 65535 8667 cmp w20, w19 8668 csel w19, w0, w19, cc 8669 cbz w2, .L1214 8670 cmp w19, w1 8671 beq .L1214 8672 ldr x0, [x27, #:lo12:.LANCHOR124] 8673 str x0, [x29, 120] 8674 add x0, x29, 144 8675 str w2, [x29, 116] 8676 mov w2, 1 8677 str x0, [x29, 128] 8678 mov w1, w2 8679 add x0, x29, 112 8680 bl FlashReadPages 8681.L1215: 8682 lsl w4, w19, 9 8683 ldr x0, [x27, #:lo12:.LANCHOR124] 8684 lsl w22, w22, 7 8685 mov w2, w4 8686 mov x1, x24 8687 str w4, [x29, 108] 8688 add x0, x0, x22, sxtw 2 8689 bl ftl_memcpy 8690 ldr x2, [x27, #:lo12:.LANCHOR124] 8691 mov w1, w21 8692 adrp x0, .LANCHOR149 8693 add x0, x0, :lo12:.LANCHOR149 8694 sub w20, w20, w19 8695 add w28, w28, w19 8696 add w21, w21, 1 8697 bl FtlMapWritePage 8698 cmn w0, #1 8699 ldr w4, [x29, 108] 8700 csinv w23, w23, wzr, ne 8701 add x24, x24, x4, sxtw 8702 b .L1212 8703.L1214: 8704 ldrh w2, [x26] 8705 mov w1, 0 8706 ldr x0, [x27, #:lo12:.LANCHOR124] 8707 bl ftl_memset 8708 b .L1215 8709.L1218: 8710 mov w23, -1 8711 b .L1210 8712 .size FtlVendorPartWrite, .-FtlVendorPartWrite 8713 .section .text.Ftl_save_ext_data,"ax",@progbits 8714 .align 2 8715 .global Ftl_save_ext_data 8716 .type Ftl_save_ext_data, %function 8717Ftl_save_ext_data: 8718 adrp x0, .LANCHOR81 8719 add x2, x0, :lo12:.LANCHOR81 8720 ldr w1, [x0, #:lo12:.LANCHOR81] 8721 mov w0, 19539 8722 movk w0, 0x4654, lsl 16 8723 cmp w1, w0 8724 bne .L1223 8725 mov w0, 68 8726 mov w1, 1 8727 movk w0, 0x5000, lsl 16 8728 str w0, [x2, 4] 8729 adrp x0, .LANCHOR68 8730 ldr w0, [x0, #:lo12:.LANCHOR68] 8731 str w0, [x2, 88] 8732 adrp x0, .LANCHOR69 8733 ldr w0, [x0, #:lo12:.LANCHOR69] 8734 str w0, [x2, 92] 8735 adrp x0, .LANCHOR67 8736 ldr w0, [x0, #:lo12:.LANCHOR67] 8737 str w0, [x2, 8] 8738 adrp x0, .LANCHOR64 8739 ldr w0, [x0, #:lo12:.LANCHOR64] 8740 str w0, [x2, 12] 8741 adrp x0, .LANCHOR62 8742 ldr w0, [x0, #:lo12:.LANCHOR62] 8743 str w0, [x2, 16] 8744 adrp x0, .LANCHOR66 8745 ldr w0, [x0, #:lo12:.LANCHOR66] 8746 str w0, [x2, 20] 8747 adrp x0, .LANCHOR73 8748 ldr w0, [x0, #:lo12:.LANCHOR73] 8749 str w0, [x2, 28] 8750 adrp x0, .LANCHOR75 8751 ldr w0, [x0, #:lo12:.LANCHOR75] 8752 str w0, [x2, 32] 8753 adrp x0, .LANCHOR63 8754 ldr w0, [x0, #:lo12:.LANCHOR63] 8755 str w0, [x2, 36] 8756 adrp x0, .LANCHOR65 8757 ldr w0, [x0, #:lo12:.LANCHOR65] 8758 str w0, [x2, 40] 8759 adrp x0, .LANCHOR76 8760 ldr w0, [x0, #:lo12:.LANCHOR76] 8761 str w0, [x2, 44] 8762 adrp x0, .LANCHOR77 8763 ldr w0, [x0, #:lo12:.LANCHOR77] 8764 str w0, [x2, 48] 8765 mov w0, 0 8766 b FtlVendorPartWrite 8767.L1223: 8768 ret 8769 .size Ftl_save_ext_data, .-Ftl_save_ext_data 8770 .section .text.FtlEctTblFlush,"ax",@progbits 8771 .align 2 8772 .global FtlEctTblFlush 8773 .type FtlEctTblFlush, %function 8774FtlEctTblFlush: 8775 adrp x2, .LANCHOR165 8776 ldrh w1, [x2, #:lo12:.LANCHOR165] 8777 cmp w1, 31 8778 bhi .L1229 8779 add w1, w1, 1 8780 strh w1, [x2, #:lo12:.LANCHOR165] 8781 mov w1, 1 8782.L1226: 8783 adrp x2, .LANCHOR127 8784 cbnz w0, .L1227 8785 ldr x0, [x2, #:lo12:.LANCHOR127] 8786 ldr w3, [x0, 20] 8787 ldr w0, [x0, 16] 8788 add w1, w1, w3 8789 cmp w0, w1 8790 bcc .L1231 8791.L1227: 8792 stp x29, x30, [sp, -16]! 8793 add x29, sp, 0 8794 ldr x2, [x2, #:lo12:.LANCHOR127] 8795 ldr w0, [x2, 16] 8796 str w0, [x2, 20] 8797 mov w0, 17221 8798 str wzr, [x2, 4] 8799 movk w0, 0x4254, lsl 16 8800 str w0, [x2] 8801 adrp x0, .LANCHOR125 8802 ldrh w1, [x0, #:lo12:.LANCHOR125] 8803 lsl w0, w1, 9 8804 str w0, [x2, 12] 8805 ldr w0, [x2, 8] 8806 add w0, w0, 1 8807 str w0, [x2, 8] 8808 mov w0, 64 8809 bl FtlVendorPartWrite 8810 bl Ftl_save_ext_data 8811 mov w0, 0 8812 ldp x29, x30, [sp], 16 8813 ret 8814.L1229: 8815 mov w1, 32 8816 b .L1226 8817.L1231: 8818 mov w0, 0 8819 ret 8820 .size FtlEctTblFlush, .-FtlEctTblFlush 8821 .section .text.sftl_vendor_write,"ax",@progbits 8822 .align 2 8823 .global sftl_vendor_write 8824 .type sftl_vendor_write, %function 8825sftl_vendor_write: 8826 add w0, w0, 256 8827 b FtlVendorPartWrite 8828 .size sftl_vendor_write, .-sftl_vendor_write 8829 .section .text.FtlVendorPartRead,"ax",@progbits 8830 .align 2 8831 .global FtlVendorPartRead 8832 .type FtlVendorPartRead, %function 8833FtlVendorPartRead: 8834 stp x29, x30, [sp, -208]! 8835 add x29, sp, 0 8836 stp x19, x20, [sp, 16] 8837 mov w20, w1 8838 stp x21, x22, [sp, 32] 8839 add w1, w0, w1 8840 mov w21, w0 8841 adrp x0, .LANCHOR16 8842 stp x23, x24, [sp, 48] 8843 ldrh w0, [x0, #:lo12:.LANCHOR16] 8844 stp x25, x26, [sp, 64] 8845 stp x27, x28, [sp, 80] 8846 cmp w1, w0 8847 bhi .L1242 8848 adrp x0, .LANCHOR22 8849 adrp x24, .LANCHOR12 8850 mov x23, x2 8851 add x24, x24, :lo12:.LANCHOR12 8852 ldrh w3, [x0, #:lo12:.LANCHOR22] 8853 mov w22, 0 8854 adrp x25, .LANCHOR133 8855 lsr w26, w21, w3 8856.L1236: 8857 cbnz w20, .L1241 8858.L1234: 8859 mov w0, w22 8860 ldp x19, x20, [sp, 16] 8861 ldp x21, x22, [sp, 32] 8862 ldp x23, x24, [sp, 48] 8863 ldp x25, x26, [sp, 64] 8864 ldp x27, x28, [sp, 80] 8865 ldp x29, x30, [sp], 208 8866 ret 8867.L1241: 8868 ldrh w19, [x24] 8869 ldr x0, [x25, #:lo12:.LANCHOR133] 8870 udiv w27, w21, w19 8871 ldr w1, [x0, w26, uxtw 2] 8872 and w0, w20, 65535 8873 msub w27, w27, w19, w21 8874 sub w19, w19, w27 8875 and w19, w19, 65535 8876 cmp w20, w19 8877 csel w19, w0, w19, cc 8878 lsl w28, w19, 9 8879 cbz w1, .L1238 8880 adrp x4, .LANCHOR124 8881 mov w2, 1 8882 str x4, [x29, 104] 8883 lsl w27, w27, 7 8884 ldr x0, [x4, #:lo12:.LANCHOR124] 8885 str x0, [x29, 120] 8886 add x0, x29, 144 8887 str w1, [x29, 116] 8888 mov w1, w2 8889 str x0, [x29, 128] 8890 add x0, x29, 112 8891 bl FlashReadPages 8892 ldr x4, [x29, 104] 8893 mov w2, w28 8894 ldr w0, [x29, 112] 8895 cmn w0, #1 8896 mov x0, x23 8897 ldr x1, [x4, #:lo12:.LANCHOR124] 8898 csinv w22, w22, wzr, ne 8899 add x1, x1, x27, sxtw 2 8900 bl ftl_memcpy 8901.L1240: 8902 add w26, w26, 1 8903 sub w20, w20, w19 8904 add w21, w21, w19 8905 add x23, x23, x28, sxtw 8906 b .L1236 8907.L1238: 8908 mov w2, w28 8909 mov w1, 0 8910 mov x0, x23 8911 bl ftl_memset 8912 b .L1240 8913.L1242: 8914 mov w22, -1 8915 b .L1234 8916 .size FtlVendorPartRead, .-FtlVendorPartRead 8917 .section .text.FtlLoadEctTbl,"ax",@progbits 8918 .align 2 8919 .global FtlLoadEctTbl 8920 .type FtlLoadEctTbl, %function 8921FtlLoadEctTbl: 8922 stp x29, x30, [sp, -32]! 8923 mov w0, 64 8924 add x29, sp, 0 8925 stp x19, x20, [sp, 16] 8926 adrp x19, .LANCHOR127 8927 adrp x20, .LANCHOR125 8928 ldr x2, [x19, #:lo12:.LANCHOR127] 8929 ldrh w1, [x20, #:lo12:.LANCHOR125] 8930 bl FtlVendorPartRead 8931 ldr x0, [x19, #:lo12:.LANCHOR127] 8932 ldr w1, [x0] 8933 mov w0, 17221 8934 movk w0, 0x4254, lsl 16 8935 cmp w1, w0 8936 beq .L1245 8937 adrp x1, .LC103 8938 adrp x0, .LC71 8939 add x1, x1, :lo12:.LC103 8940 add x0, x0, :lo12:.LC71 8941 bl printf 8942 ldr x0, [x19, #:lo12:.LANCHOR127] 8943 mov w1, 0 8944 ldrh w2, [x20, #:lo12:.LANCHOR125] 8945 lsl w2, w2, 9 8946 bl ftl_memset 8947.L1245: 8948 mov w0, 0 8949 ldp x19, x20, [sp, 16] 8950 ldp x29, x30, [sp], 32 8951 ret 8952 .size FtlLoadEctTbl, .-FtlLoadEctTbl 8953 .section .text.Ftl_load_ext_data,"ax",@progbits 8954 .align 2 8955 .global Ftl_load_ext_data 8956 .type Ftl_load_ext_data, %function 8957Ftl_load_ext_data: 8958 stp x29, x30, [sp, -48]! 8959 mov w1, 1 8960 mov w0, 0 8961 add x29, sp, 0 8962 stp x19, x20, [sp, 16] 8963 adrp x19, .LANCHOR81 8964 str x21, [sp, 32] 8965 add x21, x19, :lo12:.LANCHOR81 8966 mov x2, x21 8967 bl FtlVendorPartRead 8968 ldr w0, [x19, #:lo12:.LANCHOR81] 8969 mov w20, 19539 8970 movk w20, 0x4654, lsl 16 8971 cmp w0, w20 8972 beq .L1248 8973 mov w2, 512 8974 mov w1, 0 8975 mov x0, x21 8976 bl ftl_memset 8977 str w20, [x19, #:lo12:.LANCHOR81] 8978.L1248: 8979 ldr w1, [x19, #:lo12:.LANCHOR81] 8980 add x0, x19, :lo12:.LANCHOR81 8981 cmp w1, w20 8982 adrp x1, .LANCHOR73 8983 bne .L1249 8984 adrp x2, .LANCHOR68 8985 ldr w3, [x0, 88] 8986 str w3, [x2, #:lo12:.LANCHOR68] 8987 adrp x2, .LANCHOR69 8988 ldr w3, [x0, 92] 8989 str w3, [x2, #:lo12:.LANCHOR69] 8990 adrp x2, .LANCHOR67 8991 ldr w3, [x0, 8] 8992 str w3, [x2, #:lo12:.LANCHOR67] 8993 adrp x2, .LANCHOR64 8994 ldr w3, [x0, 12] 8995 str w3, [x2, #:lo12:.LANCHOR64] 8996 adrp x2, .LANCHOR62 8997 ldr w3, [x0, 16] 8998 str w3, [x2, #:lo12:.LANCHOR62] 8999 adrp x2, .LANCHOR66 9000 ldr w3, [x0, 20] 9001 str w3, [x2, #:lo12:.LANCHOR66] 9002 ldp w2, w3, [x0, 28] 9003 str w2, [x1, #:lo12:.LANCHOR73] 9004 adrp x2, .LANCHOR75 9005 str w3, [x2, #:lo12:.LANCHOR75] 9006 adrp x2, .LANCHOR63 9007 ldr w3, [x0, 36] 9008 str w3, [x2, #:lo12:.LANCHOR63] 9009 adrp x2, .LANCHOR65 9010 ldr w3, [x0, 40] 9011 str w3, [x2, #:lo12:.LANCHOR65] 9012 adrp x2, .LANCHOR76 9013 ldr w3, [x0, 44] 9014 str w3, [x2, #:lo12:.LANCHOR76] 9015 ldr w2, [x0, 48] 9016 adrp x0, .LANCHOR77 9017 str w2, [x0, #:lo12:.LANCHOR77] 9018.L1249: 9019 adrp x0, .LANCHOR14 9020 adrp x2, .LANCHOR72 9021 ldr w1, [x1, #:lo12:.LANCHOR73] 9022 ldrh w0, [x0, #:lo12:.LANCHOR14] 9023 ldr w2, [x2, #:lo12:.LANCHOR72] 9024 ldp x19, x20, [sp, 16] 9025 ldr x21, [sp, 32] 9026 madd w0, w0, w2, w1 9027 adrp x1, .LANCHOR5 9028 ldp x29, x30, [sp], 48 9029 ldrh w1, [x1, #:lo12:.LANCHOR5] 9030 udiv w0, w0, w1 9031 adrp x1, .LANCHOR74 9032 str w0, [x1, #:lo12:.LANCHOR74] 9033 ret 9034 .size Ftl_load_ext_data, .-Ftl_load_ext_data 9035 .section .text.sftl_vendor_read,"ax",@progbits 9036 .align 2 9037 .global sftl_vendor_read 9038 .type sftl_vendor_read, %function 9039sftl_vendor_read: 9040 add w0, w0, 256 9041 b FtlVendorPartRead 9042 .size sftl_vendor_read, .-sftl_vendor_read 9043 .section .text.FtlVpcTblFlush,"ax",@progbits 9044 .align 2 9045 .global FtlVpcTblFlush 9046 .type FtlVpcTblFlush, %function 9047FtlVpcTblFlush: 9048 stp x29, x30, [sp, -112]! 9049 adrp x1, .LANCHOR79 9050 mov w2, 19539 9051 add x29, sp, 0 9052 stp x25, x26, [sp, 64] 9053 adrp x25, .LANCHOR108 9054 stp x21, x22, [sp, 32] 9055 adrp x22, .LANCHOR106 9056 stp x23, x24, [sp, 48] 9057 adrp x24, .LANCHOR107 9058 stp x27, x28, [sp, 80] 9059 add x28, x22, :lo12:.LANCHOR106 9060 ldr x21, [x25, #:lo12:.LANCHOR108] 9061 movk w2, 0x4654, lsl 16 9062 stp x19, x20, [sp, 16] 9063 add x19, x1, :lo12:.LANCHOR79 9064 ldr x0, [x24, #:lo12:.LANCHOR107] 9065 adrp x23, .LANCHOR70 9066 ldrh w1, [x1, #:lo12:.LANCHOR79] 9067 adrp x27, .LANCHOR20 9068 stp x0, x21, [x28, 8] 9069 mov w26, 65535 9070 strh w1, [x21, 2] 9071 mov w1, -3932 9072 strh w1, [x21] 9073 ldr w1, [x19, 8] 9074 stp w1, wzr, [x21, 4] 9075 adrp x1, .LANCHOR39 9076 add x20, x1, :lo12:.LANCHOR39 9077 str wzr, [x21, 12] 9078 str w2, [x1, #:lo12:.LANCHOR39] 9079 mov w1, 68 9080 movk w1, 0x5000, lsl 16 9081 str w1, [x20, 4] 9082 ldrh w1, [x19, 6] 9083 adrp x2, .LANCHOR51 9084 strh w1, [x20, 8] 9085 adrp x1, .LANCHOR10 9086 ldrh w1, [x1, #:lo12:.LANCHOR10] 9087 strb w1, [x20, 10] 9088 add x1, x2, :lo12:.LANCHOR51 9089 ldrh w2, [x2, #:lo12:.LANCHOR51] 9090 strh w2, [x20, 14] 9091 ldrh w2, [x1, 2] 9092 ldrb w3, [x1, 6] 9093 ldrb w1, [x1, 8] 9094 strb w1, [x20, 11] 9095 orr w2, w3, w2, lsl 6 9096 strh w2, [x20, 16] 9097 adrp x2, .LANCHOR52 9098 add x1, x2, :lo12:.LANCHOR52 9099 ldrh w2, [x2, #:lo12:.LANCHOR52] 9100 ldrb w3, [x1, 6] 9101 strh w2, [x20, 18] 9102 ldrh w2, [x1, 2] 9103 ldrb w1, [x1, 8] 9104 strb w1, [x20, 12] 9105 orr w2, w3, w2, lsl 6 9106 strh w2, [x20, 20] 9107 adrp x2, .LANCHOR53 9108 add x1, x2, :lo12:.LANCHOR53 9109 ldrh w2, [x2, #:lo12:.LANCHOR53] 9110 ldrb w3, [x1, 6] 9111 strh w2, [x20, 22] 9112 ldrh w2, [x1, 2] 9113 ldrb w1, [x1, 8] 9114 strb w1, [x20, 13] 9115 adrp x1, .LANCHOR72 9116 orr w2, w3, w2, lsl 6 9117 strh w2, [x20, 24] 9118 ldr w1, [x1, #:lo12:.LANCHOR72] 9119 str w1, [x20, 32] 9120 ldr w1, [x23, #:lo12:.LANCHOR70] 9121 str w1, [x20, 40] 9122 adrp x1, .LANCHOR71 9123 ldr w1, [x1, #:lo12:.LANCHOR71] 9124 str w1, [x20, 36] 9125 adrp x1, .LANCHOR23 9126 ldrh w2, [x1, #:lo12:.LANCHOR23] 9127 mov w1, 255 9128 bl ftl_memset 9129 ldr x0, [x28, 8] 9130 mov x1, x20 9131 mov w2, 48 9132 adrp x20, .LANCHOR5 9133 bl ftl_memcpy 9134 adrp x1, .LANCHOR42 9135 ldrh w2, [x20, #:lo12:.LANCHOR5] 9136 ldr x0, [x28, 8] 9137 ldr x1, [x1, #:lo12:.LANCHOR42] 9138 lsl w2, w2, 1 9139 add x0, x0, 48 9140 bl ftl_memcpy 9141 ldrh w0, [x20, #:lo12:.LANCHOR5] 9142 adrp x1, .LANCHOR1 9143 ldr x3, [x28, 8] 9144 mov w20, 0 9145 ldr x1, [x1, #:lo12:.LANCHOR1] 9146 lsr w2, w0, 3 9147 ubfiz x0, x0, 1, 16 9148 add w2, w2, 4 9149 add x0, x0, 48 9150 and x0, x0, -4 9151 add x0, x3, x0 9152 bl ftl_memcpy 9153 mov w0, 0 9154 bl FtlUpdateVaildLpn 9155 add x0, x27, :lo12:.LANCHOR20 9156 str x0, [x29, 104] 9157.L1253: 9158 ldr x0, [x24, #:lo12:.LANCHOR107] 9159 mov w3, 1 9160 str x0, [x28, 8] 9161 mov w2, w3 9162 ldr x0, [x25, #:lo12:.LANCHOR108] 9163 ldrh w1, [x19, 2] 9164 str x0, [x28, 16] 9165 ldrh w0, [x19] 9166 orr w0, w1, w0, lsl 10 9167 mov w1, w3 9168 str w0, [x28, 4] 9169 mov x0, x28 9170 bl FlashProgPages 9171 ldrh w0, [x27, #:lo12:.LANCHOR20] 9172 ldrh w1, [x19, 2] 9173 sub w0, w0, #1 9174 cmp w1, w0 9175 blt .L1254 9176 ldrh w0, [x19] 9177 ldrh w26, [x19, 4] 9178 strh wzr, [x19, 2] 9179 strh w0, [x19, 4] 9180 bl FtlFreeSysBlkQueueOut 9181 strh w0, [x19] 9182 ldr w1, [x23, #:lo12:.LANCHOR70] 9183 mov w3, 1 9184 str w1, [x19, 8] 9185 add w2, w1, 1 9186 str w2, [x23, #:lo12:.LANCHOR70] 9187 ubfiz w2, w0, 10, 16 9188 str w2, [x28, 4] 9189 strh w0, [x21, 2] 9190 mov w2, w3 9191 str w1, [x21, 4] 9192 mov x0, x28 9193 mov w1, w3 9194 bl FlashProgPages 9195.L1254: 9196 ldrh w0, [x19, 2] 9197 ldr w1, [x28] 9198 add w0, w0, 1 9199 and w0, w0, 65535 9200 strh w0, [x19, 2] 9201 cmn w1, #1 9202 bne .L1255 9203 cmp w0, 1 9204 bne .L1256 9205 adrp x1, .LANCHOR166 9206 adrp x0, .LC1 9207 mov w2, 1124 9208 add x1, x1, :lo12:.LANCHOR166 9209 add x0, x0, :lo12:.LC1 9210 bl printf 9211.L1256: 9212 ldrh w0, [x19, 2] 9213 cmp w0, 1 9214 bne .L1257 9215 ldr x0, [x29, 104] 9216 ldrh w0, [x0] 9217 sub w0, w0, #1 9218 strh w0, [x19, 2] 9219.L1257: 9220 add w20, w20, 1 9221 and w20, w20, 65535 9222 cmp w20, 3 9223 bls .L1253 9224 add x22, x22, :lo12:.LANCHOR106 9225 adrp x0, .LC104 9226 mov w2, w20 9227 add x0, x0, :lo12:.LC104 9228 ldr w1, [x22, 4] 9229 bl printf 9230.L1259: 9231 b .L1259 9232.L1255: 9233 cmp w0, 1 9234 beq .L1253 9235 mov w0, 65535 9236 cmp w26, w0 9237 beq .L1260 9238 mov w1, 1 9239 mov w0, w26 9240 bl FtlFreeSysBlkQueueIn 9241.L1260: 9242 ldp x19, x20, [sp, 16] 9243 mov w0, 0 9244 ldp x21, x22, [sp, 32] 9245 ldp x23, x24, [sp, 48] 9246 ldp x25, x26, [sp, 64] 9247 ldp x27, x28, [sp, 80] 9248 ldp x29, x30, [sp], 112 9249 ret 9250 .size FtlVpcTblFlush, .-FtlVpcTblFlush 9251 .section .text.FtlSysFlush,"ax",@progbits 9252 .align 2 9253 .global FtlSysFlush 9254 .type FtlSysFlush, %function 9255FtlSysFlush: 9256 stp x29, x30, [sp, -16]! 9257 add x29, sp, 0 9258 bl l2p_flush 9259 mov w0, 1 9260 bl FtlEctTblFlush 9261 bl FtlVpcTblFlush 9262 mov w0, 0 9263 ldp x29, x30, [sp], 16 9264 ret 9265 .size FtlSysFlush, .-FtlSysFlush 9266 .section .text.sftl_deinit,"ax",@progbits 9267 .align 2 9268 .global sftl_deinit 9269 .type sftl_deinit, %function 9270sftl_deinit: 9271 adrp x0, .LANCHOR86 9272 ldr w0, [x0, #:lo12:.LANCHOR86] 9273 cmp w0, 1 9274 bne .L1270 9275 stp x29, x30, [sp, -16]! 9276 add x29, sp, 0 9277 bl FtlSysFlush 9278 mov w0, 0 9279 ldp x29, x30, [sp], 16 9280 ret 9281.L1270: 9282 mov w0, 0 9283 ret 9284 .size sftl_deinit, .-sftl_deinit 9285 .section .text.FtlDiscard,"ax",@progbits 9286 .align 2 9287 .global FtlDiscard 9288 .type FtlDiscard, %function 9289FtlDiscard: 9290 stp x29, x30, [sp, -80]! 9291 add w2, w0, w1 9292 add x29, sp, 0 9293 stp x19, x20, [sp, 16] 9294 mov w19, w1 9295 adrp x1, .LANCHOR34 9296 stp x21, x22, [sp, 32] 9297 str x23, [sp, 48] 9298 ldr w1, [x1, #:lo12:.LANCHOR34] 9299 cmp w2, w1 9300 bhi .L1281 9301 cmp w19, 31 9302 bhi .L1275 9303.L1289: 9304 mov w0, 0 9305.L1273: 9306 ldp x19, x20, [sp, 16] 9307 ldp x21, x22, [sp, 32] 9308 ldr x23, [sp, 48] 9309 ldp x29, x30, [sp], 80 9310 ret 9311.L1275: 9312 adrp x21, .LANCHOR12 9313 ldrh w1, [x21, #:lo12:.LANCHOR12] 9314 udiv w20, w0, w1 9315 msub w0, w1, w20, w0 9316 ands w0, w0, 65535 9317 beq .L1276 9318 sub w1, w1, w0 9319 add w20, w20, 1 9320 cmp w1, w19 9321 csel w1, w1, w19, ls 9322 sub w19, w19, w1, uxth 9323.L1276: 9324 adrp x22, .LANCHOR167 9325 adrp x23, .LANCHOR63 9326 add x22, x22, :lo12:.LANCHOR167 9327 add x23, x23, :lo12:.LANCHOR63 9328 mov w0, -1 9329 str w0, [x29, 76] 9330.L1277: 9331 ldrh w0, [x21, #:lo12:.LANCHOR12] 9332 cmp w19, w0 9333 bcs .L1279 9334 adrp x0, .LANCHOR167 9335 ldr w1, [x0, #:lo12:.LANCHOR167] 9336 cmp w1, 32 9337 bls .L1289 9338 str wzr, [x0, #:lo12:.LANCHOR167] 9339 bl l2p_flush 9340 bl FtlVpcTblFlush 9341 b .L1289 9342.L1279: 9343 mov w2, 0 9344 add x1, x29, 72 9345 mov w0, w20 9346 bl log2phys 9347 ldr w0, [x29, 72] 9348 cmn w0, #1 9349 beq .L1278 9350 ldr w0, [x22] 9351 mov w2, 1 9352 add x1, x29, 76 9353 add w0, w0, 1 9354 str w0, [x22] 9355 ldr w0, [x23] 9356 add w0, w0, 1 9357 str w0, [x23] 9358 mov w0, w20 9359 bl log2phys 9360 ldr w0, [x29, 72] 9361 lsr w0, w0, 10 9362 bl P2V_block_in_plane 9363 bl decrement_vpc_count 9364.L1278: 9365 ldrh w0, [x21, #:lo12:.LANCHOR12] 9366 add w20, w20, 1 9367 sub w19, w19, w0 9368 b .L1277 9369.L1281: 9370 mov w0, -1 9371 b .L1273 9372 .size FtlDiscard, .-FtlDiscard 9373 .section .text.FtlVpcCheckAndModify,"ax",@progbits 9374 .align 2 9375 .global FtlVpcCheckAndModify 9376 .type FtlVpcCheckAndModify, %function 9377FtlVpcCheckAndModify: 9378 stp x29, x30, [sp, -96]! 9379 adrp x1, .LANCHOR168 9380 adrp x0, .LC94 9381 add x1, x1, :lo12:.LANCHOR168 9382 add x29, sp, 0 9383 stp x19, x20, [sp, 16] 9384 add x0, x0, :lo12:.LC94 9385 stp x21, x22, [sp, 32] 9386 adrp x20, .LANCHOR128 9387 stp x23, x24, [sp, 48] 9388 adrp x21, .LANCHOR61 9389 str x25, [sp, 64] 9390 bl printf 9391 adrp x0, .LANCHOR6 9392 mov w19, 0 9393 add x21, x21, :lo12:.LANCHOR61 9394 mov w1, 0 9395 ldrh w2, [x0, #:lo12:.LANCHOR6] 9396 ldr x0, [x20, #:lo12:.LANCHOR128] 9397 lsl w2, w2, 1 9398 bl ftl_memset 9399.L1291: 9400 ldr w0, [x21] 9401 cmp w19, w0 9402 bcc .L1293 9403 adrp x22, .LANCHOR5 9404 adrp x23, .LC105 9405 add x22, x22, :lo12:.LANCHOR5 9406 add x23, x23, :lo12:.LC105 9407 mov w19, 0 9408 adrp x25, .LANCHOR42 9409 mov w24, 65535 9410.L1294: 9411 ldrh w0, [x22] 9412 cmp w0, w19 9413 bhi .L1298 9414 ldp x19, x20, [sp, 16] 9415 ldp x21, x22, [sp, 32] 9416 ldp x23, x24, [sp, 48] 9417 ldr x25, [sp, 64] 9418 ldp x29, x30, [sp], 96 9419 ret 9420.L1293: 9421 mov w2, 0 9422 add x1, x29, 92 9423 mov w0, w19 9424 bl log2phys 9425 ldr w0, [x29, 92] 9426 cmn w0, #1 9427 beq .L1292 9428 lsr w0, w0, 10 9429 bl P2V_block_in_plane 9430 ldr x2, [x20, #:lo12:.LANCHOR128] 9431 ubfiz x0, x0, 1, 16 9432 ldrh w1, [x2, x0] 9433 add w1, w1, 1 9434 strh w1, [x2, x0] 9435.L1292: 9436 add w19, w19, 1 9437 b .L1291 9438.L1298: 9439 ldr x0, [x25, #:lo12:.LANCHOR42] 9440 ubfiz x21, x19, 1, 16 9441 ldrh w2, [x0, x21] 9442 ldr x0, [x20, #:lo12:.LANCHOR128] 9443 ldrh w3, [x0, x21] 9444 cmp w2, w3 9445 beq .L1296 9446 cmp w2, w24 9447 beq .L1296 9448 mov w1, w19 9449 mov x0, x23 9450 bl printf 9451 adrp x0, .LANCHOR51 9452 ldrh w0, [x0, #:lo12:.LANCHOR51] 9453 cmp w0, w19 9454 beq .L1296 9455 adrp x0, .LANCHOR53 9456 ldrh w0, [x0, #:lo12:.LANCHOR53] 9457 cmp w0, w19 9458 beq .L1296 9459 adrp x0, .LANCHOR52 9460 ldrh w0, [x0, #:lo12:.LANCHOR52] 9461 cmp w0, w19 9462 beq .L1296 9463 ldr x0, [x20, #:lo12:.LANCHOR128] 9464 ldrh w1, [x0, x21] 9465 ldr x0, [x25, #:lo12:.LANCHOR42] 9466 strh w1, [x0, x21] 9467 mov w0, w19 9468 bl update_vpc_list 9469 bl l2p_flush 9470 bl FtlVpcTblFlush 9471.L1296: 9472 add w19, w19, 1 9473 and w19, w19, 65535 9474 b .L1294 9475 .size FtlVpcCheckAndModify, .-FtlVpcCheckAndModify 9476 .section .text.allocate_new_data_superblock,"ax",@progbits 9477 .align 2 9478 .global allocate_new_data_superblock 9479 .type allocate_new_data_superblock, %function 9480allocate_new_data_superblock: 9481 stp x29, x30, [sp, -48]! 9482 add x29, sp, 0 9483 stp x19, x20, [sp, 16] 9484 ldrh w19, [x0] 9485 str x21, [sp, 32] 9486 mov x21, x0 9487 adrp x0, .LANCHOR5 9488 ldrh w0, [x0, #:lo12:.LANCHOR5] 9489 cmp w0, w19 9490 bcs .L1304 9491 adrp x1, .LANCHOR169 9492 adrp x0, .LC1 9493 mov w2, 2684 9494 add x1, x1, :lo12:.LANCHOR169 9495 add x0, x0, :lo12:.LC1 9496 bl printf 9497.L1304: 9498 mov w0, 65535 9499 cmp w19, w0 9500 beq .L1305 9501 adrp x1, .LANCHOR42 9502 ubfiz x0, x19, 1, 16 9503 ldr x1, [x1, #:lo12:.LANCHOR42] 9504 ldrh w0, [x1, x0] 9505 cbz w0, .L1306 9506 mov w0, w19 9507 bl INSERT_DATA_LIST 9508.L1305: 9509 adrp x1, .LANCHOR150 9510 mov w0, 1 9511 strb w0, [x21, 8] 9512 mov w2, 65535 9513 ldrh w0, [x1, #:lo12:.LANCHOR150] 9514 mov x20, x1 9515 cmp w0, w2 9516 beq .L1307 9517 cmp w19, w0 9518 bne .L1308 9519 adrp x2, .LANCHOR42 9520 ubfiz x1, x0, 1, 16 9521 ldr x2, [x2, #:lo12:.LANCHOR42] 9522 ldrh w1, [x2, x1] 9523 cbz w1, .L1309 9524.L1308: 9525 bl update_vpc_list 9526.L1309: 9527 mov w0, -1 9528 strh w0, [x20, #:lo12:.LANCHOR150] 9529.L1307: 9530 mov x0, x21 9531 bl allocate_data_superblock 9532 bl l2p_flush 9533 mov w0, 0 9534 bl FtlEctTblFlush 9535 bl FtlVpcTblFlush 9536 ldr x21, [sp, 32] 9537 mov w0, 0 9538 ldp x19, x20, [sp, 16] 9539 ldp x29, x30, [sp], 48 9540 ret 9541.L1306: 9542 mov w0, w19 9543 bl INSERT_FREE_LIST 9544 b .L1305 9545 .size allocate_new_data_superblock, .-allocate_new_data_superblock 9546 .section .text.FtlProgPages,"ax",@progbits 9547 .align 2 9548 .global FtlProgPages 9549 .type FtlProgPages, %function 9550FtlProgPages: 9551 stp x29, x30, [sp, -96]! 9552 mov w2, 0 9553 add x29, sp, 0 9554 stp x19, x20, [sp, 16] 9555 mov x19, x3 9556 stp x23, x24, [sp, 48] 9557 add x20, x0, 4 9558 stp x21, x22, [sp, 32] 9559 mov w21, w1 9560 str x25, [sp, 64] 9561 ubfiz x21, x21, 5, 32 9562 add x21, x21, 4 9563 adrp x24, .LANCHOR19 9564 ldrb w3, [x3, 9] 9565 adrp x23, .LANCHOR81 9566 add x21, x0, x21 9567 add x24, x24, :lo12:.LANCHOR19 9568 add x23, x23, :lo12:.LANCHOR81 9569 bl FlashProgPages 9570.L1315: 9571 cmp x20, x21 9572 beq .L1322 9573 sub x22, x20, #4 9574 adrp x25, .LANCHOR42 9575 b .L1323 9576.L1318: 9577 ldr w0, [x20] 9578 lsr w0, w0, 10 9579 bl P2V_block_in_plane 9580 ldrh w1, [x19] 9581 cmp w1, w0, uxth 9582 bne .L1316 9583 ldr x2, [x25, #:lo12:.LANCHOR42] 9584 ubfiz x1, x1, 1, 16 9585 ldrh w3, [x19, 4] 9586 ldrh w0, [x2, x1] 9587 sub w0, w0, w3 9588 strh w0, [x2, x1] 9589 strb wzr, [x19, 6] 9590 ldrh w0, [x24] 9591 strh w0, [x19, 2] 9592 strh wzr, [x19, 4] 9593.L1316: 9594 ldrh w0, [x19, 4] 9595 cbnz w0, .L1317 9596 mov x0, x19 9597 bl allocate_new_data_superblock 9598.L1317: 9599 ldr w0, [x23, 96] 9600 add w0, w0, 1 9601 str w0, [x23, 96] 9602 ldr w0, [x20] 9603 lsr w0, w0, 10 9604 bl FtlGcMarkBadPhyBlk 9605 mov x0, x19 9606 bl get_new_active_ppa 9607 str w0, [x20] 9608 mov w2, 0 9609 str w0, [x29, 92] 9610 mov w1, 1 9611 ldrb w3, [x19, 9] 9612 mov x0, x22 9613 bl FlashProgPages 9614.L1323: 9615 ldr w0, [x20, -4] 9616 cmn w0, #1 9617 beq .L1318 9618 adrp x0, .LANCHOR3 9619 ldrb w1, [x19, 6] 9620 ldrh w0, [x0, #:lo12:.LANCHOR3] 9621 cmp w1, w0 9622 bcc .L1319 9623 adrp x1, .LANCHOR170 9624 adrp x0, .LC1 9625 mov w2, 933 9626 add x1, x1, :lo12:.LANCHOR170 9627 add x0, x0, :lo12:.LC1 9628 bl printf 9629.L1319: 9630 add x1, x29, 96 9631 ldr w0, [x22, 4] 9632 mov w2, 1 9633 str w0, [x1, -4]! 9634 ldr w0, [x22, 24] 9635 bl log2phys 9636 ldr x0, [x22, 16] 9637 ldr w3, [x0, 12] 9638 lsr w0, w3, 10 9639 bl P2V_block_in_plane 9640 and w1, w0, 65535 9641 mov w22, w1 9642 cmn w3, #1 9643 beq .L1320 9644 adrp x2, .LANCHOR42 9645 ubfiz x0, x1, 1, 16 9646 ldr x2, [x2, #:lo12:.LANCHOR42] 9647 ldrh w0, [x2, x0] 9648 cbnz w0, .L1321 9649 adrp x0, .LC106 9650 mov w2, 0 9651 add x0, x0, :lo12:.LC106 9652 bl printf 9653.L1321: 9654 mov w0, w22 9655 bl decrement_vpc_count 9656.L1320: 9657 add x20, x20, 32 9658 b .L1315 9659.L1322: 9660 adrp x0, .LANCHOR3 9661 ldrb w1, [x19, 6] 9662 ldrh w0, [x0, #:lo12:.LANCHOR3] 9663 cmp w1, w0 9664 bcc .L1314 9665 adrp x1, .LANCHOR170 9666 adrp x0, .LC1 9667 mov w2, 948 9668 add x1, x1, :lo12:.LANCHOR170 9669 add x0, x0, :lo12:.LC1 9670 bl printf 9671.L1314: 9672 ldp x19, x20, [sp, 16] 9673 ldp x21, x22, [sp, 32] 9674 ldp x23, x24, [sp, 48] 9675 ldr x25, [sp, 64] 9676 ldp x29, x30, [sp], 96 9677 ret 9678 .size FtlProgPages, .-FtlProgPages 9679 .section .text.FtlGcFreeTempBlock,"ax",@progbits 9680 .align 2 9681 .global FtlGcFreeTempBlock 9682 .type FtlGcFreeTempBlock, %function 9683FtlGcFreeTempBlock: 9684 stp x29, x30, [sp, -112]! 9685 mov w2, 65535 9686 add x29, sp, 0 9687 stp x19, x20, [sp, 16] 9688 adrp x19, .LANCHOR53 9689 stp x21, x22, [sp, 32] 9690 adrp x21, .LANCHOR19 9691 ldrh w20, [x19, #:lo12:.LANCHOR53] 9692 stp x23, x24, [sp, 48] 9693 stp x25, x26, [sp, 64] 9694 cmp w20, w2 9695 str x27, [sp, 80] 9696 ldrh w1, [x21, #:lo12:.LANCHOR19] 9697 bne .L1330 9698.L1340: 9699 adrp x0, .LANCHOR152 9700 ldrh w2, [x19, #:lo12:.LANCHOR53] 9701 mov w1, 65535 9702 str wzr, [x0, #:lo12:.LANCHOR152] 9703 cmp w2, w1 9704 add x0, x19, :lo12:.LANCHOR53 9705 bne .L1353 9706.L1356: 9707 mov w0, 0 9708.L1329: 9709 ldp x19, x20, [sp, 16] 9710 ldp x21, x22, [sp, 32] 9711 ldp x23, x24, [sp, 48] 9712 ldp x25, x26, [sp, 64] 9713 ldr x27, [sp, 80] 9714 ldp x29, x30, [sp], 112 9715 ret 9716.L1330: 9717 cbz w0, .L1333 9718 adrp x0, .LANCHOR156 9719 ldrh w3, [x0, #:lo12:.LANCHOR156] 9720 cmp w3, w2 9721 beq .L1334 9722.L1335: 9723 mov w1, 2 9724.L1333: 9725 add x0, x19, :lo12:.LANCHOR53 9726 bl FtlGcScanTempBlk 9727 str w0, [x29, 108] 9728 cmn w0, #1 9729 beq .L1336 9730 adrp x0, .LANCHOR43 9731 ubfiz x20, x20, 1, 16 9732 ldr x1, [x0, #:lo12:.LANCHOR43] 9733 ldrh w0, [x1, x20] 9734 cmp w0, 4 9735 bls .L1337 9736 sub w0, w0, #5 9737 strh w0, [x1, x20] 9738 mov w0, 1 9739 bl FtlEctTblFlush 9740.L1337: 9741 adrp x0, .LANCHOR152 9742 mov x19, x0 9743 ldr w1, [x0, #:lo12:.LANCHOR152] 9744 cbnz w1, .L1338 9745 adrp x0, .LANCHOR81 9746 add x0, x0, :lo12:.LANCHOR81 9747 ldr w1, [x0, 96] 9748 add w1, w1, 1 9749 str w1, [x0, 96] 9750 ldr w0, [x29, 108] 9751 lsr w0, w0, 10 9752 bl FtlBbmMapBadBlock 9753 bl FtlBbmTblFlush 9754.L1338: 9755 str wzr, [x19, #:lo12:.LANCHOR152] 9756.L1349: 9757 mov w0, 1 9758 b .L1329 9759.L1334: 9760 strh wzr, [x0, #:lo12:.LANCHOR156] 9761 adrp x0, .LANCHOR48 9762 ldrh w0, [x0, #:lo12:.LANCHOR48] 9763 cmp w0, 17 9764 bhi .L1335 9765 b .L1333 9766.L1336: 9767 adrp x0, .LANCHOR156 9768 ldrh w1, [x0, #:lo12:.LANCHOR156] 9769 mov w0, 65535 9770 cmp w1, w0 9771 bne .L1349 9772 b .L1340 9773.L1353: 9774 ldrb w0, [x0, 7] 9775 adrp x20, .LANCHOR97 9776 ldrh w2, [x21, #:lo12:.LANCHOR19] 9777 ldrh w1, [x20, #:lo12:.LANCHOR97] 9778 mul w0, w0, w2 9779 cmp w1, w0 9780 beq .L1341 9781 adrp x1, .LANCHOR171 9782 adrp x0, .LC1 9783 mov w2, 162 9784 add x1, x1, :lo12:.LANCHOR171 9785 add x0, x0, :lo12:.LC1 9786 bl printf 9787.L1341: 9788 add x0, x19, :lo12:.LANCHOR53 9789 adrp x23, .LANCHOR42 9790 ldrh w3, [x21, #:lo12:.LANCHOR19] 9791 adrp x25, .LANCHOR61 9792 ldrh w2, [x19, #:lo12:.LANCHOR53] 9793 adrp x26, .LANCHOR171 9794 ldrb w0, [x0, 7] 9795 add x25, x25, :lo12:.LANCHOR61 9796 ldr x1, [x23, #:lo12:.LANCHOR42] 9797 add x26, x26, :lo12:.LANCHOR171 9798 mov w21, 0 9799 mul w0, w0, w3 9800 strh w0, [x1, x2, lsl 1] 9801 adrp x1, .LANCHOR67 9802 ldrh w0, [x20, #:lo12:.LANCHOR97] 9803 ldr w2, [x1, #:lo12:.LANCHOR67] 9804 add w0, w0, w2 9805 str w0, [x1, #:lo12:.LANCHOR67] 9806.L1342: 9807 ldrh w0, [x20, #:lo12:.LANCHOR97] 9808 cmp w0, w21 9809 bhi .L1346 9810 mov w0, -1 9811 bl decrement_vpc_count 9812 ldrh w0, [x19, #:lo12:.LANCHOR53] 9813 ldr x2, [x23, #:lo12:.LANCHOR42] 9814 ubfiz x1, x0, 1, 16 9815 ldrh w1, [x2, x1] 9816 cbz w1, .L1347 9817 bl INSERT_DATA_LIST 9818.L1348: 9819 adrp x0, .LANCHOR95 9820 mov w21, -1 9821 strh wzr, [x20, #:lo12:.LANCHOR97] 9822 strh w21, [x19, #:lo12:.LANCHOR53] 9823 strh wzr, [x0, #:lo12:.LANCHOR95] 9824 bl l2p_flush 9825 bl FtlVpcTblFlush 9826 adrp x0, .LANCHOR48 9827 ldrh w1, [x0, #:lo12:.LANCHOR48] 9828 adrp x0, .LANCHOR78 9829 ldrh w0, [x0, #:lo12:.LANCHOR78] 9830 add w0, w0, w0, lsl 1 9831 cmp w1, w0, lsr 2 9832 ble .L1356 9833 adrp x0, .LANCHOR80 9834 mov w1, 20 9835 strh w21, [x0, #:lo12:.LANCHOR80] 9836 adrp x0, .LANCHOR82 9837 strh w1, [x0, #:lo12:.LANCHOR82] 9838 b .L1356 9839.L1346: 9840 adrp x0, .LANCHOR98 9841 mov w24, 12 9842 ldr x27, [x0, #:lo12:.LANCHOR98] 9843 umull x24, w21, w24 9844 ldr w0, [x25] 9845 add x22, x27, x24 9846 ldr w1, [x22, 8] 9847 cmp w1, w0 9848 bcc .L1343 9849 adrp x0, .LC1 9850 mov w2, 168 9851 mov x1, x26 9852 add x0, x0, :lo12:.LC1 9853 bl printf 9854.L1343: 9855 ldr w0, [x22, 8] 9856 add x1, x29, 108 9857 mov w2, 0 9858 bl log2phys 9859 ldr w0, [x27, x24] 9860 ldr w1, [x29, 108] 9861 cmp w0, w1 9862 bne .L1344 9863 lsr w0, w0, 10 9864 bl P2V_block_in_plane 9865 mov w24, w0 9866 ldr w0, [x22, 8] 9867 mov w2, 1 9868 add x1, x22, 4 9869 bl log2phys 9870 mov w0, w24 9871.L1355: 9872 bl decrement_vpc_count 9873.L1345: 9874 add w21, w21, 1 9875 and w21, w21, 65535 9876 b .L1342 9877.L1344: 9878 ldr w0, [x22, 4] 9879 cmp w1, w0 9880 beq .L1345 9881 ldrh w0, [x19, #:lo12:.LANCHOR53] 9882 b .L1355 9883.L1347: 9884 bl INSERT_FREE_LIST 9885 b .L1348 9886 .size FtlGcFreeTempBlock, .-FtlGcFreeTempBlock 9887 .section .text.FtlGcPageRecovery,"ax",@progbits 9888 .align 2 9889 .global FtlGcPageRecovery 9890 .type FtlGcPageRecovery, %function 9891FtlGcPageRecovery: 9892 stp x29, x30, [sp, -32]! 9893 add x29, sp, 0 9894 stp x19, x20, [sp, 16] 9895 adrp x20, .LANCHOR19 9896 adrp x19, .LANCHOR53 9897 add x19, x19, :lo12:.LANCHOR53 9898 ldrh w1, [x20, #:lo12:.LANCHOR19] 9899 mov x0, x19 9900 bl FtlGcScanTempBlk 9901 ldrh w1, [x19, 2] 9902 ldrh w0, [x20, #:lo12:.LANCHOR19] 9903 cmp w1, w0 9904 bcc .L1357 9905 adrp x0, .LANCHOR144 9906 add x0, x0, :lo12:.LANCHOR144 9907 bl FtlMapBlkWriteDump_data 9908 mov w0, 0 9909 bl FtlGcFreeTempBlock 9910 adrp x0, .LANCHOR152 9911 str wzr, [x0, #:lo12:.LANCHOR152] 9912.L1357: 9913 ldp x19, x20, [sp, 16] 9914 ldp x29, x30, [sp], 32 9915 ret 9916 .size FtlGcPageRecovery, .-FtlGcPageRecovery 9917 .section .text.FtlPowerLostRecovery,"ax",@progbits 9918 .align 2 9919 .global FtlPowerLostRecovery 9920 .type FtlPowerLostRecovery, %function 9921FtlPowerLostRecovery: 9922 stp x29, x30, [sp, -32]! 9923 adrp x0, .LANCHOR162 9924 add x29, sp, 0 9925 str x19, [sp, 16] 9926 adrp x19, .LANCHOR51 9927 add x19, x19, :lo12:.LANCHOR51 9928 str wzr, [x0, #:lo12:.LANCHOR162] 9929 mov x0, x19 9930 bl FtlRecoverySuperblock 9931 mov x0, x19 9932 adrp x19, .LANCHOR52 9933 bl FtlSlcSuperblockCheck 9934 add x19, x19, :lo12:.LANCHOR52 9935 mov x0, x19 9936 bl FtlRecoverySuperblock 9937 mov x0, x19 9938 bl FtlSlcSuperblockCheck 9939 bl FtlGcPageRecovery 9940 mov w0, -1 9941 bl decrement_vpc_count 9942 mov w0, 0 9943 ldr x19, [sp, 16] 9944 ldp x29, x30, [sp], 32 9945 ret 9946 .size FtlPowerLostRecovery, .-FtlPowerLostRecovery 9947 .section .text.Ftl_gc_temp_data_write_back,"ax",@progbits 9948 .align 2 9949 .global Ftl_gc_temp_data_write_back 9950 .type Ftl_gc_temp_data_write_back, %function 9951Ftl_gc_temp_data_write_back: 9952 stp x29, x30, [sp, -32]! 9953 mov w3, 0 9954 mov w2, 0 9955 add x29, sp, 0 9956 stp x19, x20, [sp, 16] 9957 adrp x19, .LANCHOR89 9958 adrp x20, .LANCHOR121 9959 ldr w1, [x19, #:lo12:.LANCHOR89] 9960 add x19, x19, :lo12:.LANCHOR89 9961 ldr x0, [x20, #:lo12:.LANCHOR121] 9962 bl FlashProgPages 9963 mov w11, 0 9964.L1363: 9965 ldr w1, [x19] 9966 cmp w11, w1 9967 bcc .L1366 9968 ldr x0, [x20, #:lo12:.LANCHOR121] 9969 bl FtlGcBufFree 9970 str wzr, [x19] 9971 adrp x0, .LANCHOR53+4 9972 ldrh w0, [x0, #:lo12:.LANCHOR53+4] 9973 cbnz w0, .L1367 9974 mov w0, 1 9975 bl FtlGcFreeTempBlock 9976 b .L1369 9977.L1366: 9978 ldr x2, [x20, #:lo12:.LANCHOR121] 9979 ubfiz x0, x11, 5, 16 9980 add x1, x2, x0 9981 ldr w2, [x2, x0] 9982 cmn w2, #1 9983 bne .L1364 9984 adrp x0, .LANCHOR53 9985 adrp x3, .LANCHOR42 9986 ldrh w4, [x0, #:lo12:.LANCHOR53] 9987 ldr x3, [x3, #:lo12:.LANCHOR42] 9988 strh wzr, [x3, x4, lsl 1] 9989 strh w2, [x0, #:lo12:.LANCHOR53] 9990 adrp x0, .LANCHOR81 9991 add x0, x0, :lo12:.LANCHOR81 9992 ldr w2, [x0, 96] 9993 add w2, w2, 1 9994 str w2, [x0, 96] 9995 ldr w0, [x1, 4] 9996 lsr w0, w0, 10 9997 bl FtlBbmMapBadBlock 9998 bl FtlBbmTblFlush 9999 bl FtlGcPageVarInit 10000.L1369: 10001 mov w0, 1 10002.L1362: 10003 ldp x19, x20, [sp, 16] 10004 ldp x29, x30, [sp], 32 10005 ret 10006.L1364: 10007 ldr x0, [x1, 16] 10008 ldr w1, [x1, 4] 10009 ldp w2, w0, [x0, 8] 10010 bl FtlGcUpdatePage 10011 add w11, w11, 1 10012 and w11, w11, 65535 10013 b .L1363 10014.L1367: 10015 mov w0, 0 10016 b .L1362 10017 .size Ftl_gc_temp_data_write_back, .-Ftl_gc_temp_data_write_back 10018 .section .text.Ftl_get_new_temp_ppa,"ax",@progbits 10019 .align 2 10020 .global Ftl_get_new_temp_ppa 10021 .type Ftl_get_new_temp_ppa, %function 10022Ftl_get_new_temp_ppa: 10023 stp x29, x30, [sp, -32]! 10024 adrp x0, .LANCHOR53 10025 mov w2, 65535 10026 add x29, sp, 0 10027 str x19, [sp, 16] 10028 mov x19, x0 10029 ldrh w3, [x0, #:lo12:.LANCHOR53] 10030 cmp w3, w2 10031 beq .L1371 10032 add x1, x0, :lo12:.LANCHOR53 10033 ldrh w0, [x1, 4] 10034 cbnz w0, .L1372 10035.L1371: 10036 mov w0, 0 10037 bl FtlGcFreeTempBlock 10038 add x0, x19, :lo12:.LANCHOR53 10039 strb wzr, [x0, 8] 10040 bl allocate_data_superblock 10041 adrp x0, .LANCHOR95 10042 strh wzr, [x0, #:lo12:.LANCHOR95] 10043 adrp x0, .LANCHOR97 10044 strh wzr, [x0, #:lo12:.LANCHOR97] 10045 bl l2p_flush 10046 mov w0, 0 10047 bl FtlEctTblFlush 10048 bl FtlVpcTblFlush 10049.L1372: 10050 add x0, x19, :lo12:.LANCHOR53 10051 ldr x19, [sp, 16] 10052 ldp x29, x30, [sp], 32 10053 b get_new_active_ppa 10054 .size Ftl_get_new_temp_ppa, .-Ftl_get_new_temp_ppa 10055 .section .text.rk_ftl_garbage_collect,"ax",@progbits 10056 .align 2 10057 .global rk_ftl_garbage_collect 10058 .type rk_ftl_garbage_collect, %function 10059rk_ftl_garbage_collect: 10060 stp x29, x30, [sp, -192]! 10061 add x29, sp, 0 10062 stp x21, x22, [sp, 32] 10063 adrp x22, .LANCHOR117 10064 stp x19, x20, [sp, 16] 10065 ldr w1, [x22, #:lo12:.LANCHOR117] 10066 stp x23, x24, [sp, 48] 10067 stp x25, x26, [sp, 64] 10068 stp x27, x28, [sp, 80] 10069 cbnz w1, .L1446 10070 adrp x1, .LANCHOR45 10071 ldrh w1, [x1, #:lo12:.LANCHOR45] 10072 cmp w1, 47 10073 bls .L1446 10074 mov w24, w0 10075 adrp x0, .LANCHOR156 10076 ldrh w1, [x0, #:lo12:.LANCHOR156] 10077 mov w0, 65535 10078 cmp w1, w0 10079 bne .L1376 10080.L1379: 10081 adrp x0, .LANCHOR100 10082 mov w3, 65535 10083 ldrh w2, [x0, #:lo12:.LANCHOR100] 10084 cmp w2, w3 10085 bne .L1377 10086.L1378: 10087 adrp x2, .LANCHOR84 10088 adrp x19, .LANCHOR80 10089 mov w20, 65535 10090 ldr w1, [x2, #:lo12:.LANCHOR84] 10091 ldrh w0, [x19, #:lo12:.LANCHOR80] 10092 add w1, w1, 1 10093 add w1, w1, w24, lsl 7 10094 str w1, [x2, #:lo12:.LANCHOR84] 10095 cmp w0, w20 10096 bne .L1380 10097 adrp x3, .LANCHOR53 10098 ldrh w20, [x3, #:lo12:.LANCHOR53] 10099 cmp w20, w0 10100 bne .L1449 10101 adrp x0, .LANCHOR99 10102 ldrh w21, [x0, #:lo12:.LANCHOR99] 10103 cmp w21, w20 10104 bne .L1380 10105 adrp x23, .LANCHOR48 10106 mov w3, 1024 10107 ldrh w0, [x23, #:lo12:.LANCHOR48] 10108 cmp w0, 24 10109 mov w0, 5120 10110 csel w0, w0, w3, cc 10111 cmp w1, w0 10112 bls .L1452 10113 adrp x0, .LANCHOR172 10114 str wzr, [x2, #:lo12:.LANCHOR84] 10115 strh wzr, [x0, #:lo12:.LANCHOR172] 10116 bl GetSwlReplaceBlock 10117 and w20, w0, 65535 10118 cmp w20, w21 10119 bne .L1453 10120 adrp x5, .LANCHOR83 10121 ldrh w1, [x23, #:lo12:.LANCHOR48] 10122 ldrh w0, [x5, #:lo12:.LANCHOR83] 10123 cmp w1, w0 10124 bcs .L1383 10125 mov w0, 64 10126 bl List_get_gc_head_node 10127 and w0, w0, 65535 10128 cmp w0, w20 10129 beq .L1385 10130 adrp x1, .LANCHOR42 10131 ubfiz x0, x0, 1, 16 10132 ldr x1, [x1, #:lo12:.LANCHOR42] 10133 ldrh w0, [x1, x0] 10134 cmp w0, 7 10135 bhi .L1386 10136 mov w0, 0 10137 bl List_get_gc_head_node 10138 and w21, w0, 65535 10139 mov w0, 128 10140 strh w0, [x5, #:lo12:.LANCHOR83] 10141 cmp w21, w20 10142 bne .L1382 10143.L1385: 10144 bl FtlGcReFreshBadBlk 10145.L1380: 10146 cmp w24, 0 10147 mov w0, 65535 10148 ccmp w20, w0, 0, eq 10149 bne .L1388 10150 adrp x0, .LANCHOR48 10151 ldrh w0, [x0, #:lo12:.LANCHOR48] 10152 cmp w0, 24 10153 bhi .L1454 10154 adrp x1, .LANCHOR19 10155 cmp w0, 16 10156 ldrh w21, [x1, #:lo12:.LANCHOR19] 10157 bls .L1390 10158 lsr w21, w21, 5 10159.L1389: 10160 adrp x2, .LANCHOR82 10161 mov x3, x2 10162 ldrh w1, [x2, #:lo12:.LANCHOR82] 10163 cmp w1, w0 10164 bcs .L1393 10165 adrp x0, .LANCHOR53 10166 mov w1, 65535 10167 ldrh w0, [x0, #:lo12:.LANCHOR53] 10168 cmp w0, w1 10169 bne .L1394 10170 adrp x1, .LANCHOR99 10171 ldrh w1, [x1, #:lo12:.LANCHOR99] 10172 cmp w1, w0 10173 bne .L1394 10174 adrp x0, .LANCHOR172 10175 ldrh w0, [x0, #:lo12:.LANCHOR172] 10176 cbnz w0, .L1395 10177 adrp x1, .LANCHOR61 10178 adrp x4, .LANCHOR59 10179 ldr w1, [x1, #:lo12:.LANCHOR61] 10180 ldr w4, [x4, #:lo12:.LANCHOR59] 10181 add w1, w1, w1, lsl 1 10182 cmp w4, w1, lsr 2 10183 bcs .L1396 10184.L1395: 10185 adrp x1, .LANCHOR78 10186 ldrh w1, [x1, #:lo12:.LANCHOR78] 10187 add w1, w1, w1, lsl 1 10188 asr w1, w1, 2 10189 strh w1, [x3, #:lo12:.LANCHOR82] 10190.L1397: 10191 adrp x1, .LANCHOR87 10192 str wzr, [x1, #:lo12:.LANCHOR87] 10193.L1374: 10194 ldp x19, x20, [sp, 16] 10195 ldp x21, x22, [sp, 32] 10196 ldp x23, x24, [sp, 48] 10197 ldp x25, x26, [sp, 64] 10198 ldp x27, x28, [sp, 80] 10199 ldp x29, x30, [sp], 192 10200 ret 10201.L1376: 10202 adrp x1, .LANCHOR53 10203 ldrh w1, [x1, #:lo12:.LANCHOR53] 10204 cmp w1, w0 10205 beq .L1379 10206 mov w0, 1 10207 bl FtlGcFreeTempBlock 10208 cbz w0, .L1379 10209 mov w0, 1 10210 b .L1374 10211.L1377: 10212 adrp x1, .LANCHOR99 10213 ldrh w4, [x1, #:lo12:.LANCHOR99] 10214 cmp w4, w3 10215 bne .L1378 10216 strh w2, [x1, #:lo12:.LANCHOR99] 10217 mov w1, -1 10218 strh w1, [x0, #:lo12:.LANCHOR100] 10219 b .L1378 10220.L1386: 10221 mov w0, 64 10222.L1478: 10223 strh w0, [x5, #:lo12:.LANCHOR83] 10224 b .L1385 10225.L1383: 10226 mov w0, 80 10227 b .L1478 10228.L1453: 10229 mov w21, w20 10230.L1382: 10231 adrp x1, .LANCHOR43 10232 ubfiz x0, x21, 1, 32 10233 adrp x3, .LANCHOR82 10234 mov w20, w21 10235 ldr x2, [x1, #:lo12:.LANCHOR43] 10236 adrp x1, .LANCHOR42 10237 ldrh w5, [x3, #:lo12:.LANCHOR82] 10238 ldr x1, [x1, #:lo12:.LANCHOR42] 10239 ldrh w4, [x2, x0] 10240 ldrh w2, [x23, #:lo12:.LANCHOR48] 10241 ldrh w3, [x1, x0] 10242 mov w1, w21 10243 adrp x0, .LC107 10244 add x0, x0, :lo12:.LC107 10245 bl printf 10246 b .L1385 10247.L1449: 10248 mov w20, w0 10249 b .L1380 10250.L1452: 10251 mov w20, w21 10252 b .L1380 10253.L1390: 10254 cmp w0, 12 10255 bls .L1391 10256 lsr w21, w21, 4 10257 b .L1389 10258.L1391: 10259 cmp w0, 8 10260 bls .L1389 10261 lsr w21, w21, 2 10262 b .L1389 10263.L1454: 10264 mov w21, 1 10265 b .L1389 10266.L1396: 10267 mov w1, 18 10268 strh w1, [x2, #:lo12:.LANCHOR82] 10269 b .L1397 10270.L1394: 10271 adrp x0, .LANCHOR78 10272 ldrh w0, [x0, #:lo12:.LANCHOR78] 10273 add w0, w0, w0, lsl 1 10274 asr w0, w0, 2 10275 strh w0, [x3, #:lo12:.LANCHOR82] 10276.L1393: 10277 adrp x0, .LANCHOR101 10278 ldrh w0, [x0, #:lo12:.LANCHOR101] 10279 cbz w0, .L1455 10280 add w21, w21, 32 10281 and w21, w21, 65535 10282.L1455: 10283 mov w20, 65535 10284.L1399: 10285 ldrh w0, [x19, #:lo12:.LANCHOR80] 10286 mov w1, 65535 10287 cmp w0, w1 10288 bne .L1408 10289 cmp w20, w0 10290 beq .L1409 10291 strh w20, [x19, #:lo12:.LANCHOR80] 10292.L1410: 10293 add x0, x19, :lo12:.LANCHOR80 10294 mov w1, 65535 10295 strb wzr, [x0, 8] 10296 ldrh w0, [x19, #:lo12:.LANCHOR80] 10297 cmp w0, w1 10298 beq .L1408 10299 bl IsBlkInGcList 10300 cbz w0, .L1413 10301 mov w0, -1 10302 strh w0, [x19, #:lo12:.LANCHOR80] 10303.L1413: 10304 ldrh w1, [x19, #:lo12:.LANCHOR80] 10305 mov w0, 65535 10306 add x23, x19, :lo12:.LANCHOR80 10307 cmp w1, w0 10308 beq .L1408 10309 mov x0, x23 10310 bl make_superblock 10311 adrp x0, .LANCHOR173 10312 ldrh w1, [x19, #:lo12:.LANCHOR80] 10313 strh wzr, [x23, 2] 10314 strh wzr, [x0, #:lo12:.LANCHOR173] 10315 adrp x0, .LANCHOR42 10316 strb wzr, [x23, 6] 10317 ldr x0, [x0, #:lo12:.LANCHOR42] 10318 ldrh w1, [x0, x1, lsl 1] 10319 adrp x0, .LANCHOR174 10320 strh w1, [x0, #:lo12:.LANCHOR174] 10321.L1408: 10322 adrp x0, .LANCHOR51 10323 ldrh w1, [x19, #:lo12:.LANCHOR80] 10324 str x0, [x29, 136] 10325 ldrh w2, [x0, #:lo12:.LANCHOR51] 10326 cmp w2, w1 10327 beq .L1414 10328 adrp x0, .LANCHOR52 10329 str x0, [x29, 128] 10330 ldrh w2, [x0, #:lo12:.LANCHOR52] 10331 cmp w2, w1 10332 beq .L1414 10333 adrp x24, .LANCHOR85 10334 add x0, x24, :lo12:.LANCHOR85 10335 str x0, [x29, 160] 10336.L1415: 10337 ldrh w1, [x19, #:lo12:.LANCHOR80] 10338 mov w0, 65535 10339 cmp w1, w0 10340 bne .L1416 10341 adrp x0, .LANCHOR87 10342 adrp x25, .LANCHOR19 10343 add x25, x25, :lo12:.LANCHOR19 10344 str wzr, [x0, #:lo12:.LANCHOR87] 10345.L1417: 10346 ldrh w5, [x24, #:lo12:.LANCHOR85] 10347 add x7, x24, :lo12:.LANCHOR85 10348 mov w0, w5 10349 bl List_get_gc_head_node 10350 and w6, w0, 65535 10351 strh w6, [x19, #:lo12:.LANCHOR80] 10352 mov w0, 65535 10353 cmp w6, w0 10354 bne .L1418 10355 strh wzr, [x7] 10356 mov w0, 8 10357 b .L1374 10358.L1388: 10359 adrp x1, .LANCHOR53 10360 ldrh w1, [x1, #:lo12:.LANCHOR53] 10361 cmp w1, w0 10362 bne .L1458 10363 adrp x0, .LANCHOR99 10364 ldrh w0, [x0, #:lo12:.LANCHOR99] 10365 cmp w0, w1 10366 bne .L1458 10367 cmp w20, w0 10368 bne .L1458 10369 ldrh w0, [x19, #:lo12:.LANCHOR80] 10370 cmp w0, w20 10371 beq .L1400 10372.L1458: 10373 mov w21, 1 10374 b .L1399 10375.L1400: 10376 adrp x0, .LANCHOR87 10377 adrp x21, .LANCHOR48 10378 adrp x23, .LANCHOR172 10379 str wzr, [x0, #:lo12:.LANCHOR87] 10380 adrp x0, .LANCHOR82 10381 ldrh w6, [x21, #:lo12:.LANCHOR48] 10382 mov x2, x0 10383 ldrh w1, [x0, #:lo12:.LANCHOR82] 10384 cmp w1, w6 10385 ldrh w1, [x23, #:lo12:.LANCHOR172] 10386 bcs .L1401 10387 cbnz w1, .L1402 10388 adrp x1, .LANCHOR61 10389 adrp x3, .LANCHOR59 10390 ldr w1, [x1, #:lo12:.LANCHOR61] 10391 ldr w3, [x3, #:lo12:.LANCHOR59] 10392 add w1, w1, w1, lsl 1 10393 cmp w3, w1, lsr 2 10394 bcs .L1403 10395.L1402: 10396 adrp x0, .LANCHOR78 10397 ldrh w0, [x0, #:lo12:.LANCHOR78] 10398 add w0, w0, w0, lsl 1 10399 asr w0, w0, 2 10400 strh w0, [x2, #:lo12:.LANCHOR82] 10401.L1479: 10402 bl FtlReadRefresh 10403 ldrh w0, [x23, #:lo12:.LANCHOR172] 10404 b .L1374 10405.L1403: 10406 mov w1, 18 10407 strh w1, [x0, #:lo12:.LANCHOR82] 10408 b .L1479 10409.L1401: 10410 cbnz w1, .L1458 10411 adrp x1, .LANCHOR78 10412 ldrh w5, [x1, #:lo12:.LANCHOR78] 10413 add w1, w5, w5, lsl 1 10414 asr w1, w1, 2 10415 strh w1, [x0, #:lo12:.LANCHOR82] 10416 mov w0, 0 10417 bl List_get_gc_head_node 10418 ubfiz x0, x0, 1, 16 10419 adrp x1, .LANCHOR42 10420 adrp x2, .LANCHOR3 10421 ldr x1, [x1, #:lo12:.LANCHOR42] 10422 ldrh w2, [x2, #:lo12:.LANCHOR3] 10423 ldrh w1, [x1, x0] 10424 adrp x0, .LANCHOR20 10425 ldrh w0, [x0, #:lo12:.LANCHOR20] 10426 mul w0, w0, w2 10427 cmp w1, w0, asr 1 10428 ble .L1406 10429 sub w5, w5, #1 10430 cmp w6, w5 10431 bge .L1479 10432.L1406: 10433 cbnz w1, .L1458 10434 mov w0, -1 10435 bl decrement_vpc_count 10436 ldrh w0, [x21, #:lo12:.LANCHOR48] 10437 add w0, w0, 1 10438 b .L1374 10439.L1409: 10440 adrp x0, .LANCHOR99 10441 ldrh w1, [x0, #:lo12:.LANCHOR99] 10442 cmp w1, w20 10443 beq .L1410 10444 adrp x2, .LANCHOR42 10445 ubfiz x1, x1, 1, 16 10446 ldr x2, [x2, #:lo12:.LANCHOR42] 10447 ldrh w1, [x2, x1] 10448 cbnz w1, .L1411 10449 mov w1, -1 10450 strh w1, [x0, #:lo12:.LANCHOR99] 10451.L1411: 10452 ldrh w1, [x0, #:lo12:.LANCHOR99] 10453 strh w1, [x19, #:lo12:.LANCHOR80] 10454 mov w1, -1 10455 strh w1, [x0, #:lo12:.LANCHOR99] 10456 b .L1410 10457.L1414: 10458 mov w0, -1 10459 strh w0, [x19, #:lo12:.LANCHOR80] 10460.L1480: 10461 adrp x0, .LANCHOR172 10462 ldrh w0, [x0, #:lo12:.LANCHOR172] 10463 b .L1374 10464.L1418: 10465 mov w0, w6 10466 bl IsBlkInGcList 10467 add w5, w5, 1 10468 cbz w0, .L1419 10469 strh w5, [x24, #:lo12:.LANCHOR85] 10470 b .L1417 10471.L1419: 10472 adrp x23, .LANCHOR42 10473 adrp x4, .LANCHOR3 10474 ldrh w0, [x25] 10475 ubfiz x1, x6, 1, 16 10476 ldr x2, [x23, #:lo12:.LANCHOR42] 10477 and w5, w5, 65535 10478 ldrh w4, [x4, #:lo12:.LANCHOR3] 10479 strh w5, [x24, #:lo12:.LANCHOR85] 10480 ldrh w3, [x2, x1] 10481 mul w0, w0, w4 10482 cmp w3, w0, asr 1 10483 bgt .L1421 10484 cmp w5, 48 10485 bls .L1422 10486 cmp w3, 8 10487 bls .L1422 10488 adrp x3, .LANCHOR95 10489 ldrh w3, [x3, #:lo12:.LANCHOR95] 10490 cmp w3, 35 10491 bhi .L1422 10492.L1421: 10493 ldr x3, [x29, 160] 10494 strh wzr, [x3] 10495.L1422: 10496 ldrh w1, [x2, x1] 10497 cmp w0, w1 10498 bgt .L1423 10499 mov w0, 65535 10500 cmp w20, w0 10501 bne .L1423 10502 mov w0, -1 10503 strh w0, [x19, #:lo12:.LANCHOR80] 10504 adrp x0, .LANCHOR85 10505 strh wzr, [x0, #:lo12:.LANCHOR85] 10506 b .L1480 10507.L1423: 10508 cbnz w1, .L1424 10509 mov w0, -1 10510 bl decrement_vpc_count 10511 ldr x0, [x29, 160] 10512 ldr x1, [x29, 160] 10513 ldrh w0, [x0] 10514 add w0, w0, 1 10515 strh w0, [x1] 10516 b .L1417 10517.L1424: 10518 add x0, x19, :lo12:.LANCHOR80 10519 strb wzr, [x0, 8] 10520 ldr x0, [x29, 136] 10521 ldrh w0, [x0, #:lo12:.LANCHOR51] 10522 cmp w0, w6 10523 bne .L1425 10524 adrp x1, .LANCHOR175 10525 adrp x0, .LC1 10526 mov w2, 658 10527 add x1, x1, :lo12:.LANCHOR175 10528 add x0, x0, :lo12:.LC1 10529 bl printf 10530.L1425: 10531 ldr x0, [x29, 128] 10532 ldrh w1, [x19, #:lo12:.LANCHOR80] 10533 ldrh w0, [x0, #:lo12:.LANCHOR52] 10534 cmp w1, w0 10535 bne .L1426 10536 adrp x1, .LANCHOR175 10537 adrp x0, .LC1 10538 mov w2, 659 10539 add x1, x1, :lo12:.LANCHOR175 10540 add x0, x0, :lo12:.LC1 10541 bl printf 10542.L1426: 10543 adrp x0, .LANCHOR53 10544 ldrh w1, [x19, #:lo12:.LANCHOR80] 10545 ldrh w0, [x0, #:lo12:.LANCHOR53] 10546 cmp w1, w0 10547 bne .L1427 10548 adrp x1, .LANCHOR175 10549 adrp x0, .LC1 10550 mov w2, 660 10551 add x1, x1, :lo12:.LANCHOR175 10552 add x0, x0, :lo12:.LC1 10553 bl printf 10554.L1427: 10555 add x25, x19, :lo12:.LANCHOR80 10556 mov x0, x25 10557 bl make_superblock 10558 adrp x0, .LANCHOR173 10559 ldrh w1, [x19, #:lo12:.LANCHOR80] 10560 strh wzr, [x0, #:lo12:.LANCHOR173] 10561 ldr x0, [x23, #:lo12:.LANCHOR42] 10562 ldrh w1, [x0, x1, lsl 1] 10563 adrp x0, .LANCHOR174 10564 strh wzr, [x25, 2] 10565 strh w1, [x0, #:lo12:.LANCHOR174] 10566 strb wzr, [x25, 6] 10567.L1416: 10568 bl FtlReadRefresh 10569 adrp x1, .LANCHOR19 10570 mov w0, 1 10571 str w0, [x22, #:lo12:.LANCHOR117] 10572 ldrh w0, [x1, #:lo12:.LANCHOR19] 10573 str w0, [x29, 172] 10574 add x0, x19, :lo12:.LANCHOR80 10575 str x1, [x29, 120] 10576 ldr w3, [x29, 172] 10577 ldrh w0, [x0, 2] 10578 add w2, w0, w21 10579 cmp w2, w3 10580 ble .L1428 10581 sub w21, w3, w0 10582 and w21, w21, 65535 10583.L1428: 10584 adrp x0, .LANCHOR173 10585 mov w27, 0 10586 add x0, x0, :lo12:.LANCHOR173 10587 str x0, [x29, 152] 10588.L1429: 10589 cmp w21, w27, uxth 10590 bls .L1437 10591 add x1, x19, :lo12:.LANCHOR80 10592 adrp x0, .LANCHOR3 10593 adrp x25, .LANCHOR93 10594 add x1, x1, 16 10595 ldrh w7, [x0, #:lo12:.LANCHOR3] 10596 mov w23, 0 10597 ldrh w4, [x1, -14] 10598 mov w2, 0 10599 ldr x0, [x25, #:lo12:.LANCHOR93] 10600 mov w6, 65535 10601 add w4, w4, w27 10602 b .L1438 10603.L1431: 10604 ldrh w3, [x1] 10605 cmp w3, w6 10606 beq .L1430 10607 ubfiz x5, x23, 5, 16 10608 add w23, w23, 1 10609 add x5, x0, x5 10610 and w23, w23, 65535 10611 orr w3, w4, w3, lsl 10 10612 str w3, [x5, 4] 10613.L1430: 10614 add w2, w2, 1 10615 add x1, x1, 2 10616 and w2, w2, 65535 10617.L1438: 10618 cmp w2, w7 10619 bne .L1431 10620 add x1, x19, :lo12:.LANCHOR80 10621 adrp x26, .LANCHOR89 10622 add x26, x26, :lo12:.LANCHOR89 10623 ldrb w2, [x1, 8] 10624 mov w1, w23 10625 bl FlashReadPages 10626 ubfiz x0, x23, 5, 16 10627 mov x23, 0 10628 str x0, [x29, 144] 10629.L1432: 10630 ldr x0, [x29, 144] 10631 cmp x0, x23 10632 bne .L1436 10633 add w27, w27, 1 10634 b .L1429 10635.L1436: 10636 ldr x0, [x25, #:lo12:.LANCHOR93] 10637 add x1, x0, x23 10638 ldr w0, [x0, x23] 10639 cmn w0, #1 10640 beq .L1433 10641 ldr x28, [x1, 16] 10642 mov w0, 61589 10643 ldrh w1, [x28] 10644 cmp w1, w0 10645 bne .L1433 10646 ldr w4, [x28, 8] 10647 cmn w4, #1 10648 bne .L1434 10649 str w4, [x29, 112] 10650 mov w2, 696 10651 adrp x1, .LANCHOR175 10652 adrp x0, .LC1 10653 add x1, x1, :lo12:.LANCHOR175 10654 add x0, x0, :lo12:.LC1 10655 bl printf 10656 ldr w4, [x29, 112] 10657.L1434: 10658 mov w2, 0 10659 add x1, x29, 188 10660 mov w0, w4 10661 bl log2phys 10662 ldr x0, [x25, #:lo12:.LANCHOR93] 10663 ldr w1, [x29, 188] 10664 add x0, x0, x23 10665 ldr w2, [x0, 4] 10666 cmp w2, w1 10667 bne .L1433 10668 ldr x1, [x29, 152] 10669 adrp x4, .LANCHOR121 10670 ldr x2, [x29, 152] 10671 ldr w0, [x0, 24] 10672 ldrh w1, [x1] 10673 add w1, w1, 1 10674 strh w1, [x2] 10675 ldr x2, [x4, #:lo12:.LANCHOR121] 10676 ldr w1, [x26] 10677 add x1, x2, x1, lsl 5 10678 stp x4, x1, [x29, 104] 10679 str w0, [x1, 24] 10680 bl Ftl_get_new_temp_ppa 10681 ldp x4, x1, [x29, 104] 10682 ldr x2, [x4, #:lo12:.LANCHOR121] 10683 str w0, [x1, 4] 10684 ldr w1, [x26] 10685 ubfiz x0, x1, 5, 32 10686 add w1, w1, 1 10687 add x2, x2, x0 10688 ldr x0, [x25, #:lo12:.LANCHOR93] 10689 add x0, x0, x23 10690 ldr x4, [x0, 8] 10691 str x4, [x2, 8] 10692 ldr x4, [x0, 16] 10693 str x4, [x2, 16] 10694 ldr w2, [x29, 188] 10695 str w2, [x28, 12] 10696 adrp x2, .LANCHOR53 10697 add x11, x2, :lo12:.LANCHOR53 10698 ldrh w2, [x2, #:lo12:.LANCHOR53] 10699 strh w2, [x28, 2] 10700 adrp x2, .LANCHOR71 10701 str w1, [x26] 10702 mov w1, 1 10703 ldr w2, [x2, #:lo12:.LANCHOR71] 10704 str w2, [x28, 4] 10705 bl FtlGcBufAlloc 10706 ldrb w1, [x11, 7] 10707 ldr w0, [x26] 10708 cmp w1, w0 10709 beq .L1435 10710 ldrh w0, [x11, 4] 10711 cbnz w0, .L1433 10712.L1435: 10713 bl Ftl_gc_temp_data_write_back 10714 cbz w0, .L1433 10715.L1481: 10716 str wzr, [x22, #:lo12:.LANCHOR117] 10717 b .L1480 10718.L1433: 10719 add x23, x23, 32 10720 b .L1432 10721.L1437: 10722 add x1, x19, :lo12:.LANCHOR80 10723 ldrh w0, [x1, 2] 10724 add w21, w21, w0 10725 ldr w0, [x29, 172] 10726 and w21, w21, 65535 10727 strh w21, [x1, 2] 10728 cmp w0, w21 10729 bls .L1439 10730 adrp x0, .LANCHOR173 10731 ldrh w1, [x0, #:lo12:.LANCHOR173] 10732 adrp x0, .LANCHOR174 10733 ldrh w0, [x0, #:lo12:.LANCHOR174] 10734 cmp w1, w0 10735 bne .L1440 10736.L1439: 10737 adrp x0, .LANCHOR89 10738 ldr w0, [x0, #:lo12:.LANCHOR89] 10739 cbz w0, .L1441 10740 bl Ftl_gc_temp_data_write_back 10741 cbnz w0, .L1481 10742.L1441: 10743 adrp x0, .LANCHOR173 10744 ldrh w0, [x0, #:lo12:.LANCHOR173] 10745 cbnz w0, .L1442 10746 ldrh w0, [x19, #:lo12:.LANCHOR80] 10747 adrp x1, .LANCHOR42 10748 ldr x1, [x1, #:lo12:.LANCHOR42] 10749 lsl x0, x0, 1 10750 ldrh w2, [x1, x0] 10751 cbz w2, .L1442 10752 strh wzr, [x1, x0] 10753 ldrh w0, [x19, #:lo12:.LANCHOR80] 10754 bl update_vpc_list 10755 bl l2p_flush 10756 bl FtlVpcTblFlush 10757.L1442: 10758 mov w0, -1 10759 strh w0, [x19, #:lo12:.LANCHOR80] 10760.L1440: 10761 adrp x0, .LANCHOR48 10762 ldrh w0, [x0, #:lo12:.LANCHOR48] 10763 cmp w0, 2 10764 bhi .L1443 10765 ldr x0, [x29, 120] 10766 ldrh w21, [x0, #:lo12:.LANCHOR19] 10767 b .L1415 10768.L1443: 10769 adrp x1, .LANCHOR172 10770 str wzr, [x22, #:lo12:.LANCHOR117] 10771 ldrh w1, [x1, #:lo12:.LANCHOR172] 10772 cmp w1, 0 10773 csinc w0, w1, w0, ne 10774 b .L1374 10775.L1446: 10776 mov w0, 0 10777 b .L1374 10778 .size rk_ftl_garbage_collect, .-rk_ftl_garbage_collect 10779 .section .text.sftl_gc,"ax",@progbits 10780 .align 2 10781 .global sftl_gc 10782 .type sftl_gc, %function 10783sftl_gc: 10784 mov w1, 1 10785 mov w0, w1 10786 b rk_ftl_garbage_collect 10787 .size sftl_gc, .-sftl_gc 10788 .section .text.FtlRead,"ax",@progbits 10789 .align 2 10790 .global FtlRead 10791 .type FtlRead, %function 10792FtlRead: 10793 stp x29, x30, [sp, -176]! 10794 and w0, w0, 255 10795 cmp w0, 16 10796 add x29, sp, 0 10797 stp x19, x20, [sp, 16] 10798 mov w19, w1 10799 stp x23, x24, [sp, 48] 10800 mov x23, x3 10801 stp x27, x28, [sp, 80] 10802 mov w27, w2 10803 stp x21, x22, [sp, 32] 10804 stp x25, x26, [sp, 64] 10805 bne .L1484 10806 mov x2, x3 10807 mov w1, w27 10808 add w0, w19, 256 10809 bl FtlVendorPartRead 10810 mov w21, w0 10811.L1483: 10812 mov w0, w21 10813 ldp x19, x20, [sp, 16] 10814 ldp x21, x22, [sp, 32] 10815 ldp x23, x24, [sp, 48] 10816 ldp x25, x26, [sp, 64] 10817 ldp x27, x28, [sp, 80] 10818 ldp x29, x30, [sp], 176 10819 ret 10820.L1484: 10821 add w0, w1, w2 10822 str w0, [x29, 140] 10823 adrp x0, .LANCHOR34 10824 add w1, w1, w2 10825 ldr w0, [x0, #:lo12:.LANCHOR34] 10826 cmp w1, w0 10827 bhi .L1504 10828 adrp x0, .LANCHOR86 10829 ldr w21, [x0, #:lo12:.LANCHOR86] 10830 cmn w21, #1 10831 beq .L1483 10832 adrp x22, .LANCHOR12 10833 sub w24, w1, #1 10834 adrp x1, .LANCHOR62 10835 mov w25, 0 10836 ldrh w0, [x22, #:lo12:.LANCHOR12] 10837 mov w21, 0 10838 adrp x28, .LANCHOR120 10839 stp wzr, wzr, [x29, 144] 10840 udiv w26, w19, w0 10841 udiv w24, w24, w0 10842 mov w20, w26 10843 sub w0, w24, w26 10844 add w0, w0, 1 10845 stp wzr, w0, [x29, 152] 10846 ldr w0, [x1, #:lo12:.LANCHOR62] 10847 ldr w2, [x29, 156] 10848 add w0, w0, w2 10849 str w0, [x1, #:lo12:.LANCHOR62] 10850 adrp x0, .LANCHOR81 10851 add x0, x0, :lo12:.LANCHOR81 10852 str x0, [x29, 128] 10853.L1486: 10854 ldr w0, [x29, 156] 10855 cbnz w0, .L1502 10856 adrp x0, .LANCHOR101 10857 ldrh w0, [x0, #:lo12:.LANCHOR101] 10858 cbnz w0, .L1503 10859 adrp x0, .LANCHOR48 10860 ldrh w0, [x0, #:lo12:.LANCHOR48] 10861 cmp w0, 31 10862 bhi .L1483 10863.L1503: 10864 mov w1, 1 10865 mov w0, 0 10866 bl rk_ftl_garbage_collect 10867 b .L1483 10868.L1502: 10869 add x1, x29, 172 10870 mov w2, 0 10871 mov w0, w20 10872 bl log2phys 10873 ldr w1, [x29, 172] 10874 cmn w1, #1 10875 bne .L1487 10876 add x5, x22, :lo12:.LANCHOR12 10877 mov w4, 0 10878.L1488: 10879 ldrh w0, [x5] 10880 cmp w4, w0 10881 bcc .L1490 10882.L1491: 10883 ldr w0, [x29, 156] 10884 add w20, w20, 1 10885 subs w0, w0, #1 10886 str w0, [x29, 156] 10887 beq .L1495 10888 adrp x0, .LANCHOR3 10889 ldrh w0, [x0, #:lo12:.LANCHOR3] 10890 cmp w25, w0, lsl 2 10891 bne .L1486 10892.L1495: 10893 cbz w25, .L1486 10894 ldr x0, [x28, #:lo12:.LANCHOR120] 10895 mov w1, w25 10896 mov w2, 0 10897 bl FlashReadPages 10898 ldr w0, [x29, 144] 10899 lsl w0, w0, 9 10900 str w0, [x29, 136] 10901 ldr w0, [x29, 152] 10902 lsl w0, w0, 9 10903 str x0, [x29, 120] 10904 ldr w0, [x29, 148] 10905 lsl w0, w0, 9 10906 str w0, [x29, 112] 10907 ubfiz x0, x25, 5, 32 10908 mov x25, 0 10909 str x0, [x29, 104] 10910 add x0, x22, :lo12:.LANCHOR12 10911 str x0, [x29, 96] 10912.L1501: 10913 ldr x0, [x28, #:lo12:.LANCHOR120] 10914 add x0, x0, x25 10915 ldr w1, [x0, 24] 10916 cmp w26, w1 10917 bne .L1497 10918 ldr x1, [x0, 8] 10919 adrp x0, .LANCHOR115 10920 ldr x0, [x0, #:lo12:.LANCHOR115] 10921 cmp x1, x0 10922 bne .L1498 10923 ldr x0, [x29, 120] 10924 ldr w2, [x29, 112] 10925 add x1, x1, x0 10926 mov x0, x23 10927.L1515: 10928 bl ftl_memcpy 10929.L1498: 10930 ldr x0, [x28, #:lo12:.LANCHOR120] 10931 add x1, x0, x25 10932 ldr w0, [x0, x25] 10933 cmn w0, #1 10934 bne .L1499 10935 ldr x1, [x29, 128] 10936 mov w21, w0 10937 ldr x2, [x29, 128] 10938 ldr w1, [x1, 72] 10939 add w1, w1, 1 10940 str w1, [x2, 72] 10941.L1500: 10942 ldr x0, [x29, 104] 10943 add x25, x25, 32 10944 cmp x0, x25 10945 bne .L1501 10946 mov w25, 0 10947 b .L1486 10948.L1490: 10949 madd w0, w20, w0, w4 10950 cmp w19, w0 10951 bhi .L1489 10952 ldr w1, [x29, 140] 10953 cmp w1, w0 10954 bls .L1489 10955 sub w0, w0, w19 10956 str x5, [x29, 112] 10957 lsl w0, w0, 9 10958 str w4, [x29, 120] 10959 mov w2, 512 10960 mov w1, 0 10961 add x0, x23, x0 10962 bl ftl_memset 10963 ldr w4, [x29, 120] 10964 ldr x5, [x29, 112] 10965.L1489: 10966 add w4, w4, 1 10967 b .L1488 10968.L1487: 10969 ldr x2, [x28, #:lo12:.LANCHOR120] 10970 ubfiz x0, x25, 5, 32 10971 cmp w20, w26 10972 add x0, x2, x0 10973 str w1, [x0, 4] 10974 bne .L1492 10975 adrp x1, .LANCHOR115 10976 ldr x1, [x1, #:lo12:.LANCHOR115] 10977 str x1, [x0, 8] 10978 ldrh w1, [x22, #:lo12:.LANCHOR12] 10979 udiv w2, w19, w1 10980 msub w2, w2, w1, w19 10981 str w2, [x29, 152] 10982 sub w2, w1, w2 10983 cmp w27, w2 10984 csel w2, w27, w2, ls 10985 str w2, [x29, 148] 10986 cmp w1, w2 10987 bne .L1493 10988 str x23, [x0, 8] 10989.L1493: 10990 adrp x1, .LANCHOR24 10991 adrp x2, .LANCHOR114 10992 str w20, [x0, 24] 10993 ldrh w1, [x1, #:lo12:.LANCHOR24] 10994 ldr x2, [x2, #:lo12:.LANCHOR114] 10995 mul w1, w1, w25 10996 add w25, w25, 1 10997 and x1, x1, 4294967292 10998 add x1, x2, x1 10999 str x1, [x0, 16] 11000 b .L1491 11001.L1492: 11002 cmp w20, w24 11003 bne .L1494 11004 ldrh w2, [x22, #:lo12:.LANCHOR12] 11005 adrp x1, .LANCHOR113 11006 ldr w3, [x29, 140] 11007 ldr x1, [x1, #:lo12:.LANCHOR113] 11008 str x1, [x0, 8] 11009 mul w1, w20, w2 11010 sub w3, w3, w1 11011 str w3, [x29, 144] 11012 cmp w2, w3 11013 bne .L1493 11014.L1514: 11015 sub w1, w1, w19 11016 lsl w1, w1, 9 11017 add x1, x23, x1 11018 str x1, [x0, 8] 11019 b .L1493 11020.L1494: 11021 ldrh w1, [x22, #:lo12:.LANCHOR12] 11022 mul w1, w1, w20 11023 b .L1514 11024.L1497: 11025 cmp w24, w1 11026 bne .L1498 11027 ldr x1, [x0, 8] 11028 adrp x0, .LANCHOR113 11029 ldr x0, [x0, #:lo12:.LANCHOR113] 11030 cmp x1, x0 11031 bne .L1498 11032 ldr x0, [x29, 96] 11033 ldr w2, [x29, 136] 11034 ldrh w0, [x0] 11035 mul w0, w0, w24 11036 sub w0, w0, w19 11037 lsl w0, w0, 9 11038 add x0, x23, x0 11039 b .L1515 11040.L1499: 11041 cmp w0, 256 11042 bne .L1500 11043 ldr w0, [x1, 4] 11044 lsr w0, w0, 10 11045 bl P2V_block_in_plane 11046 bl FtlGcRefreshBlock 11047 b .L1500 11048.L1504: 11049 mov w21, -1 11050 b .L1483 11051 .size FtlRead, .-FtlRead 11052 .section .text.sftl_read,"ax",@progbits 11053 .align 2 11054 .global sftl_read 11055 .type sftl_read, %function 11056sftl_read: 11057 mov x3, x2 11058 mov w2, w1 11059 mov w1, w0 11060 mov w0, 0 11061 b FtlRead 11062 .size sftl_read, .-sftl_read 11063 .section .text.FtlWrite,"ax",@progbits 11064 .align 2 11065 .global FtlWrite 11066 .type FtlWrite, %function 11067FtlWrite: 11068 stp x29, x30, [sp, -240]! 11069 and w0, w0, 255 11070 cmp w0, 16 11071 add x29, sp, 0 11072 stp x21, x22, [sp, 32] 11073 mov w21, w1 11074 stp x25, x26, [sp, 64] 11075 mov x26, x3 11076 stp x19, x20, [sp, 16] 11077 stp x23, x24, [sp, 48] 11078 stp x27, x28, [sp, 80] 11079 str w2, [x29, 176] 11080 bne .L1518 11081 add w0, w1, 256 11082 ldr w1, [x29, 176] 11083 mov x2, x3 11084 bl FtlVendorPartWrite 11085.L1517: 11086 ldp x19, x20, [sp, 16] 11087 ldp x21, x22, [sp, 32] 11088 ldp x23, x24, [sp, 48] 11089 ldp x25, x26, [sp, 64] 11090 ldp x27, x28, [sp, 80] 11091 ldp x29, x30, [sp], 240 11092 ret 11093.L1518: 11094 ldr w0, [x29, 176] 11095 add w0, w1, w0 11096 str w0, [x29, 168] 11097 adrp x0, .LANCHOR34 11098 ldr w1, [x29, 168] 11099 ldr w0, [x0, #:lo12:.LANCHOR34] 11100 cmp w1, w0 11101 bhi .L1553 11102 adrp x0, .LANCHOR86 11103 ldr w0, [x0, #:lo12:.LANCHOR86] 11104 cmn w0, #1 11105 beq .L1517 11106 adrp x0, .LANCHOR176 11107 mov w1, 2048 11108 adrp x22, .LANCHOR12 11109 str w1, [x0, #:lo12:.LANCHOR176] 11110 ldr w1, [x29, 168] 11111 ldrh w0, [x22, #:lo12:.LANCHOR12] 11112 sub w1, w1, #1 11113 udiv w25, w21, w0 11114 udiv w0, w1, w0 11115 adrp x1, .LANCHOR64 11116 str w0, [x29, 156] 11117 sub w0, w0, w25 11118 add w24, w0, 1 11119 str w0, [x29, 152] 11120 ldr w0, [x1, #:lo12:.LANCHOR64] 11121 add w0, w0, w24 11122 str w0, [x1, #:lo12:.LANCHOR64] 11123 adrp x0, .LANCHOR177 11124 str x0, [x29, 160] 11125 ldr w1, [x0, #:lo12:.LANCHOR177] 11126 adrp x0, .LANCHOR51 11127 add x19, x0, :lo12:.LANCHOR51 11128 cbz w1, .L1520 11129 ldrh w0, [x19, 4] 11130 cbnz w0, .L1520 11131 adrp x19, .LANCHOR52 11132 add x19, x19, :lo12:.LANCHOR52 11133.L1520: 11134 mov w20, w25 11135 adrp x0, .LANCHOR52 11136 add x0, x0, :lo12:.LANCHOR52 11137 str x0, [x29, 96] 11138.L1521: 11139 cbnz w24, .L1549 11140 ldr w1, [x29, 152] 11141 mov w0, 0 11142 bl rk_ftl_garbage_collect 11143 adrp x0, .LANCHOR48 11144 mov x22, x0 11145 ldrh w1, [x0, #:lo12:.LANCHOR48] 11146 cmp w1, 15 11147 bls .L1550 11148.L1552: 11149 mov w0, 0 11150 b .L1517 11151.L1549: 11152 adrp x0, .LANCHOR3 11153 ldrb w2, [x19, 6] 11154 str x0, [x29, 120] 11155 ldrh w1, [x0, #:lo12:.LANCHOR3] 11156 cmp w2, w1 11157 bcc .L1522 11158 adrp x1, .LANCHOR178 11159 adrp x0, .LC1 11160 mov w2, 988 11161 add x1, x1, :lo12:.LANCHOR178 11162 add x0, x0, :lo12:.LC1 11163 bl printf 11164.L1522: 11165 ldrh w0, [x19, 4] 11166 cbnz w0, .L1523 11167 adrp x0, .LANCHOR51 11168 add x0, x0, :lo12:.LANCHOR51 11169 cmp x19, x0 11170 bne .L1524 11171 adrp x0, .LANCHOR52 11172 add x0, x0, :lo12:.LANCHOR52 11173 ldrh w1, [x0, 4] 11174 cbnz w1, .L1525 11175 bl allocate_new_data_superblock 11176 ldr x0, [x29, 160] 11177 str wzr, [x0, #:lo12:.LANCHOR177] 11178.L1525: 11179 adrp x0, .LANCHOR51 11180 add x19, x0, :lo12:.LANCHOR51 11181 mov x0, x19 11182 bl allocate_new_data_superblock 11183 ldr x0, [x29, 160] 11184 ldr w0, [x0, #:lo12:.LANCHOR177] 11185 cmp w0, 0 11186 ldr x0, [x29, 96] 11187 csel x19, x0, x19, ne 11188.L1526: 11189 ldrh w0, [x19, 4] 11190 cbnz w0, .L1523 11191 mov x0, x19 11192 bl allocate_new_data_superblock 11193.L1523: 11194 ldrh w0, [x19, 4] 11195 ldrb w1, [x19, 7] 11196 cmp w0, w24 11197 csel w0, w0, w24, ls 11198 lsl w1, w1, 2 11199 cmp w1, w0 11200 csel w0, w1, w0, ls 11201 str w0, [x29, 148] 11202 ldr x0, [x29, 120] 11203 ldrb w1, [x19, 6] 11204 ldrh w0, [x0, #:lo12:.LANCHOR3] 11205 cmp w1, w0 11206 bcc .L1527 11207 adrp x1, .LANCHOR178 11208 adrp x0, .LC1 11209 mov w2, 1021 11210 add x1, x1, :lo12:.LANCHOR178 11211 add x0, x0, :lo12:.LC1 11212 bl printf 11213.L1527: 11214 adrp x0, .LANCHOR24 11215 add x0, x0, :lo12:.LANCHOR24 11216 str xzr, [x29, 184] 11217 str x0, [x29, 112] 11218 adrp x0, .LANCHOR23 11219 add x0, x0, :lo12:.LANCHOR23 11220 str x0, [x29, 104] 11221.L1528: 11222 ldr w1, [x29, 148] 11223 adrp x28, .LANCHOR122 11224 ldr w23, [x29, 184] 11225 cmp w23, w1 11226 bcc .L1547 11227 mov x23, x1 11228.L1529: 11229 ldr x0, [x28, #:lo12:.LANCHOR122] 11230 mov x3, x19 11231 mov w2, 0 11232 mov w1, w23 11233 bl FtlProgPages 11234 cmp w24, w23 11235 bcs .L1548 11236 adrp x1, .LANCHOR178 11237 adrp x0, .LC1 11238 mov w2, 1098 11239 add x1, x1, :lo12:.LANCHOR178 11240 add x0, x0, :lo12:.LC1 11241 bl printf 11242.L1548: 11243 sub w24, w24, w23 11244 b .L1521 11245.L1524: 11246 ldr x1, [x29, 160] 11247 str wzr, [x1, #:lo12:.LANCHOR177] 11248 ldrh w1, [x0, 4] 11249 cbnz w1, .L1558 11250 mov x0, x19 11251 bl allocate_new_data_superblock 11252 b .L1526 11253.L1558: 11254 mov x19, x0 11255 b .L1523 11256.L1547: 11257 ldrh w0, [x19, 4] 11258 cbz w0, .L1529 11259 add x1, x29, 204 11260 mov w2, 0 11261 mov w0, w20 11262 bl log2phys 11263 mov x0, x19 11264 bl get_new_active_ppa 11265 ldr x1, [x29, 184] 11266 lsl x27, x1, 5 11267 ldr x1, [x28, #:lo12:.LANCHOR122] 11268 add x1, x1, x27 11269 str w0, [x1, 4] 11270 ldr x0, [x29, 112] 11271 str w20, [x1, 24] 11272 ldrh w2, [x0] 11273 mul w23, w23, w2 11274 and x0, x23, 4294967292 11275 str x0, [x29, 136] 11276 adrp x0, .LANCHOR114 11277 ldr x3, [x29, 136] 11278 ldr x0, [x0, #:lo12:.LANCHOR114] 11279 str x0, [x29, 128] 11280 add x23, x0, x3 11281 str x23, [x1, 16] 11282 mov x0, x23 11283 mov w1, 0 11284 bl ftl_memset 11285 ldr w0, [x29, 156] 11286 cmp w20, w25 11287 ccmp w20, w0, 4, ne 11288 bne .L1530 11289 cmp w20, w25 11290 bne .L1531 11291 ldrh w2, [x22, #:lo12:.LANCHOR12] 11292 udiv w0, w21, w2 11293 msub w0, w0, w2, w21 11294 str w0, [x29, 172] 11295 sub w2, w2, w0 11296 ldr w0, [x29, 176] 11297 cmp w2, w0 11298 csel w0, w2, w0, ls 11299 str w0, [x29, 180] 11300.L1532: 11301 ldrh w0, [x22, #:lo12:.LANCHOR12] 11302 ldr w1, [x29, 180] 11303 cmp w1, w0 11304 ldr x0, [x28, #:lo12:.LANCHOR122] 11305 bne .L1533 11306 add x3, x0, x27 11307 cmp w20, w25 11308 bne .L1534 11309 str x26, [x3, 8] 11310.L1535: 11311 ldr x0, [x29, 120] 11312 ldrb w1, [x19, 6] 11313 ldrh w0, [x0, #:lo12:.LANCHOR3] 11314 cmp w1, w0 11315 bcc .L1544 11316 adrp x1, .LANCHOR178 11317 adrp x0, .LC1 11318 mov w2, 1089 11319 add x1, x1, :lo12:.LANCHOR178 11320 add x0, x0, :lo12:.LC1 11321 bl printf 11322.L1544: 11323 ldp x1, x2, [x29, 128] 11324 mov w0, -3947 11325 strh w0, [x1, x2] 11326 adrp x1, .LANCHOR71 11327 ldr w0, [x1, #:lo12:.LANCHOR71] 11328 stp w0, w20, [x23, 4] 11329 add w20, w20, 1 11330 add w0, w0, 1 11331 cmn w0, #1 11332 csel w0, w0, wzr, ne 11333 str w0, [x1, #:lo12:.LANCHOR71] 11334 ldr w0, [x29, 204] 11335 str w0, [x23, 12] 11336 ldrh w0, [x19] 11337 strh w0, [x23, 2] 11338 ldr x0, [x29, 184] 11339 add x0, x0, 1 11340 str x0, [x29, 184] 11341 b .L1528 11342.L1531: 11343 ldr w0, [x29, 168] 11344 ldrh w2, [x22, #:lo12:.LANCHOR12] 11345 str wzr, [x29, 172] 11346 msub w2, w20, w2, w0 11347 and w0, w2, 65535 11348 str w0, [x29, 180] 11349 b .L1532 11350.L1534: 11351 ldr w0, [x29, 180] 11352.L1565: 11353 mul w0, w0, w20 11354 sub w0, w0, w21 11355 lsl w0, w0, 9 11356 add x0, x26, x0 11357 str x0, [x3, 8] 11358 b .L1535 11359.L1533: 11360 add x0, x0, x27 11361 cmp w20, w25 11362 bne .L1536 11363 adrp x1, .LANCHOR115 11364 ldr x1, [x1, #:lo12:.LANCHOR115] 11365.L1564: 11366 str x1, [x0, 8] 11367 ldr w0, [x29, 204] 11368 cmn w0, #1 11369 beq .L1538 11370 str w0, [x29, 212] 11371 mov w2, 0 11372 ldr x0, [x28, #:lo12:.LANCHOR122] 11373 str w20, [x29, 232] 11374 add x0, x0, x27 11375 ldp x1, x0, [x0, 8] 11376 stp x1, x0, [x29, 216] 11377 mov w1, 1 11378 add x0, x29, 208 11379 bl FlashReadPages 11380 ldr w0, [x29, 208] 11381 cmn w0, #1 11382 bne .L1539 11383 adrp x0, .LANCHOR81 11384 add x0, x0, :lo12:.LANCHOR81 11385 ldr w1, [x0, 72] 11386 add w1, w1, 1 11387 str w1, [x0, 72] 11388.L1542: 11389 ldr w0, [x29, 180] 11390 cmp w20, w25 11391 lsl w2, w0, 9 11392 bne .L1543 11393 ldr x0, [x28, #:lo12:.LANCHOR122] 11394 mov x1, x26 11395 add x3, x0, x27 11396 ldr w0, [x29, 172] 11397 ldr x3, [x3, 8] 11398 lsl w0, w0, 9 11399 add x0, x3, x0 11400.L1566: 11401 bl ftl_memcpy 11402 b .L1535 11403.L1536: 11404 adrp x1, .LANCHOR113 11405 ldr x1, [x1, #:lo12:.LANCHOR113] 11406 b .L1564 11407.L1539: 11408 ldr w1, [x23, 8] 11409 cmp w20, w1 11410 beq .L1541 11411 adrp x0, .LANCHOR81 11412 add x0, x0, :lo12:.LANCHOR81 11413 ldr w2, [x0, 72] 11414 add w2, w2, 1 11415 str w2, [x0, 72] 11416 adrp x0, .LC108 11417 mov w2, w20 11418 add x0, x0, :lo12:.LC108 11419 bl printf 11420.L1541: 11421 ldr w0, [x23, 8] 11422 cmp w20, w0 11423 beq .L1542 11424 mov w2, 1074 11425 adrp x1, .LANCHOR178 11426 adrp x0, .LC1 11427 add x1, x1, :lo12:.LANCHOR178 11428 add x0, x0, :lo12:.LC1 11429 bl printf 11430 b .L1542 11431.L1538: 11432 ldr x0, [x28, #:lo12:.LANCHOR122] 11433 ldr x1, [x29, 104] 11434 add x0, x0, x27 11435 ldrh w2, [x1] 11436 mov w1, 0 11437 ldr x0, [x0, 8] 11438 bl ftl_memset 11439 b .L1542 11440.L1543: 11441 ldrh w1, [x22, #:lo12:.LANCHOR12] 11442 ldr x0, [x28, #:lo12:.LANCHOR122] 11443 add x3, x0, x27 11444 mul w1, w1, w20 11445 sub w1, w1, w21 11446 ldr x0, [x3, 8] 11447 lsl w1, w1, 9 11448 add x1, x26, x1 11449 b .L1566 11450.L1530: 11451 ldr x0, [x28, #:lo12:.LANCHOR122] 11452 add x3, x0, x27 11453 ldrh w0, [x22, #:lo12:.LANCHOR12] 11454 b .L1565 11455.L1550: 11456 adrp x21, .LANCHOR99 11457 adrp x20, .LANCHOR83 11458 adrp x19, .LANCHOR82 11459 add x21, x21, :lo12:.LANCHOR99 11460 add x20, x20, :lo12:.LANCHOR83 11461 add x19, x19, :lo12:.LANCHOR82 11462.L1562: 11463 adrp x0, .LANCHOR80 11464 mov w1, 65535 11465 ldrh w0, [x0, #:lo12:.LANCHOR80] 11466 cmp w0, w1 11467 bne .L1551 11468 ldrh w1, [x21] 11469 cmp w1, w0 11470 bne .L1551 11471 mov w0, 0 11472 bl List_get_gc_head_node 11473 bl FtlGcRefreshBlock 11474.L1551: 11475 mov w0, 128 11476 mov w1, 1 11477 strh w0, [x20] 11478 strh w0, [x19] 11479 mov w0, w1 11480 bl rk_ftl_garbage_collect 11481 mov w1, 1 11482 mov w0, 0 11483 bl rk_ftl_garbage_collect 11484 ldrh w0, [x22, #:lo12:.LANCHOR48] 11485 cmp w0, 8 11486 bls .L1562 11487 b .L1552 11488.L1553: 11489 mov w0, -1 11490 b .L1517 11491 .size FtlWrite, .-FtlWrite 11492 .section .text.sftl_write,"ax",@progbits 11493 .align 2 11494 .global sftl_write 11495 .type sftl_write, %function 11496sftl_write: 11497 stp x29, x30, [sp, -240]! 11498 add w4, w0, w1 11499 sub w5, w4, #1 11500 add x29, sp, 0 11501 stp x19, x20, [sp, 16] 11502 cmp w5, 63 11503 stp x21, x22, [sp, 32] 11504 mov w20, w0 11505 stp x23, x24, [sp, 48] 11506 mov w22, w1 11507 stp x25, x26, [sp, 64] 11508 mov x24, x2 11509 stp x27, x28, [sp, 80] 11510 adrp x25, .LANCHOR179 11511 bls .L1568 11512 cmp w0, 576 11513 bls .L1569 11514.L1568: 11515 ldr w0, [x25, #:lo12:.LANCHOR179] 11516 cbz w0, .L1570 11517 adrp x2, .LANCHOR0 11518 add x1, x2, :lo12:.LANCHOR0 11519 mov w21, 512 11520 adrp x3, idb_buf 11521 mov x4, -49148 11522 stp x3, x2, [x29, 144] 11523 ldrh w0, [x1, 14] 11524 add x2, x3, :lo12:idb_buf 11525 ldrh w1, [x1, 10] 11526 mov x7, 262140 11527 str w0, [x29, 172] 11528 and w0, w0, 255 11529 mov w5, 4097 11530 movk x4, 0xfffc, lsl 16 11531 mul w0, w0, w1 11532 mov x1, 0 11533 and w0, w0, 65535 11534 str w0, [x29, 168] 11535 udiv w21, w21, w0 11536 mov w0, 0 11537.L1574: 11538 add x3, x1, x7 11539 ldr w6, [x3, x2] 11540 cbz w6, .L1571 11541.L1575: 11542 ldr w0, [x29, 168] 11543 mov w19, 0 11544 mov w26, 0 11545 mul w0, w0, w21 11546 stp w0, wzr, [x29, 160] 11547 adrp x0, .LANCHOR105 11548 add x23, x0, :lo12:.LANCHOR105 11549.L1572: 11550 adrp x5, gp_flash_check_buf 11551 mov x2, 512 11552 mov w1, 0 11553 add x0, x5, :lo12:gp_flash_check_buf 11554 str x5, [x29, 136] 11555 bl memset 11556 ldr x0, [x29, 152] 11557 add x0, x0, :lo12:.LANCHOR0 11558 ldrh w3, [x0, 14] 11559 ldrh w2, [x0, 10] 11560 adrp x0, .LANCHOR105 11561 and w27, w3, 255 11562 add x4, x0, :lo12:.LANCHOR105 11563 str w3, [x29, 120] 11564 mov w0, 0 11565 udiv w1, w19, w3 11566 str x4, [x29, 112] 11567 mul w2, w27, w2 11568 ldr x6, [x4, 8] 11569 str w27, [x29, 128] 11570 and w28, w2, 65535 11571 blr x6 11572 cmp w28, 511 11573 ldr w3, [x29, 120] 11574 ldr x4, [x29, 112] 11575 bhi .L1576 11576 add w1, w28, w19 11577 ldr x4, [x4, 8] 11578 mov w0, 0 11579 udiv w1, w1, w3 11580 blr x4 11581.L1576: 11582 udiv w5, w19, w28 11583 ldr x0, [x29, 144] 11584 mov w4, 0 11585 mov w7, 61424 11586 add x8, x0, :lo12:idb_buf 11587 msub w5, w5, w28, w19 11588 sub w6, w19, w5 11589.L1577: 11590 cmp w4, 511 11591 bls .L1578 11592 ldr x0, [x29, 152] 11593 mov w27, 0 11594 add x0, x0, :lo12:.LANCHOR0 11595 ldrh w4, [x0, 14] 11596 ldrh w5, [x0, 10] 11597 and w28, w4, 255 11598 mov w4, w28 11599 mul w5, w28, w5 11600 and w0, w5, 65535 11601 udiv w5, w19, w0 11602 msub w5, w5, w0, w19 11603 and w1, w5, 65535 11604 sub w6, w19, w5 11605 sdiv w0, w1, w28 11606 msub w0, w0, w28, w1 11607 ldr x1, [x29, 136] 11608 and w0, w0, 65535 11609 add x8, x1, :lo12:gp_flash_check_buf 11610.L1579: 11611 cmp w27, 511 11612 bhi .L1583 11613 add w1, w5, w27 11614 sub w7, w4, w0 11615 add w0, w0, w6 11616 ldr x10, [x23, 24] 11617 and w7, w7, 65535 11618 ubfiz x2, x27, 9, 16 11619 udiv w1, w1, w28 11620 add x2, x8, x2 11621 stp w4, w7, [x29, 104] 11622 add x3, x29, 176 11623 str w5, [x29, 112] 11624 str w6, [x29, 120] 11625 and w1, w1, 65535 11626 str x8, [x29, 128] 11627 madd w1, w1, w28, w0 11628 mov w0, 0 11629 udiv w1, w1, w28 11630 blr x10 11631 cmn w0, #1 11632 ldp w4, w7, [x29, 104] 11633 ldr w5, [x29, 112] 11634 ldr w6, [x29, 120] 11635 ldr x8, [x29, 128] 11636 bne .L1580 11637.L1583: 11638 ldr x0, [x29, 144] 11639 mov x27, 0 11640 add x1, x0, :lo12:idb_buf 11641 ldr x0, [x29, 136] 11642 add x28, x0, :lo12:gp_flash_check_buf 11643.L1581: 11644 lsl x0, x27, 2 11645 add x3, x0, x1 11646 ldr w2, [x0, x28] 11647 ldr w0, [x0, x1] 11648 cmp w2, w0 11649 beq .L1584 11650 mov x2, 512 11651 mov w1, 0 11652 str x3, [x29, 128] 11653 mov x0, x28 11654 str w27, [x29, 136] 11655 bl memset 11656 ldr w5, [x29, 136] 11657 mov w4, w27 11658 ldr x3, [x29, 128] 11659 mov w1, w19 11660 adrp x0, .LC109 11661 add x0, x0, :lo12:.LC109 11662 ldr w2, [x28, w5, uxtw 2] 11663 ldr w3, [x3] 11664 bl printf 11665 ldr w0, [x29, 172] 11666 ldr x2, [x23, 8] 11667 udiv w1, w19, w0 11668 mov w0, 0 11669 blr x2 11670 cmp w21, 1 11671 bls .L1585 11672 ldr w0, [x29, 168] 11673 ldr x2, [x23, 8] 11674 add w1, w0, w19 11675 ldr w0, [x29, 172] 11676 udiv w1, w1, w0 11677 mov w0, 0 11678 blr x2 11679.L1585: 11680 ldr w0, [x29, 160] 11681 add w26, w26, w21 11682 cmp w26, 15 11683 add w19, w19, w0 11684 bls .L1572 11685.L1590: 11686 str wzr, [x25, #:lo12:.LANCHOR179] 11687.L1570: 11688 mov x3, x24 11689 mov w2, w22 11690 mov w1, w20 11691 mov w0, 0 11692 bl FtlWrite 11693 ldp x19, x20, [sp, 16] 11694 ldp x21, x22, [sp, 32] 11695 ldp x23, x24, [sp, 48] 11696 ldp x25, x26, [sp, 64] 11697 ldp x27, x28, [sp, 80] 11698 ldp x29, x30, [sp], 240 11699 ret 11700.L1571: 11701 ldr w6, [x2, w0, uxtw 2] 11702 add w0, w0, 1 11703 str w6, [x3, x2] 11704 cmp w0, w5 11705 sub x1, x1, #4 11706 csel w0, w0, wzr, cc 11707 cmp x1, x4 11708 bne .L1574 11709 b .L1575 11710.L1578: 11711 add w0, w5, w4 11712 ldr x10, [x23, 16] 11713 ubfiz x2, x4, 9, 16 11714 stp w5, w7, [x29, 100] 11715 add x2, x8, x2 11716 stp w4, w6, [x29, 108] 11717 udiv w0, w0, w27 11718 str x8, [x29, 120] 11719 add x3, x29, 176 11720 and w0, w0, 65535 11721 mul w1, w0, w27 11722 stp w1, w7, [x29, 176] 11723 udiv w1, w6, w27 11724 add w1, w1, w0 11725 mov w0, 0 11726 blr x10 11727 ldp w4, w6, [x29, 108] 11728 ldr w0, [x29, 128] 11729 ldp w5, w7, [x29, 100] 11730 add w4, w0, w4 11731 and w4, w4, 65535 11732 ldr x8, [x29, 120] 11733 b .L1577 11734.L1580: 11735 add w27, w7, w27 11736 mov w0, 0 11737 and w27, w27, 65535 11738 b .L1579 11739.L1584: 11740 add x27, x27, 1 11741 cmp x27, 65536 11742 bne .L1581 11743 ldr w0, [x29, 164] 11744 add w0, w0, 1 11745 str w0, [x29, 164] 11746 cmp w0, 5 11747 bls .L1585 11748 b .L1590 11749.L1569: 11750 cmp w0, 63 11751 adrp x3, idb_buf 11752 bhi .L1587 11753 mov w1, 64 11754 sub w1, w1, w0 11755 sub w2, w22, w1 11756 ubfiz x1, x1, 9, 25 11757 add x1, x24, x1 11758 add x0, x3, :lo12:idb_buf 11759.L1588: 11760 mov w3, 1 11761 str w3, [x25, #:lo12:.LANCHOR179] 11762 cmp w5, 576 11763 bls .L1589 11764 sub w2, w2, w4 11765 sub w2, w2, #447 11766.L1589: 11767 lsl w2, w2, 9 11768 bl memcpy 11769 b .L1570 11770.L1587: 11771 lsl w0, w0, 7 11772 add x3, x3, :lo12:idb_buf 11773 sub w0, w0, #8192 11774 mov x1, x2 11775 add x0, x3, x0, lsl 2 11776 mov w2, w22 11777 b .L1588 11778 .size sftl_write, .-sftl_write 11779 .section .text.FtlLoadSysInfo,"ax",@progbits 11780 .align 2 11781 .global FtlLoadSysInfo 11782 .type FtlLoadSysInfo, %function 11783FtlLoadSysInfo: 11784 stp x29, x30, [sp, -96]! 11785 mov w1, 0 11786 add x29, sp, 0 11787 stp x19, x20, [sp, 16] 11788 adrp x19, .LANCHOR106 11789 stp x23, x24, [sp, 48] 11790 adrp x23, .LANCHOR107 11791 stp x21, x22, [sp, 32] 11792 add x21, x19, :lo12:.LANCHOR106 11793 stp x25, x26, [sp, 64] 11794 adrp x26, .LANCHOR108 11795 stp x27, x28, [sp, 80] 11796 adrp x25, .LANCHOR42 11797 ldr x0, [x23, #:lo12:.LANCHOR107] 11798 adrp x24, .LANCHOR5 11799 str x0, [x21, 8] 11800 adrp x20, .LANCHOR79 11801 ldr x0, [x26, #:lo12:.LANCHOR108] 11802 str x0, [x21, 16] 11803 ldr x0, [x25, #:lo12:.LANCHOR42] 11804 ldrh w2, [x24, #:lo12:.LANCHOR5] 11805 lsl w2, w2, 1 11806 bl ftl_memset 11807 ldrh w0, [x20, #:lo12:.LANCHOR79] 11808 mov w1, 65535 11809 cmp w0, w1 11810 bne .L1601 11811.L1609: 11812 mov w0, -1 11813.L1600: 11814 ldp x19, x20, [sp, 16] 11815 ldp x21, x22, [sp, 32] 11816 ldp x23, x24, [sp, 48] 11817 ldp x25, x26, [sp, 64] 11818 ldp x27, x28, [sp, 80] 11819 ldp x29, x30, [sp], 96 11820 ret 11821.L1601: 11822 add x27, x20, :lo12:.LANCHOR79 11823 mov w1, 1 11824 bl FtlGetLastWrittenPage 11825 sxth w22, w0 11826 add w0, w0, 1 11827 mov w28, 61604 11828 strh w0, [x27, 2] 11829 mov w27, 19539 11830 movk w27, 0x4654, lsl 16 11831.L1603: 11832 tbz w22, #31, .L1606 11833 adrp x1, .LANCHOR180 11834 adrp x0, .LC1 11835 mov w2, 1437 11836 add x1, x1, :lo12:.LANCHOR180 11837 add x0, x0, :lo12:.LC1 11838 bl printf 11839.L1605: 11840 adrp x1, .LANCHOR23 11841 ldrh w0, [x24, #:lo12:.LANCHOR5] 11842 ldrh w1, [x1, #:lo12:.LANCHOR23] 11843 add x0, x0, 24 11844 cmp x1, x0, lsl 1 11845 bcs .L1608 11846 adrp x1, .LANCHOR180 11847 adrp x0, .LC1 11848 mov w2, 1439 11849 add x1, x1, :lo12:.LANCHOR180 11850 add x0, x0, :lo12:.LC1 11851 bl printf 11852.L1608: 11853 add x22, x19, :lo12:.LANCHOR106 11854 adrp x19, .LANCHOR39 11855 add x21, x19, :lo12:.LANCHOR39 11856 mov w2, 48 11857 mov x0, x21 11858 ldr x1, [x22, 8] 11859 bl ftl_memcpy 11860 ldr x0, [x25, #:lo12:.LANCHOR42] 11861 ldrh w2, [x24, #:lo12:.LANCHOR5] 11862 ldr x1, [x22, 8] 11863 lsl w2, w2, 1 11864 add x1, x1, 48 11865 bl ftl_memcpy 11866 ldrh w1, [x24, #:lo12:.LANCHOR5] 11867 ldr x0, [x22, 8] 11868 lsr w2, w1, 3 11869 ubfiz x1, x1, 1, 16 11870 add x1, x1, 48 11871 add w2, w2, 4 11872 and x1, x1, -4 11873 add x1, x0, x1 11874 adrp x0, .LANCHOR1 11875 ldr x0, [x0, #:lo12:.LANCHOR1] 11876 bl ftl_memcpy 11877 ldr w1, [x19, #:lo12:.LANCHOR39] 11878 mov w0, 19539 11879 movk w0, 0x4654, lsl 16 11880 cmp w1, w0 11881 bne .L1609 11882 add x20, x20, :lo12:.LANCHOR79 11883 adrp x0, .LANCHOR10 11884 ldrh w1, [x21, 8] 11885 ldrb w2, [x21, 10] 11886 ldrh w0, [x0, #:lo12:.LANCHOR10] 11887 strh w1, [x20, 6] 11888 cmp w2, w0 11889 bne .L1609 11890 adrp x0, .LANCHOR181 11891 adrp x2, .LANCHOR61 11892 adrp x3, .LANCHOR3 11893 str w1, [x0, #:lo12:.LANCHOR181] 11894 adrp x0, .LANCHOR19 11895 ldrh w3, [x3, #:lo12:.LANCHOR3] 11896 ldrh w0, [x0, #:lo12:.LANCHOR19] 11897 mul w0, w0, w1 11898 str w0, [x2, #:lo12:.LANCHOR61] 11899 adrp x2, .LANCHOR12 11900 ldrh w2, [x2, #:lo12:.LANCHOR12] 11901 mul w0, w2, w0 11902 adrp x2, .LANCHOR34 11903 str w0, [x2, #:lo12:.LANCHOR34] 11904 adrp x0, .LANCHOR7 11905 ldr w2, [x0, #:lo12:.LANCHOR7] 11906 adrp x0, .LANCHOR37+6 11907 ldrh w0, [x0, #:lo12:.LANCHOR37+6] 11908 cmp w1, w2 11909 sub w0, w2, w0 11910 sub w0, w0, w1 11911 udiv w0, w0, w3 11912 adrp x3, .LANCHOR78 11913 strh w0, [x3, #:lo12:.LANCHOR78] 11914 bls .L1610 11915 adrp x1, .LANCHOR180 11916 adrp x0, .LC1 11917 mov w2, 1461 11918 add x1, x1, :lo12:.LANCHOR180 11919 add x0, x0, :lo12:.LC1 11920 bl printf 11921.L1610: 11922 add x1, x19, :lo12:.LANCHOR39 11923 adrp x0, .LANCHOR51 11924 add x3, x0, :lo12:.LANCHOR51 11925 adrp x20, .LANCHOR80 11926 ldrh w2, [x1, 16] 11927 ldrh w6, [x1, 14] 11928 strh w6, [x0, #:lo12:.LANCHOR51] 11929 lsr w4, w2, 6 11930 and w2, w2, 63 11931 strb w2, [x3, 6] 11932 ldrb w2, [x1, 11] 11933 strb w2, [x3, 8] 11934 add x2, x20, :lo12:.LANCHOR80 11935 strh w4, [x3, 2] 11936 mov w3, -1 11937 strh w3, [x20, #:lo12:.LANCHOR80] 11938 strh wzr, [x2, 2] 11939 strb wzr, [x2, 6] 11940 strb wzr, [x2, 8] 11941 adrp x2, .LANCHOR52 11942 ldrh w3, [x1, 18] 11943 add x4, x2, :lo12:.LANCHOR52 11944 strh w3, [x2, #:lo12:.LANCHOR52] 11945 mov x21, x2 11946 ldrh w3, [x1, 20] 11947 lsr w5, w3, 6 11948 and w3, w3, 63 11949 strb w3, [x4, 6] 11950 ldrb w3, [x1, 12] 11951 strh w5, [x4, 2] 11952 strb w3, [x4, 8] 11953 adrp x4, .LANCHOR53 11954 ldrh w3, [x1, 22] 11955 add x5, x4, :lo12:.LANCHOR53 11956 strh w3, [x4, #:lo12:.LANCHOR53] 11957 mov x22, x4 11958 ldrh w3, [x1, 24] 11959 lsr w7, w3, 6 11960 and w3, w3, 63 11961 strb w3, [x5, 6] 11962 ldrb w3, [x1, 13] 11963 strb w3, [x5, 8] 11964 adrp x3, .LANCHOR67 11965 strh w7, [x5, 2] 11966 ldr w5, [x1, 32] 11967 str wzr, [x3, #:lo12:.LANCHOR67] 11968 adrp x3, .LANCHOR64 11969 str wzr, [x3, #:lo12:.LANCHOR64] 11970 adrp x3, .LANCHOR62 11971 str wzr, [x3, #:lo12:.LANCHOR62] 11972 adrp x3, .LANCHOR66 11973 str wzr, [x3, #:lo12:.LANCHOR66] 11974 adrp x3, .LANCHOR72 11975 str w5, [x3, #:lo12:.LANCHOR72] 11976 adrp x3, .LANCHOR73 11977 str wzr, [x3, #:lo12:.LANCHOR73] 11978 adrp x3, .LANCHOR76 11979 str wzr, [x3, #:lo12:.LANCHOR76] 11980 adrp x3, .LANCHOR65 11981 str wzr, [x3, #:lo12:.LANCHOR65] 11982 ldr w3, [x1, 40] 11983 adrp x1, .LANCHOR70 11984 ldr w5, [x1, #:lo12:.LANCHOR70] 11985 cmp w3, w5 11986 bls .L1611 11987 str w3, [x1, #:lo12:.LANCHOR70] 11988.L1611: 11989 add x19, x19, :lo12:.LANCHOR39 11990 adrp x1, .LANCHOR71 11991 ldr w3, [x1, #:lo12:.LANCHOR71] 11992 ldr w2, [x19, 36] 11993 cmp w2, w3 11994 bls .L1612 11995 str w2, [x1, #:lo12:.LANCHOR71] 11996.L1612: 11997 mov w1, 65535 11998 cmp w6, w1 11999 beq .L1613 12000 add x0, x0, :lo12:.LANCHOR51 12001 bl make_superblock 12002.L1613: 12003 ldrh w2, [x21, #:lo12:.LANCHOR52] 12004 mov w1, 65535 12005 add x0, x21, :lo12:.LANCHOR52 12006 cmp w2, w1 12007 beq .L1614 12008 bl make_superblock 12009.L1614: 12010 ldrh w2, [x22, #:lo12:.LANCHOR53] 12011 mov w1, 65535 12012 add x0, x22, :lo12:.LANCHOR53 12013 cmp w2, w1 12014 beq .L1615 12015 bl make_superblock 12016.L1615: 12017 ldrh w2, [x20, #:lo12:.LANCHOR80] 12018 mov w1, 65535 12019 add x0, x20, :lo12:.LANCHOR80 12020 cmp w2, w1 12021 beq .L1616 12022 bl make_superblock 12023.L1616: 12024 mov w0, 0 12025 b .L1600 12026.L1606: 12027 ldrh w0, [x20, #:lo12:.LANCHOR79] 12028 mov w2, 1 12029 mov w1, w2 12030 orr w0, w22, w0, lsl 10 12031 str w0, [x21, 4] 12032 ldr x0, [x23, #:lo12:.LANCHOR107] 12033 str x0, [x21, 8] 12034 mov x0, x21 12035 bl FlashReadPages 12036 ldr w0, [x21] 12037 cmn w0, #1 12038 beq .L1604 12039 ldr x0, [x23, #:lo12:.LANCHOR107] 12040 ldr w0, [x0] 12041 cmp w0, w27 12042 bne .L1604 12043 ldr x0, [x26, #:lo12:.LANCHOR108] 12044 ldrh w0, [x0] 12045 cmp w0, w28 12046 beq .L1605 12047.L1604: 12048 sub w22, w22, #1 12049 sxth w22, w22 12050 b .L1603 12051 .size FtlLoadSysInfo, .-FtlLoadSysInfo 12052 .section .text.FtlSysBlkInit,"ax",@progbits 12053 .align 2 12054 .global FtlSysBlkInit 12055 .type FtlSysBlkInit, %function 12056FtlSysBlkInit: 12057 stp x29, x30, [sp, -64]! 12058 adrp x0, .LANCHOR4 12059 add x29, sp, 0 12060 ldrh w0, [x0, #:lo12:.LANCHOR4] 12061 stp x19, x20, [sp, 16] 12062 adrp x20, .LANCHOR161 12063 stp x21, x22, [sp, 32] 12064 stp x23, x24, [sp, 48] 12065 strh wzr, [x20, #:lo12:.LANCHOR161] 12066 bl FtlFreeSysBlkQueueInit 12067 bl FtlScanSysBlk 12068 adrp x0, .LANCHOR79 12069 ldrh w1, [x0, #:lo12:.LANCHOR79] 12070 mov w0, 65535 12071 cmp w1, w0 12072 bne .L1623 12073.L1625: 12074 mov w23, -1 12075.L1622: 12076 mov w0, w23 12077 ldp x19, x20, [sp, 16] 12078 ldp x21, x22, [sp, 32] 12079 ldp x23, x24, [sp, 48] 12080 ldp x29, x30, [sp], 64 12081 ret 12082.L1623: 12083 bl FtlLoadSysInfo 12084 mov w23, w0 12085 cbnz w0, .L1625 12086 bl FtlLoadMapInfo 12087 bl FtlLoadVonderInfo 12088 bl Ftl_load_ext_data 12089 bl FtlLoadEctTbl 12090 bl FtlFreeSysBLkSort 12091 bl SupperBlkListInit 12092 bl FtlPowerLostRecovery 12093 mov w0, 1 12094 bl FtlUpdateVaildLpn 12095 adrp x0, .LANCHOR33 12096 ldrh w2, [x0, #:lo12:.LANCHOR33] 12097 adrp x0, .LANCHOR55 12098 ldr x1, [x0, #:lo12:.LANCHOR55] 12099 mov w0, 0 12100 add x1, x1, 4 12101.L1626: 12102 cmp w0, w2 12103 bge .L1631 12104 ldr w3, [x1], 16 12105 tbz w3, #31, .L1627 12106.L1631: 12107 adrp x19, .LANCHOR39 12108 add x3, x19, :lo12:.LANCHOR39 12109 cmp w0, w2 12110 adrp x22, .LANCHOR51 12111 ldrh w1, [x3, 28] 12112 add w1, w1, 1 12113 strh w1, [x3, 28] 12114 bge .L1635 12115.L1628: 12116 add x21, x22, :lo12:.LANCHOR51 12117 adrp x24, .LANCHOR52 12118 mov x0, x21 12119 add x20, x24, :lo12:.LANCHOR52 12120 bl FtlSuperblockPowerLostFix 12121 mov x0, x20 12122 bl FtlSuperblockPowerLostFix 12123 adrp x0, .LANCHOR42 12124 ldrh w3, [x21, 4] 12125 ldr x1, [x0, #:lo12:.LANCHOR42] 12126 ldrh w0, [x22, #:lo12:.LANCHOR51] 12127 lsl x0, x0, 1 12128 ldrh w2, [x1, x0] 12129 sub w2, w2, w3 12130 adrp x3, .LANCHOR19 12131 strh w2, [x1, x0] 12132 strb wzr, [x21, 6] 12133 ldrh w0, [x3, #:lo12:.LANCHOR19] 12134 strh w0, [x21, 2] 12135 ldrh w0, [x24, #:lo12:.LANCHOR52] 12136 strh wzr, [x21, 4] 12137 ldrh w4, [x20, 4] 12138 lsl x0, x0, 1 12139 ldrh w2, [x1, x0] 12140 sub w2, w2, w4 12141 strh w2, [x1, x0] 12142 strb wzr, [x20, 6] 12143 ldrh w0, [x3, #:lo12:.LANCHOR19] 12144 strh w0, [x20, 2] 12145 strh wzr, [x20, 4] 12146 adrp x0, .LANCHOR144 12147 add x0, x0, :lo12:.LANCHOR144 12148 bl FtlMapBlkWriteDump_data 12149 adrp x0, .LANCHOR149 12150 add x0, x0, :lo12:.LANCHOR149 12151 bl FtlMapBlkWriteDump_data 12152 add x1, x19, :lo12:.LANCHOR39 12153 ldrh w0, [x1, 30] 12154 add w0, w0, 1 12155 strh w0, [x1, 30] 12156 bl l2p_flush 12157 bl FtlVpcTblFlush 12158.L1637: 12159 bl FtlVpcTblFlush 12160 add x21, x22, :lo12:.LANCHOR51 12161 ldrh w0, [x22, #:lo12:.LANCHOR51] 12162 mov w1, 65535 12163 cmp w0, w1 12164 beq .L1634 12165 ldrh w1, [x21, 4] 12166 cbnz w1, .L1634 12167 adrp x22, .LANCHOR52 12168 add x20, x22, :lo12:.LANCHOR52 12169 ldrh w1, [x20, 4] 12170 cbnz w1, .L1634 12171 bl FtlGcRefreshBlock 12172 ldrh w0, [x22, #:lo12:.LANCHOR52] 12173 bl FtlGcRefreshBlock 12174 mov x0, x21 12175 bl allocate_new_data_superblock 12176 mov x0, x20 12177 bl allocate_new_data_superblock 12178.L1634: 12179 add x19, x19, :lo12:.LANCHOR39 12180 ldrh w0, [x19, 28] 12181 tst x0, 31 12182 bne .L1622 12183 bl FtlVpcCheckAndModify 12184 b .L1622 12185.L1627: 12186 add w0, w0, 1 12187 b .L1626 12188.L1635: 12189 ldrh w0, [x20, #:lo12:.LANCHOR161] 12190 cbnz w0, .L1628 12191 bl l2p_flush 12192 b .L1637 12193 .size FtlSysBlkInit, .-FtlSysBlkInit 12194 .section .text.ftl_low_format,"ax",@progbits 12195 .align 2 12196 .global ftl_low_format 12197 .type ftl_low_format, %function 12198ftl_low_format: 12199 stp x29, x30, [sp, -80]! 12200 adrp x0, .LANCHOR71 12201 add x29, sp, 0 12202 stp x23, x24, [sp, 48] 12203 adrp x24, .LANCHOR4 12204 str wzr, [x0, #:lo12:.LANCHOR71] 12205 ldrh w0, [x24, #:lo12:.LANCHOR4] 12206 stp x19, x20, [sp, 16] 12207 adrp x20, .LANCHOR70 12208 stp x21, x22, [sp, 32] 12209 stp x25, x26, [sp, 64] 12210 str wzr, [x20, #:lo12:.LANCHOR70] 12211 bl FtlFreeSysBlkQueueInit 12212 bl FtlLoadBbt 12213 cbz w0, .L1639 12214 bl FtlMakeBbt 12215.L1639: 12216 adrp x23, .LANCHOR12 12217 adrp x0, .LANCHOR115 12218 mov w6, 23752 12219 ldrh w1, [x23, #:lo12:.LANCHOR12] 12220 movk w6, 0xa0f, lsl 16 12221 ldr x4, [x0, #:lo12:.LANCHOR115] 12222 adrp x0, .LANCHOR113 12223 lsl w1, w1, 7 12224 ldr x5, [x0, #:lo12:.LANCHOR113] 12225 mov w0, 0 12226.L1640: 12227 cmp w0, w1 12228 blt .L1641 12229 adrp x21, .LANCHOR5 12230 adrp x22, .LANCHOR6 12231 add x26, x22, :lo12:.LANCHOR6 12232 mov w19, 0 12233 ldrh w25, [x21, #:lo12:.LANCHOR5] 12234.L1642: 12235 ldrh w0, [x26] 12236 cmp w0, w25 12237 bhi .L1643 12238 adrp x25, .LANCHOR3 12239 sub w1, w19, #2 12240 ldrh w0, [x25, #:lo12:.LANCHOR3] 12241 cmp w1, w0, lsl 1 12242 bgt .L1644 12243.L1648: 12244 add x26, x21, :lo12:.LANCHOR5 12245 mov w19, 0 12246 mov w24, 0 12247.L1645: 12248 ldrh w0, [x26] 12249 cmp w0, w24 12250 bhi .L1649 12251 adrp x0, .LANCHOR112 12252 ldrh w1, [x22, #:lo12:.LANCHOR6] 12253 ldrh w4, [x25, #:lo12:.LANCHOR3] 12254 adrp x2, .LANCHOR78 12255 str w1, [x0, #:lo12:.LANCHOR112] 12256 adrp x0, .LANCHOR7 12257 adrp x3, .LANCHOR61 12258 ldr w1, [x0, #:lo12:.LANCHOR7] 12259 udiv w5, w1, w4 12260 ubfx x0, x5, 5, 16 12261 str w5, [x3, #:lo12:.LANCHOR61] 12262 add w6, w0, 36 12263 strh w6, [x2, #:lo12:.LANCHOR78] 12264 mov w6, 24 12265 mul w6, w4, w6 12266 cmp w19, w6 12267 ble .L1650 12268 sub w1, w1, w19 12269 udiv w1, w1, w4 12270 str w1, [x3, #:lo12:.LANCHOR61] 12271 lsr w1, w1, 5 12272 add w1, w1, 24 12273 strh w1, [x2, #:lo12:.LANCHOR78] 12274.L1650: 12275 adrp x1, .LANCHOR15 12276 ldrh w1, [x1, #:lo12:.LANCHOR15] 12277 cbz w1, .L1652 12278 ldrh w6, [x2, #:lo12:.LANCHOR78] 12279 add w6, w6, w1, lsr 1 12280 strh w6, [x2, #:lo12:.LANCHOR78] 12281 mul w6, w1, w4 12282 cmp w19, w6 12283 bge .L1652 12284 add w1, w1, 32 12285 str w5, [x3, #:lo12:.LANCHOR61] 12286 add w1, w0, w1 12287 strh w1, [x2, #:lo12:.LANCHOR78] 12288.L1652: 12289 ldrh w1, [x2, #:lo12:.LANCHOR78] 12290 adrp x25, .LANCHOR181 12291 ldr w0, [x3, #:lo12:.LANCHOR61] 12292 adrp x24, .LANCHOR42 12293 sub w0, w0, w1 12294 adrp x1, .LANCHOR19 12295 ldrh w1, [x1, #:lo12:.LANCHOR19] 12296 mul w0, w0, w4 12297 str w0, [x25, #:lo12:.LANCHOR181] 12298 mul w0, w1, w0 12299 ldrh w1, [x23, #:lo12:.LANCHOR12] 12300 str w0, [x3, #:lo12:.LANCHOR61] 12301 mov w23, -1 12302 mul w0, w1, w0 12303 adrp x1, .LANCHOR34 12304 str w0, [x1, #:lo12:.LANCHOR34] 12305 bl FtlBbmTblFlush 12306 ldr x0, [x24, #:lo12:.LANCHOR42] 12307 mov w1, 0 12308 ldrh w2, [x22, #:lo12:.LANCHOR6] 12309 lsl w2, w2, 1 12310 bl ftl_memset 12311 adrp x0, .LANCHOR59 12312 adrp x1, .LANCHOR80 12313 ldrh w2, [x21, #:lo12:.LANCHOR5] 12314 str wzr, [x0, #:lo12:.LANCHOR59] 12315 add x0, x1, :lo12:.LANCHOR80 12316 strh w23, [x1, #:lo12:.LANCHOR80] 12317 mov w1, 255 12318 lsr w2, w2, 3 12319 strh wzr, [x0, 2] 12320 strb wzr, [x0, 6] 12321 strb wzr, [x0, 8] 12322 adrp x0, .LANCHOR51 12323 add x19, x0, :lo12:.LANCHOR51 12324 strh wzr, [x0, #:lo12:.LANCHOR51] 12325 mov w0, 1 12326 strb w0, [x19, 8] 12327 adrp x0, .LANCHOR1 12328 strh wzr, [x19, 2] 12329 ldr x0, [x0, #:lo12:.LANCHOR1] 12330 strb wzr, [x19, 6] 12331 bl ftl_memset 12332.L1654: 12333 mov x0, x19 12334 bl make_superblock 12335 ldrb w1, [x19, 7] 12336 ldrh w0, [x19] 12337 cbnz w1, .L1655 12338 ldr x1, [x24, #:lo12:.LANCHOR42] 12339 ubfiz x0, x0, 1, 16 12340 strh w23, [x1, x0] 12341 ldrh w0, [x19] 12342 add w0, w0, 1 12343 strh w0, [x19] 12344 b .L1654 12345.L1641: 12346 ubfiz x3, x0, 2, 16 12347 mvn w2, w0 12348 orr w2, w0, w2, lsl 16 12349 add w0, w0, 1 12350 and w0, w0, 65535 12351 str w2, [x4, x3] 12352 str w6, [x5, x3] 12353 b .L1640 12354.L1643: 12355 mov w0, w25 12356 mov w1, 1 12357 add w25, w25, 1 12358 bl FtlLowFormatEraseBlock 12359 add w19, w19, w0 12360 and w25, w25, 65535 12361 and w19, w19, 65535 12362 b .L1642 12363.L1644: 12364 udiv w0, w19, w0 12365 adrp x1, .LANCHOR31 12366 ldr w19, [x1, #:lo12:.LANCHOR31] 12367 add w0, w0, w19 12368 bl FtlSysBlkNumInit 12369 ldrh w0, [x24, #:lo12:.LANCHOR4] 12370 add x24, x22, :lo12:.LANCHOR6 12371 bl FtlFreeSysBlkQueueInit 12372 ldrh w19, [x21, #:lo12:.LANCHOR5] 12373.L1646: 12374 ldrh w0, [x24] 12375 cmp w0, w19 12376 bls .L1648 12377 mov w0, w19 12378 add w19, w19, 1 12379 mov w1, 1 12380 and w19, w19, 65535 12381 bl FtlLowFormatEraseBlock 12382 b .L1646 12383.L1649: 12384 mov w0, w24 12385 mov w1, 0 12386 add w24, w24, 1 12387 bl FtlLowFormatEraseBlock 12388 add w19, w19, w0 12389 and w24, w24, 65535 12390 and w19, w19, 65535 12391 b .L1645 12392.L1655: 12393 ldr w1, [x20, #:lo12:.LANCHOR70] 12394 ubfiz x0, x0, 1, 16 12395 str w1, [x19, 12] 12396 mov w23, -1 12397 add w1, w1, 1 12398 str w1, [x20, #:lo12:.LANCHOR70] 12399 ldr x1, [x24, #:lo12:.LANCHOR42] 12400 ldrh w2, [x19, 4] 12401 strh w2, [x1, x0] 12402 adrp x2, .LANCHOR52 12403 add x0, x2, :lo12:.LANCHOR52 12404 ldrh w1, [x19] 12405 mov x19, x0 12406 add w1, w1, 1 12407 strh wzr, [x0, 2] 12408 strh w1, [x2, #:lo12:.LANCHOR52] 12409 mov w1, 1 12410 strb wzr, [x0, 6] 12411 strb w1, [x0, 8] 12412.L1656: 12413 mov x0, x19 12414 bl make_superblock 12415 ldrb w1, [x19, 7] 12416 ldrh w0, [x19] 12417 cbnz w1, .L1657 12418 ldr x1, [x24, #:lo12:.LANCHOR42] 12419 ubfiz x0, x0, 1, 16 12420 strh w23, [x1, x0] 12421 ldrh w0, [x19] 12422 add w0, w0, 1 12423 strh w0, [x19] 12424 b .L1656 12425.L1657: 12426 ldr w1, [x20, #:lo12:.LANCHOR70] 12427 ubfiz x0, x0, 1, 16 12428 str w1, [x19, 12] 12429 add w1, w1, 1 12430 str w1, [x20, #:lo12:.LANCHOR70] 12431 ldr x1, [x24, #:lo12:.LANCHOR42] 12432 ldrh w2, [x19, 4] 12433 mov w19, -1 12434 strh w2, [x1, x0] 12435 adrp x0, .LANCHOR53 12436 strh w19, [x0, #:lo12:.LANCHOR53] 12437 bl FtlFreeSysBlkQueueOut 12438 adrp x2, .LANCHOR79 12439 add x1, x2, :lo12:.LANCHOR79 12440 strh w0, [x2, #:lo12:.LANCHOR79] 12441 ldr w0, [x25, #:lo12:.LANCHOR181] 12442 strh w0, [x1, 6] 12443 ldr w0, [x20, #:lo12:.LANCHOR70] 12444 str w0, [x1, 8] 12445 add w0, w0, 1 12446 strh wzr, [x1, 2] 12447 strh w19, [x1, 4] 12448 str w0, [x20, #:lo12:.LANCHOR70] 12449 bl FtlVpcTblFlush 12450 bl FtlSysBlkInit 12451 cbnz w0, .L1658 12452 adrp x0, .LANCHOR86 12453 mov w1, 1 12454 str w1, [x0, #:lo12:.LANCHOR86] 12455.L1658: 12456 mov w0, 0 12457 ldp x19, x20, [sp, 16] 12458 ldp x21, x22, [sp, 32] 12459 ldp x23, x24, [sp, 48] 12460 ldp x25, x26, [sp, 64] 12461 ldp x29, x30, [sp], 80 12462 ret 12463 .size ftl_low_format, .-ftl_low_format 12464 .section .text.sftl_init,"ax",@progbits 12465 .align 2 12466 .global sftl_init 12467 .type sftl_init, %function 12468sftl_init: 12469 stp x29, x30, [sp, -32]! 12470 adrp x1, .LC70 12471 add x1, x1, :lo12:.LC70 12472 mov w0, -1 12473 add x29, sp, 0 12474 str x19, [sp, 16] 12475 adrp x19, .LANCHOR86 12476 str w0, [x19, #:lo12:.LANCHOR86] 12477 adrp x0, .LC71 12478 add x0, x0, :lo12:.LC71 12479 bl printf 12480 adrp x0, .LANCHOR0 12481 add x0, x0, :lo12:.LANCHOR0 12482 bl FtlConstantsInit 12483 bl FtlMemInit 12484 bl FtlVariablesInit 12485 adrp x0, .LANCHOR4 12486 ldrh w0, [x0, #:lo12:.LANCHOR4] 12487 bl FtlFreeSysBlkQueueInit 12488 bl FtlLoadBbt 12489 cbnz w0, .L1667 12490 bl FtlSysBlkInit 12491 cbnz w0, .L1667 12492 mov w0, 1 12493 str w0, [x19, #:lo12:.LANCHOR86] 12494 adrp x0, .LANCHOR48 12495 ldrh w0, [x0, #:lo12:.LANCHOR48] 12496 cmp w0, 15 12497 bhi .L1667 12498 mov w19, 8129 12499.L1666: 12500 mov w1, 1 12501 mov w0, 0 12502 bl rk_ftl_garbage_collect 12503 subs w19, w19, #1 12504 bne .L1666 12505.L1667: 12506 mov w0, 0 12507 ldr x19, [sp, 16] 12508 ldp x29, x30, [sp], 32 12509 ret 12510 .size sftl_init, .-sftl_init 12511 .section .text.ftl_memcmp,"ax",@progbits 12512 .align 2 12513 .global ftl_memcmp 12514 .type ftl_memcmp, %function 12515ftl_memcmp: 12516 uxtw x2, w2 12517 b memcmp 12518 .size ftl_memcmp, .-ftl_memcmp 12519 .global ftl_temp_buf 12520 .global g_nand_ops 12521 .global g_nand_phy_info 12522 .global gc_ink_free_return_value 12523 .global check_vpc_table 12524 .global FtlUpdateVaildLpnCount 12525 .global g_ect_tbl_power_up_flush 12526 .global power_up_flag 12527 .global gFtlInitStatus 12528 .global DeviceCapacity 12529 .global g_power_lost_recovery_flag 12530 .global c_mlc_erase_count_value 12531 .global g_recovery_ppa_tbl 12532 .global g_recovery_page_min_ver 12533 .global g_recovery_page_num 12534 .global g_cur_erase_blk 12535 .global g_gc_skip_write_count 12536 .global g_gc_head_data_block_count 12537 .global g_gc_head_data_block 12538 .global g_ftl_nand_free_count 12539 .global g_in_swl_replace 12540 .global g_in_gc_progress 12541 .global g_max_erase_count 12542 .global g_totle_sys_slc_erase_count 12543 .global g_totle_slc_erase_count 12544 .global g_min_erase_count 12545 .global g_totle_avg_erase_count 12546 .global g_totle_mlc_erase_count 12547 .global g_totle_l2p_write_count 12548 .global g_totle_cache_write_count 12549 .global g_tmp_data_superblock_id 12550 .global g_totle_read_page_count 12551 .global g_totle_discard_page_count 12552 .global g_totle_read_sector 12553 .global g_totle_write_sector 12554 .global g_totle_write_page_count 12555 .global g_totle_gc_page_count 12556 .global g_gc_blk_index 12557 .global g_gc_merge_free_blk_threshold 12558 .global g_gc_free_blk_threshold 12559 .global g_gc_bad_block_temp_tbl 12560 .global g_gc_bad_block_gc_index 12561 .global g_gc_bad_block_temp_num 12562 .global g_gc_next_blk_1 12563 .global g_gc_next_blk 12564 .global g_gc_cur_blk_max_valid_pages 12565 .global g_gc_cur_blk_valid_pages 12566 .global g_gc_page_offset 12567 .global g_gc_blk_num 12568 .global p_gc_blk_tbl 12569 .global p_gc_page_info 12570 .global g_sys_ext_data 12571 .global g_sys_save_data 12572 .global gp_last_act_superblock 12573 .global g_gc_superblock 12574 .global g_gc_temp_superblock 12575 .global g_buffer_superblock 12576 .global g_active_superblock 12577 .global g_num_data_superblocks 12578 .global g_num_free_superblocks 12579 .global p_data_block_list_tail 12580 .global p_data_block_list_head 12581 .global p_free_data_block_list_head 12582 .global p_data_block_list_table 12583 .global g_l2p_last_update_region_id 12584 .global p_l2p_map_buf 12585 .global p_l2p_ram_map 12586 .global g_totle_vendor_block 12587 .global p_vendor_region_ppn_table 12588 .global p_vendor_block_ver_table 12589 .global p_vendor_block_valid_page_count 12590 .global p_vendor_block_table 12591 .global g_totle_map_block 12592 .global p_map_region_ppn_table 12593 .global p_map_block_ver_table 12594 .global p_map_block_valid_page_count 12595 .global p_map_block_table 12596 .global p_blk_mode_table 12597 .global p_valid_page_count_check_table 12598 .global p_valid_page_count_table 12599 .global g_totle_swl_count 12600 .global p_swl_mul_table 12601 .global p_erase_count_table 12602 .global g_ect_tbl_info_size 12603 .global gp_ect_tbl_info 12604 .global g_gc_num_req 12605 .global c_gc_page_buf_num 12606 .global gp_gc_page_buf_info 12607 .global p_gc_data_buf 12608 .global p_gc_spare_buf 12609 .global p_io_spare_buf 12610 .global p_io_data_buf_1 12611 .global p_io_data_buf_0 12612 .global p_sys_spare_buf 12613 .global p_vendor_data_buf 12614 .global p_sys_data_buf_1 12615 .global p_sys_data_buf 12616 .global p_plane_order_table 12617 .global req_gc_dst 12618 .global req_gc 12619 .global req_erase 12620 .global req_prgm 12621 .global req_read 12622 .global req_sys 12623 .global gVendorBlkInfo 12624 .global gL2pMapInfo 12625 .global gSysFreeQueue 12626 .global gSysInfo 12627 .global gBbtInfo 12628 .global g_MaxLbn 12629 .global g_VaildLpn 12630 .global g_MaxLpn 12631 .global g_MaxLbaSector 12632 .global g_GlobalDataVersion 12633 .global g_GlobalSysVersion 12634 .global ftl_gc_temp_power_lost_recovery_flag 12635 .global c_ftl_nand_max_data_blks 12636 .global c_ftl_nand_data_op_blks_per_plane 12637 .global c_ftl_nand_data_blks_per_plane 12638 .global c_ftl_nand_max_sys_blks 12639 .global c_ftl_nand_init_sys_blks_per_plane 12640 .global c_ftl_nand_sys_blks_per_plane 12641 .global c_ftl_vendor_part_size 12642 .global c_ftl_nand_max_vendor_blks 12643 .global c_ftl_nand_max_map_blks 12644 .global c_ftl_nand_map_blks_per_plane 12645 .global c_ftl_nand_vendor_region_num 12646 .global c_ftl_nand_l2pmap_ram_region_num 12647 .global c_ftl_nand_map_region_num 12648 .global c_ftl_nand_totle_phy_blks 12649 .global c_ftl_nand_reserved_blks 12650 .global c_ftl_nand_byte_pre_oob 12651 .global c_ftl_nand_byte_pre_page 12652 .global c_ftl_nand_sec_pre_page_shift 12653 .global c_ftl_nand_sec_pre_page 12654 .global c_ftl_nand_page_pre_super_blk 12655 .global c_ftl_nand_page_pre_slc_blk 12656 .global c_ftl_nand_page_pre_blk 12657 .global c_ftl_nand_bbm_buf_size 12658 .global c_ftl_nand_ext_blk_pre_plane 12659 .global c_ftl_nand_blk_pre_plane 12660 .global c_ftl_nand_planes_num 12661 .global c_ftl_nand_blks_per_die_shift 12662 .global c_ftl_nand_blks_per_die 12663 .global c_ftl_nand_planes_per_die 12664 .global c_ftl_nand_die_num 12665 .global c_ftl_nand_type 12666 .section .bss.DeviceCapacity,"aw",@nobits 12667 .align 2 12668 .set .LANCHOR26,. + 0 12669 .type DeviceCapacity, %object 12670 .size DeviceCapacity, 4 12671DeviceCapacity: 12672 .zero 4 12673 .section .bss.FtlUpdateVaildLpnCount,"aw",@nobits 12674 .align 1 12675 .set .LANCHOR58,. + 0 12676 .type FtlUpdateVaildLpnCount, %object 12677 .size FtlUpdateVaildLpnCount, 2 12678FtlUpdateVaildLpnCount: 12679 .zero 2 12680 .section .bss.c_ftl_nand_bbm_buf_size,"aw",@nobits 12681 .align 1 12682 .set .LANCHOR137,. + 0 12683 .type c_ftl_nand_bbm_buf_size, %object 12684 .size c_ftl_nand_bbm_buf_size, 2 12685c_ftl_nand_bbm_buf_size: 12686 .zero 2 12687 .section .bss.c_ftl_nand_blk_pre_plane,"aw",@nobits 12688 .align 1 12689 .set .LANCHOR6,. + 0 12690 .type c_ftl_nand_blk_pre_plane, %object 12691 .size c_ftl_nand_blk_pre_plane, 2 12692c_ftl_nand_blk_pre_plane: 12693 .zero 2 12694 .section .bss.c_ftl_nand_blks_per_die,"aw",@nobits 12695 .align 1 12696 .set .LANCHOR17,. + 0 12697 .type c_ftl_nand_blks_per_die, %object 12698 .size c_ftl_nand_blks_per_die, 2 12699c_ftl_nand_blks_per_die: 12700 .zero 2 12701 .section .bss.c_ftl_nand_blks_per_die_shift,"aw",@nobits 12702 .align 1 12703 .set .LANCHOR18,. + 0 12704 .type c_ftl_nand_blks_per_die_shift, %object 12705 .size c_ftl_nand_blks_per_die_shift, 2 12706c_ftl_nand_blks_per_die_shift: 12707 .zero 2 12708 .section .bss.c_ftl_nand_byte_pre_oob,"aw",@nobits 12709 .align 1 12710 .set .LANCHOR24,. + 0 12711 .type c_ftl_nand_byte_pre_oob, %object 12712 .size c_ftl_nand_byte_pre_oob, 2 12713c_ftl_nand_byte_pre_oob: 12714 .zero 2 12715 .section .bss.c_ftl_nand_byte_pre_page,"aw",@nobits 12716 .align 1 12717 .set .LANCHOR23,. + 0 12718 .type c_ftl_nand_byte_pre_page, %object 12719 .size c_ftl_nand_byte_pre_page, 2 12720c_ftl_nand_byte_pre_page: 12721 .zero 2 12722 .section .bss.c_ftl_nand_data_blks_per_plane,"aw",@nobits 12723 .align 1 12724 .set .LANCHOR5,. + 0 12725 .type c_ftl_nand_data_blks_per_plane, %object 12726 .size c_ftl_nand_data_blks_per_plane, 2 12727c_ftl_nand_data_blks_per_plane: 12728 .zero 2 12729 .section .bss.c_ftl_nand_data_op_blks_per_plane,"aw",@nobits 12730 .align 1 12731 .set .LANCHOR78,. + 0 12732 .type c_ftl_nand_data_op_blks_per_plane, %object 12733 .size c_ftl_nand_data_op_blks_per_plane, 2 12734c_ftl_nand_data_op_blks_per_plane: 12735 .zero 2 12736 .section .bss.c_ftl_nand_die_num,"aw",@nobits 12737 .align 1 12738 .set .LANCHOR10,. + 0 12739 .type c_ftl_nand_die_num, %object 12740 .size c_ftl_nand_die_num, 2 12741c_ftl_nand_die_num: 12742 .zero 2 12743 .section .bss.c_ftl_nand_ext_blk_pre_plane,"aw",@nobits 12744 .align 1 12745 .set .LANCHOR15,. + 0 12746 .type c_ftl_nand_ext_blk_pre_plane, %object 12747 .size c_ftl_nand_ext_blk_pre_plane, 2 12748c_ftl_nand_ext_blk_pre_plane: 12749 .zero 2 12750 .section .bss.c_ftl_nand_init_sys_blks_per_plane,"aw",@nobits 12751 .align 2 12752 .set .LANCHOR31,. + 0 12753 .type c_ftl_nand_init_sys_blks_per_plane, %object 12754 .size c_ftl_nand_init_sys_blks_per_plane, 4 12755c_ftl_nand_init_sys_blks_per_plane: 12756 .zero 4 12757 .section .bss.c_ftl_nand_l2pmap_ram_region_num,"aw",@nobits 12758 .align 1 12759 .set .LANCHOR33,. + 0 12760 .type c_ftl_nand_l2pmap_ram_region_num, %object 12761 .size c_ftl_nand_l2pmap_ram_region_num, 2 12762c_ftl_nand_l2pmap_ram_region_num: 12763 .zero 2 12764 .section .bss.c_ftl_nand_map_blks_per_plane,"aw",@nobits 12765 .align 1 12766 .set .LANCHOR29,. + 0 12767 .type c_ftl_nand_map_blks_per_plane, %object 12768 .size c_ftl_nand_map_blks_per_plane, 2 12769c_ftl_nand_map_blks_per_plane: 12770 .zero 2 12771 .section .bss.c_ftl_nand_map_region_num,"aw",@nobits 12772 .align 1 12773 .set .LANCHOR32,. + 0 12774 .type c_ftl_nand_map_region_num, %object 12775 .size c_ftl_nand_map_region_num, 2 12776c_ftl_nand_map_region_num: 12777 .zero 2 12778 .section .bss.c_ftl_nand_max_data_blks,"aw",@nobits 12779 .align 2 12780 .set .LANCHOR7,. + 0 12781 .type c_ftl_nand_max_data_blks, %object 12782 .size c_ftl_nand_max_data_blks, 4 12783c_ftl_nand_max_data_blks: 12784 .zero 4 12785 .section .bss.c_ftl_nand_max_map_blks,"aw",@nobits 12786 .align 2 12787 .set .LANCHOR30,. + 0 12788 .type c_ftl_nand_max_map_blks, %object 12789 .size c_ftl_nand_max_map_blks, 4 12790c_ftl_nand_max_map_blks: 12791 .zero 4 12792 .section .bss.c_ftl_nand_max_sys_blks,"aw",@nobits 12793 .align 2 12794 .set .LANCHOR4,. + 0 12795 .type c_ftl_nand_max_sys_blks, %object 12796 .size c_ftl_nand_max_sys_blks, 4 12797c_ftl_nand_max_sys_blks: 12798 .zero 4 12799 .section .bss.c_ftl_nand_max_vendor_blks,"aw",@nobits 12800 .align 1 12801 .set .LANCHOR27,. + 0 12802 .type c_ftl_nand_max_vendor_blks, %object 12803 .size c_ftl_nand_max_vendor_blks, 2 12804c_ftl_nand_max_vendor_blks: 12805 .zero 2 12806 .section .bss.c_ftl_nand_page_pre_blk,"aw",@nobits 12807 .align 1 12808 .set .LANCHOR19,. + 0 12809 .type c_ftl_nand_page_pre_blk, %object 12810 .size c_ftl_nand_page_pre_blk, 2 12811c_ftl_nand_page_pre_blk: 12812 .zero 2 12813 .section .bss.c_ftl_nand_page_pre_slc_blk,"aw",@nobits 12814 .align 1 12815 .set .LANCHOR20,. + 0 12816 .type c_ftl_nand_page_pre_slc_blk, %object 12817 .size c_ftl_nand_page_pre_slc_blk, 2 12818c_ftl_nand_page_pre_slc_blk: 12819 .zero 2 12820 .section .bss.c_ftl_nand_page_pre_super_blk,"aw",@nobits 12821 .align 1 12822 .set .LANCHOR21,. + 0 12823 .type c_ftl_nand_page_pre_super_blk, %object 12824 .size c_ftl_nand_page_pre_super_blk, 2 12825c_ftl_nand_page_pre_super_blk: 12826 .zero 2 12827 .section .bss.c_ftl_nand_planes_num,"aw",@nobits 12828 .align 1 12829 .set .LANCHOR3,. + 0 12830 .type c_ftl_nand_planes_num, %object 12831 .size c_ftl_nand_planes_num, 2 12832c_ftl_nand_planes_num: 12833 .zero 2 12834 .section .bss.c_ftl_nand_planes_per_die,"aw",@nobits 12835 .align 1 12836 .set .LANCHOR11,. + 0 12837 .type c_ftl_nand_planes_per_die, %object 12838 .size c_ftl_nand_planes_per_die, 2 12839c_ftl_nand_planes_per_die: 12840 .zero 2 12841 .section .bss.c_ftl_nand_reserved_blks,"aw",@nobits 12842 .align 1 12843 .set .LANCHOR25,. + 0 12844 .type c_ftl_nand_reserved_blks, %object 12845 .size c_ftl_nand_reserved_blks, 2 12846c_ftl_nand_reserved_blks: 12847 .zero 2 12848 .section .bss.c_ftl_nand_sec_pre_page,"aw",@nobits 12849 .align 1 12850 .set .LANCHOR12,. + 0 12851 .type c_ftl_nand_sec_pre_page, %object 12852 .size c_ftl_nand_sec_pre_page, 2 12853c_ftl_nand_sec_pre_page: 12854 .zero 2 12855 .section .bss.c_ftl_nand_sec_pre_page_shift,"aw",@nobits 12856 .align 1 12857 .set .LANCHOR22,. + 0 12858 .type c_ftl_nand_sec_pre_page_shift, %object 12859 .size c_ftl_nand_sec_pre_page_shift, 2 12860c_ftl_nand_sec_pre_page_shift: 12861 .zero 2 12862 .section .bss.c_ftl_nand_sys_blks_per_plane,"aw",@nobits 12863 .align 2 12864 .set .LANCHOR2,. + 0 12865 .type c_ftl_nand_sys_blks_per_plane, %object 12866 .size c_ftl_nand_sys_blks_per_plane, 4 12867c_ftl_nand_sys_blks_per_plane: 12868 .zero 4 12869 .section .bss.c_ftl_nand_totle_phy_blks,"aw",@nobits 12870 .align 2 12871 .set .LANCHOR8,. + 0 12872 .type c_ftl_nand_totle_phy_blks, %object 12873 .size c_ftl_nand_totle_phy_blks, 4 12874c_ftl_nand_totle_phy_blks: 12875 .zero 4 12876 .section .bss.c_ftl_nand_type,"aw",@nobits 12877 .align 1 12878 .set .LANCHOR9,. + 0 12879 .type c_ftl_nand_type, %object 12880 .size c_ftl_nand_type, 2 12881c_ftl_nand_type: 12882 .zero 2 12883 .section .bss.c_ftl_nand_vendor_region_num,"aw",@nobits 12884 .align 1 12885 .set .LANCHOR28,. + 0 12886 .type c_ftl_nand_vendor_region_num, %object 12887 .size c_ftl_nand_vendor_region_num, 2 12888c_ftl_nand_vendor_region_num: 12889 .zero 2 12890 .section .bss.c_ftl_vendor_part_size,"aw",@nobits 12891 .align 1 12892 .set .LANCHOR16,. + 0 12893 .type c_ftl_vendor_part_size, %object 12894 .size c_ftl_vendor_part_size, 2 12895c_ftl_vendor_part_size: 12896 .zero 2 12897 .section .bss.c_gc_page_buf_num,"aw",@nobits 12898 .align 2 12899 .set .LANCHOR94,. + 0 12900 .type c_gc_page_buf_num, %object 12901 .size c_gc_page_buf_num, 4 12902c_gc_page_buf_num: 12903 .zero 4 12904 .section .bss.c_mlc_erase_count_value,"aw",@nobits 12905 .align 1 12906 .set .LANCHOR14,. + 0 12907 .type c_mlc_erase_count_value, %object 12908 .size c_mlc_erase_count_value, 2 12909c_mlc_erase_count_value: 12910 .zero 2 12911 .section .bss.check_buf,"aw",@nobits 12912 .align 3 12913 .type check_buf, %object 12914 .size check_buf, 4096 12915check_buf: 12916 .zero 4096 12917 .section .bss.check_spare_buf,"aw",@nobits 12918 .align 3 12919 .set .LANCHOR110,. + 0 12920 .type check_spare_buf, %object 12921 .size check_spare_buf, 512 12922check_spare_buf: 12923 .zero 512 12924 .section .bss.check_vpc_table,"aw",@nobits 12925 .align 3 12926 .type check_vpc_table, %object 12927 .size check_vpc_table, 16384 12928check_vpc_table: 12929 .zero 16384 12930 .section .bss.ftl_gc_temp_power_lost_recovery_flag,"aw",@nobits 12931 .align 2 12932 .set .LANCHOR152,. + 0 12933 .type ftl_gc_temp_power_lost_recovery_flag, %object 12934 .size ftl_gc_temp_power_lost_recovery_flag, 4 12935ftl_gc_temp_power_lost_recovery_flag: 12936 .zero 4 12937 .section .bss.ftl_temp_buf,"aw",@nobits 12938 .align 3 12939 .type ftl_temp_buf, %object 12940 .size ftl_temp_buf, 4096 12941ftl_temp_buf: 12942 .zero 4096 12943 .section .bss.gBbtInfo,"aw",@nobits 12944 .align 3 12945 .set .LANCHOR37,. + 0 12946 .type gBbtInfo, %object 12947 .size gBbtInfo, 96 12948gBbtInfo: 12949 .zero 96 12950 .section .bss.gL2pMapInfo,"aw",@nobits 12951 .align 3 12952 .set .LANCHOR144,. + 0 12953 .type gL2pMapInfo, %object 12954 .size gL2pMapInfo, 64 12955gL2pMapInfo: 12956 .zero 64 12957 .section .bss.gSysFreeQueue,"aw",@nobits 12958 .align 3 12959 .set .LANCHOR38,. + 0 12960 .type gSysFreeQueue, %object 12961 .size gSysFreeQueue, 2056 12962gSysFreeQueue: 12963 .zero 2056 12964 .section .bss.gSysInfo,"aw",@nobits 12965 .align 3 12966 .set .LANCHOR79,. + 0 12967 .type gSysInfo, %object 12968 .size gSysInfo, 12 12969gSysInfo: 12970 .zero 12 12971 .section .bss.gVendorBlkInfo,"aw",@nobits 12972 .align 3 12973 .set .LANCHOR149,. + 0 12974 .type gVendorBlkInfo, %object 12975 .size gVendorBlkInfo, 64 12976gVendorBlkInfo: 12977 .zero 64 12978 .section .bss.g_GlobalDataVersion,"aw",@nobits 12979 .align 2 12980 .set .LANCHOR71,. + 0 12981 .type g_GlobalDataVersion, %object 12982 .size g_GlobalDataVersion, 4 12983g_GlobalDataVersion: 12984 .zero 4 12985 .section .bss.g_GlobalSysVersion,"aw",@nobits 12986 .align 2 12987 .set .LANCHOR70,. + 0 12988 .type g_GlobalSysVersion, %object 12989 .size g_GlobalSysVersion, 4 12990g_GlobalSysVersion: 12991 .zero 4 12992 .section .bss.g_MaxLbaSector,"aw",@nobits 12993 .align 2 12994 .set .LANCHOR34,. + 0 12995 .type g_MaxLbaSector, %object 12996 .size g_MaxLbaSector, 4 12997g_MaxLbaSector: 12998 .zero 4 12999 .section .bss.g_MaxLbn,"aw",@nobits 13000 .align 2 13001 .set .LANCHOR181,. + 0 13002 .type g_MaxLbn, %object 13003 .size g_MaxLbn, 4 13004g_MaxLbn: 13005 .zero 4 13006 .section .bss.g_MaxLpn,"aw",@nobits 13007 .align 2 13008 .set .LANCHOR61,. + 0 13009 .type g_MaxLpn, %object 13010 .size g_MaxLpn, 4 13011g_MaxLpn: 13012 .zero 4 13013 .section .bss.g_VaildLpn,"aw",@nobits 13014 .align 2 13015 .set .LANCHOR59,. + 0 13016 .type g_VaildLpn, %object 13017 .size g_VaildLpn, 4 13018g_VaildLpn: 13019 .zero 4 13020 .section .bss.g_active_superblock,"aw",@nobits 13021 .align 3 13022 .set .LANCHOR51,. + 0 13023 .type g_active_superblock, %object 13024 .size g_active_superblock, 48 13025g_active_superblock: 13026 .zero 48 13027 .section .bss.g_buffer_superblock,"aw",@nobits 13028 .align 3 13029 .set .LANCHOR52,. + 0 13030 .type g_buffer_superblock, %object 13031 .size g_buffer_superblock, 48 13032g_buffer_superblock: 13033 .zero 48 13034 .section .bss.g_cur_erase_blk,"aw",@nobits 13035 .align 2 13036 .set .LANCHOR112,. + 0 13037 .type g_cur_erase_blk, %object 13038 .size g_cur_erase_blk, 4 13039g_cur_erase_blk: 13040 .zero 4 13041 .section .bss.g_ect_tbl_info_size,"aw",@nobits 13042 .align 1 13043 .set .LANCHOR125,. + 0 13044 .type g_ect_tbl_info_size, %object 13045 .size g_ect_tbl_info_size, 2 13046g_ect_tbl_info_size: 13047 .zero 2 13048 .section .bss.g_ect_tbl_power_up_flush,"aw",@nobits 13049 .align 1 13050 .set .LANCHOR165,. + 0 13051 .type g_ect_tbl_power_up_flush, %object 13052 .size g_ect_tbl_power_up_flush, 2 13053g_ect_tbl_power_up_flush: 13054 .zero 2 13055 .section .bss.g_ftl_nand_free_count,"aw",@nobits 13056 .align 2 13057 .set .LANCHOR176,. + 0 13058 .type g_ftl_nand_free_count, %object 13059 .size g_ftl_nand_free_count, 4 13060g_ftl_nand_free_count: 13061 .zero 4 13062 .section .bss.g_gc_bad_block_gc_index,"aw",@nobits 13063 .align 1 13064 .set .LANCHOR103,. + 0 13065 .type g_gc_bad_block_gc_index, %object 13066 .size g_gc_bad_block_gc_index, 2 13067g_gc_bad_block_gc_index: 13068 .zero 2 13069 .section .bss.g_gc_bad_block_temp_num,"aw",@nobits 13070 .align 1 13071 .set .LANCHOR101,. + 0 13072 .type g_gc_bad_block_temp_num, %object 13073 .size g_gc_bad_block_temp_num, 2 13074g_gc_bad_block_temp_num: 13075 .zero 2 13076 .section .bss.g_gc_bad_block_temp_tbl,"aw",@nobits 13077 .align 3 13078 .set .LANCHOR102,. + 0 13079 .type g_gc_bad_block_temp_tbl, %object 13080 .size g_gc_bad_block_temp_tbl, 34 13081g_gc_bad_block_temp_tbl: 13082 .zero 34 13083 .section .bss.g_gc_blk_index,"aw",@nobits 13084 .align 1 13085 .set .LANCHOR85,. + 0 13086 .type g_gc_blk_index, %object 13087 .size g_gc_blk_index, 2 13088g_gc_blk_index: 13089 .zero 2 13090 .section .bss.g_gc_blk_num,"aw",@nobits 13091 .align 1 13092 .set .LANCHOR95,. + 0 13093 .type g_gc_blk_num, %object 13094 .size g_gc_blk_num, 2 13095g_gc_blk_num: 13096 .zero 2 13097 .section .bss.g_gc_cur_blk_max_valid_pages,"aw",@nobits 13098 .align 1 13099 .set .LANCHOR174,. + 0 13100 .type g_gc_cur_blk_max_valid_pages, %object 13101 .size g_gc_cur_blk_max_valid_pages, 2 13102g_gc_cur_blk_max_valid_pages: 13103 .zero 2 13104 .section .bss.g_gc_cur_blk_valid_pages,"aw",@nobits 13105 .align 1 13106 .set .LANCHOR173,. + 0 13107 .type g_gc_cur_blk_valid_pages, %object 13108 .size g_gc_cur_blk_valid_pages, 2 13109g_gc_cur_blk_valid_pages: 13110 .zero 2 13111 .section .bss.g_gc_free_blk_threshold,"aw",@nobits 13112 .align 1 13113 .set .LANCHOR82,. + 0 13114 .type g_gc_free_blk_threshold, %object 13115 .size g_gc_free_blk_threshold, 2 13116g_gc_free_blk_threshold: 13117 .zero 2 13118 .section .bss.g_gc_head_data_block,"aw",@nobits 13119 .align 2 13120 .set .LANCHOR118,. + 0 13121 .type g_gc_head_data_block, %object 13122 .size g_gc_head_data_block, 4 13123g_gc_head_data_block: 13124 .zero 4 13125 .section .bss.g_gc_head_data_block_count,"aw",@nobits 13126 .align 2 13127 .set .LANCHOR119,. + 0 13128 .type g_gc_head_data_block_count, %object 13129 .size g_gc_head_data_block_count, 4 13130g_gc_head_data_block_count: 13131 .zero 4 13132 .section .bss.g_gc_merge_free_blk_threshold,"aw",@nobits 13133 .align 1 13134 .set .LANCHOR83,. + 0 13135 .type g_gc_merge_free_blk_threshold, %object 13136 .size g_gc_merge_free_blk_threshold, 2 13137g_gc_merge_free_blk_threshold: 13138 .zero 2 13139 .section .bss.g_gc_next_blk,"aw",@nobits 13140 .align 1 13141 .set .LANCHOR99,. + 0 13142 .type g_gc_next_blk, %object 13143 .size g_gc_next_blk, 2 13144g_gc_next_blk: 13145 .zero 2 13146 .section .bss.g_gc_next_blk_1,"aw",@nobits 13147 .align 1 13148 .set .LANCHOR100,. + 0 13149 .type g_gc_next_blk_1, %object 13150 .size g_gc_next_blk_1, 2 13151g_gc_next_blk_1: 13152 .zero 2 13153 .section .bss.g_gc_num_req,"aw",@nobits 13154 .align 2 13155 .set .LANCHOR89,. + 0 13156 .type g_gc_num_req, %object 13157 .size g_gc_num_req, 4 13158g_gc_num_req: 13159 .zero 4 13160 .section .bss.g_gc_page_offset,"aw",@nobits 13161 .align 1 13162 .set .LANCHOR97,. + 0 13163 .type g_gc_page_offset, %object 13164 .size g_gc_page_offset, 2 13165g_gc_page_offset: 13166 .zero 2 13167 .section .bss.g_gc_skip_write_count,"aw",@nobits 13168 .align 2 13169 .set .LANCHOR84,. + 0 13170 .type g_gc_skip_write_count, %object 13171 .size g_gc_skip_write_count, 4 13172g_gc_skip_write_count: 13173 .zero 4 13174 .section .bss.g_gc_superblock,"aw",@nobits 13175 .align 3 13176 .set .LANCHOR80,. + 0 13177 .type g_gc_superblock, %object 13178 .size g_gc_superblock, 48 13179g_gc_superblock: 13180 .zero 48 13181 .section .bss.g_gc_temp_superblock,"aw",@nobits 13182 .align 3 13183 .set .LANCHOR53,. + 0 13184 .type g_gc_temp_superblock, %object 13185 .size g_gc_temp_superblock, 48 13186g_gc_temp_superblock: 13187 .zero 48 13188 .section .bss.g_in_gc_progress,"aw",@nobits 13189 .align 2 13190 .set .LANCHOR117,. + 0 13191 .type g_in_gc_progress, %object 13192 .size g_in_gc_progress, 4 13193g_in_gc_progress: 13194 .zero 4 13195 .section .bss.g_in_swl_replace,"aw",@nobits 13196 .align 2 13197 .set .LANCHOR87,. + 0 13198 .type g_in_swl_replace, %object 13199 .size g_in_swl_replace, 4 13200g_in_swl_replace: 13201 .zero 4 13202 .section .bss.g_l2p_last_update_region_id,"aw",@nobits 13203 .align 1 13204 .set .LANCHOR56,. + 0 13205 .type g_l2p_last_update_region_id, %object 13206 .size g_l2p_last_update_region_id, 2 13207g_l2p_last_update_region_id: 13208 .zero 2 13209 .section .bss.g_max_erase_count,"aw",@nobits 13210 .align 2 13211 .set .LANCHOR76,. + 0 13212 .type g_max_erase_count, %object 13213 .size g_max_erase_count, 4 13214g_max_erase_count: 13215 .zero 4 13216 .section .bss.g_min_erase_count,"aw",@nobits 13217 .align 2 13218 .set .LANCHOR77,. + 0 13219 .type g_min_erase_count, %object 13220 .size g_min_erase_count, 4 13221g_min_erase_count: 13222 .zero 4 13223 .section .bss.g_nand_ops,"aw",@nobits 13224 .align 3 13225 .set .LANCHOR105,. + 0 13226 .type g_nand_ops, %object 13227 .size g_nand_ops, 32 13228g_nand_ops: 13229 .zero 32 13230 .section .bss.g_nand_phy_info,"aw",@nobits 13231 .align 3 13232 .set .LANCHOR0,. + 0 13233 .type g_nand_phy_info, %object 13234 .size g_nand_phy_info, 24 13235g_nand_phy_info: 13236 .zero 24 13237 .section .bss.g_num_data_superblocks,"aw",@nobits 13238 .align 1 13239 .set .LANCHOR45,. + 0 13240 .type g_num_data_superblocks, %object 13241 .size g_num_data_superblocks, 2 13242g_num_data_superblocks: 13243 .zero 2 13244 .section .bss.g_num_free_superblocks,"aw",@nobits 13245 .align 1 13246 .set .LANCHOR48,. + 0 13247 .type g_num_free_superblocks, %object 13248 .size g_num_free_superblocks, 2 13249g_num_free_superblocks: 13250 .zero 2 13251 .section .bss.g_power_lost_recovery_flag,"aw",@nobits 13252 .align 1 13253 .set .LANCHOR161,. + 0 13254 .type g_power_lost_recovery_flag, %object 13255 .size g_power_lost_recovery_flag, 2 13256g_power_lost_recovery_flag: 13257 .zero 2 13258 .section .bss.g_recovery_page_min_ver,"aw",@nobits 13259 .align 2 13260 .set .LANCHOR153,. + 0 13261 .type g_recovery_page_min_ver, %object 13262 .size g_recovery_page_min_ver, 4 13263g_recovery_page_min_ver: 13264 .zero 4 13265 .section .bss.g_recovery_page_num,"aw",@nobits 13266 .align 2 13267 .set .LANCHOR162,. + 0 13268 .type g_recovery_page_num, %object 13269 .size g_recovery_page_num, 4 13270g_recovery_page_num: 13271 .zero 4 13272 .section .bss.g_recovery_ppa_tbl,"aw",@nobits 13273 .align 3 13274 .set .LANCHOR163,. + 0 13275 .type g_recovery_ppa_tbl, %object 13276 .size g_recovery_ppa_tbl, 128 13277g_recovery_ppa_tbl: 13278 .zero 128 13279 .section .bss.g_sys_ext_data,"aw",@nobits 13280 .align 3 13281 .set .LANCHOR81,. + 0 13282 .type g_sys_ext_data, %object 13283 .size g_sys_ext_data, 512 13284g_sys_ext_data: 13285 .zero 512 13286 .section .bss.g_sys_save_data,"aw",@nobits 13287 .align 3 13288 .set .LANCHOR39,. + 0 13289 .type g_sys_save_data, %object 13290 .size g_sys_save_data, 48 13291g_sys_save_data: 13292 .zero 48 13293 .section .bss.g_tmp_data_superblock_id,"aw",@nobits 13294 .align 1 13295 .set .LANCHOR150,. + 0 13296 .type g_tmp_data_superblock_id, %object 13297 .size g_tmp_data_superblock_id, 2 13298g_tmp_data_superblock_id: 13299 .zero 2 13300 .section .bss.g_totle_avg_erase_count,"aw",@nobits 13301 .align 2 13302 .set .LANCHOR74,. + 0 13303 .type g_totle_avg_erase_count, %object 13304 .size g_totle_avg_erase_count, 4 13305g_totle_avg_erase_count: 13306 .zero 4 13307 .section .bss.g_totle_cache_write_count,"aw",@nobits 13308 .align 2 13309 .set .LANCHOR65,. + 0 13310 .type g_totle_cache_write_count, %object 13311 .size g_totle_cache_write_count, 4 13312g_totle_cache_write_count: 13313 .zero 4 13314 .section .bss.g_totle_discard_page_count,"aw",@nobits 13315 .align 2 13316 .set .LANCHOR63,. + 0 13317 .type g_totle_discard_page_count, %object 13318 .size g_totle_discard_page_count, 4 13319g_totle_discard_page_count: 13320 .zero 4 13321 .section .bss.g_totle_gc_page_count,"aw",@nobits 13322 .align 2 13323 .set .LANCHOR67,. + 0 13324 .type g_totle_gc_page_count, %object 13325 .size g_totle_gc_page_count, 4 13326g_totle_gc_page_count: 13327 .zero 4 13328 .section .bss.g_totle_l2p_write_count,"aw",@nobits 13329 .align 2 13330 .set .LANCHOR66,. + 0 13331 .type g_totle_l2p_write_count, %object 13332 .size g_totle_l2p_write_count, 4 13333g_totle_l2p_write_count: 13334 .zero 4 13335 .section .bss.g_totle_map_block,"aw",@nobits 13336 .align 1 13337 .set .LANCHOR147,. + 0 13338 .type g_totle_map_block, %object 13339 .size g_totle_map_block, 2 13340g_totle_map_block: 13341 .zero 2 13342 .section .bss.g_totle_mlc_erase_count,"aw",@nobits 13343 .align 2 13344 .set .LANCHOR72,. + 0 13345 .type g_totle_mlc_erase_count, %object 13346 .size g_totle_mlc_erase_count, 4 13347g_totle_mlc_erase_count: 13348 .zero 4 13349 .section .bss.g_totle_read_page_count,"aw",@nobits 13350 .align 2 13351 .set .LANCHOR62,. + 0 13352 .type g_totle_read_page_count, %object 13353 .size g_totle_read_page_count, 4 13354g_totle_read_page_count: 13355 .zero 4 13356 .section .bss.g_totle_read_sector,"aw",@nobits 13357 .align 2 13358 .set .LANCHOR69,. + 0 13359 .type g_totle_read_sector, %object 13360 .size g_totle_read_sector, 4 13361g_totle_read_sector: 13362 .zero 4 13363 .section .bss.g_totle_slc_erase_count,"aw",@nobits 13364 .align 2 13365 .set .LANCHOR73,. + 0 13366 .type g_totle_slc_erase_count, %object 13367 .size g_totle_slc_erase_count, 4 13368g_totle_slc_erase_count: 13369 .zero 4 13370 .section .bss.g_totle_swl_count,"aw",@nobits 13371 .align 2 13372 .set .LANCHOR151,. + 0 13373 .type g_totle_swl_count, %object 13374 .size g_totle_swl_count, 4 13375g_totle_swl_count: 13376 .zero 4 13377 .section .bss.g_totle_sys_slc_erase_count,"aw",@nobits 13378 .align 2 13379 .set .LANCHOR75,. + 0 13380 .type g_totle_sys_slc_erase_count, %object 13381 .size g_totle_sys_slc_erase_count, 4 13382g_totle_sys_slc_erase_count: 13383 .zero 4 13384 .section .bss.g_totle_vendor_block,"aw",@nobits 13385 .align 1 13386 .set .LANCHOR35,. + 0 13387 .type g_totle_vendor_block, %object 13388 .size g_totle_vendor_block, 2 13389g_totle_vendor_block: 13390 .zero 2 13391 .section .bss.g_totle_write_page_count,"aw",@nobits 13392 .align 2 13393 .set .LANCHOR64,. + 0 13394 .type g_totle_write_page_count, %object 13395 .size g_totle_write_page_count, 4 13396g_totle_write_page_count: 13397 .zero 4 13398 .section .bss.g_totle_write_sector,"aw",@nobits 13399 .align 2 13400 .set .LANCHOR68,. + 0 13401 .type g_totle_write_sector, %object 13402 .size g_totle_write_sector, 4 13403g_totle_write_sector: 13404 .zero 4 13405 .section .bss.gc_discard_updated,"aw",@nobits 13406 .align 2 13407 .set .LANCHOR167,. + 0 13408 .type gc_discard_updated, %object 13409 .size gc_discard_updated, 4 13410gc_discard_updated: 13411 .zero 4 13412 .section .bss.gc_ink_free_return_value,"aw",@nobits 13413 .align 1 13414 .set .LANCHOR172,. + 0 13415 .type gc_ink_free_return_value, %object 13416 .size gc_ink_free_return_value, 2 13417gc_ink_free_return_value: 13418 .zero 2 13419 .section .bss.gp_ect_tbl_info,"aw",@nobits 13420 .align 3 13421 .set .LANCHOR127,. + 0 13422 .type gp_ect_tbl_info, %object 13423 .size gp_ect_tbl_info, 8 13424gp_ect_tbl_info: 13425 .zero 8 13426 .section .bss.gp_flash_check_buf,"aw",@nobits 13427 .align 3 13428 .type gp_flash_check_buf, %object 13429 .size gp_flash_check_buf, 262144 13430gp_flash_check_buf: 13431 .zero 262144 13432 .section .bss.gp_gc_page_buf_info,"aw",@nobits 13433 .align 3 13434 .set .LANCHOR90,. + 0 13435 .type gp_gc_page_buf_info, %object 13436 .size gp_gc_page_buf_info, 8 13437gp_gc_page_buf_info: 13438 .zero 8 13439 .section .bss.gp_last_act_superblock,"aw",@nobits 13440 .align 3 13441 .type gp_last_act_superblock, %object 13442 .size gp_last_act_superblock, 8 13443gp_last_act_superblock: 13444 .zero 8 13445 .section .bss.idb_buf,"aw",@nobits 13446 .align 3 13447 .type idb_buf, %object 13448 .size idb_buf, 262144 13449idb_buf: 13450 .zero 262144 13451 .section .bss.idb_need_write_back,"aw",@nobits 13452 .align 2 13453 .set .LANCHOR179,. + 0 13454 .type idb_need_write_back, %object 13455 .size idb_need_write_back, 4 13456idb_need_write_back: 13457 .zero 4 13458 .section .bss.p_blk_mode_table,"aw",@nobits 13459 .align 3 13460 .set .LANCHOR1,. + 0 13461 .type p_blk_mode_table, %object 13462 .size p_blk_mode_table, 8 13463p_blk_mode_table: 13464 .zero 8 13465 .section .bss.p_data_block_list_head,"aw",@nobits 13466 .align 3 13467 .set .LANCHOR41,. + 0 13468 .type p_data_block_list_head, %object 13469 .size p_data_block_list_head, 8 13470p_data_block_list_head: 13471 .zero 8 13472 .section .bss.p_data_block_list_table,"aw",@nobits 13473 .align 3 13474 .set .LANCHOR40,. + 0 13475 .type p_data_block_list_table, %object 13476 .size p_data_block_list_table, 8 13477p_data_block_list_table: 13478 .zero 8 13479 .section .bss.p_data_block_list_tail,"aw",@nobits 13480 .align 3 13481 .set .LANCHOR44,. + 0 13482 .type p_data_block_list_tail, %object 13483 .size p_data_block_list_tail, 8 13484p_data_block_list_tail: 13485 .zero 8 13486 .section .bss.p_erase_count_table,"aw",@nobits 13487 .align 3 13488 .set .LANCHOR43,. + 0 13489 .type p_erase_count_table, %object 13490 .size p_erase_count_table, 8 13491p_erase_count_table: 13492 .zero 8 13493 .section .bss.p_free_data_block_list_head,"aw",@nobits 13494 .align 3 13495 .set .LANCHOR47,. + 0 13496 .type p_free_data_block_list_head, %object 13497 .size p_free_data_block_list_head, 8 13498p_free_data_block_list_head: 13499 .zero 8 13500 .section .bss.p_gc_blk_tbl,"aw",@nobits 13501 .align 3 13502 .set .LANCHOR96,. + 0 13503 .type p_gc_blk_tbl, %object 13504 .size p_gc_blk_tbl, 8 13505p_gc_blk_tbl: 13506 .zero 8 13507 .section .bss.p_gc_data_buf,"aw",@nobits 13508 .align 3 13509 .set .LANCHOR91,. + 0 13510 .type p_gc_data_buf, %object 13511 .size p_gc_data_buf, 8 13512p_gc_data_buf: 13513 .zero 8 13514 .section .bss.p_gc_page_info,"aw",@nobits 13515 .align 3 13516 .set .LANCHOR98,. + 0 13517 .type p_gc_page_info, %object 13518 .size p_gc_page_info, 8 13519p_gc_page_info: 13520 .zero 8 13521 .section .bss.p_gc_spare_buf,"aw",@nobits 13522 .align 3 13523 .set .LANCHOR92,. + 0 13524 .type p_gc_spare_buf, %object 13525 .size p_gc_spare_buf, 8 13526p_gc_spare_buf: 13527 .zero 8 13528 .section .bss.p_io_data_buf_0,"aw",@nobits 13529 .align 3 13530 .set .LANCHOR115,. + 0 13531 .type p_io_data_buf_0, %object 13532 .size p_io_data_buf_0, 8 13533p_io_data_buf_0: 13534 .zero 8 13535 .section .bss.p_io_data_buf_1,"aw",@nobits 13536 .align 3 13537 .set .LANCHOR113,. + 0 13538 .type p_io_data_buf_1, %object 13539 .size p_io_data_buf_1, 8 13540p_io_data_buf_1: 13541 .zero 8 13542 .section .bss.p_io_spare_buf,"aw",@nobits 13543 .align 3 13544 .set .LANCHOR114,. + 0 13545 .type p_io_spare_buf, %object 13546 .size p_io_spare_buf, 8 13547p_io_spare_buf: 13548 .zero 8 13549 .section .bss.p_l2p_map_buf,"aw",@nobits 13550 .align 3 13551 .set .LANCHOR136,. + 0 13552 .type p_l2p_map_buf, %object 13553 .size p_l2p_map_buf, 8 13554p_l2p_map_buf: 13555 .zero 8 13556 .section .bss.p_l2p_ram_map,"aw",@nobits 13557 .align 3 13558 .set .LANCHOR55,. + 0 13559 .type p_l2p_ram_map, %object 13560 .size p_l2p_ram_map, 8 13561p_l2p_ram_map: 13562 .zero 8 13563 .section .bss.p_map_block_table,"aw",@nobits 13564 .align 3 13565 .set .LANCHOR129,. + 0 13566 .type p_map_block_table, %object 13567 .size p_map_block_table, 8 13568p_map_block_table: 13569 .zero 8 13570 .section .bss.p_map_block_valid_page_count,"aw",@nobits 13571 .align 3 13572 .set .LANCHOR130,. + 0 13573 .type p_map_block_valid_page_count, %object 13574 .size p_map_block_valid_page_count, 8 13575p_map_block_valid_page_count: 13576 .zero 8 13577 .section .bss.p_map_block_ver_table,"aw",@nobits 13578 .align 3 13579 .set .LANCHOR135,. + 0 13580 .type p_map_block_ver_table, %object 13581 .size p_map_block_ver_table, 8 13582p_map_block_ver_table: 13583 .zero 8 13584 .section .bss.p_map_region_ppn_table,"aw",@nobits 13585 .align 3 13586 .set .LANCHOR134,. + 0 13587 .type p_map_region_ppn_table, %object 13588 .size p_map_region_ppn_table, 8 13589p_map_region_ppn_table: 13590 .zero 8 13591 .section .bss.p_plane_order_table,"aw",@nobits 13592 .align 3 13593 .set .LANCHOR13,. + 0 13594 .type p_plane_order_table, %object 13595 .size p_plane_order_table, 32 13596p_plane_order_table: 13597 .zero 32 13598 .section .bss.p_swl_mul_table,"aw",@nobits 13599 .align 3 13600 .set .LANCHOR126,. + 0 13601 .type p_swl_mul_table, %object 13602 .size p_swl_mul_table, 8 13603p_swl_mul_table: 13604 .zero 8 13605 .section .bss.p_sys_data_buf,"aw",@nobits 13606 .align 3 13607 .set .LANCHOR107,. + 0 13608 .type p_sys_data_buf, %object 13609 .size p_sys_data_buf, 8 13610p_sys_data_buf: 13611 .zero 8 13612 .section .bss.p_sys_data_buf_1,"aw",@nobits 13613 .align 3 13614 .set .LANCHOR123,. + 0 13615 .type p_sys_data_buf_1, %object 13616 .size p_sys_data_buf_1, 8 13617p_sys_data_buf_1: 13618 .zero 8 13619 .section .bss.p_sys_spare_buf,"aw",@nobits 13620 .align 3 13621 .set .LANCHOR108,. + 0 13622 .type p_sys_spare_buf, %object 13623 .size p_sys_spare_buf, 8 13624p_sys_spare_buf: 13625 .zero 8 13626 .section .bss.p_valid_page_count_check_table,"aw",@nobits 13627 .align 3 13628 .set .LANCHOR128,. + 0 13629 .type p_valid_page_count_check_table, %object 13630 .size p_valid_page_count_check_table, 8 13631p_valid_page_count_check_table: 13632 .zero 8 13633 .section .bss.p_valid_page_count_table,"aw",@nobits 13634 .align 3 13635 .set .LANCHOR42,. + 0 13636 .type p_valid_page_count_table, %object 13637 .size p_valid_page_count_table, 8 13638p_valid_page_count_table: 13639 .zero 8 13640 .section .bss.p_vendor_block_table,"aw",@nobits 13641 .align 3 13642 .set .LANCHOR36,. + 0 13643 .type p_vendor_block_table, %object 13644 .size p_vendor_block_table, 8 13645p_vendor_block_table: 13646 .zero 8 13647 .section .bss.p_vendor_block_valid_page_count,"aw",@nobits 13648 .align 3 13649 .set .LANCHOR131,. + 0 13650 .type p_vendor_block_valid_page_count, %object 13651 .size p_vendor_block_valid_page_count, 8 13652p_vendor_block_valid_page_count: 13653 .zero 8 13654 .section .bss.p_vendor_block_ver_table,"aw",@nobits 13655 .align 3 13656 .set .LANCHOR132,. + 0 13657 .type p_vendor_block_ver_table, %object 13658 .size p_vendor_block_ver_table, 8 13659p_vendor_block_ver_table: 13660 .zero 8 13661 .section .bss.p_vendor_data_buf,"aw",@nobits 13662 .align 3 13663 .set .LANCHOR124,. + 0 13664 .type p_vendor_data_buf, %object 13665 .size p_vendor_data_buf, 8 13666p_vendor_data_buf: 13667 .zero 8 13668 .section .bss.p_vendor_region_ppn_table,"aw",@nobits 13669 .align 3 13670 .set .LANCHOR133,. + 0 13671 .type p_vendor_region_ppn_table, %object 13672 .size p_vendor_region_ppn_table, 8 13673p_vendor_region_ppn_table: 13674 .zero 8 13675 .section .bss.req_erase,"aw",@nobits 13676 .align 3 13677 .set .LANCHOR111,. + 0 13678 .type req_erase, %object 13679 .size req_erase, 8 13680req_erase: 13681 .zero 8 13682 .section .bss.req_gc,"aw",@nobits 13683 .align 3 13684 .set .LANCHOR93,. + 0 13685 .type req_gc, %object 13686 .size req_gc, 8 13687req_gc: 13688 .zero 8 13689 .section .bss.req_gc_dst,"aw",@nobits 13690 .align 3 13691 .set .LANCHOR121,. + 0 13692 .type req_gc_dst, %object 13693 .size req_gc_dst, 8 13694req_gc_dst: 13695 .zero 8 13696 .section .bss.req_prgm,"aw",@nobits 13697 .align 3 13698 .set .LANCHOR122,. + 0 13699 .type req_prgm, %object 13700 .size req_prgm, 8 13701req_prgm: 13702 .zero 8 13703 .section .bss.req_read,"aw",@nobits 13704 .align 3 13705 .set .LANCHOR120,. + 0 13706 .type req_read, %object 13707 .size req_read, 8 13708req_read: 13709 .zero 8 13710 .section .bss.req_sys,"aw",@nobits 13711 .align 3 13712 .set .LANCHOR106,. + 0 13713 .type req_sys, %object 13714 .size req_sys, 32 13715req_sys: 13716 .zero 32 13717 .section .data.ftl_gc_temp_block_bops_scan_page_addr,"aw",@progbits 13718 .align 1 13719 .set .LANCHOR156,. + 0 13720 .type ftl_gc_temp_block_bops_scan_page_addr, %object 13721 .size ftl_gc_temp_block_bops_scan_page_addr, 2 13722ftl_gc_temp_block_bops_scan_page_addr: 13723 .hword -1 13724 .section .data.gFtlInitStatus,"aw",@progbits 13725 .align 2 13726 .set .LANCHOR86,. + 0 13727 .type gFtlInitStatus, %object 13728 .size gFtlInitStatus, 4 13729gFtlInitStatus: 13730 .word -1 13731 .section .data.power_up_flag,"aw",@progbits 13732 .align 2 13733 .set .LANCHOR177,. + 0 13734 .type power_up_flag, %object 13735 .size power_up_flag, 4 13736power_up_flag: 13737 .word 1 13738 .section .rodata.FlashProgPages.str1.1,"aMS",@progbits,1 13739.LC79: 13740 .string "prog read error: = %x\n" 13741.LC80: 13742 .string "prog read s error: = %x %x %x\n" 13743.LC81: 13744 .string "prog read d error: = %x %x %x\n" 13745 .section .rodata.FtlBbmMapBadBlock.str1.1,"aMS",@progbits,1 13746.LC0: 13747 .string "phyBlk = 0x%x die = %d block_in_die = 0x%x 0x%8x\n" 13748 .section .rodata.FtlBbmTblFlush.str1.1,"aMS",@progbits,1 13749.LC97: 13750 .string "FtlBbmTblFlush id=%x,page=%x,previd=%x cnt=%d\n" 13751.LC98: 13752 .string "FtlBbmTblFlush error:%x\n" 13753.LC99: 13754 .string "FtlBbmTblFlush error = %x error count = %d\n" 13755 .section .rodata.FtlFreeSysBlkQueueOut.str1.1,"aMS",@progbits,1 13756.LC82: 13757 .string "FtlFreeSysBlkQueueOut free count = %d\n" 13758.LC83: 13759 .string "FtlFreeSysBlkQueueOut = %x, free count = %d, error\n" 13760 .section .rodata.FtlGcFreeBadSuperBlk.str1.1,"aMS",@progbits,1 13761.LC100: 13762 .string "FtlGcFreeBadSuperBlk 0x%x\n" 13763 .section .rodata.FtlGcMarkBadPhyBlk.str1.1,"aMS",@progbits,1 13764.LC74: 13765 .string "FtlGcMarkBadPhyBlk %d 0x%x\n" 13766 .section .rodata.FtlGcRefreshBlock.str1.1,"aMS",@progbits,1 13767.LC73: 13768 .string "FtlGcRefreshBlock 0x%x\n" 13769 .section .rodata.FtlLoadEctTbl.str1.1,"aMS",@progbits,1 13770.LC103: 13771 .string "no ect" 13772 .section .rodata.FtlMapWritePage.str1.1,"aMS",@progbits,1 13773.LC89: 13774 .string "FtlMapWritePage error = %x \n" 13775.LC90: 13776 .string "FtlMapWritePage error = %x error count = %d\n" 13777 .section .rodata.FtlMemInit.str1.1,"aMS",@progbits,1 13778.LC85: 13779 .string "%s error allocating memory. return -1\n" 13780 .section .rodata.FtlPrintInfo2buf.str1.1,"aMS",@progbits,1 13781.LC2: 13782 .string "FLASH INFO:\n" 13783.LC3: 13784 .string "Device Capacity: %d MB\n" 13785.LC4: 13786 .string "FTL INFO:\n" 13787.LC5: 13788 .string "g_MaxLpn = 0x%x\n" 13789.LC6: 13790 .string "g_VaildLpn = 0x%x\n" 13791.LC7: 13792 .string "read_page_count = 0x%x\n" 13793.LC8: 13794 .string "discard_page_count = 0x%x\n" 13795.LC9: 13796 .string "write_page_count = 0x%x\n" 13797.LC10: 13798 .string "cache_write_count = 0x%x\n" 13799.LC11: 13800 .string "l2p_write_count = 0x%x\n" 13801.LC12: 13802 .string "gc_page_count = 0x%x\n" 13803.LC13: 13804 .string "totle_write = %d MB\n" 13805.LC14: 13806 .string "totle_read = %d MB\n" 13807.LC15: 13808 .string "GSV = 0x%x\n" 13809.LC16: 13810 .string "GDV = 0x%x\n" 13811.LC17: 13812 .string "bad blk num = %d\n" 13813.LC18: 13814 .string "free_superblocks = 0x%x\n" 13815.LC19: 13816 .string "mlc_EC = 0x%x\n" 13817.LC20: 13818 .string "slc_EC = 0x%x\n" 13819.LC21: 13820 .string "avg_EC = 0x%x\n" 13821.LC22: 13822 .string "sys_EC = 0x%x\n" 13823.LC23: 13824 .string "max_EC = 0x%x\n" 13825.LC24: 13826 .string "min_EC = 0x%x\n" 13827.LC25: 13828 .string "PLT = 0x%x\n" 13829.LC26: 13830 .string "POT = 0x%x\n" 13831.LC27: 13832 .string "MaxSector = 0x%x\n" 13833.LC28: 13834 .string "init_sys_blks_pp = 0x%x\n" 13835.LC29: 13836 .string "sys_blks_pp = 0x%x\n" 13837.LC30: 13838 .string "free sysblock = 0x%x\n" 13839.LC31: 13840 .string "data_blks_pp = 0x%x\n" 13841.LC32: 13842 .string "data_op_blks_pp = 0x%x\n" 13843.LC33: 13844 .string "max_data_blks = 0x%x\n" 13845.LC34: 13846 .string "Sys.id = 0x%x\n" 13847.LC35: 13848 .string "Bbt.id = 0x%x\n" 13849.LC36: 13850 .string "ACT.page = 0x%x\n" 13851.LC37: 13852 .string "ACT.plane = 0x%x\n" 13853.LC38: 13854 .string "ACT.id = 0x%x\n" 13855.LC39: 13856 .string "ACT.mode = 0x%x\n" 13857.LC40: 13858 .string "ACT.a_pages = 0x%x\n" 13859.LC41: 13860 .string "ACT VPC = 0x%x\n" 13861.LC42: 13862 .string "BUF.page = 0x%x\n" 13863.LC43: 13864 .string "BUF.plane = 0x%x\n" 13865.LC44: 13866 .string "BUF.id = 0x%x\n" 13867.LC45: 13868 .string "BUF.mode = 0x%x\n" 13869.LC46: 13870 .string "BUF.a_pages = 0x%x\n" 13871.LC47: 13872 .string "BUF VPC = 0x%x\n" 13873.LC48: 13874 .string "TMP.page = 0x%x\n" 13875.LC49: 13876 .string "TMP.plane = 0x%x\n" 13877.LC50: 13878 .string "TMP.id = 0x%x\n" 13879.LC51: 13880 .string "TMP.mode = 0x%x\n" 13881.LC52: 13882 .string "TMP.a_pages = 0x%x\n" 13883.LC53: 13884 .string "GC.page = 0x%x\n" 13885.LC54: 13886 .string "GC.plane = 0x%x\n" 13887.LC55: 13888 .string "GC.id = 0x%x\n" 13889.LC56: 13890 .string "GC.mode = 0x%x\n" 13891.LC57: 13892 .string "GC.a_pages = 0x%x\n" 13893.LC58: 13894 .string "WR_CHK = %x %x %x\n" 13895.LC59: 13896 .string "Read Err Cnt = 0x%x\n" 13897.LC60: 13898 .string "Prog Err Cnt = 0x%x\n" 13899.LC61: 13900 .string "gc_free_blk_th= 0x%x\n" 13901.LC62: 13902 .string "gc_merge_free_blk_th= 0x%x\n" 13903.LC63: 13904 .string "gc_skip_write_count= 0x%x\n" 13905.LC64: 13906 .string "gc_blk_index= 0x%x\n" 13907.LC65: 13908 .string "free min EC= 0x%x\n" 13909.LC66: 13910 .string "free max EC= 0x%x\n" 13911.LC67: 13912 .string "GC__SB VPC = 0x%x\n" 13913.LC68: 13914 .string "%d. [0x%x]=0x%x 0x%x 0x%x\n" 13915.LC69: 13916 .string "free %d. [0x%x] 0x%x 0x%x\n" 13917 .section .rodata.FtlProgPages.str1.1,"aMS",@progbits,1 13918.LC106: 13919 .string "Ftlwrite decrement_vpc_count %x = %d\n" 13920 .section .rodata.FtlRecoverySuperblock.str1.1,"aMS",@progbits,1 13921.LC102: 13922 .string "spuer block %x vpn is 0\n " 13923 .section .rodata.FtlVpcCheckAndModify.str1.1,"aMS",@progbits,1 13924.LC105: 13925 .string "FtlCheckVpc %x = %x %x\n" 13926 .section .rodata.FtlVpcTblFlush.str1.1,"aMS",@progbits,1 13927.LC104: 13928 .string "FtlVpcTblFlush error = %x error count = %d\n" 13929 .section .rodata.FtlWrite.str1.1,"aMS",@progbits,1 13930.LC108: 13931 .string "FtlWrite: lpa error:%x %x\n" 13932 .section .rodata.GetSwlReplaceBlock.str1.1,"aMS",@progbits,1 13933.LC72: 13934 .string "swblk %x ,avg = %x max= %x vpc= %x,ec=%x ,max ec=%x\n" 13935 .section .rodata.INSERT_DATA_LIST.str1.1,"aMS",@progbits,1 13936.LC1: 13937 .string "\n!!!!! error @ func:%s - line:%d\n" 13938 .section .rodata.__func__.6109,"a",@progbits 13939 .align 3 13940 .set .LANCHOR138,. + 0 13941 .type __func__.6109, %object 13942 .size __func__.6109, 11 13943__func__.6109: 13944 .string "FtlMemInit" 13945 .section .rodata.__func__.6233,"a",@progbits 13946 .align 3 13947 .set .LANCHOR170,. + 0 13948 .type __func__.6233, %object 13949 .size __func__.6233, 13 13950__func__.6233: 13951 .string "FtlProgPages" 13952 .section .rodata.__func__.6261,"a",@progbits 13953 .align 3 13954 .set .LANCHOR178,. + 0 13955 .type __func__.6261, %object 13956 .size __func__.6261, 9 13957__func__.6261: 13958 .string "FtlWrite" 13959 .section .rodata.__func__.6407,"a",@progbits 13960 .align 3 13961 .set .LANCHOR139,. + 0 13962 .type __func__.6407, %object 13963 .size __func__.6407, 14 13964__func__.6407: 13965 .string "FtlBbt2Bitmap" 13966 .section .rodata.__func__.6450,"a",@progbits 13967 .align 3 13968 .set .LANCHOR164,. + 0 13969 .type __func__.6450, %object 13970 .size __func__.6450, 11 13971__func__.6450: 13972 .string "FtlLoadBbt" 13973 .section .rodata.__func__.6567,"a",@progbits 13974 .align 3 13975 .set .LANCHOR49,. + 0 13976 .type __func__.6567, %object 13977 .size __func__.6567, 17 13978__func__.6567: 13979 .string "INSERT_FREE_LIST" 13980 .section .rodata.__func__.6572,"a",@progbits 13981 .align 3 13982 .set .LANCHOR46,. + 0 13983 .type __func__.6572, %object 13984 .size __func__.6572, 17 13985__func__.6572: 13986 .string "INSERT_DATA_LIST" 13987 .section .rodata.__func__.6603,"a",@progbits 13988 .align 3 13989 .set .LANCHOR50,. + 0 13990 .type __func__.6603, %object 13991 .size __func__.6603, 17 13992__func__.6603: 13993 .string "List_remove_node" 13994 .section .rodata.__func__.6635,"a",@progbits 13995 .align 3 13996 .set .LANCHOR54,. + 0 13997 .type __func__.6635, %object 13998 .size __func__.6635, 22 13999__func__.6635: 14000 .string "List_update_data_list" 14001 .section .rodata.__func__.6644,"a",@progbits 14002 .align 3 14003 .set .LANCHOR140,. + 0 14004 .type __func__.6644, %object 14005 .size __func__.6644, 16 14006__func__.6644: 14007 .string "load_l2p_region" 14008 .section .rodata.__func__.6677,"a",@progbits 14009 .align 3 14010 .set .LANCHOR116,. + 0 14011 .type __func__.6677, %object 14012 .size __func__.6677, 26 14013__func__.6677: 14014 .string "ftl_map_blk_alloc_new_blk" 14015 .section .rodata.__func__.6688,"a",@progbits 14016 .align 3 14017 .set .LANCHOR143,. + 0 14018 .type __func__.6688, %object 14019 .size __func__.6688, 15 14020__func__.6688: 14021 .string "ftl_map_blk_gc" 14022 .section .rodata.__func__.6702,"a",@progbits 14023 .align 3 14024 .set .LANCHOR141,. + 0 14025 .type __func__.6702, %object 14026 .size __func__.6702, 31 14027__func__.6702: 14028 .string "Ftl_write_map_blk_to_last_page" 14029 .section .rodata.__func__.6716,"a",@progbits 14030 .align 3 14031 .set .LANCHOR142,. + 0 14032 .type __func__.6716, %object 14033 .size __func__.6716, 16 14034__func__.6716: 14035 .string "FtlMapWritePage" 14036 .section .rodata.__func__.6741,"a",@progbits 14037 .align 3 14038 .set .LANCHOR57,. + 0 14039 .type __func__.6741, %object 14040 .size __func__.6741, 22 14041__func__.6741: 14042 .string "select_l2p_ram_region" 14043 .section .rodata.__func__.6758,"a",@progbits 14044 .align 3 14045 .set .LANCHOR145,. + 0 14046 .type __func__.6758, %object 14047 .size __func__.6758, 9 14048__func__.6758: 14049 .string "log2phys" 14050 .section .rodata.__func__.6831,"a",@progbits 14051 .align 3 14052 .set .LANCHOR166,. + 0 14053 .type __func__.6831, %object 14054 .size __func__.6831, 15 14055__func__.6831: 14056 .string "FtlVpcTblFlush" 14057 .section .rodata.__func__.6853,"a",@progbits 14058 .align 3 14059 .set .LANCHOR148,. + 0 14060 .type __func__.6853, %object 14061 .size __func__.6853, 14 14062__func__.6853: 14063 .string "FtlScanSysBlk" 14064 .section .rodata.__func__.6910,"a",@progbits 14065 .align 3 14066 .set .LANCHOR180,. + 0 14067 .type __func__.6910, %object 14068 .size __func__.6910, 15 14069__func__.6910: 14070 .string "FtlLoadSysInfo" 14071 .section .rodata.__func__.6973,"a",@progbits 14072 .align 3 14073 .set .LANCHOR146,. + 0 14074 .type __func__.6973, %object 14075 .size __func__.6973, 16 14076__func__.6973: 14077 .string "FtlReUsePrevPpa" 14078 .section .rodata.__func__.7007,"a",@progbits 14079 .align 3 14080 .set .LANCHOR160,. + 0 14081 .type __func__.7007, %object 14082 .size __func__.7007, 22 14083__func__.7007: 14084 .string "FtlRecoverySuperblock" 14085 .section .rodata.__func__.7064,"a",@progbits 14086 .align 3 14087 .set .LANCHOR60,. + 0 14088 .type __func__.7064, %object 14089 .size __func__.7064, 16 14090__func__.7064: 14091 .string "make_superblock" 14092 .section .rodata.__func__.7085,"a",@progbits 14093 .align 3 14094 .set .LANCHOR154,. + 0 14095 .type __func__.7085, %object 14096 .size __func__.7085, 18 14097__func__.7085: 14098 .string "SupperBlkListInit" 14099 .section .rodata.__func__.7110,"a",@progbits 14100 .align 3 14101 .set .LANCHOR168,. + 0 14102 .type __func__.7110, %object 14103 .size __func__.7110, 21 14104__func__.7110: 14105 .string "FtlVpcCheckAndModify" 14106 .section .rodata.__func__.7126,"a",@progbits 14107 .align 3 14108 .set .LANCHOR155,. + 0 14109 .type __func__.7126, %object 14110 .size __func__.7126, 14 14111__func__.7126: 14112 .string "ftl_check_vpc" 14113 .section .rodata.__func__.7211,"a",@progbits 14114 .align 3 14115 .set .LANCHOR157,. + 0 14116 .type __func__.7211, %object 14117 .size __func__.7211, 25 14118__func__.7211: 14119 .string "allocate_data_superblock" 14120 .section .rodata.__func__.7232,"a",@progbits 14121 .align 3 14122 .set .LANCHOR169,. + 0 14123 .type __func__.7232, %object 14124 .size __func__.7232, 29 14125__func__.7232: 14126 .string "allocate_new_data_superblock" 14127 .section .rodata.__func__.7239,"a",@progbits 14128 .align 3 14129 .set .LANCHOR88,. + 0 14130 .type __func__.7239, %object 14131 .size __func__.7239, 19 14132__func__.7239: 14133 .string "get_new_active_ppa" 14134 .section .rodata.__func__.7252,"a",@progbits 14135 .align 3 14136 .set .LANCHOR158,. + 0 14137 .type __func__.7252, %object 14138 .size __func__.7252, 16 14139__func__.7252: 14140 .string "update_vpc_list" 14141 .section .rodata.__func__.7259,"a",@progbits 14142 .align 3 14143 .set .LANCHOR159,. + 0 14144 .type __func__.7259, %object 14145 .size __func__.7259, 20 14146__func__.7259: 14147 .string "decrement_vpc_count" 14148 .section .rodata.__func__.7329,"a",@progbits 14149 .align 3 14150 .set .LANCHOR171,. + 0 14151 .type __func__.7329, %object 14152 .size __func__.7329, 19 14153__func__.7329: 14154 .string "FtlGcFreeTempBlock" 14155 .section .rodata.__func__.7435,"a",@progbits 14156 .align 3 14157 .set .LANCHOR175,. + 0 14158 .type __func__.7435, %object 14159 .size __func__.7435, 23 14160__func__.7435: 14161 .string "rk_ftl_garbage_collect" 14162 .section .rodata.__func__.7702,"a",@progbits 14163 .align 3 14164 .set .LANCHOR104,. + 0 14165 .type __func__.7702, %object 14166 .size __func__.7702, 15 14167__func__.7702: 14168 .string "FlashReadPages" 14169 .section .rodata.__func__.7719,"a",@progbits 14170 .align 3 14171 .set .LANCHOR109,. + 0 14172 .type __func__.7719, %object 14173 .size __func__.7719, 15 14174__func__.7719: 14175 .string "FlashProgPages" 14176 .section .rodata.decrement_vpc_count.str1.1,"aMS",@progbits,1 14177.LC101: 14178 .string "decrement_vpc_count %x = %d\n" 14179 .section .rodata.ftl_check_vpc.str1.1,"aMS",@progbits,1 14180.LC94: 14181 .string "...%s enter...\n" 14182.LC95: 14183 .string "FtlCheckVpc2 %x = %x %x\n" 14184.LC96: 14185 .string "free blk vpc error %x = %x %x\n" 14186 .section .rodata.ftl_map_blk_alloc_new_blk.str1.1,"aMS",@progbits,1 14187.LC84: 14188 .string "FtlFreeSysBlkQueueOut = %x, free count = %d\n" 14189 .section .rodata.ftl_scan_all_data.str1.1,"aMS",@progbits,1 14190.LC91: 14191 .string "ftl_scan_all_data = %x\n" 14192.LC92: 14193 .string "scan lpa = %x ppa= %x\n" 14194.LC93: 14195 .string "lba = %x,addr= %x,spare= %x %x %x %x data=%x %x\n" 14196 .section .rodata.load_l2p_region.str1.1,"aMS",@progbits,1 14197.LC86: 14198 .string "region_id = %x phyAddr = %x\n" 14199.LC87: 14200 .string "spare:" 14201.LC88: 14202 .string "map_ppn:" 14203 .section .rodata.rk_ftl_garbage_collect.str1.1,"aMS",@progbits,1 14204.LC107: 14205 .string "SWL %x, FSB = %x vpc= %x,ec=%x th=%x\n" 14206 .section .rodata.rknand_print_hex.str1.1,"aMS",@progbits,1 14207.LC75: 14208 .string "%s 0x%x:" 14209.LC76: 14210 .string "%x " 14211.LC77: 14212 .string "%02x " 14213.LC78: 14214 .string "\n" 14215 .section .rodata.rknand_proc_ftlread.str1.1,"aMS",@progbits,1 14216.LC70: 14217 .string "SFTL version: 5.0.44 20180713" 14218.LC71: 14219 .string "%s\n" 14220 .section .rodata.sftl_write.str1.1,"aMS",@progbits,1 14221.LC109: 14222 .string "write_idblock fail! %x %x %x %x\n" 14223 .hidden free 14224