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