1/* 2 * Copyright (c) 2018 Fuzhou Rockchip Electronics Co., Ltd 3 * 4 * SPDX-License-Identifier: GPL-2.0 5 * date: 2018-12-27 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 adrp x6, .LANCHOR12 115 add x29, sp, 0 116 ldrh w3, [x0] 117 adrp x0, .LANCHOR9 118 ldrh w4, [x5, 2] 119 strh w3, [x0, #:lo12:.LANCHOR9] 120 adrp x0, .LANCHOR10 121 ldrh w7, [x5, 14] 122 strh w4, [x0, #:lo12:.LANCHOR10] 123 ldrh w0, [x5, 4] 124 cmp w7, 4 125 strh w0, [x1, #:lo12:.LANCHOR11] 126 adrp x1, .LANCHOR6 127 ldrh w2, [x5, 6] 128 strh w2, [x1, #:lo12:.LANCHOR6] 129 strh w7, [x6, #:lo12:.LANCHOR12] 130 bne .L10 131 lsr w2, w2, 1 132 strh w2, [x1, #:lo12:.LANCHOR6] 133 mov w2, 8 134 strh w2, [x6, #:lo12:.LANCHOR12] 135.L10: 136 adrp x7, .LANCHOR13 137 add x7, x7, :lo12:.LANCHOR13 138 mov x2, 0 139.L11: 140 strb w2, [x2, x7] 141 add x2, x2, 1 142 cmp x2, 32 143 bne .L11 144 adrp x2, .LANCHOR14 145 mov w7, 5 146 cmp w3, 1 147 strh w7, [x2, #:lo12:.LANCHOR14] 148 adrp x7, .LANCHOR15 149 strh wzr, [x7, #:lo12:.LANCHOR15] 150 bne .L12 151 strh w3, [x2, #:lo12:.LANCHOR14] 152.L12: 153 adrp x2, .LANCHOR16 154 mov w3, 640 155 mul w4, w4, w0 156 strh w3, [x2, #:lo12:.LANCHOR16] 157 adrp x2, .LANCHOR3 158 ldrh w3, [x1, #:lo12:.LANCHOR6] 159 and w4, w4, 65535 160 adrp x1, .LANCHOR17 161 strh w4, [x2, #:lo12:.LANCHOR3] 162 mul w0, w0, w3 163 and w0, w0, 65535 164 strh w0, [x1, #:lo12:.LANCHOR17] 165 bl Ftl_log2 166 ldrh w7, [x5, 12] 167 adrp x1, .LANCHOR18 168 ldrh w6, [x6, #:lo12:.LANCHOR12] 169 adrp x8, .LANCHOR19 170 strh w0, [x1, #:lo12:.LANCHOR18] 171 adrp x0, .LANCHOR20 172 mul w1, w4, w7 173 strh w7, [x8, #:lo12:.LANCHOR19] 174 strh w7, [x0, #:lo12:.LANCHOR20] 175 adrp x0, .LANCHOR21 176 strh w1, [x0, #:lo12:.LANCHOR21] 177 mov w0, w6 178 bl Ftl_log2 179 and w10, w0, 65535 180 adrp x2, .LANCHOR22 181 ubfiz w1, w6, 9, 7 182 strh w0, [x2, #:lo12:.LANCHOR22] 183 adrp x0, .LANCHOR23 184 strh w1, [x0, #:lo12:.LANCHOR23] 185 adrp x0, .LANCHOR24 186 ubfx w1, w1, 8, 8 187 strh w1, [x0, #:lo12:.LANCHOR24] 188 adrp x0, .LANCHOR25 189 ldrh w1, [x5, 20] 190 adrp x5, .LANCHOR27 191 strh w1, [x0, #:lo12:.LANCHOR25] 192 mul w0, w4, w3 193 adrp x1, .LANCHOR8 194 str w0, [x1, #:lo12:.LANCHOR8] 195 adrp x1, .LANCHOR26 196 mul w0, w0, w6 197 mul w6, w6, w7 198 mul w0, w0, w7 199 mov x7, x2 200 asr w0, w0, 11 201 str w0, [x1, #:lo12:.LANCHOR26] 202 mov w0, 5120 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 x1, .LANCHOR28 210 mov w0, 640 211 lsl w3, w3, 6 212 asr w0, w0, w10 213 add w0, w0, 2 214 strh w0, [x1, #:lo12:.LANCHOR28] 215 add w0, w10, 9 216 adrp x1, .LANCHOR30 217 cmp w4, 1 218 asr w3, w3, w0 219 adrp x0, .LANCHOR29 220 adrp x6, .LANCHOR2 221 strh w3, [x0, #:lo12:.LANCHOR29] 222 and w3, w3, 65535 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.V2P_block,"ax",@progbits 382 .align 2 383 .global V2P_block 384 .type V2P_block, %function 385V2P_block: 386 adrp x2, .LANCHOR11 387 and w0, w0, 65535 388 adrp x4, .LANCHOR17 389 and w1, w1, 65535 390 ldrh w2, [x2, #:lo12:.LANCHOR11] 391 ldrh w4, [x4, #:lo12:.LANCHOR17] 392 udiv w3, w0, w2 393 msub w0, w3, w2, w0 394 madd w2, w2, w1, w0 395 madd w0, w3, w4, w2 396 ret 397 .size V2P_block, .-V2P_block 398 .section .text.P2V_plane,"ax",@progbits 399 .align 2 400 .global P2V_plane 401 .type P2V_plane, %function 402P2V_plane: 403 and w3, w0, 65535 404 adrp x0, .LANCHOR11 405 ldrh w1, [x0, #:lo12:.LANCHOR11] 406 adrp x0, .LANCHOR17 407 ldrh w2, [x0, #:lo12:.LANCHOR17] 408 udiv w0, w3, w1 409 udiv w2, w3, w2 410 msub w0, w0, w1, w3 411 madd w0, w1, w2, w0 412 ret 413 .size P2V_plane, .-P2V_plane 414 .section .text.P2V_block_in_plane,"ax",@progbits 415 .align 2 416 .global P2V_block_in_plane 417 .type P2V_block_in_plane, %function 418P2V_block_in_plane: 419 and w2, w0, 65535 420 adrp x0, .LANCHOR17 421 ldrh w1, [x0, #:lo12:.LANCHOR17] 422 udiv w0, w2, w1 423 msub w0, w0, w1, w2 424 adrp x1, .LANCHOR11 425 ldrh w1, [x1, #:lo12:.LANCHOR11] 426 and w0, w0, 65535 427 udiv w0, w0, w1 428 ret 429 .size P2V_block_in_plane, .-P2V_block_in_plane 430 .section .text.ftl_cmp_data_ver,"ax",@progbits 431 .align 2 432 .global ftl_cmp_data_ver 433 .type ftl_cmp_data_ver, %function 434ftl_cmp_data_ver: 435 cmp w0, w1 436 mov w2, -2147483648 437 bls .L37 438 sub w1, w0, w1 439 cmp w1, w2 440 cset w0, ls 441 ret 442.L37: 443 sub w1, w1, w0 444 cmp w1, w2 445 cset w0, hi 446 ret 447 .size ftl_cmp_data_ver, .-ftl_cmp_data_ver 448 .section .text.FtlFreeSysBlkQueueEmpty,"ax",@progbits 449 .align 2 450 .global FtlFreeSysBlkQueueEmpty 451 .type FtlFreeSysBlkQueueEmpty, %function 452FtlFreeSysBlkQueueEmpty: 453 adrp x0, .LANCHOR38+6 454 ldrh w0, [x0, #:lo12:.LANCHOR38+6] 455 cmp w0, 0 456 cset w0, eq 457 ret 458 .size FtlFreeSysBlkQueueEmpty, .-FtlFreeSysBlkQueueEmpty 459 .section .text.FtlFreeSysBlkQueueFull,"ax",@progbits 460 .align 2 461 .global FtlFreeSysBlkQueueFull 462 .type FtlFreeSysBlkQueueFull, %function 463FtlFreeSysBlkQueueFull: 464 adrp x0, .LANCHOR38+6 465 ldrh w0, [x0, #:lo12:.LANCHOR38+6] 466 cmp w0, 1024 467 cset w0, eq 468 ret 469 .size FtlFreeSysBlkQueueFull, .-FtlFreeSysBlkQueueFull 470 .section .text.FtlFreeSysBLkSort,"ax",@progbits 471 .align 2 472 .global FtlFreeSysBLkSort 473 .type FtlFreeSysBLkSort, %function 474FtlFreeSysBLkSort: 475 adrp x0, .LANCHOR38 476 add x1, x0, :lo12:.LANCHOR38 477 ldrh w2, [x1, 6] 478 cbz w2, .L41 479 adrp x2, .LANCHOR39+28 480 ldrh w3, [x1, 2] 481 mov w6, 0 482 mov w4, 0 483 ldrh w5, [x2, #:lo12:.LANCHOR39+28] 484 ldrh w2, [x1, 4] 485 and w5, w5, 31 486.L43: 487 cmp w5, w4 488 bgt .L44 489 cbz w6, .L41 490 add x0, x0, :lo12:.LANCHOR38 491 strh w3, [x0, 2] 492 strh w2, [x0, 4] 493.L41: 494 ret 495.L44: 496 add x6, x1, x3, sxtw 1 497 add w4, w4, 1 498 add w3, w3, 1 499 and w4, w4, 65535 500 and w3, w3, 1023 501 ldrh w7, [x6, 8] 502 add x6, x1, x2, sxtw 1 503 strh w7, [x6, 8] 504 mov w6, 1 505 add w2, w2, w6 506 and w2, w2, 1023 507 b .L43 508 .size FtlFreeSysBLkSort, .-FtlFreeSysBLkSort 509 .section .text.IsInFreeQueue,"ax",@progbits 510 .align 2 511 .global IsInFreeQueue 512 .type IsInFreeQueue, %function 513IsInFreeQueue: 514 adrp x1, .LANCHOR38 515 add x1, x1, :lo12:.LANCHOR38 516 and w0, w0, 65535 517 ldrh w4, [x1, 6] 518 cmp w4, 1024 519 beq .L54 520 ldrh w5, [x1, 2] 521 mov w3, 0 522.L52: 523 cmp w3, w4 524 bcc .L53 525.L54: 526 mov w0, 0 527 ret 528.L53: 529 add w2, w3, w5 530 ubfiz x2, x2, 1, 10 531 add x2, x1, x2 532 ldrh w2, [x2, 8] 533 cmp w2, w0 534 beq .L55 535 add w3, w3, 1 536 b .L52 537.L55: 538 mov w0, 1 539 ret 540 .size IsInFreeQueue, .-IsInFreeQueue 541 .section .text.insert_data_list,"ax",@progbits 542 .align 2 543 .global insert_data_list 544 .type insert_data_list, %function 545insert_data_list: 546 adrp x1, .LANCHOR5 547 and w0, w0, 65535 548 ldrh w14, [x1, #:lo12:.LANCHOR5] 549 cmp w14, w0 550 bls .L72 551 adrp x1, .LANCHOR40 552 mov w3, 6 553 ldr x6, [x1, #:lo12:.LANCHOR40] 554 umull x13, w0, w3 555 mov w1, -1 556 add x5, x6, x13 557 strh w1, [x5, 2] 558 strh w1, [x6, x13] 559 adrp x1, .LANCHOR41 560 mov x15, x1 561 ldr x12, [x1, #:lo12:.LANCHOR41] 562 cbnz x12, .L59 563 str x5, [x1, #:lo12:.LANCHOR41] 564.L72: 565 mov w0, 0 566 ret 567.L59: 568 stp x29, x30, [sp, -32]! 569 adrp x1, .LANCHOR42 570 ubfiz x2, x0, 1, 16 571 mov x4, -6148914691236517206 572 add x29, sp, 0 573 ldr x16, [x1, #:lo12:.LANCHOR42] 574 movk x4, 0xaaab, lsl 0 575 ldrh w1, [x5, 4] 576 mov w8, -1 577 mov w11, w8 578 stp x19, x20, [sp, 16] 579 cmp w1, 0 580 mov w20, 65535 581 ldrh w7, [x16, x2] 582 mul w7, w7, w1 583 sub x1, x12, x6 584 asr x1, x1, 1 585 csel w7, w7, w8, ne 586 mov w8, w3 587 mul x1, x1, x4 588 adrp x4, .LANCHOR43 589 ldr x17, [x4, #:lo12:.LANCHOR43] 590 and w1, w1, 65535 591 mov x4, x12 592 add x10, x17, x2 593 mov w2, 0 594.L67: 595 add w2, w2, 1 596 and w2, w2, 65535 597 cmp w14, w2 598 bcc .L58 599 cmp w1, w0 600 beq .L58 601 ubfiz x30, x1, 1, 16 602 ldrh w19, [x4, 4] 603 cmp w19, 0 604 ldrh w3, [x16, x30] 605 mul w3, w3, w19 606 csel w3, w3, w11, ne 607 cmp w7, w3 608 bne .L63 609 ldrh w19, [x17, x30] 610 ldrh w3, [x10] 611 cmp w19, w3 612 bcc .L65 613.L64: 614 strh w1, [x6, x13] 615 cmp x4, x12 616 ldrh w1, [x4, 2] 617 strh w1, [x5, 2] 618 bne .L68 619 strh w0, [x4, 2] 620 str x5, [x15, #:lo12:.LANCHOR41] 621 b .L58 622.L63: 623 bcc .L64 624.L65: 625 ldrh w3, [x4] 626 cmp w3, w20 627 bne .L66 628 strh w1, [x5, 2] 629 strh w0, [x4] 630 adrp x0, .LANCHOR44 631 str x5, [x0, #:lo12:.LANCHOR44] 632.L58: 633 mov w0, 0 634 ldp x19, x20, [sp, 16] 635 ldp x29, x30, [sp], 32 636 ret 637.L66: 638 umaddl x4, w3, w8, x6 639 mov w1, w3 640 b .L67 641.L68: 642 ldrh w1, [x4, 2] 643 mov w2, 6 644 umull x1, w1, w2 645 strh w0, [x6, x1] 646 strh w0, [x4, 2] 647 b .L58 648 .size insert_data_list, .-insert_data_list 649 .section .text.INSERT_DATA_LIST,"ax",@progbits 650 .align 2 651 .global INSERT_DATA_LIST 652 .type INSERT_DATA_LIST, %function 653INSERT_DATA_LIST: 654 stp x29, x30, [sp, -16]! 655 add x29, sp, 0 656 bl insert_data_list 657 adrp x1, .LANCHOR45 658 ldrh w0, [x1, #:lo12:.LANCHOR45] 659 add w0, w0, 1 660 and w0, w0, 65535 661 strh w0, [x1, #:lo12:.LANCHOR45] 662 adrp x1, .LANCHOR5 663 ldrh w1, [x1, #:lo12:.LANCHOR5] 664 cmp w1, w0 665 bcs .L74 666 ldp x29, x30, [sp], 16 667 mov w2, 214 668 adrp x1, .LANCHOR46 669 adrp x0, .LC1 670 add x1, x1, :lo12:.LANCHOR46 671 add x0, x0, :lo12:.LC1 672 b printf 673.L74: 674 ldp x29, x30, [sp], 16 675 ret 676 .size INSERT_DATA_LIST, .-INSERT_DATA_LIST 677 .section .text.insert_free_list,"ax",@progbits 678 .align 2 679 .global insert_free_list 680 .type insert_free_list, %function 681insert_free_list: 682 and w0, w0, 65535 683 mov w7, 65535 684 cmp w0, w7 685 beq .L78 686 adrp x1, .LANCHOR40 687 mov w6, 6 688 ldr x3, [x1, #:lo12:.LANCHOR40] 689 umull x8, w0, w6 690 mov w1, -1 691 add x4, x3, x8 692 strh w1, [x4, 2] 693 strh w1, [x3, x8] 694 adrp x1, .LANCHOR47 695 mov x12, x1 696 ldr x5, [x1, #:lo12:.LANCHOR47] 697 cbnz x5, .L79 698 str x4, [x1, #:lo12:.LANCHOR47] 699.L78: 700 mov w0, 0 701 ret 702.L79: 703 adrp x1, .LANCHOR43 704 mov x2, -6148914691236517206 705 movk x2, 0xaaab, lsl 0 706 ldr x11, [x1, #:lo12:.LANCHOR43] 707 ubfiz x1, x0, 1, 16 708 ldrh w13, [x11, x1] 709 sub x1, x5, x3 710 asr x1, x1, 1 711 mul x1, x1, x2 712 mov x2, x5 713 and w1, w1, 65535 714.L82: 715 ubfiz x10, x1, 1, 16 716 ldrh w10, [x11, x10] 717 cmp w10, w13 718 bcs .L80 719 ldrh w10, [x2] 720 cmp w10, w7 721 bne .L81 722 strh w1, [x4, 2] 723 strh w0, [x2] 724 b .L78 725.L81: 726 umaddl x2, w10, w6, x3 727 mov w1, w10 728 b .L82 729.L80: 730 ldrh w6, [x2, 2] 731 cmp x2, x5 732 strh w6, [x4, 2] 733 strh w1, [x3, x8] 734 bne .L83 735 strh w0, [x2, 2] 736 str x4, [x12, #:lo12:.LANCHOR47] 737 b .L78 738.L83: 739 ldrh w1, [x2, 2] 740 mov w4, 6 741 umull x1, w1, w4 742 strh w0, [x3, x1] 743 strh w0, [x2, 2] 744 b .L78 745 .size insert_free_list, .-insert_free_list 746 .section .text.INSERT_FREE_LIST,"ax",@progbits 747 .align 2 748 .global INSERT_FREE_LIST 749 .type INSERT_FREE_LIST, %function 750INSERT_FREE_LIST: 751 stp x29, x30, [sp, -16]! 752 add x29, sp, 0 753 bl insert_free_list 754 adrp x1, .LANCHOR48 755 ldrh w0, [x1, #:lo12:.LANCHOR48] 756 add w0, w0, 1 757 and w0, w0, 65535 758 strh w0, [x1, #:lo12:.LANCHOR48] 759 adrp x1, .LANCHOR5 760 ldrh w1, [x1, #:lo12:.LANCHOR5] 761 cmp w1, w0 762 bcs .L84 763 ldp x29, x30, [sp], 16 764 mov w2, 207 765 adrp x1, .LANCHOR49 766 adrp x0, .LC1 767 add x1, x1, :lo12:.LANCHOR49 768 add x0, x0, :lo12:.LC1 769 b printf 770.L84: 771 ldp x29, x30, [sp], 16 772 ret 773 .size INSERT_FREE_LIST, .-INSERT_FREE_LIST 774 .section .text.List_remove_node,"ax",@progbits 775 .align 2 776 .global List_remove_node 777 .type List_remove_node, %function 778List_remove_node: 779 stp x29, x30, [sp, -64]! 780 and w1, w1, 65535 781 add x29, sp, 0 782 stp x19, x20, [sp, 16] 783 adrp x20, .LANCHOR40 784 stp x21, x22, [sp, 32] 785 mov x22, x0 786 mov w0, 6 787 str x23, [sp, 48] 788 ldr x23, [x20, #:lo12:.LANCHOR40] 789 umull x21, w1, w0 790 mov w0, 65535 791 add x19, x23, x21 792 ldrh w1, [x19, 2] 793 cmp w1, w0 794 bne .L88 795 ldr x0, [x22] 796 cmp x19, x0 797 beq .L88 798 adrp x1, .LANCHOR50 799 adrp x0, .LC1 800 mov w2, 372 801 add x1, x1, :lo12:.LANCHOR50 802 add x0, x0, :lo12:.LC1 803 bl printf 804.L88: 805 ldr x0, [x22] 806 mov w1, 65535 807 cmp x19, x0 808 ldrh w0, [x23, x21] 809 bne .L89 810 cmp w0, w1 811 bne .L90 812 str xzr, [x22] 813.L91: 814 mov w0, -1 815 strh w0, [x23, x21] 816 strh w0, [x19, 2] 817 mov w0, 0 818 ldp x19, x20, [sp, 16] 819 ldp x21, x22, [sp, 32] 820 ldr x23, [sp, 48] 821 ldp x29, x30, [sp], 64 822 ret 823.L90: 824 ldr x1, [x20, #:lo12:.LANCHOR40] 825 mov w2, 6 826 umaddl x0, w0, w2, x1 827 mov w1, -1 828 str x0, [x22] 829 strh w1, [x0, 2] 830 b .L91 831.L89: 832 cmp w0, w1 833 ldrh w1, [x19, 2] 834 bne .L92 835 cmp w1, w0 836 beq .L91 837 mov w0, 6 838 mov w2, -1 839 umull x1, w1, w0 840 ldr x0, [x20, #:lo12:.LANCHOR40] 841 strh w2, [x0, x1] 842 b .L91 843.L92: 844 ldr x2, [x20, #:lo12:.LANCHOR40] 845 mov w3, 6 846 umaddl x4, w0, w3, x2 847 strh w1, [x4, 2] 848 ldrh w1, [x19, 2] 849 umull x1, w1, w3 850 strh w0, [x2, x1] 851 b .L91 852 .size List_remove_node, .-List_remove_node 853 .section .text.List_pop_index_node,"ax",@progbits 854 .align 2 855 .global List_pop_index_node 856 .type List_pop_index_node, %function 857List_pop_index_node: 858 ldr x2, [x0] 859 cbz x2, .L100 860 stp x29, x30, [sp, -32]! 861 adrp x3, .LANCHOR40 862 and w1, w1, 65535 863 mov w4, 65535 864 add x29, sp, 0 865 str x19, [sp, 16] 866 mov w5, 6 867 ldr x19, [x3, #:lo12:.LANCHOR40] 868.L96: 869 cbnz w1, .L97 870.L99: 871 sub x19, x2, x19 872 mov x2, -6148914691236517206 873 asr x19, x19, 1 874 movk x2, 0xaaab, lsl 0 875 mul x19, x19, x2 876 and w19, w19, 65535 877 mov w1, w19 878 bl List_remove_node 879 mov w0, w19 880 ldr x19, [sp, 16] 881 ldp x29, x30, [sp], 32 882 ret 883.L97: 884 ldrh w3, [x2] 885 cmp w3, w4 886 beq .L99 887 sub w1, w1, #1 888 umaddl x2, w3, w5, x19 889 and w1, w1, 65535 890 b .L96 891.L100: 892 mov w0, 65535 893 ret 894 .size List_pop_index_node, .-List_pop_index_node 895 .section .text.List_pop_head_node,"ax",@progbits 896 .align 2 897 .global List_pop_head_node 898 .type List_pop_head_node, %function 899List_pop_head_node: 900 mov w1, 0 901 b List_pop_index_node 902 .size List_pop_head_node, .-List_pop_head_node 903 .section .text.List_get_gc_head_node,"ax",@progbits 904 .align 2 905 .global List_get_gc_head_node 906 .type List_get_gc_head_node, %function 907List_get_gc_head_node: 908 and w2, w0, 65535 909 adrp x0, .LANCHOR41 910 ldr x1, [x0, #:lo12:.LANCHOR41] 911 cbz x1, .L111 912 adrp x0, .LANCHOR40 913 mov w4, 6 914 ldr x3, [x0, #:lo12:.LANCHOR40] 915 mov w0, 65535 916.L108: 917 cbz w2, .L109 918 ldrh w1, [x1] 919 cmp w1, w0 920 bne .L110 921 ret 922.L110: 923 sub w2, w2, #1 924 umaddl x1, w1, w4, x3 925 and w2, w2, 65535 926 b .L108 927.L111: 928 mov w0, 65535 929 ret 930.L109: 931 sub x0, x1, x3 932 mov x1, -6148914691236517206 933 asr x0, x0, 1 934 movk x1, 0xaaab, lsl 0 935 mul x0, x0, x1 936 and w0, w0, 65535 937 ret 938 .size List_get_gc_head_node, .-List_get_gc_head_node 939 .section .text.List_update_data_list,"ax",@progbits 940 .align 2 941 .global List_update_data_list 942 .type List_update_data_list, %function 943List_update_data_list: 944 stp x29, x30, [sp, -80]! 945 add x29, sp, 0 946 stp x19, x20, [sp, 16] 947 and w19, w0, 65535 948 adrp x0, .LANCHOR51 949 stp x21, x22, [sp, 32] 950 stp x23, x24, [sp, 48] 951 ldrh w0, [x0, #:lo12:.LANCHOR51] 952 stp x25, x26, [sp, 64] 953 cmp w0, w19 954 beq .L114 955 adrp x0, .LANCHOR52 956 ldrh w0, [x0, #:lo12:.LANCHOR52] 957 cmp w0, w19 958 beq .L114 959 adrp x0, .LANCHOR53 960 ldrh w0, [x0, #:lo12:.LANCHOR53] 961 cmp w0, w19 962 beq .L114 963 adrp x0, .LANCHOR40 964 mov w21, 6 965 adrp x24, .LANCHOR41 966 mov x26, x0 967 umull x21, w19, w21 968 ldr x23, [x0, #:lo12:.LANCHOR40] 969 ldr x1, [x24, #:lo12:.LANCHOR41] 970 add x22, x23, x21 971 cmp x22, x1 972 beq .L114 973 adrp x1, .LANCHOR42 974 ubfiz x0, x19, 1, 16 975 mov x25, x1 976 ldr x2, [x1, #:lo12:.LANCHOR42] 977 mov w1, 65535 978 ldrh w20, [x2, x0] 979 ldrh w0, [x22, 4] 980 cmp w0, 0 981 mul w20, w20, w0 982 ldrh w0, [x22, 2] 983 csinv w20, w20, wzr, ne 984 cmp w0, w1 985 bne .L117 986 ldrh w1, [x23, x21] 987 cmp w1, w0 988 bne .L117 989 adrp x1, .LANCHOR54 990 adrp x0, .LC1 991 mov w2, 463 992 add x1, x1, :lo12:.LANCHOR54 993 add x0, x0, :lo12:.LC1 994 bl printf 995.L117: 996 ldrh w0, [x22, 2] 997 mov w1, 65535 998 cmp w0, w1 999 bne .L118 1000 ldrh w1, [x23, x21] 1001 cmp w1, w0 1002 beq .L114 1003.L118: 1004 mov w1, 6 1005 mov x2, -6148914691236517206 1006 movk x2, 0xaaab, lsl 0 1007 umull x0, w0, w1 1008 asr x1, x0, 1 1009 mul x1, x1, x2 1010 ldr x2, [x25, #:lo12:.LANCHOR42] 1011 ldrh w1, [x2, x1, lsl 1] 1012 ldr x2, [x26, #:lo12:.LANCHOR40] 1013 add x0, x2, x0 1014 ldrh w2, [x0, 4] 1015 cmp w2, 0 1016 mul w0, w1, w2 1017 csinv w0, w0, wzr, ne 1018 cmp w20, w0 1019 bcs .L114 1020 adrp x20, .LANCHOR45 1021 mov w1, w19 1022 add x0, x24, :lo12:.LANCHOR41 1023 bl List_remove_node 1024 ldrh w0, [x20, #:lo12:.LANCHOR45] 1025 cbnz w0, .L120 1026 adrp x1, .LANCHOR54 1027 adrp x0, .LC1 1028 mov w2, 474 1029 add x1, x1, :lo12:.LANCHOR54 1030 add x0, x0, :lo12:.LC1 1031 bl printf 1032.L120: 1033 ldrh w0, [x20, #:lo12:.LANCHOR45] 1034 sub w0, w0, #1 1035 strh w0, [x20, #:lo12:.LANCHOR45] 1036 mov w0, w19 1037 bl INSERT_DATA_LIST 1038.L114: 1039 mov w0, 0 1040 ldp x19, x20, [sp, 16] 1041 ldp x21, x22, [sp, 32] 1042 ldp x23, x24, [sp, 48] 1043 ldp x25, x26, [sp, 64] 1044 ldp x29, x30, [sp], 80 1045 ret 1046 .size List_update_data_list, .-List_update_data_list 1047 .section .text.select_l2p_ram_region,"ax",@progbits 1048 .align 2 1049 .global select_l2p_ram_region 1050 .type select_l2p_ram_region, %function 1051select_l2p_ram_region: 1052 stp x29, x30, [sp, -32]! 1053 adrp x0, .LANCHOR33 1054 mov x1, 0 1055 mov w3, 65535 1056 add x29, sp, 0 1057 ldrh w2, [x0, #:lo12:.LANCHOR33] 1058 adrp x0, .LANCHOR55 1059 str x19, [sp, 16] 1060 ldr x0, [x0, #:lo12:.LANCHOR55] 1061.L125: 1062 and w19, w1, 65535 1063 cmp w19, w2 1064 bcc .L127 1065 add x3, x0, 4 1066 mov w19, w2 1067 mov w5, -2147483648 1068 mov w1, 0 1069.L128: 1070 cmp w1, w2 1071 bne .L130 1072 cmp w19, w2 1073 bcc .L126 1074 adrp x1, .LANCHOR56 1075 mov w19, w2 1076 mov w3, -1 1077 ldrh w4, [x1, #:lo12:.LANCHOR56] 1078 mov w1, 0 1079.L131: 1080 cmp w1, w2 1081 bne .L133 1082 cmp w19, w1 1083 bcc .L126 1084 mov w2, 789 1085 adrp x1, .LANCHOR57 1086 adrp x0, .LC1 1087 add x1, x1, :lo12:.LANCHOR57 1088 add x0, x0, :lo12:.LC1 1089 bl printf 1090 b .L126 1091.L127: 1092 add x1, x1, 1 1093 add x4, x0, x1, lsl 4 1094 ldrh w4, [x4, -16] 1095 cmp w4, w3 1096 bne .L125 1097.L126: 1098 mov w0, w19 1099 ldr x19, [sp, 16] 1100 ldp x29, x30, [sp], 32 1101 ret 1102.L130: 1103 ldr w4, [x3] 1104 tbnz w4, #31, .L129 1105 cmp w5, w4 1106 bls .L129 1107 mov w5, w4 1108 mov w19, w1 1109.L129: 1110 add w1, w1, 1 1111 add x3, x3, 16 1112 and w1, w1, 65535 1113 b .L128 1114.L133: 1115 ldr w6, [x0, 4] 1116 cmp w3, w6 1117 bls .L132 1118 ldrh w5, [x0] 1119 cmp w5, w4 1120 csel w3, w3, w6, eq 1121 csel w19, w19, w1, eq 1122.L132: 1123 add w1, w1, 1 1124 add x0, x0, 16 1125 and w1, w1, 65535 1126 b .L131 1127 .size select_l2p_ram_region, .-select_l2p_ram_region 1128 .section .text.FtlUpdateVaildLpn,"ax",@progbits 1129 .align 2 1130 .global FtlUpdateVaildLpn 1131 .type FtlUpdateVaildLpn, %function 1132FtlUpdateVaildLpn: 1133 adrp x2, .LANCHOR58 1134 mov x3, x2 1135 ldrh w1, [x2, #:lo12:.LANCHOR58] 1136 cmp w1, 4 1137 bhi .L136 1138 cbnz w0, .L136 1139 add w1, w1, 1 1140 strh w1, [x2, #:lo12:.LANCHOR58] 1141 ret 1142.L136: 1143 adrp x1, .LANCHOR5 1144 adrp x0, .LANCHOR59 1145 strh wzr, [x3, #:lo12:.LANCHOR58] 1146 mov w2, 0 1147 ldrh w5, [x1, #:lo12:.LANCHOR5] 1148 adrp x1, .LANCHOR42 1149 str wzr, [x0, #:lo12:.LANCHOR59] 1150 mov w3, 0 1151 ldr x6, [x1, #:lo12:.LANCHOR42] 1152 mov w7, 65535 1153 mov x1, 0 1154.L137: 1155 cmp w5, w1, uxth 1156 bhi .L139 1157 cbz w3, .L135 1158 str w2, [x0, #:lo12:.LANCHOR59] 1159.L135: 1160 ret 1161.L139: 1162 ldrh w4, [x6, x1, lsl 1] 1163 cmp w4, w7 1164 beq .L138 1165 add w2, w2, w4 1166 mov w3, 1 1167.L138: 1168 add x1, x1, 1 1169 b .L137 1170 .size FtlUpdateVaildLpn, .-FtlUpdateVaildLpn 1171 .section .text.ftl_set_blk_mode,"ax",@progbits 1172 .align 2 1173 .global ftl_set_blk_mode 1174 .type ftl_set_blk_mode, %function 1175ftl_set_blk_mode: 1176 and w0, w0, 65535 1177 cbz w1, .L146 1178 b ftl_set_blk_mode.part.6 1179.L146: 1180 adrp x1, .LANCHOR1 1181 ubfx x2, x0, 5, 11 1182 lsl x2, x2, 2 1183 ldr x3, [x1, #:lo12:.LANCHOR1] 1184 mov w1, 1 1185 lsl w0, w1, w0 1186 ldr w1, [x3, x2] 1187 bic w0, w1, w0 1188 str w0, [x3, x2] 1189 ret 1190 .size ftl_set_blk_mode, .-ftl_set_blk_mode 1191 .section .text.ftl_get_blk_mode,"ax",@progbits 1192 .align 2 1193 .global ftl_get_blk_mode 1194 .type ftl_get_blk_mode, %function 1195ftl_get_blk_mode: 1196 and w1, w0, 65535 1197 adrp x0, .LANCHOR1 1198 ldr x0, [x0, #:lo12:.LANCHOR1] 1199 ubfx x2, x1, 5, 11 1200 ldr w0, [x0, x2, lsl 2] 1201 lsr w0, w0, w1 1202 and w0, w0, 1 1203 ret 1204 .size ftl_get_blk_mode, .-ftl_get_blk_mode 1205 .section .text.ftl_sb_update_avl_pages,"ax",@progbits 1206 .align 2 1207 .global ftl_sb_update_avl_pages 1208 .type ftl_sb_update_avl_pages, %function 1209ftl_sb_update_avl_pages: 1210 and w2, w2, 65535 1211 and w6, w1, 65535 1212 ubfiz x4, x2, 1, 16 1213 adrp x1, .LANCHOR3 1214 add x4, x4, 16 1215 strh wzr, [x0, 4] 1216 add x4, x0, x4 1217 ldrh w3, [x1, #:lo12:.LANCHOR3] 1218 mov w1, 65535 1219.L149: 1220 cmp w2, w3 1221 bcc .L151 1222 adrp x1, .LANCHOR19 1223 ubfiz x3, x3, 1, 16 1224 add x3, x3, 16 1225 add x2, x0, 16 1226 ldrh w1, [x1, #:lo12:.LANCHOR19] 1227 add x3, x0, x3 1228 mov w5, 65535 1229 sub w1, w1, #1 1230 and w1, w1, 65535 1231 sub w1, w1, w6 1232.L152: 1233 cmp x2, x3 1234 bne .L154 1235 ret 1236.L151: 1237 ldrh w5, [x4] 1238 cmp w5, w1 1239 beq .L150 1240 ldrh w5, [x0, 4] 1241 add w5, w5, 1 1242 strh w5, [x0, 4] 1243.L150: 1244 add w2, w2, 1 1245 add x4, x4, 2 1246 and w2, w2, 65535 1247 b .L149 1248.L154: 1249 ldrh w4, [x2] 1250 cmp w4, w5 1251 beq .L153 1252 ldrh w4, [x0, 4] 1253 add w4, w1, w4 1254 strh w4, [x0, 4] 1255.L153: 1256 add x2, x2, 2 1257 b .L152 1258 .size ftl_sb_update_avl_pages, .-ftl_sb_update_avl_pages 1259 .section .text.FtlSlcSuperblockCheck,"ax",@progbits 1260 .align 2 1261 .global FtlSlcSuperblockCheck 1262 .type FtlSlcSuperblockCheck, %function 1263FtlSlcSuperblockCheck: 1264 ldrh w1, [x0, 4] 1265 cbz w1, .L155 1266 ldrh w2, [x0] 1267 mov w1, 65535 1268 cmp w2, w1 1269 beq .L155 1270 ldrb w2, [x0, 6] 1271 add x2, x2, 8 1272 ldrh w3, [x0, x2, lsl 1] 1273 adrp x2, .LANCHOR3 1274 ldrh w4, [x2, #:lo12:.LANCHOR3] 1275 mov w2, w1 1276.L158: 1277 cmp w3, w2 1278 beq .L160 1279.L155: 1280 ret 1281.L160: 1282 ldrb w1, [x0, 6] 1283 add w1, w1, 1 1284 and w1, w1, 255 1285 strb w1, [x0, 6] 1286 cmp w1, w4 1287 bne .L159 1288 ldrh w1, [x0, 2] 1289 strb wzr, [x0, 6] 1290 add w1, w1, 1 1291 strh w1, [x0, 2] 1292.L159: 1293 ldrb w1, [x0, 6] 1294 add x1, x1, 8 1295 ldrh w3, [x0, x1, lsl 1] 1296 b .L158 1297 .size FtlSlcSuperblockCheck, .-FtlSlcSuperblockCheck 1298 .section .text.make_superblock,"ax",@progbits 1299 .align 2 1300 .global make_superblock 1301 .type make_superblock, %function 1302make_superblock: 1303 stp x29, x30, [sp, -32]! 1304 add x29, sp, 0 1305 ldrh w1, [x0] 1306 str x19, [sp, 16] 1307 mov x19, x0 1308 adrp x0, .LANCHOR5 1309 ldrh w0, [x0, #:lo12:.LANCHOR5] 1310 cmp w1, w0 1311 bcc .L162 1312 adrp x1, .LANCHOR60 1313 adrp x0, .LC1 1314 mov w2, 2156 1315 add x1, x1, :lo12:.LANCHOR60 1316 add x0, x0, :lo12:.LC1 1317 bl printf 1318.L162: 1319 adrp x0, .LANCHOR3 1320 adrp x7, .LANCHOR13 1321 add x6, x19, 16 1322 add x7, x7, :lo12:.LANCHOR13 1323 ldrh w8, [x0, #:lo12:.LANCHOR3] 1324 mov x5, 0 1325 strh wzr, [x19, 4] 1326 mov w10, -1 1327 strb wzr, [x19, 7] 1328.L163: 1329 cmp w8, w5, uxth 1330 bhi .L165 1331 adrp x1, .LANCHOR19 1332 ldrb w0, [x19, 7] 1333 strb wzr, [x19, 9] 1334 ldrh w1, [x1, #:lo12:.LANCHOR19] 1335 mul w0, w0, w1 1336 strh w0, [x19, 4] 1337 mov w0, 0 1338 ldr x19, [sp, 16] 1339 ldp x29, x30, [sp], 32 1340 ret 1341.L165: 1342 ldrh w1, [x19] 1343 ldrb w0, [x7, x5] 1344 bl V2P_block 1345 mov w4, w0 1346 strh w10, [x6] 1347 bl FtlBbmIsBadBlock 1348 cbnz w0, .L164 1349 strh w4, [x6] 1350 ldrb w0, [x19, 7] 1351 add w0, w0, 1 1352 strb w0, [x19, 7] 1353.L164: 1354 add x5, x5, 1 1355 add x6, x6, 2 1356 b .L163 1357 .size make_superblock, .-make_superblock 1358 .section .text.update_multiplier_value,"ax",@progbits 1359 .align 2 1360 .global update_multiplier_value 1361 .type update_multiplier_value, %function 1362update_multiplier_value: 1363 and w6, w0, 65535 1364 adrp x0, .LANCHOR3 1365 mov x7, 0 1366 adrp x8, .LANCHOR13 1367 ldrh w10, [x0, #:lo12:.LANCHOR3] 1368 adrp x0, .LANCHOR19 1369 mov w5, 0 1370 add x8, x8, :lo12:.LANCHOR13 1371 ldrh w11, [x0, #:lo12:.LANCHOR19] 1372 cmp w10, w7, uxth 1373 bhi .L179 1374 cbz w5, .L177 1375 mov w0, 32768 1376 sdiv w5, w0, w5 1377.L178: 1378 adrp x0, .LANCHOR40 1379 mov w1, 6 1380 ldr x0, [x0, #:lo12:.LANCHOR40] 1381 umaddl x6, w6, w1, x0 1382 mov w0, 0 1383 strh w5, [x6, 4] 1384 ret 1385.L172: 1386 mov w5, 0 1387 b .L171 1388.L177: 1389 mov w5, 0 1390 b .L178 1391.L179: 1392 stp x29, x30, [sp, -16]! 1393 add x29, sp, 0 1394.L170: 1395 ldrb w0, [x8, x7] 1396 mov w1, w6 1397 bl V2P_block 1398 bl FtlBbmIsBadBlock 1399 cbnz w0, .L169 1400 add w5, w5, w11 1401 and w5, w5, 65535 1402.L169: 1403 add x7, x7, 1 1404 cmp w10, w7, uxth 1405 bhi .L170 1406 cbz w5, .L172 1407 mov w0, 32768 1408 sdiv w5, w0, w5 1409.L171: 1410 adrp x0, .LANCHOR40 1411 mov w1, 6 1412 ldr x0, [x0, #:lo12:.LANCHOR40] 1413 umaddl x6, w6, w1, x0 1414 mov w0, 0 1415 strh w5, [x6, 4] 1416 ldp x29, x30, [sp], 16 1417 ret 1418 .size update_multiplier_value, .-update_multiplier_value 1419 .section .text.GetFreeBlockMinEraseCount,"ax",@progbits 1420 .align 2 1421 .global GetFreeBlockMinEraseCount 1422 .type GetFreeBlockMinEraseCount, %function 1423GetFreeBlockMinEraseCount: 1424 adrp x0, .LANCHOR47 1425 ldr x0, [x0, #:lo12:.LANCHOR47] 1426 cbz x0, .L182 1427 adrp x1, .LANCHOR40 1428 ldr x1, [x1, #:lo12:.LANCHOR40] 1429 sub x0, x0, x1 1430 mov x1, -6148914691236517206 1431 asr x0, x0, 1 1432 movk x1, 0xaaab, lsl 0 1433 mul x0, x0, x1 1434 adrp x1, .LANCHOR43 1435 ldr x1, [x1, #:lo12:.LANCHOR43] 1436 and x0, x0, 65535 1437 ldrh w0, [x1, x0, lsl 1] 1438 ret 1439.L182: 1440 mov w0, 0 1441 ret 1442 .size GetFreeBlockMinEraseCount, .-GetFreeBlockMinEraseCount 1443 .section .text.GetFreeBlockMaxEraseCount,"ax",@progbits 1444 .align 2 1445 .global GetFreeBlockMaxEraseCount 1446 .type GetFreeBlockMaxEraseCount, %function 1447GetFreeBlockMaxEraseCount: 1448 adrp x1, .LANCHOR47 1449 and w0, w0, 65535 1450 ldr x1, [x1, #:lo12:.LANCHOR47] 1451 cbz x1, .L190 1452 adrp x2, .LANCHOR48 1453 mov w3, 7 1454 mov w5, 6 1455 mov w6, 65535 1456 ldrh w2, [x2, #:lo12:.LANCHOR48] 1457 mul w2, w2, w3 1458 asr w2, w2, 3 1459 cmp w0, w2 1460 csel w0, w2, w0, gt 1461 adrp x2, .LANCHOR40 1462 ldr x3, [x2, #:lo12:.LANCHOR40] 1463 mov x2, -6148914691236517206 1464 movk x2, 0xaaab, lsl 0 1465 sub x1, x1, x3 1466 asr x1, x1, 1 1467 mul x1, x1, x2 1468 mov w2, 0 1469 and w1, w1, 65535 1470.L186: 1471 cmp w0, w2 1472 beq .L189 1473 umull x4, w1, w5 1474 ldrh w4, [x3, x4] 1475 cmp w4, w6 1476 bne .L187 1477.L189: 1478 adrp x0, .LANCHOR43 1479 ubfiz x1, x1, 1, 16 1480 ldr x0, [x0, #:lo12:.LANCHOR43] 1481 ldrh w0, [x0, x1] 1482 ret 1483.L187: 1484 add w2, w2, 1 1485 mov w1, w4 1486 and w2, w2, 65535 1487 b .L186 1488.L190: 1489 mov w0, 0 1490 ret 1491 .size GetFreeBlockMaxEraseCount, .-GetFreeBlockMaxEraseCount 1492 .section .text.free_data_superblock,"ax",@progbits 1493 .align 2 1494 .global free_data_superblock 1495 .type free_data_superblock, %function 1496free_data_superblock: 1497 and w0, w0, 65535 1498 mov w1, 65535 1499 cmp w0, w1 1500 beq .L194 1501 stp x29, x30, [sp, -16]! 1502 adrp x2, .LANCHOR42 1503 ubfiz x1, x0, 1, 16 1504 add x29, sp, 0 1505 ldr x2, [x2, #:lo12:.LANCHOR42] 1506 strh wzr, [x2, x1] 1507 bl INSERT_FREE_LIST 1508 mov w0, 0 1509 ldp x29, x30, [sp], 16 1510 ret 1511.L194: 1512 mov w0, 0 1513 ret 1514 .size free_data_superblock, .-free_data_superblock 1515 .section .text.get_new_active_ppa,"ax",@progbits 1516 .align 2 1517 .global get_new_active_ppa 1518 .type get_new_active_ppa, %function 1519get_new_active_ppa: 1520 stp x29, x30, [sp, -48]! 1521 add x29, sp, 0 1522 stp x19, x20, [sp, 16] 1523 mov x19, x0 1524 ldrh w1, [x0] 1525 mov w0, 65535 1526 str x21, [sp, 32] 1527 cmp w1, w0 1528 bne .L198 1529 adrp x1, .LANCHOR61 1530 adrp x0, .LC1 1531 mov w2, 2786 1532 add x1, x1, :lo12:.LANCHOR61 1533 add x0, x0, :lo12:.LC1 1534 bl printf 1535.L198: 1536 adrp x20, .LANCHOR19 1537 ldrh w1, [x19, 2] 1538 ldrh w0, [x20, #:lo12:.LANCHOR19] 1539 cmp w1, w0 1540 bne .L199 1541 adrp x1, .LANCHOR61 1542 adrp x0, .LC1 1543 mov w2, 2787 1544 add x1, x1, :lo12:.LANCHOR61 1545 add x0, x0, :lo12:.LC1 1546 bl printf 1547.L199: 1548 ldrh w0, [x19, 4] 1549 cbnz w0, .L200 1550 adrp x1, .LANCHOR61 1551 adrp x0, .LC1 1552 mov w2, 2788 1553 add x1, x1, :lo12:.LANCHOR61 1554 add x0, x0, :lo12:.LC1 1555 bl printf 1556.L200: 1557 ldrb w0, [x19, 6] 1558 adrp x1, .LANCHOR3 1559 strb wzr, [x19, 10] 1560 add x0, x0, 8 1561 ldrh w2, [x1, #:lo12:.LANCHOR3] 1562 mov w1, 65535 1563 ldrh w0, [x19, x0, lsl 1] 1564.L201: 1565 cmp w0, w1 1566 beq .L203 1567 ldrh w21, [x19, 2] 1568 mov w3, 65535 1569 ldrh w1, [x19, 4] 1570 orr w21, w21, w0, lsl 10 1571 ldrb w0, [x19, 6] 1572 sub w1, w1, #1 1573 and w1, w1, 65535 1574 strh w1, [x19, 4] 1575.L205: 1576 add w0, w0, 1 1577 and w0, w0, 255 1578 cmp w2, w0 1579 bne .L204 1580 ldrh w0, [x19, 2] 1581 add w0, w0, 1 1582 strh w0, [x19, 2] 1583 mov w0, 0 1584.L204: 1585 add x4, x19, x0, sxtw 1 1586 ldrh w4, [x4, 16] 1587 cmp w4, w3 1588 beq .L205 1589 strb w0, [x19, 6] 1590 ldrh w2, [x19, 2] 1591 ldrh w0, [x20, #:lo12:.LANCHOR19] 1592 cmp w2, w0 1593 bne .L197 1594 cbz w1, .L197 1595 adrp x1, .LANCHOR61 1596 adrp x0, .LC1 1597 mov w2, 2809 1598 add x1, x1, :lo12:.LANCHOR61 1599 add x0, x0, :lo12:.LC1 1600 bl printf 1601.L197: 1602 mov w0, w21 1603 ldr x21, [sp, 32] 1604 ldp x19, x20, [sp, 16] 1605 ldp x29, x30, [sp], 48 1606 ret 1607.L203: 1608 ldrb w0, [x19, 6] 1609 add w0, w0, 1 1610 and w0, w0, 255 1611 strb w0, [x19, 6] 1612 cmp w0, w2 1613 bne .L202 1614 ldrh w0, [x19, 2] 1615 strb wzr, [x19, 6] 1616 add w0, w0, 1 1617 strh w0, [x19, 2] 1618.L202: 1619 ldrb w0, [x19, 6] 1620 add x0, x0, 8 1621 ldrh w0, [x19, x0, lsl 1] 1622 b .L201 1623 .size get_new_active_ppa, .-get_new_active_ppa 1624 .section .text.FtlGcBufInit,"ax",@progbits 1625 .align 2 1626 .global FtlGcBufInit 1627 .type FtlGcBufInit, %function 1628FtlGcBufInit: 1629 adrp x1, .LANCHOR63 1630 adrp x0, .LANCHOR62 1631 adrp x7, .LANCHOR64 1632 adrp x6, .LANCHOR65 1633 ldr x5, [x1, #:lo12:.LANCHOR63] 1634 adrp x1, .LANCHOR23 1635 str wzr, [x0, #:lo12:.LANCHOR62] 1636 adrp x0, .LANCHOR3 1637 ldrh w10, [x1, #:lo12:.LANCHOR23] 1638 adrp x1, .LANCHOR24 1639 ldrh w0, [x0, #:lo12:.LANCHOR3] 1640 mov w8, 24 1641 ldrh w11, [x1, #:lo12:.LANCHOR24] 1642 adrp x1, .LANCHOR66 1643 ldr x14, [x7, #:lo12:.LANCHOR64] 1644 mov x3, x5 1645 ldr x4, [x1, #:lo12:.LANCHOR66] 1646 mov w2, 0 1647 ldr x15, [x6, #:lo12:.LANCHOR65] 1648 nop // between mem op and mult-accumulate 1649 umaddl x8, w0, w8, x5 1650 add x4, x4, 8 1651 mov w1, 0 1652 mov w16, 1 1653.L213: 1654 add w13, w2, w10 1655 add w12, w1, w11 1656 cmp x3, x8 1657 bne .L214 1658 adrp x1, .LANCHOR67 1659 ldr x7, [x7, #:lo12:.LANCHOR64] 1660 ldr x6, [x6, #:lo12:.LANCHOR65] 1661 mov w8, 24 1662 ldr w4, [x1, #:lo12:.LANCHOR67] 1663.L215: 1664 cmp w0, w4 1665 bcc .L216 1666 ret 1667.L214: 1668 asr w2, w2, 2 1669 asr w1, w1, 2 1670 add x2, x14, x2, sxtw 2 1671 add x1, x15, x1, sxtw 2 1672 str w16, [x3, 16] 1673 stp x2, x1, [x3] 1674 add x3, x3, 24 1675 stp x2, x1, [x4] 1676 add x4, x4, 32 1677 mov w1, w12 1678 mov w2, w13 1679 b .L213 1680.L216: 1681 umull x3, w0, w8 1682 mul w1, w10, w0 1683 add x2, x5, x3 1684 asr w1, w1, 2 1685 add x1, x7, x1, sxtw 2 1686 str wzr, [x2, 16] 1687 str x1, [x5, x3] 1688 mul w1, w11, w0 1689 add w0, w0, 1 1690 and w0, w0, 65535 1691 asr w1, w1, 2 1692 add x1, x6, x1, sxtw 2 1693 str x1, [x2, 8] 1694 b .L215 1695 .size FtlGcBufInit, .-FtlGcBufInit 1696 .section .text.FtlGcBufFree,"ax",@progbits 1697 .align 2 1698 .global FtlGcBufFree 1699 .type FtlGcBufFree, %function 1700FtlGcBufFree: 1701 adrp x2, .LANCHOR67 1702 mov w3, 0 1703 mov w8, 24 1704 ldr w7, [x2, #:lo12:.LANCHOR67] 1705 adrp x2, .LANCHOR63 1706 ldr x5, [x2, #:lo12:.LANCHOR63] 1707.L218: 1708 cmp w3, w1 1709 bcs .L217 1710 ubfiz x4, x3, 5, 16 1711 mov w2, 0 1712 add x4, x0, x4 1713 b .L223 1714.L219: 1715 add w2, w2, 1 1716 and w2, w2, 65535 1717.L223: 1718 cmp w2, w7 1719 bcs .L220 1720 umull x6, w2, w8 1721 add x10, x5, x6 1722 ldr x11, [x5, x6] 1723 ldr x6, [x4, 8] 1724 cmp x11, x6 1725 bne .L219 1726 str wzr, [x10, 16] 1727.L220: 1728 add w3, w3, 1 1729 and w3, w3, 65535 1730 b .L218 1731.L217: 1732 ret 1733 .size FtlGcBufFree, .-FtlGcBufFree 1734 .section .text.FtlGcBufAlloc,"ax",@progbits 1735 .align 2 1736 .global FtlGcBufAlloc 1737 .type FtlGcBufAlloc, %function 1738FtlGcBufAlloc: 1739 adrp x2, .LANCHOR67 1740 mov w3, 0 1741 mov w7, 24 1742 mov w8, 1 1743 ldr w5, [x2, #:lo12:.LANCHOR67] 1744 adrp x2, .LANCHOR63 1745 ldr x6, [x2, #:lo12:.LANCHOR63] 1746.L225: 1747 cmp w3, w1 1748 bcs .L224 1749 mov w2, 0 1750 b .L230 1751.L226: 1752 add w2, w2, 1 1753 and w2, w2, 65535 1754.L230: 1755 cmp w2, w5 1756 bcs .L227 1757 umaddl x4, w2, w7, x6 1758 ldr w10, [x4, 16] 1759 cbnz w10, .L226 1760 ubfiz x2, x3, 5, 16 1761 ldr x10, [x4] 1762 add x2, x0, x2 1763 str w8, [x4, 16] 1764 ldr x4, [x4, 8] 1765 stp x10, x4, [x2, 8] 1766.L227: 1767 add w3, w3, 1 1768 and w3, w3, 65535 1769 b .L225 1770.L224: 1771 ret 1772 .size FtlGcBufAlloc, .-FtlGcBufAlloc 1773 .section .text.IsBlkInGcList,"ax",@progbits 1774 .align 2 1775 .global IsBlkInGcList 1776 .type IsBlkInGcList, %function 1777IsBlkInGcList: 1778 adrp x1, .LANCHOR68 1779 and w0, w0, 65535 1780 ldrh w2, [x1, #:lo12:.LANCHOR68] 1781 adrp x1, .LANCHOR69 1782 ldr x3, [x1, #:lo12:.LANCHOR69] 1783 mov x1, 0 1784.L232: 1785 cmp w2, w1, uxth 1786 bhi .L234 1787 mov w0, 0 1788 ret 1789.L234: 1790 add x1, x1, 1 1791 add x4, x3, x1, lsl 1 1792 ldrh w4, [x4, -2] 1793 cmp w4, w0 1794 bne .L232 1795 mov w0, 1 1796 ret 1797 .size IsBlkInGcList, .-IsBlkInGcList 1798 .section .text.FtlGcUpdatePage,"ax",@progbits 1799 .align 2 1800 .global FtlGcUpdatePage 1801 .type FtlGcUpdatePage, %function 1802FtlGcUpdatePage: 1803 mov w6, w0 1804 mov w10, w1 1805 mov w8, w2 1806 stp x29, x30, [sp, -16]! 1807 lsr w0, w0, 10 1808 add x29, sp, 0 1809 bl P2V_block_in_plane 1810 and w7, w0, 65535 1811 adrp x4, .LANCHOR68 1812 adrp x2, .LANCHOR69 1813 mov x3, 0 1814 ldrh w1, [x4, #:lo12:.LANCHOR68] 1815 ldr x5, [x2, #:lo12:.LANCHOR69] 1816.L237: 1817 and w2, w3, 65535 1818 cmp w2, w1 1819 bcc .L239 1820 bne .L238 1821 and x3, x3, 65535 1822 strh w0, [x5, x3, lsl 1] 1823 ldrh w0, [x4, #:lo12:.LANCHOR68] 1824 add w0, w0, 1 1825 strh w0, [x4, #:lo12:.LANCHOR68] 1826 b .L238 1827.L239: 1828 add x3, x3, 1 1829 add x2, x5, x3, lsl 1 1830 ldrh w2, [x2, -2] 1831 cmp w2, w7 1832 bne .L237 1833.L238: 1834 adrp x4, .LANCHOR70 1835 adrp x1, .LANCHOR71 1836 mov w3, 12 1837 ldrh w0, [x4, #:lo12:.LANCHOR70] 1838 ldr x5, [x1, #:lo12:.LANCHOR71] 1839 umull x3, w0, w3 1840 add w0, w0, 1 1841 add x7, x5, x3 1842 stp w10, w8, [x7, 4] 1843 str w6, [x5, x3] 1844 strh w0, [x4, #:lo12:.LANCHOR70] 1845 ldp x29, x30, [sp], 16 1846 ret 1847 .size FtlGcUpdatePage, .-FtlGcUpdatePage 1848 .section .text.FtlGcRefreshBlock,"ax",@progbits 1849 .align 2 1850 .global FtlGcRefreshBlock 1851 .type FtlGcRefreshBlock, %function 1852FtlGcRefreshBlock: 1853 adrp x4, .LANCHOR72 1854 and w0, w0, 65535 1855 ldrh w5, [x4, #:lo12:.LANCHOR72] 1856 cmp w5, w0 1857 beq .L242 1858 adrp x1, .LANCHOR73 1859 ldrh w3, [x1, #:lo12:.LANCHOR73] 1860 cmp w0, w3 1861 beq .L242 1862 mov w2, 65535 1863 cmp w5, w2 1864 bne .L243 1865 strh w0, [x4, #:lo12:.LANCHOR72] 1866.L242: 1867 mov w0, 0 1868 ret 1869.L243: 1870 cmp w3, w2 1871 bne .L242 1872 strh w0, [x1, #:lo12:.LANCHOR73] 1873 b .L242 1874 .size FtlGcRefreshBlock, .-FtlGcRefreshBlock 1875 .section .text.FtlGcMarkBadPhyBlk,"ax",@progbits 1876 .align 2 1877 .global FtlGcMarkBadPhyBlk 1878 .type FtlGcMarkBadPhyBlk, %function 1879FtlGcMarkBadPhyBlk: 1880 and w6, w0, 65535 1881 stp x29, x30, [sp, -16]! 1882 mov w0, w6 1883 add x29, sp, 0 1884 bl P2V_block_in_plane 1885 bl FtlGcRefreshBlock 1886 adrp x1, .LANCHOR74 1887 adrp x3, .LANCHOR75 1888 add x3, x3, :lo12:.LANCHOR75 1889 mov x2, 0 1890 ldrh w0, [x1, #:lo12:.LANCHOR74] 1891.L245: 1892 cmp w0, w2, uxth 1893 bhi .L247 1894 cmp w0, 15 1895 bhi .L246 1896 add w2, w0, 1 1897 strh w2, [x1, #:lo12:.LANCHOR74] 1898 adrp x1, .LANCHOR75 1899 add x1, x1, :lo12:.LANCHOR75 1900 strh w6, [x1, w0, sxtw 1] 1901 b .L246 1902.L247: 1903 add x2, x2, 1 1904 add x4, x3, x2, lsl 1 1905 ldrh w4, [x4, -2] 1906 cmp w4, w6 1907 bne .L245 1908.L246: 1909 mov w0, 0 1910 ldp x29, x30, [sp], 16 1911 ret 1912 .size FtlGcMarkBadPhyBlk, .-FtlGcMarkBadPhyBlk 1913 .section .text.FtlGcReFreshBadBlk,"ax",@progbits 1914 .align 2 1915 .global FtlGcReFreshBadBlk 1916 .type FtlGcReFreshBadBlk, %function 1917FtlGcReFreshBadBlk: 1918 adrp x0, .LANCHOR74 1919 ldrh w0, [x0, #:lo12:.LANCHOR74] 1920 cbz w0, .L256 1921 adrp x1, .LANCHOR72 1922 ldrh w2, [x1, #:lo12:.LANCHOR72] 1923 mov w1, 65535 1924 cmp w2, w1 1925 bne .L256 1926 stp x29, x30, [sp, -16]! 1927 adrp x6, .LANCHOR76 1928 add x29, sp, 0 1929 ldrh w1, [x6, #:lo12:.LANCHOR76] 1930 cmp w1, w0 1931 bcc .L251 1932 strh wzr, [x6, #:lo12:.LANCHOR76] 1933.L251: 1934 ldrh w1, [x6, #:lo12:.LANCHOR76] 1935 adrp x0, .LANCHOR75 1936 add x0, x0, :lo12:.LANCHOR75 1937 ldrh w0, [x0, x1, lsl 1] 1938 bl P2V_block_in_plane 1939 bl FtlGcRefreshBlock 1940 ldrh w0, [x6, #:lo12:.LANCHOR76] 1941 ldp x29, x30, [sp], 16 1942 add w0, w0, 1 1943 strh w0, [x6, #:lo12:.LANCHOR76] 1944 mov w0, 0 1945 ret 1946.L256: 1947 mov w0, 0 1948 ret 1949 .size FtlGcReFreshBadBlk, .-FtlGcReFreshBadBlk 1950 .section .text.ftl_malloc,"ax",@progbits 1951 .align 2 1952 .global ftl_malloc 1953 .type ftl_malloc, %function 1954ftl_malloc: 1955 mov w1, 0 1956 sxtw x0, w0 1957 b kmalloc 1958 .size ftl_malloc, .-ftl_malloc 1959 .section .text.ftl_free,"ax",@progbits 1960 .align 2 1961 .global ftl_free 1962 .type ftl_free, %function 1963ftl_free: 1964 b free 1965 .size ftl_free, .-ftl_free 1966 .section .text.rknand_print_hex,"ax",@progbits 1967 .align 2 1968 .global rknand_print_hex 1969 .type rknand_print_hex, %function 1970rknand_print_hex: 1971 stp x29, x30, [sp, -96]! 1972 add x29, sp, 0 1973 stp x21, x22, [sp, 32] 1974 mov x22, x1 1975 stp x23, x24, [sp, 48] 1976 adrp x24, .LC2 1977 stp x25, x26, [sp, 64] 1978 mov w23, w2 1979 stp x27, x28, [sp, 80] 1980 adrp x25, .LC4 1981 mov x28, x0 1982 mov w27, w3 1983 add x24, x24, :lo12:.LC2 1984 add x25, x25, :lo12:.LC4 1985 stp x19, x20, [sp, 16] 1986 mov w21, 0 1987 mov x19, 0 1988 mov w20, 0 1989 adrp x26, .LC3 1990.L262: 1991 cmp w27, w19 1992 bhi .L268 1993 ldp x19, x20, [sp, 16] 1994 adrp x0, .LC5 1995 ldp x21, x22, [sp, 32] 1996 add x0, x0, :lo12:.LC5 1997 ldp x23, x24, [sp, 48] 1998 ldp x25, x26, [sp, 64] 1999 ldp x27, x28, [sp, 80] 2000 ldp x29, x30, [sp], 96 2001 b printf 2002.L268: 2003 cbnz w20, .L263 2004 mov w2, w21 2005 mov x1, x28 2006 mov x0, x24 2007 bl printf 2008.L263: 2009 cmp w23, 4 2010 bne .L264 2011 ldr w1, [x22, x19, lsl 2] 2012.L271: 2013 add x0, x26, :lo12:.LC3 2014.L270: 2015 bl printf 2016 add w20, w20, 1 2017 cmp w20, 15 2018 bls .L267 2019 mov w20, 0 2020 adrp x0, .LC5 2021 add x0, x0, :lo12:.LC5 2022 bl printf 2023.L267: 2024 add x19, x19, 1 2025 add w21, w21, w23 2026 b .L262 2027.L264: 2028 cmp w23, 2 2029 bne .L266 2030 ldrh w1, [x22, x19, lsl 1] 2031 b .L271 2032.L266: 2033 ldrb w1, [x22, x19] 2034 mov x0, x25 2035 b .L270 2036 .size rknand_print_hex, .-rknand_print_hex 2037 .section .text.FlashEraseBlocks,"ax",@progbits 2038 .align 2 2039 .global FlashEraseBlocks 2040 .type FlashEraseBlocks, %function 2041FlashEraseBlocks: 2042 stp x29, x30, [sp, -112]! 2043 add x29, sp, 0 2044 stp x19, x20, [sp, 16] 2045 mov x20, x0 2046 adrp x0, .LANCHOR0 2047 add x1, x0, :lo12:.LANCHOR0 2048 stp x23, x24, [sp, 48] 2049 add x19, x20, 4 2050 stp x21, x22, [sp, 32] 2051 ubfiz x21, x2, 5, 32 2052 ldrh w24, [x1, 12] 2053 add x23, x21, 4 2054 stp x25, x26, [sp, 64] 2055 add x23, x20, x23 2056 adrp x25, .LANCHOR78 2057 str x27, [sp, 80] 2058 lsl w26, w24, 3 2059 mov x22, x0 2060 add x27, x25, :lo12:.LANCHOR78 2061.L273: 2062 cmp x19, x23 2063 beq .L287 2064 ldr w0, [x19] 2065 add x2, x29, 104 2066 add x1, x29, 108 2067 bl l2p_addr_tran.isra.0 2068 ldr w0, [x29, 104] 2069 cbnz w0, .L274 2070 ldr w1, [x29, 108] 2071 cmp w26, w1 2072 bls .L274 2073 mov x19, x20 2074 add x21, x20, x21 2075 adrp x22, .LC6 2076 adrp x20, .LANCHOR77 2077 add x22, x22, :lo12:.LC6 2078 add x20, x20, :lo12:.LANCHOR77 2079 mov w23, -1 2080.L275: 2081 cmp x19, x21 2082 bne .L276 2083.L287: 2084 ldp x19, x20, [sp, 16] 2085 mov w0, 0 2086 ldp x21, x22, [sp, 32] 2087 ldp x23, x24, [sp, 48] 2088 ldp x25, x26, [sp, 64] 2089 ldr x27, [sp, 80] 2090 ldp x29, x30, [sp], 112 2091 ret 2092.L276: 2093 ldr w2, [x29, 108] 2094 mov x1, x20 2095 str w23, [x19] 2096 mov x0, x22 2097 add x19, x19, 32 2098 bl printf 2099 ldr x1, [x19, -24] 2100 mov w3, 16 2101 mov w2, 4 2102 adrp x0, .LC7 2103 add x0, x0, :lo12:.LC7 2104 bl rknand_print_hex 2105 ldr x1, [x19, -16] 2106 mov w3, 4 2107 adrp x0, .LC8 2108 mov w2, w3 2109 add x0, x0, :lo12:.LC8 2110 bl rknand_print_hex 2111 b .L275 2112.L274: 2113 add x1, x25, :lo12:.LANCHOR78 2114 ldr x2, [x1, 8] 2115 ldr w1, [x29, 108] 2116 blr x2 2117 cbnz w0, .L277 2118 str wzr, [x19, -4] 2119.L278: 2120 add x0, x22, :lo12:.LANCHOR0 2121 ldrh w0, [x0, 14] 2122 cmp w0, 4 2123 bne .L280 2124 ldrb w0, [x29, 104] 2125 ldr x2, [x27, 8] 2126 ldr w1, [x29, 108] 2127 add w1, w24, w1 2128 blr x2 2129 cbz w0, .L280 2130 mov w0, -1 2131 str w0, [x19, -4] 2132.L280: 2133 add x19, x19, 32 2134 b .L273 2135.L277: 2136 mov w0, -1 2137 str w0, [x19, -4] 2138 b .L278 2139 .size FlashEraseBlocks, .-FlashEraseBlocks 2140 .section .text.FtlFreeSysBlkQueueIn,"ax",@progbits 2141 .align 2 2142 .global FtlFreeSysBlkQueueIn 2143 .type FtlFreeSysBlkQueueIn, %function 2144FtlFreeSysBlkQueueIn: 2145 stp x29, x30, [sp, -48]! 2146 add x29, sp, 0 2147 stp x19, x20, [sp, 16] 2148 and w20, w0, 65535 2149 str x21, [sp, 32] 2150 sub w2, w20, #1 2151 mov w0, 65533 2152 cmp w0, w2, uxth 2153 bcc .L289 2154 adrp x0, .LANCHOR38 2155 add x2, x0, :lo12:.LANCHOR38 2156 mov x19, x0 2157 ldrh w2, [x2, 6] 2158 cmp w2, 1024 2159 beq .L289 2160 and w1, w1, 65535 2161 cbz w1, .L291 2162 mov w0, w20 2163 bl P2V_block_in_plane 2164 and w21, w0, 65535 2165 adrp x0, .LANCHOR79 2166 lsl w1, w20, 10 2167 mov w2, 1 2168 ldr x0, [x0, #:lo12:.LANCHOR79] 2169 str w1, [x0, 4] 2170 mov w1, w2 2171 bl FlashEraseBlocks 2172 adrp x1, .LANCHOR43 2173 ubfiz x0, x21, 1, 16 2174 ldr x2, [x1, #:lo12:.LANCHOR43] 2175 ldrh w1, [x2, x0] 2176 add w1, w1, 1 2177 strh w1, [x2, x0] 2178 adrp x1, .LANCHOR80 2179 ldr w0, [x1, #:lo12:.LANCHOR80] 2180 add w0, w0, 1 2181 str w0, [x1, #:lo12:.LANCHOR80] 2182.L291: 2183 add x0, x19, :lo12:.LANCHOR38 2184 ldrh w1, [x0, 6] 2185 add w1, w1, 1 2186 strh w1, [x0, 6] 2187 ldrh w1, [x0, 4] 2188 add x2, x0, x1, sxtw 1 2189 add w1, w1, 1 2190 and w1, w1, 1023 2191 strh w1, [x0, 4] 2192 strh w20, [x2, 8] 2193.L289: 2194 ldp x19, x20, [sp, 16] 2195 ldr x21, [sp, 32] 2196 ldp x29, x30, [sp], 48 2197 ret 2198 .size FtlFreeSysBlkQueueIn, .-FtlFreeSysBlkQueueIn 2199 .section .text.FtlFreeSysBlkQueueOut,"ax",@progbits 2200 .align 2 2201 .global FtlFreeSysBlkQueueOut 2202 .type FtlFreeSysBlkQueueOut, %function 2203FtlFreeSysBlkQueueOut: 2204 adrp x0, .LANCHOR38 2205 add x1, x0, :lo12:.LANCHOR38 2206 stp x29, x30, [sp, -32]! 2207 add x29, sp, 0 2208 ldrh w2, [x1, 6] 2209 stp x19, x20, [sp, 16] 2210 mov x19, x0 2211 cbz w2, .L303 2212 ldrh w0, [x1, 2] 2213 sub w2, w2, #1 2214 strh w2, [x1, 6] 2215 mov w2, 1 2216 add x3, x1, x0, sxtw 1 2217 add w0, w0, 1 2218 and w0, w0, 1023 2219 strh w0, [x1, 2] 2220 adrp x0, .LANCHOR79 2221 ldrh w20, [x3, 8] 2222 ldr x0, [x0, #:lo12:.LANCHOR79] 2223 lsl w1, w20, 10 2224 str w1, [x0, 4] 2225 mov w1, w2 2226 bl FlashEraseBlocks 2227 adrp x1, .LANCHOR80 2228 ldr w0, [x1, #:lo12:.LANCHOR80] 2229 add w0, w0, 1 2230 str w0, [x1, #:lo12:.LANCHOR80] 2231.L300: 2232 sub w0, w20, #1 2233 mov w1, 65533 2234 cmp w1, w0, uxth 2235 bcs .L301 2236 add x0, x19, :lo12:.LANCHOR38 2237 mov w1, w20 2238 ldrh w2, [x0, 6] 2239 adrp x0, .LC9 2240 add x0, x0, :lo12:.LC9 2241 bl printf 2242.L302: 2243 b .L302 2244.L303: 2245 mov w20, 65535 2246 b .L300 2247.L301: 2248 mov w0, w20 2249 ldp x19, x20, [sp, 16] 2250 ldp x29, x30, [sp], 32 2251 ret 2252 .size FtlFreeSysBlkQueueOut, .-FtlFreeSysBlkQueueOut 2253 .section .text.ftl_map_blk_alloc_new_blk,"ax",@progbits 2254 .align 2 2255 .global ftl_map_blk_alloc_new_blk 2256 .type ftl_map_blk_alloc_new_blk, %function 2257ftl_map_blk_alloc_new_blk: 2258 stp x29, x30, [sp, -48]! 2259 add x29, sp, 0 2260 stp x19, x20, [sp, 16] 2261 mov x19, x0 2262 ldrh w1, [x0, 10] 2263 mov w20, 0 2264 ldr x0, [x0, 16] 2265 str x21, [sp, 32] 2266.L306: 2267 cmp w20, w1 2268 beq .L310 2269 mov x21, x0 2270 ldrh w2, [x0], 2 2271 cbnz w2, .L307 2272 bl FtlFreeSysBlkQueueOut 2273 and w1, w0, 65535 2274 strh w0, [x21] 2275 sub w2, w1, #1 2276 mov w0, 65533 2277 cmp w0, w2, uxth 2278 bcs .L308 2279 adrp x0, .LANCHOR38+6 2280 ldrh w2, [x0, #:lo12:.LANCHOR38+6] 2281 adrp x0, .LC10 2282 add x0, x0, :lo12:.LC10 2283 bl printf 2284.L309: 2285 b .L309 2286.L308: 2287 ldr w0, [x19, 48] 2288 strh wzr, [x19, 2] 2289 add w0, w0, 1 2290 str w0, [x19, 48] 2291 ldrh w0, [x19, 8] 2292 strh w20, [x19] 2293 add w0, w0, 1 2294 strh w0, [x19, 8] 2295.L310: 2296 ldrh w0, [x19, 10] 2297 cmp w0, w20 2298 bhi .L312 2299 adrp x1, .LANCHOR81 2300 adrp x0, .LC1 2301 mov w2, 578 2302 add x1, x1, :lo12:.LANCHOR81 2303 add x0, x0, :lo12:.LC1 2304 bl printf 2305.L312: 2306 mov w0, 0 2307 ldr x21, [sp, 32] 2308 ldp x19, x20, [sp, 16] 2309 ldp x29, x30, [sp], 48 2310 ret 2311.L307: 2312 add w20, w20, 1 2313 and w20, w20, 65535 2314 b .L306 2315 .size ftl_map_blk_alloc_new_blk, .-ftl_map_blk_alloc_new_blk 2316 .section .text.ftl_memset,"ax",@progbits 2317 .align 2 2318 .global ftl_memset 2319 .type ftl_memset, %function 2320ftl_memset: 2321 uxtw x2, w2 2322 b memset 2323 .size ftl_memset, .-ftl_memset 2324 .section .text.FtlMemInit,"ax",@progbits 2325 .align 2 2326 .global FtlMemInit 2327 .type FtlMemInit, %function 2328FtlMemInit: 2329 stp x29, x30, [sp, -64]! 2330 adrp x0, .LANCHOR82 2331 mov w1, 65535 2332 add x29, sp, 0 2333 str wzr, [x0, #:lo12:.LANCHOR82] 2334 adrp x0, .LANCHOR83 2335 stp x19, x20, [sp, 16] 2336 adrp x19, .LANCHOR21 2337 str wzr, [x0, #:lo12:.LANCHOR83] 2338 adrp x0, .LANCHOR84 2339 stp x21, x22, [sp, 32] 2340 adrp x22, .LANCHOR3 2341 str wzr, [x0, #:lo12:.LANCHOR84] 2342 adrp x0, .LANCHOR85 2343 str x23, [sp, 48] 2344 adrp x21, .LANCHOR23 2345 str wzr, [x0, #:lo12:.LANCHOR85] 2346 adrp x0, .LANCHOR86 2347 adrp x23, .LANCHOR24 2348 str wzr, [x0, #:lo12:.LANCHOR86] 2349 adrp x0, .LANCHOR87 2350 str wzr, [x0, #:lo12:.LANCHOR87] 2351 adrp x0, .LANCHOR88 2352 str wzr, [x0, #:lo12:.LANCHOR88] 2353 adrp x0, .LANCHOR89 2354 str wzr, [x0, #:lo12:.LANCHOR89] 2355 adrp x0, .LANCHOR90 2356 str wzr, [x0, #:lo12:.LANCHOR90] 2357 adrp x0, .LANCHOR91 2358 str wzr, [x0, #:lo12:.LANCHOR91] 2359 adrp x0, .LANCHOR80 2360 str wzr, [x0, #:lo12:.LANCHOR80] 2361 adrp x0, .LANCHOR92 2362 str wzr, [x0, #:lo12:.LANCHOR92] 2363 adrp x0, .LANCHOR93 2364 str wzr, [x0, #:lo12:.LANCHOR93] 2365 adrp x0, .LANCHOR94 2366 str wzr, [x0, #:lo12:.LANCHOR94] 2367 adrp x0, .LANCHOR95 2368 str wzr, [x0, #:lo12:.LANCHOR95] 2369 adrp x0, .LANCHOR96 2370 str w1, [x0, #:lo12:.LANCHOR96] 2371 adrp x0, .LANCHOR97 2372 adrp x1, .LANCHOR72 2373 str wzr, [x0, #:lo12:.LANCHOR97] 2374 adrp x0, .LANCHOR98 2375 str wzr, [x0, #:lo12:.LANCHOR98] 2376 adrp x0, .LANCHOR99 2377 str wzr, [x0, #:lo12:.LANCHOR99] 2378 mov w0, -1 2379 strh w0, [x1, #:lo12:.LANCHOR72] 2380 adrp x1, .LANCHOR73 2381 strh w0, [x1, #:lo12:.LANCHOR73] 2382 adrp x0, .LANCHOR100 2383 mov w1, 32 2384 strh w1, [x0, #:lo12:.LANCHOR100] 2385 adrp x0, .LANCHOR101 2386 mov w1, 128 2387 strh w1, [x0, #:lo12:.LANCHOR101] 2388 adrp x0, .LANCHOR102 2389 strh wzr, [x0, #:lo12:.LANCHOR102] 2390 adrp x0, .LANCHOR74 2391 strh wzr, [x0, #:lo12:.LANCHOR74] 2392 adrp x0, .LANCHOR76 2393 strh wzr, [x0, #:lo12:.LANCHOR76] 2394 ldrh w0, [x19, #:lo12:.LANCHOR21] 2395 lsl w0, w0, 1 2396 bl ftl_malloc 2397 adrp x1, .LANCHOR69 2398 str x0, [x1, #:lo12:.LANCHOR69] 2399 mov w0, 12 2400 ldrh w1, [x19, #:lo12:.LANCHOR21] 2401 mul w0, w1, w0 2402 bl ftl_malloc 2403 ldrh w19, [x22, #:lo12:.LANCHOR3] 2404 adrp x1, .LANCHOR71 2405 lsl w20, w19, 5 2406 lsl w19, w19, 7 2407 str x0, [x1, #:lo12:.LANCHOR71] 2408 mov w0, w19 2409 bl ftl_malloc 2410 adrp x1, .LANCHOR103 2411 str x0, [x1, #:lo12:.LANCHOR103] 2412 mov w0, w20 2413 bl ftl_malloc 2414 adrp x1, .LANCHOR104 2415 str x0, [x1, #:lo12:.LANCHOR104] 2416 mov w0, w19 2417 bl ftl_malloc 2418 adrp x1, .LANCHOR105 2419 str x0, [x1, #:lo12:.LANCHOR105] 2420 mov w0, w20 2421 bl ftl_malloc 2422 adrp x1, .LANCHOR79 2423 str x0, [x1, #:lo12:.LANCHOR79] 2424 mov w0, w20 2425 bl ftl_malloc 2426 adrp x20, .LANCHOR67 2427 adrp x1, .LANCHOR66 2428 ldrh w19, [x21, #:lo12:.LANCHOR23] 2429 str x0, [x1, #:lo12:.LANCHOR66] 2430 ldrh w0, [x22, #:lo12:.LANCHOR3] 2431 lsl w0, w0, 1 2432 add w0, w0, 1 2433 str w0, [x20, #:lo12:.LANCHOR67] 2434 mov w0, w19 2435 bl ftl_malloc 2436 adrp x1, .LANCHOR106 2437 str x0, [x1, #:lo12:.LANCHOR106] 2438 mov w0, w19 2439 bl ftl_malloc 2440 adrp x1, .LANCHOR107 2441 str x0, [x1, #:lo12:.LANCHOR107] 2442 mov w0, w19 2443 bl ftl_malloc 2444 adrp x1, .LANCHOR108 2445 str x0, [x1, #:lo12:.LANCHOR108] 2446 ldr w0, [x20, #:lo12:.LANCHOR67] 2447 mul w0, w19, w0 2448 bl ftl_malloc 2449 adrp x1, .LANCHOR64 2450 str x0, [x1, #:lo12:.LANCHOR64] 2451 mov w0, w19 2452 bl ftl_malloc 2453 adrp x1, .LANCHOR109 2454 str x0, [x1, #:lo12:.LANCHOR109] 2455 mov w0, w19 2456 bl ftl_malloc 2457 adrp x1, .LANCHOR110 2458 str x0, [x1, #:lo12:.LANCHOR110] 2459 mov w0, 24 2460 ldr w1, [x20, #:lo12:.LANCHOR67] 2461 mul w0, w1, w0 2462 bl ftl_malloc 2463 adrp x1, .LANCHOR63 2464 str x0, [x1, #:lo12:.LANCHOR63] 2465 mov w0, w19 2466 bl ftl_malloc 2467 adrp x1, .LANCHOR111 2468 str x0, [x1, #:lo12:.LANCHOR111] 2469 mov w0, w19 2470 bl ftl_malloc 2471 adrp x1, .LANCHOR112 2472 str x0, [x1, #:lo12:.LANCHOR112] 2473 adrp x0, .LANCHOR12 2474 ldrh w0, [x0, #:lo12:.LANCHOR12] 2475 lsl w0, w0, 2 2476 bl ftl_malloc 2477 adrp x1, .LANCHOR113 2478 ldrh w19, [x23, #:lo12:.LANCHOR24] 2479 str x0, [x1, #:lo12:.LANCHOR113] 2480 ldrh w0, [x22, #:lo12:.LANCHOR3] 2481 adrp x22, .LANCHOR30 2482 mul w19, w19, w0 2483 mov w0, w19 2484 bl ftl_malloc 2485 adrp x1, .LANCHOR114 2486 str x0, [x1, #:lo12:.LANCHOR114] 2487 lsl w0, w19, 2 2488 bl ftl_malloc 2489 adrp x19, .LANCHOR6 2490 adrp x1, .LANCHOR115 2491 str x0, [x1, #:lo12:.LANCHOR115] 2492 ldrh w1, [x23, #:lo12:.LANCHOR24] 2493 ldr w0, [x20, #:lo12:.LANCHOR67] 2494 adrp x20, .LANCHOR116 2495 mul w0, w1, w0 2496 bl ftl_malloc 2497 adrp x1, .LANCHOR65 2498 str x0, [x1, #:lo12:.LANCHOR65] 2499 ldrh w0, [x19, #:lo12:.LANCHOR6] 2500 ubfiz w0, w0, 1, 15 2501 strh w0, [x20, #:lo12:.LANCHOR116] 2502 and w0, w0, 65534 2503 bl ftl_malloc 2504 adrp x1, .LANCHOR117 2505 str x0, [x1, #:lo12:.LANCHOR117] 2506 ldrh w0, [x20, #:lo12:.LANCHOR116] 2507 add x0, x0, 547 2508 lsr x0, x0, 9 2509 strh w0, [x20, #:lo12:.LANCHOR116] 2510 lsl w0, w0, 9 2511 bl ftl_malloc 2512 adrp x1, .LANCHOR118 2513 str x0, [x1, #:lo12:.LANCHOR118] 2514 adrp x1, .LANCHOR43 2515 add x0, x0, 32 2516 str x0, [x1, #:lo12:.LANCHOR43] 2517 ldrh w0, [x19, #:lo12:.LANCHOR6] 2518 lsl w0, w0, 1 2519 bl ftl_malloc 2520 ldr w20, [x22, #:lo12:.LANCHOR30] 2521 adrp x1, .LANCHOR42 2522 str x0, [x1, #:lo12:.LANCHOR42] 2523 lsl w20, w20, 1 2524 mov w0, w20 2525 bl ftl_malloc 2526 adrp x1, .LANCHOR119 2527 str x0, [x1, #:lo12:.LANCHOR119] 2528 mov w0, w20 2529 bl ftl_malloc 2530 adrp x20, .LANCHOR27 2531 adrp x1, .LANCHOR120 2532 str x0, [x1, #:lo12:.LANCHOR120] 2533 ldrh w0, [x19, #:lo12:.LANCHOR6] 2534 lsr w0, w0, 3 2535 add w0, w0, 4 2536 bl ftl_malloc 2537 adrp x1, .LANCHOR1 2538 str x0, [x1, #:lo12:.LANCHOR1] 2539 ldrh w0, [x20, #:lo12:.LANCHOR27] 2540 lsl w0, w0, 1 2541 bl ftl_malloc 2542 adrp x1, .LANCHOR36 2543 str x0, [x1, #:lo12:.LANCHOR36] 2544 ldrh w0, [x20, #:lo12:.LANCHOR27] 2545 lsl w0, w0, 1 2546 bl ftl_malloc 2547 adrp x1, .LANCHOR121 2548 str x0, [x1, #:lo12:.LANCHOR121] 2549 ldrh w0, [x20, #:lo12:.LANCHOR27] 2550 adrp x20, .LANCHOR28 2551 lsl w0, w0, 2 2552 bl ftl_malloc 2553 adrp x1, .LANCHOR122 2554 str x0, [x1, #:lo12:.LANCHOR122] 2555 ldrh w0, [x20, #:lo12:.LANCHOR28] 2556 lsl w0, w0, 2 2557 bl ftl_malloc 2558 ldrh w2, [x20, #:lo12:.LANCHOR28] 2559 adrp x1, .LANCHOR123 2560 adrp x20, .LANCHOR33 2561 str x0, [x1, #:lo12:.LANCHOR123] 2562 mov w1, 0 2563 lsl w2, w2, 2 2564 bl ftl_memset 2565 adrp x0, .LANCHOR32 2566 ldrh w0, [x0, #:lo12:.LANCHOR32] 2567 lsl w0, w0, 2 2568 bl ftl_malloc 2569 adrp x1, .LANCHOR124 2570 str x0, [x1, #:lo12:.LANCHOR124] 2571 ldr w0, [x22, #:lo12:.LANCHOR30] 2572 lsl w0, w0, 2 2573 bl ftl_malloc 2574 adrp x1, .LANCHOR125 2575 str x0, [x1, #:lo12:.LANCHOR125] 2576 ldrh w0, [x20, #:lo12:.LANCHOR33] 2577 lsl w0, w0, 4 2578 bl ftl_malloc 2579 adrp x1, .LANCHOR55 2580 str x0, [x1, #:lo12:.LANCHOR55] 2581 ldrh w1, [x20, #:lo12:.LANCHOR33] 2582 adrp x20, .LANCHOR10 2583 ldrh w0, [x21, #:lo12:.LANCHOR23] 2584 mul w0, w1, w0 2585 bl ftl_malloc 2586 adrp x1, .LANCHOR126 2587 str x0, [x1, #:lo12:.LANCHOR126] 2588 mov w0, 6 2589 ldrh w1, [x19, #:lo12:.LANCHOR6] 2590 adrp x19, .LANCHOR127 2591 mul w0, w1, w0 2592 bl ftl_malloc 2593 adrp x1, .LANCHOR40 2594 str x0, [x1, #:lo12:.LANCHOR40] 2595 adrp x0, .LANCHOR17 2596 ldrh w1, [x20, #:lo12:.LANCHOR10] 2597 ldrh w0, [x0, #:lo12:.LANCHOR17] 2598 add w0, w0, 31 2599 asr w0, w0, 5 2600 strh w0, [x19, #:lo12:.LANCHOR127] 2601 mul w0, w1, w0 2602 lsl w0, w0, 2 2603 bl ftl_malloc 2604 adrp x1, .LANCHOR37 2605 ldrh w5, [x19, #:lo12:.LANCHOR127] 2606 add x2, x1, :lo12:.LANCHOR37 2607 ldrh w7, [x20, #:lo12:.LANCHOR10] 2608 add x6, x2, 40 2609 mov w3, w5 2610 str x0, [x2, 32] 2611 mov x0, 1 2612.L316: 2613 cmp w0, w7 2614 bcc .L317 2615 mov w2, 8 2616 sub w2, w2, w0 2617 add x2, x2, 1 2618 add x1, x1, :lo12:.LANCHOR37 2619 mov x3, 0 2620.L318: 2621 add x3, x3, 1 2622 cmp x2, x3 2623 bne .L319 2624 mov w0, 0 2625 ldr x23, [sp, 48] 2626 ldp x19, x20, [sp, 16] 2627 ldp x21, x22, [sp, 32] 2628 ldp x29, x30, [sp], 64 2629 ret 2630.L317: 2631 ldr x4, [x2, 32] 2632 add w0, w0, 1 2633 add x4, x4, x3, uxtw 2 2634 add w3, w3, w5 2635 str x4, [x6], 8 2636 b .L316 2637.L319: 2638 add x4, x0, x3 2639 add x4, x1, x4, lsl 3 2640 str xzr, [x4, 24] 2641 b .L318 2642 .size FtlMemInit, .-FtlMemInit 2643 .section .text.FtlBbt2Bitmap,"ax",@progbits 2644 .align 2 2645 .global FtlBbt2Bitmap 2646 .type FtlBbt2Bitmap, %function 2647FtlBbt2Bitmap: 2648 stp x29, x30, [sp, -64]! 2649 add x29, sp, 0 2650 stp x21, x22, [sp, 32] 2651 mov x22, x0 2652 adrp x0, .LANCHOR127 2653 stp x23, x24, [sp, 48] 2654 adrp x21, .LANCHOR17 2655 adrp x23, .LANCHOR128 2656 ldrh w2, [x0, #:lo12:.LANCHOR127] 2657 add x21, x21, :lo12:.LANCHOR17 2658 add x23, x23, :lo12:.LANCHOR128 2659 stp x19, x20, [sp, 16] 2660 mov w24, 65535 2661 mov x19, 0 2662 mov x20, x1 2663 lsl w2, w2, 2 2664 mov w1, 0 2665 mov x0, x20 2666 bl ftl_memset 2667.L324: 2668 ldrh w0, [x22, x19] 2669 cmp w0, w24 2670 beq .L321 2671 ldrh w1, [x21] 2672 cmp w1, w0 2673 bhi .L323 2674 adrp x0, .LC1 2675 mov w2, 74 2676 mov x1, x23 2677 add x0, x0, :lo12:.LC1 2678 bl printf 2679.L323: 2680 ldrh w2, [x22, x19] 2681 mov w1, 1 2682 add x19, x19, 2 2683 cmp x19, 1024 2684 ubfx x0, x2, 5, 11 2685 lsl w2, w1, w2 2686 lsl x0, x0, 2 2687 ldr w1, [x20, x0] 2688 orr w1, w1, w2 2689 str w1, [x20, x0] 2690 bne .L324 2691.L321: 2692 ldp x19, x20, [sp, 16] 2693 ldp x21, x22, [sp, 32] 2694 ldp x23, x24, [sp, 48] 2695 ldp x29, x30, [sp], 64 2696 ret 2697 .size FtlBbt2Bitmap, .-FtlBbt2Bitmap 2698 .section .text.FtlBbtMemInit,"ax",@progbits 2699 .align 2 2700 .global FtlBbtMemInit 2701 .type FtlBbtMemInit, %function 2702FtlBbtMemInit: 2703 adrp x1, .LANCHOR37 2704 add x0, x1, :lo12:.LANCHOR37 2705 mov w2, -1 2706 add x0, x0, 12 2707 strh w2, [x1, #:lo12:.LANCHOR37] 2708 mov w2, 16 2709 strh wzr, [x0, -6] 2710 mov w1, 255 2711 b ftl_memset 2712 .size FtlBbtMemInit, .-FtlBbtMemInit 2713 .section .text.FtlFreeSysBlkQueueInit,"ax",@progbits 2714 .align 2 2715 .global FtlFreeSysBlkQueueInit 2716 .type FtlFreeSysBlkQueueInit, %function 2717FtlFreeSysBlkQueueInit: 2718 stp x29, x30, [sp, -16]! 2719 adrp x1, .LANCHOR38 2720 add x3, x1, :lo12:.LANCHOR38 2721 mov w2, 2048 2722 add x29, sp, 0 2723 strh w0, [x1, #:lo12:.LANCHOR38] 2724 mov w1, 0 2725 strh wzr, [x3, 2] 2726 add x0, x3, 8 2727 strh wzr, [x3, 4] 2728 strh wzr, [x3, 6] 2729 bl ftl_memset 2730 mov w0, 0 2731 ldp x29, x30, [sp], 16 2732 ret 2733 .size FtlFreeSysBlkQueueInit, .-FtlFreeSysBlkQueueInit 2734 .section .text.ftl_free_no_use_map_blk,"ax",@progbits 2735 .align 2 2736 .global ftl_free_no_use_map_blk 2737 .type ftl_free_no_use_map_blk, %function 2738ftl_free_no_use_map_blk: 2739 stp x29, x30, [sp, -80]! 2740 mov w1, 0 2741 add x29, sp, 0 2742 stp x19, x20, [sp, 16] 2743 mov x19, x0 2744 ldrh w2, [x0, 10] 2745 stp x21, x22, [sp, 32] 2746 ldp x21, x20, [x0, 32] 2747 stp x23, x24, [sp, 48] 2748 ldr x22, [x0, 16] 2749 lsl w2, w2, 1 2750 mov x0, x21 2751 str x25, [sp, 64] 2752 bl ftl_memset 2753 mov w0, 0 2754.L332: 2755 ldrh w1, [x19, 6] 2756 cmp w1, w0 2757 bhi .L336 2758 adrp x0, .LANCHOR20 2759 mov w23, 0 2760 mov w20, 0 2761 ldrh w1, [x0, #:lo12:.LANCHOR20] 2762 ldrh w0, [x19] 2763 strh w1, [x21, x0, lsl 1] 2764 ldrh w24, [x21] 2765.L337: 2766 ldrh w0, [x19, 10] 2767 cmp w0, w20 2768 bhi .L341 2769 mov w0, w23 2770 ldr x25, [sp, 64] 2771 ldp x19, x20, [sp, 16] 2772 ldp x21, x22, [sp, 32] 2773 ldp x23, x24, [sp, 48] 2774 ldp x29, x30, [sp], 80 2775 ret 2776.L336: 2777 ubfiz x1, x0, 2, 16 2778 ldr w2, [x20, x1] 2779 mov w1, 0 2780 ubfx x2, x2, 10, 16 2781.L333: 2782 ldrh w3, [x19, 10] 2783 cmp w3, w1 2784 bhi .L335 2785 add w0, w0, 1 2786 and w0, w0, 65535 2787 b .L332 2788.L335: 2789 ubfiz x3, x1, 1, 16 2790 ldrh w4, [x22, x3] 2791 cmp w4, w2 2792 bne .L334 2793 cbz w2, .L334 2794 ldrh w4, [x21, x3] 2795 add w4, w4, 1 2796 strh w4, [x21, x3] 2797.L334: 2798 add w1, w1, 1 2799 and w1, w1, 65535 2800 b .L333 2801.L341: 2802 ubfiz x0, x20, 1, 16 2803 ldrh w1, [x21, x0] 2804 cmp w24, w1 2805 bls .L338 2806 add x25, x22, x0 2807 ldrh w0, [x22, x0] 2808 cbnz w0, .L339 2809.L340: 2810 add w20, w20, 1 2811 and w20, w20, 65535 2812 b .L337 2813.L338: 2814 cbnz w1, .L340 2815 add x25, x22, x0 2816 ldrh w0, [x22, x0] 2817 cbz w0, .L340 2818.L342: 2819 mov w1, 1 2820 bl FtlFreeSysBlkQueueIn 2821 strh wzr, [x25] 2822 ldrh w0, [x19, 8] 2823 sub w0, w0, #1 2824 strh w0, [x19, 8] 2825 b .L340 2826.L343: 2827 mov w24, 0 2828 b .L342 2829.L339: 2830 mov w23, w20 2831 cbz w1, .L343 2832 mov w24, w1 2833 b .L340 2834 .size ftl_free_no_use_map_blk, .-ftl_free_no_use_map_blk 2835 .section .text.FtlL2PDataInit,"ax",@progbits 2836 .align 2 2837 .global FtlL2PDataInit 2838 .type FtlL2PDataInit, %function 2839FtlL2PDataInit: 2840 stp x29, x30, [sp, -64]! 2841 mov w1, 0 2842 add x29, sp, 0 2843 stp x19, x20, [sp, 16] 2844 adrp x19, .LANCHOR120 2845 adrp x20, .LANCHOR30 2846 stp x21, x22, [sp, 32] 2847 ldr x0, [x19, #:lo12:.LANCHOR120] 2848 adrp x22, .LANCHOR23 2849 ldr w2, [x20, #:lo12:.LANCHOR30] 2850 adrp x21, .LANCHOR33 2851 str x23, [sp, 48] 2852 adrp x23, .LANCHOR126 2853 lsl w2, w2, 1 2854 bl ftl_memset 2855 ldrh w0, [x21, #:lo12:.LANCHOR33] 2856 mov w1, 255 2857 ldrh w2, [x22, #:lo12:.LANCHOR23] 2858 mul w2, w2, w0 2859 ldr x0, [x23, #:lo12:.LANCHOR126] 2860 bl ftl_memset 2861 adrp x0, .LANCHOR55 2862 ldrh w3, [x21, #:lo12:.LANCHOR33] 2863 ldr x6, [x23, #:lo12:.LANCHOR126] 2864 mov x1, 0 2865 ldr x0, [x0, #:lo12:.LANCHOR55] 2866 mov w2, -1 2867 ldrh w5, [x22, #:lo12:.LANCHOR23] 2868 add x3, x0, x3, lsl 4 2869.L353: 2870 add x4, x1, x5 2871 cmp x0, x3 2872 bne .L354 2873 adrp x1, .LANCHOR129 2874 add x0, x1, :lo12:.LANCHOR129 2875 ldp x21, x22, [sp, 32] 2876 strh w2, [x1, #:lo12:.LANCHOR129] 2877 ldr w1, [x20, #:lo12:.LANCHOR30] 2878 strh w1, [x0, 10] 2879 mov w1, -3902 2880 strh w1, [x0, 4] 2881 adrp x1, .LANCHOR130 2882 ldr x23, [sp, 48] 2883 strh w2, [x0, 2] 2884 ldrh w1, [x1, #:lo12:.LANCHOR130] 2885 strh w1, [x0, 8] 2886 adrp x1, .LANCHOR32 2887 ldrh w1, [x1, #:lo12:.LANCHOR32] 2888 strh w1, [x0, 6] 2889 adrp x1, .LANCHOR119 2890 ldr x1, [x1, #:lo12:.LANCHOR119] 2891 str x1, [x0, 16] 2892 adrp x1, .LANCHOR125 2893 ldr x1, [x1, #:lo12:.LANCHOR125] 2894 str x1, [x0, 24] 2895 ldr x1, [x19, #:lo12:.LANCHOR120] 2896 ldp x19, x20, [sp, 16] 2897 str x1, [x0, 32] 2898 adrp x1, .LANCHOR124 2899 ldr x1, [x1, #:lo12:.LANCHOR124] 2900 str x1, [x0, 40] 2901 ldp x29, x30, [sp], 64 2902 ret 2903.L354: 2904 and x1, x1, -4 2905 strh w2, [x0] 2906 add x1, x6, x1 2907 str wzr, [x0, 4] 2908 str x1, [x0, 8] 2909 add x0, x0, 16 2910 mov x1, x4 2911 b .L353 2912 .size FtlL2PDataInit, .-FtlL2PDataInit 2913 .section .text.FtlVariablesInit,"ax",@progbits 2914 .align 2 2915 .global FtlVariablesInit 2916 .type FtlVariablesInit, %function 2917FtlVariablesInit: 2918 stp x29, x30, [sp, -32]! 2919 adrp x0, .LANCHOR131 2920 mov w1, -1 2921 add x29, sp, 0 2922 strh w1, [x0, #:lo12:.LANCHOR131] 2923 adrp x0, .LANCHOR132 2924 mov w1, -1 2925 str x19, [sp, 16] 2926 str wzr, [x0, #:lo12:.LANCHOR132] 2927 adrp x0, .LANCHOR133 2928 adrp x19, .LANCHOR6 2929 str wzr, [x0, #:lo12:.LANCHOR133] 2930 adrp x0, .LANCHOR134 2931 str w1, [x0, #:lo12:.LANCHOR134] 2932 adrp x0, .LANCHOR35 2933 mov w1, 0 2934 strh wzr, [x0, #:lo12:.LANCHOR35] 2935 adrp x0, .LANCHOR27 2936 ldrh w2, [x0, #:lo12:.LANCHOR27] 2937 adrp x0, .LANCHOR36 2938 ldr x0, [x0, #:lo12:.LANCHOR36] 2939 lsl w2, w2, 1 2940 bl ftl_memset 2941 adrp x0, .LANCHOR43 2942 ldrh w2, [x19, #:lo12:.LANCHOR6] 2943 mov w1, 0 2944 ldr x0, [x0, #:lo12:.LANCHOR43] 2945 lsl w2, w2, 1 2946 bl ftl_memset 2947 adrp x0, .LANCHOR117 2948 ldrh w2, [x19, #:lo12:.LANCHOR6] 2949 mov w1, 0 2950 ldr x0, [x0, #:lo12:.LANCHOR117] 2951 lsl w2, w2, 1 2952 bl ftl_memset 2953 mov w2, 48 2954 mov w1, 0 2955 adrp x0, .LANCHOR39 2956 add x0, x0, :lo12:.LANCHOR39 2957 bl ftl_memset 2958 mov w2, 512 2959 mov w1, 0 2960 adrp x0, .LANCHOR135 2961 add x0, x0, :lo12:.LANCHOR135 2962 bl ftl_memset 2963 bl FtlGcBufInit 2964 bl FtlL2PDataInit 2965 ldr x19, [sp, 16] 2966 mov w0, 0 2967 ldp x29, x30, [sp], 32 2968 ret 2969 .size FtlVariablesInit, .-FtlVariablesInit 2970 .section .text.SupperBlkListInit,"ax",@progbits 2971 .align 2 2972 .global SupperBlkListInit 2973 .type SupperBlkListInit, %function 2974SupperBlkListInit: 2975 stp x29, x30, [sp, -96]! 2976 adrp x0, .LANCHOR6 2977 mov w1, 0 2978 add x29, sp, 0 2979 ldrh w2, [x0, #:lo12:.LANCHOR6] 2980 mov w0, 6 2981 stp x23, x24, [sp, 48] 2982 adrp x24, .LANCHOR40 2983 stp x19, x20, [sp, 16] 2984 adrp x23, .LANCHOR45 2985 stp x21, x22, [sp, 32] 2986 adrp x22, .LANCHOR48 2987 mul w2, w2, w0 2988 ldr x0, [x24, #:lo12:.LANCHOR40] 2989 stp x25, x26, [sp, 64] 2990 adrp x25, .LANCHOR5 2991 str x27, [sp, 80] 2992 adrp x26, .LANCHOR13 2993 add x25, x25, :lo12:.LANCHOR5 2994 add x26, x26, :lo12:.LANCHOR13 2995 bl ftl_memset 2996 mov w21, 0 2997 adrp x0, .LANCHOR47 2998 mov w20, 0 2999 mov w19, 0 3000 strh wzr, [x23, #:lo12:.LANCHOR45] 3001 str xzr, [x0, #:lo12:.LANCHOR47] 3002 adrp x0, .LANCHOR41 3003 strh wzr, [x22, #:lo12:.LANCHOR48] 3004 adrp x27, .LANCHOR3 3005 str xzr, [x0, #:lo12:.LANCHOR41] 3006 adrp x0, .LANCHOR44 3007 str xzr, [x0, #:lo12:.LANCHOR44] 3008.L359: 3009 ldrh w0, [x25] 3010 cmp w19, w0 3011 bcs .L366 3012 adrp x0, .LANCHOR19 3013 ldrh w8, [x27, #:lo12:.LANCHOR3] 3014 mov x6, 0 3015 mov w5, 0 3016 ldrh w7, [x0, #:lo12:.LANCHOR19] 3017 b .L367 3018.L361: 3019 ldrb w0, [x26, x6] 3020 mov w1, w19 3021 bl V2P_block 3022 bl FtlBbmIsBadBlock 3023 cbnz w0, .L360 3024 add w5, w5, w7 3025 and w5, w5, 65535 3026.L360: 3027 add x6, x6, 1 3028.L367: 3029 cmp w8, w6, uxth 3030 bhi .L361 3031 cbz w5, .L362 3032 mov w0, 32768 3033 sdiv w5, w0, w5 3034.L363: 3035 ldr x1, [x24, #:lo12:.LANCHOR40] 3036 mov w0, 6 3037 umaddl x0, w19, w0, x1 3038 strh w5, [x0, 4] 3039 adrp x0, .LANCHOR51 3040 ldrh w0, [x0, #:lo12:.LANCHOR51] 3041 cmp w0, w19 3042 beq .L364 3043 adrp x0, .LANCHOR52 3044 ldrh w0, [x0, #:lo12:.LANCHOR52] 3045 cmp w0, w19 3046 beq .L364 3047 adrp x0, .LANCHOR53 3048 ldrh w0, [x0, #:lo12:.LANCHOR53] 3049 cmp w0, w19 3050 beq .L364 3051 adrp x1, .LANCHOR42 3052 ubfiz x0, x19, 1, 16 3053 ldr x1, [x1, #:lo12:.LANCHOR42] 3054 ldrh w0, [x1, x0] 3055 cbnz w0, .L365 3056 add w21, w21, 1 3057 mov w0, w19 3058 and w21, w21, 65535 3059 bl INSERT_FREE_LIST 3060.L364: 3061 add w19, w19, 1 3062 and w19, w19, 65535 3063 b .L359 3064.L362: 3065 adrp x1, .LANCHOR42 3066 ubfiz x0, x19, 1, 16 3067 mov w2, -1 3068 ldr x1, [x1, #:lo12:.LANCHOR42] 3069 strh w2, [x1, x0] 3070 b .L363 3071.L365: 3072 add w20, w20, 1 3073 mov w0, w19 3074 and w20, w20, 65535 3075 bl INSERT_DATA_LIST 3076 b .L364 3077.L366: 3078 strh w20, [x23, #:lo12:.LANCHOR45] 3079 add w20, w20, w21 3080 strh w21, [x22, #:lo12:.LANCHOR48] 3081 cmp w20, w0 3082 ble .L368 3083 adrp x1, .LANCHOR136 3084 adrp x0, .LC1 3085 mov w2, 2216 3086 add x1, x1, :lo12:.LANCHOR136 3087 add x0, x0, :lo12:.LC1 3088 bl printf 3089.L368: 3090 mov w0, 0 3091 ldr x27, [sp, 80] 3092 ldp x19, x20, [sp, 16] 3093 ldp x21, x22, [sp, 32] 3094 ldp x23, x24, [sp, 48] 3095 ldp x25, x26, [sp, 64] 3096 ldp x29, x30, [sp], 96 3097 ret 3098 .size SupperBlkListInit, .-SupperBlkListInit 3099 .section .text.FtlGcPageVarInit,"ax",@progbits 3100 .align 2 3101 .global FtlGcPageVarInit 3102 .type FtlGcPageVarInit, %function 3103FtlGcPageVarInit: 3104 stp x29, x30, [sp, -32]! 3105 adrp x0, .LANCHOR68 3106 mov w1, 255 3107 add x29, sp, 0 3108 strh wzr, [x0, #:lo12:.LANCHOR68] 3109 adrp x0, .LANCHOR70 3110 str x19, [sp, 16] 3111 adrp x19, .LANCHOR21 3112 strh wzr, [x0, #:lo12:.LANCHOR70] 3113 adrp x0, .LANCHOR69 3114 ldrh w2, [x19, #:lo12:.LANCHOR21] 3115 ldr x0, [x0, #:lo12:.LANCHOR69] 3116 lsl w2, w2, 1 3117 bl ftl_memset 3118 ldrh w2, [x19, #:lo12:.LANCHOR21] 3119 mov w0, 12 3120 mov w1, 255 3121 mul w2, w2, w0 3122 adrp x0, .LANCHOR71 3123 ldr x0, [x0, #:lo12:.LANCHOR71] 3124 bl ftl_memset 3125 ldr x19, [sp, 16] 3126 ldp x29, x30, [sp], 32 3127 b FtlGcBufInit 3128 .size FtlGcPageVarInit, .-FtlGcPageVarInit 3129 .section .text.FlashGetBadBlockList,"ax",@progbits 3130 .align 2 3131 .global FlashGetBadBlockList 3132 .type FlashGetBadBlockList, %function 3133FlashGetBadBlockList: 3134 stp x29, x30, [sp, -32]! 3135 mov w2, 256 3136 add x29, sp, 0 3137 stp x19, x20, [sp, 16] 3138 mov x19, x0 3139 mov w20, w1 3140 mov w1, 255 3141 bl ftl_memset 3142 adrp x0, .LANCHOR78 3143 mov w1, w20 3144 ldr x2, [x0, #:lo12:.LANCHOR78] 3145 mov x0, x19 3146 blr x2 3147 and w0, w0, 65535 3148 cmp w0, 50 3149 bls .L373 3150 mov w2, 256 3151 mov w1, 255 3152 mov x0, x19 3153 bl ftl_memset 3154 mov w0, 0 3155.L373: 3156 adrp x1, .LANCHOR0+14 3157 ldrh w1, [x1, #:lo12:.LANCHOR0+14] 3158 cmp w1, 4 3159 bne .L377 3160 mov x1, 0 3161.L375: 3162 cmp w0, w1, uxth 3163 bhi .L376 3164.L377: 3165 ldp x19, x20, [sp, 16] 3166 ldp x29, x30, [sp], 32 3167 ret 3168.L376: 3169 ldrh w2, [x19, x1, lsl 1] 3170 lsr w2, w2, 1 3171 strh w2, [x19, x1, lsl 1] 3172 add x1, x1, 1 3173 b .L375 3174 .size FlashGetBadBlockList, .-FlashGetBadBlockList 3175 .section .text.ftl_memcpy,"ax",@progbits 3176 .align 2 3177 .global ftl_memcpy 3178 .type ftl_memcpy, %function 3179ftl_memcpy: 3180 uxtw x2, w2 3181 b memcpy 3182 .size ftl_memcpy, .-ftl_memcpy 3183 .section .text.FlashReadPages,"ax",@progbits 3184 .align 2 3185 .global FlashReadPages 3186 .type FlashReadPages, %function 3187FlashReadPages: 3188 stp x29, x30, [sp, -112]! 3189 ubfiz x1, x1, 5, 32 3190 add x29, sp, 0 3191 stp x21, x22, [sp, 32] 3192 adrp x21, .LANCHOR0 3193 add x2, x21, :lo12:.LANCHOR0 3194 str x27, [sp, 80] 3195 stp x23, x24, [sp, 48] 3196 adrp x24, .LANCHOR137 3197 stp x19, x20, [sp, 16] 3198 add x23, x0, x1 3199 ldrh w27, [x2, 12] 3200 mov x19, x0 3201 stp x25, x26, [sp, 64] 3202 add x24, x24, :lo12:.LANCHOR137 3203 adrp x25, .LC1 3204 add x25, x25, :lo12:.LC1 3205.L381: 3206 cmp x23, x19 3207 bne .L392 3208 ldp x19, x20, [sp, 16] 3209 mov w0, 0 3210 ldp x21, x22, [sp, 32] 3211 ldp x23, x24, [sp, 48] 3212 ldp x25, x26, [sp, 64] 3213 ldr x27, [sp, 80] 3214 ldp x29, x30, [sp], 112 3215 ret 3216.L392: 3217 ldr x0, [x19, 8] 3218 cbz x0, .L382 3219 ldr x0, [x19, 16] 3220 cbnz x0, .L383 3221.L382: 3222 mov w2, 90 3223 mov x1, x24 3224 mov x0, x25 3225 bl printf 3226.L383: 3227 ldr w0, [x19, 4] 3228 add x2, x29, 104 3229 add x1, x29, 108 3230 bl l2p_addr_tran.isra.0 3231 ldr w0, [x29, 104] 3232 cmp w0, 3 3233 bls .L384 3234 mov w0, -1 3235 str w0, [x19] 3236.L385: 3237 add x19, x19, 32 3238 b .L381 3239.L384: 3240 ldr x20, [x19, 8] 3241 adrp x26, .LANCHOR111 3242 tst x20, 63 3243 beq .L386 3244 ldr x20, [x26, #:lo12:.LANCHOR111] 3245.L386: 3246 adrp x22, .LANCHOR78 3247 add x22, x22, :lo12:.LANCHOR78 3248 ldr w1, [x29, 108] 3249 mov x2, x20 3250 ldr x3, [x19, 16] 3251 ldr x4, [x22, 24] 3252 blr x4 3253 str w0, [x19] 3254 add x0, x21, :lo12:.LANCHOR0 3255 ldrh w0, [x0, 14] 3256 cmp w0, 4 3257 bne .L388 3258 ldrb w0, [x29, 104] 3259 add x2, x20, 2048 3260 ldr x4, [x22, 24] 3261 ldr w1, [x29, 108] 3262 ldr x3, [x19, 16] 3263 add w1, w27, w1 3264 add x3, x3, 8 3265 blr x4 3266 cmn w0, #1 3267 beq .L389 3268 ldr x1, [x19, 16] 3269 ldr w2, [x1, 12] 3270 cmn w2, #1 3271 bne .L390 3272 ldr w2, [x1, 8] 3273 cmn w2, #1 3274 bne .L390 3275 ldr w1, [x1] 3276 cmn w1, #1 3277 beq .L390 3278.L389: 3279 mov w1, -1 3280 str w1, [x19] 3281.L390: 3282 ldr w1, [x19] 3283 cmn w1, #1 3284 beq .L388 3285 cmp w0, 256 3286 bne .L388 3287 str w0, [x19] 3288.L388: 3289 ldr x0, [x26, #:lo12:.LANCHOR111] 3290 cmp x20, x0 3291 bne .L385 3292 ldr x0, [x19, 8] 3293 cmp x20, x0 3294 beq .L385 3295 adrp x1, .LANCHOR12 3296 ldrh w2, [x1, #:lo12:.LANCHOR12] 3297 mov x1, x20 3298 lsl w2, w2, 9 3299 bl ftl_memcpy 3300 b .L385 3301 .size FlashReadPages, .-FlashReadPages 3302 .section .text.FtlLoadFactoryBbt,"ax",@progbits 3303 .align 2 3304 .global FtlLoadFactoryBbt 3305 .type FtlLoadFactoryBbt, %function 3306FtlLoadFactoryBbt: 3307 stp x29, x30, [sp, -112]! 3308 adrp x2, .LANCHOR106 3309 adrp x0, .LANCHOR138 3310 add x1, x0, :lo12:.LANCHOR138 3311 add x29, sp, 0 3312 ldr x2, [x2, #:lo12:.LANCHOR106] 3313 stp x21, x22, [sp, 32] 3314 mov x22, x0 3315 stp x25, x26, [sp, 64] 3316 adrp x26, .LANCHOR17 3317 stp x27, x28, [sp, 80] 3318 add x28, x26, :lo12:.LANCHOR17 3319 stp x19, x20, [sp, 16] 3320 adrp x20, .LANCHOR37 3321 stp x23, x24, [sp, 48] 3322 add x20, x20, :lo12:.LANCHOR37 3323 str x2, [x1, 8] 3324 adrp x2, .LANCHOR114 3325 adrp x23, .LANCHOR10 3326 add x20, x20, 12 3327 ldr x25, [x2, #:lo12:.LANCHOR114] 3328 add x23, x23, :lo12:.LANCHOR10 3329 mov w21, 0 3330 mov w27, -1 3331 str x25, [x1, 16] 3332.L410: 3333 ldrh w0, [x23] 3334 cmp w21, w0 3335 bcc .L415 3336 ldp x19, x20, [sp, 16] 3337 mov w0, 0 3338 ldp x21, x22, [sp, 32] 3339 ldp x23, x24, [sp, 48] 3340 ldp x25, x26, [sp, 64] 3341 ldp x27, x28, [sp, 80] 3342 ldp x29, x30, [sp], 112 3343 ret 3344.L415: 3345 ldrh w19, [x26, #:lo12:.LANCHOR17] 3346 add x24, x22, :lo12:.LANCHOR138 3347 strh w27, [x20] 3348 mov w3, 61664 3349 sub w19, w19, #1 3350 and w19, w19, 65535 3351.L411: 3352 ldrh w0, [x28] 3353 sub w1, w0, #15 3354 cmp w1, w19 3355 bgt .L413 3356 madd w0, w0, w21, w19 3357 mov w2, 1 3358 str w3, [x29, 108] 3359 mov w1, w2 3360 lsl w0, w0, 10 3361 str w0, [x24, 4] 3362 mov x0, x24 3363 bl FlashReadPages 3364 ldr w0, [x24] 3365 ldr w3, [x29, 108] 3366 cmn w0, #1 3367 beq .L412 3368 ldrh w0, [x25] 3369 cmp w0, w3 3370 bne .L412 3371 strh w19, [x20] 3372.L413: 3373 add w21, w21, 1 3374 add x20, x20, 2 3375 b .L410 3376.L412: 3377 sub w19, w19, #1 3378 and w19, w19, 65535 3379 b .L411 3380 .size FtlLoadFactoryBbt, .-FtlLoadFactoryBbt 3381 .section .text.FtlGetLastWrittenPage,"ax",@progbits 3382 .align 2 3383 .global FtlGetLastWrittenPage 3384 .type FtlGetLastWrittenPage, %function 3385FtlGetLastWrittenPage: 3386 stp x29, x30, [sp, -160]! 3387 cmp w1, 1 3388 add x29, sp, 0 3389 stp x23, x24, [sp, 48] 3390 mov w23, w1 3391 stp x19, x20, [sp, 16] 3392 stp x21, x22, [sp, 32] 3393 bne .L421 3394 adrp x1, .LANCHOR20 3395 ldrh w19, [x1, #:lo12:.LANCHOR20] 3396.L422: 3397 adrp x1, .LANCHOR112 3398 sub w19, w19, #1 3399 sxth w19, w19 3400 lsl w21, w0, 10 3401 ldr x1, [x1, #:lo12:.LANCHOR112] 3402 orr w0, w19, w21 3403 str x1, [x29, 72] 3404 add x1, x29, 96 3405 str w0, [x29, 68] 3406 mov w2, w23 3407 str x1, [x29, 80] 3408 add x0, x29, 64 3409 mov w1, 1 3410 bl FlashReadPages 3411 ldr w0, [x29, 96] 3412 cmn w0, #1 3413 bne .L423 3414 mov w22, 0 3415 mov w24, 2 3416.L424: 3417 cmp w22, w19 3418 ble .L427 3419.L423: 3420 mov w0, w19 3421 ldp x19, x20, [sp, 16] 3422 ldp x21, x22, [sp, 32] 3423 ldp x23, x24, [sp, 48] 3424 ldp x29, x30, [sp], 160 3425 ret 3426.L421: 3427 adrp x1, .LANCHOR19 3428 ldrh w19, [x1, #:lo12:.LANCHOR19] 3429 b .L422 3430.L427: 3431 add w20, w22, w19 3432 mov w2, w23 3433 mov w1, 1 3434 sdiv w20, w20, w24 3435 sxth w0, w20 3436 orr w0, w0, w21 3437 str w0, [x29, 68] 3438 add x0, x29, 64 3439 bl FlashReadPages 3440 ldr w0, [x29, 96] 3441 cmn w0, #1 3442 bne .L425 3443 ldr w0, [x29, 100] 3444 cmn w0, #1 3445 bne .L425 3446 ldr w0, [x29, 64] 3447 cmn w0, #1 3448 beq .L425 3449 sub w19, w20, #1 3450 sxth w19, w19 3451 b .L424 3452.L425: 3453 add w20, w20, 1 3454 sxth w22, w20 3455 b .L424 3456 .size FtlGetLastWrittenPage, .-FtlGetLastWrittenPage 3457 .section .text.FtlScanSysBlk,"ax",@progbits 3458 .align 2 3459 .global FtlScanSysBlk 3460 .type FtlScanSysBlk, %function 3461FtlScanSysBlk: 3462 stp x29, x30, [sp, -176]! 3463 mov w1, 0 3464 add x29, sp, 0 3465 stp x25, x26, [sp, 64] 3466 adrp x25, .LANCHOR125 3467 stp x21, x22, [sp, 32] 3468 adrp x21, .LANCHOR30 3469 ldr x0, [x25, #:lo12:.LANCHOR125] 3470 adrp x22, .LANCHOR122 3471 ldr w2, [x21, #:lo12:.LANCHOR30] 3472 stp x19, x20, [sp, 16] 3473 adrp x20, .LANCHOR130 3474 stp x23, x24, [sp, 48] 3475 adrp x23, .LANCHOR35 3476 stp x27, x28, [sp, 80] 3477 adrp x27, .LANCHOR119 3478 lsl w2, w2, 2 3479 strh wzr, [x20, #:lo12:.LANCHOR130] 3480 strh wzr, [x23, #:lo12:.LANCHOR35] 3481 bl ftl_memset 3482 ldr x0, [x27, #:lo12:.LANCHOR119] 3483 mov w1, 0 3484 ldr w2, [x21, #:lo12:.LANCHOR30] 3485 adrp x19, .LANCHOR27 3486 adrp x28, .LANCHOR36 3487 adrp x24, .LANCHOR139 3488 lsl w2, w2, 1 3489 bl ftl_memset 3490 ldr x0, [x22, #:lo12:.LANCHOR122] 3491 mov w1, 0 3492 ldrh w2, [x19, #:lo12:.LANCHOR27] 3493 lsl w2, w2, 2 3494 bl ftl_memset 3495 ldr x0, [x28, #:lo12:.LANCHOR36] 3496 mov w1, 0 3497 ldrh w2, [x19, #:lo12:.LANCHOR27] 3498 lsl w2, w2, 1 3499 bl ftl_memset 3500 mov w2, 16 3501 mov w1, 255 3502 add x0, x24, :lo12:.LANCHOR139 3503 bl ftl_memset 3504 adrp x0, .LANCHOR5 3505 stp x22, x25, [x29, 144] 3506 str x27, [x29, 160] 3507 ldrh w0, [x0, #:lo12:.LANCHOR5] 3508 str w0, [x29, 172] 3509 adrp x0, .LANCHOR6 3510 add x0, x0, :lo12:.LANCHOR6 3511 str x0, [x29, 120] 3512 adrp x0, .LANCHOR82 3513 add x0, x0, :lo12:.LANCHOR82 3514 str x0, [x29, 112] 3515.L433: 3516 ldr x0, [x29, 120] 3517 ldr w1, [x29, 172] 3518 ldrh w0, [x0] 3519 cmp w0, w1 3520 bls .L473 3521 adrp x0, .LANCHOR3 3522 adrp x25, .LANCHOR103 3523 adrp x6, .LANCHOR13 3524 mov x5, 0 3525 ldrh w12, [x0, #:lo12:.LANCHOR3] 3526 adrp x0, .LANCHOR64 3527 ldr x7, [x25, #:lo12:.LANCHOR103] 3528 mov w22, 0 3529 ldr x11, [x0, #:lo12:.LANCHOR64] 3530 adrp x0, .LANCHOR65 3531 add x6, x6, :lo12:.LANCHOR13 3532 ldr x10, [x0, #:lo12:.LANCHOR65] 3533 adrp x0, .LANCHOR24 3534 ldrh w8, [x0, #:lo12:.LANCHOR24] 3535 b .L474 3536.L435: 3537 ldrh w1, [x29, 172] 3538 ldrb w0, [x6, x5] 3539 bl V2P_block 3540 and w4, w0, 65535 3541 bl FtlBbmIsBadBlock 3542 cbnz w0, .L434 3543 ubfiz x0, x22, 5, 16 3544 mul w1, w22, w8 3545 add x0, x7, x0 3546 add w22, w22, 1 3547 and w22, w22, 65535 3548 lsl w4, w4, 10 3549 asr w1, w1, 2 3550 add x1, x10, x1, sxtw 2 3551 str w4, [x0, 4] 3552 stp x11, x1, [x0, 8] 3553.L434: 3554 add x5, x5, 1 3555.L474: 3556 cmp w12, w5, uxth 3557 bhi .L435 3558 cbnz w22, .L436 3559.L472: 3560 ldr w0, [x29, 172] 3561 add w26, w0, 1 3562 and w0, w26, 65535 3563 str w0, [x29, 172] 3564 b .L433 3565.L436: 3566 mov w1, w22 3567 mov w2, 1 3568 mov x0, x7 3569 bl FlashReadPages 3570 ubfiz x0, x22, 5, 16 3571 mov x22, 0 3572 str x0, [x29, 128] 3573 adrp x0, .LANCHOR140 3574 add x0, x0, :lo12:.LANCHOR140 3575 str x0, [x29, 136] 3576.L471: 3577 ldr x0, [x25, #:lo12:.LANCHOR103] 3578 add x1, x0, x22 3579 ldr w0, [x0, x22] 3580 ldr w3, [x1, 4] 3581 cmn w0, #1 3582 ldr x27, [x1, 16] 3583 ubfx x26, x3, 10, 16 3584 bne .L439 3585 mov w5, 16 3586 mov w7, 65535 3587.L441: 3588 ldr x0, [x25, #:lo12:.LANCHOR103] 3589 add x6, x25, :lo12:.LANCHOR103 3590 mov w2, 1 3591 str w7, [x29, 100] 3592 add x0, x0, x22 3593 str x6, [x29, 104] 3594 str w5, [x29, 168] 3595 ldr w1, [x0, 4] 3596 add w1, w1, 1 3597 str w1, [x0, 4] 3598 mov w1, w2 3599 bl FlashReadPages 3600 ldrh w0, [x27] 3601 ldr w7, [x29, 100] 3602 ldr w5, [x29, 168] 3603 cmp w0, w7 3604 ldr x6, [x29, 104] 3605 bne .L438 3606 ldr x0, [x6] 3607 mov w1, -1 3608 str w1, [x0, x22] 3609 ldr x0, [x6] 3610 ldr w0, [x0, x22] 3611 cmp w0, w1 3612 bne .L439 3613.L440: 3614 mov w1, 1 3615 b .L510 3616.L438: 3617 ldr x0, [x25, #:lo12:.LANCHOR103] 3618 ldr w0, [x0, x22] 3619 cmn w0, #1 3620 bne .L439 3621 sub w5, w5, #1 3622 ands w5, w5, 65535 3623 bne .L441 3624 b .L440 3625.L439: 3626 adrp x0, .LANCHOR82 3627 ldr w1, [x0, #:lo12:.LANCHOR82] 3628 ldr w0, [x27, 4] 3629 cmn w1, #1 3630 beq .L442 3631 cmp w1, w0 3632 bhi .L443 3633.L442: 3634 cmn w0, #1 3635 beq .L443 3636 ldr x2, [x29, 112] 3637 add w1, w0, 1 3638 str w1, [x2] 3639.L443: 3640 ldrh w1, [x27] 3641 mov w2, 61604 3642 cmp w1, w2 3643 beq .L445 3644 bhi .L446 3645 mov w0, 61574 3646 cmp w1, w0 3647 beq .L447 3648.L444: 3649 ldr x0, [x29, 128] 3650 add x22, x22, 32 3651 cmp x0, x22 3652 bne .L471 3653 b .L472 3654.L446: 3655 mov w0, 61634 3656 cmp w1, w0 3657 beq .L448 3658 mov w0, 65535 3659 cmp w1, w0 3660 bne .L444 3661 mov w1, 0 3662.L510: 3663 mov w0, w26 3664 bl FtlFreeSysBlkQueueIn 3665 b .L444 3666.L448: 3667 ldrh w1, [x20, #:lo12:.LANCHOR130] 3668 ldr w0, [x21, #:lo12:.LANCHOR30] 3669 cmp w1, w0 3670 bls .L450 3671 ldr x1, [x29, 136] 3672 adrp x0, .LC1 3673 mov w2, 1225 3674 add x0, x0, :lo12:.LC1 3675 bl printf 3676.L450: 3677 ldr w6, [x21, #:lo12:.LANCHOR30] 3678 ldr x3, [x29, 152] 3679 ldrh w1, [x20, #:lo12:.LANCHOR130] 3680 and w2, w6, 65535 3681 sub w0, w2, #1 3682 sub w2, w2, w1 3683 sxth x0, w0 3684 sub w2, w2, #1 3685 ldr x5, [x3, #:lo12:.LANCHOR125] 3686 sxth w2, w2 3687.L451: 3688 cmp w0, w2 3689 bgt .L457 3690 tbz w0, #31, .L491 3691 b .L444 3692.L457: 3693 sxtw x8, w0 3694 ldr w11, [x27, 4] 3695 lsl x7, x8, 2 3696 add x10, x5, x7 3697 ldr w7, [x5, x7] 3698 cmp w11, w7 3699 bls .L452 3700 ldr w2, [x5] 3701 cbnz w2, .L453 3702 cmp w6, w1 3703 beq .L453 3704 add w1, w1, 1 3705 strh w1, [x20, #:lo12:.LANCHOR130] 3706.L453: 3707 ldr x1, [x29, 160] 3708 ldr x6, [x1, #:lo12:.LANCHOR119] 3709 mov w1, 0 3710.L454: 3711 cmp w1, w0 3712 bne .L455 3713 ldr w1, [x27, 4] 3714 str w1, [x10] 3715 strh w26, [x6, x8, lsl 1] 3716 tbnz w0, #31, .L444 3717 ldrh w1, [x20, #:lo12:.LANCHOR130] 3718 ldr w2, [x21, #:lo12:.LANCHOR30] 3719 sub w2, w2, w1 3720 sub w2, w2, #1 3721 cmp w0, w2, sxth 3722 bgt .L444 3723.L491: 3724 add w1, w1, 1 3725 strh w1, [x20, #:lo12:.LANCHOR130] 3726 ldr w1, [x27, 4] 3727 str w1, [x5, x0, lsl 2] 3728 ldr x1, [x29, 160] 3729 ldr x1, [x1, #:lo12:.LANCHOR119] 3730.L509: 3731 strh w26, [x1, x0, lsl 1] 3732 b .L444 3733.L455: 3734 sxtw x2, w1 3735 add w1, w1, 1 3736 lsl x7, x2, 2 3737 lsl x2, x2, 1 3738 add x11, x5, x7 3739 sxth w1, w1 3740 ldr w11, [x11, 4] 3741 str w11, [x5, x7] 3742 add x7, x6, x2 3743 ldrh w7, [x7, 2] 3744 strh w7, [x6, x2] 3745 b .L454 3746.L452: 3747 sub w0, w0, #1 3748 sxth x0, w0 3749 b .L451 3750.L447: 3751 ldrh w1, [x23, #:lo12:.LANCHOR35] 3752 ldrh w0, [x19, #:lo12:.LANCHOR27] 3753 cmp w1, w0 3754 bls .L460 3755 ldr x1, [x29, 136] 3756 adrp x0, .LC1 3757 mov w2, 1266 3758 add x0, x0, :lo12:.LC1 3759 bl printf 3760.L460: 3761 ldrh w6, [x19, #:lo12:.LANCHOR27] 3762 ldrh w2, [x23, #:lo12:.LANCHOR35] 3763 sub w1, w6, #1 3764 sxth x0, w1 3765 sub w5, w1, w2 3766 ldr x1, [x29, 144] 3767 ldr x1, [x1, #:lo12:.LANCHOR122] 3768.L461: 3769 cmp w0, w5 3770 ble .L466 3771 sxtw x7, w0 3772 ldr w11, [x27, 4] 3773 lsl x8, x7, 2 3774 add x10, x1, x8 3775 ldr w8, [x1, x8] 3776 cmp w11, w8 3777 bls .L462 3778 ldr w5, [x1] 3779 cbnz w5, .L463 3780 cmp w6, w2 3781 beq .L463 3782 add w2, w2, 1 3783 strh w2, [x23, #:lo12:.LANCHOR35] 3784.L463: 3785 ldr x6, [x28, #:lo12:.LANCHOR36] 3786 mov w2, 0 3787.L464: 3788 cmp w2, w0 3789 bne .L465 3790 ldr w2, [x27, 4] 3791 str w2, [x10] 3792 strh w26, [x6, x7, lsl 1] 3793.L466: 3794 tbnz w0, #31, .L444 3795 ldrh w2, [x19, #:lo12:.LANCHOR27] 3796 ldrh w5, [x23, #:lo12:.LANCHOR35] 3797 sub w2, w2, #1 3798 sub w2, w2, w5 3799 cmp w0, w2, sxth 3800 bgt .L444 3801 add w5, w5, 1 3802 ldr w2, [x27, 4] 3803 strh w5, [x23, #:lo12:.LANCHOR35] 3804 str w2, [x1, x0, lsl 2] 3805 ldr x1, [x28, #:lo12:.LANCHOR36] 3806 b .L509 3807.L465: 3808 sxtw x5, w2 3809 add w2, w2, 1 3810 lsl x8, x5, 2 3811 lsl x5, x5, 1 3812 add x11, x1, x8 3813 sxth w2, w2 3814 ldr w11, [x11, 4] 3815 str w11, [x1, x8] 3816 add x8, x6, x5 3817 ldrh w8, [x8, 2] 3818 strh w8, [x6, x5] 3819 b .L464 3820.L462: 3821 sub w0, w0, #1 3822 sxth x0, w0 3823 b .L461 3824.L445: 3825 ldrh w5, [x24, #:lo12:.LANCHOR139] 3826 mov w1, 65535 3827 add x2, x24, :lo12:.LANCHOR139 3828 cmp w5, w1 3829 bne .L468 3830 strh w26, [x24, #:lo12:.LANCHOR139] 3831 str w0, [x2, 8] 3832 b .L444 3833.L468: 3834 ldrh w0, [x2, 4] 3835 cmp w0, w1 3836 beq .L469 3837 mov w1, 1 3838 bl FtlFreeSysBlkQueueIn 3839.L469: 3840 add x0, x24, :lo12:.LANCHOR139 3841 ldr w1, [x27, 4] 3842 ldr w2, [x0, 8] 3843 cmp w2, w1 3844 bcs .L470 3845 ldrh w2, [x24, #:lo12:.LANCHOR139] 3846 strh w2, [x0, 4] 3847 strh w26, [x24, #:lo12:.LANCHOR139] 3848 str w1, [x0, 8] 3849 b .L444 3850.L470: 3851 strh w26, [x0, 4] 3852 b .L444 3853.L473: 3854 ldr x0, [x29, 160] 3855 ldr x2, [x0, #:lo12:.LANCHOR119] 3856 ldrh w0, [x2] 3857 cbz w0, .L475 3858.L478: 3859 ldr x1, [x28, #:lo12:.LANCHOR36] 3860 ldrh w0, [x1] 3861 cbz w0, .L476 3862.L477: 3863 ldrh w1, [x20, #:lo12:.LANCHOR130] 3864 ldr w0, [x21, #:lo12:.LANCHOR30] 3865 cmp w1, w0 3866 bls .L507 3867 adrp x1, .LANCHOR140 3868 adrp x0, .LC1 3869 mov w2, 1391 3870 add x1, x1, :lo12:.LANCHOR140 3871 add x0, x0, :lo12:.LC1 3872 bl printf 3873.L507: 3874 ldp x19, x20, [sp, 16] 3875 mov w0, 0 3876 ldp x21, x22, [sp, 32] 3877 ldp x23, x24, [sp, 48] 3878 ldp x25, x26, [sp, 64] 3879 ldp x27, x28, [sp, 80] 3880 ldp x29, x30, [sp], 176 3881 ret 3882.L475: 3883 ldrh w0, [x20, #:lo12:.LANCHOR130] 3884 cbz w0, .L478 3885 ldr w1, [x21, #:lo12:.LANCHOR30] 3886 mov w0, 0 3887.L479: 3888 cmp w0, w1 3889 bcs .L478 3890 ldrh w3, [x2, w0, sxtw 1] 3891 cbz w3, .L480 3892 ldr x1, [x29, 152] 3893 add x7, x21, :lo12:.LANCHOR30 3894 ldr x4, [x1, #:lo12:.LANCHOR125] 3895 mov w1, w0 3896.L481: 3897 ldr w3, [x7] 3898 cmp w1, w3 3899 bcs .L478 3900 sxtw x6, w1 3901 sub w3, w1, w0 3902 lsl x5, x6, 1 3903 sxtw x3, w3 3904 add w1, w1, 1 3905 ldr w6, [x4, x6, lsl 2] 3906 sxth w1, w1 3907 ldrh w8, [x2, x5] 3908 strh w8, [x2, x3, lsl 1] 3909 str w6, [x4, x3, lsl 2] 3910 strh wzr, [x2, x5] 3911 b .L481 3912.L480: 3913 add w0, w0, 1 3914 sxth w0, w0 3915 b .L479 3916.L476: 3917 ldrh w0, [x23, #:lo12:.LANCHOR35] 3918 cbz w0, .L477 3919 ldrh w2, [x19, #:lo12:.LANCHOR27] 3920 mov w0, 0 3921.L486: 3922 mov w6, w0 3923 cmp w0, w2 3924 bge .L477 3925 ldrh w3, [x1, w0, sxtw 1] 3926 cbz w3, .L487 3927 ldr x2, [x29, 144] 3928 add x19, x19, :lo12:.LANCHOR27 3929 ldr x3, [x2, #:lo12:.LANCHOR122] 3930.L488: 3931 ldrh w2, [x19] 3932 cmp w0, w2 3933 bge .L477 3934 sxtw x5, w0 3935 sub w2, w0, w6 3936 lsl x4, x5, 1 3937 sxtw x2, w2 3938 add w0, w0, 1 3939 ldr w5, [x3, x5, lsl 2] 3940 sxth w0, w0 3941 ldrh w7, [x1, x4] 3942 strh w7, [x1, x2, lsl 1] 3943 str w5, [x3, x2, lsl 2] 3944 strh wzr, [x1, x4] 3945 b .L488 3946.L487: 3947 add w0, w0, 1 3948 sxth w0, w0 3949 b .L486 3950 .size FtlScanSysBlk, .-FtlScanSysBlk 3951 .section .text.FtlLoadBbt,"ax",@progbits 3952 .align 2 3953 .global FtlLoadBbt 3954 .type FtlLoadBbt, %function 3955FtlLoadBbt: 3956 stp x29, x30, [sp, -80]! 3957 add x29, sp, 0 3958 stp x23, x24, [sp, 48] 3959 adrp x23, .LANCHOR106 3960 stp x19, x20, [sp, 16] 3961 adrp x24, .LANCHOR17 3962 stp x21, x22, [sp, 32] 3963 adrp x22, .LANCHOR138 3964 add x20, x22, :lo12:.LANCHOR138 3965 ldr x0, [x23, #:lo12:.LANCHOR106] 3966 str x25, [sp, 64] 3967 mov w25, 61649 3968 str x0, [x20, 8] 3969 adrp x0, .LANCHOR114 3970 ldr x21, [x0, #:lo12:.LANCHOR114] 3971 str x21, [x20, 16] 3972 bl FtlBbtMemInit 3973 ldrh w19, [x24, #:lo12:.LANCHOR17] 3974 add x24, x24, :lo12:.LANCHOR17 3975 sub w19, w19, #1 3976 and w19, w19, 65535 3977.L512: 3978 ldrh w0, [x24] 3979 sub w0, w0, #15 3980 cmp w0, w19 3981 bgt .L515 3982 lsl w0, w19, 10 3983 mov w2, 1 3984 str w0, [x20, 4] 3985 mov w1, w2 3986 mov x0, x20 3987 bl FlashReadPages 3988 ldr w0, [x20] 3989 cmn w0, #1 3990 bne .L513 3991 ldr w0, [x20, 4] 3992 mov w2, 1 3993 mov w1, w2 3994 add w0, w0, 1 3995 str w0, [x20, 4] 3996 mov x0, x20 3997 bl FlashReadPages 3998.L513: 3999 ldr w0, [x20] 4000 cmn w0, #1 4001 beq .L514 4002 ldrh w0, [x21] 4003 cmp w0, w25 4004 bne .L514 4005 adrp x1, .LANCHOR37 4006 add x0, x1, :lo12:.LANCHOR37 4007 strh w19, [x1, #:lo12:.LANCHOR37] 4008 ldr w1, [x21, 4] 4009 str w1, [x0, 8] 4010 ldrh w1, [x21, 8] 4011 strh w1, [x0, 4] 4012.L515: 4013 adrp x19, .LANCHOR37 4014 mov w0, 65535 4015 add x20, x19, :lo12:.LANCHOR37 4016 ldrh w1, [x19, #:lo12:.LANCHOR37] 4017 cmp w1, w0 4018 beq .L529 4019 ldrh w1, [x20, 4] 4020 cmp w1, w0 4021 beq .L519 4022 add x0, x22, :lo12:.LANCHOR138 4023 lsl w1, w1, 10 4024 mov w2, 1 4025 str w1, [x0, 4] 4026 mov w1, w2 4027 bl FlashReadPages 4028 ldr w0, [x22, #:lo12:.LANCHOR138] 4029 cmn w0, #1 4030 beq .L519 4031 ldrh w1, [x21] 4032 mov w0, 61649 4033 cmp w1, w0 4034 bne .L519 4035 ldr w1, [x20, 8] 4036 ldr w0, [x21, 4] 4037 cmp w0, w1 4038 bls .L519 4039 ldrh w1, [x20, 4] 4040 str w0, [x20, 8] 4041 ldrh w0, [x21, 8] 4042 strh w1, [x19, #:lo12:.LANCHOR37] 4043 strh w0, [x20, 4] 4044.L519: 4045 ldrh w0, [x19, #:lo12:.LANCHOR37] 4046 add x24, x19, :lo12:.LANCHOR37 4047 mov w1, 1 4048 mov w25, 61649 4049 bl FtlGetLastWrittenPage 4050 sxth w20, w0 4051 add w0, w0, 1 4052 strh w0, [x24, 2] 4053 add x24, x22, :lo12:.LANCHOR138 4054.L521: 4055 tbz w20, #31, .L524 4056 adrp x1, .LANCHOR141 4057 adrp x0, .LC1 4058 mov w2, 253 4059 add x1, x1, :lo12:.LANCHOR141 4060 add x0, x0, :lo12:.LC1 4061 bl printf 4062.L523: 4063 add x0, x19, :lo12:.LANCHOR37 4064 ldrh w1, [x21, 10] 4065 strh w1, [x0, 6] 4066 mov w1, 65535 4067 ldrh w0, [x21, 12] 4068 cmp w0, w1 4069 beq .L526 4070 adrp x1, .LANCHOR2 4071 ldr w2, [x1, #:lo12:.LANCHOR2] 4072 cmp w0, w2 4073 beq .L526 4074 adrp x1, .LANCHOR6 4075 ldrh w1, [x1, #:lo12:.LANCHOR6] 4076 lsr w1, w1, 2 4077 cmp w2, w1 4078 bcs .L526 4079 cmp w0, w1 4080 bcs .L526 4081 bl FtlSysBlkNumInit 4082.L526: 4083 add x19, x19, :lo12:.LANCHOR37 4084 adrp x21, .LANCHOR10 4085 adrp x23, .LANCHOR127 4086 add x19, x19, 32 4087 add x21, x21, :lo12:.LANCHOR10 4088 add x23, x23, :lo12:.LANCHOR127 4089 add x22, x22, :lo12:.LANCHOR138 4090 mov w20, 0 4091.L527: 4092 ldrh w0, [x21] 4093 cmp w20, w0 4094 bcc .L528 4095 mov w0, 0 4096.L511: 4097 ldp x19, x20, [sp, 16] 4098 ldp x21, x22, [sp, 32] 4099 ldp x23, x24, [sp, 48] 4100 ldr x25, [sp, 64] 4101 ldp x29, x30, [sp], 80 4102 ret 4103.L514: 4104 sub w19, w19, #1 4105 and w19, w19, 65535 4106 b .L512 4107.L524: 4108 ldrh w0, [x19, #:lo12:.LANCHOR37] 4109 mov w2, 1 4110 mov w1, w2 4111 orr w0, w20, w0, lsl 10 4112 str w0, [x24, 4] 4113 ldr x0, [x23, #:lo12:.LANCHOR106] 4114 str x0, [x24, 8] 4115 mov x0, x24 4116 bl FlashReadPages 4117 ldr w0, [x24] 4118 cmn w0, #1 4119 beq .L522 4120 ldrh w0, [x21] 4121 cmp w0, w25 4122 beq .L523 4123.L522: 4124 sub w20, w20, #1 4125 sxth w20, w20 4126 b .L521 4127.L528: 4128 ldrh w2, [x23] 4129 ldr x0, [x22, 8] 4130 mul w1, w2, w20 4131 lsl w2, w2, 2 4132 add w20, w20, 1 4133 add x1, x0, x1, lsl 2 4134 ldr x0, [x19], 8 4135 bl ftl_memcpy 4136 b .L527 4137.L529: 4138 mov w0, -1 4139 b .L511 4140 .size FtlLoadBbt, .-FtlLoadBbt 4141 .section .text.FlashProgPages,"ax",@progbits 4142 .align 2 4143 .global FlashProgPages 4144 .type FlashProgPages, %function 4145FlashProgPages: 4146 stp x29, x30, [sp, -160]! 4147 ubfiz x1, x1, 5, 32 4148 add x29, sp, 0 4149 stp x21, x22, [sp, 32] 4150 adrp x21, .LANCHOR0 4151 stp x23, x24, [sp, 48] 4152 adrp x22, .LANCHOR142 4153 stp w3, w2, [x29, 104] 4154 add x2, x21, :lo12:.LANCHOR0 4155 stp x19, x20, [sp, 16] 4156 adrp x24, .LANCHOR78 4157 stp x27, x28, [sp, 80] 4158 mov x19, x0 4159 ldrh w23, [x2, 12] 4160 add x20, x0, x1 4161 stp x25, x26, [sp, 64] 4162 add x22, x22, :lo12:.LANCHOR142 4163 mov x25, x0 4164 add x28, x24, :lo12:.LANCHOR78 4165 lsl w27, w23, 3 4166.L542: 4167 cmp x25, x20 4168 bne .L555 4169 ldr w0, [x29, 104] 4170 cbz w0, .L568 4171 adrp x21, .LANCHOR111 4172 adrp x22, .LANCHOR113 4173 mov x23, x21 4174 mov x24, x22 4175.L557: 4176 cmp x19, x20 4177 beq .L568 4178 ldr x1, [x21, #:lo12:.LANCHOR111] 4179 ldr x0, [x22, #:lo12:.LANCHOR113] 4180 str wzr, [x1] 4181 str wzr, [x0] 4182 stp x1, x0, [x29, 136] 4183 mov w1, 1 4184 ldr w2, [x19, 4] 4185 add x0, x29, 128 4186 str w2, [x29, 132] 4187 ldr w2, [x29, 108] 4188 bl FlashReadPages 4189 ldr w26, [x29, 128] 4190 cmn w26, #1 4191 bne .L558 4192 ldr w1, [x19, 4] 4193 adrp x0, .LC11 4194 add x0, x0, :lo12:.LC11 4195 bl printf 4196 str w26, [x19] 4197.L558: 4198 ldr x0, [x19, 16] 4199 cbz x0, .L559 4200 ldr w2, [x0] 4201 ldr x0, [x24, #:lo12:.LANCHOR113] 4202 ldr w3, [x0] 4203 cmp w2, w3 4204 beq .L559 4205 ldr w1, [x19, 4] 4206 adrp x0, .LC12 4207 add x0, x0, :lo12:.LC12 4208 bl printf 4209 mov w0, -1 4210 str w0, [x19] 4211.L559: 4212 ldr x0, [x19, 8] 4213 cbz x0, .L560 4214 ldr w2, [x0] 4215 ldr x0, [x23, #:lo12:.LANCHOR111] 4216 ldr w3, [x0] 4217 cmp w2, w3 4218 beq .L560 4219 ldr w1, [x19, 4] 4220 adrp x0, .LC13 4221 add x0, x0, :lo12:.LC13 4222 bl printf 4223 mov w0, -1 4224 str w0, [x19] 4225.L560: 4226 add x19, x19, 32 4227 b .L557 4228.L555: 4229 ldr x0, [x25, 8] 4230 cbz x0, .L543 4231 ldr x0, [x25, 16] 4232 cbnz x0, .L544 4233.L543: 4234 adrp x0, .LC1 4235 mov w2, 134 4236 mov x1, x22 4237 add x0, x0, :lo12:.LC1 4238 bl printf 4239.L544: 4240 ldr w0, [x25, 4] 4241 add x2, x29, 120 4242 add x1, x29, 124 4243 bl l2p_addr_tran.isra.0 4244 ldr w0, [x29, 120] 4245 cmp w0, 3 4246 bls .L545 4247.L581: 4248 mov w0, -1 4249 str w0, [x25] 4250 b .L546 4251.L545: 4252 cbnz w0, .L547 4253 ldr w0, [x29, 124] 4254 cmp w27, w0 4255 bls .L547 4256 adrp x21, .LANCHOR142 4257 adrp x22, .LC6 4258 mov w23, -1 4259 add x21, x21, :lo12:.LANCHOR142 4260 add x22, x22, :lo12:.LC6 4261 b .L579 4262.L549: 4263 ldr w2, [x19, 4] 4264 mov x1, x21 4265 str w23, [x19] 4266 mov x0, x22 4267 add x19, x19, 32 4268 bl printf 4269 ldr x1, [x19, -24] 4270 mov w3, 16 4271 mov w2, 4 4272 adrp x0, .LC7 4273 add x0, x0, :lo12:.LC7 4274 bl rknand_print_hex 4275 ldr x1, [x19, -16] 4276 mov w3, 4 4277 adrp x0, .LC8 4278 mov w2, w3 4279 add x0, x0, :lo12:.LC8 4280 bl rknand_print_hex 4281.L579: 4282 cmp x19, x20 4283 bne .L549 4284.L568: 4285 ldp x19, x20, [sp, 16] 4286 mov w0, 0 4287 ldp x21, x22, [sp, 32] 4288 ldp x23, x24, [sp, 48] 4289 ldp x25, x26, [sp, 64] 4290 ldp x27, x28, [sp, 80] 4291 ldp x29, x30, [sp], 160 4292 ret 4293.L547: 4294 ldr x1, [x25, 8] 4295 tst x1, 63 4296 beq .L562 4297 adrp x0, .LANCHOR111 4298 ldr x26, [x0, #:lo12:.LANCHOR111] 4299 cmp x1, x26 4300 beq .L550 4301 adrp x0, .LANCHOR12 4302 ldrh w2, [x0, #:lo12:.LANCHOR12] 4303 mov x0, x26 4304 lsl w2, w2, 9 4305 bl ftl_memcpy 4306.L550: 4307 add x0, x24, :lo12:.LANCHOR78 4308 ldr w1, [x29, 124] 4309 ldr x3, [x25, 16] 4310 mov x2, x26 4311 ldr x6, [x0, 16] 4312 ldrb w0, [x29, 120] 4313 blr x6 4314 cbnz w0, .L551 4315 str wzr, [x25] 4316.L552: 4317 add x0, x21, :lo12:.LANCHOR0 4318 ldrh w0, [x0, 14] 4319 cmp w0, 4 4320 bne .L546 4321 ldrb w0, [x29, 120] 4322 add x2, x26, 2048 4323 ldr x6, [x28, 16] 4324 ldr w1, [x29, 124] 4325 ldr x3, [x25, 16] 4326 add w1, w23, w1 4327 add x3, x3, 8 4328 blr x6 4329 cbnz w0, .L581 4330.L546: 4331 add x25, x25, 32 4332 b .L542 4333.L562: 4334 mov x26, x1 4335 b .L550 4336.L551: 4337 mov w0, -1 4338 str w0, [x25] 4339 b .L552 4340 .size FlashProgPages, .-FlashProgPages 4341 .section .text.FtlLowFormatEraseBlock,"ax",@progbits 4342 .align 2 4343 .global FtlLowFormatEraseBlock 4344 .type FtlLowFormatEraseBlock, %function 4345FtlLowFormatEraseBlock: 4346 stp x29, x30, [sp, -128]! 4347 adrp x7, .LANCHOR13 4348 add x7, x7, :lo12:.LANCHOR13 4349 mov x5, 0 4350 add x29, sp, 0 4351 stp x23, x24, [sp, 48] 4352 and w23, w0, 65535 4353 adrp x0, .LANCHOR99 4354 stp x19, x20, [sp, 16] 4355 stp x21, x22, [sp, 32] 4356 adrp x20, .LANCHOR3 4357 stp x25, x26, [sp, 64] 4358 and w22, w1, 255 4359 str w23, [x0, #:lo12:.LANCHOR99] 4360 adrp x21, .LANCHOR79 4361 adrp x0, .LANCHOR110 4362 adrp x1, .LANCHOR115 4363 adrp x25, .LANCHOR24 4364 ldrh w8, [x20, #:lo12:.LANCHOR3] 4365 ldr x6, [x21, #:lo12:.LANCHOR79] 4366 mov w24, 0 4367 ldr x10, [x0, #:lo12:.LANCHOR110] 4368 mov w19, 0 4369 ldr x11, [x1, #:lo12:.LANCHOR115] 4370 ldrh w12, [x25, #:lo12:.LANCHOR24] 4371 stp x27, x28, [sp, 80] 4372 str x0, [x29, 112] 4373.L583: 4374 cmp w8, w5, uxth 4375 bhi .L587 4376 cbz w24, .L582 4377 mov w2, w24 4378 ubfiz x24, x24, 5, 16 4379 mov x26, 0 4380 mov w1, 0 4381 mov x0, x6 4382 bl FlashEraseBlocks 4383.L591: 4384 ldr x0, [x21, #:lo12:.LANCHOR79] 4385 add x1, x0, x26 4386 ldr w0, [x0, x26] 4387 cmn w0, #1 4388 bne .L590 4389 ldr w0, [x1, 4] 4390 add w19, w19, 1 4391 and w19, w19, 65535 4392 lsr w0, w0, 10 4393 bl FtlBbmMapBadBlock 4394.L590: 4395 add x26, x26, 32 4396 cmp x26, x24 4397 bne .L591 4398 cbz w22, .L604 4399 adrp x0, .LANCHOR20 4400 mov w26, 1 4401 ldrh w28, [x0, #:lo12:.LANCHOR20] 4402.L592: 4403 add x0, x20, :lo12:.LANCHOR3 4404 adrp x27, .LANCHOR13 4405 str x0, [x29, 120] 4406 mov w24, 0 4407 add x0, x27, :lo12:.LANCHOR13 4408 str x0, [x29, 104] 4409.L600: 4410 ldr x0, [x29, 120] 4411 mov x5, 0 4412 ldr x6, [x21, #:lo12:.LANCHOR79] 4413 mov w20, 0 4414 ldrh w11, [x25, #:lo12:.LANCHOR24] 4415 ldrh w7, [x0] 4416 adrp x0, .LANCHOR109 4417 ldr x8, [x0, #:lo12:.LANCHOR109] 4418 ldr x0, [x29, 112] 4419 ldr x10, [x0, #:lo12:.LANCHOR110] 4420.L593: 4421 cmp w7, w5, uxth 4422 bhi .L596 4423 cbz w20, .L582 4424 mov w1, w20 4425 mov w3, 1 4426 mov w2, w26 4427 mov x0, x6 4428 bl FlashProgPages 4429 mov x27, 0 4430 ubfiz x1, x20, 5, 16 4431.L599: 4432 ldr x0, [x21, #:lo12:.LANCHOR79] 4433 add x3, x0, x27 4434 ldr w0, [x0, x27] 4435 cbz w0, .L598 4436 ldr w0, [x3, 4] 4437 add w19, w19, 1 4438 str x1, [x29, 96] 4439 and w19, w19, 65535 4440 lsr w0, w0, 10 4441 bl FtlBbmMapBadBlock 4442 ldr x1, [x29, 96] 4443.L598: 4444 add x27, x27, 32 4445 cmp x1, x27 4446 bne .L599 4447 add w24, w24, 1 4448 cmp w28, w24, uxth 4449 bhi .L600 4450 mov x24, 0 4451.L602: 4452 cbz w22, .L601 4453 ldr x0, [x21, #:lo12:.LANCHOR79] 4454 add x1, x0, x24 4455 ldr w0, [x0, x24] 4456 cbnz w0, .L601 4457 ldr w0, [x1, 4] 4458 mov w1, 1 4459 lsr w0, w0, 10 4460 bl FtlFreeSysBlkQueueIn 4461.L601: 4462 add x24, x24, 32 4463 cmp x24, x27 4464 bne .L602 4465 cmp w23, 63 4466 ccmp w22, 0, 0, hi 4467 beq .L582 4468 ldr x0, [x21, #:lo12:.LANCHOR79] 4469 mov w2, w20 4470 mov w1, w26 4471 bl FlashEraseBlocks 4472.L582: 4473 mov w0, w19 4474 ldp x19, x20, [sp, 16] 4475 ldp x21, x22, [sp, 32] 4476 ldp x23, x24, [sp, 48] 4477 ldp x25, x26, [sp, 64] 4478 ldp x27, x28, [sp, 80] 4479 ldp x29, x30, [sp], 128 4480 ret 4481.L587: 4482 lsl x0, x5, 5 4483 mov w1, w23 4484 str wzr, [x6, x0] 4485 ldrb w0, [x7, x5] 4486 bl V2P_block 4487 and w13, w0, 65535 4488 mov w14, w13 4489 cbz w22, .L584 4490 bl IsBlkInVendorPart 4491 cbnz w0, .L585 4492.L584: 4493 mov w0, w14 4494 bl FtlBbmIsBadBlock 4495 cbnz w0, .L586 4496 ubfiz x0, x24, 5, 16 4497 mul w1, w24, w12 4498 add x0, x6, x0 4499 add w24, w24, 1 4500 and w24, w24, 65535 4501 lsl w13, w13, 10 4502 asr w1, w1, 2 4503 add x1, x11, x1, sxtw 2 4504 str w13, [x0, 4] 4505 stp x10, x1, [x0, 8] 4506.L585: 4507 add x5, x5, 1 4508 b .L583 4509.L586: 4510 add w19, w19, 1 4511 and w19, w19, 65535 4512 b .L585 4513.L604: 4514 mov w26, 0 4515 mov w28, 2 4516 b .L592 4517.L596: 4518 lsl x0, x5, 5 4519 mov w1, w23 4520 str wzr, [x6, x0] 4521 ldr x0, [x29, 104] 4522 ldrb w0, [x0, x5] 4523 bl V2P_block 4524 and w12, w0, 65535 4525 mov w13, w12 4526 cbz w22, .L594 4527 bl IsBlkInVendorPart 4528 cbnz w0, .L595 4529.L594: 4530 mov w0, w13 4531 bl FtlBbmIsBadBlock 4532 cbnz w0, .L595 4533 ubfiz x0, x20, 5, 16 4534 mul w1, w20, w11 4535 add x0, x6, x0 4536 add w20, w20, 1 4537 and w20, w20, 65535 4538 add w12, w24, w12, lsl 10 4539 asr w1, w1, 2 4540 add x1, x10, x1, sxtw 2 4541 str w12, [x0, 4] 4542 stp x8, x1, [x0, 8] 4543.L595: 4544 add x5, x5, 1 4545 b .L593 4546 .size FtlLowFormatEraseBlock, .-FtlLowFormatEraseBlock 4547 .section .text.FlashTestBlk,"ax",@progbits 4548 .align 2 4549 .global FlashTestBlk 4550 .type FlashTestBlk, %function 4551FlashTestBlk: 4552 stp x29, x30, [sp, -128]! 4553 add x29, sp, 0 4554 stp x19, x20, [sp, 16] 4555 and w19, w0, 65535 4556 cmp w19, 11 4557 bls .L628 4558 adrp x20, .LANCHOR112 4559 mov w2, 32 4560 mov w1, 165 4561 lsl w19, w19, 10 4562 ldr x0, [x20, #:lo12:.LANCHOR112] 4563 str x0, [x29, 40] 4564 add x0, x29, 64 4565 str x0, [x29, 48] 4566 bl ftl_memset 4567 ldr x0, [x20, #:lo12:.LANCHOR112] 4568 mov w2, 8 4569 mov w1, 90 4570 bl ftl_memset 4571 str w19, [x29, 36] 4572 mov w2, 1 4573 add x0, x29, 32 4574 mov w1, w2 4575 bl FlashEraseBlocks 4576 mov w3, 1 4577 add x0, x29, 32 4578 mov w2, w3 4579 mov w1, w3 4580 bl FlashProgPages 4581 ldr w0, [x29, 32] 4582 cbnz w0, .L629 4583 add w0, w19, 1 4584 mov w3, 1 4585 str w0, [x29, 36] 4586 mov w2, w3 4587 mov w1, w3 4588 add x0, x29, 32 4589 bl FlashProgPages 4590 ldr w0, [x29, 32] 4591 cmp w0, 0 4592 csetm w20, ne 4593.L627: 4594 mov w2, 1 4595 mov w1, 0 4596 add x0, x29, 32 4597 str w19, [x29, 36] 4598 bl FlashEraseBlocks 4599.L625: 4600 mov w0, w20 4601 ldp x19, x20, [sp, 16] 4602 ldp x29, x30, [sp], 128 4603 ret 4604.L629: 4605 mov w20, -1 4606 b .L627 4607.L628: 4608 mov w20, 0 4609 b .L625 4610 .size FlashTestBlk, .-FlashTestBlk 4611 .section .text.FtlBbmTblFlush,"ax",@progbits 4612 .align 2 4613 .global FtlBbmTblFlush 4614 .type FtlBbmTblFlush, %function 4615FtlBbmTblFlush: 4616 stp x29, x30, [sp, -96]! 4617 add x29, sp, 0 4618 stp x23, x24, [sp, 48] 4619 adrp x23, .LANCHOR114 4620 stp x19, x20, [sp, 16] 4621 adrp x20, .LANCHOR138 4622 stp x21, x22, [sp, 32] 4623 add x19, x20, :lo12:.LANCHOR138 4624 adrp x22, .LANCHOR106 4625 ldr x1, [x23, #:lo12:.LANCHOR114] 4626 stp x25, x26, [sp, 64] 4627 adrp x21, .LANCHOR37 4628 str x27, [sp, 80] 4629 add x25, x21, :lo12:.LANCHOR37 4630 ldr x0, [x22, #:lo12:.LANCHOR106] 4631 adrp x26, .LANCHOR10 4632 stp x0, x1, [x19, 8] 4633 adrp x1, .LANCHOR23 4634 adrp x27, .LANCHOR127 4635 add x25, x25, 32 4636 ldrh w2, [x1, #:lo12:.LANCHOR23] 4637 mov w24, 0 4638 add x26, x26, :lo12:.LANCHOR10 4639 add x27, x27, :lo12:.LANCHOR127 4640 mov w1, 0 4641 bl ftl_memset 4642.L632: 4643 ldrh w0, [x26] 4644 cmp w24, w0 4645 blt .L633 4646 add x20, x20, :lo12:.LANCHOR138 4647 add x19, x21, :lo12:.LANCHOR37 4648 mov w2, 16 4649 mov w1, 255 4650 adrp x24, .LC14 4651 adrp x26, .LANCHOR20 4652 ldr x27, [x20, 16] 4653 add x24, x24, :lo12:.LC14 4654 add x26, x26, :lo12:.LANCHOR20 4655 mov w25, 0 4656 mov x0, x27 4657 bl ftl_memset 4658 mov w0, -3887 4659 strh w0, [x27] 4660 ldr w0, [x19, 8] 4661 str w0, [x27, 4] 4662 ldrh w0, [x21, #:lo12:.LANCHOR37] 4663 mov w21, 0 4664 strh w0, [x27, 2] 4665 ldrh w0, [x19, 4] 4666 strh w0, [x27, 8] 4667 ldrh w0, [x19, 6] 4668 strh w0, [x27, 10] 4669 adrp x0, .LANCHOR2 4670 ldr w0, [x0, #:lo12:.LANCHOR2] 4671 strh w0, [x27, 12] 4672.L634: 4673 ldrh w1, [x19] 4674 ldrh w4, [x27, 10] 4675 ldrh w2, [x19, 2] 4676 ldrh w3, [x19, 4] 4677 ldr x0, [x22, #:lo12:.LANCHOR106] 4678 str x0, [x20, 8] 4679 ldr x0, [x23, #:lo12:.LANCHOR114] 4680 str x0, [x20, 16] 4681 orr w0, w2, w1, lsl 10 4682 str wzr, [x20] 4683 str w0, [x20, 4] 4684 mov x0, x24 4685 bl printf 4686 ldrh w0, [x26] 4687 ldrh w1, [x19, 2] 4688 sub w0, w0, #1 4689 cmp w1, w0 4690 blt .L635 4691 ldr w0, [x19, 8] 4692 mov w2, 1 4693 ldrh w1, [x19, 4] 4694 add w0, w0, 1 4695 str w0, [x19, 8] 4696 str w0, [x27, 4] 4697 ldrh w0, [x19] 4698 strh w0, [x27, 8] 4699 strh w0, [x19, 4] 4700 adrp x0, .LANCHOR79 4701 strh w1, [x19] 4702 lsl w1, w1, 10 4703 ldr x0, [x0, #:lo12:.LANCHOR79] 4704 str w1, [x20, 4] 4705 strh wzr, [x19, 2] 4706 str w1, [x0, 4] 4707 mov w1, w2 4708 bl FlashEraseBlocks 4709.L635: 4710 mov w3, 1 4711 mov x0, x20 4712 mov w2, w3 4713 mov w1, w3 4714 bl FlashProgPages 4715 ldrh w0, [x19, 2] 4716 add w0, w0, 1 4717 strh w0, [x19, 2] 4718 ldr w0, [x20] 4719 cmn w0, #1 4720 bne .L636 4721 ldr w1, [x20, 4] 4722 add w21, w21, 1 4723 adrp x0, .LC15 4724 and w21, w21, 65535 4725 add x0, x0, :lo12:.LC15 4726 bl printf 4727 cmp w21, 3 4728 bls .L634 4729 ldr w1, [x20, 4] 4730 adrp x0, .LC16 4731 mov w2, w21 4732 add x0, x0, :lo12:.LC16 4733 bl printf 4734.L638: 4735 b .L638 4736.L633: 4737 ldrh w2, [x27] 4738 ldr x1, [x25], 8 4739 ldr x0, [x19, 8] 4740 mul w3, w24, w2 4741 lsl w2, w2, 2 4742 add w24, w24, 1 4743 add x0, x0, x3, sxtw 2 4744 bl ftl_memcpy 4745 b .L632 4746.L639: 4747 mov w25, 1 4748 b .L634 4749.L636: 4750 cbz w25, .L639 4751 mov w0, 0 4752 ldr x27, [sp, 80] 4753 ldp x19, x20, [sp, 16] 4754 ldp x21, x22, [sp, 32] 4755 ldp x23, x24, [sp, 48] 4756 ldp x25, x26, [sp, 64] 4757 ldp x29, x30, [sp], 96 4758 ret 4759 .size FtlBbmTblFlush, .-FtlBbmTblFlush 4760 .section .text.allocate_data_superblock,"ax",@progbits 4761 .align 2 4762 .global allocate_data_superblock 4763 .type allocate_data_superblock, %function 4764allocate_data_superblock: 4765 stp x29, x30, [sp, -112]! 4766 add x29, sp, 0 4767 stp x27, x28, [sp, 80] 4768 adrp x28, .LANCHOR48 4769 stp x23, x24, [sp, 48] 4770 add x24, x28, :lo12:.LANCHOR48 4771 stp x19, x20, [sp, 16] 4772 adrp x27, .LANCHOR45 4773 mov x19, x0 4774 stp x21, x22, [sp, 32] 4775 add x0, x27, :lo12:.LANCHOR45 4776 stp x25, x26, [sp, 64] 4777 str x0, [x29, 104] 4778.L642: 4779 ldr x1, [x29, 104] 4780 adrp x23, .LANCHOR5 4781 ldrh w0, [x28, #:lo12:.LANCHOR48] 4782 ldrh w1, [x1] 4783 add w0, w0, w1 4784 ldrh w1, [x23, #:lo12:.LANCHOR5] 4785 cmp w0, w1 4786 ble .L643 4787 adrp x1, .LANCHOR143 4788 adrp x0, .LC1 4789 mov w2, 2661 4790 add x1, x1, :lo12:.LANCHOR143 4791 add x0, x0, :lo12:.LC1 4792 bl printf 4793.L643: 4794 adrp x0, .LANCHOR53 4795 add x0, x0, :lo12:.LANCHOR53 4796 cmp x19, x0 4797 bne .L669 4798 adrp x1, .LANCHOR95 4799 ldrh w0, [x24] 4800 ldr w1, [x1, #:lo12:.LANCHOR95] 4801 mul w1, w0, w1 4802 lsr w0, w0, 1 4803 add w0, w0, 1 4804 add w1, w0, w1, lsr 2 4805 ands w1, w1, 65535 4806 beq .L644 4807 sub w1, w1, #1 4808 and w1, w1, 65535 4809.L644: 4810 adrp x0, .LANCHOR47 4811 add x0, x0, :lo12:.LANCHOR47 4812 bl List_pop_index_node 4813 and w22, w0, 65535 4814 ldrh w0, [x24] 4815 cbnz w0, .L645 4816 adrp x1, .LANCHOR143 4817 adrp x0, .LC1 4818 mov w2, 2670 4819 add x1, x1, :lo12:.LANCHOR143 4820 add x0, x0, :lo12:.LC1 4821 bl printf 4822.L645: 4823 ldrh w0, [x24] 4824 sub w0, w0, #1 4825 strh w0, [x24] 4826 ldrh w0, [x23, #:lo12:.LANCHOR5] 4827 cmp w0, w22 4828 bls .L642 4829 adrp x25, .LANCHOR42 4830 ubfiz x20, x22, 1, 16 4831 ldr x0, [x25, #:lo12:.LANCHOR42] 4832 ldrh w21, [x0, x20] 4833 cbnz w21, .L642 4834 strh w22, [x19] 4835 mov x0, x19 4836 bl make_superblock 4837 ldrb w0, [x19, 7] 4838 cbnz w0, .L647 4839 ldr x0, [x25, #:lo12:.LANCHOR42] 4840 mov w1, -1 4841 strh w1, [x0, x20] 4842 mov w0, w22 4843 bl INSERT_DATA_LIST 4844 ldrh w1, [x27, #:lo12:.LANCHOR45] 4845 ldrh w0, [x24] 4846 add w0, w0, w1 4847 ldrh w1, [x23, #:lo12:.LANCHOR5] 4848 cmp w0, w1 4849 ble .L642 4850 mov w2, 2684 4851 adrp x1, .LANCHOR143 4852 adrp x0, .LC1 4853 add x1, x1, :lo12:.LANCHOR143 4854 add x0, x0, :lo12:.LC1 4855 bl printf 4856 b .L642 4857.L669: 4858 mov w1, 0 4859 b .L644 4860.L647: 4861 ldrh w1, [x27, #:lo12:.LANCHOR45] 4862 ldrh w0, [x24] 4863 add w0, w0, w1 4864 ldrh w1, [x23, #:lo12:.LANCHOR5] 4865 cmp w0, w1 4866 ble .L649 4867 adrp x1, .LANCHOR143 4868 adrp x0, .LC1 4869 mov w2, 2687 4870 add x1, x1, :lo12:.LANCHOR143 4871 add x0, x0, :lo12:.LC1 4872 bl printf 4873.L649: 4874 adrp x0, .LANCHOR3 4875 adrp x25, .LANCHOR79 4876 add x26, x19, 16 4877 mov w6, 65535 4878 ldrh w0, [x0, #:lo12:.LANCHOR3] 4879 mov x4, x26 4880 ldr x3, [x25, #:lo12:.LANCHOR79] 4881 ubfiz x0, x0, 5, 16 4882 add x1, x3, 8 4883 add x0, x0, 8 4884 add x0, x3, x0 4885.L650: 4886 cmp x0, x1 4887 bne .L652 4888 cbnz w21, .L653 4889 adrp x1, .LANCHOR143 4890 adrp x0, .LC1 4891 mov w2, 2698 4892 add x1, x1, :lo12:.LANCHOR143 4893 add x0, x0, :lo12:.LC1 4894 bl printf 4895.L653: 4896 adrp x0, .LANCHOR144 4897 ldrh w0, [x0, #:lo12:.LANCHOR144] 4898 cmp w0, w22 4899 bne .L654 4900 adrp x1, .LANCHOR143 4901 adrp x0, .LC1 4902 mov w2, 2700 4903 add x1, x1, :lo12:.LANCHOR143 4904 add x0, x0, :lo12:.LC1 4905 bl printf 4906.L654: 4907 ldrb w0, [x19, 8] 4908 adrp x6, .LANCHOR43 4909 adrp x7, .LANCHOR14 4910 adrp x5, .LANCHOR90 4911 adrp x4, .LANCHOR91 4912 ldr x1, [x6, #:lo12:.LANCHOR43] 4913 cbnz w0, .L655 4914 ldrh w0, [x1, x20] 4915 cbz w0, .L656 4916 ldrh w2, [x7, #:lo12:.LANCHOR14] 4917 add w0, w0, w2 4918.L680: 4919 strh w0, [x1, x20] 4920 mov w1, 0 4921 ldr w0, [x5, #:lo12:.LANCHOR90] 4922 add w0, w0, 1 4923 str w0, [x5, #:lo12:.LANCHOR90] 4924 mov w0, w22 4925 bl ftl_set_blk_mode 4926.L658: 4927 ldr x0, [x6, #:lo12:.LANCHOR43] 4928 ldrh w1, [x0, x20] 4929 adrp x0, .LANCHOR92 4930 ldr w2, [x0, #:lo12:.LANCHOR92] 4931 cmp w1, w2 4932 bls .L659 4933 str w1, [x0, #:lo12:.LANCHOR92] 4934.L659: 4935 ldr w2, [x5, #:lo12:.LANCHOR90] 4936 ldr w1, [x4, #:lo12:.LANCHOR91] 4937 ldrh w0, [x7, #:lo12:.LANCHOR14] 4938 madd w0, w0, w2, w1 4939 ldrh w1, [x23, #:lo12:.LANCHOR5] 4940 udiv w0, w0, w1 4941 adrp x1, .LANCHOR145 4942 str w0, [x1, #:lo12:.LANCHOR145] 4943 adrp x0, .LANCHOR118 4944 ldr x1, [x0, #:lo12:.LANCHOR118] 4945 ldr w0, [x1, 16] 4946 add w0, w0, 1 4947 str w0, [x1, 16] 4948 ldr x0, [x25, #:lo12:.LANCHOR79] 4949 ubfiz x1, x21, 5, 16 4950 add x1, x1, 4 4951 add x2, x0, 4 4952 add x1, x0, x1 4953.L660: 4954 cmp x1, x2 4955 bne .L661 4956 ldrb w1, [x19, 8] 4957 mov w2, w21 4958 mov x23, 0 4959 bl FlashEraseBlocks 4960 mov w1, 0 4961.L662: 4962 cmp w21, w23, uxth 4963 bhi .L664 4964 cbz w1, .L665 4965 mov w0, w22 4966 bl update_multiplier_value 4967 bl FtlBbmTblFlush 4968.L665: 4969 ldrb w0, [x19, 7] 4970 cbnz w0, .L666 4971 adrp x0, .LANCHOR42 4972 mov w1, -1 4973 ldr x0, [x0, #:lo12:.LANCHOR42] 4974 strh w1, [x0, x20] 4975 b .L642 4976.L652: 4977 ldrh w2, [x4] 4978 stp xzr, xzr, [x1] 4979 cmp w2, w6 4980 beq .L651 4981 ubfiz x5, x21, 5, 16 4982 add w21, w21, 1 4983 add x5, x3, x5 4984 and w21, w21, 65535 4985 lsl w2, w2, 10 4986 str w2, [x5, 4] 4987.L651: 4988 add x1, x1, 32 4989 add x4, x4, 2 4990 b .L650 4991.L656: 4992 mov w0, 2 4993 b .L680 4994.L655: 4995 ldrh w0, [x1, x20] 4996 add w0, w0, 1 4997 strh w0, [x1, x20] 4998 ldr w0, [x4, #:lo12:.LANCHOR91] 4999 add w0, w0, 1 5000 str w0, [x4, #:lo12:.LANCHOR91] 5001 mov w0, w22 5002 bl ftl_set_blk_mode.part.6 5003 b .L658 5004.L661: 5005 ldr w3, [x2] 5006 and w3, w3, -1024 5007 str w3, [x2], 32 5008 b .L660 5009.L664: 5010 ldr x2, [x25, #:lo12:.LANCHOR79] 5011 lsl x0, x23, 5 5012 add x3, x2, x0 5013 ldr w2, [x2, x0] 5014 cmn w2, #1 5015 bne .L663 5016 add w1, w1, 1 5017 ldr w0, [x3, 4] 5018 stp w2, w1, [x29, 96] 5019 lsr w0, w0, 10 5020 bl FtlBbmMapBadBlock 5021 ldp w2, w1, [x29, 96] 5022 strh w2, [x26] 5023 ldrb w0, [x19, 7] 5024 sub w0, w0, #1 5025 strb w0, [x19, 7] 5026.L663: 5027 add x23, x23, 1 5028 add x26, x26, 2 5029 b .L662 5030.L666: 5031 adrp x1, .LANCHOR19 5032 adrp x2, .LANCHOR82 5033 strh wzr, [x19, 2] 5034 ldrh w1, [x1, #:lo12:.LANCHOR19] 5035 strh w22, [x19] 5036 strb wzr, [x19, 6] 5037 mul w0, w0, w1 5038 ldr w1, [x2, #:lo12:.LANCHOR82] 5039 str w1, [x19, 12] 5040 add w1, w1, 1 5041 str w1, [x2, #:lo12:.LANCHOR82] 5042 adrp x1, .LANCHOR42 5043 and w0, w0, 65535 5044 strh w0, [x19, 4] 5045 ldr x1, [x1, #:lo12:.LANCHOR42] 5046 strh w0, [x1, x20] 5047 ldrh w0, [x19, 4] 5048 cbz w0, .L667 5049 ldrb w0, [x19, 7] 5050 cbnz w0, .L668 5051.L667: 5052 adrp x1, .LANCHOR143 5053 adrp x0, .LC1 5054 mov w2, 2753 5055 add x1, x1, :lo12:.LANCHOR143 5056 add x0, x0, :lo12:.LC1 5057 bl printf 5058.L668: 5059 ldp x19, x20, [sp, 16] 5060 mov w0, 0 5061 ldp x21, x22, [sp, 32] 5062 ldp x23, x24, [sp, 48] 5063 ldp x25, x26, [sp, 64] 5064 ldp x27, x28, [sp, 80] 5065 ldp x29, x30, [sp], 112 5066 ret 5067 .size allocate_data_superblock, .-allocate_data_superblock 5068 .section .text.FtlGcFreeBadSuperBlk,"ax",@progbits 5069 .align 2 5070 .global FtlGcFreeBadSuperBlk 5071 .type FtlGcFreeBadSuperBlk, %function 5072FtlGcFreeBadSuperBlk: 5073 stp x29, x30, [sp, -96]! 5074 add x29, sp, 0 5075 stp x21, x22, [sp, 32] 5076 adrp x21, .LANCHOR74 5077 stp x25, x26, [sp, 64] 5078 and w25, w0, 65535 5079 ldrh w0, [x21, #:lo12:.LANCHOR74] 5080 stp x19, x20, [sp, 16] 5081 stp x23, x24, [sp, 48] 5082 str x27, [sp, 80] 5083 cbz w0, .L682 5084 adrp x23, .LANCHOR75 5085 add x24, x23, :lo12:.LANCHOR75 5086 mov w19, 0 5087.L683: 5088 adrp x0, .LANCHOR3 5089 ldrh w0, [x0, #:lo12:.LANCHOR3] 5090 cmp w0, w19 5091 bhi .L689 5092 bl FtlGcReFreshBadBlk 5093.L682: 5094 mov w0, 0 5095 ldr x27, [sp, 80] 5096 ldp x19, x20, [sp, 16] 5097 ldp x21, x22, [sp, 32] 5098 ldp x23, x24, [sp, 48] 5099 ldp x25, x26, [sp, 64] 5100 ldp x29, x30, [sp], 96 5101 ret 5102.L689: 5103 adrp x0, .LANCHOR13 5104 add x0, x0, :lo12:.LANCHOR13 5105 mov w1, w25 5106 add x22, x21, :lo12:.LANCHOR74 5107 mov w20, 0 5108 ldrb w0, [x0, w19, sxtw] 5109 bl V2P_block 5110 and w26, w0, 65535 5111.L684: 5112 ldrh w0, [x22] 5113 cmp w0, w20 5114 bhi .L688 5115 add w19, w19, 1 5116 and w19, w19, 65535 5117 b .L683 5118.L688: 5119 add x0, x23, :lo12:.LANCHOR75 5120 add w27, w20, 1 5121 ldrh w0, [x0, w20, sxtw 1] 5122 cmp w0, w26 5123 bne .L685 5124 mov w0, w26 5125 bl FtlBbmMapBadBlock 5126 bl FtlBbmTblFlush 5127 ldrh w1, [x22] 5128 sxtw x3, w27 5129 and x4, x20, 65535 5130 mov x0, 0 5131.L686: 5132 add w2, w20, w0 5133 cmp w1, w2, uxth 5134 bhi .L687 5135 sub w1, w1, #1 5136 strh w1, [x22] 5137.L685: 5138 and w20, w27, 65535 5139 b .L684 5140.L687: 5141 add x2, x3, x0 5142 ldrh w5, [x24, x2, lsl 1] 5143 add x2, x4, x0 5144 add x0, x0, 1 5145 strh w5, [x24, x2, lsl 1] 5146 b .L686 5147 .size FtlGcFreeBadSuperBlk, .-FtlGcFreeBadSuperBlk 5148 .section .text.update_vpc_list,"ax",@progbits 5149 .align 2 5150 .global update_vpc_list 5151 .type update_vpc_list, %function 5152update_vpc_list: 5153 stp x29, x30, [sp, -32]! 5154 adrp x1, .LANCHOR42 5155 add x29, sp, 0 5156 stp x19, x20, [sp, 16] 5157 and w19, w0, 65535 5158 ldr x1, [x1, #:lo12:.LANCHOR42] 5159 ubfiz x0, x19, 1, 16 5160 ldrh w0, [x1, x0] 5161 cbnz w0, .L695 5162 adrp x0, .LANCHOR144 5163 ldrh w1, [x0, #:lo12:.LANCHOR144] 5164 cmp w1, w19 5165 bne .L696 5166 mov w1, -1 5167 strh w1, [x0, #:lo12:.LANCHOR144] 5168.L697: 5169 adrp x20, .LANCHOR45 5170 mov w1, w19 5171 adrp x0, .LANCHOR41 5172 add x0, x0, :lo12:.LANCHOR41 5173 bl List_remove_node 5174 ldrh w0, [x20, #:lo12:.LANCHOR45] 5175 cbnz w0, .L699 5176 adrp x1, .LANCHOR146 5177 adrp x0, .LC1 5178 mov w2, 2823 5179 add x1, x1, :lo12:.LANCHOR146 5180 add x0, x0, :lo12:.LC1 5181 bl printf 5182.L699: 5183 ldrh w0, [x20, #:lo12:.LANCHOR45] 5184 sub w0, w0, #1 5185 strh w0, [x20, #:lo12:.LANCHOR45] 5186 mov w0, w19 5187 bl free_data_superblock 5188 mov w0, w19 5189 bl FtlGcFreeBadSuperBlk 5190 adrp x0, .LANCHOR48 5191 ldrh w1, [x20, #:lo12:.LANCHOR45] 5192 ldrh w0, [x0, #:lo12:.LANCHOR48] 5193 add w0, w0, w1 5194 adrp x1, .LANCHOR5 5195 ldrh w1, [x1, #:lo12:.LANCHOR5] 5196 cmp w0, w1 5197 ble .L703 5198 adrp x1, .LANCHOR146 5199 adrp x0, .LC1 5200 mov w2, 2826 5201 add x1, x1, :lo12:.LANCHOR146 5202 add x0, x0, :lo12:.LC1 5203 bl printf 5204.L703: 5205 mov w0, 1 5206 b .L694 5207.L696: 5208 adrp x0, .LANCHOR51 5209 ldrh w0, [x0, #:lo12:.LANCHOR51] 5210 cmp w0, w19 5211 beq .L702 5212 adrp x0, .LANCHOR52 5213 ldrh w0, [x0, #:lo12:.LANCHOR52] 5214 cmp w0, w19 5215 beq .L702 5216 adrp x0, .LANCHOR53 5217 ldrh w0, [x0, #:lo12:.LANCHOR53] 5218 cmp w0, w19 5219 bne .L697 5220.L702: 5221 mov w0, 0 5222.L694: 5223 ldp x19, x20, [sp, 16] 5224 ldp x29, x30, [sp], 32 5225 ret 5226.L695: 5227 mov w0, w19 5228 bl List_update_data_list 5229 b .L702 5230 .size update_vpc_list, .-update_vpc_list 5231 .section .text.decrement_vpc_count,"ax",@progbits 5232 .align 2 5233 .global decrement_vpc_count 5234 .type decrement_vpc_count, %function 5235decrement_vpc_count: 5236 stp x29, x30, [sp, -48]! 5237 add x29, sp, 0 5238 stp x19, x20, [sp, 16] 5239 and w19, w0, 65535 5240 str x21, [sp, 32] 5241 mov w0, 65535 5242 cmp w19, w0 5243 beq .L706 5244 adrp x21, .LANCHOR42 5245 ubfiz x20, x19, 1, 16 5246 ldr x1, [x21, #:lo12:.LANCHOR42] 5247 ldrh w0, [x1, x20] 5248 cbnz w0, .L707 5249 mov w2, 0 5250 mov w1, w19 5251 adrp x0, .LC17 5252 add x0, x0, :lo12:.LC17 5253 bl printf 5254 ldr x0, [x21, #:lo12:.LANCHOR42] 5255 ldrh w0, [x0, x20] 5256 cbz w0, .L708 5257.L713: 5258 mov w20, 0 5259.L705: 5260 mov w0, w20 5261 ldr x21, [sp, 32] 5262 ldp x19, x20, [sp, 16] 5263 ldp x29, x30, [sp], 48 5264 ret 5265.L708: 5266 mov w2, 2841 5267 adrp x1, .LANCHOR147 5268 adrp x0, .LC1 5269 add x1, x1, :lo12:.LANCHOR147 5270 add x0, x0, :lo12:.LC1 5271 bl printf 5272 b .L713 5273.L707: 5274 sub w0, w0, #1 5275 strh w0, [x1, x20] 5276.L706: 5277 adrp x21, .LANCHOR131 5278 mov w1, 65535 5279 ldrh w0, [x21, #:lo12:.LANCHOR131] 5280 cmp w0, w1 5281 bne .L710 5282 strh w19, [x21, #:lo12:.LANCHOR131] 5283 b .L713 5284.L710: 5285 cmp w19, w0 5286 beq .L713 5287 bl update_vpc_list 5288 cmp w0, 0 5289 adrp x1, .LANCHOR40 5290 adrp x0, .LANCHOR41 5291 strh w19, [x21, #:lo12:.LANCHOR131] 5292 cset w20, ne 5293 ldr x1, [x1, #:lo12:.LANCHOR40] 5294 ldr x0, [x0, #:lo12:.LANCHOR41] 5295 sub x0, x0, x1 5296 mov x1, -6148914691236517206 5297 asr x0, x0, 1 5298 movk x1, 0xaaab, lsl 0 5299 mul x0, x0, x1 5300 adrp x1, .LANCHOR42 5301 ldr x1, [x1, #:lo12:.LANCHOR42] 5302 and x2, x0, 65535 5303 ldrh w1, [x1, x2, lsl 1] 5304 cbnz w1, .L705 5305 cmp w19, w0, uxth 5306 beq .L705 5307 mov w2, 2857 5308 adrp x1, .LANCHOR147 5309 adrp x0, .LC1 5310 add x1, x1, :lo12:.LANCHOR147 5311 add x0, x0, :lo12:.LC1 5312 bl printf 5313 b .L705 5314 .size decrement_vpc_count, .-decrement_vpc_count 5315 .section .text.FtlSuperblockPowerLostFix,"ax",@progbits 5316 .align 2 5317 .global FtlSuperblockPowerLostFix 5318 .type FtlSuperblockPowerLostFix, %function 5319FtlSuperblockPowerLostFix: 5320 stp x29, x30, [sp, -80]! 5321 adrp x1, .LANCHOR114 5322 add x29, sp, 0 5323 stp x19, x20, [sp, 16] 5324 mov x19, x0 5325 mov w0, -1 5326 stp x21, x22, [sp, 32] 5327 str w0, [x29, 72] 5328 adrp x0, .LANCHOR106 5329 ldr x21, [x1, #:lo12:.LANCHOR114] 5330 mov w1, -3 5331 ldr x0, [x0, #:lo12:.LANCHOR106] 5332 adrp x22, .LANCHOR83 5333 str x21, [x29, 64] 5334 add x22, x22, :lo12:.LANCHOR83 5335 str x0, [x29, 56] 5336 ldrh w20, [x19, 4] 5337 str w1, [x21, 8] 5338 mov w1, -2 5339 str w1, [x21, 12] 5340 and w20, w20, 1 5341 ldrh w1, [x19] 5342 add w20, w20, 6 5343 strh w1, [x21, 2] 5344 strh wzr, [x21] 5345 mov w1, 61589 5346 str w1, [x0] 5347 mov w1, 22136 5348 movk w1, 0x1234, lsl 16 5349 str w1, [x0, 4] 5350.L720: 5351 ldrh w0, [x19, 4] 5352 cbnz w0, .L716 5353.L717: 5354 ldrh w0, [x19] 5355 adrp x1, .LANCHOR42 5356 ldrh w3, [x19, 4] 5357 ldr x2, [x1, #:lo12:.LANCHOR42] 5358 lsl x0, x0, 1 5359 ldrh w1, [x2, x0] 5360 sub w1, w1, w3 5361 strh w1, [x2, x0] 5362 adrp x0, .LANCHOR19 5363 strb wzr, [x19, 6] 5364 strh wzr, [x19, 4] 5365 ldrh w0, [x0, #:lo12:.LANCHOR19] 5366 strh w0, [x19, 2] 5367 ldp x21, x22, [sp, 32] 5368 ldp x19, x20, [sp, 16] 5369 ldp x29, x30, [sp], 80 5370 ret 5371.L716: 5372 mov x0, x19 5373 bl get_new_active_ppa 5374 str w0, [x29, 52] 5375 cmn w0, #1 5376 beq .L717 5377 ldr w0, [x22] 5378 mov w3, 0 5379 str w0, [x21, 4] 5380 mov w2, 0 5381 add w0, w0, 1 5382 mov w1, 1 5383 cmn w0, #1 5384 csel w0, w0, wzr, ne 5385 str w0, [x22] 5386 add x0, x29, 48 5387 bl FlashProgPages 5388 ldrh w0, [x19] 5389 bl decrement_vpc_count 5390 subs w20, w20, #1 5391 bne .L720 5392 b .L717 5393 .size FtlSuperblockPowerLostFix, .-FtlSuperblockPowerLostFix 5394 .section .text.FtlMakeBbt,"ax",@progbits 5395 .align 2 5396 .global FtlMakeBbt 5397 .type FtlMakeBbt, %function 5398FtlMakeBbt: 5399 stp x29, x30, [sp, -128]! 5400 add x29, sp, 0 5401 stp x21, x22, [sp, 32] 5402 mov w22, 0 5403 stp x19, x20, [sp, 16] 5404 adrp x20, .LANCHOR37 5405 stp x23, x24, [sp, 48] 5406 add x21, x20, :lo12:.LANCHOR37 5407 stp x25, x26, [sp, 64] 5408 add x24, x21, 32 5409 stp x27, x28, [sp, 80] 5410 bl FtlBbtMemInit 5411 bl FtlLoadFactoryBbt 5412 adrp x28, .LANCHOR138 5413 add x21, x21, 12 5414 add x25, x28, :lo12:.LANCHOR138 5415 adrp x0, .LANCHOR10 5416 add x0, x0, :lo12:.LANCHOR10 5417 str x0, [x29, 120] 5418.L729: 5419 ldr x0, [x29, 120] 5420 ldrh w0, [x0] 5421 cmp w22, w0 5422 bcc .L735 5423 adrp x21, .LANCHOR25 5424 add x21, x21, :lo12:.LANCHOR25 5425 mov w19, 0 5426.L736: 5427 ldrh w0, [x21] 5428 cmp w0, w19 5429 bhi .L737 5430 add x21, x20, :lo12:.LANCHOR37 5431 mov w22, 65535 5432 ldrh w19, [x21, 12] 5433 sub w19, w19, #1 5434 and w19, w19, 65535 5435.L738: 5436 ldrh w0, [x21, 12] 5437 sub w0, w0, #47 5438 cmp w0, w19 5439 bgt .L742 5440 mov w0, w19 5441 bl FtlBbmIsBadBlock 5442 cmp w0, 1 5443 beq .L739 5444 mov w0, w19 5445 bl FlashTestBlk 5446 cbz w0, .L740 5447 mov w0, w19 5448 bl FtlBbmMapBadBlock 5449.L739: 5450 sub w19, w19, #1 5451 and w19, w19, 65535 5452 b .L738 5453.L735: 5454 adrp x2, .LANCHOR114 5455 adrp x0, .LANCHOR106 5456 add x19, x28, :lo12:.LANCHOR138 5457 ldrh w1, [x21] 5458 ldr x0, [x0, #:lo12:.LANCHOR106] 5459 mov w3, 65535 5460 ldr x26, [x2, #:lo12:.LANCHOR114] 5461 cmp w1, w3 5462 stp x0, x26, [x19, 8] 5463 adrp x23, .LANCHOR17 5464 str x2, [x29, 112] 5465 beq .L730 5466 ldrh w4, [x23, #:lo12:.LANCHOR17] 5467 mov w2, 1 5468 madd w27, w4, w22, w1 5469 mov w1, w2 5470 lsl w0, w27, 10 5471 str w0, [x19, 4] 5472 mov x0, x19 5473 bl FlashReadPages 5474 ldr x1, [x19, 8] 5475 ldr x0, [x24] 5476 ldrh w2, [x23, #:lo12:.LANCHOR17] 5477 add w2, w2, 7 5478 lsr w2, w2, 3 5479 bl ftl_memcpy 5480.L731: 5481 mov w0, w27 5482 add w22, w22, 1 5483 bl FtlBbmMapBadBlock 5484 add x24, x24, 8 5485 add x21, x21, 2 5486 b .L729 5487.L730: 5488 mov w1, w22 5489 bl FlashGetBadBlockList 5490 ldr x0, [x19, 8] 5491 ldr x1, [x24] 5492 bl FtlBbt2Bitmap 5493 ldrh w19, [x23, #:lo12:.LANCHOR17] 5494 add x23, x23, :lo12:.LANCHOR17 5495 adrp x0, .LANCHOR127 5496 sub w19, w19, #1 5497 add x0, x0, :lo12:.LANCHOR127 5498 and w19, w19, 65535 5499 str x0, [x29, 104] 5500.L732: 5501 ldrh w0, [x23] 5502 madd w0, w22, w0, w19 5503 bl FtlBbmIsBadBlock 5504 cmp w0, 1 5505 beq .L733 5506 ldr x0, [x29, 112] 5507 mov w2, 16 5508 strh w19, [x21] 5509 mov w1, 0 5510 ldr x0, [x0, #:lo12:.LANCHOR114] 5511 bl ftl_memset 5512 adrp x0, .LANCHOR106 5513 mov w2, 4096 5514 mov w1, 0 5515 ldr x0, [x0, #:lo12:.LANCHOR106] 5516 bl ftl_memset 5517 mov w0, -3872 5518 strh w0, [x26] 5519 ldrh w4, [x23] 5520 ldrh w0, [x21] 5521 strh w0, [x26, 2] 5522 ldr x1, [x24] 5523 str wzr, [x26, 4] 5524 madd w27, w4, w22, w0 5525 lsl w0, w27, 10 5526 str w0, [x25, 4] 5527 ldr x0, [x29, 104] 5528 ldrh w2, [x0] 5529 ldr x0, [x25, 8] 5530 lsl w2, w2, 2 5531 bl ftl_memcpy 5532 mov w2, 1 5533 mov x0, x25 5534 mov w1, w2 5535 bl FlashEraseBlocks 5536 mov w3, 1 5537 mov x0, x25 5538 mov w2, w3 5539 mov w1, w3 5540 bl FlashProgPages 5541 ldr w0, [x25] 5542 cmn w0, #1 5543 bne .L731 5544 mov w0, w27 5545 bl FtlBbmMapBadBlock 5546 b .L732 5547.L733: 5548 sub w19, w19, #1 5549 and w19, w19, 65535 5550 b .L732 5551.L737: 5552 mov w0, w19 5553 add w19, w19, 1 5554 bl FtlBbmMapBadBlock 5555 and w19, w19, 65535 5556 b .L736 5557.L740: 5558 ldrh w0, [x21] 5559 cmp w0, w22 5560 bne .L741 5561 strh w19, [x21] 5562 b .L739 5563.L741: 5564 strh w19, [x21, 4] 5565.L742: 5566 adrp x0, .LANCHOR79 5567 add x19, x20, :lo12:.LANCHOR37 5568 ldrh w1, [x20, #:lo12:.LANCHOR37] 5569 mov w2, 2 5570 ldr x0, [x0, #:lo12:.LANCHOR79] 5571 str wzr, [x19, 8] 5572 lsl w1, w1, 10 5573 strh wzr, [x19, 2] 5574 str w1, [x0, 4] 5575 ldrh w1, [x19, 4] 5576 lsl w1, w1, 10 5577 str w1, [x0, 36] 5578 mov w1, 1 5579 bl FlashEraseBlocks 5580 ldrh w0, [x20, #:lo12:.LANCHOR37] 5581 bl FtlBbmMapBadBlock 5582 ldrh w0, [x19, 4] 5583 bl FtlBbmMapBadBlock 5584 bl FtlBbmTblFlush 5585 strh wzr, [x19, 2] 5586 ldr w0, [x19, 8] 5587 ldrh w1, [x19, 4] 5588 add w0, w0, 1 5589 str w0, [x19, 8] 5590 ldrh w0, [x20, #:lo12:.LANCHOR37] 5591 strh w0, [x19, 4] 5592 strh w1, [x20, #:lo12:.LANCHOR37] 5593 bl FtlBbmTblFlush 5594 mov w0, 0 5595 ldp x19, x20, [sp, 16] 5596 ldp x21, x22, [sp, 32] 5597 ldp x23, x24, [sp, 48] 5598 ldp x25, x26, [sp, 64] 5599 ldp x27, x28, [sp, 80] 5600 ldp x29, x30, [sp], 128 5601 ret 5602 .size FtlMakeBbt, .-FtlMakeBbt 5603 .section .text.ftl_memcmp,"ax",@progbits 5604 .align 2 5605 .global ftl_memcmp 5606 .type ftl_memcmp, %function 5607ftl_memcmp: 5608 uxtw x2, w2 5609 b memcmp 5610 .size ftl_memcmp, .-ftl_memcmp 5611 .section .text.js_hash,"ax",@progbits 5612 .align 2 5613 .global js_hash 5614 .type js_hash, %function 5615js_hash: 5616 mov x4, x0 5617 mov w0, 42982 5618 mov x3, 0 5619 movk w0, 0x47c6, lsl 16 5620.L750: 5621 cmp w1, w3 5622 bhi .L751 5623 ret 5624.L751: 5625 lsr w2, w0, 2 5626 ldrb w5, [x4, x3] 5627 add w2, w2, w0, lsl 5 5628 add x3, x3, 1 5629 add w2, w2, w5 5630 eor w0, w0, w2 5631 b .L750 5632 .size js_hash, .-js_hash 5633 .section .text.Ftl_write_map_blk_to_last_page,"ax",@progbits 5634 .align 2 5635 .global Ftl_write_map_blk_to_last_page 5636 .type Ftl_write_map_blk_to_last_page, %function 5637Ftl_write_map_blk_to_last_page: 5638 stp x29, x30, [sp, -64]! 5639 mov w1, 65535 5640 add x29, sp, 0 5641 stp x19, x20, [sp, 16] 5642 mov x19, x0 5643 ldr x20, [x0, 16] 5644 stp x21, x22, [sp, 32] 5645 ldrh w0, [x0] 5646 stp x23, x24, [sp, 48] 5647 cmp w0, w1 5648 bne .L753 5649 ldrh w0, [x19, 8] 5650 cbz w0, .L754 5651 adrp x1, .LANCHOR148 5652 adrp x0, .LC1 5653 mov w2, 641 5654 add x1, x1, :lo12:.LANCHOR148 5655 add x0, x0, :lo12:.LC1 5656 bl printf 5657.L754: 5658 ldrh w0, [x19, 8] 5659 add w0, w0, 1 5660 strh w0, [x19, 8] 5661 bl FtlFreeSysBlkQueueOut 5662 strh w0, [x20] 5663 ldr w0, [x19, 48] 5664 strh wzr, [x19, 2] 5665 add w0, w0, 1 5666 strh wzr, [x19] 5667 str w0, [x19, 48] 5668.L755: 5669 mov w0, 0 5670 ldp x19, x20, [sp, 16] 5671 ldp x21, x22, [sp, 32] 5672 ldp x23, x24, [sp, 48] 5673 ldp x29, x30, [sp], 64 5674 ret 5675.L753: 5676 ubfiz x0, x0, 1, 16 5677 adrp x2, .LANCHOR114 5678 adrp x24, .LANCHOR106 5679 ldr x23, [x19, 40] 5680 ldr x21, [x2, #:lo12:.LANCHOR114] 5681 ldrh w22, [x20, x0] 5682 adrp x20, .LANCHOR138 5683 ldrh w0, [x19, 2] 5684 add x1, x20, :lo12:.LANCHOR138 5685 orr w0, w0, w22, lsl 10 5686 str w0, [x1, 4] 5687 ldr x0, [x24, #:lo12:.LANCHOR106] 5688 str x21, [x1, 16] 5689 str x0, [x1, 8] 5690 ldr w1, [x19, 48] 5691 str w1, [x21, 4] 5692 mov w1, -1291 5693 strh w1, [x21, 8] 5694 ldrh w1, [x19, 4] 5695 strh w1, [x21] 5696 adrp x1, .LANCHOR20 5697 strh w22, [x21, 2] 5698 ldrh w2, [x1, #:lo12:.LANCHOR20] 5699 mov w1, 255 5700 lsl w2, w2, 3 5701 bl ftl_memset 5702 ldrh w4, [x19, 6] 5703 mov x0, 0 5704 ldr x3, [x24, #:lo12:.LANCHOR106] 5705 mov w1, 0 5706.L756: 5707 cmp w4, w0, uxth 5708 bhi .L758 5709 add x20, x20, :lo12:.LANCHOR138 5710 adrp x0, .LANCHOR23 5711 ldrh w1, [x0, #:lo12:.LANCHOR23] 5712 ldr x0, [x20, 8] 5713 bl js_hash 5714 str w0, [x21, 12] 5715 mov w2, 1 5716 mov w3, 0 5717 mov w1, w2 5718 mov x0, x20 5719 bl FlashProgPages 5720 ldrh w0, [x19, 2] 5721 add w0, w0, 1 5722 strh w0, [x19, 2] 5723 mov x0, x19 5724 bl ftl_map_blk_gc 5725 b .L755 5726.L758: 5727 ldr w2, [x23, x0, lsl 2] 5728 cmp w22, w2, lsr 10 5729 bne .L757 5730 add w1, w1, 1 5731 and w1, w1, 65535 5732 ubfiz x2, x1, 1, 16 5733 str w0, [x3, x2, lsl 2] 5734 add x2, x2, 1 5735 ldr w5, [x23, x0, lsl 2] 5736 str w5, [x3, x2, lsl 2] 5737.L757: 5738 add x0, x0, 1 5739 b .L756 5740 .size Ftl_write_map_blk_to_last_page, .-Ftl_write_map_blk_to_last_page 5741 .section .text.FtlMapWritePage,"ax",@progbits 5742 .align 2 5743 .global FtlMapWritePage 5744 .type FtlMapWritePage, %function 5745FtlMapWritePage: 5746 stp x29, x30, [sp, -112]! 5747 add x29, sp, 0 5748 stp x23, x24, [sp, 48] 5749 adrp x23, .LANCHOR88 5750 stp x25, x26, [sp, 64] 5751 adrp x24, .LANCHOR149 5752 stp x27, x28, [sp, 80] 5753 adrp x26, .LANCHOR20 5754 stp x19, x20, [sp, 16] 5755 mov w25, w1 5756 mov x19, x0 5757 mov x27, x2 5758 add x23, x23, :lo12:.LANCHOR88 5759 add x24, x24, :lo12:.LANCHOR149 5760 add x28, x26, :lo12:.LANCHOR20 5761 stp x21, x22, [sp, 32] 5762 mov w22, 0 5763.L764: 5764 ldr w0, [x23] 5765 ldrh w1, [x19, 2] 5766 add w0, w0, 1 5767 str w0, [x23] 5768 ldrh w0, [x26, #:lo12:.LANCHOR20] 5769 sub w0, w0, #1 5770 cmp w1, w0 5771 bge .L765 5772 ldrh w1, [x19] 5773 mov w0, 65535 5774 cmp w1, w0 5775 bne .L766 5776.L765: 5777 mov x0, x19 5778 bl Ftl_write_map_blk_to_last_page 5779.L766: 5780 ldrh w1, [x19] 5781 ldr x0, [x19, 16] 5782 ldrh w0, [x0, x1, lsl 1] 5783 cbnz w0, .L767 5784 adrp x0, .LC1 5785 mov w2, 700 5786 mov x1, x24 5787 add x0, x0, :lo12:.LC1 5788 bl printf 5789.L767: 5790 ldrh w1, [x19] 5791 ldrh w0, [x19, 10] 5792 cmp w1, w0 5793 bcc .L768 5794 adrp x0, .LC1 5795 mov w2, 701 5796 mov x1, x24 5797 add x0, x0, :lo12:.LC1 5798 bl printf 5799.L768: 5800 ldrh w1, [x19] 5801 adrp x21, .LANCHOR138 5802 ldr x0, [x19, 16] 5803 add x20, x21, :lo12:.LANCHOR138 5804 mov w2, 16 5805 ldrh w3, [x0, x1, lsl 1] 5806 mov w1, 0 5807 ldrh w0, [x19, 2] 5808 str w3, [x29, 108] 5809 str x27, [x20, 8] 5810 orr w0, w0, w3, lsl 10 5811 str w0, [x20, 4] 5812 adrp x0, .LANCHOR114 5813 ldr x0, [x0, #:lo12:.LANCHOR114] 5814 str x0, [x20, 16] 5815 bl ftl_memset 5816 ldr x6, [x20, 16] 5817 ldr w0, [x19, 48] 5818 ldr w3, [x29, 108] 5819 str w0, [x6, 4] 5820 ldrh w0, [x19, 4] 5821 strh w0, [x6] 5822 adrp x0, .LANCHOR23 5823 strh w3, [x6, 2] 5824 strh w25, [x6, 8] 5825 ldrh w1, [x0, #:lo12:.LANCHOR23] 5826 ldr x0, [x20, 8] 5827 bl js_hash 5828 str w0, [x6, 12] 5829 mov w3, 1 5830 mov x0, x20 5831 mov w1, w3 5832 mov w2, w3 5833 bl FlashProgPages 5834 ldrh w0, [x19, 2] 5835 ldr w1, [x21, #:lo12:.LANCHOR138] 5836 add w0, w0, 1 5837 and w0, w0, 65535 5838 strh w0, [x19, 2] 5839 cmn w1, #1 5840 bne .L769 5841 ldr w1, [x20, 4] 5842 adrp x0, .LC18 5843 add x0, x0, :lo12:.LC18 5844 add w22, w22, 1 5845 and w22, w22, 65535 5846 bl printf 5847 ldrh w0, [x19, 2] 5848 cmp w0, 2 5849 bhi .L770 5850 ldrh w0, [x28] 5851 sub w0, w0, #1 5852 strh w0, [x19, 2] 5853.L770: 5854 cmp w22, 3 5855 bls .L771 5856 add x21, x21, :lo12:.LANCHOR138 5857 adrp x0, .LC19 5858 mov w2, w22 5859 add x0, x0, :lo12:.LC19 5860 ldr w1, [x21, 4] 5861 bl printf 5862.L772: 5863 b .L772 5864.L771: 5865 ldr w0, [x19, 52] 5866 cbz w0, .L764 5867.L786: 5868 b .L786 5869.L769: 5870 cmp w0, 1 5871 beq .L775 5872 cmp w1, 256 5873 beq .L775 5874 ldr w0, [x19, 56] 5875 cbz w0, .L776 5876.L775: 5877 str wzr, [x19, 56] 5878 b .L764 5879.L776: 5880 ldr x0, [x19, 40] 5881 ldr w1, [x20, 4] 5882 ldp x21, x22, [sp, 32] 5883 ldp x23, x24, [sp, 48] 5884 ldp x27, x28, [sp, 80] 5885 str w1, [x0, w25, uxtw 2] 5886 ldp x19, x20, [sp, 16] 5887 mov w0, 0 5888 ldp x25, x26, [sp, 64] 5889 ldp x29, x30, [sp], 112 5890 ret 5891 .size FtlMapWritePage, .-FtlMapWritePage 5892 .section .text.load_l2p_region,"ax",@progbits 5893 .align 2 5894 .global load_l2p_region 5895 .type load_l2p_region, %function 5896load_l2p_region: 5897 stp x29, x30, [sp, -96]! 5898 add x29, sp, 0 5899 stp x23, x24, [sp, 48] 5900 adrp x24, .LANCHOR32 5901 stp x19, x20, [sp, 16] 5902 and w20, w0, 65535 5903 stp x21, x22, [sp, 32] 5904 and x19, x1, 65535 5905 ldrh w0, [x24, #:lo12:.LANCHOR32] 5906 stp x25, x26, [sp, 64] 5907 str x27, [sp, 80] 5908 cmp w0, w20 5909 bcs .L789 5910 adrp x1, .LANCHOR150 5911 adrp x0, .LC1 5912 mov w2, 485 5913 add x1, x1, :lo12:.LANCHOR150 5914 add x0, x0, :lo12:.LC1 5915 bl printf 5916.L789: 5917 adrp x27, .LANCHOR124 5918 ubfiz x0, x20, 2, 16 5919 adrp x22, .LANCHOR55 5920 ldr x1, [x27, #:lo12:.LANCHOR124] 5921 ldr w23, [x1, x0] 5922 cbnz w23, .L790 5923 ldr x0, [x22, #:lo12:.LANCHOR55] 5924 lsl x19, x19, 4 5925 adrp x1, .LANCHOR23 5926 add x0, x0, x19 5927 ldrh w2, [x1, #:lo12:.LANCHOR23] 5928 mov w1, 255 5929 ldr x0, [x0, 8] 5930 bl ftl_memset 5931 ldr x0, [x22, #:lo12:.LANCHOR55] 5932 add x1, x0, x19 5933 strh w20, [x0, x19] 5934 str wzr, [x1, 4] 5935.L791: 5936 mov w0, 0 5937 ldr x27, [sp, 80] 5938 ldp x19, x20, [sp, 16] 5939 ldp x21, x22, [sp, 32] 5940 ldp x23, x24, [sp, 48] 5941 ldp x25, x26, [sp, 64] 5942 ldp x29, x30, [sp], 96 5943 ret 5944.L790: 5945 ldr x0, [x22, #:lo12:.LANCHOR55] 5946 lsl x19, x19, 4 5947 adrp x26, .LANCHOR138 5948 add x21, x26, :lo12:.LANCHOR138 5949 add x0, x0, x19 5950 mov w2, 1 5951 mov w1, w2 5952 str w23, [x21, 4] 5953 ldr x0, [x0, 8] 5954 str x0, [x21, 8] 5955 adrp x0, .LANCHOR114 5956 ldr x0, [x0, #:lo12:.LANCHOR114] 5957 str x0, [x21, 16] 5958 mov x0, x21 5959 bl FlashReadPages 5960 ldr x25, [x21, 16] 5961 ldrh w0, [x25, 8] 5962 cmp w0, w20 5963 beq .L792 5964 mov w2, w23 5965 mov w1, w20 5966 adrp x0, .LC20 5967 add x0, x0, :lo12:.LC20 5968 bl printf 5969 ldr x1, [x21, 16] 5970 mov w3, 4 5971 adrp x0, .LC21 5972 mov w2, w3 5973 add x0, x0, :lo12:.LC21 5974 bl rknand_print_hex 5975 ldrh w3, [x24, #:lo12:.LANCHOR32] 5976 adrp x0, .LC22 5977 ldr x1, [x27, #:lo12:.LANCHOR124] 5978 mov w2, 4 5979 add x0, x0, :lo12:.LC22 5980 bl rknand_print_hex 5981.L793: 5982 ldrh w0, [x25, 8] 5983 cmp w0, w20 5984 beq .L794 5985 adrp x1, .LANCHOR150 5986 adrp x0, .LC1 5987 mov w2, 508 5988 add x1, x1, :lo12:.LANCHOR150 5989 add x0, x0, :lo12:.LC1 5990 bl printf 5991.L794: 5992 ldr x0, [x22, #:lo12:.LANCHOR55] 5993 add x1, x0, x19 5994 str wzr, [x1, 4] 5995 strh w20, [x0, x19] 5996 b .L791 5997.L792: 5998 ldr w0, [x26, #:lo12:.LANCHOR138] 5999 cmp w0, 256 6000 bne .L793 6001 mov w2, w23 6002 mov w1, w20 6003 adrp x0, .LC23 6004 add x0, x0, :lo12:.LC23 6005 bl printf 6006 ldr x0, [x22, #:lo12:.LANCHOR55] 6007 mov w1, w20 6008 add x0, x0, x19 6009 ldr x2, [x0, 8] 6010 adrp x0, .LANCHOR129 6011 add x0, x0, :lo12:.LANCHOR129 6012 bl FtlMapWritePage 6013 b .L793 6014 .size load_l2p_region, .-load_l2p_region 6015 .section .text.ftl_map_blk_gc,"ax",@progbits 6016 .align 2 6017 .global ftl_map_blk_gc 6018 .type ftl_map_blk_gc, %function 6019ftl_map_blk_gc: 6020 stp x29, x30, [sp, -96]! 6021 add x29, sp, 0 6022 stp x19, x20, [sp, 16] 6023 mov x19, x0 6024 stp x23, x24, [sp, 48] 6025 adrp x24, .LANCHOR20 6026 stp x25, x26, [sp, 64] 6027 stp x21, x22, [sp, 32] 6028 stp x27, x28, [sp, 80] 6029 ldr x20, [x0, 16] 6030 ldr x25, [x0, 40] 6031 bl ftl_free_no_use_map_blk 6032 ldrh w1, [x19, 10] 6033 ldrh w2, [x19, 8] 6034 sub w1, w1, #5 6035 cmp w2, w1 6036 blt .L797 6037 ubfiz x0, x0, 1, 16 6038 ldrh w22, [x20, x0] 6039 cbz w22, .L797 6040 ldr w1, [x19, 52] 6041 cbnz w1, .L797 6042 mov w1, 1 6043 str w1, [x19, 52] 6044 strh wzr, [x20, x0] 6045 ldrh w0, [x19, 8] 6046 ldrh w1, [x19, 2] 6047 sub w0, w0, #1 6048 strh w0, [x19, 8] 6049 ldrh w0, [x24, #:lo12:.LANCHOR20] 6050 cmp w1, w0 6051 bcc .L798 6052 mov x0, x19 6053 bl ftl_map_blk_alloc_new_blk 6054.L798: 6055 adrp x26, .LANCHOR138 6056 adrp x23, .LANCHOR151 6057 add x27, x26, :lo12:.LANCHOR138 6058 add x23, x23, :lo12:.LANCHOR151 6059 mov w20, 0 6060.L799: 6061 ldrh w0, [x19, 6] 6062 cmp w0, w20 6063 bhi .L806 6064 mov w1, 1 6065 mov w0, w22 6066 bl FtlFreeSysBlkQueueIn 6067 str wzr, [x19, 52] 6068.L797: 6069 ldrh w1, [x19, 2] 6070 ldrh w0, [x24, #:lo12:.LANCHOR20] 6071 cmp w1, w0 6072 bcc .L807 6073 mov x0, x19 6074 bl ftl_map_blk_alloc_new_blk 6075.L807: 6076 mov w0, 0 6077 ldp x19, x20, [sp, 16] 6078 ldp x21, x22, [sp, 32] 6079 ldp x23, x24, [sp, 48] 6080 ldp x25, x26, [sp, 64] 6081 ldp x27, x28, [sp, 80] 6082 ldp x29, x30, [sp], 96 6083 ret 6084.L806: 6085 ubfiz x0, x20, 2, 16 6086 add x28, x25, x0 6087 ldr w1, [x25, x0] 6088 cmp w22, w1, lsr 10 6089 bne .L800 6090 adrp x2, .LANCHOR107 6091 add x0, x26, :lo12:.LANCHOR138 6092 ldr x2, [x2, #:lo12:.LANCHOR107] 6093 str x2, [x0, 8] 6094 adrp x2, .LANCHOR114 6095 str w1, [x0, 4] 6096 ldr x21, [x2, #:lo12:.LANCHOR114] 6097 mov w2, 1 6098 str x21, [x0, 16] 6099 mov w1, w2 6100 bl FlashReadPages 6101 ldrh w0, [x21, 8] 6102 cmp w0, w20 6103 beq .L801 6104 adrp x0, .LC1 6105 mov w2, 611 6106 mov x1, x23 6107 add x0, x0, :lo12:.LC1 6108 bl printf 6109.L801: 6110 ldr w0, [x27] 6111 cmn w0, #1 6112 bne .L802 6113.L804: 6114 str wzr, [x28] 6115.L803: 6116 b .L803 6117.L802: 6118 ldrh w0, [x21, 8] 6119 cmp w0, w20 6120 bne .L804 6121 ldrh w1, [x21] 6122 ldrh w0, [x19, 4] 6123 cmp w1, w0 6124 bne .L804 6125 ldr x2, [x27, 8] 6126 mov w1, w20 6127 mov x0, x19 6128 bl FtlMapWritePage 6129.L800: 6130 add w20, w20, 1 6131 and w20, w20, 65535 6132 b .L799 6133 .size ftl_map_blk_gc, .-ftl_map_blk_gc 6134 .section .text.flush_l2p_region,"ax",@progbits 6135 .align 2 6136 .global flush_l2p_region 6137 .type flush_l2p_region, %function 6138flush_l2p_region: 6139 stp x29, x30, [sp, -32]! 6140 add x29, sp, 0 6141 stp x19, x20, [sp, 16] 6142 adrp x20, .LANCHOR55 6143 ubfiz x19, x0, 4, 16 6144 ldr x0, [x20, #:lo12:.LANCHOR55] 6145 add x1, x0, x19 6146 ldr x2, [x1, 8] 6147 ldrh w1, [x0, x19] 6148 adrp x0, .LANCHOR129 6149 add x0, x0, :lo12:.LANCHOR129 6150 bl FtlMapWritePage 6151 ldr x0, [x20, #:lo12:.LANCHOR55] 6152 add x0, x0, x19 6153 ldp x19, x20, [sp, 16] 6154 ldr w1, [x0, 4] 6155 and w1, w1, 2147483647 6156 str w1, [x0, 4] 6157 mov w0, 0 6158 ldp x29, x30, [sp], 32 6159 ret 6160 .size flush_l2p_region, .-flush_l2p_region 6161 .section .text.l2p_flush,"ax",@progbits 6162 .align 2 6163 .global l2p_flush 6164 .type l2p_flush, %function 6165l2p_flush: 6166 stp x29, x30, [sp, -48]! 6167 add x29, sp, 0 6168 stp x19, x20, [sp, 16] 6169 adrp x20, .LANCHOR33 6170 add x20, x20, :lo12:.LANCHOR33 6171 str x21, [sp, 32] 6172 mov w19, 0 6173 adrp x21, .LANCHOR55 6174.L816: 6175 ldrh w0, [x20] 6176 cmp w0, w19 6177 bhi .L818 6178 mov w0, 0 6179 ldr x21, [sp, 32] 6180 ldp x19, x20, [sp, 16] 6181 ldp x29, x30, [sp], 48 6182 ret 6183.L818: 6184 ldr x1, [x21, #:lo12:.LANCHOR55] 6185 ubfiz x0, x19, 4, 16 6186 add x0, x1, x0 6187 ldr w0, [x0, 4] 6188 tbz w0, #31, .L817 6189 mov w0, w19 6190 bl flush_l2p_region 6191.L817: 6192 add w19, w19, 1 6193 and w19, w19, 65535 6194 b .L816 6195 .size l2p_flush, .-l2p_flush 6196 .section .text.log2phys,"ax",@progbits 6197 .align 2 6198 .global log2phys 6199 .type log2phys, %function 6200log2phys: 6201 stp x29, x30, [sp, -80]! 6202 add x29, sp, 0 6203 stp x25, x26, [sp, 64] 6204 mov w25, w0 6205 adrp x0, .LANCHOR22 6206 stp x23, x24, [sp, 48] 6207 stp x19, x20, [sp, 16] 6208 mov x20, x1 6209 ldrh w24, [x0, #:lo12:.LANCHOR22] 6210 adrp x0, .LANCHOR152 6211 stp x21, x22, [sp, 32] 6212 mov x19, x0 6213 ldr w1, [x0, #:lo12:.LANCHOR152] 6214 mov w21, w2 6215 cmp w25, w1 6216 bcc .L821 6217 adrp x1, .LANCHOR153 6218 adrp x0, .LC1 6219 mov w2, 813 6220 add x1, x1, :lo12:.LANCHOR153 6221 add x0, x0, :lo12:.LC1 6222 bl printf 6223.L821: 6224 ldr w0, [x19, #:lo12:.LANCHOR152] 6225 cmp w25, w0 6226 bcs .L822 6227 adrp x23, .LANCHOR55 6228 add w24, w24, 7 6229 adrp x0, .LANCHOR33 6230 ldr x2, [x23, #:lo12:.LANCHOR55] 6231 lsr w22, w25, w24 6232 and w22, w22, 65535 6233 ldrh w1, [x0, #:lo12:.LANCHOR33] 6234 mov x0, 0 6235.L823: 6236 and x19, x0, 65535 6237 cmp w19, w1 6238 bcc .L828 6239 bl select_l2p_ram_region 6240 and x19, x0, 65535 6241 ldr x2, [x23, #:lo12:.LANCHOR55] 6242 ubfiz x1, x19, 4, 16 6243 mov w26, w0 6244 add x3, x2, x1 6245 ldrh w2, [x2, x1] 6246 mov w1, 65535 6247 cmp w2, w1 6248 beq .L829 6249 ldr w1, [x3, 4] 6250 tbz w1, #31, .L829 6251 bl flush_l2p_region 6252.L829: 6253 mov w1, w26 6254 mov w0, w22 6255 bl load_l2p_region 6256 b .L825 6257.L822: 6258 mov w0, -1 6259 cbnz w21, .L820 6260 str w0, [x20] 6261.L820: 6262 ldp x19, x20, [sp, 16] 6263 ldp x21, x22, [sp, 32] 6264 ldp x23, x24, [sp, 48] 6265 ldp x25, x26, [sp, 64] 6266 ldp x29, x30, [sp], 80 6267 ret 6268.L828: 6269 add x0, x0, 1 6270 add x3, x2, x0, lsl 4 6271 ldrh w3, [x3, -16] 6272 cmp w3, w22 6273 bne .L823 6274.L825: 6275 mov x0, 1 6276 ldr x1, [x23, #:lo12:.LANCHOR55] 6277 lsl x0, x0, x24 6278 sub w0, w0, #1 6279 and w0, w0, w25 6280 and x0, x0, 65535 6281 add x1, x1, x19, lsl 4 6282 cbnz w21, .L826 6283 ldr x1, [x1, 8] 6284 ldr w0, [x1, x0, lsl 2] 6285 str w0, [x20] 6286.L827: 6287 ldr x0, [x23, #:lo12:.LANCHOR55] 6288 add x19, x0, x19, lsl 4 6289 ldr w0, [x19, 4] 6290 cmn w0, #1 6291 beq .L831 6292 add w0, w0, 1 6293 str w0, [x19, 4] 6294.L831: 6295 mov w0, 0 6296 b .L820 6297.L826: 6298 ldr x2, [x1, 8] 6299 ldr w3, [x20] 6300 str w3, [x2, x0, lsl 2] 6301 ldr w0, [x1, 4] 6302 orr w0, w0, -2147483648 6303 str w0, [x1, 4] 6304 adrp x0, .LANCHOR56 6305 strh w22, [x0, #:lo12:.LANCHOR56] 6306 b .L827 6307 .size log2phys, .-log2phys 6308 .section .text.FtlReUsePrevPpa,"ax",@progbits 6309 .align 2 6310 .global FtlReUsePrevPpa 6311 .type FtlReUsePrevPpa, %function 6312FtlReUsePrevPpa: 6313 stp x29, x30, [sp, -80]! 6314 add x29, sp, 0 6315 stp x21, x22, [sp, 32] 6316 adrp x22, .LANCHOR42 6317 stp x19, x20, [sp, 16] 6318 mov w21, w0 6319 str w1, [x29, 76] 6320 lsr w0, w1, 10 6321 str x23, [sp, 48] 6322 bl P2V_block_in_plane 6323 ldr x2, [x22, #:lo12:.LANCHOR42] 6324 and w3, w0, 65535 6325 ubfiz x20, x3, 1, 16 6326 ldrh w1, [x2, x20] 6327 cbnz w1, .L835 6328 adrp x0, .LANCHOR47 6329 ldr x19, [x0, #:lo12:.LANCHOR47] 6330 cbz x19, .L836 6331 adrp x2, .LANCHOR40 6332 mov x5, -6148914691236517206 6333 movk x5, 0xaaab, lsl 0 6334 adrp x23, .LANCHOR48 6335 ldr x2, [x2, #:lo12:.LANCHOR40] 6336 mov w6, 65535 6337 ldrh w4, [x23, #:lo12:.LANCHOR48] 6338 sub x19, x19, x2 6339 asr x19, x19, 1 6340 mul x19, x19, x5 6341 mov w5, 6 6342 and w19, w19, 65535 6343.L837: 6344 cmp w1, w4 6345 beq .L836 6346 cmp w19, w3 6347 bne .L838 6348 mov w1, w19 6349 add x0, x0, :lo12:.LANCHOR47 6350 bl List_remove_node 6351 ldrh w0, [x23, #:lo12:.LANCHOR48] 6352 cbnz w0, .L839 6353 adrp x1, .LANCHOR154 6354 adrp x0, .LC1 6355 mov w2, 1733 6356 add x1, x1, :lo12:.LANCHOR154 6357 add x0, x0, :lo12:.LC1 6358 bl printf 6359.L839: 6360 ldrh w0, [x23, #:lo12:.LANCHOR48] 6361 sub w0, w0, #1 6362 strh w0, [x23, #:lo12:.LANCHOR48] 6363 mov w0, w19 6364 bl INSERT_DATA_LIST 6365 ldr x1, [x22, #:lo12:.LANCHOR42] 6366 ldrh w0, [x1, x20] 6367 add w0, w0, 1 6368 strh w0, [x1, x20] 6369.L836: 6370 add x1, x29, 76 6371 mov w2, 1 6372 mov w0, w21 6373 bl log2phys 6374 ldp x19, x20, [sp, 16] 6375 ldp x21, x22, [sp, 32] 6376 ldr x23, [sp, 48] 6377 ldp x29, x30, [sp], 80 6378 ret 6379.L838: 6380 umull x19, w19, w5 6381 ldrh w19, [x2, x19] 6382 cmp w19, w6 6383 beq .L836 6384 add w1, w1, 1 6385 and w1, w1, 65535 6386 b .L837 6387.L835: 6388 add w1, w1, 1 6389 strh w1, [x2, x20] 6390 b .L836 6391 .size FtlReUsePrevPpa, .-FtlReUsePrevPpa 6392 .section .text.FtlRecoverySuperblock,"ax",@progbits 6393 .align 2 6394 .global FtlRecoverySuperblock 6395 .type FtlRecoverySuperblock, %function 6396FtlRecoverySuperblock: 6397 stp x29, x30, [sp, -192]! 6398 mov w1, 65535 6399 add x29, sp, 0 6400 stp x19, x20, [sp, 16] 6401 mov x19, x0 6402 stp x21, x22, [sp, 32] 6403 ldrh w0, [x0] 6404 stp x23, x24, [sp, 48] 6405 stp x25, x26, [sp, 64] 6406 cmp w0, w1 6407 stp x27, x28, [sp, 80] 6408 beq .L968 6409 ldrb w0, [x19, 6] 6410 str w0, [x29, 164] 6411 adrp x0, .LANCHOR19 6412 ldrh w26, [x19, 2] 6413 str x0, [x29, 128] 6414 ldrh w2, [x0, #:lo12:.LANCHOR19] 6415 cmp w2, w26 6416 bne .L848 6417 strh wzr, [x19, 4] 6418.L976: 6419 strb wzr, [x19, 6] 6420.L968: 6421 ldp x19, x20, [sp, 16] 6422 mov w0, 0 6423 ldp x21, x22, [sp, 32] 6424 ldp x23, x24, [sp, 48] 6425 ldp x25, x26, [sp, 64] 6426 ldp x27, x28, [sp, 80] 6427 ldp x29, x30, [sp], 192 6428 ret 6429.L848: 6430 ldrh w0, [x19, 16] 6431 mov w20, 0 6432.L849: 6433 cmp w0, w1 6434 beq .L850 6435 mov w1, 1 6436 bl FtlGetLastWrittenPage 6437 mov w23, w0 6438 cmn w0, #1 6439 beq .L851 6440 adrp x1, .LANCHOR64 6441 adrp x2, .LANCHOR3 6442 adrp x20, .LANCHOR103 6443 add x4, x19, 16 6444 ldr x5, [x1, #:lo12:.LANCHOR64] 6445 adrp x1, .LANCHOR23 6446 ldr x0, [x20, #:lo12:.LANCHOR103] 6447 mov w22, 0 6448 ldrh w6, [x1, #:lo12:.LANCHOR23] 6449 adrp x1, .LANCHOR65 6450 mov w10, 65535 6451 str x2, [x29, 152] 6452 ldr x7, [x1, #:lo12:.LANCHOR65] 6453 adrp x1, .LANCHOR24 6454 ldrh w8, [x1, #:lo12:.LANCHOR24] 6455 add x1, x19, 16 6456 str x1, [x29, 168] 6457 ldrh w1, [x2, #:lo12:.LANCHOR3] 6458 add x1, x1, 8 6459 add x1, x19, x1, lsl 1 6460.L852: 6461 cmp x4, x1 6462 bne .L856 6463 mov w2, 0 6464 mov w1, w22 6465 bl FlashReadPages 6466 adrp x0, .LANCHOR83 6467 ldr x4, [x20, #:lo12:.LANCHOR103] 6468 and w10, w23, 65535 6469 add x7, x0, :lo12:.LANCHOR83 6470 ldr w21, [x0, #:lo12:.LANCHOR83] 6471 mov x11, x4 6472 mov w6, 65535 6473 mov w3, 0 6474 sub w21, w21, #1 6475 str x0, [x29, 144] 6476.L857: 6477 cmp w22, w3 6478 bne .L862 6479 add w22, w23, 1 6480 ldr w0, [x4, 4] 6481 and w22, w22, 65535 6482.L970: 6483 lsr w0, w0, 10 6484 bl P2V_plane 6485 and w27, w0, 65535 6486 ldr x0, [x29, 128] 6487 ldrh w0, [x0, #:lo12:.LANCHOR19] 6488 cmp w0, w22 6489 bne .L864 6490 strh w22, [x19, 2] 6491 strb wzr, [x19, 6] 6492 strh wzr, [x19, 4] 6493.L864: 6494 ldr w0, [x29, 164] 6495 cmp w22, w26 6496 cset w1, eq 6497 cmp w27, w0 6498 cset w0, eq 6499 tst w1, w0 6500 beq .L865 6501.L977: 6502 mov w2, w27 6503 mov w1, w22 6504 mov x0, x19 6505 bl ftl_sb_update_avl_pages 6506 b .L968 6507.L850: 6508 add w20, w20, 1 6509 and w20, w20, 65535 6510 add x0, x19, x20, sxtw 1 6511 ldrh w0, [x0, 16] 6512 b .L849 6513.L851: 6514 cbz w26, .L853 6515 adrp x1, .LANCHOR155 6516 adrp x0, .LC1 6517 mov w2, 1800 6518 add x1, x1, :lo12:.LANCHOR155 6519 add x0, x0, :lo12:.LC1 6520 bl printf 6521.L853: 6522 ldr w0, [x29, 164] 6523 cmp w0, 0 6524 ccmp w20, w0, 4, ne 6525 beq .L854 6526 adrp x1, .LANCHOR155 6527 adrp x0, .LC1 6528 mov w2, 1801 6529 add x1, x1, :lo12:.LANCHOR155 6530 add x0, x0, :lo12:.LC1 6531 bl printf 6532.L854: 6533 strh wzr, [x19, 2] 6534 b .L976 6535.L856: 6536 ldrh w3, [x4] 6537 cmp w3, w10 6538 beq .L855 6539 ubfiz x2, x22, 5, 16 6540 orr w3, w23, w3, lsl 10 6541 add x2, x0, x2 6542 str w3, [x2, 4] 6543 mul w3, w22, w6 6544 asr w3, w3, 2 6545 add x3, x5, x3, sxtw 2 6546 str x3, [x2, 8] 6547 mul w3, w22, w8 6548 add w22, w22, 1 6549 and w22, w22, 65535 6550 asr w3, w3, 2 6551 add x3, x7, x3, sxtw 2 6552 str x3, [x2, 16] 6553.L855: 6554 add x4, x4, 2 6555 b .L852 6556.L862: 6557 ldr w0, [x11] 6558 cbnz w0, .L858 6559 ldr x8, [x11, 16] 6560 ldr w5, [x8, 4] 6561 cmn w5, #1 6562 beq .L859 6563 ldr w1, [x7] 6564 mov w0, w5 6565 bl ftl_cmp_data_ver 6566 cbz w0, .L859 6567 add w5, w5, 1 6568 str w5, [x7] 6569.L859: 6570 ldr w0, [x8] 6571 cmn w0, #1 6572 bne .L861 6573 ubfiz x3, x3, 5, 16 6574 and w22, w23, 65535 6575 add x3, x4, x3 6576 ldr w0, [x3, 4] 6577 b .L970 6578.L858: 6579 mov w6, w10 6580.L861: 6581 add w3, w3, 1 6582 add x11, x11, 32 6583 and w3, w3, 65535 6584 b .L857 6585.L865: 6586 mov w0, 65535 6587 cmp w6, w0 6588 bne .L866 6589 ldrb w0, [x19, 8] 6590 cbnz w0, .L867 6591.L866: 6592 adrp x25, .LANCHOR134 6593 and w28, w23, 65535 6594 ldr w0, [x25, #:lo12:.LANCHOR134] 6595 cmn w0, #1 6596 bne .L868 6597 str w21, [x25, #:lo12:.LANCHOR134] 6598.L868: 6599 add w0, w26, 7 6600 cmp w0, w23, uxth 6601 bge .L920 6602 sub w24, w28, #7 6603 and w24, w24, 65535 6604.L869: 6605 ldr x0, [x29, 152] 6606 mov w3, 65535 6607 mov w5, 1 6608 add x4, x0, :lo12:.LANCHOR3 6609.L870: 6610 cmp w24, w28 6611 bhi .L880 6612 ldrh w1, [x4] 6613 mov w23, 0 6614 ldr x0, [x20, #:lo12:.LANCHOR103] 6615 add x1, x1, 8 6616 ldr x2, [x29, 168] 6617 add x1, x19, x1, lsl 1 6618 b .L881 6619.L920: 6620 mov w24, w26 6621 b .L869 6622.L872: 6623 ldrh w6, [x2] 6624 cmp w6, w3 6625 beq .L871 6626 ubfiz x7, x23, 5, 16 6627 add w23, w23, 1 6628 add x7, x0, x7 6629 and w23, w23, 65535 6630 orr w6, w24, w6, lsl 10 6631 str w6, [x7, 4] 6632.L871: 6633 add x2, x2, 2 6634.L881: 6635 cmp x1, x2 6636 bne .L872 6637 mov w1, w23 6638 mov w2, 0 6639 str w5, [x29, 112] 6640 ubfiz x23, x23, 5, 16 6641 str w3, [x29, 120] 6642 add x23, x23, 16 6643 str x4, [x29, 136] 6644 bl FlashReadPages 6645 ldr x2, [x20, #:lo12:.LANCHOR103] 6646 ldr w1, [x25, #:lo12:.LANCHOR134] 6647 ldr w5, [x29, 112] 6648 add x0, x2, 16 6649 ldr w3, [x29, 120] 6650 add x23, x2, x23 6651 ldr x4, [x29, 136] 6652 mov w2, 0 6653.L873: 6654 cmp x23, x0 6655 bne .L878 6656 cbz w2, .L879 6657 str w1, [x25, #:lo12:.LANCHOR134] 6658.L879: 6659 add w24, w24, 1 6660 and w24, w24, 65535 6661 b .L870 6662.L878: 6663 ldr w6, [x0, -16] 6664 cbz w6, .L874 6665 cbz w2, .L867 6666 str w1, [x25, #:lo12:.LANCHOR134] 6667.L867: 6668 adrp x0, .LANCHOR156 6669 mov w24, w26 6670 mov w1, 1 6671 adrp x28, .LANCHOR134 6672 strh w1, [x0, #:lo12:.LANCHOR156] 6673 add x0, x28, :lo12:.LANCHOR134 6674 str x0, [x29, 104] 6675.L882: 6676 ldr x1, [x29, 152] 6677 mov w23, 0 6678 ldr x0, [x20, #:lo12:.LANCHOR103] 6679 mov w5, 65535 6680 ldr x2, [x29, 168] 6681 ldrh w1, [x1, #:lo12:.LANCHOR3] 6682 add x1, x1, 8 6683 add x1, x19, x1, lsl 1 6684.L883: 6685 cmp x1, x2 6686 bne .L885 6687 mov w2, 0 6688 mov w1, w23 6689 bl FlashReadPages 6690 mov x25, 0 6691 ubfiz x0, x23, 5, 16 6692 str x0, [x29, 112] 6693 adrp x0, .LANCHOR157 6694 add x0, x0, :lo12:.LANCHOR157 6695 str x0, [x29, 120] 6696.L886: 6697 ldr x0, [x29, 112] 6698 cmp x0, x25 6699 bne .L914 6700 ldr x0, [x29, 128] 6701 add w24, w24, 1 6702 and w24, w24, 65535 6703 ldrh w0, [x0, #:lo12:.LANCHOR19] 6704 cmp w0, w24 6705 bne .L882 6706 ldr x0, [x29, 152] 6707 mov w2, 65535 6708 strh w24, [x19, 2] 6709 strh wzr, [x19, 4] 6710 ldrh w1, [x0, #:lo12:.LANCHOR3] 6711 mov w0, 0 6712.L915: 6713 cmp w0, w1 6714 beq .L968 6715 ldr x4, [x29, 168] 6716 ldrh w3, [x4], 2 6717 str x4, [x29, 168] 6718 cmp w3, w2 6719 beq .L916 6720 strb w0, [x19, 6] 6721 b .L968 6722.L874: 6723 ldr x6, [x0] 6724 ldrh w7, [x6] 6725 cmp w7, w3 6726 beq .L877 6727 ldr w6, [x6, 4] 6728 cmn w6, #1 6729 csel w1, w1, w6, eq 6730 csel w2, w2, w5, eq 6731.L877: 6732 add x0, x0, 32 6733 b .L873 6734.L880: 6735 mov w0, -1 6736 str w0, [x25, #:lo12:.LANCHOR134] 6737 b .L867 6738.L885: 6739 ldrh w3, [x2] 6740 cmp w3, w5 6741 beq .L884 6742 ubfiz x4, x23, 5, 16 6743 add w23, w23, 1 6744 add x4, x0, x4 6745 and w23, w23, 65535 6746 orr w3, w24, w3, lsl 10 6747 str w3, [x4, 4] 6748.L884: 6749 add x2, x2, 2 6750 b .L883 6751.L914: 6752 ldr x4, [x20, #:lo12:.LANCHOR103] 6753 add x4, x4, x25 6754 ldr w5, [x4, 4] 6755 str w5, [x29, 188] 6756 lsr w0, w5, 10 6757 bl P2V_plane 6758 and w0, w0, 65535 6759 cmp w24, w26 6760 bcc .L887 6761 ldr w1, [x29, 164] 6762 ccmp w1, w0, 0, eq 6763 bhi .L887 6764 cmp w24, w22 6765 ccmp w27, w0, 0, eq 6766 beq .L888 6767 ldr w0, [x4] 6768 cmn w0, #1 6769 beq .L889 6770 ldr x3, [x4, 16] 6771 mov w0, 61589 6772 ldrh w1, [x3] 6773 cmp w1, w0 6774 beq .L890 6775 ldrh w0, [x19] 6776.L974: 6777 bl decrement_vpc_count 6778 b .L887 6779.L890: 6780 ldr w21, [x3, 4] 6781 cmn w21, #1 6782 beq .L891 6783 ldr x0, [x29, 144] 6784 ldr w1, [x0, #:lo12:.LANCHOR83] 6785 mov w0, w21 6786 bl ftl_cmp_data_ver 6787 cbz w0, .L891 6788 ldr x1, [x29, 144] 6789 add w0, w21, 1 6790 str w0, [x1, #:lo12:.LANCHOR83] 6791.L891: 6792 ldp w23, w0, [x3, 8] 6793 add x1, x29, 184 6794 str w0, [x29, 180] 6795 mov w2, 0 6796 mov w0, w23 6797 bl log2phys 6798 ldr w1, [x28, #:lo12:.LANCHOR134] 6799 ldr w3, [x29, 180] 6800 cmn w1, #1 6801 beq .L892 6802 mov w0, w21 6803 bl ftl_cmp_data_ver 6804 cbz w0, .L892 6805 cmn w3, #1 6806 beq .L893 6807 ldr x0, [x20, #:lo12:.LANCHOR103] 6808 mov w2, 0 6809 mov w1, 1 6810 add x0, x0, x25 6811 ldr x4, [x0, 16] 6812 str w3, [x0, 4] 6813 str x4, [x29, 136] 6814 bl FlashReadPages 6815 ldr x0, [x20, #:lo12:.LANCHOR103] 6816 ldr x4, [x29, 136] 6817 add x3, x0, x25 6818 ldr w0, [x0, x25] 6819 cmn w0, #1 6820 bne .L894 6821.L895: 6822 mov w0, -1 6823 str w0, [x29, 180] 6824.L902: 6825 ldr w3, [x29, 180] 6826 cmn w3, #1 6827 beq .L887 6828.L919: 6829 lsr w0, w3, 10 6830 bl P2V_block_in_plane 6831 and w23, w0, 65535 6832 adrp x0, .LANCHOR5 6833 mov w3, w23 6834 ldrh w0, [x0, #:lo12:.LANCHOR5] 6835 cmp w0, w23 6836 bhi .L910 6837 mov w2, 2065 6838 adrp x1, .LANCHOR155 6839 adrp x0, .LC1 6840 add x1, x1, :lo12:.LANCHOR155 6841 add x0, x0, :lo12:.LC1 6842 str w23, [x29, 136] 6843 bl printf 6844 ldr w3, [x29, 136] 6845.L910: 6846 adrp x1, .LANCHOR42 6847 ubfiz x0, x23, 1, 16 6848 ldr x1, [x1, #:lo12:.LANCHOR42] 6849 ldrh w0, [x1, x0] 6850 cbz w0, .L911 6851 mov w0, w3 6852 b .L974 6853.L893: 6854 ldp w1, w0, [x29, 184] 6855 cmp w1, w0 6856 bne .L887 6857 mov w2, 1 6858 add x1, x29, 180 6859 mov w0, w23 6860 bl log2phys 6861.L887: 6862 add x25, x25, 32 6863 b .L886 6864.L894: 6865 ldr w0, [x4, 8] 6866 cmp w23, w0 6867 bne .L895 6868 ldr w0, [x4, 4] 6869 str w0, [x29, 136] 6870 str x4, [x29, 96] 6871 uxtw x1, w0 6872 ldr w0, [x28, #:lo12:.LANCHOR134] 6873 bl ftl_cmp_data_ver 6874 cbz w0, .L895 6875 ldp w0, w1, [x29, 184] 6876 ldr x4, [x29, 96] 6877 cmp w0, w1 6878 ldr w1, [x29, 180] 6879 bne .L897 6880.L971: 6881 mov w0, w23 6882 bl FtlReUsePrevPpa 6883 b .L895 6884.L897: 6885 cmp w0, w1 6886 beq .L895 6887 cmn w0, #1 6888 beq .L898 6889 ldr x4, [x3, 16] 6890 mov w2, 0 6891 str w0, [x3, 4] 6892 mov w1, 1 6893 str x4, [x29, 96] 6894 mov x0, x3 6895 bl FlashReadPages 6896 ldr x4, [x29, 96] 6897.L899: 6898 ldr x0, [x20, #:lo12:.LANCHOR103] 6899 ldr w0, [x0, x25] 6900 cmn w0, #1 6901 beq .L900 6902 ldr x0, [x29, 104] 6903 ldr w3, [x4, 4] 6904 mov w1, w3 6905 ldr w0, [x0] 6906 bl ftl_cmp_data_ver 6907 cbz w0, .L900 6908 ldr w0, [x29, 136] 6909 mov w1, w3 6910 bl ftl_cmp_data_ver 6911 cbz w0, .L895 6912.L900: 6913 ldr w1, [x29, 180] 6914 b .L971 6915.L898: 6916 str w0, [x3] 6917 b .L899 6918.L892: 6919 ldp w1, w0, [x29, 184] 6920 cmp w1, w0 6921 beq .L902 6922 adrp x0, .LANCHOR8 6923 ldr w0, [x0, #:lo12:.LANCHOR8] 6924 cmp w0, w3, lsr 10 6925 bhi .L904 6926 cmn w3, #1 6927.L973: 6928 bne .L887 6929 mov w2, 1 6930 add x1, x29, 188 6931 mov w0, w23 6932 bl log2phys 6933 ldr w3, [x29, 184] 6934 cmn w3, #1 6935 beq .L902 6936 ldr w0, [x29, 180] 6937 cmp w3, w0 6938 beq .L919 6939 lsr w0, w3, 10 6940 bl P2V_block_in_plane 6941 adrp x1, .LANCHOR51 6942 and w0, w0, 65535 6943 ldrh w1, [x1, #:lo12:.LANCHOR51] 6944 cmp w1, w0 6945 beq .L909 6946 adrp x1, .LANCHOR52 6947 ldrh w1, [x1, #:lo12:.LANCHOR52] 6948 cmp w1, w0 6949 beq .L909 6950 adrp x1, .LANCHOR53 6951 ldrh w1, [x1, #:lo12:.LANCHOR53] 6952 cmp w1, w0 6953 bne .L902 6954.L909: 6955 ldr x0, [x20, #:lo12:.LANCHOR103] 6956 mov w2, 0 6957 mov w1, 1 6958 ldr x4, [x0, 16] 6959 str w3, [x0, 4] 6960 str x4, [x29, 136] 6961 bl FlashReadPages 6962 ldr x0, [x20, #:lo12:.LANCHOR103] 6963 ldr w0, [x0] 6964 cmn w0, #1 6965 beq .L902 6966 ldr x4, [x29, 136] 6967 mov w0, w21 6968 ldr w1, [x4, 4] 6969 bl ftl_cmp_data_ver 6970 cbnz w0, .L902 6971 mov w2, 1 6972 add x1, x29, 184 6973 mov w0, w23 6974 bl log2phys 6975 b .L902 6976.L904: 6977 ldr x0, [x20, #:lo12:.LANCHOR103] 6978 mov w2, 0 6979 mov w1, 1 6980 ldr x4, [x0, 16] 6981 str w3, [x0, 4] 6982 str x4, [x29, 136] 6983 bl FlashReadPages 6984 ldr x4, [x29, 136] 6985 ldr w0, [x4, 8] 6986 cmp w23, w0 6987 bne .L887 6988 ldrh w1, [x4] 6989 mov w0, 61589 6990 cmp w1, w0 6991 b .L973 6992.L911: 6993 mov w1, w23 6994 adrp x0, .LC24 6995 add x0, x0, :lo12:.LC24 6996 bl printf 6997 b .L887 6998.L889: 6999 ldr x0, [x29, 120] 7000 ldr w0, [x0] 7001 cmp w0, 31 7002 bhi .L912 7003 adrp x1, .LANCHOR158 7004 add x1, x1, :lo12:.LANCHOR158 7005 str w5, [x1, w0, uxtw 2] 7006 add w0, w0, 1 7007 ldr x1, [x29, 120] 7008 str w0, [x1] 7009.L912: 7010 ldrh w0, [x19] 7011 bl decrement_vpc_count 7012 ldr w0, [x28, #:lo12:.LANCHOR134] 7013 cmn w0, #1 7014 bne .L913 7015.L975: 7016 str w21, [x28, #:lo12:.LANCHOR134] 7017 b .L887 7018.L913: 7019 cmp w21, w0 7020 bcs .L887 7021 b .L975 7022.L916: 7023 add w0, w0, 1 7024 and w0, w0, 65535 7025 b .L915 7026.L888: 7027 strb w27, [x19, 6] 7028 strh w22, [x19, 2] 7029 b .L977 7030 .size FtlRecoverySuperblock, .-FtlRecoverySuperblock 7031 .section .text.ftl_check_vpc,"ax",@progbits 7032 .align 2 7033 .global ftl_check_vpc 7034 .type ftl_check_vpc, %function 7035ftl_check_vpc: 7036 stp x29, x30, [sp, -112]! 7037 adrp x0, .LC25 7038 add x0, x0, :lo12:.LC25 7039 add x29, sp, 0 7040 stp x23, x24, [sp, 48] 7041 adrp x23, .LANCHOR152 7042 add x23, x23, :lo12:.LANCHOR152 7043 stp x21, x22, [sp, 32] 7044 mov w22, 0 7045 stp x19, x20, [sp, 16] 7046 stp x25, x26, [sp, 64] 7047 adrp x21, .LANCHOR159 7048 stp x27, x28, [sp, 80] 7049 add x1, x21, :lo12:.LANCHOR159 7050 adrp x20, check_vpc_table 7051 bl printf 7052 add x19, x20, :lo12:check_vpc_table 7053 mov w2, 8192 7054 mov w1, 0 7055 mov x0, x19 7056 bl ftl_memset 7057.L979: 7058 ldr w0, [x23] 7059 cmp w22, w0 7060 bcc .L981 7061 adrp x22, .LANCHOR5 7062 adrp x24, .LC26 7063 add x22, x22, :lo12:.LANCHOR5 7064 add x26, x20, :lo12:check_vpc_table 7065 add x24, x24, :lo12:.LC26 7066 mov w23, 0 7067 mov w19, 0 7068 adrp x25, .LANCHOR42 7069.L982: 7070 ldrh w0, [x22] 7071 cmp w0, w19 7072 bhi .L984 7073 adrp x0, .LANCHOR47 7074 ldr x19, [x0, #:lo12:.LANCHOR47] 7075 cbz x19, .L985 7076 adrp x0, .LANCHOR48 7077 adrp x25, .LC27 7078 add x20, x20, :lo12:check_vpc_table 7079 add x25, x25, :lo12:.LC27 7080 ldrh w26, [x0, #:lo12:.LANCHOR48] 7081 adrp x0, .LANCHOR40 7082 mov x24, x0 7083 mov w22, 0 7084 ldr x1, [x0, #:lo12:.LANCHOR40] 7085 adrp x27, .LANCHOR42 7086 mov w28, 6 7087 sub x19, x19, x1 7088 mov x1, -6148914691236517206 7089 asr x19, x19, 1 7090 movk x1, 0xaaab, lsl 0 7091 mul x19, x19, x1 7092 and w19, w19, 65535 7093.L986: 7094 cmp w22, w26 7095 bne .L988 7096.L985: 7097 cbz w23, .L978 7098 adrp x0, .LC1 7099 mov w2, 2389 7100 add x1, x21, :lo12:.LANCHOR159 7101 add x0, x0, :lo12:.LC1 7102 bl printf 7103.L978: 7104 ldp x19, x20, [sp, 16] 7105 ldp x21, x22, [sp, 32] 7106 ldp x23, x24, [sp, 48] 7107 ldp x25, x26, [sp, 64] 7108 ldp x27, x28, [sp, 80] 7109 ldp x29, x30, [sp], 112 7110 ret 7111.L981: 7112 mov w2, 0 7113 add x1, x29, 108 7114 mov w0, w22 7115 bl log2phys 7116 ldr w0, [x29, 108] 7117 cmn w0, #1 7118 beq .L980 7119 lsr w0, w0, 10 7120 bl P2V_block_in_plane 7121 and x0, x0, 65535 7122 ldrh w1, [x19, x0, lsl 1] 7123 add w1, w1, 1 7124 strh w1, [x19, x0, lsl 1] 7125.L980: 7126 add w22, w22, 1 7127 b .L979 7128.L984: 7129 ldr x0, [x25, #:lo12:.LANCHOR42] 7130 ubfiz x28, x19, 1, 16 7131 sxtw x27, w19 7132 ldrh w2, [x0, x28] 7133 ldrh w3, [x26, x27, lsl 1] 7134 cmp w2, w3 7135 beq .L983 7136 mov w1, w19 7137 mov x0, x24 7138 bl printf 7139 ldr x0, [x25, #:lo12:.LANCHOR42] 7140 mov w1, 65535 7141 ldrh w0, [x0, x28] 7142 cmp w0, w1 7143 beq .L983 7144 ldrh w1, [x26, x27, lsl 1] 7145 cmp w1, w0 7146 csinc w23, w23, wzr, ls 7147.L983: 7148 add w19, w19, 1 7149 and w19, w19, 65535 7150 b .L982 7151.L988: 7152 ldr x1, [x27, #:lo12:.LANCHOR42] 7153 ubfiz x0, x19, 1, 16 7154 ldrh w2, [x1, x0] 7155 cbz w2, .L987 7156 ldrh w3, [x20, w19, sxtw 1] 7157 mov w23, 1 7158 mov w1, w19 7159 mov x0, x25 7160 bl printf 7161.L987: 7162 ldr x0, [x24, #:lo12:.LANCHOR40] 7163 umull x19, w19, w28 7164 ldrh w19, [x0, x19] 7165 mov w0, 65535 7166 cmp w19, w0 7167 beq .L985 7168 add w22, w22, 1 7169 and w22, w22, 65535 7170 b .L986 7171 .size ftl_check_vpc, .-ftl_check_vpc 7172 .section .text.ftl_scan_all_data,"ax",@progbits 7173 .align 2 7174 .global ftl_scan_all_data 7175 .type ftl_scan_all_data, %function 7176ftl_scan_all_data: 7177 sub sp, sp, #96 7178 adrp x0, .LC28 7179 mov w1, 0 7180 add x0, x0, :lo12:.LC28 7181 stp x29, x30, [sp, 16] 7182 add x29, sp, 16 7183 stp x19, x20, [sp, 32] 7184 adrp x20, .LANCHOR138 7185 stp x21, x22, [sp, 48] 7186 mov w19, 0 7187 adrp x21, .LANCHOR152 7188 add x22, x20, :lo12:.LANCHOR138 7189 add x21, x21, :lo12:.LANCHOR152 7190 str x23, [sp, 64] 7191 bl printf 7192.L1004: 7193 ldr w0, [x21] 7194 cmp w19, w0 7195 bcc .L1010 7196 ldp x19, x20, [sp, 32] 7197 ldp x21, x22, [sp, 48] 7198 ldp x29, x30, [sp, 16] 7199 ldr x23, [sp, 64] 7200 add sp, sp, 96 7201 ret 7202.L1010: 7203 mov w2, 0 7204 add x1, x29, 76 7205 mov w0, w19 7206 bl log2phys 7207 tst x19, 2047 7208 bne .L1005 7209 ldr w2, [x29, 76] 7210 adrp x0, .LC29 7211 mov w1, w19 7212 add x0, x0, :lo12:.LC29 7213 bl printf 7214.L1005: 7215 ldr w1, [x29, 76] 7216 cmn w1, #1 7217 beq .L1007 7218 add x0, x20, :lo12:.LANCHOR138 7219 str wzr, [x20, #:lo12:.LANCHOR138] 7220 mov w2, 0 7221 str w1, [x0, 4] 7222 adrp x1, .LANCHOR106 7223 str w19, [x0, 24] 7224 ldr x1, [x1, #:lo12:.LANCHOR106] 7225 str x1, [x0, 8] 7226 adrp x1, .LANCHOR114 7227 ldr x23, [x1, #:lo12:.LANCHOR114] 7228 mov w1, 1 7229 str x23, [x0, 16] 7230 bl FlashReadPages 7231 ldr w0, [x20, #:lo12:.LANCHOR138] 7232 cmp w0, 256 7233 ccmn w0, #1, 4, ne 7234 beq .L1008 7235 ldr w0, [x23, 8] 7236 cmp w19, w0 7237 beq .L1007 7238.L1008: 7239 ldp x1, x0, [x22, 8] 7240 ldr w2, [x1, 4] 7241 str w2, [sp] 7242 ldr w2, [x22, 4] 7243 ldp w3, w4, [x0] 7244 ldp w5, w6, [x0, 8] 7245 adrp x0, .LC30 7246 ldr w7, [x1] 7247 add x0, x0, :lo12:.LC30 7248 mov w1, w19 7249 bl printf 7250.L1007: 7251 add w19, w19, 1 7252 b .L1004 7253 .size ftl_scan_all_data, .-ftl_scan_all_data 7254 .section .text.FtlGcScanTempBlk,"ax",@progbits 7255 .align 2 7256 .global FtlGcScanTempBlk 7257 .type FtlGcScanTempBlk, %function 7258FtlGcScanTempBlk: 7259 stp x29, x30, [sp, -144]! 7260 add x29, sp, 0 7261 stp x25, x26, [sp, 64] 7262 adrp x26, .LANCHOR160 7263 stp x19, x20, [sp, 16] 7264 mov x19, x0 7265 ldrh w20, [x26, #:lo12:.LANCHOR160] 7266 mov w0, 65535 7267 stp x21, x22, [sp, 32] 7268 stp x23, x24, [sp, 48] 7269 cmp w20, w0 7270 stp x27, x28, [sp, 80] 7271 beq .L1033 7272 cbnz w20, .L1013 7273.L1014: 7274 bl FtlGcPageVarInit 7275 b .L1015 7276.L1033: 7277 mov w20, 0 7278.L1013: 7279 adrp x0, .LANCHOR19 7280 ldrh w0, [x0, #:lo12:.LANCHOR19] 7281 cmp w0, w1 7282 beq .L1014 7283.L1015: 7284 adrp x27, .LANCHOR152 7285 add x27, x27, :lo12:.LANCHOR152 7286.L1016: 7287 ldrh w0, [x19] 7288 mov w23, 65535 7289 strb wzr, [x19, 8] 7290 cmp w0, w23 7291 beq .L1017 7292.L1032: 7293 adrp x1, .LANCHOR64 7294 adrp x24, .LANCHOR103 7295 add x4, x19, 16 7296 mov w21, 0 7297 ldr x5, [x1, #:lo12:.LANCHOR64] 7298 adrp x1, .LANCHOR23 7299 ldr x0, [x24, #:lo12:.LANCHOR103] 7300 ldrh w6, [x1, #:lo12:.LANCHOR23] 7301 adrp x1, .LANCHOR65 7302 ldr x7, [x1, #:lo12:.LANCHOR65] 7303 adrp x1, .LANCHOR24 7304 ldrh w8, [x1, #:lo12:.LANCHOR24] 7305 adrp x1, .LANCHOR3 7306 ldrh w1, [x1, #:lo12:.LANCHOR3] 7307 add x1, x1, 8 7308 add x1, x19, x1, lsl 1 7309.L1018: 7310 cmp x4, x1 7311 bne .L1020 7312 mov w1, w21 7313 ubfiz x21, x21, 5, 16 7314 mov x22, 0 7315 mov w2, 0 7316 bl FlashReadPages 7317.L1021: 7318 cmp x21, x22 7319 bne .L1031 7320 adrp x0, .LANCHOR19 7321 add w20, w20, 1 7322 and w20, w20, 65535 7323 ldrh w0, [x0, #:lo12:.LANCHOR19] 7324 cmp w0, w20 7325 bhi .L1032 7326.L1017: 7327 strh w20, [x19, 2] 7328 mov w0, -1 7329 strb wzr, [x19, 6] 7330 mov w1, w20 7331 strh w0, [x26, #:lo12:.LANCHOR160] 7332 mov w2, 0 7333 mov x0, x19 7334 bl ftl_sb_update_avl_pages 7335 mov w0, -1 7336 ldp x19, x20, [sp, 16] 7337 ldp x21, x22, [sp, 32] 7338 ldp x23, x24, [sp, 48] 7339 ldp x25, x26, [sp, 64] 7340 ldp x27, x28, [sp, 80] 7341 ldp x29, x30, [sp], 144 7342 ret 7343.L1020: 7344 ldrh w3, [x4] 7345 cmp w3, w23 7346 beq .L1019 7347 ubfiz x2, x21, 5, 16 7348 orr w3, w20, w3, lsl 10 7349 add x2, x0, x2 7350 str w3, [x2, 4] 7351 mul w3, w21, w6 7352 asr w3, w3, 2 7353 add x3, x5, x3, sxtw 2 7354 str x3, [x2, 8] 7355 mul w3, w21, w8 7356 add w21, w21, 1 7357 and w21, w21, 65535 7358 asr w3, w3, 2 7359 add x3, x7, x3, sxtw 2 7360 str x3, [x2, 16] 7361.L1019: 7362 add x4, x4, 2 7363 b .L1018 7364.L1031: 7365 ldr x1, [x24, #:lo12:.LANCHOR103] 7366 add x0, x1, x22 7367 ldr w1, [x1, x22] 7368 ldr w28, [x0, 4] 7369 cbnz w1, .L1022 7370 ldr x25, [x0, 16] 7371 ldrh w0, [x25] 7372 cmp w0, w23 7373 beq .L1022 7374 ldr w0, [x25, 8] 7375 ldr w1, [x27] 7376 cmp w0, w1 7377 bls .L1024 7378.L1022: 7379 adrp x0, .LANCHOR42 7380 ldrh w1, [x19] 7381 mov w20, 0 7382 ldr x0, [x0, #:lo12:.LANCHOR42] 7383 strh wzr, [x0, x1, lsl 1] 7384 ldrh w0, [x19] 7385 bl INSERT_FREE_LIST 7386 mov w0, -1 7387 strh w0, [x19] 7388 bl FtlGcPageVarInit 7389 b .L1016 7390.L1024: 7391 add x1, x29, 108 7392 mov w2, 0 7393 bl log2phys 7394 ldr w0, [x25, 12] 7395 ldr w1, [x29, 108] 7396 cmp w0, w1 7397 beq .L1026 7398.L1027: 7399 ldp w2, w0, [x25, 8] 7400 mov w1, w28 7401 add x22, x22, 32 7402 bl FtlGcUpdatePage 7403 b .L1021 7404.L1026: 7405 cmn w0, #1 7406 beq .L1027 7407 str w0, [x29, 116] 7408 adrp x0, .LANCHOR110 7409 mov w2, 0 7410 mov w1, 1 7411 ldr x0, [x0, #:lo12:.LANCHOR110] 7412 str x0, [x29, 120] 7413 adrp x0, .LANCHOR115 7414 ldr x0, [x0, #:lo12:.LANCHOR115] 7415 str x0, [x29, 128] 7416 add x0, x29, 112 7417 bl FlashReadPages 7418 adrp x0, .LANCHOR12 7419 ldr x2, [x24, #:lo12:.LANCHOR103] 7420 ldr x3, [x29, 120] 7421 ldrh w1, [x0, #:lo12:.LANCHOR12] 7422 add x2, x2, x22 7423 mov x0, 0 7424 ubfiz x1, x1, 9, 16 7425.L1028: 7426 cmp x0, x1 7427 beq .L1027 7428 ldr x4, [x2, 8] 7429 ldr w5, [x4, x0] 7430 add x0, x0, 4 7431 add x4, x3, x0 7432 ldr w4, [x4, -4] 7433 cmp w5, w4 7434 beq .L1028 7435 ldrh w1, [x19] 7436 adrp x0, .LC31 7437 ldr w2, [x29, 116] 7438 add x0, x0, :lo12:.LC31 7439 bl printf 7440 b .L1022 7441 .size FtlGcScanTempBlk, .-FtlGcScanTempBlk 7442 .section .text.FtlVendorPartWrite,"ax",@progbits 7443 .align 2 7444 .global FtlVendorPartWrite 7445 .type FtlVendorPartWrite, %function 7446FtlVendorPartWrite: 7447 stp x29, x30, [sp, -208]! 7448 add x29, sp, 0 7449 stp x19, x20, [sp, 16] 7450 mov w20, w1 7451 stp x27, x28, [sp, 80] 7452 add w1, w0, w1 7453 mov w28, w0 7454 adrp x0, .LANCHOR16 7455 stp x21, x22, [sp, 32] 7456 ldrh w0, [x0, #:lo12:.LANCHOR16] 7457 stp x23, x24, [sp, 48] 7458 stp x25, x26, [sp, 64] 7459 cmp w1, w0 7460 bhi .L1051 7461 adrp x0, .LANCHOR22 7462 adrp x25, .LANCHOR12 7463 adrp x26, .LANCHOR23 7464 mov x24, x2 7465 ldrh w21, [x0, #:lo12:.LANCHOR22] 7466 add x25, x25, :lo12:.LANCHOR12 7467 add x26, x26, :lo12:.LANCHOR23 7468 mov w23, 0 7469 lsr w21, w28, w21 7470.L1045: 7471 cbnz w20, .L1050 7472.L1043: 7473 mov w0, w23 7474 ldp x19, x20, [sp, 16] 7475 ldp x21, x22, [sp, 32] 7476 ldp x23, x24, [sp, 48] 7477 ldp x25, x26, [sp, 64] 7478 ldp x27, x28, [sp, 80] 7479 ldp x29, x30, [sp], 208 7480 ret 7481.L1050: 7482 ldrh w1, [x25] 7483 adrp x0, .LANCHOR123 7484 adrp x27, .LANCHOR108 7485 ldr x0, [x0, #:lo12:.LANCHOR123] 7486 udiv w22, w28, w1 7487 ldr w2, [x0, w21, uxtw 2] 7488 and w0, w20, 65535 7489 msub w22, w22, w1, w28 7490 sub w19, w1, w22 7491 and w19, w19, 65535 7492 cmp w20, w19 7493 csel w19, w0, w19, cc 7494 cbz w2, .L1047 7495 cmp w19, w1 7496 beq .L1047 7497 ldr x0, [x27, #:lo12:.LANCHOR108] 7498 str x0, [x29, 120] 7499 add x0, x29, 144 7500 str w2, [x29, 116] 7501 mov w2, 1 7502 str x0, [x29, 128] 7503 mov w1, w2 7504 add x0, x29, 112 7505 bl FlashReadPages 7506.L1048: 7507 lsl w4, w19, 9 7508 ldr x0, [x27, #:lo12:.LANCHOR108] 7509 lsl w22, w22, 7 7510 mov w2, w4 7511 mov x1, x24 7512 str w4, [x29, 108] 7513 add x0, x0, x22, sxtw 2 7514 bl ftl_memcpy 7515 ldr x2, [x27, #:lo12:.LANCHOR108] 7516 mov w1, w21 7517 adrp x0, .LANCHOR161 7518 add x0, x0, :lo12:.LANCHOR161 7519 sub w20, w20, w19 7520 add w28, w28, w19 7521 add w21, w21, 1 7522 bl FtlMapWritePage 7523 cmn w0, #1 7524 ldr w4, [x29, 108] 7525 csinv w23, w23, wzr, ne 7526 add x24, x24, x4, sxtw 7527 b .L1045 7528.L1047: 7529 ldrh w2, [x26] 7530 mov w1, 0 7531 ldr x0, [x27, #:lo12:.LANCHOR108] 7532 bl ftl_memset 7533 b .L1048 7534.L1051: 7535 mov w23, -1 7536 b .L1043 7537 .size FtlVendorPartWrite, .-FtlVendorPartWrite 7538 .section .text.Ftl_save_ext_data,"ax",@progbits 7539 .align 2 7540 .global Ftl_save_ext_data 7541 .type Ftl_save_ext_data, %function 7542Ftl_save_ext_data: 7543 adrp x0, .LANCHOR135 7544 add x2, x0, :lo12:.LANCHOR135 7545 ldr w1, [x0, #:lo12:.LANCHOR135] 7546 mov w0, 19539 7547 movk w0, 0x4654, lsl 16 7548 cmp w1, w0 7549 bne .L1056 7550 mov w0, 72 7551 mov w1, 1 7552 movk w0, 0x5000, lsl 16 7553 str w0, [x2, 4] 7554 adrp x0, .LANCHOR162 7555 ldr w0, [x0, #:lo12:.LANCHOR162] 7556 str w0, [x2, 88] 7557 adrp x0, .LANCHOR163 7558 ldr w0, [x0, #:lo12:.LANCHOR163] 7559 str w0, [x2, 92] 7560 adrp x0, .LANCHOR84 7561 ldr w0, [x0, #:lo12:.LANCHOR84] 7562 str w0, [x2, 8] 7563 adrp x0, .LANCHOR85 7564 ldr w0, [x0, #:lo12:.LANCHOR85] 7565 str w0, [x2, 12] 7566 adrp x0, .LANCHOR89 7567 ldr w0, [x0, #:lo12:.LANCHOR89] 7568 str w0, [x2, 16] 7569 adrp x0, .LANCHOR88 7570 ldr w0, [x0, #:lo12:.LANCHOR88] 7571 str w0, [x2, 20] 7572 adrp x0, .LANCHOR91 7573 ldr w0, [x0, #:lo12:.LANCHOR91] 7574 str w0, [x2, 28] 7575 adrp x0, .LANCHOR80 7576 ldr w0, [x0, #:lo12:.LANCHOR80] 7577 str w0, [x2, 32] 7578 adrp x0, .LANCHOR86 7579 ldr w0, [x0, #:lo12:.LANCHOR86] 7580 str w0, [x2, 36] 7581 adrp x0, .LANCHOR87 7582 ldr w0, [x0, #:lo12:.LANCHOR87] 7583 str w0, [x2, 40] 7584 adrp x0, .LANCHOR92 7585 ldr w0, [x0, #:lo12:.LANCHOR92] 7586 str w0, [x2, 44] 7587 adrp x0, .LANCHOR93 7588 ldr w0, [x0, #:lo12:.LANCHOR93] 7589 str w0, [x2, 48] 7590 mov w0, 0 7591 b FtlVendorPartWrite 7592.L1056: 7593 ret 7594 .size Ftl_save_ext_data, .-Ftl_save_ext_data 7595 .section .text.FtlEctTblFlush,"ax",@progbits 7596 .align 2 7597 .global FtlEctTblFlush 7598 .type FtlEctTblFlush, %function 7599FtlEctTblFlush: 7600 adrp x2, .LANCHOR164 7601 ldrh w1, [x2, #:lo12:.LANCHOR164] 7602 cmp w1, 31 7603 bhi .L1062 7604 add w1, w1, 1 7605 strh w1, [x2, #:lo12:.LANCHOR164] 7606 mov w1, 1 7607.L1059: 7608 adrp x2, .LANCHOR118 7609 cbnz w0, .L1060 7610 ldr x0, [x2, #:lo12:.LANCHOR118] 7611 ldr w3, [x0, 20] 7612 ldr w0, [x0, 16] 7613 add w1, w1, w3 7614 cmp w0, w1 7615 bcc .L1064 7616.L1060: 7617 stp x29, x30, [sp, -16]! 7618 add x29, sp, 0 7619 ldr x2, [x2, #:lo12:.LANCHOR118] 7620 ldr w0, [x2, 16] 7621 str w0, [x2, 20] 7622 mov w0, 17221 7623 str wzr, [x2, 4] 7624 movk w0, 0x4254, lsl 16 7625 str w0, [x2] 7626 adrp x0, .LANCHOR116 7627 ldrh w1, [x0, #:lo12:.LANCHOR116] 7628 lsl w0, w1, 9 7629 str w0, [x2, 12] 7630 ldr w0, [x2, 8] 7631 add w0, w0, 1 7632 str w0, [x2, 8] 7633 mov w0, 64 7634 bl FtlVendorPartWrite 7635 bl Ftl_save_ext_data 7636 mov w0, 0 7637 ldp x29, x30, [sp], 16 7638 ret 7639.L1062: 7640 mov w1, 32 7641 b .L1059 7642.L1064: 7643 mov w0, 0 7644 ret 7645 .size FtlEctTblFlush, .-FtlEctTblFlush 7646 .section .text.sftl_vendor_write,"ax",@progbits 7647 .align 2 7648 .global sftl_vendor_write 7649 .type sftl_vendor_write, %function 7650sftl_vendor_write: 7651 add w0, w0, 256 7652 b FtlVendorPartWrite 7653 .size sftl_vendor_write, .-sftl_vendor_write 7654 .section .text.FtlVendorPartRead,"ax",@progbits 7655 .align 2 7656 .global FtlVendorPartRead 7657 .type FtlVendorPartRead, %function 7658FtlVendorPartRead: 7659 stp x29, x30, [sp, -208]! 7660 add x29, sp, 0 7661 stp x21, x22, [sp, 32] 7662 mov w22, w0 7663 mov w21, w1 7664 add w1, w0, w1 7665 adrp x0, .LANCHOR16 7666 stp x19, x20, [sp, 16] 7667 stp x23, x24, [sp, 48] 7668 ldrh w0, [x0, #:lo12:.LANCHOR16] 7669 stp x25, x26, [sp, 64] 7670 stp x27, x28, [sp, 80] 7671 cmp w1, w0 7672 bhi .L1076 7673 adrp x0, .LANCHOR22 7674 mov x25, x2 7675 mov w24, 0 7676 adrp x27, .LANCHOR123 7677 ldrh w20, [x0, #:lo12:.LANCHOR22] 7678 adrp x0, .LANCHOR12 7679 add x0, x0, :lo12:.LANCHOR12 7680 str x0, [x29, 104] 7681 lsr w20, w22, w20 7682.L1069: 7683 cbnz w21, .L1075 7684.L1067: 7685 mov w0, w24 7686 ldp x19, x20, [sp, 16] 7687 ldp x21, x22, [sp, 32] 7688 ldp x23, x24, [sp, 48] 7689 ldp x25, x26, [sp, 64] 7690 ldp x27, x28, [sp, 80] 7691 ldp x29, x30, [sp], 208 7692 ret 7693.L1075: 7694 ldr x0, [x27, #:lo12:.LANCHOR123] 7695 ldr w4, [x0, w20, uxtw 2] 7696 ldr x0, [x29, 104] 7697 ldrh w19, [x0] 7698 and w0, w21, 65535 7699 udiv w23, w22, w19 7700 msub w23, w23, w19, w22 7701 sub w19, w19, w23 7702 and w19, w19, 65535 7703 cmp w21, w19 7704 csel w19, w0, w19, cc 7705 lsl w26, w19, 9 7706 cbz w4, .L1071 7707 adrp x28, .LANCHOR108 7708 mov w2, 1 7709 str w4, [x29, 96] 7710 mov w1, w2 7711 ldr x0, [x28, #:lo12:.LANCHOR108] 7712 str x0, [x29, 120] 7713 add x0, x29, 144 7714 str w4, [x29, 116] 7715 str x0, [x29, 128] 7716 add x0, x29, 112 7717 bl FlashReadPages 7718 ldr w0, [x29, 112] 7719 mov x5, x28 7720 ldr w4, [x29, 96] 7721 cmn w0, #1 7722 adrp x0, .LANCHOR138 7723 csinv w24, w24, wzr, ne 7724 ldr w0, [x0, #:lo12:.LANCHOR138] 7725 cmp w0, 256 7726 bne .L1073 7727 mov w2, w4 7728 mov w1, w20 7729 adrp x0, .LC32 7730 str x28, [x29, 96] 7731 add x0, x0, :lo12:.LC32 7732 bl printf 7733 ldr x2, [x28, #:lo12:.LANCHOR108] 7734 mov w1, w20 7735 adrp x0, .LANCHOR161 7736 add x0, x0, :lo12:.LANCHOR161 7737 bl FtlMapWritePage 7738 ldr x5, [x29, 96] 7739.L1073: 7740 ldr x1, [x5, #:lo12:.LANCHOR108] 7741 lsl w23, w23, 7 7742 mov w2, w26 7743 mov x0, x25 7744 add x1, x1, x23, sxtw 2 7745 bl ftl_memcpy 7746.L1074: 7747 add w20, w20, 1 7748 sub w21, w21, w19 7749 add w22, w22, w19 7750 add x25, x25, x26, sxtw 7751 b .L1069 7752.L1071: 7753 mov w2, w26 7754 mov w1, 0 7755 mov x0, x25 7756 bl ftl_memset 7757 b .L1074 7758.L1076: 7759 mov w24, -1 7760 b .L1067 7761 .size FtlVendorPartRead, .-FtlVendorPartRead 7762 .section .text.FtlLoadEctTbl,"ax",@progbits 7763 .align 2 7764 .global FtlLoadEctTbl 7765 .type FtlLoadEctTbl, %function 7766FtlLoadEctTbl: 7767 stp x29, x30, [sp, -32]! 7768 mov w0, 64 7769 add x29, sp, 0 7770 stp x19, x20, [sp, 16] 7771 adrp x19, .LANCHOR118 7772 adrp x20, .LANCHOR116 7773 ldr x2, [x19, #:lo12:.LANCHOR118] 7774 ldrh w1, [x20, #:lo12:.LANCHOR116] 7775 bl FtlVendorPartRead 7776 ldr x0, [x19, #:lo12:.LANCHOR118] 7777 ldr w1, [x0] 7778 mov w0, 17221 7779 movk w0, 0x4254, lsl 16 7780 cmp w1, w0 7781 beq .L1079 7782 adrp x1, .LC33 7783 adrp x0, .LC34 7784 add x1, x1, :lo12:.LC33 7785 add x0, x0, :lo12:.LC34 7786 bl printf 7787 ldr x0, [x19, #:lo12:.LANCHOR118] 7788 mov w1, 0 7789 ldrh w2, [x20, #:lo12:.LANCHOR116] 7790 lsl w2, w2, 9 7791 bl ftl_memset 7792.L1079: 7793 mov w0, 0 7794 ldp x19, x20, [sp, 16] 7795 ldp x29, x30, [sp], 32 7796 ret 7797 .size FtlLoadEctTbl, .-FtlLoadEctTbl 7798 .section .text.Ftl_load_ext_data,"ax",@progbits 7799 .align 2 7800 .global Ftl_load_ext_data 7801 .type Ftl_load_ext_data, %function 7802Ftl_load_ext_data: 7803 stp x29, x30, [sp, -48]! 7804 mov w1, 1 7805 mov w0, 0 7806 add x29, sp, 0 7807 stp x19, x20, [sp, 16] 7808 adrp x19, .LANCHOR135 7809 str x21, [sp, 32] 7810 add x21, x19, :lo12:.LANCHOR135 7811 mov x2, x21 7812 bl FtlVendorPartRead 7813 ldr w0, [x19, #:lo12:.LANCHOR135] 7814 mov w20, 19539 7815 movk w20, 0x4654, lsl 16 7816 cmp w0, w20 7817 beq .L1082 7818 mov w2, 512 7819 mov w1, 0 7820 mov x0, x21 7821 bl ftl_memset 7822 str w20, [x19, #:lo12:.LANCHOR135] 7823.L1082: 7824 ldr w1, [x19, #:lo12:.LANCHOR135] 7825 add x0, x19, :lo12:.LANCHOR135 7826 cmp w1, w20 7827 adrp x1, .LANCHOR91 7828 bne .L1083 7829 adrp x2, .LANCHOR162 7830 ldr w3, [x0, 88] 7831 str w3, [x2, #:lo12:.LANCHOR162] 7832 adrp x2, .LANCHOR163 7833 ldr w3, [x0, 92] 7834 str w3, [x2, #:lo12:.LANCHOR163] 7835 adrp x2, .LANCHOR84 7836 ldr w3, [x0, 8] 7837 str w3, [x2, #:lo12:.LANCHOR84] 7838 adrp x2, .LANCHOR85 7839 ldr w3, [x0, 12] 7840 str w3, [x2, #:lo12:.LANCHOR85] 7841 adrp x2, .LANCHOR89 7842 ldr w3, [x0, 16] 7843 str w3, [x2, #:lo12:.LANCHOR89] 7844 adrp x2, .LANCHOR88 7845 ldr w3, [x0, 20] 7846 str w3, [x2, #:lo12:.LANCHOR88] 7847 ldp w2, w3, [x0, 28] 7848 str w2, [x1, #:lo12:.LANCHOR91] 7849 adrp x2, .LANCHOR80 7850 str w3, [x2, #:lo12:.LANCHOR80] 7851 adrp x2, .LANCHOR86 7852 ldr w3, [x0, 36] 7853 str w3, [x2, #:lo12:.LANCHOR86] 7854 adrp x2, .LANCHOR87 7855 ldr w3, [x0, 40] 7856 str w3, [x2, #:lo12:.LANCHOR87] 7857 adrp x2, .LANCHOR92 7858 ldr w3, [x0, 44] 7859 str w3, [x2, #:lo12:.LANCHOR92] 7860 ldr w2, [x0, 48] 7861 adrp x0, .LANCHOR93 7862 str w2, [x0, #:lo12:.LANCHOR93] 7863.L1083: 7864 adrp x0, .LANCHOR14 7865 adrp x2, .LANCHOR90 7866 ldr w1, [x1, #:lo12:.LANCHOR91] 7867 ldrh w0, [x0, #:lo12:.LANCHOR14] 7868 ldr w2, [x2, #:lo12:.LANCHOR90] 7869 ldp x19, x20, [sp, 16] 7870 ldr x21, [sp, 32] 7871 madd w0, w0, w2, w1 7872 adrp x1, .LANCHOR5 7873 ldp x29, x30, [sp], 48 7874 ldrh w1, [x1, #:lo12:.LANCHOR5] 7875 udiv w0, w0, w1 7876 adrp x1, .LANCHOR145 7877 str w0, [x1, #:lo12:.LANCHOR145] 7878 ret 7879 .size Ftl_load_ext_data, .-Ftl_load_ext_data 7880 .section .text.sftl_vendor_read,"ax",@progbits 7881 .align 2 7882 .global sftl_vendor_read 7883 .type sftl_vendor_read, %function 7884sftl_vendor_read: 7885 add w0, w0, 256 7886 b FtlVendorPartRead 7887 .size sftl_vendor_read, .-sftl_vendor_read 7888 .section .text.FtlMapBlkWriteDump_data,"ax",@progbits 7889 .align 2 7890 .global FtlMapBlkWriteDump_data 7891 .type FtlMapBlkWriteDump_data, %function 7892FtlMapBlkWriteDump_data: 7893 ldr w1, [x0, 56] 7894 cbz w1, .L1086 7895 stp x29, x30, [sp, -80]! 7896 add x29, sp, 0 7897 stp x19, x20, [sp, 16] 7898 mov x19, x0 7899 ldrh w20, [x0, 6] 7900 adrp x0, .LANCHOR107 7901 stp x21, x22, [sp, 32] 7902 stp x23, x24, [sp, 48] 7903 adrp x23, .LANCHOR138 7904 add x21, x23, :lo12:.LANCHOR138 7905 ldr x0, [x0, #:lo12:.LANCHOR107] 7906 mov x22, x23 7907 str x0, [x21, 8] 7908 adrp x0, .LANCHOR114 7909 ldr x24, [x0, #:lo12:.LANCHOR114] 7910 ldrh w0, [x19, 2] 7911 str x25, [sp, 64] 7912 str x24, [x21, 16] 7913 str wzr, [x19, 56] 7914 ldr x25, [x19, 40] 7915 cbz w0, .L1088 7916 adrp x1, .LANCHOR20 7917 ldrh w1, [x1, #:lo12:.LANCHOR20] 7918 sub w1, w1, #1 7919 cmp w0, w1 7920 bge .L1088 7921 ldrh w1, [x19] 7922 mov w2, 65535 7923 cmp w1, w2 7924 beq .L1088 7925 ldr x2, [x19, 16] 7926 ubfiz x1, x1, 1, 16 7927 sub w0, w0, #1 7928 ldrh w1, [x2, x1] 7929 mov w2, 1 7930 orr w0, w0, w1, lsl 10 7931 mov w1, w2 7932 str w0, [x21, 4] 7933 mov x0, x21 7934 bl FlashReadPages 7935 ldr w0, [x23, #:lo12:.LANCHOR138] 7936 cmn w0, #1 7937 beq .L1088 7938 ldrh w1, [x24, 8] 7939 ldr x2, [x19, 40] 7940 ubfiz x0, x1, 2, 16 7941 ldr w2, [x2, x0] 7942 ldr w0, [x21, 4] 7943 cmp w2, w0 7944 bne .L1088 7945 ldr x2, [x21, 8] 7946.L1100: 7947 mov x0, x19 7948 ldr x25, [sp, 64] 7949 ldp x19, x20, [sp, 16] 7950 ldp x21, x22, [sp, 32] 7951 ldp x23, x24, [sp, 48] 7952 ldp x29, x30, [sp], 80 7953 b FtlMapWritePage 7954.L1088: 7955 sub w20, w20, #1 7956 and w20, w20, 65535 7957 ubfiz x0, x20, 2, 16 7958 ldr w1, [x25, x0] 7959 add x0, x22, :lo12:.LANCHOR138 7960 str w1, [x0, 4] 7961 cbz w1, .L1089 7962 mov w2, 1 7963 mov w1, w2 7964 bl FlashReadPages 7965.L1090: 7966 add x22, x22, :lo12:.LANCHOR138 7967 mov w1, w20 7968 ldr x2, [x22, 8] 7969 b .L1100 7970.L1089: 7971 adrp x1, .LANCHOR23 7972 ldr x0, [x0, 8] 7973 ldrh w2, [x1, #:lo12:.LANCHOR23] 7974 mov w1, 255 7975 bl ftl_memset 7976 b .L1090 7977.L1086: 7978 ret 7979 .size FtlMapBlkWriteDump_data, .-FtlMapBlkWriteDump_data 7980 .section .text.FtlVpcTblFlush,"ax",@progbits 7981 .align 2 7982 .global FtlVpcTblFlush 7983 .type FtlVpcTblFlush, %function 7984FtlVpcTblFlush: 7985 stp x29, x30, [sp, -112]! 7986 adrp x1, .LANCHOR139 7987 mov w2, 19539 7988 add x29, sp, 0 7989 stp x25, x26, [sp, 64] 7990 adrp x25, .LANCHOR114 7991 stp x21, x22, [sp, 32] 7992 adrp x22, .LANCHOR106 7993 stp x27, x28, [sp, 80] 7994 adrp x21, .LANCHOR138 7995 ldr x27, [x25, #:lo12:.LANCHOR114] 7996 add x28, x21, :lo12:.LANCHOR138 7997 stp x19, x20, [sp, 16] 7998 movk w2, 0x4654, lsl 16 7999 stp x23, x24, [sp, 48] 8000 add x24, x1, :lo12:.LANCHOR139 8001 ldr x0, [x22, #:lo12:.LANCHOR106] 8002 adrp x23, .LANCHOR82 8003 ldrh w1, [x1, #:lo12:.LANCHOR139] 8004 adrp x26, .LANCHOR23 8005 stp x0, x27, [x28, 8] 8006 mov w20, 0 8007 strh w1, [x27, 2] 8008 mov w1, -3932 8009 strh w1, [x27] 8010 ldr w1, [x24, 8] 8011 stp w1, wzr, [x27, 4] 8012 adrp x1, .LANCHOR39 8013 add x19, x1, :lo12:.LANCHOR39 8014 str wzr, [x27, 12] 8015 str w2, [x1, #:lo12:.LANCHOR39] 8016 mov w1, 72 8017 movk w1, 0x5000, lsl 16 8018 str w1, [x19, 4] 8019 ldrh w1, [x24, 6] 8020 adrp x2, .LANCHOR51 8021 strh w1, [x19, 8] 8022 adrp x1, .LANCHOR10 8023 ldrh w1, [x1, #:lo12:.LANCHOR10] 8024 strb w1, [x19, 10] 8025 add x1, x2, :lo12:.LANCHOR51 8026 ldrh w2, [x2, #:lo12:.LANCHOR51] 8027 strh w2, [x19, 14] 8028 ldrh w2, [x1, 2] 8029 ldrb w3, [x1, 6] 8030 ldrb w1, [x1, 8] 8031 strb w1, [x19, 11] 8032 orr w2, w3, w2, lsl 6 8033 strh w2, [x19, 16] 8034 adrp x2, .LANCHOR52 8035 add x1, x2, :lo12:.LANCHOR52 8036 ldrh w2, [x2, #:lo12:.LANCHOR52] 8037 ldrb w3, [x1, 6] 8038 strh w2, [x19, 18] 8039 ldrh w2, [x1, 2] 8040 ldrb w1, [x1, 8] 8041 strb w1, [x19, 12] 8042 orr w2, w3, w2, lsl 6 8043 strh w2, [x19, 20] 8044 adrp x2, .LANCHOR53 8045 add x1, x2, :lo12:.LANCHOR53 8046 ldrh w2, [x2, #:lo12:.LANCHOR53] 8047 ldrb w3, [x1, 6] 8048 strh w2, [x19, 22] 8049 ldrh w2, [x1, 2] 8050 ldrb w1, [x1, 8] 8051 strb w1, [x19, 13] 8052 adrp x1, .LANCHOR90 8053 orr w2, w3, w2, lsl 6 8054 strh w2, [x19, 24] 8055 ldr w1, [x1, #:lo12:.LANCHOR90] 8056 str w1, [x19, 32] 8057 ldr w1, [x23, #:lo12:.LANCHOR82] 8058 str w1, [x19, 40] 8059 ldrh w2, [x26, #:lo12:.LANCHOR23] 8060 adrp x1, .LANCHOR83 8061 ldr w1, [x1, #:lo12:.LANCHOR83] 8062 str w1, [x19, 36] 8063 mov w1, 255 8064 bl ftl_memset 8065 ldr x0, [x28, 8] 8066 mov x1, x19 8067 mov w2, 48 8068 adrp x19, .LANCHOR5 8069 bl ftl_memcpy 8070 adrp x1, .LANCHOR42 8071 ldrh w2, [x19, #:lo12:.LANCHOR5] 8072 ldr x0, [x28, 8] 8073 ldr x1, [x1, #:lo12:.LANCHOR42] 8074 lsl w2, w2, 1 8075 add x0, x0, 48 8076 bl ftl_memcpy 8077 ldrh w0, [x19, #:lo12:.LANCHOR5] 8078 adrp x1, .LANCHOR1 8079 ldr x3, [x28, 8] 8080 mov x19, x28 8081 ldr x1, [x1, #:lo12:.LANCHOR1] 8082 mov x28, x24 8083 lsr w2, w0, 3 8084 ubfiz x0, x0, 1, 16 8085 add w2, w2, 4 8086 add x0, x0, 48 8087 and x0, x0, -4 8088 adrp x24, .LANCHOR20 8089 add x0, x3, x0 8090 bl ftl_memcpy 8091 mov w0, 0 8092 bl FtlUpdateVaildLpn 8093 mov w0, 65535 8094 add x24, x24, :lo12:.LANCHOR20 8095 str w0, [x29, 108] 8096 str x24, [x29, 96] 8097.L1102: 8098 ldrh w2, [x28, 2] 8099 ldrh w1, [x28] 8100 ldr x0, [x22, #:lo12:.LANCHOR106] 8101 str x0, [x19, 8] 8102 ldr x0, [x25, #:lo12:.LANCHOR114] 8103 str x0, [x19, 16] 8104 orr w0, w2, w1, lsl 10 8105 str w0, [x19, 4] 8106 ldrh w0, [x24] 8107 sub w0, w0, #1 8108 cmp w2, w0 8109 blt .L1103 8110 ldrh w0, [x28, 4] 8111 strh wzr, [x28, 2] 8112 strh w1, [x28, 4] 8113 str w0, [x29, 108] 8114 bl FtlFreeSysBlkQueueOut 8115 strh w0, [x28] 8116 ldr w1, [x23, #:lo12:.LANCHOR82] 8117 str w1, [x28, 8] 8118 add w2, w1, 1 8119 str w2, [x23, #:lo12:.LANCHOR82] 8120 ubfiz w2, w0, 10, 16 8121 str w2, [x19, 4] 8122 strh w0, [x27, 2] 8123 str w1, [x27, 4] 8124.L1103: 8125 ldrh w1, [x26, #:lo12:.LANCHOR23] 8126 ldr x0, [x22, #:lo12:.LANCHOR106] 8127 bl js_hash 8128 str w0, [x27, 12] 8129 mov w3, 1 8130 mov x0, x19 8131 mov w1, w3 8132 mov w2, w3 8133 bl FlashProgPages 8134 ldrh w0, [x28, 2] 8135 ldr w1, [x19] 8136 add w0, w0, 1 8137 and w0, w0, 65535 8138 strh w0, [x28, 2] 8139 cmn w1, #1 8140 bne .L1104 8141 cmp w0, 1 8142 bne .L1105 8143 adrp x1, .LANCHOR165 8144 adrp x0, .LC1 8145 mov w2, 1138 8146 add x1, x1, :lo12:.LANCHOR165 8147 add x0, x0, :lo12:.LC1 8148 bl printf 8149.L1105: 8150 ldrh w0, [x28, 2] 8151 cmp w0, 1 8152 bne .L1106 8153 ldr x0, [x29, 96] 8154 ldrh w0, [x0] 8155 sub w0, w0, #1 8156 strh w0, [x28, 2] 8157.L1106: 8158 add w20, w20, 1 8159 and w20, w20, 65535 8160 cmp w20, 3 8161 bls .L1102 8162 add x21, x21, :lo12:.LANCHOR138 8163 adrp x0, .LC35 8164 mov w2, w20 8165 add x0, x0, :lo12:.LC35 8166 ldr w1, [x21, 4] 8167 bl printf 8168.L1108: 8169 b .L1108 8170.L1104: 8171 cmp w0, 1 8172 beq .L1102 8173 cmp w1, 256 8174 beq .L1102 8175 ldr w1, [x29, 108] 8176 mov w0, 65535 8177 cmp w1, w0 8178 beq .L1109 8179 ldrh w0, [x29, 108] 8180 mov w1, 1 8181 bl FtlFreeSysBlkQueueIn 8182.L1109: 8183 ldp x19, x20, [sp, 16] 8184 mov w0, 0 8185 ldp x21, x22, [sp, 32] 8186 ldp x23, x24, [sp, 48] 8187 ldp x25, x26, [sp, 64] 8188 ldp x27, x28, [sp, 80] 8189 ldp x29, x30, [sp], 112 8190 ret 8191 .size FtlVpcTblFlush, .-FtlVpcTblFlush 8192 .section .text.FtlSysFlush,"ax",@progbits 8193 .align 2 8194 .global FtlSysFlush 8195 .type FtlSysFlush, %function 8196FtlSysFlush: 8197 stp x29, x30, [sp, -16]! 8198 add x29, sp, 0 8199 bl l2p_flush 8200 mov w0, 1 8201 bl FtlEctTblFlush 8202 bl FtlVpcTblFlush 8203 mov w0, 0 8204 ldp x29, x30, [sp], 16 8205 ret 8206 .size FtlSysFlush, .-FtlSysFlush 8207 .section .text.sftl_deinit,"ax",@progbits 8208 .align 2 8209 .global sftl_deinit 8210 .type sftl_deinit, %function 8211sftl_deinit: 8212 adrp x0, .LANCHOR166 8213 ldr w0, [x0, #:lo12:.LANCHOR166] 8214 cmp w0, 1 8215 bne .L1122 8216 stp x29, x30, [sp, -16]! 8217 add x29, sp, 0 8218 bl FtlSysFlush 8219 mov w0, 0 8220 ldp x29, x30, [sp], 16 8221 ret 8222.L1122: 8223 mov w0, 0 8224 ret 8225 .size sftl_deinit, .-sftl_deinit 8226 .section .text.FtlDiscard,"ax",@progbits 8227 .align 2 8228 .global FtlDiscard 8229 .type FtlDiscard, %function 8230FtlDiscard: 8231 stp x29, x30, [sp, -80]! 8232 add w2, w0, w1 8233 add x29, sp, 0 8234 stp x19, x20, [sp, 16] 8235 mov w19, w1 8236 adrp x1, .LANCHOR34 8237 stp x21, x22, [sp, 32] 8238 str x23, [sp, 48] 8239 ldr w1, [x1, #:lo12:.LANCHOR34] 8240 cmp w2, w1 8241 bhi .L1133 8242 cmp w19, 31 8243 bhi .L1127 8244.L1141: 8245 mov w0, 0 8246.L1125: 8247 ldp x19, x20, [sp, 16] 8248 ldp x21, x22, [sp, 32] 8249 ldr x23, [sp, 48] 8250 ldp x29, x30, [sp], 80 8251 ret 8252.L1127: 8253 adrp x21, .LANCHOR12 8254 ldrh w1, [x21, #:lo12:.LANCHOR12] 8255 udiv w20, w0, w1 8256 msub w0, w1, w20, w0 8257 ands w0, w0, 65535 8258 beq .L1128 8259 sub w1, w1, w0 8260 add w20, w20, 1 8261 cmp w1, w19 8262 csel w1, w1, w19, ls 8263 sub w19, w19, w1, uxth 8264.L1128: 8265 adrp x22, .LANCHOR167 8266 adrp x23, .LANCHOR86 8267 add x22, x22, :lo12:.LANCHOR167 8268 add x23, x23, :lo12:.LANCHOR86 8269 mov w0, -1 8270 str w0, [x29, 76] 8271.L1129: 8272 ldrh w0, [x21, #:lo12:.LANCHOR12] 8273 cmp w19, w0 8274 bcs .L1131 8275 adrp x0, .LANCHOR167 8276 ldr w1, [x0, #:lo12:.LANCHOR167] 8277 cmp w1, 32 8278 bls .L1141 8279 str wzr, [x0, #:lo12:.LANCHOR167] 8280 bl l2p_flush 8281 bl FtlVpcTblFlush 8282 b .L1141 8283.L1131: 8284 mov w2, 0 8285 add x1, x29, 72 8286 mov w0, w20 8287 bl log2phys 8288 ldr w0, [x29, 72] 8289 cmn w0, #1 8290 beq .L1130 8291 ldr w0, [x22] 8292 mov w2, 1 8293 add x1, x29, 76 8294 add w0, w0, 1 8295 str w0, [x22] 8296 ldr w0, [x23] 8297 add w0, w0, 1 8298 str w0, [x23] 8299 mov w0, w20 8300 bl log2phys 8301 ldr w0, [x29, 72] 8302 lsr w0, w0, 10 8303 bl P2V_block_in_plane 8304 bl decrement_vpc_count 8305.L1130: 8306 ldrh w0, [x21, #:lo12:.LANCHOR12] 8307 add w20, w20, 1 8308 sub w19, w19, w0 8309 b .L1129 8310.L1133: 8311 mov w0, -1 8312 b .L1125 8313 .size FtlDiscard, .-FtlDiscard 8314 .section .text.allocate_new_data_superblock,"ax",@progbits 8315 .align 2 8316 .global allocate_new_data_superblock 8317 .type allocate_new_data_superblock, %function 8318allocate_new_data_superblock: 8319 stp x29, x30, [sp, -48]! 8320 add x29, sp, 0 8321 stp x19, x20, [sp, 16] 8322 ldrh w19, [x0] 8323 str x21, [sp, 32] 8324 mov x21, x0 8325 adrp x0, .LANCHOR5 8326 ldrh w0, [x0, #:lo12:.LANCHOR5] 8327 cmp w0, w19 8328 bcs .L1143 8329 adrp x1, .LANCHOR168 8330 adrp x0, .LC1 8331 mov w2, 2760 8332 add x1, x1, :lo12:.LANCHOR168 8333 add x0, x0, :lo12:.LC1 8334 bl printf 8335.L1143: 8336 mov w0, 65535 8337 cmp w19, w0 8338 beq .L1144 8339 adrp x1, .LANCHOR42 8340 ubfiz x0, x19, 1, 16 8341 ldr x1, [x1, #:lo12:.LANCHOR42] 8342 ldrh w0, [x1, x0] 8343 cbz w0, .L1145 8344 mov w0, w19 8345 bl INSERT_DATA_LIST 8346.L1144: 8347 adrp x1, .LANCHOR131 8348 mov w0, 1 8349 strb w0, [x21, 8] 8350 mov w2, 65535 8351 ldrh w0, [x1, #:lo12:.LANCHOR131] 8352 mov x20, x1 8353 cmp w0, w2 8354 beq .L1146 8355 cmp w19, w0 8356 bne .L1147 8357 adrp x2, .LANCHOR42 8358 ubfiz x1, x0, 1, 16 8359 ldr x2, [x2, #:lo12:.LANCHOR42] 8360 ldrh w1, [x2, x1] 8361 cbz w1, .L1148 8362.L1147: 8363 bl update_vpc_list 8364.L1148: 8365 mov w0, -1 8366 strh w0, [x20, #:lo12:.LANCHOR131] 8367.L1146: 8368 mov x0, x21 8369 bl allocate_data_superblock 8370 bl l2p_flush 8371 mov w0, 0 8372 bl FtlEctTblFlush 8373 bl FtlVpcTblFlush 8374 ldr x21, [sp, 32] 8375 mov w0, 0 8376 ldp x19, x20, [sp, 16] 8377 ldp x29, x30, [sp], 48 8378 ret 8379.L1145: 8380 mov w0, w19 8381 bl INSERT_FREE_LIST 8382 b .L1144 8383 .size allocate_new_data_superblock, .-allocate_new_data_superblock 8384 .section .text.FtlProgPages,"ax",@progbits 8385 .align 2 8386 .global FtlProgPages 8387 .type FtlProgPages, %function 8388FtlProgPages: 8389 stp x29, x30, [sp, -96]! 8390 mov w2, 0 8391 add x29, sp, 0 8392 stp x19, x20, [sp, 16] 8393 mov x19, x3 8394 stp x23, x24, [sp, 48] 8395 add x20, x0, 4 8396 stp x21, x22, [sp, 32] 8397 mov w21, w1 8398 str x25, [sp, 64] 8399 ubfiz x21, x21, 5, 32 8400 add x21, x21, 4 8401 adrp x24, .LANCHOR19 8402 ldrb w3, [x3, 9] 8403 adrp x23, .LANCHOR135 8404 add x21, x0, x21 8405 add x24, x24, :lo12:.LANCHOR19 8406 add x23, x23, :lo12:.LANCHOR135 8407 bl FlashProgPages 8408.L1154: 8409 cmp x20, x21 8410 beq .L1161 8411 sub x22, x20, #4 8412 adrp x25, .LANCHOR42 8413 b .L1162 8414.L1157: 8415 ldr w0, [x20] 8416 lsr w0, w0, 10 8417 bl P2V_block_in_plane 8418 ldrh w1, [x19] 8419 cmp w1, w0, uxth 8420 bne .L1155 8421 ldr x2, [x25, #:lo12:.LANCHOR42] 8422 ubfiz x1, x1, 1, 16 8423 ldrh w3, [x19, 4] 8424 ldrh w0, [x2, x1] 8425 sub w0, w0, w3 8426 strh w0, [x2, x1] 8427 strb wzr, [x19, 6] 8428 ldrh w0, [x24] 8429 strh w0, [x19, 2] 8430 strh wzr, [x19, 4] 8431.L1155: 8432 ldrh w0, [x19, 4] 8433 cbnz w0, .L1156 8434 mov x0, x19 8435 bl allocate_new_data_superblock 8436.L1156: 8437 ldr w0, [x23, 96] 8438 add w0, w0, 1 8439 str w0, [x23, 96] 8440 ldr w0, [x20] 8441 lsr w0, w0, 10 8442 bl FtlGcMarkBadPhyBlk 8443 mov x0, x19 8444 bl get_new_active_ppa 8445 str w0, [x20] 8446 mov w2, 0 8447 str w0, [x29, 92] 8448 mov w1, 1 8449 ldrb w3, [x19, 9] 8450 mov x0, x22 8451 bl FlashProgPages 8452.L1162: 8453 ldr w0, [x20, -4] 8454 cmn w0, #1 8455 beq .L1157 8456 adrp x0, .LANCHOR3 8457 ldrb w1, [x19, 6] 8458 ldrh w0, [x0, #:lo12:.LANCHOR3] 8459 cmp w1, w0 8460 bcc .L1158 8461 adrp x1, .LANCHOR169 8462 adrp x0, .LC1 8463 mov w2, 960 8464 add x1, x1, :lo12:.LANCHOR169 8465 add x0, x0, :lo12:.LC1 8466 bl printf 8467.L1158: 8468 add x1, x29, 96 8469 ldr w0, [x22, 4] 8470 mov w2, 1 8471 str w0, [x1, -4]! 8472 ldr w0, [x22, 24] 8473 bl log2phys 8474 ldr x0, [x22, 16] 8475 ldr w3, [x0, 12] 8476 lsr w0, w3, 10 8477 bl P2V_block_in_plane 8478 and w1, w0, 65535 8479 mov w22, w1 8480 cmn w3, #1 8481 beq .L1159 8482 adrp x2, .LANCHOR42 8483 ubfiz x0, x1, 1, 16 8484 ldr x2, [x2, #:lo12:.LANCHOR42] 8485 ldrh w0, [x2, x0] 8486 cbnz w0, .L1160 8487 adrp x0, .LC36 8488 mov w2, 0 8489 add x0, x0, :lo12:.LC36 8490 bl printf 8491.L1160: 8492 mov w0, w22 8493 bl decrement_vpc_count 8494.L1159: 8495 add x20, x20, 32 8496 b .L1154 8497.L1161: 8498 adrp x0, .LANCHOR3 8499 ldrb w1, [x19, 6] 8500 ldrh w0, [x0, #:lo12:.LANCHOR3] 8501 cmp w1, w0 8502 bcc .L1153 8503 adrp x1, .LANCHOR169 8504 adrp x0, .LC1 8505 mov w2, 975 8506 add x1, x1, :lo12:.LANCHOR169 8507 add x0, x0, :lo12:.LC1 8508 bl printf 8509.L1153: 8510 ldp x19, x20, [sp, 16] 8511 ldp x21, x22, [sp, 32] 8512 ldp x23, x24, [sp, 48] 8513 ldr x25, [sp, 64] 8514 ldp x29, x30, [sp], 96 8515 ret 8516 .size FtlProgPages, .-FtlProgPages 8517 .section .text.FtlGcFreeTempBlock,"ax",@progbits 8518 .align 2 8519 .global FtlGcFreeTempBlock 8520 .type FtlGcFreeTempBlock, %function 8521FtlGcFreeTempBlock: 8522 stp x29, x30, [sp, -112]! 8523 mov w1, 65535 8524 add x29, sp, 0 8525 stp x19, x20, [sp, 16] 8526 adrp x19, .LANCHOR53 8527 stp x21, x22, [sp, 32] 8528 adrp x21, .LANCHOR133 8529 ldrh w20, [x19, #:lo12:.LANCHOR53] 8530 stp x23, x24, [sp, 48] 8531 stp x25, x26, [sp, 64] 8532 cmp w20, w1 8533 str x27, [sp, 80] 8534 beq .L1169 8535 adrp x1, .LANCHOR19 8536 add x0, x19, :lo12:.LANCHOR53 8537 ldrh w1, [x1, #:lo12:.LANCHOR19] 8538 bl FtlGcScanTempBlk 8539 str w0, [x29, 108] 8540 cmn w0, #1 8541 beq .L1169 8542 adrp x0, .LANCHOR43 8543 ubfiz x20, x20, 1, 16 8544 ldr x1, [x0, #:lo12:.LANCHOR43] 8545 ldrh w0, [x1, x20] 8546 cmp w0, 4 8547 bls .L1170 8548 sub w0, w0, #5 8549 strh w0, [x1, x20] 8550 mov w0, 1 8551 bl FtlEctTblFlush 8552.L1170: 8553 ldr w0, [x21, #:lo12:.LANCHOR133] 8554 cbnz w0, .L1171 8555 adrp x0, .LANCHOR135 8556 add x0, x0, :lo12:.LANCHOR135 8557 ldr w1, [x0, 96] 8558 add w1, w1, 1 8559 str w1, [x0, 96] 8560 ldr w0, [x29, 108] 8561 lsr w0, w0, 10 8562 bl FtlBbmMapBadBlock 8563 bl FtlBbmTblFlush 8564.L1171: 8565 str wzr, [x21, #:lo12:.LANCHOR133] 8566 mov w0, 1 8567.L1168: 8568 ldp x19, x20, [sp, 16] 8569 ldp x21, x22, [sp, 32] 8570 ldp x23, x24, [sp, 48] 8571 ldp x25, x26, [sp, 64] 8572 ldr x27, [sp, 80] 8573 ldp x29, x30, [sp], 112 8574 ret 8575.L1169: 8576 ldrh w2, [x19, #:lo12:.LANCHOR53] 8577 mov w1, 65535 8578 str wzr, [x21, #:lo12:.LANCHOR133] 8579 add x0, x19, :lo12:.LANCHOR53 8580 cmp w2, w1 8581 bne .L1173 8582.L1188: 8583 mov w0, 0 8584 b .L1168 8585.L1173: 8586 ldrb w1, [x0, 7] 8587 adrp x0, .LANCHOR19 8588 adrp x20, .LANCHOR70 8589 mov x21, x0 8590 ldrh w3, [x0, #:lo12:.LANCHOR19] 8591 ldrh w2, [x20, #:lo12:.LANCHOR70] 8592 mul w1, w1, w3 8593 cmp w2, w1 8594 beq .L1174 8595 adrp x1, .LANCHOR170 8596 adrp x0, .LC1 8597 mov w2, 162 8598 add x1, x1, :lo12:.LANCHOR170 8599 add x0, x0, :lo12:.LC1 8600 bl printf 8601.L1174: 8602 add x0, x19, :lo12:.LANCHOR53 8603 adrp x23, .LANCHOR42 8604 ldrh w3, [x21, #:lo12:.LANCHOR19] 8605 adrp x25, .LANCHOR152 8606 ldrh w2, [x19, #:lo12:.LANCHOR53] 8607 adrp x26, .LANCHOR170 8608 ldrb w0, [x0, 7] 8609 add x25, x25, :lo12:.LANCHOR152 8610 ldr x1, [x23, #:lo12:.LANCHOR42] 8611 add x26, x26, :lo12:.LANCHOR170 8612 mov w21, 0 8613 mul w0, w0, w3 8614 strh w0, [x1, x2, lsl 1] 8615 adrp x1, .LANCHOR84 8616 ldrh w0, [x20, #:lo12:.LANCHOR70] 8617 ldr w2, [x1, #:lo12:.LANCHOR84] 8618 add w0, w0, w2 8619 str w0, [x1, #:lo12:.LANCHOR84] 8620.L1175: 8621 ldrh w0, [x20, #:lo12:.LANCHOR70] 8622 cmp w0, w21 8623 bhi .L1179 8624 mov w0, -1 8625 bl decrement_vpc_count 8626 ldrh w0, [x19, #:lo12:.LANCHOR53] 8627 ldr x2, [x23, #:lo12:.LANCHOR42] 8628 ubfiz x1, x0, 1, 16 8629 ldrh w1, [x2, x1] 8630 cbz w1, .L1180 8631 bl INSERT_DATA_LIST 8632.L1181: 8633 adrp x0, .LANCHOR68 8634 mov w21, -1 8635 strh wzr, [x20, #:lo12:.LANCHOR70] 8636 strh w21, [x19, #:lo12:.LANCHOR53] 8637 strh wzr, [x0, #:lo12:.LANCHOR68] 8638 bl l2p_flush 8639 bl FtlVpcTblFlush 8640 adrp x0, .LANCHOR144 8641 strh w21, [x0, #:lo12:.LANCHOR144] 8642 adrp x0, .LANCHOR48 8643 ldrh w1, [x0, #:lo12:.LANCHOR48] 8644 adrp x0, .LANCHOR171 8645 ldrh w0, [x0, #:lo12:.LANCHOR171] 8646 add w0, w0, w0, lsl 1 8647 cmp w1, w0, lsr 2 8648 ble .L1188 8649 adrp x0, .LANCHOR100 8650 mov w1, 20 8651 strh w1, [x0, #:lo12:.LANCHOR100] 8652 b .L1188 8653.L1179: 8654 adrp x0, .LANCHOR71 8655 mov w24, 12 8656 ldr x27, [x0, #:lo12:.LANCHOR71] 8657 umull x24, w21, w24 8658 ldr w0, [x25] 8659 add x22, x27, x24 8660 ldr w1, [x22, 8] 8661 cmp w1, w0 8662 bcc .L1176 8663 adrp x0, .LC1 8664 mov w2, 168 8665 mov x1, x26 8666 add x0, x0, :lo12:.LC1 8667 bl printf 8668.L1176: 8669 ldr w0, [x22, 8] 8670 add x1, x29, 108 8671 mov w2, 0 8672 bl log2phys 8673 ldr w0, [x27, x24] 8674 ldr w1, [x29, 108] 8675 cmp w0, w1 8676 bne .L1177 8677 lsr w0, w0, 10 8678 bl P2V_block_in_plane 8679 mov w24, w0 8680 ldr w0, [x22, 8] 8681 mov w2, 1 8682 add x1, x22, 4 8683 bl log2phys 8684 mov w0, w24 8685.L1187: 8686 bl decrement_vpc_count 8687.L1178: 8688 add w21, w21, 1 8689 and w21, w21, 65535 8690 b .L1175 8691.L1177: 8692 ldr w0, [x22, 4] 8693 cmp w1, w0 8694 beq .L1178 8695 ldrh w0, [x19, #:lo12:.LANCHOR53] 8696 b .L1187 8697.L1180: 8698 bl INSERT_FREE_LIST 8699 b .L1181 8700 .size FtlGcFreeTempBlock, .-FtlGcFreeTempBlock 8701 .section .text.FtlGcPageRecovery,"ax",@progbits 8702 .align 2 8703 .global FtlGcPageRecovery 8704 .type FtlGcPageRecovery, %function 8705FtlGcPageRecovery: 8706 stp x29, x30, [sp, -32]! 8707 add x29, sp, 0 8708 stp x19, x20, [sp, 16] 8709 adrp x20, .LANCHOR19 8710 adrp x19, .LANCHOR53 8711 add x19, x19, :lo12:.LANCHOR53 8712 ldrh w1, [x20, #:lo12:.LANCHOR19] 8713 mov x0, x19 8714 bl FtlGcScanTempBlk 8715 ldrh w1, [x19, 2] 8716 ldrh w0, [x20, #:lo12:.LANCHOR19] 8717 cmp w1, w0 8718 bcc .L1189 8719 adrp x0, .LANCHOR129 8720 add x0, x0, :lo12:.LANCHOR129 8721 bl FtlMapBlkWriteDump_data 8722 mov w0, 0 8723 bl FtlGcFreeTempBlock 8724 adrp x0, .LANCHOR133 8725 str wzr, [x0, #:lo12:.LANCHOR133] 8726.L1189: 8727 ldp x19, x20, [sp, 16] 8728 ldp x29, x30, [sp], 32 8729 ret 8730 .size FtlGcPageRecovery, .-FtlGcPageRecovery 8731 .section .text.FtlPowerLostRecovery,"ax",@progbits 8732 .align 2 8733 .global FtlPowerLostRecovery 8734 .type FtlPowerLostRecovery, %function 8735FtlPowerLostRecovery: 8736 stp x29, x30, [sp, -32]! 8737 adrp x0, .LANCHOR157 8738 add x29, sp, 0 8739 str x19, [sp, 16] 8740 adrp x19, .LANCHOR51 8741 add x19, x19, :lo12:.LANCHOR51 8742 str wzr, [x0, #:lo12:.LANCHOR157] 8743 mov x0, x19 8744 bl FtlRecoverySuperblock 8745 mov x0, x19 8746 adrp x19, .LANCHOR52 8747 bl FtlSlcSuperblockCheck 8748 add x19, x19, :lo12:.LANCHOR52 8749 mov x0, x19 8750 bl FtlRecoverySuperblock 8751 mov x0, x19 8752 bl FtlSlcSuperblockCheck 8753 bl FtlGcPageRecovery 8754 mov w0, -1 8755 bl decrement_vpc_count 8756 mov w0, 0 8757 ldr x19, [sp, 16] 8758 ldp x29, x30, [sp], 32 8759 ret 8760 .size FtlPowerLostRecovery, .-FtlPowerLostRecovery 8761 .section .text.Ftl_gc_temp_data_write_back,"ax",@progbits 8762 .align 2 8763 .global Ftl_gc_temp_data_write_back 8764 .type Ftl_gc_temp_data_write_back, %function 8765Ftl_gc_temp_data_write_back: 8766 stp x29, x30, [sp, -32]! 8767 mov w3, 0 8768 mov w2, 0 8769 add x29, sp, 0 8770 stp x19, x20, [sp, 16] 8771 adrp x19, .LANCHOR62 8772 adrp x20, .LANCHOR104 8773 ldr w1, [x19, #:lo12:.LANCHOR62] 8774 add x19, x19, :lo12:.LANCHOR62 8775 ldr x0, [x20, #:lo12:.LANCHOR104] 8776 bl FlashProgPages 8777 mov w11, 0 8778.L1195: 8779 ldr w1, [x19] 8780 cmp w11, w1 8781 bcc .L1198 8782 ldr x0, [x20, #:lo12:.LANCHOR104] 8783 bl FtlGcBufFree 8784 str wzr, [x19] 8785 adrp x0, .LANCHOR53+4 8786 ldrh w0, [x0, #:lo12:.LANCHOR53+4] 8787 cbnz w0, .L1199 8788 mov w0, 1 8789 bl FtlGcFreeTempBlock 8790 b .L1201 8791.L1198: 8792 ldr x2, [x20, #:lo12:.LANCHOR104] 8793 ubfiz x0, x11, 5, 16 8794 add x1, x2, x0 8795 ldr w2, [x2, x0] 8796 cmn w2, #1 8797 bne .L1196 8798 adrp x0, .LANCHOR53 8799 adrp x3, .LANCHOR42 8800 ldrh w4, [x0, #:lo12:.LANCHOR53] 8801 ldr x3, [x3, #:lo12:.LANCHOR42] 8802 strh wzr, [x3, x4, lsl 1] 8803 strh w2, [x0, #:lo12:.LANCHOR53] 8804 adrp x0, .LANCHOR135 8805 add x0, x0, :lo12:.LANCHOR135 8806 ldr w2, [x0, 96] 8807 add w2, w2, 1 8808 str w2, [x0, 96] 8809 ldr w0, [x1, 4] 8810 lsr w0, w0, 10 8811 bl FtlBbmMapBadBlock 8812 bl FtlBbmTblFlush 8813 bl FtlGcPageVarInit 8814.L1201: 8815 mov w0, 1 8816.L1194: 8817 ldp x19, x20, [sp, 16] 8818 ldp x29, x30, [sp], 32 8819 ret 8820.L1196: 8821 ldr x0, [x1, 16] 8822 ldr w1, [x1, 4] 8823 ldp w2, w0, [x0, 8] 8824 bl FtlGcUpdatePage 8825 add w11, w11, 1 8826 and w11, w11, 65535 8827 b .L1195 8828.L1199: 8829 mov w0, 0 8830 b .L1194 8831 .size Ftl_gc_temp_data_write_back, .-Ftl_gc_temp_data_write_back 8832 .section .text.Ftl_get_new_temp_ppa,"ax",@progbits 8833 .align 2 8834 .global Ftl_get_new_temp_ppa 8835 .type Ftl_get_new_temp_ppa, %function 8836Ftl_get_new_temp_ppa: 8837 stp x29, x30, [sp, -32]! 8838 adrp x0, .LANCHOR53 8839 mov w2, 65535 8840 add x29, sp, 0 8841 str x19, [sp, 16] 8842 mov x19, x0 8843 ldrh w3, [x0, #:lo12:.LANCHOR53] 8844 cmp w3, w2 8845 beq .L1203 8846 add x1, x0, :lo12:.LANCHOR53 8847 ldrh w0, [x1, 4] 8848 cbnz w0, .L1204 8849.L1203: 8850 mov w0, 0 8851 bl FtlGcFreeTempBlock 8852 add x0, x19, :lo12:.LANCHOR53 8853 strb wzr, [x0, 8] 8854 bl allocate_data_superblock 8855 adrp x0, .LANCHOR68 8856 strh wzr, [x0, #:lo12:.LANCHOR68] 8857 adrp x0, .LANCHOR70 8858 strh wzr, [x0, #:lo12:.LANCHOR70] 8859 bl l2p_flush 8860 mov w0, 0 8861 bl FtlEctTblFlush 8862 bl FtlVpcTblFlush 8863.L1204: 8864 add x0, x19, :lo12:.LANCHOR53 8865 ldr x19, [sp, 16] 8866 ldp x29, x30, [sp], 32 8867 b get_new_active_ppa 8868 .size Ftl_get_new_temp_ppa, .-Ftl_get_new_temp_ppa 8869 .section .text.rk_ftl_garbage_collect,"ax",@progbits 8870 .align 2 8871 .global rk_ftl_garbage_collect 8872 .type rk_ftl_garbage_collect, %function 8873rk_ftl_garbage_collect: 8874 stp x29, x30, [sp, -176]! 8875 add x29, sp, 0 8876 stp x21, x22, [sp, 32] 8877 adrp x21, .LANCHOR94 8878 stp x19, x20, [sp, 16] 8879 ldr w1, [x21, #:lo12:.LANCHOR94] 8880 stp x23, x24, [sp, 48] 8881 stp x25, x26, [sp, 64] 8882 stp x27, x28, [sp, 80] 8883 cbnz w1, .L1258 8884 adrp x1, .LANCHOR45 8885 ldrh w1, [x1, #:lo12:.LANCHOR45] 8886 cmp w1, 47 8887 bls .L1258 8888 adrp x1, .LANCHOR73 8889 mov w4, 65535 8890 ldrh w3, [x1, #:lo12:.LANCHOR73] 8891 cmp w3, w4 8892 beq .L1208 8893 adrp x2, .LANCHOR72 8894 ldrh w5, [x2, #:lo12:.LANCHOR72] 8895 cmp w5, w4 8896 bne .L1208 8897 strh w3, [x2, #:lo12:.LANCHOR72] 8898 mov w2, -1 8899 strh w2, [x1, #:lo12:.LANCHOR73] 8900.L1208: 8901 cbnz w0, .L1259 8902 adrp x1, .LANCHOR48 8903 ldrh w1, [x1, #:lo12:.LANCHOR48] 8904 cmp w1, 24 8905 bhi .L1260 8906 adrp x2, .LANCHOR19 8907 cmp w1, 16 8908 ldrh w20, [x2, #:lo12:.LANCHOR19] 8909 bls .L1211 8910 lsr w20, w20, 5 8911.L1210: 8912 adrp x2, .LANCHOR100 8913 ldrh w3, [x2, #:lo12:.LANCHOR100] 8914 cmp w3, w1 8915 mov x3, x2 8916 bcs .L1214 8917 adrp x1, .LANCHOR53 8918 mov w4, 65535 8919 ldrh w1, [x1, #:lo12:.LANCHOR53] 8920 cmp w1, w4 8921 bne .L1215 8922 adrp x4, .LANCHOR72 8923 ldrh w4, [x4, #:lo12:.LANCHOR72] 8924 cmp w4, w1 8925 bne .L1215 8926 adrp x0, .LANCHOR172 8927 ldrh w0, [x0, #:lo12:.LANCHOR172] 8928 cbnz w0, .L1216 8929 adrp x1, .LANCHOR152 8930 adrp x4, .LANCHOR59 8931 ldr w1, [x1, #:lo12:.LANCHOR152] 8932 ldr w4, [x4, #:lo12:.LANCHOR59] 8933 add w1, w1, w1, lsl 1 8934 cmp w4, w1, lsr 2 8935 bcs .L1217 8936.L1216: 8937 adrp x1, .LANCHOR171 8938 ldrh w1, [x1, #:lo12:.LANCHOR171] 8939 add w1, w1, w1, lsl 1 8940 asr w1, w1, 2 8941 strh w1, [x3, #:lo12:.LANCHOR100] 8942.L1218: 8943 adrp x1, .LANCHOR95 8944 str wzr, [x1, #:lo12:.LANCHOR95] 8945.L1206: 8946 ldp x19, x20, [sp, 16] 8947 ldp x21, x22, [sp, 32] 8948 ldp x23, x24, [sp, 48] 8949 ldp x25, x26, [sp, 64] 8950 ldp x27, x28, [sp, 80] 8951 ldp x29, x30, [sp], 176 8952 ret 8953.L1211: 8954 cmp w1, 12 8955 bls .L1212 8956 lsr w20, w20, 4 8957 b .L1210 8958.L1212: 8959 cmp w1, 8 8960 bls .L1210 8961 lsr w20, w20, 2 8962 b .L1210 8963.L1260: 8964 mov w20, 1 8965 b .L1210 8966.L1217: 8967 mov w1, 18 8968 strh w1, [x2, #:lo12:.LANCHOR100] 8969 b .L1218 8970.L1215: 8971 adrp x1, .LANCHOR171 8972 ldrh w1, [x1, #:lo12:.LANCHOR171] 8973 add w1, w1, w1, lsl 1 8974 asr w1, w1, 2 8975 strh w1, [x3, #:lo12:.LANCHOR100] 8976.L1214: 8977 adrp x1, .LANCHOR74 8978 ldrh w1, [x1, #:lo12:.LANCHOR74] 8979 cbz w1, .L1209 8980 add w20, w20, 32 8981 and w20, w20, 65535 8982.L1209: 8983 adrp x19, .LANCHOR144 8984 str w0, [x29, 152] 8985 mov w0, 65535 8986 ldrh w2, [x19, #:lo12:.LANCHOR144] 8987 cmp w2, w0 8988 bne .L1221 8989 adrp x0, .LANCHOR72 8990 ldrh w1, [x0, #:lo12:.LANCHOR72] 8991 cmp w1, w2 8992 beq .L1222 8993 adrp x2, .LANCHOR42 8994 ubfiz x1, x1, 1, 16 8995 ldr x2, [x2, #:lo12:.LANCHOR42] 8996 ldrh w1, [x2, x1] 8997 cbnz w1, .L1223 8998 mov w1, -1 8999 strh w1, [x0, #:lo12:.LANCHOR72] 9000.L1223: 9001 ldrh w1, [x0, #:lo12:.LANCHOR72] 9002 strh w1, [x19, #:lo12:.LANCHOR144] 9003 mov w1, -1 9004 strh w1, [x0, #:lo12:.LANCHOR72] 9005.L1222: 9006 add x0, x19, :lo12:.LANCHOR144 9007 mov w1, 65535 9008 strb wzr, [x0, 8] 9009 ldrh w0, [x19, #:lo12:.LANCHOR144] 9010 cmp w0, w1 9011 beq .L1221 9012 bl IsBlkInGcList 9013 cbz w0, .L1225 9014 mov w0, -1 9015 strh w0, [x19, #:lo12:.LANCHOR144] 9016.L1225: 9017 ldrh w1, [x19, #:lo12:.LANCHOR144] 9018 mov w0, 65535 9019 add x22, x19, :lo12:.LANCHOR144 9020 cmp w1, w0 9021 beq .L1221 9022 mov x0, x22 9023 bl make_superblock 9024 adrp x0, .LANCHOR173 9025 ldrh w1, [x19, #:lo12:.LANCHOR144] 9026 strh wzr, [x22, 2] 9027 strh wzr, [x0, #:lo12:.LANCHOR173] 9028 adrp x0, .LANCHOR42 9029 strb wzr, [x22, 6] 9030 ldr x0, [x0, #:lo12:.LANCHOR42] 9031 ldrh w1, [x0, x1, lsl 1] 9032 adrp x0, .LANCHOR174 9033 strh w1, [x0, #:lo12:.LANCHOR174] 9034.L1221: 9035 adrp x1, .LANCHOR51 9036 ldrh w0, [x19, #:lo12:.LANCHOR144] 9037 str x1, [x29, 128] 9038 ldrh w2, [x1, #:lo12:.LANCHOR51] 9039 cmp w2, w0 9040 beq .L1226 9041 adrp x1, .LANCHOR52 9042 ldrh w1, [x1, #:lo12:.LANCHOR52] 9043 cmp w1, w0 9044 bne .L1227 9045.L1226: 9046 mov w0, -1 9047 strh w0, [x19, #:lo12:.LANCHOR144] 9048.L1227: 9049 adrp x25, .LANCHOR102 9050 add x26, x25, :lo12:.LANCHOR102 9051.L1256: 9052 ldrh w1, [x19, #:lo12:.LANCHOR144] 9053 mov w0, 65535 9054 cmp w1, w0 9055 bne .L1228 9056 adrp x0, .LANCHOR95 9057 adrp x22, .LANCHOR19 9058 add x22, x22, :lo12:.LANCHOR19 9059 str wzr, [x0, #:lo12:.LANCHOR95] 9060.L1229: 9061 ldrh w5, [x25, #:lo12:.LANCHOR102] 9062 add x7, x25, :lo12:.LANCHOR102 9063 mov w0, w5 9064 bl List_get_gc_head_node 9065 and w6, w0, 65535 9066 strh w6, [x19, #:lo12:.LANCHOR144] 9067 mov w0, 65535 9068 cmp w6, w0 9069 bne .L1230 9070 strh wzr, [x7] 9071 mov w0, 8 9072 b .L1206 9073.L1259: 9074 mov w20, 1 9075 b .L1209 9076.L1230: 9077 mov w0, w6 9078 bl IsBlkInGcList 9079 add w5, w5, 1 9080 cbz w0, .L1231 9081 strh w5, [x25, #:lo12:.LANCHOR102] 9082 b .L1229 9083.L1231: 9084 adrp x23, .LANCHOR42 9085 adrp x4, .LANCHOR3 9086 ldrh w0, [x22] 9087 ubfiz x1, x6, 1, 16 9088 ldr x2, [x23, #:lo12:.LANCHOR42] 9089 and w5, w5, 65535 9090 ldrh w4, [x4, #:lo12:.LANCHOR3] 9091 strh w5, [x25, #:lo12:.LANCHOR102] 9092 ldrh w3, [x2, x1] 9093 mul w0, w0, w4 9094 cmp w3, w0, asr 1 9095 bgt .L1233 9096 cmp w5, 48 9097 bls .L1234 9098 cmp w3, 8 9099 bls .L1234 9100 adrp x3, .LANCHOR68 9101 ldrh w3, [x3, #:lo12:.LANCHOR68] 9102 cmp w3, 35 9103 bhi .L1234 9104.L1233: 9105 strh wzr, [x26] 9106.L1234: 9107 ldrh w1, [x2, x1] 9108 cmp w0, w1 9109 bgt .L1235 9110 ldrh w0, [x26] 9111 cmp w0, 3 9112 bhi .L1235 9113 mov w0, -1 9114 strh wzr, [x26] 9115 strh w0, [x19, #:lo12:.LANCHOR144] 9116.L1286: 9117 adrp x0, .LANCHOR172 9118 ldrh w0, [x0, #:lo12:.LANCHOR172] 9119 b .L1206 9120.L1235: 9121 cbnz w1, .L1236 9122 mov w0, -1 9123 bl decrement_vpc_count 9124 ldrh w0, [x26] 9125 add w0, w0, 1 9126 strh w0, [x26] 9127 b .L1229 9128.L1236: 9129 add x0, x19, :lo12:.LANCHOR144 9130 strb wzr, [x0, 8] 9131 ldr x0, [x29, 128] 9132 ldrh w0, [x0, #:lo12:.LANCHOR51] 9133 cmp w0, w6 9134 bne .L1237 9135 adrp x1, .LANCHOR175 9136 adrp x0, .LC1 9137 mov w2, 700 9138 add x1, x1, :lo12:.LANCHOR175 9139 add x0, x0, :lo12:.LC1 9140 bl printf 9141.L1237: 9142 adrp x0, .LANCHOR52 9143 ldrh w1, [x19, #:lo12:.LANCHOR144] 9144 ldrh w0, [x0, #:lo12:.LANCHOR52] 9145 cmp w1, w0 9146 bne .L1238 9147 adrp x1, .LANCHOR175 9148 adrp x0, .LC1 9149 mov w2, 701 9150 add x1, x1, :lo12:.LANCHOR175 9151 add x0, x0, :lo12:.LC1 9152 bl printf 9153.L1238: 9154 adrp x0, .LANCHOR53 9155 ldrh w1, [x19, #:lo12:.LANCHOR144] 9156 ldrh w0, [x0, #:lo12:.LANCHOR53] 9157 cmp w1, w0 9158 bne .L1239 9159 adrp x1, .LANCHOR175 9160 adrp x0, .LC1 9161 mov w2, 702 9162 add x1, x1, :lo12:.LANCHOR175 9163 add x0, x0, :lo12:.LC1 9164 bl printf 9165.L1239: 9166 add x22, x19, :lo12:.LANCHOR144 9167 mov x0, x22 9168 bl make_superblock 9169 adrp x0, .LANCHOR173 9170 ldrh w1, [x19, #:lo12:.LANCHOR144] 9171 strh wzr, [x0, #:lo12:.LANCHOR173] 9172 ldr x0, [x23, #:lo12:.LANCHOR42] 9173 ldrh w1, [x0, x1, lsl 1] 9174 adrp x0, .LANCHOR174 9175 strh wzr, [x22, 2] 9176 strh w1, [x0, #:lo12:.LANCHOR174] 9177 strb wzr, [x22, 6] 9178.L1228: 9179 mov w0, 1 9180 str w0, [x21, #:lo12:.LANCHOR94] 9181 adrp x0, .LANCHOR19 9182 str x0, [x29, 120] 9183 ldrh w1, [x0, #:lo12:.LANCHOR19] 9184 ldr w0, [x29, 152] 9185 str w1, [x29, 156] 9186 cbz w0, .L1240 9187 adrp x0, .LANCHOR3 9188 ldrh w2, [x19, #:lo12:.LANCHOR144] 9189 ldrh w0, [x0, #:lo12:.LANCHOR3] 9190 mul w0, w0, w1 9191 adrp x1, .LANCHOR42 9192 ldr x1, [x1, #:lo12:.LANCHOR42] 9193 ldrh w1, [x1, x2, lsl 1] 9194 sub w0, w0, w1 9195 mov w1, 4 9196 sdiv w0, w0, w1 9197 add w20, w20, w0 9198 and w20, w20, 65535 9199.L1240: 9200 add x0, x19, :lo12:.LANCHOR144 9201 ldr w2, [x29, 156] 9202 ldrh w0, [x0, 2] 9203 add w1, w0, w20 9204 cmp w1, w2 9205 ble .L1241 9206 sub w20, w2, w0 9207 and w20, w20, 65535 9208.L1241: 9209 adrp x0, .LANCHOR173 9210 mov w28, 0 9211 add x0, x0, :lo12:.LANCHOR173 9212 str x0, [x29, 144] 9213.L1242: 9214 cmp w20, w28, uxth 9215 bls .L1250 9216 add x1, x19, :lo12:.LANCHOR144 9217 adrp x0, .LANCHOR3 9218 adrp x23, .LANCHOR66 9219 add x1, x1, 16 9220 ldrh w7, [x0, #:lo12:.LANCHOR3] 9221 mov w22, 0 9222 ldrh w4, [x1, -14] 9223 mov w2, 0 9224 ldr x0, [x23, #:lo12:.LANCHOR66] 9225 mov w6, 65535 9226 add w4, w4, w28 9227 b .L1251 9228.L1244: 9229 ldrh w3, [x1] 9230 cmp w3, w6 9231 beq .L1243 9232 ubfiz x5, x22, 5, 16 9233 add w22, w22, 1 9234 add x5, x0, x5 9235 and w22, w22, 65535 9236 orr w3, w4, w3, lsl 10 9237 str w3, [x5, 4] 9238.L1243: 9239 add w2, w2, 1 9240 add x1, x1, 2 9241 and w2, w2, 65535 9242.L1251: 9243 cmp w2, w7 9244 bne .L1244 9245 add x1, x19, :lo12:.LANCHOR144 9246 adrp x24, .LANCHOR62 9247 add x24, x24, :lo12:.LANCHOR62 9248 ldrb w2, [x1, 8] 9249 mov w1, w22 9250 bl FlashReadPages 9251 ubfiz x0, x22, 5, 16 9252 mov x22, 0 9253 str x0, [x29, 136] 9254.L1245: 9255 ldr x0, [x29, 136] 9256 cmp x22, x0 9257 bne .L1249 9258 add w28, w28, 1 9259 b .L1242 9260.L1249: 9261 ldr x0, [x23, #:lo12:.LANCHOR66] 9262 add x1, x0, x22 9263 ldr w0, [x0, x22] 9264 cmn w0, #1 9265 beq .L1246 9266 ldr x27, [x1, 16] 9267 mov w0, 61589 9268 ldrh w1, [x27] 9269 cmp w1, w0 9270 bne .L1246 9271 ldr w4, [x27, 8] 9272 cmn w4, #1 9273 bne .L1247 9274 str w4, [x29, 112] 9275 mov w2, 736 9276 adrp x1, .LANCHOR175 9277 adrp x0, .LC1 9278 add x1, x1, :lo12:.LANCHOR175 9279 add x0, x0, :lo12:.LC1 9280 bl printf 9281 ldr w4, [x29, 112] 9282.L1247: 9283 mov w2, 0 9284 add x1, x29, 172 9285 mov w0, w4 9286 bl log2phys 9287 ldr x0, [x23, #:lo12:.LANCHOR66] 9288 ldr w1, [x29, 172] 9289 add x0, x0, x22 9290 ldr w2, [x0, 4] 9291 cmp w2, w1 9292 bne .L1246 9293 ldr x1, [x29, 144] 9294 adrp x4, .LANCHOR104 9295 ldr x2, [x29, 144] 9296 ldr w0, [x0, 24] 9297 ldrh w1, [x1] 9298 add w1, w1, 1 9299 strh w1, [x2] 9300 ldr x2, [x4, #:lo12:.LANCHOR104] 9301 ldr w1, [x24] 9302 add x1, x2, x1, lsl 5 9303 stp x4, x1, [x29, 104] 9304 str w0, [x1, 24] 9305 bl Ftl_get_new_temp_ppa 9306 ldp x4, x1, [x29, 104] 9307 ldr x2, [x4, #:lo12:.LANCHOR104] 9308 str w0, [x1, 4] 9309 ldr w1, [x24] 9310 ubfiz x0, x1, 5, 32 9311 add w1, w1, 1 9312 add x2, x2, x0 9313 ldr x0, [x23, #:lo12:.LANCHOR66] 9314 add x0, x0, x22 9315 ldr x4, [x0, 8] 9316 str x4, [x2, 8] 9317 ldr x4, [x0, 16] 9318 str x4, [x2, 16] 9319 ldr w2, [x29, 172] 9320 str w2, [x27, 12] 9321 adrp x2, .LANCHOR53 9322 add x11, x2, :lo12:.LANCHOR53 9323 ldrh w2, [x2, #:lo12:.LANCHOR53] 9324 strh w2, [x27, 2] 9325 adrp x2, .LANCHOR83 9326 str w1, [x24] 9327 mov w1, 1 9328 ldr w2, [x2, #:lo12:.LANCHOR83] 9329 str w2, [x27, 4] 9330 bl FtlGcBufAlloc 9331 ldrb w1, [x11, 7] 9332 ldr w0, [x24] 9333 cmp w1, w0 9334 beq .L1248 9335 ldrh w0, [x11, 4] 9336 cbnz w0, .L1246 9337.L1248: 9338 bl Ftl_gc_temp_data_write_back 9339 cbz w0, .L1246 9340.L1287: 9341 str wzr, [x21, #:lo12:.LANCHOR94] 9342 b .L1286 9343.L1246: 9344 add x22, x22, 32 9345 b .L1245 9346.L1250: 9347 add x1, x19, :lo12:.LANCHOR144 9348 ldrh w0, [x1, 2] 9349 add w20, w20, w0 9350 ldr w0, [x29, 156] 9351 and w20, w20, 65535 9352 strh w20, [x1, 2] 9353 cmp w0, w20 9354 bhi .L1252 9355 adrp x0, .LANCHOR62 9356 ldr w0, [x0, #:lo12:.LANCHOR62] 9357 cbz w0, .L1253 9358 bl Ftl_gc_temp_data_write_back 9359 cbnz w0, .L1287 9360.L1253: 9361 adrp x0, .LANCHOR173 9362 ldrh w0, [x0, #:lo12:.LANCHOR173] 9363 cbnz w0, .L1254 9364 ldrh w0, [x19, #:lo12:.LANCHOR144] 9365 adrp x1, .LANCHOR42 9366 ldr x1, [x1, #:lo12:.LANCHOR42] 9367 lsl x0, x0, 1 9368 ldrh w2, [x1, x0] 9369 cbz w2, .L1254 9370 strh wzr, [x1, x0] 9371 ldrh w0, [x19, #:lo12:.LANCHOR144] 9372 bl update_vpc_list 9373 bl l2p_flush 9374 bl FtlVpcTblFlush 9375.L1254: 9376 mov w0, -1 9377 strh w0, [x19, #:lo12:.LANCHOR144] 9378.L1252: 9379 adrp x0, .LANCHOR48 9380 str wzr, [x21, #:lo12:.LANCHOR94] 9381 ldrh w0, [x0, #:lo12:.LANCHOR48] 9382 cmp w0, 2 9383 bhi .L1255 9384 ldr x0, [x29, 120] 9385 ldrh w20, [x0, #:lo12:.LANCHOR19] 9386 b .L1256 9387.L1255: 9388 add w0, w0, 1 9389 b .L1206 9390.L1258: 9391 mov w0, 0 9392 b .L1206 9393 .size rk_ftl_garbage_collect, .-rk_ftl_garbage_collect 9394 .section .text.FtlRead,"ax",@progbits 9395 .align 2 9396 .global FtlRead 9397 .type FtlRead, %function 9398FtlRead: 9399 stp x29, x30, [sp, -176]! 9400 and w0, w0, 255 9401 cmp w0, 16 9402 add x29, sp, 0 9403 stp x19, x20, [sp, 16] 9404 mov w19, w1 9405 stp x23, x24, [sp, 48] 9406 mov x23, x3 9407 stp x25, x26, [sp, 64] 9408 mov w26, w2 9409 stp x21, x22, [sp, 32] 9410 stp x27, x28, [sp, 80] 9411 bne .L1289 9412 mov x2, x3 9413 mov w1, w26 9414 add w0, w19, 256 9415 bl FtlVendorPartRead 9416 mov w21, w0 9417.L1288: 9418 mov w0, w21 9419 ldp x19, x20, [sp, 16] 9420 ldp x21, x22, [sp, 32] 9421 ldp x23, x24, [sp, 48] 9422 ldp x25, x26, [sp, 64] 9423 ldp x27, x28, [sp, 80] 9424 ldp x29, x30, [sp], 176 9425 ret 9426.L1289: 9427 add w0, w1, w2 9428 str w0, [x29, 136] 9429 adrp x0, .LANCHOR34 9430 add w1, w1, w2 9431 ldr w0, [x0, #:lo12:.LANCHOR34] 9432 cmp w1, w0 9433 bhi .L1310 9434 adrp x0, .LANCHOR166 9435 ldr w21, [x0, #:lo12:.LANCHOR166] 9436 cmn w21, #1 9437 beq .L1288 9438 adrp x22, .LANCHOR12 9439 adrp x25, .LANCHOR135 9440 add x25, x25, :lo12:.LANCHOR135 9441 mov w27, 0 9442 ldrh w0, [x22, #:lo12:.LANCHOR12] 9443 mov w21, 0 9444 adrp x28, .LANCHOR103 9445 stp wzr, wzr, [x29, 140] 9446 udiv w1, w19, w0 9447 stp wzr, w1, [x29, 148] 9448 add w1, w19, w2 9449 sub w24, w1, #1 9450 adrp x1, .LANCHOR163 9451 ldr w20, [x29, 152] 9452 udiv w24, w24, w0 9453 ldr w0, [x29, 152] 9454 sub w0, w24, w0 9455 add w0, w0, 1 9456 str w0, [x29, 156] 9457 ldr w0, [x1, #:lo12:.LANCHOR163] 9458 add w0, w0, w2 9459 str w0, [x1, #:lo12:.LANCHOR163] 9460 adrp x1, .LANCHOR89 9461 ldr w2, [x29, 156] 9462 ldr w0, [x1, #:lo12:.LANCHOR89] 9463 add w0, w0, w2 9464 str w0, [x1, #:lo12:.LANCHOR89] 9465.L1291: 9466 ldr w0, [x29, 156] 9467 cbnz w0, .L1308 9468 adrp x0, .LANCHOR74 9469 ldrh w0, [x0, #:lo12:.LANCHOR74] 9470 cbnz w0, .L1309 9471 adrp x0, .LANCHOR48 9472 ldrh w0, [x0, #:lo12:.LANCHOR48] 9473 cmp w0, 31 9474 bhi .L1288 9475.L1309: 9476 mov w1, 1 9477 mov w0, 0 9478 bl rk_ftl_garbage_collect 9479 b .L1288 9480.L1308: 9481 add x1, x29, 172 9482 mov w2, 0 9483 mov w0, w20 9484 bl log2phys 9485 ldr w1, [x29, 172] 9486 cmn w1, #1 9487 bne .L1292 9488 add x5, x22, :lo12:.LANCHOR12 9489 mov w4, 0 9490.L1293: 9491 ldrh w0, [x5] 9492 cmp w4, w0 9493 bcc .L1295 9494.L1296: 9495 ldr w0, [x29, 156] 9496 add w20, w20, 1 9497 subs w0, w0, #1 9498 str w0, [x29, 156] 9499 beq .L1300 9500 adrp x0, .LANCHOR3 9501 ldrh w0, [x0, #:lo12:.LANCHOR3] 9502 cmp w27, w0, lsl 2 9503 bne .L1291 9504.L1300: 9505 cbz w27, .L1291 9506 ldr x0, [x28, #:lo12:.LANCHOR103] 9507 mov w1, w27 9508 mov w2, 0 9509 bl FlashReadPages 9510 ldr w0, [x29, 140] 9511 lsl w0, w0, 9 9512 str w0, [x29, 116] 9513 ldr w0, [x29, 148] 9514 lsl w0, w0, 9 9515 str x0, [x29, 128] 9516 ldr w0, [x29, 144] 9517 lsl w0, w0, 9 9518 str w0, [x29, 120] 9519 ubfiz x0, x27, 5, 32 9520 mov x27, 0 9521 str x0, [x29, 104] 9522 add x0, x22, :lo12:.LANCHOR12 9523 str x0, [x29, 96] 9524.L1307: 9525 ldr x0, [x28, #:lo12:.LANCHOR103] 9526 ldr w2, [x29, 152] 9527 add x0, x0, x27 9528 ldr w1, [x0, 24] 9529 cmp w2, w1 9530 bne .L1302 9531 ldr x1, [x0, 8] 9532 adrp x0, .LANCHOR109 9533 ldr x0, [x0, #:lo12:.LANCHOR109] 9534 cmp x1, x0 9535 bne .L1303 9536 ldr x0, [x29, 128] 9537 ldr w2, [x29, 120] 9538 add x1, x1, x0 9539 mov x0, x23 9540.L1321: 9541 bl ftl_memcpy 9542.L1303: 9543 ldr x0, [x28, #:lo12:.LANCHOR103] 9544 add x0, x0, x27 9545 ldr x1, [x0, 16] 9546 ldr w2, [x0, 24] 9547 ldr w1, [x1, 8] 9548 cmp w2, w1 9549 beq .L1304 9550 ldr w1, [x25, 72] 9551 add w1, w1, 1 9552 str w1, [x25, 72] 9553.L1304: 9554 ldr w1, [x0] 9555 cmn w1, #1 9556 bne .L1305 9557 ldr w0, [x25, 72] 9558 mov w21, w1 9559 add w0, w0, 1 9560 str w0, [x25, 72] 9561.L1306: 9562 ldr x0, [x29, 104] 9563 add x27, x27, 32 9564 cmp x0, x27 9565 bne .L1307 9566 mov w27, 0 9567 b .L1291 9568.L1295: 9569 madd w0, w20, w0, w4 9570 cmp w19, w0 9571 bhi .L1294 9572 ldr w1, [x29, 136] 9573 cmp w1, w0 9574 bls .L1294 9575 sub w0, w0, w19 9576 str x5, [x29, 120] 9577 lsl w0, w0, 9 9578 str w4, [x29, 128] 9579 mov w2, 512 9580 mov w1, 0 9581 add x0, x23, x0 9582 bl ftl_memset 9583 ldr w4, [x29, 128] 9584 ldr x5, [x29, 120] 9585.L1294: 9586 add w4, w4, 1 9587 b .L1293 9588.L1292: 9589 ldr x2, [x28, #:lo12:.LANCHOR103] 9590 ubfiz x0, x27, 5, 32 9591 add x0, x2, x0 9592 str w1, [x0, 4] 9593 ldr w1, [x29, 152] 9594 cmp w20, w1 9595 bne .L1297 9596 adrp x1, .LANCHOR109 9597 ldr x1, [x1, #:lo12:.LANCHOR109] 9598 str x1, [x0, 8] 9599 ldrh w1, [x22, #:lo12:.LANCHOR12] 9600 udiv w2, w19, w1 9601 msub w2, w2, w1, w19 9602 str w2, [x29, 148] 9603 sub w2, w1, w2 9604 cmp w26, w2 9605 csel w2, w26, w2, ls 9606 str w2, [x29, 144] 9607 cmp w1, w2 9608 bne .L1298 9609 str x23, [x0, 8] 9610.L1298: 9611 adrp x1, .LANCHOR24 9612 adrp x2, .LANCHOR115 9613 str w20, [x0, 24] 9614 ldrh w1, [x1, #:lo12:.LANCHOR24] 9615 ldr x2, [x2, #:lo12:.LANCHOR115] 9616 mul w1, w1, w27 9617 add w27, w27, 1 9618 and x1, x1, 4294967292 9619 add x1, x2, x1 9620 str x1, [x0, 16] 9621 b .L1296 9622.L1297: 9623 cmp w20, w24 9624 bne .L1299 9625 ldrh w2, [x22, #:lo12:.LANCHOR12] 9626 adrp x1, .LANCHOR110 9627 ldr w3, [x29, 136] 9628 ldr x1, [x1, #:lo12:.LANCHOR110] 9629 str x1, [x0, 8] 9630 mul w1, w20, w2 9631 sub w3, w3, w1 9632 str w3, [x29, 140] 9633 cmp w2, w3 9634 bne .L1298 9635.L1320: 9636 sub w1, w1, w19 9637 lsl w1, w1, 9 9638 add x1, x23, x1 9639 str x1, [x0, 8] 9640 b .L1298 9641.L1299: 9642 ldrh w1, [x22, #:lo12:.LANCHOR12] 9643 mul w1, w1, w20 9644 b .L1320 9645.L1302: 9646 cmp w24, w1 9647 bne .L1303 9648 ldr x1, [x0, 8] 9649 adrp x0, .LANCHOR110 9650 ldr x0, [x0, #:lo12:.LANCHOR110] 9651 cmp x1, x0 9652 bne .L1303 9653 ldr x0, [x29, 96] 9654 ldr w2, [x29, 116] 9655 ldrh w0, [x0] 9656 mul w0, w0, w24 9657 sub w0, w0, w19 9658 lsl w0, w0, 9 9659 add x0, x23, x0 9660 b .L1321 9661.L1305: 9662 cmp w1, 256 9663 bne .L1306 9664 ldr w0, [x0, 4] 9665 lsr w0, w0, 10 9666 bl P2V_block_in_plane 9667 bl FtlGcRefreshBlock 9668 b .L1306 9669.L1310: 9670 mov w21, -1 9671 b .L1288 9672 .size FtlRead, .-FtlRead 9673 .section .text.sftl_read,"ax",@progbits 9674 .align 2 9675 .global sftl_read 9676 .type sftl_read, %function 9677sftl_read: 9678 mov x3, x2 9679 mov w2, w1 9680 mov w1, w0 9681 mov w0, 0 9682 b FtlRead 9683 .size sftl_read, .-sftl_read 9684 .section .text.FtlWrite,"ax",@progbits 9685 .align 2 9686 .global FtlWrite 9687 .type FtlWrite, %function 9688FtlWrite: 9689 stp x29, x30, [sp, -224]! 9690 and w0, w0, 255 9691 cmp w0, 16 9692 add x29, sp, 0 9693 stp x21, x22, [sp, 32] 9694 mov w21, w1 9695 stp x25, x26, [sp, 64] 9696 mov x26, x3 9697 stp x19, x20, [sp, 16] 9698 stp x23, x24, [sp, 48] 9699 stp x27, x28, [sp, 80] 9700 str w2, [x29, 164] 9701 bne .L1324 9702 add w0, w1, 256 9703 ldr w1, [x29, 164] 9704 mov x2, x3 9705 bl FtlVendorPartWrite 9706.L1323: 9707 ldp x19, x20, [sp, 16] 9708 ldp x21, x22, [sp, 32] 9709 ldp x23, x24, [sp, 48] 9710 ldp x25, x26, [sp, 64] 9711 ldp x27, x28, [sp, 80] 9712 ldp x29, x30, [sp], 224 9713 ret 9714.L1324: 9715 ldr w0, [x29, 164] 9716 add w0, w1, w0 9717 str w0, [x29, 152] 9718 adrp x0, .LANCHOR34 9719 ldr w1, [x29, 152] 9720 ldr w0, [x0, #:lo12:.LANCHOR34] 9721 cmp w1, w0 9722 bhi .L1356 9723 adrp x0, .LANCHOR166 9724 ldr w0, [x0, #:lo12:.LANCHOR166] 9725 cmn w0, #1 9726 beq .L1323 9727 adrp x0, .LANCHOR176 9728 mov w1, 2048 9729 adrp x22, .LANCHOR12 9730 ldr w2, [x29, 164] 9731 str w1, [x0, #:lo12:.LANCHOR176] 9732 ldr w1, [x29, 152] 9733 ldrh w0, [x22, #:lo12:.LANCHOR12] 9734 sub w1, w1, #1 9735 udiv w25, w21, w0 9736 udiv w0, w1, w0 9737 adrp x1, .LANCHOR162 9738 mov w19, w25 9739 str w0, [x29, 144] 9740 sub w0, w0, w25 9741 add w24, w0, 1 9742 str w0, [x29, 140] 9743 ldr w0, [x1, #:lo12:.LANCHOR162] 9744 add w0, w0, w2 9745 str w0, [x1, #:lo12:.LANCHOR162] 9746 adrp x1, .LANCHOR85 9747 ldr w0, [x1, #:lo12:.LANCHOR85] 9748 add w0, w0, w24 9749 str w0, [x1, #:lo12:.LANCHOR85] 9750 adrp x0, .LANCHOR51 9751 add x20, x0, :lo12:.LANCHOR51 9752.L1326: 9753 cbnz w24, .L1351 9754 ldr w1, [x29, 140] 9755 mov w0, 0 9756 bl rk_ftl_garbage_collect 9757 adrp x0, .LANCHOR48 9758 mov x22, x0 9759 ldrh w1, [x0, #:lo12:.LANCHOR48] 9760 cmp w1, 5 9761 bls .L1352 9762.L1354: 9763 mov w0, 0 9764 b .L1323 9765.L1351: 9766 adrp x0, .LANCHOR51 9767 add x0, x0, :lo12:.LANCHOR51 9768 adrp x1, .LANCHOR3 9769 str x1, [x29, 112] 9770 ldrb w2, [x0, 6] 9771 ldrh w0, [x1, #:lo12:.LANCHOR3] 9772 cmp w2, w0 9773 bcc .L1327 9774 adrp x1, .LANCHOR177 9775 adrp x0, .LC1 9776 mov w2, 1016 9777 add x1, x1, :lo12:.LANCHOR177 9778 add x0, x0, :lo12:.LC1 9779 bl printf 9780.L1327: 9781 ldrh w0, [x20, 4] 9782 cbnz w0, .L1328 9783 mov x0, x20 9784 bl allocate_new_data_superblock 9785.L1328: 9786 ldrb w0, [x20, 7] 9787 ldrh w1, [x20, 4] 9788 lsl w0, w0, 2 9789 cmp w0, w1 9790 csel w0, w0, w1, ls 9791 ldrb w1, [x20, 6] 9792 cmp w0, w24 9793 csel w0, w0, w24, ls 9794 str w0, [x29, 148] 9795 ldr x0, [x29, 112] 9796 ldrh w0, [x0, #:lo12:.LANCHOR3] 9797 cmp w1, w0 9798 bcc .L1329 9799 adrp x1, .LANCHOR177 9800 adrp x0, .LC1 9801 mov w2, 1049 9802 add x1, x1, :lo12:.LANCHOR177 9803 add x0, x0, :lo12:.LC1 9804 bl printf 9805.L1329: 9806 adrp x0, .LANCHOR24 9807 add x0, x0, :lo12:.LANCHOR24 9808 str xzr, [x29, 168] 9809 str x0, [x29, 104] 9810 adrp x0, .LANCHOR23 9811 add x0, x0, :lo12:.LANCHOR23 9812 str x0, [x29, 96] 9813.L1330: 9814 ldr w1, [x29, 148] 9815 adrp x27, .LANCHOR105 9816 ldr w23, [x29, 168] 9817 cmp w23, w1 9818 bcc .L1349 9819 mov x23, x1 9820.L1331: 9821 ldr x0, [x27, #:lo12:.LANCHOR105] 9822 mov x3, x20 9823 mov w2, 0 9824 mov w1, w23 9825 bl FtlProgPages 9826 cmp w24, w23 9827 bcs .L1350 9828 adrp x1, .LANCHOR177 9829 adrp x0, .LC1 9830 mov w2, 1126 9831 add x1, x1, :lo12:.LANCHOR177 9832 add x0, x0, :lo12:.LC1 9833 bl printf 9834.L1350: 9835 sub w24, w24, w23 9836 b .L1326 9837.L1349: 9838 ldrh w0, [x20, 4] 9839 cbz w0, .L1331 9840 add x1, x29, 188 9841 mov w2, 0 9842 mov w0, w19 9843 bl log2phys 9844 mov x0, x20 9845 bl get_new_active_ppa 9846 ldr x1, [x29, 168] 9847 lsl x28, x1, 5 9848 ldr x1, [x27, #:lo12:.LANCHOR105] 9849 add x1, x1, x28 9850 str w0, [x1, 4] 9851 ldr x0, [x29, 104] 9852 str w19, [x1, 24] 9853 ldrh w2, [x0] 9854 mul w23, w23, w2 9855 and x0, x23, 4294967292 9856 str x0, [x29, 128] 9857 adrp x0, .LANCHOR115 9858 ldr x3, [x29, 128] 9859 ldr x0, [x0, #:lo12:.LANCHOR115] 9860 str x0, [x29, 120] 9861 add x23, x0, x3 9862 str x23, [x1, 16] 9863 mov x0, x23 9864 mov w1, 0 9865 bl ftl_memset 9866 ldr w0, [x29, 144] 9867 cmp w19, w25 9868 ccmp w19, w0, 4, ne 9869 bne .L1332 9870 cmp w19, w25 9871 bne .L1333 9872 ldrh w2, [x22, #:lo12:.LANCHOR12] 9873 udiv w0, w21, w2 9874 msub w0, w0, w2, w21 9875 str w0, [x29, 156] 9876 sub w2, w2, w0 9877 ldr w0, [x29, 164] 9878 cmp w2, w0 9879 csel w0, w2, w0, ls 9880 str w0, [x29, 160] 9881.L1334: 9882 ldrh w0, [x22, #:lo12:.LANCHOR12] 9883 ldr w1, [x29, 160] 9884 cmp w1, w0 9885 ldr x0, [x27, #:lo12:.LANCHOR105] 9886 bne .L1335 9887 add x3, x0, x28 9888 cmp w19, w25 9889 bne .L1336 9890 str x26, [x3, 8] 9891.L1337: 9892 ldr x0, [x29, 112] 9893 ldrb w1, [x20, 6] 9894 ldrh w0, [x0, #:lo12:.LANCHOR3] 9895 cmp w1, w0 9896 bcc .L1346 9897 adrp x1, .LANCHOR177 9898 adrp x0, .LC1 9899 mov w2, 1117 9900 add x1, x1, :lo12:.LANCHOR177 9901 add x0, x0, :lo12:.LC1 9902 bl printf 9903.L1346: 9904 ldp x1, x2, [x29, 120] 9905 mov w0, -3947 9906 strh w0, [x1, x2] 9907 adrp x1, .LANCHOR83 9908 ldr w0, [x1, #:lo12:.LANCHOR83] 9909 stp w0, w19, [x23, 4] 9910 add w19, w19, 1 9911 add w0, w0, 1 9912 cmn w0, #1 9913 csel w0, w0, wzr, ne 9914 str w0, [x1, #:lo12:.LANCHOR83] 9915 ldr w0, [x29, 188] 9916 str w0, [x23, 12] 9917 ldrh w0, [x20] 9918 strh w0, [x23, 2] 9919 ldr x0, [x29, 168] 9920 add x0, x0, 1 9921 str x0, [x29, 168] 9922 b .L1330 9923.L1333: 9924 ldr w0, [x29, 152] 9925 ldrh w2, [x22, #:lo12:.LANCHOR12] 9926 msub w2, w19, w2, w0 9927 and w0, w2, 65535 9928 stp wzr, w0, [x29, 156] 9929 b .L1334 9930.L1336: 9931 ldr w0, [x29, 160] 9932.L1364: 9933 mul w0, w0, w19 9934 sub w0, w0, w21 9935 lsl w0, w0, 9 9936 add x0, x26, x0 9937 str x0, [x3, 8] 9938 b .L1337 9939.L1335: 9940 add x0, x0, x28 9941 cmp w19, w25 9942 bne .L1338 9943 adrp x1, .LANCHOR109 9944 ldr x1, [x1, #:lo12:.LANCHOR109] 9945.L1363: 9946 str x1, [x0, 8] 9947 ldr w0, [x29, 188] 9948 cmn w0, #1 9949 beq .L1340 9950 str w0, [x29, 196] 9951 mov w2, 0 9952 ldr x0, [x27, #:lo12:.LANCHOR105] 9953 str w19, [x29, 216] 9954 add x0, x0, x28 9955 ldp x1, x0, [x0, 8] 9956 stp x1, x0, [x29, 200] 9957 mov w1, 1 9958 add x0, x29, 192 9959 bl FlashReadPages 9960 ldr w0, [x29, 192] 9961 cmn w0, #1 9962 bne .L1341 9963 adrp x0, .LANCHOR135 9964 add x0, x0, :lo12:.LANCHOR135 9965 ldr w1, [x0, 72] 9966 add w1, w1, 1 9967 str w1, [x0, 72] 9968.L1344: 9969 ldr w0, [x29, 160] 9970 cmp w19, w25 9971 lsl w2, w0, 9 9972 bne .L1345 9973 ldr x0, [x27, #:lo12:.LANCHOR105] 9974 mov x1, x26 9975 add x3, x0, x28 9976 ldr w0, [x29, 156] 9977 ldr x3, [x3, 8] 9978 lsl w0, w0, 9 9979 add x0, x3, x0 9980.L1365: 9981 bl ftl_memcpy 9982 b .L1337 9983.L1338: 9984 adrp x1, .LANCHOR110 9985 ldr x1, [x1, #:lo12:.LANCHOR110] 9986 b .L1363 9987.L1341: 9988 ldr w1, [x23, 8] 9989 cmp w19, w1 9990 beq .L1343 9991 adrp x0, .LANCHOR135 9992 add x0, x0, :lo12:.LANCHOR135 9993 ldr w2, [x0, 72] 9994 add w2, w2, 1 9995 str w2, [x0, 72] 9996 adrp x0, .LC37 9997 mov w2, w19 9998 add x0, x0, :lo12:.LC37 9999 bl printf 10000.L1343: 10001 ldr w0, [x23, 8] 10002 cmp w19, w0 10003 beq .L1344 10004 mov w2, 1102 10005 adrp x1, .LANCHOR177 10006 adrp x0, .LC1 10007 add x1, x1, :lo12:.LANCHOR177 10008 add x0, x0, :lo12:.LC1 10009 bl printf 10010 b .L1344 10011.L1340: 10012 ldr x0, [x27, #:lo12:.LANCHOR105] 10013 ldr x1, [x29, 96] 10014 add x0, x0, x28 10015 ldrh w2, [x1] 10016 mov w1, 0 10017 ldr x0, [x0, 8] 10018 bl ftl_memset 10019 b .L1344 10020.L1345: 10021 ldrh w1, [x22, #:lo12:.LANCHOR12] 10022 ldr x0, [x27, #:lo12:.LANCHOR105] 10023 add x3, x0, x28 10024 mul w1, w1, w19 10025 sub w1, w1, w21 10026 ldr x0, [x3, 8] 10027 lsl w1, w1, 9 10028 add x1, x26, x1 10029 b .L1365 10030.L1332: 10031 ldr x0, [x27, #:lo12:.LANCHOR105] 10032 add x3, x0, x28 10033 ldrh w0, [x22, #:lo12:.LANCHOR12] 10034 b .L1364 10035.L1352: 10036 adrp x23, .LANCHOR72 10037 adrp x20, .LANCHOR101 10038 adrp x21, .LANCHOR100 10039 add x23, x23, :lo12:.LANCHOR72 10040 add x20, x20, :lo12:.LANCHOR101 10041 add x21, x21, :lo12:.LANCHOR100 10042 mov w19, 256 10043.L1355: 10044 adrp x0, .LANCHOR144 10045 mov w1, 65535 10046 ldrh w0, [x0, #:lo12:.LANCHOR144] 10047 cmp w0, w1 10048 bne .L1353 10049 ldrh w1, [x23] 10050 cmp w1, w0 10051 bne .L1353 10052 mov w0, 0 10053 bl List_get_gc_head_node 10054 bl FtlGcRefreshBlock 10055.L1353: 10056 mov w0, 128 10057 mov w1, 1 10058 strh w0, [x20] 10059 strh w0, [x21] 10060 mov w0, w1 10061 bl rk_ftl_garbage_collect 10062 mov w1, 1 10063 mov w0, 0 10064 bl rk_ftl_garbage_collect 10065 ldrh w0, [x22, #:lo12:.LANCHOR48] 10066 cmp w0, 2 10067 bhi .L1354 10068 subs w19, w19, #1 10069 bne .L1355 10070 b .L1354 10071.L1356: 10072 mov w0, -1 10073 b .L1323 10074 .size FtlWrite, .-FtlWrite 10075 .section .text.sftl_gc,"ax",@progbits 10076 .align 2 10077 .global sftl_gc 10078 .type sftl_gc, %function 10079sftl_gc: 10080 mov w1, 1 10081 mov w0, w1 10082 b rk_ftl_garbage_collect 10083 .size sftl_gc, .-sftl_gc 10084 .section .text.FtlLoadSysInfo,"ax",@progbits 10085 .align 2 10086 .global FtlLoadSysInfo 10087 .type FtlLoadSysInfo, %function 10088FtlLoadSysInfo: 10089 stp x29, x30, [sp, -112]! 10090 add x29, sp, 0 10091 stp x19, x20, [sp, 16] 10092 adrp x19, .LANCHOR138 10093 stp x21, x22, [sp, 32] 10094 add x0, x19, :lo12:.LANCHOR138 10095 adrp x22, .LANCHOR106 10096 stp x25, x26, [sp, 64] 10097 adrp x25, .LANCHOR114 10098 stp x23, x24, [sp, 48] 10099 stp x27, x28, [sp, 80] 10100 adrp x23, .LANCHOR42 10101 ldr x1, [x22, #:lo12:.LANCHOR106] 10102 adrp x21, .LANCHOR5 10103 str x1, [x0, 8] 10104 adrp x20, .LANCHOR139 10105 ldr x1, [x25, #:lo12:.LANCHOR114] 10106 str x1, [x0, 16] 10107 ldr x0, [x23, #:lo12:.LANCHOR42] 10108 mov w1, 0 10109 ldrh w2, [x21, #:lo12:.LANCHOR5] 10110 lsl w2, w2, 1 10111 bl ftl_memset 10112 ldrh w0, [x20, #:lo12:.LANCHOR139] 10113 mov w1, 65535 10114 cmp w0, w1 10115 bne .L1368 10116.L1379: 10117 mov w0, -1 10118.L1367: 10119 ldp x19, x20, [sp, 16] 10120 ldp x21, x22, [sp, 32] 10121 ldp x23, x24, [sp, 48] 10122 ldp x25, x26, [sp, 64] 10123 ldp x27, x28, [sp, 80] 10124 ldp x29, x30, [sp], 112 10125 ret 10126.L1368: 10127 add x24, x20, :lo12:.LANCHOR139 10128 mov w1, 1 10129 bl FtlGetLastWrittenPage 10130 sxth w28, w0 10131 add w0, w0, 1 10132 adrp x26, .LANCHOR23 10133 strh w0, [x24, 2] 10134 adrp x27, .LANCHOR178 10135 ldrsh w24, [x20, #:lo12:.LANCHOR139] 10136 add x26, x26, :lo12:.LANCHOR23 10137 add x27, x27, :lo12:.LANCHOR178 10138.L1370: 10139 tbz w28, #31, .L1376 10140 adrp x1, .LANCHOR178 10141 adrp x0, .LC1 10142 mov w2, 1465 10143 add x1, x1, :lo12:.LANCHOR178 10144 add x0, x0, :lo12:.LC1 10145 bl printf 10146.L1375: 10147 adrp x1, .LANCHOR23 10148 ldrh w0, [x21, #:lo12:.LANCHOR5] 10149 ldrh w1, [x1, #:lo12:.LANCHOR23] 10150 add x0, x0, 24 10151 cmp x1, x0, lsl 1 10152 bcs .L1378 10153 adrp x1, .LANCHOR178 10154 adrp x0, .LC1 10155 mov w2, 1467 10156 add x1, x1, :lo12:.LANCHOR178 10157 add x0, x0, :lo12:.LC1 10158 bl printf 10159.L1378: 10160 add x24, x19, :lo12:.LANCHOR138 10161 adrp x19, .LANCHOR39 10162 add x22, x19, :lo12:.LANCHOR39 10163 mov w2, 48 10164 mov x0, x22 10165 ldr x1, [x24, 8] 10166 bl ftl_memcpy 10167 ldr x0, [x23, #:lo12:.LANCHOR42] 10168 ldrh w2, [x21, #:lo12:.LANCHOR5] 10169 ldr x1, [x24, 8] 10170 lsl w2, w2, 1 10171 add x1, x1, 48 10172 bl ftl_memcpy 10173 ldrh w1, [x21, #:lo12:.LANCHOR5] 10174 ldr x0, [x24, 8] 10175 lsr w2, w1, 3 10176 ubfiz x1, x1, 1, 16 10177 add x1, x1, 48 10178 add w2, w2, 4 10179 and x1, x1, -4 10180 add x1, x0, x1 10181 adrp x0, .LANCHOR1 10182 ldr x0, [x0, #:lo12:.LANCHOR1] 10183 bl ftl_memcpy 10184 ldr w1, [x19, #:lo12:.LANCHOR39] 10185 mov w0, 19539 10186 movk w0, 0x4654, lsl 16 10187 cmp w1, w0 10188 bne .L1379 10189 add x20, x20, :lo12:.LANCHOR139 10190 adrp x0, .LANCHOR10 10191 ldrh w1, [x22, 8] 10192 ldrb w2, [x22, 10] 10193 ldrh w0, [x0, #:lo12:.LANCHOR10] 10194 strh w1, [x20, 6] 10195 cmp w2, w0 10196 bne .L1379 10197 adrp x0, .LANCHOR179 10198 adrp x2, .LANCHOR152 10199 adrp x3, .LANCHOR3 10200 str w1, [x0, #:lo12:.LANCHOR179] 10201 adrp x0, .LANCHOR19 10202 ldrh w3, [x3, #:lo12:.LANCHOR3] 10203 ldrh w0, [x0, #:lo12:.LANCHOR19] 10204 mul w0, w0, w1 10205 str w0, [x2, #:lo12:.LANCHOR152] 10206 adrp x2, .LANCHOR12 10207 ldrh w2, [x2, #:lo12:.LANCHOR12] 10208 mul w0, w2, w0 10209 adrp x2, .LANCHOR34 10210 str w0, [x2, #:lo12:.LANCHOR34] 10211 adrp x0, .LANCHOR7 10212 ldr w2, [x0, #:lo12:.LANCHOR7] 10213 adrp x0, .LANCHOR37+6 10214 ldrh w0, [x0, #:lo12:.LANCHOR37+6] 10215 cmp w1, w2 10216 sub w0, w2, w0 10217 sub w0, w0, w1 10218 udiv w0, w0, w3 10219 adrp x3, .LANCHOR171 10220 strh w0, [x3, #:lo12:.LANCHOR171] 10221 bls .L1380 10222 adrp x1, .LANCHOR178 10223 adrp x0, .LC1 10224 mov w2, 1489 10225 add x1, x1, :lo12:.LANCHOR178 10226 add x0, x0, :lo12:.LC1 10227 bl printf 10228.L1380: 10229 add x4, x19, :lo12:.LANCHOR39 10230 adrp x0, .LANCHOR51 10231 add x2, x0, :lo12:.LANCHOR51 10232 adrp x5, .LANCHOR144 10233 adrp x20, .LANCHOR52 10234 mov x22, x5 10235 ldrh w1, [x4, 16] 10236 ldrh w6, [x4, 14] 10237 strh w6, [x0, #:lo12:.LANCHOR51] 10238 lsr w3, w1, 6 10239 and w1, w1, 63 10240 strb w1, [x2, 6] 10241 ldrb w1, [x4, 11] 10242 strb w1, [x2, 8] 10243 add x1, x5, :lo12:.LANCHOR144 10244 strh w3, [x2, 2] 10245 mov w2, -1 10246 strh w2, [x5, #:lo12:.LANCHOR144] 10247 add x2, x20, :lo12:.LANCHOR52 10248 strh wzr, [x1, 2] 10249 strb wzr, [x1, 6] 10250 strb wzr, [x1, 8] 10251 ldrh w1, [x4, 18] 10252 strh w1, [x20, #:lo12:.LANCHOR52] 10253 ldrh w1, [x4, 20] 10254 lsr w3, w1, 6 10255 and w1, w1, 63 10256 strb w1, [x2, 6] 10257 ldrb w1, [x4, 12] 10258 strh w3, [x2, 2] 10259 strb w1, [x2, 8] 10260 adrp x2, .LANCHOR53 10261 ldrh w1, [x4, 22] 10262 add x3, x2, :lo12:.LANCHOR53 10263 strh w1, [x2, #:lo12:.LANCHOR53] 10264 mov x21, x2 10265 ldrh w1, [x4, 24] 10266 lsr w7, w1, 6 10267 and w1, w1, 63 10268 strb w1, [x3, 6] 10269 ldrb w1, [x4, 13] 10270 strb w1, [x3, 8] 10271 adrp x1, .LANCHOR84 10272 strh w7, [x3, 2] 10273 ldr w3, [x4, 32] 10274 str wzr, [x1, #:lo12:.LANCHOR84] 10275 adrp x1, .LANCHOR85 10276 str wzr, [x1, #:lo12:.LANCHOR85] 10277 adrp x1, .LANCHOR89 10278 str wzr, [x1, #:lo12:.LANCHOR89] 10279 adrp x1, .LANCHOR88 10280 str wzr, [x1, #:lo12:.LANCHOR88] 10281 adrp x1, .LANCHOR90 10282 str w3, [x1, #:lo12:.LANCHOR90] 10283 adrp x1, .LANCHOR91 10284 str wzr, [x1, #:lo12:.LANCHOR91] 10285 adrp x1, .LANCHOR92 10286 str wzr, [x1, #:lo12:.LANCHOR92] 10287 adrp x1, .LANCHOR87 10288 ldr w3, [x4, 40] 10289 str wzr, [x1, #:lo12:.LANCHOR87] 10290 adrp x1, .LANCHOR82 10291 ldr w4, [x1, #:lo12:.LANCHOR82] 10292 cmp w3, w4 10293 bls .L1381 10294 str w3, [x1, #:lo12:.LANCHOR82] 10295.L1381: 10296 add x19, x19, :lo12:.LANCHOR39 10297 adrp x1, .LANCHOR83 10298 ldr w3, [x1, #:lo12:.LANCHOR83] 10299 ldr w2, [x19, 36] 10300 cmp w2, w3 10301 bls .L1382 10302 str w2, [x1, #:lo12:.LANCHOR83] 10303.L1382: 10304 mov w1, 65535 10305 cmp w6, w1 10306 beq .L1383 10307 add x0, x0, :lo12:.LANCHOR51 10308 bl make_superblock 10309.L1383: 10310 ldrh w2, [x20, #:lo12:.LANCHOR52] 10311 mov w1, 65535 10312 add x0, x20, :lo12:.LANCHOR52 10313 cmp w2, w1 10314 beq .L1384 10315 bl make_superblock 10316.L1384: 10317 ldrh w2, [x21, #:lo12:.LANCHOR53] 10318 mov w1, 65535 10319 add x0, x21, :lo12:.LANCHOR53 10320 cmp w2, w1 10321 beq .L1385 10322 bl make_superblock 10323.L1385: 10324 ldrh w2, [x22, #:lo12:.LANCHOR144] 10325 mov w1, 65535 10326 add x0, x22, :lo12:.LANCHOR144 10327 cmp w2, w1 10328 beq .L1386 10329 bl make_superblock 10330.L1386: 10331 mov w0, 0 10332 b .L1367 10333.L1376: 10334 add x3, x19, :lo12:.LANCHOR138 10335 orr w0, w28, w24, lsl 10 10336 mov w2, 1 10337 str x3, [x29, 104] 10338 mov w1, w2 10339 str w0, [x3, 4] 10340 ldr x0, [x22, #:lo12:.LANCHOR106] 10341 str x0, [x3, 8] 10342 mov x0, x3 10343 bl FlashReadPages 10344 ldr x3, [x29, 104] 10345 ldr x0, [x3, 16] 10346 ldr w8, [x0, 12] 10347 cbz w8, .L1371 10348 ldrh w1, [x26] 10349 ldr x0, [x3, 8] 10350 bl js_hash 10351 cmp w8, w0 10352 beq .L1371 10353 add x10, x20, :lo12:.LANCHOR139 10354 mov w6, w0 10355 mov w5, w8 10356 adrp x0, .LC38 10357 mov w3, w28 10358 mov w2, w24 10359 ldrh w4, [x10, 4] 10360 mov x1, x27 10361 add x0, x0, :lo12:.LC38 10362 str x10, [x29, 104] 10363 bl printf 10364 cbnz w28, .L1372 10365 ldr x10, [x29, 104] 10366 ldrh w0, [x10, 4] 10367 cmp w24, w0 10368 beq .L1372 10369 sxth w24, w0 10370 adrp x0, .LANCHOR20 10371 ldrh w7, [x0, #:lo12:.LANCHOR20] 10372 sub w7, w7, #1 10373.L1395: 10374 sxth w28, w7 10375 b .L1370 10376.L1372: 10377 mov w0, -1 10378 str w0, [x19, #:lo12:.LANCHOR138] 10379.L1371: 10380 ldr w0, [x19, #:lo12:.LANCHOR138] 10381 cmn w0, #1 10382 beq .L1374 10383 ldr x0, [x22, #:lo12:.LANCHOR106] 10384 mov w1, 19539 10385 movk w1, 0x4654, lsl 16 10386 ldr w0, [x0] 10387 cmp w0, w1 10388 bne .L1374 10389 ldr x0, [x25, #:lo12:.LANCHOR114] 10390 ldrh w1, [x0] 10391 mov w0, 61604 10392 cmp w1, w0 10393 beq .L1375 10394.L1374: 10395 sub w7, w28, #1 10396 b .L1395 10397 .size FtlLoadSysInfo, .-FtlLoadSysInfo 10398 .section .text.FtlMapTblRecovery,"ax",@progbits 10399 .align 2 10400 .global FtlMapTblRecovery 10401 .type FtlMapTblRecovery, %function 10402FtlMapTblRecovery: 10403 stp x29, x30, [sp, -160]! 10404 mov w1, 0 10405 add x29, sp, 0 10406 stp x19, x20, [sp, 16] 10407 mov x19, x0 10408 stp x25, x26, [sp, 64] 10409 mov w20, 0 10410 ldrh w25, [x0, 6] 10411 adrp x26, .LANCHOR20 10412 stp x23, x24, [sp, 48] 10413 ldr x23, [x0, 40] 10414 ldr x24, [x0, 16] 10415 lsl w2, w25, 2 10416 ldr x0, [x0, 24] 10417 str x0, [x29, 144] 10418 ldrh w0, [x19, 8] 10419 stp x21, x22, [sp, 32] 10420 adrp x22, .LANCHOR106 10421 stp x27, x28, [sp, 80] 10422 str w0, [x29, 152] 10423 mov x0, x23 10424 bl ftl_memset 10425 stp wzr, wzr, [x19, 48] 10426 adrp x0, .LANCHOR138 10427 add x6, x0, :lo12:.LANCHOR138 10428 ldr x1, [x22, #:lo12:.LANCHOR106] 10429 mov x27, x6 10430 str x0, [x29, 128] 10431 str x1, [x6, 8] 10432 adrp x1, .LANCHOR114 10433 ldr w0, [x29, 152] 10434 ldr x21, [x1, #:lo12:.LANCHOR114] 10435 mov w1, -1 10436 str x21, [x6, 16] 10437 sub w0, w0, #1 10438 strh w1, [x19] 10439 strh w1, [x19, 2] 10440 mov w1, 1 10441 str w0, [x29, 108] 10442 add x0, x26, :lo12:.LANCHOR20 10443 str w1, [x19, 56] 10444 str x0, [x29, 96] 10445.L1397: 10446 ldr w0, [x29, 152] 10447 cmp w20, w0 10448 bge .L1416 10449 ldr w0, [x29, 108] 10450 sxtw x28, w20 10451 cmp w20, w0 10452 bne .L1398 10453 lsl x0, x28, 1 10454 mov w1, 1 10455 add x26, x24, x0 10456 adrp x27, .LANCHOR23 10457 add x27, x27, :lo12:.LANCHOR23 10458 mov w22, 0 10459 ldrh w0, [x24, x0] 10460 bl FtlGetLastWrittenPage 10461 sxth w1, w0 10462 add w0, w0, 1 10463 strh w0, [x19, 2] 10464 ldr x0, [x29, 144] 10465 strh w20, [x19] 10466 str w1, [x29, 152] 10467 ldr w0, [x0, x28, lsl 2] 10468 adrp x28, .LANCHOR180 10469 str w0, [x19, 48] 10470 add x28, x28, :lo12:.LANCHOR180 10471 ldr x0, [x29, 128] 10472 add x24, x0, :lo12:.LANCHOR138 10473.L1399: 10474 ldr w0, [x29, 152] 10475 cmp w22, w0 10476 ble .L1402 10477.L1416: 10478 mov x0, x19 10479 bl ftl_free_no_use_map_blk 10480 adrp x0, .LANCHOR20 10481 ldrh w1, [x19, 2] 10482 ldrh w0, [x0, #:lo12:.LANCHOR20] 10483 cmp w1, w0 10484 bne .L1404 10485 mov x0, x19 10486 bl ftl_map_blk_alloc_new_blk 10487.L1404: 10488 mov x0, x19 10489 bl ftl_map_blk_gc 10490 mov x0, x19 10491 bl ftl_map_blk_gc 10492 mov w0, 0 10493 ldp x19, x20, [sp, 16] 10494 ldp x21, x22, [sp, 32] 10495 ldp x23, x24, [sp, 48] 10496 ldp x25, x26, [sp, 64] 10497 ldp x27, x28, [sp, 80] 10498 ldp x29, x30, [sp], 160 10499 ret 10500.L1402: 10501 ldrh w0, [x26] 10502 mov w2, 1 10503 mov w1, w2 10504 orr w0, w22, w0, lsl 10 10505 str w0, [x24, 4] 10506 mov x0, x24 10507 bl FlashReadPages 10508 ldr x0, [x24, 16] 10509 ldr w0, [x0, 12] 10510 str w0, [x29, 156] 10511 uxtw x0, w0 10512 cbz w0, .L1400 10513 ldrh w1, [x27] 10514 ldr x0, [x24, 8] 10515 bl js_hash 10516 ldr w1, [x29, 156] 10517 cmp w1, w0 10518 beq .L1400 10519 mov w5, w0 10520 mov x4, x1 10521 mov w3, w22 10522 mov w2, w20 10523 mov x1, x28 10524 adrp x0, .LC39 10525 add x0, x0, :lo12:.LC39 10526 bl printf 10527 mov w0, -1 10528 str w0, [x24] 10529.L1400: 10530 ldr w0, [x24] 10531 cmn w0, #1 10532 beq .L1401 10533 ldrh w0, [x21, 8] 10534 cmp w25, w0 10535 bls .L1401 10536 ldrh w2, [x21] 10537 ldrh w1, [x19, 4] 10538 cmp w2, w1 10539 bne .L1401 10540 ubfiz x0, x0, 2, 16 10541 ldr w1, [x24, 4] 10542 str w1, [x23, x0] 10543.L1401: 10544 add w22, w22, 1 10545 sxth w22, w22 10546 b .L1399 10547.L1398: 10548 lsl x2, x28, 1 10549 ldr x0, [x22, #:lo12:.LANCHOR106] 10550 str x0, [x27, 8] 10551 add x0, x24, x2 10552 ldrh w1, [x26, #:lo12:.LANCHOR20] 10553 str x0, [x29, 136] 10554 ldrh w0, [x24, x2] 10555 sub w1, w1, #1 10556 mov w2, 1 10557 orr w0, w1, w0, lsl 10 10558 mov w1, w2 10559 str w0, [x27, 4] 10560 mov x0, x27 10561 bl FlashReadPages 10562 ldr w0, [x27] 10563 cmn w0, #1 10564 beq .L1418 10565 ldrh w1, [x21] 10566 ldrh w0, [x19, 4] 10567 cmp w1, w0 10568 bne .L1418 10569 ldrh w1, [x21, 8] 10570 mov w0, 64245 10571 cmp w1, w0 10572 beq .L1406 10573.L1418: 10574 adrp x0, .LANCHOR23 10575 add x0, x0, :lo12:.LANCHOR23 10576 mov w28, 0 10577 str x0, [x29, 120] 10578 adrp x0, .LANCHOR180 10579 add x0, x0, :lo12:.LANCHOR180 10580 str x0, [x29, 112] 10581.L1407: 10582 ldr x0, [x29, 96] 10583 ldrh w0, [x0] 10584 cmp w28, w0 10585 bge .L1414 10586 ldr x0, [x29, 136] 10587 mov w2, 1 10588 mov w1, w2 10589 ldrh w0, [x0] 10590 orr w0, w28, w0, lsl 10 10591 str w0, [x27, 4] 10592 mov x0, x27 10593 bl FlashReadPages 10594 ldr x0, [x27, 16] 10595 ldr w0, [x0, 12] 10596 str w0, [x29, 156] 10597 uxtw x0, w0 10598 cbz w0, .L1411 10599 ldr x0, [x29, 120] 10600 ldrh w1, [x0] 10601 ldr x0, [x27, 8] 10602 bl js_hash 10603 ldr w1, [x29, 156] 10604 cmp w1, w0 10605 beq .L1411 10606 mov x4, x1 10607 ldr x1, [x29, 112] 10608 mov w5, w0 10609 mov w3, w28 10610 mov w2, w20 10611 adrp x0, .LC40 10612 add x0, x0, :lo12:.LC40 10613 bl printf 10614 mov w0, -1 10615 str w0, [x27] 10616.L1411: 10617 ldr w0, [x27] 10618 cmn w0, #1 10619 beq .L1412 10620 ldrh w0, [x21, 8] 10621 cmp w25, w0 10622 bls .L1412 10623 ldrh w2, [x21] 10624 ldrh w1, [x19, 4] 10625 cmp w2, w1 10626 bne .L1412 10627 ubfiz x0, x0, 2, 16 10628 ldr w1, [x27, 4] 10629 str w1, [x23, x0] 10630.L1412: 10631 add w7, w28, 1 10632 sxth w28, w7 10633 b .L1407 10634.L1406: 10635 ldrh w3, [x26, #:lo12:.LANCHOR20] 10636 mov w0, 0 10637 ldr x4, [x22, #:lo12:.LANCHOR106] 10638 sub w3, w3, #1 10639.L1408: 10640 cmp w0, w3 10641 blt .L1410 10642.L1414: 10643 add w20, w20, 1 10644 sxth w20, w20 10645 b .L1397 10646.L1410: 10647 lsl w2, w0, 1 10648 sxtw x2, w2 10649 lsl x1, x2, 2 10650 ldrh w1, [x4, x1] 10651 cmp w25, w1 10652 bls .L1409 10653 add x2, x2, 1 10654 ubfiz x1, x1, 2, 16 10655 ldr w2, [x4, x2, lsl 2] 10656 str w2, [x23, x1] 10657.L1409: 10658 add w0, w0, 1 10659 sxth w0, w0 10660 b .L1408 10661 .size FtlMapTblRecovery, .-FtlMapTblRecovery 10662 .section .text.FtlLoadVonderInfo,"ax",@progbits 10663 .align 2 10664 .global FtlLoadVonderInfo 10665 .type FtlLoadVonderInfo, %function 10666FtlLoadVonderInfo: 10667 stp x29, x30, [sp, -16]! 10668 adrp x1, .LANCHOR27 10669 adrp x0, .LANCHOR161 10670 add x0, x0, :lo12:.LANCHOR161 10671 add x29, sp, 0 10672 ldrh w1, [x1, #:lo12:.LANCHOR27] 10673 strh w1, [x0, 10] 10674 mov w1, -3962 10675 strh w1, [x0, 4] 10676 adrp x1, .LANCHOR35 10677 ldrh w1, [x1, #:lo12:.LANCHOR35] 10678 strh w1, [x0, 8] 10679 adrp x1, .LANCHOR28 10680 ldrh w1, [x1, #:lo12:.LANCHOR28] 10681 strh w1, [x0, 6] 10682 adrp x1, .LANCHOR36 10683 ldr x1, [x1, #:lo12:.LANCHOR36] 10684 str x1, [x0, 16] 10685 adrp x1, .LANCHOR122 10686 ldr x1, [x1, #:lo12:.LANCHOR122] 10687 str x1, [x0, 24] 10688 adrp x1, .LANCHOR121 10689 ldr x1, [x1, #:lo12:.LANCHOR121] 10690 str x1, [x0, 32] 10691 adrp x1, .LANCHOR123 10692 ldr x1, [x1, #:lo12:.LANCHOR123] 10693 str x1, [x0, 40] 10694 bl FtlMapTblRecovery 10695 mov w0, 0 10696 ldp x29, x30, [sp], 16 10697 ret 10698 .size FtlLoadVonderInfo, .-FtlLoadVonderInfo 10699 .section .text.FtlLoadMapInfo,"ax",@progbits 10700 .align 2 10701 .global FtlLoadMapInfo 10702 .type FtlLoadMapInfo, %function 10703FtlLoadMapInfo: 10704 stp x29, x30, [sp, -16]! 10705 add x29, sp, 0 10706 bl FtlL2PDataInit 10707 adrp x0, .LANCHOR129 10708 add x0, x0, :lo12:.LANCHOR129 10709 bl FtlMapTblRecovery 10710 mov w0, 0 10711 ldp x29, x30, [sp], 16 10712 ret 10713 .size FtlLoadMapInfo, .-FtlLoadMapInfo 10714 .section .text.FtlSysBlkInit,"ax",@progbits 10715 .align 2 10716 .global FtlSysBlkInit 10717 .type FtlSysBlkInit, %function 10718FtlSysBlkInit: 10719 stp x29, x30, [sp, -64]! 10720 adrp x0, .LANCHOR4 10721 add x29, sp, 0 10722 ldrh w0, [x0, #:lo12:.LANCHOR4] 10723 stp x19, x20, [sp, 16] 10724 adrp x19, .LANCHOR156 10725 stp x21, x22, [sp, 32] 10726 strh wzr, [x19, #:lo12:.LANCHOR156] 10727 str x23, [sp, 48] 10728 bl FtlFreeSysBlkQueueInit 10729 bl FtlScanSysBlk 10730 adrp x0, .LANCHOR139 10731 ldrh w1, [x0, #:lo12:.LANCHOR139] 10732 mov w0, 65535 10733 cmp w1, w0 10734 bne .L1437 10735.L1439: 10736 mov w21, -1 10737.L1436: 10738 mov w0, w21 10739 ldr x23, [sp, 48] 10740 ldp x19, x20, [sp, 16] 10741 ldp x21, x22, [sp, 32] 10742 ldp x29, x30, [sp], 64 10743 ret 10744.L1437: 10745 bl FtlLoadSysInfo 10746 mov w21, w0 10747 cbnz w0, .L1439 10748 bl FtlLoadMapInfo 10749 bl FtlLoadVonderInfo 10750 bl Ftl_load_ext_data 10751 bl FtlLoadEctTbl 10752 bl FtlFreeSysBLkSort 10753 bl SupperBlkListInit 10754 bl FtlPowerLostRecovery 10755 mov w0, 1 10756 bl FtlUpdateVaildLpn 10757 adrp x0, .LANCHOR33 10758 ldrh w2, [x0, #:lo12:.LANCHOR33] 10759 adrp x0, .LANCHOR55 10760 ldr x1, [x0, #:lo12:.LANCHOR55] 10761 mov w0, 0 10762 add x1, x1, 4 10763.L1440: 10764 cmp w0, w2 10765 bge .L1445 10766 ldr w3, [x1], 16 10767 tbz w3, #31, .L1441 10768.L1445: 10769 adrp x3, .LANCHOR83 10770 cmp w0, w2 10771 ldr w1, [x3, #:lo12:.LANCHOR83] 10772 add w1, w1, 32 10773 str w1, [x3, #:lo12:.LANCHOR83] 10774 bge .L1447 10775.L1442: 10776 adrp x23, .LANCHOR51 10777 add x20, x23, :lo12:.LANCHOR51 10778 mov x0, x20 10779 adrp x22, .LANCHOR52 10780 bl FtlSuperblockPowerLostFix 10781 add x19, x22, :lo12:.LANCHOR52 10782 mov x0, x19 10783 bl FtlSuperblockPowerLostFix 10784 adrp x0, .LANCHOR42 10785 ldrh w3, [x20, 4] 10786 ldr x1, [x0, #:lo12:.LANCHOR42] 10787 ldrh w0, [x23, #:lo12:.LANCHOR51] 10788 lsl x0, x0, 1 10789 ldrh w2, [x1, x0] 10790 sub w2, w2, w3 10791 adrp x3, .LANCHOR19 10792 strh w2, [x1, x0] 10793 strb wzr, [x20, 6] 10794 ldrh w0, [x3, #:lo12:.LANCHOR19] 10795 strh w0, [x20, 2] 10796 ldrh w0, [x22, #:lo12:.LANCHOR52] 10797 strh wzr, [x20, 4] 10798 ldrh w4, [x19, 4] 10799 lsl x0, x0, 1 10800 ldrh w2, [x1, x0] 10801 sub w2, w2, w4 10802 strh w2, [x1, x0] 10803 strb wzr, [x19, 6] 10804 ldrh w0, [x3, #:lo12:.LANCHOR19] 10805 strh w0, [x19, 2] 10806 adrp x0, .LANCHOR39 10807 add x0, x0, :lo12:.LANCHOR39 10808 strh wzr, [x19, 4] 10809 ldrh w1, [x0, 30] 10810 add w1, w1, 1 10811 strh w1, [x0, 30] 10812 bl l2p_flush 10813 bl FtlVpcTblFlush 10814.L1449: 10815 bl FtlVpcTblFlush 10816 b .L1436 10817.L1441: 10818 add w0, w0, 1 10819 b .L1440 10820.L1447: 10821 ldrh w0, [x19, #:lo12:.LANCHOR156] 10822 cbnz w0, .L1442 10823 bl l2p_flush 10824 b .L1449 10825 .size FtlSysBlkInit, .-FtlSysBlkInit 10826 .section .text.ftl_low_format,"ax",@progbits 10827 .align 2 10828 .global ftl_low_format 10829 .type ftl_low_format, %function 10830ftl_low_format: 10831 stp x29, x30, [sp, -80]! 10832 adrp x0, .LANCHOR83 10833 add x29, sp, 0 10834 stp x23, x24, [sp, 48] 10835 adrp x24, .LANCHOR4 10836 str wzr, [x0, #:lo12:.LANCHOR83] 10837 ldrh w0, [x24, #:lo12:.LANCHOR4] 10838 stp x19, x20, [sp, 16] 10839 adrp x20, .LANCHOR82 10840 stp x21, x22, [sp, 32] 10841 stp x25, x26, [sp, 64] 10842 str wzr, [x20, #:lo12:.LANCHOR82] 10843 bl FtlFreeSysBlkQueueInit 10844 bl FtlLoadBbt 10845 cbz w0, .L1451 10846 bl FtlMakeBbt 10847.L1451: 10848 adrp x23, .LANCHOR12 10849 adrp x0, .LANCHOR109 10850 mov w6, 23752 10851 ldrh w1, [x23, #:lo12:.LANCHOR12] 10852 movk w6, 0xa0f, lsl 16 10853 ldr x4, [x0, #:lo12:.LANCHOR109] 10854 adrp x0, .LANCHOR110 10855 lsl w1, w1, 7 10856 ldr x5, [x0, #:lo12:.LANCHOR110] 10857 mov w0, 0 10858.L1452: 10859 cmp w0, w1 10860 blt .L1453 10861 adrp x21, .LANCHOR5 10862 adrp x22, .LANCHOR6 10863 add x26, x22, :lo12:.LANCHOR6 10864 mov w19, 0 10865 ldrh w25, [x21, #:lo12:.LANCHOR5] 10866.L1454: 10867 ldrh w0, [x26] 10868 cmp w0, w25 10869 bhi .L1455 10870 adrp x25, .LANCHOR3 10871 sub w1, w19, #2 10872 ldrh w0, [x25, #:lo12:.LANCHOR3] 10873 cmp w1, w0, lsl 1 10874 bgt .L1456 10875.L1460: 10876 add x26, x21, :lo12:.LANCHOR5 10877 mov w19, 0 10878 mov w24, 0 10879.L1457: 10880 ldrh w0, [x26] 10881 cmp w0, w24 10882 bhi .L1461 10883 adrp x0, .LANCHOR99 10884 ldrh w1, [x22, #:lo12:.LANCHOR6] 10885 ldrh w4, [x25, #:lo12:.LANCHOR3] 10886 adrp x2, .LANCHOR171 10887 str w1, [x0, #:lo12:.LANCHOR99] 10888 adrp x0, .LANCHOR7 10889 adrp x3, .LANCHOR152 10890 ldr w1, [x0, #:lo12:.LANCHOR7] 10891 udiv w5, w1, w4 10892 ubfx x0, x5, 5, 16 10893 str w5, [x3, #:lo12:.LANCHOR152] 10894 add w6, w0, 36 10895 strh w6, [x2, #:lo12:.LANCHOR171] 10896 mov w6, 24 10897 mul w6, w4, w6 10898 cmp w19, w6 10899 ble .L1462 10900 sub w1, w1, w19 10901 udiv w1, w1, w4 10902 str w1, [x3, #:lo12:.LANCHOR152] 10903 lsr w1, w1, 5 10904 add w1, w1, 24 10905 strh w1, [x2, #:lo12:.LANCHOR171] 10906.L1462: 10907 adrp x1, .LANCHOR15 10908 ldrh w1, [x1, #:lo12:.LANCHOR15] 10909 cbz w1, .L1464 10910 ldrh w6, [x2, #:lo12:.LANCHOR171] 10911 add w6, w6, w1, lsr 1 10912 strh w6, [x2, #:lo12:.LANCHOR171] 10913 mul w6, w1, w4 10914 cmp w19, w6 10915 bge .L1464 10916 add w1, w1, 32 10917 str w5, [x3, #:lo12:.LANCHOR152] 10918 add w1, w0, w1 10919 strh w1, [x2, #:lo12:.LANCHOR171] 10920.L1464: 10921 ldrh w1, [x2, #:lo12:.LANCHOR171] 10922 adrp x25, .LANCHOR179 10923 ldr w0, [x3, #:lo12:.LANCHOR152] 10924 adrp x24, .LANCHOR42 10925 sub w0, w0, w1 10926 adrp x1, .LANCHOR19 10927 ldrh w1, [x1, #:lo12:.LANCHOR19] 10928 mul w0, w0, w4 10929 str w0, [x25, #:lo12:.LANCHOR179] 10930 mul w0, w1, w0 10931 ldrh w1, [x23, #:lo12:.LANCHOR12] 10932 str w0, [x3, #:lo12:.LANCHOR152] 10933 mov w23, -1 10934 mul w0, w1, w0 10935 adrp x1, .LANCHOR34 10936 str w0, [x1, #:lo12:.LANCHOR34] 10937 bl FtlBbmTblFlush 10938 ldr x0, [x24, #:lo12:.LANCHOR42] 10939 mov w1, 0 10940 ldrh w2, [x22, #:lo12:.LANCHOR6] 10941 lsl w2, w2, 1 10942 bl ftl_memset 10943 adrp x0, .LANCHOR59 10944 adrp x1, .LANCHOR144 10945 ldrh w2, [x21, #:lo12:.LANCHOR5] 10946 str wzr, [x0, #:lo12:.LANCHOR59] 10947 add x0, x1, :lo12:.LANCHOR144 10948 strh w23, [x1, #:lo12:.LANCHOR144] 10949 mov w1, 255 10950 lsr w2, w2, 3 10951 strh wzr, [x0, 2] 10952 strb wzr, [x0, 6] 10953 strb wzr, [x0, 8] 10954 adrp x0, .LANCHOR51 10955 add x19, x0, :lo12:.LANCHOR51 10956 strh wzr, [x0, #:lo12:.LANCHOR51] 10957 mov w0, 1 10958 strb w0, [x19, 8] 10959 adrp x0, .LANCHOR1 10960 strh wzr, [x19, 2] 10961 ldr x0, [x0, #:lo12:.LANCHOR1] 10962 strb wzr, [x19, 6] 10963 bl ftl_memset 10964.L1466: 10965 mov x0, x19 10966 bl make_superblock 10967 ldrb w1, [x19, 7] 10968 ldrh w0, [x19] 10969 cbnz w1, .L1467 10970 ldr x1, [x24, #:lo12:.LANCHOR42] 10971 ubfiz x0, x0, 1, 16 10972 strh w23, [x1, x0] 10973 ldrh w0, [x19] 10974 add w0, w0, 1 10975 strh w0, [x19] 10976 b .L1466 10977.L1453: 10978 ubfiz x3, x0, 2, 16 10979 mvn w2, w0 10980 orr w2, w0, w2, lsl 16 10981 add w0, w0, 1 10982 and w0, w0, 65535 10983 str w2, [x4, x3] 10984 str w6, [x5, x3] 10985 b .L1452 10986.L1455: 10987 mov w0, w25 10988 mov w1, 1 10989 add w25, w25, 1 10990 bl FtlLowFormatEraseBlock 10991 add w19, w19, w0 10992 and w25, w25, 65535 10993 and w19, w19, 65535 10994 b .L1454 10995.L1456: 10996 udiv w0, w19, w0 10997 adrp x1, .LANCHOR31 10998 ldr w19, [x1, #:lo12:.LANCHOR31] 10999 add w0, w0, w19 11000 bl FtlSysBlkNumInit 11001 ldrh w0, [x24, #:lo12:.LANCHOR4] 11002 add x24, x22, :lo12:.LANCHOR6 11003 bl FtlFreeSysBlkQueueInit 11004 ldrh w19, [x21, #:lo12:.LANCHOR5] 11005.L1458: 11006 ldrh w0, [x24] 11007 cmp w0, w19 11008 bls .L1460 11009 mov w0, w19 11010 add w19, w19, 1 11011 mov w1, 1 11012 and w19, w19, 65535 11013 bl FtlLowFormatEraseBlock 11014 b .L1458 11015.L1461: 11016 mov w0, w24 11017 mov w1, 0 11018 add w24, w24, 1 11019 bl FtlLowFormatEraseBlock 11020 add w19, w19, w0 11021 and w24, w24, 65535 11022 and w19, w19, 65535 11023 b .L1457 11024.L1467: 11025 ldr w1, [x20, #:lo12:.LANCHOR82] 11026 ubfiz x0, x0, 1, 16 11027 str w1, [x19, 12] 11028 mov w23, -1 11029 add w1, w1, 1 11030 str w1, [x20, #:lo12:.LANCHOR82] 11031 ldr x1, [x24, #:lo12:.LANCHOR42] 11032 ldrh w2, [x19, 4] 11033 strh w2, [x1, x0] 11034 adrp x2, .LANCHOR52 11035 add x0, x2, :lo12:.LANCHOR52 11036 ldrh w1, [x19] 11037 mov x19, x0 11038 add w1, w1, 1 11039 strh wzr, [x0, 2] 11040 strh w1, [x2, #:lo12:.LANCHOR52] 11041 mov w1, 1 11042 strb wzr, [x0, 6] 11043 strb w1, [x0, 8] 11044.L1468: 11045 mov x0, x19 11046 bl make_superblock 11047 ldrb w1, [x19, 7] 11048 ldrh w0, [x19] 11049 cbnz w1, .L1469 11050 ldr x1, [x24, #:lo12:.LANCHOR42] 11051 ubfiz x0, x0, 1, 16 11052 strh w23, [x1, x0] 11053 ldrh w0, [x19] 11054 add w0, w0, 1 11055 strh w0, [x19] 11056 b .L1468 11057.L1469: 11058 ldr w1, [x20, #:lo12:.LANCHOR82] 11059 ubfiz x0, x0, 1, 16 11060 str w1, [x19, 12] 11061 add w1, w1, 1 11062 str w1, [x20, #:lo12:.LANCHOR82] 11063 ldr x1, [x24, #:lo12:.LANCHOR42] 11064 ldrh w2, [x19, 4] 11065 mov w19, -1 11066 strh w2, [x1, x0] 11067 adrp x0, .LANCHOR53 11068 strh w19, [x0, #:lo12:.LANCHOR53] 11069 bl FtlFreeSysBlkQueueOut 11070 adrp x2, .LANCHOR139 11071 add x1, x2, :lo12:.LANCHOR139 11072 strh w0, [x2, #:lo12:.LANCHOR139] 11073 ldr w0, [x25, #:lo12:.LANCHOR179] 11074 strh w0, [x1, 6] 11075 ldr w0, [x20, #:lo12:.LANCHOR82] 11076 str w0, [x1, 8] 11077 add w0, w0, 1 11078 strh wzr, [x1, 2] 11079 strh w19, [x1, 4] 11080 str w0, [x20, #:lo12:.LANCHOR82] 11081 bl FtlVpcTblFlush 11082 bl FtlSysBlkInit 11083 cbnz w0, .L1470 11084 adrp x0, .LANCHOR166 11085 mov w1, 1 11086 str w1, [x0, #:lo12:.LANCHOR166] 11087.L1470: 11088 mov w0, 0 11089 ldp x19, x20, [sp, 16] 11090 ldp x21, x22, [sp, 32] 11091 ldp x23, x24, [sp, 48] 11092 ldp x25, x26, [sp, 64] 11093 ldp x29, x30, [sp], 80 11094 ret 11095 .size ftl_low_format, .-ftl_low_format 11096 .section .text.sftl_init,"ax",@progbits 11097 .align 2 11098 .global sftl_init 11099 .type sftl_init, %function 11100sftl_init: 11101 stp x29, x30, [sp, -32]! 11102 adrp x1, .LC41 11103 add x1, x1, :lo12:.LC41 11104 mov w0, -1 11105 add x29, sp, 0 11106 stp x19, x20, [sp, 16] 11107 adrp x20, .LANCHOR166 11108 adrp x19, .LANCHOR181 11109 add x19, x19, :lo12:.LANCHOR181 11110 str w0, [x20, #:lo12:.LANCHOR166] 11111 adrp x0, .LC34 11112 add x0, x0, :lo12:.LC34 11113 bl printf 11114 adrp x0, .LANCHOR0 11115 add x0, x0, :lo12:.LANCHOR0 11116 bl FtlConstantsInit 11117 bl FtlMemInit 11118 bl FtlVariablesInit 11119 adrp x0, .LANCHOR4 11120 ldrh w0, [x0, #:lo12:.LANCHOR4] 11121 bl FtlFreeSysBlkQueueInit 11122.L1476: 11123 bl FtlLoadBbt 11124 cbz w0, .L1477 11125.L1492: 11126 ldr w0, [x19] 11127 cmp w0, 1 11128 bne .L1476 11129 str wzr, [x19] 11130 bl ftl_low_format 11131 b .L1476 11132.L1477: 11133 bl FtlSysBlkInit 11134 cbnz w0, .L1492 11135 mov w0, 1 11136 str w0, [x20, #:lo12:.LANCHOR166] 11137 adrp x0, .LANCHOR48 11138 ldrh w0, [x0, #:lo12:.LANCHOR48] 11139 cmp w0, 15 11140 bhi .L1489 11141 mov w19, 8129 11142.L1483: 11143 mov w1, 1 11144 mov w0, 0 11145 bl rk_ftl_garbage_collect 11146 subs w19, w19, #1 11147 bne .L1483 11148.L1489: 11149 mov w0, 0 11150 ldp x19, x20, [sp, 16] 11151 ldp x29, x30, [sp], 32 11152 ret 11153 .size sftl_init, .-sftl_init 11154 .section .text.FtlWriteToIDB,"ax",@progbits 11155 .align 2 11156 .global FtlWriteToIDB 11157 .type FtlWriteToIDB, %function 11158FtlWriteToIDB: 11159 stp x29, x30, [sp, -224]! 11160 add x29, sp, 0 11161 stp x23, x24, [sp, 48] 11162 add w23, w1, w0 11163 stp x25, x26, [sp, 64] 11164 sub w25, w23, #1 11165 stp x19, x20, [sp, 16] 11166 cmp w25, 63 11167 stp x21, x22, [sp, 32] 11168 adrp x24, .LANCHOR182 11169 stp x27, x28, [sp, 80] 11170 bls .L1494 11171 mov w19, w0 11172 cmp w0, 575 11173 bls .L1495 11174.L1494: 11175 ldr w0, [x24, #:lo12:.LANCHOR182] 11176 cbnz w0, .L1496 11177.L1561: 11178 mov w19, 0 11179 b .L1493 11180.L1496: 11181 adrp x0, .LANCHOR183 11182 str x0, [x29, 120] 11183 mov w1, 35899 11184 ldr x23, [x0, #:lo12:.LANCHOR183] 11185 movk w1, 0xfcdc, lsl 16 11186 ldr w2, [x23] 11187 cmp w2, w1 11188 bne .L1498 11189 adrp x21, .LANCHOR0 11190 add x0, x21, :lo12:.LANCHOR0 11191 mov w19, 65535 11192 mov w3, 4097 11193 ldrh w1, [x0, 10] 11194 mov x0, 262140 11195 add x2, x23, x0 11196 mov w0, 0 11197.L1502: 11198 ldr w4, [x2] 11199 cbnz w4, .L1499 11200 ldr w4, [x23, w0, uxtw 2] 11201 add w0, w0, 1 11202 str w4, [x2], -4 11203 cmp w0, w3 11204 sub w19, w19, #1 11205 csel w0, w0, wzr, cc 11206 cmp w19, 4096 11207 bne .L1502 11208 mov w19, 512 11209 b .L1501 11210.L1499: 11211 add w19, w19, 127 11212 lsr w19, w19, 7 11213.L1501: 11214 add w0, w19, 4 11215 ubfiz w1, w1, 2, 14 11216 mov w22, 0 11217 udiv w0, w0, w1 11218 add w0, w0, 1 11219 stp wzr, w0, [x29, 152] 11220 lsl w0, w19, 7 11221 str w0, [x29, 136] 11222 adrp x0, .LANCHOR78 11223 add x20, x0, :lo12:.LANCHOR78 11224.L1524: 11225 adrp x26, .LANCHOR184 11226 mov w1, 0 11227 mov x2, 512 11228 ldr x0, [x26, #:lo12:.LANCHOR184] 11229 bl memset 11230 str x26, [x29, 144] 11231 add x0, x21, :lo12:.LANCHOR0 11232 ldrh w27, [x0, 10] 11233 adrp x0, .LANCHOR78 11234 add x0, x0, :lo12:.LANCHOR78 11235 ldr x1, [x0, 32] 11236 mul w25, w27, w22 11237 cbz x1, .L1532 11238 ldr x0, [x0, 40] 11239 mov w26, 6 11240 cmp x0, 0 11241 mov w0, 9 11242 csel w26, w26, w0, eq 11243.L1503: 11244 ldr x2, [x20, 8] 11245 mov w1, w25 11246 mov w0, 0 11247 blr x2 11248 ldr w0, [x29, 156] 11249 cmp w0, 1 11250 beq .L1504 11251 ldr x2, [x20, 8] 11252 add w1, w27, w25 11253 mov w0, 0 11254 blr x2 11255.L1504: 11256 cmp w26, 9 11257 bne .L1534 11258 ldr x0, [x29, 144] 11259 mov w2, 1024 11260 mov w1, 0 11261 ldr x28, [x0, #:lo12:.LANCHOR184] 11262 mov x0, x28 11263 bl ftl_memset 11264 mov w0, 18766 11265 mov w1, 12 11266 movk w0, 0x464e, lsl 16 11267 stp w0, w1, [x28] 11268 mov w0, 4 11269 strb w0, [x28, 17] 11270 add x0, x21, :lo12:.LANCHOR0 11271 strb wzr, [x28, 16] 11272 strb wzr, [x28, 20] 11273 strh wzr, [x28, 22] 11274 ldrh w0, [x0, 10] 11275 strh w0, [x28, 18] 11276 str wzr, [x28, 12] 11277 mov w0, 16 11278 strb w0, [x28, 21] 11279 add x0, x28, 12 11280 bl js_hash 11281 str w0, [x28, 8] 11282.L1505: 11283 ldr w0, [x29, 156] 11284 mov x6, x23 11285 mul w0, w0, w27 11286 mov x27, 0 11287 str w0, [x29, 140] 11288 add w0, w25, 1 11289 str w0, [x29, 132] 11290.L1506: 11291 ldr w0, [x29, 140] 11292 mov w1, w27 11293 cmp w27, w0 11294 bcs .L1513 11295 cmp w26, 9 11296 bne .L1507 11297 ldr w0, [x29, 132] 11298 add w0, w0, w1 11299.L1560: 11300 str w0, [x29, 160] 11301 mov w0, 61424 11302 str w0, [x29, 164] 11303 cmp w1, 0 11304 ccmp w26, 9, 0, eq 11305 bne .L1509 11306 ldr x1, [x20, 32] 11307 mov w0, 70 11308 str x6, [x29, 104] 11309 blr x1 11310 ldr x7, [x20, 16] 11311 add x3, x29, 160 11312 mov x2, x28 11313 mov w1, w25 11314 mov w0, 0 11315 blr x7 11316 mov w1, w0 11317 add x0, x21, :lo12:.LANCHOR0 11318 ldr x2, [x20, 32] 11319 str w1, [x29, 112] 11320 ldrb w0, [x0, 22] 11321 blr x2 11322 ldr w1, [x29, 112] 11323 ldr x6, [x29, 104] 11324 cmn w1, #1 11325 bne .L1510 11326.L1513: 11327 ldr x0, [x29, 144] 11328 ldr x26, [x0, #:lo12:.LANCHOR184] 11329 add x0, x21, :lo12:.LANCHOR0 11330 ldrb w28, [x0, 14] 11331 ldrh w0, [x0, 10] 11332 mul w1, w0, w22 11333 str w1, [x29, 140] 11334 ldr x1, [x20, 32] 11335 cbnz x1, .L1511 11336 mov w25, 6 11337.L1512: 11338 ldr w1, [x29, 156] 11339 mov x27, 0 11340 mul w0, w1, w0 11341 str w0, [x29, 132] 11342.L1515: 11343 ldr w0, [x29, 132] 11344 mov w1, w27 11345 cmp w27, w0 11346 bcs .L1519 11347 cmp w27, 0 11348 ccmp w25, 9, 0, eq 11349 bne .L1516 11350 ldr x1, [x20, 32] 11351 mov w0, 70 11352 blr x1 11353 ldr x1, [x20, 40] 11354 mov w0, 2 11355 blr x1 11356 ldr x6, [x20, 24] 11357 add x3, x29, 160 11358 ldr w1, [x29, 140] 11359 mov x2, x26 11360 mov w0, 0 11361 blr x6 11362 ldr x1, [x20, 40] 11363 mov w0, w28 11364 blr x1 11365 add x0, x21, :lo12:.LANCHOR0 11366 ldr x1, [x20, 32] 11367 ldrb w0, [x0, 22] 11368 blr x1 11369 ldr w0, [x26] 11370 mov w1, 18766 11371 movk w1, 0x464e, lsl 16 11372 cmp w0, w1 11373 beq .L1517 11374.L1519: 11375 ldr x0, [x29, 144] 11376 mov x2, x23 11377 mov x1, 0 11378 ldr x0, [x0, #:lo12:.LANCHOR184] 11379.L1518: 11380 ldr w3, [x29, 136] 11381 mov w26, w1 11382 cmp w1, w3 11383 bcc .L1522 11384 ldr w0, [x29, 152] 11385 add w0, w0, 1 11386 str w0, [x29, 152] 11387 cmp w0, 5 11388 bls .L1521 11389 b .L1525 11390.L1532: 11391 mov w26, 6 11392 b .L1503 11393.L1534: 11394 mov x28, 0 11395 b .L1505 11396.L1507: 11397 add w0, w1, w25 11398 lsl w0, w0, 2 11399 b .L1560 11400.L1509: 11401 ldr x7, [x20, 16] 11402 add x3, x29, 160 11403 mov x2, x6 11404 add w1, w1, w25 11405 mov w0, 0 11406 str x6, [x29, 112] 11407 blr x7 11408 cmn w0, #1 11409 beq .L1513 11410 ldr x6, [x29, 112] 11411 add x6, x6, 2048 11412.L1510: 11413 add x27, x27, 1 11414 b .L1506 11415.L1511: 11416 ldr x1, [x20, 40] 11417 mov w25, 6 11418 cmp x1, 0 11419 mov w1, 9 11420 csel w25, w25, w1, eq 11421 b .L1512 11422.L1516: 11423 ldr x6, [x20, 24] 11424 add x3, x29, 160 11425 ldr w0, [x29, 140] 11426 mov x2, x26 11427 add w1, w1, w0 11428 mov w0, 0 11429 blr x6 11430 cmn w0, #1 11431 beq .L1519 11432 ldr w0, [x29, 164] 11433 mov w1, 61424 11434 cmp w0, w1 11435 bne .L1519 11436 add x26, x26, 2048 11437.L1517: 11438 add x27, x27, 1 11439 b .L1515 11440.L1522: 11441 mov x25, x2 11442 ldr w4, [x0, x1, lsl 2] 11443 lsl x27, x1, 2 11444 add x2, x2, 4 11445 add x1, x1, 1 11446 ldr w3, [x25] 11447 cmp w4, w3 11448 beq .L1518 11449 mov x2, 512 11450 mov w1, 0 11451 bl memset 11452 ldr x0, [x29, 144] 11453 mov w1, w22 11454 ldr w3, [x25] 11455 mov w4, w26 11456 ldr x0, [x0, #:lo12:.LANCHOR184] 11457 ldr w2, [x0, x27] 11458 adrp x0, .LC42 11459 add x0, x0, :lo12:.LC42 11460 bl printf 11461 add x0, x21, :lo12:.LANCHOR0 11462 ldr x2, [x20, 8] 11463 ldrh w1, [x0, 10] 11464 mov w0, 0 11465 mul w1, w1, w22 11466 blr x2 11467.L1521: 11468 ldr w0, [x29, 156] 11469 add w22, w22, w0 11470 cmp w22, 15 11471 bls .L1524 11472 ldr w0, [x29, 152] 11473 cbnz w0, .L1525 11474.L1498: 11475 mov w19, -1 11476.L1525: 11477 ldr x0, [x29, 120] 11478 str wzr, [x24, #:lo12:.LANCHOR182] 11479 ldr x0, [x0, #:lo12:.LANCHOR183] 11480 bl free 11481 adrp x0, .LANCHOR184 11482 ldr x0, [x0, #:lo12:.LANCHOR184] 11483 bl free 11484.L1493: 11485 mov w0, w19 11486 ldp x19, x20, [sp, 16] 11487 ldp x21, x22, [sp, 32] 11488 ldp x23, x24, [sp, 48] 11489 ldp x25, x26, [sp, 64] 11490 ldp x27, x28, [sp, 80] 11491 ldp x29, x30, [sp], 224 11492 ret 11493.L1495: 11494 mov w21, w1 11495 mov x22, x2 11496 cmp w0, 64 11497 bne .L1526 11498 adrp x20, .LANCHOR183 11499 mov w0, 262144 11500 bl ftl_malloc 11501 str x0, [x20, #:lo12:.LANCHOR183] 11502 mov w0, 262144 11503 bl ftl_malloc 11504 mov x1, x0 11505 adrp x0, .LANCHOR184 11506 str x1, [x0, #:lo12:.LANCHOR184] 11507 ldr x0, [x20, #:lo12:.LANCHOR183] 11508 cbz x0, .L1527 11509 cbz x1, .L1527 11510 mov w1, 1 11511 mov w2, 262144 11512 str w1, [x24, #:lo12:.LANCHOR182] 11513 mov w1, 0 11514 bl ftl_memset 11515.L1526: 11516 ldr w0, [x24, #:lo12:.LANCHOR182] 11517 cbz w0, .L1561 11518 adrp x0, .LANCHOR183 11519 cmp w19, 63 11520 ldr x1, [x0, #:lo12:.LANCHOR183] 11521 bhi .L1529 11522 mov w0, 64 11523 sub w19, w0, w19 11524 sub w21, w21, w19 11525 ubfiz x19, x19, 9, 25 11526 add x22, x22, x19 11527 mov x20, x1 11528.L1530: 11529 cmp w25, 575 11530 bls .L1531 11531 sub w21, w21, w23 11532 sub w21, w21, #446 11533.L1531: 11534 mov w4, w21 11535 mov x3, x20 11536 mov w2, 262144 11537 adrp x0, .LC44 11538 add x0, x0, :lo12:.LC44 11539 bl printf 11540 lsl w2, w21, 9 11541 mov x1, x22 11542 mov x0, x20 11543 bl ftl_memcpy 11544 b .L1561 11545.L1527: 11546 adrp x1, .LANCHOR185 11547 adrp x0, .LC43 11548 add x1, x1, :lo12:.LANCHOR185 11549 add x0, x0, :lo12:.LC43 11550 bl printf 11551 b .L1526 11552.L1529: 11553 lsl w20, w19, 7 11554 sub w20, w20, #8192 11555 add x20, x1, x20, lsl 2 11556 b .L1530 11557 .size FtlWriteToIDB, .-FtlWriteToIDB 11558 .section .text.sftl_write,"ax",@progbits 11559 .align 2 11560 .global sftl_write 11561 .type sftl_write, %function 11562sftl_write: 11563 stp x29, x30, [sp, -48]! 11564 add x29, sp, 0 11565 stp x19, x20, [sp, 16] 11566 mov w20, w1 11567 mov w19, w0 11568 str x21, [sp, 32] 11569 mov x21, x2 11570 bl FtlWriteToIDB 11571 mov x3, x21 11572 mov w2, w20 11573 mov w1, w19 11574 ldr x21, [sp, 32] 11575 ldp x19, x20, [sp, 16] 11576 mov w0, 0 11577 ldp x29, x30, [sp], 48 11578 b FtlWrite 11579 .size sftl_write, .-sftl_write 11580 .global g_nand_ops 11581 .global g_nand_phy_info 11582 .global gc_ink_free_return_value 11583 .global check_vpc_table 11584 .global FtlUpdateVaildLpnCount 11585 .global g_ect_tbl_power_up_flush 11586 .global power_up_flag 11587 .global low_format_en 11588 .global gFtlInitStatus 11589 .global DeviceCapacity 11590 .global g_power_lost_recovery_flag 11591 .global c_mlc_erase_count_value 11592 .global g_recovery_ppa_tbl 11593 .global g_recovery_page_min_ver 11594 .global g_recovery_page_num 11595 .global sftl_nand_check_spare_buf 11596 .global sftl_temp_buf 11597 .global sftl_nand_check_buf 11598 .global g_cur_erase_blk 11599 .global g_gc_skip_write_count 11600 .global g_gc_head_data_block_count 11601 .global g_gc_head_data_block 11602 .global g_ftl_nand_free_count 11603 .global g_in_swl_replace 11604 .global g_in_gc_progress 11605 .global g_max_erase_count 11606 .global g_totle_sys_slc_erase_count 11607 .global g_totle_slc_erase_count 11608 .global g_min_erase_count 11609 .global g_totle_avg_erase_count 11610 .global g_totle_mlc_erase_count 11611 .global g_totle_l2p_write_count 11612 .global g_totle_cache_write_count 11613 .global g_tmp_data_superblock_id 11614 .global g_totle_read_page_count 11615 .global g_totle_discard_page_count 11616 .global g_totle_read_sector 11617 .global g_totle_write_sector 11618 .global g_totle_write_page_count 11619 .global g_totle_gc_page_count 11620 .global g_gc_blk_index 11621 .global g_gc_merge_free_blk_threshold 11622 .global g_gc_free_blk_threshold 11623 .global g_gc_bad_block_temp_tbl 11624 .global g_gc_bad_block_gc_index 11625 .global g_gc_bad_block_temp_num 11626 .global g_gc_next_blk_1 11627 .global g_gc_next_blk 11628 .global g_gc_cur_blk_max_valid_pages 11629 .global g_gc_cur_blk_valid_pages 11630 .global g_gc_page_offset 11631 .global g_gc_blk_num 11632 .global p_gc_blk_tbl 11633 .global p_gc_page_info 11634 .global g_sys_ext_data 11635 .global g_sys_save_data 11636 .global gp_last_act_superblock 11637 .global g_gc_superblock 11638 .global g_gc_temp_superblock 11639 .global g_buffer_superblock 11640 .global g_active_superblock 11641 .global g_num_data_superblocks 11642 .global g_num_free_superblocks 11643 .global p_data_block_list_tail 11644 .global p_data_block_list_head 11645 .global p_free_data_block_list_head 11646 .global p_data_block_list_table 11647 .global g_l2p_last_update_region_id 11648 .global p_l2p_map_buf 11649 .global p_l2p_ram_map 11650 .global g_totle_vendor_block 11651 .global p_vendor_region_ppn_table 11652 .global p_vendor_block_ver_table 11653 .global p_vendor_block_valid_page_count 11654 .global p_vendor_block_table 11655 .global g_totle_map_block 11656 .global p_map_region_ppn_table 11657 .global p_map_block_ver_table 11658 .global p_map_block_valid_page_count 11659 .global p_map_block_table 11660 .global p_blk_mode_table 11661 .global p_valid_page_count_check_table 11662 .global p_valid_page_count_table 11663 .global g_totle_swl_count 11664 .global p_swl_mul_table 11665 .global p_erase_count_table 11666 .global g_ect_tbl_info_size 11667 .global gp_ect_tbl_info 11668 .global g_gc_num_req 11669 .global c_gc_page_buf_num 11670 .global gp_gc_page_buf_info 11671 .global p_gc_data_buf 11672 .global p_gc_spare_buf 11673 .global p_io_spare_buf 11674 .global p_io_data_buf_1 11675 .global p_io_data_buf_0 11676 .global p_sys_spare_buf 11677 .global p_vendor_data_buf 11678 .global p_sys_data_buf_1 11679 .global p_sys_data_buf 11680 .global p_plane_order_table 11681 .global req_gc_dst 11682 .global req_gc 11683 .global req_erase 11684 .global req_prgm 11685 .global req_read 11686 .global req_sys 11687 .global gVendorBlkInfo 11688 .global gL2pMapInfo 11689 .global gSysFreeQueue 11690 .global gSysInfo 11691 .global gBbtInfo 11692 .global g_MaxLbn 11693 .global g_VaildLpn 11694 .global g_MaxLpn 11695 .global g_MaxLbaSector 11696 .global g_GlobalDataVersion 11697 .global g_GlobalSysVersion 11698 .global ftl_gc_temp_power_lost_recovery_flag 11699 .global c_ftl_nand_max_data_blks 11700 .global c_ftl_nand_data_op_blks_per_plane 11701 .global c_ftl_nand_data_blks_per_plane 11702 .global c_ftl_nand_max_sys_blks 11703 .global c_ftl_nand_init_sys_blks_per_plane 11704 .global c_ftl_nand_sys_blks_per_plane 11705 .global c_ftl_vendor_part_size 11706 .global c_ftl_nand_max_vendor_blks 11707 .global c_ftl_nand_max_map_blks 11708 .global c_ftl_nand_map_blks_per_plane 11709 .global c_ftl_nand_vendor_region_num 11710 .global c_ftl_nand_l2pmap_ram_region_num 11711 .global c_ftl_nand_map_region_num 11712 .global c_ftl_nand_totle_phy_blks 11713 .global c_ftl_nand_reserved_blks 11714 .global c_ftl_nand_byte_pre_oob 11715 .global c_ftl_nand_byte_pre_page 11716 .global c_ftl_nand_sec_pre_page_shift 11717 .global c_ftl_nand_sec_pre_page 11718 .global c_ftl_nand_page_pre_super_blk 11719 .global c_ftl_nand_page_pre_slc_blk 11720 .global c_ftl_nand_page_pre_blk 11721 .global c_ftl_nand_bbm_buf_size 11722 .global c_ftl_nand_ext_blk_pre_plane 11723 .global c_ftl_nand_blk_pre_plane 11724 .global c_ftl_nand_planes_num 11725 .global c_ftl_nand_blks_per_die_shift 11726 .global c_ftl_nand_blks_per_die 11727 .global c_ftl_nand_planes_per_die 11728 .global c_ftl_nand_die_num 11729 .global c_ftl_nand_type 11730 .section .bss.DeviceCapacity,"aw",@nobits 11731 .align 2 11732 .set .LANCHOR26,. + 0 11733 .type DeviceCapacity, %object 11734 .size DeviceCapacity, 4 11735DeviceCapacity: 11736 .zero 4 11737 .section .bss.FtlUpdateVaildLpnCount,"aw",@nobits 11738 .align 1 11739 .set .LANCHOR58,. + 0 11740 .type FtlUpdateVaildLpnCount, %object 11741 .size FtlUpdateVaildLpnCount, 2 11742FtlUpdateVaildLpnCount: 11743 .zero 2 11744 .section .bss.c_ftl_nand_bbm_buf_size,"aw",@nobits 11745 .align 1 11746 .set .LANCHOR127,. + 0 11747 .type c_ftl_nand_bbm_buf_size, %object 11748 .size c_ftl_nand_bbm_buf_size, 2 11749c_ftl_nand_bbm_buf_size: 11750 .zero 2 11751 .section .bss.c_ftl_nand_blk_pre_plane,"aw",@nobits 11752 .align 1 11753 .set .LANCHOR6,. + 0 11754 .type c_ftl_nand_blk_pre_plane, %object 11755 .size c_ftl_nand_blk_pre_plane, 2 11756c_ftl_nand_blk_pre_plane: 11757 .zero 2 11758 .section .bss.c_ftl_nand_blks_per_die,"aw",@nobits 11759 .align 1 11760 .set .LANCHOR17,. + 0 11761 .type c_ftl_nand_blks_per_die, %object 11762 .size c_ftl_nand_blks_per_die, 2 11763c_ftl_nand_blks_per_die: 11764 .zero 2 11765 .section .bss.c_ftl_nand_blks_per_die_shift,"aw",@nobits 11766 .align 1 11767 .set .LANCHOR18,. + 0 11768 .type c_ftl_nand_blks_per_die_shift, %object 11769 .size c_ftl_nand_blks_per_die_shift, 2 11770c_ftl_nand_blks_per_die_shift: 11771 .zero 2 11772 .section .bss.c_ftl_nand_byte_pre_oob,"aw",@nobits 11773 .align 1 11774 .set .LANCHOR24,. + 0 11775 .type c_ftl_nand_byte_pre_oob, %object 11776 .size c_ftl_nand_byte_pre_oob, 2 11777c_ftl_nand_byte_pre_oob: 11778 .zero 2 11779 .section .bss.c_ftl_nand_byte_pre_page,"aw",@nobits 11780 .align 1 11781 .set .LANCHOR23,. + 0 11782 .type c_ftl_nand_byte_pre_page, %object 11783 .size c_ftl_nand_byte_pre_page, 2 11784c_ftl_nand_byte_pre_page: 11785 .zero 2 11786 .section .bss.c_ftl_nand_data_blks_per_plane,"aw",@nobits 11787 .align 1 11788 .set .LANCHOR5,. + 0 11789 .type c_ftl_nand_data_blks_per_plane, %object 11790 .size c_ftl_nand_data_blks_per_plane, 2 11791c_ftl_nand_data_blks_per_plane: 11792 .zero 2 11793 .section .bss.c_ftl_nand_data_op_blks_per_plane,"aw",@nobits 11794 .align 1 11795 .set .LANCHOR171,. + 0 11796 .type c_ftl_nand_data_op_blks_per_plane, %object 11797 .size c_ftl_nand_data_op_blks_per_plane, 2 11798c_ftl_nand_data_op_blks_per_plane: 11799 .zero 2 11800 .section .bss.c_ftl_nand_die_num,"aw",@nobits 11801 .align 1 11802 .set .LANCHOR10,. + 0 11803 .type c_ftl_nand_die_num, %object 11804 .size c_ftl_nand_die_num, 2 11805c_ftl_nand_die_num: 11806 .zero 2 11807 .section .bss.c_ftl_nand_ext_blk_pre_plane,"aw",@nobits 11808 .align 1 11809 .set .LANCHOR15,. + 0 11810 .type c_ftl_nand_ext_blk_pre_plane, %object 11811 .size c_ftl_nand_ext_blk_pre_plane, 2 11812c_ftl_nand_ext_blk_pre_plane: 11813 .zero 2 11814 .section .bss.c_ftl_nand_init_sys_blks_per_plane,"aw",@nobits 11815 .align 2 11816 .set .LANCHOR31,. + 0 11817 .type c_ftl_nand_init_sys_blks_per_plane, %object 11818 .size c_ftl_nand_init_sys_blks_per_plane, 4 11819c_ftl_nand_init_sys_blks_per_plane: 11820 .zero 4 11821 .section .bss.c_ftl_nand_l2pmap_ram_region_num,"aw",@nobits 11822 .align 1 11823 .set .LANCHOR33,. + 0 11824 .type c_ftl_nand_l2pmap_ram_region_num, %object 11825 .size c_ftl_nand_l2pmap_ram_region_num, 2 11826c_ftl_nand_l2pmap_ram_region_num: 11827 .zero 2 11828 .section .bss.c_ftl_nand_map_blks_per_plane,"aw",@nobits 11829 .align 1 11830 .set .LANCHOR29,. + 0 11831 .type c_ftl_nand_map_blks_per_plane, %object 11832 .size c_ftl_nand_map_blks_per_plane, 2 11833c_ftl_nand_map_blks_per_plane: 11834 .zero 2 11835 .section .bss.c_ftl_nand_map_region_num,"aw",@nobits 11836 .align 1 11837 .set .LANCHOR32,. + 0 11838 .type c_ftl_nand_map_region_num, %object 11839 .size c_ftl_nand_map_region_num, 2 11840c_ftl_nand_map_region_num: 11841 .zero 2 11842 .section .bss.c_ftl_nand_max_data_blks,"aw",@nobits 11843 .align 2 11844 .set .LANCHOR7,. + 0 11845 .type c_ftl_nand_max_data_blks, %object 11846 .size c_ftl_nand_max_data_blks, 4 11847c_ftl_nand_max_data_blks: 11848 .zero 4 11849 .section .bss.c_ftl_nand_max_map_blks,"aw",@nobits 11850 .align 2 11851 .set .LANCHOR30,. + 0 11852 .type c_ftl_nand_max_map_blks, %object 11853 .size c_ftl_nand_max_map_blks, 4 11854c_ftl_nand_max_map_blks: 11855 .zero 4 11856 .section .bss.c_ftl_nand_max_sys_blks,"aw",@nobits 11857 .align 2 11858 .set .LANCHOR4,. + 0 11859 .type c_ftl_nand_max_sys_blks, %object 11860 .size c_ftl_nand_max_sys_blks, 4 11861c_ftl_nand_max_sys_blks: 11862 .zero 4 11863 .section .bss.c_ftl_nand_max_vendor_blks,"aw",@nobits 11864 .align 1 11865 .set .LANCHOR27,. + 0 11866 .type c_ftl_nand_max_vendor_blks, %object 11867 .size c_ftl_nand_max_vendor_blks, 2 11868c_ftl_nand_max_vendor_blks: 11869 .zero 2 11870 .section .bss.c_ftl_nand_page_pre_blk,"aw",@nobits 11871 .align 1 11872 .set .LANCHOR19,. + 0 11873 .type c_ftl_nand_page_pre_blk, %object 11874 .size c_ftl_nand_page_pre_blk, 2 11875c_ftl_nand_page_pre_blk: 11876 .zero 2 11877 .section .bss.c_ftl_nand_page_pre_slc_blk,"aw",@nobits 11878 .align 1 11879 .set .LANCHOR20,. + 0 11880 .type c_ftl_nand_page_pre_slc_blk, %object 11881 .size c_ftl_nand_page_pre_slc_blk, 2 11882c_ftl_nand_page_pre_slc_blk: 11883 .zero 2 11884 .section .bss.c_ftl_nand_page_pre_super_blk,"aw",@nobits 11885 .align 1 11886 .set .LANCHOR21,. + 0 11887 .type c_ftl_nand_page_pre_super_blk, %object 11888 .size c_ftl_nand_page_pre_super_blk, 2 11889c_ftl_nand_page_pre_super_blk: 11890 .zero 2 11891 .section .bss.c_ftl_nand_planes_num,"aw",@nobits 11892 .align 1 11893 .set .LANCHOR3,. + 0 11894 .type c_ftl_nand_planes_num, %object 11895 .size c_ftl_nand_planes_num, 2 11896c_ftl_nand_planes_num: 11897 .zero 2 11898 .section .bss.c_ftl_nand_planes_per_die,"aw",@nobits 11899 .align 1 11900 .set .LANCHOR11,. + 0 11901 .type c_ftl_nand_planes_per_die, %object 11902 .size c_ftl_nand_planes_per_die, 2 11903c_ftl_nand_planes_per_die: 11904 .zero 2 11905 .section .bss.c_ftl_nand_reserved_blks,"aw",@nobits 11906 .align 1 11907 .set .LANCHOR25,. + 0 11908 .type c_ftl_nand_reserved_blks, %object 11909 .size c_ftl_nand_reserved_blks, 2 11910c_ftl_nand_reserved_blks: 11911 .zero 2 11912 .section .bss.c_ftl_nand_sec_pre_page,"aw",@nobits 11913 .align 1 11914 .set .LANCHOR12,. + 0 11915 .type c_ftl_nand_sec_pre_page, %object 11916 .size c_ftl_nand_sec_pre_page, 2 11917c_ftl_nand_sec_pre_page: 11918 .zero 2 11919 .section .bss.c_ftl_nand_sec_pre_page_shift,"aw",@nobits 11920 .align 1 11921 .set .LANCHOR22,. + 0 11922 .type c_ftl_nand_sec_pre_page_shift, %object 11923 .size c_ftl_nand_sec_pre_page_shift, 2 11924c_ftl_nand_sec_pre_page_shift: 11925 .zero 2 11926 .section .bss.c_ftl_nand_sys_blks_per_plane,"aw",@nobits 11927 .align 2 11928 .set .LANCHOR2,. + 0 11929 .type c_ftl_nand_sys_blks_per_plane, %object 11930 .size c_ftl_nand_sys_blks_per_plane, 4 11931c_ftl_nand_sys_blks_per_plane: 11932 .zero 4 11933 .section .bss.c_ftl_nand_totle_phy_blks,"aw",@nobits 11934 .align 2 11935 .set .LANCHOR8,. + 0 11936 .type c_ftl_nand_totle_phy_blks, %object 11937 .size c_ftl_nand_totle_phy_blks, 4 11938c_ftl_nand_totle_phy_blks: 11939 .zero 4 11940 .section .bss.c_ftl_nand_type,"aw",@nobits 11941 .align 1 11942 .set .LANCHOR9,. + 0 11943 .type c_ftl_nand_type, %object 11944 .size c_ftl_nand_type, 2 11945c_ftl_nand_type: 11946 .zero 2 11947 .section .bss.c_ftl_nand_vendor_region_num,"aw",@nobits 11948 .align 1 11949 .set .LANCHOR28,. + 0 11950 .type c_ftl_nand_vendor_region_num, %object 11951 .size c_ftl_nand_vendor_region_num, 2 11952c_ftl_nand_vendor_region_num: 11953 .zero 2 11954 .section .bss.c_ftl_vendor_part_size,"aw",@nobits 11955 .align 1 11956 .set .LANCHOR16,. + 0 11957 .type c_ftl_vendor_part_size, %object 11958 .size c_ftl_vendor_part_size, 2 11959c_ftl_vendor_part_size: 11960 .zero 2 11961 .section .bss.c_gc_page_buf_num,"aw",@nobits 11962 .align 2 11963 .set .LANCHOR67,. + 0 11964 .type c_gc_page_buf_num, %object 11965 .size c_gc_page_buf_num, 4 11966c_gc_page_buf_num: 11967 .zero 4 11968 .section .bss.c_mlc_erase_count_value,"aw",@nobits 11969 .align 1 11970 .set .LANCHOR14,. + 0 11971 .type c_mlc_erase_count_value, %object 11972 .size c_mlc_erase_count_value, 2 11973c_mlc_erase_count_value: 11974 .zero 2 11975 .section .bss.check_vpc_table,"aw",@nobits 11976 .align 3 11977 .type check_vpc_table, %object 11978 .size check_vpc_table, 16384 11979check_vpc_table: 11980 .zero 16384 11981 .section .bss.ftl_gc_temp_power_lost_recovery_flag,"aw",@nobits 11982 .align 2 11983 .set .LANCHOR133,. + 0 11984 .type ftl_gc_temp_power_lost_recovery_flag, %object 11985 .size ftl_gc_temp_power_lost_recovery_flag, 4 11986ftl_gc_temp_power_lost_recovery_flag: 11987 .zero 4 11988 .section .bss.gBbtInfo,"aw",@nobits 11989 .align 3 11990 .set .LANCHOR37,. + 0 11991 .type gBbtInfo, %object 11992 .size gBbtInfo, 96 11993gBbtInfo: 11994 .zero 96 11995 .section .bss.gL2pMapInfo,"aw",@nobits 11996 .align 3 11997 .set .LANCHOR129,. + 0 11998 .type gL2pMapInfo, %object 11999 .size gL2pMapInfo, 64 12000gL2pMapInfo: 12001 .zero 64 12002 .section .bss.gSysFreeQueue,"aw",@nobits 12003 .align 3 12004 .set .LANCHOR38,. + 0 12005 .type gSysFreeQueue, %object 12006 .size gSysFreeQueue, 2056 12007gSysFreeQueue: 12008 .zero 2056 12009 .section .bss.gSysInfo,"aw",@nobits 12010 .align 3 12011 .set .LANCHOR139,. + 0 12012 .type gSysInfo, %object 12013 .size gSysInfo, 16 12014gSysInfo: 12015 .zero 16 12016 .section .bss.gVendorBlkInfo,"aw",@nobits 12017 .align 3 12018 .set .LANCHOR161,. + 0 12019 .type gVendorBlkInfo, %object 12020 .size gVendorBlkInfo, 64 12021gVendorBlkInfo: 12022 .zero 64 12023 .section .bss.g_GlobalDataVersion,"aw",@nobits 12024 .align 2 12025 .set .LANCHOR83,. + 0 12026 .type g_GlobalDataVersion, %object 12027 .size g_GlobalDataVersion, 4 12028g_GlobalDataVersion: 12029 .zero 4 12030 .section .bss.g_GlobalSysVersion,"aw",@nobits 12031 .align 2 12032 .set .LANCHOR82,. + 0 12033 .type g_GlobalSysVersion, %object 12034 .size g_GlobalSysVersion, 4 12035g_GlobalSysVersion: 12036 .zero 4 12037 .section .bss.g_MaxLbaSector,"aw",@nobits 12038 .align 2 12039 .set .LANCHOR34,. + 0 12040 .type g_MaxLbaSector, %object 12041 .size g_MaxLbaSector, 4 12042g_MaxLbaSector: 12043 .zero 4 12044 .section .bss.g_MaxLbn,"aw",@nobits 12045 .align 2 12046 .set .LANCHOR179,. + 0 12047 .type g_MaxLbn, %object 12048 .size g_MaxLbn, 4 12049g_MaxLbn: 12050 .zero 4 12051 .section .bss.g_MaxLpn,"aw",@nobits 12052 .align 2 12053 .set .LANCHOR152,. + 0 12054 .type g_MaxLpn, %object 12055 .size g_MaxLpn, 4 12056g_MaxLpn: 12057 .zero 4 12058 .section .bss.g_VaildLpn,"aw",@nobits 12059 .align 2 12060 .set .LANCHOR59,. + 0 12061 .type g_VaildLpn, %object 12062 .size g_VaildLpn, 4 12063g_VaildLpn: 12064 .zero 4 12065 .section .bss.g_active_superblock,"aw",@nobits 12066 .align 3 12067 .set .LANCHOR51,. + 0 12068 .type g_active_superblock, %object 12069 .size g_active_superblock, 48 12070g_active_superblock: 12071 .zero 48 12072 .section .bss.g_buffer_superblock,"aw",@nobits 12073 .align 3 12074 .set .LANCHOR52,. + 0 12075 .type g_buffer_superblock, %object 12076 .size g_buffer_superblock, 48 12077g_buffer_superblock: 12078 .zero 48 12079 .section .bss.g_cur_erase_blk,"aw",@nobits 12080 .align 2 12081 .set .LANCHOR99,. + 0 12082 .type g_cur_erase_blk, %object 12083 .size g_cur_erase_blk, 4 12084g_cur_erase_blk: 12085 .zero 4 12086 .section .bss.g_ect_tbl_info_size,"aw",@nobits 12087 .align 1 12088 .set .LANCHOR116,. + 0 12089 .type g_ect_tbl_info_size, %object 12090 .size g_ect_tbl_info_size, 2 12091g_ect_tbl_info_size: 12092 .zero 2 12093 .section .bss.g_ect_tbl_power_up_flush,"aw",@nobits 12094 .align 1 12095 .set .LANCHOR164,. + 0 12096 .type g_ect_tbl_power_up_flush, %object 12097 .size g_ect_tbl_power_up_flush, 2 12098g_ect_tbl_power_up_flush: 12099 .zero 2 12100 .section .bss.g_ftl_nand_free_count,"aw",@nobits 12101 .align 2 12102 .set .LANCHOR176,. + 0 12103 .type g_ftl_nand_free_count, %object 12104 .size g_ftl_nand_free_count, 4 12105g_ftl_nand_free_count: 12106 .zero 4 12107 .section .bss.g_gc_bad_block_gc_index,"aw",@nobits 12108 .align 1 12109 .set .LANCHOR76,. + 0 12110 .type g_gc_bad_block_gc_index, %object 12111 .size g_gc_bad_block_gc_index, 2 12112g_gc_bad_block_gc_index: 12113 .zero 2 12114 .section .bss.g_gc_bad_block_temp_num,"aw",@nobits 12115 .align 1 12116 .set .LANCHOR74,. + 0 12117 .type g_gc_bad_block_temp_num, %object 12118 .size g_gc_bad_block_temp_num, 2 12119g_gc_bad_block_temp_num: 12120 .zero 2 12121 .section .bss.g_gc_bad_block_temp_tbl,"aw",@nobits 12122 .align 3 12123 .set .LANCHOR75,. + 0 12124 .type g_gc_bad_block_temp_tbl, %object 12125 .size g_gc_bad_block_temp_tbl, 34 12126g_gc_bad_block_temp_tbl: 12127 .zero 34 12128 .section .bss.g_gc_blk_index,"aw",@nobits 12129 .align 1 12130 .set .LANCHOR102,. + 0 12131 .type g_gc_blk_index, %object 12132 .size g_gc_blk_index, 2 12133g_gc_blk_index: 12134 .zero 2 12135 .section .bss.g_gc_blk_num,"aw",@nobits 12136 .align 1 12137 .set .LANCHOR68,. + 0 12138 .type g_gc_blk_num, %object 12139 .size g_gc_blk_num, 2 12140g_gc_blk_num: 12141 .zero 2 12142 .section .bss.g_gc_cur_blk_max_valid_pages,"aw",@nobits 12143 .align 1 12144 .set .LANCHOR174,. + 0 12145 .type g_gc_cur_blk_max_valid_pages, %object 12146 .size g_gc_cur_blk_max_valid_pages, 2 12147g_gc_cur_blk_max_valid_pages: 12148 .zero 2 12149 .section .bss.g_gc_cur_blk_valid_pages,"aw",@nobits 12150 .align 1 12151 .set .LANCHOR173,. + 0 12152 .type g_gc_cur_blk_valid_pages, %object 12153 .size g_gc_cur_blk_valid_pages, 2 12154g_gc_cur_blk_valid_pages: 12155 .zero 2 12156 .section .bss.g_gc_free_blk_threshold,"aw",@nobits 12157 .align 1 12158 .set .LANCHOR100,. + 0 12159 .type g_gc_free_blk_threshold, %object 12160 .size g_gc_free_blk_threshold, 2 12161g_gc_free_blk_threshold: 12162 .zero 2 12163 .section .bss.g_gc_head_data_block,"aw",@nobits 12164 .align 2 12165 .set .LANCHOR96,. + 0 12166 .type g_gc_head_data_block, %object 12167 .size g_gc_head_data_block, 4 12168g_gc_head_data_block: 12169 .zero 4 12170 .section .bss.g_gc_head_data_block_count,"aw",@nobits 12171 .align 2 12172 .set .LANCHOR97,. + 0 12173 .type g_gc_head_data_block_count, %object 12174 .size g_gc_head_data_block_count, 4 12175g_gc_head_data_block_count: 12176 .zero 4 12177 .section .bss.g_gc_merge_free_blk_threshold,"aw",@nobits 12178 .align 1 12179 .set .LANCHOR101,. + 0 12180 .type g_gc_merge_free_blk_threshold, %object 12181 .size g_gc_merge_free_blk_threshold, 2 12182g_gc_merge_free_blk_threshold: 12183 .zero 2 12184 .section .bss.g_gc_next_blk,"aw",@nobits 12185 .align 1 12186 .set .LANCHOR72,. + 0 12187 .type g_gc_next_blk, %object 12188 .size g_gc_next_blk, 2 12189g_gc_next_blk: 12190 .zero 2 12191 .section .bss.g_gc_next_blk_1,"aw",@nobits 12192 .align 1 12193 .set .LANCHOR73,. + 0 12194 .type g_gc_next_blk_1, %object 12195 .size g_gc_next_blk_1, 2 12196g_gc_next_blk_1: 12197 .zero 2 12198 .section .bss.g_gc_num_req,"aw",@nobits 12199 .align 2 12200 .set .LANCHOR62,. + 0 12201 .type g_gc_num_req, %object 12202 .size g_gc_num_req, 4 12203g_gc_num_req: 12204 .zero 4 12205 .section .bss.g_gc_page_offset,"aw",@nobits 12206 .align 1 12207 .set .LANCHOR70,. + 0 12208 .type g_gc_page_offset, %object 12209 .size g_gc_page_offset, 2 12210g_gc_page_offset: 12211 .zero 2 12212 .section .bss.g_gc_skip_write_count,"aw",@nobits 12213 .align 2 12214 .set .LANCHOR98,. + 0 12215 .type g_gc_skip_write_count, %object 12216 .size g_gc_skip_write_count, 4 12217g_gc_skip_write_count: 12218 .zero 4 12219 .section .bss.g_gc_superblock,"aw",@nobits 12220 .align 3 12221 .set .LANCHOR144,. + 0 12222 .type g_gc_superblock, %object 12223 .size g_gc_superblock, 48 12224g_gc_superblock: 12225 .zero 48 12226 .section .bss.g_gc_temp_superblock,"aw",@nobits 12227 .align 3 12228 .set .LANCHOR53,. + 0 12229 .type g_gc_temp_superblock, %object 12230 .size g_gc_temp_superblock, 48 12231g_gc_temp_superblock: 12232 .zero 48 12233 .section .bss.g_in_gc_progress,"aw",@nobits 12234 .align 2 12235 .set .LANCHOR94,. + 0 12236 .type g_in_gc_progress, %object 12237 .size g_in_gc_progress, 4 12238g_in_gc_progress: 12239 .zero 4 12240 .section .bss.g_in_swl_replace,"aw",@nobits 12241 .align 2 12242 .set .LANCHOR95,. + 0 12243 .type g_in_swl_replace, %object 12244 .size g_in_swl_replace, 4 12245g_in_swl_replace: 12246 .zero 4 12247 .section .bss.g_l2p_last_update_region_id,"aw",@nobits 12248 .align 1 12249 .set .LANCHOR56,. + 0 12250 .type g_l2p_last_update_region_id, %object 12251 .size g_l2p_last_update_region_id, 2 12252g_l2p_last_update_region_id: 12253 .zero 2 12254 .section .bss.g_max_erase_count,"aw",@nobits 12255 .align 2 12256 .set .LANCHOR92,. + 0 12257 .type g_max_erase_count, %object 12258 .size g_max_erase_count, 4 12259g_max_erase_count: 12260 .zero 4 12261 .section .bss.g_min_erase_count,"aw",@nobits 12262 .align 2 12263 .set .LANCHOR93,. + 0 12264 .type g_min_erase_count, %object 12265 .size g_min_erase_count, 4 12266g_min_erase_count: 12267 .zero 4 12268 .section .bss.g_nand_ops,"aw",@nobits 12269 .align 3 12270 .set .LANCHOR78,. + 0 12271 .type g_nand_ops, %object 12272 .size g_nand_ops, 48 12273g_nand_ops: 12274 .zero 48 12275 .section .bss.g_nand_phy_info,"aw",@nobits 12276 .align 3 12277 .set .LANCHOR0,. + 0 12278 .type g_nand_phy_info, %object 12279 .size g_nand_phy_info, 24 12280g_nand_phy_info: 12281 .zero 24 12282 .section .bss.g_num_data_superblocks,"aw",@nobits 12283 .align 1 12284 .set .LANCHOR45,. + 0 12285 .type g_num_data_superblocks, %object 12286 .size g_num_data_superblocks, 2 12287g_num_data_superblocks: 12288 .zero 2 12289 .section .bss.g_num_free_superblocks,"aw",@nobits 12290 .align 1 12291 .set .LANCHOR48,. + 0 12292 .type g_num_free_superblocks, %object 12293 .size g_num_free_superblocks, 2 12294g_num_free_superblocks: 12295 .zero 2 12296 .section .bss.g_power_lost_recovery_flag,"aw",@nobits 12297 .align 1 12298 .set .LANCHOR156,. + 0 12299 .type g_power_lost_recovery_flag, %object 12300 .size g_power_lost_recovery_flag, 2 12301g_power_lost_recovery_flag: 12302 .zero 2 12303 .section .bss.g_recovery_page_min_ver,"aw",@nobits 12304 .align 2 12305 .set .LANCHOR134,. + 0 12306 .type g_recovery_page_min_ver, %object 12307 .size g_recovery_page_min_ver, 4 12308g_recovery_page_min_ver: 12309 .zero 4 12310 .section .bss.g_recovery_page_num,"aw",@nobits 12311 .align 2 12312 .set .LANCHOR157,. + 0 12313 .type g_recovery_page_num, %object 12314 .size g_recovery_page_num, 4 12315g_recovery_page_num: 12316 .zero 4 12317 .section .bss.g_recovery_ppa_tbl,"aw",@nobits 12318 .align 3 12319 .set .LANCHOR158,. + 0 12320 .type g_recovery_ppa_tbl, %object 12321 .size g_recovery_ppa_tbl, 128 12322g_recovery_ppa_tbl: 12323 .zero 128 12324 .section .bss.g_sys_ext_data,"aw",@nobits 12325 .align 3 12326 .set .LANCHOR135,. + 0 12327 .type g_sys_ext_data, %object 12328 .size g_sys_ext_data, 512 12329g_sys_ext_data: 12330 .zero 512 12331 .section .bss.g_sys_save_data,"aw",@nobits 12332 .align 3 12333 .set .LANCHOR39,. + 0 12334 .type g_sys_save_data, %object 12335 .size g_sys_save_data, 48 12336g_sys_save_data: 12337 .zero 48 12338 .section .bss.g_tmp_data_superblock_id,"aw",@nobits 12339 .align 1 12340 .set .LANCHOR131,. + 0 12341 .type g_tmp_data_superblock_id, %object 12342 .size g_tmp_data_superblock_id, 2 12343g_tmp_data_superblock_id: 12344 .zero 2 12345 .section .bss.g_totle_avg_erase_count,"aw",@nobits 12346 .align 2 12347 .set .LANCHOR145,. + 0 12348 .type g_totle_avg_erase_count, %object 12349 .size g_totle_avg_erase_count, 4 12350g_totle_avg_erase_count: 12351 .zero 4 12352 .section .bss.g_totle_cache_write_count,"aw",@nobits 12353 .align 2 12354 .set .LANCHOR87,. + 0 12355 .type g_totle_cache_write_count, %object 12356 .size g_totle_cache_write_count, 4 12357g_totle_cache_write_count: 12358 .zero 4 12359 .section .bss.g_totle_discard_page_count,"aw",@nobits 12360 .align 2 12361 .set .LANCHOR86,. + 0 12362 .type g_totle_discard_page_count, %object 12363 .size g_totle_discard_page_count, 4 12364g_totle_discard_page_count: 12365 .zero 4 12366 .section .bss.g_totle_gc_page_count,"aw",@nobits 12367 .align 2 12368 .set .LANCHOR84,. + 0 12369 .type g_totle_gc_page_count, %object 12370 .size g_totle_gc_page_count, 4 12371g_totle_gc_page_count: 12372 .zero 4 12373 .section .bss.g_totle_l2p_write_count,"aw",@nobits 12374 .align 2 12375 .set .LANCHOR88,. + 0 12376 .type g_totle_l2p_write_count, %object 12377 .size g_totle_l2p_write_count, 4 12378g_totle_l2p_write_count: 12379 .zero 4 12380 .section .bss.g_totle_map_block,"aw",@nobits 12381 .align 1 12382 .set .LANCHOR130,. + 0 12383 .type g_totle_map_block, %object 12384 .size g_totle_map_block, 2 12385g_totle_map_block: 12386 .zero 2 12387 .section .bss.g_totle_mlc_erase_count,"aw",@nobits 12388 .align 2 12389 .set .LANCHOR90,. + 0 12390 .type g_totle_mlc_erase_count, %object 12391 .size g_totle_mlc_erase_count, 4 12392g_totle_mlc_erase_count: 12393 .zero 4 12394 .section .bss.g_totle_read_page_count,"aw",@nobits 12395 .align 2 12396 .set .LANCHOR89,. + 0 12397 .type g_totle_read_page_count, %object 12398 .size g_totle_read_page_count, 4 12399g_totle_read_page_count: 12400 .zero 4 12401 .section .bss.g_totle_read_sector,"aw",@nobits 12402 .align 2 12403 .set .LANCHOR163,. + 0 12404 .type g_totle_read_sector, %object 12405 .size g_totle_read_sector, 4 12406g_totle_read_sector: 12407 .zero 4 12408 .section .bss.g_totle_slc_erase_count,"aw",@nobits 12409 .align 2 12410 .set .LANCHOR91,. + 0 12411 .type g_totle_slc_erase_count, %object 12412 .size g_totle_slc_erase_count, 4 12413g_totle_slc_erase_count: 12414 .zero 4 12415 .section .bss.g_totle_swl_count,"aw",@nobits 12416 .align 2 12417 .set .LANCHOR132,. + 0 12418 .type g_totle_swl_count, %object 12419 .size g_totle_swl_count, 4 12420g_totle_swl_count: 12421 .zero 4 12422 .section .bss.g_totle_sys_slc_erase_count,"aw",@nobits 12423 .align 2 12424 .set .LANCHOR80,. + 0 12425 .type g_totle_sys_slc_erase_count, %object 12426 .size g_totle_sys_slc_erase_count, 4 12427g_totle_sys_slc_erase_count: 12428 .zero 4 12429 .section .bss.g_totle_vendor_block,"aw",@nobits 12430 .align 1 12431 .set .LANCHOR35,. + 0 12432 .type g_totle_vendor_block, %object 12433 .size g_totle_vendor_block, 2 12434g_totle_vendor_block: 12435 .zero 2 12436 .section .bss.g_totle_write_page_count,"aw",@nobits 12437 .align 2 12438 .set .LANCHOR85,. + 0 12439 .type g_totle_write_page_count, %object 12440 .size g_totle_write_page_count, 4 12441g_totle_write_page_count: 12442 .zero 4 12443 .section .bss.g_totle_write_sector,"aw",@nobits 12444 .align 2 12445 .set .LANCHOR162,. + 0 12446 .type g_totle_write_sector, %object 12447 .size g_totle_write_sector, 4 12448g_totle_write_sector: 12449 .zero 4 12450 .section .bss.gc_discard_updated,"aw",@nobits 12451 .align 2 12452 .set .LANCHOR167,. + 0 12453 .type gc_discard_updated, %object 12454 .size gc_discard_updated, 4 12455gc_discard_updated: 12456 .zero 4 12457 .section .bss.gc_ink_free_return_value,"aw",@nobits 12458 .align 1 12459 .set .LANCHOR172,. + 0 12460 .type gc_ink_free_return_value, %object 12461 .size gc_ink_free_return_value, 2 12462gc_ink_free_return_value: 12463 .zero 2 12464 .section .bss.gp_ect_tbl_info,"aw",@nobits 12465 .align 3 12466 .set .LANCHOR118,. + 0 12467 .type gp_ect_tbl_info, %object 12468 .size gp_ect_tbl_info, 8 12469gp_ect_tbl_info: 12470 .zero 8 12471 .section .bss.gp_flash_check_buf,"aw",@nobits 12472 .align 3 12473 .set .LANCHOR184,. + 0 12474 .type gp_flash_check_buf, %object 12475 .size gp_flash_check_buf, 8 12476gp_flash_check_buf: 12477 .zero 8 12478 .section .bss.gp_gc_page_buf_info,"aw",@nobits 12479 .align 3 12480 .set .LANCHOR63,. + 0 12481 .type gp_gc_page_buf_info, %object 12482 .size gp_gc_page_buf_info, 8 12483gp_gc_page_buf_info: 12484 .zero 8 12485 .section .bss.gp_last_act_superblock,"aw",@nobits 12486 .align 3 12487 .type gp_last_act_superblock, %object 12488 .size gp_last_act_superblock, 8 12489gp_last_act_superblock: 12490 .zero 8 12491 .section .bss.idb_buf,"aw",@nobits 12492 .align 3 12493 .set .LANCHOR183,. + 0 12494 .type idb_buf, %object 12495 .size idb_buf, 8 12496idb_buf: 12497 .zero 8 12498 .section .bss.idb_need_write_back,"aw",@nobits 12499 .align 2 12500 .set .LANCHOR182,. + 0 12501 .type idb_need_write_back, %object 12502 .size idb_need_write_back, 4 12503idb_need_write_back: 12504 .zero 4 12505 .section .bss.low_format_en,"aw",@nobits 12506 .align 2 12507 .set .LANCHOR181,. + 0 12508 .type low_format_en, %object 12509 .size low_format_en, 4 12510low_format_en: 12511 .zero 4 12512 .section .bss.p_blk_mode_table,"aw",@nobits 12513 .align 3 12514 .set .LANCHOR1,. + 0 12515 .type p_blk_mode_table, %object 12516 .size p_blk_mode_table, 8 12517p_blk_mode_table: 12518 .zero 8 12519 .section .bss.p_data_block_list_head,"aw",@nobits 12520 .align 3 12521 .set .LANCHOR41,. + 0 12522 .type p_data_block_list_head, %object 12523 .size p_data_block_list_head, 8 12524p_data_block_list_head: 12525 .zero 8 12526 .section .bss.p_data_block_list_table,"aw",@nobits 12527 .align 3 12528 .set .LANCHOR40,. + 0 12529 .type p_data_block_list_table, %object 12530 .size p_data_block_list_table, 8 12531p_data_block_list_table: 12532 .zero 8 12533 .section .bss.p_data_block_list_tail,"aw",@nobits 12534 .align 3 12535 .set .LANCHOR44,. + 0 12536 .type p_data_block_list_tail, %object 12537 .size p_data_block_list_tail, 8 12538p_data_block_list_tail: 12539 .zero 8 12540 .section .bss.p_erase_count_table,"aw",@nobits 12541 .align 3 12542 .set .LANCHOR43,. + 0 12543 .type p_erase_count_table, %object 12544 .size p_erase_count_table, 8 12545p_erase_count_table: 12546 .zero 8 12547 .section .bss.p_free_data_block_list_head,"aw",@nobits 12548 .align 3 12549 .set .LANCHOR47,. + 0 12550 .type p_free_data_block_list_head, %object 12551 .size p_free_data_block_list_head, 8 12552p_free_data_block_list_head: 12553 .zero 8 12554 .section .bss.p_gc_blk_tbl,"aw",@nobits 12555 .align 3 12556 .set .LANCHOR69,. + 0 12557 .type p_gc_blk_tbl, %object 12558 .size p_gc_blk_tbl, 8 12559p_gc_blk_tbl: 12560 .zero 8 12561 .section .bss.p_gc_data_buf,"aw",@nobits 12562 .align 3 12563 .set .LANCHOR64,. + 0 12564 .type p_gc_data_buf, %object 12565 .size p_gc_data_buf, 8 12566p_gc_data_buf: 12567 .zero 8 12568 .section .bss.p_gc_page_info,"aw",@nobits 12569 .align 3 12570 .set .LANCHOR71,. + 0 12571 .type p_gc_page_info, %object 12572 .size p_gc_page_info, 8 12573p_gc_page_info: 12574 .zero 8 12575 .section .bss.p_gc_spare_buf,"aw",@nobits 12576 .align 3 12577 .set .LANCHOR65,. + 0 12578 .type p_gc_spare_buf, %object 12579 .size p_gc_spare_buf, 8 12580p_gc_spare_buf: 12581 .zero 8 12582 .section .bss.p_io_data_buf_0,"aw",@nobits 12583 .align 3 12584 .set .LANCHOR109,. + 0 12585 .type p_io_data_buf_0, %object 12586 .size p_io_data_buf_0, 8 12587p_io_data_buf_0: 12588 .zero 8 12589 .section .bss.p_io_data_buf_1,"aw",@nobits 12590 .align 3 12591 .set .LANCHOR110,. + 0 12592 .type p_io_data_buf_1, %object 12593 .size p_io_data_buf_1, 8 12594p_io_data_buf_1: 12595 .zero 8 12596 .section .bss.p_io_spare_buf,"aw",@nobits 12597 .align 3 12598 .set .LANCHOR115,. + 0 12599 .type p_io_spare_buf, %object 12600 .size p_io_spare_buf, 8 12601p_io_spare_buf: 12602 .zero 8 12603 .section .bss.p_l2p_map_buf,"aw",@nobits 12604 .align 3 12605 .set .LANCHOR126,. + 0 12606 .type p_l2p_map_buf, %object 12607 .size p_l2p_map_buf, 8 12608p_l2p_map_buf: 12609 .zero 8 12610 .section .bss.p_l2p_ram_map,"aw",@nobits 12611 .align 3 12612 .set .LANCHOR55,. + 0 12613 .type p_l2p_ram_map, %object 12614 .size p_l2p_ram_map, 8 12615p_l2p_ram_map: 12616 .zero 8 12617 .section .bss.p_map_block_table,"aw",@nobits 12618 .align 3 12619 .set .LANCHOR119,. + 0 12620 .type p_map_block_table, %object 12621 .size p_map_block_table, 8 12622p_map_block_table: 12623 .zero 8 12624 .section .bss.p_map_block_valid_page_count,"aw",@nobits 12625 .align 3 12626 .set .LANCHOR120,. + 0 12627 .type p_map_block_valid_page_count, %object 12628 .size p_map_block_valid_page_count, 8 12629p_map_block_valid_page_count: 12630 .zero 8 12631 .section .bss.p_map_block_ver_table,"aw",@nobits 12632 .align 3 12633 .set .LANCHOR125,. + 0 12634 .type p_map_block_ver_table, %object 12635 .size p_map_block_ver_table, 8 12636p_map_block_ver_table: 12637 .zero 8 12638 .section .bss.p_map_region_ppn_table,"aw",@nobits 12639 .align 3 12640 .set .LANCHOR124,. + 0 12641 .type p_map_region_ppn_table, %object 12642 .size p_map_region_ppn_table, 8 12643p_map_region_ppn_table: 12644 .zero 8 12645 .section .bss.p_plane_order_table,"aw",@nobits 12646 .align 3 12647 .set .LANCHOR13,. + 0 12648 .type p_plane_order_table, %object 12649 .size p_plane_order_table, 32 12650p_plane_order_table: 12651 .zero 32 12652 .section .bss.p_swl_mul_table,"aw",@nobits 12653 .align 3 12654 .set .LANCHOR117,. + 0 12655 .type p_swl_mul_table, %object 12656 .size p_swl_mul_table, 8 12657p_swl_mul_table: 12658 .zero 8 12659 .section .bss.p_sys_data_buf,"aw",@nobits 12660 .align 3 12661 .set .LANCHOR106,. + 0 12662 .type p_sys_data_buf, %object 12663 .size p_sys_data_buf, 8 12664p_sys_data_buf: 12665 .zero 8 12666 .section .bss.p_sys_data_buf_1,"aw",@nobits 12667 .align 3 12668 .set .LANCHOR107,. + 0 12669 .type p_sys_data_buf_1, %object 12670 .size p_sys_data_buf_1, 8 12671p_sys_data_buf_1: 12672 .zero 8 12673 .section .bss.p_sys_spare_buf,"aw",@nobits 12674 .align 3 12675 .set .LANCHOR114,. + 0 12676 .type p_sys_spare_buf, %object 12677 .size p_sys_spare_buf, 8 12678p_sys_spare_buf: 12679 .zero 8 12680 .section .bss.p_valid_page_count_check_table,"aw",@nobits 12681 .align 3 12682 .type p_valid_page_count_check_table, %object 12683 .size p_valid_page_count_check_table, 8 12684p_valid_page_count_check_table: 12685 .zero 8 12686 .section .bss.p_valid_page_count_table,"aw",@nobits 12687 .align 3 12688 .set .LANCHOR42,. + 0 12689 .type p_valid_page_count_table, %object 12690 .size p_valid_page_count_table, 8 12691p_valid_page_count_table: 12692 .zero 8 12693 .section .bss.p_vendor_block_table,"aw",@nobits 12694 .align 3 12695 .set .LANCHOR36,. + 0 12696 .type p_vendor_block_table, %object 12697 .size p_vendor_block_table, 8 12698p_vendor_block_table: 12699 .zero 8 12700 .section .bss.p_vendor_block_valid_page_count,"aw",@nobits 12701 .align 3 12702 .set .LANCHOR121,. + 0 12703 .type p_vendor_block_valid_page_count, %object 12704 .size p_vendor_block_valid_page_count, 8 12705p_vendor_block_valid_page_count: 12706 .zero 8 12707 .section .bss.p_vendor_block_ver_table,"aw",@nobits 12708 .align 3 12709 .set .LANCHOR122,. + 0 12710 .type p_vendor_block_ver_table, %object 12711 .size p_vendor_block_ver_table, 8 12712p_vendor_block_ver_table: 12713 .zero 8 12714 .section .bss.p_vendor_data_buf,"aw",@nobits 12715 .align 3 12716 .set .LANCHOR108,. + 0 12717 .type p_vendor_data_buf, %object 12718 .size p_vendor_data_buf, 8 12719p_vendor_data_buf: 12720 .zero 8 12721 .section .bss.p_vendor_region_ppn_table,"aw",@nobits 12722 .align 3 12723 .set .LANCHOR123,. + 0 12724 .type p_vendor_region_ppn_table, %object 12725 .size p_vendor_region_ppn_table, 8 12726p_vendor_region_ppn_table: 12727 .zero 8 12728 .section .bss.req_erase,"aw",@nobits 12729 .align 3 12730 .set .LANCHOR79,. + 0 12731 .type req_erase, %object 12732 .size req_erase, 8 12733req_erase: 12734 .zero 8 12735 .section .bss.req_gc,"aw",@nobits 12736 .align 3 12737 .set .LANCHOR66,. + 0 12738 .type req_gc, %object 12739 .size req_gc, 8 12740req_gc: 12741 .zero 8 12742 .section .bss.req_gc_dst,"aw",@nobits 12743 .align 3 12744 .set .LANCHOR104,. + 0 12745 .type req_gc_dst, %object 12746 .size req_gc_dst, 8 12747req_gc_dst: 12748 .zero 8 12749 .section .bss.req_prgm,"aw",@nobits 12750 .align 3 12751 .set .LANCHOR105,. + 0 12752 .type req_prgm, %object 12753 .size req_prgm, 8 12754req_prgm: 12755 .zero 8 12756 .section .bss.req_read,"aw",@nobits 12757 .align 3 12758 .set .LANCHOR103,. + 0 12759 .type req_read, %object 12760 .size req_read, 8 12761req_read: 12762 .zero 8 12763 .section .bss.req_sys,"aw",@nobits 12764 .align 3 12765 .set .LANCHOR138,. + 0 12766 .type req_sys, %object 12767 .size req_sys, 32 12768req_sys: 12769 .zero 32 12770 .section .bss.sftl_nand_check_buf,"aw",@nobits 12771 .align 3 12772 .set .LANCHOR111,. + 0 12773 .type sftl_nand_check_buf, %object 12774 .size sftl_nand_check_buf, 8 12775sftl_nand_check_buf: 12776 .zero 8 12777 .section .bss.sftl_nand_check_spare_buf,"aw",@nobits 12778 .align 3 12779 .set .LANCHOR113,. + 0 12780 .type sftl_nand_check_spare_buf, %object 12781 .size sftl_nand_check_spare_buf, 8 12782sftl_nand_check_spare_buf: 12783 .zero 8 12784 .section .bss.sftl_temp_buf,"aw",@nobits 12785 .align 3 12786 .set .LANCHOR112,. + 0 12787 .type sftl_temp_buf, %object 12788 .size sftl_temp_buf, 8 12789sftl_temp_buf: 12790 .zero 8 12791 .section .data.ftl_gc_temp_block_bops_scan_page_addr,"aw",@progbits 12792 .align 1 12793 .set .LANCHOR160,. + 0 12794 .type ftl_gc_temp_block_bops_scan_page_addr, %object 12795 .size ftl_gc_temp_block_bops_scan_page_addr, 2 12796ftl_gc_temp_block_bops_scan_page_addr: 12797 .hword -1 12798 .section .data.gFtlInitStatus,"aw",@progbits 12799 .align 2 12800 .set .LANCHOR166,. + 0 12801 .type gFtlInitStatus, %object 12802 .size gFtlInitStatus, 4 12803gFtlInitStatus: 12804 .word -1 12805 .section .data.power_up_flag,"aw",@progbits 12806 .align 2 12807 .type power_up_flag, %object 12808 .size power_up_flag, 4 12809power_up_flag: 12810 .word 1 12811 .section .rodata.FlashEraseBlocks.str1.1,"aMS",@progbits,1 12812.LC6: 12813 .string "%s: addr: %x is in id block!!!!!!!!!!\n" 12814.LC7: 12815 .string "not free: w: d:" 12816.LC8: 12817 .string "not free: w: s:" 12818 .section .rodata.FlashProgPages.str1.1,"aMS",@progbits,1 12819.LC11: 12820 .string "prog read error: = %x\n" 12821.LC12: 12822 .string "prog read s error: = %x %x %x\n" 12823.LC13: 12824 .string "prog read d error: = %x %x %x\n" 12825 .section .rodata.FtlBbmMapBadBlock.str1.1,"aMS",@progbits,1 12826.LC0: 12827 .string "phyBlk = 0x%x die = %d block_in_die = 0x%x 0x%8x\n" 12828 .section .rodata.FtlBbmTblFlush.str1.1,"aMS",@progbits,1 12829.LC14: 12830 .string "FtlBbmTblFlush id=%x,page=%x,previd=%x cnt=%d\n" 12831.LC15: 12832 .string "FtlBbmTblFlush error:%x\n" 12833.LC16: 12834 .string "FtlBbmTblFlush error = %x error count = %d\n" 12835 .section .rodata.FtlFreeSysBlkQueueOut.str1.1,"aMS",@progbits,1 12836.LC9: 12837 .string "FtlFreeSysBlkQueueOut = %x, free count = %d, error\n" 12838 .section .rodata.FtlGcScanTempBlk.str1.1,"aMS",@progbits,1 12839.LC31: 12840 .string "FtlGcScanTempBlk Error ID %x %x!!!!!!! \n" 12841 .section .rodata.FtlLoadEctTbl.str1.1,"aMS",@progbits,1 12842.LC33: 12843 .string "no ect" 12844.LC34: 12845 .string "%s\n" 12846 .section .rodata.FtlLoadSysInfo.str1.1,"aMS",@progbits,1 12847.LC38: 12848 .string "%s hash error this.id =%x page =%x pre_id =%x hash =%x hash_r =%x\n" 12849 .section .rodata.FtlMapTblRecovery.str1.1,"aMS",@progbits,1 12850.LC39: 12851 .string "%s last blk_id =%x page =%x hash error hash =%x hash_r =%x\n" 12852.LC40: 12853 .string "%s scan blk_id =%x page =%x hash error hash =%x hash_r =%x\n" 12854 .section .rodata.FtlMapWritePage.str1.1,"aMS",@progbits,1 12855.LC18: 12856 .string "FtlMapWritePage error = %x \n" 12857.LC19: 12858 .string "FtlMapWritePage error = %x error count = %d\n" 12859 .section .rodata.FtlProgPages.str1.1,"aMS",@progbits,1 12860.LC36: 12861 .string "Ftlwrite decrement_vpc_count %x = %d\n" 12862 .section .rodata.FtlRecoverySuperblock.str1.1,"aMS",@progbits,1 12863.LC24: 12864 .string "spuer block %x vpn is 0\n " 12865 .section .rodata.FtlVendorPartRead.str1.1,"aMS",@progbits,1 12866.LC32: 12867 .string "FtlVendorPartRead refresh = %x phyAddr = %x\n" 12868 .section .rodata.FtlVpcTblFlush.str1.1,"aMS",@progbits,1 12869.LC35: 12870 .string "FtlVpcTblFlush error = %x error count = %d\n" 12871 .section .rodata.FtlWrite.str1.1,"aMS",@progbits,1 12872.LC37: 12873 .string "FtlWrite: lpa error:%x %x\n" 12874 .section .rodata.FtlWriteToIDB.str1.1,"aMS",@progbits,1 12875.LC42: 12876 .string "write_idblock fail! %x %x %x %x\n" 12877.LC43: 12878 .string "%s idb buffer alloc fail\n" 12879.LC44: 12880 .string "%p %x %p %x\n" 12881 .section .rodata.INSERT_DATA_LIST.str1.1,"aMS",@progbits,1 12882.LC1: 12883 .string "\n!!!!! error @ func:%s - line:%d\n" 12884 .section .rodata.__func__.6241,"a",@progbits 12885 .align 3 12886 .set .LANCHOR169,. + 0 12887 .type __func__.6241, %object 12888 .size __func__.6241, 13 12889__func__.6241: 12890 .string "FtlProgPages" 12891 .section .rodata.__func__.6269,"a",@progbits 12892 .align 3 12893 .set .LANCHOR177,. + 0 12894 .type __func__.6269, %object 12895 .size __func__.6269, 9 12896__func__.6269: 12897 .string "FtlWrite" 12898 .section .rodata.__func__.6344,"a",@progbits 12899 .align 3 12900 .set .LANCHOR128,. + 0 12901 .type __func__.6344, %object 12902 .size __func__.6344, 14 12903__func__.6344: 12904 .string "FtlBbt2Bitmap" 12905 .section .rodata.__func__.6379,"a",@progbits 12906 .align 3 12907 .set .LANCHOR141,. + 0 12908 .type __func__.6379, %object 12909 .size __func__.6379, 11 12910__func__.6379: 12911 .string "FtlLoadBbt" 12912 .section .rodata.__func__.6494,"a",@progbits 12913 .align 3 12914 .set .LANCHOR49,. + 0 12915 .type __func__.6494, %object 12916 .size __func__.6494, 17 12917__func__.6494: 12918 .string "INSERT_FREE_LIST" 12919 .section .rodata.__func__.6499,"a",@progbits 12920 .align 3 12921 .set .LANCHOR46,. + 0 12922 .type __func__.6499, %object 12923 .size __func__.6499, 17 12924__func__.6499: 12925 .string "INSERT_DATA_LIST" 12926 .section .rodata.__func__.6530,"a",@progbits 12927 .align 3 12928 .set .LANCHOR50,. + 0 12929 .type __func__.6530, %object 12930 .size __func__.6530, 17 12931__func__.6530: 12932 .string "List_remove_node" 12933 .section .rodata.__func__.6562,"a",@progbits 12934 .align 3 12935 .set .LANCHOR54,. + 0 12936 .type __func__.6562, %object 12937 .size __func__.6562, 22 12938__func__.6562: 12939 .string "List_update_data_list" 12940 .section .rodata.__func__.6571,"a",@progbits 12941 .align 3 12942 .set .LANCHOR150,. + 0 12943 .type __func__.6571, %object 12944 .size __func__.6571, 16 12945__func__.6571: 12946 .string "load_l2p_region" 12947 .section .rodata.__func__.6604,"a",@progbits 12948 .align 3 12949 .set .LANCHOR81,. + 0 12950 .type __func__.6604, %object 12951 .size __func__.6604, 26 12952__func__.6604: 12953 .string "ftl_map_blk_alloc_new_blk" 12954 .section .rodata.__func__.6615,"a",@progbits 12955 .align 3 12956 .set .LANCHOR151,. + 0 12957 .type __func__.6615, %object 12958 .size __func__.6615, 15 12959__func__.6615: 12960 .string "ftl_map_blk_gc" 12961 .section .rodata.__func__.6630,"a",@progbits 12962 .align 3 12963 .set .LANCHOR148,. + 0 12964 .type __func__.6630, %object 12965 .size __func__.6630, 31 12966__func__.6630: 12967 .string "Ftl_write_map_blk_to_last_page" 12968 .section .rodata.__func__.6644,"a",@progbits 12969 .align 3 12970 .set .LANCHOR149,. + 0 12971 .type __func__.6644, %object 12972 .size __func__.6644, 16 12973__func__.6644: 12974 .string "FtlMapWritePage" 12975 .section .rodata.__func__.6669,"a",@progbits 12976 .align 3 12977 .set .LANCHOR57,. + 0 12978 .type __func__.6669, %object 12979 .size __func__.6669, 22 12980__func__.6669: 12981 .string "select_l2p_ram_region" 12982 .section .rodata.__func__.6686,"a",@progbits 12983 .align 3 12984 .set .LANCHOR153,. + 0 12985 .type __func__.6686, %object 12986 .size __func__.6686, 9 12987__func__.6686: 12988 .string "log2phys" 12989 .section .rodata.__func__.6750,"a",@progbits 12990 .align 3 12991 .set .LANCHOR165,. + 0 12992 .type __func__.6750, %object 12993 .size __func__.6750, 15 12994__func__.6750: 12995 .string "FtlVpcTblFlush" 12996 .section .rodata.__func__.6772,"a",@progbits 12997 .align 3 12998 .set .LANCHOR140,. + 0 12999 .type __func__.6772, %object 13000 .size __func__.6772, 14 13001__func__.6772: 13002 .string "FtlScanSysBlk" 13003 .section .rodata.__func__.6828,"a",@progbits 13004 .align 3 13005 .set .LANCHOR178,. + 0 13006 .type __func__.6828, %object 13007 .size __func__.6828, 15 13008__func__.6828: 13009 .string "FtlLoadSysInfo" 13010 .section .rodata.__func__.6850,"a",@progbits 13011 .align 3 13012 .set .LANCHOR180,. + 0 13013 .type __func__.6850, %object 13014 .size __func__.6850, 18 13015__func__.6850: 13016 .string "FtlMapTblRecovery" 13017 .section .rodata.__func__.6896,"a",@progbits 13018 .align 3 13019 .set .LANCHOR154,. + 0 13020 .type __func__.6896, %object 13021 .size __func__.6896, 16 13022__func__.6896: 13023 .string "FtlReUsePrevPpa" 13024 .section .rodata.__func__.6930,"a",@progbits 13025 .align 3 13026 .set .LANCHOR155,. + 0 13027 .type __func__.6930, %object 13028 .size __func__.6930, 22 13029__func__.6930: 13030 .string "FtlRecoverySuperblock" 13031 .section .rodata.__func__.6987,"a",@progbits 13032 .align 3 13033 .set .LANCHOR60,. + 0 13034 .type __func__.6987, %object 13035 .size __func__.6987, 16 13036__func__.6987: 13037 .string "make_superblock" 13038 .section .rodata.__func__.7008,"a",@progbits 13039 .align 3 13040 .set .LANCHOR136,. + 0 13041 .type __func__.7008, %object 13042 .size __func__.7008, 18 13043__func__.7008: 13044 .string "SupperBlkListInit" 13045 .section .rodata.__func__.7035,"a",@progbits 13046 .align 3 13047 .set .LANCHOR159,. + 0 13048 .type __func__.7035, %object 13049 .size __func__.7035, 14 13050__func__.7035: 13051 .string "ftl_check_vpc" 13052 .section .rodata.__func__.7100,"a",@progbits 13053 .align 3 13054 .set .LANCHOR143,. + 0 13055 .type __func__.7100, %object 13056 .size __func__.7100, 25 13057__func__.7100: 13058 .string "allocate_data_superblock" 13059 .section .rodata.__func__.7121,"a",@progbits 13060 .align 3 13061 .set .LANCHOR168,. + 0 13062 .type __func__.7121, %object 13063 .size __func__.7121, 29 13064__func__.7121: 13065 .string "allocate_new_data_superblock" 13066 .section .rodata.__func__.7128,"a",@progbits 13067 .align 3 13068 .set .LANCHOR61,. + 0 13069 .type __func__.7128, %object 13070 .size __func__.7128, 19 13071__func__.7128: 13072 .string "get_new_active_ppa" 13073 .section .rodata.__func__.7141,"a",@progbits 13074 .align 3 13075 .set .LANCHOR146,. + 0 13076 .type __func__.7141, %object 13077 .size __func__.7141, 16 13078__func__.7141: 13079 .string "update_vpc_list" 13080 .section .rodata.__func__.7148,"a",@progbits 13081 .align 3 13082 .set .LANCHOR147,. + 0 13083 .type __func__.7148, %object 13084 .size __func__.7148, 20 13085__func__.7148: 13086 .string "decrement_vpc_count" 13087 .section .rodata.__func__.7218,"a",@progbits 13088 .align 3 13089 .set .LANCHOR170,. + 0 13090 .type __func__.7218, %object 13091 .size __func__.7218, 19 13092__func__.7218: 13093 .string "FtlGcFreeTempBlock" 13094 .section .rodata.__func__.7316,"a",@progbits 13095 .align 3 13096 .set .LANCHOR175,. + 0 13097 .type __func__.7316, %object 13098 .size __func__.7316, 23 13099__func__.7316: 13100 .string "rk_ftl_garbage_collect" 13101 .section .rodata.__func__.7578,"a",@progbits 13102 .align 3 13103 .set .LANCHOR137,. + 0 13104 .type __func__.7578, %object 13105 .size __func__.7578, 15 13106__func__.7578: 13107 .string "FlashReadPages" 13108 .section .rodata.__func__.7597,"a",@progbits 13109 .align 3 13110 .set .LANCHOR142,. + 0 13111 .type __func__.7597, %object 13112 .size __func__.7597, 15 13113__func__.7597: 13114 .string "FlashProgPages" 13115 .section .rodata.__func__.7621,"a",@progbits 13116 .align 3 13117 .set .LANCHOR77,. + 0 13118 .type __func__.7621, %object 13119 .size __func__.7621, 17 13120__func__.7621: 13121 .string "FlashEraseBlocks" 13122 .section .rodata.__func__.7736,"a",@progbits 13123 .align 3 13124 .set .LANCHOR185,. + 0 13125 .type __func__.7736, %object 13126 .size __func__.7736, 14 13127__func__.7736: 13128 .string "FtlWriteToIDB" 13129 .section .rodata.decrement_vpc_count.str1.1,"aMS",@progbits,1 13130.LC17: 13131 .string "decrement_vpc_count %x = %d\n" 13132 .section .rodata.ftl_check_vpc.str1.1,"aMS",@progbits,1 13133.LC25: 13134 .string "...%s enter...\n" 13135.LC26: 13136 .string "FtlCheckVpc2 %x = %x %x\n" 13137.LC27: 13138 .string "free blk vpc error %x = %x %x\n" 13139 .section .rodata.ftl_map_blk_alloc_new_blk.str1.1,"aMS",@progbits,1 13140.LC10: 13141 .string "FtlFreeSysBlkQueueOut = %x, free count = %d\n" 13142 .section .rodata.ftl_scan_all_data.str1.1,"aMS",@progbits,1 13143.LC28: 13144 .string "ftl_scan_all_data = %x\n" 13145.LC29: 13146 .string "scan lpa = %x ppa= %x\n" 13147.LC30: 13148 .string "lba = %x,addr= %x,spare= %x %x %x %x data=%x %x\n" 13149 .section .rodata.load_l2p_region.str1.1,"aMS",@progbits,1 13150.LC20: 13151 .string "region_id = %x phyAddr = %x\n" 13152.LC21: 13153 .string "spare:" 13154.LC22: 13155 .string "map_ppn:" 13156.LC23: 13157 .string "load_l2p_region refresh = %x phyAddr = %x\n" 13158 .section .rodata.rknand_print_hex.str1.1,"aMS",@progbits,1 13159.LC2: 13160 .string "%s 0x%x:" 13161.LC3: 13162 .string "%x " 13163.LC4: 13164 .string "%02x " 13165.LC5: 13166 .string "\n" 13167 .section .rodata.sftl_init.str1.1,"aMS",@progbits,1 13168.LC41: 13169 .string "SFTL version: 5.0.50 20181227" 13170 .hidden free 13171