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