1/* 2 * Copyright (c) 2018 Fuzhou Rockchip Electronics Co., Ltd 3 * 4 * SPDX-License-Identifier: GPL-2.0 5 * date: 2018-10-29 6 */ 7 .arch armv8-a+nosimd 8 .file "rk_sftl.c" 9 .section .text.l2p_addr_tran.isra.0,"ax",@progbits 10 .align 2 11 .type l2p_addr_tran.isra.0, %function 12l2p_addr_tran.isra.0: 13 adrp x4, .LANCHOR0 14 add x4, x4, :lo12:.LANCHOR0 15 ldrh w3, [x4, 8] 16 ldrh w6, [x4, 10] 17 ldrh w4, [x4, 14] 18 cmp w4, 4 19 bne .L2 20 lsr w3, w3, 1 21 ubfiz w6, w6, 1, 15 22.L2: 23 lsr w5, w0, 10 24 and w0, w0, 1023 25 and w4, w5, 65535 26 and w5, w5, 65535 27 udiv w4, w4, w3 28 msub w3, w3, w4, w5 29 madd w3, w3, w6, w0 30 mov w0, 0 31 str w3, [x1] 32 str w4, [x2] 33 ret 34 .size l2p_addr_tran.isra.0, .-l2p_addr_tran.isra.0 35 .section .text.ftl_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, 214 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, 207 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, 372 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, 463 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, 474 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, 787 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, 2110 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 strb wzr, [x19, 9] 1368 ldrh w1, [x1, #:lo12:.LANCHOR19] 1369 mul w0, w0, w1 1370 strh w0, [x19, 4] 1371 mov w0, 0 1372 ldr x19, [sp, 16] 1373 ldp x29, x30, [sp], 32 1374 ret 1375.L176: 1376 ldrh w1, [x19] 1377 ldrb w0, [x7, x5] 1378 bl V2P_block 1379 mov w4, w0 1380 strh w10, [x6] 1381 bl FtlBbmIsBadBlock 1382 cbnz w0, .L175 1383 strh w4, [x6] 1384 ldrb w0, [x19, 7] 1385 add w0, w0, 1 1386 strb w0, [x19, 7] 1387.L175: 1388 add x5, x5, 1 1389 add x6, x6, 2 1390 b .L174 1391 .size make_superblock, .-make_superblock 1392 .section .text.update_multiplier_value,"ax",@progbits 1393 .align 2 1394 .global update_multiplier_value 1395 .type update_multiplier_value, %function 1396update_multiplier_value: 1397 and w6, w0, 65535 1398 adrp x0, .LANCHOR3 1399 mov x7, 0 1400 adrp x8, .LANCHOR13 1401 ldrh w10, [x0, #:lo12:.LANCHOR3] 1402 adrp x0, .LANCHOR19 1403 mov w5, 0 1404 add x8, x8, :lo12:.LANCHOR13 1405 ldrh w11, [x0, #:lo12:.LANCHOR19] 1406 cmp w10, w7, uxth 1407 bhi .L190 1408 cbz w5, .L188 1409 mov w0, 32768 1410 sdiv w5, w0, w5 1411.L189: 1412 adrp x0, .LANCHOR40 1413 mov w1, 6 1414 ldr x0, [x0, #:lo12:.LANCHOR40] 1415 umaddl x6, w6, w1, x0 1416 mov w0, 0 1417 strh w5, [x6, 4] 1418 ret 1419.L183: 1420 mov w5, 0 1421 b .L182 1422.L188: 1423 mov w5, 0 1424 b .L189 1425.L190: 1426 stp x29, x30, [sp, -16]! 1427 add x29, sp, 0 1428.L181: 1429 ldrb w0, [x8, x7] 1430 mov w1, w6 1431 bl V2P_block 1432 bl FtlBbmIsBadBlock 1433 cbnz w0, .L180 1434 add w5, w5, w11 1435 and w5, w5, 65535 1436.L180: 1437 add x7, x7, 1 1438 cmp w10, w7, uxth 1439 bhi .L181 1440 cbz w5, .L183 1441 mov w0, 32768 1442 sdiv w5, w0, w5 1443.L182: 1444 adrp x0, .LANCHOR40 1445 mov w1, 6 1446 ldr x0, [x0, #:lo12:.LANCHOR40] 1447 umaddl x6, w6, w1, x0 1448 mov w0, 0 1449 strh w5, [x6, 4] 1450 ldp x29, x30, [sp], 16 1451 ret 1452 .size update_multiplier_value, .-update_multiplier_value 1453 .section .text.GetFreeBlockMinEraseCount,"ax",@progbits 1454 .align 2 1455 .global GetFreeBlockMinEraseCount 1456 .type GetFreeBlockMinEraseCount, %function 1457GetFreeBlockMinEraseCount: 1458 adrp x0, .LANCHOR47 1459 ldr x0, [x0, #:lo12:.LANCHOR47] 1460 cbz x0, .L193 1461 adrp x1, .LANCHOR40 1462 ldr x1, [x1, #:lo12:.LANCHOR40] 1463 sub x0, x0, x1 1464 mov x1, -6148914691236517206 1465 asr x0, x0, 1 1466 movk x1, 0xaaab, lsl 0 1467 mul x0, x0, x1 1468 adrp x1, .LANCHOR43 1469 ldr x1, [x1, #:lo12:.LANCHOR43] 1470 and x0, x0, 65535 1471 ldrh w0, [x1, x0, lsl 1] 1472 ret 1473.L193: 1474 mov w0, 0 1475 ret 1476 .size GetFreeBlockMinEraseCount, .-GetFreeBlockMinEraseCount 1477 .section .text.GetFreeBlockMaxEraseCount,"ax",@progbits 1478 .align 2 1479 .global GetFreeBlockMaxEraseCount 1480 .type GetFreeBlockMaxEraseCount, %function 1481GetFreeBlockMaxEraseCount: 1482 adrp x1, .LANCHOR47 1483 and w0, w0, 65535 1484 ldr x1, [x1, #:lo12:.LANCHOR47] 1485 cbz x1, .L201 1486 adrp x2, .LANCHOR48 1487 mov w3, 7 1488 mov w5, 6 1489 mov w6, 65535 1490 ldrh w2, [x2, #:lo12:.LANCHOR48] 1491 mul w2, w2, w3 1492 asr w2, w2, 3 1493 cmp w0, w2 1494 csel w0, w2, w0, gt 1495 adrp x2, .LANCHOR40 1496 ldr x3, [x2, #:lo12:.LANCHOR40] 1497 mov x2, -6148914691236517206 1498 movk x2, 0xaaab, lsl 0 1499 sub x1, x1, x3 1500 asr x1, x1, 1 1501 mul x1, x1, x2 1502 mov w2, 0 1503 and w1, w1, 65535 1504.L197: 1505 cmp w0, w2 1506 beq .L200 1507 umull x4, w1, w5 1508 ldrh w4, [x3, x4] 1509 cmp w4, w6 1510 bne .L198 1511.L200: 1512 adrp x0, .LANCHOR43 1513 ubfiz x1, x1, 1, 16 1514 ldr x0, [x0, #:lo12:.LANCHOR43] 1515 ldrh w0, [x0, x1] 1516 ret 1517.L198: 1518 add w2, w2, 1 1519 mov w1, w4 1520 and w2, w2, 65535 1521 b .L197 1522.L201: 1523 mov w0, 0 1524 ret 1525 .size GetFreeBlockMaxEraseCount, .-GetFreeBlockMaxEraseCount 1526 .section .text.FtlPrintInfo2buf,"ax",@progbits 1527 .align 2 1528 .global FtlPrintInfo2buf 1529 .type FtlPrintInfo2buf, %function 1530FtlPrintInfo2buf: 1531 stp x29, x30, [sp, -96]! 1532 mov x1, 64 1533 adrp x2, .LC2 1534 add x2, x2, :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 snprintf 1546 add x20, x21, x0, sxtw 1547 adrp x0, .LANCHOR26 1548 mov x1, 64 1549 adrp x2, .LC3 1550 ldr w3, [x0, #:lo12:.LANCHOR26] 1551 add x2, x2, :lo12:.LC3 1552 mov x0, x20 1553 add x22, x22, :lo12:.LANCHOR39 1554 adrp x24, .LANCHOR51 1555 adrp x25, .LANCHOR81 1556 add x25, x25, :lo12:.LANCHOR81 1557 bl snprintf 1558 add x20, x20, x0, sxtw 1559 mov x1, 64 1560 mov x0, x20 1561 adrp x2, .LC4 1562 add x2, x2, :lo12:.LC4 1563 bl snprintf 1564 add x20, x20, x0, sxtw 1565 adrp x0, .LANCHOR61 1566 mov x1, 64 1567 adrp x2, .LC5 1568 add x2, x2, :lo12:.LC5 1569 ldr w3, [x0, #:lo12:.LANCHOR61] 1570 mov x0, x20 1571 bl snprintf 1572 add x20, x20, x0, sxtw 1573 adrp x0, .LANCHOR59 1574 mov x1, 64 1575 adrp x2, .LC6 1576 add x2, x2, :lo12:.LC6 1577 ldr w3, [x0, #:lo12:.LANCHOR59] 1578 mov x0, x20 1579 bl snprintf 1580 add x20, x20, x0, sxtw 1581 adrp x0, .LANCHOR62 1582 mov x1, 64 1583 adrp x2, .LC7 1584 add x2, x2, :lo12:.LC7 1585 ldr w3, [x0, #:lo12:.LANCHOR62] 1586 mov x0, x20 1587 bl snprintf 1588 add x20, x20, x0, sxtw 1589 adrp x0, .LANCHOR63 1590 mov x1, 64 1591 adrp x2, .LC8 1592 add x2, x2, :lo12:.LC8 1593 ldr w3, [x0, #:lo12:.LANCHOR63] 1594 mov x0, x20 1595 bl snprintf 1596 add x20, x20, x0, sxtw 1597 adrp x0, .LANCHOR64 1598 mov x1, 64 1599 adrp x2, .LC9 1600 add x2, x2, :lo12:.LC9 1601 ldr w3, [x0, #:lo12:.LANCHOR64] 1602 mov x0, x20 1603 bl snprintf 1604 add x20, x20, x0, sxtw 1605 adrp x0, .LANCHOR65 1606 mov x1, 64 1607 adrp x2, .LC10 1608 add x2, x2, :lo12:.LC10 1609 ldr w3, [x0, #:lo12:.LANCHOR65] 1610 mov x0, x20 1611 bl snprintf 1612 add x20, x20, x0, sxtw 1613 adrp x0, .LANCHOR66 1614 mov x1, 64 1615 adrp x2, .LC11 1616 add x2, x2, :lo12:.LC11 1617 ldr w3, [x0, #:lo12:.LANCHOR66] 1618 mov x0, x20 1619 bl snprintf 1620 add x20, x20, x0, sxtw 1621 adrp x0, .LANCHOR67 1622 mov x1, 64 1623 adrp x2, .LC12 1624 add x2, x2, :lo12:.LC12 1625 ldr w3, [x0, #:lo12:.LANCHOR67] 1626 mov x0, x20 1627 bl snprintf 1628 add x20, x20, x0, sxtw 1629 adrp x0, .LANCHOR68 1630 mov x1, 64 1631 adrp x2, .LC13 1632 add x2, x2, :lo12:.LC13 1633 ldr w3, [x0, #:lo12:.LANCHOR68] 1634 mov x0, x20 1635 lsr w3, w3, 11 1636 bl snprintf 1637 add x20, x20, x0, sxtw 1638 adrp x0, .LANCHOR69 1639 mov x1, 64 1640 adrp x2, .LC14 1641 ldr w3, [x0, #:lo12:.LANCHOR69] 1642 add x2, x2, :lo12:.LC14 1643 mov x0, x20 1644 lsr w3, w3, 11 1645 bl snprintf 1646 add x20, x20, x0, sxtw 1647 adrp x0, .LANCHOR70 1648 mov x1, 64 1649 adrp x2, .LC15 1650 ldr w3, [x0, #:lo12:.LANCHOR70] 1651 add x2, x2, :lo12:.LC15 1652 mov x0, x20 1653 bl snprintf 1654 add x20, x20, x0, sxtw 1655 adrp x0, .LANCHOR71 1656 mov x1, 64 1657 adrp x2, .LC16 1658 add x2, x2, :lo12:.LC16 1659 ldr w3, [x0, #:lo12:.LANCHOR71] 1660 mov x0, x20 1661 bl snprintf 1662 add x20, x20, x0, sxtw 1663 add x0, x19, :lo12:.LANCHOR37 1664 mov x1, 64 1665 adrp x2, .LC17 1666 add x2, x2, :lo12:.LC17 1667 ldrh w3, [x0, 6] 1668 mov x0, x20 1669 bl snprintf 1670 add x20, x20, x0, sxtw 1671 ldrh w3, [x23, #:lo12:.LANCHOR48] 1672 mov x1, 64 1673 mov x0, x20 1674 adrp x2, .LC18 1675 add x2, x2, :lo12:.LC18 1676 bl snprintf 1677 add x20, x20, x0, sxtw 1678 adrp x0, .LANCHOR72 1679 mov x1, 64 1680 adrp x2, .LC19 1681 add x2, x2, :lo12:.LC19 1682 ldr w3, [x0, #:lo12:.LANCHOR72] 1683 mov x0, x20 1684 bl snprintf 1685 add x20, x20, x0, sxtw 1686 adrp x0, .LANCHOR73 1687 mov x1, 64 1688 adrp x2, .LC20 1689 add x2, x2, :lo12:.LC20 1690 ldr w3, [x0, #:lo12:.LANCHOR73] 1691 mov x0, x20 1692 bl snprintf 1693 add x20, x20, x0, sxtw 1694 adrp x0, .LANCHOR74 1695 mov x1, 64 1696 adrp x2, .LC21 1697 add x2, x2, :lo12:.LC21 1698 ldr w3, [x0, #:lo12:.LANCHOR74] 1699 mov x0, x20 1700 bl snprintf 1701 add x20, x20, x0, sxtw 1702 adrp x0, .LANCHOR75 1703 mov x1, 64 1704 adrp x2, .LC22 1705 add x2, x2, :lo12:.LC22 1706 ldr w3, [x0, #:lo12:.LANCHOR75] 1707 mov x0, x20 1708 bl snprintf 1709 add x20, x20, x0, sxtw 1710 adrp x0, .LANCHOR76 1711 mov x1, 64 1712 adrp x2, .LC23 1713 add x2, x2, :lo12:.LC23 1714 ldr w3, [x0, #:lo12:.LANCHOR76] 1715 mov x0, x20 1716 bl snprintf 1717 add x20, x20, x0, sxtw 1718 adrp x0, .LANCHOR77 1719 mov x1, 64 1720 adrp x2, .LC24 1721 add x2, x2, :lo12:.LC24 1722 ldr w3, [x0, #:lo12:.LANCHOR77] 1723 mov x0, x20 1724 bl snprintf 1725 add x20, x20, x0, sxtw 1726 ldrh w3, [x22, 30] 1727 mov x1, 64 1728 mov x0, x20 1729 adrp x2, .LC25 1730 add x2, x2, :lo12:.LC25 1731 bl snprintf 1732 add x20, x20, x0, sxtw 1733 ldrh w3, [x22, 28] 1734 mov x1, 64 1735 mov x0, x20 1736 adrp x2, .LC26 1737 add x2, x2, :lo12:.LC26 1738 adrp x22, .LANCHOR42 1739 bl snprintf 1740 add x20, x20, x0, sxtw 1741 adrp x0, .LANCHOR34 1742 mov x1, 64 1743 adrp x2, .LC27 1744 add x2, x2, :lo12:.LC27 1745 ldr w3, [x0, #:lo12:.LANCHOR34] 1746 mov x0, x20 1747 bl snprintf 1748 add x20, x20, x0, sxtw 1749 adrp x0, .LANCHOR31 1750 mov x1, 64 1751 adrp x2, .LC28 1752 add x2, x2, :lo12:.LC28 1753 ldr w3, [x0, #:lo12:.LANCHOR31] 1754 mov x0, x20 1755 bl snprintf 1756 add x20, x20, x0, sxtw 1757 adrp x0, .LANCHOR2 1758 mov x1, 64 1759 adrp x2, .LC29 1760 add x2, x2, :lo12:.LC29 1761 ldr w3, [x0, #:lo12:.LANCHOR2] 1762 mov x0, x20 1763 bl snprintf 1764 add x20, x20, x0, sxtw 1765 adrp x0, .LANCHOR38+6 1766 mov x1, 64 1767 adrp x2, .LC30 1768 add x2, x2, :lo12:.LC30 1769 ldrh w3, [x0, #:lo12:.LANCHOR38+6] 1770 mov x0, x20 1771 bl snprintf 1772 add x20, x20, x0, sxtw 1773 adrp x0, .LANCHOR5 1774 mov x1, 64 1775 adrp x2, .LC31 1776 add x2, x2, :lo12:.LC31 1777 ldrh w3, [x0, #:lo12:.LANCHOR5] 1778 mov x0, x20 1779 bl snprintf 1780 add x20, x20, x0, sxtw 1781 adrp x0, .LANCHOR78 1782 mov x1, 64 1783 adrp x2, .LC32 1784 add x2, x2, :lo12:.LC32 1785 ldrh w3, [x0, #:lo12:.LANCHOR78] 1786 mov x0, x20 1787 bl snprintf 1788 add x20, x20, x0, sxtw 1789 adrp x0, .LANCHOR7 1790 mov x1, 64 1791 adrp x2, .LC33 1792 add x2, x2, :lo12:.LC33 1793 ldr w3, [x0, #:lo12:.LANCHOR7] 1794 mov x0, x20 1795 bl snprintf 1796 add x20, x20, x0, sxtw 1797 adrp x0, .LANCHOR79 1798 mov x1, 64 1799 adrp x2, .LC34 1800 add x2, x2, :lo12:.LC34 1801 ldrh w3, [x0, #:lo12:.LANCHOR79] 1802 mov x0, x20 1803 bl snprintf 1804 add x20, x20, x0, sxtw 1805 ldrh w3, [x19, #:lo12:.LANCHOR37] 1806 add x19, x24, :lo12:.LANCHOR51 1807 mov x1, 64 1808 mov x0, x20 1809 adrp x2, .LC35 1810 add x2, x2, :lo12:.LC35 1811 bl snprintf 1812 add x20, x20, x0, sxtw 1813 ldrh w3, [x19, 2] 1814 mov x1, 64 1815 mov x0, x20 1816 adrp x2, .LC36 1817 add x2, x2, :lo12:.LC36 1818 bl snprintf 1819 add x20, x20, x0, sxtw 1820 ldrb w3, [x19, 6] 1821 mov x1, 64 1822 mov x0, x20 1823 adrp x2, .LC37 1824 add x2, x2, :lo12:.LC37 1825 bl snprintf 1826 add x20, x20, x0, sxtw 1827 ldrh w3, [x24, #:lo12:.LANCHOR51] 1828 mov x1, 64 1829 mov x0, x20 1830 adrp x2, .LC38 1831 add x2, x2, :lo12:.LC38 1832 bl snprintf 1833 add x20, x20, x0, sxtw 1834 ldrb w3, [x19, 8] 1835 mov x1, 64 1836 mov x0, x20 1837 adrp x2, .LC39 1838 add x2, x2, :lo12:.LC39 1839 bl snprintf 1840 add x20, x20, x0, sxtw 1841 ldrh w3, [x19, 4] 1842 mov x1, 64 1843 mov x0, x20 1844 adrp x2, .LC40 1845 add x2, x2, :lo12:.LC40 1846 bl snprintf 1847 add x20, x20, x0, sxtw 1848 ldrh w1, [x24, #:lo12:.LANCHOR51] 1849 adrp x24, .LANCHOR52 1850 ldr x0, [x22, #:lo12:.LANCHOR42] 1851 add x19, x24, :lo12:.LANCHOR52 1852 adrp x2, .LC41 1853 add x2, x2, :lo12:.LC41 1854 ldrh w3, [x0, x1, lsl 1] 1855 mov x1, 64 1856 mov x0, x20 1857 bl snprintf 1858 add x20, x20, x0, sxtw 1859 ldrh w3, [x19, 2] 1860 mov x1, 64 1861 mov x0, x20 1862 adrp x2, .LC42 1863 add x2, x2, :lo12:.LC42 1864 bl snprintf 1865 add x20, x20, x0, sxtw 1866 ldrb w3, [x19, 6] 1867 mov x1, 64 1868 mov x0, x20 1869 adrp x2, .LC43 1870 add x2, x2, :lo12:.LC43 1871 bl snprintf 1872 add x20, x20, x0, sxtw 1873 ldrh w3, [x24, #:lo12:.LANCHOR52] 1874 mov x1, 64 1875 mov x0, x20 1876 adrp x2, .LC44 1877 add x2, x2, :lo12:.LC44 1878 bl snprintf 1879 add x20, x20, x0, sxtw 1880 ldrb w3, [x19, 8] 1881 mov x1, 64 1882 mov x0, x20 1883 adrp x2, .LC45 1884 add x2, x2, :lo12:.LC45 1885 bl snprintf 1886 add x20, x20, x0, sxtw 1887 ldrh w3, [x19, 4] 1888 mov x1, 64 1889 mov x0, x20 1890 adrp x2, .LC46 1891 add x2, x2, :lo12:.LC46 1892 bl snprintf 1893 add x20, x20, x0, sxtw 1894 ldrh w1, [x24, #:lo12:.LANCHOR52] 1895 adrp x24, .LANCHOR53 1896 ldr x0, [x22, #:lo12:.LANCHOR42] 1897 add x19, x24, :lo12:.LANCHOR53 1898 adrp x2, .LC47 1899 add x2, x2, :lo12:.LC47 1900 ldrh w3, [x0, x1, lsl 1] 1901 mov x1, 64 1902 mov x0, x20 1903 bl snprintf 1904 add x20, x20, x0, sxtw 1905 ldrh w3, [x19, 2] 1906 mov x1, 64 1907 mov x0, x20 1908 adrp x2, .LC48 1909 add x2, x2, :lo12:.LC48 1910 bl snprintf 1911 add x20, x20, x0, sxtw 1912 ldrb w3, [x19, 6] 1913 mov x1, 64 1914 mov x0, x20 1915 adrp x2, .LC49 1916 add x2, x2, :lo12:.LC49 1917 bl snprintf 1918 add x20, x20, x0, sxtw 1919 ldrh w3, [x24, #:lo12:.LANCHOR53] 1920 mov x1, 64 1921 mov x0, x20 1922 adrp x2, .LC50 1923 add x2, x2, :lo12:.LC50 1924 adrp x24, .LANCHOR80 1925 bl snprintf 1926 add x20, x20, x0, sxtw 1927 ldrb w3, [x19, 8] 1928 mov x1, 64 1929 mov x0, x20 1930 adrp x2, .LC51 1931 add x2, x2, :lo12:.LC51 1932 bl snprintf 1933 add x20, x20, x0, sxtw 1934 ldrh w3, [x19, 4] 1935 add x19, x24, :lo12:.LANCHOR80 1936 mov x1, 64 1937 mov x0, x20 1938 adrp x2, .LC52 1939 add x2, x2, :lo12:.LC52 1940 bl snprintf 1941 add x20, x20, x0, sxtw 1942 ldrh w3, [x19, 2] 1943 mov x1, 64 1944 mov x0, x20 1945 adrp x2, .LC53 1946 add x2, x2, :lo12:.LC53 1947 bl snprintf 1948 add x20, x20, x0, sxtw 1949 ldrb w3, [x19, 6] 1950 mov x1, 64 1951 mov x0, x20 1952 adrp x2, .LC54 1953 add x2, x2, :lo12:.LC54 1954 bl snprintf 1955 add x20, x20, x0, sxtw 1956 ldrh w3, [x24, #:lo12:.LANCHOR80] 1957 mov x1, 64 1958 mov x0, x20 1959 adrp x2, .LC55 1960 add x2, x2, :lo12:.LC55 1961 bl snprintf 1962 add x20, x20, x0, sxtw 1963 ldrb w3, [x19, 8] 1964 mov x1, 64 1965 mov x0, x20 1966 adrp x2, .LC56 1967 add x2, x2, :lo12:.LC56 1968 bl snprintf 1969 add x20, x20, x0, sxtw 1970 ldrh w3, [x19, 4] 1971 mov x1, 64 1972 mov x0, x20 1973 adrp x2, .LC57 1974 add x2, x2, :lo12:.LC57 1975 bl snprintf 1976 add x20, x20, x0, sxtw 1977 ldp w5, w3, [x25, 76] 1978 mov x1, 64 1979 ldr w4, [x25, 84] 1980 adrp x2, .LC58 1981 mov x0, x20 1982 add x2, x2, :lo12:.LC58 1983 bl snprintf 1984 add x19, x20, x0, sxtw 1985 ldr w3, [x25, 72] 1986 mov x1, 64 1987 mov x0, x19 1988 adrp x2, .LC59 1989 add x2, x2, :lo12:.LC59 1990 bl snprintf 1991 add x19, x19, x0, sxtw 1992 ldr w3, [x25, 96] 1993 mov x1, 64 1994 mov x0, x19 1995 adrp x2, .LC60 1996 add x2, x2, :lo12:.LC60 1997 bl snprintf 1998 add x19, x19, x0, sxtw 1999 adrp x0, .LANCHOR82 2000 mov x1, 64 2001 adrp x2, .LC61 2002 add x2, x2, :lo12:.LC61 2003 ldrh w3, [x0, #:lo12:.LANCHOR82] 2004 mov x0, x19 2005 bl snprintf 2006 add x19, x19, x0, sxtw 2007 adrp x0, .LANCHOR83 2008 mov x1, 64 2009 adrp x2, .LC62 2010 add x2, x2, :lo12:.LC62 2011 ldrh w3, [x0, #:lo12:.LANCHOR83] 2012 mov x0, x19 2013 bl snprintf 2014 add x19, x19, x0, sxtw 2015 adrp x0, .LANCHOR84 2016 mov x1, 64 2017 adrp x2, .LC63 2018 add x2, x2, :lo12:.LC63 2019 ldr w3, [x0, #:lo12:.LANCHOR84] 2020 mov x0, x19 2021 bl snprintf 2022 add x19, x19, x0, sxtw 2023 adrp x0, .LANCHOR85 2024 adrp x2, .LC64 2025 add x2, x2, :lo12:.LC64 2026 mov x1, 64 2027 ldrh w3, [x0, #:lo12:.LANCHOR85] 2028 mov x0, x19 2029 bl snprintf 2030 add x19, x19, x0, sxtw 2031 bl GetFreeBlockMinEraseCount 2032 and w3, w0, 65535 2033 mov x1, 64 2034 mov x0, x19 2035 adrp x2, .LC65 2036 add x2, x2, :lo12:.LC65 2037 bl snprintf 2038 add x19, x19, x0, sxtw 2039 ldrh w0, [x23, #:lo12:.LANCHOR48] 2040 bl GetFreeBlockMaxEraseCount 2041 and w3, w0, 65535 2042 adrp x2, .LC66 2043 mov x0, x19 2044 add x2, x2, :lo12:.LC66 2045 mov x1, 64 2046 bl snprintf 2047 add x19, x19, x0, sxtw 2048 adrp x0, .LANCHOR86 2049 ldr w0, [x0, #:lo12:.LANCHOR86] 2050 cmp w0, 1 2051 beq .L203 2052.L208: 2053 sub w0, w19, w21 2054 ldr x27, [sp, 80] 2055 ldp x19, x20, [sp, 16] 2056 ldp x21, x22, [sp, 32] 2057 ldp x23, x24, [sp, 48] 2058 ldp x25, x26, [sp, 64] 2059 ldp x29, x30, [sp], 96 2060 ret 2061.L203: 2062 ldrh w0, [x24, #:lo12:.LANCHOR80] 2063 mov w1, 65535 2064 cmp w0, w1 2065 beq .L205 2066 ldr x1, [x22, #:lo12:.LANCHOR42] 2067 ubfiz x0, x0, 1, 16 2068 adrp x2, .LC67 2069 add x2, x2, :lo12:.LC67 2070 ldrh w3, [x1, x0] 2071 mov x0, x19 2072 mov x1, 64 2073 bl snprintf 2074 add x19, x19, x0, sxtw 2075.L205: 2076 mov w0, 0 2077 adrp x24, .LC68 2078 bl List_get_gc_head_node 2079 add x24, x24, :lo12:.LC68 2080 and w4, w0, 65535 2081 mov w23, 0 2082 mov w27, 65535 2083 adrp x20, .LANCHOR40 2084 mov w26, 6 2085.L207: 2086 cmp w4, w27 2087 beq .L206 2088 adrp x0, .LANCHOR43 2089 umull x25, w4, w26 2090 ldr x2, [x22, #:lo12:.LANCHOR42] 2091 ubfiz x1, x4, 1, 16 2092 ldr x3, [x0, #:lo12:.LANCHOR43] 2093 ldr x0, [x20, #:lo12:.LANCHOR40] 2094 add x0, x0, x25 2095 ldrh w5, [x2, x1] 2096 ldrh w7, [x3, x1] 2097 mov x2, x24 2098 mov w3, w23 2099 mov x1, 64 2100 ldrh w6, [x0, 4] 2101 mov x0, x19 2102 add w23, w23, 1 2103 bl snprintf 2104 add x19, x19, x0, sxtw 2105 ldr x0, [x20, #:lo12:.LANCHOR40] 2106 cmp w23, 16 2107 ldrh w4, [x0, x25] 2108 bne .L207 2109.L206: 2110 adrp x0, .LANCHOR47 2111 adrp x23, .LC69 2112 add x23, x23, :lo12:.LC69 2113 mov w22, 0 2114 ldr x4, [x0, #:lo12:.LANCHOR47] 2115 mov w25, 65535 2116 ldr x0, [x20, #:lo12:.LANCHOR40] 2117 mov w26, 6 2118 adrp x27, .LANCHOR43 2119 sub x4, x4, x0 2120 mov x0, -6148914691236517206 2121 asr x4, x4, 1 2122 movk x0, 0xaaab, lsl 0 2123 mul x4, x4, x0 2124 and w4, w4, 65535 2125.L209: 2126 cmp w4, w25 2127 beq .L208 2128 umull x24, w4, w26 2129 ldr x0, [x20, #:lo12:.LANCHOR40] 2130 ldr x2, [x27, #:lo12:.LANCHOR43] 2131 ubfiz x1, x4, 1, 16 2132 add x0, x0, x24 2133 mov w3, w22 2134 add w22, w22, 1 2135 ldrh w6, [x2, x1] 2136 mov x2, x23 2137 ldrh w5, [x0, 4] 2138 mov x1, 64 2139 mov x0, x19 2140 bl snprintf 2141 add x19, x19, x0, sxtw 2142 cmp w22, 4 2143 beq .L208 2144 ldr x0, [x20, #:lo12:.LANCHOR40] 2145 ldrh w4, [x0, x24] 2146 b .L209 2147 .size FtlPrintInfo2buf, .-FtlPrintInfo2buf 2148 .section .text.rknand_proc_ftlread,"ax",@progbits 2149 .align 2 2150 .global rknand_proc_ftlread 2151 .type rknand_proc_ftlread, %function 2152rknand_proc_ftlread: 2153 cmp w0, 2047 2154 ble .L217 2155 stp x29, x30, [sp, -32]! 2156 adrp x3, .LC70 2157 adrp x2, .LC71 2158 add x3, x3, :lo12:.LC70 2159 add x29, sp, 0 2160 add x2, x2, :lo12:.LC71 2161 stp x19, x20, [sp, 16] 2162 mov x20, x1 2163 mov x1, 64 2164 mov x0, x20 2165 bl snprintf 2166 add x19, x20, x0, sxtw 2167 mov x0, x19 2168 bl FtlPrintInfo2buf 2169 add x0, x19, x0, sxtw 2170 sub w0, w0, w20 2171 ldp x19, x20, [sp, 16] 2172 ldp x29, x30, [sp], 32 2173 ret 2174.L217: 2175 mov w0, 0 2176 ret 2177 .size rknand_proc_ftlread, .-rknand_proc_ftlread 2178 .section .text.GetSwlReplaceBlock,"ax",@progbits 2179 .align 2 2180 .global GetSwlReplaceBlock 2181 .type GetSwlReplaceBlock, %function 2182GetSwlReplaceBlock: 2183 stp x29, x30, [sp, -32]! 2184 adrp x2, .LANCHOR74 2185 adrp x8, .LANCHOR77 2186 add x29, sp, 0 2187 str x19, [sp, 16] 2188 ldr w3, [x2, #:lo12:.LANCHOR74] 2189 ldr w7, [x8, #:lo12:.LANCHOR77] 2190 cmp w3, w7 2191 bcs .L223 2192 adrp x1, .LANCHOR5 2193 adrp x0, .LANCHOR72 2194 mov w5, 0 2195 mov w4, 0 2196 ldrh w3, [x1, #:lo12:.LANCHOR5] 2197 adrp x1, .LANCHOR43 2198 str wzr, [x0, #:lo12:.LANCHOR72] 2199 ldr x6, [x1, #:lo12:.LANCHOR43] 2200 mov x1, 0 2201.L224: 2202 cmp w3, w1 2203 bhi .L225 2204 cbz w5, .L226 2205 str w4, [x0, #:lo12:.LANCHOR72] 2206.L226: 2207 ldr w1, [x0, #:lo12:.LANCHOR72] 2208 udiv w3, w1, w3 2209 str w3, [x2, #:lo12:.LANCHOR74] 2210 adrp x3, .LANCHOR73 2211 ldr w3, [x3, #:lo12:.LANCHOR73] 2212 sub w1, w1, w3 2213 adrp x3, .LANCHOR14 2214 ldrh w3, [x3, #:lo12:.LANCHOR14] 2215 udiv w1, w1, w3 2216 str w1, [x0, #:lo12:.LANCHOR72] 2217.L227: 2218 ldr w10, [x2, #:lo12:.LANCHOR74] 2219 add w0, w7, 256 2220 cmp w0, w10 2221 bls .L232 2222 adrp x1, .LANCHOR76 2223 add w0, w7, 768 2224 ldr w1, [x1, #:lo12:.LANCHOR76] 2225 cmp w0, w1 2226 bls .L232 2227.L234: 2228 mov w19, 65535 2229.L233: 2230 mov w0, w19 2231 ldr x19, [sp, 16] 2232 ldp x29, x30, [sp], 32 2233 ret 2234.L225: 2235 ldrh w5, [x6, x1, lsl 1] 2236 add x1, x1, 1 2237 add w4, w4, w5 2238 mov w5, 1 2239 b .L224 2240.L223: 2241 adrp x1, .LANCHOR76 2242 ldr w0, [x1, #:lo12:.LANCHOR76] 2243 cmp w3, w0 2244 bls .L227 2245 add w0, w0, 1 2246 str w0, [x1, #:lo12:.LANCHOR76] 2247 adrp x0, .LANCHOR43 2248 adrp x1, .LANCHOR5 2249 add x1, x1, :lo12:.LANCHOR5 2250 ldr x4, [x0, #:lo12:.LANCHOR43] 2251 mov w0, 0 2252.L229: 2253 ldrh w3, [x1] 2254 cmp w0, w3 2255 bcs .L227 2256 ubfiz x5, x0, 1, 32 2257 add w0, w0, 1 2258 ldrh w3, [x4, x5] 2259 add w3, w3, 1 2260 strh w3, [x4, x5] 2261 b .L229 2262.L232: 2263 adrp x0, .LANCHOR48 2264 ldrh w0, [x0, #:lo12:.LANCHOR48] 2265 add w0, w0, w0, lsl 1 2266 lsr w0, w0, 2 2267 bl GetFreeBlockMaxEraseCount 2268 and w6, w0, 65535 2269 add w0, w7, 64 2270 cmp w6, w0 2271 bcc .L234 2272 adrp x0, .LANCHOR41 2273 ldr x0, [x0, #:lo12:.LANCHOR41] 2274 cbz x0, .L234 2275 adrp x1, .LANCHOR5 2276 mov w3, 65535 2277 mov x14, -6148914691236517206 2278 mov w2, w3 2279 ldrh w13, [x1, #:lo12:.LANCHOR5] 2280 adrp x1, .LANCHOR40 2281 mov w12, w3 2282 movk x14, 0xaaab, lsl 0 2283 ldr x11, [x1, #:lo12:.LANCHOR40] 2284 adrp x1, .LANCHOR43 2285 mov w15, 6 2286 ldr x4, [x1, #:lo12:.LANCHOR43] 2287 mov w1, 0 2288.L235: 2289 ldrh w5, [x0] 2290 cmp w5, w12 2291 bne .L238 2292 mov w19, w2 2293.L237: 2294 mov w0, 65535 2295 cmp w19, w0 2296 beq .L234 2297 ubfiz x2, x19, 1, 32 2298 ldrh w5, [x4, x2] 2299 cmp w7, w5 2300 bcs .L239 2301 bl GetFreeBlockMinEraseCount 2302 cmp w7, w0, uxth 2303 bcs .L239 2304 str w3, [x8, #:lo12:.LANCHOR77] 2305.L239: 2306 cmp w10, w5 2307 bls .L234 2308 add w0, w5, 128 2309 cmp w6, w0 2310 ble .L234 2311 add w0, w5, 256 2312 adrp x1, .LANCHOR76 2313 cmp w10, w0 2314 bhi .L240 2315 ldr w3, [x1, #:lo12:.LANCHOR76] 2316 add w0, w5, 768 2317 cmp w0, w3 2318 bcs .L234 2319.L240: 2320 adrp x0, .LANCHOR42 2321 ldr w3, [x1, #:lo12:.LANCHOR76] 2322 mov w1, w19 2323 ldr x0, [x0, #:lo12:.LANCHOR42] 2324 ldrh w4, [x0, x2] 2325 mov w2, w10 2326 adrp x0, .LC72 2327 add x0, x0, :lo12:.LC72 2328 bl printf 2329 adrp x0, .LANCHOR87 2330 mov w1, 1 2331 str w1, [x0, #:lo12:.LANCHOR87] 2332 b .L233 2333.L238: 2334 add w1, w1, 1 2335 and w1, w1, 65535 2336 cmp w1, w13 2337 bhi .L234 2338 ldrh w16, [x0, 4] 2339 cbz w16, .L236 2340 sub x0, x0, x11 2341 asr x0, x0, 1 2342 mul x0, x0, x14 2343 and w19, w0, 65535 2344 and x0, x0, 65535 2345 ldrh w0, [x4, x0, lsl 1] 2346 cmp w7, w0 2347 bcs .L237 2348 cmp w3, w0 2349 bls .L236 2350 mov w3, w0 2351 mov w2, w19 2352.L236: 2353 umaddl x0, w5, w15, x11 2354 b .L235 2355 .size GetSwlReplaceBlock, .-GetSwlReplaceBlock 2356 .section .text.free_data_superblock,"ax",@progbits 2357 .align 2 2358 .global free_data_superblock 2359 .type free_data_superblock, %function 2360free_data_superblock: 2361 and w0, w0, 65535 2362 mov w1, 65535 2363 cmp w0, w1 2364 beq .L254 2365 stp x29, x30, [sp, -16]! 2366 adrp x2, .LANCHOR42 2367 ubfiz x1, x0, 1, 16 2368 add x29, sp, 0 2369 ldr x2, [x2, #:lo12:.LANCHOR42] 2370 strh wzr, [x2, x1] 2371 bl INSERT_FREE_LIST 2372 mov w0, 0 2373 ldp x29, x30, [sp], 16 2374 ret 2375.L254: 2376 mov w0, 0 2377 ret 2378 .size free_data_superblock, .-free_data_superblock 2379 .section .text.get_new_active_ppa,"ax",@progbits 2380 .align 2 2381 .global get_new_active_ppa 2382 .type get_new_active_ppa, %function 2383get_new_active_ppa: 2384 stp x29, x30, [sp, -48]! 2385 add x29, sp, 0 2386 stp x19, x20, [sp, 16] 2387 mov x19, x0 2388 ldrh w1, [x0] 2389 mov w0, 65535 2390 str x21, [sp, 32] 2391 cmp w1, w0 2392 bne .L258 2393 adrp x1, .LANCHOR88 2394 adrp x0, .LC1 2395 mov w2, 2740 2396 add x1, x1, :lo12:.LANCHOR88 2397 add x0, x0, :lo12:.LC1 2398 bl printf 2399.L258: 2400 adrp x20, .LANCHOR19 2401 ldrh w1, [x19, 2] 2402 ldrh w0, [x20, #:lo12:.LANCHOR19] 2403 cmp w1, w0 2404 bne .L259 2405 adrp x1, .LANCHOR88 2406 adrp x0, .LC1 2407 mov w2, 2741 2408 add x1, x1, :lo12:.LANCHOR88 2409 add x0, x0, :lo12:.LC1 2410 bl printf 2411.L259: 2412 ldrh w0, [x19, 4] 2413 cbnz w0, .L260 2414 adrp x1, .LANCHOR88 2415 adrp x0, .LC1 2416 mov w2, 2742 2417 add x1, x1, :lo12:.LANCHOR88 2418 add x0, x0, :lo12:.LC1 2419 bl printf 2420.L260: 2421 ldrb w0, [x19, 6] 2422 adrp x1, .LANCHOR3 2423 strb wzr, [x19, 10] 2424 add x0, x0, 8 2425 ldrh w2, [x1, #:lo12:.LANCHOR3] 2426 mov w1, 65535 2427 ldrh w0, [x19, x0, lsl 1] 2428.L261: 2429 cmp w0, w1 2430 beq .L263 2431 ldrh w21, [x19, 2] 2432 mov w3, 65535 2433 ldrh w1, [x19, 4] 2434 orr w21, w21, w0, lsl 10 2435 ldrb w0, [x19, 6] 2436 sub w1, w1, #1 2437 and w1, w1, 65535 2438 strh w1, [x19, 4] 2439.L265: 2440 add w0, w0, 1 2441 and w0, w0, 255 2442 cmp w2, w0 2443 bne .L264 2444 ldrh w0, [x19, 2] 2445 add w0, w0, 1 2446 strh w0, [x19, 2] 2447 mov w0, 0 2448.L264: 2449 add x4, x19, x0, sxtw 1 2450 ldrh w4, [x4, 16] 2451 cmp w4, w3 2452 beq .L265 2453 strb w0, [x19, 6] 2454 ldrh w2, [x19, 2] 2455 ldrh w0, [x20, #:lo12:.LANCHOR19] 2456 cmp w2, w0 2457 bne .L257 2458 cbz w1, .L257 2459 adrp x1, .LANCHOR88 2460 adrp x0, .LC1 2461 mov w2, 2763 2462 add x1, x1, :lo12:.LANCHOR88 2463 add x0, x0, :lo12:.LC1 2464 bl printf 2465.L257: 2466 mov w0, w21 2467 ldr x21, [sp, 32] 2468 ldp x19, x20, [sp, 16] 2469 ldp x29, x30, [sp], 48 2470 ret 2471.L263: 2472 ldrb w0, [x19, 6] 2473 add w0, w0, 1 2474 and w0, w0, 255 2475 strb w0, [x19, 6] 2476 cmp w0, w2 2477 bne .L262 2478 ldrh w0, [x19, 2] 2479 strb wzr, [x19, 6] 2480 add w0, w0, 1 2481 strh w0, [x19, 2] 2482.L262: 2483 ldrb w0, [x19, 6] 2484 add x0, x0, 8 2485 ldrh w0, [x19, x0, lsl 1] 2486 b .L261 2487 .size get_new_active_ppa, .-get_new_active_ppa 2488 .section .text.FtlGcBufInit,"ax",@progbits 2489 .align 2 2490 .global FtlGcBufInit 2491 .type FtlGcBufInit, %function 2492FtlGcBufInit: 2493 adrp x1, .LANCHOR90 2494 adrp x0, .LANCHOR89 2495 adrp x7, .LANCHOR91 2496 adrp x6, .LANCHOR92 2497 ldr x5, [x1, #:lo12:.LANCHOR90] 2498 adrp x1, .LANCHOR23 2499 str wzr, [x0, #:lo12:.LANCHOR89] 2500 adrp x0, .LANCHOR3 2501 ldrh w10, [x1, #:lo12:.LANCHOR23] 2502 adrp x1, .LANCHOR24 2503 ldrh w0, [x0, #:lo12:.LANCHOR3] 2504 mov w8, 24 2505 ldrh w11, [x1, #:lo12:.LANCHOR24] 2506 adrp x1, .LANCHOR93 2507 ldr x14, [x7, #:lo12:.LANCHOR91] 2508 mov x3, x5 2509 ldr x4, [x1, #:lo12:.LANCHOR93] 2510 mov w2, 0 2511 ldr x15, [x6, #:lo12:.LANCHOR92] 2512 nop // between mem op and mult-accumulate 2513 umaddl x8, w0, w8, x5 2514 add x4, x4, 8 2515 mov w1, 0 2516 mov w16, 1 2517.L273: 2518 add w13, w2, w10 2519 add w12, w1, w11 2520 cmp x3, x8 2521 bne .L274 2522 adrp x1, .LANCHOR94 2523 ldr x7, [x7, #:lo12:.LANCHOR91] 2524 ldr x6, [x6, #:lo12:.LANCHOR92] 2525 mov w8, 24 2526 ldr w4, [x1, #:lo12:.LANCHOR94] 2527.L275: 2528 cmp w0, w4 2529 bcc .L276 2530 ret 2531.L274: 2532 asr w2, w2, 2 2533 asr w1, w1, 2 2534 add x2, x14, x2, sxtw 2 2535 add x1, x15, x1, sxtw 2 2536 str w16, [x3, 16] 2537 stp x2, x1, [x3] 2538 add x3, x3, 24 2539 stp x2, x1, [x4] 2540 add x4, x4, 32 2541 mov w1, w12 2542 mov w2, w13 2543 b .L273 2544.L276: 2545 umull x3, w0, w8 2546 mul w1, w10, w0 2547 add x2, x5, x3 2548 asr w1, w1, 2 2549 add x1, x7, x1, sxtw 2 2550 str wzr, [x2, 16] 2551 str x1, [x5, x3] 2552 mul w1, w11, w0 2553 add w0, w0, 1 2554 and w0, w0, 65535 2555 asr w1, w1, 2 2556 add x1, x6, x1, sxtw 2 2557 str x1, [x2, 8] 2558 b .L275 2559 .size FtlGcBufInit, .-FtlGcBufInit 2560 .section .text.FtlGcBufFree,"ax",@progbits 2561 .align 2 2562 .global FtlGcBufFree 2563 .type FtlGcBufFree, %function 2564FtlGcBufFree: 2565 adrp x2, .LANCHOR94 2566 mov w3, 0 2567 mov w8, 24 2568 ldr w7, [x2, #:lo12:.LANCHOR94] 2569 adrp x2, .LANCHOR90 2570 ldr x5, [x2, #:lo12:.LANCHOR90] 2571.L278: 2572 cmp w3, w1 2573 bcs .L277 2574 ubfiz x4, x3, 5, 16 2575 mov w2, 0 2576 add x4, x0, x4 2577 b .L283 2578.L279: 2579 add w2, w2, 1 2580 and w2, w2, 65535 2581.L283: 2582 cmp w2, w7 2583 bcs .L280 2584 umull x6, w2, w8 2585 add x10, x5, x6 2586 ldr x11, [x5, x6] 2587 ldr x6, [x4, 8] 2588 cmp x11, x6 2589 bne .L279 2590 str wzr, [x10, 16] 2591.L280: 2592 add w3, w3, 1 2593 and w3, w3, 65535 2594 b .L278 2595.L277: 2596 ret 2597 .size FtlGcBufFree, .-FtlGcBufFree 2598 .section .text.FtlGcBufAlloc,"ax",@progbits 2599 .align 2 2600 .global FtlGcBufAlloc 2601 .type FtlGcBufAlloc, %function 2602FtlGcBufAlloc: 2603 adrp x2, .LANCHOR94 2604 mov w3, 0 2605 mov w7, 24 2606 mov w8, 1 2607 ldr w5, [x2, #:lo12:.LANCHOR94] 2608 adrp x2, .LANCHOR90 2609 ldr x6, [x2, #:lo12:.LANCHOR90] 2610.L285: 2611 cmp w3, w1 2612 bcs .L284 2613 mov w2, 0 2614 b .L290 2615.L286: 2616 add w2, w2, 1 2617 and w2, w2, 65535 2618.L290: 2619 cmp w2, w5 2620 bcs .L287 2621 umaddl x4, w2, w7, x6 2622 ldr w10, [x4, 16] 2623 cbnz w10, .L286 2624 ubfiz x2, x3, 5, 16 2625 ldr x10, [x4] 2626 add x2, x0, x2 2627 str w8, [x4, 16] 2628 ldr x4, [x4, 8] 2629 stp x10, x4, [x2, 8] 2630.L287: 2631 add w3, w3, 1 2632 and w3, w3, 65535 2633 b .L285 2634.L284: 2635 ret 2636 .size FtlGcBufAlloc, .-FtlGcBufAlloc 2637 .section .text.IsBlkInGcList,"ax",@progbits 2638 .align 2 2639 .global IsBlkInGcList 2640 .type IsBlkInGcList, %function 2641IsBlkInGcList: 2642 adrp x1, .LANCHOR95 2643 and w0, w0, 65535 2644 ldrh w2, [x1, #:lo12:.LANCHOR95] 2645 adrp x1, .LANCHOR96 2646 ldr x3, [x1, #:lo12:.LANCHOR96] 2647 mov x1, 0 2648.L292: 2649 cmp w2, w1, uxth 2650 bhi .L294 2651 mov w0, 0 2652 ret 2653.L294: 2654 add x1, x1, 1 2655 add x4, x3, x1, lsl 1 2656 ldrh w4, [x4, -2] 2657 cmp w4, w0 2658 bne .L292 2659 mov w0, 1 2660 ret 2661 .size IsBlkInGcList, .-IsBlkInGcList 2662 .section .text.FtlGcUpdatePage,"ax",@progbits 2663 .align 2 2664 .global FtlGcUpdatePage 2665 .type FtlGcUpdatePage, %function 2666FtlGcUpdatePage: 2667 mov w6, w0 2668 mov w10, w1 2669 mov w8, w2 2670 stp x29, x30, [sp, -16]! 2671 lsr w0, w0, 10 2672 add x29, sp, 0 2673 bl P2V_block_in_plane 2674 and w7, w0, 65535 2675 adrp x4, .LANCHOR95 2676 adrp x2, .LANCHOR96 2677 mov x3, 0 2678 ldrh w1, [x4, #:lo12:.LANCHOR95] 2679 ldr x5, [x2, #:lo12:.LANCHOR96] 2680.L297: 2681 and w2, w3, 65535 2682 cmp w2, w1 2683 bcc .L299 2684 bne .L298 2685 and x3, x3, 65535 2686 strh w0, [x5, x3, lsl 1] 2687 ldrh w0, [x4, #:lo12:.LANCHOR95] 2688 add w0, w0, 1 2689 strh w0, [x4, #:lo12:.LANCHOR95] 2690 b .L298 2691.L299: 2692 add x3, x3, 1 2693 add x2, x5, x3, lsl 1 2694 ldrh w2, [x2, -2] 2695 cmp w2, w7 2696 bne .L297 2697.L298: 2698 adrp x4, .LANCHOR97 2699 adrp x1, .LANCHOR98 2700 mov w3, 12 2701 ldrh w0, [x4, #:lo12:.LANCHOR97] 2702 ldr x5, [x1, #:lo12:.LANCHOR98] 2703 umull x3, w0, w3 2704 add w0, w0, 1 2705 add x7, x5, x3 2706 stp w10, w8, [x7, 4] 2707 str w6, [x5, x3] 2708 strh w0, [x4, #:lo12:.LANCHOR97] 2709 ldp x29, x30, [sp], 16 2710 ret 2711 .size FtlGcUpdatePage, .-FtlGcUpdatePage 2712 .section .text.FtlGcRefreshBlock,"ax",@progbits 2713 .align 2 2714 .global FtlGcRefreshBlock 2715 .type FtlGcRefreshBlock, %function 2716FtlGcRefreshBlock: 2717 stp x29, x30, [sp, -32]! 2718 add x29, sp, 0 2719 str x19, [sp, 16] 2720 and w19, w0, 65535 2721 mov w1, w19 2722 adrp x0, .LC73 2723 add x0, x0, :lo12:.LC73 2724 bl printf 2725 adrp x3, .LANCHOR99 2726 ldrh w4, [x3, #:lo12:.LANCHOR99] 2727 cmp w19, w4 2728 beq .L302 2729 adrp x0, .LANCHOR100 2730 ldrh w2, [x0, #:lo12:.LANCHOR100] 2731 cmp w19, w2 2732 beq .L302 2733 mov w1, 65535 2734 cmp w4, w1 2735 bne .L303 2736 strh w19, [x3, #:lo12:.LANCHOR99] 2737.L302: 2738 mov w0, 0 2739 ldr x19, [sp, 16] 2740 ldp x29, x30, [sp], 32 2741 ret 2742.L303: 2743 cmp w2, w1 2744 bne .L302 2745 strh w19, [x0, #:lo12:.LANCHOR100] 2746 b .L302 2747 .size FtlGcRefreshBlock, .-FtlGcRefreshBlock 2748 .section .text.FtlGcMarkBadPhyBlk,"ax",@progbits 2749 .align 2 2750 .global FtlGcMarkBadPhyBlk 2751 .type FtlGcMarkBadPhyBlk, %function 2752FtlGcMarkBadPhyBlk: 2753 stp x29, x30, [sp, -48]! 2754 add x29, sp, 0 2755 stp x19, x20, [sp, 16] 2756 and w20, w0, 65535 2757 adrp x19, .LANCHOR101 2758 str x21, [sp, 32] 2759 mov w0, w20 2760 bl P2V_block_in_plane 2761 ldrh w1, [x19, #:lo12:.LANCHOR101] 2762 mov w2, w20 2763 mov w21, w0 2764 adrp x0, .LC74 2765 add x0, x0, :lo12:.LC74 2766 bl printf 2767 mov w0, w21 2768 bl FtlGcRefreshBlock 2769 ldrh w0, [x19, #:lo12:.LANCHOR101] 2770 adrp x2, .LANCHOR102 2771 add x2, x2, :lo12:.LANCHOR102 2772 mov x1, 0 2773.L306: 2774 cmp w0, w1, uxth 2775 bhi .L308 2776 cmp w0, 15 2777 bhi .L307 2778 add w1, w0, 1 2779 strh w1, [x19, #:lo12:.LANCHOR101] 2780 adrp x1, .LANCHOR102 2781 add x1, x1, :lo12:.LANCHOR102 2782 strh w20, [x1, w0, sxtw 1] 2783 b .L307 2784.L308: 2785 add x1, x1, 1 2786 add x3, x2, x1, lsl 1 2787 ldrh w3, [x3, -2] 2788 cmp w3, w20 2789 bne .L306 2790.L307: 2791 mov w0, 0 2792 ldr x21, [sp, 32] 2793 ldp x19, x20, [sp, 16] 2794 ldp x29, x30, [sp], 48 2795 ret 2796 .size FtlGcMarkBadPhyBlk, .-FtlGcMarkBadPhyBlk 2797 .section .text.FtlGcReFreshBadBlk,"ax",@progbits 2798 .align 2 2799 .global FtlGcReFreshBadBlk 2800 .type FtlGcReFreshBadBlk, %function 2801FtlGcReFreshBadBlk: 2802 adrp x0, .LANCHOR101 2803 ldrh w0, [x0, #:lo12:.LANCHOR101] 2804 cbz w0, .L317 2805 adrp x1, .LANCHOR99 2806 ldrh w2, [x1, #:lo12:.LANCHOR99] 2807 mov w1, 65535 2808 cmp w2, w1 2809 bne .L317 2810 stp x29, x30, [sp, -32]! 2811 add x29, sp, 0 2812 str x19, [sp, 16] 2813 adrp x19, .LANCHOR103 2814 ldrh w1, [x19, #:lo12:.LANCHOR103] 2815 cmp w1, w0 2816 bcc .L312 2817 strh wzr, [x19, #:lo12:.LANCHOR103] 2818.L312: 2819 ldrh w1, [x19, #:lo12:.LANCHOR103] 2820 adrp x0, .LANCHOR102 2821 add x0, x0, :lo12:.LANCHOR102 2822 ldrh w0, [x0, x1, lsl 1] 2823 bl P2V_block_in_plane 2824 bl FtlGcRefreshBlock 2825 ldrh w0, [x19, #:lo12:.LANCHOR103] 2826 add w0, w0, 1 2827 strh w0, [x19, #:lo12:.LANCHOR103] 2828 mov w0, 0 2829 ldr x19, [sp, 16] 2830 ldp x29, x30, [sp], 32 2831 ret 2832.L317: 2833 mov w0, 0 2834 ret 2835 .size FtlGcReFreshBadBlk, .-FtlGcReFreshBadBlk 2836 .section .text.ftl_malloc,"ax",@progbits 2837 .align 2 2838 .global ftl_malloc 2839 .type ftl_malloc, %function 2840ftl_malloc: 2841 mov w1, 0 2842 sxtw x0, w0 2843 b kmalloc 2844 .size ftl_malloc, .-ftl_malloc 2845 .section .text.ftl_free,"ax",@progbits 2846 .align 2 2847 .global ftl_free 2848 .type ftl_free, %function 2849ftl_free: 2850 b free 2851 .size ftl_free, .-ftl_free 2852 .section .text.rknand_print_hex,"ax",@progbits 2853 .align 2 2854 .global rknand_print_hex 2855 .type rknand_print_hex, %function 2856rknand_print_hex: 2857 stp x29, x30, [sp, -96]! 2858 add x29, sp, 0 2859 stp x21, x22, [sp, 32] 2860 mov x22, x1 2861 stp x23, x24, [sp, 48] 2862 adrp x24, .LC75 2863 stp x25, x26, [sp, 64] 2864 mov w23, w2 2865 stp x27, x28, [sp, 80] 2866 adrp x25, .LC77 2867 mov x28, x0 2868 mov w27, w3 2869 add x24, x24, :lo12:.LC75 2870 add x25, x25, :lo12:.LC77 2871 stp x19, x20, [sp, 16] 2872 mov w21, 0 2873 mov x19, 0 2874 mov w20, 0 2875 adrp x26, .LC76 2876.L323: 2877 cmp w27, w19 2878 bhi .L329 2879 ldp x19, x20, [sp, 16] 2880 adrp x0, .LC78 2881 ldp x21, x22, [sp, 32] 2882 add x0, x0, :lo12:.LC78 2883 ldp x23, x24, [sp, 48] 2884 ldp x25, x26, [sp, 64] 2885 ldp x27, x28, [sp, 80] 2886 ldp x29, x30, [sp], 96 2887 b printf 2888.L329: 2889 cbnz w20, .L324 2890 mov w2, w21 2891 mov x1, x28 2892 mov x0, x24 2893 bl printf 2894.L324: 2895 cmp w23, 4 2896 bne .L325 2897 ldr w1, [x22, x19, lsl 2] 2898.L332: 2899 add x0, x26, :lo12:.LC76 2900.L331: 2901 bl printf 2902 add w20, w20, 1 2903 cmp w20, 15 2904 bls .L328 2905 mov w20, 0 2906 adrp x0, .LC78 2907 add x0, x0, :lo12:.LC78 2908 bl printf 2909.L328: 2910 add x19, x19, 1 2911 add w21, w21, w23 2912 b .L323 2913.L325: 2914 cmp w23, 2 2915 bne .L327 2916 ldrh w1, [x22, x19, lsl 1] 2917 b .L332 2918.L327: 2919 ldrb w1, [x22, x19] 2920 mov x0, x25 2921 b .L331 2922 .size rknand_print_hex, .-rknand_print_hex 2923 .section .text.FlashEraseBlocks,"ax",@progbits 2924 .align 2 2925 .global FlashEraseBlocks 2926 .type FlashEraseBlocks, %function 2927FlashEraseBlocks: 2928 stp x29, x30, [sp, -112]! 2929 add x29, sp, 0 2930 stp x19, x20, [sp, 16] 2931 mov x20, x0 2932 adrp x0, .LANCHOR0 2933 add x1, x0, :lo12:.LANCHOR0 2934 stp x23, x24, [sp, 48] 2935 add x19, x20, 4 2936 stp x21, x22, [sp, 32] 2937 ubfiz x21, x2, 5, 32 2938 ldrh w24, [x1, 12] 2939 add x23, x21, 4 2940 stp x25, x26, [sp, 64] 2941 add x23, x20, x23 2942 adrp x25, .LANCHOR105 2943 str x27, [sp, 80] 2944 lsl w26, w24, 3 2945 mov x22, x0 2946 add x27, x25, :lo12:.LANCHOR105 2947.L334: 2948 cmp x19, x23 2949 beq .L348 2950 ldr w0, [x19] 2951 add x2, x29, 104 2952 add x1, x29, 108 2953 bl l2p_addr_tran.isra.0 2954 ldr w0, [x29, 104] 2955 cbnz w0, .L335 2956 ldr w1, [x29, 108] 2957 cmp w26, w1 2958 bls .L335 2959 mov x19, x20 2960 add x21, x20, x21 2961 adrp x22, .LC79 2962 adrp x20, .LANCHOR104 2963 add x22, x22, :lo12:.LC79 2964 add x20, x20, :lo12:.LANCHOR104 2965 mov w23, -1 2966.L336: 2967 cmp x19, x21 2968 bne .L337 2969.L348: 2970 ldp x19, x20, [sp, 16] 2971 mov w0, 0 2972 ldp x21, x22, [sp, 32] 2973 ldp x23, x24, [sp, 48] 2974 ldp x25, x26, [sp, 64] 2975 ldr x27, [sp, 80] 2976 ldp x29, x30, [sp], 112 2977 ret 2978.L337: 2979 ldr w2, [x29, 108] 2980 mov x1, x20 2981 str w23, [x19] 2982 mov x0, x22 2983 add x19, x19, 32 2984 bl printf 2985 ldr x1, [x19, -24] 2986 mov w3, 16 2987 mov w2, 4 2988 adrp x0, .LC80 2989 add x0, x0, :lo12:.LC80 2990 bl rknand_print_hex 2991 ldr x1, [x19, -16] 2992 mov w3, 4 2993 adrp x0, .LC81 2994 mov w2, w3 2995 add x0, x0, :lo12:.LC81 2996 bl rknand_print_hex 2997 b .L336 2998.L335: 2999 add x1, x25, :lo12:.LANCHOR105 3000 ldr x2, [x1, 8] 3001 ldr w1, [x29, 108] 3002 blr x2 3003 cbnz w0, .L338 3004 str wzr, [x19, -4] 3005.L339: 3006 add x0, x22, :lo12:.LANCHOR0 3007 ldrh w0, [x0, 14] 3008 cmp w0, 4 3009 bne .L341 3010 ldrb w0, [x29, 104] 3011 ldr x2, [x27, 8] 3012 ldr w1, [x29, 108] 3013 add w1, w24, w1 3014 blr x2 3015 cbz w0, .L341 3016 mov w0, -1 3017 str w0, [x19, -4] 3018.L341: 3019 add x19, x19, 32 3020 b .L334 3021.L338: 3022 mov w0, -1 3023 str w0, [x19, -4] 3024 b .L339 3025 .size FlashEraseBlocks, .-FlashEraseBlocks 3026 .section .text.FtlFreeSysBlkQueueIn,"ax",@progbits 3027 .align 2 3028 .global FtlFreeSysBlkQueueIn 3029 .type FtlFreeSysBlkQueueIn, %function 3030FtlFreeSysBlkQueueIn: 3031 stp x29, x30, [sp, -48]! 3032 add x29, sp, 0 3033 stp x19, x20, [sp, 16] 3034 and w20, w0, 65535 3035 str x21, [sp, 32] 3036 sub w2, w20, #1 3037 mov w0, 65533 3038 cmp w0, w2, uxth 3039 bcc .L350 3040 adrp x0, .LANCHOR38 3041 add x2, x0, :lo12:.LANCHOR38 3042 mov x19, x0 3043 ldrh w2, [x2, 6] 3044 cmp w2, 1024 3045 beq .L350 3046 and w1, w1, 65535 3047 cbz w1, .L352 3048 mov w0, w20 3049 bl P2V_block_in_plane 3050 and w21, w0, 65535 3051 adrp x0, .LANCHOR106 3052 lsl w1, w20, 10 3053 mov w2, 1 3054 ldr x0, [x0, #:lo12:.LANCHOR106] 3055 str w1, [x0, 4] 3056 mov w1, w2 3057 bl FlashEraseBlocks 3058 adrp x1, .LANCHOR43 3059 ubfiz x0, x21, 1, 16 3060 ldr x2, [x1, #:lo12:.LANCHOR43] 3061 ldrh w1, [x2, x0] 3062 add w1, w1, 1 3063 strh w1, [x2, x0] 3064 adrp x1, .LANCHOR75 3065 ldr w0, [x1, #:lo12:.LANCHOR75] 3066 add w0, w0, 1 3067 str w0, [x1, #:lo12:.LANCHOR75] 3068.L352: 3069 add x0, x19, :lo12:.LANCHOR38 3070 ldrh w1, [x0, 6] 3071 add w1, w1, 1 3072 strh w1, [x0, 6] 3073 ldrh w1, [x0, 4] 3074 add x2, x0, x1, sxtw 1 3075 add w1, w1, 1 3076 and w1, w1, 1023 3077 strh w1, [x0, 4] 3078 strh w20, [x2, 8] 3079.L350: 3080 ldp x19, x20, [sp, 16] 3081 ldr x21, [sp, 32] 3082 ldp x29, x30, [sp], 48 3083 ret 3084 .size FtlFreeSysBlkQueueIn, .-FtlFreeSysBlkQueueIn 3085 .section .text.FtlFreeSysBlkQueueOut,"ax",@progbits 3086 .align 2 3087 .global FtlFreeSysBlkQueueOut 3088 .type FtlFreeSysBlkQueueOut, %function 3089FtlFreeSysBlkQueueOut: 3090 adrp x0, .LANCHOR38 3091 add x1, x0, :lo12:.LANCHOR38 3092 stp x29, x30, [sp, -32]! 3093 add x29, sp, 0 3094 ldrh w2, [x1, 6] 3095 stp x19, x20, [sp, 16] 3096 mov x19, x0 3097 cbz w2, .L364 3098 ldrh w0, [x1, 2] 3099 sub w2, w2, #1 3100 strh w2, [x1, 6] 3101 mov w2, 1 3102 add x3, x1, x0, sxtw 1 3103 add w0, w0, 1 3104 and w0, w0, 1023 3105 strh w0, [x1, 2] 3106 adrp x0, .LANCHOR106 3107 ldrh w20, [x3, 8] 3108 ldr x0, [x0, #:lo12:.LANCHOR106] 3109 lsl w1, w20, 10 3110 str w1, [x0, 4] 3111 mov w1, w2 3112 bl FlashEraseBlocks 3113 adrp x1, .LANCHOR75 3114 ldr w0, [x1, #:lo12:.LANCHOR75] 3115 add w0, w0, 1 3116 str w0, [x1, #:lo12:.LANCHOR75] 3117.L361: 3118 sub w0, w20, #1 3119 mov w1, 65533 3120 cmp w1, w0, uxth 3121 bcs .L362 3122 add x0, x19, :lo12:.LANCHOR38 3123 mov w1, w20 3124 ldrh w2, [x0, 6] 3125 adrp x0, .LC82 3126 add x0, x0, :lo12:.LC82 3127 bl printf 3128.L363: 3129 b .L363 3130.L364: 3131 mov w20, 65535 3132 b .L361 3133.L362: 3134 mov w0, w20 3135 ldp x19, x20, [sp, 16] 3136 ldp x29, x30, [sp], 32 3137 ret 3138 .size FtlFreeSysBlkQueueOut, .-FtlFreeSysBlkQueueOut 3139 .section .text.ftl_map_blk_alloc_new_blk,"ax",@progbits 3140 .align 2 3141 .global ftl_map_blk_alloc_new_blk 3142 .type ftl_map_blk_alloc_new_blk, %function 3143ftl_map_blk_alloc_new_blk: 3144 stp x29, x30, [sp, -48]! 3145 add x29, sp, 0 3146 stp x19, x20, [sp, 16] 3147 mov x19, x0 3148 ldrh w1, [x0, 10] 3149 mov w20, 0 3150 ldr x0, [x0, 16] 3151 str x21, [sp, 32] 3152.L367: 3153 cmp w20, w1 3154 beq .L371 3155 mov x21, x0 3156 ldrh w2, [x0], 2 3157 cbnz w2, .L368 3158 bl FtlFreeSysBlkQueueOut 3159 and w1, w0, 65535 3160 strh w0, [x21] 3161 sub w2, w1, #1 3162 mov w0, 65533 3163 cmp w0, w2, uxth 3164 bcs .L369 3165 adrp x0, .LANCHOR38+6 3166 ldrh w2, [x0, #:lo12:.LANCHOR38+6] 3167 adrp x0, .LC83 3168 add x0, x0, :lo12:.LC83 3169 bl printf 3170.L370: 3171 b .L370 3172.L369: 3173 ldr w0, [x19, 48] 3174 strh wzr, [x19, 2] 3175 add w0, w0, 1 3176 str w0, [x19, 48] 3177 ldrh w0, [x19, 8] 3178 strh w20, [x19] 3179 add w0, w0, 1 3180 strh w0, [x19, 8] 3181.L371: 3182 ldrh w0, [x19, 10] 3183 cmp w0, w20 3184 bhi .L373 3185 adrp x1, .LANCHOR107 3186 adrp x0, .LC1 3187 mov w2, 578 3188 add x1, x1, :lo12:.LANCHOR107 3189 add x0, x0, :lo12:.LC1 3190 bl printf 3191.L373: 3192 mov w0, 0 3193 ldr x21, [sp, 32] 3194 ldp x19, x20, [sp, 16] 3195 ldp x29, x30, [sp], 48 3196 ret 3197.L368: 3198 add w20, w20, 1 3199 and w20, w20, 65535 3200 b .L367 3201 .size ftl_map_blk_alloc_new_blk, .-ftl_map_blk_alloc_new_blk 3202 .section .text.ftl_memset,"ax",@progbits 3203 .align 2 3204 .global ftl_memset 3205 .type ftl_memset, %function 3206ftl_memset: 3207 uxtw x2, w2 3208 b memset 3209 .size ftl_memset, .-ftl_memset 3210 .section .text.FtlMemInit,"ax",@progbits 3211 .align 2 3212 .global FtlMemInit 3213 .type FtlMemInit, %function 3214FtlMemInit: 3215 stp x29, x30, [sp, -208]! 3216 adrp x0, .LANCHOR70 3217 mov w1, 65535 3218 add x29, sp, 0 3219 str wzr, [x0, #:lo12:.LANCHOR70] 3220 adrp x0, .LANCHOR71 3221 stp x19, x20, [sp, 16] 3222 adrp x19, .LANCHOR21 3223 str wzr, [x0, #:lo12:.LANCHOR71] 3224 adrp x0, .LANCHOR67 3225 stp x21, x22, [sp, 32] 3226 adrp x22, .LANCHOR3 3227 str wzr, [x0, #:lo12:.LANCHOR67] 3228 adrp x0, .LANCHOR64 3229 stp x23, x24, [sp, 48] 3230 adrp x21, .LANCHOR23 3231 str wzr, [x0, #:lo12:.LANCHOR64] 3232 adrp x0, .LANCHOR63 3233 stp x25, x26, [sp, 64] 3234 adrp x24, .LANCHOR118 3235 str wzr, [x0, #:lo12:.LANCHOR63] 3236 adrp x0, .LANCHOR65 3237 stp x27, x28, [sp, 80] 3238 adrp x23, .LANCHOR124 3239 str wzr, [x0, #:lo12:.LANCHOR65] 3240 adrp x0, .LANCHOR66 3241 adrp x25, .LANCHOR42 3242 adrp x27, .LANCHOR129 3243 str wzr, [x0, #:lo12:.LANCHOR66] 3244 adrp x0, .LANCHOR62 3245 adrp x26, .LANCHOR130 3246 str wzr, [x0, #:lo12:.LANCHOR62] 3247 adrp x0, .LANCHOR72 3248 str wzr, [x0, #:lo12:.LANCHOR72] 3249 adrp x0, .LANCHOR73 3250 str wzr, [x0, #:lo12:.LANCHOR73] 3251 adrp x0, .LANCHOR75 3252 str wzr, [x0, #:lo12:.LANCHOR75] 3253 adrp x0, .LANCHOR76 3254 str wzr, [x0, #:lo12:.LANCHOR76] 3255 adrp x0, .LANCHOR77 3256 str wzr, [x0, #:lo12:.LANCHOR77] 3257 adrp x0, .LANCHOR108 3258 str wzr, [x0, #:lo12:.LANCHOR108] 3259 adrp x0, .LANCHOR87 3260 str wzr, [x0, #:lo12:.LANCHOR87] 3261 adrp x0, .LANCHOR109 3262 str w1, [x0, #:lo12:.LANCHOR109] 3263 adrp x0, .LANCHOR110 3264 adrp x1, .LANCHOR99 3265 str wzr, [x0, #:lo12:.LANCHOR110] 3266 adrp x0, .LANCHOR84 3267 str wzr, [x0, #:lo12:.LANCHOR84] 3268 adrp x0, .LANCHOR111 3269 str wzr, [x0, #:lo12:.LANCHOR111] 3270 mov w0, -1 3271 strh w0, [x1, #:lo12:.LANCHOR99] 3272 adrp x1, .LANCHOR100 3273 strh w0, [x1, #:lo12:.LANCHOR100] 3274 adrp x0, .LANCHOR82 3275 mov w1, 32 3276 strh w1, [x0, #:lo12:.LANCHOR82] 3277 adrp x0, .LANCHOR83 3278 mov w1, 128 3279 strh w1, [x0, #:lo12:.LANCHOR83] 3280 adrp x0, .LANCHOR85 3281 strh wzr, [x0, #:lo12:.LANCHOR85] 3282 adrp x0, .LANCHOR101 3283 strh wzr, [x0, #:lo12:.LANCHOR101] 3284 adrp x0, .LANCHOR103 3285 strh wzr, [x0, #:lo12:.LANCHOR103] 3286 ldrh w0, [x19, #:lo12:.LANCHOR21] 3287 lsl w0, w0, 1 3288 bl ftl_malloc 3289 adrp x1, .LANCHOR96 3290 str x0, [x1, #:lo12:.LANCHOR96] 3291 mov w0, 12 3292 ldrh w1, [x19, #:lo12:.LANCHOR21] 3293 mul w0, w1, w0 3294 bl ftl_malloc 3295 ldrh w19, [x22, #:lo12:.LANCHOR3] 3296 adrp x5, .LANCHOR98 3297 str x5, [x29, 104] 3298 lsl w20, w19, 5 3299 lsl w19, w19, 7 3300 str x0, [x5, #:lo12:.LANCHOR98] 3301 mov w0, w19 3302 bl ftl_malloc 3303 adrp x15, .LANCHOR112 3304 str x15, [x29, 112] 3305 str x0, [x15, #:lo12:.LANCHOR112] 3306 mov w0, w20 3307 bl ftl_malloc 3308 adrp x11, .LANCHOR113 3309 str x11, [x29, 120] 3310 str x0, [x11, #:lo12:.LANCHOR113] 3311 mov w0, w19 3312 bl ftl_malloc 3313 adrp x14, .LANCHOR114 3314 str x14, [x29, 128] 3315 str x0, [x14, #:lo12:.LANCHOR114] 3316 mov w0, w20 3317 bl ftl_malloc 3318 adrp x13, .LANCHOR106 3319 str x13, [x29, 136] 3320 str x0, [x13, #:lo12:.LANCHOR106] 3321 mov w0, w20 3322 bl ftl_malloc 3323 adrp x20, .LANCHOR94 3324 adrp x12, .LANCHOR93 3325 ldrh w19, [x21, #:lo12:.LANCHOR23] 3326 str x12, [x29, 144] 3327 str x0, [x12, #:lo12:.LANCHOR93] 3328 ldrh w0, [x22, #:lo12:.LANCHOR3] 3329 lsl w0, w0, 1 3330 add w0, w0, 1 3331 str w0, [x20, #:lo12:.LANCHOR94] 3332 mov w0, w19 3333 bl ftl_malloc 3334 adrp x10, .LANCHOR115 3335 str x10, [x29, 152] 3336 str x0, [x10, #:lo12:.LANCHOR115] 3337 mov w0, w19 3338 bl ftl_malloc 3339 adrp x8, .LANCHOR116 3340 str x8, [x29, 160] 3341 str x0, [x8, #:lo12:.LANCHOR116] 3342 mov w0, w19 3343 bl ftl_malloc 3344 adrp x7, .LANCHOR117 3345 str x7, [x29, 168] 3346 str x0, [x7, #:lo12:.LANCHOR117] 3347 ldr w0, [x20, #:lo12:.LANCHOR94] 3348 mul w0, w19, w0 3349 bl ftl_malloc 3350 adrp x6, .LANCHOR91 3351 str x6, [x29, 176] 3352 str x0, [x6, #:lo12:.LANCHOR91] 3353 mov w0, w19 3354 bl ftl_malloc 3355 str x0, [x24, #:lo12:.LANCHOR118] 3356 mov w0, w19 3357 bl ftl_malloc 3358 adrp x4, .LANCHOR119 3359 ldr w2, [x20, #:lo12:.LANCHOR94] 3360 str x4, [x29, 184] 3361 str x0, [x4, #:lo12:.LANCHOR119] 3362 mov w0, 24 3363 mul w0, w2, w0 3364 bl ftl_malloc 3365 adrp x3, .LANCHOR90 3366 str x3, [x29, 192] 3367 str x0, [x3, #:lo12:.LANCHOR90] 3368 mov w0, w19 3369 bl ftl_malloc 3370 adrp x2, .LANCHOR120 3371 str x0, [x2, #:lo12:.LANCHOR120] 3372 mov w0, w19 3373 bl ftl_malloc 3374 adrp x19, .LANCHOR24 3375 adrp x2, .LANCHOR121 3376 str x0, [x2, #:lo12:.LANCHOR121] 3377 adrp x0, .LANCHOR12 3378 ldrh w0, [x0, #:lo12:.LANCHOR12] 3379 lsl w0, w0, 2 3380 bl ftl_malloc 3381 adrp x2, .LANCHOR122 3382 ldrh w28, [x19, #:lo12:.LANCHOR24] 3383 str x0, [x2, #:lo12:.LANCHOR122] 3384 ldrh w0, [x22, #:lo12:.LANCHOR3] 3385 adrp x22, .LANCHOR92 3386 mul w28, w28, w0 3387 mov w0, w28 3388 bl ftl_malloc 3389 adrp x1, .LANCHOR123 3390 str x0, [x1, #:lo12:.LANCHOR123] 3391 lsl w0, w28, 2 3392 bl ftl_malloc 3393 str x0, [x23, #:lo12:.LANCHOR124] 3394 ldrh w1, [x19, #:lo12:.LANCHOR24] 3395 adrp x28, .LANCHOR125 3396 ldr w0, [x20, #:lo12:.LANCHOR94] 3397 adrp x20, .LANCHOR6 3398 mul w0, w1, w0 3399 bl ftl_malloc 3400 str x0, [x22, #:lo12:.LANCHOR92] 3401 ldrh w0, [x20, #:lo12:.LANCHOR6] 3402 ubfiz w0, w0, 1, 15 3403 strh w0, [x28, #:lo12:.LANCHOR125] 3404 and w0, w0, 65534 3405 bl ftl_malloc 3406 adrp x1, .LANCHOR126 3407 str x0, [x1, #:lo12:.LANCHOR126] 3408 ldrh w0, [x28, #:lo12:.LANCHOR125] 3409 add x0, x0, 547 3410 lsr x0, x0, 9 3411 strh w0, [x28, #:lo12:.LANCHOR125] 3412 lsl w0, w0, 9 3413 bl ftl_malloc 3414 adrp x1, .LANCHOR127 3415 ldrh w28, [x20, #:lo12:.LANCHOR6] 3416 str x0, [x1, #:lo12:.LANCHOR127] 3417 adrp x1, .LANCHOR43 3418 lsl w28, w28, 1 3419 add x0, x0, 32 3420 str x0, [x1, #:lo12:.LANCHOR43] 3421 mov w0, w28 3422 bl ftl_malloc 3423 adrp x1, .LANCHOR128 3424 str x0, [x1, #:lo12:.LANCHOR128] 3425 mov w0, w28 3426 adrp x28, .LANCHOR30 3427 bl ftl_malloc 3428 str x0, [x25, #:lo12:.LANCHOR42] 3429 ldr w1, [x28, #:lo12:.LANCHOR30] 3430 lsl w19, w1, 1 3431 mov w0, w19 3432 bl ftl_malloc 3433 str x0, [x27, #:lo12:.LANCHOR129] 3434 mov w0, w19 3435 bl ftl_malloc 3436 str x0, [x26, #:lo12:.LANCHOR130] 3437 ldrh w0, [x20, #:lo12:.LANCHOR6] 3438 adrp x19, .LANCHOR27 3439 lsr w0, w0, 3 3440 add w0, w0, 4 3441 bl ftl_malloc 3442 adrp x1, .LANCHOR1 3443 str x0, [x1, #:lo12:.LANCHOR1] 3444 ldrh w0, [x19, #:lo12:.LANCHOR27] 3445 lsl w0, w0, 1 3446 bl ftl_malloc 3447 adrp x2, .LANCHOR36 3448 str x0, [x2, #:lo12:.LANCHOR36] 3449 ldrh w0, [x19, #:lo12:.LANCHOR27] 3450 lsl w0, w0, 1 3451 bl ftl_malloc 3452 adrp x2, .LANCHOR131 3453 str x0, [x2, #:lo12:.LANCHOR131] 3454 ldrh w0, [x19, #:lo12:.LANCHOR27] 3455 adrp x19, .LANCHOR43 3456 lsl w0, w0, 2 3457 bl ftl_malloc 3458 adrp x1, .LANCHOR132 3459 str x0, [x1, #:lo12:.LANCHOR132] 3460 adrp x1, .LANCHOR28 3461 str x1, [x29, 200] 3462 ldrh w0, [x1, #:lo12:.LANCHOR28] 3463 lsl w0, w0, 2 3464 bl ftl_malloc 3465 ldr x1, [x29, 200] 3466 adrp x2, .LANCHOR133 3467 str x0, [x2, #:lo12:.LANCHOR133] 3468 ldrh w2, [x1, #:lo12:.LANCHOR28] 3469 mov w1, 0 3470 lsl w2, w2, 2 3471 bl ftl_memset 3472 adrp x0, .LANCHOR32 3473 ldrh w0, [x0, #:lo12:.LANCHOR32] 3474 lsl w0, w0, 2 3475 bl ftl_malloc 3476 adrp x1, .LANCHOR134 3477 str x0, [x1, #:lo12:.LANCHOR134] 3478 ldr w0, [x28, #:lo12:.LANCHOR30] 3479 adrp x28, .LANCHOR33 3480 lsl w0, w0, 2 3481 bl ftl_malloc 3482 adrp x1, .LANCHOR135 3483 str x0, [x1, #:lo12:.LANCHOR135] 3484 ldrh w0, [x28, #:lo12:.LANCHOR33] 3485 lsl w0, w0, 4 3486 bl ftl_malloc 3487 adrp x1, .LANCHOR55 3488 str x0, [x1, #:lo12:.LANCHOR55] 3489 ldrh w1, [x28, #:lo12:.LANCHOR33] 3490 ldrh w0, [x21, #:lo12:.LANCHOR23] 3491 adrp x21, .LANCHOR10 3492 mul w0, w1, w0 3493 bl ftl_malloc 3494 adrp x1, .LANCHOR136 3495 str x0, [x1, #:lo12:.LANCHOR136] 3496 mov w0, 6 3497 ldrh w1, [x20, #:lo12:.LANCHOR6] 3498 adrp x20, .LANCHOR137 3499 mul w0, w1, w0 3500 bl ftl_malloc 3501 adrp x1, .LANCHOR40 3502 str x0, [x1, #:lo12:.LANCHOR40] 3503 adrp x0, .LANCHOR17 3504 ldrh w1, [x21, #:lo12:.LANCHOR10] 3505 ldrh w0, [x0, #:lo12:.LANCHOR17] 3506 add w0, w0, 31 3507 asr w0, w0, 5 3508 strh w0, [x20, #:lo12:.LANCHOR137] 3509 mul w0, w1, w0 3510 lsl w0, w0, 2 3511 bl ftl_malloc 3512 ldp x5, x15, [x29, 104] 3513 adrp x1, .LANCHOR37 3514 ldrh w20, [x20, #:lo12:.LANCHOR137] 3515 add x2, x1, :lo12:.LANCHOR37 3516 ldp x11, x14, [x29, 120] 3517 mov w30, w20 3518 ldp x13, x12, [x29, 136] 3519 mov x16, x5 3520 ldp x10, x8, [x29, 152] 3521 mov x5, x24 3522 ldp x7, x6, [x29, 168] 3523 str x0, [x2, 32] 3524 ldp x4, x3, [x29, 184] 3525 adrp x17, .LANCHOR96 3526 ldrh w28, [x21, #:lo12:.LANCHOR10] 3527 add x21, x2, 40 3528 adrp x24, .LANCHOR123 3529 mov x0, 1 3530 str x19, [x29, 200] 3531.L377: 3532 cmp w0, w28 3533 bcc .L378 3534 mov w2, 8 3535 sub w2, w2, w0 3536 add x2, x2, 1 3537 add x1, x1, :lo12:.LANCHOR37 3538 mov x19, 0 3539.L379: 3540 add x19, x19, 1 3541 cmp x19, x2 3542 bne .L380 3543 ldr x0, [x27, #:lo12:.LANCHOR129] 3544 cbnz x0, .L381 3545.L383: 3546 adrp x1, .LANCHOR138 3547 adrp x0, .LC84 3548 add x1, x1, :lo12:.LANCHOR138 3549 add x0, x0, :lo12:.LC84 3550 bl printf 3551 mov w0, -1 3552.L376: 3553 ldp x19, x20, [sp, 16] 3554 ldp x21, x22, [sp, 32] 3555 ldp x23, x24, [sp, 48] 3556 ldp x25, x26, [sp, 64] 3557 ldp x27, x28, [sp, 80] 3558 ldp x29, x30, [sp], 208 3559 ret 3560.L378: 3561 ldr x19, [x2, 32] 3562 add w0, w0, 1 3563 add x19, x19, x30, uxtw 2 3564 add w30, w30, w20 3565 str x19, [x21], 8 3566 b .L377 3567.L380: 3568 add x20, x0, x19 3569 add x20, x1, x20, lsl 3 3570 str xzr, [x20, 24] 3571 b .L379 3572.L381: 3573 ldr x0, [x26, #:lo12:.LANCHOR130] 3574 cbz x0, .L383 3575 adrp x0, .LANCHOR134 3576 ldr x0, [x0, #:lo12:.LANCHOR134] 3577 cbz x0, .L383 3578 adrp x0, .LANCHOR135 3579 ldr x0, [x0, #:lo12:.LANCHOR135] 3580 cbz x0, .L383 3581 adrp x0, .LANCHOR55 3582 ldr x0, [x0, #:lo12:.LANCHOR55] 3583 cbz x0, .L383 3584 adrp x0, .LANCHOR136 3585 ldr x0, [x0, #:lo12:.LANCHOR136] 3586 cbz x0, .L383 3587 adrp x0, .LANCHOR40 3588 ldr x0, [x0, #:lo12:.LANCHOR40] 3589 cbz x0, .L383 3590 adrp x0, .LANCHOR37+32 3591 ldr x0, [x0, #:lo12:.LANCHOR37+32] 3592 cbz x0, .L383 3593 ldr x0, [x25, #:lo12:.LANCHOR42] 3594 cbz x0, .L383 3595 ldr x0, [x17, #:lo12:.LANCHOR96] 3596 cbz x0, .L383 3597 ldr x0, [x16, #:lo12:.LANCHOR98] 3598 cbz x0, .L383 3599 ldr x0, [x15, #:lo12:.LANCHOR112] 3600 cbz x0, .L383 3601 ldr x0, [x14, #:lo12:.LANCHOR114] 3602 cbz x0, .L383 3603 ldr x0, [x13, #:lo12:.LANCHOR106] 3604 cbz x0, .L383 3605 ldr x0, [x12, #:lo12:.LANCHOR93] 3606 cbz x0, .L383 3607 ldr x0, [x11, #:lo12:.LANCHOR113] 3608 cbz x0, .L383 3609 ldr x0, [x10, #:lo12:.LANCHOR115] 3610 cbz x0, .L383 3611 ldr x0, [x8, #:lo12:.LANCHOR116] 3612 cbz x0, .L383 3613 ldr x0, [x7, #:lo12:.LANCHOR117] 3614 cbz x0, .L383 3615 ldr x0, [x6, #:lo12:.LANCHOR91] 3616 cbz x0, .L383 3617 ldr x0, [x5, #:lo12:.LANCHOR118] 3618 cbz x0, .L383 3619 ldr x0, [x4, #:lo12:.LANCHOR119] 3620 cbz x0, .L383 3621 ldr x0, [x3, #:lo12:.LANCHOR90] 3622 cbz x0, .L383 3623 ldr x0, [x24, #:lo12:.LANCHOR123] 3624 cbz x0, .L383 3625 ldr x0, [x23, #:lo12:.LANCHOR124] 3626 cbz x0, .L383 3627 ldr x0, [x22, #:lo12:.LANCHOR92] 3628 cbz x0, .L383 3629 ldr x0, [x29, 200] 3630 ldr x0, [x0, #:lo12:.LANCHOR43] 3631 cbz x0, .L383 3632 adrp x0, .LANCHOR126 3633 ldr x0, [x0, #:lo12:.LANCHOR126] 3634 cbz x0, .L383 3635 adrp x0, .LANCHOR36 3636 ldr x0, [x0, #:lo12:.LANCHOR36] 3637 cbz x0, .L383 3638 adrp x0, .LANCHOR131 3639 ldr x0, [x0, #:lo12:.LANCHOR131] 3640 cbz x0, .L383 3641 adrp x0, .LANCHOR132 3642 ldr x0, [x0, #:lo12:.LANCHOR132] 3643 cbz x0, .L383 3644 adrp x0, .LANCHOR133 3645 ldr x0, [x0, #:lo12:.LANCHOR133] 3646 cbz x0, .L383 3647 mov w0, 0 3648 b .L376 3649 .size FtlMemInit, .-FtlMemInit 3650 .section .text.FtlBbt2Bitmap,"ax",@progbits 3651 .align 2 3652 .global FtlBbt2Bitmap 3653 .type FtlBbt2Bitmap, %function 3654FtlBbt2Bitmap: 3655 stp x29, x30, [sp, -64]! 3656 add x29, sp, 0 3657 stp x21, x22, [sp, 32] 3658 mov x22, x0 3659 adrp x0, .LANCHOR137 3660 stp x23, x24, [sp, 48] 3661 adrp x21, .LANCHOR17 3662 adrp x23, .LANCHOR139 3663 ldrh w2, [x0, #:lo12:.LANCHOR137] 3664 add x21, x21, :lo12:.LANCHOR17 3665 add x23, x23, :lo12:.LANCHOR139 3666 stp x19, x20, [sp, 16] 3667 mov w24, 65535 3668 mov x19, 0 3669 mov x20, x1 3670 lsl w2, w2, 2 3671 mov w1, 0 3672 mov x0, x20 3673 bl ftl_memset 3674.L481: 3675 ldrh w0, [x22, x19] 3676 cmp w0, w24 3677 beq .L478 3678 ldrh w1, [x21] 3679 cmp w1, w0 3680 bhi .L480 3681 adrp x0, .LC1 3682 mov w2, 74 3683 mov x1, x23 3684 add x0, x0, :lo12:.LC1 3685 bl printf 3686.L480: 3687 ldrh w2, [x22, x19] 3688 mov w1, 1 3689 add x19, x19, 2 3690 cmp x19, 1024 3691 ubfx x0, x2, 5, 11 3692 lsl w2, w1, w2 3693 lsl x0, x0, 2 3694 ldr w1, [x20, x0] 3695 orr w1, w1, w2 3696 str w1, [x20, x0] 3697 bne .L481 3698.L478: 3699 ldp x19, x20, [sp, 16] 3700 ldp x21, x22, [sp, 32] 3701 ldp x23, x24, [sp, 48] 3702 ldp x29, x30, [sp], 64 3703 ret 3704 .size FtlBbt2Bitmap, .-FtlBbt2Bitmap 3705 .section .text.FtlBbtMemInit,"ax",@progbits 3706 .align 2 3707 .global FtlBbtMemInit 3708 .type FtlBbtMemInit, %function 3709FtlBbtMemInit: 3710 adrp x1, .LANCHOR37 3711 add x0, x1, :lo12:.LANCHOR37 3712 mov w2, -1 3713 add x0, x0, 12 3714 strh w2, [x1, #:lo12:.LANCHOR37] 3715 mov w2, 16 3716 strh wzr, [x0, -6] 3717 mov w1, 255 3718 b ftl_memset 3719 .size FtlBbtMemInit, .-FtlBbtMemInit 3720 .section .text.FtlFreeSysBlkQueueInit,"ax",@progbits 3721 .align 2 3722 .global FtlFreeSysBlkQueueInit 3723 .type FtlFreeSysBlkQueueInit, %function 3724FtlFreeSysBlkQueueInit: 3725 stp x29, x30, [sp, -16]! 3726 adrp x1, .LANCHOR38 3727 add x3, x1, :lo12:.LANCHOR38 3728 mov w2, 2048 3729 add x29, sp, 0 3730 strh w0, [x1, #:lo12:.LANCHOR38] 3731 mov w1, 0 3732 strh wzr, [x3, 2] 3733 add x0, x3, 8 3734 strh wzr, [x3, 4] 3735 strh wzr, [x3, 6] 3736 bl ftl_memset 3737 mov w0, 0 3738 ldp x29, x30, [sp], 16 3739 ret 3740 .size FtlFreeSysBlkQueueInit, .-FtlFreeSysBlkQueueInit 3741 .section .text.ftl_free_no_use_map_blk,"ax",@progbits 3742 .align 2 3743 .global ftl_free_no_use_map_blk 3744 .type ftl_free_no_use_map_blk, %function 3745ftl_free_no_use_map_blk: 3746 stp x29, x30, [sp, -80]! 3747 mov w1, 0 3748 add x29, sp, 0 3749 stp x19, x20, [sp, 16] 3750 mov x19, x0 3751 ldrh w2, [x0, 10] 3752 stp x21, x22, [sp, 32] 3753 ldp x21, x20, [x0, 32] 3754 stp x23, x24, [sp, 48] 3755 ldr x22, [x0, 16] 3756 lsl w2, w2, 1 3757 mov x0, x21 3758 str x25, [sp, 64] 3759 bl ftl_memset 3760 mov w0, 0 3761.L489: 3762 ldrh w1, [x19, 6] 3763 cmp w1, w0 3764 bhi .L493 3765 adrp x0, .LANCHOR20 3766 mov w23, 0 3767 mov w20, 0 3768 ldrh w1, [x0, #:lo12:.LANCHOR20] 3769 ldrh w0, [x19] 3770 strh w1, [x21, x0, lsl 1] 3771 ldrh w24, [x21] 3772.L494: 3773 ldrh w0, [x19, 10] 3774 cmp w0, w20 3775 bhi .L498 3776 mov w0, w23 3777 ldr x25, [sp, 64] 3778 ldp x19, x20, [sp, 16] 3779 ldp x21, x22, [sp, 32] 3780 ldp x23, x24, [sp, 48] 3781 ldp x29, x30, [sp], 80 3782 ret 3783.L493: 3784 ubfiz x1, x0, 2, 16 3785 ldr w2, [x20, x1] 3786 mov w1, 0 3787 ubfx x2, x2, 10, 16 3788.L490: 3789 ldrh w3, [x19, 10] 3790 cmp w3, w1 3791 bhi .L492 3792 add w0, w0, 1 3793 and w0, w0, 65535 3794 b .L489 3795.L492: 3796 ubfiz x3, x1, 1, 16 3797 ldrh w4, [x22, x3] 3798 cmp w4, w2 3799 bne .L491 3800 cbz w2, .L491 3801 ldrh w4, [x21, x3] 3802 add w4, w4, 1 3803 strh w4, [x21, x3] 3804.L491: 3805 add w1, w1, 1 3806 and w1, w1, 65535 3807 b .L490 3808.L498: 3809 ubfiz x0, x20, 1, 16 3810 ldrh w1, [x21, x0] 3811 cmp w24, w1 3812 bls .L495 3813 add x25, x22, x0 3814 ldrh w0, [x22, x0] 3815 cbnz w0, .L496 3816.L497: 3817 add w20, w20, 1 3818 and w20, w20, 65535 3819 b .L494 3820.L495: 3821 cbnz w1, .L497 3822 add x25, x22, x0 3823 ldrh w0, [x22, x0] 3824 cbz w0, .L497 3825.L499: 3826 mov w1, 1 3827 bl FtlFreeSysBlkQueueIn 3828 strh wzr, [x25] 3829 ldrh w0, [x19, 8] 3830 sub w0, w0, #1 3831 strh w0, [x19, 8] 3832 b .L497 3833.L500: 3834 mov w24, 0 3835 b .L499 3836.L496: 3837 mov w23, w20 3838 cbz w1, .L500 3839 mov w24, w1 3840 b .L497 3841 .size ftl_free_no_use_map_blk, .-ftl_free_no_use_map_blk 3842 .section .text.FtlL2PDataInit,"ax",@progbits 3843 .align 2 3844 .global FtlL2PDataInit 3845 .type FtlL2PDataInit, %function 3846FtlL2PDataInit: 3847 stp x29, x30, [sp, -64]! 3848 mov w1, 0 3849 add x29, sp, 0 3850 stp x19, x20, [sp, 16] 3851 adrp x19, .LANCHOR130 3852 adrp x20, .LANCHOR30 3853 stp x21, x22, [sp, 32] 3854 ldr x0, [x19, #:lo12:.LANCHOR130] 3855 adrp x22, .LANCHOR23 3856 ldr w2, [x20, #:lo12:.LANCHOR30] 3857 adrp x21, .LANCHOR33 3858 str x23, [sp, 48] 3859 adrp x23, .LANCHOR136 3860 lsl w2, w2, 1 3861 bl ftl_memset 3862 ldrh w0, [x21, #:lo12:.LANCHOR33] 3863 mov w1, 255 3864 ldrh w2, [x22, #:lo12:.LANCHOR23] 3865 mul w2, w2, w0 3866 ldr x0, [x23, #:lo12:.LANCHOR136] 3867 bl ftl_memset 3868 adrp x0, .LANCHOR55 3869 ldrh w3, [x21, #:lo12:.LANCHOR33] 3870 ldr x6, [x23, #:lo12:.LANCHOR136] 3871 mov x1, 0 3872 ldr x0, [x0, #:lo12:.LANCHOR55] 3873 mov w2, -1 3874 ldrh w5, [x22, #:lo12:.LANCHOR23] 3875 add x3, x0, x3, lsl 4 3876.L510: 3877 add x4, x1, x5 3878 cmp x0, x3 3879 bne .L511 3880 adrp x1, .LANCHOR140 3881 add x0, x1, :lo12:.LANCHOR140 3882 ldp x21, x22, [sp, 32] 3883 strh w2, [x1, #:lo12:.LANCHOR140] 3884 ldr w1, [x20, #:lo12:.LANCHOR30] 3885 strh w1, [x0, 10] 3886 mov w1, -3902 3887 strh w1, [x0, 4] 3888 adrp x1, .LANCHOR141 3889 ldr x23, [sp, 48] 3890 strh w2, [x0, 2] 3891 ldrh w1, [x1, #:lo12:.LANCHOR141] 3892 strh w1, [x0, 8] 3893 adrp x1, .LANCHOR32 3894 ldrh w1, [x1, #:lo12:.LANCHOR32] 3895 strh w1, [x0, 6] 3896 adrp x1, .LANCHOR129 3897 ldr x1, [x1, #:lo12:.LANCHOR129] 3898 str x1, [x0, 16] 3899 adrp x1, .LANCHOR135 3900 ldr x1, [x1, #:lo12:.LANCHOR135] 3901 str x1, [x0, 24] 3902 ldr x1, [x19, #:lo12:.LANCHOR130] 3903 ldp x19, x20, [sp, 16] 3904 str x1, [x0, 32] 3905 adrp x1, .LANCHOR134 3906 ldr x1, [x1, #:lo12:.LANCHOR134] 3907 str x1, [x0, 40] 3908 ldp x29, x30, [sp], 64 3909 ret 3910.L511: 3911 and x1, x1, -4 3912 strh w2, [x0] 3913 add x1, x6, x1 3914 str wzr, [x0, 4] 3915 str x1, [x0, 8] 3916 add x0, x0, 16 3917 mov x1, x4 3918 b .L510 3919 .size FtlL2PDataInit, .-FtlL2PDataInit 3920 .section .text.FtlVariablesInit,"ax",@progbits 3921 .align 2 3922 .global FtlVariablesInit 3923 .type FtlVariablesInit, %function 3924FtlVariablesInit: 3925 stp x29, x30, [sp, -32]! 3926 adrp x0, .LANCHOR142 3927 mov w1, -1 3928 add x29, sp, 0 3929 strh w1, [x0, #:lo12:.LANCHOR142] 3930 adrp x0, .LANCHOR143 3931 mov w1, -1 3932 str x19, [sp, 16] 3933 str wzr, [x0, #:lo12:.LANCHOR143] 3934 adrp x0, .LANCHOR144 3935 adrp x19, .LANCHOR6 3936 str wzr, [x0, #:lo12:.LANCHOR144] 3937 adrp x0, .LANCHOR145 3938 str w1, [x0, #:lo12:.LANCHOR145] 3939 adrp x0, .LANCHOR35 3940 mov w1, 0 3941 strh wzr, [x0, #:lo12:.LANCHOR35] 3942 adrp x0, .LANCHOR27 3943 ldrh w2, [x0, #:lo12:.LANCHOR27] 3944 adrp x0, .LANCHOR36 3945 ldr x0, [x0, #:lo12:.LANCHOR36] 3946 lsl w2, w2, 1 3947 bl ftl_memset 3948 adrp x0, .LANCHOR43 3949 ldrh w2, [x19, #:lo12:.LANCHOR6] 3950 mov w1, 0 3951 ldr x0, [x0, #:lo12:.LANCHOR43] 3952 lsl w2, w2, 1 3953 bl ftl_memset 3954 adrp x0, .LANCHOR126 3955 ldrh w2, [x19, #:lo12:.LANCHOR6] 3956 mov w1, 0 3957 ldr x0, [x0, #:lo12:.LANCHOR126] 3958 lsl w2, w2, 1 3959 bl ftl_memset 3960 mov w2, 48 3961 mov w1, 0 3962 adrp x0, .LANCHOR39 3963 add x0, x0, :lo12:.LANCHOR39 3964 bl ftl_memset 3965 mov w2, 512 3966 mov w1, 0 3967 adrp x0, .LANCHOR81 3968 add x0, x0, :lo12:.LANCHOR81 3969 bl ftl_memset 3970 bl FtlGcBufInit 3971 bl FtlL2PDataInit 3972 ldr x19, [sp, 16] 3973 mov w0, 0 3974 ldp x29, x30, [sp], 32 3975 ret 3976 .size FtlVariablesInit, .-FtlVariablesInit 3977 .section .text.SupperBlkListInit,"ax",@progbits 3978 .align 2 3979 .global SupperBlkListInit 3980 .type SupperBlkListInit, %function 3981SupperBlkListInit: 3982 stp x29, x30, [sp, -96]! 3983 adrp x0, .LANCHOR6 3984 mov w1, 0 3985 add x29, sp, 0 3986 ldrh w2, [x0, #:lo12:.LANCHOR6] 3987 mov w0, 6 3988 stp x23, x24, [sp, 48] 3989 adrp x24, .LANCHOR40 3990 stp x19, x20, [sp, 16] 3991 adrp x23, .LANCHOR45 3992 stp x21, x22, [sp, 32] 3993 adrp x22, .LANCHOR48 3994 mul w2, w2, w0 3995 ldr x0, [x24, #:lo12:.LANCHOR40] 3996 stp x25, x26, [sp, 64] 3997 adrp x25, .LANCHOR5 3998 str x27, [sp, 80] 3999 adrp x26, .LANCHOR13 4000 add x25, x25, :lo12:.LANCHOR5 4001 add x26, x26, :lo12:.LANCHOR13 4002 bl ftl_memset 4003 mov w21, 0 4004 adrp x0, .LANCHOR47 4005 mov w20, 0 4006 mov w19, 0 4007 strh wzr, [x23, #:lo12:.LANCHOR45] 4008 str xzr, [x0, #:lo12:.LANCHOR47] 4009 adrp x0, .LANCHOR41 4010 strh wzr, [x22, #:lo12:.LANCHOR48] 4011 adrp x27, .LANCHOR3 4012 str xzr, [x0, #:lo12:.LANCHOR41] 4013 adrp x0, .LANCHOR44 4014 str xzr, [x0, #:lo12:.LANCHOR44] 4015.L516: 4016 ldrh w0, [x25] 4017 cmp w19, w0 4018 bcs .L523 4019 adrp x0, .LANCHOR19 4020 ldrh w8, [x27, #:lo12:.LANCHOR3] 4021 mov x6, 0 4022 mov w5, 0 4023 ldrh w7, [x0, #:lo12:.LANCHOR19] 4024 b .L524 4025.L518: 4026 ldrb w0, [x26, x6] 4027 mov w1, w19 4028 bl V2P_block 4029 bl FtlBbmIsBadBlock 4030 cbnz w0, .L517 4031 add w5, w5, w7 4032 and w5, w5, 65535 4033.L517: 4034 add x6, x6, 1 4035.L524: 4036 cmp w8, w6, uxth 4037 bhi .L518 4038 cbz w5, .L519 4039 mov w0, 32768 4040 sdiv w5, w0, w5 4041.L520: 4042 ldr x1, [x24, #:lo12:.LANCHOR40] 4043 mov w0, 6 4044 umaddl x0, w19, w0, x1 4045 strh w5, [x0, 4] 4046 adrp x0, .LANCHOR51 4047 ldrh w0, [x0, #:lo12:.LANCHOR51] 4048 cmp w0, w19 4049 beq .L521 4050 adrp x0, .LANCHOR52 4051 ldrh w0, [x0, #:lo12:.LANCHOR52] 4052 cmp w0, w19 4053 beq .L521 4054 adrp x0, .LANCHOR53 4055 ldrh w0, [x0, #:lo12:.LANCHOR53] 4056 cmp w0, w19 4057 beq .L521 4058 adrp x1, .LANCHOR42 4059 ubfiz x0, x19, 1, 16 4060 ldr x1, [x1, #:lo12:.LANCHOR42] 4061 ldrh w0, [x1, x0] 4062 cbnz w0, .L522 4063 add w21, w21, 1 4064 mov w0, w19 4065 and w21, w21, 65535 4066 bl INSERT_FREE_LIST 4067.L521: 4068 add w19, w19, 1 4069 and w19, w19, 65535 4070 b .L516 4071.L519: 4072 adrp x1, .LANCHOR42 4073 ubfiz x0, x19, 1, 16 4074 mov w2, -1 4075 ldr x1, [x1, #:lo12:.LANCHOR42] 4076 strh w2, [x1, x0] 4077 b .L520 4078.L522: 4079 add w20, w20, 1 4080 mov w0, w19 4081 and w20, w20, 65535 4082 bl INSERT_DATA_LIST 4083 b .L521 4084.L523: 4085 strh w20, [x23, #:lo12:.LANCHOR45] 4086 add w20, w20, w21 4087 strh w21, [x22, #:lo12:.LANCHOR48] 4088 cmp w20, w0 4089 ble .L525 4090 adrp x1, .LANCHOR146 4091 adrp x0, .LC1 4092 mov w2, 2170 4093 add x1, x1, :lo12:.LANCHOR146 4094 add x0, x0, :lo12:.LC1 4095 bl printf 4096.L525: 4097 mov w0, 0 4098 ldr x27, [sp, 80] 4099 ldp x19, x20, [sp, 16] 4100 ldp x21, x22, [sp, 32] 4101 ldp x23, x24, [sp, 48] 4102 ldp x25, x26, [sp, 64] 4103 ldp x29, x30, [sp], 96 4104 ret 4105 .size SupperBlkListInit, .-SupperBlkListInit 4106 .section .text.FtlGcPageVarInit,"ax",@progbits 4107 .align 2 4108 .global FtlGcPageVarInit 4109 .type FtlGcPageVarInit, %function 4110FtlGcPageVarInit: 4111 stp x29, x30, [sp, -32]! 4112 adrp x0, .LANCHOR95 4113 mov w1, 255 4114 add x29, sp, 0 4115 strh wzr, [x0, #:lo12:.LANCHOR95] 4116 adrp x0, .LANCHOR97 4117 str x19, [sp, 16] 4118 adrp x19, .LANCHOR21 4119 strh wzr, [x0, #:lo12:.LANCHOR97] 4120 adrp x0, .LANCHOR96 4121 ldrh w2, [x19, #:lo12:.LANCHOR21] 4122 ldr x0, [x0, #:lo12:.LANCHOR96] 4123 lsl w2, w2, 1 4124 bl ftl_memset 4125 ldrh w2, [x19, #:lo12:.LANCHOR21] 4126 mov w0, 12 4127 mov w1, 255 4128 mul w2, w2, w0 4129 adrp x0, .LANCHOR98 4130 ldr x0, [x0, #:lo12:.LANCHOR98] 4131 bl ftl_memset 4132 ldr x19, [sp, 16] 4133 ldp x29, x30, [sp], 32 4134 b FtlGcBufInit 4135 .size FtlGcPageVarInit, .-FtlGcPageVarInit 4136 .section .text.FlashGetBadBlockList,"ax",@progbits 4137 .align 2 4138 .global FlashGetBadBlockList 4139 .type FlashGetBadBlockList, %function 4140FlashGetBadBlockList: 4141 stp x29, x30, [sp, -32]! 4142 mov w2, 256 4143 add x29, sp, 0 4144 stp x19, x20, [sp, 16] 4145 mov x19, x0 4146 mov w20, w1 4147 mov w1, 255 4148 bl ftl_memset 4149 adrp x0, .LANCHOR105 4150 mov w1, w20 4151 ldr x2, [x0, #:lo12:.LANCHOR105] 4152 mov x0, x19 4153 blr x2 4154 and w0, w0, 65535 4155 cmp w0, 50 4156 bls .L530 4157 mov w2, 256 4158 mov w1, 255 4159 mov x0, x19 4160 bl ftl_memset 4161 mov w0, 0 4162.L530: 4163 adrp x1, .LANCHOR0+14 4164 ldrh w1, [x1, #:lo12:.LANCHOR0+14] 4165 cmp w1, 4 4166 bne .L534 4167 mov x1, 0 4168.L532: 4169 cmp w0, w1, uxth 4170 bhi .L533 4171.L534: 4172 ldp x19, x20, [sp, 16] 4173 ldp x29, x30, [sp], 32 4174 ret 4175.L533: 4176 ldrh w2, [x19, x1, lsl 1] 4177 lsr w2, w2, 1 4178 strh w2, [x19, x1, lsl 1] 4179 add x1, x1, 1 4180 b .L532 4181 .size FlashGetBadBlockList, .-FlashGetBadBlockList 4182 .section .text.ftl_memcpy,"ax",@progbits 4183 .align 2 4184 .global ftl_memcpy 4185 .type ftl_memcpy, %function 4186ftl_memcpy: 4187 uxtw x2, w2 4188 b memcpy 4189 .size ftl_memcpy, .-ftl_memcpy 4190 .section .text.FlashReadPages,"ax",@progbits 4191 .align 2 4192 .global FlashReadPages 4193 .type FlashReadPages, %function 4194FlashReadPages: 4195 stp x29, x30, [sp, -112]! 4196 ubfiz x1, x1, 5, 32 4197 add x29, sp, 0 4198 stp x21, x22, [sp, 32] 4199 adrp x21, .LANCHOR0 4200 add x2, x21, :lo12:.LANCHOR0 4201 str x27, [sp, 80] 4202 stp x23, x24, [sp, 48] 4203 adrp x24, .LANCHOR147 4204 stp x19, x20, [sp, 16] 4205 add x23, x0, x1 4206 ldrh w27, [x2, 12] 4207 mov x19, x0 4208 stp x25, x26, [sp, 64] 4209 add x24, x24, :lo12:.LANCHOR147 4210 adrp x25, .LC1 4211 add x25, x25, :lo12:.LC1 4212.L538: 4213 cmp x23, x19 4214 bne .L549 4215 ldp x19, x20, [sp, 16] 4216 mov w0, 0 4217 ldp x21, x22, [sp, 32] 4218 ldp x23, x24, [sp, 48] 4219 ldp x25, x26, [sp, 64] 4220 ldr x27, [sp, 80] 4221 ldp x29, x30, [sp], 112 4222 ret 4223.L549: 4224 ldr x0, [x19, 8] 4225 cbz x0, .L539 4226 ldr x0, [x19, 16] 4227 cbnz x0, .L540 4228.L539: 4229 mov w2, 90 4230 mov x1, x24 4231 mov x0, x25 4232 bl printf 4233.L540: 4234 ldr w0, [x19, 4] 4235 add x2, x29, 104 4236 add x1, x29, 108 4237 bl l2p_addr_tran.isra.0 4238 ldr w0, [x29, 104] 4239 cmp w0, 3 4240 bls .L541 4241 mov w0, -1 4242 str w0, [x19] 4243.L542: 4244 add x19, x19, 32 4245 b .L538 4246.L541: 4247 ldr x20, [x19, 8] 4248 adrp x26, .LANCHOR120 4249 tst x20, 63 4250 beq .L543 4251 ldr x20, [x26, #:lo12:.LANCHOR120] 4252.L543: 4253 adrp x22, .LANCHOR105 4254 add x22, x22, :lo12:.LANCHOR105 4255 ldr w1, [x29, 108] 4256 mov x2, x20 4257 ldr x3, [x19, 16] 4258 ldr x4, [x22, 24] 4259 blr x4 4260 str w0, [x19] 4261 add x0, x21, :lo12:.LANCHOR0 4262 ldrh w0, [x0, 14] 4263 cmp w0, 4 4264 bne .L545 4265 ldrb w0, [x29, 104] 4266 add x2, x20, 2048 4267 ldr x4, [x22, 24] 4268 ldr w1, [x29, 108] 4269 ldr x3, [x19, 16] 4270 add w1, w27, w1 4271 add x3, x3, 8 4272 blr x4 4273 cmn w0, #1 4274 beq .L546 4275 ldr x1, [x19, 16] 4276 ldr w2, [x1, 12] 4277 cmn w2, #1 4278 bne .L547 4279 ldr w2, [x1, 8] 4280 cmn w2, #1 4281 bne .L547 4282 ldr w1, [x1] 4283 cmn w1, #1 4284 beq .L547 4285.L546: 4286 mov w1, -1 4287 str w1, [x19] 4288.L547: 4289 ldr w1, [x19] 4290 cmn w1, #1 4291 beq .L545 4292 cmp w0, 256 4293 bne .L545 4294 str w0, [x19] 4295.L545: 4296 ldr x0, [x26, #:lo12:.LANCHOR120] 4297 cmp x20, x0 4298 bne .L542 4299 ldr x0, [x19, 8] 4300 cmp x20, x0 4301 beq .L542 4302 adrp x1, .LANCHOR12 4303 ldrh w2, [x1, #:lo12:.LANCHOR12] 4304 mov x1, x20 4305 lsl w2, w2, 9 4306 bl ftl_memcpy 4307 b .L542 4308 .size FlashReadPages, .-FlashReadPages 4309 .section .text.FtlLoadFactoryBbt,"ax",@progbits 4310 .align 2 4311 .global FtlLoadFactoryBbt 4312 .type FtlLoadFactoryBbt, %function 4313FtlLoadFactoryBbt: 4314 stp x29, x30, [sp, -112]! 4315 adrp x2, .LANCHOR115 4316 adrp x0, .LANCHOR148 4317 add x1, x0, :lo12:.LANCHOR148 4318 add x29, sp, 0 4319 ldr x2, [x2, #:lo12:.LANCHOR115] 4320 stp x21, x22, [sp, 32] 4321 mov x22, x0 4322 stp x25, x26, [sp, 64] 4323 adrp x26, .LANCHOR17 4324 stp x27, x28, [sp, 80] 4325 add x28, x26, :lo12:.LANCHOR17 4326 stp x19, x20, [sp, 16] 4327 adrp x20, .LANCHOR37 4328 stp x23, x24, [sp, 48] 4329 add x20, x20, :lo12:.LANCHOR37 4330 str x2, [x1, 8] 4331 adrp x2, .LANCHOR123 4332 adrp x23, .LANCHOR10 4333 add x20, x20, 12 4334 ldr x25, [x2, #:lo12:.LANCHOR123] 4335 add x23, x23, :lo12:.LANCHOR10 4336 mov w21, 0 4337 mov w27, -1 4338 str x25, [x1, 16] 4339.L567: 4340 ldrh w0, [x23] 4341 cmp w21, w0 4342 bcc .L572 4343 ldp x19, x20, [sp, 16] 4344 mov w0, 0 4345 ldp x21, x22, [sp, 32] 4346 ldp x23, x24, [sp, 48] 4347 ldp x25, x26, [sp, 64] 4348 ldp x27, x28, [sp, 80] 4349 ldp x29, x30, [sp], 112 4350 ret 4351.L572: 4352 ldrh w19, [x26, #:lo12:.LANCHOR17] 4353 add x24, x22, :lo12:.LANCHOR148 4354 strh w27, [x20] 4355 mov w3, 61664 4356 sub w19, w19, #1 4357 and w19, w19, 65535 4358.L568: 4359 ldrh w0, [x28] 4360 sub w1, w0, #15 4361 cmp w1, w19 4362 bgt .L570 4363 madd w0, w0, w21, w19 4364 mov w2, 1 4365 str w3, [x29, 108] 4366 mov w1, w2 4367 lsl w0, w0, 10 4368 str w0, [x24, 4] 4369 mov x0, x24 4370 bl FlashReadPages 4371 ldr w0, [x24] 4372 ldr w3, [x29, 108] 4373 cmn w0, #1 4374 beq .L569 4375 ldrh w0, [x25] 4376 cmp w0, w3 4377 bne .L569 4378 strh w19, [x20] 4379.L570: 4380 add w21, w21, 1 4381 add x20, x20, 2 4382 b .L567 4383.L569: 4384 sub w19, w19, #1 4385 and w19, w19, 65535 4386 b .L568 4387 .size FtlLoadFactoryBbt, .-FtlLoadFactoryBbt 4388 .section .text.FtlGetLastWrittenPage,"ax",@progbits 4389 .align 2 4390 .global FtlGetLastWrittenPage 4391 .type FtlGetLastWrittenPage, %function 4392FtlGetLastWrittenPage: 4393 stp x29, x30, [sp, -160]! 4394 cmp w1, 1 4395 add x29, sp, 0 4396 stp x23, x24, [sp, 48] 4397 mov w23, w1 4398 stp x19, x20, [sp, 16] 4399 stp x21, x22, [sp, 32] 4400 bne .L578 4401 adrp x1, .LANCHOR20 4402 ldrh w19, [x1, #:lo12:.LANCHOR20] 4403.L579: 4404 adrp x1, .LANCHOR121 4405 sub w19, w19, #1 4406 sxth w19, w19 4407 lsl w21, w0, 10 4408 ldr x1, [x1, #:lo12:.LANCHOR121] 4409 orr w0, w19, w21 4410 str x1, [x29, 72] 4411 add x1, x29, 96 4412 str w0, [x29, 68] 4413 mov w2, w23 4414 str x1, [x29, 80] 4415 add x0, x29, 64 4416 mov w1, 1 4417 bl FlashReadPages 4418 ldr w0, [x29, 96] 4419 cmn w0, #1 4420 bne .L580 4421 mov w22, 0 4422 mov w24, 2 4423.L581: 4424 cmp w22, w19 4425 ble .L584 4426.L580: 4427 mov w0, w19 4428 ldp x19, x20, [sp, 16] 4429 ldp x21, x22, [sp, 32] 4430 ldp x23, x24, [sp, 48] 4431 ldp x29, x30, [sp], 160 4432 ret 4433.L578: 4434 adrp x1, .LANCHOR19 4435 ldrh w19, [x1, #:lo12:.LANCHOR19] 4436 b .L579 4437.L584: 4438 add w20, w22, w19 4439 mov w2, w23 4440 mov w1, 1 4441 sdiv w20, w20, w24 4442 sxth w0, w20 4443 orr w0, w0, w21 4444 str w0, [x29, 68] 4445 add x0, x29, 64 4446 bl FlashReadPages 4447 ldr w0, [x29, 96] 4448 cmn w0, #1 4449 bne .L582 4450 ldr w0, [x29, 100] 4451 cmn w0, #1 4452 bne .L582 4453 ldr w0, [x29, 64] 4454 cmn w0, #1 4455 beq .L582 4456 sub w19, w20, #1 4457 sxth w19, w19 4458 b .L581 4459.L582: 4460 add w20, w20, 1 4461 sxth w22, w20 4462 b .L581 4463 .size FtlGetLastWrittenPage, .-FtlGetLastWrittenPage 4464 .section .text.FtlScanSysBlk,"ax",@progbits 4465 .align 2 4466 .global FtlScanSysBlk 4467 .type FtlScanSysBlk, %function 4468FtlScanSysBlk: 4469 stp x29, x30, [sp, -176]! 4470 mov w1, 0 4471 add x29, sp, 0 4472 stp x25, x26, [sp, 64] 4473 adrp x25, .LANCHOR135 4474 stp x21, x22, [sp, 32] 4475 adrp x21, .LANCHOR30 4476 ldr x0, [x25, #:lo12:.LANCHOR135] 4477 adrp x22, .LANCHOR132 4478 ldr w2, [x21, #:lo12:.LANCHOR30] 4479 stp x19, x20, [sp, 16] 4480 adrp x20, .LANCHOR141 4481 stp x23, x24, [sp, 48] 4482 adrp x23, .LANCHOR35 4483 stp x27, x28, [sp, 80] 4484 adrp x27, .LANCHOR129 4485 lsl w2, w2, 2 4486 strh wzr, [x20, #:lo12:.LANCHOR141] 4487 strh wzr, [x23, #:lo12:.LANCHOR35] 4488 bl ftl_memset 4489 ldr x0, [x27, #:lo12:.LANCHOR129] 4490 mov w1, 0 4491 ldr w2, [x21, #:lo12:.LANCHOR30] 4492 adrp x19, .LANCHOR27 4493 adrp x28, .LANCHOR36 4494 adrp x24, .LANCHOR79 4495 lsl w2, w2, 1 4496 bl ftl_memset 4497 ldr x0, [x22, #:lo12:.LANCHOR132] 4498 mov w1, 0 4499 ldrh w2, [x19, #:lo12:.LANCHOR27] 4500 lsl w2, w2, 2 4501 bl ftl_memset 4502 ldr x0, [x28, #:lo12:.LANCHOR36] 4503 mov w1, 0 4504 ldrh w2, [x19, #:lo12:.LANCHOR27] 4505 lsl w2, w2, 1 4506 bl ftl_memset 4507 mov w2, 12 4508 mov w1, 255 4509 add x0, x24, :lo12:.LANCHOR79 4510 bl ftl_memset 4511 adrp x0, .LANCHOR5 4512 stp x22, x25, [x29, 144] 4513 str x27, [x29, 160] 4514 ldrh w0, [x0, #:lo12:.LANCHOR5] 4515 str w0, [x29, 172] 4516 adrp x0, .LANCHOR6 4517 add x0, x0, :lo12:.LANCHOR6 4518 str x0, [x29, 120] 4519 adrp x0, .LANCHOR70 4520 add x0, x0, :lo12:.LANCHOR70 4521 str x0, [x29, 112] 4522.L590: 4523 ldr x0, [x29, 120] 4524 ldr w1, [x29, 172] 4525 ldrh w0, [x0] 4526 cmp w0, w1 4527 bls .L630 4528 adrp x0, .LANCHOR3 4529 adrp x25, .LANCHOR112 4530 adrp x6, .LANCHOR13 4531 mov x5, 0 4532 ldrh w12, [x0, #:lo12:.LANCHOR3] 4533 adrp x0, .LANCHOR91 4534 ldr x7, [x25, #:lo12:.LANCHOR112] 4535 mov w22, 0 4536 ldr x11, [x0, #:lo12:.LANCHOR91] 4537 adrp x0, .LANCHOR92 4538 add x6, x6, :lo12:.LANCHOR13 4539 ldr x10, [x0, #:lo12:.LANCHOR92] 4540 adrp x0, .LANCHOR24 4541 ldrh w8, [x0, #:lo12:.LANCHOR24] 4542 b .L631 4543.L592: 4544 ldrh w1, [x29, 172] 4545 ldrb w0, [x6, x5] 4546 bl V2P_block 4547 and w4, w0, 65535 4548 bl FtlBbmIsBadBlock 4549 cbnz w0, .L591 4550 ubfiz x0, x22, 5, 16 4551 mul w1, w22, w8 4552 add x0, x7, x0 4553 add w22, w22, 1 4554 and w22, w22, 65535 4555 lsl w4, w4, 10 4556 asr w1, w1, 2 4557 add x1, x10, x1, sxtw 2 4558 str w4, [x0, 4] 4559 stp x11, x1, [x0, 8] 4560.L591: 4561 add x5, x5, 1 4562.L631: 4563 cmp w12, w5, uxth 4564 bhi .L592 4565 cbnz w22, .L593 4566.L629: 4567 ldr w0, [x29, 172] 4568 add w26, w0, 1 4569 and w0, w26, 65535 4570 str w0, [x29, 172] 4571 b .L590 4572.L593: 4573 mov w1, w22 4574 mov w2, 1 4575 mov x0, x7 4576 bl FlashReadPages 4577 ubfiz x0, x22, 5, 16 4578 mov x22, 0 4579 str x0, [x29, 128] 4580 adrp x0, .LANCHOR149 4581 add x0, x0, :lo12:.LANCHOR149 4582 str x0, [x29, 136] 4583.L628: 4584 ldr x0, [x25, #:lo12:.LANCHOR112] 4585 add x1, x0, x22 4586 ldr w0, [x0, x22] 4587 ldr w3, [x1, 4] 4588 cmn w0, #1 4589 ldr x27, [x1, 16] 4590 ubfx x26, x3, 10, 16 4591 bne .L596 4592 mov w5, 16 4593 mov w7, 65535 4594.L598: 4595 ldr x0, [x25, #:lo12:.LANCHOR112] 4596 add x6, x25, :lo12:.LANCHOR112 4597 mov w2, 1 4598 str w7, [x29, 100] 4599 add x0, x0, x22 4600 str x6, [x29, 104] 4601 str w5, [x29, 168] 4602 ldr w1, [x0, 4] 4603 add w1, w1, 1 4604 str w1, [x0, 4] 4605 mov w1, w2 4606 bl FlashReadPages 4607 ldrh w0, [x27] 4608 ldr w7, [x29, 100] 4609 ldr w5, [x29, 168] 4610 cmp w0, w7 4611 ldr x6, [x29, 104] 4612 bne .L595 4613 ldr x0, [x6] 4614 mov w1, -1 4615 str w1, [x0, x22] 4616 ldr x0, [x6] 4617 ldr w0, [x0, x22] 4618 cmp w0, w1 4619 bne .L596 4620.L597: 4621 mov w1, 1 4622 b .L667 4623.L595: 4624 ldr x0, [x25, #:lo12:.LANCHOR112] 4625 ldr w0, [x0, x22] 4626 cmn w0, #1 4627 bne .L596 4628 sub w5, w5, #1 4629 ands w5, w5, 65535 4630 bne .L598 4631 b .L597 4632.L596: 4633 adrp x0, .LANCHOR70 4634 ldr w1, [x0, #:lo12:.LANCHOR70] 4635 ldr w0, [x27, 4] 4636 cmn w1, #1 4637 beq .L599 4638 cmp w1, w0 4639 bhi .L600 4640.L599: 4641 cmn w0, #1 4642 beq .L600 4643 ldr x2, [x29, 112] 4644 add w1, w0, 1 4645 str w1, [x2] 4646.L600: 4647 ldrh w1, [x27] 4648 mov w2, 61604 4649 cmp w1, w2 4650 beq .L602 4651 bhi .L603 4652 mov w0, 61574 4653 cmp w1, w0 4654 beq .L604 4655.L601: 4656 ldr x0, [x29, 128] 4657 add x22, x22, 32 4658 cmp x0, x22 4659 bne .L628 4660 b .L629 4661.L603: 4662 mov w0, 61634 4663 cmp w1, w0 4664 beq .L605 4665 mov w0, 65535 4666 cmp w1, w0 4667 bne .L601 4668 mov w1, 0 4669.L667: 4670 mov w0, w26 4671 bl FtlFreeSysBlkQueueIn 4672 b .L601 4673.L605: 4674 ldrh w1, [x20, #:lo12:.LANCHOR141] 4675 ldr w0, [x21, #:lo12:.LANCHOR30] 4676 cmp w1, w0 4677 bls .L607 4678 ldr x1, [x29, 136] 4679 adrp x0, .LC1 4680 mov w2, 1222 4681 add x0, x0, :lo12:.LC1 4682 bl printf 4683.L607: 4684 ldr w6, [x21, #:lo12:.LANCHOR30] 4685 ldr x3, [x29, 152] 4686 ldrh w1, [x20, #:lo12:.LANCHOR141] 4687 and w2, w6, 65535 4688 sub w0, w2, #1 4689 sub w2, w2, w1 4690 sxth x0, w0 4691 sub w2, w2, #1 4692 ldr x5, [x3, #:lo12:.LANCHOR135] 4693 sxth w2, w2 4694.L608: 4695 cmp w0, w2 4696 bgt .L614 4697 tbz w0, #31, .L648 4698 b .L601 4699.L614: 4700 sxtw x8, w0 4701 ldr w11, [x27, 4] 4702 lsl x7, x8, 2 4703 add x10, x5, x7 4704 ldr w7, [x5, x7] 4705 cmp w11, w7 4706 bls .L609 4707 ldr w2, [x5] 4708 cbnz w2, .L610 4709 cmp w6, w1 4710 beq .L610 4711 add w1, w1, 1 4712 strh w1, [x20, #:lo12:.LANCHOR141] 4713.L610: 4714 ldr x1, [x29, 160] 4715 ldr x6, [x1, #:lo12:.LANCHOR129] 4716 mov w1, 0 4717.L611: 4718 cmp w1, w0 4719 bne .L612 4720 ldr w1, [x27, 4] 4721 str w1, [x10] 4722 strh w26, [x6, x8, lsl 1] 4723 tbnz w0, #31, .L601 4724 ldrh w1, [x20, #:lo12:.LANCHOR141] 4725 ldr w2, [x21, #:lo12:.LANCHOR30] 4726 sub w2, w2, w1 4727 sub w2, w2, #1 4728 cmp w0, w2, sxth 4729 bgt .L601 4730.L648: 4731 add w1, w1, 1 4732 strh w1, [x20, #:lo12:.LANCHOR141] 4733 ldr w1, [x27, 4] 4734 str w1, [x5, x0, lsl 2] 4735 ldr x1, [x29, 160] 4736 ldr x1, [x1, #:lo12:.LANCHOR129] 4737.L666: 4738 strh w26, [x1, x0, lsl 1] 4739 b .L601 4740.L612: 4741 sxtw x2, w1 4742 add w1, w1, 1 4743 lsl x7, x2, 2 4744 lsl x2, x2, 1 4745 add x11, x5, x7 4746 sxth w1, w1 4747 ldr w11, [x11, 4] 4748 str w11, [x5, x7] 4749 add x7, x6, x2 4750 ldrh w7, [x7, 2] 4751 strh w7, [x6, x2] 4752 b .L611 4753.L609: 4754 sub w0, w0, #1 4755 sxth x0, w0 4756 b .L608 4757.L604: 4758 ldrh w1, [x23, #:lo12:.LANCHOR35] 4759 ldrh w0, [x19, #:lo12:.LANCHOR27] 4760 cmp w1, w0 4761 bls .L617 4762 ldr x1, [x29, 136] 4763 adrp x0, .LC1 4764 mov w2, 1263 4765 add x0, x0, :lo12:.LC1 4766 bl printf 4767.L617: 4768 ldrh w6, [x19, #:lo12:.LANCHOR27] 4769 ldrh w2, [x23, #:lo12:.LANCHOR35] 4770 sub w1, w6, #1 4771 sxth x0, w1 4772 sub w5, w1, w2 4773 ldr x1, [x29, 144] 4774 ldr x1, [x1, #:lo12:.LANCHOR132] 4775.L618: 4776 cmp w0, w5 4777 ble .L623 4778 sxtw x7, w0 4779 ldr w11, [x27, 4] 4780 lsl x8, x7, 2 4781 add x10, x1, x8 4782 ldr w8, [x1, x8] 4783 cmp w11, w8 4784 bls .L619 4785 ldr w5, [x1] 4786 cbnz w5, .L620 4787 cmp w6, w2 4788 beq .L620 4789 add w2, w2, 1 4790 strh w2, [x23, #:lo12:.LANCHOR35] 4791.L620: 4792 ldr x6, [x28, #:lo12:.LANCHOR36] 4793 mov w2, 0 4794.L621: 4795 cmp w2, w0 4796 bne .L622 4797 ldr w2, [x27, 4] 4798 str w2, [x10] 4799 strh w26, [x6, x7, lsl 1] 4800.L623: 4801 tbnz w0, #31, .L601 4802 ldrh w2, [x19, #:lo12:.LANCHOR27] 4803 ldrh w5, [x23, #:lo12:.LANCHOR35] 4804 sub w2, w2, #1 4805 sub w2, w2, w5 4806 cmp w0, w2, sxth 4807 bgt .L601 4808 add w5, w5, 1 4809 ldr w2, [x27, 4] 4810 strh w5, [x23, #:lo12:.LANCHOR35] 4811 str w2, [x1, x0, lsl 2] 4812 ldr x1, [x28, #:lo12:.LANCHOR36] 4813 b .L666 4814.L622: 4815 sxtw x5, w2 4816 add w2, w2, 1 4817 lsl x8, x5, 2 4818 lsl x5, x5, 1 4819 add x11, x1, x8 4820 sxth w2, w2 4821 ldr w11, [x11, 4] 4822 str w11, [x1, x8] 4823 add x8, x6, x5 4824 ldrh w8, [x8, 2] 4825 strh w8, [x6, x5] 4826 b .L621 4827.L619: 4828 sub w0, w0, #1 4829 sxth x0, w0 4830 b .L618 4831.L602: 4832 ldrh w5, [x24, #:lo12:.LANCHOR79] 4833 mov w1, 65535 4834 add x2, x24, :lo12:.LANCHOR79 4835 cmp w5, w1 4836 bne .L625 4837 strh w26, [x24, #:lo12:.LANCHOR79] 4838 str w0, [x2, 8] 4839 b .L601 4840.L625: 4841 ldrh w0, [x2, 4] 4842 cmp w0, w1 4843 beq .L626 4844 mov w1, 1 4845 bl FtlFreeSysBlkQueueIn 4846.L626: 4847 add x0, x24, :lo12:.LANCHOR79 4848 ldr w1, [x27, 4] 4849 ldr w2, [x0, 8] 4850 cmp w2, w1 4851 bcs .L627 4852 ldrh w2, [x24, #:lo12:.LANCHOR79] 4853 strh w2, [x0, 4] 4854 strh w26, [x24, #:lo12:.LANCHOR79] 4855 str w1, [x0, 8] 4856 b .L601 4857.L627: 4858 strh w26, [x0, 4] 4859 b .L601 4860.L630: 4861 ldr x0, [x29, 160] 4862 ldr x2, [x0, #:lo12:.LANCHOR129] 4863 ldrh w0, [x2] 4864 cbz w0, .L632 4865.L635: 4866 ldr x1, [x28, #:lo12:.LANCHOR36] 4867 ldrh w0, [x1] 4868 cbz w0, .L633 4869.L634: 4870 ldrh w1, [x20, #:lo12:.LANCHOR141] 4871 ldr w0, [x21, #:lo12:.LANCHOR30] 4872 cmp w1, w0 4873 bls .L664 4874 adrp x1, .LANCHOR149 4875 adrp x0, .LC1 4876 mov w2, 1388 4877 add x1, x1, :lo12:.LANCHOR149 4878 add x0, x0, :lo12:.LC1 4879 bl printf 4880.L664: 4881 ldp x19, x20, [sp, 16] 4882 mov w0, 0 4883 ldp x21, x22, [sp, 32] 4884 ldp x23, x24, [sp, 48] 4885 ldp x25, x26, [sp, 64] 4886 ldp x27, x28, [sp, 80] 4887 ldp x29, x30, [sp], 176 4888 ret 4889.L632: 4890 ldrh w0, [x20, #:lo12:.LANCHOR141] 4891 cbz w0, .L635 4892 ldr w1, [x21, #:lo12:.LANCHOR30] 4893 mov w0, 0 4894.L636: 4895 cmp w0, w1 4896 bcs .L635 4897 ldrh w3, [x2, w0, sxtw 1] 4898 cbz w3, .L637 4899 ldr x1, [x29, 152] 4900 add x7, x21, :lo12:.LANCHOR30 4901 ldr x4, [x1, #:lo12:.LANCHOR135] 4902 mov w1, w0 4903.L638: 4904 ldr w3, [x7] 4905 cmp w1, w3 4906 bcs .L635 4907 sxtw x6, w1 4908 sub w3, w1, w0 4909 lsl x5, x6, 1 4910 sxtw x3, w3 4911 add w1, w1, 1 4912 ldr w6, [x4, x6, lsl 2] 4913 sxth w1, w1 4914 ldrh w8, [x2, x5] 4915 strh w8, [x2, x3, lsl 1] 4916 str w6, [x4, x3, lsl 2] 4917 strh wzr, [x2, x5] 4918 b .L638 4919.L637: 4920 add w0, w0, 1 4921 sxth w0, w0 4922 b .L636 4923.L633: 4924 ldrh w0, [x23, #:lo12:.LANCHOR35] 4925 cbz w0, .L634 4926 ldrh w2, [x19, #:lo12:.LANCHOR27] 4927 mov w0, 0 4928.L643: 4929 mov w6, w0 4930 cmp w0, w2 4931 bge .L634 4932 ldrh w3, [x1, w0, sxtw 1] 4933 cbz w3, .L644 4934 ldr x2, [x29, 144] 4935 add x19, x19, :lo12:.LANCHOR27 4936 ldr x3, [x2, #:lo12:.LANCHOR132] 4937.L645: 4938 ldrh w2, [x19] 4939 cmp w0, w2 4940 bge .L634 4941 sxtw x5, w0 4942 sub w2, w0, w6 4943 lsl x4, x5, 1 4944 sxtw x2, w2 4945 add w0, w0, 1 4946 ldr w5, [x3, x5, lsl 2] 4947 sxth w0, w0 4948 ldrh w7, [x1, x4] 4949 strh w7, [x1, x2, lsl 1] 4950 str w5, [x3, x2, lsl 2] 4951 strh wzr, [x1, x4] 4952 b .L645 4953.L644: 4954 add w0, w0, 1 4955 sxth w0, w0 4956 b .L643 4957 .size FtlScanSysBlk, .-FtlScanSysBlk 4958 .section .text.FtlLoadBbt,"ax",@progbits 4959 .align 2 4960 .global FtlLoadBbt 4961 .type FtlLoadBbt, %function 4962FtlLoadBbt: 4963 stp x29, x30, [sp, -80]! 4964 add x29, sp, 0 4965 stp x23, x24, [sp, 48] 4966 adrp x23, .LANCHOR115 4967 stp x19, x20, [sp, 16] 4968 adrp x24, .LANCHOR17 4969 stp x21, x22, [sp, 32] 4970 adrp x22, .LANCHOR148 4971 add x20, x22, :lo12:.LANCHOR148 4972 ldr x0, [x23, #:lo12:.LANCHOR115] 4973 str x25, [sp, 64] 4974 mov w25, 61649 4975 str x0, [x20, 8] 4976 adrp x0, .LANCHOR123 4977 ldr x21, [x0, #:lo12:.LANCHOR123] 4978 str x21, [x20, 16] 4979 bl FtlBbtMemInit 4980 ldrh w19, [x24, #:lo12:.LANCHOR17] 4981 add x24, x24, :lo12:.LANCHOR17 4982 sub w19, w19, #1 4983 and w19, w19, 65535 4984.L669: 4985 ldrh w0, [x24] 4986 sub w0, w0, #15 4987 cmp w0, w19 4988 bgt .L672 4989 lsl w0, w19, 10 4990 mov w2, 1 4991 str w0, [x20, 4] 4992 mov w1, w2 4993 mov x0, x20 4994 bl FlashReadPages 4995 ldr w0, [x20] 4996 cmn w0, #1 4997 bne .L670 4998 ldr w0, [x20, 4] 4999 mov w2, 1 5000 mov w1, w2 5001 add w0, w0, 1 5002 str w0, [x20, 4] 5003 mov x0, x20 5004 bl FlashReadPages 5005.L670: 5006 ldr w0, [x20] 5007 cmn w0, #1 5008 beq .L671 5009 ldrh w0, [x21] 5010 cmp w0, w25 5011 bne .L671 5012 adrp x1, .LANCHOR37 5013 add x0, x1, :lo12:.LANCHOR37 5014 strh w19, [x1, #:lo12:.LANCHOR37] 5015 ldr w1, [x21, 4] 5016 str w1, [x0, 8] 5017 ldrh w1, [x21, 8] 5018 strh w1, [x0, 4] 5019.L672: 5020 adrp x19, .LANCHOR37 5021 mov w0, 65535 5022 add x20, x19, :lo12:.LANCHOR37 5023 ldrh w1, [x19, #:lo12:.LANCHOR37] 5024 cmp w1, w0 5025 beq .L686 5026 ldrh w1, [x20, 4] 5027 cmp w1, w0 5028 beq .L676 5029 add x0, x22, :lo12:.LANCHOR148 5030 lsl w1, w1, 10 5031 mov w2, 1 5032 str w1, [x0, 4] 5033 mov w1, w2 5034 bl FlashReadPages 5035 ldr w0, [x22, #:lo12:.LANCHOR148] 5036 cmn w0, #1 5037 beq .L676 5038 ldrh w1, [x21] 5039 mov w0, 61649 5040 cmp w1, w0 5041 bne .L676 5042 ldr w1, [x20, 8] 5043 ldr w0, [x21, 4] 5044 cmp w0, w1 5045 bls .L676 5046 ldrh w1, [x20, 4] 5047 str w0, [x20, 8] 5048 ldrh w0, [x21, 8] 5049 strh w1, [x19, #:lo12:.LANCHOR37] 5050 strh w0, [x20, 4] 5051.L676: 5052 ldrh w0, [x19, #:lo12:.LANCHOR37] 5053 add x24, x19, :lo12:.LANCHOR37 5054 mov w1, 1 5055 mov w25, 61649 5056 bl FtlGetLastWrittenPage 5057 sxth w20, w0 5058 add w0, w0, 1 5059 strh w0, [x24, 2] 5060 add x24, x22, :lo12:.LANCHOR148 5061.L678: 5062 tbz w20, #31, .L681 5063 adrp x1, .LANCHOR150 5064 adrp x0, .LC1 5065 mov w2, 253 5066 add x1, x1, :lo12:.LANCHOR150 5067 add x0, x0, :lo12:.LC1 5068 bl printf 5069.L680: 5070 add x0, x19, :lo12:.LANCHOR37 5071 ldrh w1, [x21, 10] 5072 strh w1, [x0, 6] 5073 mov w1, 65535 5074 ldrh w0, [x21, 12] 5075 cmp w0, w1 5076 beq .L683 5077 adrp x1, .LANCHOR2 5078 ldr w2, [x1, #:lo12:.LANCHOR2] 5079 cmp w0, w2 5080 beq .L683 5081 adrp x1, .LANCHOR6 5082 ldrh w1, [x1, #:lo12:.LANCHOR6] 5083 lsr w1, w1, 2 5084 cmp w2, w1 5085 bcs .L683 5086 cmp w0, w1 5087 bcs .L683 5088 bl FtlSysBlkNumInit 5089.L683: 5090 add x19, x19, :lo12:.LANCHOR37 5091 adrp x21, .LANCHOR10 5092 adrp x23, .LANCHOR137 5093 add x19, x19, 32 5094 add x21, x21, :lo12:.LANCHOR10 5095 add x23, x23, :lo12:.LANCHOR137 5096 add x22, x22, :lo12:.LANCHOR148 5097 mov w20, 0 5098.L684: 5099 ldrh w0, [x21] 5100 cmp w20, w0 5101 bcc .L685 5102 mov w0, 0 5103.L668: 5104 ldp x19, x20, [sp, 16] 5105 ldp x21, x22, [sp, 32] 5106 ldp x23, x24, [sp, 48] 5107 ldr x25, [sp, 64] 5108 ldp x29, x30, [sp], 80 5109 ret 5110.L671: 5111 sub w19, w19, #1 5112 and w19, w19, 65535 5113 b .L669 5114.L681: 5115 ldrh w0, [x19, #:lo12:.LANCHOR37] 5116 mov w2, 1 5117 mov w1, w2 5118 orr w0, w20, w0, lsl 10 5119 str w0, [x24, 4] 5120 ldr x0, [x23, #:lo12:.LANCHOR115] 5121 str x0, [x24, 8] 5122 mov x0, x24 5123 bl FlashReadPages 5124 ldr w0, [x24] 5125 cmn w0, #1 5126 beq .L679 5127 ldrh w0, [x21] 5128 cmp w0, w25 5129 beq .L680 5130.L679: 5131 sub w20, w20, #1 5132 sxth w20, w20 5133 b .L678 5134.L685: 5135 ldrh w2, [x23] 5136 ldr x0, [x22, 8] 5137 mul w1, w2, w20 5138 lsl w2, w2, 2 5139 add w20, w20, 1 5140 add x1, x0, x1, lsl 2 5141 ldr x0, [x19], 8 5142 bl ftl_memcpy 5143 b .L684 5144.L686: 5145 mov w0, -1 5146 b .L668 5147 .size FtlLoadBbt, .-FtlLoadBbt 5148 .section .text.FtlLoadSysInfo,"ax",@progbits 5149 .align 2 5150 .global FtlLoadSysInfo 5151 .type FtlLoadSysInfo, %function 5152FtlLoadSysInfo: 5153 stp x29, x30, [sp, -96]! 5154 mov w1, 0 5155 add x29, sp, 0 5156 stp x19, x20, [sp, 16] 5157 adrp x19, .LANCHOR148 5158 stp x23, x24, [sp, 48] 5159 adrp x23, .LANCHOR115 5160 stp x21, x22, [sp, 32] 5161 add x21, x19, :lo12:.LANCHOR148 5162 stp x25, x26, [sp, 64] 5163 adrp x26, .LANCHOR123 5164 stp x27, x28, [sp, 80] 5165 adrp x25, .LANCHOR42 5166 ldr x0, [x23, #:lo12:.LANCHOR115] 5167 adrp x24, .LANCHOR5 5168 str x0, [x21, 8] 5169 adrp x20, .LANCHOR79 5170 ldr x0, [x26, #:lo12:.LANCHOR123] 5171 str x0, [x21, 16] 5172 ldr x0, [x25, #:lo12:.LANCHOR42] 5173 ldrh w2, [x24, #:lo12:.LANCHOR5] 5174 lsl w2, w2, 1 5175 bl ftl_memset 5176 ldrh w0, [x20, #:lo12:.LANCHOR79] 5177 mov w1, 65535 5178 cmp w0, w1 5179 bne .L699 5180.L707: 5181 mov w0, -1 5182.L698: 5183 ldp x19, x20, [sp, 16] 5184 ldp x21, x22, [sp, 32] 5185 ldp x23, x24, [sp, 48] 5186 ldp x25, x26, [sp, 64] 5187 ldp x27, x28, [sp, 80] 5188 ldp x29, x30, [sp], 96 5189 ret 5190.L699: 5191 add x27, x20, :lo12:.LANCHOR79 5192 mov w1, 1 5193 bl FtlGetLastWrittenPage 5194 sxth w22, w0 5195 add w0, w0, 1 5196 mov w28, 61604 5197 strh w0, [x27, 2] 5198 mov w27, 19539 5199 movk w27, 0x4654, lsl 16 5200.L701: 5201 tbz w22, #31, .L704 5202 adrp x1, .LANCHOR151 5203 adrp x0, .LC1 5204 mov w2, 1448 5205 add x1, x1, :lo12:.LANCHOR151 5206 add x0, x0, :lo12:.LC1 5207 bl printf 5208.L703: 5209 adrp x1, .LANCHOR23 5210 ldrh w0, [x24, #:lo12:.LANCHOR5] 5211 ldrh w1, [x1, #:lo12:.LANCHOR23] 5212 add x0, x0, 24 5213 cmp x1, x0, lsl 1 5214 bcs .L706 5215 adrp x1, .LANCHOR151 5216 adrp x0, .LC1 5217 mov w2, 1450 5218 add x1, x1, :lo12:.LANCHOR151 5219 add x0, x0, :lo12:.LC1 5220 bl printf 5221.L706: 5222 add x22, x19, :lo12:.LANCHOR148 5223 adrp x19, .LANCHOR39 5224 add x21, x19, :lo12:.LANCHOR39 5225 mov w2, 48 5226 mov x0, x21 5227 ldr x1, [x22, 8] 5228 bl ftl_memcpy 5229 ldr x0, [x25, #:lo12:.LANCHOR42] 5230 ldrh w2, [x24, #:lo12:.LANCHOR5] 5231 ldr x1, [x22, 8] 5232 lsl w2, w2, 1 5233 add x1, x1, 48 5234 bl ftl_memcpy 5235 ldrh w1, [x24, #:lo12:.LANCHOR5] 5236 ldr x0, [x22, 8] 5237 lsr w2, w1, 3 5238 ubfiz x1, x1, 1, 16 5239 add x1, x1, 48 5240 add w2, w2, 4 5241 and x1, x1, -4 5242 add x1, x0, x1 5243 adrp x0, .LANCHOR1 5244 ldr x0, [x0, #:lo12:.LANCHOR1] 5245 bl ftl_memcpy 5246 ldr w1, [x19, #:lo12:.LANCHOR39] 5247 mov w0, 19539 5248 movk w0, 0x4654, lsl 16 5249 cmp w1, w0 5250 bne .L707 5251 add x20, x20, :lo12:.LANCHOR79 5252 adrp x0, .LANCHOR10 5253 ldrh w1, [x21, 8] 5254 ldrb w2, [x21, 10] 5255 ldrh w0, [x0, #:lo12:.LANCHOR10] 5256 strh w1, [x20, 6] 5257 cmp w2, w0 5258 bne .L707 5259 adrp x0, .LANCHOR152 5260 adrp x2, .LANCHOR61 5261 adrp x3, .LANCHOR3 5262 str w1, [x0, #:lo12:.LANCHOR152] 5263 adrp x0, .LANCHOR19 5264 ldrh w3, [x3, #:lo12:.LANCHOR3] 5265 ldrh w0, [x0, #:lo12:.LANCHOR19] 5266 mul w0, w0, w1 5267 str w0, [x2, #:lo12:.LANCHOR61] 5268 adrp x2, .LANCHOR12 5269 ldrh w2, [x2, #:lo12:.LANCHOR12] 5270 mul w0, w2, w0 5271 adrp x2, .LANCHOR34 5272 str w0, [x2, #:lo12:.LANCHOR34] 5273 adrp x0, .LANCHOR7 5274 ldr w2, [x0, #:lo12:.LANCHOR7] 5275 adrp x0, .LANCHOR37+6 5276 ldrh w0, [x0, #:lo12:.LANCHOR37+6] 5277 cmp w1, w2 5278 sub w0, w2, w0 5279 sub w0, w0, w1 5280 udiv w0, w0, w3 5281 adrp x3, .LANCHOR78 5282 strh w0, [x3, #:lo12:.LANCHOR78] 5283 bls .L708 5284 adrp x1, .LANCHOR151 5285 adrp x0, .LC1 5286 mov w2, 1472 5287 add x1, x1, :lo12:.LANCHOR151 5288 add x0, x0, :lo12:.LC1 5289 bl printf 5290.L708: 5291 add x1, x19, :lo12:.LANCHOR39 5292 adrp x0, .LANCHOR51 5293 add x3, x0, :lo12:.LANCHOR51 5294 adrp x20, .LANCHOR80 5295 ldrh w2, [x1, 16] 5296 ldrh w6, [x1, 14] 5297 strh w6, [x0, #:lo12:.LANCHOR51] 5298 lsr w4, w2, 6 5299 and w2, w2, 63 5300 strb w2, [x3, 6] 5301 ldrb w2, [x1, 11] 5302 strb w2, [x3, 8] 5303 add x2, x20, :lo12:.LANCHOR80 5304 strh w4, [x3, 2] 5305 mov w3, -1 5306 strh w3, [x20, #:lo12:.LANCHOR80] 5307 strh wzr, [x2, 2] 5308 strb wzr, [x2, 6] 5309 strb wzr, [x2, 8] 5310 adrp x2, .LANCHOR52 5311 ldrh w3, [x1, 18] 5312 add x4, x2, :lo12:.LANCHOR52 5313 strh w3, [x2, #:lo12:.LANCHOR52] 5314 mov x21, x2 5315 ldrh w3, [x1, 20] 5316 lsr w5, w3, 6 5317 and w3, w3, 63 5318 strb w3, [x4, 6] 5319 ldrb w3, [x1, 12] 5320 strh w5, [x4, 2] 5321 strb w3, [x4, 8] 5322 adrp x4, .LANCHOR53 5323 ldrh w3, [x1, 22] 5324 add x5, x4, :lo12:.LANCHOR53 5325 strh w3, [x4, #:lo12:.LANCHOR53] 5326 mov x22, x4 5327 ldrh w3, [x1, 24] 5328 lsr w7, w3, 6 5329 and w3, w3, 63 5330 strb w3, [x5, 6] 5331 ldrb w3, [x1, 13] 5332 strb w3, [x5, 8] 5333 adrp x3, .LANCHOR67 5334 strh w7, [x5, 2] 5335 ldr w5, [x1, 32] 5336 str wzr, [x3, #:lo12:.LANCHOR67] 5337 adrp x3, .LANCHOR64 5338 str wzr, [x3, #:lo12:.LANCHOR64] 5339 adrp x3, .LANCHOR62 5340 str wzr, [x3, #:lo12:.LANCHOR62] 5341 adrp x3, .LANCHOR66 5342 str wzr, [x3, #:lo12:.LANCHOR66] 5343 adrp x3, .LANCHOR72 5344 str w5, [x3, #:lo12:.LANCHOR72] 5345 adrp x3, .LANCHOR73 5346 str wzr, [x3, #:lo12:.LANCHOR73] 5347 adrp x3, .LANCHOR76 5348 str wzr, [x3, #:lo12:.LANCHOR76] 5349 adrp x3, .LANCHOR65 5350 str wzr, [x3, #:lo12:.LANCHOR65] 5351 ldr w3, [x1, 40] 5352 adrp x1, .LANCHOR70 5353 ldr w5, [x1, #:lo12:.LANCHOR70] 5354 cmp w3, w5 5355 bls .L709 5356 str w3, [x1, #:lo12:.LANCHOR70] 5357.L709: 5358 add x19, x19, :lo12:.LANCHOR39 5359 adrp x1, .LANCHOR71 5360 ldr w3, [x1, #:lo12:.LANCHOR71] 5361 ldr w2, [x19, 36] 5362 cmp w2, w3 5363 bls .L710 5364 str w2, [x1, #:lo12:.LANCHOR71] 5365.L710: 5366 mov w1, 65535 5367 cmp w6, w1 5368 beq .L711 5369 add x0, x0, :lo12:.LANCHOR51 5370 bl make_superblock 5371.L711: 5372 ldrh w2, [x21, #:lo12:.LANCHOR52] 5373 mov w1, 65535 5374 add x0, x21, :lo12:.LANCHOR52 5375 cmp w2, w1 5376 beq .L712 5377 bl make_superblock 5378.L712: 5379 ldrh w2, [x22, #:lo12:.LANCHOR53] 5380 mov w1, 65535 5381 add x0, x22, :lo12:.LANCHOR53 5382 cmp w2, w1 5383 beq .L713 5384 bl make_superblock 5385.L713: 5386 ldrh w2, [x20, #:lo12:.LANCHOR80] 5387 mov w1, 65535 5388 add x0, x20, :lo12:.LANCHOR80 5389 cmp w2, w1 5390 beq .L714 5391 bl make_superblock 5392.L714: 5393 mov w0, 0 5394 b .L698 5395.L704: 5396 ldrh w0, [x20, #:lo12:.LANCHOR79] 5397 mov w2, 1 5398 mov w1, w2 5399 orr w0, w22, w0, lsl 10 5400 str w0, [x21, 4] 5401 ldr x0, [x23, #:lo12:.LANCHOR115] 5402 str x0, [x21, 8] 5403 mov x0, x21 5404 bl FlashReadPages 5405 ldr w0, [x21] 5406 cmn w0, #1 5407 beq .L702 5408 ldr x0, [x23, #:lo12:.LANCHOR115] 5409 ldr w0, [x0] 5410 cmp w0, w27 5411 bne .L702 5412 ldr x0, [x26, #:lo12:.LANCHOR123] 5413 ldrh w0, [x0] 5414 cmp w0, w28 5415 beq .L703 5416.L702: 5417 sub w22, w22, #1 5418 sxth w22, w22 5419 b .L701 5420 .size FtlLoadSysInfo, .-FtlLoadSysInfo 5421 .section .text.FlashProgPages,"ax",@progbits 5422 .align 2 5423 .global FlashProgPages 5424 .type FlashProgPages, %function 5425FlashProgPages: 5426 stp x29, x30, [sp, -160]! 5427 ubfiz x1, x1, 5, 32 5428 add x29, sp, 0 5429 stp x21, x22, [sp, 32] 5430 adrp x21, .LANCHOR0 5431 stp x23, x24, [sp, 48] 5432 adrp x22, .LANCHOR153 5433 stp w3, w2, [x29, 104] 5434 add x2, x21, :lo12:.LANCHOR0 5435 stp x19, x20, [sp, 16] 5436 adrp x24, .LANCHOR105 5437 stp x27, x28, [sp, 80] 5438 mov x19, x0 5439 ldrh w23, [x2, 12] 5440 add x20, x0, x1 5441 stp x25, x26, [sp, 64] 5442 add x22, x22, :lo12:.LANCHOR153 5443 mov x25, x0 5444 add x28, x24, :lo12:.LANCHOR105 5445 lsl w27, w23, 3 5446.L721: 5447 cmp x25, x20 5448 bne .L734 5449 ldr w0, [x29, 104] 5450 cbz w0, .L747 5451 adrp x21, .LANCHOR120 5452 adrp x22, .LANCHOR122 5453 mov x23, x21 5454 mov x24, x22 5455.L736: 5456 cmp x19, x20 5457 beq .L747 5458 ldr x1, [x21, #:lo12:.LANCHOR120] 5459 ldr x0, [x22, #:lo12:.LANCHOR122] 5460 str wzr, [x1] 5461 str wzr, [x0] 5462 stp x1, x0, [x29, 136] 5463 mov w1, 1 5464 ldr w2, [x19, 4] 5465 add x0, x29, 128 5466 str w2, [x29, 132] 5467 ldr w2, [x29, 108] 5468 bl FlashReadPages 5469 ldr w26, [x29, 128] 5470 cmn w26, #1 5471 bne .L737 5472 ldr w1, [x19, 4] 5473 adrp x0, .LC85 5474 add x0, x0, :lo12:.LC85 5475 bl printf 5476 str w26, [x19] 5477.L737: 5478 ldr x0, [x19, 16] 5479 cbz x0, .L738 5480 ldr w2, [x0] 5481 ldr x0, [x24, #:lo12:.LANCHOR122] 5482 ldr w3, [x0] 5483 cmp w2, w3 5484 beq .L738 5485 ldr w1, [x19, 4] 5486 adrp x0, .LC86 5487 add x0, x0, :lo12:.LC86 5488 bl printf 5489 mov w0, -1 5490 str w0, [x19] 5491.L738: 5492 ldr x0, [x19, 8] 5493 cbz x0, .L739 5494 ldr w2, [x0] 5495 ldr x0, [x23, #:lo12:.LANCHOR120] 5496 ldr w3, [x0] 5497 cmp w2, w3 5498 beq .L739 5499 ldr w1, [x19, 4] 5500 adrp x0, .LC87 5501 add x0, x0, :lo12:.LC87 5502 bl printf 5503 mov w0, -1 5504 str w0, [x19] 5505.L739: 5506 add x19, x19, 32 5507 b .L736 5508.L734: 5509 ldr x0, [x25, 8] 5510 cbz x0, .L722 5511 ldr x0, [x25, 16] 5512 cbnz x0, .L723 5513.L722: 5514 adrp x0, .LC1 5515 mov w2, 134 5516 mov x1, x22 5517 add x0, x0, :lo12:.LC1 5518 bl printf 5519.L723: 5520 ldr w0, [x25, 4] 5521 add x2, x29, 120 5522 add x1, x29, 124 5523 bl l2p_addr_tran.isra.0 5524 ldr w0, [x29, 120] 5525 cmp w0, 3 5526 bls .L724 5527.L760: 5528 mov w0, -1 5529 str w0, [x25] 5530 b .L725 5531.L724: 5532 cbnz w0, .L726 5533 ldr w0, [x29, 124] 5534 cmp w27, w0 5535 bls .L726 5536 adrp x21, .LANCHOR153 5537 adrp x22, .LC79 5538 mov w23, -1 5539 add x21, x21, :lo12:.LANCHOR153 5540 add x22, x22, :lo12:.LC79 5541 b .L758 5542.L728: 5543 ldr w2, [x19, 4] 5544 mov x1, x21 5545 str w23, [x19] 5546 mov x0, x22 5547 add x19, x19, 32 5548 bl printf 5549 ldr x1, [x19, -24] 5550 mov w3, 16 5551 mov w2, 4 5552 adrp x0, .LC80 5553 add x0, x0, :lo12:.LC80 5554 bl rknand_print_hex 5555 ldr x1, [x19, -16] 5556 mov w3, 4 5557 adrp x0, .LC81 5558 mov w2, w3 5559 add x0, x0, :lo12:.LC81 5560 bl rknand_print_hex 5561.L758: 5562 cmp x19, x20 5563 bne .L728 5564.L747: 5565 ldp x19, x20, [sp, 16] 5566 mov w0, 0 5567 ldp x21, x22, [sp, 32] 5568 ldp x23, x24, [sp, 48] 5569 ldp x25, x26, [sp, 64] 5570 ldp x27, x28, [sp, 80] 5571 ldp x29, x30, [sp], 160 5572 ret 5573.L726: 5574 ldr x1, [x25, 8] 5575 tst x1, 63 5576 beq .L741 5577 adrp x0, .LANCHOR120 5578 ldr x26, [x0, #:lo12:.LANCHOR120] 5579 cmp x1, x26 5580 beq .L729 5581 adrp x0, .LANCHOR12 5582 ldrh w2, [x0, #:lo12:.LANCHOR12] 5583 mov x0, x26 5584 lsl w2, w2, 9 5585 bl ftl_memcpy 5586.L729: 5587 add x0, x24, :lo12:.LANCHOR105 5588 ldr w1, [x29, 124] 5589 ldr x3, [x25, 16] 5590 mov x2, x26 5591 ldr x6, [x0, 16] 5592 ldrb w0, [x29, 120] 5593 blr x6 5594 cbnz w0, .L730 5595 str wzr, [x25] 5596.L731: 5597 add x0, x21, :lo12:.LANCHOR0 5598 ldrh w0, [x0, 14] 5599 cmp w0, 4 5600 bne .L725 5601 ldrb w0, [x29, 120] 5602 add x2, x26, 2048 5603 ldr x6, [x28, 16] 5604 ldr w1, [x29, 124] 5605 ldr x3, [x25, 16] 5606 add w1, w23, w1 5607 add x3, x3, 8 5608 blr x6 5609 cbnz w0, .L760 5610.L725: 5611 add x25, x25, 32 5612 b .L721 5613.L741: 5614 mov x26, x1 5615 b .L729 5616.L730: 5617 mov w0, -1 5618 str w0, [x25] 5619 b .L731 5620 .size FlashProgPages, .-FlashProgPages 5621 .section .text.FtlLowFormatEraseBlock,"ax",@progbits 5622 .align 2 5623 .global FtlLowFormatEraseBlock 5624 .type FtlLowFormatEraseBlock, %function 5625FtlLowFormatEraseBlock: 5626 stp x29, x30, [sp, -128]! 5627 adrp x7, .LANCHOR13 5628 add x7, x7, :lo12:.LANCHOR13 5629 mov x5, 0 5630 add x29, sp, 0 5631 stp x23, x24, [sp, 48] 5632 and w23, w0, 65535 5633 adrp x0, .LANCHOR111 5634 stp x19, x20, [sp, 16] 5635 stp x21, x22, [sp, 32] 5636 adrp x20, .LANCHOR3 5637 stp x25, x26, [sp, 64] 5638 and w22, w1, 255 5639 str w23, [x0, #:lo12:.LANCHOR111] 5640 adrp x21, .LANCHOR106 5641 adrp x0, .LANCHOR119 5642 adrp x1, .LANCHOR124 5643 adrp x25, .LANCHOR24 5644 ldrh w8, [x20, #:lo12:.LANCHOR3] 5645 ldr x6, [x21, #:lo12:.LANCHOR106] 5646 mov w24, 0 5647 ldr x10, [x0, #:lo12:.LANCHOR119] 5648 mov w19, 0 5649 ldr x11, [x1, #:lo12:.LANCHOR124] 5650 ldrh w12, [x25, #:lo12:.LANCHOR24] 5651 stp x27, x28, [sp, 80] 5652 str x0, [x29, 112] 5653.L762: 5654 cmp w8, w5, uxth 5655 bhi .L766 5656 cbz w24, .L761 5657 mov w2, w24 5658 ubfiz x24, x24, 5, 16 5659 mov x26, 0 5660 mov w1, 0 5661 mov x0, x6 5662 bl FlashEraseBlocks 5663.L770: 5664 ldr x0, [x21, #:lo12:.LANCHOR106] 5665 add x1, x0, x26 5666 ldr w0, [x0, x26] 5667 cmn w0, #1 5668 bne .L769 5669 ldr w0, [x1, 4] 5670 add w19, w19, 1 5671 and w19, w19, 65535 5672 lsr w0, w0, 10 5673 bl FtlBbmMapBadBlock 5674.L769: 5675 add x26, x26, 32 5676 cmp x26, x24 5677 bne .L770 5678 cbz w22, .L783 5679 adrp x0, .LANCHOR20 5680 mov w26, 1 5681 ldrh w28, [x0, #:lo12:.LANCHOR20] 5682.L771: 5683 add x0, x20, :lo12:.LANCHOR3 5684 adrp x27, .LANCHOR13 5685 str x0, [x29, 120] 5686 mov w24, 0 5687 add x0, x27, :lo12:.LANCHOR13 5688 str x0, [x29, 104] 5689.L779: 5690 ldr x0, [x29, 120] 5691 mov x5, 0 5692 ldr x6, [x21, #:lo12:.LANCHOR106] 5693 mov w20, 0 5694 ldrh w11, [x25, #:lo12:.LANCHOR24] 5695 ldrh w7, [x0] 5696 adrp x0, .LANCHOR118 5697 ldr x8, [x0, #:lo12:.LANCHOR118] 5698 ldr x0, [x29, 112] 5699 ldr x10, [x0, #:lo12:.LANCHOR119] 5700.L772: 5701 cmp w7, w5, uxth 5702 bhi .L775 5703 cbz w20, .L761 5704 mov w1, w20 5705 mov w3, 1 5706 mov w2, w26 5707 mov x0, x6 5708 bl FlashProgPages 5709 mov x27, 0 5710 ubfiz x1, x20, 5, 16 5711.L778: 5712 ldr x0, [x21, #:lo12:.LANCHOR106] 5713 add x3, x0, x27 5714 ldr w0, [x0, x27] 5715 cbz w0, .L777 5716 ldr w0, [x3, 4] 5717 add w19, w19, 1 5718 str x1, [x29, 96] 5719 and w19, w19, 65535 5720 lsr w0, w0, 10 5721 bl FtlBbmMapBadBlock 5722 ldr x1, [x29, 96] 5723.L777: 5724 add x27, x27, 32 5725 cmp x1, x27 5726 bne .L778 5727 add w24, w24, 1 5728 cmp w28, w24, uxth 5729 bhi .L779 5730 mov x24, 0 5731.L781: 5732 cbz w22, .L780 5733 ldr x0, [x21, #:lo12:.LANCHOR106] 5734 add x1, x0, x24 5735 ldr w0, [x0, x24] 5736 cbnz w0, .L780 5737 ldr w0, [x1, 4] 5738 mov w1, 1 5739 lsr w0, w0, 10 5740 bl FtlFreeSysBlkQueueIn 5741.L780: 5742 add x24, x24, 32 5743 cmp x24, x27 5744 bne .L781 5745 cmp w23, 63 5746 ccmp w22, 0, 0, hi 5747 beq .L761 5748 ldr x0, [x21, #:lo12:.LANCHOR106] 5749 mov w2, w20 5750 mov w1, w26 5751 bl FlashEraseBlocks 5752.L761: 5753 mov w0, w19 5754 ldp x19, x20, [sp, 16] 5755 ldp x21, x22, [sp, 32] 5756 ldp x23, x24, [sp, 48] 5757 ldp x25, x26, [sp, 64] 5758 ldp x27, x28, [sp, 80] 5759 ldp x29, x30, [sp], 128 5760 ret 5761.L766: 5762 lsl x0, x5, 5 5763 mov w1, w23 5764 str wzr, [x6, x0] 5765 ldrb w0, [x7, x5] 5766 bl V2P_block 5767 and w13, w0, 65535 5768 mov w14, w13 5769 cbz w22, .L763 5770 bl IsBlkInVendorPart 5771 cbnz w0, .L764 5772.L763: 5773 mov w0, w14 5774 bl FtlBbmIsBadBlock 5775 cbnz w0, .L765 5776 ubfiz x0, x24, 5, 16 5777 mul w1, w24, w12 5778 add x0, x6, x0 5779 add w24, w24, 1 5780 and w24, w24, 65535 5781 lsl w13, w13, 10 5782 asr w1, w1, 2 5783 add x1, x11, x1, sxtw 2 5784 str w13, [x0, 4] 5785 stp x10, x1, [x0, 8] 5786.L764: 5787 add x5, x5, 1 5788 b .L762 5789.L765: 5790 add w19, w19, 1 5791 and w19, w19, 65535 5792 b .L764 5793.L783: 5794 mov w26, 0 5795 mov w28, 2 5796 b .L771 5797.L775: 5798 lsl x0, x5, 5 5799 mov w1, w23 5800 str wzr, [x6, x0] 5801 ldr x0, [x29, 104] 5802 ldrb w0, [x0, x5] 5803 bl V2P_block 5804 and w12, w0, 65535 5805 mov w13, w12 5806 cbz w22, .L773 5807 bl IsBlkInVendorPart 5808 cbnz w0, .L774 5809.L773: 5810 mov w0, w13 5811 bl FtlBbmIsBadBlock 5812 cbnz w0, .L774 5813 ubfiz x0, x20, 5, 16 5814 mul w1, w20, w11 5815 add x0, x6, x0 5816 add w20, w20, 1 5817 and w20, w20, 65535 5818 add w12, w24, w12, lsl 10 5819 asr w1, w1, 2 5820 add x1, x10, x1, sxtw 2 5821 str w12, [x0, 4] 5822 stp x8, x1, [x0, 8] 5823.L774: 5824 add x5, x5, 1 5825 b .L772 5826 .size FtlLowFormatEraseBlock, .-FtlLowFormatEraseBlock 5827 .section .text.Ftl_write_map_blk_to_last_page,"ax",@progbits 5828 .align 2 5829 .global Ftl_write_map_blk_to_last_page 5830 .type Ftl_write_map_blk_to_last_page, %function 5831Ftl_write_map_blk_to_last_page: 5832 stp x29, x30, [sp, -64]! 5833 mov w1, 65535 5834 add x29, sp, 0 5835 stp x19, x20, [sp, 16] 5836 mov x19, x0 5837 ldr x20, [x0, 16] 5838 stp x21, x22, [sp, 32] 5839 ldrh w0, [x0] 5840 str x23, [sp, 48] 5841 cmp w0, w1 5842 bne .L805 5843 ldrh w0, [x19, 8] 5844 cbz w0, .L806 5845 adrp x1, .LANCHOR154 5846 adrp x0, .LC1 5847 mov w2, 641 5848 add x1, x1, :lo12:.LANCHOR154 5849 add x0, x0, :lo12:.LC1 5850 bl printf 5851.L806: 5852 ldrh w0, [x19, 8] 5853 add w0, w0, 1 5854 strh w0, [x19, 8] 5855 bl FtlFreeSysBlkQueueOut 5856 strh w0, [x20] 5857 ldr w0, [x19, 48] 5858 strh wzr, [x19, 2] 5859 add w0, w0, 1 5860 strh wzr, [x19] 5861 str w0, [x19, 48] 5862.L807: 5863 mov w0, 0 5864 ldr x23, [sp, 48] 5865 ldp x19, x20, [sp, 16] 5866 ldp x21, x22, [sp, 32] 5867 ldp x29, x30, [sp], 64 5868 ret 5869.L805: 5870 ubfiz x0, x0, 1, 16 5871 adrp x1, .LANCHOR123 5872 adrp x23, .LANCHOR115 5873 ldr x22, [x19, 40] 5874 ldr x1, [x1, #:lo12:.LANCHOR123] 5875 ldrh w21, [x20, x0] 5876 adrp x20, .LANCHOR148 5877 ldrh w0, [x19, 2] 5878 add x2, x20, :lo12:.LANCHOR148 5879 orr w0, w0, w21, lsl 10 5880 str w0, [x2, 4] 5881 ldr x0, [x23, #:lo12:.LANCHOR115] 5882 str x1, [x2, 16] 5883 str x0, [x2, 8] 5884 ldr w2, [x19, 48] 5885 str w2, [x1, 4] 5886 mov w2, -1291 5887 strh w2, [x1, 8] 5888 ldrh w2, [x19, 4] 5889 strh w2, [x1] 5890 strh w21, [x1, 2] 5891 adrp x1, .LANCHOR20 5892 ldrh w2, [x1, #:lo12:.LANCHOR20] 5893 mov w1, 255 5894 lsl w2, w2, 3 5895 bl ftl_memset 5896 ldrh w4, [x19, 6] 5897 mov x1, 0 5898 ldr x3, [x23, #:lo12:.LANCHOR115] 5899 mov w2, 0 5900.L808: 5901 cmp w4, w1, uxth 5902 bhi .L810 5903 mov w2, 1 5904 mov w3, 0 5905 mov w1, w2 5906 add x0, x20, :lo12:.LANCHOR148 5907 bl FlashProgPages 5908 ldrh w0, [x19, 2] 5909 add w0, w0, 1 5910 strh w0, [x19, 2] 5911 mov x0, x19 5912 bl ftl_map_blk_gc 5913 b .L807 5914.L810: 5915 ldr w0, [x22, x1, lsl 2] 5916 cmp w21, w0, lsr 10 5917 bne .L809 5918 add w2, w2, 1 5919 and w2, w2, 65535 5920 ubfiz x0, x2, 1, 16 5921 str w1, [x3, x0, lsl 2] 5922 add x0, x0, 1 5923 ldr w5, [x22, x1, lsl 2] 5924 str w5, [x3, x0, lsl 2] 5925.L809: 5926 add x1, x1, 1 5927 b .L808 5928 .size Ftl_write_map_blk_to_last_page, .-Ftl_write_map_blk_to_last_page 5929 .section .text.FtlMapWritePage,"ax",@progbits 5930 .align 2 5931 .global FtlMapWritePage 5932 .type FtlMapWritePage, %function 5933FtlMapWritePage: 5934 stp x29, x30, [sp, -112]! 5935 add x29, sp, 0 5936 stp x23, x24, [sp, 48] 5937 adrp x23, .LANCHOR66 5938 stp x25, x26, [sp, 64] 5939 adrp x24, .LANCHOR155 5940 stp x27, x28, [sp, 80] 5941 adrp x26, .LANCHOR20 5942 stp x19, x20, [sp, 16] 5943 mov w25, w1 5944 mov x19, x0 5945 mov x27, x2 5946 add x23, x23, :lo12:.LANCHOR66 5947 add x24, x24, :lo12:.LANCHOR155 5948 add x28, x26, :lo12:.LANCHOR20 5949 stp x21, x22, [sp, 32] 5950 mov w22, 0 5951.L816: 5952 ldr w0, [x23] 5953 ldrh w1, [x19, 2] 5954 add w0, w0, 1 5955 str w0, [x23] 5956 ldrh w0, [x26, #:lo12:.LANCHOR20] 5957 sub w0, w0, #1 5958 cmp w1, w0 5959 bge .L817 5960 ldrh w1, [x19] 5961 mov w0, 65535 5962 cmp w1, w0 5963 bne .L818 5964.L817: 5965 mov x0, x19 5966 bl Ftl_write_map_blk_to_last_page 5967.L818: 5968 ldrh w1, [x19] 5969 ldr x0, [x19, 16] 5970 ldrh w0, [x0, x1, lsl 1] 5971 cbnz w0, .L819 5972 adrp x0, .LC1 5973 mov w2, 699 5974 mov x1, x24 5975 add x0, x0, :lo12:.LC1 5976 bl printf 5977.L819: 5978 ldrh w1, [x19] 5979 ldrh w0, [x19, 10] 5980 cmp w1, w0 5981 bcc .L820 5982 adrp x0, .LC1 5983 mov w2, 700 5984 mov x1, x24 5985 add x0, x0, :lo12:.LC1 5986 bl printf 5987.L820: 5988 ldrh w1, [x19] 5989 adrp x21, .LANCHOR148 5990 ldr x0, [x19, 16] 5991 add x20, x21, :lo12:.LANCHOR148 5992 mov w2, 16 5993 ldrh w3, [x0, x1, lsl 1] 5994 mov w1, 0 5995 ldrh w0, [x19, 2] 5996 str w3, [x29, 108] 5997 str x27, [x20, 8] 5998 orr w0, w0, w3, lsl 10 5999 str w0, [x20, 4] 6000 adrp x0, .LANCHOR123 6001 ldr x0, [x0, #:lo12:.LANCHOR123] 6002 str x0, [x20, 16] 6003 bl ftl_memset 6004 ldr x0, [x20, 16] 6005 ldr w1, [x19, 48] 6006 ldr w3, [x29, 108] 6007 str w1, [x0, 4] 6008 ldrh w1, [x19, 4] 6009 strh w1, [x0] 6010 strh w3, [x0, 2] 6011 mov w3, 1 6012 strh w25, [x0, 8] 6013 mov w1, w3 6014 mov w2, w3 6015 mov x0, x20 6016 bl FlashProgPages 6017 ldrh w0, [x19, 2] 6018 ldr w1, [x21, #:lo12:.LANCHOR148] 6019 add w0, w0, 1 6020 and w0, w0, 65535 6021 strh w0, [x19, 2] 6022 cmn w1, #1 6023 bne .L821 6024 ldr w1, [x20, 4] 6025 adrp x0, .LC88 6026 add x0, x0, :lo12:.LC88 6027 add w22, w22, 1 6028 and w22, w22, 65535 6029 bl printf 6030 ldrh w0, [x19, 2] 6031 cmp w0, 2 6032 bhi .L822 6033 ldrh w0, [x28] 6034 sub w0, w0, #1 6035 strh w0, [x19, 2] 6036.L822: 6037 cmp w22, 3 6038 bls .L823 6039 add x21, x21, :lo12:.LANCHOR148 6040 adrp x0, .LC89 6041 mov w2, w22 6042 add x0, x0, :lo12:.LC89 6043 ldr w1, [x21, 4] 6044 bl printf 6045.L824: 6046 b .L824 6047.L823: 6048 ldr w0, [x19, 52] 6049 cbz w0, .L816 6050.L838: 6051 b .L838 6052.L821: 6053 cmp w0, 1 6054 beq .L827 6055 cmp w1, 256 6056 beq .L827 6057 ldr w0, [x19, 56] 6058 cbz w0, .L828 6059.L827: 6060 str wzr, [x19, 56] 6061 b .L816 6062.L828: 6063 ldr x0, [x19, 40] 6064 ldr w1, [x20, 4] 6065 ldp x21, x22, [sp, 32] 6066 ldp x23, x24, [sp, 48] 6067 ldp x27, x28, [sp, 80] 6068 str w1, [x0, w25, uxtw 2] 6069 ldp x19, x20, [sp, 16] 6070 mov w0, 0 6071 ldp x25, x26, [sp, 64] 6072 ldp x29, x30, [sp], 112 6073 ret 6074 .size FtlMapWritePage, .-FtlMapWritePage 6075 .section .text.load_l2p_region,"ax",@progbits 6076 .align 2 6077 .global load_l2p_region 6078 .type load_l2p_region, %function 6079load_l2p_region: 6080 stp x29, x30, [sp, -96]! 6081 add x29, sp, 0 6082 stp x23, x24, [sp, 48] 6083 adrp x24, .LANCHOR32 6084 stp x19, x20, [sp, 16] 6085 and w20, w0, 65535 6086 stp x21, x22, [sp, 32] 6087 and x19, x1, 65535 6088 ldrh w0, [x24, #:lo12:.LANCHOR32] 6089 stp x25, x26, [sp, 64] 6090 str x27, [sp, 80] 6091 cmp w0, w20 6092 bcs .L841 6093 adrp x1, .LANCHOR156 6094 adrp x0, .LC1 6095 mov w2, 485 6096 add x1, x1, :lo12:.LANCHOR156 6097 add x0, x0, :lo12:.LC1 6098 bl printf 6099.L841: 6100 adrp x27, .LANCHOR134 6101 ubfiz x0, x20, 2, 16 6102 adrp x22, .LANCHOR55 6103 ldr x1, [x27, #:lo12:.LANCHOR134] 6104 ldr w23, [x1, x0] 6105 cbnz w23, .L842 6106 ldr x0, [x22, #:lo12:.LANCHOR55] 6107 lsl x19, x19, 4 6108 adrp x1, .LANCHOR23 6109 add x0, x0, x19 6110 ldrh w2, [x1, #:lo12:.LANCHOR23] 6111 mov w1, 255 6112 ldr x0, [x0, 8] 6113 bl ftl_memset 6114 ldr x0, [x22, #:lo12:.LANCHOR55] 6115 add x1, x0, x19 6116 strh w20, [x0, x19] 6117 str wzr, [x1, 4] 6118.L843: 6119 mov w0, 0 6120 ldr x27, [sp, 80] 6121 ldp x19, x20, [sp, 16] 6122 ldp x21, x22, [sp, 32] 6123 ldp x23, x24, [sp, 48] 6124 ldp x25, x26, [sp, 64] 6125 ldp x29, x30, [sp], 96 6126 ret 6127.L842: 6128 ldr x0, [x22, #:lo12:.LANCHOR55] 6129 lsl x19, x19, 4 6130 adrp x26, .LANCHOR148 6131 add x21, x26, :lo12:.LANCHOR148 6132 add x0, x0, x19 6133 mov w2, 1 6134 mov w1, w2 6135 str w23, [x21, 4] 6136 ldr x0, [x0, 8] 6137 str x0, [x21, 8] 6138 adrp x0, .LANCHOR123 6139 ldr x0, [x0, #:lo12:.LANCHOR123] 6140 str x0, [x21, 16] 6141 mov x0, x21 6142 bl FlashReadPages 6143 ldr x25, [x21, 16] 6144 ldrh w0, [x25, 8] 6145 cmp w0, w20 6146 beq .L844 6147 mov w2, w23 6148 mov w1, w20 6149 adrp x0, .LC90 6150 add x0, x0, :lo12:.LC90 6151 bl printf 6152 ldr x1, [x21, 16] 6153 mov w3, 4 6154 adrp x0, .LC91 6155 mov w2, w3 6156 add x0, x0, :lo12:.LC91 6157 bl rknand_print_hex 6158 ldrh w3, [x24, #:lo12:.LANCHOR32] 6159 adrp x0, .LC92 6160 ldr x1, [x27, #:lo12:.LANCHOR134] 6161 mov w2, 4 6162 add x0, x0, :lo12:.LC92 6163 bl rknand_print_hex 6164.L845: 6165 ldrh w0, [x25, 8] 6166 cmp w0, w20 6167 beq .L846 6168 adrp x1, .LANCHOR156 6169 adrp x0, .LC1 6170 mov w2, 508 6171 add x1, x1, :lo12:.LANCHOR156 6172 add x0, x0, :lo12:.LC1 6173 bl printf 6174.L846: 6175 ldr x0, [x22, #:lo12:.LANCHOR55] 6176 add x1, x0, x19 6177 str wzr, [x1, 4] 6178 strh w20, [x0, x19] 6179 b .L843 6180.L844: 6181 ldr w0, [x26, #:lo12:.LANCHOR148] 6182 cmp w0, 256 6183 bne .L845 6184 mov w2, w23 6185 mov w1, w20 6186 adrp x0, .LC93 6187 add x0, x0, :lo12:.LC93 6188 bl printf 6189 ldr x0, [x22, #:lo12:.LANCHOR55] 6190 mov w1, w20 6191 add x0, x0, x19 6192 ldr x2, [x0, 8] 6193 adrp x0, .LANCHOR140 6194 add x0, x0, :lo12:.LANCHOR140 6195 bl FtlMapWritePage 6196 b .L845 6197 .size load_l2p_region, .-load_l2p_region 6198 .section .text.ftl_map_blk_gc,"ax",@progbits 6199 .align 2 6200 .global ftl_map_blk_gc 6201 .type ftl_map_blk_gc, %function 6202ftl_map_blk_gc: 6203 stp x29, x30, [sp, -96]! 6204 add x29, sp, 0 6205 stp x19, x20, [sp, 16] 6206 mov x19, x0 6207 stp x23, x24, [sp, 48] 6208 adrp x24, .LANCHOR20 6209 stp x25, x26, [sp, 64] 6210 stp x21, x22, [sp, 32] 6211 stp x27, x28, [sp, 80] 6212 ldr x20, [x0, 16] 6213 ldr x25, [x0, 40] 6214 bl ftl_free_no_use_map_blk 6215 ldrh w1, [x19, 10] 6216 ldrh w2, [x19, 8] 6217 sub w1, w1, #5 6218 cmp w2, w1 6219 blt .L849 6220 ubfiz x0, x0, 1, 16 6221 ldrh w22, [x20, x0] 6222 cbz w22, .L849 6223 ldr w1, [x19, 52] 6224 cbnz w1, .L849 6225 mov w1, 1 6226 str w1, [x19, 52] 6227 strh wzr, [x20, x0] 6228 ldrh w0, [x19, 8] 6229 ldrh w1, [x19, 2] 6230 sub w0, w0, #1 6231 strh w0, [x19, 8] 6232 ldrh w0, [x24, #:lo12:.LANCHOR20] 6233 cmp w1, w0 6234 bcc .L850 6235 mov x0, x19 6236 bl ftl_map_blk_alloc_new_blk 6237.L850: 6238 adrp x26, .LANCHOR148 6239 adrp x23, .LANCHOR157 6240 add x27, x26, :lo12:.LANCHOR148 6241 add x23, x23, :lo12:.LANCHOR157 6242 mov w20, 0 6243.L851: 6244 ldrh w0, [x19, 6] 6245 cmp w0, w20 6246 bhi .L858 6247 mov w1, 1 6248 mov w0, w22 6249 bl FtlFreeSysBlkQueueIn 6250 str wzr, [x19, 52] 6251.L849: 6252 ldrh w1, [x19, 2] 6253 ldrh w0, [x24, #:lo12:.LANCHOR20] 6254 cmp w1, w0 6255 bcc .L859 6256 mov x0, x19 6257 bl ftl_map_blk_alloc_new_blk 6258.L859: 6259 mov w0, 0 6260 ldp x19, x20, [sp, 16] 6261 ldp x21, x22, [sp, 32] 6262 ldp x23, x24, [sp, 48] 6263 ldp x25, x26, [sp, 64] 6264 ldp x27, x28, [sp, 80] 6265 ldp x29, x30, [sp], 96 6266 ret 6267.L858: 6268 ubfiz x0, x20, 2, 16 6269 add x28, x25, x0 6270 ldr w1, [x25, x0] 6271 cmp w22, w1, lsr 10 6272 bne .L852 6273 adrp x2, .LANCHOR116 6274 add x0, x26, :lo12:.LANCHOR148 6275 ldr x2, [x2, #:lo12:.LANCHOR116] 6276 str x2, [x0, 8] 6277 adrp x2, .LANCHOR123 6278 str w1, [x0, 4] 6279 ldr x21, [x2, #:lo12:.LANCHOR123] 6280 mov w2, 1 6281 str x21, [x0, 16] 6282 mov w1, w2 6283 bl FlashReadPages 6284 ldrh w0, [x21, 8] 6285 cmp w0, w20 6286 beq .L853 6287 adrp x0, .LC1 6288 mov w2, 611 6289 mov x1, x23 6290 add x0, x0, :lo12:.LC1 6291 bl printf 6292.L853: 6293 ldr w0, [x27] 6294 cmn w0, #1 6295 bne .L854 6296.L856: 6297 str wzr, [x28] 6298.L855: 6299 b .L855 6300.L854: 6301 ldrh w0, [x21, 8] 6302 cmp w0, w20 6303 bne .L856 6304 ldrh w1, [x21] 6305 ldrh w0, [x19, 4] 6306 cmp w1, w0 6307 bne .L856 6308 ldr x2, [x27, 8] 6309 mov w1, w20 6310 mov x0, x19 6311 bl FtlMapWritePage 6312.L852: 6313 add w20, w20, 1 6314 and w20, w20, 65535 6315 b .L851 6316 .size ftl_map_blk_gc, .-ftl_map_blk_gc 6317 .section .text.FtlMapTblRecovery,"ax",@progbits 6318 .align 2 6319 .global FtlMapTblRecovery 6320 .type FtlMapTblRecovery, %function 6321FtlMapTblRecovery: 6322 stp x29, x30, [sp, -144]! 6323 mov w1, 0 6324 add x29, sp, 0 6325 stp x19, x20, [sp, 16] 6326 mov x19, x0 6327 stp x23, x24, [sp, 48] 6328 adrp x20, .LANCHOR148 6329 ldrh w23, [x0, 6] 6330 adrp x24, .LANCHOR20 6331 stp x21, x22, [sp, 32] 6332 ldr x21, [x0, 40] 6333 ldr x22, [x0, 16] 6334 lsl w2, w23, 2 6335 ldr x0, [x0, 24] 6336 str x0, [x29, 128] 6337 ldrh w0, [x19, 8] 6338 stp x25, x26, [sp, 64] 6339 stp x27, x28, [sp, 80] 6340 mov w27, 0 6341 str w0, [x29, 140] 6342 mov x0, x21 6343 bl ftl_memset 6344 str x20, [x29, 120] 6345 adrp x7, .LANCHOR115 6346 add x3, x20, :lo12:.LANCHOR148 6347 mov x26, x7 6348 mov x20, x3 6349 ldr x0, [x7, #:lo12:.LANCHOR115] 6350 str x0, [x3, 8] 6351 adrp x0, .LANCHOR123 6352 stp wzr, wzr, [x19, 48] 6353 ldr x25, [x0, #:lo12:.LANCHOR123] 6354 mov w0, -1 6355 str x25, [x3, 16] 6356 strh w0, [x19] 6357 strh w0, [x19, 2] 6358 mov w0, 1 6359 str w0, [x19, 56] 6360 ldr w0, [x29, 140] 6361 sub w0, w0, #1 6362 str w0, [x29, 136] 6363 add x0, x24, :lo12:.LANCHOR20 6364 str x0, [x29, 112] 6365.L866: 6366 ldr w0, [x29, 140] 6367 cmp w27, w0 6368 bge .L883 6369 ldr w0, [x29, 136] 6370 sxtw x28, w27 6371 cmp w27, w0 6372 bne .L867 6373 lsl x0, x28, 1 6374 mov w1, 1 6375 add x24, x22, x0 6376 ldrh w0, [x22, x0] 6377 mov w22, 0 6378 bl FtlGetLastWrittenPage 6379 sxth w26, w0 6380 add w0, w0, 1 6381 strh w0, [x19, 2] 6382 ldr x0, [x29, 128] 6383 strh w27, [x19] 6384 ldr w0, [x0, x28, lsl 2] 6385 str w0, [x19, 48] 6386 ldr x0, [x29, 120] 6387 add x20, x0, :lo12:.LANCHOR148 6388.L868: 6389 cmp w22, w26 6390 ble .L870 6391.L883: 6392 mov x0, x19 6393 bl ftl_free_no_use_map_blk 6394 adrp x0, .LANCHOR20 6395 ldrh w1, [x19, 2] 6396 ldrh w0, [x0, #:lo12:.LANCHOR20] 6397 cmp w1, w0 6398 bne .L872 6399 mov x0, x19 6400 bl ftl_map_blk_alloc_new_blk 6401.L872: 6402 mov x0, x19 6403 bl ftl_map_blk_gc 6404 mov x0, x19 6405 bl ftl_map_blk_gc 6406 mov w0, 0 6407 ldp x19, x20, [sp, 16] 6408 ldp x21, x22, [sp, 32] 6409 ldp x23, x24, [sp, 48] 6410 ldp x25, x26, [sp, 64] 6411 ldp x27, x28, [sp, 80] 6412 ldp x29, x30, [sp], 144 6413 ret 6414.L870: 6415 ldrh w0, [x24] 6416 mov w2, 1 6417 mov w1, w2 6418 orr w0, w22, w0, lsl 10 6419 str w0, [x20, 4] 6420 mov x0, x20 6421 bl FlashReadPages 6422 ldr w0, [x20] 6423 cmn w0, #1 6424 beq .L869 6425 ldrh w0, [x25, 8] 6426 cmp w23, w0 6427 bls .L869 6428 ldrh w2, [x25] 6429 ldrh w1, [x19, 4] 6430 cmp w2, w1 6431 bne .L869 6432 ubfiz x0, x0, 2, 16 6433 ldr w1, [x20, 4] 6434 str w1, [x21, x0] 6435.L869: 6436 add w22, w22, 1 6437 sxth w22, w22 6438 b .L868 6439.L867: 6440 ldr x0, [x26, #:lo12:.LANCHOR115] 6441 mov w2, 1 6442 str x0, [x20, 8] 6443 lsl x0, x28, 1 6444 ldrh w1, [x24, #:lo12:.LANCHOR20] 6445 add x28, x22, x0 6446 ldrh w0, [x22, x0] 6447 sub w1, w1, #1 6448 orr w0, w1, w0, lsl 10 6449 mov w1, w2 6450 str w0, [x20, 4] 6451 mov x0, x20 6452 bl FlashReadPages 6453 ldr w0, [x20] 6454 cmn w0, #1 6455 beq .L885 6456 ldrh w1, [x25] 6457 ldrh w0, [x19, 4] 6458 cmp w1, w0 6459 bne .L885 6460 ldrh w1, [x25, 8] 6461 mov w0, 64245 6462 cmp w1, w0 6463 beq .L874 6464.L885: 6465 mov w5, 0 6466.L875: 6467 ldr x0, [x29, 112] 6468 ldrh w0, [x0] 6469 cmp w5, w0 6470 bge .L881 6471 ldrh w0, [x28] 6472 mov w2, 1 6473 str w5, [x29, 108] 6474 mov w1, w2 6475 orr w0, w5, w0, lsl 10 6476 str w0, [x20, 4] 6477 mov x0, x20 6478 bl FlashReadPages 6479 ldr w0, [x20] 6480 ldr w5, [x29, 108] 6481 cmn w0, #1 6482 beq .L879 6483 ldrh w0, [x25, 8] 6484 cmp w23, w0 6485 bls .L879 6486 ldrh w2, [x25] 6487 ldrh w1, [x19, 4] 6488 cmp w2, w1 6489 bne .L879 6490 ubfiz x0, x0, 2, 16 6491 ldr w1, [x20, 4] 6492 str w1, [x21, x0] 6493.L879: 6494 add w5, w5, 1 6495 sxth w5, w5 6496 b .L875 6497.L874: 6498 ldrh w5, [x24, #:lo12:.LANCHOR20] 6499 mov w0, 0 6500 ldr x10, [x26, #:lo12:.LANCHOR115] 6501 sub w5, w5, #1 6502.L876: 6503 cmp w0, w5 6504 blt .L878 6505.L881: 6506 add w4, w27, 1 6507 sxth w27, w4 6508 b .L866 6509.L878: 6510 lsl w2, w0, 1 6511 sxtw x2, w2 6512 lsl x1, x2, 2 6513 ldrh w1, [x10, x1] 6514 cmp w23, w1 6515 bls .L877 6516 add x2, x2, 1 6517 ubfiz x1, x1, 2, 16 6518 ldr w2, [x10, x2, lsl 2] 6519 str w2, [x21, x1] 6520.L877: 6521 add w0, w0, 1 6522 sxth w0, w0 6523 b .L876 6524 .size FtlMapTblRecovery, .-FtlMapTblRecovery 6525 .section .text.FtlLoadVonderInfo,"ax",@progbits 6526 .align 2 6527 .global FtlLoadVonderInfo 6528 .type FtlLoadVonderInfo, %function 6529FtlLoadVonderInfo: 6530 stp x29, x30, [sp, -16]! 6531 adrp x1, .LANCHOR27 6532 adrp x0, .LANCHOR158 6533 add x0, x0, :lo12:.LANCHOR158 6534 add x29, sp, 0 6535 ldrh w1, [x1, #:lo12:.LANCHOR27] 6536 strh w1, [x0, 10] 6537 mov w1, -3962 6538 strh w1, [x0, 4] 6539 adrp x1, .LANCHOR35 6540 ldrh w1, [x1, #:lo12:.LANCHOR35] 6541 strh w1, [x0, 8] 6542 adrp x1, .LANCHOR28 6543 ldrh w1, [x1, #:lo12:.LANCHOR28] 6544 strh w1, [x0, 6] 6545 adrp x1, .LANCHOR36 6546 ldr x1, [x1, #:lo12:.LANCHOR36] 6547 str x1, [x0, 16] 6548 adrp x1, .LANCHOR132 6549 ldr x1, [x1, #:lo12:.LANCHOR132] 6550 str x1, [x0, 24] 6551 adrp x1, .LANCHOR131 6552 ldr x1, [x1, #:lo12:.LANCHOR131] 6553 str x1, [x0, 32] 6554 adrp x1, .LANCHOR133 6555 ldr x1, [x1, #:lo12:.LANCHOR133] 6556 str x1, [x0, 40] 6557 bl FtlMapTblRecovery 6558 mov w0, 0 6559 ldp x29, x30, [sp], 16 6560 ret 6561 .size FtlLoadVonderInfo, .-FtlLoadVonderInfo 6562 .section .text.FtlLoadMapInfo,"ax",@progbits 6563 .align 2 6564 .global FtlLoadMapInfo 6565 .type FtlLoadMapInfo, %function 6566FtlLoadMapInfo: 6567 stp x29, x30, [sp, -16]! 6568 add x29, sp, 0 6569 bl FtlL2PDataInit 6570 adrp x0, .LANCHOR140 6571 add x0, x0, :lo12:.LANCHOR140 6572 bl FtlMapTblRecovery 6573 mov w0, 0 6574 ldp x29, x30, [sp], 16 6575 ret 6576 .size FtlLoadMapInfo, .-FtlLoadMapInfo 6577 .section .text.flush_l2p_region,"ax",@progbits 6578 .align 2 6579 .global flush_l2p_region 6580 .type flush_l2p_region, %function 6581flush_l2p_region: 6582 stp x29, x30, [sp, -32]! 6583 add x29, sp, 0 6584 stp x19, x20, [sp, 16] 6585 adrp x20, .LANCHOR55 6586 ubfiz x19, x0, 4, 16 6587 ldr x0, [x20, #:lo12:.LANCHOR55] 6588 add x1, x0, x19 6589 ldr x2, [x1, 8] 6590 ldrh w1, [x0, x19] 6591 adrp x0, .LANCHOR140 6592 add x0, x0, :lo12:.LANCHOR140 6593 bl FtlMapWritePage 6594 ldr x0, [x20, #:lo12:.LANCHOR55] 6595 add x0, x0, x19 6596 ldp x19, x20, [sp, 16] 6597 ldr w1, [x0, 4] 6598 and w1, w1, 2147483647 6599 str w1, [x0, 4] 6600 mov w0, 0 6601 ldp x29, x30, [sp], 32 6602 ret 6603 .size flush_l2p_region, .-flush_l2p_region 6604 .section .text.log2phys,"ax",@progbits 6605 .align 2 6606 .global log2phys 6607 .type log2phys, %function 6608log2phys: 6609 stp x29, x30, [sp, -80]! 6610 add x29, sp, 0 6611 stp x25, x26, [sp, 64] 6612 mov w25, w0 6613 adrp x0, .LANCHOR22 6614 stp x23, x24, [sp, 48] 6615 stp x19, x20, [sp, 16] 6616 mov x20, x1 6617 ldrh w24, [x0, #:lo12:.LANCHOR22] 6618 adrp x0, .LANCHOR61 6619 stp x21, x22, [sp, 32] 6620 mov x19, x0 6621 ldr w1, [x0, #:lo12:.LANCHOR61] 6622 mov w21, w2 6623 cmp w25, w1 6624 bcc .L900 6625 adrp x1, .LANCHOR159 6626 adrp x0, .LC1 6627 mov w2, 811 6628 add x1, x1, :lo12:.LANCHOR159 6629 add x0, x0, :lo12:.LC1 6630 bl printf 6631.L900: 6632 ldr w0, [x19, #:lo12:.LANCHOR61] 6633 cmp w25, w0 6634 bcs .L901 6635 adrp x23, .LANCHOR55 6636 add w24, w24, 7 6637 adrp x0, .LANCHOR33 6638 ldr x2, [x23, #:lo12:.LANCHOR55] 6639 lsr w22, w25, w24 6640 and w22, w22, 65535 6641 ldrh w1, [x0, #:lo12:.LANCHOR33] 6642 mov x0, 0 6643.L902: 6644 and x19, x0, 65535 6645 cmp w19, w1 6646 bcc .L907 6647 bl select_l2p_ram_region 6648 and x19, x0, 65535 6649 ldr x2, [x23, #:lo12:.LANCHOR55] 6650 ubfiz x1, x19, 4, 16 6651 mov w26, w0 6652 add x3, x2, x1 6653 ldrh w2, [x2, x1] 6654 mov w1, 65535 6655 cmp w2, w1 6656 beq .L908 6657 ldr w1, [x3, 4] 6658 tbz w1, #31, .L908 6659 bl flush_l2p_region 6660.L908: 6661 mov w1, w26 6662 mov w0, w22 6663 bl load_l2p_region 6664 b .L904 6665.L901: 6666 mov w0, -1 6667 cbnz w21, .L899 6668 str w0, [x20] 6669.L899: 6670 ldp x19, x20, [sp, 16] 6671 ldp x21, x22, [sp, 32] 6672 ldp x23, x24, [sp, 48] 6673 ldp x25, x26, [sp, 64] 6674 ldp x29, x30, [sp], 80 6675 ret 6676.L907: 6677 add x0, x0, 1 6678 add x3, x2, x0, lsl 4 6679 ldrh w3, [x3, -16] 6680 cmp w3, w22 6681 bne .L902 6682.L904: 6683 mov x0, 1 6684 ldr x1, [x23, #:lo12:.LANCHOR55] 6685 lsl x0, x0, x24 6686 sub w0, w0, #1 6687 and w0, w0, w25 6688 and x0, x0, 65535 6689 add x1, x1, x19, lsl 4 6690 cbnz w21, .L905 6691 ldr x1, [x1, 8] 6692 ldr w0, [x1, x0, lsl 2] 6693 str w0, [x20] 6694.L906: 6695 ldr x0, [x23, #:lo12:.LANCHOR55] 6696 add x19, x0, x19, lsl 4 6697 ldr w0, [x19, 4] 6698 cmn w0, #1 6699 beq .L910 6700 add w0, w0, 1 6701 str w0, [x19, 4] 6702.L910: 6703 mov w0, 0 6704 b .L899 6705.L905: 6706 ldr x2, [x1, 8] 6707 ldr w3, [x20] 6708 str w3, [x2, x0, lsl 2] 6709 ldr w0, [x1, 4] 6710 orr w0, w0, -2147483648 6711 str w0, [x1, 4] 6712 adrp x0, .LANCHOR56 6713 strh w22, [x0, #:lo12:.LANCHOR56] 6714 b .L906 6715 .size log2phys, .-log2phys 6716 .section .text.FtlReUsePrevPpa,"ax",@progbits 6717 .align 2 6718 .global FtlReUsePrevPpa 6719 .type FtlReUsePrevPpa, %function 6720FtlReUsePrevPpa: 6721 stp x29, x30, [sp, -80]! 6722 add x29, sp, 0 6723 stp x21, x22, [sp, 32] 6724 adrp x22, .LANCHOR42 6725 stp x19, x20, [sp, 16] 6726 mov w21, w0 6727 str w1, [x29, 76] 6728 lsr w0, w1, 10 6729 str x23, [sp, 48] 6730 bl P2V_block_in_plane 6731 ldr x2, [x22, #:lo12:.LANCHOR42] 6732 and w3, w0, 65535 6733 ubfiz x20, x3, 1, 16 6734 ldrh w1, [x2, x20] 6735 cbnz w1, .L914 6736 adrp x0, .LANCHOR47 6737 ldr x19, [x0, #:lo12:.LANCHOR47] 6738 cbz x19, .L915 6739 adrp x2, .LANCHOR40 6740 mov x5, -6148914691236517206 6741 movk x5, 0xaaab, lsl 0 6742 adrp x23, .LANCHOR48 6743 ldr x2, [x2, #:lo12:.LANCHOR40] 6744 mov w6, 65535 6745 ldrh w4, [x23, #:lo12:.LANCHOR48] 6746 sub x19, x19, x2 6747 asr x19, x19, 1 6748 mul x19, x19, x5 6749 mov w5, 6 6750 and w19, w19, 65535 6751.L916: 6752 cmp w1, w4 6753 beq .L915 6754 cmp w19, w3 6755 bne .L917 6756 mov w1, w19 6757 add x0, x0, :lo12:.LANCHOR47 6758 bl List_remove_node 6759 ldrh w0, [x23, #:lo12:.LANCHOR48] 6760 cbnz w0, .L918 6761 adrp x1, .LANCHOR160 6762 adrp x0, .LC1 6763 mov w2, 1699 6764 add x1, x1, :lo12:.LANCHOR160 6765 add x0, x0, :lo12:.LC1 6766 bl printf 6767.L918: 6768 ldrh w0, [x23, #:lo12:.LANCHOR48] 6769 sub w0, w0, #1 6770 strh w0, [x23, #:lo12:.LANCHOR48] 6771 mov w0, w19 6772 bl INSERT_DATA_LIST 6773 ldr x1, [x22, #:lo12:.LANCHOR42] 6774 ldrh w0, [x1, x20] 6775 add w0, w0, 1 6776 strh w0, [x1, x20] 6777.L915: 6778 add x1, x29, 76 6779 mov w2, 1 6780 mov w0, w21 6781 bl log2phys 6782 ldp x19, x20, [sp, 16] 6783 ldp x21, x22, [sp, 32] 6784 ldr x23, [sp, 48] 6785 ldp x29, x30, [sp], 80 6786 ret 6787.L917: 6788 umull x19, w19, w5 6789 ldrh w19, [x2, x19] 6790 cmp w19, w6 6791 beq .L915 6792 add w1, w1, 1 6793 and w1, w1, 65535 6794 b .L916 6795.L914: 6796 add w1, w1, 1 6797 strh w1, [x2, x20] 6798 b .L915 6799 .size FtlReUsePrevPpa, .-FtlReUsePrevPpa 6800 .section .text.ftl_check_vpc,"ax",@progbits 6801 .align 2 6802 .global ftl_check_vpc 6803 .type ftl_check_vpc, %function 6804ftl_check_vpc: 6805 stp x29, x30, [sp, -112]! 6806 adrp x0, .LC94 6807 add x0, x0, :lo12:.LC94 6808 add x29, sp, 0 6809 stp x23, x24, [sp, 48] 6810 adrp x23, .LANCHOR61 6811 add x23, x23, :lo12:.LANCHOR61 6812 stp x21, x22, [sp, 32] 6813 mov w22, 0 6814 stp x19, x20, [sp, 16] 6815 stp x25, x26, [sp, 64] 6816 adrp x21, .LANCHOR161 6817 stp x27, x28, [sp, 80] 6818 add x1, x21, :lo12:.LANCHOR161 6819 adrp x20, check_vpc_table 6820 bl printf 6821 add x19, x20, :lo12:check_vpc_table 6822 mov w2, 8192 6823 mov w1, 0 6824 mov x0, x19 6825 bl ftl_memset 6826.L925: 6827 ldr w0, [x23] 6828 cmp w22, w0 6829 bcc .L927 6830 adrp x22, .LANCHOR5 6831 adrp x24, .LC95 6832 add x22, x22, :lo12:.LANCHOR5 6833 add x26, x20, :lo12:check_vpc_table 6834 add x24, x24, :lo12:.LC95 6835 mov w23, 0 6836 mov w19, 0 6837 adrp x25, .LANCHOR42 6838.L928: 6839 ldrh w0, [x22] 6840 cmp w0, w19 6841 bhi .L930 6842 adrp x0, .LANCHOR47 6843 ldr x19, [x0, #:lo12:.LANCHOR47] 6844 cbz x19, .L931 6845 adrp x0, .LANCHOR48 6846 adrp x25, .LC96 6847 add x20, x20, :lo12:check_vpc_table 6848 add x25, x25, :lo12:.LC96 6849 ldrh w26, [x0, #:lo12:.LANCHOR48] 6850 adrp x0, .LANCHOR40 6851 mov x24, x0 6852 mov w22, 0 6853 ldr x1, [x0, #:lo12:.LANCHOR40] 6854 adrp x27, .LANCHOR42 6855 mov w28, 6 6856 sub x19, x19, x1 6857 mov x1, -6148914691236517206 6858 asr x19, x19, 1 6859 movk x1, 0xaaab, lsl 0 6860 mul x19, x19, x1 6861 and w19, w19, 65535 6862.L932: 6863 cmp w22, w26 6864 bne .L934 6865.L931: 6866 cbz w23, .L924 6867 adrp x0, .LC1 6868 mov w2, 2343 6869 add x1, x21, :lo12:.LANCHOR161 6870 add x0, x0, :lo12:.LC1 6871 bl printf 6872.L924: 6873 ldp x19, x20, [sp, 16] 6874 ldp x21, x22, [sp, 32] 6875 ldp x23, x24, [sp, 48] 6876 ldp x25, x26, [sp, 64] 6877 ldp x27, x28, [sp, 80] 6878 ldp x29, x30, [sp], 112 6879 ret 6880.L927: 6881 mov w2, 0 6882 add x1, x29, 108 6883 mov w0, w22 6884 bl log2phys 6885 ldr w0, [x29, 108] 6886 cmn w0, #1 6887 beq .L926 6888 lsr w0, w0, 10 6889 bl P2V_block_in_plane 6890 and x0, x0, 65535 6891 ldrh w1, [x19, x0, lsl 1] 6892 add w1, w1, 1 6893 strh w1, [x19, x0, lsl 1] 6894.L926: 6895 add w22, w22, 1 6896 b .L925 6897.L930: 6898 ldr x0, [x25, #:lo12:.LANCHOR42] 6899 ubfiz x28, x19, 1, 16 6900 sxtw x27, w19 6901 ldrh w2, [x0, x28] 6902 ldrh w3, [x26, x27, lsl 1] 6903 cmp w2, w3 6904 beq .L929 6905 mov w1, w19 6906 mov x0, x24 6907 bl printf 6908 ldr x0, [x25, #:lo12:.LANCHOR42] 6909 mov w1, 65535 6910 ldrh w0, [x0, x28] 6911 cmp w0, w1 6912 beq .L929 6913 ldrh w1, [x26, x27, lsl 1] 6914 cmp w1, w0 6915 csinc w23, w23, wzr, ls 6916.L929: 6917 add w19, w19, 1 6918 and w19, w19, 65535 6919 b .L928 6920.L934: 6921 ldr x1, [x27, #:lo12:.LANCHOR42] 6922 ubfiz x0, x19, 1, 16 6923 ldrh w2, [x1, x0] 6924 cbz w2, .L933 6925 ldrh w3, [x20, w19, sxtw 1] 6926 mov w23, 1 6927 mov w1, w19 6928 mov x0, x25 6929 bl printf 6930.L933: 6931 ldr x0, [x24, #:lo12:.LANCHOR40] 6932 umull x19, w19, w28 6933 ldrh w19, [x0, x19] 6934 mov w0, 65535 6935 cmp w19, w0 6936 beq .L931 6937 add w22, w22, 1 6938 and w22, w22, 65535 6939 b .L932 6940 .size ftl_check_vpc, .-ftl_check_vpc 6941 .section .text.ftl_scan_all_data,"ax",@progbits 6942 .align 2 6943 .global ftl_scan_all_data 6944 .type ftl_scan_all_data, %function 6945ftl_scan_all_data: 6946 sub sp, sp, #96 6947 adrp x0, .LC97 6948 mov w1, 0 6949 add x0, x0, :lo12:.LC97 6950 stp x29, x30, [sp, 16] 6951 add x29, sp, 16 6952 stp x19, x20, [sp, 32] 6953 adrp x20, .LANCHOR148 6954 stp x21, x22, [sp, 48] 6955 mov w19, 0 6956 adrp x21, .LANCHOR61 6957 add x22, x20, :lo12:.LANCHOR148 6958 add x21, x21, :lo12:.LANCHOR61 6959 str x23, [sp, 64] 6960 bl printf 6961.L950: 6962 ldr w0, [x21] 6963 cmp w19, w0 6964 bcc .L956 6965 ldp x19, x20, [sp, 32] 6966 ldp x21, x22, [sp, 48] 6967 ldp x29, x30, [sp, 16] 6968 ldr x23, [sp, 64] 6969 add sp, sp, 96 6970 ret 6971.L956: 6972 mov w2, 0 6973 add x1, x29, 76 6974 mov w0, w19 6975 bl log2phys 6976 tst x19, 2047 6977 bne .L951 6978 ldr w2, [x29, 76] 6979 adrp x0, .LC98 6980 mov w1, w19 6981 add x0, x0, :lo12:.LC98 6982 bl printf 6983.L951: 6984 ldr w1, [x29, 76] 6985 cmn w1, #1 6986 beq .L953 6987 add x0, x20, :lo12:.LANCHOR148 6988 str wzr, [x20, #:lo12:.LANCHOR148] 6989 mov w2, 0 6990 str w1, [x0, 4] 6991 adrp x1, .LANCHOR115 6992 str w19, [x0, 24] 6993 ldr x1, [x1, #:lo12:.LANCHOR115] 6994 str x1, [x0, 8] 6995 adrp x1, .LANCHOR123 6996 ldr x23, [x1, #:lo12:.LANCHOR123] 6997 mov w1, 1 6998 str x23, [x0, 16] 6999 bl FlashReadPages 7000 ldr w0, [x20, #:lo12:.LANCHOR148] 7001 cmp w0, 256 7002 ccmn w0, #1, 4, ne 7003 beq .L954 7004 ldr w0, [x23, 8] 7005 cmp w19, w0 7006 beq .L953 7007.L954: 7008 ldp x1, x0, [x22, 8] 7009 ldr w2, [x1, 4] 7010 str w2, [sp] 7011 ldr w2, [x22, 4] 7012 ldp w3, w4, [x0] 7013 ldp w5, w6, [x0, 8] 7014 adrp x0, .LC99 7015 ldr w7, [x1] 7016 add x0, x0, :lo12:.LC99 7017 mov w1, w19 7018 bl printf 7019.L953: 7020 add w19, w19, 1 7021 b .L950 7022 .size ftl_scan_all_data, .-ftl_scan_all_data 7023 .section .text.FtlGcScanTempBlk,"ax",@progbits 7024 .align 2 7025 .global FtlGcScanTempBlk 7026 .type FtlGcScanTempBlk, %function 7027FtlGcScanTempBlk: 7028 stp x29, x30, [sp, -160]! 7029 add x29, sp, 0 7030 stp x21, x22, [sp, 32] 7031 adrp x22, .LANCHOR162 7032 stp x19, x20, [sp, 16] 7033 mov x19, x0 7034 stp x27, x28, [sp, 80] 7035 mov w0, 65535 7036 ldrh w20, [x22, #:lo12:.LANCHOR162] 7037 mov w27, w1 7038 stp x23, x24, [sp, 48] 7039 stp x25, x26, [sp, 64] 7040 cmp w20, w0 7041 beq .L982 7042 cbnz w20, .L959 7043.L960: 7044 bl FtlGcPageVarInit 7045 b .L961 7046.L982: 7047 mov w20, 0 7048.L959: 7049 adrp x0, .LANCHOR19 7050 ldrh w0, [x0, #:lo12:.LANCHOR19] 7051 cmp w0, w27 7052 beq .L960 7053.L961: 7054 adrp x26, .LANCHOR61 7055 add x26, x26, :lo12:.LANCHOR61 7056 mov w25, 0 7057.L962: 7058 ldrh w0, [x19] 7059 mov w23, 65535 7060 strb wzr, [x19, 8] 7061 cmp w0, w23 7062 beq .L963 7063.L979: 7064 adrp x1, .LANCHOR91 7065 adrp x24, .LANCHOR112 7066 add x4, x19, 16 7067 mov w21, 0 7068 ldr x5, [x1, #:lo12:.LANCHOR91] 7069 adrp x1, .LANCHOR23 7070 ldr x0, [x24, #:lo12:.LANCHOR112] 7071 ldrh w6, [x1, #:lo12:.LANCHOR23] 7072 adrp x1, .LANCHOR92 7073 ldr x7, [x1, #:lo12:.LANCHOR92] 7074 adrp x1, .LANCHOR24 7075 ldrh w8, [x1, #:lo12:.LANCHOR24] 7076 adrp x1, .LANCHOR3 7077 ldrh w1, [x1, #:lo12:.LANCHOR3] 7078 add x1, x1, 8 7079 add x1, x19, x1, lsl 1 7080.L964: 7081 cmp x1, x4 7082 bne .L966 7083 mov w2, 0 7084 mov w1, w21 7085 bl FlashReadPages 7086 mov x28, 0 7087 ubfiz x0, x21, 5, 16 7088 str x0, [x29, 96] 7089.L967: 7090 ldr x0, [x29, 96] 7091 cmp x0, x28 7092 bne .L977 7093 add w20, w20, 1 7094 add w25, w25, 1 7095 and w20, w20, 65535 7096 cmp w27, w25 7097 adrp x1, .LANCHOR19 7098 bls .L978 7099.L980: 7100 ldrh w0, [x1, #:lo12:.LANCHOR19] 7101 cmp w0, w20 7102 bhi .L979 7103.L963: 7104 strh w20, [x19, 2] 7105 mov w0, -1 7106 strb wzr, [x19, 6] 7107 mov w2, 0 7108 strh w0, [x22, #:lo12:.LANCHOR162] 7109 mov w1, w20 7110 mov x0, x19 7111 bl ftl_sb_update_avl_pages 7112 b .L981 7113.L966: 7114 ldrh w3, [x4] 7115 cmp w3, w23 7116 beq .L965 7117 ubfiz x2, x21, 5, 16 7118 orr w3, w20, w3, lsl 10 7119 add x2, x0, x2 7120 str w3, [x2, 4] 7121 mul w3, w21, w6 7122 asr w3, w3, 2 7123 add x3, x5, x3, sxtw 2 7124 str x3, [x2, 8] 7125 mul w3, w21, w8 7126 add w21, w21, 1 7127 and w21, w21, 65535 7128 asr w3, w3, 2 7129 add x3, x7, x3, sxtw 2 7130 str x3, [x2, 16] 7131.L965: 7132 add x4, x4, 2 7133 b .L964 7134.L977: 7135 ldr x1, [x24, #:lo12:.LANCHOR112] 7136 add x0, x1, x28 7137 ldr w1, [x1, x28] 7138 ldr w2, [x0, 4] 7139 str w2, [x29, 108] 7140 cbnz w1, .L968 7141 ldr x21, [x0, 16] 7142 ldrh w0, [x21] 7143 cmp w0, w23 7144 bne .L969 7145.L968: 7146 adrp x0, .LANCHOR42 7147 ldrh w1, [x19] 7148 mov w20, 0 7149 ldr x0, [x0, #:lo12:.LANCHOR42] 7150 strh wzr, [x0, x1, lsl 1] 7151 ldrh w0, [x19] 7152 bl INSERT_FREE_LIST 7153 mov w0, -1 7154 strh w0, [x19] 7155 bl FtlGcPageVarInit 7156 b .L962 7157.L969: 7158 ldr w0, [x21, 8] 7159 ldr w1, [x26] 7160 cmp w0, w1 7161 bhi .L968 7162 add x1, x29, 124 7163 mov w2, 0 7164 bl log2phys 7165 ldr w0, [x21, 12] 7166 ldr w1, [x29, 124] 7167 cmp w0, w1 7168 beq .L972 7169.L973: 7170 ldp w2, w0, [x21, 8] 7171 add x28, x28, 32 7172 ldr w1, [x29, 108] 7173 bl FtlGcUpdatePage 7174 b .L967 7175.L972: 7176 cmn w0, #1 7177 beq .L973 7178 str w0, [x29, 132] 7179 adrp x0, .LANCHOR119 7180 mov w2, 0 7181 mov w1, 1 7182 ldr x0, [x0, #:lo12:.LANCHOR119] 7183 str x0, [x29, 136] 7184 adrp x0, .LANCHOR124 7185 ldr x0, [x0, #:lo12:.LANCHOR124] 7186 str x0, [x29, 144] 7187 add x0, x29, 128 7188 bl FlashReadPages 7189 adrp x0, .LANCHOR12 7190 ldr x2, [x24, #:lo12:.LANCHOR112] 7191 ldr x5, [x29, 136] 7192 ldrh w1, [x0, #:lo12:.LANCHOR12] 7193 add x2, x2, x28 7194 mov x0, 0 7195 ubfiz x1, x1, 9, 16 7196.L974: 7197 cmp x0, x1 7198 beq .L973 7199 ldr x6, [x2, 8] 7200 ldr w7, [x6, x0] 7201 add x0, x0, 4 7202 add x6, x5, x0 7203 ldr w6, [x6, -4] 7204 cmp w7, w6 7205 beq .L974 7206 ldrh w1, [x19] 7207 adrp x0, .LC100 7208 ldr w2, [x29, 132] 7209 add x0, x0, :lo12:.LC100 7210 bl printf 7211 b .L968 7212.L978: 7213 ldrh w0, [x22, #:lo12:.LANCHOR162] 7214 cmp w0, w23 7215 beq .L980 7216 add w0, w0, w25 7217 strh w0, [x22, #:lo12:.LANCHOR162] 7218 ldrh w0, [x1, #:lo12:.LANCHOR19] 7219 cmp w0, w20 7220 bls .L980 7221.L981: 7222 ldp x19, x20, [sp, 16] 7223 mov w0, -1 7224 ldp x21, x22, [sp, 32] 7225 ldp x23, x24, [sp, 48] 7226 ldp x25, x26, [sp, 64] 7227 ldp x27, x28, [sp, 80] 7228 ldp x29, x30, [sp], 160 7229 ret 7230 .size FtlGcScanTempBlk, .-FtlGcScanTempBlk 7231 .section .text.FtlReadRefresh,"ax",@progbits 7232 .align 2 7233 .global FtlReadRefresh 7234 .type FtlReadRefresh, %function 7235FtlReadRefresh: 7236 adrp x1, .LANCHOR81 7237 add x0, x1, :lo12:.LANCHOR81 7238 ldr w2, [x0, 80] 7239 cbz w2, .L993 7240 adrp x1, .LANCHOR61 7241 ldr w3, [x0, 84] 7242 ldr w2, [x1, #:lo12:.LANCHOR61] 7243 cmp w3, w2 7244 bcs .L994 7245 stp x29, x30, [sp, -160]! 7246 add x29, sp, 0 7247 stp x19, x20, [sp, 16] 7248 mov x19, x0 7249 add x20, x1, :lo12:.LANCHOR61 7250 str x21, [sp, 32] 7251 mov w21, 2048 7252.L999: 7253 ldr w0, [x19, 84] 7254 ldr w1, [x20] 7255 cmp w0, w1 7256 bcs .L996 7257 add x1, x29, 60 7258 mov w2, 0 7259 bl log2phys 7260 ldr w0, [x19, 84] 7261 ldr w1, [x29, 60] 7262 add w0, w0, 1 7263 str w0, [x19, 84] 7264 cmn w1, #1 7265 beq .L997 7266 str w0, [x29, 88] 7267 adrp x0, .LANCHOR121 7268 str w1, [x29, 68] 7269 mov w2, 0 7270 ldr x0, [x0, #:lo12:.LANCHOR121] 7271 mov w1, 1 7272 str x0, [x29, 72] 7273 add x0, x29, 96 7274 str x0, [x29, 80] 7275 add x0, x29, 160 7276 str wzr, [x0, -96]! 7277 bl FlashReadPages 7278 ldr w0, [x29, 64] 7279 cmp w0, 256 7280 bne .L996 7281 ldr w0, [x29, 60] 7282 lsr w0, w0, 10 7283 bl P2V_block_in_plane 7284 bl FtlGcRefreshBlock 7285.L996: 7286 ldp x19, x20, [sp, 16] 7287 mov w0, -1 7288 ldr x21, [sp, 32] 7289 ldp x29, x30, [sp], 160 7290 ret 7291.L997: 7292 subs w21, w21, #1 7293 bne .L999 7294 b .L996 7295.L994: 7296 adrp x1, .LANCHOR62 7297 str wzr, [x0, 84] 7298 ldr w1, [x1, #:lo12:.LANCHOR62] 7299 stp w1, wzr, [x0, 76] 7300.L1003: 7301 mov w0, 0 7302 ret 7303.L993: 7304 ldr w4, [x0, 76] 7305 adrp x0, .LANCHOR62 7306 ldr w2, [x0, #:lo12:.LANCHOR62] 7307 add w0, w2, 1048576 7308 cmp w4, w0 7309 bhi .L1002 7310 adrp x0, .LANCHOR76 7311 ldr w0, [x0, #:lo12:.LANCHOR76] 7312 lsr w3, w0, 10 7313 mov w0, 33554432 7314 asr w0, w0, w3 7315 add w0, w0, w4 7316 cmp w2, w0 7317 bhi .L1002 7318 adrp x0, .LANCHOR39+28 7319 ldrb w0, [x0, #:lo12:.LANCHOR39+28] 7320 cbnz w0, .L1003 7321.L1002: 7322 add x0, x1, :lo12:.LANCHOR81 7323 mov w1, 1 7324 str wzr, [x0, 84] 7325 stp w2, w1, [x0, 76] 7326 b .L1003 7327 .size FtlReadRefresh, .-FtlReadRefresh 7328 .section .text.FtlMapBlkWriteDump_data,"ax",@progbits 7329 .align 2 7330 .global FtlMapBlkWriteDump_data 7331 .type FtlMapBlkWriteDump_data, %function 7332FtlMapBlkWriteDump_data: 7333 ldr w1, [x0, 56] 7334 cbz w1, .L1009 7335 stp x29, x30, [sp, -48]! 7336 adrp x1, .LANCHOR148 7337 adrp x2, .LANCHOR123 7338 add x29, sp, 0 7339 stp x19, x20, [sp, 16] 7340 mov x19, x0 7341 ldrh w20, [x0, 6] 7342 adrp x0, .LANCHOR116 7343 ldr x2, [x2, #:lo12:.LANCHOR123] 7344 ldr x3, [x0, #:lo12:.LANCHOR116] 7345 add x0, x1, :lo12:.LANCHOR148 7346 sub w20, w20, #1 7347 ldr x4, [x19, 40] 7348 and w20, w20, 65535 7349 str x21, [sp, 32] 7350 stp x3, x2, [x0, 8] 7351 ubfiz x2, x20, 2, 16 7352 str wzr, [x19, 56] 7353 mov x21, x1 7354 ldr w2, [x4, x2] 7355 str w2, [x0, 4] 7356 cbz w2, .L1011 7357 mov w2, 1 7358 mov w1, w2 7359 bl FlashReadPages 7360.L1012: 7361 add x1, x21, :lo12:.LANCHOR148 7362 mov x0, x19 7363 ldr x21, [sp, 32] 7364 ldr x2, [x1, 8] 7365 mov w1, w20 7366 ldp x19, x20, [sp, 16] 7367 ldp x29, x30, [sp], 48 7368 b FtlMapWritePage 7369.L1011: 7370 adrp x0, .LANCHOR23 7371 mov w1, 255 7372 ldrh w2, [x0, #:lo12:.LANCHOR23] 7373 mov x0, x3 7374 bl ftl_memset 7375 b .L1012 7376.L1009: 7377 ret 7378 .size FtlMapBlkWriteDump_data, .-FtlMapBlkWriteDump_data 7379 .section .text.FlashTestBlk,"ax",@progbits 7380 .align 2 7381 .global FlashTestBlk 7382 .type FlashTestBlk, %function 7383FlashTestBlk: 7384 stp x29, x30, [sp, -128]! 7385 add x29, sp, 0 7386 stp x19, x20, [sp, 16] 7387 and w19, w0, 65535 7388 cmp w19, 11 7389 bls .L1018 7390 adrp x20, .LANCHOR121 7391 mov w2, 32 7392 mov w1, 165 7393 lsl w19, w19, 10 7394 ldr x0, [x20, #:lo12:.LANCHOR121] 7395 str x0, [x29, 40] 7396 add x0, x29, 64 7397 str x0, [x29, 48] 7398 bl ftl_memset 7399 ldr x0, [x20, #:lo12:.LANCHOR121] 7400 mov w2, 8 7401 mov w1, 90 7402 bl ftl_memset 7403 str w19, [x29, 36] 7404 mov w2, 1 7405 add x0, x29, 32 7406 mov w1, w2 7407 bl FlashEraseBlocks 7408 mov w3, 1 7409 add x0, x29, 32 7410 mov w2, w3 7411 mov w1, w3 7412 bl FlashProgPages 7413 ldr w0, [x29, 32] 7414 mov w2, 1 7415 mov w1, 0 7416 cmp w0, 0 7417 add x0, x29, 32 7418 csetm w19, ne 7419 bl FlashEraseBlocks 7420.L1016: 7421 mov w0, w19 7422 ldp x19, x20, [sp, 16] 7423 ldp x29, x30, [sp], 128 7424 ret 7425.L1018: 7426 mov w19, 0 7427 b .L1016 7428 .size FlashTestBlk, .-FlashTestBlk 7429 .section .text.FtlBbmTblFlush,"ax",@progbits 7430 .align 2 7431 .global FtlBbmTblFlush 7432 .type FtlBbmTblFlush, %function 7433FtlBbmTblFlush: 7434 stp x29, x30, [sp, -96]! 7435 add x29, sp, 0 7436 stp x23, x24, [sp, 48] 7437 adrp x23, .LANCHOR123 7438 stp x19, x20, [sp, 16] 7439 adrp x20, .LANCHOR148 7440 stp x21, x22, [sp, 32] 7441 add x19, x20, :lo12:.LANCHOR148 7442 adrp x22, .LANCHOR115 7443 ldr x1, [x23, #:lo12:.LANCHOR123] 7444 stp x25, x26, [sp, 64] 7445 adrp x21, .LANCHOR37 7446 str x27, [sp, 80] 7447 add x25, x21, :lo12:.LANCHOR37 7448 ldr x0, [x22, #:lo12:.LANCHOR115] 7449 adrp x26, .LANCHOR10 7450 stp x0, x1, [x19, 8] 7451 adrp x1, .LANCHOR23 7452 adrp x27, .LANCHOR137 7453 add x25, x25, 32 7454 ldrh w2, [x1, #:lo12:.LANCHOR23] 7455 mov w24, 0 7456 add x26, x26, :lo12:.LANCHOR10 7457 add x27, x27, :lo12:.LANCHOR137 7458 mov w1, 0 7459 bl ftl_memset 7460.L1021: 7461 ldrh w0, [x26] 7462 cmp w24, w0 7463 blt .L1022 7464 add x20, x20, :lo12:.LANCHOR148 7465 add x19, x21, :lo12:.LANCHOR37 7466 mov w2, 16 7467 mov w1, 255 7468 adrp x24, .LC101 7469 adrp x26, .LANCHOR20 7470 ldr x27, [x20, 16] 7471 add x24, x24, :lo12:.LC101 7472 add x26, x26, :lo12:.LANCHOR20 7473 mov w25, 0 7474 mov x0, x27 7475 bl ftl_memset 7476 mov w0, -3887 7477 strh w0, [x27] 7478 ldr w0, [x19, 8] 7479 str w0, [x27, 4] 7480 ldrh w0, [x21, #:lo12:.LANCHOR37] 7481 mov w21, 0 7482 strh w0, [x27, 2] 7483 ldrh w0, [x19, 4] 7484 strh w0, [x27, 8] 7485 ldrh w0, [x19, 6] 7486 strh w0, [x27, 10] 7487 adrp x0, .LANCHOR2 7488 ldr w0, [x0, #:lo12:.LANCHOR2] 7489 strh w0, [x27, 12] 7490.L1023: 7491 ldrh w1, [x19] 7492 ldrh w4, [x27, 10] 7493 ldrh w2, [x19, 2] 7494 ldrh w3, [x19, 4] 7495 ldr x0, [x22, #:lo12:.LANCHOR115] 7496 str x0, [x20, 8] 7497 ldr x0, [x23, #:lo12:.LANCHOR123] 7498 str x0, [x20, 16] 7499 orr w0, w2, w1, lsl 10 7500 str wzr, [x20] 7501 str w0, [x20, 4] 7502 mov x0, x24 7503 bl printf 7504 ldrh w0, [x26] 7505 ldrh w1, [x19, 2] 7506 sub w0, w0, #1 7507 cmp w1, w0 7508 blt .L1024 7509 ldr w0, [x19, 8] 7510 mov w2, 1 7511 ldrh w1, [x19, 4] 7512 add w0, w0, 1 7513 str w0, [x19, 8] 7514 str w0, [x27, 4] 7515 ldrh w0, [x19] 7516 strh w0, [x27, 8] 7517 strh w0, [x19, 4] 7518 adrp x0, .LANCHOR106 7519 strh w1, [x19] 7520 lsl w1, w1, 10 7521 ldr x0, [x0, #:lo12:.LANCHOR106] 7522 str w1, [x20, 4] 7523 strh wzr, [x19, 2] 7524 str w1, [x0, 4] 7525 mov w1, w2 7526 bl FlashEraseBlocks 7527.L1024: 7528 mov w3, 1 7529 mov x0, x20 7530 mov w2, w3 7531 mov w1, w3 7532 bl FlashProgPages 7533 ldrh w0, [x19, 2] 7534 add w0, w0, 1 7535 strh w0, [x19, 2] 7536 ldr w0, [x20] 7537 cmn w0, #1 7538 bne .L1025 7539 ldr w1, [x20, 4] 7540 add w21, w21, 1 7541 adrp x0, .LC102 7542 and w21, w21, 65535 7543 add x0, x0, :lo12:.LC102 7544 bl printf 7545 cmp w21, 3 7546 bls .L1023 7547 ldr w1, [x20, 4] 7548 adrp x0, .LC103 7549 mov w2, w21 7550 add x0, x0, :lo12:.LC103 7551 bl printf 7552.L1027: 7553 b .L1027 7554.L1022: 7555 ldrh w2, [x27] 7556 ldr x1, [x25], 8 7557 ldr x0, [x19, 8] 7558 mul w3, w24, w2 7559 lsl w2, w2, 2 7560 add w24, w24, 1 7561 add x0, x0, x3, sxtw 2 7562 bl ftl_memcpy 7563 b .L1021 7564.L1028: 7565 mov w25, 1 7566 b .L1023 7567.L1025: 7568 cbz w25, .L1028 7569 mov w0, 0 7570 ldr x27, [sp, 80] 7571 ldp x19, x20, [sp, 16] 7572 ldp x21, x22, [sp, 32] 7573 ldp x23, x24, [sp, 48] 7574 ldp x25, x26, [sp, 64] 7575 ldp x29, x30, [sp], 96 7576 ret 7577 .size FtlBbmTblFlush, .-FtlBbmTblFlush 7578 .section .text.allocate_data_superblock,"ax",@progbits 7579 .align 2 7580 .global allocate_data_superblock 7581 .type allocate_data_superblock, %function 7582allocate_data_superblock: 7583 stp x29, x30, [sp, -112]! 7584 add x29, sp, 0 7585 stp x27, x28, [sp, 80] 7586 adrp x28, .LANCHOR48 7587 stp x23, x24, [sp, 48] 7588 add x24, x28, :lo12:.LANCHOR48 7589 stp x19, x20, [sp, 16] 7590 adrp x27, .LANCHOR45 7591 mov x19, x0 7592 stp x21, x22, [sp, 32] 7593 add x0, x27, :lo12:.LANCHOR45 7594 stp x25, x26, [sp, 64] 7595 str x0, [x29, 104] 7596.L1031: 7597 ldr x1, [x29, 104] 7598 adrp x23, .LANCHOR5 7599 ldrh w0, [x28, #:lo12:.LANCHOR48] 7600 ldrh w1, [x1] 7601 add w0, w0, w1 7602 ldrh w1, [x23, #:lo12:.LANCHOR5] 7603 cmp w0, w1 7604 ble .L1032 7605 adrp x1, .LANCHOR163 7606 adrp x0, .LC1 7607 mov w2, 2615 7608 add x1, x1, :lo12:.LANCHOR163 7609 add x0, x0, :lo12:.LC1 7610 bl printf 7611.L1032: 7612 adrp x0, .LANCHOR53 7613 add x0, x0, :lo12:.LANCHOR53 7614 cmp x19, x0 7615 bne .L1058 7616 adrp x1, .LANCHOR87 7617 ldrh w0, [x24] 7618 ldr w1, [x1, #:lo12:.LANCHOR87] 7619 mul w1, w0, w1 7620 lsr w0, w0, 1 7621 add w0, w0, 1 7622 add w1, w0, w1, lsr 2 7623 ands w1, w1, 65535 7624 beq .L1033 7625 sub w1, w1, #1 7626 and w1, w1, 65535 7627.L1033: 7628 adrp x0, .LANCHOR47 7629 add x0, x0, :lo12:.LANCHOR47 7630 bl List_pop_index_node 7631 and w22, w0, 65535 7632 ldrh w0, [x24] 7633 cbnz w0, .L1034 7634 adrp x1, .LANCHOR163 7635 adrp x0, .LC1 7636 mov w2, 2624 7637 add x1, x1, :lo12:.LANCHOR163 7638 add x0, x0, :lo12:.LC1 7639 bl printf 7640.L1034: 7641 ldrh w0, [x24] 7642 sub w0, w0, #1 7643 strh w0, [x24] 7644 ldrh w0, [x23, #:lo12:.LANCHOR5] 7645 cmp w0, w22 7646 bls .L1031 7647 adrp x25, .LANCHOR42 7648 ubfiz x20, x22, 1, 16 7649 ldr x0, [x25, #:lo12:.LANCHOR42] 7650 ldrh w21, [x0, x20] 7651 cbnz w21, .L1031 7652 strh w22, [x19] 7653 mov x0, x19 7654 bl make_superblock 7655 ldrb w0, [x19, 7] 7656 cbnz w0, .L1036 7657 ldr x0, [x25, #:lo12:.LANCHOR42] 7658 mov w1, -1 7659 strh w1, [x0, x20] 7660 mov w0, w22 7661 bl INSERT_DATA_LIST 7662 ldrh w1, [x27, #:lo12:.LANCHOR45] 7663 ldrh w0, [x24] 7664 add w0, w0, w1 7665 ldrh w1, [x23, #:lo12:.LANCHOR5] 7666 cmp w0, w1 7667 ble .L1031 7668 mov w2, 2638 7669 adrp x1, .LANCHOR163 7670 adrp x0, .LC1 7671 add x1, x1, :lo12:.LANCHOR163 7672 add x0, x0, :lo12:.LC1 7673 bl printf 7674 b .L1031 7675.L1058: 7676 mov w1, 0 7677 b .L1033 7678.L1036: 7679 ldrh w1, [x27, #:lo12:.LANCHOR45] 7680 ldrh w0, [x24] 7681 add w0, w0, w1 7682 ldrh w1, [x23, #:lo12:.LANCHOR5] 7683 cmp w0, w1 7684 ble .L1038 7685 adrp x1, .LANCHOR163 7686 adrp x0, .LC1 7687 mov w2, 2641 7688 add x1, x1, :lo12:.LANCHOR163 7689 add x0, x0, :lo12:.LC1 7690 bl printf 7691.L1038: 7692 adrp x0, .LANCHOR3 7693 adrp x25, .LANCHOR106 7694 add x26, x19, 16 7695 mov w6, 65535 7696 ldrh w0, [x0, #:lo12:.LANCHOR3] 7697 mov x4, x26 7698 ldr x3, [x25, #:lo12:.LANCHOR106] 7699 ubfiz x0, x0, 5, 16 7700 add x1, x3, 8 7701 add x0, x0, 8 7702 add x0, x3, x0 7703.L1039: 7704 cmp x0, x1 7705 bne .L1041 7706 cbnz w21, .L1042 7707 adrp x1, .LANCHOR163 7708 adrp x0, .LC1 7709 mov w2, 2652 7710 add x1, x1, :lo12:.LANCHOR163 7711 add x0, x0, :lo12:.LC1 7712 bl printf 7713.L1042: 7714 adrp x0, .LANCHOR80 7715 ldrh w0, [x0, #:lo12:.LANCHOR80] 7716 cmp w0, w22 7717 bne .L1043 7718 adrp x1, .LANCHOR163 7719 adrp x0, .LC1 7720 mov w2, 2654 7721 add x1, x1, :lo12:.LANCHOR163 7722 add x0, x0, :lo12:.LC1 7723 bl printf 7724.L1043: 7725 ldrb w0, [x19, 8] 7726 adrp x6, .LANCHOR43 7727 adrp x7, .LANCHOR14 7728 adrp x5, .LANCHOR72 7729 adrp x4, .LANCHOR73 7730 ldr x1, [x6, #:lo12:.LANCHOR43] 7731 cbnz w0, .L1044 7732 ldrh w0, [x1, x20] 7733 cbz w0, .L1045 7734 ldrh w2, [x7, #:lo12:.LANCHOR14] 7735 add w0, w0, w2 7736.L1069: 7737 strh w0, [x1, x20] 7738 mov w1, 0 7739 ldr w0, [x5, #:lo12:.LANCHOR72] 7740 add w0, w0, 1 7741 str w0, [x5, #:lo12:.LANCHOR72] 7742 mov w0, w22 7743 bl ftl_set_blk_mode 7744.L1047: 7745 ldr x0, [x6, #:lo12:.LANCHOR43] 7746 ldrh w1, [x0, x20] 7747 adrp x0, .LANCHOR76 7748 ldr w2, [x0, #:lo12:.LANCHOR76] 7749 cmp w1, w2 7750 bls .L1048 7751 str w1, [x0, #:lo12:.LANCHOR76] 7752.L1048: 7753 ldr w2, [x5, #:lo12:.LANCHOR72] 7754 ldr w1, [x4, #:lo12:.LANCHOR73] 7755 ldrh w0, [x7, #:lo12:.LANCHOR14] 7756 madd w0, w0, w2, w1 7757 ldrh w1, [x23, #:lo12:.LANCHOR5] 7758 udiv w0, w0, w1 7759 adrp x1, .LANCHOR74 7760 str w0, [x1, #:lo12:.LANCHOR74] 7761 adrp x0, .LANCHOR127 7762 ldr x1, [x0, #:lo12:.LANCHOR127] 7763 ldr w0, [x1, 16] 7764 add w0, w0, 1 7765 str w0, [x1, 16] 7766 ldr x0, [x25, #:lo12:.LANCHOR106] 7767 ubfiz x1, x21, 5, 16 7768 add x1, x1, 4 7769 add x2, x0, 4 7770 add x1, x0, x1 7771.L1049: 7772 cmp x1, x2 7773 bne .L1050 7774 ldrb w1, [x19, 8] 7775 mov w2, w21 7776 mov x23, 0 7777 bl FlashEraseBlocks 7778 mov w1, 0 7779.L1051: 7780 cmp w21, w23, uxth 7781 bhi .L1053 7782 cbz w1, .L1054 7783 mov w0, w22 7784 bl update_multiplier_value 7785 bl FtlBbmTblFlush 7786.L1054: 7787 ldrb w0, [x19, 7] 7788 cbnz w0, .L1055 7789 adrp x0, .LANCHOR42 7790 mov w1, -1 7791 ldr x0, [x0, #:lo12:.LANCHOR42] 7792 strh w1, [x0, x20] 7793 b .L1031 7794.L1041: 7795 ldrh w2, [x4] 7796 stp xzr, xzr, [x1] 7797 cmp w2, w6 7798 beq .L1040 7799 ubfiz x5, x21, 5, 16 7800 add w21, w21, 1 7801 add x5, x3, x5 7802 and w21, w21, 65535 7803 lsl w2, w2, 10 7804 str w2, [x5, 4] 7805.L1040: 7806 add x1, x1, 32 7807 add x4, x4, 2 7808 b .L1039 7809.L1045: 7810 mov w0, 2 7811 b .L1069 7812.L1044: 7813 ldrh w0, [x1, x20] 7814 add w0, w0, 1 7815 strh w0, [x1, x20] 7816 ldr w0, [x4, #:lo12:.LANCHOR73] 7817 add w0, w0, 1 7818 str w0, [x4, #:lo12:.LANCHOR73] 7819 mov w0, w22 7820 bl ftl_set_blk_mode.part.6 7821 b .L1047 7822.L1050: 7823 ldr w3, [x2] 7824 and w3, w3, -1024 7825 str w3, [x2], 32 7826 b .L1049 7827.L1053: 7828 ldr x2, [x25, #:lo12:.LANCHOR106] 7829 lsl x0, x23, 5 7830 add x3, x2, x0 7831 ldr w2, [x2, x0] 7832 cmn w2, #1 7833 bne .L1052 7834 add w1, w1, 1 7835 ldr w0, [x3, 4] 7836 stp w2, w1, [x29, 96] 7837 lsr w0, w0, 10 7838 bl FtlBbmMapBadBlock 7839 ldp w2, w1, [x29, 96] 7840 strh w2, [x26] 7841 ldrb w0, [x19, 7] 7842 sub w0, w0, #1 7843 strb w0, [x19, 7] 7844.L1052: 7845 add x23, x23, 1 7846 add x26, x26, 2 7847 b .L1051 7848.L1055: 7849 adrp x1, .LANCHOR19 7850 adrp x2, .LANCHOR70 7851 strh wzr, [x19, 2] 7852 ldrh w1, [x1, #:lo12:.LANCHOR19] 7853 strh w22, [x19] 7854 strb wzr, [x19, 6] 7855 mul w0, w0, w1 7856 ldr w1, [x2, #:lo12:.LANCHOR70] 7857 str w1, [x19, 12] 7858 add w1, w1, 1 7859 str w1, [x2, #:lo12:.LANCHOR70] 7860 adrp x1, .LANCHOR42 7861 and w0, w0, 65535 7862 strh w0, [x19, 4] 7863 ldr x1, [x1, #:lo12:.LANCHOR42] 7864 strh w0, [x1, x20] 7865 ldrh w0, [x19, 4] 7866 cbz w0, .L1056 7867 ldrb w0, [x19, 7] 7868 cbnz w0, .L1057 7869.L1056: 7870 adrp x1, .LANCHOR163 7871 adrp x0, .LC1 7872 mov w2, 2707 7873 add x1, x1, :lo12:.LANCHOR163 7874 add x0, x0, :lo12:.LC1 7875 bl printf 7876.L1057: 7877 ldp x19, x20, [sp, 16] 7878 mov w0, 0 7879 ldp x21, x22, [sp, 32] 7880 ldp x23, x24, [sp, 48] 7881 ldp x25, x26, [sp, 64] 7882 ldp x27, x28, [sp, 80] 7883 ldp x29, x30, [sp], 112 7884 ret 7885 .size allocate_data_superblock, .-allocate_data_superblock 7886 .section .text.FtlGcFreeBadSuperBlk,"ax",@progbits 7887 .align 2 7888 .global FtlGcFreeBadSuperBlk 7889 .type FtlGcFreeBadSuperBlk, %function 7890FtlGcFreeBadSuperBlk: 7891 stp x29, x30, [sp, -96]! 7892 add x29, sp, 0 7893 stp x21, x22, [sp, 32] 7894 adrp x21, .LANCHOR101 7895 stp x25, x26, [sp, 64] 7896 and w25, w0, 65535 7897 ldrh w0, [x21, #:lo12:.LANCHOR101] 7898 stp x19, x20, [sp, 16] 7899 stp x23, x24, [sp, 48] 7900 str x27, [sp, 80] 7901 cbz w0, .L1071 7902 adrp x23, .LANCHOR102 7903 add x24, x23, :lo12:.LANCHOR102 7904 mov w19, 0 7905.L1072: 7906 adrp x0, .LANCHOR3 7907 ldrh w0, [x0, #:lo12:.LANCHOR3] 7908 cmp w0, w19 7909 bhi .L1078 7910 bl FtlGcReFreshBadBlk 7911.L1071: 7912 mov w0, 0 7913 ldr x27, [sp, 80] 7914 ldp x19, x20, [sp, 16] 7915 ldp x21, x22, [sp, 32] 7916 ldp x23, x24, [sp, 48] 7917 ldp x25, x26, [sp, 64] 7918 ldp x29, x30, [sp], 96 7919 ret 7920.L1078: 7921 adrp x0, .LANCHOR13 7922 add x0, x0, :lo12:.LANCHOR13 7923 mov w1, w25 7924 add x22, x21, :lo12:.LANCHOR101 7925 mov w20, 0 7926 ldrb w0, [x0, w19, sxtw] 7927 bl V2P_block 7928 and w26, w0, 65535 7929.L1073: 7930 ldrh w0, [x22] 7931 cmp w0, w20 7932 bhi .L1077 7933 add w19, w19, 1 7934 and w19, w19, 65535 7935 b .L1072 7936.L1077: 7937 add x0, x23, :lo12:.LANCHOR102 7938 add w27, w20, 1 7939 ldrh w0, [x0, w20, sxtw 1] 7940 cmp w0, w26 7941 bne .L1074 7942 mov w1, w26 7943 adrp x0, .LC104 7944 add x0, x0, :lo12:.LC104 7945 bl printf 7946 mov w0, w26 7947 bl FtlBbmMapBadBlock 7948 bl FtlBbmTblFlush 7949 ldrh w1, [x22] 7950 sxtw x3, w27 7951 and x4, x20, 65535 7952 mov x0, 0 7953.L1075: 7954 add w2, w20, w0 7955 cmp w1, w2, uxth 7956 bhi .L1076 7957 sub w1, w1, #1 7958 strh w1, [x22] 7959.L1074: 7960 and w20, w27, 65535 7961 b .L1073 7962.L1076: 7963 add x2, x3, x0 7964 ldrh w5, [x24, x2, lsl 1] 7965 add x2, x4, x0 7966 add x0, x0, 1 7967 strh w5, [x24, x2, lsl 1] 7968 b .L1075 7969 .size FtlGcFreeBadSuperBlk, .-FtlGcFreeBadSuperBlk 7970 .section .text.update_vpc_list,"ax",@progbits 7971 .align 2 7972 .global update_vpc_list 7973 .type update_vpc_list, %function 7974update_vpc_list: 7975 stp x29, x30, [sp, -32]! 7976 adrp x1, .LANCHOR42 7977 add x29, sp, 0 7978 stp x19, x20, [sp, 16] 7979 and w19, w0, 65535 7980 ldr x1, [x1, #:lo12:.LANCHOR42] 7981 ubfiz x0, x19, 1, 16 7982 ldrh w0, [x1, x0] 7983 cbnz w0, .L1084 7984 adrp x0, .LANCHOR80 7985 ldrh w1, [x0, #:lo12:.LANCHOR80] 7986 cmp w1, w19 7987 bne .L1085 7988 mov w1, -1 7989 strh w1, [x0, #:lo12:.LANCHOR80] 7990.L1086: 7991 adrp x20, .LANCHOR45 7992 mov w1, w19 7993 adrp x0, .LANCHOR41 7994 add x0, x0, :lo12:.LANCHOR41 7995 bl List_remove_node 7996 ldrh w0, [x20, #:lo12:.LANCHOR45] 7997 cbnz w0, .L1088 7998 adrp x1, .LANCHOR164 7999 adrp x0, .LC1 8000 mov w2, 2777 8001 add x1, x1, :lo12:.LANCHOR164 8002 add x0, x0, :lo12:.LC1 8003 bl printf 8004.L1088: 8005 ldrh w0, [x20, #:lo12:.LANCHOR45] 8006 sub w0, w0, #1 8007 strh w0, [x20, #:lo12:.LANCHOR45] 8008 mov w0, w19 8009 bl free_data_superblock 8010 mov w0, w19 8011 bl FtlGcFreeBadSuperBlk 8012 adrp x0, .LANCHOR48 8013 ldrh w1, [x20, #:lo12:.LANCHOR45] 8014 ldrh w0, [x0, #:lo12:.LANCHOR48] 8015 add w0, w0, w1 8016 adrp x1, .LANCHOR5 8017 ldrh w1, [x1, #:lo12:.LANCHOR5] 8018 cmp w0, w1 8019 ble .L1092 8020 adrp x1, .LANCHOR164 8021 adrp x0, .LC1 8022 mov w2, 2780 8023 add x1, x1, :lo12:.LANCHOR164 8024 add x0, x0, :lo12:.LC1 8025 bl printf 8026.L1092: 8027 mov w0, 1 8028 b .L1083 8029.L1085: 8030 adrp x0, .LANCHOR51 8031 ldrh w0, [x0, #:lo12:.LANCHOR51] 8032 cmp w0, w19 8033 beq .L1091 8034 adrp x0, .LANCHOR52 8035 ldrh w0, [x0, #:lo12:.LANCHOR52] 8036 cmp w0, w19 8037 beq .L1091 8038 adrp x0, .LANCHOR53 8039 ldrh w0, [x0, #:lo12:.LANCHOR53] 8040 cmp w0, w19 8041 bne .L1086 8042.L1091: 8043 mov w0, 0 8044.L1083: 8045 ldp x19, x20, [sp, 16] 8046 ldp x29, x30, [sp], 32 8047 ret 8048.L1084: 8049 mov w0, w19 8050 bl List_update_data_list 8051 b .L1091 8052 .size update_vpc_list, .-update_vpc_list 8053 .section .text.decrement_vpc_count,"ax",@progbits 8054 .align 2 8055 .global decrement_vpc_count 8056 .type decrement_vpc_count, %function 8057decrement_vpc_count: 8058 stp x29, x30, [sp, -48]! 8059 add x29, sp, 0 8060 stp x19, x20, [sp, 16] 8061 and w19, w0, 65535 8062 str x21, [sp, 32] 8063 mov w0, 65535 8064 cmp w19, w0 8065 beq .L1095 8066 adrp x21, .LANCHOR42 8067 ubfiz x20, x19, 1, 16 8068 ldr x1, [x21, #:lo12:.LANCHOR42] 8069 ldrh w0, [x1, x20] 8070 cbnz w0, .L1096 8071 mov w2, 0 8072 mov w1, w19 8073 adrp x0, .LC105 8074 add x0, x0, :lo12:.LC105 8075 bl printf 8076 ldr x0, [x21, #:lo12:.LANCHOR42] 8077 ldrh w0, [x0, x20] 8078 cbz w0, .L1097 8079.L1102: 8080 mov w20, 0 8081.L1094: 8082 mov w0, w20 8083 ldr x21, [sp, 32] 8084 ldp x19, x20, [sp, 16] 8085 ldp x29, x30, [sp], 48 8086 ret 8087.L1097: 8088 mov w2, 2795 8089 adrp x1, .LANCHOR165 8090 adrp x0, .LC1 8091 add x1, x1, :lo12:.LANCHOR165 8092 add x0, x0, :lo12:.LC1 8093 bl printf 8094 b .L1102 8095.L1096: 8096 sub w0, w0, #1 8097 strh w0, [x1, x20] 8098.L1095: 8099 adrp x21, .LANCHOR142 8100 mov w1, 65535 8101 ldrh w0, [x21, #:lo12:.LANCHOR142] 8102 cmp w0, w1 8103 bne .L1099 8104 strh w19, [x21, #:lo12:.LANCHOR142] 8105 b .L1102 8106.L1099: 8107 cmp w19, w0 8108 beq .L1102 8109 bl update_vpc_list 8110 cmp w0, 0 8111 adrp x1, .LANCHOR40 8112 adrp x0, .LANCHOR41 8113 strh w19, [x21, #:lo12:.LANCHOR142] 8114 cset w20, ne 8115 ldr x1, [x1, #:lo12:.LANCHOR40] 8116 ldr x0, [x0, #:lo12:.LANCHOR41] 8117 sub x0, x0, x1 8118 mov x1, -6148914691236517206 8119 asr x0, x0, 1 8120 movk x1, 0xaaab, lsl 0 8121 mul x0, x0, x1 8122 adrp x1, .LANCHOR42 8123 ldr x1, [x1, #:lo12:.LANCHOR42] 8124 and x2, x0, 65535 8125 ldrh w1, [x1, x2, lsl 1] 8126 cbnz w1, .L1094 8127 cmp w19, w0, uxth 8128 beq .L1094 8129 mov w2, 2811 8130 adrp x1, .LANCHOR165 8131 adrp x0, .LC1 8132 add x1, x1, :lo12:.LANCHOR165 8133 add x0, x0, :lo12:.LC1 8134 bl printf 8135 b .L1094 8136 .size decrement_vpc_count, .-decrement_vpc_count 8137 .section .text.FtlRecoverySuperblock,"ax",@progbits 8138 .align 2 8139 .global FtlRecoverySuperblock 8140 .type FtlRecoverySuperblock, %function 8141FtlRecoverySuperblock: 8142 stp x29, x30, [sp, -192]! 8143 mov w1, 65535 8144 add x29, sp, 0 8145 stp x19, x20, [sp, 16] 8146 mov x19, x0 8147 stp x21, x22, [sp, 32] 8148 ldrh w0, [x0] 8149 stp x23, x24, [sp, 48] 8150 stp x25, x26, [sp, 64] 8151 cmp w0, w1 8152 stp x27, x28, [sp, 80] 8153 beq .L1226 8154 ldrb w0, [x19, 6] 8155 str w0, [x29, 164] 8156 adrp x0, .LANCHOR19 8157 ldrh w26, [x19, 2] 8158 str x0, [x29, 128] 8159 ldrh w2, [x0, #:lo12:.LANCHOR19] 8160 cmp w2, w26 8161 bne .L1106 8162 strh wzr, [x19, 4] 8163.L1232: 8164 strb wzr, [x19, 6] 8165.L1226: 8166 ldp x19, x20, [sp, 16] 8167 mov w0, 0 8168 ldp x21, x22, [sp, 32] 8169 ldp x23, x24, [sp, 48] 8170 ldp x25, x26, [sp, 64] 8171 ldp x27, x28, [sp, 80] 8172 ldp x29, x30, [sp], 192 8173 ret 8174.L1106: 8175 ldrh w0, [x19, 16] 8176 mov w20, 0 8177.L1107: 8178 cmp w0, w1 8179 beq .L1108 8180 mov w1, 1 8181 bl FtlGetLastWrittenPage 8182 mov w23, w0 8183 cmn w0, #1 8184 beq .L1109 8185 adrp x1, .LANCHOR91 8186 adrp x2, .LANCHOR3 8187 adrp x20, .LANCHOR112 8188 add x4, x19, 16 8189 ldr x5, [x1, #:lo12:.LANCHOR91] 8190 adrp x1, .LANCHOR23 8191 ldr x0, [x20, #:lo12:.LANCHOR112] 8192 mov w22, 0 8193 ldrh w6, [x1, #:lo12:.LANCHOR23] 8194 adrp x1, .LANCHOR92 8195 mov w10, 65535 8196 str x2, [x29, 152] 8197 ldr x7, [x1, #:lo12:.LANCHOR92] 8198 adrp x1, .LANCHOR24 8199 ldrh w8, [x1, #:lo12:.LANCHOR24] 8200 add x1, x19, 16 8201 str x1, [x29, 168] 8202 ldrh w1, [x2, #:lo12:.LANCHOR3] 8203 add x1, x1, 8 8204 add x1, x19, x1, lsl 1 8205.L1110: 8206 cmp x4, x1 8207 bne .L1114 8208 mov w2, 0 8209 mov w1, w22 8210 bl FlashReadPages 8211 adrp x0, .LANCHOR71 8212 ldr x4, [x20, #:lo12:.LANCHOR112] 8213 and w10, w23, 65535 8214 add x7, x0, :lo12:.LANCHOR71 8215 ldr w21, [x0, #:lo12:.LANCHOR71] 8216 mov x11, x4 8217 mov w6, 65535 8218 mov w3, 0 8219 sub w21, w21, #1 8220 str x0, [x29, 144] 8221.L1115: 8222 cmp w22, w3 8223 bne .L1120 8224 add w22, w23, 1 8225 ldr w0, [x4, 4] 8226 and w22, w22, 65535 8227.L1228: 8228 lsr w0, w0, 10 8229 bl P2V_plane 8230 and w27, w0, 65535 8231 ldr x0, [x29, 128] 8232 ldrh w0, [x0, #:lo12:.LANCHOR19] 8233 cmp w0, w22 8234 bne .L1122 8235 strh w22, [x19, 2] 8236 strb wzr, [x19, 6] 8237 strh wzr, [x19, 4] 8238.L1122: 8239 ldr w0, [x29, 164] 8240 cmp w22, w26 8241 cset w1, eq 8242 cmp w27, w0 8243 cset w0, eq 8244 tst w1, w0 8245 beq .L1123 8246.L1233: 8247 mov w2, w27 8248 mov w1, w22 8249 mov x0, x19 8250 bl ftl_sb_update_avl_pages 8251 b .L1226 8252.L1108: 8253 add w20, w20, 1 8254 and w20, w20, 65535 8255 add x0, x19, x20, sxtw 1 8256 ldrh w0, [x0, 16] 8257 b .L1107 8258.L1109: 8259 cbz w26, .L1111 8260 adrp x1, .LANCHOR166 8261 adrp x0, .LC1 8262 mov w2, 1766 8263 add x1, x1, :lo12:.LANCHOR166 8264 add x0, x0, :lo12:.LC1 8265 bl printf 8266.L1111: 8267 ldr w0, [x29, 164] 8268 cmp w0, 0 8269 ccmp w20, w0, 4, ne 8270 beq .L1112 8271 adrp x1, .LANCHOR166 8272 adrp x0, .LC1 8273 mov w2, 1767 8274 add x1, x1, :lo12:.LANCHOR166 8275 add x0, x0, :lo12:.LC1 8276 bl printf 8277.L1112: 8278 strh wzr, [x19, 2] 8279 b .L1232 8280.L1114: 8281 ldrh w3, [x4] 8282 cmp w3, w10 8283 beq .L1113 8284 ubfiz x2, x22, 5, 16 8285 orr w3, w23, w3, lsl 10 8286 add x2, x0, x2 8287 str w3, [x2, 4] 8288 mul w3, w22, w6 8289 asr w3, w3, 2 8290 add x3, x5, x3, sxtw 2 8291 str x3, [x2, 8] 8292 mul w3, w22, w8 8293 add w22, w22, 1 8294 and w22, w22, 65535 8295 asr w3, w3, 2 8296 add x3, x7, x3, sxtw 2 8297 str x3, [x2, 16] 8298.L1113: 8299 add x4, x4, 2 8300 b .L1110 8301.L1120: 8302 ldr w0, [x11] 8303 cbnz w0, .L1116 8304 ldr x8, [x11, 16] 8305 ldr w5, [x8, 4] 8306 cmn w5, #1 8307 beq .L1117 8308 ldr w1, [x7] 8309 mov w0, w5 8310 bl ftl_cmp_data_ver 8311 cbz w0, .L1117 8312 add w5, w5, 1 8313 str w5, [x7] 8314.L1117: 8315 ldr w0, [x8] 8316 cmn w0, #1 8317 bne .L1119 8318 ubfiz x3, x3, 5, 16 8319 and w22, w23, 65535 8320 add x3, x4, x3 8321 ldr w0, [x3, 4] 8322 b .L1228 8323.L1116: 8324 mov w6, w10 8325.L1119: 8326 add w3, w3, 1 8327 add x11, x11, 32 8328 and w3, w3, 65535 8329 b .L1115 8330.L1123: 8331 mov w0, 65535 8332 cmp w6, w0 8333 bne .L1124 8334 ldrb w0, [x19, 8] 8335 cbnz w0, .L1125 8336.L1124: 8337 adrp x25, .LANCHOR145 8338 and w28, w23, 65535 8339 ldr w0, [x25, #:lo12:.LANCHOR145] 8340 cmn w0, #1 8341 bne .L1126 8342 str w21, [x25, #:lo12:.LANCHOR145] 8343.L1126: 8344 add w0, w26, 7 8345 cmp w0, w23, uxth 8346 bge .L1175 8347 sub w24, w28, #7 8348 and w24, w24, 65535 8349.L1127: 8350 ldr x0, [x29, 152] 8351 mov w3, 65535 8352 mov w5, 1 8353 add x4, x0, :lo12:.LANCHOR3 8354.L1128: 8355 cmp w24, w28 8356 bhi .L1138 8357 ldrh w1, [x4] 8358 mov w23, 0 8359 ldr x0, [x20, #:lo12:.LANCHOR112] 8360 add x1, x1, 8 8361 ldr x2, [x29, 168] 8362 add x1, x19, x1, lsl 1 8363 b .L1139 8364.L1175: 8365 mov w24, w26 8366 b .L1127 8367.L1130: 8368 ldrh w6, [x2] 8369 cmp w6, w3 8370 beq .L1129 8371 ubfiz x7, x23, 5, 16 8372 add w23, w23, 1 8373 add x7, x0, x7 8374 and w23, w23, 65535 8375 orr w6, w24, w6, lsl 10 8376 str w6, [x7, 4] 8377.L1129: 8378 add x2, x2, 2 8379.L1139: 8380 cmp x2, x1 8381 bne .L1130 8382 mov w1, w23 8383 mov w2, 0 8384 str w5, [x29, 112] 8385 ubfiz x23, x23, 5, 16 8386 str w3, [x29, 120] 8387 add x23, x23, 16 8388 str x4, [x29, 136] 8389 bl FlashReadPages 8390 ldr x2, [x20, #:lo12:.LANCHOR112] 8391 ldr w1, [x25, #:lo12:.LANCHOR145] 8392 ldr w5, [x29, 112] 8393 add x0, x2, 16 8394 ldr w3, [x29, 120] 8395 add x23, x2, x23 8396 ldr x4, [x29, 136] 8397 mov w2, 0 8398.L1131: 8399 cmp x23, x0 8400 bne .L1136 8401 cbz w2, .L1137 8402 str w1, [x25, #:lo12:.LANCHOR145] 8403.L1137: 8404 add w24, w24, 1 8405 and w24, w24, 65535 8406 b .L1128 8407.L1136: 8408 ldr w6, [x0, -16] 8409 cbz w6, .L1132 8410 cbz w2, .L1125 8411 str w1, [x25, #:lo12:.LANCHOR145] 8412.L1125: 8413 adrp x0, .LANCHOR167 8414 mov w23, w26 8415 mov w1, 1 8416 adrp x28, .LANCHOR145 8417 strh w1, [x0, #:lo12:.LANCHOR167] 8418 add x0, x28, :lo12:.LANCHOR145 8419 str x0, [x29, 104] 8420.L1140: 8421 ldr x1, [x29, 152] 8422 mov w24, 0 8423 ldr x0, [x20, #:lo12:.LANCHOR112] 8424 mov w5, 65535 8425 ldr x2, [x29, 168] 8426 ldrh w1, [x1, #:lo12:.LANCHOR3] 8427 add x1, x1, 8 8428 add x1, x19, x1, lsl 1 8429.L1141: 8430 cmp x1, x2 8431 bne .L1143 8432 mov w2, 0 8433 mov w1, w24 8434 bl FlashReadPages 8435 mov x25, 0 8436 ubfiz x0, x24, 5, 16 8437 str x0, [x29, 112] 8438 adrp x0, .LANCHOR168 8439 add x0, x0, :lo12:.LANCHOR168 8440 str x0, [x29, 120] 8441.L1144: 8442 ldr x0, [x29, 112] 8443 cmp x25, x0 8444 bne .L1169 8445 ldr x0, [x29, 128] 8446 add w23, w23, 1 8447 and w23, w23, 65535 8448 ldrh w0, [x0, #:lo12:.LANCHOR19] 8449 cmp w0, w23 8450 bne .L1140 8451 ldr x0, [x29, 152] 8452 mov w2, 65535 8453 strh w23, [x19, 2] 8454 strh wzr, [x19, 4] 8455 ldrh w1, [x0, #:lo12:.LANCHOR3] 8456 mov w0, 0 8457.L1170: 8458 cmp w0, w1 8459 beq .L1226 8460 ldr x4, [x29, 168] 8461 ldrh w3, [x4], 2 8462 str x4, [x29, 168] 8463 cmp w3, w2 8464 beq .L1171 8465 strb w0, [x19, 6] 8466 b .L1226 8467.L1132: 8468 ldr x6, [x0] 8469 ldrh w7, [x6] 8470 cmp w7, w3 8471 beq .L1135 8472 ldr w6, [x6, 4] 8473 cmn w6, #1 8474 csel w1, w1, w6, eq 8475 csel w2, w2, w5, eq 8476.L1135: 8477 add x0, x0, 32 8478 b .L1131 8479.L1138: 8480 mov w0, -1 8481 str w0, [x25, #:lo12:.LANCHOR145] 8482 b .L1125 8483.L1143: 8484 ldrh w3, [x2] 8485 cmp w3, w5 8486 beq .L1142 8487 ubfiz x4, x24, 5, 16 8488 add w24, w24, 1 8489 add x4, x0, x4 8490 and w24, w24, 65535 8491 orr w3, w23, w3, lsl 10 8492 str w3, [x4, 4] 8493.L1142: 8494 add x2, x2, 2 8495 b .L1141 8496.L1169: 8497 ldr x4, [x20, #:lo12:.LANCHOR112] 8498 add x4, x4, x25 8499 ldr w5, [x4, 4] 8500 str w5, [x29, 188] 8501 lsr w0, w5, 10 8502 bl P2V_plane 8503 and w0, w0, 65535 8504 cmp w23, w26 8505 bcc .L1145 8506 ldr w1, [x29, 164] 8507 ccmp w1, w0, 0, eq 8508 bhi .L1145 8509 cmp w23, w22 8510 ccmp w27, w0, 0, eq 8511 beq .L1146 8512 ldr w0, [x4] 8513 cmn w0, #1 8514 beq .L1147 8515 ldr x3, [x4, 16] 8516 mov w0, 61589 8517 ldrh w1, [x3] 8518 cmp w1, w0 8519 beq .L1148 8520 ldrh w0, [x19] 8521.L1230: 8522 bl decrement_vpc_count 8523 b .L1145 8524.L1148: 8525 ldr w21, [x3, 4] 8526 cmn w21, #1 8527 beq .L1149 8528 ldr x0, [x29, 144] 8529 ldr w1, [x0, #:lo12:.LANCHOR71] 8530 mov w0, w21 8531 bl ftl_cmp_data_ver 8532 cbz w0, .L1149 8533 ldr x1, [x29, 144] 8534 add w0, w21, 1 8535 str w0, [x1, #:lo12:.LANCHOR71] 8536.L1149: 8537 ldp w24, w0, [x3, 8] 8538 add x1, x29, 184 8539 str w0, [x29, 180] 8540 mov w2, 0 8541 mov w0, w24 8542 bl log2phys 8543 ldr w1, [x28, #:lo12:.LANCHOR145] 8544 cmn w1, #1 8545 beq .L1150 8546 mov w0, w21 8547 bl ftl_cmp_data_ver 8548 cbz w0, .L1150 8549 ldr w1, [x29, 180] 8550 cmn w1, #1 8551 beq .L1151 8552 ldr x0, [x20, #:lo12:.LANCHOR112] 8553 mov w2, 0 8554 add x0, x0, x25 8555 ldr x3, [x0, 16] 8556 str w1, [x0, 4] 8557 mov w1, 1 8558 str x3, [x29, 136] 8559 bl FlashReadPages 8560 ldr x0, [x20, #:lo12:.LANCHOR112] 8561 ldr x3, [x29, 136] 8562 add x4, x0, x25 8563 ldr w0, [x0, x25] 8564 cmn w0, #1 8565 bne .L1152 8566.L1153: 8567 mov w0, -1 8568 str w0, [x29, 180] 8569.L1160: 8570 ldr w3, [x29, 180] 8571 cmn w3, #1 8572 beq .L1145 8573.L1174: 8574 lsr w0, w3, 10 8575 bl P2V_block_in_plane 8576 and w24, w0, 65535 8577 adrp x0, .LANCHOR5 8578 mov w3, w24 8579 ldrh w0, [x0, #:lo12:.LANCHOR5] 8580 cmp w0, w24 8581 bhi .L1165 8582 mov w2, 2019 8583 adrp x1, .LANCHOR166 8584 adrp x0, .LC1 8585 add x1, x1, :lo12:.LANCHOR166 8586 add x0, x0, :lo12:.LC1 8587 str w24, [x29, 136] 8588 bl printf 8589 ldr w3, [x29, 136] 8590.L1165: 8591 adrp x1, .LANCHOR42 8592 ubfiz x0, x24, 1, 16 8593 ldr x1, [x1, #:lo12:.LANCHOR42] 8594 ldrh w0, [x1, x0] 8595 cbz w0, .L1166 8596 mov w0, w3 8597 b .L1230 8598.L1151: 8599 ldp w1, w0, [x29, 184] 8600 cmp w1, w0 8601 bne .L1145 8602 mov w2, 1 8603 add x1, x29, 180 8604 mov w0, w24 8605 bl log2phys 8606.L1145: 8607 add x25, x25, 32 8608 b .L1144 8609.L1152: 8610 ldr w0, [x3, 8] 8611 cmp w24, w0 8612 bne .L1153 8613 ldr w0, [x3, 4] 8614 str w0, [x29, 136] 8615 str x3, [x29, 96] 8616 uxtw x1, w0 8617 ldr w0, [x28, #:lo12:.LANCHOR145] 8618 bl ftl_cmp_data_ver 8619 cbz w0, .L1153 8620 ldp w0, w1, [x29, 184] 8621 ldr x3, [x29, 96] 8622 cmp w0, w1 8623 ldr w1, [x29, 180] 8624 bne .L1155 8625.L1229: 8626 mov w0, w24 8627 bl FtlReUsePrevPpa 8628 b .L1153 8629.L1155: 8630 cmp w0, w1 8631 beq .L1153 8632 cmn w0, #1 8633 beq .L1156 8634 ldr x3, [x4, 16] 8635 mov w2, 0 8636 str w0, [x4, 4] 8637 mov w1, 1 8638 str x3, [x29, 96] 8639 mov x0, x4 8640 bl FlashReadPages 8641 ldr x3, [x29, 96] 8642.L1157: 8643 ldr x0, [x20, #:lo12:.LANCHOR112] 8644 ldr w0, [x0, x25] 8645 cmn w0, #1 8646 beq .L1158 8647 ldr x0, [x29, 104] 8648 ldr w3, [x3, 4] 8649 mov w1, w3 8650 ldr w0, [x0] 8651 bl ftl_cmp_data_ver 8652 cbz w0, .L1158 8653 ldr w0, [x29, 136] 8654 mov w1, w3 8655 bl ftl_cmp_data_ver 8656 cbz w0, .L1153 8657.L1158: 8658 ldr w1, [x29, 180] 8659 b .L1229 8660.L1156: 8661 str w0, [x4] 8662 b .L1157 8663.L1150: 8664 ldp w1, w0, [x29, 184] 8665 cmp w1, w0 8666 beq .L1160 8667 mov w2, 1 8668 add x1, x29, 188 8669 mov w0, w24 8670 bl log2phys 8671 ldr w3, [x29, 184] 8672 cmn w3, #1 8673 beq .L1160 8674 ldr w0, [x29, 180] 8675 cmp w3, w0 8676 beq .L1174 8677 lsr w0, w3, 10 8678 bl P2V_block_in_plane 8679 adrp x1, .LANCHOR51 8680 and w0, w0, 65535 8681 ldrh w1, [x1, #:lo12:.LANCHOR51] 8682 cmp w1, w0 8683 beq .L1164 8684 adrp x1, .LANCHOR52 8685 ldrh w1, [x1, #:lo12:.LANCHOR52] 8686 cmp w1, w0 8687 beq .L1164 8688 adrp x1, .LANCHOR53 8689 ldrh w1, [x1, #:lo12:.LANCHOR53] 8690 cmp w1, w0 8691 bne .L1160 8692.L1164: 8693 ldr x0, [x20, #:lo12:.LANCHOR112] 8694 mov w2, 0 8695 mov w1, 1 8696 ldr x4, [x0, 16] 8697 str w3, [x0, 4] 8698 str x4, [x29, 136] 8699 bl FlashReadPages 8700 ldr x0, [x20, #:lo12:.LANCHOR112] 8701 ldr w0, [x0] 8702 cmn w0, #1 8703 beq .L1160 8704 ldr x4, [x29, 136] 8705 mov w0, w21 8706 ldr w1, [x4, 4] 8707 bl ftl_cmp_data_ver 8708 cbnz w0, .L1160 8709 mov w2, 1 8710 add x1, x29, 184 8711 mov w0, w24 8712 bl log2phys 8713 b .L1160 8714.L1166: 8715 mov w1, w24 8716 adrp x0, .LC106 8717 add x0, x0, :lo12:.LC106 8718 bl printf 8719 b .L1145 8720.L1147: 8721 ldr x0, [x29, 120] 8722 ldr w0, [x0] 8723 cmp w0, 31 8724 bhi .L1167 8725 adrp x1, .LANCHOR169 8726 add x1, x1, :lo12:.LANCHOR169 8727 str w5, [x1, w0, uxtw 2] 8728 add w0, w0, 1 8729 ldr x1, [x29, 120] 8730 str w0, [x1] 8731.L1167: 8732 ldrh w0, [x19] 8733 bl decrement_vpc_count 8734 ldr w0, [x28, #:lo12:.LANCHOR145] 8735 cmn w0, #1 8736 bne .L1168 8737.L1231: 8738 str w21, [x28, #:lo12:.LANCHOR145] 8739 b .L1145 8740.L1168: 8741 cmp w21, w0 8742 bcs .L1145 8743 b .L1231 8744.L1171: 8745 add w0, w0, 1 8746 and w0, w0, 65535 8747 b .L1170 8748.L1146: 8749 strb w27, [x19, 6] 8750 strh w22, [x19, 2] 8751 b .L1233 8752 .size FtlRecoverySuperblock, .-FtlRecoverySuperblock 8753 .section .text.FtlWriteDump_data,"ax",@progbits 8754 .align 2 8755 .global FtlWriteDump_data 8756 .type FtlWriteDump_data, %function 8757FtlWriteDump_data: 8758 stp x29, x30, [sp, -128]! 8759 add x29, sp, 0 8760 stp x19, x20, [sp, 16] 8761 adrp x19, .LANCHOR51 8762 add x0, x19, :lo12:.LANCHOR51 8763 stp x21, x22, [sp, 32] 8764 stp x23, x24, [sp, 48] 8765 ldrh w2, [x0, 4] 8766 str x25, [sp, 64] 8767 cbz w2, .L1235 8768 ldrb w1, [x0, 8] 8769 cbnz w1, .L1235 8770 adrp x3, .LANCHOR19 8771 ldrb w1, [x0, 7] 8772 ldrh w3, [x3, #:lo12:.LANCHOR19] 8773 mul w1, w1, w3 8774 cmp w2, w1 8775 beq .L1235 8776 ldrb w0, [x0, 10] 8777 cbnz w0, .L1234 8778 adrp x0, .LANCHOR61 8779 mov w2, 0 8780 add x1, x29, 92 8781 ldr w21, [x0, #:lo12:.LANCHOR61] 8782 adrp x0, .LANCHOR3 8783 sub w21, w21, #1 8784 ldrh w25, [x0, #:lo12:.LANCHOR3] 8785 mov w0, w21 8786 bl log2phys 8787 adrp x2, .LANCHOR123 8788 adrp x0, .LANCHOR115 8789 ldr w1, [x29, 92] 8790 ldr x20, [x2, #:lo12:.LANCHOR123] 8791 ldr x0, [x0, #:lo12:.LANCHOR115] 8792 cmn w1, #1 8793 str w1, [x29, 100] 8794 stp x0, x20, [x29, 104] 8795 str w21, [x29, 120] 8796 str wzr, [x20, 4] 8797 beq .L1237 8798 mov w2, 0 8799 mov w1, 1 8800 add x0, x29, 96 8801 bl FlashReadPages 8802.L1238: 8803 adrp x23, .LANCHOR71 8804 lsl w25, w25, 2 8805 add x22, x19, :lo12:.LANCHOR51 8806 add x23, x23, :lo12:.LANCHOR71 8807 mov w0, -3947 8808 mov w24, 0 8809 strh w0, [x20] 8810.L1239: 8811 cmp w25, w24 8812 bne .L1243 8813.L1240: 8814 add x19, x19, :lo12:.LANCHOR51 8815 mov w0, 1 8816 strb w0, [x19, 10] 8817.L1234: 8818 ldp x19, x20, [sp, 16] 8819 ldp x21, x22, [sp, 32] 8820 ldp x23, x24, [sp, 48] 8821 ldr x25, [sp, 64] 8822 ldp x29, x30, [sp], 128 8823 ret 8824.L1237: 8825 adrp x1, .LANCHOR23 8826 ldrh w2, [x1, #:lo12:.LANCHOR23] 8827 mov w1, 255 8828 bl ftl_memset 8829 b .L1238 8830.L1243: 8831 ldrh w0, [x22, 4] 8832 cbz w0, .L1240 8833 ldr w0, [x29, 100] 8834 add w24, w24, 1 8835 stp w21, w0, [x20, 8] 8836 ldrh w0, [x22] 8837 strh w0, [x20, 2] 8838 mov x0, x22 8839 bl get_new_active_ppa 8840 str w0, [x29, 100] 8841 ldr w0, [x23] 8842 mov w3, 0 8843 str w0, [x20, 4] 8844 mov w2, 0 8845 add w0, w0, 1 8846 mov w1, 1 8847 cmn w0, #1 8848 csel w0, w0, wzr, ne 8849 str w0, [x23] 8850 add x0, x29, 96 8851 bl FlashProgPages 8852 ldrh w0, [x22] 8853 bl decrement_vpc_count 8854 b .L1239 8855.L1235: 8856 add x19, x19, :lo12:.LANCHOR51 8857 strb wzr, [x19, 10] 8858 b .L1234 8859 .size FtlWriteDump_data, .-FtlWriteDump_data 8860 .section .text.l2p_flush,"ax",@progbits 8861 .align 2 8862 .global l2p_flush 8863 .type l2p_flush, %function 8864l2p_flush: 8865 stp x29, x30, [sp, -48]! 8866 add x29, sp, 0 8867 stp x19, x20, [sp, 16] 8868 adrp x20, .LANCHOR33 8869 add x20, x20, :lo12:.LANCHOR33 8870 str x21, [sp, 32] 8871 mov w19, 0 8872 adrp x21, .LANCHOR55 8873 bl FtlWriteDump_data 8874.L1253: 8875 ldrh w0, [x20] 8876 cmp w0, w19 8877 bhi .L1255 8878 mov w0, 0 8879 ldr x21, [sp, 32] 8880 ldp x19, x20, [sp, 16] 8881 ldp x29, x30, [sp], 48 8882 ret 8883.L1255: 8884 ldr x1, [x21, #:lo12:.LANCHOR55] 8885 ubfiz x0, x19, 4, 16 8886 add x0, x1, x0 8887 ldr w0, [x0, 4] 8888 tbz w0, #31, .L1254 8889 mov w0, w19 8890 bl flush_l2p_region 8891.L1254: 8892 add w19, w19, 1 8893 and w19, w19, 65535 8894 b .L1253 8895 .size l2p_flush, .-l2p_flush 8896 .section .text.FtlSuperblockPowerLostFix,"ax",@progbits 8897 .align 2 8898 .global FtlSuperblockPowerLostFix 8899 .type FtlSuperblockPowerLostFix, %function 8900FtlSuperblockPowerLostFix: 8901 stp x29, x30, [sp, -80]! 8902 adrp x1, .LANCHOR123 8903 add x29, sp, 0 8904 stp x19, x20, [sp, 16] 8905 mov x19, x0 8906 mov w0, -1 8907 stp x21, x22, [sp, 32] 8908 str w0, [x29, 72] 8909 adrp x0, .LANCHOR115 8910 ldr x21, [x1, #:lo12:.LANCHOR123] 8911 mov w1, -3 8912 ldr x0, [x0, #:lo12:.LANCHOR115] 8913 adrp x22, .LANCHOR71 8914 str x21, [x29, 64] 8915 add x22, x22, :lo12:.LANCHOR71 8916 str x0, [x29, 56] 8917 ldrh w20, [x19, 4] 8918 str w1, [x21, 8] 8919 mov w1, -2 8920 str w1, [x21, 12] 8921 and w20, w20, 1 8922 ldrh w1, [x19] 8923 add w20, w20, 6 8924 strh w1, [x21, 2] 8925 strh wzr, [x21] 8926 mov w1, 61589 8927 str w1, [x0] 8928 mov w1, 22136 8929 movk w1, 0x1234, lsl 16 8930 str w1, [x0, 4] 8931.L1263: 8932 ldrh w0, [x19, 4] 8933 cbnz w0, .L1259 8934.L1260: 8935 ldrh w0, [x19] 8936 adrp x1, .LANCHOR42 8937 ldrh w3, [x19, 4] 8938 ldr x2, [x1, #:lo12:.LANCHOR42] 8939 lsl x0, x0, 1 8940 ldrh w1, [x2, x0] 8941 sub w1, w1, w3 8942 strh w1, [x2, x0] 8943 adrp x0, .LANCHOR19 8944 strb wzr, [x19, 6] 8945 strh wzr, [x19, 4] 8946 ldrh w0, [x0, #:lo12:.LANCHOR19] 8947 strh w0, [x19, 2] 8948 ldp x21, x22, [sp, 32] 8949 ldp x19, x20, [sp, 16] 8950 ldp x29, x30, [sp], 80 8951 ret 8952.L1259: 8953 mov x0, x19 8954 bl get_new_active_ppa 8955 str w0, [x29, 52] 8956 cmn w0, #1 8957 beq .L1260 8958 ldr w0, [x22] 8959 mov w3, 0 8960 str w0, [x21, 4] 8961 mov w2, 0 8962 add w0, w0, 1 8963 mov w1, 1 8964 cmn w0, #1 8965 csel w0, w0, wzr, ne 8966 str w0, [x22] 8967 add x0, x29, 48 8968 bl FlashProgPages 8969 ldrh w0, [x19] 8970 bl decrement_vpc_count 8971 subs w20, w20, #1 8972 bne .L1263 8973 b .L1260 8974 .size FtlSuperblockPowerLostFix, .-FtlSuperblockPowerLostFix 8975 .section .text.FtlVendorPartWrite,"ax",@progbits 8976 .align 2 8977 .global FtlVendorPartWrite 8978 .type FtlVendorPartWrite, %function 8979FtlVendorPartWrite: 8980 stp x29, x30, [sp, -208]! 8981 add x29, sp, 0 8982 stp x19, x20, [sp, 16] 8983 mov w20, w1 8984 stp x27, x28, [sp, 80] 8985 add w1, w0, w1 8986 mov w28, w0 8987 adrp x0, .LANCHOR16 8988 stp x21, x22, [sp, 32] 8989 ldrh w0, [x0, #:lo12:.LANCHOR16] 8990 stp x23, x24, [sp, 48] 8991 stp x25, x26, [sp, 64] 8992 cmp w1, w0 8993 bhi .L1279 8994 adrp x0, .LANCHOR22 8995 adrp x25, .LANCHOR12 8996 adrp x26, .LANCHOR23 8997 mov x24, x2 8998 ldrh w21, [x0, #:lo12:.LANCHOR22] 8999 add x25, x25, :lo12:.LANCHOR12 9000 add x26, x26, :lo12:.LANCHOR23 9001 mov w23, 0 9002 lsr w21, w28, w21 9003.L1273: 9004 cbnz w20, .L1278 9005.L1271: 9006 mov w0, w23 9007 ldp x19, x20, [sp, 16] 9008 ldp x21, x22, [sp, 32] 9009 ldp x23, x24, [sp, 48] 9010 ldp x25, x26, [sp, 64] 9011 ldp x27, x28, [sp, 80] 9012 ldp x29, x30, [sp], 208 9013 ret 9014.L1278: 9015 ldrh w1, [x25] 9016 adrp x0, .LANCHOR133 9017 adrp x27, .LANCHOR117 9018 ldr x0, [x0, #:lo12:.LANCHOR133] 9019 udiv w22, w28, w1 9020 ldr w2, [x0, w21, uxtw 2] 9021 and w0, w20, 65535 9022 msub w22, w22, w1, w28 9023 sub w19, w1, w22 9024 and w19, w19, 65535 9025 cmp w20, w19 9026 csel w19, w0, w19, cc 9027 cbz w2, .L1275 9028 cmp w19, w1 9029 beq .L1275 9030 ldr x0, [x27, #:lo12:.LANCHOR117] 9031 str x0, [x29, 120] 9032 add x0, x29, 144 9033 str w2, [x29, 116] 9034 mov w2, 1 9035 str x0, [x29, 128] 9036 mov w1, w2 9037 add x0, x29, 112 9038 bl FlashReadPages 9039.L1276: 9040 lsl w4, w19, 9 9041 ldr x0, [x27, #:lo12:.LANCHOR117] 9042 lsl w22, w22, 7 9043 mov w2, w4 9044 mov x1, x24 9045 str w4, [x29, 108] 9046 add x0, x0, x22, sxtw 2 9047 bl ftl_memcpy 9048 ldr x2, [x27, #:lo12:.LANCHOR117] 9049 mov w1, w21 9050 adrp x0, .LANCHOR158 9051 add x0, x0, :lo12:.LANCHOR158 9052 sub w20, w20, w19 9053 add w28, w28, w19 9054 add w21, w21, 1 9055 bl FtlMapWritePage 9056 cmn w0, #1 9057 ldr w4, [x29, 108] 9058 csinv w23, w23, wzr, ne 9059 add x24, x24, x4, sxtw 9060 b .L1273 9061.L1275: 9062 ldrh w2, [x26] 9063 mov w1, 0 9064 ldr x0, [x27, #:lo12:.LANCHOR117] 9065 bl ftl_memset 9066 b .L1276 9067.L1279: 9068 mov w23, -1 9069 b .L1271 9070 .size FtlVendorPartWrite, .-FtlVendorPartWrite 9071 .section .text.Ftl_save_ext_data,"ax",@progbits 9072 .align 2 9073 .global Ftl_save_ext_data 9074 .type Ftl_save_ext_data, %function 9075Ftl_save_ext_data: 9076 adrp x0, .LANCHOR81 9077 add x2, x0, :lo12:.LANCHOR81 9078 ldr w1, [x0, #:lo12:.LANCHOR81] 9079 mov w0, 19539 9080 movk w0, 0x4654, lsl 16 9081 cmp w1, w0 9082 bne .L1284 9083 mov w0, 72 9084 mov w1, 1 9085 movk w0, 0x5000, lsl 16 9086 str w0, [x2, 4] 9087 adrp x0, .LANCHOR68 9088 ldr w0, [x0, #:lo12:.LANCHOR68] 9089 str w0, [x2, 88] 9090 adrp x0, .LANCHOR69 9091 ldr w0, [x0, #:lo12:.LANCHOR69] 9092 str w0, [x2, 92] 9093 adrp x0, .LANCHOR67 9094 ldr w0, [x0, #:lo12:.LANCHOR67] 9095 str w0, [x2, 8] 9096 adrp x0, .LANCHOR64 9097 ldr w0, [x0, #:lo12:.LANCHOR64] 9098 str w0, [x2, 12] 9099 adrp x0, .LANCHOR62 9100 ldr w0, [x0, #:lo12:.LANCHOR62] 9101 str w0, [x2, 16] 9102 adrp x0, .LANCHOR66 9103 ldr w0, [x0, #:lo12:.LANCHOR66] 9104 str w0, [x2, 20] 9105 adrp x0, .LANCHOR73 9106 ldr w0, [x0, #:lo12:.LANCHOR73] 9107 str w0, [x2, 28] 9108 adrp x0, .LANCHOR75 9109 ldr w0, [x0, #:lo12:.LANCHOR75] 9110 str w0, [x2, 32] 9111 adrp x0, .LANCHOR63 9112 ldr w0, [x0, #:lo12:.LANCHOR63] 9113 str w0, [x2, 36] 9114 adrp x0, .LANCHOR65 9115 ldr w0, [x0, #:lo12:.LANCHOR65] 9116 str w0, [x2, 40] 9117 adrp x0, .LANCHOR76 9118 ldr w0, [x0, #:lo12:.LANCHOR76] 9119 str w0, [x2, 44] 9120 adrp x0, .LANCHOR77 9121 ldr w0, [x0, #:lo12:.LANCHOR77] 9122 str w0, [x2, 48] 9123 mov w0, 0 9124 b FtlVendorPartWrite 9125.L1284: 9126 ret 9127 .size Ftl_save_ext_data, .-Ftl_save_ext_data 9128 .section .text.FtlEctTblFlush,"ax",@progbits 9129 .align 2 9130 .global FtlEctTblFlush 9131 .type FtlEctTblFlush, %function 9132FtlEctTblFlush: 9133 adrp x2, .LANCHOR170 9134 ldrh w1, [x2, #:lo12:.LANCHOR170] 9135 cmp w1, 31 9136 bhi .L1290 9137 add w1, w1, 1 9138 strh w1, [x2, #:lo12:.LANCHOR170] 9139 mov w1, 1 9140.L1287: 9141 adrp x2, .LANCHOR127 9142 cbnz w0, .L1288 9143 ldr x0, [x2, #:lo12:.LANCHOR127] 9144 ldr w3, [x0, 20] 9145 ldr w0, [x0, 16] 9146 add w1, w1, w3 9147 cmp w0, w1 9148 bcc .L1292 9149.L1288: 9150 stp x29, x30, [sp, -16]! 9151 add x29, sp, 0 9152 ldr x2, [x2, #:lo12:.LANCHOR127] 9153 ldr w0, [x2, 16] 9154 str w0, [x2, 20] 9155 mov w0, 17221 9156 str wzr, [x2, 4] 9157 movk w0, 0x4254, lsl 16 9158 str w0, [x2] 9159 adrp x0, .LANCHOR125 9160 ldrh w1, [x0, #:lo12:.LANCHOR125] 9161 lsl w0, w1, 9 9162 str w0, [x2, 12] 9163 ldr w0, [x2, 8] 9164 add w0, w0, 1 9165 str w0, [x2, 8] 9166 mov w0, 64 9167 bl FtlVendorPartWrite 9168 bl Ftl_save_ext_data 9169 mov w0, 0 9170 ldp x29, x30, [sp], 16 9171 ret 9172.L1290: 9173 mov w1, 32 9174 b .L1287 9175.L1292: 9176 mov w0, 0 9177 ret 9178 .size FtlEctTblFlush, .-FtlEctTblFlush 9179 .section .text.sftl_vendor_write,"ax",@progbits 9180 .align 2 9181 .global sftl_vendor_write 9182 .type sftl_vendor_write, %function 9183sftl_vendor_write: 9184 add w0, w0, 256 9185 b FtlVendorPartWrite 9186 .size sftl_vendor_write, .-sftl_vendor_write 9187 .section .text.FtlVendorPartRead,"ax",@progbits 9188 .align 2 9189 .global FtlVendorPartRead 9190 .type FtlVendorPartRead, %function 9191FtlVendorPartRead: 9192 stp x29, x30, [sp, -208]! 9193 add x29, sp, 0 9194 stp x21, x22, [sp, 32] 9195 mov w22, w0 9196 mov w21, w1 9197 add w1, w0, w1 9198 adrp x0, .LANCHOR16 9199 stp x19, x20, [sp, 16] 9200 stp x23, x24, [sp, 48] 9201 ldrh w0, [x0, #:lo12:.LANCHOR16] 9202 stp x25, x26, [sp, 64] 9203 stp x27, x28, [sp, 80] 9204 cmp w1, w0 9205 bhi .L1304 9206 adrp x0, .LANCHOR22 9207 mov x25, x2 9208 mov w24, 0 9209 adrp x27, .LANCHOR133 9210 ldrh w20, [x0, #:lo12:.LANCHOR22] 9211 adrp x0, .LANCHOR12 9212 add x0, x0, :lo12:.LANCHOR12 9213 str x0, [x29, 104] 9214 lsr w20, w22, w20 9215.L1297: 9216 cbnz w21, .L1303 9217.L1295: 9218 mov w0, w24 9219 ldp x19, x20, [sp, 16] 9220 ldp x21, x22, [sp, 32] 9221 ldp x23, x24, [sp, 48] 9222 ldp x25, x26, [sp, 64] 9223 ldp x27, x28, [sp, 80] 9224 ldp x29, x30, [sp], 208 9225 ret 9226.L1303: 9227 ldr x0, [x27, #:lo12:.LANCHOR133] 9228 ldr w4, [x0, w20, uxtw 2] 9229 ldr x0, [x29, 104] 9230 ldrh w19, [x0] 9231 and w0, w21, 65535 9232 udiv w23, w22, w19 9233 msub w23, w23, w19, w22 9234 sub w19, w19, w23 9235 and w19, w19, 65535 9236 cmp w21, w19 9237 csel w19, w0, w19, cc 9238 lsl w26, w19, 9 9239 cbz w4, .L1299 9240 adrp x28, .LANCHOR117 9241 mov w2, 1 9242 str w4, [x29, 96] 9243 mov w1, w2 9244 ldr x0, [x28, #:lo12:.LANCHOR117] 9245 str x0, [x29, 120] 9246 add x0, x29, 144 9247 str w4, [x29, 116] 9248 str x0, [x29, 128] 9249 add x0, x29, 112 9250 bl FlashReadPages 9251 ldr w0, [x29, 112] 9252 mov x5, x28 9253 ldr w4, [x29, 96] 9254 cmn w0, #1 9255 adrp x0, .LANCHOR148 9256 csinv w24, w24, wzr, ne 9257 ldr w0, [x0, #:lo12:.LANCHOR148] 9258 cmp w0, 256 9259 bne .L1301 9260 mov w2, w4 9261 mov w1, w20 9262 adrp x0, .LC107 9263 str x28, [x29, 96] 9264 add x0, x0, :lo12:.LC107 9265 bl printf 9266 ldr x2, [x28, #:lo12:.LANCHOR117] 9267 mov w1, w20 9268 adrp x0, .LANCHOR158 9269 add x0, x0, :lo12:.LANCHOR158 9270 bl FtlMapWritePage 9271 ldr x5, [x29, 96] 9272.L1301: 9273 ldr x1, [x5, #:lo12:.LANCHOR117] 9274 lsl w23, w23, 7 9275 mov w2, w26 9276 mov x0, x25 9277 add x1, x1, x23, sxtw 2 9278 bl ftl_memcpy 9279.L1302: 9280 add w20, w20, 1 9281 sub w21, w21, w19 9282 add w22, w22, w19 9283 add x25, x25, x26, sxtw 9284 b .L1297 9285.L1299: 9286 mov w2, w26 9287 mov w1, 0 9288 mov x0, x25 9289 bl ftl_memset 9290 b .L1302 9291.L1304: 9292 mov w24, -1 9293 b .L1295 9294 .size FtlVendorPartRead, .-FtlVendorPartRead 9295 .section .text.FtlLoadEctTbl,"ax",@progbits 9296 .align 2 9297 .global FtlLoadEctTbl 9298 .type FtlLoadEctTbl, %function 9299FtlLoadEctTbl: 9300 stp x29, x30, [sp, -32]! 9301 mov w0, 64 9302 add x29, sp, 0 9303 stp x19, x20, [sp, 16] 9304 adrp x19, .LANCHOR127 9305 adrp x20, .LANCHOR125 9306 ldr x2, [x19, #:lo12:.LANCHOR127] 9307 ldrh w1, [x20, #:lo12:.LANCHOR125] 9308 bl FtlVendorPartRead 9309 ldr x0, [x19, #:lo12:.LANCHOR127] 9310 ldr w1, [x0] 9311 mov w0, 17221 9312 movk w0, 0x4254, lsl 16 9313 cmp w1, w0 9314 beq .L1307 9315 adrp x1, .LC108 9316 adrp x0, .LC71 9317 add x1, x1, :lo12:.LC108 9318 add x0, x0, :lo12:.LC71 9319 bl printf 9320 ldr x0, [x19, #:lo12:.LANCHOR127] 9321 mov w1, 0 9322 ldrh w2, [x20, #:lo12:.LANCHOR125] 9323 lsl w2, w2, 9 9324 bl ftl_memset 9325.L1307: 9326 mov w0, 0 9327 ldp x19, x20, [sp, 16] 9328 ldp x29, x30, [sp], 32 9329 ret 9330 .size FtlLoadEctTbl, .-FtlLoadEctTbl 9331 .section .text.Ftl_load_ext_data,"ax",@progbits 9332 .align 2 9333 .global Ftl_load_ext_data 9334 .type Ftl_load_ext_data, %function 9335Ftl_load_ext_data: 9336 stp x29, x30, [sp, -48]! 9337 mov w1, 1 9338 mov w0, 0 9339 add x29, sp, 0 9340 stp x19, x20, [sp, 16] 9341 adrp x19, .LANCHOR81 9342 str x21, [sp, 32] 9343 add x21, x19, :lo12:.LANCHOR81 9344 mov x2, x21 9345 bl FtlVendorPartRead 9346 ldr w0, [x19, #:lo12:.LANCHOR81] 9347 mov w20, 19539 9348 movk w20, 0x4654, lsl 16 9349 cmp w0, w20 9350 beq .L1310 9351 mov w2, 512 9352 mov w1, 0 9353 mov x0, x21 9354 bl ftl_memset 9355 str w20, [x19, #:lo12:.LANCHOR81] 9356.L1310: 9357 ldr w1, [x19, #:lo12:.LANCHOR81] 9358 add x0, x19, :lo12:.LANCHOR81 9359 cmp w1, w20 9360 adrp x1, .LANCHOR73 9361 bne .L1311 9362 adrp x2, .LANCHOR68 9363 ldr w3, [x0, 88] 9364 str w3, [x2, #:lo12:.LANCHOR68] 9365 adrp x2, .LANCHOR69 9366 ldr w3, [x0, 92] 9367 str w3, [x2, #:lo12:.LANCHOR69] 9368 adrp x2, .LANCHOR67 9369 ldr w3, [x0, 8] 9370 str w3, [x2, #:lo12:.LANCHOR67] 9371 adrp x2, .LANCHOR64 9372 ldr w3, [x0, 12] 9373 str w3, [x2, #:lo12:.LANCHOR64] 9374 adrp x2, .LANCHOR62 9375 ldr w3, [x0, 16] 9376 str w3, [x2, #:lo12:.LANCHOR62] 9377 adrp x2, .LANCHOR66 9378 ldr w3, [x0, 20] 9379 str w3, [x2, #:lo12:.LANCHOR66] 9380 ldp w2, w3, [x0, 28] 9381 str w2, [x1, #:lo12:.LANCHOR73] 9382 adrp x2, .LANCHOR75 9383 str w3, [x2, #:lo12:.LANCHOR75] 9384 adrp x2, .LANCHOR63 9385 ldr w3, [x0, 36] 9386 str w3, [x2, #:lo12:.LANCHOR63] 9387 adrp x2, .LANCHOR65 9388 ldr w3, [x0, 40] 9389 str w3, [x2, #:lo12:.LANCHOR65] 9390 adrp x2, .LANCHOR76 9391 ldr w3, [x0, 44] 9392 str w3, [x2, #:lo12:.LANCHOR76] 9393 ldr w2, [x0, 48] 9394 adrp x0, .LANCHOR77 9395 str w2, [x0, #:lo12:.LANCHOR77] 9396.L1311: 9397 adrp x0, .LANCHOR14 9398 adrp x2, .LANCHOR72 9399 ldr w1, [x1, #:lo12:.LANCHOR73] 9400 ldrh w0, [x0, #:lo12:.LANCHOR14] 9401 ldr w2, [x2, #:lo12:.LANCHOR72] 9402 ldp x19, x20, [sp, 16] 9403 ldr x21, [sp, 32] 9404 madd w0, w0, w2, w1 9405 adrp x1, .LANCHOR5 9406 ldp x29, x30, [sp], 48 9407 ldrh w1, [x1, #:lo12:.LANCHOR5] 9408 udiv w0, w0, w1 9409 adrp x1, .LANCHOR74 9410 str w0, [x1, #:lo12:.LANCHOR74] 9411 ret 9412 .size Ftl_load_ext_data, .-Ftl_load_ext_data 9413 .section .text.sftl_vendor_read,"ax",@progbits 9414 .align 2 9415 .global sftl_vendor_read 9416 .type sftl_vendor_read, %function 9417sftl_vendor_read: 9418 add w0, w0, 256 9419 b FtlVendorPartRead 9420 .size sftl_vendor_read, .-sftl_vendor_read 9421 .section .text.FtlVpcTblFlush,"ax",@progbits 9422 .align 2 9423 .global FtlVpcTblFlush 9424 .type FtlVpcTblFlush, %function 9425FtlVpcTblFlush: 9426 stp x29, x30, [sp, -112]! 9427 adrp x1, .LANCHOR79 9428 mov w2, 19539 9429 add x29, sp, 0 9430 stp x25, x26, [sp, 64] 9431 adrp x25, .LANCHOR123 9432 stp x21, x22, [sp, 32] 9433 adrp x22, .LANCHOR148 9434 stp x23, x24, [sp, 48] 9435 adrp x24, .LANCHOR115 9436 stp x27, x28, [sp, 80] 9437 add x28, x22, :lo12:.LANCHOR148 9438 ldr x27, [x25, #:lo12:.LANCHOR123] 9439 movk w2, 0x4654, lsl 16 9440 stp x19, x20, [sp, 16] 9441 add x20, x1, :lo12:.LANCHOR79 9442 ldr x0, [x24, #:lo12:.LANCHOR115] 9443 adrp x23, .LANCHOR70 9444 ldrh w1, [x1, #:lo12:.LANCHOR79] 9445 mov w21, 0 9446 stp x0, x27, [x28, 8] 9447 mov w26, 65535 9448 strh w1, [x27, 2] 9449 mov w1, -3932 9450 strh w1, [x27] 9451 ldr w1, [x20, 8] 9452 stp w1, wzr, [x27, 4] 9453 adrp x1, .LANCHOR39 9454 add x19, x1, :lo12:.LANCHOR39 9455 str wzr, [x27, 12] 9456 str w2, [x1, #:lo12:.LANCHOR39] 9457 mov w1, 72 9458 movk w1, 0x5000, lsl 16 9459 str w1, [x19, 4] 9460 ldrh w1, [x20, 6] 9461 adrp x2, .LANCHOR51 9462 strh w1, [x19, 8] 9463 adrp x1, .LANCHOR10 9464 ldrh w1, [x1, #:lo12:.LANCHOR10] 9465 strb w1, [x19, 10] 9466 add x1, x2, :lo12:.LANCHOR51 9467 ldrh w2, [x2, #:lo12:.LANCHOR51] 9468 strh w2, [x19, 14] 9469 ldrh w2, [x1, 2] 9470 ldrb w3, [x1, 6] 9471 ldrb w1, [x1, 8] 9472 strb w1, [x19, 11] 9473 orr w2, w3, w2, lsl 6 9474 strh w2, [x19, 16] 9475 adrp x2, .LANCHOR52 9476 add x1, x2, :lo12:.LANCHOR52 9477 ldrh w2, [x2, #:lo12:.LANCHOR52] 9478 ldrb w3, [x1, 6] 9479 strh w2, [x19, 18] 9480 ldrh w2, [x1, 2] 9481 ldrb w1, [x1, 8] 9482 strb w1, [x19, 12] 9483 orr w2, w3, w2, lsl 6 9484 strh w2, [x19, 20] 9485 adrp x2, .LANCHOR53 9486 add x1, x2, :lo12:.LANCHOR53 9487 ldrh w2, [x2, #:lo12:.LANCHOR53] 9488 ldrb w3, [x1, 6] 9489 strh w2, [x19, 22] 9490 ldrh w2, [x1, 2] 9491 ldrb w1, [x1, 8] 9492 strb w1, [x19, 13] 9493 adrp x1, .LANCHOR72 9494 orr w2, w3, w2, lsl 6 9495 strh w2, [x19, 24] 9496 ldr w1, [x1, #:lo12:.LANCHOR72] 9497 str w1, [x19, 32] 9498 ldr w1, [x23, #:lo12:.LANCHOR70] 9499 str w1, [x19, 40] 9500 adrp x1, .LANCHOR71 9501 ldr w1, [x1, #:lo12:.LANCHOR71] 9502 str w1, [x19, 36] 9503 adrp x1, .LANCHOR23 9504 ldrh w2, [x1, #:lo12:.LANCHOR23] 9505 mov w1, 255 9506 bl ftl_memset 9507 ldr x0, [x28, 8] 9508 mov x1, x19 9509 mov w2, 48 9510 adrp x19, .LANCHOR5 9511 bl ftl_memcpy 9512 adrp x1, .LANCHOR42 9513 ldrh w2, [x19, #:lo12:.LANCHOR5] 9514 ldr x0, [x28, 8] 9515 ldr x1, [x1, #:lo12:.LANCHOR42] 9516 lsl w2, w2, 1 9517 add x0, x0, 48 9518 bl ftl_memcpy 9519 ldrh w1, [x19, #:lo12:.LANCHOR5] 9520 mov x19, x20 9521 ldr x0, [x28, 8] 9522 adrp x20, .LANCHOR20 9523 add x20, x20, :lo12:.LANCHOR20 9524 lsr w2, w1, 3 9525 ubfiz x3, x1, 1, 16 9526 adrp x1, .LANCHOR1 9527 add x3, x3, 48 9528 and x3, x3, -4 9529 add w2, w2, 4 9530 ldr x1, [x1, #:lo12:.LANCHOR1] 9531 add x0, x0, x3 9532 bl ftl_memcpy 9533 mov w0, 0 9534 bl FtlUpdateVaildLpn 9535 str x20, [x29, 104] 9536.L1315: 9537 ldrh w2, [x19, 2] 9538 ldrh w1, [x19] 9539 ldr x0, [x24, #:lo12:.LANCHOR115] 9540 str x0, [x28, 8] 9541 ldr x0, [x25, #:lo12:.LANCHOR123] 9542 str x0, [x28, 16] 9543 orr w0, w2, w1, lsl 10 9544 str w0, [x28, 4] 9545 ldrh w0, [x20] 9546 sub w0, w0, #1 9547 cmp w2, w0 9548 blt .L1316 9549 ldrh w26, [x19, 4] 9550 strh wzr, [x19, 2] 9551 strh w1, [x19, 4] 9552 bl FtlFreeSysBlkQueueOut 9553 ldr w1, [x23, #:lo12:.LANCHOR70] 9554 str w1, [x19, 8] 9555 add w2, w1, 1 9556 str w2, [x23, #:lo12:.LANCHOR70] 9557 ubfiz w2, w0, 10, 16 9558 str w2, [x28, 4] 9559 strh w0, [x19] 9560 strh w0, [x27, 2] 9561 str w1, [x27, 4] 9562.L1316: 9563 mov w3, 1 9564 mov x0, x28 9565 mov w1, w3 9566 mov w2, w3 9567 bl FlashProgPages 9568 ldrh w0, [x19, 2] 9569 ldr w1, [x28] 9570 add w0, w0, 1 9571 and w0, w0, 65535 9572 strh w0, [x19, 2] 9573 cmn w1, #1 9574 bne .L1317 9575 cmp w0, 1 9576 bne .L1318 9577 adrp x1, .LANCHOR171 9578 adrp x0, .LC1 9579 mov w2, 1135 9580 add x1, x1, :lo12:.LANCHOR171 9581 add x0, x0, :lo12:.LC1 9582 bl printf 9583.L1318: 9584 ldrh w0, [x19, 2] 9585 cmp w0, 1 9586 bne .L1319 9587 ldr x0, [x29, 104] 9588 ldrh w0, [x0] 9589 sub w0, w0, #1 9590 strh w0, [x19, 2] 9591.L1319: 9592 add w21, w21, 1 9593 and w21, w21, 65535 9594 cmp w21, 3 9595 bls .L1315 9596 add x22, x22, :lo12:.LANCHOR148 9597 adrp x0, .LC109 9598 mov w2, w21 9599 add x0, x0, :lo12:.LC109 9600 ldr w1, [x22, 4] 9601 bl printf 9602.L1321: 9603 b .L1321 9604.L1317: 9605 cmp w0, 1 9606 beq .L1315 9607 cmp w1, 256 9608 beq .L1315 9609 mov w0, 65535 9610 cmp w26, w0 9611 beq .L1322 9612 mov w1, 1 9613 mov w0, w26 9614 bl FtlFreeSysBlkQueueIn 9615.L1322: 9616 ldp x19, x20, [sp, 16] 9617 mov w0, 0 9618 ldp x21, x22, [sp, 32] 9619 ldp x23, x24, [sp, 48] 9620 ldp x25, x26, [sp, 64] 9621 ldp x27, x28, [sp, 80] 9622 ldp x29, x30, [sp], 112 9623 ret 9624 .size FtlVpcTblFlush, .-FtlVpcTblFlush 9625 .section .text.FtlSysFlush,"ax",@progbits 9626 .align 2 9627 .global FtlSysFlush 9628 .type FtlSysFlush, %function 9629FtlSysFlush: 9630 stp x29, x30, [sp, -16]! 9631 add x29, sp, 0 9632 bl l2p_flush 9633 mov w0, 1 9634 bl FtlEctTblFlush 9635 bl FtlVpcTblFlush 9636 mov w0, 0 9637 ldp x29, x30, [sp], 16 9638 ret 9639 .size FtlSysFlush, .-FtlSysFlush 9640 .section .text.sftl_deinit,"ax",@progbits 9641 .align 2 9642 .global sftl_deinit 9643 .type sftl_deinit, %function 9644sftl_deinit: 9645 adrp x0, .LANCHOR86 9646 ldr w0, [x0, #:lo12:.LANCHOR86] 9647 cmp w0, 1 9648 bne .L1335 9649 stp x29, x30, [sp, -16]! 9650 add x29, sp, 0 9651 bl FtlSysFlush 9652 mov w0, 0 9653 ldp x29, x30, [sp], 16 9654 ret 9655.L1335: 9656 mov w0, 0 9657 ret 9658 .size sftl_deinit, .-sftl_deinit 9659 .section .text.FtlDiscard,"ax",@progbits 9660 .align 2 9661 .global FtlDiscard 9662 .type FtlDiscard, %function 9663FtlDiscard: 9664 stp x29, x30, [sp, -80]! 9665 add w2, w0, w1 9666 add x29, sp, 0 9667 stp x19, x20, [sp, 16] 9668 mov w19, w1 9669 adrp x1, .LANCHOR34 9670 stp x21, x22, [sp, 32] 9671 str x23, [sp, 48] 9672 ldr w1, [x1, #:lo12:.LANCHOR34] 9673 cmp w2, w1 9674 bhi .L1346 9675 cmp w19, 31 9676 bhi .L1340 9677.L1354: 9678 mov w0, 0 9679.L1338: 9680 ldp x19, x20, [sp, 16] 9681 ldp x21, x22, [sp, 32] 9682 ldr x23, [sp, 48] 9683 ldp x29, x30, [sp], 80 9684 ret 9685.L1340: 9686 adrp x21, .LANCHOR12 9687 ldrh w1, [x21, #:lo12:.LANCHOR12] 9688 udiv w20, w0, w1 9689 msub w0, w1, w20, w0 9690 ands w0, w0, 65535 9691 beq .L1341 9692 sub w1, w1, w0 9693 add w20, w20, 1 9694 cmp w1, w19 9695 csel w1, w1, w19, ls 9696 sub w19, w19, w1, uxth 9697.L1341: 9698 adrp x22, .LANCHOR172 9699 adrp x23, .LANCHOR63 9700 add x22, x22, :lo12:.LANCHOR172 9701 add x23, x23, :lo12:.LANCHOR63 9702 mov w0, -1 9703 str w0, [x29, 76] 9704.L1342: 9705 ldrh w0, [x21, #:lo12:.LANCHOR12] 9706 cmp w19, w0 9707 bcs .L1344 9708 adrp x0, .LANCHOR172 9709 ldr w1, [x0, #:lo12:.LANCHOR172] 9710 cmp w1, 32 9711 bls .L1354 9712 str wzr, [x0, #:lo12:.LANCHOR172] 9713 bl l2p_flush 9714 bl FtlVpcTblFlush 9715 b .L1354 9716.L1344: 9717 mov w2, 0 9718 add x1, x29, 72 9719 mov w0, w20 9720 bl log2phys 9721 ldr w0, [x29, 72] 9722 cmn w0, #1 9723 beq .L1343 9724 ldr w0, [x22] 9725 mov w2, 1 9726 add x1, x29, 76 9727 add w0, w0, 1 9728 str w0, [x22] 9729 ldr w0, [x23] 9730 add w0, w0, 1 9731 str w0, [x23] 9732 mov w0, w20 9733 bl log2phys 9734 ldr w0, [x29, 72] 9735 lsr w0, w0, 10 9736 bl P2V_block_in_plane 9737 bl decrement_vpc_count 9738.L1343: 9739 ldrh w0, [x21, #:lo12:.LANCHOR12] 9740 add w20, w20, 1 9741 sub w19, w19, w0 9742 b .L1342 9743.L1346: 9744 mov w0, -1 9745 b .L1338 9746 .size FtlDiscard, .-FtlDiscard 9747 .section .text.FtlVpcCheckAndModify,"ax",@progbits 9748 .align 2 9749 .global FtlVpcCheckAndModify 9750 .type FtlVpcCheckAndModify, %function 9751FtlVpcCheckAndModify: 9752 stp x29, x30, [sp, -96]! 9753 adrp x1, .LANCHOR173 9754 adrp x0, .LC94 9755 add x1, x1, :lo12:.LANCHOR173 9756 add x29, sp, 0 9757 stp x19, x20, [sp, 16] 9758 add x0, x0, :lo12:.LC94 9759 stp x23, x24, [sp, 48] 9760 adrp x24, .LANCHOR128 9761 stp x21, x22, [sp, 32] 9762 adrp x20, .LANCHOR61 9763 str x25, [sp, 64] 9764 bl printf 9765 adrp x0, .LANCHOR6 9766 mov w19, 0 9767 add x20, x20, :lo12:.LANCHOR61 9768 mov w1, 0 9769 ldrh w2, [x0, #:lo12:.LANCHOR6] 9770 ldr x0, [x24, #:lo12:.LANCHOR128] 9771 lsl w2, w2, 1 9772 bl ftl_memset 9773.L1356: 9774 ldr w0, [x20] 9775 cmp w19, w0 9776 bcc .L1358 9777 adrp x21, .LANCHOR5 9778 adrp x22, .LC110 9779 add x21, x21, :lo12:.LANCHOR5 9780 add x22, x22, :lo12:.LC110 9781 mov w19, 0 9782 adrp x25, .LANCHOR42 9783 mov w23, 65535 9784.L1359: 9785 ldrh w0, [x21] 9786 cmp w0, w19 9787 bhi .L1364 9788 bl l2p_flush 9789 bl FtlVpcTblFlush 9790 ldr x25, [sp, 64] 9791 ldp x19, x20, [sp, 16] 9792 ldp x21, x22, [sp, 32] 9793 ldp x23, x24, [sp, 48] 9794 ldp x29, x30, [sp], 96 9795 ret 9796.L1358: 9797 mov w2, 0 9798 add x1, x29, 92 9799 mov w0, w19 9800 bl log2phys 9801 ldr w0, [x29, 92] 9802 cmn w0, #1 9803 beq .L1357 9804 lsr w0, w0, 10 9805 bl P2V_block_in_plane 9806 ldr x2, [x24, #:lo12:.LANCHOR128] 9807 ubfiz x0, x0, 1, 16 9808 ldrh w1, [x2, x0] 9809 add w1, w1, 1 9810 strh w1, [x2, x0] 9811.L1357: 9812 add w19, w19, 1 9813 b .L1356 9814.L1364: 9815 ldr x0, [x25, #:lo12:.LANCHOR42] 9816 ubfiz x20, x19, 1, 16 9817 ldrh w2, [x0, x20] 9818 ldr x0, [x24, #:lo12:.LANCHOR128] 9819 ldrh w3, [x0, x20] 9820 cmp w2, w3 9821 beq .L1361 9822 cmp w2, w23 9823 beq .L1361 9824 mov w1, w19 9825 mov x0, x22 9826 bl printf 9827 adrp x0, .LANCHOR51 9828 ldrh w0, [x0, #:lo12:.LANCHOR51] 9829 cmp w0, w19 9830 beq .L1361 9831 adrp x0, .LANCHOR53 9832 ldrh w0, [x0, #:lo12:.LANCHOR53] 9833 cmp w0, w19 9834 beq .L1361 9835 adrp x0, .LANCHOR52 9836 ldrh w0, [x0, #:lo12:.LANCHOR52] 9837 cmp w0, w19 9838 beq .L1361 9839 ldr x0, [x25, #:lo12:.LANCHOR42] 9840 ldrh w1, [x0, x20] 9841 cbnz w1, .L1363 9842 ldr x1, [x24, #:lo12:.LANCHOR128] 9843 ldrh w1, [x1, x20] 9844 strh w1, [x0, x20] 9845.L1361: 9846 add w19, w19, 1 9847 and w19, w19, 65535 9848 b .L1359 9849.L1363: 9850 ldr x1, [x24, #:lo12:.LANCHOR128] 9851 ldrh w1, [x1, x20] 9852 strh w1, [x0, x20] 9853 mov w0, w19 9854 bl update_vpc_list 9855 b .L1361 9856 .size FtlVpcCheckAndModify, .-FtlVpcCheckAndModify 9857 .section .text.allocate_new_data_superblock,"ax",@progbits 9858 .align 2 9859 .global allocate_new_data_superblock 9860 .type allocate_new_data_superblock, %function 9861allocate_new_data_superblock: 9862 stp x29, x30, [sp, -48]! 9863 add x29, sp, 0 9864 stp x19, x20, [sp, 16] 9865 ldrh w19, [x0] 9866 str x21, [sp, 32] 9867 mov x21, x0 9868 adrp x0, .LANCHOR5 9869 ldrh w0, [x0, #:lo12:.LANCHOR5] 9870 cmp w0, w19 9871 bcs .L1370 9872 adrp x1, .LANCHOR174 9873 adrp x0, .LC1 9874 mov w2, 2714 9875 add x1, x1, :lo12:.LANCHOR174 9876 add x0, x0, :lo12:.LC1 9877 bl printf 9878.L1370: 9879 mov w0, 65535 9880 cmp w19, w0 9881 beq .L1371 9882 adrp x1, .LANCHOR42 9883 ubfiz x0, x19, 1, 16 9884 ldr x1, [x1, #:lo12:.LANCHOR42] 9885 ldrh w0, [x1, x0] 9886 cbz w0, .L1372 9887 mov w0, w19 9888 bl INSERT_DATA_LIST 9889.L1371: 9890 adrp x1, .LANCHOR142 9891 mov w0, 1 9892 strb w0, [x21, 8] 9893 mov w2, 65535 9894 ldrh w0, [x1, #:lo12:.LANCHOR142] 9895 mov x20, x1 9896 cmp w0, w2 9897 beq .L1373 9898 cmp w19, w0 9899 bne .L1374 9900 adrp x2, .LANCHOR42 9901 ubfiz x1, x0, 1, 16 9902 ldr x2, [x2, #:lo12:.LANCHOR42] 9903 ldrh w1, [x2, x1] 9904 cbz w1, .L1375 9905.L1374: 9906 bl update_vpc_list 9907.L1375: 9908 mov w0, -1 9909 strh w0, [x20, #:lo12:.LANCHOR142] 9910.L1373: 9911 mov x0, x21 9912 bl allocate_data_superblock 9913 bl l2p_flush 9914 mov w0, 0 9915 bl FtlEctTblFlush 9916 bl FtlVpcTblFlush 9917 ldr x21, [sp, 32] 9918 mov w0, 0 9919 ldp x19, x20, [sp, 16] 9920 ldp x29, x30, [sp], 48 9921 ret 9922.L1372: 9923 mov w0, w19 9924 bl INSERT_FREE_LIST 9925 b .L1371 9926 .size allocate_new_data_superblock, .-allocate_new_data_superblock 9927 .section .text.FtlProgPages,"ax",@progbits 9928 .align 2 9929 .global FtlProgPages 9930 .type FtlProgPages, %function 9931FtlProgPages: 9932 stp x29, x30, [sp, -96]! 9933 mov w2, 0 9934 add x29, sp, 0 9935 stp x19, x20, [sp, 16] 9936 mov x19, x3 9937 stp x23, x24, [sp, 48] 9938 add x20, x0, 4 9939 stp x21, x22, [sp, 32] 9940 mov w21, w1 9941 str x25, [sp, 64] 9942 ubfiz x21, x21, 5, 32 9943 add x21, x21, 4 9944 adrp x24, .LANCHOR19 9945 ldrb w3, [x3, 9] 9946 adrp x23, .LANCHOR81 9947 add x21, x0, x21 9948 add x24, x24, :lo12:.LANCHOR19 9949 add x23, x23, :lo12:.LANCHOR81 9950 bl FlashProgPages 9951.L1381: 9952 cmp x20, x21 9953 beq .L1388 9954 sub x22, x20, #4 9955 adrp x25, .LANCHOR42 9956 b .L1389 9957.L1384: 9958 ldr w0, [x20] 9959 lsr w0, w0, 10 9960 bl P2V_block_in_plane 9961 ldrh w1, [x19] 9962 cmp w1, w0, uxth 9963 bne .L1382 9964 ldr x2, [x25, #:lo12:.LANCHOR42] 9965 ubfiz x1, x1, 1, 16 9966 ldrh w3, [x19, 4] 9967 ldrh w0, [x2, x1] 9968 sub w0, w0, w3 9969 strh w0, [x2, x1] 9970 strb wzr, [x19, 6] 9971 ldrh w0, [x24] 9972 strh w0, [x19, 2] 9973 strh wzr, [x19, 4] 9974.L1382: 9975 ldrh w0, [x19, 4] 9976 cbnz w0, .L1383 9977 mov x0, x19 9978 bl allocate_new_data_superblock 9979.L1383: 9980 ldr w0, [x23, 96] 9981 add w0, w0, 1 9982 str w0, [x23, 96] 9983 ldr w0, [x20] 9984 lsr w0, w0, 10 9985 bl FtlGcMarkBadPhyBlk 9986 mov x0, x19 9987 bl get_new_active_ppa 9988 str w0, [x20] 9989 mov w2, 0 9990 str w0, [x29, 92] 9991 mov w1, 1 9992 ldrb w3, [x19, 9] 9993 mov x0, x22 9994 bl FlashProgPages 9995.L1389: 9996 ldr w0, [x20, -4] 9997 cmn w0, #1 9998 beq .L1384 9999 adrp x0, .LANCHOR3 10000 ldrb w1, [x19, 6] 10001 ldrh w0, [x0, #:lo12:.LANCHOR3] 10002 cmp w1, w0 10003 bcc .L1385 10004 adrp x1, .LANCHOR175 10005 adrp x0, .LC1 10006 mov w2, 955 10007 add x1, x1, :lo12:.LANCHOR175 10008 add x0, x0, :lo12:.LC1 10009 bl printf 10010.L1385: 10011 add x1, x29, 96 10012 ldr w0, [x22, 4] 10013 mov w2, 1 10014 str w0, [x1, -4]! 10015 ldr w0, [x22, 24] 10016 bl log2phys 10017 ldr x0, [x22, 16] 10018 ldr w3, [x0, 12] 10019 lsr w0, w3, 10 10020 bl P2V_block_in_plane 10021 and w1, w0, 65535 10022 mov w22, w1 10023 cmn w3, #1 10024 beq .L1386 10025 adrp x2, .LANCHOR42 10026 ubfiz x0, x1, 1, 16 10027 ldr x2, [x2, #:lo12:.LANCHOR42] 10028 ldrh w0, [x2, x0] 10029 cbnz w0, .L1387 10030 adrp x0, .LC111 10031 mov w2, 0 10032 add x0, x0, :lo12:.LC111 10033 bl printf 10034.L1387: 10035 mov w0, w22 10036 bl decrement_vpc_count 10037.L1386: 10038 add x20, x20, 32 10039 b .L1381 10040.L1388: 10041 adrp x0, .LANCHOR3 10042 ldrb w1, [x19, 6] 10043 ldrh w0, [x0, #:lo12:.LANCHOR3] 10044 cmp w1, w0 10045 bcc .L1380 10046 adrp x1, .LANCHOR175 10047 adrp x0, .LC1 10048 mov w2, 970 10049 add x1, x1, :lo12:.LANCHOR175 10050 add x0, x0, :lo12:.LC1 10051 bl printf 10052.L1380: 10053 ldp x19, x20, [sp, 16] 10054 ldp x21, x22, [sp, 32] 10055 ldp x23, x24, [sp, 48] 10056 ldr x25, [sp, 64] 10057 ldp x29, x30, [sp], 96 10058 ret 10059 .size FtlProgPages, .-FtlProgPages 10060 .section .text.FtlGcFreeTempBlock,"ax",@progbits 10061 .align 2 10062 .global FtlGcFreeTempBlock 10063 .type FtlGcFreeTempBlock, %function 10064FtlGcFreeTempBlock: 10065 stp x29, x30, [sp, -112]! 10066 mov w2, 65535 10067 add x29, sp, 0 10068 stp x19, x20, [sp, 16] 10069 adrp x19, .LANCHOR53 10070 stp x21, x22, [sp, 32] 10071 adrp x21, .LANCHOR19 10072 ldrh w20, [x19, #:lo12:.LANCHOR53] 10073 stp x23, x24, [sp, 48] 10074 stp x25, x26, [sp, 64] 10075 cmp w20, w2 10076 str x27, [sp, 80] 10077 ldrh w1, [x21, #:lo12:.LANCHOR19] 10078 bne .L1396 10079.L1406: 10080 adrp x0, .LANCHOR144 10081 ldrh w2, [x19, #:lo12:.LANCHOR53] 10082 mov w1, 65535 10083 str wzr, [x0, #:lo12:.LANCHOR144] 10084 cmp w2, w1 10085 add x0, x19, :lo12:.LANCHOR53 10086 bne .L1419 10087.L1422: 10088 mov w0, 0 10089.L1395: 10090 ldp x19, x20, [sp, 16] 10091 ldp x21, x22, [sp, 32] 10092 ldp x23, x24, [sp, 48] 10093 ldp x25, x26, [sp, 64] 10094 ldr x27, [sp, 80] 10095 ldp x29, x30, [sp], 112 10096 ret 10097.L1396: 10098 cbz w0, .L1399 10099 adrp x0, .LANCHOR162 10100 ldrh w3, [x0, #:lo12:.LANCHOR162] 10101 cmp w3, w2 10102 beq .L1400 10103.L1401: 10104 mov w1, 2 10105.L1399: 10106 add x0, x19, :lo12:.LANCHOR53 10107 bl FtlGcScanTempBlk 10108 str w0, [x29, 108] 10109 cmn w0, #1 10110 beq .L1402 10111 adrp x0, .LANCHOR43 10112 ubfiz x20, x20, 1, 16 10113 ldr x1, [x0, #:lo12:.LANCHOR43] 10114 ldrh w0, [x1, x20] 10115 cmp w0, 4 10116 bls .L1403 10117 sub w0, w0, #5 10118 strh w0, [x1, x20] 10119 mov w0, 1 10120 bl FtlEctTblFlush 10121.L1403: 10122 adrp x0, .LANCHOR144 10123 mov x19, x0 10124 ldr w1, [x0, #:lo12:.LANCHOR144] 10125 cbnz w1, .L1404 10126 adrp x0, .LANCHOR81 10127 add x0, x0, :lo12:.LANCHOR81 10128 ldr w1, [x0, 96] 10129 add w1, w1, 1 10130 str w1, [x0, 96] 10131 ldr w0, [x29, 108] 10132 lsr w0, w0, 10 10133 bl FtlBbmMapBadBlock 10134 bl FtlBbmTblFlush 10135.L1404: 10136 str wzr, [x19, #:lo12:.LANCHOR144] 10137.L1415: 10138 mov w0, 1 10139 b .L1395 10140.L1400: 10141 strh wzr, [x0, #:lo12:.LANCHOR162] 10142 adrp x0, .LANCHOR48 10143 ldrh w0, [x0, #:lo12:.LANCHOR48] 10144 cmp w0, 17 10145 bhi .L1401 10146 b .L1399 10147.L1402: 10148 adrp x0, .LANCHOR162 10149 ldrh w1, [x0, #:lo12:.LANCHOR162] 10150 mov w0, 65535 10151 cmp w1, w0 10152 bne .L1415 10153 b .L1406 10154.L1419: 10155 ldrb w0, [x0, 7] 10156 adrp x20, .LANCHOR97 10157 ldrh w2, [x21, #:lo12:.LANCHOR19] 10158 ldrh w1, [x20, #:lo12:.LANCHOR97] 10159 mul w0, w0, w2 10160 cmp w1, w0 10161 beq .L1407 10162 adrp x1, .LANCHOR176 10163 adrp x0, .LC1 10164 mov w2, 162 10165 add x1, x1, :lo12:.LANCHOR176 10166 add x0, x0, :lo12:.LC1 10167 bl printf 10168.L1407: 10169 add x0, x19, :lo12:.LANCHOR53 10170 adrp x23, .LANCHOR42 10171 ldrh w3, [x21, #:lo12:.LANCHOR19] 10172 adrp x25, .LANCHOR61 10173 ldrh w2, [x19, #:lo12:.LANCHOR53] 10174 adrp x26, .LANCHOR176 10175 ldrb w0, [x0, 7] 10176 add x25, x25, :lo12:.LANCHOR61 10177 ldr x1, [x23, #:lo12:.LANCHOR42] 10178 add x26, x26, :lo12:.LANCHOR176 10179 mov w21, 0 10180 mul w0, w0, w3 10181 strh w0, [x1, x2, lsl 1] 10182 adrp x1, .LANCHOR67 10183 ldrh w0, [x20, #:lo12:.LANCHOR97] 10184 ldr w2, [x1, #:lo12:.LANCHOR67] 10185 add w0, w0, w2 10186 str w0, [x1, #:lo12:.LANCHOR67] 10187.L1408: 10188 ldrh w0, [x20, #:lo12:.LANCHOR97] 10189 cmp w0, w21 10190 bhi .L1412 10191 mov w0, -1 10192 bl decrement_vpc_count 10193 ldrh w0, [x19, #:lo12:.LANCHOR53] 10194 ldr x2, [x23, #:lo12:.LANCHOR42] 10195 ubfiz x1, x0, 1, 16 10196 ldrh w1, [x2, x1] 10197 cbz w1, .L1413 10198 bl INSERT_DATA_LIST 10199.L1414: 10200 adrp x0, .LANCHOR95 10201 mov w21, -1 10202 strh wzr, [x20, #:lo12:.LANCHOR97] 10203 strh w21, [x19, #:lo12:.LANCHOR53] 10204 strh wzr, [x0, #:lo12:.LANCHOR95] 10205 bl l2p_flush 10206 bl FtlVpcTblFlush 10207 adrp x0, .LANCHOR80 10208 strh w21, [x0, #:lo12:.LANCHOR80] 10209 adrp x0, .LANCHOR48 10210 ldrh w1, [x0, #:lo12:.LANCHOR48] 10211 adrp x0, .LANCHOR78 10212 ldrh w0, [x0, #:lo12:.LANCHOR78] 10213 add w0, w0, w0, lsl 1 10214 cmp w1, w0, lsr 2 10215 ble .L1422 10216 adrp x0, .LANCHOR82 10217 mov w1, 20 10218 strh w1, [x0, #:lo12:.LANCHOR82] 10219 b .L1422 10220.L1412: 10221 adrp x0, .LANCHOR98 10222 mov w24, 12 10223 ldr x27, [x0, #:lo12:.LANCHOR98] 10224 umull x24, w21, w24 10225 ldr w0, [x25] 10226 add x22, x27, x24 10227 ldr w1, [x22, 8] 10228 cmp w1, w0 10229 bcc .L1409 10230 adrp x0, .LC1 10231 mov w2, 168 10232 mov x1, x26 10233 add x0, x0, :lo12:.LC1 10234 bl printf 10235.L1409: 10236 ldr w0, [x22, 8] 10237 add x1, x29, 108 10238 mov w2, 0 10239 bl log2phys 10240 ldr w0, [x27, x24] 10241 ldr w1, [x29, 108] 10242 cmp w0, w1 10243 bne .L1410 10244 lsr w0, w0, 10 10245 bl P2V_block_in_plane 10246 mov w24, w0 10247 ldr w0, [x22, 8] 10248 mov w2, 1 10249 add x1, x22, 4 10250 bl log2phys 10251 mov w0, w24 10252.L1421: 10253 bl decrement_vpc_count 10254.L1411: 10255 add w21, w21, 1 10256 and w21, w21, 65535 10257 b .L1408 10258.L1410: 10259 ldr w0, [x22, 4] 10260 cmp w1, w0 10261 beq .L1411 10262 ldrh w0, [x19, #:lo12:.LANCHOR53] 10263 b .L1421 10264.L1413: 10265 bl INSERT_FREE_LIST 10266 b .L1414 10267 .size FtlGcFreeTempBlock, .-FtlGcFreeTempBlock 10268 .section .text.FtlGcPageRecovery,"ax",@progbits 10269 .align 2 10270 .global FtlGcPageRecovery 10271 .type FtlGcPageRecovery, %function 10272FtlGcPageRecovery: 10273 stp x29, x30, [sp, -32]! 10274 add x29, sp, 0 10275 stp x19, x20, [sp, 16] 10276 adrp x20, .LANCHOR19 10277 adrp x19, .LANCHOR53 10278 add x19, x19, :lo12:.LANCHOR53 10279 ldrh w1, [x20, #:lo12:.LANCHOR19] 10280 mov x0, x19 10281 bl FtlGcScanTempBlk 10282 ldrh w1, [x19, 2] 10283 ldrh w0, [x20, #:lo12:.LANCHOR19] 10284 cmp w1, w0 10285 bcc .L1423 10286 adrp x0, .LANCHOR140 10287 add x0, x0, :lo12:.LANCHOR140 10288 bl FtlMapBlkWriteDump_data 10289 mov w0, 0 10290 bl FtlGcFreeTempBlock 10291 adrp x0, .LANCHOR144 10292 str wzr, [x0, #:lo12:.LANCHOR144] 10293.L1423: 10294 ldp x19, x20, [sp, 16] 10295 ldp x29, x30, [sp], 32 10296 ret 10297 .size FtlGcPageRecovery, .-FtlGcPageRecovery 10298 .section .text.FtlPowerLostRecovery,"ax",@progbits 10299 .align 2 10300 .global FtlPowerLostRecovery 10301 .type FtlPowerLostRecovery, %function 10302FtlPowerLostRecovery: 10303 stp x29, x30, [sp, -32]! 10304 adrp x0, .LANCHOR168 10305 add x29, sp, 0 10306 str x19, [sp, 16] 10307 adrp x19, .LANCHOR51 10308 add x19, x19, :lo12:.LANCHOR51 10309 str wzr, [x0, #:lo12:.LANCHOR168] 10310 mov x0, x19 10311 bl FtlRecoverySuperblock 10312 mov x0, x19 10313 adrp x19, .LANCHOR52 10314 bl FtlSlcSuperblockCheck 10315 add x19, x19, :lo12:.LANCHOR52 10316 mov x0, x19 10317 bl FtlRecoverySuperblock 10318 mov x0, x19 10319 bl FtlSlcSuperblockCheck 10320 bl FtlGcPageRecovery 10321 mov w0, -1 10322 bl decrement_vpc_count 10323 mov w0, 0 10324 ldr x19, [sp, 16] 10325 ldp x29, x30, [sp], 32 10326 ret 10327 .size FtlPowerLostRecovery, .-FtlPowerLostRecovery 10328 .section .text.Ftl_gc_temp_data_write_back,"ax",@progbits 10329 .align 2 10330 .global Ftl_gc_temp_data_write_back 10331 .type Ftl_gc_temp_data_write_back, %function 10332Ftl_gc_temp_data_write_back: 10333 stp x29, x30, [sp, -32]! 10334 mov w3, 0 10335 mov w2, 0 10336 add x29, sp, 0 10337 stp x19, x20, [sp, 16] 10338 adrp x19, .LANCHOR89 10339 adrp x20, .LANCHOR113 10340 ldr w1, [x19, #:lo12:.LANCHOR89] 10341 add x19, x19, :lo12:.LANCHOR89 10342 ldr x0, [x20, #:lo12:.LANCHOR113] 10343 bl FlashProgPages 10344 mov w11, 0 10345.L1429: 10346 ldr w1, [x19] 10347 cmp w11, w1 10348 bcc .L1432 10349 ldr x0, [x20, #:lo12:.LANCHOR113] 10350 bl FtlGcBufFree 10351 str wzr, [x19] 10352 adrp x0, .LANCHOR53+4 10353 ldrh w0, [x0, #:lo12:.LANCHOR53+4] 10354 cbnz w0, .L1433 10355 mov w0, 1 10356 bl FtlGcFreeTempBlock 10357 b .L1435 10358.L1432: 10359 ldr x2, [x20, #:lo12:.LANCHOR113] 10360 ubfiz x0, x11, 5, 16 10361 add x1, x2, x0 10362 ldr w2, [x2, x0] 10363 cmn w2, #1 10364 bne .L1430 10365 adrp x0, .LANCHOR53 10366 adrp x3, .LANCHOR42 10367 ldrh w4, [x0, #:lo12:.LANCHOR53] 10368 ldr x3, [x3, #:lo12:.LANCHOR42] 10369 strh wzr, [x3, x4, lsl 1] 10370 strh w2, [x0, #:lo12:.LANCHOR53] 10371 adrp x0, .LANCHOR81 10372 add x0, x0, :lo12:.LANCHOR81 10373 ldr w2, [x0, 96] 10374 add w2, w2, 1 10375 str w2, [x0, 96] 10376 ldr w0, [x1, 4] 10377 lsr w0, w0, 10 10378 bl FtlBbmMapBadBlock 10379 bl FtlBbmTblFlush 10380 bl FtlGcPageVarInit 10381.L1435: 10382 mov w0, 1 10383.L1428: 10384 ldp x19, x20, [sp, 16] 10385 ldp x29, x30, [sp], 32 10386 ret 10387.L1430: 10388 ldr x0, [x1, 16] 10389 ldr w1, [x1, 4] 10390 ldp w2, w0, [x0, 8] 10391 bl FtlGcUpdatePage 10392 add w11, w11, 1 10393 and w11, w11, 65535 10394 b .L1429 10395.L1433: 10396 mov w0, 0 10397 b .L1428 10398 .size Ftl_gc_temp_data_write_back, .-Ftl_gc_temp_data_write_back 10399 .section .text.Ftl_get_new_temp_ppa,"ax",@progbits 10400 .align 2 10401 .global Ftl_get_new_temp_ppa 10402 .type Ftl_get_new_temp_ppa, %function 10403Ftl_get_new_temp_ppa: 10404 stp x29, x30, [sp, -32]! 10405 adrp x0, .LANCHOR53 10406 mov w2, 65535 10407 add x29, sp, 0 10408 str x19, [sp, 16] 10409 mov x19, x0 10410 ldrh w3, [x0, #:lo12:.LANCHOR53] 10411 cmp w3, w2 10412 beq .L1437 10413 add x1, x0, :lo12:.LANCHOR53 10414 ldrh w0, [x1, 4] 10415 cbnz w0, .L1438 10416.L1437: 10417 mov w0, 0 10418 bl FtlGcFreeTempBlock 10419 add x0, x19, :lo12:.LANCHOR53 10420 strb wzr, [x0, 8] 10421 bl allocate_data_superblock 10422 adrp x0, .LANCHOR95 10423 strh wzr, [x0, #:lo12:.LANCHOR95] 10424 adrp x0, .LANCHOR97 10425 strh wzr, [x0, #:lo12:.LANCHOR97] 10426 bl l2p_flush 10427 mov w0, 0 10428 bl FtlEctTblFlush 10429 bl FtlVpcTblFlush 10430.L1438: 10431 add x0, x19, :lo12:.LANCHOR53 10432 ldr x19, [sp, 16] 10433 ldp x29, x30, [sp], 32 10434 b get_new_active_ppa 10435 .size Ftl_get_new_temp_ppa, .-Ftl_get_new_temp_ppa 10436 .section .text.FtlSysBlkInit,"ax",@progbits 10437 .align 2 10438 .global FtlSysBlkInit 10439 .type FtlSysBlkInit, %function 10440FtlSysBlkInit: 10441 stp x29, x30, [sp, -64]! 10442 adrp x0, .LANCHOR4 10443 add x29, sp, 0 10444 ldrh w0, [x0, #:lo12:.LANCHOR4] 10445 stp x19, x20, [sp, 16] 10446 adrp x20, .LANCHOR167 10447 stp x21, x22, [sp, 32] 10448 stp x23, x24, [sp, 48] 10449 strh wzr, [x20, #:lo12:.LANCHOR167] 10450 bl FtlFreeSysBlkQueueInit 10451 bl FtlScanSysBlk 10452 adrp x0, .LANCHOR79 10453 ldrh w1, [x0, #:lo12:.LANCHOR79] 10454 mov w0, 65535 10455 cmp w1, w0 10456 bne .L1441 10457.L1443: 10458 mov w23, -1 10459.L1440: 10460 mov w0, w23 10461 ldp x19, x20, [sp, 16] 10462 ldp x21, x22, [sp, 32] 10463 ldp x23, x24, [sp, 48] 10464 ldp x29, x30, [sp], 64 10465 ret 10466.L1441: 10467 bl FtlLoadSysInfo 10468 mov w23, w0 10469 cbnz w0, .L1443 10470 bl FtlLoadMapInfo 10471 bl FtlLoadVonderInfo 10472 bl Ftl_load_ext_data 10473 bl FtlLoadEctTbl 10474 bl FtlFreeSysBLkSort 10475 bl SupperBlkListInit 10476 bl FtlPowerLostRecovery 10477 mov w0, 1 10478 bl FtlUpdateVaildLpn 10479 adrp x0, .LANCHOR33 10480 mov w1, 0 10481 ldrh w3, [x0, #:lo12:.LANCHOR33] 10482 adrp x0, .LANCHOR55 10483 ldr x0, [x0, #:lo12:.LANCHOR55] 10484 add x0, x0, 4 10485.L1444: 10486 cmp w1, w3 10487 bge .L1449 10488 ldr w2, [x0], 16 10489 tbz w2, #31, .L1445 10490.L1449: 10491 adrp x0, .LANCHOR39 10492 add x4, x0, :lo12:.LANCHOR39 10493 cmp w1, w3 10494 mov x19, x0 10495 adrp x22, .LANCHOR51 10496 ldrh w2, [x4, 28] 10497 add w2, w2, 1 10498 strh w2, [x4, 28] 10499 bge .L1454 10500.L1446: 10501 add x21, x22, :lo12:.LANCHOR51 10502 adrp x24, .LANCHOR52 10503 mov x0, x21 10504 add x20, x24, :lo12:.LANCHOR52 10505 bl FtlSuperblockPowerLostFix 10506 mov x0, x20 10507 bl FtlSuperblockPowerLostFix 10508 adrp x0, .LANCHOR42 10509 ldrh w3, [x21, 4] 10510 ldr x1, [x0, #:lo12:.LANCHOR42] 10511 ldrh w0, [x22, #:lo12:.LANCHOR51] 10512 lsl x0, x0, 1 10513 ldrh w2, [x1, x0] 10514 sub w2, w2, w3 10515 adrp x3, .LANCHOR19 10516 strh w2, [x1, x0] 10517 strb wzr, [x21, 6] 10518 ldrh w0, [x3, #:lo12:.LANCHOR19] 10519 strh w0, [x21, 2] 10520 ldrh w0, [x24, #:lo12:.LANCHOR52] 10521 strh wzr, [x21, 4] 10522 ldrh w4, [x20, 4] 10523 lsl x0, x0, 1 10524 ldrh w2, [x1, x0] 10525 sub w2, w2, w4 10526 strh w2, [x1, x0] 10527 strb wzr, [x20, 6] 10528 ldrh w0, [x3, #:lo12:.LANCHOR19] 10529 strh w0, [x20, 2] 10530 add x0, x19, :lo12:.LANCHOR39 10531 strh wzr, [x20, 4] 10532 ldrh w1, [x0, 30] 10533 add w1, w1, 1 10534 strh w1, [x0, 30] 10535 bl l2p_flush 10536 bl FtlVpcTblFlush 10537 bl FtlVpcTblFlush 10538 b .L1450 10539.L1445: 10540 add w1, w1, 1 10541 b .L1444 10542.L1454: 10543 ldrh w0, [x20, #:lo12:.LANCHOR167] 10544 cbnz w0, .L1446 10545.L1450: 10546 bl FtlVpcCheckAndModify 10547 add x20, x22, :lo12:.LANCHOR51 10548 ldrh w0, [x22, #:lo12:.LANCHOR51] 10549 mov w1, 65535 10550 cmp w0, w1 10551 beq .L1440 10552 ldrh w1, [x20, 4] 10553 cbnz w1, .L1440 10554 adrp x21, .LANCHOR52 10555 add x19, x21, :lo12:.LANCHOR52 10556 ldrh w1, [x19, 4] 10557 cbnz w1, .L1440 10558 bl FtlGcRefreshBlock 10559 ldrh w0, [x21, #:lo12:.LANCHOR52] 10560 bl FtlGcRefreshBlock 10561 bl FtlVpcTblFlush 10562 mov x0, x20 10563 bl allocate_new_data_superblock 10564 mov x0, x19 10565 bl allocate_new_data_superblock 10566 b .L1440 10567 .size FtlSysBlkInit, .-FtlSysBlkInit 10568 .section .text.rk_ftl_garbage_collect,"ax",@progbits 10569 .align 2 10570 .global rk_ftl_garbage_collect 10571 .type rk_ftl_garbage_collect, %function 10572rk_ftl_garbage_collect: 10573 stp x29, x30, [sp, -176]! 10574 adrp x1, .LANCHOR108 10575 add x29, sp, 0 10576 ldr w2, [x1, #:lo12:.LANCHOR108] 10577 stp x19, x20, [sp, 16] 10578 stp x21, x22, [sp, 32] 10579 stp x23, x24, [sp, 48] 10580 stp x25, x26, [sp, 64] 10581 stp x27, x28, [sp, 80] 10582 str x1, [x29, 144] 10583 cbnz w2, .L1529 10584 adrp x1, .LANCHOR45 10585 ldrh w1, [x1, #:lo12:.LANCHOR45] 10586 cmp w1, 47 10587 bls .L1529 10588 str w0, [x29, 152] 10589 adrp x0, .LANCHOR162 10590 ldrh w1, [x0, #:lo12:.LANCHOR162] 10591 mov w0, 65535 10592 cmp w1, w0 10593 bne .L1458 10594.L1461: 10595 adrp x0, .LANCHOR100 10596 mov w3, 65535 10597 ldrh w2, [x0, #:lo12:.LANCHOR100] 10598 cmp w2, w3 10599 bne .L1459 10600.L1460: 10601 bl FtlReadRefresh 10602 adrp x19, .LANCHOR80 10603 adrp x2, .LANCHOR84 10604 ldr w1, [x29, 152] 10605 mov w21, 65535 10606 ldr w0, [x2, #:lo12:.LANCHOR84] 10607 add w0, w0, 1 10608 add w0, w0, w1, lsl 7 10609 ldrh w1, [x19, #:lo12:.LANCHOR80] 10610 str w0, [x2, #:lo12:.LANCHOR84] 10611 cmp w1, w21 10612 bne .L1462 10613 adrp x3, .LANCHOR53 10614 ldrh w21, [x3, #:lo12:.LANCHOR53] 10615 cmp w21, w1 10616 bne .L1532 10617 adrp x1, .LANCHOR99 10618 ldrh w20, [x1, #:lo12:.LANCHOR99] 10619 cmp w20, w21 10620 bne .L1462 10621 adrp x22, .LANCHOR48 10622 mov w3, 1024 10623 ldrh w1, [x22, #:lo12:.LANCHOR48] 10624 cmp w1, 24 10625 mov w1, 5120 10626 csel w1, w1, w3, cc 10627 cmp w0, w1 10628 bls .L1535 10629 adrp x0, .LANCHOR177 10630 str wzr, [x2, #:lo12:.LANCHOR84] 10631 strh wzr, [x0, #:lo12:.LANCHOR177] 10632 bl GetSwlReplaceBlock 10633 and w21, w0, 65535 10634 cmp w21, w20 10635 bne .L1536 10636 adrp x5, .LANCHOR83 10637 ldrh w1, [x22, #:lo12:.LANCHOR48] 10638 ldrh w0, [x5, #:lo12:.LANCHOR83] 10639 cmp w1, w0 10640 bcs .L1465 10641 mov w0, 64 10642 bl List_get_gc_head_node 10643 and w0, w0, 65535 10644 cmp w0, w21 10645 beq .L1467 10646 adrp x1, .LANCHOR42 10647 ubfiz x0, x0, 1, 16 10648 ldr x1, [x1, #:lo12:.LANCHOR42] 10649 ldrh w0, [x1, x0] 10650 cmp w0, 7 10651 bhi .L1468 10652 mov w0, 0 10653 bl List_get_gc_head_node 10654 and w20, w0, 65535 10655 mov w0, 128 10656 strh w0, [x5, #:lo12:.LANCHOR83] 10657 cmp w20, w21 10658 bne .L1464 10659.L1467: 10660 bl FtlGcReFreshBadBlk 10661.L1462: 10662 ldr w1, [x29, 152] 10663 mov w0, 65535 10664 cmp w1, 0 10665 ccmp w21, w0, 0, eq 10666 bne .L1470 10667 adrp x0, .LANCHOR48 10668 ldrh w0, [x0, #:lo12:.LANCHOR48] 10669 cmp w0, 24 10670 bhi .L1537 10671 adrp x1, .LANCHOR19 10672 cmp w0, 16 10673 ldrh w20, [x1, #:lo12:.LANCHOR19] 10674 bls .L1472 10675 lsr w20, w20, 5 10676.L1471: 10677 adrp x2, .LANCHOR82 10678 mov x3, x2 10679 ldrh w1, [x2, #:lo12:.LANCHOR82] 10680 cmp w1, w0 10681 bcs .L1475 10682 adrp x0, .LANCHOR53 10683 mov w1, 65535 10684 ldrh w0, [x0, #:lo12:.LANCHOR53] 10685 cmp w0, w1 10686 bne .L1476 10687 adrp x1, .LANCHOR99 10688 ldrh w1, [x1, #:lo12:.LANCHOR99] 10689 cmp w1, w0 10690 bne .L1476 10691 adrp x0, .LANCHOR177 10692 ldrh w0, [x0, #:lo12:.LANCHOR177] 10693 cbnz w0, .L1477 10694 adrp x1, .LANCHOR61 10695 adrp x4, .LANCHOR59 10696 ldr w1, [x1, #:lo12:.LANCHOR61] 10697 ldr w4, [x4, #:lo12:.LANCHOR59] 10698 add w1, w1, w1, lsl 1 10699 cmp w4, w1, lsr 2 10700 bcs .L1478 10701.L1477: 10702 adrp x1, .LANCHOR78 10703 ldrh w1, [x1, #:lo12:.LANCHOR78] 10704 add w1, w1, w1, lsl 1 10705 asr w1, w1, 2 10706 strh w1, [x3, #:lo12:.LANCHOR82] 10707.L1479: 10708 adrp x1, .LANCHOR87 10709 str wzr, [x1, #:lo12:.LANCHOR87] 10710.L1456: 10711 ldp x19, x20, [sp, 16] 10712 ldp x21, x22, [sp, 32] 10713 ldp x23, x24, [sp, 48] 10714 ldp x25, x26, [sp, 64] 10715 ldp x27, x28, [sp, 80] 10716 ldp x29, x30, [sp], 176 10717 ret 10718.L1458: 10719 adrp x1, .LANCHOR53 10720 ldrh w1, [x1, #:lo12:.LANCHOR53] 10721 cmp w1, w0 10722 beq .L1461 10723 mov w0, 1 10724 bl FtlGcFreeTempBlock 10725 cbz w0, .L1461 10726 mov w0, 1 10727 b .L1456 10728.L1459: 10729 adrp x1, .LANCHOR99 10730 ldrh w4, [x1, #:lo12:.LANCHOR99] 10731 cmp w4, w3 10732 bne .L1460 10733 strh w2, [x1, #:lo12:.LANCHOR99] 10734 mov w1, -1 10735 strh w1, [x0, #:lo12:.LANCHOR100] 10736 b .L1460 10737.L1468: 10738 mov w0, 64 10739.L1564: 10740 strh w0, [x5, #:lo12:.LANCHOR83] 10741 b .L1467 10742.L1465: 10743 mov w0, 80 10744 b .L1564 10745.L1536: 10746 mov w20, w21 10747.L1464: 10748 adrp x1, .LANCHOR43 10749 ubfiz x0, x20, 1, 32 10750 adrp x3, .LANCHOR82 10751 mov w21, w20 10752 ldr x2, [x1, #:lo12:.LANCHOR43] 10753 adrp x1, .LANCHOR42 10754 ldrh w5, [x3, #:lo12:.LANCHOR82] 10755 ldr x1, [x1, #:lo12:.LANCHOR42] 10756 ldrh w4, [x2, x0] 10757 ldrh w2, [x22, #:lo12:.LANCHOR48] 10758 ldrh w3, [x1, x0] 10759 mov w1, w20 10760 adrp x0, .LC112 10761 add x0, x0, :lo12:.LC112 10762 bl printf 10763 b .L1467 10764.L1532: 10765 mov w21, w1 10766 b .L1462 10767.L1535: 10768 mov w21, w20 10769 b .L1462 10770.L1472: 10771 cmp w0, 12 10772 bls .L1473 10773 lsr w20, w20, 4 10774 b .L1471 10775.L1473: 10776 cmp w0, 8 10777 bls .L1471 10778 lsr w20, w20, 2 10779 b .L1471 10780.L1537: 10781 mov w20, 1 10782 b .L1471 10783.L1478: 10784 mov w1, 18 10785 strh w1, [x2, #:lo12:.LANCHOR82] 10786 b .L1479 10787.L1476: 10788 adrp x0, .LANCHOR78 10789 ldrh w0, [x0, #:lo12:.LANCHOR78] 10790 add w0, w0, w0, lsl 1 10791 asr w0, w0, 2 10792 strh w0, [x3, #:lo12:.LANCHOR82] 10793.L1475: 10794 adrp x0, .LANCHOR101 10795 ldrh w0, [x0, #:lo12:.LANCHOR101] 10796 cbz w0, .L1538 10797 add w20, w20, 32 10798 and w20, w20, 65535 10799.L1538: 10800 mov w21, 65535 10801.L1481: 10802 ldrh w0, [x19, #:lo12:.LANCHOR80] 10803 mov w1, 65535 10804 cmp w0, w1 10805 bne .L1490 10806 cmp w21, w0 10807 beq .L1491 10808 strh w21, [x19, #:lo12:.LANCHOR80] 10809.L1492: 10810 add x0, x19, :lo12:.LANCHOR80 10811 mov w1, 65535 10812 strb wzr, [x0, 8] 10813 ldrh w0, [x19, #:lo12:.LANCHOR80] 10814 cmp w0, w1 10815 beq .L1490 10816 bl IsBlkInGcList 10817 cbz w0, .L1495 10818 mov w0, -1 10819 strh w0, [x19, #:lo12:.LANCHOR80] 10820.L1495: 10821 ldrh w1, [x19, #:lo12:.LANCHOR80] 10822 mov w0, 65535 10823 add x22, x19, :lo12:.LANCHOR80 10824 cmp w1, w0 10825 beq .L1490 10826 mov x0, x22 10827 bl make_superblock 10828 adrp x0, .LANCHOR178 10829 ldrh w1, [x19, #:lo12:.LANCHOR80] 10830 strh wzr, [x22, 2] 10831 strh wzr, [x0, #:lo12:.LANCHOR178] 10832 adrp x0, .LANCHOR42 10833 strb wzr, [x22, 6] 10834 ldr x0, [x0, #:lo12:.LANCHOR42] 10835 ldrh w1, [x0, x1, lsl 1] 10836 adrp x0, .LANCHOR179 10837 strh w1, [x0, #:lo12:.LANCHOR179] 10838.L1490: 10839 adrp x1, .LANCHOR51 10840 ldrh w0, [x19, #:lo12:.LANCHOR80] 10841 str x1, [x29, 120] 10842 ldrh w2, [x1, #:lo12:.LANCHOR51] 10843 cmp w2, w0 10844 beq .L1496 10845 adrp x1, .LANCHOR52 10846 ldrh w1, [x1, #:lo12:.LANCHOR52] 10847 cmp w1, w0 10848 bne .L1497 10849.L1496: 10850 mov w0, -1 10851 strh w0, [x19, #:lo12:.LANCHOR80] 10852.L1497: 10853 adrp x25, .LANCHOR85 10854 add x26, x25, :lo12:.LANCHOR85 10855.L1526: 10856 ldrh w1, [x19, #:lo12:.LANCHOR80] 10857 mov w0, 65535 10858 cmp w1, w0 10859 bne .L1498 10860 adrp x0, .LANCHOR87 10861 adrp x22, .LANCHOR19 10862 add x22, x22, :lo12:.LANCHOR19 10863 str wzr, [x0, #:lo12:.LANCHOR87] 10864.L1499: 10865 ldrh w5, [x25, #:lo12:.LANCHOR85] 10866 add x7, x25, :lo12:.LANCHOR85 10867 mov w0, w5 10868 bl List_get_gc_head_node 10869 and w6, w0, 65535 10870 strh w6, [x19, #:lo12:.LANCHOR80] 10871 mov w0, 65535 10872 cmp w6, w0 10873 bne .L1500 10874 strh wzr, [x7] 10875 mov w0, 8 10876 b .L1456 10877.L1470: 10878 adrp x1, .LANCHOR53 10879 ldrh w1, [x1, #:lo12:.LANCHOR53] 10880 cmp w1, w0 10881 bne .L1541 10882 adrp x0, .LANCHOR99 10883 ldrh w0, [x0, #:lo12:.LANCHOR99] 10884 cmp w0, w1 10885 bne .L1541 10886 cmp w21, w0 10887 bne .L1541 10888 ldrh w0, [x19, #:lo12:.LANCHOR80] 10889 cmp w0, w21 10890 beq .L1482 10891.L1541: 10892 mov w20, 1 10893 b .L1481 10894.L1482: 10895 adrp x0, .LANCHOR87 10896 adrp x22, .LANCHOR48 10897 adrp x20, .LANCHOR82 10898 adrp x23, .LANCHOR177 10899 str wzr, [x0, #:lo12:.LANCHOR87] 10900 ldrh w1, [x22, #:lo12:.LANCHOR48] 10901 ldrh w0, [x20, #:lo12:.LANCHOR82] 10902 cmp w1, w0 10903 bls .L1483 10904 ldrh w0, [x23, #:lo12:.LANCHOR177] 10905 cbnz w0, .L1484 10906 adrp x0, .LANCHOR61 10907 adrp x1, .LANCHOR59 10908 ldr w0, [x0, #:lo12:.LANCHOR61] 10909 ldr w1, [x1, #:lo12:.LANCHOR59] 10910 add w0, w0, w0, lsl 1 10911 cmp w1, w0, lsr 2 10912 bcs .L1485 10913.L1484: 10914 adrp x0, .LANCHOR78 10915 ldrh w0, [x0, #:lo12:.LANCHOR78] 10916 add w0, w0, w0, lsl 1 10917 asr w0, w0, 2 10918.L1565: 10919 strh w0, [x20, #:lo12:.LANCHOR82] 10920 bl FtlReadRefresh 10921 mov w0, 0 10922 bl List_get_gc_head_node 10923 adrp x1, .LANCHOR42 10924 ubfiz x0, x0, 1, 16 10925 ldr x1, [x1, #:lo12:.LANCHOR42] 10926 ldrh w0, [x1, x0] 10927 cmp w0, 4 10928 bls .L1483 10929.L1566: 10930 ldrh w0, [x23, #:lo12:.LANCHOR177] 10931 b .L1456 10932.L1485: 10933 mov w0, 18 10934 b .L1565 10935.L1483: 10936 ldrh w0, [x23, #:lo12:.LANCHOR177] 10937 cbnz w0, .L1541 10938 adrp x0, .LANCHOR78 10939 ldrh w5, [x0, #:lo12:.LANCHOR78] 10940 add w0, w5, w5, lsl 1 10941 asr w0, w0, 2 10942 strh w0, [x20, #:lo12:.LANCHOR82] 10943 mov w0, 0 10944 bl List_get_gc_head_node 10945 adrp x1, .LANCHOR42 10946 ubfiz x0, x0, 1, 16 10947 adrp x2, .LANCHOR3 10948 ldr x1, [x1, #:lo12:.LANCHOR42] 10949 ldrh w2, [x2, #:lo12:.LANCHOR3] 10950 ldrh w1, [x1, x0] 10951 adrp x0, .LANCHOR20 10952 ldrh w0, [x0, #:lo12:.LANCHOR20] 10953 mul w0, w0, w2 10954 cmp w1, w0, asr 1 10955 ble .L1488 10956 ldrh w0, [x22, #:lo12:.LANCHOR48] 10957 sub w5, w5, #1 10958 cmp w0, w5 10959 blt .L1488 10960 bl FtlReadRefresh 10961 b .L1566 10962.L1488: 10963 cbnz w1, .L1541 10964 mov w0, -1 10965 bl decrement_vpc_count 10966 ldrh w0, [x22, #:lo12:.LANCHOR48] 10967 add w0, w0, 1 10968 b .L1456 10969.L1491: 10970 adrp x0, .LANCHOR99 10971 ldrh w1, [x0, #:lo12:.LANCHOR99] 10972 cmp w1, w21 10973 beq .L1492 10974 adrp x2, .LANCHOR42 10975 ubfiz x1, x1, 1, 16 10976 ldr x2, [x2, #:lo12:.LANCHOR42] 10977 ldrh w1, [x2, x1] 10978 cbnz w1, .L1493 10979 mov w1, -1 10980 strh w1, [x0, #:lo12:.LANCHOR99] 10981.L1493: 10982 ldrh w1, [x0, #:lo12:.LANCHOR99] 10983 strh w1, [x19, #:lo12:.LANCHOR80] 10984 mov w1, -1 10985 strh w1, [x0, #:lo12:.LANCHOR99] 10986 b .L1492 10987.L1500: 10988 mov w0, w6 10989 bl IsBlkInGcList 10990 add w5, w5, 1 10991 cbz w0, .L1501 10992 strh w5, [x25, #:lo12:.LANCHOR85] 10993 b .L1499 10994.L1501: 10995 adrp x23, .LANCHOR42 10996 adrp x4, .LANCHOR3 10997 ldrh w0, [x22] 10998 ubfiz x1, x6, 1, 16 10999 ldr x2, [x23, #:lo12:.LANCHOR42] 11000 and w5, w5, 65535 11001 ldrh w4, [x4, #:lo12:.LANCHOR3] 11002 strh w5, [x25, #:lo12:.LANCHOR85] 11003 ldrh w3, [x2, x1] 11004 mul w0, w0, w4 11005 cmp w3, w0, asr 1 11006 bgt .L1503 11007 cmp w5, 48 11008 bls .L1504 11009 cmp w3, 8 11010 bls .L1504 11011 adrp x3, .LANCHOR95 11012 ldrh w3, [x3, #:lo12:.LANCHOR95] 11013 cmp w3, 35 11014 bhi .L1504 11015.L1503: 11016 strh wzr, [x26] 11017.L1504: 11018 ldrh w1, [x2, x1] 11019 cmp w0, w1 11020 bgt .L1505 11021 mov w0, 65535 11022 cmp w21, w0 11023 bne .L1505 11024 ldrh w0, [x26] 11025 cmp w0, 3 11026 bhi .L1505 11027 mov w0, -1 11028 strh wzr, [x26] 11029 strh w0, [x19, #:lo12:.LANCHOR80] 11030.L1567: 11031 adrp x0, .LANCHOR177 11032 ldrh w0, [x0, #:lo12:.LANCHOR177] 11033 b .L1456 11034.L1505: 11035 cbnz w1, .L1506 11036 mov w0, -1 11037 bl decrement_vpc_count 11038 ldrh w0, [x26] 11039 add w0, w0, 1 11040 strh w0, [x26] 11041 b .L1499 11042.L1506: 11043 add x0, x19, :lo12:.LANCHOR80 11044 strb wzr, [x0, 8] 11045 ldr x0, [x29, 120] 11046 ldrh w0, [x0, #:lo12:.LANCHOR51] 11047 cmp w0, w6 11048 bne .L1507 11049 adrp x1, .LANCHOR180 11050 adrp x0, .LC1 11051 mov w2, 700 11052 add x1, x1, :lo12:.LANCHOR180 11053 add x0, x0, :lo12:.LC1 11054 bl printf 11055.L1507: 11056 adrp x0, .LANCHOR52 11057 ldrh w1, [x19, #:lo12:.LANCHOR80] 11058 ldrh w0, [x0, #:lo12:.LANCHOR52] 11059 cmp w1, w0 11060 bne .L1508 11061 adrp x1, .LANCHOR180 11062 adrp x0, .LC1 11063 mov w2, 701 11064 add x1, x1, :lo12:.LANCHOR180 11065 add x0, x0, :lo12:.LC1 11066 bl printf 11067.L1508: 11068 adrp x0, .LANCHOR53 11069 ldrh w1, [x19, #:lo12:.LANCHOR80] 11070 ldrh w0, [x0, #:lo12:.LANCHOR53] 11071 cmp w1, w0 11072 bne .L1509 11073 adrp x1, .LANCHOR180 11074 adrp x0, .LC1 11075 mov w2, 702 11076 add x1, x1, :lo12:.LANCHOR180 11077 add x0, x0, :lo12:.LC1 11078 bl printf 11079.L1509: 11080 add x22, x19, :lo12:.LANCHOR80 11081 mov x0, x22 11082 bl make_superblock 11083 adrp x0, .LANCHOR178 11084 ldrh w1, [x19, #:lo12:.LANCHOR80] 11085 strh wzr, [x0, #:lo12:.LANCHOR178] 11086 ldr x0, [x23, #:lo12:.LANCHOR42] 11087 ldrh w1, [x0, x1, lsl 1] 11088 adrp x0, .LANCHOR179 11089 strh wzr, [x22, 2] 11090 strh w1, [x0, #:lo12:.LANCHOR179] 11091 strb wzr, [x22, 6] 11092.L1498: 11093 ldr x1, [x29, 144] 11094 mov w0, 1 11095 str w0, [x1, #:lo12:.LANCHOR108] 11096 adrp x0, .LANCHOR19 11097 str x0, [x29, 112] 11098 ldrh w1, [x0, #:lo12:.LANCHOR19] 11099 ldr w0, [x29, 152] 11100 str w1, [x29, 156] 11101 cbz w0, .L1510 11102 adrp x0, .LANCHOR3 11103 ldrh w2, [x19, #:lo12:.LANCHOR80] 11104 ldrh w0, [x0, #:lo12:.LANCHOR3] 11105 mul w0, w0, w1 11106 adrp x1, .LANCHOR42 11107 ldr x1, [x1, #:lo12:.LANCHOR42] 11108 ldrh w1, [x1, x2, lsl 1] 11109 sub w0, w0, w1 11110 mov w1, 4 11111 sdiv w0, w0, w1 11112 add w20, w20, w0 11113 and w20, w20, 65535 11114.L1510: 11115 add x0, x19, :lo12:.LANCHOR80 11116 ldr w2, [x29, 156] 11117 ldrh w0, [x0, 2] 11118 add w1, w0, w20 11119 cmp w1, w2 11120 ble .L1511 11121 sub w20, w2, w0 11122 and w20, w20, 65535 11123.L1511: 11124 adrp x0, .LANCHOR178 11125 mov w28, 0 11126 add x0, x0, :lo12:.LANCHOR178 11127 str x0, [x29, 136] 11128.L1512: 11129 cmp w20, w28, uxth 11130 bls .L1520 11131 add x1, x19, :lo12:.LANCHOR80 11132 adrp x0, .LANCHOR3 11133 adrp x23, .LANCHOR93 11134 add x1, x1, 16 11135 ldrh w7, [x0, #:lo12:.LANCHOR3] 11136 mov w22, 0 11137 ldrh w4, [x1, -14] 11138 mov w2, 0 11139 ldr x0, [x23, #:lo12:.LANCHOR93] 11140 mov w6, 65535 11141 add w4, w4, w28 11142 b .L1521 11143.L1514: 11144 ldrh w3, [x1] 11145 cmp w3, w6 11146 beq .L1513 11147 ubfiz x5, x22, 5, 16 11148 add w22, w22, 1 11149 add x5, x0, x5 11150 and w22, w22, 65535 11151 orr w3, w4, w3, lsl 10 11152 str w3, [x5, 4] 11153.L1513: 11154 add w2, w2, 1 11155 add x1, x1, 2 11156 and w2, w2, 65535 11157.L1521: 11158 cmp w2, w7 11159 bne .L1514 11160 add x1, x19, :lo12:.LANCHOR80 11161 adrp x24, .LANCHOR89 11162 add x24, x24, :lo12:.LANCHOR89 11163 ldrb w2, [x1, 8] 11164 mov w1, w22 11165 bl FlashReadPages 11166 ubfiz x0, x22, 5, 16 11167 mov x22, 0 11168 str x0, [x29, 128] 11169.L1515: 11170 ldr x0, [x29, 128] 11171 cmp x0, x22 11172 bne .L1519 11173 add w28, w28, 1 11174 b .L1512 11175.L1519: 11176 ldr x0, [x23, #:lo12:.LANCHOR93] 11177 add x1, x0, x22 11178 ldr w0, [x0, x22] 11179 cmn w0, #1 11180 beq .L1516 11181 ldr x27, [x1, 16] 11182 mov w0, 61589 11183 ldrh w1, [x27] 11184 cmp w1, w0 11185 bne .L1516 11186 ldr w4, [x27, 8] 11187 cmn w4, #1 11188 bne .L1517 11189 str w4, [x29, 104] 11190 mov w2, 736 11191 adrp x1, .LANCHOR180 11192 adrp x0, .LC1 11193 add x1, x1, :lo12:.LANCHOR180 11194 add x0, x0, :lo12:.LC1 11195 bl printf 11196 ldr w4, [x29, 104] 11197.L1517: 11198 mov w2, 0 11199 add x1, x29, 172 11200 mov w0, w4 11201 bl log2phys 11202 ldr x0, [x23, #:lo12:.LANCHOR93] 11203 ldr w1, [x29, 172] 11204 add x0, x0, x22 11205 ldr w2, [x0, 4] 11206 cmp w2, w1 11207 bne .L1516 11208 ldr x1, [x29, 136] 11209 adrp x4, .LANCHOR113 11210 ldr x2, [x29, 136] 11211 ldr w0, [x0, 24] 11212 ldrh w1, [x1] 11213 add w1, w1, 1 11214 strh w1, [x2] 11215 ldr x2, [x4, #:lo12:.LANCHOR113] 11216 ldr w1, [x24] 11217 add x1, x2, x1, lsl 5 11218 stp x4, x1, [x29, 96] 11219 str w0, [x1, 24] 11220 bl Ftl_get_new_temp_ppa 11221 ldp x4, x1, [x29, 96] 11222 ldr x2, [x4, #:lo12:.LANCHOR113] 11223 str w0, [x1, 4] 11224 ldr w1, [x24] 11225 ubfiz x0, x1, 5, 32 11226 add w1, w1, 1 11227 add x2, x2, x0 11228 ldr x0, [x23, #:lo12:.LANCHOR93] 11229 add x0, x0, x22 11230 ldr x4, [x0, 8] 11231 str x4, [x2, 8] 11232 ldr x4, [x0, 16] 11233 str x4, [x2, 16] 11234 ldr w2, [x29, 172] 11235 str w2, [x27, 12] 11236 adrp x2, .LANCHOR53 11237 add x11, x2, :lo12:.LANCHOR53 11238 ldrh w2, [x2, #:lo12:.LANCHOR53] 11239 strh w2, [x27, 2] 11240 adrp x2, .LANCHOR71 11241 str w1, [x24] 11242 mov w1, 1 11243 ldr w2, [x2, #:lo12:.LANCHOR71] 11244 str w2, [x27, 4] 11245 bl FtlGcBufAlloc 11246 ldrb w1, [x11, 7] 11247 ldr w0, [x24] 11248 cmp w1, w0 11249 beq .L1518 11250 ldrh w0, [x11, 4] 11251 cbnz w0, .L1516 11252.L1518: 11253 bl Ftl_gc_temp_data_write_back 11254 cbz w0, .L1516 11255.L1568: 11256 ldr x0, [x29, 144] 11257 str wzr, [x0, #:lo12:.LANCHOR108] 11258 b .L1567 11259.L1516: 11260 add x22, x22, 32 11261 b .L1515 11262.L1520: 11263 add x1, x19, :lo12:.LANCHOR80 11264 ldrh w0, [x1, 2] 11265 add w20, w20, w0 11266 ldr w0, [x29, 156] 11267 and w20, w20, 65535 11268 strh w20, [x1, 2] 11269 cmp w0, w20 11270 bhi .L1522 11271 adrp x0, .LANCHOR89 11272 ldr w0, [x0, #:lo12:.LANCHOR89] 11273 cbz w0, .L1523 11274 bl Ftl_gc_temp_data_write_back 11275 cbnz w0, .L1568 11276.L1523: 11277 adrp x0, .LANCHOR178 11278 ldrh w0, [x0, #:lo12:.LANCHOR178] 11279 cbnz w0, .L1524 11280 ldrh w0, [x19, #:lo12:.LANCHOR80] 11281 adrp x1, .LANCHOR42 11282 ldr x1, [x1, #:lo12:.LANCHOR42] 11283 lsl x0, x0, 1 11284 ldrh w2, [x1, x0] 11285 cbz w2, .L1524 11286 strh wzr, [x1, x0] 11287 ldrh w0, [x19, #:lo12:.LANCHOR80] 11288 bl update_vpc_list 11289 bl l2p_flush 11290 bl FtlVpcTblFlush 11291.L1524: 11292 mov w0, -1 11293 strh w0, [x19, #:lo12:.LANCHOR80] 11294.L1522: 11295 ldr x0, [x29, 144] 11296 str wzr, [x0, #:lo12:.LANCHOR108] 11297 adrp x0, .LANCHOR48 11298 ldrh w0, [x0, #:lo12:.LANCHOR48] 11299 cmp w0, 2 11300 bhi .L1525 11301 ldr x0, [x29, 112] 11302 ldrh w20, [x0, #:lo12:.LANCHOR19] 11303 b .L1526 11304.L1525: 11305 adrp x1, .LANCHOR177 11306 ldrh w1, [x1, #:lo12:.LANCHOR177] 11307 cmp w1, 0 11308 csinc w0, w1, w0, ne 11309 b .L1456 11310.L1529: 11311 mov w0, 0 11312 b .L1456 11313 .size rk_ftl_garbage_collect, .-rk_ftl_garbage_collect 11314 .section .text.sftl_init,"ax",@progbits 11315 .align 2 11316 .global sftl_init 11317 .type sftl_init, %function 11318sftl_init: 11319 stp x29, x30, [sp, -32]! 11320 adrp x1, .LC70 11321 add x1, x1, :lo12:.LC70 11322 mov w0, -1 11323 add x29, sp, 0 11324 str x19, [sp, 16] 11325 adrp x19, .LANCHOR86 11326 str w0, [x19, #:lo12:.LANCHOR86] 11327 adrp x0, .LC71 11328 add x0, x0, :lo12:.LC71 11329 bl printf 11330 adrp x0, .LANCHOR0 11331 add x0, x0, :lo12:.LANCHOR0 11332 bl FtlConstantsInit 11333 bl FtlMemInit 11334 bl FtlVariablesInit 11335 adrp x0, .LANCHOR4 11336 ldrh w0, [x0, #:lo12:.LANCHOR4] 11337 bl FtlFreeSysBlkQueueInit 11338 bl FtlLoadBbt 11339 cbnz w0, .L1573 11340 bl FtlSysBlkInit 11341 cbnz w0, .L1573 11342 mov w0, 1 11343 str w0, [x19, #:lo12:.LANCHOR86] 11344 adrp x0, .LANCHOR48 11345 ldrh w0, [x0, #:lo12:.LANCHOR48] 11346 cmp w0, 15 11347 bhi .L1573 11348 mov w19, 8129 11349.L1572: 11350 mov w1, 1 11351 mov w0, 0 11352 bl rk_ftl_garbage_collect 11353 subs w19, w19, #1 11354 bne .L1572 11355.L1573: 11356 mov w0, 0 11357 ldr x19, [sp, 16] 11358 ldp x29, x30, [sp], 32 11359 ret 11360 .size sftl_init, .-sftl_init 11361 .section .text.sftl_gc,"ax",@progbits 11362 .align 2 11363 .global sftl_gc 11364 .type sftl_gc, %function 11365sftl_gc: 11366 mov w1, 1 11367 mov w0, w1 11368 b rk_ftl_garbage_collect 11369 .size sftl_gc, .-sftl_gc 11370 .section .text.FtlRead,"ax",@progbits 11371 .align 2 11372 .global FtlRead 11373 .type FtlRead, %function 11374FtlRead: 11375 stp x29, x30, [sp, -176]! 11376 and w0, w0, 255 11377 cmp w0, 16 11378 add x29, sp, 0 11379 stp x19, x20, [sp, 16] 11380 mov w19, w1 11381 stp x23, x24, [sp, 48] 11382 mov x23, x3 11383 stp x25, x26, [sp, 64] 11384 mov w26, w2 11385 stp x21, x22, [sp, 32] 11386 stp x27, x28, [sp, 80] 11387 bne .L1578 11388 mov x2, x3 11389 mov w1, w26 11390 add w0, w19, 256 11391 bl FtlVendorPartRead 11392 mov w21, w0 11393.L1577: 11394 mov w0, w21 11395 ldp x19, x20, [sp, 16] 11396 ldp x21, x22, [sp, 32] 11397 ldp x23, x24, [sp, 48] 11398 ldp x25, x26, [sp, 64] 11399 ldp x27, x28, [sp, 80] 11400 ldp x29, x30, [sp], 176 11401 ret 11402.L1578: 11403 add w0, w1, w2 11404 str w0, [x29, 136] 11405 adrp x0, .LANCHOR34 11406 add w1, w1, w2 11407 ldr w0, [x0, #:lo12:.LANCHOR34] 11408 cmp w1, w0 11409 bhi .L1599 11410 adrp x0, .LANCHOR86 11411 ldr w21, [x0, #:lo12:.LANCHOR86] 11412 cmn w21, #1 11413 beq .L1577 11414 adrp x22, .LANCHOR12 11415 adrp x25, .LANCHOR81 11416 add x25, x25, :lo12:.LANCHOR81 11417 mov w27, 0 11418 ldrh w0, [x22, #:lo12:.LANCHOR12] 11419 mov w21, 0 11420 adrp x28, .LANCHOR112 11421 stp wzr, wzr, [x29, 140] 11422 udiv w1, w19, w0 11423 stp wzr, w1, [x29, 148] 11424 add w1, w19, w2 11425 sub w24, w1, #1 11426 adrp x1, .LANCHOR69 11427 ldr w20, [x29, 152] 11428 udiv w24, w24, w0 11429 ldr w0, [x29, 152] 11430 sub w0, w24, w0 11431 add w0, w0, 1 11432 str w0, [x29, 156] 11433 ldr w0, [x1, #:lo12:.LANCHOR69] 11434 add w0, w0, w2 11435 str w0, [x1, #:lo12:.LANCHOR69] 11436 adrp x1, .LANCHOR62 11437 ldr w2, [x29, 156] 11438 ldr w0, [x1, #:lo12:.LANCHOR62] 11439 add w0, w0, w2 11440 str w0, [x1, #:lo12:.LANCHOR62] 11441.L1580: 11442 ldr w0, [x29, 156] 11443 cbnz w0, .L1597 11444 adrp x0, .LANCHOR101 11445 ldrh w0, [x0, #:lo12:.LANCHOR101] 11446 cbnz w0, .L1598 11447 adrp x0, .LANCHOR48 11448 ldrh w0, [x0, #:lo12:.LANCHOR48] 11449 cmp w0, 31 11450 bhi .L1577 11451.L1598: 11452 mov w1, 1 11453 mov w0, 0 11454 bl rk_ftl_garbage_collect 11455 b .L1577 11456.L1597: 11457 add x1, x29, 172 11458 mov w2, 0 11459 mov w0, w20 11460 bl log2phys 11461 ldr w1, [x29, 172] 11462 cmn w1, #1 11463 bne .L1581 11464 add x5, x22, :lo12:.LANCHOR12 11465 mov w4, 0 11466.L1582: 11467 ldrh w0, [x5] 11468 cmp w4, w0 11469 bcc .L1584 11470.L1585: 11471 ldr w0, [x29, 156] 11472 add w20, w20, 1 11473 subs w0, w0, #1 11474 str w0, [x29, 156] 11475 beq .L1589 11476 adrp x0, .LANCHOR3 11477 ldrh w0, [x0, #:lo12:.LANCHOR3] 11478 cmp w27, w0, lsl 2 11479 bne .L1580 11480.L1589: 11481 cbz w27, .L1580 11482 ldr x0, [x28, #:lo12:.LANCHOR112] 11483 mov w1, w27 11484 mov w2, 0 11485 bl FlashReadPages 11486 ldr w0, [x29, 140] 11487 lsl w0, w0, 9 11488 str w0, [x29, 116] 11489 ldr w0, [x29, 148] 11490 lsl w0, w0, 9 11491 str x0, [x29, 128] 11492 ldr w0, [x29, 144] 11493 lsl w0, w0, 9 11494 str w0, [x29, 120] 11495 ubfiz x0, x27, 5, 32 11496 mov x27, 0 11497 str x0, [x29, 104] 11498 add x0, x22, :lo12:.LANCHOR12 11499 str x0, [x29, 96] 11500.L1596: 11501 ldr x0, [x28, #:lo12:.LANCHOR112] 11502 ldr w2, [x29, 152] 11503 add x0, x0, x27 11504 ldr w1, [x0, 24] 11505 cmp w2, w1 11506 bne .L1591 11507 ldr x1, [x0, 8] 11508 adrp x0, .LANCHOR118 11509 ldr x0, [x0, #:lo12:.LANCHOR118] 11510 cmp x1, x0 11511 bne .L1592 11512 ldr x0, [x29, 128] 11513 ldr w2, [x29, 120] 11514 add x1, x1, x0 11515 mov x0, x23 11516.L1610: 11517 bl ftl_memcpy 11518.L1592: 11519 ldr x0, [x28, #:lo12:.LANCHOR112] 11520 add x0, x0, x27 11521 ldr x1, [x0, 16] 11522 ldr w2, [x0, 24] 11523 ldr w1, [x1, 8] 11524 cmp w2, w1 11525 beq .L1593 11526 ldr w1, [x25, 72] 11527 add w1, w1, 1 11528 str w1, [x25, 72] 11529.L1593: 11530 ldr w1, [x0] 11531 cmn w1, #1 11532 bne .L1594 11533 ldr w0, [x25, 72] 11534 mov w21, w1 11535 add w0, w0, 1 11536 str w0, [x25, 72] 11537.L1595: 11538 ldr x0, [x29, 104] 11539 add x27, x27, 32 11540 cmp x0, x27 11541 bne .L1596 11542 mov w27, 0 11543 b .L1580 11544.L1584: 11545 madd w0, w20, w0, w4 11546 cmp w19, w0 11547 bhi .L1583 11548 ldr w1, [x29, 136] 11549 cmp w1, w0 11550 bls .L1583 11551 sub w0, w0, w19 11552 str x5, [x29, 120] 11553 lsl w0, w0, 9 11554 str w4, [x29, 128] 11555 mov w2, 512 11556 mov w1, 0 11557 add x0, x23, x0 11558 bl ftl_memset 11559 ldr w4, [x29, 128] 11560 ldr x5, [x29, 120] 11561.L1583: 11562 add w4, w4, 1 11563 b .L1582 11564.L1581: 11565 ldr x2, [x28, #:lo12:.LANCHOR112] 11566 ubfiz x0, x27, 5, 32 11567 add x0, x2, x0 11568 str w1, [x0, 4] 11569 ldr w1, [x29, 152] 11570 cmp w20, w1 11571 bne .L1586 11572 adrp x1, .LANCHOR118 11573 ldr x1, [x1, #:lo12:.LANCHOR118] 11574 str x1, [x0, 8] 11575 ldrh w1, [x22, #:lo12:.LANCHOR12] 11576 udiv w2, w19, w1 11577 msub w2, w2, w1, w19 11578 str w2, [x29, 148] 11579 sub w2, w1, w2 11580 cmp w26, w2 11581 csel w2, w26, w2, ls 11582 str w2, [x29, 144] 11583 cmp w1, w2 11584 bne .L1587 11585 str x23, [x0, 8] 11586.L1587: 11587 adrp x1, .LANCHOR24 11588 adrp x2, .LANCHOR124 11589 str w20, [x0, 24] 11590 ldrh w1, [x1, #:lo12:.LANCHOR24] 11591 ldr x2, [x2, #:lo12:.LANCHOR124] 11592 mul w1, w1, w27 11593 add w27, w27, 1 11594 and x1, x1, 4294967292 11595 add x1, x2, x1 11596 str x1, [x0, 16] 11597 b .L1585 11598.L1586: 11599 cmp w20, w24 11600 bne .L1588 11601 ldrh w2, [x22, #:lo12:.LANCHOR12] 11602 adrp x1, .LANCHOR119 11603 ldr w3, [x29, 136] 11604 ldr x1, [x1, #:lo12:.LANCHOR119] 11605 str x1, [x0, 8] 11606 mul w1, w20, w2 11607 sub w3, w3, w1 11608 str w3, [x29, 140] 11609 cmp w2, w3 11610 bne .L1587 11611.L1609: 11612 sub w1, w1, w19 11613 lsl w1, w1, 9 11614 add x1, x23, x1 11615 str x1, [x0, 8] 11616 b .L1587 11617.L1588: 11618 ldrh w1, [x22, #:lo12:.LANCHOR12] 11619 mul w1, w1, w20 11620 b .L1609 11621.L1591: 11622 cmp w24, w1 11623 bne .L1592 11624 ldr x1, [x0, 8] 11625 adrp x0, .LANCHOR119 11626 ldr x0, [x0, #:lo12:.LANCHOR119] 11627 cmp x1, x0 11628 bne .L1592 11629 ldr x0, [x29, 96] 11630 ldr w2, [x29, 116] 11631 ldrh w0, [x0] 11632 mul w0, w0, w24 11633 sub w0, w0, w19 11634 lsl w0, w0, 9 11635 add x0, x23, x0 11636 b .L1610 11637.L1594: 11638 cmp w1, 256 11639 bne .L1595 11640 ldr w0, [x0, 4] 11641 lsr w0, w0, 10 11642 bl P2V_block_in_plane 11643 bl FtlGcRefreshBlock 11644 b .L1595 11645.L1599: 11646 mov w21, -1 11647 b .L1577 11648 .size FtlRead, .-FtlRead 11649 .section .text.sftl_read,"ax",@progbits 11650 .align 2 11651 .global sftl_read 11652 .type sftl_read, %function 11653sftl_read: 11654 mov x3, x2 11655 mov w2, w1 11656 mov w1, w0 11657 mov w0, 0 11658 b FtlRead 11659 .size sftl_read, .-sftl_read 11660 .section .text.FtlWrite,"ax",@progbits 11661 .align 2 11662 .global FtlWrite 11663 .type FtlWrite, %function 11664FtlWrite: 11665 stp x29, x30, [sp, -240]! 11666 and w0, w0, 255 11667 cmp w0, 16 11668 add x29, sp, 0 11669 stp x21, x22, [sp, 32] 11670 mov w21, w1 11671 stp x25, x26, [sp, 64] 11672 mov x26, x3 11673 stp x19, x20, [sp, 16] 11674 stp x23, x24, [sp, 48] 11675 stp x27, x28, [sp, 80] 11676 str w2, [x29, 180] 11677 bne .L1613 11678 add w0, w1, 256 11679 ldr w1, [x29, 180] 11680 mov x2, x3 11681 bl FtlVendorPartWrite 11682.L1612: 11683 ldp x19, x20, [sp, 16] 11684 ldp x21, x22, [sp, 32] 11685 ldp x23, x24, [sp, 48] 11686 ldp x25, x26, [sp, 64] 11687 ldp x27, x28, [sp, 80] 11688 ldp x29, x30, [sp], 240 11689 ret 11690.L1613: 11691 ldr w0, [x29, 180] 11692 add w0, w1, w0 11693 str w0, [x29, 168] 11694 adrp x0, .LANCHOR34 11695 ldr w1, [x29, 168] 11696 ldr w0, [x0, #:lo12:.LANCHOR34] 11697 cmp w1, w0 11698 bhi .L1649 11699 adrp x0, .LANCHOR86 11700 ldr w0, [x0, #:lo12:.LANCHOR86] 11701 cmn w0, #1 11702 beq .L1612 11703 adrp x0, .LANCHOR181 11704 mov w1, 2048 11705 adrp x22, .LANCHOR12 11706 ldr w2, [x29, 180] 11707 str w1, [x0, #:lo12:.LANCHOR181] 11708 ldr w1, [x29, 168] 11709 ldrh w0, [x22, #:lo12:.LANCHOR12] 11710 sub w1, w1, #1 11711 udiv w25, w21, w0 11712 udiv w0, w1, w0 11713 adrp x1, .LANCHOR68 11714 str w0, [x29, 156] 11715 sub w0, w0, w25 11716 add w24, w0, 1 11717 str w0, [x29, 152] 11718 ldr w0, [x1, #:lo12:.LANCHOR68] 11719 add w0, w0, w2 11720 str w0, [x1, #:lo12:.LANCHOR68] 11721 adrp x1, .LANCHOR64 11722 ldr w0, [x1, #:lo12:.LANCHOR64] 11723 add w0, w0, w24 11724 str w0, [x1, #:lo12:.LANCHOR64] 11725 adrp x0, .LANCHOR182 11726 str x0, [x29, 160] 11727 ldr w1, [x0, #:lo12:.LANCHOR182] 11728 adrp x0, .LANCHOR51 11729 add x19, x0, :lo12:.LANCHOR51 11730 cbz w1, .L1615 11731 ldrh w0, [x19, 4] 11732 cbnz w0, .L1615 11733 adrp x19, .LANCHOR52 11734 add x19, x19, :lo12:.LANCHOR52 11735.L1615: 11736 mov w20, w25 11737 adrp x0, .LANCHOR52 11738 add x0, x0, :lo12:.LANCHOR52 11739 str x0, [x29, 96] 11740.L1616: 11741 cbnz w24, .L1644 11742 ldr w1, [x29, 152] 11743 mov w0, 0 11744 bl rk_ftl_garbage_collect 11745 adrp x0, .LANCHOR48 11746 mov x22, x0 11747 ldrh w1, [x0, #:lo12:.LANCHOR48] 11748 cmp w1, 5 11749 bls .L1645 11750.L1647: 11751 mov w0, 0 11752 b .L1612 11753.L1644: 11754 adrp x0, .LANCHOR3 11755 ldrb w2, [x19, 6] 11756 str x0, [x29, 120] 11757 ldrh w1, [x0, #:lo12:.LANCHOR3] 11758 cmp w2, w1 11759 bcc .L1617 11760 adrp x1, .LANCHOR183 11761 adrp x0, .LC1 11762 mov w2, 1011 11763 add x1, x1, :lo12:.LANCHOR183 11764 add x0, x0, :lo12:.LC1 11765 bl printf 11766.L1617: 11767 ldrh w0, [x19, 4] 11768 cbnz w0, .L1618 11769 adrp x0, .LANCHOR51 11770 add x0, x0, :lo12:.LANCHOR51 11771 cmp x19, x0 11772 bne .L1619 11773 adrp x0, .LANCHOR52 11774 add x0, x0, :lo12:.LANCHOR52 11775 ldrh w1, [x0, 4] 11776 cbnz w1, .L1620 11777 bl allocate_new_data_superblock 11778 ldr x0, [x29, 160] 11779 str wzr, [x0, #:lo12:.LANCHOR182] 11780.L1620: 11781 adrp x0, .LANCHOR51 11782 add x19, x0, :lo12:.LANCHOR51 11783 mov x0, x19 11784 bl allocate_new_data_superblock 11785 ldr x0, [x29, 160] 11786 ldr w0, [x0, #:lo12:.LANCHOR182] 11787 cmp w0, 0 11788 ldr x0, [x29, 96] 11789 csel x19, x0, x19, ne 11790.L1621: 11791 ldrh w0, [x19, 4] 11792 cbnz w0, .L1618 11793 mov x0, x19 11794 bl allocate_new_data_superblock 11795.L1618: 11796 ldrh w0, [x19, 4] 11797 ldrb w1, [x19, 7] 11798 cmp w0, w24 11799 csel w0, w0, w24, ls 11800 lsl w1, w1, 2 11801 cmp w0, w1 11802 csel w0, w0, w1, ls 11803 str w0, [x29, 148] 11804 ldr x0, [x29, 120] 11805 ldrb w1, [x19, 6] 11806 ldrh w0, [x0, #:lo12:.LANCHOR3] 11807 cmp w1, w0 11808 bcc .L1622 11809 adrp x1, .LANCHOR183 11810 adrp x0, .LC1 11811 mov w2, 1044 11812 add x1, x1, :lo12:.LANCHOR183 11813 add x0, x0, :lo12:.LC1 11814 bl printf 11815.L1622: 11816 adrp x0, .LANCHOR24 11817 add x0, x0, :lo12:.LANCHOR24 11818 str xzr, [x29, 184] 11819 str x0, [x29, 112] 11820 adrp x0, .LANCHOR23 11821 add x0, x0, :lo12:.LANCHOR23 11822 str x0, [x29, 104] 11823.L1623: 11824 ldr w1, [x29, 148] 11825 adrp x27, .LANCHOR114 11826 ldr w23, [x29, 184] 11827 cmp w23, w1 11828 bcc .L1642 11829 mov x23, x1 11830.L1624: 11831 ldr x0, [x27, #:lo12:.LANCHOR114] 11832 mov x3, x19 11833 mov w2, 0 11834 mov w1, w23 11835 bl FtlProgPages 11836 cmp w24, w23 11837 bcs .L1643 11838 adrp x1, .LANCHOR183 11839 adrp x0, .LC1 11840 mov w2, 1121 11841 add x1, x1, :lo12:.LANCHOR183 11842 add x0, x0, :lo12:.LC1 11843 bl printf 11844.L1643: 11845 sub w24, w24, w23 11846 b .L1616 11847.L1619: 11848 ldr x1, [x29, 160] 11849 str wzr, [x1, #:lo12:.LANCHOR182] 11850 ldrh w1, [x0, 4] 11851 cbnz w1, .L1654 11852 mov x0, x19 11853 bl allocate_new_data_superblock 11854 b .L1621 11855.L1654: 11856 mov x19, x0 11857 b .L1618 11858.L1642: 11859 ldrh w0, [x19, 4] 11860 cbz w0, .L1624 11861 add x1, x29, 204 11862 mov w2, 0 11863 mov w0, w20 11864 bl log2phys 11865 mov x0, x19 11866 bl get_new_active_ppa 11867 ldr x1, [x29, 184] 11868 lsl x28, x1, 5 11869 ldr x1, [x27, #:lo12:.LANCHOR114] 11870 add x1, x1, x28 11871 str w0, [x1, 4] 11872 ldr x0, [x29, 112] 11873 str w20, [x1, 24] 11874 ldrh w2, [x0] 11875 mul w23, w23, w2 11876 and x0, x23, 4294967292 11877 str x0, [x29, 136] 11878 adrp x0, .LANCHOR124 11879 ldr x3, [x29, 136] 11880 ldr x0, [x0, #:lo12:.LANCHOR124] 11881 str x0, [x29, 128] 11882 add x23, x0, x3 11883 str x23, [x1, 16] 11884 mov x0, x23 11885 mov w1, 0 11886 bl ftl_memset 11887 ldr w0, [x29, 156] 11888 cmp w20, w25 11889 ccmp w20, w0, 4, ne 11890 bne .L1625 11891 cmp w20, w25 11892 bne .L1626 11893 ldrh w2, [x22, #:lo12:.LANCHOR12] 11894 udiv w0, w21, w2 11895 msub w0, w0, w2, w21 11896 str w0, [x29, 172] 11897 sub w2, w2, w0 11898 ldr w0, [x29, 180] 11899 cmp w2, w0 11900 csel w0, w2, w0, ls 11901 str w0, [x29, 176] 11902.L1627: 11903 ldrh w0, [x22, #:lo12:.LANCHOR12] 11904 ldr w1, [x29, 176] 11905 cmp w1, w0 11906 ldr x0, [x27, #:lo12:.LANCHOR114] 11907 bne .L1628 11908 add x3, x0, x28 11909 cmp w20, w25 11910 bne .L1629 11911 str x26, [x3, 8] 11912.L1630: 11913 ldr x0, [x29, 120] 11914 ldrb w1, [x19, 6] 11915 ldrh w0, [x0, #:lo12:.LANCHOR3] 11916 cmp w1, w0 11917 bcc .L1639 11918 adrp x1, .LANCHOR183 11919 adrp x0, .LC1 11920 mov w2, 1112 11921 add x1, x1, :lo12:.LANCHOR183 11922 add x0, x0, :lo12:.LC1 11923 bl printf 11924.L1639: 11925 ldp x1, x2, [x29, 128] 11926 mov w0, -3947 11927 strh w0, [x1, x2] 11928 adrp x1, .LANCHOR71 11929 ldr w0, [x1, #:lo12:.LANCHOR71] 11930 stp w0, w20, [x23, 4] 11931 add w20, w20, 1 11932 add w0, w0, 1 11933 cmn w0, #1 11934 csel w0, w0, wzr, ne 11935 str w0, [x1, #:lo12:.LANCHOR71] 11936 ldr w0, [x29, 204] 11937 str w0, [x23, 12] 11938 ldrh w0, [x19] 11939 strh w0, [x23, 2] 11940 ldr x0, [x29, 184] 11941 add x0, x0, 1 11942 str x0, [x29, 184] 11943 b .L1623 11944.L1626: 11945 ldr w0, [x29, 168] 11946 ldrh w2, [x22, #:lo12:.LANCHOR12] 11947 msub w2, w20, w2, w0 11948 and w0, w2, 65535 11949 stp wzr, w0, [x29, 172] 11950 b .L1627 11951.L1629: 11952 ldr w0, [x29, 176] 11953.L1661: 11954 mul w0, w0, w20 11955 sub w0, w0, w21 11956 lsl w0, w0, 9 11957 add x0, x26, x0 11958 str x0, [x3, 8] 11959 b .L1630 11960.L1628: 11961 add x0, x0, x28 11962 cmp w20, w25 11963 bne .L1631 11964 adrp x1, .LANCHOR118 11965 ldr x1, [x1, #:lo12:.LANCHOR118] 11966.L1660: 11967 str x1, [x0, 8] 11968 ldr w0, [x29, 204] 11969 cmn w0, #1 11970 beq .L1633 11971 str w0, [x29, 212] 11972 mov w2, 0 11973 ldr x0, [x27, #:lo12:.LANCHOR114] 11974 str w20, [x29, 232] 11975 add x0, x0, x28 11976 ldp x1, x0, [x0, 8] 11977 stp x1, x0, [x29, 216] 11978 mov w1, 1 11979 add x0, x29, 208 11980 bl FlashReadPages 11981 ldr w0, [x29, 208] 11982 cmn w0, #1 11983 bne .L1634 11984 adrp x0, .LANCHOR81 11985 add x0, x0, :lo12:.LANCHOR81 11986 ldr w1, [x0, 72] 11987 add w1, w1, 1 11988 str w1, [x0, 72] 11989.L1637: 11990 ldr w0, [x29, 176] 11991 cmp w20, w25 11992 lsl w2, w0, 9 11993 bne .L1638 11994 ldr x0, [x27, #:lo12:.LANCHOR114] 11995 mov x1, x26 11996 add x3, x0, x28 11997 ldr w0, [x29, 172] 11998 ldr x3, [x3, 8] 11999 lsl w0, w0, 9 12000 add x0, x3, x0 12001.L1662: 12002 bl ftl_memcpy 12003 b .L1630 12004.L1631: 12005 adrp x1, .LANCHOR119 12006 ldr x1, [x1, #:lo12:.LANCHOR119] 12007 b .L1660 12008.L1634: 12009 ldr w1, [x23, 8] 12010 cmp w20, w1 12011 beq .L1636 12012 adrp x0, .LANCHOR81 12013 add x0, x0, :lo12:.LANCHOR81 12014 ldr w2, [x0, 72] 12015 add w2, w2, 1 12016 str w2, [x0, 72] 12017 adrp x0, .LC113 12018 mov w2, w20 12019 add x0, x0, :lo12:.LC113 12020 bl printf 12021.L1636: 12022 ldr w0, [x23, 8] 12023 cmp w20, w0 12024 beq .L1637 12025 mov w2, 1097 12026 adrp x1, .LANCHOR183 12027 adrp x0, .LC1 12028 add x1, x1, :lo12:.LANCHOR183 12029 add x0, x0, :lo12:.LC1 12030 bl printf 12031 b .L1637 12032.L1633: 12033 ldr x0, [x27, #:lo12:.LANCHOR114] 12034 ldr x1, [x29, 104] 12035 add x0, x0, x28 12036 ldrh w2, [x1] 12037 mov w1, 0 12038 ldr x0, [x0, 8] 12039 bl ftl_memset 12040 b .L1637 12041.L1638: 12042 ldrh w1, [x22, #:lo12:.LANCHOR12] 12043 ldr x0, [x27, #:lo12:.LANCHOR114] 12044 add x3, x0, x28 12045 mul w1, w1, w20 12046 sub w1, w1, w21 12047 ldr x0, [x3, 8] 12048 lsl w1, w1, 9 12049 add x1, x26, x1 12050 b .L1662 12051.L1625: 12052 ldr x0, [x27, #:lo12:.LANCHOR114] 12053 add x3, x0, x28 12054 ldrh w0, [x22, #:lo12:.LANCHOR12] 12055 b .L1661 12056.L1645: 12057 adrp x23, .LANCHOR99 12058 adrp x20, .LANCHOR83 12059 adrp x21, .LANCHOR82 12060 add x23, x23, :lo12:.LANCHOR99 12061 add x20, x20, :lo12:.LANCHOR83 12062 add x21, x21, :lo12:.LANCHOR82 12063 mov w19, 256 12064.L1648: 12065 adrp x0, .LANCHOR80 12066 mov w1, 65535 12067 ldrh w0, [x0, #:lo12:.LANCHOR80] 12068 cmp w0, w1 12069 bne .L1646 12070 ldrh w1, [x23] 12071 cmp w1, w0 12072 bne .L1646 12073 mov w0, 0 12074 bl List_get_gc_head_node 12075 bl FtlGcRefreshBlock 12076.L1646: 12077 mov w0, 128 12078 mov w1, 1 12079 strh w0, [x20] 12080 strh w0, [x21] 12081 mov w0, w1 12082 bl rk_ftl_garbage_collect 12083 mov w1, 1 12084 mov w0, 0 12085 bl rk_ftl_garbage_collect 12086 ldrh w0, [x22, #:lo12:.LANCHOR48] 12087 cmp w0, 2 12088 bhi .L1647 12089 subs w19, w19, #1 12090 bne .L1648 12091 b .L1647 12092.L1649: 12093 mov w0, -1 12094 b .L1612 12095 .size FtlWrite, .-FtlWrite 12096 .section .text.sftl_write,"ax",@progbits 12097 .align 2 12098 .global sftl_write 12099 .type sftl_write, %function 12100sftl_write: 12101 stp x29, x30, [sp, -256]! 12102 add x29, sp, 0 12103 stp x21, x22, [sp, 32] 12104 mov w21, w0 12105 stp x19, x20, [sp, 16] 12106 add w20, w0, w1 12107 stp x23, x24, [sp, 48] 12108 sub w22, w20, #1 12109 stp x25, x26, [sp, 64] 12110 mov w24, w1 12111 stp x27, x28, [sp, 80] 12112 cmp w22, 63 12113 str x2, [x29, 168] 12114 adrp x25, .LANCHOR184 12115 bls .L1664 12116 cmp w0, 575 12117 bls .L1665 12118.L1664: 12119 ldr w0, [x25, #:lo12:.LANCHOR184] 12120 cbz w0, .L1667 12121 adrp x0, .LANCHOR185 12122 str x0, [x29, 128] 12123 mov w1, 35899 12124 ldr x23, [x0, #:lo12:.LANCHOR185] 12125 movk w1, 0xfcdc, lsl 16 12126 ldr w2, [x23] 12127 cmp w2, w1 12128 beq .L1668 12129.L1685: 12130 ldr x0, [x29, 128] 12131 str wzr, [x25, #:lo12:.LANCHOR184] 12132 ldr x0, [x0, #:lo12:.LANCHOR185] 12133 bl free 12134 adrp x0, .LANCHOR186 12135 ldr x0, [x0, #:lo12:.LANCHOR186] 12136 bl free 12137.L1667: 12138 ldr x3, [x29, 168] 12139 mov w2, w24 12140 mov w1, w21 12141 mov w0, 0 12142 bl FtlWrite 12143 ldp x19, x20, [sp, 16] 12144 ldp x21, x22, [sp, 32] 12145 ldp x23, x24, [sp, 48] 12146 ldp x25, x26, [sp, 64] 12147 ldp x27, x28, [sp, 80] 12148 ldp x29, x30, [sp], 256 12149 ret 12150.L1668: 12151 adrp x1, .LANCHOR0 12152 add x0, x1, :lo12:.LANCHOR0 12153 mov w2, 65535 12154 mov w4, 4097 12155 str x1, [x29, 152] 12156 ldrh w20, [x0, 14] 12157 ldrh w19, [x0, 10] 12158 mov x0, 262140 12159 add x3, x23, x0 12160 mov w0, 0 12161.L1672: 12162 ldr w1, [x3] 12163 cbnz w1, .L1669 12164 ldr w1, [x23, w0, uxtw 2] 12165 add w0, w0, 1 12166 str w1, [x3], -4 12167 cmp w0, w4 12168 sub w2, w2, #1 12169 csel w0, w0, wzr, cc 12170 cmp w2, 4096 12171 bne .L1672 12172 mov w22, 512 12173 b .L1671 12174.L1669: 12175 add w22, w2, 127 12176 adrp x0, .LC114 12177 lsr w22, w22, 7 12178 add x0, x0, :lo12:.LC114 12179 mov w3, w22 12180 bl printf 12181.L1671: 12182 and w20, w20, 255 12183 adrp x26, .LANCHOR105 12184 mul w19, w19, w20 12185 and w0, w19, 65535 12186 str w0, [x29, 188] 12187 sub w20, w0, #1 12188 mov w19, 0 12189 add w20, w20, w22 12190 udiv w20, w20, w0 12191 mul w0, w0, w20 12192 stp w20, wzr, [x29, 176] 12193 str w0, [x29, 184] 12194 lsl w0, w22, 7 12195 str w0, [x29, 148] 12196 add x0, x26, :lo12:.LANCHOR105 12197 str x0, [x29, 120] 12198 b .L1684 12199.L1675: 12200 add w0, w5, w4 12201 ldr x3, [x29, 120] 12202 ubfiz x2, x4, 9, 16 12203 stp w5, w4, [x29, 100] 12204 str w6, [x29, 112] 12205 add x2, x23, x2 12206 udiv w0, w0, w27 12207 str w7, [x29, 144] 12208 ldr x8, [x3, 16] 12209 add x3, x29, 192 12210 and w0, w0, 65535 12211 mul w1, w0, w27 12212 stp w1, w7, [x29, 192] 12213 udiv w1, w6, w27 12214 add w1, w1, w0 12215 mov w0, 0 12216 blr x8 12217 ldp w5, w4, [x29, 100] 12218 ldr w0, [x29, 136] 12219 ldr w6, [x29, 112] 12220 add w4, w0, w4 12221 ldr w7, [x29, 144] 12222 and w4, w4, 65535 12223 b .L1674 12224.L1677: 12225 add w27, w8, w27 12226 mov w0, 0 12227 and w27, w27, 65535 12228 b .L1676 12229.L1682: 12230 mov x27, x2 12231 ldr w4, [x0, x1, lsl 2] 12232 lsl x5, x1, 2 12233 add x2, x2, 4 12234 add x1, x1, 1 12235 ldr w3, [x27] 12236 cmp w4, w3 12237 beq .L1678 12238 mov x2, 512 12239 mov w1, 0 12240 str x5, [x29, 136] 12241 bl memset 12242 ldr x0, [x29, 160] 12243 mov w4, w28 12244 ldr x5, [x29, 136] 12245 mov w1, w19 12246 ldr w3, [x27] 12247 add x27, x26, :lo12:.LANCHOR105 12248 ldr x0, [x0, #:lo12:.LANCHOR186] 12249 ldr w2, [x0, x5] 12250 adrp x0, .LC115 12251 add x0, x0, :lo12:.LC115 12252 bl printf 12253 ldr x2, [x27, 8] 12254 mov w1, w19 12255 mov w0, 0 12256 blr x2 12257 cmp w20, 1 12258 bls .L1692 12259 ldr x2, [x27, 8] 12260 ldr w0, [x29, 188] 12261 add w1, w0, w19 12262 mov w0, 0 12263 blr x2 12264.L1692: 12265 ldr w1, [x29, 184] 12266 ldr w0, [x29, 176] 12267 add w19, w19, w1 12268 ldr w1, [x29, 176] 12269 add w0, w20, w0 12270 cmp w1, 15 12271 bhi .L1685 12272 str w0, [x29, 176] 12273.L1684: 12274 adrp x5, .LANCHOR186 12275 mov x2, 512 12276 mov w1, 0 12277 str x5, [x29, 160] 12278 ldr x0, [x5, #:lo12:.LANCHOR186] 12279 bl memset 12280 ldr x0, [x29, 152] 12281 add x4, x26, :lo12:.LANCHOR105 12282 str x4, [x29, 104] 12283 add x0, x0, :lo12:.LANCHOR0 12284 ldr x6, [x4, 8] 12285 ldrh w3, [x0, 14] 12286 ldrh w2, [x0, 10] 12287 mov w0, 0 12288 and w27, w3, 255 12289 str w3, [x29, 112] 12290 str w27, [x29, 136] 12291 udiv w1, w19, w3 12292 mul w2, w27, w2 12293 and w28, w2, 65535 12294 blr x6 12295 ldr w0, [x29, 184] 12296 ldr w3, [x29, 112] 12297 cmp w0, w28 12298 ldr x4, [x29, 104] 12299 bls .L1673 12300 add w1, w28, w19 12301 ldr x4, [x4, 8] 12302 mov w0, 0 12303 udiv w1, w1, w3 12304 blr x4 12305.L1673: 12306 udiv w5, w19, w28 12307 mov w4, 0 12308 mov w7, 61424 12309 msub w5, w5, w28, w19 12310 sub w6, w19, w5 12311.L1674: 12312 ldr w0, [x29, 184] 12313 cmp w0, w4 12314 bhi .L1675 12315 ldr x0, [x29, 160] 12316 add x10, x26, :lo12:.LANCHOR105 12317 mov w27, 0 12318 ldr x6, [x0, #:lo12:.LANCHOR186] 12319 ldr x0, [x29, 152] 12320 add x0, x0, :lo12:.LANCHOR0 12321 ldrh w4, [x0, 14] 12322 ldrh w5, [x0, 10] 12323 and w28, w4, 255 12324 mov w4, w28 12325 mul w5, w28, w5 12326 and w0, w5, 65535 12327 udiv w5, w19, w0 12328 msub w5, w5, w0, w19 12329 and w1, w5, 65535 12330 sub w7, w19, w5 12331 sdiv w0, w1, w28 12332 msub w0, w0, w28, w1 12333 and w0, w0, 65535 12334.L1676: 12335 cmp w27, w22 12336 bcs .L1680 12337 add w1, w5, w27 12338 sub w8, w4, w0 12339 add w0, w0, w7 12340 ldr x11, [x10, 24] 12341 and w8, w8, 65535 12342 ubfiz x2, x27, 9, 16 12343 udiv w1, w1, w28 12344 add x2, x6, x2 12345 stp w4, w8, [x29, 96] 12346 add x3, x29, 192 12347 str w7, [x29, 104] 12348 str x10, [x29, 112] 12349 and w1, w1, 65535 12350 str x6, [x29, 136] 12351 str w5, [x29, 144] 12352 madd w1, w1, w28, w0 12353 mov w0, 0 12354 udiv w1, w1, w28 12355 blr x11 12356 cmn w0, #1 12357 ldp w4, w8, [x29, 96] 12358 ldr w7, [x29, 104] 12359 ldr w5, [x29, 144] 12360 ldr x10, [x29, 112] 12361 ldr x6, [x29, 136] 12362 bne .L1677 12363.L1680: 12364 ldr x0, [x29, 160] 12365 mov x2, x23 12366 mov x1, 0 12367 ldr x0, [x0, #:lo12:.LANCHOR186] 12368.L1678: 12369 ldr w3, [x29, 148] 12370 mov w28, w1 12371 cmp w1, w3 12372 bcc .L1682 12373 ldr w0, [x29, 180] 12374 add w0, w0, 1 12375 str w0, [x29, 180] 12376 cmp w0, 5 12377 bls .L1692 12378 b .L1685 12379.L1665: 12380 cmp w0, 64 12381 bne .L1686 12382 adrp x19, .LANCHOR185 12383 mov w0, 262144 12384 bl ftl_malloc 12385 str x0, [x19, #:lo12:.LANCHOR185] 12386 mov w0, 262144 12387 bl ftl_malloc 12388 mov x1, x0 12389 adrp x0, .LANCHOR186 12390 str x1, [x0, #:lo12:.LANCHOR186] 12391 ldr x0, [x19, #:lo12:.LANCHOR185] 12392 cbz x0, .L1687 12393 cbz x1, .L1687 12394 mov w1, 1 12395 mov w2, 262144 12396 str w1, [x25, #:lo12:.LANCHOR184] 12397 mov w1, 0 12398 bl ftl_memset 12399.L1686: 12400 ldr w0, [x25, #:lo12:.LANCHOR184] 12401 cbz w0, .L1667 12402 adrp x0, .LANCHOR185 12403 cmp w21, 63 12404 ldr x1, [x0, #:lo12:.LANCHOR185] 12405 bhi .L1689 12406 mov w23, 64 12407 ldr x0, [x29, 168] 12408 sub w23, w23, w21 12409 mov x19, x1 12410 sub w25, w24, w23 12411 ubfiz x23, x23, 9, 25 12412 add x23, x0, x23 12413.L1690: 12414 cmp w22, 575 12415 bls .L1691 12416 sub w25, w25, w20 12417 sub w25, w25, #446 12418.L1691: 12419 mov w4, w25 12420 mov x3, x19 12421 mov w2, 262144 12422 adrp x0, .LC117 12423 add x0, x0, :lo12:.LC117 12424 bl printf 12425 lsl w2, w25, 9 12426 mov x1, x23 12427 mov x0, x19 12428 bl ftl_memcpy 12429 b .L1667 12430.L1687: 12431 adrp x1, .LANCHOR187 12432 adrp x0, .LC116 12433 add x1, x1, :lo12:.LANCHOR187 12434 add x0, x0, :lo12:.LC116 12435 bl printf 12436 b .L1686 12437.L1689: 12438 lsl w19, w21, 7 12439 mov w25, w24 12440 sub w19, w19, #8192 12441 ldr x23, [x29, 168] 12442 add x19, x1, x19, lsl 2 12443 b .L1690 12444 .size sftl_write, .-sftl_write 12445 .section .text.FtlMakeBbt,"ax",@progbits 12446 .align 2 12447 .global FtlMakeBbt 12448 .type FtlMakeBbt, %function 12449FtlMakeBbt: 12450 stp x29, x30, [sp, -128]! 12451 add x29, sp, 0 12452 stp x21, x22, [sp, 32] 12453 mov w22, 0 12454 stp x19, x20, [sp, 16] 12455 adrp x20, .LANCHOR37 12456 stp x23, x24, [sp, 48] 12457 add x21, x20, :lo12:.LANCHOR37 12458 stp x25, x26, [sp, 64] 12459 add x24, x21, 32 12460 stp x27, x28, [sp, 80] 12461 bl FtlBbtMemInit 12462 bl FtlLoadFactoryBbt 12463 adrp x28, .LANCHOR148 12464 add x21, x21, 12 12465 add x25, x28, :lo12:.LANCHOR148 12466 adrp x0, .LANCHOR10 12467 add x0, x0, :lo12:.LANCHOR10 12468 str x0, [x29, 120] 12469.L1710: 12470 ldr x0, [x29, 120] 12471 ldrh w0, [x0] 12472 cmp w22, w0 12473 bcc .L1716 12474 adrp x21, .LANCHOR25 12475 add x21, x21, :lo12:.LANCHOR25 12476 mov w19, 0 12477.L1717: 12478 ldrh w0, [x21] 12479 cmp w0, w19 12480 bhi .L1718 12481 add x21, x20, :lo12:.LANCHOR37 12482 mov w22, 65535 12483 ldrh w19, [x21, 12] 12484 sub w19, w19, #1 12485 and w19, w19, 65535 12486.L1719: 12487 ldrh w0, [x21, 12] 12488 sub w0, w0, #47 12489 cmp w0, w19 12490 bgt .L1723 12491 mov w0, w19 12492 bl FtlBbmIsBadBlock 12493 cmp w0, 1 12494 beq .L1720 12495 mov w0, w19 12496 bl FlashTestBlk 12497 cbz w0, .L1721 12498 mov w0, w19 12499 bl FtlBbmMapBadBlock 12500.L1720: 12501 sub w19, w19, #1 12502 and w19, w19, 65535 12503 b .L1719 12504.L1716: 12505 adrp x2, .LANCHOR123 12506 adrp x0, .LANCHOR115 12507 add x19, x28, :lo12:.LANCHOR148 12508 ldrh w1, [x21] 12509 ldr x0, [x0, #:lo12:.LANCHOR115] 12510 mov w3, 65535 12511 ldr x26, [x2, #:lo12:.LANCHOR123] 12512 cmp w1, w3 12513 stp x0, x26, [x19, 8] 12514 adrp x23, .LANCHOR17 12515 str x2, [x29, 112] 12516 beq .L1711 12517 ldrh w4, [x23, #:lo12:.LANCHOR17] 12518 mov w2, 1 12519 madd w27, w4, w22, w1 12520 mov w1, w2 12521 lsl w0, w27, 10 12522 str w0, [x19, 4] 12523 mov x0, x19 12524 bl FlashReadPages 12525 ldr x1, [x19, 8] 12526 ldr x0, [x24] 12527 ldrh w2, [x23, #:lo12:.LANCHOR17] 12528 add w2, w2, 7 12529 lsr w2, w2, 3 12530 bl ftl_memcpy 12531.L1712: 12532 mov w0, w27 12533 add w22, w22, 1 12534 bl FtlBbmMapBadBlock 12535 add x24, x24, 8 12536 add x21, x21, 2 12537 b .L1710 12538.L1711: 12539 mov w1, w22 12540 bl FlashGetBadBlockList 12541 ldr x0, [x19, 8] 12542 ldr x1, [x24] 12543 bl FtlBbt2Bitmap 12544 ldrh w19, [x23, #:lo12:.LANCHOR17] 12545 add x23, x23, :lo12:.LANCHOR17 12546 adrp x0, .LANCHOR137 12547 sub w19, w19, #1 12548 add x0, x0, :lo12:.LANCHOR137 12549 and w19, w19, 65535 12550 str x0, [x29, 104] 12551.L1713: 12552 ldrh w0, [x23] 12553 madd w0, w22, w0, w19 12554 bl FtlBbmIsBadBlock 12555 cmp w0, 1 12556 beq .L1714 12557 ldr x0, [x29, 112] 12558 mov w2, 16 12559 strh w19, [x21] 12560 mov w1, 0 12561 ldr x0, [x0, #:lo12:.LANCHOR123] 12562 bl ftl_memset 12563 adrp x0, .LANCHOR115 12564 mov w2, 4096 12565 mov w1, 0 12566 ldr x0, [x0, #:lo12:.LANCHOR115] 12567 bl ftl_memset 12568 mov w0, -3872 12569 strh w0, [x26] 12570 ldrh w4, [x23] 12571 ldrh w0, [x21] 12572 strh w0, [x26, 2] 12573 ldr x1, [x24] 12574 str wzr, [x26, 4] 12575 madd w27, w4, w22, w0 12576 lsl w0, w27, 10 12577 str w0, [x25, 4] 12578 ldr x0, [x29, 104] 12579 ldrh w2, [x0] 12580 ldr x0, [x25, 8] 12581 lsl w2, w2, 2 12582 bl ftl_memcpy 12583 mov w2, 1 12584 mov x0, x25 12585 mov w1, w2 12586 bl FlashEraseBlocks 12587 mov w3, 1 12588 mov x0, x25 12589 mov w2, w3 12590 mov w1, w3 12591 bl FlashProgPages 12592 ldr w0, [x25] 12593 cmn w0, #1 12594 bne .L1712 12595 mov w0, w27 12596 bl FtlBbmMapBadBlock 12597 b .L1713 12598.L1714: 12599 sub w19, w19, #1 12600 and w19, w19, 65535 12601 b .L1713 12602.L1718: 12603 mov w0, w19 12604 add w19, w19, 1 12605 bl FtlBbmMapBadBlock 12606 and w19, w19, 65535 12607 b .L1717 12608.L1721: 12609 ldrh w0, [x21] 12610 cmp w0, w22 12611 bne .L1722 12612 strh w19, [x21] 12613 b .L1720 12614.L1722: 12615 strh w19, [x21, 4] 12616.L1723: 12617 adrp x0, .LANCHOR106 12618 add x19, x20, :lo12:.LANCHOR37 12619 ldrh w1, [x20, #:lo12:.LANCHOR37] 12620 mov w2, 2 12621 ldr x0, [x0, #:lo12:.LANCHOR106] 12622 str wzr, [x19, 8] 12623 lsl w1, w1, 10 12624 strh wzr, [x19, 2] 12625 str w1, [x0, 4] 12626 ldrh w1, [x19, 4] 12627 lsl w1, w1, 10 12628 str w1, [x0, 36] 12629 mov w1, 1 12630 bl FlashEraseBlocks 12631 ldrh w0, [x20, #:lo12:.LANCHOR37] 12632 bl FtlBbmMapBadBlock 12633 ldrh w0, [x19, 4] 12634 bl FtlBbmMapBadBlock 12635 bl FtlBbmTblFlush 12636 strh wzr, [x19, 2] 12637 ldr w0, [x19, 8] 12638 ldrh w1, [x19, 4] 12639 add w0, w0, 1 12640 str w0, [x19, 8] 12641 ldrh w0, [x20, #:lo12:.LANCHOR37] 12642 strh w0, [x19, 4] 12643 strh w1, [x20, #:lo12:.LANCHOR37] 12644 bl FtlBbmTblFlush 12645 mov w0, 0 12646 ldp x19, x20, [sp, 16] 12647 ldp x21, x22, [sp, 32] 12648 ldp x23, x24, [sp, 48] 12649 ldp x25, x26, [sp, 64] 12650 ldp x27, x28, [sp, 80] 12651 ldp x29, x30, [sp], 128 12652 ret 12653 .size FtlMakeBbt, .-FtlMakeBbt 12654 .section .text.ftl_low_format,"ax",@progbits 12655 .align 2 12656 .global ftl_low_format 12657 .type ftl_low_format, %function 12658ftl_low_format: 12659 stp x29, x30, [sp, -80]! 12660 adrp x0, .LANCHOR71 12661 add x29, sp, 0 12662 stp x23, x24, [sp, 48] 12663 adrp x24, .LANCHOR4 12664 str wzr, [x0, #:lo12:.LANCHOR71] 12665 ldrh w0, [x24, #:lo12:.LANCHOR4] 12666 stp x19, x20, [sp, 16] 12667 adrp x20, .LANCHOR70 12668 stp x21, x22, [sp, 32] 12669 stp x25, x26, [sp, 64] 12670 str wzr, [x20, #:lo12:.LANCHOR70] 12671 bl FtlFreeSysBlkQueueInit 12672 bl FtlLoadBbt 12673 cbz w0, .L1730 12674 bl FtlMakeBbt 12675.L1730: 12676 adrp x23, .LANCHOR12 12677 adrp x0, .LANCHOR118 12678 mov w6, 23752 12679 ldrh w1, [x23, #:lo12:.LANCHOR12] 12680 movk w6, 0xa0f, lsl 16 12681 ldr x4, [x0, #:lo12:.LANCHOR118] 12682 adrp x0, .LANCHOR119 12683 lsl w1, w1, 7 12684 ldr x5, [x0, #:lo12:.LANCHOR119] 12685 mov w0, 0 12686.L1731: 12687 cmp w0, w1 12688 blt .L1732 12689 adrp x21, .LANCHOR5 12690 adrp x22, .LANCHOR6 12691 add x26, x22, :lo12:.LANCHOR6 12692 mov w19, 0 12693 ldrh w25, [x21, #:lo12:.LANCHOR5] 12694.L1733: 12695 ldrh w0, [x26] 12696 cmp w0, w25 12697 bhi .L1734 12698 adrp x25, .LANCHOR3 12699 sub w1, w19, #2 12700 ldrh w0, [x25, #:lo12:.LANCHOR3] 12701 cmp w1, w0, lsl 1 12702 bgt .L1735 12703.L1739: 12704 add x26, x21, :lo12:.LANCHOR5 12705 mov w19, 0 12706 mov w24, 0 12707.L1736: 12708 ldrh w0, [x26] 12709 cmp w0, w24 12710 bhi .L1740 12711 adrp x0, .LANCHOR111 12712 ldrh w1, [x22, #:lo12:.LANCHOR6] 12713 ldrh w4, [x25, #:lo12:.LANCHOR3] 12714 adrp x2, .LANCHOR78 12715 str w1, [x0, #:lo12:.LANCHOR111] 12716 adrp x0, .LANCHOR7 12717 adrp x3, .LANCHOR61 12718 ldr w1, [x0, #:lo12:.LANCHOR7] 12719 udiv w5, w1, w4 12720 ubfx x0, x5, 5, 16 12721 str w5, [x3, #:lo12:.LANCHOR61] 12722 add w6, w0, 36 12723 strh w6, [x2, #:lo12:.LANCHOR78] 12724 mov w6, 24 12725 mul w6, w4, w6 12726 cmp w19, w6 12727 ble .L1741 12728 sub w1, w1, w19 12729 udiv w1, w1, w4 12730 str w1, [x3, #:lo12:.LANCHOR61] 12731 lsr w1, w1, 5 12732 add w1, w1, 24 12733 strh w1, [x2, #:lo12:.LANCHOR78] 12734.L1741: 12735 adrp x1, .LANCHOR15 12736 ldrh w1, [x1, #:lo12:.LANCHOR15] 12737 cbz w1, .L1743 12738 ldrh w6, [x2, #:lo12:.LANCHOR78] 12739 add w6, w6, w1, lsr 1 12740 strh w6, [x2, #:lo12:.LANCHOR78] 12741 mul w6, w1, w4 12742 cmp w19, w6 12743 bge .L1743 12744 add w1, w1, 32 12745 str w5, [x3, #:lo12:.LANCHOR61] 12746 add w1, w0, w1 12747 strh w1, [x2, #:lo12:.LANCHOR78] 12748.L1743: 12749 ldrh w1, [x2, #:lo12:.LANCHOR78] 12750 adrp x25, .LANCHOR152 12751 ldr w0, [x3, #:lo12:.LANCHOR61] 12752 adrp x24, .LANCHOR42 12753 sub w0, w0, w1 12754 adrp x1, .LANCHOR19 12755 ldrh w1, [x1, #:lo12:.LANCHOR19] 12756 mul w0, w0, w4 12757 str w0, [x25, #:lo12:.LANCHOR152] 12758 mul w0, w1, w0 12759 ldrh w1, [x23, #:lo12:.LANCHOR12] 12760 str w0, [x3, #:lo12:.LANCHOR61] 12761 mov w23, -1 12762 mul w0, w1, w0 12763 adrp x1, .LANCHOR34 12764 str w0, [x1, #:lo12:.LANCHOR34] 12765 bl FtlBbmTblFlush 12766 ldr x0, [x24, #:lo12:.LANCHOR42] 12767 mov w1, 0 12768 ldrh w2, [x22, #:lo12:.LANCHOR6] 12769 lsl w2, w2, 1 12770 bl ftl_memset 12771 adrp x0, .LANCHOR59 12772 adrp x1, .LANCHOR80 12773 ldrh w2, [x21, #:lo12:.LANCHOR5] 12774 str wzr, [x0, #:lo12:.LANCHOR59] 12775 add x0, x1, :lo12:.LANCHOR80 12776 strh w23, [x1, #:lo12:.LANCHOR80] 12777 mov w1, 255 12778 lsr w2, w2, 3 12779 strh wzr, [x0, 2] 12780 strb wzr, [x0, 6] 12781 strb wzr, [x0, 8] 12782 adrp x0, .LANCHOR51 12783 add x19, x0, :lo12:.LANCHOR51 12784 strh wzr, [x0, #:lo12:.LANCHOR51] 12785 mov w0, 1 12786 strb w0, [x19, 8] 12787 adrp x0, .LANCHOR1 12788 strh wzr, [x19, 2] 12789 ldr x0, [x0, #:lo12:.LANCHOR1] 12790 strb wzr, [x19, 6] 12791 bl ftl_memset 12792.L1745: 12793 mov x0, x19 12794 bl make_superblock 12795 ldrb w1, [x19, 7] 12796 ldrh w0, [x19] 12797 cbnz w1, .L1746 12798 ldr x1, [x24, #:lo12:.LANCHOR42] 12799 ubfiz x0, x0, 1, 16 12800 strh w23, [x1, x0] 12801 ldrh w0, [x19] 12802 add w0, w0, 1 12803 strh w0, [x19] 12804 b .L1745 12805.L1732: 12806 ubfiz x3, x0, 2, 16 12807 mvn w2, w0 12808 orr w2, w0, w2, lsl 16 12809 add w0, w0, 1 12810 and w0, w0, 65535 12811 str w2, [x4, x3] 12812 str w6, [x5, x3] 12813 b .L1731 12814.L1734: 12815 mov w0, w25 12816 mov w1, 1 12817 add w25, w25, 1 12818 bl FtlLowFormatEraseBlock 12819 add w19, w19, w0 12820 and w25, w25, 65535 12821 and w19, w19, 65535 12822 b .L1733 12823.L1735: 12824 udiv w0, w19, w0 12825 adrp x1, .LANCHOR31 12826 ldr w19, [x1, #:lo12:.LANCHOR31] 12827 add w0, w0, w19 12828 bl FtlSysBlkNumInit 12829 ldrh w0, [x24, #:lo12:.LANCHOR4] 12830 add x24, x22, :lo12:.LANCHOR6 12831 bl FtlFreeSysBlkQueueInit 12832 ldrh w19, [x21, #:lo12:.LANCHOR5] 12833.L1737: 12834 ldrh w0, [x24] 12835 cmp w0, w19 12836 bls .L1739 12837 mov w0, w19 12838 add w19, w19, 1 12839 mov w1, 1 12840 and w19, w19, 65535 12841 bl FtlLowFormatEraseBlock 12842 b .L1737 12843.L1740: 12844 mov w0, w24 12845 mov w1, 0 12846 add w24, w24, 1 12847 bl FtlLowFormatEraseBlock 12848 add w19, w19, w0 12849 and w24, w24, 65535 12850 and w19, w19, 65535 12851 b .L1736 12852.L1746: 12853 ldr w1, [x20, #:lo12:.LANCHOR70] 12854 ubfiz x0, x0, 1, 16 12855 str w1, [x19, 12] 12856 mov w23, -1 12857 add w1, w1, 1 12858 str w1, [x20, #:lo12:.LANCHOR70] 12859 ldr x1, [x24, #:lo12:.LANCHOR42] 12860 ldrh w2, [x19, 4] 12861 strh w2, [x1, x0] 12862 adrp x2, .LANCHOR52 12863 add x0, x2, :lo12:.LANCHOR52 12864 ldrh w1, [x19] 12865 mov x19, x0 12866 add w1, w1, 1 12867 strh wzr, [x0, 2] 12868 strh w1, [x2, #:lo12:.LANCHOR52] 12869 mov w1, 1 12870 strb wzr, [x0, 6] 12871 strb w1, [x0, 8] 12872.L1747: 12873 mov x0, x19 12874 bl make_superblock 12875 ldrb w1, [x19, 7] 12876 ldrh w0, [x19] 12877 cbnz w1, .L1748 12878 ldr x1, [x24, #:lo12:.LANCHOR42] 12879 ubfiz x0, x0, 1, 16 12880 strh w23, [x1, x0] 12881 ldrh w0, [x19] 12882 add w0, w0, 1 12883 strh w0, [x19] 12884 b .L1747 12885.L1748: 12886 ldr w1, [x20, #:lo12:.LANCHOR70] 12887 ubfiz x0, x0, 1, 16 12888 str w1, [x19, 12] 12889 add w1, w1, 1 12890 str w1, [x20, #:lo12:.LANCHOR70] 12891 ldr x1, [x24, #:lo12:.LANCHOR42] 12892 ldrh w2, [x19, 4] 12893 mov w19, -1 12894 strh w2, [x1, x0] 12895 adrp x0, .LANCHOR53 12896 strh w19, [x0, #:lo12:.LANCHOR53] 12897 bl FtlFreeSysBlkQueueOut 12898 adrp x2, .LANCHOR79 12899 add x1, x2, :lo12:.LANCHOR79 12900 strh w0, [x2, #:lo12:.LANCHOR79] 12901 ldr w0, [x25, #:lo12:.LANCHOR152] 12902 strh w0, [x1, 6] 12903 ldr w0, [x20, #:lo12:.LANCHOR70] 12904 str w0, [x1, 8] 12905 add w0, w0, 1 12906 strh wzr, [x1, 2] 12907 strh w19, [x1, 4] 12908 str w0, [x20, #:lo12:.LANCHOR70] 12909 bl FtlVpcTblFlush 12910 bl FtlSysBlkInit 12911 cbnz w0, .L1749 12912 adrp x0, .LANCHOR86 12913 mov w1, 1 12914 str w1, [x0, #:lo12:.LANCHOR86] 12915.L1749: 12916 mov w0, 0 12917 ldp x19, x20, [sp, 16] 12918 ldp x21, x22, [sp, 32] 12919 ldp x23, x24, [sp, 48] 12920 ldp x25, x26, [sp, 64] 12921 ldp x29, x30, [sp], 80 12922 ret 12923 .size ftl_low_format, .-ftl_low_format 12924 .section .text.ftl_memcmp,"ax",@progbits 12925 .align 2 12926 .global ftl_memcmp 12927 .type ftl_memcmp, %function 12928ftl_memcmp: 12929 uxtw x2, w2 12930 b memcmp 12931 .size ftl_memcmp, .-ftl_memcmp 12932 .global g_nand_ops 12933 .global g_nand_phy_info 12934 .global gc_ink_free_return_value 12935 .global check_vpc_table 12936 .global FtlUpdateVaildLpnCount 12937 .global g_ect_tbl_power_up_flush 12938 .global power_up_flag 12939 .global gFtlInitStatus 12940 .global DeviceCapacity 12941 .global g_power_lost_recovery_flag 12942 .global c_mlc_erase_count_value 12943 .global g_recovery_ppa_tbl 12944 .global g_recovery_page_min_ver 12945 .global g_recovery_page_num 12946 .global sftl_nand_check_spare_buf 12947 .global sftl_temp_buf 12948 .global sftl_nand_check_buf 12949 .global g_cur_erase_blk 12950 .global g_gc_skip_write_count 12951 .global g_gc_head_data_block_count 12952 .global g_gc_head_data_block 12953 .global g_ftl_nand_free_count 12954 .global g_in_swl_replace 12955 .global g_in_gc_progress 12956 .global g_max_erase_count 12957 .global g_totle_sys_slc_erase_count 12958 .global g_totle_slc_erase_count 12959 .global g_min_erase_count 12960 .global g_totle_avg_erase_count 12961 .global g_totle_mlc_erase_count 12962 .global g_totle_l2p_write_count 12963 .global g_totle_cache_write_count 12964 .global g_tmp_data_superblock_id 12965 .global g_totle_read_page_count 12966 .global g_totle_discard_page_count 12967 .global g_totle_read_sector 12968 .global g_totle_write_sector 12969 .global g_totle_write_page_count 12970 .global g_totle_gc_page_count 12971 .global g_gc_blk_index 12972 .global g_gc_merge_free_blk_threshold 12973 .global g_gc_free_blk_threshold 12974 .global g_gc_bad_block_temp_tbl 12975 .global g_gc_bad_block_gc_index 12976 .global g_gc_bad_block_temp_num 12977 .global g_gc_next_blk_1 12978 .global g_gc_next_blk 12979 .global g_gc_cur_blk_max_valid_pages 12980 .global g_gc_cur_blk_valid_pages 12981 .global g_gc_page_offset 12982 .global g_gc_blk_num 12983 .global p_gc_blk_tbl 12984 .global p_gc_page_info 12985 .global g_sys_ext_data 12986 .global g_sys_save_data 12987 .global gp_last_act_superblock 12988 .global g_gc_superblock 12989 .global g_gc_temp_superblock 12990 .global g_buffer_superblock 12991 .global g_active_superblock 12992 .global g_num_data_superblocks 12993 .global g_num_free_superblocks 12994 .global p_data_block_list_tail 12995 .global p_data_block_list_head 12996 .global p_free_data_block_list_head 12997 .global p_data_block_list_table 12998 .global g_l2p_last_update_region_id 12999 .global p_l2p_map_buf 13000 .global p_l2p_ram_map 13001 .global g_totle_vendor_block 13002 .global p_vendor_region_ppn_table 13003 .global p_vendor_block_ver_table 13004 .global p_vendor_block_valid_page_count 13005 .global p_vendor_block_table 13006 .global g_totle_map_block 13007 .global p_map_region_ppn_table 13008 .global p_map_block_ver_table 13009 .global p_map_block_valid_page_count 13010 .global p_map_block_table 13011 .global p_blk_mode_table 13012 .global p_valid_page_count_check_table 13013 .global p_valid_page_count_table 13014 .global g_totle_swl_count 13015 .global p_swl_mul_table 13016 .global p_erase_count_table 13017 .global g_ect_tbl_info_size 13018 .global gp_ect_tbl_info 13019 .global g_gc_num_req 13020 .global c_gc_page_buf_num 13021 .global gp_gc_page_buf_info 13022 .global p_gc_data_buf 13023 .global p_gc_spare_buf 13024 .global p_io_spare_buf 13025 .global p_io_data_buf_1 13026 .global p_io_data_buf_0 13027 .global p_sys_spare_buf 13028 .global p_vendor_data_buf 13029 .global p_sys_data_buf_1 13030 .global p_sys_data_buf 13031 .global p_plane_order_table 13032 .global req_gc_dst 13033 .global req_gc 13034 .global req_erase 13035 .global req_prgm 13036 .global req_read 13037 .global req_sys 13038 .global gVendorBlkInfo 13039 .global gL2pMapInfo 13040 .global gSysFreeQueue 13041 .global gSysInfo 13042 .global gBbtInfo 13043 .global g_MaxLbn 13044 .global g_VaildLpn 13045 .global g_MaxLpn 13046 .global g_MaxLbaSector 13047 .global g_GlobalDataVersion 13048 .global g_GlobalSysVersion 13049 .global ftl_gc_temp_power_lost_recovery_flag 13050 .global c_ftl_nand_max_data_blks 13051 .global c_ftl_nand_data_op_blks_per_plane 13052 .global c_ftl_nand_data_blks_per_plane 13053 .global c_ftl_nand_max_sys_blks 13054 .global c_ftl_nand_init_sys_blks_per_plane 13055 .global c_ftl_nand_sys_blks_per_plane 13056 .global c_ftl_vendor_part_size 13057 .global c_ftl_nand_max_vendor_blks 13058 .global c_ftl_nand_max_map_blks 13059 .global c_ftl_nand_map_blks_per_plane 13060 .global c_ftl_nand_vendor_region_num 13061 .global c_ftl_nand_l2pmap_ram_region_num 13062 .global c_ftl_nand_map_region_num 13063 .global c_ftl_nand_totle_phy_blks 13064 .global c_ftl_nand_reserved_blks 13065 .global c_ftl_nand_byte_pre_oob 13066 .global c_ftl_nand_byte_pre_page 13067 .global c_ftl_nand_sec_pre_page_shift 13068 .global c_ftl_nand_sec_pre_page 13069 .global c_ftl_nand_page_pre_super_blk 13070 .global c_ftl_nand_page_pre_slc_blk 13071 .global c_ftl_nand_page_pre_blk 13072 .global c_ftl_nand_bbm_buf_size 13073 .global c_ftl_nand_ext_blk_pre_plane 13074 .global c_ftl_nand_blk_pre_plane 13075 .global c_ftl_nand_planes_num 13076 .global c_ftl_nand_blks_per_die_shift 13077 .global c_ftl_nand_blks_per_die 13078 .global c_ftl_nand_planes_per_die 13079 .global c_ftl_nand_die_num 13080 .global c_ftl_nand_type 13081 .section .bss.DeviceCapacity,"aw",@nobits 13082 .align 2 13083 .set .LANCHOR26,. + 0 13084 .type DeviceCapacity, %object 13085 .size DeviceCapacity, 4 13086DeviceCapacity: 13087 .zero 4 13088 .section .bss.FtlUpdateVaildLpnCount,"aw",@nobits 13089 .align 1 13090 .set .LANCHOR58,. + 0 13091 .type FtlUpdateVaildLpnCount, %object 13092 .size FtlUpdateVaildLpnCount, 2 13093FtlUpdateVaildLpnCount: 13094 .zero 2 13095 .section .bss.c_ftl_nand_bbm_buf_size,"aw",@nobits 13096 .align 1 13097 .set .LANCHOR137,. + 0 13098 .type c_ftl_nand_bbm_buf_size, %object 13099 .size c_ftl_nand_bbm_buf_size, 2 13100c_ftl_nand_bbm_buf_size: 13101 .zero 2 13102 .section .bss.c_ftl_nand_blk_pre_plane,"aw",@nobits 13103 .align 1 13104 .set .LANCHOR6,. + 0 13105 .type c_ftl_nand_blk_pre_plane, %object 13106 .size c_ftl_nand_blk_pre_plane, 2 13107c_ftl_nand_blk_pre_plane: 13108 .zero 2 13109 .section .bss.c_ftl_nand_blks_per_die,"aw",@nobits 13110 .align 1 13111 .set .LANCHOR17,. + 0 13112 .type c_ftl_nand_blks_per_die, %object 13113 .size c_ftl_nand_blks_per_die, 2 13114c_ftl_nand_blks_per_die: 13115 .zero 2 13116 .section .bss.c_ftl_nand_blks_per_die_shift,"aw",@nobits 13117 .align 1 13118 .set .LANCHOR18,. + 0 13119 .type c_ftl_nand_blks_per_die_shift, %object 13120 .size c_ftl_nand_blks_per_die_shift, 2 13121c_ftl_nand_blks_per_die_shift: 13122 .zero 2 13123 .section .bss.c_ftl_nand_byte_pre_oob,"aw",@nobits 13124 .align 1 13125 .set .LANCHOR24,. + 0 13126 .type c_ftl_nand_byte_pre_oob, %object 13127 .size c_ftl_nand_byte_pre_oob, 2 13128c_ftl_nand_byte_pre_oob: 13129 .zero 2 13130 .section .bss.c_ftl_nand_byte_pre_page,"aw",@nobits 13131 .align 1 13132 .set .LANCHOR23,. + 0 13133 .type c_ftl_nand_byte_pre_page, %object 13134 .size c_ftl_nand_byte_pre_page, 2 13135c_ftl_nand_byte_pre_page: 13136 .zero 2 13137 .section .bss.c_ftl_nand_data_blks_per_plane,"aw",@nobits 13138 .align 1 13139 .set .LANCHOR5,. + 0 13140 .type c_ftl_nand_data_blks_per_plane, %object 13141 .size c_ftl_nand_data_blks_per_plane, 2 13142c_ftl_nand_data_blks_per_plane: 13143 .zero 2 13144 .section .bss.c_ftl_nand_data_op_blks_per_plane,"aw",@nobits 13145 .align 1 13146 .set .LANCHOR78,. + 0 13147 .type c_ftl_nand_data_op_blks_per_plane, %object 13148 .size c_ftl_nand_data_op_blks_per_plane, 2 13149c_ftl_nand_data_op_blks_per_plane: 13150 .zero 2 13151 .section .bss.c_ftl_nand_die_num,"aw",@nobits 13152 .align 1 13153 .set .LANCHOR10,. + 0 13154 .type c_ftl_nand_die_num, %object 13155 .size c_ftl_nand_die_num, 2 13156c_ftl_nand_die_num: 13157 .zero 2 13158 .section .bss.c_ftl_nand_ext_blk_pre_plane,"aw",@nobits 13159 .align 1 13160 .set .LANCHOR15,. + 0 13161 .type c_ftl_nand_ext_blk_pre_plane, %object 13162 .size c_ftl_nand_ext_blk_pre_plane, 2 13163c_ftl_nand_ext_blk_pre_plane: 13164 .zero 2 13165 .section .bss.c_ftl_nand_init_sys_blks_per_plane,"aw",@nobits 13166 .align 2 13167 .set .LANCHOR31,. + 0 13168 .type c_ftl_nand_init_sys_blks_per_plane, %object 13169 .size c_ftl_nand_init_sys_blks_per_plane, 4 13170c_ftl_nand_init_sys_blks_per_plane: 13171 .zero 4 13172 .section .bss.c_ftl_nand_l2pmap_ram_region_num,"aw",@nobits 13173 .align 1 13174 .set .LANCHOR33,. + 0 13175 .type c_ftl_nand_l2pmap_ram_region_num, %object 13176 .size c_ftl_nand_l2pmap_ram_region_num, 2 13177c_ftl_nand_l2pmap_ram_region_num: 13178 .zero 2 13179 .section .bss.c_ftl_nand_map_blks_per_plane,"aw",@nobits 13180 .align 1 13181 .set .LANCHOR29,. + 0 13182 .type c_ftl_nand_map_blks_per_plane, %object 13183 .size c_ftl_nand_map_blks_per_plane, 2 13184c_ftl_nand_map_blks_per_plane: 13185 .zero 2 13186 .section .bss.c_ftl_nand_map_region_num,"aw",@nobits 13187 .align 1 13188 .set .LANCHOR32,. + 0 13189 .type c_ftl_nand_map_region_num, %object 13190 .size c_ftl_nand_map_region_num, 2 13191c_ftl_nand_map_region_num: 13192 .zero 2 13193 .section .bss.c_ftl_nand_max_data_blks,"aw",@nobits 13194 .align 2 13195 .set .LANCHOR7,. + 0 13196 .type c_ftl_nand_max_data_blks, %object 13197 .size c_ftl_nand_max_data_blks, 4 13198c_ftl_nand_max_data_blks: 13199 .zero 4 13200 .section .bss.c_ftl_nand_max_map_blks,"aw",@nobits 13201 .align 2 13202 .set .LANCHOR30,. + 0 13203 .type c_ftl_nand_max_map_blks, %object 13204 .size c_ftl_nand_max_map_blks, 4 13205c_ftl_nand_max_map_blks: 13206 .zero 4 13207 .section .bss.c_ftl_nand_max_sys_blks,"aw",@nobits 13208 .align 2 13209 .set .LANCHOR4,. + 0 13210 .type c_ftl_nand_max_sys_blks, %object 13211 .size c_ftl_nand_max_sys_blks, 4 13212c_ftl_nand_max_sys_blks: 13213 .zero 4 13214 .section .bss.c_ftl_nand_max_vendor_blks,"aw",@nobits 13215 .align 1 13216 .set .LANCHOR27,. + 0 13217 .type c_ftl_nand_max_vendor_blks, %object 13218 .size c_ftl_nand_max_vendor_blks, 2 13219c_ftl_nand_max_vendor_blks: 13220 .zero 2 13221 .section .bss.c_ftl_nand_page_pre_blk,"aw",@nobits 13222 .align 1 13223 .set .LANCHOR19,. + 0 13224 .type c_ftl_nand_page_pre_blk, %object 13225 .size c_ftl_nand_page_pre_blk, 2 13226c_ftl_nand_page_pre_blk: 13227 .zero 2 13228 .section .bss.c_ftl_nand_page_pre_slc_blk,"aw",@nobits 13229 .align 1 13230 .set .LANCHOR20,. + 0 13231 .type c_ftl_nand_page_pre_slc_blk, %object 13232 .size c_ftl_nand_page_pre_slc_blk, 2 13233c_ftl_nand_page_pre_slc_blk: 13234 .zero 2 13235 .section .bss.c_ftl_nand_page_pre_super_blk,"aw",@nobits 13236 .align 1 13237 .set .LANCHOR21,. + 0 13238 .type c_ftl_nand_page_pre_super_blk, %object 13239 .size c_ftl_nand_page_pre_super_blk, 2 13240c_ftl_nand_page_pre_super_blk: 13241 .zero 2 13242 .section .bss.c_ftl_nand_planes_num,"aw",@nobits 13243 .align 1 13244 .set .LANCHOR3,. + 0 13245 .type c_ftl_nand_planes_num, %object 13246 .size c_ftl_nand_planes_num, 2 13247c_ftl_nand_planes_num: 13248 .zero 2 13249 .section .bss.c_ftl_nand_planes_per_die,"aw",@nobits 13250 .align 1 13251 .set .LANCHOR11,. + 0 13252 .type c_ftl_nand_planes_per_die, %object 13253 .size c_ftl_nand_planes_per_die, 2 13254c_ftl_nand_planes_per_die: 13255 .zero 2 13256 .section .bss.c_ftl_nand_reserved_blks,"aw",@nobits 13257 .align 1 13258 .set .LANCHOR25,. + 0 13259 .type c_ftl_nand_reserved_blks, %object 13260 .size c_ftl_nand_reserved_blks, 2 13261c_ftl_nand_reserved_blks: 13262 .zero 2 13263 .section .bss.c_ftl_nand_sec_pre_page,"aw",@nobits 13264 .align 1 13265 .set .LANCHOR12,. + 0 13266 .type c_ftl_nand_sec_pre_page, %object 13267 .size c_ftl_nand_sec_pre_page, 2 13268c_ftl_nand_sec_pre_page: 13269 .zero 2 13270 .section .bss.c_ftl_nand_sec_pre_page_shift,"aw",@nobits 13271 .align 1 13272 .set .LANCHOR22,. + 0 13273 .type c_ftl_nand_sec_pre_page_shift, %object 13274 .size c_ftl_nand_sec_pre_page_shift, 2 13275c_ftl_nand_sec_pre_page_shift: 13276 .zero 2 13277 .section .bss.c_ftl_nand_sys_blks_per_plane,"aw",@nobits 13278 .align 2 13279 .set .LANCHOR2,. + 0 13280 .type c_ftl_nand_sys_blks_per_plane, %object 13281 .size c_ftl_nand_sys_blks_per_plane, 4 13282c_ftl_nand_sys_blks_per_plane: 13283 .zero 4 13284 .section .bss.c_ftl_nand_totle_phy_blks,"aw",@nobits 13285 .align 2 13286 .set .LANCHOR8,. + 0 13287 .type c_ftl_nand_totle_phy_blks, %object 13288 .size c_ftl_nand_totle_phy_blks, 4 13289c_ftl_nand_totle_phy_blks: 13290 .zero 4 13291 .section .bss.c_ftl_nand_type,"aw",@nobits 13292 .align 1 13293 .set .LANCHOR9,. + 0 13294 .type c_ftl_nand_type, %object 13295 .size c_ftl_nand_type, 2 13296c_ftl_nand_type: 13297 .zero 2 13298 .section .bss.c_ftl_nand_vendor_region_num,"aw",@nobits 13299 .align 1 13300 .set .LANCHOR28,. + 0 13301 .type c_ftl_nand_vendor_region_num, %object 13302 .size c_ftl_nand_vendor_region_num, 2 13303c_ftl_nand_vendor_region_num: 13304 .zero 2 13305 .section .bss.c_ftl_vendor_part_size,"aw",@nobits 13306 .align 1 13307 .set .LANCHOR16,. + 0 13308 .type c_ftl_vendor_part_size, %object 13309 .size c_ftl_vendor_part_size, 2 13310c_ftl_vendor_part_size: 13311 .zero 2 13312 .section .bss.c_gc_page_buf_num,"aw",@nobits 13313 .align 2 13314 .set .LANCHOR94,. + 0 13315 .type c_gc_page_buf_num, %object 13316 .size c_gc_page_buf_num, 4 13317c_gc_page_buf_num: 13318 .zero 4 13319 .section .bss.c_mlc_erase_count_value,"aw",@nobits 13320 .align 1 13321 .set .LANCHOR14,. + 0 13322 .type c_mlc_erase_count_value, %object 13323 .size c_mlc_erase_count_value, 2 13324c_mlc_erase_count_value: 13325 .zero 2 13326 .section .bss.check_vpc_table,"aw",@nobits 13327 .align 3 13328 .type check_vpc_table, %object 13329 .size check_vpc_table, 16384 13330check_vpc_table: 13331 .zero 16384 13332 .section .bss.ftl_gc_temp_power_lost_recovery_flag,"aw",@nobits 13333 .align 2 13334 .set .LANCHOR144,. + 0 13335 .type ftl_gc_temp_power_lost_recovery_flag, %object 13336 .size ftl_gc_temp_power_lost_recovery_flag, 4 13337ftl_gc_temp_power_lost_recovery_flag: 13338 .zero 4 13339 .section .bss.gBbtInfo,"aw",@nobits 13340 .align 3 13341 .set .LANCHOR37,. + 0 13342 .type gBbtInfo, %object 13343 .size gBbtInfo, 96 13344gBbtInfo: 13345 .zero 96 13346 .section .bss.gL2pMapInfo,"aw",@nobits 13347 .align 3 13348 .set .LANCHOR140,. + 0 13349 .type gL2pMapInfo, %object 13350 .size gL2pMapInfo, 64 13351gL2pMapInfo: 13352 .zero 64 13353 .section .bss.gSysFreeQueue,"aw",@nobits 13354 .align 3 13355 .set .LANCHOR38,. + 0 13356 .type gSysFreeQueue, %object 13357 .size gSysFreeQueue, 2056 13358gSysFreeQueue: 13359 .zero 2056 13360 .section .bss.gSysInfo,"aw",@nobits 13361 .align 3 13362 .set .LANCHOR79,. + 0 13363 .type gSysInfo, %object 13364 .size gSysInfo, 12 13365gSysInfo: 13366 .zero 12 13367 .section .bss.gVendorBlkInfo,"aw",@nobits 13368 .align 3 13369 .set .LANCHOR158,. + 0 13370 .type gVendorBlkInfo, %object 13371 .size gVendorBlkInfo, 64 13372gVendorBlkInfo: 13373 .zero 64 13374 .section .bss.g_GlobalDataVersion,"aw",@nobits 13375 .align 2 13376 .set .LANCHOR71,. + 0 13377 .type g_GlobalDataVersion, %object 13378 .size g_GlobalDataVersion, 4 13379g_GlobalDataVersion: 13380 .zero 4 13381 .section .bss.g_GlobalSysVersion,"aw",@nobits 13382 .align 2 13383 .set .LANCHOR70,. + 0 13384 .type g_GlobalSysVersion, %object 13385 .size g_GlobalSysVersion, 4 13386g_GlobalSysVersion: 13387 .zero 4 13388 .section .bss.g_MaxLbaSector,"aw",@nobits 13389 .align 2 13390 .set .LANCHOR34,. + 0 13391 .type g_MaxLbaSector, %object 13392 .size g_MaxLbaSector, 4 13393g_MaxLbaSector: 13394 .zero 4 13395 .section .bss.g_MaxLbn,"aw",@nobits 13396 .align 2 13397 .set .LANCHOR152,. + 0 13398 .type g_MaxLbn, %object 13399 .size g_MaxLbn, 4 13400g_MaxLbn: 13401 .zero 4 13402 .section .bss.g_MaxLpn,"aw",@nobits 13403 .align 2 13404 .set .LANCHOR61,. + 0 13405 .type g_MaxLpn, %object 13406 .size g_MaxLpn, 4 13407g_MaxLpn: 13408 .zero 4 13409 .section .bss.g_VaildLpn,"aw",@nobits 13410 .align 2 13411 .set .LANCHOR59,. + 0 13412 .type g_VaildLpn, %object 13413 .size g_VaildLpn, 4 13414g_VaildLpn: 13415 .zero 4 13416 .section .bss.g_active_superblock,"aw",@nobits 13417 .align 3 13418 .set .LANCHOR51,. + 0 13419 .type g_active_superblock, %object 13420 .size g_active_superblock, 48 13421g_active_superblock: 13422 .zero 48 13423 .section .bss.g_buffer_superblock,"aw",@nobits 13424 .align 3 13425 .set .LANCHOR52,. + 0 13426 .type g_buffer_superblock, %object 13427 .size g_buffer_superblock, 48 13428g_buffer_superblock: 13429 .zero 48 13430 .section .bss.g_cur_erase_blk,"aw",@nobits 13431 .align 2 13432 .set .LANCHOR111,. + 0 13433 .type g_cur_erase_blk, %object 13434 .size g_cur_erase_blk, 4 13435g_cur_erase_blk: 13436 .zero 4 13437 .section .bss.g_ect_tbl_info_size,"aw",@nobits 13438 .align 1 13439 .set .LANCHOR125,. + 0 13440 .type g_ect_tbl_info_size, %object 13441 .size g_ect_tbl_info_size, 2 13442g_ect_tbl_info_size: 13443 .zero 2 13444 .section .bss.g_ect_tbl_power_up_flush,"aw",@nobits 13445 .align 1 13446 .set .LANCHOR170,. + 0 13447 .type g_ect_tbl_power_up_flush, %object 13448 .size g_ect_tbl_power_up_flush, 2 13449g_ect_tbl_power_up_flush: 13450 .zero 2 13451 .section .bss.g_ftl_nand_free_count,"aw",@nobits 13452 .align 2 13453 .set .LANCHOR181,. + 0 13454 .type g_ftl_nand_free_count, %object 13455 .size g_ftl_nand_free_count, 4 13456g_ftl_nand_free_count: 13457 .zero 4 13458 .section .bss.g_gc_bad_block_gc_index,"aw",@nobits 13459 .align 1 13460 .set .LANCHOR103,. + 0 13461 .type g_gc_bad_block_gc_index, %object 13462 .size g_gc_bad_block_gc_index, 2 13463g_gc_bad_block_gc_index: 13464 .zero 2 13465 .section .bss.g_gc_bad_block_temp_num,"aw",@nobits 13466 .align 1 13467 .set .LANCHOR101,. + 0 13468 .type g_gc_bad_block_temp_num, %object 13469 .size g_gc_bad_block_temp_num, 2 13470g_gc_bad_block_temp_num: 13471 .zero 2 13472 .section .bss.g_gc_bad_block_temp_tbl,"aw",@nobits 13473 .align 3 13474 .set .LANCHOR102,. + 0 13475 .type g_gc_bad_block_temp_tbl, %object 13476 .size g_gc_bad_block_temp_tbl, 34 13477g_gc_bad_block_temp_tbl: 13478 .zero 34 13479 .section .bss.g_gc_blk_index,"aw",@nobits 13480 .align 1 13481 .set .LANCHOR85,. + 0 13482 .type g_gc_blk_index, %object 13483 .size g_gc_blk_index, 2 13484g_gc_blk_index: 13485 .zero 2 13486 .section .bss.g_gc_blk_num,"aw",@nobits 13487 .align 1 13488 .set .LANCHOR95,. + 0 13489 .type g_gc_blk_num, %object 13490 .size g_gc_blk_num, 2 13491g_gc_blk_num: 13492 .zero 2 13493 .section .bss.g_gc_cur_blk_max_valid_pages,"aw",@nobits 13494 .align 1 13495 .set .LANCHOR179,. + 0 13496 .type g_gc_cur_blk_max_valid_pages, %object 13497 .size g_gc_cur_blk_max_valid_pages, 2 13498g_gc_cur_blk_max_valid_pages: 13499 .zero 2 13500 .section .bss.g_gc_cur_blk_valid_pages,"aw",@nobits 13501 .align 1 13502 .set .LANCHOR178,. + 0 13503 .type g_gc_cur_blk_valid_pages, %object 13504 .size g_gc_cur_blk_valid_pages, 2 13505g_gc_cur_blk_valid_pages: 13506 .zero 2 13507 .section .bss.g_gc_free_blk_threshold,"aw",@nobits 13508 .align 1 13509 .set .LANCHOR82,. + 0 13510 .type g_gc_free_blk_threshold, %object 13511 .size g_gc_free_blk_threshold, 2 13512g_gc_free_blk_threshold: 13513 .zero 2 13514 .section .bss.g_gc_head_data_block,"aw",@nobits 13515 .align 2 13516 .set .LANCHOR109,. + 0 13517 .type g_gc_head_data_block, %object 13518 .size g_gc_head_data_block, 4 13519g_gc_head_data_block: 13520 .zero 4 13521 .section .bss.g_gc_head_data_block_count,"aw",@nobits 13522 .align 2 13523 .set .LANCHOR110,. + 0 13524 .type g_gc_head_data_block_count, %object 13525 .size g_gc_head_data_block_count, 4 13526g_gc_head_data_block_count: 13527 .zero 4 13528 .section .bss.g_gc_merge_free_blk_threshold,"aw",@nobits 13529 .align 1 13530 .set .LANCHOR83,. + 0 13531 .type g_gc_merge_free_blk_threshold, %object 13532 .size g_gc_merge_free_blk_threshold, 2 13533g_gc_merge_free_blk_threshold: 13534 .zero 2 13535 .section .bss.g_gc_next_blk,"aw",@nobits 13536 .align 1 13537 .set .LANCHOR99,. + 0 13538 .type g_gc_next_blk, %object 13539 .size g_gc_next_blk, 2 13540g_gc_next_blk: 13541 .zero 2 13542 .section .bss.g_gc_next_blk_1,"aw",@nobits 13543 .align 1 13544 .set .LANCHOR100,. + 0 13545 .type g_gc_next_blk_1, %object 13546 .size g_gc_next_blk_1, 2 13547g_gc_next_blk_1: 13548 .zero 2 13549 .section .bss.g_gc_num_req,"aw",@nobits 13550 .align 2 13551 .set .LANCHOR89,. + 0 13552 .type g_gc_num_req, %object 13553 .size g_gc_num_req, 4 13554g_gc_num_req: 13555 .zero 4 13556 .section .bss.g_gc_page_offset,"aw",@nobits 13557 .align 1 13558 .set .LANCHOR97,. + 0 13559 .type g_gc_page_offset, %object 13560 .size g_gc_page_offset, 2 13561g_gc_page_offset: 13562 .zero 2 13563 .section .bss.g_gc_skip_write_count,"aw",@nobits 13564 .align 2 13565 .set .LANCHOR84,. + 0 13566 .type g_gc_skip_write_count, %object 13567 .size g_gc_skip_write_count, 4 13568g_gc_skip_write_count: 13569 .zero 4 13570 .section .bss.g_gc_superblock,"aw",@nobits 13571 .align 3 13572 .set .LANCHOR80,. + 0 13573 .type g_gc_superblock, %object 13574 .size g_gc_superblock, 48 13575g_gc_superblock: 13576 .zero 48 13577 .section .bss.g_gc_temp_superblock,"aw",@nobits 13578 .align 3 13579 .set .LANCHOR53,. + 0 13580 .type g_gc_temp_superblock, %object 13581 .size g_gc_temp_superblock, 48 13582g_gc_temp_superblock: 13583 .zero 48 13584 .section .bss.g_in_gc_progress,"aw",@nobits 13585 .align 2 13586 .set .LANCHOR108,. + 0 13587 .type g_in_gc_progress, %object 13588 .size g_in_gc_progress, 4 13589g_in_gc_progress: 13590 .zero 4 13591 .section .bss.g_in_swl_replace,"aw",@nobits 13592 .align 2 13593 .set .LANCHOR87,. + 0 13594 .type g_in_swl_replace, %object 13595 .size g_in_swl_replace, 4 13596g_in_swl_replace: 13597 .zero 4 13598 .section .bss.g_l2p_last_update_region_id,"aw",@nobits 13599 .align 1 13600 .set .LANCHOR56,. + 0 13601 .type g_l2p_last_update_region_id, %object 13602 .size g_l2p_last_update_region_id, 2 13603g_l2p_last_update_region_id: 13604 .zero 2 13605 .section .bss.g_max_erase_count,"aw",@nobits 13606 .align 2 13607 .set .LANCHOR76,. + 0 13608 .type g_max_erase_count, %object 13609 .size g_max_erase_count, 4 13610g_max_erase_count: 13611 .zero 4 13612 .section .bss.g_min_erase_count,"aw",@nobits 13613 .align 2 13614 .set .LANCHOR77,. + 0 13615 .type g_min_erase_count, %object 13616 .size g_min_erase_count, 4 13617g_min_erase_count: 13618 .zero 4 13619 .section .bss.g_nand_ops,"aw",@nobits 13620 .align 3 13621 .set .LANCHOR105,. + 0 13622 .type g_nand_ops, %object 13623 .size g_nand_ops, 32 13624g_nand_ops: 13625 .zero 32 13626 .section .bss.g_nand_phy_info,"aw",@nobits 13627 .align 3 13628 .set .LANCHOR0,. + 0 13629 .type g_nand_phy_info, %object 13630 .size g_nand_phy_info, 24 13631g_nand_phy_info: 13632 .zero 24 13633 .section .bss.g_num_data_superblocks,"aw",@nobits 13634 .align 1 13635 .set .LANCHOR45,. + 0 13636 .type g_num_data_superblocks, %object 13637 .size g_num_data_superblocks, 2 13638g_num_data_superblocks: 13639 .zero 2 13640 .section .bss.g_num_free_superblocks,"aw",@nobits 13641 .align 1 13642 .set .LANCHOR48,. + 0 13643 .type g_num_free_superblocks, %object 13644 .size g_num_free_superblocks, 2 13645g_num_free_superblocks: 13646 .zero 2 13647 .section .bss.g_power_lost_recovery_flag,"aw",@nobits 13648 .align 1 13649 .set .LANCHOR167,. + 0 13650 .type g_power_lost_recovery_flag, %object 13651 .size g_power_lost_recovery_flag, 2 13652g_power_lost_recovery_flag: 13653 .zero 2 13654 .section .bss.g_recovery_page_min_ver,"aw",@nobits 13655 .align 2 13656 .set .LANCHOR145,. + 0 13657 .type g_recovery_page_min_ver, %object 13658 .size g_recovery_page_min_ver, 4 13659g_recovery_page_min_ver: 13660 .zero 4 13661 .section .bss.g_recovery_page_num,"aw",@nobits 13662 .align 2 13663 .set .LANCHOR168,. + 0 13664 .type g_recovery_page_num, %object 13665 .size g_recovery_page_num, 4 13666g_recovery_page_num: 13667 .zero 4 13668 .section .bss.g_recovery_ppa_tbl,"aw",@nobits 13669 .align 3 13670 .set .LANCHOR169,. + 0 13671 .type g_recovery_ppa_tbl, %object 13672 .size g_recovery_ppa_tbl, 128 13673g_recovery_ppa_tbl: 13674 .zero 128 13675 .section .bss.g_sys_ext_data,"aw",@nobits 13676 .align 3 13677 .set .LANCHOR81,. + 0 13678 .type g_sys_ext_data, %object 13679 .size g_sys_ext_data, 512 13680g_sys_ext_data: 13681 .zero 512 13682 .section .bss.g_sys_save_data,"aw",@nobits 13683 .align 3 13684 .set .LANCHOR39,. + 0 13685 .type g_sys_save_data, %object 13686 .size g_sys_save_data, 48 13687g_sys_save_data: 13688 .zero 48 13689 .section .bss.g_tmp_data_superblock_id,"aw",@nobits 13690 .align 1 13691 .set .LANCHOR142,. + 0 13692 .type g_tmp_data_superblock_id, %object 13693 .size g_tmp_data_superblock_id, 2 13694g_tmp_data_superblock_id: 13695 .zero 2 13696 .section .bss.g_totle_avg_erase_count,"aw",@nobits 13697 .align 2 13698 .set .LANCHOR74,. + 0 13699 .type g_totle_avg_erase_count, %object 13700 .size g_totle_avg_erase_count, 4 13701g_totle_avg_erase_count: 13702 .zero 4 13703 .section .bss.g_totle_cache_write_count,"aw",@nobits 13704 .align 2 13705 .set .LANCHOR65,. + 0 13706 .type g_totle_cache_write_count, %object 13707 .size g_totle_cache_write_count, 4 13708g_totle_cache_write_count: 13709 .zero 4 13710 .section .bss.g_totle_discard_page_count,"aw",@nobits 13711 .align 2 13712 .set .LANCHOR63,. + 0 13713 .type g_totle_discard_page_count, %object 13714 .size g_totle_discard_page_count, 4 13715g_totle_discard_page_count: 13716 .zero 4 13717 .section .bss.g_totle_gc_page_count,"aw",@nobits 13718 .align 2 13719 .set .LANCHOR67,. + 0 13720 .type g_totle_gc_page_count, %object 13721 .size g_totle_gc_page_count, 4 13722g_totle_gc_page_count: 13723 .zero 4 13724 .section .bss.g_totle_l2p_write_count,"aw",@nobits 13725 .align 2 13726 .set .LANCHOR66,. + 0 13727 .type g_totle_l2p_write_count, %object 13728 .size g_totle_l2p_write_count, 4 13729g_totle_l2p_write_count: 13730 .zero 4 13731 .section .bss.g_totle_map_block,"aw",@nobits 13732 .align 1 13733 .set .LANCHOR141,. + 0 13734 .type g_totle_map_block, %object 13735 .size g_totle_map_block, 2 13736g_totle_map_block: 13737 .zero 2 13738 .section .bss.g_totle_mlc_erase_count,"aw",@nobits 13739 .align 2 13740 .set .LANCHOR72,. + 0 13741 .type g_totle_mlc_erase_count, %object 13742 .size g_totle_mlc_erase_count, 4 13743g_totle_mlc_erase_count: 13744 .zero 4 13745 .section .bss.g_totle_read_page_count,"aw",@nobits 13746 .align 2 13747 .set .LANCHOR62,. + 0 13748 .type g_totle_read_page_count, %object 13749 .size g_totle_read_page_count, 4 13750g_totle_read_page_count: 13751 .zero 4 13752 .section .bss.g_totle_read_sector,"aw",@nobits 13753 .align 2 13754 .set .LANCHOR69,. + 0 13755 .type g_totle_read_sector, %object 13756 .size g_totle_read_sector, 4 13757g_totle_read_sector: 13758 .zero 4 13759 .section .bss.g_totle_slc_erase_count,"aw",@nobits 13760 .align 2 13761 .set .LANCHOR73,. + 0 13762 .type g_totle_slc_erase_count, %object 13763 .size g_totle_slc_erase_count, 4 13764g_totle_slc_erase_count: 13765 .zero 4 13766 .section .bss.g_totle_swl_count,"aw",@nobits 13767 .align 2 13768 .set .LANCHOR143,. + 0 13769 .type g_totle_swl_count, %object 13770 .size g_totle_swl_count, 4 13771g_totle_swl_count: 13772 .zero 4 13773 .section .bss.g_totle_sys_slc_erase_count,"aw",@nobits 13774 .align 2 13775 .set .LANCHOR75,. + 0 13776 .type g_totle_sys_slc_erase_count, %object 13777 .size g_totle_sys_slc_erase_count, 4 13778g_totle_sys_slc_erase_count: 13779 .zero 4 13780 .section .bss.g_totle_vendor_block,"aw",@nobits 13781 .align 1 13782 .set .LANCHOR35,. + 0 13783 .type g_totle_vendor_block, %object 13784 .size g_totle_vendor_block, 2 13785g_totle_vendor_block: 13786 .zero 2 13787 .section .bss.g_totle_write_page_count,"aw",@nobits 13788 .align 2 13789 .set .LANCHOR64,. + 0 13790 .type g_totle_write_page_count, %object 13791 .size g_totle_write_page_count, 4 13792g_totle_write_page_count: 13793 .zero 4 13794 .section .bss.g_totle_write_sector,"aw",@nobits 13795 .align 2 13796 .set .LANCHOR68,. + 0 13797 .type g_totle_write_sector, %object 13798 .size g_totle_write_sector, 4 13799g_totle_write_sector: 13800 .zero 4 13801 .section .bss.gc_discard_updated,"aw",@nobits 13802 .align 2 13803 .set .LANCHOR172,. + 0 13804 .type gc_discard_updated, %object 13805 .size gc_discard_updated, 4 13806gc_discard_updated: 13807 .zero 4 13808 .section .bss.gc_ink_free_return_value,"aw",@nobits 13809 .align 1 13810 .set .LANCHOR177,. + 0 13811 .type gc_ink_free_return_value, %object 13812 .size gc_ink_free_return_value, 2 13813gc_ink_free_return_value: 13814 .zero 2 13815 .section .bss.gp_ect_tbl_info,"aw",@nobits 13816 .align 3 13817 .set .LANCHOR127,. + 0 13818 .type gp_ect_tbl_info, %object 13819 .size gp_ect_tbl_info, 8 13820gp_ect_tbl_info: 13821 .zero 8 13822 .section .bss.gp_flash_check_buf,"aw",@nobits 13823 .align 3 13824 .set .LANCHOR186,. + 0 13825 .type gp_flash_check_buf, %object 13826 .size gp_flash_check_buf, 8 13827gp_flash_check_buf: 13828 .zero 8 13829 .section .bss.gp_gc_page_buf_info,"aw",@nobits 13830 .align 3 13831 .set .LANCHOR90,. + 0 13832 .type gp_gc_page_buf_info, %object 13833 .size gp_gc_page_buf_info, 8 13834gp_gc_page_buf_info: 13835 .zero 8 13836 .section .bss.gp_last_act_superblock,"aw",@nobits 13837 .align 3 13838 .type gp_last_act_superblock, %object 13839 .size gp_last_act_superblock, 8 13840gp_last_act_superblock: 13841 .zero 8 13842 .section .bss.idb_buf,"aw",@nobits 13843 .align 3 13844 .set .LANCHOR185,. + 0 13845 .type idb_buf, %object 13846 .size idb_buf, 8 13847idb_buf: 13848 .zero 8 13849 .section .bss.idb_need_write_back,"aw",@nobits 13850 .align 2 13851 .set .LANCHOR184,. + 0 13852 .type idb_need_write_back, %object 13853 .size idb_need_write_back, 4 13854idb_need_write_back: 13855 .zero 4 13856 .section .bss.p_blk_mode_table,"aw",@nobits 13857 .align 3 13858 .set .LANCHOR1,. + 0 13859 .type p_blk_mode_table, %object 13860 .size p_blk_mode_table, 8 13861p_blk_mode_table: 13862 .zero 8 13863 .section .bss.p_data_block_list_head,"aw",@nobits 13864 .align 3 13865 .set .LANCHOR41,. + 0 13866 .type p_data_block_list_head, %object 13867 .size p_data_block_list_head, 8 13868p_data_block_list_head: 13869 .zero 8 13870 .section .bss.p_data_block_list_table,"aw",@nobits 13871 .align 3 13872 .set .LANCHOR40,. + 0 13873 .type p_data_block_list_table, %object 13874 .size p_data_block_list_table, 8 13875p_data_block_list_table: 13876 .zero 8 13877 .section .bss.p_data_block_list_tail,"aw",@nobits 13878 .align 3 13879 .set .LANCHOR44,. + 0 13880 .type p_data_block_list_tail, %object 13881 .size p_data_block_list_tail, 8 13882p_data_block_list_tail: 13883 .zero 8 13884 .section .bss.p_erase_count_table,"aw",@nobits 13885 .align 3 13886 .set .LANCHOR43,. + 0 13887 .type p_erase_count_table, %object 13888 .size p_erase_count_table, 8 13889p_erase_count_table: 13890 .zero 8 13891 .section .bss.p_free_data_block_list_head,"aw",@nobits 13892 .align 3 13893 .set .LANCHOR47,. + 0 13894 .type p_free_data_block_list_head, %object 13895 .size p_free_data_block_list_head, 8 13896p_free_data_block_list_head: 13897 .zero 8 13898 .section .bss.p_gc_blk_tbl,"aw",@nobits 13899 .align 3 13900 .set .LANCHOR96,. + 0 13901 .type p_gc_blk_tbl, %object 13902 .size p_gc_blk_tbl, 8 13903p_gc_blk_tbl: 13904 .zero 8 13905 .section .bss.p_gc_data_buf,"aw",@nobits 13906 .align 3 13907 .set .LANCHOR91,. + 0 13908 .type p_gc_data_buf, %object 13909 .size p_gc_data_buf, 8 13910p_gc_data_buf: 13911 .zero 8 13912 .section .bss.p_gc_page_info,"aw",@nobits 13913 .align 3 13914 .set .LANCHOR98,. + 0 13915 .type p_gc_page_info, %object 13916 .size p_gc_page_info, 8 13917p_gc_page_info: 13918 .zero 8 13919 .section .bss.p_gc_spare_buf,"aw",@nobits 13920 .align 3 13921 .set .LANCHOR92,. + 0 13922 .type p_gc_spare_buf, %object 13923 .size p_gc_spare_buf, 8 13924p_gc_spare_buf: 13925 .zero 8 13926 .section .bss.p_io_data_buf_0,"aw",@nobits 13927 .align 3 13928 .set .LANCHOR118,. + 0 13929 .type p_io_data_buf_0, %object 13930 .size p_io_data_buf_0, 8 13931p_io_data_buf_0: 13932 .zero 8 13933 .section .bss.p_io_data_buf_1,"aw",@nobits 13934 .align 3 13935 .set .LANCHOR119,. + 0 13936 .type p_io_data_buf_1, %object 13937 .size p_io_data_buf_1, 8 13938p_io_data_buf_1: 13939 .zero 8 13940 .section .bss.p_io_spare_buf,"aw",@nobits 13941 .align 3 13942 .set .LANCHOR124,. + 0 13943 .type p_io_spare_buf, %object 13944 .size p_io_spare_buf, 8 13945p_io_spare_buf: 13946 .zero 8 13947 .section .bss.p_l2p_map_buf,"aw",@nobits 13948 .align 3 13949 .set .LANCHOR136,. + 0 13950 .type p_l2p_map_buf, %object 13951 .size p_l2p_map_buf, 8 13952p_l2p_map_buf: 13953 .zero 8 13954 .section .bss.p_l2p_ram_map,"aw",@nobits 13955 .align 3 13956 .set .LANCHOR55,. + 0 13957 .type p_l2p_ram_map, %object 13958 .size p_l2p_ram_map, 8 13959p_l2p_ram_map: 13960 .zero 8 13961 .section .bss.p_map_block_table,"aw",@nobits 13962 .align 3 13963 .set .LANCHOR129,. + 0 13964 .type p_map_block_table, %object 13965 .size p_map_block_table, 8 13966p_map_block_table: 13967 .zero 8 13968 .section .bss.p_map_block_valid_page_count,"aw",@nobits 13969 .align 3 13970 .set .LANCHOR130,. + 0 13971 .type p_map_block_valid_page_count, %object 13972 .size p_map_block_valid_page_count, 8 13973p_map_block_valid_page_count: 13974 .zero 8 13975 .section .bss.p_map_block_ver_table,"aw",@nobits 13976 .align 3 13977 .set .LANCHOR135,. + 0 13978 .type p_map_block_ver_table, %object 13979 .size p_map_block_ver_table, 8 13980p_map_block_ver_table: 13981 .zero 8 13982 .section .bss.p_map_region_ppn_table,"aw",@nobits 13983 .align 3 13984 .set .LANCHOR134,. + 0 13985 .type p_map_region_ppn_table, %object 13986 .size p_map_region_ppn_table, 8 13987p_map_region_ppn_table: 13988 .zero 8 13989 .section .bss.p_plane_order_table,"aw",@nobits 13990 .align 3 13991 .set .LANCHOR13,. + 0 13992 .type p_plane_order_table, %object 13993 .size p_plane_order_table, 32 13994p_plane_order_table: 13995 .zero 32 13996 .section .bss.p_swl_mul_table,"aw",@nobits 13997 .align 3 13998 .set .LANCHOR126,. + 0 13999 .type p_swl_mul_table, %object 14000 .size p_swl_mul_table, 8 14001p_swl_mul_table: 14002 .zero 8 14003 .section .bss.p_sys_data_buf,"aw",@nobits 14004 .align 3 14005 .set .LANCHOR115,. + 0 14006 .type p_sys_data_buf, %object 14007 .size p_sys_data_buf, 8 14008p_sys_data_buf: 14009 .zero 8 14010 .section .bss.p_sys_data_buf_1,"aw",@nobits 14011 .align 3 14012 .set .LANCHOR116,. + 0 14013 .type p_sys_data_buf_1, %object 14014 .size p_sys_data_buf_1, 8 14015p_sys_data_buf_1: 14016 .zero 8 14017 .section .bss.p_sys_spare_buf,"aw",@nobits 14018 .align 3 14019 .set .LANCHOR123,. + 0 14020 .type p_sys_spare_buf, %object 14021 .size p_sys_spare_buf, 8 14022p_sys_spare_buf: 14023 .zero 8 14024 .section .bss.p_valid_page_count_check_table,"aw",@nobits 14025 .align 3 14026 .set .LANCHOR128,. + 0 14027 .type p_valid_page_count_check_table, %object 14028 .size p_valid_page_count_check_table, 8 14029p_valid_page_count_check_table: 14030 .zero 8 14031 .section .bss.p_valid_page_count_table,"aw",@nobits 14032 .align 3 14033 .set .LANCHOR42,. + 0 14034 .type p_valid_page_count_table, %object 14035 .size p_valid_page_count_table, 8 14036p_valid_page_count_table: 14037 .zero 8 14038 .section .bss.p_vendor_block_table,"aw",@nobits 14039 .align 3 14040 .set .LANCHOR36,. + 0 14041 .type p_vendor_block_table, %object 14042 .size p_vendor_block_table, 8 14043p_vendor_block_table: 14044 .zero 8 14045 .section .bss.p_vendor_block_valid_page_count,"aw",@nobits 14046 .align 3 14047 .set .LANCHOR131,. + 0 14048 .type p_vendor_block_valid_page_count, %object 14049 .size p_vendor_block_valid_page_count, 8 14050p_vendor_block_valid_page_count: 14051 .zero 8 14052 .section .bss.p_vendor_block_ver_table,"aw",@nobits 14053 .align 3 14054 .set .LANCHOR132,. + 0 14055 .type p_vendor_block_ver_table, %object 14056 .size p_vendor_block_ver_table, 8 14057p_vendor_block_ver_table: 14058 .zero 8 14059 .section .bss.p_vendor_data_buf,"aw",@nobits 14060 .align 3 14061 .set .LANCHOR117,. + 0 14062 .type p_vendor_data_buf, %object 14063 .size p_vendor_data_buf, 8 14064p_vendor_data_buf: 14065 .zero 8 14066 .section .bss.p_vendor_region_ppn_table,"aw",@nobits 14067 .align 3 14068 .set .LANCHOR133,. + 0 14069 .type p_vendor_region_ppn_table, %object 14070 .size p_vendor_region_ppn_table, 8 14071p_vendor_region_ppn_table: 14072 .zero 8 14073 .section .bss.req_erase,"aw",@nobits 14074 .align 3 14075 .set .LANCHOR106,. + 0 14076 .type req_erase, %object 14077 .size req_erase, 8 14078req_erase: 14079 .zero 8 14080 .section .bss.req_gc,"aw",@nobits 14081 .align 3 14082 .set .LANCHOR93,. + 0 14083 .type req_gc, %object 14084 .size req_gc, 8 14085req_gc: 14086 .zero 8 14087 .section .bss.req_gc_dst,"aw",@nobits 14088 .align 3 14089 .set .LANCHOR113,. + 0 14090 .type req_gc_dst, %object 14091 .size req_gc_dst, 8 14092req_gc_dst: 14093 .zero 8 14094 .section .bss.req_prgm,"aw",@nobits 14095 .align 3 14096 .set .LANCHOR114,. + 0 14097 .type req_prgm, %object 14098 .size req_prgm, 8 14099req_prgm: 14100 .zero 8 14101 .section .bss.req_read,"aw",@nobits 14102 .align 3 14103 .set .LANCHOR112,. + 0 14104 .type req_read, %object 14105 .size req_read, 8 14106req_read: 14107 .zero 8 14108 .section .bss.req_sys,"aw",@nobits 14109 .align 3 14110 .set .LANCHOR148,. + 0 14111 .type req_sys, %object 14112 .size req_sys, 32 14113req_sys: 14114 .zero 32 14115 .section .bss.sftl_nand_check_buf,"aw",@nobits 14116 .align 3 14117 .set .LANCHOR120,. + 0 14118 .type sftl_nand_check_buf, %object 14119 .size sftl_nand_check_buf, 8 14120sftl_nand_check_buf: 14121 .zero 8 14122 .section .bss.sftl_nand_check_spare_buf,"aw",@nobits 14123 .align 3 14124 .set .LANCHOR122,. + 0 14125 .type sftl_nand_check_spare_buf, %object 14126 .size sftl_nand_check_spare_buf, 8 14127sftl_nand_check_spare_buf: 14128 .zero 8 14129 .section .bss.sftl_temp_buf,"aw",@nobits 14130 .align 3 14131 .set .LANCHOR121,. + 0 14132 .type sftl_temp_buf, %object 14133 .size sftl_temp_buf, 8 14134sftl_temp_buf: 14135 .zero 8 14136 .section .data.ftl_gc_temp_block_bops_scan_page_addr,"aw",@progbits 14137 .align 1 14138 .set .LANCHOR162,. + 0 14139 .type ftl_gc_temp_block_bops_scan_page_addr, %object 14140 .size ftl_gc_temp_block_bops_scan_page_addr, 2 14141ftl_gc_temp_block_bops_scan_page_addr: 14142 .hword -1 14143 .section .data.gFtlInitStatus,"aw",@progbits 14144 .align 2 14145 .set .LANCHOR86,. + 0 14146 .type gFtlInitStatus, %object 14147 .size gFtlInitStatus, 4 14148gFtlInitStatus: 14149 .word -1 14150 .section .data.power_up_flag,"aw",@progbits 14151 .align 2 14152 .set .LANCHOR182,. + 0 14153 .type power_up_flag, %object 14154 .size power_up_flag, 4 14155power_up_flag: 14156 .word 1 14157 .section .rodata.FlashEraseBlocks.str1.1,"aMS",@progbits,1 14158.LC79: 14159 .string "%s: addr: %x is in id block!!!!!!!!!!\n" 14160.LC80: 14161 .string "not free: w: d:" 14162.LC81: 14163 .string "not free: w: s:" 14164 .section .rodata.FlashProgPages.str1.1,"aMS",@progbits,1 14165.LC85: 14166 .string "prog read error: = %x\n" 14167.LC86: 14168 .string "prog read s error: = %x %x %x\n" 14169.LC87: 14170 .string "prog read d error: = %x %x %x\n" 14171 .section .rodata.FtlBbmMapBadBlock.str1.1,"aMS",@progbits,1 14172.LC0: 14173 .string "phyBlk = 0x%x die = %d block_in_die = 0x%x 0x%8x\n" 14174 .section .rodata.FtlBbmTblFlush.str1.1,"aMS",@progbits,1 14175.LC101: 14176 .string "FtlBbmTblFlush id=%x,page=%x,previd=%x cnt=%d\n" 14177.LC102: 14178 .string "FtlBbmTblFlush error:%x\n" 14179.LC103: 14180 .string "FtlBbmTblFlush error = %x error count = %d\n" 14181 .section .rodata.FtlFreeSysBlkQueueOut.str1.1,"aMS",@progbits,1 14182.LC82: 14183 .string "FtlFreeSysBlkQueueOut = %x, free count = %d, error\n" 14184 .section .rodata.FtlGcFreeBadSuperBlk.str1.1,"aMS",@progbits,1 14185.LC104: 14186 .string "FtlGcFreeBadSuperBlk 0x%x\n" 14187 .section .rodata.FtlGcMarkBadPhyBlk.str1.1,"aMS",@progbits,1 14188.LC74: 14189 .string "FtlGcMarkBadPhyBlk %d 0x%x\n" 14190 .section .rodata.FtlGcRefreshBlock.str1.1,"aMS",@progbits,1 14191.LC73: 14192 .string "FtlGcRefreshBlock 0x%x\n" 14193 .section .rodata.FtlGcScanTempBlk.str1.1,"aMS",@progbits,1 14194.LC100: 14195 .string "FtlGcScanTempBlk Error ID %x %x!!!!!!! \n" 14196 .section .rodata.FtlLoadEctTbl.str1.1,"aMS",@progbits,1 14197.LC108: 14198 .string "no ect" 14199 .section .rodata.FtlMapWritePage.str1.1,"aMS",@progbits,1 14200.LC88: 14201 .string "FtlMapWritePage error = %x \n" 14202.LC89: 14203 .string "FtlMapWritePage error = %x error count = %d\n" 14204 .section .rodata.FtlMemInit.str1.1,"aMS",@progbits,1 14205.LC84: 14206 .string "%s error allocating memory. return -1\n" 14207 .section .rodata.FtlPrintInfo2buf.str1.1,"aMS",@progbits,1 14208.LC2: 14209 .string "FLASH INFO:\n" 14210.LC3: 14211 .string "Device Capacity: %d MB\n" 14212.LC4: 14213 .string "FTL INFO:\n" 14214.LC5: 14215 .string "g_MaxLpn = 0x%x\n" 14216.LC6: 14217 .string "g_VaildLpn = 0x%x\n" 14218.LC7: 14219 .string "read_page_count = 0x%x\n" 14220.LC8: 14221 .string "discard_page_count = 0x%x\n" 14222.LC9: 14223 .string "write_page_count = 0x%x\n" 14224.LC10: 14225 .string "cache_write_count = 0x%x\n" 14226.LC11: 14227 .string "l2p_write_count = 0x%x\n" 14228.LC12: 14229 .string "gc_page_count = 0x%x\n" 14230.LC13: 14231 .string "totle_write = %d MB\n" 14232.LC14: 14233 .string "totle_read = %d MB\n" 14234.LC15: 14235 .string "GSV = 0x%x\n" 14236.LC16: 14237 .string "GDV = 0x%x\n" 14238.LC17: 14239 .string "bad blk num = %d\n" 14240.LC18: 14241 .string "free_superblocks = 0x%x\n" 14242.LC19: 14243 .string "mlc_EC = 0x%x\n" 14244.LC20: 14245 .string "slc_EC = 0x%x\n" 14246.LC21: 14247 .string "avg_EC = 0x%x\n" 14248.LC22: 14249 .string "sys_EC = 0x%x\n" 14250.LC23: 14251 .string "max_EC = 0x%x\n" 14252.LC24: 14253 .string "min_EC = 0x%x\n" 14254.LC25: 14255 .string "PLT = 0x%x\n" 14256.LC26: 14257 .string "POT = 0x%x\n" 14258.LC27: 14259 .string "MaxSector = 0x%x\n" 14260.LC28: 14261 .string "init_sys_blks_pp = 0x%x\n" 14262.LC29: 14263 .string "sys_blks_pp = 0x%x\n" 14264.LC30: 14265 .string "free sysblock = 0x%x\n" 14266.LC31: 14267 .string "data_blks_pp = 0x%x\n" 14268.LC32: 14269 .string "data_op_blks_pp = 0x%x\n" 14270.LC33: 14271 .string "max_data_blks = 0x%x\n" 14272.LC34: 14273 .string "Sys.id = 0x%x\n" 14274.LC35: 14275 .string "Bbt.id = 0x%x\n" 14276.LC36: 14277 .string "ACT.page = 0x%x\n" 14278.LC37: 14279 .string "ACT.plane = 0x%x\n" 14280.LC38: 14281 .string "ACT.id = 0x%x\n" 14282.LC39: 14283 .string "ACT.mode = 0x%x\n" 14284.LC40: 14285 .string "ACT.a_pages = 0x%x\n" 14286.LC41: 14287 .string "ACT VPC = 0x%x\n" 14288.LC42: 14289 .string "BUF.page = 0x%x\n" 14290.LC43: 14291 .string "BUF.plane = 0x%x\n" 14292.LC44: 14293 .string "BUF.id = 0x%x\n" 14294.LC45: 14295 .string "BUF.mode = 0x%x\n" 14296.LC46: 14297 .string "BUF.a_pages = 0x%x\n" 14298.LC47: 14299 .string "BUF VPC = 0x%x\n" 14300.LC48: 14301 .string "TMP.page = 0x%x\n" 14302.LC49: 14303 .string "TMP.plane = 0x%x\n" 14304.LC50: 14305 .string "TMP.id = 0x%x\n" 14306.LC51: 14307 .string "TMP.mode = 0x%x\n" 14308.LC52: 14309 .string "TMP.a_pages = 0x%x\n" 14310.LC53: 14311 .string "GC.page = 0x%x\n" 14312.LC54: 14313 .string "GC.plane = 0x%x\n" 14314.LC55: 14315 .string "GC.id = 0x%x\n" 14316.LC56: 14317 .string "GC.mode = 0x%x\n" 14318.LC57: 14319 .string "GC.a_pages = 0x%x\n" 14320.LC58: 14321 .string "WR_CHK = %x %x %x\n" 14322.LC59: 14323 .string "Read Err Cnt = 0x%x\n" 14324.LC60: 14325 .string "Prog Err Cnt = 0x%x\n" 14326.LC61: 14327 .string "gc_free_blk_th= 0x%x\n" 14328.LC62: 14329 .string "gc_merge_free_blk_th= 0x%x\n" 14330.LC63: 14331 .string "gc_skip_write_count= 0x%x\n" 14332.LC64: 14333 .string "gc_blk_index= 0x%x\n" 14334.LC65: 14335 .string "free min EC= 0x%x\n" 14336.LC66: 14337 .string "free max EC= 0x%x\n" 14338.LC67: 14339 .string "GC__SB VPC = 0x%x\n" 14340.LC68: 14341 .string "%d. [0x%x]=0x%x 0x%x 0x%x\n" 14342.LC69: 14343 .string "free %d. [0x%x] 0x%x 0x%x\n" 14344 .section .rodata.FtlProgPages.str1.1,"aMS",@progbits,1 14345.LC111: 14346 .string "Ftlwrite decrement_vpc_count %x = %d\n" 14347 .section .rodata.FtlRecoverySuperblock.str1.1,"aMS",@progbits,1 14348.LC106: 14349 .string "spuer block %x vpn is 0\n " 14350 .section .rodata.FtlVendorPartRead.str1.1,"aMS",@progbits,1 14351.LC107: 14352 .string "FtlVendorPartRead refresh = %x phyAddr = %x\n" 14353 .section .rodata.FtlVpcCheckAndModify.str1.1,"aMS",@progbits,1 14354.LC110: 14355 .string "FtlCheckVpc %x = %x %x\n" 14356 .section .rodata.FtlVpcTblFlush.str1.1,"aMS",@progbits,1 14357.LC109: 14358 .string "FtlVpcTblFlush error = %x error count = %d\n" 14359 .section .rodata.FtlWrite.str1.1,"aMS",@progbits,1 14360.LC113: 14361 .string "FtlWrite: lpa error:%x %x\n" 14362 .section .rodata.GetSwlReplaceBlock.str1.1,"aMS",@progbits,1 14363.LC72: 14364 .string "swblk %x ,avg = %x max= %x vpc= %x,ec=%x ,max ec=%x\n" 14365 .section .rodata.INSERT_DATA_LIST.str1.1,"aMS",@progbits,1 14366.LC1: 14367 .string "\n!!!!! error @ func:%s - line:%d\n" 14368 .section .rodata.__func__.6127,"a",@progbits 14369 .align 3 14370 .set .LANCHOR138,. + 0 14371 .type __func__.6127, %object 14372 .size __func__.6127, 11 14373__func__.6127: 14374 .string "FtlMemInit" 14375 .section .rodata.__func__.6251,"a",@progbits 14376 .align 3 14377 .set .LANCHOR175,. + 0 14378 .type __func__.6251, %object 14379 .size __func__.6251, 13 14380__func__.6251: 14381 .string "FtlProgPages" 14382 .section .rodata.__func__.6279,"a",@progbits 14383 .align 3 14384 .set .LANCHOR183,. + 0 14385 .type __func__.6279, %object 14386 .size __func__.6279, 9 14387__func__.6279: 14388 .string "FtlWrite" 14389 .section .rodata.__func__.6385,"a",@progbits 14390 .align 3 14391 .set .LANCHOR187,. + 0 14392 .type __func__.6385, %object 14393 .size __func__.6385, 14 14394__func__.6385: 14395 .string "FtlWriteToIDB" 14396 .section .rodata.__func__.6426,"a",@progbits 14397 .align 3 14398 .set .LANCHOR139,. + 0 14399 .type __func__.6426, %object 14400 .size __func__.6426, 14 14401__func__.6426: 14402 .string "FtlBbt2Bitmap" 14403 .section .rodata.__func__.6469,"a",@progbits 14404 .align 3 14405 .set .LANCHOR150,. + 0 14406 .type __func__.6469, %object 14407 .size __func__.6469, 11 14408__func__.6469: 14409 .string "FtlLoadBbt" 14410 .section .rodata.__func__.6584,"a",@progbits 14411 .align 3 14412 .set .LANCHOR49,. + 0 14413 .type __func__.6584, %object 14414 .size __func__.6584, 17 14415__func__.6584: 14416 .string "INSERT_FREE_LIST" 14417 .section .rodata.__func__.6589,"a",@progbits 14418 .align 3 14419 .set .LANCHOR46,. + 0 14420 .type __func__.6589, %object 14421 .size __func__.6589, 17 14422__func__.6589: 14423 .string "INSERT_DATA_LIST" 14424 .section .rodata.__func__.6620,"a",@progbits 14425 .align 3 14426 .set .LANCHOR50,. + 0 14427 .type __func__.6620, %object 14428 .size __func__.6620, 17 14429__func__.6620: 14430 .string "List_remove_node" 14431 .section .rodata.__func__.6652,"a",@progbits 14432 .align 3 14433 .set .LANCHOR54,. + 0 14434 .type __func__.6652, %object 14435 .size __func__.6652, 22 14436__func__.6652: 14437 .string "List_update_data_list" 14438 .section .rodata.__func__.6661,"a",@progbits 14439 .align 3 14440 .set .LANCHOR156,. + 0 14441 .type __func__.6661, %object 14442 .size __func__.6661, 16 14443__func__.6661: 14444 .string "load_l2p_region" 14445 .section .rodata.__func__.6694,"a",@progbits 14446 .align 3 14447 .set .LANCHOR107,. + 0 14448 .type __func__.6694, %object 14449 .size __func__.6694, 26 14450__func__.6694: 14451 .string "ftl_map_blk_alloc_new_blk" 14452 .section .rodata.__func__.6705,"a",@progbits 14453 .align 3 14454 .set .LANCHOR157,. + 0 14455 .type __func__.6705, %object 14456 .size __func__.6705, 15 14457__func__.6705: 14458 .string "ftl_map_blk_gc" 14459 .section .rodata.__func__.6720,"a",@progbits 14460 .align 3 14461 .set .LANCHOR154,. + 0 14462 .type __func__.6720, %object 14463 .size __func__.6720, 31 14464__func__.6720: 14465 .string "Ftl_write_map_blk_to_last_page" 14466 .section .rodata.__func__.6734,"a",@progbits 14467 .align 3 14468 .set .LANCHOR155,. + 0 14469 .type __func__.6734, %object 14470 .size __func__.6734, 16 14471__func__.6734: 14472 .string "FtlMapWritePage" 14473 .section .rodata.__func__.6759,"a",@progbits 14474 .align 3 14475 .set .LANCHOR57,. + 0 14476 .type __func__.6759, %object 14477 .size __func__.6759, 22 14478__func__.6759: 14479 .string "select_l2p_ram_region" 14480 .section .rodata.__func__.6776,"a",@progbits 14481 .align 3 14482 .set .LANCHOR159,. + 0 14483 .type __func__.6776, %object 14484 .size __func__.6776, 9 14485__func__.6776: 14486 .string "log2phys" 14487 .section .rodata.__func__.6849,"a",@progbits 14488 .align 3 14489 .set .LANCHOR171,. + 0 14490 .type __func__.6849, %object 14491 .size __func__.6849, 15 14492__func__.6849: 14493 .string "FtlVpcTblFlush" 14494 .section .rodata.__func__.6871,"a",@progbits 14495 .align 3 14496 .set .LANCHOR149,. + 0 14497 .type __func__.6871, %object 14498 .size __func__.6871, 14 14499__func__.6871: 14500 .string "FtlScanSysBlk" 14501 .section .rodata.__func__.6928,"a",@progbits 14502 .align 3 14503 .set .LANCHOR151,. + 0 14504 .type __func__.6928, %object 14505 .size __func__.6928, 15 14506__func__.6928: 14507 .string "FtlLoadSysInfo" 14508 .section .rodata.__func__.6991,"a",@progbits 14509 .align 3 14510 .set .LANCHOR160,. + 0 14511 .type __func__.6991, %object 14512 .size __func__.6991, 16 14513__func__.6991: 14514 .string "FtlReUsePrevPpa" 14515 .section .rodata.__func__.7025,"a",@progbits 14516 .align 3 14517 .set .LANCHOR166,. + 0 14518 .type __func__.7025, %object 14519 .size __func__.7025, 22 14520__func__.7025: 14521 .string "FtlRecoverySuperblock" 14522 .section .rodata.__func__.7082,"a",@progbits 14523 .align 3 14524 .set .LANCHOR60,. + 0 14525 .type __func__.7082, %object 14526 .size __func__.7082, 16 14527__func__.7082: 14528 .string "make_superblock" 14529 .section .rodata.__func__.7103,"a",@progbits 14530 .align 3 14531 .set .LANCHOR146,. + 0 14532 .type __func__.7103, %object 14533 .size __func__.7103, 18 14534__func__.7103: 14535 .string "SupperBlkListInit" 14536 .section .rodata.__func__.7128,"a",@progbits 14537 .align 3 14538 .set .LANCHOR173,. + 0 14539 .type __func__.7128, %object 14540 .size __func__.7128, 21 14541__func__.7128: 14542 .string "FtlVpcCheckAndModify" 14543 .section .rodata.__func__.7144,"a",@progbits 14544 .align 3 14545 .set .LANCHOR161,. + 0 14546 .type __func__.7144, %object 14547 .size __func__.7144, 14 14548__func__.7144: 14549 .string "ftl_check_vpc" 14550 .section .rodata.__func__.7229,"a",@progbits 14551 .align 3 14552 .set .LANCHOR163,. + 0 14553 .type __func__.7229, %object 14554 .size __func__.7229, 25 14555__func__.7229: 14556 .string "allocate_data_superblock" 14557 .section .rodata.__func__.7250,"a",@progbits 14558 .align 3 14559 .set .LANCHOR174,. + 0 14560 .type __func__.7250, %object 14561 .size __func__.7250, 29 14562__func__.7250: 14563 .string "allocate_new_data_superblock" 14564 .section .rodata.__func__.7257,"a",@progbits 14565 .align 3 14566 .set .LANCHOR88,. + 0 14567 .type __func__.7257, %object 14568 .size __func__.7257, 19 14569__func__.7257: 14570 .string "get_new_active_ppa" 14571 .section .rodata.__func__.7270,"a",@progbits 14572 .align 3 14573 .set .LANCHOR164,. + 0 14574 .type __func__.7270, %object 14575 .size __func__.7270, 16 14576__func__.7270: 14577 .string "update_vpc_list" 14578 .section .rodata.__func__.7277,"a",@progbits 14579 .align 3 14580 .set .LANCHOR165,. + 0 14581 .type __func__.7277, %object 14582 .size __func__.7277, 20 14583__func__.7277: 14584 .string "decrement_vpc_count" 14585 .section .rodata.__func__.7347,"a",@progbits 14586 .align 3 14587 .set .LANCHOR176,. + 0 14588 .type __func__.7347, %object 14589 .size __func__.7347, 19 14590__func__.7347: 14591 .string "FtlGcFreeTempBlock" 14592 .section .rodata.__func__.7458,"a",@progbits 14593 .align 3 14594 .set .LANCHOR180,. + 0 14595 .type __func__.7458, %object 14596 .size __func__.7458, 23 14597__func__.7458: 14598 .string "rk_ftl_garbage_collect" 14599 .section .rodata.__func__.7720,"a",@progbits 14600 .align 3 14601 .set .LANCHOR147,. + 0 14602 .type __func__.7720, %object 14603 .size __func__.7720, 15 14604__func__.7720: 14605 .string "FlashReadPages" 14606 .section .rodata.__func__.7739,"a",@progbits 14607 .align 3 14608 .set .LANCHOR153,. + 0 14609 .type __func__.7739, %object 14610 .size __func__.7739, 15 14611__func__.7739: 14612 .string "FlashProgPages" 14613 .section .rodata.__func__.7763,"a",@progbits 14614 .align 3 14615 .set .LANCHOR104,. + 0 14616 .type __func__.7763, %object 14617 .size __func__.7763, 17 14618__func__.7763: 14619 .string "FlashEraseBlocks" 14620 .section .rodata.decrement_vpc_count.str1.1,"aMS",@progbits,1 14621.LC105: 14622 .string "decrement_vpc_count %x = %d\n" 14623 .section .rodata.ftl_check_vpc.str1.1,"aMS",@progbits,1 14624.LC94: 14625 .string "...%s enter...\n" 14626.LC95: 14627 .string "FtlCheckVpc2 %x = %x %x\n" 14628.LC96: 14629 .string "free blk vpc error %x = %x %x\n" 14630 .section .rodata.ftl_map_blk_alloc_new_blk.str1.1,"aMS",@progbits,1 14631.LC83: 14632 .string "FtlFreeSysBlkQueueOut = %x, free count = %d\n" 14633 .section .rodata.ftl_scan_all_data.str1.1,"aMS",@progbits,1 14634.LC97: 14635 .string "ftl_scan_all_data = %x\n" 14636.LC98: 14637 .string "scan lpa = %x ppa= %x\n" 14638.LC99: 14639 .string "lba = %x,addr= %x,spare= %x %x %x %x data=%x %x\n" 14640 .section .rodata.load_l2p_region.str1.1,"aMS",@progbits,1 14641.LC90: 14642 .string "region_id = %x phyAddr = %x\n" 14643.LC91: 14644 .string "spare:" 14645.LC92: 14646 .string "map_ppn:" 14647.LC93: 14648 .string "load_l2p_region refresh = %x phyAddr = %x\n" 14649 .section .rodata.rk_ftl_garbage_collect.str1.1,"aMS",@progbits,1 14650.LC112: 14651 .string "SWL %x, FSB = %x vpc= %x,ec=%x th=%x\n" 14652 .section .rodata.rknand_print_hex.str1.1,"aMS",@progbits,1 14653.LC75: 14654 .string "%s 0x%x:" 14655.LC76: 14656 .string "%x " 14657.LC77: 14658 .string "%02x " 14659.LC78: 14660 .string "\n" 14661 .section .rodata.rknand_proc_ftlread.str1.1,"aMS",@progbits,1 14662.LC70: 14663 .string "SFTL version: 5.0.48 20181029" 14664.LC71: 14665 .string "%s\n" 14666 .section .rodata.sftl_write.str1.1,"aMS",@progbits,1 14667.LC114: 14668 .string "write_idblock fix data %x %x %x\n" 14669.LC115: 14670 .string "write_idblock fail! %x %x %x %x\n" 14671.LC116: 14672 .string "%s idb buffer alloc fail\n" 14673.LC117: 14674 .string "%p %x %p %x\n" 14675 .hidden free 14676