From c655c413b278733018e0524473316b22b56ef8f5 Mon Sep 17 00:00:00 2001 From: Zhaoyifeng Date: Wed, 28 Mar 2018 17:28:51 +0800 Subject: [PATCH] drivers: rk_nand: update ftl for rk3226, px30 and rk3308 1. fix gc data lost issue. 2. Add debug interface. Change-Id: I07f572e9ff182dd3cde4080516b13c7de3f2a5bf Signed-off-by: Yifeng Zhao --- drivers/rk_nand/rk_ftlv5_arm64.S | 10128 +++++++------- drivers/rk_nand/rk_zftl_arm64.S | 20849 ++++++++++++++++------------- 2 files changed, 16361 insertions(+), 14616 deletions(-) diff --git a/drivers/rk_nand/rk_ftlv5_arm64.S b/drivers/rk_nand/rk_ftlv5_arm64.S index dd6278a68ca6..2d3c0a2af3e9 100644 --- a/drivers/rk_nand/rk_ftlv5_arm64.S +++ b/drivers/rk_nand/rk_ftlv5_arm64.S @@ -5,7 +5,7 @@ * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. - * date: 2018-03-16 + * date: 2018-04-08 * function: rk ftl v5 for rockchip soc base on arm v8 to support MLC NAND. */ .cpu generic+fp+simd @@ -69,8 +69,8 @@ FlashReadFacBbtData.part.6: ret .size FlashReadFacBbtData.part.6, .-FlashReadFacBbtData.part.6 .align 2 - .type ftl_set_blk_mode.part.18, %function -ftl_set_blk_mode.part.18: + .type ftl_set_blk_mode.part.17, %function +ftl_set_blk_mode.part.17: adrp x1, .LANCHOR0+16 uxth w0, w0 ubfx x2, x0, 5, 11 @@ -82,7 +82,7 @@ ftl_set_blk_mode.part.18: orr w0, w1, w0 str w0, [x3,x2] ret - .size ftl_set_blk_mode.part.18, .-ftl_set_blk_mode.part.18 + .size ftl_set_blk_mode.part.17, .-ftl_set_blk_mode.part.17 .align 2 .global FlashMemCmp8 .type FlashMemCmp8, %function @@ -831,13 +831,13 @@ FlashLoadPhyInfoInRam: .L127: add w19, w19, 1 add x21, x21, 32 - cmp w19, 73 + cmp w19, 74 bne .L130 b .L133 .L132: add x4, x1, x2, lsl 5 mov w0, w2 - ldrb w4, [x4,2624] + ldrb w4, [x4,2656] cmp w4, w3 beq .L131 add x2, x2, 1 @@ -848,7 +848,7 @@ FlashLoadPhyInfoInRam: add x20, x20, :lo12:.LANCHOR1 ubfiz x1, x0, 5, 32 adrp x0, .LANCHOR0 - add x2, x20, 2624 + add x2, x20, 2656 add x0, x0, :lo12:.LANCHOR0 add x1, x2, x1 add x0, x0, 104 @@ -1195,8 +1195,8 @@ ToshibaSetRRPara: stp x23, x24, [sp,48] add x23, x2, x1, sxtw stp x25, x26, [sp,64] - add x21, x2, 2800 - add x25, x2, 2752 + add x21, x2, 2832 + add x25, x2, 2784 adrp x24, g_maxRegNum adrp x26, g_retryMode stp x19, x20, [sp,16] @@ -1213,7 +1213,7 @@ ToshibaSetRRPara: bls .L175 mov w0, 85 str w0, [x22,8] - add x0, x19, 2752 + add x0, x19, 2784 ldrsb w0, [x20,x0] str w0, [x22,4] mov w0, 200 @@ -1229,7 +1229,7 @@ ToshibaSetRRPara: ldrsb w0, [x21,x20] b .L174 .L172: - ldrsb w0, [x23,2896] + ldrsb w0, [x23,2928] .L174: str w0, [x22] add x20, x20, 1 @@ -1256,7 +1256,7 @@ SamsungSetRRPara: add x1, x2, x1, uxtb 2 stp x23, x24, [sp,48] mov x21, x0 - add x23, x1, 2908 + add x23, x1, 2940 mov x20, 0 add x22, x22, :lo12:g_maxRegNum mov w24, 161 @@ -1266,7 +1266,7 @@ SamsungSetRRPara: cmp w0, w20 bls .L179 str w24, [x21,8] - add x0, x19, 2904 + add x0, x19, 2936 str wzr, [x21] ldrsb w0, [x20,x0] str w0, [x21] @@ -1826,9 +1826,9 @@ SandiskSetRRPara: add x2, x2, :lo12:.LANCHOR1 adrp x0, g_maxRegNum smull x1, w19, w1 - add x3, x2, 2752 + add x3, x2, 2784 adrp x4, g_retryMode - add x2, x2, 2800 + add x2, x2, 2832 add x3, x3, x1 add x0, x0, :lo12:g_maxRegNum add x1, x2, x1 @@ -1977,9 +1977,9 @@ HynixGetReadRetryDefault: bne .L271 mov w0, -89 strb w0, [x1,4] - adrp x0, .LANCHOR1+2985 + adrp x0, .LANCHOR1+3017 mov w1, -9 - strb w1, [x0,#:lo12:.LANCHOR1+2985] + strb w1, [x0,#:lo12:.LANCHOR1+3017] b .L326 .L271: cmp w26, 3 @@ -2086,7 +2086,7 @@ HynixGetReadRetryDefault: mov w21, 0 add x26, x25, 4056 add x3, x25, 40 - add x22, x22, 2968 + add x22, x22, 3000 .L277: ldrb w0, [x25,1676] cmp w0, w21 @@ -2490,7 +2490,7 @@ FlashGetReadRetryDefault: strb w1, [x0,-2] adrp x1, .LANCHOR1 add x1, x1, :lo12:.LANCHOR1 - add x1, x1, 2904 + add x1, x1, 2936 b .L381 .L366: sub w0, w0, #65 @@ -2521,7 +2521,7 @@ FlashGetReadRetryDefault: adrp x1, .LANCHOR1 add x1, x1, :lo12:.LANCHOR1 add x0, x0, 4060 - add x1, x1, 2752 + add x1, x1, 2784 mov w2, 45 b .L381 .L369: @@ -2541,7 +2541,7 @@ FlashGetReadRetryDefault: strb w1, [x0,-2] adrp x1, .LANCHOR1 add x1, x1, :lo12:.LANCHOR1 - add x1, x1, 2800 + add x1, x1, 2832 .L381: bl ftl_memcpy .L363: @@ -2745,35 +2745,42 @@ FlashTimingCfg: .type NandcInit, %function NandcInit: stp x29, x30, [sp, -32]! - mov w2, 1 + mov w3, 1 + adrp x1, .LANCHOR2 add x29, sp, 0 stp x19, x20, [sp,16] adrp x20, .LANCHOR0 - adrp x19, .LANCHOR2 + mov x19, x1 + add x2, x20, :lo12:.LANCHOR0 + str w3, [x2,64] + mov w3, 2 + str wzr, [x2,48] + str w3, [x2,80] + mov w3, 3 + str x0, [x2,40] + str w3, [x2,96] + add x3, x1, :lo12:.LANCHOR2 + str x0, [x2,56] + str x0, [x2,72] + str x0, [x2,88] + str x0, [x2,3976] + ldr w2, [x0] + ubfx x4, x2, 13, 1 + str w4, [x3,568] + ldr w4, [x0,352] + and w2, w2, 245760 + orr w2, w2, 256 + ubfx x4, x4, 16, 4 + str w4, [x3,572] + ldr w4, [x0,352] + str w4, [x3,576] + cmp w4, 2049 + bne .L409 + mov w1, 8 + str w1, [x3,572] +.L409: add x20, x20, :lo12:.LANCHOR0 - add x19, x19, :lo12:.LANCHOR2 - str w2, [x20,64] - mov w2, 2 - str x0, [x20,40] - str x0, [x20,56] - str w2, [x20,80] - mov w2, 3 - str x0, [x20,72] - str w2, [x20,96] - str x0, [x20,88] - str x0, [x20,3976] - str wzr, [x20,48] - ldr w1, [x0] - ubfx x2, x1, 13, 1 - str w2, [x19,568] - ldr w2, [x0,352] - and w1, w1, 245760 - orr w1, w1, 256 - ubfx x2, x2, 16, 4 - str w2, [x19,572] - ldr w2, [x0,352] - str w2, [x19,576] - str w1, [x0] + str w2, [x0] ldr x0, [x20,3976] str wzr, [x0,336] mov w0, 40 @@ -2786,12 +2793,13 @@ NandcInit: str w1, [x0,304] mov w0, 36864 bl ftl_malloc - str wzr, [x19,632] - str x0, [x19,584] - str x0, [x19,592] + add x1, x19, :lo12:.LANCHOR2 + str x0, [x1,584] + str x0, [x1,592] add x0, x0, 32768 - str wzr, [x19,640] - str x0, [x19,600] + str wzr, [x1,632] + str x0, [x1,600] + str wzr, [x1,640] ldp x19, x20, [sp,16] ldp x29, x30, [sp], 32 ret @@ -2832,21 +2840,21 @@ NandcBchSel: adrp x1, .LANCHOR2+644 str w0, [x1,#:lo12:.LANCHOR2+644] mov w1, 4096 - bne .L411 -.L414: + bne .L412 +.L415: and w1, w1, -17 - b .L412 -.L411: + b .L413 +.L412: cmp w0, 24 - bne .L413 + bne .L414 orr w1, w1, 16 - b .L412 -.L413: + b .L413 +.L414: cmp w0, 40 orr w1, w1, 262144 orr w1, w1, 16 - beq .L414 -.L412: + beq .L415 +.L413: orr w1, w1, 1 str w1, [x2,12] ret @@ -2897,23 +2905,23 @@ ftl_flash_resume: str w3, [x2,336] ldr w1, [x1,4012] str w1, [x2,344] -.L421: +.L422: lsl x0, x19, 3 ldrb w1, [x0,x20] sub w1, w1, #1 uxtb w1, w1 cmp w1, 253 - bhi .L420 + bhi .L421 mov w0, w19 bl FlashReset -.L420: +.L421: add x19, x19, 1 cmp x19, 4 - bne .L421 + bne .L422 adrp x19, .LANCHOR2 add x19, x19, :lo12:.LANCHOR2 ldrb w0, [x19,565] - cbz w0, .L422 + cbz w0, .L423 mov w0, 1 bl NandcSetMode ldrb w0, [x19,564] @@ -2922,7 +2930,7 @@ ftl_flash_resume: bl NandcSetMode lsr w0, w21, 8 bl NandcSetDdrPara -.L422: +.L423: add x0, x22, :lo12:.LANCHOR0 ldr x0, [x0,1912] ldrb w0, [x0,20] @@ -2955,18 +2963,18 @@ NandcIqrWaitFlashReady: orr w0, w0, 2 str w0, [x19,364] ldr w0, [x19] - tbnz x0, 9, .L429 + tbnz x0, 9, .L430 mov x0, x19 bl wait_for_nand_flash_ready - b .L428 -.L429: + b .L429 +.L430: ldr w0, [x19,368] orr w0, w0, 2 str w0, [x19,368] ldr w0, [x19,364] and w0, w0, -3 str w0, [x19,364] -.L428: +.L429: ldr x19, [sp,16] ldp x29, x30, [sp], 32 ret @@ -2990,17 +2998,17 @@ FlashEraseBlocks: mov x24, x0 ldrb w2, [x20,24] mov w19, 0 - cbz w2, .L432 + cbz w2, .L433 mov w1, w23 bl FlashEraseSLc2KBlocks - b .L433 -.L432: + b .L434 +.L433: mov w27, 56 adrp x28, .LANCHOR2 add x25, x20, 1720 -.L458: +.L464: cmp w19, w23 - bcs .L459 + bcs .L465 umull x5, w19, w27 mov w1, 0 sub w4, w23, w19 @@ -3015,11 +3023,11 @@ FlashEraseBlocks: ldr w0, [x29,124] ldr x5, [x29,96] cmp w0, w1 - bcc .L434 + bcc .L435 mov w0, -1 str w0, [x24,x5] - b .L435 -.L434: + b .L436 +.L435: add x1, x28, :lo12:.LANCHOR2 mov x2, 24 ldrb w1, [x1,648] @@ -3028,9 +3036,9 @@ FlashEraseBlocks: csel w22, w22, wzr, ne madd x1, x1, x2, x25 ldr x1, [x1,8] - cbz x1, .L437 + cbz x1, .L438 bl FlashWaitCmdDone -.L437: +.L438: ldr w1, [x29,124] mov x0, 24 ldr w2, [x29,120] @@ -3038,12 +3046,12 @@ FlashEraseBlocks: str x21, [x0,8] str xzr, [x0,16] str w2, [x0,4] - cbz w22, .L438 + cbz w22, .L439 add w2, w19, 1 umull x2, w2, w27 add x2, x24, x2 str x2, [x0,16] -.L438: +.L439: add x0, x20, x1 ldrb w21, [x0,1680] mov x0, 24 @@ -3052,16 +3060,16 @@ FlashEraseBlocks: strb w21, [x25,x1] bl NandcFlashCs cmp w26, 1 - bne .L439 + bne .L440 ldrb w0, [x20,136] - cbz w0, .L439 + cbz w0, .L440 mov w0, w21 bl flash_enter_slc_mode - b .L440 -.L439: + b .L441 +.L440: mov w0, w21 bl flash_exit_slc_mode -.L440: +.L441: ldr w1, [x29,124] add x0, x20, 1688 add w19, w19, w22 @@ -3077,35 +3085,54 @@ FlashEraseBlocks: bl FlashEraseCmd mov w0, w21 bl NandcFlashDeCs -.L435: +.L436: add w19, w19, 1 - b .L458 -.L459: + b .L464 +.L465: ldr x0, [x29,104] mov x20, 0 mov x21, 24 add x19, x0, :lo12:.LANCHOR0 ldr x0, [x19,3976] bl NandcIqrWaitFlashReady -.L442: +.L443: ldrb w0, [x19,1676] cmp w0, w20 - bls .L460 + bls .L466 mov w0, w20 bl FlashWaitCmdDone cmp w26, 1 - bne .L443 + bne .L444 ldrb w0, [x19,136] - cbz w0, .L443 + cbz w0, .L444 madd x0, x20, x21, x19 ldrb w0, [x0,1720] bl flash_exit_slc_mode -.L443: +.L444: add x20, x20, 1 - b .L442 -.L460: + b .L443 +.L466: + adrp x0, .LANCHOR2+652 + ldr w0, [x0,#:lo12:.LANCHOR2+652] + cbnz w0, .L446 +.L448: mov w0, 0 -.L433: + b .L434 +.L446: + adrp x0, IDByte + ldrb w0, [x0,#:lo12:IDByte] + cmp w0, 69 + bne .L448 + mov x0, 0 + mov x1, 56 +.L447: + cmp w23, w0 + bls .L448 + mul x2, x0, x1 + add x0, x0, 1 + str wzr, [x24,x2] + b .L447 +.L434: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -3143,11 +3170,11 @@ NandcSendDumpDataStart: .type NandcSendDumpDataDone, %function NandcSendDumpDataDone: sub sp, sp, #16 -.L463: +.L469: ldr w1, [x0,8] str w1, [sp,8] ldr w1, [sp,8] - tbz x1, 20, .L463 + tbz x1, 20, .L469 add sp, sp, 16 ret .size NandcSendDumpDataDone, .-NandcSendDumpDataDone @@ -3188,7 +3215,7 @@ NandcXferStart: ldr w0, [x0,572] bfi w20, w3, 4, 1 cmp w0, 3 - bls .L467 + bls .L473 ldr w0, [x21,16] cmp x5, xzr str w0, [x29,88] @@ -3196,11 +3223,11 @@ NandcXferStart: ldr w0, [x29,88] and w0, w0, -5 str w0, [x29,88] - cbnz w7, .L481 - cbz x22, .L468 -.L481: - cbnz w25, .L470 -.L478: + cbnz w7, .L487 + cbz x22, .L474 +.L487: + cbnz w25, .L476 +.L484: mov x0, x21 add w23, w23, 1 asr w23, w23, 1 @@ -3213,11 +3240,11 @@ NandcXferStart: orr w0, w0, 1 str w0, [x21,364] mov x0, x22 - cbnz x22, .L472 + cbnz x22, .L478 add x0, x19, :lo12:.LANCHOR2 ldr x0, [x0,592] - b .L472 -.L470: + b .L478 +.L476: add x1, x19, :lo12:.LANCHOR2 mov w4, 128 mov w2, 0 @@ -3228,26 +3255,26 @@ NandcXferStart: cmp w0, 25 mov w0, 64 csel w4, w0, w4, cc -.L474: +.L480: cmp w3, w8 - bcs .L478 + bcs .L484 lsr w0, w2, 2 ubfiz x0, x0, 2, 30 - cbz w7, .L475 + cbz w7, .L481 ldrh w6, [x5,2] ldr x10, [x1,600] ldrh w11, [x5],4 orr w6, w11, w6, lsl 16 str w6, [x10,x0] - b .L476 -.L475: + b .L482 +.L481: ldr x6, [x1,600] str w9, [x6,x0] -.L476: +.L482: add w3, w3, 1 add w2, w2, w4 - b .L474 -.L472: + b .L480 +.L478: add x19, x19, :lo12:.LANCHOR2 ubfx x23, x20, 22, 5 mov w2, w25 @@ -3277,12 +3304,12 @@ NandcXferStart: ldr w0, [x29,88] orr w0, w0, 448 str w0, [x29,88] - cbnz x22, .L479 + cbnz x22, .L485 ldr w0, [x29,88] mov w1, 2 bfi w0, w1, 3, 3 str w0, [x29,88] -.L479: +.L485: ldr w0, [x29,88] cmp w25, wzr cset w1, eq @@ -3294,10 +3321,10 @@ NandcXferStart: ldr w0, [x29,88] orr w0, w0, 1 str w0, [x29,88] -.L468: +.L474: ldr w0, [x29,88] str w0, [x21,16] -.L467: +.L473: str w24, [x21,12] str w20, [x21,8] orr w20, w20, 4 @@ -3327,36 +3354,36 @@ NandcXferComp: add x0, x20, :lo12:.LANCHOR2 ldr w0, [x0,572] cmp w0, 3 - bls .L516 + bls .L522 ldr w0, [x19,16] - tbz x0, 2, .L516 + tbz x0, 2, .L522 mov x0, x19 bl wait_for_nandc_xfer_completed ldr w21, [x19,16] ldr w0, [x19,8] ubfx x21, x21, 1, 1 str w0, [x29,64] - cbz w21, .L487 + cbz w21, .L493 adrp x22, .LC4 adrp x23, .LC5 mov w21, 0 add x22, x22, :lo12:.LC4 add x23, x23, :lo12:.LC5 -.L488: +.L494: ldr w2, [x19,28] ldr w1, [x29,64] ubfx x2, x2, 16, 5 ubfx x1, x1, 22, 6 cmp w2, w1 - bge .L496 + bge .L502 add x0, x20, :lo12:.LANCHOR2 ldr w0, [x0,572] cmp w0, 5 - bhi .L489 -.L492: + bhi .L495 +.L498: add w21, w21, 1 and w0, w21, 16777215 - cbnz w0, .L488 + cbnz w0, .L494 ldr w2, [x19,28] mov w1, w21 ldr w3, [x29,64] @@ -3369,19 +3396,19 @@ NandcXferComp: mov w2, 4 mov w3, 512 bl rknand_print_hex - b .L488 -.L489: + b .L494 +.L495: ldr w0, [x19] str w0, [x29,72] ldr w0, [x29,72] - tbz x0, 13, .L492 + tbz x0, 13, .L498 ldr w0, [x29,72] - tbz x0, 17, .L492 -.L496: + tbz x0, 17, .L498 +.L502: add x19, x20, :lo12:.LANCHOR2 add x19, x19, 592 ldr w0, [x19,40] - cbz w0, .L497 + cbz w0, .L503 ldr w1, [x29,64] mov w2, 0 ldr w0, [x19,32] @@ -3394,20 +3421,20 @@ NandcXferComp: ubfx x1, x1, 22, 5 lsl w1, w1, 7 bl rknand_dma_unmap_single - b .L497 -.L487: + b .L503 +.L493: adrp x22, .LC6 adrp x23, .LC5 add x22, x22, :lo12:.LC6 add x23, x23, :lo12:.LC5 -.L498: +.L504: ldr w0, [x29,64] - tbnz x0, 20, .L524 + tbnz x0, 20, .L530 ldr w0, [x19,8] add w21, w21, 1 str w0, [x29,64] and w0, w21, 16777215 - cbnz w0, .L498 + cbnz w0, .L504 ldr w2, [x29,64] mov w1, w21 ldr w3, [x19,28] @@ -3419,18 +3446,18 @@ NandcXferComp: mov w2, 4 mov w3, 512 bl rknand_print_hex - b .L498 -.L524: + b .L504 +.L530: add x0, x20, :lo12:.LANCHOR2 ldr w0, [x0,640] - cbz w0, .L501 + cbz w0, .L507 mov x0, x19 bl NandcSendDumpDataStart -.L501: +.L507: add x21, x20, :lo12:.LANCHOR2 add x21, x21, 592 ldr w0, [x21,40] - cbz w0, .L502 + cbz w0, .L508 ldr w1, [x29,64] mov w2, 1 ldr w0, [x21,32] @@ -3443,22 +3470,22 @@ NandcXferComp: ubfx x1, x1, 22, 5 lsl w1, w1, 7 bl rknand_dma_unmap_single -.L502: +.L508: add x0, x20, :lo12:.LANCHOR2 ldr w0, [x0,640] - cbz w0, .L497 + cbz w0, .L503 mov x0, x19 bl NandcSendDumpDataDone -.L497: +.L503: add x20, x20, :lo12:.LANCHOR2 str wzr, [x20,632] - b .L485 -.L516: + b .L491 +.L522: ldr w0, [x19,8] str w0, [x29,64] ldr w0, [x29,64] - tbz x0, 20, .L516 -.L485: + tbz x0, 20, .L522 +.L491: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldr x23, [sp,48] @@ -3481,14 +3508,14 @@ NandcCopy1KB: add x4, x0, 4096 add x21, x0, 512 add x2, x4, x2 - bne .L526 - cbz x3, .L527 + bne .L532 + cbz x3, .L533 mov x0, x2 mov x1, x3 mov w2, 1024 bl ftl_memcpy -.L527: - cbz x20, .L525 +.L533: + cbz x20, .L531 mov w0, 48 lsr w19, w19, 1 ldrb w1, [x20,1] @@ -3502,15 +3529,15 @@ NandcCopy1KB: ldrb w1, [x20,3] orr w0, w0, w1, lsl 24 str w0, [x21,w19,sxtw 2] - b .L525 -.L526: - cbz x3, .L530 + b .L531 +.L532: + cbz x3, .L536 mov x1, x2 mov x0, x3 mov w2, 1024 bl ftl_memcpy -.L530: - cbz x20, .L525 +.L536: + cbz x20, .L531 mov w0, 48 lsr w19, w19, 1 mul w19, w19, w0 @@ -3523,7 +3550,7 @@ NandcCopy1KB: lsr w0, w0, 24 strb w1, [x20,2] strb w0, [x20,3] -.L525: +.L531: ldp x19, x20, [sp,16] ldr x21, [sp,32] ldp x29, x30, [sp], 48 @@ -3550,14 +3577,14 @@ NandcXferData: uxtb w23, w2 mov x25, x3 mov x21, x4 - cbnz x0, .L542 - cbnz x4, .L543 + cbnz x0, .L548 + cbnz x4, .L549 add x0, x29, 112 mov w1, 255 mov w2, 64 add x21, x29, 112 bl ftl_memset -.L543: +.L549: mov w0, w24 mov w1, w20 mov w2, w23 @@ -3568,7 +3595,7 @@ NandcXferData: bl NandcXferStart mov w0, w24 bl NandcXferComp - cbnz w20, .L544 + cbnz w20, .L550 adrp x0, .LANCHOR2 ubfx x3, x23, 1, 7 add x2, x0, :lo12:.LANCHOR2 @@ -3579,10 +3606,10 @@ NandcXferData: mov w1, 64 csel w4, w1, w4, cc mov w1, w20 -.L546: +.L552: cmp x21, x3 add w5, w1, w4 - beq .L588 + beq .L594 ldr x6, [x2,600] and x1, x1, 4294967292 add x21, x21, 4 @@ -3595,29 +3622,29 @@ NandcXferData: lsr w1, w1, 24 strb w1, [x21,-1] mov w1, w5 - b .L546 -.L588: + b .L552 +.L594: add x0, x0, :lo12:.LANCHOR2 lsr w23, w23, 2 ldr w4, [x0,644] ldr w5, [x0,572] mov w0, 0 mov w22, w0 -.L548: +.L554: cmp w0, w23 - bcs .L544 - cbz w4, .L544 + bcs .L550 + cbz w4, .L550 uxtw x1, w0 add x1, x1, 8 ldr w1, [x19,x1,lsl 2] str w1, [x29,104] ldr w1, [x29,104] - tbnz x1, 2, .L572 + tbnz x1, 2, .L578 ldr w3, [x29,104] ubfx x3, x3, 15, 1 - cbnz w3, .L572 + cbnz w3, .L578 cmp w5, 5 - bls .L550 + bls .L556 ldr w2, [x29,104] ubfx x6, x2, 3, 5 ldr w2, [x29,104] @@ -3630,20 +3657,20 @@ NandcXferData: orr w1, w3, w1, lsl 5 ldr w3, [x29,104] cmp w2, w1 - bls .L551 + bls .L557 ldr w1, [x29,104] ubfx x3, x3, 3, 5 ubfx x1, x1, 27, 1 orr w3, w3, w1, lsl 5 - b .L552 -.L551: + b .L558 +.L557: ubfx x1, x3, 16, 5 ldr w3, [x29,104] ubfx x3, x3, 29, 1 - b .L587 -.L550: + b .L593 +.L556: cmp w5, 3 - bls .L552 + bls .L558 ldr w2, [x29,104] ubfx x6, x2, 3, 5 ldr w2, [x29,104] @@ -3656,43 +3683,43 @@ NandcXferData: orr w1, w3, w1, lsl 5 ldr w3, [x29,104] cmp w2, w1 - bls .L553 + bls .L559 ubfx x1, x3, 3, 5 ldr w3, [x29,104] ubfx x3, x3, 28, 1 - b .L587 -.L553: + b .L593 +.L559: ubfx x1, x3, 16, 5 ldr w3, [x29,104] ubfx x3, x3, 30, 1 -.L587: +.L593: orr w3, w1, w3, lsl 5 -.L552: +.L558: cmp w22, w3 csel w22, w22, w3, cs - b .L549 -.L572: - mov w22, -1 -.L549: - add w0, w0, 1 - b .L548 -.L544: - str wzr, [x19,16] b .L555 -.L542: +.L578: + mov w22, -1 +.L555: + add w0, w0, 1 + b .L554 +.L550: + str wzr, [x19,16] + b .L561 +.L548: cmp w20, 1 - bne .L586 + bne .L592 mov w22, 0 mov w27, 2 -.L556: +.L562: cmp w22, w23 - bcs .L589 + bcs .L595 and w26, w22, 3 mov x3, x25 - cbz x25, .L558 + cbz x25, .L564 ubfiz x0, x22, 9, 23 add x3, x25, x0 -.L558: +.L564: cmp x21, xzr mov x0, x19 csel w4, w27, wzr, ne @@ -3711,11 +3738,11 @@ NandcXferData: bl NandcXferStart mov w0, w24 bl NandcXferComp - b .L556 -.L589: + b .L562 +.L595: mov w22, 0 - b .L555 -.L586: + b .L561 +.L592: mov w1, 0 mov x4, 0 mov w26, 0 @@ -3726,16 +3753,16 @@ NandcXferData: mov w22, w26 mov w27, 2 bl NandcXferStart -.L561: +.L567: cmp w26, w23 - bcs .L555 + bcs .L561 mov w0, w24 add w28, w26, 2 bl NandcXferComp ldr w0, [x19,32] cmp w28, w23 str w0, [x29,104] - bcs .L562 + bcs .L568 mov x4, 0 mov w0, w24 mov w1, 0 @@ -3743,9 +3770,9 @@ NandcXferData: and w3, w28, 3 mov x5, x4 bl NandcXferStart -.L562: +.L568: ldr w0, [x29,104] - tbnz x0, 2, .L577 + tbnz x0, 2, .L583 ldr w0, [x29,104] ubfx x1, x0, 3, 5 ldr w0, [x29,104] @@ -3753,16 +3780,16 @@ NandcXferData: orr w0, w1, w0, lsl 5 cmp w22, w0 csel w22, w22, w0, cs - b .L563 -.L577: + b .L569 +.L583: mov w22, -1 -.L563: +.L569: and w2, w26, 3 mov x3, x25 - cbz x25, .L564 + cbz x25, .L570 ubfiz x3, x26, 9, 23 add x3, x25, x3 -.L564: +.L570: cmp x21, xzr mov x0, x19 csel w4, w27, wzr, ne @@ -3771,23 +3798,23 @@ NandcXferData: mov w26, w28 add x4, x21, x4 bl NandcCopy1KB - b .L561 -.L555: - cbnz w20, .L567 + b .L567 +.L561: + cbnz w20, .L573 adrp x0, .LANCHOR2+572 ldr w0, [x0,#:lo12:.LANCHOR2+572] cmp w0, 5 - bls .L567 + bls .L573 ldr w0, [x19] mov w1, 8192 movk w1, 0x2, lsl 16 and w1, w0, w1 cmp w1, 139264 - bne .L567 + bne .L573 orr w0, w0, 131072 mov w22, -1 str w0, [x19] -.L567: +.L573: mov w0, w22 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -3810,7 +3837,7 @@ FlashReadRawPage: str x21, [sp,32] mov x21, x2 ldrb w20, [x0,#:lo12:.LANCHOR1+265] - cbnz w19, .L591 + cbnz w19, .L597 adrp x0, .LANCHOR0 add x0, x0, :lo12:.LANCHOR0 ldrb w5, [x0,25] @@ -3819,7 +3846,7 @@ FlashReadRawPage: cmp w1, w0 mov w0, 4 csel w20, w20, w0, cs -.L591: +.L597: mov w0, w19 str x4, [x29,48] str x1, [x29,56] @@ -3875,7 +3902,7 @@ FlashDdrTunningRead: cmp w0, 8 mov w0, 12 csel w22, w22, w0, cc - cbz w4, .L594 + cbz w4, .L600 mov w0, 1 bl FlashSetInterfaceMode mov w0, 1 @@ -3893,41 +3920,41 @@ FlashDdrTunningRead: ldrb w0, [x27,564] bl NandcSetMode cmn w21, #1 - bne .L595 -.L604: + bne .L601 +.L610: mov w21, -1 - b .L596 -.L595: + b .L602 +.L601: adrp x0, .LC7 mov w1, w25 add x0, x0, :lo12:.LC7 mov w2, w21 bl printk cmp w21, 9 - bhi .L597 + bhi .L603 add x20, x20, x24, sxtw 4 ldr x0, [x20,40] ldr w1, [x0,3840] ldr w1, [x0] orr w1, w1, 131072 str w1, [x0] -.L597: +.L603: add x19, x19, :lo12:.LANCHOR2 - ldr w0, [x19,652] + ldr w0, [x19,656] add w0, w0, 1 - str w0, [x19,652] + str w0, [x19,656] cmp w0, 2047 - bls .L596 + bls .L602 mov x23, 0 - str wzr, [x19,652] + str wzr, [x19,656] mov x28, x23 -.L594: +.L600: mov w19, 0 mov w27, -1 mov w5, w19 mov w6, w19 mov w20, w19 -.L602: +.L608: mov w0, w22 str x5, [x29,104] str x6, [x29,112] @@ -3941,63 +3968,63 @@ FlashDdrTunningRead: ldr x6, [x29,112] cmp w0, w1 ldr x5, [x29,104] - bhi .L598 + bhi .L604 cmp w0, 2 - bhi .L608 + bhi .L614 add w20, w20, 1 cmp w20, 9 - bls .L608 + bls .L614 sub w19, w22, w20 mov w21, w0 mov w27, 0 - b .L600 -.L598: + b .L606 +.L604: cmp w6, w20 - bcs .L609 + bcs .L615 cmp w20, 7 sub w5, w19, w20 - bhi .L610 + bhi .L616 mov w6, w20 - b .L609 -.L608: + b .L615 +.L614: mov x23, 0 mov w19, w22 mov w21, w0 mov w27, 0 mov x28, x23 - b .L599 -.L609: + b .L605 +.L615: mov w20, 0 -.L599: +.L605: add w22, w22, 2 cmp w22, 69 - bls .L602 -.L600: + bls .L608 +.L606: cmp w6, w20 csel w19, w19, w5, cc - b .L601 -.L610: + b .L607 +.L616: mov w19, w5 -.L601: - cbz w19, .L603 +.L607: + cbz w19, .L609 adrp x0, .LC8 mov w1, w19 add x0, x0, :lo12:.LC8 bl printk mov w0, w19 bl NandcSetDdrPara -.L603: - cbz w27, .L596 +.L609: + cbz w27, .L602 adrp x0, .LC9 mov w1, w24 add x0, x0, :lo12:.LC9 mov w2, w25 bl printk - cbz w26, .L604 + cbz w26, .L610 ldr w0, [x29,124] lsr w0, w0, 8 bl NandcSetDdrPara -.L596: +.L602: mov w0, w21 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -4027,17 +4054,17 @@ FlashReadPage: cmn w0, #1 mov w19, w0 adrp x23, .LANCHOR2 - bne .L620 + bne .L626 adrp x21, .LANCHOR0 add x26, x21, :lo12:.LANCHOR0 ldrb w27, [x26,32] - cbnz w27, .L621 -.L623: + cbnz w27, .L627 +.L629: add x0, x23, :lo12:.LANCHOR2 ldrb w0, [x0,565] - cbz w0, .L620 - b .L641 -.L621: + cbz w0, .L626 + b .L647 +.L627: mov w0, w20 mov w1, w22 mov x2, x25 @@ -4046,10 +4073,10 @@ FlashReadPage: bl FlashReadRawPage strb w27, [x26,32] cmn w0, #1 - beq .L623 + beq .L629 mov w19, w0 - b .L620 -.L641: + b .L626 +.L647: add x21, x21, :lo12:.LANCHOR0 mov w1, w22 mov x2, x25 @@ -4061,19 +4088,19 @@ FlashReadPage: bl FlashDdrTunningRead cmn w0, #1 mov w19, w0 - beq .L624 + beq .L630 ldrb w0, [x21,4044] cmp w19, w0, lsr 1 - bls .L620 -.L624: + bls .L626 +.L630: lsr w0, w26, 8 bl NandcSetDdrPara -.L620: +.L626: add x21, x23, :lo12:.LANCHOR2 cmn w19, #1 - ldr x4, [x21,656] - bne .L625 - cbz x4, .L625 + ldr x4, [x21,664] + bne .L631 + cbz x4, .L631 mov w1, w22 mov x2, x25 mov x3, x24 @@ -4087,13 +4114,13 @@ FlashReadPage: mov w3, w22 bl printk cmn w19, #1 - bne .L625 + bne .L631 adrp x0, .LANCHOR0+136 ldrb w0, [x0,#:lo12:.LANCHOR0+136] - cbz w0, .L625 + cbz w0, .L631 mov w0, w20 bl flash_enter_slc_mode - ldr x4, [x21,656] + ldr x4, [x21,664] mov w0, w20 mov w1, w22 mov x2, x25 @@ -4102,7 +4129,7 @@ FlashReadPage: mov w19, w0 mov w0, w20 bl flash_exit_slc_mode -.L625: +.L631: mov w0, w19 ldr x27, [sp,80] ldp x19, x20, [sp,16] @@ -4141,24 +4168,24 @@ FlashDdrParaScan: mov x3, x2 bl FlashReadRawPage cmn w0, #1 - beq .L646 + beq .L652 cmn w22, #1 - bne .L643 -.L646: + bne .L649 +.L652: add x20, x19, :lo12:.LANCHOR2 ldrb w0, [x20,564] - tbz x0, 0, .L643 + tbz x0, 0, .L649 mov w0, 1 bl FlashSetInterfaceMode mov w0, 1 bl NandcSetMode strb wzr, [x20,565] - b .L645 -.L643: + b .L651 +.L649: add x19, x19, :lo12:.LANCHOR2 mov w0, 1 strb w0, [x19,565] -.L645: +.L651: mov w0, 0 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -4192,17 +4219,17 @@ FlashLoadPhyInfo: mov w20, 0 stp x27, x28, [sp,80] add x21, x21, 256 - str x1, [x0,664] - str wzr, [x0,672] + str x1, [x0,672] + str wzr, [x0,680] mov w27, 4 mov w0, 0 mov w24, -1 ldrh w28, [x21,10] bl flash_enter_slc_mode -.L654: +.L660: add w26, w20, 1 mov x22, 0 -.L656: +.L662: add x0, x29, 104 ldrb w0, [x22,x0] bl FlashBchSel @@ -4212,32 +4239,32 @@ FlashLoadPhyInfo: mov x3, 0 bl FlashReadRawPage cmn w0, #1 - bne .L655 + bne .L661 ldr x2, [x19,#:lo12:.LANCHOR0] mov w0, 0 mov w1, w26 mov x3, 0 bl FlashReadRawPage cmn w0, #1 - bne .L655 + bne .L661 add x22, x22, 1 cmp x22, 4 - beq .L657 - b .L656 -.L658: + beq .L663 + b .L662 +.L664: mov w1, 2036 add x0, x26, 12 mov w24, -1 bl JSHash ldr w1, [x26,8] cmp w1, w0 - beq .L668 -.L657: + beq .L674 +.L663: subs w27, w27, #1 add w20, w20, w28 - bne .L654 + bne .L660 mov w0, w27 -.L667: +.L673: bl flash_exit_slc_mode mov w0, w24 ldp x19, x20, [sp,16] @@ -4247,15 +4274,15 @@ FlashLoadPhyInfo: ldp x27, x28, [sp,80] ldp x29, x30, [sp], 112 ret -.L655: +.L661: add x22, x25, :lo12:.LANCHOR2 mov w0, 20036 movk w0, 0x4e41, lsl 16 - ldr x26, [x22,664] + ldr x26, [x22,672] ldr w1, [x26] cmp w1, w0 - bne .L657 - cbnz w24, .L658 + bne .L663 + cbnz w24, .L664 add x23, x23, :lo12:.LANCHOR1 add x19, x19, :lo12:.LANCHOR0 ldrh w0, [x23,266] @@ -4263,42 +4290,42 @@ FlashLoadPhyInfo: mov w0, w24 add w20, w20, 1 str w20, [x19,8] - b .L667 -.L668: + b .L673 +.L674: add x1, x26, 160 mov w2, 32 mov x0, x21 add x24, x19, :lo12:.LANCHOR0 bl ftl_memcpy - ldr x1, [x22,664] + ldr x1, [x22,672] mov w2, 32 add x0, x24, 104 add x1, x1, 192 bl ftl_memcpy - ldr x1, [x22,664] + ldr x1, [x22,672] mov w2, 852 add x0, x24, 4056 add x1, x1, 224 bl ftl_memcpy - str w20, [x22,672] - ldr x1, [x22,664] + str w20, [x22,680] + ldr x1, [x22,672] ldr w0, [x1,1076] strb w0, [x22,565] ldrh w0, [x21,10] udiv w0, w20, w0 add w2, w0, 1 - cbz w0, .L660 + cbz w0, .L666 str w2, [x24,8] - b .L661 -.L660: + b .L667 +.L666: mov w0, 2 str w0, [x24,8] -.L661: +.L667: add x0, x25, :lo12:.LANCHOR2 ldrh w1, [x1,14] mov w24, 0 - strb w1, [x0,676] - b .L657 + strb w1, [x0,684] + b .L663 .size FlashLoadPhyInfo, .-FlashLoadPhyInfo .align 2 .global ToshibaReadRetrial @@ -4335,21 +4362,21 @@ ToshibaReadRetrial: sub w0, w0, #67 uxtb w0, w0 cmp w0, 1 - bls .L670 + bls .L676 adrp x0, .LANCHOR2+565 ldrb w0, [x0,#:lo12:.LANCHOR2+565] - cbz w0, .L671 + cbz w0, .L677 mov w0, w22 mov w22, 1 bl NandcSetDdrMode -.L671: +.L677: ubfiz x0, x28, 8, 8 mov w2, 92 add x0, x24, x0 str w2, [x0,2056] mov w2, 197 str w2, [x0,2056] -.L670: +.L676: adrp x0, g_maxRetryCount mov w21, 1 add x0, x0, :lo12:g_maxRetryCount @@ -4361,44 +4388,44 @@ ToshibaReadRetrial: str x0, [x29,104] ubfiz x0, x28, 8, 8 str x0, [x29,96] -.L672: +.L678: adrp x0, g_maxRetryCount ldrb w0, [x0,#:lo12:g_maxRetryCount] add w0, w0, 1 cmp w21, w0 - bcs .L697 + bcs .L703 ldrb w0, [x20,#:lo12:g_retryMode] mov w1, w21 sub w0, w0, #67 uxtb w0, w0 cmp w0, 1 mov x0, x19 - bhi .L673 + bhi .L679 bl SandiskSetRRPara - b .L674 -.L673: + b .L680 +.L679: bl ToshibaSetRRPara -.L674: +.L680: ldrb w0, [x20,#:lo12:g_retryMode] cmp w0, 34 - bne .L675 + bne .L681 ldr x0, [x29,112] ldrb w0, [x0] sub w0, w0, #3 cmp w21, w0 - bne .L675 + bne .L681 ldr x0, [x29,104] mov w1, 179 add x0, x24, x0 str w1, [x0,8] -.L675: +.L681: ldr x0, [x29,96] mov w1, 38 add x0, x24, x0 str w1, [x0,2056] mov w1, 93 str w1, [x0,2056] - cbz w22, .L676 + cbz w22, .L682 mov w0, 4 bl NandcSetDdrMode ldr w1, [x29,132] @@ -4409,17 +4436,17 @@ ToshibaReadRetrial: mov w28, w0 mov w0, 0 bl NandcSetDdrMode - b .L677 -.L676: + b .L683 +.L682: ldr w1, [x29,132] mov w0, w23 mov x2, x27 mov x3, x26 bl FlashReadRawPage mov w28, w0 -.L677: +.L683: cmn w28, #1 - beq .L678 + beq .L684 ldr x0, [x29,120] cmn w25, #1 csel w25, w25, w28, ne @@ -4427,27 +4454,27 @@ ToshibaReadRetrial: ldrb w0, [x0,4044] add w0, w0, w0, lsl 1 cmp w28, w0, lsr 2 - bcc .L680 + bcc .L686 mov x26, 0 mov x27, x26 -.L678: +.L684: add w21, w21, 1 - b .L672 -.L697: + b .L678 +.L703: mov w28, w25 -.L680: +.L686: ldrb w0, [x20,#:lo12:g_retryMode] mov w1, 0 sub w0, w0, #67 uxtb w0, w0 cmp w0, 1 mov x0, x19 - bhi .L682 + bhi .L688 bl SandiskSetRRPara - b .L683 -.L682: + b .L689 +.L688: bl ToshibaSetRRPara -.L683: +.L689: ldr x0, [x29,136] add x0, x0, 8 add x24, x24, x0, lsl 8 @@ -4458,17 +4485,17 @@ ToshibaReadRetrial: ldrb w0, [x0,4044] add w0, w0, w0, lsl 1 cmp w28, w0, lsr 2 - bcc .L684 + bcc .L690 cmn w28, #1 mov w0, 256 csel w28, w28, w0, eq -.L684: +.L690: mov w0, w23 bl NandcWaitFlashReady - cbz w22, .L685 + cbz w22, .L691 mov w0, 4 bl NandcSetDdrMode -.L685: +.L691: mov w0, w28 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -4508,11 +4535,11 @@ SamsungReadRetrial: ldrb w21, [x2,8] add x21, x21, 8 add x21, x0, x21, lsl 8 -.L699: +.L705: ldrb w0, [x27] add w0, w0, 1 cmp w26, w0 - bcs .L702 + bcs .L708 mov x0, x21 mov w1, w26 bl SamsungSetRRPara @@ -4522,22 +4549,22 @@ SamsungReadRetrial: mov x3, x23 bl FlashReadRawPage cmn w0, #1 - beq .L700 + beq .L706 add x1, x20, :lo12:.LANCHOR0 cmn w19, #1 csel w19, w19, w0, ne ldrb w1, [x1,4044] add w1, w1, w1, lsl 1 cmp w0, w1, lsr 2 - bcc .L705 + bcc .L711 mov x23, 0 mov x24, x23 -.L700: +.L706: add w26, w26, 1 - b .L699 -.L705: + b .L705 +.L711: mov w19, w0 -.L702: +.L708: mov x0, x21 mov w1, 0 add x20, x20, :lo12:.LANCHOR0 @@ -4545,11 +4572,11 @@ SamsungReadRetrial: ldrb w0, [x20,4044] add w0, w0, w0, lsl 1 cmp w19, w0, lsr 2 - bcc .L704 + bcc .L710 cmn w19, #1 mov w0, 256 csel w19, w19, w0, eq -.L704: +.L710: mov w0, w19 ldr x27, [sp,80] ldp x19, x20, [sp,16] @@ -4579,14 +4606,14 @@ MicronReadRetrial: mov x23, x3 ldrb w0, [x0,136] mov x19, x4 - cbnz w0, .L712 + cbnz w0, .L718 add w20, w20, w20, lsl 1 ubfx x20, x20, 2, 8 - b .L713 -.L712: + b .L719 +.L718: mov w0, 3 sdiv w20, w20, w0 -.L713: +.L719: mov w0, w22 adrp x28, g_maxRetryCount mov w27, 0 @@ -4602,10 +4629,10 @@ MicronReadRetrial: ldr x4, [x4,x0] ldrb w21, [x1,8] lsl x6, x21, 8 -.L714: +.L720: ldrb w0, [x28] cmp w27, w0 - bcs .L717 + bcs .L723 add x26, x4, x6 mov w0, 200 str x6, [x29,104] @@ -4632,19 +4659,19 @@ MicronReadRetrial: ldr x7, [x29,120] ldr x4, [x29,112] ldr x6, [x29,104] - beq .L715 + beq .L721 cmn w19, #1 csel w19, w19, w0, ne cmp w0, w20 - bcc .L722 + bcc .L728 mov x23, 0 mov x25, x23 -.L715: +.L721: mov w27, w5 - b .L714 -.L722: + b .L720 +.L728: mov w19, w0 -.L717: +.L723: add x21, x4, x21, lsl 8 mov w0, 239 str w0, [x21,2056] @@ -4657,16 +4684,16 @@ MicronReadRetrial: cmp w19, w20 str wzr, [x21,2048] str wzr, [x21,2048] - bcc .L719 + bcc .L725 cmn w19, #1 mov w0, 256 csel w19, w19, w0, eq -.L719: +.L725: cmn w19, #1 - beq .L723 + beq .L729 cmp w19, 256 - bne .L720 -.L723: + bne .L726 +.L729: adrp x0, .LC11 mov w1, w27 add x0, x0, :lo12:.LC11 @@ -4674,7 +4701,7 @@ MicronReadRetrial: mov w3, w27 mov w4, w19 bl printk -.L720: +.L726: mov w0, w19 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -4709,18 +4736,18 @@ HynixReadRetrial: ldrb w19, [x0,12] ldrb w1, [x1,19] cmp w1, 7 - bne .L733 + bne .L739 ldrb w19, [x0,20] -.L733: +.L739: mov w0, w23 mov w28, 0 mov w20, -1 bl NandcWaitFlashReady add x4, x21, :lo12:.LANCHOR0 add x5, x4, 4060 -.L734: +.L740: cmp w28, w25 - bcs .L738 + bcs .L744 add w19, w19, 1 ldrb w1, [x4,4057] mov x2, x5 @@ -4740,42 +4767,42 @@ HynixReadRetrial: cmn w0, #1 ldr x5, [x29,104] ldr x4, [x29,96] - beq .L736 + beq .L742 ldrb w1, [x4,4044] cmn w20, #1 csel w20, w20, w0, ne add w1, w1, w1, lsl 1 cmp w0, w1, lsr 2 - bcc .L743 + bcc .L749 mov x24, 0 mov x26, x24 -.L736: +.L742: add w28, w28, 1 - b .L734 -.L743: + b .L740 +.L749: mov w20, w0 -.L738: +.L744: add x0, x21, :lo12:.LANCHOR0 ldr x1, [x0,1912] add x0, x0, 4056 add x0, x0, x22 ldrb w1, [x1,19] cmp w1, 7 - bne .L740 + bne .L746 strb w19, [x0,20] - b .L741 -.L740: + b .L747 +.L746: strb w19, [x0,12] -.L741: +.L747: add x21, x21, :lo12:.LANCHOR0 ldrb w0, [x21,4044] add w0, w0, w0, lsl 1 cmp w20, w0, lsr 2 - bcc .L742 + bcc .L748 cmn w20, #1 mov w0, 256 csel w20, w20, w0, eq -.L742: +.L748: mov w0, w20 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -4799,21 +4826,21 @@ FlashProgPage: mov w20, w1 mov x22, x2 ldrb w21, [x0,#:lo12:.LANCHOR1+265] - cbnz w19, .L750 + cbnz w19, .L756 adrp x0, .LANCHOR0 add x0, x0, :lo12:.LANCHOR0 ldrb w1, [x0,25] ldr w2, [x0,28] mul w1, w1, w2 cmp w20, w1 - bcs .L750 + bcs .L756 ldrb w0, [x0,24] - cbnz w0, .L751 + cbnz w0, .L757 sub w21, w21, #2 - b .L750 -.L751: + b .L756 +.L757: mov w21, 4 -.L750: +.L756: mov w0, w19 str x4, [x29,56] bl NandcWaitFlashReady @@ -4861,19 +4888,19 @@ FlashSavePhyInfo: stp x25, x26, [sp,64] ldr x0, [x22,#:lo12:.LANCHOR0] mov w21, 0 - str x0, [x19,664] - ldrb w0, [x19,677] + str x0, [x19,672] + ldrb w0, [x19,685] bl FlashBchSel ldr x0, [x22,#:lo12:.LANCHOR0] mov w1, 0 mov w2, 2048 bl ftl_memset - ldr x1, [x19,664] + ldr x1, [x19,672] mov w0, 20036 movk w0, 0x4e41, lsl 16 mov w2, 32 str w0, [x1] - ldr x0, [x19,664] + ldr x0, [x19,672] ldrb w1, [x20,1676] add x0, x0, 16 strh w1, [x0,-4] @@ -4884,46 +4911,46 @@ FlashSavePhyInfo: adrp x1, IDByte add x1, x1, :lo12:IDByte bl ftl_memcpy - ldr x0, [x19,664] + ldr x0, [x19,672] add x1, x20, 1680 mov w2, 8 add x0, x0, 80 bl ftl_memcpy - ldr x0, [x19,664] + ldr x0, [x19,672] add x1, x20, 1688 mov w2, 32 add x0, x0, 96 bl ftl_memcpy - ldr x0, [x19,664] + ldr x0, [x19,672] adrp x1, .LANCHOR1 add x1, x1, :lo12:.LANCHOR1 mov w2, 32 add x1, x1, 256 add x0, x0, 160 bl ftl_memcpy - ldr x0, [x19,664] + ldr x0, [x19,672] add x1, x20, 104 mov w2, 32 add x0, x0, 192 bl ftl_memcpy - ldr x0, [x19,664] + ldr x0, [x19,672] add x1, x20, 4056 mov w2, 852 add x0, x0, 224 bl ftl_memcpy - ldr x20, [x19,664] + ldr x20, [x19,672] mov w1, 2036 add x0, x20, 12 bl JSHash str w0, [x20,8] mov w0, 1592 str w0, [x20,4] - ldr x0, [x19,680] - str x0, [x19,664] + ldr x0, [x19,688] + str x0, [x19,672] mov w0, 0 mov w19, w21 bl flash_enter_slc_mode -.L755: +.L761: add x20, x22, :lo12:.LANCHOR0 mov w2, 0 mov w0, 0 @@ -4947,39 +4974,39 @@ FlashSavePhyInfo: bl FlashProgPage ldr w1, [x20,28] mov w0, 0 - ldr x2, [x24,680] + ldr x2, [x24,688] mov x3, 0 mul w1, w19, w1 bl FlashReadRawPage cmn w0, #1 - beq .L753 - ldr x25, [x24,664] + beq .L759 + ldr x25, [x24,672] mov w0, 20036 movk w0, 0x4e41, lsl 16 ldr w1, [x25] cmp w1, w0 - bne .L753 + bne .L759 mov w1, 2036 add x0, x25, 12 bl JSHash ldr w1, [x25,8] cmp w1, w0 - bne .L753 + bne .L759 ldr w0, [x20,28] cmp w21, 1 str w26, [x20,8] mul w19, w19, w0 - str w19, [x24,672] - beq .L756 + str w19, [x24,680] + beq .L762 mov w21, 1 -.L753: +.L759: cmp w26, 4 mov w19, w26 - bne .L755 - b .L754 -.L756: + bne .L761 + b .L760 +.L762: mov w21, 2 -.L754: +.L760: mov w0, 0 bl flash_exit_slc_mode cmp w21, wzr @@ -5020,10 +5047,10 @@ FlashReadIdbDataRaw: mov w0, 12336 movk w0, 0x5638, lsl 16 cmp w1, w0 - bne .L762 + bne .L768 mov w0, 0 bl flash_enter_slc_mode -.L762: +.L768: adrp x25, .LC12 mov x0, x27 mov w1, 0 @@ -5032,13 +5059,13 @@ FlashReadIdbDataRaw: mov w20, 2 add x25, x25, :lo12:.LC12 bl ftl_memset -.L763: +.L769: add x0, x21, :lo12:.LANCHOR0 ldrb w0, [x0,25] cmp w20, w0 - bcs .L767 + bcs .L773 mov x23, 0 -.L765: +.L771: add x0, x29, 104 add x19, x21, :lo12:.LANCHOR0 ldrb w26, [x23,x0] @@ -5051,18 +5078,18 @@ FlashReadIdbDataRaw: mul w1, w20, w1 bl FlashReadRawPage cmn w0, #1 - bne .L764 + bne .L770 add x23, x23, 1 cmp x23, 4 - bne .L765 - b .L766 -.L764: + bne .L771 + b .L772 +.L770: ldr x0, [x19] ldr w1, [x0] mov w0, 35899 movk w0, 0xfcdc, lsl 16 cmp w1, w0 - bne .L766 + bne .L772 mov w1, w26 mov x0, x25 bl printk @@ -5075,16 +5102,16 @@ FlashReadIdbDataRaw: strb w0, [x19,25] ldr w0, [x19,8] cmp w0, w20 - bls .L770 + bls .L776 mov w24, 0 str w20, [x19,8] bl FlashSavePhyInfo -.L766: +.L772: add w20, w20, 1 - b .L763 -.L770: + b .L769 +.L776: mov w24, 0 -.L767: +.L773: mov w0, w28 add x22, x22, :lo12:.LANCHOR2 bl FlashBchSel @@ -5092,10 +5119,10 @@ FlashReadIdbDataRaw: mov w0, 12336 movk w0, 0x5638, lsl 16 cmp w1, w0 - bne .L772 + bne .L778 mov w0, 0 bl flash_exit_slc_mode -.L772: +.L778: mov w0, w24 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -5127,38 +5154,38 @@ FlashInit: add x24, x19, :lo12:.LANCHOR0 adrp x23, IDByte bl ftl_malloc - str x0, [x21,680] + str x0, [x21,688] mov w0, 4096 adrp x25, .LC13 add x24, x24, 40 mov w27, 0 bl ftl_malloc - str x0, [x21,688] + str x0, [x21,696] mov w0, 32768 mov w28, 44 bl ftl_malloc - str x0, [x21,696] + str x0, [x21,704] mov w0, 4096 bl ftl_malloc - str x0, [x21,704] + str x0, [x21,712] mov w0, 128 str w0, [x24,-12] mov w0, 60 mov w1, 50 - strb w0, [x21,677] + strb w0, [x21,685] mov x0, x22 strb w1, [x24,-15] - strb w1, [x21,676] + strb w1, [x21,684] str wzr, [x24,-32] strb wzr, [x21,565] - str wzr, [x21,652] + str wzr, [x21,656] add x21, x23, :lo12:IDByte strb wzr, [x24,-16] bl NandcInit add x0, x25, :lo12:.LC13 mov x26, x21 str x0, [x29,104] -.L779: +.L785: uxtb w25, w27 mov w0, w25 bl FlashReset @@ -5193,7 +5220,7 @@ FlashInit: sub w0, w2, #1 uxtb w0, w0 cmp w0, 253 - bhi .L775 + bhi .L781 ldr x0, [x29,104] add w1, w27, 1 ldrb w3, [x21,1] @@ -5202,35 +5229,35 @@ FlashInit: ldrb w6, [x21,4] ldrb w7, [x21,5] bl printk -.L775: - cbnz w27, .L776 +.L781: + cbnz w27, .L782 ldrb w0, [x26] sub w0, w0, #1 uxtb w0, w0 cmp w0, 253 - bhi .L822 + bhi .L829 ldrb w0, [x26,1] cmp w0, 255 - beq .L822 + beq .L829 bl FlashCs123Init -.L776: +.L782: ldrb w0, [x21] cmp w0, 181 - bne .L778 + bne .L784 strb w28, [x21] -.L778: +.L784: add w27, w27, 1 add x24, x24, 16 cmp w27, 4 add x21, x21, 8 - bne .L779 + bne .L785 ldrb w0, [x23,#:lo12:IDByte] cmp w0, 173 - beq .L780 + beq .L786 add x0, x20, :lo12:.LANCHOR2 ldr w0, [x0,568] bl NandcSetDdrMode -.L780: +.L786: add x21, x19, :lo12:.LANCHOR0 mov w1, 0 mov w2, 852 @@ -5248,16 +5275,16 @@ FlashInit: cmp w0, 161 cset w2, eq orr w2, w3, w2 - cbnz w2, .L781 + cbnz w2, .L787 and w2, w0, -33 cmp w2, 209 - beq .L781 + beq .L787 cmp w0, 220 - bne .L782 + bne .L788 ldrb w2, [x4,3] cmp w2, 149 - bne .L782 -.L781: + bne .L788 +.L787: add x2, x19, :lo12:.LANCHOR0 mov w4, 1 mov w5, 16 @@ -5266,91 +5293,91 @@ FlashInit: add x4, x20, :lo12:.LANCHOR2 strb w5, [x2,25] add x2, x1, :lo12:.LANCHOR1 - strb w5, [x4,677] + strb w5, [x4,685] ldrb w5, [x23,#:lo12:IDByte] - strb w5, [x2,3001] - strb w0, [x2,3002] + strb w5, [x2,3033] + strb w0, [x2,3034] cmp w5, 152 - bne .L783 + bne .L789 ldrsb w2, [x6,4] - tbnz w2, #31, .L783 + tbnz w2, #31, .L789 mov w2, 24 - strb w2, [x4,677] -.L783: + strb w2, [x4,685] +.L789: add x2, x20, :lo12:.LANCHOR2 mov w4, 12336 movk w4, 0x5638, lsl 16 ldr w5, [x2,576] cmp w5, w4 - bne .L784 + bne .L790 mov w4, 16 - strb w4, [x2,677] -.L784: - cbz w3, .L785 + strb w4, [x2,685] +.L790: + cbz w3, .L791 add x0, x1, :lo12:.LANCHOR1 mov w2, 2048 - strh w2, [x0,3014] + strh w2, [x0,3046] mov w2, -38 - b .L853 -.L785: + b .L860 +.L791: cmp w0, 220 - bne .L786 + bne .L792 add x0, x1, :lo12:.LANCHOR1 mov w2, 4096 - strh w2, [x0,3014] + strh w2, [x0,3046] mov w2, -36 -.L853: - strb w2, [x0,3002] -.L786: +.L860: + strb w2, [x0,3034] +.L792: add x21, x1, :lo12:.LANCHOR1 add x0, x19, :lo12:.LANCHOR0 - add x1, x21, 2656 + add x1, x21, 2688 mov w2, 32 add x0, x0, 104 bl ftl_memcpy add x0, x21, 256 - add x1, x21, 3000 + add x1, x21, 3032 mov w2, 32 bl ftl_memcpy -.L782: +.L788: add x21, x19, :lo12:.LANCHOR0 ldrb w0, [x21,24] - cbnz w0, .L787 + cbnz w0, .L793 bl FlashLoadPhyInfoInRam - cbnz w0, .L789 + cbnz w0, .L795 ldr x0, [x21,1912] add x21, x20, :lo12:.LANCHOR2 ldrb w1, [x0,17] and w0, w1, 7 strb w0, [x21,564] - tbnz x1, 0, .L789 + tbnz x1, 0, .L795 mov w1, 1 strb w1, [x21,565] bl FlashSetInterfaceMode ldrb w0, [x21,564] bl NandcSetMode -.L789: +.L795: add x0, x19, :lo12:.LANCHOR0 ldr x1, [x0,1912] ldrb w1, [x1,26] strb w1, [x0,136] bl FlashLoadPhyInfo - cbz w0, .L787 + cbz w0, .L793 add x21, x20, :lo12:.LANCHOR2 ldr w0, [x21,568] - cbz w0, .L792 + cbz w0, .L798 mov w0, 1 bl FlashSetInterfaceMode mov w0, 1 - b .L854 -.L792: + b .L861 +.L798: ldrb w0, [x21,564] bl FlashSetInterfaceMode ldrb w0, [x21,564] -.L854: +.L861: bl NandcSetMode bl FlashLoadPhyInfo - cbz w0, .L787 + cbz w0, .L793 mov w0, 1 add x21, x19, :lo12:.LANCHOR0 bl FlashSetInterfaceMode @@ -5363,7 +5390,7 @@ FlashInit: bl printk bl FlashLoadPhyInfoInRam cmn w0, #1 - beq .L777 + beq .L783 bl FlashDieInfoInit ldr x0, [x21,1912] ldrb w0, [x0,19] @@ -5373,31 +5400,31 @@ FlashInit: ldrb w2, [x0,9] add w1, w1, 4095 cmp w2, w1, lsr 12 - blt .L794 + blt .L800 ldrh w1, [x0,14] add w1, w1, 255 cmp w2, w1, lsr 8 - bge .L795 -.L794: + bge .L801 +.L800: ldrh w1, [x0,14] and w1, w1, -256 strh w1, [x0,14] -.L795: +.L801: add x21, x20, :lo12:.LANCHOR2 ldrb w0, [x21,564] tst w0, 6 - beq .L796 + beq .L802 bl FlashSavePhyInfo - ldr w1, [x21,672] + ldr w1, [x21,680] mov w0, 0 bl FlashDdrParaScan -.L796: +.L802: bl FlashSavePhyInfo -.L787: +.L793: add x21, x19, :lo12:.LANCHOR0 add x22, x20, :lo12:.LANCHOR2 ldr x2, [x21,1912] - str xzr, [x22,656] + str xzr, [x22,664] ldrb w0, [x2,26] strb w0, [x21,136] ldrh w0, [x2,16] @@ -5405,7 +5432,7 @@ FlashInit: ubfx x1, x0, 7, 1 strb w1, [x21,32] ubfx x1, x0, 3, 1 - strb w1, [x22,712] + strb w1, [x22,720] ubfx x1, x0, 4, 1 strb w1, [x22,648] ldrb w1, [x2,12] @@ -5417,7 +5444,7 @@ FlashInit: bl FlashDieInfoInit ldr x0, [x21,1912] ldrh w1, [x0,16] - tbz x1, 6, .L798 + tbz x1, 6, .L804 adrp x1, g_retryMode adrp x3, g_maxRegNum ldrb w0, [x0,19] @@ -5432,74 +5459,74 @@ FlashInit: uxtb w2, w2 cmp w2, 6 mov x2, x1 - bhi .L799 + bhi .L805 adrp x1, HynixReadRetrial add x1, x1, :lo12:HynixReadRetrial - str x1, [x22,656] + str x1, [x22,664] sub w1, w0, #5 uxtb w1, w1 cmp w1, 1 - bhi .L800 + bhi .L806 mov w1, 1 str w1, [x22,640] - b .L801 -.L800: + b .L807 +.L806: cmp w0, 7 add x21, x21, 4084 - beq .L802 -.L801: + beq .L808 +.L807: add x21, x19, :lo12:.LANCHOR0 add x21, x21, 4076 -.L802: +.L808: mov x1, 0 mov w2, w1 -.L804: +.L810: ldrsb w3, [x21,x1] add x1, x1, 1 cmp w3, wzr csinc w2, w2, w2, ne cmp x1, 32 - bne .L804 + bne .L810 cmp w2, 27 - bls .L798 + bls .L804 bl FlashGetReadRetryDefault bl FlashSavePhyInfo - b .L798 -.L799: + b .L804 +.L805: sub w3, w0, #17 uxtb w3, w3 cmp w3, 2 - bhi .L806 + bhi .L812 adrp x2, MicronReadRetrial cmp w0, 19 add x2, x2, :lo12:MicronReadRetrial - str x2, [x22,656] - beq .L807 + str x2, [x22,664] + beq .L813 mov w0, 7 - b .L856 -.L807: + b .L863 +.L813: mov w0, 15 -.L856: +.L863: strb w0, [x1,#:lo12:g_maxRetryCount] - b .L798 -.L806: + b .L804 +.L812: sub w1, w0, #65 uxtb w1, w1 cmp w1, 1 - bls .L824 + bls .L831 cmp w0, 33 - bne .L808 -.L824: + bne .L814 +.L831: add x0, x20, :lo12:.LANCHOR2 adrp x1, ToshibaReadRetrial add x1, x1, :lo12:ToshibaReadRetrial - str x1, [x0,656] + str x1, [x0,664] mov w0, 4 strb w0, [x5,#:lo12:g_maxRegNum] mov w0, 7 strb w0, [x2,#:lo12:g_maxRetryCount] - b .L798 -.L808: + b .L804 +.L814: sub w1, w0, #67 uxtb w1, w1 cmp w1, 1 @@ -5507,75 +5534,84 @@ FlashInit: cset w4, ls uxtb w1, w1 cmp w1, 1 - bls .L825 - cbz w4, .L810 -.L825: + bls .L832 + cbz w4, .L816 +.L832: add x1, x20, :lo12:.LANCHOR2 adrp x3, ToshibaReadRetrial add x3, x3, :lo12:ToshibaReadRetrial cmp w0, 35 - str x3, [x1,656] - beq .L812 + str x3, [x1,664] + beq .L818 cmp w0, 68 - beq .L812 + beq .L818 mov w0, 7 - b .L855 -.L812: + b .L862 +.L818: mov w0, 17 -.L855: +.L862: strb w0, [x2,#:lo12:g_maxRetryCount] mov w0, 4 - cbnz w4, .L857 + cbnz w4, .L864 mov w0, 5 -.L857: +.L864: strb w0, [x5,#:lo12:g_maxRegNum] - b .L798 -.L810: + b .L804 +.L816: cmp w0, 49 - bne .L798 + bne .L804 adrp x0, SamsungReadRetrial add x0, x0, :lo12:SamsungReadRetrial - str x0, [x22,656] -.L798: + str x0, [x22,664] +.L804: add x0, x20, :lo12:.LANCHOR2 ldr w1, [x0,576] mov w0, 12336 movk w0, 0x5638, lsl 16 cmp w1, w0 - bne .L815 + bne .L821 add x0, x19, :lo12:.LANCHOR0 - ldrb w1, [x0,136] - cbz w1, .L815 + ldrb w2, [x0,136] + cbz w2, .L821 ldr x0, [x0,1912] strb wzr, [x0,18] -.L815: +.L821: ldrb w0, [x23,#:lo12:IDByte] cmp w0, 44 - bne .L816 + bne .L822 + add x0, x20, :lo12:.LANCHOR2 + ldrb w0, [x0,565] + cbz w0, .L822 + mov w0, 12336 + movk w0, 0x5638, lsl 16 + cmp w1, w0 + bne .L823 + add x0, x19, :lo12:.LANCHOR0 + ldrb w0, [x0,136] + cbnz w0, .L822 +.L823: add x0, x20, :lo12:.LANCHOR2 - ldrb w1, [x0,565] - cbz w1, .L816 strb wzr, [x0,565] mov w0, 1 bl FlashSetInterfaceMode mov w0, 1 bl NandcSetMode -.L816: +.L822: mov w0, 0 bl flash_enter_slc_mode add x1, x20, :lo12:.LANCHOR2 ldrb w0, [x1,564] tst w0, 6 - beq .L817 + beq .L824 ldrb w1, [x1,565] - cbnz w1, .L818 - tbnz x0, 0, .L817 -.L818: + cbnz w1, .L825 + tbnz x0, 0, .L824 +.L825: add x20, x20, :lo12:.LANCHOR2 mov w0, 0 - ldr w1, [x20,672] + ldr w1, [x20,680] bl FlashDdrParaScan -.L817: +.L824: add x19, x19, :lo12:.LANCHOR0 mov w0, 0 mov w20, 16 @@ -5622,7 +5658,7 @@ FlashInit: ldrb w5, [x19,24] strh w2, [x19,4038] cmp w5, 1 - bne .L820 + bne .L827 lsl w2, w2, 1 lsr w4, w4, 1 lsl w3, w3, 1 @@ -5632,15 +5668,15 @@ FlashInit: strh w4, [x19,4030] strh w3, [x19,4036] strh w2, [x19,4042] -.L820: +.L827: ldrb w0, [x1,20] bl FlashBchSel bl ftl_flash_suspend mov w0, 0 - b .L777 -.L822: + b .L783 +.L829: mov w0, -2 -.L777: +.L783: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -5666,52 +5702,52 @@ FlashPageProgMsbFFData: ldr x2, [x0,1912] ldrb w0, [x0,136] ldrb w3, [x2,19] - cbz w0, .L859 + cbz w0, .L866 adrp x0, .LANCHOR2+576 ldr w2, [x0,#:lo12:.LANCHOR2+576] mov w0, 12336 movk w0, 0x5638, lsl 16 cmp w2, w0 - beq .L858 -.L859: + beq .L865 +.L866: sub w0, w3, #5 uxtb w0, w0 cmp w0, 2 - bls .L860 + bls .L867 cmp w3, 68 - beq .L860 + beq .L867 sub w3, w3, #19 and w3, w3, -17 uxtb w3, w3 - cbnz w3, .L858 -.L860: + cbnz w3, .L865 +.L867: add x20, x20, :lo12:.LANCHOR0 mov w21, w1 add x24, x20, 652 mov w25, 65535 adrp x26, .LANCHOR2 -.L862: +.L869: ldr x0, [x20,1912] ldrh w0, [x0,10] cmp w0, w19 - bls .L858 + bls .L865 ldrh w0, [x24,w19,sxtw 1] cmp w0, w25 - bne .L858 + bne .L865 add x23, x26, :lo12:.LANCHOR2 mov w1, 255 mov w2, 32768 - ldr x0, [x23,680] + ldr x0, [x23,688] bl ftl_memset - ldr x2, [x23,680] + ldr x2, [x23,688] add w1, w19, w21 mov w0, w22 mov x3, 0 add w19, w19, 1 bl FlashProgPage uxth w19, w19 - b .L862 -.L858: + b .L869 +.L865: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -5742,9 +5778,9 @@ FlashReadSlc2KPages: add x21, x21, :lo12:.LANCHOR0 add x23, x23, :lo12:.LC15 add x24, x24, :lo12:.LC17 -.L868: +.L875: cmp w22, w25 - beq .L902 + beq .L909 mov w1, w27 sub w4, w25, w22 mov x0, x19 @@ -5755,11 +5791,11 @@ FlashReadSlc2KPages: adrp x5, .LANCHOR0 ldrb w1, [x21,1676] cmp w0, w1 - bcc .L869 + bcc .L876 mov w0, -1 str w0, [x19] - b .L870 -.L869: + b .L877 +.L876: add x0, x21, x0, uxtw ldrb w28, [x0,1680] str x5, [x29,96] @@ -5808,58 +5844,58 @@ FlashReadSlc2KPages: ldrb w0, [x0,4044] add w0, w0, w0, lsl 1 cmp w3, w0, lsr 2 - bls .L873 + bls .L880 cmn w3, #1 mov w0, 256 csel w3, w3, w0, eq -.L873: +.L880: cmp w3, 256 - beq .L884 + beq .L891 cmn w3, #1 - bne .L874 -.L884: + bne .L881 +.L891: str w3, [x19] - b .L876 -.L874: + b .L883 +.L881: str wzr, [x19] -.L876: +.L883: ldr x0, [x19,16] - cbz x0, .L877 + cbz x0, .L884 ldr w1, [x0,8] cmn w1, #1 - bne .L877 + bne .L884 ldr w0, [x0] cmn w0, #1 - beq .L877 + beq .L884 str w1, [x19] -.L877: +.L884: ldr w3, [x19] cmn w3, #1 - bne .L870 + bne .L877 add x5, x5, :lo12:.LANCHOR0 ldr w1, [x19,4] mov x0, x23 ldrb w2, [x5,4044] bl printk ldr x1, [x19,8] - cbz x1, .L879 + cbz x1, .L886 adrp x0, .LC16 mov w2, 4 add x0, x0, :lo12:.LC16 mov w3, 8 bl rknand_print_hex -.L879: +.L886: ldr x1, [x19,16] - cbz x1, .L870 + cbz x1, .L877 mov w2, 4 mov x0, x24 mov w3, w2 bl rknand_print_hex -.L870: +.L877: add w22, w22, 1 add x19, x19, 56 - b .L868 -.L902: + b .L875 +.L909: mov w0, 0 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -5891,10 +5927,10 @@ FlashReadPages: ldrb w23, [x3,24] str w2, [x29,140] str w4, [x29,136] - cbz w23, .L943 + cbz w23, .L950 bl FlashReadSlc2KPages - b .L992 -.L943: + b .L999 +.L950: adrp x0, .LC15 mov w25, w23 add x0, x0, :lo12:.LC15 @@ -5905,10 +5941,10 @@ FlashReadPages: adrp x0, .LC18 add x0, x0, :lo12:.LC18 str x0, [x29,112] -.L904: +.L911: ldr w0, [x29,144] cmp w25, w0 - bcs .L994 + bcs .L1001 mov w27, 56 ldr w0, [x29,144] ldr w1, [x29,140] @@ -5925,17 +5961,17 @@ FlashReadPages: ldr w0, [x29,168] ldrb w2, [x1,1676] cmp w0, w2 - bcc .L906 + bcc .L913 mov w0, -1 str w0, [x26,x27] - b .L907 -.L906: + b .L914 +.L913: add x0, x1, x0, uxtw adrp x24, .LANCHOR2 ldrb w19, [x0,1680] add x0, x24, :lo12:.LANCHOR2 str x1, [x29,152] - ldrb w0, [x0,712] + ldrb w0, [x0,720] cmp w0, wzr mov w0, w19 csel w20, w20, wzr, ne @@ -5946,26 +5982,26 @@ FlashReadPages: sub w0, w2, #1 uxtb w0, w0 cmp w0, 6 - bhi .L909 + bhi .L916 add x1, x1, 4056 sxtw x0, w19 add x1, x1, x0 cmp w2, 7 ldrb w3, [x1,12] - bne .L910 + bne .L917 ldrb w3, [x1,20] -.L910: +.L917: add x1, x24, :lo12:.LANCHOR2 add x0, x1, x0 ldrb w0, [x0,560] cmp w0, w3 - beq .L909 + beq .L916 add x2, x22, :lo12:.LANCHOR0 mov w0, w19 add x2, x2, 4060 ldrb w1, [x2,-3] bl HynixSetRRPara -.L909: +.L916: mov w0, w19 bl NandcFlashCs ldr w0, [x29,140] @@ -5973,38 +6009,38 @@ FlashReadPages: cset w0, eq orr w0, w0, w28, lsr 31 str w0, [x29,152] - cbz w0, .L911 + cbz w0, .L918 add x0, x22, :lo12:.LANCHOR0 ldrb w0, [x0,136] - cbz w0, .L911 + cbz w0, .L918 mov w0, w19 bl flash_enter_slc_mode - b .L912 -.L911: + b .L919 +.L918: mov w0, w19 bl flash_exit_slc_mode -.L912: +.L919: cmp w19, 255 ldr w1, [x29,172] - bne .L950 + bne .L957 cmn w1, #1 cset w0, ne - cbz w0, .L944 -.L950: - cbz w20, .L916 + cbz w0, .L951 +.L957: + cbz w20, .L923 add x0, x22, :lo12:.LANCHOR0 ldr w2, [x0,28] mov w0, w19 add w2, w1, w2 bl FlashReadDpCmd - b .L917 -.L916: + b .L924 +.L923: mov w0, w19 bl FlashReadCmd - b .L917 -.L944: + b .L924 +.L951: mov w20, w0 -.L914: +.L921: ldrb w2, [x29,148] mov w0, w19 ldr x3, [x21,8] @@ -6013,15 +6049,15 @@ FlashReadPages: bl NandcXferData cmn w0, #1 mov w28, w0 - bne .L918 + bne .L925 add x0, x22, :lo12:.LANCHOR0 ldrb w1, [x0,32] - cbz w1, .L918 + cbz w1, .L925 strb wzr, [x0,32] mov w20, 0 - b .L912 -.L918: - cbz w20, .L919 + b .L919 +.L925: + cbz w20, .L926 add x0, x22, :lo12:.LANCHOR0 ldr w1, [x29,172] ldr w2, [x0,28] @@ -6041,23 +6077,23 @@ FlashReadPages: cmn w0, #1 mov w23, w0 csel w20, w20, wzr, ne -.L919: +.L926: mov w0, w19 bl NandcFlashDeCs add x6, x22, :lo12:.LANCHOR0 ldrb w0, [x29,136] cmn w28, #1 strb w0, [x6,32] - bne .L926 + bne .L933 add x0, x24, :lo12:.LANCHOR2 ldrb w0, [x0,565] - cbnz w0, .L921 -.L925: + cbnz w0, .L928 +.L932: add x0, x24, :lo12:.LANCHOR2 - ldr x20, [x0,656] - cbnz x20, .L922 - b .L995 -.L921: + ldr x20, [x0,664] + cbnz x20, .L929 + b .L1002 +.L928: ldr x0, [x6,3976] mov w4, 1 ldr w1, [x29,172] @@ -6069,18 +6105,18 @@ FlashReadPages: bl FlashDdrTunningRead cmn w0, #1 mov w28, w0 - beq .L924 + beq .L931 ldr x6, [x29,104] ldrb w0, [x6,4044] cmp w28, w0, lsr 1 - bls .L946 -.L924: + bls .L953 +.L931: lsr w0, w20, 8 bl NandcSetDdrPara cmn w28, #1 - beq .L925 - b .L946 -.L922: + beq .L932 + b .L953 +.L929: ldr w1, [x29,172] mov w0, w19 ldr x2, [x21,8] @@ -6089,20 +6125,20 @@ FlashReadPages: cmn w0, #1 mov w28, w0 mov w20, 0 - bne .L927 + bne .L934 add x2, x22, :lo12:.LANCHOR0 ldr x0, [x2,1912] ldrb w0, [x0,19] sub w0, w0, #1 uxtb w0, w0 cmp w0, 6 - bhi .L928 + bhi .L935 ldrb w1, [x2,4057] mov w0, w19 add x2, x2, 4060 mov w3, w20 bl HynixSetRRPara -.L928: +.L935: ldr w1, [x29,172] mov w0, w19 ldr x2, [x21,8] @@ -6119,123 +6155,123 @@ FlashReadPages: bl printk cmn w28, #1 ldr x4, [x29,104] - bne .L927 + bne .L934 ldrb w0, [x4,136] - cbz w0, .L927 + cbz w0, .L934 ldr w0, [x29,152] - cbz w0, .L929 + cbz w0, .L936 mov w0, w19 bl flash_enter_slc_mode - b .L930 -.L929: + b .L937 +.L936: mov w0, w19 bl flash_exit_slc_mode -.L930: +.L937: add x0, x24, :lo12:.LANCHOR2 ldr w1, [x29,172] ldr x2, [x21,8] mov w20, 0 ldr x3, [x21,16] - ldr x4, [x0,656] + ldr x4, [x0,664] mov w0, w19 blr x4 mov w28, w0 - b .L927 -.L995: + b .L934 +.L1002: ldr w1, [x29,172] mov w0, w19 ldr x2, [x21,8] ldr x3, [x21,16] bl FlashReadRawPage mov w28, w0 - b .L927 -.L946: + b .L934 +.L953: mov w20, 0 -.L926: +.L933: add x0, x22, :lo12:.LANCHOR0 ldrb w0, [x0,4044] add w0, w0, w0, lsl 1 cmp w28, w0, lsr 2 - bls .L927 + bls .L934 add x0, x24, :lo12:.LANCHOR2 - ldr x0, [x0,656] + ldr x0, [x0,664] cmp x0, xzr mov w0, 256 csel w28, w28, w0, ne -.L927: +.L934: cmp w28, 256 - beq .L951 + beq .L958 cmn w28, #1 - bne .L931 -.L951: + bne .L938 +.L958: str w28, [x26,x27] - b .L933 -.L931: + b .L940 +.L938: str wzr, [x26,x27] -.L933: +.L940: ldr w3, [x26,x27] cmn w3, #1 - bne .L935 + bne .L942 add x2, x22, :lo12:.LANCHOR0 ldr w1, [x21,4] ldr x0, [x29,128] ldrb w2, [x2,4044] bl printk ldr x1, [x21,16] - cbz x1, .L935 + cbz x1, .L942 mov w2, 4 ldr x0, [x29,120] mov w3, w2 bl rknand_print_hex -.L935: - cbz w20, .L937 +.L942: + cbz w20, .L944 add x0, x22, :lo12:.LANCHOR0 ldrb w0, [x0,4044] add w0, w0, w0, lsl 1 cmp w23, w0, lsr 2 - bls .L938 + bls .L945 add x24, x24, :lo12:.LANCHOR2 - ldr x0, [x24,656] + ldr x0, [x24,664] cmp x0, xzr mov w0, 256 csel w23, w23, w0, ne -.L938: +.L945: add w0, w25, 1 mov w1, 56 cmp w23, 256 umull x0, w0, w1 - beq .L952 + beq .L959 cmn w23, #1 - bne .L939 -.L952: + bne .L946 +.L959: str w23, [x26,x0] - b .L937 -.L939: + b .L944 +.L946: str wzr, [x26,x0] -.L937: +.L944: ldr w0, [x29,152] add w25, w25, w20 - cbz w0, .L907 + cbz w0, .L914 add x0, x22, :lo12:.LANCHOR0 ldrb w0, [x0,136] - cbz w0, .L907 + cbz w0, .L914 mov w0, w19 bl flash_exit_slc_mode -.L907: +.L914: add w25, w25, 1 - b .L904 -.L994: + b .L911 +.L1001: mov w0, 0 - b .L992 -.L917: + b .L999 +.L924: mov w0, w19 bl NandcWaitFlashReady - cbz w20, .L914 + cbz w20, .L921 ldr w1, [x29,172] mov w0, w19 bl FlashReadDpDataOutCmd - b .L914 -.L992: + b .L921 +.L999: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -6263,7 +6299,7 @@ FlashLoadFactorBbt: ldrh w1, [x0,4028] add x19, x23, :lo12:.LANCHOR2 ldrh w21, [x0,4030] - add x0, x19, 720 + add x0, x19, 728 mov w28, 0 adrp x26, .LC19 add x26, x26, :lo12:.LC19 @@ -6272,25 +6308,25 @@ FlashLoadFactorBbt: uxth w21, w21 bl ftl_memset add w25, w21, w27 - ldr x0, [x19,688] + ldr x0, [x19,696] str x0, [x29,152] mov w19, w28 sub w0, w21, #12 str xzr, [x29,144] uxth w25, w25 str w0, [x29,124] -.L997: +.L1004: add x1, x22, :lo12:.LANCHOR0 ldrb w1, [x1,1676] cmp w1, w19 - bls .L1007 + bls .L1014 mul w3, w19, w21 mov w20, w25 mov w4, 61664 -.L998: +.L1005: ldr w0, [x29,124] cmp w20, w0 - ble .L1000 + ble .L1007 add w1, w3, w20 add x0, x29, 136 lsl w1, w1, 10 @@ -6304,13 +6340,13 @@ FlashLoadFactorBbt: ldr x3, [x29,112] cmn w0, #1 ldr x4, [x29,104] - beq .L999 + beq .L1006 add x24, x23, :lo12:.LANCHOR2 - ldr x0, [x24,688] + ldr x0, [x24,696] ldrh w0, [x0] cmp w0, w4 - bne .L999 - add x24, x24, 720 + bne .L1006 + add x24, x24, 728 mov x0, x26 mov w1, w19 mov w2, w20 @@ -6318,20 +6354,20 @@ FlashLoadFactorBbt: bl printk strh w20, [x24,w19,sxtw 1] uxth w28, w28 - b .L1000 -.L999: + b .L1007 +.L1006: sub w20, w20, #1 uxth w20, w20 - b .L998 -.L1000: + b .L1005 +.L1007: add x1, x22, :lo12:.LANCHOR0 add w19, w19, 1 uxtb w19, w19 ldrb w1, [x1,1676] cmp w1, w28 csel w27, w27, wzr, ne - b .L997 -.L1007: + b .L1004 +.L1014: mov w0, w27 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -6365,16 +6401,16 @@ FlashReadFacBbtData: mov x21, x4 mov w26, 61664 mul w3, w3, w1 - ldr x0, [x0,688] + ldr x0, [x0,696] str x0, [x29,104] uxth w3, w3 sub w20, w3, #1 sub w19, w3, #16 mul w24, w23, w3 uxth w20, w20 -.L1009: +.L1016: cmp w20, w19 - ble .L1017 + ble .L1024 add w0, w20, w24 mov w1, 1 lsl w0, w0, 10 @@ -6384,26 +6420,26 @@ FlashReadFacBbtData: bl FlashReadPages ldr w0, [x29,88] cmn w0, #1 - beq .L1010 + beq .L1017 add x0, x21, :lo12:.LANCHOR2 - ldr x0, [x0,688] + ldr x0, [x0,696] ldrh w0, [x0] cmp w0, w26 - bne .L1010 + bne .L1017 mov w0, w22 - cbz x22, .L1011 + cbz x22, .L1018 mov x0, x22 mov w1, w23 mov w2, w25 bl FlashReadFacBbtData.part.6 - b .L1011 -.L1010: + b .L1018 +.L1017: sub w20, w20, #1 uxth w20, w20 - b .L1009 -.L1017: + b .L1016 +.L1024: mov w0, -1 -.L1011: +.L1018: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -6427,43 +6463,43 @@ FlashGetBadBlockList: ldrh w19, [x0,14] add x0, x20, :lo12:.LANCHOR2 mul w19, w2, w19 - ldr x0, [x0,680] + ldr x0, [x0,688] uxth w19, w19 add w2, w19, 7 lsr w2, w2, 3 bl FlashReadFacBbtData cmn w0, #1 - bne .L1019 -.L1023: + bne .L1026 +.L1030: mov w1, 0 - b .L1020 -.L1019: + b .L1027 +.L1026: mov w2, 0 lsr w0, w19, 4 mov w1, w2 sub w19, w19, #1 mov w5, 1 -.L1021: +.L1028: cmp w2, w19 - bge .L1020 + bge .L1027 add x3, x20, :lo12:.LANCHOR2 ubfx x4, x2, 5, 11 - ldr x6, [x3,680] + ldr x6, [x3,688] lsl w3, w5, w2 ldr w4, [x6,x4,lsl 2] tst w3, w4 - beq .L1022 + beq .L1029 add w3, w1, 1 ubfiz x1, x1, 1, 16 strh w2, [x21,x1] uxth w1, w3 -.L1022: +.L1029: cmp w1, w0 - bcs .L1023 + bcs .L1030 add w2, w2, 1 uxth w2, w2 - b .L1021 -.L1020: + b .L1028 +.L1027: ubfiz x1, x1, 1, 16 mov w0, -1 ldp x19, x20, [sp,16] @@ -6495,9 +6531,9 @@ FlashProgSlc2KPages: mov w25, 0 add x22, x22, :lo12:.LANCHOR0 mov w28, -1 -.L1029: +.L1036: cmp w25, w23 - beq .L1058 + beq .L1065 mov w1, w24 sub w4, w23, w25 mov x0, x21 @@ -6507,10 +6543,10 @@ FlashProgSlc2KPages: ldr w0, [x29,100] ldrb w1, [x22,1676] cmp w0, w1 - bcc .L1030 + bcc .L1037 str w28, [x21] - b .L1031 -.L1030: + b .L1038 +.L1037: add x0, x22, x0, uxtw ldrb w20, [x0,1680] mov w0, w20 @@ -6565,36 +6601,36 @@ FlashProgSlc2KPages: ldr w1, [x29,96] mov w0, w20 bl FlashReadStatus - tbz x0, 0, .L1034 + tbz x0, 0, .L1041 str w28, [x21] -.L1034: +.L1041: mov w0, w20 bl NandcFlashDeCs -.L1031: +.L1038: add w25, w25, 1 add x21, x21, 56 - b .L1029 -.L1058: + b .L1036 +.L1065: mov w21, 0 - cbz w27, .L1056 + cbz w27, .L1063 adrp x25, .LC23 adrp x26, .LC22 adrp x27, .LC21 add x25, x25, :lo12:.LC23 add x26, x26, :lo12:.LC22 add x27, x27, :lo12:.LC21 -.L1057: +.L1064: cmp w21, w23 - beq .L1056 + beq .L1063 ldr w0, [x19] cmn w0, #1 - bne .L1037 + bne .L1044 adrp x0, .LC20 ldr w1, [x19,4] add x0, x0, :lo12:.LC20 bl printk - b .L1038 -.L1037: + b .L1045 +.L1044: adrp x20, .LANCHOR2 sub w4, w23, w21 add x22, x20, :lo12:.LANCHOR2 @@ -6603,62 +6639,62 @@ FlashProgSlc2KPages: add x2, x29, 96 mov x0, x19 bl LogAddr2PhyAddr - ldr x0, [x22,696] + ldr x0, [x22,704] mov x1, x19 mov x2, 56 str wzr, [x0] - ldr x0, [x22,704] + ldr x0, [x22,712] str wzr, [x0] add x0, x29, 104 bl memcpy - ldr x0, [x22,696] + ldr x0, [x22,704] mov w1, 1 str x0, [x29,112] mov w2, w24 - ldr x0, [x22,704] + ldr x0, [x22,712] str x0, [x29,120] add x0, x29, 104 bl FlashReadPages ldr w22, [x29,104] cmn w22, #1 - bne .L1039 + bne .L1046 ldr w1, [x19,4] mov x0, x27 bl printk str w22, [x19] -.L1039: +.L1046: ldr x0, [x19,16] - cbz x0, .L1040 + cbz x0, .L1047 ldr w2, [x0] add x0, x20, :lo12:.LANCHOR2 - ldr x0, [x0,704] + ldr x0, [x0,712] ldr w3, [x0] cmp w2, w3 - beq .L1040 + beq .L1047 ldr w1, [x19,4] mov x0, x26 bl printk mov w0, -1 str w0, [x19] -.L1040: +.L1047: ldr x0, [x19,8] - cbz x0, .L1038 + cbz x0, .L1045 add x20, x20, :lo12:.LANCHOR2 ldr w2, [x0] - ldr x0, [x20,696] + ldr x0, [x20,704] ldr w3, [x0] cmp w2, w3 - beq .L1038 + beq .L1045 ldr w1, [x19,4] mov x0, x25 bl printk mov w0, -1 str w0, [x19] -.L1038: +.L1045: add w21, w21, 1 add x19, x19, 56 - b .L1057 -.L1056: + b .L1064 +.L1063: mov w0, 0 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -6691,18 +6727,18 @@ FlashProgPages: ldrb w4, [x4,24] ldrb w27, [x6,#:lo12:.LANCHOR1+265] ldrb w5, [x5,19] - cbz w4, .L1060 + cbz w4, .L1067 bl FlashProgSlc2KPages - b .L1061 -.L1060: + b .L1068 +.L1067: sub w0, w5, #1 adrp x28, .LANCHOR2 str w0, [x29,120] add x0, x28, :lo12:.LANCHOR2 str x0, [x29,112] -.L1112: +.L1119: cmp w22, w25 - bcs .L1113 + bcs .L1120 mov w20, 56 mov w1, w23 add x2, x29, 128 @@ -6717,11 +6753,11 @@ FlashProgPages: ldr w0, [x29,132] ldrb w2, [x1,1676] cmp w0, w2 - bcc .L1062 + bcc .L1069 mov w0, -1 str w0, [x19,x20] - b .L1063 -.L1062: + b .L1070 +.L1069: add x3, x28, :lo12:.LANCHOR2 uxtw x0, w0 ldrb w3, [x3,648] @@ -6730,15 +6766,15 @@ FlashProgPages: csel w24, w24, wzr, ne madd x0, x0, x3, x1 ldr x0, [x0,1728] - cbz x0, .L1065 + cbz x0, .L1072 cmp w2, 1 - bne .L1066 + bne .L1073 ldr x0, [x1,3976] bl NandcIqrWaitFlashReady -.L1066: +.L1073: ldrb w0, [x29,132] bl FlashWaitCmdDone -.L1065: +.L1072: add x0, x21, :lo12:.LANCHOR0 ldr w2, [x29,132] mov x1, 24 @@ -6748,13 +6784,13 @@ FlashProgPages: str x26, [x0,8] str xzr, [x0,16] str w1, [x0,4] - cbz w24, .L1067 + cbz w24, .L1074 add w1, w22, 1 mov w3, 56 umull x1, w1, w3 add x1, x19, x1 str x1, [x0,16] -.L1067: +.L1074: add x1, x21, :lo12:.LANCHOR0 add x0, x1, x2 ldrb w20, [x0,1680] @@ -6763,11 +6799,11 @@ FlashProgPages: ldrb w0, [x1,1676] strb w20, [x2,1720] cmp w0, 1 - bne .L1068 + bne .L1075 mov w0, w20 bl NandcWaitFlashReady - b .L1069 -.L1068: + b .L1076 +.L1075: mov w0, w20 str x1, [x29,104] bl NandcFlashCs @@ -6782,35 +6818,35 @@ FlashProgPages: bl FlashWaitReadyEN mov w0, w20 bl NandcFlashDeCs -.L1069: +.L1076: ldr w0, [x29,120] cmp w0, 6 - bhi .L1070 + bhi .L1077 ldr x0, [x29,112] add x0, x0, x20, sxtw ldrb w0, [x0,560] - cbz w0, .L1070 + cbz w0, .L1077 add x2, x21, :lo12:.LANCHOR0 mov w0, w20 add x2, x2, 4060 mov w3, 0 ldrb w1, [x2,-3] bl HynixSetRRPara -.L1070: +.L1077: mov w0, w20 bl NandcFlashCs cmp w23, 1 - bne .L1071 + bne .L1078 add x0, x21, :lo12:.LANCHOR0 ldrb w0, [x0,136] - cbz w0, .L1071 + cbz w0, .L1078 mov w0, w20 bl flash_enter_slc_mode - b .L1072 -.L1071: + b .L1079 +.L1078: mov w0, w20 bl flash_exit_slc_mode -.L1072: +.L1079: ldr w1, [x29,128] mov w0, w20 bl FlashProgFirstCmd @@ -6820,7 +6856,7 @@ FlashProgPages: mov w1, 1 mov w2, w27 bl NandcXferData - cbz w24, .L1073 + cbz w24, .L1080 ldr w1, [x29,128] mov w0, w20 add x26, x21, :lo12:.LANCHOR0 @@ -6848,45 +6884,45 @@ FlashProgPages: ldr x3, [x4,8] ldr x4, [x4,16] bl NandcXferData -.L1073: +.L1080: ldr w1, [x29,128] mov w0, w20 add w22, w22, w24 bl FlashProgSecondCmd mov w0, w20 bl NandcFlashDeCs -.L1063: +.L1070: add w22, w22, 1 - b .L1112 -.L1113: + b .L1119 +.L1120: add x21, x21, :lo12:.LANCHOR0 mov x20, 0 mov x22, 24 ldr x0, [x21,3976] bl NandcIqrWaitFlashReady -.L1075: +.L1082: ldrb w0, [x21,1676] cmp w0, w20 - bls .L1114 + bls .L1121 mov w0, w20 bl FlashWaitCmdDone cmp w23, 1 - bne .L1076 + bne .L1083 ldrb w0, [x21,136] - cbz w0, .L1076 + cbz w0, .L1083 madd x0, x20, x22, x21 ldrb w0, [x0,1720] bl flash_exit_slc_mode -.L1076: +.L1083: add x20, x20, 1 - b .L1075 -.L1114: + b .L1082 +.L1121: ldr w0, [x29,124] - cbnz w0, .L1078 -.L1086: + cbnz w0, .L1085 +.L1093: mov w0, 0 - b .L1061 -.L1078: + b .L1068 +.L1085: adrp x24, .LC23 adrp x26, .LC22 adrp x27, .LC21 @@ -6894,18 +6930,18 @@ FlashProgPages: add x24, x24, :lo12:.LC23 add x26, x26, :lo12:.LC22 add x27, x27, :lo12:.LC21 -.L1079: +.L1086: cmp w21, w25 - beq .L1086 + beq .L1093 ldr w0, [x19] cmn w0, #1 - bne .L1080 + bne .L1087 adrp x0, .LC20 ldr w1, [x19,4] add x0, x0, :lo12:.LC20 bl printk - b .L1081 -.L1080: + b .L1088 +.L1087: adrp x20, .LANCHOR2 sub w4, w25, w21 add x22, x20, :lo12:.LANCHOR2 @@ -6914,62 +6950,62 @@ FlashProgPages: add x2, x29, 128 mov x0, x19 bl LogAddr2PhyAddr - ldr x0, [x22,696] + ldr x0, [x22,704] mov x1, x19 mov x2, 56 str wzr, [x0] - ldr x0, [x22,704] + ldr x0, [x22,712] str wzr, [x0] add x0, x29, 136 bl memcpy - ldr x0, [x22,696] + ldr x0, [x22,704] mov w1, 1 str x0, [x29,144] mov w2, w23 - ldr x0, [x22,704] + ldr x0, [x22,712] str x0, [x29,152] add x0, x29, 136 bl FlashReadPages ldr w22, [x29,136] cmn w22, #1 - bne .L1082 + bne .L1089 ldr w1, [x19,4] mov x0, x27 bl printk str w22, [x19] -.L1082: +.L1089: ldr x0, [x19,16] - cbz x0, .L1083 + cbz x0, .L1090 ldr w2, [x0] add x0, x20, :lo12:.LANCHOR2 - ldr x0, [x0,704] + ldr x0, [x0,712] ldr w3, [x0] cmp w2, w3 - beq .L1083 + beq .L1090 ldr w1, [x19,4] mov x0, x26 bl printk mov w0, -1 str w0, [x19] -.L1083: +.L1090: ldr x0, [x19,8] - cbz x0, .L1081 + cbz x0, .L1088 add x20, x20, :lo12:.LANCHOR2 ldr w2, [x0] - ldr x0, [x20,696] + ldr x0, [x20,704] ldr w3, [x0] cmp w2, w3 - beq .L1081 + beq .L1088 ldr w1, [x19,4] mov x0, x24 bl printk mov w0, -1 str w0, [x19] -.L1081: +.L1088: add w21, w21, 1 add x19, x19, 56 - b .L1079 -.L1061: + b .L1086 +.L1068: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -6990,12 +7026,12 @@ FlashTestBlk.part.7: uxth w20, w0 add x19, x19, :lo12:.LANCHOR2 lsl w20, w20, 10 - ldr x0, [x19,680] + ldr x0, [x19,688] str x0, [x29,48] add x0, x29, 96 str x0, [x29,56] bl ftl_memset - ldr x0, [x19,680] + ldr x0, [x19,688] mov w1, 90 mov w2, 8 bl ftl_memset @@ -7032,10 +7068,10 @@ FlashTestBlk: ldr w2, [x0,#:lo12:.LANCHOR0+8] mov w0, 0 cmp w1, w2 - bcc .L1117 + bcc .L1124 mov w0, w1 bl FlashTestBlk.part.7 -.L1117: +.L1124: ldp x29, x30, [sp], 16 ret .size FlashTestBlk, .-FlashTestBlk @@ -7054,7 +7090,7 @@ FlashMakeFactorBbt: stp x27, x28, [sp,80] adrp x19, .LANCHOR0 str x2, [x29,136] - ldr x0, [x0,688] + ldr x0, [x0,696] mov w20, 0 str x0, [x29,152] add x0, x19, :lo12:.LANCHOR0 @@ -7078,7 +7114,7 @@ FlashMakeFactorBbt: mov w1, 0 mov w2, 4096 add x0, x0, :lo12:.LANCHOR2 - ldr x0, [x0,688] + ldr x0, [x0,696] bl ftl_memset lsr w0, w22, 4 str w0, [x29,144] @@ -7092,17 +7128,17 @@ FlashMakeFactorBbt: sub w0, w22, #1 uxth w0, w0 str w0, [x29,132] -.L1121: +.L1128: add x23, x19, :lo12:.LANCHOR0 ldrb w0, [x23,1676] cmp w0, w20 - bls .L1172 + bls .L1179 ldr x0, [x29,136] sxtw x24, w20 add x0, x0, :lo12:.LANCHOR2 - add x0, x0, 720 + add x0, x0, 728 ldrh w21, [x0,w20,sxtw 1] - cbnz w21, .L1151 + cbnz w21, .L1158 ldrh w2, [x23,4036] mov w1, w21 ldr x0, [x19,#:lo12:.LANCHOR0] @@ -7116,15 +7152,15 @@ FlashMakeFactorBbt: and w0, w0, 4 uxtb w0, w0 str w0, [x29,128] -.L1123: +.L1130: uxth w28, w26 cmp w28, w22 - bcs .L1133 + bcs .L1140 mov w0, -1 strb w0, [x29,166] strb w0, [x29,167] ldr w0, [x29,124] - cbz w0, .L1125 + cbz w0, .L1132 add x4, x19, :lo12:.LANCHOR0 add x2, x29, 166 add x0, x4, 1688 @@ -7139,7 +7175,7 @@ FlashMakeFactorBbt: ldr x3, [x29,112] ldrb w0, [x4,24] cmp w0, 1 - bne .L1125 + bne .L1132 ldr w1, [x4,28] mov w0, w27 add x2, x29, 167 @@ -7149,9 +7185,9 @@ FlashMakeFactorBbt: ldrb w1, [x29,167] and w0, w1, w0 strb w0, [x29,166] -.L1125: +.L1132: ldr w0, [x29,120] - cbz w0, .L1127 + cbz w0, .L1134 add x0, x19, :lo12:.LANCHOR0 add x2, x29, 167 add x0, x0, 1688 @@ -7163,40 +7199,40 @@ FlashMakeFactorBbt: mov w0, w27 add w1, w1, w21 bl FlashReadSpare -.L1127: +.L1134: add x0, x19, :lo12:.LANCHOR0 ldrb w1, [x29,166] ldr x0, [x0,1912] ldrb w0, [x0,7] cmp w0, 8 - beq .L1152 + beq .L1159 cmp w0, 1 - bne .L1128 -.L1152: + bne .L1135 +.L1159: mov w0, 1 - cbz w1, .L1130 + cbz w1, .L1137 ldrb w0, [x29,167] cmp w0, wzr cset w0, eq - b .L1130 -.L1128: + b .L1137 +.L1135: cmp w1, 255 mov w0, 1 - bne .L1130 + bne .L1137 ldrb w0, [x29,167] cmp w0, 255 cset w0, ne -.L1130: +.L1137: ldr w1, [x29,128] - cbz w1, .L1131 + cbz w1, .L1138 add x0, x19, :lo12:.LANCHOR0 add x0, x0, 1688 ldr w1, [x0,x24,lsl 2] mov w0, w27 add w1, w21, w1 bl SandiskProgTestBadBlock -.L1131: - cbz w0, .L1132 +.L1138: + cbz w0, .L1139 adrp x0, .LC25 mov w1, w20 mov w2, w26 @@ -7217,12 +7253,12 @@ FlashMakeFactorBbt: ldrb w0, [x2,1676] mul w0, w1, w0 cmp w23, w0 - bgt .L1133 -.L1132: + bgt .L1140 +.L1139: add w26, w26, 1 add w21, w21, w25 - b .L1123 -.L1133: + b .L1130 +.L1140: adrp x0, .LC26 mov w1, w20 mov w2, w23 @@ -7233,28 +7269,28 @@ FlashMakeFactorBbt: ldrb w0, [x1,1676] mul w0, w2, w0 cmp w23, w0 - blt .L1135 + blt .L1142 ldrh w2, [x1,4036] mov w1, 0 ldr x0, [x19,#:lo12:.LANCHOR0] lsl w2, w2, 9 bl ftl_memset -.L1135: - cbnz w20, .L1137 +.L1142: + cbnz w20, .L1144 add x0, x19, :lo12:.LANCHOR0 adrp x26, .LC27 mov w21, w20 add x26, x26, :lo12:.LC27 mov w23, 1 ldrh w27, [x0,8] -.L1138: +.L1145: add x0, x19, :lo12:.LANCHOR0 ldrb w0, [x0,25] cmp w0, w27 - bls .L1173 + bls .L1180 mov w0, w27 bl FlashTestBlk - cbz w0, .L1139 + cbz w0, .L1146 mov w1, w27 mov x0, x26 add w21, w21, 1 @@ -7267,22 +7303,22 @@ FlashMakeFactorBbt: ldr w3, [x2,x1] orr w0, w3, w0 str w0, [x2,x1] -.L1139: +.L1146: add w27, w27, 1 uxth w27, w27 - b .L1138 -.L1173: + b .L1145 +.L1180: adrp x26, .LC27 ldr w28, [x29,132] sub w27, w22, #50 add x26, x26, :lo12:.LC27 mov w23, 1 -.L1141: +.L1148: cmp w28, w27 - ble .L1174 + ble .L1181 mov w0, w28 bl FlashTestBlk - cbz w0, .L1142 + cbz w0, .L1149 mov w1, w28 mov x0, x26 bl printk @@ -7293,23 +7329,23 @@ FlashMakeFactorBbt: ldr w3, [x2,x1] orr w0, w3, w0 str w0, [x2,x1] -.L1142: +.L1149: sub w28, w28, #1 uxth w28, w28 - b .L1141 -.L1174: + b .L1148 +.L1181: add x0, x19, :lo12:.LANCHOR0 ldrb w1, [x0,25] ldr w2, [x0,8] sub w1, w1, w2 cmp w21, w1 - bcc .L1137 + bcc .L1144 ldrh w2, [x0,4036] mov w1, 0 ldr x0, [x19,#:lo12:.LANCHOR0] lsl w2, w2, 9 bl ftl_memset -.L1137: +.L1144: ldr x0, [x29,136] adrp x23, .LC28 ldr w27, [x29,132] @@ -7317,23 +7353,23 @@ FlashMakeFactorBbt: mul w26, w20, w22 add x28, x0, :lo12:.LANCHOR2 mov w21, -3872 -.L1145: +.L1152: mov w2, w27 mov x0, x23 mov w1, w20 bl printk ldr x2, [x19,#:lo12:.LANCHOR0] -.L1146: +.L1153: ubfx x0, x27, 5, 11 ldr w0, [x2,x0,lsl 2] lsr w0, w0, w27 and w1, w0, 1 - tbz x0, 0, .L1175 + tbz x0, 0, .L1182 sub w27, w27, #1 uxth w27, w27 - b .L1146 -.L1175: - add x0, x28, 720 + b .L1153 +.L1182: + add x0, x28, 728 strh w27, [x0,x24,lsl 1] ldr x0, [x29,152] strh w21, [x0] @@ -7343,7 +7379,7 @@ FlashMakeFactorBbt: ldr x0, [x19,#:lo12:.LANCHOR0] mov w2, w1 str x0, [x29,176] - ldr x0, [x28,688] + ldr x0, [x28,696] str x0, [x29,184] add w0, w27, w26 lsl w0, w0, 10 @@ -7356,15 +7392,15 @@ FlashMakeFactorBbt: mov w3, w1 bl FlashProgPages ldr w0, [x29,168] - cbz w0, .L1151 + cbz w0, .L1158 sub w27, w27, #1 uxth w27, w27 - b .L1145 -.L1151: + b .L1152 +.L1158: add w20, w20, 1 uxtb w20, w20 - b .L1121 -.L1172: + b .L1128 +.L1179: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -7379,14 +7415,14 @@ FlashMakeFactorBbt: Ftl_log2: mov w2, 1 mov w1, 0 -.L1177: +.L1184: cmp w2, w0 - bhi .L1179 + bhi .L1186 add w1, w1, 1 lsl w2, w2, 1 uxth w1, w1 - b .L1177 -.L1179: + b .L1184 +.L1186: sub w0, w1, #1 ret .size Ftl_log2, .-Ftl_log2 @@ -7406,17 +7442,17 @@ FtlSysBlkNumInit: csel w0, w0, w1, hi adrp x1, .LANCHOR2 add x1, x1, :lo12:.LANCHOR2 - ldrh w2, [x1,740] - ldrh w3, [x1,750] - str w0, [x1,736] + ldrh w2, [x1,748] + ldrh w3, [x1,758] + str w0, [x1,744] mul w2, w0, w2 sub w0, w3, w0 - strh w0, [x1,748] - ldr w0, [x1,756] - str w2, [x1,744] + strh w0, [x1,756] + ldr w0, [x1,764] + str w2, [x1,752] sub w2, w0, w2 mov w0, 0 - str w2, [x1,752] + str w2, [x1,760] ret .size FtlSysBlkNumInit, .-FtlSysBlkNumInit .align 2 @@ -7438,35 +7474,35 @@ FtlConstantsInit: ldrh w2, [x24,10] ldrh w1, [x24,12] ldrh w4, [x24,14] - strh w6, [x0,760] - strh w2, [x0,762] - strh w1, [x0,764] - strh w4, [x0,750] -.L1184: - add x5, x0, 768 + strh w6, [x0,768] + strh w2, [x0,770] + strh w1, [x0,772] + strh w4, [x0,758] +.L1191: + add x5, x0, 776 strb w3, [x3,x5] add x3, x3, 1 cmp x3, 32 - bne .L1184 + bne .L1191 ldrh w3, [x24,20] ldrb w0, [x24,15] cmp w3, w0 - bcs .L1185 + bcs .L1192 uxtb w8, w1 mov w3, 0 mul w11, w1, w2 ubfiz w10, w8, 1, 7 add x12, x19, :lo12:.LANCHOR2 -.L1186: +.L1193: cmp w3, w1 - bcs .L1188 + bcs .L1195 uxtb w0, w3 mov w5, w3 mov w7, 0 -.L1189: +.L1196: cmp w7, w2 - bcs .L1211 - add x9, x12, 768 + bcs .L1218 + add x9, x12, 776 add w13, w5, w11 add w14, w0, w8 add w7, w7, 1 @@ -7475,168 +7511,168 @@ FtlConstantsInit: strb w14, [x9,x13] add w5, w5, w1 uxtb w0, w0 - b .L1189 -.L1211: + b .L1196 +.L1218: add w3, w3, 1 - b .L1186 -.L1188: + b .L1193 +.L1195: add x0, x19, :lo12:.LANCHOR2 lsl w2, w2, 1 lsr w4, w4, 1 - strh w2, [x0,762] - strh w4, [x0,750] -.L1185: + strh w2, [x0,770] + strh w4, [x0,758] +.L1192: add x0, x19, :lo12:.LANCHOR2 mov w2, 5 cmp w6, 1 - strh w2, [x0,800] - strh wzr, [x0,802] - bne .L1190 - strh w6, [x0,800] -.L1190: + strh w2, [x0,808] + strh wzr, [x0,810] + bne .L1197 + strh w6, [x0,808] +.L1197: add x0, x19, :lo12:.LANCHOR2 mov w2, 4352 adrp x22, .LANCHOR0 - strh w2, [x0,804] + strh w2, [x0,812] add x2, x22, :lo12:.LANCHOR0 ldrb w27, [x2,24] - cbz w27, .L1191 + cbz w27, .L1198 mov w2, 384 - strh w2, [x0,804] -.L1191: + strh w2, [x0,812] +.L1198: add x21, x19, :lo12:.LANCHOR2 - ldrh w20, [x21,750] - ldrh w23, [x21,762] + ldrh w20, [x21,758] + ldrh w23, [x21,770] mul w23, w1, w23 mul w1, w20, w1 uxth w23, w23 - strh w23, [x21,740] + strh w23, [x21,748] uxth w0, w1 - strh w0, [x21,806] + strh w0, [x21,814] bl Ftl_log2 ldrh w26, [x24,16] ldrh w25, [x24,20] - strh w0, [x21,808] + strh w0, [x21,816] mul w0, w23, w26 - strh w0, [x21,814] + strh w0, [x21,822] mov w0, w25 ldrh w28, [x24,18] - strh w26, [x21,810] - strh w28, [x21,812] - strh w25, [x21,816] + strh w26, [x21,818] + strh w28, [x21,820] + strh w25, [x21,824] bl Ftl_log2 lsl w2, w25, 9 uxth w3, w0 - strh w0, [x21,818] + strh w0, [x21,826] cmp w20, 1024 ldrh w0, [x24,26] - strh w2, [x21,820] + strh w2, [x21,828] ubfx x2, x2, 9, 7 - strh w0, [x21,824] + strh w0, [x21,832] lsl w2, w2, 1 mul w0, w23, w20 - strh w2, [x21,822] - str w0, [x21,756] - bls .L1192 + strh w2, [x21,830] + str w0, [x21,764] + bls .L1199 and w0, w20, 255 - strh w0, [x21,802] -.L1192: + strh w0, [x21,810] +.L1199: add x2, x19, :lo12:.LANCHOR2 mul w0, w25, w28 - ldrh w1, [x2,802] + ldrh w1, [x2,810] sub w1, w20, w1 mul w1, w23, w1 mul w1, w1, w25 mul w1, w1, w26 asr w1, w1, 11 - str w1, [x2,828] - ldrh w1, [x2,804] + str w1, [x2,836] + ldrh w1, [x2,812] lsl w1, w1, 3 sdiv w0, w1, w0 uxth w0, w0 cmp w0, 4 - bhi .L1208 + bhi .L1215 mov w0, 4 -.L1208: - strh w0, [x2,832] - cbz w27, .L1195 +.L1215: + strh w0, [x2,840] + cbz w27, .L1202 add x0, x19, :lo12:.LANCHOR2 mov w1, 640 - strh w1, [x0,804] -.L1195: + strh w1, [x0,812] +.L1202: add x1, x19, :lo12:.LANCHOR2 lsl w20, w20, 6 cmp w23, 1 - ldrh w0, [x1,804] + ldrh w0, [x1,812] asr w0, w0, w3 add w3, w3, 9 asr w20, w20, w3 - strh w20, [x1,836] + strh w20, [x1,844] and w20, w20, 65535 add w0, w0, 2 - strh w0, [x1,834] + strh w0, [x1,842] mul w0, w20, w23 - str w0, [x1,840] + str w0, [x1,848] add w20, w20, 8 - ldrh w0, [x1,832] + ldrh w0, [x1,840] udiv w0, w0, w23 add w20, w20, w0 - bne .L1209 + bne .L1216 add w20, w20, 4 -.L1209: - str w20, [x1,736] +.L1216: + str w20, [x1,744] add x20, x19, :lo12:.LANCHOR2 add x22, x22, :lo12:.LANCHOR0 - ldrh w0, [x20,736] + ldrh w0, [x20,744] bl FtlSysBlkNumInit str wzr, [x22,4048] - ldr w0, [x20,736] - str w0, [x20,844] - ldr w0, [x20,752] - ldrh w1, [x20,810] + ldr w0, [x20,744] + str w0, [x20,852] + ldr w0, [x20,760] + ldrh w1, [x20,818] lsl w0, w0, 2 - ldrh w3, [x20,816] - ldrh w2, [x20,832] + ldrh w3, [x20,824] + ldrh w2, [x20,840] mul w1, w0, w1 - ldrh w0, [x20,818] + ldrh w0, [x20,826] ldrb w5, [x22,136] add w0, w0, 9 lsr w0, w1, w0 mov w1, 2048 add w0, w0, 2 sdiv w1, w1, w3 - strh w1, [x20,850] + strh w1, [x20,858] uxth w0, w0 - strh w0, [x20,848] + strh w0, [x20,856] add w1, w2, 3 - strh w1, [x20,832] - ldr w1, [x20,840] + strh w1, [x20,840] + ldr w1, [x20,848] add w4, w1, 3 - str w4, [x20,840] - cbz w5, .L1198 + str w4, [x20,848] + cbz w5, .L1205 add w2, w2, 4 add w1, w1, 5 - strh w2, [x20,832] - b .L1210 -.L1198: + strh w2, [x20,840] + b .L1217 +.L1205: cmp w4, 7 - bhi .L1199 + bhi .L1206 mov w1, 8 -.L1210: - str w1, [x20,840] -.L1199: +.L1217: + str w1, [x20,848] +.L1206: add x19, x19, :lo12:.LANCHOR2 - ldrh w1, [x19,748] - strh wzr, [x19,852] + ldrh w1, [x19,756] + strh wzr, [x19,860] lsr w2, w1, 3 add w1, w2, w1, lsl 1 add w1, w1, 52 add w0, w1, w0, lsl 2 cmp w0, w3, lsl 9 - bcs .L1200 + bcs .L1207 mov w0, 1 - strh w0, [x19,852] -.L1200: + strh w0, [x19,860] +.L1207: mov w0, 0 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -7658,17 +7694,15 @@ FtlMemInit: str x23, [sp,48] add x0, x20, :lo12:.LANCHOR2 stp x21, x22, [sp,32] - str w1, [x0,924] + str w1, [x0,932] mov w1, -1 - strh wzr, [x0,854] - strh w1, [x0,940] - strh w1, [x0,942] + strh wzr, [x0,862] + strh w1, [x0,948] + strh w1, [x0,950] mov w1, 32 - str wzr, [x0,856] - strh w1, [x0,944] - mov w1, 128 - str wzr, [x0,860] str wzr, [x0,864] + strh w1, [x0,952] + mov w1, 128 str wzr, [x0,868] str wzr, [x0,872] str wzr, [x0,876] @@ -7683,307 +7717,309 @@ FtlMemInit: str wzr, [x0,912] str wzr, [x0,916] str wzr, [x0,920] + str wzr, [x0,924] str wzr, [x0,928] - str wzr, [x0,932] str wzr, [x0,936] - strh w1, [x0,946] + str wzr, [x0,940] + str wzr, [x0,944] + strh w1, [x0,954] mov w1, 1024 - ldrh w2, [x0,816] - strh wzr, [x0,948] - strh wzr, [x0,950] + ldrh w2, [x0,824] + strh wzr, [x0,956] + strh wzr, [x0,958] sdiv w2, w1, w2 - ldrh w1, [x0,740] - strh wzr, [x0,952] + ldrh w1, [x0,748] + strh wzr, [x0,960] lsl w1, w1, 2 - strh wzr, [x0,954] - str w2, [x0,956] + strh wzr, [x0,962] + str w2, [x0,964] cmp w2, w1 - bls .L1213 - str w1, [x0,956] -.L1213: + bls .L1220 + str w1, [x0,964] +.L1220: add x19, x20, :lo12:.LANCHOR2 mov w22, 56 - ldrh w0, [x19,814] - str wzr, [x19,960] + ldrh w0, [x19,822] + str wzr, [x19,968] lsl w0, w0, 1 bl ftl_malloc - str x0, [x19,968] - ldrh w1, [x19,814] + str x0, [x19,976] + ldrh w1, [x19,822] mov w0, 12 mul w0, w1, w0 bl ftl_malloc - ldrh w21, [x19,740] - str x0, [x19,976] + ldrh w21, [x19,748] + str x0, [x19,984] mul w21, w21, w22 lsl w23, w21, 3 mov w0, w23 bl ftl_malloc - str x0, [x19,984] - mov w0, w21 - bl ftl_malloc str x0, [x19,992] - mov w0, w23 + mov w0, w21 bl ftl_malloc str x0, [x19,1000] - mov w0, w21 + mov w0, w23 bl ftl_malloc str x0, [x19,1008] mov w0, w21 bl ftl_malloc str x0, [x19,1016] - ldr w0, [x19,956] - mul w0, w0, w22 - bl ftl_malloc - str x0, [x19,1024] - ldrh w0, [x19,740] - ldrh w21, [x19,820] - lsl w0, w0, 1 - add w0, w0, 1 - str w0, [x19,1032] mov w0, w21 bl ftl_malloc - str x0, [x19,1040] + str x0, [x19,1024] + ldr w0, [x19,964] + mul w0, w0, w22 + bl ftl_malloc + str x0, [x19,1032] + ldrh w0, [x19,748] + ldrh w21, [x19,828] + lsl w0, w0, 1 + add w0, w0, 1 + str w0, [x19,1040] mov w0, w21 bl ftl_malloc str x0, [x19,1048] mov w0, w21 bl ftl_malloc str x0, [x19,1056] - ldr w0, [x19,1032] - mul w0, w21, w0 + mov w0, w21 bl ftl_malloc str x0, [x19,1064] - ldr w0, [x19,956] + ldr w0, [x19,1040] mul w0, w21, w0 bl ftl_malloc str x0, [x19,1072] - mov w0, w21 + ldr w0, [x19,964] + mul w0, w21, w0 bl ftl_malloc str x0, [x19,1080] mov w0, w21 bl ftl_malloc str x0, [x19,1088] - ldr w1, [x19,1032] + mov w0, w21 + bl ftl_malloc + str x0, [x19,1096] + ldr w1, [x19,1040] mov w0, 24 mul w0, w1, w0 bl ftl_malloc - ldrh w21, [x19,740] - str x0, [x19,1096] - ldrh w0, [x19,822] + ldrh w21, [x19,748] + str x0, [x19,1104] + ldrh w0, [x19,830] mul w21, w0, w21 mov w0, w21 bl ftl_malloc - str x0, [x19,1104] + str x0, [x19,1112] lsl w0, w21, 3 bl ftl_malloc - str x0, [x19,1112] - ldrh w1, [x19,822] - ldr w0, [x19,1032] - mul w0, w1, w0 - bl ftl_malloc str x0, [x19,1120] - ldrh w1, [x19,822] - ldr w0, [x19,956] + ldrh w1, [x19,830] + ldr w0, [x19,1040] mul w0, w1, w0 bl ftl_malloc str x0, [x19,1128] - ldrh w0, [x19,750] + ldrh w1, [x19,830] + ldr w0, [x19,964] + mul w0, w1, w0 + bl ftl_malloc + str x0, [x19,1136] + ldrh w0, [x19,758] lsl w0, w0, 1 - strh w0, [x19,1136] + strh w0, [x19,1144] and w0, w0, 65534 bl ftl_malloc - str x0, [x19,1144] - ldrh w0, [x19,1136] + str x0, [x19,1152] + ldrh w0, [x19,1144] add x0, x0, 547 lsr x0, x0, 9 - strh w0, [x19,1136] + strh w0, [x19,1144] lsl w0, w0, 9 bl ftl_malloc - ldrh w21, [x19,750] - str x0, [x19,1152] + ldrh w21, [x19,758] + str x0, [x19,1160] add x0, x0, 32 lsl w21, w21, 1 - str x0, [x19,1160] - mov w0, w21 - bl ftl_malloc str x0, [x19,1168] mov w0, w21 bl ftl_malloc - ldr w21, [x19,840] str x0, [x19,1176] + mov w0, w21 + bl ftl_malloc + ldr w21, [x19,848] + str x0, [x19,1184] lsl w21, w21, 1 mov w0, w21 bl ftl_malloc - str x0, [x19,1184] + str x0, [x19,1192] mov w0, w21 bl ftl_malloc - str x0, [x19,1192] - ldrh w0, [x19,750] + str x0, [x19,1200] + ldrh w0, [x19,758] lsr w0, w0, 3 add w0, w0, 4 bl ftl_malloc adrp x1, .LANCHOR0+16 str x0, [x1,#:lo12:.LANCHOR0+16] - ldrh w0, [x19,832] - lsl w0, w0, 1 - bl ftl_malloc - str x0, [x19,1200] - ldrh w0, [x19,832] + ldrh w0, [x19,840] lsl w0, w0, 1 bl ftl_malloc str x0, [x19,1208] - ldrh w0, [x19,832] - lsl w0, w0, 2 + ldrh w0, [x19,840] + lsl w0, w0, 1 bl ftl_malloc str x0, [x19,1216] - ldrh w0, [x19,834] + ldrh w0, [x19,840] lsl w0, w0, 2 bl ftl_malloc str x0, [x19,1224] - ldrh w2, [x19,834] + ldrh w0, [x19,842] + lsl w0, w0, 2 + bl ftl_malloc + str x0, [x19,1232] + ldrh w2, [x19,842] mov w1, 0 lsl w2, w2, 2 bl ftl_memset - ldrh w21, [x19,848] + ldrh w21, [x19,856] lsl w21, w21, 2 mov w0, w21 bl ftl_malloc - str x0, [x19,1232] + str x0, [x19,1240] mov w0, w21 bl ftl_malloc - str x0, [x19,1240] - ldr w0, [x19,840] + str x0, [x19,1248] + ldr w0, [x19,848] lsl w0, w0, 2 bl ftl_malloc - str x0, [x19,1248] - ldrh w0, [x19,850] + str x0, [x19,1256] + ldrh w0, [x19,858] lsl w0, w0, 4 bl ftl_malloc - str x0, [x19,1256] - ldrh w1, [x19,850] - ldrh w0, [x19,820] - mul w0, w1, w0 - bl ftl_malloc str x0, [x19,1264] - ldrh w1, [x19,750] - mov w0, 6 + ldrh w1, [x19,858] + ldrh w0, [x19,828] mul w0, w1, w0 bl ftl_malloc str x0, [x19,1272] - ldrh w0, [x19,806] - ldrh w1, [x19,762] + ldrh w1, [x19,758] + mov w0, 6 + mul w0, w1, w0 + bl ftl_malloc + str x0, [x19,1280] + ldrh w0, [x19,814] + ldrh w1, [x19,770] add w0, w0, 31 asr w0, w0, 5 - strh w0, [x19,1280] + strh w0, [x19,1288] mul w0, w0, w1 lsl w0, w0, 2 bl ftl_malloc - str x0, [x19,1320] - add x1, x19, 1288 - ldrh w4, [x19,1280] - ldrh w5, [x19,762] + str x0, [x19,1328] + add x1, x19, 1296 + ldrh w4, [x19,1288] + ldrh w5, [x19,770] mov w0, 1 mov w2, w4 -.L1214: +.L1221: cmp w0, w5 add x1, x1, 8 - bcs .L1314 - ldr x3, [x19,1320] + bcs .L1321 + ldr x3, [x19,1328] add w0, w0, 1 add x3, x3, x2, uxtw 2 add w2, w2, w4 str x3, [x1,32] - b .L1214 -.L1314: + b .L1221 +.L1321: add x1, x20, :lo12:.LANCHOR2 -.L1216: +.L1223: cmp w0, 8 - beq .L1315 + beq .L1322 add x2, x1, x0, uxtw 3 add w0, w0, 1 - str xzr, [x2,1320] - b .L1216 -.L1315: + str xzr, [x2,1328] + b .L1223 +.L1322: add x0, x20, :lo12:.LANCHOR2 - ldr x1, [x0,1184] - cbnz x1, .L1218 -.L1220: + ldr x1, [x0,1192] + cbnz x1, .L1225 +.L1227: adrp x0, .LC29 adrp x1, .LANCHOR3 add x0, x0, :lo12:.LC29 add x1, x1, :lo12:.LANCHOR3 bl printk mov w0, -1 - b .L1219 -.L1218: - ldr x1, [x0,1192] - cbz x1, .L1220 - ldr x1, [x0,1232] - cbz x1, .L1220 - ldr x1, [x0,1248] - cbz x1, .L1220 + b .L1226 +.L1225: + ldr x1, [x0,1200] + cbz x1, .L1227 + ldr x1, [x0,1240] + cbz x1, .L1227 ldr x1, [x0,1256] - cbz x1, .L1220 + cbz x1, .L1227 ldr x1, [x0,1264] - cbz x1, .L1220 + cbz x1, .L1227 ldr x1, [x0,1272] - cbz x1, .L1220 - ldr x1, [x0,1320] - cbz x1, .L1220 - ldr x0, [x0,1176] - cbz x0, .L1220 + cbz x1, .L1227 + ldr x1, [x0,1280] + cbz x1, .L1227 + ldr x1, [x0,1328] + cbz x1, .L1227 + ldr x0, [x0,1184] + cbz x0, .L1227 add x0, x20, :lo12:.LANCHOR2 - ldr x1, [x0,968] - cbz x1, .L1220 ldr x1, [x0,976] - cbz x1, .L1220 + cbz x1, .L1227 ldr x1, [x0,984] - cbz x1, .L1220 - ldr x1, [x0,1000] - cbz x1, .L1220 - ldr x1, [x0,1008] - cbz x1, .L1220 - ldr x1, [x0,1016] - cbz x1, .L1220 + cbz x1, .L1227 ldr x1, [x0,992] - cbz x1, .L1220 - ldr x1, [x0,1040] - cbz x1, .L1220 + cbz x1, .L1227 + ldr x1, [x0,1008] + cbz x1, .L1227 + ldr x1, [x0,1016] + cbz x1, .L1227 + ldr x1, [x0,1024] + cbz x1, .L1227 + ldr x1, [x0,1000] + cbz x1, .L1227 ldr x1, [x0,1048] - cbz x1, .L1220 - ldr x0, [x0,1056] - cbz x0, .L1220 + cbz x1, .L1227 + ldr x1, [x0,1056] + cbz x1, .L1227 + ldr x0, [x0,1064] + cbz x0, .L1227 add x0, x20, :lo12:.LANCHOR2 - ldr x1, [x0,1064] - cbz x1, .L1220 - ldr x1, [x0,1080] - cbz x1, .L1220 + ldr x1, [x0,1072] + cbz x1, .L1227 ldr x1, [x0,1088] - cbz x1, .L1220 + cbz x1, .L1227 ldr x1, [x0,1096] - cbz x1, .L1220 + cbz x1, .L1227 ldr x1, [x0,1104] - cbz x1, .L1220 + cbz x1, .L1227 ldr x1, [x0,1112] - cbz x1, .L1220 + cbz x1, .L1227 ldr x1, [x0,1120] - cbz x1, .L1220 - ldr x1, [x0,1160] - cbz x1, .L1220 - ldr x1, [x0,1144] - cbz x1, .L1220 - ldr x0, [x0,1200] - cbz x0, .L1220 + cbz x1, .L1227 + ldr x1, [x0,1128] + cbz x1, .L1227 + ldr x1, [x0,1168] + cbz x1, .L1227 + ldr x1, [x0,1152] + cbz x1, .L1227 + ldr x0, [x0,1208] + cbz x0, .L1227 adrp x0, .LANCHOR2 add x0, x0, :lo12:.LANCHOR2 - ldr x1, [x0,1208] - cbz x1, .L1220 ldr x1, [x0,1216] - cbz x1, .L1220 - ldr x0, [x0,1224] - cbz x0, .L1220 + cbz x1, .L1227 + ldr x1, [x0,1224] + cbz x1, .L1227 + ldr x0, [x0,1232] + cbz x0, .L1227 mov w0, 0 -.L1219: +.L1226: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldr x23, [sp,48] @@ -7998,24 +8034,24 @@ IsBlkInVendorPart: uxth w4, w0 add x1, x1, :lo12:.LANCHOR2 mov w0, 0 - ldrh w2, [x1,1384] - cbz w2, .L1317 - ldrh w2, [x1,832] - ldr x3, [x1,1200] + ldrh w2, [x1,1392] + cbz w2, .L1324 + ldrh w2, [x1,840] + ldr x3, [x1,1208] mov x1, 0 -.L1318: +.L1325: cmp w2, w1, uxth - bls .L1323 + bls .L1330 add x1, x1, 1 add x0, x3, x1, lsl 1 ldrh w0, [x0,-2] cmp w0, w4 - bne .L1318 + bne .L1325 mov w0, 1 - b .L1317 -.L1323: + b .L1324 +.L1330: mov w0, 0 -.L1317: +.L1324: ret .size IsBlkInVendorPart, .-IsBlkInVendorPart .align 2 @@ -8026,26 +8062,26 @@ FtlCacheMetchLpa: mov w6, w0 add x2, x2, :lo12:.LANCHOR2 mov w0, 0 - ldr w3, [x2,960] - cbz w3, .L1325 - ldr x5, [x2,1024] + ldr w3, [x2,968] + cbz w3, .L1332 + ldr x5, [x2,1032] mov x0, 56 mov x2, 0 -.L1326: +.L1333: cmp w3, w2 - bls .L1335 + bls .L1342 madd x4, x2, x0, x5 add x2, x2, 1 ldr w4, [x4,24] cmp w4, w6 - bcc .L1326 + bcc .L1333 cmp w4, w1 - bhi .L1326 + bhi .L1333 mov w0, 1 - b .L1325 -.L1335: + b .L1332 +.L1342: mov w0, 0 -.L1325: +.L1332: ret .size FtlCacheMetchLpa, .-FtlCacheMetchLpa .align 2 @@ -8068,8 +8104,8 @@ ftl_get_density: .global FtlGetLpn .type FtlGetLpn, %function FtlGetLpn: - adrp x0, .LANCHOR2+1388 - ldr w0, [x0,#:lo12:.LANCHOR2+1388] + adrp x0, .LANCHOR2+1396 + ldr w0, [x0,#:lo12:.LANCHOR2+1396] ret .size FtlGetLpn, .-FtlGetLpn .align 2 @@ -8083,8 +8119,8 @@ FtlBbmMapBadBlock: str x19, [sp,16] adrp x19, .LANCHOR2 add x19, x19, :lo12:.LANCHOR2 - ldrh w3, [x19,806] - add x19, x19, 1288 + ldrh w3, [x19,814] + add x19, x19, 1296 udiv w2, w1, w3 add x0, x19, x2, uxth 3 ldr x0, [x0,32] @@ -8114,11 +8150,11 @@ FtlBbmIsBadBlock: adrp x2, .LANCHOR2 uxth w0, w0 add x3, x2, :lo12:.LANCHOR2 - ldrh w1, [x3,806] + ldrh w1, [x3,814] udiv w2, w0, w1 msub w0, w2, w1, w0 add x2, x3, x2, uxth 3 - ldr x1, [x2,1320] + ldr x1, [x2,1328] uxth w0, w0 ubfx x3, x0, 5, 11 ldr w1, [x1,x3,lsl 2] @@ -8140,9 +8176,9 @@ FtlBbt2Bitmap: add x29, sp, 0 stp x19, x20, [sp,16] mov x20, x0 - adrp x0, .LANCHOR2+1280 + adrp x0, .LANCHOR2+1288 mov x19, x1 - ldrh w2, [x0,#:lo12:.LANCHOR2+1280] + ldrh w2, [x0,#:lo12:.LANCHOR2+1288] mov x0, x1 mov w1, 0 lsl w2, w2, 2 @@ -8150,10 +8186,10 @@ FtlBbt2Bitmap: mov x3, 0 mov w0, 65535 mov w5, 1 -.L1344: +.L1351: ldrh w2, [x20,x3] cmp w2, w0 - beq .L1342 + beq .L1349 ubfx x4, x2, 5, 11 add x3, x3, 2 lsl x4, x4, 2 @@ -8162,8 +8198,8 @@ FtlBbt2Bitmap: ldr w1, [x19,x4] orr w2, w1, w2 str w2, [x19,x4] - bne .L1344 -.L1342: + bne .L1351 +.L1349: ldp x19, x20, [sp,16] ldp x29, x30, [sp], 32 ret @@ -8179,34 +8215,34 @@ FtlBbmTblFlush: add x19, x19, :lo12:.LANCHOR2 stp x21, x22, [sp,32] stp x23, x24, [sp,48] - ldr w1, [x19,1392] + ldr w1, [x19,1400] stp x25, x26, [sp,64] - cbnz w1, .L1349 - ldr x0, [x19,1040] + cbnz w1, .L1356 + ldr x0, [x19,1048] mov x22, 0 - ldr x3, [x19,1104] - add x21, x19, 1288 - ldrh w2, [x19,820] - str x0, [x19,1408] - str x3, [x19,1416] + ldr x3, [x19,1112] + add x21, x19, 1296 + ldrh w2, [x19,828] + str x0, [x19,1416] + str x3, [x19,1424] bl ftl_memset -.L1350: - ldrh w1, [x19,762] +.L1357: + ldrh w1, [x19,770] mov w0, w22 - add x20, x19, 1400 + add x20, x19, 1408 add x22, x22, 1 cmp w0, w1 - bge .L1358 + bge .L1365 add x1, x21, x22, lsl 3 - ldrh w2, [x19,1280] + ldrh w2, [x19,1288] ldr x3, [x20,8] ldr x1, [x1,24] mul w0, w0, w2 add x0, x3, x0, sxtw 2 lsl w2, w2, 2 bl ftl_memcpy - b .L1350 -.L1358: + b .L1357 +.L1365: ldr x25, [x20,16] mov w1, 255 mov w2, 16 @@ -8222,22 +8258,22 @@ FtlBbmTblFlush: add x24, x24, :lo12:.LC32 ldr w0, [x21,8] str w0, [x25,4] - ldrh w0, [x19,1288] + ldrh w0, [x19,1296] strh w0, [x25,2] ldrh w0, [x21,4] strh w0, [x25,8] ldrh w0, [x21,6] strh w0, [x25,10] - ldr w0, [x19,736] + ldr w0, [x19,744] strh w0, [x25,12] -.L1352: - ldr x0, [x19,1040] +.L1359: + ldr x0, [x19,1048] str x0, [x20,8] - ldrh w1, [x19,1288] - ldr x0, [x19,1104] + ldrh w1, [x19,1296] + ldr x0, [x19,1112] str x0, [x20,16] - ldrh w2, [x19,1290] - ldrh w3, [x19,1292] + ldrh w2, [x19,1298] + ldrh w3, [x19,1300] orr w0, w2, w1, lsl 10 ldrh w4, [x25,10] str w0, [x20,4] @@ -8249,61 +8285,61 @@ FtlBbmTblFlush: mov w2, w1 mov w3, w1 bl FlashProgPages - ldrh w1, [x19,812] - ldrh w0, [x19,1290] + ldrh w1, [x19,820] + ldrh w0, [x19,1298] sub w1, w1, #1 cmp w0, w1 - blt .L1353 - ldr w1, [x19,1296] - ldrh w0, [x19,1288] + blt .L1360 + ldr w1, [x19,1304] + ldrh w0, [x19,1296] add w1, w1, 1 - str w1, [x19,1296] + str w1, [x19,1304] str w1, [x25,4] strh w0, [x25,8] - ldrh w1, [x19,1292] - strh w0, [x19,1292] - ldr x0, [x19,1008] - strh w1, [x19,1288] + ldrh w1, [x19,1300] + strh w0, [x19,1300] + ldr x0, [x19,1016] + strh w1, [x19,1296] lsl w1, w1, 10 str w1, [x20,4] str w1, [x0,4] mov w1, 1 mov w2, w1 - strh wzr, [x19,1290] - ldr x0, [x19,1008] + strh wzr, [x19,1298] + ldr x0, [x19,1016] bl FlashEraseBlocks mov w1, 1 mov x0, x20 mov w2, w1 mov w3, w1 bl FlashProgPages -.L1353: - ldrh w1, [x19,1290] +.L1360: + ldrh w1, [x19,1298] ldr w0, [x20] add w1, w1, 1 - strh w1, [x19,1290] + strh w1, [x19,1298] cmn w0, #1 - bne .L1354 + bne .L1361 ldr w1, [x20,4] mov x0, x24 add w26, w26, 1 bl printk uxth w26, w26 cmp w26, 3 - bls .L1352 + bls .L1359 adrp x0, .LC33 ldr w1, [x20,4] add x0, x0, :lo12:.LC33 mov w2, w26 bl printk mov w0, 1 - str w0, [x19,1392] - b .L1349 -.L1354: - cbnz w23, .L1349 + str w0, [x19,1400] + b .L1356 +.L1361: + cbnz w23, .L1356 mov w23, 1 - b .L1352 -.L1349: + b .L1359 +.L1356: mov w0, 0 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -8324,29 +8360,29 @@ FtlLoadFactoryBbt: stp x25, x26, [sp,64] stp x19, x20, [sp,16] stp x23, x24, [sp,48] - add x21, x1, 1400 - add x23, x1, 1288 - ldr x0, [x1,1040] + add x21, x1, 1408 + add x23, x1, 1296 + ldr x0, [x1,1048] mov w22, 0 - ldr x24, [x1,1104] + ldr x24, [x1,1112] mov x19, x1 str x0, [x21,8] mov w25, -1 str x24, [x21,16] mov w26, 61664 -.L1360: - ldrh w0, [x19,762] +.L1367: + ldrh w0, [x19,770] cmp w22, w0 - bcs .L1369 - ldrh w20, [x19,806] + bcs .L1376 + ldrh w20, [x19,814] strh w25, [x23,12] -.L1362: +.L1369: sub w20, w20, #1 - ldrh w0, [x19,806] + ldrh w0, [x19,814] uxth w20, w20 sub w1, w0, #16 cmp w20, w1 - ble .L1363 + ble .L1370 madd w0, w22, w0, w20 mov w1, 1 lsl w0, w0, 10 @@ -8356,16 +8392,16 @@ FtlLoadFactoryBbt: bl FlashReadPages ldr w0, [x21] cmn w0, #1 - beq .L1362 + beq .L1369 ldrh w0, [x24] cmp w0, w26 - bne .L1362 + bne .L1369 strh w20, [x23,12] -.L1363: +.L1370: add w22, w22, 1 add x23, x23, 2 - b .L1360 -.L1369: + b .L1367 +.L1376: mov w0, 0 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -8384,7 +8420,7 @@ FtlBbtMemInit: add x0, x0, :lo12:.LANCHOR2 mov w2, 16 add x29, sp, 0 - add x0, x0, 1300 + add x0, x0, 1308 strh w1, [x0,-12] mov w1, 255 strh wzr, [x0,-6] @@ -8404,22 +8440,22 @@ FtlBbtCalcTotleCnt: str x21, [sp,32] mov w19, 0 mov w20, w19 - ldrh w1, [x0,806] - ldrh w21, [x0,762] + ldrh w1, [x0,814] + ldrh w21, [x0,770] mul w21, w1, w21 -.L1372: +.L1379: cmp w20, w21 - bge .L1378 + bge .L1385 mov w0, w20 bl FtlBbmIsBadBlock - cbz w0, .L1373 + cbz w0, .L1380 add w19, w19, 1 uxth w19, w19 -.L1373: +.L1380: add w20, w20, 1 uxth w20, w20 - b .L1372 -.L1378: + b .L1379 +.L1385: mov w0, w19 ldr x21, [sp,32] ldp x19, x20, [sp,16] @@ -8440,28 +8476,28 @@ FtlMakeBbt: stp x25, x26, [sp,64] stp x27, x28, [sp,80] mov x21, x19 - ldr w22, [x20,1392] - cbnz w22, .L1380 - add x24, x20, 1288 + ldr w22, [x20,1400] + cbnz w22, .L1387 + add x24, x20, 1296 mov x19, x20 mov x25, x24 - add x20, x20, 1400 + add x20, x20, 1408 mov w28, -3872 bl FtlBbtMemInit bl FtlLoadFactoryBbt -.L1381: - ldrh w0, [x19,762] +.L1388: + ldrh w0, [x19,770] cmp w22, w0 - bcs .L1399 + bcs .L1406 ldrh w4, [x25,12] mov w1, 65535 - ldr x0, [x19,1040] - ldr x26, [x19,1104] + ldr x0, [x19,1048] + ldr x26, [x19,1112] cmp w4, w1 str x0, [x20,8] str x26, [x20,16] - beq .L1382 - ldrh w0, [x19,806] + beq .L1389 + ldrh w0, [x19,814] mov w1, 1 mov w2, w1 madd w27, w22, w0, w4 @@ -8469,41 +8505,41 @@ FtlMakeBbt: str w0, [x20,4] mov x0, x20 bl FlashReadPages - ldrh w2, [x19,806] + ldrh w2, [x19,814] ldr x0, [x24,32] add w2, w2, 7 ldr x1, [x20,8] lsr w2, w2, 3 bl ftl_memcpy - b .L1383 -.L1382: + b .L1390 +.L1389: mov w1, w22 bl FlashGetBadBlockList ldr x0, [x20,8] ldr x1, [x24,32] bl FtlBbt2Bitmap - ldrh w23, [x19,806] -.L1385: + ldrh w23, [x19,814] +.L1392: sub w23, w23, #1 uxth w23, w23 -.L1384: - ldrh w0, [x19,806] +.L1391: + ldrh w0, [x19,814] madd w0, w22, w0, w23 bl FtlBbmIsBadBlock cmp w0, 1 - beq .L1385 - ldr x0, [x19,1104] + beq .L1392 + ldr x0, [x19,1112] mov w1, 0 mov w2, 16 strh w23, [x25,12] bl ftl_memset strh w28, [x26] str wzr, [x26,4] - ldrh w2, [x19,1280] + ldrh w2, [x19,1288] ldrh w0, [x25,12] strh w0, [x26,2] lsl w2, w2, 2 - ldrh w0, [x19,806] + ldrh w0, [x19,814] ldrh w4, [x25,12] ldr x1, [x24,32] madd w27, w22, w0, w4 @@ -8522,93 +8558,93 @@ FtlMakeBbt: bl FlashProgPages ldr w0, [x20] cmn w0, #1 - bne .L1383 + bne .L1390 mov w0, w27 bl FtlBbmMapBadBlock - b .L1384 -.L1383: + b .L1391 +.L1390: mov w0, w27 add w22, w22, 1 add x24, x24, 8 add x25, x25, 2 bl FtlBbmMapBadBlock - b .L1381 -.L1399: + b .L1388 +.L1406: mov w19, 0 -.L1388: +.L1395: add x20, x21, :lo12:.LANCHOR2 - ldrh w0, [x20,824] + ldrh w0, [x20,832] cmp w0, w19 - bls .L1400 + bls .L1407 mov w0, w19 add w19, w19, 1 bl FtlBbmMapBadBlock uxth w19, w19 - b .L1388 -.L1400: - ldrh w19, [x20,1300] + b .L1395 +.L1407: + ldrh w19, [x20,1308] mov w23, 65535 sub w19, w19, #1 uxth w19, w19 -.L1390: - add x22, x20, 1288 +.L1397: + add x22, x20, 1296 ldrh w0, [x22,12] sub w0, w0, #48 cmp w19, w0 - ble .L1394 + ble .L1401 mov w0, w19 bl FtlBbmIsBadBlock cmp w0, 1 - beq .L1391 + beq .L1398 mov w0, w19 bl FlashTestBlk - cbz w0, .L1392 + cbz w0, .L1399 mov w0, w19 bl FtlBbmMapBadBlock - b .L1391 -.L1392: - ldrh w0, [x20,1288] + b .L1398 +.L1399: + ldrh w0, [x20,1296] cmp w0, w23 - bne .L1393 - strh w19, [x20,1288] - b .L1391 -.L1393: + bne .L1400 + strh w19, [x20,1296] + b .L1398 +.L1400: strh w19, [x22,4] - b .L1394 -.L1391: + b .L1401 +.L1398: sub w19, w19, #1 uxth w19, w19 - b .L1390 -.L1394: + b .L1397 +.L1401: add x19, x21, :lo12:.LANCHOR2 mov w2, 2 - ldr x1, [x19,1008] - ldrh w0, [x19,1288] - str wzr, [x19,1296] + ldr x1, [x19,1016] + ldrh w0, [x19,1296] + str wzr, [x19,1304] lsl w0, w0, 10 str w0, [x1,4] - strh wzr, [x19,1290] - ldr x0, [x19,1008] - ldrh w1, [x19,1292] + strh wzr, [x19,1298] + ldr x0, [x19,1016] + ldrh w1, [x19,1300] lsl w1, w1, 10 str w1, [x0,60] mov w1, 1 bl FlashEraseBlocks - ldrh w0, [x19,1288] + ldrh w0, [x19,1296] bl FtlBbmMapBadBlock - ldrh w0, [x19,1292] + ldrh w0, [x19,1300] bl FtlBbmMapBadBlock bl FtlBbmTblFlush - strh wzr, [x19,1290] - ldr w0, [x19,1296] - ldrh w1, [x19,1292] + strh wzr, [x19,1298] + ldr w0, [x19,1304] + ldrh w1, [x19,1300] add w0, w0, 1 - str w0, [x19,1296] - ldrh w0, [x19,1288] - strh w0, [x19,1292] - strh w1, [x19,1288] + str w0, [x19,1304] + ldrh w0, [x19,1296] + strh w0, [x19,1300] + strh w1, [x19,1296] bl FtlBbmTblFlush -.L1380: +.L1387: mov w0, 0 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -8626,11 +8662,11 @@ V2P_block: uxth w0, w0 add x3, x3, :lo12:.LANCHOR2 uxth w1, w1 - ldrh w4, [x3,764] + ldrh w4, [x3,772] udiv w2, w0, w4 msub w0, w2, w4, w0 madd w0, w1, w4, w0 - ldrh w1, [x3,806] + ldrh w1, [x3,814] madd w0, w2, w1, w0 ret .size V2P_block, .-V2P_block @@ -8641,8 +8677,8 @@ P2V_plane: adrp x2, .LANCHOR2 uxth w0, w0 add x2, x2, :lo12:.LANCHOR2 - ldrh w1, [x2,764] - ldrh w3, [x2,806] + ldrh w1, [x2,772] + ldrh w3, [x2,814] udiv w2, w0, w1 udiv w3, w0, w3 msub w0, w2, w1, w0 @@ -8656,10 +8692,10 @@ P2V_block_in_plane: adrp x2, .LANCHOR2 uxth w0, w0 add x2, x2, :lo12:.LANCHOR2 - ldrh w3, [x2,806] + ldrh w3, [x2,814] udiv w1, w0, w3 msub w0, w1, w3, w0 - ldrh w1, [x2,764] + ldrh w1, [x2,772] uxth w0, w0 udiv w0, w0, w1 ret @@ -8670,16 +8706,16 @@ P2V_block_in_plane: ftl_cmp_data_ver: cmp w0, w1 mov w2, -2147483648 - bls .L1405 + bls .L1412 sub w1, w0, w1 cmp w1, w2 cset w0, ls - b .L1406 -.L1405: + b .L1413 +.L1412: sub w1, w1, w0 cmp w1, w2 cset w0, hi -.L1406: +.L1413: ret .size ftl_cmp_data_ver, .-ftl_cmp_data_ver .align 2 @@ -8696,12 +8732,12 @@ FtlGetLastWrittenPage: str x25, [sp,64] mov w23, w1 add x3, x3, :lo12:.LANCHOR2 - bne .L1408 - ldrh w19, [x3,812] - b .L1409 -.L1408: - ldrh w19, [x3,810] -.L1409: + bne .L1415 + ldrh w19, [x3,820] + b .L1416 +.L1415: + ldrh w19, [x3,818] +.L1416: sub w19, w19, #1 lsl w21, w0, 10 mov w1, 1 @@ -8716,12 +8752,12 @@ FtlGetLastWrittenPage: bl FlashReadPages ldr w0, [x29,144] cmn w0, #1 - bne .L1410 + bne .L1417 mov w22, 0 mov w25, 2 -.L1411: +.L1418: cmp w22, w19 - bgt .L1410 + bgt .L1417 add w3, w22, w19 mov w1, 1 mov w2, w23 @@ -8733,21 +8769,21 @@ FtlGetLastWrittenPage: bl FlashReadPages ldr w0, [x24] cmn w0, #1 - bne .L1412 + bne .L1419 ldr w0, [x24,4] cmn w0, #1 - bne .L1412 + bne .L1419 ldr w0, [x29,88] cmn w0, #1 - beq .L1412 + beq .L1419 sub w19, w20, #1 sxth w19, w19 - b .L1411 -.L1412: + b .L1418 +.L1419: add w20, w20, 1 sxth w22, w20 - b .L1411 -.L1410: + b .L1418 +.L1417: mov w0, w19 ldr x25, [sp,64] ldp x19, x20, [sp,16] @@ -8768,19 +8804,20 @@ FtlLoadBbt: add x23, x19, :lo12:.LANCHOR2 mov w24, 61649 stp x21, x22, [sp,32] - add x21, x23, 1400 - ldr x22, [x23,1104] - str xzr, [x21,8] + add x21, x23, 1408 + ldr x0, [x23,1048] + ldr x22, [x23,1112] + str x0, [x21,8] str x22, [x21,16] bl FtlBbtMemInit - ldrh w20, [x23,806] + ldrh w20, [x23,814] sub w20, w20, #1 uxth w20, w20 -.L1419: - ldrh w0, [x23,806] +.L1426: + ldrh w0, [x23,814] sub w0, w0, #48 cmp w20, w0 - ble .L1422 + ble .L1429 lsl w0, w20, 10 mov w1, 1 str w0, [x21,4] @@ -8789,7 +8826,7 @@ FtlLoadBbt: bl FlashReadPages ldr w0, [x21] cmn w0, #1 - bne .L1420 + bne .L1427 ldr w0, [x21,4] mov w1, 1 mov w2, w1 @@ -8797,128 +8834,128 @@ FtlLoadBbt: str w0, [x21,4] mov x0, x21 bl FlashReadPages -.L1420: +.L1427: ldr w0, [x21] cmn w0, #1 - beq .L1421 + beq .L1428 ldrh w0, [x22] cmp w0, w24 - bne .L1421 + bne .L1428 ldr w1, [x22,4] - str w1, [x23,1296] - strh w20, [x23,1288] + str w1, [x23,1304] + strh w20, [x23,1296] ldrh w1, [x22,8] - strh w1, [x23,1292] - b .L1422 -.L1421: + strh w1, [x23,1300] + b .L1429 +.L1428: sub w20, w20, #1 uxth w20, w20 - b .L1419 -.L1422: + b .L1426 +.L1429: add x21, x19, :lo12:.LANCHOR2 mov w2, 65535 mov w0, -1 - ldrh w1, [x21,1288] + ldrh w1, [x21,1296] cmp w1, w2 - beq .L1424 - ldrh w1, [x21,1292] + beq .L1431 + ldrh w1, [x21,1300] cmp w1, w2 - beq .L1426 - add x0, x21, 1400 + beq .L1433 + add x0, x21, 1408 lsl w1, w1, 10 str w1, [x0,4] mov w1, 1 mov w2, w1 bl FlashReadPages - ldr w0, [x21,1400] + ldr w0, [x21,1408] cmn w0, #1 - beq .L1426 + beq .L1433 ldrh w1, [x22] mov w0, 61649 cmp w1, w0 - bne .L1426 + bne .L1433 ldr w0, [x22,4] - ldr w1, [x21,1296] + ldr w1, [x21,1304] cmp w0, w1 - bls .L1426 - str w0, [x21,1296] - ldrh w1, [x21,1292] + bls .L1433 + str w0, [x21,1304] + ldrh w1, [x21,1300] ldrh w0, [x22,8] - strh w1, [x21,1288] - strh w0, [x21,1292] -.L1426: + strh w1, [x21,1296] + strh w0, [x21,1300] +.L1433: add x20, x19, :lo12:.LANCHOR2 mov w1, 1 - add x23, x20, 1400 + add x23, x20, 1408 mov w24, 61649 - ldrh w0, [x20,1288] + ldrh w0, [x20,1296] bl FtlGetLastWrittenPage sxth w21, w0 add w0, w0, 1 - strh w0, [x20,1290] -.L1428: - tbnz w21, #31, .L1433 - ldrh w0, [x20,1288] + strh w0, [x20,1298] +.L1435: + tbnz w21, #31, .L1440 + ldrh w0, [x20,1296] mov w1, 1 mov w2, w1 orr w0, w21, w0, lsl 10 str w0, [x23,4] - ldr x0, [x20,1040] + ldr x0, [x20,1048] str x0, [x23,8] mov x0, x23 bl FlashReadPages ldr w0, [x23] cmn w0, #1 - beq .L1429 + beq .L1436 ldrh w0, [x22] cmp w0, w24 - bne .L1429 -.L1433: + bne .L1436 +.L1440: add x1, x19, :lo12:.LANCHOR2 ldrh w0, [x22,10] mov w2, 65535 - strh w0, [x1,1294] + strh w0, [x1,1302] ldrh w0, [x22,12] cmp w0, w2 - bne .L1430 - b .L1431 -.L1429: + bne .L1437 + b .L1438 +.L1436: sub w21, w21, #1 sxth w21, w21 - b .L1428 -.L1430: - ldr w2, [x1,736] + b .L1435 +.L1437: + ldr w2, [x1,744] cmp w0, w2 - beq .L1431 - ldrh w1, [x1,750] + beq .L1438 + ldrh w1, [x1,758] lsr w1, w1, 2 cmp w0, w1 - bcs .L1431 + bcs .L1438 cmp w2, w1 - bcs .L1431 + bcs .L1438 bl FtlSysBlkNumInit -.L1431: +.L1438: add x19, x19, :lo12:.LANCHOR2 mov x20, 0 - add x21, x19, 1288 -.L1434: - ldrh w0, [x19,762] + add x21, x19, 1296 +.L1441: + ldrh w0, [x19,770] mov w1, w20 add x20, x20, 1 cmp w1, w0 - bcs .L1452 - ldrh w2, [x19,1280] + bcs .L1459 + ldrh w2, [x19,1288] add x0, x21, x20, lsl 3 - ldr x3, [x19,1408] + ldr x3, [x19,1416] mul w1, w1, w2 ldr x0, [x0,24] lsl w2, w2, 2 add x1, x3, x1, lsl 2 bl ftl_memcpy - b .L1434 -.L1452: + b .L1441 +.L1459: mov w0, 0 -.L1424: +.L1431: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -8934,11 +8971,11 @@ FtlFreeSysBlkQueueInit: stp x29, x30, [sp, -16]! add x1, x1, :lo12:.LANCHOR2 add x29, sp, 0 - strh w0, [x1,1456] - add x0, x1, 1464 - strh wzr, [x1,1458] - strh wzr, [x1,1460] - strh wzr, [x1,1462] + strh w0, [x1,1464] + add x0, x1, 1472 + strh wzr, [x1,1466] + strh wzr, [x1,1468] + strh wzr, [x1,1470] mov w1, 0 bl ftl_memset mov w0, 0 @@ -8949,8 +8986,8 @@ FtlFreeSysBlkQueueInit: .global FtlFreeSysBlkQueueEmpty .type FtlFreeSysBlkQueueEmpty, %function FtlFreeSysBlkQueueEmpty: - adrp x0, .LANCHOR2+1462 - ldrh w0, [x0,#:lo12:.LANCHOR2+1462] + adrp x0, .LANCHOR2+1470 + ldrh w0, [x0,#:lo12:.LANCHOR2+1470] cmp w0, wzr cset w0, eq ret @@ -8959,8 +8996,8 @@ FtlFreeSysBlkQueueEmpty: .global FtlFreeSysBlkQueueFull .type FtlFreeSysBlkQueueFull, %function FtlFreeSysBlkQueueFull: - adrp x0, .LANCHOR2+1462 - ldrh w0, [x0,#:lo12:.LANCHOR2+1462] + adrp x0, .LANCHOR2+1470 + ldrh w0, [x0,#:lo12:.LANCHOR2+1470] cmp w0, 1024 cset w0, eq ret @@ -8978,33 +9015,33 @@ FtlFreeSysBlkQueueIn: mov x19, x2 stp x21, x22, [sp,32] uxth w22, w0 - ldrh w0, [x20,1462] + ldrh w0, [x20,1470] cmp w0, 1024 - beq .L1456 - cbz w1, .L1458 - ldr w0, [x20,1392] - cbnz w0, .L1458 + beq .L1463 + cbz w1, .L1465 + ldr w0, [x20,1400] + cbnz w0, .L1465 mov w0, w22 bl P2V_block_in_plane uxth w21, w0 - ldr x0, [x20,1008] + ldr x0, [x20,1016] lsl w1, w22, 10 str w1, [x0,4] mov w1, 1 mov w2, w1 - ldr x0, [x20,1008] + ldr x0, [x20,1016] bl FlashEraseBlocks ubfiz x1, x21, 1, 16 - ldr x2, [x20,1160] + ldr x2, [x20,1168] ldrh w0, [x2,x1] add w0, w0, 1 strh w0, [x2,x1] - ldr w0, [x20,904] + ldr w0, [x20,912] add w0, w0, 1 - str w0, [x20,904] -.L1458: + str w0, [x20,912] +.L1465: add x1, x19, :lo12:.LANCHOR2 - add x1, x1, 1456 + add x1, x1, 1464 ldrh w0, [x1,6] ldrh w2, [x1,4] add w0, w0, 1 @@ -9014,7 +9051,7 @@ FtlFreeSysBlkQueueIn: and w2, w2, 1023 strh w22, [x0,8] strh w2, [x1,4] -.L1456: +.L1463: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x29, x30, [sp], 48 @@ -9028,198 +9065,202 @@ FtlLowFormatEraseBlock: add x29, sp, 0 stp x21, x22, [sp,32] adrp x21, .LANCHOR2 - add x2, x21, :lo12:.LANCHOR2 + add x3, x21, :lo12:.LANCHOR2 stp x23, x24, [sp,48] stp x25, x26, [sp,64] stp x19, x20, [sp,16] stp x27, x28, [sp,80] uxth w25, w0 uxtb w24, w1 - ldr w3, [x2,1392] + ldrb w0, [x3,648] + ldr w2, [x3,1400] + str w0, [x29,120] mov w0, 0 - cbnz w3, .L1466 - adrp x23, .LANCHOR0 - str w25, [x2,936] - add x0, x23, :lo12:.LANCHOR0 - str x23, [x29,112] - mov w27, w3 - mov w20, w3 - mov w22, w3 - mov x23, x2 + cbnz w2, .L1473 + adrp x28, .LANCHOR0 + str w25, [x3,944] + add x0, x28, :lo12:.LANCHOR0 + mov w27, w2 + mov w20, w2 + mov w19, w2 + mov x26, x3 + mov w23, 56 ldrb w0, [x0,136] - mov w26, 56 str w0, [x29,124] - mov w28, 4 -.L1467: - ldrh w0, [x23,740] +.L1474: + ldrh w0, [x26,748] cmp w0, w27 - bls .L1511 - umull x0, w27, w26 - ldr x1, [x23,1008] + bls .L1518 + umull x0, w27, w23 + ldr x1, [x26,1016] str wzr, [x1,x0] - add x0, x23, 768 + add x0, x26, 776 mov w1, w25 ldrb w0, [x0,w27,sxtw] bl V2P_block - uxth w19, w0 - mov w1, w19 - cbz w24, .L1468 - str x1, [x29,104] + uxth w22, w0 + mov w1, w22 + cbz w24, .L1475 + str x1, [x29,112] bl IsBlkInVendorPart - ldr x1, [x29,104] - cbnz w0, .L1469 -.L1468: + ldr x1, [x29,112] + cbnz w0, .L1476 +.L1475: mov w0, w1 bl FtlBbmIsBadBlock - cbnz w0, .L1470 - umull x0, w20, w26 - ldr x1, [x23,1008] - lsl w19, w19, 10 + cbnz w0, .L1477 + umull x0, w20, w23 + ldr x1, [x26,1016] + lsl w22, w22, 10 + mov w2, 4 add x1, x1, x0 - str w19, [x1,4] - ldr x1, [x23,1008] - ldr x4, [x23,1112] + str w22, [x1,4] + ldr x1, [x26,1016] + ldr x4, [x26,1120] add x1, x1, x0 - ldrh w0, [x23,822] + ldrh w0, [x26,830] mul w0, w20, w0 add w20, w20, 1 str xzr, [x1,8] - sdiv w0, w0, w28 + sdiv w0, w0, w2 uxth w20, w20 add x0, x4, x0, sxtw 2 str x0, [x1,16] - b .L1469 -.L1470: - add w22, w22, 1 - uxth w22, w22 -.L1469: - add w3, w27, 1 - uxth w27, w3 - b .L1467 -.L1511: - mov w19, w22 - mov w0, w22 - cbz w20, .L1466 + b .L1476 +.L1477: + add w19, w19, 1 + uxth w19, w19 +.L1476: + add w2, w27, 1 + uxth w27, w2 + b .L1474 +.L1518: + cbz w20, .L1497 ldr w0, [x29,124] mov w2, w20 - mov x26, 0 - mov x27, 56 + strb wzr, [x26,648] + mov x23, 0 cmp w0, wzr - ldr x0, [x23,1008] + ldr x0, [x26,1016] cset w22, ne mov w1, w22 bl FlashEraseBlocks -.L1473: - cmp w20, w26, uxth - bls .L1512 + ldrb w0, [x29,120] + strb w0, [x26,648] + mov x26, 56 +.L1480: + cmp w20, w23, uxth + bls .L1519 add x1, x21, :lo12:.LANCHOR2 - mul x0, x26, x27 - ldr x1, [x1,1008] + mul x0, x23, x26 + ldr x1, [x1,1016] add x2, x1, x0 ldr w0, [x1,x0] cmn w0, #1 - bne .L1474 + bne .L1481 ldr w0, [x2,4] add w19, w19, 1 lsr w0, w0, 10 uxth w19, w19 bl FtlBbmMapBadBlock -.L1474: - add x26, x26, 1 - b .L1473 -.L1512: - cbnz w24, .L1476 +.L1481: + add x23, x23, 1 + b .L1480 +.L1519: + cbnz w24, .L1483 mov w0, 1 uxth w22, w22 mov w27, 6 str w0, [x29,124] - b .L1477 -.L1476: + b .L1484 +.L1483: add x0, x21, :lo12:.LANCHOR2 - ldrh w0, [x0,812] + add x28, x28, :lo12:.LANCHOR0 + ldrh w0, [x0,820] str w0, [x29,124] - ldr x0, [x29,112] - add x23, x0, :lo12:.LANCHOR0 - ldrb w0, [x23,136] - cbnz w0, .L1493 + ldrb w0, [x28,136] + cbnz w0, .L1500 ldr w0, [x29,124] mov w22, 1 lsr w27, w0, 2 - b .L1477 -.L1493: + b .L1484 +.L1500: mov w22, 1 mov w27, w22 -.L1477: +.L1484: mov w23, 0 add x28, x21, :lo12:.LANCHOR2 -.L1486: +.L1493: mov w26, 0 mov w20, w26 -.L1478: - ldrh w0, [x28,740] +.L1485: + ldrh w0, [x28,748] cmp w0, w26 - bls .L1513 + bls .L1520 mov w0, 56 - ldr x1, [x28,1008] + ldr x1, [x28,1016] umull x0, w26, w0 str wzr, [x1,x0] - add x0, x28, 768 + add x0, x28, 776 mov w1, w25 ldrb w0, [x0,w26,sxtw] bl V2P_block uxth w2, w0 str w2, [x29,112] mov w1, w2 - cbz w24, .L1479 + cbz w24, .L1486 str x1, [x29,104] bl IsBlkInVendorPart ldr x1, [x29,104] - cbnz w0, .L1480 -.L1479: + cbnz w0, .L1487 +.L1486: mov w0, w1 bl FtlBbmIsBadBlock - cbnz w0, .L1480 + cbnz w0, .L1487 mov w0, 56 - ldr x1, [x28,1008] + ldr x1, [x28,1016] ldr w2, [x29,112] umull x0, w20, w0 add x1, x1, x0 add w2, w23, w2, lsl 10 str w2, [x1,4] mov w2, 4 - ldr x1, [x28,1008] + ldr x1, [x28,1016] add x1, x1, x0 - ldr x0, [x28,1080] + ldr x0, [x28,1088] str x0, [x1,8] - ldrh w0, [x28,822] + ldrh w0, [x28,830] mul w0, w20, w0 add w20, w20, 1 sdiv w0, w0, w2 uxth w20, w20 - ldr x2, [x28,1088] + ldr x2, [x28,1096] add x0, x2, x0, sxtw 2 str x0, [x1,16] -.L1480: +.L1487: add w3, w26, 1 uxth w26, w3 - b .L1478 -.L1513: - cbz w20, .L1490 - ldr x0, [x28,1008] + b .L1485 +.L1520: + cbz w20, .L1497 + ldr x0, [x28,1016] mov w1, w20 mov w2, w22 mov w3, 1 + strb wzr, [x28,648] bl FlashProgPages + ldrb w0, [x29,120] mov x1, 0 -.L1483: + strb w0, [x28,648] +.L1490: cmp w20, w1, uxth - bls .L1514 + bls .L1521 mov x0, 56 - ldr x2, [x28,1008] + ldr x2, [x28,1016] mul x0, x1, x0 add x3, x2, x0 ldr w0, [x2,x0] - cbz w0, .L1484 + cbz w0, .L1491 ldr w0, [x3,4] add w19, w19, 1 str x1, [x29,112] @@ -9227,47 +9268,47 @@ FtlLowFormatEraseBlock: uxth w19, w19 bl FtlBbmMapBadBlock ldr x1, [x29,112] -.L1484: +.L1491: add x1, x1, 1 - b .L1483 -.L1514: + b .L1490 +.L1521: add w23, w23, w27 ldr w0, [x29,124] uxth w23, w23 cmp w23, w0 - bcc .L1486 + bcc .L1493 mov x23, 0 mov x26, 56 -.L1487: +.L1494: cmp w20, w23, uxth - bls .L1515 - cbz w24, .L1488 + bls .L1522 + cbz w24, .L1495 add x1, x21, :lo12:.LANCHOR2 mul x0, x23, x26 - ldr x1, [x1,1008] + ldr x1, [x1,1016] add x2, x1, x0 ldr w0, [x1,x0] - cbnz w0, .L1488 + cbnz w0, .L1495 ldr w0, [x2,4] mov w1, 1 lsr w0, w0, 10 bl FtlFreeSysBlkQueueIn -.L1488: +.L1495: add x23, x23, 1 - b .L1487 -.L1515: + b .L1494 +.L1522: cmp w25, 63 - bls .L1494 - cbz w24, .L1490 -.L1494: + bls .L1501 + cbz w24, .L1497 +.L1501: add x21, x21, :lo12:.LANCHOR2 mov w1, w22 mov w2, w20 - ldr x0, [x21,1008] + ldr x0, [x21,1016] bl FlashEraseBlocks -.L1490: +.L1497: mov w0, w19 -.L1466: +.L1473: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -9280,84 +9321,36 @@ FtlLowFormatEraseBlock: .global FtlFreeSysBLkSort .type FtlFreeSysBLkSort, %function FtlFreeSysBLkSort: - stp x29, x30, [sp, -48]! - add x29, sp, 0 - stp x19, x20, [sp,16] - adrp x20, .LANCHOR2 - str x21, [sp,32] - add x20, x20, :lo12:.LANCHOR2 - mov w19, 0 - add x21, x20, 1456 -.L1517: - ldrh w0, [x21,6] - cmp w0, w19 - bls .L1525 - ldrh w0, [x21,2] - add w0, w0, w19 - add x0, x21, x0, sxtw 1 - ldrh w0, [x0,8] - bl P2V_block_in_plane - ubfiz x0, x0, 1, 16 - ldr x3, [x20,1160] - ubfiz x1, x19, 2, 16 - ldr x2, [x20,1040] - add w19, w19, 1 - ldrh w0, [x3,x0] - uxth w19, w19 - str w0, [x2,x1] - b .L1517 -.L1525: - adrp x3, .LANCHOR2 - mov w0, 0 - add x3, x3, :lo12:.LANCHOR2 -.L1519: - ldrh w6, [x3,1462] - sub w1, w6, #1 - cmp w0, w1 - bge .L1526 - add w5, w0, 1 - ldr x4, [x3,1040] - mov w1, w0 - uxth w5, w5 - mov w2, w5 -.L1520: - cmp w2, w6 - bcs .L1527 - ubfiz x7, x2, 2, 16 - ldr w8, [x4,w1,uxtw 2] - ldr w7, [x4,x7] - cmp w8, w7 - csel w1, w1, w2, ls - add w2, w2, 1 - uxth w2, w2 - b .L1520 -.L1527: - cmp w0, w1 - beq .L1523 - ubfiz x2, x0, 2, 16 - ubfiz x6, x1, 2, 32 - ldr w8, [x4,x2] - ldr w7, [x4,x6] - str w8, [x4,x6] - ldr x4, [x3,1040] - str w7, [x4,x2] - add x2, x3, 1456 - ldrh w4, [x3,1458] - add w1, w4, w1 - add w0, w4, w0 - add x1, x2, x1, sxtw 1 - add x0, x2, x0, sxtw 1 - ldrh w2, [x0,8] - ldrh w6, [x1,8] - strh w2, [x1,8] - strh w6, [x0,8] + adrp x0, .LANCHOR2 + mov w5, 0 + add x1, x0, :lo12:.LANCHOR2 + mov w4, w5 + add x1, x1, 1464 + ldrh w6, [x1,2084] + and w6, w6, 31 + ldrh w3, [x1,2] + ldrh w2, [x1,4] +.L1524: + cmp w4, w6 + bge .L1531 + add x5, x1, x3, sxtw 1 + ldrh w7, [x5,8] + add x5, x1, x2, sxtw 1 + add w4, w4, 1 + strh w7, [x5,8] + mov w5, 1 + add w3, w3, 1 + add w2, w2, w5 + uxth w4, w4 + and w3, w3, 1023 + and w2, w2, 1023 + b .L1524 +.L1531: + cbz w5, .L1523 + add x0, x0, :lo12:.LANCHOR2 + strh w3, [x0,1466] + strh w2, [x0,1468] .L1523: - mov w0, w5 - b .L1519 -.L1526: - ldp x19, x20, [sp,16] - ldr x21, [sp,32] - ldp x29, x30, [sp], 48 ret .size FtlFreeSysBLkSort, .-FtlFreeSysBLkSort .align 2 @@ -9371,20 +9364,20 @@ remove_from_free_sys_Queue: stp x19, x20, [sp,16] adrp x20, .LANCHOR2 add x20, x20, :lo12:.LANCHOR2 - add x20, x20, 1456 + add x20, x20, 1464 ldrh w3, [x20,6] - cbz w3, .L1529 + cbz w3, .L1533 ldrh w4, [x20,2] mov w19, w0 -.L1530: +.L1534: cmp w19, w3 - bcs .L1535 + bcs .L1539 add w2, w19, w4 ubfiz x2, x2, 1, 10 add x2, x20, x2 ldrh w0, [x2,8] cmp w0, w1 - bne .L1531 + bne .L1535 adrp x0, .LC34 add x0, x0, :lo12:.LC34 bl printk @@ -9402,13 +9395,13 @@ remove_from_free_sys_Queue: strh w1, [x19,8] strh w0, [x20,6] mov w0, 1 - b .L1529 -.L1531: - add w19, w19, 1 - b .L1530 + b .L1533 .L1535: + add w19, w19, 1 + b .L1534 +.L1539: mov w0, 0 -.L1529: +.L1533: ldp x19, x20, [sp,16] ldp x29, x30, [sp], 32 ret @@ -9417,59 +9410,82 @@ remove_from_free_sys_Queue: .global FtlFreeSysBlkQueueOut .type FtlFreeSysBlkQueueOut, %function FtlFreeSysBlkQueueOut: - stp x29, x30, [sp, -64]! + stp x29, x30, [sp, -96]! add x29, sp, 0 stp x19, x20, [sp,16] adrp x19, .LANCHOR2 - mov w20, 65535 + stp x23, x24, [sp,48] + add x19, x19, :lo12:.LANCHOR2 + adrp x23, .LC36 stp x21, x22, [sp,32] - add x22, x19, :lo12:.LANCHOR2 - add x2, x22, 1456 - ldrh w0, [x22,1462] - cbz w0, .L1537 - ldrh w1, [x22,1458] - add x3, x2, x1, sxtw 1 - sub w0, w0, #1 - strh w0, [x22,1462] - add w1, w1, 1 - ldrh w20, [x3,8] - and w1, w1, 1023 - strh w1, [x22,1458] - ldr w1, [x22,1392] - str x1, [x29,56] - cbnz w1, .L1537 + stp x25, x26, [sp,64] + add x21, x19, 1464 + adrp x24, .LANCHOR0 + add x23, x23, :lo12:.LC36 +.L1541: + ldrh w1, [x21,6] + adrp x22, .LANCHOR2 + cbz w1, .L1542 + ldrh w2, [x21,2] + sub w1, w1, #1 + add x0, x21, x2, sxtw 1 + strh w1, [x21,6] + add w2, w2, 1 + ldr w1, [x19,1400] + and w2, w2, 1023 + strh w2, [x21,2] + ldrh w20, [x0,8] + cbnz w1, .L1543 mov w0, w20 + str x1, [x29,88] bl P2V_block_in_plane - uxth w21, w0 - ldr x0, [x22,1008] + uxth w26, w0 + ldr x0, [x19,1016] lsl w2, w20, 10 - ldr x1, [x29,56] + ldr x1, [x29,88] str w2, [x0,4] - adrp x0, .LANCHOR0+136 - ldrb w0, [x0,#:lo12:.LANCHOR0+136] - cbz w0, .L1538 - ldr x0, [x22,1008] + add x0, x24, :lo12:.LANCHOR0 + ldrb w0, [x0,136] + cbz w0, .L1544 + ldr x0, [x19,1016] mov w2, 1 bl FlashEraseBlocks -.L1538: - add x19, x19, :lo12:.LANCHOR2 +.L1544: + add x25, x22, :lo12:.LANCHOR2 mov w1, 1 mov w2, w1 - ldr x0, [x19,1008] + ldr x0, [x25,1016] bl FlashEraseBlocks - ubfiz x0, x21, 1, 16 - ldr x2, [x19,1160] + ubfiz x0, x26, 1, 16 + ldr x2, [x25,1168] ldrh w1, [x2,x0] add w1, w1, 1 strh w1, [x2,x0] - ldr w0, [x19,904] + ldr w0, [x25,912] add w0, w0, 1 - str w0, [x19,904] -.L1537: + str w0, [x25,912] + b .L1543 +.L1542: + adrp x0, .LC35 + add x0, x0, :lo12:.LC35 + bl printk +.L1545: + b .L1545 +.L1543: + cbnz w20, .L1546 + add x22, x22, :lo12:.LANCHOR2 + mov x0, x23 + mov w1, w20 + ldrh w2, [x22,1470] + bl printk + b .L1541 +.L1546: mov w0, w20 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] - ldp x29, x30, [sp], 64 + ldp x23, x24, [sp,48] + ldp x25, x26, [sp,64] + ldp x29, x30, [sp], 96 ret .size FtlFreeSysBlkQueueOut, .-FtlFreeSysBlkQueueOut .align 2 @@ -9480,31 +9496,31 @@ insert_data_list: uxth w0, w0 add x3, x2, :lo12:.LANCHOR2 mov x4, x2 - ldrh w1, [x3,748] + ldrh w1, [x3,756] cmp w1, w0 - bls .L1546 + bls .L1552 mov w7, 6 - ldr x11, [x3,1272] + ldr x11, [x3,1280] mov w1, -1 umull x10, w0, w7 add x5, x11, x10 strh w1, [x5,2] strh w1, [x11,x10] - ldr x1, [x3,3512] - cbnz x1, .L1547 - str x5, [x3,3512] - b .L1546 -.L1547: + ldr x1, [x3,3568] + cbnz x1, .L1553 + str x5, [x3,3568] + b .L1552 +.L1553: ubfiz x8, x0, 1, 16 - ldr x13, [x3,1176] + ldr x13, [x3,1184] ldrh w2, [x5,4] mov x9, -6148914691236517206 - ldr x12, [x3,1272] + ldr x12, [x3,1280] mov w18, 65535 ldrh w6, [x13,x8] cmp w2, wzr - ldr x14, [x3,1160] - ldrh w17, [x3,748] + ldr x14, [x3,1168] + ldrh w17, [x3,756] mov w3, 0 mul w6, w6, w2 sub x2, x1, x12 @@ -9514,13 +9530,13 @@ insert_data_list: add x9, x14, x8 mov w8, w7 uxth w2, w2 -.L1555: +.L1561: add w3, w3, 1 cmp w0, w2 uxth w3, w3 - beq .L1546 + beq .L1552 cmp w3, w17 - bhi .L1546 + bhi .L1552 ubfiz x15, x2, 1, 16 ldrh w16, [x1,4] cmp w16, wzr @@ -9528,47 +9544,47 @@ insert_data_list: mul w7, w7, w16 csinv w7, w7, wzr, ne cmp w7, w6 - bne .L1551 + bne .L1557 ldrh w15, [x14,x15] ldrh w7, [x9] cmp w15, w7 - bcc .L1553 - b .L1552 -.L1551: - bhi .L1552 -.L1553: + bcc .L1559 + b .L1558 +.L1557: + bhi .L1558 +.L1559: ldrh w7, [x1] cmp w7, w18 - bne .L1554 + bne .L1560 strh w2, [x5,2] add x2, x4, :lo12:.LANCHOR2 strh w0, [x1] - str x5, [x2,3520] - b .L1546 -.L1554: + str x5, [x2,3576] + b .L1552 +.L1560: umull x1, w7, w8 mov w2, w7 add x1, x12, x1 - b .L1555 -.L1552: + b .L1561 +.L1558: strh w2, [x11,x10] ldrh w2, [x1,2] strh w2, [x5,2] add x2, x4, :lo12:.LANCHOR2 - ldr x3, [x2,3512] + ldr x3, [x2,3568] cmp x1, x3 - bne .L1556 + bne .L1562 strh w0, [x1,2] - str x5, [x2,3512] - b .L1546 -.L1556: + str x5, [x2,3568] + b .L1552 +.L1562: ldrh w3, [x1,2] mov w4, 6 - ldr x2, [x2,1272] + ldr x2, [x2,1280] umull x3, w3, w4 strh w0, [x2,x3] strh w0, [x1,2] -.L1546: +.L1552: mov w0, 0 ret .size insert_data_list, .-insert_data_list @@ -9581,9 +9597,9 @@ INSERT_DATA_LIST: bl insert_data_list adrp x0, .LANCHOR2 add x0, x0, :lo12:.LANCHOR2 - ldrh w1, [x0,3528] + ldrh w1, [x0,3584] add w1, w1, 1 - strh w1, [x0,3528] + strh w1, [x0,3584] ldp x29, x30, [sp], 16 ret .size INSERT_DATA_LIST, .-INSERT_DATA_LIST @@ -9594,66 +9610,66 @@ insert_free_list: uxth w0, w0 mov w7, 65535 cmp w0, w7 - beq .L1561 + beq .L1567 adrp x2, .LANCHOR2 mov w6, 6 add x5, x2, :lo12:.LANCHOR2 mov w1, -1 umull x8, w0, w6 mov x3, x2 - ldr x9, [x5,1272] + ldr x9, [x5,1280] add x4, x9, x8 strh w1, [x4,2] strh w1, [x9,x8] - ldr x1, [x5,3536] - cbnz x1, .L1562 - str x4, [x5,3536] - b .L1561 -.L1562: - ldr x11, [x5,1160] + ldr x1, [x5,3592] + cbnz x1, .L1568 + str x4, [x5,3592] + b .L1567 +.L1568: + ldr x11, [x5,1168] ubfiz x2, x0, 1, 16 - ldr x10, [x5,1272] + ldr x10, [x5,1280] mov x5, -6148914691236517206 ldrh w12, [x11,x2] sub x2, x1, x10 asr x2, x2, 1 madd x2, x5, x2, x2 uxth w2, w2 -.L1565: +.L1571: ubfiz x5, x2, 1, 16 ldrh w5, [x11,x5] cmp w5, w12 - bcs .L1563 + bcs .L1569 ldrh w5, [x1] cmp w5, w7 - bne .L1564 + bne .L1570 strh w2, [x4,2] strh w0, [x1] - b .L1561 -.L1564: + b .L1567 +.L1570: umull x1, w5, w6 mov w2, w5 add x1, x10, x1 - b .L1565 -.L1563: + b .L1571 +.L1569: ldrh w5, [x1,2] strh w5, [x4,2] strh w2, [x9,x8] add x2, x3, :lo12:.LANCHOR2 - ldr x3, [x2,3536] + ldr x3, [x2,3592] cmp x1, x3 - bne .L1566 + bne .L1572 strh w0, [x1,2] - str x4, [x2,3536] - b .L1561 -.L1566: + str x4, [x2,3592] + b .L1567 +.L1572: ldrh w3, [x1,2] mov w4, 6 - ldr x2, [x2,1272] + ldr x2, [x2,1280] umull x3, w3, w4 strh w0, [x2,x3] strh w0, [x1,2] -.L1561: +.L1567: mov w0, 0 ret .size insert_free_list, .-insert_free_list @@ -9666,9 +9682,9 @@ INSERT_FREE_LIST: bl insert_free_list adrp x0, .LANCHOR2 add x0, x0, :lo12:.LANCHOR2 - ldrh w1, [x0,3544] + ldrh w1, [x0,3600] add w1, w1, 1 - strh w1, [x0,3544] + strh w1, [x0,3600] ldp x29, x30, [sp], 16 ret .size INSERT_FREE_LIST, .-INSERT_FREE_LIST @@ -9683,43 +9699,43 @@ List_remove_node: ldr x3, [x0] mov w7, 65535 umull x1, w1, w5 - ldr x2, [x6,1272] + ldr x2, [x6,1280] add x4, x2, x1 cmp x4, x3 - bne .L1569 + bne .L1575 ldrh w3, [x2,x1] cmp w3, w7 - bne .L1570 + bne .L1576 str xzr, [x0] - b .L1571 -.L1570: + b .L1577 +.L1576: umull x3, w3, w5 add x3, x2, x3 str x3, [x0] mov w0, -1 strh w0, [x3,2] - b .L1571 -.L1569: + b .L1577 +.L1575: ldrh w0, [x2,x1] ldrh w3, [x4,2] cmp w0, w7 - bne .L1572 + bne .L1578 cmp w3, w0 - beq .L1571 + beq .L1577 umull x3, w3, w5 mov w0, -1 strh w0, [x2,x3] - b .L1571 -.L1572: + b .L1577 +.L1578: umull x0, w0, w5 add x0, x2, x0 strh w3, [x0,2] ldrh w3, [x4,2] - ldr x0, [x6,1272] + ldr x0, [x6,1280] ldrh w7, [x2,x1] umull x3, w3, w5 strh w7, [x0,x3] -.L1571: +.L1577: mov w0, -1 strh w0, [x2,x1] strh w0, [x4,2] @@ -9736,14 +9752,14 @@ List_pop_index_node: str x19, [sp,16] mov w19, 65535 ldr x2, [x0] - cbz x2, .L1574 - adrp x3, .LANCHOR2+1272 + cbz x2, .L1580 + adrp x3, .LANCHOR2+1280 mov w5, w19 mov w6, 6 - ldr x4, [x3,#:lo12:.LANCHOR2+1272] -.L1575: - cbnz w1, .L1576 -.L1578: + ldr x4, [x3,#:lo12:.LANCHOR2+1280] +.L1581: + cbnz w1, .L1582 +.L1584: sub x2, x2, x4 mov x1, -6148914691236517206 asr x2, x2, 1 @@ -9751,17 +9767,17 @@ List_pop_index_node: uxth w19, w2 mov w1, w19 bl List_remove_node - b .L1574 -.L1576: + b .L1580 +.L1582: ldrh w3, [x2] cmp w3, w5 - beq .L1578 + beq .L1584 umull x3, w3, w6 sub w1, w1, #1 add x2, x4, x3 uxth w1, w1 - b .L1575 -.L1574: + b .L1581 +.L1580: mov w0, w19 ldr x19, [sp,16] ldp x29, x30, [sp], 32 @@ -9775,27 +9791,27 @@ List_get_gc_head_node: uxth w3, w0 add x2, x2, :lo12:.LANCHOR2 mov w0, 65535 - ldr x1, [x2,3512] - cbz x1, .L1586 - ldr x4, [x2,1272] + ldr x1, [x2,3568] + cbz x1, .L1592 + ldr x4, [x2,1280] mov w5, 6 -.L1582: - cbz w3, .L1583 +.L1588: + cbz w3, .L1589 ldrh w2, [x1] cmp w2, w0 - beq .L1586 + beq .L1592 umull x2, w2, w5 sub w3, w3, #1 add x1, x4, x2 uxth w3, w3 - b .L1582 -.L1583: + b .L1588 +.L1589: sub x1, x1, x4 mov x0, -6148914691236517206 asr x1, x1, 1 madd x1, x0, x1, x1 uxth w0, w1 -.L1586: +.L1592: ret .size List_get_gc_head_node, .-List_get_gc_head_node .align 2 @@ -9808,23 +9824,23 @@ List_update_data_list: adrp x19, .LANCHOR2 uxth w20, w0 add x0, x19, :lo12:.LANCHOR2 - ldrh w1, [x0,3552] + ldrh w1, [x0,3608] cmp w1, w20 - beq .L1588 - ldrh w1, [x0,3600] + beq .L1594 + ldrh w1, [x0,3656] cmp w1, w20 - beq .L1588 - ldrh w1, [x0,3648] + beq .L1594 + ldrh w1, [x0,3704] cmp w1, w20 - beq .L1588 + beq .L1594 mov w3, 6 - ldr x4, [x0,1272] - ldr x2, [x0,3512] + ldr x4, [x0,1280] + ldr x2, [x0,3568] umull x3, w20, w3 add x1, x4, x3 cmp x1, x2 - beq .L1588 - ldr x5, [x0,1176] + beq .L1594 + ldr x5, [x0,1184] ubfiz x0, x20, 1, 16 ldrh w2, [x5,x0] ldrh w0, [x1,4] @@ -9834,11 +9850,11 @@ List_update_data_list: mov w0, 65535 csinv w2, w2, wzr, ne cmp w1, w0 - bne .L1590 + bne .L1596 ldrh w0, [x4,x3] cmp w0, w1 - beq .L1588 -.L1590: + beq .L1594 +.L1596: mov w0, 6 mov x3, -6148914691236517206 umull x1, w1, w0 @@ -9851,17 +9867,17 @@ List_update_data_list: mul w0, w0, w1 csinv w0, w0, wzr, ne cmp w2, w0 - bcs .L1588 + bcs .L1594 add x19, x19, :lo12:.LANCHOR2 mov w1, w20 - add x0, x19, 3512 + add x0, x19, 3568 bl List_remove_node - ldrh w0, [x19,3528] + ldrh w0, [x19,3584] sub w0, w0, #1 - strh w0, [x19,3528] + strh w0, [x19,3584] mov w0, w20 bl INSERT_DATA_LIST -.L1588: +.L1594: mov w0, 0 ldp x19, x20, [sp,16] ldp x29, x30, [sp], 32 @@ -9888,74 +9904,74 @@ ftl_free_no_use_map_blk: mov x0, x21 bl ftl_memset mov w0, 0 -.L1595: +.L1601: ldrh w1, [x19,6] cmp w1, w0 - bls .L1608 + bls .L1614 ubfiz x1, x0, 2, 16 ldr w2, [x20,x1] mov w1, 0 ubfx x2, x2, 10, 16 -.L1596: +.L1602: ldrh w3, [x19,10] cmp w3, w1 - bls .L1609 + bls .L1615 ubfiz x3, x1, 1, 16 ldrh w4, [x25,x3] cmp w4, w2 - bne .L1597 + bne .L1603 ldrh w4, [x21,x3] add w4, w4, 1 strh w4, [x21,x3] -.L1597: +.L1603: add w1, w1, 1 uxth w1, w1 - b .L1596 -.L1609: + b .L1602 +.L1615: add w0, w0, 1 uxth w0, w0 - b .L1595 -.L1608: + b .L1601 +.L1614: mov w24, 0 ldrh w26, [x21] mov w20, w24 adrp x27, .LANCHOR2 -.L1600: +.L1606: ldrh w0, [x19,10] cmp w0, w20 - bls .L1610 + bls .L1616 ldrh w0, [x19] uxtw x22, w20 cmp w0, w20 - bne .L1601 + bne .L1607 add x0, x27, :lo12:.LANCHOR2 ldrh w1, [x19,2] - ldrh w0, [x0,812] + ldrh w0, [x0,820] cmp w1, w0 - bcs .L1601 + bcs .L1607 strh w0, [x21,x22,lsl 1] -.L1601: +.L1607: lsl x22, x22, 1 ldrh w23, [x21,x22] cmp w26, w23 - bls .L1602 + bls .L1608 mov w24, w20 mov w26, w23 -.L1602: - cbnz w23, .L1603 +.L1608: + cbnz w23, .L1609 ldrh w0, [x25,x22] - cbz w0, .L1603 + cbz w0, .L1609 mov w1, 1 bl FtlFreeSysBlkQueueIn strh w23, [x25,x22] ldrh w0, [x19,8] sub w0, w0, #1 strh w0, [x19,8] -.L1603: +.L1609: add w20, w20, 1 uxth w20, w20 - b .L1600 -.L1610: + b .L1606 +.L1616: mov w0, w24 ldr x27, [sp,80] ldp x19, x20, [sp,16] @@ -9976,17 +9992,28 @@ ftl_map_blk_alloc_new_blk: mov w20, 0 ldrh w2, [x0,10] ldr x1, [x0,16] -.L1612: +.L1618: cmp w20, w2 - beq .L1615 + beq .L1622 mov x22, x1 ldrh w21, [x1],2 - cbnz w21, .L1613 + cbnz w21, .L1619 mov x19, x0 bl FtlFreeSysBlkQueueOut - uxth w1, w0 strh w0, [x22] - cbz w1, .L1615 + uxth w1, w0 + sub w2, w1, #1 + mov w0, 65533 + cmp w0, w2, uxth + bcs .L1620 + adrp x2, .LANCHOR2+1470 + adrp x0, .LC37 + add x0, x0, :lo12:.LC37 + ldrh w2, [x2,#:lo12:.LANCHOR2+1470] + bl printk +.L1621: + b .L1621 +.L1620: ldr w0, [x19,48] strh w21, [x19,2] add w0, w0, 1 @@ -9995,12 +10022,12 @@ ftl_map_blk_alloc_new_blk: strh w20, [x19] add w0, w0, 1 strh w0, [x19,8] - b .L1615 -.L1613: + b .L1622 +.L1619: add w20, w20, 1 uxth w20, w20 - b .L1612 -.L1615: + b .L1618 +.L1622: mov w0, 0 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -10020,37 +10047,37 @@ FtlMapWritePage: add x22, x20, :lo12:.LANCHOR2 stp x23, x24, [sp,48] stp x25, x26, [sp,64] - ldr w21, [x22,1392] + ldr w21, [x22,1400] mov w24, w1 stp x27, x28, [sp,80] mov x25, x2 - cbnz w21, .L1619 - adrp x23, .LC35 + cbnz w21, .L1625 + adrp x23, .LC38 mov w26, 65535 - add x28, x22, 1400 - add x23, x23, :lo12:.LC35 -.L1620: - ldr w1, [x22,888] + add x28, x22, 1408 + add x23, x23, :lo12:.LC38 +.L1626: + ldr w1, [x22,896] add w1, w1, 1 - str w1, [x22,888] - ldrh w1, [x22,812] + str w1, [x22,896] + ldrh w1, [x22,820] ldrh w0, [x19,2] sub w1, w1, #1 cmp w0, w1 - bge .L1621 + bge .L1627 ldrh w0, [x19] cmp w0, w26 - bne .L1622 -.L1621: + bne .L1628 +.L1627: mov x0, x19 bl Ftl_write_map_blk_to_last_page -.L1622: +.L1628: ldrh w1, [x19] mov w2, 16 ldr x0, [x19,16] ldrh w27, [x0,x1,lsl 1] ldrh w1, [x19,2] - ldr x0, [x22,1104] + ldr x0, [x22,1112] orr w1, w1, w27, lsl 10 str w1, [x28,4] mov w1, 0 @@ -10075,7 +10102,7 @@ FtlMapWritePage: strh w3, [x19,2] ldr w1, [x28] cmn w1, #1 - bne .L1623 + bne .L1629 ldr w1, [x28,4] mov x0, x23 add w21, w21, 1 @@ -10083,35 +10110,35 @@ FtlMapWritePage: uxth w21, w21 ldrh w0, [x19,2] cmp w0, 2 - bhi .L1624 - ldrh w1, [x22,812] + bhi .L1630 + ldrh w1, [x22,820] sub w1, w1, #1 strh w1, [x19,2] -.L1624: +.L1630: cmp w21, 3 - bls .L1620 + bls .L1626 add x20, x20, :lo12:.LANCHOR2 - adrp x0, .LC36 - add x0, x0, :lo12:.LC36 + adrp x0, .LC39 + add x0, x0, :lo12:.LC39 mov w2, w21 - ldr w1, [x20,1404] + ldr w1, [x20,1412] bl printk mov w0, 1 - str w0, [x20,1392] - b .L1619 -.L1623: - cbz w1, .L1626 + str w0, [x20,1400] + b .L1625 +.L1629: + cbz w1, .L1632 strh w27, [x19,60] -.L1626: +.L1632: cmp w3, 1 - beq .L1620 + beq .L1626 cmp w1, 256 - beq .L1620 + beq .L1626 add x20, x20, :lo12:.LANCHOR2 ldr x0, [x19,40] - ldr w1, [x20,1404] + ldr w1, [x20,1412] str w1, [x0,w24,uxtw 2] -.L1619: +.L1625: mov w0, 0 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -10141,52 +10168,52 @@ ftl_map_blk_gc: ldrh w2, [x19,8] sub w1, w4, #4 cmp w2, w1 - bge .L1631 + bge .L1637 ldrh w2, [x19,60] mov w1, 65535 cmp w2, w1 - beq .L1633 + beq .L1639 add x1, x20, :lo12:.LANCHOR2 ldrh w2, [x19,2] - ldrh w1, [x1,812] + ldrh w1, [x1,820] cmp w2, w1 - bcc .L1633 -.L1631: + bcc .L1639 +.L1637: ldrh w1, [x19,60] uxth w21, w0 mov w0, 65535 cmp w1, w0 - beq .L1635 + beq .L1641 add x0, x20, :lo12:.LANCHOR2 ldrh w3, [x19,2] - ldrh w0, [x0,812] + ldrh w0, [x0,820] cmp w0, w3 - bhi .L1635 + bhi .L1641 mov x2, 0 -.L1636: +.L1642: uxth w0, w2 cmp w0, w4 - bcs .L1637 + bcs .L1643 add x2, x2, 1 add x5, x22, x2, lsl 1 ldrh w5, [x5,-2] cmp w5, w1 - bne .L1636 + bne .L1642 mov w21, w0 -.L1637: +.L1643: ubfiz x2, x0, 1, 16 - adrp x0, .LC37 - add x0, x0, :lo12:.LC37 + adrp x0, .LC40 + add x0, x0, :lo12:.LC40 ldrh w2, [x22,x2] bl printk mov w0, -1 strh w0, [x19,60] -.L1635: +.L1641: ubfiz x21, x21, 1, 16 ldrh w25, [x22,x21] - cbz w25, .L1633 + cbz w25, .L1639 ldr w0, [x19,52] - cbnz w0, .L1633 + cbnz w0, .L1639 mov w1, 1 str w1, [x19,52] strh w0, [x22,x21] @@ -10195,29 +10222,29 @@ ftl_map_blk_gc: sub w0, w0, #1 strh w0, [x19,8] add x0, x20, :lo12:.LANCHOR2 - ldrh w0, [x0,812] + ldrh w0, [x0,820] cmp w1, w0 - bcc .L1639 + bcc .L1645 mov x0, x19 bl ftl_map_blk_alloc_new_blk -.L1639: +.L1645: add x24, x20, :lo12:.LANCHOR2 - adrp x26, .LC38 + adrp x26, .LC41 mov w21, 0 - add x22, x24, 1400 + add x22, x24, 1408 mov w27, 1 - add x26, x26, :lo12:.LC38 -.L1640: + add x26, x26, :lo12:.LC41 +.L1646: ldrh w0, [x19,6] cmp w0, w21 - bls .L1650 + bls .L1656 ubfiz x28, x21, 2, 16 ldr w0, [x23,x28] cmp w25, w0, lsr 10 - bne .L1641 - ldr x3, [x24,1104] + bne .L1647 + ldr x3, [x24,1112] mov w1, 1 - ldr x0, [x24,1048] + ldr x0, [x24,1056] mov w2, w1 str x3, [x22,16] str x0, [x22,8] @@ -10229,37 +10256,37 @@ ftl_map_blk_gc: ldr w0, [x22] ldr x3, [x29,104] cmn w0, #1 - bne .L1642 + bne .L1648 str wzr, [x23,x28] mov x0, x26 ldr w1, [x22,4] ldrh w2, [x3,8] bl printk - str w27, [x24,1392] - b .L1641 -.L1642: + str w27, [x24,1400] + b .L1647 +.L1648: ldr x2, [x22,8] mov x0, x19 mov w1, w21 bl FtlMapWritePage -.L1641: +.L1647: add w21, w21, 1 uxth w21, w21 - b .L1640 -.L1650: + b .L1646 +.L1656: mov w0, w25 mov w1, 1 bl FtlFreeSysBlkQueueIn str wzr, [x19,52] -.L1633: +.L1639: add x20, x20, :lo12:.LANCHOR2 ldrh w1, [x19,2] - ldrh w0, [x20,812] + ldrh w0, [x20,820] cmp w1, w0 - bcc .L1644 + bcc .L1650 mov x0, x19 bl ftl_map_blk_alloc_new_blk -.L1644: +.L1650: mov w0, 0 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -10280,15 +10307,15 @@ Ftl_write_map_blk_to_last_page: str x23, [sp,48] add x1, x21, :lo12:.LANCHOR2 stp x19, x20, [sp,16] - ldr w20, [x1,1392] + ldr w20, [x1,1400] ldr x22, [x0,16] ldr x23, [x0,40] - cbnz w20, .L1652 + cbnz w20, .L1658 mov x19, x0 ldrh w0, [x0] mov w2, 65535 cmp w0, w2 - bne .L1653 + bne .L1659 ldrh w0, [x19,8] add w0, w0, 1 strh w0, [x19,8] @@ -10299,56 +10326,56 @@ Ftl_write_map_blk_to_last_page: strh w20, [x19] add w0, w0, 1 str w0, [x19,48] - b .L1652 -.L1653: + b .L1658 +.L1659: ubfiz x0, x0, 1, 16 ldr w2, [x19,48] ldrh w22, [x22,x0] ldrh w0, [x19,2] orr w0, w0, w22, lsl 10 - str w0, [x1,1404] - ldr x0, [x1,1040] - str x0, [x1,1408] - ldr x0, [x1,1104] + str w0, [x1,1412] + ldr x0, [x1,1048] str x0, [x1,1416] + ldr x0, [x1,1112] + str x0, [x1,1424] str w2, [x0,4] mov w2, -1291 strh w2, [x0,8] ldrh w2, [x19,4] strh w2, [x0] strh w22, [x0,2] - ldrh w2, [x1,812] - ldr x0, [x1,1040] + ldrh w2, [x1,820] + ldr x0, [x1,1048] mov w1, 255 lsl w2, w2, 3 bl ftl_memset mov w0, w20 -.L1654: +.L1660: ldrh w1, [x19,6] cmp w1, w0 - bls .L1657 + bls .L1663 ubfiz x3, x0, 2, 32 ldr w1, [x23,x3] cmp w22, w1, lsr 10 - bne .L1655 + bne .L1661 add x2, x21, :lo12:.LANCHOR2 add w20, w20, 1 uxth w20, w20 - ldr x4, [x2,1040] + ldr x4, [x2,1048] ubfiz x1, x20, 3, 16 str w0, [x4,x1] - ldr x2, [x2,1040] + ldr x2, [x2,1048] ldr w3, [x23,x3] add x1, x2, x1 str w3, [x1,4] -.L1655: +.L1661: add w0, w0, 1 uxth w0, w0 - b .L1654 -.L1657: + b .L1660 +.L1663: mov w1, 1 add x0, x21, :lo12:.LANCHOR2 - add x0, x0, 1400 + add x0, x0, 1408 mov w2, w1 mov w3, 0 bl FlashProgPages @@ -10357,7 +10384,7 @@ Ftl_write_map_blk_to_last_page: strh w0, [x19,2] mov x0, x19 bl ftl_map_blk_gc -.L1652: +.L1658: mov w0, 0 ldr x23, [sp,48] ldp x19, x20, [sp,16] @@ -10375,13 +10402,13 @@ flush_l2p_region: adrp x20, .LANCHOR2 ubfiz x19, x0, 4, 16 add x20, x20, :lo12:.LANCHOR2 - add x0, x20, 3696 - ldr x1, [x20,1256] + add x0, x20, 3752 + ldr x1, [x20,1264] add x2, x1, x19 ldrh w1, [x1,x19] ldr x2, [x2,8] bl FtlMapWritePage - ldr x0, [x20,1256] + ldr x0, [x20,1264] add x19, x0, x19 ldr w0, [x19,4] and w0, w0, 2147483647 @@ -10400,65 +10427,65 @@ select_l2p_ram_region: add x1, x0, :lo12:.LANCHOR2 mov x3, x0 mov w5, 65535 - ldrh w2, [x1,850] - ldr x1, [x1,1256] -.L1660: + ldrh w2, [x1,858] + ldr x1, [x1,1264] +.L1666: uxth w0, w4 cmp w0, w2 - bcs .L1676 + bcs .L1682 add x4, x4, 1 add x6, x1, x4, lsl 4 ldrh w6, [x6,-16] cmp w6, w5 - bne .L1660 - b .L1661 -.L1676: + bne .L1666 + b .L1667 +.L1682: mov w0, w2 mov x4, 0 mov w7, -2147483648 -.L1663: +.L1669: uxth w6, w4 cmp w6, w2 - bcs .L1677 + bcs .L1683 add x5, x1, x4, lsl 4 ldr w5, [x5,4] - tbnz w5, #31, .L1672 + tbnz w5, #31, .L1678 cmp w5, w7 - bcc .L1664 -.L1672: + bcc .L1670 +.L1678: mov w5, w7 mov w6, w0 -.L1664: +.L1670: add x4, x4, 1 mov w7, w5 mov w0, w6 - b .L1663 -.L1677: + b .L1669 +.L1683: cmp w0, w2 - bcc .L1661 + bcc .L1667 add x0, x3, :lo12:.LANCHOR2 add x1, x1, 4 mov w4, -1 mov w3, 0 - ldrh w5, [x0,3760] + ldrh w5, [x0,3816] mov w0, w2 -.L1667: +.L1673: cmp w3, w2 - beq .L1661 + beq .L1667 ldr w7, [x1] cmp w7, w4 - bcs .L1668 + bcs .L1674 ldrh w6, [x1,-4] cmp w6, w5 csel w4, w4, w7, eq cmp w6, w5 csel w0, w0, w3, eq -.L1668: +.L1674: add w3, w3, 1 add x1, x1, 16 uxth w3, w3 - b .L1667 -.L1661: + b .L1673 +.L1667: ret .size select_l2p_ram_region, .-select_l2p_ram_region .align 2 @@ -10476,61 +10503,61 @@ log2phys: stp x19, x20, [sp,16] mov x26, x1 mov w27, w2 - ldrh w1, [x3,818] + ldrh w1, [x3,826] mov x2, 1 - ldr x20, [x3,1256] + ldr x20, [x3,1264] add w1, w1, 7 lsr w28, w0, w1 lsl x1, x2, x1 sub w1, w1, #1 and w23, w1, w0 - ldrh w1, [x3,850] + ldrh w1, [x3,858] uxth w25, w28 mov x0, 0 uxth x23, w23 -.L1679: +.L1685: uxth x19, w0 cmp w19, w1 - bcs .L1693 + bcs .L1699 add x0, x0, 1 add x2, x20, x0, lsl 4 ldrh w2, [x2,-16] cmp w2, w25 - bne .L1679 -.L1680: - cbnz w27, .L1681 + bne .L1685 +.L1686: + cbnz w27, .L1687 add x0, x21, :lo12:.LANCHOR2 - ldr x1, [x0,1256] + ldr x1, [x0,1264] add x1, x1, x19, lsl 4 ldr x0, [x1,8] ldr w0, [x0,x23,lsl 2] str w0, [x26] - b .L1682 -.L1681: + b .L1688 +.L1687: add x1, x21, :lo12:.LANCHOR2 lsl x0, x19, 4 ldr w3, [x26] - ldr x2, [x1,1256] + ldr x2, [x1,1264] add x2, x2, x0 ldr x2, [x2,8] str w3, [x2,x23,lsl 2] - strh w25, [x1,3760] - ldr x2, [x1,1256] + strh w25, [x1,3816] + ldr x2, [x1,1264] add x0, x2, x0 ldr w2, [x0,4] orr w2, w2, -2147483648 str w2, [x0,4] -.L1682: +.L1688: add x21, x21, :lo12:.LANCHOR2 - ldr x0, [x21,1256] + ldr x0, [x21,1264] add x19, x0, x19, lsl 4 ldr w0, [x19,4] cmn w0, #1 - beq .L1690 + beq .L1696 add w0, w0, 1 str w0, [x19,4] - b .L1690 -.L1693: + b .L1696 +.L1699: bl select_l2p_ram_region uxth x19, w0 ubfiz x22, x19, 4, 16 @@ -10538,66 +10565,66 @@ log2phys: add x1, x20, x22 ldrh w3, [x20,x22] cmp w3, w2 - beq .L1685 + beq .L1691 ldr w1, [x1,4] - tbz w1, #31, .L1685 + tbz w1, #31, .L1691 bl flush_l2p_region -.L1685: +.L1691: add x20, x21, :lo12:.LANCHOR2 ubfiz x0, x25, 2, 16 - ldr x1, [x20,1232] + ldr x1, [x20,1240] ldr w24, [x1,x0] - cbnz w24, .L1686 - ldr x0, [x20,1256] + cbnz w24, .L1692 + ldr x0, [x20,1264] mov w1, 255 - ldrh w2, [x20,820] + ldrh w2, [x20,828] add x0, x0, x22 ldr x0, [x0,8] bl ftl_memset - ldr x0, [x20,1256] + ldr x0, [x20,1264] strh w25, [x0,x22] - ldr x0, [x20,1256] + ldr x0, [x20,1264] add x22, x0, x22 str w24, [x22,4] - b .L1680 -.L1686: - ldr x1, [x20,1256] - add x0, x20, 1400 + b .L1686 +.L1692: + ldr x1, [x20,1264] + add x0, x20, 1408 str w24, [x0,4] add x1, x1, x22 ldr x1, [x1,8] str x1, [x0,8] - ldr x1, [x20,1104] + ldr x1, [x20,1112] str x1, [x0,16] mov w1, 1 mov w2, w1 bl FlashReadPages - ldr w0, [x20,1400] + ldr w0, [x20,1408] cmp w0, 256 - bne .L1687 + bne .L1693 and w28, w28, 65535 - adrp x0, .LC39 + adrp x0, .LC42 mov w2, w24 mov w1, w28 - add x0, x0, :lo12:.LC39 + add x0, x0, :lo12:.LC42 lsr w24, w24, 10 bl printk - strh w24, [x20,3756] - add x0, x20, 3696 - ldr x2, [x20,1256] + strh w24, [x20,3812] + add x0, x20, 3752 + ldr x2, [x20,1264] mov w1, w28 add x2, x2, x22 ldr x2, [x2,8] bl FtlMapWritePage -.L1687: +.L1693: add x1, x21, :lo12:.LANCHOR2 - ldr x0, [x1,1256] + ldr x0, [x1,1264] add x0, x0, x22 str wzr, [x0,4] - ldr x0, [x1,1256] + ldr x0, [x1,1264] strh w25, [x0,x22] - b .L1680 -.L1690: + b .L1686 +.L1696: mov w0, 0 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -10621,21 +10648,21 @@ FtlVendorPartWrite: mov w22, w1 mov w25, w0 add w1, w0, w1 - ldrh w0, [x19,804] + ldrh w0, [x19,812] stp x23, x24, [sp,48] stp x27, x28, [sp,80] cmp w1, w0 mov x24, x2 - ldrh w23, [x19,818] + ldrh w23, [x19,826] mov w21, -1 - bhi .L1695 + bhi .L1701 lsr w23, w25, w23 mov w21, 0 - add x27, x19, 3768 -.L1696: - cbz w22, .L1695 - ldrh w1, [x19,816] - ldr x0, [x19,1224] + add x27, x19, 3824 +.L1702: + cbz w22, .L1701 + ldrh w1, [x19,824] + ldr x0, [x19,1232] udiv w26, w25, w1 ldr w2, [x0,w23,uxtw 2] uxth w0, w22 @@ -10645,9 +10672,9 @@ FtlVendorPartWrite: cmp w20, w22 csel w20, w0, w20, hi cmp w20, w1 - beq .L1698 - cbz w2, .L1698 - ldr x0, [x19,1056] + beq .L1704 + cbz w2, .L1704 + ldr x0, [x19,1064] mov w1, 1 str w2, [x29,108] mov w2, w1 @@ -10655,14 +10682,14 @@ FtlVendorPartWrite: add x0, x29, 104 str xzr, [x29,120] bl FlashReadPages - b .L1699 -.L1698: - ldr x0, [x19,1056] + b .L1705 +.L1704: + ldr x0, [x19,1064] mov w1, 0 - ldrh w2, [x19,820] + ldrh w2, [x19,828] bl ftl_memset -.L1699: - ldr x0, [x19,1056] +.L1705: + ldr x0, [x19,1064] lsl w28, w20, 9 ubfiz x26, x26, 9, 16 mov x1, x24 @@ -10672,15 +10699,15 @@ FtlVendorPartWrite: add w25, w25, w20 bl ftl_memcpy add x24, x24, x28, sxtw - ldr x2, [x19,1056] + ldr x2, [x19,1064] mov w1, w23 mov x0, x27 add w23, w23, 1 bl FtlMapWritePage cmn w0, #1 csinv w21, w21, wzr, ne - b .L1696 -.L1695: + b .L1702 +.L1701: mov w0, w21 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -10706,23 +10733,23 @@ FtlVendorPartRead: mov w22, w1 mov x25, x2 add w2, w0, w1 - ldrh w1, [x3,804] + ldrh w1, [x3,812] mov w23, w0 - ldrh w20, [x3,818] + ldrh w20, [x3,826] cmp w2, w1 mov w0, -1 - bhi .L1710 - adrp x26, .LC40 - add x0, x3, 3768 + bhi .L1716 + adrp x26, .LC43 + add x0, x3, 3824 lsr w20, w23, w20 mov w21, 0 mov x28, x3 - add x26, x26, :lo12:.LC40 + add x26, x26, :lo12:.LC43 str x0, [x29,104] -.L1711: - cbz w22, .L1719 - ldrh w19, [x28,816] - ldr x0, [x28,1224] +.L1717: + cbz w22, .L1725 + ldrh w19, [x28,824] + ldr x0, [x28,1232] udiv w24, w23, w19 ldr w4, [x0,w20,uxtw 2] uxth w0, w22 @@ -10732,8 +10759,8 @@ FtlVendorPartRead: cmp w19, w22 csel w19, w0, w19, hi lsl w27, w19, 9 - cbz w4, .L1713 - ldr x0, [x28,1056] + cbz w4, .L1719 + ldr x0, [x28,1064] mov w1, 1 str x0, [x29,128] mov w2, w1 @@ -10745,40 +10772,40 @@ FtlVendorPartRead: ldr w0, [x29,120] ldr x4, [x29,96] cmn w0, #1 - ldr w0, [x28,1400] + ldr w0, [x28,1408] csinv w21, w21, wzr, ne cmp w0, 256 - bne .L1715 + bne .L1721 mov w1, w20 mov w2, w4 mov x0, x26 bl printk ldr x0, [x29,104] mov w1, w20 - ldr x2, [x28,1056] + ldr x2, [x28,1064] bl FtlMapWritePage -.L1715: - ldr x1, [x28,1056] +.L1721: + ldr x1, [x28,1064] ubfiz x24, x24, 9, 16 mov x0, x25 mov w2, w27 add x1, x1, x24 bl ftl_memcpy - b .L1716 -.L1713: + b .L1722 +.L1719: mov x0, x25 mov w1, w4 mov w2, w27 bl ftl_memset -.L1716: +.L1722: add w20, w20, 1 sub w22, w22, w19 add w23, w23, w19 add x25, x25, x27, sxtw - b .L1711 -.L1719: + b .L1717 +.L1725: mov w0, w21 -.L1710: +.L1716: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -10815,35 +10842,35 @@ ftl_sys_read: FtlUpdateVaildLpn: adrp x1, .LANCHOR2 add x3, x1, :lo12:.LANCHOR2 - ldrh w2, [x3,3832] - cbnz w0, .L1723 + ldrh w2, [x3,3888] + cbnz w0, .L1729 cmp w2, 4 - bhi .L1723 + bhi .L1729 add w2, w2, 1 - strh w2, [x3,3832] - b .L1722 -.L1723: + strh w2, [x3,3888] + b .L1728 +.L1729: add x0, x1, :lo12:.LANCHOR2 mov w7, 65535 - strh wzr, [x0,3832] - str wzr, [x0,3836] - ldrh w5, [x0,748] - ldr x6, [x0,1176] + strh wzr, [x0,3888] + str wzr, [x0,3892] + ldrh w5, [x0,756] + ldr x6, [x0,1184] mov x0, 0 -.L1724: +.L1730: cmp w5, w0, uxth - bls .L1722 + bls .L1728 ldrh w4, [x6,x0,lsl 1] cmp w4, w7 - beq .L1725 + beq .L1731 add x3, x1, :lo12:.LANCHOR2 - ldr w2, [x3,3836] + ldr w2, [x3,3892] add w2, w4, w2 - str w2, [x3,3836] -.L1725: + str w2, [x3,3892] +.L1731: add x0, x0, 1 - b .L1724 -.L1722: + b .L1730 +.L1728: ret .size FtlUpdateVaildLpn, .-FtlUpdateVaildLpn .align 2 @@ -10857,41 +10884,41 @@ FtlMapBlkWriteDumpData: ldr w1, [x0,56] ldrh w19, [x0,6] ldr x4, [x0,40] - cbz w1, .L1728 + cbz w1, .L1734 adrp x1, .LANCHOR2 str wzr, [x0,56] add x2, x1, :lo12:.LANCHOR2 mov x21, x1 - ldr w3, [x2,1392] - cbnz w3, .L1728 + ldr w3, [x2,1400] + cbnz w3, .L1734 mov x20, x0 sub w19, w19, #1 - add x0, x2, 1400 - ldr x3, [x2,1104] + add x0, x2, 1408 + ldr x3, [x2,1112] uxth w19, w19 - ldr x1, [x2,1048] + ldr x1, [x2,1056] str x3, [x0,16] ubfiz x3, x19, 2, 16 str x1, [x0,8] ldr w3, [x4,x3] str w3, [x0,4] - cbz w3, .L1732 + cbz w3, .L1738 mov w1, 1 mov w2, w1 bl FlashReadPages - b .L1733 -.L1732: - ldrh w2, [x2,820] + b .L1739 +.L1738: + ldrh w2, [x2,828] mov x0, x1 mov w1, 255 bl ftl_memset -.L1733: +.L1739: add x2, x21, :lo12:.LANCHOR2 mov x0, x20 mov w1, w19 - ldr x2, [x2,1408] + ldr x2, [x2,1416] bl FtlMapWritePage -.L1728: +.L1734: ldp x19, x20, [sp,16] ldr x21, [sp,32] ldp x29, x30, [sp], 48 @@ -10909,77 +10936,77 @@ FtlVpcTblFlush: stp x19, x20, [sp,16] add x19, x22, :lo12:.LANCHOR2 stp x23, x24, [sp,48] - ldr w0, [x19,1392] - cbnz w0, .L1736 - ldr x21, [x19,1104] - add x20, x19, 3856 - ldr x1, [x19,1040] - str x1, [x19,1408] - str x21, [x19,1416] - ldrh w2, [x19,3840] + ldr w0, [x19,1400] + cbnz w0, .L1742 + ldr x21, [x19,1112] + add x20, x19, 3520 + ldr x1, [x19,1048] + str x1, [x19,1416] + str x21, [x19,1424] + ldrh w2, [x19,3896] strh w2, [x21,2] mov w2, -3932 strh w2, [x21] str w0, [x21,12] - ldr w2, [x19,3848] + ldr w2, [x19,3904] str w2, [x21,4] str w0, [x21,8] mov w0, 19539 - ldrh w1, [x19,3552] + ldrh w1, [x19,3608] movk w0, 0x4654, lsl 16 - strh w1, [x19,3870] - ldrh w1, [x19,3554] - ldrb w2, [x19,3558] - str w0, [x19,3856] - mov w0, 71 + strh w1, [x19,3534] + ldrh w1, [x19,3610] + ldrb w2, [x19,3614] + str w0, [x19,3520] + mov w0, 72 orr w1, w2, w1, lsl 6 - strh w1, [x19,3872] - ldrh w1, [x19,3600] + strh w1, [x19,3536] + ldrh w1, [x19,3656] movk w0, 0x5000, lsl 16 - strh w1, [x19,3874] - ldrh w1, [x19,3602] - ldrb w2, [x19,3606] - str w0, [x19,3860] - ldrh w0, [x19,3846] + strh w1, [x19,3538] + ldrh w1, [x19,3658] + ldrb w2, [x19,3662] + str w0, [x19,3524] + ldrh w0, [x19,3902] orr w1, w2, w1, lsl 6 - strh w0, [x19,3864] - ldrh w0, [x19,762] - strb w0, [x19,3866] - ldrb w0, [x19,3560] - strb w0, [x19,3867] - strh w1, [x19,3876] - ldrb w0, [x19,3608] - ldrh w1, [x19,3648] - strb w0, [x19,3868] - strh w1, [x19,3878] - ldrh w1, [x19,3650] - ldrb w0, [x19,3656] - strb w0, [x19,3869] - ldr w0, [x19,896] - ldrb w2, [x19,3654] - str w0, [x19,3888] - ldr w0, [x19,864] + strh w0, [x19,3528] + ldrh w0, [x19,770] + strb w0, [x19,3530] + ldrb w0, [x19,3616] + strb w0, [x19,3531] + strh w1, [x19,3540] + ldrb w0, [x19,3664] + ldrh w1, [x19,3704] + strb w0, [x19,3532] + strh w1, [x19,3542] + ldrh w1, [x19,3706] + ldrb w0, [x19,3712] + strb w0, [x19,3533] + ldr w0, [x19,904] + ldrb w2, [x19,3710] + str w0, [x19,3552] + ldr w0, [x19,872] orr w1, w2, w1, lsl 6 - str w0, [x19,3896] - ldr w0, [x19,868] - str w0, [x19,3892] - ldrh w2, [x19,820] - ldr x0, [x19,1408] - strh w1, [x19,3880] + str w0, [x19,3560] + ldr w0, [x19,876] + str w0, [x19,3556] + ldrh w2, [x19,828] + ldr x0, [x19,1416] + strh w1, [x19,3544] mov w1, 255 bl ftl_memset - ldr x0, [x19,1408] + ldr x0, [x19,1416] mov x1, x20 mov w2, 48 bl ftl_memcpy - ldr x0, [x19,1408] - ldrh w2, [x19,748] - ldr x1, [x19,1176] + ldr x0, [x19,1416] + ldrh w2, [x19,756] + ldr x1, [x19,1184] add x0, x0, 48 lsl w2, w2, 1 bl ftl_memcpy - ldrh w2, [x19,748] - ldr x1, [x19,1408] + ldrh w2, [x19,756] + ldr x1, [x19,1416] uxth x0, w2 lsr w2, w2, 3 add x0, x0, 24 @@ -10989,33 +11016,33 @@ FtlVpcTblFlush: adrp x1, .LANCHOR0+16 ldr x1, [x1,#:lo12:.LANCHOR0+16] bl ftl_memcpy - ldrh w0, [x19,852] - cbz w0, .L1737 - ldrh w0, [x19,748] - ldrh w2, [x19,848] + ldrh w0, [x19,860] + cbz w0, .L1743 + ldrh w0, [x19,756] + ldrh w2, [x19,856] lsr w1, w0, 3 add w0, w1, w0, lsl 1 - ldr x1, [x19,1408] + ldr x1, [x19,1416] add w0, w0, 52 lsl w2, w2, 2 and x0, x0, 65532 add x0, x1, x0 - ldr x1, [x19,1232] + ldr x1, [x19,1240] bl ftl_memcpy -.L1737: +.L1743: add x19, x22, :lo12:.LANCHOR2 mov w0, 0 mov w23, 0 mov w25, 65535 - add x20, x19, 1400 + add x20, x19, 1408 bl FtlUpdateVaildLpn -.L1738: - ldr x0, [x19,1040] +.L1744: + ldr x0, [x19,1048] str x0, [x20,8] - ldr x0, [x19,1104] + ldr x0, [x19,1112] str x0, [x20,16] - ldrh w0, [x19,3840] - ldrh w1, [x19,3842] + ldrh w0, [x19,3896] + ldrh w1, [x19,3898] orr w0, w1, w0, lsl 10 mov w1, 1 str w0, [x20,4] @@ -11023,69 +11050,69 @@ FtlVpcTblFlush: mov w3, w1 mov x0, x20 bl FlashProgPages - ldrh w0, [x19,812] - ldrh w1, [x19,3842] + ldrh w0, [x19,820] + ldrh w1, [x19,3898] sub w0, w0, #1 cmp w1, w0 - blt .L1739 - ldrh w0, [x19,3840] - ldrh w25, [x19,3844] - strh wzr, [x19,3842] - strh w0, [x19,3844] + blt .L1745 + ldrh w0, [x19,3896] + ldrh w25, [x19,3900] + strh wzr, [x19,3898] + strh w0, [x19,3900] bl FtlFreeSysBlkQueueOut - ldr w1, [x19,864] - str w1, [x19,3848] + ldr w1, [x19,872] + str w1, [x19,3904] add w2, w1, 1 - str w2, [x19,864] + str w2, [x19,872] ubfiz w2, w0, 10, 16 str w2, [x20,4] str w1, [x21,4] mov w1, 1 - strh w0, [x19,3840] + strh w0, [x19,3896] mov w2, w1 strh w0, [x21,2] mov w3, w1 mov x0, x20 bl FlashProgPages -.L1739: - ldrh w1, [x19,3842] +.L1745: + ldrh w1, [x19,3898] ldr w2, [x20] add w1, w1, 1 cmn w2, #1 uxth w1, w1 - strh w1, [x19,3842] - bne .L1740 + strh w1, [x19,3898] + bne .L1746 cmp w1, 1 - bne .L1741 - ldrh w1, [x19,812] + bne .L1747 + ldrh w1, [x19,820] sub w1, w1, #1 - strh w1, [x19,3842] -.L1741: + strh w1, [x19,3898] +.L1747: add w23, w23, 1 uxth w23, w23 cmp w23, 3 - bls .L1738 + bls .L1744 add x22, x22, :lo12:.LANCHOR2 - adrp x0, .LC41 - add x0, x0, :lo12:.LC41 + adrp x0, .LC44 + add x0, x0, :lo12:.LC44 mov w2, w23 - ldr w1, [x22,1404] + ldr w1, [x22,1412] bl printk mov w0, 1 - str w0, [x22,1392] - b .L1736 -.L1740: + str w0, [x22,1400] + b .L1742 +.L1746: cmp w1, 1 - beq .L1738 + beq .L1744 cmp w2, 256 - beq .L1738 + beq .L1744 mov w0, 65535 cmp w25, w0 - beq .L1736 + beq .L1742 mov w0, w25 mov w1, 1 bl FtlFreeSysBlkQueueIn -.L1736: +.L1742: mov w0, 0 ldr x25, [sp,64] ldp x19, x20, [sp,16] @@ -11108,48 +11135,48 @@ FtlScanSysBlk: stp x25, x26, [sp,64] stp x23, x24, [sp,48] stp x27, x28, [sp,80] - strh wzr, [x20,3904] + strh wzr, [x20,3908] mov x26, 56 - ldr w2, [x20,840] + ldr w2, [x20,848] mov w22, 65535 - ldr x0, [x20,1248] + ldr x0, [x20,1256] lsl w2, w2, 2 - strh wzr, [x20,1384] + strh wzr, [x20,1392] bl ftl_memset - ldr w2, [x20,840] + ldr w2, [x20,848] mov w1, 0 - ldr x0, [x20,1184] + ldr x0, [x20,1192] lsl w2, w2, 1 bl ftl_memset - ldrh w2, [x20,832] + ldrh w2, [x20,840] mov w1, 0 - ldr x0, [x20,1216] + ldr x0, [x20,1224] lsl w2, w2, 2 bl ftl_memset - ldrh w2, [x20,832] + ldrh w2, [x20,840] mov w1, 0 - ldr x0, [x20,1200] + ldr x0, [x20,1208] lsl w2, w2, 1 bl ftl_memset - add x0, x20, 3840 + add x0, x20, 3896 mov w1, 255 mov w2, 12 bl ftl_memset - ldrh w21, [x20,748] -.L1748: + ldrh w21, [x20,756] +.L1754: add x1, x19, :lo12:.LANCHOR2 - ldrh w0, [x1,750] + ldrh w0, [x1,758] cmp w0, w21 - bls .L1789 + bls .L1795 mov x27, 0 - ldrh w3, [x1,740] - ldrh w2, [x1,822] + ldrh w3, [x1,748] + ldrh w2, [x1,830] mov w20, w27 mov x23, x1 -.L1790: +.L1796: cmp w3, w27, uxth - bls .L1823 - add x0, x23, 768 + bls .L1829 + add x0, x23, 776 mov w1, w21 str x2, [x29,112] str x3, [x29,120] @@ -11159,64 +11186,64 @@ FtlScanSysBlk: bl FtlBbmIsBadBlock ldr x3, [x29,120] ldr x2, [x29,112] - cbnz w0, .L1749 + cbnz w0, .L1755 mov w0, 56 - ldr x1, [x23,984] + ldr x1, [x23,992] lsl w28, w28, 10 mov w4, 4 umull x0, w20, w0 add x1, x1, x0 str w28, [x1,4] - ldr x1, [x23,984] + ldr x1, [x23,992] add x0, x1, x0 - ldr x1, [x23,1064] + ldr x1, [x23,1072] str x1, [x0,8] mul w1, w20, w2 add w20, w20, 1 sdiv w1, w1, w4 uxth w20, w20 - ldr x4, [x23,1120] + ldr x4, [x23,1128] add x1, x4, x1, sxtw 2 str x1, [x0,16] -.L1749: +.L1755: add x27, x27, 1 - b .L1790 -.L1823: - cbz w20, .L1752 + b .L1796 +.L1829: + cbz w20, .L1758 add x0, x19, :lo12:.LANCHOR2 mov w1, w20 mov w2, 1 mov x23, 0 mov w27, -1 adrp x28, .LANCHOR0 - ldr x0, [x0,984] + ldr x0, [x0,992] bl FlashReadPages -.L1753: +.L1759: cmp w20, w23, uxth - bls .L1752 + bls .L1758 add x0, x19, :lo12:.LANCHOR2 mul x5, x23, x26 - ldr x0, [x0,984] + ldr x0, [x0,992] add x1, x0, x5 ldr w0, [x0,x5] ldr w4, [x1,4] cmn w0, #1 ldr x25, [x1,16] ubfx x24, x4, 10, 16 - bne .L1755 + bne .L1761 mov w6, 16 -.L1754: +.L1760: add x7, x19, :lo12:.LANCHOR2 str x6, [x29,104] str x7, [x29,112] str x5, [x29,120] - ldr x0, [x7,984] + ldr x0, [x7,992] add x0, x0, x5 ldr w1, [x0,4] add w1, w1, 1 str w1, [x0,4] mov w1, 1 - ldr x0, [x7,984] + ldr x0, [x7,992] mov w2, w1 add x0, x0, x5 bl FlashReadPages @@ -11225,333 +11252,333 @@ FtlScanSysBlk: cmp w0, w22 ldr x5, [x29,120] ldr x6, [x29,104] - ldr x0, [x7,984] - bne .L1756 + ldr x0, [x7,992] + bne .L1762 str w27, [x0,x5] - b .L1755 -.L1756: + b .L1761 +.L1762: ldr w0, [x0,x5] cmn w0, #1 - bne .L1755 + bne .L1761 sub w6, w6, #1 uxth w6, w6 - cbnz w6, .L1754 -.L1755: + cbnz w6, .L1760 +.L1761: add x0, x19, :lo12:.LANCHOR2 - ldr x1, [x0,984] + ldr x1, [x0,992] ldr w1, [x1,x5] cmn w1, #1 - beq .L1758 - ldr w0, [x0,864] + beq .L1764 + ldr w0, [x0,872] cmn w0, #1 - beq .L1759 + beq .L1765 ldr w1, [x25,4] cmp w0, w1 - bhi .L1760 -.L1759: + bhi .L1766 +.L1765: ldr w0, [x25,4] cmn w0, #1 - beq .L1760 + beq .L1766 add x1, x19, :lo12:.LANCHOR2 add w0, w0, 1 - str w0, [x1,864] -.L1760: + str w0, [x1,872] +.L1766: ldrh w0, [x25] mov w1, 61604 cmp w0, w1 - beq .L1762 - bhi .L1763 + beq .L1768 + bhi .L1769 mov w1, 61574 cmp w0, w1 - bne .L1761 + bne .L1767 add x5, x19, :lo12:.LANCHOR2 - ldrh w6, [x5,832] - ldrh w0, [x5,1384] + ldrh w6, [x5,840] + ldrh w0, [x5,1392] sub w2, w6, #1 - ldr x5, [x5,1216] + ldr x5, [x5,1224] sxth x1, w2 sub w2, w2, w0 - b .L1776 -.L1763: + b .L1782 +.L1769: mov w1, 61634 cmp w0, w1 - beq .L1765 + beq .L1771 cmp w0, w22 - bne .L1761 + bne .L1767 mov w0, w24 - b .L1822 -.L1765: + b .L1828 +.L1771: add x5, x19, :lo12:.LANCHOR2 - ldr w6, [x5,840] - ldrh w0, [x5,3904] - ldr x5, [x5,1248] + ldr w6, [x5,848] + ldrh w0, [x5,3908] + ldr x5, [x5,1256] uxth w2, w6 sub w1, w2, #1 sub w2, w2, w0 sub w2, w2, #1 sxth x1, w1 sxth w2, w2 -.L1767: +.L1773: cmp w1, w2 - ble .L1824 + ble .L1830 sbfiz x7, x1, 2, 32 ldr w10, [x25,4] sxth x8, w1 ldr w9, [x5,x7] cmp w10, w9 - bls .L1768 + bls .L1774 ldr w2, [x5] - cbnz w2, .L1769 + cbnz w2, .L1775 cmp w0, w6 - beq .L1769 + beq .L1775 add x2, x19, :lo12:.LANCHOR2 add w0, w0, 1 - strh w0, [x2,3904] -.L1769: + strh w0, [x2,3908] +.L1775: mov w0, 0 -.L1770: +.L1776: cmp w0, w1 - beq .L1825 + beq .L1831 add x5, x19, :lo12:.LANCHOR2 sxtw x2, w0 lsl x6, x2, 2 lsl x2, x2, 1 add w0, w0, 1 - ldr x9, [x5,1248] + ldr x9, [x5,1256] sxth w0, w0 add x10, x9, x6 ldr w10, [x10,4] str w10, [x9,x6] - ldr x5, [x5,1184] + ldr x5, [x5,1192] add x6, x5, x2 ldrh w6, [x6,2] strh w6, [x5,x2] - b .L1770 -.L1825: + b .L1776 +.L1831: add x2, x19, :lo12:.LANCHOR2 ldr w5, [x25,4] - ldr x0, [x2,1248] + ldr x0, [x2,1256] str w5, [x0,x7] - ldr x0, [x2,1184] + ldr x0, [x2,1192] strh w24, [x0,x8,lsl 1] - tbz w1, #31, .L1772 - b .L1761 -.L1768: + tbz w1, #31, .L1778 + b .L1767 +.L1774: sub w1, w1, #1 sxth x1, w1 + b .L1773 +.L1830: + tbz w1, #31, .L1811 b .L1767 -.L1824: - tbz w1, #31, .L1805 - b .L1761 -.L1772: - ldrh w0, [x2,3904] - ldr w2, [x2,840] +.L1778: + ldrh w0, [x2,3908] + ldr w2, [x2,848] sub w2, w2, w0 sub w2, w2, #1 cmp w1, w2, sxth - bgt .L1761 -.L1805: + bgt .L1767 +.L1811: add x2, x19, :lo12:.LANCHOR2 add w0, w0, 1 ldr w3, [x25,4] - strh w0, [x2,3904] - ldr x0, [x2,1248] + strh w0, [x2,3908] + ldr x0, [x2,1256] str w3, [x0,x1,lsl 2] - ldr x0, [x2,1184] - b .L1821 -.L1782: + ldr x0, [x2,1192] + b .L1827 +.L1788: sbfiz x7, x1, 2, 32 ldr w10, [x25,4] sxth x8, w1 ldr w9, [x5,x7] cmp w10, w9 - bhi .L1826 + bhi .L1832 sub w1, w1, #1 sxth x1, w1 -.L1776: +.L1782: cmp w1, w2 - bgt .L1782 - b .L1781 -.L1826: + bgt .L1788 + b .L1787 +.L1832: ldr w2, [x5] - cbnz w2, .L1778 + cbnz w2, .L1784 cmp w0, w6 - beq .L1778 + beq .L1784 add x2, x19, :lo12:.LANCHOR2 add w0, w0, 1 - strh w0, [x2,1384] -.L1778: + strh w0, [x2,1392] +.L1784: mov w0, 0 -.L1779: +.L1785: cmp w0, w1 - beq .L1827 + beq .L1833 add x5, x19, :lo12:.LANCHOR2 sxtw x2, w0 lsl x6, x2, 2 lsl x2, x2, 1 add w0, w0, 1 - ldr x9, [x5,1216] + ldr x9, [x5,1224] sxth w0, w0 add x10, x9, x6 ldr w10, [x10,4] str w10, [x9,x6] - ldr x5, [x5,1200] + ldr x5, [x5,1208] add x6, x5, x2 ldrh w6, [x6,2] strh w6, [x5,x2] - b .L1779 -.L1827: + b .L1785 +.L1833: add x0, x19, :lo12:.LANCHOR2 ldr w5, [x25,4] - ldr x2, [x0,1216] + ldr x2, [x0,1224] str w5, [x2,x7] - ldr x0, [x0,1200] + ldr x0, [x0,1208] strh w24, [x0,x8,lsl 1] -.L1781: - tbnz w1, #31, .L1761 +.L1787: + tbnz w1, #31, .L1767 add x0, x19, :lo12:.LANCHOR2 - ldrh w2, [x0,832] - ldrh w5, [x0,1384] + ldrh w2, [x0,840] + ldrh w5, [x0,1392] sub w2, w2, #1 sub w2, w2, w5 cmp w1, w2, sxth - bgt .L1761 - ldr x2, [x0,1216] + bgt .L1767 + ldr x2, [x0,1224] add w5, w5, 1 ldr w3, [x25,4] - strh w5, [x0,1384] + strh w5, [x0,1392] str w3, [x2,x1,lsl 2] - ldr x0, [x0,1200] -.L1821: + ldr x0, [x0,1208] +.L1827: strh w24, [x0,x1,lsl 1] - b .L1761 -.L1762: + b .L1767 +.L1768: add x0, x19, :lo12:.LANCHOR2 - add x1, x0, 3840 - ldrh w2, [x0,3840] + add x1, x0, 3896 + ldrh w2, [x0,3896] cmp w2, w22 - bne .L1783 - strh w24, [x0,3840] + bne .L1789 + strh w24, [x0,3896] ldr w0, [x25,4] str w0, [x1,8] - b .L1761 -.L1783: + b .L1767 +.L1789: ldrh w0, [x1,4] cmp w0, w22 - beq .L1784 + beq .L1790 mov w1, 1 bl FtlFreeSysBlkQueueIn -.L1784: +.L1790: add x1, x19, :lo12:.LANCHOR2 ldr w2, [x25,4] - add x0, x1, 3840 + add x0, x1, 3896 ldr w5, [x0,8] cmp w5, w2 - bcs .L1785 - ldrh w2, [x1,3840] + bcs .L1791 + ldrh w2, [x1,3896] strh w2, [x0,4] - strh w24, [x1,3840] + strh w24, [x1,3896] ldr w1, [x25,4] str w1, [x0,8] - b .L1761 -.L1785: + b .L1767 +.L1791: strh w24, [x0,4] - b .L1761 -.L1758: + b .L1767 +.L1764: add x0, x28, :lo12:.LANCHOR0 ldrb w1, [x0,136] mov w0, w24 - cbz w1, .L1786 -.L1822: + cbz w1, .L1792 +.L1828: mov w1, 0 -.L1786: +.L1792: bl FtlFreeSysBlkQueueIn -.L1761: +.L1767: add x23, x23, 1 - b .L1753 -.L1752: + b .L1759 +.L1758: add w21, w21, 1 uxth w21, w21 - b .L1748 -.L1789: - ldr x2, [x1,1184] - ldrh w0, [x2] - cbz w0, .L1791 -.L1794: - add x1, x19, :lo12:.LANCHOR2 - ldr x2, [x1,1200] - ldrh w0, [x2] - cbz w0, .L1792 - b .L1815 -.L1791: - ldrh w3, [x1,3904] - cbz w3, .L1794 - ldr w1, [x1,840] + b .L1754 .L1795: - cmp w0, w1 - bcs .L1794 - ldrh w3, [x2,w0,sxtw 1] - cbz w3, .L1796 - mov w6, w0 -.L1797: - add x1, x19, :lo12:.LANCHOR2 - ldr w2, [x1,840] - cmp w0, w2 - bcs .L1794 - sxtw x5, w0 - sub w2, w0, w6 - ldr x4, [x1,1184] - lsl x3, x5, 1 - sxtw x2, w2 - add w0, w0, 1 - ldrh w7, [x4,x3] - sxth w0, w0 - strh w7, [x4,x2,lsl 1] - ldr x4, [x1,1248] - ldr w5, [x4,x5,lsl 2] - str w5, [x4,x2,lsl 2] - ldr x1, [x1,1184] - strh wzr, [x1,x3] - b .L1797 -.L1796: - add w0, w0, 1 - sxth w0, w0 - b .L1795 -.L1792: - ldrh w3, [x1,1384] - cbz w3, .L1815 - ldrh w1, [x1,832] + ldr x2, [x1,1192] + ldrh w0, [x2] + cbz w0, .L1797 .L1800: - cmp w0, w1 - mov w6, w0 - bge .L1815 - ldrh w3, [x2,w0,sxtw 1] - cbz w3, .L1801 -.L1802: add x1, x19, :lo12:.LANCHOR2 - ldrh w2, [x1,832] + ldr x2, [x1,1208] + ldrh w0, [x2] + cbz w0, .L1798 + b .L1821 +.L1797: + ldrh w3, [x1,3908] + cbz w3, .L1800 + ldr w1, [x1,848] +.L1801: + cmp w0, w1 + bcs .L1800 + ldrh w3, [x2,w0,sxtw 1] + cbz w3, .L1802 + mov w6, w0 +.L1803: + add x1, x19, :lo12:.LANCHOR2 + ldr w2, [x1,848] cmp w0, w2 - bge .L1815 + bcs .L1800 sxtw x5, w0 sub w2, w0, w6 - ldr x4, [x1,1200] + ldr x4, [x1,1192] lsl x3, x5, 1 sxtw x2, w2 add w0, w0, 1 ldrh w7, [x4,x3] sxth w0, w0 strh w7, [x4,x2,lsl 1] - ldr x4, [x1,1216] + ldr x4, [x1,1256] ldr w5, [x4,x5,lsl 2] str w5, [x4,x2,lsl 2] - ldr x1, [x1,1200] + ldr x1, [x1,1192] strh wzr, [x1,x3] - b .L1802 -.L1801: + b .L1803 +.L1802: add w0, w0, 1 sxth w0, w0 - b .L1800 -.L1815: + b .L1801 +.L1798: + ldrh w3, [x1,1392] + cbz w3, .L1821 + ldrh w1, [x1,840] +.L1806: + cmp w0, w1 + mov w6, w0 + bge .L1821 + ldrh w3, [x2,w0,sxtw 1] + cbz w3, .L1807 +.L1808: + add x1, x19, :lo12:.LANCHOR2 + ldrh w2, [x1,840] + cmp w0, w2 + bge .L1821 + sxtw x5, w0 + sub w2, w0, w6 + ldr x4, [x1,1208] + lsl x3, x5, 1 + sxtw x2, w2 + add w0, w0, 1 + ldrh w7, [x4,x3] + sxth w0, w0 + strh w7, [x4,x2,lsl 1] + ldr x4, [x1,1224] + ldr w5, [x4,x5,lsl 2] + str w5, [x4,x2,lsl 2] + ldr x1, [x1,1208] + strh wzr, [x1,x3] + b .L1808 +.L1807: + add w0, w0, 1 + sxth w0, w0 + b .L1806 +.L1821: mov w0, 0 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -11571,26 +11598,26 @@ FtlLoadEctTbl: str x19, [sp,16] adrp x19, .LANCHOR2 add x19, x19, :lo12:.LANCHOR2 - ldrh w1, [x19,1136] - ldr x2, [x19,1152] + ldrh w1, [x19,1144] + ldr x2, [x19,1160] bl FtlVendorPartRead - ldr x0, [x19,1152] + ldr x0, [x19,1160] ldr w1, [x0] mov w0, 17221 movk w0, 0x4254, lsl 16 cmp w1, w0 - beq .L1829 - adrp x0, .LC42 - adrp x1, .LC43 - add x1, x1, :lo12:.LC43 - add x0, x0, :lo12:.LC42 + beq .L1835 + adrp x0, .LC45 + adrp x1, .LC46 + add x1, x1, :lo12:.LC46 + add x0, x0, :lo12:.LC45 bl printk - ldrh w2, [x19,1136] + ldrh w2, [x19,1144] mov w1, 0 - ldr x0, [x19,1152] + ldr x0, [x19,1160] lsl w2, w2, 9 bl ftl_memset -.L1829: +.L1835: mov w0, 0 ldr x19, [sp,16] ldp x29, x30, [sp], 32 @@ -11603,10 +11630,10 @@ ftl_set_blk_mode: stp x29, x30, [sp, -16]! uxth w0, w0 add x29, sp, 0 - cbz w1, .L1831 - bl ftl_set_blk_mode.part.18 - b .L1830 -.L1831: + cbz w1, .L1837 + bl ftl_set_blk_mode.part.17 + b .L1836 +.L1837: adrp x1, .LANCHOR0+16 ubfx x2, x0, 5, 11 lsl x2, x2, 2 @@ -11616,7 +11643,7 @@ ftl_set_blk_mode: ldr w1, [x3,x2] bic w0, w1, w0 str w0, [x3,x2] -.L1830: +.L1836: ldp x29, x30, [sp], 16 ret .size ftl_set_blk_mode, .-ftl_set_blk_mode @@ -11661,14 +11688,14 @@ FtlMapTblRecovery: str wzr, [x19,52] add x1, x21, :lo12:.LANCHOR2 str wzr, [x19,48] - add x6, x1, 1400 + add x6, x1, 1408 mov x27, x1 mov x24, x6 - ldr x0, [x1,1040] - ldr x20, [x1,1104] - str x0, [x1,1408] + ldr x0, [x1,1048] + ldr x20, [x1,1112] + str x0, [x1,1416] mov w0, -1 - str x20, [x1,1416] + str x20, [x1,1424] strh w0, [x19] strh w0, [x19,2] mov w0, 1 @@ -11676,14 +11703,14 @@ FtlMapTblRecovery: ldr w0, [x29,116] sub w0, w0, #1 str w0, [x29,112] -.L1835: +.L1841: ldr w0, [x29,116] cmp w26, w0 - bge .L1852 + bge .L1858 ldr w0, [x29,112] sxtw x28, w26 cmp w26, w0 - bne .L1836 + bne .L1842 lsl x0, x28, 1 mov w1, 1 add x24, x22, x0 @@ -11695,13 +11722,13 @@ FtlMapTblRecovery: strh w0, [x19,2] add x26, x21, :lo12:.LANCHOR2 add w27, w27, 1 - add x26, x26, 1400 + add x26, x26, 1408 ldr w0, [x25,x28,lsl 2] mov w25, 0 str w0, [x19,48] -.L1837: +.L1843: cmp w25, w27 - bge .L1852 + bge .L1858 ldrh w0, [x24] mov w1, 1 mov w2, w1 @@ -11711,38 +11738,38 @@ FtlMapTblRecovery: bl FlashReadPages ldr w0, [x26] cmn w0, #1 - beq .L1838 + beq .L1844 ldrh w0, [x20,8] cmp w0, w23 - bcs .L1839 + bcs .L1845 ldrh w2, [x20] ldrh w1, [x19,4] cmp w2, w1 - bne .L1839 + bne .L1845 ubfiz x0, x0, 2, 16 ldr x2, [x29,120] ldr w1, [x26,4] str w1, [x2,x0] - b .L1839 -.L1838: + b .L1845 +.L1844: ldrh w0, [x24] strh w0, [x19,60] -.L1839: +.L1845: add w25, w25, 1 sxth w25, w25 - b .L1837 -.L1852: + b .L1843 +.L1858: add x20, x21, :lo12:.LANCHOR2 - add x0, x20, 3696 + add x0, x20, 3752 cmp x19, x0 - bne .L1842 - b .L1879 -.L1836: - ldr x0, [x27,1040] + bne .L1848 + b .L1885 +.L1842: + ldr x0, [x27,1048] lsl x1, x28, 1 str x0, [x24,8] add x28, x22, x1 - ldrh w0, [x27,812] + ldrh w0, [x27,820] ldrh w1, [x22,x1] sub w0, w0, #1 orr w0, w0, w1, lsl 10 @@ -11753,41 +11780,41 @@ FtlMapTblRecovery: bl FlashReadPages ldr w0, [x24] cmn w0, #1 - beq .L1866 + beq .L1872 ldrh w1, [x20] mov w3, 0 ldrh w0, [x19,4] cmp w1, w0 - bne .L1876 + bne .L1882 ldrh w0, [x20,8] mov w1, 64245 cmp w0, w1 - bne .L1876 -.L1844: - ldrh w0, [x27,812] + bne .L1882 +.L1850: + ldrh w0, [x27,820] sub w0, w0, #1 cmp w3, w0 - bge .L1847 - ldr x0, [x27,1040] + bge .L1853 + ldr x0, [x27,1048] sbfiz x2, x3, 3, 32 ldrh w1, [x0,x2] cmp w1, w23 - bcs .L1845 + bcs .L1851 add x2, x0, x2 ubfiz x1, x1, 2, 16 ldr w0, [x2,4] ldr x2, [x29,120] str w0, [x2,x1] -.L1845: +.L1851: add w3, w3, 1 sxth w3, w3 - b .L1844 -.L1866: + b .L1850 +.L1872: mov w3, 0 -.L1876: - ldrh w0, [x27,812] +.L1882: + ldrh w0, [x27,820] cmp w3, w0 - bge .L1847 + bge .L1853 ldrh w0, [x28] mov w1, 1 mov w2, w1 @@ -11799,65 +11826,65 @@ FtlMapTblRecovery: ldr w0, [x24] ldr x3, [x29,104] cmn w0, #1 - beq .L1848 + beq .L1854 ldrh w1, [x20,8] cmp w1, w23 - bcs .L1848 + bcs .L1854 ldrh w2, [x20] ldrh w0, [x19,4] cmp w2, w0 - bne .L1848 + bne .L1854 ubfiz x1, x1, 2, 16 ldr x2, [x29,120] ldr w0, [x24,4] str w0, [x2,x1] -.L1848: +.L1854: add w3, w3, 1 sxth w3, w3 - b .L1876 -.L1847: + b .L1882 +.L1853: add w4, w26, 1 sxth w26, w4 - b .L1835 -.L1864: + b .L1841 +.L1870: ubfiz x23, x24, 2, 32 - ldr x0, [x20,1240] + ldr x0, [x20,1248] ldr w1, [x0,x23] sub w2, w1, #1 cmn w2, #3 - bls .L1880 -.L1857: + bls .L1886 +.L1863: add w24, w24, 1 -.L1855: - ldrh w0, [x20,848] +.L1861: + ldrh w0, [x20,856] cmp w24, w0 - bcc .L1864 -.L1842: + bcc .L1870 +.L1848: mov x0, x19 add x21, x21, :lo12:.LANCHOR2 bl ftl_free_no_use_map_blk ldrh w1, [x19,2] - ldrh w0, [x21,812] + ldrh w0, [x21,820] cmp w1, w0 - bne .L1854 + bne .L1860 mov x0, x19 bl ftl_map_blk_alloc_new_blk - b .L1854 -.L1879: - ldrh w0, [x20,852] - cbz w0, .L1842 - adrp x25, .LC44 + b .L1860 +.L1885: + ldrh w0, [x20,860] + cbz w0, .L1848 + adrp x25, .LC47 mov w24, 0 - add x27, x20, 1400 - add x25, x25, :lo12:.LC44 - b .L1855 -.L1880: - ldr x2, [x20,1232] + add x27, x20, 1408 + add x25, x25, :lo12:.LC47 + b .L1861 +.L1886: + ldr x2, [x20,1240] ldr w2, [x2,x23] cmp w1, w2 - beq .L1857 - ldr x1, [x20,1040] - ldr x26, [x20,1104] + beq .L1863 + ldr x1, [x20,1048] + ldr x26, [x20,1112] str x1, [x27,8] mov w1, 1 str x26, [x27,16] @@ -11868,67 +11895,67 @@ FtlMapTblRecovery: bl FlashReadPages ldr w0, [x27] cmn w0, #1 - beq .L1857 + beq .L1863 ldrh w1, [x26] - ldrh w0, [x20,3700] + ldrh w0, [x20,3756] cmp w1, w0 - bne .L1857 - ldr x0, [x20,1232] + bne .L1863 + ldr x0, [x20,1240] ldr w3, [x26,4] ldr w1, [x0,x23] str w1, [x27,4] ldr w0, [x0,x23] - cbnz w0, .L1859 + cbnz w0, .L1865 str w0, [x26,4] - b .L1860 -.L1859: + b .L1866 +.L1865: mov w1, 1 mov x0, x27 mov w2, w1 str x3, [x29,120] bl FlashReadPages ldr x3, [x29,120] -.L1860: +.L1866: ldr w4, [x26,4] cmp w3, w4 - bls .L1857 - ldr x1, [x20,1240] + bls .L1863 + ldr x1, [x20,1248] mov x0, x25 - ldr x2, [x20,1232] + ldr x2, [x20,1240] ldr w1, [x1,x23] ldr w2, [x2,x23] bl printk - ldr x0, [x20,1240] + ldr x0, [x20,1248] ldr w1, [x0,x23] - ldr x0, [x20,1232] + ldr x0, [x20,1240] str w1, [x0,x23] mov w1, 0 - ldr x0, [x20,1240] - ldrh w3, [x20,3904] + ldr x0, [x20,1248] + ldrh w3, [x20,3908] ldr w2, [x0,x23] ubfx x2, x2, 10, 16 -.L1861: +.L1867: cmp w1, w3 - bge .L1881 + bge .L1887 ldrh w0, [x22,w1,sxtw 1] cmp w0, w2 - beq .L1857 + beq .L1863 add w1, w1, 1 sxth w1, w1 - b .L1861 -.L1881: - ldr w0, [x20,840] + b .L1867 +.L1887: + ldr w0, [x20,848] cmp w3, w0 - bcs .L1857 + bcs .L1863 ubfiz x3, x3, 1, 16 strh w2, [x22,x3] - ldrh w0, [x20,3904] + ldrh w0, [x20,3908] add w0, w0, 1 - strh w0, [x20,3904] + strh w0, [x20,3908] mov w0, w2 bl remove_from_free_sys_Queue - b .L1857 -.L1854: + b .L1863 +.L1860: mov x0, x19 bl ftl_map_blk_gc mov x0, x19 @@ -11949,22 +11976,22 @@ FtlLoadVonderInfo: adrp x1, .LANCHOR2 add x1, x1, :lo12:.LANCHOR2 stp x29, x30, [sp, -16]! - add x0, x1, 3768 + add x0, x1, 3824 add x29, sp, 0 - ldrh w2, [x1,832] + ldrh w2, [x1,840] strh w2, [x0,10] mov w2, -3962 strh w2, [x0,4] - ldrh w2, [x1,1384] + ldrh w2, [x1,1392] strh w2, [x0,8] - ldrh w2, [x1,834] + ldrh w2, [x1,842] strh w2, [x0,6] - ldr x2, [x1,1200] - str x2, [x0,16] - ldr x2, [x1,1216] - str x2, [x0,24] ldr x2, [x1,1208] - ldr x1, [x1,1224] + str x2, [x0,16] + ldr x2, [x1,1224] + str x2, [x0,24] + ldr x2, [x1,1216] + ldr x1, [x1,1232] str x1, [x0,40] mov w1, -1 str x2, [x0,32] @@ -11984,33 +12011,33 @@ FtlL2PDataInit: stp x19, x20, [sp,16] adrp x20, .LANCHOR2 add x19, x20, :lo12:.LANCHOR2 - ldr w2, [x19,840] - ldr x0, [x19,1192] + ldr w2, [x19,848] + ldr x0, [x19,1200] lsl w2, w2, 1 bl ftl_memset - ldrh w3, [x19,820] + ldrh w3, [x19,828] mov w1, 255 - ldrh w2, [x19,850] - ldr x0, [x19,1264] + ldrh w2, [x19,858] + ldr x0, [x19,1272] mul w2, w3, w2 bl ftl_memset mov w2, 0 mov w4, -1 -.L1884: +.L1890: add x0, x20, :lo12:.LANCHOR2 - ldrh w1, [x0,850] + ldrh w1, [x0,858] cmp w1, w2 - bls .L1886 - ldr x3, [x0,1256] + bls .L1892 + ldr x3, [x0,1264] ubfiz x1, x2, 4, 16 add x3, x3, x1 str wzr, [x3,4] - ldr x3, [x0,1256] + ldr x3, [x0,1264] strh w4, [x3,x1] - ldr x3, [x0,1256] + ldr x3, [x0,1264] add x3, x3, x1 - ldrh w1, [x0,820] - ldr x0, [x0,1264] + ldrh w1, [x0,828] + ldr x0, [x0,1272] mul w1, w1, w2 add w2, w2, 1 sxtw x1, w1 @@ -12018,27 +12045,27 @@ FtlL2PDataInit: and x1, x1, -4 add x0, x0, x1 str x0, [x3,8] - b .L1884 -.L1886: - ldr w3, [x0,840] - add x1, x0, 3696 - strh w3, [x0,3706] + b .L1890 +.L1892: + ldr w3, [x0,848] + add x1, x0, 3752 + strh w3, [x0,3762] mov w3, -3902 - strh w3, [x0,3700] + strh w3, [x0,3756] mov w2, -1 - ldrh w3, [x0,3904] - strh w3, [x0,3704] - ldrh w3, [x0,848] - strh w3, [x0,3702] - ldr x3, [x0,1184] - str x3, [x0,3712] - ldr x3, [x0,1248] - str x3, [x0,3720] + ldrh w3, [x0,3908] + strh w3, [x0,3760] + ldrh w3, [x0,856] + strh w3, [x0,3758] ldr x3, [x0,1192] - strh w2, [x0,3698] - strh w2, [x0,3696] - str x3, [x0,3728] - ldr x0, [x0,1232] + str x3, [x0,3768] + ldr x3, [x0,1256] + str x3, [x0,3776] + ldr x3, [x0,1200] + strh w2, [x0,3754] + strh w2, [x0,3752] + str x3, [x0,3784] + ldr x0, [x0,1240] str x0, [x1,40] strh w2, [x1,60] ldp x19, x20, [sp,16] @@ -12054,7 +12081,7 @@ FtlLoadMapInfo: bl FtlL2PDataInit adrp x0, .LANCHOR2 add x0, x0, :lo12:.LANCHOR2 - add x0, x0, 3696 + add x0, x0, 3752 bl FtlMapTblRecovery mov w0, 0 ldp x29, x30, [sp], 16 @@ -12070,42 +12097,42 @@ ftl_sb_update_avl_pages: uxth w2, w2 strh wzr, [x0,4] mov w6, 65535 - ldrh w4, [x4,740] -.L1889: + ldrh w4, [x4,748] +.L1895: cmp w2, w4 - bcs .L1895 + bcs .L1901 add x5, x0, x2, sxtw 1 ldrh w5, [x5,16] cmp w5, w6 - beq .L1890 + beq .L1896 ldrh w5, [x0,4] add w5, w5, 1 strh w5, [x0,4] -.L1890: +.L1896: add w2, w2, 1 uxth w2, w2 - b .L1889 -.L1895: + b .L1895 +.L1901: add x3, x3, :lo12:.LANCHOR2 mov w6, 65535 add x4, x0, x4, uxth 1 - ldrh w5, [x3,810] + ldrh w5, [x3,818] mov x3, x0 -.L1892: +.L1898: cmp x3, x4 - beq .L1896 + beq .L1902 ldrh w2, [x3,16] cmp w2, w6 - beq .L1893 + beq .L1899 ldrh w2, [x0,4] add w2, w5, w2 sub w2, w2, #1 sub w2, w2, w1 strh w2, [x0,4] -.L1893: +.L1899: add x3, x3, 2 - b .L1892 -.L1896: + b .L1898 +.L1902: ret .size ftl_sb_update_avl_pages, .-ftl_sb_update_avl_pages .align 2 @@ -12124,51 +12151,51 @@ FtlReUsePrevPpa: uxth w0, w0 add x2, x21, :lo12:.LANCHOR2 ubfiz x22, x0, 1, 16 - ldr x3, [x2,1176] + ldr x3, [x2,1184] ldrh w1, [x3,x22] - cbnz w1, .L1898 - ldr x19, [x2,3536] - cbz x19, .L1899 - ldrh w3, [x2,3544] + cbnz w1, .L1904 + ldr x19, [x2,3592] + cbz x19, .L1905 + ldrh w3, [x2,3600] mov x4, -6148914691236517206 - ldr x2, [x2,1272] + ldr x2, [x2,1280] mov w5, 65535 sub x19, x19, x2 asr x19, x19, 1 madd x19, x4, x19, x19 mov w4, 6 uxth w19, w19 -.L1900: +.L1906: cmp w1, w3 - beq .L1899 + beq .L1905 cmp w19, w0 - bne .L1901 + bne .L1907 add x21, x21, :lo12:.LANCHOR2 mov w1, w19 - add x0, x21, 3536 + add x0, x21, 3592 bl List_remove_node - ldrh w0, [x21,3544] + ldrh w0, [x21,3600] sub w0, w0, #1 - strh w0, [x21,3544] + strh w0, [x21,3600] mov w0, w19 bl INSERT_DATA_LIST - ldr x1, [x21,1176] + ldr x1, [x21,1184] ldrh w0, [x1,x22] add w0, w0, 1 strh w0, [x1,x22] - b .L1899 -.L1901: + b .L1905 +.L1907: umull x19, w19, w4 ldrh w19, [x2,x19] cmp w19, w5 - beq .L1899 + beq .L1905 add w1, w1, 1 uxth w1, w1 - b .L1900 -.L1898: + b .L1906 +.L1904: add w1, w1, 1 strh w1, [x3,x22] -.L1899: +.L1905: add x1, x29, 60 mov w0, w20 mov w2, 1 @@ -12198,49 +12225,49 @@ make_superblock: mov x20, x0 mov x23, x1 mov w25, -1 - ldrh w24, [x1,740] -.L1907: + ldrh w24, [x1,748] +.L1913: cmp w24, w21, uxth - bls .L1918 - add x0, x23, 768 + bls .L1924 + add x0, x23, 776 ldrh w1, [x19] ldrb w0, [x0,x21] bl V2P_block strh w25, [x22] mov w26, w0 bl FtlBbmIsBadBlock - cbnz w0, .L1908 + cbnz w0, .L1914 strh w26, [x22] ldrb w0, [x19,7] add w0, w0, 1 strb w0, [x19,7] -.L1908: +.L1914: add x21, x21, 1 add x22, x22, 2 - b .L1907 -.L1918: + b .L1913 +.L1924: add x0, x20, :lo12:.LANCHOR2 ldrb w1, [x19,7] strb wzr, [x19,9] - ldrh w2, [x0,810] + ldrh w2, [x0,818] mul w1, w1, w2 strh w1, [x19,4] - ldr w1, [x0,3908] - cbz w1, .L1910 + ldr w1, [x0,652] + cbz w1, .L1916 ldrh w1, [x19] - ldr x0, [x0,1160] + ldr x0, [x0,1168] ldrh w0, [x0,x1,lsl 1] cmp w0, 59 - bhi .L1910 + bhi .L1916 mov w0, 1 strb w0, [x19,9] -.L1910: +.L1916: adrp x0, .LANCHOR0+24 ldrb w0, [x0,#:lo12:.LANCHOR0+24] - cbz w0, .L1911 + cbz w0, .L1917 mov w0, 1 strb w0, [x19,9] -.L1911: +.L1917: mov w0, 0 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -12261,68 +12288,68 @@ FtlLoadSysInfo: str x23, [sp,48] add x20, x19, :lo12:.LANCHOR2 stp x21, x22, [sp,32] - add x21, x20, 1400 - add x23, x20, 3840 - ldr x0, [x20,1104] - ldrh w2, [x20,748] + add x21, x20, 1408 + add x23, x20, 3896 + ldr x0, [x20,1112] + ldrh w2, [x20,756] str x0, [x21,16] - ldr x0, [x20,1176] + ldr x0, [x20,1184] lsl w2, w2, 1 str xzr, [x21,8] bl ftl_memset - ldrh w0, [x20,3840] + ldrh w0, [x20,3896] mov w1, 65535 cmp w0, w1 - bne .L1920 -.L1928: + bne .L1926 +.L1934: mov w19, -1 - b .L1921 -.L1920: + b .L1927 +.L1926: mov w1, 1 bl FtlGetLastWrittenPage sxth w22, w0 add w0, w0, 1 strh w0, [x23,2] mov w23, 61604 -.L1922: - tbnz w22, #31, .L1927 - ldrh w0, [x20,3840] +.L1928: + tbnz w22, #31, .L1933 + ldrh w0, [x20,3896] mov w1, 1 mov w2, w1 orr w0, w22, w0, lsl 10 str w0, [x21,4] - ldr x0, [x20,1040] + ldr x0, [x20,1048] str x0, [x21,8] mov x0, x21 bl FlashReadPages ldr w0, [x21] cmn w0, #1 - beq .L1923 - ldr x0, [x20,1040] + beq .L1929 + ldr x0, [x20,1048] ldr w1, [x0] mov w0, 19539 movk w0, 0x4654, lsl 16 cmp w1, w0 - bne .L1923 - ldr x0, [x20,1104] + bne .L1929 + ldr x0, [x20,1112] ldrh w0, [x0] cmp w0, w23 - bne .L1923 -.L1927: + bne .L1929 +.L1933: add x20, x19, :lo12:.LANCHOR2 mov w2, 48 - add x22, x20, 1400 - add x0, x20, 3856 + add x22, x20, 1408 + add x0, x20, 3520 adrp x21, .LANCHOR0 ldr x1, [x22,8] bl ftl_memcpy ldr x1, [x22,8] - ldrh w2, [x20,748] - ldr x0, [x20,1176] + ldrh w2, [x20,756] + ldr x0, [x20,1184] add x1, x1, 48 lsl w2, w2, 1 bl ftl_memcpy - ldrh w2, [x20,748] + ldrh w2, [x20,756] add x0, x21, :lo12:.LANCHOR0 ldr x3, [x22,8] uxth x1, w2 @@ -12333,138 +12360,138 @@ FtlLoadSysInfo: add w2, w2, 4 add x1, x3, x1, lsl 2 bl ftl_memcpy - ldrh w0, [x20,852] - cbz w0, .L1925 - ldrh w0, [x20,748] + ldrh w0, [x20,860] + cbz w0, .L1931 + ldrh w0, [x20,756] ldr x3, [x22,8] lsr w1, w0, 3 - ldrh w2, [x20,848] + ldrh w2, [x20,856] add w1, w1, w0, lsl 1 - ldr x0, [x20,1240] + ldr x0, [x20,1248] add w1, w1, 52 lsl w2, w2, 2 and x1, x1, 65532 add x1, x3, x1 bl ftl_memcpy - b .L1925 -.L1923: + b .L1931 +.L1929: sub w22, w22, #1 sxth w22, w22 - b .L1922 -.L1925: + b .L1928 +.L1931: add x0, x19, :lo12:.LANCHOR2 mov w2, 19539 movk w2, 0x4654, lsl 16 - ldr w3, [x0,3856] + ldr w3, [x0,3520] cmp w3, w2 - bne .L1928 - ldrb w3, [x0,3866] - ldrh w2, [x0,762] - ldrh w4, [x0,3864] - strh w4, [x0,3846] + bne .L1934 + ldrb w3, [x0,3530] + ldrh w2, [x0,770] + ldrh w4, [x0,3528] + strh w4, [x0,3902] cmp w3, w2 - bne .L1928 - ldrh w3, [x0,810] + bne .L1934 + ldrh w3, [x0,818] add x21, x21, :lo12:.LANCHOR0 - ldrh w2, [x0,816] + ldrh w2, [x0,824] str w4, [x0,3912] mul w3, w3, w4 - str w3, [x0,1388] + str w3, [x0,1396] strh wzr, [x0,3922] mul w3, w3, w2 str w3, [x21,4048] - ldrh w2, [x0,1294] - ldr w3, [x0,752] + ldrh w2, [x0,1302] + ldr w3, [x0,760] strb wzr, [x0,3926] sub w2, w3, w2 - ldrh w3, [x0,740] + ldrh w3, [x0,748] sub w2, w2, w4 - ldrh w4, [x0,3870] - strh w4, [x0,3552] + ldrh w4, [x0,3534] + strh w4, [x0,3608] udiv w2, w2, w3 - ldrh w3, [x0,3872] + ldrh w3, [x0,3536] strh w2, [x0,3916] lsr w5, w3, 6 and w3, w3, 63 - strb w3, [x0,3558] - ldrb w3, [x0,3867] - strb w3, [x0,3560] + strb w3, [x0,3614] + ldrb w3, [x0,3531] + strb w3, [x0,3616] mov w3, -1 strh w3, [x0,3920] - ldrh w3, [x0,3874] - strh w3, [x0,3600] - ldrh w3, [x0,3876] - strh w5, [x0,3554] + ldrh w3, [x0,3538] + strh w3, [x0,3656] + ldrh w3, [x0,3540] + strh w5, [x0,3610] lsr w5, w3, 6 and w3, w3, 63 - strb w3, [x0,3606] - ldrb w3, [x0,3868] - strb w3, [x0,3608] - ldrh w3, [x0,3878] - strh w3, [x0,3648] - ldrh w3, [x0,3880] - strh w5, [x0,3602] + strb w3, [x0,3662] + ldrb w3, [x0,3532] + strb w3, [x0,3664] + ldrh w3, [x0,3542] + strh w3, [x0,3704] + ldrh w3, [x0,3544] + strh w5, [x0,3658] lsr w5, w3, 6 and w3, w3, 63 strb wzr, [x0,3928] - strb w3, [x0,3654] - strh w5, [x0,3650] - ldrb w3, [x0,3869] - strb w3, [x0,3656] - ldr w2, [x0,3888] - str w2, [x0,896] - ldr w1, [x0,3896] - ldr w2, [x0,864] - str wzr, [x0,872] - str wzr, [x0,876] - cmp w1, w2 - str wzr, [x0,892] - str wzr, [x0,888] - str wzr, [x0,900] - str wzr, [x0,908] + strb w3, [x0,3710] + strh w5, [x0,3706] + ldrb w3, [x0,3533] + strb w3, [x0,3712] + ldr w2, [x0,3552] + str w2, [x0,904] + ldr w1, [x0,3560] + ldr w2, [x0,872] + str wzr, [x0,880] str wzr, [x0,884] - bls .L1929 - str w1, [x0,864] -.L1929: - add x0, x19, :lo12:.LANCHOR2 - ldr w1, [x0,3892] - ldr w2, [x0,868] cmp w1, w2 - bls .L1930 - str w1, [x0,868] -.L1930: + str wzr, [x0,900] + str wzr, [x0,896] + str wzr, [x0,908] + str wzr, [x0,916] + str wzr, [x0,892] + bls .L1935 + str w1, [x0,872] +.L1935: + add x0, x19, :lo12:.LANCHOR2 + ldr w1, [x0,3556] + ldr w2, [x0,876] + cmp w1, w2 + bls .L1936 + str w1, [x0,876] +.L1936: mov w0, 65535 cmp w4, w0 - beq .L1931 + beq .L1937 add x0, x19, :lo12:.LANCHOR2 - add x0, x0, 3552 + add x0, x0, 3608 bl make_superblock -.L1931: +.L1937: add x1, x19, :lo12:.LANCHOR2 - add x0, x1, 3600 - ldrh w2, [x1,3600] + add x0, x1, 3656 + ldrh w2, [x1,3656] mov w1, 65535 cmp w2, w1 - beq .L1932 + beq .L1938 bl make_superblock -.L1932: +.L1938: add x1, x19, :lo12:.LANCHOR2 - add x0, x1, 3648 - ldrh w2, [x1,3648] + add x0, x1, 3704 + ldrh w2, [x1,3704] mov w1, 65535 cmp w2, w1 - beq .L1933 + beq .L1939 bl make_superblock -.L1933: +.L1939: add x19, x19, :lo12:.LANCHOR2 mov w1, 65535 add x0, x19, 3920 ldrh w2, [x19,3920] mov w19, 0 cmp w2, w1 - beq .L1921 + beq .L1927 bl make_superblock -.L1921: +.L1927: mov w0, w19 ldr x23, [sp,48] ldp x19, x20, [sp,16] @@ -12488,34 +12515,34 @@ SupperBlkListInit: stp x27, x28, [sp,80] mov w23, 6 mov w27, 0 - ldrh w2, [x19,750] + ldrh w2, [x19,758] mov w22, w27 - ldr x0, [x19,1272] + ldr x0, [x19,1280] mov w24, -1 mov w25, 32768 mul w2, w2, w23 bl ftl_memset - str xzr, [x19,3536] - str xzr, [x19,3512] - str xzr, [x19,3520] - strh wzr, [x19,3528] - strh wzr, [x19,3544] - strh wzr, [x19,854] + str xzr, [x19,3592] + str xzr, [x19,3568] + str xzr, [x19,3576] + strh wzr, [x19,3584] + strh wzr, [x19,3600] + strh wzr, [x19,862] mov w19, w27 -.L1939: +.L1945: add x0, x21, :lo12:.LANCHOR2 - ldrh w1, [x0,748] + ldrh w1, [x0,756] cmp w19, w1 - bge .L1946 + bge .L1952 mov w20, 0 - ldrh w3, [x0,740] - ldrh w2, [x0,810] + ldrh w3, [x0,748] + ldrh w2, [x0,818] mov w28, w20 mov x26, x0 -.L1947: +.L1953: cmp w28, w3 - bge .L1948 - add x0, x26, 768 + bge .L1954 + add x0, x26, 776 mov w1, w19 str x2, [x29,96] str x3, [x29,104] @@ -12524,56 +12551,56 @@ SupperBlkListInit: bl FtlBbmIsBadBlock ldr x3, [x29,104] ldr x2, [x29,96] - cbnz w0, .L1940 + cbnz w0, .L1946 add w20, w2, w20 sxth w20, w20 -.L1940: +.L1946: add w28, w28, 1 sxth w28, w28 - b .L1947 -.L1948: - cbz w20, .L1942 + b .L1953 +.L1954: + cbz w20, .L1948 sdiv w20, w25, w20 sxth w20, w20 - b .L1943 -.L1942: + b .L1949 +.L1948: add x0, x21, :lo12:.LANCHOR2 - ldr x0, [x0,1176] + ldr x0, [x0,1184] strh w24, [x0,w19,sxtw 1] -.L1943: +.L1949: add x0, x21, :lo12:.LANCHOR2 - ldr x1, [x0,1272] + ldr x1, [x0,1280] smaddl x1, w19, w23, x1 strh w20, [x1,4] - ldrh w1, [x0,3552] + ldrh w1, [x0,3608] cmp w19, w1 - beq .L1944 - ldrh w1, [x0,3600] + beq .L1950 + ldrh w1, [x0,3656] cmp w19, w1 - beq .L1944 - ldrh w1, [x0,3648] + beq .L1950 + ldrh w1, [x0,3704] cmp w19, w1 - beq .L1944 - ldr x0, [x0,1176] + beq .L1950 + ldr x0, [x0,1184] ldrh w0, [x0,w19,sxtw 1] - cbnz w0, .L1945 + cbnz w0, .L1951 add w27, w27, 1 mov w0, w19 uxth w27, w27 bl INSERT_FREE_LIST - b .L1944 -.L1945: + b .L1950 +.L1951: add w22, w22, 1 mov w0, w19 uxth w22, w22 bl INSERT_DATA_LIST -.L1944: +.L1950: add w19, w19, 1 sxth w19, w19 - b .L1939 -.L1946: - strh w22, [x0,3528] - strh w27, [x0,3544] + b .L1945 +.L1952: + strh w22, [x0,3584] + strh w27, [x0,3600] mov w0, 0 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -12596,8 +12623,8 @@ Ftl_save_ext_data: add x29, sp, 0 ldr w3, [x0,3968] cmp w3, w1 - bne .L1949 - mov w1, 71 + bne .L1955 + mov w1, 72 movk w1, 0x5000, lsl 16 str w1, [x2,4] adrp x1, .LANCHOR4 @@ -12605,35 +12632,35 @@ Ftl_save_ext_data: ldr w3, [x1,128] ldr w1, [x1,132] str w1, [x2,92] - ldr w1, [x0,872] - str w1, [x2,8] - ldr w1, [x0,876] - str w1, [x2,12] - ldr w1, [x0,892] - str w1, [x2,16] - ldr w1, [x0,888] - str w1, [x2,20] - ldr w1, [x0,900] - str w1, [x2,28] - ldr w1, [x0,904] - str w1, [x2,32] ldr w1, [x0,880] - str w1, [x2,36] + str w1, [x2,8] ldr w1, [x0,884] - str w1, [x2,40] + str w1, [x2,12] + ldr w1, [x0,900] + str w1, [x2,16] + ldr w1, [x0,896] + str w1, [x2,20] ldr w1, [x0,908] - str w1, [x2,44] + str w1, [x2,28] ldr w1, [x0,912] + str w1, [x2,32] + ldr w1, [x0,888] + str w1, [x2,36] + ldr w1, [x0,892] + str w1, [x2,40] + ldr w1, [x0,916] + str w1, [x2,44] + ldr w1, [x0,920] str w1, [x2,48] - ldr w1, [x0,860] - ldr w0, [x0,856] + ldr w1, [x0,868] + ldr w0, [x0,864] str w1, [x2,60] mov w1, 1 str w0, [x2,64] mov w0, 0 str w3, [x2,88] bl FtlVendorPartWrite -.L1949: +.L1955: ldp x29, x30, [sp], 16 ret .size Ftl_save_ext_data, .-Ftl_save_ext_data @@ -12646,51 +12673,51 @@ FtlEctTblFlush: add x3, x2, :lo12:.LANCHOR2 stp x29, x30, [sp, -16]! add x29, sp, 0 - ldr w4, [x3,3908] - cbz w4, .L1952 - ldr w3, [x3,912] + ldr w4, [x3,652] + cbz w4, .L1958 + ldr w3, [x3,920] cmp w3, 29 mov w3, 4 csel w1, w1, w3, hi -.L1952: +.L1958: adrp x3, .LANCHOR4 add x3, x3, :lo12:.LANCHOR4 ldrh w4, [x3,136] cmp w4, 31 - bhi .L1953 + bhi .L1959 add w4, w4, 1 mov w1, 1 strh w4, [x3,136] -.L1953: - cbnz w0, .L1954 +.L1959: + cbnz w0, .L1960 add x0, x2, :lo12:.LANCHOR2 - ldr x3, [x0,1152] + ldr x3, [x0,1160] ldr w0, [x3,20] add w1, w1, w0 ldr w0, [x3,16] cmp w0, w1 - bcc .L1955 -.L1954: + bcc .L1961 +.L1960: add x2, x2, :lo12:.LANCHOR2 - ldr x0, [x2,1152] + ldr x0, [x2,1160] ldr w1, [x0,16] str w1, [x0,20] mov w1, 17221 movk w1, 0x4254, lsl 16 str w1, [x0] - ldr x0, [x2,1152] - ldrh w1, [x2,1136] + ldr x0, [x2,1160] + ldrh w1, [x2,1144] str wzr, [x0,4] lsl w3, w1, 9 str w3, [x0,12] ldr w3, [x0,8] - ldr x2, [x2,1152] + ldr x2, [x2,1160] add w3, w3, 1 str w3, [x0,8] mov w0, 64 bl FtlVendorPartWrite bl Ftl_save_ext_data -.L1955: +.L1961: mov w0, 0 ldp x29, x30, [sp], 16 ret @@ -12714,7 +12741,7 @@ Ftl_load_ext_data: mov w0, 19539 movk w0, 0x4654, lsl 16 cmp w1, w0 - beq .L1960 + beq .L1966 mov x0, x21 mov w1, 0 mov w2, 512 @@ -12722,63 +12749,63 @@ Ftl_load_ext_data: mov w0, 19539 movk w0, 0x4654, lsl 16 str w0, [x20,3968] -.L1960: +.L1966: add x0, x19, :lo12:.LANCHOR2 mov w2, 19539 movk w2, 0x4654, lsl 16 adrp x20, .LANCHOR4 ldr w3, [x0,3968] cmp w3, w2 - bne .L1961 + bne .L1967 add x2, x20, :lo12:.LANCHOR4 ldr w3, [x0,4056] ldr w1, [x0,4028] - str w1, [x0,860] + str w1, [x0,868] str w3, [x2,128] ldr w3, [x0,4060] str w3, [x2,132] ldr w2, [x0,3976] - str w2, [x0,872] - ldr w2, [x0,3980] - str w2, [x0,876] - ldr w2, [x0,3984] - str w2, [x0,892] - ldr w2, [x0,3988] - str w2, [x0,888] - ldr w2, [x0,3996] - str w2, [x0,900] - ldr w2, [x0,4000] - str w2, [x0,904] - ldr w2, [x0,4004] str w2, [x0,880] - ldr w2, [x0,4008] + ldr w2, [x0,3980] str w2, [x0,884] - ldr w2, [x0,4012] + ldr w2, [x0,3984] + str w2, [x0,900] + ldr w2, [x0,3988] + str w2, [x0,896] + ldr w2, [x0,3996] str w2, [x0,908] - ldr w2, [x0,4016] + ldr w2, [x0,4000] str w2, [x0,912] -.L1961: + ldr w2, [x0,4004] + str w2, [x0,888] + ldr w2, [x0,4008] + str w2, [x0,892] + ldr w2, [x0,4012] + str w2, [x0,916] + ldr w2, [x0,4016] + str w2, [x0,920] +.L1967: add x0, x19, :lo12:.LANCHOR2 mov w1, 34661 movk w1, 0x1234, lsl 16 ldr w2, [x0,4036] - str wzr, [x0,856] + str wzr, [x0,864] cmp w2, w1 - bne .L1962 + bne .L1968 mov w1, 1 - str w1, [x0,3908] - adrp x0, .LC42 - adrp x1, .LC45 - add x0, x0, :lo12:.LC42 - add x1, x1, :lo12:.LC45 + str w1, [x0,652] + adrp x0, .LC45 + adrp x1, .LC48 + add x0, x0, :lo12:.LC45 + add x1, x1, :lo12:.LC48 bl printk -.L1962: +.L1968: add x0, x19, :lo12:.LANCHOR2 add x20, x20, :lo12:.LANCHOR4 - ldrh w2, [x0,800] - ldr w3, [x0,896] - ldr w1, [x0,900] - ldrh w0, [x0,748] + ldrh w2, [x0,808] + ldr w3, [x0,904] + ldr w1, [x0,908] + ldrh w0, [x0,756] madd w1, w2, w3, w1 udiv w0, w1, w0 str w0, [x20,140] @@ -12802,33 +12829,33 @@ update_multiplier_value: stp x23, x24, [sp,48] mov x22, 0 mov x21, x0 - ldrh w24, [x1,740] + ldrh w24, [x1,748] mov w19, w22 - ldrh w25, [x1,810] + ldrh w25, [x1,818] mov x23, x1 -.L1964: +.L1970: cmp w24, w22, uxth - bls .L1971 - add x0, x23, 768 + bls .L1977 + add x0, x23, 776 mov w1, w20 ldrb w0, [x0,x22] bl V2P_block bl FtlBbmIsBadBlock - cbnz w0, .L1965 + cbnz w0, .L1971 add w19, w19, w25 uxth w19, w19 -.L1965: - add x22, x22, 1 - b .L1964 .L1971: - cbz w19, .L1967 + add x22, x22, 1 + b .L1970 +.L1977: + cbz w19, .L1973 mov w0, 32768 sdiv w19, w0, w19 -.L1967: +.L1973: add x0, x21, :lo12:.LANCHOR2 mov w1, 6 umull x20, w20, w1 - ldr x0, [x0,1272] + ldr x0, [x0,1280] add x20, x0, x20 mov w0, 0 strh w19, [x20,4] @@ -12845,18 +12872,18 @@ update_multiplier_value: GetFreeBlockMinEraseCount: adrp x2, .LANCHOR2 add x2, x2, :lo12:.LANCHOR2 - ldr x1, [x2,3536] + ldr x1, [x2,3592] mov w0, w1 - cbz x1, .L1973 - ldr x0, [x2,1272] + cbz x1, .L1979 + ldr x0, [x2,1280] sub x1, x1, x0 mov x0, -6148914691236517206 asr x1, x1, 1 madd x1, x0, x1, x1 - ldr x0, [x2,1160] + ldr x0, [x2,1168] and x1, x1, 65535 ldrh w0, [x0,x1,lsl 1] -.L1973: +.L1979: ret .size GetFreeBlockMinEraseCount, .-GetFreeBlockMinEraseCount .align 2 @@ -12866,15 +12893,15 @@ GetFreeBlockMaxEraseCount: adrp x2, .LANCHOR2 uxth w4, w0 add x5, x2, :lo12:.LANCHOR2 - ldr x1, [x5,3536] + ldr x1, [x5,3592] mov w0, w1 - cbz x1, .L1976 - ldrh w3, [x5,3544] + cbz x1, .L1982 + ldrh w3, [x5,3600] mov w0, 7 mov w6, 6 mov w7, 65535 mul w3, w3, w0 - ldr x0, [x5,1272] + ldr x0, [x5,1280] asr w3, w3, 3 cmp w4, w3 sub x1, x1, x0 @@ -12884,25 +12911,25 @@ GetFreeBlockMaxEraseCount: madd x1, x3, x1, x1 mov w3, 0 uxth w1, w1 -.L1978: +.L1984: cmp w3, w4 - beq .L1981 + beq .L1987 umull x5, w1, w6 ldrh w5, [x0,x5] cmp w5, w7 - bne .L1979 -.L1981: + bne .L1985 +.L1987: add x2, x2, :lo12:.LANCHOR2 ubfiz x1, x1, 1, 16 - ldr x0, [x2,1160] + ldr x0, [x2,1168] ldrh w0, [x0,x1] - b .L1976 -.L1979: + b .L1982 +.L1985: add w3, w3, 1 mov w1, w5 uxth w3, w3 - b .L1978 -.L1976: + b .L1984 +.L1982: ret .size GetFreeBlockMaxEraseCount, .-GetFreeBlockMaxEraseCount .align 2 @@ -12910,11 +12937,11 @@ GetFreeBlockMaxEraseCount: .type FtlPrintInfo2buf, %function FtlPrintInfo2buf: stp x29, x30, [sp, -112]! - adrp x1, .LC46 + adrp x1, .LC49 add x29, sp, 0 stp x25, x26, [sp,64] adrp x25, .LANCHOR0 - add x1, x1, :lo12:.LC46 + add x1, x1, :lo12:.LC49 add x25, x25, :lo12:.LANCHOR0 str x27, [sp,80] stp x23, x24, [sp,48] @@ -12924,26 +12951,26 @@ FtlPrintInfo2buf: bl strcpy add x20, x23, 12 ldr w2, [x25,4016] - adrp x1, .LC47 + adrp x1, .LC50 adrp x24, .LANCHOR2 mov x0, x20 - add x1, x1, :lo12:.LC47 + add x1, x1, :lo12:.LC50 add x22, x24, :lo12:.LANCHOR2 bl sprintf add x20, x20, x0, sxtw - adrp x1, .LC48 + adrp x1, .LC51 mov x0, x20 - ldr w2, [x22,828] - add x1, x1, :lo12:.LC48 + ldr w2, [x22,836] + add x1, x1, :lo12:.LC51 bl sprintf add x20, x20, x0, sxtw - adrp x0, .LANCHOR1+3032 - ldr w0, [x0,#:lo12:.LANCHOR1+3032] + adrp x0, .LANCHOR1+3064 + ldr w0, [x0,#:lo12:.LANCHOR1+3064] cmp w0, 1 - beq .L1984 + beq .L1990 sub w0, w20, w23 - b .L1985 -.L1984: + b .L1991 +.L1990: add x0, x29, 96 add x1, x29, 100 add x2, x29, 104 @@ -12952,50 +12979,32 @@ FtlPrintInfo2buf: bl NandcGetTimeCfg add x19, x19, :lo12:.LANCHOR4 ldr w4, [x29,104] - adrp x1, .LC49 + adrp x1, .LC52 ldr w5, [x29,108] - add x1, x1, :lo12:.LC49 + add x1, x1, :lo12:.LC52 ldr w3, [x29,100] mov x0, x20 ldr w2, [x29,96] bl sprintf add x21, x20, x0, sxtw - adrp x1, .LC50 - mov x0, x21 - add x1, x1, :lo12:.LC50 - add x21, x21, 10 - bl strcpy - ldr w2, [x22,1388] - adrp x1, .LC51 - mov x0, x21 - add x1, x1, :lo12:.LC51 - bl sprintf - add x21, x21, x0, sxtw - ldr w2, [x22,3836] - adrp x1, .LC52 - mov x0, x21 - add x1, x1, :lo12:.LC52 - bl sprintf - add x21, x21, x0, sxtw - ldr w2, [x22,892] adrp x1, .LC53 mov x0, x21 add x1, x1, :lo12:.LC53 - bl sprintf - add x21, x21, x0, sxtw - ldr w2, [x22,880] + add x21, x21, 10 + bl strcpy + ldr w2, [x22,1396] adrp x1, .LC54 mov x0, x21 add x1, x1, :lo12:.LC54 bl sprintf add x21, x21, x0, sxtw - ldr w2, [x22,876] + ldr w2, [x22,3892] adrp x1, .LC55 mov x0, x21 add x1, x1, :lo12:.LC55 bl sprintf add x21, x21, x0, sxtw - ldr w2, [x22,884] + ldr w2, [x22,900] adrp x1, .LC56 mov x0, x21 add x1, x1, :lo12:.LC56 @@ -13007,65 +13016,65 @@ FtlPrintInfo2buf: add x1, x1, :lo12:.LC57 bl sprintf add x21, x21, x0, sxtw - ldr w2, [x22,872] + ldr w2, [x22,884] adrp x1, .LC58 mov x0, x21 add x1, x1, :lo12:.LC58 bl sprintf add x21, x21, x0, sxtw - ldr w2, [x19,128] + ldr w2, [x22,892] adrp x1, .LC59 mov x0, x21 add x1, x1, :lo12:.LC59 - lsr w2, w2, 11 bl sprintf add x21, x21, x0, sxtw - ldr w2, [x19,132] + ldr w2, [x22,896] adrp x1, .LC60 mov x0, x21 add x1, x1, :lo12:.LC60 - lsr w2, w2, 11 bl sprintf add x21, x21, x0, sxtw - ldr w2, [x22,864] + ldr w2, [x22,880] adrp x1, .LC61 mov x0, x21 add x1, x1, :lo12:.LC61 bl sprintf add x21, x21, x0, sxtw - ldr w2, [x22,868] + ldr w2, [x19,128] adrp x1, .LC62 - add x1, x1, :lo12:.LC62 mov x0, x21 + add x1, x1, :lo12:.LC62 + lsr w2, w2, 11 bl sprintf add x21, x21, x0, sxtw - bl FtlBbtCalcTotleCnt - uxth w3, w0 - ldrh w2, [x22,1294] + ldr w2, [x19,132] adrp x1, .LC63 mov x0, x21 add x1, x1, :lo12:.LC63 + lsr w2, w2, 11 bl sprintf add x21, x21, x0, sxtw - ldrh w2, [x22,3544] + ldr w2, [x22,872] adrp x1, .LC64 mov x0, x21 add x1, x1, :lo12:.LC64 bl sprintf add x21, x21, x0, sxtw - ldr w2, [x22,896] + ldr w2, [x22,876] adrp x1, .LC65 - mov x0, x21 add x1, x1, :lo12:.LC65 + mov x0, x21 bl sprintf add x21, x21, x0, sxtw - ldr w2, [x22,900] + bl FtlBbtCalcTotleCnt + uxth w3, w0 + ldrh w2, [x22,1302] adrp x1, .LC66 mov x0, x21 add x1, x1, :lo12:.LC66 bl sprintf add x21, x21, x0, sxtw - ldr w2, [x19,140] + ldrh w2, [x22,3600] adrp x1, .LC67 mov x0, x21 add x1, x1, :lo12:.LC67 @@ -13083,218 +13092,236 @@ FtlPrintInfo2buf: add x1, x1, :lo12:.LC69 bl sprintf add x21, x21, x0, sxtw - ldr w2, [x22,912] + ldr w2, [x19,140] adrp x1, .LC70 mov x0, x21 add x1, x1, :lo12:.LC70 bl sprintf add x21, x21, x0, sxtw - ldrh w2, [x22,3886] + ldr w2, [x22,912] adrp x1, .LC71 mov x0, x21 add x1, x1, :lo12:.LC71 bl sprintf add x21, x21, x0, sxtw - ldrh w2, [x22,3884] + ldr w2, [x22,916] adrp x1, .LC72 mov x0, x21 add x1, x1, :lo12:.LC72 bl sprintf add x21, x21, x0, sxtw - ldr w2, [x25,4048] + ldr w2, [x22,920] adrp x1, .LC73 mov x0, x21 add x1, x1, :lo12:.LC73 bl sprintf add x21, x21, x0, sxtw - ldr w2, [x22,844] + ldrh w2, [x22,3550] adrp x1, .LC74 mov x0, x21 add x1, x1, :lo12:.LC74 bl sprintf add x21, x21, x0, sxtw - ldr w2, [x22,736] + ldrh w2, [x22,3548] adrp x1, .LC75 mov x0, x21 add x1, x1, :lo12:.LC75 bl sprintf add x21, x21, x0, sxtw - ldrh w2, [x22,1462] + ldr w2, [x25,4048] adrp x1, .LC76 mov x0, x21 add x1, x1, :lo12:.LC76 bl sprintf add x21, x21, x0, sxtw - ldrh w2, [x22,748] + ldr w2, [x22,852] adrp x1, .LC77 mov x0, x21 add x1, x1, :lo12:.LC77 bl sprintf add x21, x21, x0, sxtw - ldrh w2, [x22,3916] + ldr w2, [x22,744] adrp x1, .LC78 mov x0, x21 add x1, x1, :lo12:.LC78 bl sprintf add x21, x21, x0, sxtw - ldr w2, [x22,752] + ldrh w2, [x22,1470] adrp x1, .LC79 mov x0, x21 add x1, x1, :lo12:.LC79 bl sprintf add x21, x21, x0, sxtw - ldrh w2, [x22,3840] + ldrh w2, [x22,756] adrp x1, .LC80 mov x0, x21 add x1, x1, :lo12:.LC80 bl sprintf add x21, x21, x0, sxtw - ldrh w2, [x22,1288] + ldrh w2, [x22,3916] adrp x1, .LC81 mov x0, x21 add x1, x1, :lo12:.LC81 bl sprintf add x21, x21, x0, sxtw - ldrh w2, [x22,3554] + ldr w2, [x22,760] adrp x1, .LC82 mov x0, x21 add x1, x1, :lo12:.LC82 bl sprintf add x21, x21, x0, sxtw - ldrb w2, [x22,3558] + ldrh w2, [x22,3896] adrp x1, .LC83 mov x0, x21 add x1, x1, :lo12:.LC83 bl sprintf add x21, x21, x0, sxtw - ldrh w2, [x22,3552] + ldrh w2, [x22,1296] adrp x1, .LC84 mov x0, x21 add x1, x1, :lo12:.LC84 bl sprintf add x21, x21, x0, sxtw - ldrb w2, [x22,3560] + ldrh w2, [x22,3610] adrp x1, .LC85 mov x0, x21 add x1, x1, :lo12:.LC85 bl sprintf add x21, x21, x0, sxtw - ldrh w2, [x22,3556] + ldrb w2, [x22,3614] adrp x1, .LC86 mov x0, x21 add x1, x1, :lo12:.LC86 bl sprintf add x21, x21, x0, sxtw - ldrh w3, [x22,3552] + ldrh w2, [x22,3608] adrp x1, .LC87 - ldr x2, [x22,1176] mov x0, x21 add x1, x1, :lo12:.LC87 - ldrh w2, [x2,x3,lsl 1] bl sprintf add x21, x21, x0, sxtw - ldrh w2, [x22,3602] + ldrb w2, [x22,3616] adrp x1, .LC88 mov x0, x21 add x1, x1, :lo12:.LC88 bl sprintf add x21, x21, x0, sxtw - ldrb w2, [x22,3606] + ldrh w2, [x22,3612] adrp x1, .LC89 mov x0, x21 add x1, x1, :lo12:.LC89 bl sprintf add x21, x21, x0, sxtw - ldrh w2, [x22,3600] + ldrh w3, [x22,3608] adrp x1, .LC90 + ldr x2, [x22,1184] mov x0, x21 add x1, x1, :lo12:.LC90 + ldrh w2, [x2,x3,lsl 1] bl sprintf add x21, x21, x0, sxtw - ldrb w2, [x22,3608] + ldrh w2, [x22,3658] adrp x1, .LC91 mov x0, x21 add x1, x1, :lo12:.LC91 bl sprintf add x21, x21, x0, sxtw - ldrh w2, [x22,3604] + ldrb w2, [x22,3662] adrp x1, .LC92 mov x0, x21 add x1, x1, :lo12:.LC92 bl sprintf add x21, x21, x0, sxtw - ldrh w3, [x22,3600] + ldrh w2, [x22,3656] adrp x1, .LC93 - ldr x2, [x22,1176] mov x0, x21 add x1, x1, :lo12:.LC93 - ldrh w2, [x2,x3,lsl 1] bl sprintf add x21, x21, x0, sxtw - ldrh w2, [x22,3650] + ldrb w2, [x22,3664] adrp x1, .LC94 mov x0, x21 add x1, x1, :lo12:.LC94 bl sprintf add x21, x21, x0, sxtw - ldrb w2, [x22,3654] + ldrh w2, [x22,3660] adrp x1, .LC95 mov x0, x21 add x1, x1, :lo12:.LC95 bl sprintf add x21, x21, x0, sxtw - ldrh w2, [x22,3648] + ldrh w3, [x22,3656] adrp x1, .LC96 + ldr x2, [x22,1184] mov x0, x21 add x1, x1, :lo12:.LC96 + ldrh w2, [x2,x3,lsl 1] bl sprintf add x21, x21, x0, sxtw - ldrb w2, [x22,3656] + ldrh w2, [x22,3706] adrp x1, .LC97 mov x0, x21 add x1, x1, :lo12:.LC97 bl sprintf add x21, x21, x0, sxtw - ldrh w2, [x22,3652] + ldrb w2, [x22,3710] adrp x1, .LC98 mov x0, x21 add x1, x1, :lo12:.LC98 bl sprintf add x21, x21, x0, sxtw - ldrh w2, [x22,3922] + ldrh w2, [x22,3704] adrp x1, .LC99 mov x0, x21 add x1, x1, :lo12:.LC99 bl sprintf add x21, x21, x0, sxtw - ldrb w2, [x22,3926] + ldrb w2, [x22,3712] adrp x1, .LC100 mov x0, x21 add x1, x1, :lo12:.LC100 bl sprintf add x21, x21, x0, sxtw - ldrh w2, [x22,3920] + ldrh w2, [x22,3708] adrp x1, .LC101 mov x0, x21 add x1, x1, :lo12:.LC101 bl sprintf add x21, x21, x0, sxtw - ldrb w2, [x22,3928] + ldrh w2, [x22,3922] adrp x1, .LC102 mov x0, x21 add x1, x1, :lo12:.LC102 bl sprintf add x21, x21, x0, sxtw - ldrh w2, [x22,3924] + ldrb w2, [x22,3926] adrp x1, .LC103 mov x0, x21 add x1, x1, :lo12:.LC103 bl sprintf add x21, x21, x0, sxtw - ldr w3, [x22,860] + ldrh w2, [x22,3920] adrp x1, .LC104 - ldr w2, [x22,3908] + mov x0, x21 add x1, x1, :lo12:.LC104 + bl sprintf + add x21, x21, x0, sxtw + ldrb w2, [x22,3928] + adrp x1, .LC105 + mov x0, x21 + add x1, x1, :lo12:.LC105 + bl sprintf + add x21, x21, x0, sxtw + ldrh w2, [x22,3924] + adrp x1, .LC106 + mov x0, x21 + add x1, x1, :lo12:.LC106 + bl sprintf + add x21, x21, x0, sxtw + ldr w3, [x22,868] + adrp x1, .LC107 + ldr w2, [x22,652] + add x1, x1, :lo12:.LC107 ldr w4, [x22,4052] mov x0, x21 ldr w5, [x22,4044] @@ -13303,138 +13330,138 @@ FtlPrintInfo2buf: bl sprintf add x19, x21, x0, sxtw ldr w2, [x22,4040] - adrp x1, .LC105 - mov x0, x19 - add x1, x1, :lo12:.LC105 - bl sprintf - add x19, x19, x0, sxtw - ldr w2, [x22,4064] - adrp x1, .LC106 - mov x0, x19 - add x1, x1, :lo12:.LC106 - bl sprintf - add x19, x19, x0, sxtw - ldrh w2, [x22,944] - adrp x1, .LC107 - mov x0, x19 - add x1, x1, :lo12:.LC107 - bl sprintf - add x19, x19, x0, sxtw - ldrh w2, [x22,946] adrp x1, .LC108 mov x0, x19 add x1, x1, :lo12:.LC108 bl sprintf add x19, x19, x0, sxtw - ldr w2, [x22,932] + ldr w2, [x22,4064] adrp x1, .LC109 mov x0, x19 add x1, x1, :lo12:.LC109 bl sprintf add x19, x19, x0, sxtw - ldrh w2, [x22,948] + ldrh w2, [x22,952] adrp x1, .LC110 - add x1, x1, :lo12:.LC110 mov x0, x19 + add x1, x1, :lo12:.LC110 bl sprintf add x19, x19, x0, sxtw - bl GetFreeBlockMinEraseCount - uxth w2, w0 + ldrh w2, [x22,954] adrp x1, .LC111 mov x0, x19 add x1, x1, :lo12:.LC111 bl sprintf add x19, x19, x0, sxtw - ldrh w0, [x22,3544] - bl GetFreeBlockMaxEraseCount - uxth w2, w0 + ldr w2, [x22,940] adrp x1, .LC112 mov x0, x19 add x1, x1, :lo12:.LC112 bl sprintf add x19, x19, x0, sxtw + ldrh w2, [x22,956] + adrp x1, .LC113 + add x1, x1, :lo12:.LC113 + mov x0, x19 + bl sprintf + add x19, x19, x0, sxtw + bl GetFreeBlockMinEraseCount + uxth w2, w0 + adrp x1, .LC114 + mov x0, x19 + add x1, x1, :lo12:.LC114 + bl sprintf + add x19, x19, x0, sxtw + ldrh w0, [x22,3600] + bl GetFreeBlockMaxEraseCount + uxth w2, w0 + adrp x1, .LC115 + mov x0, x19 + add x1, x1, :lo12:.LC115 + bl sprintf + add x19, x19, x0, sxtw ldrh w0, [x22,3920] mov w1, 65535 cmp w0, w1 - beq .L1986 + beq .L1992 ubfiz x2, x0, 1, 16 - ldr x3, [x22,1176] - adrp x1, .LC113 + ldr x3, [x22,1184] + adrp x1, .LC116 mov x0, x19 - add x1, x1, :lo12:.LC113 + add x1, x1, :lo12:.LC116 ldrh w2, [x3,x2] bl sprintf add x19, x19, x0, sxtw -.L1986: +.L1992: mov w0, 0 - adrp x22, .LC114 + adrp x22, .LC117 mov w20, 0 mov w27, 65535 bl List_get_gc_head_node mov w26, 6 uxth w3, w0 - add x22, x22, :lo12:.LC114 -.L1988: + add x22, x22, :lo12:.LC117 +.L1994: cmp w3, w27 - beq .L1987 + beq .L1993 add x21, x24, :lo12:.LANCHOR2 ubfiz x6, x3, 1, 16 umull x25, w3, w26 mov x0, x19 mov w2, w20 - ldr x5, [x21,1272] + ldr x5, [x21,1280] mov x1, x22 - ldr x4, [x21,1176] + ldr x4, [x21,1184] add w20, w20, 1 - ldr x7, [x21,1160] + ldr x7, [x21,1168] add x5, x5, x25 ldrh w4, [x4,x6] ldrh w5, [x5,4] ldrh w6, [x7,x6] bl sprintf add x19, x19, x0, sxtw - ldr x0, [x21,1272] + ldr x0, [x21,1280] cmp w20, 16 ldrh w3, [x0,x25] - bne .L1988 -.L1987: + bne .L1994 +.L1993: add x1, x24, :lo12:.LANCHOR2 - adrp x22, .LC115 + adrp x22, .LC118 mov w20, 0 mov w27, 65535 mov w26, 6 - add x22, x22, :lo12:.LC115 - ldr x0, [x1,3536] - ldr x3, [x1,1272] + add x22, x22, :lo12:.LC118 + ldr x0, [x1,3592] + ldr x3, [x1,1280] sub x3, x0, x3 mov x0, -6148914691236517206 asr x3, x3, 1 madd x3, x0, x3, x3 uxth w3, w3 -.L1990: +.L1996: cmp w3, w27 - beq .L1989 + beq .L1995 add x21, x24, :lo12:.LANCHOR2 ubfiz x5, x3, 1, 16 umull x25, w3, w26 mov x0, x19 mov w2, w20 - ldr x4, [x21,1272] + ldr x4, [x21,1280] mov x1, x22 - ldr x6, [x21,1160] + ldr x6, [x21,1168] add w20, w20, 1 add x4, x4, x25 ldrh w5, [x6,x5] ldrh w4, [x4,4] bl sprintf add x19, x19, x0, sxtw - ldr x0, [x21,1272] + ldr x0, [x21,1280] cmp w20, 4 ldrh w3, [x0,x25] - bne .L1990 -.L1989: + bne .L1996 +.L1995: sub w0, w19, w23 -.L1985: +.L1991: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -13448,11 +13475,11 @@ FtlPrintInfo2buf: .type ftl_proc_ftl_read, %function ftl_proc_ftl_read: stp x29, x30, [sp, -32]! - adrp x1, .LC42 - adrp x2, .LC116 + adrp x1, .LC45 + adrp x2, .LC119 add x29, sp, 0 - add x1, x1, :lo12:.LC42 - add x2, x2, :lo12:.LC116 + add x1, x1, :lo12:.LC45 + add x2, x2, :lo12:.LC119 stp x19, x20, [sp,16] mov x20, x0 bl sprintf @@ -13480,109 +13507,109 @@ GetSwlReplaceBlock: adrp x19, .LANCHOR2 ldr w3, [x1,140] add x1, x19, :lo12:.LANCHOR2 - ldr w2, [x1,912] + ldr w2, [x1,920] cmp w3, w2 - bcs .L1995 - str wzr, [x1,896] - ldrh w3, [x1,748] - ldr x5, [x1,1160] + bcs .L2001 + str wzr, [x1,904] + ldrh w3, [x1,756] + ldr x5, [x1,1168] mov x1, 0 -.L1996: +.L2002: cmp w3, w1 - bls .L2028 + bls .L2034 add x4, x19, :lo12:.LANCHOR2 ldrh w6, [x5,x1,lsl 1] add x1, x1, 1 - ldr w2, [x4,896] + ldr w2, [x4,904] add w2, w6, w2 - str w2, [x4,896] - b .L1996 -.L2028: + str w2, [x4,904] + b .L2002 +.L2034: add x2, x19, :lo12:.LANCHOR2 add x4, x0, :lo12:.LANCHOR4 - ldr w1, [x2,896] + ldr w1, [x2,904] udiv w3, w1, w3 str w3, [x4,140] - ldr w3, [x2,900] + ldr w3, [x2,908] sub w1, w1, w3 - ldrh w3, [x2,800] + ldrh w3, [x2,808] udiv w1, w1, w3 - str w1, [x2,896] - b .L1998 -.L1995: - ldr w2, [x1,908] + str w1, [x2,904] + b .L2004 +.L2001: + ldr w2, [x1,916] cmp w3, w2 - bls .L1998 + bls .L2004 add w2, w2, 1 - str w2, [x1,908] + str w2, [x1,916] mov w1, 0 -.L2000: +.L2006: add x2, x19, :lo12:.LANCHOR2 - ldrh w3, [x2,748] + ldrh w3, [x2,756] cmp w1, w3 - bcs .L1998 + bcs .L2004 ubfiz x3, x1, 1, 32 - ldr x4, [x2,1160] + ldr x4, [x2,1168] add w1, w1, 1 ldrh w2, [x4,x3] add w2, w2, 1 strh w2, [x4,x3] - b .L2000 -.L1998: + b .L2006 +.L2004: add x1, x19, :lo12:.LANCHOR2 add x0, x0, :lo12:.LANCHOR4 - ldr w21, [x1,912] + ldr w21, [x1,920] ldr w23, [x0,140] add w0, w21, 256 cmp w0, w23 - bls .L2003 - ldr w2, [x1,908] + bls .L2009 + ldr w2, [x1,916] add w0, w21, 768 cmp w0, w2 - bls .L2003 - ldr w0, [x1,3908] - cbz w0, .L2006 + bls .L2009 + ldr w0, [x1,652] + cbz w0, .L2012 cmp w21, 30 - bls .L2003 -.L2006: + bls .L2009 +.L2012: mov w0, 65535 - b .L2005 -.L2003: + b .L2011 +.L2009: add x0, x19, :lo12:.LANCHOR2 - ldrh w0, [x0,3544] + ldrh w0, [x0,3600] add w0, w0, w0, lsl 1 lsr w0, w0, 2 bl GetFreeBlockMaxEraseCount uxth w6, w0 add w0, w21, 64 cmp w6, w0 - bcs .L2015 + bcs .L2021 cmp w21, 30 - bhi .L2006 -.L2015: + bhi .L2012 +.L2021: add x1, x19, :lo12:.LANCHOR2 - ldr x3, [x1,3512] - cbz x3, .L2006 + ldr x3, [x1,3568] + cbz x3, .L2012 mov w26, 65535 mov x0, -6148914691236517206 - ldrh w9, [x1,748] + ldrh w9, [x1,756] mov w20, w26 - ldr x7, [x1,1272] + ldr x7, [x1,1280] mov w8, w26 - ldr x25, [x1,1160] + ldr x25, [x1,1168] add x0, x0, 1 mov w1, 0 mov w10, 6 -.L2008: +.L2014: ldrh w5, [x3] cmp w5, w8 - beq .L2010 + beq .L2016 add w1, w1, 1 uxth w1, w1 cmp w1, w9 - bhi .L2006 + bhi .L2012 ldrh w2, [x3,4] - cbz w2, .L2009 + cbz w2, .L2015 sub x4, x3, x7 asr x4, x4, 1 mul x4, x4, x0 @@ -13590,61 +13617,61 @@ GetSwlReplaceBlock: and x4, x4, 65535 ldrh w2, [x25,x4,lsl 1] cmp w2, w21 - bls .L2014 + bls .L2020 cmp w2, w26 - bcs .L2009 + bcs .L2015 mov w26, w2 mov w20, w3 -.L2009: +.L2015: umull x3, w5, w10 add x3, x7, x3 - b .L2008 -.L2014: + b .L2014 +.L2020: mov w20, w3 -.L2010: +.L2016: mov w0, 65535 cmp w20, w0 - beq .L2006 + beq .L2012 ubfiz x24, x20, 1, 16 ldrh w22, [x25,x24] cmp w22, w21 - bls .L2012 + bls .L2018 str x6, [x29,88] bl GetFreeBlockMinEraseCount ldr x6, [x29,88] cmp w21, w0, uxth - bcs .L2012 + bcs .L2018 add x0, x19, :lo12:.LANCHOR2 - str w26, [x0,912] -.L2012: + str w26, [x0,920] +.L2018: cmp w22, w23 - bcs .L2006 + bcs .L2012 add w0, w22, 128 cmp w6, w0 - ble .L2006 + ble .L2012 add w0, w22, 256 cmp w0, w23 - bcc .L2013 + bcc .L2019 add x0, x19, :lo12:.LANCHOR2 add w22, w22, 768 - ldr w0, [x0,908] + ldr w0, [x0,916] cmp w22, w0 - bcs .L2006 -.L2013: + bcs .L2012 +.L2019: add x19, x19, :lo12:.LANCHOR2 - adrp x0, .LC117 + adrp x0, .LC120 ldrh w5, [x25,x24] - add x0, x0, :lo12:.LC117 + add x0, x0, :lo12:.LC120 mov w1, w20 mov w2, w23 - ldr x4, [x19,1176] - ldr w3, [x19,908] + ldr x4, [x19,1184] + ldr w3, [x19,916] ldrh w4, [x4,x24] bl printk mov w0, 1 - str w0, [x19,920] + str w0, [x19,928] mov w0, w20 -.L2005: +.L2011: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -13661,13 +13688,13 @@ free_data_superblock: mov w1, 65535 cmp w0, w1 add x29, sp, 0 - beq .L2030 - adrp x2, .LANCHOR2+1176 + beq .L2036 + adrp x2, .LANCHOR2+1184 ubfiz x1, x0, 1, 16 - ldr x2, [x2,#:lo12:.LANCHOR2+1176] + ldr x2, [x2,#:lo12:.LANCHOR2+1184] strh wzr, [x2,x1] bl INSERT_FREE_LIST -.L2030: +.L2036: mov w0, 0 ldp x29, x30, [sp], 16 ret @@ -13684,212 +13711,212 @@ allocate_data_superblock: add x19, x21, :lo12:.LANCHOR2 stp x23, x24, [sp,48] stp x25, x26, [sp,64] - ldr w1, [x19,1392] + ldr w1, [x19,1400] stp x27, x28, [sp,80] - cbnz w1, .L2032 + cbnz w1, .L2038 mov x20, x0 - add x23, x19, 3648 + add x23, x19, 3704 adrp x22, .LANCHOR0 mov w24, 7 - add x25, x19, 3536 -.L2033: + add x25, x19, 3592 +.L2039: cmp x20, x23 - bne .L2034 - ldrh w2, [x19,3544] - ldr w4, [x19,920] + bne .L2040 + ldrh w2, [x19,3600] + ldr w4, [x19,928] lsr w3, w2, 1 add w1, w3, 1 mul w0, w2, w4 add w1, w1, w0, lsr 2 - ldr w0, [x19,3908] + ldr w0, [x19,652] uxth w1, w1 - cbz w0, .L2035 - ldr w0, [x19,912] + cbz w0, .L2041 + ldr w0, [x19,920] cmp w0, 29 - bhi .L2035 + bhi .L2041 cmp w0, 2 mov w1, 0 - bls .L2036 - tbz x2, 0, .L2063 - cbz w4, .L2036 -.L2063: + bls .L2042 + tbz x2, 0, .L2069 + cbz w4, .L2042 +.L2069: mov w1, w3 - b .L2035 -.L2034: + b .L2041 +.L2040: ldrb w0, [x20,8] mov w1, 0 cmp w0, 1 - bne .L2036 - ldrh w0, [x19,760] + bne .L2042 + ldrh w0, [x19,768] cmp w0, 1 - beq .L2036 + beq .L2042 add x0, x22, :lo12:.LANCHOR0 ldrb w0, [x0,136] - cbnz w0, .L2036 - ldr w2, [x19,3908] - ldrh w0, [x19,3544] + cbnz w0, .L2042 + ldr w2, [x19,652] + ldrh w0, [x19,3600] lsr w1, w0, 3 - cbz w2, .L2035 - ldr w2, [x19,912] + cbz w2, .L2041 + ldr w2, [x19,920] cmp w2, 1 - bhi .L2035 + bhi .L2041 mul w1, w0, w24 lsr w1, w1, 3 -.L2035: - cbz w1, .L2036 +.L2041: + cbz w1, .L2042 sub w1, w1, #1 uxth w1, w1 -.L2036: +.L2042: ldrb w2, [x20,8] mov x0, x25 bl List_pop_index_node uxth w27, w0 - ldrh w0, [x19,3544] + ldrh w0, [x19,3600] sub w0, w0, #1 - strh w0, [x19,3544] + strh w0, [x19,3600] strh w27, [x20] mov x0, x20 bl make_superblock ldrb w0, [x20,7] - cbz w0, .L2038 + cbz w0, .L2044 mov x0, 0 - ldrh w5, [x19,740] + ldrh w5, [x19,748] mov w26, w0 mov x3, 56 mov w6, 65535 - b .L2039 -.L2038: + b .L2045 +.L2044: ubfiz x27, x27, 1, 16 - ldr x0, [x19,1176] + ldr x0, [x19,1184] mov w1, -1 strh w1, [x0,x27] - b .L2033 -.L2042: - ldr x4, [x19,1008] + b .L2039 +.L2048: + ldr x4, [x19,1016] madd x1, x0, x3, x4 str xzr, [x1,16] str xzr, [x1,8] add x1, x20, x0, lsl 1 ldrh w1, [x1,16] cmp w1, w6 - beq .L2041 + beq .L2047 umull x2, w26, w3 add w26, w26, 1 lsl w1, w1, 10 add x2, x4, x2 uxth w26, w26 str w1, [x2,4] -.L2041: +.L2047: add x0, x0, 1 -.L2039: +.L2045: cmp w5, w0, uxth - bhi .L2042 - add x0, x19, 3552 + bhi .L2048 + add x0, x19, 3608 uxtw x28, w27 cmp x20, x0 - bne .L2043 - ldr w1, [x19,3908] - cbz w1, .L2043 - ldr x1, [x19,1160] + bne .L2049 + ldr w1, [x19,652] + cbz w1, .L2049 + ldr x1, [x19,1168] ldrh w1, [x1,x28,lsl 1] cmp w1, 30 - bls .L2043 - strb wzr, [x19,3560] -.L2043: + bls .L2049 + strb wzr, [x19,3616] +.L2049: ldrb w0, [x20,8] - cbnz w0, .L2044 + cbnz w0, .L2050 lsl x0, x28, 1 - ldr x1, [x19,1160] + ldr x1, [x19,1168] mov w2, 2 ldrh w3, [x1,x0] - cbz w3, .L2088 - ldrh w2, [x19,800] + cbz w3, .L2094 + ldrh w2, [x19,808] add w2, w3, w2 -.L2088: +.L2094: strh w2, [x1,x0] mov w1, 0 - ldr w0, [x19,896] + ldr w0, [x19,904] add w0, w0, 1 - str w0, [x19,896] + str w0, [x19,904] mov w0, w27 bl ftl_set_blk_mode - b .L2047 -.L2044: + b .L2053 +.L2050: lsl x0, x28, 1 - ldr x2, [x19,1160] + ldr x2, [x19,1168] ldrh w1, [x2,x0] add w1, w1, 1 strh w1, [x2,x0] - ldr w0, [x19,900] + ldr w0, [x19,908] add w0, w0, 1 - str w0, [x19,900] + str w0, [x19,908] mov w0, w27 - bl ftl_set_blk_mode.part.18 -.L2047: + bl ftl_set_blk_mode.part.17 +.L2053: lsl x28, x28, 1 - ldr x0, [x19,1160] - ldr w1, [x19,908] + ldr x0, [x19,1168] + ldr w1, [x19,916] ldrh w0, [x0,x28] cmp w0, w1 - bls .L2048 - str w0, [x19,908] -.L2048: - ldrh w1, [x19,800] + bls .L2054 + str w0, [x19,916] +.L2054: + ldrh w1, [x19,808] mov x3, 56 - ldr w2, [x19,896] - ldr w0, [x19,900] + ldr w2, [x19,904] + ldr w0, [x19,908] madd w0, w1, w2, w0 - ldrh w1, [x19,748] + ldrh w1, [x19,756] udiv w0, w0, w1 adrp x1, .LANCHOR4+140 str w0, [x1,#:lo12:.LANCHOR4+140] - ldr x1, [x19,1152] + ldr x1, [x19,1160] ldr w0, [x1,16] add w0, w0, 1 str w0, [x1,16] mov x0, 0 -.L2049: +.L2055: cmp w26, w0, uxth - bls .L2090 - ldr x1, [x19,1008] + bls .L2096 + ldr x1, [x19,1016] madd x1, x0, x3, x1 add x0, x0, 1 ldr w2, [x1,4] and w2, w2, -1024 str w2, [x1,4] - b .L2049 -.L2090: + b .L2055 +.L2096: add x0, x22, :lo12:.LANCHOR0 ldrb w0, [x0,136] - cbz w0, .L2051 + cbz w0, .L2057 ldrb w0, [x20,8] cmp w0, 1 - ldr x0, [x19,1008] - bne .L2052 + ldr x0, [x19,1016] + bne .L2058 mov w1, 0 - b .L2089 -.L2052: + b .L2095 +.L2058: mov w1, 1 -.L2089: +.L2095: mov w2, w26 bl FlashEraseBlocks -.L2051: +.L2057: ldrb w1, [x20,8] mov w2, w26 - ldr x0, [x19,1008] + ldr x0, [x19,1016] bl FlashEraseBlocks mov x1, 0 mov x4, 56 mov w2, w1 -.L2053: +.L2059: cmp w26, w1, uxth - bls .L2091 + bls .L2097 mul x0, x1, x4 - ldr x3, [x19,1008] + ldr x3, [x19,1016] add x5, x3, x0 ldr w3, [x3,x0] cmn w3, #1 - bne .L2054 + bne .L2060 ldr w0, [x5,4] add w2, w2, 1 str x4, [x29,104] @@ -13908,38 +13935,38 @@ allocate_data_superblock: ldrb w0, [x20,7] sub w0, w0, #1 strb w0, [x20,7] -.L2054: +.L2060: add x1, x1, 1 - b .L2053 -.L2091: - cbz w2, .L2056 + b .L2059 +.L2097: + cbz w2, .L2062 mov w0, w27 bl update_multiplier_value bl FtlBbmTblFlush -.L2056: +.L2062: ldrb w0, [x20,7] - cbnz w0, .L2057 - ldr x0, [x19,1176] + cbnz w0, .L2063 + ldr x0, [x19,1184] mov w1, -1 strh w1, [x0,x28] - b .L2033 -.L2057: + b .L2039 +.L2063: add x21, x21, :lo12:.LANCHOR2 strh wzr, [x20,2] strb wzr, [x20,6] - ldrh w1, [x21,810] + ldrh w1, [x21,818] strh w27, [x20] mul w0, w0, w1 - ldr w1, [x21,864] + ldr w1, [x21,872] str w1, [x20,12] uxth w0, w0 add w1, w1, 1 strh w0, [x20,4] - str w1, [x21,864] - ldr x1, [x21,1176] + str w1, [x21,872] + ldr x1, [x21,1184] ldrh w2, [x20] strh w0, [x1,x2,lsl 1] -.L2032: +.L2038: mov w0, 0 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -13961,28 +13988,28 @@ FtlGcBufInit: mov w4, 4 str wzr, [x0,#:lo12:.LANCHOR4+144] mov w10, 56 -.L2093: +.L2099: add x2, x7, :lo12:.LANCHOR2 adrp x6, .LANCHOR2 - ldrh w0, [x2,740] + ldrh w0, [x2,748] cmp w1, w0 - bcs .L2097 + bcs .L2103 umull x3, w1, w8 - ldr x5, [x2,1096] - ldr x6, [x2,1064] + ldr x5, [x2,1104] + ldr x6, [x2,1072] add x0, x5, x3 str w9, [x0,16] - ldrh w0, [x2,820] + ldrh w0, [x2,828] mul w0, w1, w0 sdiv w0, w0, w4 add x0, x6, x0, sxtw 2 str x0, [x5,x3] - ldrh w0, [x2,822] - ldr x6, [x2,1096] - ldr x11, [x2,1120] + ldrh w0, [x2,830] + ldr x6, [x2,1104] + ldr x11, [x2,1128] mul w0, w1, w0 add x5, x6, x3 - ldr x2, [x2,1016] + ldr x2, [x2,1024] sdiv w0, w0, w4 add x0, x11, x0, sxtw 2 str x0, [x5,8] @@ -13994,28 +14021,28 @@ FtlGcBufInit: str x2, [x0,8] ldr x2, [x5,8] str x2, [x0,16] - b .L2093 -.L2097: + b .L2099 +.L2103: mov w7, 24 mov w4, 4 -.L2095: +.L2101: add x1, x6, :lo12:.LANCHOR2 - ldr w2, [x1,1032] + ldr w2, [x1,1040] cmp w0, w2 - bcs .L2098 + bcs .L2104 umull x3, w0, w7 - ldr x5, [x1,1096] - ldr x8, [x1,1064] + ldr x5, [x1,1104] + ldr x8, [x1,1072] add x2, x5, x3 str wzr, [x2,16] - ldrh w2, [x1,820] + ldrh w2, [x1,828] mul w2, w0, w2 sdiv w2, w2, w4 add x2, x8, x2, sxtw 2 str x2, [x5,x3] - ldrh w2, [x1,822] - ldr x5, [x1,1096] - ldr x1, [x1,1120] + ldrh w2, [x1,830] + ldr x5, [x1,1104] + ldr x1, [x1,1128] mul w2, w0, w2 add x3, x5, x3 add w0, w0, 1 @@ -14023,8 +14050,8 @@ FtlGcBufInit: uxth w0, w0 add x1, x1, x2, sxtw 2 str x1, [x3,8] - b .L2095 -.L2098: + b .L2101 +.L2104: ret .size FtlGcBufInit, .-FtlGcBufInit .align 2 @@ -14039,7 +14066,7 @@ FtlVariablesInit: adrp x19, .LANCHOR2 add x19, x19, :lo12:.LANCHOR2 add x0, x0, :lo12:.LANCHOR4 - ldrh w2, [x19,832] + ldrh w2, [x19,840] strh w1, [x0,160] mov w1, -1 str xzr, [x0,152] @@ -14048,21 +14075,21 @@ FtlVariablesInit: mov w1, 0 str wzr, [x0,164] str wzr, [x0,168] - ldr x0, [x19,1200] - str wzr, [x19,3908] - strh wzr, [x19,1384] + ldr x0, [x19,1208] + str wzr, [x19,652] + strh wzr, [x19,1392] bl ftl_memset - ldrh w2, [x19,750] + ldrh w2, [x19,758] mov w1, 0 - ldr x0, [x19,1160] + ldr x0, [x19,1168] lsl w2, w2, 1 bl ftl_memset - ldrh w2, [x19,750] + ldrh w2, [x19,758] mov w1, 0 - ldr x0, [x19,1144] + ldr x0, [x19,1152] lsl w2, w2, 1 bl ftl_memset - add x0, x19, 3856 + add x0, x19, 3520 mov w1, 0 mov w2, 48 bl ftl_memset @@ -14086,34 +14113,34 @@ FtlGcBufFree: add x2, x2, :lo12:.LANCHOR2 mov w7, 56 mov w9, 24 - ldr w8, [x2,1032] - ldr x5, [x2,1096] -.L2101: + ldr w8, [x2,1040] + ldr x5, [x2,1104] +.L2107: cmp w3, w1 - bcs .L2100 + bcs .L2106 umull x4, w3, w7 mov w2, 0 add x4, x0, x4 -.L2106: +.L2112: cmp w2, w8 - bcs .L2103 + bcs .L2109 umull x6, w2, w9 add x10, x5, x6 ldr x11, [x5,x6] ldr x6, [x4,8] cmp x11, x6 - bne .L2102 + bne .L2108 str wzr, [x10,16] - b .L2103 -.L2102: + b .L2109 +.L2108: add w2, w2, 1 uxth w2, w2 - b .L2106 -.L2103: + b .L2112 +.L2109: add w3, w3, 1 uxth w3, w3 - b .L2101 -.L2100: + b .L2107 +.L2106: ret .size FtlGcBufFree, .-FtlGcBufFree .align 2 @@ -14125,20 +14152,20 @@ FtlGcBufAlloc: add x2, x2, :lo12:.LANCHOR2 mov w8, 1 mov w9, 56 - ldr w5, [x2,1032] - ldr x6, [x2,1096] + ldr w5, [x2,1040] + ldr x6, [x2,1104] mov w2, 0 -.L2108: +.L2114: cmp w2, w1 - bcs .L2114 + bcs .L2120 mov w3, 0 -.L2112: +.L2118: cmp w3, w5 - bcs .L2110 + bcs .L2116 umull x4, w3, w7 add x4, x6, x4 ldr w10, [x4,16] - cbnz w10, .L2109 + cbnz w10, .L2115 umull x3, w2, w9 str w8, [x4,16] add x3, x0, x3 @@ -14146,16 +14173,16 @@ FtlGcBufAlloc: str x10, [x3,8] ldr x4, [x4,8] str x4, [x3,16] - b .L2110 -.L2109: + b .L2116 +.L2115: add w3, w3, 1 uxth w3, w3 - b .L2112 -.L2110: + b .L2118 +.L2116: add w2, w2, 1 uxth w2, w2 - b .L2108 -.L2114: + b .L2114 +.L2120: ret .size FtlGcBufAlloc, .-FtlGcBufAlloc .align 2 @@ -14165,22 +14192,22 @@ IsBlkInGcList: adrp x1, .LANCHOR4+176 uxth w0, w0 ldrh w2, [x1,#:lo12:.LANCHOR4+176] - adrp x1, .LANCHOR2+968 - ldr x3, [x1,#:lo12:.LANCHOR2+968] + adrp x1, .LANCHOR2+976 + ldr x3, [x1,#:lo12:.LANCHOR2+976] mov x1, 0 -.L2116: +.L2122: cmp w2, w1, uxth - bls .L2120 + bls .L2126 add x1, x1, 1 add x4, x3, x1, lsl 1 ldrh w4, [x4,-2] cmp w4, w0 - bne .L2116 + bne .L2122 mov w0, 1 - b .L2117 -.L2120: + b .L2123 +.L2126: mov w0, 0 -.L2117: +.L2123: ret .size IsBlkInGcList, .-IsBlkInGcList .align 2 @@ -14204,35 +14231,35 @@ FtlGcUpdatePage: ldrh w8, [x4,176] adrp x4, .LANCHOR2 add x5, x4, :lo12:.LANCHOR2 - ldr x7, [x5,968] -.L2122: + ldr x7, [x5,976] +.L2128: uxth w5, w6 cmp w5, w8 - bcs .L2126 + bcs .L2132 add x6, x6, 1 add x10, x7, x6, lsl 1 ldrh w10, [x10,-2] cmp w10, w9 - bne .L2122 -.L2126: + bne .L2128 +.L2132: cmp w5, w8 - bne .L2124 + bne .L2130 ubfiz x5, x5, 1, 16 strh w0, [x7,x5] add x0, x3, :lo12:.LANCHOR4 ldrh w5, [x0,176] add w5, w5, 1 strh w5, [x0,176] -.L2124: +.L2130: add x3, x3, :lo12:.LANCHOR4 add x4, x4, :lo12:.LANCHOR2 mov w0, 12 ldrh w5, [x3,178] - ldr x6, [x4,976] + ldr x6, [x4,984] umull x5, w5, w0 add x6, x6, x5 str w1, [x6,4] - ldr x1, [x4,976] + ldr x1, [x4,984] add x0, x1, x5 str w2, [x0,8] str w19, [x1,x5] @@ -14255,15 +14282,15 @@ FtlGcPageVarInit: adrp x19, .LANCHOR2 add x19, x19, :lo12:.LANCHOR2 add x0, x0, :lo12:.LANCHOR4 - ldrh w2, [x19,814] + ldrh w2, [x19,822] strh wzr, [x0,176] strh wzr, [x0,178] lsl w2, w2, 1 - ldr x0, [x19,968] - bl ftl_memset - ldrh w3, [x19,814] - mov w2, 12 ldr x0, [x19,976] + bl ftl_memset + ldrh w3, [x19,822] + mov w2, 12 + ldr x0, [x19,984] mov w1, 255 mul w2, w3, w2 bl ftl_memset @@ -14288,63 +14315,63 @@ FtlGcScanTempBlk: stp x25, x26, [sp,64] stp x27, x28, [sp,80] str x20, [x29,136] - ldrh w26, [x0,3036] + ldrh w26, [x0,3068] mov w0, 65535 cmp w26, w0 - beq .L2151 - cbnz w26, .L2130 - b .L2131 -.L2151: + beq .L2157 + cbnz w26, .L2136 + b .L2137 +.L2157: mov w26, 0 -.L2130: - adrp x0, .LANCHOR2+810 +.L2136: + adrp x0, .LANCHOR2+818 ldr w1, [x29,152] - ldrh w0, [x0,#:lo12:.LANCHOR2+810] + ldrh w0, [x0,#:lo12:.LANCHOR2+818] cmp w1, w0 - bne .L2132 -.L2131: + bne .L2138 +.L2137: bl FtlGcPageVarInit -.L2132: +.L2138: mov w0, -1 adrp x25, .LANCHOR2 str w0, [x29,156] - adrp x0, .LC118 - add x0, x0, :lo12:.LC118 + adrp x0, .LC121 + add x0, x0, :lo12:.LC121 mov w22, 0 mov w23, 65535 mov x21, x25 mov x24, x25 str x0, [x29,128] -.L2145: +.L2151: ldrh w0, [x19] strb wzr, [x19,8] cmp w0, w23 - beq .L2152 -.L2134: -.L2148: + beq .L2158 +.L2140: +.L2154: add x0, x25, :lo12:.LANCHOR2 mov x2, x19 mov w20, 0 - ldrh w5, [x0,740] - ldrh w8, [x0,822] + ldrh w5, [x0,748] + ldrh w8, [x0,830] add x5, x19, x5, lsl 1 -.L2135: +.L2141: cmp x2, x5 - beq .L2160 + beq .L2166 ldrh w1, [x2,16] cmp w1, w23 - beq .L2136 + beq .L2142 add x6, x21, :lo12:.LANCHOR2 mov w0, 56 orr w1, w26, w1, lsl 10 mov w3, 4 umull x0, w20, w0 - ldr x7, [x6,984] + ldr x7, [x6,992] add w4, w20, 1 add x7, x7, x0 str w1, [x7,4] - ldr x1, [x6,984] - ldr x6, [x6,1120] + ldr x1, [x6,992] + ldr x6, [x6,1128] add x0, x1, x0 mul w1, w20, w8 uxth w20, w4 @@ -14352,24 +14379,24 @@ FtlGcScanTempBlk: sdiv w1, w1, w3 add x1, x6, x1, sxtw 2 str x1, [x0,16] -.L2136: +.L2142: add x2, x2, 2 - b .L2135 -.L2160: + b .L2141 +.L2166: add x0, x21, :lo12:.LANCHOR2 mov w1, w20 mov w2, 0 mov x27, 0 - ldr x0, [x0,984] + ldr x0, [x0,992] bl FlashReadPages -.L2138: +.L2144: cmp w20, w27, uxth - bls .L2161 + bls .L2167 mov x0, 56 mul x28, x27, x0 add x0, x21, :lo12:.LANCHOR2 str x0, [x29,144] - ldr x8, [x0,984] + ldr x8, [x0,992] str x8, [x29,104] add x1, x8, x28 str x1, [x29,112] @@ -14381,93 +14408,93 @@ FtlGcScanTempBlk: ldr x8, [x29,104] ldr x2, [x29,120] ldr w0, [x8,x28] - cbnz w0, .L2139 + cbnz w0, .L2145 ldr x1, [x29,112] add x27, x27, 1 ldr x5, [x1,16] ldrh w0, [x5] cmp w0, w23 - bne .L2140 + bne .L2146 adrp x0, .LANCHOR4+168 mov w1, 1 str w1, [x0,#:lo12:.LANCHOR4+168] - b .L2133 -.L2140: + b .L2139 +.L2146: mov w1, w2 ldr w0, [x5,12] ldr w2, [x5,8] bl FtlGcUpdatePage - b .L2138 -.L2139: + b .L2144 +.L2145: ldr x0, [x29,128] ldrh w1, [x19] bl printk ldr x0, [x29,144] - ldr w0, [x0,3908] - cbnz w0, .L2141 + ldr w0, [x0,652] + cbnz w0, .L2147 adrp x0, .LANCHOR0+136 ldrb w0, [x0,#:lo12:.LANCHOR0+136] - cbz w0, .L2142 -.L2141: + cbz w0, .L2148 +.L2147: add x0, x24, :lo12:.LANCHOR2 ldrh w1, [x19] - ldr x0, [x0,1160] + ldr x0, [x0,1168] ldrh w0, [x0,x1,lsl 1] cmp w0, 119 - bls .L2143 -.L2142: + bls .L2149 +.L2148: add x0, x24, :lo12:.LANCHOR2 - ldr x0, [x0,984] + ldr x0, [x0,992] ldr w0, [x0,x28] cmn w0, #1 - bne .L2144 -.L2143: + bne .L2150 +.L2149: add x0, x24, :lo12:.LANCHOR2 - ldr x0, [x0,984] + ldr x0, [x0,992] add x5, x0, x28 ldr w0, [x5,4] str w0, [x29,156] -.L2144: +.L2150: add x0, x24, :lo12:.LANCHOR2 ldrh w1, [x19] mov w26, 0 - ldr x0, [x0,1176] + ldr x0, [x0,1184] strh wzr, [x0,x1,lsl 1] ldrh w0, [x19] bl INSERT_FREE_LIST mov w0, -1 strh w0, [x19] bl FtlGcPageVarInit - b .L2145 -.L2161: + b .L2151 +.L2167: ldr w0, [x29,152] add w22, w22, 1 add w3, w26, 1 cmp w22, w0 uxth w26, w3 - bcs .L2147 -.L2149: + bcs .L2153 +.L2155: add x0, x21, :lo12:.LANCHOR2 - ldrh w0, [x0,810] + ldrh w0, [x0,818] cmp w0, w26 - bhi .L2148 - b .L2152 -.L2147: + bhi .L2154 + b .L2158 +.L2153: ldr x0, [x29,136] add x1, x0, :lo12:.LANCHOR1 - ldrh w0, [x1,3036] + ldrh w0, [x1,3068] cmp w0, w23 - beq .L2149 + beq .L2155 add w0, w0, w22 - strh w0, [x1,3036] + strh w0, [x1,3068] add x0, x21, :lo12:.LANCHOR2 - ldrh w0, [x0,810] + ldrh w0, [x0,818] cmp w0, w26 - bls .L2149 - b .L2150 -.L2152: + bls .L2155 + b .L2156 +.L2158: mov w6, 0 -.L2133: +.L2139: ldr x0, [x29,136] mov w1, w26 strh w26, [x19,2] @@ -14475,10 +14502,10 @@ FtlGcScanTempBlk: add x20, x0, :lo12:.LANCHOR1 mov w0, -1 strb w6, [x19,6] - strh w0, [x20,3036] + strh w0, [x20,3068] mov x0, x19 bl ftl_sb_update_avl_pages -.L2150: +.L2156: ldr w0, [x29,156] ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -14496,28 +14523,28 @@ FtlGcRefreshOpenBlock: add x29, sp, 0 str x19, [sp,16] uxth w19, w0 - adrp x0, .LC119 + adrp x0, .LC122 mov w1, w19 - add x0, x0, :lo12:.LC119 + add x0, x0, :lo12:.LC122 bl printk adrp x2, .LANCHOR2 add x2, x2, :lo12:.LANCHOR2 - ldrh w3, [x2,940] + ldrh w3, [x2,948] cmp w3, w19 - beq .L2163 - ldrh w1, [x2,942] + beq .L2169 + ldrh w1, [x2,950] cmp w1, w19 - beq .L2163 + beq .L2169 mov w0, 65535 cmp w3, w0 - bne .L2164 - strh w19, [x2,940] - b .L2163 -.L2164: + bne .L2170 + strh w19, [x2,948] + b .L2169 +.L2170: cmp w1, w0 - bne .L2163 - strh w19, [x2,942] -.L2163: + bne .L2169 + strh w19, [x2,950] +.L2169: mov w0, 0 ldr x19, [sp,16] ldp x29, x30, [sp], 32 @@ -14531,28 +14558,28 @@ FtlGcRefreshBlock: add x29, sp, 0 str x19, [sp,16] uxth w19, w0 - adrp x0, .LC119 + adrp x0, .LC122 mov w1, w19 - add x0, x0, :lo12:.LC119 + add x0, x0, :lo12:.LC122 bl printk adrp x2, .LANCHOR2 add x2, x2, :lo12:.LANCHOR2 - ldrh w3, [x2,940] + ldrh w3, [x2,948] cmp w3, w19 - beq .L2166 - ldrh w1, [x2,942] + beq .L2172 + ldrh w1, [x2,950] cmp w1, w19 - beq .L2166 + beq .L2172 mov w0, 65535 cmp w3, w0 - bne .L2167 - strh w19, [x2,940] - b .L2166 -.L2167: + bne .L2173 + strh w19, [x2,948] + b .L2172 +.L2173: cmp w1, w0 - bne .L2166 - strh w19, [x2,942] -.L2166: + bne .L2172 + strh w19, [x2,950] +.L2172: mov w0, 0 ldr x19, [sp,16] ldp x29, x30, [sp], 32 @@ -14573,49 +14600,49 @@ FtlGcMarkBadPhyBlk: str x23, [sp,48] bl P2V_block_in_plane uxth w21, w0 - ldrh w1, [x22,950] - adrp x0, .LC120 + ldrh w1, [x22,958] + adrp x0, .LC123 mov w2, w20 - add x0, x0, :lo12:.LC120 + add x0, x0, :lo12:.LC123 bl printk mov w0, w21 bl FtlGcRefreshBlock - ldr w0, [x22,3908] - cbz w0, .L2169 + ldr w0, [x22,652] + cbz w0, .L2175 ubfiz x0, x21, 1, 16 - ldr x2, [x22,1160] + ldr x2, [x22,1168] ldrh w1, [x2,x0] cmp w1, 29 - bls .L2169 + bls .L2175 sub w1, w1, #30 strh w1, [x2,x0] -.L2169: +.L2175: add x0, x19, :lo12:.LANCHOR2 adrp x1, .LANCHOR4 add x1, x1, :lo12:.LANCHOR4 add x1, x1, 184 - ldrh w3, [x0,950] + ldrh w3, [x0,958] mov x0, 0 -.L2170: +.L2176: cmp w3, w0, uxth - bls .L2176 + bls .L2182 add x0, x0, 1 add x2, x1, x0, lsl 1 ldrh w2, [x2,-2] cmp w2, w20 - bne .L2170 - b .L2171 -.L2176: + bne .L2176 + b .L2177 +.L2182: cmp w3, 15 - bhi .L2171 + bhi .L2177 adrp x1, .LANCHOR4 add x19, x19, :lo12:.LANCHOR2 add x1, x1, :lo12:.LANCHOR4 add w0, w3, 1 add x1, x1, 184 - strh w0, [x19,950] + strh w0, [x19,958] strh w20, [x1,w3,sxtw 1] -.L2171: +.L2177: mov w0, 0 ldr x23, [sp,48] ldp x19, x20, [sp,16] @@ -14632,29 +14659,29 @@ FtlGcReFreshBadBlk: str x19, [sp,16] adrp x19, .LANCHOR2 add x0, x19, :lo12:.LANCHOR2 - ldrh w1, [x0,950] - cbz w1, .L2178 - ldrh w3, [x0,940] + ldrh w1, [x0,958] + cbz w1, .L2184 + ldrh w3, [x0,948] mov w2, 65535 cmp w3, w2 - bne .L2178 - ldrh w2, [x0,954] + bne .L2184 + ldrh w2, [x0,962] cmp w2, w1 - bcc .L2179 - strh wzr, [x0,954] -.L2179: + bcc .L2185 + strh wzr, [x0,962] +.L2185: add x19, x19, :lo12:.LANCHOR2 adrp x0, .LANCHOR4 add x0, x0, :lo12:.LANCHOR4 add x0, x0, 184 - ldrh w1, [x19,954] + ldrh w1, [x19,962] ldrh w0, [x0,w1,sxtw 1] bl P2V_block_in_plane bl FtlGcRefreshBlock - ldrh w0, [x19,954] + ldrh w0, [x19,962] add w0, w0, 1 - strh w0, [x19,954] -.L2178: + strh w0, [x19,962] +.L2184: mov w0, 0 ldr x19, [sp,16] ldp x29, x30, [sp], 32 @@ -14672,65 +14699,65 @@ FtlGcFreeBadSuperBlk: add x19, x19, :lo12:.LANCHOR2 stp x23, x24, [sp,48] uxth w23, w0 - ldrh w0, [x19,950] + ldrh w0, [x19,958] stp x21, x22, [sp,32] stp x25, x26, [sp,64] mov w21, 0 - cbz w0, .L2185 + cbz w0, .L2191 adrp x24, .LANCHOR4 - adrp x22, .LC121 - add x22, x22, :lo12:.LC121 + adrp x22, .LC124 + add x22, x22, :lo12:.LC124 add x25, x24, :lo12:.LANCHOR4 -.L2193: - ldrh w0, [x19,740] +.L2199: + ldrh w0, [x19,748] cmp w0, w21 - bls .L2194 - add x0, x19, 768 + bls .L2200 + add x0, x19, 776 mov w1, w23 mov w20, 0 add x27, x24, :lo12:.LANCHOR4 ldrb w0, [x0,w21,sxtw] bl V2P_block uxth w26, w0 -.L2186: - ldrh w0, [x19,950] +.L2192: + ldrh w0, [x19,958] cmp w0, w20 - bls .L2195 + bls .L2201 add x0, x27, 184 ldrh w0, [x0,w20,sxtw 1] cmp w0, w26 - bne .L2187 + bne .L2193 mov w1, w26 mov x0, x22 bl printk mov w0, w26 bl FtlBbmMapBadBlock bl FtlBbmTblFlush - ldrh w2, [x19,950] + ldrh w2, [x19,958] mov w3, w20 -.L2188: +.L2194: cmp w3, w2 - bcs .L2196 + bcs .L2202 add x4, x25, 184 add w0, w3, 1 ldrh w1, [x4,w0,sxtw 1] strh w1, [x4,w3,sxtw 1] uxth w3, w0 - b .L2188 -.L2196: + b .L2194 +.L2202: sub w2, w2, #1 - strh w2, [x19,950] -.L2187: + strh w2, [x19,958] +.L2193: add w20, w20, 1 uxth w20, w20 - b .L2186 -.L2195: + b .L2192 +.L2201: add w21, w21, 1 uxth w21, w21 - b .L2193 -.L2194: + b .L2199 +.L2200: bl FtlGcReFreshBadBlk -.L2185: +.L2191: mov w0, 0 ldr x27, [sp,80] ldp x19, x20, [sp,16] @@ -14751,45 +14778,45 @@ update_vpc_list: uxth w19, w0 add x1, x20, :lo12:.LANCHOR2 ubfiz x0, x19, 1, 16 - ldr x2, [x1,1176] + ldr x2, [x1,1184] ldrh w2, [x2,x0] - cbnz w2, .L2198 + cbnz w2, .L2204 ldrh w0, [x1,3920] cmp w0, w19 - bne .L2199 + bne .L2205 mov w0, -1 strh w0, [x1,3920] - b .L2200 -.L2199: - ldrh w3, [x1,3552] + b .L2206 +.L2205: + ldrh w3, [x1,3608] mov w0, w2 cmp w3, w19 - beq .L2201 - ldrh w3, [x1,3600] + beq .L2207 + ldrh w3, [x1,3656] cmp w3, w19 - beq .L2201 - ldrh w1, [x1,3648] + beq .L2207 + ldrh w1, [x1,3704] cmp w1, w19 - beq .L2201 -.L2200: + beq .L2207 +.L2206: add x20, x20, :lo12:.LANCHOR2 mov w1, w19 - add x0, x20, 3512 + add x0, x20, 3568 bl List_remove_node - ldrh w0, [x20,3528] + ldrh w0, [x20,3584] sub w0, w0, #1 - strh w0, [x20,3528] + strh w0, [x20,3584] mov w0, w19 bl free_data_superblock mov w0, w19 bl FtlGcFreeBadSuperBlk mov w0, 1 - b .L2201 -.L2198: + b .L2207 +.L2204: mov w0, w19 bl List_update_data_list mov w0, 0 -.L2201: +.L2207: ldp x19, x20, [sp,16] ldp x29, x30, [sp], 32 ret @@ -14804,43 +14831,43 @@ decrement_vpc_count: add x29, sp, 0 str x19, [sp,16] cmp w1, w0 - beq .L2206 - adrp x2, .LANCHOR2+1176 + beq .L2212 + adrp x2, .LANCHOR2+1184 ubfiz x0, x1, 1, 16 - ldr x2, [x2,#:lo12:.LANCHOR2+1176] + ldr x2, [x2,#:lo12:.LANCHOR2+1184] ldrh w19, [x2,x0] - cbnz w19, .L2207 - adrp x0, .LC122 + cbnz w19, .L2213 + adrp x0, .LC125 mov w2, w19 - add x0, x0, :lo12:.LC122 + add x0, x0, :lo12:.LC125 bl printk - b .L2211 -.L2207: + b .L2217 +.L2213: sub w19, w19, #1 strh w19, [x2,x0] -.L2206: +.L2212: adrp x19, .LANCHOR4 mov w0, 65535 add x19, x19, :lo12:.LANCHOR4 ldrh w2, [x19,160] cmp w2, w0 - bne .L2209 + bne .L2215 strh w1, [x19,160] -.L2211: +.L2217: mov w0, 0 - b .L2208 -.L2209: + b .L2214 +.L2215: cmp w2, w1 str x1, [x29,40] mov w0, 0 - beq .L2208 + beq .L2214 mov w0, w2 bl update_vpc_list cmp w0, wzr ldr x1, [x29,40] cset w0, ne strh w1, [x19,160] -.L2208: +.L2214: ldr x19, [sp,16] ldp x29, x30, [sp], 48 ret @@ -14860,81 +14887,81 @@ FtlRecoverySuperblock: mov x19, x0 ldrh w0, [x0] cmp w0, w2 - beq .L2370 + beq .L2376 ldrh w0, [x19,2] adrp x20, .LANCHOR2 str w0, [x29,188] add x0, x20, :lo12:.LANCHOR2 ldrb w28, [x19,6] ldr w1, [x29,188] - ldrh w0, [x0,810] + ldrh w0, [x0,818] cmp w0, w1 - bne .L2215 + bne .L2221 strh wzr, [x19,4] - b .L2376 -.L2215: + b .L2382 +.L2221: ldrh w0, [x19,16] mov w1, 0 -.L2216: +.L2222: cmp w0, w2 - bne .L2379 + bne .L2385 add w1, w1, 1 uxth w1, w1 add x0, x19, x1, sxtw 1 ldrh w0, [x0,16] - b .L2216 -.L2379: + b .L2222 +.L2385: ldrb w1, [x19,8] cmp w1, 1 - bne .L2218 + bne .L2224 bl FtlGetLastWrittenPage cmn w0, #1 mov w21, w0 - beq .L2219 + beq .L2225 adrp x0, .LANCHOR0 mov w23, w21 add x0, x0, :lo12:.LANCHOR0 ldrb w1, [x0,136] - cbnz w1, .L2293 + cbnz w1, .L2299 add x0, x0, 140 ldrh w23, [x0,w21,sxtw 1] - b .L2293 -.L2218: + b .L2299 +.L2224: mov w1, 0 bl FtlGetLastWrittenPage cmn w0, #1 mov w21, w0 - beq .L2219 + beq .L2225 mov w23, w0 -.L2293: +.L2299: add x0, x20, :lo12:.LANCHOR2 mov x2, x19 mov w25, 0 mov w8, 65535 mov w9, 56 mov w10, 4 - ldrh w4, [x0,740] - ldrh w7, [x0,822] + ldrh w4, [x0,748] + ldrh w7, [x0,830] add x4, x19, x4, lsl 1 - b .L2221 -.L2219: + b .L2227 +.L2225: strh wzr, [x19,2] -.L2376: +.L2382: strb wzr, [x19,6] - b .L2370 -.L2223: + b .L2376 +.L2229: ldrh w1, [x2,16] cmp w1, w8 - beq .L2222 + beq .L2228 add x5, x20, :lo12:.LANCHOR2 orr w1, w23, w1, lsl 10 umull x0, w25, w9 add w3, w25, 1 - ldr x6, [x5,984] + ldr x6, [x5,992] add x6, x6, x0 str w1, [x6,4] - ldr x1, [x5,984] - ldr x5, [x5,1120] + ldr x1, [x5,992] + ldr x5, [x5,1128] add x0, x1, x0 mul w1, w25, w7 uxth w25, w3 @@ -14942,51 +14969,51 @@ FtlRecoverySuperblock: sdiv w1, w1, w10 add x1, x5, x1, sxtw 2 str x1, [x0,16] -.L2222: +.L2228: add x2, x2, 2 -.L2221: +.L2227: cmp x2, x4 - bne .L2223 + bne .L2229 ldrb w0, [x19,8] str wzr, [x29,184] cmp w0, 1 - bne .L2224 + bne .L2230 adrp x0, .LANCHOR0+136 ldrb w0, [x0,#:lo12:.LANCHOR0+136] cmp w0, wzr cset w0, ne str w0, [x29,184] -.L2224: +.L2230: add x22, x20, :lo12:.LANCHOR2 ldr w2, [x29,184] mov w1, w25 mov x26, 0 mov w24, 65535 adrp x27, .LANCHOR4 - ldr x0, [x22,984] + ldr x0, [x22,992] bl FlashReadPages - ldr w0, [x22,868] - adrp x22, .LC123 + ldr w0, [x22,876] + adrp x22, .LC126 str w0, [x29,176] - add x22, x22, :lo12:.LC123 + add x22, x22, :lo12:.LC126 uxth w0, w23 str w0, [x29,168] -.L2225: +.L2231: uxth w2, w26 cmp w2, w25 - bcs .L2232 + bcs .L2238 add x6, x20, :lo12:.LANCHOR2 mov x0, 56 mul x0, x26, x0 - ldr x4, [x6,984] + ldr x4, [x6,992] add x1, x4, x0 ldr w0, [x4,x0] - cbnz w0, .L2226 + cbnz w0, .L2232 ldr x7, [x1,16] ldr w4, [x7,4] cmn w4, #1 - beq .L2227 - ldr w1, [x6,868] + beq .L2233 + ldr w1, [x6,876] mov w0, w4 str x7, [x29,136] str x2, [x29,144] @@ -14997,23 +15024,23 @@ FtlRecoverySuperblock: ldr x4, [x29,152] ldr x2, [x29,144] ldr x7, [x29,136] - cbz w0, .L2227 + cbz w0, .L2233 add w4, w4, 1 - str w4, [x6,868] -.L2227: + str w4, [x6,876] +.L2233: ldr w0, [x7] cmn w0, #1 - bne .L2228 -.L2232: + bne .L2234 +.L2238: cmp w2, w25 - bne .L2371 + bne .L2377 add x0, x20, :lo12:.LANCHOR2 add w21, w21, 1 uxth w21, w21 - ldr x0, [x0,984] + ldr x0, [x0,992] ldr w0, [x0,4] - b .L2372 -.L2226: + b .L2378 +.L2232: ldr w1, [x1,4] mov x0, x22 bl printk @@ -15021,112 +15048,112 @@ FtlRecoverySuperblock: add x0, x27, :lo12:.LANCHOR4 ldrh w1, [x19] strh w1, [x0,218] -.L2228: +.L2234: add x26, x26, 1 - b .L2225 -.L2371: + b .L2231 +.L2377: add x0, x20, :lo12:.LANCHOR2 mov w1, 56 uxth w21, w21 umull x2, w2, w1 - ldr x0, [x0,984] + ldr x0, [x0,992] add x2, x0, x2 ldr w0, [x2,4] -.L2372: +.L2378: lsr x0, x0, 10 bl P2V_plane uxth w26, w0 ldrb w1, [x19,8] cmp w1, 1 - bne .L2234 + bne .L2240 adrp x0, .LANCHOR0 add x0, x0, :lo12:.LANCHOR0 ldrb w2, [x0,136] - cbnz w2, .L2234 + cbnz w2, .L2240 add x0, x0, 140 ldrh w21, [x0,w21,sxtw 1] -.L2234: +.L2240: add x0, x20, :lo12:.LANCHOR2 - ldrh w0, [x0,810] + ldrh w0, [x0,818] cmp w0, w21 - bne .L2235 + bne .L2241 strh w21, [x19,2] strb wzr, [x19,6] strh wzr, [x19,4] -.L2235: +.L2241: uxth w0, w28 str w0, [x29,152] ldr w0, [x29,188] cmp w21, w0 - bne .L2236 + bne .L2242 ldr w0, [x29,152] cmp w26, w0 - beq .L2377 -.L2236: + beq .L2383 +.L2242: ldr w0, [x29,176] adrp x25, .LANCHOR4 sub w22, w0, #1 mov w0, 65535 cmp w24, w0 - bne .L2237 - cbnz w1, .L2238 -.L2237: + bne .L2243 + cbnz w1, .L2244 +.L2243: add x0, x25, :lo12:.LANCHOR4 uxth w6, w23 ldr w1, [x0,172] cmn w1, #1 - bne .L2239 + bne .L2245 str w22, [x0,172] -.L2239: +.L2245: add x0, x25, :lo12:.LANCHOR4 ldr w24, [x29,188] ldr w3, [x0,172] ldr w0, [x29,188] add w0, w0, 7 cmp w0, w23, uxth - bge .L2240 + bge .L2246 sub w24, w6, #7 uxth w24, w24 -.L2240: +.L2246: adrp x7, .LANCHOR0 mov w28, -1 add x5, x7, :lo12:.LANCHOR0 mov w27, w28 mov w4, 65535 add x5, x5, 652 -.L2241: +.L2247: cmp w24, w6 - bhi .L2254 + bhi .L2260 add x0, x20, :lo12:.LANCHOR2 mov w23, 0 mov w10, 56 - ldrh w2, [x0,740] + ldrh w2, [x0,748] mov x0, x19 add x2, x19, x2, lsl 1 -.L2255: +.L2261: cmp x0, x2 - beq .L2380 + beq .L2386 ldrh w1, [x0,16] cmp w1, w4 - beq .L2242 + beq .L2248 add x9, x20, :lo12:.LANCHOR2 orr w1, w24, w1, lsl 10 umull x8, w23, w10 add w23, w23, 1 - ldr x9, [x9,984] + ldr x9, [x9,992] uxth w23, w23 add x8, x9, x8 str w1, [x8,4] -.L2242: +.L2248: add x0, x0, 2 - b .L2255 -.L2380: + b .L2261 +.L2386: add x8, x20, :lo12:.LANCHOR2 ldr w2, [x29,184] mov w1, w23 str x5, [x29,128] str x7, [x29,136] - ldr x0, [x8,984] + ldr x0, [x8,992] str x4, [x29,144] str x3, [x29,160] str x6, [x29,168] @@ -15141,159 +15168,159 @@ FtlRecoverySuperblock: ldr x3, [x29,160] ldr x4, [x29,144] ldrb w9, [x0,136] - ldr x0, [x8,984] + ldr x0, [x8,992] ldr x5, [x29,128] add x0, x0, 16 -.L2244: +.L2250: cmp w1, w23 - beq .L2381 + beq .L2387 ldr w2, [x0,-16] - cbnz w2, .L2245 + cbnz w2, .L2251 ldr x2, [x0] ldrh w8, [x2] cmp w8, w4 - beq .L2246 + beq .L2252 ldr w8, [x2,4] cmn w8, #1 - beq .L2246 + beq .L2252 add x2, x25, :lo12:.LANCHOR4 cmn w28, #1 ldr w27, [x2,172] str w8, [x2,172] - bne .L2246 + bne .L2252 ldrh w2, [x5,x10,lsl 1] cmp w2, w4 - bne .L2247 - cbz w9, .L2246 -.L2247: + bne .L2253 + cbz w9, .L2252 +.L2253: cmp w27, w22 csinv w28, w27, wzr, ne - b .L2246 -.L2245: + b .L2252 +.L2251: add x0, x25, :lo12:.LANCHOR4 ldrh w1, [x19] strh w1, [x0,218] ldrb w1, [x19,8] - cbnz w1, .L2238 + cbnz w1, .L2244 adrp x1, .LANCHOR0 add x1, x1, :lo12:.LANCHOR0 add x1, x1, 652 ldrh w2, [x1,w24,sxtw 1] mov w1, 65535 cmp w2, w1 - bne .L2249 + bne .L2255 cmn w28, #1 - beq .L2250 + beq .L2256 str w28, [x0,172] - b .L2238 -.L2250: + b .L2244 +.L2256: cmp w3, w22 - beq .L2251 + beq .L2257 str w3, [x0,172] - b .L2238 -.L2251: + b .L2244 +.L2257: ldr w1, [x0,172] - b .L2378 -.L2249: + b .L2384 +.L2255: cmp w27, w22 - beq .L2252 + beq .L2258 cmn w27, #1 - beq .L2238 + beq .L2244 str w27, [x0,172] - b .L2238 -.L2252: + b .L2244 +.L2258: ldr w1, [x0,172] cmp w1, w22 - beq .L2238 -.L2378: + beq .L2244 +.L2384: sub w1, w1, #1 - b .L2373 -.L2246: + b .L2379 +.L2252: add w1, w1, 1 add x0, x0, 56 uxth w1, w1 - b .L2244 -.L2381: + b .L2250 +.L2387: add w24, w24, 1 uxth w24, w24 - b .L2241 -.L2254: + b .L2247 +.L2260: add x0, x25, :lo12:.LANCHOR4 mov w1, -1 -.L2373: +.L2379: str w1, [x0,172] -.L2238: +.L2244: add x0, x25, :lo12:.LANCHOR4 mov w1, 1 strh w1, [x0,220] add x0, x20, :lo12:.LANCHOR2 - add x0, x0, 3696 + add x0, x0, 3752 bl FtlMapBlkWriteDumpData ldr w23, [x29,188] - adrp x0, .LC125 - add x0, x0, :lo12:.LC125 + adrp x0, .LC128 + add x0, x0, :lo12:.LC128 str x0, [x29,128] - adrp x0, .LC124 - add x0, x0, :lo12:.LC124 + adrp x0, .LC127 + add x0, x0, :lo12:.LC127 str x0, [x29,120] -.L2256: +.L2262: add x0, x20, :lo12:.LANCHOR2 adrp x1, .LANCHOR0 add x1, x1, :lo12:.LANCHOR0 str wzr, [x29,176] mov w7, 65535 mov w8, 56 - ldrh w3, [x0,740] + ldrh w3, [x0,748] ldrb w6, [x1,136] mov x1, x19 add x3, x19, x3, lsl 1 -.L2257: +.L2263: cmp x1, x3 - beq .L2382 + beq .L2388 ldrh w2, [x1,16] cmp w2, w7 - beq .L2258 + beq .L2264 ldr w0, [x29,176] add x5, x20, :lo12:.LANCHOR2 orr w2, w23, w2, lsl 10 - ldr x4, [x5,984] + ldr x4, [x5,992] umull x0, w0, w8 add x4, x4, x0 str w2, [x4,4] ldrb w2, [x19,8] cmp w2, 1 - bne .L2259 - cbz w6, .L2259 - ldr x2, [x5,984] + bne .L2265 + cbz w6, .L2265 + ldr x2, [x5,992] add x0, x2, x0 ldr w2, [x0,4] orr w2, w2, -2147483648 str w2, [x0,4] -.L2259: +.L2265: ldr w0, [x29,176] add w0, w0, 1 uxth w0, w0 str w0, [x29,176] -.L2258: +.L2264: add x1, x1, 2 - b .L2257 -.L2382: + b .L2263 +.L2388: add x0, x20, :lo12:.LANCHOR2 ldr w1, [x29,176] ldr w2, [x29,184] - ldr x0, [x0,984] + ldr x0, [x0,992] bl FlashReadPages str xzr, [x29,160] -.L2261: +.L2267: ldrh w0, [x29,160] ldr w1, [x29,176] cmp w1, w0, uxth - bls .L2383 + bls .L2389 ldr x0, [x29,160] mov x24, 56 mul x24, x0, x24 add x0, x20, :lo12:.LANCHOR2 - ldr x28, [x0,984] + ldr x28, [x0,992] add x27, x28, x24 ldr w1, [x27,4] str w1, [x29,204] @@ -15304,38 +15331,38 @@ FtlRecoverySuperblock: ldr w1, [x29,188] cmp w23, w1 ldr x1, [x29,168] - bcc .L2262 + bcc .L2268 ldr w2, [x29,152] cmp w0, w2 - bcs .L2297 + bcs .L2303 ldr w2, [x29,188] cmp w23, w2 - beq .L2262 -.L2297: + beq .L2268 +.L2303: cmp w0, w26 - bne .L2298 + bne .L2304 cmp w23, w21 - beq .L2264 -.L2298: + beq .L2270 +.L2304: ldr w0, [x28,x24] cmn w0, #1 - beq .L2266 + beq .L2272 ldr x28, [x27,16] mov w0, 61589 ldrh w1, [x28] cmp w1, w0 - bne .L2273 + bne .L2279 ldr w22, [x28,4] cmn w22, #1 - beq .L2268 + beq .L2274 add x27, x20, :lo12:.LANCHOR2 mov w0, w22 - ldr w1, [x27,868] + ldr w1, [x27,876] bl ftl_cmp_data_ver - cbz w0, .L2268 + cbz w0, .L2274 add w0, w22, 1 - str w0, [x27,868] -.L2268: + str w0, [x27,876] +.L2274: ldr w27, [x28,8] add x1, x29, 200 ldr w0, [x28,12] @@ -15347,52 +15374,52 @@ FtlRecoverySuperblock: str x0, [x29,136] ldr w1, [x0,172] cmn w1, #1 - beq .L2269 + beq .L2275 mov w0, w22 bl ftl_cmp_data_ver - cbz w0, .L2269 + cbz w0, .L2275 ldr w1, [x29,196] cmn w1, #1 - beq .L2270 + beq .L2276 add x3, x20, :lo12:.LANCHOR2 str x3, [x29,112] - ldr x0, [x3,984] + ldr x0, [x3,992] add x0, x0, x24 str w1, [x0,4] mov w1, 1 ldr x2, [x0,16] - ldr x0, [x3,984] + ldr x0, [x3,992] str x2, [x29,168] mov w2, 0 add x0, x0, x24 bl FlashReadPages ldr x3, [x29,112] ldr x0, [x29,168] - ldr x2, [x3,984] + ldr x2, [x3,992] ldr w0, [x0,4] str w0, [x29,144] add x4, x2, x24 ldr w0, [x2,x24] cmn w0, #1 - bne .L2271 - b .L2272 -.L2270: + bne .L2277 + b .L2278 +.L2276: ldr w0, [x29,204] ldr w1, [x29,200] cmp w1, w0 - bne .L2273 + bne .L2279 mov w0, w27 add x1, x29, 196 mov w2, 1 bl log2phys -.L2273: +.L2279: ldrh w0, [x19] - b .L2375 -.L2271: + b .L2381 +.L2277: ldr x0, [x29,168] ldr w28, [x0,8] cmp w28, w27 - bne .L2272 + bne .L2278 ldr x0, [x29,136] ldr w1, [x29,144] str x2, [x29,96] @@ -15403,125 +15430,125 @@ FtlRecoverySuperblock: ldr x4, [x29,112] ldr x3, [x29,104] ldr x2, [x29,96] - cbz w0, .L2272 + cbz w0, .L2278 ldr w0, [x29,200] ldr w1, [x29,204] cmp w0, w1 - beq .L2278 + beq .L2284 ldr w1, [x29,196] cmp w0, w1 - beq .L2272 + beq .L2278 cmn w0, #1 - beq .L2276 + beq .L2282 str w0, [x4,4] mov w2, 0 ldr x1, [x4,16] - ldr x0, [x3,984] + ldr x0, [x3,992] str x1, [x29,168] mov w1, 1 add x0, x0, x24 bl FlashReadPages - b .L2277 -.L2276: + b .L2283 +.L2282: str w0, [x2,x24] -.L2277: - adrp x0, .LANCHOR2+984 - ldr x0, [x0,#:lo12:.LANCHOR2+984] +.L2283: + adrp x0, .LANCHOR2+992 + ldr x0, [x0,#:lo12:.LANCHOR2+992] ldr w0, [x0,x24] cmn w0, #1 - beq .L2278 + beq .L2284 ldr x0, [x29,168] ldr w24, [x0,4] add x0, x25, :lo12:.LANCHOR4 mov w1, w24 ldr w0, [x0,172] bl ftl_cmp_data_ver - cbz w0, .L2278 + cbz w0, .L2284 ldr w0, [x29,144] mov w1, w24 bl ftl_cmp_data_ver - cbz w0, .L2272 -.L2278: + cbz w0, .L2278 +.L2284: ldr w1, [x29,196] mov w0, w28 bl FtlReUsePrevPpa -.L2272: +.L2278: mov w0, -1 str w0, [x29,196] ldrh w0, [x19] bl decrement_vpc_count - b .L2280 -.L2269: + b .L2286 +.L2275: ldr w0, [x29,204] ldr w1, [x29,200] cmp w1, w0 - beq .L2280 + beq .L2286 mov w0, w27 add x1, x29, 204 mov w2, 1 bl log2phys ldr w24, [x29,200] cmn w24, #1 - beq .L2280 + beq .L2286 ldr w0, [x29,196] cmp w24, w0 - beq .L2280 + beq .L2286 lsr x0, x24, 10 bl P2V_block_in_plane uxth w0, w0 add x1, x20, :lo12:.LANCHOR2 - ldrh w2, [x1,3552] + ldrh w2, [x1,3608] cmp w2, w0 - beq .L2283 - ldrh w2, [x1,3600] + beq .L2289 + ldrh w2, [x1,3656] cmp w2, w0 - beq .L2283 - ldrh w1, [x1,3648] + beq .L2289 + ldrh w1, [x1,3704] cmp w1, w0 - bne .L2280 -.L2283: + bne .L2286 +.L2289: add x28, x20, :lo12:.LANCHOR2 mov w1, 1 mov w2, 0 - ldr x0, [x28,984] + ldr x0, [x28,992] str w24, [x0,4] ldr x3, [x0,16] - ldr x0, [x28,984] + ldr x0, [x28,992] str x3, [x29,168] bl FlashReadPages - ldr x0, [x28,984] + ldr x0, [x28,992] ldr x3, [x29,168] ldr w0, [x0] ldr w1, [x3,4] cmn w0, #1 - beq .L2280 + beq .L2286 mov w0, w22 bl ftl_cmp_data_ver - cbnz w0, .L2280 + cbnz w0, .L2286 mov w0, w27 add x1, x29, 200 mov w2, 1 bl log2phys -.L2280: +.L2286: ldr w0, [x29,196] cmn w0, #1 - beq .L2262 + beq .L2268 lsr x0, x0, 10 bl P2V_block_in_plane uxth w1, w0 add x2, x20, :lo12:.LANCHOR2 ubfiz x3, x1, 1, 16 - ldr x2, [x2,1176] + ldr x2, [x2,1184] ldrh w2, [x2,x3] - cbz w2, .L2284 -.L2375: + cbz w2, .L2290 +.L2381: bl decrement_vpc_count - b .L2262 -.L2284: + b .L2268 +.L2290: ldr x0, [x29,120] bl printk - b .L2262 -.L2266: + b .L2268 +.L2272: add x24, x25, :lo12:.LANCHOR4 ldrh w0, [x19] mov w2, w22 @@ -15530,74 +15557,74 @@ FtlRecoverySuperblock: bl printk ldr w0, [x24,224] cmp w0, 31 - bhi .L2285 + bhi .L2291 add x1, x24, 232 ldr w2, [x29,204] str w2, [x1,w0,uxtw 2] add w0, w0, 1 str w0, [x24,224] -.L2285: +.L2291: ldrh w0, [x19] bl decrement_vpc_count add x0, x25, :lo12:.LANCHOR4 ldr w1, [x0,172] cmn w1, #1 - beq .L2374 + beq .L2380 cmp w1, w22 - bls .L2262 -.L2374: + bls .L2268 +.L2380: str w22, [x0,172] -.L2262: +.L2268: ldr x0, [x29,160] add x0, x0, 1 str x0, [x29,160] - b .L2261 -.L2383: + b .L2267 +.L2389: ldrb w0, [x19,8] add w23, w23, 1 cmp w0, 1 uxth w23, w23 - bne .L2288 + bne .L2294 adrp x0, .LANCHOR0 add x0, x0, :lo12:.LANCHOR0 ldrb w0, [x0,136] - cbz w0, .L2288 + cbz w0, .L2294 cmp w21, w23 - bne .L2288 + bne .L2294 add x0, x20, :lo12:.LANCHOR2 - ldrh w0, [x0,812] + ldrh w0, [x0,820] cmp w0, w23 - beq .L2264 -.L2288: + beq .L2270 +.L2294: add x0, x20, :lo12:.LANCHOR2 - ldrh w1, [x0,810] + ldrh w1, [x0,818] cmp w23, w1 - bne .L2256 - ldrh w2, [x0,740] + bne .L2262 + ldrh w2, [x0,748] mov w3, 65535 strh w23, [x19,2] mov x0, 0 strh wzr, [x19,4] -.L2290: +.L2296: uxth w1, w0 cmp w1, w2 - bcs .L2370 + bcs .L2376 add x0, x0, 1 add x4, x19, x0, lsl 1 ldrh w4, [x4,14] cmp w4, w3 - beq .L2290 + beq .L2296 strb w1, [x19,6] - b .L2370 -.L2264: + b .L2376 +.L2270: strb w26, [x19,6] strh w21, [x19,2] -.L2377: +.L2383: mov x0, x19 mov w1, w21 mov w2, w26 bl ftl_sb_update_avl_pages -.L2370: +.L2376: mov w0, 0 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -15617,11 +15644,11 @@ FtlSlcSuperblockCheck: stp x21, x22, [sp,32] str x23, [sp,48] ldrh w1, [x0,4] - cbz w1, .L2384 + cbz w1, .L2390 ldrh w1, [x0] mov w20, 65535 cmp w1, w20 - beq .L2384 + beq .L2390 mov x19, x0 ldrb w0, [x0,6] adrp x21, .LANCHOR0 @@ -15630,74 +15657,74 @@ FtlSlcSuperblockCheck: add x21, x21, :lo12:.LANCHOR0 add x22, x21, 652 ldrh w0, [x19,x0,lsl 1] -.L2388: +.L2394: cmp w0, w20 - bne .L2395 -.L2390: + bne .L2401 +.L2396: ldrb w0, [x19,6] add x1, x23, :lo12:.LANCHOR2 add w0, w0, 1 - ldrh w1, [x1,740] + ldrh w1, [x1,748] uxtb w0, w0 strb w0, [x19,6] cmp w1, w0 - bne .L2389 + bne .L2395 ldrh w0, [x19,2] strb wzr, [x19,6] add w0, w0, 1 strh w0, [x19,2] -.L2389: +.L2395: ldrb w0, [x19,6] add x0, x0, 8 ldrh w0, [x19,x0,lsl 1] - b .L2388 -.L2395: + b .L2394 +.L2401: ldrb w1, [x19,8] cmp w1, 1 - bne .L2391 + bne .L2397 ldrb w0, [x21,136] - cbnz w0, .L2391 + cbnz w0, .L2397 ldrh w0, [x19,2] ldrh w0, [x22,w0,sxtw 1] cmp w0, w20 - bne .L2391 + bne .L2397 ldrh w0, [x19,4] sub w0, w0, #1 strh w0, [x19,4] ldrh w0, [x19] bl decrement_vpc_count ldrh w1, [x19,4] - cbnz w1, .L2390 + cbnz w1, .L2396 ldrh w0, [x19,2] strb w1, [x19,6] add w0, w0, 1 strh w0, [x19,2] - b .L2384 -.L2391: + b .L2390 +.L2397: adrp x0, .LANCHOR0 add x0, x0, :lo12:.LANCHOR0 ldrb w0, [x0,136] - cbz w0, .L2384 + cbz w0, .L2390 cmp w1, 1 - bne .L2384 + bne .L2390 adrp x0, .LANCHOR2 ldrh w2, [x19,2] add x0, x0, :lo12:.LANCHOR2 - ldrh w1, [x0,812] + ldrh w1, [x0,820] cmp w2, w1 - bcc .L2384 + bcc .L2390 ldrh w1, [x19] - ldr x3, [x0,1176] + ldr x3, [x0,1184] lsl x1, x1, 1 ldrh w4, [x19,4] ldrh w2, [x3,x1] sub w2, w2, w4 strh w2, [x3,x1] strh wzr, [x19,4] - ldrh w0, [x0,810] + ldrh w0, [x0,818] strh w0, [x19,2] strb wzr, [x19,6] -.L2384: +.L2390: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldr x23, [sp,48] @@ -15724,45 +15751,45 @@ get_new_active_ppa: add x0, x0, 8 add x24, x20, 652 ldrh w0, [x19,x0,lsl 1] -.L2397: +.L2403: cmp w0, w22 adrp x21, .LANCHOR2 - bne .L2412 -.L2398: + bne .L2418 +.L2404: ldrb w0, [x19,6] add x1, x23, :lo12:.LANCHOR2 add w0, w0, 1 - ldrh w1, [x1,740] + ldrh w1, [x1,748] uxtb w0, w0 strb w0, [x19,6] cmp w1, w0 - bne .L2399 + bne .L2405 ldrh w0, [x19,2] strb wzr, [x19,6] add w0, w0, 1 strh w0, [x19,2] -.L2399: +.L2405: ldrb w0, [x19,6] add x0, x0, 8 ldrh w0, [x19,x0,lsl 1] - b .L2397 -.L2412: + b .L2403 +.L2418: ldrb w1, [x19,8] cmp w1, 1 - bne .L2400 + bne .L2406 ldrb w1, [x20,136] - cbnz w1, .L2400 + cbnz w1, .L2406 ldrh w1, [x19,2] ldrh w1, [x24,w1,sxtw 1] cmp w1, w22 - bne .L2400 + bne .L2406 ldrh w0, [x19,4] sub w0, w0, #1 strh w0, [x19,4] ldrh w0, [x19] bl decrement_vpc_count - b .L2398 -.L2400: + b .L2404 +.L2406: ldrh w1, [x19,4] adrp x20, .LANCHOR0 ldrh w22, [x19,2] @@ -15773,63 +15800,63 @@ get_new_active_ppa: strh w1, [x19,4] mov w24, w23 add x25, x20, 652 -.L2401: +.L2407: add x0, x21, :lo12:.LANCHOR2 ldrb w1, [x19,6] - ldrh w2, [x0,740] -.L2403: + ldrh w2, [x0,748] +.L2409: add w1, w1, 1 uxtb w1, w1 cmp w1, w2 - bne .L2402 + bne .L2408 ldrh w1, [x19,2] add w1, w1, 1 strh w1, [x19,2] mov w1, 0 -.L2402: +.L2408: add x0, x19, x1, sxtw 1 ldrh w0, [x0,16] cmp w0, w23 - beq .L2403 + beq .L2409 ldrb w0, [x19,8] strb w1, [x19,6] cmp w0, 1 - bne .L2408 + bne .L2414 ldrb w0, [x20,136] - cbnz w0, .L2405 + cbnz w0, .L2411 ldrh w0, [x19,2] ldrh w0, [x25,w0,sxtw 1] cmp w0, w24 - bne .L2405 + bne .L2411 ldrh w1, [x19,4] - cbz w1, .L2405 + cbz w1, .L2411 ldrh w0, [x19] sub w1, w1, #1 strh w1, [x19,4] bl decrement_vpc_count - b .L2401 -.L2405: + b .L2407 +.L2411: adrp x1, .LANCHOR0 add x1, x1, :lo12:.LANCHOR0 ldrb w0, [x1,136] - cbz w0, .L2408 + cbz w0, .L2414 add x2, x21, :lo12:.LANCHOR2 ldrh w1, [x19,2] - ldrh w0, [x2,812] + ldrh w0, [x2,820] cmp w1, w0 - bcc .L2408 + bcc .L2414 ldrh w1, [x19] - ldr x0, [x2,1176] + ldr x0, [x2,1184] lsl x1, x1, 1 ldrh w4, [x19,4] ldrh w3, [x0,x1] sub w3, w3, w4 strh w3, [x0,x1] strh wzr, [x19,4] - ldrh w0, [x2,810] + ldrh w0, [x2,818] strh w0, [x19,2] strb wzr, [x19,6] -.L2408: +.L2414: mov w0, w22 ldr x25, [sp,64] ldp x19, x20, [sp,16] @@ -15850,58 +15877,58 @@ FtlWriteDumpData: add x20, x19, :lo12:.LANCHOR2 stp x21, x22, [sp,32] stp x23, x24, [sp,48] - ldr w0, [x20,1392] - cbnz w0, .L2413 - ldrh w2, [x20,3556] - cbz w2, .L2415 - ldrb w1, [x20,3560] - cbnz w1, .L2415 - ldrb w1, [x20,3559] - ldrh w3, [x20,810] + ldr w0, [x20,1400] + cbnz w0, .L2419 + ldrh w2, [x20,3612] + cbz w2, .L2421 + ldrb w1, [x20,3616] + cbnz w1, .L2421 + ldrb w1, [x20,3615] + ldrh w3, [x20,818] mul w1, w1, w3 cmp w2, w1 - beq .L2415 - ldrb w23, [x20,3562] - ldr w22, [x20,1388] - ldrh w24, [x20,740] - cbnz w23, .L2413 + beq .L2421 + ldrb w23, [x20,3618] + ldr w22, [x20,1396] + ldrh w24, [x20,748] + cbnz w23, .L2419 sub w22, w22, #1 add x1, x29, 84 mov w0, w22 mov w2, w23 bl log2phys - ldr x21, [x20,1104] + ldr x21, [x20,1112] ldr w0, [x29,84] - ldr x1, [x20,1040] + ldr x1, [x20,1048] str w0, [x29,92] cmn w0, #1 str w22, [x29,112] str x1, [x29,96] str x21, [x29,104] str w23, [x21,4] - beq .L2417 + beq .L2423 add x0, x29, 88 mov w1, 1 mov w2, w23 bl FlashReadPages - b .L2418 -.L2417: - ldr x0, [x20,1040] + b .L2424 +.L2423: + ldr x0, [x20,1048] mov w1, 255 - ldrh w2, [x20,820] + ldrh w2, [x20,828] bl ftl_memset -.L2418: +.L2424: add x25, x19, :lo12:.LANCHOR2 mov w0, -3947 lsl w24, w24, 2 strh w0, [x21] mov w23, 0 - add x20, x25, 3552 -.L2419: + add x20, x25, 3608 +.L2425: cmp w23, w24 - beq .L2420 + beq .L2426 ldrh w0, [x20,4] - cbz w0, .L2420 + cbz w0, .L2426 ldr w0, [x29,92] add w23, w23, 1 str w0, [x21,12] @@ -15911,7 +15938,7 @@ FtlWriteDumpData: str w22, [x21,8] bl get_new_active_ppa str w0, [x29,92] - ldr w1, [x25,868] + ldr w1, [x25,876] mov w2, 0 str w1, [x21,4] mov w3, w2 @@ -15919,21 +15946,21 @@ FtlWriteDumpData: add x0, x29, 88 cmn w1, #1 csel w1, w1, wzr, ne - str w1, [x25,868] + str w1, [x25,876] mov w1, 1 bl FlashProgPages ldrh w0, [x20] bl decrement_vpc_count - b .L2419 -.L2420: + b .L2425 +.L2426: add x19, x19, :lo12:.LANCHOR2 mov w0, 1 - strb w0, [x19,3562] - b .L2413 -.L2415: + strb w0, [x19,3618] + b .L2419 +.L2421: add x19, x19, :lo12:.LANCHOR2 - strb wzr, [x19,3562] -.L2413: + strb wzr, [x19,3618] +.L2419: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -15951,23 +15978,23 @@ l2p_flush: mov w19, 0 adrp x20, .LANCHOR2 bl FtlWriteDumpData -.L2431: +.L2437: add x1, x20, :lo12:.LANCHOR2 - ldrh w0, [x1,850] + ldrh w0, [x1,858] cmp w0, w19 - bls .L2434 - ldr x1, [x1,1256] + bls .L2440 + ldr x1, [x1,1264] ubfiz x0, x19, 4, 16 add x0, x1, x0 ldr w0, [x0,4] - tbz w0, #31, .L2432 + tbz w0, #31, .L2438 mov w0, w19 bl flush_l2p_region -.L2432: +.L2438: add w19, w19, 1 uxth w19, w19 - b .L2431 -.L2434: + b .L2437 +.L2440: mov w0, 0 ldp x19, x20, [sp,16] ldp x29, x30, [sp], 32 @@ -15985,37 +16012,37 @@ FtlSuperblockPowerLostFix: stp x21, x22, [sp,32] str x23, [sp,48] ldrb w20, [x0,#:lo12:.LANCHOR0+136] - cbz w20, .L2449 + cbz w20, .L2455 ldrb w20, [x19,8] cmp w20, 1 - bne .L2444 + bne .L2450 ldrh w21, [x19,4] - b .L2436 -.L2444: + b .L2442 +.L2450: mov w20, 0 -.L2449: +.L2455: mov w21, 12 -.L2436: +.L2442: adrp x23, .LANCHOR2 mov w22, -1 -.L2437: +.L2443: sub w21, w21, #1 cmn w21, #1 - beq .L2439 + beq .L2445 ldrh w0, [x19,4] - cbnz w0, .L2438 -.L2439: + cbnz w0, .L2444 +.L2445: adrp x0, .LANCHOR2 ldrh w1, [x19] add x0, x0, :lo12:.LANCHOR2 ldrh w4, [x19,4] lsl x1, x1, 1 - ldr x3, [x0,1176] + ldr x3, [x0,1184] ldrh w2, [x3,x1] sub w2, w2, w4 strh w2, [x3,x1] strb wzr, [x19,6] - ldrh w0, [x0,810] + ldrh w0, [x0,818] strh w0, [x19,2] strh wzr, [x19,4] ldp x21, x22, [sp,32] @@ -16023,17 +16050,17 @@ FtlSuperblockPowerLostFix: ldr x23, [sp,48] ldp x29, x30, [sp], 128 ret -.L2438: +.L2444: mov x0, x19 bl get_new_active_ppa str w0, [x29,76] cmn w0, #1 - beq .L2439 + beq .L2445 add x2, x23, :lo12:.LANCHOR2 str w22, [x29,96] mov w3, 0 - ldr x1, [x2,1104] - ldr x0, [x2,1040] + ldr x1, [x2,1112] + ldr x0, [x2,1048] str x0, [x29,80] str x1, [x29,88] str w22, [x1,8] @@ -16041,19 +16068,19 @@ FtlSuperblockPowerLostFix: ldrh w0, [x19] strh w0, [x1,2] strh wzr, [x1] - ldr w0, [x2,868] + ldr w0, [x2,876] str w0, [x1,4] mov w1, 1 add w0, w0, 1 cmn w0, #1 csel w0, w0, wzr, ne - str w0, [x2,868] + str w0, [x2,876] add x0, x29, 72 mov w2, w20 bl FlashProgPages ldrh w0, [x19] bl decrement_vpc_count - b .L2437 + b .L2443 .size FtlSuperblockPowerLostFix, .-FtlSuperblockPowerLostFix .align 2 .global FtlVpcCheckAndModify @@ -16061,11 +16088,11 @@ FtlSuperblockPowerLostFix: FtlVpcCheckAndModify: stp x29, x30, [sp, -80]! adrp x1, .LANCHOR3 - adrp x0, .LC126 + adrp x0, .LC129 add x1, x1, :lo12:.LANCHOR3 add x29, sp, 0 add x1, x1, 16 - add x0, x0, :lo12:.LC126 + add x0, x0, :lo12:.LC129 stp x19, x20, [sp,16] stp x21, x22, [sp,32] adrp x19, .LANCHOR2 @@ -16075,75 +16102,75 @@ FtlVpcCheckAndModify: add x0, x19, :lo12:.LANCHOR2 mov w1, 0 mov x21, x19 - ldrh w2, [x0,750] - ldr x0, [x0,1168] + ldrh w2, [x0,758] + ldr x0, [x0,1176] lsl w2, w2, 1 bl ftl_memset -.L2451: +.L2457: add x19, x21, :lo12:.LANCHOR2 - ldr w0, [x19,1388] + ldr w0, [x19,1396] cmp w20, w0 - bcs .L2466 + bcs .L2472 mov w0, w20 add x1, x29, 76 mov w2, 0 bl log2phys ldr w0, [x29,76] cmn w0, #1 - beq .L2452 + beq .L2458 lsr x0, x0, 10 bl P2V_block_in_plane ubfiz x0, x0, 1, 16 - ldr x2, [x19,1168] + ldr x2, [x19,1176] ldrh w1, [x2,x0] add w1, w1, 1 strh w1, [x2,x0] -.L2452: +.L2458: add w20, w20, 1 - b .L2451 -.L2466: - adrp x22, .LC127 + b .L2457 +.L2472: + adrp x22, .LC130 mov w20, 0 mov w23, 65535 - add x22, x22, :lo12:.LC127 -.L2454: - ldrh w0, [x19,748] + add x22, x22, :lo12:.LC130 +.L2460: + ldrh w0, [x19,756] cmp w0, w20 - bls .L2467 + bls .L2473 ubfiz x21, x20, 1, 16 - ldr x0, [x19,1176] + ldr x0, [x19,1184] ldrh w2, [x0,x21] - ldr x0, [x19,1168] + ldr x0, [x19,1176] ldrh w3, [x0,x21] cmp w2, w3 - beq .L2457 + beq .L2463 cmp w2, w23 - beq .L2457 + beq .L2463 mov x0, x22 mov w1, w20 bl printk - ldrh w0, [x19,3552] + ldrh w0, [x19,3608] cmp w0, w20 - beq .L2457 - ldrh w0, [x19,3648] + beq .L2463 + ldrh w0, [x19,3704] cmp w0, w20 - beq .L2457 - ldrh w0, [x19,3600] + beq .L2463 + ldrh w0, [x19,3656] cmp w0, w20 - beq .L2457 - ldr x0, [x19,1168] - ldrh w1, [x0,x21] + beq .L2463 ldr x0, [x19,1176] + ldrh w1, [x0,x21] + ldr x0, [x19,1184] strh w1, [x0,x21] mov w0, w20 bl update_vpc_list bl l2p_flush bl FtlVpcTblFlush -.L2457: +.L2463: add w20, w20, 1 uxth w20, w20 - b .L2454 -.L2467: + b .L2460 +.L2473: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldr x23, [sp,48] @@ -16160,91 +16187,91 @@ allocate_new_data_superblock: adrp x19, .LANCHOR2 add x2, x19, :lo12:.LANCHOR2 stp x21, x22, [sp,32] - ldr w1, [x2,1392] + ldr w1, [x2,1400] ldrh w22, [x0] - cbnz w1, .L2469 + cbnz w1, .L2475 mov x21, x0 mov w0, 65535 cmp w22, w0 - beq .L2470 + beq .L2476 ubfiz x1, x22, 1, 16 - ldr x0, [x2,1176] + ldr x0, [x2,1184] ldrh w0, [x0,x1] - cbz w0, .L2471 + cbz w0, .L2477 mov w0, w22 bl INSERT_DATA_LIST - b .L2470 -.L2471: + b .L2476 +.L2477: mov w0, w22 bl INSERT_FREE_LIST -.L2470: - add x1, x19, :lo12:.LANCHOR2 - strb wzr, [x21,8] - add x0, x1, 3600 - cmp x21, x0 - beq .L2472 - ldrh w2, [x1,760] - cmp w2, 1 - beq .L2472 - adrp x0, .LANCHOR0+136 - ldrb w0, [x0,#:lo12:.LANCHOR0+136] - cbz w0, .L2473 -.L2472: - mov w0, 1 - strb w0, [x21,8] - b .L2474 -.L2473: - add x0, x1, 3552 - cmp x21, x0 - bne .L2474 - cmp w2, 3 - beq .L2476 - ldr w0, [x1,860] - cmp w0, 1 - bne .L2477 .L2476: add x1, x19, :lo12:.LANCHOR2 + strb wzr, [x21,8] + add x0, x1, 3656 + cmp x21, x0 + beq .L2478 + ldrh w2, [x1,768] + cmp w2, 1 + beq .L2478 + adrp x0, .LANCHOR0+136 + ldrb w0, [x0,#:lo12:.LANCHOR0+136] + cbz w0, .L2479 +.L2478: mov w0, 1 - strb w0, [x1,3560] -.L2477: + strb w0, [x21,8] + b .L2480 +.L2479: + add x0, x1, 3608 + cmp x21, x0 + bne .L2480 + cmp w2, 3 + beq .L2482 + ldr w0, [x1,868] + cmp w0, 1 + bne .L2483 +.L2482: add x1, x19, :lo12:.LANCHOR2 - ldr w0, [x1,3908] - cbz w0, .L2474 - ldr w0, [x1,912] - cmp w0, 29 - bhi .L2474 mov w0, 1 - strb w0, [x1,3560] -.L2474: + strb w0, [x1,3616] +.L2483: + add x1, x19, :lo12:.LANCHOR2 + ldr w0, [x1,652] + cbz w0, .L2480 + ldr w0, [x1,920] + cmp w0, 29 + bhi .L2480 + mov w0, 1 + strb w0, [x1,3616] +.L2480: adrp x1, .LANCHOR4 add x0, x1, :lo12:.LANCHOR4 mov x20, x1 ldrh w2, [x0,160] mov w0, 65535 cmp w2, w0 - beq .L2479 + beq .L2485 cmp w22, w2 - bne .L2480 + bne .L2486 add x19, x19, :lo12:.LANCHOR2 ubfiz x1, x2, 1, 16 - ldr x0, [x19,1176] + ldr x0, [x19,1184] ldrh w0, [x0,x1] - cbz w0, .L2481 -.L2480: + cbz w0, .L2487 +.L2486: mov w0, w2 bl update_vpc_list -.L2481: +.L2487: add x1, x20, :lo12:.LANCHOR4 mov w0, -1 strh w0, [x1,160] -.L2479: +.L2485: mov x0, x21 bl allocate_data_superblock bl l2p_flush mov w0, 0 bl FtlEctTblFlush bl FtlVpcTblFlush -.L2469: +.L2475: mov w0, 0 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -16263,18 +16290,18 @@ FtlReadRefresh: stp x19, x20, [sp,16] str x21, [sp,32] ldr w3, [x2,80] - cbz w3, .L2495 + cbz w3, .L2501 ldr w3, [x2,84] - ldr w1, [x0,1388] + ldr w1, [x0,1396] cmp w3, w1 - bcs .L2496 + bcs .L2502 mov w20, 2048 mov x19, x0 -.L2501: +.L2507: ldr w0, [x19,4052] - ldr w1, [x19,1388] + ldr w1, [x19,1396] cmp w0, w1 - bcs .L2498 + bcs .L2504 add x1, x29, 52 mov w2, 0 bl log2phys @@ -16283,7 +16310,7 @@ FtlReadRefresh: add w0, w0, 1 str w0, [x19,4052] cmn w1, #1 - beq .L2499 + beq .L2505 str w1, [x29,60] mov w2, 0 str w0, [x29,80] @@ -16295,56 +16322,56 @@ FtlReadRefresh: bl FlashReadPages ldr w0, [x29,56] cmp w0, 256 - bne .L2498 + bne .L2504 ldr w0, [x29,52] lsr x0, x0, 10 bl P2V_block_in_plane bl FtlGcRefreshBlock - b .L2498 -.L2499: + b .L2504 +.L2505: subs w20, w20, #1 - bne .L2501 -.L2498: + bne .L2507 +.L2504: mov w0, -1 - b .L2503 -.L2496: - ldr w0, [x0,892] + b .L2509 +.L2502: + ldr w0, [x0,900] str wzr, [x2,80] str wzr, [x2,84] str w0, [x2,76] - b .L2509 -.L2495: + b .L2515 +.L2501: adrp x2, .LANCHOR0+136 - ldr w3, [x0,908] - ldr w0, [x0,3908] + ldr w3, [x0,916] + ldr w0, [x0,652] ldrb w4, [x2,#:lo12:.LANCHOR0+136] mov w2, 4194304 - cbnz w4, .L2504 + cbnz w4, .L2510 add w0, w0, w3, lsr 10 mov w3, 33554432 asr w2, w3, w0 -.L2504: +.L2510: add x4, x1, :lo12:.LANCHOR2 - ldr w3, [x4,892] + ldr w3, [x4,900] ldr w0, [x4,4044] add w5, w3, 1048576 cmp w0, w5 - bhi .L2505 + bhi .L2511 add w0, w2, w0 cmp w0, w3 - bcc .L2505 - ldrb w2, [x4,3884] + bcc .L2511 + ldrb w2, [x4,3548] mov w0, 0 - cbnz w2, .L2503 -.L2505: + cbnz w2, .L2509 +.L2511: add x0, x1, :lo12:.LANCHOR2 mov w1, 1 str wzr, [x0,4052] str w1, [x0,4048] str w3, [x0,4044] -.L2509: +.L2515: mov w0, 0 -.L2503: +.L2509: ldp x19, x20, [sp,16] ldr x21, [sp,32] ldp x29, x30, [sp], 112 @@ -16364,595 +16391,595 @@ ftl_do_gc: stp x23, x24, [sp,48] stp x25, x26, [sp,64] stp x27, x28, [sp,80] - ldr w4, [x3,1392] - cbnz w4, .L2655 - ldr w4, [x3,916] - cbnz w4, .L2655 - ldrh w4, [x3,3528] + ldr w4, [x3,1400] + cbnz w4, .L2661 + ldr w4, [x3,924] + cbnz w4, .L2661 + ldrh w4, [x3,3584] cmp w4, 47 - bls .L2655 + bls .L2661 mov w23, w0 - adrp x0, .LANCHOR1+3036 + adrp x0, .LANCHOR1+3068 mov w24, w1 - ldrh w1, [x0,#:lo12:.LANCHOR1+3036] + ldrh w1, [x0,#:lo12:.LANCHOR1+3068] mov w0, 65535 cmp w1, w0 - bne .L2512 -.L2515: + bne .L2518 +.L2521: add x0, x19, :lo12:.LANCHOR2 mov w2, 65535 - ldrh w1, [x0,942] + ldrh w1, [x0,950] cmp w1, w2 - bne .L2513 - b .L2514 -.L2512: - ldrh w1, [x3,3648] + bne .L2519 + b .L2520 +.L2518: + ldrh w1, [x3,3704] cmp w1, w0 - beq .L2515 + beq .L2521 mov w0, 1 bl FtlGcFreeTempBlock mov w2, 1 - cbz w0, .L2515 - b .L2655 -.L2513: - ldrh w3, [x0,940] + cbz w0, .L2521 + b .L2661 +.L2519: + ldrh w3, [x0,948] cmp w3, w2 - bne .L2514 - strh w1, [x0,940] + bne .L2520 + strh w1, [x0,948] mov w1, -1 - strh w1, [x0,942] -.L2514: + strh w1, [x0,950] +.L2520: add x1, x19, :lo12:.LANCHOR2 cmp w23, 1 - ldr w0, [x1,932] + ldr w0, [x1,940] add w0, w0, 1 add w0, w0, w23, lsl 7 - str w0, [x1,932] - bne .L2526 - ldr w1, [x1,3908] - cbnz w1, .L2517 + str w0, [x1,940] + bne .L2532 + ldr w1, [x1,652] + cbnz w1, .L2523 adrp x1, .LANCHOR0+136 ldrb w1, [x1,#:lo12:.LANCHOR0+136] - cbz w1, .L2526 -.L2517: + cbz w1, .L2532 +.L2523: add x20, x19, :lo12:.LANCHOR2 - ldr w1, [x20,912] + ldr w1, [x20,920] cmp w1, 29 - bhi .L2526 + bhi .L2532 adrp x21, .LANCHOR4 add x1, x21, :lo12:.LANCHOR4 ldrh w1, [x1,360] add w0, w0, w1 - str w0, [x20,932] + str w0, [x20,940] bl FtlGcReFreshBadBlk ldrh w0, [x20,3920] mov w1, 65535 cmp w0, w1 - bne .L2526 - ldrh w1, [x20,940] + bne .L2532 + ldrh w1, [x20,948] cmp w1, w0 - bne .L2526 - ldr w0, [x20,932] + bne .L2532 + ldr w0, [x20,940] cmp w0, 1024 - bhi .L2518 - ldrh w0, [x20,3544] + bhi .L2524 + ldrh w0, [x20,3600] cmp w0, 63 - bhi .L2526 -.L2518: + bhi .L2532 +.L2524: add x0, x19, :lo12:.LANCHOR2 add x1, x21, :lo12:.LANCHOR4 - ldrh w2, [x0,946] - ldrh w3, [x0,3544] + ldrh w2, [x0,954] + ldrh w3, [x0,3600] add w2, w2, 64 strh wzr, [x1,360] cmp w3, w2 - bgt .L2526 - str wzr, [x0,932] - ldr w0, [x0,912] - cbnz w0, .L2519 + bgt .L2532 + str wzr, [x0,940] + ldr w0, [x0,920] + cbnz w0, .L2525 mov w0, 6 - b .L2677 -.L2519: + b .L2683 +.L2525: cmp w0, 5 - bhi .L2520 + bhi .L2526 mov w0, 18 -.L2677: +.L2683: strh w0, [x1,360] -.L2520: +.L2526: mov w0, 32 mov w27, 65535 bl List_get_gc_head_node uxth w25, w0 cmp w25, w27 - beq .L2525 + beq .L2531 add x22, x19, :lo12:.LANCHOR2 - ldrh w0, [x22,948] - cbz w0, .L2522 - ldrh w1, [x22,812] + ldrh w0, [x22,956] + cbz w0, .L2528 + ldrh w1, [x22,820] ubfiz x25, x25, 1, 16 - ldrh w3, [x22,740] - ldr x26, [x22,1176] + ldrh w3, [x22,748] + ldr x26, [x22,1184] mul w1, w1, w3 ldrh w2, [x26,x25] add w1, w1, 1 cmp w2, w1 - bgt .L2525 + bgt .L2531 add w1, w0, 1 - str wzr, [x22,920] + str wzr, [x22,928] uxth w1, w1 - strh w1, [x22,948] + strh w1, [x22,956] str x1, [x29,120] bl List_get_gc_head_node uxth w20, w0 cmp w20, w27 ldr x1, [x29,120] - beq .L2525 + beq .L2531 ubfiz x27, x20, 1, 16 - adrp x0, .LC128 + adrp x0, .LC131 ldrh w4, [x26,x25] - add x0, x0, :lo12:.LC128 + add x0, x0, :lo12:.LC131 mov w2, w20 ldrh w3, [x26,x27] bl printk - ldrh w0, [x22,948] + ldrh w0, [x22,956] cmp w0, 40 - bls .L2523 - ldr x0, [x22,1176] + bls .L2529 + ldr x0, [x22,1184] ldrh w0, [x0,x27] cmp w0, 32 - bls .L2523 - strh wzr, [x22,948] -.L2523: + bls .L2529 + strh wzr, [x22,956] +.L2529: add x21, x21, :lo12:.LANCHOR4 mov w0, 6 strh w0, [x21,360] - b .L2527 -.L2522: + b .L2533 +.L2528: mov w0, 1 - strh w0, [x22,948] -.L2525: + strh w0, [x22,956] +.L2531: bl GetSwlReplaceBlock uxth w20, w0 mov w0, 65535 cmp w20, w0 - bne .L2527 + bne .L2533 add x21, x21, :lo12:.LANCHOR4 strh wzr, [x21,360] -.L2526: +.L2532: add x22, x19, :lo12:.LANCHOR2 mov w0, 65535 ldrh w20, [x22,3920] cmp w20, w0 - bne .L2683 - ldrh w0, [x22,3648] + bne .L2689 + ldrh w0, [x22,3704] cmp w0, w20 - beq .L2684 -.L2527: + beq .L2690 +.L2533: mov w0, 65535 cmp w20, w0 cset w1, eq - cbz w1, .L2540 - cbnz w23, .L2540 + cbz w1, .L2546 + cbnz w23, .L2546 add x0, x19, :lo12:.LANCHOR2 mov w21, 1 - ldrh w1, [x0,3544] + ldrh w1, [x0,3600] cmp w1, 24 - bhi .L2541 + bhi .L2547 cmp w1, 16 - ldrh w21, [x0,810] - bls .L2542 + ldrh w21, [x0,818] + bls .L2548 lsr w21, w21, 5 - b .L2541 -.L2542: + b .L2547 +.L2548: cmp w1, 12 - bls .L2543 + bls .L2549 lsr w21, w21, 4 - b .L2541 -.L2543: + b .L2547 +.L2549: lsr w0, w21, 2 cmp w1, 9 csel w21, w0, w21, cs -.L2541: +.L2547: add x0, x19, :lo12:.LANCHOR2 - ldrh w2, [x0,944] + ldrh w2, [x0,952] cmp w2, w1 - bcs .L2545 - ldrh w1, [x0,3648] + bcs .L2551 + ldrh w1, [x0,3704] mov w2, 65535 cmp w1, w2 - bne .L2546 - ldrh w2, [x0,940] + bne .L2552 + ldrh w2, [x0,948] cmp w2, w1 - bne .L2546 + bne .L2552 adrp x1, .LANCHOR4+360 ldrh w2, [x1,#:lo12:.LANCHOR4+360] - cbnz w2, .L2547 - ldr w1, [x0,1388] - ldr w3, [x0,3836] + cbnz w2, .L2553 + ldr w1, [x0,1396] + ldr w3, [x0,3892] add w1, w1, w1, lsl 1 cmp w3, w1, lsr 2 - bcs .L2548 -.L2547: + bcs .L2554 +.L2553: add x1, x19, :lo12:.LANCHOR2 ldrh w0, [x1,3916] add w0, w0, w0, lsl 1 asr w0, w0, 2 - strh w0, [x1,944] - b .L2549 -.L2548: + strh w0, [x1,952] + b .L2555 +.L2554: mov w1, 18 - strh w1, [x0,944] -.L2549: + strh w1, [x0,952] +.L2555: add x19, x19, :lo12:.LANCHOR2 - str wzr, [x19,920] - b .L2655 -.L2546: + str wzr, [x19,928] + b .L2661 +.L2552: add x1, x19, :lo12:.LANCHOR2 ldrh w0, [x1,3916] add w0, w0, w0, lsl 1 asr w0, w0, 2 - strh w0, [x1,944] -.L2545: + strh w0, [x1,952] +.L2551: cmp w24, 2 - bhi .L2610 + bhi .L2616 add x0, x19, :lo12:.LANCHOR2 - ldr w0, [x0,3908] - cbz w0, .L2610 + ldr w0, [x0,652] + cbz w0, .L2616 add w21, w21, 1 uxth w21, w21 - b .L2610 -.L2540: + b .L2616 +.L2546: add x21, x19, :lo12:.LANCHOR2 mov w2, 65535 - ldrh w0, [x21,3648] + ldrh w0, [x21,3704] cmp w0, w2 - bne .L2552 - cbz w1, .L2552 - ldrh w1, [x21,940] + bne .L2558 + cbz w1, .L2558 + ldrh w1, [x21,948] cmp w1, w0 - bne .L2552 + bne .L2558 ldrh w1, [x21,3920] cmp w1, w0 - beq .L2553 -.L2558: + beq .L2559 +.L2564: mov w20, 65535 - b .L2552 -.L2553: - ldrh w24, [x21,3544] + b .L2558 +.L2559: + ldrh w24, [x21,3600] adrp x20, .LANCHOR4 - ldrh w0, [x21,944] - str wzr, [x21,920] + ldrh w0, [x21,952] + str wzr, [x21,928] cmp w0, w24 - bcs .L2554 + bcs .L2560 add x0, x20, :lo12:.LANCHOR4 ldrh w0, [x0,360] - cbnz w0, .L2555 - ldr w0, [x21,1388] - ldr w1, [x21,3836] + cbnz w0, .L2561 + ldr w0, [x21,1396] + ldr w1, [x21,3892] add w0, w0, w0, lsl 1 cmp w1, w0, lsr 2 - bcs .L2556 -.L2555: + bcs .L2562 +.L2561: add x19, x19, :lo12:.LANCHOR2 ldrh w0, [x19,3916] add w0, w0, w0, lsl 1 asr w0, w0, 2 - strh w0, [x19,944] - b .L2557 -.L2556: + strh w0, [x19,952] + b .L2563 +.L2562: mov w0, 18 - strh w0, [x21,944] -.L2557: + strh w0, [x21,952] +.L2563: add x20, x20, :lo12:.LANCHOR4 bl FtlReadRefresh ldrh w2, [x20,360] - b .L2655 -.L2554: + b .L2661 +.L2560: add x22, x20, :lo12:.LANCHOR4 ldrh w0, [x22,360] - cbnz w0, .L2558 + cbnz w0, .L2564 ldrh w20, [x21,3916] add w1, w20, w20, lsl 1 asr w1, w1, 2 - strh w1, [x21,944] + strh w1, [x21,952] bl List_get_gc_head_node ubfiz x0, x0, 1, 16 - ldr x1, [x21,1176] - ldrh w2, [x21,740] + ldr x1, [x21,1184] + ldrh w2, [x21,748] ldrh w1, [x1,x0] - ldrh w0, [x21,812] + ldrh w0, [x21,820] mul w0, w0, w2 mov w2, 2 sdiv w0, w0, w2 cmp w1, w0 - ble .L2559 + ble .L2565 sub w20, w20, #1 cmp w24, w20 - blt .L2559 + blt .L2565 bl FtlReadRefresh - b .L2681 -.L2559: - cbnz w1, .L2558 + b .L2687 +.L2565: + cbnz w1, .L2564 mov w0, -1 add x19, x19, :lo12:.LANCHOR2 bl decrement_vpc_count - ldrh w2, [x19,3544] + ldrh w2, [x19,3600] add w2, w2, 1 - b .L2655 -.L2552: + b .L2661 +.L2558: add x0, x19, :lo12:.LANCHOR2 mov w21, 2 - ldr w0, [x0,3908] + ldr w0, [x0,652] cmp w0, wzr csinc w21, w21, wzr, ne - b .L2551 -.L2610: + b .L2557 +.L2616: mov w20, 65535 -.L2551: +.L2557: add x0, x19, :lo12:.LANCHOR2 mov w2, 65535 ldrh w1, [x0,3920] cmp w1, w2 - bne .L2561 + bne .L2567 cmp w20, w1 - beq .L2562 + beq .L2568 strh w20, [x0,3920] - b .L2563 -.L2562: - ldrh w1, [x0,940] + b .L2569 +.L2568: + ldrh w1, [x0,948] cmp w1, w20 - beq .L2563 + beq .L2569 ubfiz x1, x1, 1, 16 - ldr x2, [x0,1176] + ldr x2, [x0,1184] ldrh w1, [x2,x1] - cbnz w1, .L2564 + cbnz w1, .L2570 mov w1, -1 - strh w1, [x0,940] -.L2564: + strh w1, [x0,948] +.L2570: add x0, x19, :lo12:.LANCHOR2 - ldrh w1, [x0,940] + ldrh w1, [x0,948] strh w1, [x0,3920] mov w1, -1 - strh w1, [x0,940] -.L2563: + strh w1, [x0,948] +.L2569: add x22, x19, :lo12:.LANCHOR2 mov w1, 65535 ldrh w0, [x22,3920] strb wzr, [x22,3928] cmp w0, w1 - beq .L2561 + beq .L2567 bl IsBlkInGcList - cbz w0, .L2566 + cbz w0, .L2572 mov w0, -1 strh w0, [x22,3920] -.L2566: +.L2572: adrp x0, .LANCHOR0+136 ldrb w0, [x0,#:lo12:.LANCHOR0+136] - cbz w0, .L2567 + cbz w0, .L2573 add x0, x19, :lo12:.LANCHOR2 add x22, x0, 3920 ldrh w0, [x0,3920] bl ftl_get_blk_mode strb w0, [x22,8] -.L2567: +.L2573: add x22, x19, :lo12:.LANCHOR2 mov w0, 65535 add x24, x22, 3920 ldrh w1, [x22,3920] cmp w1, w0 - beq .L2561 + beq .L2567 mov x0, x24 bl make_superblock strh wzr, [x22,3922] adrp x0, .LANCHOR4 ldrh w2, [x22,3920] add x0, x0, :lo12:.LANCHOR4 - ldr x1, [x22,1176] + ldr x1, [x22,1184] strb wzr, [x22,3926] strh wzr, [x0,362] ldrh w1, [x1,x2,lsl 1] strh w1, [x0,364] -.L2561: +.L2567: add x3, x19, :lo12:.LANCHOR2 ldrh w0, [x3,3920] - ldrh w1, [x3,3552] + ldrh w1, [x3,3608] cmp w1, w0 - beq .L2568 - ldrh w1, [x3,3600] + beq .L2574 + ldrh w1, [x3,3656] cmp w1, w0 - beq .L2568 -.L2569: + beq .L2574 +.L2575: mov x28, x3 mov w24, 65535 - b .L2570 -.L2568: + b .L2576 +.L2574: add x19, x19, :lo12:.LANCHOR2 mov w0, -1 strh w0, [x19,3920] - b .L2682 -.L2591: + b .L2688 +.L2597: ldrh w0, [x28,3922] add w21, w21, w0 uxth w21, w21 strh w21, [x28,3922] cmp w21, w25 - bcs .L2685 -.L2593: - ldrh w0, [x28,3544] + bcs .L2691 +.L2599: + ldrh w0, [x28,3600] cmp w0, 2 - bhi .L2596 - ldrh w21, [x28,810] -.L2570: + bhi .L2602 + ldrh w21, [x28,818] +.L2576: ldrh w0, [x28,3920] cmp w0, w24 - bne .L2571 - str wzr, [x28,920] + bne .L2577 + str wzr, [x28,928] adrp x25, .LANCHOR4 -.L2572: - ldrh w22, [x28,948] +.L2578: + ldrh w22, [x28,956] mov w0, w22 bl List_get_gc_head_node uxth w26, w0 cmp w26, w24 strh w26, [x28,3920] - bne .L2573 - strh wzr, [x28,948] + bne .L2579 + strh wzr, [x28,956] mov w2, 8 - b .L2655 -.L2573: + b .L2661 +.L2579: mov w0, w26 add w22, w22, 1 bl IsBlkInGcList - cbz w0, .L2574 - strh w22, [x28,948] - b .L2572 -.L2574: - ldrh w5, [x28,740] + cbz w0, .L2580 + strh w22, [x28,956] + b .L2578 +.L2580: + ldrh w5, [x28,748] ubfiz x1, x26, 1, 16 - ldrh w0, [x28,810] + ldrh w0, [x28,818] uxth w22, w22 - ldr x2, [x28,1176] + ldr x2, [x28,1184] mov w3, 2 - strh w22, [x28,948] + strh w22, [x28,956] mul w0, w0, w5 ldrh w4, [x2,x1] sdiv w5, w0, w3 cmp w4, w5 - bgt .L2576 + bgt .L2582 cmp w4, 8 - bls .L2577 + bls .L2583 cmp w22, 48 - bls .L2577 + bls .L2583 add x4, x25, :lo12:.LANCHOR4 ldrh w4, [x4,176] cmp w4, 35 - bhi .L2577 -.L2576: - strh wzr, [x28,948] -.L2577: + bhi .L2583 +.L2582: + strh wzr, [x28,956] +.L2583: ldrh w1, [x2,x1] cmp w1, w0 - blt .L2578 + blt .L2584 cmp w20, w24 - bne .L2578 + bne .L2584 add x19, x19, :lo12:.LANCHOR2 mov w0, -1 - strh wzr, [x19,948] + strh wzr, [x19,956] strh w0, [x19,3920] -.L2682: +.L2688: adrp x0, .LANCHOR4+360 ldrh w2, [x0,#:lo12:.LANCHOR4+360] - b .L2655 -.L2578: - cbnz w1, .L2579 + b .L2661 +.L2584: + cbnz w1, .L2585 mov w0, -1 bl decrement_vpc_count - ldrh w0, [x28,948] + ldrh w0, [x28,956] add w0, w0, 1 - strh w0, [x28,948] - b .L2572 -.L2579: + strh w0, [x28,956] + b .L2578 +.L2585: adrp x0, .LANCHOR0 strb wzr, [x28,3928] add x0, x0, :lo12:.LANCHOR0 ldrb w0, [x0,136] - cbz w0, .L2580 + cbz w0, .L2586 mov w0, w26 bl ftl_get_blk_mode strb w0, [x28,3928] -.L2580: +.L2586: add x22, x28, 3920 mov x0, x22 bl make_superblock adrp x1, .LANCHOR4 ldrh w2, [x28,3920] add x1, x1, :lo12:.LANCHOR4 - ldr x0, [x28,1176] + ldr x0, [x28,1184] strh wzr, [x1,362] ldrh w0, [x0,x2,lsl 1] strh w0, [x1,364] strh wzr, [x28,3922] strb wzr, [x28,3926] -.L2571: +.L2577: cmp w23, 1 - bne .L2581 + bne .L2587 bl FtlReadRefresh -.L2581: +.L2587: mov w0, 1 - str w0, [x28,916] + str w0, [x28,924] adrp x0, .LANCHOR0 - ldrh w25, [x28,810] + ldrh w25, [x28,818] add x0, x0, :lo12:.LANCHOR0 ldrb w0, [x0,136] - cbz w0, .L2582 + cbz w0, .L2588 ldrb w0, [x28,3928] cmp w0, 1 - bne .L2582 - ldrh w25, [x28,812] -.L2582: + bne .L2588 + ldrh w25, [x28,820] +.L2588: ldrh w0, [x28,3922] add w1, w0, w21 cmp w1, w25 - ble .L2583 + ble .L2589 sub w21, w25, w0 uxth w21, w21 -.L2583: +.L2589: mov w26, 0 -.L2584: +.L2590: cmp w21, w26, uxth - bls .L2591 + bls .L2597 add x1, x28, 3920 ldrh w4, [x1,2] mov x0, 0 - ldrh w6, [x28,740] + ldrh w6, [x28,748] add w4, w4, w26 mov w22, w0 -.L2592: +.L2598: cmp w6, w0, uxth - bls .L2686 + bls .L2692 add x2, x1, x0, lsl 1 ldrh w2, [x2,16] cmp w2, w24 - beq .L2585 + beq .L2591 mov w3, 56 - ldr x7, [x28,1016] + ldr x7, [x28,1024] orr w2, w4, w2, lsl 10 umull x5, w22, w3 add w22, w22, 1 add x5, x7, x5 uxth w22, w22 str w2, [x5,4] -.L2585: +.L2591: add x0, x0, 1 - b .L2592 -.L2686: - ldr x0, [x28,1016] + b .L2598 +.L2692: + ldr x0, [x28,1024] mov w1, w22 ldrb w2, [x28,3928] mov x27, 0 bl FlashReadPages -.L2587: +.L2593: cmp w22, w27, uxth - bls .L2687 + bls .L2693 mov x0, 56 mul x5, x27, x0 - ldr x0, [x28,1016] + ldr x0, [x28,1024] add x1, x0, x5 ldr w0, [x0,x5] cmn w0, #1 ldr x4, [x1,16] - beq .L2612 + beq .L2618 ldrh w0, [x4] mov w1, 61589 cmp w0, w1 - bne .L2612 + bne .L2618 ldr w0, [x4,8] add x1, x29, 140 mov w2, 0 str x5, [x29,112] str x4, [x29,120] bl log2phys - ldr x6, [x28,1016] + ldr x6, [x28,1024] ldr x5, [x29,112] ldr w0, [x29,140] add x6, x6, x5 @@ -16960,9 +16987,9 @@ ftl_do_gc: and w0, w0, 2147483647 ldr w1, [x6,4] cmp w0, w1 - bne .L2612 + bne .L2618 adrp x0, .LANCHOR4 - ldr x1, [x28,992] + ldr x1, [x28,1000] add x2, x0, :lo12:.LANCHOR4 str x2, [x29,112] str x5, [x29,96] @@ -16983,144 +17010,144 @@ ftl_do_gc: ldr x5, [x29,96] str w0, [x1,4] ldr w0, [x2,144] - ldr x1, [x28,992] + ldr x1, [x28,1000] ldr x4, [x29,104] str x2, [x29,120] madd x0, x0, x3, x1 - ldr x1, [x28,1016] + ldr x1, [x28,1024] add x1, x1, x5 ldr x6, [x1,8] str x6, [x0,8] - add x6, x28, 3648 + add x6, x28, 3704 str x6, [x29,112] ldr x1, [x1,16] str x1, [x0,16] mov w1, 1 ldr w0, [x29,140] str w0, [x4,12] - ldrh w0, [x28,3648] + ldrh w0, [x28,3704] strh w0, [x4,2] - ldr w0, [x28,868] + ldr w0, [x28,876] str w0, [x4,4] ldr w0, [x2,144] add w0, w0, 1 str w0, [x2,144] - ldr x0, [x28,1016] + ldr x0, [x28,1024] add x0, x0, x5 bl FtlGcBufAlloc adrp x0, .LANCHOR0 add x0, x0, :lo12:.LANCHOR0 ldrb w0, [x0,136] - cbnz w0, .L2589 + cbnz w0, .L2595 ldr x6, [x29,112] ldr x2, [x29,120] ldrb w0, [x6,7] ldr w1, [x2,144] cmp w1, w0 - beq .L2589 + beq .L2595 ldrh w0, [x6,4] - cbnz w0, .L2612 -.L2589: + cbnz w0, .L2618 +.L2595: bl Ftl_gc_temp_data_write_back - cbz w0, .L2612 + cbz w0, .L2618 adrp x0, .LANCHOR4 add x19, x19, :lo12:.LANCHOR2 add x0, x0, :lo12:.LANCHOR4 - str wzr, [x19,916] + str wzr, [x19,924] ldrh w2, [x0,360] - b .L2655 -.L2612: + b .L2661 +.L2618: add x27, x27, 1 - b .L2587 -.L2687: + b .L2593 +.L2693: add w26, w26, 1 - b .L2584 -.L2685: + b .L2590 +.L2691: adrp x0, .LANCHOR4 add x22, x0, :lo12:.LANCHOR4 mov x21, x0 ldr w1, [x22,144] - cbz w1, .L2594 + cbz w1, .L2600 bl Ftl_gc_temp_data_write_back - cbz w0, .L2594 - str wzr, [x28,916] -.L2681: + cbz w0, .L2600 + str wzr, [x28,924] +.L2687: ldrh w2, [x22,360] - b .L2655 -.L2594: + b .L2661 +.L2600: add x0, x21, :lo12:.LANCHOR4 ldrh w2, [x0,362] - cbnz w2, .L2595 + cbnz w2, .L2601 ldrh w0, [x28,3920] - ldr x1, [x28,1176] + ldr x1, [x28,1184] lsl x0, x0, 1 ldrh w4, [x1,x0] - cbz w4, .L2595 + cbz w4, .L2601 strh w2, [x1,x0] ldrh w0, [x28,3920] bl update_vpc_list bl FtlCacheWriteBack bl l2p_flush bl FtlVpcTblFlush -.L2595: +.L2601: mov w0, -1 strh w0, [x28,3920] - b .L2593 -.L2596: + b .L2599 +.L2602: adrp x1, .LANCHOR4+360 - str wzr, [x28,916] + str wzr, [x28,924] ldrh w2, [x1,#:lo12:.LANCHOR4+360] cmp w2, wzr csinc w2, w2, w0, ne - b .L2655 -.L2684: - ldrh w25, [x22,940] + b .L2661 +.L2690: + ldrh w25, [x22,948] cmp w25, w20 - bne .L2527 - ldrh w0, [x22,3544] + bne .L2533 + ldrh w0, [x22,3600] mov w2, 1024 - ldr w1, [x22,932] + ldr w1, [x22,940] cmp w0, 24 mov w0, 5120 csel w0, w0, w2, cc cmp w1, w0 - bls .L2527 + bls .L2533 adrp x0, .LANCHOR4+360 - str wzr, [x22,932] + str wzr, [x22,940] strh wzr, [x0,#:lo12:.LANCHOR4+360] bl GetSwlReplaceBlock uxth w20, w0 cmp w20, w25 - bne .L2529 - ldrh w1, [x22,3544] - ldrh w0, [x22,946] + bne .L2535 + ldrh w1, [x22,3600] + ldrh w0, [x22,954] cmp w1, w0 - bcs .L2530 + bcs .L2536 mov w0, 64 bl List_get_gc_head_node uxth w0, w0 cmp w0, w20 - beq .L2539 - ldr w2, [x22,856] + beq .L2545 + ldr w2, [x22,864] uxtw x1, w0 - cbnz w2, .L2532 - ldrh w0, [x22,760] + cbnz w2, .L2538 + ldrh w0, [x22,768] cmp w0, 3 - beq .L2532 - ldr w0, [x22,860] - cbnz w0, .L2532 - ldr w0, [x22,3908] - cbnz w0, .L2532 + beq .L2538 + ldr w0, [x22,868] + cbnz w0, .L2538 + ldr w0, [x22,652] + cbnz w0, .L2538 adrp x0, .LANCHOR0+136 ldrb w0, [x0,#:lo12:.LANCHOR0+136] - cbz w0, .L2533 -.L2532: + cbz w0, .L2539 +.L2538: add x2, x19, :lo12:.LANCHOR2 - ldr x0, [x2,1176] + ldr x0, [x2,1184] ldrh w4, [x0,x1,lsl 1] - ldrh w1, [x2,812] - ldrh w0, [x2,740] - ldrh w2, [x2,760] + ldrh w1, [x2,820] + ldrh w0, [x2,748] + ldrh w2, [x2,768] mul w3, w1, w0 cmp w2, 3 mov w0, 0 @@ -17128,68 +17155,68 @@ ftl_do_gc: csel w0, w1, w0, eq add w0, w3, w0 cmp w4, w0 - bgt .L2535 + bgt .L2541 mov w0, 0 bl List_get_gc_head_node uxth w20, w0 add x0, x19, :lo12:.LANCHOR2 - ldr w1, [x0,1388] - ldr w2, [x0,3836] + ldr w1, [x0,1396] + ldr w2, [x0,3892] add w1, w1, w1, lsl 1 cmp w2, w1, lsr 2 - bhi .L2679 + bhi .L2685 mov w1, 160 - b .L2678 -.L2535: + b .L2684 +.L2541: add x0, x19, :lo12:.LANCHOR2 mov w1, 128 - b .L2680 -.L2533: - ldr x2, [x22,1176] + b .L2686 +.L2539: + ldr x2, [x22,1184] ldrh w1, [x2,x1,lsl 1] cmp w1, 7 - bhi .L2538 + bhi .L2544 bl List_get_gc_head_node uxth w20, w0 add x0, x19, :lo12:.LANCHOR2 -.L2679: +.L2685: mov w1, 128 -.L2678: - strh w1, [x0,946] +.L2684: + strh w1, [x0,954] mov w0, 65535 cmp w20, w0 - beq .L2539 - b .L2529 -.L2538: + beq .L2545 + b .L2535 +.L2544: add x0, x19, :lo12:.LANCHOR2 mov w1, 64 -.L2680: - strh w1, [x0,946] - b .L2539 -.L2530: +.L2686: + strh w1, [x0,954] + b .L2545 +.L2536: mov w0, 80 - strh w0, [x22,946] - b .L2539 -.L2529: + strh w0, [x22,954] + b .L2545 +.L2535: add x5, x19, :lo12:.LANCHOR2 ubfiz x4, x20, 1, 32 - adrp x0, .LC129 + adrp x0, .LC132 mov w1, w20 - add x0, x0, :lo12:.LC129 - ldr x3, [x5,1176] - ldr x6, [x5,1160] - ldrh w2, [x5,3544] + add x0, x0, :lo12:.LC132 + ldr x3, [x5,1184] + ldr x6, [x5,1168] + ldrh w2, [x5,3600] ldrh w3, [x3,x4] - ldrh w5, [x5,944] + ldrh w5, [x5,952] ldrh w4, [x6,x4] bl printk -.L2539: +.L2545: bl FtlGcReFreshBadBlk - b .L2527 -.L2683: + b .L2533 +.L2689: mov w20, w0 - b .L2527 -.L2655: + b .L2533 +.L2661: mov w0, w2 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -17214,131 +17241,131 @@ FtlCacheWriteBack: stp x21, x22, [sp,32] stp x23, x24, [sp,48] stp x25, x26, [sp,64] - ldr w22, [x0,1392] - cbnz w22, .L2690 - ldr w1, [x0,960] - cbz w1, .L2690 + ldr w22, [x0,1400] + cbnz w22, .L2696 + ldr w1, [x0,968] + cbz w1, .L2696 adrp x0, .LANCHOR0+136 ldrb w0, [x0,#:lo12:.LANCHOR0+136] - cbz w0, .L2692 + cbz w0, .L2698 ldrb w0, [x20,8] cmp w0, 1 cset w22, eq -.L2692: +.L2698: add x0, x19, :lo12:.LANCHOR2 ldrb w3, [x20,9] - adrp x24, .LC130 + adrp x24, .LC133 mov w2, w22 mov w23, 0 mov w26, 56 - ldr x0, [x0,1024] - add x24, x24, :lo12:.LC130 + ldr x0, [x0,1032] + add x24, x24, :lo12:.LC133 bl FlashProgPages -.L2693: +.L2699: add x0, x19, :lo12:.LANCHOR2 - ldr w1, [x0,960] + ldr w1, [x0,968] cmp w23, w1 - bcs .L2710 + bcs .L2716 umull x21, w23, w26 - ldr x1, [x0,1024] + ldr x1, [x0,1032] add x0, x1, x21 ldr w25, [x1,x21] cmn w25, #1 - beq .L2713 + beq .L2719 ldr w1, [x0,4] - cbz w22, .L2727 + cbz w22, .L2733 orr w1, w1, -2147483648 -.L2727: +.L2733: ldr w0, [x0,24] mov w2, 1 str w1, [x29,108] add x25, x19, :lo12:.LANCHOR2 add x1, x29, 108 bl log2phys - ldr x0, [x25,1024] + ldr x0, [x25,1032] add x21, x0, x21 ldr x0, [x21,16] ldr w0, [x0,12] cmn w0, #1 - beq .L2697 + beq .L2703 lsr x0, x0, 10 bl P2V_block_in_plane uxth w1, w0 ubfiz x0, x1, 1, 16 - ldr x2, [x25,1176] + ldr x2, [x25,1184] mov w21, w1 ldrh w2, [x2,x0] - cbnz w2, .L2698 + cbnz w2, .L2704 mov x0, x24 bl printk -.L2698: +.L2704: mov w0, w21 bl decrement_vpc_count -.L2697: +.L2703: add w23, w23, 1 - b .L2693 -.L2729: + b .L2699 +.L2735: mov w20, 16386 -.L2709: +.L2715: add x0, x19, :lo12:.LANCHOR2 - ldrh w0, [x0,950] - cbz w0, .L2710 + ldrh w0, [x0,958] + cbz w0, .L2716 mov w0, 1 mov w1, w0 bl ftl_do_gc subs w20, w20, #1 - bne .L2709 -.L2710: + bne .L2715 +.L2716: add x19, x19, :lo12:.LANCHOR2 - str wzr, [x19,960] - b .L2690 -.L2713: - adrp x26, .LC130 + str wzr, [x19,968] + b .L2696 +.L2719: + adrp x26, .LC133 mov w24, 0 mov w27, 56 - add x26, x26, :lo12:.LC130 -.L2694: - add x0, x19, :lo12:.LANCHOR2 - ldr w1, [x0,960] - cmp w24, w1 - bcs .L2729 - umull x21, w24, w27 - ldr x0, [x0,1024] - str w25, [x0,x21] + add x26, x26, :lo12:.LC133 .L2700: + add x0, x19, :lo12:.LANCHOR2 + ldr w1, [x0,968] + cmp w24, w1 + bcs .L2735 + umull x21, w24, w27 + ldr x0, [x0,1032] + str w25, [x0,x21] +.L2706: add x23, x19, :lo12:.LANCHOR2 - ldr x0, [x23,1024] + ldr x0, [x23,1032] add x1, x0, x21 ldr w0, [x0,x21] cmn w0, #1 ldr w0, [x1,4] - bne .L2730 + bne .L2736 lsr x0, x0, 10 bl P2V_block_in_plane ldrh w1, [x20] cmp w1, w0, uxth - bne .L2701 - ldr x2, [x23,1176] + bne .L2707 + ldr x2, [x23,1184] ubfiz x1, x1, 1, 16 ldrh w3, [x20,4] ldrh w0, [x2,x1] sub w0, w0, w3 strh w0, [x2,x1] strb wzr, [x20,6] - ldrh w0, [x23,810] + ldrh w0, [x23,818] strh w0, [x20,2] strh wzr, [x20,4] -.L2701: +.L2707: ldrh w0, [x20,4] - cbnz w0, .L2702 + cbnz w0, .L2708 mov x0, x20 bl allocate_new_data_superblock -.L2702: +.L2708: add x23, x19, :lo12:.LANCHOR2 ldr w0, [x23,4064] add w0, w0, 1 str w0, [x23,4064] - ldr x0, [x23,1024] + ldr x0, [x23,1032] add x0, x0, x21 ldr w0, [x0,4] lsr x0, x0, 10 @@ -17346,51 +17373,51 @@ FtlCacheWriteBack: mov x0, x20 bl get_new_active_ppa str w0, [x29,108] - ldr x1, [x23,1024] + ldr x1, [x23,1032] mov w2, w22 add x1, x1, x21 str w0, [x1,4] mov w1, 1 - ldr x0, [x23,1024] + ldr x0, [x23,1032] ldrb w3, [x20,9] add x0, x0, x21 bl FlashProgPages - ldr w0, [x23,1392] - cbz w0, .L2700 - b .L2690 -.L2730: - cbz w22, .L2728 + ldr w0, [x23,1400] + cbz w0, .L2706 + b .L2696 +.L2736: + cbz w22, .L2734 orr w0, w0, -2147483648 -.L2728: +.L2734: str w0, [x29,108] mov w2, 1 ldr w0, [x1,24] add x23, x19, :lo12:.LANCHOR2 add x1, x29, 108 bl log2phys - ldr x0, [x23,1024] + ldr x0, [x23,1032] add x21, x0, x21 ldr x0, [x21,16] ldr w0, [x0,12] cmn w0, #1 - beq .L2706 + beq .L2712 lsr x0, x0, 10 bl P2V_block_in_plane uxth w1, w0 ubfiz x0, x1, 1, 16 - ldr x2, [x23,1176] + ldr x2, [x23,1184] mov w21, w1 ldrh w2, [x2,x0] - cbnz w2, .L2707 + cbnz w2, .L2713 mov x0, x26 bl printk -.L2707: +.L2713: mov w0, w21 bl decrement_vpc_count -.L2706: +.L2712: add w24, w24, 1 - b .L2694 -.L2690: + b .L2700 +.L2696: mov w0, 0 ldr x27, [sp,80] ldp x19, x20, [sp,16] @@ -17404,17 +17431,17 @@ FtlCacheWriteBack: .global FtlSysFlush .type FtlSysFlush, %function FtlSysFlush: - adrp x0, .LANCHOR2+1392 + adrp x0, .LANCHOR2+1400 stp x29, x30, [sp, -16]! add x29, sp, 0 - ldr w0, [x0,#:lo12:.LANCHOR2+1392] - cbnz w0, .L2732 + ldr w0, [x0,#:lo12:.LANCHOR2+1400] + cbnz w0, .L2738 bl FtlCacheWriteBack bl l2p_flush mov w0, 1 bl FtlEctTblFlush bl FtlVpcTblFlush -.L2732: +.L2738: mov w0, 0 ldp x29, x30, [sp], 16 ret @@ -17423,14 +17450,14 @@ FtlSysFlush: .global FtlDeInit .type FtlDeInit, %function FtlDeInit: - adrp x0, .LANCHOR1+3032 + adrp x0, .LANCHOR1+3064 stp x29, x30, [sp, -16]! add x29, sp, 0 - ldr w0, [x0,#:lo12:.LANCHOR1+3032] + ldr w0, [x0,#:lo12:.LANCHOR1+3064] cmp w0, 1 - bne .L2734 + bne .L2740 bl FtlSysFlush -.L2734: +.L2740: mov w0, 0 ldp x29, x30, [sp], 16 ret @@ -17473,73 +17500,73 @@ ftl_discard: ldr w1, [x0,#:lo12:.LANCHOR0+4048] mov w0, -1 cmp w2, w1 - bhi .L2738 + bhi .L2744 cmp w19, 31 - bls .L2752 + bls .L2758 adrp x22, .LANCHOR2 add x21, x22, :lo12:.LANCHOR2 - ldr w0, [x21,1392] - cbnz w0, .L2752 + ldr w0, [x21,1400] + cbnz w0, .L2758 bl FtlCacheWriteBack - ldrh w1, [x21,816] + ldrh w1, [x21,824] udiv w21, w20, w1 msub w20, w1, w21, w20 uxth w20, w20 - cbz w20, .L2741 + cbz w20, .L2747 sub w1, w1, w20 add w21, w21, 1 cmp w1, w19 csel w1, w1, w19, ls sub w19, w19, w1, uxth -.L2741: +.L2747: mov w0, -1 adrp x23, .LANCHOR4 str w0, [x29,76] -.L2742: +.L2748: add x20, x22, :lo12:.LANCHOR2 - ldrh w0, [x20,816] + ldrh w0, [x20,824] cmp w19, w0 - bcc .L2753 + bcc .L2759 mov w0, w21 add x1, x29, 72 mov w2, 0 bl log2phys ldr w0, [x29,72] cmn w0, #1 - beq .L2743 + beq .L2749 add x1, x23, :lo12:.LANCHOR4 mov w2, 1 ldr w0, [x1,376] add w0, w0, 1 str w0, [x1,376] - ldr w0, [x20,880] + ldr w0, [x20,888] add x1, x29, 76 add w0, w0, 1 - str w0, [x20,880] + str w0, [x20,888] mov w0, w21 bl log2phys ldr w0, [x29,72] lsr x0, x0, 10 bl P2V_block_in_plane bl decrement_vpc_count -.L2743: +.L2749: add x0, x22, :lo12:.LANCHOR2 add w21, w21, 1 - ldrh w0, [x0,816] + ldrh w0, [x0,824] sub w19, w19, w0 - b .L2742 -.L2753: + b .L2748 +.L2759: adrp x0, .LANCHOR4 add x0, x0, :lo12:.LANCHOR4 ldr w1, [x0,376] cmp w1, 32 - bls .L2752 + bls .L2758 str wzr, [x0,376] bl l2p_flush bl FtlVpcTblFlush -.L2752: +.L2758: mov w0, 0 -.L2738: +.L2744: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldr x23, [sp,48] @@ -17558,74 +17585,74 @@ FtlGcFreeTempBlock: stp x21, x22, [sp,32] stp x23, x24, [sp,48] stp x25, x26, [sp,64] - ldr w3, [x2,1392] - ldrh w1, [x2,810] - cbnz w3, .L2789 - ldrh w20, [x2,3648] + ldr w3, [x2,1400] + ldrh w1, [x2,818] + cbnz w3, .L2795 + ldrh w20, [x2,3704] mov w4, 65535 cmp w20, w4 - bne .L2757 -.L2766: + bne .L2763 +.L2772: add x20, x19, :lo12:.LANCHOR2 adrp x21, .LANCHOR4 add x22, x21, :lo12:.LANCHOR4 mov w0, 65535 - add x23, x20, 3648 - ldrh w1, [x20,3648] + add x23, x20, 3704 + ldrh w1, [x20,3704] str wzr, [x22,168] cmp w1, w0 - beq .L2789 + beq .L2795 bl FtlCacheWriteBack mov w26, 12 ldrb w0, [x23,7] - ldrh w3, [x20,810] - ldr x1, [x20,1176] - ldrh w2, [x20,3648] + ldrh w3, [x20,818] + ldr x1, [x20,1184] + ldrh w2, [x20,3704] mul w0, w0, w3 strh w0, [x1,x2,lsl 1] ldrh w1, [x22,178] mov w22, 0 - ldr w0, [x20,872] + ldr w0, [x20,880] add w0, w1, w0 - str w0, [x20,872] - b .L2767 -.L2757: - cbz w0, .L2760 + str w0, [x20,880] + b .L2773 +.L2763: + cbz w0, .L2766 adrp x0, .LANCHOR1 add x0, x0, :lo12:.LANCHOR1 - ldrh w5, [x0,3036] + ldrh w5, [x0,3068] cmp w5, w4 - beq .L2761 -.L2762: + beq .L2767 +.L2768: mov w1, 2 - b .L2760 -.L2761: - strh w3, [x0,3036] - ldrh w0, [x2,3544] + b .L2766 +.L2767: + strh w3, [x0,3068] + ldrh w0, [x2,3600] cmp w0, 17 - bhi .L2762 -.L2760: + bhi .L2768 +.L2766: add x21, x19, :lo12:.LANCHOR2 - add x0, x21, 3648 + add x0, x21, 3704 bl FtlGcScanTempBlk str w0, [x29,92] cmn w0, #1 - beq .L2763 + beq .L2769 ubfiz x20, x20, 1, 16 - ldr x1, [x21,1160] + ldr x1, [x21,1168] ldrh w0, [x1,x20] cmp w0, 4 - bls .L2764 + bls .L2770 sub w0, w0, #5 strh w0, [x1,x20] mov w0, 1 bl FtlEctTblFlush -.L2764: +.L2770: adrp x0, .LANCHOR4 add x1, x0, :lo12:.LANCHOR4 mov x20, x0 ldr w1, [x1,168] - cbnz w1, .L2765 + cbnz w1, .L2771 add x19, x19, :lo12:.LANCHOR2 ldr w0, [x19,4064] add w0, w0, 1 @@ -17634,21 +17661,21 @@ FtlGcFreeTempBlock: lsr w0, w0, 10 bl FtlBbmMapBadBlock bl FtlBbmTblFlush -.L2765: +.L2771: add x0, x20, :lo12:.LANCHOR4 str wzr, [x0,168] mov w0, 1 - b .L2756 -.L2763: - adrp x0, .LANCHOR1+3036 + b .L2762 +.L2769: + adrp x0, .LANCHOR1+3068 mov w1, 65535 - ldrh w2, [x0,#:lo12:.LANCHOR1+3036] + ldrh w2, [x0,#:lo12:.LANCHOR1+3068] mov w0, 1 cmp w2, w1 - bne .L2756 - b .L2766 -.L2770: - ldr x25, [x20,976] + bne .L2762 + b .L2772 +.L2776: + ldr x25, [x20,984] add x1, x29, 92 umull x24, w22, w26 mov w2, 0 @@ -17658,7 +17685,7 @@ FtlGcFreeTempBlock: ldr w0, [x29,92] ldr w1, [x25,x24] cmp w0, w1 - bne .L2768 + bne .L2774 lsr x0, x0, 10 bl P2V_block_in_plane mov w24, w0 @@ -17667,92 +17694,92 @@ FtlGcFreeTempBlock: mov w2, 1 bl log2phys mov w0, w24 -.L2788: +.L2794: bl decrement_vpc_count -.L2769: +.L2775: add w22, w22, 1 uxth w22, w22 -.L2767: +.L2773: add x0, x21, :lo12:.LANCHOR4 ldrh w0, [x0,178] cmp w0, w22 - bhi .L2770 - b .L2790 -.L2768: + bhi .L2776 + b .L2796 +.L2774: ldr w1, [x23,4] cmp w0, w1 - beq .L2769 - ldrh w0, [x20,3648] - b .L2788 -.L2790: + beq .L2775 + ldrh w0, [x20,3704] + b .L2794 +.L2796: mov w0, -1 adrp x20, .LANCHOR0 bl decrement_vpc_count add x0, x20, :lo12:.LANCHOR0 ldrb w0, [x0,136] - cbz w0, .L2771 + cbz w0, .L2777 add x1, x19, :lo12:.LANCHOR2 - adrp x0, .LC131 - add x0, x0, :lo12:.LC131 - ldrh w1, [x1,3648] + adrp x0, .LC134 + add x0, x0, :lo12:.LC134 + ldrh w1, [x1,3704] bl printk -.L2771: +.L2777: add x1, x19, :lo12:.LANCHOR2 - ldrh w0, [x1,3648] - ldr x1, [x1,1176] + ldrh w0, [x1,3704] + ldr x1, [x1,1184] ubfiz x2, x0, 1, 16 ldrh w1, [x1,x2] - cbz w1, .L2772 + cbz w1, .L2778 bl INSERT_DATA_LIST - b .L2773 -.L2772: + b .L2779 +.L2778: bl INSERT_FREE_LIST -.L2773: +.L2779: add x22, x19, :lo12:.LANCHOR2 add x21, x21, :lo12:.LANCHOR4 mov w0, -1 strh wzr, [x21,178] - strh w0, [x22,3648] + strh w0, [x22,3704] strh wzr, [x21,176] bl l2p_flush bl FtlVpcTblFlush - ldr w0, [x22,3908] - cbz w0, .L2774 - ldr w0, [x22,912] + ldr w0, [x22,652] + cbz w0, .L2780 + ldr w0, [x22,920] cmp w0, 29 - bhi .L2774 + bhi .L2780 ldrh w0, [x22,3916] - ldrh w1, [x22,3544] + ldrh w1, [x22,3600] cmp w1, w0 - bcs .L2775 + bcs .L2781 lsl w0, w0, 1 - strh w0, [x22,944] -.L2775: + strh w0, [x22,952] +.L2781: add x19, x19, :lo12:.LANCHOR2 mov w0, -1 strh w0, [x19,3920] -.L2789: +.L2795: mov w0, 0 - b .L2756 -.L2774: + b .L2762 +.L2780: add x19, x19, :lo12:.LANCHOR2 ldrh w1, [x19,3916] - ldrh w0, [x19,3544] + ldrh w0, [x19,3600] add w2, w1, w1, lsl 1 cmp w0, w2, lsr 2 - ble .L2789 + ble .L2795 add x20, x20, :lo12:.LANCHOR0 mov w0, -1 strh w0, [x19,3920] ldrb w0, [x20,136] - cbz w0, .L2776 + cbz w0, .L2782 sub w1, w1, #2 - strh w1, [x19,944] - b .L2789 -.L2776: + strh w1, [x19,952] + b .L2795 +.L2782: mov w1, 20 - strh w1, [x19,944] -.L2756: + strh w1, [x19,952] +.L2762: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -17769,21 +17796,21 @@ FtlGcPageRecovery: stp x19, x20, [sp,16] adrp x19, .LANCHOR2 add x19, x19, :lo12:.LANCHOR2 - add x20, x19, 3648 + add x20, x19, 3704 mov x0, x20 - ldrh w1, [x19,810] + ldrh w1, [x19,818] bl FtlGcScanTempBlk - ldrh w1, [x19,3650] - ldrh w0, [x19,810] + ldrh w1, [x19,3706] + ldrh w0, [x19,818] cmp w1, w0 - bcc .L2791 - add x0, x19, 3696 + bcc .L2797 + add x0, x19, 3752 bl FtlMapBlkWriteDumpData mov w0, 0 bl FtlGcFreeTempBlock adrp x0, .LANCHOR4+168 str wzr, [x0,#:lo12:.LANCHOR4+168] -.L2791: +.L2797: ldp x19, x20, [sp,16] ldp x29, x30, [sp], 32 ret @@ -17799,8 +17826,8 @@ FtlPowerLostRecovery: adrp x19, .LANCHOR2 str wzr, [x0,#:lo12:.LANCHOR4+224] add x19, x19, :lo12:.LANCHOR2 - add x20, x19, 3552 - add x19, x19, 3600 + add x20, x19, 3608 + add x19, x19, 3656 mov x0, x20 bl FtlRecoverySuperblock mov x0, x20 @@ -17830,54 +17857,54 @@ Ftl_gc_temp_data_write_back: str x23, [sp,48] adrp x21, .LANCHOR4 adrp x19, .LANCHOR2 - cbz w0, .L2795 + cbz w0, .L2801 add x0, x21, :lo12:.LANCHOR4 ldr w0, [x0,144] - tbz x0, 0, .L2795 + tbz x0, 0, .L2801 add x0, x19, :lo12:.LANCHOR2 - ldrh w0, [x0,3652] - cbz w0, .L2795 -.L2800: + ldrh w0, [x0,3708] + cbz w0, .L2801 +.L2806: mov w0, 0 - b .L2796 -.L2795: + b .L2802 +.L2801: add x0, x19, :lo12:.LANCHOR2 add x1, x21, :lo12:.LANCHOR4 mov w2, 0 mov w20, 0 mov w3, w2 mov w23, 56 - ldr x0, [x0,992] + ldr x0, [x0,1000] ldr w1, [x1,144] bl FlashProgPages -.L2797: +.L2803: add x22, x21, :lo12:.LANCHOR4 ldr w1, [x22,144] cmp w20, w1 - bcs .L2811 + bcs .L2817 add x0, x19, :lo12:.LANCHOR2 umull x1, w20, w23 - ldr x2, [x0,992] + ldr x2, [x0,1000] add x3, x2, x1 ldr w2, [x2,x1] cmn w2, #1 - bne .L2798 - ldrh w4, [x0,3648] - ldr x3, [x0,1176] + bne .L2804 + ldrh w4, [x0,3704] + ldr x3, [x0,1184] strh wzr, [x3,x4,lsl 1] - strh w2, [x0,3648] + strh w2, [x0,3704] ldr w2, [x0,4064] add w2, w2, 1 str w2, [x0,4064] - ldr x0, [x0,992] + ldr x0, [x0,1000] add x1, x0, x1 ldr w0, [x1,4] lsr w0, w0, 10 bl FtlBbmMapBadBlock bl FtlBbmTblFlush bl FtlGcPageVarInit - b .L2810 -.L2798: + b .L2816 +.L2804: ldr x2, [x3,16] add w20, w20, 1 ldr w1, [x3,4] @@ -17885,19 +17912,19 @@ Ftl_gc_temp_data_write_back: ldr w0, [x2,12] ldr w2, [x2,8] bl FtlGcUpdatePage - b .L2797 -.L2811: + b .L2803 +.L2817: add x19, x19, :lo12:.LANCHOR2 - ldr x0, [x19,992] + ldr x0, [x19,1000] bl FtlGcBufFree str wzr, [x22,144] - ldrh w0, [x19,3652] - cbnz w0, .L2800 + ldrh w0, [x19,3708] + cbnz w0, .L2806 mov w0, 1 bl FtlGcFreeTempBlock -.L2810: +.L2816: mov w0, 1 -.L2796: +.L2802: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldr x23, [sp,48] @@ -17913,19 +17940,19 @@ Ftl_get_new_temp_ppa: str x19, [sp,16] adrp x19, .LANCHOR2 add x0, x19, :lo12:.LANCHOR2 - add x1, x0, 3648 - ldrh w2, [x0,3648] + add x1, x0, 3704 + ldrh w2, [x0,3704] mov w0, 65535 cmp w2, w0 - beq .L2813 + beq .L2819 ldrh w0, [x1,4] - cbnz w0, .L2814 -.L2813: + cbnz w0, .L2820 +.L2819: bl FtlCacheWriteBack mov w0, 0 bl FtlGcFreeTempBlock add x0, x19, :lo12:.LANCHOR2 - add x0, x0, 3648 + add x0, x0, 3704 strb wzr, [x0,8] bl allocate_data_superblock adrp x0, .LANCHOR4 @@ -17936,9 +17963,9 @@ Ftl_get_new_temp_ppa: mov w0, 0 bl FtlEctTblFlush bl FtlVpcTblFlush -.L2814: +.L2820: add x0, x19, :lo12:.LANCHOR2 - add x0, x0, 3648 + add x0, x0, 3704 bl get_new_active_ppa ldr x19, [sp,16] ldp x29, x30, [sp], 32 @@ -17959,13 +17986,13 @@ ftl_read: mov w20, w1 mov w28, w2 mov x25, x3 - bne .L2816 + bne .L2822 add w0, w1, 256 mov w1, w2 mov x2, x3 bl FtlVendorPartRead - b .L2817 -.L2816: + b .L2823 +.L2822: add w0, w1, w2 str w0, [x29,156] adrp x0, .LANCHOR0+4048 @@ -17973,11 +18000,11 @@ ftl_read: ldr w1, [x0,#:lo12:.LANCHOR0+4048] mov w0, -1 cmp w2, w1 - bhi .L2817 + bhi .L2823 adrp x19, .LANCHOR2 sub w24, w2, #1 add x1, x19, :lo12:.LANCHOR2 - ldrh w0, [x1,816] + ldrh w0, [x1,824] udiv w27, w20, w0 udiv w24, w24, w0 adrp x0, .LANCHOR4 @@ -17987,41 +18014,41 @@ ftl_read: ldr w2, [x0,132] add w2, w28, w2 str w2, [x0,132] - ldr w0, [x1,892] + ldr w0, [x1,900] add w0, w23, w0 - str w0, [x1,892] + str w0, [x1,900] mov w0, w27 mov w1, w24 bl FtlCacheMetchLpa - cbz w0, .L2818 + cbz w0, .L2824 bl FtlCacheWriteBack -.L2818: +.L2824: mov w26, 0 mov w21, w27 str w26, [x29,152] mov w22, w26 str w26, [x29,140] -.L2819: - cbz w23, .L2860 +.L2825: + cbz w23, .L2866 mov w0, w21 add x1, x29, 172 mov w2, 0 bl log2phys ldr w3, [x29,172] cmn w3, #1 - bne .L2858 + bne .L2864 mov w3, 0 -.L2820: +.L2826: add x0, x19, :lo12:.LANCHOR2 - ldrh w0, [x0,816] + ldrh w0, [x0,824] cmp w3, w0 - bcs .L2824 + bcs .L2830 madd w0, w21, w0, w3 cmp w0, w20 - bcc .L2822 + bcc .L2828 ldr w1, [x29,156] cmp w0, w1 - bcs .L2822 + bcs .L2828 sub w0, w0, w20 mov w1, 0 ubfiz x0, x0, 9, 23 @@ -18030,21 +18057,21 @@ ftl_read: str x3, [x29,144] bl ftl_memset ldr x3, [x29,144] -.L2822: +.L2828: add w3, w3, 1 - b .L2820 -.L2858: + b .L2826 +.L2864: add x2, x19, :lo12:.LANCHOR2 mov w0, 56 cmp w21, w27 umull x1, w22, w0 - ldr x0, [x2,984] + ldr x0, [x2,992] add x0, x0, x1 str w3, [x0,4] - ldrh w0, [x2,816] - bne .L2825 - ldr x3, [x2,984] - ldr x2, [x2,1080] + ldrh w0, [x2,824] + bne .L2831 + ldr x3, [x2,992] + ldr x2, [x2,1088] add x3, x3, x1 str x2, [x3,8] udiv w2, w20, w0 @@ -18055,60 +18082,60 @@ ftl_read: csel w2, w2, w28, ls str w2, [x29,152] cmp w2, w0 - bne .L2826 + bne .L2832 str x25, [x3,8] - b .L2826 -.L2825: + b .L2832 +.L2831: cmp w21, w24 - bne .L2827 - ldr x3, [x2,984] - ldr x2, [x2,1088] + bne .L2833 + ldr x3, [x2,992] + ldr x2, [x2,1096] add x3, x3, x1 ldr w4, [x29,156] str x2, [x3,8] mul w2, w21, w0 sub w26, w4, w2 cmp w26, w0 - bne .L2826 + bne .L2832 sub w2, w2, w20 ubfiz x2, x2, 9, 23 add x2, x25, x2 str x2, [x3,8] - b .L2826 -.L2827: - ldr x2, [x2,984] + b .L2832 +.L2833: + ldr x2, [x2,992] mul w0, w21, w0 add x2, x2, x1 sub w0, w0, w20 ubfiz x0, x0, 9, 23 add x0, x25, x0 str x0, [x2,8] -.L2826: +.L2832: add x2, x19, :lo12:.LANCHOR2 - ldr x0, [x2,984] + ldr x0, [x2,992] add x1, x0, x1 - ldrh w0, [x2,822] - ldr x2, [x2,1112] + ldrh w0, [x2,830] + ldr x2, [x2,1120] mul w0, w22, w0 str w21, [x1,24] add w22, w22, 1 and x0, x0, 4294967292 add x0, x2, x0 str x0, [x1,16] -.L2824: +.L2830: subs w23, w23, #1 add w21, w21, 1 - beq .L2828 + beq .L2834 add x0, x19, :lo12:.LANCHOR2 - ldrh w0, [x0,740] + ldrh w0, [x0,748] cmp w22, w0, lsl 3 - bne .L2819 -.L2828: - cbz w22, .L2819 + bne .L2825 +.L2834: + cbz w22, .L2825 add x0, x19, :lo12:.LANCHOR2 mov w1, w22 mov w2, 0 - ldr x0, [x0,984] + ldr x0, [x0,992] bl FlashReadPages str xzr, [x29,144] ldr x0, [x29,112] @@ -18119,83 +18146,83 @@ ftl_read: str w0, [x29,136] lsl w0, w26, 9 str w0, [x29,108] -.L2830: +.L2836: ldr w0, [x29,144] cmp w22, w0 - bls .L2861 + bls .L2867 ldr x0, [x29,144] add x2, x19, :lo12:.LANCHOR2 mov x1, 56 mul x3, x0, x1 - ldr x0, [x2,984] + ldr x0, [x2,992] add x0, x0, x3 ldr w1, [x0,24] cmp w1, w27 - bne .L2831 + bne .L2837 ldr x1, [x0,8] - ldr x0, [x2,1080] + ldr x0, [x2,1088] cmp x1, x0 - bne .L2832 + bne .L2838 ldr x2, [x29,128] mov x0, x25 str x3, [x29,96] add x1, x1, x2 ldr w2, [x29,136] - b .L2859 -.L2831: + b .L2865 +.L2837: cmp w1, w24 - bne .L2832 + bne .L2838 ldr x1, [x0,8] - ldr x0, [x2,1088] + ldr x0, [x2,1096] cmp x1, x0 - bne .L2832 - ldrh w0, [x2,816] + bne .L2838 + ldrh w0, [x2,824] ldr w2, [x29,108] str x3, [x29,96] mul w0, w24, w0 sub w0, w0, w20 ubfiz x0, x0, 9, 23 add x0, x25, x0 -.L2859: +.L2865: bl ftl_memcpy ldr x3, [x29,96] -.L2832: +.L2838: add x0, x19, :lo12:.LANCHOR2 - ldr x1, [x0,984] + ldr x1, [x0,992] add x5, x1, x3 ldr w4, [x1,x3] cmn w4, #1 - bne .L2833 + bne .L2839 ldr w2, [x0,4040] str w4, [x29,140] add w2, w2, 1 str w2, [x0,4040] -.L2833: +.L2839: ldr w0, [x1,x3] cmp w0, 256 - bne .L2834 + bne .L2840 ldr w0, [x5,4] lsr x0, x0, 10 bl P2V_block_in_plane bl FtlGcRefreshBlock -.L2834: +.L2840: ldr x0, [x29,144] add x0, x0, 1 str x0, [x29,144] - b .L2830 -.L2861: + b .L2836 +.L2867: mov w22, 0 - b .L2819 -.L2860: + b .L2825 +.L2866: add x19, x19, :lo12:.LANCHOR2 - ldrh w0, [x19,950] - cbz w0, .L2837 + ldrh w0, [x19,958] + cbz w0, .L2843 mov w0, w23 mov w1, 1 bl ftl_do_gc -.L2837: +.L2843: ldr w0, [x29,140] -.L2817: +.L2823: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -18223,24 +18250,24 @@ ftl_write: stp x27, x28, [sp,80] mov x22, x3 str x1, [x29,152] - ldr w3, [x2,1392] - cbnz w3, .L2863 + ldr w3, [x2,1400] + cbnz w3, .L2869 cmp w4, 16 - bne .L2864 + bne .L2870 add w0, w20, 256 mov w1, w21 mov x2, x22 bl FtlVendorPartWrite - b .L2863 -.L2864: + b .L2869 +.L2870: adrp x0, .LANCHOR0+4048 add w24, w20, w21 ldr w1, [x0,#:lo12:.LANCHOR0+4048] mov w0, -1 cmp w24, w1 - bhi .L2863 + bhi .L2869 adrp x3, .LANCHOR4 - ldrh w1, [x2,816] + ldrh w1, [x2,824] add x26, x3, :lo12:.LANCHOR4 sub w24, w24, #1 mov w0, 2048 @@ -18248,35 +18275,35 @@ ftl_write: udiv w23, w20, w1 cmp w21, w1, lsl 1 str w0, [x26,380] - add x19, x2, 3552 - ldr w3, [x2,960] + add x19, x2, 3608 + ldr w3, [x2,968] udiv w0, w24, w1 str w0, [x29,200] sub w28, w0, w23 add w25, w28, 1 - ldr w0, [x2,876] + ldr w0, [x2,884] add w0, w25, w0 - str w0, [x2,876] + str w0, [x2,884] ldr w0, [x26,128] add w0, w21, w0 str w0, [x26,128] cset w0, cs str w0, [x29,204] cmp w21, 8 - add x0, x2, 3600 + add x0, x2, 3656 csel x19, x19, x0, hi - cbz w3, .L2867 + cbz w3, .L2873 mov w0, 56 sub w3, w3, #1 umull x3, w3, w0 - ldr x0, [x2,1024] + ldr x0, [x2,1032] add x3, x0, x3 ldr w0, [x3,24] cmp w23, w0 - bne .L2868 - ldr w0, [x2,884] + bne .L2874 + ldr w0, [x2,892] add w0, w0, 1 - str w0, [x2,884] + str w0, [x2,892] ldr w0, [x26,384] add w0, w0, 1 str w0, [x26,384] @@ -18291,87 +18318,87 @@ ftl_write: mov w2, w25 mov x1, x22 bl ftl_memcpy - cbnz w28, .L2869 + cbnz w28, .L2875 ldr w0, [x26,384] cmp w0, 2 - bgt .L2869 -.L2902: + bgt .L2875 +.L2908: mov w0, 0 - b .L2863 -.L2869: + b .L2869 +.L2875: add x22, x22, x25 sub w21, w21, w19 add w20, w20, w19 add w23, w23, 1 mov w25, w28 -.L2868: +.L2874: ldr x0, [x29,144] add x0, x0, :lo12:.LANCHOR4 ldr x19, [x0,368] str wzr, [x0,384] -.L2867: +.L2873: ldr w1, [x29,200] mov w0, w23 bl FtlCacheMetchLpa - cbz w0, .L2870 + cbz w0, .L2876 bl FtlCacheWriteBack -.L2870: +.L2876: ldr x0, [x29,144] str w23, [x29,192] add x0, x0, :lo12:.LANCHOR4 str x19, [x0,368] ldr x0, [x29,152] add x24, x0, :lo12:.LANCHOR2 - add x0, x24, 3552 + add x0, x24, 3608 str x0, [x29,176] - adrp x0, .LC132 - add x0, x0, :lo12:.LC132 + adrp x0, .LC135 + add x0, x0, :lo12:.LC135 str x0, [x29,104] -.L2871: - cbz w25, .L2932 +.L2877: + cbz w25, .L2938 ldrh w0, [x19,4] - cbnz w0, .L2872 + cbnz w0, .L2878 ldr x1, [x29,176] adrp x26, .LANCHOR1 cmp x19, x1 - bne .L2873 - add x0, x24, 3600 + bne .L2879 + add x0, x24, 3656 ldrh w19, [x0,4] - cbnz w19, .L2874 + cbnz w19, .L2880 bl allocate_new_data_superblock add x0, x26, :lo12:.LANCHOR1 - str w19, [x0,3040] -.L2874: + str w19, [x0,3072] +.L2880: ldr x0, [x29,176] add x26, x26, :lo12:.LANCHOR1 - add x19, x24, 3600 + add x19, x24, 3656 bl allocate_new_data_superblock - ldr w0, [x26,3040] - cbnz w0, .L2875 -.L2876: + ldr w0, [x26,3072] + cbnz w0, .L2881 +.L2882: ldr x19, [x29,176] - b .L2875 -.L2873: + b .L2881 +.L2879: add x26, x26, :lo12:.LANCHOR1 - str w0, [x26,3040] + str w0, [x26,3072] ldr x0, [x29,176] ldrh w0, [x0,4] - cbnz w0, .L2876 + cbnz w0, .L2882 mov x0, x19 bl allocate_new_data_superblock -.L2875: +.L2881: ldrh w0, [x19,4] - cbnz w0, .L2877 + cbnz w0, .L2883 mov x0, x19 bl allocate_new_data_superblock -.L2877: +.L2883: ldr x0, [x29,144] add x0, x0, :lo12:.LANCHOR4 str x19, [x0,368] -.L2872: - ldr w0, [x24,956] +.L2878: + ldr w0, [x24,964] mov x28, 0 - ldr w2, [x24,960] + ldr w2, [x24,968] ldrh w1, [x19,4] sub w0, w0, w2 cmp w1, w0 @@ -18384,28 +18411,28 @@ ftl_write: str w0, [x29,116] add w0, w21, w20 str w0, [x29,136] -.L2878: +.L2884: ldr w1, [x29,192] mov w0, w28 add w27, w1, w28 ldr w1, [x29,140] cmp w28, w1 - bcs .L2933 + bcs .L2939 ldrh w1, [x19,4] - cbz w1, .L2909 + cbz w1, .L2915 ldr w1, [x29,200] cmp w27, w1 cset w7, eq - cbz w0, .L2880 + cbz w0, .L2886 ldr w1, [x29,116] tst w7, w1 - beq .L2880 - ldrh w1, [x24,816] + beq .L2886 + ldrh w1, [x24,824] ldr w2, [x29,136] msub w2, w27, w1, w2 cmp w2, w1 - bne .L2909 -.L2880: + bne .L2915 +.L2886: add x1, x29, 212 mov w2, 0 mov w0, w27 @@ -18413,28 +18440,28 @@ ftl_write: bl log2phys mov x0, x19 bl get_new_active_ppa - ldr w6, [x24,960] + ldr w6, [x24,968] mov w5, 56 - ldr x2, [x24,1024] + ldr x2, [x24,1032] str x5, [x29,184] umull x1, w6, w5 add x2, x2, x1 str w0, [x2,4] - ldrh w2, [x24,822] - ldr x0, [x24,1024] + ldrh w2, [x24,830] + ldr x0, [x24,1032] add x1, x0, x1 mul w0, w2, w6 and x0, x0, 4294967292 str x0, [x29,128] - ldr x0, [x24,1128] + ldr x0, [x24,1136] ldr x3, [x29,128] str x0, [x29,120] add x26, x0, x3 - ldrh w0, [x24,820] + ldrh w0, [x24,828] str x26, [x1,16] str w27, [x1,24] mul w0, w0, w6 - ldr x6, [x24,1072] + ldr x6, [x24,1080] and x0, x0, 4294967292 add x0, x6, x0 str x0, [x1,8] @@ -18444,20 +18471,20 @@ ftl_write: cmp w27, w23 cset w0, eq str w0, [x29,196] - cbnz w0, .L2912 + cbnz w0, .L2918 ldr x7, [x29,160] ldr x5, [x29,184] - cbz w7, .L2881 + cbz w7, .L2887 ldr w0, [x29,136] - ldrh w2, [x24,816] + ldrh w2, [x24,824] msub w2, w27, w2, w0 uxth w0, w2 str w0, [x29,184] ldr w0, [x29,196] str w0, [x29,160] - b .L2884 -.L2912: - ldrh w2, [x24,816] + b .L2890 +.L2918: + ldrh w2, [x24,824] udiv w0, w20, w2 msub w0, w0, w2, w20 str w0, [x29,160] @@ -18465,46 +18492,46 @@ ftl_write: cmp w2, w21 csel w0, w2, w21, ls str w0, [x29,184] -.L2884: - ldrh w0, [x24,816] +.L2890: + ldrh w0, [x24,824] ldr w1, [x29,184] cmp w1, w0 - bne .L2885 + bne .L2891 ldr w0, [x29,196] mov x1, x22 - cbnz w0, .L2886 + cbnz w0, .L2892 ldr w0, [x29,184] mul w1, w0, w27 sub w1, w1, w20 ubfiz x1, x1, 9, 23 add x1, x22, x1 -.L2886: +.L2892: ldr w2, [x29,204] mov w0, 56 - cbz w2, .L2887 - ldr w2, [x24,960] + cbz w2, .L2893 + ldr w2, [x24,968] umull x0, w2, w0 - ldr x2, [x24,1024] + ldr x2, [x24,1032] add x0, x2, x0 - b .L2929 -.L2887: - ldr w2, [x24,960] + b .L2935 +.L2893: + ldr w2, [x24,968] umull x0, w2, w0 - ldr x2, [x24,1024] + ldr x2, [x24,1032] add x0, x2, x0 ldr x0, [x0,8] - b .L2930 -.L2885: + b .L2936 +.L2891: ldr w0, [x29,212] cmn w0, #1 - beq .L2889 + beq .L2895 str w0, [x29,220] mov w1, 56 - ldr w0, [x24,960] + ldr w0, [x24,968] mov w2, 0 str w27, [x29,240] umull x0, w0, w1 - ldr x1, [x24,1024] + ldr x1, [x24,1032] add x0, x1, x0 ldr x1, [x0,8] ldr x0, [x0,16] @@ -18515,15 +18542,15 @@ ftl_write: bl FlashReadPages ldr w0, [x29,216] cmn w0, #1 - bne .L2890 + bne .L2896 ldr w0, [x24,4040] add w0, w0, 1 str w0, [x24,4040] - b .L2892 -.L2890: + b .L2898 +.L2896: ldr w0, [x26,8] cmp w0, w27 - beq .L2892 + beq .L2898 ldr w0, [x24,4040] mov w2, w27 add w0, w0, 1 @@ -18531,145 +18558,145 @@ ftl_write: ldr x0, [x29,104] ldr w1, [x26,8] bl printk - b .L2892 -.L2889: - ldr w0, [x24,960] + b .L2898 +.L2895: + ldr w0, [x24,968] mov w1, 56 - ldrh w2, [x24,820] + ldrh w2, [x24,828] umull x0, w0, w1 - ldr x1, [x24,1024] + ldr x1, [x24,1032] add x0, x1, x0 mov w1, 0 ldr x0, [x0,8] bl ftl_memset -.L2892: +.L2898: ldr w1, [x29,184] mov w0, 56 lsl w2, w1, 9 ldr w1, [x29,196] - cbz w1, .L2893 - ldr w1, [x24,960] + cbz w1, .L2899 + ldr w1, [x24,968] umull x0, w1, w0 - ldr x1, [x24,1024] + ldr x1, [x24,1032] add x1, x1, x0 ldr x0, [x29,160] ubfiz x0, x0, 9, 23 ldr x1, [x1,8] add x0, x1, x0 mov x1, x22 - b .L2931 -.L2893: - ldr w1, [x24,960] + b .L2937 +.L2899: + ldr w1, [x24,968] umull x0, w1, w0 - ldr x1, [x24,1024] + ldr x1, [x24,1032] add x0, x1, x0 - ldrh w1, [x24,816] + ldrh w1, [x24,824] mul w1, w27, w1 ldr x0, [x0,8] sub w1, w1, w20 ubfiz x1, x1, 9, 23 add x1, x22, x1 - b .L2931 -.L2881: + b .L2937 +.L2887: ldr w0, [x29,204] - ldrh w1, [x24,816] - ldr w2, [x24,960] - cbz w0, .L2894 + ldrh w1, [x24,824] + ldr w2, [x24,968] + cbz w0, .L2900 mul w1, w27, w1 umull x0, w2, w5 sub w1, w1, w20 - ldr x2, [x24,1024] + ldr x2, [x24,1032] ubfiz x1, x1, 9, 23 add x0, x2, x0 add x1, x22, x1 -.L2929: +.L2935: str x1, [x0,8] - b .L2888 -.L2894: + b .L2894 +.L2900: umull x0, w2, w5 - ldr x2, [x24,1024] + ldr x2, [x24,1032] mul w1, w27, w1 add x0, x2, x0 sub w1, w1, w20 ubfiz x1, x1, 9, 23 ldr x0, [x0,8] add x1, x22, x1 -.L2930: - ldrh w2, [x24,820] -.L2931: +.L2936: + ldrh w2, [x24,828] +.L2937: bl ftl_memcpy -.L2888: +.L2894: ldr x1, [x29,120] mov w0, -3947 ldr x2, [x29,128] add x28, x28, 1 strh w0, [x1,x2] str w27, [x26,8] - ldr w0, [x24,868] + ldr w0, [x24,876] str w0, [x26,4] add w0, w0, 1 cmn w0, #1 csel w0, w0, wzr, ne - str w0, [x24,868] + str w0, [x24,876] ldr w0, [x29,212] str w0, [x26,12] ldrh w0, [x19] strh w0, [x26,2] - ldr w0, [x24,960] + ldr w0, [x24,968] add w0, w0, 1 - str w0, [x24,960] - b .L2878 -.L2933: + str w0, [x24,968] + b .L2884 +.L2939: str w27, [x29,192] mov x0, x1 - b .L2879 -.L2909: + b .L2885 +.L2915: str w27, [x29,192] -.L2879: +.L2885: sub w25, w25, w0 ldr w0, [x29,204] - cbnz w0, .L2898 - ldr w1, [x24,960] - ldr w0, [x24,956] + cbnz w0, .L2904 + ldr w1, [x24,968] + ldr w0, [x24,964] cmp w1, w0 - bcs .L2898 + bcs .L2904 ldrh w0, [x19,4] - cbz w0, .L2898 -.L2900: + cbz w0, .L2904 +.L2906: str wzr, [x29,204] - b .L2871 -.L2898: + b .L2877 +.L2904: bl FtlCacheWriteBack - str wzr, [x24,960] + str wzr, [x24,968] cmp w25, 3 - bls .L2900 - b .L2871 -.L2932: + bls .L2906 + b .L2877 +.L2938: ldr w1, [x29,200] mov w0, w25 sub w1, w1, w23 bl ftl_do_gc ldr x0, [x29,152] add x0, x0, :lo12:.LANCHOR2 - ldrh w1, [x0,3544] + ldrh w1, [x0,3600] cmp w1, 31 - bhi .L2902 + bhi .L2908 mov w1, 128 mov w19, 16 - strh w1, [x0,946] - strh w1, [x0,944] -.L2903: + strh w1, [x0,954] + strh w1, [x0,952] +.L2909: mov w0, 0 mov w1, 1 bl ftl_do_gc ldr x0, [x29,152] add x0, x0, :lo12:.LANCHOR2 - ldr w0, [x0,1392] - cbnz w0, .L2902 + ldr w0, [x0,1400] + cbnz w0, .L2908 subs w19, w19, #1 - bne .L2903 - b .L2902 -.L2863: + bne .L2909 + b .L2908 +.L2869: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -18721,102 +18748,102 @@ ftl_fix_nand_power_lost_error: stp x21, x22, [sp,32] stp x23, x24, [sp,48] stp x25, x26, [sp,64] - cbz w0, .L2936 + cbz w0, .L2942 adrp x21, .LANCHOR4 adrp x19, .LANCHOR2 add x0, x21, :lo12:.LANCHOR4 add x20, x19, :lo12:.LANCHOR2 - adrp x24, .LC133 - add x26, x20, 3552 - add x25, x20, 3600 + adrp x24, .LC136 + add x26, x20, 3608 + add x25, x20, 3656 ldrh w23, [x0,218] - add x0, x24, :lo12:.LC133 - ldr x2, [x20,1176] + add x0, x24, :lo12:.LC136 + ldr x2, [x20,1184] ubfiz x22, x23, 1, 16 mov w1, w23 ldrh w2, [x2,x22] bl printk - ldrh w0, [x20,3552] + ldrh w0, [x20,3608] bl FtlGcRefreshOpenBlock - ldrh w0, [x20,3600] + ldrh w0, [x20,3656] mov w20, 4097 bl FtlGcRefreshOpenBlock mov x0, x26 bl allocate_new_data_superblock mov x0, x25 bl allocate_new_data_superblock -.L2938: +.L2944: subs w20, w20, #1 - beq .L2942 + beq .L2948 mov w0, 1 mov w1, w0 bl ftl_do_gc add x0, x19, :lo12:.LANCHOR2 - ldr x0, [x0,1176] + ldr x0, [x0,1184] ldrh w0, [x0,x22] - cbnz w0, .L2938 -.L2942: + cbnz w0, .L2944 +.L2948: add x20, x19, :lo12:.LANCHOR2 - add x0, x24, :lo12:.LC133 + add x0, x24, :lo12:.LC136 mov w1, w23 - ldr x2, [x20,1176] + ldr x2, [x20,1184] ldrh w2, [x2,x22] bl printk - ldr x0, [x20,1176] + ldr x0, [x20,1184] ldrh w0, [x0,x22] - cbnz w0, .L2940 + cbnz w0, .L2946 add x0, x29, 80 strh w23, [x29,80] bl make_superblock mov x0, 0 - ldrh w5, [x20,740] + ldrh w5, [x20,748] mov w6, 65535 mov w20, w0 mov w7, 56 -.L2943: +.L2949: cmp w5, w0, uxth - bls .L2950 + bls .L2956 add x1, x29, 80 add x1, x1, x0, lsl 1 ldrh w2, [x1,16] cmp w2, w6 - beq .L2944 + beq .L2950 add x4, x19, :lo12:.LANCHOR2 lsl w2, w2, 10 umull x1, w20, w7 add w20, w20, 1 - ldr x3, [x4,1008] + ldr x3, [x4,1016] uxth w20, w20 add x3, x3, x1 str w2, [x3,4] - ldr x2, [x4,1008] + ldr x2, [x4,1016] add x1, x2, x1 str xzr, [x1,8] str xzr, [x1,16] -.L2944: - add x0, x0, 1 - b .L2943 .L2950: + add x0, x0, 1 + b .L2949 +.L2956: add x19, x19, :lo12:.LANCHOR2 - adrp x0, .LC134 + adrp x0, .LC137 mov w1, w23 - add x0, x0, :lo12:.LC134 - ldr x2, [x19,1176] + add x0, x0, :lo12:.LC137 + ldr x2, [x19,1184] ldrh w2, [x2,x22] bl printk - ldr x0, [x19,1008] + ldr x0, [x19,1016] mov w1, 0 mov w2, w20 bl FlashEraseBlocks - ldr x0, [x19,1008] + ldr x0, [x19,1016] mov w1, 1 mov w2, w20 bl FlashEraseBlocks -.L2940: +.L2946: add x21, x21, :lo12:.LANCHOR4 mov w0, -1 strh w0, [x21,218] -.L2936: +.L2942: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -18840,20 +18867,20 @@ FtlSysBlkInit: str x23, [sp,48] strh w1, [x0,218] strh wzr, [x0,220] - ldrh w0, [x21,744] + ldrh w0, [x21,752] bl FtlFreeSysBlkQueueInit bl FtlScanSysBlk - ldrh w1, [x21,3840] + ldrh w1, [x21,3896] mov w0, 65535 cmp w1, w0 - bne .L2952 -.L2954: + bne .L2958 +.L2960: mov w23, -1 - b .L2953 -.L2952: + b .L2959 +.L2958: bl FtlLoadSysInfo mov w23, w0 - cbnz w0, .L2954 + cbnz w0, .L2960 bl FtlLoadMapInfo bl FtlLoadVonderInfo bl Ftl_load_ext_data @@ -18863,117 +18890,117 @@ FtlSysBlkInit: bl FtlPowerLostRecovery mov w0, 1 bl FtlUpdateVaildLpn - ldrh w2, [x21,850] + ldrh w2, [x21,858] mov x1, 0 - ldr x0, [x21,1256] -.L2955: + ldr x0, [x21,1264] +.L2961: cmp w1, w2 mov w3, w1 - bge .L2959 + bge .L2965 add x4, x0, x1, lsl 4 add x1, x1, 1 ldr w4, [x4,4] - tbz w4, #31, .L2955 -.L2959: + tbz w4, #31, .L2961 +.L2965: add x0, x20, :lo12:.LANCHOR2 cmp w3, w2 - ldrh w1, [x0,3884] + ldrh w1, [x0,3548] add w1, w1, 1 - strh w1, [x0,3884] - blt .L2956 + strh w1, [x0,3548] + blt .L2962 add x19, x19, :lo12:.LANCHOR4 ldrh w0, [x19,220] - cbz w0, .L2960 -.L2956: + cbz w0, .L2966 +.L2962: add x19, x20, :lo12:.LANCHOR2 - add x22, x19, 3552 - add x21, x19, 3600 + add x22, x19, 3608 + add x21, x19, 3656 mov x0, x22 bl FtlSuperblockPowerLostFix mov x0, x21 bl FtlSuperblockPowerLostFix - ldrh w0, [x19,3552] - ldr x2, [x19,1176] + ldrh w0, [x19,3608] + ldr x2, [x19,1184] lsl x0, x0, 1 - ldrh w3, [x19,3556] + ldrh w3, [x19,3612] ldrh w1, [x2,x0] sub w1, w1, w3 strh w1, [x2,x0] - strb wzr, [x19,3558] - ldrh w0, [x19,810] - strh w0, [x19,3554] - ldrh w0, [x19,3600] - ldr x2, [x19,1176] + strb wzr, [x19,3614] + ldrh w0, [x19,818] + strh w0, [x19,3610] + ldrh w0, [x19,3656] + ldr x2, [x19,1184] lsl x0, x0, 1 - strh wzr, [x19,3556] - ldrh w3, [x19,3604] + strh wzr, [x19,3612] + ldrh w3, [x19,3660] ldrh w1, [x2,x0] sub w1, w1, w3 strh w1, [x2,x0] - strb wzr, [x19,3606] - ldrh w0, [x19,810] - strh w0, [x19,3602] - add x0, x19, 3696 - strh wzr, [x19,3604] + strb wzr, [x19,3662] + ldrh w0, [x19,818] + strh w0, [x19,3658] + add x0, x19, 3752 + strh wzr, [x19,3660] bl FtlMapBlkWriteDumpData - add x0, x19, 3768 + add x0, x19, 3824 bl FtlMapBlkWriteDumpData - ldrh w0, [x19,3886] + ldrh w0, [x19,3550] add w0, w0, 1 - strh w0, [x19,3886] + strh w0, [x19,3550] bl l2p_flush bl FtlVpcTblFlush - b .L2974 -.L2960: + b .L2980 +.L2966: bl l2p_flush -.L2974: +.L2980: add x19, x20, :lo12:.LANCHOR2 bl FtlVpcTblFlush mov w0, 65535 - add x22, x19, 3552 - ldrh w1, [x19,3552] + add x22, x19, 3608 + ldrh w1, [x19,3608] cmp w1, w0 - bne .L2962 -.L2964: + bne .L2968 +.L2970: add x20, x20, :lo12:.LANCHOR2 - ldrh w0, [x20,3884] + ldrh w0, [x20,3548] and w0, w0, 31 - cbnz w0, .L2953 + cbnz w0, .L2959 bl FtlVpcCheckAndModify - b .L2953 -.L2962: + b .L2959 +.L2968: ldrh w0, [x22,4] - cbnz w0, .L2964 - ldrh w0, [x19,3604] - add x21, x19, 3600 - cbnz w0, .L2964 + cbnz w0, .L2970 + ldrh w0, [x19,3660] + add x21, x19, 3656 + cbnz w0, .L2970 bl FtlVpcTblFlush - ldrh w0, [x19,3552] + ldrh w0, [x19,3608] bl FtlGcRefreshOpenBlock - ldrh w0, [x19,3600] + ldrh w0, [x19,3656] bl FtlGcRefreshOpenBlock mov x0, x22 bl allocate_new_data_superblock mov x0, x21 bl allocate_new_data_superblock - add x0, x19, 3768 + add x0, x19, 3824 bl FtlMapBlkWriteDumpData adrp x0, .LANCHOR0 add x0, x0, :lo12:.LANCHOR0 ldrb w1, [x0,136] - cbnz w1, .L2966 + cbnz w1, .L2972 ldrb w0, [x0,24] - cbz w0, .L2964 -.L2966: + cbz w0, .L2970 +.L2972: mov w19, 4096 -.L2969: +.L2975: mov w0, 1 mov w1, w0 bl ftl_do_gc subs w19, w19, #1 - bne .L2969 - b .L2964 -.L2953: + bne .L2975 + b .L2970 +.L2959: mov w0, w23 ldr x23, [sp,48] ldp x19, x20, [sp,16] @@ -18986,52 +19013,57 @@ FtlSysBlkInit: .type FtlLowFormat, %function FtlLowFormat: stp x29, x30, [sp, -48]! - mov w1, 0 add x29, sp, 0 stp x19, x20, [sp,16] adrp x19, .LANCHOR2 add x20, x19, :lo12:.LANCHOR2 stp x21, x22, [sp,32] - ldrh w2, [x20,848] + ldr w21, [x20,1400] + cbnz w21, .L2983 + ldrh w2, [x20,856] + mov w1, w21 + ldr x0, [x20,1248] + lsl w2, w2, 2 + bl ftl_memset + ldrh w2, [x20,856] + mov w1, w21 ldr x0, [x20,1240] lsl w2, w2, 2 bl ftl_memset - ldr w0, [x20,1392] - cbnz w0, .L2977 - str w0, [x20,864] - str w0, [x20,868] - ldrh w0, [x20,744] + str w21, [x20,872] + ldrh w0, [x20,752] + str w21, [x20,876] bl FtlFreeSysBlkQueueInit bl FtlLoadBbt - cbz w0, .L2978 + cbz w0, .L2984 bl FtlMakeBbt -.L2978: +.L2984: mov w0, 0 -.L2979: +.L2985: add x1, x19, :lo12:.LANCHOR2 - ldrh w2, [x1,816] + ldrh w2, [x1,824] cmp w0, w2, lsl 7 - bge .L3006 + bge .L3012 ubfiz x3, x0, 2, 16 - ldr x4, [x1,1080] + ldr x4, [x1,1088] mvn w2, w0 orr w2, w0, w2, lsl 16 str w2, [x4,x3] add w0, w0, 1 - ldr x2, [x1,1088] + ldr x2, [x1,1096] mov w1, 23752 movk w1, 0xa0f, lsl 16 uxth w0, w0 str w1, [x2,x3] - b .L2979 -.L3006: - ldrh w21, [x1,748] + b .L2985 +.L3012: + ldrh w21, [x1,756] mov w20, 0 -.L2981: +.L2987: add x22, x19, :lo12:.LANCHOR2 - ldrh w0, [x22,750] + ldrh w0, [x22,758] cmp w0, w21 - bls .L3007 + bls .L3013 mov w0, w21 mov w1, 1 add w21, w21, 1 @@ -19039,40 +19071,40 @@ FtlLowFormat: add w0, w20, w0 uxth w21, w21 uxth w20, w0 - b .L2981 -.L3007: - ldrh w0, [x22,740] + b .L2987 +.L3013: + ldrh w0, [x22,748] sub w1, w20, #3 cmp w1, w0, lsl 1 - bge .L2983 -.L2987: + bge .L2989 +.L2993: mov w20, 0 mov w21, w20 - b .L2984 -.L2983: + b .L2990 +.L2989: udiv w20, w20, w0 - ldr w0, [x22,844] + ldr w0, [x22,852] add w0, w20, w0 bl FtlSysBlkNumInit - ldrh w0, [x22,744] + ldrh w0, [x22,752] bl FtlFreeSysBlkQueueInit - ldrh w20, [x22,748] -.L2985: + ldrh w20, [x22,756] +.L2991: add x0, x19, :lo12:.LANCHOR2 - ldrh w0, [x0,750] + ldrh w0, [x0,758] cmp w0, w20 - bls .L2987 + bls .L2993 mov w0, w20 mov w1, 1 add w20, w20, 1 bl FtlLowFormatEraseBlock uxth w20, w20 - b .L2985 -.L2984: + b .L2991 +.L2990: add x2, x19, :lo12:.LANCHOR2 - ldrh w0, [x2,748] + ldrh w0, [x2,756] cmp w0, w21 - bls .L3008 + bls .L3014 mov w0, w21 mov w1, 0 add w21, w21, 1 @@ -19080,87 +19112,87 @@ FtlLowFormat: add w0, w20, w0 uxth w21, w21 uxth w20, w0 - b .L2984 -.L3008: - ldrh w3, [x2,740] - ldr w1, [x2,752] - ldrh w0, [x2,750] - str w0, [x2,936] + b .L2990 +.L3014: + ldrh w3, [x2,748] + ldr w1, [x2,760] + ldrh w0, [x2,758] + str w0, [x2,944] udiv w4, w1, w3 - str w4, [x2,1388] + str w4, [x2,1396] ubfx x5, x4, 5, 16 add w0, w5, 36 strh w0, [x2,3916] mov w0, 24 mul w0, w3, w0 cmp w20, w0 - ble .L2989 + ble .L2995 sub w1, w1, w20 udiv w1, w1, w3 - str w1, [x2,1388] + str w1, [x2,1396] lsr w1, w1, 5 add w1, w1, 24 strh w1, [x2,3916] -.L2989: +.L2995: add x2, x19, :lo12:.LANCHOR2 - ldr w0, [x2,3908] + ldr w0, [x2,652] cmp w0, 1 - bne .L2990 + bne .L2996 ldrh w1, [x2,3916] udiv w0, w20, w3 add w0, w1, w0 add w0, w1, w0, asr 2 strh w0, [x2,3916] -.L2990: +.L2996: adrp x21, .LANCHOR0 add x0, x21, :lo12:.LANCHOR0 ldrb w0, [x0,136] - cbz w0, .L2991 + cbz w0, .L2997 add x1, x19, :lo12:.LANCHOR2 udiv w0, w20, w3 ldrh w2, [x1,3916] add w0, w2, w0 add w0, w2, w0, asr 2 strh w0, [x1,3916] -.L2991: +.L2997: add x0, x19, :lo12:.LANCHOR2 - ldrh w1, [x0,802] - cbz w1, .L2993 + ldrh w1, [x0,810] + cbz w1, .L2999 ldrh w2, [x0,3916] add w2, w2, w1, lsr 1 strh w2, [x0,3916] mul w2, w1, w3 cmp w2, w20 - ble .L2993 + ble .L2999 add w1, w1, 32 - str w4, [x0,1388] + str w4, [x0,1396] add w1, w5, w1 strh w1, [x0,3916] -.L2993: +.L2999: add x19, x19, :lo12:.LANCHOR2 add x21, x21, :lo12:.LANCHOR0 - add x20, x19, 3552 + add x20, x19, 3608 mov w22, -1 - ldr w1, [x19,1388] + ldr w1, [x19,1396] ldrh w0, [x19,3916] sub w0, w1, w0 - ldrh w1, [x19,810] + ldrh w1, [x19,818] mul w0, w0, w3 str w0, [x19,3912] mul w0, w0, w1 - ldrh w1, [x19,816] - str w0, [x19,1388] + ldrh w1, [x19,824] + str w0, [x19,1396] mul w0, w0, w1 str w0, [x21,4048] bl FtlBbmTblFlush - ldrh w2, [x19,750] + ldrh w2, [x19,758] mov w1, 0 - ldr x0, [x19,1176] + ldr x0, [x19,1184] lsl w2, w2, 1 bl ftl_memset - str wzr, [x19,3836] + str wzr, [x19,3892] mov w0, 1 - ldrh w2, [x19,748] + ldrh w2, [x19,756] strb w0, [x20,8] mov w1, 255 ldr x0, [x21,16] @@ -19171,79 +19203,79 @@ FtlLowFormat: strb wzr, [x19,3928] strh wzr, [x20,2] strb wzr, [x20,6] - strh wzr, [x19,3552] + strh wzr, [x19,3608] bl ftl_memset -.L2995: +.L3001: mov x0, x20 bl make_superblock ldrb w0, [x20,7] - cbnz w0, .L2996 + cbnz w0, .L3002 ldrh w1, [x20] - ldr x0, [x19,1176] + ldr x0, [x19,1184] strh w22, [x0,x1,lsl 1] ldrh w0, [x20] add w0, w0, 1 strh w0, [x20] - b .L2995 -.L2996: - ldr w0, [x19,864] + b .L3001 +.L3002: + ldr w0, [x19,872] mov w21, -1 str w0, [x20,12] add w0, w0, 1 ldrh w1, [x20] - str w0, [x19,864] - ldr x0, [x19,1176] + str w0, [x19,872] + ldr x0, [x19,1184] ldrh w2, [x20,4] strh w2, [x0,x1,lsl 1] - add x0, x19, 3600 - strh wzr, [x19,3602] + add x0, x19, 3656 + strh wzr, [x19,3658] ldrh w1, [x20] mov x20, x0 - strb wzr, [x19,3606] + strb wzr, [x19,3662] add w1, w1, 1 - strh w1, [x19,3600] + strh w1, [x19,3656] mov w1, 1 - strb w1, [x19,3608] -.L2997: + strb w1, [x19,3664] +.L3003: mov x0, x20 bl make_superblock ldrb w0, [x20,7] - cbnz w0, .L2998 + cbnz w0, .L3004 ldrh w1, [x20] - ldr x0, [x19,1176] + ldr x0, [x19,1184] strh w21, [x0,x1,lsl 1] ldrh w0, [x20] add w0, w0, 1 strh w0, [x20] - b .L2997 -.L2998: - ldr w0, [x19,864] + b .L3003 +.L3004: + ldr w0, [x19,872] str w0, [x20,12] add w0, w0, 1 ldrh w1, [x20] - str w0, [x19,864] - ldr x0, [x19,1176] + str w0, [x19,872] + ldr x0, [x19,1184] ldrh w2, [x20,4] mov w20, -1 strh w2, [x0,x1,lsl 1] - strh w20, [x19,3648] + strh w20, [x19,3704] bl FtlFreeSysBlkQueueOut - strh w0, [x19,3840] + strh w0, [x19,3896] ldr w0, [x19,3912] - strh w0, [x19,3846] - ldr w0, [x19,864] - str w0, [x19,3848] + strh w0, [x19,3902] + ldr w0, [x19,872] + str w0, [x19,3904] add w0, w0, 1 - strh wzr, [x19,3842] - strh w20, [x19,3844] - str w0, [x19,864] + strh wzr, [x19,3898] + strh w20, [x19,3900] + str w0, [x19,872] bl FtlVpcTblFlush bl FtlSysBlkInit - cbnz w0, .L2977 - adrp x0, .LANCHOR1+3032 + cbnz w0, .L2983 + adrp x0, .LANCHOR1+3064 mov w1, 1 - str w1, [x0,#:lo12:.LANCHOR1+3032] -.L2977: + str w1, [x0,#:lo12:.LANCHOR1+3064] +.L2983: mov w0, 0 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -19260,24 +19292,24 @@ FtlReInitForSDUpdata: adrp x19, .LANCHOR0 add x0, x19, :lo12:.LANCHOR0 ldrb w0, [x0,136] - cbz w0, .L3010 -.L3012: + cbz w0, .L3016 +.L3018: mov w0, 0 - b .L3011 -.L3010: + b .L3017 +.L3016: adrp x0, RK29_NANDC_REG_BASE ldr x0, [x0,#:lo12:RK29_NANDC_REG_BASE] bl FlashInit - cbnz w0, .L3012 + cbnz w0, .L3018 bl FlashLoadFactorBbt - cbz w0, .L3013 + cbz w0, .L3019 bl FlashMakeFactorBbt -.L3013: +.L3019: adrp x20, .LANCHOR2 add x0, x20, :lo12:.LANCHOR2 - ldr x0, [x0,680] + ldr x0, [x0,688] bl FlashReadIdbDataRaw - cbz w0, .L3014 + cbz w0, .L3020 mov w1, 0 mov w2, 16 add x0, x29, 32 @@ -19286,43 +19318,43 @@ FtlReInitForSDUpdata: ldr w2, [x29,32] mov w1, w0 mov w4, 1 -.L3016: +.L3022: lsl w3, w4, w1 add w1, w1, 1 tst w3, w2 cset w3, ne cmp w1, 16 add w0, w0, w3 - bne .L3016 + bne .L3022 cmp w0, 6 - bhi .L3017 + bhi .L3023 add x0, x19, :lo12:.LANCHOR0 - b .L3039 -.L3017: + b .L3045 +.L3023: mov w1, 0 mov w4, 1 -.L3020: +.L3026: lsl w3, w4, w1 add w1, w1, 1 tst w3, w2 cset w3, ne cmp w1, 24 add w0, w0, w3 - bne .L3020 + bne .L3026 cmp w0, 17 add x0, x19, :lo12:.LANCHOR0 - bls .L3039 + bls .L3045 mov w1, 36 -.L3039: +.L3045: strb w1, [x0,25] add x0, x19, :lo12:.LANCHOR0 ldrb w1, [x0,25] strh w1, [x0,4042] -.L3014: - adrp x0, .LC42 - adrp x1, .LC116 - add x1, x1, :lo12:.LC116 - add x0, x0, :lo12:.LC42 +.L3020: + adrp x0, .LC45 + adrp x1, .LC119 + add x1, x1, :lo12:.LC119 + add x0, x0, :lo12:.LC45 add x20, x20, :lo12:.LANCHOR2 bl printk add x0, x19, :lo12:.LANCHOR0 @@ -19330,27 +19362,27 @@ FtlReInitForSDUpdata: add x0, x0, 4016 bl FtlConstantsInit bl FtlVariablesInit - ldrh w0, [x20,744] + ldrh w0, [x20,752] bl FtlFreeSysBlkQueueInit -.L3022: +.L3028: bl FtlLoadBbt - cbz w0, .L3023 -.L3041: + cbz w0, .L3029 +.L3047: bl FtlLowFormat cmp w19, 3 - bhi .L3042 + bhi .L3048 add w19, w19, 1 - b .L3022 -.L3042: + b .L3028 +.L3048: mov w0, -1 - b .L3011 -.L3023: + b .L3017 +.L3029: bl FtlSysBlkInit - cbnz w0, .L3041 - adrp x1, .LANCHOR1+3032 + cbnz w0, .L3047 + adrp x1, .LANCHOR1+3064 mov w2, 1 - str w2, [x1,#:lo12:.LANCHOR1+3032] -.L3011: + str w2, [x1,#:lo12:.LANCHOR1+3064] +.L3017: ldp x19, x20, [sp,16] ldp x29, x30, [sp], 48 ret @@ -19361,72 +19393,72 @@ FtlReInitForSDUpdata: FtlInit: stp x29, x30, [sp, -48]! mov w0, -1 - adrp x1, .LC116 + adrp x1, .LC119 add x29, sp, 0 str x21, [sp,32] adrp x21, .LANCHOR1 add x21, x21, :lo12:.LANCHOR1 - add x1, x1, :lo12:.LC116 + add x1, x1, :lo12:.LC119 stp x19, x20, [sp,16] adrp x19, .LANCHOR2 adrp x20, .LANCHOR0 - str w0, [x21,3032] + str w0, [x21,3064] adrp x0, .LANCHOR4+388 add x19, x19, :lo12:.LANCHOR2 add x20, x20, :lo12:.LANCHOR0 str wzr, [x0,#:lo12:.LANCHOR4+388] - adrp x0, .LC42 - add x0, x0, :lo12:.LC42 - str wzr, [x19,1392] + adrp x0, .LC45 + add x0, x0, :lo12:.LC45 + str wzr, [x19,1400] bl printk add x0, x20, 4016 bl FtlConstantsInit bl FtlMemInit bl FtlVariablesInit - ldrh w0, [x19,744] + ldrh w0, [x19,752] bl FtlFreeSysBlkQueueInit bl FtlLoadBbt - cbz w0, .L3044 - adrp x0, .LC135 - add x0, x0, :lo12:.LC135 - b .L3056 -.L3044: + cbz w0, .L3050 + adrp x0, .LC138 + add x0, x0, :lo12:.LC138 + b .L3062 +.L3050: bl FtlSysBlkInit - cbz w0, .L3046 - adrp x0, .LC136 - add x0, x0, :lo12:.LC136 -.L3056: + cbz w0, .L3052 + adrp x0, .LC139 + add x0, x0, :lo12:.LC139 +.L3062: adrp x1, .LANCHOR3 add x1, x1, :lo12:.LANCHOR3 add x1, x1, 40 bl printk - b .L3045 -.L3046: + b .L3051 +.L3052: mov w1, 1 - str w1, [x21,3032] + str w1, [x21,3064] bl ftl_do_gc - ldrh w0, [x19,3544] + ldrh w0, [x19,3600] cmp w0, 15 - bhi .L3047 + bhi .L3053 mov w19, 1024 -.L3048: +.L3054: mov w0, 1 mov w1, w0 bl ftl_do_gc subs w19, w19, #1 - bne .L3048 - b .L3045 -.L3047: + bne .L3054 + b .L3051 +.L3053: ldrb w0, [x20,136] - cbz w0, .L3045 + cbz w0, .L3051 mov w19, 128 -.L3050: +.L3056: mov w0, 1 mov w1, w0 bl ftl_do_gc subs w19, w19, #1 - bne .L3050 -.L3045: + bne .L3056 +.L3051: mov w0, 0 ldr x21, [sp,32] ldp x19, x20, [sp,16] @@ -19658,9 +19690,9 @@ FtlInit: .section .rodata .align 3 .LANCHOR3 = . + 0 - .type __func__.19425, %object - .size __func__.19425, 11 -__func__.19425: + .type __func__.19429, %object + .size __func__.19429, 11 +__func__.19429: .string "FtlMemInit" .zero 5 .type __func__.20378, %object @@ -19668,9 +19700,9 @@ __func__.19425: __func__.20378: .string "FtlVpcCheckAndModify" .zero 3 - .type __func__.19496, %object - .size __func__.19496, 8 -__func__.19496: + .type __func__.19502, %object + .size __func__.19502, 8 +__func__.19502: .string "FtlInit" .section .rodata.str1.1,"aMS",%progbits,1 .LC0: @@ -19744,208 +19776,214 @@ __func__.19496: .LC34: .string "remove_from_free_sys_Queue %x\n" .LC35: - .string "FtlMapWritePage error = %x\n" + .string "FtlFreeSysBlkQueueOut free count = %d\n" .LC36: - .string "FtlMapWritePage error = %x error count = %d\n" + .string "FtlFreeSysBlkQueueOut = %x, free count = %d, error\n" .LC37: - .string "ftl_map_blk_gc blk info: %x %x %x\n" + .string "FtlFreeSysBlkQueueOut = %x, free count = %d\n" .LC38: - .string "page map lost: %x %x\n" + .string "FtlMapWritePage error = %x\n" .LC39: - .string "load_l2p_region refresh = %x phyAddr = %x\n" + .string "FtlMapWritePage error = %x error count = %d\n" .LC40: - .string "FtlVendorPartRead refresh = %x phyAddr = %x\n" + .string "ftl_map_blk_gc blk info: %x %x %x\n" .LC41: - .string "FtlVpcTblFlush error = %x error count = %d\n" + .string "page map lost: %x %x\n" .LC42: - .string "%s\n" + .string "load_l2p_region refresh = %x phyAddr = %x\n" .LC43: - .string "no ect" + .string "FtlVendorPartRead refresh = %x phyAddr = %x\n" .LC44: - .string "page map lost %x %x %x %x\n" + .string "FtlVpcTblFlush error = %x error count = %d\n" .LC45: - .string "slc mode" + .string "%s\n" .LC46: - .string "FLASH INFO:\n" + .string "no ect" .LC47: - .string "FLASH ID: %x\n" + .string "page map lost %x %x %x %x\n" .LC48: - .string "Device Capacity: %d MB\n" + .string "slc mode" .LC49: - .string "FMWAIT: %x %x %x %x\n" + .string "FLASH INFO:\n" .LC50: - .string "FTL INFO:\n" + .string "FLASH ID: %x\n" .LC51: - .string "g_MaxLpn = 0x%x\n" + .string "Device Capacity: %d MB\n" .LC52: - .string "g_VaildLpn = 0x%x\n" + .string "FMWAIT: %x %x %x %x\n" .LC53: - .string "read_page_count = 0x%x\n" + .string "FTL INFO:\n" .LC54: - .string "discard_page_count = 0x%x\n" + .string "g_MaxLpn = 0x%x\n" .LC55: - .string "write_page_count = 0x%x\n" + .string "g_VaildLpn = 0x%x\n" .LC56: - .string "cache_write_count = 0x%x\n" + .string "read_page_count = 0x%x\n" .LC57: - .string "l2p_write_count = 0x%x\n" + .string "discard_page_count = 0x%x\n" .LC58: - .string "gc_page_count = 0x%x\n" + .string "write_page_count = 0x%x\n" .LC59: - .string "totle_write = %d MB\n" + .string "cache_write_count = 0x%x\n" .LC60: - .string "totle_read = %d MB\n" + .string "l2p_write_count = 0x%x\n" .LC61: - .string "GSV = 0x%x\n" + .string "gc_page_count = 0x%x\n" .LC62: - .string "GDV = 0x%x\n" + .string "totle_write = %d MB\n" .LC63: - .string "bad blk num = %d %d\n" + .string "totle_read = %d MB\n" .LC64: - .string "free_superblocks = 0x%x\n" + .string "GSV = 0x%x\n" .LC65: - .string "mlc_EC = 0x%x\n" + .string "GDV = 0x%x\n" .LC66: - .string "slc_EC = 0x%x\n" + .string "bad blk num = %d %d\n" .LC67: - .string "avg_EC = 0x%x\n" + .string "free_superblocks = 0x%x\n" .LC68: - .string "sys_EC = 0x%x\n" + .string "mlc_EC = 0x%x\n" .LC69: - .string "max_EC = 0x%x\n" + .string "slc_EC = 0x%x\n" .LC70: - .string "min_EC = 0x%x\n" + .string "avg_EC = 0x%x\n" .LC71: - .string "PLT = 0x%x\n" + .string "sys_EC = 0x%x\n" .LC72: - .string "POT = 0x%x\n" + .string "max_EC = 0x%x\n" .LC73: - .string "MaxSector = 0x%x\n" + .string "min_EC = 0x%x\n" .LC74: - .string "init_sys_blks_pp = 0x%x\n" + .string "PLT = 0x%x\n" .LC75: - .string "sys_blks_pp = 0x%x\n" + .string "POT = 0x%x\n" .LC76: - .string "free sysblock = 0x%x\n" + .string "MaxSector = 0x%x\n" .LC77: - .string "data_blks_pp = 0x%x\n" + .string "init_sys_blks_pp = 0x%x\n" .LC78: - .string "data_op_blks_pp = 0x%x\n" + .string "sys_blks_pp = 0x%x\n" .LC79: - .string "max_data_blks = 0x%x\n" + .string "free sysblock = 0x%x\n" .LC80: - .string "Sys.id = 0x%x\n" + .string "data_blks_pp = 0x%x\n" .LC81: - .string "Bbt.id = 0x%x\n" + .string "data_op_blks_pp = 0x%x\n" .LC82: - .string "ACT.page = 0x%x\n" + .string "max_data_blks = 0x%x\n" .LC83: - .string "ACT.plane = 0x%x\n" + .string "Sys.id = 0x%x\n" .LC84: - .string "ACT.id = 0x%x\n" + .string "Bbt.id = 0x%x\n" .LC85: - .string "ACT.mode = 0x%x\n" + .string "ACT.page = 0x%x\n" .LC86: - .string "ACT.a_pages = 0x%x\n" + .string "ACT.plane = 0x%x\n" .LC87: - .string "ACT VPC = 0x%x\n" + .string "ACT.id = 0x%x\n" .LC88: - .string "BUF.page = 0x%x\n" + .string "ACT.mode = 0x%x\n" .LC89: - .string "BUF.plane = 0x%x\n" + .string "ACT.a_pages = 0x%x\n" .LC90: - .string "BUF.id = 0x%x\n" + .string "ACT VPC = 0x%x\n" .LC91: - .string "BUF.mode = 0x%x\n" + .string "BUF.page = 0x%x\n" .LC92: - .string "BUF.a_pages = 0x%x\n" + .string "BUF.plane = 0x%x\n" .LC93: - .string "BUF VPC = 0x%x\n" + .string "BUF.id = 0x%x\n" .LC94: - .string "TMP.page = 0x%x\n" + .string "BUF.mode = 0x%x\n" .LC95: - .string "TMP.plane = 0x%x\n" + .string "BUF.a_pages = 0x%x\n" .LC96: - .string "TMP.id = 0x%x\n" + .string "BUF VPC = 0x%x\n" .LC97: - .string "TMP.mode = 0x%x\n" + .string "TMP.page = 0x%x\n" .LC98: - .string "TMP.a_pages = 0x%x\n" + .string "TMP.plane = 0x%x\n" .LC99: - .string "GC.page = 0x%x\n" + .string "TMP.id = 0x%x\n" .LC100: - .string "GC.plane = 0x%x\n" + .string "TMP.mode = 0x%x\n" .LC101: - .string "GC.id = 0x%x\n" + .string "TMP.a_pages = 0x%x\n" .LC102: - .string "GC.mode = 0x%x\n" + .string "GC.page = 0x%x\n" .LC103: - .string "GC.a_pages = 0x%x\n" + .string "GC.plane = 0x%x\n" .LC104: - .string "WR_CHK = 0x%x %x %x %x\n" + .string "GC.id = 0x%x\n" .LC105: - .string "Read Err Cnt = 0x%x\n" + .string "GC.mode = 0x%x\n" .LC106: - .string "Prog Err Cnt = 0x%x\n" + .string "GC.a_pages = 0x%x\n" .LC107: - .string "gc_free_blk_th= 0x%x\n" + .string "WR_CHK = 0x%x %x %x %x\n" .LC108: - .string "gc_merge_free_blk_th= 0x%x\n" + .string "Read Err Cnt = 0x%x\n" .LC109: - .string "gc_skip_write_count= 0x%x\n" + .string "Prog Err Cnt = 0x%x\n" .LC110: - .string "gc_blk_index= 0x%x\n" + .string "gc_free_blk_th= 0x%x\n" .LC111: - .string "free min EC= 0x%x\n" + .string "gc_merge_free_blk_th= 0x%x\n" .LC112: - .string "free max EC= 0x%x\n" + .string "gc_skip_write_count= 0x%x\n" .LC113: - .string "GC__SB VPC = 0x%x\n" + .string "gc_blk_index= 0x%x\n" .LC114: - .string "%d. [0x%x]=0x%x 0x%x 0x%x\n" + .string "free min EC= 0x%x\n" .LC115: - .string "free %d. [0x%x] 0x%x 0x%x\n" + .string "free max EC= 0x%x\n" .LC116: - .string "FTL version: 5.0.47 20180316" + .string "GC__SB VPC = 0x%x\n" .LC117: - .string "swblk %x ,avg = %x max= %x vpc= %x,ec=%x ,max ec=%x\n" + .string "%d. [0x%x]=0x%x 0x%x 0x%x\n" .LC118: - .string "FtlGcScanTempBlkError ID %x %x!!!!!!!\n" + .string "free %d. [0x%x] 0x%x 0x%x\n" .LC119: - .string "FtlGcRefreshBlock 0x%x\n" + .string "FTL version: 5.0.48 20180408" .LC120: - .string "FtlGcMarkBadPhyBlk %d 0x%x\n" + .string "swblk %x ,avg = %x max= %x vpc= %x,ec=%x ,max ec=%x\n" .LC121: - .string "FtlGcFreeBadSuperBlk 0x%x\n" + .string "FtlGcScanTempBlkError ID %x %x!!!!!!!\n" .LC122: - .string "decrement_vpc_count %x = %d\n" + .string "FtlGcRefreshBlock 0x%x\n" .LC123: - .string "RSB refresh addr %x\n" + .string "FtlGcMarkBadPhyBlk %d 0x%x\n" .LC124: - .string "spuer block %x vpn is 0\n " + .string "FtlGcFreeBadSuperBlk 0x%x\n" .LC125: - .string "g_recovery_ppa %x ver %x\n " + .string "decrement_vpc_count %x = %d\n" .LC126: - .string "...%s enter...\n" + .string "RSB refresh addr %x\n" .LC127: - .string "FtlCheckVpc %x = %x %x\n" + .string "spuer block %x vpn is 0\n " .LC128: - .string "%d GC datablk = %x vpc %x %x\n" + .string "g_recovery_ppa %x ver %x\n " .LC129: - .string "SWL %x, FSB = %x vpc= %x,ec=%x th=%x\n" + .string "...%s enter...\n" .LC130: - .string "Ftlwrite decrement_vpc_count %x = %d\n" + .string "FtlCheckVpc %x = %x %x\n" .LC131: - .string "GC des block %x done\n" + .string "%d GC datablk = %x vpc %x %x\n" .LC132: - .string "FtlWrite: lpa error:%x %x\n" + .string "SWL %x, FSB = %x vpc= %x,ec=%x th=%x\n" .LC133: - .string "fix power lost blk = %x vpc=%x\n" + .string "Ftlwrite decrement_vpc_count %x = %d\n" .LC134: - .string "erase power lost blk = %x vpc=%x\n" + .string "GC des block %x done\n" .LC135: - .string "...%s: no bad block mapping table, format device\n" + .string "FtlWrite: lpa error:%x %x\n" .LC136: + .string "fix power lost blk = %x vpc=%x\n" +.LC137: + .string "erase power lost blk = %x vpc=%x\n" +.LC138: + .string "...%s: no bad block mapping table, format device\n" +.LC139: .string "...%s FtlSysBlkInit error ,format device!\n" .data .align 3 @@ -20107,7 +20145,7 @@ gNandParaInfo: .byte 0 .zero 4 .type NandFlashParaTbl, %object - .size NandFlashParaTbl, 2336 + .size NandFlashParaTbl, 2368 NandFlashParaTbl: .byte 6 .byte 44 @@ -20605,6 +20643,32 @@ NandFlashParaTbl: .zero 4 .byte 5 .byte 44 + .byte -124 + .byte 68 + .byte 50 + .byte -86 + .byte 0 + .byte 4 + .byte 1 + .byte 32 + .hword 512 + .byte 2 + .byte 2 + .hword 1096 + .hword 1503 + .byte 5 + .byte 19 + .byte 60 + .byte 32 + .byte 1 + .byte 0 + .byte 1 + .byte 0 + .byte 1 + .byte 0 + .zero 4 + .byte 5 + .byte 44 .byte 100 .byte 68 .byte 50 @@ -22582,9 +22646,14 @@ gNandcEccBits: gMultiPageProgEn: .zero 1 .zero 3 + .type g_inkDie_check_enable, %object + .size g_inkDie_check_enable, 4 +g_inkDie_check_enable: + .zero 4 .type FlashDdrTunningReadCount, %object .size FlashDdrTunningReadCount, 4 FlashDdrTunningReadCount: + .zero 4 .zero 4 .type gpReadRetrial, %object .size gpReadRetrial, 8 @@ -23086,6 +23155,10 @@ req_sys: .size gSysFreeQueue, 2056 gSysFreeQueue: .zero 2056 + .type g_sys_save_data, %object + .size g_sys_save_data, 48 +g_sys_save_data: + .zero 48 .type p_data_block_list_head, %object .size p_data_block_list_head, 8 p_data_block_list_head: @@ -23146,20 +23219,11 @@ g_VaildLpn: .size gSysInfo, 12 gSysInfo: .zero 12 - .zero 4 - .type g_sys_save_data, %object - .size g_sys_save_data, 48 -g_sys_save_data: - .zero 48 .type g_totle_map_block, %object .size g_totle_map_block, 2 g_totle_map_block: .zero 2 .zero 2 - .type g_inkDie_check_enable, %object - .size g_inkDie_check_enable, 4 -g_inkDie_check_enable: - .zero 4 .type g_MaxLbn, %object .size g_MaxLbn, 4 g_MaxLbn: diff --git a/drivers/rk_nand/rk_zftl_arm64.S b/drivers/rk_nand/rk_zftl_arm64.S index 507f22b3f481..5a6a3afb9a83 100644 --- a/drivers/rk_nand/rk_zftl_arm64.S +++ b/drivers/rk_nand/rk_zftl_arm64.S @@ -5,7 +5,7 @@ * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. - * date: 2018-03-16 + * date: 2018-04-08 * function: rk ftl v5 for rockchip soc base on arm v8 to support 3D/2D * TLC and MLC. */ @@ -64,106 +64,138 @@ zftl_nandc_get_irq_status: .L10: ret .size zftl_nandc_get_irq_status, .-zftl_nandc_get_irq_status + .section .text.unlikely,"ax",%progbits + .align 2 + .type isxdigit, %function +isxdigit: + and w1, w0, -33 + mov w2, 1 + sub w1, w1, #65 + cmp w1, 25 + bls .L12 + sub w0, w0, #48 + cmp w0, 9 + cset w2, ls +.L12: + mov w0, w2 + ret + .size isxdigit, .-isxdigit + .text .align 2 .global zftl_get_density .type zftl_get_density, %function zftl_get_density: - cbnz w0, .L12 + cbnz w0, .L15 adrp x0, .LANCHOR0+4 ldr w0, [x0,#:lo12:.LANCHOR0+4] - b .L13 -.L12: + b .L16 +.L15: cmp w0, 4 mov w0, 8192 csel w0, w0, wzr, cc -.L13: +.L16: ret .size zftl_get_density, .-zftl_get_density .align 2 .type _list_remove_node, %function _list_remove_node: - adrp x6, .LANCHOR0 + stp x29, x30, [sp, -64]! uxth w1, w1 - add x3, x6, :lo12:.LANCHOR0 - mov w7, 65535 - stp x29, x30, [sp, -16]! + mov w4, 6 add x29, sp, 0 - ldr x5, [x3,8] - mov w3, 6 - umull x1, w1, w3 - add x4, x5, x1 - ldrh w3, [x5,x1] - cmp w3, w7 - bne .L16 - ldrh w7, [x4,2] - cmp w7, w3 - bne .L16 - ldr x7, [x0] - cmp x4, x7 - bne .L15 -.L16: - ldrh w7, [x4,2] - mov w8, 65535 - cmp w7, w8 + stp x19, x20, [sp,16] + adrp x19, .LANCHOR0 + add x3, x19, :lo12:.LANCHOR0 + stp x21, x22, [sp,32] + stp x23, x24, [sp,48] + umull x21, w1, w4 + ldr x23, [x3,8] + mov w3, 65535 + add x20, x23, x21 + ldrh w1, [x23,x21] + cmp w1, w3 + bne .L19 + ldrh w3, [x20,2] + cmp w3, w1 + bne .L19 + ldr x1, [x0] + cmp x20, x1 bne .L18 - ldr x8, [x0] - cmp x4, x8 - beq .L18 +.L19: + ldrh w1, [x20,2] + mov x22, x0 + mov w0, 65535 + mov x24, x2 + cmp w1, w0 + bne .L21 + ldr x0, [x22] + cmp x20, x0 + beq .L21 adrp x0, .LC0 adrp x1, .LANCHOR1 add x0, x0, :lo12:.LC0 add x1, x1, :lo12:.LANCHOR1 - mov w2, 182 + mov w2, 184 bl printk -.L19: - b .L19 -.L18: - ldr x8, [x0] - cmp x4, x8 - mov w8, 65535 - bne .L20 - cmp w3, w8 - bne .L21 - str xzr, [x0] - b .L22 .L21: - mov w6, 6 - umull x3, w3, w6 - add x3, x5, x3 - str x3, [x0] - mov w0, -1 - strh w0, [x3,2] - b .L22 -.L20: - cmp w3, w8 + ldr x0, [x22] + mov w2, 65535 + cmp x20, x0 + bne .L22 + ldrh w1, [x23,x21] + cmp w1, w2 bne .L23 - cmp w7, w3 - beq .L22 - mov w0, 6 - umull x7, w7, w0 - mov w0, -1 - strh w0, [x5,x7] - b .L22 + str xzr, [x22] + b .L24 .L23: - mov w8, 6 - add x6, x6, :lo12:.LANCHOR0 - umull x3, w3, w8 - add x3, x5, x3 - strh w7, [x3,2] - ldrh w0, [x4,2] - ldr x3, [x6,8] - ldrh w7, [x5,x1] - umull x0, w0, w8 - strh w7, [x3,x0] -.L22: + add x19, x19, :lo12:.LANCHOR0 + mov w0, 6 + umull x1, w1, w0 + ldr x0, [x19,8] + add x1, x0, x1 + str x1, [x22] mov w0, -1 - strh w0, [x5,x1] - strh w0, [x4,2] - ldrh w0, [x2] + strh w0, [x1,2] + b .L24 +.L22: + ldrh w0, [x23,x21] + cmp w0, w2 + bne .L25 + ldrh w1, [x20,2] + cmp w1, w0 + beq .L24 + add x19, x19, :lo12:.LANCHOR0 + mov w0, 6 + mov w2, -1 + umull x1, w1, w0 + ldr x0, [x19,8] + b .L26 +.L25: + add x19, x19, :lo12:.LANCHOR0 + mov w1, 6 + ldrh w2, [x20,2] + umull x0, w0, w1 + ldr x3, [x19,8] + add x0, x3, x0 + strh w2, [x0,2] + ldrh w0, [x20,2] + ldrh w2, [x23,x21] + umull x0, w0, w1 + ldr x1, [x19,8] +.L26: + strh w2, [x1,x0] +.L24: + mov w0, -1 + strh w0, [x23,x21] + strh w0, [x20,2] + ldrh w0, [x24] sub w0, w0, #1 - strh w0, [x2] -.L15: - ldp x29, x30, [sp], 16 + strh w0, [x24] +.L18: + ldp x19, x20, [sp,16] + ldp x21, x22, [sp,32] + ldp x23, x24, [sp,48] + ldp x29, x30, [sp], 64 ret .size _list_remove_node, .-_list_remove_node .align 2 @@ -175,14 +207,14 @@ _list_pop_index_node: stp x19, x20, [sp,16] mov w19, 65535 ldr x20, [x0] - cbz x20, .L25 + cbz x20, .L28 adrp x3, .LANCHOR0+8 mov w4, 65535 mov w5, 6 ldr x19, [x3,#:lo12:.LANCHOR0+8] -.L26: - cbnz w1, .L27 .L29: + cbnz w1, .L30 +.L32: sub x19, x20, x19 mov x1, -6148914691236517206 asr x19, x19, 1 @@ -193,23 +225,62 @@ _list_pop_index_node: mov w0, -1 strh w0, [x20] strh w0, [x20,2] - b .L25 -.L27: + b .L28 +.L30: ldrh w3, [x20] cmp w3, w4 - beq .L29 + beq .L32 umull x20, w3, w5 sub w1, w1, #1 add x20, x19, x20 uxth w1, w1 - b .L26 -.L25: + b .L29 +.L28: mov w0, w19 ldp x19, x20, [sp,16] ldp x29, x30, [sp], 32 ret .size _list_pop_index_node, .-_list_pop_index_node .align 2 + .type zftl_debug_proc_open, %function +zftl_debug_proc_open: + stp x29, x30, [sp, -32]! + add x29, sp, 0 + str x1, [x29,24] + bl PDE_DATA + ldr x1, [x29,24] + mov x2, x0 + mov x0, x1 + adrp x1, zftl_debug_proc_show + add x1, x1, :lo12:zftl_debug_proc_show + bl single_open + ldp x29, x30, [sp], 32 + ret + .size zftl_debug_proc_open, .-zftl_debug_proc_open + .align 2 + .type zftl_debug_proc_show, %function +zftl_debug_proc_show: + stp x29, x30, [sp, -32]! + adrp x1, .LC1 + adrp x2, .LC2 + add x29, sp, 0 + add x1, x1, :lo12:.LC1 + add x2, x2, :lo12:.LC2 + str x19, [sp,16] + mov x19, x0 + bl seq_printf + adrp x2, .LANCHOR2 + adrp x1, .LC3 + mov x0, x19 + add x1, x1, :lo12:.LC3 + ldr w2, [x2,#:lo12:.LANCHOR2] + bl seq_printf + ldr x19, [sp,16] + mov w0, 0 + ldp x29, x30, [sp], 32 + ret + .size zftl_debug_proc_show, .-zftl_debug_proc_show + .align 2 .global zftl_flash_suspend .type zftl_flash_suspend, %function zftl_flash_suspend: @@ -222,7 +293,7 @@ zftl_flash_suspend: str w2, [x0,24] ldr w2, [x1,4] str w2, [x0,28] - bne .L32 + bne .L37 ldr w2, [x1,16] str w2, [x0,32] ldr w2, [x1,32] @@ -234,8 +305,8 @@ zftl_flash_suspend: ldr w2, [x1,520] str w2, [x0,48] ldr w1, [x1,8] - b .L34 -.L32: + b .L39 +.L37: ldr w2, [x1,8] str w2, [x0,32] ldr w2, [x1,12] @@ -247,7 +318,7 @@ zftl_flash_suspend: ldr w2, [x1,336] ldr w1, [x1,344] str w2, [x0,48] -.L34: +.L39: str w1, [x0,52] ret .size zftl_flash_suspend, .-zftl_flash_suspend @@ -258,7 +329,7 @@ nandc_irq_disable: ldrb w2, [x2,#:lo12:.LANCHOR0] cmp w2, 9 mov x2, 1 - bne .L36 + bne .L41 ldr w3, [x0,292] lsl x1, x2, x1 orr w2, w3, w1 @@ -266,8 +337,8 @@ nandc_irq_disable: ldr w2, [x0,288] bic w1, w2, w1 str w1, [x0,288] - b .L35 -.L36: + b .L40 +.L41: ldr w3, [x0,368] lsl x1, x2, x1 orr w2, w3, w1 @@ -275,7 +346,7 @@ nandc_irq_disable: ldr w2, [x0,364] bic w1, w2, w1 str w1, [x0,364] -.L35: +.L40: ret .size nandc_irq_disable, .-nandc_irq_disable .align 2 @@ -287,7 +358,7 @@ _insert_free_list: mov x10, x3 ldrh w4, [x6,56] cmp w4, w1 - bls .L38 + bls .L43 ldrh w3, [x2] mov w5, 6 add w3, w3, 1 @@ -299,7 +370,7 @@ _insert_free_list: strh w2, [x7,2] strh w2, [x12,x11] ldr x2, [x0] - cbz x2, .L45 + cbz x2, .L50 ldr x9, [x6,64] ubfiz x8, x1, 2, 16 ldr x13, [x6,8] @@ -316,7 +387,7 @@ _insert_free_list: and w4, w4, 4095 madd x3, x6, x3, x3 uxth w3, w3 -.L43: +.L48: ubfiz x14, x3, 2, 16 ldr w5, [x9,x14] ubfx x6, x5, 11, 8 @@ -325,30 +396,30 @@ _insert_free_list: add w5, w5, w6, lsl 3 and w5, w5, 4095 cmp w5, w4 - bcs .L41 + bcs .L46 ldrh w5, [x2] cmp w5, w15 - bne .L42 + bne .L47 strh w3, [x7,2] strh w1, [x2] - b .L38 -.L42: + b .L43 +.L47: umull x2, w5, w8 mov w3, w5 add x2, x13, x2 - b .L43 -.L41: + b .L48 +.L46: ldrh w4, [x2,2] strh w4, [x7,2] strh w3, [x12,x11] ldr x3, [x0] cmp x2, x3 - bne .L44 + bne .L49 strh w1, [x2,2] -.L45: +.L50: str x7, [x0] - b .L38 -.L44: + b .L43 +.L49: ldrh w0, [x2,2] add x3, x10, :lo12:.LANCHOR0 mov w4, 6 @@ -356,7 +427,7 @@ _insert_free_list: umull x0, w0, w4 strh w1, [x3,x0] strh w1, [x2,2] -.L38: +.L43: ret .size _insert_free_list, .-_insert_free_list .align 2 @@ -370,7 +441,7 @@ _insert_data_list: str x19, [sp] ldrh w5, [x4,56] cmp w5, w1 - bls .L46 + bls .L51 ldrh w3, [x2] mov w9, 6 add w3, w3, 1 @@ -382,7 +453,7 @@ _insert_data_list: strh w2, [x6,2] strh w2, [x12,x11] ldr x2, [x0] - cbz x2, .L61 + cbz x2, .L66 ubfiz x3, x1, 1, 16 ldr x15, [x4,72] ldr x14, [x4,8] @@ -400,13 +471,13 @@ _insert_data_list: csinv w13, w13, wzr, ne madd x3, x5, x3, x3 uxth w3, w3 -.L57: +.L62: add w7, w7, 1 cmp w1, w3 uxth w7, w7 - beq .L46 + beq .L51 cmp w7, w18 - bhi .L46 + bhi .L51 uxtw x8, w3 ldrh w5, [x2,4] cmp w5, wzr @@ -414,7 +485,7 @@ _insert_data_list: mul w4, w4, w5 csinv w4, w4, wzr, ne cmp w4, w13 - bne .L53 + bne .L58 lsl x8, x8, 2 ldr w4, [x17,x8] ubfx x5, x4, 11, 8 @@ -423,34 +494,34 @@ _insert_data_list: add w4, w4, w5, lsl 3 and w4, w4, 4095 cmp w4, w16 - bcc .L55 - b .L54 -.L53: - bhi .L54 -.L55: + bcc .L60 + b .L59 +.L58: + bhi .L59 +.L60: ldrh w4, [x2] cmp w4, w19 - bne .L56 + bne .L61 strh w3, [x6,2] strh w1, [x2] - b .L46 -.L56: + b .L51 +.L61: umull x2, w4, w9 mov w3, w4 add x2, x14, x2 - b .L57 -.L54: + b .L62 +.L59: ldrh w4, [x2,2] strh w4, [x6,2] strh w3, [x12,x11] ldr x3, [x0] cmp x2, x3 - bne .L58 + bne .L63 strh w1, [x2,2] -.L61: +.L66: str x6, [x0] - b .L46 -.L58: + b .L51 +.L63: ldrh w0, [x2,2] add x3, x10, :lo12:.LANCHOR0 mov w4, 6 @@ -458,7 +529,7 @@ _insert_data_list: umull x0, w0, w4 strh w1, [x3,x0] strh w1, [x2,2] -.L46: +.L51: ldr x19, [sp] add sp, sp, 16 ret @@ -468,159 +539,548 @@ _insert_data_list: _list_get_gc_head_node.isra.5: uxth w1, w1 mov w2, 65535 - cbz x0, .L68 + cbz x0, .L73 adrp x2, .LANCHOR0+8 mov w4, 65535 mov w5, 6 ldr x3, [x2,#:lo12:.LANCHOR0+8] -.L64: - cbz w1, .L65 +.L69: + cbz w1, .L70 ldrh w2, [x0] cmp w2, w4 - beq .L68 + beq .L73 umull x2, w2, w5 sub w1, w1, #1 add x0, x3, x2 uxth w1, w1 - b .L64 -.L65: + b .L69 +.L70: sub x0, x0, x3 mov x1, -6148914691236517206 asr x0, x0, 1 madd x0, x1, x0, x0 uxth w2, w0 -.L68: +.L73: mov w0, w2 ret .size _list_get_gc_head_node.isra.5, .-_list_get_gc_head_node.isra.5 .align 2 .type _list_update_data_list, %function _list_update_data_list: - stp x29, x30, [sp, -48]! + stp x29, x30, [sp, -80]! add x29, sp, 0 stp x19, x20, [sp,16] uxth w19, w1 adrp x1, .LANCHOR0 add x4, x1, :lo12:.LANCHOR0 - str x21, [sp,32] + str x25, [sp,64] + stp x21, x22, [sp,32] + stp x23, x24, [sp,48] + mov x20, x1 ldr x3, [x4,80] ldrh w5, [x3,16] cmp w5, w19 - beq .L69 - ldrh w5, [x3,48] - cmp w5, w19 - beq .L69 - ldrh w3, [x3,80] - cmp w3, w19 - beq .L69 - ldr x5, [x4,8] - mov w4, 6 - ldr x3, [x0] - umull x4, w19, w4 - add x6, x5, x4 - cmp x6, x3 - beq .L69 - ldrh w3, [x6,2] - mov x20, x0 - mov w0, 65535 - mov x21, x2 - cmp w3, w0 - bne .L71 - ldrh w0, [x5,x4] - cmp w0, w3 - bne .L71 + beq .L74 + ldrh w1, [x3,48] + cmp w1, w19 + beq .L74 + ldrh w1, [x3,80] + cmp w1, w19 + beq .L74 + mov w23, 6 + ldr x25, [x4,8] + ldr x1, [x0] + umull x23, w19, w23 + add x24, x25, x23 + cmp x24, x1 + beq .L74 + mov x21, x0 + ldrh w0, [x24,2] + mov w1, 65535 + mov x22, x2 + cmp w0, w1 + bne .L78 + ldrh w1, [x25,x23] + cmp w1, w0 + bne .L78 adrp x1, .LANCHOR1 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR1 add x0, x0, :lo12:.LC0 add x1, x1, 24 - mov w2, 249 + mov w2, 251 bl printk -.L72: - b .L72 -.L71: - add x1, x1, :lo12:.LANCHOR0 +.L78: + ldrh w3, [x24,2] + mov w0, 65535 + cmp w3, w0 + bne .L79 + ldrh w0, [x25,x23] + cmp w0, w3 + beq .L74 +.L79: + add x1, x20, :lo12:.LANCHOR0 ubfiz x0, x19, 1, 16 - mov x2, -6148914691236517206 + mov x5, -6148914691236517206 ldr x4, [x1,72] - ldrh w1, [x4,x0] - ldrh w0, [x6,4] + ldr x1, [x1,8] + ldrh w2, [x4,x0] + ldrh w0, [x24,4] cmp w0, wzr - mul w1, w1, w0 + mul w2, w2, w0 mov w0, 6 - csinv w1, w1, wzr, ne + csinv w2, w2, wzr, ne umull x3, w3, w0 asr x0, x3, 1 - add x3, x5, x3 - madd x0, x2, x0, x0 - ldrh w3, [x3,4] + add x3, x1, x3 + madd x0, x5, x0, x0 + ldrh w1, [x3,4] ldrh w0, [x4,x0,lsl 1] - cmp w3, wzr - mul w0, w0, w3 + cmp w1, wzr + mul w0, w0, w1 csinv w0, w0, wzr, ne - cmp w1, w0 - bcs .L69 - mov x0, x20 + cmp w2, w0 + bcs .L74 + mov x0, x21 mov w1, w19 - mov x2, x21 + mov x2, x22 bl _list_remove_node - mov x0, x20 + mov x0, x21 mov w1, w19 - mov x2, x21 + mov x2, x22 bl _insert_data_list -.L69: +.L74: ldp x19, x20, [sp,16] - ldr x21, [sp,32] - ldp x29, x30, [sp], 48 + ldp x21, x22, [sp,32] + ldp x23, x24, [sp,48] + ldr x25, [sp,64] + ldp x29, x30, [sp], 80 ret .size _list_update_data_list, .-_list_update_data_list + .section .text.unlikely + .align 2 + .type rk_simple_strtoull.constprop.34, %function +rk_simple_strtoull.constprop.34: + stp x29, x30, [sp, -64]! + add x29, sp, 0 + stp x19, x20, [sp,16] + str x23, [sp,48] + mov x20, x0 + stp x21, x22, [sp,32] + mov x23, x1 + ldrb w0, [x0] + cmp w0, 48 + bne .L95 + ldrb w0, [x20,1] + add x19, x20, 1 + mov w21, 8 + orr w0, w0, 32 + uxtb w0, w0 + cmp w0, 120 + bne .L85 + ldrb w0, [x20,2] + bl isxdigit + cbz w0, .L85 + add x19, x20, 2 + mov w21, 16 + b .L85 +.L95: + mov x19, x20 + mov w21, 10 +.L85: + mov w22, 0 +.L86: + ldrb w20, [x19] + mov w0, w20 + bl isxdigit + cbnz w0, .L87 +.L93: + cbz x23, .L99 + str x19, [x23] + b .L99 +.L87: + sub w2, w20, #48 + cmp w2, 9 + bhi .L100 +.L94: + cmp w2, w21 + bcs .L93 + madd w22, w22, w21, w2 + add x19, x19, 1 + b .L86 +.L100: + orr w20, w20, 32 + sub w2, w20, #87 + b .L94 +.L99: + mov w0, w22 + ldr x23, [sp,48] + ldp x19, x20, [sp,16] + ldp x21, x22, [sp,32] + ldp x29, x30, [sp], 64 + ret + .size rk_simple_strtoull.constprop.34, .-rk_simple_strtoull.constprop.34 + .text .align 2 .global nand_flash_print_info .type nand_flash_print_info, %function nand_flash_print_info: + stp x29, x30, [sp, -32]! + add x29, sp, 0 + str x19, [sp,16] + adrp x19, .LANCHOR2 + ldr w0, [x19,#:lo12:.LANCHOR2] + tbz x0, 12, .L102 + adrp x1, .LANCHOR1 + adrp x0, .LC4 + add x1, x1, :lo12:.LANCHOR1 + add x0, x0, :lo12:.LC4 + add x1, x1, 48 + bl printk +.L102: + ldr w0, [x19,#:lo12:.LANCHOR2] + tbz x0, 12, .L103 + adrp x0, .LANCHOR0+88 + ldr x6, [x0,#:lo12:.LANCHOR0+88] + adrp x0, .LC5 + add x0, x0, :lo12:.LC5 + ldrb w1, [x6,1] + ldrb w2, [x6,2] + ldrb w3, [x6,3] + ldrb w4, [x6,4] + ldrb w5, [x6,5] + ldrb w6, [x6,6] + bl printk +.L103: + ldr w0, [x19,#:lo12:.LANCHOR2] + tbz x0, 12, .L104 + adrp x0, .LANCHOR0+88 + ldr x1, [x0,#:lo12:.LANCHOR0+88] + adrp x0, .LC6 + add x0, x0, :lo12:.LC6 + ldrb w1, [x1,8] + bl printk +.L104: + ldr w0, [x19,#:lo12:.LANCHOR2] + tbz x0, 12, .L105 + adrp x0, .LANCHOR0+88 + ldr x1, [x0,#:lo12:.LANCHOR0+88] + adrp x0, .LC7 + add x0, x0, :lo12:.LC7 + ldrb w1, [x1,9] + bl printk +.L105: + ldr w0, [x19,#:lo12:.LANCHOR2] + tbz x0, 12, .L106 + adrp x0, .LANCHOR0+88 + ldr x1, [x0,#:lo12:.LANCHOR0+88] + adrp x0, .LC8 + add x0, x0, :lo12:.LC8 + ldrh w1, [x1,10] + bl printk +.L106: + ldr w0, [x19,#:lo12:.LANCHOR2] + tbz x0, 12, .L107 + adrp x0, .LANCHOR0+88 + ldr x1, [x0,#:lo12:.LANCHOR0+88] + adrp x0, .LC9 + add x0, x0, :lo12:.LC9 + ldrb w1, [x1,12] + bl printk +.L107: + ldr w0, [x19,#:lo12:.LANCHOR2] + tbz x0, 12, .L108 + adrp x0, .LANCHOR0+88 + ldr x1, [x0,#:lo12:.LANCHOR0+88] + adrp x0, .LC10 + add x0, x0, :lo12:.LC10 + ldrb w1, [x1,13] + bl printk +.L108: + ldr w0, [x19,#:lo12:.LANCHOR2] + tbz x0, 12, .L109 + adrp x0, .LANCHOR0+88 + ldr x1, [x0,#:lo12:.LANCHOR0+88] + adrp x0, .LC11 + add x0, x0, :lo12:.LC11 + ldrh w1, [x1,14] + bl printk +.L109: + ldr w0, [x19,#:lo12:.LANCHOR2] + tbz x0, 12, .L110 + adrp x0, .LANCHOR0+88 + ldr x1, [x0,#:lo12:.LANCHOR0+88] + adrp x0, .LC12 + add x0, x0, :lo12:.LC12 + ldrb w1, [x1,23] + bl printk +.L110: + ldr w0, [x19,#:lo12:.LANCHOR2] + tbz x0, 12, .L111 + adrp x0, .LANCHOR0+88 + ldr x1, [x0,#:lo12:.LANCHOR0+88] + adrp x0, .LC13 + add x0, x0, :lo12:.LC13 + ldrb w1, [x1,18] + bl printk +.L111: + ldr w0, [x19,#:lo12:.LANCHOR2] + tbz x0, 12, .L112 + adrp x0, .LANCHOR0+88 + ldr x1, [x0,#:lo12:.LANCHOR0+88] + adrp x0, .LC14 + add x0, x0, :lo12:.LC14 + ldrb w1, [x1,19] + bl printk +.L112: + ldr w0, [x19,#:lo12:.LANCHOR2] + tbz x0, 12, .L113 + adrp x0, .LANCHOR0+88 + ldr x1, [x0,#:lo12:.LANCHOR0+88] + adrp x0, .LC15 + add x0, x0, :lo12:.LC15 + ldrb w1, [x1,20] + bl printk +.L113: + ldr w0, [x19,#:lo12:.LANCHOR2] + tbz x0, 12, .L114 + adrp x1, .LANCHOR0+96 + adrp x0, .LC16 + add x0, x0, :lo12:.LC16 + ldrb w1, [x1,#:lo12:.LANCHOR0+96] + bl printk +.L114: + ldr w0, [x19,#:lo12:.LANCHOR2] + tbz x0, 12, .L115 + adrp x1, .LANCHOR0+97 + adrp x0, .LC17 + add x0, x0, :lo12:.LC17 + ldrb w1, [x1,#:lo12:.LANCHOR0+97] + bl printk +.L115: + ldr w0, [x19,#:lo12:.LANCHOR2] + tbz x0, 12, .L116 + adrp x0, .LANCHOR0+88 + ldr x1, [x0,#:lo12:.LANCHOR0+88] + adrp x0, .LC18 + add x0, x0, :lo12:.LC18 + ldrb w1, [x1,22] + bl printk +.L116: + ldr w0, [x19,#:lo12:.LANCHOR2] + tbz x0, 12, .L117 + adrp x1, .LANCHOR0+98 + adrp x0, .LC19 + add x0, x0, :lo12:.LC19 + ldrb w1, [x1,#:lo12:.LANCHOR0+98] + bl printk +.L117: + ldr w0, [x19,#:lo12:.LANCHOR2] + tbz x0, 12, .L118 + adrp x0, .LANCHOR0+88 + ldr x0, [x0,#:lo12:.LANCHOR0+88] + ldrh w1, [x0,16] + adrp x0, .LC20 + add x0, x0, :lo12:.LC20 + and w1, w1, 1 + bl printk +.L118: + ldr w0, [x19,#:lo12:.LANCHOR2] + tbz x0, 12, .L119 + adrp x0, .LANCHOR0+88 + ldr x0, [x0,#:lo12:.LANCHOR0+88] + ldrh w1, [x0,16] + adrp x0, .LC21 + add x0, x0, :lo12:.LC21 + ubfx x1, x1, 1, 1 + bl printk +.L119: + ldr w0, [x19,#:lo12:.LANCHOR2] + tbz x0, 12, .L120 + adrp x0, .LANCHOR0+88 + ldr x0, [x0,#:lo12:.LANCHOR0+88] + ldrh w1, [x0,16] + adrp x0, .LC22 + add x0, x0, :lo12:.LC22 + ubfx x1, x1, 2, 1 + bl printk +.L120: + ldr w0, [x19,#:lo12:.LANCHOR2] + tbz x0, 12, .L121 + adrp x0, .LANCHOR0+88 + ldr x0, [x0,#:lo12:.LANCHOR0+88] + ldrh w1, [x0,16] + adrp x0, .LC23 + add x0, x0, :lo12:.LC23 + ubfx x1, x1, 3, 1 + bl printk +.L121: + ldr w0, [x19,#:lo12:.LANCHOR2] + tbz x0, 12, .L122 + adrp x0, .LANCHOR0+88 + ldr x0, [x0,#:lo12:.LANCHOR0+88] + ldrh w1, [x0,16] + adrp x0, .LC24 + add x0, x0, :lo12:.LC24 + ubfx x1, x1, 4, 1 + bl printk +.L122: + ldr w0, [x19,#:lo12:.LANCHOR2] + tbz x0, 12, .L123 + adrp x0, .LANCHOR0+88 + ldr x0, [x0,#:lo12:.LANCHOR0+88] + ldrh w1, [x0,16] + adrp x0, .LC25 + add x0, x0, :lo12:.LC25 + ubfx x1, x1, 5, 1 + bl printk +.L123: + ldr w0, [x19,#:lo12:.LANCHOR2] + tbz x0, 12, .L124 + adrp x0, .LANCHOR0+88 + ldr x0, [x0,#:lo12:.LANCHOR0+88] + ldrh w1, [x0,16] + adrp x0, .LC26 + add x0, x0, :lo12:.LC26 + ubfx x1, x1, 6, 1 + bl printk +.L124: + ldr w0, [x19,#:lo12:.LANCHOR2] + tbz x0, 12, .L125 + adrp x0, .LANCHOR0+88 + ldr x0, [x0,#:lo12:.LANCHOR0+88] + ldrh w1, [x0,16] + adrp x0, .LC27 + add x0, x0, :lo12:.LC27 + ubfx x1, x1, 7, 1 + bl printk +.L125: + ldr w0, [x19,#:lo12:.LANCHOR2] + tbz x0, 12, .L126 + adrp x0, .LANCHOR0+88 + ldr x0, [x0,#:lo12:.LANCHOR0+88] + ldrb w1, [x0,17] + adrp x0, .LC28 + add x0, x0, :lo12:.LC28 + and w1, w1, 1 + bl printk +.L126: + ldr w0, [x19,#:lo12:.LANCHOR2] + tbz x0, 12, .L127 + adrp x0, .LANCHOR0+88 + ldr x0, [x0,#:lo12:.LANCHOR0+88] + ldrh w1, [x0,16] + adrp x0, .LC29 + add x0, x0, :lo12:.LC29 + ubfx x1, x1, 9, 1 + bl printk +.L127: + ldr w0, [x19,#:lo12:.LANCHOR2] + tbz x0, 12, .L128 + adrp x0, .LANCHOR0+88 + ldr x0, [x0,#:lo12:.LANCHOR0+88] + ldrh w1, [x0,16] + adrp x0, .LC30 + add x0, x0, :lo12:.LC30 + ubfx x1, x1, 10, 1 + bl printk +.L128: + ldr w0, [x19,#:lo12:.LANCHOR2] + tbz x0, 12, .L129 + adrp x1, .LANCHOR0+97 + adrp x0, .LC17 + add x0, x0, :lo12:.LC17 + ldrb w1, [x1,#:lo12:.LANCHOR0+97] + bl printk +.L129: + ldr w0, [x19,#:lo12:.LANCHOR2] + tbz x0, 12, .L130 + adrp x2, .LANCHOR0 + adrp x0, .LC31 + add x2, x2, :lo12:.LANCHOR0 + add x0, x0, :lo12:.LC31 + add x2, x2, 104 + ldrb w1, [x2,10] + ldrb w2, [x2,11] + bl printk +.L130: + ldr w0, [x19,#:lo12:.LANCHOR2] + tbz x0, 12, .L131 + adrp x2, .LANCHOR0 + adrp x0, .LC32 + add x2, x2, :lo12:.LANCHOR0 + add x0, x0, :lo12:.LC32 + add x2, x2, 104 + ldrb w1, [x2,8] + ldrb w2, [x2,9] + bl printk +.L131: + ldr w0, [x19,#:lo12:.LANCHOR2] + tbz x0, 12, .L101 + adrp x1, .LANCHOR0+136 + adrp x0, .LC33 + add x0, x0, :lo12:.LC33 + ldrb w1, [x1,#:lo12:.LANCHOR0+136] + bl printk +.L101: + ldr x19, [sp,16] + ldp x29, x30, [sp], 32 ret .size nand_flash_print_info, .-nand_flash_print_info .align 2 .global nandc_init .type nandc_init, %function nandc_init: - stp x29, x30, [sp, -48]! - mov w2, 6 + stp x29, x30, [sp, -64]! add x29, sp, 0 + stp x21, x22, [sp,32] + adrp x21, .LANCHOR2 + mov x22, x0 stp x19, x20, [sp,16] + str wzr, [x29,56] + ldr w0, [x21,#:lo12:.LANCHOR2] + tbz x0, 12, .L227 + adrp x1, .LANCHOR1 + adrp x0, .LC34 + add x1, x1, :lo12:.LANCHOR1 + add x0, x0, :lo12:.LC34 + add x1, x1, 72 + mov x2, x22 + bl printk +.L227: adrp x19, .LANCHOR0 - add x1, x19, :lo12:.LANCHOR0 - str wzr, [x29,40] - strb w2, [x19,#:lo12:.LANCHOR0] - str x0, [x1,16] - mov w1, 12336 - ldr w2, [x0,352] - movk w1, 0x5638, lsl 16 - cmp w2, w1 - bne .L79 - mov w1, 8 + mov w1, 6 + add x0, x19, :lo12:.LANCHOR0 strb w1, [x19,#:lo12:.LANCHOR0] -.L79: - ldr w2, [x0,128] - mov w1, 12336 - movk w1, 0x5639, lsl 16 - cmp w2, w1 - bne .L80 - mov w1, 9 - strb w1, [x19,#:lo12:.LANCHOR0] -.L80: - ldrb w1, [x19,#:lo12:.LANCHOR0] + str x22, [x0,16] + mov w0, 12336 + ldr w1, [x22,352] + movk w0, 0x5638, lsl 16 + cmp w1, w0 + bne .L228 + mov w0, 8 + strb w0, [x19,#:lo12:.LANCHOR0] +.L228: + ldr w1, [x22,128] + mov w0, 12336 + movk w0, 0x5639, lsl 16 + cmp w1, w0 + bne .L229 + mov w0, 9 + strb w0, [x19,#:lo12:.LANCHOR0] +.L229: + ldrb w0, [x19,#:lo12:.LANCHOR0] add x20, x19, :lo12:.LANCHOR0 - cmp w1, 9 - bne .L81 - mov w1, 1 - strb w1, [x20,88] - ldr w1, [x29,40] - orr w1, w1, 256 - str w1, [x29,40] - ldr w1, [x29,40] - str w1, [x0] + cmp w0, 9 + bne .L230 + mov w0, 1 + strb w0, [x20,137] + ldr w0, [x29,56] mov w1, 4225 + orr w0, w0, 256 + str w0, [x29,56] + ldr w0, [x29,56] + str w0, [x22] ldr x0, [x20,16] str wzr, [x0,520] str w1, [x0,4] @@ -634,15 +1094,22 @@ nandc_init: str w1, [x0,84] mov w1, 39 str w1, [x0,84] - b .L82 -.L81: - ldr w1, [x29,40] - strb wzr, [x20,88] - orr w1, w1, 256 - str w1, [x29,40] - ldr w1, [x29,40] - str w1, [x0] + ldr w1, [x21,#:lo12:.LANCHOR2] + tbz x1, 12, .L232 + ldr w1, [x0] + ldr w2, [x0,8] + ldr w3, [x0,80] + ldr w4, [x0,84] + ldr w5, [x0,88] + b .L244 +.L230: + ldr w0, [x29,56] mov w1, 4225 + strb wzr, [x20,137] + orr w0, w0, 256 + str w0, [x29,56] + ldr w0, [x29,56] + str w0, [x22] ldr x0, [x20,16] str wzr, [x0,336] str w1, [x0,4] @@ -658,15 +1125,36 @@ nandc_init: str w1, [x0,308] mov w0, 2048 bl ftl_malloc - str x0, [x20,96] -.L82: + str x0, [x20,144] + ldr w0, [x21,#:lo12:.LANCHOR2] + tbz x0, 12, .L232 + ldr x0, [x20,16] + ldr w1, [x0] + ldr w2, [x0,344] + ldr w3, [x0,304] + ldr w4, [x0,308] + ldr w5, [x0,312] +.L244: + adrp x0, .LC35 + add x0, x0, :lo12:.LC35 + bl printk +.L232: add x19, x19, :lo12:.LANCHOR0 mov w0, 1 - strh wzr, [x19,138] - strb w0, [x19,136] - strb wzr, [x19,140] + strb w0, [x19,184] + ldr w0, [x21,#:lo12:.LANCHOR2] + strh wzr, [x19,186] + strb wzr, [x19,188] + tbz x0, 12, .L226 + adrp x1, .LANCHOR0 + adrp x0, .LC36 + add x0, x0, :lo12:.LC36 + ldrb w1, [x1,#:lo12:.LANCHOR0] + bl printk +.L226: ldp x19, x20, [sp,16] - ldp x29, x30, [sp], 48 + ldp x21, x22, [sp,32] + ldp x29, x30, [sp], 64 ret .size nandc_init, .-nandc_init .align 2 @@ -676,11 +1164,11 @@ timer_delay_ns: sub sp, sp, #16 lsr w0, w0, 4 str w0, [sp,12] -.L84: +.L246: ldr w0, [sp,12] sub w1, w0, #1 str w1, [sp,12] - cbnz w0, .L84 + cbnz w0, .L246 add sp, sp, 16 ret .size timer_delay_ns, .-timer_delay_ns @@ -717,8 +1205,8 @@ toshiba_set_rr_para: stp x21, x22, [sp,32] stp x23, x24, [sp,48] add x23, x2, x1, sxtw - add x24, x2, 48 - add x21, x2, 96 + add x24, x2, 88 + add x21, x2, 136 stp x19, x20, [sp,16] stp x25, x26, [sp,64] str x27, [sp,80] @@ -729,34 +1217,34 @@ toshiba_set_rr_para: adrp x26, .LANCHOR0 mov w27, 85 mov x19, x2 -.L88: +.L250: add x25, x26, :lo12:.LANCHOR0 - ldrb w0, [x25,142] + ldrb w0, [x25,190] cmp w0, w20 - bls .L94 - add x0, x19, 48 + bls .L256 + add x0, x19, 88 str w27, [x22,8] ldrsb w0, [x20,x0] str w0, [x22,4] mov w0, 200 bl timer_delay_ns - ldrb w0, [x25,141] + ldrb w0, [x25,189] cmp w0, 34 - bne .L89 + bne .L251 ldrsb w0, [x24,x20] - b .L93 -.L89: + b .L255 +.L251: cmp w0, 35 - bne .L91 + bne .L253 ldrsb w0, [x21,x20] - b .L93 -.L91: - ldrsb w0, [x23,192] -.L93: + b .L255 +.L253: + ldrsb w0, [x23,232] +.L255: str w0, [x22] add x20, x20, 1 - b .L88 -.L94: + b .L250 +.L256: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -779,7 +1267,7 @@ hynix_set_rr_para: str x23, [sp,48] mov x20, 160 mov x21, 0 - ldr x4, [x3,144] + ldr x4, [x3,192] ldr x19, [x3,16] add x23, x4, 128 ldrb w22, [x4,113] @@ -793,9 +1281,9 @@ hynix_set_rr_para: add x20, x4, x1 add x20, x20, 144 str w0, [x19,2056] -.L96: +.L258: cmp w22, w21, uxtb - bls .L98 + bls .L260 ldrb w0, [x23,x21] str w0, [x19,2052] mov w0, 120 @@ -803,8 +1291,8 @@ hynix_set_rr_para: ldrsb w0, [x20,x21] add x21, x21, 1 str w0, [x19,2048] - b .L96 -.L98: + b .L258 +.L260: mov w0, 22 str w0, [x19,2056] ldp x19, x20, [sp,16] @@ -823,22 +1311,22 @@ hynix_reconfig_rr_para: stp x19, x20, [sp,16] adrp x19, .LANCHOR0 add x19, x19, :lo12:.LANCHOR0 - ldrb w1, [x19,141] + ldrb w1, [x19,189] sub w1, w1, #1 uxtb w1, w1 cmp w1, 6 - bhi .L99 - ldr x1, [x19,144] + bhi .L261 + ldr x1, [x19,192] sxtw x20, w0 add x1, x1, x20 ldrb w1, [x1,120] - cbz w1, .L99 + cbz w1, .L261 mov w1, 0 bl hynix_set_rr_para - ldr x0, [x19,144] + ldr x0, [x19,192] add x20, x0, x20 strb wzr, [x20,120] -.L99: +.L261: ldp x19, x20, [sp,16] ldp x29, x30, [sp], 32 ret @@ -857,12 +1345,12 @@ nandc_set_ddr_para: lsl w0, w0, 8 orr w0, w1, w0 orr w0, w0, 3 - bne .L105 + bne .L267 str w0, [x2,80] - b .L104 -.L105: + b .L266 +.L267: str w0, [x2,304] -.L104: +.L266: ret .size nandc_set_ddr_para, .-nandc_set_ddr_para .align 2 @@ -874,12 +1362,12 @@ nandc_get_ddr_para: ldrb w1, [x1,#:lo12:.LANCHOR0] ldr x0, [x0,16] cmp w1, 9 - bne .L108 + bne .L270 ldr w0, [x0,80] - b .L110 -.L108: + b .L272 +.L270: ldr w0, [x0,304] -.L110: +.L272: ubfx x0, x0, 8, 8 ret .size nandc_get_ddr_para, .-nandc_get_ddr_para @@ -893,7 +1381,7 @@ nandc_set_if_mode: tst w0, 6 ldr x2, [x1,16] ldr w1, [x2] - beq .L112 + beq .L274 orr w1, w1, 24576 and w0, w0, 4 and w1, w1, -32769 @@ -904,7 +1392,7 @@ nandc_set_if_mode: csel w1, w4, w1, ne cmp w0, 9 mov w0, 8321 - bne .L114 + bne .L276 str w0, [x2,8] mov w0, 4099 movk w0, 0x10, lsl 16 @@ -913,8 +1401,8 @@ nandc_set_if_mode: str w0, [x2,84] mov w0, 39 str w0, [x2,84] - b .L115 -.L114: + b .L277 +.L276: str w0, [x2,344] mov w0, 4099 movk w0, 0x10, lsl 16 @@ -923,10 +1411,10 @@ nandc_set_if_mode: str w0, [x2,308] mov w0, 39 str w0, [x2,308] - b .L115 -.L112: + b .L277 +.L274: and w1, w1, -8193 -.L115: +.L277: str w1, [x2] ret .size nandc_set_if_mode, .-nandc_set_if_mode @@ -959,63 +1447,63 @@ nandc_de_cs: .global flash_wait_device_ready_raw .type flash_wait_device_ready_raw, %function flash_wait_device_ready_raw: - stp x29, x30, [sp, -64]! + stp x29, x30, [sp, -80]! adrp x3, .LANCHOR0 - uxtb w0, w0 add x29, sp, 0 - add x3, x3, :lo12:.LANCHOR0 stp x21, x22, [sp,32] + uxtb w21, w0 + add x0, x3, :lo12:.LANCHOR0 stp x19, x20, [sp,16] - mov w21, w2 - ldrb w2, [x3,152] - cmp w2, w0 - bhi .L121 + stp x23, x24, [sp,48] + stp x25, x26, [sp,64] + mov w20, w1 + mov w22, w2 + ldrb w0, [x0,98] + mov x19, x3 + cmp w0, w21 + bhi .L283 adrp x1, .LANCHOR1 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR1 add x0, x0, :lo12:.LC0 - add x1, x1, 200 - mov w2, 597 + add x1, x1, 240 + mov w2, 599 bl printk -.L122: - b .L122 -.L121: - add x0, x3, x0, sxtw - ldrb w22, [x0,156] - ldr x20, [x3,16] - mov w0, w22 - str x1, [x29,56] +.L283: + add x3, x19, :lo12:.LANCHOR0 + add x21, x3, x21, sxtw + ldrb w23, [x21,200] + lsr w24, w20, 8 + lsr w25, w20, 16 + mov w26, 120 + mov w0, w23 + ldr x19, [x3,16] + and w21, w20, 255 bl nandc_cs - ubfiz x3, x22, 8, 8 - ldr x1, [x29,56] - add x20, x20, x3 + ubfiz x3, x23, 8, 8 + add x19, x19, x3 +.L285: + str w26, [x19,2056] mov w0, 120 - and w2, w1, 255 - str w0, [x20,2056] - str w2, [x20,2052] - lsr w2, w1, 8 - str w2, [x20,2052] - lsr w1, w1, 16 - str w1, [x20,2052] -.L125: + str w21, [x19,2052] + str w24, [x19,2052] + str w25, [x19,2052] bl timer_delay_ns - ldr w19, [x20,2048] - and w19, w19, 255 - and w0, w19, w21 - cmp w0, w21 - beq .L126 -.L124: - mov w0, 20 - b .L125 -.L126: - cmp w19, 255 - beq .L124 - mov w0, w22 + ldr w20, [x19,2048] + and w20, w20, 255 + and w0, w22, w20 + cmp w0, w22 + bne .L285 + cmp w20, 255 + beq .L285 + mov w0, w23 bl nandc_de_cs - mov w0, w19 + mov w0, w20 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] - ldp x29, x30, [sp], 64 + ldp x23, x24, [sp,48] + ldp x25, x26, [sp,64] + ldp x29, x30, [sp], 80 ret .size flash_wait_device_ready_raw, .-flash_wait_device_ready_raw .align 2 @@ -1028,26 +1516,26 @@ flash_wait_device_ready: add x29, sp, 0 and w1, w0, 2097151 ubfx x6, x0, 21, 3 - cbnz w3, .L128 + cbnz w3, .L287 adrp x4, .LANCHOR0 add x3, x4, :lo12:.LANCHOR0 - ldrb w0, [x3,164] - cbz w0, .L129 - ldrb w0, [x3,165] - cbz w0, .L128 -.L129: + ldrb w0, [x3,97] + cbz w0, .L288 + ldrb w0, [x3,208] + cbz w0, .L287 +.L288: add x4, x4, :lo12:.LANCHOR0 - ldrh w5, [x4,166] - ldrb w0, [x4,165] + ldrh w5, [x4,210] + ldrb w0, [x4,208] udiv w3, w1, w5 mul w5, w3, w5 sub w3, w1, w5 add w1, w5, w3, lsl 1 - cbnz w0, .L128 - add x4, x4, 168 + cbnz w0, .L287 + add x4, x4, 212 ldrh w3, [x4,w3,uxtw 1] add w1, w3, w5 -.L128: +.L287: mov w0, w6 bl flash_wait_device_ready_raw ldp x29, x30, [sp], 16 @@ -1063,7 +1551,7 @@ nandc_wait_flash_ready: mov w19, 34464 adrp x20, .LANCHOR0 movk w19, 0x1, lsl 16 -.L139: +.L298: mov w0, 100 bl timer_delay_ns add x0, x20, :lo12:.LANCHOR0 @@ -1071,14 +1559,14 @@ nandc_wait_flash_ready: ldr w0, [x0] str w0, [x29,40] ldr w0, [x29,40] - tbnz x0, 9, .L140 + tbnz x0, 9, .L299 subs w19, w19, #1 - bne .L139 + bne .L298 mov w0, -1 - b .L138 -.L140: + b .L297 +.L299: mov w0, 0 -.L138: +.L297: ldp x19, x20, [sp,16] ldp x29, x30, [sp], 48 ret @@ -1104,28 +1592,28 @@ sandisk_set_rr_para: add x2, x2, :lo12:.LANCHOR1 adrp x5, .LANCHOR0 smull x1, w19, w1 - add x0, x2, 48 - add x2, x2, 96 + add x0, x2, 88 + add x2, x2, 136 add x0, x0, x1 add x1, x2, x1 mov x2, 0 -.L143: +.L302: add x3, x5, :lo12:.LANCHOR0 - ldrb w4, [x3,142] + ldrb w4, [x3,190] cmp w4, w2 - bls .L148 - ldrb w3, [x3,141] + bls .L307 + ldrb w3, [x3,189] cmp w3, 67 - bne .L144 + bne .L303 ldrsb w3, [x0,x2] - b .L147 -.L144: + b .L306 +.L303: ldrsb w3, [x1,x2] -.L147: +.L306: str w3, [x20] add x2, x2, 1 - b .L143 -.L148: + b .L302 +.L307: bl nandc_wait_flash_ready ldp x19, x20, [sp,16] ldp x29, x30, [sp], 32 @@ -1150,7 +1638,7 @@ toshiba_3d_set_tlc_rr_para: adrp x0, .LANCHOR1 madd x1, x2, x1, x1 add x0, x0, :lo12:.LANCHOR1 - add x0, x0, 232 + add x0, x0, 272 add x20, x0, x1 ldrsb w0, [x0,x1] str w0, [x19] @@ -1192,7 +1680,7 @@ toshiba_3d_set_slc_rr_para: adrp x2, .LANCHOR1 add x2, x2, :lo12:.LANCHOR1 add x1, x2, x1, uxtb - ldrsb w1, [x1,633] + ldrsb w1, [x1,673] str w1, [x0] str wzr, [x0] str wzr, [x0] @@ -1214,11 +1702,12 @@ toshiba_tlc_set_rr_para: mov w21, 239 adrp x0, .LANCHOR2 str w21, [x19,8] - cbz w2, .L152 + cbz w2, .L311 mov w2, 18 str w2, [x19,4] mov x2, 7 add x0, x0, :lo12:.LANCHOR2 + add x0, x0, 8 mul x1, x1, x2 add x20, x0, x1 ldrb w0, [x0,x1] @@ -1240,18 +1729,18 @@ toshiba_tlc_set_rr_para: ldrb w0, [x20,6] str w0, [x19] str wzr, [x19] - b .L153 -.L152: + b .L312 +.L311: add x0, x0, :lo12:.LANCHOR2 mov w3, 20 - add x0, x0, 336 + add x0, x0, 344 str w3, [x19,4] ldrb w0, [x0,x1] str w0, [x19] str w2, [x19] str w2, [x19] str w2, [x19] -.L153: +.L312: bl nandc_wait_flash_ready ldr x21, [sp,32] ldp x19, x20, [sp,16] @@ -1263,35 +1752,44 @@ toshiba_tlc_set_rr_para: .type zftl_flash_enter_slc_mode, %function zftl_flash_enter_slc_mode: adrp x1, .LANCHOR0 - uxtb w0, w0 + uxtb x0, w0 add x1, x1, :lo12:.LANCHOR0 stp x29, x30, [sp, -16]! add x29, sp, 0 - ldrb w2, [x1,164] - cbz w2, .L154 + ldrb w2, [x1,97] + cbz w2, .L313 cmp w2, 1 ldr x3, [x1,16] - beq .L174 - cmp w2, 2 - bne .L159 - ldrb w2, [x1,680] - cbz w2, .L154 - strb wzr, [x1,680] -.L174: - adrp x1, .LANCHOR2+397 - ldrb w2, [x1,#:lo12:.LANCHOR2+397] - cbz w2, .L154 + bne .L316 + adrp x1, .LANCHOR2+405 + ldrb w2, [x1,#:lo12:.LANCHOR2+405] + cbz w2, .L313 sxtw x1, w0 add x1, x1, 8 add x0, x3, x1, lsl 8 str w2, [x0,8] - b .L154 -.L159: + b .L313 +.L316: + cmp w2, 2 + bne .L318 + add x1, x1, x0 + ldrb w2, [x1,728] + cbz w2, .L313 + strb wzr, [x1,728] + adrp x1, .LANCHOR2+405 + ldrb w1, [x1,#:lo12:.LANCHOR2+405] + cbz w1, .L313 + add x0, x0, 8 + add x0, x3, x0, lsl 8 + str w1, [x0,8] + b .L313 +.L318: cmp w2, 3 - bne .L154 - ldrb w2, [x1,680] - cbz w2, .L154 - strb wzr, [x1,680] + bne .L313 + add x1, x1, x0, sxtw + ldrb w2, [x1,728] + cbz w2, .L313 + strb wzr, [x1,728] ubfiz x1, x0, 8, 8 add x0, x3, x1 mov w1, 239 @@ -1304,7 +1802,7 @@ zftl_flash_enter_slc_mode: str wzr, [x0,2048] str wzr, [x0,2048] bl nandc_wait_flash_ready -.L154: +.L313: ldp x29, x30, [sp], 16 ret .size zftl_flash_enter_slc_mode, .-zftl_flash_enter_slc_mode @@ -1313,50 +1811,54 @@ zftl_flash_enter_slc_mode: .type zftl_flash_exit_slc_mode, %function zftl_flash_exit_slc_mode: adrp x1, .LANCHOR0 - uxtb w0, w0 + uxtb x0, w0 add x1, x1, :lo12:.LANCHOR0 stp x29, x30, [sp, -16]! add x29, sp, 0 - ldrb w2, [x1,164] - cbz w2, .L175 + ldrb w2, [x1,97] + cbz w2, .L331 cmp w2, 1 ldr x4, [x1,16] - bne .L178 - adrp x1, .LANCHOR2+398 - ldrb w2, [x1,#:lo12:.LANCHOR2+398] - b .L195 -.L178: - cmp w2, 2 - bne .L180 - ldrb w2, [x1,680] - cbnz w2, .L175 - adrp x2, .LANCHOR2 - mov w5, 4 - add x2, x2, :lo12:.LANCHOR2 - add x2, x2, 368 - ldrb w3, [x2,12] - ldrb w2, [x2,30] - cmp w3, 2 - csel w3, w3, w5, eq - strb w3, [x1,680] -.L195: - cbz w2, .L175 + bne .L334 + adrp x1, .LANCHOR2+406 + ldrb w2, [x1,#:lo12:.LANCHOR2+406] + cbz w2, .L331 sxtw x1, w0 add x1, x1, 8 add x0, x4, x1, lsl 8 str w2, [x0,8] - b .L175 -.L180: - cmp w2, 3 - bne .L175 - ldrb w3, [x1,680] - cbnz w3, .L175 - adrp x2, .LANCHOR2+380 + b .L331 +.L334: + cmp w2, 2 + bne .L336 + add x1, x1, x0 + ldrb w2, [x1,728] + cbnz w2, .L331 + adrp x2, .LANCHOR2 mov w5, 4 - ldrb w2, [x2,#:lo12:.LANCHOR2+380] + add x2, x2, :lo12:.LANCHOR2 + ldrb w3, [x2,388] + cmp w3, 2 + csel w3, w3, w5, eq + strb w3, [x1,728] + ldrb w1, [x2,406] + cbz w1, .L331 + add x0, x0, 8 + add x0, x4, x0, lsl 8 + str w1, [x0,8] + b .L331 +.L336: + cmp w2, 3 + bne .L331 + add x1, x1, x0, sxtw + ldrb w3, [x1,728] + cbnz w3, .L331 + adrp x2, .LANCHOR2+388 + mov w5, 4 + ldrb w2, [x2,#:lo12:.LANCHOR2+388] cmp w2, 2 csel w2, w2, w5, eq - strb w2, [x1,680] + strb w2, [x1,728] ubfiz x1, x0, 8, 8 add x0, x4, x1 mov w1, 239 @@ -1369,78 +1871,195 @@ zftl_flash_exit_slc_mode: str w3, [x0,2048] str w3, [x0,2048] bl nandc_wait_flash_ready -.L175: +.L331: ldp x29, x30, [sp], 16 ret .size zftl_flash_exit_slc_mode, .-zftl_flash_exit_slc_mode .align 2 + .global flash_start_page_read + .type flash_start_page_read, %function +flash_start_page_read: + stp x29, x30, [sp, -80]! + adrp x2, .LANCHOR0 + add x29, sp, 0 + stp x23, x24, [sp,48] + uxtb w23, w0 + add x0, x2, :lo12:.LANCHOR0 + stp x19, x20, [sp,16] + stp x21, x22, [sp,32] + str x25, [sp,64] + ubfx x19, x1, 21, 3 + and w20, w1, 2097151 + ubfx x22, x1, 24, 2 + ldrb w0, [x0,98] + mov x21, x2 + cmp w0, w19 + bhi .L350 + adrp x1, .LANCHOR1 + adrp x0, .LC0 + add x1, x1, :lo12:.LANCHOR1 + add x0, x0, :lo12:.LC0 + add x1, x1, 688 + mov w2, 736 + bl printk +.L350: + add x25, x21, :lo12:.LANCHOR0 + add x19, x25, x19, sxtw + ldrb w19, [x19,200] + mov w0, w19 + ldr x24, [x25,16] + bl nandc_cs + cbnz w22, .L351 + ldrb w0, [x25,97] + cbz w0, .L352 + ldrb w0, [x25,208] + cbz w0, .L353 +.L352: + add x2, x21, :lo12:.LANCHOR0 + ldrh w1, [x2,210] + udiv w0, w20, w1 + mul w0, w0, w1 + ldrb w1, [x2,208] + sub w20, w20, w0 + cbz w1, .L354 + add w20, w0, w20, lsl 1 + b .L353 +.L354: + add x2, x2, 212 + ldrh w20, [x2,w20,uxtw 1] + add w20, w20, w0 + b .L355 +.L353: + mov w0, w19 + bl zftl_flash_enter_slc_mode + b .L355 +.L351: + ldr x0, [x25,88] + ldrb w0, [x0,12] + cmp w0, 3 + bne .L356 + sxtw x0, w19 + add x0, x0, 8 + add x0, x24, x0, lsl 8 + str w22, [x0,8] + b .L355 +.L356: + mov w0, w19 + bl zftl_flash_exit_slc_mode +.L355: + ubfiz x19, x19, 8, 8 + and w0, w20, 255 + add x1, x24, x19 + str wzr, [x1,2056] + str wzr, [x1,2052] + str wzr, [x1,2052] + str w0, [x1,2052] + lsr w0, w20, 8 + str w0, [x1,2052] + lsr w20, w20, 16 + str w20, [x1,2052] + mov w0, 0 + str w23, [x1,2056] + bl nandc_de_cs + ldr x25, [sp,64] + ldp x19, x20, [sp,16] + ldp x21, x22, [sp,32] + ldp x23, x24, [sp,48] + ldp x29, x30, [sp], 80 + ret + .size flash_start_page_read, .-flash_start_page_read + .align 2 .global flash_set_interface_mode .type flash_set_interface_mode, %function flash_set_interface_mode: - adrp x1, .LANCHOR0 - mov x3, 0 - add x1, x1, :lo12:.LANCHOR0 - mov w8, 239 - stp x29, x30, [sp, -16]! - mov w9, 128 - mov w11, 1 + stp x29, x30, [sp, -80]! add x29, sp, 0 - ldrb w2, [x1,681] - mov w12, 35 - ldr x7, [x1,16] - mov w13, 5 - and w10, w2, 1 - and w2, w2, 4 - uxtb w4, w2 - add x2, x1, 684 -.L204: - lsl x1, x3, 3 - ldrb w6, [x1,x2] - cmp w6, 44 - cset w5, eq - cmp w6, 69 - cset w14, eq - cmp w6, 152 - cset w1, eq - orr w1, w14, w1 - cbnz w1, .L205 - cbz w5, .L197 -.L205: - cmp w0, 1 - bne .L199 - cbz w10, .L197 - add x1, x7, x3, lsl 8 - str w8, [x1,2056] - cbz w5, .L200 + stp x21, x22, [sp,32] + adrp x21, .LANCHOR0 + adrp x22, .LC38 + add x21, x21, :lo12:.LANCHOR0 + add x22, x22, :lo12:.LC38 + stp x23, x24, [sp,48] + stp x19, x20, [sp,16] + stp x25, x26, [sp,64] + mov w24, w0 + mov x20, 0 + add x25, x21, 732 + adrp x23, .LANCHOR2 +.L370: + lsl x0, x20, 3 + ldr x19, [x21,16] + ldrb w1, [x0,x25] + cmp w1, 44 + cset w26, eq + cmp w1, 69 + cset w2, eq + cmp w1, 152 + cset w0, eq + adrp x1, .LANCHOR0 + orr w0, w2, w0 + cbnz w0, .L371 + cbz w26, .L361 +.L371: + add x1, x1, :lo12:.LANCHOR0 + cmp w24, 1 + ldrb w1, [x1,764] + bne .L363 + tbz x1, 0, .L361 + ldr w0, [x23,#:lo12:.LANCHOR2] + tbz x0, 12, .L364 + adrp x0, .LC37 + add x0, x0, :lo12:.LC37 + bl printk +.L364: + add x1, x19, x20, lsl 8 + mov w0, 239 + str w0, [x1,2056] + mov w0, 1 + cbz w26, .L365 str w0, [x1,2052] - str w13, [x1,2048] - b .L203 -.L200: - str w9, [x1,2052] + mov w0, 5 + b .L388 +.L365: + mov w2, 128 + str w2, [x1,2052] +.L388: str w0, [x1,2048] - b .L203 -.L199: - cbz w4, .L197 - add x1, x7, x3, lsl 8 - str w8, [x1,2056] - cbz w5, .L202 - str w11, [x1,2052] - str w12, [x1,2048] - b .L203 -.L202: - str w9, [x1,2052] - str w5, [x1,2048] -.L203: + b .L369 +.L363: + tbz x1, 2, .L361 + ldr w0, [x23,#:lo12:.LANCHOR2] + tbz x0, 12, .L367 + mov x0, x22 + bl printk +.L367: + add x1, x19, x20, lsl 8 + mov w0, 239 + str w0, [x1,2056] + cbz w26, .L368 + mov w0, 1 + str w0, [x1,2052] + mov w0, 35 + b .L388 +.L368: + mov w0, 128 + str w0, [x1,2052] + str w26, [x1,2048] +.L369: str wzr, [x1,2048] str wzr, [x1,2048] str wzr, [x1,2048] -.L197: - add x3, x3, 1 - cmp x3, 4 - bne .L204 +.L361: + add x20, x20, 1 + cmp x20, 4 + bne .L370 bl nandc_wait_flash_ready mov w0, 0 - ldp x29, x30, [sp], 16 + ldp x19, x20, [sp,16] + ldp x21, x22, [sp,32] + ldp x23, x24, [sp,48] + ldp x25, x26, [sp,64] + ldp x29, x30, [sp], 80 ret .size flash_set_interface_mode, .-flash_set_interface_mode .align 2 @@ -1505,17 +2124,17 @@ flash_read_id: sub w0, w2, #1 uxtb w0, w0 cmp w0, 253 - bhi .L217 - adrp x0, .LC1 + bhi .L390 + adrp x0, .LC39 ldrb w3, [x19,1] ldrb w4, [x19,2] - add x0, x0, :lo12:.LC1 + add x0, x0, :lo12:.LC39 ldrb w5, [x19,3] add w1, w21, 1 ldrb w6, [x19,4] ldrb w7, [x19,5] bl printk -.L217: +.L390: ldp x19, x20, [sp,16] ldr x21, [sp,32] ldp x29, x30, [sp], 48 @@ -1530,11 +2149,11 @@ flash_read_spare: ubfiz x0, x0, 8, 8 add x29, sp, 0 str x19, [sp,16] - adrp x3, .LANCHOR2+377 + adrp x3, .LANCHOR2+385 ldr x19, [x4,#:lo12:.LANCHOR0+16] str x2, [x29,40] add x19, x19, x0 - ldrb w3, [x3,#:lo12:.LANCHOR2+377] + ldrb w3, [x3,#:lo12:.LANCHOR2+385] and w0, w1, 255 lsl w3, w3, 9 str wzr, [x19,2056] @@ -1560,26 +2179,27 @@ flash_read_spare: .global sandisk_prog_test_bad_block .type sandisk_prog_test_bad_block, %function sandisk_prog_test_bad_block: - stp x29, x30, [sp, -32]! + stp x29, x30, [sp, -64]! adrp x2, .LANCHOR0+16 uxtb w0, w0 add x29, sp, 0 stp x19, x20, [sp,16] + adrp x20, .LANCHOR2 ldr x19, [x2,#:lo12:.LANCHOR0+16] - adrp x2, .LANCHOR2 - add x3, x2, :lo12:.LANCHOR2 - mov x20, x2 + add x2, x20, :lo12:.LANCHOR2 + str x21, [sp,32] + ldrb w3, [x2,405] sxtw x2, w0 add x2, x2, 8 - ldrb w3, [x3,397] add x2, x19, x2, lsl 8 - cbnz w3, .L227 + cbnz w3, .L407 mov w3, 162 -.L227: +.L407: ubfiz x0, x0, 8, 8 str w3, [x2,8] add x19, x19, x0 mov w0, 128 + str x1, [x29,56] str w0, [x19,2056] and w0, w1, 255 str wzr, [x19,2052] @@ -1587,8 +2207,8 @@ sandisk_prog_test_bad_block: str w0, [x19,2052] lsr w0, w1, 8 str w0, [x19,2052] - lsr w1, w1, 16 - str w1, [x19,2052] + lsr w0, w1, 16 + str w0, [x19,2052] mov w0, 16 str w0, [x19,2056] bl nandc_wait_flash_ready @@ -1596,16 +2216,26 @@ sandisk_prog_test_bad_block: str w0, [x19,2056] mov w0, 80 bl timer_delay_ns - add x2, x20, :lo12:.LANCHOR2 - ldr w3, [x19,2048] - ldrb w1, [x2,398] - cbz w1, .L223 - str w1, [x19,2056] -.L223: + ldr w2, [x19,2048] mov w0, 5 - and w0, w3, w0 + ldr x1, [x29,56] + ands w21, w2, w0 + beq .L396 + ldr w0, [x20,#:lo12:.LANCHOR2] + tbz x0, 12, .L396 + adrp x0, .LC40 + add x0, x0, :lo12:.LC40 + bl printk +.L396: + add x20, x20, :lo12:.LANCHOR2 + ldrb w0, [x20,406] + cbz w0, .L397 + str w0, [x19,2056] +.L397: + mov w0, w21 + ldr x21, [sp,32] ldp x19, x20, [sp,16] - ldp x29, x30, [sp], 32 + ldp x29, x30, [sp], 64 ret .size sandisk_prog_test_bad_block, .-sandisk_prog_test_bad_block .align 2 @@ -1630,59 +2260,60 @@ nandc_bch_sel: mov w3, 1 add x1, x2, :lo12:.LANCHOR0 ldrb w2, [x2,#:lo12:.LANCHOR0] - strb w0, [x1,140] + strb w0, [x1,188] cmp w2, 9 ldr x2, [x1,16] - bne .L230 + bne .L410 str w3, [x2,16] cmp w0, 70 mov w1, 0 - beq .L231 + beq .L411 cmp w0, 60 mov w1, 3 - beq .L231 + beq .L411 cmp w0, 40 mov w1, 2 csel w1, w1, w3, eq -.L231: +.L411: lsl w1, w1, 25 orr w1, w1, 1 str w1, [x2,32] - b .L229 -.L230: + b .L409 +.L410: str w3, [x2,8] cmp w0, 16 mov w1, 4096 - bne .L233 -.L236: + bne .L413 +.L416: and w1, w1, -17 - b .L234 -.L233: + b .L414 +.L413: cmp w0, 24 - bne .L235 + bne .L415 orr w1, w1, 16 - b .L234 -.L235: + b .L414 +.L415: cmp w0, 40 orr w1, w1, 262144 orr w1, w1, 16 - beq .L236 -.L234: + beq .L416 +.L414: orr w1, w1, 1 str w1, [x2,12] -.L229: +.L409: ret .size nandc_bch_sel, .-nandc_bch_sel .align 2 .global zftl_flash_resume .type zftl_flash_resume, %function zftl_flash_resume: - stp x29, x30, [sp, -48]! + stp x29, x30, [sp, -64]! add x29, sp, 0 stp x19, x20, [sp,16] adrp x20, .LANCHOR0 - str x21, [sp,32] add x0, x20, :lo12:.LANCHOR0 + stp x21, x22, [sp,32] + stp x23, x24, [sp,48] ldrb w1, [x20,#:lo12:.LANCHOR0] ldr w2, [x0,24] cmp w1, 9 @@ -1693,7 +2324,7 @@ zftl_flash_resume: str w2, [x1,4] ldr x1, [x0,16] ldr w2, [x0,32] - bne .L244 + bne .L424 str w2, [x1,16] ldr w2, [x0,36] str w2, [x1,32] @@ -1705,8 +2336,8 @@ zftl_flash_resume: str w2, [x1,520] ldr w0, [x0,52] str w0, [x1,8] - b .L245 -.L244: + b .L425 +.L424: str w2, [x1,8] ldr w2, [x0,36] str w2, [x1,12] @@ -1718,26 +2349,32 @@ zftl_flash_resume: str w2, [x1,336] ldr w0, [x0,52] str w0, [x1,344] -.L245: +.L425: add x21, x20, :lo12:.LANCHOR0 mov x19, 0 - add x21, x21, 684 -.L247: + add x23, x21, 732 + mov w24, 2 +.L427: lsl x0, x19, 3 - ldrb w0, [x0,x21] + ldrb w0, [x0,x23] sub w0, w0, #1 uxtb w0, w0 cmp w0, 253 - bhi .L246 - mov w0, w19 + bhi .L426 + uxtb w22, w19 + mov w0, w22 bl flash_reset -.L246: + add x0, x21, 728 + strb w24, [x19,x0] + mov w0, w22 + bl zftl_flash_enter_slc_mode +.L426: add x19, x19, 1 cmp x19, 4 - bne .L247 + bne .L427 add x20, x20, :lo12:.LANCHOR0 - ldrb w0, [x20,716] - cbz w0, .L248 + ldrb w0, [x20,136] + cbz w0, .L428 mov w0, 1 bl nandc_set_if_mode mov w0, w19 @@ -1747,13 +2384,14 @@ zftl_flash_resume: ldr w0, [x20,40] lsr w0, w0, 8 bl nandc_set_ddr_para -.L248: - adrp x0, .LANCHOR2+388 - ldrb w0, [x0,#:lo12:.LANCHOR2+388] +.L428: + adrp x0, .LANCHOR2+396 + ldrb w0, [x0,#:lo12:.LANCHOR2+396] bl nandc_bch_sel - ldr x21, [sp,32] ldp x19, x20, [sp,16] - ldp x29, x30, [sp], 48 + ldp x21, x22, [sp,32] + ldp x23, x24, [sp,48] + ldp x29, x30, [sp], 64 ret .size zftl_flash_resume, .-zftl_flash_resume .align 2 @@ -1781,30 +2419,30 @@ nandc_iqr_wait_flash_ready: ldrb w1, [x19,#:lo12:.LANCHOR0] ldr x0, [x20,16] cmp w1, 9 - bne .L255 + bne .L435 ldr w1, [x0,292] orr w1, w1, 2 str w1, [x0,292] ldr w1, [x0,288] orr w1, w1, 2 str w1, [x0,288] - b .L256 -.L255: + b .L436 +.L435: ldr w1, [x0,368] orr w1, w1, 2 str w1, [x0,368] ldr w1, [x0,364] orr w1, w1, 2 str w1, [x0,364] -.L256: +.L436: ldr w1, [x0] - tbnz x1, 9, .L257 + tbnz x1, 9, .L437 bl wait_for_nand_flash_ready - b .L254 -.L257: + b .L434 +.L437: mov w1, 1 bl nandc_irq_disable -.L254: +.L434: ldp x19, x20, [sp,16] ldp x29, x30, [sp], 32 ret @@ -1814,90 +2452,91 @@ nandc_iqr_wait_flash_ready: .type flash_erase_duplane_block, %function flash_erase_duplane_block: stp x29, x30, [sp, -96]! - uxtb w0, w0 add x29, sp, 0 stp x19, x20, [sp,16] adrp x20, .LANCHOR0 + uxtb w19, w0 + add x0, x20, :lo12:.LANCHOR0 str x25, [sp,64] - uxtb w25, w1 - add x1, x20, :lo12:.LANCHOR0 - stp x23, x24, [sp,48] stp x21, x22, [sp,32] - mov w24, w2 - mov w23, w3 - ldrb w4, [x1,152] - cmp w4, w0 - bhi .L260 + stp x23, x24, [sp,48] + uxtb w25, w1 + mov w22, w2 + ldrb w0, [x0,98] + mov w24, w3 + cmp w0, w19 + bhi .L440 adrp x1, .LANCHOR1 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR1 add x0, x0, :lo12:.LC0 - add x1, x1, 648 - mov w2, 508 + add x1, x1, 712 + mov w2, 510 bl printk -.L261: - b .L261 -.L260: - add x0, x1, x0, sxtw - ldrb w22, [x0,156] - adrp x0, .LANCHOR2+400 - ldr x19, [x1,16] - mov x21, x22 - add x22, x22, 8 - ldr w0, [x0,#:lo12:.LANCHOR2+400] - add x22, x19, x22, lsl 8 - tbz x0, 4, .L262 - adrp x0, .LC2 +.L440: + add x0, x20, :lo12:.LANCHOR0 + add x19, x0, x19, sxtw + ldrb w23, [x19,200] + ldr x19, [x0,16] + adrp x0, .LANCHOR2 + mov x21, x23 + add x23, x23, 8 + ldr w0, [x0,#:lo12:.LANCHOR2] + add x23, x19, x23, lsl 8 + tbz x0, 4, .L441 + adrp x0, .LC41 mov w1, w21 - add x0, x0, :lo12:.LC2 + add x0, x0, :lo12:.LC41 + mov w2, w22 + mov w3, w24 bl printk -.L262: +.L441: bl nandc_wait_flash_ready mov w0, w21 bl nandc_cs mov w0, w21 - cbnz w25, .L263 + cbnz w25, .L442 bl zftl_flash_enter_slc_mode - b .L264 -.L263: + b .L443 +.L442: bl zftl_flash_exit_slc_mode -.L264: +.L443: ubfiz x4, x21, 8, 8 mov w0, 96 add x19, x19, x4 add x20, x20, :lo12:.LANCHOR0 str w0, [x19,2056] - and w0, w24, 255 + and w0, w22, 255 str w0, [x19,2052] - lsr w0, w24, 8 + lsr w0, w22, 8 str w0, [x19,2052] - lsr w0, w24, 16 + lsr w0, w22, 16 str w0, [x19,2052] - ldrb w0, [x20,717] + ldrb w0, [x20,765] mov w20, 0 - cbnz w0, .L265 + cbnz w0, .L444 mov w0, 208 str w0, [x19,2056] mov w20, 5 bl nandc_wait_flash_ready - mov x0, x22 + mov x0, x23 bl flash_read_status and w20, w0, w20 -.L265: +.L444: mov w0, 96 str w0, [x19,2056] - and w0, w23, 255 + and w0, w24, 255 str w0, [x19,2052] - lsr w0, w23, 8 + lsr w0, w24, 8 str w0, [x19,2052] - lsr w23, w23, 16 - str w23, [x19,2052] + lsr w3, w24, 16 + str w3, [x19,2052] mov w0, 208 str w0, [x19,2056] mov w19, 5 bl nandc_iqr_wait_flash_ready bl nandc_wait_flash_ready - mov x0, x22 + mov x0, x23 bl flash_read_status mov w2, w0 mov w0, w21 @@ -1906,12 +2545,12 @@ flash_erase_duplane_block: ldr x2, [x29,88] and w19, w2, w19 orr w19, w19, w20 - cbz w19, .L266 - adrp x0, .LC3 - mov w1, w24 - add x0, x0, :lo12:.LC3 + cbz w19, .L445 + adrp x0, .LC42 + mov w1, w22 + add x0, x0, :lo12:.LC42 bl printk -.L266: +.L445: mov w0, w19 ldr x25, [sp,64] ldp x19, x20, [sp,16] @@ -1925,55 +2564,55 @@ flash_erase_duplane_block: .type flash_erase_block_en, %function flash_erase_block_en: stp x29, x30, [sp, -80]! - uxtb w0, w0 add x29, sp, 0 stp x19, x20, [sp,16] - adrp x20, .LANCHOR0 + adrp x19, .LANCHOR0 + uxtb w20, w0 + add x0, x19, :lo12:.LANCHOR0 str x25, [sp,64] stp x23, x24, [sp,48] - uxtb w24, w1 - add x1, x20, :lo12:.LANCHOR0 stp x21, x22, [sp,32] - and w23, w2, 2097151 + uxtb w24, w1 mov w22, w2 - ldrb w3, [x1,152] - cmp w3, w0 - bhi .L275 + ldrb w0, [x0,98] + and w23, w2, 2097151 + cmp w0, w20 + bhi .L454 adrp x1, .LANCHOR1 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR1 add x0, x0, :lo12:.LC0 - add x1, x1, 680 - mov w2, 553 + add x1, x1, 744 + mov w2, 555 bl printk -.L276: - b .L276 -.L275: - add x0, x1, x0, sxtw - ldrb w21, [x0,156] - adrp x0, .LANCHOR2+400 - ldr x25, [x1,16] - mov x19, x21 +.L454: + add x0, x19, :lo12:.LANCHOR0 + add x20, x0, x20, sxtw + ldrb w21, [x20,200] + ldr x25, [x0,16] + adrp x0, .LANCHOR2 + mov x20, x21 add x21, x21, 8 - ldr w0, [x0,#:lo12:.LANCHOR2+400] + ldr w0, [x0,#:lo12:.LANCHOR2] add x21, x25, x21, lsl 8 - tbz x0, 4, .L277 - adrp x0, .LC4 - mov w1, w19 - add x0, x0, :lo12:.LC4 + tbz x0, 4, .L455 + adrp x0, .LC43 + mov w1, w20 + add x0, x0, :lo12:.LC43 + mov w2, w22 bl printk -.L277: +.L455: bl nandc_wait_flash_ready - mov w0, w19 + mov w0, w20 bl nandc_cs - mov w0, w19 - cbnz w24, .L278 + mov w0, w20 + cbnz w24, .L456 bl zftl_flash_enter_slc_mode - b .L279 -.L278: + b .L457 +.L456: bl zftl_flash_exit_slc_mode -.L279: - ubfiz x3, x19, 8, 8 +.L457: + ubfiz x3, x20, 8, 8 mov w0, 96 add x3, x25, x3 str w0, [x3,2056] @@ -1990,20 +2629,20 @@ flash_erase_block_en: mov x0, x21 bl flash_read_status mov w21, w0 - mov w0, w19 + mov w0, w20 bl nandc_de_cs mov w3, 5 - ands w19, w21, w3 - beq .L280 - add x20, x20, :lo12:.LANCHOR0 - adrp x0, .LC5 - add x0, x0, :lo12:.LC5 - mov w2, w19 - ldrh w1, [x20,166] + ands w20, w21, w3 + beq .L458 + add x19, x19, :lo12:.LANCHOR0 + adrp x0, .LC44 + add x0, x0, :lo12:.LC44 + mov w2, w20 + ldrh w1, [x19,210] udiv w1, w22, w1 bl printk -.L280: - mov w0, w19 +.L458: + mov w0, w20 ldr x25, [sp,64] ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -2035,38 +2674,38 @@ flash_erase_all: stp x21, x22, [sp,32] stp x23, x24, [sp,48] mov w19, 0 - ldrb w1, [x0,381] - ldrh w20, [x0,382] + ldrb w1, [x0,389] + ldrh w20, [x0,390] adrp x0, .LANCHOR0 add x23, x0, :lo12:.LANCHOR0 mov x21, x0 mul w20, w1, w20 uxth w20, w20 -.L289: - ldrb w0, [x23,152] +.L467: + ldrb w0, [x23,98] cmp w0, w19 - bls .L293 + bls .L471 add x0, x23, x19, sxtw - ldrb w24, [x0,156] + ldrb w24, [x0,200] mov w22, 0 -.L290: +.L468: cmp w20, w22, uxth - bls .L294 + bls .L472 add x0, x21, :lo12:.LANCHOR0 - ldrh w1, [x0,166] + ldrh w1, [x0,210] mov w0, w24 mul w1, w22, w1 add w22, w22, 1 bl flash_erase_block - b .L290 -.L294: + b .L468 +.L472: add w19, w19, 1 uxth w19, w19 - b .L289 -.L293: - adrp x0, .LC6 + b .L467 +.L471: + adrp x0, .LC45 mov w1, 0 - add x0, x0, :lo12:.LC6 + add x0, x0, :lo12:.LC45 bl printk ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -2109,7 +2748,7 @@ nandc_xfer_start: cmp w0, 9 ldr x3, [x29,88] ldr x2, [x29,80] - bne .L297 + bne .L475 ldr w0, [x4,292] ubfiz w19, w24, 1, 1 orr w19, w19, 8 @@ -2121,18 +2760,19 @@ nandc_xfer_start: str w0, [x4,288] mov w0, 1 bfi w19, w0, 5, 2 - ldrb w0, [x21,88] + ldrb w0, [x21,137] orr w19, w19, 536870912 orr w19, w19, 1024 and w19, w19, -17 bfi w19, w20, 22, 6 - cbz w0, .L299 - ldrb w1, [x21,136] + orr w19, w19, 128 + cbz w0, .L477 + ldrb w1, [x21,184] orr w0, w19, 512 cmp w1, wzr csel w19, w0, w19, ne - b .L299 -.L297: + b .L477 +.L475: ldr w0, [x4,368] ubfiz w19, w24, 1, 1 orr w19, w19, 8 @@ -2153,8 +2793,8 @@ nandc_xfer_start: orr w19, w19, 1024 and w19, w19, -17 bfi w19, w20, 22, 6 - cbz w24, .L311 - ldrb w0, [x21,140] + cbz w24, .L489 + ldrb w0, [x21,188] ubfx x23, x23, 1, 7 mov w1, 64 mov w4, 128 @@ -2162,27 +2802,27 @@ nandc_xfer_start: add x23, x3, x23, lsl 2 csel w4, w1, w4, cc mov w1, 0 - b .L304 -.L299: + b .L482 +.L477: add x22, x22, :lo12:.LANCHOR0 ubfx x21, x19, 22, 6 mov x0, x2 lsl w1, w21, 10 - str x2, [x22,104] + str x2, [x22,152] mov w2, w24 - str x3, [x22,112] + str x3, [x22,160] bl rknand_dma_map_single - str w0, [x22,120] - ldr x0, [x22,112] + str w0, [x22,168] + ldr x0, [x22,160] lsl w1, w21, 2 mov w2, w24 bl rknand_dma_map_single - str w0, [x22,124] + str w0, [x22,172] ldr x3, [x22,16] mov w1, 1 - str w1, [x22,128] + str w1, [x22,176] cmp w24, wzr - ldr w1, [x22,120] + ldr w1, [x22,168] str w1, [x3,52] str w0, [x3,56] mov w0, 16 @@ -2194,53 +2834,53 @@ nandc_xfer_start: cset w0, eq orr w1, w1, 4 bfi w1, w0, 1, 1 - ldrh w0, [x22,138] + ldrh w0, [x22,186] orr w1, w1, 1 bfi w1, w0, 16, 11 str w1, [x3,48] str w19, [x3,16] orr w19, w19, 4 str w19, [x3,16] - b .L296 -.L304: + b .L474 +.L482: cmp x3, x23 add w0, w1, w4 - beq .L306 + beq .L484 ldrh w5, [x3,2] and x1, x1, 4294967292 - ldr x6, [x21,96] + ldr x6, [x21,144] ldrh w7, [x3],4 orr w5, w7, w5, lsl 16 str w5, [x6,x1] mov w1, w0 - b .L304 -.L311: - ldr x1, [x21,96] + b .L482 +.L489: + ldr x1, [x21,144] str w0, [x1] -.L306: +.L484: add x22, x22, :lo12:.LANCHOR0 and w20, w20, 63 lsl w1, w20, 10 - ldr x0, [x22,96] - str x2, [x22,104] - str x0, [x22,112] + ldr x0, [x22,144] + str x2, [x22,152] + str x0, [x22,160] mov x0, x2 mov w2, w24 bl rknand_dma_map_single - str w0, [x22,120] - ldr x0, [x22,112] + str w0, [x22,168] + ldr x0, [x22,160] lsl w1, w20, 7 mov w2, w24 bl rknand_dma_map_single - str w0, [x22,124] + str w0, [x22,172] ldr x3, [x22,16] mov w0, 1 - str w0, [x22,128] + str w0, [x22,176] cmp w24, wzr - ldr w0, [x22,120] + ldr w0, [x22,168] mov w1, 8660 str w0, [x3,20] - ldr w0, [x22,124] + ldr w0, [x22,172] str w0, [x3,24] cset w0, eq bfi w1, w0, 1, 1 @@ -2250,7 +2890,7 @@ nandc_xfer_start: str w19, [x3,8] orr w19, w19, 4 str w19, [x3,8] -.L296: +.L474: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -2266,132 +2906,25 @@ nandc_set_seed: and w0, w0, 127 add x1, x1, :lo12:.LANCHOR1 adrp x2, .LANCHOR0 - add x1, x1, 704 + add x1, x1, 768 ldrh w0, [x1,w0,uxtw 1] add x1, x2, :lo12:.LANCHOR0 ldrb w2, [x2,#:lo12:.LANCHOR0] orr w3, w0, -1073741824 - ldrb w4, [x1,136] + ldrb w4, [x1,184] ldr x1, [x1,16] cmp w4, wzr csel w0, w3, w0, ne cmp w2, 9 - bne .L314 + bne .L492 str w0, [x1,520] - b .L312 -.L314: + b .L490 +.L492: str w0, [x1,336] -.L312: +.L490: ret .size nandc_set_seed, .-nandc_set_seed .align 2 - .global flash_start_page_read - .type flash_start_page_read, %function -flash_start_page_read: - stp x29, x30, [sp, -80]! - ubfx x2, x1, 21, 3 - add x29, sp, 0 - stp x21, x22, [sp,32] - adrp x22, .LANCHOR0 - str x25, [sp,64] - stp x23, x24, [sp,48] - add x23, x22, :lo12:.LANCHOR0 - uxtb w24, w0 - stp x19, x20, [sp,16] - ubfx x21, x1, 24, 2 - and w19, w1, 2097151 - ldrb w0, [x23,152] - cmp w0, w2 - bhi .L319 - adrp x1, .LANCHOR1 - adrp x0, .LC0 - add x1, x1, :lo12:.LANCHOR1 - add x0, x0, :lo12:.LC0 - add x1, x1, 960 - mov w2, 736 - bl printk -.L320: - b .L320 -.L319: - add x2, x23, x2, sxtw - ldrb w20, [x2,156] - ldr x25, [x23,16] - mov w0, w20 - bl nandc_cs - cbnz w21, .L321 - ldrb w0, [x23,164] - cbz w0, .L322 - ldrb w0, [x23,165] - cbz w0, .L323 -.L322: - add x2, x22, :lo12:.LANCHOR0 - ldrh w1, [x2,166] - udiv w0, w19, w1 - mul w1, w0, w1 - ldrb w0, [x2,165] - sub w19, w19, w1 - cbz w0, .L324 - add w19, w1, w19, lsl 1 - b .L323 -.L324: - add x2, x2, 168 - ldrh w19, [x2,w19,uxtw 1] - add w19, w19, w1 - b .L325 -.L323: - mov w0, w20 - bl zftl_flash_enter_slc_mode - b .L325 -.L321: - ldr x0, [x23,720] - ldrb w0, [x0,12] - cmp w0, 3 - bne .L326 - sxtw x1, w20 - add x1, x1, 8 - add x1, x25, x1, lsl 8 - str w21, [x1,8] - b .L325 -.L326: - mov w0, w20 - bl zftl_flash_exit_slc_mode -.L325: - ubfiz x20, x20, 8, 8 - and w0, w19, 255 - add x2, x25, x20 - str wzr, [x2,2056] - str wzr, [x2,2052] - str wzr, [x2,2052] - str w0, [x2,2052] - lsr w0, w19, 8 - str w0, [x2,2052] - lsr w0, w19, 16 - str w0, [x2,2052] - str w24, [x2,2056] - cbz w21, .L327 - add x22, x22, :lo12:.LANCHOR0 - ldr x0, [x22,720] - ldrb w0, [x0,12] - cmp w0, 3 - bne .L327 - sub w21, w21, #1 - add w0, w19, w19, lsl 1 - add w0, w21, w0 - b .L338 -.L327: - mov w0, w19 -.L338: - bl nandc_set_seed - mov w0, 0 - bl nandc_de_cs - ldr x25, [sp,64] - ldp x19, x20, [sp,16] - ldp x21, x22, [sp,32] - ldp x23, x24, [sp,48] - ldp x29, x30, [sp], 80 - ret - .size flash_start_page_read, .-flash_start_page_read - .align 2 .global zftl_flash_de_init .type zftl_flash_de_init, %function zftl_flash_de_init: @@ -2403,25 +2936,25 @@ zftl_flash_de_init: mov w0, 0 add x20, x19, :lo12:.LANCHOR0 bl hynix_reconfig_rr_para - ldrb w0, [x20,716] - cbz w0, .L340 - ldrb w0, [x20,681] - tbz x0, 0, .L340 + ldrb w0, [x20,136] + cbz w0, .L497 + ldrb w0, [x20,764] + tbz x0, 0, .L497 mov w0, 1 bl flash_set_interface_mode mov w0, 1 bl nandc_set_if_mode - strb wzr, [x20,716] -.L340: + strb wzr, [x20,136] +.L497: add x19, x19, :lo12:.LANCHOR0 - ldrb w0, [x19,136] - cbz w0, .L341 + ldrb w0, [x19,184] + cbz w0, .L498 mov w0, 0 - strb wzr, [x19,136] + strb wzr, [x19,184] bl nandc_set_seed mov w0, 1 - strb w0, [x19,136] -.L341: + strb w0, [x19,184] +.L498: mov w0, 0 ldp x19, x20, [sp,16] ldp x29, x30, [sp], 32 @@ -2431,8 +2964,8 @@ zftl_flash_de_init: .global nandc_randomizer_enable .type nandc_randomizer_enable, %function nandc_randomizer_enable: - adrp x1, .LANCHOR0+136 - strb w0, [x1,#:lo12:.LANCHOR0+136] + adrp x1, .LANCHOR0+184 + strb w0, [x1,#:lo12:.LANCHOR0+184] ret .size nandc_randomizer_enable, .-nandc_randomizer_enable .align 2 @@ -2456,33 +2989,33 @@ buf_init: stp x19, x20, [sp,16] add x19, x0, :lo12:.LANCHOR0 stp x21, x22, [sp,32] - add x19, x19, 728 + add x19, x19, 768 mov w21, 0 mov x22, x0 -.L354: +.L511: add x20, x22, :lo12:.LANCHOR0 uxtb w0, w21 add w1, w0, 1 strb w0, [x19,1] strb w1, [x19] add w21, w21, 1 - ldrb w0, [x20,2776] + ldrb w0, [x20,2816] add x19, x19, 64 strb wzr, [x19,-62] str xzr, [x19,-48] lsl w0, w0, 9 bl ftl_malloc str x0, [x19,-56] - ldrb w0, [x20,2776] + ldrb w0, [x20,2816] lsl w0, w0, 1 bl ftl_malloc str x0, [x19,-40] cmp w21, 32 - bne .L354 - strb w21, [x20,2778] + bne .L511 + strb w21, [x20,2818] mov w0, -1 - strb wzr, [x20,2777] - strb w0, [x20,2712] + strb wzr, [x20,2817] + strb w0, [x20,2752] ldp x21, x22, [sp,32] ldp x19, x20, [sp,16] ldp x29, x30, [sp], 48 @@ -2495,8 +3028,8 @@ buf_reinit: adrp x0, .LANCHOR0 mov w2, 0 add x1, x0, :lo12:.LANCHOR0 - add x1, x1, 728 -.L357: + add x1, x1, 768 +.L514: uxtb w3, w2 add w2, w2, 1 add w4, w3, 1 @@ -2506,67 +3039,72 @@ buf_reinit: strb wzr, [x1,2] add x1, x1, 64 str xzr, [x1,-48] - bne .L357 + bne .L514 add x0, x0, :lo12:.LANCHOR0 mov w1, -1 - strb wzr, [x0,2777] - strb w1, [x0,2712] - strb w2, [x0,2778] + strb wzr, [x0,2817] + strb w1, [x0,2752] + strb w2, [x0,2818] ret .size buf_reinit, .-buf_reinit .align 2 .global buf_add_tail .type buf_add_tail, %function buf_add_tail: - stp x29, x30, [sp, -16]! - mov w2, -1 + stp x29, x30, [sp, -32]! add x29, sp, 0 - strb w2, [x1] - ldrb w3, [x0] - cmp w3, 255 - bne .L367 - ldrb w1, [x1,1] + stp x19, x20, [sp,16] + mov x20, x0 + mov w0, -1 + strb w0, [x1] + mov x19, x1 + ldrb w1, [x20] cmp w1, 255 - bne .L361 + bne .L522 + ldrb w0, [x19,1] + cmp w0, 255 + bne .L518 adrp x1, .LANCHOR1 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR1 add x0, x0, :lo12:.LC0 - add x1, x1, 984 + add x1, x1, 1024 mov w2, 74 bl printk -.L362: - b .L362 -.L361: - strb w1, [x0] - b .L359 -.L367: +.L518: + ldrb w0, [x19,1] + strb w0, [x20] + b .L516 +.L522: adrp x0, .LANCHOR0 add x0, x0, :lo12:.LANCHOR0 - add x0, x0, 728 -.L368: - mov w2, w3 - sbfiz x3, x3, 6, 32 - ldrb w3, [x0,x3] - cmp w3, 255 - bne .L368 - ldrb w1, [x1,1] + add x0, x0, 768 +.L523: + mov w20, w1 + sbfiz x1, x1, 6, 32 + ldrb w1, [x0,x1] cmp w1, 255 - bne .L364 + bne .L523 + ldrb w0, [x19,1] + cmp w0, 255 + bne .L520 adrp x1, .LANCHOR1 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR1 add x0, x0, :lo12:.LC0 - add x1, x1, 984 + add x1, x1, 1024 mov w2, 81 bl printk -.L365: - b .L365 -.L364: - sbfiz x2, x2, 6, 32 - strb w1, [x0,x2] -.L359: - ldp x29, x30, [sp], 16 +.L520: + adrp x0, .LANCHOR0 + sbfiz x20, x20, 6, 32 + add x0, x0, :lo12:.LANCHOR0 + ldrb w1, [x19,1] + add x0, x0, 768 + strb w1, [x0,x20] +.L516: + ldp x19, x20, [sp,16] + ldp x29, x30, [sp], 32 ret .size buf_add_tail, .-buf_add_tail .align 2 @@ -2581,23 +3119,23 @@ buf_free: and w1, w1, 8 uxtb w1, w1 strb w1, [x0,2] - cbz w1, .L370 + cbz w1, .L525 mov x1, x0 add x0, x19, :lo12:.LANCHOR0 - add x0, x0, 2777 + add x0, x0, 2817 bl buf_add_tail - b .L371 -.L370: + b .L526 +.L525: add x1, x19, :lo12:.LANCHOR0 - ldrb w2, [x1,2777] + ldrb w2, [x1,2817] strb w2, [x0] ldrb w0, [x0,1] - strb w0, [x1,2777] -.L371: + strb w0, [x1,2817] +.L526: add x19, x19, :lo12:.LANCHOR0 - ldrb w0, [x19,2778] + ldrb w0, [x19,2818] add w0, w0, 1 - strb w0, [x19,2778] + strb w0, [x19,2818] ldr x19, [sp,16] ldp x29, x30, [sp], 32 ret @@ -2606,51 +3144,62 @@ buf_free: .global buf_alloc .type buf_alloc, %function buf_alloc: - uxtb w5, w0 - adrp x0, .LANCHOR0 - add x2, x0, :lo12:.LANCHOR0 - mov x1, x0 - stp x29, x30, [sp, -16]! + stp x29, x30, [sp, -48]! + adrp x1, .LANCHOR0 add x29, sp, 0 - ldrb w3, [x2,2778] - cbnz w3, .L373 + stp x19, x20, [sp,16] + add x20, x1, :lo12:.LANCHOR0 + str x21, [sp,32] + uxtb w21, w0 + mov x19, x1 + ldrb w0, [x20,2818] + cbz w0, .L528 +.L531: + add x1, x19, :lo12:.LANCHOR0 + add x0, x1, 768 + ldrb w2, [x1,2817] + add x0, x0, x2, lsl 6 + cbz w21, .L529 + b .L530 +.L528: adrp x1, .LANCHOR1 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR1 add x0, x0, :lo12:.LC0 - add x1, x1, 1000 + add x1, x1, 1040 mov w2, 121 bl printk -.L374: - b .L374 -.L373: - add x4, x2, 728 - ldrb w2, [x2,2777] - add x4, x4, x2, lsl 6 - cbnz w5, .L378 - cmp w3, 1 + ldrb w1, [x20,2818] + cbnz w1, .L531 +.L533: mov x0, 0 - beq .L375 -.L378: - add x0, x1, :lo12:.LANCHOR0 - lsl x1, x2, 6 - add x5, x0, 728 - sub w3, w3, #1 - add x2, x5, x1 - strb w3, [x0,2778] - ldrb w6, [x5,x1] - strb w6, [x0,2777] - mov w0, 1 - strb w0, [x2,2] - mov w0, -1 - strb w0, [x5,x1] - mov w0, -1 - strh wzr, [x2,50] - str w0, [x2,36] - mov x0, x4 - str xzr, [x2,16] -.L375: - ldp x29, x30, [sp], 16 + b .L532 +.L529: + ldrb w1, [x1,2818] + cmp w1, 1 + beq .L533 +.L530: + add x1, x19, :lo12:.LANCHOR0 + lsl x2, x2, 6 + add x4, x1, 768 + add x3, x4, x2 + ldrb w5, [x4,x2] + strb w5, [x1,2817] + ldrb w5, [x1,2818] + strh wzr, [x3,50] + sub w5, w5, #1 + strb w5, [x1,2818] + mov w1, 1 + strb w1, [x3,2] + mov w1, -1 + str xzr, [x3,16] + strb w1, [x4,x2] + mov w1, -1 + str w1, [x3,36] +.L532: + ldp x19, x20, [sp,16] + ldr x21, [sp,32] + ldp x29, x30, [sp], 48 ret .size buf_alloc, .-buf_alloc .align 2 @@ -2660,33 +3209,33 @@ buf_remove_buf: ldrb w4, [x1,1] ldrb w2, [x0] cmp w4, w2 - bne .L385 + bne .L540 ldrb w1, [x1] strb w1, [x0] - b .L389 -.L385: + b .L544 +.L540: adrp x0, .LANCHOR0 add x0, x0, :lo12:.LANCHOR0 - add x0, x0, 728 -.L387: + add x0, x0, 768 +.L542: cmp w2, 255 - beq .L390 + beq .L545 mov w3, w2 sbfiz x2, x2, 6, 32 ldrb w2, [x0,x2] cmp w2, w4 - bne .L387 + bne .L542 sbfiz x3, x3, 6, 32 ldrb w2, [x1] strb w2, [x0,x3] mov w0, -1 strb w0, [x1] -.L389: +.L544: mov w0, 1 - b .L384 -.L390: + b .L539 +.L545: mov w0, 0 -.L384: +.L539: ret .size buf_remove_buf, .-buf_remove_buf .align 2 @@ -2698,31 +3247,32 @@ buf_remove_free: stp x19, x20, [sp,16] adrp x19, .LANCHOR0 mov x20, x0 - add x19, x19, :lo12:.LANCHOR0 - ldrb w0, [x19,2778] - cbnz w0, .L392 + add x0, x19, :lo12:.LANCHOR0 + ldrb w0, [x0,2818] + cbnz w0, .L547 adrp x1, .LANCHOR1 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR1 add x0, x0, :lo12:.LC0 - add x1, x1, 1016 + add x1, x1, 1056 mov w2, 170 bl printk -.L393: - b .L393 -.L392: - add x0, x19, 2777 +.L547: + add x19, x19, :lo12:.LANCHOR0 + ldrb w0, [x19,2818] + cbz w0, .L546 + add x0, x19, 2817 mov x1, x20 bl buf_remove_buf cmp w0, 1 - bne .L391 - ldrb w0, [x19,2778] + bne .L546 + ldrb w0, [x19,2818] sub w0, w0, #1 - strb w0, [x19,2778] + strb w0, [x19,2818] ldrb w0, [x20,2] orr w0, w0, 1 strb w0, [x20,2] -.L391: +.L546: ldp x19, x20, [sp,16] ldp x29, x30, [sp], 32 ret @@ -2734,7 +3284,7 @@ flash_check_bad_block: adrp x2, .LANCHOR2 uxtb w0, w0 add x2, x2, :lo12:.LANCHOR2 - add x2, x2, 368 + add x2, x2, 376 ldrb w3, [x2,13] ldrh w2, [x2,14] mul w2, w3, w2 @@ -2744,9 +3294,9 @@ flash_check_bad_block: asr w2, w2, 5 lsl w2, w2, 2 mul w2, w0, w2 - adrp x0, .LANCHOR0+144 + adrp x0, .LANCHOR0+192 sxtw x2, w2 - ldr x0, [x0,#:lo12:.LANCHOR0+144] + ldr x0, [x0,#:lo12:.LANCHOR0+192] add x2, x2, 912 add x2, x0, x2 ldr w0, [x2,x3,lsl 2] @@ -2767,22 +3317,22 @@ flash_mask_bad_block: uxtb w19, w0 mov w21, w1 mov w1, w19 - ldrb w0, [x3,381] + ldrb w0, [x3,389] mov w2, w21 - ldrh w20, [x3,382] + ldrh w20, [x3,390] mul w20, w0, w20 - adrp x0, .LC7 - add x0, x0, :lo12:.LC7 + adrp x0, .LC46 + add x0, x0, :lo12:.LC46 uxth w20, w20 add w20, w20, 31 bl printk asr w20, w20, 5 - adrp x0, .LANCHOR0+144 + adrp x0, .LANCHOR0+192 lsl w20, w20, 2 ubfx x3, x21, 5, 27 lsl x3, x3, 2 mul w19, w19, w20 - ldr x0, [x0,#:lo12:.LANCHOR0+144] + ldr x0, [x0,#:lo12:.LANCHOR0+192] sxtw x19, w19 add x19, x19, 912 add x19, x0, x19 @@ -2797,245 +3347,323 @@ flash_mask_bad_block: ret .size flash_mask_bad_block, .-flash_mask_bad_block .align 2 + .global str2hex + .type str2hex, %function +str2hex: + ldrb w1, [x0] + cmp w1, 48 + bne .L554 + ldrb w1, [x0,1] + add x2, x0, 2 + and w1, w1, -33 + uxtb w1, w1 + cmp w1, 88 + csel x0, x0, x2, ne +.L554: + ldrb w1, [x0] + and w1, w1, -33 + uxtb w1, w1 + cmp w1, 88 + mov w1, 0 + csinc x0, x0, x0, ne +.L556: + ldrb w2, [x0] + cbz w2, .L563 + sub w3, w2, #48 + uxtb w3, w3 + cmp w3, 9 + bhi .L557 + add w1, w2, w1, lsl 4 + sub w1, w1, #48 + b .L558 +.L557: + sub w3, w2, #97 + uxtb w3, w3 + cmp w3, 5 + bhi .L559 + add w1, w2, w1, lsl 4 + sub w1, w1, #87 + b .L558 +.L559: + sub w3, w2, #65 + uxtb w3, w3 + cmp w3, 5 + bhi .L563 + add w1, w2, w1, lsl 4 + sub w1, w1, #55 +.L558: + add x0, x0, 1 + b .L556 +.L563: + mov w0, w1 + ret + .size str2hex, .-str2hex + .align 2 + .global zftl_proc_debug_init + .type zftl_proc_debug_init, %function +zftl_proc_debug_init: + stp x29, x30, [sp, -16]! + adrp x3, .LANCHOR1 + mov x2, 0 + adrp x0, .LC47 + add x3, x3, :lo12:.LANCHOR1 + add x29, sp, 0 + mov w1, 292 + add x3, x3, 1072 + mov x4, x2 + add x0, x0, :lo12:.LC47 + bl proc_create_data + ldp x29, x30, [sp], 16 + ret + .size zftl_proc_debug_init, .-zftl_proc_debug_init + .align 2 .global ftl_print_info_to_buf .type ftl_print_info_to_buf, %function ftl_print_info_to_buf: stp x29, x30, [sp, -48]! - adrp x1, .LC8 - adrp x2, .LC9 + adrp x1, .LC1 + adrp x2, .LC2 add x29, sp, 0 - add x1, x1, :lo12:.LC8 - add x2, x2, :lo12:.LC9 + add x1, x1, :lo12:.LC1 + add x2, x2, :lo12:.LC2 stp x19, x20, [sp,16] str x21, [sp,32] mov x20, x0 bl sprintf adrp x21, .LANCHOR0 adrp x7, .LANCHOR2 - adrp x1, .LC10 + adrp x1, .LC48 add x7, x7, :lo12:.LANCHOR2 add x21, x21, :lo12:.LANCHOR0 - add x7, x7, 368 + add x7, x7, 376 add x19, x20, x0, sxtw - add x1, x1, :lo12:.LC10 + add x1, x1, :lo12:.LC48 mov x0, x19 ldrb w5, [x7,4] ldrb w6, [x7,5] - ldrb w4, [x7,3] ldrb w3, [x7,2] + ldrb w4, [x7,3] ldrb w2, [x7,1] ldrb w7, [x7,6] bl sprintf add x19, x19, x0, sxtw ldr w2, [x21,4] - adrp x1, .LC11 + adrp x1, .LC49 mov x0, x19 - add x1, x1, :lo12:.LC11 + add x1, x1, :lo12:.LC49 lsr w2, w2, 11 bl sprintf add x19, x19, x0, sxtw - ldr w2, [x21,2780] - adrp x1, .LC12 + ldr w2, [x21,2820] + adrp x1, .LC50 mov x0, x19 - add x1, x1, :lo12:.LC12 + add x1, x1, :lo12:.LC50 lsr w2, w2, 11 bl sprintf add x19, x19, x0, sxtw - adrp x1, .LC13 + adrp x1, .LC51 mov x0, x19 - add x1, x1, :lo12:.LC13 + add x1, x1, :lo12:.LC51 add x19, x19, 10 bl strcpy - ldr w2, [x21,2784] - adrp x1, .LC14 + ldr w2, [x21,2824] + adrp x1, .LC52 mov x0, x19 - add x1, x1, :lo12:.LC14 + add x1, x1, :lo12:.LC52 bl sprintf add x19, x19, x0, sxtw ldr w2, [x21,4] - adrp x1, .LC15 + adrp x1, .LC53 mov x0, x19 - add x1, x1, :lo12:.LC15 + add x1, x1, :lo12:.LC53 bl sprintf add x19, x19, x0, sxtw ldr x2, [x21,80] - adrp x1, .LC16 + adrp x1, .LC54 mov x0, x19 - add x1, x1, :lo12:.LC16 + add x1, x1, :lo12:.LC54 ldr w2, [x2,524] bl sprintf add x19, x19, x0, sxtw ldr x2, [x21,80] - adrp x1, .LC17 + adrp x1, .LC55 mov x0, x19 - add x1, x1, :lo12:.LC17 + add x1, x1, :lo12:.LC55 ldr w2, [x2,528] bl sprintf add x19, x19, x0, sxtw - ldrh w2, [x21,2788] - adrp x1, .LC18 + ldrh w2, [x21,2828] + adrp x1, .LC56 mov x0, x19 - add x1, x1, :lo12:.LC18 + add x1, x1, :lo12:.LC56 bl sprintf add x19, x19, x0, sxtw - ldrh w2, [x21,2790] - adrp x1, .LC19 + ldrh w2, [x21,2830] + adrp x1, .LC57 mov x0, x19 - add x1, x1, :lo12:.LC19 + add x1, x1, :lo12:.LC57 bl sprintf add x19, x19, x0, sxtw - ldrh w2, [x21,2792] - adrp x1, .LC20 + ldrh w2, [x21,2832] + adrp x1, .LC58 mov x0, x19 - add x1, x1, :lo12:.LC20 + add x1, x1, :lo12:.LC58 bl sprintf add x19, x19, x0, sxtw - ldrh w2, [x21,2794] - adrp x1, .LC21 + ldrh w2, [x21,2834] + adrp x1, .LC59 mov x0, x19 - add x1, x1, :lo12:.LC21 + add x1, x1, :lo12:.LC59 bl sprintf add x19, x19, x0, sxtw - ldrh w2, [x21,2796] - adrp x1, .LC22 + ldrh w2, [x21,2836] + adrp x1, .LC60 mov x0, x19 - add x1, x1, :lo12:.LC22 + add x1, x1, :lo12:.LC60 bl sprintf add x19, x19, x0, sxtw - ldrh w2, [x21,2798] - adrp x1, .LC23 + ldrh w2, [x21,2838] + adrp x1, .LC61 mov x0, x19 - add x1, x1, :lo12:.LC23 + add x1, x1, :lo12:.LC61 bl sprintf add x19, x19, x0, sxtw - ldr x3, [x21,2800] - adrp x1, .LC24 + ldrb w4, [x21,2841] + adrp x1, .LC62 + ldrb w2, [x21,2818] mov x0, x19 - add x1, x1, :lo12:.LC24 + ldrb w3, [x21,2840] + add x1, x1, :lo12:.LC62 + bl sprintf + add x19, x19, x0, sxtw + ldr x3, [x21,2848] + adrp x1, .LC63 + mov x0, x19 + add x1, x1, :lo12:.LC63 ldrh w2, [x3,148] ldrh w3, [x3,146] bl sprintf add x19, x19, x0, sxtw - ldr x0, [x21,2800] - adrp x1, .LC25 - add x1, x1, :lo12:.LC25 + ldr x0, [x21,2848] + adrp x1, .LC64 + add x1, x1, :lo12:.LC64 ldr w3, [x0,16] ldr w2, [x0,20] mov x0, x19 add w2, w2, w3, lsr 11 bl sprintf add x19, x19, x0, sxtw - ldr x0, [x21,2800] - adrp x1, .LC26 - add x1, x1, :lo12:.LC26 + ldr x0, [x21,2848] + adrp x1, .LC65 + add x1, x1, :lo12:.LC65 ldr w3, [x0,24] ldr w2, [x0,28] mov x0, x19 add w2, w2, w3, lsr 11 bl sprintf add x19, x19, x0, sxtw - ldr x2, [x21,2800] - adrp x1, .LC27 + ldr x2, [x21,2848] + adrp x1, .LC66 mov x0, x19 - add x1, x1, :lo12:.LC27 + add x1, x1, :lo12:.LC66 ldr w2, [x2,64] bl sprintf add x19, x19, x0, sxtw - ldr x2, [x21,2800] - adrp x1, .LC28 + ldr x2, [x21,2848] + adrp x1, .LC67 mov x0, x19 - add x1, x1, :lo12:.LC28 + add x1, x1, :lo12:.LC67 ldr w2, [x2,68] bl sprintf add x19, x19, x0, sxtw ldr x0, [x21,80] mov w2, 10 - adrp x1, .LC29 - add x1, x1, :lo12:.LC29 + adrp x1, .LC68 + add x1, x1, :lo12:.LC68 ldr w3, [x0,12] mov x0, x19 udiv w2, w3, w2 bl sprintf add x19, x19, x0, sxtw - ldrb w2, [x21,164] - adrp x1, .LC30 + ldrb w2, [x21,97] + adrp x1, .LC69 mov x0, x19 - add x1, x1, :lo12:.LC30 + add x1, x1, :lo12:.LC69 bl sprintf add x19, x19, x0, sxtw ldr x2, [x21,80] - adrp x1, .LC31 + adrp x1, .LC70 mov x0, x19 - add x1, x1, :lo12:.LC31 + add x1, x1, :lo12:.LC70 ldr w2, [x2,556] bl sprintf add x19, x19, x0, sxtw ldr x2, [x21,80] - adrp x1, .LC32 + adrp x1, .LC71 mov x0, x19 - add x1, x1, :lo12:.LC32 + add x1, x1, :lo12:.LC71 ldr w2, [x2,552] bl sprintf add x19, x19, x0, sxtw - ldr x2, [x21,2800] - adrp x1, .LC33 + ldr x2, [x21,2848] + adrp x1, .LC72 mov x0, x19 - add x1, x1, :lo12:.LC33 + add x1, x1, :lo12:.LC72 ldr w2, [x2,52] bl sprintf add x19, x19, x0, sxtw - ldr x2, [x21,2800] - adrp x1, .LC34 + ldr x2, [x21,2848] + adrp x1, .LC73 mov x0, x19 - add x1, x1, :lo12:.LC34 + add x1, x1, :lo12:.LC73 ldr w2, [x2,60] bl sprintf add x19, x19, x0, sxtw - ldr x2, [x21,2800] - adrp x1, .LC35 + ldr x2, [x21,2848] + adrp x1, .LC74 mov x0, x19 - add x1, x1, :lo12:.LC35 + add x1, x1, :lo12:.LC74 ldr w2, [x2,76] bl sprintf add x19, x19, x0, sxtw - ldr x2, [x21,2800] - adrp x1, .LC36 + ldr x2, [x21,2848] + adrp x1, .LC75 mov x0, x19 - add x1, x1, :lo12:.LC36 + add x1, x1, :lo12:.LC75 ldr w2, [x2,8] bl sprintf add x19, x19, x0, sxtw ldr x4, [x21,80] - adrp x1, .LC37 + adrp x1, .LC76 mov x0, x19 - add x1, x1, :lo12:.LC37 + add x1, x1, :lo12:.LC76 ldrh w2, [x4,16] ldrh w3, [x4,22] ldrb w4, [x4,25] bl sprintf add x19, x19, x0, sxtw ldr x4, [x21,80] - adrp x1, .LC38 + adrp x1, .LC77 mov x0, x19 - add x1, x1, :lo12:.LC38 + add x1, x1, :lo12:.LC77 ldrh w2, [x4,48] ldrh w3, [x4,54] ldrb w4, [x4,57] bl sprintf add x19, x19, x0, sxtw ldr x4, [x21,80] - adrp x1, .LC39 + adrp x1, .LC78 mov x0, x19 - add x1, x1, :lo12:.LC39 + add x1, x1, :lo12:.LC78 ldrh w2, [x4,80] ldrh w3, [x4,86] ldrb w4, [x4,89] bl sprintf add x19, x19, x0, sxtw - ldr x6, [x21,2800] - adrp x1, .LC40 + ldr x6, [x21,2848] + adrp x1, .LC79 mov x0, x19 - add x1, x1, :lo12:.LC40 + add x1, x1, :lo12:.LC79 ldrh w2, [x6,74] ldr w3, [x6,84] ldrh w4, [x6,88] @@ -3043,10 +3671,10 @@ ftl_print_info_to_buf: ldrh w6, [x6,96] bl sprintf add x19, x19, x0, sxtw - ldr x6, [x21,2800] - adrp x1, .LC41 + ldr x6, [x21,2848] + adrp x1, .LC80 mov x0, x19 - add x1, x1, :lo12:.LC41 + add x1, x1, :lo12:.LC80 ldr w3, [x6,80] ldrh w4, [x6,90] ldrh w5, [x6,94] @@ -3054,19 +3682,19 @@ ftl_print_info_to_buf: ldrh w6, [x6,98] bl sprintf add x19, x19, x0, sxtw - ldrh w2, [x21,2808] - adrp x1, .LC42 + ldrh w2, [x21,2856] + adrp x1, .LC81 mov x0, x19 - add x1, x1, :lo12:.LC42 + add x1, x1, :lo12:.LC81 bl sprintf add x19, x19, x0, sxtw - ldrh w2, [x21,2810] - adrp x1, .LC43 - ldrh w3, [x21,2812] + ldrh w2, [x21,2858] + adrp x1, .LC82 + ldrh w3, [x21,2860] mov x0, x19 - ldrh w4, [x21,2814] - add x1, x1, :lo12:.LC43 - ldrh w5, [x21,2816] + ldrh w4, [x21,2862] + add x1, x1, :lo12:.LC82 + ldrh w5, [x21,2864] bl sprintf add x0, x19, x0, sxtw ldr x21, [sp,32] @@ -3076,6 +3704,16 @@ ftl_print_info_to_buf: ret .size ftl_print_info_to_buf, .-ftl_print_info_to_buf .align 2 + .global zftl_proc_ftl_read + .type zftl_proc_ftl_read, %function +zftl_proc_ftl_read: + stp x29, x30, [sp, -16]! + add x29, sp, 0 + bl ftl_print_info_to_buf + ldp x29, x30, [sp], 16 + ret + .size zftl_proc_ftl_read, .-zftl_proc_ftl_read + .align 2 .global ftl_gc_write_buf .type ftl_gc_write_buf, %function ftl_gc_write_buf: @@ -3088,12 +3726,12 @@ ftl_gc_write_buf: ldrb w0, [x0,2] orr w0, w0, 2 strb w0, [x1,2] - add x0, x19, 2818 + add x0, x19, 2866 bl buf_add_tail - ldrb w0, [x19,2819] + ldrb w0, [x19,2840] add w0, w0, 1 uxtb w0, w0 - strb w0, [x19,2819] + strb w0, [x19,2840] ldr x19, [sp,16] ldp x29, x30, [sp], 32 ret @@ -3102,61 +3740,62 @@ ftl_gc_write_buf: .global ftl_read_buf .type ftl_read_buf, %function ftl_read_buf: - stp x29, x30, [sp, -32]! - mov w2, 0 + stp x29, x30, [sp, -48]! add x29, sp, 0 - str x19, [sp,16] + stp x19, x20, [sp,16] adrp x19, .LANCHOR0 - add x3, x19, :lo12:.LANCHOR0 - add x3, x3, 728 - ldr w4, [x3,2056] - cmp w0, w4 - bcc .L409 - adrp x1, .LANCHOR1 + mov w20, w0 + add x0, x19, :lo12:.LANCHOR0 + str x21, [sp,32] + mov x21, x1 + ldr w0, [x0,2824] + cmp w20, w0 + bcc .L569 + adrp x2, .LANCHOR1 adrp x0, .LC0 - add x1, x1, :lo12:.LANCHOR1 + add x1, x2, :lo12:.LANCHOR1 add x0, x0, :lo12:.LC0 - add x1, x1, 1032 - mov w2, 835 + add x1, x1, 1288 + mov w2, 887 bl printk -.L401: - b .L401 -.L414: - ldrb w4, [x3,2] - tbnz x4, 3, .L412 -.L402: +.L569: + add x3, x19, :lo12:.LANCHOR0 + mov w2, 0 + add x3, x3, 768 +.L573: + ldr w0, [x3,36] + cmp w0, w20 + bne .L570 + ldrb w0, [x3,2] + tbz x0, 3, .L570 + add x19, x19, :lo12:.LANCHOR0 + ubfiz x2, x2, 6, 32 + add x19, x19, 768 + orr w1, w0, 4 + add x19, x19, x2 + strb w1, [x19,2] + tbnz x0, 0, .L571 + mov x0, x19 + bl buf_remove_free +.L571: + mov x0, x19 + b .L572 +.L570: add w2, w2, 1 add x3, x3, 64 cmp w2, 32 - beq .L413 -.L409: - ldr w4, [x3,36] - cmp w4, w0 - bne .L402 - b .L414 -.L412: + bne .L573 add x19, x19, :lo12:.LANCHOR0 - ubfiz x2, x2, 6, 32 - add x19, x19, 728 - orr w0, w4, 4 - add x19, x19, x2 - strb w0, [x19,2] - tbnz x4, 0, .L404 - mov x0, x19 - bl buf_remove_free - b .L404 -.L413: - add x2, x19, :lo12:.LANCHOR0 - mov x19, 0 - ldr w3, [x2,2820] - cmn w3, #1 - bne .L404 - str w0, [x2,2820] - str x1, [x2,2824] -.L404: - mov x0, x19 - ldr x19, [sp,16] - ldp x29, x30, [sp], 32 + mov x0, 0 + ldr w1, [x19,2868] + cmn w1, #1 + bne .L572 + str w20, [x19,2868] + str x21, [x19,2872] +.L572: + ldp x19, x20, [sp,16] + ldr x21, [sp,32] + ldp x29, x30, [sp], 48 ret .size ftl_read_buf, .-ftl_read_buf .align 2 @@ -3170,17 +3809,17 @@ ftl_read_buf_free: adrp x0, .LANCHOR0 mov x1, x19 add x0, x0, :lo12:.LANCHOR0 - add x0, x0, 2832 + add x0, x0, 2880 bl buf_remove_buf ldrb w0, [x19,2] - tbz x0, 1, .L416 + tbz x0, 1, .L580 and w0, w0, -5 strb w0, [x19,2] - b .L415 -.L416: + b .L579 +.L580: mov x0, x19 bl buf_free -.L415: +.L579: ldr x19, [sp,16] ldp x29, x30, [sp], 32 ret @@ -3199,143 +3838,140 @@ gc_add_sblk: add x29, sp, 0 stp x19, x20, [sp,16] adrp x20, .LANCHOR0 - add x6, x20, :lo12:.LANCHOR0 - stp x21, x22, [sp,32] stp x23, x24, [sp,48] + uxth w23, w0 + add x0, x20, :lo12:.LANCHOR0 + stp x21, x22, [sp,32] stp x25, x26, [sp,64] - uxth w21, w0 - uxth w24, w1 - ldrh w0, [x6,56] + uxth w21, w1 uxth w22, w2 - cmp w0, w21 - bhi .L420 + ldrh w0, [x0,56] + cmp w0, w23 + bhi .L584 adrp x1, .LANCHOR1 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR1 add x0, x0, :lo12:.LC0 - add x1, x1, 1048 + add x1, x1, 1304 mov w2, 252 bl printk -.L421: - b .L421 -.L420: - uxtw x19, w21 - ldr x0, [x6,72] +.L584: + add x6, x20, :lo12:.LANCHOR0 + uxtw x19, w23 lsl x25, x19, 1 - adrp x23, .LANCHOR2 + adrp x24, .LANCHOR2 + ldr x0, [x6,72] ldrh w26, [x0,x25] - add x0, x23, :lo12:.LANCHOR2 - ldr w0, [x0,400] - tbz x0, 8, .L422 + ldr w0, [x24,#:lo12:.LANCHOR2] + tbz x0, 8, .L585 ldr x0, [x6,64] - mov w1, w21 - ldrh w5, [x6,2896] - mov w2, w24 + mov w1, w23 + ldrh w5, [x6,2944] + mov w2, w21 add x0, x0, x19, lsl 2 - ldrh w6, [x6,2814] + ldrh w6, [x6,2862] mov w4, w26 ldrb w3, [x0,2] - adrp x0, .LC44 - add x0, x0, :lo12:.LC44 + adrp x0, .LC83 + add x0, x0, :lo12:.LC83 ubfx x3, x3, 5, 3 bl printk -.L422: - add x5, x20, :lo12:.LANCHOR0 - ldr x6, [x5,64] - add x6, x6, x19, lsl 2 - ldrb w3, [x6,2] - ands w0, w3, 224 - bne .L423 - cbz w26, .L424 +.L585: + add x1, x20, :lo12:.LANCHOR0 + ldr x0, [x1,64] + add x0, x0, x19, lsl 2 + ldrb w19, [x0,2] + ands w19, w19, 224 + bne .L586 + cbz w26, .L587 adrp x1, .LANCHOR1 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR1 - add x0, x0, :lo12:.LC0 - add x1, x1, 1048 mov w2, 257 + add x1, x1, 1304 + add x0, x0, :lo12:.LC0 bl printk -.L425: - b .L425 -.L423: - ldrh w1, [x5,2840] - add x3, x5, 2840 - mov w0, 0 - cmp w1, w21 - beq .L424 - ldr x4, [x5,80] - ldrh w1, [x4,48] - cmp w1, w21 - beq .L424 - ldrh w1, [x4,16] - cmp w1, w21 - beq .L424 - ldrh w1, [x4,80] - cmp w1, w21 - beq .L424 + b .L587 +.L586: + ldrh w2, [x1,2888] + add x3, x1, 2888 + mov w19, 0 + cmp w2, w23 + beq .L587 + ldr x1, [x1,80] + ldrh w2, [x1,48] + cmp w2, w23 + beq .L587 + ldrh w2, [x1,16] + cmp w2, w23 + beq .L587 + ldrh w2, [x1,80] + cmp w2, w23 + beq .L587 ldrh w5, [x3,56] - mov x0, 0 -.L426: - cmp w5, w0 - bls .L449 - add x0, x0, 1 - add x1, x3, x0, lsl 1 - ldrh w1, [x1,56] - cmp w1, w21 - bne .L426 - mov w0, 0 - b .L424 -.L449: - add x19, x4, 392 - cbnz w24, .L429 + mov x2, 0 +.L588: + cmp w5, w2 + bls .L611 + add x2, x2, 1 + add x4, x3, x2, lsl 1 + ldrh w4, [x4,56] + cmp w4, w23 + bne .L588 + mov w19, 0 + b .L587 +.L611: + add x19, x1, 392 + cbnz w21, .L591 sxtw x3, w22 - add x3, x4, x3, lsl 7 + add x3, x1, x3, lsl 7 add x19, x3, 136 -.L429: - add x23, x23, :lo12:.LANCHOR2 - ldr w0, [x23,400] - tbz x0, 8, .L430 - ldrb w3, [x6,2] +.L591: + ldr w1, [x24,#:lo12:.LANCHOR2] + tbz x1, 8, .L592 add x6, x20, :lo12:.LANCHOR0 - adrp x0, .LC44 - mov w1, w21 - add x0, x0, :lo12:.LC44 - mov w2, w24 + ldrb w3, [x0,2] + adrp x0, .LC83 + mov w1, w23 + add x0, x0, :lo12:.LC83 + mov w2, w21 ldr x4, [x6,72] ubfx x3, x3, 5, 3 - ldrh w6, [x6,2814] + ldrh w6, [x6,2862] ldrh w4, [x4,x25] bl printk -.L430: +.L592: mov x3, x19 add x0, x19, 128 mov w1, 65535 -.L433: +.L595: ldrh w2, [x3] cmp w2, w1 - bne .L431 - strh w21, [x3] + bne .L593 + strh w23, [x3] add x20, x20, :lo12:.LANCHOR0 - cbz w24, .L432 + cbz w21, .L594 ldr x1, [x20,80] ldrh w0, [x1,124] add w0, w0, 1 strh w0, [x1,124] - b .L448 -.L432: + b .L610 +.L594: ldr x0, [x20,80] add x22, x0, x22, uxth 1 ldrh w0, [x22,120] add w0, w0, 1 strh w0, [x22,120] -.L448: - mov w0, 1 - b .L424 -.L431: +.L610: + mov w19, 1 + b .L587 +.L593: add x3, x3, 2 cmp x3, x0 - bne .L433 - b .L448 -.L424: + bne .L595 + b .L610 +.L587: + mov w0, w19 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -3347,9 +3983,9 @@ gc_add_sblk: .global gc_get_src_ppa_from_index .type gc_get_src_ppa_from_index, %function gc_get_src_ppa_from_index: - adrp x1, .LANCHOR0+3168 + adrp x1, .LANCHOR0+3216 ubfiz x0, x0, 2, 16 - ldr x1, [x1,#:lo12:.LANCHOR0+3168] + ldr x1, [x1,#:lo12:.LANCHOR0+3216] ldr w0, [x1,x0] ret .size gc_get_src_ppa_from_index, .-gc_get_src_ppa_from_index @@ -3357,127 +3993,134 @@ gc_get_src_ppa_from_index: .global gc_write_completed .type gc_write_completed, %function gc_write_completed: - stp x29, x30, [sp, -80]! + stp x29, x30, [sp, -96]! add x29, sp, 0 - stp x19, x20, [sp,16] - adrp x19, .LANCHOR0 - add x19, x19, :lo12:.LANCHOR0 - stp x25, x26, [sp,64] - add x25, x19, 728 stp x21, x22, [sp,32] + adrp x21, .LANCHOR0 + adrp x22, .LANCHOR1 + add x21, x21, :lo12:.LANCHOR0 + add x22, x22, :lo12:.LANCHOR1 stp x23, x24, [sp,48] - mov x22, x19 - mov x24, x25 -.L452: - ldrb w20, [x19,3176] - cmp w20, 255 - beq .L474 - lsl x1, x20, 6 - add x0, x25, x1 - ldrb w1, [x25,x1] - strb w1, [x19,3176] - ldr w1, [x0,52] - ldrh w23, [x0,48] - cbz w1, .L453 - mov w2, 1 - strh w2, [x19,3158] - ldr w2, [x0,40] - adrp x0, .LC45 - add x0, x0, :lo12:.LC45 - str w2, [x19,3160] + stp x19, x20, [sp,16] + stp x25, x26, [sp,64] + str x27, [sp,80] + add x23, x21, 768 + add x22, x22, 1320 +.L614: + ldrb w0, [x21,3224] + adrp x19, .LANCHOR0 + cmp w0, 255 + beq .L636 + sxtw x25, w0 + lsl x0, x25, 6 + add x2, x23, x0 + ldrb w0, [x23,x0] + ldr w1, [x2,52] + strb w0, [x21,3224] + ldrh w24, [x2,48] + cbz w1, .L615 + ldr w2, [x2,40] + adrp x0, .LC84 + mov w3, 1 + add x0, x0, :lo12:.LC84 + str w2, [x21,3208] + strh w3, [x21,3206] bl printk - adrp x1, .LANCHOR1 adrp x0, .LC0 - add x1, x1, :lo12:.LANCHOR1 + mov x1, x22 add x0, x0, :lo12:.LC0 - add x1, x1, 1064 mov w2, 519 bl printk -.L454: - b .L454 -.L453: - ldrb w0, [x19,3177] - mov w21, 1 - cmp w0, 3 - bne .L455 - ldr x0, [x19,80] - ldrb w21, [x0,89] - add w21, w21, w21, lsl 1 - and w21, w21, 1023 -.L455: - adrp x0, .LANCHOR2+400 - uxth x26, w23 - ldr w0, [x0,#:lo12:.LANCHOR2+400] - tbz x0, 8, .L456 - add x2, x24, x20, lsl 6 - ldr x4, [x22,3184] - adrp x0, .LC46 - mov w1, w23 - add x0, x0, :lo12:.LC46 - mov w3, w23 - ldrb w2, [x2,1] +.L615: + add x0, x19, :lo12:.LANCHOR0 + mov w20, 1 + ldrb w1, [x0,3225] + cmp w1, 3 + bne .L616 + ldr x0, [x0,80] + ldrb w20, [x0,89] + add w20, w20, w20, lsl 1 + and w20, w20, 1023 +.L616: + adrp x0, .LANCHOR2 + uxth x26, w24 + ldr w0, [x0,#:lo12:.LANCHOR2] + tbz x0, 8, .L617 + add x0, x19, :lo12:.LANCHOR0 + mov w1, w24 + add x2, x0, x25, lsl 6 + mov w3, w24 + ldr x4, [x0,3232] + adrp x0, .LC85 + ldrb w2, [x2,769] + add x0, x0, :lo12:.LC85 ldrb w4, [x4,x26] bl printk -.L456: - ldr x2, [x22,3184] - add x20, x24, x20, lsl 6 - ldrb w1, [x2,x26] - ldrb w0, [x20,1] +.L617: + add x0, x19, :lo12:.LANCHOR0 + ldr x1, [x0,3232] + add x0, x0, x25, lsl 6 + ldrb w1, [x1,x26] + ldrb w0, [x0,769] cmp w1, w0 - beq .L457 - adrp x1, .LANCHOR1 + beq .L618 adrp x0, .LC0 - add x1, x1, :lo12:.LANCHOR1 + mov x1, x22 add x0, x0, :lo12:.LC0 - add x1, x1, 1064 mov w2, 526 bl printk -.L458: - b .L458 -.L457: - ldrb w0, [x20,61] +.L618: + add x2, x19, :lo12:.LANCHOR0 + add x1, x2, 768 + add x0, x1, x25, lsl 6 + ldrb w0, [x0,61] cmp w0, 3 - beq .L459 - ldrb w0, [x22,3177] + beq .L619 + ldrb w0, [x2,3225] cmp w0, 3 - bne .L459 - ldrb w0, [x22,3192] - cbz w0, .L460 -.L459: - strh w23, [x22,3156] - mov w20, 0 + bne .L619 + ldrb w0, [x2,3240] + cbnz w0, .L619 + ldr x3, [x2,3232] + b .L620 +.L619: + add x19, x19, :lo12:.LANCHOR0 + mov w25, 0 mov w26, -1 -.L461: - cmp w21, w20, uxth - bls .L452 - add w1, w20, w23 - ldr x2, [x22,3184] - add w20, w20, 1 + add x27, x19, 768 + strh w24, [x19,3204] +.L621: + cmp w20, w25, uxth + bls .L614 + add w1, w25, w24 + ldr x2, [x19,3232] + add w25, w25, 1 ldrb w0, [x2,x1] strb w26, [x2,x1] sbfiz x0, x0, 6, 32 - add x0, x24, x0 + add x0, x27, x0 strb wzr, [x0,61] bl buf_free - ldrb w0, [x22,2847] + ldrb w0, [x19,2895] sub w0, w0, #1 - strb w0, [x22,2847] - b .L461 -.L460: - cmp w21, w0, uxth - bls .L452 - add w1, w0, w23 + strb w0, [x19,2895] + b .L621 +.L620: + cmp w20, w0, uxth + bls .L614 + add w2, w0, w24 add w0, w0, 1 - ldrb w1, [x2,x1] - add x1, x24, x1, lsl 6 - strb wzr, [x1,61] - b .L460 -.L474: + ldrb w2, [x3,x2] + add x2, x1, x2, lsl 6 + strb wzr, [x2,61] + b .L620 +.L636: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] ldp x25, x26, [sp,64] - ldp x29, x30, [sp], 80 + ldr x27, [sp,80] + ldp x29, x30, [sp], 96 ret .size gc_write_completed, .-gc_write_completed .align 2 @@ -3487,50 +4130,50 @@ gc_get_src_blk: adrp x3, .LANCHOR0 add x0, x3, :lo12:.LANCHOR0 ldr x1, [x0,80] - ldrb w0, [x0,3193] + ldrb w0, [x0,3241] ldrh w4, [x1,124] - cbz w4, .L476 + cbz w4, .L638 add x1, x1, 392 mov w2, 1 - b .L477 -.L476: + b .L639 +.L638: sxtw x2, w0 add x0, x1, x2, lsl 1 ldrh w5, [x0,120] mov w0, 65535 - cbz w5, .L478 + cbz w5, .L640 add x1, x1, x2, lsl 7 mov w2, w4 add x1, x1, 136 -.L477: +.L639: add x4, x1, 128 mov w5, 65535 -.L481: +.L643: ldrh w0, [x1] cmp w0, w5 - beq .L479 + beq .L641 mov w4, -1 strh w4, [x1] add x3, x3, :lo12:.LANCHOR0 - cbz w2, .L480 + cbz w2, .L642 ldr x2, [x3,80] ldrh w1, [x2,124] sub w1, w1, #1 strh w1, [x2,124] - b .L478 -.L480: - ldrb w1, [x3,3193] + b .L640 +.L642: + ldrb w1, [x3,3241] ldr x2, [x3,80] add x1, x2, x1, lsl 1 ldrh w2, [x1,120] sub w2, w2, #1 strh w2, [x1,120] - b .L478 -.L479: + b .L640 +.L641: add x1, x1, 2 cmp x1, x4 - bne .L481 -.L478: + bne .L643 +.L640: ret .size gc_get_src_blk, .-gc_get_src_blk .align 2 @@ -3544,59 +4187,59 @@ gc_free_temp_buf: adrp x19, .LANCHOR0 str x21, [sp,32] add x2, x19, :lo12:.LANCHOR0 - ldrb w3, [x2,2847] - cbz w3, .L486 - ldrb w3, [x2,2778] + ldrb w3, [x2,2895] + cbz w3, .L648 + ldrb w3, [x2,2818] cmp w3, 1 - bhi .L486 - ldrh w4, [x2,3194] + bhi .L648 + ldrh w4, [x2,3242] mov x20, x2 - ldrb w0, [x2,3196] - add x2, x2, 728 - ldrh w1, [x2,2428] + ldrb w0, [x2,3244] + add x2, x2, 768 + ldrh w1, [x2,2436] mul w0, w4, w0 add w3, w1, 24 - ldr x4, [x2,2456] + ldr x4, [x2,2464] cmp w0, w3 csel w3, w0, w3, ls -.L487: +.L649: cmp w1, w3 - bcs .L500 + bcs .L662 uxtw x21, w1 ldrb w0, [x4,x21] cmp w0, 255 - beq .L488 + beq .L650 sbfiz x0, x0, 6, 32 add x0, x2, x0 ldrb w5, [x0,61] - cbnz w5, .L488 + cbnz w5, .L650 str x1, [x29,56] bl buf_free - adrp x0, .LANCHOR2+400 + adrp x0, .LANCHOR2 ldr x1, [x29,56] - ldr w0, [x0,#:lo12:.LANCHOR2+400] - tbz x0, 8, .L489 - ldr x2, [x20,3184] - adrp x0, .LC47 - add x0, x0, :lo12:.LC47 + ldr w0, [x0,#:lo12:.LANCHOR2] + tbz x0, 8, .L651 + ldr x2, [x20,3232] + adrp x0, .LC86 + add x0, x0, :lo12:.LC86 ldrb w2, [x2,x21] bl printk -.L489: +.L651: add x19, x19, :lo12:.LANCHOR0 mov w1, -1 - ldr x0, [x19,3184] + ldr x0, [x19,3232] strb w1, [x0,x21] - ldrb w0, [x19,2847] + ldrb w0, [x19,2895] sub w0, w0, #1 - strb w0, [x19,2847] + strb w0, [x19,2895] mov w0, 1 - b .L486 -.L488: + b .L648 +.L650: add w1, w1, 1 - b .L487 -.L500: + b .L649 +.L662: mov w0, 0 -.L486: +.L648: ldp x19, x20, [sp,16] ldr x21, [sp,32] ldp x29, x30, [sp], 64 @@ -3607,17 +4250,17 @@ gc_free_temp_buf: .type print_gc_debug_info, %function print_gc_debug_info: adrp x6, .LANCHOR0 - adrp x0, .LC48 + adrp x0, .LC87 add x6, x6, :lo12:.LANCHOR0 - add x0, x0, :lo12:.LC48 + add x0, x0, :lo12:.LC87 stp x29, x30, [sp, -16]! add x29, sp, 0 - ldrh w1, [x6,2840] - ldrh w2, [x6,2842] - ldrh w3, [x6,3154] - ldrb w4, [x6,2778] - ldrb w5, [x6,2847] - ldrh w6, [x6,2808] + ldrh w1, [x6,2888] + ldrh w2, [x6,2890] + ldrh w3, [x6,3202] + ldrb w4, [x6,2818] + ldrb w5, [x6,2895] + ldrh w6, [x6,2856] bl printk ldp x29, x30, [sp], 16 ret @@ -3633,17 +4276,17 @@ zftl_get_gc_node: add x29, sp, 0 uxth w3, w0 add x2, x2, :lo12:.LANCHOR0 - bne .L503 - ldr x0, [x2,3200] - b .L506 -.L503: + bne .L665 + ldr x0, [x2,3248] + b .L668 +.L665: cmp w1, 2 - bne .L505 - ldr x0, [x2,3208] - b .L506 -.L505: - ldr x0, [x2,3216] -.L506: + bne .L667 + ldr x0, [x2,3256] + b .L668 +.L667: + ldr x0, [x2,3264] +.L668: mov w1, w3 bl _list_get_gc_head_node.isra.5 uxth w0, w0 @@ -3669,23 +4312,23 @@ gc_search_src_blk: ldr x1, [x0,80] add x1, x1, x21, sxtw 1 ldrh w19, [x1,120] - cbnz w19, .L552 - cbnz w21, .L510 - adrp x26, .LC49 - strh w21, [x0,3224] + cbnz w19, .L714 + cbnz w21, .L672 + adrp x26, .LC88 + strh w21, [x0,3272] mov w19, w21 mov w25, w21 uxth w23, w22 mov w27, 65535 adrp x28, .LANCHOR2 - add x26, x26, :lo12:.LC49 -.L511: + add x26, x26, :lo12:.LC88 +.L673: cmp w25, w23 - bcs .L516 + bcs .L678 add x3, x20, :lo12:.LANCHOR0 mov w1, 3 str x3, [x29,96] - ldrh w2, [x3,3224] + ldrh w2, [x3,3272] str x2, [x29,104] mov w0, w2 bl zftl_get_gc_node @@ -3696,12 +4339,11 @@ gc_search_src_blk: mov w4, w1 add w2, w2, 1 uxth w2, w2 - strh w2, [x3,3224] - beq .L512 - add x0, x28, :lo12:.LANCHOR2 + strh w2, [x3,3272] + beq .L674 + ldr w0, [x28,#:lo12:.LANCHOR2] uxtw x5, w1 - ldr w0, [x0,400] - tbz x0, 8, .L513 + tbz x0, 8, .L675 ldr x3, [x3,72] mov x0, x26 str x4, [x29,96] @@ -3710,224 +4352,224 @@ gc_search_src_blk: bl printk ldr x4, [x29,96] ldr x5, [x29,104] -.L513: +.L675: add x1, x20, :lo12:.LANCHOR0 ldr x0, [x1,72] ldrh w2, [x0,x5,lsl 1] - ldrh w0, [x1,2814] + ldrh w0, [x1,2862] cmp w2, w0 - bcs .L514 + bcs .L676 mov w1, 0 mov w0, w4 mov w2, w1 bl gc_add_sblk - cbz w0, .L515 + cbz w0, .L677 add w19, w19, 1 uxth w19, w19 cmp w19, w23 - bls .L515 - b .L516 -.L514: - strh wzr, [x1,3224] - b .L516 -.L512: - strh wzr, [x3,3224] - b .L516 -.L515: + bls .L677 + b .L678 +.L676: + strh wzr, [x1,3272] + b .L678 +.L674: + strh wzr, [x3,3272] + b .L678 +.L677: add w25, w25, 1 uxth w25, w25 - b .L511 -.L516: - tbz x24, 1, .L518 + b .L673 +.L678: + tbz x24, 1, .L680 mov w26, 0 mov w27, 65535 -.L519: +.L681: cmp w26, w23 - beq .L523 + beq .L685 add x25, x20, :lo12:.LANCHOR0 mov w1, 5 - ldrh w28, [x25,3226] + ldrh w28, [x25,3274] mov w0, w28 add w28, w28, 1 bl zftl_get_gc_node uxth w1, w0 - strh w28, [x25,3226] + strh w28, [x25,3274] cmp w1, w27 - beq .L520 + beq .L682 ubfiz x1, x1, 1, 16 ldr x2, [x25,72] ldrh w2, [x2,x1] - ldrh w1, [x25,2816] + ldrh w1, [x25,2864] cmp w2, w1 - bcs .L521 + bcs .L683 mov w1, 0 mov w2, w1 bl gc_add_sblk - cbz w0, .L522 + cbz w0, .L684 add w19, w19, 1 uxth w19, w19 cmp w19, w23 - bls .L522 - b .L525 -.L521: - strh wzr, [x25,3226] - b .L523 -.L520: - strh wzr, [x25,3224] - b .L523 -.L522: + bls .L684 + b .L687 +.L683: + strh wzr, [x25,3274] + b .L685 +.L682: + strh wzr, [x25,3272] + b .L685 +.L684: add w26, w26, 1 uxth w26, w26 - b .L519 -.L523: + b .L681 +.L685: cmp w19, w23 - bcs .L525 + bcs .L687 add x1, x20, :lo12:.LANCHOR0 - ldrh w0, [x1,3228] - ldrb w4, [x1,3196] + ldrh w0, [x1,3276] + ldrb w4, [x1,3244] lsr w3, w0, 3 - ldrh w2, [x1,2816] + ldrh w2, [x1,2864] mul w0, w0, w4 sub w0, w0, w3 cmp w2, w0 - bge .L518 + bge .L680 add w2, w3, w2 - strh w2, [x1,2816] - b .L518 -.L525: + strh w2, [x1,2864] + b .L680 +.L687: add x1, x20, :lo12:.LANCHOR0 - ldrh w2, [x1,2816] - ldrh w0, [x1,3228] + ldrh w2, [x1,2864] + ldrh w0, [x1,3276] cmp w2, w0 - bls .L518 + bls .L680 sub w0, w2, w0, lsr 3 - strh w0, [x1,2816] -.L518: - tbz x24, 0, .L526 + strh w0, [x1,2864] +.L680: + tbz x24, 0, .L688 cmp w19, w23 - bcs .L526 + bcs .L688 mov w25, 64 mov w27, 65535 -.L530: +.L692: add x26, x20, :lo12:.LANCHOR0 - ldrh w28, [x26,3230] - ldr x0, [x26,3208] + ldrh w28, [x26,3278] + ldr x0, [x26,3256] mov w1, w28 add w28, w28, 1 bl _list_get_gc_head_node.isra.5 - strh w28, [x26,3230] + strh w28, [x26,3278] cmp w27, w0, uxth - beq .L527 + beq .L689 mov w1, 0 mov w2, w1 bl gc_add_sblk - cbz w0, .L528 + cbz w0, .L690 add w19, w19, 1 uxth w19, w19 cmp w19, w23 - bcc .L528 - b .L531 -.L527: - strh wzr, [x26,3230] - b .L529 -.L528: + bcc .L690 + b .L693 +.L689: + strh wzr, [x26,3278] + b .L691 +.L690: sub w25, w25, #1 uxth w25, w25 - cbnz w25, .L530 -.L529: + cbnz w25, .L692 +.L691: cmp w19, w23 - bcs .L531 + bcs .L693 add x20, x20, :lo12:.LANCHOR0 - ldrh w0, [x20,2814] - ldrh w1, [x20,3228] + ldrh w0, [x20,2862] + ldrh w1, [x20,3276] cmp w1, w0 - bls .L526 + bls .L688 add w0, w0, 8 - b .L609 -.L531: + b .L771 +.L693: add x20, x20, :lo12:.LANCHOR0 - ldrh w1, [x20,3228] - ldrh w0, [x20,2814] + ldrh w1, [x20,3276] + ldrh w0, [x20,2862] cmp w0, w1, lsr 1 - bls .L526 + bls .L688 sub w0, w0, #8 -.L609: - strh w0, [x20,2814] - b .L526 -.L510: +.L771: + strh w0, [x20,2862] + b .L688 +.L672: and w1, w24, 1 - strh w19, [x0,3230] + strh w19, [x0,3278] str w1, [x29,104] - tbz x24, 0, .L532 - ldrh w2, [x0,3232] - ldrh w1, [x0,2796] + tbz x24, 0, .L694 + ldrh w2, [x0,3280] + ldrh w1, [x0,2836] cmp w1, w2, lsr 1 - bcc .L555 - ldrh w0, [x0,2794] + bcc .L717 + ldrh w0, [x0,2834] cmp w0, w1 - bls .L534 -.L555: + bls .L696 +.L717: mov w23, 64 mov w26, 65535 uxth w27, w22 -.L586: +.L748: add x28, x20, :lo12:.LANCHOR0 - ldrh w25, [x28,3230] - ldr x0, [x28,3208] + ldrh w25, [x28,3278] + ldr x0, [x28,3256] mov w1, w25 bl _list_get_gc_head_node.isra.5 cmp w26, w0, uxth add w2, w25, 1 - strh w2, [x28,3230] - beq .L535 + strh w2, [x28,3278] + beq .L697 mov w1, 0 mov w2, w21 bl gc_add_sblk - cbz w0, .L536 + cbz w0, .L698 add w19, w19, 1 uxth w19, w19 cmp w19, w27 - bcc .L536 - b .L534 -.L535: - strh wzr, [x28,3230] - b .L534 -.L536: + bcc .L698 + b .L696 +.L697: + strh wzr, [x28,3278] + b .L696 +.L698: sub w23, w23, #1 uxth w23, w23 - cbnz w23, .L586 -.L534: + cbnz w23, .L748 +.L696: add x0, x20, :lo12:.LANCHOR0 - ldrh w2, [x0,3232] - ldrh w1, [x0,2796] + ldrh w2, [x0,3280] + ldrh w1, [x0,2836] cmp w1, w2, lsr 1 - bls .L532 - strh wzr, [x0,3224] + bls .L694 + strh wzr, [x0,3272] mov w23, 64 mov w26, 65535 uxth w27, w22 -.L538: +.L700: add x25, x20, :lo12:.LANCHOR0 mov w1, 3 - ldrh w28, [x25,3224] + ldrh w28, [x25,3272] mov w0, w28 add w28, w28, 1 bl zftl_get_gc_node - strh w28, [x25,3224] + strh w28, [x25,3272] cmp w26, w0, uxth - bne .L610 -.L532: - tbz x24, 1, .L539 + bne .L772 +.L694: + tbz x24, 1, .L701 add x0, x20, :lo12:.LANCHOR0 mov w25, 64 mov w26, 0 mov w27, 65535 uxth w28, w22 - strh wzr, [x0,3226] -.L544: + strh wzr, [x0,3274] +.L706: add x23, x20, :lo12:.LANCHOR0 mov w1, 5 - ldrh w2, [x23,3226] + ldrh w2, [x23,3274] str x2, [x29,96] mov w0, w2 bl zftl_get_gc_node @@ -3935,137 +4577,137 @@ gc_search_src_blk: ldr x2, [x29,96] cmp w1, w27 add w2, w2, 1 - strh w2, [x23,3226] - beq .L540 + strh w2, [x23,3274] + beq .L702 ubfiz x1, x1, 1, 16 ldr x2, [x23,72] ldrh w2, [x2,x1] - ldrh w1, [x23,2810] + ldrh w1, [x23,2858] cmp w2, w1 - bcs .L541 + bcs .L703 mov w1, 0 mov w2, w21 bl gc_add_sblk - cbz w0, .L542 + cbz w0, .L704 add w19, w19, 1 add w26, w26, 1 uxth w19, w19 uxth w26, w26 cmp w19, w28 - bcc .L542 - b .L543 -.L541: - strh wzr, [x23,3226] - b .L543 -.L540: - strh wzr, [x23,3224] - b .L543 -.L542: + bcc .L704 + b .L705 +.L703: + strh wzr, [x23,3274] + b .L705 +.L702: + strh wzr, [x23,3272] + b .L705 +.L704: sub w3, w25, #1 uxth w25, w3 - cbnz w25, .L544 -.L543: + cbnz w25, .L706 +.L705: cmp w19, w22 - bcc .L545 - cbnz w26, .L546 + bcc .L707 + cbnz w26, .L708 add x0, x20, :lo12:.LANCHOR0 - ldrh w1, [x0,2798] - ldrh w0, [x0,3234] + ldrh w1, [x0,2838] + ldrh w0, [x0,3282] cmp w1, w0 - bls .L546 -.L545: + bls .L708 +.L707: add x0, x20, :lo12:.LANCHOR0 - ldrb w3, [x0,3196] - ldrh w2, [x0,3194] - ldrh w1, [x0,2810] + ldrb w3, [x0,3244] + ldrh w2, [x0,3242] + ldrh w1, [x0,2858] mul w2, w2, w3 - ldrh w3, [x0,3228] + ldrh w3, [x0,3276] sub w2, w2, w3, lsr 3 cmp w1, w2 - bge .L539 + bge .L701 add w1, w1, 4 - b .L608 -.L546: + b .L770 +.L708: add x0, x20, :lo12:.LANCHOR0 - ldrh w2, [x0,3228] - ldrb w3, [x0,3196] - ldrh w1, [x0,2810] + ldrh w2, [x0,3276] + ldrb w3, [x0,3244] + ldrh w1, [x0,2858] mul w2, w2, w3 cmp w1, w2 - ble .L539 + ble .L701 sub w1, w1, #4 -.L608: - strh w1, [x0,2810] -.L539: +.L770: + strh w1, [x0,2858] +.L701: ldr w0, [x29,104] - cbz w0, .L526 + cbz w0, .L688 add x0, x20, :lo12:.LANCHOR0 mov w23, 64 mov w25, 65535 uxth w26, w22 - strh wzr, [x0,3226] -.L550: + strh wzr, [x0,3274] +.L712: add x27, x20, :lo12:.LANCHOR0 mov w1, 3 - ldrh w0, [x27,3226] + ldrh w0, [x27,3274] bl zftl_get_gc_node uxth w1, w0 cmp w1, w25 - beq .L547 + beq .L709 ldr x2, [x27,72] ubfiz x1, x1, 1, 16 ldrh w1, [x2,x1] - ldrh w2, [x27,2812] + ldrh w2, [x27,2860] cmp w2, w1 - bls .L557 + bls .L719 cmp w1, 2 - bhi .L548 -.L557: + bhi .L710 +.L719: mov w1, 0 mov w2, w21 bl gc_add_sblk - cbz w0, .L548 + cbz w0, .L710 add w19, w19, 1 uxth w19, w19 cmp w19, w26 - bcs .L547 -.L548: + bcs .L709 +.L710: sub w23, w23, #1 uxth w23, w23 - cbnz w23, .L550 -.L547: + cbnz w23, .L712 +.L709: cmp w19, w22 add x20, x20, :lo12:.LANCHOR0 - bcs .L551 - ldrh w1, [x20,3228] - ldrh w0, [x20,2812] + bcs .L713 + ldrh w1, [x20,3276] + ldrh w0, [x20,2860] cmp w0, w1, lsr 1 - bls .L526 + bls .L688 sub w0, w0, #4 - strh w0, [x20,2812] - b .L526 -.L551: - ldrh w0, [x20,3228] - ldrb w2, [x20,3196] - ldrh w1, [x20,2812] + strh w0, [x20,2860] + b .L688 +.L713: + ldrh w0, [x20,3276] + ldrb w2, [x20,3244] + ldrh w1, [x20,2860] mul w0, w0, w2 sub w0, w0, #32 cmp w1, w0 - bge .L526 + bge .L688 add w1, w1, 4 - strh w1, [x20,2812] -.L526: - adrp x0, .LANCHOR2+400 - ldr w0, [x0,#:lo12:.LANCHOR2+400] - tbz x0, 8, .L552 - adrp x0, .LC50 + strh w1, [x20,2860] +.L688: + adrp x0, .LANCHOR2 + ldr w0, [x0,#:lo12:.LANCHOR2] + tbz x0, 8, .L714 + adrp x0, .LC89 mov w1, w21 - add x0, x0, :lo12:.LC50 + add x0, x0, :lo12:.LC89 mov w2, w24 mov w3, w19 mov w4, w22 bl printk -.L552: +.L714: mov w0, w19 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -4074,20 +4716,20 @@ gc_search_src_blk: ldp x27, x28, [sp,80] ldp x29, x30, [sp], 112 ret -.L610: +.L772: mov w1, 0 mov w2, w21 bl gc_add_sblk - cbz w0, .L537 + cbz w0, .L699 add w19, w19, 1 uxth w19, w19 cmp w19, w27 - bcs .L532 -.L537: + bcs .L694 +.L699: sub w23, w23, #1 uxth w23, w23 - cbnz w23, .L538 - b .L532 + cbnz w23, .L700 + b .L694 .size gc_search_src_blk, .-gc_search_src_blk .align 2 .global zftl_insert_free_list @@ -4102,20 +4744,20 @@ zftl_insert_free_list: add x0, x0, x1, uxth 2 ldrb w0, [x0,2] ands w0, w0, 24 - bne .L612 - add x0, x2, 3240 - add x2, x2, 2788 - b .L615 -.L612: + bne .L774 + add x0, x2, 3288 + add x2, x2, 2828 + b .L777 +.L774: cmp w0, 16 - bne .L614 - add x0, x2, 3248 - add x2, x2, 2790 - b .L615 -.L614: - add x0, x2, 3256 - add x2, x2, 2792 -.L615: + bne .L776 + add x0, x2, 3296 + add x2, x2, 2830 + b .L777 +.L776: + add x0, x2, 3304 + add x2, x2, 2832 +.L777: bl _insert_free_list ldp x29, x30, [sp], 16 ret @@ -4134,24 +4776,24 @@ zftl_insert_data_list: ldrb w3, [x0,2] and w3, w3, 224 cmp w3, 64 - bne .L617 - add x0, x2, 3208 - add x2, x2, 2794 - b .L620 -.L617: + bne .L779 + add x0, x2, 3256 + add x2, x2, 2834 + b .L782 +.L779: cmp w3, 96 - bne .L619 - add x0, x2, 3216 - add x2, x2, 2796 - b .L620 -.L619: + bne .L781 + add x0, x2, 3264 + add x2, x2, 2836 + b .L782 +.L781: cmp w3, 160 - bne .L616 - add x0, x2, 3200 - add x2, x2, 2798 -.L620: + bne .L778 + add x0, x2, 3248 + add x2, x2, 2838 +.L782: bl _insert_data_list -.L616: +.L778: ldp x29, x30, [sp], 16 ret .size zftl_insert_data_list, .-zftl_insert_data_list @@ -4168,45 +4810,45 @@ zftl_get_free_sblk: cmp w21, 5 adrp x19, .LANCHOR0 add x2, x19, :lo12:.LANCHOR0 - bne .L622 - ldrh w1, [x2,2790] - ldrh w0, [x2,2792] + bne .L784 + ldrh w1, [x2,2830] + ldrh w0, [x2,2832] cmp w1, w0 - bls .L623 - add x0, x2, 3248 + bls .L785 + add x0, x2, 3296 mov w1, w4 - add x2, x2, 2790 - b .L626 -.L623: + add x2, x2, 2830 + b .L788 +.L785: add x2, x19, :lo12:.LANCHOR0 mov w1, w4 - add x0, x2, 3256 - add x2, x2, 2792 - b .L626 -.L622: - ldrh w1, [x2,2788] - ldrh w0, [x2,2792] + add x0, x2, 3304 + add x2, x2, 2832 + b .L788 +.L784: + ldrh w1, [x2,2828] + ldrh w0, [x2,2832] cmp w1, w0 - bls .L623 - add x0, x2, 3240 + bls .L785 + add x0, x2, 3288 mov w1, w4 - add x2, x2, 2788 -.L626: + add x2, x2, 2828 +.L788: bl _list_pop_index_node uxth w20, w0 mov w0, 65535 cmp w20, w0 - bne .L625 + bne .L787 add x19, x19, :lo12:.LANCHOR0 - adrp x0, .LC51 - add x0, x0, :lo12:.LC51 + adrp x0, .LC90 + add x0, x0, :lo12:.LC90 mov w1, w20 mov w2, w21 - ldr x3, [x19,3240] - ldrh w4, [x19,2788] - ldrh w5, [x19,2792] + ldr x3, [x19,3288] + ldrh w4, [x19,2828] + ldrh w5, [x19,2832] bl printk -.L625: +.L787: mov w0, w20 ldr x21, [sp,32] ldp x19, x20, [sp,16] @@ -4227,24 +4869,24 @@ zftl_remove_data_node: ldrb w3, [x0,2] and w3, w3, 224 cmp w3, 64 - bne .L628 - add x0, x2, 3208 - add x2, x2, 2794 - b .L631 -.L628: + bne .L790 + add x0, x2, 3256 + add x2, x2, 2834 + b .L793 +.L790: cmp w3, 96 - bne .L630 - add x0, x2, 3216 - add x2, x2, 2796 - b .L631 -.L630: + bne .L792 + add x0, x2, 3264 + add x2, x2, 2836 + b .L793 +.L792: cmp w3, 160 - bne .L627 - add x0, x2, 3200 - add x2, x2, 2798 -.L631: + bne .L789 + add x0, x2, 3248 + add x2, x2, 2838 +.L793: bl _list_remove_node -.L627: +.L789: ldp x29, x30, [sp], 16 ret .size zftl_remove_data_node, .-zftl_remove_data_node @@ -4261,20 +4903,20 @@ zftl_remove_free_node: add x0, x0, x1, uxth 2 ldrb w0, [x0,2] ands w0, w0, 24 - bne .L633 - add x0, x2, 3240 - add x2, x2, 2788 - b .L636 -.L633: + bne .L795 + add x0, x2, 3288 + add x2, x2, 2828 + b .L798 +.L795: cmp w0, 16 - bne .L635 - add x0, x2, 3248 - add x2, x2, 2790 - b .L636 -.L635: - add x0, x2, 3256 - add x2, x2, 2792 -.L636: + bne .L797 + add x0, x2, 3296 + add x2, x2, 2830 + b .L798 +.L797: + add x0, x2, 3304 + add x2, x2, 2832 +.L798: bl _list_remove_node ldp x29, x30, [sp], 16 ret @@ -4293,24 +4935,24 @@ zftl_list_update_data_list: ldrb w3, [x0,2] and w3, w3, 224 cmp w3, 64 - bne .L638 - add x0, x2, 3208 - add x2, x2, 2794 - b .L641 -.L638: + bne .L800 + add x0, x2, 3256 + add x2, x2, 2834 + b .L803 +.L800: cmp w3, 96 - bne .L640 - add x0, x2, 3216 - add x2, x2, 2796 - b .L641 -.L640: + bne .L802 + add x0, x2, 3264 + add x2, x2, 2836 + b .L803 +.L802: cmp w3, 160 - bne .L637 - add x0, x2, 3200 - add x2, x2, 2798 -.L641: + bne .L799 + add x0, x2, 3248 + add x2, x2, 2838 +.L803: bl _list_update_data_list -.L637: +.L799: ldp x29, x30, [sp], 16 ret .size zftl_list_update_data_list, .-zftl_list_update_data_list @@ -4323,25 +4965,25 @@ print_list_info: add x29, sp, 32 stp x19, x20, [sp,48] mov x19, x0 - adrp x0, .LC52 + adrp x0, .LC91 stp x21, x22, [sp,64] stp x23, x24, [sp,80] stp x25, x26, [sp,96] - add x0, x0, :lo12:.LC52 + add x0, x0, :lo12:.LC91 ldrh w2, [x1] ldr x1, [x19] bl printk ldr x19, [x19] - cbz x19, .L642 + cbz x19, .L804 mov x22, -6148914691236517206 - adrp x23, .LC53 + adrp x23, .LC92 mov w20, 0 adrp x25, .LANCHOR0 add x22, x22, 1 - add x23, x23, :lo12:.LC53 + add x23, x23, :lo12:.LC92 mov w26, 65535 mov w24, 6 -.L645: +.L807: add x21, x25, :lo12:.LANCHOR0 ldrh w3, [x19] ldrh w4, [x19,2] @@ -4372,14 +5014,14 @@ print_list_info: bl printk ldrh w19, [x19] cmp w19, w26 - beq .L642 + beq .L804 add w20, w20, 1 ldr x0, [x21,8] umull x19, w19, w24 cmp w20, 33 add x19, x0, x19 - bne .L645 -.L642: + bne .L807 +.L804: sub sp, x29, #32 ldp x19, x20, [sp,48] ldp x21, x22, [sp,64] @@ -4398,46 +5040,29 @@ dump_all_list_info: str x19, [sp,16] adrp x19, .LANCHOR0 add x19, x19, :lo12:.LANCHOR0 - add x0, x19, 3240 - add x1, x19, 2788 + add x0, x19, 3288 + add x1, x19, 2828 bl print_list_info - add x0, x19, 3248 - add x1, x19, 2790 + add x0, x19, 3296 + add x1, x19, 2830 + bl print_list_info + add x0, x19, 3304 + add x1, x19, 2832 bl print_list_info add x0, x19, 3256 - add x1, x19, 2792 + add x1, x19, 2834 bl print_list_info - add x0, x19, 3208 - add x1, x19, 2794 + add x0, x19, 3264 + add x1, x19, 2836 bl print_list_info - add x0, x19, 3216 - add x1, x19, 2796 - bl print_list_info - add x0, x19, 3200 - add x1, x19, 2798 + add x0, x19, 3248 + add x1, x19, 2838 bl print_list_info ldr x19, [sp,16] ldp x29, x30, [sp], 32 ret .size dump_all_list_info, .-dump_all_list_info .align 2 - .global zftl_proc_ftl_read - .type zftl_proc_ftl_read, %function -zftl_proc_ftl_read: - stp x29, x30, [sp, -32]! - add x29, sp, 0 - str x19, [sp,16] - bl ftl_print_info_to_buf - mov w19, w0 - bl dump_all_list_info - mov w0, 200 - bl msleep - mov w0, w19 - ldr x19, [sp,16] - ldp x29, x30, [sp], 32 - ret - .size zftl_proc_ftl_read, .-zftl_proc_ftl_read - .align 2 .global ftl_get_blk_list_in_sblk .type ftl_get_blk_list_in_sblk, %function ftl_get_blk_list_in_sblk: @@ -4450,46 +5075,46 @@ ftl_get_blk_list_in_sblk: ldrb w11, [x2,3] mov w2, 0 mov w6, w2 -.L652: +.L813: add x8, x7, :lo12:.LANCHOR0 - ldrb w3, [x8,3196] + ldrb w3, [x8,3244] cmp w6, w3 - bge .L658 + bge .L819 asr w3, w11, w6 - tbnz x3, 0, .L653 - ldrb w5, [x8,3264] + tbnz x3, 0, .L814 + ldrb w5, [x8,3312] sbfiz x10, x2, 1, 32 - ldrh w3, [x8,3266] + ldrh w3, [x8,3314] sdiv w9, w6, w5 sub w3, w12, w3 lsl w3, w9, w3 madd w3, w0, w5, w3 uxth w4, w3 strh w4, [x1,x10] - ldrb w3, [x8,3264] + ldrb w3, [x8,3312] cmp w3, 1 - bls .L654 + bls .L815 sub w3, w3, #1 and w3, w6, w3 add w3, w4, w3 strh w3, [x1,x10] -.L654: +.L815: add w2, w2, 1 -.L653: +.L814: add w6, w6, 1 - b .L652 -.L658: + b .L813 +.L819: mov w0, w2 mov w4, -1 -.L656: +.L817: add x3, x7, :lo12:.LANCHOR0 - ldrb w3, [x3,3196] + ldrb w3, [x3,3244] cmp w2, w3 - bge .L659 + bge .L820 strh w4, [x1,w2,sxtw 1] add w2, w2, 1 - b .L656 -.L659: + b .L817 +.L820: ret .size ftl_get_blk_list_in_sblk, .-ftl_get_blk_list_in_sblk .align 2 @@ -4521,150 +5146,145 @@ ftl_free_sblk: .global gc_free_src_blk .type gc_free_src_blk, %function gc_free_src_blk: - stp x29, x30, [sp, -96]! + stp x29, x30, [sp, -80]! add x29, sp, 0 - stp x21, x22, [sp,32] - adrp x21, .LANCHOR0 - str x27, [sp,80] stp x23, x24, [sp,48] - add x21, x21, :lo12:.LANCHOR0 - adrp x23, .LC54 + stp x21, x22, [sp,32] + adrp x23, .LANCHOR0 + adrp x21, .LANCHOR1 + add x23, x23, :lo12:.LANCHOR0 + add x21, x21, :lo12:.LANCHOR1 stp x19, x20, [sp,16] stp x25, x26, [sp,64] mov w20, 0 - add x22, x21, 2840 - add x23, x23, :lo12:.LC54 - adrp x24, .LANCHOR2 -.L662: - ldrh w0, [x22,56] - adrp x26, .LANCHOR0 + add x24, x23, 2888 + add x21, x21, 1344 +.L823: + ldrh w0, [x24,56] + adrp x25, .LANCHOR0 cmp w0, w20 - bls .L698 - add x0, x22, x20, sxtw 1 - ldrh w25, [x0,58] - ldr x0, [x21,72] - lsl x27, x25, 1 - mov x19, x25 - ldrh w2, [x0,x27] - cbz w2, .L663 - mov x0, x23 - mov w1, w25 + bls .L861 + add x0, x24, x20, sxtw 1 + ldrh w22, [x0,58] + ldr x0, [x23,72] + lsl x26, x22, 1 + mov x19, x22 + ldrh w2, [x0,x26] + cbz w2, .L824 + adrp x0, .LC93 + mov w1, w22 + add x0, x0, :lo12:.LC93 bl printk -.L663: - add x0, x26, :lo12:.LANCHOR0 +.L824: + add x0, x25, :lo12:.LANCHOR0 ldr x1, [x0,72] - ldrh w1, [x1,x27] - cbnz w1, .L664 + ldrh w1, [x1,x26] + cbnz w1, .L825 ldr x0, [x0,64] - add x25, x0, x25, lsl 2 - add x0, x24, :lo12:.LANCHOR2 - ldr w0, [x0,400] - tbz x0, 8, .L665 - ldrb w2, [x25,2] - adrp x0, .LC55 - add x0, x0, :lo12:.LC55 + add x22, x0, x22, lsl 2 + adrp x0, .LANCHOR2 + ldr w0, [x0,#:lo12:.LANCHOR2] + tbz x0, 8, .L826 + ldrb w2, [x22,2] + adrp x0, .LC94 + add x0, x0, :lo12:.LC94 mov w1, w19 ubfx x2, x2, 5, 3 bl printk -.L665: - ldrb w0, [x25,2] +.L826: + ldrb w0, [x22,2] tst w0, 192 - beq .L679 + beq .L839 and w0, w0, 224 cmp w0, 224 - bne .L666 -.L679: - adrp x1, .LANCHOR1 + bne .L827 +.L839: adrp x0, .LC0 - add x1, x1, :lo12:.LANCHOR1 + mov x1, x21 add x0, x0, :lo12:.LC0 - add x1, x1, 1088 mov w2, 770 bl printk -.L668: - b .L668 -.L666: +.L827: mov w0, w19 - add x26, x26, :lo12:.LANCHOR0 + add x25, x25, :lo12:.LANCHOR0 bl ftl_free_sblk - ldr x2, [x26,80] - ldrh w0, [x2,124] - cbz w0, .L669 - mov x1, 0 -.L671: - add x4, x2, x1, lsl 1 - mov w3, w1 + ldr x2, [x25,80] + ldrh w1, [x2,124] + cbz w1, .L829 + mov x0, 0 +.L831: + add x4, x2, x0, lsl 1 + mov w3, w0 ldrh w4, [x4,392] cmp w4, w19 - bne .L670 - add x1, x2, x3, sxtw 1 + bne .L830 + add x0, x2, x3, sxtw 1 mov w3, -1 - strh w3, [x1,392] - sub w0, w0, #1 - strh w0, [x2,124] - b .L669 -.L670: - add x1, x1, 1 - cmp x1, 64 - bne .L671 -.L669: - ldrh w0, [x2,120] - cbz w0, .L672 - mov x1, 0 -.L674: - add x4, x2, x1, lsl 1 - mov w3, w1 + strh w3, [x0,392] + sub w1, w1, #1 + strh w1, [x2,124] + b .L829 +.L830: + add x0, x0, 1 + cmp x0, 64 + bne .L831 +.L829: + ldrh w1, [x2,120] + cbz w1, .L832 + mov x0, 0 +.L834: + add x4, x2, x0, lsl 1 + mov w3, w0 ldrh w4, [x4,136] cmp w4, w19 - bne .L673 - add x1, x2, x3, sxtw 1 + bne .L833 + add x0, x2, x3, sxtw 1 mov w3, -1 - strh w3, [x1,136] - sub w0, w0, #1 - strh w0, [x2,120] - b .L672 -.L673: - add x1, x1, 1 - cmp x1, 64 - bne .L674 -.L672: - ldrh w0, [x2,122] - cbz w0, .L675 - mov x1, 0 -.L677: - add x4, x2, x1, lsl 1 - mov w3, w1 + strh w3, [x0,136] + sub w1, w1, #1 + strh w1, [x2,120] + b .L832 +.L833: + add x0, x0, 1 + cmp x0, 64 + bne .L834 +.L832: + ldrh w1, [x2,122] + cbz w1, .L835 + mov x0, 0 +.L837: + add x4, x2, x0, lsl 1 + mov w3, w0 ldrh w4, [x4,264] cmp w4, w19 - bne .L676 - add x1, x2, x3, sxtw 1 + bne .L836 + add x0, x2, x3, sxtw 1 mov w3, -1 - strh w3, [x1,264] - sub w0, w0, #1 - strh w0, [x2,122] - b .L675 -.L676: - add x1, x1, 1 - cmp x1, 64 - bne .L677 - b .L675 -.L664: + strh w3, [x0,264] + sub w1, w1, #1 + strh w1, [x2,122] + b .L835 +.L836: + add x0, x0, 1 + cmp x0, 64 + bne .L837 + b .L835 +.L825: mov w0, w19 mov w1, 1 mov w2, 0 bl gc_add_sblk -.L675: +.L835: add w20, w20, 1 uxth w20, w20 - b .L662 -.L698: - strh wzr, [x22,56] + b .L823 +.L861: + strh wzr, [x24,56] ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] ldp x25, x26, [sp,64] - ldr x27, [sp,80] - ldp x29, x30, [sp], 96 + ldp x29, x30, [sp], 80 ret .size gc_free_src_blk, .-gc_free_src_blk .align 2 @@ -4681,27 +5301,27 @@ ftl_erase_phy_blk: stp x19, x20, [sp,16] mov w4, 1 mov w21, w1 - ldrh w19, [x5,3266] + ldrh w19, [x5,3314] mov x20, x3 sub w19, w0, w19 - ldrb w0, [x5,3268] + ldrb w0, [x5,3316] asr w22, w2, w19 lsl w19, w4, w19 sub w19, w19, #1 and w19, w19, w2 sxth w19, w19 - cbz w0, .L700 - ldrh w2, [x5,3270] + cbz w0, .L863 + ldrh w2, [x5,3318] cmp w1, wzr mov w0, w22 cset w1, eq mul w2, w19, w2 bl flash_erase_block_en -.L700: +.L863: add x3, x20, :lo12:.LANCHOR0 mov w1, w21 mov w0, w22 - ldrh w2, [x3,3270] + ldrh w2, [x3,3318] mul w2, w19, w2 bl flash_erase_block_en ldp x19, x20, [sp,16] @@ -4728,93 +5348,93 @@ ftl_erase_sblk: mov w19, 0 add x0, x0, x20 ldrb w25, [x0,3] -.L705: +.L868: add x2, x23, :lo12:.LANCHOR0 - ldrb w0, [x2,3272] + ldrb w0, [x2,3320] cmp w19, w0 - bge .L716 - ldrb w3, [x2,3264] + bge .L879 + ldrb w3, [x2,3312] mov w21, 0 - ldrh w2, [x2,3270] + ldrh w2, [x2,3318] mov w1, w21 sub w4, w3, #1 mul w6, w19, w3 mul w5, w24, w3 -.L717: +.L880: cmp w1, w3 - bge .L730 + bge .L893 add w0, w1, w6 asr w0, w25, w0 - tbnz x0, 0, .L706 + tbnz x0, 0, .L869 and w0, w1, w4 add x7, x29, 80 add w0, w5, w0 mul w0, w0, w2 str w0, [x7,w21,sxtw 2] add w21, w21, 1 -.L706: +.L869: add w1, w1, 1 - b .L717 -.L730: + b .L880 +.L893: cmp w3, 4 - bne .L729 + bne .L892 mov x26, 0 -.L708: +.L871: cmp w21, w26 - ble .L711 + ble .L874 add x2, x29, 80 mov w0, w19 mov w1, w22 ldr w2, [x2,x26,lsl 2] add x26, x26, 1 bl flash_erase_block_en - b .L708 -.L729: + b .L871 +.L892: cmp w21, 2 - bne .L712 + bne .L875 add x0, x23, :lo12:.LANCHOR0 - ldrb w0, [x0,3268] - cbz w0, .L713 + ldrb w0, [x0,3316] + cbz w0, .L876 cmp w22, wzr ldr w2, [x29,80] ldr w3, [x29,84] mov w0, w19 cset w1, eq bl flash_erase_duplane_block -.L713: +.L876: ldr w2, [x29,80] mov w0, w19 ldr w3, [x29,84] mov w1, w22 bl flash_erase_duplane_block - b .L711 -.L712: + b .L874 +.L875: cmp w21, 1 - bne .L711 + bne .L874 add x0, x23, :lo12:.LANCHOR0 - ldrb w0, [x0,3268] - cbz w0, .L715 + ldrb w0, [x0,3316] + cbz w0, .L878 cmp w22, wzr ldr w2, [x29,80] mov w0, w19 cset w1, eq bl flash_erase_block_en -.L715: +.L878: ldr w2, [x29,80] mov w0, w19 mov w1, w22 bl flash_erase_block_en -.L711: +.L874: add w19, w19, 1 - b .L705 -.L716: - cbnz w22, .L718 + b .L868 +.L879: + cbnz w22, .L881 ldr x1, [x2,64] ldrh w0, [x1,x20] add w3, w0, 1 bfi w0, w3, 0, 11 strh w0, [x1,x20] - ldr x0, [x2,2800] + ldr x0, [x2,2848] ldr w1, [x0,84] ldrh w3, [x0,96] add w1, w1, 1 @@ -4824,17 +5444,17 @@ ftl_erase_sblk: ubfx x1, x1, 0, 11 uxth w2, w1 cmp w3, w2 - bge .L720 + bge .L883 strh w1, [x0,96] - b .L720 -.L718: + b .L883 +.L881: ldr x3, [x2,64] ldr w0, [x3,x20] ubfx x1, x0, 11, 8 add w1, w1, 1 bfi w0, w1, 11, 8 str w0, [x3,x20] - ldr x0, [x2,2800] + ldr x0, [x2,2848] ldr w1, [x0,80] add w1, w1, 1 str w1, [x0,80] @@ -4843,9 +5463,9 @@ ftl_erase_sblk: ldr w1, [x1,x20] ubfx x1, x1, 11, 8 cmp w2, w1, uxtb - bcs .L720 + bcs .L883 strh w1, [x0,98] -.L720: +.L883: mov w0, 0 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -4858,98 +5478,112 @@ ftl_erase_sblk: .global ftl_alloc_sys_blk .type ftl_alloc_sys_blk, %function ftl_alloc_sys_blk: - adrp x0, .LANCHOR0+2800 - stp x29, x30, [sp, -16]! + stp x29, x30, [sp, -32]! + adrp x0, .LANCHOR0 add x29, sp, 0 - ldr x1, [x0,#:lo12:.LANCHOR0+2800] - ldrh w0, [x1,136] - cmp w0, 63 - bls .L732 + add x1, x0, :lo12:.LANCHOR0 + str x19, [sp,16] + mov x19, x0 + ldr x1, [x1,2848] + ldrh w2, [x1,136] + cmp w2, 63 + bls .L895 strh wzr, [x1,136] -.L732: - ldrh w3, [x1,112] - mov w5, 65535 - cbnz w3, .L738 +.L895: + ldrh w0, [x1,112] + cbnz w0, .L896 adrp x1, .LANCHOR1 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR1 add x0, x0, :lo12:.LC0 - add x1, x1, 1104 - mov w2, 988 + add x1, x1, 1360 + mov w2, 994 bl printk -.L734: - b .L734 -.L737: - sxtw x4, w2 - add x4, x4, 80 - ldrh w0, [x1,x4,lsl 1] - cmp w0, w5 - bne .L740 - add w2, w2, 1 -.L735: - cmp w2, 63 - ble .L737 - strh wzr, [x1,136] -.L738: +.L896: + add x0, x19, :lo12:.LANCHOR0 + mov w4, 65535 + ldr x1, [x0,2848] +.L900: ldrh w2, [x1,136] - b .L735 -.L740: - mov w5, -1 - strh w5, [x1,x4,lsl 1] +.L897: + cmp w2, 63 + bgt .L903 + sxtw x3, w2 + add x3, x3, 80 + ldrh w0, [x1,x3,lsl 1] + cmp w0, w4 + bne .L902 + add w2, w2, 1 + b .L897 +.L903: + strh wzr, [x1,136] + b .L900 +.L902: + mov w4, -1 + strh w4, [x1,x3,lsl 1] strh w2, [x1,136] - sub w3, w3, #1 - strh w3, [x1,112] - ldp x29, x30, [sp], 16 + ldrh w2, [x1,112] + sub w2, w2, #1 + strh w2, [x1,112] + ldr x19, [sp,16] + ldp x29, x30, [sp], 32 ret .size ftl_alloc_sys_blk, .-ftl_alloc_sys_blk .align 2 .global ftl_free_sys_blk .type ftl_free_sys_blk, %function ftl_free_sys_blk: - adrp x1, .LANCHOR0+2800 - uxth w0, w0 - stp x29, x30, [sp, -16]! + stp x29, x30, [sp, -32]! + adrp x1, .LANCHOR0 add x29, sp, 0 - ldr x1, [x1,#:lo12:.LANCHOR0+2800] - ldrh w2, [x1,138] - cmp w2, 63 - bls .L742 - strh wzr, [x1,138] -.L742: - ldrh w3, [x1,112] - mov w5, 65535 - cmp w3, 63 - bls .L748 + stp x19, x20, [sp,16] + uxth w20, w0 + add x0, x1, :lo12:.LANCHOR0 + mov x19, x1 + ldr x2, [x0,2848] + ldrh w0, [x2,138] + cmp w0, 63 + bls .L905 + strh wzr, [x2,138] +.L905: + ldrh w0, [x2,112] + cmp w0, 63 + bls .L906 adrp x1, .LANCHOR1 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR1 add x0, x0, :lo12:.LC0 - add x1, x1, 1128 - mov w2, 1012 + add x1, x1, 1384 + mov w2, 1018 bl printk -.L744: - b .L744 -.L746: - add w2, w2, 1 -.L745: - cmp w2, 63 - ble .L747 - strh wzr, [x1,138] -.L748: +.L906: + add x1, x19, :lo12:.LANCHOR0 + mov w0, 65535 + ldr x1, [x1,2848] +.L910: ldrh w2, [x1,138] - b .L745 -.L747: - sxtw x4, w2 - add x4, x4, 80 - ldrh w6, [x1,x4,lsl 1] - cmp w6, w5 - bne .L746 - strh w0, [x1,x4,lsl 1] - add w3, w3, 1 +.L907: + cmp w2, 63 + bgt .L912 + sxtw x3, w2 + add x3, x3, 80 + ldrh w4, [x1,x3,lsl 1] + cmp w4, w0 + bne .L908 + strh w20, [x1,x3,lsl 1] strh w2, [x1,138] - strh w3, [x1,112] - ldp x29, x30, [sp], 16 + ldrh w0, [x1,112] + add w0, w0, 1 + strh w0, [x1,112] + ldp x19, x20, [sp,16] + ldp x29, x30, [sp], 32 ret +.L908: + add w2, w2, 1 + b .L907 +.L912: + strh wzr, [x1,138] + b .L910 .size ftl_free_sys_blk, .-ftl_free_sys_blk .align 2 .global ftl_info_data_recovery @@ -4963,7 +5597,7 @@ ftl_info_data_recovery: str x23, [sp,48] ldrh w2, [x0] cmp w2, w1 - beq .L750 + beq .L913 adrp x19, .LANCHOR0 ubfiz x20, x2, 2, 16 add x23, x19, :lo12:.LANCHOR0 @@ -4971,69 +5605,69 @@ ftl_info_data_recovery: add x22, x21, x20 ldrb w1, [x22,2] tst w1, 224 - bne .L750 + bne .L913 ldrb w0, [x0,4] bfi w1, w0, 5, 3 mov w0, w2 strb w1, [x22,2] bl zftl_remove_free_node ldrb w0, [x22,2] - tbz x0, 3, .L754 - ldr x1, [x23,2800] + tbz x0, 3, .L917 + ldr x1, [x23,2848] ldrh w0, [x1,116] sub w0, w0, #1 strh w0, [x1,116] - b .L755 -.L754: + b .L918 +.L917: tst w0, 24 - ldr x1, [x23,2800] - bne .L756 + ldr x1, [x23,2848] + bne .L919 ldrh w0, [x1,114] sub w0, w0, #1 strh w0, [x1,114] - b .L755 -.L756: + b .L918 +.L919: ldrh w0, [x1,118] sub w0, w0, #1 strh w0, [x1,118] -.L755: +.L918: ldrb w0, [x22,2] and w0, w0, 224 cmp w0, 160 - bne .L757 + bne .L920 ldr w0, [x21,x20] add x19, x19, :lo12:.LANCHOR0 ubfx x1, x0, 11, 8 add w1, w1, 1 bfi w0, w1, 11, 8 str w0, [x21,x20] - ldr x1, [x19,2800] + ldr x1, [x19,2848] ldrh w0, [x1,120] sub w0, w0, #1 strh w0, [x1,120] - b .L750 -.L757: + b .L913 +.L920: ldrh w1, [x21,x20] cmp w0, 64 add w2, w1, 1 bfi w1, w2, 0, 11 strh w1, [x21,x20] - bne .L758 + bne .L921 add x19, x19, :lo12:.LANCHOR0 - ldr x1, [x19,2800] + ldr x1, [x19,2848] ldrh w0, [x1,122] sub w0, w0, #1 strh w0, [x1,122] - b .L750 -.L758: + b .L913 +.L921: cmp w0, 96 - bne .L750 + bne .L913 add x19, x19, :lo12:.LANCHOR0 - ldr x1, [x19,2800] + ldr x1, [x19,2848] ldrh w0, [x1,124] sub w0, w0, #1 strh w0, [x1,124] -.L750: +.L913: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldr x23, [sp,48] @@ -5044,46 +5678,49 @@ ftl_info_data_recovery: .global ftl_get_ppa_from_index .type ftl_get_ppa_from_index, %function ftl_get_ppa_from_index: + stp x29, x30, [sp, -48]! adrp x2, .LANCHOR0 uxth w1, w0 - add x3, x2, :lo12:.LANCHOR0 - stp x29, x30, [sp, -16]! + add x4, x2, :lo12:.LANCHOR0 add x29, sp, 0 - ldrh w0, [x3,3228] - ldr x4, [x3,80] - ldrb w3, [x3,3196] - mul w0, w0, w3 + stp x19, x20, [sp,16] + str x21, [sp,32] + mov x19, x2 + ldrh w0, [x4,3276] + ldr x3, [x4,80] + ldrb w4, [x4,3244] + mul w0, w0, w4 cmp w1, w0 - bge .L760 - add x4, x4, 16 - b .L761 -.L760: + bge .L923 + add x3, x3, 16 + b .L924 +.L923: sub w1, w1, w0 - add x4, x4, 48 + add x3, x3, 48 uxth w1, w1 -.L761: - ldrb w3, [x4,9] - sdiv w5, w1, w3 - msub w1, w5, w3, w1 - add x1, x4, x1, uxth 1 - ldrh w0, [x1,16] - mov w1, 65535 - cmp w0, w1 - bne .L762 +.L924: + ldrb w2, [x3,9] + mov w0, 65535 + sdiv w20, w1, w2 + msub w1, w20, w2, w1 + add x1, x3, x1, uxth 1 + ldrh w21, [x1,16] + cmp w21, w0 + bne .L925 adrp x1, .LANCHOR1 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR1 add x0, x0, :lo12:.LC0 - add x1, x1, 1152 - mov w2, 1390 + add x1, x1, 1408 + mov w2, 1403 bl printk -.L763: - b .L763 -.L762: - add x2, x2, :lo12:.LANCHOR0 - ldp x29, x30, [sp], 16 - ldrh w1, [x2,3270] - madd w0, w0, w1, w5 +.L925: + add x2, x19, :lo12:.LANCHOR0 + ldrh w0, [x2,3318] + madd w0, w21, w0, w20 + ldp x19, x20, [sp,16] + ldr x21, [sp,32] + ldp x29, x30, [sp], 48 ret .size ftl_get_ppa_from_index, .-ftl_get_ppa_from_index .align 2 @@ -5096,25 +5733,25 @@ lpa_hash_get_ppa: add x2, x1, x0, uxtb 1 stp x29, x30, [sp, -16]! add x29, sp, 0 - ldrh w2, [x2,3280] - ldr x4, [x1,3792] - ldr x5, [x1,3800] -.L765: + ldrh w2, [x2,3328] + ldr x4, [x1,3840] + ldr x5, [x1,3848] +.L927: cmp w2, w3 - beq .L769 + beq .L931 uxtw x1, w2 ldr w6, [x4,x1,lsl 2] cmp w6, w0 - bne .L766 + bne .L928 mov w0, w2 bl ftl_get_ppa_from_index - b .L767 -.L766: + b .L929 +.L928: ldrh w2, [x5,x1,lsl 1] - b .L765 -.L769: + b .L927 +.L931: mov w0, -1 -.L767: +.L929: ldp x29, x30, [sp], 16 ret .size lpa_hash_get_ppa, .-lpa_hash_get_ppa @@ -5122,96 +5759,95 @@ lpa_hash_get_ppa: .global ftl_get_new_free_page .type ftl_get_new_free_page, %function ftl_get_new_free_page: - stp x29, x30, [sp, -16]! - mov x1, x0 - mov w4, 65535 + stp x29, x30, [sp, -32]! add x29, sp, 0 - ldrh w0, [x0] - cmp w0, w4 - bne .L771 + stp x19, x20, [sp,16] + mov x19, x0 + ldrh w1, [x0] + mov w0, 65535 + cmp w1, w0 + bne .L933 adrp x1, .LANCHOR1 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR1 add x0, x0, :lo12:.LC0 - add x1, x1, 1176 - mov w2, 1505 + add x1, x1, 1432 + mov w2, 1518 bl printk -.L772: - b .L772 -.L771: - adrp x2, .LANCHOR0 - ldrh w3, [x1,2] - add x5, x2, :lo12:.LANCHOR0 - ldrh w0, [x5,3228] - cmp w3, w0 - bne .L773 +.L933: + adrp x20, .LANCHOR0 + ldrh w1, [x19,2] + add x0, x20, :lo12:.LANCHOR0 + ldrh w0, [x0,3276] + cmp w1, w0 + bne .L934 adrp x1, .LANCHOR1 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR1 add x0, x0, :lo12:.LC0 - add x1, x1, 1176 - mov w2, 1506 + add x1, x1, 1432 + mov w2, 1519 bl printk -.L774: - b .L774 -.L773: - ldrh w3, [x1,6] - cbnz w3, .L775 +.L934: + ldrh w0, [x19,6] + cbnz w0, .L935 adrp x1, .LANCHOR1 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR1 add x0, x0, :lo12:.LC0 - add x1, x1, 1176 - mov w2, 1507 + add x1, x1, 1432 + mov w2, 1520 bl printk -.L776: - b .L776 -.L775: - ldrb w0, [x1,5] - ldrb w5, [x5,3196] +.L935: + ldrb w0, [x19,5] + add x1, x20, :lo12:.LANCHOR0 add x0, x0, 8 - ldrh w0, [x1,x0,lsl 1] -.L777: - cmp w0, w4 - bne .L781 - ldrb w0, [x1,5] + ldrb w2, [x1,3244] + mov w1, 65535 + ldrh w0, [x19,x0,lsl 1] +.L936: + cmp w0, w1 + bne .L940 + ldrb w0, [x19,5] add w0, w0, 1 uxtb w0, w0 - strb w0, [x1,5] - cmp w0, w5 - bne .L778 - ldrh w0, [x1,2] - strb wzr, [x1,5] + strb w0, [x19,5] + cmp w0, w2 + bne .L937 + ldrh w0, [x19,2] + strb wzr, [x19,5] add w0, w0, 1 - strh w0, [x1,2] -.L778: - ldrb w0, [x1,5] + strh w0, [x19,2] +.L937: + ldrb w0, [x19,5] add x0, x0, 8 - ldrh w0, [x1,x0,lsl 1] - b .L777 -.L781: - sub w3, w3, #1 - strh w3, [x1,6] - ldrh w3, [x1,10] - add x2, x2, :lo12:.LANCHOR0 - ldrh w4, [x1,2] - add w3, w3, 1 - strh w3, [x1,10] - ldrb w3, [x1,5] - ldrh w5, [x2,3270] - add w3, w3, 1 - ldrb w2, [x2,3196] - uxtb w3, w3 - strb w3, [x1,5] - mul w0, w0, w5 - cmp w2, w3 - orr w0, w0, w4 - bne .L780 - add w4, w4, 1 - strb wzr, [x1,5] - strh w4, [x1,2] -.L780: - ldp x29, x30, [sp], 16 + ldrh w0, [x19,x0,lsl 1] + b .L936 +.L940: + add x20, x20, :lo12:.LANCHOR0 + ldrh w2, [x19,2] + ldrh w1, [x20,3318] + ldrb w3, [x20,3244] + mul w0, w0, w1 + ldrh w1, [x19,6] + orr w0, w0, w2 + sub w1, w1, #1 + strh w1, [x19,6] + ldrh w1, [x19,10] + add w1, w1, 1 + strh w1, [x19,10] + ldrb w1, [x19,5] + add w1, w1, 1 + uxtb w1, w1 + strb w1, [x19,5] + cmp w3, w1 + bne .L939 + add w2, w2, 1 + strb wzr, [x19,5] + strh w2, [x19,2] +.L939: + ldp x19, x20, [sp,16] + ldp x29, x30, [sp], 32 ret .size ftl_get_new_free_page, .-ftl_get_new_free_page .align 2 @@ -5222,33 +5858,32 @@ ftl_ext_alloc_new_blk: add x29, sp, 0 stp x19, x20, [sp,16] bl ftl_alloc_sys_blk - uxth w1, w0 - mov w20, w1 - mov w2, 65533 - sub w1, w1, #1 - cmp w2, w1, uxth - bcs .L783 + uxth w0, w0 + mov w20, w0 + mov w1, 65533 + sub w0, w0, #1 + cmp w1, w0, uxth + bcs .L942 adrp x1, .LANCHOR1 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR1 add x0, x0, :lo12:.LC0 - add x1, x1, 1200 - mov w2, 1538 + add x1, x1, 1456 + mov w2, 1551 bl printk -.L784: - b .L784 -.L783: +.L942: adrp x19, .LANCHOR0 mov w1, 0 add x19, x19, :lo12:.LANCHOR0 + mov w0, w20 bl ftl_erase_phy_blk - ldr x0, [x19,2800] + ldr x0, [x19,2848] ldrh w0, [x0,130] bl ftl_free_sys_blk - ldr x1, [x19,2800] + ldr x0, [x19,2848] + strh w20, [x0,130] + strh wzr, [x0,140] mov w0, 0 - strh w20, [x1,130] - strh wzr, [x1,140] ldp x19, x20, [sp,16] ldp x29, x30, [sp], 32 ret @@ -5259,52 +5894,52 @@ ftl_ext_alloc_new_blk: ftl_total_vpn_update: adrp x1, .LANCHOR0 add x3, x1, :lo12:.LANCHOR0 - ldrh w2, [x3,3808] - cbnz w0, .L786 + ldrh w2, [x3,3856] + cbnz w0, .L944 cmp w2, 4 - bhi .L786 + bhi .L944 add w2, w2, 1 - strh w2, [x3,3808] - b .L785 -.L786: + strh w2, [x3,3856] + b .L943 +.L944: add x0, x1, :lo12:.LANCHOR0 mov w9, 65535 - strh wzr, [x0,3808] + strh wzr, [x0,3856] ldrh w6, [x0,56] ldr x7, [x0,72] ldr x8, [x0,64] mov x0, 0 mov w2, w0 mov w3, w0 -.L788: +.L946: cmp w6, w0, uxth - bls .L796 + bls .L954 ldrh w4, [x7,x0,lsl 1] cmp w4, w9 - beq .L789 + beq .L947 add x5, x8, x0, lsl 2 ldrb w5, [x5,2] and w5, w5, 224 cmp w5, 160 - bne .L790 + bne .L948 add w2, w2, w4 - b .L789 -.L790: + b .L947 +.L948: add w3, w3, w4 -.L789: +.L947: add x0, x0, 1 - b .L788 -.L796: + b .L946 +.L954: add x1, x1, :lo12:.LANCHOR0 ldr x0, [x1,80] - ldr x1, [x1,2800] + ldr x1, [x1,2848] str w3, [x0,524] str w2, [x0,528] ldrh w1, [x1,120] - cbz w1, .L785 + cbz w1, .L943 udiv w2, w2, w1 str w2, [x0,532] -.L785: +.L943: ret .size ftl_total_vpn_update, .-ftl_total_vpn_update .align 2 @@ -5345,42 +5980,42 @@ ftl_vpn_decrement: str x19, [sp,16] cmp w1, w0 adrp x2, .LANCHOR0 - beq .L800 + beq .L958 add x0, x2, :lo12:.LANCHOR0 ubfiz x3, x1, 1, 16 ldr x0, [x0,72] ldrh w19, [x0,x3] - cbnz w19, .L801 - adrp x0, .LC56 + cbnz w19, .L959 + adrp x0, .LC95 mov w2, w19 - add x0, x0, :lo12:.LC56 + add x0, x0, :lo12:.LC95 bl printk - b .L805 -.L801: + b .L963 +.L959: sub w19, w19, #1 strh w19, [x0,x3] -.L800: +.L958: add x19, x2, :lo12:.LANCHOR0 mov w0, 0 - ldrh w2, [x19,3810] + ldrh w2, [x19,3858] cmp w2, w1 - beq .L802 + beq .L960 mov w0, 65535 cmp w2, w0 - bne .L803 - strh w1, [x19,3810] -.L805: + bne .L961 + strh w1, [x19,3858] +.L963: mov w0, 0 - b .L802 -.L803: + b .L960 +.L961: mov w0, w2 str x1, [x29,40] bl ftl_vpn_update cmp w0, wzr ldr x1, [x29,40] cset w0, ne - strh w1, [x19,3810] -.L802: + strh w1, [x19,3858] +.L960: ldr x19, [sp,16] ldp x29, x30, [sp], 48 ret @@ -5393,73 +6028,73 @@ lpa_hash_update_ppa: uxtb w5, w0 add x6, x3, :lo12:.LANCHOR0 uxth w2, w2 - add x4, x6, 3280 + add x4, x6, 3328 stp x29, x30, [sp, -16]! add x29, sp, 0 - ldr x8, [x6,3792] - ldr x12, [x6,3800] + ldr x8, [x6,3840] + ldr x12, [x6,3848] mov w6, 65535 ldrh w4, [x4,w5,sxtw 1] mov w11, w6 -.L807: +.L965: cmp w4, w11 - beq .L811 + beq .L969 uxtw x9, w4 uxth x7, w4 lsl x10, x9, 2 add x13, x8, x10 ldr w10, [x8,x10] cmp w10, w0 - bne .L808 + bne .L966 mov w4, -1 str w4, [x13] mov w4, 65535 cmp w6, w4 add x4, x3, :lo12:.LANCHOR0 - bne .L809 - ldr x6, [x4,3800] - add x4, x4, 3280 + bne .L967 + ldr x6, [x4,3848] + add x4, x4, 3328 ldrh w6, [x6,x7,lsl 1] strh w6, [x4,w5,sxtw 1] - b .L810 -.L809: - ldr x4, [x4,3800] + b .L968 +.L967: + ldr x4, [x4,3848] ldrh w8, [x4,x7,lsl 1] strh w8, [x4,w6,uxtw 1] -.L810: +.L968: add x4, x3, :lo12:.LANCHOR0 mov w6, -1 - ldr x4, [x4,3800] + ldr x4, [x4,3848] strh w6, [x4,x7,lsl 1] - b .L811 -.L808: + b .L969 +.L966: mov w6, w4 ldrh w4, [x12,x9,lsl 1] - b .L807 -.L811: + b .L965 +.L969: add x3, x3, :lo12:.LANCHOR0 uxtw x4, w2 cmn w1, #1 - ldr x6, [x3,3792] + ldr x6, [x3,3840] str w0, [x6,x4,lsl 2] - add x0, x3, 3280 + add x0, x3, 3328 ldrh w6, [x0,w5,sxtw 1] strh w2, [x0,w5,sxtw 1] - ldr x0, [x3,3800] + ldr x0, [x3,3848] strh w6, [x0,x4,lsl 1] - beq .L813 - ldrh w0, [x3,3266] + beq .L971 + ldrh w0, [x3,3314] mov w2, 21 mov w4, 1 sub w2, w2, w0 lsr w1, w1, w0 lsl w2, w4, w2 - ldrb w0, [x3,3264] + ldrb w0, [x3,3312] sub w2, w2, #1 and w1, w2, w1 udiv w0, w1, w0 bl ftl_vpn_decrement -.L813: +.L971: mov w0, -1 ldp x29, x30, [sp], 16 ret @@ -5478,28 +6113,28 @@ ftl_mask_bad_block: str x21, [sp,32] ubfx x21, x0, 21, 3 mov x19, x3 - ldrh w5, [x1,3266] + ldrh w5, [x1,3314] sub w2, w2, w5 lsr w0, w0, w5 lsl w2, w4, w2 sub w2, w2, #1 and w0, w2, w0 - ldrb w2, [x1,3264] + ldrb w2, [x1,3312] udiv w2, w0, w2 - adrp x0, .LANCHOR2+400 - ldr w0, [x0,#:lo12:.LANCHOR2+400] + adrp x0, .LANCHOR2 + ldr w0, [x0,#:lo12:.LANCHOR2] uxtb w20, w2 - tbz x0, 14, .L818 - adrp x0, .LC57 + tbz x0, 14, .L976 + adrp x0, .LC96 mov w1, w21 - add x0, x0, :lo12:.LC57 + add x0, x0, :lo12:.LC96 mov w2, w20 bl printk -.L818: +.L976: add x0, x19, :lo12:.LANCHOR0 ldrh w1, [x0,56] cmp w1, w20 - bls .L817 + bls .L975 ldr x0, [x0,64] add x20, x0, x20, uxtb 2 mov w0, 1 @@ -5507,7 +6142,7 @@ ftl_mask_bad_block: ldrb w0, [x20,3] orr w1, w1, w0 strb w1, [x20,3] -.L817: +.L975: ldp x19, x20, [sp,16] ldr x21, [sp,32] ldp x29, x30, [sp], 48 @@ -5524,38 +6159,38 @@ print_ftl_debug_info: adrp x19, .LANCHOR0 add x19, x19, :lo12:.LANCHOR0 ldr x7, [x19,80] - ldrh w6, [x19,2798] - ldrh w1, [x19,2788] + ldrh w6, [x19,2838] + ldrh w1, [x19,2828] ldr w0, [x7,528] str w0, [sp] - ldr w0, [x19,2784] + ldr w0, [x19,2824] str w0, [sp,8] - adrp x0, .LC58 - ldrh w2, [x19,2790] - add x0, x0, :lo12:.LC58 + adrp x0, .LC97 + ldrh w2, [x19,2830] + add x0, x0, :lo12:.LC97 ldr w7, [x7,524] - ldrh w3, [x19,2792] - ldrh w4, [x19,2794] - ldrh w5, [x19,2796] + ldrh w3, [x19,2832] + ldrh w4, [x19,2834] + ldrh w5, [x19,2836] bl printk - ldr x5, [x19,2800] - adrp x0, .LC59 - ldrb w3, [x19,3812] - add x0, x0, :lo12:.LC59 + ldr x5, [x19,2848] + adrp x0, .LC98 + ldrb w3, [x19,2841] + add x0, x0, :lo12:.LC98 ldr w4, [x5,8] ldr w1, [x5,20] ldr w2, [x5,28] ldr w5, [x5,64] bl printk - ldr x2, [x19,2800] - adrp x0, .LC60 - add x0, x0, :lo12:.LC60 + ldr x2, [x19,2848] + adrp x0, .LC99 + add x0, x0, :lo12:.LC99 ldr w3, [x2,16] ldr w1, [x2,52] ldr w2, [x2,60] lsr w3, w3, 11 bl printk - ldr x7, [x19,2800] + ldr x7, [x19,2848] ldrh w0, [x7,90] ldrh w6, [x7,72] ldrh w1, [x7,74] @@ -5567,18 +6202,18 @@ print_ftl_debug_info: str w0, [sp,8] ldrh w0, [x7,98] str w0, [sp,16] - adrp x0, .LC61 - add x0, x0, :lo12:.LC61 + adrp x0, .LC100 + add x0, x0, :lo12:.LC100 ldr w2, [x7,84] ldr w7, [x7,80] bl printk - ldrh w1, [x19,2810] - adrp x0, .LC62 - ldrh w2, [x19,2812] - add x0, x0, :lo12:.LC62 - ldrh w3, [x19,2814] - ldrh w4, [x19,2816] - ldrh w5, [x19,2808] + ldrh w1, [x19,2858] + adrp x0, .LC101 + ldrh w2, [x19,2860] + add x0, x0, :lo12:.LC101 + ldrh w3, [x19,2862] + ldrh w4, [x19,2864] + ldrh w5, [x19,2856] bl printk sub sp, x29, #32 ldr x19, [sp,48] @@ -5590,60 +6225,70 @@ print_ftl_debug_info: .global ftl_write_buf .type ftl_write_buf, %function ftl_write_buf: - stp x29, x30, [sp, -32]! + stp x29, x30, [sp, -48]! add x29, sp, 0 stp x19, x20, [sp,16] + str x21, [sp,32] mov x20, x0 - cbnz x0, .L825 + cbnz x0, .L983 adrp x1, .LANCHOR1 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR1 + mov w2, 639 + add x1, x1, 1480 add x0, x0, :lo12:.LC0 - add x1, x1, 1224 - mov w2, 592 bl printk -.L826: - b .L826 -.L825: + bl print_ftl_debug_info + mov w0, -1 + b .L992 +.L983: adrp x19, .LANCHOR0 - ldrb w1, [x0,56] - add x19, x19, :lo12:.LANCHOR0 - ldrb w2, [x19,2776] - cmp w2, w1 - bcs .L827 + ldrb w1, [x20,56] + add x0, x19, :lo12:.LANCHOR0 + ldrb w0, [x0,2816] + cmp w1, w0 + bls .L988 adrp x1, .LANCHOR1 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR1 add x0, x0, :lo12:.LC0 - add x1, x1, 1224 - mov w2, 597 + add x1, x1, 1480 + mov w2, 644 bl printk -.L828: - b .L828 -.L827: - cbnz w1, .L829 +.L988: + ldrb w0, [x20,56] + cbz w0, .L985 + add x21, x19, :lo12:.LANCHOR0 + ldrb w1, [x21,2816] + cmp w1, w0 + bcs .L986 +.L985: + mov x0, x20 + add x19, x19, :lo12:.LANCHOR0 bl buf_free - ldrb w0, [x19,2819] - b .L830 -.L829: - add x0, x19, 2818 + ldrb w0, [x19,2840] + b .L992 +.L986: + add x0, x21, 2866 mov x1, x20 bl buf_add_tail - ldrb w2, [x19,2819] + ldr x0, [x21,2848] ldrb w1, [x20,56] + ldrb w2, [x21,2840] + ldr w3, [x0,16] add w2, w2, 1 - uxtb w0, w2 - ldr x2, [x19,2800] - strb w0, [x19,2819] - ldr w3, [x2,16] add w1, w3, w1 - str w1, [x2,16] - ldr w1, [x2,32] + str w1, [x0,16] + ldr w1, [x0,32] + uxtb w2, w2 + strb w2, [x21,2840] add w1, w1, 1 - str w1, [x2,32] -.L830: + str w1, [x0,32] + mov w0, w2 +.L992: ldp x19, x20, [sp,16] - ldp x29, x30, [sp], 32 + ldr x21, [sp,32] + ldp x29, x30, [sp], 48 ret .size ftl_write_buf, .-ftl_write_buf .align 2 @@ -5657,25 +6302,25 @@ ftl_write_completed: str x25, [sp,64] stp x21, x22, [sp,32] add x19, x19, :lo12:.LANCHOR0 - adrp x21, .LC63 + adrp x21, .LC102 stp x23, x24, [sp,48] - add x22, x19, 728 + add x22, x19, 768 mov w23, 21 mov w24, 1 - add x21, x21, :lo12:.LC63 -.L832: - ldrb w0, [x19,3813] + add x21, x21, :lo12:.LC102 +.L994: + ldrb w0, [x19,3860] cmp w0, 255 - beq .L839 + beq .L1001 sbfiz x0, x0, 6, 32 add x20, x22, x0 add x4, x20, 32 ldrb w0, [x22,x0] - strb w0, [x19,3813] + strb w0, [x19,3860] ldr w0, [x20,52] cmn w0, #1 - bne .L833 - ldrh w2, [x19,3266] + bne .L995 + ldrh w2, [x19,3314] mov x0, x21 ldr w3, [x4,8] sub w1, w23, w2 @@ -5683,7 +6328,7 @@ ftl_write_completed: lsr w2, w3, w2 sub w1, w1, #1 and w2, w1, w2 - ldrb w1, [x19,3264] + ldrb w1, [x19,3312] udiv w1, w2, w1 ldr w2, [x4,4] uxth w25, w1 @@ -5699,33 +6344,33 @@ ftl_write_completed: str w1, [x0,556] ldrh w1, [x0,16] cmp w1, w25 - bne .L834 + bne .L996 strh wzr, [x0,22] - b .L835 -.L834: + b .L997 +.L996: ldrh w1, [x0,48] cmp w1, w25 - bne .L835 + bne .L997 strh wzr, [x0,54] -.L835: +.L997: mov x0, x20 bl ftl_write_buf - b .L832 -.L833: + b .L994 +.L995: ldr w0, [x4,4] ldr w1, [x4,12] ldrh w2, [x20,48] bl lpa_hash_update_ppa ldrb w0, [x20,2] - tbz x0, 2, .L837 + tbz x0, 2, .L999 and w0, w0, -3 strb w0, [x20,2] - b .L832 -.L837: + b .L994 +.L999: mov x0, x20 bl buf_free - b .L832 -.L839: + b .L994 +.L1001: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -5737,59 +6382,57 @@ ftl_write_completed: .global ftl_alloc_sblk .type ftl_alloc_sblk, %function ftl_alloc_sblk: - stp x29, x30, [sp, -48]! + stp x29, x30, [sp, -64]! cmp w0, 5 - mov w1, 2 add x29, sp, 0 - stp x21, x22, [sp,32] - uxth w22, w0 - csel w21, wzr, w1, ne stp x19, x20, [sp,16] - mov w1, w22 mov w20, w0 + str x23, [sp,48] + mov w0, 2 + uxth w23, w20 + stp x21, x22, [sp,32] + mov w1, w23 + csel w22, wzr, w0, ne mov w0, 0 bl zftl_get_free_sblk uxth w19, w0 - mov w1, 65535 - cmp w19, w1 - beq .L842 - adrp x1, .LANCHOR0+64 - ldr x1, [x1,#:lo12:.LANCHOR0+64] - add x19, x1, x19, uxth 2 - ldrb w3, [x19,2] - tst w3, 224 - beq .L843 + mov w0, 65535 + cmp w19, w0 + beq .L1004 + adrp x0, .LANCHOR0+64 + ldr x21, [x0,#:lo12:.LANCHOR0+64] + add x21, x21, x19, uxth 2 + ldrb w0, [x21,2] + tst w0, 224 + beq .L1005 adrp x1, .LANCHOR1 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR1 add x0, x0, :lo12:.LC0 - add x1, x1, 1240 - mov w2, 752 + add x1, x1, 1496 + mov w2, 757 bl printk -.L844: - b .L844 -.L843: - bfi w3, w20, 5, 3 - ubfx x2, x3, 3, 2 - orr w1, w21, w2 - bfi w3, w1, 3, 2 - strb w3, [x19,2] - ldp x19, x20, [sp,16] - ldp x21, x22, [sp,32] - ldp x29, x30, [sp], 48 - ret -.L842: - adrp x21, .LC64 +.L1005: + ldrb w1, [x21,2] + bfi w1, w20, 5, 3 + ubfx x2, x1, 3, 2 + orr w0, w22, w2 + bfi w1, w0, 3, 2 + strb w1, [x21,2] + b .L1011 +.L1004: + adrp x21, .LC103 bl print_ftl_debug_info - add x21, x21, :lo12:.LC64 - mov w2, w20 + add x21, x21, :lo12:.LC103 mov w1, w19 + mov w2, w20 mov x0, x21 bl printk - mov w1, w22 + mov w1, w23 mov w0, 0 bl zftl_get_free_sblk - uxth w1, w0 + uxth w19, w0 + mov w1, w19 mov w2, w20 mov x0, x21 bl printk @@ -5798,11 +6441,16 @@ ftl_alloc_sblk: adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR1 add x0, x0, :lo12:.LC0 - add x1, x1, 1240 - mov w2, 762 + add x1, x1, 1496 + mov w2, 767 bl printk -.L845: - b .L845 +.L1011: + mov w0, w19 + ldr x23, [sp,48] + ldp x19, x20, [sp,16] + ldp x21, x22, [sp,32] + ldp x29, x30, [sp], 64 + ret .size ftl_alloc_sblk, .-ftl_alloc_sblk .align 2 .global sblk_init @@ -5811,10 +6459,10 @@ sblk_init: adrp x0, .LANCHOR0 mov w1, -1 add x0, x0, :lo12:.LANCHOR0 - strb w1, [x0,3814] - strb w1, [x0,3813] - strb w1, [x0,2832] - strb w1, [x0,3176] + strb w1, [x0,3861] + strb w1, [x0,3860] + strb w1, [x0,2880] + strb w1, [x0,3224] mov w0, 0 ret .size sblk_init, .-sblk_init @@ -5823,24 +6471,24 @@ sblk_init: .type dump_sblk_queue, %function dump_sblk_queue: stp x29, x30, [sp, -48]! - adrp x0, .LC65 + adrp x0, .LC104 add x29, sp, 0 stp x19, x20, [sp,16] adrp x20, .LANCHOR0 str x21, [sp,32] add x20, x20, :lo12:.LANCHOR0 - add x0, x0, :lo12:.LC65 - ldrb w1, [x20,3814] + add x0, x0, :lo12:.LC104 + ldrb w1, [x20,3861] bl printk - ldrb w19, [x20,3814] + ldrb w19, [x20,3861] cmp w19, 255 - beq .L849 - add x20, x20, 728 + beq .L1013 + add x20, x20, 768 sbfiz x19, x19, 6, 32 - adrp x21, .LC66 + adrp x21, .LC105 add x19, x20, x19 - add x21, x21, :lo12:.LC66 -.L851: + add x21, x21, :lo12:.LC105 +.L1015: ldrb w1, [x19,1] mov x0, x21 ldrb w2, [x19,58] @@ -5848,11 +6496,11 @@ dump_sblk_queue: bl printk ldrb w19, [x19] cmp w19, 255 - beq .L849 + beq .L1013 sbfiz x19, x19, 6, 32 add x19, x20, x19 - b .L851 -.L849: + b .L1015 +.L1013: ldp x19, x20, [sp,16] ldr x21, [sp,32] ldp x29, x30, [sp], 48 @@ -5866,12 +6514,12 @@ queue_lun_state: mov w5, w0 add x3, x3, :lo12:.LANCHOR0 mov w0, 0 - ldrb w2, [x3,3814] + ldrb w2, [x3,3861] cmp w2, 255 - beq .L859 - ldrh w8, [x3,3266] + beq .L1023 + ldrh w8, [x3,3314] mov w4, 21 - ldrb w7, [x3,3264] + ldrb w7, [x3,3312] mov w0, 1 sub w4, w4, w8 ubfx x9, x5, 21, 3 @@ -5880,64 +6528,64 @@ queue_lun_state: sub w4, w4, #1 asr w5, w5, w8 uxth w7, w7 - adrp x10, .L863 + adrp x10, .L1027 uxth w4, w4 and w5, w5, w7 and w5, w5, w4 - add x3, x3, 728 - add x10, x10, :lo12:.L863 -.L866: + add x3, x3, 768 + add x10, x10, :lo12:.L1027 +.L1030: add x0, x3, x2, lsl 6 ldr w6, [x0,40] ubfx x11, x6, 21, 3 cmp w11, w9 - bne .L860 + bne .L1024 lsr w6, w6, w8 ldrb w0, [x0,58] and w6, w7, w6 and w6, w4, w6 cmp w6, w5 - bne .L861 + bne .L1025 cmp w1, 1 - beq .L864 - b .L859 -.L861: + beq .L1028 + b .L1023 +.L1025: cmp w1, 3 - bhi .L860 + bhi .L1024 ldrb w6, [x10,w1,uxtw] - adr x11, .Lrtx863 + adr x11, .Lrtx1027 add x6, x11, w6, sxtb #2 br x6 -.Lrtx863: +.Lrtx1027: .section .rodata .align 0 .align 2 -.L863: - .byte (.L862 - .Lrtx863) / 4 - .byte (.L864 - .Lrtx863) / 4 - .byte (.L865 - .Lrtx863) / 4 - .byte (.L859 - .Lrtx863) / 4 +.L1027: + .byte (.L1026 - .Lrtx1027) / 4 + .byte (.L1028 - .Lrtx1027) / 4 + .byte (.L1029 - .Lrtx1027) / 4 + .byte (.L1023 - .Lrtx1027) / 4 .text -.L862: +.L1026: cmp w0, 2 - b .L875 -.L864: + b .L1039 +.L1028: sub w6, w0, #6 and w6, w6, -3 uxtb w6, w6 - cbz w6, .L860 - b .L859 -.L865: + cbz w6, .L1024 + b .L1023 +.L1029: cmp w0, 10 -.L875: - bne .L859 -.L860: +.L1039: + bne .L1023 +.L1024: lsl x2, x2, 6 ldrb w2, [x3,x2] cmp w2, 255 - bne .L866 + bne .L1030 mov w0, 0 -.L859: +.L1023: ret .size queue_lun_state, .-queue_lun_state .align 2 @@ -5946,61 +6594,61 @@ queue_lun_state: queue_remove_completed_req: adrp x0, .LANCHOR0 add x1, x0, :lo12:.LANCHOR0 - ldrb w2, [x1,3814] + ldrb w2, [x1,3861] cmp w2, 255 - beq .L877 - add x6, x1, 728 + beq .L1041 + add x6, x1, 768 lsl x5, x2, 6 add x7, x6, x5 ldrb w3, [x7,58] sub w3, w3, #11 uxtb w3, w3 cmp w3, 1 - bhi .L877 + bhi .L1041 ldrb w3, [x6,x5] - strb w3, [x1,3814] + strb w3, [x1,3861] mov w3, -1 strb w3, [x6,x5] ldrb w3, [x7,59] cmp w3, 1 - bne .L879 + bne .L1043 ldrh w3, [x7,50] - cbnz w3, .L880 - ldrb w3, [x1,3813] - add x1, x1, 3813 - b .L881 -.L880: - ldrb w3, [x1,3176] - add x1, x1, 3176 - b .L881 -.L879: - cbnz w3, .L877 + cbnz w3, .L1044 + ldrb w3, [x1,3860] + add x1, x1, 3860 + b .L1045 +.L1044: + ldrb w3, [x1,3224] + add x1, x1, 3224 + b .L1045 +.L1043: + cbnz w3, .L1041 ldr w3, [x7,36] cmn w3, #1 - beq .L877 - ldrb w3, [x1,2832] - add x1, x1, 2832 -.L881: + beq .L1041 + ldrb w3, [x1,2880] + add x1, x1, 2880 +.L1045: cmp w3, 255 add x0, x0, :lo12:.LANCHOR0 - bne .L885 + bne .L1049 add x0, x0, x2, lsl 6 - ldrb w0, [x0,729] + ldrb w0, [x0,769] strb w0, [x1] - b .L877 -.L885: - add x0, x0, 728 -.L892: + b .L1041 +.L1049: + add x0, x0, 768 +.L1056: mov w1, w3 sbfiz x3, x3, 6, 32 ldrb w3, [x0,x3] cmp w3, 255 - bne .L892 + bne .L1056 add x2, x0, x2, lsl 6 sbfiz x1, x1, 6, 32 ldrb w2, [x2,1] strb w2, [x0,x1] -.L877: +.L1041: ret .size queue_remove_completed_req, .-queue_remove_completed_req .align 2 @@ -6014,112 +6662,114 @@ pm_alloc_new_blk: str x23, [sp,48] add x3, x19, :lo12:.LANCHOR0 stp x21, x22, [sp,32] - ldr x2, [x3,2800] + ldr x2, [x3,2848] ldrh w1, [x2,690] add w1, w1, 1 uxth w0, w1 - ldrb w1, [x3,3196] + ldrb w1, [x3,3244] strh w0, [x2,690] cmp w1, w0 - bls .L894 + bls .L1058 add x0, x2, x0, sxtw 1 ldrh w1, [x0,672] mov w0, 65535 cmp w1, w0 - bne .L895 -.L894: - adrp x22, .LC67 - add x22, x22, :lo12:.LC67 -.L909: + bne .L1059 +.L1058: + adrp x22, .LC106 + add x22, x22, :lo12:.LC106 +.L1071: mov w0, 1 - add x21, x19, :lo12:.LANCHOR0 + add x20, x19, :lo12:.LANCHOR0 bl ftl_alloc_sblk - uxth w20, w0 + uxth w21, w0 mov w1, 0 bl ftl_erase_sblk - ldr x1, [x21,2800] - mov w0, w20 + ldr x1, [x20,2848] + mov w0, w21 add x1, x1, 672 bl ftl_get_blk_list_in_sblk uxth w0, w0 - cbnz w0, .L896 - mov w1, w20 + cbnz w0, .L1060 + mov w1, w21 mov x0, x22 bl printk - ldr x0, [x21,64] - add x20, x0, x20, uxth 2 - ldrb w1, [x20,2] - orr w1, w1, -32 - strb w1, [x20,2] - b .L909 -.L896: - ldr x0, [x21,2800] - mov w1, 1 - mov w3, 65535 - str w1, [x21,3816] - mov x1, 0 - strh wzr, [x0,690] -.L898: - add x4, x0, x1, lsl 1 - mov w2, w1 - ldrh w4, [x4,416] - cmp w4, w3 - beq .L897 - add x1, x1, 1 - cmp x1, 128 - bne .L898 - adrp x0, .LC0 - adrp x1, .LANCHOR3 - add x0, x0, :lo12:.LC0 - add x1, x1, :lo12:.LANCHOR3 - mov w2, 188 - bl printk -.L900: - b .L900 -.L897: - add x1, x0, x2, sxtw 1 - strh w20, [x1,416] - ldrh w1, [x0,688] - add w1, w1, 1 - strh w1, [x0,688] -.L895: - add x19, x19, :lo12:.LANCHOR0 - mov w2, 65533 - ldr x0, [x19,2800] - ldrh w1, [x0,690] - add x1, x1, 336 - ldrh w1, [x0,x1,lsl 1] - sub w3, w1, #1 - cmp w2, w3, uxth - bcs .L901 - adrp x0, .LC0 - adrp x1, .LANCHOR3 - add x0, x0, :lo12:.LC0 - add x1, x1, :lo12:.LANCHOR3 - mov w2, 193 - bl printk -.L902: - b .L902 -.L901: - ldrh w3, [x19,3266] - mov w2, 21 - strh wzr, [x0,696] - sub w2, w2, w3 - strh w1, [x0,692] - asr w4, w1, w2 - strh w4, [x0,694] - adrp x0, .LANCHOR2+400 - ldr w0, [x0,#:lo12:.LANCHOR2+400] - tbz x0, 12, .L906 + ldr x2, [x20,64] + add x1, x2, x21, uxth 2 + ldrb w2, [x1,2] + orr w2, w2, -32 + strb w2, [x1,2] + b .L1071 +.L1060: + ldr x1, [x20,2848] mov w0, 1 - mov w3, w1 - lsl w2, w0, w2 - adrp x0, .LC68 - add x0, x0, :lo12:.LC68 + mov w2, 65535 + str w0, [x20,3864] + mov x20, 0 + strh wzr, [x1,690] +.L1062: + add x3, x1, x20, lsl 1 + uxth w0, w20 + ldrh w3, [x3,416] + cmp w3, w2 + beq .L1061 + add x20, x20, 1 + cmp x20, 128 + bne .L1062 + adrp x0, .LC0 + adrp x1, .LANCHOR3 + add x0, x0, :lo12:.LC0 + add x1, x1, :lo12:.LANCHOR3 + mov w2, 192 + bl printk + mov w0, w20 +.L1061: + add x1, x19, :lo12:.LANCHOR0 + ldr x1, [x1,2848] + add x0, x1, x0, sxtw 1 + strh w21, [x0,416] + ldrh w0, [x1,688] + add w0, w0, 1 + strh w0, [x1,688] +.L1059: + add x0, x19, :lo12:.LANCHOR0 + ldr x1, [x0,2848] + ldrh w0, [x1,690] + add x0, x0, 336 + ldrh w20, [x1,x0,lsl 1] + mov w0, 65533 + sub w1, w20, #1 + cmp w0, w1, uxth + bcs .L1064 + adrp x0, .LC0 + adrp x1, .LANCHOR3 + add x0, x0, :lo12:.LC0 + add x1, x1, :lo12:.LANCHOR3 + mov w2, 197 + bl printk +.L1064: + add x19, x19, :lo12:.LANCHOR0 + mov w0, 21 + ldr x1, [x19,2848] + ldrh w2, [x19,3314] + sub w0, w0, w2 + strh wzr, [x1,696] + asr w4, w20, w0 + strh w20, [x1,692] + strh w4, [x1,694] + adrp x1, .LANCHOR2 + ldr w1, [x1,#:lo12:.LANCHOR2] + tbz x1, 12, .L1068 + mov w2, 1 + mov w1, w20 + lsl w2, w2, w0 + adrp x0, .LC107 + add x0, x0, :lo12:.LC107 sub w2, w2, #1 + mov w3, w20 uxth w4, w4 bl printk -.L906: +.L1068: mov w0, 0 ldr x23, [sp,48] ldp x19, x20, [sp,16] @@ -6131,78 +6781,77 @@ pm_alloc_new_blk: .global pm_select_ram_region .type pm_select_ram_region, %function pm_select_ram_region: - adrp x3, .LANCHOR0 - mov x0, 0 - stp x29, x30, [sp, -16]! - add x3, x3, :lo12:.LANCHOR0 - mov w4, 65535 + stp x29, x30, [sp, -32]! + adrp x2, .LANCHOR0 + mov w3, 65535 add x29, sp, 0 -.L913: - add x2, x3, 3824 - lsl x5, x0, 4 - uxth w1, w0 - ldrh w5, [x5,x2] - cmp w5, w4 - beq .L919 + str x19, [sp,16] + add x2, x2, :lo12:.LANCHOR0 + mov x19, 0 +.L1075: + add x1, x2, 3872 + lsl x4, x19, 4 + uxth w0, w19 + ldrh w4, [x4,x1] + cmp w4, w3 + beq .L1074 + add x19, x19, 1 + cmp x19, 32 + bne .L1075 + mov x0, 0 + mov w3, 32768 +.L1077: + add x2, x1, x0, lsl 4 + uxth w4, w0 + ldrh w2, [x2,2] + tbnz x2, 15, .L1076 + cmp w2, w3 + bcs .L1076 + mov w3, w2 + mov w19, w4 +.L1076: add x0, x0, 1 cmp x0, 32 - bne .L913 - mov x1, 0 - mov w4, 32768 -.L915: - add x3, x2, x1, lsl 4 - uxth w5, w1 - ldrh w3, [x3,2] - tbnz x3, 15, .L914 - cmp w3, w4 - bcs .L914 - mov w4, w3 - mov w0, w5 -.L914: - add x1, x1, 1 - cmp x1, 32 - bne .L915 - cmp w0, 32 - mov w3, w0 - bne .L912 - adrp x0, .LANCHOR4-16 - adrp x1, .LANCHOR0 - add x1, x1, :lo12:.LANCHOR0 - mov w2, 0 - add x1, x1, 3824 - ldrb w4, [x0,#:lo12:.LANCHOR4-16] - mov w0, -1 -.L917: - ldrh w6, [x1,2] - cmp w6, w0 - bcs .L916 - ldrh w5, [x1] - cmp w5, w4 - csel w0, w0, w6, eq - cmp w5, w4 - csel w3, w3, w2, eq -.L916: - add w2, w2, 1 - add x1, x1, 16 - uxth w2, w2 - cmp w2, 32 - bne .L917 - cmp w3, 32 - mov w0, w3 - bne .L912 + bne .L1077 + cmp w19, 32 + mov w0, w19 + bne .L1074 + adrp x0, .LANCHOR4+32 + mov w2, -1 + mov w1, 0 + ldrb w3, [x0,#:lo12:.LANCHOR4+32] + adrp x0, .LANCHOR0 + add x0, x0, :lo12:.LANCHOR0 + add x0, x0, 3872 +.L1079: + ldrh w5, [x0,2] + cmp w5, w2 + bcs .L1078 + ldrh w4, [x0] + cmp w4, w3 + csel w2, w2, w5, eq + cmp w4, w3 + csel w19, w19, w1, eq +.L1078: + add w1, w1, 1 + add x0, x0, 16 + uxth w1, w1 + cmp w1, 32 + bne .L1079 + cmp w19, 32 + bne .L1080 adrp x1, .LANCHOR3 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR3 add x0, x0, :lo12:.LC0 add x1, x1, 24 - mov w2, 289 + mov w2, 295 bl printk -.L918: - b .L918 -.L919: - mov w0, w1 -.L912: - ldp x29, x30, [sp], 16 +.L1080: + mov w0, w19 +.L1074: + ldr x19, [sp,16] + ldp x29, x30, [sp], 32 ret .size pm_select_ram_region, .-pm_select_ram_region .align 2 @@ -6224,58 +6873,58 @@ flash_lsb_page_tbl_build: add x29, sp, 0 stp x19, x20, [sp,16] adrp x19, .LANCHOR0 - cbnz w0, .L927 + cbnz w0, .L1088 mov x0, 0 add x2, x19, :lo12:.LANCHOR0 -.L928: - add x1, x2, 168 +.L1089: + add x1, x2, 212 strh w0, [x1,x0,lsl 1] add x0, x0, 1 cmp x0, 256 - bne .L928 -.L934: + bne .L1089 +.L1095: adrp x20, .LANCHOR4 mov w1, 255 add x20, x20, :lo12:.LANCHOR4 mov w2, 1024 - sub x0, x20, #12 + add x0, x20, 36 add x19, x19, :lo12:.LANCHOR0 bl ftl_memset mov x0, 0 - b .L929 -.L927: + b .L1090 +.L1088: cmp w0, 1 - bne .L930 + bne .L1091 mov x0, 0 mov w4, 3 mov w5, 2 add x3, x19, :lo12:.LANCHOR0 -.L933: +.L1094: cmp x0, 3 uxth w2, w0 mov w1, w2 - bls .L931 + bls .L1092 ubfiz w1, w2, 1, 15 and w2, w2, 1 cmp w2, wzr csel w2, w4, w5, ne sub w1, w1, w2 uxth w1, w1 -.L931: - add x2, x3, 168 +.L1092: + add x2, x3, 212 strh w1, [x2,x0,lsl 1] add x0, x0, 1 cmp x0, 256 - bne .L933 - b .L934 -.L930: + bne .L1094 + b .L1095 +.L1091: cmp w0, 2 - bne .L935 + bne .L1096 mov w1, 65535 mov x0, 0 add x4, x19, :lo12:.LANCHOR0 -.L937: - add x3, x4, 168 +.L1098: + add x3, x4, 212 cmp x0, 1 uxth w2, w0 csel w2, w1, w2, hi @@ -6284,43 +6933,43 @@ flash_lsb_page_tbl_build: add x0, x0, 1 cmp x0, 256 uxth w1, w1 - bne .L937 - b .L934 -.L935: + bne .L1098 + b .L1095 +.L1096: cmp w0, 3 - bne .L938 + bne .L1099 mov x0, 0 mov w4, 5 mov w5, 4 add x3, x19, :lo12:.LANCHOR0 -.L941: +.L1102: cmp x0, 5 uxth w2, w0 mov w1, w2 - bls .L939 + bls .L1100 ubfiz w1, w2, 1, 15 and w2, w2, 1 cmp w2, wzr csel w2, w4, w5, ne sub w1, w1, w2 uxth w1, w1 -.L939: - add x2, x3, 168 +.L1100: + add x2, x3, 212 strh w1, [x2,x0,lsl 1] add x0, x0, 1 cmp x0, 256 - bne .L941 - b .L934 -.L938: + bne .L1102 + b .L1095 +.L1099: cmp w0, 4 - bne .L942 + bne .L1103 add x2, x19, :lo12:.LANCHOR0 mov w5, 7 - add x1, x2, 168 + add x1, x2, 212 mov w4, 6 strh w0, [x1,8] mov w0, 5 - strh wzr, [x2,168] + strh wzr, [x2,212] mov w2, 1 strh w0, [x1,10] mov w0, 7 @@ -6333,7 +6982,7 @@ flash_lsb_page_tbl_build: strh w0, [x1,14] mov w0, 8 strh w2, [x1,6] -.L944: +.L1105: and w3, w0, 1 ubfiz w2, w0, 1, 15 add w0, w0, 1 @@ -6344,48 +6993,48 @@ flash_lsb_page_tbl_build: sub w2, w2, w3 cmp w0, 256 strh w2, [x1,14] - bne .L944 - b .L934 -.L942: + bne .L1105 + b .L1095 +.L1103: cmp w0, 5 - bne .L945 + bne .L1106 mov x0, 0 add x2, x19, :lo12:.LANCHOR0 -.L946: - add x1, x2, 168 +.L1107: + add x1, x2, 212 strh w0, [x1,x0,lsl 1] add x0, x0, 1 cmp x0, 16 - bne .L946 + bne .L1107 mov x0, 0 -.L947: +.L1108: add x2, x1, x0 add w3, w0, 16 add x0, x0, 2 cmp x0, 480 strh w3, [x2,32] - bne .L947 - b .L934 -.L945: + bne .L1108 + b .L1095 +.L1106: cmp w0, 8 - bne .L934 + bne .L1095 mov x0, 0 add x2, x19, :lo12:.LANCHOR0 -.L948: - add x1, x2, 168 +.L1109: + add x1, x2, 212 strh w0, [x0,x1] add x0, x0, 2 cmp x0, 512 - bne .L948 - b .L934 -.L929: - add x1, x19, 168 - sub x2, x20, #12 + bne .L1109 + b .L1095 +.L1090: + add x1, x19, 212 + add x2, x20, 36 ldrh w1, [x0,x1] add x0, x0, 2 cmp x0, 512 strh w1, [x2,w1,sxtw 1] - bne .L929 + bne .L1090 ldp x19, x20, [sp,16] ldp x29, x30, [sp], 32 ret @@ -6395,91 +7044,100 @@ flash_lsb_page_tbl_build: .type flash_die_info_init, %function flash_die_info_init: stp x29, x30, [sp, -112]! - mov w2, 8 add x29, sp, 0 stp x19, x20, [sp,16] adrp x19, .LANCHOR2 stp x21, x22, [sp,32] - stp x25, x26, [sp,64] - adrp x21, .LANCHOR0 - add x25, x19, :lo12:.LANCHOR2 stp x23, x24, [sp,48] + ldr w0, [x19,#:lo12:.LANCHOR2] + stp x25, x26, [sp,64] stp x27, x28, [sp,80] + tbz x0, 12, .L1126 + adrp x1, .LANCHOR3 + adrp x0, .LC4 + add x1, x1, :lo12:.LANCHOR3 + add x0, x0, :lo12:.LC4 + add x1, x1, 48 + bl printk +.L1126: + add x25, x19, :lo12:.LANCHOR2 + adrp x21, .LANCHOR0 add x20, x21, :lo12:.LANCHOR0 adrp x22, .LANCHOR4 - ldrh w0, [x25,394] add x26, x22, :lo12:.LANCHOR4 - ldrb w1, [x25,380] + mov w2, 8 + ldrh w0, [x25,402] mov x24, 0 - strh w0, [x20,166] - add x25, x25, 369 + ldrb w1, [x25,388] + add x27, x20, 732 + strh w0, [x20,210] + add x25, x25, 377 ldrh w0, [x25,9] - add x27, x20, 684 - strb wzr, [x20,152] + strb wzr, [x20,98] sdiv w0, w0, w1 mov w1, 0 - strh w0, [x26,1012] - add x0, x20, 156 + strh w0, [x26,1060] + add x0, x20, 200 bl ftl_memset - add x0, x26, 1016 + add x0, x26, 1064 mov w1, 0 mov w2, 32 bl ftl_memset ldrb w23, [x25,-1] -.L966: +.L1128: mov x0, x25 add x1, x27, x24, lsl 3 mov w2, w23 bl flash_mem_cmp8 - cbnz w0, .L965 - ldrb w1, [x20,152] - add x2, x26, 1016 + cbnz w0, .L1127 + ldrb w1, [x20,98] + add x2, x26, 1064 str w0, [x2,w1,sxtw 2] add w0, w1, 1 add x1, x20, x1, sxtw - strb w0, [x20,152] - strb w24, [x1,156] -.L965: + strb w0, [x20,98] + strb w24, [x1,200] +.L1127: add x24, x24, 1 cmp x24, 4 - bne .L966 + bne .L1128 add x0, x19, :lo12:.LANCHOR2 - add x1, x0, 368 + add x1, x0, 376 ldrb w2, [x1,8] cmp w2, 2 - beq .L967 -.L971: + beq .L1129 +.L1133: add x19, x19, :lo12:.LANCHOR2 add x21, x21, :lo12:.LANCHOR0 add x22, x22, :lo12:.LANCHOR4 ldp x23, x24, [sp,48] - ldrb w1, [x19,381] - ldrb w0, [x21,152] + ldrb w1, [x19,389] + ldrb w0, [x21,98] ldp x25, x26, [sp,64] ldp x27, x28, [sp,80] mul w0, w0, w1 - ldrh w1, [x19,382] + ldrh w1, [x19,390] ldp x19, x20, [sp,16] mul w0, w0, w1 - strh w0, [x22,1048] + strh w0, [x22,1096] ldp x21, x22, [sp,32] ldp x29, x30, [sp], 112 ret -.L967: +.L1129: add x24, x21, :lo12:.LANCHOR0 ldrh w20, [x1,14] ldrb w27, [x1,23] mov x25, 0 and w20, w20, 65280 - add x26, x0, 369 - ldrh w2, [x24,166] - add x3, x24, 684 + add x26, x0, 377 + ldrh w2, [x24,210] + add x3, x24, 732 add x4, x22, :lo12:.LANCHOR4 mul w20, w20, w2 ldrb w2, [x1,13] mul w20, w20, w2 lsl w28, w20, 1 -.L970: +.L1132: add x1, x3, x25, lsl 3 mov x0, x26 mov w2, w23 @@ -6488,21 +7146,21 @@ flash_die_info_init: bl flash_mem_cmp8 ldr x3, [x29,104] ldr x4, [x29,96] - cbnz w0, .L968 - ldrb w1, [x24,152] - add x0, x4, 1016 + cbnz w0, .L1130 + ldrb w1, [x24,98] + add x0, x4, 1064 cmp w27, wzr csel w2, w20, w28, eq str w2, [x0,w1,sxtw 2] add w0, w1, 1 add x1, x24, x1, sxtw - strb w0, [x24,152] - strb w25, [x1,156] -.L968: + strb w0, [x24,98] + strb w25, [x1,200] +.L1130: add x25, x25, 1 cmp x25, 4 - bne .L970 - b .L971 + bne .L1132 + b .L1133 .size flash_die_info_init, .-flash_die_info_init .align 2 .global lpa_hash_init @@ -6515,13 +7173,13 @@ lpa_hash_init: str x19, [sp,16] adrp x19, .LANCHOR0 add x19, x19, :lo12:.LANCHOR0 - add x0, x19, 3280 + add x0, x19, 3328 bl ftl_memset - ldrh w0, [x19,3228] + ldrh w0, [x19,3276] mov w1, 255 - ldrb w2, [x19,3196] + ldrb w2, [x19,3244] mul w2, w0, w2 - ldr x0, [x19,3800] + ldr x0, [x19,3848] lsl w2, w2, 2 bl ftl_memset ldr x19, [sp,16] @@ -6532,57 +7190,57 @@ lpa_hash_init: .global lpa_rebuild_hash .type lpa_rebuild_hash, %function lpa_rebuild_hash: - adrp x0, .LANCHOR2+400 + adrp x0, .LANCHOR2 stp x29, x30, [sp, -32]! add x29, sp, 0 - ldr w0, [x0,#:lo12:.LANCHOR2+400] + ldr w0, [x0,#:lo12:.LANCHOR2] str x19, [sp,16] - tbz x0, 12, .L979 + tbz x0, 12, .L1144 adrp x1, .LANCHOR3 - adrp x0, .LC69 + adrp x0, .LC108 add x1, x1, :lo12:.LANCHOR3 - add x0, x0, :lo12:.LC69 - add x1, x1, 48 - mov w2, 219 + add x0, x0, :lo12:.LC108 + add x1, x1, 72 + mov w2, 218 mov w3, 0 bl printk -.L979: +.L1144: adrp x19, .LANCHOR0 mov w1, 255 add x19, x19, :lo12:.LANCHOR0 mov w2, 512 - add x0, x19, 3280 + add x0, x19, 3328 bl ftl_memset - ldrh w0, [x19,3228] + ldrh w0, [x19,3276] mov w1, 255 - ldrb w2, [x19,3196] + ldrb w2, [x19,3244] mul w2, w0, w2 - ldr x0, [x19,3800] + ldr x0, [x19,3848] lsl w2, w2, 2 bl ftl_memset mov w0, 0 -.L980: - ldrh w1, [x19,3228] - ldrb w2, [x19,3196] +.L1145: + ldrh w1, [x19,3276] + ldrb w2, [x19,3244] mul w1, w1, w2 cmp w0, w1, lsl 1 - bge .L989 + bge .L1154 uxtw x2, w0 - ldr x1, [x19,3792] + ldr x1, [x19,3840] ldr w1, [x1,x2,lsl 2] cmn w1, #1 - beq .L981 + beq .L1146 uxtb w1, w1 - add x3, x19, 3280 + add x3, x19, 3328 ldrh w4, [x3,w1,sxtw 1] strh w0, [x3,w1,sxtw 1] - ldr x1, [x19,3800] + ldr x1, [x19,3848] strh w4, [x1,x2,lsl 1] -.L981: +.L1146: add w0, w0, 1 uxth w0, w0 - b .L980 -.L989: + b .L1145 +.L1154: ldr x19, [sp,16] ldp x29, x30, [sp], 32 ret @@ -6602,12 +7260,12 @@ zftl_read_flash_info: adrp x0, .LANCHOR0 add x1, x1, :lo12:.LANCHOR2 add x0, x0, :lo12:.LANCHOR0 - add x1, x1, 368 + add x1, x1, 376 mov w5, 1 ldrb w2, [x1,9] - ldrh w3, [x0,166] + ldrh w3, [x0,210] mul w2, w2, w3 - ldrb w3, [x0,140] + ldrb w3, [x0,188] strb w3, [x19,7] uxth w2, w2 strh w2, [x19,4] @@ -6622,23 +7280,23 @@ zftl_read_flash_info: ldrb w2, [x1,9] strb w2, [x19,6] mov w2, 32 - ldrb w4, [x0,152] + ldrb w4, [x0,98] ldrb w1, [x1,7] strb w1, [x19,9] mov x1, 0 strb w2, [x19,8] -.L991: +.L1156: cmp w4, w1, uxtb - bls .L993 - add x2, x0, 156 + bls .L1158 + add x2, x0, 200 ldrb w3, [x19,10] ldrb w2, [x1,x2] add x1, x1, 1 lsl w2, w5, w2 orr w2, w2, w3 strb w2, [x19,10] - b .L991 -.L993: + b .L1156 +.L1158: ldr x19, [sp,16] ldp x29, x30, [sp], 32 ret @@ -6657,60 +7315,60 @@ gc_init: add x19, x19, :lo12:.LANCHOR0 add x20, x20, :lo12:.LANCHOR4 str x21, [sp,32] - add x21, x19, 2840 + add x21, x19, 2888 mov x0, x21 - strb wzr, [x19,3193] - strb wzr, [x20,1050] + strb wzr, [x19,3241] + strb wzr, [x20,1098] bl ftl_memset - ldrh w1, [x19,3228] + ldrh w1, [x19,3276] mov w0, -1 - ldrb w3, [x19,3196] - strh w0, [x19,2840] + ldrb w3, [x19,3244] + strh w0, [x19,2888] lsr w0, w1, 2 lsr w2, w1, 1 - strh w0, [x19,2876] - strh w0, [x19,2814] - ldrh w0, [x19,3194] - strh w2, [x19,2878] + strh w0, [x19,2924] + strh w0, [x19,2862] + ldrh w0, [x19,3242] + strh w2, [x19,2926] mul w2, w1, w3 mul w0, w0, w3 - strh w1, [x19,2816] + strh w1, [x19,2864] uxth w2, w2 lsl w0, w0, 2 sub w4, w2, #32 - strh w2, [x19,2810] - strh w4, [x19,2812] - str xzr, [x19,2848] - strh wzr, [x19,3230] - strh wzr, [x19,3224] - strh wzr, [x19,3226] + strh w2, [x19,2858] + strh w4, [x19,2860] + str xzr, [x19,2896] + strh wzr, [x19,3278] + strh wzr, [x19,3272] + strh wzr, [x19,3274] bl ftl_malloc - ldrb w1, [x19,3196] - str x0, [x20,1056] - ldrh w0, [x19,3194] + ldrb w1, [x19,3244] + str x0, [x20,1104] + ldrh w0, [x19,3242] mul w0, w0, w1 lsl w0, w0, 2 bl ftl_malloc - str x0, [x20,1064] - ldrh w1, [x19,3194] - ldrb w0, [x19,3196] + str x0, [x20,1112] + ldrh w1, [x19,3242] + ldrb w0, [x19,3244] mul w0, w1, w0 bl ftl_malloc - str x0, [x19,3184] - ldrb w1, [x19,3196] - ldrh w0, [x19,3194] + str x0, [x19,3232] + ldrb w1, [x19,3244] + ldrh w0, [x19,3242] mul w0, w0, w1 lsl w0, w0, 2 bl ftl_malloc - str x0, [x19,3168] - ldrb w1, [x19,3196] - ldrh w0, [x19,3194] + str x0, [x19,3216] + ldrb w1, [x19,3244] + ldrh w0, [x19,3242] mul w0, w0, w1 lsl w0, w0, 2 bl ftl_malloc - str x0, [x20,1072] - ldrh w0, [x19,3232] - strh w0, [x19,2808] + str x0, [x20,1120] + ldrh w0, [x19,3280] + strh w0, [x19,2856] ldr x21, [sp,32] ldp x19, x20, [sp,16] ldp x29, x30, [sp], 48 @@ -6730,16 +7388,16 @@ gc_static_wearleveling: stp x23, x24, [sp,48] stp x25, x26, [sp,64] stp x27, x28, [sp,80] - ldr x6, [x0,2800] + ldr x6, [x0,2848] ldr w0, [x6,32] cmp w0, w1 - bls .L996 + bls .L1161 ldr w1, [x6,36] add w1, w1, w0, lsr 10 and w0, w0, 1023 str w1, [x6,36] str w0, [x6,32] -.L996: +.L1161: add x0, x20, :lo12:.LANCHOR0 ldr x0, [x0,80] ldr w1, [x0,568] @@ -6747,13 +7405,13 @@ gc_static_wearleveling: add w1, w1, 860160 add w1, w1, 3840 cmp w2, w1 - bhi .L997 + bhi .L1162 ldr w1, [x0,572] ldr w3, [x6,36] add w1, w1, 32 cmp w3, w1 - bls .L995 -.L997: + bls .L1160 +.L1162: ldr w1, [x6,36] mov w9, 0 str w1, [x0,572] @@ -6770,29 +7428,29 @@ gc_static_wearleveling: mov w21, w9 mov w19, w26 mov w12, w26 -.L999: +.L1164: cmp w3, w11 - bcs .L1043 + bcs .L1208 ubfiz x0, x3, 2, 16 add x5, x10, x0 ldrb w5, [x5,2] - tbz x5, 3, .L1000 + tbz x5, 3, .L1165 ldrh w5, [x10,x0] and w8, w5, 2047 ldr w5, [x10,x0] ubfx x0, x5, 11, 8 - b .L1001 -.L1000: + b .L1166 +.L1165: tst w5, 24 - bne .L1002 + bne .L1167 ldrh w5, [x10,x0] mov w0, 65535 and w8, w5, 2047 - b .L1001 -.L1002: + b .L1166 +.L1167: ldr w5, [x10,x0] ubfx x0, x5, 11, 8 -.L1025: +.L1190: cmp w19, w0 add w2, w2, 1 csel w19, w19, w0, cc @@ -6802,52 +7460,50 @@ gc_static_wearleveling: uxth w2, w2 uxth w19, w19 uxth w21, w0 -.L1026: +.L1191: add w3, w3, 1 uxth w3, w3 - b .L999 -.L1043: + b .L1164 +.L1208: ldrh w0, [x6,96] cmp w0, w22 - bcs .L1004 + bcs .L1169 strh w22, [x6,96] -.L1004: +.L1169: ldrh w0, [x6,98] cmp w0, w21 - bcs .L1005 + bcs .L1170 strh w21, [x6,98] -.L1005: +.L1170: adrp x23, .LANCHOR2 str x23, [x29,128] - add x0, x23, :lo12:.LANCHOR2 udiv w3, w9, w1 strh w3, [x6,88] - ldr w0, [x0,400] + ldr w0, [x23,#:lo12:.LANCHOR2] udiv w4, w4, w2 strh w4, [x6,90] - tbz x0, 10, .L1006 - adrp x0, .LC70 + tbz x0, 10, .L1171 + adrp x0, .LC109 uxth w3, w3 - add x0, x0, :lo12:.LC70 + add x0, x0, :lo12:.LC109 uxth w4, w4 bl printk -.L1006: +.L1171: ldr x0, [x29,128] adrp x25, .LANCHOR4 - add x0, x0, :lo12:.LANCHOR2 - ldr w0, [x0,400] - tbz x0, 10, .L1007 + ldr w0, [x0,#:lo12:.LANCHOR2] + tbz x0, 10, .L1172 add x6, x25, :lo12:.LANCHOR4 - adrp x0, .LC71 - add x0, x0, :lo12:.LC71 + adrp x0, .LC110 + add x0, x0, :lo12:.LC110 mov w1, w26 mov w2, w19 mov w3, w22 - ldrh w5, [x6,1080] + ldrh w5, [x6,1128] mov w4, w21 - ldrh w6, [x6,1082] + ldrh w6, [x6,1130] bl printk -.L1007: +.L1172: add x0, x20, :lo12:.LANCHOR0 mov w1, 255 mov w2, 128 @@ -6858,39 +7514,39 @@ gc_static_wearleveling: add x1, x25, :lo12:.LANCHOR4 sub w0, w21, w19 str w0, [x29,136] - ldrh w0, [x1,1082] + ldrh w0, [x1,1130] ldr w2, [x29,136] cmp w2, w0 - bgt .L1008 - ldrh w1, [x1,1080] + bgt .L1173 + ldrh w1, [x1,1128] sub w0, w22, w26 cmp w0, w1 - bgt .L1008 -.L1015: - cbz w19, .L1017 + bgt .L1173 +.L1180: + cbz w19, .L1182 add x0, x20, :lo12:.LANCHOR0 - ldr x0, [x0,2800] + ldr x0, [x0,2848] ldrh w0, [x0,134] - b .L1018 -.L1008: + b .L1183 +.L1173: add x9, x20, :lo12:.LANCHOR0 - adrp x27, .LC73 - adrp x28, .LC72 + adrp x27, .LC112 + adrp x28, .LC111 mov w24, 0 mov x23, x9 str w24, [x29,140] - ldr x0, [x9,2800] + ldr x0, [x9,2848] ldrh w21, [x0,134] sub w0, w22, w26 str w0, [x29,124] - add x0, x27, :lo12:.LC73 + add x0, x27, :lo12:.LC112 str x0, [x29,112] - add x0, x28, :lo12:.LC72 + add x0, x28, :lo12:.LC111 str x0, [x29,104] -.L1011: +.L1176: ldrh w0, [x23,56] cmp w0, w21 - bls .L1015 + bls .L1180 uxtw x22, w21 ldr x28, [x23,64] lsl x27, x22, 2 @@ -6898,24 +7554,24 @@ gc_static_wearleveling: ldrb w0, [x0,2] and w1, w0, 224 cmp w1, 224 - beq .L1012 + beq .L1177 tst w0, 192 cset w2, eq - cbnz w2, .L1012 + cbnz w2, .L1177 ubfx x0, x0, 3, 2 and w0, w0, 2 uxtb w1, w0 add x0, x25, :lo12:.LANCHOR4 - cbz w1, .L1013 - ldrh w0, [x0,1082] + cbz w1, .L1178 + ldrh w0, [x0,1130] ldr w1, [x29,136] cmp w1, w0 - ble .L1014 + ble .L1179 ldr w0, [x28,x27] add w1, w19, 1 ubfx x0, x0, 11, 8 cmp w0, w1 - bgt .L1014 + bgt .L1179 mov w1, w2 mov w0, w21 mov w2, 1 @@ -6924,9 +7580,8 @@ gc_static_wearleveling: add w0, w0, 1 str w0, [x29,140] ldr x0, [x29,128] - add x0, x0, :lo12:.LANCHOR2 - ldr w0, [x0,400] - tbz x0, 10, .L1014 + ldr w0, [x0,#:lo12:.LANCHOR2] + tbz x0, 10, .L1179 ldr x0, [x23,64] ldr x11, [x23,72] add x0, x0, x27 @@ -6934,25 +7589,24 @@ gc_static_wearleveling: ldr w6, [x28,x27] ldrb w2, [x0,2] ldr x0, [x29,104] - b .L1042 -.L1013: - ldrh w0, [x0,1080] + b .L1207 +.L1178: + ldrh w0, [x0,1128] ldr w2, [x29,124] cmp w2, w0 - ble .L1014 + ble .L1179 ldrh w0, [x28,x27] add w2, w26, 1 and w0, w0, 2047 cmp w0, w2 - bgt .L1014 + bgt .L1179 mov w0, w21 mov w2, 1 add w24, w24, 1 bl gc_add_sblk ldr x0, [x29,128] - add x0, x0, :lo12:.LANCHOR2 - ldr w0, [x0,400] - tbz x0, 10, .L1014 + ldr w0, [x0,#:lo12:.LANCHOR2] + tbz x0, 10, .L1179 ldr x0, [x23,64] ldr x11, [x23,72] add x0, x0, x27 @@ -6960,86 +7614,86 @@ gc_static_wearleveling: ldr w6, [x28,x27] ldrb w2, [x0,2] ldr x0, [x29,112] -.L1042: +.L1207: ldrh w3, [x11,x22,lsl 1] mov w1, w21 - ldrh w4, [x23,2896] + ldrh w4, [x23,2944] ubfx x2, x2, 5, 3 and w5, w5, 2047 ubfx x6, x6, 11, 8 bl printk -.L1014: +.L1179: cmp w24, 4 - bhi .L1015 + bhi .L1180 ldr w0, [x29,140] cmp w0, 4 - bhi .L1015 -.L1012: + bhi .L1180 +.L1177: add w10, w21, 1 uxth w21, w10 - b .L1011 -.L1020: + b .L1176 +.L1185: ubfiz x3, x0, 2, 16 ldr x4, [x1,64] ldr w1, [x4,x3] ubfx x2, x1, 11, 8 cmp w2, w19 - bcc .L1019 + bcc .L1184 sub w2, w2, w19 bfi w1, w2, 11, 8 str w1, [x4,x3] -.L1019: +.L1184: add w0, w0, 1 uxth w0, w0 -.L1018: +.L1183: add x1, x20, :lo12:.LANCHOR0 ldrh w2, [x1,56] cmp w2, w0 - bhi .L1020 - ldr x0, [x1,2800] + bhi .L1185 + ldr x0, [x1,2848] ldrh w1, [x0,72] add w1, w19, w1 strh w1, [x0,72] ldrh w1, [x0,98] cmp w1, w19 - bls .L1017 + bls .L1182 sub w19, w1, w19 strh w19, [x0,98] -.L1017: - cbz w26, .L995 +.L1182: + cbz w26, .L1160 add x0, x20, :lo12:.LANCHOR0 - ldr x0, [x0,2800] + ldr x0, [x0,2848] ldrh w0, [x0,134] -.L1022: +.L1187: add x1, x20, :lo12:.LANCHOR0 ldrh w2, [x1,56] cmp w2, w0 - bls .L1044 + bls .L1209 ubfiz x3, x0, 2, 16 ldr x4, [x1,64] ldrh w1, [x4,x3] and w2, w1, 2047 cmp w2, w26 - blt .L1023 + blt .L1188 sub w2, w2, w26 bfi w1, w2, 0, 11 strh w1, [x4,x3] -.L1023: +.L1188: add w0, w0, 1 uxth w0, w0 - b .L1022 -.L1044: - ldr x0, [x1,2800] + b .L1187 +.L1209: + ldr x0, [x1,2848] ldrh w1, [x0,74] add w1, w26, w1 strh w1, [x0,74] ldrh w1, [x0,96] cmp w1, w26 - bls .L995 + bls .L1160 sub w7, w1, w26 strh w7, [x0,96] - b .L995 -.L1001: + b .L1160 +.L1166: cmp w26, w8 add w1, w1, 1 csel w7, w26, w8, cc @@ -7050,9 +7704,9 @@ gc_static_wearleveling: uxth w1, w1 uxth w26, w7 uxth w22, w8 - bne .L1025 - b .L1026 -.L995: + bne .L1190 + b .L1191 +.L1160: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -7078,78 +7732,78 @@ zftl_sblk_list_init: mov w24, 6 mov w23, 32768 ldrh w2, [x19,56] - adrp x26, .LC74 + adrp x26, .LC113 ldr x0, [x19,8] mov w25, -1 - add x26, x26, :lo12:.LC74 + add x26, x26, :lo12:.LC113 mul w2, w2, w24 bl ftl_memset - ldrh w22, [x19,3228] - ldrb w0, [x19,3196] - str xzr, [x19,3240] - str xzr, [x19,3248] + ldrh w22, [x19,3276] + ldrb w0, [x19,3244] + str xzr, [x19,3288] + str xzr, [x19,3296] mul w22, w0, w22 - str xzr, [x19,3256] - str xzr, [x19,3216] + str xzr, [x19,3304] + str xzr, [x19,3264] sdiv w22, w23, w22 - str xzr, [x19,3208] - str xzr, [x19,3200] - strh wzr, [x19,2788] - strh wzr, [x19,2790] - strh wzr, [x19,2792] - strh wzr, [x19,2794] - strh wzr, [x19,2798] - strh wzr, [x19,2796] + str xzr, [x19,3256] + str xzr, [x19,3248] + strh wzr, [x19,2828] + strh wzr, [x19,2830] + strh wzr, [x19,2832] + strh wzr, [x19,2834] + strh wzr, [x19,2838] + strh wzr, [x19,2836] sxth w0, w22 str w0, [x29,108] - ldr x0, [x19,2800] + ldr x0, [x19,2848] ldrsh w19, [x0,134] strh wzr, [x0,146] -.L1046: +.L1211: add x1, x21, :lo12:.LANCHOR0 ldrh w0, [x1,56] cmp w19, w0 - bge .L1076 + bge .L1241 sxtw x22, w19 ldr x27, [x1,64] ldr w2, [x29,108] add x27, x27, x22, lsl 2 ldrb w0, [x27,3] - cbz w0, .L1047 + cbz w0, .L1212 mov w0, 0 - ldrb w5, [x1,3196] - ldrh w6, [x1,3228] + ldrb w5, [x1,3244] + ldrh w6, [x1,3276] mov w2, w0 - ldr x4, [x1,2800] -.L1048: + ldr x4, [x1,2848] +.L1213: cmp w0, w5 - bge .L1077 + bge .L1242 ldrb w1, [x27,3] asr w1, w1, w0 - tbnz x1, 0, .L1049 + tbnz x1, 0, .L1214 add w2, w6, w2 sxth w2, w2 - b .L1050 -.L1049: + b .L1215 +.L1214: ldrh w1, [x4,146] add w1, w1, 1 strh w1, [x4,146] -.L1050: +.L1215: add w0, w0, 1 - b .L1048 -.L1077: - cbz w2, .L1052 + b .L1213 +.L1242: + cbz w2, .L1217 sdiv w2, w23, w2 sxth w2, w2 - b .L1047 -.L1052: + b .L1212 +.L1217: ldrb w0, [x27,2] orr w0, w0, -32 strb w0, [x27,2] add x0, x21, :lo12:.LANCHOR0 ldr x0, [x0,72] strh w25, [x0,x22,lsl 1] -.L1047: +.L1212: add x20, x21, :lo12:.LANCHOR0 smull x0, w19, w24 ldr x1, [x20,8] @@ -7162,112 +7816,112 @@ zftl_sblk_list_init: ldrb w1, [x27,2] and w0, w1, 224 cmp w0, 224 - beq .L1055 + beq .L1220 cmp w0, 32 cset w28, eq - cbnz w28, .L1055 + cbnz w28, .L1220 ldr x2, [x20,80] ldrh w4, [x2,16] cmp w19, w4 - beq .L1055 + beq .L1220 ldrh w4, [x2,48] cmp w19, w4 - beq .L1055 + beq .L1220 ldrh w2, [x2,80] cmp w19, w2 - beq .L1055 + beq .L1220 cmp w0, 64 - bne .L1057 + bne .L1222 uxth w27, w19 - add x0, x20, 3208 + add x0, x20, 3256 mov w1, w27 - add x2, x20, 2794 - b .L1074 -.L1057: + add x2, x20, 2834 + b .L1239 +.L1222: cmp w0, 96 - bne .L1058 + bne .L1223 uxth w27, w19 - add x0, x20, 3216 + add x0, x20, 3264 mov w1, w27 - add x2, x20, 2796 - b .L1074 -.L1058: + add x2, x20, 2836 + b .L1239 +.L1223: cmp w0, 160 - bne .L1059 + bne .L1224 uxth w27, w19 - add x0, x20, 3200 + add x0, x20, 3248 mov w1, w27 - add x2, x20, 2798 -.L1074: + add x2, x20, 2838 +.L1239: bl _insert_data_list ldr x0, [x20,72] ldrh w0, [x0,x22,lsl 1] cmp w0, 7 - bhi .L1055 + bhi .L1220 mov w0, w27 mov w1, 1 mov w2, w28 - b .L1072 -.L1059: - cbnz w0, .L1055 + b .L1237 +.L1224: + cbnz w0, .L1220 ldr x0, [x20,72] ldrh w2, [x0,x22,lsl 1] - cbz w2, .L1060 + cbz w2, .L1225 mov x0, x26 mov w1, w19 bl printk ldrb w0, [x27,2] - tbz x0, 4, .L1061 + tbz x0, 4, .L1226 mov w1, 5 - b .L1068 -.L1061: + b .L1233 +.L1226: mov w1, 2 -.L1068: +.L1233: bfi w0, w1, 5, 3 mov w2, 0 strb w0, [x27,2] mov w1, 1 mov w0, w19 -.L1072: +.L1237: bl gc_add_sblk - b .L1055 -.L1060: + b .L1220 +.L1225: ands w1, w1, 24 add x2, x21, :lo12:.LANCHOR0 - bne .L1063 - add x0, x2, 3240 + bne .L1228 + add x0, x2, 3288 mov w1, w19 - add x2, x2, 2788 - b .L1070 -.L1063: + add x2, x2, 2828 + b .L1235 +.L1228: cmp w1, 16 - bne .L1064 - add x0, x2, 3248 + bne .L1229 + add x0, x2, 3296 mov w1, w19 - add x2, x2, 2790 - b .L1070 -.L1064: - add x0, x2, 3256 + add x2, x2, 2830 + b .L1235 +.L1229: + add x0, x2, 3304 mov w1, w19 - add x2, x2, 2792 -.L1070: + add x2, x2, 2832 +.L1235: bl _insert_free_list -.L1055: +.L1220: add w19, w19, 1 sxth w19, w19 - b .L1046 -.L1076: - ldr x0, [x1,2800] - ldrh w2, [x1,2788] + b .L1211 +.L1241: + ldr x0, [x1,2848] + ldrh w2, [x1,2828] strh w2, [x0,114] - ldrh w2, [x1,2790] + ldrh w2, [x1,2830] strh w2, [x0,118] - ldrh w2, [x1,2792] + ldrh w2, [x1,2832] strh w2, [x0,116] - ldrh w2, [x1,2794] + ldrh w2, [x1,2834] strh w2, [x0,122] - ldrh w2, [x1,2798] - ldrh w1, [x1,2796] + ldrh w2, [x1,2838] + ldrh w1, [x1,2836] strh w2, [x0,120] strh w1, [x0,124] ldp x19, x20, [sp,16] @@ -7286,7 +7940,7 @@ ftl_open_sblk_init: add x29, sp, 0 stp x19, x20, [sp,16] stp x23, x24, [sp,48] - adrp x20, .LC67 + adrp x20, .LC106 adrp x23, .LANCHOR0 stp x25, x26, [sp,64] stp x21, x22, [sp,32] @@ -7295,10 +7949,10 @@ ftl_open_sblk_init: mov w21, w1 add x25, x0, 16 mov x26, x23 - add x20, x20, :lo12:.LC67 + add x20, x20, :lo12:.LC106 mov w24, -1 -.L1079: -.L1082: +.L1244: +.L1247: mov w0, w21 bl ftl_alloc_sblk uxth w22, w0 @@ -7314,22 +7968,22 @@ ftl_open_sblk_init: cmp w21, 2 strh wzr, [x19,2] mov w3, 0 - ldrh w1, [x0,3228] + ldrh w1, [x0,3276] strb wzr, [x19,5] strh wzr, [x19,10] mul w2, w1, w2 strh w2, [x19,6] strb w21, [x19,4] - beq .L1080 - ldrb w3, [x0,3196] + beq .L1245 + ldrb w3, [x0,3244] mul w3, w1, w3 uxth w3, w3 -.L1080: +.L1245: add x27, x26, :lo12:.LANCHOR0 strh w3, [x19,12] ubfiz x28, x22, 1, 16 - ldrb w2, [x27,3196] - ldr x0, [x27,3792] + ldrb w2, [x27,3244] + ldr x0, [x27,3840] add x0, x0, x3, uxth 2 mul w2, w1, w2 mov w1, 255 @@ -7339,7 +7993,7 @@ ftl_open_sblk_init: ldrh w1, [x19,6] strh w1, [x0,x28] ldrb w0, [x19,9] - cbnz w0, .L1078 + cbnz w0, .L1243 mov x0, x20 mov w1, w22 bl printk @@ -7347,8 +8001,8 @@ ftl_open_sblk_init: strh w24, [x0,x28] mov w0, 7 strb w0, [x19,4] - b .L1082 -.L1078: + b .L1247 +.L1243: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -7361,49 +8015,48 @@ ftl_open_sblk_init: .global pm_free_sblk .type pm_free_sblk, %function pm_free_sblk: - stp x29, x30, [sp, -352]! + stp x29, x30, [sp, -368]! add x29, sp, 0 - stp x21, x22, [sp,32] - adrp x21, .LANCHOR4 - str x27, [sp,80] - stp x19, x20, [sp,16] - add x19, x21, :lo12:.LANCHOR4 stp x23, x24, [sp,48] + adrp x23, .LANCHOR4 + add x0, x23, :lo12:.LANCHOR4 + stp x19, x20, [sp,16] + stp x21, x22, [sp,32] stp x25, x26, [sp,64] - ldrh w0, [x19,1084] + stp x27, x28, [sp,80] + ldrh w0, [x0,1132] cmp w0, 128 - bls .L1085 + bls .L1250 adrp x1, .LANCHOR3 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR3 add x0, x0, :lo12:.LC0 - add x1, x1, 72 - mov w2, 74 + add x1, x1, 96 + mov w2, 76 bl printk -.L1086: - b .L1086 -.L1085: - add x23, x29, 96 +.L1250: + add x28, x29, 112 mov w1, 0 mov w2, 256 - mov x0, x23 - adrp x22, .LANCHOR0 + mov x0, x28 + adrp x21, .LANCHOR0 bl ftl_memset - add x2, x22, :lo12:.LANCHOR0 + add x2, x21, :lo12:.LANCHOR0 mov w0, 21 mov w1, 1 - ldrh w9, [x19,1084] mov x3, 0 - ldr x4, [x2,2800] - ldrh w6, [x2,3266] - ldrb w8, [x2,3264] + ldrh w6, [x2,3314] + ldr x4, [x2,2848] sub w0, w0, w6 - ldrh w7, [x4,698] + ldrb w8, [x2,3312] lsl w0, w1, w0 + add x1, x23, :lo12:.LANCHOR4 + ldrh w7, [x4,698] sub w0, w0, #1 -.L1087: + ldrh w9, [x1,1132] +.L1251: cmp w7, w3, uxth - bls .L1108 + bls .L1276 add x1, x4, x3, lsl 2 mov x2, 0 ldr w1, [x1,704] @@ -7411,82 +8064,97 @@ pm_free_sblk: and w1, w1, w0 udiv w1, w1, w8 uxth w1, w1 -.L1088: +.L1252: cmp w9, w2, uxth - bls .L1109 + bls .L1277 add x5, x4, x2, lsl 1 ldrh w5, [x5,416] cmp w5, w1 - bne .L1089 - ldrh w5, [x23,x2,lsl 1] + bne .L1253 + ldrh w5, [x28,x2,lsl 1] add w5, w5, 1 - strh w5, [x23,x2,lsl 1] -.L1089: + strh w5, [x28,x2,lsl 1] +.L1253: add x2, x2, 1 - b .L1088 -.L1109: + b .L1252 +.L1277: add x3, x3, 1 - b .L1087 -.L1108: - add x0, x22, :lo12:.LANCHOR0 + b .L1251 +.L1276: + add x1, x21, :lo12:.LANCHOR0 mov w25, 0 + adrp x24, .LC114 mov w19, w25 - mov w26, 65535 + adrp x26, .LANCHOR2 mov w27, -1 - ldrb w1, [x0,3196] - ldrh w20, [x0,3228] - mul w20, w1, w20 + ldrb w0, [x1,3244] + add x24, x24, :lo12:.LC114 + ldrh w20, [x1,3276] + mul w20, w0, w20 uxth w20, w20 -.L1092: - add x0, x21, :lo12:.LANCHOR4 - ldrh w0, [x0,1084] +.L1256: + add x0, x23, :lo12:.LANCHOR4 + ldrh w0, [x0,1132] cmp w0, w19 - bls .L1110 - add x1, x22, :lo12:.LANCHOR0 - sxtw x24, w19 - add x0, x24, 208 - ldr x2, [x1,2800] - ldrb w3, [x1,3264] - ldrh w0, [x2,x0,lsl 1] - ldrh w2, [x2,692] - sdiv w2, w2, w3 - cmp w2, w0 - bne .L1093 - ldrb w2, [x1,3196] - ldrh w1, [x1,3228] - mul w1, w2, w1 - strh w1, [x23,w19,sxtw 1] -.L1093: - ldrh w1, [x23,x24,lsl 1] - cmp w20, w1 - bls .L1094 - cmp w1, wzr + bls .L1278 + add x0, x21, :lo12:.LANCHOR0 + sxtw x22, w19 + add x1, x22, 208 + ldr x4, [x0,2848] + ldrb w2, [x0,3312] + ldrh w3, [x4,x1,lsl 1] + ldrh w1, [x4,692] + sdiv w1, w1, w2 + cmp w1, w3 + bne .L1257 + ldrb w1, [x0,3244] + ldrh w0, [x0,3276] + mul w0, w1, w0 + strh w0, [x28,w19,sxtw 1] +.L1257: + ldrh w0, [x28,x22,lsl 1] + cmp w20, w0 + bls .L1258 + cmp w0, wzr csel w25, w25, w19, eq - csel w20, w20, w1, eq -.L1094: - cbnz w1, .L1096 - cmp w0, w26 - beq .L1096 + csel w20, w20, w0, eq +.L1258: + cbnz w0, .L1260 + mov w0, 65535 + cmp w3, w0 + beq .L1260 + ldr w0, [x26,#:lo12:.LANCHOR2] + tbz x0, 12, .L1261 + ldrh w4, [x4,688] + mov x0, x24 + mov w1, w19 + mov w2, 0 + bl printk +.L1261: + add x1, x21, :lo12:.LANCHOR0 + add x22, x22, 208 + str x1, [x29,104] + ldr x0, [x1,2848] + ldrh w0, [x0,x22,lsl 1] bl ftl_free_sblk - add x24, x24, 208 - add x0, x22, :lo12:.LANCHOR0 - ldr x0, [x0,2800] - strh w27, [x0,x24,lsl 1] + ldr x1, [x29,104] + ldr x0, [x1,2848] + strh w27, [x0,x22,lsl 1] ldrh w1, [x0,688] sub w1, w1, #1 strh w1, [x0,688] -.L1096: +.L1260: add w19, w19, 1 uxth w19, w19 - b .L1092 -.L1110: + b .L1256 +.L1278: mov w0, w25 - ldr x27, [sp,80] ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] ldp x25, x26, [sp,64] - ldp x29, x30, [sp], 352 + ldp x27, x28, [sp,80] + ldp x29, x30, [sp], 368 ret .size pm_free_sblk, .-pm_free_sblk .align 2 @@ -7504,38 +8172,47 @@ ftl_memcpy: .global flash_into_data_init .type flash_into_data_init, %function flash_into_data_init: + adrp x1, .LANCHOR2 stp x29, x30, [sp, -32]! - mov w1, 0 - mov w2, 2048 add x29, sp, 0 - str x19, [sp,16] + ldr w0, [x1,#:lo12:.LANCHOR2] + stp x19, x20, [sp,16] + mov x20, x1 + tbz x0, 12, .L1281 + adrp x2, .LANCHOR3 + adrp x0, .LC115 + add x2, x2, :lo12:.LANCHOR3 + add x0, x0, :lo12:.LC115 + mov w1, 100 + add x2, x2, 112 + bl printk +.L1281: adrp x19, .LANCHOR0 + mov w1, 0 add x19, x19, :lo12:.LANCHOR0 - ldr x0, [x19,144] + mov w2, 2048 + ldr x0, [x19,192] bl ftl_memset - ldr x1, [x19,144] + ldr x1, [x19,192] mov w0, 21321 movk w0, 0x5359, lsl 16 mov w2, 32 str w0, [x1] mov w1, 2032 - ldr x0, [x19,144] + ldr x0, [x19,192] add x0, x0, 80 str w1, [x0,-72] mov w1, 1 strh w1, [x0,-64] - adrp x1, .LANCHOR4 - add x1, x1, :lo12:.LANCHOR4 - add x1, x1, 1088 + add x1, x19, 104 bl ftl_memcpy - ldr x0, [x19,144] - adrp x1, .LANCHOR2 - add x1, x1, :lo12:.LANCHOR2 + ldr x0, [x19,192] + add x1, x20, :lo12:.LANCHOR2 + add x1, x1, 376 mov w2, 32 - add x1, x1, 368 add x0, x0, 48 bl ftl_memcpy - ldr x19, [sp,16] + ldp x19, x20, [sp,16] ldp x29, x30, [sp], 32 ret .size flash_into_data_init, .-flash_into_data_init @@ -7544,14 +8221,14 @@ flash_into_data_init: .type ftl_memcpy32, %function ftl_memcpy32: mov x3, 0 -.L1114: +.L1286: cmp w2, w3 - bls .L1116 + bls .L1288 ldr w4, [x1,x3,lsl 2] str w4, [x0,x3,lsl 2] add x3, x3, 1 - b .L1114 -.L1116: + b .L1286 +.L1288: ret .size ftl_memcpy32, .-ftl_memcpy32 .align 2 @@ -7573,17 +8250,17 @@ js_hash: mov w0, 42982 mov x2, 0 movk w0, 0x47c6, lsl 16 -.L1119: +.L1291: cmp w1, w2 - bls .L1121 + bls .L1293 lsl w3, w0, 5 ldrb w4, [x5,x2] add w3, w3, w0, lsr 2 add x2, x2, 1 add w3, w3, w4 eor w0, w0, w3 - b .L1119 -.L1121: + b .L1291 +.L1293: ret .size js_hash, .-js_hash .align 2 @@ -7594,8 +8271,8 @@ timer_get_time: stp x29, x30, [sp, -16]! add x29, sp, 0 ldr x1, [x0,#:lo12:jiffies] - adrp x0, .LANCHOR4+1120 - ldr x0, [x0,#:lo12:.LANCHOR4+1120] + adrp x0, .LANCHOR4+1136 + ldr x0, [x0,#:lo12:.LANCHOR4+1136] sub x0, x1, x0 bl jiffies_to_msecs ldp x29, x30, [sp], 16 @@ -7615,10 +8292,10 @@ StorageSysDataLoad: mov w1, 0 bl ftl_memset bl rknand_device_lock - adrp x0, .LANCHOR4+1128 + adrp x0, .LANCHOR4+1144 mov x2, x19 mov w1, 1 - ldr x0, [x0,#:lo12:.LANCHOR4+1128] + ldr x0, [x0,#:lo12:.LANCHOR4+1144] ldr x3, [x0,24] mov w0, w20 blr x3 @@ -7638,10 +8315,10 @@ StorageSysDataStore: str x0, [x29,16] str x1, [x29,24] bl rknand_device_lock - adrp x1, .LANCHOR4+1128 + adrp x1, .LANCHOR4+1144 ldr x2, [x29,24] ldr x0, [x29,16] - ldr x1, [x1,#:lo12:.LANCHOR4+1128] + ldr x1, [x1,#:lo12:.LANCHOR4+1144] ldr x3, [x1,32] mov w1, 1 blr x3 @@ -7661,11 +8338,11 @@ FlashBootVendorRead: str x1, [x29,32] str x2, [x29,40] bl rknand_device_lock - adrp x3, .LANCHOR4+1128 + adrp x3, .LANCHOR4+1144 ldr x1, [x29,32] ldr x2, [x29,40] ldr x0, [x29,24] - ldr x3, [x3,#:lo12:.LANCHOR4+1128] + ldr x3, [x3,#:lo12:.LANCHOR4+1144] ldr x3, [x3,8] blr x3 str x0, [x29,40] @@ -7684,11 +8361,11 @@ FlashBootVendorWrite: str x1, [x29,32] str x2, [x29,40] bl rknand_device_lock - adrp x3, .LANCHOR4+1128 + adrp x3, .LANCHOR4+1144 ldr x1, [x29,32] ldr x2, [x29,40] ldr x0, [x29,24] - ldr x3, [x3,#:lo12:.LANCHOR4+1128] + ldr x3, [x3,#:lo12:.LANCHOR4+1144] ldr x3, [x3,16] blr x3 str x0, [x29,40] @@ -7701,20 +8378,20 @@ FlashBootVendorWrite: .global flash_sram_load_store .type flash_sram_load_store, %function flash_sram_load_store: - adrp x4, .LANCHOR4+1136 + adrp x4, .LANCHOR4+1152 mov x6, x0 stp x29, x30, [sp, -16]! uxtw x1, w1 add x29, sp, 0 - ldr x4, [x4,#:lo12:.LANCHOR4+1136] + ldr x4, [x4,#:lo12:.LANCHOR4+1152] add x4, x4, 4096 - cbnz w2, .L1128 + cbnz w2, .L1300 add x1, x4, x1 - b .L1130 -.L1128: + b .L1302 +.L1300: add x0, x4, x1 mov x1, x6 -.L1130: +.L1302: mov w2, w3 bl ftl_memcpy ldp x29, x30, [sp], 16 @@ -7731,13 +8408,13 @@ FlashCs123Init: .type rk_ftl_de_init, %function rk_ftl_de_init: stp x29, x30, [sp, -16]! - adrp x0, .LC75 + adrp x0, .LC116 mov w1, 0 add x29, sp, 0 - add x0, x0, :lo12:.LC75 + add x0, x0, :lo12:.LC116 bl printk - adrp x0, .LANCHOR4+1128 - ldr x0, [x0,#:lo12:.LANCHOR4+1128] + adrp x0, .LANCHOR4+1144 + ldr x0, [x0,#:lo12:.LANCHOR4+1144] ldr x0, [x0,80] blr x0 ldp x29, x30, [sp], 16 @@ -7747,10 +8424,10 @@ rk_ftl_de_init: .global rk_ftl_cache_write_back .type rk_ftl_cache_write_back, %function rk_ftl_cache_write_back: - adrp x0, .LANCHOR4+1128 + adrp x0, .LANCHOR4+1144 stp x29, x30, [sp, -16]! add x29, sp, 0 - ldr x0, [x0,#:lo12:.LANCHOR4+1128] + ldr x0, [x0,#:lo12:.LANCHOR4+1144] ldr x1, [x0,64] mov w0, 0 blr x1 @@ -7761,10 +8438,10 @@ rk_ftl_cache_write_back: .global rk_nand_suspend .type rk_nand_suspend, %function rk_nand_suspend: - adrp x0, .LANCHOR4+1128 + adrp x0, .LANCHOR4+1144 stp x29, x30, [sp, -16]! add x29, sp, 0 - ldr x0, [x0,#:lo12:.LANCHOR4+1128] + ldr x0, [x0,#:lo12:.LANCHOR4+1144] ldr x0, [x0,88] blr x0 ldp x29, x30, [sp], 16 @@ -7774,10 +8451,10 @@ rk_nand_suspend: .global rk_nand_resume .type rk_nand_resume, %function rk_nand_resume: - adrp x0, .LANCHOR4+1128 + adrp x0, .LANCHOR4+1144 stp x29, x30, [sp, -16]! add x29, sp, 0 - ldr x0, [x0,#:lo12:.LANCHOR4+1128] + ldr x0, [x0,#:lo12:.LANCHOR4+1144] ldr x0, [x0,96] blr x0 ldp x29, x30, [sp], 16 @@ -7787,10 +8464,10 @@ rk_nand_resume: .global rk_ftl_get_capacity .type rk_ftl_get_capacity, %function rk_ftl_get_capacity: - adrp x0, .LANCHOR4+1128 + adrp x0, .LANCHOR4+1144 stp x29, x30, [sp, -16]! add x29, sp, 0 - ldr x0, [x0,#:lo12:.LANCHOR4+1128] + ldr x0, [x0,#:lo12:.LANCHOR4+1144] ldr x1, [x0,72] mov w0, 0 blr x1 @@ -7801,10 +8478,10 @@ rk_ftl_get_capacity: .global rk_nandc_get_irq_status .type rk_nandc_get_irq_status, %function rk_nandc_get_irq_status: - adrp x1, .LANCHOR4+1128 + adrp x1, .LANCHOR4+1144 stp x29, x30, [sp, -16]! add x29, sp, 0 - ldr x1, [x1,#:lo12:.LANCHOR4+1128] + ldr x1, [x1,#:lo12:.LANCHOR4+1144] ldr x1, [x1,120] blr x1 ldp x29, x30, [sp], 16 @@ -7814,10 +8491,10 @@ rk_nandc_get_irq_status: .global rknand_proc_ftlread .type rknand_proc_ftlread, %function rknand_proc_ftlread: - adrp x1, .LANCHOR4+1128 + adrp x1, .LANCHOR4+1144 stp x29, x30, [sp, -16]! add x29, sp, 0 - ldr x1, [x1,#:lo12:.LANCHOR4+1128] + ldr x1, [x1,#:lo12:.LANCHOR4+1144] ldr x1, [x1,128] blr x1 ldp x29, x30, [sp], 16 @@ -7827,11 +8504,11 @@ rknand_proc_ftlread: .global FtlWrite .type FtlWrite, %function FtlWrite: - adrp x4, .LANCHOR4+1128 + adrp x4, .LANCHOR4+1144 uxtb w0, w0 stp x29, x30, [sp, -16]! add x29, sp, 0 - ldr x4, [x4,#:lo12:.LANCHOR4+1128] + ldr x4, [x4,#:lo12:.LANCHOR4+1144] ldr x4, [x4,48] blr x4 ldp x29, x30, [sp], 16 @@ -7841,11 +8518,11 @@ FtlWrite: .global FtlRead .type FtlRead, %function FtlRead: - adrp x4, .LANCHOR4+1128 + adrp x4, .LANCHOR4+1144 uxtb w0, w0 stp x29, x30, [sp, -16]! add x29, sp, 0 - ldr x4, [x4,#:lo12:.LANCHOR4+1128] + ldr x4, [x4,#:lo12:.LANCHOR4+1144] ldr x4, [x4,40] blr x4 ldp x29, x30, [sp], 16 @@ -7855,10 +8532,10 @@ FtlRead: .global FtlDiscard .type FtlDiscard, %function FtlDiscard: - adrp x2, .LANCHOR4+1128 + adrp x2, .LANCHOR4+1144 stp x29, x30, [sp, -16]! add x29, sp, 0 - ldr x2, [x2,#:lo12:.LANCHOR4+1128] + ldr x2, [x2,#:lo12:.LANCHOR4+1144] ldr x2, [x2,56] blr x2 ldp x29, x30, [sp], 16 @@ -7868,10 +8545,10 @@ FtlDiscard: .global rk_ftl_garbage_collect .type rk_ftl_garbage_collect, %function rk_ftl_garbage_collect: - adrp x2, .LANCHOR4+1128 + adrp x2, .LANCHOR4+1144 stp x29, x30, [sp, -16]! add x29, sp, 0 - ldr x2, [x2,#:lo12:.LANCHOR4+1128] + ldr x2, [x2,#:lo12:.LANCHOR4+1144] ldr x2, [x2,104] blr x2 ldp x29, x30, [sp], 16 @@ -7881,10 +8558,10 @@ rk_ftl_garbage_collect: .global ReadFlashInfo .type ReadFlashInfo, %function ReadFlashInfo: - adrp x1, .LANCHOR4+1128 + adrp x1, .LANCHOR4+1144 stp x29, x30, [sp, -16]! add x29, sp, 0 - ldr x1, [x1,#:lo12:.LANCHOR4+1128] + ldr x1, [x1,#:lo12:.LANCHOR4+1144] ldr x1, [x1,112] blr x1 ldp x29, x30, [sp], 16 @@ -7900,9 +8577,9 @@ rknand_print_hex: stp x21, x22, [sp,32] stp x23, x24, [sp,48] mov x19, 0 - adrp x23, .LC76 - adrp x21, .LC77 - adrp x24, .LC8 + adrp x23, .LC117 + adrp x21, .LC118 + adrp x24, .LC1 stp x25, x26, [sp,64] str x27, [sp,80] mov x22, x1 @@ -7910,49 +8587,49 @@ rknand_print_hex: mov w25, w2 uxtw x26, w3 mov w20, w19 - add x23, x23, :lo12:.LC76 - add x21, x21, :lo12:.LC77 - add x24, x24, :lo12:.LC8 -.L1145: + add x23, x23, :lo12:.LC117 + add x21, x21, :lo12:.LC118 + add x24, x24, :lo12:.LC1 +.L1317: cmp x19, x26 - beq .L1153 - cbnz w20, .L1146 + beq .L1325 + cbnz w20, .L1318 mov x0, x23 mov x1, x27 mov x2, x22 mov w3, w19 bl printk -.L1146: +.L1318: cmp w25, 4 mov x0, x21 - bne .L1147 + bne .L1319 ldr w1, [x22,x19,lsl 2] - b .L1152 -.L1147: + b .L1324 +.L1319: cmp w25, 2 - bne .L1149 + bne .L1321 ldrsh w1, [x22,x19,lsl 1] - b .L1152 -.L1149: + b .L1324 +.L1321: ldrb w1, [x22,x19] -.L1152: +.L1324: bl printk add w20, w20, 1 cmp w20, 15 - bls .L1150 - adrp x1, .LC78 + bls .L1322 + adrp x1, .LC119 mov x0, x24 - add x1, x1, :lo12:.LC78 + add x1, x1, :lo12:.LC119 mov w20, 0 bl printk -.L1150: +.L1322: add x19, x19, 1 - b .L1145 -.L1153: - adrp x0, .LC8 - adrp x1, .LC78 - add x1, x1, :lo12:.LC78 - add x0, x0, :lo12:.LC8 + b .L1317 +.L1325: + adrp x0, .LC1 + adrp x1, .LC119 + add x1, x1, :lo12:.LC119 + add x0, x0, :lo12:.LC1 bl printk ldr x27, [sp,80] ldp x19, x20, [sp,16] @@ -7980,7 +8657,7 @@ hynix_get_read_retry_default: stp x27, x28, [sp,80] cmp w25, 2 str x19, [x29,128] - ldr x27, [x0,144] + ldr x27, [x0,192] add x0, x27, 112 str x0, [x29,136] mov w0, -84 @@ -7991,30 +8668,30 @@ hynix_get_read_retry_default: add x26, x27, 128 strb w1, [x27,130] strb w0, [x27,131] - bne .L1155 + bne .L1327 ldr x1, [x29,136] mov w0, -89 strb w0, [x1,16] adrp x0, .LANCHOR2+425 mov w1, -9 strb w1, [x0,#:lo12:.LANCHOR2+425] - b .L1210 -.L1155: + b .L1382 +.L1327: cmp w25, 3 - bne .L1157 + bne .L1329 mov x4, 0 -.L1158: +.L1330: sub w0, w4, #80 strb w0, [x26,x4] add x4, x4, 1 cmp x4, 8 - bne .L1158 + bne .L1330 mov w21, w4 mov w28, w4 - b .L1156 -.L1157: + b .L1328 +.L1329: cmp w25, 4 - bne .L1159 + bne .L1331 mov w4, -52 strb w4, [x27,128] mov w4, -65 @@ -8030,10 +8707,10 @@ hynix_get_read_retry_default: strb w1, [x27,134] strb w4, [x27,132] strb w0, [x27,135] - b .L1156 -.L1159: + b .L1328 +.L1331: cmp w25, 5 - bne .L1160 + bne .L1332 mov w0, 56 strb w0, [x27,128] mov w0, 57 @@ -8043,10 +8720,10 @@ hynix_get_read_retry_default: strb w0, [x27,130] mov w0, 59 strb w0, [x27,131] - b .L1244 -.L1160: + b .L1416 +.L1332: cmp w25, 6 - bne .L1161 + bne .L1333 mov w0, 14 strb w0, [x27,128] mov w0, 15 @@ -8056,32 +8733,32 @@ hynix_get_read_retry_default: strb w0, [x27,130] mov w0, 17 strb w0, [x27,131] - b .L1244 -.L1161: + b .L1416 +.L1333: cmp w25, 7 - bne .L1210 + bne .L1382 mov x0, 0 -.L1162: +.L1334: sub w1, w0, #80 strb w1, [x26,x0] add x0, x0, 1 cmp x0, 8 - bne .L1162 + bne .L1334 mov w0, -44 mov w21, 12 strb w0, [x27,136] mov w28, 10 mov w0, -43 strb w0, [x27,137] - b .L1156 -.L1210: + b .L1328 +.L1382: mov w21, 7 -.L1244: +.L1416: mov w28, 4 -.L1156: +.L1328: sub w0, w25, #1 cmp w0, 1 - bhi .L1241 + bhi .L1413 ldr x0, [x29,128] adrp x24, .LANCHOR2 add x24, x24, :lo12:.LANCHOR2 @@ -8089,13 +8766,13 @@ hynix_get_read_retry_default: add x19, x0, :lo12:.LANCHOR0 mov w27, 55 add x24, x24, 408 -.L1163: - ldrb w0, [x19,152] +.L1335: + ldrb w0, [x19,98] cmp w0, w23 - bls .L1170 + bls .L1342 add x0, x19, x23, sxtw ldr x2, [x29,136] - ldrb w0, [x0,156] + ldrb w0, [x0,200] mov x20, 160 ldr x22, [x19,16] mov x25, 0 @@ -8103,7 +8780,7 @@ hynix_get_read_retry_default: madd x20, x0, x20, x2 add x22, x22, x1 add x20, x20, 32 -.L1165: +.L1337: str w27, [x22,2056] ldrb w0, [x26,x25] str w0, [x22,2052] @@ -8113,12 +8790,12 @@ hynix_get_read_retry_default: strb w0, [x20,x25] add x25, x25, 1 cmp w28, w25, uxtb - bhi .L1165 + bhi .L1337 mov x0, 0 -.L1166: +.L1338: add w2, w0, 8 mov x1, 0 -.L1167: +.L1339: add x3, x1, x0 add x1, x1, 4 add x3, x24, x3 @@ -8128,10 +8805,10 @@ hynix_get_read_retry_default: add w3, w5, w3 strb w3, [x20,w2,sxtw] add w2, w2, 8 - bne .L1167 + bne .L1339 add x0, x0, 1 cmp x0, 4 - bne .L1166 + bne .L1338 add w23, w23, 1 strb wzr, [x20,16] strb wzr, [x20,24] @@ -8141,11 +8818,11 @@ hynix_get_read_retry_default: strb wzr, [x20,48] strb wzr, [x20,41] strb wzr, [x20,49] - b .L1163 -.L1241: + b .L1335 +.L1413: sub w0, w25, #3 cmp w0, 4 - bhi .L1170 + bhi .L1342 mul w0, w28, w21 sub w23, w28, #1 mov w20, 0 @@ -8159,13 +8836,13 @@ hynix_get_read_retry_default: adrp x26, .LANCHOR4 add x0, x23, 1 str x0, [x29,112] -.L1171: +.L1343: ldr x0, [x29,128] add x0, x0, :lo12:.LANCHOR0 - ldrb w1, [x0,152] + ldrb w1, [x0,98] cmp w1, w20 - bhi .L1209 -.L1170: + bhi .L1381 +.L1342: ldr x0, [x29,136] strb w28, [x0,1] strb w21, [x0,2] @@ -8176,9 +8853,9 @@ hynix_get_read_retry_default: ldp x27, x28, [sp,80] ldp x29, x30, [sp], 144 ret -.L1209: +.L1381: add x1, x0, x20, sxtw - ldrb w1, [x1,156] + ldrb w1, [x1,200] ldr x0, [x0,16] mov x24, 160 ubfiz x2, x1, 8, 8 @@ -8194,28 +8871,28 @@ hynix_get_read_retry_default: cmp w25, 4 str w0, [x23,2056] ldr x1, [x29,104] - bne .L1172 + bne .L1344 mov w0, 64 str w1, [x23,2052] str w0, [x23,2048] mov w0, 204 - b .L1245 -.L1172: + b .L1417 +.L1344: cmp w19, 1 - bhi .L1174 + bhi .L1346 ldrb w0, [x27,128] str w0, [x23,2052] mov w0, 82 - b .L1246 -.L1174: + b .L1418 +.L1346: mov w0, 174 str w0, [x23,2052] str wzr, [x23,2048] mov w0, 176 -.L1245: +.L1417: str w0, [x23,2052] mov w0, 77 -.L1246: +.L1418: str w0, [x23,2048] mov w0, 22 str w0, [x23,2056] @@ -8229,13 +8906,13 @@ hynix_get_read_retry_default: str wzr, [x23,2056] str wzr, [x23,2052] str wzr, [x23,2052] - bne .L1175 + bne .L1347 mov w0, 31 str w0, [x23,2052] - b .L1176 -.L1175: + b .L1348 +.L1347: str wzr, [x23,2052] -.L1176: +.L1348: mov w7, 2 str w7, [x23,2052] str wzr, [x23,2052] @@ -8245,89 +8922,89 @@ hynix_get_read_retry_default: bl nandc_wait_flash_ready cmp w19, 1 mov w1, 16 - bls .L1178 + bls .L1350 ldr x7, [x29,104] cmp w25, 7 mov w1, 32 csel w1, w1, w7, eq -.L1178: +.L1350: adrp x0, .LANCHOR4 mov x7, 0 add x0, x0, :lo12:.LANCHOR4 - ldr x0, [x0,1144] -.L1179: + ldr x0, [x0,1160] +.L1351: ldr w8, [x23,2048] strb w8, [x0,x7] add x7, x7, 1 cmp w1, w7, uxtb - bhi .L1179 + bhi .L1351 cmp w25, 7 - bne .L1180 + bne .L1352 mov w1, 0 -.L1182: +.L1354: ldrb w7, [x0] cmp w7, 12 - beq .L1181 + beq .L1353 ldrb w7, [x0,1] cmp w7, 10 - beq .L1181 + beq .L1353 add w1, w1, 1 add x0, x0, 4 uxtb w1, w1 cmp w1, 8 - bne .L1182 - b .L1183 -.L1181: + bne .L1354 + b .L1355 +.L1353: cmp w1, 7 - bne .L1184 -.L1183: - adrp x0, .LC79 + bne .L1356 +.L1355: + adrp x0, .LC120 mov w1, 0 - add x0, x0, :lo12:.LC79 + add x0, x0, :lo12:.LC120 bl printk -.L1185: - b .L1185 -.L1180: +.L1357: + b .L1357 +.L1352: cmp w25, 6 - bne .L1184 + bne .L1356 mov x1, 0 -.L1186: +.L1358: ldrb w7, [x0,x1] cmp w7, 12 - beq .L1184 + beq .L1356 add x7, x0, x1 ldrb w7, [x7,8] cmp w7, 4 - beq .L1184 + beq .L1356 add x1, x1, 1 cmp x1, 8 - bne .L1186 - adrp x0, .LC79 + bne .L1358 + adrp x0, .LC120 mov w1, 0 - add x0, x0, :lo12:.LC79 + add x0, x0, :lo12:.LC120 bl printk -.L1188: - b .L1188 -.L1184: +.L1360: + b .L1360 +.L1356: add x0, x26, :lo12:.LANCHOR4 - ldr x9, [x0,1144] + ldr x9, [x0,1160] mov x0, 0 -.L1189: +.L1361: ldr w1, [x29,120] cmp w1, w0 - ble .L1248 + ble .L1420 ldr w1, [x23,2048] strb w1, [x9,x0] add x0, x0, 1 - b .L1189 -.L1248: + b .L1361 +.L1420: add x0, x26, :lo12:.LANCHOR4 mov w8, w22 mov w7, 8 - ldr x11, [x0,1144] -.L1192: + ldr x11, [x0,1160] +.L1364: mov w0, 0 -.L1191: +.L1363: add w1, w0, w8 add w0, w0, 1 sbfiz x1, x1, 2, 32 @@ -8335,96 +9012,96 @@ hynix_get_read_retry_default: ldr w10, [x11,x1] mvn w10, w10 str w10, [x11,x1] - bne .L1191 + bne .L1363 ldr w0, [x29,124] subs w7, w7, #1 add w8, w8, w0 - bne .L1192 + bne .L1364 mov x7, 0 mov w15, 1 -.L1193: +.L1365: add x0, x26, :lo12:.LANCHOR4 mov w1, 0 mov w10, w1 - ldr x14, [x0,1144] -.L1197: + ldr x14, [x0,1160] +.L1369: lsl w8, w15, w10 mov w12, w7 mov w0, 16 mov w11, 0 -.L1195: +.L1367: ldr w13, [x14,w12,sxtw 2] add w12, w12, w22 and w13, w8, w13 cmp w13, w8 csinc w11, w11, w11, ne subs w0, w0, #1 - bne .L1195 + bne .L1367 cmp w11, 9 orr w8, w1, w8 add w10, w10, 1 csel w1, w8, w1, cs cmp w10, 32 - bne .L1197 + bne .L1369 str w1, [x14,x7,lsl 2] add x7, x7, 1 cmp w22, w7 - bgt .L1193 + bgt .L1365 add x1, x26, :lo12:.LANCHOR4 mov x7, 0 mov w8, w7 - ldr x1, [x1,1144] -.L1200: + ldr x1, [x1,1160] +.L1372: ldr w10, [x1,x7] add x7, x7, 4 cmp w10, wzr csinc w8, w8, w8, ne cmp x7, 32 - bne .L1200 + bne .L1372 cmp w8, 7 - ble .L1201 - adrp x0, .LC80 + ble .L1373 + adrp x0, .LC121 mov w2, 1 - add x0, x0, :lo12:.LC80 + add x0, x0, :lo12:.LC121 mov w3, 1024 bl rknand_print_hex - adrp x0, .LC79 + adrp x0, .LC120 mov w1, 0 - add x0, x0, :lo12:.LC79 + add x0, x0, :lo12:.LC120 bl printk -.L1202: - b .L1202 -.L1201: +.L1374: + b .L1374 +.L1373: cmp w25, 6 mov w7, 4 - beq .L1203 + beq .L1375 cmp w25, 7 mov w7, 10 mov w1, 8 csel w7, w1, w7, ne -.L1203: +.L1375: mov w8, 0 -.L1204: +.L1376: mov x1, 0 -.L1205: +.L1377: add w10, w0, w1 ldrb w11, [x9,x1] add x1, x1, 1 cmp w28, w1, uxtb strb w11, [x24,w10,sxtw] - bhi .L1205 + bhi .L1377 add w8, w8, 1 ldr x1, [x29,112] cmp w8, w21 add w0, w0, w7 add x9, x9, x1 - blt .L1204 + blt .L1376 mov w24, 255 str w24, [x23,2056] bl nandc_wait_flash_ready cmp w19, 1 mov w0, 56 - bhi .L1247 + bhi .L1419 mov w0, 54 str w0, [x23,2056] ldrb w0, [x27,128] @@ -8439,27 +9116,27 @@ hynix_get_read_retry_default: str w24, [x23,2052] str w24, [x23,2052] str w24, [x23,2052] -.L1247: +.L1419: str w0, [x23,2056] add w20, w20, 1 bl nandc_wait_flash_ready uxtb w20, w20 - b .L1171 + b .L1343 .size hynix_get_read_retry_default, .-hynix_get_read_retry_default .align 2 .global flash_get_read_retry_tbl .type flash_get_read_retry_tbl, %function flash_get_read_retry_tbl: - adrp x0, .LANCHOR2+387 + adrp x0, .LANCHOR2+395 stp x29, x30, [sp, -16]! add x29, sp, 0 - ldrb w0, [x0,#:lo12:.LANCHOR2+387] + ldrb w0, [x0,#:lo12:.LANCHOR2+395] sub w1, w0, #1 uxtb w1, w1 cmp w1, 6 - bhi .L1249 + bhi .L1421 bl hynix_get_read_retry_default -.L1249: +.L1421: ldp x29, x30, [sp], 16 ret .size flash_get_read_retry_tbl, .-flash_get_read_retry_tbl @@ -8472,50 +9149,84 @@ nandc_xfer_done: stp x19, x20, [sp,16] adrp x19, .LANCHOR0 add x20, x19, :lo12:.LANCHOR0 - stp x21, x22, [sp,32] stp x23, x24, [sp,48] + stp x21, x22, [sp,32] ldr x0, [x20,16] bl wait_for_nandc_xfer_completed - ldr x21, [x20,16] - ldrb w0, [x19,#:lo12:.LANCHOR0] - cmp w0, 9 - bne .L1252 - ldr w0, [x21,16] + adrp x0, .LANCHOR4 + add x1, x0, :lo12:.LANCHOR4 + mov x23, x0 + strb wzr, [x1,1168] + ldrb w1, [x19,#:lo12:.LANCHOR0] + cmp w1, 9 + bne .L1424 + ldr x24, [x20,16] + ldr w0, [x24,16] str w0, [x29,64] - ldr w20, [x21,48] + ldr w20, [x24,48] ubfx x20, x20, 1, 1 - cbnz w20, .L1272 - adrp x22, .LC83 - adrp x23, .LC82 - add x22, x22, :lo12:.LC83 - add x23, x23, :lo12:.LC82 - b .L1254 -.L1272: - adrp x22, .LC81 - adrp x23, .LC82 + cbnz w20, .L1444 + adrp x21, .LC125 + adrp x23, .LC124 + add x21, x21, :lo12:.LC125 + add x23, x23, :lo12:.LC124 + b .L1426 +.L1444: + adrp x21, .LC123 + adrp x22, .LC124 mov w20, 0 - add x22, x22, :lo12:.LC81 - add x23, x23, :lo12:.LC82 -.L1253: - ldr w2, [x21,64] + add x21, x21, :lo12:.LC123 + add x22, x22, :lo12:.LC124 +.L1425: + ldr w2, [x24,64] ldr w1, [x29,64] ubfx x2, x2, 16, 6 ubfx x1, x1, 22, 6 cmp w2, w1 - bge .L1260 + bge .L1428 add x0, x19, :lo12:.LANCHOR0 ldr x0, [x0,16] ldr w0, [x0] str w0, [x29,72] ldr w0, [x29,72] - tbz x0, 13, .L1255 + tbz x0, 13, .L1427 ldr w0, [x29,72] - tbz x0, 17, .L1255 -.L1260: + tbz x0, 17, .L1427 + ldr w1, [x29,72] + adrp x0, .LC122 + add x0, x0, :lo12:.LC122 + ubfx x1, x1, 17, 1 + bl printk + b .L1428 +.L1427: + ldr w0, [x29,64] + add w20, w20, 1 + ubfx x0, x0, 22, 6 + cmp w20, w0, lsl 12 + bne .L1425 + ldr w2, [x24,64] + mov w1, w20 + ldr w3, [x29,64] + mov x0, x21 + ubfx x2, x2, 16, 5 + ubfx x3, x3, 22, 6 + bl printk + add x1, x19, :lo12:.LANCHOR0 + mov x0, x22 + mov w2, 4 + mov w3, 64 + ldr x1, [x1,16] + bl rknand_print_hex + ldr w0, [x29,72] + tbz x0, 13, .L1425 + add x0, x23, :lo12:.LANCHOR4 + mov w1, 1 + strb w1, [x0,1168] +.L1428: add x20, x19, :lo12:.LANCHOR0 - add x20, x20, 96 + add x20, x20, 144 ldr w0, [x20,32] - cbz w0, .L1261 + cbz w0, .L1432 ldr w1, [x29,64] mov w2, 0 ldr w0, [x20,24] @@ -8526,51 +9237,33 @@ nandc_xfer_done: ldr w0, [x20,28] ubfx x1, x1, 22, 6 lsl w1, w1, 2 - b .L1297 -.L1255: + b .L1472 +.L1434: + add x22, x19, :lo12:.LANCHOR0 add w20, w20, 1 - and w0, w20, 16777215 - cbnz w0, .L1253 - ldr w2, [x21,64] - mov w1, w20 - ldr w3, [x29,64] - mov x0, x22 - ubfx x2, x2, 16, 5 - ubfx x3, x3, 22, 6 - bl printk - add x1, x19, :lo12:.LANCHOR0 - mov x0, x23 - mov w2, 4 - mov w3, 256 - ldr x1, [x1,16] - bl rknand_print_hex - b .L1253 -.L1263: - add x24, x19, :lo12:.LANCHOR0 - add w20, w20, 1 - ldr x0, [x24,16] + ldr x0, [x22,16] ldr w0, [x0,16] str w0, [x29,64] and w0, w20, 16777215 - cbnz w0, .L1254 + cbnz w0, .L1426 ldr w2, [x29,64] mov w1, w20 - ldr w3, [x21,64] - mov x0, x22 + ldr w3, [x24,64] + mov x0, x21 ubfx x3, x3, 16, 6 bl printk - ldr x1, [x24,16] + ldr x1, [x22,16] mov x0, x23 mov w2, 4 - mov w3, 256 + mov w3, 64 bl rknand_print_hex -.L1254: +.L1426: ldr w0, [x29,64] - tbz x0, 20, .L1263 + tbz x0, 20, .L1434 add x20, x19, :lo12:.LANCHOR0 - add x20, x20, 96 + add x20, x20, 144 ldr w0, [x20,32] - cbz w0, .L1261 + cbz w0, .L1432 ldr w1, [x29,64] mov w2, 1 ldr w0, [x20,24] @@ -8581,67 +9274,68 @@ nandc_xfer_done: ldr w0, [x20,28] ubfx x1, x1, 22, 6 lsl w1, w1, 2 - b .L1296 -.L1252: - ldr w0, [x21,8] + b .L1471 +.L1424: + ldr x23, [x20,16] + ldr w0, [x23,8] str w0, [x29,64] - ldr w20, [x21,16] + ldr w20, [x23,16] ubfx x20, x20, 1, 1 - cbnz w20, .L1273 - adrp x22, .LC83 - adrp x23, .LC82 - add x22, x22, :lo12:.LC83 - add x23, x23, :lo12:.LC82 - b .L1265 -.L1273: - adrp x22, .LC81 - adrp x23, .LC82 + cbnz w20, .L1445 + adrp x21, .LC125 + adrp x24, .LC124 + add x21, x21, :lo12:.LC125 + add x24, x24, :lo12:.LC124 + b .L1437 +.L1445: + adrp x21, .LC123 + adrp x22, .LC124 mov w20, 0 - add x22, x22, :lo12:.LC81 - add x23, x23, :lo12:.LC82 -.L1264: - ldr w2, [x21,28] + add x21, x21, :lo12:.LC123 + add x22, x22, :lo12:.LC124 +.L1436: + ldr w2, [x23,28] ldr w1, [x29,64] ubfx x2, x2, 16, 5 ubfx x1, x1, 22, 6 cmp w2, w1 - bge .L1267 + bge .L1439 add x0, x19, :lo12:.LANCHOR0 ldr x0, [x0,16] ldr w0, [x0] str w0, [x29,72] ldr w0, [x29,72] - tbz x0, 13, .L1266 + tbz x0, 13, .L1438 ldr w0, [x29,72] - tbz x0, 17, .L1266 + tbz x0, 17, .L1438 ldr w1, [x29,72] - adrp x0, .LC84 - add x0, x0, :lo12:.LC84 + adrp x0, .LC126 + add x0, x0, :lo12:.LC126 bl printk - b .L1267 -.L1266: + b .L1439 +.L1438: add w20, w20, 1 and w0, w20, 16777215 - cbnz w0, .L1264 - ldr w2, [x21,28] + cbnz w0, .L1436 + ldr w2, [x23,28] mov w1, w20 ldr w3, [x29,64] - mov x0, x22 + mov x0, x21 ubfx x2, x2, 16, 5 ubfx x3, x3, 22, 6 bl printk add x1, x19, :lo12:.LANCHOR0 - mov x0, x23 + mov x0, x22 mov w2, 4 - mov w3, 256 + mov w3, 64 ldr x1, [x1,16] bl rknand_print_hex - b .L1264 -.L1267: + b .L1436 +.L1439: add x20, x19, :lo12:.LANCHOR0 - add x20, x20, 96 + add x20, x20, 144 ldr w0, [x20,32] - cbz w0, .L1261 + cbz w0, .L1432 ldr w1, [x29,64] mov w2, 0 ldr w0, [x20,24] @@ -8652,35 +9346,35 @@ nandc_xfer_done: ldr w0, [x20,28] ubfx x1, x1, 22, 6 lsl w1, w1, 7 -.L1297: +.L1472: mov w2, 0 - b .L1295 -.L1271: - add x24, x19, :lo12:.LANCHOR0 + b .L1470 +.L1443: + add x22, x19, :lo12:.LANCHOR0 add w20, w20, 1 - ldr x0, [x24,16] + ldr x0, [x22,16] ldr w0, [x0,8] str w0, [x29,64] and w0, w20, 16777215 - cbnz w0, .L1265 + cbnz w0, .L1437 ldr w2, [x29,64] mov w1, w20 - ldr w3, [x21,28] - mov x0, x22 + ldr w3, [x23,28] + mov x0, x21 ubfx x3, x3, 16, 5 bl printk - ldr x1, [x24,16] - mov x0, x23 + ldr x1, [x22,16] + mov x0, x24 mov w2, 4 - mov w3, 256 + mov w3, 64 bl rknand_print_hex -.L1265: +.L1437: ldr w0, [x29,64] - tbz x0, 20, .L1271 + tbz x0, 20, .L1443 add x20, x19, :lo12:.LANCHOR0 - add x20, x20, 96 + add x20, x20, 144 ldr w0, [x20,32] - cbz w0, .L1261 + cbz w0, .L1432 ldr w1, [x29,64] mov w2, 1 ldr w0, [x20,24] @@ -8691,15 +9385,15 @@ nandc_xfer_done: ldr w0, [x20,28] ubfx x1, x1, 22, 6 lsl w1, w1, 7 -.L1296: +.L1471: mov w2, 1 -.L1295: +.L1470: bl rknand_dma_unmap_single -.L1261: +.L1432: add x19, x19, :lo12:.LANCHOR0 ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] - str wzr, [x19,128] + str wzr, [x19,176] ldp x19, x20, [sp,16] ldp x29, x30, [sp], 80 ret @@ -8712,31 +9406,31 @@ nandc_xfer: add x29, sp, 0 stp x21, x22, [sp,32] stp x19, x20, [sp,16] - uxtb w21, w2 - uxtb w19, w1 - mov w0, w19 + uxtb w22, w2 + uxtb w20, w1 + mov w0, w20 mov x2, x3 - mov w1, w21 - mov x22, x3 + mov w1, w22 + mov x21, x3 mov x3, x4 - str x4, [x29,56] + str x23, [sp,48] + mov x23, x4 bl nandc_xfer_start bl nandc_xfer_done mov w0, 0 - cbnz w19, .L1299 - adrp x20, .LANCHOR0 - ldr x4, [x29,56] - add x3, x20, :lo12:.LANCHOR0 - ldrb w1, [x20,#:lo12:.LANCHOR0] + cbnz w20, .L1503 + adrp x19, .LANCHOR0 + add x3, x19, :lo12:.LANCHOR0 + ldrb w1, [x19,#:lo12:.LANCHOR0] cmp w1, 9 - bne .L1300 + bne .L1475 ldr x5, [x3,16] - lsr w21, w21, 2 + lsr w22, w22, 2 mov w4, 1 mov w3, w0 -.L1301: - cmp w3, w21 - bcs .L1327 +.L1476: + cmp w3, w22 + bcs .L1512 uxtw x1, w3 add x1, x1, 84 ldr w1, [x5,x1,lsl 2] @@ -8748,163 +9442,180 @@ nandc_xfer: and w1, w1, w2 and w4, w4, w1 ldr w1, [x29,72] - tbnz x1, 2, .L1318 + tbnz x1, 2, .L1495 ldr w1, [x29,72] - tbnz x1, 18, .L1318 + tbnz x1, 18, .L1495 ldr w2, [x29,72] ldr w1, [x29,72] ubfx x2, x2, 3, 7 ubfx x1, x1, 19, 7 cmp w2, w1 ldr w1, [x29,72] - ble .L1303 + ble .L1478 ubfx x1, x1, 3, 7 - b .L1304 -.L1303: + b .L1479 +.L1478: ubfx x1, x1, 19, 7 -.L1304: +.L1479: cmp w0, w1 csel w0, w0, w1, cs - b .L1302 -.L1318: + b .L1477 +.L1495: mov w0, -1 -.L1302: +.L1477: add w3, w3, 1 - b .L1301 -.L1327: - add x20, x20, :lo12:.LANCHOR0 + b .L1476 +.L1512: + add x22, x19, :lo12:.LANCHOR0 cmp w4, wzr - ldr x1, [x20,16] - ldr w19, [x1] + ldr x1, [x22,16] + ldr w20, [x1] mov w1, 512 csel w0, w0, w1, eq mov w1, 8192 movk w1, 0x2, lsl 16 - and w1, w19, w1 + and w1, w20, w1 cmp w1, 139264 - bne .L1299 - adrp x0, .LC85 - mov w1, w19 - add x0, x0, :lo12:.LC85 - orr w19, w19, 131072 + bne .L1482 + adrp x0, .LC127 + mov w1, w20 + add x0, x0, :lo12:.LC127 + orr w20, w20, 131072 bl printk - ldr x0, [x20,16] - b .L1326 -.L1300: - ldrb w0, [x3,140] - mov w6, 128 - lsr w7, w21, 1 + ldr x0, [x22,16] + str w20, [x0] + mov w0, -1 +.L1482: + tbz x20, 13, .L1483 + adrp x1, .LANCHOR4+1168 + ldrb w1, [x1,#:lo12:.LANCHOR4+1168] + cbz w1, .L1483 + adrp x0, .LC128 + mov w1, w20 + add x0, x0, :lo12:.LC128 + add x19, x19, :lo12:.LANCHOR0 + bl printk + ldr x0, [x19,16] + mov w1, 1 + str w1, [x0,16] + b .L1484 +.L1475: + ldrb w0, [x3,188] + mov w5, 128 + lsr w6, w22, 1 mov w2, 1 cmp w0, 25 mov w0, 64 - csel w6, w0, w6, cc - mov w1, w19 - mov w5, w19 -.L1308: - cmp w5, w7 - add w8, w1, w6 - bcs .L1328 - ldr x0, [x3,96] + csel w5, w0, w5, cc + mov w1, w20 + mov w4, w20 +.L1486: + cmp w4, w6 + add w7, w1, w5 + bcs .L1513 + ldr x0, [x3,144] and x1, x1, 4294967292 ldr w0, [x0,x1] - ubfiz x1, x5, 2, 30 - add w5, w5, 1 - lsr w9, w0, 16 - strb w0, [x4,x1] + ubfiz x1, x4, 2, 30 + add w4, w4, 1 + lsr w8, w0, 16 + strb w0, [x23,x1] lsr w1, w0, 8 - strb w1, [x4,w2,uxtw] + strb w1, [x23,w2,uxtw] add w1, w2, 1 lsr w0, w0, 24 - strb w9, [x4,x1] + strb w8, [x23,x1] add w1, w2, 2 add w2, w2, 4 - strb w0, [x4,x1] - mov w1, w8 - b .L1308 -.L1328: - add x0, x20, :lo12:.LANCHOR0 - mov w5, 0 - lsr w21, w21, 2 - ldr x7, [x0,16] - mov w0, w5 -.L1310: - cmp w5, w21 - bcs .L1329 - uxtw x1, w5 + strb w0, [x23,x1] + mov w1, w7 + b .L1486 +.L1513: + add x0, x19, :lo12:.LANCHOR0 + mov w2, 0 + lsr w22, w22, 2 + ldr x6, [x0,16] + mov w0, w2 +.L1488: + cmp w2, w22 + bcs .L1514 + uxtw x1, w2 add x1, x1, 8 - ldr w1, [x7,x1,lsl 2] + ldr w1, [x6,x1,lsl 2] str w1, [x29,72] ldr w1, [x29,72] - tbnz x1, 2, .L1321 + tbnz x1, 2, .L1498 ldr w1, [x29,72] - tbnz x1, 15, .L1321 - ldr w6, [x29,72] - ubfx x3, x6, 3, 5 - ldr w6, [x29,72] + tbnz x1, 15, .L1498 + ldr w3, [x29,72] + ubfx x5, x3, 3, 5 + ldr w3, [x29,72] ldr w1, [x29,72] - ubfx x6, x6, 27, 1 - ubfx x2, x1, 16, 5 + ubfx x3, x3, 27, 1 + ubfx x4, x1, 16, 5 ldr w1, [x29,72] - orr w6, w3, w6, lsl 5 + orr w3, w5, w3, lsl 5 ubfx x1, x1, 29, 1 - orr w1, w2, w1, lsl 5 - cmp w6, w1 + orr w1, w4, w1, lsl 5 + cmp w3, w1 ldr w1, [x29,72] - bls .L1312 - ubfx x2, x1, 3, 5 + bls .L1490 + ubfx x3, x1, 3, 5 ldr w1, [x29,72] ubfx x1, x1, 27, 1 - b .L1325 -.L1312: - ubfx x2, x1, 16, 5 + b .L1511 +.L1490: + ubfx x3, x1, 16, 5 ldr w1, [x29,72] ubfx x1, x1, 29, 1 -.L1325: - orr w1, w2, w1, lsl 5 +.L1511: + orr w1, w3, w1, lsl 5 cmp w0, w1 csel w0, w0, w1, cs - b .L1311 -.L1321: + b .L1489 +.L1498: mov w0, -1 -.L1311: - add w5, w5, 1 - b .L1310 -.L1329: - add x1, x20, :lo12:.LANCHOR0 - cmn w0, #1 - ldr x1, [x1,16] +.L1489: + add w2, w2, 1 + b .L1488 +.L1514: + add x19, x19, :lo12:.LANCHOR0 + ldr x1, [x19,16] str wzr, [x1,16] - beq .L1315 - ldr w2, [x4] - cmn w2, #1 - bne .L1315 - ldr w2, [x4,4] - cmn w2, #1 - bne .L1315 - ldr w2, [x22] - cmn w2, #1 - mov w2, 512 - csel w0, w0, w2, ne -.L1315: - ldr w19, [x1] + ldr w20, [x1] mov w1, 8192 movk w1, 0x2, lsl 16 - and w1, w19, w1 + and w1, w20, w1 cmp w1, 139264 - bne .L1299 - adrp x0, .LC86 - mov w1, w19 - add x0, x0, :lo12:.LC86 - orr w19, w19, 131072 + bne .L1483 + adrp x0, .LC129 + mov w1, w20 + add x0, x0, :lo12:.LC129 + orr w20, w20, 131072 bl printk - add x0, x20, :lo12:.LANCHOR0 - ldr x0, [x0,16] -.L1326: - str w19, [x0] + ldr x0, [x19,16] + str w20, [x0] + b .L1484 +.L1483: + cmn w0, #1 + beq .L1503 + ldr w1, [x23] + cmn w1, #1 + bne .L1503 + ldr w1, [x23,4] + cmn w1, #1 + bne .L1503 + ldr w1, [x21] + cmn w1, #1 + mov w1, 512 + csel w0, w0, w1, ne + b .L1503 +.L1484: mov w0, -1 -.L1299: +.L1503: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] + ldr x23, [sp,48] ldp x29, x30, [sp], 80 ret .size nandc_xfer, .-nandc_xfer @@ -8925,42 +9636,42 @@ flash_read_page: mov w23, w1 mov x26, x2 ldr x19, [x0,16] - adrp x0, .LANCHOR2+400 + adrp x0, .LANCHOR2 mov x25, x3 mov w27, w4 and w20, w1, 2097151 ubfx x24, x23, 24, 2 - ldr w0, [x0,#:lo12:.LANCHOR2+400] - tbz x0, 4, .L1331 - adrp x0, .LC87 + ldr w0, [x0,#:lo12:.LANCHOR2] + tbz x0, 4, .L1516 + adrp x0, .LC130 mov w1, w21 - add x0, x0, :lo12:.LC87 + add x0, x0, :lo12:.LC130 mov w2, w24 mov w3, w23 bl printk -.L1331: +.L1516: bl nandc_wait_flash_ready mov w0, w21 bl nandc_cs - cbnz w24, .L1332 + cbnz w24, .L1517 mov w0, w21 bl zftl_flash_enter_slc_mode - b .L1333 -.L1332: + b .L1518 +.L1517: add x0, x22, :lo12:.LANCHOR0 - ldr x0, [x0,720] + ldr x0, [x0,88] ldrb w0, [x0,12] cmp w0, 3 - bne .L1334 + bne .L1519 sxtw x0, w21 add x0, x0, 8 add x0, x19, x0, lsl 8 str w24, [x0,8] - b .L1333 -.L1334: + b .L1518 +.L1519: mov w0, w21 bl zftl_flash_exit_slc_mode -.L1333: +.L1518: ubfiz x5, x21, 8, 8 and w23, w23, 255 add x19, x19, x5 @@ -8974,19 +9685,19 @@ flash_read_page: str w0, [x19,2052] mov w0, 48 str w0, [x19,2056] - cbz w24, .L1335 + cbz w24, .L1520 add x22, x22, :lo12:.LANCHOR0 - ldr x0, [x22,720] + ldr x0, [x22,88] ldrb w0, [x0,12] cmp w0, 3 - bne .L1335 + bne .L1520 add w20, w20, w20, lsl 1 sub w0, w20, #1 add w0, w0, w24 - b .L1346 -.L1335: + b .L1531 +.L1520: mov w0, w20 -.L1346: +.L1531: bl nandc_set_seed bl nandc_wait_flash_ready mov w0, 5 @@ -9017,118 +9728,129 @@ flash_read_page: .global micron_read_retrial .type micron_read_retrial, %function micron_read_retrial: - stp x29, x30, [sp, -160]! + stp x29, x30, [sp, -128]! add x29, sp, 0 stp x19, x20, [sp,16] adrp x19, .LANCHOR0 add x19, x19, :lo12:.LANCHOR0 + str w5, [x29,120] + stp x21, x22, [sp,32] stp x23, x24, [sp,48] stp x25, x26, [sp,64] stp x27, x28, [sp,80] - stp x21, x22, [sp,32] uxtb w25, w0 - mov w24, w2 - ldrb w21, [x19,140] + mov w22, w2 + ldrb w20, [x19,188] mov x26, x3 mov x27, x4 - mov w28, w5 - uxtb x20, w25 + mov w21, 0 + adrp x24, .LANCHOR4 + add w20, w20, w20, lsl 1 + asr w0, w20, 2 + str w0, [x29,124] + mov w20, -1 bl nandc_wait_flash_ready - add w21, w21, w21, lsl 1 - ldr x6, [x19,16] - asr w21, w21, 2 - mov w23, 0 - mov w19, -1 - adrp x8, .LANCHOR4 - lsl x9, x20, 8 - mov w10, 239 - mov w11, 137 -.L1348: - add x5, x8, :lo12:.LANCHOR4 - ldrb w0, [x5,1160] - cmp w23, w0 - bcs .L1351 - add x22, x6, x9 + ldr x23, [x19,16] + uxtb x19, w25 + lsl x0, x19, 8 + str x0, [x29,112] + adrp x0, .LC131 + add x0, x0, :lo12:.LC131 + str x0, [x29,104] +.L1533: + add x0, x24, :lo12:.LANCHOR4 + ldrb w0, [x0,1184] + cmp w21, w0 + bcs .L1537 + ldr x0, [x29,112] + add w28, w21, 1 + add x1, x23, x0 + mov w0, 239 + str x1, [x29,96] + str w0, [x1,2056] + mov w0, 137 + str w0, [x1,2052] mov w0, 200 - str x8, [x29,104] - str x9, [x29,120] - str w10, [x22,2056] - str w11, [x22,2052] - str x6, [x29,128] - str x10, [x29,136] - str x11, [x29,144] - str x5, [x29,112] bl timer_delay_ns - add w7, w23, 1 - str w7, [x22,2048] - str wzr, [x22,2048] + ldr x1, [x29,96] mov w0, w25 - str wzr, [x22,2048] - mov w1, w24 - str wzr, [x22,2048] + ldr w4, [x29,120] mov x2, x26 mov x3, x27 - mov w4, w28 - str x7, [x29,152] + str w28, [x1,2048] + str wzr, [x1,2048] + str wzr, [x1,2048] + str wzr, [x1,2048] + mov w1, w22 bl flash_read_page - cmn w0, #1 - ldr x7, [x29,152] - ldr x11, [x29,144] - ldr x10, [x29,136] - ldr x6, [x29,128] - ldr x9, [x29,120] - ldr x8, [x29,104] - beq .L1349 - cmn w19, #1 - ldr x5, [x29,112] - csel w19, w19, w0, ne - cmp w0, w21 - ldr x26, [x5,1144] - ldr x27, [x5,1152] - bcc .L1356 -.L1349: - mov w23, w7 - b .L1348 -.L1356: - mov w19, w0 -.L1351: - add x20, x6, x20, lsl 8 + mov w6, w0 + adrp x0, .LANCHOR2 + ldr w0, [x0,#:lo12:.LANCHOR2] + tbz x0, 12, .L1534 + ldr x0, [x29,104] + mov w1, w21 + mov w2, w22 + mov w3, w21 + mov w4, w20 + str x6, [x29,96] + bl printk + ldr x6, [x29,96] +.L1534: + cmn w6, #1 + beq .L1535 + adrp x0, .LANCHOR4 + cmn w20, #1 + add x0, x0, :lo12:.LANCHOR4 + csel w20, w20, w6, ne + ldr x26, [x0,1160] + ldr x27, [x0,1176] + ldr w0, [x29,124] + cmp w6, w0 + bcc .L1542 +.L1535: + mov w21, w28 + b .L1533 +.L1542: + mov w20, w6 +.L1537: + add x19, x23, x19, lsl 8 mov w0, 239 - str w0, [x20,2056] + str w0, [x19,2056] mov w0, 137 - str w0, [x20,2052] + str w0, [x19,2052] mov w0, 200 bl timer_delay_ns - str wzr, [x20,2048] - str wzr, [x20,2048] - cmp w19, w21 - str wzr, [x20,2048] - str wzr, [x20,2048] - bcc .L1353 - cmn w19, #1 + str wzr, [x19,2048] + str wzr, [x19,2048] + ldr w0, [x29,124] + str wzr, [x19,2048] + str wzr, [x19,2048] + cmp w20, w0 + bcc .L1539 + cmn w20, #1 mov w0, 256 - csel w19, w19, w0, eq -.L1353: - cmn w19, #1 - beq .L1357 - cmp w19, 256 - bne .L1354 -.L1357: - adrp x0, .LC88 - mov w1, w23 - add x0, x0, :lo12:.LC88 - mov w2, w24 - mov w3, w23 - mov w4, w19 + csel w20, w20, w0, eq +.L1539: + cmn w20, #1 + beq .L1543 + cmp w20, 256 + bne .L1540 +.L1543: + adrp x0, .LC132 + mov w1, w21 + add x0, x0, :lo12:.LC132 + mov w2, w22 + mov w3, w21 + mov w4, w20 bl printk -.L1354: - mov w0, w19 +.L1540: + mov w0, w20 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] ldp x25, x26, [sp,64] ldp x27, x28, [sp,80] - ldp x29, x30, [sp], 160 + ldp x29, x30, [sp], 128 ret .size micron_read_retrial, .-micron_read_retrial .align 2 @@ -9159,7 +9881,7 @@ toshiba_3d_read_retrial: mov w21, 10 ldr x26, [x0,16] lsl x22, x22, 8 - ldrb w0, [x0,141] + ldrb w0, [x0,189] add x24, x26, x22 cmp w0, 36 csel w1, w2, w1, ne @@ -9167,20 +9889,20 @@ toshiba_3d_read_retrial: mov w0, 26 mov w23, w1 csel w21, w21, w0, ne - cbnz w19, .L1368 - adrp x0, .LC89 + cbnz w19, .L1557 + adrp x0, .LC133 str x22, [x29,112] - add x0, x0, :lo12:.LC89 + add x0, x0, :lo12:.LC133 mov w19, -1 mov w23, 1 str x0, [x29,104] adrp x22, .LANCHOR4 -.L1375: +.L1564: add x0, x20, :lo12:.LANCHOR0 - ldrb w0, [x0,141] + ldrb w0, [x0,189] cmp w0, 36 mov x0, x24 - bne .L1369 + bne .L1558 mov w1, w23 mov w2, 0 bl toshiba_tlc_set_rr_para @@ -9188,11 +9910,11 @@ toshiba_3d_read_retrial: mov w1, 93 add x0, x26, x0 str w1, [x0,8] - b .L1370 -.L1369: + b .L1559 +.L1558: mov w1, w23 bl toshiba_3d_set_slc_rr_para -.L1370: +.L1559: ldr w4, [x29,124] mov w1, w25 ldrb w0, [x29,128] @@ -9201,9 +9923,8 @@ toshiba_3d_read_retrial: bl flash_read_page mov w4, w0 adrp x0, .LANCHOR2 - add x0, x0, :lo12:.LANCHOR2 - ldr w0, [x0,400] - tbz x0, 4, .L1371 + ldr w0, [x0,#:lo12:.LANCHOR2] + tbz x0, 4, .L1560 ldr x0, [x29,104] mov w3, w4 mov w1, w23 @@ -9211,65 +9932,65 @@ toshiba_3d_read_retrial: str x4, [x29,96] bl printk ldr x4, [x29,96] -.L1371: +.L1560: cmn w4, #1 - beq .L1372 + beq .L1561 add x0, x22, :lo12:.LANCHOR4 cmn w19, #1 csel w19, w19, w4, ne - ldr x27, [x0,1144] - ldr x28, [x0,1152] + ldr x27, [x0,1160] + ldr x28, [x0,1176] add x0, x20, :lo12:.LANCHOR0 - ldrb w0, [x0,140] + ldrb w0, [x0,188] add w0, w0, w0, lsl 1 cmp w4, w0, lsr 2 - bcc .L1391 -.L1372: + bcc .L1580 +.L1561: add w23, w23, 1 cmp w23, w21 - bne .L1375 - b .L1374 -.L1391: + bne .L1564 + b .L1563 +.L1580: mov w21, w23 mov w19, w4 -.L1374: +.L1563: add x0, x20, :lo12:.LANCHOR0 - ldrb w0, [x0,141] + ldrb w0, [x0,189] cmp w0, 36 mov x0, x24 - bne .L1376 + bne .L1565 mov w1, 0 mov w2, w1 - b .L1414 -.L1376: + b .L1603 +.L1565: mov w1, 0 bl toshiba_3d_set_slc_rr_para - b .L1377 -.L1368: - adrp x0, .LC90 + b .L1566 +.L1557: + adrp x0, .LC134 orr w25, w25, w19, lsl 24 - add x0, x0, :lo12:.LC90 + add x0, x0, :lo12:.LC134 mov w19, -1 mov w21, 1 str x0, [x29,112] -.L1384: +.L1573: add x0, x20, :lo12:.LANCHOR0 - ldrb w0, [x0,141] + ldrb w0, [x0,189] cmp w0, 36 mov x0, x24 - bne .L1378 + bne .L1567 mov w1, w21 mov w2, 1 bl toshiba_tlc_set_rr_para add x0, x26, x22 mov w1, 93 - b .L1413 -.L1378: + b .L1602 +.L1567: mov w1, w21 bl toshiba_3d_set_tlc_rr_para add x0, x26, x22 mov w1, 38 -.L1413: +.L1602: str w1, [x0,8] mov x2, x27 mov w1, w25 @@ -9279,9 +10000,8 @@ toshiba_3d_read_retrial: bl flash_read_page mov w4, w0 adrp x0, .LANCHOR2 - add x0, x0, :lo12:.LANCHOR2 - ldr w0, [x0,400] - tbz x0, 4, .L1380 + ldr w0, [x0,#:lo12:.LANCHOR2] + tbz x0, 4, .L1569 ldr x0, [x29,112] mov w3, w4 mov w1, w21 @@ -9289,46 +10009,46 @@ toshiba_3d_read_retrial: str x4, [x29,104] bl printk ldr x4, [x29,104] -.L1380: +.L1569: cmn w4, #1 - beq .L1381 + beq .L1570 adrp x0, .LANCHOR4 cmn w19, #1 add x0, x0, :lo12:.LANCHOR4 csel w19, w19, w4, ne - ldr x27, [x0,1144] - ldr x28, [x0,1152] + ldr x27, [x0,1160] + ldr x28, [x0,1176] add x0, x20, :lo12:.LANCHOR0 - ldrb w0, [x0,140] + ldrb w0, [x0,188] add w0, w0, w0, lsl 1 cmp w4, w0, lsr 2 - bcc .L1392 -.L1381: + bcc .L1581 +.L1570: add w21, w21, 1 cmp w21, w23 - bne .L1384 - b .L1383 -.L1392: + bne .L1573 + b .L1572 +.L1581: mov w19, w4 -.L1383: +.L1572: add x0, x20, :lo12:.LANCHOR0 - ldrb w0, [x0,141] + ldrb w0, [x0,189] cmp w0, 36 mov x0, x24 - bne .L1385 + bne .L1574 mov w1, 0 mov w2, 1 -.L1414: +.L1603: bl toshiba_tlc_set_rr_para - b .L1377 -.L1385: + b .L1566 +.L1574: mov w1, 0 bl toshiba_3d_set_tlc_rr_para -.L1377: +.L1566: add x0, x20, :lo12:.LANCHOR0 - ldrb w0, [x0,141] + ldrb w0, [x0,189] cmp w0, 36 - bne .L1386 + bne .L1575 ldr x0, [x29,128] ubfiz x23, x0, 8, 8 mov w0, 85 @@ -9338,29 +10058,29 @@ toshiba_3d_read_retrial: str wzr, [x26,2052] str wzr, [x26,2048] str w0, [x26,2056] -.L1386: +.L1575: add x20, x20, :lo12:.LANCHOR0 - ldrb w0, [x20,140] + ldrb w0, [x20,188] add w0, w0, w0, lsl 1 cmp w19, w0, lsr 2 - bcc .L1387 + bcc .L1576 cmn w19, #1 mov w0, 256 csel w19, w19, w0, eq -.L1387: +.L1576: cmn w19, #1 - beq .L1393 + beq .L1582 cmp w19, 256 - bne .L1388 -.L1393: - adrp x0, .LC91 + bne .L1577 +.L1582: + adrp x0, .LC135 mov w1, w21 - add x0, x0, :lo12:.LC91 + add x0, x0, :lo12:.LC135 mov w2, w25 mov w3, w21 mov w4, w19 bl printk -.L1388: +.L1577: bl nandc_wait_flash_ready mov w0, w19 ldp x19, x20, [sp,16] @@ -9394,26 +10114,26 @@ toshiba_read_retrial: sxtw x0, w23 add x21, x0, 8 str x0, [x29,112] - ldrb w0, [x1,141] + ldrb w0, [x1,189] ldr x22, [x1,16] sub w0, w0, #67 add x21, x22, x21, lsl 8 uxtb w0, w0 cmp w0, 1 - bls .L1416 - ldrb w0, [x1,716] - cbz w0, .L1417 + bls .L1605 + ldrb w0, [x1,136] + cbz w0, .L1606 mov w0, 1 mov w24, 1 bl nandc_set_if_mode -.L1417: +.L1606: ubfiz x0, x23, 8, 8 mov w1, 92 add x0, x22, x0 str w1, [x0,2056] mov w1, 197 str w1, [x0,2056] -.L1416: +.L1605: ldr x0, [x29,112] mov w20, 1 mov w25, -1 @@ -9422,41 +10142,41 @@ toshiba_read_retrial: str x0, [x29,104] ubfiz x0, x23, 8, 8 str x0, [x29,96] -.L1418: +.L1607: adrp x0, .LANCHOR4 add x0, x0, :lo12:.LANCHOR4 - ldrb w0, [x0,1160] + ldrb w0, [x0,1184] add w0, w0, 1 cmp w20, w0 - bcs .L1449 + bcs .L1638 add x0, x19, :lo12:.LANCHOR0 mov w1, w20 - ldrb w0, [x0,141] + ldrb w0, [x0,189] sub w0, w0, #67 uxtb w0, w0 cmp w0, 1 mov x0, x21 - bhi .L1419 + bhi .L1608 bl sandisk_set_rr_para - b .L1420 -.L1419: + b .L1609 +.L1608: bl toshiba_set_rr_para -.L1420: +.L1609: add x0, x19, :lo12:.LANCHOR0 - ldrb w0, [x0,141] + ldrb w0, [x0,189] cmp w0, 34 - bne .L1421 + bne .L1610 adrp x0, .LANCHOR4 add x0, x0, :lo12:.LANCHOR4 - ldrb w0, [x0,1160] + ldrb w0, [x0,1184] sub w0, w0, #3 cmp w20, w0 - bne .L1421 + bne .L1610 ldr x0, [x29,104] mov w1, 179 add x0, x22, x0 str w1, [x0,8] -.L1421: +.L1610: ldr x0, [x29,96] mov w1, 38 ldr w4, [x29,120] @@ -9471,69 +10191,69 @@ toshiba_read_retrial: bl flash_read_page cmn w0, #1 mov w26, w0 - beq .L1424 + beq .L1613 cmn w25, #1 csel w25, w25, w0, ne adrp x0, .LANCHOR4 add x0, x0, :lo12:.LANCHOR4 - ldr x27, [x0,1144] - ldr x28, [x0,1152] + ldr x27, [x0,1160] + ldr x28, [x0,1176] add x0, x19, :lo12:.LANCHOR0 - ldrb w0, [x0,140] + ldrb w0, [x0,188] add w0, w0, w0, lsl 1 cmp w26, w0, lsr 2 - bcc .L1426 -.L1424: + bcc .L1615 +.L1613: add w20, w20, 1 - b .L1418 -.L1449: + b .L1607 +.L1638: mov w26, w25 -.L1426: +.L1615: add x0, x19, :lo12:.LANCHOR0 mov w1, 0 - ldrb w0, [x0,141] + ldrb w0, [x0,189] sub w0, w0, #67 uxtb w0, w0 cmp w0, 1 mov x0, x21 - bhi .L1428 + bhi .L1617 bl sandisk_set_rr_para - b .L1429 -.L1428: + b .L1618 +.L1617: bl toshiba_set_rr_para -.L1429: +.L1618: ldr x0, [x29,112] add x19, x19, :lo12:.LANCHOR0 add x0, x0, 8 add x22, x22, x0, lsl 8 mov w0, 255 str w0, [x22,8] - ldrb w0, [x19,140] + ldrb w0, [x19,188] add w0, w0, w0, lsl 1 cmp w26, w0, lsr 2 - bcc .L1430 + bcc .L1619 cmn w26, #1 mov w0, 256 csel w26, w26, w0, eq -.L1430: +.L1619: cmn w26, #1 - beq .L1436 + beq .L1625 cmp w26, 256 - bne .L1431 -.L1436: - adrp x0, .LC91 + bne .L1620 +.L1625: + adrp x0, .LC135 ldr w2, [x29,124] - add x0, x0, :lo12:.LC91 + add x0, x0, :lo12:.LC135 mov w1, w20 mov w3, w20 mov w4, w26 bl printk -.L1431: +.L1620: bl nandc_wait_flash_ready - cbz w24, .L1433 + cbz w24, .L1622 mov w0, 4 bl nandc_set_if_mode -.L1433: +.L1622: mov w0, w26 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -9559,7 +10279,7 @@ hynix_read_retrial: stp x23, x24, [sp,48] str w5, [x29,124] mov w23, w2 - ldr x5, [x0,144] + ldr x5, [x0,192] mov x25, x3 mov x26, x4 mov x22, x21 @@ -9571,9 +10291,9 @@ hynix_read_retrial: bl nandc_wait_flash_ready mov w6, 0 adrp x7, .LANCHOR4 -.L1451: +.L1640: cmp w6, w24 - bcs .L1455 + bcs .L1644 add w20, w20, 1 mov w0, w22 str x7, [x29,104] @@ -9592,47 +10312,47 @@ hynix_read_retrial: cmn w0, #1 ldr x6, [x29,112] ldr x7, [x29,104] - beq .L1453 + beq .L1642 add x1, x7, :lo12:.LANCHOR4 cmn w19, #1 csel w19, w19, w0, ne - ldr x25, [x1,1144] - ldr x26, [x1,1152] + ldr x25, [x1,1160] + ldr x26, [x1,1176] add x1, x28, :lo12:.LANCHOR0 - ldrb w1, [x1,140] + ldrb w1, [x1,188] add w1, w1, w1, lsl 1 cmp w0, w1, lsr 2 - bcc .L1460 -.L1453: + bcc .L1649 +.L1642: add w6, w6, 1 - b .L1451 -.L1460: + b .L1640 +.L1649: mov w19, w0 -.L1455: +.L1644: add x28, x28, :lo12:.LANCHOR0 add x21, x27, x21 - ldrb w0, [x28,140] + ldrb w0, [x28,188] strb w20, [x21,8] add w0, w0, w0, lsl 1 cmp w19, w0, lsr 2 - bcc .L1457 + bcc .L1646 cmn w19, #1 mov w0, 256 csel w19, w19, w0, eq -.L1457: +.L1646: cmn w19, #1 - beq .L1461 + beq .L1650 cmp w19, 256 - bne .L1458 -.L1461: - adrp x0, .LC92 + bne .L1647 +.L1650: + adrp x0, .LC136 mov w1, w6 - add x0, x0, :lo12:.LC92 + add x0, x0, :lo12:.LC136 mov w2, w23 mov w3, w6 mov w4, w19 bl printk -.L1458: +.L1647: mov w0, w19 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -9662,16 +10382,16 @@ flash_ddr_tunning_read: bl nandc_get_ddr_para mov w26, 0 str w0, [x29,120] - adrp x0, .LC93 + adrp x0, .LC137 mov w22, w26 - add x0, x0, :lo12:.LC93 + add x0, x0, :lo12:.LC137 mov w28, w26 mov w27, w26 mov w25, 1024 mov w21, 6 mov w19, -1 str x0, [x29,104] -.L1476: +.L1665: mov w0, w21 bl nandc_set_ddr_para ldr w4, [x29,116] @@ -9682,9 +10402,8 @@ flash_ddr_tunning_read: bl flash_read_page mov w4, w0 adrp x0, .LANCHOR2 - add x0, x0, :lo12:.LANCHOR2 - ldr w0, [x0,400] - tbz x0, 4, .L1471 + ldr w0, [x0,#:lo12:.LANCHOR2] + tbz x0, 4, .L1660 ldr x0, [x29,104] mov w3, w4 mov w1, w21 @@ -9692,74 +10411,74 @@ flash_ddr_tunning_read: str x4, [x29,96] bl printk ldr x4, [x29,96] -.L1471: +.L1660: add w0, w25, 1 cmp w4, w0 - bhi .L1472 + bhi .L1661 adrp x0, .LANCHOR4 add x0, x0, :lo12:.LANCHOR4 - ldr x23, [x0,1144] - ldr x24, [x0,1152] + ldr x23, [x0,1160] + ldr x24, [x0,1176] adrp x0, .LANCHOR0 add x0, x0, :lo12:.LANCHOR0 - ldrb w0, [x0,140] + ldrb w0, [x0,188] cmp w4, w0, lsr 2 - bcs .L1481 + bcs .L1670 add w27, w27, 1 cmp w27, 7 - bls .L1481 + bls .L1670 sub w26, w21, w27 mov w25, w4 mov w19, 0 - b .L1474 -.L1472: + b .L1663 +.L1661: cmp w28, w27 - bcs .L1482 + bcs .L1671 cmp w27, 7 sub w22, w26, w27 - bhi .L1475 + bhi .L1664 mov w28, w27 - b .L1482 -.L1481: + b .L1671 +.L1670: mov w26, w21 mov w25, w4 mov w19, 0 - b .L1473 -.L1482: + b .L1662 +.L1671: mov w27, 0 -.L1473: +.L1662: add w21, w21, 2 cmp w21, 50 - bne .L1476 -.L1474: + bne .L1665 +.L1663: cmp w28, w27 csel w26, w26, w22, ls -.L1475: - cbz w26, .L1477 - adrp x0, .LANCHOR0+140 +.L1664: + cbz w26, .L1666 + adrp x0, .LANCHOR0+188 mov w1, 3 - ldrb w0, [x0,#:lo12:.LANCHOR0+140] + ldrb w0, [x0,#:lo12:.LANCHOR0+188] udiv w0, w0, w1 cmp w25, w0 - bcs .L1477 - adrp x0, .LC94 + bcs .L1666 + adrp x0, .LC138 mov w1, w26 - add x0, x0, :lo12:.LC94 + add x0, x0, :lo12:.LC138 bl printk mov w0, w26 - b .L1490 -.L1477: + b .L1679 +.L1666: ldrb w0, [x29,120] -.L1490: +.L1679: bl nandc_set_ddr_para - cbz w19, .L1479 - adrp x0, .LC95 + cbz w19, .L1668 + adrp x0, .LC139 ldr w1, [x29,124] - add x0, x0, :lo12:.LC95 + add x0, x0, :lo12:.LC139 mov w2, w20 mov w25, w19 bl printk -.L1479: +.L1668: mov w0, w25 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -9774,65 +10493,64 @@ flash_ddr_tunning_read: .type flash_read_page_en, %function flash_read_page_en: stp x29, x30, [sp, -96]! - uxtb w0, w0 add x29, sp, 0 stp x19, x20, [sp,16] adrp x20, .LANCHOR0 - mov w19, w1 - add x1, x20, :lo12:.LANCHOR0 str x27, [sp,80] - stp x23, x24, [sp,48] stp x21, x22, [sp,32] + uxtb w21, w0 + add x0, x20, :lo12:.LANCHOR0 + stp x23, x24, [sp,48] stp x25, x26, [sp,64] + mov w19, w1 mov x25, x2 + ldrb w0, [x0,98] mov x24, x3 - ldrb w2, [x1,152] mov w23, w4 - ubfx x21, x19, 24, 2 - cmp w2, w0 - bhi .L1492 + ubfx x26, x19, 24, 2 + cmp w0, w21 + bhi .L1681 adrp x1, .LANCHOR3 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR3 add x0, x0, :lo12:.LC0 - add x1, x1, 88 - mov w2, 376 + add x1, x1, 136 + mov w2, 378 bl printk -.L1493: - b .L1493 -.L1492: - add x0, x1, x0, sxtw - ldrb w22, [x0,156] - adrp x0, .LANCHOR2+400 - ldr w0, [x0,#:lo12:.LANCHOR2+400] - tbz x0, 4, .L1494 - adrp x0, .LC96 +.L1681: + add x0, x20, :lo12:.LANCHOR0 + add x21, x0, x21, sxtw + adrp x0, .LANCHOR2 + ldrb w22, [x21,200] + ldr w0, [x0,#:lo12:.LANCHOR2] + tbz x0, 4, .L1682 + adrp x0, .LC140 mov w1, w22 - add x0, x0, :lo12:.LC96 + add x0, x0, :lo12:.LC140 mov w2, w19 bl printk -.L1494: - cbnz w21, .L1495 +.L1682: + cbnz w26, .L1683 add x0, x20, :lo12:.LANCHOR0 - ldrb w1, [x0,164] - cbz w1, .L1496 - ldrb w0, [x0,165] - cbz w0, .L1495 -.L1496: + ldrb w1, [x0,97] + cbz w1, .L1684 + ldrb w0, [x0,208] + cbz w0, .L1683 +.L1684: add x1, x20, :lo12:.LANCHOR0 - ldrh w2, [x1,166] + ldrh w2, [x1,210] udiv w0, w19, w2 mul w0, w0, w2 - ldrb w2, [x1,165] + ldrb w2, [x1,208] sub w19, w19, w0 - cbz w2, .L1497 + cbz w2, .L1685 add w19, w0, w19, lsl 1 - b .L1495 -.L1497: - add x1, x1, 168 + b .L1683 +.L1685: + add x1, x1, 212 ldrh w19, [x1,w19,uxtw 1] add w19, w19, w0 -.L1495: +.L1683: mov w0, w22 mov w1, w19 mov x2, x25 @@ -9841,28 +10559,28 @@ flash_read_page_en: bl flash_read_page cmn w0, #1 mov w21, w0 - bne .L1504 + bne .L1692 add x26, x20, :lo12:.LANCHOR0 - ldrb w27, [x26,136] - cbnz w27, .L1499 -.L1502: - adrp x0, .LANCHOR4+1168 - ldr x6, [x0,#:lo12:.LANCHOR4+1168] - cbnz x6, .L1500 - b .L1501 -.L1499: + ldrb w27, [x26,184] + cbnz w27, .L1687 +.L1690: + adrp x0, .LANCHOR4+1192 + ldr x6, [x0,#:lo12:.LANCHOR4+1192] + cbnz x6, .L1688 + b .L1689 +.L1687: mov w0, w22 mov w1, w19 mov x2, x25 mov x3, x24 mov w4, w23 - strb wzr, [x26,136] + strb wzr, [x26,184] bl flash_read_page - strb w27, [x26,136] + strb w27, [x26,184] cmn w0, #1 - beq .L1502 - b .L1520 -.L1500: + beq .L1690 + b .L1708 +.L1688: mov w0, w22 mov w1, 0 mov w2, w19 @@ -9871,27 +10589,27 @@ flash_read_page_en: mov w5, w23 blr x6 cmn w0, #1 - bne .L1520 -.L1501: + bne .L1708 +.L1689: add x20, x20, :lo12:.LANCHOR0 - adrp x0, .LC97 - add x0, x0, :lo12:.LC97 + adrp x0, .LC141 + add x0, x0, :lo12:.LC141 mov w1, 0 mov w2, w19 mov w3, -1 - ldrb w4, [x20,136] + ldrb w4, [x20,184] bl printk - ldrb w0, [x20,716] - cbz w0, .L1504 + ldrb w0, [x20,136] + cbz w0, .L1692 mov w0, w22 mov w1, w19 mov x2, x25 mov x3, x24 mov w4, w23 bl flash_ddr_tunning_read -.L1520: +.L1708: mov w21, w0 -.L1504: +.L1692: mov w0, w21 ldr x27, [sp,80] ldp x19, x20, [sp,16] @@ -9905,60 +10623,73 @@ flash_read_page_en: .global flash_get_last_written_page .type flash_get_last_written_page, %function flash_get_last_written_page: - stp x29, x30, [sp, -96]! - uxth w1, w1 + stp x29, x30, [sp, -112]! add x29, sp, 0 - stp x21, x22, [sp,32] - uxtb w21, w0 - adrp x0, .LANCHOR4+1012 - stp x19, x20, [sp,16] - stp x25, x26, [sp,64] - ldrh w19, [x0,#:lo12:.LANCHOR4+1012] - adrp x0, .LANCHOR2+394 stp x23, x24, [sp,48] + uxtb w23, w0 + adrp x0, .LANCHOR4+1060 + stp x19, x20, [sp,16] + adrp x20, .LANCHOR2 + mov x24, x2 + ldrh w19, [x0,#:lo12:.LANCHOR4+1060] + add x0, x20, :lo12:.LANCHOR2 + stp x21, x22, [sp,32] + stp x25, x26, [sp,64] + stp x27, x28, [sp,80] + uxth w22, w1 sub w19, w19, #1 - str x27, [sp,80] - ldrh w0, [x0,#:lo12:.LANCHOR2+394] - mov x22, x2 + ldrh w26, [x0,402] + mov w0, w23 sxth w19, w19 - mov x23, x3 - mov w24, w4 - mul w25, w1, w0 - mov w0, w21 - add w1, w25, w19 + mov x21, x3 + mov w25, w4 + mov x27, x20 + mul w26, w22, w26 + add w1, w26, w19 bl flash_read_page_en cmp w0, 512 - bne .L1522 - mov w26, 0 - mov w27, 2 -.L1523: - cmp w26, w19 - bgt .L1522 - add w0, w26, w19 - mov x2, x22 - mov x3, x23 - mov w4, w24 - sdiv w20, w0, w27 - mov w0, w21 - add w1, w25, w20, sxth + bne .L1710 + mov w28, 0 + mov w5, 2 +.L1711: + cmp w28, w19 + bgt .L1710 + add w0, w28, w19 + mov x2, x24 + mov x3, x21 + mov w4, w25 + sdiv w20, w0, w5 + mov w0, w23 + str x5, [x29,104] + add w1, w26, w20, sxth bl flash_read_page_en cmp w0, 512 - bne .L1524 + ldr x5, [x29,104] + bne .L1712 sub w19, w20, #1 sxth w19, w19 - b .L1523 -.L1524: + b .L1711 +.L1712: add w20, w20, 1 - sxth w26, w20 - b .L1523 -.L1522: + sxth w28, w20 + b .L1711 +.L1710: + ldr w0, [x27,#:lo12:.LANCHOR2] + tbz x0, 12, .L1715 + adrp x0, .LC142 + ldr w3, [x21] + add x0, x0, :lo12:.LC142 + mov w1, w22 + mov w2, w19 + bl printk +.L1715: mov w0, w19 - ldr x27, [sp,80] ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] ldp x25, x26, [sp,64] - ldp x29, x30, [sp], 96 + ldp x27, x28, [sp,80] + ldp x29, x30, [sp], 112 ret .size flash_get_last_written_page, .-flash_get_last_written_page .align 2 @@ -9966,12 +10697,12 @@ flash_get_last_written_page: .type flash_get_last_written_page_ext, %function flash_get_last_written_page_ext: uxth w6, w0 - adrp x0, .LANCHOR0+3266 + adrp x0, .LANCHOR0+3314 stp x29, x30, [sp, -16]! mov w5, 21 mov x8, x1 add x29, sp, 0 - ldrh w0, [x0,#:lo12:.LANCHOR0+3266] + ldrh w0, [x0,#:lo12:.LANCHOR0+3314] mov x7, x2 mov w4, w3 mov x2, x8 @@ -9990,146 +10721,157 @@ flash_get_last_written_page_ext: .global flash_info_blk_init .type flash_info_blk_init, %function flash_info_blk_init: - stp x29, x30, [sp, -80]! + adrp x0, .LANCHOR2 + stp x29, x30, [sp, -64]! add x29, sp, 0 + ldr w0, [x0,#:lo12:.LANCHOR2] + stp x19, x20, [sp,16] stp x21, x22, [sp,32] stp x23, x24, [sp,48] - str x25, [sp,64] + adrp x20, .LANCHOR0 + tbz x0, 12, .L1721 + add x4, x20, :lo12:.LANCHOR0 + adrp x2, .LANCHOR3 + adrp x0, .LC143 + add x2, x2, :lo12:.LANCHOR3 + add x0, x0, :lo12:.LC143 + mov w1, 49 + ldr x4, [x4,192] + add x2, x2, 160 + mov w3, 2048 + bl printk +.L1721: mov w22, 4 - stp x19, x20, [sp,16] - adrp x24, .LANCHOR0 - adrp x25, .LANCHOR4 -.L1531: - add x19, x24, :lo12:.LANCHOR0 - add x21, x25, :lo12:.LANCHOR4 + adrp x24, .LANCHOR4 +.L1724: + add x19, x20, :lo12:.LANCHOR0 + add x21, x24, :lo12:.LANCHOR4 mov w0, 0 mov w4, 4 - adrp x20, .LANCHOR0 adrp x23, .LANCHOR4 - ldrh w1, [x19,166] - ldr x2, [x19,144] - ldr x3, [x21,1176] + ldrh w1, [x19,210] + ldr x2, [x19,192] + ldr x3, [x21,1200] mul w1, w22, w1 bl flash_read_page_en cmn w0, #1 - beq .L1529 - ldr x2, [x19,144] + beq .L1722 + ldr x2, [x19,192] mov w0, 21321 movk w0, 0x5359, lsl 16 ldr w1, [x2] cmp w1, w0 - beq .L1530 -.L1529: + beq .L1723 +.L1722: add w22, w22, 1 cmp w22, 16 - bne .L1531 -.L1552: + bne .L1724 +.L1748: mov w0, -1 - b .L1551 -.L1530: + b .L1747 +.L1723: ldrb w1, [x2,36] mov w4, 4 - ldrh w3, [x19,166] - strb w1, [x21,1184] + ldrh w3, [x19,210] + strb w1, [x21,1208] ldrb w0, [x2,37] mul w1, w1, w3 - ldr x3, [x21,1176] - strb w0, [x21,1185] + ldr x3, [x21,1200] + strb w0, [x21,1209] mov w0, 0 mov w21, 0 bl flash_read_page_en cmn w0, #1 - beq .L1533 - ldr x0, [x19,144] + beq .L1726 + ldr x0, [x19,192] mov w1, 21321 movk w1, 0x5359, lsl 16 mov w21, 0 ldr w2, [x0] cmp w2, w1 - bne .L1533 + bne .L1726 ldr w21, [x0,4] -.L1533: +.L1726: add x19, x23, :lo12:.LANCHOR4 add x22, x20, :lo12:.LANCHOR0 mov w0, 0 mov w4, 4 - ldrb w2, [x19,1185] - ldrh w1, [x22,166] - ldr x3, [x19,1176] + ldrb w2, [x19,1209] + ldrh w1, [x22,210] + ldr x3, [x19,1200] mul w1, w2, w1 - ldr x2, [x22,144] + ldr x2, [x22,192] bl flash_read_page_en cmn w0, #1 - beq .L1534 - ldr x0, [x22,144] + beq .L1727 + ldr x0, [x22,192] mov w1, 21321 movk w1, 0x5359, lsl 16 ldr w2, [x0] cmp w2, w1 - bne .L1534 + bne .L1727 ldr w1, [x0,4] cmp w21, w1 - bcs .L1534 + bcs .L1727 ldrb w1, [x0,37] ldrb w0, [x0,36] - strb w1, [x19,1184] - strb w0, [x19,1185] -.L1534: + strb w1, [x19,1208] + strb w0, [x19,1209] +.L1727: add x21, x23, :lo12:.LANCHOR4 add x22, x20, :lo12:.LANCHOR0 mov w0, 0 mov w4, 4 - ldrb w1, [x21,1184] - ldr x3, [x21,1176] - ldr x2, [x22,144] + ldrb w1, [x21,1208] + ldr x3, [x21,1200] + ldr x2, [x22,192] bl flash_get_last_written_page sxth w19, w0 add w0, w0, 1 - strh w0, [x21,1186] - ldrb w0, [x21,1184] - ldrh w21, [x22,166] + strh w0, [x21,1210] + ldrb w0, [x21,1208] + ldrh w21, [x22,210] mul w21, w0, w21 -.L1535: - tbnz w19, #31, .L1553 +.L1728: + tbnz w19, #31, .L1749 add x22, x20, :lo12:.LANCHOR0 add x3, x23, :lo12:.LANCHOR4 mov w0, 0 add w1, w19, w21 mov w4, 4 - ldr x2, [x22,144] - ldr x3, [x3,1176] + ldr x2, [x22,192] + ldr x3, [x3,1200] bl flash_read_page_en cmn w0, #1 - beq .L1536 - ldr x0, [x22,144] + beq .L1729 + ldr x0, [x22,192] ldr w1, [x0] mov w0, 21321 movk w0, 0x5359, lsl 16 cmp w1, w0 - bne .L1536 -.L1538: + bne .L1729 +.L1731: mov w0, 0 - b .L1551 -.L1536: + b .L1747 +.L1729: sub w19, w19, #1 sxth w19, w19 - b .L1535 -.L1553: + b .L1728 +.L1749: cmn w19, #1 - bne .L1538 + bne .L1731 add x20, x20, :lo12:.LANCHOR0 - adrp x0, .LC98 - add x0, x0, :lo12:.LC98 - ldr x1, [x20,144] + adrp x0, .LC144 + add x0, x0, :lo12:.LC144 + ldr x1, [x20,192] ldr w1, [x1] bl printk - b .L1552 -.L1551: + b .L1748 +.L1747: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] - ldr x25, [sp,64] - ldp x29, x30, [sp], 80 + ldp x29, x30, [sp], 64 ret .size flash_info_blk_init, .-flash_info_blk_init .align 2 @@ -10147,39 +10889,39 @@ flash_ddr_para_scan: stp x23, x24, [sp,48] uxtb w24, w0 mov w23, w1 - ldrb w0, [x21,681] + ldrb w0, [x21,764] add x20, x20, :lo12:.LANCHOR4 - strb w22, [x21,716] + strb w22, [x21,136] bl flash_set_interface_mode - ldrb w0, [x21,681] + ldrb w0, [x21,764] bl nandc_set_if_mode - ldr x2, [x20,1192] + ldr x2, [x20,1216] mov w1, w23 - ldr x3, [x20,1200] + ldr x3, [x20,1224] mov w4, 4 mov w0, w24 bl flash_ddr_tunning_read - ldr x2, [x20,1192] + ldr x2, [x20,1216] mov w0, w24 - ldr x3, [x20,1200] + ldr x3, [x20,1224] mov w1, w23 mov w4, 4 bl flash_read_page cmn w0, #1 - bne .L1555 - ldrb w0, [x21,681] - tbz x0, 0, .L1555 + bne .L1751 + ldrb w0, [x21,764] + tbz x0, 0, .L1751 mov w0, 1 bl flash_set_interface_mode mov w0, w22 bl nandc_set_if_mode - strb wzr, [x21,716] - b .L1556 -.L1555: + strb wzr, [x21,136] + b .L1752 +.L1751: add x19, x19, :lo12:.LANCHOR0 mov w0, 1 - strb w0, [x19,716] -.L1556: + strb w0, [x19,136] +.L1752: mov w0, 0 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -10188,8 +10930,8 @@ flash_ddr_para_scan: ret .size flash_ddr_para_scan, .-flash_ddr_para_scan .align 2 - .type id_block_read_data.constprop.38, %function -id_block_read_data.constprop.38: + .type id_block_read_data.constprop.30, %function +id_block_read_data.constprop.30: stp x29, x30, [sp, -240]! add x29, sp, 0 stp x27, x28, [sp,80] @@ -10200,7 +10942,7 @@ id_block_read_data.constprop.38: str x1, [x29,120] stp x25, x26, [sp,64] mov w26, w0 - ldr x0, [x19,720] + ldr x0, [x19,88] stp x21, x22, [sp,32] stp x23, x24, [sp,48] mov x21, x2 @@ -10211,10 +10953,10 @@ id_block_read_data.constprop.38: mov w25, w22 str w2, [x29,164] mul w0, w2, w0 - ldrb w2, [x19,136] + ldrb w2, [x19,184] str w2, [x29,136] uxth w0, w0 - strb wzr, [x19,136] + strb wzr, [x19,184] udiv w2, w26, w0 msub w0, w2, w0, w26 str w0, [x29,172] @@ -10223,12 +10965,12 @@ id_block_read_data.constprop.38: ldr w0, [x29,172] and w0, w0, 3 str w0, [x29,168] - adrp x0, .LC99 - add x0, x0, :lo12:.LC99 + adrp x0, .LC145 + add x0, x0, :lo12:.LC145 str x0, [x29,112] -.L1561: +.L1757: cmp w22, w27 - bcs .L1598 + bcs .L1794 ldr w0, [x29,168] adrp x1, .LANCHOR4 add x1, x1, :lo12:.LANCHOR4 @@ -10236,39 +10978,36 @@ id_block_read_data.constprop.38: uxth w0, w0 str w0, [x29,144] ldr w0, [x29,172] - ldrb w1, [x1,1208] + ldrb w1, [x1,1232] add w20, w22, w0 - add x0, x19, 168 + add x0, x19, 212 udiv w20, w20, w23 and w20, w20, 65535 ldrh w0, [x0,w20,sxtw 1] - cbnz w1, .L1562 + cbnz w1, .L1758 mov w20, w0 - b .L1563 -.L1562: - ldrb w1, [x19,165] + b .L1759 +.L1758: + ldrb w1, [x19,208] lsl w0, w20, 1 cmp w1, wzr csel w20, w0, w20, ne -.L1563: +.L1759: ldr w1, [x29,160] ldr w0, [x29,164] + ldrb w28, [x19,96] madd w0, w20, w0, w1 - str w0, [x29,140] - adrp x0, .LANCHOR4 - add x0, x0, :lo12:.LANCHOR4 ldr w1, [x29,168] - ldrb w28, [x0,1209] - ldr w0, [x29,140] + str w0, [x29,140] add w24, w0, w1 - ldr x0, [x19,720] + ldr x0, [x19,88] ldrb w0, [x0,9] udiv w24, w24, w0 - ldrb w0, [x19,140] + ldrb w0, [x19,188] str w0, [x29,132] mov w0, w28 bl nandc_bch_sel -.L1564: +.L1760: mov w0, 0 mov w1, w24 mov x2, x21 @@ -10277,30 +11016,30 @@ id_block_read_data.constprop.38: bl flash_read_page cmn w0, #1 mov w20, w0 - bne .L1571 - ldrb w5, [x19,136] - cbnz w5, .L1566 -.L1569: + bne .L1767 + ldrb w5, [x19,184] + cbnz w5, .L1762 +.L1765: adrp x0, .LANCHOR4 add x0, x0, :lo12:.LANCHOR4 - ldr x7, [x0,1168] - cbnz x7, .L1567 - b .L1568 -.L1566: + ldr x7, [x0,1192] + cbnz x7, .L1763 + b .L1764 +.L1762: mov w0, 0 mov w1, w24 mov x2, x21 add x3, x29, 176 mov w4, w23 str x5, [x29,104] - strb wzr, [x19,136] + strb wzr, [x19,184] bl flash_read_page cmn w0, #1 ldr x5, [x29,104] - strb w5, [x19,136] - beq .L1569 - b .L1597 -.L1567: + strb w5, [x19,184] + beq .L1765 + b .L1793 +.L1763: mov w0, 0 mov w2, w24 mov w1, w0 @@ -10309,28 +11048,28 @@ id_block_read_data.constprop.38: mov w5, w23 blr x7 cmn w0, #1 - bne .L1597 -.L1568: - ldrb w0, [x19,716] - cbz w0, .L1571 + bne .L1793 +.L1764: + ldrb w0, [x19,136] + cbz w0, .L1767 mov w0, 0 mov w1, w24 mov x2, x21 add x3, x29, 176 mov w4, w23 bl flash_ddr_tunning_read -.L1597: +.L1793: mov w20, w0 -.L1571: +.L1767: cmn w20, #1 - bne .L1572 + bne .L1768 cmp w28, 16 - beq .L1572 + beq .L1768 mov w0, 16 mov w28, 16 bl nandc_bch_sel - b .L1564 -.L1572: + b .L1760 +.L1768: ldr w0, [x29,132] bl nandc_bch_sel cmn w20, #1 @@ -10341,18 +11080,18 @@ id_block_read_data.constprop.38: cmp w0, w26 cset w0, eq tst w1, w0 - beq .L1574 - cbnz w25, .L1574 + beq .L1770 + cbnz w25, .L1770 ldr w1, [x21] mov w0, 18766 movk w0, 0x464e, lsl 16 cmp w1, w0 - bne .L1574 + bne .L1770 ldr w0, [x29,144] ldrb w23, [x21,17] add w27, w27, w0 - b .L1575 -.L1574: + b .L1771 +.L1770: ldr x0, [x29,144] mov w2, w22 ldr w1, [x29,140] @@ -10363,16 +11102,16 @@ id_block_read_data.constprop.38: ldr x0, [x29,112] bl printk str wzr, [x29,168] -.L1575: +.L1771: ldr w0, [x29,144] add w22, w0, w22 uxth w22, w22 - b .L1561 -.L1598: + b .L1757 +.L1794: ldr x0, [x29,120] ldrb w1, [x29,136] add x0, x0, :lo12:.LANCHOR0 - strb w1, [x0,136] + strb w1, [x0,184] mov w0, w25 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -10381,7 +11120,7 @@ id_block_read_data.constprop.38: ldp x27, x28, [sp,80] ldp x29, x30, [sp], 240 ret - .size id_block_read_data.constprop.38, .-id_block_read_data.constprop.38 + .size id_block_read_data.constprop.30, .-id_block_read_data.constprop.30 .align 2 .global flash_complete_page_read .type flash_complete_page_read, %function @@ -10391,157 +11130,170 @@ flash_complete_page_read: stp x19, x20, [sp,16] adrp x20, .LANCHOR0 and w19, w0, 2097151 - stp x21, x22, [sp,32] - add x21, x20, :lo12:.LANCHOR0 - stp x25, x26, [sp,64] stp x23, x24, [sp,48] - stp x27, x28, [sp,80] mov w24, w0 + add x0, x20, :lo12:.LANCHOR0 + stp x25, x26, [sp,64] + stp x21, x22, [sp,32] + stp x27, x28, [sp,80] + ubfx x23, x24, 21, 3 mov x25, x1 - ldrb w1, [x21,152] - ubfx x0, x24, 21, 3 + ldrb w0, [x0,98] mov x26, x2 ubfx x22, x24, 24, 2 - cmp w1, w0 - bhi .L1600 + cmp w0, w23 + bhi .L1796 adrp x1, .LANCHOR3 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR3 add x0, x0, :lo12:.LC0 - add x1, x1, 112 + add x1, x1, 184 mov w2, 789 bl printk -.L1601: - b .L1601 -.L1600: - add x0, x21, x0, sxtw - ldrb w23, [x0,156] - ldr x27, [x21,16] +.L1796: + add x21, x20, :lo12:.LANCHOR0 + add x23, x21, x23, sxtw + ldrb w23, [x23,200] mov w0, w23 + ldr x27, [x21,16] bl nandc_cs - cbnz w22, .L1602 - ldrb w0, [x21,164] - cbz w0, .L1603 - ldrb w0, [x21,165] - cbz w0, .L1602 -.L1603: + cbnz w22, .L1797 + ldrb w0, [x21,97] + cbz w0, .L1798 + ldrb w0, [x21,208] + cbz w0, .L1797 +.L1798: add x1, x20, :lo12:.LANCHOR0 - ldrh w2, [x1,166] + ldrh w2, [x1,210] udiv w0, w19, w2 mul w0, w0, w2 - ldrb w2, [x1,165] + ldrb w2, [x1,208] sub w19, w19, w0 - cbz w2, .L1604 + cbz w2, .L1799 add w19, w0, w19, lsl 1 - b .L1602 -.L1604: - add x1, x1, 168 + b .L1797 +.L1799: + add x1, x1, 212 ldrh w19, [x1,w19,uxtw 1] add w19, w19, w0 -.L1602: +.L1797: ubfiz x0, x23, 8, 8 - adrp x21, .LANCHOR2 add x5, x27, x0 mov w0, 5 - add x27, x21, :lo12:.LANCHOR2 - mov w1, 0 - mov x3, x25 - mov x4, x26 str w0, [x5,2056] and w0, w19, 255 str wzr, [x5,2052] - add x27, x27, 368 str wzr, [x5,2052] str w0, [x5,2052] lsr w0, w19, 8 str w0, [x5,2052] lsr w0, w19, 16 - ldrb w2, [x27,9] str w0, [x5,2052] mov w0, 224 str w0, [x5,2056] + cbz w22, .L1800 + add x0, x20, :lo12:.LANCHOR0 + ldr x0, [x0,88] + ldrb w0, [x0,12] + cmp w0, 3 + bne .L1800 + sub w0, w22, #1 + add w1, w19, w19, lsl 1 + add w0, w0, w1 + b .L1838 +.L1800: + mov w0, w19 +.L1838: + adrp x21, .LANCHOR2 + bl nandc_set_seed + add x27, x21, :lo12:.LANCHOR2 mov w0, w23 + mov w1, 0 + mov x3, x25 + mov x4, x26 + add x27, x27, 376 + ldrb w2, [x27,9] bl nandc_xfer cmn w0, #1 - bne .L1605 + bne .L1802 add x28, x20, :lo12:.LANCHOR0 - ldrb w5, [x28,136] - cbz w5, .L1606 + ldrb w5, [x28,184] + cbz w5, .L1803 ldrb w4, [x27,9] mov w0, w23 orr w1, w19, w22, lsl 24 mov x2, x25 mov x3, x26 str x5, [x29,104] - strb wzr, [x28,136] + strb wzr, [x28,184] bl flash_read_page ldr x5, [x29,104] - strb w5, [x28,136] - cbnz w22, .L1607 -.L1614: + strb w5, [x28,184] + cbnz w22, .L1804 +.L1811: add x1, x20, :lo12:.LANCHOR0 - ldrb w2, [x1,164] - cbz w2, .L1607 - ldrb w1, [x1,140] + ldrb w2, [x1,97] + cbz w2, .L1804 + ldrb w1, [x1,188] add w1, w1, w1, lsl 1 cmp w0, w1, lsr 2 - blt .L1607 + blt .L1804 add x21, x21, :lo12:.LANCHOR2 - ldrb w1, [x21,387] + ldrb w1, [x21,395] sub w1, w1, #4 uxtb w1, w1 cmp w1, 3 mov w1, 256 csel w0, w0, w1, hi - b .L1622 -.L1607: + b .L1821 +.L1804: cmn w0, #1 - bne .L1622 -.L1615: - adrp x0, .LANCHOR4+1168 - ldr x6, [x0,#:lo12:.LANCHOR4+1168] - cbnz x6, .L1610 -.L1613: + bne .L1821 +.L1812: + adrp x0, .LANCHOR4+1192 + ldr x6, [x0,#:lo12:.LANCHOR4+1192] + cbnz x6, .L1807 +.L1810: add x20, x20, :lo12:.LANCHOR0 - adrp x0, .LC100 - add x0, x0, :lo12:.LC100 + adrp x0, .LC146 + add x0, x0, :lo12:.LC146 mov w1, 0 mov w2, w24 mov w3, -1 - ldrb w4, [x20,136] + ldrb w4, [x20,184] bl printk - ldrb w0, [x20,716] - cbnz w0, .L1611 + ldrb w0, [x20,136] + cbnz w0, .L1808 mov w0, -1 - b .L1622 -.L1610: + b .L1821 +.L1807: add x5, x21, :lo12:.LANCHOR2 mov w0, w23 mov w1, w22 mov w2, w19 mov x3, x25 mov x4, x26 - ldrb w5, [x5,377] + ldrb w5, [x5,385] blr x6 cmn w0, #1 - bne .L1622 - b .L1613 -.L1611: + bne .L1821 + b .L1810 +.L1808: add x21, x21, :lo12:.LANCHOR2 mov w0, w23 orr w1, w19, w22, lsl 24 mov x2, x25 mov x3, x26 - ldrb w4, [x21,377] + ldrb w4, [x21,385] bl flash_ddr_tunning_read - b .L1622 -.L1605: - cbz w22, .L1614 - b .L1622 -.L1606: - cbz w22, .L1614 - b .L1615 -.L1622: + b .L1821 +.L1802: + cbz w22, .L1811 + b .L1821 +.L1803: + cbz w22, .L1811 + b .L1812 +.L1821: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -10560,47 +11312,47 @@ queue_wait_first_req_completed: add x0, x19, :lo12:.LANCHOR0 stp x21, x22, [sp,32] stp x23, x24, [sp,48] - ldrb w20, [x0,3814] + ldrb w20, [x0,3861] cmp w20, 255 - beq .L1671 - add x0, x0, 728 + beq .L1875 + add x0, x0, 768 mov w1, 0 add x0, x0, x20, lsl 6 ldrb w2, [x0,58] ldr w21, [x0,40] sub w3, w2, #1 cmp w3, 9 - bhi .L1637 - adrp x0, .L1639 - add x0, x0, :lo12:.L1639 + bhi .L1841 + adrp x0, .L1843 + add x0, x0, :lo12:.L1843 ldrb w0, [x0,w3,uxtw] - adr x1, .Lrtx1639 + adr x1, .Lrtx1843 add x0, x1, w0, sxtb #2 br x0 -.Lrtx1639: +.Lrtx1843: .section .rodata .align 0 .align 2 -.L1639: - .byte (.L1638 - .Lrtx1639) / 4 - .byte (.L1638 - .Lrtx1639) / 4 - .byte (.L1640 - .Lrtx1639) / 4 - .byte (.L1640 - .Lrtx1639) / 4 - .byte (.L1640 - .Lrtx1639) / 4 - .byte (.L1641 - .Lrtx1639) / 4 - .byte (.L1642 - .Lrtx1639) / 4 - .byte (.L1643 - .Lrtx1639) / 4 - .byte (.L1640 - .Lrtx1639) / 4 - .byte (.L1643 - .Lrtx1639) / 4 +.L1843: + .byte (.L1842 - .Lrtx1843) / 4 + .byte (.L1842 - .Lrtx1843) / 4 + .byte (.L1844 - .Lrtx1843) / 4 + .byte (.L1844 - .Lrtx1843) / 4 + .byte (.L1844 - .Lrtx1843) / 4 + .byte (.L1845 - .Lrtx1843) / 4 + .byte (.L1846 - .Lrtx1843) / 4 + .byte (.L1847 - .Lrtx1843) / 4 + .byte (.L1844 - .Lrtx1843) / 4 + .byte (.L1847 - .Lrtx1843) / 4 .text -.L1638: +.L1842: mov w0, w21 mov w1, 64 bl flash_wait_device_ready - tbz x0, 6, .L1671 + tbz x0, 6, .L1875 add x19, x19, :lo12:.LANCHOR0 mov w0, w21 - add x19, x19, 728 + add x19, x19, 768 add x20, x19, x20, lsl 6 mov x2, x20 ldr x3, [x20,8] @@ -10615,70 +11367,70 @@ queue_wait_first_req_completed: ldrb w0, [x20,2] orr w0, w0, 8 strb w0, [x20,2] - b .L1671 -.L1640: + b .L1875 +.L1844: bl nandc_iqr_wait_flash_ready mov w0, w21 mov w1, 64 bl flash_wait_device_ready mov w21, w0 - tbz x21, 6, .L1671 + tbz x21, 6, .L1875 mov w1, 5 add x19, x19, :lo12:.LANCHOR0 ands w1, w21, w1 - beq .L1646 - add x19, x19, 728 + beq .L1850 + add x19, x19, 768 mov w0, 11 add x20, x19, x20, lsl 6 mov w4, 11 strb w0, [x20,58] - adrp x0, .LC101 + adrp x0, .LC147 ldrb w1, [x20,1] - add x0, x0, :lo12:.LC101 + add x0, x0, :lo12:.LC147 ldr w2, [x20,52] ldr w3, [x20,40] bl printk mov w0, -1 str w0, [x20,52] - b .L1672 -.L1646: + b .L1876 +.L1850: add x20, x19, x20, lsl 6 - b .L1653 -.L1643: + b .L1857 +.L1847: add x22, x19, :lo12:.LANCHOR0 mov w0, 3 cmp w2, 10 mov w1, 9 - add x22, x22, 728 + add x22, x22, 768 csel w1, w0, w1, ne ubfx x3, x21, 21, 3 add x0, x22, x20, lsl 6 -.L1648: +.L1852: ldrb w23, [x0] cmp w23, 255 - beq .L1673 + beq .L1877 add x0, x22, x23, lsl 6 ldrb w2, [x0,58] cmp w2, w1 - bne .L1648 + bne .L1852 ldr w2, [x0,40] ubfx x2, x2, 21, 3 cmp w3, w2 - bne .L1648 + bne .L1852 bl nandc_iqr_wait_flash_ready mov w0, w21 mov w1, 64 bl flash_wait_device_ready mov w21, w0 and w0, w0, 64 - tbz x21, 6, .L1656 + tbz x21, 6, .L1860 ands w0, w21, 15 add x22, x22, x20, lsl 6 - beq .L1651 - adrp x0, .LC101 + beq .L1855 + adrp x0, .LC147 ldrb w1, [x22,1] ldr w2, [x22,52] - add x0, x0, :lo12:.LC101 + add x0, x0, :lo12:.LC147 ldr w3, [x22,40] mov w4, 11 bl printk @@ -10686,61 +11438,61 @@ queue_wait_first_req_completed: strb w0, [x22,58] mov w0, -1 str w0, [x22,52] -.L1650: +.L1854: add x19, x19, :lo12:.LANCHOR0 - add x19, x19, 728 + add x19, x19, 768 add x20, x19, x20, lsl 6 add x23, x19, x23, lsl 6 ldrb w0, [x20,58] strb w0, [x23,58] ldr w0, [x20,52] str w0, [x23,52] -.L1672: +.L1876: mov w1, w21 - b .L1637 -.L1651: + b .L1841 +.L1855: mov w1, 12 str w0, [x22,52] strb w1, [x22,58] -.L1656: +.L1860: mov w21, w0 - b .L1650 -.L1673: + b .L1854 +.L1877: mov w1, -1 - b .L1637 -.L1641: + b .L1841 +.L1845: mov w1, 32 mov w0, w21 bl flash_wait_device_ready - tbz x0, 5, .L1671 + tbz x0, 5, .L1875 ands w1, w0, 15 add x19, x19, :lo12:.LANCHOR0 add x20, x19, x20, lsl 6 - beq .L1653 + beq .L1857 mov w1, 11 - strb w1, [x20,786] + strb w1, [x20,826] mov w1, -1 - str w1, [x20,780] + str w1, [x20,820] mov w1, w0 - b .L1637 -.L1653: + b .L1841 +.L1857: mov w0, 12 - str w1, [x20,780] - strb w0, [x20,786] - b .L1637 -.L1642: + str w1, [x20,820] + strb w0, [x20,826] + b .L1841 +.L1846: mov w1, 64 mov w0, w21 bl flash_wait_device_ready - tbz x0, 6, .L1671 + tbz x0, 6, .L1875 add x19, x19, :lo12:.LANCHOR0 add x20, x19, x20, lsl 6 - str w0, [x20,780] + str w0, [x20,820] mov w0, 6 - strb w0, [x20,786] -.L1671: + strb w0, [x20,826] +.L1875: mov w1, 0 -.L1637: +.L1841: mov w0, w1 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -10756,15 +11508,15 @@ sblk_wait_write_queue_completed: add x29, sp, 0 str x19, [sp,16] adrp x19, .LANCHOR0 -.L1675: +.L1879: add x0, x19, :lo12:.LANCHOR0 - ldrb w0, [x0,3814] + ldrb w0, [x0,3861] cmp w0, 255 - beq .L1677 + beq .L1881 bl queue_wait_first_req_completed bl queue_remove_completed_req - b .L1675 -.L1677: + b .L1879 +.L1881: ldr x19, [sp,16] ldp x29, x30, [sp], 32 ret @@ -10833,48 +11585,48 @@ ftl_open_sblk_read_test: add x21, x21, :lo12:.LANCHOR4 add x22, x22, :lo12:.LANCHOR5 str x23, [sp,48] - add x21, x21, 1216 + add x21, x21, 1280 bl ftl_get_blk_list_in_sblk - add x22, x22, 192 + add x22, x22, 256 strh w19, [x29,64] strb w0, [x29,73] mov w19, 0 -.L1681: +.L1885: adrp x0, .LANCHOR0 add x1, x0, :lo12:.LANCHOR0 mov x23, x0 - ldrh w1, [x1,3228] + ldrh w1, [x1,3276] cmp w1, w19 - bls .L1680 + bls .L1884 mov w20, 0 -.L1687: +.L1891: add x3, x23, :lo12:.LANCHOR0 - ldrb w0, [x3,3196] + ldrb w0, [x3,3244] cmp w0, w20 - bls .L1693 + bls .L1897 add x0, x29, 64 add x0, x0, x20, sxtw 1 ldrh w0, [x0,16] mov w1, 65535 cmp w0, w1 - beq .L1683 - ldrh w1, [x3,3270] + beq .L1887 + ldrh w1, [x3,3318] mov x2, x22 - ldrb w3, [x3,2776] + ldrb w3, [x3,2816] madd w0, w0, w1, w19 mov x1, x21 bl ftl_read_ppa_page cmp w0, 512 - beq .L1680 -.L1683: + beq .L1884 +.L1887: add w20, w20, 1 uxth w20, w20 - b .L1687 -.L1693: + b .L1891 +.L1897: add w19, w19, 1 uxth w19, w19 - b .L1681 -.L1680: + b .L1885 +.L1884: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldr x23, [sp,48] @@ -10900,21 +11652,21 @@ sblk_read_page: mov x19, x0 mov w22, w21 mov w25, -1 - add x26, x23, 3814 -.L1695: - cbz w22, .L1707 + add x26, x23, 3861 +.L1899: + cbz w22, .L1911 ldrb w27, [x19] ldr w28, [x19,40] -.L1696: +.L1900: mov w0, w28 mov w1, 0 bl queue_lun_state mov w2, w0 - cbz w0, .L1708 + cbz w0, .L1912 bl queue_wait_first_req_completed bl queue_remove_completed_req - b .L1696 -.L1708: + b .L1900 +.L1912: ldr w1, [x19,40] mov w0, 48 str x2, [x29,104] @@ -10927,29 +11679,29 @@ sblk_read_page: strb w25, [x19] bl buf_add_tail subs w22, w22, #1 - beq .L1707 - add x19, x23, 728 + beq .L1911 + add x19, x23, 768 sbfiz x27, x27, 6, 32 add x19, x19, x27 - b .L1695 -.L1707: + b .L1899 +.L1911: adrp x19, .LANCHOR0 add x19, x19, :lo12:.LANCHOR0 - add x19, x19, 728 -.L1700: - cbz w21, .L1709 + add x19, x19, 768 +.L1904: + cbz w21, .L1913 ldrb w0, [x20,58] cmp w0, 12 - bne .L1701 + bne .L1905 ldrb w20, [x20] sub w21, w21, #1 add x20, x19, x20, lsl 6 - b .L1700 -.L1701: + b .L1904 +.L1905: bl queue_wait_first_req_completed bl queue_remove_completed_req - b .L1700 -.L1709: + b .L1904 +.L1913: mov w0, w21 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -10973,130 +11725,129 @@ gc_check_data_one_wl: stp x21, x22, [sp,48] stp x23, x24, [sp,64] stp x25, x26, [sp,80] - ldr x0, [x20,2848] + ldr x0, [x20,2896] ldr x23, [x20,80] - add x20, x20, 2840 - cbnz x0, .L1711 + add x20, x20, 2888 + cbnz x0, .L1915 mov w0, 1 bl buf_alloc str x0, [x20,8] -.L1711: - add x21, x19, :lo12:.LANCHOR0 - mov w24, 0 - ldr x20, [x21,2848] - cbnz x20, .L1712 +.L1915: + add x0, x19, :lo12:.LANCHOR0 + ldr x20, [x0,2896] + cbnz x20, .L1916 adrp x1, .LANCHOR3 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR3 add x0, x0, :lo12:.LC0 - add x1, x1, 144 + add x1, x1, 216 mov w2, 348 bl printk -.L1713: - b .L1713 -.L1712: +.L1916: + mov w24, 0 add x25, x23, 80 + add x21, x19, :lo12:.LANCHOR0 adrp x26, .LANCHOR4 -.L1734: +.L1917: ldrb w0, [x25,9] cmp w24, w0 - bge .L1736 + bge .L1938 mov w22, 1 sxtw x27, w24 -.L1722: - add x0, x21, 2840 +.L1926: + add x0, x21, 2888 ldrh w1, [x0,20] cmp w22, w1 - bgt .L1737 + bgt .L1939 add x1, x27, 8 - ldrh w2, [x21,3270] + ldrh w2, [x21,3318] ldrh w0, [x0,16] ldrh w1, [x25,x1,lsl 1] mul w1, w1, w2 - ldrb w2, [x21,3177] + ldrb w2, [x21,3225] cmp w2, 3 - bne .L1714 + bne .L1918 add w1, w1, w0 orr w1, w1, w22, lsl 24 - b .L1735 -.L1714: + b .L1937 +.L1918: cmp w2, 2 - bne .L1716 + bne .L1920 sub w0, w0, #1 add w1, w0, w1 add w1, w1, w22 orr w1, w1, 33554432 - b .L1735 -.L1716: + b .L1937 +.L1920: add w1, w1, w0 -.L1735: +.L1937: str w1, [x20,40] mov x0, x20 mov w1, 1 bl sblk_read_page ldr w2, [x20,52] cmn w2, #1 - beq .L1717 + beq .L1921 add x3, x26, :lo12:.LANCHOR4 - ldrh w0, [x21,2862] + ldrh w0, [x21,2910] ldr x1, [x20,24] lsl x0, x0, 2 - ldr x4, [x3,1056] + ldr x4, [x3,1104] ldr w5, [x4,x0] ldr w4, [x1,4] cmp w5, w4 - bne .L1717 - ldr x3, [x3,1064] + bne .L1921 + ldr x3, [x3,1112] ldr w3, [x3,x0] ldr w0, [x1,8] cmp w3, w0 - beq .L1718 -.L1717: + beq .L1922 +.L1921: add x0, x26, :lo12:.LANCHOR4 - ldrh w4, [x21,2862] + ldrh w4, [x21,2910] lsl x4, x4, 2 - ldr x1, [x0,1056] + ldr x1, [x0,1104] ldr w3, [x1,x4] cmn w3, #1 - beq .L1718 - adrp x1, .LANCHOR2+400 - ldr w1, [x1,#:lo12:.LANCHOR2+400] - tbz x1, 10, .L1719 + beq .L1922 + adrp x1, .LANCHOR2 + ldr w1, [x1,#:lo12:.LANCHOR2] + tbz x1, 10, .L1923 ldr x7, [x20,24] - ldr x5, [x0,1064] + ldr x5, [x0,1112] ldr w0, [x7,12] str w0, [sp] - adrp x0, .LC102 - add x0, x0, :lo12:.LC102 + adrp x0, .LC148 + add x0, x0, :lo12:.LC148 ldr w4, [x5,x4] ldr w6, [x7,4] ldr w5, [x7] ldr w1, [x20,40] ldr w7, [x7,8] bl printk -.L1719: +.L1923: add x19, x19, :lo12:.LANCHOR0 ldrh w1, [x23,80] ldr x0, [x19,72] strh wzr, [x0,x1,lsl 1] mov w0, -1 - b .L1720 -.L1718: - ldrh w0, [x21,2862] + b .L1924 +.L1922: + ldrh w0, [x21,2910] add w22, w22, 1 add w0, w0, 1 - strh w0, [x21,2862] - b .L1722 -.L1737: + strh w0, [x21,2910] + b .L1926 +.L1939: add w24, w24, 1 - b .L1734 -.L1736: + b .L1917 +.L1938: add x19, x19, :lo12:.LANCHOR0 - ldrh w0, [x19,2856] + ldrh w0, [x19,2904] add w0, w0, 1 - strh w0, [x19,2856] + strh w0, [x19,2904] mov w0, 0 -.L1720: +.L1924: sub sp, x29, #16 ldp x19, x20, [sp,32] ldp x21, x22, [sp,48] @@ -11115,60 +11866,59 @@ flash_prog_page: add x29, sp, 0 stp x21, x22, [sp,32] uxtb x22, w0 - adrp x0, .LANCHOR0+16 adrp x21, .LANCHOR2 + adrp x0, .LANCHOR0+16 str x27, [sp,80] stp x19, x20, [sp,16] - ldr x19, [x0,#:lo12:.LANCHOR0+16] - add x0, x21, :lo12:.LANCHOR2 stp x23, x24, [sp,48] - stp x25, x26, [sp,64] + ldr x19, [x0,#:lo12:.LANCHOR0+16] mov x20, x22 + ldr w0, [x21,#:lo12:.LANCHOR2] add x22, x22, 8 - ldr w0, [x0,400] + stp x25, x26, [sp,64] mov w23, w1 - mov x24, x3 - mov x25, x2 + mov x25, x3 + mov x26, x2 mov w3, w4 add x22, x19, x22, lsl 8 - and w26, w1, 2097151 + and w24, w1, 2097151 ubfx x27, x23, 24, 2 - tbz x0, 4, .L1739 - adrp x0, .LC103 + tbz x0, 4, .L1941 + adrp x0, .LC149 mov w2, w27 - add x0, x0, :lo12:.LC103 + add x0, x0, :lo12:.LC149 bl printk -.L1739: +.L1941: bl nandc_wait_flash_ready mov w0, w20 bl hynix_reconfig_rr_para mov w0, w20 bl nandc_cs mov w0, w20 - cbnz w27, .L1740 + cbnz w27, .L1942 bl zftl_flash_enter_slc_mode - b .L1741 -.L1740: + b .L1943 +.L1942: bl zftl_flash_exit_slc_mode -.L1741: +.L1943: ubfiz x4, x20, 8, 8 mov w0, 128 add x19, x19, x4 - and w1, w23, 255 add x21, x21, :lo12:.LANCHOR2 str w0, [x19,2056] - lsr w0, w26, 8 + and w0, w23, 255 str wzr, [x19,2052] str wzr, [x19,2052] - str w1, [x19,2052] str w0, [x19,2052] - lsr w0, w26, 16 + lsr w0, w24, 8 str w0, [x19,2052] - mov w0, w26 + lsr w0, w24, 16 + str w0, [x19,2052] + mov w0, w24 bl nandc_set_seed - ldrb w1, [x21,377] - mov x2, x25 - mov x3, x24 + ldrb w1, [x21,385] + mov x2, x26 + mov x3, x25 mov w0, 1 bl nandc_xfer_start bl nandc_xfer_done @@ -11178,11 +11928,22 @@ flash_prog_page: bl nandc_wait_flash_ready mov x0, x22 bl flash_read_status - mov w19, w0 + mov w21, w0 mov w0, w20 + and w19, w21, 4 bl nandc_de_cs + tbz x21, 2, .L1944 + adrp x0, .LANCHOR2 + ldr w0, [x0,#:lo12:.LANCHOR2] + tbz x0, 12, .L1944 + adrp x0, .LC150 + mov w1, w23 + add x0, x0, :lo12:.LC150 + mov w2, w19 + bl printk +.L1944: + mov w0, w19 ldr x27, [sp,80] - and w0, w19, 4 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -11200,81 +11961,81 @@ flash_test_blk: stp x21, x22, [sp,32] uxtb w22, w0 uxth w20, w1 - cbnz w22, .L1746 - adrp x0, .LANCHOR5+448 - ldrb w1, [x0,#:lo12:.LANCHOR5+448] + cbnz w22, .L1955 + adrp x0, .LANCHOR5+512 + ldrb w1, [x0,#:lo12:.LANCHOR5+512] mov w0, w22 cmp w1, w20 - bhi .L1747 -.L1746: + bhi .L1956 +.L1955: adrp x19, .LANCHOR4 mov w1, 165 add x19, x19, :lo12:.LANCHOR4 mov w2, 32 - ldr x0, [x19,1200] + ldr x0, [x19,1224] bl ftl_memset - ldr x0, [x19,1192] + ldr x0, [x19,1216] mov w1, 90 mov w2, 8 bl ftl_memset - adrp x0, .LANCHOR0+166 - ldrh w21, [x0,#:lo12:.LANCHOR0+166] + adrp x0, .LANCHOR0+210 + ldrh w21, [x0,#:lo12:.LANCHOR0+210] mov w0, w22 mul w21, w20, w21 mov w1, w21 bl flash_erase_block cmn w0, #1 - beq .L1752 + beq .L1961 adrp x20, .LANCHOR2 - ldr x2, [x19,1192] + ldr x2, [x19,1216] add x20, x20, :lo12:.LANCHOR2 - ldr x3, [x19,1200] + ldr x3, [x19,1224] mov w0, w22 mov w1, w21 - add x20, x20, 368 + add x20, x20, 376 ldrb w4, [x20,9] bl flash_prog_page cmn w0, #1 - beq .L1752 + beq .L1961 ldrb w4, [x20,9] mov w0, w22 - ldr x2, [x19,1192] + ldr x2, [x19,1216] mov w1, w21 - ldr x3, [x19,1200] + ldr x3, [x19,1224] bl flash_read_page cmn w0, #1 mov w20, w0 - beq .L1752 - ldr x0, [x19,1192] + beq .L1961 + ldr x0, [x19,1216] ldr w1, [x0] mov w0, 23130 bfi w0, w0, 16, 16 cmp w1, w0 - bne .L1752 - ldr x0, [x19,1200] + bne .L1961 + ldr x0, [x19,1224] ldr w1, [x0] mov w0, 42405 bfi w0, w0, 16, 16 cmp w1, w0 csinv w20, w20, wzr, eq - b .L1749 -.L1752: + b .L1958 +.L1961: mov w20, -1 -.L1749: +.L1958: mov w0, w22 mov w1, w21 bl flash_erase_block mov w0, w20 -.L1747: +.L1956: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x29, x30, [sp], 48 ret .size flash_test_blk, .-flash_test_blk - .section .text.unlikely,"ax",%progbits + .section .text.unlikely .align 2 - .type fw_flash_page_prog.constprop.39, %function -fw_flash_page_prog.constprop.39: + .type fw_flash_page_prog.constprop.31, %function +fw_flash_page_prog.constprop.31: stp x29, x30, [sp, -64]! adrp x4, .LANCHOR0 add x29, sp, 0 @@ -11283,12 +12044,11 @@ fw_flash_page_prog.constprop.39: mov x21, x1 stp x19, x20, [sp,16] str x2, [x29,56] - ldr x1, [x4,720] - ldrb w20, [x4,140] + ldr x1, [x4,88] + ldrb w20, [x4,188] ldrb w19, [x1,9] udiv w19, w0, w19 - adrp x0, .LANCHOR4+1209 - ldrb w0, [x0,#:lo12:.LANCHOR4+1209] + ldrb w0, [x4,96] bl nandc_bch_sel ldr x3, [x29,56] mov w1, w19 @@ -11304,85 +12064,431 @@ fw_flash_page_prog.constprop.39: ldp x19, x20, [sp,16] ldp x29, x30, [sp], 64 ret - .size fw_flash_page_prog.constprop.39, .-fw_flash_page_prog.constprop.39 + .size fw_flash_page_prog.constprop.31, .-fw_flash_page_prog.constprop.31 .text .align 2 - .global flash_start_tlc_page_prog - .type flash_start_tlc_page_prog, %function -flash_start_tlc_page_prog: + .global flash_start_page_prog + .type flash_start_page_prog, %function +flash_start_page_prog: stp x29, x30, [sp, -96]! - adrp x7, .LANCHOR0 - uxtb w3, w3 add x29, sp, 0 - add x7, x7, :lo12:.LANCHOR0 - stp x21, x22, [sp,32] stp x19, x20, [sp,16] + adrp x20, .LANCHOR0 + and w19, w1, 2097151 + stp x21, x22, [sp,32] + uxtb w22, w0 + add x0, x20, :lo12:.LANCHOR0 stp x23, x24, [sp,48] - str x25, [sp,64] - uxtb w25, w0 - uxtb w24, w1 - uxtb w20, w2 - ldrb w0, [x7,152] - mov x22, x5 - mov x21, x6 - cmp w0, w3 - bhi .L1762 + stp x25, x26, [sp,64] + stp x27, x28, [sp,80] + ubfx x27, x1, 21, 3 + mov x24, x2 + ldrb w0, [x0,98] + mov x23, x3 + ubfx x26, x1, 24, 2 + cmp w0, w27 + bhi .L1971 adrp x1, .LANCHOR3 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR3 add x0, x0, :lo12:.LC0 - add x1, x1, 168 - mov w2, 648 + add x1, x1, 240 + mov w2, 685 bl printk -.L1763: - b .L1763 -.L1762: - add x3, x7, x3, sxtw - ldrb w23, [x3,156] - str x4, [x29,88] - mov w0, w23 - ldr x19, [x7,16] +.L1971: + add x28, x20, :lo12:.LANCHOR0 + add x0, x28, x27, sxtw + ldrb w21, [x0,200] + ldr x25, [x28,16] + bl nandc_rdy_status + cbnz w0, .L1972 + ldrb w0, [x28,98] + cmp w0, 1 + bne .L1973 + bl nandc_wait_flash_ready + b .L1972 +.L1973: + mov w0, w27 + mov w1, w19 + mov w2, 64 + bl flash_wait_device_ready_raw +.L1972: + mov w0, w21 + bl hynix_reconfig_rr_para + mov w0, w21 bl nandc_cs - ldr x4, [x29,88] - cbz w25, .L1764 - sxtw x7, w23 - add x7, x7, 8 - add x7, x19, x7, lsl 8 - str w25, [x7,8] -.L1764: - ubfiz x7, x23, 8, 8 + cbnz w26, .L1974 + add x0, x20, :lo12:.LANCHOR0 + ldrb w1, [x0,97] + cbz w1, .L1975 + ldrb w0, [x0,208] + cbz w0, .L1976 +.L1975: + add x20, x20, :lo12:.LANCHOR0 + ldrh w1, [x20,210] + udiv w0, w19, w1 + mul w0, w0, w1 + ldrb w1, [x20,208] + sub w19, w19, w0 + cbz w1, .L1977 + add w19, w0, w19, lsl 1 + b .L1976 +.L1977: + add x20, x20, 212 + ldrh w19, [x20,w19,uxtw 1] + add w19, w19, w0 + b .L1978 +.L1976: + mov w0, w21 + bl zftl_flash_enter_slc_mode + b .L1978 +.L1974: + mov w0, w21 + bl zftl_flash_exit_slc_mode +.L1978: + ubfiz x1, x21, 8, 8 mov w0, 128 - add x19, x19, x7 - str w24, [x19,2056] - str w0, [x19,2056] - and w0, w4, 255 - str wzr, [x19,2052] - str wzr, [x19,2052] - str w0, [x19,2052] - lsr w0, w4, 8 - str w0, [x19,2052] - lsr w0, w4, 16 - add w4, w4, w4, lsl 1 - str w0, [x19,2052] - sub w0, w4, #1 - add w0, w0, w24 + add x20, x25, x1 + str w0, [x20,2056] + and w0, w19, 255 + str wzr, [x20,2052] + str wzr, [x20,2052] + str w0, [x20,2052] + lsr w0, w19, 8 + str w0, [x20,2052] + lsr w0, w19, 16 + str w0, [x20,2052] + mov w0, w19 bl nandc_set_seed - adrp x1, .LANCHOR2+377 - mov x2, x22 - mov x3, x21 + adrp x1, .LANCHOR2+385 + mov x2, x24 + mov x3, x23 mov w0, 1 - ldrb w1, [x1,#:lo12:.LANCHOR2+377] + ldrb w1, [x1,#:lo12:.LANCHOR2+385] bl nandc_xfer_start bl nandc_xfer_done - str w20, [x19,2056] - mov w0, w23 + str w22, [x20,2056] + mov w0, w21 bl nandc_de_cs - ldr x25, [sp,64] ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] + ldp x25, x26, [sp,64] + ldp x27, x28, [sp,80] ldp x29, x30, [sp], 96 ret + .size flash_start_page_prog, .-flash_start_page_prog + .align 2 + .type queue_prog_cmd, %function +queue_prog_cmd: + stp x29, x30, [sp, -32]! + add x29, sp, 0 + str x19, [sp,16] + mov x19, x0 + mov w0, 16 + ldr w1, [x19,40] + ldr x2, [x19,8] + ldr x3, [x19,24] + bl flash_start_page_prog + adrp x0, .LANCHOR0 + ldr w4, [x19,40] + add x1, x0, :lo12:.LANCHOR0 + ldrb w2, [x1,3861] + cmp w2, 255 + beq .L1983 + ubfx x4, x4, 21, 3 + add x1, x1, 768 +.L1985: + add x3, x1, x2, lsl 6 + ldr w5, [x3,40] + ubfx x5, x5, 21, 3 + cmp w4, w5 + bne .L1984 + ldrb w5, [x3,58] + add x3, x3, 48 + cmp w5, 6 + bne .L1984 + mov w1, 3 + strb w1, [x3,10] + b .L1983 +.L1984: + lsl x2, x2, 6 + ldrb w2, [x1,x2] + cmp w2, 255 + bne .L1985 +.L1983: + mov w1, 3 + strb w1, [x19,58] + mov w1, 1 + add x0, x0, :lo12:.LANCHOR0 + strb w1, [x19,59] + mov w1, -1 + add x0, x0, 3861 + strb w1, [x19] + mov x1, x19 + bl buf_add_tail + ldr x19, [sp,16] + ldp x29, x30, [sp], 32 + ret + .size queue_prog_cmd, .-queue_prog_cmd + .align 2 + .global sblk_prog_page + .type sblk_prog_page, %function +sblk_prog_page: + stp x29, x30, [sp, -96]! + add x29, sp, 0 + stp x19, x20, [sp,16] + stp x21, x22, [sp,32] + stp x23, x24, [sp,48] + stp x25, x26, [sp,64] + str x27, [sp,80] + mov x19, x0 + uxtb w20, w1 + ldrh w0, [x0,50] + cbz w0, .L1991 + adrp x0, .LANCHOR2 + ldr w0, [x0,#:lo12:.LANCHOR2] + tbz x0, 8, .L1991 + adrp x0, .LC151 + ldr w1, [x19,40] + add x0, x0, :lo12:.LC151 + mov w2, w20 + bl printk +.L1991: + adrp x21, .LANCHOR0 + adrp x24, .LANCHOR3 + add x21, x21, :lo12:.LANCHOR0 + add x24, x24, :lo12:.LANCHOR3 + mov w22, 0 + add x26, x21, 768 + add x24, x24, 264 +.L1992: + cbz w20, .L2018 + ldrb w25, [x19] + ldr w23, [x19,40] +.L1993: + mov w0, w23 + mov w1, 1 + bl queue_lun_state + cbz w0, .L2019 + bl queue_wait_first_req_completed + bl queue_remove_completed_req + b .L1993 +.L2019: + cmp w20, 1 + beq .L1995 + ldrb w0, [x21,765] + cbnz w0, .L1996 +.L1995: + mov x0, x19 + bl queue_prog_cmd + b .L1997 +.L1996: + ldrb w0, [x19] + ubfx x27, x23, 21, 3 + cmp w0, 255 + bne .L1998 + adrp x0, .LC0 + mov x1, x24 + add x0, x0, :lo12:.LC0 + mov w2, 489 + bl printk +.L1998: + ldrb w0, [x19] + add x0, x26, x0, lsl 6 + ldr w4, [x0,40] + ubfx x0, x4, 21, 3 + cmp w27, w0 + bne .L1999 + ldrh w3, [x21,3314] + mov w1, 21 + ldrb w6, [x21,3312] + mov w27, 1 + sub w1, w1, w3 + lsr w0, w23, w3 + sub w6, w6, #1 + lsl w1, w27, w1 + sub w1, w1, #1 + lsl w2, w27, w3 + uxth w7, w6 + sub w2, w2, #1 + and w5, w7, w0 + lsr w0, w4, w3 + uxth w1, w1 + and w3, w7, w0 + and w3, w1, w3 + and w0, w1, w5 + cmp w0, w3 + uxth w2, w2 + beq .L1999 + and w23, w2, w23 + and w2, w2, w4 + cmp w23, w2 + bne .L1999 + cmp w22, w6 + beq .L1999 + ldr w1, [x19,40] + mov w0, 17 + ldr x2, [x19,8] + add w22, w22, w27 + ldr x3, [x19,24] + bl flash_start_page_prog + strb w27, [x19,59] + mov w0, 8 + strb w0, [x19,58] + mov w0, -1 + mov x1, x19 + strb w0, [x19] + add x0, x21, 3861 + bl buf_add_tail + b .L1997 +.L1999: + mov x0, x19 + mov w22, 0 + bl queue_prog_cmd +.L1997: + sbfiz x19, x25, 6, 32 + sub w20, w20, #1 + add x19, x26, x19 + b .L1992 +.L2018: + mov w0, w20 + ldr x27, [sp,80] + ldp x19, x20, [sp,16] + ldp x21, x22, [sp,32] + ldp x23, x24, [sp,48] + ldp x25, x26, [sp,64] + ldp x29, x30, [sp], 96 + ret + .size sblk_prog_page, .-sblk_prog_page + .align 2 + .global ftl_flush + .type ftl_flush, %function +ftl_flush: + stp x29, x30, [sp, -32]! + adrp x2, .LANCHOR0 + add x29, sp, 0 + add x0, x2, :lo12:.LANCHOR0 + stp x19, x20, [sp,16] + mov x19, x2 + adrp x20, .LANCHOR5 + ldrb w1, [x0,2841] + cbz w1, .L2021 + add x2, x20, :lo12:.LANCHOR5 + add x0, x0, 768 + ldrb w2, [x2,513] + add x0, x0, x2, lsl 6 + bl sblk_prog_page +.L2021: + add x2, x19, :lo12:.LANCHOR0 + add x20, x20, :lo12:.LANCHOR5 + mov w0, -1 + strb wzr, [x2,2841] + strb w0, [x20,513] + bl sblk_wait_write_queue_completed + bl ftl_write_completed + mov w0, -1 + bl ftl_vpn_decrement + ldp x19, x20, [sp,16] + ldp x29, x30, [sp], 32 + ret + .size ftl_flush, .-ftl_flush + .align 2 + .global zftl_cache_flush + .type zftl_cache_flush, %function +zftl_cache_flush: + adrp x0, .LANCHOR0+2841 + stp x29, x30, [sp, -16]! + add x29, sp, 0 + ldrb w0, [x0,#:lo12:.LANCHOR0+2841] + cbz w0, .L2025 + bl timer_get_time + adrp x1, .LANCHOR5+516 + ldr w1, [x1,#:lo12:.LANCHOR5+516] + add w1, w1, 100 + cmp w0, w1 + bls .L2025 + bl ftl_flush +.L2025: + ldp x29, x30, [sp], 16 + ret + .size zftl_cache_flush, .-zftl_cache_flush + .align 2 + .global flash_start_tlc_page_prog + .type flash_start_tlc_page_prog, %function +flash_start_tlc_page_prog: + stp x29, x30, [sp, -80]! + add x29, sp, 0 + stp x19, x20, [sp,16] + mov w20, w4 + adrp x4, .LANCHOR0 + stp x25, x26, [sp,64] + uxtb w25, w0 + add x0, x4, :lo12:.LANCHOR0 + stp x21, x22, [sp,32] + stp x23, x24, [sp,48] + uxtb w26, w3 + uxtb w21, w1 + ldrb w0, [x0,98] + uxtb w22, w2 + mov x24, x5 + mov x23, x6 + cmp w0, w26 + mov x19, x4 + bhi .L2030 + adrp x1, .LANCHOR3 + adrp x0, .LC0 + add x1, x1, :lo12:.LANCHOR3 + add x0, x0, :lo12:.LC0 + add x1, x1, 280 + mov w2, 648 + bl printk +.L2030: + add x4, x19, :lo12:.LANCHOR0 + add x26, x4, x26, sxtw + ldrb w26, [x26,200] + mov w0, w26 + ldr x19, [x4,16] + bl nandc_cs + cbz w25, .L2031 + sxtw x1, w26 + add x1, x1, 8 + add x1, x19, x1, lsl 8 + str w25, [x1,8] +.L2031: + ubfiz x7, x26, 8, 8 + mov w0, 128 + add x19, x19, x7 + str w21, [x19,2056] + str w0, [x19,2056] + and w0, w20, 255 + str wzr, [x19,2052] + str wzr, [x19,2052] + str w0, [x19,2052] + lsr w0, w20, 8 + str w0, [x19,2052] + lsr w0, w20, 16 + add w20, w20, w20, lsl 1 + str w0, [x19,2052] + sub w0, w20, #1 + add w0, w0, w21 + bl nandc_set_seed + adrp x1, .LANCHOR2+385 + mov x2, x24 + mov x3, x23 + mov w0, 1 + ldrb w1, [x1,#:lo12:.LANCHOR2+385] + bl nandc_xfer_start + bl nandc_xfer_done + str w22, [x19,2056] + mov w0, w26 + bl nandc_de_cs + ldp x19, x20, [sp,16] + ldp x21, x22, [sp,32] + ldp x23, x24, [sp,48] + ldp x25, x26, [sp,64] + ldp x29, x30, [sp], 80 + ret .size flash_start_tlc_page_prog, .-flash_start_tlc_page_prog .align 2 .type queue_tlc_prog_cmd, %function @@ -11437,7 +12543,7 @@ queue_tlc_prog_cmd: strb w0, [x1] adrp x0, .LANCHOR0 add x0, x0, :lo12:.LANCHOR0 - add x0, x0, 3814 + add x0, x0, 3861 bl buf_add_tail ldr x21, [sp,32] ldp x19, x20, [sp,16] @@ -11455,16 +12561,16 @@ sblk_tlc_prog_one_page: mov x20, x0 ldr x0, [x0] ldr w21, [x0,40] -.L1770: +.L2037: mov w0, w21 mov w1, 1 bl queue_lun_state mov w19, w0 - cbz w0, .L1772 + cbz w0, .L2039 bl queue_wait_first_req_completed bl queue_remove_completed_req - b .L1770 -.L1772: + b .L2037 +.L2039: mov x0, x20 bl queue_tlc_prog_cmd ldr x21, [sp,32] @@ -11487,17 +12593,17 @@ sblk_xlc_prog_pages: ldr x0, [x0] mov w24, w2 ldr w20, [x0,40] -.L1774: +.L2041: mov w0, w20 mov w1, 1 bl queue_lun_state - cbz w0, .L1778 + cbz w0, .L2045 bl queue_wait_first_req_completed bl queue_remove_completed_req - b .L1774 -.L1778: + b .L2041 +.L2045: cmp w24, 2 - bne .L1776 + bne .L2043 ldr x6, [x19] mov w1, 1 ldr x0, [x22] @@ -11579,13 +12685,13 @@ sblk_xlc_prog_pages: strb w0, [x1] adrp x0, .LANCHOR0 add x0, x0, :lo12:.LANCHOR0 - add x0, x0, 3814 + add x0, x0, 3861 bl buf_add_tail - b .L1777 -.L1776: + b .L2044 +.L2043: mov x0, x19 bl queue_tlc_prog_cmd -.L1777: +.L2044: mov w0, 0 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -11594,494 +12700,139 @@ sblk_xlc_prog_pages: ret .size sblk_xlc_prog_pages, .-sblk_xlc_prog_pages .align 2 - .global flash_start_page_prog - .type flash_start_page_prog, %function -flash_start_page_prog: - stp x29, x30, [sp, -96]! - add x29, sp, 0 - stp x27, x28, [sp,80] - stp x19, x20, [sp,16] - ubfx x27, x1, 21, 3 - and w19, w1, 2097151 - ubfx x28, x1, 24, 2 - adrp x1, .LANCHOR0 - stp x25, x26, [sp,64] - add x26, x1, :lo12:.LANCHOR0 - mov x25, x2 - stp x23, x24, [sp,48] - uxtb w23, w0 - mov x24, x3 - ldrb w0, [x26,152] - stp x21, x22, [sp,32] - cmp w0, w27 - mov x21, x1 - bhi .L1780 - adrp x1, .LANCHOR3 - adrp x0, .LC0 - add x1, x1, :lo12:.LANCHOR3 - add x0, x0, :lo12:.LC0 - add x1, x1, 200 - mov w2, 685 - bl printk -.L1781: - b .L1781 -.L1780: - add x0, x26, x27, sxtw - ldr x20, [x26,16] - ldrb w22, [x0,156] - bl nandc_rdy_status - cbnz w0, .L1782 - ldrb w0, [x26,152] - cmp w0, 1 - bne .L1783 - bl nandc_wait_flash_ready - b .L1782 -.L1783: - mov w0, w27 - mov w1, w19 - mov w2, 64 - bl flash_wait_device_ready_raw -.L1782: - mov w0, w22 - bl hynix_reconfig_rr_para - mov w0, w22 - bl nandc_cs - cbnz w28, .L1784 - add x0, x21, :lo12:.LANCHOR0 - ldrb w1, [x0,164] - cbz w1, .L1785 - ldrb w0, [x0,165] - cbz w0, .L1786 -.L1785: - add x1, x21, :lo12:.LANCHOR0 - ldrh w2, [x1,166] - udiv w0, w19, w2 - mul w0, w0, w2 - ldrb w2, [x1,165] - sub w19, w19, w0 - cbz w2, .L1787 - add w19, w0, w19, lsl 1 - b .L1786 -.L1787: - add x1, x1, 168 - ldrh w19, [x1,w19,uxtw 1] - add w19, w19, w0 - b .L1788 -.L1786: - mov w0, w22 - bl zftl_flash_enter_slc_mode - b .L1788 -.L1784: - mov w0, w22 - bl zftl_flash_exit_slc_mode -.L1788: - ubfiz x1, x22, 8, 8 - mov w0, 128 - add x20, x20, x1 - str w0, [x20,2056] - and w0, w19, 255 - str wzr, [x20,2052] - str wzr, [x20,2052] - str w0, [x20,2052] - lsr w0, w19, 8 - str w0, [x20,2052] - lsr w0, w19, 16 - str w0, [x20,2052] - mov w0, w19 - bl nandc_set_seed - adrp x1, .LANCHOR2+377 - mov x2, x25 - mov x3, x24 - mov w0, 1 - ldrb w1, [x1,#:lo12:.LANCHOR2+377] - bl nandc_xfer_start - bl nandc_xfer_done - str w23, [x20,2056] - mov w0, w22 - bl nandc_de_cs - ldp x19, x20, [sp,16] - ldp x21, x22, [sp,32] - ldp x23, x24, [sp,48] - ldp x25, x26, [sp,64] - ldp x27, x28, [sp,80] - ldp x29, x30, [sp], 96 - ret - .size flash_start_page_prog, .-flash_start_page_prog - .align 2 - .type queue_prog_cmd, %function -queue_prog_cmd: - stp x29, x30, [sp, -32]! - add x29, sp, 0 - str x19, [sp,16] - mov x19, x0 - mov w0, 16 - ldr w1, [x19,40] - ldr x2, [x19,8] - ldr x3, [x19,24] - bl flash_start_page_prog - adrp x0, .LANCHOR0 - ldr w4, [x19,40] - add x1, x0, :lo12:.LANCHOR0 - ldrb w2, [x1,3814] - cmp w2, 255 - beq .L1793 - ubfx x4, x4, 21, 3 - add x1, x1, 728 -.L1795: - add x3, x1, x2, lsl 6 - ldr w5, [x3,40] - ubfx x5, x5, 21, 3 - cmp w4, w5 - bne .L1794 - ldrb w5, [x3,58] - add x3, x3, 48 - cmp w5, 6 - bne .L1794 - mov w1, 3 - strb w1, [x3,10] - b .L1793 -.L1794: - lsl x2, x2, 6 - ldrb w2, [x1,x2] - cmp w2, 255 - bne .L1795 -.L1793: - mov w1, 3 - strb w1, [x19,58] - mov w1, 1 - add x0, x0, :lo12:.LANCHOR0 - strb w1, [x19,59] - mov w1, -1 - add x0, x0, 3814 - strb w1, [x19] - mov x1, x19 - bl buf_add_tail - ldr x19, [sp,16] - ldp x29, x30, [sp], 32 - ret - .size queue_prog_cmd, .-queue_prog_cmd - .align 2 - .global sblk_prog_page - .type sblk_prog_page, %function -sblk_prog_page: - stp x29, x30, [sp, -96]! - add x29, sp, 0 - stp x19, x20, [sp,16] - stp x21, x22, [sp,32] - stp x23, x24, [sp,48] - stp x25, x26, [sp,64] - stp x27, x28, [sp,80] - mov x19, x0 - uxtb w20, w1 - ldrh w0, [x0,50] - cbz w0, .L1801 - adrp x0, .LANCHOR2+400 - ldr w0, [x0,#:lo12:.LANCHOR2+400] - tbz x0, 8, .L1801 - adrp x0, .LC104 - ldr w1, [x19,40] - add x0, x0, :lo12:.LC104 - mov w2, w20 - bl printk -.L1801: - adrp x21, .LANCHOR0 - mov w22, 0 - add x21, x21, :lo12:.LANCHOR0 - mov w23, 1 - add x25, x21, 728 - mov w26, 21 -.L1802: - cbz w20, .L1829 - ldrb w24, [x19] - ldr w27, [x19,40] -.L1803: - mov w0, w27 - mov w1, 1 - bl queue_lun_state - mov w28, w0 - cbz w0, .L1830 - bl queue_wait_first_req_completed - bl queue_remove_completed_req - b .L1803 -.L1830: - cmp w20, 1 - beq .L1805 - ldrb w0, [x21,717] - cbnz w0, .L1806 -.L1805: - mov x0, x19 - bl queue_prog_cmd - b .L1807 -.L1806: - ldrb w1, [x19] - ubfx x2, x27, 21, 3 - cmp w1, 255 - bne .L1808 - adrp x1, .LANCHOR3 - adrp x0, .LC0 - add x1, x1, :lo12:.LANCHOR3 - add x0, x0, :lo12:.LC0 - add x1, x1, 224 - mov w2, 486 - bl printk -.L1809: - b .L1809 -.L1808: - sbfiz x1, x1, 6, 32 - add x1, x25, x1 - ldr w5, [x1,40] - ubfx x0, x5, 21, 3 - cmp w2, w0 - bne .L1810 - ldrh w3, [x21,3266] - ldrb w6, [x21,3264] - sub w2, w26, w3 - lsr w1, w27, w3 - sub w6, w6, #1 - lsl w2, w23, w2 - sub w2, w2, #1 - lsl w4, w23, w3 - uxth w7, w6 - sub w4, w4, #1 - and w0, w7, w1 - lsr w1, w5, w3 - uxth w2, w2 - and w3, w7, w1 - and w3, w2, w3 - and w1, w2, w0 - cmp w1, w3 - uxth w4, w4 - beq .L1811 - and w27, w4, w27 - and w4, w4, w5 - cmp w27, w4 - bne .L1811 - cmp w22, w6 - beq .L1810 - ldr w1, [x19,40] - mov w0, 17 - ldr x2, [x19,8] - add w22, w22, 1 - ldr x3, [x19,24] - bl flash_start_page_prog - strb w23, [x19,59] - mov w0, 8 - strb w0, [x19,58] - mov w0, -1 - mov x1, x19 - strb w0, [x19] - add x0, x21, 3814 - bl buf_add_tail - b .L1807 -.L1811: - mov x0, x19 - mov w22, 0 - bl queue_prog_cmd - b .L1807 -.L1810: - mov x0, x19 - mov w22, w28 - bl queue_prog_cmd -.L1807: - sbfiz x19, x24, 6, 32 - sub w20, w20, #1 - add x19, x25, x19 - b .L1802 -.L1829: - mov w0, w20 - ldp x19, x20, [sp,16] - ldp x21, x22, [sp,32] - ldp x23, x24, [sp,48] - ldp x25, x26, [sp,64] - ldp x27, x28, [sp,80] - ldp x29, x30, [sp], 96 - ret - .size sblk_prog_page, .-sblk_prog_page - .align 2 - .global ftl_flush - .type ftl_flush, %function -ftl_flush: - stp x29, x30, [sp, -32]! - adrp x2, .LANCHOR0 - add x29, sp, 0 - add x0, x2, :lo12:.LANCHOR0 - stp x19, x20, [sp,16] - mov x19, x2 - adrp x20, .LANCHOR5 - ldrb w1, [x0,3812] - cbz w1, .L1832 - add x2, x20, :lo12:.LANCHOR5 - add x0, x0, 728 - ldrb w2, [x2,449] - add x0, x0, x2, lsl 6 - bl sblk_prog_page -.L1832: - add x2, x19, :lo12:.LANCHOR0 - add x20, x20, :lo12:.LANCHOR5 - mov w0, -1 - strb wzr, [x2,3812] - strb w0, [x20,449] - bl sblk_wait_write_queue_completed - bl ftl_write_completed - mov w0, -1 - bl ftl_vpn_decrement - ldp x19, x20, [sp,16] - ldp x29, x30, [sp], 32 - ret - .size ftl_flush, .-ftl_flush - .align 2 - .global zftl_cache_flush - .type zftl_cache_flush, %function -zftl_cache_flush: - adrp x0, .LANCHOR0+3812 - stp x29, x30, [sp, -16]! - add x29, sp, 0 - ldrb w0, [x0,#:lo12:.LANCHOR0+3812] - cbz w0, .L1836 - bl timer_get_time - adrp x1, .LANCHOR5+452 - ldr w1, [x1,#:lo12:.LANCHOR5+452] - add w1, w1, 100 - cmp w0, w1 - bls .L1836 - bl ftl_flush -.L1836: - ldp x29, x30, [sp], 16 - ret - .size zftl_cache_flush, .-zftl_cache_flush - .align 2 .global flash_prog_page_en .type flash_prog_page_en, %function flash_prog_page_en: - stp x29, x30, [sp, -80]! - adrp x7, .LANCHOR0 + stp x29, x30, [sp, -96]! + adrp x6, .LANCHOR0 add x29, sp, 0 stp x21, x22, [sp,32] - mov x21, x2 - add x2, x7, :lo12:.LANCHOR0 - stp x23, x24, [sp,48] + uxtb w21, w0 + add x0, x6, :lo12:.LANCHOR0 stp x19, x20, [sp,16] + stp x23, x24, [sp,48] stp x25, x26, [sp,64] - mov w24, w1 - uxtb w25, w0 - ldrb w1, [x2,152] - mov x20, x3 - mov w22, w4 - uxtb w23, w5 - cmp w1, w25 - ubfx x0, x24, 24, 2 - bhi .L1841 + stp x27, x28, [sp,80] + mov w20, w1 + mov x23, x2 + ldrb w0, [x0,98] + mov x22, x3 + mov w24, w4 + uxtb w25, w5 + cmp w0, w21 + ubfx x28, x20, 24, 2 + mov x19, x6 + bhi .L2047 adrp x1, .LANCHOR3 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR3 add x0, x0, :lo12:.LC0 - add x1, x1, 240 - mov w2, 471 + add x1, x1, 312 + mov w2, 473 bl printk -.L1842: - b .L1842 -.L1841: - add x1, x2, x25, sxtw - mov w19, w24 - ldrb w26, [x1,156] - cbnz w0, .L1843 - ldrb w0, [x2,164] - cbz w0, .L1844 - ldrb w0, [x2,165] - cbz w0, .L1843 -.L1844: - add x7, x7, :lo12:.LANCHOR0 - ldrh w19, [x7,166] - ldrb w1, [x7,165] - udiv w6, w24, w19 - mul w19, w6, w19 - sub w0, w24, w19 - cbz w1, .L1845 - add w19, w19, w0, lsl 1 - b .L1843 -.L1845: - add x7, x7, 168 - ldrh w0, [x7,w0,uxtw 1] - add w19, w0, w19 -.L1843: - adrp x0, .LANCHOR2+400 - ldr w0, [x0,#:lo12:.LANCHOR2+400] - tbz x0, 4, .L1846 - adrp x0, .LC105 +.L2047: + add x2, x19, :lo12:.LANCHOR0 + mov w26, w20 + add x0, x2, x21, sxtw + ldrb w27, [x0,200] + cbnz w28, .L2048 + ldrb w0, [x2,97] + cbz w0, .L2049 + ldrb w0, [x2,208] + cbz w0, .L2048 +.L2049: + add x6, x19, :lo12:.LANCHOR0 + ldrh w26, [x6,210] + ldrb w1, [x6,208] + udiv w2, w20, w26 + mul w26, w2, w26 + sub w0, w20, w26 + cbz w1, .L2050 + add w26, w26, w0, lsl 1 + b .L2048 +.L2050: + add x6, x6, 212 + ldrh w0, [x6,w0,uxtw 1] + add w26, w0, w26 +.L2048: + adrp x0, .LANCHOR2 + ldr w0, [x0,#:lo12:.LANCHOR2] + tbz x0, 4, .L2051 + adrp x0, .LC152 + mov w1, w27 + add x0, x0, :lo12:.LC152 + mov w2, w20 + bl printk +.L2051: mov w1, w26 - add x0, x0, :lo12:.LC105 - mov w2, w24 - bl printk -.L1846: - mov w0, w26 - mov w1, w19 - mov x2, x21 - mov x3, x20 - mov w4, w22 + mov w0, w27 + mov x2, x23 + mov x3, x22 + mov w4, w24 bl flash_prog_page mov w26, w0 - cbz w23, .L1847 + cbz w25, .L2052 adrp x19, .LANCHOR4 - mov w0, w25 - add x23, x19, :lo12:.LANCHOR4 - mov w1, w24 - mov w4, w22 - ldr x2, [x23,1192] - ldr x3, [x23,1200] + mov w0, w21 + add x25, x19, :lo12:.LANCHOR4 + mov w1, w20 + mov w4, w24 + ldr x2, [x25,1216] + ldr x3, [x25,1224] bl flash_read_page_en cmp w0, 512 - beq .L1848 + beq .L2053 cmn w0, #1 - beq .L1848 - ldr x0, [x23,1192] - ldr w1, [x21] + beq .L2053 + ldr x0, [x25,1216] + ldr w1, [x23] ldr w0, [x0] cmp w1, w0 - bne .L1848 - ldr x0, [x23,1200] - ldr w1, [x20] + bne .L2053 + ldr x0, [x25,1224] + ldr w1, [x22] ldr w0, [x0] cmp w1, w0 - beq .L1847 -.L1848: + beq .L2052 +.L2053: add x19, x19, :lo12:.LANCHOR4 mov w2, 4 - adrp x0, .LC106 + adrp x0, .LC153 mov w3, w2 - add x0, x0, :lo12:.LC106 - ldr x1, [x19,1200] + add x0, x0, :lo12:.LC153 + ldr x1, [x19,1224] bl rknand_print_hex mov w2, 4 - adrp x0, .LC107 - ldr x1, [x19,1192] - add x0, x0, :lo12:.LC107 + adrp x0, .LC154 + ldr x1, [x19,1216] + add x0, x0, :lo12:.LC154 mov w3, w2 bl rknand_print_hex - b .L1849 -.L1847: + b .L2054 +.L2052: cmn w26, #1 - bne .L1850 -.L1849: - adrp x0, .LC108 - mov w1, w24 - add x0, x0, :lo12:.LC108 + mov w0, w26 + bne .L2055 +.L2054: + adrp x0, .LC155 + mov w1, w20 + add x0, x0, :lo12:.LC155 bl printk adrp x1, .LANCHOR3 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR3 add x0, x0, :lo12:.LC0 - add x1, x1, 240 - mov w2, 497 + add x1, x1, 312 + mov w2, 499 bl printk -.L1851: - b .L1851 -.L1850: - mov w0, w26 + mov w0, -1 +.L2055: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] ldp x25, x26, [sp,64] - ldp x29, x30, [sp], 80 + ldp x27, x28, [sp,80] + ldp x29, x30, [sp], 96 ret .size flash_prog_page_en, .-flash_prog_page_en .align 2 @@ -12091,116 +12842,117 @@ ftl_test_block: stp x29, x30, [sp, -112]! add x29, sp, 0 stp x25, x26, [sp,64] - stp x27, x28, [sp,80] adrp x25, .LANCHOR4 - adrp x27, .LANCHOR5 + adrp x26, .LANCHOR5 add x25, x25, :lo12:.LANCHOR4 - add x27, x27, :lo12:.LANCHOR5 + add x26, x26, :lo12:.LANCHOR5 + stp x27, x28, [sp,80] stp x21, x22, [sp,32] stp x23, x24, [sp,48] stp x19, x20, [sp,16] - mov w26, 0 - adrp x28, .LC109 + mov w27, 0 + adrp x28, .LC156 uxth w23, w0 - str wzr, [x25,1216] - add x0, x25, 1216 - str wzr, [x27,192]! - mov w21, w26 - add x28, x28, :lo12:.LC109 + str wzr, [x26,256] + add x0, x25, 1280 + str wzr, [x25,1280] + mov w21, w27 + add x28, x28, :lo12:.LC156 str x0, [x29,104] -.L1865: + add x26, x26, 256 +.L2069: adrp x20, .LANCHOR0 add x0, x20, :lo12:.LANCHOR0 - ldrb w1, [x0,3272] + ldrb w1, [x0,3320] cmp w1, w21 - bls .L1874 + bls .L2078 mov w24, 0 -.L1875: +.L2079: add x0, x20, :lo12:.LANCHOR0 - ldrb w0, [x0,3264] + ldrb w0, [x0,3312] cmp w0, w24 - bls .L1890 - adrp x0, .LANCHOR2+400 - ldr w0, [x0,#:lo12:.LANCHOR2+400] - tbz x0, 12, .L1866 + bls .L2094 + adrp x0, .LANCHOR2 + ldr w0, [x0,#:lo12:.LANCHOR2] + tbz x0, 12, .L2070 mov x0, x28 mov w1, w23 bl printk -.L1866: +.L2070: add x0, x20, :lo12:.LANCHOR0 - ldrb w19, [x0,3264] + ldrb w19, [x0,3312] madd w19, w23, w19, w24 uxth w19, w19 - cbnz w21, .L1867 - ldr x0, [x0,144] + cbnz w21, .L2071 + ldr x0, [x0,192] ldrb w0, [x0,47] cmp w0, w19 - bcs .L1868 -.L1867: + bcs .L2072 +.L2071: uxtb w22, w21 mov w1, w19 mov w0, w22 bl flash_check_bad_block - cbnz w0, .L1868 + cbnz w0, .L2072 add x4, x20, :lo12:.LANCHOR0 mov w0, w22 - mov w1, w26 + mov w1, w27 str x4, [x29,96] - ldrh w3, [x4,3270] + ldrh w3, [x4,3318] mul w25, w19, w3 mov w2, w25 bl flash_erase_block_en ldr x4, [x29,96] - cbz w0, .L1869 - ldrb w0, [x4,3177] + cbz w0, .L2073 + ldrb w0, [x4,3225] cmp w0, 2 - bne .L1889 - ldrb w0, [x4,164] - cbz w0, .L1889 + bne .L2093 + ldrb w0, [x4,97] + cbz w0, .L2093 mov w0, w22 mov w1, 1 mov w2, w25 bl flash_erase_block_en - cbz w0, .L1871 - b .L1889 -.L1869: - cbz w26, .L1872 -.L1871: + cbz w0, .L2075 + b .L2093 +.L2073: + cbz w27, .L2076 +.L2075: add x0, x20, :lo12:.LANCHOR0 - mov w26, 1 - ldrb w0, [x0,3177] + mov w27, 1 + ldrb w0, [x0,3225] add w25, w25, w0, lsl 24 -.L1872: +.L2076: add x4, x20, :lo12:.LANCHOR0 ldr x2, [x29,104] mov w0, w22 mov w1, w25 - mov x3, x27 + mov x3, x26 mov w5, 1 - ldrb w4, [x4,2776] + ldrb w4, [x4,2816] bl flash_prog_page_en - cbz w0, .L1868 -.L1889: + cbz w0, .L2072 +.L2093: mov w0, w22 mov w1, w19 bl flash_mask_bad_block -.L1868: +.L2072: add w24, w24, 1 uxth w24, w24 - b .L1875 -.L1890: + b .L2079 +.L2094: add w21, w21, 1 uxth w21, w21 - b .L1865 -.L1874: - cbz w26, .L1876 + b .L2069 +.L2078: + cbz w27, .L2080 ldr x0, [x0,64] add x23, x0, x23, uxth 2 ldrb w0, [x23,2] mov w1, 2 bfi w0, w1, 3, 2 strb w0, [x23,2] -.L1876: +.L2080: mov w0, 0 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -12216,33 +12968,37 @@ ftl_test_block: ftl_prog_page: stp x29, x30, [sp, -64]! add x29, sp, 0 - str x19, [sp,16] + stp x19, x20, [sp,16] uxtb w19, w0 - str x1, [x29,32] + mov w20, w1 str x2, [x29,40] str x3, [x29,48] str x4, [x29,56] bl sblk_wait_write_queue_completed - ldr x1, [x29,32] - mov w0, w19 ldr x2, [x29,40] - mov w5, 1 + mov w0, w19 ldr x3, [x29,48] + mov w1, w20 ldr x4, [x29,56] + mov w5, 1 bl flash_prog_page_en cmn w0, #1 - bne .L1892 - adrp x1, .LANCHOR3 + mov w19, w0 + bne .L2096 + adrp x2, .LANCHOR3 adrp x0, .LC0 - add x1, x1, :lo12:.LANCHOR3 + add x1, x2, :lo12:.LANCHOR3 add x0, x0, :lo12:.LC0 - add x1, x1, 264 - mov w2, 2020 + add x1, x1, 336 + mov w2, 2034 bl printk -.L1893: - b .L1893 -.L1892: - ldr x19, [sp,16] + adrp x0, .LC155 + mov w1, w20 + add x0, x0, :lo12:.LC155 + bl printk +.L2096: + mov w0, w19 + ldp x19, x20, [sp,16] ldp x29, x30, [sp], 64 ret .size ftl_prog_page, .-ftl_prog_page @@ -12250,200 +13006,203 @@ ftl_prog_page: .global ftl_info_flush .type ftl_info_flush, %function ftl_info_flush: - stp x29, x30, [sp, -112]! + stp x29, x30, [sp, -96]! mov w1, 0 add x29, sp, 0 stp x21, x22, [sp,32] - adrp x22, .LANCHOR0 - adrp x21, .LANCHOR5 + adrp x21, .LANCHOR0 + adrp x22, .LANCHOR5 stp x25, x26, [sp,64] mov w26, w0 - add x0, x22, :lo12:.LANCHOR0 + add x0, x21, :lo12:.LANCHOR0 stp x23, x24, [sp,48] stp x19, x20, [sp,16] stp x27, x28, [sp,80] - add x19, x21, :lo12:.LANCHOR5 - adrp x23, .LC110 - ldrb w2, [x0,2776] - mov w24, 0 - add x0, x19, 512 - add x23, x23, :lo12:.LC110 + adrp x23, .LANCHOR3 + add x19, x22, :lo12:.LANCHOR5 + ldrb w2, [x0,2816] + adrp x24, .LC157 + add x23, x23, :lo12:.LANCHOR3 + add x0, x19, 576 lsl w2, w2, 1 - mov w27, 1 - add x25, x19, 832 + mov w25, 0 + add x24, x24, :lo12:.LC157 + add x23, x23, 352 bl ftl_memset -.L1895: - add x0, x22, :lo12:.LANCHOR0 - ldrb w28, [x19,768] - ldrh w20, [x19,770] - ldr x2, [x0,2800] - ldrh w4, [x0,3270] - ldr w3, [x2,4] - add w3, w3, 1 - str w3, [x2,4] - str w26, [x19,512] - ldr x3, [x0,2800] - ldr w0, [x3,4] - str w0, [x19,516] - adrp x0, .LANCHOR2+400 - ldr w0, [x0,#:lo12:.LANCHOR2+400] - tbz x0, 12, .L1896 - ldr w3, [x3,4] - mov x0, x23 - mov w1, w28 - mov w2, w20 - str x4, [x29,104] - bl printk - ldr x4, [x29,104] -.L1896: - add x2, x22, :lo12:.LANCHOR0 - ldrh w0, [x19,770] - ldrh w1, [x2,3228] - cmp w1, w0 - bhi .L1897 - ldrb w0, [x19,769] - mov w4, 0 - ldr x5, [x2,144] - ldrb w1, [x19,768] -.L1904: - add w0, w0, 1 - uxtb w0, w0 - cmp w0, 7 - bls .L1898 - mov x2, 0 -.L1903: - add x3, x5, x2 - uxth w6, w2 - ldrb w7, [x3,40] - add w3, w7, 127 - uxtb w3, w3 - cmp w3, 125 - bhi .L1899 - add x21, x21, :lo12:.LANCHOR5 - strb w0, [x21,769] - cbz w4, .L1900 - strb w1, [x21,768] -.L1900: - adrp x1, .LANCHOR3 - adrp x0, .LC0 - add x1, x1, :lo12:.LANCHOR3 - add x0, x0, :lo12:.LC0 - add x1, x1, 280 - mov w2, 668 - bl printk -.L1901: - b .L1901 -.L1899: - cmp w7, 255 - bne .L1902 - add x2, x2, 1 - cmp x2, 8 - bne .L1903 - mov w6, w2 -.L1902: - uxtb w0, w6 - mov w24, 1 -.L1898: - add w1, w0, 8 - add x1, x5, x1, sxtw - ldrb w1, [x1,32] - mov w4, 1 - cmp w1, 255 - beq .L1904 - add x28, x22, :lo12:.LANCHOR0 - strb w0, [x19,769] - strb w1, [x19,768] - mov w0, 0 - ldrh w20, [x28,3270] - mul w20, w1, w20 - mov w1, w20 - bl flash_erase_block - ldrb w4, [x28,2776] - mov w1, w20 - mov w0, 0 - mov x2, x25 - add x3, x19, 512 - add w20, w20, 1 - bl ftl_prog_page - strh w27, [x19,770] - b .L1905 -.L1897: - madd w20, w28, w4, w20 - cbnz w0, .L1905 - mov w1, w20 - bl flash_erase_block -.L1905: - add x4, x22, :lo12:.LANCHOR0 - mov w1, w20 - mov w0, 0 - mov x2, x25 - add x3, x19, 512 - ldrb w4, [x4,2776] - bl ftl_prog_page - cmn w0, #1 - ldrh w1, [x19,770] +.L2098: + add x0, x21, :lo12:.LANCHOR0 + ldrb w27, [x19,832] + ldrh w20, [x19,834] + ldr x2, [x0,2848] + ldrh w28, [x0,3318] + ldr w1, [x2,4] add w1, w1, 1 - strh w1, [x19,770] - beq .L1895 - cbnz w24, .L1906 -.L1914: - add x21, x21, :lo12:.LANCHOR5 - ldrb w0, [x21,768] - cmp w0, 255 - bne .L1930 - adrp x1, .LANCHOR3 - adrp x0, .LC0 - add x1, x1, :lo12:.LANCHOR3 - mov w2, 703 - add x1, x1, 280 - add x0, x0, :lo12:.LC0 + str w1, [x2,4] + str w26, [x19,576] + ldr x3, [x0,2848] + ldr w0, [x3,4] + str w0, [x19,580] + adrp x0, .LANCHOR2 + ldr w0, [x0,#:lo12:.LANCHOR2] + tbz x0, 12, .L2099 + ldr w3, [x3,4] + mov x0, x24 + mov w1, w27 + mov w2, w20 bl printk - b .L1915 -.L1906: - ldrb w19, [x19,769] - add w19, w19, 1 -.L1909: - cmp w19, 7 - bhi .L1914 - add x2, x22, :lo12:.LANCHOR0 - add w0, w19, 8 - ldr x1, [x2,144] - add x0, x1, x0, sxtw - ldrb w1, [x0,32] - add w0, w1, 127 +.L2099: + add x1, x21, :lo12:.LANCHOR0 + ldrh w0, [x19,834] + ldrh w1, [x1,3276] + cmp w1, w0 + bhi .L2100 + adrp x20, .LC0 + add x20, x20, :lo12:.LC0 +.L2105: + ldrb w1, [x19,833] + add w1, w1, 1 + uxtb w1, w1 + strb w1, [x19,833] + cmp w1, 7 + bls .L2101 + mov x1, 0 +.L2104: + add x0, x21, :lo12:.LANCHOR0 + uxth w25, w1 + ldr x2, [x0,192] + add w0, w1, 8 + add x0, x2, x0, sxtw + ldrb w2, [x0,32] + add w0, w2, 127 uxtb w0, w0 cmp w0, 125 - bhi .L1910 + bhi .L2102 + mov x0, x20 + mov x1, x23 + mov w2, 672 + bl printk + b .L2103 +.L2102: + cmp w2, 255 + bne .L2103 + add x1, x1, 1 + cmp x1, 8 + bne .L2104 + mov w25, w1 +.L2103: + strb w25, [x19,833] + mov w25, 1 +.L2101: + add x27, x21, :lo12:.LANCHOR0 + ldrb w1, [x19,833] + ldr x0, [x27,192] + add x1, x0, x1 + ldrb w2, [x1,40] + strb w2, [x19,832] + cmp w2, 255 + beq .L2105 + ldrh w20, [x27,3318] + mov w0, 0 + mul w20, w2, w20 + mov w1, w20 + bl flash_erase_block + ldrb w4, [x27,2816] + mov w1, w20 + mov w0, 0 + add x2, x19, 896 + add x3, x19, 576 + add w20, w20, 1 + bl ftl_prog_page + mov w0, 1 + strh w0, [x19,834] + b .L2106 +.L2100: + madd w20, w27, w28, w20 + cbnz w0, .L2106 + mov w1, w20 + bl flash_erase_block +.L2106: + add x4, x21, :lo12:.LANCHOR0 + mov w1, w20 + mov w0, 0 + add x2, x19, 896 + add x3, x19, 576 + ldrb w4, [x4,2816] + bl ftl_prog_page + cmn w0, #1 + ldrh w1, [x19,834] + adrp x0, .LANCHOR6 + add w1, w1, 1 + strh w1, [x19,834] + beq .L2107 + add x1, x0, :lo12:.LANCHOR6 + ldrb w1, [x1,-128] + cbz w1, .L2108 +.L2107: + add x0, x0, :lo12:.LANCHOR6 + strb wzr, [x0,-128] + b .L2098 +.L2108: + cbnz w25, .L2109 +.L2117: + add x22, x22, :lo12:.LANCHOR5 + ldrb w0, [x22,832] + cmp w0, 255 + bne .L2111 adrp x1, .LANCHOR3 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR3 + mov w2, 708 + add x1, x1, 352 add x0, x0, :lo12:.LC0 - add x1, x1, 280 - mov w2, 696 bl printk -.L1911: - b .L1911 -.L1910: - cmp w1, 255 - beq .L1912 - ldrh w2, [x2,3270] + b .L2111 +.L2109: + ldrb w19, [x19,833] + adrp x20, .LANCHOR3 + adrp x23, .LC0 + add x20, x20, :lo12:.LANCHOR3 + add w19, w19, 1 + add x23, x23, :lo12:.LC0 + add x20, x20, 352 +.L2112: + cmp w19, 7 + bhi .L2117 + add x0, x21, :lo12:.LANCHOR0 + ldr x1, [x0,192] + add w0, w19, 8 + add x0, x1, x0, sxtw + ldrb w24, [x0,32] + add w0, w24, 127 + uxtb w0, w0 + cmp w0, 125 + bhi .L2113 + mov x0, x23 + mov x1, x20 + mov w2, 701 + bl printk + b .L2114 +.L2113: + cmp w24, 255 + beq .L2115 +.L2114: + add x0, x21, :lo12:.LANCHOR0 + ldrh w1, [x0,3318] mov w0, 0 - mul w1, w1, w2 + mul w1, w24, w1 bl flash_erase_block -.L1912: +.L2115: add w19, w19, 1 uxth w19, w19 - b .L1909 -.L1915: - b .L1915 -.L1930: + b .L2112 +.L2111: mov w0, 0 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] ldp x25, x26, [sp,64] ldp x27, x28, [sp,80] - ldp x29, x30, [sp], 112 + ldp x29, x30, [sp], 96 ret .size ftl_info_flush, .-ftl_info_flush .align 2 @@ -12451,54 +13210,57 @@ ftl_info_flush: .type ftl_info_blk_init, %function ftl_info_blk_init: stp x29, x30, [sp, -112]! + mov w0, 1 mov w2, 16384 add x29, sp, 0 stp x19, x20, [sp,16] adrp x20, .LANCHOR0 - add x19, x20, :lo12:.LANCHOR0 - stp x21, x22, [sp,32] + adrp x19, .LANCHOR6 stp x23, x24, [sp,48] + add x23, x20, :lo12:.LANCHOR0 + add x19, x19, :lo12:.LANCHOR6 + stp x21, x22, [sp,32] stp x25, x26, [sp,64] stp x27, x28, [sp,80] adrp x21, .LANCHOR5 - adrp x23, .LANCHOR6 - ldrh w1, [x19,56] + strb w0, [x19,-128] + ldrh w1, [x23,56] add x22, x21, :lo12:.LANCHOR5 - add x24, x22, 832 - add x23, x23, :lo12:.LANCHOR6 + add x24, x22, 896 + strb w0, [x19,-126] mov x0, x24 - str x24, [x19,64] + strb wzr, [x19,-127] add x1, x24, x1, lsl 2 - str x1, [x19,2800] + str x1, [x23,2848] mov w1, 0 - strb wzr, [x23,-192] - adrp x26, .LC111 + str x24, [x23,64] + adrp x26, .LC158 adrp x27, .LANCHOR2 bl ftl_memset - add x26, x26, :lo12:.LC111 - sub x0, x23, #128 + add x26, x26, :lo12:.LC158 + sub x0, x19, #64 mov w1, 0 mov w2, 16384 - add x23, x22, 512 - bl ftl_memset - strb wzr, [x22,769] - ldr x0, [x19,144] mov w19, 7 - strh wzr, [x22,770] + bl ftl_memset + strb wzr, [x22,833] + ldr x0, [x23,192] + add x23, x22, 576 + strh wzr, [x22,834] ldrb w0, [x0,40] - strb w0, [x22,768] -.L1936: + strb w0, [x22,832] +.L2135: add x5, x20, :lo12:.LANCHOR0 add w0, w19, 8 sxth w25, w19 - ldr x1, [x5,144] + ldr x1, [x5,192] add x0, x1, x0, sxtw ldrb w1, [x0,32] cmp w1, 255 - beq .L1932 - ldrh w22, [x5,3270] + beq .L2131 + ldrh w22, [x5,3318] mov w0, 0 - ldrb w4, [x5,2776] + ldrb w4, [x5,2816] mov x2, x24 mov x3, x23 str x5, [x29,104] @@ -12508,160 +13270,159 @@ ftl_info_blk_init: cmn w0, #1 mov w28, w0 ldr x5, [x29,104] - bne .L1933 - ldrb w4, [x5,2776] + bne .L2132 + ldrb w4, [x5,2816] mov w0, 0 add w1, w22, 1 mov x2, x24 mov x3, x23 bl ftl_read_page mov w28, w0 -.L1933: - add x0, x27, :lo12:.LANCHOR2 - ldr w0, [x0,400] - tbz x0, 12, .L1934 +.L2132: + ldr w0, [x27,#:lo12:.LANCHOR2] + tbz x0, 12, .L2133 add x0, x20, :lo12:.LANCHOR0 mov w1, w19 mov w2, w28 - mov w3, 576 - ldr x4, [x0,2800] + mov w3, 580 + ldr x4, [x0,2848] mov x0, x26 ldr w4, [x4] bl printk -.L1934: +.L2133: cmn w28, #1 - beq .L1932 + beq .L2131 add x0, x20, :lo12:.LANCHOR0 - ldr x0, [x0,2800] + ldr x0, [x0,2848] ldr w1, [x0] mov w0, 21574 movk w0, 0x494c, lsl 16 cmp w1, w0 - beq .L1949 -.L1932: + beq .L2148 +.L2131: sub w19, w19, #1 cmn w19, #1 - bne .L1936 + bne .L2135 mov w25, 0 - b .L1935 -.L1949: + b .L2134 +.L2148: mov w19, w25 -.L1935: - adrp x0, .LANCHOR2+400 - ldr w0, [x0,#:lo12:.LANCHOR2+400] - tbz x0, 12, .L1937 +.L2134: + adrp x0, .LANCHOR2 + ldr w0, [x0,#:lo12:.LANCHOR2] + tbz x0, 12, .L2136 add x0, x20, :lo12:.LANCHOR0 mov w1, w19 mov w2, 4800 - ldr x3, [x0,2800] - adrp x0, .LC112 - add x0, x0, :lo12:.LC112 + ldr x3, [x0,2848] + adrp x0, .LC159 + add x0, x0, :lo12:.LC159 ldr w3, [x3] bl printk -.L1937: +.L2136: cmn w19, #1 - bne .L1938 + bne .L2137 add x0, x21, :lo12:.LANCHOR5 mov w1, 0 - add x0, x0, 832 + add x0, x0, 896 mov w2, 16384 add x20, x20, :lo12:.LANCHOR0 bl ftl_memset mov w0, 21574 - ldr x1, [x20,2800] + ldr x1, [x20,2848] movk w0, 0x494c, lsl 16 str w0, [x1] mov w0, w19 - b .L1939 -.L1938: + b .L2138 +.L2137: add x26, x20, :lo12:.LANCHOR0 add x23, x21, :lo12:.LANCHOR5 add w0, w25, 8 - add x24, x23, 832 + add x24, x23, 896 mov x2, x24 mov w4, 4 - ldr x1, [x26,144] + ldr x1, [x26,192] add x0, x1, x0, sxtw - strb w25, [x23,769] - add x25, x23, 512 + strb w25, [x23,833] + add x25, x23, 576 ldrb w1, [x0,32] mov x3, x25 mov w0, 0 - strb w1, [x23,768] + strb w1, [x23,832] bl flash_get_last_written_page sxth w22, w0 add w0, w0, 1 uxth w19, w0 - ldrb w0, [x23,768] - ldrh w23, [x26,3270] + ldrb w0, [x23,832] + ldrh w23, [x26,3318] mul w23, w0, w23 -.L1940: - tbnz w22, #31, .L1945 +.L2139: + tbnz w22, #31, .L2144 add x26, x20, :lo12:.LANCHOR0 mov w0, 0 add w1, w22, w23 mov x2, x24 mov x3, x25 - ldrb w4, [x26,2776] + ldrb w4, [x26,2816] bl ftl_read_page cmn w0, #1 - beq .L1941 - ldr x0, [x26,2800] + beq .L2140 + ldr x0, [x26,2848] ldr w1, [x0] mov w0, 21574 movk w0, 0x494c, lsl 16 cmp w1, w0 - bne .L1941 -.L1945: + bne .L2140 +.L2144: add x20, x20, :lo12:.LANCHOR0 add x21, x21, :lo12:.LANCHOR5 - ldr x0, [x20,2800] - strh w19, [x21,770] + ldr x0, [x20,2848] + strh w19, [x21,834] ldr w2, [x0,16] cmp w2, 2048 - bls .L1943 + bls .L2142 lsr w1, w2, 11 ldr w3, [x0,20] add w3, w3, w1 sub w1, w2, w1, lsl 11 str w3, [x0,20] str w1, [x0,16] - b .L1943 -.L1941: + b .L2142 +.L2140: sub w22, w22, #1 sxth w22, w22 - b .L1940 -.L1943: + b .L2139 +.L2142: ldr w2, [x0,24] cmp w2, 2048 - bls .L1946 + bls .L2145 lsr w1, w2, 11 ldr w3, [x0,28] add w3, w3, w1 sub w1, w2, w1, lsl 11 str w3, [x0,28] str w1, [x0,24] -.L1946: +.L2145: ldr w2, [x0,32] cmp w2, 1024 - bls .L1947 + bls .L2146 lsr w1, w2, 10 ldr w3, [x0,36] add w3, w3, w1 sub w1, w2, w1, lsl 10 str w3, [x0,36] str w1, [x0,32] -.L1947: +.L2146: ldr w2, [x0,40] cmp w2, 1024 - bls .L1948 + bls .L2147 lsr w1, w2, 10 ldr w3, [x0,44] add w3, w3, w1 sub w1, w2, w1, lsl 10 str w3, [x0,44] str w1, [x0,40] -.L1948: +.L2147: ldr w1, [x0,64] add w1, w1, 1 str w1, [x0,64] @@ -12670,7 +13431,7 @@ ftl_info_blk_init: mov w0, 0 bl ftl_info_flush mov w0, 0 -.L1939: +.L2138: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -12683,11 +13444,12 @@ ftl_info_blk_init: .global ftl_ext_info_flush .type ftl_ext_info_flush, %function ftl_ext_info_flush: - stp x29, x30, [sp, -64]! + stp x29, x30, [sp, -80]! add x29, sp, 0 stp x21, x22, [sp,32] stp x19, x20, [sp,16] stp x23, x24, [sp,48] + stp x25, x26, [sp,64] bl timer_get_time adrp x22, .LANCHOR0 mov w1, 100 @@ -12696,94 +13458,105 @@ ftl_ext_info_flush: ldr x1, [x1,80] ldr w3, [x1,520] cmp w0, w3 - bls .L1967 + bls .L2166 ldr w2, [x1,12] sub w2, w2, w3 add w2, w2, w0 str w2, [x1,12] - b .L1974 -.L1967: - bcs .L1968 -.L1974: + b .L2179 +.L2166: + bcs .L2167 +.L2179: str w0, [x1,520] -.L1968: - adrp x20, .LANCHOR5 - adrp x23, .LANCHOR6 - add x20, x20, :lo12:.LANCHOR5 - add x23, x23, :lo12:.LANCHOR6 +.L2167: + adrp x23, .LANCHOR3 + adrp x24, .LANCHOR6 + add x23, x23, :lo12:.LANCHOR3 + add x24, x24, :lo12:.LANCHOR6 mov w0, 0 - add x20, x20, 512 - sub x23, x23, #128 + add x23, x23, 368 + sub x25, x24, #64 bl ftl_total_vpn_update -.L1973: +.L2168: + adrp x19, .LANCHOR5 + add x19, x19, :lo12:.LANCHOR5 + add x19, x19, 576 +.L2171: add x2, x22, :lo12:.LANCHOR0 - ldr x0, [x2,2800] + ldr x0, [x2,2848] ldr w1, [x0,56] add w1, w1, 1 str w1, [x0,56] ldrh w1, [x0,140] - ldrh w0, [x2,3228] + ldrh w0, [x2,3276] cmp w1, w0 - bcc .L1969 + bcc .L2169 bl ftl_ext_alloc_new_blk -.L1969: - add x21, x22, :lo12:.LANCHOR0 +.L2169: + add x0, x22, :lo12:.LANCHOR0 + ldr x0, [x0,2848] + ldrh w1, [x0,130] mov w0, 65535 - ldr x3, [x21,2800] - ldrh w1, [x3,130] cmp w1, w0 - bne .L1970 - adrp x1, .LANCHOR3 + bne .L2170 adrp x0, .LC0 - add x1, x1, :lo12:.LANCHOR3 + mov x1, x23 add x0, x0, :lo12:.LC0 - add x1, x1, 296 - mov w2, 1608 + mov w2, 1621 bl printk -.L1971: - b .L1971 -.L1970: - ldrh w19, [x21,3266] +.L2170: + add x21, x22, :lo12:.LANCHOR0 mov w0, 21 - mov w2, 1 - sub w19, w0, w19 - ldrh w0, [x3,140] - asr w24, w1, w19 - lsl w19, w2, w19 - sub w19, w19, #1 - ldrb w2, [x21,2776] - and w1, w19, w1 - ldrh w19, [x21,3270] - lsl w2, w2, 1 - madd w19, w1, w19, w0 + mov w1, 1 + ldr x2, [x21,2848] + ldrh w20, [x21,3314] + ldrh w3, [x2,130] + sub w20, w0, w20 + ldrh w0, [x2,140] + asr w26, w3, w20 + lsl w20, w1, w20 + sub w20, w20, #1 + ldrb w2, [x21,2816] + and w3, w20, w3 + ldrh w20, [x21,3318] mov w1, 0 - mov x0, x20 + lsl w2, w2, 1 + madd w20, w3, w20, w0 + mov x0, x19 bl ftl_memset - str wzr, [x20] - ldr x0, [x21,2800] - uxth w19, w19 - ldrb w4, [x21,2776] - mov w1, w19 - mov x2, x23 - mov x3, x20 + str wzr, [x19] + ldr x0, [x21,2848] + uxth w20, w20 + ldrb w4, [x21,2816] + mov w1, w20 + mov x2, x25 + mov x3, x19 ldr w0, [x0,56] - str w0, [x20,4] - mov w0, w24 + str w0, [x19,4] + mov w0, w26 bl ftl_prog_page - cmn w0, #1 - ldr x2, [x21,2800] + ldr x2, [x21,2848] ldrh w1, [x2,140] add w1, w1, 1 uxth w1, w1 strh w1, [x2,140] - beq .L1973 cmp w1, 1 - cset w0, eq - cbnz w0, .L1973 + beq .L2171 + cmn w0, #1 + beq .L2172 + ldrb w0, [x24,-126] + cbz w0, .L2173 +.L2172: + adrp x0, .LANCHOR6 + add x0, x0, :lo12:.LANCHOR6 + strb wzr, [x0,-126] + b .L2168 +.L2173: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] - ldp x29, x30, [sp], 64 + ldp x25, x26, [sp,64] + ldp x29, x30, [sp], 80 ret .size ftl_ext_info_flush, .-ftl_ext_info_flush .align 2 @@ -12801,17 +13574,17 @@ ftl_ext_info_init: stp x23, x24, [sp,48] stp x21, x22, [sp,32] stp x25, x26, [sp,64] - strh wzr, [x1,3808] + strh wzr, [x1,3856] adrp x21, .LANCHOR5 - ldr x0, [x1,2800] + ldr x0, [x1,2848] add x2, x20, :lo12:.LANCHOR6 - ldrh w22, [x1,3266] + ldrh w22, [x1,3314] mov w1, 21 add x3, x21, :lo12:.LANCHOR5 - sub x2, x2, #128 + sub x2, x2, #64 ldrh w0, [x0,130] sub w22, w1, w22 - add x3, x3, 512 + add x3, x3, 576 asr w22, w0, w22 and w25, w0, 16383 mov w1, w25 @@ -12819,60 +13592,60 @@ ftl_ext_info_init: mov w0, w22 bl flash_get_last_written_page sxth w24, w0 - adrp x0, .LANCHOR2+400 + adrp x0, .LANCHOR2 mov w23, w24 - ldr w0, [x0,#:lo12:.LANCHOR2+400] - tbz x0, 12, .L1976 + ldr w0, [x0,#:lo12:.LANCHOR2] + tbz x0, 12, .L2181 adrp x1, .LANCHOR3 - adrp x0, .LC69 + adrp x0, .LC108 add x1, x1, :lo12:.LANCHOR3 - add x0, x0, :lo12:.LC69 - add x1, x1, 320 - mov w2, 1651 + add x0, x0, :lo12:.LC108 + add x1, x1, 392 + mov w2, 1665 mov w3, w24 bl printk -.L1976: +.L2181: add x20, x20, :lo12:.LANCHOR6 add x21, x21, :lo12:.LANCHOR5 mov w26, w24 - sub x20, x20, #128 - add x21, x21, 512 -.L1977: - tbnz w26, #31, .L1982 + sub x20, x20, #64 + add x21, x21, 576 +.L2182: + tbnz w26, #31, .L2187 add x27, x19, :lo12:.LANCHOR0 mov w0, w22 mov x2, x20 mov x3, x21 - ldrh w1, [x27,3270] - ldrb w4, [x27,2776] + ldrh w1, [x27,3318] + ldrb w4, [x27,2816] madd w1, w25, w1, w26 bl flash_read_page_en cmp w0, 512 - beq .L1978 + beq .L2183 cmn w0, #1 - beq .L1978 + beq .L2183 ldr x0, [x27,80] ldr w1, [x0] mov w0, 20038 movk w0, 0x4549, lsl 16 cmp w1, w0 - bne .L1978 -.L1982: + bne .L2183 +.L2187: bl zftl_sblk_list_init add x0, x19, :lo12:.LANCHOR0 - ldr x0, [x0,2800] + ldr x0, [x0,2848] ldrh w1, [x0,140] cmp w1, w24 - bgt .L1980 + bgt .L2185 add w23, w23, 1 strh w23, [x0,140] bl ftl_ext_info_flush - b .L1980 -.L1978: + b .L2185 +.L2183: sub w26, w26, #1 sxth w26, w26 - b .L1977 -.L1980: + b .L2182 +.L2185: add x19, x19, :lo12:.LANCHOR0 ldr x20, [x19,80] bl timer_get_time @@ -12885,7 +13658,7 @@ ftl_ext_info_init: ldr x0, [x19,80] str wzr, [x0,608] mov w0, -1 - strh w0, [x19,3810] + strh w0, [x19,3858] mov w0, 0 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -12902,59 +13675,60 @@ ftl_low_format: stp x29, x30, [sp, -128]! add x29, sp, 0 stp x19, x20, [sp,16] + adrp x20, .LANCHOR3 stp x21, x22, [sp,32] + add x20, x20, :lo12:.LANCHOR3 + adrp x22, .LC0 stp x23, x24, [sp,48] stp x25, x26, [sp,64] stp x27, x28, [sp,80] - mov w19, 8 - adrp x20, .LANCHOR0 -.L1996: - add x2, x20, :lo12:.LANCHOR0 - adrp x21, .LANCHOR0 - ldr x0, [x2,144] - add x0, x0, x19, sxtw - ldrb w1, [x0,32] - add w0, w1, 127 + mov w21, 8 + adrp x24, .LANCHOR0 + add x22, x22, :lo12:.LC0 + add x20, x20, 416 +.L2200: + add x0, x24, :lo12:.LANCHOR0 + adrp x19, .LANCHOR0 + ldr x0, [x0,192] + add x0, x0, x21, sxtw + ldrb w23, [x0,32] + add w0, w23, 127 uxtb w0, w0 cmp w0, 125 - bhi .L1993 - adrp x1, .LANCHOR3 - adrp x0, .LC0 - add x1, x1, :lo12:.LANCHOR3 - add x0, x0, :lo12:.LC0 - add x1, x1, 344 - mov w2, 1822 + bhi .L2198 + mov x0, x22 + mov x1, x20 + mov w2, 1836 bl printk -.L1994: - b .L1994 -.L1993: - cmp w1, 255 - beq .L1995 - ldrh w2, [x2,3270] +.L2198: + cmp w23, 255 + beq .L2199 + add x0, x19, :lo12:.LANCHOR0 + ldrh w1, [x0,3318] mov w0, 0 - mul w1, w1, w2 + mul w1, w23, w1 bl flash_erase_block -.L1995: - add w19, w19, 1 - cmp w19, 16 - bne .L1996 +.L2199: + add w21, w21, 1 + cmp w21, 16 + bne .L2200 bl sblk_init bl ftl_info_blk_init adrp x0, .LANCHOR5 mov w1, 0 add x0, x0, :lo12:.LANCHOR5 mov w2, 16384 - add x0, x0, 832 + add x0, x0, 896 bl ftl_memset - add x1, x21, :lo12:.LANCHOR0 + add x1, x19, :lo12:.LANCHOR0 mov w6, 1 - ldr x0, [x1,2800] + ldr x0, [x1,2848] ldrh w5, [x1,56] ldrh w0, [x0,134] -.L1997: +.L2201: cmp w0, w5 - bcs .L2032 - add x4, x21, :lo12:.LANCHOR0 + bcs .L2235 + add x4, x19, :lo12:.LANCHOR0 ubfiz x1, x0, 2, 16 add w0, w0, 1 ldr x2, [x4,64] @@ -12968,44 +13742,44 @@ ftl_low_format: ldrb w2, [x1,2] bfi w2, w6, 3, 2 strb w2, [x1,2] - b .L1997 -.L2032: - add x0, x21, :lo12:.LANCHOR0 + b .L2201 +.L2235: + add x0, x19, :lo12:.LANCHOR0 mov w1, 21574 movk w1, 0x494c, lsl 16 - mov w19, 0 + mov w20, 0 adrp x24, .LANCHOR7 mov w25, 1 - ldr x2, [x0,2800] + ldr x2, [x0,2848] str w1, [x2] - ldr x0, [x0,2800] + ldr x0, [x0,2848] strh wzr, [x0,148] -.L1999: - add x20, x21, :lo12:.LANCHOR0 - ldrh w0, [x20,56] - cmp w0, w19 - bls .L2033 +.L2203: + add x21, x19, :lo12:.LANCHOR0 + ldrh w0, [x21,56] + cmp w0, w20 + bls .L2236 add x0, x24, :lo12:.LANCHOR7 mov w27, 0 - ubfiz x22, x19, 2, 16 + ubfiz x22, x20, 2, 16 mov w23, w27 - strh w19, [x0,3200] - mov w0, w19 - bl ftl_test_block - ldrb w28, [x20,3264] - ldrb w4, [x20,3272] - mov w20, w27 - mul w6, w19, w28 - uxth w5, w28 -.L2000: - cmp w20, w4 - bcs .L2004 - mov x26, 0 -.L2005: - cmp w5, w26, uxth - bls .L2034 - add w1, w6, w26 + strh w20, [x0,3264] mov w0, w20 + bl ftl_test_block + ldrb w28, [x21,3312] + ldrb w4, [x21,3320] + mov w21, w27 + mul w6, w20, w28 + uxth w5, w28 +.L2204: + cmp w21, w4 + bcs .L2208 + mov x26, 0 +.L2209: + cmp w5, w26, uxth + bls .L2237 + add w1, w6, w26 + mov w0, w21 str x5, [x29,104] str x4, [x29,112] str x6, [x29,120] @@ -13013,8 +13787,8 @@ ftl_low_format: ldr x6, [x29,120] ldr x4, [x29,112] ldr x5, [x29,104] - cbz w0, .L2001 - add x3, x21, :lo12:.LANCHOR0 + cbz w0, .L2205 + add x3, x19, :lo12:.LANCHOR0 add w1, w27, w26 lsl w1, w25, w1 ldr x0, [x3,64] @@ -13022,55 +13796,55 @@ ftl_low_format: ldrb w2, [x0,3] orr w1, w1, w2 strb w1, [x0,3] - ldr x1, [x3,2800] + ldr x1, [x3,2848] ldrh w0, [x1,148] add w0, w0, 1 strh w0, [x1,148] - b .L2002 -.L2001: + b .L2206 +.L2205: add w23, w23, 1 uxth w23, w23 -.L2002: +.L2206: add x26, x26, 1 - b .L2005 -.L2034: - add w20, w20, 1 + b .L2209 +.L2237: + add w21, w21, 1 add w27, w27, w28 - uxth w20, w20 - b .L2000 -.L2004: - cbnz w23, .L2006 - add x0, x21, :lo12:.LANCHOR0 + uxth w21, w21 + b .L2204 +.L2208: + cbnz w23, .L2210 + add x0, x19, :lo12:.LANCHOR0 ldr x0, [x0,64] add x22, x0, x22 ldrb w0, [x22,2] orr w0, w0, -32 strb w0, [x22,2] -.L2006: - add w19, w19, 1 - uxth w19, w19 - b .L1999 -.L2033: +.L2210: + add w20, w20, 1 + uxth w20, w20 + b .L2203 +.L2236: adrp x0, .LANCHOR6 mov w1, 0 add x0, x0, :lo12:.LANCHOR6 mov w2, 16384 - sub x0, x0, #128 + sub x0, x0, #64 bl ftl_memset - ldr x1, [x20,80] + ldr x1, [x21,80] mov w0, 20038 movk w0, 0x4549, lsl 16 mov w6, 3 mov w7, 15 str w0, [x1] mov x1, 0 - ldr x0, [x20,144] - ldrb w4, [x20,3264] + ldr x0, [x21,192] + ldrb w4, [x21,3312] ldrb w20, [x0,47] udiv w20, w20, w4 add w20, w20, 1 -.L2010: - add x3, x21, :lo12:.LANCHOR0 +.L2214: + add x3, x19, :lo12:.LANCHOR0 lsl x0, x1, 2 cmp w4, 1 csinc w5, w6, wzr, ne @@ -13078,15 +13852,15 @@ ftl_low_format: ldr x2, [x3,64] add x2, x2, x0 strb w5, [x2,3] - bne .L2009 + bne .L2213 ldr x2, [x3,64] add x2, x2, x0 strb w7, [x2,3] -.L2009: - add x2, x21, :lo12:.LANCHOR0 +.L2213: + add x2, x19, :lo12:.LANCHOR0 add x1, x1, 1 cmp w20, w1, uxth - ldr x5, [x2,2800] + ldr x5, [x2,2848] ldrh w3, [x5,148] add w3, w4, w3 strh w3, [x5,148] @@ -13095,46 +13869,46 @@ ftl_low_format: ldrb w3, [x0,2] orr w3, w3, -32 strb w3, [x0,2] - bhi .L2010 + bhi .L2214 mov w0, 16 sdiv w4, w0, w4 - ldr x0, [x2,2800] + ldr x0, [x2,2848] add w4, w20, w4 uxth w4, w4 strh w4, [x0,134] - adrp x0, .LANCHOR2+400 - ldr w0, [x0,#:lo12:.LANCHOR2+400] - tbz x0, 12, .L2011 - adrp x0, .LC113 - mov w1, 1869 - add x0, x0, :lo12:.LC113 + adrp x0, .LANCHOR2 + ldr w0, [x0,#:lo12:.LANCHOR2] + tbz x0, 12, .L2215 + adrp x0, .LC160 + mov w1, 1883 + add x0, x0, :lo12:.LC160 mov w2, 128 mov w3, w20 bl printk -.L2011: - add x19, x21, :lo12:.LANCHOR0 +.L2215: + add x21, x19, :lo12:.LANCHOR0 mov w1, 255 mov w2, 128 - ldr x0, [x19,2800] + ldr x0, [x21,2848] add x0, x0, 160 bl ftl_memset - ldrb w8, [x19,3264] + ldrb w8, [x21,3312] mov w10, 21 - ldrh w0, [x19,3266] - ldrb w13, [x19,3272] + ldrh w0, [x21,3314] + ldrb w13, [x21,3320] uxth w9, w8 sub w10, w10, w0 mov w0, 0 mul w11, w20, w9 mov w22, w0 uxth w11, w11 -.L2012: - add x19, x21, :lo12:.LANCHOR0 - ldr x1, [x19,2800] +.L2216: + add x21, x19, :lo12:.LANCHOR0 + ldr x1, [x21,2848] ldrh w1, [x1,134] cmp w1, w20 - bls .L2035 - ldr x2, [x19,64] + bls .L2238 + ldr x2, [x21,64] ubfiz x1, x20, 2, 16 add w6, w0, w11 mov w5, 0 @@ -13144,57 +13918,57 @@ ftl_low_format: ldrb w3, [x2,2] orr w3, w3, -32 strb w3, [x2,2] - ldr x2, [x19,64] - ldr x14, [x19,2800] + ldr x2, [x21,64] + ldr x14, [x21,2848] add x1, x2, x1 -.L2013: +.L2217: cmp w13, w4, uxth - bls .L2017 + bls .L2221 lsl w12, w4, w10 mov x3, 0 uxth w12, w12 -.L2018: +.L2222: uxth w2, w3 cmp w2, w9 - bcs .L2036 + bcs .L2239 ldrb w7, [x1,3] add w15, w5, w3 asr w7, w7, w15 - tbnz x7, 0, .L2014 + tbnz x7, 0, .L2218 cmp w8, 1 mov w7, w6 - bls .L2015 + bls .L2219 and w2, w2, 1 add w2, w6, w2 uxth w7, w2 -.L2015: +.L2219: add x15, x14, x22, sxtw 1 add w22, w22, 1 add w2, w7, w12 strh w2, [x15,160] uxth w22, w22 -.L2014: +.L2218: add x3, x3, 1 - b .L2018 -.L2036: + b .L2222 +.L2239: add w4, w4, 1 add w5, w5, w8 - b .L2013 -.L2017: + b .L2217 +.L2221: add w20, w20, 1 add w0, w0, w9 uxth w20, w20 uxth w0, w0 - b .L2012 -.L2035: - ldrh w2, [x19,56] + b .L2216 +.L2238: + ldrh w2, [x21,56] mov w1, 0 - ldr x0, [x19,72] + ldr x0, [x21,72] lsl w2, w2, 1 bl ftl_memset bl zftl_sblk_list_init - ldr x0, [x19,2800] - ldrh w1, [x19,56] + ldr x0, [x21,2848] + ldrh w1, [x21,56] ldrh w2, [x0,134] strh w22, [x0,112] sub w1, w1, w2 @@ -13203,53 +13977,53 @@ ftl_low_format: strh wzr, [x0,118] mov w0, 1 bl ftl_alloc_sblk - mov w21, w0 + mov w22, w0 mov w1, 0 bl ftl_erase_sblk - ldr x1, [x19,2800] - mov w0, w21 + ldr x1, [x21,2848] + mov w0, w22 add x1, x1, 672 bl ftl_get_blk_list_in_sblk - ldr x1, [x19,2800] + ldr x0, [x21,2848] + ldrh w20, [x0,672] + strh wzr, [x0,690] mov w0, 65533 - ldrh w20, [x1,672] - strh wzr, [x1,690] - sub w2, w20, #1 - cmp w0, w2, uxth - bcs .L2020 + sub w1, w20, #1 + cmp w0, w1, uxth + bcs .L2224 adrp x1, .LANCHOR3 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR3 add x0, x0, :lo12:.LC0 - add x1, x1, 344 - mov w2, 1900 + add x1, x1, 416 + mov w2, 1914 bl printk -.L2021: - b .L2021 -.L2020: - strh wzr, [x1,696] - add x0, x1, 416 - mov w2, 256 +.L2224: + add x19, x19, :lo12:.LANCHOR0 mov w1, 255 + mov w2, 256 + ldr x0, [x19,2848] + add x0, x0, 416 + strh wzr, [x0,280] bl ftl_memset - ldr x1, [x19,2800] + ldr x1, [x19,2848] mov w2, 21 - ldrh w0, [x19,3266] + ldrh w0, [x19,3314] sub w2, w2, w0 mov w0, 1 strh w0, [x1,688] - adrp x0, .LANCHOR7+3202 + adrp x0, .LANCHOR7+3266 asr w2, w20, w2 strh w20, [x1,692] strh w2, [x1,694] - ldrh w0, [x0,#:lo12:.LANCHOR7+3202] - strh w21, [x1,416] + ldrh w0, [x0,#:lo12:.LANCHOR7+3266] + strh w22, [x1,416] strh w0, [x1,698] bl ftl_alloc_sys_blk mov w20, w0 mov w1, 0 bl ftl_erase_phy_blk - ldr x1, [x19,2800] + ldr x1, [x19,2848] ldr x0, [x19,80] strh w20, [x1,130] add x0, x0, 16 @@ -13259,7 +14033,7 @@ ftl_low_format: mov w1, 3 add x0, x0, 48 bl ftl_open_sblk_init - ldr x1, [x19,2800] + ldr x1, [x19,2848] ldr x0, [x19,80] ldrh w2, [x1,134] add x0, x0, 136 @@ -13299,10 +14073,10 @@ ftl_low_format: .type ftl_re_low_format_test, %function ftl_re_low_format_test: stp x29, x30, [sp, -48]! - adrp x0, .LC114 + adrp x0, .LC161 mov w1, 1 add x29, sp, 0 - add x0, x0, :lo12:.LC114 + add x0, x0, :lo12:.LC161 stp x19, x20, [sp,16] str x21, [sp,32] adrp x19, .LANCHOR0 @@ -13311,15 +14085,15 @@ ftl_re_low_format_test: bl ftl_info_blk_init bl ftl_ext_info_init add x0, x19, :lo12:.LANCHOR0 - ldr x1, [x0,2800] + ldr x1, [x0,2848] ldrh w2, [x0,56] mov w0, 0 mov w3, w0 mov w4, w0 ldrh w1, [x1,134] -.L2038: +.L2241: cmp w1, w2 - bcs .L2045 + bcs .L2247 add x5, x19, :lo12:.LANCHOR0 ldr x6, [x5,64] add x6, x6, x1, uxth 2 @@ -13327,29 +14101,29 @@ ftl_re_low_format_test: and w7, w5, 31 ands w5, w5, 24 strb w7, [x6,2] - bne .L2039 + bne .L2242 add w4, w4, 1 uxth w4, w4 - b .L2040 -.L2039: + b .L2243 +.L2242: cmp w5, 16 - bne .L2041 + bne .L2244 add w3, w3, 1 uxth w3, w3 - b .L2040 -.L2041: + b .L2243 +.L2244: add w0, w0, 1 uxth w0, w0 -.L2040: +.L2243: add w1, w1, 1 uxth w1, w1 - b .L2038 -.L2045: - add x19, x19, :lo12:.LANCHOR0 + b .L2241 +.L2247: + add x20, x19, :lo12:.LANCHOR0 lsl w2, w2, 1 - ldr x1, [x19,2800] + ldr x1, [x20,2848] strh w0, [x1,116] - ldr x0, [x19,72] + ldr x0, [x20,72] strh w4, [x1,114] strh w3, [x1,118] strh wzr, [x1,122] @@ -13363,49 +14137,49 @@ ftl_re_low_format_test: mov w21, w0 mov w1, 0 bl ftl_erase_sblk - ldr x1, [x19,2800] + ldr x1, [x20,2848] mov w0, w21 add x1, x1, 672 bl ftl_get_blk_list_in_sblk - ldr x1, [x19,2800] + ldr x0, [x20,2848] + ldrh w20, [x0,672] + strh wzr, [x0,690] mov w0, 65533 - ldrh w20, [x1,672] - strh wzr, [x1,690] - sub w2, w20, #1 - cmp w0, w2, uxth - bcs .L2043 + sub w1, w20, #1 + cmp w0, w1, uxth + bcs .L2246 adrp x1, .LANCHOR3 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR3 add x0, x0, :lo12:.LC0 - add x1, x1, 360 - mov w2, 1972 + add x1, x1, 432 + mov w2, 1986 bl printk -.L2044: - b .L2044 -.L2043: - strh wzr, [x1,696] - add x0, x1, 416 - mov w2, 256 +.L2246: + add x19, x19, :lo12:.LANCHOR0 mov w1, 255 + mov w2, 256 + ldr x0, [x19,2848] + add x0, x0, 416 + strh wzr, [x0,280] bl ftl_memset - ldr x0, [x19,2800] + ldr x0, [x19,2848] mov w1, 0 mov w2, 4096 add x0, x0, 704 bl ftl_memset - ldr x1, [x19,2800] + ldr x1, [x19,2848] lsr w0, w20, 14 ldrh w2, [x19,56] and w20, w20, 16383 strh w0, [x1,694] mov w0, 1 strh w0, [x1,688] - adrp x0, .LANCHOR7+3202 + adrp x0, .LANCHOR7+3266 lsl w2, w2, 1 strh w20, [x1,692] strh w21, [x1,416] - ldrh w0, [x0,#:lo12:.LANCHOR7+3202] + ldrh w0, [x0,#:lo12:.LANCHOR7+3266] strh w0, [x1,698] mov w1, 0 ldr x0, [x19,72] @@ -13418,7 +14192,7 @@ ftl_re_low_format_test: mov w1, 3 add x0, x0, 48 bl ftl_open_sblk_init - ldr x1, [x19,2800] + ldr x1, [x19,2848] ldr x0, [x19,80] ldrh w2, [x1,134] add x0, x0, 136 @@ -13487,14 +14261,14 @@ ftl_write_last_log_page: add x19, x19, :lo12:.LANCHOR0 ldrh w24, [x0,12] cmp w1, 1 - ldr x22, [x19,3792] - bne .L2048 + ldr x22, [x19,3840] + bne .L2250 mov x20, x0 bl ftl_get_new_free_page cmn w0, #1 mov w23, w0 mov w21, 0 - beq .L2048 + beq .L2250 ldrh w0, [x20] add x22, x22, x24, uxth 2 bl ftl_vpn_decrement @@ -13502,24 +14276,24 @@ ftl_write_last_log_page: mov w0, 15555 add x1, x1, :lo12:.LANCHOR5 movk w0, 0xf55f, lsl 16 - add x2, x1, 192 + add x2, x1, 256 str x2, [x29,72] - str w0, [x1,192] - ldrb w0, [x19,3196] - ldrh w1, [x19,3228] + str w0, [x1,256] + ldrb w0, [x19,3244] + ldrh w1, [x19,3276] mul w1, w1, w0 mov x0, x22 lsl w1, w1, 2 bl js_hash ldr x2, [x29,72] mov x1, x22 - ldrb w3, [x19,2776] + ldrb w3, [x19,2816] str w0, [x2,4] mov w0, w23 str w21, [x2,8] str w21, [x2,12] bl ftl_prog_ppa_page -.L2048: +.L2250: mov w0, w21 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -13531,118 +14305,112 @@ ftl_write_last_log_page: .global ftl_open_sblk_recovery .type ftl_open_sblk_recovery, %function ftl_open_sblk_recovery: - sub sp, sp, #160 + sub sp, sp, #176 stp x29, x30, [sp,48] add x29, sp, 48 - stp x21, x22, [sp,80] - adrp x21, .LANCHOR2 - stp x27, x28, [sp,128] - mov x28, x0 - add x0, x21, :lo12:.LANCHOR2 - stp x25, x26, [sp,112] - stp x19, x20, [sp,64] stp x23, x24, [sp,96] - mov x25, x1 - ldr w0, [x0,400] - tbz x0, 12, .L2053 - adrp x0, .LC115 - ldrh w1, [x28,2] - add x0, x0, :lo12:.LC115 + adrp x23, .LANCHOR2 + str x1, [x29,120] + stp x19, x20, [sp,64] + mov x19, x0 + ldr w0, [x23,#:lo12:.LANCHOR2] + stp x21, x22, [sp,80] + stp x25, x26, [sp,112] + stp x27, x28, [sp,128] + tbz x0, 12, .L2255 + adrp x0, .LC162 + ldrh w1, [x19,2] + add x0, x0, :lo12:.LC162 bl printk -.L2053: - add x0, x21, :lo12:.LANCHOR2 - ldr w0, [x0,400] - tbz x0, 12, .L2054 - adrp x0, .LC116 - ldrb w1, [x28,5] - add x0, x0, :lo12:.LC116 +.L2255: + ldr w0, [x23,#:lo12:.LANCHOR2] + tbz x0, 12, .L2256 + adrp x0, .LC163 + ldrb w1, [x19,5] + add x0, x0, :lo12:.LC163 bl printk -.L2054: - add x0, x21, :lo12:.LANCHOR2 - ldr w0, [x0,400] - tbz x0, 12, .L2055 - adrp x0, .LC117 - ldrh w1, [x28] - add x0, x0, :lo12:.LC117 +.L2256: + ldr w0, [x23,#:lo12:.LANCHOR2] + tbz x0, 12, .L2257 + adrp x0, .LC164 + ldrh w1, [x19] + add x0, x0, :lo12:.LC164 bl printk -.L2055: - add x0, x21, :lo12:.LANCHOR2 - ldr w0, [x0,400] - tbz x0, 12, .L2056 - adrp x0, .LC118 - ldrh w1, [x28,16] - ldrh w2, [x28,18] - add x0, x0, :lo12:.LC118 +.L2257: + ldr w0, [x23,#:lo12:.LANCHOR2] + tbz x0, 12, .L2258 + adrp x0, .LC165 + ldrh w1, [x19,16] + ldrh w2, [x19,18] + add x0, x0, :lo12:.LC165 bl printk -.L2056: - ldrh w0, [x28,10] - adrp x23, .LANCHOR5 - strh w0, [x28,14] +.L2258: + ldrh w0, [x19,10] + adrp x24, .LANCHOR5 + strh w0, [x19,14] mov w0, 1 - add x23, x23, :lo12:.LANCHOR5 - adrp x24, .LC119 + adrp x25, .LANCHOR3 + add x24, x24, :lo12:.LANCHOR5 bl buf_alloc - ldrb w19, [x28,5] - ldrh w20, [x28,2] + add x25, x25, :lo12:.LANCHOR3 + ldrb w21, [x19,5] mov x27, x0 - mov w26, 0 - add x23, x23, 512 - add x24, x24, :lo12:.LC119 -.L2057: - adrp x0, .LANCHOR0 - adrp x22, .LANCHOR0 - add x0, x0, :lo12:.LANCHOR0 - ldrh w0, [x0,3228] - cmp w0, w20 - bls .L2060 - ldrb w19, [x28,5] -.L2058: - ldrb w0, [x28,9] - cmp w0, w19 - bls .L2139 - add x0, x28, x19, sxtw 1 + ldrh w22, [x19,2] + mov w28, 0 + add x24, x24, 576 + add x25, x25, 456 +.L2259: + adrp x20, .LANCHOR0 + add x0, x20, :lo12:.LANCHOR0 + ldrh w0, [x0,3276] + cmp w0, w22 + bls .L2262 + ldrb w21, [x19,5] +.L2260: + ldrb w0, [x19,9] + cmp w0, w21 + bls .L2340 + add x0, x19, x21, sxtw 1 ldrh w5, [x0,16] mov w0, 65535 cmp w5, w0 - beq .L2059 - add x3, x22, :lo12:.LANCHOR0 + beq .L2261 + add x3, x20, :lo12:.LANCHOR0 ldr x1, [x27,8] ldr x2, [x27,24] - str x5, [x29,96] - ldrh w4, [x3,3270] - ldrb w3, [x3,2776] - madd w4, w5, w4, w20 - str x4, [x29,104] + str x5, [x29,104] + ldrh w4, [x3,3318] + ldrb w3, [x3,2816] + madd w4, w5, w4, w22 + str x4, [x29,112] mov w0, w4 bl ftl_read_ppa_page cmp w0, 512 - mov w10, w0 - beq .L2060 + mov w26, w0 + beq .L2262 cmn w0, #1 - ldr x4, [x29,104] - ldr x5, [x29,96] - beq .L2061 + ldr x4, [x29,112] + ldr x5, [x29,104] + beq .L2263 ldr x0, [x27,24] ldr w1, [x0] cmn w1, #1 - bne .L2061 + bne .L2263 ldr w0, [x0,4] cmn w0, #1 - bne .L2061 + bne .L2263 ldr x0, [x27,8] ldr w0, [x0] cmn w0, #1 - beq .L2060 -.L2061: - add x0, x21, :lo12:.LANCHOR2 - ldr w0, [x0,400] - tbz x0, 12, .L2062 + beq .L2262 +.L2263: + ldr w0, [x23,#:lo12:.LANCHOR2] + tbz x0, 12, .L2264 ldr x7, [x27,8] mov w3, w4 ldr x0, [x27,24] - mov w4, w10 - mov w2, w20 - str x10, [x29,104] + mov w2, w22 + mov w4, w26 ldr w1, [x7,12] str w1, [sp] ldr w1, [x0] @@ -13654,285 +14422,278 @@ ftl_open_sblk_recovery: mov w1, w5 ldr w0, [x0,12] str w0, [sp,32] - mov x0, x24 + adrp x0, .LC166 + add x0, x0, :lo12:.LC166 ldr w5, [x7] ldr w6, [x7,4] ldr w7, [x7,8] bl printk - ldr x10, [x29,104] -.L2062: - adrp x0, .LANCHOR6-192 - ldrb w2, [x28,9] +.L2264: + adrp x0, .LANCHOR6-127 mov w1, 1 - strb w1, [x0,#:lo12:.LANCHOR6-192] - ldrh w0, [x28,10] - madd w1, w20, w2, w19 - cmp w0, w1 - beq .L2063 - adrp x1, .LANCHOR3 + strb w1, [x0,#:lo12:.LANCHOR6-127] + ldrb w0, [x19,9] + ldrh w1, [x19,10] + madd w0, w22, w0, w21 + cmp w1, w0 + beq .L2265 adrp x0, .LC0 - add x1, x1, :lo12:.LANCHOR3 + mov x1, x25 add x0, x0, :lo12:.LC0 - add x1, x1, 384 - mov w2, 1260 + mov w2, 1270 bl printk -.L2064: - b .L2064 -.L2063: - add x26, x22, :lo12:.LANCHOR0 - ldrh w1, [x28,6] - add w0, w1, w0 - ldrh w1, [x26,3228] - mul w1, w1, w2 - cmp w0, w1 - beq .L2065 - adrp x1, .LANCHOR3 +.L2265: + ldrh w0, [x19,10] + ldrh w1, [x19,6] + ldrb w2, [x19,9] + add w1, w1, w0 + add x0, x20, :lo12:.LANCHOR0 + ldrh w0, [x0,3276] + mul w0, w0, w2 + cmp w1, w0 + beq .L2266 adrp x0, .LC0 - add x1, x1, :lo12:.LANCHOR3 + mov x1, x25 add x0, x0, :lo12:.LC0 - add x1, x1, 384 - mov w2, 1261 + mov w2, 1271 bl printk -.L2066: - b .L2066 -.L2065: - cmn w10, #1 - beq .L2070 - ldr x4, [x27,24] - str x4, [x29,104] - ldr w0, [x4,4] +.L2266: + cmn w26, #1 + beq .L2270 + ldr x0, [x27,24] + ldr w0, [x0,4] cmn w0, #1 - beq .L2070 + beq .L2270 bl lpa_hash_get_ppa - cbz x25, .L2068 - ldr x4, [x29,104] - ldr w1, [x4,8] + ldr x1, [x29,120] + cbz x1, .L2268 + ldr x3, [x27,24] + ldr w1, [x3,8] cmp w0, w1 - beq .L2068 + beq .L2268 cmn w0, #1 - beq .L2068 - ldrh w5, [x26,3266] - mov w1, 21 - mov w2, 1 - sub w1, w1, w5 - lsr w3, w0, w5 - lsl w1, w2, w1 - ldrb w2, [x26,3264] + beq .L2268 + add x28, x20, :lo12:.LANCHOR0 + mov w4, 21 + mov w26, 1 + ldrh w1, [x28,3314] + lsr w2, w0, w1 + sub w1, w4, w1 + lsl w1, w26, w1 sub w1, w1, #1 - and w1, w3, w1 + and w1, w2, w1 + ldrb w2, [x28,3312] udiv w1, w1, w2 - ldrh w2, [x25] + ldr x2, [x29,120] + ldrh w2, [x2] cmp w2, w1, uxth - bne .L2068 - ldr w4, [x4] - mov x2, x23 + bne .L2268 + ldr w5, [x3] + mov x2, x24 ldr x1, [x27,8] - ldrb w3, [x26,2776] + ldrb w3, [x28,2816] str x4, [x29,104] + str x5, [x29,112] bl ftl_read_ppa_page - ldr w0, [x23] + ldr w0, [x24] + ldr x5, [x29,112] ldr x4, [x29,104] - cmp w0, w4 - bcc .L2068 + cmp w0, w5 + bcc .L2268 ldr x0, [x27,24] ldr w1, [x0,8] cmn w1, #1 - beq .L2070 - add x4, x22, :lo12:.LANCHOR0 - mov w2, 21 - mov w3, 1 - ldrh w0, [x4,3266] - sub w2, w2, w0 + beq .L2270 + ldrh w0, [x28,3314] + sub w4, w4, w0 lsr w1, w1, w0 - lsl w2, w3, w2 - ldrb w0, [x4,3264] - sub w2, w2, #1 - and w1, w2, w1 + lsl w26, w26, w4 + ldrb w0, [x28,3312] + sub w26, w26, #1 + and w1, w26, w1 udiv w0, w1, w0 bl ftl_vpn_decrement - b .L2070 -.L2068: + b .L2270 +.L2268: ldr x2, [x27,24] - add x1, x22, :lo12:.LANCHOR0 + add x1, x20, :lo12:.LANCHOR0 ldr w3, [x2,4] - ldr w0, [x1,2784] + ldr w0, [x1,2824] cmp w3, w0 - bcs .L2070 - ldrb w0, [x28,9] - ldrh w4, [x1,3228] - ldrh w3, [x28,10] + bcs .L2270 + ldrb w0, [x19,9] + ldrh w4, [x1,3276] + ldrh w3, [x19,10] mul w0, w0, w4 sub w0, w0, #1 cmp w3, w0 - blt .L2140 -.L2070: - ldrh w0, [x28,6] - mov w26, 1 + blt .L2341 +.L2270: + ldrh w0, [x19,6] + mov w28, 1 sub w0, w0, #1 - strh w0, [x28,6] - ldrh w0, [x28,10] + strh w0, [x19,6] + ldrh w0, [x19,10] add w0, w0, 1 - strh w0, [x28,10] -.L2059: - add w19, w19, 1 - uxth w19, w19 - b .L2058 -.L2139: - add w20, w20, 1 - strb wzr, [x28,5] - uxth w20, w20 - b .L2057 -.L2060: - add x4, x22, :lo12:.LANCHOR0 - ldrb w1, [x28,9] - ldrh w2, [x28,10] - ldrh w3, [x28,6] - ldrh w0, [x4,3228] - add w3, w3, w2 - strh w20, [x28,2] - strb w19, [x28,5] - mul w0, w1, w0 - cmp w3, w0 - bne .L2074 - mov w19, 0 - ldr x4, [x4,3792] - mov w1, w19 - b .L2075 -.L2074: + strh w0, [x19,10] +.L2261: + add w21, w21, 1 + uxth w21, w21 + b .L2260 +.L2340: + add w22, w22, 1 + strb wzr, [x19,5] + uxth w22, w22 + b .L2259 +.L2262: + add x2, x20, :lo12:.LANCHOR0 + ldrh w0, [x19,10] + ldrh w1, [x19,6] + strh w22, [x19,2] + add w1, w1, w0 + ldrh w2, [x2,3276] + ldrb w0, [x19,9] + strb w21, [x19,5] + mul w0, w0, w2 + cmp w1, w0 + beq .L2274 adrp x1, .LANCHOR3 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR3 add x0, x0, :lo12:.LC0 - add x1, x1, 384 - mov w2, 1337 + add x1, x1, 456 + mov w2, 1347 bl printk -.L2076: - b .L2076 -.L2078: - ldrh w3, [x28,12] - add w3, w1, w3 - ldr w3, [x4,x3,lsl 2] - cmn w3, #1 - beq .L2077 - add w19, w19, 1 - uxth w19, w19 -.L2077: - add w1, w1, 1 -.L2075: - cmp w1, w2 - bcc .L2078 - sub w0, w0, w2 - add w19, w19, w0 - add x0, x21, :lo12:.LANCHOR2 - uxth w19, w19 - ldr w0, [x0,400] - tbz x0, 12, .L2079 - add x0, x22, :lo12:.LANCHOR0 - ldrh w1, [x28] - mov w2, w19 +.L2274: + add x0, x20, :lo12:.LANCHOR0 + ldrh w3, [x19,10] + ldr x4, [x0,3840] + mov w0, 0 + mov w2, w0 +.L2275: + cmp w2, w3 + bcs .L2342 + ldrh w1, [x19,12] + add w1, w2, w1 + ldr w1, [x4,x1,lsl 2] + cmn w1, #1 + beq .L2276 + add w1, w0, 1 + uxth w0, w1 +.L2276: + add w2, w2, 1 + b .L2275 +.L2342: + add x2, x20, :lo12:.LANCHOR0 + ldrb w1, [x19,9] + sub w0, w0, w3 + ldrh w21, [x2,3276] + madd w0, w1, w21, w0 + uxth w21, w0 + ldr w0, [x23,#:lo12:.LANCHOR2] + tbz x0, 12, .L2278 + ldrh w1, [x19] + adrp x0, .LC167 + ldr x4, [x2,72] + add x0, x0, :lo12:.LC167 ubfiz x3, x1, 1, 16 - ldr x4, [x0,72] - adrp x0, .LC120 - add x0, x0, :lo12:.LC120 + mov w2, w21 ldrh w3, [x4,x3] bl printk -.L2079: - add x0, x22, :lo12:.LANCHOR0 - ldrh w1, [x28] - adrp x20, .LC121 - mov w23, -1 - add x20, x20, :lo12:.LC121 +.L2278: + add x0, x20, :lo12:.LANCHOR0 + ldrh w1, [x19] + adrp x22, .LC168 + mov w24, -1 + add x22, x22, :lo12:.LC168 ldr x0, [x0,72] - strh w19, [x0,x1,lsl 1] + strh w21, [x0,x1,lsl 1] mov x0, x27 - mov w19, 0 + mov w21, 0 bl buf_free -.L2080: - add x2, x22, :lo12:.LANCHOR0 - ldrb w0, [x2,3196] - cmp w19, w0, lsl 1 - bcs .L2141 - cbz w26, .L2081 - ldrh w0, [x28,6] +.L2279: + add x2, x20, :lo12:.LANCHOR0 + ldrb w0, [x2,3244] + cmp w21, w0, lsl 1 + bcs .L2343 + cbz w28, .L2280 + ldrh w0, [x19,6] cmp w0, 1 - bls .L2081 - mov x0, x28 + bls .L2280 + mov x0, x19 bl ftl_get_new_free_page - mov w24, w0 - add x0, x21, :lo12:.LANCHOR2 - ldr w0, [x0,400] - tbz x0, 12, .L2082 - mov x0, x20 - mov w1, w24 + mov w25, w0 + ldr w0, [x23,#:lo12:.LANCHOR2] + tbz x0, 12, .L2281 + mov x0, x22 + mov w1, w25 bl printk -.L2082: - add x3, x22, :lo12:.LANCHOR0 +.L2281: + add x3, x20, :lo12:.LANCHOR0 ldr x0, [x27,24] - ldr x1, [x3,2800] + ldr x1, [x3,2848] ldr w1, [x1,8] str w1, [x0] ldr x0, [x27,24] - str w23, [x0,4] + str w24, [x0,4] ldr x0, [x27,24] - str w23, [x0,8] + str w24, [x0,8] ldr x0, [x27,24] str wzr, [x0,12] ldr x0, [x27,8] str wzr, [x0] - mov w0, w24 + mov w0, w25 ldr x1, [x27,8] ldr x2, [x27,24] - ldrb w3, [x3,2776] + ldrb w3, [x3,2816] bl ftl_prog_ppa_page - ldrh w0, [x28] + ldrh w0, [x19] bl ftl_vpn_decrement -.L2081: - add w19, w19, 1 - b .L2080 -.L2141: - ldrh w1, [x2,3228] - ldrh w0, [x28,12] - ldrb w3, [x28,9] +.L2280: + add w21, w21, 1 + b .L2279 +.L2343: + ldrh w1, [x2,3276] + ldrh w0, [x19,12] + ldrb w3, [x19,9] madd w0, w1, w3, w0 mov x1, -4 add x0, x1, x0, sxtw 2 - ldr x1, [x2,3792] + ldr x1, [x2,3840] ldr w0, [x1,x0] cmn w0, #1 - beq .L2084 + beq .L2283 adrp x1, .LANCHOR3 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR3 add x0, x0, :lo12:.LC0 - add x1, x1, 384 - mov w2, 1364 + add x1, x1, 456 + mov w2, 1377 bl printk -.L2085: - b .L2085 -.L2084: - ldrh w0, [x28,6] +.L2283: + ldrh w0, [x19,6] cmp w0, 1 - bne .L2052 - mov x0, x28 + bne .L2254 + mov x0, x19 bl ftl_write_last_log_page - b .L2052 -.L2140: - ldr x0, [x1,2800] + b .L2254 +.L2341: + ldr x0, [x1,2848] ldr w2, [x2] ldr w1, [x0,8] cmp w2, w1 - bls .L2071 + bls .L2271 str w2, [x0,8] -.L2071: +.L2271: ldr x1, [x27,24] - ldrh w0, [x28,10] - ldrh w2, [x28,12] + ldrh w0, [x19,10] + ldrh w2, [x19,12] add w2, w2, w0 ldr w0, [x1,4] ldr w1, [x1,8] bl lpa_hash_update_ppa - b .L2070 -.L2052: + b .L2270 +.L2254: sub sp, x29, #48 ldp x19, x20, [sp,64] ldp x21, x22, [sp,80] @@ -13940,7 +14701,7 @@ ftl_open_sblk_recovery: ldp x25, x26, [sp,112] ldp x27, x28, [sp,128] ldp x29, x30, [sp,48] - add sp, sp, 160 + add sp, sp, 176 ret .size ftl_open_sblk_recovery, .-ftl_open_sblk_recovery .align 2 @@ -13950,99 +14711,108 @@ pm_write_page: stp x29, x30, [sp, -96]! add x29, sp, 0 stp x21, x22, [sp,32] - adrp x22, .LANCHOR0 - adrp x21, .LC122 + adrp x22, .LANCHOR3 + str x27, [sp,80] stp x23, x24, [sp,48] - stp x19, x20, [sp,16] + add x22, x22, :lo12:.LANCHOR3 + adrp x23, .LC0 stp x25, x26, [sp,64] - stp x27, x28, [sp,80] - mov w20, w0 + stp x19, x20, [sp,16] + mov w21, w0 mov x24, x1 - mov x25, x22 - mov w23, 65535 - add x21, x21, :lo12:.LC122 -.L2143: - adrp x26, .LANCHOR7 -.L2148: - add x2, x22, :lo12:.LANCHOR0 - ldr x0, [x2,2800] + adrp x25, .LANCHOR0 + add x23, x23, :lo12:.LC0 + add x22, x22, 480 +.L2345: + add x2, x25, :lo12:.LANCHOR0 + adrp x19, .LANCHOR0 + ldr x0, [x2,2848] ldr w1, [x0,48] ldrh w3, [x0,696] add w1, w1, 1 str w1, [x0,48] - ldrh w1, [x2,3228] + ldrh w1, [x2,3276] cmp w3, w1 - bcs .L2144 - ldrh w0, [x0,692] - cmp w0, w23 - bne .L2145 -.L2144: + bcs .L2346 + ldrh w1, [x0,692] + mov w0, 65535 + cmp w1, w0 + bne .L2347 +.L2346: bl pm_alloc_new_blk mov w0, 0 bl ftl_info_flush -.L2145: - add x27, x25, :lo12:.LANCHOR0 - ldr x0, [x27,2800] - ldrh w3, [x0,692] - cmp w3, w23 - bne .L2146 - adrp x1, .LANCHOR3 - adrp x0, .LC0 - add x1, x1, :lo12:.LANCHOR3 - add x0, x0, :lo12:.LC0 - add x1, x1, 408 - mov w2, 224 +.L2347: + add x0, x19, :lo12:.LANCHOR0 + ldr x0, [x0,2848] + ldrh w1, [x0,692] + mov w0, 65535 + cmp w1, w0 + bne .L2348 + mov x0, x23 + mov x1, x22 + mov w2, 228 bl printk -.L2147: - b .L2147 -.L2146: - add x28, x26, :lo12:.LANCHOR7 - ldrh w0, [x0,696] - ldrh w19, [x27,3270] - mov w1, 0 +.L2348: + add x19, x19, :lo12:.LANCHOR0 + adrp x20, .LANCHOR7 + add x27, x20, :lo12:.LANCHOR7 mov w2, 64 - madd w19, w3, w19, w0 - ldr x0, [x28,3208] + ldr x1, [x19,2848] + ldrh w26, [x19,3318] + ldrh w0, [x1,692] + ldrh w1, [x1,696] + madd w26, w0, w26, w1 + ldr x0, [x27,3272] + mov w1, 0 bl ftl_memset - ldr x0, [x28,3208] + ldr x0, [x27,3272] mov x2, x24 - str w20, [x0] - ldr x1, [x27,2800] - ldr x0, [x28,3208] - ldrb w4, [x27,2776] + str w21, [x0] + ldr x1, [x19,2848] + ldr x0, [x27,3272] + ldrb w4, [x19,2816] ldr w1, [x1,48] str w1, [x0,4] - mov w1, w19 - ldr x0, [x27,2800] - ldr x3, [x28,3208] + mov w1, w26 + ldr x0, [x19,2848] + ldr x3, [x27,3272] ldrb w0, [x0,694] bl ftl_prog_page - ldr x1, [x27,2800] - ldrh w3, [x1,696] - add w3, w3, 1 - uxth w3, w3 - strh w3, [x1,696] - cmp w3, 1 - beq .L2148 + ldr x1, [x19,2848] + ldrh w2, [x1,696] + add w2, w2, 1 + uxth w2, w2 + strh w2, [x1,696] + cmp w2, 1 + beq .L2349 + ldrb w2, [x27,3280] + cbz w2, .L2350 +.L2349: + add x20, x20, :lo12:.LANCHOR7 + strb wzr, [x20,3280] + b .L2345 +.L2350: cmn w0, #1 - bne .L2149 - mov x0, x21 - mov w1, w19 + bne .L2352 + adrp x0, .LC169 + mov w1, w26 + add x0, x0, :lo12:.LC169 bl printk - b .L2143 -.L2149: + b .L2345 +.L2352: ldrh w0, [x1,698] - cmp w20, w0 - bcs .L2150 - add x20, x1, x20, uxtw 2 - str w19, [x20,704] -.L2150: + cmp w21, w0 + bcs .L2353 + add x21, x1, x21, uxtw 2 + str w26, [x21,704] +.L2353: mov w0, 0 + ldr x27, [sp,80] ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] ldp x25, x26, [sp,64] - ldp x27, x28, [sp,80] ldp x29, x30, [sp], 96 ret .size pm_write_page, .-pm_write_page @@ -14050,111 +14820,122 @@ pm_write_page: .global flash_info_flush .type flash_info_flush, %function flash_info_flush: + adrp x0, .LANCHOR2 stp x29, x30, [sp, -96]! - mov w1, 0 - mov w2, 64 add x29, sp, 0 + ldr w0, [x0,#:lo12:.LANCHOR2] + stp x19, x20, [sp,16] stp x21, x22, [sp,32] - adrp x22, .LANCHOR4 - add x0, x22, :lo12:.LANCHOR4 stp x23, x24, [sp,48] stp x25, x26, [sp,64] - stp x19, x20, [sp,16] stp x27, x28, [sp,80] + tbz x0, 12, .L2358 + adrp x2, .LANCHOR3 + adrp x0, .LC115 + add x2, x2, :lo12:.LANCHOR3 + add x0, x0, :lo12:.LC115 + mov w1, 251 + add x2, x2, 496 + bl printk +.L2358: + adrp x22, .LANCHOR4 adrp x23, .LANCHOR0 - adrp x24, .LC124 - ldr x0, [x0,1176] + add x0, x22, :lo12:.LANCHOR4 + mov w1, 0 + mov w2, 64 add x19, x23, :lo12:.LANCHOR0 - adrp x25, .LC125 + adrp x24, .LC171 + adrp x25, .LC172 + ldr x0, [x0,1200] mov w26, 0 - add x24, x24, :lo12:.LC124 - add x25, x25, :lo12:.LC125 + add x24, x24, :lo12:.LC171 + add x25, x25, :lo12:.LC172 bl ftl_memset - ldr x1, [x19,144] - adrp x0, .LC123 - add x0, x0, :lo12:.LC123 + ldr x1, [x19,192] + adrp x0, .LC170 + add x0, x0, :lo12:.LC170 mov w2, 4 mov w3, 16 bl rknand_print_hex - ldr x19, [x19,144] + ldr x19, [x19,192] add x0, x19, 16 ldr w1, [x19,8] bl js_hash str w0, [x19,12] -.L2154: +.L2359: add x21, x22, :lo12:.LANCHOR4 add x27, x23, :lo12:.LANCHOR0 mov x0, x24 - ldrb w20, [x21,1184] - ldrh w19, [x21,1186] + ldrb w20, [x21,1208] + ldrh w19, [x21,1210] mov w1, w20 - ldrh w28, [x27,166] + ldrh w28, [x27,210] mov w2, w19 bl printk - ldrh w1, [x21,1012] - ldrh w0, [x21,1186] + ldrh w1, [x21,1060] + ldrh w0, [x21,1210] sub w1, w1, #1 cmp w0, w1 - blt .L2155 - ldr x1, [x27,144] - ldrb w19, [x21,1185] - strh wzr, [x21,1186] + blt .L2360 + ldr x1, [x27,192] + ldrb w19, [x21,1209] + strh wzr, [x21,1210] ldr w0, [x1,4] add w0, w0, 1 str w0, [x1,4] - ldrb w0, [x21,1184] - ldr x20, [x27,144] - strb w0, [x21,1185] + ldrb w0, [x21,1208] + ldr x20, [x27,192] + strb w0, [x21,1209] mov x0, x20 - strb w19, [x21,1184] + strb w19, [x21,1208] ldrh w1, [x20,16] add w1, w1, 1 strh w1, [x0,16]! ldr w1, [x20,8] bl js_hash str w0, [x20,12] - ldrh w0, [x27,166] + ldrh w0, [x27,210] mul w19, w19, w0 mov w0, 0 - b .L2160 -.L2155: + b .L2368 +.L2360: madd w19, w20, w28, w19 - cbnz w0, .L2156 -.L2160: + cbnz w0, .L2361 +.L2368: mov w1, w19 bl flash_erase_block -.L2156: +.L2361: add x2, x23, :lo12:.LANCHOR0 add x20, x22, :lo12:.LANCHOR4 mov w4, 4 mov w5, 1 - ldr x1, [x2,144] - ldr x0, [x20,1176] + ldr x1, [x2,192] + ldr x0, [x20,1200] ldr w1, [x1,4] str w1, [x0] mov w0, 21321 movk w0, 0x5359, lsl 16 - ldr x1, [x20,1176] + ldr x1, [x20,1200] str w0, [x1,4] mov w1, w19 mov w0, 0 - ldr x2, [x2,144] - ldr x3, [x20,1176] + ldr x2, [x2,192] + ldr x3, [x20,1200] bl flash_prog_page_en cmn w0, #1 - ldrh w1, [x20,1186] + ldrh w1, [x20,1210] add w1, w1, 1 - strh w1, [x20,1186] - bne .L2157 + strh w1, [x20,1210] + bne .L2362 mov x0, x25 mov w1, w19 bl printk - b .L2154 -.L2157: - cbnz w26, .L2161 + b .L2359 +.L2362: + cbnz w26, .L2369 mov w26, 1 - b .L2154 -.L2161: + b .L2359 +.L2369: mov w0, 0 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -14168,320 +14949,377 @@ flash_info_flush: .global nand_flash_init .type nand_flash_init, %function nand_flash_init: - stp x29, x30, [sp, -64]! - mov w1, 2 + stp x29, x30, [sp, -80]! add x29, sp, 0 stp x19, x20, [sp,16] - adrp x19, .LANCHOR0 adrp x20, .LANCHOR2 + mov x19, x0 stp x21, x22, [sp,32] - add x21, x19, :lo12:.LANCHOR0 - mov w22, 0 stp x23, x24, [sp,48] - add x21, x21, 684 - mov w24, 44 - strb w1, [x21,-4] + ldr w0, [x20,#:lo12:.LANCHOR2] + stp x25, x26, [sp,64] + tbz x0, 12, .L2371 + adrp x2, .LANCHOR3 + adrp x0, .LC115 + add x2, x2, :lo12:.LANCHOR3 + add x0, x0, :lo12:.LC115 + mov w1, 2083 + add x2, x2, 520 + bl printk +.L2371: + mov x0, x19 + adrp x19, .LANCHOR0 + mov x21, 0 + mov w25, 2 bl nandc_init - add x0, x20, :lo12:.LANCHOR2 - add x0, x0, 368 - str x0, [x21,36] - mov x23, x21 -.L2168: - mov w0, w22 - mov x1, x21 + mov w26, 44 + add x0, x19, :lo12:.LANCHOR0 + add x1, x20, :lo12:.LANCHOR2 + add x22, x0, 732 + add x1, x1, 376 + mov x23, x0 + mov x24, x22 + str x1, [x0,88] +.L2377: + mov w0, w21 + mov x1, x22 bl flash_read_id - cbnz w22, .L2163 - ldrb w0, [x23] + add x0, x23, 728 + strb w25, [x21,x0] + cbnz x21, .L2372 + ldrb w0, [x24] sub w0, w0, #1 uxtb w0, w0 cmp w0, 253 - bls .L2164 -.L2166: - mov w0, -2 - b .L2201 -.L2164: - ldrb w0, [x23,1] + bls .L2373 +.L2375: + mov w22, -2 + b .L2419 +.L2373: + ldrb w0, [x24,1] cmp w0, 255 - beq .L2166 -.L2163: - ldrb w0, [x21] + beq .L2375 +.L2372: + ldrb w0, [x22] cmp w0, 181 - bne .L2167 - strb w24, [x21] -.L2167: - add w22, w22, 1 - add x21, x21, 8 - uxtb w22, w22 - cmp w22, 4 - bne .L2168 + bne .L2376 + strb w26, [x22] +.L2376: + add x21, x21, 1 + add x22, x22, 8 + cmp x21, 4 + bne .L2377 add x22, x20, :lo12:.LANCHOR2 add x23, x19, :lo12:.LANCHOR0 add x22, x22, 440 mov w21, 0 - add x23, x23, 684 -.L2171: + add x23, x23, 732 +.L2380: ldrb w2, [x22] add x0, x22, 1 mov x1, x23 bl flash_mem_cmp8 - cbnz w0, .L2169 + cbnz w0, .L2378 add x1, x20, :lo12:.LANCHOR2 ubfiz x21, x21, 5, 32 - add x22, x1, 440 - adds x22, x22, x21 - beq .L2166 - ldrb w3, [x22,22] + add x0, x1, 440 + adds x21, x0, x21 + beq .L2375 + ldrb w3, [x21,22] mov x0, 0 - b .L2173 -.L2169: + b .L2382 +.L2378: add w21, w21, 1 add x22, x22, 32 - cmp w21, 27 - bne .L2171 - b .L2166 -.L2173: + cmp w21, 30 + bne .L2380 + b .L2375 +.L2382: add x4, x1, x0, lsl 5 mov w2, w0 - ldrb w4, [x4,1304] + ldrb w4, [x4,1400] cmp w4, w3 - beq .L2172 + beq .L2381 add x0, x0, 1 cmp x0, 4 - bne .L2173 + bne .L2382 mov w2, w0 -.L2172: - add x23, x20, :lo12:.LANCHOR2 - adrp x21, .LANCHOR4 - add x1, x23, 1304 +.L2381: + add x22, x20, :lo12:.LANCHOR2 ubfiz x2, x2, 5, 32 - add x0, x21, :lo12:.LANCHOR4 + add x1, x22, 1400 + add x0, x19, :lo12:.LANCHOR0 add x1, x1, x2 - add x0, x0, 1088 + add x0, x0, 104 mov w2, 32 - add x23, x23, 368 + add x22, x22, 376 bl ftl_memcpy - mov x0, x23 - mov x1, x22 + mov x0, x22 + mov x1, x21 mov w2, 32 bl ftl_memcpy ldrb w0, [x19,#:lo12:.LANCHOR0] cmp w0, 8 - bhi .L2174 - ldrb w1, [x23,20] + bhi .L2383 + ldrb w1, [x22,20] cmp w1, 60 - bls .L2175 + bls .L2384 mov w1, 60 - strb w1, [x23,20] -.L2175: + strb w1, [x22,20] +.L2384: cmp w0, 8 - bne .L2174 + bne .L2383 add x0, x19, :lo12:.LANCHOR0 - ldrb w0, [x0,684] + ldrb w0, [x0,732] cmp w0, 44 - beq .L2218 -.L2174: - add x22, x21, :lo12:.LANCHOR4 + beq .L2444 +.L2383: + ldr w0, [x20,#:lo12:.LANCHOR2] + tbz x0, 12, .L2385 + adrp x2, .LANCHOR3 + adrp x0, .LC115 + add x2, x2, :lo12:.LANCHOR3 + add x0, x0, :lo12:.LC115 + mov w1, 2104 + add x2, x2, 520 + bl printk +.L2385: + adrp x21, .LANCHOR4 mov w0, 16384 - add x23, x19, :lo12:.LANCHOR0 + add x23, x21, :lo12:.LANCHOR4 + add x22, x19, :lo12:.LANCHOR0 + bl ftl_malloc add x24, x20, :lo12:.LANCHOR2 - bl ftl_malloc - str x0, [x22,1192] + str x0, [x23,1216] mov w0, 16384 bl ftl_malloc - str x0, [x22,1144] + str x0, [x23,1160] mov w0, 2048 bl ftl_malloc - str x0, [x23,144] + str x0, [x22,192] mov w0, 64 bl ftl_malloc - str x0, [x22,1200] + str x0, [x23,1224] mov w0, 64 bl ftl_malloc - str x0, [x22,1152] + str x0, [x23,1176] mov w0, 64 bl ftl_malloc - str x0, [x22,1176] - adrp x0, .LANCHOR5+448 - strb wzr, [x0,#:lo12:.LANCHOR5+448] + str x0, [x23,1200] + adrp x0, .LANCHOR5+512 + strb wzr, [x0,#:lo12:.LANCHOR5+512] bl flash_die_info_init - ldrb w0, [x24,386] + ldrb w0, [x24,394] bl flash_lsb_page_tbl_build - ldrb w0, [x24,388] + ldrb w0, [x24,396] bl nandc_bch_sel - str xzr, [x22,1168] - ldr x1, [x23,720] + str xzr, [x23,1192] + ldr x1, [x22,88] ldrh w0, [x1,16] - lsr w3, w0, 8 - ubfx x4, x0, 3, 1 - and w2, w3, 7 - strb w2, [x23,681] - adrp x2, .LANCHOR7+3216 - strb w4, [x2,#:lo12:.LANCHOR7+3216] + ubfx x2, x0, 8, 3 + strb w2, [x22,764] + adrp x2, .LANCHOR7+3281 + ubfx x3, x0, 3, 1 + strb w3, [x2,#:lo12:.LANCHOR7+3281] ubfx x2, x0, 4, 1 - strb w2, [x23,717] + strb w2, [x22,765] ubfx x2, x0, 12, 1 - strb w2, [x23,3192] + strb w2, [x22,3240] ubfx x2, x0, 13, 1 ubfx x0, x0, 14, 1 - strb w0, [x23,165] + strb w0, [x22,208] ldrb w0, [x1,28] mov w1, 60 - strb w1, [x22,1209] + strb w1, [x22,96] ldrb w1, [x19,#:lo12:.LANCHOR0] - strb w2, [x23,3268] - strb w0, [x23,164] + strb w2, [x22,3316] + strb w0, [x22,97] cmp w1, 9 - bne .L2176 + bne .L2386 mov w1, 70 - strb w1, [x22,1209] -.L2176: - add x20, x20, :lo12:.LANCHOR2 + strb w1, [x22,96] +.L2386: + add x2, x20, :lo12:.LANCHOR2 add x1, x21, :lo12:.LANCHOR4 - add x2, x19, :lo12:.LANCHOR0 - strb w0, [x1,1208] - ldrb w0, [x20,387] - strb w0, [x2,141] - ldrh w2, [x20,384] - tbz x2, 6, .L2178 + add x2, x2, 376 + add x3, x19, :lo12:.LANCHOR0 + strb w0, [x1,1232] + ldrb w0, [x2,19] + ldrh w2, [x2,16] + strb w0, [x3,189] + tbz x2, 6, .L2388 sub w2, w0, #17 uxtb w2, w2 cmp w2, 2 - bhi .L2179 + bhi .L2389 adrp x2, micron_read_retrial cmp w0, 19 add x2, x2, :lo12:micron_read_retrial - str x2, [x1,1168] - bne .L2214 + str x2, [x1,1192] + bne .L2440 mov w0, 15 - b .L2215 -.L2179: + b .L2441 +.L2389: sub w2, w0, #65 uxtb w2, w2 cmp w2, 1 - bls .L2195 + bls .L2409 cmp w0, 33 - bne .L2182 -.L2195: + bne .L2392 +.L2409: add x0, x21, :lo12:.LANCHOR4 adrp x1, toshiba_read_retrial add x1, x1, :lo12:toshiba_read_retrial mov w2, 4 - str x1, [x0,1168] + str x1, [x0,1192] add x1, x19, :lo12:.LANCHOR0 - strb w2, [x1,142] + strb w2, [x1,190] mov w1, 7 - strb w1, [x0,1160] - b .L2178 -.L2182: + strb w1, [x0,1184] + b .L2388 +.L2392: sub w2, w0, #67 uxtb w2, w2 cmp w2, 1 sub w2, w0, #34 - cset w4, ls + cset w3, ls uxtb w2, w2 cmp w2, 1 - bls .L2196 - cbz w4, .L2184 -.L2196: + bls .L2410 + cbz w3, .L2394 +.L2410: add x2, x21, :lo12:.LANCHOR4 adrp x1, toshiba_read_retrial add x1, x1, :lo12:toshiba_read_retrial cmp w0, 35 - str x1, [x2,1168] - beq .L2186 + str x1, [x2,1192] + beq .L2396 cmp w0, 68 - beq .L2186 + beq .L2396 mov w0, 7 - strb w0, [x2,1160] - b .L2187 -.L2186: + strb w0, [x2,1184] + b .L2397 +.L2396: add x0, x21, :lo12:.LANCHOR4 mov w1, 17 - strb w1, [x0,1160] -.L2187: + strb w1, [x0,1184] +.L2397: add x0, x19, :lo12:.LANCHOR0 mov w1, 4 - cbnz w4, .L2216 + cbnz w3, .L2442 mov w1, 5 -.L2216: - strb w1, [x0,142] - b .L2178 -.L2184: +.L2442: + strb w1, [x0,190] + b .L2388 +.L2394: sub w0, w0, #36 uxtb w0, w0 cmp w0, 1 - bhi .L2178 + bhi .L2388 adrp x0, toshiba_3d_read_retrial add x0, x0, :lo12:toshiba_3d_read_retrial - str x0, [x1,1168] -.L2214: + str x0, [x1,1192] +.L2440: mov w0, 7 -.L2215: - strb w0, [x1,1160] -.L2178: +.L2441: + strb w0, [x1,1184] +.L2388: + ldr w0, [x20,#:lo12:.LANCHOR2] + tbz x0, 12, .L2399 + adrp x2, .LANCHOR3 + adrp x0, .LC115 + add x2, x2, :lo12:.LANCHOR3 + add x0, x0, :lo12:.LC115 + mov w1, 2152 + add x2, x2, 520 + bl printk +.L2399: add x0, x19, :lo12:.LANCHOR0 - strb wzr, [x0,716] - tbz x3, 0, .L2189 + strb wzr, [x0,136] + ldrb w0, [x0,764] + tbz x0, 0, .L2400 mov w0, 4 bl nandc_set_if_mode mov w0, 1 bl flash_set_interface_mode mov w0, 1 - b .L2217 -.L2189: + b .L2443 +.L2400: mov w0, 4 -.L2217: +.L2443: bl nandc_set_if_mode bl flash_info_blk_init cmn w0, #1 - beq .L2201 + mov w22, w0 + bne .L2402 + ldr w0, [x20,#:lo12:.LANCHOR2] + tbz x0, 12, .L2419 + adrp x2, .LANCHOR3 + adrp x0, .LC115 + add x2, x2, :lo12:.LANCHOR3 + mov w1, 2172 + add x2, x2, 520 + add x0, x0, :lo12:.LC115 + bl printk + b .L2419 +.L2402: add x0, x19, :lo12:.LANCHOR0 - ldrb w0, [x0,141] + ldrb w0, [x0,189] sub w0, w0, #1 uxtb w0, w0 cmp w0, 6 - bhi .L2191 + bhi .L2403 add x0, x21, :lo12:.LANCHOR4 adrp x1, hynix_read_retrial add x1, x1, :lo12:hynix_read_retrial - str x1, [x0,1168] -.L2191: + str x1, [x0,1192] +.L2403: add x19, x19, :lo12:.LANCHOR0 - ldrb w0, [x19,681] - tbnz x0, 2, .L2192 -.L2193: - mov w0, 0 - b .L2201 -.L2192: - ldr x0, [x19,144] + ldrb w0, [x19,764] + tbz x0, 2, .L2405 + ldr x0, [x19,192] ldrb w0, [x0,19] - cbz w0, .L2193 + cbz w0, .L2405 add x21, x21, :lo12:.LANCHOR4 - ldrh w1, [x19,166] + ldrh w1, [x19,210] mov w0, 0 - ldrb w2, [x21,1184] + ldrb w2, [x21,1208] mul w1, w2, w1 bl flash_ddr_para_scan - ldrb w20, [x19,716] - cbnz w20, .L2193 - ldr x0, [x19,144] - strb w20, [x0,19] + ldrb w0, [x19,136] + cbnz w0, .L2405 + ldr x1, [x19,192] + strb w0, [x1,19] bl flash_info_flush - mov w0, w20 - b .L2201 -.L2218: +.L2405: + ldr w0, [x20,#:lo12:.LANCHOR2] + tbz x0, 12, .L2407 + adrp x2, .LANCHOR3 + adrp x0, .LC115 + add x2, x2, :lo12:.LANCHOR3 + add x0, x0, :lo12:.LC115 + mov w1, 2225 + add x2, x2, 520 + bl printk +.L2407: + bl nand_flash_print_info + mov w22, 0 + b .L2419 +.L2444: add x0, x20, :lo12:.LANCHOR2 - add x0, x0, 368 + add x0, x0, 376 ldrb w1, [x0,28] cmp w1, 3 - bne .L2174 + bne .L2383 strb wzr, [x0,28] - b .L2174 -.L2201: + b .L2383 +.L2419: + mov w0, w22 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] - ldp x29, x30, [sp], 64 + ldp x25, x26, [sp,64] + ldp x29, x30, [sp], 80 ret .size nand_flash_init, .-nand_flash_init .align 2 @@ -14491,42 +15329,42 @@ ftl_sysblk_dump: sub sp, sp, #144 stp x29, x30, [sp,48] add x29, sp, 48 - stp x23, x24, [sp,96] - uxth w24, w0 - mov w0, 1 - stp x21, x22, [sp,80] - stp x27, x28, [sp,128] - stp x19, x20, [sp,64] stp x25, x26, [sp,112] + uxth w25, w0 + mov w0, 1 + stp x19, x20, [sp,64] + stp x23, x24, [sp,96] + stp x27, x28, [sp,128] + stp x21, x22, [sp,80] bl buf_alloc - ldr x23, [x0,8] - mov w27, 0 - adrp x21, .LC119 - adrp x22, .LC126 - mov x26, x0 - mov w19, w27 + ldr x24, [x0,8] + mov w20, 0 + adrp x22, .LC166 + adrp x23, .LC173 + mov x27, x0 + mov w19, w20 adrp x28, .LANCHOR0 - add x21, x21, :lo12:.LC119 - add x22, x22, :lo12:.LC126 - add x23, x23, 704 -.L2220: + add x22, x22, :lo12:.LC166 + add x23, x23, :lo12:.LC173 + add x24, x24, 704 +.L2446: add x3, x28, :lo12:.LANCHOR0 - ldrh w1, [x3,3228] + ldrh w1, [x3,3276] cmp w1, w19 - bls .L2230 - ldrh w20, [x3,3270] - ldr x1, [x26,8] - ldr x2, [x26,24] - madd w20, w24, w20, w19 - ldrb w3, [x3,2776] - mov w0, w20 + bls .L2458 + ldrh w21, [x3,3318] + ldr x1, [x27,8] + ldr x2, [x27,24] + madd w21, w25, w21, w19 + ldrb w3, [x3,2816] + mov w0, w21 bl ftl_read_ppa_page - mov w25, w0 - ldr x7, [x26,8] - mov w1, w24 - ldr x2, [x26,24] - mov w3, w20 - mov w4, w25 + mov w26, w0 + ldr x7, [x27,8] + mov w1, w25 + ldr x2, [x27,24] + mov w3, w21 + mov w4, w26 ldr w0, [x7,12] str w0, [sp] ldr w0, [x2] @@ -14538,42 +15376,40 @@ ftl_sysblk_dump: ldr w0, [x2,12] mov w2, w19 str w0, [sp,32] - mov x0, x21 + mov x0, x22 ldr w5, [x7] ldr w6, [x7,4] ldr w7, [x7,8] bl printk - mov x0, x22 - mov x1, x23 + mov x0, x23 + mov x1, x24 mov w2, 4 mov w3, 32 bl rknand_print_hex - cmp w25, 512 - beq .L2226 - cmn w25, #1 - bne .L2221 -.L2226: - mov w27, 1 -.L2221: + cmp w26, 512 + beq .L2451 + cmn w26, #1 + bne .L2447 +.L2451: + mov w20, 1 +.L2447: add w19, w19, 1 uxth w19, w19 - b .L2220 -.L2230: - mov x0, x26 + b .L2446 +.L2458: + mov x0, x27 bl buf_free - cbz w27, .L2224 + cbz w20, .L2450 adrp x1, .LANCHOR3 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR3 add x0, x0, :lo12:.LC0 - add x1, x1, 424 - mov w2, 1204 + add x1, x1, 536 + mov w2, 1214 bl printk -.L2225: - b .L2225 -.L2224: +.L2450: sub sp, x29, #48 - mov w0, w27 + mov w0, w20 ldp x19, x20, [sp,64] ldp x21, x22, [sp,80] ldp x23, x24, [sp,96] @@ -14588,27 +15424,31 @@ ftl_sysblk_dump: .type dump_ftl_info, %function dump_ftl_info: stp x29, x30, [sp, -32]! - adrp x3, .LANCHOR5 - adrp x0, .LC127 + adrp x0, .LC174 add x29, sp, 0 - add x3, x3, :lo12:.LANCHOR5 - add x0, x0, :lo12:.LC127 str x19, [sp,16] adrp x19, .LANCHOR0 add x19, x19, :lo12:.LANCHOR0 - ldrb w1, [x3,768] - ldrb w2, [x3,769] - ldrh w3, [x3,770] + add x0, x0, :lo12:.LC174 + ldrb w1, [x19,2818] bl printk - ldr x2, [x19,2800] - adrp x0, .LC128 - add x0, x0, :lo12:.LC128 + adrp x3, .LANCHOR5 + adrp x0, .LC175 + add x3, x3, :lo12:.LANCHOR5 + add x0, x0, :lo12:.LC175 + ldrb w1, [x3,832] + ldrb w2, [x3,833] + ldrh w3, [x3,834] + bl printk + ldr x2, [x19,2848] + adrp x0, .LC176 + add x0, x0, :lo12:.LC176 ldrh w1, [x2,130] ldrh w2, [x2,140] bl printk ldr x1, [x19,80] - adrp x0, .LC129 - add x0, x0, :lo12:.LC129 + adrp x0, .LC177 + add x0, x0, :lo12:.LC177 add x5, x1, 16 ldrh w1, [x1,16] ldrh w2, [x5,2] @@ -14617,8 +15457,8 @@ dump_ftl_info: ldrh w5, [x5,10] bl printk ldr x1, [x19,80] - adrp x0, .LC130 - add x0, x0, :lo12:.LC130 + adrp x0, .LC178 + add x0, x0, :lo12:.LC178 add x5, x1, 48 ldrh w1, [x1,48] ldrh w2, [x5,2] @@ -14627,8 +15467,8 @@ dump_ftl_info: ldrh w5, [x5,10] bl printk ldr x1, [x19,80] - adrp x0, .LC131 - add x0, x0, :lo12:.LC131 + adrp x0, .LC179 + add x0, x0, :lo12:.LC179 add x5, x1, 80 ldrh w1, [x1,80] ldrh w4, [x5,6] @@ -14636,47 +15476,47 @@ dump_ftl_info: ldrb w3, [x5,5] ldrh w5, [x5,10] bl printk - ldrh w0, [x19,3228] + ldrh w0, [x19,3276] mov w2, 4 - ldrb w3, [x19,3196] - ldr x1, [x19,3792] + ldrb w3, [x19,3244] + ldr x1, [x19,3840] mul w3, w0, w3 - adrp x0, .LC132 - add x0, x0, :lo12:.LC132 + adrp x0, .LC180 + add x0, x0, :lo12:.LC180 lsl w3, w3, 1 bl rknand_print_hex ldr x1, [x19,72] - adrp x0, .LC133 + adrp x0, .LC181 ldrh w3, [x19,56] - add x0, x0, :lo12:.LC133 + add x0, x0, :lo12:.LC181 mov w2, 2 bl rknand_print_hex - ldr x1, [x19,2800] - adrp x0, .LC126 - add x0, x0, :lo12:.LC126 + ldr x3, [x19,2848] + adrp x0, .LC173 + add x0, x0, :lo12:.LC173 mov w2, 4 - add x1, x1, 704 - mov w3, 32 + add x1, x3, 704 + ldrh w3, [x3,698] bl rknand_print_hex ldr x1, [x19,64] - adrp x0, .LC134 + adrp x0, .LC182 ldrh w3, [x19,56] - add x0, x0, :lo12:.LC134 + add x0, x0, :lo12:.LC182 mov w2, 4 bl rknand_print_hex - adrp x0, .LC135 - add x1, x19, 3280 - add x0, x0, :lo12:.LC135 + adrp x0, .LC183 + add x1, x19, 3328 + add x0, x0, :lo12:.LC183 mov w2, 2 mov w3, 256 bl rknand_print_hex - ldrh w0, [x19,3228] + ldrh w0, [x19,3276] mov w2, 2 - ldrb w3, [x19,3196] - ldr x1, [x19,3800] + ldrb w3, [x19,3244] + ldr x1, [x19,3848] mul w3, w0, w3 - adrp x0, .LC136 - add x0, x0, :lo12:.LC136 + adrp x0, .LC184 + add x0, x0, :lo12:.LC184 lsl w3, w3, 1 bl rknand_print_hex ldr x19, [sp,16] @@ -14693,8 +15533,8 @@ pm_ppa_update_check: mov w7, 1 stp x29, x30, [sp, -16]! add x29, sp, 0 - ldrh w4, [x5,3266] - ldrb w3, [x5,3264] + ldrh w4, [x5,3314] + ldrb w3, [x5,3312] sub w6, w6, w4 lsr w4, w2, w4 lsl w6, w7, w6 @@ -14707,19 +15547,19 @@ pm_ppa_update_check: ubfx x3, x3, 5, 3 cmp w3, 7 cset w4, eq - cbnz w4, .L2236 + cbnz w4, .L2464 cmp w3, w7 - bne .L2233 -.L2236: + bne .L2461 +.L2464: mov w3, w2 mov w2, w1 mov x1, x0 - adrp x0, .LC137 - add x0, x0, :lo12:.LC137 + adrp x0, .LC185 + add x0, x0, :lo12:.LC185 bl printk bl dump_ftl_info mov w4, -1 -.L2233: +.L2461: mov w0, w4 ldp x29, x30, [sp], 16 ret @@ -14728,133 +15568,134 @@ pm_ppa_update_check: .type load_l2p_region, %function load_l2p_region: stp x29, x30, [sp, -64]! - uxth w1, w1 add x29, sp, 0 + stp x23, x24, [sp,48] + uxth w23, w1 stp x21, x22, [sp,32] stp x19, x20, [sp,16] - stp x23, x24, [sp,48] - cmp w1, 31 + cmp w23, 31 uxth w21, w0 - bls .L2239 + bls .L2467 adrp x1, .LANCHOR3 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR3 add x0, x0, :lo12:.LC0 - add x1, x1, 440 - mov w2, 30 + add x1, x1, 552 + mov w2, 31 bl printk -.L2240: - b .L2240 -.L2239: +.L2467: adrp x20, .LANCHOR0 adrp x19, .LANCHOR7 add x20, x20, :lo12:.LANCHOR0 - ldr x0, [x20,2800] + ldr x0, [x20,2848] ldrh w2, [x0,698] cmp w21, w2 - bls .L2241 - adrp x0, .LC138 + bls .L2468 + adrp x0, .LC186 mov w1, w21 - add x0, x0, :lo12:.LC138 + add x0, x0, :lo12:.LC186 add x19, x19, :lo12:.LANCHOR7 bl printk mov x0, 0 - ldrh w2, [x19,3218] + ldrh w2, [x19,3282] mov w1, 255 ldr x0, [x0,8] bl ftl_memset - ldr x0, [x20,2800] + ldr x0, [x20,2848] ldrh w0, [x0,698] cmp w0, w21 - bcs .L2245 + bcs .L2470 adrp x1, .LANCHOR3 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR3 add x0, x0, :lo12:.LC0 - add x1, x1, 440 - mov w2, 34 - bl printk -.L2243: - b .L2243 -.L2241: + add x1, x1, 552 + mov w2, 35 + b .L2474 +.L2468: add x0, x0, x21, sxtw 2 - sbfiz x1, x1, 4, 32 + sbfiz x23, x23, 4, 32 ldr w22, [x0,704] - add x0, x20, 3824 - add x23, x0, x1 - strh w21, [x0,x1] - strh wzr, [x23,2] - cbnz w22, .L2244 + add x0, x20, 3872 + add x24, x0, x23 + strh w21, [x0,x23] + strh wzr, [x24,2] + cbnz w22, .L2471 + adrp x0, .LC187 + mov w1, w21 + mov w2, w22 add x19, x19, :lo12:.LANCHOR7 - ldr x0, [x23,8] + add x0, x0, :lo12:.LC187 + bl printk + ldr x0, [x24,8] mov w1, 255 - ldrh w2, [x19,3218] + ldrh w2, [x19,3282] bl ftl_memset - b .L2245 -.L2244: - add x24, x19, :lo12:.LANCHOR7 - ldrb w3, [x20,2776] - ldr x1, [x23,8] + b .L2470 +.L2471: + add x23, x19, :lo12:.LANCHOR7 + ldrb w3, [x20,2816] + ldr x1, [x24,8] mov w0, w22 - ldr x2, [x24,3208] + ldr x2, [x23,3272] bl ftl_read_ppa_page mov w3, w0 - ldr x0, [x24,3208] + ldr x0, [x23,3272] ldr w2, [x0] cmp w2, w21 - beq .L2246 - adrp x0, .LC139 + beq .L2472 + adrp x0, .LC188 mov w4, w22 mov w1, w21 - add x0, x0, :lo12:.LC139 + add x0, x0, :lo12:.LC188 bl printk - ldr x3, [x20,2800] - adrp x0, .LC140 - add x0, x0, :lo12:.LC140 + ldr x3, [x20,2848] + adrp x0, .LC189 + add x0, x0, :lo12:.LC189 mov w2, 4 add x1, x3, 704 ldrh w3, [x3,698] bl rknand_print_hex - ldr x1, [x23,8] - adrp x0, .LC141 - add x0, x0, :lo12:.LC141 + ldrb w3, [x20,2816] + adrp x0, .LC190 + ldr x1, [x24,8] + add x0, x0, :lo12:.LC190 + mov w2, 4 + lsl w3, w3, 7 + bl rknand_print_hex + ldr x1, [x23,3272] + adrp x0, .LC191 + add x0, x0, :lo12:.LC191 mov w2, 4 mov w3, 16 bl rknand_print_hex - ldr x1, [x24,3208] - adrp x0, .LC142 - add x0, x0, :lo12:.LC142 - mov w2, 4 - mov w3, 16 - bl rknand_print_hex - ldrh w0, [x20,3266] + ldrh w0, [x20,3314] mov w1, 21 mov w2, 1 sub w1, w1, w0 lsr w22, w22, w0 lsl w1, w2, w1 - ldrb w0, [x20,3264] + ldrb w0, [x20,3312] sub w1, w1, #1 and w22, w1, w22 mov x1, 0 udiv w0, w22, w0 bl ftl_sblk_dump -.L2246: +.L2472: add x19, x19, :lo12:.LANCHOR7 - ldr x0, [x19,3208] + ldr x0, [x19,3272] ldr w0, [x0] cmp w0, w21 - beq .L2245 + beq .L2470 adrp x1, .LANCHOR3 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR3 add x0, x0, :lo12:.LC0 - add x1, x1, 440 - mov w2, 55 + add x1, x1, 552 + mov w2, 57 +.L2474: bl printk -.L2247: - b .L2247 -.L2245: +.L2470: mov w0, 0 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -14872,68 +15713,72 @@ pm_gc: adrp x23, .LANCHOR0 str x25, [sp,64] stp x19, x20, [sp,16] - add x19, x23, :lo12:.LANCHOR0 - adrp x20, .LANCHOR4 + add x20, x23, :lo12:.LANCHOR0 + adrp x19, .LANCHOR4 stp x21, x22, [sp,32] - add x20, x20, :lo12:.LANCHOR4 - ldr x0, [x19,2800] + add x19, x19, :lo12:.LANCHOR4 + ldr x0, [x20,2848] ldrh w1, [x0,688] - ldrh w0, [x20,1084] + ldrh w0, [x19,1132] sub w0, w0, #1 cmp w1, w0 - blt .L2250 + blt .L2477 bl pm_free_sblk - ldr x2, [x19,2800] - ldrh w1, [x20,1084] + ldr x2, [x20,2848] + ldrh w1, [x19,1132] ldrh w3, [x2,688] sub w1, w1, #1 cmp w3, w1 - blt .L2250 + blt .L2477 add x0, x2, x0, uxth 1 ldrh w21, [x0,416] - mov w25, 65535 - cmp w21, w25 - bne .L2252 + mov w0, 65535 + cmp w21, w0 + bne .L2479 adrp x1, .LANCHOR3 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR3 + mov w2, 129 + add x1, x1, 568 add x0, x0, :lo12:.LC0 - add x1, x1, 456 - mov w2, 127 bl printk -.L2253: - b .L2253 -.L2252: + bl pm_free_sblk + ldr x1, [x20,2848] + add x0, x1, x0, uxth 1 + ldrh w21, [x0,416] +.L2479: bl pm_select_ram_region uxth x20, w0 - add x19, x19, 3824 - lsl x0, x20, 4 - add x24, x19, x0 + add x0, x23, :lo12:.LANCHOR0 + lsl x1, x20, 4 + add x0, x0, 3872 mov x22, x20 - ldrh w0, [x19,x0] - cmp w0, w25 - beq .L2254 - ldr x1, [x24,8] - cbz x1, .L2254 - ldrsh w2, [x24,2] - tbz w2, #31, .L2254 + add x19, x0, x1 + ldrh w0, [x0,x1] + mov w1, 65535 + cmp w0, w1 + beq .L2480 + ldr x1, [x19,8] + cbz x1, .L2480 + ldrsh w2, [x19,2] + tbz w2, #31, .L2480 bl pm_write_page - ldrh w0, [x24,2] + ldrh w0, [x19,2] and w0, w0, 32767 - strh w0, [x24,2] -.L2254: + strh w0, [x19,2] +.L2480: add x23, x23, :lo12:.LANCHOR0 mov w19, 0 - add x0, x23, 3824 + add x0, x23, 3872 mov w24, 21 mov w25, 1 add x20, x0, x20, lsl 4 -.L2255: - ldr x0, [x23,2800] +.L2481: + ldr x0, [x23,2848] ldrh w1, [x0,698] cmp w1, w19 - bls .L2261 - ldrh w1, [x23,3266] + bls .L2487 + ldrh w1, [x23,3314] add x0, x0, x19, sxtw 2 ldr w0, [x0,704] lsr w0, w0, w1 @@ -14941,23 +15786,25 @@ pm_gc: lsl w1, w25, w1 sub w1, w1, #1 and w1, w0, w1 - ldrb w0, [x23,3264] + ldrb w0, [x23,3312] udiv w1, w1, w0 cmp w21, w1, uxth - bne .L2256 + bne .L2482 mov w1, w22 mov w0, w19 bl load_l2p_region ldr x1, [x20,8] mov w0, w19 bl pm_write_page -.L2256: + mov w0, -1 + strh w0, [x20] +.L2482: add w19, w19, 1 uxth w19, w19 - b .L2255 -.L2261: + b .L2481 +.L2487: bl pm_free_sblk -.L2250: +.L2477: mov w0, 0 ldr x25, [sp,64] ldp x19, x20, [sp,16] @@ -14976,7 +15823,7 @@ pm_flush_id: stp x19, x20, [sp,16] adrp x19, .LANCHOR0 add x19, x19, :lo12:.LANCHOR0 - add x1, x19, 3824 + add x1, x19, 3872 add x20, x1, x0 ldrh w0, [x1,x0] ldr x1, [x20,8] @@ -14984,11 +15831,11 @@ pm_flush_id: ldrh w0, [x20,2] and w0, w0, 32767 strh w0, [x20,2] - ldr w0, [x19,3816] - cbz w0, .L2263 + ldr w0, [x19,3864] + cbz w0, .L2489 bl pm_gc - str wzr, [x19,3816] -.L2263: + str wzr, [x19,3864] +.L2489: mov w0, 0 ldp x19, x20, [sp,16] ldp x29, x30, [sp], 32 @@ -15004,17 +15851,17 @@ pm_flush: adrp x20, .LANCHOR0 mov x19, 0 add x20, x20, :lo12:.LANCHOR0 - add x20, x20, 3824 -.L2269: + add x20, x20, 3872 +.L2495: add x1, x20, x19, lsl 4 uxth w0, w19 ldrsh w1, [x1,2] - tbz w1, #31, .L2268 + tbz w1, #31, .L2494 bl pm_flush_id -.L2268: +.L2494: add x19, x19, 1 cmp x19, 32 - bne .L2269 + bne .L2495 mov w0, 0 ldp x19, x20, [sp,16] ldp x29, x30, [sp], 32 @@ -15052,80 +15899,81 @@ zftl_deinit: pm_init: stp x29, x30, [sp, -96]! add x29, sp, 0 + stp x21, x22, [sp,32] + adrp x21, .LANCHOR7 stp x19, x20, [sp,16] + add x22, x21, :lo12:.LANCHOR7 adrp x19, .LANCHOR0 add x20, x19, :lo12:.LANCHOR0 stp x23, x24, [sp,48] - mov w23, w0 - mov w0, 64 - stp x21, x22, [sp,32] stp x25, x26, [sp,64] stp x27, x28, [sp,80] - str wzr, [x20,3816] + mov w23, w0 + mov w0, 1 + strb w0, [x22,3280] + mov w0, 64 + str wzr, [x20,3864] + add x20, x20, 3872 bl ftl_malloc - adrp x1, .LANCHOR7 - add x20, x20, 3824 - add x2, x1, :lo12:.LANCHOR7 - add x22, x20, 512 - mov x21, x1 mov w24, -1 - str x0, [x2,3208] -.L2275: + str x0, [x22,3272] + add x22, x20, 512 +.L2501: strh w24, [x20] strh wzr, [x20,2] - cbz w23, .L2274 + cbz w23, .L2500 add x0, x19, :lo12:.LANCHOR0 - ldrb w0, [x0,2776] + ldrb w0, [x0,2816] lsl w0, w0, 9 bl ftl_malloc str x0, [x20,8] -.L2274: +.L2500: add x20, x20, 16 cmp x20, x22 - bne .L2275 + bne .L2501 add x20, x19, :lo12:.LANCHOR0 - add x1, x21, :lo12:.LANCHOR7 + add x21, x21, :lo12:.LANCHOR7 mov w4, 4 - ldr x25, [x1,3208] - ldr x1, [x20,2800] - ldr x23, [x20,3832] - mov x3, x25 + ldr x1, [x20,2848] + ldr x25, [x21,3272] + ldr x23, [x20,3880] ldrb w0, [x1,694] - mov x2, x23 + mov x3, x25 ldrh w1, [x1,692] + mov x2, x23 bl flash_get_last_written_page sxth w21, w0 - ldr x1, [x20,2800] + ldr x1, [x20,2848] mov w24, w21 ldrh w2, [x1,696] cmp w2, w21 - bgt .L2276 - adrp x0, .LC143 + bgt .L2502 + adrp x0, .LC192 ldrh w1, [x1,692] mov w3, w21 - add x0, x0, :lo12:.LC143 - adrp x26, .LC144 + add x0, x0, :lo12:.LC192 + adrp x26, .LC193 add w21, w21, 1 bl printk - add x26, x26, :lo12:.LC144 - ldr x0, [x20,2800] + add x26, x26, :lo12:.LC193 + ldr x0, [x20,2848] ldrsh w20, [x0,696] -.L2277: +.L2503: cmp w20, w21 - bge .L2290 + bge .L2516 add x27, x19, :lo12:.LANCHOR0 mov x2, x23 mov x3, x25 - ldr x0, [x27,2800] - ldrh w22, [x27,3270] - ldrb w4, [x27,2776] + ldr x0, [x27,2848] + ldrh w22, [x27,3318] + ldrb w4, [x27,2816] ldrh w1, [x0,692] ldrb w0, [x0,694] madd w22, w1, w22, w20 mov w1, w22 bl flash_read_page_en mov w28, w0 - ldr x3, [x27,2800] + ldr x3, [x27,2848] mov x0, x26 mov w2, w22 ldr w1, [x3,48] @@ -15135,36 +15983,36 @@ pm_init: ldr w1, [x25] bl printk cmp w28, 512 - beq .L2278 + beq .L2504 cmn w28, #1 - beq .L2278 - ldr x1, [x27,2800] + beq .L2504 + ldr x1, [x27,2848] ldr w0, [x25] ldrh w2, [x1,698] cmp w0, w2 - bcs .L2278 + bcs .L2504 add x0, x1, x0, uxtw 2 str w22, [x0,704] -.L2278: +.L2504: add w20, w20, 1 sxth w20, w20 - b .L2277 -.L2290: + b .L2503 +.L2516: add x19, x19, :lo12:.LANCHOR0 - adrp x0, .LANCHOR6-192 + adrp x0, .LANCHOR6-127 mov w1, 1 add w24, w24, 1 - strb w1, [x0,#:lo12:.LANCHOR6-192] - ldr x0, [x19,2800] + strb w1, [x0,#:lo12:.LANCHOR6-127] + ldr x0, [x19,2848] strh w24, [x0,696] bl pm_free_sblk - ldr x1, [x19,3832] + ldr x1, [x19,3880] mov w0, -1 bl pm_write_page - ldr x1, [x19,3832] + ldr x1, [x19,3880] mov w0, -1 bl pm_write_page -.L2276: +.L2502: bl pm_free_sblk bl pm_gc mov w0, 0 @@ -15192,9 +16040,9 @@ pm_log2phys: stp x23, x24, [sp,48] mov w23, w2 mov x19, 0 - ldrb w4, [x3,2776] - ldr w2, [x3,2784] - add x3, x3, 3824 + ldrb w4, [x3,2816] + ldr w2, [x3,2824] + add x3, x3, 3872 lsl w20, w4, 7 lsl w24, w4, 7 cmp w0, w2 @@ -15202,85 +16050,85 @@ pm_log2phys: uxth w25, w20 msub w24, w25, w24, w0 uxth x24, w24 - bcc .L2303 - adrp x0, .LC145 + bcc .L2529 + adrp x0, .LC194 mov w1, w5 - add x0, x0, :lo12:.LC145 + add x0, x0, :lo12:.LC194 bl printk mov w0, -1 - b .L2293 -.L2307: + b .L2519 +.L2533: ldrh w0, [x3] cmp w0, w25 - beq .L2295 -.L2294: + beq .L2521 +.L2520: add w19, w19, 1 add x3, x3, 16 uxth x19, w19 cmp w19, 32 - beq .L2306 -.L2303: + beq .L2532 +.L2529: ldr x0, [x3,8] - cbnz x0, .L2307 - b .L2294 -.L2306: + cbnz x0, .L2533 + b .L2520 +.L2532: bl pm_select_ram_region uxth x19, w0 add x2, x21, :lo12:.LANCHOR0 sbfiz x3, x19, 4, 32 - add x2, x2, 3824 + add x2, x2, 3872 mov w1, w0 add x4, x2, x3 ldrh w3, [x2,x3] mov w2, 65535 cmp w3, w2 - bne .L2308 -.L2299: - adrp x0, .LANCHOR7+3220 - strb w19, [x0,#:lo12:.LANCHOR7+3220] + bne .L2534 +.L2525: + adrp x0, .LANCHOR7+3284 + strb w19, [x0,#:lo12:.LANCHOR7+3284] mov w0, w25 bl load_l2p_region -.L2295: - cbnz w23, .L2296 +.L2521: + cbnz w23, .L2522 add x0, x21, :lo12:.LANCHOR0 add x0, x0, x19, lsl 4 - ldr x0, [x0,3832] + ldr x0, [x0,3880] ldr w0, [x0,x24,lsl 2] str w0, [x22] - b .L2297 -.L2296: + b .L2523 +.L2522: add x0, x21, :lo12:.LANCHOR0 ldr w2, [x22] - add x0, x0, 3824 + add x0, x0, 3872 add x0, x0, x19, lsl 4 ldr x1, [x0,8] str w2, [x1,x24,lsl 2] ldrh w1, [x0,2] orr w1, w1, -32768 strh w1, [x0,2] - adrp x0, .LANCHOR4-16 - strb w20, [x0,#:lo12:.LANCHOR4-16] -.L2297: + adrp x0, .LANCHOR4+32 + strb w20, [x0,#:lo12:.LANCHOR4+32] +.L2523: add x21, x21, :lo12:.LANCHOR0 mov w2, 32767 - add x21, x21, 3824 + add x21, x21, 3872 mov w0, 0 add x19, x21, x19, lsl 4 ldrh w1, [x19,2] and w3, w1, 32767 cmp w3, w2 - beq .L2293 + beq .L2519 add w1, w1, 1 strh w1, [x19,2] - b .L2293 -.L2308: + b .L2519 +.L2534: ldrsh w2, [x4,2] - tbz w2, #31, .L2299 + tbz w2, #31, .L2525 str x1, [x29,88] bl pm_flush_id ldr x1, [x29,88] - b .L2299 -.L2293: + b .L2525 +.L2519: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -15296,54 +16144,55 @@ ftl_read_ahead: add x29, sp, 0 stp x19, x20, [sp,16] adrp x20, .LANCHOR0 - stp x21, x22, [sp,32] - add x22, x20, :lo12:.LANCHOR0 stp x23, x24, [sp,48] - ldr w0, [x22,2820] + add x23, x20, :lo12:.LANCHOR0 + stp x21, x22, [sp,32] + mov w21, 0 + ldr w0, [x23,2868] cmn w0, #1 - beq .L2319 - mov w0, 0 + beq .L2536 + mov w0, w21 bl buf_alloc mov x19, x0 - mov w1, -1 - cbz x0, .L2320 - ldr w21, [x22,2820] - str w21, [x0,36] - str w1, [x22,2820] - ldr x23, [x0,8] - ldr x22, [x0,24] - mov w0, w21 + mov w0, -1 + cbz x19, .L2545 + ldr w22, [x23,2868] + str w22, [x19,36] + str w0, [x23,2868] + mov w0, w22 + ldr x24, [x19,8] + ldr x23, [x19,24] bl lpa_hash_get_ppa str w0, [x29,76] cmn w0, #1 - bne .L2312 - mov w0, w21 + bne .L2538 + mov w0, w22 add x1, x29, 76 - mov w2, 0 + mov w2, w21 bl pm_log2phys -.L2312: +.L2538: ldr w1, [x29,76] str w1, [x19,40] str w1, [x19,44] cmn w1, #1 - bne .L2313 + bne .L2539 add x20, x20, :lo12:.LANCHOR0 - mov x0, x23 + mov x0, x24 mov w1, 0 - ldrb w2, [x20,2776] + ldrb w2, [x20,2816] lsl w2, w2, 9 bl ftl_memset ldrb w0, [x19,2] orr w0, w0, 8 strb w0, [x19,2] - b .L2319 -.L2313: + b .L2550 +.L2539: mov x0, x19 mov w1, 1 bl sblk_read_page - ldr w23, [x19,52] - cmn w23, #1 - bne .L2314 + ldr w24, [x19,52] + cmn w24, #1 + bne .L2540 ldrb w0, [x19,2] add x20, x20, :lo12:.LANCHOR0 and w0, w0, -9 @@ -15352,22 +16201,22 @@ ftl_read_ahead: ldr w0, [x1,552] add w0, w0, 1 str w0, [x1,552] - b .L2315 -.L2314: - cmp w23, 256 - bne .L2315 + b .L2541 +.L2540: + cmp w24, 256 + bne .L2541 add x20, x20, :lo12:.LANCHOR0 mov w5, 21 - mov w24, 1 + mov w21, 1 ldr w4, [x29,76] ldr w2, [x19,36] - adrp x0, .LC146 - ldrh w3, [x20,3266] - add x0, x0, :lo12:.LC146 - ldrb w20, [x20,3264] + adrp x0, .LC195 + ldrh w3, [x20,3314] + add x0, x0, :lo12:.LC195 + ldrb w20, [x20,3312] sub w5, w5, w3 lsr w3, w4, w3 - lsl w5, w24, w5 + lsl w5, w21, w5 sub w5, w5, #1 and w3, w5, w3 udiv w20, w3, w20 @@ -15375,45 +16224,44 @@ ftl_read_ahead: uxth w1, w20 bl printk mov w0, w20 - mov w1, w24 + mov w1, w21 mov w2, 0 bl gc_add_sblk -.L2315: - ldr w5, [x22,4] - cmp w5, w21 - beq .L2316 - adrp x0, .LC147 +.L2541: + ldr w5, [x23,4] + cmp w5, w22 + beq .L2542 + adrp x0, .LC196 ldrb w1, [x19,1] ldr w3, [x29,76] - add x0, x0, :lo12:.LC147 - ldr w4, [x22] - mov w2, w21 - ldr w6, [x22,8] - ldr w7, [x22,12] + add x0, x0, :lo12:.LC196 + ldr w4, [x23] + mov w2, w22 + ldr w6, [x23,8] + ldr w7, [x23,12] bl printk -.L2316: - ldr w0, [x22,4] - cmp w0, w21 - cset w0, ne - cbnz w0, .L2322 - cmn w23, #1 - bne .L2310 -.L2322: +.L2542: + ldr w0, [x23,4] + cmp w0, w22 + cset w21, ne + cbnz w21, .L2547 + cmn w24, #1 + bne .L2536 +.L2547: adrp x1, .LANCHOR3 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR3 add x0, x0, :lo12:.LC0 - add x1, x1, 464 - mov w2, 822 + add x1, x1, 576 + mov w2, 874 bl printk -.L2318: - b .L2318 -.L2320: - mov w0, w1 - b .L2310 -.L2319: - mov w0, 0 -.L2310: +.L2550: + mov w21, 0 + b .L2536 +.L2545: + mov w21, w0 +.L2536: + mov w0, w21 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -15435,63 +16283,63 @@ gc_recovery: stp x25, x26, [sp,96] stp x27, x28, [sp,112] adrp x22, .LANCHOR4 - strb wzr, [x24,3193] + strb wzr, [x24,3241] add x0, x22, :lo12:.LANCHOR4 ldr x20, [x24,80] add x21, x20, 80 - strb wzr, [x0,1050] + strb wzr, [x0,1098] bl gc_init ldrh w1, [x20,80] mov w0, 65535 str x22, [x29,152] cmp w1, w0 ldr x0, [x24,80] - beq .L2325 + beq .L2552 mov w1, -1 strh w1, [x0,130] mov w0, 1 bl buf_alloc mov x23, x0 ldrb w0, [x21,9] - ldrh w1, [x24,3270] + ldrh w1, [x24,3318] sub w0, w0, #1 add x0, x21, x0, sxtw 1 ldrh w0, [x0,16] mul w0, w0, w1 - ldrb w1, [x24,3177] + ldrb w1, [x24,3225] str w0, [x29,168] cmp w1, 3 - bne .L2326 - ldrh w1, [x24,3228] + bne .L2553 + ldrh w1, [x24,3276] sub w1, w1, #1 add w0, w1, w0 orr w0, w0, 50331648 - b .L2372 -.L2326: + b .L2599 +.L2553: cmp w1, 2 - bne .L2327 - ldrh w1, [x24,3228] + bne .L2554 + ldrh w1, [x24,3276] add w0, w0, w1, lsl 1 sub w0, w0, #1 orr w0, w0, 33554432 -.L2372: +.L2599: str w0, [x23,40] -.L2327: +.L2554: mov x0, x23 mov w1, 1 bl sblk_read_page ldr w0, [x23,52] cmp w0, 512 - beq .L2328 + beq .L2555 cmn w0, #1 - beq .L2328 + beq .L2555 ldr x0, [x23,24] ldr w1, [x0] mov w0, 15555 movk w0, 0xf55f, lsl 16 cmp w1, w0 - beq .L2329 -.L2328: + beq .L2556 +.L2555: mov x0, x23 bl buf_free ldr x7, [x23,24] @@ -15502,8 +16350,8 @@ gc_recovery: str w0, [sp,8] ldr w0, [x7,12] str w0, [sp,16] - adrp x0, .LC148 - add x0, x0, :lo12:.LC148 + adrp x0, .LC197 + add x0, x0, :lo12:.LC197 ldr w3, [x6] ldr w4, [x6,4] ldr w5, [x6,8] @@ -15512,64 +16360,64 @@ gc_recovery: ldr w6, [x6,12] ldr w7, [x7] bl printk - b .L2375 -.L2329: + b .L2602 +.L2556: add x24, x19, :lo12:.LANCHOR0 ldr x0, [x29,152] ldr x1, [x23,8] add x25, x0, :lo12:.LANCHOR4 - ldrb w2, [x24,3196] - ldrh w0, [x24,3194] + ldrb w2, [x24,3244] + ldrh w0, [x24,3242] mul w2, w0, w2 - ldr x0, [x25,1056] + ldr x0, [x25,1104] lsl w2, w2, 2 bl ftl_memcpy - ldrh w0, [x24,3194] - ldrb w2, [x24,3196] + ldrh w0, [x24,3242] + ldrb w2, [x24,3244] ldr x1, [x23,8] mul w2, w0, w2 add x1, x1, x2, sxtw 2 - ldr x0, [x25,1064] + ldr x0, [x25,1112] lsl w2, w2, 2 bl ftl_memcpy - ldrb w27, [x24,3177] - ldrh w26, [x24,3228] + ldrb w27, [x24,3225] + ldrh w26, [x24,3276] cmp w27, 2 - bne .L2331 + bne .L2558 lsl w26, w26, 1 mov w27, 1 -.L2331: +.L2558: mov w22, 0 - adrp x24, .LC149 - add x0, x24, :lo12:.LC149 + adrp x24, .LC198 + add x0, x24, :lo12:.LC198 mov w25, w22 str x0, [x29,128] - b .L2332 -.L2377: - ldr x0, [x0,1064] + b .L2559 +.L2604: + ldr x0, [x0,1112] ldr w1, [x0,x12] ldr w0, [x7,8] cmp w1, w0 - bne .L2336 -.L2361: + bne .L2563 +.L2588: add w25, w25, 1 add w28, w28, 1 -.L2340: +.L2567: cmp w28, w27 - bhi .L2376 + bhi .L2603 ldr x0, [x29,144] add x1, x19, :lo12:.LANCHOR0 add x0, x0, 8 - ldrh w2, [x1,3270] - ldrb w1, [x1,3177] + ldrh w2, [x1,3318] + ldrb w1, [x1,3225] ldrh w0, [x21,x0,lsl 1] cmp w1, 3 mul w0, w0, w2 str w0, [x29,168] - bne .L2333 + bne .L2560 add w0, w0, w22 orr w0, w0, w28, lsl 24 -.L2373: +.L2600: str w0, [x23,40] mov w1, 1 mov x0, x23 @@ -15579,17 +16427,17 @@ gc_recovery: ldr x7, [x23,24] add x0, x0, :lo12:.LANCHOR4 ldr w6, [x7,4] - ldr x1, [x0,1056] + ldr x1, [x0,1104] ldr w3, [x1,x12] cmp w3, w6 - beq .L2377 -.L2336: + beq .L2604 +.L2563: ldr x0, [x29,152] str x12, [x29,120] add x13, x0, :lo12:.LANCHOR4 ldr w0, [x7,12] str x13, [x29,112] - ldr x4, [x13,1064] + ldr x4, [x13,1112] str w0, [sp] ldr x0, [x29,128] ldr w4, [x4,x12] @@ -15600,13 +16448,13 @@ gc_recovery: bl printk ldr x13, [x29,112] ldr x12, [x29,120] - ldr x0, [x13,1056] + ldr x0, [x13,1104] ldr w0, [x0,x12] cmn w0, #1 - beq .L2361 + beq .L2588 mov x0, x23 bl buf_free -.L2375: +.L2602: add x0, x19, :lo12:.LANCHOR0 ldrh w2, [x20,80] mov w28, 0 @@ -15615,38 +16463,38 @@ gc_recovery: ldr x0, [x0,80] ldrh w1, [x20,80] strh w1, [x0,130] - b .L2330 -.L2339: + b .L2557 +.L2566: add w22, w22, 1 -.L2332: +.L2559: cmp w22, w26 - beq .L2341 + beq .L2568 sub w0, w22, #1 mov w24, 0 str w0, [x29,140] -.L2342: +.L2569: ldrb w0, [x21,9] cmp w24, w0 - bge .L2339 + bge .L2566 sxtw x0, w24 mov w28, 1 str x0, [x29,144] - b .L2340 -.L2333: + b .L2567 +.L2560: cmp w1, 2 - bne .L2335 + bne .L2562 ldr w1, [x29,140] add w0, w0, w1 add w0, w0, w28 orr w0, w0, 33554432 - b .L2373 -.L2335: + b .L2600 +.L2562: add w0, w0, w22 - b .L2373 -.L2376: + b .L2600 +.L2603: add w24, w24, 1 - b .L2342 -.L2341: + b .L2569 +.L2568: mov x0, x23 mov w28, 0 mov w23, w28 @@ -15656,79 +16504,79 @@ gc_recovery: ldrb w1, [x21,9] ldrh w3, [x20,80] ldr x2, [x0,72] - ldrh w0, [x0,3194] + ldrh w0, [x0,3242] mul w0, w1, w0 strh w0, [x2,x3,lsl 1] - adrp x0, .LC150 - add x0, x0, :lo12:.LC150 + adrp x0, .LC199 + add x0, x0, :lo12:.LC199 str x0, [x29,104] -.L2343: +.L2570: cmp w23, w26 - beq .L2356 + beq .L2583 sub w0, w23, #1 mov w25, 0 str w0, [x29,112] -.L2357: +.L2584: ldrb w0, [x21,9] cmp w25, w0 - bge .L2354 + bge .L2581 sxtw x0, w25 mov w24, 1 str x0, [x29,120] -.L2355: +.L2582: cmp w24, w27 - bhi .L2378 + bhi .L2605 ldr x1, [x29,152] ldr w0, [x29,144] add x1, x1, :lo12:.LANCHOR4 sbfiz x0, x0, 2, 32 - ldr x2, [x1,1056] + ldr x2, [x1,1104] ldr w22, [x2,x0] cmn w22, #1 - beq .L2344 - ldr x1, [x1,1064] + beq .L2571 + ldr x1, [x1,1112] ldr w0, [x1,x0] str w0, [x29,140] mov w0, w22 bl lpa_hash_get_ppa str w0, [x29,172] cmn w0, #1 - bne .L2345 + bne .L2572 mov w0, w22 add x1, x29, 172 mov w2, 0 bl pm_log2phys -.L2345: +.L2572: ldr x0, [x29,120] add x0, x0, 8 ldrh w3, [x21,x0,lsl 1] add x0, x19, :lo12:.LANCHOR0 - ldrh w1, [x0,3270] - ldrb w0, [x0,3177] + ldrh w1, [x0,3318] + ldrb w0, [x0,3225] cmp w0, 3 mul w3, w3, w1 - bne .L2346 + bne .L2573 add w3, w3, w23 orr w3, w3, w24, lsl 24 - b .L2374 -.L2346: + b .L2601 +.L2573: cmp w0, 2 - bne .L2348 + bne .L2575 ldr w0, [x29,112] add w3, w3, w0 add w3, w3, w24 orr w3, w3, 33554432 - b .L2374 -.L2348: + b .L2601 +.L2575: add w3, w3, w23 -.L2374: +.L2601: add x0, x19, :lo12:.LANCHOR0 str w3, [x29,168] ldr w1, [x29,140] mov w4, 21 mov w2, 1 - ldrh w3, [x0,3266] - ldrb w0, [x0,3264] + ldrh w3, [x0,3314] + ldrb w0, [x0,3312] lsr w1, w1, w3 sub w3, w4, w3 lsl w3, w2, w3 @@ -15740,15 +16588,15 @@ gc_recovery: str w0, [x29,128] ldr w0, [x29,172] cmp w0, w1 - bne .L2349 + bne .L2576 ldr x0, [x29,104] mov w1, w22 ldr w2, [x29,168] bl pm_ppa_update_check - cbz w0, .L2350 -.L2371: - b .L2371 -.L2350: + cbz w0, .L2577 +.L2598: + b .L2598 +.L2577: mov w0, w22 add x1, x29, 168 mov w2, 1 @@ -15756,12 +16604,12 @@ gc_recovery: bl pm_log2phys ldrh w0, [x29,128] bl ftl_vpn_decrement - b .L2352 -.L2349: + b .L2579 +.L2576: ldr w1, [x29,168] cmp w0, w1 csinc w28, w28, w28, ne -.L2352: +.L2579: ldr w0, [x29,144] add x2, x19, :lo12:.LANCHOR0 add w0, w0, 1 @@ -15771,31 +16619,31 @@ gc_recovery: add x1, x1, x0, lsl 2 ldrb w1, [x1,2] ands w1, w1, 224 - bne .L2344 + bne .L2571 lsl x0, x0, 1 ldr x2, [x2,72] ldrh w3, [x2,x0] - cbz w3, .L2344 + cbz w3, .L2571 strh w1, [x2,x0] -.L2344: +.L2571: add w24, w24, 1 - b .L2355 -.L2378: + b .L2582 +.L2605: add w25, w25, 1 - b .L2357 -.L2354: + b .L2584 +.L2581: add w23, w23, 1 - b .L2343 -.L2356: + b .L2570 +.L2583: add x0, x19, :lo12:.LANCHOR0 ldrh w1, [x20,80] ldr x0, [x0,72] strh w28, [x0,x1,lsl 1] -.L2330: +.L2557: ldrh w1, [x20,80] - adrp x0, .LC151 + adrp x0, .LC200 mov w2, w28 - add x0, x0, :lo12:.LC151 + add x0, x0, :lo12:.LC200 bl printk mov w0, -1 strh w0, [x20,80] @@ -15806,41 +16654,41 @@ gc_recovery: ldr x0, [x0,80] ldrh w0, [x0,130] cmp w0, w1 - beq .L2358 + beq .L2585 bl ftl_free_sblk -.L2358: +.L2585: add x19, x19, :lo12:.LANCHOR0 mov w0, -1 - ldr x1, [x19,2800] + ldr x1, [x19,2848] strh w0, [x1,126] ldr x1, [x19,80] strh w0, [x1,130] mov w0, 0 bl ftl_info_flush - b .L2324 -.L2325: + b .L2551 +.L2552: ldrh w0, [x0,130] cmp w0, w1 - beq .L2324 - ldr x1, [x24,2800] + beq .L2551 + ldr x1, [x24,2848] ldrh w1, [x1,126] cmp w1, w0 - bne .L2360 + bne .L2587 bl pm_flush ldr x0, [x24,80] ldrh w0, [x0,130] bl ftl_free_sblk - ldr x0, [x24,2800] + ldr x0, [x24,2848] mov w1, -1 strh w1, [x0,126] mov w0, 0 bl ftl_info_flush -.L2360: +.L2587: add x19, x19, :lo12:.LANCHOR0 mov w1, -1 ldr x0, [x19,80] strh w1, [x0,130] -.L2324: +.L2551: sub sp, x29, #32 ldp x19, x20, [sp,48] ldp x21, x22, [sp,64] @@ -15855,185 +16703,278 @@ gc_recovery: .global zftl_init .type zftl_init, %function zftl_init: - stp x29, x30, [sp, -48]! - adrp x1, .LANCHOR5+449 + stp x29, x30, [sp, -64]! + adrp x1, .LANCHOR5+513 mov w0, -1 add x29, sp, 0 stp x19, x20, [sp,16] adrp x19, .LANCHOR0 - str x21, [sp,32] + strb w0, [x1,#:lo12:.LANCHOR5+513] add x20, x19, :lo12:.LANCHOR0 - strb w0, [x1,#:lo12:.LANCHOR5+449] - adrp x1, .LC9 - add x1, x1, :lo12:.LC9 - strb w0, [x20,2818] + adrp x1, .LC2 + stp x21, x22, [sp,32] + stp x23, x24, [sp,48] + strb w0, [x20,2866] mov w0, -1 - str w0, [x20,2820] - adrp x0, .LC8 - add x0, x0, :lo12:.LC8 - strb wzr, [x20,2819] - strb wzr, [x20,3812] + str w0, [x20,2868] + adrp x0, .LC1 + add x1, x1, :lo12:.LC2 + add x0, x0, :lo12:.LC1 + strb wzr, [x20,2840] + adrp x21, .LANCHOR7 + strb wzr, [x20,2841] bl printk - adrp x5, .LANCHOR2 - ldrb w4, [x20,152] - add x5, x5, :lo12:.LANCHOR2 - adrp x8, .LANCHOR7 - strb w4, [x20,3272] - add x3, x8, :lo12:.LANCHOR7 - ldrb w2, [x5,381] - ldrb w6, [x5,380] - ldrh w1, [x5,378] - mul w4, w2, w4 - ldrb w0, [x5,377] - ldrh w7, [x5,382] - sdiv w9, w1, w6 - ldrh w5, [x20,166] - strb w2, [x20,3264] - uxtb w4, w4 - strb w6, [x20,3177] + adrp x8, .LANCHOR2 + ldrb w4, [x20,98] + add x2, x8, :lo12:.LANCHOR2 + strb w4, [x20,3320] + ldrh w5, [x20,210] + strh w5, [x20,3318] + ldrb w3, [x2,389] + strb w3, [x20,3312] + ldrb w6, [x2,388] + mul w3, w3, w4 + ldrh w1, [x2,386] + ldrb w0, [x2,385] + uxtb w4, w3 + add x3, x21, :lo12:.LANCHOR7 + ldrh w7, [x2,390] ubfiz w11, w0, 9, 7 - strb w0, [x20,2776] + sdiv w9, w1, w6 + strb w6, [x20,3225] + strb w0, [x20,2816] mov w2, 0 - strh w1, [x20,3194] - strh w9, [x20,3228] - strb w4, [x20,3196] + strh w1, [x20,3242] + strh w9, [x20,3276] + strb w4, [x20,3244] strh w7, [x20,56] - strh w11, [x3,3218] - mov w3, 1 - strh w5, [x20,3270] mov x20, x8 -.L2380: + strh w11, [x3,3282] + mov w3, 1 +.L2607: cmp w3, w5 - bhi .L2400 + bhi .L2671 add w2, w2, 1 lsl w3, w3, 1 uxth w2, w2 - b .L2380 -.L2400: - add x8, x19, :lo12:.LANCHOR0 - sub w2, w2, #1 + b .L2607 +.L2671: mul w3, w0, w1 - add x10, x20, :lo12:.LANCHOR7 - strh w2, [x8,3266] - mov w2, 57344 - movk w2, 0x1c, lsl 16 + mov w1, 57344 + add x8, x19, :lo12:.LANCHOR0 + movk w1, 0x1c, lsl 16 + sub w2, w2, #1 mul w5, w3, w7 - mul w2, w4, w2 - lsr w1, w5, 21 + mul w1, w4, w1 + strh w2, [x8,3314] + lsr w2, w5, 21 mul w5, w5, w4 - mul w2, w2, w1 - str w2, [x8,4] - add w2, w2, 24576 - str w5, [x8,2780] - adrp x5, .LANCHOR4 - str w2, [x10,3224] - udiv w1, w2, w0 + mul w1, w1, w2 + str w5, [x8,2820] + add x10, x21, :lo12:.LANCHOR7 + add w5, w1, 24576 + adrp x22, .LANCHOR4 + mul w3, w3, w4 + udiv w2, w5, w0 sub w0, w11, #1 - str w1, [x8,2784] - add w0, w0, w1, lsl 2 - mul w1, w9, w4 + str w2, [x8,2824] + sub w3, w3, #1 + str w1, [x8,4] + str w5, [x10,3288] + add w0, w0, w2, lsl 2 + mul w2, w9, w4 udiv w0, w0, w11 - add x11, x5, :lo12:.LANCHOR4 - strh w0, [x10,3202] + add x11, x22, :lo12:.LANCHOR4 + strh w0, [x10,3266] ubfiz w0, w0, 4, 16 - sdiv w0, w0, w1 - mul w1, w3, w4 - strh w0, [x11,1084] - sub w1, w1, #1 + sdiv w0, w0, w2 + strh w0, [x11,1132] add w0, w7, w7, lsl 1 asr w0, w0, 2 - strh w0, [x10,3228] - udiv w2, w2, w1 + strh w0, [x10,3292] + udiv w3, w5, w3 lsr w0, w7, 4 cmp w0, 79 - strh w0, [x8,3232] - add w2, w2, 8 - strh w2, [x8,3234] - mov x0, x5 - bhi .L2382 - mov w1, 80 - strh w1, [x8,3232] -.L2382: - add x1, x20, :lo12:.LANCHOR7 + strh w0, [x8,3280] + add w3, w3, 8 + strh w3, [x8,3282] + bhi .L2609 + mov w0, 80 + strh w0, [x8,3280] +.L2609: + add x0, x21, :lo12:.LANCHOR7 mov w2, 4000 cmp w6, 2 - strh w2, [x1,3230] + strh w2, [x0,3294] mov w2, 50 - strh w2, [x1,3232] - add x1, x0, :lo12:.LANCHOR4 + strh w2, [x0,3296] + add x0, x22, :lo12:.LANCHOR4 mov w2, 1024 - strh w2, [x1,1080] + strh w2, [x0,1128] mov w2, 64 - strh w2, [x1,1082] - beq .L2383 + strh w2, [x0,1130] + beq .L2610 + add x0, x19, :lo12:.LANCHOR0 + ldrb w0, [x0,3240] + cbz w0, .L2611 +.L2610: + add x2, x21, :lo12:.LANCHOR7 + mov w0, 150 + mov w3, 128 + strh w0, [x2,3296] + add x0, x22, :lo12:.LANCHOR4 + strh w3, [x0,1130] + add x3, x19, :lo12:.LANCHOR0 + ldrb w3, [x3,97] + cbnz w3, .L2611 + mov w3, 600 + strh w3, [x2,3294] + mov w2, 512 + strh w2, [x0,1128] +.L2611: + ldr w0, [x20,#:lo12:.LANCHOR2] + tbz x0, 12, .L2613 + adrp x0, .LC201 + add x0, x0, :lo12:.LC201 + bl printk +.L2613: + ldr w0, [x20,#:lo12:.LANCHOR2] + tbz x0, 12, .L2614 add x1, x19, :lo12:.LANCHOR0 - ldrb w1, [x1,3192] - cbz w1, .L2384 -.L2383: - add x1, x20, :lo12:.LANCHOR7 - add x0, x0, :lo12:.LANCHOR4 - mov w2, 150 - strh w2, [x1,3232] - mov w2, 128 - strh w2, [x0,1082] - add x2, x19, :lo12:.LANCHOR0 - ldrb w2, [x2,164] - cbnz w2, .L2384 - mov w2, 600 - strh w2, [x1,3230] - mov w1, 512 - strh w1, [x0,1080] -.L2384: - add x19, x19, :lo12:.LANCHOR0 + adrp x0, .LC202 + add x0, x0, :lo12:.LC202 + ldr w1, [x1,2820] + bl printk +.L2614: + ldr w0, [x20,#:lo12:.LANCHOR2] + tbz x0, 12, .L2615 + add x1, x19, :lo12:.LANCHOR0 + adrp x0, .LC203 + add x0, x0, :lo12:.LC203 + ldr w1, [x1,2824] + bl printk +.L2615: + ldr w0, [x20,#:lo12:.LANCHOR2] + tbz x0, 12, .L2616 + add x1, x21, :lo12:.LANCHOR7 + adrp x0, .LC204 + add x0, x0, :lo12:.LC204 + ldr w1, [x1,3288] + bl printk +.L2616: + ldr w0, [x20,#:lo12:.LANCHOR2] + tbz x0, 12, .L2617 + add x1, x21, :lo12:.LANCHOR7 + adrp x0, .LC205 + add x0, x0, :lo12:.LC205 + ldrh w1, [x1,3266] + bl printk +.L2617: + ldr w0, [x20,#:lo12:.LANCHOR2] + tbz x0, 12, .L2618 + add x1, x21, :lo12:.LANCHOR7 + adrp x0, .LC206 + add x0, x0, :lo12:.LC206 + ldrh w1, [x1,3282] + bl printk +.L2618: + ldr w0, [x20,#:lo12:.LANCHOR2] + tbz x0, 12, .L2619 + add x1, x22, :lo12:.LANCHOR4 + adrp x0, .LC207 + add x0, x0, :lo12:.LC207 + ldrh w1, [x1,1132] + bl printk +.L2619: + ldr w0, [x20,#:lo12:.LANCHOR2] + tbz x0, 12, .L2620 + add x1, x19, :lo12:.LANCHOR0 + adrp x0, .LC208 + add x0, x0, :lo12:.LC208 + ldrh w1, [x1,3280] + bl printk +.L2620: + ldr w0, [x20,#:lo12:.LANCHOR2] + tbz x0, 12, .L2621 + add x1, x19, :lo12:.LANCHOR0 + adrp x0, .LC209 + add x0, x0, :lo12:.LC209 + ldrh w1, [x1,3282] + bl printk +.L2621: + add x22, x19, :lo12:.LANCHOR0 bl buf_init mov w0, 6 - adrp x21, .LANCHOR6 - add x21, x21, :lo12:.LANCHOR6 - add x20, x20, :lo12:.LANCHOR7 - ldrh w1, [x19,56] + adrp x23, .LANCHOR6 + ldrh w1, [x22,56] mul w0, w1, w0 bl ftl_malloc - str x0, [x19,8] - ldrb w1, [x19,3196] - ldrh w0, [x19,3228] + str x0, [x22,8] + ldrb w1, [x22,3244] + ldrh w0, [x22,3276] mul w0, w0, w1 lsl w0, w0, 2 bl ftl_malloc - str x0, [x19,3800] - ldrb w1, [x19,3196] - sub x3, x21, #128 - ldrh w0, [x19,3228] - str x3, [x19,3792] - mul w0, w0, w1 - lsl w2, w0, 1 - add x1, x3, x2, sxtw 2 - str x1, [x19,72] - ldrh w1, [x19,56] - add w0, w1, w0, lsl 2 - add w2, w2, w1, lsr 1 - add x2, x3, x2, sxtw 2 - lsl w0, w0, 1 - str x2, [x19,80] - ldrh w2, [x20,3218] - add w0, w0, 612 - cmp w0, w2 - bhi .L2387 - ldrh w0, [x20,3202] - lsl w0, w0, 2 - add w1, w0, w1, lsl 2 - add w1, w1, 704 - cmp w1, w2 - bls .L2386 -.L2387: -.L2388: - b .L2388 -.L2386: + str x0, [x22,3848] + ldrb w1, [x22,3244] + add x2, x23, :lo12:.LANCHOR6 + ldrh w0, [x22,3276] + sub x2, x2, #64 + str x2, [x22,3840] + mul w1, w0, w1 + ldrh w0, [x22,56] + lsl w1, w1, 1 + add x3, x2, x1, sxtw 2 + str x3, [x22,72] + add w1, w1, w0, lsr 1 + ldr w0, [x20,#:lo12:.LANCHOR2] + add x1, x2, x1, sxtw 2 + str x1, [x22,80] + tbz x0, 12, .L2622 + adrp x0, .LC210 + add x0, x0, :lo12:.LC210 + bl printk +.L2622: + add x2, x19, :lo12:.LANCHOR0 + add x3, x21, :lo12:.LANCHOR7 + ldrh w0, [x2,3276] + ldrb w22, [x2,3244] + ldrh w1, [x2,56] + ldrh w24, [x3,3266] + mul w22, w0, w22 + ldr w0, [x20,#:lo12:.LANCHOR2] + lsl w24, w24, 2 + add w24, w24, w1, lsl 2 + add w22, w1, w22, lsl 2 + add w24, w24, 704 + lsl w22, w22, 1 + add w22, w22, 612 + tbz x0, 12, .L2623 + adrp x0, .LC211 + ldrh w3, [x3,3282] + add x0, x0, :lo12:.LC211 + mov w1, w22 + mov w2, w24 + bl printk +.L2623: + add x21, x21, :lo12:.LANCHOR7 + ldrh w0, [x21,3282] + cmp w22, w0 + bhi .L2625 + cmp w24, w0 + bls .L2624 +.L2625: +.L2626: + b .L2626 +.L2624: bl sblk_init bl ftl_info_blk_init cmn w0, #1 - beq .L2389 + beq .L2627 bl ftl_ext_info_init + add x19, x19, :lo12:.LANCHOR0 mov w0, 1 + add x23, x23, :lo12:.LANCHOR6 bl pm_init bl lpa_rebuild_hash ldr x0, [x19,80] @@ -16044,7 +16985,7 @@ zftl_init: add x0, x1, 48 add x1, x1, 16 bl ftl_open_sblk_recovery - ldr x1, [x19,2800] + ldr x1, [x19,2848] ldr w0, [x1,8] add w0, w0, 16 str w0, [x1,8] @@ -16061,22 +17002,23 @@ zftl_init: bl pm_flush mov w0, 1 bl ftl_total_vpn_update - ldrb w0, [x21,-192] - cbz w0, .L2390 - ldr x1, [x19,2800] + ldrb w0, [x23,-127] + cbz w0, .L2628 + ldr x1, [x19,2848] ldr w0, [x1,68] add w0, w0, 1 str w0, [x1,68] -.L2390: +.L2628: bl ftl_ext_info_flush mov w0, 0 bl ftl_info_flush bl print_ftl_debug_info mov w0, 0 -.L2389: +.L2627: ldp x19, x20, [sp,16] - ldr x21, [sp,32] - ldp x29, x30, [sp], 48 + ldp x21, x22, [sp,32] + ldp x23, x24, [sp,48] + ldp x29, x30, [sp], 64 ret .size zftl_init, .-zftl_init .align 2 @@ -16091,35 +17033,35 @@ rk_ftl_init: ldr x0, [x0,#:lo12:jiffies] add x19, x20, :lo12:.LANCHOR4 str x21, [sp,32] - str x0, [x19,1120] + str x0, [x19,1136] mov w0, 136 bl ftl_malloc - str x0, [x19,1128] - cbnz x0, .L2402 -.L2404: + str x0, [x19,1144] + cbnz x0, .L2673 +.L2675: mov w0, -1 - b .L2403 -.L2402: + b .L2674 +.L2673: adrp x21, .LANCHOR7 mov w0, 2048 add x21, x21, :lo12:.LANCHOR7 bl ftl_malloc - str xzr, [x19,1136] - add x1, x21, 3248 - str x0, [x21,3240] - add x0, x19, 1136 - str xzr, [x21,3248] + str xzr, [x19,1152] + add x1, x21, 3312 + str x0, [x21,3304] + add x0, x19, 1152 + str xzr, [x21,3312] bl rknand_get_reg_addr - ldr x0, [x19,1136] - cbz x0, .L2404 + ldr x0, [x19,1152] + cbz x0, .L2675 bl rk_nandc_irq_init mov w1, 0 - ldr x0, [x21,3240] + ldr x0, [x21,3304] mov w2, w1 mov w3, 2048 bl flash_sram_load_store bl rknand_flash_cs_init - ldr x0, [x19,1128] + ldr x0, [x19,1144] adrp x1, zftl_deinit add x1, x1, :lo12:zftl_deinit str x1, [x0,80] @@ -16168,13 +17110,15 @@ rk_ftl_init: adrp x1, zftl_discard add x1, x1, :lo12:zftl_discard str x1, [x0,56] - ldr x0, [x19,1136] + ldr x0, [x19,1152] bl nand_flash_init - cbnz w0, .L2405 + cbnz w0, .L2676 bl zftl_init - b .L2412 -.L2405: - ldr x0, [x19,1128] + mov w19, w0 + bl zftl_proc_debug_init + b .L2677 +.L2676: + ldr x0, [x19,1144] adrp x1, ftl_deinit add x1, x1, :lo12:ftl_deinit str x1, [x0,80] @@ -16223,14 +17167,14 @@ rk_ftl_init: adrp x1, ftl_discard add x1, x1, :lo12:ftl_discard str x1, [x0,56] - ldr x0, [x19,1136] + ldr x0, [x19,1152] bl FlashInit mov w19, w0 adrp x0, .LANCHOR2 adrp x1, gNandParaInfo add x0, x0, :lo12:.LANCHOR2 add x1, x1, :lo12:gNandParaInfo - add x0, x0, 368 + add x0, x0, 376 mov w2, 32 bl ftl_memcpy adrp x0, g_nandc_version_data @@ -16238,27 +17182,26 @@ rk_ftl_init: mov w0, 12336 movk w0, 0x5638, lsl 16 cmp w1, w0 - bne .L2407 + bne .L2678 adrp x0, gFlashSlcMode ldrb w0, [x0,#:lo12:gFlashSlcMode] - cbnz w0, .L2408 -.L2407: + cbnz w0, .L2679 +.L2678: add x20, x20, :lo12:.LANCHOR4 - adrp x0, .LANCHOR0+164 - strb wzr, [x20,1208] - strb wzr, [x0,#:lo12:.LANCHOR0+164] -.L2408: - cbnz w19, .L2406 + adrp x0, .LANCHOR0+97 + strb wzr, [x20,1232] + strb wzr, [x0,#:lo12:.LANCHOR0+97] +.L2679: + cbnz w19, .L2677 bl FtlInit -.L2412: mov w19, w0 -.L2406: - adrp x0, .LC152 +.L2677: + adrp x0, .LC212 mov w1, w19 - add x0, x0, :lo12:.LC152 + add x0, x0, :lo12:.LC212 bl printk mov w0, w19 -.L2403: +.L2674: ldp x19, x20, [sp,16] ldr x21, [sp,32] ldp x29, x30, [sp], 48 @@ -16272,120 +17215,118 @@ gc_update_l2p_map_new: add x29, sp, 0 stp x19, x20, [sp,16] adrp x19, .LANCHOR0 - adrp x20, .LANCHOR2 add x0, x19, :lo12:.LANCHOR0 - stp x27, x28, [sp,80] stp x21, x22, [sp,32] + stp x27, x28, [sp,80] stp x23, x24, [sp,48] stp x25, x26, [sp,64] - ldr x24, [x0,80] - ldrh w1, [x0,3194] - add x28, x24, 80 + adrp x21, .LANCHOR2 + ldr x20, [x0,80] + ldrh w1, [x0,3242] + add x28, x20, 80 ldrb w0, [x28,9] mul w0, w1, w0 str w0, [x29,140] bl timer_get_time - add x0, x20, :lo12:.LANCHOR2 - ldr w0, [x0,400] - tbz x0, 8, .L2414 - adrp x0, .LC153 - ldrh w1, [x24,80] - add x0, x0, :lo12:.LC153 + ldr w0, [x21,#:lo12:.LANCHOR2] + tbz x0, 8, .L2684 + adrp x0, .LC213 + ldrh w1, [x20,80] + add x0, x0, :lo12:.LC213 bl printk -.L2414: +.L2684: add x0, x19, :lo12:.LANCHOR0 - ldrh w1, [x24,80] + ldrh w1, [x20,80] ldr w2, [x29,140] - mov w23, 0 - mov w21, w23 + mov w22, 0 + mov w23, w22 ldr x0, [x0,72] sub w2, w2, #1 strh w2, [x0,x1,lsl 1] - adrp x0, .LC156 - add x0, x0, :lo12:.LC156 + adrp x0, .LC216 + add x0, x0, :lo12:.LC216 str x0, [x29,120] - adrp x0, .LC155 - add x0, x0, :lo12:.LC155 + adrp x0, .LC215 + add x0, x0, :lo12:.LC215 str x0, [x29,112] - adrp x0, .LC154 - add x0, x0, :lo12:.LC154 + adrp x0, .LC214 + add x0, x0, :lo12:.LC214 str x0, [x29,104] -.L2415: +.L2685: ldr w0, [x29,140] - cmp w21, w0 - beq .L2450 - adrp x22, .LANCHOR4 - str x22, [x29,128] - add x0, x22, :lo12:.LANCHOR4 - ldr x0, [x0,1056] - ldr w2, [x0,w21,sxtw 2] + cmp w23, w0 + beq .L2719 + adrp x24, .LANCHOR4 + str x24, [x29,128] + add x0, x24, :lo12:.LANCHOR4 + ldr x0, [x0,1104] + ldr w2, [x0,w23,sxtw 2] cmn w2, #1 - beq .L2416 + beq .L2686 add x0, x19, :lo12:.LANCHOR0 - ldrb w0, [x0,2776] + ldrb w0, [x0,2816] lsl w0, w0, 7 udiv w0, w2, w0 and w0, w0, 65535 str w0, [x29,136] - add x0, x20, :lo12:.LANCHOR2 - ldr w0, [x0,400] - tbz x0, 8, .L2417 + ldr w0, [x21,#:lo12:.LANCHOR2] + tbz x0, 8, .L2687 ldr x0, [x29,104] - mov w3, w21 + mov w3, w23 ldr w1, [x29,136] bl printk -.L2417: - mov w25, w21 -.L2423: +.L2687: + mov w25, w23 +.L2693: ldr x0, [x29,128] sbfiz x26, x25, 2, 32 add x1, x0, :lo12:.LANCHOR4 - ldr x0, [x1,1056] - ldr w22, [x0,x26] - cmn w22, #1 - beq .L2418 + ldr x0, [x1,1104] + ldr w24, [x0,x26] + cmn w24, #1 + beq .L2688 add x0, x19, :lo12:.LANCHOR0 ldr w2, [x29,136] - ldrb w0, [x0,2776] + ldrb w0, [x0,2816] lsl w0, w0, 7 - udiv w0, w22, w0 + udiv w0, w24, w0 cmp w2, w0, uxth - bne .L2418 - ldr x0, [x1,1064] + bne .L2688 + ldr x0, [x1,1112] ldr w27, [x0,x26] - mov w0, w22 + mov w0, w24 bl lpa_hash_get_ppa str w0, [x29,156] cmn w0, #1 - bne .L2419 - mov w0, w22 + bne .L2689 + mov w0, w24 add x1, x29, 156 mov w2, 0 bl pm_log2phys -.L2419: +.L2689: ldr w3, [x29,156] cmp w3, w27 - bne .L2420 + bne .L2690 ldr x0, [x29,128] add x1, x29, 152 mov w2, 1 - add w23, w23, 1 + add w22, w22, 1 add x0, x0, :lo12:.LANCHOR4 - ldr x0, [x0,1072] + ldr x0, [x0,1120] ldr w0, [x0,x26] str w0, [x29,152] - mov w0, w22 + mov w0, w24 bl pm_log2phys add x1, x19, :lo12:.LANCHOR0 mov w2, 21 mov w0, 1 - ldrh w3, [x1,3266] + ldrh w3, [x1,3314] sub w2, w2, w3 lsr w3, w27, w3 lsl w2, w0, w2 sub w2, w2, #1 and w3, w2, w3 - ldrb w2, [x1,3264] + ldrb w2, [x1,3312] udiv w2, w3, w2 uxth w2, w2 str x2, [x29,96] @@ -16394,74 +17335,73 @@ gc_update_l2p_map_new: ldrh w0, [x28] ldr x2, [x29,96] cmp w0, w2 - bne .L2421 - add x0, x20, :lo12:.LANCHOR2 - ldr w0, [x0,400] - tbz x0, 8, .L2421 + bne .L2691 + ldr w0, [x21,#:lo12:.LANCHOR2] + tbz x0, 8, .L2691 ldr x0, [x29,112] - mov w1, w22 + mov w1, w24 ldr w3, [x29,156] mov w2, w27 bl printk - b .L2421 -.L2420: - add x0, x20, :lo12:.LANCHOR2 - ldr w0, [x0,400] - tbz x0, 8, .L2422 + b .L2691 +.L2690: + ldr w0, [x21,#:lo12:.LANCHOR2] + tbz x0, 8, .L2692 ldr x0, [x29,120] - mov w1, w22 + mov w1, w24 mov w2, w27 bl printk -.L2422: +.L2692: ldrh w0, [x28] bl ftl_vpn_decrement -.L2421: +.L2691: ldr x0, [x29,128] mov w1, -1 add x0, x0, :lo12:.LANCHOR4 - ldr x0, [x0,1056] + ldr x0, [x0,1104] str w1, [x0,x26] bl timer_get_time -.L2418: +.L2688: ldr w0, [x29,140] add w25, w25, 1 cmp w25, w0 - bne .L2423 -.L2416: - add w21, w21, 1 - b .L2415 -.L2450: - add x20, x20, :lo12:.LANCHOR2 - ldr w0, [x20,400] - tbz x0, 8, .L2425 + bne .L2693 +.L2686: + add w23, w23, 1 + b .L2685 +.L2719: + ldr w0, [x21,#:lo12:.LANCHOR2] + tbz x0, 8, .L2695 add x0, x19, :lo12:.LANCHOR0 - ldrh w3, [x24,80] + ldrh w3, [x20,80] ldr x1, [x0,80] ldr x2, [x0,72] - adrp x0, .LC157 - add x0, x0, :lo12:.LC157 + adrp x0, .LC217 + add x0, x0, :lo12:.LC217 ldrh w1, [x1,80] ldrh w2, [x2,x3,lsl 1] - mov w3, w23 + mov w3, w22 bl printk -.L2425: - add x19, x19, :lo12:.LANCHOR0 - ldrh w0, [x24,80] - ubfiz x1, x0, 1, 16 - ldr x2, [x19,72] - ldrh w1, [x2,x1] - cmp w1, w23 - beq .L2426 +.L2695: + add x0, x19, :lo12:.LANCHOR0 + ldrh w1, [x20,80] + ldr x0, [x0,72] + ldrh w0, [x0,x1,lsl 1] + cmp w0, w22 + beq .L2696 adrp x1, .LANCHOR3 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR3 add x0, x0, :lo12:.LC0 - add x1, x1, 480 + add x1, x1, 592 mov w2, 463 bl printk -.L2427: - b .L2427 -.L2426: +.L2696: + add x19, x19, :lo12:.LANCHOR0 + ldrh w1, [x20,80] + ldr x0, [x19,72] + strh w22, [x0,x1,lsl 1] + ldrh w0, [x20,80] bl zftl_insert_data_list ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -16484,83 +17424,83 @@ gc_scan_src_blk_one_page: str x23, [sp,48] add x3, x19, :lo12:.LANCHOR0 mov w5, w4 - add x2, x3, 2840 + add x2, x3, 2888 stp x21, x22, [sp,32] ldrb w0, [x2,4] add x1, x2, x0, sxtw 1 - ldrb w7, [x3,3196] + ldrb w7, [x3,3244] ldrh w1, [x1,40] ldrh w3, [x2,2] -.L2452: +.L2721: cmp w1, w6 - bne .L2494 + bne .L2763 add w0, w0, 1 uxtb w0, w0 cmp w0, w7 - bne .L2453 + bne .L2722 add w3, w3, 1 mov w4, 1 mov w0, 0 uxth w3, w3 -.L2453: +.L2722: add x1, x2, x0, sxtw 1 mov w5, 1 ldrh w1, [x1,40] - b .L2452 -.L2494: - cbz w5, .L2455 + b .L2721 +.L2763: + cbz w5, .L2724 add x2, x19, :lo12:.LANCHOR0 - strb w0, [x2,2844] -.L2455: - cbz w4, .L2456 + strb w0, [x2,2892] +.L2724: + cbz w4, .L2725 add x0, x19, :lo12:.LANCHOR0 - strh w3, [x0,2842] -.L2456: + strh w3, [x0,2890] +.L2725: add x0, x19, :lo12:.LANCHOR0 - ldrb w2, [x0,3177] - ldrh w20, [x0,3270] + ldrb w2, [x0,3225] + ldrh w20, [x0,3318] cmp w2, 2 mul w1, w1, w20 - bne .L2457 - ldrb w2, [x0,2846] - add x0, x0, 2840 - cbnz w2, .L2457 + bne .L2726 + ldrb w2, [x0,2894] + add x0, x0, 2888 + cbnz w2, .L2726 ldrh w20, [x0,2] add w20, w1, w20, lsl 1 - b .L2458 -.L2457: + b .L2727 +.L2726: add x0, x19, :lo12:.LANCHOR0 - ldrh w20, [x0,2842] + ldrh w20, [x0,2890] add w20, w1, w20 -.L2458: +.L2727: add x2, x19, :lo12:.LANCHOR0 - add x1, x2, 2840 - ldrb w0, [x2,2844] + add x1, x2, 2888 + ldrb w0, [x2,2892] add w0, w0, 1 uxtb w0, w0 - strb w0, [x2,2844] - ldrb w2, [x2,3196] + strb w0, [x2,2892] + ldrb w2, [x2,3244] cmp w2, w0 - bne .L2459 + bne .L2728 ldrh w0, [x1,2] strb wzr, [x1,4] add w0, w0, 1 strh w0, [x1,2] -.L2459: +.L2728: mov w0, 1 mov w21, 0 add x19, x19, :lo12:.LANCHOR0 bl buf_alloc mov x22, x0 -.L2470: - ldrb w0, [x19,2846] - cbnz w21, .L2472 +.L2739: + ldrb w0, [x19,2894] + cbnz w21, .L2741 cmp w0, 3 - beq .L2460 -.L2472: + beq .L2729 +.L2741: cmp w0, w21 - bgt .L2462 -.L2471: + bgt .L2731 +.L2740: mov x0, x22 bl buf_free ldr x23, [sp,48] @@ -16568,56 +17508,56 @@ gc_scan_src_blk_one_page: ldp x21, x22, [sp,32] ldp x29, x30, [sp], 80 ret -.L2462: - ldrb w1, [x19,3177] +.L2731: + ldrb w1, [x19,3225] cmp w1, 2 - bne .L2463 - cbnz w0, .L2463 + bne .L2732 + cbnz w0, .L2732 add w0, w21, w20 orr w0, w0, 33554432 - b .L2493 -.L2463: + b .L2762 +.L2732: orr w0, w20, w21, lsl 24 -.L2493: +.L2762: str w0, [x22,40] mov w1, 1 mov x0, x22 bl sblk_read_page ldr w0, [x22,52] cmp w0, 512 - beq .L2467 + beq .L2736 cmn w0, #1 - beq .L2467 + beq .L2736 ldr x0, [x22,24] ldr w23, [x0,4] mov w0, w23 bl lpa_hash_get_ppa str w0, [x29,76] cmn w0, #1 - bne .L2468 + bne .L2737 mov w0, w23 add x1, x29, 76 mov w2, 0 bl pm_log2phys -.L2468: +.L2737: ldr w0, [x29,76] cmp w20, w0 - bne .L2467 - ldrh w2, [x19,2864] - ldr x1, [x19,3168] + bne .L2736 + ldrh w2, [x19,2912] + ldr x1, [x19,3216] str w20, [x1,x2,lsl 2] - ldrh w1, [x19,2864] + ldrh w1, [x19,2912] add w1, w1, 1 - strh w1, [x19,2864] -.L2467: - ldrh w0, [x19,2866] + strh w1, [x19,2912] +.L2736: + ldrh w0, [x19,2914] add w0, w0, 1 - strh w0, [x19,2866] -.L2460: + strh w0, [x19,2914] +.L2729: add w21, w21, 1 cmp w21, 4 - bne .L2470 - b .L2471 + bne .L2739 + b .L2740 .size gc_scan_src_blk_one_page, .-gc_scan_src_blk_one_page .align 2 .global gc_scan_static_data @@ -16633,11 +17573,14 @@ gc_scan_static_data: ldr x0, [x1,80] ldr w2, [x0,544] cmn w2, #1 - beq .L2496 + beq .L2765 + adrp x21, .LANCHOR3 + adrp x22, .LC0 + add x21, x21, :lo12:.LANCHOR3 mov w20, 11 - mov w21, 21 - mov w22, 1 -.L2497: + add x22, x22, :lo12:.LC0 + add x21, x21, 616 +.L2766: add x24, x19, :lo12:.LANCHOR0 add x1, x29, 76 mov w2, 0 @@ -16646,7 +17589,7 @@ gc_scan_static_data: bl pm_log2phys ldr w0, [x29,76] cmn w0, #1 - beq .L2498 + beq .L2767 mov w0, 1 bl buf_alloc mov x23, x0 @@ -16656,96 +17599,92 @@ gc_scan_static_data: bl sblk_read_page ldr w0, [x23,52] cmp w0, 256 - bne .L2499 - ldrh w1, [x24,3266] - ldr w2, [x29,76] - sub w3, w21, w1 - ldrb w0, [x24,3264] - lsl w3, w22, w3 - lsr w1, w2, w1 - sub w3, w3, #1 - mov w2, 0 - and w1, w3, w1 - udiv w0, w1, w0 + bne .L2768 + ldrh w0, [x24,3314] + mov w2, 21 mov w1, 1 + ldr w3, [x29,76] + sub w2, w2, w0 + lsl w2, w1, w2 + lsr w3, w3, w0 + sub w2, w2, #1 + ldrb w0, [x24,3312] + and w2, w2, w3 + udiv w0, w2, w0 + mov w2, 0 bl gc_add_sblk -.L2499: +.L2768: add x0, x19, :lo12:.LANCHOR0 ldr x1, [x23,24] ldr x0, [x0,80] ldr w1, [x1,4] ldr w0, [x0,544] cmp w1, w0 - beq .L2500 - adrp x1, .LANCHOR3 - adrp x0, .LC0 - add x1, x1, :lo12:.LANCHOR3 - add x0, x0, :lo12:.LC0 - add x1, x1, 504 + beq .L2769 + mov x0, x22 + mov x1, x21 mov w2, 1369 bl printk -.L2501: - b .L2501 -.L2500: +.L2769: mov x0, x23 bl buf_free -.L2498: +.L2767: add x2, x19, :lo12:.LANCHOR0 - ldr x0, [x2,80] - ldr w2, [x2,2784] - ldr w1, [x0,544] - add w1, w1, 1 - str w1, [x0,544] - cmp w1, w2 - bcc .L2502 - mov w1, -1 - str w1, [x0,544] - ldr w1, [x0,548] - add w1, w1, 1 - str w1, [x0,548] + ldr x1, [x2,80] + ldr w2, [x2,2824] + ldr w0, [x1,544] + add w0, w0, 1 + str w0, [x1,544] + cmp w0, w2 + bcc .L2770 + mov w0, -1 + str w0, [x1,544] + ldr w0, [x1,548] + add w0, w0, 1 + str w0, [x1,548] bl ftl_flush bl pm_flush bl ftl_ext_info_flush mov w0, 0 bl ftl_info_flush - b .L2495 -.L2502: + b .L2764 +.L2770: ldr w0, [x29,76] cmn w0, #1 - bne .L2495 + bne .L2764 sub w20, w20, #1 uxth w20, w20 - cbnz w20, .L2497 - b .L2495 -.L2496: - ldr x1, [x1,2800] + cbnz w20, .L2766 + b .L2764 +.L2765: + ldr x1, [x1,2848] ldr w2, [x1,40] cmp w2, 20480 - bls .L2507 + bls .L2775 ldr w3, [x1,44] add w3, w3, w2, lsr 10 and w2, w2, 1023 str w3, [x1,44] str w2, [x1,40] -.L2507: +.L2775: ldr w2, [x0,536] ldr w3, [x0,12] add w2, w2, 12959744 add w2, w2, 256 cmp w3, w2 - bhi .L2508 + bhi .L2776 ldr w2, [x0,540] ldr w4, [x1,44] add w2, w2, 98304 add w2, w2, 1696 cmp w4, w2 - bls .L2495 -.L2508: + bls .L2764 +.L2776: ldr w1, [x1,44] str w1, [x0,540] str w3, [x0,536] str wzr, [x0,544] -.L2495: +.L2764: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -16769,118 +17708,120 @@ gc_block_vpn_scan: ldrh w0, [x20,56] ldr w1, [x1,608] cmp w1, w0 - bcs .L2513 + bcs .L2781 bl timer_get_time - ldr x21, [x20,80] - ldr w1, [x21,604] + ldr x20, [x20,80] + ldr w1, [x20,604] add w1, w1, 28672 add w1, w1, 1328 cmp w0, w1 - bls .L2513 + bls .L2781 bl timer_get_time - str w0, [x21,604] - ldr x0, [x20,80] - ldrh w2, [x20,56] - ldr w1, [x0,600] - cmp w1, w2 - bcs .L2519 - ldr x2, [x20,2800] - ldrh w2, [x2,134] - cmp w1, w2 - bcs .L2520 -.L2519: + str w0, [x20,604] add x1, x19, :lo12:.LANCHOR0 - ldr x1, [x1,2800] + ldr x0, [x1,80] + ldrh w3, [x1,56] + ldr w2, [x0,600] + cmp w2, w3 + bcs .L2786 + ldr x1, [x1,2848] + ldrh w1, [x1,134] + cmp w2, w1 + bcs .L2787 +.L2786: + add x1, x19, :lo12:.LANCHOR0 + ldr x1, [x1,2848] ldrh w1, [x1,134] str w1, [x0,600] -.L2520: - ldr w24, [x0,600] - add w1, w24, 1 +.L2787: + ldr w25, [x0,600] + add w1, w25, 1 str w1, [x0,600] ldr w1, [x0,608] - uxth w20, w24 + uxth w20, w25 add w1, w1, 1 str w1, [x0,608] add x1, x29, 128 mov w0, w20 bl ftl_get_blk_list_in_sblk uxth w1, w0 - cbz w1, .L2513 - add x2, x19, :lo12:.LANCHOR0 + cbz w1, .L2781 + add x1, x19, :lo12:.LANCHOR0 uxtw x22, w20 - ldr x25, [x2,64] - add x25, x25, x22, lsl 2 - ldrb w1, [x25,2] - tst w1, 192 - and w3, w1, 224 - beq .L2521 - cmp w3, 224 - beq .L2521 - ldr x1, [x2,80] - ldrh w4, [x1,16] - cmp w4, w20 - beq .L2521 - ldrh w4, [x1,48] - cmp w4, w20 - beq .L2521 + ldr x24, [x1,64] + add x24, x24, x22, lsl 2 + ldrb w3, [x24,2] + tst w3, 192 + and w2, w3, 224 + beq .L2788 + cmp w2, 224 + beq .L2788 + ldr x1, [x1,80] + ldrh w3, [x1,16] + cmp w3, w20 + beq .L2788 + ldrh w3, [x1,48] + cmp w3, w20 + beq .L2788 ldrh w1, [x1,80] cmp w1, w20 - bne .L2522 -.L2521: - cbnz w3, .L2513 - add x19, x19, :lo12:.LANCHOR0 + bne .L2789 +.L2788: + cbnz w2, .L2781 + add x0, x19, :lo12:.LANCHOR0 lsl x22, x22, 1 - ldr x0, [x19,72] - ldrh w1, [x0,x22] - cbz w1, .L2523 + ldr x0, [x0,72] + ldrh w0, [x0,x22] + cbz w0, .L2790 adrp x1, .LANCHOR3 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR3 add x0, x0, :lo12:.LC0 - add x1, x1, 528 + add x1, x1, 640 mov w2, 1606 bl printk -.L2524: - b .L2524 -.L2523: - strh w3, [x0,x22] - b .L2513 -.L2522: - add x1, x29, 144 +.L2790: + add x19, x19, :lo12:.LANCHOR0 + ldr x0, [x19,72] + strh wzr, [x0,x22] + b .L2781 +.L2789: and w0, w0, 65535 + add x1, x29, 144 sub w0, w0, #1 add x0, x1, x0, sxtw 1 - ldrh w1, [x0,-16] + ldrh w21, [x0,-16] mov w0, 65535 - cmp w1, w0 - bne .L2526 + cmp w21, w0 + bne .L2792 adrp x1, .LANCHOR3 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR3 add x0, x0, :lo12:.LC0 - add x1, x1, 528 + add x1, x1, 640 mov w2, 1612 bl printk -.L2527: - b .L2527 -.L2526: - ldrh w0, [x2,3228] - cmp w3, 160 - ldrh w4, [x2,3270] +.L2792: + add x2, x19, :lo12:.LANCHOR0 + ldrb w3, [x24,2] mov w26, 1 + and w3, w3, 224 + ldrh w0, [x2,3276] + cmp w3, 160 + ldrh w1, [x2,3318] sub w0, w0, #1 - mul w1, w1, w4 + mul w1, w21, w1 uxth w0, w0 - bne .L2528 - ldrb w3, [x2,3177] + bne .L2793 + ldrb w3, [x2,3225] cmp w3, 2 uxth w26, w3 orr w1, w1, w3, lsl 24 - bne .L2528 - ldrh w0, [x2,3194] + bne .L2793 + ldrh w0, [x2,3242] sub w0, w0, #1 uxth w0, w0 -.L2528: +.L2793: orr w21, w0, w1 mov w0, 1 bl buf_alloc @@ -16889,111 +17830,111 @@ gc_block_vpn_scan: add x21, x19, :lo12:.LANCHOR0 mov x23, x0 bl sblk_read_page - ldrh w0, [x21,3194] + ldrh w0, [x21,3242] mov w1, 255 - ldrb w2, [x21,3196] + ldrb w2, [x21,3244] mul w2, w0, w2 - ldr x0, [x21,3168] + ldr x0, [x21,3216] lsl w2, w2, 2 bl ftl_memset ldr w0, [x23,52] cmp w0, 512 - beq .L2540 + beq .L2805 cmn w0, #1 cset w2, eq - cbz w2, .L2529 -.L2540: + cbz w2, .L2794 +.L2805: mov w0, w20 mov w1, 1 mov w2, 0 - b .L2550 -.L2529: + b .L2818 +.L2794: ldr x0, [x23,24] ldr w1, [x0] mov w0, 15555 movk w0, 0xf55f, lsl 16 cmp w1, w0 - beq .L2531 + beq .L2796 mov w0, w20 mov w1, 1 -.L2550: +.L2818: bl gc_add_sblk mov x0, x23 bl buf_free - b .L2513 -.L2531: - ldrb w0, [x21,3196] + b .L2781 +.L2796: + ldrb w0, [x21,3244] mov x27, 0 - ldrh w1, [x21,3228] - and w28, w24, 65535 + ldrh w1, [x21,3276] + and w28, w25, 65535 mov w21, w27 mul w0, w0, w1 mul w26, w26, w0 uxth w0, w26 ldr x26, [x23,8] str w0, [x29,108] -.L2532: +.L2797: ldr w0, [x29,108] cmp w0, w27 - ble .L2551 + ble .L2819 ldr w0, [x26,x27,lsl 2] cmn w0, #1 - beq .L2533 + beq .L2798 bl lpa_hash_get_ppa str w0, [x29,124] cmn w0, #1 - bne .L2534 + bne .L2799 ldr w0, [x26,x27,lsl 2] add x1, x29, 124 mov w2, 0 bl pm_log2phys -.L2534: +.L2799: add x4, x19, :lo12:.LANCHOR0 mov w1, 21 - ldrh w0, [x4,3266] + ldrh w0, [x4,3314] sub w2, w1, w0 mov w1, 1 lsl w2, w1, w2 ldr w1, [x29,124] sub w2, w2, #1 lsr w0, w1, w0 - ldrb w1, [x4,3264] + ldrb w1, [x4,3312] and w0, w2, w0 udiv w0, w0, w1 cmp w0, w28 - bne .L2533 + bne .L2798 add w21, w21, 1 uxth w21, w21 -.L2533: +.L2798: add x27, x27, 1 - b .L2532 -.L2551: + b .L2797 +.L2819: mov x0, x23 bl buf_free - adrp x0, .LANCHOR2+400 - ldr w0, [x0,#:lo12:.LANCHOR2+400] - tbz x0, 8, .L2536 + adrp x0, .LANCHOR2 + ldr w0, [x0,#:lo12:.LANCHOR2] + tbz x0, 8, .L2801 add x0, x19, :lo12:.LANCHOR0 - ldrb w4, [x25,2] - uxth w1, w24 + ldrb w4, [x24,2] + uxth w1, w25 mov w3, w21 ubfx x4, x4, 5, 3 ldr x2, [x0,72] - adrp x0, .LC158 - add x0, x0, :lo12:.LC158 + adrp x0, .LC218 + add x0, x0, :lo12:.LC218 ldrh w2, [x2,x22,lsl 1] bl printk -.L2536: +.L2801: add x19, x19, :lo12:.LANCHOR0 cmp w21, 31 ldr x0, [x19,72] strh w21, [x0,x22,lsl 1] - bhi .L2513 + bhi .L2781 mov w0, w20 mov w1, 1 mov w2, 0 bl gc_add_sblk -.L2513: +.L2781: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -17007,144 +17948,139 @@ gc_block_vpn_scan: .type ftl_sblk_dump, %function ftl_sblk_dump: sub sp, sp, #256 + mov w2, 65535 stp x29, x30, [sp,48] add x29, sp, 48 - stp x23, x24, [sp,96] - uxth w23, w0 - mov w0, 65535 - stp x19, x20, [sp,64] stp x21, x22, [sp,80] + uxth w22, w0 + mov w0, 0 + stp x19, x20, [sp,64] + stp x23, x24, [sp,96] stp x25, x26, [sp,112] stp x27, x28, [sp,128] - cmp w23, w0 - beq .L2574 - adrp x25, .LANCHOR0 - uxtw x0, w23 - add x2, x25, :lo12:.LANCHOR0 - lsl x19, x0, 2 - str x0, [x29,136] - mov w26, 1 - str x25, [x29,152] + cmp w22, w2 + beq .L2821 + adrp x23, .LANCHOR0 + add x2, x23, :lo12:.LANCHOR0 + ldrh w3, [x2,56] + cmp w3, w22 + bls .L2821 + uxtw x0, w22 + str x0, [x29,128] + lsl x0, x0, 2 + str x0, [x29,152] ldr x0, [x2,64] - add x0, x0, x19 + mov w26, 1 + ldr x3, [x29,152] + add x0, x0, x3 ldrb w0, [x0,2] and w0, w0, 224 cmp w0, 160 - bne .L2554 - ldrb w26, [x2,3177] -.L2554: - mov x27, x1 - mov w0, w23 + bne .L2822 + ldrb w26, [x2,3225] +.L2822: + str x1, [x29,144] + mov w0, w22 add x1, x29, 192 - strh w23, [x29,176] + strh w22, [x29,176] + mov w21, 0 bl ftl_get_blk_list_in_sblk uxtb w1, w0 mov w4, w0 - ldr x0, [x29,152] + add x0, x23, :lo12:.LANCHOR0 strb w1, [x29,185] - add x0, x0, :lo12:.LANCHOR0 + mov w3, w26 strh wzr, [x29,178] + uxtb w4, w4 + ldrh w2, [x0,3276] + mov w28, w21 strb wzr, [x29,181] + mov w19, w21 strh wzr, [x29,186] - ldrh w2, [x0,3228] mul w1, w1, w2 strh w1, [x29,182] - adrp x1, .LANCHOR2 - add x2, x1, :lo12:.LANCHOR2 - str x1, [x29,128] - ldr w2, [x2,400] - tbz x2, 12, .L2555 - ldr x0, [x0,64] - mov w1, w23 - mov w3, w26 - uxtb w4, w4 - add x19, x0, x19 - adrp x0, .LC159 - add x0, x0, :lo12:.LC159 - ldrb w2, [x19,2] + ldr x1, [x0,64] + ldr x0, [x29,152] + add x1, x1, x0 + adrp x0, .LC219 + add x0, x0, :lo12:.LC219 + ldrb w2, [x1,2] + mov w1, w22 ubfx x2, x2, 5, 3 bl printk -.L2555: mov w0, 1 - mov w21, 0 - mov w28, w21 - mov w19, w21 bl buf_alloc - mov x25, x0 - adrp x0, .LC119 - str w21, [x29,148] - add x0, x0, :lo12:.LC119 + mov x27, x0 + adrp x0, .LC166 + str w21, [x29,140] + add x0, x0, :lo12:.LC166 str x0, [x29,120] - adrp x0, .LC161 - add x0, x0, :lo12:.LC161 + adrp x0, .LANCHOR3 + add x0, x0, :lo12:.LANCHOR3 + add x0, x0, 664 str x0, [x29,112] - adrp x0, .LC160 - add x0, x0, :lo12:.LC160 - str x0, [x29,104] -.L2556: - ldr x0, [x29,152] - add x20, x0, :lo12:.LANCHOR0 - ldrh w0, [x20,3228] +.L2823: + add x20, x23, :lo12:.LANCHOR0 + ldrh w0, [x20,3276] cmp w0, w19 - bls .L2571 + bls .L2839 lsl w0, w19, 1 - mov w24, 0 + mov w25, 0 sub w0, w0, #1 - str w0, [x29,144] -.L2572: + str w0, [x29,136] +.L2840: ldrb w0, [x29,185] - cmp w0, w24 - bls .L2569 - mov w22, 1 -.L2570: - cmp w22, w26 - bhi .L2598 + cmp w0, w25 + bls .L2837 + mov w24, 1 +.L2838: + cmp w24, w26 + bhi .L2857 add x0, x29, 176 - add x0, x0, x24, sxtw 1 - ldrh w3, [x0,16] + add x0, x0, x25, sxtw 1 + ldrh w2, [x0,16] mov w0, 65535 - cmp w3, w0 - beq .L2557 - ldr x0, [x29,152] + cmp w2, w0 + beq .L2824 + add x1, x23, :lo12:.LANCHOR0 cmp w26, 3 - add x0, x0, :lo12:.LANCHOR0 - ldrh w2, [x0,3270] - mul w2, w3, w2 - add w20, w2, w19 - bne .L2558 - orr w20, w20, w22, lsl 24 - b .L2559 -.L2558: + ldrh w0, [x1,3318] + mul w0, w2, w0 + add w20, w0, w19 + bne .L2825 + orr w20, w20, w24, lsl 24 + b .L2826 +.L2825: cmp w26, 2 - bne .L2559 - ldr w1, [x29,144] - ldrb w20, [x0,3177] - add w2, w2, w1 - add w2, w2, w22 - orr w20, w2, w20, lsl 24 -.L2559: + bne .L2826 + ldr w3, [x29,136] + ldrb w20, [x1,3225] + add w0, w0, w3 + add w0, w0, w24 + orr w20, w0, w20, lsl 24 +.L2826: mov w1, 1 - str w20, [x25,40] - mov x0, x25 - str x3, [x29,96] + str w20, [x27,40] + mov x0, x27 + str x2, [x29,104] bl sblk_read_page - ldr x7, [x25,8] - mov w2, w19 - ldr x0, [x25,24] - ldr w9, [x25,52] + ldr x7, [x27,8] + mov w3, w20 + ldr x0, [x27,24] + ldr w9, [x27,52] ldr w1, [x7,12] str w1, [sp] mov w4, w9 - ldr x3, [x29,96] + ldr x2, [x29,104] ldr w1, [x0] str w1, [sp,8] - str x9, [x29,96] + str x9, [x29,104] ldr w1, [x0,4] str w1, [sp,16] ldr w1, [x0,8] str w1, [sp,24] - mov w1, w3 - mov w3, w20 + mov w1, w2 + mov w2, w19 ldr w0, [x0,12] str w0, [sp,32] ldr x0, [x29,120] @@ -17152,106 +18088,107 @@ ftl_sblk_dump: ldr w6, [x7,4] ldr w7, [x7,8] bl printk - ldr x9, [x29,96] + ldr x9, [x29,104] cmp w9, 512 - beq .L2576 + beq .L2844 cmn w9, #1 - bne .L2561 -.L2576: + bne .L2828 +.L2844: mov w0, 1 - str w0, [x29,148] -.L2561: - ldr x0, [x25,24] - ldr w1, [x0,4] - str x1, [x29,96] - mov w0, w1 + str w0, [x29,140] +.L2828: + add x0, x23, :lo12:.LANCHOR0 + ldr x1, [x29,152] + ldr x0, [x0,64] + add x0, x0, x1 + ldrb w0, [x0,2] + and w0, w0, 224 + cmp w0, 32 + beq .L2824 + cmp w0, 224 + cset w2, eq + cbnz w2, .L2824 + ldr x0, [x27,24] + str x2, [x29,104] + ldr w0, [x0,4] bl lpa_hash_get_ppa str w0, [x29,172] cmn w0, #1 - ldr x1, [x29,96] - bne .L2563 - mov w0, w1 - mov w2, 0 + ldr x2, [x29,104] + bne .L2830 + ldr x0, [x27,24] add x1, x29, 172 + ldr w0, [x0,4] bl pm_log2phys -.L2563: +.L2830: ldr w0, [x29,172] cmp w0, w20 - bne .L2564 - ldr x2, [x25,24] + bne .L2831 + ldr x2, [x27,24] add w21, w21, 1 - ldr x0, [x29,104] + adrp x0, .LC220 mov w1, w20 + add x0, x0, :lo12:.LC220 mov w3, w21 ldr w2, [x2,4] bl printk -.L2564: - cbz x27, .L2565 +.L2831: + ldr x0, [x29,144] + cbz x0, .L2833 ubfiz x20, x28, 2, 32 - ldr x0, [x25,24] - ldr w2, [x27,x20] + ldr w2, [x0,x20] + ldr x0, [x27,24] ldr w0, [x0,4] cmp w0, w2 - beq .L2566 - ldr x0, [x29,128] - add x0, x0, :lo12:.LANCHOR2 - ldr w0, [x0,400] - tbz x0, 12, .L2566 - ldr x0, [x29,112] + beq .L2834 + adrp x0, .LANCHOR2 + ldr w0, [x0,#:lo12:.LANCHOR2] + tbz x0, 12, .L2834 + adrp x0, .LC221 mov w1, w28 + add x0, x0, :lo12:.LC221 bl printk -.L2566: - ldr x1, [x25,24] - ldr w0, [x27,x20] +.L2834: + ldr x0, [x29,144] + ldr x1, [x27,24] + ldr w0, [x0,x20] ldr w1, [x1,4] cmp w1, w0 - beq .L2565 + beq .L2833 cmn w0, #1 - beq .L2565 - adrp x1, .LANCHOR3 + beq .L2833 adrp x0, .LC0 - add x1, x1, :lo12:.LANCHOR3 + ldr x1, [x29,112] add x0, x0, :lo12:.LC0 - add x1, x1, 552 - mov w2, 1165 + mov w2, 1175 bl printk -.L2567: - b .L2567 -.L2565: +.L2833: add w28, w28, 1 -.L2557: - add w22, w22, 1 - uxth w22, w22 - b .L2570 -.L2598: +.L2824: add w24, w24, 1 uxth w24, w24 - b .L2572 -.L2569: + b .L2838 +.L2857: + add w25, w25, 1 + uxth w25, w25 + b .L2840 +.L2837: add w19, w19, 1 uxth w19, w19 - b .L2556 -.L2571: - mov x0, x25 + b .L2823 +.L2839: + mov x0, x27 bl buf_free - ldr x0, [x29,128] - add x0, x0, :lo12:.LANCHOR2 - ldr w0, [x0,400] - tbz x0, 12, .L2573 - ldr x3, [x29,136] - adrp x0, .LC162 + ldr x3, [x29,128] + adrp x0, .LC222 ldr x2, [x20,72] - add x0, x0, :lo12:.LC162 - mov w1, w23 + add x0, x0, :lo12:.LC222 + mov w1, w22 ldrh w2, [x2,x3,lsl 1] mov w3, w21 bl printk -.L2573: - ldr w0, [x29,148] - b .L2553 -.L2574: - mov w0, 0 -.L2553: + ldr w0, [x29,140] +.L2821: sub sp, x29, #48 ldp x19, x20, [sp,64] ldp x21, x22, [sp,80] @@ -17270,47 +18207,49 @@ zftl_read: add x29, sp, 0 stp x19, x20, [sp,16] mov w19, w0 - adrp x0, .LANCHOR2+400 + adrp x0, .LANCHOR2 stp x23, x24, [sp,48] stp x25, x26, [sp,64] - ldr w0, [x0,#:lo12:.LANCHOR2+400] + ldr w0, [x0,#:lo12:.LANCHOR2] mov w24, w1 stp x21, x22, [sp,32] stp x27, x28, [sp,80] mov w25, w2 mov x23, x3 - tbz x0, 12, .L2600 - adrp x0, .LC163 + tbz x0, 12, .L2859 + adrp x0, .LC223 mov w1, w19 - add x0, x0, :lo12:.LC163 + add x0, x0, :lo12:.LC223 mov w2, w24 mov w3, w25 bl printk -.L2600: - cbnz w19, .L2601 +.L2859: + cbnz w19, .L2860 adrp x0, .LANCHOR0+4 mov w19, 24576 - ldr w0, [x0,#:lo12:.LANCHOR0+4] - b .L2602 -.L2601: + ldr w2, [x0,#:lo12:.LANCHOR0+4] + b .L2861 +.L2860: cmp w19, 3 - bhi .L2628 + mov w0, -1 + bhi .L2862 lsl w19, w19, 13 - mov w0, 8192 -.L2602: + mov w2, 8192 +.L2861: add w1, w24, w25 - cmp w1, w0 - bhi .L2628 + mov w0, -1 + cmp w1, w2 + bhi .L2862 adrp x22, .LANCHOR0 add w24, w19, w24 add x1, x22, :lo12:.LANCHOR0 add w28, w24, w25 str wzr, [x29,152] - ldr x2, [x1,2800] + ldr x2, [x1,2848] ldr w0, [x2,24] add w0, w0, w25 str w0, [x2,24] - ldrb w0, [x1,2776] + ldrb w0, [x1,2816] sub w1, w28, #1 udiv w27, w24, w0 mov w21, w27 @@ -17319,157 +18258,157 @@ zftl_read: sub w26, w0, w27 add w0, w26, 1 str w0, [x29,156] - uxth w0, w25 - str w0, [x29,144] - adrp x0, .LC147 - add x0, x0, :lo12:.LC147 + adrp x0, .LC0 + add x0, x0, :lo12:.LC0 str x0, [x29,136] - adrp x0, .LC164 - add x0, x0, :lo12:.LC164 + adrp x0, .LANCHOR3 + add x0, x0, :lo12:.LANCHOR3 + add x0, x0, 680 str x0, [x29,128] -.L2604: +.L2863: ldr w0, [x29,156] - cbz w0, .L2648 + cbz w0, .L2909 add x0, x22, :lo12:.LANCHOR0 ldr w1, [x29,148] cmp w21, w27 cset w2, eq cmp w21, w1 - ldrb w0, [x0,2776] + ldrb w0, [x0,2816] cset w20, eq uxth w19, w0 - cbnz w20, .L2631 - cbz w2, .L2605 - b .L2647 -.L2631: - cbz w2, .L2607 -.L2647: + cbnz w20, .L2889 + cbz w2, .L2864 + b .L2908 +.L2889: + cbz w2, .L2866 +.L2908: udiv w20, w24, w0 msub w20, w20, w0, w24 - ldr w0, [x29,144] + uxth w0, w25 uxth w20, w20 sub w19, w19, w20 uxth w19, w19 cmp w19, w25 csel w19, w0, w19, hi - b .L2605 -.L2607: + b .L2864 +.L2866: msub w19, w0, w21, w28 mov w20, w2 uxtb w19, w19 -.L2605: +.L2864: add x1, x22, :lo12:.LANCHOR0 mov w0, 0 - add x1, x1, 728 -.L2610: + add x1, x1, 768 +.L2869: ldr w2, [x1,36] cmp w2, w21 - bne .L2608 + bne .L2867 ldrb w2, [x1,2] - tbz x2, 3, .L2608 + tbz x2, 3, .L2867 add x2, x22, :lo12:.LANCHOR0 ubfiz x1, x0, 6, 32 add x0, x2, x1 ubfiz x20, x20, 9, 16 lsl w2, w19, 9 ubfiz x19, x19, 9, 16 - ldr x1, [x0,736] + ldr x1, [x0,776] mov x0, x23 add x23, x23, x19 add x1, x1, x20 bl ftl_memcpy - b .L2609 -.L2608: + b .L2868 +.L2867: add w0, w0, 1 add x1, x1, 64 cmp w0, 32 - bne .L2610 + bne .L2869 mov w0, w21 bl lpa_hash_get_ppa str w0, [x29,172] cmn w0, #1 - bne .L2611 + bne .L2870 mov w0, w21 add x1, x29, 172 mov w2, 0 bl pm_log2phys -.L2611: +.L2870: ldr w0, [x29,172] cmn w0, #1 - bne .L2612 + bne .L2871 mov w19, 0 -.L2613: +.L2872: add x0, x22, :lo12:.LANCHOR0 - ldrb w0, [x0,2776] + ldrb w0, [x0,2816] cmp w19, w0 - bcs .L2609 + bcs .L2868 madd w0, w21, w0, w19 cmp w0, w24 - bcc .L2614 + bcc .L2873 cmp w0, w28 - bcs .L2614 + bcs .L2873 mov x0, x23 mov w1, 0 mov w2, 512 add x23, x23, 512 bl ftl_memset -.L2614: +.L2873: add w19, w19, 1 - b .L2613 -.L2612: + b .L2872 +.L2871: mov w0, 0 bl buf_alloc mov x26, x0 - cbnz x0, .L2616 + cbnz x0, .L2875 bl ftl_read_ahead - b .L2604 -.L2616: + b .L2863 +.L2875: add x1, x22, :lo12:.LANCHOR0 - ldr x2, [x1,2800] + ldr x2, [x1,2848] ldr w0, [x2,40] add w0, w0, 1 str w0, [x2,40] ldr w0, [x29,172] str w0, [x26,40] str w0, [x26,44] - ldrb w0, [x1,2776] + ldrb w0, [x1,2816] cmp w0, w19 - bne .L2618 + bne .L2877 str x23, [x26,16] -.L2618: +.L2877: mov x0, x26 mov w1, 1 bl sblk_read_page ldr w9, [x26,52] cmn w9, #1 - bne .L2619 + bne .L2878 add x0, x22, :lo12:.LANCHOR0 str w9, [x29,152] ldr x1, [x0,80] ldr w0, [x1,552] add w0, w0, 1 str w0, [x1,552] - b .L2620 -.L2619: + b .L2879 +.L2878: cmp w9, 256 - bne .L2620 + bne .L2879 add x1, x22, :lo12:.LANCHOR0 mov w2, 21 mov w5, 1 ldr w0, [x29,172] ldr w3, [x26,40] - ldrh w4, [x1,3266] + ldrh w4, [x1,3314] str x9, [x29,104] sub w2, w2, w4 lsr w4, w0, w4 lsl w2, w5, w2 - ldrb w0, [x1,3264] + ldrb w0, [x1,3312] sub w2, w2, #1 str x5, [x29,112] and w4, w2, w4 ldr w2, [x26,36] udiv w4, w4, w0 - ldr x0, [x29,128] + adrp x0, .LC224 + add x0, x0, :lo12:.LC224 str x4, [x29,120] uxth w1, w4 bl printk @@ -17480,81 +18419,74 @@ zftl_read: mov w1, w5 bl gc_add_sblk ldr x9, [x29,104] -.L2620: +.L2879: ldr x7, [x26,24] ldr w5, [x7,4] cmp w5, w21 - beq .L2621 + beq .L2880 ldr w4, [x7] - mov w2, w21 + adrp x0, .LC196 ldr w6, [x7,8] + mov w2, w21 ldrb w1, [x26,1] + add x0, x0, :lo12:.LC196 ldr w3, [x29,172] ldr w7, [x7,12] - ldr x0, [x29,136] str x9, [x29,120] bl printk add x3, x22, :lo12:.LANCHOR0 mov w2, 21 mov w1, 1 - ldrh w0, [x3,3266] + ldrh w0, [x3,3314] sub w2, w2, w0 lsl w2, w1, w2 ldr w1, [x29,172] sub w2, w2, #1 lsr w0, w1, w0 - ldrb w1, [x3,3264] + ldrb w1, [x3,3312] and w0, w2, w0 udiv w0, w0, w1 mov x1, 0 bl ftl_sblk_dump ldr x9, [x29,120] -.L2621: +.L2880: ldr x0, [x26,24] ldr w0, [x0,4] cmp w0, w21 - bne .L2632 + bne .L2890 cmn w9, #1 - bne .L2622 -.L2632: - adrp x1, .LANCHOR3 - adrp x0, .LC0 - add x1, x1, :lo12:.LANCHOR3 - add x0, x0, :lo12:.LC0 - add x1, x1, 568 - mov w2, 977 + bne .L2881 +.L2890: + ldr x0, [x29,136] + mov w2, 1030 + ldr x1, [x29,128] bl printk -.L2624: - b .L2624 -.L2622: +.L2881: ldr x0, [x26,16] - cbnz x0, .L2625 + cbnz x0, .L2883 ldr x1, [x26,8] ubfiz x20, x20, 9, 16 mov x0, x23 lsl w2, w19, 9 add x1, x1, x20 bl ftl_memcpy -.L2625: +.L2883: mov x0, x26 ubfiz x19, x19, 9, 16 add x23, x23, x19 bl buf_free -.L2609: +.L2868: ldr w0, [x29,156] add w21, w21, 1 sub w0, w0, #1 str w0, [x29,156] - b .L2604 -.L2648: + b .L2863 +.L2909: bl timer_get_time - adrp x1, .LANCHOR7+3256 - str w0, [x1,#:lo12:.LANCHOR7+3256] + adrp x1, .LANCHOR7+3320 + str w0, [x1,#:lo12:.LANCHOR7+3320] ldr w0, [x29,152] - b .L2603 -.L2628: - mov w0, -1 -.L2603: +.L2862: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -17601,253 +18533,246 @@ vpn_check: stp x29, x30, [sp, -128]! add x29, sp, 0 stp x19, x20, [sp,16] - adrp x19, .LANCHOR0 - add x20, x19, :lo12:.LANCHOR0 + adrp x20, .LANCHOR0 + add x19, x20, :lo12:.LANCHOR0 stp x21, x22, [sp,32] stp x23, x24, [sp,48] stp x25, x26, [sp,64] stp x27, x28, [sp,80] bl timer_get_time - adrp x22, .LC168 + adrp x21, .LANCHOR7 bl dump_ftl_info - adrp x23, .LC169 - ldr x3, [x20,80] - adrp x0, .LC165 - add x0, x0, :lo12:.LC165 - mov w21, 0 - mov w24, 21 - add x22, x22, :lo12:.LC168 + adrp x22, .LANCHOR3 + ldr x3, [x19,80] + adrp x0, .LC225 + add x0, x0, :lo12:.LC225 + adrp x23, .LC0 + add x22, x22, :lo12:.LANCHOR3 + add x23, x23, :lo12:.LC0 ldrh w1, [x3,16] - add x23, x23, :lo12:.LC169 + add x22, x22, 696 ldrh w2, [x3,48] ldrh w3, [x3,80] bl printk - ldr x0, [x20,80] - ldr x3, [x20,72] + ldr x0, [x19,80] + ldr x3, [x19,72] ldrh w1, [x0,16] ubfiz x2, x1, 1, 16 ldrh w3, [x3,x2] ldrh w2, [x0,22] - adrp x0, .LC166 - add x0, x0, :lo12:.LC166 + adrp x0, .LC226 + add x0, x0, :lo12:.LC226 sub w4, w3, w2 bl printk - ldr x0, [x20,80] - ldr x3, [x20,72] - adrp x20, .LANCHOR7 + ldr x0, [x19,80] + ldr x3, [x19,72] + mov w19, 0 ldrh w1, [x0,48] ubfiz x2, x1, 1, 16 ldrh w3, [x3,x2] ldrh w2, [x0,54] - adrp x0, .LC167 - add x0, x0, :lo12:.LC167 + adrp x0, .LC227 + add x0, x0, :lo12:.LC227 sub w4, w3, w2 bl printk - add x0, x20, :lo12:.LANCHOR7 + add x0, x21, :lo12:.LANCHOR7 mov w1, 0 - add x0, x0, 3264 + add x0, x0, 3328 mov w2, 4608 bl ftl_memset -.L2652: - add x25, x19, :lo12:.LANCHOR0 - ldr w0, [x25,2784] - cmp w21, w0 - bcs .L2683 - mov w0, w21 +.L2913: + add x24, x20, :lo12:.LANCHOR0 + ldr w0, [x24,2824] + cmp w19, w0 + bcs .L2941 + mov w0, w19 bl lpa_hash_get_ppa str w0, [x29,124] cmn w0, #1 - bne .L2653 - mov w0, w21 + bne .L2914 + mov w0, w19 add x1, x29, 124 mov w2, 0 bl pm_log2phys - b .L2654 -.L2653: - ldrh w1, [x25,3266] + b .L2915 +.L2914: + ldrh w2, [x24,3314] + mov w1, 21 + lsr w0, w0, w2 + sub w1, w1, w2 mov w2, 1 - lsr w0, w0, w1 - sub w1, w24, w1 lsl w1, w2, w1 sub w1, w1, #1 and w0, w0, w1 - ldrb w1, [x25,3264] + ldrb w1, [x24,3312] udiv w0, w0, w1 - ldrh w1, [x25,56] + ldrh w1, [x24,56] cmp w1, w0, uxth - bhi .L2654 - adrp x1, .LANCHOR3 - adrp x0, .LC0 - add x1, x1, :lo12:.LANCHOR3 - add x0, x0, :lo12:.LC0 - add x1, x1, 584 - mov w2, 1197 + bhi .L2915 + mov x0, x23 + mov x1, x22 + mov w2, 1256 bl printk -.L2655: - b .L2655 -.L2654: +.L2915: ldr w2, [x29,124] cmn w2, #1 - beq .L2656 - add x25, x19, :lo12:.LANCHOR0 + beq .L2917 + add x24, x20, :lo12:.LANCHOR0 + mov w3, 21 mov w0, 1 - ldrh w4, [x25,3266] - sub w3, w24, w4 + ldrh w4, [x24,3314] + sub w3, w3, w4 lsr w4, w2, w4 lsl w3, w0, w3 - ldrh w0, [x25,56] + ldrh w0, [x24,56] sub w3, w3, #1 and w4, w3, w4 - ldrb w3, [x25,3264] + ldrb w3, [x24,3312] udiv w3, w4, w3 - uxth w26, w3 + uxth w25, w3 and w3, w3, 65535 - cmp w0, w26 - bls .L2657 - add x0, x20, :lo12:.LANCHOR7 - add x0, x0, 3264 + cmp w0, w25 + bls .L2918 + add x0, x21, :lo12:.LANCHOR7 + add x0, x0, 3328 ldrh w1, [x0,w3,sxtw 1] add w1, w1, 1 strh w1, [x0,w3,sxtw 1] - b .L2658 -.L2657: - mov w1, w21 - mov x0, x22 + b .L2919 +.L2918: + adrp x0, .LC228 + mov w1, w19 + add x0, x0, :lo12:.LC228 bl printk - ldrb w3, [x25,2776] - mov x0, x23 - ldr x1, [x25,3832] + ldrb w3, [x24,2816] + adrp x0, .LC229 + ldr x1, [x24,3880] + add x0, x0, :lo12:.LC229 mov w2, 4 lsl w3, w3, 7 bl rknand_print_hex -.L2658: - add x0, x19, :lo12:.LANCHOR0 +.L2919: + add x0, x20, :lo12:.LANCHOR0 ldrh w0, [x0,56] - cmp w0, w26 - bhi .L2656 - adrp x1, .LANCHOR3 - adrp x0, .LC0 - add x1, x1, :lo12:.LANCHOR3 - add x0, x0, :lo12:.LC0 - add x1, x1, 584 - mov w2, 1207 + cmp w0, w25 + bhi .L2917 + mov x0, x23 + mov x1, x22 + mov w2, 1266 bl printk -.L2659: - b .L2659 -.L2656: +.L2917: bl timer_get_time - add w21, w21, 1 - b .L2652 -.L2683: + add w19, w19, 1 + b .L2913 +.L2941: mov w23, 0 - adrp x26, .LC170 - mov w21, w23 - add x27, x20, :lo12:.LANCHOR7 - add x26, x26, :lo12:.LC170 + adrp x26, .LC230 + mov w19, w23 + add x27, x21, :lo12:.LANCHOR7 + add x26, x26, :lo12:.LC230 mov w28, 65535 -.L2661: - add x22, x19, :lo12:.LANCHOR0 +.L2922: + add x22, x20, :lo12:.LANCHOR0 ldrh w1, [x22,56] - cmp w1, w21 - bls .L2684 - uxtw x1, w21 + cmp w1, w19 + bls .L2942 + uxtw x1, w19 ldr x0, [x22,72] lsl x25, x1, 1 - add x24, x27, 3264 - sxtw x5, w21 + add x24, x27, 3328 + sxtw x5, w19 ldrh w3, [x0,x25] - ldrh w2, [x24,w21,sxtw 1] + ldrh w2, [x24,w19,sxtw 1] cmp w3, w2 - beq .L2662 + beq .L2923 ldr x0, [x22,64] str x5, [x29,104] add x1, x0, x1, lsl 2 mov x0, x26 ldrb w4, [x1,2] - mov w1, w21 + mov w1, w19 ubfx x4, x4, 5, 3 bl printk ldr x0, [x22,72] ldrh w1, [x0,x25] cmp w1, w28 - beq .L2662 + beq .L2923 ldr x5, [x29,104] ldrh w0, [x24,x5,lsl 1] cmp w0, w1 - bls .L2662 + bls .L2923 ldr x1, [x22,80] ldrh w0, [x1,16] - cmp w0, w21 - beq .L2662 + cmp w0, w19 + beq .L2923 ldrh w0, [x1,80] - cmp w0, w21 - beq .L2662 + cmp w0, w19 + beq .L2923 ldrh w0, [x1,48] - cmp w0, w21 + cmp w0, w19 csinc w23, w23, wzr, eq -.L2662: - add w21, w21, 1 - uxth w21, w21 - b .L2661 -.L2684: - adrp x22, .LC171 - mov w21, 0 - add x20, x20, :lo12:.LANCHOR7 - add x22, x22, :lo12:.LC171 -.L2664: - add x1, x19, :lo12:.LANCHOR0 +.L2923: + add w19, w19, 1 + uxth w19, w19 + b .L2922 +.L2942: + adrp x22, .LANCHOR3 + adrp x24, .LC0 + add x22, x22, :lo12:.LANCHOR3 + mov w19, 0 + add x21, x21, :lo12:.LANCHOR7 + add x24, x24, :lo12:.LC0 + add x22, x22, 696 +.L2925: + add x1, x20, :lo12:.LANCHOR0 ldrh w0, [x1,56] - cmp w0, w21 - bls .L2685 - uxtw x24, w21 + cmp w0, w19 + bls .L2943 + uxtw x25, w19 ldr x0, [x1,64] - add x0, x0, x24, lsl 2 + add x0, x0, x25, lsl 2 ldrb w0, [x0,2] tst w0, 224 - bne .L2670 - add x0, x20, 3264 - sxtw x26, w21 - ldrh w0, [x0,w21,sxtw 1] - cbnz w0, .L2666 - lsl x25, x24, 1 + bne .L2927 + add x0, x21, 3328 + sxtw x27, w19 + ldrh w0, [x0,w19,sxtw 1] + cbnz w0, .L2928 + lsl x26, x25, 1 ldr x0, [x1,72] - ldrh w0, [x0,x25] - cbz w0, .L2667 - mov x0, x22 - mov w1, w21 + ldrh w0, [x0,x26] + cbz w0, .L2929 + adrp x0, .LC231 + mov w1, w19 + add x0, x0, :lo12:.LC231 bl printk -.L2667: - add x0, x19, :lo12:.LANCHOR0 +.L2929: + add x0, x20, :lo12:.LANCHOR0 ldr x0, [x0,72] - strh wzr, [x0,x25] -.L2666: - add x0, x19, :lo12:.LANCHOR0 + strh wzr, [x0,x26] +.L2928: + add x0, x20, :lo12:.LANCHOR0 ldr x0, [x0,72] - ldrh w0, [x0,x24,lsl 1] - cbz w0, .L2670 - add x0, x20, 3264 - ldrh w0, [x0,x26,lsl 1] - cbz w0, .L2670 - adrp x1, .LANCHOR3 - adrp x0, .LC0 - add x1, x1, :lo12:.LANCHOR3 - add x0, x0, :lo12:.LC0 - add x1, x1, 584 - mov w2, 1239 + ldrh w0, [x0,x25,lsl 1] + cbz w0, .L2927 + add x0, x21, 3328 + ldrh w0, [x0,x27,lsl 1] + cbz w0, .L2927 + mov x0, x24 + mov x1, x22 + mov w2, 1298 bl printk -.L2668: - b .L2668 -.L2670: - add w21, w21, 1 - uxth w21, w21 - b .L2664 -.L2685: +.L2927: + add w19, w19, 1 + uxth w19, w19 + b .L2925 +.L2943: adrp x1, .LANCHOR3 - adrp x0, .LC172 + adrp x0, .LC232 add x1, x1, :lo12:.LANCHOR3 mov w2, w23 - add x1, x1, 584 - add x0, x0, :lo12:.LC172 + add x1, x1, 696 + add x0, x0, :lo12:.LC232 bl printk ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -17862,7 +18787,6 @@ vpn_check: .type gc_scan_src_blk, %function gc_scan_src_blk: stp x29, x30, [sp, -96]! - mov w2, 65535 add x29, sp, 0 stp x19, x20, [sp,16] adrp x19, .LANCHOR0 @@ -17870,154 +18794,163 @@ gc_scan_src_blk: stp x21, x22, [sp,32] stp x23, x24, [sp,48] stp x25, x26, [sp,64] - ldrh w1, [x0,2840] - cmp w1, w2 - bne .L2687 + ldrh w1, [x0,2888] + mov w0, 65535 + cmp w1, w0 + bne .L2945 adrp x1, .LANCHOR3 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR3 add x0, x0, :lo12:.LC0 - add x1, x1, 600 + add x1, x1, 712 mov w2, 897 bl printk -.L2688: - b .L2688 -.L2687: - adrp x2, .LANCHOR2+400 - ldr w2, [x2,#:lo12:.LANCHOR2+400] - tbz x2, 8, .L2689 - ldr x3, [x0,72] - ubfiz x2, x1, 1, 16 - adrp x0, .LC173 - add x0, x0, :lo12:.LC173 - ldrh w2, [x3,x2] +.L2945: + add x2, x19, :lo12:.LANCHOR0 + mov w3, 65535 + mov w0, 0 + ldrh w1, [x2,2888] + cmp w1, w3 + beq .L2946 + adrp x0, .LANCHOR2 + ldr w0, [x0,#:lo12:.LANCHOR2] + tbz x0, 8, .L2947 + ubfiz x3, x1, 1, 16 + ldr x2, [x2,72] + adrp x0, .LC233 + add x0, x0, :lo12:.LC233 + ldrh w2, [x2,x3] bl printk -.L2689: +.L2947: add x20, x19, :lo12:.LANCHOR0 bl timer_get_time - add x21, x20, 2840 - add x1, x20, 2880 - ldrh w0, [x20,2840] + add x21, x20, 2888 + add x1, x20, 2928 + ldrh w0, [x20,2888] bl ftl_get_blk_list_in_sblk uxtb w1, w0 strb w1, [x21,5] - cbnz w1, .L2690 + cbnz w1, .L2948 mov w0, -1 - strh w0, [x20,2840] - b .L2718 -.L2690: - ldrh w1, [x20,2840] + strh w0, [x20,2888] + b .L2976 +.L2948: + ldrh w3, [x20,2888] ldr x2, [x20,64] - add x2, x2, x1, lsl 2 - ldrb w4, [x2,2] - tst w4, 192 - and w2, w4, 224 - beq .L2692 - cmp w2, 224 - beq .L2692 - ldr x4, [x20,80] - ldrh w5, [x4,16] - cmp w5, w1 - beq .L2692 - ldrh w5, [x4,48] - cmp w5, w1 - beq .L2692 - ldrh w4, [x4,80] - cmp w4, w1 - bne .L2693 -.L2692: - cbnz w2, .L2694 - add x3, x19, :lo12:.LANCHOR0 - lsl x0, x1, 1 - ldr x1, [x3,72] - ldrh w3, [x1,x0] - cbz w3, .L2695 + add x2, x2, x3, lsl 2 + ldrb w2, [x2,2] + tst w2, 192 + and w4, w2, 224 + beq .L2949 + cmp w4, 224 + beq .L2949 + ldr x2, [x20,80] + ldrh w5, [x2,16] + cmp w5, w3 + beq .L2949 + ldrh w5, [x2,48] + cmp w5, w3 + beq .L2949 + ldrh w2, [x2,80] + cmp w2, w3 + bne .L2950 +.L2949: + cbnz w4, .L2951 + add x0, x19, :lo12:.LANCHOR0 + ldr x0, [x0,72] + ldrh w0, [x0,x3,lsl 1] + cbz w0, .L2952 adrp x1, .LANCHOR3 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR3 add x0, x0, :lo12:.LC0 - add x1, x1, 600 + add x1, x1, 712 mov w2, 917 bl printk -.L2696: - b .L2696 -.L2695: - strh w2, [x1,x0] -.L2694: +.L2952: + add x0, x19, :lo12:.LANCHOR0 + ldrh w1, [x0,2888] + ldr x0, [x0,72] + strh wzr, [x0,x1,lsl 1] +.L2951: add x19, x19, :lo12:.LANCHOR0 mov w0, -1 - strh wzr, [x19,2864] - strh w0, [x19,2840] -.L2718: + strh wzr, [x19,2912] + strh w0, [x19,2888] +.L2976: mov w0, 0 - b .L2691 -.L2693: + b .L2946 +.L2950: and w0, w0, 255 sub w0, w0, #1 add x0, x21, x0, sxtw 1 - ldrh w1, [x0,40] + ldrh w20, [x0,40] mov w0, 65535 - cmp w1, w0 - bne .L2697 + cmp w20, w0 + bne .L2953 adrp x1, .LANCHOR3 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR3 add x0, x0, :lo12:.LC0 - add x1, x1, 600 + add x1, x1, 712 mov w2, 925 bl printk -.L2698: - b .L2698 -.L2697: - ldrh w0, [x20,3228] - cmp w2, 160 - ldrh w3, [x20,3270] +.L2953: + add x2, x19, :lo12:.LANCHOR0 mov w24, 1 + ldrh w3, [x2,2888] + ldr x4, [x2,64] + ldrh w0, [x2,3276] + add x3, x4, x3, lsl 2 + ldrh w1, [x2,3318] sub w0, w0, #1 - mul w1, w1, w3 + ldrb w3, [x3,2] uxth w0, w0 - bne .L2699 - ldrb w2, [x20,3177] - cmp w2, 2 - uxth w24, w2 - orr w1, w1, w2, lsl 24 - bne .L2699 - ldrh w0, [x20,3194] + mul w1, w20, w1 + and w3, w3, 224 + cmp w3, 160 + bne .L2954 + ldrb w3, [x2,3225] + cmp w3, 2 + uxth w24, w3 + orr w1, w1, w3, lsl 24 + bne .L2954 + ldrh w0, [x2,3242] sub w0, w0, #1 uxth w0, w0 -.L2699: +.L2954: add x20, x19, :lo12:.LANCHOR0 orr w23, w0, w1 mov w0, 1 - strb w24, [x20,2846] - strh wzr, [x20,2842] - strb wzr, [x20,2844] - strh wzr, [x20,2866] + strb w24, [x20,2894] + strh wzr, [x20,2890] + strb wzr, [x20,2892] + strh wzr, [x20,2914] bl buf_alloc mov w1, 1 str w23, [x0,40] mov x21, x0 bl sblk_read_page - ldrh w0, [x20,3194] + ldrh w0, [x20,3242] mov w1, 255 - ldrb w2, [x20,3196] + ldrb w2, [x20,3244] mul w2, w0, w2 - ldr x0, [x20,3168] + ldr x0, [x20,3216] lsl w2, w2, 2 bl ftl_memset - strh wzr, [x20,2864] + strh wzr, [x20,2912] ldr w0, [x21,52] cmp w0, 512 - beq .L2703 + beq .L2958 cmn w0, #1 - beq .L2703 + beq .L2958 ldr x0, [x21,24] ldr w1, [x0] mov w0, 15555 movk w0, 0xf55f, lsl 16 cmp w1, w0 - beq .L2702 - ldrh w0, [x20,2840] + beq .L2957 + ldrh w0, [x20,2888] mov x1, 0 bl ftl_sblk_dump ldr x0, [x21,24] @@ -18025,100 +18958,98 @@ gc_scan_src_blk: mov w0, 15555 movk w0, 0xf55f, lsl 16 cmp w1, w0 - beq .L2703 + beq .L2958 adrp x1, .LANCHOR3 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR3 add x0, x0, :lo12:.LC0 - add x1, x1, 600 + add x1, x1, 712 mov w2, 955 bl printk -.L2704: - b .L2704 -.L2703: +.L2958: mov x0, x21 bl buf_free mov w0, -1 - b .L2691 -.L2702: - ldrb w0, [x20,3196] + b .L2946 +.L2957: + ldrb w0, [x20,3244] mov x26, 0 - ldrh w22, [x20,3228] + ldrh w22, [x20,3276] mov w25, 1 ldr x23, [x21,8] mul w22, w0, w22 mul w22, w24, w22 mov w24, 21 uxth w22, w22 -.L2705: +.L2959: cmp w22, w26 - ble .L2719 + ble .L2977 ldr w0, [x23,x26,lsl 2] cmn w0, #1 - beq .L2707 + beq .L2961 bl lpa_hash_get_ppa str w0, [x29,92] cmn w0, #1 - bne .L2708 + bne .L2962 ldr w0, [x23,x26,lsl 2] add x1, x29, 92 mov w2, 0 bl pm_log2phys -.L2708: - ldrh w0, [x20,3266] +.L2962: + ldrh w0, [x20,3314] ldr w2, [x29,92] sub w1, w24, w0 - ldrh w3, [x20,2840] + ldrh w3, [x20,2888] lsl w1, w25, w1 lsr w0, w2, w0 sub w1, w1, #1 and w0, w1, w0 - ldrb w1, [x20,3264] + ldrb w1, [x20,3312] udiv w0, w0, w1 cmp w0, w3 - bne .L2707 - ldrh w3, [x20,2864] - ldr x0, [x20,3168] + bne .L2961 + ldrh w3, [x20,2912] + ldr x0, [x20,3216] str w2, [x0,x3,lsl 2] - ldrh w0, [x20,2864] + ldrh w0, [x20,2912] add w0, w0, 1 - strh w0, [x20,2864] -.L2707: + strh w0, [x20,2912] +.L2961: bl timer_get_time add x26, x26, 1 - b .L2705 -.L2719: + b .L2959 +.L2977: mov x0, x21 bl buf_free add x0, x19, :lo12:.LANCHOR0 - ldrh w1, [x0,2840] + ldrh w1, [x0,2888] ldr x3, [x0,72] ubfiz x2, x1, 1, 16 ldrh w2, [x3,x2] - ldrh w3, [x0,2864] + ldrh w3, [x0,2912] cmp w2, w3 - beq .L2711 - adrp x0, .LC174 - add x0, x0, :lo12:.LC174 + beq .L2965 + adrp x0, .LC234 + add x0, x0, :lo12:.LC234 bl printk -.L2711: +.L2965: add x0, x19, :lo12:.LANCHOR0 - ldrh w2, [x0,2840] + ldrh w2, [x0,2888] ldr x1, [x0,72] - ldrh w0, [x0,2864] + ldrh w0, [x0,2912] ldrh w1, [x1,x2,lsl 1] cmp w1, w0 - bcs .L2712 + bcs .L2966 bl vpn_check -.L2712: +.L2966: add x19, x19, :lo12:.LANCHOR0 - ldrh w2, [x19,2840] + ldrh w2, [x19,2888] ldr x1, [x19,72] - ldrh w3, [x19,2864] + ldrh w3, [x19,2912] strh w3, [x1,x2,lsl 1] - strh wzr, [x19,2868] - ldrh w0, [x19,2864] -.L2691: + strh wzr, [x19,2916] + ldrh w0, [x19,2912] +.L2946: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -18140,63 +19071,63 @@ ftl_scan_all_data: stp x27, x28, [sp,96] stp x21, x22, [sp,48] bl buf_alloc - adrp x24, .LC176 + adrp x24, .LC236 mov x19, x0 - adrp x25, .LC177 - adrp x0, .LC175 + adrp x25, .LC237 + adrp x0, .LC235 mov w1, 0 - add x0, x0, :lo12:.LC175 + add x0, x0, :lo12:.LC235 mov w20, 0 - add x24, x24, :lo12:.LC176 - add x27, x25, :lo12:.LC177 + add x24, x24, :lo12:.LC236 + add x27, x25, :lo12:.LC237 bl printk -.L2721: +.L2979: adrp x21, .LANCHOR0 add x0, x21, :lo12:.LANCHOR0 - ldr w0, [x0,2784] + ldr w0, [x0,2824] cmp w20, w0 - bcs .L2744 + bcs .L3002 mov w0, -1 str w0, [x19,36] mov w0, w20 bl lpa_hash_get_ppa str w0, [x29,124] cmn w0, #1 - bne .L2722 + bne .L2980 mov w0, w20 add x1, x29, 124 mov w2, 0 bl pm_log2phys -.L2722: +.L2980: and w0, w20, 4095 - cbnz w0, .L2723 + cbnz w0, .L2981 ldr w2, [x29,124] mov x0, x24 mov w1, w20 bl printk -.L2723: +.L2981: ldr w0, [x29,124] str w0, [x19,40] str w0, [x19,44] cmn w0, #1 - beq .L2725 + beq .L2983 mov x0, x19 mov w1, 1 bl sblk_read_page ldr w3, [x19,52] cmn w3, #1 - beq .L2726 + beq .L2984 cmp w3, 256 - beq .L2726 + beq .L2984 ldr x0, [x19,24] ldr w0, [x0,4] cmp w0, w20 - beq .L2725 -.L2726: + beq .L2983 +.L2984: ldr x0, [x19,8] - add x23, x25, :lo12:.LC177 + add x23, x25, :lo12:.LC237 ldr x7, [x19,24] - adrp x26, .LC178 + adrp x26, .LC238 ldr w1, [x0] str w1, [sp] mov w1, w20 @@ -18213,25 +19144,25 @@ ftl_scan_all_data: ldr w22, [x0,4] ldr w0, [x0,8] cmn w0, #1 - bne .L2728 -.L2730: + bne .L2986 +.L2988: add x21, x21, :lo12:.LANCHOR0 mov w0, w20 + ldrb w22, [x21,2816] bl lpa_hash_get_ppa - mov w4, w0 - ldrb w22, [x21,2776] - add x0, x26, :lo12:.LC178 mov w1, w20 - adrp x26, .LC180 + mov w4, w0 lsl w28, w22, 7 lsl w3, w22, 7 sub w3, w3, #1 - mov x22, 0 + add x0, x26, :lo12:.LC238 sdiv w28, w20, w28 and w3, w20, w3 - add x21, x21, 3824 - add x26, x26, :lo12:.LC180 + adrp x26, .LC240 + mov x22, 0 uxth w3, w3 + add x21, x21, 3872 + add x26, x26, :lo12:.LC240 uxth w23, w28 mov w2, w23 bl printk @@ -18239,12 +19170,12 @@ ftl_scan_all_data: add x1, x29, 124 mov w2, 0 bl pm_log2phys - b .L2729 -.L2728: + b .L2987 +.L2986: add x1, x21, :lo12:.LANCHOR0 - ldr w1, [x1,2784] + ldr w1, [x1,2824] cmp w22, w1 - bcs .L2730 + bcs .L2988 str w0, [x19,40] mov w1, 1 mov x0, x19 @@ -18268,12 +19199,12 @@ ftl_scan_all_data: bl lpa_hash_get_ppa str w0, [x29,124] cmn w0, #1 - bne .L2731 + bne .L2989 mov w0, w22 add x1, x29, 124 mov w2, 0 bl pm_log2phys -.L2731: +.L2989: ldr w0, [x29,124] mov w1, 1 str w0, [x19,40] @@ -18297,7 +19228,7 @@ ftl_scan_all_data: add x5, x21, :lo12:.LANCHOR0 mov w0, w22 str x5, [x29,96] - ldrb w23, [x5,2776] + ldrb w23, [x5,2816] lsl w2, w23, 7 udiv w2, w22, w2 str x2, [x29,104] @@ -18310,7 +19241,7 @@ ftl_scan_all_data: and w3, w3, w22 mov w1, w22 uxth w2, w2 - add x0, x26, :lo12:.LC178 + add x0, x26, :lo12:.LC238 uxth w3, w3 bl printk mov w0, w22 @@ -18319,48 +19250,48 @@ ftl_scan_all_data: mov x22, 0 bl pm_log2phys ldr x5, [x29,96] - adrp x4, .LC179 - add x4, x4, :lo12:.LC179 - add x23, x5, 3824 -.L2733: + adrp x4, .LC239 + add x4, x4, :lo12:.LC239 + add x23, x5, 3872 +.L2991: add x0, x23, x22 ldr x1, [x0,8] - cbz x1, .L2732 + cbz x1, .L2990 ldrh w0, [x22,x23] cmp w0, w28 - bne .L2732 + bne .L2990 mov x0, x4 mov w2, 4 mov w3, 4096 str x4, [x29,104] bl rknand_print_hex ldr x4, [x29,104] -.L2732: +.L2990: add x22, x22, 16 cmp x22, 512 - bne .L2733 - b .L2730 -.L2745: + bne .L2991 + b .L2988 +.L3003: ldrh w0, [x22,x21] cmp w0, w23 - bne .L2734 + bne .L2992 mov x0, x26 mov w2, 4 mov w3, 4096 bl rknand_print_hex -.L2734: +.L2992: add x22, x22, 16 cmp x22, 512 - beq .L2725 -.L2729: + beq .L2983 +.L2987: add x0, x21, x22 ldr x1, [x0,8] - cbnz x1, .L2745 - b .L2734 -.L2725: + cbnz x1, .L3003 + b .L2992 +.L2983: add w20, w20, 1 - b .L2721 -.L2744: + b .L2979 +.L3002: mov x0, x19 bl buf_free sub sp, x29, #16 @@ -18374,6 +19305,387 @@ ftl_scan_all_data: ret .size ftl_scan_all_data, .-ftl_scan_all_data .align 2 + .type zftl_debug_proc_write, %function +zftl_debug_proc_write: + sub sp, sp, #224 + cmp x2, 79 + mov x0, -22 + stp x29, x30, [sp,32] + add x29, sp, 32 + stp x19, x20, [sp,48] + stp x21, x22, [sp,64] + add x19, x29, 112 + str x19, [x29,104] + stp x23, x24, [sp,80] + stp x25, x26, [sp,96] + mov x21, x2 + bhi .L3005 + mov x0, x19 + bl rk_copy_from_user + mov x22, x0 + mov x0, -14 + cbnz x22, .L3005 + adrp x0, .LC241 + mov x1, x19 + add x0, x0, :lo12:.LC241 + strb w22, [x19,x21] + bl printk + adrp x0, .LC242 + mov x1, x19 + add x0, x0, :lo12:.LC242 + mov w2, 1 + mov w3, 16 + bl rknand_print_hex + bl rknand_device_lock + adrp x1, .LC243 + mov x0, x19 + add x1, x1, :lo12:.LC243 + mov x2, 7 + bl memcmp + cbnz w0, .L3006 + adrp x23, .LANCHOR0 + adrp x0, .LC244 + add x19, x23, :lo12:.LANCHOR0 + add x0, x0, :lo12:.LC244 + mov w2, 4 + adrp x20, .LANCHOR4 + ldr x3, [x19,2848] + add x1, x3, 704 + ldrh w3, [x3,698] + bl rknand_print_hex + add x3, x20, :lo12:.LANCHOR4 + ldr x1, [x19,2848] + adrp x0, .LC245 + mov w2, 2 + add x0, x0, :lo12:.LC245 + add x1, x1, 416 + ldrh w3, [x3,1132] + mov w19, w22 + mov w22, 65535 + bl rknand_print_hex +.L3007: + add x0, x20, :lo12:.LANCHOR4 + ldrh w0, [x0,1132] + cmp w19, w0 + bge .L3010 + mov w0, 300 + bl msleep + add x0, x23, :lo12:.LANCHOR0 + ldr x0, [x0,2848] + add x0, x0, x19, sxtw 1 + ldrh w0, [x0,416] + cmp w0, w22 + beq .L3008 + mov x1, 0 + bl ftl_sblk_dump +.L3008: + add w19, w19, 1 + b .L3007 +.L3006: + adrp x1, .LC246 + mov x0, x19 + add x1, x1, :lo12:.LC246 + mov x2, 7 + bl memcmp + cbnz w0, .L3011 + adrp x23, .LANCHOR0 + adrp x0, .LC244 + add x20, x23, :lo12:.LANCHOR0 + add x0, x0, :lo12:.LC244 + mov w2, 4 + add x22, x29, 192 + adrp x24, .LC249 + ldr x3, [x20,2848] + add x24, x24, :lo12:.LC249 + add x1, x3, 704 + ldrh w3, [x3,698] + bl rknand_print_hex + adrp x3, .LANCHOR4+1132 + ldr x1, [x20,2848] + adrp x0, .LC245 + mov w2, 2 + add x0, x0, :lo12:.LC245 + add x1, x1, 416 + ldrh w3, [x3,#:lo12:.LANCHOR4+1132] + bl rknand_print_hex + adrp x0, .LC247 + add x1, x19, 7 + add x0, x0, :lo12:.LC247 + str x1, [x22,-88]! + add x19, x20, 3872 + mov x20, x23 + bl printk + adrp x23, .LC248 + ldr x0, [x29,104] + mov x1, x22 + add x25, x19, 512 + add x23, x23, :lo12:.LC248 + bl rk_simple_strtoull.constprop.34 + mov w22, w0 + str w0, [x29,100] + uxth w26, w0 +.L3013: + ldrh w1, [x19] + mov x0, x23 + ldrh w2, [x19,2] + bl printk + ldrh w0, [x19] + cmp w0, w26 + bne .L3012 + add x0, x20, :lo12:.LANCHOR0 + ldr x1, [x19,8] + mov w2, 4 + ldrb w3, [x0,2816] + mov x0, x24 + lsl w3, w3, 7 + bl rknand_print_hex +.L3012: + add x19, x19, 16 + cmp x19, x25 + bne .L3013 + mov w0, 300 + add x20, x20, :lo12:.LANCHOR0 + bl msleep + mov w0, 1 + bl buf_alloc + mov x19, x0 + ldr x1, [x20,2848] + add x1, x1, x22, uxth 2 + ldr w1, [x1,704] + str w1, [x29,100] + str w1, [x0,40] + mov w1, 1 + bl sblk_read_page + ldr x7, [x19,24] + ldr x6, [x19,8] + ldr w1, [x29,100] + ldr w0, [x7,4] + str w0, [sp] + ldr w0, [x7,8] + str w0, [sp,8] + ldr w0, [x7,12] + str w0, [sp,16] + adrp x0, .LC197 + add x0, x0, :lo12:.LC197 + ldr w3, [x6] + ldr w2, [x19,52] + ldr w4, [x6,4] + ldr w5, [x6,8] + ldr w7, [x7] + ldr w6, [x6,12] + bl printk + ldrb w3, [x20,2816] + adrp x0, .LC250 + add x0, x0, :lo12:.LC250 + ldr x1, [x19,8] + mov w2, 4 + lsl w3, w3, 7 + b .L3025 +.L3011: + adrp x1, .LC251 + mov x0, x19 + add x1, x1, :lo12:.LC251 + mov x2, 7 + bl memcmp + cbnz w0, .L3014 + bl dump_ftl_info + b .L3010 +.L3014: + adrp x1, .LC252 + mov x0, x19 + add x1, x1, :lo12:.LC252 + mov x2, 8 + bl memcmp + cbnz w0, .L3015 + bl dump_all_list_info + b .L3010 +.L3015: + adrp x1, .LC253 + mov x0, x19 + add x1, x1, :lo12:.LC253 + mov x2, 8 + bl memcmp + cbnz w0, .L3016 + bl vpn_check + b .L3010 +.L3016: + adrp x1, .LC254 + mov x0, x19 + add x1, x1, :lo12:.LC254 + mov x2, 8 + bl memcmp + cbnz w0, .L3017 + add x20, x29, 192 + adrp x0, .LC247 + add x1, x19, 8 + add x0, x0, :lo12:.LC247 + str x1, [x20,-88]! + bl printk + ldr x0, [x29,104] + mov x1, x20 + adrp x20, .LANCHOR0 + add x20, x20, :lo12:.LANCHOR0 + bl rk_simple_strtoull.constprop.34 + str w0, [x29,100] + mov w0, 1 + bl buf_alloc + mov x19, x0 + ldr w1, [x29,100] + str w1, [x0,40] + mov w1, 1 + bl sblk_read_page + ldr x7, [x19,24] + ldr x6, [x19,8] + ldr w1, [x29,100] + ldr w0, [x7,4] + str w0, [sp] + ldr w0, [x7,8] + str w0, [sp,8] + ldr w0, [x7,12] + str w0, [sp,16] + adrp x0, .LC197 + add x0, x0, :lo12:.LC197 + ldr w3, [x6] + ldr w4, [x6,4] + ldr w5, [x6,8] + ldr w2, [x19,52] + ldr w6, [x6,12] + ldr w7, [x7] + bl printk + ldrb w3, [x20,2816] + adrp x0, .LC190 + ldr x1, [x19,8] + add x0, x0, :lo12:.LC190 + mov w2, 4 + lsl w3, w3, 7 + bl rknand_print_hex + ldrb w3, [x20,2816] + adrp x0, .LC191 + ldr x1, [x19,24] + add x0, x0, :lo12:.LC191 + mov w2, 4 + lsl w3, w3, 1 +.L3025: + bl rknand_print_hex + mov x0, x19 + bl buf_free + b .L3010 +.L3017: + adrp x1, .LC255 + mov x0, x19 + add x1, x1, :lo12:.LC255 + mov x2, 8 + bl memcmp + cbnz w0, .L3018 + add x20, x29, 192 + adrp x0, .LC247 + add x1, x19, 8 + add x0, x0, :lo12:.LC247 + str x1, [x20,-88]! + bl printk + ldr x0, [x29,104] + mov x1, x20 + bl rk_simple_strtoull.constprop.34 + str w0, [x29,100] + mov x1, x22 + bl ftl_sblk_dump + b .L3010 +.L3018: + adrp x1, .LC256 + mov x0, x19 + add x1, x1, :lo12:.LC256 + mov x2, 10 + bl memcmp + cbnz w0, .L3019 + add x20, x29, 192 + adrp x0, .LC247 + add x1, x19, 10 + add x0, x0, :lo12:.LC247 + str x1, [x20,-88]! + bl printk + ldr x0, [x29,104] + mov x1, x20 + bl rk_simple_strtoull.constprop.34 + str w0, [x29,100] + adrp x1, .LANCHOR2 + str w0, [x1,#:lo12:.LANCHOR2] + b .L3010 +.L3019: + adrp x1, .LC257 + mov x2, 8 + mov x0, x19 + add x1, x1, :lo12:.LC257 + bl memcmp + mov w2, w0 + str x2, [x29,88] + cbnz w0, .L3020 + add x1, x19, 8 + adrp x0, .LC247 + add x19, x29, 192 + add x0, x0, :lo12:.LC247 + str x1, [x19,-88]! + bl printk + ldr x0, [x29,104] + mov x1, x19 + bl rk_simple_strtoull.constprop.34 + mov w19, w0 + bl lpa_hash_get_ppa + str w0, [x29,100] + cmn w0, #1 + ldr x2, [x29,88] + bne .L3021 + mov w0, w19 + add x1, x29, 100 + bl pm_log2phys +.L3021: + adrp x0, .LC258 + ldr w2, [x29,100] + mov w1, w19 + add x0, x0, :lo12:.LC258 + bl printk + b .L3010 +.L3020: + adrp x0, .LC259 + add x0, x0, :lo12:.LC259 + bl printk + adrp x0, .LC260 + add x0, x0, :lo12:.LC260 + bl printk + adrp x0, .LC261 + add x0, x0, :lo12:.LC261 + bl printk + adrp x0, .LC262 + add x0, x0, :lo12:.LC262 + bl printk + adrp x0, .LC263 + add x0, x0, :lo12:.LC263 + bl printk + adrp x0, .LC264 + add x0, x0, :lo12:.LC264 + bl printk + adrp x0, .LC265 + add x0, x0, :lo12:.LC265 + bl printk + adrp x0, .LC266 + add x0, x0, :lo12:.LC266 + bl printk + adrp x0, .LC267 + add x0, x0, :lo12:.LC267 + bl printk +.L3010: + bl rknand_device_unlock + mov x0, x21 +.L3005: + sub sp, x29, #32 + ldp x19, x20, [sp,48] + ldp x21, x22, [sp,64] + ldp x23, x24, [sp,80] + ldp x25, x26, [sp,96] + ldp x29, x30, [sp,32] + add sp, sp, 224 + ret + .size zftl_debug_proc_write, .-zftl_debug_proc_write + .align 2 .global ftl_update_l2p_map .type ftl_update_l2p_map, %function ftl_update_l2p_map: @@ -18385,71 +19697,68 @@ ftl_update_l2p_map: mov x23, x0 add x0, x19, :lo12:.LANCHOR0 stp x21, x22, [sp,32] - stp x27, x28, [sp,80] stp x25, x26, [sp,64] + stp x27, x28, [sp,80] ldrb w1, [x23,9] - mov x27, 0 - ldrh w24, [x0,3228] - mov w22, w27 - ldr x0, [x0,3792] + ldrh w24, [x0,3276] ldrh w20, [x23,12] + ldr x0, [x0,3840] mul w24, w24, w1 add x20, x0, x20, lsl 2 add x0, x20, x24, sxtw 2 ldr w0, [x0,-4] cmn w0, #1 - beq .L2747 + beq .L3027 adrp x1, .LANCHOR3 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR3 add x0, x0, :lo12:.LC0 - add x1, x1, 616 - mov w2, 1437 + add x1, x1, 728 + mov w2, 1450 bl printk -.L2748: - b .L2748 -.L2747: - adrp x25, .LC182 - adrp x26, .LC181 - add x0, x25, :lo12:.LC182 +.L3027: + adrp x25, .LC269 + mov x27, 0 + add x0, x25, :lo12:.LC269 + adrp x26, .LC268 str x0, [x29,120] - add x0, x26, :lo12:.LC181 + mov w22, w27 + add x0, x26, :lo12:.LC268 str x0, [x29,112] -.L2771: +.L3028: cmp w27, w24 mov w25, w27 - bge .L2772 + bge .L3053 ldr w2, [x20,x27,lsl 2] cmn w2, #1 - beq .L2749 + beq .L3029 add x0, x19, :lo12:.LANCHOR0 - ldrb w21, [x0,2776] + ldrb w21, [x0,2816] adrp x0, .LANCHOR2 - add x0, x0, :lo12:.LANCHOR2 lsl w21, w21, 7 - ldr w0, [x0,400] + ldr w0, [x0,#:lo12:.LANCHOR2] udiv w21, w2, w21 and w21, w21, 65535 - tbz x0, 12, .L2750 + tbz x0, 12, .L3030 ldr x0, [x29,112] mov w1, w21 mov w3, w27 bl printk -.L2750: +.L3030: mov w28, -1 -.L2754: +.L3034: sbfiz x26, x25, 2, 32 ldr w0, [x20,x26] cmn w0, #1 - beq .L2751 + beq .L3031 add x6, x19, :lo12:.LANCHOR0 - ldrb w1, [x6,2776] + ldrb w1, [x6,2816] lsl w1, w1, 7 udiv w0, w0, w1 cmp w21, w0, uxth - bne .L2751 + bne .L3031 ldrb w0, [x23,9] - ldrh w2, [x6,3270] + ldrh w2, [x6,3318] str x6, [x29,104] sdiv w1, w25, w0 msub w0, w1, w0, w25 @@ -18461,16 +19770,16 @@ ftl_update_l2p_map: ldr w1, [x20,x26] bl pm_ppa_update_check ldr x6, [x29,104] - cbz w0, .L2752 - adrp x0, .LC183 - ldr x1, [x6,3792] - add x0, x0, :lo12:.LC183 + cbz w0, .L3032 + adrp x0, .LC270 + ldr x1, [x6,3840] + add x0, x0, :lo12:.LC270 mov w2, 4 mov w3, w24 bl rknand_print_hex -.L2753: - b .L2753 -.L2752: +.L3033: + b .L3033 +.L3032: ldr w0, [x20,x26] add x1, x29, 140 mov w2, 1 @@ -18478,27 +19787,27 @@ ftl_update_l2p_map: bl pm_log2phys uxth w22, w22 str w28, [x20,x26] -.L2751: +.L3031: add w25, w25, 1 cmp w25, w24 - bne .L2754 -.L2749: + bne .L3034 +.L3029: add x27, x27, 1 - b .L2771 -.L2772: - adrp x0, .LANCHOR2+400 - ldr w0, [x0,#:lo12:.LANCHOR2+400] - tbz x0, 12, .L2756 + b .L3028 +.L3053: + adrp x0, .LANCHOR2 + ldr w0, [x0,#:lo12:.LANCHOR2] + tbz x0, 12, .L3036 add x0, x19, :lo12:.LANCHOR0 ldrh w1, [x23] mov w2, w22 ubfiz x3, x1, 1, 16 ldr x4, [x0,72] - adrp x0, .LC184 - add x0, x0, :lo12:.LC184 + adrp x0, .LC271 + add x0, x0, :lo12:.LC271 ldrh w3, [x4,x3] bl printk -.L2756: +.L3036: add x19, x19, :lo12:.LANCHOR0 ldrh w1, [x23] ldr x0, [x19,72] @@ -18524,9 +19833,9 @@ ftl_alloc_new_data_sblk: ldrh w0, [x19] mov w1, 65535 cmp w0, w1 - beq .L2774 + beq .L3055 bl zftl_insert_data_list -.L2774: +.L3055: adrp x0, .LANCHOR0+80 mov w2, 2 mov w1, 3 @@ -18550,296 +19859,292 @@ ftl_alloc_new_data_sblk: .type ftl_write_commit, %function ftl_write_commit: stp x29, x30, [sp, -160]! + adrp x0, .LANCHOR5 add x29, sp, 0 stp x23, x24, [sp,48] adrp x24, .LANCHOR0 - add x24, x24, :lo12:.LANCHOR0 - add x0, x24, 728 - str x0, [x29,128] - adrp x0, .LANCHOR5 add x0, x0, :lo12:.LANCHOR5 + add x24, x24, :lo12:.LANCHOR0 str x0, [x29,120] + stp x27, x28, [sp,80] + add x0, x0, 513 + add x28, x24, 768 stp x19, x20, [sp,16] - add x0, x0, 449 - str x0, [x29,104] stp x21, x22, [sp,32] stp x25, x26, [sp,64] - stp x27, x28, [sp,80] -.L2778: - ldrb w0, [x24,2819] + str x0, [x29,104] +.L3059: + ldrb w0, [x24,2840] adrp x21, .LANCHOR0 - cbz w0, .L2780 - ldrb w1, [x24,2818] + cbz w0, .L3061 + ldrb w1, [x24,2866] sub w0, w0, #1 - ldr x2, [x29,128] str x1, [x29,112] lsl x1, x1, 6 - add x26, x2, x1 - strb w0, [x24,2819] - ldr w0, [x24,2784] - ldrb w1, [x2,x1] - ldr w23, [x26,36] - strb w1, [x24,2818] + strb w0, [x24,2840] + add x25, x28, x1 + ldr w0, [x24,2824] + ldrb w1, [x28,x1] + ldr w23, [x25,36] + strb w1, [x24,2866] cmp w23, w0 - bcc .L2781 - mov x0, x26 + bcc .L3062 + mov x0, x25 bl buf_free mov w0, -1 - b .L2836 -.L2781: - ldr x0, [x26,24] - str x0, [x29,136] - ldrb w0, [x24,3812] - ldr x27, [x26,8] - ldrb w22, [x26,57] - ldrb w20, [x26,56] - cbz w0, .L2783 + b .L3116 +.L3062: + ldr x0, [x25,24] + str x0, [x29,128] + ldrb w0, [x24,2841] + ldr x26, [x25,8] + ldrb w22, [x25,57] + ldrb w20, [x25,56] + cbz w0, .L3064 ldr x0, [x29,120] - add x1, x21, :lo12:.LANCHOR0 - add x1, x1, 728 - ldrb w3, [x0,449] - ldr x0, [x29,128] - add x3, x0, x3, lsl 6 -.L2784: - ldrb w0, [x3] - cmp w0, 255 - beq .L2837 - sbfiz x3, x0, 6, 32 - add x3, x1, x3 - b .L2784 -.L2837: + ldrb w3, [x0,513] + add x0, x21, :lo12:.LANCHOR0 + add x0, x0, 768 + add x3, x28, x3, lsl 6 +.L3065: + ldrb w4, [x3] + cmp w4, 255 + beq .L3118 + sbfiz x3, x4, 6, 32 + add x3, x0, x3 + b .L3065 +.L3118: ldr w0, [x3,36] cmp w0, w23 - bne .L2783 + bne .L3064 ldr x0, [x3,8] ubfiz x1, x22, 9, 8 lsl w2, w20, 9 add x0, x0, x1 - add x1, x27, x1 + add x1, x26, x1 bl ftl_memcpy - mov x0, x26 + mov x0, x25 bl buf_free - b .L2778 -.L2783: + b .L3059 +.L3064: mov w0, w23 bl lpa_hash_get_ppa str w0, [x29,156] cmn w0, #1 - bne .L2787 + bne .L3068 mov w0, w23 add x1, x29, 156 mov w2, 0 bl pm_log2phys -.L2787: - add x1, x21, :lo12:.LANCHOR0 - mov w0, 0 - ldr x19, [x1,80] - add x1, x1, 728 +.L3068: + add x4, x21, :lo12:.LANCHOR0 + mov w3, 0 + ldr x19, [x4,80] + add x4, x4, 768 add x19, x19, 16 -.L2790: - ldr w2, [x1,36] - cmp w2, w23 - bne .L2788 - ldrb w2, [x1,2] - tbz x2, 3, .L2788 - add x1, x21, :lo12:.LANCHOR0 - ubfiz x0, x0, 6, 32 - add x1, x1, 728 - and w2, w2, -9 - add x0, x1, x0 - strb w2, [x0,2] - ldr x28, [x0,8] - ldr w0, [x0,40] - str w0, [x29,156] - b .L2789 -.L2788: - add w0, w0, 1 - add x1, x1, 64 - cmp w0, 32 - bne .L2790 - mov x28, 0 -.L2789: - add x25, x21, :lo12:.LANCHOR0 - ldrb w0, [x25,2776] - cmp w20, w0 - bcs .L2815 - cbz x28, .L2792 - cbz w22, .L2793 - mov x0, x27 - mov x1, x28 - lsl w2, w22, 9 - bl ftl_memcpy - ldr x19, [x25,80] - add x19, x19, 48 -.L2793: +.L3071: + ldr w0, [x4,36] + cmp w0, w23 + bne .L3069 + ldrb w5, [x4,2] + tbz x5, 3, .L3069 add x0, x21, :lo12:.LANCHOR0 + ubfiz x3, x3, 6, 32 + add x0, x0, 768 + and w5, w5, -9 + add x3, x0, x3 + ldr w0, [x3,40] + strb w5, [x3,2] + ldr x27, [x3,8] + str w0, [x29,156] + b .L3070 +.L3069: + add w3, w3, 1 + add x4, x4, 64 + cmp w3, 32 + bne .L3071 + mov x27, 0 +.L3070: + add x3, x21, :lo12:.LANCHOR0 + str wzr, [x29,136] + ldrb w0, [x3,2816] + cmp w20, w0 + bcs .L3072 add w20, w22, w20 - ldrb w3, [x0,2776] - cmp w20, w3 - bcc .L2794 + cbz x27, .L3073 + cbz w22, .L3074 + mov x0, x26 + mov x1, x27 + lsl w2, w22, 9 + str x3, [x29,136] + bl ftl_memcpy + ldr x3, [x29,136] + ldr x19, [x3,80] + add x19, x19, 48 +.L3074: + add x0, x21, :lo12:.LANCHOR0 + ldrb w2, [x0,2816] + cmp w20, w2 + bcc .L3075 ldr x19, [x0,80] add x19, x19, 16 - b .L2815 -.L2794: + b .L3117 +.L3075: ubfiz x1, x20, 9, 9 - sub w2, w3, w20 - add x0, x27, x1 + sub w2, w2, w20 + add x0, x26, x1 lsl w2, w2, 9 - add x1, x28, x1 + add x1, x27, x1 bl ftl_memcpy - b .L2815 -.L2792: +.L3117: + str wzr, [x29,136] + b .L3072 +.L3073: ldr w0, [x29,156] cmn w0, #1 - beq .L2795 + beq .L3076 mov w0, 1 bl buf_alloc - mov x28, x0 + mov x27, x0 ldr w1, [x29,156] str w1, [x0,40] mov w1, 1 str w23, [x0,36] bl sblk_read_page - ldr x0, [x28,24] - ldr w25, [x0,12] + ldr x0, [x27,24] + ldr w1, [x0,12] ldr w0, [x0,4] - add w25, w25, 1 + add w1, w1, 1 + str w1, [x29,136] cmp w0, w23 - bne .L2796 - ldr w0, [x28,52] + bne .L3077 + ldr w0, [x27,52] cmn w0, #1 - bne .L2797 -.L2796: - ldrb w1, [x28,1] - adrp x0, .LC185 + bne .L3078 +.L3077: + ldrb w1, [x27,1] + adrp x0, .LC272 ldr w2, [x29,156] mov w3, w23 - ldr w4, [x28,52] - add x0, x0, :lo12:.LC185 + ldr w4, [x27,52] + add x0, x0, :lo12:.LC272 bl printk mov w2, 4 - ldr x1, [x28,24] - adrp x0, .LC142 + ldr x1, [x27,24] + adrp x0, .LC191 mov w3, w2 - add x0, x0, :lo12:.LC142 + add x0, x0, :lo12:.LC191 bl rknand_print_hex add x3, x21, :lo12:.LANCHOR0 mov w2, 21 mov w1, 1 - ldrh w0, [x3,3266] + ldrh w0, [x3,3314] sub w2, w2, w0 lsl w2, w1, w2 ldr w1, [x29,156] sub w2, w2, #1 lsr w0, w1, w0 - ldrb w1, [x3,3264] + ldrb w1, [x3,3312] and w0, w2, w0 udiv w0, w0, w1 mov x1, 0 bl ftl_sblk_dump -.L2797: - ldr x0, [x28,24] +.L3078: + ldr x0, [x27,24] ldr w0, [x0,4] cmp w0, w23 - bne .L2798 - ldr w0, [x28,52] + bne .L3079 + ldr w0, [x27,52] cmn w0, #1 - bne .L2799 -.L2798: + bne .L3080 +.L3079: adrp x1, .LANCHOR3 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR3 add x0, x0, :lo12:.LC0 - add x1, x1, 640 - mov w2, 497 + add x1, x1, 752 + mov w2, 544 bl printk -.L2800: - b .L2800 -.L2799: - cbz w22, .L2801 +.L3080: + cbz w22, .L3081 ldr w0, [x29,156] lsl w2, w22, 9 cmn w0, #1 - beq .L2802 - ldr x1, [x28,8] - mov x0, x27 + beq .L3082 + ldr x1, [x27,8] + mov x0, x26 bl ftl_memcpy - b .L2803 -.L2795: - mov w25, w28 - cbz w22, .L2801 + b .L3083 +.L3076: + cbz w22, .L3081 lsl w2, w22, 9 - mov w25, w28 -.L2802: - mov x0, x27 +.L3082: + mov x0, x26 mov w1, 0 bl ftl_memset -.L2803: +.L3083: add x0, x21, :lo12:.LANCHOR0 ldr x19, [x0,80] add x19, x19, 48 -.L2801: +.L3081: add x0, x21, :lo12:.LANCHOR0 - add w20, w22, w20 - ldrb w2, [x0,2776] + ldrb w2, [x0,2816] cmp w20, w2 - bcc .L2804 - bls .L2805 + bcc .L3084 + bls .L3085 ldr x19, [x0,80] add x19, x19, 16 - b .L2805 -.L2804: + b .L3085 +.L3084: ldr w0, [x29,156] sub w2, w2, w20 lsl w2, w2, 9 cmn w0, #1 ubfiz x0, x20, 7, 9 - beq .L2806 - ldr x1, [x28,8] + beq .L3086 + ldr x1, [x27,8] lsl x20, x0, 2 - add x0, x27, x20 + add x0, x26, x20 add x1, x1, x20 bl ftl_memcpy - b .L2805 -.L2806: - add x0, x27, x0, lsl 2 + b .L3085 +.L3086: + add x0, x26, x0, lsl 2 mov w1, 0 bl ftl_memset -.L2805: - cbz x28, .L2791 - ldrb w0, [x28,2] - mov x1, x28 +.L3085: + cbz x27, .L3072 + ldrb w0, [x27,2] + mov x1, x27 and w0, w0, -9 - strb w0, [x28,2] + strb w0, [x27,2] add x0, x21, :lo12:.LANCHOR0 - add x0, x0, 2832 + add x0, x0, 2880 bl buf_remove_buf - mov x0, x28 + mov x0, x27 bl buf_free - b .L2791 -.L2815: - mov w25, 0 -.L2791: +.L3072: ldrh w0, [x19,6] - cbnz w0, .L2807 + cbnz w0, .L3087 bl ftl_flush mov x0, x19 bl ftl_alloc_new_data_sblk -.L2807: +.L3087: mov x0, x19 add x20, x21, :lo12:.LANCHOR0 bl ftl_get_new_free_page ldr x1, [x29,112] - add x3, x20, 728 - ldr x6, [x29,136] + add x3, x20, 768 + ldr x6, [x29,128] lsl x2, x1, 6 + ldr w7, [x29,136] add x1, x3, x2 ldr w5, [x1,32] str w5, [x6] str w23, [x6,4] ldr w5, [x29,156] str w5, [x6,8] - str w25, [x6,12] + str w7, [x6,12] str w0, [x1,40] mov w0, -1 strb w0, [x3,x2] @@ -18854,69 +20159,69 @@ ftl_write_commit: sub w0, w0, #1 strh w0, [x1,48] ldr x0, [x29,104] - mov x1, x26 + mov x1, x25 bl buf_add_tail - ldrb w0, [x20,3812] + ldrb w0, [x20,2841] add w0, w0, 1 - strb w0, [x20,3812] + strb w0, [x20,2841] bl timer_get_time ldr x1, [x29,120] - ldrb w2, [x20,3812] - str w0, [x1,452] + ldrb w2, [x20,2841] + str w0, [x1,516] cmp w2, 2 adrp x0, .LANCHOR5 - bhi .L2808 + bhi .L3088 ldrh w1, [x19,6] cmp w1, 1 - bne .L2780 -.L2808: + bne .L3061 +.L3088: ldrb w1, [x19,5] mov w4, 2 add x6, x21, :lo12:.LANCHOR0 cmp w1, wzr ldrh w1, [x19,6] csinc w4, w4, wzr, ne - add x6, x6, 728 + add x6, x6, 768 cmp w1, 1 add x1, x0, :lo12:.LANCHOR5 csel w4, w4, w2, ne - ldrb w5, [x1,449] + ldrb w5, [x1,513] mov w1, 0 mov w3, w5 -.L2812: +.L3092: cmp w1, w4 - beq .L2838 + beq .L3119 ubfiz x3, x3, 6, 8 add w1, w1, 1 ldrb w3, [x6,x3] - b .L2812 -.L2838: + b .L3092 +.L3119: add x0, x0, :lo12:.LANCHOR5 uxtb w1, w1 sub w2, w2, w1 ubfiz x5, x5, 6, 8 - strb w3, [x0,449] + strb w3, [x0,513] add x0, x21, :lo12:.LANCHOR0 - add x0, x0, 728 - strb w2, [x0,3084] + add x0, x0, 768 + strb w2, [x0,2073] add x0, x0, x5 bl sblk_prog_page ldrh w0, [x19,6] cmp w0, 1 - bne .L2780 + bne .L3061 bl sblk_wait_write_queue_completed bl ftl_write_completed mov x0, x19 bl ftl_write_last_log_page mov x0, x19 bl ftl_alloc_new_data_sblk -.L2780: +.L3061: add x21, x21, :lo12:.LANCHOR0 - ldrb w19, [x21,2819] - cbnz w19, .L2778 + ldrb w19, [x21,2840] + cbnz w19, .L3059 bl ftl_write_completed mov w0, w19 -.L2836: +.L3116: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -18929,7 +20234,7 @@ ftl_write_commit: .global gc_do_copy_back .type gc_do_copy_back, %function gc_do_copy_back: - sub sp, sp, #192 + sub sp, sp, #208 stp x29, x30, [sp,16] add x29, sp, 16 stp x19, x20, [sp,32] @@ -18939,13 +20244,13 @@ gc_do_copy_back: stp x23, x24, [sp,64] stp x25, x26, [sp,80] stp x27, x28, [sp,96] - ldrb w0, [x21,3193] + ldrb w0, [x21,3241] ldr x22, [x21,80] - cbnz w0, .L2840 + cbnz w0, .L3121 bl buf_alloc mov x20, x0 - cbz x0, .L2839 - ldrh w23, [x21,2866] + cbz x0, .L3120 + ldrh w23, [x21,2914] mov w0, w23 add w23, w23, 1 bl gc_get_src_ppa_from_index @@ -18953,92 +20258,88 @@ gc_do_copy_back: mov w22, w0 mov w1, 1 mov x0, x20 - strh w23, [x21,2866] + strh w23, [x21,2914] bl sblk_read_page ldr w0, [x20,52] cmp w0, 512 - beq .L2897 + beq .L3176 cmn w0, #1 - bne .L2842 -.L2897: + bne .L3123 +.L3176: add x3, x19, :lo12:.LANCHOR0 mov w2, 21 - ldrh w1, [x3,3266] + ldrh w1, [x3,3314] lsr w0, w22, w1 sub w1, w2, w1 mov w2, 1 lsl w1, w2, w1 sub w1, w1, #1 and w1, w0, w1 - ldrb w0, [x3,3264] + ldrb w0, [x3,3312] udiv w0, w1, w0 mov x1, 0 bl ftl_sblk_dump -.L2842: +.L3123: ldr w0, [x20,52] cmp w0, 512 - beq .L2898 + beq .L3177 cmn w0, #1 - cset w2, eq - cbz w2, .L2844 -.L2898: + bne .L3125 +.L3177: adrp x1, .LANCHOR3 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR3 add x0, x0, :lo12:.LC0 - add x1, x1, 664 + add x1, x1, 776 mov w2, 573 bl printk -.L2846: - b .L2846 -.L2844: +.L3125: ldr x0, [x20,24] - str x2, [x29,120] ldr w21, [x0,4] mov w0, w21 bl lpa_hash_get_ppa - str w0, [x29,128] + str w0, [x29,144] cmn w0, #1 - ldr x2, [x29,120] - bne .L2847 + bne .L3127 mov w0, w21 - add x1, x29, 128 + add x1, x29, 144 + mov w2, 0 bl pm_log2phys -.L2847: - ldr w23, [x29,128] +.L3127: + ldr w23, [x29,144] cmp w23, w22 - bne .L2848 + bne .L3128 add x1, x19, :lo12:.LANCHOR0 - add x0, x1, 728 - add x1, x1, 2776 -.L2851: + add x0, x1, 768 + add x1, x1, 2816 +.L3131: ldr w2, [x0,36] cmp w2, w21 - bne .L2849 + bne .L3129 ldrb w2, [x0,2] - tbz x2, 1, .L2849 + tbz x2, 1, .L3129 mov x0, x20 bl buf_free - adrp x0, .LANCHOR2+400 - ldr w0, [x0,#:lo12:.LANCHOR2+400] - tbz x0, 8, .L2839 + adrp x0, .LANCHOR2 + ldr w0, [x0,#:lo12:.LANCHOR2] + tbz x0, 8, .L3120 add x19, x19, :lo12:.LANCHOR0 - adrp x0, .LC186 + adrp x0, .LC273 mov w1, w21 mov w2, w23 - add x0, x0, :lo12:.LC186 - ldrh w3, [x19,2866] + add x0, x0, :lo12:.LC273 + ldrh w3, [x19,2914] bl printk - b .L2839 -.L2849: + b .L3120 +.L3129: add x0, x0, 64 cmp x0, x1 - bne .L2851 + bne .L3131 add x22, x19, :lo12:.LANCHOR0 ldrb w1, [x20,2] str w21, [x20,36] strb wzr, [x20,57] - ldrb w0, [x22,2776] + ldrb w0, [x22,2816] strb w0, [x20,56] mov w0, 10 orr w0, w1, w0 @@ -19046,75 +20347,77 @@ gc_do_copy_back: ldr x0, [x20,24] ldr w0, [x0] str w0, [x20,32] - adrp x0, .LANCHOR2+400 - ldr w0, [x0,#:lo12:.LANCHOR2+400] - tbz x0, 8, .L2852 - ldr w2, [x29,128] + adrp x0, .LANCHOR2 + ldr w0, [x0,#:lo12:.LANCHOR2] + tbz x0, 8, .L3132 + ldr w2, [x29,144] mov w0, w21 - str x2, [x29,120] + str x2, [x29,136] bl lpa_hash_get_ppa mov w3, w0 - ldr x2, [x29,120] - adrp x0, .LC187 - ldrh w5, [x22,2866] - add x0, x0, :lo12:.LC187 + ldr x2, [x29,136] + adrp x0, .LC274 + ldrh w5, [x22,2914] + add x0, x0, :lo12:.LC274 mov w1, w21 mov w4, w23 bl printk -.L2852: +.L3132: add x19, x19, :lo12:.LANCHOR0 mov x0, x20 bl ftl_gc_write_buf bl ftl_write_commit - ldr x1, [x19,2800] + ldr x1, [x19,2848] ldr w0, [x1,60] add w0, w0, 1 str w0, [x1,60] - ldrh w0, [x19,2868] + ldrh w0, [x19,2916] add w0, w0, 1 - strh w0, [x19,2868] - b .L2839 -.L2848: - adrp x0, .LANCHOR2+400 - ldr w0, [x0,#:lo12:.LANCHOR2+400] - tbz x0, 8, .L2854 + strh w0, [x19,2916] + b .L3120 +.L3128: + adrp x0, .LANCHOR2 + ldr w0, [x0,#:lo12:.LANCHOR2] + tbz x0, 8, .L3134 mov w0, w21 add x19, x19, :lo12:.LANCHOR0 bl lpa_hash_get_ppa mov w3, w0 - ldrh w5, [x19,2866] - adrp x0, .LC187 - add x0, x0, :lo12:.LC187 + ldrh w5, [x19,2914] + adrp x0, .LC274 + add x0, x0, :lo12:.LC274 mov w1, w21 mov w2, w23 mov w4, w22 bl printk -.L2854: +.L3134: mov x0, x20 bl buf_free - b .L2839 -.L2840: - ldrb w24, [x21,3177] - add x0, x21, 2840 + b .L3120 +.L3121: + ldrb w24, [x21,3225] + add x0, x21, 2888 add x22, x22, 80 cmp w24, 3 - bne .L2855 - ldrb w1, [x21,3192] - cbz w1, .L2856 + bne .L3135 + ldrb w1, [x21,3240] + cbz w1, .L3136 ldrb w20, [x22,9] ldrh w21, [x0,314] + str w24, [x29,136] add w23, w20, w20, lsl 1 sub w20, w20, w20, lsl 2 sdiv w23, w21, w23 madd w20, w23, w20, w21 uxth w20, w20 - b .L2858 -.L2856: + b .L3138 +.L3136: ldrh w20, [x0,314] adrp x0, .LANCHOR2 ldrb w21, [x22,9] add x0, x0, :lo12:.LANCHOR2 - add x0, x0, 1432 + add x0, x0, 1528 + str w24, [x29,136] sdiv w1, w20, w21 msub w20, w1, w21, w20 ldrh w25, [x0,w1,sxtw 1] @@ -19125,435 +20428,421 @@ gc_do_copy_back: cmp w25, 1 add w21, w21, w21, lsl 1 uxth w21, w21 - bne .L2859 - b .L2858 -.L2855: + bne .L3139 + b .L3138 +.L3135: ldrb w20, [x22,9] - mov w24, 1 - ldrb w1, [x21,3268] + ldrb w1, [x21,3316] ldrh w21, [x0,314] + mov w0, 1 sdiv w23, w21, w20 msub w20, w23, w20, w21 uxth w20, w20 - cbz w1, .L2858 - mov w24, 2 -.L2858: + cbz w1, .L3221 + mov w0, 2 +.L3221: + str w0, [x29,136] +.L3138: mov w25, 0 - add x2, x19, :lo12:.LANCHOR0 + add x24, x19, :lo12:.LANCHOR0 adrp x3, .LANCHOR4 -.L2861: +.L3141: ldrb w1, [x22,9] - mul w0, w24, w1 + ldr w0, [x29,136] + mul w0, w0, w1 cmp w25, w0 - bge .L2895 - ldrh w0, [x2,3194] + bge .L3174 + ldrh w0, [x24,3242] add w26, w21, w25 mul w0, w0, w1 sub w0, w0, #1 cmp w26, w0 - beq .L2895 + beq .L3174 add x0, x3, :lo12:.LANCHOR4 sbfiz x26, x26, 2, 32 - ldr x1, [x0,1064] + ldr x1, [x0,1112] ldr w0, [x1,x26] cmn w0, #1 - bne .L2862 - ldrh w27, [x2,2866] - add x28, x2, 2840 - ldrh w0, [x2,2864] - str x3, [x29,104] - str x1, [x29,112] + bne .L3142 + ldrh w27, [x24,2914] + ldrh w0, [x24,2912] + str x3, [x29,120] + str x1, [x29,128] cmp w0, w27 - str x2, [x29,120] - bls .L2839 + bls .L3120 mov w0, w27 add w27, w27, 1 bl gc_get_src_ppa_from_index - strh w27, [x28,26] - ldr x1, [x29,112] - ldr x3, [x29,104] - ldr x2, [x29,120] + strh w27, [x24,2914] + ldr x1, [x29,128] + ldr x3, [x29,120] str w0, [x1,x26] -.L2862: +.L3142: add w25, w25, 1 uxth w25, w25 - b .L2861 -.L2895: + b .L3141 +.L3174: mov w25, 1 -.L2859: +.L3139: adrp x0, .LANCHOR2 - str x0, [x29,112] - add x1, x0, :lo12:.LANCHOR2 - ldr w1, [x1,400] - tbz x1, 8, .L2864 - adrp x0, .LANCHOR4+1064 + str x0, [x29,120] + ldr w1, [x0,#:lo12:.LANCHOR2] + tbz x1, 8, .L3144 + adrp x0, .LANCHOR4+1112 add x4, x19, :lo12:.LANCHOR0 ubfiz x5, x21, 2, 16 mov w1, w23 mov w2, w25 mov w3, w20 - ldr x6, [x0,#:lo12:.LANCHOR4+1064] - adrp x0, .LC188 - ldrh w4, [x4,3154] - add x0, x0, :lo12:.LC188 + ldr x6, [x0,#:lo12:.LANCHOR4+1112] + adrp x0, .LC275 + ldrh w4, [x4,3202] + add x0, x0, :lo12:.LC275 ldr w5, [x6,x5] mov w6, w21 bl printk -.L2864: - adrp x0, .LC189 - mov w28, 0 - add x0, x0, :lo12:.LC189 +.L3144: + adrp x0, .LC0 + mov w27, 0 + add x0, x0, :lo12:.LC0 + str x0, [x29,112] + adrp x0, .LANCHOR3 + add x0, x0, :lo12:.LANCHOR3 + add x0, x0, 776 str x0, [x29,104] -.L2865: +.L3145: ldrb w0, [x22,9] - mul w0, w24, w0 - cmp w28, w0 - bge .L2939 - add w1, w21, w28 - sxtw x0, w1 - str x0, [x29,120] + ldr w1, [x29,136] + mul w0, w1, w0 + cmp w27, w0 + bge .L3225 + add w26, w21, w27 + sxtw x0, w26 + str x0, [x29,128] add x0, x19, :lo12:.LANCHOR0 - ldr x2, [x29,120] - ldr x0, [x0,3184] - ldrb w0, [x0,x2] + ldr x1, [x29,128] + ldr x0, [x0,3232] + ldrb w0, [x0,x1] cmp w0, 255 - bne .L2866 + bne .L3146 mov w0, 0 - str x1, [x29,96] bl buf_alloc - mov x27, x0 - ldr x1, [x29,96] - cbnz x0, .L2867 + mov x24, x0 + cbnz x0, .L3147 bl sblk_wait_write_queue_completed bl ftl_write_completed bl gc_write_completed bl gc_free_temp_buf - mov w0, w27 + mov w0, w24 bl buf_alloc - mov x27, x0 - ldr x1, [x29,96] - cbz x0, .L2839 -.L2867: - add x26, x19, :lo12:.LANCHOR0 - ldr x3, [x29,120] - ldrb w2, [x27,1] - ldr x0, [x26,3184] - strb w2, [x0,x3] - strh w1, [x27,48] - ldrb w0, [x26,2847] - strb w25, [x27,61] + mov x24, x0 + cbz x0, .L3120 +.L3147: + add x28, x19, :lo12:.LANCHOR0 + ldr x2, [x29,128] + ldrb w1, [x24,1] + ldr x0, [x28,3232] + strb w1, [x0,x2] + strh w26, [x24,48] + ldrb w0, [x28,2895] + strb w25, [x24,61] add w0, w0, 1 - strb w0, [x26,2847] - ldrb w2, [x22,9] - ldrh w0, [x26,3194] - mul w0, w0, w2 + strb w0, [x28,2895] + ldrb w1, [x22,9] + ldrh w0, [x28,3242] + mul w0, w0, w1 sub w0, w0, #1 - cmp w1, w0 - bne .L2868 - adrp x0, .LANCHOR4 - mov w2, -1 - add x5, x0, :lo12:.LANCHOR4 - str x5, [x29,96] - ldr x0, [x5,1056] - str w2, [x0,x3,lsl 2] - ldrh w0, [x26,3194] - ldrb w2, [x26,3196] - ldr x1, [x5,1056] + cmp w26, w0 + adrp x26, .LANCHOR4 + bne .L3148 + add x26, x26, :lo12:.LANCHOR4 + mov w1, -1 + ldr x0, [x26,1104] + str w1, [x0,x2,lsl 2] + ldrh w0, [x28,3242] + ldrb w2, [x28,3244] + ldr x1, [x26,1104] mul w2, w0, w2 - ldr x0, [x27,8] + ldr x0, [x24,8] lsl w2, w2, 2 bl ftl_memcpy - ldrh w0, [x26,3194] - ldrb w2, [x26,3196] - ldr x5, [x29,96] + ldrh w0, [x28,3242] + ldrb w2, [x28,3244] + ldr x1, [x26,1112] mul w2, w0, w2 - ldr x1, [x5,1064] - ldr x0, [x27,8] + ldr x0, [x24,8] add x0, x0, x2, sxtw 2 lsl w2, w2, 2 bl ftl_memcpy - ldrb w2, [x26,2776] + ldrb w2, [x28,2816] mov w1, 0 - ldr x0, [x27,24] + ldr x0, [x24,24] lsl w2, w2, 1 bl ftl_memset - ldr x1, [x27,24] + ldr x1, [x24,24] mov w0, 15555 movk w0, 0xf55f, lsl 16 str w0, [x1] - ldrh w0, [x26,3194] - ldrb w1, [x26,3196] - ldr x2, [x27,24] - str x2, [x29,96] + ldrh w0, [x28,3242] + ldrb w1, [x28,3244] + ldr x26, [x24,24] mul w1, w0, w1 - ldr x0, [x27,8] + ldr x0, [x24,8] lsl w1, w1, 2 bl js_hash - ldr x2, [x29,96] - str w0, [x2,4] - ldr x1, [x26,80] - ldr x0, [x27,24] + str w0, [x26,4] + ldr x1, [x28,80] + ldr x0, [x24,24] ldr w1, [x1,132] - b .L2936 -.L2868: - ldr x0, [x29,120] + b .L3222 +.L3148: + ldr x0, [x29,128] mov w1, 1 - lsl x4, x0, 2 - adrp x0, .LANCHOR4 - add x0, x0, :lo12:.LANCHOR4 - str x4, [x29,96] - ldr x0, [x0,1064] - ldr w0, [x0,x4] - str w0, [x27,40] - mov x0, x27 + lsl x28, x0, 2 + add x0, x26, :lo12:.LANCHOR4 + ldr x0, [x0,1112] + ldr w0, [x0,x28] + str w0, [x24,40] + mov x0, x24 bl sblk_read_page - ldr w0, [x27,52] - ldr x4, [x29,96] + ldr w0, [x24,52] cmp w0, 512 - beq .L2869 + beq .L3149 cmn w0, #1 - bne .L2870 -.L2869: - add x5, x19, :lo12:.LANCHOR0 - mov w1, 21 - str x4, [x29,96] - ldrh w0, [x5,3266] - sub w2, w1, w0 + bne .L3150 +.L3149: + add x4, x19, :lo12:.LANCHOR0 + mov w2, 21 mov w1, 1 + ldrh w0, [x4,3314] + sub w2, w2, w0 lsl w2, w1, w2 - ldr w1, [x27,40] + ldr w1, [x24,40] sub w2, w2, #1 lsr w0, w1, w0 - ldrb w1, [x5,3264] + ldrb w1, [x4,3312] and w0, w2, w0 udiv w0, w0, w1 mov x1, 0 bl ftl_sblk_dump - ldr w0, [x27,52] - ldr x4, [x29,96] + ldr w0, [x24,52] cmp w0, 512 - beq .L2899 + beq .L3178 cmn w0, #1 - bne .L2870 -.L2899: - ldr x0, [x27,24] + bne .L3150 +.L3178: + ldr x0, [x24,24] mov w1, -1 str w1, [x0,4] -.L2870: - ldr w0, [x27,52] +.L3150: + ldr w0, [x24,52] cmp w0, 512 - beq .L2900 + beq .L3179 cmn w0, #1 - bne .L2873 -.L2900: - adrp x1, .LANCHOR3 - adrp x0, .LC0 - add x1, x1, :lo12:.LANCHOR3 - add x0, x0, :lo12:.LC0 - add x1, x1, 664 + bne .L3153 +.L3179: + ldr x0, [x29,112] mov w2, 688 + ldr x1, [x29,104] bl printk -.L2875: - b .L2875 -.L2873: - ldr x1, [x27,24] +.L3153: + ldr x1, [x24,24] add x0, x19, :lo12:.LANCHOR0 ldr w2, [x1,4] - ldr w0, [x0,2784] + ldr w0, [x0,2824] cmp w2, w0 - bcc .L2876 + bcc .L3155 mov w0, -1 str w0, [x1,4] -.L2876: - ldr x0, [x27,24] +.L3155: + ldr x0, [x24,24] + add x26, x26, :lo12:.LANCHOR4 ldr w1, [x0,4] - adrp x0, .LANCHOR4 - add x0, x0, :lo12:.LANCHOR4 - ldr x0, [x0,1056] - str w1, [x0,x4] - ldr x0, [x27,24] - ldr w1, [x27,40] -.L2936: + ldr x0, [x26,1104] + str w1, [x0,x28] + ldr x0, [x24,24] + ldr w1, [x24,40] +.L3222: str w1, [x0,8] -.L2866: - add x2, x19, :lo12:.LANCHOR0 - ldr x3, [x29,120] - add x1, x2, 728 - mov w5, 2 - sxtw x4, w28 - ldr x0, [x2,3184] - ldrb w3, [x0,x3] - add x0, x29, 128 - add x1, x1, x3, lsl 6 - str x1, [x0,w28,sxtw 3] - ldrb w0, [x2,3177] - strb w25, [x1,61] +.L3146: + add x3, x19, :lo12:.LANCHOR0 + ldr x2, [x29,128] + add x1, x3, 768 + sxtw x5, w27 + ldr x0, [x3,3232] + ldrb w4, [x0,x2] + add x0, x29, 144 + mov w2, 2 + add x1, x1, x4, lsl 6 + str x1, [x0,w27,sxtw 3] + ldrb w0, [x3,3225] + strh w2, [x1,50] cmp w0, 3 - strh w5, [x1,50] - bne .L2877 - udiv w0, w28, w0 - ldrh w2, [x2,3270] - ldrh w5, [x1,48] - add w3, w0, w20 + strb w25, [x1,61] + adrp x2, .LANCHOR4 + bne .L3156 + udiv w0, w27, w0 + ldrh w3, [x3,3318] + add x2, x2, :lo12:.LANCHOR4 + add w4, w0, w20 + add x4, x22, x4, sxtw 1 + ldrh w4, [x4,16] + mul w3, w4, w3 + ldrh w4, [x1,48] + add w0, w0, w0, lsl 1 + orr w3, w3, w23 + sub w0, w27, w0 + str w3, [x1,40] + ldr x1, [x2,1120] + uxth w0, w0 + add w0, w0, 1 + orr w0, w3, w0, lsl 24 + str w0, [x1,x4,lsl 2] + b .L3157 +.L3156: + cmp w0, 2 + bne .L3158 + ldrb w6, [x3,3316] + add x1, x1, 32 + ldrh w0, [x3,3318] + cbnz w6, .L3159 + add w3, w27, w20 add x3, x22, x3, sxtw 1 ldrh w3, [x3,16] - mul w2, w3, w2 - adrp x3, .LANCHOR4 - add x3, x3, :lo12:.LANCHOR4 - add w0, w0, w0, lsl 1 - sub w0, w28, w0 - orr w2, w2, w23 - str w2, [x1,40] - uxth w0, w0 - ldr x1, [x3,1072] - add w0, w0, 1 - orr w0, w2, w0, lsl 24 - str w0, [x1,x5,lsl 2] - b .L2878 -.L2877: - cmp w0, 2 - bne .L2879 - ldrb w5, [x2,3268] - add x1, x1, 32 - ldrh w0, [x2,3270] - cbnz w5, .L2880 - add w2, w28, w20 - add x2, x22, x2, sxtw 1 - ldrh w2, [x2,16] - madd w0, w2, w0, w23 - b .L2938 -.L2880: - add w2, w20, w28, lsr 1 - add x2, x22, x2, sxtw 1 - ldrh w2, [x2,16] - madd w0, w2, w0, w23 - and w2, w28, 1 - add w0, w0, w2 -.L2938: + madd w0, w3, w0, w23 + b .L3224 +.L3159: + add w3, w20, w27, lsr 1 + add x3, x22, x3, sxtw 1 + ldrh w3, [x3,16] + madd w0, w3, w0, w23 + and w3, w27, 1 + add w0, w0, w3 +.L3224: orr w0, w0, 33554432 str w0, [x1,8] -.L2879: +.L3158: add x0, x19, :lo12:.LANCHOR0 - adrp x1, .LANCHOR4 - add x0, x0, 728 - add x1, x1, :lo12:.LANCHOR4 - add x0, x0, x3, lsl 6 + add x2, x2, :lo12:.LANCHOR4 + add x0, x0, 768 + add x0, x0, x4, lsl 6 ldr w3, [x0,40] - ldrh w2, [x0,48] - ldr x0, [x1,1072] - str w3, [x0,x2,lsl 2] -.L2878: - ldr x0, [x29,112] - add x0, x0, :lo12:.LANCHOR2 - ldr w0, [x0,400] - tbz x0, 8, .L2881 - add x0, x29, 128 - ldr x1, [x29,120] + ldrh w1, [x0,48] + ldr x0, [x2,1120] + str w3, [x0,x1,lsl 2] +.L3157: + ldr x0, [x29,120] + ldr w0, [x0,#:lo12:.LANCHOR2] + tbz x0, 8, .L3160 + add x0, x29, 144 + ldr x1, [x29,128] mov w2, w25 - ldr x5, [x0,x4,lsl 3] + ldr x5, [x0,x5,lsl 3] add x0, x19, :lo12:.LANCHOR0 - ldrb w3, [x0,2846] - ldr x0, [x0,3184] + ldrb w3, [x0,2894] + ldr x0, [x0,3232] ldrh w6, [x5,48] ldrb w7, [x5,1] ldrb w4, [x0,x1] mov w0, 3 - mov w1, w28 - udiv w0, w28, w0 + mov w1, w27 + udiv w0, w27, w0 add w0, w20, w0 str w0, [sp] ldr x0, [x5,24] ldr w0, [x0,4] str w0, [sp,8] - ldr x0, [x29,104] + adrp x0, .LC276 + add x0, x0, :lo12:.LC276 ldr w5, [x5,40] bl printk -.L2881: - add w8, w28, 1 - uxth w28, w8 - b .L2865 -.L2939: +.L3160: + add w8, w27, 1 + uxth w27, w8 + b .L3145 +.L3225: add x2, x19, :lo12:.LANCHOR0 mov w1, 0 - ldrb w0, [x2,3177] + ldrb w0, [x2,3225] cmp w0, 3 - add x0, x29, 128 - bne .L2924 - ldrb w1, [x2,3192] - cbz w1, .L2884 -.L2887: - ldr x1, [x29,128] + add x0, x29, 144 + bne .L3207 + ldrb w1, [x2,3240] + cbz w1, .L3163 +.L3166: + ldr x1, [x29,144] strb wzr, [x1,60] - b .L2885 -.L2884: + b .L3164 +.L3163: cmp w25, 1 mov w2, 9 - beq .L2937 + beq .L3223 cmp w25, 2 - bne .L2887 + bne .L3166 mov w2, 13 -.L2937: - ldr x1, [x29,128] +.L3223: + ldr x1, [x29,144] strb w2, [x1,60] -.L2885: +.L3164: ldrb w2, [x22,9] add x1, x0, 24 bl sblk_xlc_prog_pages - b .L2888 -.L2924: + b .L3167 +.L3207: ldrb w2, [x22,9] - mul w2, w2, w24 + ldr w3, [x29,136] + mul w2, w2, w3 sub w2, w2, #1 cmp w1, w2 - bge .L2940 + bge .L3226 ldr x2, [x0,w1,sxtw 3] add w1, w1, 1 ldr x3, [x0,w1,sxtw 3] uxth w1, w1 ldrb w3, [x3,1] strb w3, [x2] - b .L2924 -.L2940: + b .L3207 +.L3226: ldr x0, [x0,w2,sxtw 3] mov w1, -1 strb w1, [x0] ldrb w1, [x22,9] - ldr x0, [x29,128] - mul w1, w24, w1 + ldr x0, [x29,144] + mul w1, w3, w1 bl sblk_prog_page -.L2888: +.L3167: add x1, x19, :lo12:.LANCHOR0 ldrb w2, [x22,9] - ldrb w3, [x1,3192] - cbz w3, .L2890 + ldrb w3, [x1,3240] + cbz w3, .L3169 add w0, w2, w2, lsl 1 and w2, w0, 1023 - b .L2891 -.L2890: - ldrb w1, [x1,3268] + b .L3170 +.L3169: + ldrb w1, [x1,3316] ubfiz w0, w2, 1, 8 cmp w1, wzr csel w2, w0, w2, ne -.L2891: +.L3170: add x19, x19, :lo12:.LANCHOR0 - ldr x1, [x19,2800] + ldr x1, [x19,2848] ldr w0, [x1,52] add w0, w0, w2 str w0, [x1,52] - ldrh w1, [x19,3154] + ldrh w1, [x19,3202] add w0, w2, w1 - ldrh w1, [x19,3194] + ldrh w1, [x19,3242] uxth w0, w0 - strh w0, [x19,3154] + strh w0, [x19,3202] ldrb w2, [x22,9] mul w1, w1, w2 cmp w0, w1 - blt .L2892 + blt .L3171 ldr x0, [x19,80] strh wzr, [x0,86] -.L2892: +.L3171: bl gc_write_completed -.L2839: +.L3120: sub sp, x29, #16 ldp x19, x20, [sp,32] ldp x21, x22, [sp,48] @@ -19561,15 +20850,16 @@ gc_do_copy_back: ldp x25, x26, [sp,80] ldp x27, x28, [sp,96] ldp x29, x30, [sp,16] - add sp, sp, 192 + add sp, sp, 208 ret .size gc_do_copy_back, .-gc_do_copy_back .align 2 .global zftl_discard .type zftl_discard, %function zftl_discard: - stp x29, x30, [sp, -112]! - add w3, w0, w1 + stp x29, x30, [sp, -128]! + add w2, w0, w1 + mov w4, -1 add x29, sp, 0 stp x21, x22, [sp,32] adrp x21, .LANCHOR0 @@ -19579,208 +20869,225 @@ zftl_discard: stp x23, x24, [sp,48] stp x25, x26, [sp,64] stp x27, x28, [sp,80] - ldr w2, [x1,4] - cmp w3, w2 - bhi .L2961 - adrp x22, .LANCHOR8 + ldr w1, [x1,4] + cmp w2, w1 + bhi .L3228 + adrp x23, .LANCHOR8 add w24, w0, 24576 - add x2, x22, :lo12:.LANCHOR8 - ldr w0, [x2,3520] - add w0, w19, w0 - str w0, [x2,3520] - ldr x0, [x1,2800] - ldrb w1, [x1,2776] - ldr w25, [x0,8] - udiv w20, w24, w1 - add w2, w25, 1 - str w2, [x0,8] - msub w26, w20, w1, w24 - cbz w26, .L2943 - sub w1, w1, w26 + add x0, x23, :lo12:.LANCHOR8 + adrp x25, .LANCHOR2 + ldr w1, [x0,3584] + add w1, w19, w1 + str w1, [x0,3584] + ldr w0, [x25,#:lo12:.LANCHOR2] + tbz x0, 12, .L3229 + adrp x0, .LC277 + mov w2, w24 + add x0, x0, :lo12:.LC277 + mov w3, w19 + mov w4, 0 + bl printk +.L3229: + add x20, x21, :lo12:.LANCHOR0 + ldr x0, [x20,2848] + ldr w26, [x0,8] + add w1, w26, 1 + str w1, [x0,8] + bl ftl_write_commit + bl ftl_flush + ldrb w22, [x20,2816] + udiv w20, w24, w22 + msub w27, w20, w22, w24 + cbz w27, .L3230 + sub w22, w22, w27 mov w0, w20 - cmp w1, w19 - csel w28, w1, w19, ls + cmp w22, w19 + csel w22, w22, w19, ls bl lpa_hash_get_ppa - str w0, [x29,104] + str w0, [x29,120] cmn w0, #1 - bne .L2944 + bne .L3231 mov w0, w20 - add x1, x29, 104 + add x1, x29, 120 mov w2, 0 bl pm_log2phys -.L2944: - ldr w0, [x29,104] - and w27, w28, 65535 +.L3231: + ldr w0, [x29,120] + and w28, w22, 65535 cmn w0, #1 - beq .L2946 + beq .L3233 mov w0, 0 bl buf_alloc - mov x23, x0 - cbz x0, .L2946 + mov x3, x0 + cbz x0, .L3233 + strb w27, [x0,57] + ubfiz x27, x27, 9, 25 str w20, [x0,36] - lsl w2, w27, 9 - strb w26, [x0,57] - strb w28, [x0,56] - str w25, [x0,32] - ubfiz x0, x26, 9, 25 - ldr x1, [x23,8] - add x0, x1, x0 mov w1, 0 + strb w22, [x0,56] + lsl w2, w28, 9 + str w26, [x0,32] + ldr x0, [x0,8] + str x3, [x29,104] + add x0, x0, x27 bl ftl_memset - mov x0, x23 + ldr x3, [x29,104] + mov x0, x3 bl ftl_write_buf bl ftl_write_commit add x0, x21, :lo12:.LANCHOR0 - ldr x1, [x0,2800] + ldr x1, [x0,2848] ldr w0, [x1,76] add w0, w0, 1 str w0, [x1,76] -.L2946: +.L3233: add w20, w20, 1 - sub w19, w19, w27 -.L2943: - cbz w19, .L2948 + sub w19, w19, w28 +.L3230: + cbz w19, .L3235 bl ftl_flush -.L2948: +.L3235: mov w0, -1 mov w27, 1 - str w0, [x29,108] + str w0, [x29,124] mov w28, 21 -.L2949: - add x26, x21, :lo12:.LANCHOR0 - ldrb w0, [x26,2776] +.L3236: + add x22, x21, :lo12:.LANCHOR0 + ldrb w0, [x22,2816] cmp w19, w0 - bcc .L2982 + bcc .L3275 mov w0, w20 bl lpa_hash_get_ppa - str w0, [x29,104] + str w0, [x29,120] cmn w0, #1 - beq .L2950 + beq .L3237 mov w0, 0 bl buf_alloc - mov x23, x0 - cbz x0, .L2952 - ldrb w2, [x26,2776] + mov x3, x0 + cbz x0, .L3239 + ldrb w2, [x22,2816] mov w1, 0 str w20, [x0,36] strb w2, [x0,56] lsl w2, w2, 9 - str w25, [x0,32] + str w26, [x0,32] strb wzr, [x0,57] ldr x0, [x0,8] + str x3, [x29,104] bl ftl_memset - mov x0, x23 + ldr x3, [x29,104] + mov x0, x3 bl ftl_write_buf bl ftl_write_commit - b .L2981 -.L2950: + b .L3274 +.L3237: mov w0, w20 - add x1, x29, 104 + add x1, x29, 120 mov w2, 0 bl pm_log2phys - ldr w0, [x29,104] + ldr w0, [x29,120] cmn w0, #1 - beq .L2952 - add x1, x29, 108 + beq .L3239 + add x1, x29, 124 mov w2, 1 mov w0, w20 bl pm_log2phys - ldrh w0, [x26,3266] - ldr w1, [x29,104] + ldrh w0, [x22,3314] + ldr w1, [x29,120] sub w2, w28, w0 lsl w2, w27, w2 lsr w0, w1, w0 sub w2, w2, #1 - ldrb w1, [x26,3264] + ldrb w1, [x22,3312] and w0, w2, w0 udiv w0, w0, w1 bl ftl_vpn_decrement -.L2981: - ldr x1, [x26,2800] +.L3274: + ldr x1, [x22,2848] ldr w0, [x1,76] add w0, w0, 1 str w0, [x1,76] -.L2952: +.L3239: add x0, x21, :lo12:.LANCHOR0 add w20, w20, 1 - ldrb w0, [x0,2776] + ldrb w0, [x0,2816] sub w19, w19, w0 - b .L2949 -.L2982: - cbz w19, .L2956 + b .L3236 +.L3275: + cbz w19, .L3243 mov w0, w20 bl lpa_hash_get_ppa - str w0, [x29,104] + str w0, [x29,120] cmn w0, #1 - bne .L2957 + bne .L3244 mov w0, w20 - add x1, x29, 104 + add x1, x29, 120 mov w2, 0 bl pm_log2phys -.L2957: - ldr w0, [x29,104] +.L3244: + ldr w0, [x29,120] cmn w0, #1 - beq .L2956 + beq .L3243 mov w0, 0 bl buf_alloc - mov x23, x0 - cbz x0, .L2956 - add x21, x21, :lo12:.LANCHOR0 + mov x22, x0 + cbz x0, .L3243 str w20, [x0,36] strb wzr, [x0,57] strb w19, [x0,56] - str w25, [x0,32] - ldrb w0, [x21,2776] + str w26, [x0,32] + add x0, x21, :lo12:.LANCHOR0 + ldrb w0, [x0,2816] cmp w19, w0 - bcc .L2959 + bcc .L3246 adrp x1, .LANCHOR3 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR3 add x0, x0, :lo12:.LC0 - add x1, x1, 680 - mov w2, 1118 + add x1, x1, 792 + mov w2, 1177 bl printk -.L2960: - b .L2960 -.L2959: - ldr x0, [x23,8] +.L3246: + ldr x0, [x22,8] mov w1, 0 lsl w2, w19, 9 + add x21, x21, :lo12:.LANCHOR0 bl ftl_memset - mov x0, x23 + mov x0, x22 bl ftl_write_buf bl ftl_write_commit - ldr x1, [x21,2800] + ldr x1, [x21,2848] ldr w0, [x1,76] add w0, w0, 1 str w0, [x1,76] -.L2956: - add x22, x22, :lo12:.LANCHOR8 - mov w20, 0 - ldr w1, [x22,3520] +.L3243: + add x0, x23, :lo12:.LANCHOR8 + mov w4, 0 + ldr w1, [x0,3584] cmp w1, 8192 - bls .L2942 - adrp x0, .LC190 + bls .L3228 + ldr w0, [x25,#:lo12:.LANCHOR2] + tbz x0, 12, .L3247 + adrp x0, .LC277 mov w2, w24 + add x0, x0, :lo12:.LC277 mov w3, w19 - mov w4, w20 - add x0, x0, :lo12:.LC190 bl printk - str w20, [x22,3520] +.L3247: + add x23, x23, :lo12:.LANCHOR8 + str wzr, [x23,3584] bl flt_sys_flush mov w0, 1 - str w0, [x22,3524] - b .L2942 -.L2961: - mov w20, -1 -.L2942: - mov w0, w20 + mov w4, 0 + str w0, [x23,3588] +.L3228: + mov w0, w4 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] ldp x25, x26, [sp,64] ldp x27, x28, [sp,80] - ldp x29, x30, [sp], 112 + ldp x29, x30, [sp], 128 ret .size zftl_discard, .-zftl_discard .align 2 @@ -19799,774 +21106,820 @@ zftl_do_gc: stp x25, x26, [sp,80] stp x27, x28, [sp,96] cmp w24, 1 - ldrh w1, [x0,2792] - ldrh w20, [x0,2788] + ldrh w1, [x0,2832] + ldrh w21, [x0,2828] ldr x23, [x0,80] - add w20, w1, w20 - ldrh w22, [x0,2790] - uxth w20, w20 - bne .L2984 + add w21, w1, w21 + ldrh w22, [x0,2830] + uxth w21, w21 + bne .L3277 adrp x0, .LANCHOR7 adrp x25, .LANCHOR8 add x2, x0, :lo12:.LANCHOR7 - mov x21, x0 - ldr w26, [x2,3256] - cbnz w26, .L2985 + mov x20, x0 + ldr w26, [x2,3320] + cbnz w26, .L3278 add x0, x25, :lo12:.LANCHOR8 - ldr w0, [x0,3528] - cbz w0, .L2984 -.L2985: + ldr w0, [x0,3592] + cbz w0, .L3277 +.L3278: add w26, w26, 50 bl timer_get_time cmp w26, w0 - bcs .L2986 - add x0, x21, :lo12:.LANCHOR7 - str wzr, [x0,3256] -.L2986: + bcs .L3279 + add x0, x20, :lo12:.LANCHOR7 + str wzr, [x0,3320] +.L3279: add x19, x25, :lo12:.LANCHOR8 - ldr w20, [x19,3528] + ldr w20, [x19,3592] bl timer_get_time add w20, w20, 50 cmp w20, w0 - bcs .L3099 - str wzr, [x19,3528] - b .L3099 -.L2984: - adrp x0, .LANCHOR4 - add x2, x0, :lo12:.LANCHOR4 - mov x21, x0 - ldrb w2, [x2,1050] + bcs .L3395 + str wzr, [x19,3592] + b .L3395 +.L3277: + adrp x20, .LANCHOR4 + add x0, x20, :lo12:.LANCHOR4 + ldrb w2, [x0,1098] cmp w2, 6 - bhi .L3099 - adrp x0, .L2990 - add x0, x0, :lo12:.L2990 + bhi .L3395 + adrp x0, .L3283 + add x0, x0, :lo12:.L3283 ldrh w0, [x0,w2,uxtw #1] - adr x2, .Lrtx2990 + adr x2, .Lrtx3283 add x0, x2, w0, sxth #2 br x0 -.Lrtx2990: +.Lrtx3283: .section .rodata .align 0 .align 2 -.L2990: - .2byte (.L2989 - .Lrtx2990) / 4 - .2byte (.L2991 - .Lrtx2990) / 4 - .2byte (.L2992 - .Lrtx2990) / 4 - .2byte (.L2993 - .Lrtx2990) / 4 - .2byte (.L2994 - .Lrtx2990) / 4 - .2byte (.L3075 - .Lrtx2990) / 4 - .2byte (.L2996 - .Lrtx2990) / 4 +.L3283: + .2byte (.L3282 - .Lrtx3283) / 4 + .2byte (.L3284 - .Lrtx3283) / 4 + .2byte (.L3285 - .Lrtx3283) / 4 + .2byte (.L3286 - .Lrtx3283) / 4 + .2byte (.L3287 - .Lrtx3283) / 4 + .2byte (.L3365 - .Lrtx3283) / 4 + .2byte (.L3289 - .Lrtx3283) / 4 .text -.L2989: +.L3282: ldrh w28, [x23,80] add x27, x19, :lo12:.LANCHOR0 mov w0, 65535 add w22, w22, w1 cmp w28, w0 uxth w22, w22 - ldrh w25, [x27,2794] - ldrh w26, [x27,2796] - beq .L2997 - adrp x0, .LANCHOR2+400 + ldrh w25, [x27,2834] + ldrh w26, [x27,2836] + beq .L3290 + adrp x0, .LANCHOR2 cmp w22, 7 mov w24, 3 csinc w24, w24, wzr, hi - ldr w0, [x0,#:lo12:.LANCHOR2+400] - tbz x0, 8, .L2999 + ldr w0, [x0,#:lo12:.LANCHOR2] + tbz x0, 8, .L3292 ldrh w5, [x23,124] - adrp x0, .LC191 + adrp x0, .LC278 ldrh w6, [x23,120] - add x0, x0, :lo12:.LC191 + add x0, x0, :lo12:.LC278 ldrh w7, [x23,122] mov w1, 1705 - ldrb w2, [x27,3193] - mov w3, w20 + ldrb w2, [x27,3241] + mov w3, w21 str w28, [sp] mov w4, w22 bl printk -.L2999: +.L3292: add x19, x19, :lo12:.LANCHOR0 mov w1, w24 mov w2, 1 - ldrb w0, [x19,3193] + ldrb w0, [x19,3241] bl gc_search_src_blk cmp w0, wzr - ble .L3099 -.L3005: - add x0, x21, :lo12:.LANCHOR4 - mov w1, 1 - b .L3117 -.L2997: + ble .L3395 +.L3298: + add x20, x20, :lo12:.LANCHOR4 + mov w0, 1 + b .L3416 +.L3290: cmp w24, 1 - bne .L3001 + bne .L3294 bl gc_scan_static_data adrp x23, .LANCHOR8 bl gc_static_wearleveling bl gc_block_vpn_scan add x0, x23, :lo12:.LANCHOR8 - ldr w0, [x0,3524] - cbz w0, .L3003 + ldr w0, [x0,3588] + cbz w0, .L3296 mov w1, 5 mov w0, 0 bl zftl_get_gc_node uxth w1, w0 cmp w1, w28 - beq .L3004 + beq .L3297 ubfiz x1, x1, 1, 16 ldr x2, [x27,72] ldrh w1, [x2,x1] cmp w1, 4 - bhi .L3004 + bhi .L3297 mov w1, w24 mov w2, 0 bl gc_add_sblk - cbnz w0, .L3005 -.L3004: + cbnz w0, .L3298 +.L3297: mov w1, 4 mov w0, 0 bl zftl_get_gc_node uxth w1, w0 mov w2, 65535 cmp w1, w2 - beq .L3006 + beq .L3299 add x2, x19, :lo12:.LANCHOR0 ubfiz x1, x1, 1, 16 ldr x2, [x2,72] ldrh w1, [x2,x1] cmp w1, 4 - bhi .L3006 + bhi .L3299 mov w1, 1 mov w2, 0 bl gc_add_sblk - cbnz w0, .L3005 -.L3006: + cbnz w0, .L3298 +.L3299: add x27, x19, :lo12:.LANCHOR0 mov w1, 0 - ldr x0, [x27,3208] + ldr x0, [x27,3256] bl _list_get_gc_head_node.isra.5 uxth w1, w0 mov w2, 65535 cmp w1, w2 - beq .L3007 + beq .L3300 ubfiz x1, x1, 1, 16 ldr x2, [x27,72] ldrh w1, [x2,x1] cmp w1, 4 - bhi .L3007 + bhi .L3300 mov w1, 1 mov w2, 0 bl gc_add_sblk - cbnz w0, .L3005 -.L3007: + cbnz w0, .L3298 +.L3300: add x23, x23, :lo12:.LANCHOR8 - str wzr, [x23,3524] - b .L3003 -.L3001: - ldrh w0, [x27,2808] - cmp w0, w20 - bcc .L3099 -.L3003: + str wzr, [x23,3588] + b .L3296 +.L3294: + ldrh w0, [x27,2856] + cmp w0, w21 + bcc .L3395 +.L3296: add x1, x19, :lo12:.LANCHOR0 mov w0, 1 ldr x7, [x1,80] - strb w0, [x1,3193] + strb w0, [x1,3241] ldrh w5, [x7,124] - cbz w5, .L3009 - add x21, x21, :lo12:.LANCHOR4 - strb wzr, [x1,3193] - strb w0, [x21,1050] - adrp x0, .LANCHOR2+400 - ldr w0, [x0,#:lo12:.LANCHOR2+400] - tbz x0, 8, .L3099 + cbz w5, .L3302 + add x20, x20, :lo12:.LANCHOR4 + strb wzr, [x1,3241] + strb w0, [x20,1098] + adrp x0, .LANCHOR2 + ldr w0, [x0,#:lo12:.LANCHOR2] + tbz x0, 8, .L3395 ldrh w6, [x7,120] - adrp x0, .LC192 + adrp x0, .LC279 ldrh w7, [x7,122] mov w1, 1762 mov w2, 0 - mov w3, w20 + mov w3, w21 mov w4, w22 - add x0, x0, :lo12:.LC192 + add x0, x0, :lo12:.LC279 bl printk - b .L3099 -.L3009: - ldrh w3, [x1,2808] - cmp w20, w3 - bcs .L3012 + b .L3395 +.L3302: + ldrh w3, [x1,2856] + cmp w21, w3 + bcs .L3305 cmp w22, 1 - bls .L3013 + bls .L3306 cmp w22, 16 - bls .L3014 - ldrh w2, [x1,2798] - ldrh w1, [x1,3234] + bls .L3307 + ldrh w2, [x1,2838] + ldrh w1, [x1,3282] cmp w2, w1 - bcs .L3014 + bcs .L3307 mov w1, 3 mov w2, 16 - b .L3115 -.L3014: + b .L3414 +.L3307: mov w1, 2 mov w0, 1 mov w2, w1 add x19, x19, :lo12:.LANCHOR0 bl gc_search_src_blk uxth w0, w0 - cbnz w0, .L3005 - b .L3113 -.L3013: - adrp x0, .LANCHOR2+400 - strb w5, [x1,3193] - ldr w0, [x0,#:lo12:.LANCHOR2+400] - tbz x0, 8, .L3017 - adrp x0, .LC192 + cbnz w0, .L3298 + b .L3412 +.L3306: + adrp x0, .LANCHOR2 + strb w5, [x1,3241] + ldr w0, [x0,#:lo12:.LANCHOR2] + tbz x0, 8, .L3310 + adrp x0, .LC279 ldrh w6, [x7,120] ldrh w7, [x7,122] - add x0, x0, :lo12:.LC192 + add x0, x0, :lo12:.LC279 mov w1, 1778 mov w2, w5 - mov w3, w20 + mov w3, w21 mov w4, w22 bl printk -.L3017: +.L3310: add x19, x19, :lo12:.LANCHOR0 - cmp w20, 16 - ldrb w0, [x19,3193] - bls .L3018 + cmp w21, 16 + ldrb w0, [x19,3241] + bls .L3311 mov w1, 3 mov w2, 4 - b .L3115 -.L3018: + b .L3414 +.L3311: mov w1, 1 mov w2, w1 bl gc_search_src_blk uxth w0, w0 - cbnz w0, .L3005 -.L3113: - ldrb w0, [x19,3193] + cbnz w0, .L3298 +.L3412: + ldrb w0, [x19,3241] mov w1, 3 mov w2, 2 -.L3115: +.L3414: bl gc_search_src_blk uxth w0, w0 - b .L3015 -.L3012: + b .L3308 +.L3305: cmp w24, 1 lsl w0, w3, 1 - bne .L3019 - cmp w20, w0 - bge .L3019 + bne .L3312 + cmp w21, w0 + bge .L3312 add w0, w26, w25 uxth w0, w0 cmp w0, w22, lsr 1 - bcs .L3020 - ldrh w3, [x1,2798] - ldrh w2, [x1,3234] + bcs .L3313 + ldrh w3, [x1,2838] + ldrh w2, [x1,3282] cmp w3, w2 - bcs .L3020 - ldrh w0, [x1,3232] + bcs .L3313 + ldrh w0, [x1,3280] lsr w0, w0, 1 - strh w0, [x1,2808] - b .L3099 -.L3020: + strh w0, [x1,2856] + b .L3395 +.L3313: cmp w22, 1 - bls .L3021 + bls .L3314 cmp w22, 16 mov w0, 1 - bls .L3022 + bls .L3315 mov w1, 3 mov w2, 8 - b .L3112 -.L3022: + b .L3411 +.L3315: mov w1, 2 mov w2, w1 bl gc_search_src_blk uxth w0, w0 - cbnz w0, .L3023 + cbnz w0, .L3316 add x0, x19, :lo12:.LANCHOR0 mov w1, 3 mov w2, 2 - ldrb w0, [x0,3193] -.L3112: + ldrb w0, [x0,3241] +.L3411: bl gc_search_src_blk uxth w0, w0 -.L3023: +.L3316: add x19, x19, :lo12:.LANCHOR0 - b .L3114 -.L3021: - cmp w20, w0 - bcs .L3024 + b .L3413 +.L3314: + cmp w21, w0 + bcs .L3317 add x19, x19, :lo12:.LANCHOR0 mov w0, 0 mov w1, 3 mov w2, 8 - strb wzr, [x19,3193] + strb wzr, [x19,3241] bl gc_search_src_blk uxth w0, w0 -.L3114: - ldrh w1, [x19,3232] - strh w1, [x19,2808] - b .L3015 -.L3019: - cmp w20, w0 - blt .L3099 -.L3024: +.L3413: + ldrh w1, [x19,3280] + strh w1, [x19,2856] + b .L3308 +.L3312: + cmp w21, w0 + blt .L3395 +.L3317: add x19, x19, :lo12:.LANCHOR0 - ldrh w0, [x19,3232] + ldrh w0, [x19,3280] lsr w0, w0, 1 - strh w0, [x19,2808] - b .L3099 -.L3015: - cbnz w0, .L3005 - b .L3099 -.L2991: - add x20, x19, :lo12:.LANCHOR0 + strh w0, [x19,2856] + b .L3395 +.L3308: + cbnz w0, .L3298 + b .L3395 +.L3284: + add x21, x19, :lo12:.LANCHOR0 mov w0, 65535 - ldrh w1, [x20,2840] + ldrh w1, [x21,2888] cmp w1, w0 - bne .L3025 + bne .L3318 bl gc_get_src_blk - strh w0, [x20,2840] -.L3025: + strh w0, [x21,2888] +.L3318: add x0, x19, :lo12:.LANCHOR0 mov w2, 65535 - add x1, x0, 2840 - ldrh w3, [x0,2840] + add x1, x0, 2888 + ldrh w3, [x0,2888] cmp w3, w2 - beq .L3026 + beq .L3319 ldrh w5, [x1,56] uxtw x4, w3 ldr x2, [x0,64] add x2, x2, x4, lsl 2 - cbz w5, .L3028 + cbz w5, .L3321 mov x0, 0 -.L3027: +.L3320: cmp w5, w0, uxth - bls .L3028 + bls .L3321 add x0, x0, 1 add x6, x1, x0, lsl 1 ldrh w6, [x6,56] cmp w6, w3 - bne .L3027 -.L3032: + bne .L3320 +.L3326: add x19, x19, :lo12:.LANCHOR0 mov w0, -1 - strh w0, [x19,2840] - b .L3099 -.L3028: + strh w0, [x19,2888] + b .L3395 +.L3321: ldrb w0, [x2,2] tst w0, 192 - beq .L3079 + beq .L3369 and w0, w0, 224 cmp w0, 224 - bne .L3030 -.L3079: + bne .L3323 +.L3369: add x0, x19, :lo12:.LANCHOR0 ldr x0, [x0,72] ldrh w0, [x0,x4,lsl 1] - cbz w0, .L3032 + cbz w0, .L3326 adrp x1, .LANCHOR3 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR3 - add x0, x0, :lo12:.LC0 - add x1, x1, 696 mov w2, 1972 + add x1, x1, 808 + add x0, x0, :lo12:.LC0 bl printk -.L3033: - b .L3033 -.L3030: - add x0, x21, :lo12:.LANCHOR4 - mov w1, 2 -.L3117: - strb w1, [x0,1050] - b .L3099 -.L3026: - add x0, x21, :lo12:.LANCHOR4 - strb wzr, [x0,1050] - b .L3099 -.L2992: + b .L3326 +.L3323: + add x20, x20, :lo12:.LANCHOR4 + mov w0, 2 +.L3416: + strb w0, [x20,1098] + b .L3395 +.L3319: + add x20, x20, :lo12:.LANCHOR4 + strb wzr, [x20,1098] + b .L3395 +.L3285: bl gc_scan_src_blk cmn w0, #1 - bne .L3034 - add x0, x21, :lo12:.LANCHOR4 - mov w1, 3 - b .L3117 -.L3034: - add x22, x19, :lo12:.LANCHOR0 - mov w1, 65535 - add x20, x22, 2840 - ldrh w0, [x22,2840] - cmp w0, w1 - beq .L3005 - ldrh w1, [x20,24] - cbz w1, .L3035 - add x0, x21, :lo12:.LANCHOR4 - mov w1, 4 - strh wzr, [x20,26] - strb w1, [x0,1050] - b .L3099 -.L3035: - add x21, x21, :lo12:.LANCHOR4 - mov w1, 1 - ldr x2, [x22,72] - strb w1, [x21,1050] - ubfiz x1, x0, 1, 16 - ldrh w21, [x2,x1] - cbz w21, .L3036 + bne .L3327 + add x20, x20, :lo12:.LANCHOR4 + mov w0, 3 + b .L3416 +.L3327: + add x1, x19, :lo12:.LANCHOR0 + mov w3, 65535 + ldrh w0, [x1,2888] + cmp w0, w3 + beq .L3298 + ldrh w3, [x1,2912] + add x20, x20, :lo12:.LANCHOR4 + cbz w3, .L3328 + mov w0, 4 + strh wzr, [x1,2914] + strb w0, [x20,1098] + b .L3395 +.L3328: + ubfiz x0, x0, 1, 16 + ldr x1, [x1,72] + mov w2, 1 + strb w2, [x20,1098] + ldrh w0, [x1,x0] + cbz w0, .L3329 adrp x1, .LANCHOR3 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR3 add x0, x0, :lo12:.LC0 - add x1, x1, 696 + add x1, x1, 808 mov w2, 2000 bl printk -.L3037: - b .L3037 -.L3036: +.L3329: + add x20, x19, :lo12:.LANCHOR0 + add x22, x20, 2888 + ldrh w0, [x20,2888] + ldr x2, [x20,72] + ubfiz x1, x0, 1, 16 + ldrh w21, [x2,x1] + cbnz w21, .L3326 bl ftl_free_sblk - ldrh w1, [x22,2840] - ldr x0, [x22,72] + ldrh w1, [x20,2888] + ldr x0, [x20,72] strh w21, [x0,x1,lsl 1] - ldrh w1, [x20,30] + ldrh w1, [x22,30] add w1, w1, 1 uxth w1, w1 cmp w1, 8 - bhi .L3038 - strh w1, [x20,30] - b .L3032 -.L3038: - strh w21, [x20,30] + bhi .L3331 + strh w1, [x22,30] + b .L3326 +.L3331: + strh w21, [x22,30] bl ftl_flush bl pm_flush bl ftl_ext_info_flush mov w0, w21 bl ftl_info_flush - b .L3032 -.L2993: + b .L3326 +.L3286: add x22, x19, :lo12:.LANCHOR0 -.L3100: +.L3396: bl gc_scan_src_blk_one_page - ldrh w2, [x22,2842] - add x1, x22, 2840 - ldrh w0, [x22,3228] - cmp w2, w0 - bcs .L3039 - cmp w20, 7 - bls .L3100 - b .L3099 -.L3039: - ldrh w3, [x1,24] + ldrh w2, [x22,2890] + add x0, x22, 2888 + ldrh w1, [x22,3276] + cmp w2, w1 + bcs .L3332 + cmp w21, 7 + bls .L3396 + b .L3395 +.L3332: + ldrh w3, [x0,24] adrp x2, .LANCHOR2 - cbz w3, .L3040 - add x0, x21, :lo12:.LANCHOR4 - add x2, x2, :lo12:.LANCHOR2 - mov w4, 4 - strh wzr, [x1,26] - strb w4, [x0,1050] - ldr w0, [x2,400] - tbz x0, 8, .L3041 - ldrh w1, [x1] - adrp x0, .LC193 + cbz w3, .L3333 + add x20, x20, :lo12:.LANCHOR4 + mov w1, 4 + strh wzr, [x0,26] + strb w1, [x20,1098] + ldr w1, [x2,#:lo12:.LANCHOR2] + tbz x1, 8, .L3334 + ldrh w1, [x0] + adrp x0, .LC280 ldr x4, [x22,72] - add x0, x0, :lo12:.LC193 + add x0, x0, :lo12:.LC280 ubfiz x2, x1, 1, 16 ldrh w2, [x4,x2] bl printk -.L3041: - add x19, x19, :lo12:.LANCHOR0 - ldr x0, [x19,72] - ldrh w1, [x19,2840] - ldrh w1, [x0,x1,lsl 1] - ldrh w0, [x19,2864] +.L3334: + add x0, x19, :lo12:.LANCHOR0 + ldrh w2, [x0,2888] + ldr x1, [x0,72] + ldrh w0, [x0,2912] + ldrh w1, [x1,x2,lsl 1] cmp w1, w0 - beq .L3099 + beq .L3335 adrp x1, .LANCHOR3 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR3 add x0, x0, :lo12:.LC0 - add x1, x1, 696 + add x1, x1, 808 mov w2, 2034 bl printk -.L3042: - b .L3042 -.L3040: - add x0, x21, :lo12:.LANCHOR4 - add x2, x2, :lo12:.LANCHOR2 - mov w3, 1 - ldrh w1, [x1] - ldr x20, [x22,64] - add x20, x20, x1, uxth 2 - strb w3, [x0,1050] - ldr w0, [x2,400] - tbz x0, 8, .L3043 - ldrb w2, [x20,2] - adrp x0, .LC194 - add x0, x0, :lo12:.LC194 +.L3335: + add x19, x19, :lo12:.LANCHOR0 + ldrh w1, [x19,2888] + ldr x0, [x19,72] + ldrh w2, [x19,2912] + strh w2, [x0,x1,lsl 1] + b .L3395 +.L3333: + add x20, x20, :lo12:.LANCHOR4 + ldrh w1, [x0] + mov w0, 1 + ldr x21, [x22,64] + add x21, x21, x1, uxth 2 + strb w0, [x20,1098] + ldr w0, [x2,#:lo12:.LANCHOR2] + tbz x0, 8, .L3336 + ldrb w2, [x21,2] + adrp x0, .LC281 + add x0, x0, :lo12:.LC281 ubfx x2, x2, 5, 3 bl printk -.L3043: - ldrb w0, [x20,2] +.L3336: + ldrb w0, [x21,2] tst w0, 192 - beq .L3080 + beq .L3370 and w0, w0, 224 cmp w0, 224 - cset w21, eq - cbz w21, .L3044 -.L3080: + bne .L3337 +.L3370: adrp x1, .LANCHOR3 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR3 add x0, x0, :lo12:.LC0 - add x1, x1, 696 + add x1, x1, 808 mov w2, 2044 bl printk -.L3046: - b .L3046 -.L3044: +.L3337: add x19, x19, :lo12:.LANCHOR0 - add x20, x19, 2840 - ldrh w0, [x19,2840] + add x20, x19, 2888 + ldrh w0, [x19,2888] bl ftl_free_sblk mov w0, -1 - strh w0, [x19,2840] + strh w0, [x19,2888] ldrh w0, [x20,30] add w0, w0, 1 uxth w0, w0 cmp w0, 8 - bhi .L3047 + bhi .L3339 strh w0, [x20,30] - b .L3099 -.L3047: - strh w21, [x20,30] - b .L3118 -.L2994: - cbnz w24, .L3048 + b .L3395 +.L3339: + strh wzr, [x20,30] + b .L3417 +.L3287: + cbnz w24, .L3340 add x0, x19, :lo12:.LANCHOR0 - ldrh w0, [x0,2808] - cmp w0, w20 - bcc .L3099 -.L3048: + ldrh w0, [x0,2856] + cmp w0, w21 + bcc .L3395 +.L3340: ldrh w1, [x23,80] mov w0, 65535 cmp w1, w0 - bne .L3049 + bne .L3341 add x22, x19, :lo12:.LANCHOR0 - ldrb w0, [x22,3193] + ldrb w0, [x22,3241] cmp w0, 1 - bne .L3049 + bne .L3341 bl ftl_flush - ldrh w0, [x22,2792] - cbnz w0, .L3116 - ldrh w0, [x22,2790] -.L3116: - mov w1, 5 + ldrh w0, [x22,2832] + cbnz w0, .L3415 + ldrh w0, [x22,2830] +.L3415: lsr w0, w0, 1 + mov w1, 5 bl zftl_get_free_sblk - uxth w25, w0 - mov w1, 65535 - cmp w25, w1 - beq .L3052 - add x19, x19, :lo12:.LANCHOR0 - ldr x2, [x19,64] - add x2, x2, x25, uxth 2 - ldrb w1, [x2,2] - ands w20, w1, 224 - beq .L3053 + uxth w24, w0 + mov w0, 65535 + mov w22, w24 + cmp w24, w0 + beq .L3344 + add x0, x19, :lo12:.LANCHOR0 + ldr x21, [x0,64] + add x21, x21, x24, uxth 2 + ldrb w0, [x21,2] + tst w0, 224 + beq .L3345 adrp x1, .LANCHOR3 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR3 add x0, x0, :lo12:.LC0 - add x1, x1, 696 + add x1, x1, 808 mov w2, 2069 bl printk -.L3054: - b .L3054 -.L3053: - mov w26, 5 - add x21, x21, :lo12:.LANCHOR4 - bfi w1, w26, 5, 3 - orr w1, w1, 16 - strb w1, [x2,2] +.L3345: + ldrb w0, [x21,2] + mov w1, 5 + bfi w0, w1, 5, 3 + orr w0, w0, 16 + strb w0, [x21,2] +.L3364: + mov w0, w22 mov w1, 1 + add x19, x19, :lo12:.LANCHOR0 + add x20, x20, :lo12:.LANCHOR4 bl ftl_erase_sblk - strb w26, [x23,84] + mov w0, 5 add x1, x23, 96 - mov w0, w25 + strb w0, [x23,84] + mov w0, w22 bl ftl_get_blk_list_in_sblk uxtb w0, w0 - ldrh w1, [x19,3228] + ldrh w1, [x19,3276] strb w0, [x23,89] - ldrb w2, [x19,3196] + ldrb w2, [x19,3244] mul w0, w0, w1 - ldrh w1, [x19,3194] strh w0, [x23,86] - ldr x0, [x21,1056] - mul w2, w1, w2 - strh w25, [x23,80] mov w1, 255 - strh w20, [x23,82] + ldrh w0, [x19,3242] + strh w22, [x23,80] + strh wzr, [x23,82] + mul w2, w0, w2 + ldr x0, [x20,1104] + strb wzr, [x23,85] lsl w2, w2, 2 - strb w20, [x23,85] - strh w20, [x23,90] + strh wzr, [x23,90] bl ftl_memset - ldrh w1, [x19,3194] - ldrb w2, [x19,3196] - ldr x0, [x21,1064] - mul w2, w1, w2 + ldrh w0, [x19,3242] mov w1, 255 + ldrb w2, [x19,3244] + mul w2, w0, w2 + ldr x0, [x20,1112] lsl w2, w2, 2 bl ftl_memset - ldrh w3, [x19,3194] + ldrh w3, [x19,3242] mov w1, 255 - ldrb w2, [x19,3196] - ldr x0, [x19,3184] + ldrb w2, [x19,3244] + ldr x0, [x19,3232] mul w2, w3, w2 bl ftl_memset ldr x0, [x19,80] mov w1, -1 - str w25, [x0,132] + str w24, [x0,132] strh w1, [x0,128] strh w1, [x0,130] bl pm_flush bl ftl_ext_info_flush - strh w20, [x19,2896] - ldr x0, [x19,2800] - strh w25, [x0,126] + strh wzr, [x19,2944] + ldr x0, [x19,2848] + strh w22, [x0,126] mov w0, -1 - str w0, [x19,3160] - mov w0, w20 - strh w20, [x19,3154] - strh w20, [x19,3156] - strh w20, [x19,3158] + str w0, [x19,3208] + mov w0, 0 + strh wzr, [x19,3202] + strh wzr, [x19,3204] + strh wzr, [x19,3206] bl ftl_info_flush - b .L3099 -.L3049: + b .L3395 +.L3341: cmp w24, 1 mov w22, 4 csinc w22, w22, wzr, eq - cmp w20, 15 + cmp w21, 15 add w0, w22, 4 - add x20, x19, :lo12:.LANCHOR0 + add x21, x19, :lo12:.LANCHOR0 csel w22, w0, w22, ls -.L3058: +.L3348: sub w22, w22, #1 uxtb w22, w22 cmp w22, 255 - beq .L3099 + beq .L3395 bl gc_do_copy_back - ldrb w0, [x20,3193] - cbnz w0, .L3059 - ldrb w0, [x20,2778] + ldrb w0, [x21,3241] + cbnz w0, .L3349 + ldrb w0, [x21,2818] cmp w0, 3 - bhi .L3060 + bhi .L3350 bl ftl_write_commit -.L3060: - add x24, x20, 2840 - ldrh w1, [x24,26] - ldrh w0, [x24,24] +.L3350: + ldrh w1, [x21,2914] + ldrh w0, [x21,2912] cmp w1, w0 - bcc .L3058 - add x0, x21, :lo12:.LANCHOR4 - mov w1, 1 - strb w1, [x0,1050] + bcc .L3348 + add x20, x20, :lo12:.LANCHOR4 + mov w0, 1 + strb w0, [x20,1098] bl ftl_write_commit bl ftl_flush - ldrh w0, [x24] - ldr x1, [x20,72] - lsl x0, x0, 1 - ldrh w2, [x1,x0] - cbz w2, .L3062 + ldrh w1, [x21,2888] + ldr x0, [x21,72] + ldrh w0, [x0,x1,lsl 1] + cbz w0, .L3352 adrp x1, .LANCHOR3 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR3 add x0, x0, :lo12:.LC0 - add x1, x1, 696 + add x1, x1, 808 mov w2, 2144 bl printk -.L3063: - b .L3063 -.L3062: - strh w2, [x1,x0] - ldrh w0, [x24] - bl ftl_free_sblk - mov w0, -1 - strh w0, [x24] - b .L3099 -.L3059: - add x1, x20, 2840 - ldrh w0, [x1,318] - cbz w0, .L3064 - ldr w0, [x1,320] - strh wzr, [x1,318] - cmn w0, #1 - beq .L3065 - bl ftl_mask_bad_block -.L3065: +.L3352: add x20, x19, :lo12:.LANCHOR0 - ldr x0, [x20,80] - str wzr, [x20,3160] - strh wzr, [x20,2896] + add x21, x20, 2888 + ldrh w1, [x20,2888] + ldr x3, [x20,72] + ubfiz x0, x1, 1, 16 + ldrh w2, [x3,x0] + cbnz w2, .L3353 + strh w2, [x3,x0] + ldrh w0, [x20,2888] + bl ftl_free_sblk + b .L3326 +.L3353: + ldrh w3, [x21,24] + adrp x0, .LC282 + add x0, x0, :lo12:.LC282 + bl printk + ldrh w3, [x21,24] + adrp x0, .LC283 + ldr x1, [x20,3216] + add x0, x0, :lo12:.LC283 + mov w2, 4 + add w3, w3, 1 + bl rknand_print_hex + ldrh w1, [x20,2888] + adrp x0, .LC284 + ldr x3, [x20,72] + add x0, x0, :lo12:.LC284 + ubfiz x2, x1, 1, 16 + ldrh w4, [x21,26] + ldrh w5, [x21,28] + ldrh w2, [x3,x2] + ldrh w3, [x21,24] + bl printk + ldrh w0, [x20,2888] + mov x1, 0 + bl ftl_sblk_dump + bl gc_scan_src_blk + ldrh w1, [x20,2888] + adrp x0, .LC285 + ldr x3, [x20,72] + add x0, x0, :lo12:.LC285 + ubfiz x2, x1, 1, 16 + ldrh w2, [x3,x2] + ldrh w3, [x21,24] + bl printk + adrp x0, .LC286 + ldr x1, [x20,3216] + ldrh w3, [x21,24] + add x0, x0, :lo12:.LC286 + mov w2, 4 + bl rknand_print_hex + b .L3326 +.L3349: + add x0, x21, 2888 + ldrh w1, [x0,318] + cbz w1, .L3354 + strh wzr, [x0,318] + ldr w0, [x0,320] + cmn w0, #1 + beq .L3355 + bl ftl_mask_bad_block +.L3355: + add x21, x19, :lo12:.LANCHOR0 + ldr x0, [x21,80] + str wzr, [x21,3208] + strh wzr, [x21,2944] ldrh w0, [x0,80] bl ftl_free_sblk - ldr x1, [x20,80] + ldr x1, [x21,80] mov w0, -1 - ldr x2, [x20,2800] + ldr x2, [x21,2848] strh w0, [x1,80] strh w0, [x2,126] strh w0, [x1,130] - ldr x0, [x20,2848] - cbz x0, .L3066 + ldr x0, [x21,2896] + cbz x0, .L3356 bl buf_free -.L3066: +.L3356: add x19, x19, :lo12:.LANCHOR0 - str xzr, [x19,2848] + add x20, x20, :lo12:.LANCHOR4 + str xzr, [x19,2896] bl flt_sys_flush - add x0, x21, :lo12:.LANCHOR4 adrp x1, .LANCHOR3 + adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR3 mov w2, 2177 - add x1, x1, 696 - strb wzr, [x0,1050] - adrp x0, .LC0 + add x1, x1, 808 add x0, x0, :lo12:.LC0 + strb wzr, [x20,1098] bl printk -.L3067: - b .L3067 -.L3064: - ldrh w0, [x23,86] - cmp w0, 1 - bls .L3068 - ldrh w2, [x1,26] - ldrh w0, [x1,24] - cmp w2, w0 - bcc .L3058 - add x0, x21, :lo12:.LANCHOR4 - mov w2, 1 - strb w2, [x0,1050] - ldrh w0, [x1,56] - add w2, w0, 1 - add x0, x1, x0, sxtw 1 - strh w2, [x1,56] - ldrh w2, [x1] - strh w2, [x0,58] - mov w0, -1 - strh w0, [x1] - b .L3099 -.L3068: - add x0, x21, :lo12:.LANCHOR4 - mov w2, 5 - strb w2, [x0,1050] - ldrh w2, [x1,26] - ldrh w0, [x1,24] - cmp w2, w0 - bcc .L3069 - ldrh w0, [x1,56] - add w2, w0, 1 - add x0, x1, x0, sxtw 1 - strh w2, [x1,56] - ldrh w2, [x1] - strh w2, [x0,58] - mov w0, -1 - strh w0, [x1] -.L3069: + b .L3395 +.L3354: + ldrh w1, [x23,86] + cmp w1, 1 + bls .L3357 + ldrh w2, [x0,26] + ldrh w1, [x0,24] + cmp w2, w1 + bcc .L3348 + add x20, x20, :lo12:.LANCHOR4 + mov w1, 1 + strb w1, [x20,1098] + ldrh w1, [x0,56] + add w2, w1, 1 + add x1, x0, x1, sxtw 1 + strh w2, [x0,56] + ldrh w2, [x0] + strh w2, [x1,58] + mov w1, -1 + strh w1, [x0] + b .L3395 +.L3357: + add x20, x20, :lo12:.LANCHOR4 + mov w1, 5 + ldrh w2, [x0,26] + strb w1, [x20,1098] + ldrh w1, [x0,24] + cmp w2, w1 + bcc .L3358 + ldrh w1, [x0,56] + add w2, w1, 1 + add x1, x0, x1, sxtw 1 + strh w2, [x0,56] + ldrh w2, [x0] + strh w2, [x1,58] + mov w1, -1 + strh w1, [x0] +.L3358: add x20, x19, :lo12:.LANCHOR0 bl ftl_flush bl sblk_wait_write_queue_completed @@ -20576,96 +21929,95 @@ zftl_do_gc: strh w1, [x0,128] bl pm_flush bl ftl_ext_info_flush - strh wzr, [x20,2856] - ldrb w2, [x20,3177] - ldrh w1, [x20,3228] - strh w1, [x20,2858] + strh wzr, [x20,2904] + ldrb w2, [x20,3225] + ldrh w1, [x20,3276] + strh w1, [x20,2906] cmp w2, 2 - strh w2, [x20,2860] - bne .L3070 + strh w2, [x20,2908] + bne .L3359 lsl w1, w1, 1 - strh w1, [x20,2858] + strh w1, [x20,2906] mov w1, 1 - strh w1, [x20,2860] -.L3070: + strh w1, [x20,2908] +.L3359: add x19, x19, :lo12:.LANCHOR0 - strh wzr, [x19,2862] - b .L3099 -.L3075: + strh wzr, [x19,2910] + b .L3395 +.L3365: mov w22, 0 add x25, x19, :lo12:.LANCHOR0 -.L2995: +.L3288: bl gc_check_data_one_wl - cbz w0, .L3072 + cbz w0, .L3361 add x19, x19, :lo12:.LANCHOR0 + add x20, x20, :lo12:.LANCHOR4 ldr x0, [x19,80] - strh wzr, [x19,2896] + strh wzr, [x19,2944] ldrh w0, [x0,80] bl ftl_free_sblk ldr x1, [x19,80] mov w0, -1 - ldr x2, [x19,2800] + ldr x2, [x19,2848] strh w0, [x1,80] strh w0, [x2,126] strh w0, [x1,130] - ldr x0, [x19,2848] + ldr x0, [x19,2896] bl buf_free - str xzr, [x19,2848] - add x0, x21, :lo12:.LANCHOR4 - strb wzr, [x0,1050] -.L3118: + str xzr, [x19,2896] + strb wzr, [x20,1098] +.L3417: bl flt_sys_flush - b .L3099 -.L3072: - ldrh w1, [x25,2856] - ldrh w0, [x25,2858] + b .L3395 +.L3361: + ldrh w1, [x25,2904] + ldrh w0, [x25,2906] cmp w1, w0 - bcc .L3073 - add x0, x21, :lo12:.LANCHOR4 - mov w1, 6 - strb w1, [x0,1050] - ldr x0, [x25,2848] + bcc .L3362 + add x20, x20, :lo12:.LANCHOR4 + mov w0, 6 + strb w0, [x20,1098] + ldr x0, [x25,2896] bl buf_free - str xzr, [x25,2848] - b .L3099 -.L3073: - cmp w20, 7 - bls .L2995 + str xzr, [x25,2896] + b .L3395 +.L3362: + cmp w21, 7 + bls .L3288 cmp w24, 1 - bne .L3099 + bne .L3395 add w22, w22, 1 uxtb w22, w22 cmp w22, 4 - bls .L2995 - b .L3099 -.L2996: + bls .L3288 + b .L3395 +.L3289: bl gc_update_l2p_map_new - mov w20, -1 + mov w21, -1 bl gc_free_src_blk add x19, x19, :lo12:.LANCHOR0 bl ftl_flush + add x20, x20, :lo12:.LANCHOR4 bl pm_flush - strh w20, [x23,80] + strh w21, [x23,80] bl ftl_ext_info_flush - ldr x0, [x19,2800] - strh w20, [x0,126] + ldr x0, [x19,2848] + strh w21, [x0,126] mov w0, 0 bl ftl_info_flush - add x0, x21, :lo12:.LANCHOR4 - strb wzr, [x0,1050] + strb wzr, [x20,1098] bl print_ftl_debug_info - b .L3099 -.L3052: + b .L3395 +.L3344: adrp x1, .LANCHOR3 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR3 - add x0, x0, :lo12:.LC0 - add x1, x1, 696 mov w2, 2075 + add x1, x1, 808 + add x0, x0, :lo12:.LC0 bl printk -.L3055: - b .L3055 -.L3099: + b .L3364 +.L3395: sub sp, x29, #16 mov w0, 16 ldp x19, x20, [sp,32] @@ -20685,73 +22037,73 @@ zftl_write: add x29, sp, 0 stp x19, x20, [sp,16] mov w19, w0 - adrp x0, .LANCHOR2+400 + adrp x0, .LANCHOR2 stp x23, x24, [sp,48] stp x25, x26, [sp,64] - ldr w0, [x0,#:lo12:.LANCHOR2+400] + ldr w0, [x0,#:lo12:.LANCHOR2] mov w23, w2 stp x27, x28, [sp,80] stp x21, x22, [sp,32] mov w28, w1 mov x25, x3 - tbz x0, 12, .L3120 - adrp x0, .LC195 + tbz x0, 12, .L3419 + adrp x0, .LC287 mov w1, w19 - add x0, x0, :lo12:.LC195 + add x0, x0, :lo12:.LC287 mov w2, w28 mov w3, w23 bl printk -.L3120: - cbnz w19, .L3121 +.L3419: + cbnz w19, .L3420 adrp x0, .LANCHOR0+4 mov w19, 24576 ldr w2, [x0,#:lo12:.LANCHOR0+4] - b .L3122 -.L3121: + b .L3421 +.L3420: cmp w19, 3 mov w0, -1 - bhi .L3123 + bhi .L3422 lsl w19, w19, 13 mov w2, 8192 -.L3122: +.L3421: add w1, w28, w23 mov w0, -1 cmp w1, w2 - bhi .L3123 + bhi .L3422 add w28, w19, w28 adrp x19, .LANCHOR0 add x0, x19, :lo12:.LANCHOR0 sub w22, w23, #1 add w22, w22, w28 add w26, w28, w23 - ldrb w0, [x0,2776] + ldrb w0, [x0,2816] udiv w24, w28, w0 mov w21, w24 udiv w22, w22, w0 sub w20, w22, w24 add w20, w20, 1 -.L3124: - cbz w20, .L3143 +.L3423: + cbz w20, .L3442 mov w0, 0 bl buf_alloc mov x27, x0 - cbnz x0, .L3125 + cbnz x0, .L3424 bl ftl_write_commit - b .L3124 -.L3125: + b .L3423 +.L3424: strb wzr, [x0,57] add x0, x19, :lo12:.LANCHOR0 cmp w21, w24 - ldrb w4, [x0,2776] + ldrb w4, [x0,2816] cset w0, eq strb w4, [x27,56] cmp w21, w22 - beq .L3127 - cbz w0, .L3128 - b .L3137 -.L3127: - cbz w0, .L3129 -.L3137: + beq .L3426 + cbz w0, .L3427 + b .L3436 +.L3426: + cbz w0, .L3428 +.L3436: udiv w0, w28, w4 msub w0, w0, w4, w28 uxtb w0, w0 @@ -20760,12 +22112,12 @@ zftl_write: uxtb w4, w4 cmp w4, w23 csel w4, w23, w4, hi - b .L3141 -.L3129: + b .L3440 +.L3428: msub w4, w4, w21, w26 -.L3141: +.L3440: strb w4, [x27,56] -.L3128: +.L3427: ldrb w1, [x27,57] sub w20, w20, #1 ldr x0, [x27,8] @@ -20777,7 +22129,7 @@ zftl_write: str w21, [x27,36] add x0, x19, :lo12:.LANCHOR0 add w21, w21, 1 - ldr x1, [x0,2800] + ldr x1, [x0,2848] ldr w0, [x1,8] add w2, w0, 1 str w2, [x1,8] @@ -20786,27 +22138,27 @@ zftl_write: bl ftl_write_buf ldrb w0, [x27,56] add x25, x25, x0, lsl 9 - b .L3124 -.L3143: + b .L3423 +.L3442: bl ftl_write_commit mov w0, w20 -.L3142: +.L3441: mov w1, 1 bl zftl_do_gc add x1, x19, :lo12:.LANCHOR0 - ldrh w2, [x1,2788] - ldrh w0, [x1,2792] + ldrh w2, [x1,2828] + ldrh w0, [x1,2832] add w0, w2, w0 cmp w0, 7 - bgt .L3144 + bgt .L3443 mov w0, 0 - b .L3142 -.L3144: + b .L3441 +.L3443: bl timer_get_time - adrp x1, .LANCHOR8+3528 - str w0, [x1,#:lo12:.LANCHOR8+3528] + adrp x1, .LANCHOR8+3592 + str w0, [x1,#:lo12:.LANCHOR8+3592] mov w0, 0 -.L3123: +.L3422: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -20862,34 +22214,34 @@ id_block_prog_msb_ff_data: stp x27, x28, [sp,80] adrp x20, .LANCHOR4 uxth w19, w2 - ldr x0, [x0,720] + ldr x0, [x0,88] ldrb w2, [x0,19] add x0, x20, :lo12:.LANCHOR4 - ldrb w0, [x0,1208] - cbnz w0, .L3147 + ldrb w0, [x0,1232] + cbnz w0, .L3446 sub w0, w2, #5 uxtb w0, w0 cmp w0, 2 - bls .L3149 + bls .L3448 cmp w2, 68 - beq .L3149 + beq .L3448 sub w2, w2, #19 and w2, w2, -17 uxtb w2, w2 - cbnz w2, .L3147 -.L3149: - adrp x24, .LC196 + cbnz w2, .L3446 +.L3448: + adrp x24, .LC288 mov w25, w1 - add x24, x24, :lo12:.LC196 + add x24, x24, :lo12:.LC288 add x20, x20, :lo12:.LANCHOR4 mov w27, 65535 -.L3151: +.L3450: add x28, x21, :lo12:.LANCHOR0 - ldr x0, [x28,720] + ldr x0, [x28,88] ldrh w0, [x0,10] cmp w0, w19 - bls .L3147 - sub x22, x20, #12 + bls .L3446 + add x22, x20, 36 add w26, w19, w25 mov x0, x24 mov w1, w19 @@ -20898,22 +22250,22 @@ id_block_prog_msb_ff_data: bl printk ldrh w0, [x22,w19,sxtw 1] cmp w0, w27 - bne .L3147 - ldr x0, [x20,1144] + bne .L3446 + ldr x0, [x20,1160] mov w1, 255 mov w2, 16384 add w19, w19, 1 bl ftl_memset uxth w19, w19 - ldr x4, [x28,720] + ldr x4, [x28,88] mov w0, w23 - ldr x2, [x20,1144] + ldr x2, [x20,1160] mov w1, w26 ldrb w4, [x4,9] mov x3, x2 bl flash_prog_page - b .L3151 -.L3147: + b .L3450 +.L3446: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -20937,7 +22289,7 @@ write_idblock: stp x23, x24, [sp,48] stp x27, x28, [sp,80] mov x26, x1 - ldr x0, [x0,720] + ldr x0, [x0,88] ldrb w23, [x0,9] ldrh w20, [x0,10] mov w0, 59392 @@ -20945,7 +22297,7 @@ write_idblock: bl ftl_malloc mov x22, x0 mov w0, -1 - cbz x22, .L3187 + cbz x22, .L3486 add w19, w19, 511 add x2, x26, 253952 lsr w19, w19, 9 @@ -20953,9 +22305,9 @@ write_idblock: mov w0, 0 mov w24, 63999 mov w3, 4097 -.L3158: +.L3457: ldr w1, [x2] - cbnz w1, .L3155 + cbnz w1, .L3454 ldr w1, [x26,w0,uxtw 2] add w0, w0, 1 cmp w0, w3 @@ -20963,19 +22315,19 @@ write_idblock: csel w0, w0, wzr, cc str w1, [x2],-4 cmp w24, 4096 - bne .L3158 - b .L3157 -.L3155: - adrp x0, .LC197 + bne .L3457 + b .L3456 +.L3454: + adrp x0, .LC289 mov w2, w24 - add x0, x0, :lo12:.LC197 + add x0, x0, :lo12:.LC289 bl printk -.L3157: +.L3456: add x0, x21, :lo12:.LANCHOR0 add w1, w19, 128 mul w20, w20, w23 mov w25, 0 - ldr x2, [x0,720] + ldr x2, [x0,88] ldrh w0, [x2,10] ldrb w19, [x2,12] mov w2, w24 @@ -20984,9 +22336,9 @@ write_idblock: mov w0, 500 cmp w19, 500 csel w19, w19, w0, ls - adrp x0, .LC198 + adrp x0, .LC290 cmp w19, w1 - add x0, x0, :lo12:.LC198 + add x0, x0, :lo12:.LC290 csel w19, w19, w1, ls ldr w1, [x26,w24,uxtw 2] mov w3, w19 @@ -20994,29 +22346,29 @@ write_idblock: str w25, [x29,140] uxth w0, w20 str w0, [x29,116] -.L3177: +.L3476: mov w1, 0 mov x0, x22 mov w2, 512 add x24, x21, :lo12:.LANCHOR0 bl ftl_memset - ldr x0, [x24,144] + ldr x0, [x24,192] ldr w1, [x29,140] add x0, x0, x1, uxtw ldrb w20, [x0,32] cmp w20, 255 - beq .L3159 + beq .L3458 ldr w0, [x29,116] mul w20, w20, w0 - ldr x0, [x24,720] + ldr x0, [x24,88] ldrb w27, [x0,9] ldrh w23, [x0,10] - ldrb w0, [x24,136] + ldrb w0, [x24,184] udiv w1, w20, w27 str w0, [x29,112] mul w23, w27, w23 mov w0, 0 - strb wzr, [x24,136] + strb wzr, [x24,184] uxth w23, w23 bl flash_erase_block udiv w0, w20, w23 @@ -21024,15 +22376,15 @@ write_idblock: str w0, [x29,136] sub w28, w20, w0 cmp w20, w28 - bne .L3181 + bne .L3480 ldrb w0, [x21,#:lo12:.LANCHOR0] cmp w0, 9 - bne .L3181 + bne .L3480 adrp x0, .LANCHOR4 mov w1, 0 add x0, x0, :lo12:.LANCHOR4 mov w2, 1024 - ldr x3, [x0,1192] + ldr x3, [x0,1216] str x3, [x29,128] mov x0, x3 bl ftl_memset @@ -21044,7 +22396,7 @@ write_idblock: str w0, [x3] str w1, [x3,4] str wzr, [x3,12] - ldr x2, [x24,720] + ldr x2, [x24,88] ldrb w0, [x2,29] strb w0, [x3,16] mov w0, 4 @@ -21065,102 +22417,102 @@ write_idblock: str w0, [x3,8] sub w0, w19, #4 str w0, [x29,128] - b .L3160 -.L3181: + b .L3459 +.L3480: str w19, [x29,128] mov x3, 0 -.L3160: +.L3459: str x26, [x29,120] mov w24, 0 add x23, x21, :lo12:.LANCHOR0 -.L3162: +.L3461: cmp w24, w19 - bcs .L3195 + bcs .L3494 ldr w0, [x29,136] adrp x2, .LANCHOR4 add x2, x2, :lo12:.LANCHOR4 add w4, w24, w0 - add x0, x23, 168 + add x0, x23, 212 ubfx x4, x4, 2, 16 add w1, w4, 1 - ldrb w2, [x2,1208] + ldrb w2, [x2,1232] ldrh w0, [x0,w1,sxtw 1] - cbz w2, .L3164 - ldrb w6, [x23,165] + cbz w2, .L3463 + ldrb w6, [x23,208] lsl w0, w1, 1 cmp w6, wzr csel w0, w0, w1, ne -.L3164: +.L3463: ldrb w1, [x23] cmp w1, 9 - beq .L3194 + beq .L3493 sub w0, w0, #1 lsl w0, w0, 2 -.L3194: +.L3493: str w0, [x29,144] mov w0, 61424 str w0, [x29,148] - add x0, x23, 168 + add x0, x23, 212 ldrh w0, [x0,w4,sxtw 1] - cbnz w2, .L3168 + cbnz w2, .L3467 mov w4, w0 - b .L3169 -.L3168: - ldrb w1, [x23,165] + b .L3468 +.L3467: + ldrb w1, [x23,208] lsl w0, w4, 1 cmp w1, wzr csel w4, w0, w4, ne -.L3169: +.L3468: mul w0, w4, w27 - cbnz x3, .L3170 + cbnz x3, .L3469 ldr x1, [x29,120] add w0, w0, w28 add x2, x29, 144 str x4, [x29,104] - bl fw_flash_page_prog.constprop.39 + bl fw_flash_page_prog.constprop.31 adrp x0, .LANCHOR4 ldr x4, [x29,104] add x0, x0, :lo12:.LANCHOR4 - ldrb w0, [x0,1208] - cbnz w0, .L3171 + ldrb w0, [x0,1232] + cbnz w0, .L3470 udiv w1, w28, w27 add w2, w4, 1 bl id_block_prog_msb_ff_data -.L3171: +.L3470: ldr x0, [x29,120] add x0, x0, 2048 str x0, [x29,120] - b .L3172 -.L3170: + b .L3471 +.L3469: add w0, w0, w28 mov x1, x3 add x2, x29, 144 - bl fw_flash_page_prog.constprop.39 -.L3172: + bl fw_flash_page_prog.constprop.31 +.L3471: add w24, w24, 4 mov x3, 0 uxth w24, w24 - b .L3162 -.L3195: + b .L3461 +.L3494: add x0, x21, :lo12:.LANCHOR0 ldrb w1, [x29,112] mov x2, x22 - strb w1, [x0,136] + strb w1, [x0,184] mov w0, w20 ldr w1, [x29,128] - bl id_block_read_data.constprop.38 + bl id_block_read_data.constprop.30 ldr w0, [x29,128] lsl w23, w0, 7 mov x0, 0 -.L3174: +.L3473: cmp w23, w0 - bls .L3196 + bls .L3495 ldr w2, [x22,x0,lsl 2] add x0, x0, 1 add x1, x26, x0, lsl 2 ldr w1, [x1,-4] cmp w2, w1 - beq .L3174 + beq .L3473 mov x0, x22 mov w1, 0 mov w2, 512 @@ -21168,23 +22520,23 @@ write_idblock: mov w1, w20 mov w0, 0 bl flash_erase_block - b .L3159 -.L3196: + b .L3458 +.L3495: add w25, w25, 1 cmp w25, 5 - bhi .L3178 -.L3159: + bhi .L3477 +.L3458: ldr w0, [x29,140] add w0, w0, 1 str w0, [x29,140] cmp w0, 4 - bne .L3177 -.L3178: + bne .L3476 +.L3477: mov x0, x22 bl ftl_free cmp w25, wzr csetm w0, eq -.L3187: +.L3486: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -21202,17 +22554,17 @@ CRC_32: mov x5, x0 add x3, x3, :lo12:.LANCHOR2 mov w0, w2 -.L3198: +.L3497: cmp w1, w2 - bls .L3200 + bls .L3499 ldrb w4, [x5,x2] - add x6, x3, 2200 + add x6, x3, 2296 add x2, x2, 1 eor w4, w4, w0, lsr 24 ldr w4, [x6,w4,uxtw 2] eor w0, w4, w0, lsl 8 - b .L3198 -.L3200: + b .L3497 +.L3499: ret .size CRC_32, .-CRC_32 .align 2 @@ -21229,316 +22581,316 @@ rknand_sys_storage_ioctl: str x21, [sp,32] mov w19, w1 mov x20, x2 - beq .L3203 + beq .L3502 mov w0, 29187 movk w0, 0x4004, lsl 16 cmp w1, w0 - bhi .L3204 + bhi .L3503 mov w0, 25726 movk w0, 0x4004, lsl 16 cmp w1, w0 - beq .L3205 + beq .L3504 mov w0, 25726 movk w0, 0x4004, lsl 16 cmp w1, w0 - bhi .L3206 + bhi .L3505 mov w0, 25601 movk w0, 0x4004, lsl 16 cmp w1, w0 - beq .L3207 + beq .L3506 mov w0, 25601 movk w0, 0x4004, lsl 16 cmp w1, w0 - bhi .L3208 + bhi .L3507 mov w0, 25364 movk w0, 0x4004, lsl 16 cmp w1, w0 - bne .L3264 + bne .L3563 bl rknand_dev_flush - b .L3298 -.L3208: + b .L3597 +.L3507: mov w0, 25602 movk w0, 0x4004, lsl 16 cmp w1, w0 - beq .L3210 + beq .L3509 mov w0, 25603 movk w0, 0x4004, lsl 16 cmp w1, w0 - beq .L3211 - b .L3264 -.L3206: + beq .L3510 + b .L3563 +.L3505: mov w0, 27688 movk w0, 0x4004, lsl 16 cmp w1, w0 - beq .L3212 + beq .L3511 mov w0, 27688 movk w0, 0x4004, lsl 16 cmp w1, w0 - bhi .L3213 + bhi .L3512 mov w0, 25727 movk w0, 0x4004, lsl 16 cmp w1, w0 - beq .L3214 - b .L3264 -.L3213: + beq .L3513 + b .L3563 +.L3512: mov w0, 27698 movk w0, 0x4004, lsl 16 cmp w1, w0 - beq .L3212 + beq .L3511 mov w0, 27708 movk w0, 0x4004, lsl 16 cmp w1, w0 - beq .L3212 - b .L3264 -.L3204: + beq .L3511 + b .L3563 +.L3503: mov w0, 29267 movk w0, 0x4004, lsl 16 cmp w1, w0 - beq .L3215 + beq .L3514 mov w0, 29267 movk w0, 0x4004, lsl 16 cmp w1, w0 - bhi .L3216 + bhi .L3515 mov w0, 29189 movk w0, 0x4004, lsl 16 cmp w1, w0 - beq .L3217 + beq .L3516 mov w0, 29189 movk w0, 0x4004, lsl 16 cmp w1, w0 - bcc .L3218 + bcc .L3517 mov w0, 29210 movk w0, 0x4004, lsl 16 cmp w1, w0 - beq .L3219 + beq .L3518 mov w0, 29266 movk w0, 0x4004, lsl 16 cmp w1, w0 - beq .L3220 - b .L3264 -.L3216: + beq .L3519 + b .L3563 +.L3515: mov w0, 30225 movk w0, 0x4004, lsl 16 cmp w1, w0 - beq .L3221 + beq .L3520 mov w0, 30225 movk w0, 0x4004, lsl 16 cmp w1, w0 - bhi .L3222 + bhi .L3521 mov w0, 29268 movk w0, 0x4004, lsl 16 cmp w1, w0 - beq .L3223 + beq .L3522 mov w0, 30224 movk w0, 0x4004, lsl 16 cmp w1, w0 - beq .L3224 - b .L3264 -.L3222: + beq .L3523 + b .L3563 +.L3521: mov w0, 30226 movk w0, 0x4004, lsl 16 cmp w1, w0 - beq .L3224 + beq .L3523 mov w0, 30227 movk w0, 0x4004, lsl 16 cmp w1, w0 - beq .L3221 - b .L3264 -.L3218: - adrp x0, .LC199 - add x0, x0, :lo12:.LC199 + beq .L3520 + b .L3563 +.L3517: + adrp x0, .LC291 + add x0, x0, :lo12:.LC291 bl printk mov w0, 4096 bl ftl_malloc mov x19, x0 - cbnz x0, .L3225 -.L3230: + cbnz x0, .L3524 +.L3529: mov x0, -12 - b .L3202 -.L3225: + b .L3501 +.L3524: mov x1, x20 mov x2, 512 bl rk_copy_from_user - cbnz x0, .L3305 - adrp x0, .LC201 + cbnz x0, .L3604 + adrp x0, .LC293 ldr w1, [x19] ldr w2, [x19,4] - add x0, x0, :lo12:.LC201 + add x0, x0, :lo12:.LC293 bl printk ldr w0, [x19,4] str w0, [x29,52] cmp w0, 8 - bhi .L3302 + bhi .L3601 bl rknand_device_lock ldr w1, [x29,52] mov x2, x19 ldr w0, [x19] - bl id_block_read_data.constprop.38 + bl id_block_read_data.constprop.30 bl rknand_device_unlock ldr w2, [x29,52] mov x0, x20 mov x1, x19 ubfiz x2, x2, 9, 23 bl rk_copy_to_user - cbz x0, .L3308 - adrp x0, .LC202 - add x0, x0, :lo12:.LC202 -.L3300: + cbz x0, .L3607 + adrp x0, .LC294 + add x0, x0, :lo12:.LC294 +.L3599: bl printk -.L3302: +.L3601: mov x0, x19 -.L3303: +.L3602: bl ftl_free -.L3301: +.L3600: mov x0, -14 - b .L3202 -.L3217: - adrp x0, .LC203 - add x0, x0, :lo12:.LC203 + b .L3501 +.L3516: + adrp x0, .LC295 + add x0, x0, :lo12:.LC295 bl printk mov w0, 4096 bl ftl_malloc mov x19, x0 - cbz x0, .L3230 + cbz x0, .L3529 mov x1, x20 mov x2, 4096 bl rk_copy_from_user - cbnz x0, .L3305 + cbnz x0, .L3604 ldr w1, [x19] - adrp x0, .LC204 + adrp x0, .LC296 ldr w2, [x19,4] - add x0, x0, :lo12:.LC204 + add x0, x0, :lo12:.LC296 bl printk adrp x0, .LANCHOR8 add x21, x0, :lo12:.LANCHOR8 mov x20, x0 - ldr x1, [x21,3536] - cbnz x1, .L3232 + ldr x1, [x21,3600] + cbnz x1, .L3531 mov w0, 260096 bl ftl_malloc - str x0, [x21,3536] - cbz x0, .L3302 -.L3232: + str x0, [x21,3600] + cbz x0, .L3601 +.L3531: ldr w2, [x19,4] cmp w2, 4088 - bhi .L3302 + bhi .L3601 ldr w0, [x19] mov w1, 55296 movk w1, 0x3, lsl 16 cmp w0, w1 - bhi .L3302 + bhi .L3601 add x20, x20, :lo12:.LANCHOR8 uxtw x2, w2 - ldr x1, [x20,3536] + ldr x1, [x20,3600] add x0, x1, x0, uxtw add x1, x19, 8 bl memcpy -.L3308: +.L3607: mov x0, x19 bl ftl_free - b .L3298 -.L3220: - adrp x0, .LC205 - add x0, x0, :lo12:.LC205 + b .L3597 +.L3519: + adrp x0, .LC297 + add x0, x0, :lo12:.LC297 bl printk mov w0, 4096 bl ftl_malloc mov x19, x0 - cbz x0, .L3230 + cbz x0, .L3529 mov x1, x20 mov x2, 28 bl rk_copy_from_user - cbz x0, .L3234 -.L3305: - adrp x0, .LC200 - add x0, x0, :lo12:.LC200 - b .L3300 -.L3234: + cbz x0, .L3533 +.L3604: + adrp x0, .LC292 + add x0, x0, :lo12:.LC292 + b .L3599 +.L3533: ldr w1, [x19] - adrp x0, .LC206 + adrp x0, .LC298 ldr w2, [x19,4] - add x0, x0, :lo12:.LC206 + add x0, x0, :lo12:.LC298 bl printk ldr w1, [x19] mov w0, 59392 movk w0, 0x3, lsl 16 cmp w1, w0 - bhi .L3302 + bhi .L3601 adrp x20, .LANCHOR8 add x20, x20, :lo12:.LANCHOR8 - ldr x0, [x20,3536] - cbz x0, .L3302 + ldr x0, [x20,3600] + cbz x0, .L3601 bl CRC_32 ldr w1, [x19,4] cmp w1, w0 - beq .L3237 + beq .L3536 mov x0, x19 bl ftl_free mov x0, -2 - b .L3202 -.L3237: + b .L3501 +.L3536: bl rknand_device_lock - ldr x1, [x20,3536] + ldr x1, [x20,3600] add x2, x19, 8 ldr w0, [x19] bl write_idblock bl rknand_device_unlock - ldr x0, [x20,3536] + ldr x0, [x20,3600] bl ftl_free - str xzr, [x20,3536] - b .L3308 -.L3219: - adrp x0, .LC207 - add x0, x0, :lo12:.LC207 + str xzr, [x20,3600] + b .L3607 +.L3518: + adrp x0, .LC299 + add x0, x0, :lo12:.LC299 bl printk mov w0, 4096 bl ftl_malloc mov x21, x0 - cbz x0, .L3230 + cbz x0, .L3529 bl ReadFlashInfo mov x0, x20 mov x1, x21 mov x2, 11 - b .L3310 -.L3203: - adrp x0, .LC208 - add x0, x0, :lo12:.LC208 + b .L3609 +.L3502: + adrp x0, .LC300 + add x0, x0, :lo12:.LC300 bl printk bl nand_blk_add_whole_disk mov w0, 4096 bl ftl_malloc mov x21, x0 - cbz x0, .L3230 + cbz x0, .L3529 mov w1, 0 mov w2, 64 bl ftl_memset mov x0, x20 mov x1, x21 mov x2, 64 - b .L3310 -.L3215: - adrp x0, .LC209 - add x0, x0, :lo12:.LC209 + b .L3609 +.L3514: + adrp x0, .LC301 + add x0, x0, :lo12:.LC301 bl printk - adrp x0, .LANCHOR8+3544 + adrp x0, .LANCHOR8+3608 add x1, x29, 52 mov x2, 4 - ldr x0, [x0,#:lo12:.LANCHOR8+3544] + ldr x0, [x0,#:lo12:.LANCHOR8+3608] ldr w0, [x0,20] str w0, [x29,52] mov x0, x20 -.L3293: +.L3592: bl rk_copy_to_user - cbnz x0, .L3301 - b .L3298 -.L3223: - adrp x0, .LC210 - add x0, x0, :lo12:.LC210 + cbnz x0, .L3600 + b .L3597 +.L3522: + adrp x0, .LC302 + add x0, x0, :lo12:.LC302 bl printk mov w0, 4096 bl ftl_malloc mov x21, x0 - cbz x0, .L3230 + cbz x0, .L3529 bl rknand_device_lock mov w1, 264 mov w2, 2 @@ -21549,96 +22901,96 @@ rknand_sys_storage_ioctl: mov x0, x20 mov x1, x21 mov x2, 1024 -.L3310: +.L3609: bl rk_copy_to_user mov x19, x0 mov x0, x21 - cbnz x19, .L3303 + cbnz x19, .L3602 bl ftl_free - b .L3229 -.L3207: - adrp x0, .LC211 - add x0, x0, :lo12:.LC211 + b .L3528 +.L3506: + adrp x0, .LC303 + add x0, x0, :lo12:.LC303 bl printk add x0, x29, 56 mov x1, x20 mov x2, 520 bl rk_copy_from_user mov x19, x0 - cbz x0, .L3242 -.L3247: - adrp x0, .LC200 - add x0, x0, :lo12:.LC200 + cbz x0, .L3541 +.L3546: + adrp x0, .LC292 + add x0, x0, :lo12:.LC292 bl printk - b .L3301 -.L3242: + b .L3600 +.L3541: ldr w1, [x29,56] mov w0, 21060 movk w0, 0x4b4d, lsl 16 cmp w1, w0 - beq .L3243 -.L3244: + beq .L3542 +.L3543: mov x19, -1 - b .L3229 -.L3243: + b .L3528 +.L3542: ldr w0, [x29,60] cmp w0, 512 - bhi .L3244 + bhi .L3543 adrp x21, .LANCHOR8 add x0, x29, 56 add x21, x21, :lo12:.LANCHOR8 mov x2, 512 - ldr x1, [x21,3544] + ldr x1, [x21,3608] bl memcpy - ldr w1, [x21,3552] + ldr w1, [x21,3616] mov w0, 5161 movk w0, 0xc059, lsl 16 cmp w1, w0 - beq .L3245 + beq .L3544 add x0, x29, 120 mov w1, w19 mov x2, 128 str w19, [x29,64] str w19, [x29,68] bl memset -.L3245: +.L3544: add x0, x29, 312 mov w1, 0 mov x2, 256 str wzr, [x29,72] bl memset - b .L3307 -.L3210: - adrp x0, .LC212 - add x0, x0, :lo12:.LC212 + b .L3606 +.L3509: + adrp x0, .LC304 + add x0, x0, :lo12:.LC304 bl printk add x0, x29, 56 mov x1, x20 mov x2, 520 bl rk_copy_from_user - cbnz x0, .L3247 + cbnz x0, .L3546 ldr w1, [x29,56] mov w0, 21060 movk w0, 0x4b4d, lsl 16 cmp w1, w0 - bne .L3244 + bne .L3543 ldr w0, [x29,60] cmp w0, 512 - bhi .L3244 + bhi .L3543 adrp x1, .LANCHOR8 mov w2, 5161 add x1, x1, :lo12:.LANCHOR8 movk w2, 0xc059, lsl 16 mov x0, -2 - ldr w3, [x1,3552] + ldr w3, [x1,3616] cmp w3, w2 - bne .L3202 + bne .L3501 ldr w2, [x29,68] mov x0, -3 sub w3, w2, #1 cmp w3, 127 - bhi .L3202 - ldr x19, [x1,3544] + bhi .L3501 + ldr x19, [x1,3608] add x1, x29, 120 add x0, x19, 64 str w2, [x19,12] @@ -21646,144 +22998,144 @@ rknand_sys_storage_ioctl: bl memcpy mov w0, 1 mov x1, x19 - b .L3299 -.L3214: - adrp x0, .LC213 - add x0, x0, :lo12:.LC213 + b .L3598 +.L3513: + adrp x0, .LC305 + add x0, x0, :lo12:.LC305 bl printk add x0, x29, 56 mov x1, x20 mov x2, 520 bl rk_copy_from_user - cbnz x0, .L3247 + cbnz x0, .L3546 ldr w1, [x29,56] mov w0, 17476 movk w0, 0x4253, lsl 16 cmp w1, w0 - bne .L3244 + bne .L3543 ldr w0, [x29,60] cmp w0, 512 - bhi .L3244 + bhi .L3543 adrp x19, .LANCHOR8 add x0, x19, :lo12:.LANCHOR8 - ldr w1, [x0,3556] - cbnz w1, .L3248 -.L3251: + ldr w1, [x0,3620] + cbnz w1, .L3547 +.L3550: mov x0, 0 - b .L3202 -.L3248: - ldr x1, [x0,3560] + b .L3501 +.L3547: + ldr x1, [x0,3624] mov w2, 22867 movk w2, 0x4453, lsl 16 ldr w3, [x1] cmp w3, w2 - beq .L3249 + beq .L3548 mov w2, 22867 movk w2, 0x4453, lsl 16 str w2, [x1] mov w2, 504 - ldr x1, [x0,3560] + ldr x1, [x0,3624] str w2, [x1,4] - ldr x0, [x0,3560] + ldr x0, [x0,3624] str wzr, [x0,8] str wzr, [x0,12] -.L3249: +.L3548: add x20, x19, :lo12:.LANCHOR8 mov w0, 0 - ldr x1, [x20,3560] + ldr x1, [x20,3624] str wzr, [x1,16] bl StorageSysDataStore - ldr x0, [x20,3544] + ldr x0, [x20,3608] mov w1, 21060 movk w1, 0x4b4d, lsl 16 ldr w2, [x0] cmp w2, w1 - beq .L3250 + beq .L3549 mov w1, 21060 movk w1, 0x4b4d, lsl 16 str w1, [x0] mov w1, 504 - ldr x0, [x20,3544] + ldr x0, [x20,3608] str w1, [x0,4] - ldr x0, [x20,3544] + ldr x0, [x20,3608] str wzr, [x0,8] -.L3250: +.L3549: add x19, x19, :lo12:.LANCHOR8 mov w1, 0 mov x2, 128 - ldr x20, [x19,3544] + ldr x20, [x19,3608] add x0, x20, 64 str wzr, [x20,12] bl memset mov w0, 1 mov x1, x20 bl StorageSysDataStore - str wzr, [x19,3556] - str wzr, [x19,3552] - b .L3298 -.L3205: - adrp x0, .LC214 - add x0, x0, :lo12:.LC214 + str wzr, [x19,3620] + str wzr, [x19,3616] + b .L3597 +.L3504: + adrp x0, .LC306 + add x0, x0, :lo12:.LC306 bl printk add x0, x29, 56 mov x1, x20 mov x2, 520 bl rk_copy_from_user - cbnz x0, .L3247 + cbnz x0, .L3546 ldr w2, [x29,56] mov w1, 20037 movk w1, 0x4253, lsl 16 cmp w2, w1 - bne .L3244 + bne .L3543 ldr w1, [x29,60] cmp w1, 512 - bhi .L3244 + bhi .L3543 adrp x19, .LANCHOR8 add x1, x19, :lo12:.LANCHOR8 - ldr w2, [x1,3556] + ldr w2, [x1,3620] cmp w2, 1 - beq .L3251 - ldr x2, [x1,3560] + beq .L3550 + ldr x2, [x1,3624] mov w3, 22867 movk w3, 0x4453, lsl 16 ldr w4, [x2] cmp w4, w3 - beq .L3252 + beq .L3551 mov w3, 22867 movk w3, 0x4453, lsl 16 str w3, [x2] mov w3, 504 - ldr x2, [x1,3560] + ldr x2, [x1,3624] str w3, [x2,4] - ldr x1, [x1,3560] + ldr x1, [x1,3624] str w0, [x1,8] str w0, [x1,12] -.L3252: +.L3551: add x20, x19, :lo12:.LANCHOR8 mov w0, 1 - ldr x1, [x20,3560] + ldr x1, [x20,3624] str w0, [x1,16] mov w0, 0 bl StorageSysDataStore - ldr x0, [x20,3544] + ldr x0, [x20,3608] mov w1, 21060 movk w1, 0x4b4d, lsl 16 ldr w2, [x0] cmp w2, w1 - beq .L3253 + beq .L3552 mov w1, 21060 movk w1, 0x4b4d, lsl 16 str w1, [x0] mov w1, 504 - ldr x0, [x20,3544] + ldr x0, [x20,3608] str w1, [x0,4] - ldr x0, [x20,3544] + ldr x0, [x20,3608] str wzr, [x0,8] -.L3253: +.L3552: add x19, x19, :lo12:.LANCHOR8 mov w1, 0 mov x2, 128 - ldr x20, [x19,3544] + ldr x20, [x19,3608] add x0, x20, 64 str wzr, [x20,12] bl memset @@ -21791,210 +23143,209 @@ rknand_sys_storage_ioctl: mov x1, x20 bl StorageSysDataStore mov w0, 1 - str w0, [x19,3556] - b .L3298 -.L3211: - adrp x0, .LC215 - add x0, x0, :lo12:.LC215 + str w0, [x19,3620] + b .L3597 +.L3510: + adrp x0, .LC307 + add x0, x0, :lo12:.LC307 bl printk add x0, x29, 56 mov x1, x20 mov x2, 520 bl rk_copy_from_user - cbnz x0, .L3247 + cbnz x0, .L3546 ldr w1, [x29,56] mov w0, 20051 movk w0, 0x4144, lsl 16 cmp w1, w0 - bne .L3244 + bne .L3543 ldr w2, [x29,60] cmp w2, 512 - bhi .L3244 + bhi .L3543 adrp x1, .LANCHOR8 add x0, x29, 64 add x1, x1, :lo12:.LANCHOR8 uxtw x2, w2 - add x1, x1, 3568 - b .L3306 -.L3212: + add x1, x1, 3632 + b .L3605 +.L3511: mov w0, 27698 movk w0, 0x4004, lsl 16 cmp w19, w0 - bne .L3254 - adrp x0, .LC216 - add x0, x0, :lo12:.LC216 - b .L3296 -.L3254: + bne .L3553 + adrp x0, .LC308 + add x0, x0, :lo12:.LC308 + b .L3595 +.L3553: mov w0, 27708 movk w0, 0x4004, lsl 16 cmp w19, w0 - bne .L3256 - adrp x0, .LC217 - add x0, x0, :lo12:.LC217 - b .L3296 -.L3256: - adrp x0, .LC218 - add x0, x0, :lo12:.LC218 -.L3296: + bne .L3555 + adrp x0, .LC309 + add x0, x0, :lo12:.LC309 + b .L3595 +.L3555: + adrp x0, .LC310 + add x0, x0, :lo12:.LC310 +.L3595: bl printk add x0, x29, 56 mov x1, x20 mov x2, 520 bl rk_copy_from_user - cbnz x0, .L3247 + cbnz x0, .L3546 ldr w1, [x29,56] mov w0, 17227 movk w0, 0x4c4f, lsl 16 cmp w1, w0 - bne .L3301 + bne .L3600 mov w0, 27708 movk w0, 0x4004, lsl 16 cmp w19, w0 - adrp x0, .LANCHOR8 - bne .L3257 - add x0, x0, :lo12:.LANCHOR8 + bne .L3556 + adrp x0, .LANCHOR8+3608 add x1, x29, 56 mov x2, 16 - ldr x0, [x0,3544] + ldr x0, [x0,#:lo12:.LANCHOR8+3608] ldr w0, [x0,20] str w0, [x29,60] strb w0, [x29,64] mov x0, x20 bl rk_copy_to_user - cbz x0, .L3202 - b .L3301 -.L3257: - add x20, x0, :lo12:.LANCHOR8 - ldr w1, [x20,4080] + cbz x0, .L3501 + b .L3600 +.L3556: + adrp x0, .LANCHOR9 + add x20, x0, :lo12:.LANCHOR9 + ldr w1, [x20,-208] cmp w1, 10 - bhi .L3301 - ldr x1, [x20,3544] + bhi .L3600 + adrp x1, .LANCHOR8+3608 ldr w2, [x29,60] + ldr x1, [x1,#:lo12:.LANCHOR8+3608] ldr w3, [x1,24] cmp w3, w2 - beq .L3258 - cbz w3, .L3258 - adrp x0, .LC219 + beq .L3557 + cbz w3, .L3557 + adrp x0, .LC311 mov w1, w2 - add x0, x0, :lo12:.LC219 + add x0, x0, :lo12:.LC311 bl printk - ldr w0, [x20,4080] + ldr w0, [x20,-208] add w0, w0, 1 - str w0, [x20,4080] - b .L3301 -.L3258: - add x0, x0, :lo12:.LANCHOR8 - str wzr, [x0,4080] + str w0, [x20,-208] + b .L3600 +.L3557: + add x0, x0, :lo12:.LANCHOR9 + str wzr, [x0,-208] mov w0, 27698 movk w0, 0x4004, lsl 16 cmp w19, w0 - bne .L3259 + bne .L3558 str wzr, [x1,20] str wzr, [x1,24] - b .L3260 -.L3259: + b .L3559 +.L3558: mov w0, 1 str w2, [x1,24] str w0, [x1,20] -.L3260: +.L3559: mov w0, 1 mov x19, -2 bl StorageSysDataStore cmn w0, #1 - bne .L3298 - b .L3229 -.L3224: - adrp x0, .LC220 - add x0, x0, :lo12:.LC220 + bne .L3597 + b .L3528 +.L3523: + adrp x0, .LC312 + add x0, x0, :lo12:.LC312 bl printk add x0, x29, 56 mov x1, x20 mov x2, 520 bl rk_copy_from_user - cbnz x0, .L3247 + cbnz x0, .L3546 ldr w1, [x29,56] mov w0, 17750 movk w0, 0x444e, lsl 16 cmp w1, w0 - bne .L3244 + bne .L3543 ldr w2, [x29,60] cmp w2, 504 - bhi .L3244 + bhi .L3543 mov w0, 30224 - uxtw x2, w2 + adrp x1, .LANCHOR9 movk w0, 0x4004, lsl 16 + uxtw x2, w2 cmp w19, w0 + add x1, x1, :lo12:.LANCHOR9 add x0, x29, 64 - bne .L3261 - adrp x1, .LANCHOR8+4088 - ldr x1, [x1,#:lo12:.LANCHOR8+4088] - b .L3297 -.L3261: - adrp x1, .LANCHOR9-256 - ldr x1, [x1,#:lo12:.LANCHOR9-256] -.L3297: + bne .L3560 + ldr x1, [x1,-200] + b .L3596 +.L3560: + ldr x1, [x1,-192] +.L3596: add x1, x1, 8 -.L3306: +.L3605: bl memcpy -.L3307: +.L3606: mov x0, x20 add x1, x29, 56 mov x2, 520 - b .L3293 -.L3221: - adrp x0, .LC221 - add x0, x0, :lo12:.LC221 + b .L3592 +.L3520: + adrp x0, .LC313 + add x0, x0, :lo12:.LC313 bl printk add x0, x29, 56 mov x1, x20 mov x2, 520 bl rk_copy_from_user - cbnz x0, .L3247 + cbnz x0, .L3546 ldr w1, [x29,56] mov w0, 17750 movk w0, 0x444e, lsl 16 cmp w1, w0 - bne .L3244 + bne .L3543 ldr w2, [x29,60] cmp w2, 504 - bhi .L3244 + bhi .L3543 mov w0, 30225 add w2, w2, 8 movk w0, 0x4004, lsl 16 cmp w19, w0 - bne .L3263 - adrp x19, .LANCHOR8 + adrp x19, .LANCHOR9 + add x19, x19, :lo12:.LANCHOR9 + bne .L3562 + ldr x0, [x19,-200] add x1, x29, 56 - add x19, x19, :lo12:.LANCHOR8 - ldr x0, [x19,4088] bl memcpy mov w0, 2 - ldr x1, [x19,4088] - b .L3299 -.L3263: - adrp x19, .LANCHOR9 + ldr x1, [x19,-200] + b .L3598 +.L3562: + ldr x0, [x19,-192] add x1, x29, 56 - add x19, x19, :lo12:.LANCHOR9 - ldr x0, [x19,-256] bl memcpy - ldr x1, [x19,-256] + ldr x1, [x19,-192] mov w0, 3 -.L3299: +.L3598: bl StorageSysDataStore uxtw x19, w0 - b .L3229 -.L3298: + b .L3528 +.L3597: mov x19, 0 -.L3229: - adrp x0, .LC222 +.L3528: + adrp x0, .LC314 mov x1, x19 - add x0, x0, :lo12:.LC222 + add x0, x0, :lo12:.LC314 bl printk mov x0, x19 - b .L3202 -.L3264: + b .L3501 +.L3563: mov x0, -22 -.L3202: +.L3501: ldp x19, x20, [sp,16] ldr x21, [sp,32] ldp x29, x30, [sp], 48 @@ -22006,58 +23357,57 @@ rknand_sys_storage_ioctl: .type rk_ftl_storage_sys_init, %function rk_ftl_storage_sys_init: stp x29, x30, [sp, -64]! - adrp x0, .LANCHOR7+3240 + adrp x0, .LANCHOR7+3304 mov w2, 512 add x29, sp, 0 - stp x19, x20, [sp,16] - adrp x20, .LANCHOR8 - ldr x1, [x0,#:lo12:.LANCHOR7+3240] - add x19, x20, :lo12:.LANCHOR8 - str x23, [sp,48] - add x0, x1, 512 stp x21, x22, [sp,32] - str x0, [x19,3544] - adrp x21, .LANCHOR9 + adrp x21, .LANCHOR8 + ldr x1, [x0,#:lo12:.LANCHOR7+3304] + stp x19, x20, [sp,16] + add x19, x21, :lo12:.LANCHOR8 + adrp x20, .LANCHOR9 + str x23, [sp,48] + add x23, x20, :lo12:.LANCHOR9 + add x0, x1, 512 + str x0, [x19,3608] add x0, x1, 1024 - str x0, [x19,4088] - add x0, x21, :lo12:.LANCHOR9 - str x1, [x19,3560] + str x1, [x19,3624] add x1, x1, 1536 - str xzr, [x19,3536] - str x1, [x0,-256] - add x0, x19, 3568 + str x0, [x23,-200] + add x0, x19, 3632 + str x1, [x23,-192] + str xzr, [x19,3600] bl ftl_memcpy - ldr x22, [x19,3560] - str wzr, [x19,3552] - str wzr, [x19,4080] + ldr x22, [x19,3624] + str wzr, [x23,-208] + str wzr, [x19,3616] ldr w0, [x22,16] ldr w23, [x22,508] - str w0, [x19,3556] - cbz w23, .L3313 + str w0, [x19,3620] + cbz w23, .L3612 mov x0, x22 mov w1, 508 bl js_hash cmp w23, w0 - beq .L3313 - adrp x0, .LC223 + beq .L3612 + adrp x0, .LC315 str wzr, [x22,16] - add x0, x0, :lo12:.LC223 - str wzr, [x19,3556] + add x0, x0, :lo12:.LC315 + str wzr, [x19,3620] bl printk -.L3313: - add x0, x20, :lo12:.LANCHOR8 - ldr w1, [x0,3556] - cbz w1, .L3314 - mov w1, 5161 - movk w1, 0xc059, lsl 16 - str w1, [x0,3552] -.L3314: - add x20, x20, :lo12:.LANCHOR8 - add x21, x21, :lo12:.LANCHOR9 +.L3612: + add x21, x21, :lo12:.LANCHOR8 + ldr w0, [x21,3620] + cbz w0, .L3613 + mov w0, 5161 + movk w0, 0xc059, lsl 16 + str w0, [x21,3616] +.L3613: + add x20, x20, :lo12:.LANCHOR9 mov w0, 2 - ldr x1, [x20,4088] + ldr x1, [x20,-200] bl StorageSysDataLoad - ldr x1, [x21,-256] + ldr x1, [x20,-192] mov w0, 3 bl StorageSysDataLoad bl rknand_sys_storage_init @@ -22079,67 +23429,64 @@ StorageSysDataDeInit: .type rk_ftl_vendor_storage_init, %function rk_ftl_vendor_storage_init: stp x29, x30, [sp, -64]! - mov w1, 193 - mov x0, 65536 + mov w0, 65536 add x29, sp, 0 - movk w1, 0x240, lsl 16 - mov w2, 4 stp x19, x20, [sp,16] stp x21, x22, [sp,32] stp x23, x24, [sp,48] adrp x21, .LANCHOR9 - bl kmalloc_order_trace + bl ftl_malloc add x1, x21, :lo12:.LANCHOR9 mov w19, -12 - str x0, [x1,-248] - cbz x0, .L3323 + str x0, [x1,-184] + cbz x0, .L3622 mov w23, 0 - adrp x24, .LC224 + adrp x24, .LC316 mov w19, w23 mov w22, w23 - add x24, x24, :lo12:.LC224 -.L3327: + add x24, x24, :lo12:.LC316 +.L3626: add x20, x21, :lo12:.LANCHOR9 lsl w0, w22, 7 mov w1, 128 - ldr x2, [x20,-248] + ldr x2, [x20,-184] bl FlashBootVendorRead - cbnz w0, .L3324 - ldr x3, [x20,-248] + cbnz w0, .L3623 + ldr x3, [x20,-184] mov x0, x24 add x2, x3, 61440 ldr w1, [x3] ldr w3, [x3,4] ldr w2, [x2,4092] bl printk - ldr x20, [x20,-248] + ldr x20, [x20,-184] mov w0, 22084 movk w0, 0x524b, lsl 16 ldr w1, [x20] cmp w1, w0 - bne .L3325 + bne .L3624 ldr w0, [x20,4] cmp w19, w0 - bcs .L3325 + bcs .L3624 add x1, x20, 61440 ldr w1, [x1,4092] cmp w1, w0 csel w23, w23, w22, ne csel w19, w19, w0, ne -.L3325: - cbnz w22, .L3335 +.L3624: + cbnz w22, .L3634 mov w22, 1 - b .L3327 -.L3335: - cbz w19, .L3328 + b .L3626 +.L3634: + cbz w19, .L3627 lsl w0, w23, 7 mov w1, 128 mov x2, x20 bl FlashBootVendorRead mov w19, w0 - cbz w0, .L3323 - b .L3324 -.L3328: + cbz w0, .L3622 + b .L3623 +.L3627: mov x0, x20 mov w1, w19 mov x2, 65536 @@ -22153,14 +23500,14 @@ rk_ftl_vendor_storage_init: mov w0, -1032 strh w19, [x20,12] strh w0, [x20,14] - b .L3323 -.L3324: + b .L3622 +.L3623: add x21, x21, :lo12:.LANCHOR9 mov w19, -1 - ldr x0, [x21,-248] + ldr x0, [x21,-184] bl kfree - str xzr, [x21,-248] -.L3323: + str xzr, [x21,-184] +.L3622: mov w0, w19 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -22172,24 +23519,24 @@ rk_ftl_vendor_storage_init: .global rk_ftl_vendor_read .type rk_ftl_vendor_read, %function rk_ftl_vendor_read: - adrp x3, .LANCHOR9-248 + adrp x3, .LANCHOR9-184 stp x29, x30, [sp, -32]! add x29, sp, 0 - ldr x5, [x3,#:lo12:.LANCHOR9-248] + ldr x5, [x3,#:lo12:.LANCHOR9-184] mov w3, -1 str x19, [sp,16] - cbz x5, .L3337 + cbz x5, .L3636 ldrh w3, [x5,10] mov x4, 0 -.L3338: +.L3637: cmp w4, w3 mov w6, w4 - bcs .L3342 + bcs .L3641 add x7, x5, x4, lsl 3 add x4, x4, 1 ldrh w7, [x7,16] cmp w7, w0 - bne .L3338 + bne .L3637 add x6, x5, x6, uxtw 3 ldrh w4, [x6,20] mov x0, x1 @@ -22201,10 +23548,10 @@ rk_ftl_vendor_read: uxtw x2, w19 bl memcpy mov w3, w19 - b .L3337 -.L3342: + b .L3636 +.L3641: mov w3, -1 -.L3337: +.L3636: mov w0, w3 ldr x19, [sp,16] ldp x29, x30, [sp], 32 @@ -22216,10 +23563,10 @@ rk_ftl_vendor_read: rk_ftl_vendor_write: stp x29, x30, [sp, -112]! mov w6, w0 - adrp x0, .LANCHOR9-248 + adrp x0, .LANCHOR9-184 add x29, sp, 0 stp x19, x20, [sp,16] - ldr x19, [x0,#:lo12:.LANCHOR9-248] + ldr x19, [x0,#:lo12:.LANCHOR9-184] stp x25, x26, [sp,64] stp x27, x28, [sp,80] stp x21, x22, [sp,32] @@ -22227,38 +23574,38 @@ rk_ftl_vendor_write: mov w26, w2 mov x28, x1 mov w2, -1 - cbz x19, .L3344 + cbz x19, .L3643 add w20, w26, 63 ldrh w3, [x19,10] ldrh w23, [x19,8] and w20, w20, -64 mov x2, 0 -.L3345: +.L3644: cmp w2, w3 mov w4, w2 - bcs .L3360 + bcs .L3659 add x0, x19, x2, lsl 3 add x2, x2, 1 ldrh w0, [x0,16] cmp w0, w6 - bne .L3345 + bne .L3644 add x21, x19, x4, uxtw 3 ldrh w24, [x21,20] add x5, x19, 1024 add w24, w24, 63 and w24, w24, -64 cmp w26, w24 - bls .L3346 + bls .L3645 ldrh w0, [x19,14] mov w2, -1 cmp w0, w20 - bcc .L3344 + bcc .L3643 ldrh w21, [x21,18] add w22, w3, w2 -.L3347: +.L3646: cmp w4, w22 uxtw x3, w4 - bcs .L3361 + bcs .L3660 add x3, x19, x3, lsl 3 add w25, w4, 1 add x1, x19, x25, uxtw 3 @@ -22281,8 +23628,8 @@ rk_ftl_vendor_write: mov w4, w25 ldr x6, [x29,96] ldr x5, [x29,104] - b .L3347 -.L3361: + b .L3646 +.L3660: add x3, x19, x3, lsl 3 uxth w21, w21 mov x1, x28 @@ -22299,20 +23646,20 @@ rk_ftl_vendor_write: add w24, w24, w0 sub w24, w24, w20 strh w24, [x19,14] - b .L3359 -.L3346: + b .L3658 +.L3645: ldrh w0, [x21,18] mov x1, x28 uxtw x2, w26 add x0, x5, x0 bl memcpy strh w26, [x21,20] - b .L3359 -.L3360: + b .L3658 +.L3659: ldrh w4, [x19,14] mov w2, -1 cmp w4, w20 - bcc .L3344 + bcc .L3643 add x3, x19, x3, uxth 3 strh w6, [x3,16] uxth w20, w20 @@ -22332,7 +23679,7 @@ rk_ftl_vendor_write: ldrh w0, [x19,10] add w0, w0, 1 strh w0, [x19,10] -.L3359: +.L3658: ldr w0, [x19,4] add x1, x19, 61440 mov x2, x19 @@ -22349,7 +23696,7 @@ rk_ftl_vendor_write: lsl w0, w23, 7 bl FlashBootVendorWrite mov w2, 0 -.L3344: +.L3643: mov w0, w2 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -22363,50 +23710,47 @@ rk_ftl_vendor_write: .global rk_ftl_vendor_storage_ioctl .type rk_ftl_vendor_storage_ioctl, %function rk_ftl_vendor_storage_ioctl: - stp x29, x30, [sp, -48]! - adrp x0, kmalloc_caches+96 + stp x29, x30, [sp, -64]! + mov w0, 4096 add x29, sp, 0 - stp x21, x22, [sp,32] - ldr x0, [x0,#:lo12:kmalloc_caches+96] - mov w22, w1 - mov w1, 192 - mov x21, x2 - movk w1, 0x240, lsl 16 - mov x2, 4096 stp x19, x20, [sp,16] - bl kmem_cache_alloc_trace + str x21, [sp,32] mov x20, -1 + str x1, [x29,56] + mov x21, x2 + bl ftl_malloc mov x19, x0 - cbz x0, .L3363 - mov w1, 30209 - movk w1, 0x4004, lsl 16 - cmp w22, w1 - beq .L3365 + cbz x0, .L3662 + mov w2, 30209 + ldr x1, [x29,56] + movk w2, 0x4004, lsl 16 + cmp w1, w2 + beq .L3664 mov w2, 30210 movk w2, 0x4004, lsl 16 - cmp w22, w2 - beq .L3366 - b .L3377 -.L3365: + cmp w1, w2 + beq .L3665 + b .L3676 +.L3664: mov x1, x21 mov x2, 8 bl rk_copy_from_user - cbnz x0, .L3377 + cbnz x0, .L3676 ldr w1, [x19] mov w0, 17745 movk w0, 0x5652, lsl 16 cmp w1, w0 - beq .L3368 -.L3369: + beq .L3667 +.L3668: mov x20, -1 - b .L3364 -.L3368: + b .L3663 +.L3667: ldrh w0, [x19,4] add x1, x19, 8 ldrh w2, [x19,6] bl rk_ftl_vendor_read cmn w0, #1 - beq .L3369 + beq .L3668 uxth x2, w0 strh w0, [x19,6] mov x1, x19 @@ -22416,42 +23760,42 @@ rk_ftl_vendor_storage_ioctl: bl rk_copy_to_user cmp x0, xzr csel x20, xzr, x20, eq - b .L3364 -.L3366: + b .L3663 +.L3665: mov x1, x21 mov x2, 8 bl rk_copy_from_user - cbnz x0, .L3377 + cbnz x0, .L3676 ldr w1, [x19] mov w0, 17745 movk w0, 0x5652, lsl 16 cmp w1, w0 - bne .L3369 + bne .L3668 ldrh w3, [x19,6] cmp w3, 4087 - bhi .L3369 + bhi .L3668 add w2, w3, 8 mov x0, x19 mov x1, x21 sxtw x2, w2 bl rk_copy_from_user - cbnz x0, .L3377 + cbnz x0, .L3676 ldrh w0, [x19,4] add x1, x19, 8 ldrh w2, [x19,6] bl rk_ftl_vendor_write sxtw x20, w0 - b .L3364 -.L3377: + b .L3663 +.L3676: mov x20, -14 -.L3364: +.L3663: mov x0, x19 bl kfree -.L3363: +.L3662: mov x0, x20 + ldr x21, [sp,32] ldp x19, x20, [sp,16] - ldp x21, x22, [sp,32] - ldp x29, x30, [sp], 48 + ldp x29, x30, [sp], 64 ret .size rk_ftl_vendor_storage_ioctl, .-rk_ftl_vendor_storage_ioctl .global gTable_Crc32 @@ -22469,6 +23813,7 @@ rk_ftl_vendor_storage_ioctl: .global RK29_NANDC_REG_BASE .global gp_ftl_api .global g_pm_spare + .global pm_first_write .global pm_gc_enable .global pm_last_load_ram_id .global pm_last_update_ram_id @@ -22490,6 +23835,8 @@ rk_ftl_vendor_storage_ioctl: .global gp_free_xlc_head .global gp_free_slc_head .global gp_sblk_list_tbl + .global ftl_ext_info_first_write + .global ftl_sys_info_first_write .global ftl_low_format_cur_blk .global ftl_power_lost_flag .global ftl_vpn_update_count @@ -22572,6 +23919,7 @@ rk_ftl_vendor_storage_ioctl: .global nandc_hw_seed .global fill_spare_size .global g_nandc_ecc_bits + .global g_nandc_tran_timeout .global g_nandc_ver .global gp_nandc .global hy_f26_ref_value @@ -22614,16 +23962,26 @@ rk_ftl_vendor_storage_ioctl: .section .rodata .align 3 .LANCHOR1 = . + 0 - .type __func__.20006, %object - .size __func__.20006, 18 -__func__.20006: + .type __func__.33843, %object + .size __func__.33843, 18 +__func__.33843: .string "_list_remove_node" .zero 6 - .type __func__.20031, %object - .size __func__.20031, 23 -__func__.20031: + .type __func__.33868, %object + .size __func__.33868, 23 +__func__.33868: .string "_list_update_data_list" .zero 1 + .type __func__.18878, %object + .size __func__.18878, 22 +__func__.18878: + .string "nand_flash_print_info" + .zero 2 + .type __func__.18959, %object + .size __func__.18959, 11 +__func__.18959: + .string "nandc_init" + .zero 5 .type toshiba_A19ref_value, %object .size toshiba_A19ref_value, 45 toshiba_A19ref_value: @@ -22783,9 +24141,9 @@ toshiba_ref_value: .byte 8 .byte 12 .byte 112 - .type __func__.18483, %object - .size __func__.18483, 28 -__func__.18483: + .type __func__.18487, %object + .size __func__.18487, 28 +__func__.18487: .string "flash_wait_device_ready_raw" .zero 4 .type toshiba_3D_tlc_value, %object @@ -23206,14 +24564,19 @@ toshiba_3D_slc_value: .byte -56 .byte 56 .zero 5 - .type __func__.18458, %object - .size __func__.18458, 26 -__func__.18458: + .type __func__.18537, %object + .size __func__.18537, 22 +__func__.18537: + .string "flash_start_page_read" + .zero 2 + .type __func__.18462, %object + .size __func__.18462, 26 +__func__.18462: .string "flash_erase_duplane_block" .zero 6 - .type __func__.18469, %object - .size __func__.18469, 21 -__func__.18469: + .type __func__.18473, %object + .size __func__.18473, 21 +__func__.18473: .string "flash_erase_block_en" .zero 3 .type random_seed, %object @@ -23347,704 +24710,924 @@ random_seed: .hword 28406 .hword 17598 .hword 28087 - .type __func__.18534, %object - .size __func__.18534, 22 -__func__.18534: - .string "flash_start_page_read" - .zero 2 - .type __func__.19121, %object - .size __func__.19121, 13 -__func__.19121: + .type __func__.19129, %object + .size __func__.19129, 13 +__func__.19129: .string "buf_add_tail" .zero 3 - .type __func__.19134, %object - .size __func__.19134, 10 -__func__.19134: + .type __func__.19142, %object + .size __func__.19142, 10 +__func__.19142: .string "buf_alloc" .zero 6 - .type __func__.19148, %object - .size __func__.19148, 16 -__func__.19148: + .type __func__.19156, %object + .size __func__.19156, 16 +__func__.19156: .string "buf_remove_free" - .type __func__.19396, %object - .size __func__.19396, 13 -__func__.19396: + .type zftl_debug_proc_fops, %object + .size zftl_debug_proc_fops, 216 +zftl_debug_proc_fops: + .xword 0 + .xword seq_lseek + .xword seq_read + .xword zftl_debug_proc_write + .zero 56 + .xword zftl_debug_proc_open + .zero 8 + .xword single_release + .zero 104 + .type __func__.33231, %object + .size __func__.33231, 13 +__func__.33231: .string "ftl_read_buf" .zero 3 - .type __func__.19614, %object - .size __func__.19614, 12 -__func__.19614: + .type __func__.33449, %object + .size __func__.33449, 12 +__func__.33449: .string "gc_add_sblk" .zero 4 - .type __func__.19679, %object - .size __func__.19679, 19 -__func__.19679: + .type __func__.33514, %object + .size __func__.33514, 19 +__func__.33514: .string "gc_write_completed" .zero 5 - .type __func__.19730, %object - .size __func__.19730, 16 -__func__.19730: + .type __func__.33565, %object + .size __func__.33565, 16 +__func__.33565: .string "gc_free_src_blk" - .type __func__.20200, %object - .size __func__.20200, 18 -__func__.20200: + .type __func__.34037, %object + .size __func__.34037, 18 +__func__.34037: .string "ftl_alloc_sys_blk" .zero 6 - .type __func__.20210, %object - .size __func__.20210, 17 -__func__.20210: + .type __func__.34047, %object + .size __func__.34047, 17 +__func__.34047: .string "ftl_free_sys_blk" .zero 7 - .type __func__.20313, %object - .size __func__.20313, 23 -__func__.20313: + .type __func__.34151, %object + .size __func__.34151, 23 +__func__.34151: .string "ftl_get_ppa_from_index" .zero 1 - .type __func__.20353, %object - .size __func__.20353, 22 -__func__.20353: + .type __func__.34191, %object + .size __func__.34191, 22 +__func__.34191: .string "ftl_get_new_free_page" .zero 2 - .type __func__.20364, %object - .size __func__.20364, 22 -__func__.20364: + .type __func__.34202, %object + .size __func__.34202, 22 +__func__.34202: .string "ftl_ext_alloc_new_blk" .zero 2 - .type __func__.19337, %object - .size __func__.19337, 14 -__func__.19337: + .type __func__.33172, %object + .size __func__.33172, 14 +__func__.33172: .string "ftl_write_buf" .zero 2 - .type __func__.20162, %object - .size __func__.20162, 15 -__func__.20162: + .type __func__.33999, %object + .size __func__.33999, 15 +__func__.33999: .string "ftl_alloc_sblk" .align 3 .LANCHOR3 = . + 0 - .type __func__.20785, %object - .size __func__.20785, 17 -__func__.20785: + .type __func__.34624, %object + .size __func__.34624, 17 +__func__.34624: .string "pm_alloc_new_blk" .zero 7 - .type __func__.20813, %object - .size __func__.20813, 21 -__func__.20813: + .type __func__.34652, %object + .size __func__.34652, 21 +__func__.34652: .string "pm_select_ram_region" .zero 3 - .type __func__.19274, %object - .size __func__.19274, 17 -__func__.19274: + .type __func__.18868, %object + .size __func__.18868, 20 +__func__.18868: + .string "flash_die_info_init" + .zero 4 + .type __func__.33109, %object + .size __func__.33109, 17 +__func__.33109: .string "lpa_rebuild_hash" .zero 7 - .type __func__.20749, %object - .size __func__.20749, 13 -__func__.20749: + .type __func__.34588, %object + .size __func__.34588, 13 +__func__.34588: .string "pm_free_sblk" .zero 3 - .type __func__.18414, %object - .size __func__.18414, 19 -__func__.18414: + .type __func__.19179, %object + .size __func__.19179, 21 +__func__.19179: + .string "flash_into_data_init" + .zero 3 + .type __func__.18418, %object + .size __func__.18418, 19 +__func__.18418: .string "flash_read_page_en" .zero 5 - .type __func__.18549, %object - .size __func__.18549, 25 -__func__.18549: + .type __func__.19168, %object + .size __func__.19168, 20 +__func__.19168: + .string "flash_info_blk_init" + .zero 4 + .type __func__.18552, %object + .size __func__.18552, 25 +__func__.18552: .string "flash_complete_page_read" .zero 7 - .type __func__.19632, %object - .size __func__.19632, 21 -__func__.19632: + .type __func__.33467, %object + .size __func__.33467, 21 +__func__.33467: .string "gc_check_data_one_wl" .zero 3 - .type __func__.18508, %object - .size __func__.18508, 26 -__func__.18508: - .string "flash_start_tlc_page_prog" - .zero 6 - .type __func__.18521, %object - .size __func__.18521, 22 -__func__.18521: + .type __func__.18524, %object + .size __func__.18524, 22 +__func__.18524: .string "flash_start_page_prog" .zero 2 - .type __func__.20676, %object - .size __func__.20676, 15 -__func__.20676: + .type __func__.34514, %object + .size __func__.34514, 15 +__func__.34514: .string "sblk_prog_page" .zero 1 - .type __func__.18443, %object - .size __func__.18443, 19 -__func__.18443: + .type __func__.18511, %object + .size __func__.18511, 26 +__func__.18511: + .string "flash_start_tlc_page_prog" + .zero 6 + .type __func__.18447, %object + .size __func__.18447, 19 +__func__.18447: .string "flash_prog_page_en" .zero 5 - .type __func__.20501, %object - .size __func__.20501, 14 -__func__.20501: + .type __func__.34339, %object + .size __func__.34339, 14 +__func__.34339: .string "ftl_prog_page" .zero 2 - .type __func__.20130, %object - .size __func__.20130, 15 -__func__.20130: + .type __func__.33967, %object + .size __func__.33967, 15 +__func__.33967: .string "ftl_info_flush" .zero 1 - .type __func__.20389, %object - .size __func__.20389, 19 -__func__.20389: + .type __func__.34227, %object + .size __func__.34227, 19 +__func__.34227: .string "ftl_ext_info_flush" .zero 5 - .type __func__.20401, %object - .size __func__.20401, 18 -__func__.20401: + .type __func__.34239, %object + .size __func__.34239, 18 +__func__.34239: .string "ftl_ext_info_init" .zero 6 - .type __func__.20447, %object - .size __func__.20447, 15 -__func__.20447: + .type __func__.34285, %object + .size __func__.34285, 15 +__func__.34285: .string "ftl_low_format" .zero 1 - .type __func__.20491, %object - .size __func__.20491, 23 -__func__.20491: + .type __func__.34329, %object + .size __func__.34329, 23 +__func__.34329: .string "ftl_re_low_format_test" .zero 1 - .type __func__.20287, %object - .size __func__.20287, 23 -__func__.20287: + .type __func__.34125, %object + .size __func__.34125, 23 +__func__.34125: .string "ftl_open_sblk_recovery" .zero 1 - .type __func__.20795, %object - .size __func__.20795, 14 -__func__.20795: + .type __func__.34634, %object + .size __func__.34634, 14 +__func__.34634: .string "pm_write_page" .zero 2 - .type __func__.20268, %object - .size __func__.20268, 16 -__func__.20268: + .type __func__.19201, %object + .size __func__.19201, 17 +__func__.19201: + .string "flash_info_flush" + .zero 7 + .type __func__.18922, %object + .size __func__.18922, 16 +__func__.18922: + .string "nand_flash_init" + .type __func__.34106, %object + .size __func__.34106, 16 +__func__.34106: .string "ftl_sysblk_dump" - .type __func__.20735, %object - .size __func__.20735, 16 -__func__.20735: + .type __func__.34574, %object + .size __func__.34574, 16 +__func__.34574: .string "load_l2p_region" - .type __func__.20769, %object - .size __func__.20769, 6 -__func__.20769: + .type __func__.34608, %object + .size __func__.34608, 6 +__func__.34608: .string "pm_gc" .zero 2 - .type __func__.19388, %object - .size __func__.19388, 15 -__func__.19388: + .type __func__.33223, %object + .size __func__.33223, 15 +__func__.33223: .string "ftl_read_ahead" .zero 1 - .type __func__.19666, %object - .size __func__.19666, 22 -__func__.19666: + .type __func__.33501, %object + .size __func__.33501, 22 +__func__.33501: .string "gc_update_l2p_map_new" .zero 2 - .type __func__.19834, %object - .size __func__.19834, 20 -__func__.19834: + .type __func__.33669, %object + .size __func__.33669, 20 +__func__.33669: .string "gc_scan_static_data" .zero 4 - .type __func__.19892, %object - .size __func__.19892, 18 -__func__.19892: + .type __func__.33727, %object + .size __func__.33727, 18 +__func__.33727: .string "gc_block_vpn_scan" .zero 6 - .type __func__.20244, %object - .size __func__.20244, 14 -__func__.20244: + .type __func__.34082, %object + .size __func__.34082, 14 +__func__.34082: .string "ftl_sblk_dump" .zero 2 - .type __func__.19434, %object - .size __func__.19434, 10 -__func__.19434: + .type __func__.33269, %object + .size __func__.33269, 10 +__func__.33269: .string "zftl_read" .zero 6 - .type __func__.19501, %object - .size __func__.19501, 10 -__func__.19501: + .type __func__.33336, %object + .size __func__.33336, 10 +__func__.33336: .string "vpn_check" .zero 6 - .type __func__.19775, %object - .size __func__.19775, 16 -__func__.19775: + .type __func__.33610, %object + .size __func__.33610, 16 +__func__.33610: .string "gc_scan_src_blk" - .type __func__.20334, %object - .size __func__.20334, 19 -__func__.20334: + .type __func__.34172, %object + .size __func__.34172, 19 +__func__.34172: .string "ftl_update_l2p_map" .zero 5 - .type __func__.19326, %object - .size __func__.19326, 17 -__func__.19326: + .type __func__.33161, %object + .size __func__.33161, 17 +__func__.33161: .string "ftl_write_commit" .zero 7 - .type __func__.19708, %object - .size __func__.19708, 16 -__func__.19708: + .type __func__.33543, %object + .size __func__.33543, 16 +__func__.33543: .string "gc_do_copy_back" - .type __func__.19460, %object - .size __func__.19460, 13 -__func__.19460: + .type __func__.33295, %object + .size __func__.33295, 13 +__func__.33295: .string "_ftl_discard" .zero 3 - .type __func__.19919, %object - .size __func__.19919, 11 -__func__.19919: + .type __func__.33754, %object + .size __func__.33754, 11 +__func__.33754: .string "zftl_do_gc" .section .rodata.str1.1,"aMS",%progbits,1 .LC0: .string "\n!!!!! error @ func:%s - line:%d\n" .LC1: - .string "No.%d FLASH ID:%x %x %x %x %x %x\n" -.LC2: - .string "flash_erase_duplane_block %x %x %x\n" -.LC3: - .string "flash_erase_duplane_block pageadd = %x status = %x\n" -.LC4: - .string "flash_erase_block %x %x\n" -.LC5: - .string "flash_erase_block block = %x status = %x\n" -.LC6: - .string "erase done: %x\n" -.LC7: - .string "flash_mask_bad_block %d %d\n" -.LC8: .string "%s\n" +.LC2: + .string "FTL version: 6.0.6 20180402" +.LC3: + .string "zftl_debug:0x%x\n" +.LC4: + .string "...%s enter...\n" +.LC5: + .string "No.0 FLASH ID: %x %x %x %x %x %x\n" +.LC6: + .string "DiePerChip: %x\n" +.LC7: + .string "SectPerPage: %x\n" +.LC8: + .string "PagePerBlk: %x\n" .LC9: - .string "FTL version: 6.0.5 20180316" + .string "Cell: %x\n" .LC10: - .string "FLASH ID: %x %x %x %x %x %x\n" + .string "PlanePerDie: %x\n" .LC11: - .string "density: %d MB\n" + .string "BlkPerPlane: %x\n" .LC12: - .string "device density: %d MB\n" + .string "die gap: %x\n" .LC13: - .string "FTL INFO:\n" + .string "lsbMode: %x\n" .LC14: - .string "max_lpn = 0x%x\n" + .string "ReadRetryMode: %x\n" .LC15: - .string "density = 0x%x\n" + .string "ecc: %x\n" .LC16: - .string "slc vpn = 0x%x\n" + .string "idb ecc: %x\n" .LC17: - .string "xlc vpn = 0x%x\n" + .string "g_flash_slc_mode: %x\n" .LC18: - .string "free slc blk = 0x%x\n" + .string "OptMode: %x\n" .LC19: - .string "free xlc blk = 0x%x\n" + .string "g_nand_max_die: %x\n" .LC20: - .string "free mix blk = 0x%x\n" + .string "Cache read enable: %x\n" .LC21: - .string "slc data blk = 0x%x\n" + .string "Cache random read enable: %x\n" .LC22: - .string "slc cache blk = 0x%x\n" + .string "Cache prog enable: %x\n" .LC23: - .string "xlc data blk = 0x%x\n" + .string "multi read enable: %x\n" .LC24: - .string "bad blk = %d %d\n" + .string "multi prog enable: %x\n" .LC25: - .string "TBW = %d MB\n" + .string "interleave enable: %x\n" .LC26: - .string "TBR = %d MB\n" + .string "read retry enable: %x\n" .LC27: - .string "POC = %d\n" + .string "randomizer enable: %x\n" .LC28: - .string "PLC = %d\n" + .string "SDR enable: %x\n" .LC29: - .string "sys run time = %d S\n" + .string "ONFI enable: %x\n" .LC30: - .string "slc mode = %d\n" + .string "TOGGLE enable: %x\n" .LC31: - .string "prog err = %d\n" + .string "MultiPlaneProgCmd: %x %x\n" .LC32: - .string "read err = %d\n" + .string "MultiPlaneReadCmd: %x %x\n" .LC33: - .string "GC XLC page = %d\n" + .string "g_flash_toggle_mode_en: %x\n" .LC34: - .string "GC SLC page = %d\n" + .string "...%s enter... %p\n" .LC35: - .string "discard page = 0x%x\n" + .string "0:%x %x %x %x %x\n" .LC36: - .string "version = %d\n" + .string "g_nandc_ver...%d\n" .LC37: - .string "acblk = 0x%x %d %d\n" + .string "nand sdr mode %x\n" .LC38: - .string "tmblk = 0x%x %d %d\n" + .string "nand ddr mode %x\n" .LC39: - .string "gcblk = 0x%x %d %d\n" + .string "No.%d FLASH ID:%x %x %x %x %x %x\n" .LC40: - .string "slc ec = %d, %d, %d, %d, %d\n" + .string "bad block test:%x %x\n" .LC41: - .string "xlc ec = %d, %d, %d, %d, %d\n" + .string "flash_erase_duplane_block %x %x %x\n" .LC42: - .string "gc free blk th = %d\n" + .string "flash_erase_duplane_block pageadd = %x status = %x\n" .LC43: - .string "gc vpn th = %d %d %d %d\n" + .string "flash_erase_block %x %x\n" .LC44: - .string "gc_add_sblk = %d, %d, %d, %d, %d, %d\n" + .string "flash_erase_block block = %x status = %x\n" .LC45: - .string "status: %x, ppa: %x\n" + .string "erase done: %x\n" .LC46: - .string "gc_write_completed: %x %x %x %x\n" + .string "flash_mask_bad_block %d %d\n" .LC47: - .string "%d gc_free_temp_buf buf id= %x\n" + .string "zftl_debug" .LC48: - .string "gc: b:%x,p:%x,i:%x; free buf=%d %d free slc th: %d\n" + .string "FLASH ID: %x %x %x %x %x %x\n" .LC49: - .string "zftl_get_gc_node cache = %x index = %d vpn = %x\n" + .string "density: %d MB\n" .LC50: - .string "gc_search_src_blk mode = %x, src mode = %x, count= %d %d\n" + .string "device density: %d MB\n" .LC51: - .string "zftl_get_free_sblk %x %d, %p %d %d\n" + .string "FTL INFO:\n" .LC52: - .string "list count:%p %d\n" + .string "max_lpn = 0x%x\n" .LC53: - .string "%d: node:%x %x %x %x, %d %d %d %d %d\n" + .string "density = 0x%x\n" .LC54: - .string "gc_free_src_blk = %x, vpn = %d\n" + .string "slc vpn = 0x%x\n" .LC55: - .string "gc_free_src_blk %x, %d\n" + .string "xlc vpn = 0x%x\n" .LC56: - .string "ftl_vpn_decrement %x = %d\n" + .string "free slc blk = 0x%x\n" .LC57: - .string "mask bad block:cs %x block: %x\n" + .string "free xlc blk = 0x%x\n" .LC58: - .string "free blk: s:%x,t:%x,m:%x, data blk:s:%x,%x,t%x vpn: s:%x t:%x, max_vpn: %x\n" + .string "free mix blk = 0x%x\n" .LC59: - .string "totle w: %d MB,r: %d MB %d dv:0x%X,poc:%d\n" + .string "slc data blk = 0x%x\n" .LC60: - .string "gc xlc page: %d,gc slc page: %d, tmp w: %d MB\n" + .string "slc cache blk = 0x%x\n" .LC61: - .string "slc ec: %d,%d,%d,%d,%d,tlc ec: %d,%d,%d,%d,%d\n" + .string "xlc data blk = 0x%x\n" .LC62: - .string "gc th: tlc_tlc: %d tlc_slc: %d slc_slc: %d slc_tlc:%d free_th: %d\n" + .string "free buf = %d, %d, %d\n" .LC63: - .string "ftl prog error =%x, lpa = %x, ppa= %x\n" + .string "bad blk = %d %d\n" .LC64: - .string "alloc sblk %x %d\n" + .string "TBW = %d MB\n" .LC65: - .string "dump_sblk_queue: %d\n" + .string "TBR = %d MB\n" .LC66: - .string "buf id= %d state = %d ppa = %x\n" + .string "POC = %d\n" .LC67: - .string "blk %x is bad block\n" + .string "PLC = %d\n" .LC68: - .string "pm_alloc_new_blk: %x %x %x %x\n" + .string "sys run time = %d S\n" .LC69: - .string "%s %d %d\n" + .string "slc mode = %d\n" .LC70: - .string "gc_static_wearleveling: slc blk: %d, tlc blk: %d avg slc ec: %d, avg tlc ec: %d \n" + .string "prog err = %d\n" .LC71: - .string "gc_static_wearleveling: min slc ec: %d, min tlc ec: %d max slc ec: %d, max tlc ec: %d; %d %d\n" + .string "read err = %d\n" .LC72: - .string "swl add tlc gc = %d, %d, %d, %d, %d, %d\n" + .string "GC XLC page = %d\n" .LC73: - .string "swl add slc gc = %d, %d, %d, %d, %d, %d\n" + .string "GC SLC page = %d\n" .LC74: - .string "free blk vpn error: %x %x\n" + .string "discard page = 0x%x\n" .LC75: - .string "rk_ftl_de_init %x\n" + .string "version = %d\n" .LC76: - .string "%s %p:0x%x:" + .string "acblk = 0x%x %d %d\n" .LC77: - .string "%x " + .string "tmblk = 0x%x %d %d\n" .LC78: - .string "" + .string "gcblk = 0x%x %d %d\n" .LC79: - .string "otp error! %d" + .string "slc ec = %d, %d, %d, %d, %d\n" .LC80: - .string "rr" + .string "xlc ec = %d, %d, %d, %d, %d\n" .LC81: - .string "%d mtrans_cnt = %d page_num = %d\n" + .string "gc free blk th = %d\n" .LC82: - .string "nandc:" + .string "gc vpn th = %d %d %d %d\n" .LC83: - .string "%d flReg.d32=%x %x\n" + .string "gc_add_sblk = %d, %d, %d, %d, %d, %d\n" .LC84: - .string "nandc_xfer_done read error %x\n" + .string "status: %x, ppa: %x\n" .LC85: - .string "dqs data abort %x\n" + .string "gc_write_completed: %x %x %x %x\n" .LC86: - .string "xfer error %x\n" + .string "%d gc_free_temp_buf buf id= %x\n" .LC87: - .string "flash_read_page %x %x %x\n" + .string "gc: b:%x,p:%x,i:%x; free buf=%d %d free slc th: %d\n" .LC88: - .string "micron RR %d row=%x,count %d,status=%d\n" + .string "zftl_get_gc_node cache = %x index = %d vpn = %x\n" .LC89: - .string "toshiba SRR %d row=%x, status=%d\n" + .string "gc_search_src_blk mode = %x, src mode = %x, count= %d %d\n" .LC90: - .string "toshiba TRR %d row=%x, status=%d\n" + .string "zftl_get_free_sblk %x %d, %p %d %d\n" .LC91: - .string "toshiba RR %d row=%x,count %d,status=%d\n" + .string "list count:%p %d\n" .LC92: - .string "hynix RR %d row=%x, count %d, status=%d\n" + .string "%d: node:%x %x %x %x, %d %d %d %d %d\n" .LC93: - .string "%d flash_ddr_tunning_read %x ecc=%d\n" + .string "gc_free_src_blk = %x, vpn = %d\n" .LC94: - .string "sync para %d\n" + .string "gc_free_src_blk %x, %d\n" .LC95: - .string "DDR mode Read error %x %x\n" + .string "ftl_vpn_decrement %x = %d\n" .LC96: - .string "flash_read_page_en %x %x\n" + .string "mask bad block:cs %x block: %x\n" .LC97: - .string "flash_read_page_en %x %x error_ecc %d %d\n" + .string "free blk: s:%x,t:%x,m:%x, data blk:s:%x,%x,t%x vpn: s:%x t:%x, max_vpn: %x\n" .LC98: - .string "no sys info %x\n" + .string "totle w: %d MB,r: %d MB %d dv:0x%X,poc:%d\n" .LC99: - .string "read page: %x %x %x %x\n" + .string "gc xlc page: %d,gc slc page: %d, tmp w: %d MB\n" .LC100: - .string "flash_complete_page_read %x %x error_ecc %d %d\n" + .string "slc ec: %d,%d,%d,%d,%d,tlc ec: %d,%d,%d,%d,%d\n" .LC101: - .string "set buf %d,status = %x, ppa = %x lun state = %d\n" + .string "gc th: tlc_tlc: %d tlc_slc: %d slc_slc: %d slc_tlc:%d free_th: %d\n" .LC102: - .string "1ppa = %x, status = %x, %x %x spare: %x %x %x %x\n" + .string "ftl prog error =%x, lpa = %x, ppa= %x\n" .LC103: - .string "flash_prog_page %x %x %x\n" + .string "alloc sblk %x %d\n" .LC104: - .string "sblk_prog_page ppa = %x, count = %d\n" + .string "dump_sblk_queue: %d\n" .LC105: - .string "flash_prog_page_en:%x %x\n" + .string "buf id= %d state = %d ppa = %x\n" .LC106: - .string "spare" + .string "blk %x is bad block\n" .LC107: - .string "data" + .string "pm_alloc_new_blk: %x %x %x %x\n" .LC108: - .string "write error: %x\n" + .string "%s %d %d\n" .LC109: - .string "low format %d\n" + .string "gc_static_wearleveling: slc blk: %d, tlc blk: %d avg slc ec: %d, avg tlc ec: %d \n" .LC110: - .string "g_ftl_info_blk blk = %x, page = %x version = %d\n" + .string "gc_static_wearleveling: min slc ec: %d, min tlc ec: %d max slc ec: %d, max tlc ec: %d; %d %d\n" .LC111: - .string "%d %x @%d %x\n" + .string "swl add tlc gc = %d, %d, %d, %d, %d, %d\n" .LC112: - .string "ftl_info_blk_init %d %d %x\n" + .string "swl add slc gc = %d, %d, %d, %d, %d, %d\n" .LC113: - .string "low format %d %d %d %d\n" + .string "free blk vpn error: %x %x\n" .LC114: - .string "re low format %d\n" + .string "ftl_free_no_use_map_blk %x %x %x %d\n" .LC115: - .string "saved_active_page = %x\n" + .string "...%d @ %s\n" .LC116: - .string "saved_active_plane = %x\n" + .string "rk_ftl_de_init %x\n" .LC117: - .string "sblk = %x\n" + .string "%s %p:0x%x:" .LC118: - .string "phy_blk = %x %x\n" + .string "%x " .LC119: - .string "blk= %x, page=%x, ppa = %x, status = %x, data:%x %x %x %x, spare: %x %x %x %x\n" + .string "" .LC120: - .string "sblk = %x, vpn0 = %d, vpn1 = %d\n" + .string "otp error! %d" .LC121: - .string "dump write = %x\n" + .string "rr" .LC122: - .string "pm_write_page write error: %x\n" + .string "flash_abort_clear = %d\n" .LC123: - .string "finfo:" + .string "%d mtrans_cnt = %d page_num = %d\n" .LC124: - .string "flash_info_flush id = %x, page = %x\n" + .string "nandc:" .LC125: - .string "sys_info_flush error:%x\n" + .string "%d flReg.d32=%x %x\n" .LC126: - .string "l2p:" + .string "nandc_xfer_done read error %x\n" .LC127: - .string "g_ftl_info_blk blk:0x%x, index:0x%x, page:0x%x\n" + .string "dqs data abort %x\n" .LC128: - .string "ftl_ext_info_blk blk:0x%x, page:0x%x\n" + .string "dqs data timeout %x\n" .LC129: - .string "ac_blk:0x%x, page:0x%x, index:0x%x, free:0x%x, page_index:0x%x\n" + .string "xfer error %x\n" .LC130: - .string "tmp_blk:0x%x, page:0x%x, index:0x%x, free:0x%x, page_index:0x%x\n" + .string "flash_read_page %x %x %x\n" .LC131: - .string "gc_blk:0x%x, page:0x%x, index:0x%x, free:0x%x, page_index:0x%x\n" + .string "micron %d row=%x,count %d,status=%d\n" .LC132: - .string "lpa:" + .string "micron RR %d row=%x,count %d,status=%d\n" .LC133: - .string "vpn:" + .string "toshiba SRR %d row=%x, status=%d\n" .LC134: - .string "sblk:" + .string "toshiba TRR %d row=%x, status=%d\n" .LC135: - .string "lpa_hash:" + .string "toshiba RR %d row=%x,count %d,status=%d\n" .LC136: - .string "lpa_hash_index:" + .string "hynix RR %d row=%x, count %d, status=%d\n" .LC137: - .string "%s w error lpn = %x, max ppa = %d\n" + .string "%d flash_ddr_tunning_read %x ecc=%d\n" .LC138: - .string "region_id = %d, pm_max_region = %d\n" + .string "sync para %d\n" .LC139: - .string "load_l2p_region = %x,%x,%x, %x\n" + .string "DDR mode Read error %x %x\n" .LC140: - .string "pm_ppa:" + .string "flash_read_page_en %x %x\n" .LC141: - .string "data:" + .string "flash_read_page_en %x %x error_ecc %d %d\n" .LC142: - .string "spare:" + .string "flash_get_last_written_page: %x %x %x\n" .LC143: - .string "pm_init posr %x %x %x\n" + .string "...%d @ %s %d %p\n" .LC144: - .string "pm_init recovery %x %x %x\n" + .string "no sys info %x\n" .LC145: - .string "pm_log2phys lpn = %d, max lpn = %d\n" + .string "read page: %x %x %x %x\n" .LC146: - .string "ftl_read_ahead refresh =%x, lpa = %x, ppa= %x\n" + .string "flash_complete_page_read %x %x error_ecc %d %d\n" .LC147: - .string "id=%d, lpa = %x, ppa = %x spare = %x %x %x %x\n" + .string "set buf %d,status = %x, ppa = %x lun state = %d\n" .LC148: - .string "ppa = %x, status = %x, data:%x %x %x %x, spare: %x %x %x %x\n" + .string "1ppa = %x, status = %x, %x %x spare: %x %x %x %x\n" .LC149: - .string "ppa = %x, status = %x, %x %x spare: %x %x %x %x\n" + .string "flash_prog_page %x %x %x\n" .LC150: - .string "gc_recovery" + .string "flash_prog_page page_addr = %x status = %x\n" .LC151: - .string "gc_recovery: %x vpn = %x\n" + .string "sblk_prog_page ppa = %x, count = %d\n" .LC152: - .string "ftl_init %x\n" + .string "flash_prog_page_en:%x %x\n" .LC153: - .string "gc_update_l2p_map_new sblk %x\n" + .string "spare" .LC154: - .string "gc_update_l2p_map_new: %x %x %x\n" + .string "data" .LC155: - .string "0lpa: %x %x %x\n" + .string "write error: %x\n" .LC156: - .string "lpa: %x %x %x\n" + .string "low format %d\n" .LC157: - .string "gc_update_l2p_map_new: %x vpn = %x vpn1 = %x done\n" + .string "g_ftl_info_blk blk = %x, page = %x version = %d\n" .LC158: - .string "gc_block_vpn_scan = %x, s vpn0 = %d, c vpn1 = %d f:%d\n" + .string "%d %x @%d %x\n" .LC159: - .string "ftl_sblk_dump = %x %x %x %x\n" + .string "ftl_info_blk_init %d %d %x\n" .LC160: - .string "page_addr = %x, lpa=%x vpn = %d\n" + .string "low format %d %d %d %d\n" .LC161: - .string "index= %x, lpa=%x\n" + .string "re low format %d\n" .LC162: - .string "block = %x, vpn=%x check vpn = %d\n" + .string "saved_active_page = %x\n" .LC163: - .string "ftl_read %x %x %x\n" + .string "saved_active_plane = %x\n" .LC164: - .string "ftl_read refresh =%x, lpa = %x, ppa= %x\n" + .string "sblk = %x\n" .LC165: - .string "acblk = %x, tempblk = %x, gc_des = %x\n" + .string "phy_blk = %x %x\n" .LC166: - .string "acblk = %x, free page = %x, vpn = %x %x\n" + .string "blk= %x, page=%x, ppa = %x, status = %x, data:%x %x %x %x, spare: %x %x %x %x\n" .LC167: - .string "tmp_blk = %x, free page = %x, vpn = %x %x\n" + .string "sblk = %x, vpn0 = %d, vpn1 = %d\n" .LC168: - .string "vpn_check lpa = %x, ppa = %x, blk = %x\n" + .string "dump write = %x\n" .LC169: - .string "l2p" + .string "pm_write_page write error: %x\n" .LC170: - .string "vpn_check %x = c %x s %x function: %x\n" + .string "finfo:" .LC171: - .string "vpn_check blk = %x fix vpc\n" + .string "flash_info_flush id = %x, page = %x\n" .LC172: - .string "...%s exit...%d\n" + .string "sys_info_flush error:%x\n" .LC173: - .string "gc_scan_src_blk = %x, vpn = %d\n" + .string "l2p:" .LC174: - .string "gc_scan_src_blk = %x, s vpn0 = %d, c vpn1 = %d\n" + .string "free_buf_count: %d\n" .LC175: - .string "ftl_scan_all_data = %x\n" + .string "g_ftl_info_blk blk:0x%x, index:0x%x, page:0x%x\n" .LC176: - .string "scan lpa = %x ppa= %x\n" + .string "ftl_ext_info_blk blk:0x%x, page:0x%x\n" .LC177: - .string "lba = %x,addr= %x, ststus = %x, spare= %x %x %x %x data=%x %x\n" + .string "ac_blk:0x%x, page:0x%x, index:0x%x, free:0x%x, page_index:0x%x\n" .LC178: - .string "lba = %x, id= %x, index = %x hash ppa = %x\n" + .string "tmp_blk:0x%x, page:0x%x, index:0x%x, free:0x%x, page_index:0x%x\n" .LC179: - .string "0pm:" + .string "gc_blk:0x%x, page:0x%x, index:0x%x, free:0x%x, page_index:0x%x\n" .LC180: - .string "1pm:" + .string "lpa:" .LC181: - .string "ftl_update_l2p_map: %x %x %x\n" + .string "vpn:" .LC182: - .string "ftl_update_l2p_map" + .string "sblk:" .LC183: - .string "lpa_tbl:" + .string "lpa_hash:" .LC184: - .string "sblk %x vpn: %d %d\n" + .string "lpa_hash_index:" .LC185: - .string "%d read error: ppa:%x, lpa:%x, status:%x\n" + .string "%s w error lpn = %x, max ppa = %d\n" .LC186: - .string "gc page in buf: lpa %x ppa = %x pageindex= %x\n" + .string "region_id = %d, pm_max_region = %d\n" .LC187: - .string "gc_do_copy_back: lpa %x des_ppa = %x %x gc_ppa= %x page_index= %d\n" + .string "load_l2p_region no ppa = %x , %x, all setting 0xff....\n" .LC188: - .string "gc_do_copy_back: %x %x %x %x gc_ppa:%x %x\n" + .string "load_l2p_region = %x,%x,%x, %x\n" .LC189: - .string "%d prog_step: %x %x buf id= %x ppa = %x hash=%x id = %x plane = %x lpa=%x\n" + .string "pm_ppa:" .LC190: - .string "ftl_discard:(%x, %x, %x, %x)\n" + .string "data:" .LC191: - .string "gc %d: %d %d %d %d %d %d %d\n" + .string "spare:" .LC192: - .string "gc %d: %d %d %d %d %d %d\n" + .string "pm_init posr %x %x %x\n" .LC193: - .string "GC_STATE_SCAN_ALL_PAGE = %x, vpn0 = %d, vpn1 = %d\n" + .string "pm_init recovery %x %x %x\n" .LC194: - .string "gc free %x, %d\n" + .string "pm_log2phys lpn = %d, max lpn = %d\n" .LC195: - .string "ftlwrite %x %x %x\n" + .string "ftl_read_ahead refresh =%x, lpa = %x, ppa= %x\n" .LC196: - .string "id_block_prog_msb_ff_data slc page = %d pageadd=%x %x\n" + .string "id=%d, lpa = %x, ppa = %x spare = %x %x %x %x\n" .LC197: - .string "write_idblock fix data %x %x\n" + .string "ppa = %x, status = %x, data:%x %x %x %x, spare: %x %x %x %x\n" .LC198: - .string "1 write_idblock fix data %x %x %x\n" + .string "ppa = %x, status = %x, %x %x spare: %x %x %x %x\n" .LC199: - .string "READ_SECTOR_IO\n" + .string "gc_recovery" .LC200: - .string "rk_copy_from_user error\n" + .string "gc_recovery: %x vpn = %x\n" .LC201: - .string "READ_SECTOR_IO %x %x\n" + .string "_c_user_data_density := %d\n" .LC202: - .string "rk_copy_to_user error\n" + .string "_c_totle_phy_density := %d\n" .LC203: - .string "WRITE_SECTOR_IO\n" + .string "_c_totle_log_page := %d\n" .LC204: - .string "WRITE_SECTOR_IO %x %x\n" + .string "_c_totle_data_density := %d\n" .LC205: - .string "END_WRITE_SECTOR_IO\n" + .string "_c_ftl_pm_page_num := %d\n" .LC206: - .string "END_WRITE_SECTOR_IO %x %x\n" + .string "_c_ftl_byte_pre_page := %d\n" .LC207: - .string "GET_FLASH_INFO_IO\n" + .string "_c_max_pm_sblk := %d\n" .LC208: - .string "GET_BAD_BLOCK_IO\n" + .string "_min_slc_super_block := %d\n" .LC209: - .string "GET_LOCK_FLAG_IO\n" + .string "_max_xlc_super_block := %d\n" .LC210: - .string "GET_PUBLIC_KEY_IO\n" + .string "gp_ftl_ext_info %p %p %p\n" .LC211: - .string "RKNAND_GET_DRM_KEY\n" + .string "flash info size: %d %d %d\n" .LC212: - .string "RKNAND_STORE_DRM_KEY\n" + .string "ftl_init %x\n" .LC213: - .string "RKNAND_DIASBLE_SECURE_BOOT\n" + .string "gc_update_l2p_map_new sblk %x\n" .LC214: - .string "RKNAND_ENASBLE_SECURE_BOOT\n" + .string "gc_update_l2p_map_new: %x %x %x\n" .LC215: - .string "RKNAND_GET_SN_SECTOR\n" + .string "0lpa: %x %x %x\n" .LC216: - .string "RKNAND_LOADER_UNLOCK\n" + .string "lpa: %x %x %x\n" .LC217: - .string "RKNAND_LOADER_STATUS\n" + .string "gc_update_l2p_map_new: %x vpn = %x vpn1 = %x done\n" .LC218: - .string "RKNAND_LOADER_LOCK\n" + .string "gc_block_vpn_scan = %x, s vpn0 = %d, c vpn1 = %d f:%d\n" .LC219: - .string "LockKey not match %d\n" + .string "ftl_sblk_dump = %x %x %x %x\n" .LC220: - .string "RKNAND_GET_VENDOR_SECTOR\n" + .string "page_addr = %x, lpa=%x vpn = %d\n" .LC221: - .string "RKNAND_STORE_VENDOR_SECTOR\n" + .string "index= %x, lpa=%x\n" .LC222: - .string "return ret = %lx\n" + .string "block = %x, vpn=%x check vpn = %d\n" .LC223: - .string "secureBootEn check error\n" + .string "ftl_read %x %x %x\n" .LC224: + .string "ftl_read refresh =%x, lpa = %x, ppa= %x\n" +.LC225: + .string "acblk = %x, tempblk = %x, gc_des = %x\n" +.LC226: + .string "acblk = %x, free page = %x, vpn = %x %x\n" +.LC227: + .string "tmp_blk = %x, free page = %x, vpn = %x %x\n" +.LC228: + .string "vpn_check lpa = %x, ppa = %x, blk = %x\n" +.LC229: + .string "l2p" +.LC230: + .string "vpn_check %x = c %x s %x function: %x\n" +.LC231: + .string "vpn_check blk = %x fix vpc\n" +.LC232: + .string "...%s exit...%d\n" +.LC233: + .string "gc_scan_src_blk = %x, vpn = %d\n" +.LC234: + .string "gc_scan_src_blk = %x, s vpn0 = %d, c vpn1 = %d\n" +.LC235: + .string "ftl_scan_all_data = %x\n" +.LC236: + .string "scan lpa = %x ppa= %x\n" +.LC237: + .string "lba = %x,addr= %x, ststus = %x, spare= %x %x %x %x data=%x %x\n" +.LC238: + .string "lba = %x, id= %x, index = %x hash ppa = %x\n" +.LC239: + .string "0pm:" +.LC240: + .string "1pm:" +.LC241: + .string "zftl debug cmd: %s\n" +.LC242: + .string "cmd:" +.LC243: + .string "dumpl2p" +.LC244: + .string "pm l2p:" +.LC245: + .string "pm blk:" +.LC246: + .string "dumppm:" +.LC247: + .string "p_cmd: %s\n" +.LC248: + .string "pm ram = %x, %x\n" +.LC249: + .string "ram:" +.LC250: + .string "pm:" +.LC251: + .string "dumpsys" +.LC252: + .string "dumplist" +.LC253: + .string "vpncheck" +.LC254: + .string "dumpppa:" +.LC255: + .string "dumpblk:" +.LC256: + .string "setzdebug:" +.LC257: + .string "lpa2ppa:" +.LC258: + .string "lpa: %x--> ppa: %x\n" +.LC259: + .string "help:\n" +.LC260: + .string "1. echo dumpl2p > /proc/zftl_debug\n" +.LC261: + .string "2. echo dumppm:x > /proc/zftl_debug\n" +.LC262: + .string "3. echo dumpsys > /proc/zftl_debug\n" +.LC263: + .string "4. echo dumpppa:x > /proc/zftl_debug\n" +.LC264: + .string "5. echo vpncheck > /proc/zftl_debug\n" +.LC265: + .string "6. echo setzdebug:x > /proc/zftl_debug\n" +.LC266: + .string "7. echo dumplist > /proc/zftl_debug\n" +.LC267: + .string "8. echo lpa2ppa:x> /proc/zftl_debug\n" +.LC268: + .string "ftl_update_l2p_map: %x %x %x\n" +.LC269: + .string "ftl_update_l2p_map" +.LC270: + .string "lpa_tbl:" +.LC271: + .string "sblk %x vpn: %d %d\n" +.LC272: + .string "%d read error: ppa:%x, lpa:%x, status:%x\n" +.LC273: + .string "gc page in buf: lpa %x ppa = %x pageindex= %x\n" +.LC274: + .string "gc_do_copy_back: lpa %x des_ppa = %x %x gc_ppa= %x page_index= %d\n" +.LC275: + .string "gc_do_copy_back: %x %x %x %x gc_ppa:%x %x\n" +.LC276: + .string "%d prog_step: %x %x buf id= %x ppa = %x hash=%x id = %x plane = %x lpa=%x\n" +.LC277: + .string "ftl_discard:(%x, %x, %x, %x)\n" +.LC278: + .string "gc %d: %d %d %d %d %d %d %d\n" +.LC279: + .string "gc %d: %d %d %d %d %d %d\n" +.LC280: + .string "GC_STATE_SCAN_ALL_PAGE = %x, vpn0 = %d, vpn1 = %d\n" +.LC281: + .string "gc free %x, %d\n" +.LC282: + .string "error gc slc free sblk = %x, vpn = %d %d\n" +.LC283: + .string "vpage0:" +.LC284: + .string "block %x, vpn = %d %d %d %d\n" +.LC285: + .string "block %x, vpn = %d %d\n" +.LC286: + .string "vpage1:" +.LC287: + .string "ftlwrite %x %x %x\n" +.LC288: + .string "id_block_prog_msb_ff_data slc page = %d pageadd=%x %x\n" +.LC289: + .string "write_idblock fix data %x %x\n" +.LC290: + .string "1 write_idblock fix data %x %x %x\n" +.LC291: + .string "READ_SECTOR_IO\n" +.LC292: + .string "rk_copy_from_user error\n" +.LC293: + .string "READ_SECTOR_IO %x %x\n" +.LC294: + .string "rk_copy_to_user error\n" +.LC295: + .string "WRITE_SECTOR_IO\n" +.LC296: + .string "WRITE_SECTOR_IO %x %x\n" +.LC297: + .string "END_WRITE_SECTOR_IO\n" +.LC298: + .string "END_WRITE_SECTOR_IO %x %x\n" +.LC299: + .string "GET_FLASH_INFO_IO\n" +.LC300: + .string "GET_BAD_BLOCK_IO\n" +.LC301: + .string "GET_LOCK_FLAG_IO\n" +.LC302: + .string "GET_PUBLIC_KEY_IO\n" +.LC303: + .string "RKNAND_GET_DRM_KEY\n" +.LC304: + .string "RKNAND_STORE_DRM_KEY\n" +.LC305: + .string "RKNAND_DIASBLE_SECURE_BOOT\n" +.LC306: + .string "RKNAND_ENASBLE_SECURE_BOOT\n" +.LC307: + .string "RKNAND_GET_SN_SECTOR\n" +.LC308: + .string "RKNAND_LOADER_UNLOCK\n" +.LC309: + .string "RKNAND_LOADER_STATUS\n" +.LC310: + .string "RKNAND_LOADER_LOCK\n" +.LC311: + .string "LockKey not match %d\n" +.LC312: + .string "RKNAND_GET_VENDOR_SECTOR\n" +.LC313: + .string "RKNAND_STORE_VENDOR_SECTOR\n" +.LC314: + .string "return ret = %lx\n" +.LC315: + .string "secureBootEn check error\n" +.LC316: .string "\0013vendor storage %x,%x,%x\n" .data .align 3 .LANCHOR2 = . + 0 + .type zftl_debug, %object + .size zftl_debug, 4 +zftl_debug: + .word 17476 + .zero 4 .type sd15_tlc_rr, %object .size sd15_tlc_rr, 329 sd15_tlc_rr: @@ -24438,11 +26021,6 @@ g_nand_para_info: .byte -94 .byte 0 .byte 0 - .type zftl_debug, %object - .size zftl_debug, 4 -zftl_debug: - .word 17476 - .zero 4 .type hy_f26_ref_value, %object .size hy_f26_ref_value, 28 hy_f26_ref_value: @@ -24476,7 +26054,7 @@ hy_f26_ref_value: .byte -37 .zero 4 .type zftl_nand_flash_para_tbl, %object - .size zftl_nand_flash_para_tbl, 864 + .size zftl_nand_flash_para_tbl, 960 zftl_nand_flash_para_tbl: .byte 6 .byte -104 @@ -24759,6 +26337,34 @@ zftl_nand_flash_para_tbl: .byte 0 .byte 0 .byte 6 + .byte -104 + .byte -34 + .byte -108 + .byte -109 + .byte 118 + .byte 87 + .byte 1 + .byte 1 + .byte 32 + .hword 256 + .byte 2 + .byte 2 + .hword 1058 + .hword 17881 + .byte 2 + .byte 33 + .byte 40 + .byte 32 + .byte 3 + .byte 1 + .byte 1 + .byte 0 + .hword 256 + .byte 1 + .byte -94 + .byte 0 + .byte 0 + .byte 6 .byte 69 .byte 58 .byte -108 @@ -24828,7 +26434,7 @@ zftl_nand_flash_para_tbl: .byte 2 .byte 2 .hword 1058 - .hword 1497 + .hword 17881 .byte 2 .byte 66 .byte 40 @@ -24856,7 +26462,7 @@ zftl_nand_flash_para_tbl: .byte 2 .byte 2 .hword 1066 - .hword 1497 + .hword 17881 .byte 2 .byte 67 .byte 40 @@ -24870,6 +26476,34 @@ zftl_nand_flash_para_tbl: .byte -94 .byte 0 .byte 0 + .byte 6 + .byte 69 + .byte -41 + .byte -124 + .byte -109 + .byte 114 + .byte 87 + .byte 8 + .byte 1 + .byte 32 + .hword 256 + .byte 2 + .byte 1 + .hword 1060 + .hword 17857 + .byte 2 + .byte 66 + .byte 40 + .byte 32 + .byte 2 + .byte 1 + .byte 1 + .byte 0 + .hword 256 + .byte 1 + .byte -94 + .byte 0 + .byte 0 .byte 5 .byte 44 .byte 100 @@ -24926,7 +26560,7 @@ zftl_nand_flash_para_tbl: .byte 0 .byte 0 .byte 0 - .byte 6 + .byte 5 .byte 44 .byte 68 .byte 68 @@ -25010,7 +26644,7 @@ zftl_nand_flash_para_tbl: .byte 0 .byte 0 .byte 0 - .byte 6 + .byte 5 .byte 44 .byte 100 .byte 68 @@ -25038,7 +26672,7 @@ zftl_nand_flash_para_tbl: .byte 0 .byte 0 .byte 0 - .byte 6 + .byte 5 .byte 44 .byte -124 .byte 100 @@ -25094,6 +26728,34 @@ zftl_nand_flash_para_tbl: .byte -38 .byte -33 .byte 0 + .byte 5 + .byte 44 + .byte -124 + .byte 68 + .byte 50 + .byte -86 + .byte 0 + .byte 4 + .byte 1 + .byte 32 + .hword 512 + .byte 2 + .byte 2 + .hword 1096 + .hword 9695 + .byte 5 + .byte 19 + .byte 60 + .byte 32 + .byte 1 + .byte 0 + .byte 4 + .byte 0 + .hword 512 + .byte 2 + .byte -38 + .byte -33 + .byte 0 .byte 6 .byte -83 .byte -34 @@ -26034,11 +27696,36 @@ ftl_sblk_vpn: .size gp_ftl_ext_info, 8 gp_ftl_ext_info: .zero 8 + .type gp_nand_para_info, %object + .size gp_nand_para_info, 8 +gp_nand_para_info: + .zero 8 + .type g_idb_ecc_bits, %object + .size g_idb_ecc_bits, 1 +g_idb_ecc_bits: + .zero 1 + .type g_flash_slc_mode, %object + .size g_flash_slc_mode, 1 +g_flash_slc_mode: + .zero 1 + .type g_nand_max_die, %object + .size g_nand_max_die, 1 +g_nand_max_die: + .zero 1 + .zero 5 + .type g_nand_opt_para, %object + .size g_nand_opt_para, 32 +g_nand_opt_para: + .zero 32 + .type g_flash_toggle_mode_en, %object + .size g_flash_toggle_mode_en, 1 +g_flash_toggle_mode_en: + .zero 1 .type nandc_hw_seed, %object .size nandc_hw_seed, 1 nandc_hw_seed: .zero 1 - .zero 7 + .zero 6 .type g_nandc_v6_master_info, %object .size g_nandc_v6_master_info, 40 g_nandc_v6_master_info: @@ -26069,22 +27756,14 @@ g_maxRegNum: .size gp_flash_info, 8 gp_flash_info: .zero 8 - .type g_nand_max_die, %object - .size g_nand_max_die, 1 -g_nand_max_die: - .zero 1 - .zero 3 .type g_die_cs_idx, %object .size g_die_cs_idx, 8 g_die_cs_idx: .zero 8 - .type g_flash_slc_mode, %object - .size g_flash_slc_mode, 1 -g_flash_slc_mode: - .zero 1 .type g_slc_mode_addr2, %object .size g_slc_mode_addr2, 1 g_slc_mode_addr2: + .zero 1 .zero 1 .type g_block_align_addr, %object .size g_block_align_addr, 2 @@ -26094,32 +27773,24 @@ g_block_align_addr: .size g_lsb_page_tbl, 512 g_lsb_page_tbl: .zero 512 + .zero 4 .type g_flash_cur_mode, %object - .size g_flash_cur_mode, 1 + .size g_flash_cur_mode, 4 g_flash_cur_mode: - .zero 1 - .type g_flash_interface_mode, %object - .size g_flash_interface_mode, 1 -g_flash_interface_mode: - .zero 1 - .zero 2 + .zero 4 .type IDByte, %object .size IDByte, 32 IDByte: .zero 32 - .type g_flash_toggle_mode_en, %object - .size g_flash_toggle_mode_en, 1 -g_flash_toggle_mode_en: + .type g_flash_interface_mode, %object + .size g_flash_interface_mode, 1 +g_flash_interface_mode: .zero 1 .type g_flash_multi_page_prog_en, %object .size g_flash_multi_page_prog_en, 1 g_flash_multi_page_prog_en: .zero 1 .zero 2 - .type gp_nand_para_info, %object - .size gp_nand_para_info, 8 -gp_nand_para_info: - .zero 8 .type g_buf, %object .size g_buf, 2048 g_buf: @@ -26169,6 +27840,15 @@ slc_cache_sblk: .size xlc_data_sblk, 2 xlc_data_sblk: .zero 2 + .type write_buf_count, %object + .size write_buf_count, 1 +write_buf_count: + .zero 1 + .type write_commit_count, %object + .size write_commit_count, 1 +write_commit_count: + .zero 1 + .zero 6 .type gp_ftl_info, %object .size gp_ftl_info, 8 gp_ftl_info: @@ -26197,9 +27877,6 @@ gc_slc_mode_tlc_vpn_th: .size write_buf_head, 1 write_buf_head: .zero 1 - .type write_buf_count, %object - .size write_buf_count, 1 -write_buf_count: .zero 1 .type read_ahead_lpa, %object .size read_ahead_lpa, 4 @@ -26344,10 +28021,6 @@ ftl_vpn_update_count: .size ftl_sblk_vpn_update_id, 2 ftl_sblk_vpn_update_id: .zero 2 - .type write_commit_count, %object - .size write_commit_count, 1 -write_commit_count: - .zero 1 .type sblk_write_completed_queue_head, %object .size sblk_write_completed_queue_head, 1 sblk_write_completed_queue_head: @@ -26356,7 +28029,7 @@ sblk_write_completed_queue_head: .size sblk_queue_head, 1 sblk_queue_head: .zero 1 - .zero 1 + .zero 2 .type pm_gc_enable, %object .size pm_gc_enable, 4 pm_gc_enable: @@ -26418,10 +28091,6 @@ _c_swl_xlc_gc_th: _c_max_pm_sblk: .zero 2 .zero 2 - .type g_nand_opt_para, %object - .size g_nand_opt_para, 32 -g_nand_opt_para: - .zero 32 .type power_on_init_jiffies, %object .size power_on_init_jiffies, 8 power_on_init_jiffies: @@ -26438,6 +28107,11 @@ RK29_NANDC_REG_BASE: .size g_flash_tmp_page_buffer, 8 g_flash_tmp_page_buffer: .zero 8 + .type g_nandc_tran_timeout, %object + .size g_nandc_tran_timeout, 1 +g_nandc_tran_timeout: + .zero 1 + .zero 7 .type g_flash_tmp_spare_buffer, %object .size g_flash_tmp_spare_buffer, 8 g_flash_tmp_spare_buffer: @@ -26472,11 +28146,7 @@ g_flash_spare_buffer: .size g_idb_slc_mode_enable, 1 g_idb_slc_mode_enable: .zero 1 - .type g_idb_ecc_bits, %object - .size g_idb_ecc_bits, 1 -g_idb_ecc_bits: - .zero 1 - .zero 6 + .zero 47 .type ftl_tmp_buffer, %object .size ftl_tmp_buffer, 16384 ftl_tmp_buffer: @@ -26512,11 +28182,19 @@ g_ftl_info_blk: .size ftl_info_data_buffer, 16384 ftl_info_data_buffer: .zero 16384 + .type ftl_sys_info_first_write, %object + .size ftl_sys_info_first_write, 1 +ftl_sys_info_first_write: + .zero 1 .type ftl_power_lost_flag, %object .size ftl_power_lost_flag, 1 ftl_power_lost_flag: .zero 1 - .zero 63 + .type ftl_ext_info_first_write, %object + .size ftl_ext_info_first_write, 1 +ftl_ext_info_first_write: + .zero 1 + .zero 61 .type ftl_ext_info_data_buffer, %object .size ftl_ext_info_data_buffer, 16384 ftl_ext_info_data_buffer: @@ -26534,10 +28212,13 @@ _c_ftl_pm_page_num: .size g_pm_spare, 8 g_pm_spare: .zero 8 + .type pm_first_write, %object + .size pm_first_write, 1 +pm_first_write: + .zero 1 .type g_flash_multi_page_read_en, %object .size g_flash_multi_page_read_en, 1 g_flash_multi_page_read_en: - .zero 1 .zero 1 .type _c_ftl_byte_pre_page, %object .size _c_ftl_byte_pre_page, 2