From 6e708ed70862604bb833e22bc12fbcaeffdd3f75 Mon Sep 17 00:00:00 2001 From: Yifeng Zhao Date: Wed, 15 Aug 2018 11:00:57 +0800 Subject: [PATCH] drivers: rk_nand: support spectek L84C/L84D/L05B NAND FLASH 1. support spectek L84C/L84D/L05B NAND FLASH 2. support SKhynix 16nm 4GB NAND FLASH 3. support upgrade loader by write idb data to lba 64 Change-Id: Ie0296622d8ad13f2f4282b1b7726a5c699164e67 Signed-off-by: Yifeng Zhao --- drivers/rk_nand/rk_ftl_arm_v7.S | 13777 ++++++++++--------- drivers/rk_nand/rk_ftl_arm_v8.S | 21313 +++++++++++++++-------------- drivers/rk_nand/rk_ftlv5_arm64.S | 7754 +++++------ drivers/rk_nand/rk_nand_blk.c | 7 + drivers/rk_nand/rk_zftl_arm64.S | 8151 +++++------ 5 files changed, 26667 insertions(+), 24335 deletions(-) diff --git a/drivers/rk_nand/rk_ftl_arm_v7.S b/drivers/rk_nand/rk_ftl_arm_v7.S index 221ec458b70e..68804d63b8d2 100644 --- a/drivers/rk_nand/rk_ftl_arm_v7.S +++ b/drivers/rk_nand/rk_ftl_arm_v7.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-07-03 + * date: 2018-09-05 */ .arch armv7-a .fpu softvfp @@ -20,8 +20,8 @@ .file "rk_ftl_arm_v7.S" .text .align 2 - .type FlashGetReadRetryDefault.part.27, %function -FlashGetReadRetryDefault.part.27: + .type FlashGetReadRetryDefault.part.26, %function +FlashGetReadRetryDefault.part.26: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @@ -75,7 +75,7 @@ FlashGetReadRetryDefault.part.27: .word .LANCHOR1 .word .LANCHOR1+45 .fnend - .size FlashGetReadRetryDefault.part.27, .-FlashGetReadRetryDefault.part.27 + .size FlashGetReadRetryDefault.part.26, .-FlashGetReadRetryDefault.part.26 .align 2 .global FlashMemCmp8 .type FlashMemCmp8, %function @@ -604,7 +604,7 @@ FlashLoadPhyInfoInRam: b .L87 .L77: add r4, r4, #1 - cmp r4, #74 + cmp r4, #77 bne .L80 mvn r0, #0 ldmfd sp!, {r4, r5, r6, pc} @@ -635,9 +635,9 @@ FlashLoadPhyInfoInRam: .L88: .word .LANCHOR1+396 .word .LANCHOR0+2980 - .word .LANCHOR1+2764 + .word .LANCHOR1+2860 .word .LANCHOR0+896 - .word .LANCHOR1+2892 + .word .LANCHOR1+2988 .fnend .size FlashLoadPhyInfoInRam, .-FlashLoadPhyInfoInRam .align 2 @@ -1254,7 +1254,7 @@ SamsungSetRRPara: .L175: .align 2 .L174: - .word .LANCHOR1+2924 + .word .LANCHOR1+3020 .word .LANCHOR0 .fnend .size SamsungSetRRPara, .-SamsungSetRRPara @@ -1290,7 +1290,7 @@ ToshibaSetRRPara: ldreqsb r3, [r7, #0] beq .L182 cmp r3, #35 - addne r3, r9, #2976 + addne r3, r9, #3072 addne r3, r3, #12 ldreqsb r3, [r6, #0] ldrnesb r3, [r3, #0] @@ -1611,7 +1611,7 @@ FlashReadSpare: stmfd sp!, {r4, r5, r6, lr} .save {r4, r5, r6, lr} mov r6, r2 - ldrb r2, [r3, #2901] @ zero_extendqisi2 + ldrb r2, [r3, #2997] @ zero_extendqisi2 ldr r3, .L220+4 add r3, r3, r0, asl #3 mov r2, r2, asl #9 @@ -2120,7 +2120,7 @@ FlashTimingCfg: str r0, [r3, #4] .L278: ldr r3, .L279+4 - ldrb r0, [r3, #2913] @ zero_extendqisi2 + ldrb r0, [r3, #3009] @ zero_extendqisi2 b NandcTimeCfg .L280: .align 2 @@ -3659,70 +3659,6 @@ FtlFreeSysBLkSort: .fnend .size FtlFreeSysBLkSort, .-FtlFreeSysBLkSort .align 2 - .global remove_from_free_sys_Queue - .type remove_from_free_sys_Queue, %function -remove_from_free_sys_Queue: - .fnstart - @ args = 0, pretend = 0, frame = 0 - @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L461 - movw r2, #4062 - stmfd sp!, {r4, r5, r6, lr} - .save {r4, r5, r6, lr} - mov r1, r0 - ldrh r0, [r3, r2] - cmp r0, #0 - ldmeqfd sp!, {r4, r5, r6, pc} - movw r2, #4058 - mov r5, #0 - ldrh r2, [r3, r2] - b .L457 -.L459: - add ip, r5, r2 - ldr r4, .L461 - movw r6, #4056 - mov ip, ip, asl #22 - add ip, r3, ip, lsr #21 - add ip, ip, #4064 - ldrh ip, [ip, #0] - cmp ip, r1 - bne .L458 - ldr r0, .L461+4 - bl printk - movw r2, #4058 - ldrh r3, [r4, r2] - mov r0, #1 - add r1, r3, #4 - add r5, r5, r3 - add r3, r3, #1 - add r1, r4, r1, asl #1 - mov r5, r5, asl #22 - bic r3, r3, #64512 - ldrh r1, [r1, r6] - add r5, r4, r5, lsr #21 - add r5, r5, #8 - strh r1, [r5, r6] @ movhi - strh r3, [r4, r2] @ movhi - movw r3, #4062 - ldrh r2, [r4, r3] - sub r2, r2, #1 - strh r2, [r4, r3] @ movhi - ldmfd sp!, {r4, r5, r6, pc} -.L458: - add r5, r5, #1 -.L457: - cmp r5, r0 - bcc .L459 - mov r0, #0 - ldmfd sp!, {r4, r5, r6, pc} -.L462: - .align 2 -.L461: - .word .LANCHOR0 - .word .LC4 - .fnend - .size remove_from_free_sys_Queue, .-remove_from_free_sys_Queue - .align 2 .global FtlFreeSysBlkQueueOut .type FtlFreeSysBlkQueueOut, %function FtlFreeSysBlkQueueOut: @@ -3732,12 +3668,12 @@ FtlFreeSysBlkQueueOut: stmfd sp!, {r3, r4, r5, r6, r7, r8, sl, lr} .save {r3, r4, r5, r6, r7, r8, sl, lr} movw r6, #4062 - ldr r4, .L470 + ldr r4, .L462 movw r7, #4058 -.L464: +.L456: ldrh r1, [r4, r6] cmp r1, #0 - beq .L465 + beq .L457 ldrh r3, [r4, r7] sub r1, r1, #1 ldr sl, [r4, #4040] @@ -3749,7 +3685,7 @@ FtlFreeSysBlkQueueOut: ldrh r5, [r2, #0] strh r1, [r4, r6] @ movhi strh r3, [r4, r7] @ movhi - bne .L466 + bne .L458 mov r0, r5 bl P2V_block_in_plane mov r3, r5, asl #10 @@ -3758,11 +3694,11 @@ FtlFreeSysBlkQueueOut: str r3, [r0, #4] ldrb r3, [r4, #928] @ zero_extendqisi2 cmp r3, #0 - beq .L467 + beq .L459 mov r1, sl mov r2, #1 bl FlashEraseBlocks -.L467: +.L459: mov r1, #1 ldr r0, [r4, #4044] mov r2, r1 @@ -3775,42 +3711,82 @@ FtlFreeSysBlkQueueOut: ldr r3, [r4, #4052] add r3, r3, #1 str r3, [r4, #4052] - b .L466 -.L465: - ldr r0, .L470+4 + b .L458 +.L457: + ldr r0, .L462+4 bl printk -.L468: - b .L468 -.L466: +.L460: + b .L460 +.L458: sub r2, r5, #1 movw r3, #65533 uxth r2, r2 cmp r2, r3 - bls .L469 + bls .L461 mov r1, r5 ldrh r2, [r4, r6] - ldr r0, .L470+8 + ldr r0, .L462+8 bl printk - b .L464 -.L469: + b .L456 +.L461: mov r0, r5 ldmfd sp!, {r3, r4, r5, r6, r7, r8, sl, pc} -.L471: +.L463: .align 2 -.L470: +.L462: .word .LANCHOR0 + .word .LC4 .word .LC5 - .word .LC6 .fnend .size FtlFreeSysBlkQueueOut, .-FtlFreeSysBlkQueueOut .align 2 + .global test_node_in_list + .type test_node_in_list, %function +test_node_in_list: + .fnstart + @ args = 0, pretend = 0, frame = 0 + @ frame_needed = 0, uses_anonymous_args = 0 + ldr r3, .L469 + stmfd sp!, {r4, lr} + .save {r4, lr} + movw r4, #65535 + ldr r2, [r0, #0] + ldr r0, [r3, #-2024] + ldr ip, .L469+4 + rsb r3, r0, r2 + mov r3, r3, asr #1 + mul r3, ip, r3 + mov ip, #6 + uxth r3, r3 +.L466: + cmp r1, r3 + beq .L467 + ldrh r3, [r2, #0] + cmp r3, r4 + beq .L468 + mla r2, ip, r3, r0 + b .L466 +.L467: + mov r0, #1 + ldmfd sp!, {r4, pc} +.L468: + mov r0, #0 + ldmfd sp!, {r4, pc} +.L470: + .align 2 +.L469: + .word .LANCHOR2 + .word -1431655765 + .fnend + .size test_node_in_list, .-test_node_in_list + .align 2 .global insert_data_list .type insert_data_list, %function insert_data_list: .fnstart @ args = 0, pretend = 0, frame = 16 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r2, .L487 + ldr r2, .L486 mov r3, #3856 stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} .save {r4, r5, r6, r7, r8, r9, sl, fp, lr} @@ -3818,8 +3794,8 @@ insert_data_list: sub sp, sp, #20 ldrh r3, [r2, r3] cmp r3, r0 - bls .L473 - ldr r1, .L487+4 + bls .L472 + ldr r1, .L486+4 mov ip, #6 mul ip, ip, r0 mvn r6, #0 @@ -3830,21 +3806,21 @@ insert_data_list: strh r6, [r4, ip] @ movhi ldr r3, [r1, #-2020] cmp r3, #0 - beq .L486 -.L474: + beq .L485 +.L473: ldr r7, [r1, #-2016] mov r5, r0, asl #1 ldrh r1, [r2, #4] ldr fp, [r8, #-2024] ldrh sl, [r7, r5] cmp r1, #0 - ldr r8, .L487+8 + ldr r8, .L486+8 mulne r6, r1, sl rsb r1, fp, r3 mov sl, #3856 mov r1, r1, asr #1 mul r1, r8, r1 - ldr r8, .L487 + ldr r8, .L486 ldrh sl, [r8, sl] ldr r8, [r8, #4048] uxth r1, r1 @@ -3853,14 +3829,14 @@ insert_data_list: mov r5, #0 str sl, [sp, #8] str r8, [sp, #4] -.L481: +.L480: add r5, r5, #1 ldr r8, [sp, #8] uxth r5, r5 cmp r5, r8 - bhi .L473 + bhi .L472 cmp r0, r1 - beq .L473 + beq .L472 mov r9, r1, asl #1 ldrh r8, [r3, #4] ldrh sl, [r7, r9] @@ -3868,56 +3844,56 @@ insert_data_list: mvneq r8, #0 mulne r8, r8, sl cmp r8, r6 - bne .L477 + bne .L476 ldr r8, [sp, #4] ldrh sl, [r8, r9] ldr r9, [sp, #12] ldrh r8, [r9, #0] cmp sl, r8 - bcc .L479 - b .L478 -.L477: - bhi .L478 -.L479: + bcc .L478 + b .L477 +.L476: + bhi .L477 +.L478: ldrh r8, [r3, #0] movw sl, #65535 cmp r8, sl streqh r1, [r2, #2] @ movhi streqh r0, [r3, #0] @ movhi - ldreq r3, .L487+4 + ldreq r3, .L486+4 streq r2, [r3, #-2012] - beq .L473 -.L480: + beq .L472 +.L479: mov r1, #6 mla r3, r1, r8, fp mov r1, r8 - b .L481 -.L478: + b .L480 +.L477: strh r1, [r4, ip] @ movhi ldrh r1, [r3, #2] strh r1, [r2, #2] @ movhi - ldr r1, .L487+4 + ldr r1, .L486+4 ldr ip, [r1, #-2020] cmp r3, ip - bne .L482 + bne .L481 strh r0, [r3, #2] @ movhi -.L486: +.L485: str r2, [r1, #-2020] - b .L473 -.L482: + b .L472 +.L481: ldrh r2, [r3, #2] mov ip, #6 ldr r1, [r1, #-2024] mul r2, ip, r2 strh r0, [r1, r2] @ movhi strh r0, [r3, #2] @ movhi -.L473: +.L472: mov r0, #0 add sp, sp, #20 ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} -.L488: - .align 2 .L487: + .align 2 +.L486: .word .LANCHOR0 .word .LANCHOR2 .word -1431655765 @@ -3933,15 +3909,15 @@ INSERT_DATA_LIST: stmfd sp!, {r3, lr} .save {r3, lr} bl insert_data_list - ldr r2, .L490 - ldr r3, .L490+4 + ldr r2, .L489 + ldr r3, .L489+4 ldrh r1, [r2, r3] add r1, r1, #1 strh r1, [r2, r3] @ movhi ldmfd sp!, {r3, pc} -.L491: - .align 2 .L490: + .align 2 +.L489: .word .LANCHOR2 .word -2008 .fnend @@ -3957,8 +3933,8 @@ insert_free_list: .save {r4, r5, r6, r7, r8, r9, sl, lr} movw r6, #65535 cmp r0, r6 - beq .L493 - ldr r1, .L500 + beq .L492 + ldr r1, .L499 mov r5, #6 mul ip, r5, r0 mvn r3, #0 @@ -3968,58 +3944,58 @@ insert_free_list: strh r3, [r4, ip] @ movhi ldr r3, [r1, #-2004] cmp r3, #0 - beq .L499 -.L494: + beq .L498 +.L493: ldr sl, [r1, #-2024] mov r8, r0, asl #1 - ldr r9, .L500+4 + ldr r9, .L499+4 rsb r1, sl, r3 - ldr r7, .L500+8 + ldr r7, .L499+8 mov r1, r1, asr #1 ldr r7, [r7, #4048] mul r1, r9, r1 mov r9, r5 ldrh r8, [r7, r8] uxth r1, r1 -.L497: +.L496: mov r5, r1, asl #1 ldrh r5, [r7, r5] cmp r5, r8 - bcs .L495 + bcs .L494 ldrh r5, [r3, #0] cmp r5, r6 streqh r1, [r2, #2] @ movhi streqh r0, [r3, #0] @ movhi - beq .L493 -.L496: + beq .L492 +.L495: mla r3, r9, r5, sl mov r1, r5 - b .L497 -.L495: + b .L496 +.L494: ldrh r5, [r3, #2] strh r5, [r2, #2] @ movhi strh r1, [r4, ip] @ movhi - ldr r1, .L500 + ldr r1, .L499 ldr ip, [r1, #-2004] cmp r3, ip - bne .L498 + bne .L497 strh r0, [r3, #2] @ movhi -.L499: - str r2, [r1, #-2004] - b .L493 .L498: + str r2, [r1, #-2004] + b .L492 +.L497: ldrh r2, [r3, #2] mov ip, #6 ldr r1, [r1, #-2024] mul r2, ip, r2 strh r0, [r1, r2] @ movhi strh r0, [r3, #2] @ movhi -.L493: +.L492: mov r0, #0 ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, pc} -.L501: - .align 2 .L500: + .align 2 +.L499: .word .LANCHOR2 .word -1431655765 .word .LANCHOR0 @@ -4035,15 +4011,15 @@ INSERT_FREE_LIST: stmfd sp!, {r3, lr} .save {r3, lr} bl insert_free_list - ldr r2, .L503 - ldr r3, .L503+4 + ldr r2, .L502 + ldr r3, .L502+4 ldrh r1, [r2, r3] add r1, r1, #1 strh r1, [r2, r3] @ movhi ldmfd sp!, {r3, pc} -.L504: - .align 2 .L503: + .align 2 +.L502: .word .LANCHOR2 .word -2000 .fnend @@ -4055,7 +4031,7 @@ List_remove_node: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr ip, .L510 + ldr ip, .L509 mov r2, #6 mul r1, r2, r1 ldr r3, [ip, #-2024] @@ -4066,7 +4042,7 @@ List_remove_node: movw r6, #65535 cmp r5, r4 ldrh r4, [r3, r1] - bne .L506 + bne .L505 cmp r4, r6 mlane r2, r2, r4, r3 moveq r2, #0 @@ -4074,17 +4050,17 @@ List_remove_node: strne r2, [r0, #0] mvnne r0, #0 strneh r0, [r2, #2] @ movhi - b .L508 -.L506: + b .L507 +.L505: cmp r4, r6 ldrh r0, [r5, #2] - bne .L509 + bne .L508 cmp r0, r4 mulne r2, r2, r0 mvnne r0, #0 strneh r0, [r3, r2] @ movhi - b .L508 -.L509: + b .L507 +.L508: mla r4, r2, r4, r3 strh r0, [r4, #2] @ movhi ldrh r6, [r5, #2] @@ -4092,15 +4068,15 @@ List_remove_node: ldr r0, [ip, #-2024] mul r2, r2, r6 strh r4, [r0, r2] @ movhi -.L508: +.L507: mvn r2, #0 mov r0, #0 strh r2, [r3, r1] @ movhi strh r2, [r5, #2] @ movhi ldmfd sp!, {r4, r5, r6, pc} -.L511: - .align 2 .L510: + .align 2 +.L509: .word .LANCHOR2 .fnend .size List_remove_node, .-List_remove_node @@ -4115,25 +4091,25 @@ List_pop_index_node: .save {r4, lr} ldr r3, [r0, #0] cmp r3, #0 - beq .L517 - ldr r2, .L518 + beq .L516 + ldr r2, .L517 movw lr, #65535 mov ip, #6 ldr r4, [r2, #-2024] - b .L514 -.L516: + b .L513 +.L515: mla r3, ip, r2, r4 sub r1, r1, #1 uxth r1, r1 -.L514: +.L513: cmp r1, #0 - beq .L515 + beq .L514 ldrh r2, [r3, #0] cmp r2, lr - bne .L516 -.L515: + bne .L515 +.L514: rsb r4, r4, r3 - ldr r3, .L518+4 + ldr r3, .L517+4 mov r4, r4, asr #1 mul r4, r3, r4 uxth r4, r4 @@ -4141,12 +4117,12 @@ List_pop_index_node: bl List_remove_node mov r0, r4 ldmfd sp!, {r4, pc} -.L517: +.L516: movw r0, #65535 ldmfd sp!, {r4, pc} -.L519: - .align 2 .L518: + .align 2 +.L517: .word .LANCHOR2 .word -1431655765 .fnend @@ -4159,39 +4135,39 @@ List_get_gc_head_node: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r2, .L526 + ldr r2, .L525 ldr r3, [r2, #-2020] cmp r3, #0 - beq .L525 + beq .L524 ldr r2, [r2, #-2024] movw r1, #65535 mov ip, #6 - b .L522 -.L524: + b .L521 +.L523: mla r3, ip, r3, r2 sub r0, r0, #1 uxth r0, r0 -.L522: +.L521: cmp r0, #0 - beq .L523 + beq .L522 ldrh r3, [r3, #0] cmp r3, r1 - bne .L524 + bne .L523 mov r0, r1 bx lr -.L523: +.L522: rsb r3, r2, r3 - ldr r0, .L526+4 + ldr r0, .L525+4 mov r3, r3, asr #1 mul r0, r0, r3 uxth r0, r0 bx lr -.L525: +.L524: movw r0, #65535 bx lr -.L527: - .align 2 .L526: + .align 2 +.L525: .word .LANCHOR2 .word -1431655765 .fnend @@ -4206,26 +4182,26 @@ List_update_data_list: stmfd sp!, {r3, r4, r5, lr} .save {r3, r4, r5, lr} mov r4, r0 - ldr r3, .L535 - ldr r2, .L535+4 + ldr r3, .L534 + ldr r2, .L534+4 ldrh r2, [r3, r2] cmp r2, r0 - beq .L529 - ldr r2, .L535+8 + beq .L528 + ldr r2, .L534+8 ldrh r2, [r3, r2] cmp r2, r0 - beq .L529 - ldr r2, .L535+12 + beq .L528 + ldr r2, .L534+12 ldrh r2, [r3, r2] cmp r2, r0 - beq .L529 + beq .L528 mov r5, #6 ldr r2, [r3, #-2024] mul r5, r5, r0 ldr r0, [r3, #-2020] add r1, r2, r5 cmp r1, r0 - beq .L529 + beq .L528 ldr ip, [r3, #-2016] mov r3, r4, asl #1 ldrh r0, [ip, r3] @@ -4236,14 +4212,14 @@ List_update_data_list: mvneq r0, #0 movw r1, #65535 cmp r3, r1 - bne .L531 + bne .L530 ldrh r1, [r2, r5] cmp r1, r3 - beq .L529 -.L531: + beq .L528 +.L530: mov r1, #6 mla r3, r1, r3, r2 - ldr r1, .L535+16 + ldr r1, .L534+16 rsb r2, r2, r3 mov r2, r2, asr #1 ldrh r3, [r3, #4] @@ -4255,23 +4231,23 @@ List_update_data_list: ldrh r2, [ip, r2] mulne r3, r3, r2 cmp r0, r3 - bcs .L529 - ldr r0, .L535+20 + bcs .L528 + ldr r0, .L534+20 mov r1, r4 bl List_remove_node - ldr r5, .L535 - ldr r3, .L535+24 + ldr r5, .L534 + ldr r3, .L534+24 mov r0, r4 ldrh r2, [r5, r3] sub r2, r2, #1 strh r2, [r5, r3] @ movhi bl INSERT_DATA_LIST -.L529: +.L528: mov r0, #0 ldmfd sp!, {r3, r4, r5, pc} -.L536: - .align 2 .L535: + .align 2 +.L534: .word .LANCHOR2 .word -1996 .word -1948 @@ -4294,13 +4270,13 @@ ftl_map_blk_alloc_new_blk: ldrh r2, [r0, #10] mov r5, #0 ldr r3, [r0, #12] - b .L538 -.L543: + b .L537 +.L542: mov r7, r3 add r3, r3, #2 ldrh r6, [r7, #0] cmp r6, #0 - bne .L539 + bne .L538 bl FtlFreeSysBlkQueueOut movw r3, #65533 sub r2, r0, #1 @@ -4308,15 +4284,15 @@ ftl_map_blk_alloc_new_blk: strh r0, [r7, #0] @ movhi uxth r2, r2 cmp r2, r3 - bls .L540 - ldr r2, .L544 + bls .L539 + ldr r2, .L543 movw r3, #4062 - ldr r0, .L544+4 + ldr r0, .L543+4 ldrh r2, [r2, r3] bl printk -.L541: - b .L541 .L540: + b .L540 +.L539: ldr r3, [r4, #28] strh r6, [r4, #2] @ movhi add r3, r3, #1 @@ -4325,21 +4301,21 @@ ftl_map_blk_alloc_new_blk: strh r5, [r4, #0] @ movhi add r3, r3, #1 strh r3, [r4, #8] @ movhi - b .L542 -.L539: + b .L541 +.L538: add r5, r5, #1 uxth r5, r5 -.L538: +.L537: cmp r5, r2 - bne .L543 -.L542: + bne .L542 +.L541: mov r0, #0 ldmfd sp!, {r3, r4, r5, r6, r7, pc} -.L545: - .align 2 .L544: + .align 2 +.L543: .word .LANCHOR0 - .word .LC7 + .word .LC6 .fnend .size ftl_map_blk_alloc_new_blk, .-ftl_map_blk_alloc_new_blk .align 2 @@ -4349,18 +4325,18 @@ select_l2p_ram_region: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r2, .L558 + ldr r2, .L557 movw r3, #3954 stmfd sp!, {r4, r5, r6, r7, lr} .save {r4, r5, r6, r7, lr} movw r1, #65535 ldrh r3, [r2, r3] - ldr r2, .L558+4 + ldr r2, .L557+4 ldr ip, [r2, #-1852] mov r2, #0 mov r0, r2 - b .L547 -.L549: + b .L546 +.L548: add r2, r2, #12 add r4, ip, r2 ldrh r4, [r4, #-12] @@ -4368,59 +4344,59 @@ select_l2p_ram_region: ldmeqfd sp!, {r4, r5, r6, r7, pc} add r0, r0, #1 uxth r0, r0 -.L547: +.L546: cmp r0, r3 - bne .L549 + bne .L548 mov r1, #0 mov r0, r3 mov r5, #-2147483648 mov r2, r1 - b .L550 -.L552: + b .L549 +.L551: add r4, ip, r1 ldr r4, [r4, #4] cmp r4, #0 - blt .L551 + blt .L550 cmp r4, r5 movcc r5, r4 movcc r0, r2 -.L551: +.L550: add r2, r2, #1 add r1, r1, #12 uxth r2, r2 -.L550: +.L549: cmp r2, r3 - bne .L552 + bne .L551 cmp r0, r3 ldmccfd sp!, {r4, r5, r6, r7, pc} - ldr r2, .L558+8 + ldr r2, .L557+8 mov r0, r3 - ldr r1, .L558+4 + ldr r1, .L557+4 mvn r4, #0 ldrh r6, [r1, r2] mov r2, #0 mov r1, r2 - b .L553 -.L555: + b .L552 +.L554: add r5, ip, r2 ldr r5, [r5, #4] cmp r5, r4 - bcs .L554 + bcs .L553 ldrh r7, [ip, r2] cmp r7, r6 movne r4, r5 movne r0, r1 -.L554: +.L553: add r1, r1, #1 add r2, r2, #12 uxth r1, r1 -.L553: +.L552: cmp r1, r3 - bne .L555 + bne .L554 ldmfd sp!, {r4, r5, r6, r7, pc} -.L559: - .align 2 .L558: + .align 2 +.L557: .word .LANCHOR0 .word .LANCHOR2 .word -1848 @@ -4433,8 +4409,8 @@ FtlUpdateVaildLpn: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L566 - ldr r2, .L566+4 + ldr r3, .L565 + ldr r2, .L565+4 stmfd sp!, {r4, r5, lr} .save {r4, r5, lr} ldrh r1, [r2, r3] @@ -4442,11 +4418,11 @@ FtlUpdateVaildLpn: add ip, r1, #1 mov r1, r3 strh ip, [r2, r3] @ movhi - bhi .L561 + bhi .L560 cmp r0, #0 ldmeqfd sp!, {r4, r5, pc} -.L561: - ldr r0, .L566+8 +.L560: + ldr r0, .L565+8 mov r3, #0 strh r3, [r2, r1] @ movhi mov r1, #3856 @@ -4454,9 +4430,9 @@ FtlUpdateVaildLpn: movw ip, #65535 ldrh r4, [r0, r1] ldr r1, [r2, #-2016] - ldr r2, .L566+4 - b .L563 -.L565: + ldr r2, .L565+4 + b .L562 +.L564: ldrh r0, [r1], #2 add r3, r3, #1 cmp r0, ip @@ -4464,13 +4440,13 @@ FtlUpdateVaildLpn: ldrne r5, [r2, #-1844] addne r0, r0, r5 strne r0, [r2, #-1844] -.L563: +.L562: cmp r3, r4 - bne .L565 + bne .L564 ldmfd sp!, {r4, r5, pc} -.L567: - .align 2 .L566: + .align 2 +.L565: .word -1846 .word .LANCHOR2 .word .LANCHOR0 @@ -4484,7 +4460,7 @@ ftl_set_blk_mode: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L572 + ldr r3, .L571 mov r2, r0, lsr #5 cmp r1, #0 and r0, r0, #31 @@ -4496,9 +4472,9 @@ ftl_set_blk_mode: biceq r0, r1, ip, asl r0 str r0, [r3, r2, asl #2] bx lr -.L573: - .align 2 .L572: + .align 2 +.L571: .word .LANCHOR2 .fnend .size ftl_set_blk_mode, .-ftl_set_blk_mode @@ -4510,7 +4486,7 @@ ftl_get_blk_mode: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L575 + ldr r3, .L574 mov r2, r0, lsr #5 and r0, r0, #31 ldr r3, [r3, #-1840] @@ -4518,9 +4494,9 @@ ftl_get_blk_mode: mov r0, r3, lsr r0 and r0, r0, #1 bx lr -.L576: - .align 2 .L575: + .align 2 +.L574: .word .LANCHOR2 .fnend .size ftl_get_blk_mode, .-ftl_get_blk_mode @@ -4531,7 +4507,7 @@ ftl_sb_update_avl_pages: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr ip, .L584 + ldr ip, .L583 mov r3, #0 strh r3, [r0, #4] @ movhi movw r3, #3848 @@ -4539,8 +4515,8 @@ ftl_sb_update_avl_pages: .save {r4, r5, r6, lr} ldrh r3, [ip, r3] movw ip, #65535 - b .L578 -.L580: + b .L577 +.L579: add r4, r0, r2, asl #1 add r2, r2, #1 ldrh r4, [r4, #16] @@ -4549,18 +4525,18 @@ ftl_sb_update_avl_pages: ldrneh r4, [r0, #4] addne r4, r4, #1 strneh r4, [r0, #4] @ movhi -.L578: +.L577: cmp r2, r3 - bcc .L580 - ldr ip, .L584 + bcc .L579 + ldr ip, .L583 movw r2, #3916 movw r4, #65535 mvn r1, r1 ldrh r5, [ip, r2] mov ip, r0 mov r2, #0 - b .L581 -.L583: + b .L580 +.L582: ldrh r6, [ip, #16] add r2, r2, #1 add ip, ip, #2 @@ -4570,13 +4546,13 @@ ftl_sb_update_avl_pages: addne r6, r5, r6 addne r6, r6, r1 strneh r6, [r0, #4] @ movhi -.L581: +.L580: cmp r2, r3 - bne .L583 + bne .L582 ldmfd sp!, {r4, r5, r6, pc} -.L585: - .align 2 .L584: + .align 2 +.L583: .word .LANCHOR0 .fnend .size ftl_sb_update_avl_pages, .-ftl_sb_update_avl_pages @@ -4591,13 +4567,13 @@ make_superblock: .save {r4, r5, r6, r7, r8, r9, sl, lr} mov r4, r0 mov r5, #0 - ldr r6, .L592 + ldr r6, .L591 strh r5, [r0, #4] @ movhi movw r8, #3848 strb r5, [r4, #7] mvn r7, #0 - b .L587 -.L589: + b .L586 +.L588: add r3, r6, r5 ldrh r1, [r4, #0] add sl, r5, #8 @@ -4614,11 +4590,11 @@ make_superblock: ldreqb r3, [r4, #7] @ zero_extendqisi2 addeq r3, r3, #1 streqb r3, [r4, #7] -.L587: +.L586: ldrh r2, [r6, r8] - ldr r3, .L592 + ldr r3, .L591 cmp r2, r5 - bhi .L589 + bhi .L588 movw r1, #3916 ldrb r2, [r4, #7] @ zero_extendqisi2 ldrh r1, [r3, r1] @@ -4628,25 +4604,25 @@ make_superblock: strb r2, [r4, #9] ldr r2, [r3, #3840] cmp r2, #0 - beq .L590 + beq .L589 ldrh r1, [r4, #0] ldr r2, [r3, #4048] mov r3, r1, asl #1 ldrh r3, [r2, r3] - cmp r3, #59 + cmp r3, #79 movls r3, #1 strlsb r3, [r4, #9] -.L590: - ldr r3, .L592 +.L589: + ldr r3, .L591 mov r0, #0 ldrb r3, [r3, #852] @ zero_extendqisi2 cmp r3, #0 movne r3, #1 strneb r3, [r4, #9] ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, pc} -.L593: - .align 2 .L592: + .align 2 +.L591: .word .LANCHOR0 .fnend .size make_superblock, .-make_superblock @@ -4662,11 +4638,11 @@ update_multiplier_value: mov r4, #0 mov r7, r0 mov r5, r4 - ldr r6, .L599 + ldr r6, .L598 movw sl, #3848 movw r8, #3916 - b .L595 -.L597: + b .L594 +.L596: add r3, r6, r5 mov r1, r7 add r5, r5, #1 @@ -4678,27 +4654,27 @@ update_multiplier_value: ldreqh r3, [r6, r8] addeq r4, r4, r3 uxtheq r4, r4 -.L595: +.L594: ldrh r3, [r6, sl] cmp r3, r5 - bhi .L597 + bhi .L596 cmp r4, #0 - beq .L598 + beq .L597 mov r1, r4 mov r0, #32768 bl __aeabi_idiv uxth r4, r0 -.L598: - ldr r3, .L599+4 +.L597: + ldr r3, .L598+4 mov r2, #6 mov r0, #0 ldr r3, [r3, #-2024] mla r7, r2, r7, r3 strh r4, [r7, #4] @ movhi ldmfd sp!, {r3, r4, r5, r6, r7, r8, sl, pc} -.L600: - .align 2 .L599: + .align 2 +.L598: .word .LANCHOR0 .word .LANCHOR2 .fnend @@ -4711,14 +4687,14 @@ GetFreeBlockMinEraseCount: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L604 + ldr r3, .L603 ldr r0, [r3, #-2004] cmp r0, #0 bxeq lr ldr r3, [r3, #-2024] - ldr r2, .L604+4 + ldr r2, .L603+4 rsb r0, r3, r0 - ldr r3, .L604+8 + ldr r3, .L603+8 mov r0, r0, asr #1 ldr r2, [r2, #4048] mul r3, r3, r0 @@ -4726,9 +4702,9 @@ GetFreeBlockMinEraseCount: mov r3, r3, asl #1 ldrh r0, [r2, r3] bx lr -.L605: - .align 2 .L604: + .align 2 +.L603: .word .LANCHOR2 .word .LANCHOR0 .word -1431655765 @@ -4741,13 +4717,13 @@ GetFreeBlockMaxEraseCount: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r2, .L613 + ldr r2, .L612 stmfd sp!, {r4, r5, lr} .save {r4, r5, lr} ldr r3, [r2, #-2004] cmp r3, #0 - beq .L612 - ldr r1, .L613+4 + beq .L611 + ldr r1, .L612+4 mov ip, #7 mov r5, #6 movw r4, #65535 @@ -4757,36 +4733,36 @@ GetFreeBlockMaxEraseCount: cmp r0, r1 uxthgt r0, r1 ldr r1, [r2, #-2024] - ldr r2, .L613+8 + ldr r2, .L612+8 rsb r3, r1, r3 mov r3, r3, asr #1 mul r3, r2, r3 mov r2, #0 uxth r3, r3 - b .L609 -.L611: + b .L608 +.L610: mul ip, r5, r3 ldrh ip, [r1, ip] cmp ip, r4 - beq .L610 + beq .L609 add r2, r2, #1 mov r3, ip uxth r2, r2 -.L609: +.L608: cmp r2, r0 - bne .L611 -.L610: - ldr r2, .L613+12 + bne .L610 +.L609: + ldr r2, .L612+12 mov r3, r3, asl #1 ldr r2, [r2, #4048] ldrh r0, [r2, r3] ldmfd sp!, {r4, r5, pc} -.L612: +.L611: mov r0, r3 ldmfd sp!, {r4, r5, pc} -.L614: - .align 2 .L613: + .align 2 +.L612: .word .LANCHOR2 .word -2000 .word -1431655765 @@ -4803,27 +4779,27 @@ FtlPrintInfo2buf: stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, lr} .save {r4, r5, r6, r7, r8, r9, sl, lr} mov sl, r0 - ldr r6, .L625 + ldr r6, .L624 add r4, sl, #12 .pad #32 sub sp, sp, #32 - ldr r1, .L625+4 + ldr r1, .L624+4 bl strcpy mov r0, r4 - ldr r1, .L625+8 + ldr r1, .L624+8 ldr r2, [r6, #3048] bl sprintf - ldr r1, .L625+12 + ldr r1, .L624+12 ldr r2, [r6, #3932] add r4, r4, r0 mov r0, r4 bl sprintf - ldr r3, .L625+16 - ldr r3, [r3, #2996] + ldr r3, .L624+16 + ldr r3, [r3, #3092] cmp r3, #1 add r4, r4, r0 - bne .L621 -.L616: + bne .L620 +.L615: add r0, sp, #16 add r1, sp, #20 add r2, sp, #24 @@ -4832,77 +4808,77 @@ FtlPrintInfo2buf: ldr r3, [sp, #24] ldr r2, [sp, #16] mov r0, r4 - ldr r1, .L625+20 + ldr r1, .L624+20 str r3, [sp, #0] ldr r3, [sp, #28] - ldr r5, .L625+24 - ldr r7, .L625+28 + ldr r5, .L624+24 + ldr r7, .L624+28 str r3, [sp, #4] ldr r3, [sp, #20] bl sprintf - ldr r1, .L625+32 - ldr r8, .L625+36 + ldr r1, .L624+32 + ldr r8, .L624+36 add r4, r4, r0 mov r0, r4 add r4, r4, #10 bl strcpy - ldr r1, .L625+40 + ldr r1, .L624+40 mov r0, r4 ldr r2, [r6, #3976] bl sprintf - ldr r1, .L625+44 + ldr r1, .L624+44 ldr r2, [r5, #-1844] add r4, r4, r0 mov r0, r4 bl sprintf - ldr r1, .L625+48 + ldr r1, .L624+48 ldr r2, [r5, #-1836] add r4, r4, r0 mov r0, r4 bl sprintf - ldr r1, .L625+52 + ldr r1, .L624+52 ldr r2, [r5, #-1832] add r4, r4, r0 mov r0, r4 bl sprintf - ldr r1, .L625+56 + ldr r1, .L624+56 ldr r2, [r5, #-1828] add r4, r4, r0 mov r0, r4 bl sprintf - ldr r1, .L625+60 + ldr r1, .L624+60 ldr r2, [r5, #-1824] add r4, r4, r0 mov r0, r4 bl sprintf - ldr r1, .L625+64 + ldr r1, .L624+64 ldr r2, [r5, #-1820] add r4, r4, r0 mov r0, r4 bl sprintf - ldr r1, .L625+68 + ldr r1, .L624+68 ldr r2, [r5, #-1816] add r4, r4, r0 mov r0, r4 bl sprintf ldr r2, [r5, #-1812] - ldr r1, .L625+72 + ldr r1, .L624+72 mov r2, r2, lsr #11 add r4, r4, r0 mov r0, r4 bl sprintf ldr r2, [r5, #-1808] - ldr r1, .L625+76 + ldr r1, .L624+76 mov r2, r2, lsr #11 add r4, r4, r0 mov r0, r4 bl sprintf - ldr r1, .L625+80 + ldr r1, .L624+80 ldr r2, [r5, #-1804] add r4, r4, r0 mov r0, r4 bl sprintf - ldr r1, .L625+84 + ldr r1, .L624+84 ldr r2, [r5, #-1800] add r4, r4, r0 mov r0, r4 @@ -4910,131 +4886,131 @@ FtlPrintInfo2buf: add r4, r4, r0 bl FtlBbtCalcTotleCnt movw r2, #3986 - ldr r1, .L625+88 + ldr r1, .L624+88 ldrh r2, [r6, r2] mov r3, r0 mov r0, r4 bl sprintf - ldr r1, .L625+92 + ldr r1, .L624+92 ldrh r2, [r5, r7] add r4, r4, r0 mov r0, r4 bl sprintf - ldr r1, .L625+96 + ldr r1, .L624+96 ldr r2, [r5, #-1796] add r4, r4, r0 mov r0, r4 bl sprintf - ldr r1, .L625+100 + ldr r1, .L624+100 ldr r2, [r5, #-1792] add r4, r4, r0 mov r0, r4 bl sprintf - ldr r1, .L625+104 + ldr r1, .L624+104 ldr r2, [r5, #-1788] add r4, r4, r0 mov r0, r4 bl sprintf - ldr r1, .L625+108 + ldr r1, .L624+108 ldr r2, [r6, #4052] add r4, r4, r0 mov r0, r4 bl sprintf - ldr r1, .L625+112 + ldr r1, .L624+112 ldr r2, [r5, #-1784] add r4, r4, r0 mov r0, r4 bl sprintf - ldr r1, .L625+116 + ldr r1, .L624+116 ldr r2, [r5, #-1780] add r4, r4, r0 mov r0, r4 bl sprintf - ldr r3, .L625+120 - ldr r1, .L625+124 + ldr r3, .L624+120 + ldr r1, .L624+124 ldrh r2, [r5, r3] add r4, r4, r0 mov r0, r4 bl sprintf - ldr r3, .L625+128 - ldr r1, .L625+132 + ldr r3, .L624+128 + ldr r1, .L624+132 ldrh r2, [r5, r3] add r4, r4, r0 mov r0, r4 bl sprintf - ldr r1, .L625+136 + ldr r1, .L624+136 ldr r2, [r6, #3956] add r4, r4, r0 mov r0, r4 bl sprintf - ldr r1, .L625+140 + ldr r1, .L624+140 ldr r2, [r6, #3948] add r4, r4, r0 mov r0, r4 bl sprintf - ldr r1, .L625+144 + ldr r1, .L624+144 ldr r2, [r6, #3844] add r4, r4, r0 mov r0, r4 bl sprintf movw r3, #4062 ldrh r2, [r6, r3] - ldr r1, .L625+148 + ldr r1, .L624+148 add r4, r4, r0 mov r0, r4 bl sprintf mov r3, #3856 ldrh r2, [r6, r3] - ldr r1, .L625+152 + ldr r1, .L624+152 add r4, r4, r0 mov r0, r4 bl sprintf - ldr r3, .L625+156 - ldr r1, .L625+160 + ldr r3, .L624+156 + ldr r1, .L624+160 ldrh r2, [r5, r3] add r4, r4, r0 mov r0, r4 bl sprintf - ldr r1, .L625+164 + ldr r1, .L624+164 ldr r2, [r6, #3860] add r4, r4, r0 mov r0, r4 bl sprintf - ldr r3, .L625+168 - ldr r1, .L625+172 + ldr r3, .L624+168 + ldr r1, .L624+172 ldrh r2, [r5, r3] add r4, r4, r0 mov r0, r4 bl sprintf movw r3, #3980 ldrh r2, [r6, r3] - ldr r1, .L625+176 + ldr r1, .L624+176 add r4, r4, r0 mov r0, r4 bl sprintf - ldr r3, .L625+180 - ldr r1, .L625+184 + ldr r3, .L624+180 + ldr r1, .L624+184 ldrh r2, [r5, r3] add r4, r4, r0 mov r0, r4 bl sprintf - ldr r1, .L625+188 + ldr r1, .L624+188 ldrb r2, [r5, #-1990] @ zero_extendqisi2 add r4, r4, r0 mov r0, r4 bl sprintf ldrh r2, [r5, r8] - ldr r1, .L625+192 + ldr r1, .L624+192 add r4, r4, r0 mov r0, r4 bl sprintf - ldr r1, .L625+196 + ldr r1, .L624+196 ldrb r2, [r5, #-1988] @ zero_extendqisi2 add r4, r4, r0 mov r0, r4 bl sprintf - ldr r3, .L625+200 - ldr r1, .L625+204 + ldr r3, .L624+200 + ldr r1, .L624+204 ldrh r2, [r5, r3] add r4, r4, r0 mov r0, r4 @@ -5042,35 +5018,35 @@ FtlPrintInfo2buf: ldrh r3, [r5, r8] ldr r2, [r5, #-2016] add r8, r8, #48 - ldr r1, .L625+208 + ldr r1, .L624+208 mov r3, r3, asl #1 ldrh r2, [r2, r3] add r4, r4, r0 mov r0, r4 bl sprintf - ldr r3, .L625+212 - ldr r1, .L625+216 + ldr r3, .L624+212 + ldr r1, .L624+216 ldrh r2, [r5, r3] add r4, r4, r0 mov r0, r4 bl sprintf - ldr r1, .L625+220 + ldr r1, .L624+220 ldrb r2, [r5, #-1942] @ zero_extendqisi2 add r4, r4, r0 mov r0, r4 bl sprintf ldrh r2, [r5, r8] - ldr r1, .L625+224 + ldr r1, .L624+224 add r4, r4, r0 mov r0, r4 bl sprintf - ldr r1, .L625+228 + ldr r1, .L624+228 ldrb r2, [r5, #-1940] @ zero_extendqisi2 add r4, r4, r0 mov r0, r4 bl sprintf - ldr r3, .L625+232 - ldr r1, .L625+236 + ldr r3, .L624+232 + ldr r1, .L624+236 ldrh r2, [r5, r3] add r4, r4, r0 mov r0, r4 @@ -5078,63 +5054,63 @@ FtlPrintInfo2buf: ldrh r3, [r5, r8] ldr r2, [r5, #-2016] add r8, r8, #188 - ldr r1, .L625+240 + ldr r1, .L624+240 mov r3, r3, asl #1 ldrh r2, [r2, r3] add r4, r4, r0 mov r0, r4 bl sprintf - ldr r3, .L625+244 - ldr r1, .L625+248 + ldr r3, .L624+244 + ldr r1, .L624+248 ldrh r2, [r5, r3] add r4, r4, r0 mov r0, r4 bl sprintf - ldr r1, .L625+252 + ldr r1, .L624+252 ldrb r2, [r5, #-1894] @ zero_extendqisi2 add r4, r4, r0 mov r0, r4 bl sprintf - ldr r3, .L625+256 - ldr r1, .L625+260 + ldr r3, .L624+256 + ldr r1, .L624+260 ldrh r2, [r5, r3] add r4, r4, r0 mov r0, r4 bl sprintf - ldr r1, .L625+264 + ldr r1, .L624+264 ldrb r2, [r5, #-1892] @ zero_extendqisi2 add r4, r4, r0 mov r0, r4 bl sprintf - ldr r3, .L625+268 - ldr r1, .L625+272 + ldr r3, .L624+268 + ldr r1, .L624+272 ldrh r2, [r5, r3] add r4, r4, r0 mov r0, r4 bl sprintf - ldr r3, .L625+276 - ldr r1, .L625+280 + ldr r3, .L624+276 + ldr r1, .L624+280 ldrh r2, [r5, r3] add r4, r4, r0 mov r0, r4 bl sprintf - ldr r1, .L625+284 + ldr r1, .L624+284 ldrb r2, [r5, #-1754] @ zero_extendqisi2 add r4, r4, r0 mov r0, r4 bl sprintf - ldr r1, .L625+288 + ldr r1, .L624+288 ldrh r2, [r5, r8] add r4, r4, r0 mov r0, r4 bl sprintf - ldr r1, .L625+292 + ldr r1, .L624+292 ldrb r2, [r5, #-1752] @ zero_extendqisi2 add r4, r4, r0 mov r0, r4 bl sprintf - ldr r3, .L625+296 - ldr r1, .L625+300 + ldr r3, .L624+296 + ldr r1, .L624+300 ldrh r2, [r5, r3] add r4, r4, r0 mov r0, r4 @@ -5146,54 +5122,54 @@ FtlPrintInfo2buf: ldr r1, [r5, #-1632] orr r2, r3, r2, asl #8 str r1, [sp, #4] - ldr r1, .L625+304 + ldr r1, .L624+304 ldr r3, [r5, #-1628] add r4, r4, r0 mov r0, r4 bl sprintf - ldr r1, .L625+308 + ldr r1, .L624+308 ldr r2, [r5, #-1636] add r4, r4, r0 mov r0, r4 bl sprintf - ldr r1, .L625+312 + ldr r1, .L624+312 ldr r2, [r5, #-1612] add r4, r4, r0 mov r0, r4 bl sprintf - ldr r3, .L625+316 - ldr r1, .L625+320 + ldr r3, .L624+316 + ldr r1, .L624+320 ldrh r2, [r5, r3] add r4, r4, r0 mov r0, r4 bl sprintf - ldr r3, .L625+324 - ldr r1, .L625+328 + ldr r3, .L624+324 + ldr r1, .L624+328 ldrh r2, [r5, r3] add r4, r4, r0 mov r0, r4 bl sprintf - ldr r1, .L625+332 + ldr r1, .L624+332 ldr r2, [r5, #-1192] add r4, r4, r0 mov r0, r4 bl sprintf - ldr r3, .L625+336 - ldr r1, .L625+340 + ldr r3, .L624+336 + ldr r1, .L624+340 ldrh r2, [r5, r3] add r4, r4, r0 mov r0, r4 bl sprintf add r4, r4, r0 bl GetFreeBlockMinEraseCount - ldr r1, .L625+344 + ldr r1, .L624+344 mov r2, r0 mov r0, r4 bl sprintf add r4, r4, r0 ldrh r0, [r5, r7] bl GetFreeBlockMaxEraseCount - ldr r1, .L625+348 + ldr r1, .L624+348 mov r2, r0 mov r0, r4 bl sprintf @@ -5201,25 +5177,25 @@ FtlPrintInfo2buf: movw r2, #65535 cmp r3, r2 add r4, r4, r0 - beq .L618 + beq .L617 ldr r2, [r5, #-2016] mov r3, r3, asl #1 mov r0, r4 - ldr r1, .L625+352 + ldr r1, .L624+352 ldrh r2, [r2, r3] bl sprintf add r4, r4, r0 -.L618: +.L617: mov r0, #0 - ldr r6, .L625+24 + ldr r6, .L624+24 bl List_get_gc_head_node - ldr r8, .L625 + ldr r8, .L624 mov r5, #0 movw r9, #65535 uxth r3, r0 -.L620: +.L619: cmp r3, r9 - beq .L619 + beq .L618 ldr r1, [r6, #-2016] mov r2, r3, asl #1 mov r7, #6 @@ -5233,7 +5209,7 @@ FtlPrintInfo2buf: str r1, [sp, #4] ldr r1, [r8, #4048] ldrh r2, [r1, r2] - ldr r1, .L625+356 + ldr r1, .L624+356 str r2, [sp, #8] mov r2, r5 bl sprintf @@ -5242,22 +5218,22 @@ FtlPrintInfo2buf: cmp r5, #16 ldrh r3, [r3, r7] add r4, r4, r0 - bne .L620 -.L619: - ldr r6, .L625+24 + bne .L619 +.L618: + ldr r6, .L624+24 mov r5, #0 - ldr r8, .L625 + ldr r8, .L624 movw r9, #65535 ldr r2, [r6, #-2004] ldr r3, [r6, #-2024] rsb r3, r3, r2 - ldr r2, .L625+360 + ldr r2, .L624+360 mov r3, r3, asr #1 mul r3, r2, r3 uxth r3, r3 -.L622: +.L621: cmp r3, r9 - beq .L621 + beq .L620 mov r7, #6 ldr r2, [r6, #-2024] mul r7, r7, r3 @@ -5268,7 +5244,7 @@ FtlPrintInfo2buf: mov r2, r3, asl #1 ldr r1, [r8, #4048] ldrh r2, [r1, r2] - ldr r1, .L625+364 + ldr r1, .L624+364 str r2, [sp, #4] mov r2, r5 bl sprintf @@ -5277,24 +5253,25 @@ FtlPrintInfo2buf: cmp r5, #4 ldrh r3, [r3, r7] add r4, r4, r0 - bne .L622 -.L621: + bne .L621 +.L620: rsb r0, sl, r4 add sp, sp, #32 ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, pc} -.L626: - .align 2 .L625: + .align 2 +.L624: .word .LANCHOR0 + .word .LC7 .word .LC8 .word .LC9 - .word .LC10 .word .LANCHOR1 - .word .LC11 + .word .LC10 .word .LANCHOR2 .word -2000 - .word .LC12 + .word .LC11 .word -1996 + .word .LC12 .word .LC13 .word .LC14 .word .LC15 @@ -5314,69 +5291,68 @@ FtlPrintInfo2buf: .word .LC29 .word .LC30 .word .LC31 - .word .LC32 .word -2042 - .word .LC33 + .word .LC32 .word -2044 + .word .LC33 .word .LC34 .word .LC35 .word .LC36 .word .LC37 .word .LC38 - .word .LC39 .word -1776 + .word .LC39 .word .LC40 - .word .LC41 .word -1772 + .word .LC41 .word .LC42 - .word .LC43 .word -1994 + .word .LC43 .word .LC44 .word .LC45 .word .LC46 - .word .LC47 .word -1992 + .word .LC47 .word .LC48 - .word .LC49 .word -1946 + .word .LC49 .word .LC50 .word .LC51 .word .LC52 - .word .LC53 .word -1944 + .word .LC53 .word .LC54 - .word .LC55 .word -1898 + .word .LC55 .word .LC56 - .word .LC57 .word -1900 + .word .LC57 .word .LC58 - .word .LC59 .word -1896 - .word .LC60 + .word .LC59 .word -1758 + .word .LC60 .word .LC61 .word .LC62 .word .LC63 - .word .LC64 .word -1756 + .word .LC64 .word .LC65 .word .LC66 .word .LC67 - .word .LC68 .word -1196 - .word .LC69 + .word .LC68 .word -1194 + .word .LC69 .word .LC70 - .word .LC71 .word -1188 + .word .LC71 .word .LC72 .word .LC73 .word .LC74 .word .LC75 - .word .LC76 .word -1431655765 - .word .LC77 + .word .LC76 .fnend .size FtlPrintInfo2buf, .-FtlPrintInfo2buf .align 2 @@ -5389,8 +5365,8 @@ ftl_proc_ftl_read: stmfd sp!, {r3, r4, r5, lr} .save {r3, r4, r5, lr} mov r4, r0 - ldr r1, .L628 - ldr r2, .L628+4 + ldr r1, .L627 + ldr r2, .L627+4 bl sprintf add r5, r4, r0 mov r0, r5 @@ -5398,11 +5374,11 @@ ftl_proc_ftl_read: add r0, r5, r0 rsb r0, r4, r0 ldmfd sp!, {r3, r4, r5, pc} -.L629: - .align 2 .L628: + .align 2 +.L627: + .word .LC77 .word .LC78 - .word .LC79 .fnend .size ftl_proc_ftl_read, .-ftl_proc_ftl_read .align 2 @@ -5412,7 +5388,7 @@ GetSwlReplaceBlock: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L655 + ldr r3, .L654 stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} .save {r4, r5, r6, r7, r8, r9, sl, fp, lr} .pad #20 @@ -5420,28 +5396,28 @@ GetSwlReplaceBlock: ldr r1, [r3, #-1788] ldr r2, [r3, #-1780] cmp r1, r2 - bcs .L631 - ldr r0, .L655+4 + bcs .L630 + ldr r0, .L654+4 mov r1, #3856 mov r2, #0 str r2, [r3, #-1796] ldrh r1, [r0, r1] ldr r0, [r0, #4048] - b .L632 -.L633: + b .L631 +.L632: ldrh lr, [r0], #2 add r2, r2, #1 ldr ip, [r3, #-1796] add ip, lr, ip str ip, [r3, #-1796] -.L632: +.L631: cmp r2, r1 - ldr r4, .L655 - bcc .L633 + ldr r4, .L654 + bcc .L632 ldr r5, [r4, #-1796] mov r0, r5 bl __aeabi_uidiv - ldr r2, .L655+4 + ldr r2, .L654+4 movw r3, #3906 ldrh r1, [r2, r3] str r0, [r4, #-1788] @@ -5449,48 +5425,48 @@ GetSwlReplaceBlock: rsb r0, r0, r5 bl __aeabi_uidiv str r0, [r4, #-1796] - b .L634 -.L631: + b .L633 +.L630: ldr r2, [r3, #-1784] cmp r1, r2 - bls .L634 + bls .L633 add r2, r2, #1 mov ip, #3856 str r2, [r3, #-1784] mov r3, #0 - ldr r2, .L655+4 - b .L635 -.L636: + ldr r2, .L654+4 + b .L634 +.L635: ldr r0, [r2, #4048] mov r1, r3, asl #1 add r3, r3, #1 ldrh r4, [r0, r1] add r4, r4, #1 strh r4, [r0, r1] @ movhi -.L635: +.L634: ldrh r1, [r2, ip] cmp r3, r1 - bcc .L636 -.L634: - ldr r3, .L655 + bcc .L635 +.L633: + ldr r3, .L654 ldr r6, [r3, #-1780] ldr r5, [r3, #-1788] add r2, r6, #256 cmp r2, r5 mov r2, r3 - bls .L637 + bls .L636 ldr r3, [r3, #-1784] add r1, r6, #768 cmp r1, r3 - bls .L637 - ldr r3, .L655+4 + bls .L636 + ldr r3, .L654+4 ldr r3, [r3, #3840] cmp r3, #0 - beq .L654 - cmp r6, #30 - bhi .L654 -.L637: - ldr r3, .L655+8 + beq .L653 + cmp r6, #40 + bhi .L653 +.L636: + ldr r3, .L654+8 ldrh r0, [r2, r3] add r0, r0, r0, asl #1 ubfx r0, r0, #2, #16 @@ -5498,15 +5474,15 @@ GetSwlReplaceBlock: add r3, r6, #64 cmp r0, r3 mov r8, r0 - bcs .L639 - cmp r6, #30 - bhi .L654 -.L639: - ldr r1, .L655 + bcs .L638 + cmp r6, #40 + bhi .L653 +.L638: + ldr r1, .L654 ldr r3, [r1, #-2020] cmp r3, #0 - beq .L654 - ldr r2, .L655+4 + beq .L653 + ldr r2, .L654+4 mov r0, #3856 movw r7, #65535 mov r4, r7 @@ -5515,71 +5491,71 @@ GetSwlReplaceBlock: ldr r0, [r1, #-2024] ldr r1, [r2, #4048] mov r2, #0 - b .L640 -.L643: + b .L639 +.L642: add r2, r2, #1 uxth r2, r2 cmp r2, sl - bhi .L654 + bhi .L653 ldrh ip, [r3, #4] cmp ip, #0 - beq .L641 + beq .L640 rsb r3, r0, r3 - ldr ip, .L655+12 + ldr ip, .L654+12 mov r3, r3, asr #1 mul r3, ip, r3 uxth r3, r3 mov ip, r3, asl #1 ldrh ip, [r1, ip] cmp ip, r6 - bls .L651 + bls .L650 cmp ip, r7 movcc r7, ip movcc r4, r3 -.L641: +.L640: mov ip, #6 mla r3, ip, r9, r0 -.L640: +.L639: ldrh r9, [r3, #0] cmp r9, fp - bne .L643 - b .L642 -.L651: + bne .L642 + b .L641 +.L650: mov r4, r3 -.L642: +.L641: movw r3, #65535 cmp r4, r3 - beq .L638 + beq .L637 mov r9, r4, asl #1 ldrh sl, [r1, r9] cmp sl, r6 - bls .L644 + bls .L643 bl GetFreeBlockMinEraseCount cmp r0, r6 - ldrhi r3, .L655 + ldrhi r3, .L654 strhi r7, [r3, #-1780] -.L644: +.L643: cmp sl, r5 - bcs .L654 + bcs .L653 add r3, sl, #128 cmp r8, r3 - ble .L654 + ble .L653 add r3, sl, #256 - ldr r6, .L655 + ldr r6, .L654 cmp r3, r5 - bcc .L645 + bcc .L644 ldr r3, [r6, #-1784] add sl, sl, #768 cmp sl, r3 - bcs .L654 -.L645: + bcs .L653 +.L644: ldr r3, [r6, #-2016] mov r1, r4 - ldr r0, .L655+16 + ldr r0, .L654+16 mov r2, r5 ldrh r3, [r3, r9] str r3, [sp, #0] - ldr r3, .L655+4 + ldr r3, .L654+4 ldr r3, [r3, #4048] ldrh r3, [r3, r9] stmib sp, {r3, r8} @@ -5587,21 +5563,21 @@ GetSwlReplaceBlock: bl printk mov r3, #1 str r3, [r6, #-1184] - b .L638 -.L654: + b .L637 +.L653: movw r4, #65535 -.L638: +.L637: mov r0, r4 add sp, sp, #20 ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} -.L656: - .align 2 .L655: + .align 2 +.L654: .word .LANCHOR2 .word .LANCHOR0 .word -2000 .word -1431655765 - .word .LC80 + .word .LC79 .fnend .size GetSwlReplaceBlock, .-GetSwlReplaceBlock .align 2 @@ -5615,19 +5591,19 @@ free_data_superblock: cmp r0, r2 stmfd sp!, {r3, lr} .save {r3, lr} - beq .L658 - ldr r2, .L659 + beq .L657 + ldr r2, .L658 mov r3, r0, asl #1 mov r1, #0 ldr r2, [r2, #-2016] strh r1, [r2, r3] @ movhi bl INSERT_FREE_LIST -.L658: +.L657: mov r0, #0 ldmfd sp!, {r3, pc} -.L660: - .align 2 .L659: + .align 2 +.L658: .word .LANCHOR2 .fnend .size free_data_superblock, .-free_data_superblock @@ -5638,19 +5614,19 @@ FtlGcBufInit: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r2, .L669 + ldr r2, .L668 mov r3, #0 stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} .save {r4, r5, r6, r7, r8, r9, sl, fp, lr} movw sl, #3848 str r3, [r2, #-1180] mov r8, #12 - ldr r0, .L669+4 + ldr r0, .L668+4 mov r7, #1 movw r6, #3926 movw fp, #3928 - b .L662 -.L663: + b .L661 +.L662: mul r1, r8, r3 ldr r4, [r2, #-1176] add ip, r4, r1 @@ -5684,12 +5660,12 @@ FtlGcBufInit: str r1, [ip, #8] ldr r1, [r4, #4] str r1, [ip, #12] -.L662: +.L661: ldrh r1, [r0, sl] cmp r3, r1 - bcc .L663 - b .L668 -.L665: + bcc .L662 + b .L667 +.L664: mul r2, r8, r1 ldr r4, [r3, #-1176] add r0, r4, r2 @@ -5716,22 +5692,22 @@ FtlGcBufInit: bic r2, r2, #3 add r2, r4, r2 str r2, [r0, #4] - b .L667 -.L668: - ldr r3, .L669 + b .L666 +.L667: + ldr r3, .L668 mov r8, #12 - ldr ip, .L669+4 + ldr ip, .L668+4 mov r7, #0 movw r6, #3926 movw r5, #3928 -.L667: +.L666: ldr r2, [r3, #-1160] cmp r1, r2 - bcc .L665 + bcc .L664 ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} -.L670: - .align 2 .L669: + .align 2 +.L668: .word .LANCHOR2 .word .LANCHOR0 .fnend @@ -5743,7 +5719,7 @@ FtlGcBufFree: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L678 + ldr r3, .L677 stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} .save {r4, r5, r6, r7, r8, r9, sl, fp, lr} mov r5, #36 @@ -5752,33 +5728,33 @@ FtlGcBufFree: ldr ip, [r3, #-1176] mov r3, #0 mov r4, r3 - b .L672 -.L675: + b .L671 +.L674: mul sl, fp, r2 add r8, ip, sl ldr r9, [ip, sl] ldr sl, [r7, #8] cmp r9, sl streq r4, [r8, #8] - beq .L674 -.L673: + beq .L673 +.L672: add r2, r2, #1 uxth r2, r2 -.L677: +.L676: cmp r2, r6 - bcc .L675 -.L674: + bcc .L674 +.L673: add r3, r3, #1 uxth r3, r3 -.L672: +.L671: cmp r3, r1 ldmcsfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} mla r7, r5, r3, r0 mov r2, #0 - b .L677 -.L679: - .align 2 + b .L676 .L678: + .align 2 +.L677: .word .LANCHOR2 .fnend .size FtlGcBufFree, .-FtlGcBufFree @@ -5789,7 +5765,7 @@ FtlGcBufAlloc: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L687 + ldr r3, .L686 stmfd sp!, {r4, r5, r6, r7, r8, sl, lr} .save {r4, r5, r6, r7, r8, sl, lr} mov r6, #12 @@ -5798,38 +5774,38 @@ FtlGcBufAlloc: ldr r7, [r3, #-1176] mov r4, #36 mov r3, #0 - b .L681 -.L684: + b .L680 +.L683: mla ip, r6, r2, r7 ldr sl, [ip, #8] cmp sl, #0 - bne .L682 + bne .L681 mla r2, r4, r3, r0 ldr sl, [ip, #0] str r5, [ip, #8] str sl, [r2, #8] ldr ip, [ip, #4] str ip, [r2, #12] - b .L683 -.L682: + b .L682 +.L681: add r2, r2, #1 uxth r2, r2 - b .L685 -.L686: - mov r2, #0 + b .L684 .L685: + mov r2, #0 +.L684: cmp r2, r8 - bcc .L684 -.L683: + bcc .L683 +.L682: add r3, r3, #1 uxth r3, r3 -.L681: +.L680: cmp r3, r1 - bcc .L686 + bcc .L685 ldmfd sp!, {r4, r5, r6, r7, r8, sl, pc} -.L688: - .align 2 .L687: + .align 2 +.L686: .word .LANCHOR2 .fnend .size FtlGcBufAlloc, .-FtlGcBufAlloc @@ -5841,29 +5817,29 @@ IsBlkInGcList: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L694 - ldr r2, .L694+4 + ldr r3, .L693 + ldr r2, .L693+4 ldrh r1, [r3, r2] ldr r2, [r3, #-1152] mov r3, #0 - b .L690 -.L692: + b .L689 +.L691: ldrh ip, [r2], #2 cmp ip, r0 - beq .L693 + beq .L692 add r3, r3, #1 uxth r3, r3 -.L690: +.L689: cmp r3, r1 - bne .L692 + bne .L691 mov r0, #0 bx lr -.L693: +.L692: mov r0, #1 bx lr -.L695: - .align 2 .L694: + .align 2 +.L693: .word .LANCHOR2 .word -1156 .fnend @@ -5882,33 +5858,33 @@ FtlGcUpdatePage: mov r5, r1 mov r6, r2 bl P2V_block_in_plane - ldr r3, .L700 - ldr r2, .L700+4 + ldr r3, .L699 + ldr r2, .L699+4 ldrh ip, [r3, r2] ldr r2, [r3, #-1152] mov r3, #0 mov r1, r2 - b .L697 -.L699: + b .L696 +.L698: ldrh r7, [r1], #2 cmp r7, r0 - beq .L698 + beq .L697 add r3, r3, #1 uxth r3, r3 -.L697: +.L696: cmp r3, ip - bne .L699 + bne .L698 mov r3, r3, asl #1 strh r0, [r2, r3] @ movhi - ldr r2, .L700 - ldr r3, .L700+4 + ldr r2, .L699 + ldr r3, .L699+4 ldrh r1, [r2, r3] add r1, r1, #1 strh r1, [r2, r3] @ movhi -.L698: - ldr r3, .L700 +.L697: + ldr r3, .L699 mov r0, #12 - ldr r2, .L700+8 + ldr r2, .L699+8 ldrh r1, [r3, r2] mul r1, r0, r1 ldr r0, [r3, #-1148] @@ -5919,9 +5895,9 @@ FtlGcUpdatePage: add r1, r1, #1 strh r1, [r3, r2] @ movhi ldmfd sp!, {r3, r4, r5, r6, r7, pc} -.L701: - .align 2 .L700: + .align 2 +.L699: .word .LANCHOR2 .word -1156 .word -1144 @@ -5934,37 +5910,53 @@ FtlGcRefreshOpenBlock: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - stmfd sp!, {r3, r4, r5, lr} - .save {r3, r4, r5, lr} + stmfd sp!, {r3, r4, r5, r6, r7, r8, sl, lr} + .save {r3, r4, r5, r6, r7, r8, sl, lr} mov r4, r0 mov r1, r4 - ldr r0, .L705 + ldr r0, .L706 bl printk - ldr r3, .L705+4 - ldr ip, .L705+8 + ldr r8, .L706+4 + ldr r3, .L706+8 + ldrh sl, [r3, r8] + cmp sl, r4 + beq .L702 + ldr r6, .L706+12 + ldrh r7, [r3, r6] + cmp r7, r4 + beq .L702 + ldr ip, .L706+16 ldrh r5, [r3, ip] cmp r5, r4 - beq .L703 - ldr r2, .L705+12 - ldrh r0, [r3, r2] + beq .L702 + ldr r1, .L706+20 + ldrh r0, [r3, r1] cmp r0, r4 - beq .L703 - movw r1, #65535 - cmp r5, r1 + beq .L702 + movw r2, #65535 + cmp sl, r2 + streqh r4, [r3, r8] @ movhi + beq .L702 + cmp r7, r2 + streqh r4, [r3, r6] @ movhi + beq .L702 + cmp r5, r2 streqh r4, [r3, ip] @ movhi - beq .L703 - cmp r0, r1 - streqh r4, [r3, r2] @ movhi -.L703: + beq .L702 + cmp r0, r2 + streqh r4, [r3, r1] @ movhi +.L702: mov r0, #0 - ldmfd sp!, {r3, r4, r5, pc} -.L706: + ldmfd sp!, {r3, r4, r5, r6, r7, r8, sl, pc} +.L707: .align 2 -.L705: - .word .LC81 - .word .LANCHOR2 +.L706: + .word .LC80 .word -1142 + .word .LANCHOR2 .word -1140 + .word -1138 + .word -1136 .fnend .size FtlGcRefreshOpenBlock, .-FtlGcRefreshOpenBlock .align 2 @@ -5974,39 +5966,115 @@ FtlGcRefreshBlock: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - stmfd sp!, {r3, r4, r5, lr} - .save {r3, r4, r5, lr} + stmfd sp!, {r3, r4, r5, r6, r7, r8, sl, lr} + .save {r3, r4, r5, r6, r7, r8, sl, lr} mov r4, r0 mov r1, r4 - ldr r0, .L710 + ldr r0, .L719 bl printk - ldr r3, .L710+4 - ldr ip, .L710+8 + ldr r8, .L719+4 + ldr r3, .L719+8 + ldrh sl, [r3, r8] + cmp sl, r4 + beq .L716 + ldr r6, .L719+12 + ldrh r7, [r3, r6] + cmp r7, r4 + beq .L716 + ldr ip, .L719+16 ldrh r5, [r3, ip] cmp r5, r4 - beq .L708 - ldr r2, .L710+12 - ldrh r0, [r3, r2] + beq .L716 + ldr r1, .L719+20 + ldrh r0, [r3, r1] cmp r0, r4 - beq .L708 - movw r1, #65535 - cmp r5, r1 + beq .L717 + movw r2, #65535 + cmp sl, r2 + streqh r4, [r3, r8] @ movhi + beq .L716 + cmp r7, r2 + streqh r4, [r3, r6] @ movhi + beq .L716 + cmp r5, r2 streqh r4, [r3, ip] @ movhi - beq .L708 - cmp r0, r1 - streqh r4, [r3, r2] @ movhi -.L708: + beq .L716 + cmp r0, r2 + streqh r4, [r3, r1] @ movhi + mvnne r0, #0 + ldmnefd sp!, {r3, r4, r5, r6, r7, r8, sl, pc} +.L716: mov r0, #0 - ldmfd sp!, {r3, r4, r5, pc} -.L711: + ldmfd sp!, {r3, r4, r5, r6, r7, r8, sl, pc} +.L717: + mov r0, #0 + ldmfd sp!, {r3, r4, r5, r6, r7, r8, sl, pc} +.L720: .align 2 -.L710: - .word .LC81 - .word .LANCHOR2 +.L719: + .word .LC80 .word -1142 + .word .LANCHOR2 .word -1140 + .word -1138 + .word -1136 .fnend .size FtlGcRefreshBlock, .-FtlGcRefreshBlock + .section .text.unlikely,"ax",%progbits + .align 2 + .type decrement_vpc_count.part.18, %function +decrement_vpc_count.part.18: + .fnstart + @ args = 0, pretend = 0, frame = 0 + @ frame_needed = 0, uses_anonymous_args = 0 + stmfd sp!, {r4, r5, r6, lr} + .save {r4, r5, r6, lr} + mov r6, r0, asl #1 + ldr r5, .L723 + mov r4, r0 + mov r1, r4 + ldr r0, .L723+4 + ldr r3, [r5, #-2016] + ldrh r2, [r3, r6] + bl printk + ldr r3, [r5, #-2016] + mov r2, #32 + ldr r0, .L723+8 + mov r1, r4 + strh r2, [r3, r6] @ movhi + bl test_node_in_list + cmp r0, #0 + beq .L722 + mov r1, r4 + ldr r0, .L723+8 + bl List_remove_node + ldr r3, .L723+12 + mov r0, r4 + ldrh r2, [r5, r3] + sub r2, r2, #1 + strh r2, [r5, r3] @ movhi + bl INSERT_DATA_LIST + ldr r3, [r5, #-2016] + ldr r0, .L723+16 + mov r1, r4 + ldrh r2, [r3, r6] + bl printk +.L722: + mov r0, r4 + bl FtlGcRefreshBlock + mov r0, #0 + ldmfd sp!, {r4, r5, r6, pc} +.L724: + .align 2 +.L723: + .word .LANCHOR2 + .word .LC81 + .word .LANCHOR2-2004 + .word -2000 + .word .LC82 + .fnend + .size decrement_vpc_count.part.18, .-decrement_vpc_count.part.18 + .text .align 2 .global FtlGcMarkBadPhyBlk .type FtlGcMarkBadPhyBlk, %function @@ -6018,59 +6086,60 @@ FtlGcMarkBadPhyBlk: .save {r3, r4, r5, r6, r7, lr} mov r4, r0 bl P2V_block_in_plane - ldr r7, .L717 + ldr r7, .L730 mov r2, r4 - ldr r6, .L717+4 + ldr r6, .L730+4 ldrh r1, [r7, r6] mov r5, r0 - ldr r0, .L717+8 + ldr r0, .L730+8 bl printk mov r0, r5 bl FtlGcRefreshBlock - ldr r3, .L717+12 + ldr r3, .L730+12 ldr r2, [r3, #3840] cmp r2, #0 - beq .L713 + beq .L726 ldr r3, [r3, #4048] mov r5, r5, asl #1 ldrh r2, [r3, r5] - cmp r2, #29 - subhi r2, r2, #30 + cmp r2, #39 + subhi r2, r2, #40 strhih r2, [r3, r5] @ movhi -.L713: +.L726: ldrh r1, [r7, r6] mov r3, #0 - ldr r2, .L717+16 - b .L714 -.L716: + ldr r2, .L730+16 + b .L727 +.L729: ldrh r0, [r2, #2]! cmp r0, r4 - beq .L715 + beq .L728 add r3, r3, #1 uxth r3, r3 -.L714: +.L727: cmp r3, r1 - bne .L716 + bne .L729 cmp r3, #15 - bhi .L715 - ldr r2, .L717 - add r1, r2, r3, asl #1 + bhi .L728 + ldr r2, .L730 + ldr r1, .L730+20 + add r0, r2, r3, asl #1 add r3, r3, #1 - sub r1, r1, #1136 - strh r4, [r1, #0] @ movhi - ldr r1, .L717+4 + strh r4, [r0, r1] @ movhi + sub r1, r1, #2 strh r3, [r2, r1] @ movhi -.L715: +.L728: mov r0, #0 ldmfd sp!, {r3, r4, r5, r6, r7, pc} -.L718: +.L731: .align 2 -.L717: +.L730: .word .LANCHOR2 - .word -1138 - .word .LC82 + .word -1134 + .word .LC83 .word .LANCHOR0 - .word .LANCHOR2-1138 + .word .LANCHOR2-1134 + .word -1132 .fnend .size FtlGcMarkBadPhyBlk, .-FtlGcMarkBadPhyBlk .align 2 @@ -6082,41 +6151,42 @@ FtlGcReFreshBadBlk: @ frame_needed = 0, uses_anonymous_args = 0 stmfd sp!, {r3, r4, r5, lr} .save {r3, r4, r5, lr} - ldr r2, .L722 - ldr r3, .L722+4 + ldr r2, .L735 + ldr r3, .L735+4 ldrh r2, [r3, r2] cmp r2, #0 - beq .L720 - ldr r1, .L722+8 + beq .L733 + ldr r1, .L735+8 ldrh r0, [r3, r1] movw r1, #65535 cmp r0, r1 - bne .L720 - ldr r4, .L722+12 - ldr r5, .L722+4 + bne .L733 + ldr r4, .L735+12 + ldr r5, .L735+4 ldrh r1, [r3, r4] cmp r1, r2 movcs r2, #0 strcsh r2, [r3, r4] @ movhi - ldrh r3, [r5, r4] - add r3, r5, r3, asl #1 - sub r3, r3, #1136 - ldrh r0, [r3, #0] + ldrh r2, [r5, r4] + ldr r3, .L735+16 + add r2, r5, r2, asl #1 + ldrh r0, [r2, r3] bl P2V_block_in_plane bl FtlGcRefreshBlock ldrh r3, [r5, r4] add r3, r3, #1 strh r3, [r5, r4] @ movhi -.L720: +.L733: mov r0, #0 ldmfd sp!, {r3, r4, r5, pc} -.L723: +.L736: .align 2 -.L722: - .word -1138 +.L735: + .word -1134 .word .LANCHOR2 .word -1142 - .word -1102 + .word -1098 + .word -1132 .fnend .size FtlGcReFreshBadBlk, .-FtlGcReFreshBadBlk .align 2 @@ -6130,9 +6200,9 @@ ftl_memset: stmfd sp!, {r4, lr} .save {r4, lr} mov r4, r0 - beq .L725 + beq .L738 bl memset -.L725: +.L738: mov r0, r4 ldmfd sp!, {r4, pc} .fnend @@ -6147,11 +6217,11 @@ FtlGcPageVarInit: stmfd sp!, {r4, r5, r6, lr} .save {r4, r5, r6, lr} mov r3, #0 - ldr r4, .L727 + ldr r4, .L740 mov r5, #3920 - ldr r2, .L727+4 + ldr r2, .L740+4 mov r1, #255 - ldr r6, .L727+8 + ldr r6, .L740+8 ldr r0, [r4, #-1152] strh r3, [r4, r2] @ movhi add r2, r2, #12 @@ -6167,9 +6237,9 @@ FtlGcPageVarInit: bl ftl_memset ldmfd sp!, {r4, r5, r6, lr} b FtlGcBufInit -.L728: +.L741: .align 2 -.L727: +.L740: .word .LANCHOR2 .word -1156 .word .LANCHOR0 @@ -6185,9 +6255,9 @@ SupperBlkListInit: stmfd sp!, {r0, r1, r2, r4, r5, r6, r7, r8, r9, sl, fp, lr} .save {r0, r1, r2, r4, r5, r6, r7, r8, r9, sl, fp, lr} movw r3, #3858 - ldr r7, .L739 + ldr r7, .L752 mov r2, #6 - ldr r4, .L739+4 + ldr r4, .L752+4 mov r1, #0 mov r6, #0 ldrh r3, [r7, r3] @@ -6195,18 +6265,18 @@ SupperBlkListInit: ldr r0, [r4, #-2024] mul r2, r2, r3 bl ftl_memset - ldr r3, .L739+8 + ldr r3, .L752+8 str r6, [r4, #-2004] str r6, [r4, #-2020] strh r6, [r4, r3] @ movhi add r3, r3, #8 str r6, [r4, #-2012] strh r6, [r4, r3] @ movhi - add r3, r3, #900 + add r3, r3, #904 strh r6, [r4, r3] @ movhi mov r4, r6 - b .L730 -.L732: + b .L743 +.L745: add r2, r7, r2 mov r1, fp add r9, r9, #1 @@ -6220,84 +6290,84 @@ SupperBlkListInit: ldreqh r2, [r7, r3] addeq r5, r5, r2 uxtheq r5, r5 - b .L737 -.L738: + b .L750 +.L751: mov r5, #0 uxth fp, r4 mov r9, r5 movw r3, #3916 -.L737: +.L750: movw r0, #3848 sxth r2, r9 ldrh r1, [r7, r0] cmp r2, r1 - blt .L732 + blt .L745 cmp r5, #0 - ldr r9, .L739+4 - beq .L733 + ldr r9, .L752+4 + beq .L746 sxth r1, r5 mov r0, #32768 bl __aeabi_idiv uxth r5, r0 - b .L734 -.L733: + b .L747 +.L746: sxth r3, r4 ldr r2, [r9, #-2016] mvn r1, #0 mov r3, r3, asl #1 strh r1, [r2, r3] @ movhi -.L734: +.L747: sxth r1, r4 ldr r0, [r9, #-2024] - ldr r3, .L739+4 + ldr r3, .L752+4 mov r2, r1, asl #1 add r1, r2, r1 add r1, r0, r1, asl #1 strh r5, [r1, #4] @ movhi - ldr r1, .L739+12 + ldr r1, .L752+12 ldrh r1, [r9, r1] cmp r8, r1 - beq .L735 - ldr r1, .L739+16 + beq .L748 + ldr r1, .L752+16 ldrh r1, [r3, r1] cmp r8, r1 - beq .L735 - ldr r1, .L739+20 + beq .L748 + ldr r1, .L752+20 ldrh r1, [r3, r1] cmp r8, r1 - beq .L735 + beq .L748 ldr r3, [r3, #-2016] uxth r0, r4 ldrh r3, [r3, r2] cmp r3, #0 - bne .L736 + bne .L749 add r6, r6, #1 uxth r6, r6 bl INSERT_FREE_LIST - b .L735 -.L736: + b .L748 +.L749: add sl, sl, #1 uxth sl, sl bl INSERT_DATA_LIST -.L735: +.L748: add r4, r4, #1 uxth r4, r4 -.L730: +.L743: mov r3, #3856 sxth r8, r4 ldrh r3, [r7, r3] cmp r8, r3 - blt .L738 - ldr r3, .L739+4 + blt .L751 + ldr r3, .L752+4 mov r0, #0 - ldr r2, .L739+8 + ldr r2, .L752+8 strh sl, [r3, r2] @ movhi add r2, r2, #8 strh r6, [r3, r2] @ movhi ldmfd sp!, {r1, r2, r3, r4, r5, r6, r7, r8, r9, sl, fp, pc} -.L740: +.L753: .align 2 -.L739: +.L752: .word .LANCHOR0 .word .LANCHOR2 .word -2008 @@ -6316,33 +6386,33 @@ FtlL2PDataInit: stmfd sp!, {r3, r4, r5, r6, r7, r8, sl, lr} .save {r3, r4, r5, r6, r7, r8, sl, lr} mov r1, #0 - ldr r4, .L744 + ldr r4, .L757 movw r6, #3926 - ldr r5, .L744+4 + ldr r5, .L757+4 movw r7, #3954 mov r8, #12 ldr r2, [r4, #3944] - ldr r0, [r5, #-1096] + ldr r0, [r5, #-1092] mov r2, r2, asl #1 bl ftl_memset ldrh r3, [r4, r6] ldrh r2, [r4, r7] mov r1, #255 - ldr r0, [r5, #-1092] + ldr r0, [r5, #-1088] mul r2, r2, r3 bl ftl_memset mov r2, #0 mov ip, r2 mvn r0, #0 - b .L742 -.L743: + b .L755 +.L756: mul r3, r8, r2 ldr r1, [r5, #-1852] add sl, r1, r3 str ip, [sl, #4] strh r0, [r1, r3] @ movhi ldr r1, [r5, #-1852] - ldr sl, [r5, #-1092] + ldr sl, [r5, #-1088] add r3, r1, r3 ldrh r1, [r4, r6] mul r1, r2, r1 @@ -6351,52 +6421,49 @@ FtlL2PDataInit: bic r1, r1, #3 add r1, sl, r1 str r1, [r3, #8] -.L742: +.L755: ldrh r3, [r4, r7] - ldr r1, .L744 + ldr r1, .L757 cmp r3, r2 - ldr r3, .L744+4 - bhi .L743 - ldr r0, .L744+8 + ldr r3, .L757+4 + bhi .L756 + ldr r0, .L757+8 mvn r2, #0 - ldr ip, [r1, #3944] strh r2, [r3, r0] @ movhi - ldr r0, .L744+12 + sub r0, r0, #2 strh r2, [r3, r0] @ movhi - add r0, r0, #10 - strh ip, [r3, r0] @ movhi - sub r0, r0, #6 - ldr ip, .L744+16 - strh ip, [r3, r0] @ movhi - add r0, r0, #40 - ldrh ip, [r3, r0] - sub r0, r0, #36 - strh ip, [r3, r0] @ movhi - mov r0, #3952 - ldrh r0, [r1, r0] - ldr r1, .L744+20 - strh r0, [r3, r1] @ movhi - ldr r1, [r3, #-1040] - str r1, [r3, #-1076] - ldr r1, [r3, #-1036] - str r1, [r3, #-1072] - ldr r1, [r3, #-1096] - str r1, [r3, #-1068] - ldr r1, [r3, #-1032] - str r1, [r3, #-1064] - ldr r1, .L744+24 - strh r2, [r3, r1] @ movhi + ldr r0, [r1, #3944] + ldr r2, .L757+12 + strh r0, [r3, r2] @ movhi + sub r2, r2, #6 + ldr r0, .L757+16 + strh r0, [r3, r2] @ movhi + add r2, r2, #40 + ldrh r0, [r3, r2] + sub r2, r2, #36 + strh r0, [r3, r2] @ movhi + mov r2, #3952 + ldrh r1, [r1, r2] + ldr r2, .L757+20 + strh r1, [r3, r2] @ movhi + ldr r2, [r3, #-1036] + str r2, [r3, #-1072] + ldr r2, [r3, #-1032] + str r2, [r3, #-1068] + ldr r2, [r3, #-1092] + str r2, [r3, #-1064] + ldr r2, [r3, #-1028] + str r2, [r3, #-1060] ldmfd sp!, {r3, r4, r5, r6, r7, r8, sl, pc} -.L745: +.L758: .align 2 -.L744: +.L757: .word .LANCHOR0 .word .LANCHOR2 - .word -1086 - .word -1088 - .word -3902 .word -1082 - .word -1048 + .word -1074 + .word -3902 + .word -1078 .fnend .size FtlL2PDataInit, .-FtlL2PDataInit .align 2 @@ -6404,13 +6471,13 @@ FtlL2PDataInit: .type ftl_free_no_use_map_blk, %function ftl_free_no_use_map_blk: .fnstart - @ args = 0, pretend = 0, frame = 8 + @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - stmfd sp!, {r0, r1, r2, r4, r5, r6, r7, r8, r9, sl, fp, lr} - .save {r0, r1, r2, r4, r5, r6, r7, r8, r9, sl, fp, lr} - mov r4, r0 - ldrh r2, [r0, #10] + stmfd sp!, {r3, r4, r5, r6, r7, r8, r9, sl, fp, lr} + .save {r3, r4, r5, r6, r7, r8, r9, sl, fp, lr} mov r1, #0 + ldrh r2, [r0, #10] + mov r4, r0 ldr r5, [r0, #20] ldr r6, [r0, #12] ldr r7, [r0, #24] @@ -6418,77 +6485,77 @@ ftl_free_no_use_map_blk: mov r0, r5 bl ftl_memset mov r3, #0 - b .L747 -.L751: + b .L760 +.L764: ldr r0, [r7, r3, asl #2] mov r2, #0 ubfx r0, r0, #10, #16 - b .L748 -.L750: + b .L761 +.L763: mov r1, r2, asl #1 - add r2, r2, #1 ldrh ip, [r6, r1] - uxth r2, r2 cmp ip, r0 - ldreqh ip, [r5, r1] - addeq ip, ip, #1 - streqh ip, [r5, r1] @ movhi -.L748: + bne .L762 + cmp r0, #0 + ldrneh ip, [r5, r1] + addne ip, ip, #1 + strneh ip, [r5, r1] @ movhi +.L762: + add r2, r2, #1 + uxth r2, r2 +.L761: ldrh r1, [r4, #10] cmp r1, r2 - bhi .L750 + bhi .L763 add r3, r3, #1 uxth r3, r3 -.L747: +.L760: ldrh r2, [r4, #6] cmp r2, r3 - bhi .L751 - mov sl, #0 + bhi .L764 + ldr r2, .L770 + movw r3, #3918 + mov r8, #0 + mov r7, r8 + ldrh r2, [r2, r3] + ldrh r3, [r4, #0] + mov r3, r3, asl #1 + strh r2, [r5, r3] @ movhi ldrh fp, [r5, #0] - mov r7, sl - ldr r3, .L757 - movw r2, #3918 - b .L752 -.L756: - ldrh r1, [r4, #0] - cmp r1, r7 - bne .L753 - ldrh r0, [r4, #2] - ldrh r1, [r3, r2] - cmp r0, r1 - movcc r0, r7, asl #1 - strcch r1, [r5, r0] @ movhi -.L753: - mov r9, r7, asl #1 - ldrh r8, [r5, r9] - cmp fp, r8 - movhi sl, r7 - movhi fp, r8 - cmp r8, #0 - bne .L755 - ldrh r0, [r6, r9] + b .L765 +.L768: + mov sl, r7, asl #1 + ldrh r9, [r5, sl] + cmp fp, r9 + bls .L766 + ldrh r3, [r6, sl] + cmp r3, #0 + movne r8, r7 + movne fp, r9 +.L766: + cmp r9, #0 + bne .L767 + ldrh r0, [r6, sl] cmp r0, #0 - beq .L755 + beq .L767 mov r1, #1 - stmia sp, {r2, r3} bl FtlFreeSysBlkQueueIn - strh r8, [r6, r9] @ movhi - ldmia sp, {r2, r3} - ldrh r1, [r4, #8] - sub r1, r1, #1 - strh r1, [r4, #8] @ movhi -.L755: + strh r9, [r6, sl] @ movhi + ldrh r3, [r4, #8] + sub r3, r3, #1 + strh r3, [r4, #8] @ movhi +.L767: add r7, r7, #1 uxth r7, r7 -.L752: - ldrh r1, [r4, #10] - cmp r1, r7 - bhi .L756 - mov r0, sl - ldmfd sp!, {r1, r2, r3, r4, r5, r6, r7, r8, r9, sl, fp, pc} -.L758: +.L765: + ldrh r3, [r4, #10] + cmp r3, r7 + bhi .L768 + mov r0, r8 + ldmfd sp!, {r3, r4, r5, r6, r7, r8, r9, sl, fp, pc} +.L771: .align 2 -.L757: +.L770: .word .LANCHOR0 .fnend .size ftl_free_no_use_map_blk, .-ftl_free_no_use_map_blk @@ -6499,7 +6566,7 @@ FtlFreeSysBlkQueueInit: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L760 + ldr r3, .L773 movw r2, #4058 stmfd sp!, {r4, lr} .save {r4, lr} @@ -6517,9 +6584,9 @@ FtlFreeSysBlkQueueInit: bl ftl_memset mov r0, r4 ldmfd sp!, {r4, pc} -.L761: +.L774: .align 2 -.L760: +.L773: .word .LANCHOR0 .fnend .size FtlFreeSysBlkQueueInit, .-FtlFreeSysBlkQueueInit @@ -6531,10 +6598,10 @@ FtlBbtMemInit: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L763 + ldr r3, .L776 movw r2, #3980 mvn r1, #0 - ldr r0, .L763+4 + ldr r0, .L776+4 strh r1, [r3, r2] @ movhi add r2, r2, #6 mov r1, #0 @@ -6542,9 +6609,9 @@ FtlBbtMemInit: mov r1, #255 mov r2, #16 b ftl_memset -.L764: +.L777: .align 2 -.L763: +.L776: .word .LANCHOR0 .word .LANCHOR0+3992 .fnend @@ -6556,8 +6623,8 @@ FtlBbt2Bitmap: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L769 - ldr r2, .L769+4 + ldr r3, .L782 + ldr r2, .L782+4 stmfd sp!, {r4, r5, r6, lr} .save {r4, r5, r6, lr} mov r5, r0 @@ -6570,7 +6637,7 @@ FtlBbt2Bitmap: mov r3, #0 movw ip, #65535 mov r0, #1 -.L767: +.L780: ldrh r2, [r5, r3] cmp r2, ip ldmeqfd sp!, {r4, r5, r6, pc} @@ -6581,12 +6648,12 @@ FtlBbt2Bitmap: ldr r6, [r4, r1, asl #2] orr r2, r6, r0, asl r2 str r2, [r4, r1, asl #2] - bne .L767 + bne .L780 ldmfd sp!, {r4, r5, r6, pc} -.L770: +.L783: .align 2 -.L769: - .word -1028 +.L782: + .word -1024 .word .LANCHOR2 .fnend .size FtlBbt2Bitmap, .-FtlBbt2Bitmap @@ -6600,23 +6667,23 @@ FtlVariablesInit: stmfd sp!, {r3, r4, r5, r6, r7, lr} .save {r3, r4, r5, r6, r7, lr} mvn r3, #0 - ldr r6, .L772 + ldr r6, .L785 mov r4, #0 - ldr r2, .L772+4 + ldr r2, .L785+4 mov r1, r4 - ldr r5, .L772+8 + ldr r5, .L785+8 movw r7, #3858 - str r3, [r6, #-1008] + str r3, [r6, #-1004] strh r3, [r6, r2] @ movhi movw r3, #3962 strh r4, [r5, r3] @ movhi mov r3, #3936 ldrh r2, [r5, r3] ldr r0, [r5, #3964] - str r4, [r6, #-1024] + str r4, [r6, #-1020] mov r2, r2, asl #1 - str r4, [r6, #-1016] str r4, [r6, #-1012] + str r4, [r6, #-1008] str r4, [r5, #3840] bl ftl_memset ldrh r2, [r5, r7] @@ -6626,26 +6693,26 @@ FtlVariablesInit: bl ftl_memset ldrh r2, [r5, r7] mov r1, r4 - ldr r0, [r6, #-1004] + ldr r0, [r6, #-1000] mov r2, r2, asl #1 bl ftl_memset mov r1, r4 mov r2, #48 - ldr r0, .L772+12 + ldr r0, .L785+12 bl ftl_memset mov r1, r4 mov r2, #512 - ldr r0, .L772+16 + ldr r0, .L785+16 bl ftl_memset bl FtlGcBufInit bl FtlL2PDataInit mov r0, r4 ldmfd sp!, {r3, r4, r5, r6, r7, pc} -.L773: +.L786: .align 2 -.L772: +.L785: .word .LANCHOR2 - .word -1020 + .word -1016 .word .LANCHOR0 .word .LANCHOR2-2072 .word .LANCHOR2-1708 @@ -6661,57 +6728,61 @@ FtlMemInit: stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, lr} .save {r4, r5, r6, r7, r8, r9, sl, lr} mov r6, #0 - ldr r4, .L805 + ldr r4, .L818 mov r0, #1024 - ldr r3, .L805+4 + ldr r3, .L818+4 mov r7, #12 - ldr r2, .L805+8 + ldr r2, .L818+8 movw sl, #3848 - ldr r5, .L805+12 + ldr r5, .L818+12 mov r8, #36 strh r6, [r4, r3] @ movhi movw r3, #65535 - str r3, [r4, #-992] + str r3, [r4, #-988] mvn r3, #0 strh r3, [r4, r2] @ movhi add r2, r2, #2 - str r6, [r4, #-1000] + str r6, [r4, #-996] + strh r3, [r4, r2] @ movhi + add r2, r2, #2 + str r6, [r4, #-1712] + strh r3, [r4, r2] @ movhi + add r2, r2, #2 + str r6, [r4, #-1804] strh r3, [r4, r2] @ movhi mov r2, #32 - ldr r3, .L805+16 - str r6, [r4, #-1712] - str r6, [r4, #-1804] + ldr r3, .L818+16 + str r6, [r4, #-1800] + str r6, [r4, #-1816] strh r2, [r4, r3] @ movhi add r3, r3, #2 mov r2, #128 - str r6, [r4, #-1800] + str r6, [r4, #-1828] strh r2, [r4, r3] @ movhi add r3, r3, #6 - str r6, [r4, #-1816] - strh r6, [r4, r3] @ movhi - add r3, r3, #50 - str r6, [r4, #-1828] - strh r6, [r4, r3] @ movhi - add r3, r3, #158 str r6, [r4, #-1832] strh r6, [r4, r3] @ movhi - sub r3, r3, #122 + add r3, r3, #54 str r6, [r4, #-1824] strh r6, [r4, r3] @ movhi + add r3, r3, #158 + str r6, [r4, #-1820] + strh r6, [r4, r3] @ movhi + sub r3, r3, #122 + str r6, [r4, #-1836] + strh r6, [r4, r3] @ movhi movw r3, #3922 ldrh r1, [r5, r3] - str r6, [r4, #-1820] - str r6, [r4, #-1836] str r6, [r4, #-1796] str r6, [r4, #-1792] str r6, [r5, #4052] str r6, [r4, #-1784] str r6, [r4, #-1780] - str r6, [r4, #-996] + str r6, [r4, #-992] str r6, [r4, #-1184] - str r6, [r4, #-988] - str r6, [r4, #-1192] str r6, [r4, #-984] + str r6, [r4, #-1192] + str r6, [r4, #-980] bl __aeabi_idiv movw r3, #3848 ldrh r3, [r5, r3] @@ -6719,10 +6790,10 @@ FtlMemInit: mov r6, #3920 mov r3, r3, asl #2 cmp r0, r3 - str r0, [r4, #-976] + str r0, [r4, #-972] ldrh r0, [r5, r6] - strhi r3, [r4, #-976] - ldr r4, .L805 + strhi r3, [r4, #-972] + ldr r4, .L818 mov r0, r0, asl #1 bl ftl_malloc str r0, [r4, #-1152] @@ -6735,20 +6806,20 @@ FtlMemInit: str r0, [r4, #-1148] mov r0, r9 bl ftl_malloc - str r0, [r4, #-972] + str r0, [r4, #-968] mov r0, r6 bl ftl_malloc - str r0, [r4, #-968] + str r0, [r4, #-964] mov r0, r9 bl ftl_malloc - str r0, [r4, #-964] + str r0, [r4, #-960] mov r0, r6 bl ftl_malloc str r0, [r5, #4044] mov r0, r6 bl ftl_malloc str r0, [r4, #-1164] - ldr r0, [r4, #-976] + ldr r0, [r4, #-972] mul r0, r8, r0 bl ftl_malloc movw r8, #3926 @@ -6760,28 +6831,28 @@ FtlMemInit: str r0, [r5, #3972] mov r0, r6 bl ftl_malloc - str r0, [r4, #-960] - mov r0, r6 - bl ftl_malloc str r0, [r4, #-956] mov r0, r6 bl ftl_malloc str r0, [r4, #-952] + mov r0, r6 + bl ftl_malloc + str r0, [r4, #-948] ldr r0, [r4, #-1160] mul r0, r0, r6 bl ftl_malloc str r0, [r4, #-1172] - ldr r0, [r4, #-976] + ldr r0, [r4, #-972] mul r0, r0, r6 bl ftl_malloc - str r0, [r4, #-948] - mov r0, r6 - bl ftl_malloc str r0, [r4, #-944] mov r0, r6 bl ftl_malloc - movw r6, #3928 str r0, [r4, #-940] + mov r0, r6 + bl ftl_malloc + movw r6, #3928 + str r0, [r4, #-936] ldr r0, [r4, #-1160] mul r0, r7, r0 bl ftl_malloc @@ -6791,28 +6862,28 @@ FtlMemInit: str r0, [r4, #-1176] mov r0, sl bl ftl_malloc - str r0, [r4, #-936] + str r0, [r4, #-932] mov r0, sl, asl #3 bl ftl_malloc ldrh r3, [r5, r6] - ldr sl, .L805+20 - str r0, [r4, #-932] + ldr sl, .L818+20 + str r0, [r4, #-928] ldr r0, [r4, #-1160] mul r0, r0, r3 bl ftl_malloc ldrh r3, [r5, r6] movw r6, #3858 str r0, [r4, #-1168] - ldr r0, [r4, #-976] + ldr r0, [r4, #-972] mul r0, r0, r3 bl ftl_malloc - str r0, [r4, #-928] + str r0, [r4, #-924] ldrh r0, [r5, r6] mov r0, r0, asl #1 uxth r0, r0 strh r0, [r4, sl] @ movhi bl ftl_malloc - str r0, [r4, #-1004] + str r0, [r4, #-1000] ldrh r0, [r4, sl] add r0, r0, #544 add r0, r0, #3 @@ -6822,12 +6893,12 @@ FtlMemInit: bl ftl_malloc ldrh sl, [r5, r6] mov sl, sl, asl #1 - str r0, [r4, #-920] + str r0, [r4, #-916] add r0, r0, #32 str r0, [r5, #4048] mov r0, sl bl ftl_malloc - str r0, [r4, #-916] + str r0, [r4, #-912] mov r0, sl bl ftl_malloc ldr sl, [r5, #3944] @@ -6835,11 +6906,11 @@ FtlMemInit: str r0, [r4, #-2016] mov r0, sl bl ftl_malloc - str r0, [r4, #-1040] + str r0, [r4, #-1036] mov r0, sl bl ftl_malloc mov sl, #3936 - str r0, [r4, #-1096] + str r0, [r4, #-1092] ldrh r0, [r5, r6] mov r0, r0, lsr #3 add r0, r0, #4 @@ -6852,34 +6923,34 @@ FtlMemInit: ldrh r0, [r5, sl] mov r0, r0, asl #1 bl ftl_malloc - str r0, [r4, #-912] + str r0, [r4, #-908] ldrh r0, [r5, sl] add sl, sl, #2 mov r0, r0, asl #2 bl ftl_malloc - str r0, [r4, #-908] + str r0, [r4, #-904] ldrh r0, [r5, sl] mov r0, r0, asl #2 bl ftl_malloc ldrh r2, [r5, sl] mov r1, #0 mov r2, r2, asl #2 - str r0, [r4, #-904] + str r0, [r4, #-900] bl ftl_memset mov r3, #3952 ldrh sl, [r5, r3] mov sl, sl, asl #2 mov r0, sl bl ftl_malloc - str r0, [r4, #-1032] + str r0, [r4, #-1028] mov r0, sl bl ftl_malloc movw sl, #3954 - str r0, [r4, #-900] + str r0, [r4, #-896] ldr r0, [r5, #3944] mov r0, r0, asl #2 bl ftl_malloc - str r0, [r4, #-1036] + str r0, [r4, #-1032] ldrh r0, [r5, sl] mul r0, r7, r0 bl ftl_malloc @@ -6890,8 +6961,8 @@ FtlMemInit: mul r0, r0, r3 bl ftl_malloc ldrh r3, [r5, r6] - ldr r6, .L805+24 - str r0, [r4, #-1092] + ldr r6, .L818+24 + str r0, [r4, #-1088] mov r0, #6 mul r0, r0, r3 bl ftl_malloc @@ -6907,177 +6978,177 @@ FtlMemInit: bl ftl_malloc ldrh r1, [r4, r6] mov r3, #1 - ldr ip, .L805+12 + ldr ip, .L818+12 mov r1, r1, asl #2 mov r2, r1 str r0, [r5, #4008] ldrh r5, [r5, r7] - ldr r0, .L805+28 - b .L776 -.L777: + ldr r0, .L818+28 + b .L789 +.L790: ldr r4, [ip, #4008] add r3, r3, #1 add r4, r4, r2 add r2, r2, r1 str r4, [r0, #4]! -.L776: +.L789: cmp r3, r5 - bcc .L777 - ldr r0, .L805+32 + bcc .L790 + ldr r0, .L818+32 mov r2, #0 mov r1, r2 add r0, r0, r3, asl #2 - b .L778 -.L779: + b .L791 +.L792: add ip, r0, r2 add r3, r3, #1 add r2, r2, #4 str r1, [ip, #28] -.L778: +.L791: cmp r3, #7 - bls .L779 - ldr r3, .L805 - ldr r2, [r3, #-1040] - cmp r2, #0 - beq .L804 -.L780: - ldr r2, [r3, #-1096] - cmp r2, #0 - beq .L804 -.L782: - ldr r2, [r3, #-1032] - cmp r2, #0 - beq .L804 -.L783: + bls .L792 + ldr r3, .L818 ldr r2, [r3, #-1036] cmp r2, #0 - beq .L804 -.L784: - ldr r2, [r3, #-1852] - cmp r2, #0 - beq .L804 -.L785: + beq .L817 +.L793: ldr r2, [r3, #-1092] cmp r2, #0 - beq .L804 -.L786: + beq .L817 +.L795: + ldr r2, [r3, #-1028] + cmp r2, #0 + beq .L817 +.L796: + ldr r2, [r3, #-1032] + cmp r2, #0 + beq .L817 +.L797: + ldr r2, [r3, #-1852] + cmp r2, #0 + beq .L817 +.L798: + ldr r2, [r3, #-1088] + cmp r2, #0 + beq .L817 +.L799: ldr r2, [r3, #-2024] cmp r2, #0 - beq .L804 -.L787: - ldr r2, .L805+12 + beq .L817 +.L800: + ldr r2, .L818+12 ldr r2, [r2, #4008] cmp r2, #0 - beq .L804 -.L788: + beq .L817 +.L801: ldr r3, [r3, #-2016] cmp r3, #0 - beq .L804 -.L789: - ldr r3, .L805 + beq .L817 +.L802: + ldr r3, .L818 ldr r2, [r3, #-1152] cmp r2, #0 - beq .L804 + beq .L817 ldr r2, [r3, #-1148] cmp r2, #0 - beq .L804 -.L791: - ldr r2, [r3, #-972] - cmp r2, #0 - beq .L804 - ldr r2, [r3, #-964] - cmp r2, #0 - beq .L804 - ldr r2, .L805+12 - ldr r2, [r2, #4044] - cmp r2, #0 - beq .L804 - ldr r2, [r3, #-1164] - cmp r2, #0 - beq .L804 + beq .L817 +.L804: ldr r2, [r3, #-968] cmp r2, #0 - beq .L804 -.L793: + beq .L817 ldr r2, [r3, #-960] cmp r2, #0 - beq .L804 + beq .L817 + ldr r2, .L818+12 + ldr r2, [r2, #4044] + cmp r2, #0 + beq .L817 + ldr r2, [r3, #-1164] + cmp r2, #0 + beq .L817 + ldr r2, [r3, #-964] + cmp r2, #0 + beq .L817 +.L806: ldr r2, [r3, #-956] cmp r2, #0 - beq .L804 - ldr r3, [r3, #-952] + beq .L817 + ldr r2, [r3, #-952] + cmp r2, #0 + beq .L817 + ldr r3, [r3, #-948] cmp r3, #0 - beq .L804 - ldr r3, .L805 + beq .L817 + ldr r3, .L818 ldr r2, [r3, #-1172] cmp r2, #0 - beq .L804 - ldr r2, [r3, #-944] - cmp r2, #0 - beq .L804 + beq .L817 ldr r2, [r3, #-940] cmp r2, #0 - beq .L804 - ldr r2, [r3, #-1176] - cmp r2, #0 - beq .L804 -.L795: + beq .L817 ldr r2, [r3, #-936] cmp r2, #0 - beq .L804 + beq .L817 + ldr r2, [r3, #-1176] + cmp r2, #0 + beq .L817 +.L808: ldr r2, [r3, #-932] cmp r2, #0 - beq .L804 + beq .L817 + ldr r2, [r3, #-928] + cmp r2, #0 + beq .L817 ldr r2, [r3, #-1168] cmp r2, #0 - beq .L804 -.L797: - ldr r2, .L805+12 + beq .L817 +.L810: + ldr r2, .L818+12 ldr r1, [r2, #4048] cmp r1, #0 - beq .L804 - ldr r3, [r3, #-1004] + beq .L817 + ldr r3, [r3, #-1000] cmp r3, #0 - beq .L804 -.L799: + beq .L817 +.L812: ldr r3, [r2, #3964] cmp r3, #0 - beq .L804 -.L800: - ldr r3, .L805 - ldr r2, [r3, #-912] - cmp r2, #0 - beq .L804 -.L801: + beq .L817 +.L813: + ldr r3, .L818 ldr r2, [r3, #-908] cmp r2, #0 - beq .L804 -.L802: - ldr r3, [r3, #-904] + beq .L817 +.L814: + ldr r2, [r3, #-904] + cmp r2, #0 + beq .L817 +.L815: + ldr r3, [r3, #-900] cmp r3, #0 - bne .L803 -.L804: - ldr r0, .L805+36 - ldr r1, .L805+40 + bne .L816 +.L817: + ldr r0, .L818+36 + ldr r1, .L818+40 bl printk mvn r0, #0 ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, pc} -.L803: +.L816: mov r0, #0 ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, pc} -.L806: +.L819: .align 2 -.L805: +.L818: .word .LANCHOR2 - .word -1100 + .word -1096 .word -1142 .word .LANCHOR0 .word -1196 - .word -924 - .word -1028 + .word -920 + .word -1024 .word .LANCHOR0+4008 .word .LANCHOR0+3980 - .word .LC83 + .word .LC84 .word .LANCHOR3 .fnend .size FtlMemInit, .-FtlMemInit @@ -7094,7 +7165,7 @@ ftl_read_flash_info: mov r2, #11 mov r4, r0 bl ftl_memset - ldr r3, .L810 + ldr r3, .L823 ldr r2, [r3, #3624] ldr r1, [r3, #856] ldrb r2, [r2, #9] @ zero_extendqisi2 @@ -7125,22 +7196,22 @@ ftl_read_flash_info: strb r1, [r4, #10] strb r2, [r4, #9] mov r2, #1 - ldr r1, .L810+4 - b .L808 -.L809: + ldr r1, .L823+4 + b .L821 +.L822: ldrb r5, [r3, r1] @ zero_extendqisi2 add r3, r3, #1 ldrb ip, [r4, #10] @ zero_extendqisi2 orr ip, ip, r2, asl r5 strb ip, [r4, #10] -.L808: +.L821: uxtb ip, r3 cmp ip, r0 - bcc .L809 + bcc .L822 ldmfd sp!, {r3, r4, r5, pc} -.L811: +.L824: .align 2 -.L810: +.L823: .word .LANCHOR0 .word .LANCHOR0+3764 .fnend @@ -7152,50 +7223,50 @@ FlashDieInfoInit: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r1, .L824 + ldr r1, .L837 mov r2, #0 stmfd sp!, {r3, r4, r5, r6, r7, r8, sl, lr} .save {r3, r4, r5, r6, r7, r8, sl, lr} - ldr r3, .L824+4 - strb r2, [r1, #-896] - ldr r1, .L824+8 + ldr r3, .L837+4 + strb r2, [r1, #-892] + ldr r1, .L837+8 strb r2, [r3, #3762] - movw r2, #2902 + movw r2, #2998 ldrh r2, [r1, r2] cmp r2, #256 str r2, [r3, #856] movhi r2, #512 - bhi .L823 + bhi .L836 cmp r2, #128 - bls .L814 + bls .L827 mov r2, #256 -.L823: +.L836: str r2, [r3, #856] -.L814: +.L827: mov r1, #0 mov r2, #8 - ldr r0, .L824+12 + ldr r0, .L837+12 mov r6, #0 bl ftl_memset mov r1, #0 mov r2, #32 - ldr r0, .L824+16 + ldr r0, .L837+16 bl ftl_memset - ldr r0, .L824+20 + ldr r0, .L837+20 mov r1, #0 mov r2, #128 bl ftl_memset - ldr r7, .L824+24 - ldr r5, .L824+4 + ldr r7, .L837+24 + ldr r5, .L837+4 mov r8, r7 -.L816: +.L829: ldr r4, [r5, #3624] mov r1, r8 add r0, r4, #1 ldrb r2, [r4, #0] @ zero_extendqisi2 bl FlashMemCmp8 cmp r0, #0 - bne .L815 + bne .L828 ldrb r3, [r5, #3762] @ zero_extendqisi2 add r2, r5, r3, asl #2 str r0, [r2, #3588] @@ -7203,28 +7274,28 @@ FlashDieInfoInit: add r3, r3, #1 strb r3, [r5, #3762] strb r6, [r2, #3764] -.L815: +.L828: add r6, r6, #1 add r8, r8, #8 cmp r6, #4 - bne .L816 - ldr r5, .L824+4 - ldr r3, .L824 + bne .L829 + ldr r5, .L837+4 + ldr r3, .L837 ldrb r2, [r5, #3762] @ zero_extendqisi2 - strb r2, [r3, #-896] + strb r2, [r3, #-892] ldrb r3, [r4, #8] @ zero_extendqisi2 cmp r3, #2 - bne .L817 + bne .L830 add sl, r4, #1 mov r6, #0 mov r8, r5 -.L820: +.L833: mov r0, sl mov r1, r7 ldrb r2, [r4, #0] @ zero_extendqisi2 bl FlashMemCmp8 cmp r0, #0 - bne .L818 + bne .L831 ldrb r1, [r4, #13] @ zero_extendqisi2 ldr r0, [r5, #856] ldrb r3, [r5, #3762] @ zero_extendqisi2 @@ -7242,25 +7313,25 @@ FlashDieInfoInit: add r3, r3, #1 strb r3, [r8, #3762] strb r6, [r2, #3764] -.L818: +.L831: add r6, r6, #1 add r7, r7, #8 cmp r6, #4 - bne .L820 -.L817: - ldr r3, .L824+4 + bne .L833 +.L830: + ldr r3, .L837+4 ldrb r1, [r4, #13] @ zero_extendqisi2 - ldr r2, .L824 + ldr r2, .L837 ldrb r3, [r3, #3762] @ zero_extendqisi2 mul r1, r1, r3 ldrh r3, [r4, #14] mul r1, r3, r1 - ldr r3, .L824+28 + ldr r3, .L837+28 strh r1, [r2, r3] @ movhi ldmfd sp!, {r3, r4, r5, r6, r7, r8, sl, pc} -.L825: +.L838: .align 2 -.L824: +.L837: .word .LANCHOR2 .word .LANCHOR0 .word .LANCHOR1 @@ -7268,7 +7339,7 @@ FlashDieInfoInit: .word .LANCHOR0+3588 .word .LANCHOR0+3628 .word .LANCHOR0+2980 - .word -894 + .word -890 .fnend .size FlashDieInfoInit, .-FlashDieInfoInit .align 2 @@ -7282,85 +7353,85 @@ BuildFlashLsbPageTable: stmfd sp!, {r4, lr} .save {r4, lr} mov r4, r1 - bne .L827 - ldr r3, .L866 -.L828: + bne .L840 + ldr r3, .L879 +.L841: strh r0, [r3, #2]! @ movhi add r0, r0, #1 uxth r0, r0 cmp r0, #256 - bne .L828 - b .L829 -.L827: + bne .L841 + b .L842 +.L840: cmp r0, #1 - bne .L830 - ldr r0, .L866+4 + bne .L843 + ldr r0, .L879+4 mov r2, #0 mov r3, r2 -.L833: +.L846: uxth r1, r3 cmp r1, #3 - bls .L831 + bls .L844 tst r3, #1 moveq r1, #2 movne r1, #3 rsb r1, r1, r2 uxth r1, r1 -.L831: +.L844: add r3, r3, #1 strh r1, [r2, r0] @ movhi cmp r3, #256 add r2, r2, #2 - bne .L833 - b .L829 -.L830: + bne .L846 + b .L842 +.L843: cmp r0, #2 - bne .L834 + bne .L847 mov r3, #0 - ldr r0, .L866 + ldr r0, .L879 movw r2, #65535 mov r1, r3 - b .L865 -.L837: + b .L878 +.L850: cmp r3, #1 movls r1, r3 movhi r1, r2 -.L865: +.L878: add r3, r3, #1 add r2, r2, #2 strh r1, [r0, #2]! @ movhi uxth r3, r3 uxth r2, r2 cmp r3, #256 - bne .L837 - b .L829 -.L834: + bne .L850 + b .L842 +.L847: cmp r0, #3 - bne .L838 - ldr r0, .L866+4 + bne .L851 + ldr r0, .L879+4 mov r2, #0 mov r3, r2 -.L841: +.L854: uxth r1, r3 cmp r1, #5 - bls .L839 + bls .L852 tst r3, #1 moveq r1, #4 movne r1, #5 rsb r1, r1, r2 uxth r1, r1 -.L839: +.L852: add r3, r3, #1 strh r1, [r2, r0] @ movhi cmp r3, #256 add r2, r2, #2 - bne .L841 - b .L829 -.L838: + bne .L854 + b .L842 +.L851: cmp r0, #4 mov r2, #0 - bne .L842 - ldr r3, .L866+8 + bne .L855 + ldr r3, .L879+8 movw r1, #3076 strh r2, [r3, r1] @ movhi movw r2, #3078 @@ -7376,7 +7447,7 @@ BuildFlashLsbPageTable: mov r1, #5 strh r0, [r3, r2] @ movhi add r2, r2, #2 - ldr r0, .L866+12 + ldr r0, .L879+12 strh r1, [r3, r2] @ movhi mov r2, #3088 mov r1, #7 @@ -7386,7 +7457,7 @@ BuildFlashLsbPageTable: strh r1, [r3, r2] @ movhi mov r2, #16 mov r3, r1 -.L844: +.L857: tst r3, #1 add r3, r3, #1 moveq r1, #6 @@ -7396,78 +7467,78 @@ BuildFlashLsbPageTable: add r2, r2, #2 strh r1, [r0, #2]! @ movhi uxth r2, r2 - bne .L844 - b .L829 -.L842: + bne .L857 + b .L842 +.L855: cmp r0, #5 - bne .L845 - ldr r1, .L866 + bne .L858 + ldr r1, .L879 mov r3, r2 -.L846: +.L859: strh r3, [r1, #2]! @ movhi add r3, r3, #1 uxth r3, r3 cmp r3, #16 - bne .L846 - ldr r2, .L866+16 -.L847: + bne .L859 + ldr r2, .L879+16 +.L860: strh r3, [r2, #2]! @ movhi add r3, r3, #2 uxth r3, r3 cmp r3, #496 - bne .L847 - b .L829 -.L845: + bne .L860 + b .L842 +.L858: cmp r0, #6 - bne .L829 - ldr r0, .L866 + bne .L842 + ldr r0, .L879 mov r3, r2 -.L850: +.L863: uxth r1, r3 cmp r1, #5 - bls .L848 + bls .L861 tst r3, #1 moveq r1, #10 movne r1, #12 rsb r1, r1, r2 uxth r1, r1 -.L848: +.L861: add r3, r3, #1 add r2, r2, #3 cmp r3, #256 strh r1, [r0, #2]! @ movhi uxth r2, r2 - bne .L850 -.L829: + bne .L863 +.L842: mov r2, #1024 - ldr r0, .L866+20 + ldr r0, .L879+20 mov r1, #255 uxth r4, r4 bl ftl_memset - ldr r2, .L866 + ldr r2, .L879 mov r3, #0 - ldr r0, .L866+24 - b .L851 -.L852: + ldr r0, .L879+24 + b .L864 +.L865: ldrh r1, [r2, #2]! add r3, r3, #1 uxth r3, r3 add ip, r0, r1, asl #1 - sub ip, ip, #892 + sub ip, ip, #888 strh r1, [ip, #0] @ movhi -.L851: +.L864: cmp r3, r4 - bcc .L852 + bcc .L865 ldmfd sp!, {r4, pc} -.L867: +.L880: .align 2 -.L866: +.L879: .word .LANCHOR0+3074 .word .LANCHOR0+3076 .word .LANCHOR0 .word .LANCHOR0+3090 .word .LANCHOR0+3106 - .word .LANCHOR2-892 + .word .LANCHOR2-888 .word .LANCHOR2 .fnend .size BuildFlashLsbPageTable, .-BuildFlashLsbPageTable @@ -7493,15 +7564,15 @@ ftl_memcpy32: stmfd sp!, {r4, lr} .save {r4, lr} mov ip, r3 - b .L870 -.L871: + b .L883 +.L884: ldr r4, [r1, r3] add ip, ip, #1 str r4, [r0, r3] add r3, r3, #4 -.L870: +.L883: cmp ip, r2 - bne .L871 + bne .L884 ldmfd sp!, {r4, pc} .fnend .size ftl_memcpy32, .-ftl_memcpy32 @@ -7527,22 +7598,22 @@ js_hash: mov r2, #0 stmfd sp!, {r4, lr} .save {r4, lr} - ldr r0, .L876 - b .L874 -.L875: + ldr r0, .L889 + b .L887 +.L888: mov ip, r0, asl #5 ldrb r4, [r3, r2] @ zero_extendqisi2 add ip, ip, r0, lsr #2 add r2, r2, #1 add ip, ip, r4 eor r0, r0, ip -.L874: +.L887: cmp r2, r1 - bne .L875 + bne .L888 ldmfd sp!, {r4, pc} -.L877: +.L890: .align 2 -.L876: +.L889: .word 1204201446 .fnend .size js_hash, .-js_hash @@ -7554,12 +7625,12 @@ timer_get_time: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L879 + ldr r3, .L892 ldr r0, [r3, #0] b jiffies_to_msecs -.L880: +.L893: .align 2 -.L879: +.L892: .word jiffies .fnend .size timer_get_time, .-timer_get_time @@ -7573,19 +7644,19 @@ FlashSramLoadStore: stmfd sp!, {r4, lr} .save {r4, lr} cmp r2, #0 - ldr r4, .L884 + ldr r4, .L897 mov ip, r0 mov r2, r3 - ldr r4, [r4, #132] + ldr r4, [r4, #136] add r4, r4, #4096 add r1, r4, r1 movne r0, r1 movne r1, ip ldmfd sp!, {r4, lr} b memcpy -.L885: +.L898: .align 2 -.L884: +.L897: .word .LANCHOR2 .fnend .size FlashSramLoadStore, .-FlashSramLoadStore @@ -7630,12 +7701,12 @@ rk_ftl_get_capacity: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L890 + ldr r3, .L903 ldr r0, [r3, #3956] bx lr -.L891: +.L904: .align 2 -.L890: +.L903: .word .LANCHOR0 .fnend .size rk_ftl_get_capacity, .-rk_ftl_get_capacity @@ -7688,51 +7759,51 @@ rknand_print_hex: mov r7, r2 mov sl, r3 mov r4, r5 - b .L896 -.L902: + b .L909 +.L915: cmp r5, #0 - bne .L897 - ldr r0, .L904 + bne .L910 + ldr r0, .L917 mov r1, r8 mov r2, r6 mov r3, r4 bl printk -.L897: +.L910: cmp r7, #4 - ldreq r0, .L904+4 + ldreq r0, .L917+4 ldreq r1, [r6, r4, asl #2] - beq .L903 + beq .L916 cmp r7, #2 moveq r3, r4, asl #1 - ldreq r0, .L904+4 + ldreq r0, .L917+4 ldreqsh r1, [r6, r3] - ldrne r0, .L904+4 + ldrne r0, .L917+4 ldrneb r1, [r6, r4] @ zero_extendqisi2 -.L903: +.L916: add r5, r5, #1 bl printk cmp r5, #15 - bls .L901 - ldr r0, .L904+8 + bls .L914 + ldr r0, .L917+8 mov r5, #0 - ldr r1, .L904+12 + ldr r1, .L917+12 bl printk -.L901: +.L914: add r4, r4, #1 -.L896: +.L909: cmp r4, sl - bne .L902 - ldr r0, .L904+8 - ldr r1, .L904+12 + bne .L915 + ldr r0, .L917+8 + ldr r1, .L917+12 ldmfd sp!, {r3, r4, r5, r6, r7, r8, sl, lr} b printk -.L905: +.L918: .align 2 -.L904: - .word .LC84 +.L917: .word .LC85 - .word .LC78 .word .LC86 + .word .LC77 + .word .LC87 .fnend .size rknand_print_hex, .-rknand_print_hex .align 2 @@ -7744,15 +7815,15 @@ NandcXferComp: @ frame_needed = 0, uses_anonymous_args = 0 stmfd sp!, {r0, r1, r4, r5, r6, lr} .save {r0, r1, r4, r5, r6, lr} - ldr r6, .L929 + ldr r6, .L942 add r0, r6, r0, asl #3 ldr r3, [r6, #3788] ldr r4, [r0, #864] cmp r3, #3 - bls .L923 + bls .L936 ldr r3, [r4, #16] tst r3, #4 - beq .L923 + beq .L936 mov r0, r4 bl wait_for_nandc_xfer_completed ldr r5, [r4, #16] @@ -7760,49 +7831,49 @@ NandcXferComp: ands r5, r5, #2 str r3, [sp, #0] movne r5, #0 - bne .L927 - b .L928 -.L913: + bne .L940 + b .L941 +.L926: ldr r3, [r6, #3788] cmp r3, #5 - bls .L910 + bls .L923 ldr r3, [r4, #0] str r3, [sp, #4] ldr r3, [sp, #4] tst r3, #8192 - beq .L910 + beq .L923 ldr r3, [sp, #4] tst r3, #131072 - bne .L911 -.L910: + bne .L924 +.L923: add r5, r5, #1 bic r3, r5, #-16777216 cmp r3, #0 - bne .L927 + bne .L940 ldr r2, [r4, #28] mov r1, r5 ldr r3, [sp, #0] ubfx r2, r2, #16, #5 - ldr r0, .L929+4 + ldr r0, .L942+4 ubfx r3, r3, #22, #6 bl printk - ldr r0, .L929+8 + ldr r0, .L942+8 mov r1, r4 mov r2, #4 mov r3, #512 bl rknand_print_hex -.L927: +.L940: ldr r2, [r4, #28] ldr r3, [sp, #0] ubfx r2, r2, #16, #5 ubfx r3, r3, #22, #6 cmp r2, r3 - blt .L913 -.L911: - ldr r4, .L929 + blt .L926 +.L924: + ldr r4, .L942 ldr r3, [r4, #3820] cmp r3, #0 - beq .L914 + beq .L927 ldr r1, [sp, #0] mov r2, #0 ldr r0, [r4, #3812] @@ -7815,40 +7886,40 @@ NandcXferComp: ubfx r1, r1, #22, #5 mov r1, r1, asl #7 bl rknand_dma_unmap_single - b .L914 -.L917: + b .L927 +.L930: ldr r3, [r4, #8] add r5, r5, #1 str r3, [sp, #0] bic r3, r5, #-16777216 cmp r3, #0 - bne .L928 + bne .L941 ldr r2, [sp, #0] mov r1, r5 ldr r3, [r4, #28] - ldr r0, .L929+12 + ldr r0, .L942+12 ubfx r3, r3, #16, #5 bl printk - ldr r0, .L929+8 + ldr r0, .L942+8 mov r1, r4 mov r2, #4 mov r3, #512 bl rknand_print_hex -.L928: +.L941: ldr r3, [sp, #0] tst r3, #1048576 - beq .L917 - ldr r6, .L929 + beq .L930 + ldr r6, .L942 ldr r3, [r6, #3828] cmp r3, #0 - beq .L918 + beq .L931 mov r0, r4 bl NandcSendDumpDataStart -.L918: +.L931: ldr r3, [r6, #3820] - ldr r5, .L929 + ldr r5, .L942 cmp r3, #0 - beq .L919 + beq .L932 ldr r1, [sp, #0] mov r2, #1 ldr r0, [r5, #3812] @@ -7861,33 +7932,33 @@ NandcXferComp: ubfx r1, r1, #22, #5 mov r1, r1, asl #7 bl rknand_dma_unmap_single -.L919: - ldr r3, .L929 +.L932: + ldr r3, .L942 ldr r3, [r3, #3828] cmp r3, #0 - beq .L914 + beq .L927 mov r0, r4 bl NandcSendDumpDataDone -.L914: - ldr r3, .L929 +.L927: + ldr r3, .L942 mov r2, #0 str r2, [r3, #3820] - b .L906 -.L923: + b .L919 +.L936: ldr r3, [r4, #8] str r3, [sp, #0] ldr r3, [sp, #0] tst r3, #1048576 - beq .L923 -.L906: + beq .L936 +.L919: ldmfd sp!, {r2, r3, r4, r5, r6, pc} -.L930: +.L943: .align 2 -.L929: +.L942: .word .LANCHOR0 - .word .LC87 .word .LC88 .word .LC89 + .word .LC90 .fnend .size NandcXferComp, .-NandcXferComp .align 2 @@ -7901,7 +7972,7 @@ NandcXferData: .save {r4, r5, r6, r7, r8, r9, sl, fp, lr} mov r4, r3 mov r9, r3 - ldr r3, .L969 + ldr r3, .L982 .pad #92 sub sp, sp, #92 tst r4, #63 @@ -7911,15 +7982,15 @@ NandcXferData: mov sl, r2 ldr r5, [sp, #128] ldr r6, [r3, #864] - bne .L932 + bne .L945 cmp r5, #0 - bne .L933 + bne .L946 add r0, sp, #24 mov r1, #255 mov r2, #64 add r5, sp, #24 bl ftl_memset -.L933: +.L946: mov r0, r7 mov r1, fp mov r2, sl @@ -7930,8 +8001,8 @@ NandcXferData: bl NandcXferComp cmp fp, #0 movne r4, #0 - bne .L934 - ldr r1, .L969 + bne .L947 + ldr r1, .L982 mov r0, sl, lsr #1 mov r3, fp mov r2, fp @@ -7940,8 +8011,8 @@ NandcXferData: cmp ip, #24 movhi ip, #128 movls ip, #64 - b .L936 -.L937: + b .L949 +.L950: ldr r1, [r4, #3800] mov r3, r3, lsr #2 add r2, r2, #1 @@ -7955,29 +8026,29 @@ NandcXferData: strb r3, [r5, #3] add r5, r5, #4 mov r3, r7 -.L936: +.L949: cmp r2, r0 add r7, r3, ip - ldr r1, .L969 - bcc .L937 + ldr r1, .L982 + bcc .L950 mov r3, #0 ldr r0, [r1, #3832] mov sl, sl, lsr #2 ldr r1, [r1, #3788] mov r4, r3 - b .L938 -.L944: + b .L951 +.L957: add r2, r3, #8 ldr r2, [r6, r2, asl #2] str r2, [sp, #20] ldr r2, [sp, #20] tst r2, #4 - bne .L959 + bne .L972 ldr r2, [sp, #20] ands r2, r2, #32768 - bne .L959 + bne .L972 cmp r1, #5 - bls .L940 + bls .L953 ldr r7, [sp, #20] ldr ip, [sp, #20] ldr r5, [sp, #20] @@ -7996,10 +8067,10 @@ NandcXferData: ubfxls ip, ip, #16, #5 ubfxhi r2, r2, #27, #1 ubfxls r2, r2, #29, #1 - b .L967 -.L940: + b .L980 +.L953: cmp r1, #3 - bls .L942 + bls .L955 ldr r7, [sp, #20] ldr ip, [sp, #20] ldr r5, [sp, #20] @@ -8018,31 +8089,31 @@ NandcXferData: ubfxls ip, ip, #16, #5 ubfxhi r2, r2, #28, #1 ubfxls r2, r2, #30, #1 -.L967: +.L980: orr r2, ip, r2, asl #5 -.L942: +.L955: cmp r4, r2 movcc r4, r2 - b .L939 -.L959: + b .L952 +.L972: mvn r4, #0 -.L939: +.L952: add r3, r3, #1 -.L938: +.L951: cmp r3, sl - bcs .L934 + bcs .L947 cmp r0, #0 - bne .L944 -.L934: + bne .L957 +.L947: mov r3, #0 str r3, [r6, #16] - b .L945 -.L932: + b .L958 +.L945: cmp r1, #1 mov r8, #0 - bne .L965 - b .L946 -.L949: + bne .L978 + b .L959 +.L962: cmp r5, #0 and r4, r8, #3 mov r0, r6 @@ -8066,12 +8137,12 @@ NandcXferData: mov r0, r7 bl NandcXferComp add r9, r9, #1024 -.L946: +.L959: cmp r8, sl - bcc .L949 + bcc .L962 mov r4, #0 - b .L945 -.L965: + b .L958 +.L978: mov r1, r8 mov r2, #2 mov r3, r8 @@ -8083,15 +8154,15 @@ NandcXferData: mov ip, r8 mov fp, r6 mov r6, r5 - b .L968 -.L954: + b .L981 +.L967: mov r0, r7 bl NandcXferComp ldr r3, [fp, #32] add ip, r5, #2 cmp ip, sl str r3, [sp, #20] - bcs .L951 + bcs .L964 mov r3, #0 mov r0, r7 str r3, [sp, #0] @@ -8102,11 +8173,11 @@ NandcXferData: str ip, [sp, #8] bl NandcXferStart ldr ip, [sp, #8] -.L951: +.L964: ldr r3, [sp, #20] tst r3, #4 mvnne r4, #0 - bne .L952 + bne .L965 ldr r2, [sp, #20] ldr r3, [sp, #20] ubfx r2, r2, #3, #5 @@ -8114,7 +8185,7 @@ NandcXferData: orr r3, r2, r3, asl #5 cmp r4, r3 movcc r4, r3 -.L952: +.L965: cmp r6, #0 and r2, r8, #3 mov r0, fp @@ -8129,34 +8200,34 @@ NandcXferData: str r5, [sp, #0] bl NandcCopy1KB ldr ip, [sp, #8] -.L968: +.L981: cmp ip, sl mov r5, ip - bcc .L954 + bcc .L967 mov r6, fp ldr fp, [sp, #12] -.L945: - ldr r3, .L969 +.L958: + ldr r3, .L982 rsbs fp, fp, #1 movcc fp, #0 ldr r3, [r3, #3788] cmp r3, #5 movls fp, #0 cmp fp, #0 - beq .L955 + beq .L968 ldr r3, [r6, #0] and r2, r3, #139264 cmp r2, #139264 orreq r3, r3, #131072 streq r3, [r6, #0] mvneq r4, #0 -.L955: +.L968: mov r0, r4 add sp, sp, #92 ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} -.L970: +.L983: .align 2 -.L969: +.L982: .word .LANCHOR0 .fnend .size NandcXferData, .-NandcXferData @@ -8170,23 +8241,23 @@ FlashProgPage: stmfd sp!, {r0, r1, r4, r5, r6, r7, r8, lr} .save {r0, r1, r4, r5, r6, r7, r8, lr} mov r8, r3 - ldr r3, .L974 + ldr r3, .L987 subs r4, r0, #0 mov r5, r1 mov r6, r2 - ldrb r7, [r3, #2901] @ zero_extendqisi2 - bne .L972 - ldr r3, .L974+4 + ldrb r7, [r3, #2997] @ zero_extendqisi2 + bne .L985 + ldr r3, .L987+4 ldrb r2, [r3, #853] @ zero_extendqisi2 ldr r1, [r3, #856] mul r2, r1, r2 cmp r5, r2 - bcs .L972 + bcs .L985 ldrb r3, [r3, #852] @ zero_extendqisi2 cmp r3, #0 subeq r7, r7, #2 movne r7, #4 -.L972: +.L985: mov r0, r4 bl NandcWaitFlashReady mov r0, r4 @@ -8213,9 +8284,9 @@ FlashProgPage: bl NandcFlashDeCs and r0, r5, #1 ldmfd sp!, {r2, r3, r4, r5, r6, r7, r8, pc} -.L975: +.L988: .align 2 -.L974: +.L987: .word .LANCHOR1 .word .LANCHOR0 .fnend @@ -8230,59 +8301,59 @@ FlashPageProgMsbFFData: stmfd sp!, {r3, r4, r5, r6, r7, r8, sl, lr} .save {r3, r4, r5, r6, r7, r8, sl, lr} mov r4, r2 - ldr r2, .L983 + ldr r2, .L996 mov r7, r1 mov r8, r0 ldrb r1, [r2, #928] @ zero_extendqisi2 ldr r3, [r2, #3624] cmp r1, #0 ldrb r3, [r3, #19] @ zero_extendqisi2 - beq .L977 + beq .L990 ldr r1, [r2, #3776] - ldr r2, .L983+4 + ldr r2, .L996+4 cmp r1, r2 ldmeqfd sp!, {r3, r4, r5, r6, r7, r8, sl, pc} -.L977: +.L990: sub r2, r3, #5 uxtb r2, r2 cmp r3, #68 cmpne r2, #2 - bls .L980 + bls .L993 cmp r3, #35 cmpne r3, #19 - beq .L980 + beq .L993 ldmfd sp!, {r3, r4, r5, r6, r7, r8, sl, pc} -.L981: +.L994: add r3, r5, r4, asl #1 - sub r3, r3, #892 + sub r3, r3, #888 ldrh r3, [r3, #0] cmp r3, sl ldmnefd sp!, {r3, r4, r5, r6, r7, r8, sl, pc} mov r1, #255 mov r2, #32768 - ldr r0, [r5, #136] + ldr r0, [r5, #140] bl ftl_memset add r1, r4, r7 add r4, r4, #1 mov r0, r8 - ldr r2, [r5, #136] + ldr r2, [r5, #140] mov r3, #0 bl FlashProgPage uxth r4, r4 - b .L982 -.L980: - ldr r6, .L983 + b .L995 +.L993: + ldr r6, .L996 movw sl, #65535 - ldr r5, .L983+8 -.L982: + ldr r5, .L996+8 +.L995: ldr r3, [r6, #3624] ldrh r3, [r3, #10] cmp r3, r4 - bhi .L981 + bhi .L994 ldmfd sp!, {r3, r4, r5, r6, r7, r8, sl, pc} -.L984: +.L997: .align 2 -.L983: +.L996: .word .LANCHOR0 .word 1446522928 .word .LANCHOR2 @@ -8298,19 +8369,19 @@ FlashReadRawPage: stmfd sp!, {r0, r1, r4, r5, r6, r7, r8, lr} .save {r0, r1, r4, r5, r6, r7, r8, lr} mov r8, r3 - ldr r3, .L988 + ldr r3, .L1001 subs r4, r0, #0 mov r6, r1 mov r5, r2 - ldrb r7, [r3, #2901] @ zero_extendqisi2 - bne .L986 - ldr r3, .L988+4 + ldrb r7, [r3, #2997] @ zero_extendqisi2 + bne .L999 + ldr r3, .L1001+4 ldrb r2, [r3, #853] @ zero_extendqisi2 ldr r3, [r3, #856] mul r3, r3, r2 cmp r1, r3 movcc r7, #4 -.L986: +.L999: mov r0, r4 bl NandcWaitFlashReady mov r0, r4 @@ -8331,9 +8402,9 @@ FlashReadRawPage: bl NandcFlashDeCs mov r0, r5 ldmfd sp!, {r2, r3, r4, r5, r6, r7, r8, pc} -.L989: +.L1002: .align 2 -.L988: +.L1001: .word .LANCHOR1 .word .LANCHOR0 .fnend @@ -8348,9 +8419,9 @@ HynixReadRetrial: stmfd sp!, {r0, r1, r2, r4, r5, r6, r7, r8, r9, sl, fp, lr} .save {r0, r1, r2, r4, r5, r6, r7, r8, r9, sl, fp, lr} mov r7, r3 - ldr r3, .L1004 + ldr r3, .L1017 mov sl, r2 - ldr fp, .L1004 + ldr fp, .L1017 mov r6, r0 add r2, r3, r0 str r1, [sp, #4] @@ -8364,12 +8435,12 @@ HynixReadRetrial: ldreqb r4, [r2, #20] @ zero_extendqisi2 bl NandcWaitFlashReady mov ip, fp - b .L992 -.L997: + b .L1005 +.L1010: add r4, r4, #1 ldrb r1, [fp, #1] @ zero_extendqisi2 mov r0, r6 - ldr r2, .L1004+4 + ldr r2, .L1017+4 uxtb r4, r4 str ip, [sp, #0] cmp r4, r9 @@ -8383,25 +8454,25 @@ HynixReadRetrial: bl FlashReadRawPage ldr ip, [sp, #0] cmn r0, #1 - beq .L994 + beq .L1007 ldrb r3, [ip, #3836] @ zero_extendqisi2 cmn r5, #1 moveq r5, r0 add r3, r3, r3, asl #1 cmp r0, r3, lsr #2 - bcc .L1003 + bcc .L1016 mov r7, #0 mov sl, r7 -.L994: +.L1007: add r8, r8, #1 -.L992: +.L1005: cmp r8, r9 - bcc .L997 - b .L996 -.L1003: + bcc .L1010 + b .L1009 +.L1016: mov r5, r0 -.L996: - ldr r3, .L1004 +.L1009: + ldr r3, .L1017 add r6, r3, r6 ldr r2, [r3, #3624] ldrb r3, [r3, #3836] @ zero_extendqisi2 @@ -8419,9 +8490,9 @@ HynixReadRetrial: moveq r0, r5 movne r0, #256 ldmfd sp!, {r1, r2, r3, r4, r5, r6, r7, r8, r9, sl, fp, pc} -.L1005: +.L1018: .align 2 -.L1004: +.L1017: .word .LANCHOR0 .word .LANCHOR0+4 .fnend @@ -8436,7 +8507,7 @@ MicronReadRetrial: stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} .save {r4, r5, r6, r7, r8, r9, sl, fp, lr} mov sl, r3 - ldr r3, .L1024 + ldr r3, .L1037 mov r9, r0 .pad #36 sub sp, sp, #36 @@ -8447,21 +8518,21 @@ MicronReadRetrial: str r2, [sp, #20] addeq r0, r0, r0, asl #1 ubfxeq r0, r0, #2, #8 - beq .L1023 + beq .L1036 mov r1, #3 bl __aeabi_idiv uxtb r0, r0 -.L1023: -.L1008: +.L1036: +.L1021: mov r2, #0 - ldr r3, .L1024 + ldr r3, .L1037 mvn r4, #0 mov r6, r2 add r3, r3, r9, asl #3 str r0, [sp, #16] str r2, [sp, #12] str r3, [sp, #28] -.L1018: +.L1031: mov r0, r9 mov fp, #0 bl NandcWaitFlashReady @@ -8470,8 +8541,8 @@ MicronReadRetrial: ldr r8, [r2, #864] add r7, r7, #8 add r5, r8, r7, asl #8 - b .L1009 -.L1013: + b .L1022 +.L1026: mov r3, #239 mov r0, #200 str r3, [r5, #8] @@ -8491,27 +8562,27 @@ MicronReadRetrial: bl FlashReadRawPage ldr ip, [sp, #8] cmn r0, #1 - beq .L1010 + beq .L1023 cmn r4, #1 ldr r2, [sp, #16] moveq r4, r0 cmp r0, r2 - bcc .L1020 + bcc .L1033 mov sl, #0 str sl, [sp, #20] -.L1010: +.L1023: mov fp, ip -.L1009: - ldr r2, .L1024+4 - ldrb r3, [r2, #140] @ zero_extendqisi2 +.L1022: + ldr r2, .L1037+4 + ldrb r3, [r2, #144] @ zero_extendqisi2 cmp fp, r3 - bcc .L1013 - b .L1012 -.L1020: + bcc .L1026 + b .L1025 +.L1033: mov r4, r0 mov sl, #0 str sl, [sp, #20] -.L1012: +.L1025: mov r3, #239 mov r0, #200 str r3, [r5, #8] @@ -8535,49 +8606,49 @@ MicronReadRetrial: moveq r5, #1 cmn r4, #1 cmpne r4, #256 - bne .L1015 + bne .L1028 mov r3, fp - ldr r0, .L1024+8 + ldr r0, .L1037+8 mov r1, fp ldr r2, [sp, #24] str r4, [sp, #0] bl printk ldr r3, [sp, #12] cmp r3, #0 - bne .L1016 - ldr r2, .L1024 + bne .L1029 + ldr r2, .L1037 ldrb r3, [r2, #928] @ zero_extendqisi2 cmp r3, #0 moveq r5, #0 andne r5, r5, #1 cmp r5, #0 - beq .L1017 + beq .L1030 mov r0, r9 mov r1, #3 bl micron_auto_read_calibration_config mov r3, #1 str r3, [sp, #12] - b .L1018 -.L1015: + b .L1031 +.L1028: ldr r2, [sp, #12] cmp r2, #0 - beq .L1017 -.L1016: + beq .L1030 +.L1029: mov r0, r9 mov r1, #0 bl micron_auto_read_calibration_config cmn r4, #1 movne r4, #256 -.L1017: +.L1030: mov r0, r4 add sp, sp, #36 ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} -.L1025: +.L1038: .align 2 -.L1024: +.L1037: .word .LANCHOR0 .word .LANCHOR2 - .word .LC90 + .word .LC91 .fnend .size MicronReadRetrial, .-MicronReadRetrial .align 2 @@ -8594,17 +8665,17 @@ SamsungReadRetrial: mov r6, r3 mov r9, r1 bl NandcWaitFlashReady - ldr ip, .L1035 + ldr ip, .L1048 mov r5, #1 mvn r4, #0 - ldr fp, .L1035+4 + ldr fp, .L1048+4 add r3, ip, r8, asl #3 ldrb sl, [r3, #868] @ zero_extendqisi2 ldr r2, [r3, #864] add sl, sl, #8 add sl, r2, sl, asl #8 - b .L1027 -.L1031: + b .L1040 +.L1044: mov r0, sl uxtb r1, r5 str ip, [sp, #4] @@ -8616,30 +8687,30 @@ SamsungReadRetrial: bl FlashReadRawPage ldr ip, [sp, #4] cmn r0, #1 - beq .L1028 + beq .L1041 ldrb r3, [ip, #3836] @ zero_extendqisi2 cmn r4, #1 moveq r4, r0 add r3, r3, r3, asl #1 cmp r0, r3, lsr #2 - bcc .L1034 + bcc .L1047 mov r6, #0 mov r7, r6 -.L1028: +.L1041: add r5, r5, #1 -.L1027: - ldrb r3, [fp, #140] @ zero_extendqisi2 +.L1040: + ldrb r3, [fp, #144] @ zero_extendqisi2 add r3, r3, #1 cmp r5, r3 - bcc .L1031 - b .L1030 -.L1034: + bcc .L1044 + b .L1043 +.L1047: mov r4, r0 -.L1030: +.L1043: mov r0, sl mov r1, #0 bl SamsungSetRRPara - ldr r3, .L1035 + ldr r3, .L1048 adds r0, r4, #1 ldrb r3, [r3, #3836] @ zero_extendqisi2 movne r0, #1 @@ -8651,9 +8722,9 @@ SamsungReadRetrial: moveq r0, r4 movne r0, #256 ldmfd sp!, {r1, r2, r3, r4, r5, r6, r7, r8, r9, sl, fp, pc} -.L1036: +.L1049: .align 2 -.L1035: +.L1048: .word .LANCHOR0 .word .LANCHOR2 .fnend @@ -8672,7 +8743,7 @@ ToshibaReadRetrial: mov r9, r2 mov r7, r3 bl NandcWaitFlashReady - ldr r3, .L1058 + ldr r3, .L1071 add r2, r3, r8, asl #3 ldr r1, [r2, #864] ldrb r4, [r2, #868] @ zero_extendqisi2 @@ -8683,53 +8754,53 @@ ToshibaReadRetrial: uxtb r2, r2 cmp r2, #1 movls sl, #0 - bls .L1038 + bls .L1051 ldrb sl, [r3, #3780] @ zero_extendqisi2 cmp sl, #0 - beq .L1039 + beq .L1052 mov r0, #0 mov sl, #1 bl NandcSetDdrMode -.L1039: +.L1052: mov r3, #92 str r3, [r4, #8] mov r3, #197 str r3, [r4, #8] -.L1038: +.L1051: mov r6, #1 mvn r5, #0 - ldr fp, .L1058 - b .L1040 -.L1049: + ldr fp, .L1071 + b .L1053 +.L1062: ldrb r3, [fp, #3761] @ zero_extendqisi2 mov r0, r4 uxtb r1, r6 sub r3, r3, #67 uxtb r3, r3 cmp r3, #1 - bhi .L1041 + bhi .L1054 bl SandiskSetRRPara - b .L1042 -.L1041: + b .L1055 +.L1054: bl ToshibaSetRRPara -.L1042: - ldr r2, .L1058 +.L1055: + ldr r2, .L1071 ldrb r3, [r2, #3761] @ zero_extendqisi2 cmp r3, #34 - bne .L1043 - ldr r2, .L1058+4 - ldrb r3, [r2, #140] @ zero_extendqisi2 + bne .L1056 + ldr r2, .L1071+4 + ldrb r3, [r2, #144] @ zero_extendqisi2 sub r3, r3, #3 cmp r6, r3 moveq r3, #179 streq r3, [r4, #8] -.L1043: +.L1056: cmp sl, #0 mov r3, #38 str r3, [r4, #8] mov r3, #93 str r3, [r4, #8] - beq .L1044 + beq .L1057 mov r0, #4 bl NandcSetDdrMode ldr r1, [sp, #4] @@ -8742,50 +8813,50 @@ ToshibaReadRetrial: str r3, [sp, #0] bl NandcSetDdrMode ldr r3, [sp, #0] - b .L1045 -.L1044: + b .L1058 +.L1057: mov r3, r7 mov r0, r8 ldr r1, [sp, #4] mov r2, r9 bl FlashReadRawPage mov r3, r0 -.L1045: +.L1058: cmn r3, #1 - beq .L1046 + beq .L1059 ldrb r2, [fp, #3836] @ zero_extendqisi2 cmn r5, #1 moveq r5, r3 add r2, r2, r2, asl #1 cmp r3, r2, lsr #2 - bcc .L1057 + bcc .L1070 mov r7, #0 mov r9, r7 -.L1046: +.L1059: add r6, r6, #1 -.L1040: - ldr r2, .L1058+4 - ldrb r3, [r2, #140] @ zero_extendqisi2 +.L1053: + ldr r2, .L1071+4 + ldrb r3, [r2, #144] @ zero_extendqisi2 add r3, r3, #1 cmp r6, r3 - bcc .L1049 - b .L1048 -.L1057: + bcc .L1062 + b .L1061 +.L1070: mov r5, r3 -.L1048: - ldr r6, .L1058 +.L1061: + ldr r6, .L1071 mov r0, r4 mov r1, #0 ldrb r3, [r6, #3761] @ zero_extendqisi2 sub r3, r3, #67 uxtb r3, r3 cmp r3, #1 - bhi .L1050 + bhi .L1063 bl SandiskSetRRPara - b .L1051 -.L1050: + b .L1064 +.L1063: bl ToshibaSetRRPara -.L1051: +.L1064: mov r3, #255 str r3, [r4, #8] ldrb r3, [r6, #3836] @ zero_extendqisi2 @@ -8800,15 +8871,15 @@ ToshibaReadRetrial: movne r5, #256 bl NandcWaitFlashReady cmp sl, #0 - beq .L1053 + beq .L1066 mov r0, #4 bl NandcSetDdrMode -.L1053: +.L1066: mov r0, r5 ldmfd sp!, {r1, r2, r3, r4, r5, r6, r7, r8, r9, sl, fp, pc} -.L1059: +.L1072: .align 2 -.L1058: +.L1071: .word .LANCHOR0 .word .LANCHOR2 .fnend @@ -8823,22 +8894,22 @@ FlashSavePhyInfo: stmfd sp!, {r3, r4, r5, r6, r7, r8, sl, lr} .save {r3, r4, r5, r6, r7, r8, sl, lr} mov r6, #0 - ldr r5, .L1067 - ldr r7, .L1067+4 - ldr r8, .L1067+8 - ldr r3, [r5, #148] - ldrb r0, [r5, #152] @ zero_extendqisi2 - str r3, [r5, #144] + ldr r5, .L1080 + ldr r7, .L1080+4 + ldr r8, .L1080+8 + ldr r3, [r5, #152] + ldrb r0, [r5, #156] @ zero_extendqisi2 + str r3, [r5, #148] bl FlashBchSel mov r1, #0 mov r2, #2048 - ldr r0, [r5, #148] + ldr r0, [r5, #152] bl ftl_memset - ldr r3, [r5, #144] - ldr r1, .L1067+12 + ldr r3, [r5, #148] + ldr r1, .L1080+12 mov r2, #32 str r8, [r3, #0] - ldr r4, [r5, #144] + ldr r4, [r5, #148] ldrb r3, [r7, #3762] @ zero_extendqisi2 add r0, r4, #16 strh r3, [r4, #12] @ movhi @@ -8848,19 +8919,19 @@ FlashSavePhyInfo: str r3, [r4, #1076] bl memcpy add r0, r4, #80 - ldr r1, .L1067+16 + ldr r1, .L1080+16 mov r2, #8 bl memcpy add r0, r4, #96 - ldr r1, .L1067+20 + ldr r1, .L1080+20 mov r2, #32 bl memcpy - ldr r0, [r5, #144] - ldr r1, .L1067+24 + ldr r0, [r5, #148] + ldr r1, .L1080+24 mov r2, #32 add r0, r0, #160 bl memcpy - ldr r4, [r5, #144] + ldr r4, [r5, #148] add r1, r7, #896 mov r2, #32 add r0, r4, #192 @@ -8874,13 +8945,13 @@ FlashSavePhyInfo: bl JSHash movw r3, #1592 str r3, [r4, #4] - ldr r3, [r5, #136] - str r3, [r5, #144] + ldr r3, [r5, #140] + str r3, [r5, #148] str r0, [r4, #8] mov r0, #0 bl flash_enter_slc_mode mov r4, r6 -.L1063: +.L1076: ldr r1, [r7, #856] mov r0, #0 mov r2, r0 @@ -8888,64 +8959,64 @@ FlashSavePhyInfo: bl FlashEraseBlock ldr r1, [r7, #856] mov r0, #0 - ldr r2, [r5, #148] + ldr r2, [r5, #152] mov r3, r0 mul r1, r1, r4 bl FlashProgPage ldr r1, [r7, #856] mov r0, #0 - ldr r2, [r5, #148] + ldr r2, [r5, #152] mov r3, r0 mul r1, r1, r4 add r1, r1, #1 bl FlashProgPage ldr r1, [r7, #856] mov r0, #0 - ldr r2, [r5, #136] + ldr r2, [r5, #140] mov r3, r0 mul r1, r1, r4 bl FlashReadRawPage cmn r0, #1 - beq .L1061 - ldr sl, [r5, #144] + beq .L1074 + ldr sl, [r5, #148] ldr r3, [sl, #0] cmp r3, r8 - bne .L1061 + bne .L1074 add r0, sl, #12 movw r1, #2036 bl JSHash ldr r3, [sl, #8] cmp r3, r0 - bne .L1061 + bne .L1074 add r3, r4, #1 - str r3, [r5, #156] + str r3, [r5, #160] ldr r3, [r7, #856] add r6, r6, #1 cmp r6, #1 mul r3, r3, r4 - str r3, [r5, #160] - bhi .L1062 -.L1061: + str r3, [r5, #164] + bhi .L1075 +.L1074: add r4, r4, #1 cmp r4, #4 - bne .L1063 -.L1062: + bne .L1076 +.L1075: mov r0, #0 bl flash_exit_slc_mode cmp r6, #0 mvneq r0, #0 movne r0, #0 ldmfd sp!, {r3, r4, r5, r6, r7, r8, sl, pc} -.L1068: +.L1081: .align 2 -.L1067: +.L1080: .word .LANCHOR2 .word .LANCHOR0 .word 1312902724 .word .LANCHOR0+2980 .word .LANCHOR0+3764 .word .LANCHOR0+3588 - .word .LANCHOR1+2892 + .word .LANCHOR1+2988 .fnend .size FlashSavePhyInfo, .-FlashSavePhyInfo .align 2 @@ -8961,104 +9032,104 @@ FlashReadIdbDataRaw: sub sp, sp, #20 mov r2, #4 mov sl, r0 - ldr r1, .L1080 + ldr r1, .L1093 add r0, sp, #12 bl memcpy - ldr r3, .L1080+4 + ldr r3, .L1093+4 ldrb r2, [r3, #3836] @ zero_extendqisi2 str r2, [sp, #4] ldr r2, [r3, #3776] - ldr r3, .L1080+8 + ldr r3, .L1093+8 cmp r2, r3 - bne .L1070 + bne .L1083 mov r0, #0 bl flash_enter_slc_mode -.L1070: - ldr r7, .L1080+4 +.L1083: + ldr r7, .L1093+4 mov r0, sl mov r1, #0 mov r2, #2048 bl ftl_memset mvn r8, #0 mov r4, #2 - ldr r9, .L1080+12 + ldr r9, .L1093+12 mov fp, r7 - b .L1071 -.L1078: + b .L1084 +.L1091: mov r6, #0 -.L1073: +.L1086: add r3, sp, #12 - ldr r5, .L1080+12 + ldr r5, .L1093+12 ldrb r0, [r3, r6] @ zero_extendqisi2 bl FlashBchSel ldr r1, [r7, #856] mov r0, #0 - ldr r2, [r9, #148] + ldr r2, [r9, #152] mov r3, r0 mul r1, r1, r4 bl FlashReadRawPage cmn r0, #1 - bne .L1072 + bne .L1085 add r6, r6, #1 cmp r6, #4 - bne .L1073 - b .L1074 -.L1072: - ldr r3, [r5, #148] + bne .L1086 + b .L1087 +.L1085: + ldr r3, [r5, #152] ldr r2, [r3, #0] - ldr r3, .L1080+16 + ldr r3, .L1093+16 cmp r2, r3 - bne .L1074 + bne .L1087 add r3, sp, #16 - ldr r0, .L1080+20 + ldr r0, .L1093+20 add r6, r3, r6 ldrb r1, [r6, #-4] @ zero_extendqisi2 bl printk mov r0, sl - ldr r1, [r5, #148] + ldr r1, [r5, #152] mov r2, #2048 bl memcpy - ldr r3, [r5, #148] + ldr r3, [r5, #152] ldr r3, [r3, #512] strb r3, [fp, #853] - ldr r3, [r5, #156] + ldr r3, [r5, #160] cmp r3, r4 - bls .L1077 - str r4, [r5, #156] + bls .L1090 + str r4, [r5, #160] bl FlashSavePhyInfo mov r8, #0 -.L1074: +.L1087: add r4, r4, #1 -.L1071: +.L1084: ldrb r3, [r7, #853] @ zero_extendqisi2 cmp r4, r3 - bcc .L1078 - b .L1075 -.L1077: + bcc .L1091 + b .L1088 +.L1090: mov r8, #0 -.L1075: +.L1088: ldr r0, [sp, #4] bl FlashBchSel - ldr r3, .L1080+4 + ldr r3, .L1093+4 ldr r2, [r3, #3776] - ldr r3, .L1080+8 + ldr r3, .L1093+8 cmp r2, r3 - bne .L1076 + bne .L1089 mov r0, #0 bl flash_exit_slc_mode -.L1076: +.L1089: mov r0, r8 add sp, sp, #20 ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} -.L1081: +.L1094: .align 2 -.L1080: +.L1093: .word .LANCHOR3+11 .word .LANCHOR0 .word 1446522928 .word .LANCHOR2 .word -52655045 - .word .LC91 + .word .LC92 .fnend .size FlashReadIdbDataRaw, .-FlashReadIdbDataRaw .align 2 @@ -9071,73 +9142,73 @@ FlashLoadPhyInfo: stmfd sp!, {r0, r1, r2, r4, r5, r6, r7, r8, r9, sl, fp, lr} .save {r0, r1, r2, r4, r5, r6, r7, r8, r9, sl, fp, lr} mov r2, #4 - ldr r1, .L1093 + ldr r1, .L1106 add r0, sp, #4 bl memcpy - ldr r5, .L1093+4 - ldr r2, .L1093+8 - movw r3, #2902 + ldr r5, .L1106+4 + ldr r2, .L1106+8 + movw r3, #2998 mov r4, #0 mov r8, #4 mov r0, r4 - str r4, [r5, #160] + str r4, [r5, #164] ldrh r9, [r2, r3] mvn r6, #0 - ldr r3, [r5, #148] - ldr fp, .L1093+12 - str r3, [r5, #144] + ldr r3, [r5, #152] + ldr fp, .L1106+12 + str r3, [r5, #148] bl flash_enter_slc_mode - b .L1083 -.L1085: + b .L1096 +.L1098: add r3, sp, #4 ldrb r0, [r3, r7] @ zero_extendqisi2 bl FlashBchSel mov r0, #0 mov r1, r4 - ldr r2, [r5, #148] + ldr r2, [r5, #152] mov r3, r0 bl FlashReadRawPage cmn r0, #1 - bne .L1084 + bne .L1097 mov r0, #0 mov r1, sl - ldr r2, [r5, #148] + ldr r2, [r5, #152] mov r3, r0 bl FlashReadRawPage cmn r0, #1 - bne .L1084 + bne .L1097 add r7, r7, #1 cmp r7, #4 - beq .L1086 - b .L1085 -.L1084: - ldr r7, [r5, #144] + beq .L1099 + b .L1098 +.L1097: + ldr r7, [r5, #148] ldr r3, [r7, #0] cmp r3, fp - bne .L1086 + bne .L1099 cmp r6, #0 - bne .L1087 - ldr r2, .L1093+8 - movw r3, #2902 + bne .L1100 + ldr r2, .L1106+8 + movw r3, #2998 mov r0, r4 ldrh r1, [r2, r3] bl __aeabi_uidiv - ldr r3, .L1093+4 + ldr r3, .L1106+4 add r0, r0, #1 - str r0, [r3, #156] + str r0, [r3, #160] mov r0, r6 - b .L1092 -.L1087: + b .L1105 +.L1100: add r0, r7, #12 movw r1, #2036 bl JSHash ldr r3, [r7, #8] cmp r3, r0 - bne .L1086 - ldr r6, .L1093+16 + bne .L1099 + ldr r6, .L1106+16 add r1, r7, #160 mov r2, #32 - ldr r0, .L1093+20 + ldr r0, .L1106+20 bl memcpy add r0, r6, #896 add r1, r7, #192 @@ -9148,44 +9219,44 @@ FlashLoadPhyInfo: mov r2, #852 bl memcpy ldr r3, [r7, #1076] - ldr r2, .L1093+8 + ldr r2, .L1106+8 mov r0, r4 - str r4, [r5, #160] + str r4, [r5, #164] strb r3, [r6, #3780] - movw r3, #2902 + movw r3, #2998 ldrh r1, [r2, r3] mov r6, #0 bl __aeabi_uidiv add r0, r0, #1 - str r0, [r5, #156] + str r0, [r5, #160] cmp r0, #1 moveq r3, #2 - streq r3, [r5, #156] + streq r3, [r5, #160] ldrh r3, [r7, #14] - strb r3, [r5, #164] -.L1086: + strb r3, [r5, #168] +.L1099: subs r8, r8, #1 add r4, r4, r9 - beq .L1090 -.L1083: + beq .L1103 +.L1096: add sl, r4, #1 mov r7, #0 - b .L1085 -.L1090: + b .L1098 +.L1103: mov r0, r8 -.L1092: +.L1105: bl flash_exit_slc_mode mov r0, r6 ldmfd sp!, {r1, r2, r3, r4, r5, r6, r7, r8, r9, sl, fp, pc} -.L1094: +.L1107: .align 2 -.L1093: +.L1106: .word .LANCHOR3+11 .word .LANCHOR2 .word .LANCHOR1 .word 1312902724 .word .LANCHOR0 - .word .LANCHOR1+2892 + .word .LANCHOR1+2988 .fnend .size FlashLoadPhyInfo, .-FlashLoadPhyInfo .align 2 @@ -9198,7 +9269,7 @@ FlashDdrTunningRead: stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} .save {r4, r5, r6, r7, r8, r9, sl, fp, lr} mov sl, r3 - ldr r4, .L1116 + ldr r4, .L1129 .pad #20 sub sp, sp, #20 mov fp, r0 @@ -9214,7 +9285,7 @@ FlashDdrTunningRead: ldr r3, [sp, #56] cmp r3, #0 moveq r8, #1024 - beq .L1097 + beq .L1110 mov r0, #1 bl FlashSetInterfaceMode mov r0, #1 @@ -9232,37 +9303,37 @@ FlashDdrTunningRead: ldrb r0, [r4, #3772] @ zero_extendqisi2 bl NandcSetMode cmn r8, #1 - beq .L1098 - ldr r0, .L1116+4 + beq .L1111 + ldr r0, .L1129+4 mov r2, r8 ldr r1, [sp, #0] bl printk cmp r8, #9 - bhi .L1099 + bhi .L1112 add r4, r4, fp, asl #3 ldr r3, [r4, #864] ldr r2, [r3, #3840] ldr r2, [r3, #0] orr r2, r2, #131072 str r2, [r3, #0] -.L1099: - ldr r3, .L1116+8 - ldr r2, [r3, #168] +.L1112: + ldr r3, .L1129+8 + ldr r2, [r3, #172] add r2, r2, #1 - str r2, [r3, #168] + str r2, [r3, #172] cmp r2, #2048 movcs sl, #0 - strcs sl, [r3, #168] + strcs sl, [r3, #172] movcs r9, sl - bcc .L1098 -.L1097: + bcc .L1111 +.L1110: mov r4, #0 str fp, [sp, #4] mov r5, r4 mvn r6, #0 mov fp, r4 str r4, [sp, #8] -.L1104: +.L1117: uxtb r0, r7 bl NandcSetDdrPara mov r3, sl @@ -9272,84 +9343,84 @@ FlashDdrTunningRead: bl FlashReadRawPage add r3, r8, #1 cmp r0, r3 - bhi .L1100 + bhi .L1113 cmp r0, #2 - bhi .L1110 + bhi .L1123 add r5, r5, #1 cmp r5, #9 - bls .L1110 + bls .L1123 mov ip, fp rsb r4, r5, r7 ldr fp, [sp, #4] mov r8, r0 mov r6, #0 - b .L1102 -.L1100: + b .L1115 +.L1113: cmp fp, r5 - bcs .L1111 + bcs .L1124 cmp r5, #7 rsb r3, r5, r4 str r3, [sp, #8] - bhi .L1115 + bhi .L1128 mov fp, r5 - b .L1111 -.L1110: + b .L1124 +.L1123: mov r6, #0 mov r4, r7 mov r8, r0 mov sl, r6 mov r9, r6 - b .L1101 -.L1111: + b .L1114 +.L1124: mov r5, #0 -.L1101: +.L1114: add r7, r7, #2 cmp r7, #69 - bls .L1104 + bls .L1117 mov ip, fp ldr fp, [sp, #4] -.L1102: - cmp ip, r5 - bcc .L1105 - b .L1103 .L1115: + cmp ip, r5 + bcc .L1118 + b .L1116 +.L1128: ldr fp, [sp, #4] -.L1103: +.L1116: ldr r4, [sp, #8] -.L1105: +.L1118: cmp r4, #0 - beq .L1106 - ldr r0, .L1116+12 + beq .L1119 + ldr r0, .L1129+12 mov r1, r4 bl printk uxtb r0, r4 bl NandcSetDdrPara -.L1106: +.L1119: cmn r6, #1 - bne .L1098 - ldr r0, .L1116+16 + bne .L1111 + ldr r0, .L1129+16 mov r1, fp ldr r2, [sp, #0] bl printk ldr r3, [sp, #56] cmp r3, #0 moveq r8, r6 - beq .L1098 + beq .L1111 ldr r3, [sp, #12] ubfx r0, r3, #8, #8 bl NandcSetDdrPara -.L1098: +.L1111: mov r0, r8 add sp, sp, #20 ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} -.L1117: +.L1130: .align 2 -.L1116: +.L1129: .word .LANCHOR0 - .word .LC92 - .word .LANCHOR2 .word .LC93 + .word .LANCHOR2 .word .LC94 + .word .LC95 .fnend .size FlashDdrTunningRead, .-FlashDdrTunningRead .align 2 @@ -9362,7 +9433,7 @@ FlashDdrParaScan: stmfd sp!, {r0, r1, r4, r5, r6, r7, r8, lr} .save {r0, r1, r4, r5, r6, r7, r8, lr} mov r7, r0 - ldr r5, .L1122 + ldr r5, .L1135 mov r4, #0 mov r6, r1 ldrb r0, [r5, #3772] @ zero_extendqisi2 @@ -9382,30 +9453,30 @@ FlashDdrParaScan: mov r0, r7 bl FlashReadRawPage cmn r0, #1 - beq .L1119 + beq .L1132 cmn r8, #1 - bne .L1120 -.L1119: + bne .L1133 +.L1132: ldrb r3, [r5, #3772] @ zero_extendqisi2 tst r3, #1 - beq .L1120 + beq .L1133 mov r0, #1 bl FlashSetInterfaceMode mov r0, #1 bl NandcSetMode - ldr r3, .L1122 + ldr r3, .L1135 mov r2, #0 strb r2, [r3, #3780] - b .L1121 -.L1120: + b .L1134 +.L1133: mov r3, #1 strb r3, [r5, #3780] -.L1121: +.L1134: mov r0, #0 ldmfd sp!, {r2, r3, r4, r5, r6, r7, r8, pc} -.L1123: +.L1136: .align 2 -.L1122: +.L1135: .word .LANCHOR0 .fnend .size FlashDdrParaScan, .-FlashDdrParaScan @@ -9425,11 +9496,11 @@ FlashReadPage: bl FlashReadRawPage cmn r0, #1 mov r4, r0 - bne .L1125 - ldr r7, .L1130 + bne .L1138 + ldr r7, .L1143 ldrb r9, [r7, #860] @ zero_extendqisi2 cmp r9, #0 - beq .L1126 + beq .L1139 mov r3, #0 mov r0, r5 strb r3, [r7, #860] @@ -9440,12 +9511,12 @@ FlashReadPage: strb r9, [r7, #860] cmn r0, #1 movne r4, r0 - bne .L1125 -.L1126: - ldr r7, .L1130 + bne .L1138 +.L1139: + ldr r7, .L1143 ldrb r3, [r7, #3780] @ zero_extendqisi2 cmp r3, #0 - beq .L1125 + beq .L1138 ldr r3, [r7, #3012] mov r0, r5 mov r1, r6 @@ -9457,22 +9528,22 @@ FlashReadPage: bl FlashDdrTunningRead cmn r0, #1 mov r4, r0 - beq .L1127 + beq .L1140 ldrb r3, [r7, #3836] @ zero_extendqisi2 cmp r0, r3, lsr #1 - bls .L1125 -.L1127: + bls .L1138 +.L1140: ubfx r0, r9, #8, #8 bl NandcSetDdrPara -.L1125: - ldr r7, .L1130+4 - ldr ip, [r7, #172] +.L1138: + ldr r7, .L1143+4 + ldr ip, [r7, #176] adds r3, ip, #0 movne r3, #1 cmn r4, #1 movne r3, #0 cmp r3, #0 - beq .L1128 + beq .L1141 mov r1, r6 mov r2, r8 mov r3, sl @@ -9481,18 +9552,18 @@ FlashReadPage: mov r2, r5 mov r3, r6 mov r4, r0 - ldr r0, .L1130+8 + ldr r0, .L1143+8 mov r1, r4 bl printk cmn r4, #1 - bne .L1128 - ldr r3, .L1130 + bne .L1141 + ldr r3, .L1143 ldrb r3, [r3, #928] @ zero_extendqisi2 cmp r3, #0 - beq .L1128 + beq .L1141 mov r0, r5 bl flash_enter_slc_mode - ldr ip, [r7, #172] + ldr ip, [r7, #176] mov r0, r5 mov r1, r6 mov r2, r8 @@ -9501,15 +9572,15 @@ FlashReadPage: mov r4, r0 mov r0, r5 bl flash_exit_slc_mode -.L1128: +.L1141: mov r0, r4 ldmfd sp!, {r2, r3, r4, r5, r6, r7, r8, r9, sl, pc} -.L1131: +.L1144: .align 2 -.L1130: +.L1143: .word .LANCHOR0 .word .LANCHOR2 - .word .LC95 + .word .LC96 .fnend .size FlashReadPage, .-FlashReadPage .align 2 @@ -9519,19 +9590,19 @@ FlashReadSlc2KPages: .fnstart @ args = 0, pretend = 0, frame = 16 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L1145 + ldr r3, .L1158 stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} .save {r4, r5, r6, r7, r8, r9, sl, fp, lr} mov r8, r1 .pad #28 sub sp, sp, #28 mov fp, r2 - ldrb sl, [r3, #2901] @ zero_extendqisi2 + ldrb sl, [r3, #2997] @ zero_extendqisi2 mov r4, r0 mov r7, #0 - ldr r6, .L1145+4 - b .L1133 -.L1142: + ldr r6, .L1158+4 + b .L1146 +.L1155: rsb r3, r7, r8 add r2, sp, #20 mov r0, r4 @@ -9545,7 +9616,7 @@ FlashReadSlc2KPages: cmp r3, r2 mvncs r3, #0 strcs r3, [r4, #0] - bcs .L1135 + bcs .L1148 add r3, r6, r3 ldrb r5, [r3, #3764] @ zero_extendqisi2 mov r0, r5 @@ -9604,53 +9675,56 @@ FlashReadSlc2KPages: strne r3, [r4, #0] ldr r3, [r4, #12] cmp r3, #0 - beq .L1140 + beq .L1153 + ldr r2, [r3, #12] + cmn r2, #1 + bne .L1153 ldr r2, [r3, #8] cmn r2, #1 - bne .L1140 + bne .L1153 ldr r3, [r3, #0] cmn r3, #1 strne r2, [r4, #0] -.L1140: +.L1153: ldr r3, [r4, #0] cmn r3, #1 - bne .L1135 + bne .L1148 ldr r1, [r4, #4] - ldr r0, .L1145+8 + ldr r0, .L1158+8 ldrb r2, [r6, #3836] @ zero_extendqisi2 bl printk ldr r1, [r4, #8] cmp r1, #0 - beq .L1141 - ldr r0, .L1145+12 + beq .L1154 + ldr r0, .L1158+12 mov r2, #4 mov r3, #8 bl rknand_print_hex -.L1141: +.L1154: ldr r1, [r4, #12] cmp r1, #0 - beq .L1135 + beq .L1148 mov r2, #4 - ldr r0, .L1145+16 + ldr r0, .L1158+16 mov r3, r2 bl rknand_print_hex -.L1135: +.L1148: add r7, r7, #1 add r4, r4, #36 -.L1133: +.L1146: cmp r7, r8 - bne .L1142 + bne .L1155 mov r0, #0 add sp, sp, #28 ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} -.L1146: +.L1159: .align 2 -.L1145: +.L1158: .word .LANCHOR1 .word .LANCHOR0 - .word .LC96 .word .LC97 .word .LC98 + .word .LC99 .fnend .size FlashReadSlc2KPages, .-FlashReadSlc2KPages .align 2 @@ -9660,32 +9734,32 @@ FlashReadPages: .fnstart @ args = 0, pretend = 0, frame = 40 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L1189 + ldr r3, .L1202 stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} .save {r4, r5, r6, r7, r8, r9, sl, fp, lr} .pad #52 sub sp, sp, #52 - ldrb r3, [r3, #2901] @ zero_extendqisi2 + ldrb r3, [r3, #2997] @ zero_extendqisi2 mov r9, r0 str r1, [sp, #28] str r2, [sp, #32] str r3, [sp, #24] - ldr r3, .L1189+4 + ldr r3, .L1202+4 ldrb r8, [r3, #852] @ zero_extendqisi2 ldrb ip, [r3, #860] @ zero_extendqisi2 cmp r8, #0 str ip, [sp, #36] moveq sl, r8 - beq .L1148 + beq .L1161 bl FlashReadSlc2KPages - b .L1149 -.L1176: + b .L1162 +.L1189: mov r3, #36 ldr ip, [sp, #28] mul r3, r3, sl add r2, sp, #44 ldr r1, [sp, #32] - ldr fp, .L1189+4 + ldr fp, .L1202+4 add r6, r9, r3 str r3, [sp, #16] rsb r3, sl, ip @@ -9702,12 +9776,12 @@ FlashReadPages: mvncs r3, #0 mov r7, r0 strcs r3, [r9, ip] - bcs .L1151 + bcs .L1164 add r3, fp, r3 ldrb r4, [r3, #3764] @ zero_extendqisi2 - ldr r3, .L1189+8 + ldr r3, .L1202+8 mov r0, r4 - ldrb r3, [r3, #176] @ zero_extendqisi2 + ldrb r3, [r3, #180] @ zero_extendqisi2 cmp r3, #0 moveq r7, #0 bl NandcWaitFlashReady @@ -9716,21 +9790,21 @@ FlashReadPages: sub r3, r2, #1 uxtb r3, r3 cmp r3, #6 - bhi .L1153 + bhi .L1166 add r1, fp, r4 cmp r2, #7 add fp, fp, r4 - ldr r2, .L1189+4 + ldr r2, .L1202+4 ldrb r3, [r1, #12] @ zero_extendqisi2 ldreqb r3, [r1, #20] @ zero_extendqisi2 ldrb r1, [fp, #3756] @ zero_extendqisi2 cmp r1, r3 - beq .L1153 + beq .L1166 ldrb r1, [r2, #1] @ zero_extendqisi2 mov r0, r4 add r2, r2, #4 bl HynixSetRRPara -.L1153: +.L1166: mov r0, r4 mov r5, r5, lsr #31 bl NandcFlashCs @@ -9740,44 +9814,44 @@ FlashReadPages: orreq r5, r5, #1 str r5, [sp, #20] cmp r5, #0 - beq .L1155 - ldr r3, .L1189+4 + beq .L1168 + ldr r3, .L1202+4 ldrb r3, [r3, #928] @ zero_extendqisi2 cmp r3, #0 - beq .L1155 + beq .L1168 bl flash_enter_slc_mode - b .L1156 -.L1155: + b .L1169 +.L1168: bl flash_exit_slc_mode -.L1156: - ldr fp, .L1189+4 -.L1188: +.L1169: + ldr fp, .L1202+4 +.L1201: ldr r1, [sp, #44] cmn r1, #1 cmpeq r4, #255 moveq r3, #0 movne r3, #1 moveq r7, r3 - beq .L1158 + beq .L1171 cmp r7, #0 - beq .L1159 + beq .L1172 ldr r2, [fp, #856] mov r0, r4 add r2, r1, r2 bl FlashReadDpCmd - b .L1160 -.L1159: + b .L1173 +.L1172: mov r0, r4 bl FlashReadCmd -.L1160: +.L1173: mov r0, r4 bl NandcWaitFlashReady cmp r7, #0 - beq .L1158 + beq .L1171 mov r0, r4 ldr r1, [sp, #44] bl FlashReadDpDataOutCmd -.L1158: +.L1171: ldr r3, [r6, #12] mov r0, r4 ldr r2, [sp, #24] @@ -9794,12 +9868,12 @@ FlashReadPages: movne r2, #0 movne r7, #0 strneb r2, [fp, #860] - bne .L1188 -.L1161: + bne .L1201 +.L1174: cmp r7, #0 mov r5, r0 - beq .L1162 - ldr r3, .L1189+4 + beq .L1175 + ldr r3, .L1202+4 mov r0, r4 ldr r1, [r3, #856] ldr r3, [sp, #44] @@ -9820,17 +9894,17 @@ FlashReadPages: cmn r0, #1 mov r8, r0 moveq r7, #0 -.L1162: +.L1175: mov r0, r4 - ldr fp, .L1189+4 + ldr fp, .L1202+4 bl NandcFlashDeCs ldr ip, [sp, #36] cmn r5, #1 strb ip, [fp, #860] - bne .L1166 + bne .L1179 ldrb r3, [fp, #3780] @ zero_extendqisi2 cmp r3, #0 - beq .L1164 + beq .L1177 ldr r3, [fp, #3012] mov r0, r4 ldr r1, [sp, #44] @@ -9842,96 +9916,96 @@ FlashReadPages: bl FlashDdrTunningRead cmn r0, #1 mov r5, r0 - beq .L1165 + beq .L1178 ldrb r3, [fp, #3836] @ zero_extendqisi2 cmp r0, r3, lsr #1 - bls .L1182 -.L1165: + bls .L1195 +.L1178: ubfx r0, r7, #8, #8 bl NandcSetDdrPara cmn r5, #1 - bne .L1182 -.L1164: - ldr r3, .L1189+8 + bne .L1195 +.L1177: + ldr r3, .L1202+8 mov r0, r4 ldr r1, [sp, #44] ldr r2, [r6, #8] - ldr r7, [r3, #172] + ldr r7, [r3, #176] ldr r3, [r6, #12] cmp r7, #0 - beq .L1167 + beq .L1180 blx r7 cmn r0, #1 mov r5, r0 - bne .L1184 - ldr r2, .L1189+4 + bne .L1197 + ldr r2, .L1202+4 ldr r3, [r2, #3624] ldrb r3, [r3, #19] @ zero_extendqisi2 sub r3, r3, #1 uxtb r3, r3 cmp r3, #6 - bhi .L1169 + bhi .L1182 ldrb r1, [r2, #1] @ zero_extendqisi2 mov r0, r4 add r2, r2, #4 mov r3, #0 bl HynixSetRRPara -.L1169: +.L1182: ldr r1, [sp, #44] mov r0, r4 ldr r2, [r6, #8] ldr r3, [r6, #12] bl FlashReadRawPage - ldr r7, .L1189+4 + ldr r7, .L1202+4 ldr r1, [r6, #4] ldrb r2, [r7, #3836] @ zero_extendqisi2 mov r5, r0 - ldr r0, .L1189+12 + ldr r0, .L1202+12 mov r3, r5 bl printk cmn r5, #1 - bne .L1184 + bne .L1197 ldrb r7, [r7, #928] @ zero_extendqisi2 cmp r7, #0 - beq .L1168 + beq .L1181 ldr ip, [sp, #20] mov r0, r4 cmp ip, #0 - beq .L1170 + beq .L1183 bl flash_enter_slc_mode - b .L1171 -.L1170: + b .L1184 +.L1183: bl flash_exit_slc_mode -.L1171: - ldr r3, .L1189+8 +.L1184: + ldr r3, .L1202+8 mov r0, r4 ldr r1, [sp, #44] ldr r2, [r6, #8] - ldr ip, [r3, #172] + ldr ip, [r3, #176] ldr r3, [r6, #12] blx ip mov r5, r0 - b .L1184 -.L1167: + b .L1197 +.L1180: bl FlashReadRawPage mov r5, r0 - b .L1168 -.L1182: + b .L1181 +.L1195: mov r7, #0 -.L1166: - ldr r3, .L1189+4 +.L1179: + ldr r3, .L1202+4 ldrb r3, [r3, #3836] @ zero_extendqisi2 add r3, r3, r3, asl #1 cmp r5, r3, lsr #2 - bls .L1168 - ldr r3, .L1189+8 - ldr r3, [r3, #172] + bls .L1181 + ldr r3, .L1202+8 + ldr r3, [r3, #176] cmp r3, #0 moveq r5, #256 - b .L1168 -.L1184: + b .L1181 +.L1197: mov r7, #0 -.L1168: +.L1181: ldr ip, [sp, #16] cmp r5, #256 cmnne r5, #1 @@ -9941,32 +10015,32 @@ FlashReadPages: ldr ip, [sp, #16] ldr r3, [r9, ip] cmn r3, #1 - bne .L1173 - ldr r2, .L1189+4 + bne .L1186 + ldr r2, .L1202+4 ldr r1, [r6, #4] - ldr r0, .L1189+16 + ldr r0, .L1202+16 ldrb r2, [r2, #3836] @ zero_extendqisi2 bl printk ldr r1, [r6, #12] cmp r1, #0 - beq .L1173 + beq .L1186 mov r2, #4 - ldr r0, .L1189+20 + ldr r0, .L1202+20 mov r3, r2 bl rknand_print_hex -.L1173: +.L1186: cmp r7, #0 - beq .L1174 - ldr r3, .L1189+4 + beq .L1187 + ldr r3, .L1202+4 ldrb r3, [r3, #3836] @ zero_extendqisi2 add r3, r3, r3, asl #1 cmp r8, r3, lsr #2 - bls .L1175 - ldr r3, .L1189+8 - ldr r3, [r3, #172] + bls .L1188 + ldr r3, .L1202+8 + ldr r3, [r3, #176] cmp r3, #0 moveq r8, #256 -.L1175: +.L1188: add r3, sl, #1 mov r2, #36 cmp r8, #256 @@ -9975,36 +10049,36 @@ FlashReadPages: movne r2, #0 str r8, [r9, r3] strne r2, [r9, r3] -.L1174: +.L1187: ldr ip, [sp, #20] add sl, sl, r7 cmp ip, #0 - beq .L1151 - ldr r3, .L1189+4 + beq .L1164 + ldr r3, .L1202+4 ldrb r3, [r3, #928] @ zero_extendqisi2 cmp r3, #0 - beq .L1151 + beq .L1164 mov r0, r4 bl flash_exit_slc_mode -.L1151: +.L1164: add sl, sl, #1 -.L1148: +.L1161: ldr ip, [sp, #28] cmp sl, ip - bcc .L1176 + bcc .L1189 mov r0, #0 -.L1149: +.L1162: add sp, sp, #52 ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} -.L1190: +.L1203: .align 2 -.L1189: +.L1202: .word .LANCHOR1 .word .LANCHOR0 .word .LANCHOR2 + .word .LC100 + .word .LC97 .word .LC99 - .word .LC96 - .word .LC98 .fnend .size FlashReadPages, .-FlashReadPages .align 2 @@ -10014,8 +10088,8 @@ FtlGcScanTempBlk: .fnstart @ args = 0, pretend = 0, frame = 24 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r2, .L1216 - movw r3, #3000 + ldr r2, .L1229 + movw r3, #3096 stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} .save {r4, r5, r6, r7, r8, r9, sl, fp, lr} .pad #28 @@ -10025,39 +10099,39 @@ FtlGcScanTempBlk: mov r5, r0 str r1, [sp, #20] cmp r4, r3 - beq .L1212 + beq .L1225 cmp r4, #0 - bne .L1192 - b .L1193 -.L1212: + bne .L1205 + b .L1206 +.L1225: mov r4, #0 -.L1192: - ldr r2, .L1216+4 +.L1205: + ldr r2, .L1229+4 movw r3, #3916 ldr fp, [sp, #20] ldrh r3, [r2, r3] cmp fp, r3 - bne .L1194 -.L1193: + bne .L1207 +.L1206: bl FtlGcPageVarInit -.L1194: +.L1207: mov r7, #0 movw r8, #65535 mov sl, r7 mvn r3, #0 str r3, [sp, #16] -.L1207: +.L1220: ldrh r3, [r5, #0] strb sl, [r5, #8] cmp r3, r8 - beq .L1213 -.L1196: -.L1214: - ldr r3, .L1216+4 + beq .L1226 +.L1209: +.L1227: + ldr r3, .L1229+4 movw r2, #3848 ldrh r9, [r3, r2] - ldr r2, .L1216+8 - ldr lr, [r2, #-972] + ldr r2, .L1229+8 + ldr lr, [r2, #-968] ldr ip, [r2, #-1168] movw r2, #3928 ldrh r2, [r3, r2] @@ -10065,11 +10139,11 @@ FtlGcScanTempBlk: mov r6, r3 str r2, [sp, #12] mov r2, r5 - b .L1197 -.L1199: + b .L1210 +.L1212: ldrh r0, [r2, #16] cmp r0, r8 - beq .L1198 + beq .L1211 mov fp, #36 orr r0, r4, r0, asl #10 mla r1, fp, r6, lr @@ -10084,25 +10158,25 @@ FtlGcScanTempBlk: bic r0, r0, #3 add r0, ip, r0 str r0, [r1, #12] -.L1198: +.L1211: add r3, r3, #1 add r2, r2, #2 uxth r3, r3 -.L1197: +.L1210: cmp r3, r9 - bne .L1199 - ldr r9, .L1216+8 + bne .L1212 + ldr r9, .L1229+8 mov r1, r6 mov r2, #0 - ldr r0, [r9, #-972] + ldr r0, [r9, #-968] bl FlashReadPages mov r3, #36 mul r3, r3, r6 mov r6, #0 str r3, [sp, #12] - b .L1200 -.L1208: - ldr r1, [r9, #-972] + b .L1213 +.L1221: + ldr r1, [r9, #-968] add r3, r1, r6 ldr fp, [r3, #4] stmib sp, {r1, r3} @@ -10113,54 +10187,54 @@ FtlGcScanTempBlk: ldr r1, [r1, r6] cmp r1, #0 mov r2, r0 - bne .L1201 + bne .L1214 ldr r3, [r3, #12] add r6, r6, #36 ldrh r1, [r3, #0] cmp r1, r8 - ldreq r3, .L1216+8 + ldreq r3, .L1229+8 moveq r1, #1 - streq r1, [r3, #-1012] - beq .L1195 -.L1202: + streq r1, [r3, #-1008] + beq .L1208 +.L1215: ldr r0, [r3, #12] mov r1, fp ldr r2, [r3, #8] bl FtlGcUpdatePage - b .L1200 -.L1201: + b .L1213 +.L1214: mov r2, fp - ldr r0, .L1216+12 + ldr r0, .L1229+12 ldrh r1, [r5, #0] bl printk - ldr r3, .L1216+4 + ldr r3, .L1229+4 ldr r2, [r3, #3840] cmp r2, #0 - bne .L1203 + bne .L1216 ldrb r2, [r3, #928] @ zero_extendqisi2 cmp r2, #0 - beq .L1204 -.L1203: + beq .L1217 +.L1216: ldrh r1, [r5, #0] ldr r2, [r3, #4048] mov r3, r1, asl #1 ldrh r3, [r2, r3] - cmp r3, #119 - bls .L1205 -.L1204: - ldr r3, .L1216+8 - ldr r3, [r3, #-972] + cmp r3, #159 + bls .L1218 +.L1217: + ldr r3, .L1229+8 + ldr r3, [r3, #-968] ldr r3, [r3, r6] cmn r3, #1 - bne .L1206 -.L1205: - ldr r3, .L1216+8 - ldr r3, [r3, #-972] + bne .L1219 +.L1218: + ldr r3, .L1229+8 + ldr r3, [r3, #-968] add r6, r3, r6 ldr r6, [r6, #4] str r6, [sp, #16] -.L1206: - ldr r2, .L1216+8 +.L1219: + ldr r2, .L1229+8 mov r4, #0 ldrh r3, [r5, #0] ldr r2, [r2, #-2016] @@ -10171,40 +10245,40 @@ FtlGcScanTempBlk: mvn r3, #0 strh r3, [r5, #0] @ movhi bl FtlGcPageVarInit - b .L1207 -.L1200: + b .L1220 +.L1213: ldr r3, [sp, #12] cmp r6, r3 - bne .L1208 + bne .L1221 ldr fp, [sp, #20] add r7, r7, #1 add r4, r4, #1 cmp r7, fp uxth r4, r4 - bcc .L1209 - ldr r2, .L1216 - movw r3, #3000 + bcc .L1222 + ldr r2, .L1229 + movw r3, #3096 ldrh r1, [r2, r3] cmp r1, r8 - beq .L1209 + beq .L1222 add r1, r1, r7 strh r1, [r2, r3] @ movhi - ldr r2, .L1216+4 - add r3, r3, #916 + ldr r2, .L1229+4 + add r3, r3, #820 ldrh r3, [r2, r3] cmp r3, r4 - bhi .L1210 -.L1209: - ldr r2, .L1216+4 + bhi .L1223 +.L1222: + ldr r2, .L1229+4 movw r3, #3916 ldrh r3, [r2, r3] cmp r3, r4 - bhi .L1214 -.L1213: + bhi .L1227 +.L1226: mov r2, #0 -.L1195: - ldr r1, .L1216 - movw r3, #3000 +.L1208: + ldr r1, .L1229 + movw r3, #3096 mvn r0, #0 strh r4, [r5, #2] @ movhi strb r2, [r5, #6] @@ -10212,17 +10286,17 @@ FtlGcScanTempBlk: mov r0, r5 mov r1, r4 bl ftl_sb_update_avl_pages -.L1210: +.L1223: ldr r0, [sp, #16] add sp, sp, #28 ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} -.L1217: +.L1230: .align 2 -.L1216: +.L1229: .word .LANCHOR1 .word .LANCHOR0 .word .LANCHOR2 - .word .LC100 + .word .LC101 .fnend .size FtlGcScanTempBlk, .-FtlGcScanTempBlk .align 2 @@ -10236,16 +10310,16 @@ FtlScanAllBlock: .save {r4, r5, r6, r7, r8, r9, sl, fp, lr} .pad #84 sub sp, sp, #84 - ldr r0, .L1228 + ldr r0, .L1241 mov r5, #0 - ldr r1, .L1228+4 + ldr r1, .L1241+4 bl printk - ldr r7, .L1228+8 - b .L1219 -.L1227: + ldr r7, .L1241+8 + b .L1232 +.L1240: add r4, sp, #80 mov r0, r5 - ldr r6, .L1228+12 + ldr r6, .L1241+12 mov r9, #36 strh r5, [r4, #-48]! @ movhi bl ftl_get_blk_mode @@ -10254,7 +10328,7 @@ FtlScanAllBlock: mov r1, r5 ldrh r2, [ip, r2] mov r3, r0 - ldr r0, .L1228+16 + ldr r0, .L1241+16 bl printk mov r0, r4 bl make_superblock @@ -10264,19 +10338,19 @@ FtlScanAllBlock: add r0, r4, #14 mov r4, #0 ldrh r3, [r7, r3] - ldr r8, [r6, #-972] + ldr r8, [r6, #-968] ldr lr, [r6, #-1172] str r3, [sp, #28] movw r3, #3928 ldrh ip, [r7, r3] mov r3, r4 ldr r6, [r6, #-1168] - b .L1220 -.L1222: + b .L1233 +.L1235: ldrh r1, [r0, #2]! movw r2, #65535 cmp r1, r2 - beq .L1221 + beq .L1234 mla r2, r9, r4, r8 ldr fp, [sp, #28] mov r1, r1, asl #10 @@ -10297,22 +10371,22 @@ FtlScanAllBlock: bic r1, r1, #3 add r1, r6, r1 str r1, [r2, #12] -.L1221: +.L1234: add r3, r3, #1 uxth r3, r3 -.L1220: +.L1233: cmp r3, sl - bne .L1222 - ldr sl, .L1228+12 + bne .L1235 + ldr sl, .L1241+12 mov r1, r4 mov r2, #0 mov r6, #0 mov r8, r6 - ldr r0, [sl, #-972] + ldr r0, [sl, #-968] bl FlashReadPages - b .L1223 -.L1224: - ldr r2, [sl, #-972] + b .L1236 +.L1237: + ldr r2, [sl, #-968] add r8, r8, #1 ldrh r1, [sp, #32] add r3, r2, r6 @@ -10331,25 +10405,25 @@ FtlScanAllBlock: str r0, [sp, #16] ldr r0, [ip, #4] str r0, [sp, #20] - ldr r0, .L1228+20 + ldr r0, .L1241+20 ldr r2, [r2, r6] add r6, r6, #36 ldr r3, [r3, #4] bl printk -.L1223: +.L1236: cmp r8, r4 - ldr r9, .L1228+12 - bne .L1224 - ldr r0, [r9, #-972] + ldr r9, .L1241+12 + bne .L1237 + ldr r0, [r9, #-968] mov r1, r4 mov r2, #1 mov r6, #0 bl FlashReadPages mov r8, r6 mov sl, r9 - b .L1225 -.L1226: - ldr r2, [sl, #-972] + b .L1238 +.L1239: + ldr r2, [sl, #-968] add r8, r8, #1 ldrh r1, [sp, #32] add r3, r2, r6 @@ -10368,34 +10442,34 @@ FtlScanAllBlock: str r0, [sp, #16] ldr r0, [ip, #4] str r0, [sp, #20] - ldr r0, .L1228+24 + ldr r0, .L1241+24 ldr r2, [r2, r6] add r6, r6, #36 ldr r3, [r3, #4] bl printk -.L1225: +.L1238: cmp r8, r4 - bne .L1226 + bne .L1239 add r5, r5, #1 uxth r5, r5 -.L1219: +.L1232: movw r3, #3858 ldrh r3, [r7, r3] cmp r3, r5 - bhi .L1227 + bhi .L1240 mov r0, #0 add sp, sp, #84 ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} -.L1229: +.L1242: .align 2 -.L1228: - .word .LC101 +.L1241: + .word .LC102 .word .LANCHOR3+15 .word .LANCHOR0 .word .LANCHOR2 - .word .LC102 .word .LC103 .word .LC104 + .word .LC105 .fnend .size FtlScanAllBlock, .-FtlScanAllBlock .align 2 @@ -10412,16 +10486,16 @@ FtlDumpBlockInfo: sub sp, sp, #84 mov r7, r1 bl P2V_block_in_plane - ldr r5, .L1241 - ldr r1, .L1241+4 + ldr r5, .L1254 + ldr r1, .L1254+4 movw r6, #3916 ldrh r9, [r5, r6] mov r4, r0 - ldr r0, .L1241+8 + ldr r0, .L1254+8 bl printk - ldr r3, .L1241+12 + ldr r3, .L1254+12 mov r1, r4 - ldr r0, .L1241+16 + ldr r0, .L1254+16 ldr r2, [r3, #-2016] mov r3, r4, asl #1 ldrh r2, [r2, r3] @@ -10435,42 +10509,42 @@ FtlDumpBlockInfo: cmp r3, #0 moveq r7, #0 cmp r7, #0 - beq .L1231 + beq .L1244 mov r0, r4 bl ftl_get_blk_mode cmp r0, #1 mov r7, r0 movweq r3, #3918 ldreqh r9, [r5, r3] -.L1231: +.L1244: ldrh r3, [r5, r6] mov r1, r7 - ldr r0, .L1241+20 + ldr r0, .L1254+20 mov r2, r9 bl printk mov r6, #0 -.L1232: - ldr r3, .L1241 +.L1245: + ldr r3, .L1254 movw r2, #3848 movw r1, #3926 mov r4, #0 add r0, sp, #46 ldrh sl, [r3, r2] - ldr r2, .L1241+12 + ldr r2, .L1254+12 ldrh lr, [r3, r1] - ldr r8, [r2, #-972] + ldr r8, [r2, #-968] ldr r5, [r2, #-1172] ldr ip, [r2, #-1168] movw r2, #3928 ldrh r2, [r3, r2] mov r3, r4 str r2, [sp, #28] - b .L1233 -.L1235: + b .L1246 +.L1248: ldrh r1, [r0, #2]! movw r2, #65535 cmp r1, r2 - beq .L1234 + beq .L1247 mov fp, #36 orr r1, r6, r1, asl #10 mla r2, fp, r4, r8 @@ -10492,22 +10566,22 @@ FtlDumpBlockInfo: bic r1, r1, #3 add r1, ip, r1 str r1, [r2, #12] -.L1234: +.L1247: add r3, r3, #1 uxth r3, r3 -.L1233: +.L1246: cmp r3, sl - bne .L1235 - ldr r8, .L1241+12 + bne .L1248 + ldr r8, .L1254+12 mov r1, r4 mov r2, r7 mov r5, #0 mov sl, r5 - ldr r0, [r8, #-972] + ldr r0, [r8, #-968] bl FlashReadPages - b .L1236 -.L1237: - ldr r2, [r8, #-972] + b .L1249 +.L1250: + ldr r2, [r8, #-968] add sl, sl, #1 ldrh r1, [sp, #32] add r3, r2, r5 @@ -10526,32 +10600,32 @@ FtlDumpBlockInfo: str r0, [sp, #16] ldr r0, [ip, #4] str r0, [sp, #20] - ldr r0, .L1241+24 + ldr r0, .L1254+24 ldr r2, [r2, r5] add r5, r5, #36 ldr r3, [r3, #4] bl printk -.L1236: +.L1249: cmp sl, r4 - bne .L1237 + bne .L1250 add r6, r6, #1 uxth r6, r6 cmp r6, r9 - bne .L1232 -.L1238: + bne .L1245 +.L1251: mov r0, #0 add sp, sp, #84 ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} -.L1242: +.L1255: .align 2 -.L1241: +.L1254: .word .LANCHOR0 .word .LANCHOR3+31 - .word .LC101 + .word .LC102 .word .LANCHOR2 - .word .LC105 .word .LC106 .word .LC107 + .word .LC108 .fnend .size FtlDumpBlockInfo, .-FtlDumpBlockInfo .align 2 @@ -10564,15 +10638,15 @@ FtlScanSysBlk: stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} .save {r4, r5, r6, r7, r8, r9, sl, fp, lr} mov r6, #0 - ldr r5, .L1301 + ldr r5, .L1314 .pad #28 sub sp, sp, #28 - ldr r4, .L1301+4 + ldr r4, .L1314+4 mov r1, r6 - ldr r3, .L1301+8 + ldr r3, .L1314+8 mov r7, #3936 ldr r2, [r5, #3944] - ldr r0, [r4, #-1036] + ldr r0, [r4, #-1032] mov sl, r4 strh r6, [r4, r3] @ movhi movw r3, #3962 @@ -10581,12 +10655,12 @@ FtlScanSysBlk: bl ftl_memset ldr r2, [r5, #3944] mov r1, r6 - ldr r0, [r4, #-1040] + ldr r0, [r4, #-1036] mov r2, r2, asl #1 bl ftl_memset ldrh r2, [r5, r7] mov r1, r6 - ldr r0, [r4, #-908] + ldr r0, [r4, #-904] mov r2, r2, asl #2 bl ftl_memset ldrh r2, [r5, r7] @@ -10594,15 +10668,15 @@ FtlScanSysBlk: ldr r0, [r5, #3964] mov r2, r2, asl #1 bl ftl_memset - ldr r0, .L1301+12 + ldr r0, .L1314+12 mov r1, #255 mov r2, #12 bl ftl_memset mov r3, #3856 ldrh r3, [r5, r3] str r3, [sp, #8] - b .L1244 -.L1246: + b .L1257 +.L1259: add r3, r6, r5 ldr r1, [sp, #8] ldrb r0, [r3, #3874] @ zero_extendqisi2 @@ -10611,8 +10685,8 @@ FtlScanSysBlk: bl FtlBbmIsBadBlock ldr r3, [sp, #0] cmp r0, #0 - bne .L1245 - ldr r2, [r4, #-972] + bne .L1258 + ldr r2, [r4, #-968] mov r3, r3, asl #10 mla r2, r9, r7, r2 str r3, [r2, #4] @@ -10629,41 +10703,41 @@ FtlScanSysBlk: bic r3, r3, #3 add r3, r1, r3 str r3, [r2, #12] -.L1245: +.L1258: add r5, r5, #1 uxth r5, r5 - b .L1279 -.L1292: + b .L1292 +.L1305: mov r7, #0 movw fp, #3848 mov r5, r7 mov r9, #36 movw r8, #3928 -.L1279: +.L1292: ldrh r3, [r6, fp] cmp r3, r5 - bhi .L1246 + bhi .L1259 cmp r7, #0 - beq .L1247 - ldr r0, [r4, #-972] + beq .L1260 + ldr r0, [r4, #-968] mov r1, r7 mov r2, #1 mov fp, r7 bl FlashReadPages mov r8, #0 str r8, [sp, #12] -.L1278: - ldr r3, [r4, #-972] +.L1291: + ldr r3, [r4, #-968] add r2, r3, r8 ldr r3, [r3, r8] ldr r6, [r2, #4] cmn r3, #1 ldr r5, [r2, #12] ubfx r6, r6, #10, #16 - bne .L1248 + bne .L1261 mov r7, #16 -.L1250: - ldr r0, [r4, #-972] +.L1263: + ldr r0, [r4, #-968] mov r1, #1 mov r2, r1 add r0, r0, r8 @@ -10674,57 +10748,57 @@ FtlScanSysBlk: ldrh r3, [r5, #0] movw r1, #65535 cmp r3, r1 - ldreq r3, [sl, #-972] + ldreq r3, [sl, #-968] mvneq r2, #0 streq r2, [r3, r8] - beq .L1248 -.L1249: - ldr r3, [r4, #-972] + beq .L1261 +.L1262: + ldr r3, [r4, #-968] ldr r3, [r3, r8] cmn r3, #1 - bne .L1248 + bne .L1261 sub r7, r7, #1 uxth r7, r7 cmp r7, #0 - bne .L1250 -.L1248: - ldr r3, [r4, #-972] + bne .L1263 +.L1261: + ldr r3, [r4, #-968] ldr r3, [r3, r8] cmn r3, #1 - beq .L1251 + beq .L1264 ldr r2, [r4, #-1804] ldr r3, [r5, #4] cmn r2, #1 - beq .L1252 + beq .L1265 cmp r2, r3 - bhi .L1253 -.L1252: + bhi .L1266 +.L1265: cmn r3, #1 addne r3, r3, #1 strne r3, [sl, #-1804] -.L1253: +.L1266: ldrh r3, [r5, #0] movw r2, #61604 cmp r3, r2 - beq .L1256 - bhi .L1259 + beq .L1269 + bhi .L1272 movw r2, #61574 cmp r3, r2 - bne .L1254 - b .L1299 -.L1259: + bne .L1267 + b .L1312 +.L1272: movw r2, #61634 cmp r3, r2 - beq .L1257 + beq .L1270 movw r2, #65535 cmp r3, r2 - bne .L1254 - b .L1300 -.L1257: - ldr r3, .L1301 + bne .L1267 + b .L1313 +.L1270: + ldr r3, .L1314 mov r9, r6 - ldr r1, .L1301+8 - ldr ip, [r4, #-1036] + ldr r1, .L1314+8 + ldr ip, [r4, #-1032] ldr r0, [r3, #3944] ldrh r1, [r4, r1] uxth r2, r0 @@ -10734,29 +10808,29 @@ FtlScanSysBlk: uxth r3, r3 sxth r2, r2 str r2, [sp, #4] - b .L1260 -.L1266: + b .L1273 +.L1279: mov r6, r2, asl #2 ldr r7, [r5, #4] str r6, [sp, #16] ldr r6, [ip, r2, asl #2] cmp r7, r6 - bls .L1261 + bls .L1274 ldr ip, [ip, #0] mov r6, r9 cmp ip, #0 - bne .L1262 + bne .L1275 cmp r1, r0 addne r1, r1, #1 - ldrne r0, .L1301+8 + ldrne r0, .L1314+8 strneh r1, [r4, r0] @ movhi -.L1262: +.L1275: mov r0, #0 sxth r9, r3 str r3, [sp, #4] - b .L1263 -.L1264: - ldr r7, [r4, #-1036] + b .L1276 +.L1277: + ldr r7, [r4, #-1032] add ip, r1, #1 add r0, r0, #1 ldr r3, [r7, ip, asl #2] @@ -10764,90 +10838,90 @@ FtlScanSysBlk: uxth r0, r0 str r3, [r7, r1, asl #2] mov r1, r1, asl #1 - ldr r7, [r4, #-1040] + ldr r7, [r4, #-1036] ldrh ip, [r7, ip] strh ip, [r7, r1] @ movhi -.L1263: +.L1276: sxth r1, r0 cmp r1, r9 - bne .L1264 - ldr r1, [sl, #-1036] + bne .L1277 + ldr r1, [sl, #-1032] mov r2, r2, asl #1 ldr r0, [r5, #4] ldr ip, [sp, #16] ldr r3, [sp, #4] str r0, [r1, ip] - ldr r1, [sl, #-1040] + ldr r1, [sl, #-1036] strh r6, [r1, r2] @ movhi - b .L1265 -.L1261: + b .L1278 +.L1274: sub r3, r3, #1 uxth r3, r3 -.L1260: +.L1273: ldr r6, [sp, #4] sxth r2, r3 cmp r2, r6 - bgt .L1266 + bgt .L1279 mov r6, r9 -.L1265: +.L1278: sxth r3, r3 cmp r3, #0 - blt .L1254 - ldr r2, .L1301+8 - ldr r0, .L1301 + blt .L1267 + ldr r2, .L1314+8 + ldr r0, .L1314 ldrh r1, [r4, r2] ldr r0, [r0, #3944] rsb r0, r1, r0 sub r0, r0, #1 sxth r0, r0 cmp r3, r0 - bgt .L1254 + bgt .L1267 add r1, r1, #1 strh r1, [r4, r2] @ movhi - ldr r2, [r4, #-1036] + ldr r2, [r4, #-1032] ldr r1, [r5, #4] str r1, [r2, r3, asl #2] mov r3, r3, asl #1 - ldr r2, [r4, #-1040] - b .L1296 -.L1299: - ldr r1, .L1301 + ldr r2, [r4, #-1036] + b .L1309 +.L1312: + ldr r1, .L1314 mov r3, #3936 movw ip, #3962 mov r9, r6 ldrh r0, [r1, r3] ldrh r1, [r1, ip] sub r2, r0, #1 - ldr ip, [r4, #-908] + ldr ip, [r4, #-904] uxth r3, r2 rsb r2, r1, r2 str r2, [sp, #4] - b .L1267 -.L1273: + b .L1280 +.L1286: mov r6, r2, asl #2 ldr r7, [r5, #4] str r6, [sp, #16] ldr r6, [ip, r2, asl #2] cmp r7, r6 - bls .L1268 + bls .L1281 ldr ip, [ip, #0] mov r6, r9 cmp ip, #0 - bne .L1269 + bne .L1282 cmp r1, r0 addne r1, r1, #1 - ldrne ip, .L1301 + ldrne ip, .L1314 movwne r0, #3962 strneh r1, [ip, r0] @ movhi -.L1269: +.L1282: sxth ip, r3 mov r0, #0 str ip, [sp, #20] - ldr r9, .L1301 + ldr r9, .L1314 str r3, [sp, #4] - b .L1270 -.L1271: - ldr r7, [r4, #-908] + b .L1283 +.L1284: + ldr r7, [r4, #-904] add ip, r1, #1 add r0, r0, #1 ldr r3, [r7, ip, asl #2] @@ -10858,35 +10932,35 @@ FtlScanSysBlk: ldr r7, [r9, #3964] ldrh ip, [r7, ip] strh ip, [r7, r1] @ movhi -.L1270: +.L1283: ldr ip, [sp, #20] sxth r1, r0 cmp r1, ip - bne .L1271 - ldr r1, [sl, #-908] + bne .L1284 + ldr r1, [sl, #-904] mov r2, r2, asl #1 ldr r0, [r5, #4] ldr ip, [sp, #16] ldr r3, [sp, #4] str r0, [r1, ip] - ldr r1, .L1301 + ldr r1, .L1314 ldr r1, [r1, #3964] strh r6, [r1, r2] @ movhi - b .L1272 -.L1268: + b .L1285 +.L1281: sub r3, r3, #1 uxth r3, r3 -.L1267: +.L1280: ldr r6, [sp, #4] sxth r2, r3 cmp r2, r6 - bgt .L1273 + bgt .L1286 mov r6, r9 -.L1272: +.L1285: sxth r3, r3 cmp r3, #0 - blt .L1254 - ldr r2, .L1301 + blt .L1267 + ldr r2, .L1314 mov ip, #3936 movw r1, #3962 ldrh ip, [r2, ip] @@ -10895,102 +10969,102 @@ FtlScanSysBlk: rsb ip, r0, ip sxth ip, ip cmp r3, ip - bgt .L1254 + bgt .L1267 add r0, r0, #1 strh r0, [r2, r1] @ movhi ldr r0, [r5, #4] - ldr r1, [r4, #-908] + ldr r1, [r4, #-904] str r0, [r1, r3, asl #2] mov r3, r3, asl #1 ldr r2, [r2, #3964] -.L1296: +.L1309: strh r6, [r2, r3] @ movhi - b .L1254 -.L1256: - ldr r3, .L1301+16 + b .L1267 +.L1269: + ldr r3, .L1314+16 movw ip, #65535 ldrh r2, [r4, r3] cmp r2, ip streqh r6, [r4, r3] @ movhi - beq .L1297 - ldr r3, .L1301+20 + beq .L1310 + ldr r3, .L1314+20 movw r1, #65535 ldrh r0, [r4, r3] cmp r0, r1 - beq .L1275 + beq .L1288 mov r1, #1 bl FtlFreeSysBlkQueueIn -.L1275: +.L1288: ldr r3, [r5, #4] ldr r2, [sl, #-1764] cmp r2, r3 - ldr r3, .L1301+20 + ldr r3, .L1314+20 strcsh r6, [r4, r3] @ movhi - bcs .L1254 - ldr r2, .L1301+16 + bcs .L1267 + ldr r2, .L1314+16 ldrh r1, [r4, r2] strh r6, [r4, r2] @ movhi strh r1, [r4, r3] @ movhi -.L1297: +.L1310: ldr r3, [r5, #4] str r3, [r4, #-1764] - b .L1254 -.L1300: + b .L1267 +.L1313: mov r0, r6 - b .L1298 -.L1251: - ldr r3, .L1301 + b .L1311 +.L1264: + ldr r3, .L1314 mov r0, r6 ldrb r1, [r3, #928] @ zero_extendqisi2 cmp r1, #0 - beq .L1277 -.L1298: + beq .L1290 +.L1311: mov r1, #0 -.L1277: +.L1290: bl FtlFreeSysBlkQueueIn -.L1254: +.L1267: ldr r6, [sp, #12] add r8, r8, #36 add r3, r6, #1 uxth r3, r3 str r3, [sp, #12] cmp r3, fp - bne .L1278 -.L1247: + bne .L1291 +.L1260: ldr ip, [sp, #8] add r3, ip, #1 uxth r3, r3 str r3, [sp, #8] -.L1244: - ldr r6, .L1301 +.L1257: + ldr r6, .L1314 movw r3, #3858 ldr ip, [sp, #8] ldrh r3, [r6, r3] cmp r3, ip - bhi .L1292 - ldr r1, .L1301+4 - ldr r2, [r1, #-1040] + bhi .L1305 + ldr r1, .L1314+4 + ldr r2, [r1, #-1036] ldrh r3, [r2, #0] cmp r3, #0 - bne .L1280 - ldr r0, .L1301+8 + bne .L1293 + ldr r0, .L1314+8 ldrh r1, [r1, r0] cmp r1, #0 ldrne r0, [r6, #3944] - bne .L1281 - b .L1280 -.L1285: + bne .L1294 + b .L1293 +.L1298: mov r1, r1, asl #1 ldrh r1, [r2, r1] cmp r1, #0 - beq .L1282 - ldr r7, .L1301 + beq .L1295 + ldr r7, .L1314 sxth r6, r3 - ldr r1, .L1301+4 + ldr r1, .L1314+4 mov r5, #0 - b .L1283 -.L1284: - ldr ip, [r1, #-1040] + b .L1296 +.L1297: + ldr ip, [r1, #-1036] mov r0, r2, asl #1 rsb r4, r6, r2 add r3, r3, #1 @@ -10998,48 +11072,48 @@ FtlScanSysBlk: mov r8, r4, asl #1 uxth r3, r3 strh sl, [ip, r8] @ movhi - ldr ip, [r1, #-1036] + ldr ip, [r1, #-1032] ldr r2, [ip, r2, asl #2] str r2, [ip, r4, asl #2] - ldr r2, [r1, #-1040] + ldr r2, [r1, #-1036] strh r5, [r2, r0] @ movhi -.L1283: +.L1296: ldr r0, [r7, #3944] sxth r2, r3 cmp r2, r0 - bcc .L1284 - b .L1280 -.L1282: + bcc .L1297 + b .L1293 +.L1295: add r3, r3, #1 uxth r3, r3 -.L1281: +.L1294: sxth r1, r3 cmp r1, r0 - bcc .L1285 -.L1280: - ldr r2, .L1301 + bcc .L1298 +.L1293: + ldr r2, .L1314 ldr r1, [r2, #3964] ldrh r3, [r1, #0] cmp r3, #0 - bne .L1286 + bne .L1299 movw r0, #3962 ldrh r0, [r2, r0] cmp r0, #0 movne r0, #3936 ldrneh r2, [r2, r0] - bne .L1287 - b .L1286 -.L1291: + bne .L1300 + b .L1299 +.L1304: mov ip, r0, asl #1 ldrh ip, [r1, ip] cmp ip, #0 - beq .L1288 - ldr r1, .L1301 + beq .L1301 + ldr r1, .L1314 mov r8, #3936 - ldr r7, .L1301+4 + ldr r7, .L1314+4 mov r6, #0 - b .L1289 -.L1290: + b .L1302 +.L1303: ldr r4, [r1, #3964] mov ip, r2, asl #1 rsb r5, r0, r2 @@ -11048,34 +11122,34 @@ FtlScanSysBlk: mov sl, r5, asl #1 uxth r3, r3 strh r9, [r4, sl] @ movhi - ldr r4, [r7, #-908] + ldr r4, [r7, #-904] ldr r2, [r4, r2, asl #2] str r2, [r4, r5, asl #2] ldr r2, [r1, #3964] strh r6, [r2, ip] @ movhi -.L1289: +.L1302: ldrh ip, [r1, r8] sxth r2, r3 cmp r2, ip - blt .L1290 - b .L1286 -.L1288: + blt .L1303 + b .L1299 +.L1301: add r3, r3, #1 uxth r3, r3 -.L1287: +.L1300: sxth r0, r3 cmp r0, r2 - blt .L1291 -.L1286: + blt .L1304 +.L1299: mov r0, #0 add sp, sp, #28 ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} -.L1302: +.L1315: .align 2 -.L1301: +.L1314: .word .LANCHOR0 .word .LANCHOR2 - .word -1044 + .word -1040 .word .LANCHOR2-1772 .word -1772 .word -1768 @@ -11089,7 +11163,7 @@ FtlGetLastWrittenPage: @ args = 0, pretend = 0, frame = 104 @ frame_needed = 0, uses_anonymous_args = 0 cmp r1, #1 - ldr r3, .L1314 + ldr r3, .L1327 stmfd sp!, {r4, r5, r6, r7, r8, sl, lr} .save {r4, r5, r6, r7, r8, sl, lr} movweq r2, #3918 @@ -11115,9 +11189,9 @@ FtlGetLastWrittenPage: bl FlashReadPages ldr r3, [sp, #40] cmn r3, #1 - bne .L1307 - b .L1312 -.L1310: + bne .L1320 + b .L1325 +.L1323: add r6, r6, r3 mov r0, r7 mov r1, #1 @@ -11130,30 +11204,30 @@ FtlGetLastWrittenPage: bl FlashReadPages ldr r3, [sp, #40] cmn r3, #1 - bne .L1308 + bne .L1321 ldr r3, [sp, #44] cmn r3, #1 - bne .L1308 + bne .L1321 ldr r3, [sp, #4] cmn r3, #1 subne r4, r6, #1 uxthne r4, r4 - bne .L1312 -.L1308: + bne .L1325 +.L1321: add r6, r6, #1 uxth r8, r6 -.L1312: +.L1325: sxth r6, r8 sxth r3, r4 cmp r6, r3 - ble .L1310 -.L1307: + ble .L1323 +.L1320: sxth r0, r4 add sp, sp, #108 ldmfd sp!, {r4, r5, r6, r7, r8, sl, pc} -.L1315: +.L1328: .align 2 -.L1314: +.L1327: .word .LANCHOR0 .fnend .size FtlGetLastWrittenPage, .-FtlGetLastWrittenPage @@ -11166,15 +11240,15 @@ FtlLoadSysInfo: @ frame_needed = 0, uses_anonymous_args = 0 stmfd sp!, {r3, r4, r5, r6, r7, lr} .save {r3, r4, r5, r6, r7, lr} - mov r5, #0 - ldr r4, .L1332 - mov r1, r5 - ldr r2, .L1332+4 - ldr r7, .L1332+8 - ldr r3, [r4, #-936] - str r5, [r4, #188] + mov r1, #0 + ldr r4, .L1345 + ldr r2, .L1345+4 + ldr r7, .L1345+8 + ldr r3, [r4, #-956] ldr r0, [r4, #-2016] str r3, [r4, #192] + ldr r3, [r4, #-932] + str r3, [r4, #196] mov r3, #3856 ldrh r2, [r2, r3] mov r2, r2, asl #1 @@ -11182,52 +11256,53 @@ FtlLoadSysInfo: ldrh r0, [r4, r7] movw r3, #65535 cmp r0, r3 - beq .L1330 + beq .L1343 mov r1, #1 + mov r5, #0 bl FtlGetLastWrittenPage - ldr r3, .L1332+12 + ldr r3, .L1345+12 add r2, r0, #1 mov r6, r0 strh r2, [r4, r3] @ movhi - b .L1318 -.L1321: + b .L1331 +.L1334: ldrh r2, [r4, r7] mov r1, #1 - ldr r0, .L1332+16 + ldr r0, .L1345+16 orr r3, r3, r2, asl #10 - str r3, [r4, #184] - ldr r3, [r4, #-960] - mov r2, r1 str r3, [r4, #188] + ldr r3, [r4, #-956] + mov r2, r1 + str r3, [r4, #192] bl FlashReadPages - ldr r3, [r4, #180] + ldr r3, [r4, #184] cmn r3, #1 - beq .L1319 - ldr r3, [r4, #-960] + beq .L1332 + ldr r3, [r4, #-956] ldr r2, [r3, #0] - ldr r3, .L1332+20 + ldr r3, .L1345+20 cmp r2, r3 - bne .L1319 - ldr r3, [r4, #-936] + bne .L1332 + ldr r3, [r4, #-932] ldrh r2, [r3, #0] movw r3, #61604 cmp r2, r3 - beq .L1320 -.L1319: + beq .L1333 +.L1332: sub r5, r5, #1 uxth r5, r5 -.L1318: +.L1331: add r3, r5, r6 sxth r3, r3 cmp r3, #0 - bge .L1321 -.L1320: - ldr r4, .L1332 + bge .L1334 +.L1333: + ldr r4, .L1345 mov r2, #48 - ldr r5, .L1332+4 + ldr r5, .L1345+4 mov r6, #3856 - ldr r0, .L1332+24 - ldr r7, [r4, #188] + ldr r0, .L1345+24 + ldr r7, [r4, #192] mov r1, r7 bl memcpy ldrh r2, [r5, r6] @@ -11236,7 +11311,7 @@ FtlLoadSysInfo: mov r2, r2, asl #1 bl memcpy ldrh r1, [r5, r6] - ldr r3, [r4, #188] + ldr r3, [r4, #192] ldr r0, [r4, #-1840] mov r2, r1, lsr #3 add r1, r1, #24 @@ -11247,41 +11322,41 @@ FtlLoadSysInfo: movw r3, #3960 ldrh r3, [r5, r3] cmp r3, #0 - beq .L1322 + beq .L1335 ldrh r3, [r5, r6] mov r2, #3952 ldrh r2, [r5, r2] - ldr r0, [r4, #-900] + ldr r0, [r4, #-896] mov r1, r3, lsr #3 add r1, r1, r3, asl #1 - ldr r3, [r4, #188] + ldr r3, [r4, #192] add r1, r1, #52 mov r2, r2, asl #2 ubfx r1, r1, #2, #14 add r1, r3, r1, asl #2 bl memcpy -.L1322: - ldr r4, .L1332 - ldr r3, .L1332+20 +.L1335: + ldr r4, .L1345 + ldr r3, .L1345+20 ldr r2, [r4, #-2072] cmp r2, r3 - bne .L1330 - ldr r3, .L1332+28 + bne .L1343 + ldr r3, .L1345+28 movw r1, #3870 ldrb r0, [r4, #-2062] @ zero_extendqisi2 ldrh r2, [r4, r3] - ldr r3, .L1332+32 + ldr r3, .L1345+32 strh r2, [r4, r3] @ movhi - ldr r3, .L1332+4 + ldr r3, .L1345+4 ldrh r1, [r3, r1] cmp r0, r1 - bne .L1330 + bne .L1343 movw r1, #3916 movw r0, #3922 ldrh r1, [r3, r1] movw r5, #65535 ldrh r0, [r3, r0] - str r2, [r4, #216] + str r2, [r4, #220] mul r1, r2, r1 str r1, [r3, #3976] mul r1, r0, r1 @@ -11294,10 +11369,10 @@ FtlLoadSysInfo: movw r2, #3848 ldrh r1, [r3, r2] bl __aeabi_uidiv - ldr r3, .L1332+36 - ldr r1, .L1332+40 + ldr r3, .L1345+36 + ldr r1, .L1345+40 strh r0, [r4, r3] @ movhi - ldr r3, .L1332+44 + ldr r3, .L1345+44 ldrh r2, [r4, r3] add r3, r3, #62 strh r2, [r4, r3] @ movhi @@ -11309,12 +11384,12 @@ FtlLoadSysInfo: ldrb r3, [r4, #-2061] @ zero_extendqisi2 strh r0, [r4, r1] @ movhi mvn r1, #0 - ldr r0, .L1332+48 + ldr r0, .L1345+48 strb r3, [r4, #-1988] - ldr r3, .L1332+52 + ldr r3, .L1345+52 strh r1, [r4, r3] @ movhi mov r3, #0 - ldr r1, .L1332+56 + ldr r1, .L1345+56 strh r3, [r4, r0] @ movhi strb r3, [r4, #-1754] ldrh r0, [r4, r1] @@ -11323,7 +11398,7 @@ FtlLoadSysInfo: str r3, [r4, #-1816] strh r0, [r4, r1] @ movhi sub r1, r1, #104 - ldr r0, .L1332+60 + ldr r0, .L1345+60 ldrh r1, [r4, r1] mov ip, r1, lsr #6 and r1, r1, #63 @@ -11331,12 +11406,12 @@ FtlLoadSysInfo: ldrb r1, [r4, #-2060] @ zero_extendqisi2 strh ip, [r4, r0] @ movhi strb r1, [r4, #-1940] - ldr r1, .L1332+64 + ldr r1, .L1345+64 ldrh r0, [r4, r1] add r1, r1, #150 strh r0, [r4, r1] @ movhi - ldr r1, .L1332+68 - ldr r0, .L1332+72 + ldr r1, .L1345+68 + ldr r0, .L1345+72 ldrh r1, [r4, r1] mov ip, r1, lsr #6 and r1, r1, #63 @@ -11356,54 +11431,54 @@ FtlLoadSysInfo: ldr r1, [r4, #-1804] cmp r3, r1 strhi r3, [r4, #-1804] - ldr r4, .L1332 + ldr r4, .L1345 ldr r3, [r4, #-2036] ldr r1, [r4, #-1800] cmp r3, r1 strhi r3, [r4, #-1800] cmp r2, r5 - beq .L1325 - ldr r0, .L1332+76 + beq .L1338 + ldr r0, .L1345+76 bl make_superblock -.L1325: - ldr r3, .L1332+80 +.L1338: + ldr r3, .L1345+80 ldrh r3, [r4, r3] cmp r3, r5 - beq .L1326 - ldr r0, .L1332+84 + beq .L1339 + ldr r0, .L1345+84 bl make_superblock -.L1326: - ldr r5, .L1332 +.L1339: + ldr r5, .L1345 movw r4, #65535 - ldr r3, .L1332+88 + ldr r3, .L1345+88 ldrh r3, [r5, r3] cmp r3, r4 - beq .L1327 - ldr r0, .L1332+92 + beq .L1340 + ldr r0, .L1345+92 bl make_superblock -.L1327: - ldr r3, .L1332+52 +.L1340: + ldr r3, .L1345+52 ldrh r3, [r5, r3] cmp r3, r4 - beq .L1331 - ldr r0, .L1332+96 + beq .L1344 + ldr r0, .L1345+96 bl make_superblock mov r0, #0 ldmfd sp!, {r3, r4, r5, r6, r7, pc} -.L1330: +.L1343: mvn r0, #0 ldmfd sp!, {r3, r4, r5, r6, r7, pc} -.L1331: +.L1344: mov r0, #0 ldmfd sp!, {r3, r4, r5, r6, r7, pc} -.L1333: +.L1346: .align 2 -.L1332: +.L1345: .word .LANCHOR2 .word .LANCHOR0 .word -1772 .word -1770 - .word .LANCHOR2+180 + .word .LANCHOR2+184 .word 1179929683 .word .LANCHOR2-2072 .word -2064 @@ -11435,45 +11510,45 @@ FtlLoadBbt: @ frame_needed = 0, uses_anonymous_args = 0 stmfd sp!, {r4, r5, r6, r7, r8, lr} .save {r4, r5, r6, r7, r8, lr} - ldr r6, .L1350 - ldr r8, .L1350+4 - ldr r3, [r6, #-960] + ldr r6, .L1363 + ldr r8, .L1363+4 + ldr r3, [r6, #-956] mov r7, r6 - ldr r4, [r6, #-936] - str r3, [r6, #188] - str r4, [r6, #192] + ldr r4, [r6, #-932] + str r3, [r6, #192] + str r4, [r6, #196] bl FtlBbtMemInit movw r3, #3912 ldrh r5, [r8, r3] sub r5, r5, #1 uxth r5, r5 - b .L1335 -.L1339: + b .L1348 +.L1352: mov r1, #1 mov r3, r5, asl #10 - ldr r0, .L1350+8 + ldr r0, .L1363+8 mov r2, r1 - str r3, [r6, #184] + str r3, [r6, #188] bl FlashReadPages - ldr r3, [r6, #180] - cmn r3, #1 - bne .L1336 ldr r3, [r6, #184] + cmn r3, #1 + bne .L1349 + ldr r3, [r6, #188] mov r1, #1 - ldr r0, .L1350+8 + ldr r0, .L1363+8 mov r2, r1 add r3, r3, #1 - str r3, [r6, #184] + str r3, [r6, #188] bl FlashReadPages -.L1336: - ldr r3, [r7, #180] +.L1349: + ldr r3, [r7, #184] cmn r3, #1 - beq .L1337 + beq .L1350 ldrh r2, [r4, #0] movw r3, #61649 cmp r2, r3 - bne .L1337 - ldr r3, .L1350+4 + bne .L1350 + ldr r3, .L1363+4 movw r2, #3980 strh r5, [r3, r2] @ movhi ldr r2, [r4, #4] @@ -11481,41 +11556,41 @@ FtlLoadBbt: mov r2, #3984 ldrh r1, [r4, #8] strh r1, [r3, r2] @ movhi - b .L1338 -.L1337: + b .L1351 +.L1350: sub r5, r5, #1 uxth r5, r5 -.L1335: +.L1348: movw r3, #3912 ldrh r3, [r8, r3] sub r3, r3, #48 cmp r5, r3 - bgt .L1339 -.L1338: - ldr r5, .L1350+4 + bgt .L1352 +.L1351: + ldr r5, .L1363+4 movw r8, #3980 movw r3, #65535 ldrh r2, [r5, r8] cmp r2, r3 - beq .L1349 + beq .L1362 mov r6, #3984 ldrh r2, [r5, r6] cmp r2, r3 - beq .L1341 - ldr r7, .L1350 + beq .L1354 + ldr r7, .L1363 mov r1, #1 mov r2, r2, asl #10 - add r0, r7, #180 - str r2, [r7, #184] + add r0, r7, #184 + str r2, [r7, #188] mov r2, r1 bl FlashReadPages - ldr r3, [r7, #180] + ldr r3, [r7, #184] cmn r3, #1 - beq .L1341 + beq .L1354 ldrh r2, [r4, #0] movw r3, #61649 cmp r2, r3 - bne .L1341 + bne .L1354 ldr r3, [r4, #4] ldr r2, [r5, #3988] cmp r3, r2 @@ -11524,98 +11599,98 @@ FtlLoadBbt: ldrhih r3, [r4, #8] strhih r2, [r5, r8] @ movhi strhih r3, [r5, r6] @ movhi -.L1341: - ldr r8, .L1350+4 +.L1354: + ldr r8, .L1363+4 movw r3, #3980 mov r1, #1 mov r6, #0 - ldr r5, .L1350 + ldr r5, .L1363 ldrh r0, [r8, r3] bl FtlGetLastWrittenPage movw r3, #3982 add r2, r0, #1 mov r7, r0 strh r2, [r8, r3] @ movhi - b .L1342 -.L1345: + b .L1355 +.L1358: movw r2, #3980 mov r1, #1 ldrh r2, [r8, r2] - ldr r0, .L1350+8 + ldr r0, .L1363+8 orr r3, r3, r2, asl #10 - str r3, [r5, #184] - ldr r3, [r5, #-960] - mov r2, r1 str r3, [r5, #188] + ldr r3, [r5, #-956] + mov r2, r1 + str r3, [r5, #192] bl FlashReadPages - ldr r3, [r5, #180] + ldr r3, [r5, #184] cmn r3, #1 - beq .L1343 + beq .L1356 ldrh r2, [r4, #0] movw r3, #61649 cmp r2, r3 - beq .L1344 -.L1343: + beq .L1357 +.L1356: sub r6, r6, #1 uxth r6, r6 -.L1342: +.L1355: add r3, r6, r7 sxth r3, r3 cmp r3, #0 - bge .L1345 -.L1344: - ldr r3, .L1350+4 + bge .L1358 +.L1357: + ldr r3, .L1363+4 movw r2, #3986 ldrh r1, [r4, #10] ldrh r0, [r4, #12] strh r1, [r3, r2] @ movhi movw r2, #65535 cmp r0, r2 - beq .L1346 + beq .L1359 ldr r2, [r3, #3844] cmp r0, r2 - beq .L1346 + beq .L1359 movw r1, #3858 ldrh r3, [r3, r1] mov r3, r3, lsr #2 cmp r2, r3 - bcs .L1346 + bcs .L1359 cmp r0, r3 - bcs .L1346 + bcs .L1359 bl FtlSysBlkNumInit -.L1346: - ldr r6, .L1350+12 +.L1359: + ldr r6, .L1363+12 mov r4, #0 - ldr r8, .L1350+4 + ldr r8, .L1363+4 movw r7, #3870 - ldr r5, .L1350 - b .L1347 -.L1348: - ldr r3, .L1350+16 - ldr r1, [r5, #188] + ldr r5, .L1363 + b .L1360 +.L1361: + ldr r3, .L1363+16 + ldr r1, [r5, #192] ldr r0, [r6, #4]! ldrh r2, [r5, r3] mov r2, r2, asl #2 mla r1, r4, r2, r1 bl memcpy add r4, r4, #1 -.L1347: +.L1360: ldrh r3, [r8, r7] cmp r4, r3 - bcc .L1348 + bcc .L1361 mov r0, #0 ldmfd sp!, {r4, r5, r6, r7, r8, pc} -.L1349: +.L1362: mvn r0, #0 ldmfd sp!, {r4, r5, r6, r7, r8, pc} -.L1351: +.L1364: .align 2 -.L1350: +.L1363: .word .LANCHOR2 .word .LANCHOR0 - .word .LANCHOR2+180 + .word .LANCHOR2+184 .word .LANCHOR0+4004 - .word -1028 + .word -1024 .fnend .size FtlLoadBbt, .-FtlLoadBbt .align 2 @@ -11628,63 +11703,63 @@ FtlLoadFactoryBbt: stmfd sp!, {r3, r4, r5, r6, r7, r8, r9, sl, fp, lr} .save {r3, r4, r5, r6, r7, r8, r9, sl, fp, lr} mov r5, #0 - ldr r3, .L1359 + ldr r3, .L1372 movw fp, #3870 - ldr r7, .L1359+4 - ldr r6, .L1359+8 - ldr r2, [r3, #-960] - ldr r8, [r3, #-936] - str r2, [r3, #188] - str r8, [r3, #192] - b .L1353 -.L1358: + ldr r7, .L1372+4 + ldr r6, .L1372+8 + ldr r2, [r3, #-956] + ldr r8, [r3, #-932] + str r2, [r3, #192] + str r8, [r3, #196] + b .L1366 +.L1371: movw r9, #3912 mvn r3, #0 ldrh r4, [r6, r9] strh r3, [r7], #2 @ movhi add r4, r4, r3 - ldr sl, .L1359 + ldr sl, .L1372 uxth r4, r4 - b .L1354 -.L1357: + b .L1367 +.L1370: mla r3, r3, r5, r4 mov r1, #1 - ldr r0, .L1359+12 + ldr r0, .L1372+12 mov r2, r1 mov r3, r3, asl #10 - str r3, [sl, #184] + str r3, [sl, #188] bl FlashReadPages - ldr r3, [sl, #180] + ldr r3, [sl, #184] cmn r3, #1 - beq .L1355 + beq .L1368 ldrh r2, [r8, #0] movw r3, #61664 cmp r2, r3 streqh r4, [r7, #-2] @ movhi - beq .L1356 -.L1355: + beq .L1369 +.L1368: sub r4, r4, #1 uxth r4, r4 -.L1354: +.L1367: ldrh r3, [r6, r9] sub r2, r3, #16 cmp r4, r2 - bgt .L1357 -.L1356: + bgt .L1370 +.L1369: add r5, r5, #1 -.L1353: +.L1366: ldrh r3, [r6, fp] cmp r5, r3 - bcc .L1358 + bcc .L1371 mov r0, #0 ldmfd sp!, {r3, r4, r5, r6, r7, r8, r9, sl, fp, pc} -.L1360: +.L1373: .align 2 -.L1359: +.L1372: .word .LANCHOR2 .word .LANCHOR0+3992 .word .LANCHOR0 - .word .LANCHOR2+180 + .word .LANCHOR2+184 .fnend .size FtlLoadFactoryBbt, .-FtlLoadFactoryBbt .align 2 @@ -11702,13 +11777,13 @@ FlashProgSlc2KPages: mov r9, r2 str r3, [sp, #12] mov r4, r0 - ldr r3, .L1380 + ldr r3, .L1393 mov r6, r0 mov r8, #0 - ldr r7, .L1380+4 - ldrb fp, [r3, #2901] @ zero_extendqisi2 - b .L1362 -.L1369: + ldr r7, .L1393+4 + ldrb fp, [r3, #2997] @ zero_extendqisi2 + b .L1375 +.L1382: rsb r3, r8, sl add r2, sp, #20 mov r0, r6 @@ -11722,7 +11797,7 @@ FlashProgSlc2KPages: cmp r3, r2 mvncs r3, #0 strcs r3, [r6, #0] - bcs .L1364 + bcs .L1377 add r3, r7, r3 ldrb r5, [r3, #3764] @ zero_extendqisi2 mov r0, r5 @@ -11781,27 +11856,27 @@ FlashProgSlc2KPages: mvnne r3, #0 strne r3, [r6, #0] bl NandcFlashDeCs -.L1364: +.L1377: add r8, r8, #1 add r6, r6, #36 -.L1362: +.L1375: cmp r8, sl - bne .L1369 + bne .L1382 ldr r3, [sp, #12] cmp r3, #0 movne r6, #0 - ldrne r5, .L1380+8 - bne .L1370 - b .L1371 -.L1376: + ldrne r5, .L1393+8 + bne .L1383 + b .L1384 +.L1389: ldr r3, [r4, #0] cmn r3, #1 - bne .L1372 + bne .L1385 ldr r1, [r4, #4] - ldr r0, .L1380+12 + ldr r0, .L1393+12 bl printk - b .L1373 -.L1372: + b .L1386 +.L1385: rsb r3, r6, sl mov r1, r9 add r2, sp, #20 @@ -11810,12 +11885,12 @@ FlashProgSlc2KPages: str r3, [sp, #0] add r3, sp, #24 bl LogAddr2PhyAddr - ldr r2, [r5, #220] + ldr r2, [r5, #224] mov r3, #0 mov lr, r4 add ip, sp, #28 str r3, [r2, #0] - ldr r2, [r5, #224] + ldr r2, [r5, #228] str r3, [r2, #0] ldmia lr!, {r0, r1, r2, r3} stmia ip!, {r0, r1, r2, r3} @@ -11826,66 +11901,66 @@ FlashProgSlc2KPages: mov r1, #1 mov r2, r9 str r3, [ip, #0] - ldr r3, [r5, #220] - str r3, [sp, #36] ldr r3, [r5, #224] + str r3, [sp, #36] + ldr r3, [r5, #228] str r3, [sp, #40] bl FlashReadPages ldr r7, [sp, #28] cmn r7, #1 - bne .L1374 - ldr r0, .L1380+16 + bne .L1387 + ldr r0, .L1393+16 ldr r1, [r4, #4] bl printk str r7, [r4, #0] -.L1374: +.L1387: ldr r3, [r4, #12] cmp r3, #0 - beq .L1375 + beq .L1388 + ldr r2, [r3, #0] + ldr r3, [r5, #228] + ldr r3, [r3, #0] + cmp r2, r3 + beq .L1388 + ldr r0, .L1393+20 + ldr r1, [r4, #4] + bl printk + mvn r3, #0 + str r3, [r4, #0] +.L1388: + ldr r3, [r4, #8] + cmp r3, #0 + beq .L1386 ldr r2, [r3, #0] ldr r3, [r5, #224] ldr r3, [r3, #0] cmp r2, r3 - beq .L1375 - ldr r0, .L1380+20 + beq .L1386 + ldr r0, .L1393+24 ldr r1, [r4, #4] bl printk mvn r3, #0 str r3, [r4, #0] -.L1375: - ldr r3, [r4, #8] - cmp r3, #0 - beq .L1373 - ldr r2, [r3, #0] - ldr r3, [r5, #220] - ldr r3, [r3, #0] - cmp r2, r3 - beq .L1373 - ldr r0, .L1380+24 - ldr r1, [r4, #4] - bl printk - mvn r3, #0 - str r3, [r4, #0] -.L1373: +.L1386: add r6, r6, #1 add r4, r4, #36 -.L1370: +.L1383: cmp r6, sl - bne .L1376 -.L1371: + bne .L1389 +.L1384: mov r0, #0 add sp, sp, #68 ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} -.L1381: +.L1394: .align 2 -.L1380: +.L1393: .word .LANCHOR1 .word .LANCHOR0 .word .LANCHOR2 - .word .LC108 .word .LC109 .word .LC110 .word .LC111 + .word .LC112 .fnend .size FlashProgSlc2KPages, .-FlashProgSlc2KPages .align 2 @@ -11899,7 +11974,7 @@ FlashProgPages: .save {r4, r5, r6, r7, r8, r9, sl, fp, lr} .pad #76 sub sp, sp, #76 - ldr r5, .L1410 + ldr r5, .L1423 mov r9, r0 str r1, [sp, #8] mov sl, r2 @@ -11910,13 +11985,13 @@ FlashProgPages: cmp r6, #0 moveq fp, r5 str ip, [sp, #20] - ldr ip, .L1410+4 - ldrb ip, [ip, #2901] @ zero_extendqisi2 + ldr ip, .L1423+4 + ldrb ip, [ip, #2997] @ zero_extendqisi2 str ip, [sp, #12] - beq .L1383 + beq .L1396 bl FlashProgSlc2KPages - b .L1384 -.L1397: + b .L1397 +.L1410: mov r4, #36 ldr r2, [sp, #8] mul r4, r4, r6 @@ -11935,22 +12010,22 @@ FlashProgPages: mvncs r3, #0 strcs r3, [r9, r4] mov r8, r0 - bcs .L1386 + bcs .L1399 ldrb r1, [r5, #3837] @ zero_extendqisi2 add r2, fp, r2, asl #4 cmp r1, #0 ldr r2, [r2, #3636] moveq r8, #0 cmp r2, #0 - beq .L1388 + beq .L1401 cmp r3, #1 - bne .L1389 + bne .L1402 ldr r0, [r5, #3012] bl NandcIqrWaitFlashReady -.L1389: +.L1402: ldrb r0, [sp, #32] @ zero_extendqisi2 bl FlashWaitCmdDone -.L1388: +.L1401: ldr r2, [sp, #32] mov r1, #0 cmp r8, #0 @@ -11970,10 +12045,10 @@ FlashProgPages: cmp r3, #1 strb r4, [r2, #3628] mov r0, r4 - bne .L1391 + bne .L1404 bl NandcWaitFlashReady - b .L1392 -.L1391: + b .L1405 +.L1404: bl NandcFlashCs ldr r3, [sp, #32] mov r0, r4 @@ -11985,34 +12060,34 @@ FlashProgPages: bl FlashWaitReadyEN mov r0, r4 bl NandcFlashDeCs -.L1392: +.L1405: ldr r2, [sp, #20] sub r3, r2, #1 cmp r3, #6 - bhi .L1393 + bhi .L1406 add r3, r5, r4 ldrb r3, [r3, #3756] @ zero_extendqisi2 cmp r3, #0 - beq .L1393 + beq .L1406 mov r0, r4 ldrb r1, [r5, #1] @ zero_extendqisi2 - ldr r2, .L1410+8 + ldr r2, .L1423+8 mov r3, #0 bl HynixSetRRPara -.L1393: +.L1406: mov r0, r4 bl NandcFlashCs cmp sl, #1 mov r0, r4 - bne .L1394 + bne .L1407 ldrb r3, [r5, #928] @ zero_extendqisi2 cmp r3, #0 - beq .L1394 + beq .L1407 bl flash_enter_slc_mode - b .L1395 -.L1394: + b .L1408 +.L1407: bl flash_exit_slc_mode -.L1395: +.L1408: mov r0, r4 ldr r1, [sp, #28] bl FlashProgFirstCmd @@ -12024,7 +12099,7 @@ FlashProgPages: ldr r3, [r7, #8] bl NandcXferData cmp r8, #0 - beq .L1396 + beq .L1409 mov r0, r4 ldr r1, [sp, #28] bl FlashProgDpFirstCmd @@ -12051,58 +12126,58 @@ FlashProgPages: ldr r2, [sp, #12] ldr r3, [r3, #8] bl NandcXferData -.L1396: +.L1409: mov r0, r4 ldr r1, [sp, #28] bl FlashProgSecondCmd mov r0, r4 bl NandcFlashDeCs add r6, r6, r8 -.L1386: +.L1399: add r6, r6, #1 -.L1383: +.L1396: ldr r3, [sp, #8] cmp r6, r3 - bcc .L1397 - ldr r5, .L1410 + bcc .L1410 + ldr r5, .L1423 mov r4, #0 - ldr r6, .L1410+12 + ldr r6, .L1423+12 ldr r0, [r5, #3012] bl NandcIqrWaitFlashReady - b .L1398 -.L1400: + b .L1411 +.L1413: uxtb r0, r4 bl FlashWaitCmdDone cmp sl, #1 - bne .L1399 + bne .L1412 ldrb r3, [r5, #928] @ zero_extendqisi2 cmp r3, #0 - beq .L1399 + beq .L1412 ldrb r0, [r6, r4, asl #4] @ zero_extendqisi2 bl flash_exit_slc_mode -.L1399: +.L1412: add r4, r4, #1 -.L1398: +.L1411: ldrb r3, [r5, #3762] @ zero_extendqisi2 cmp r4, r3 - bcc .L1400 + bcc .L1413 ldr r2, [sp, #16] cmp r2, #0 ldreq r0, [sp, #16] - beq .L1384 + beq .L1397 mov r5, #0 - ldr r4, .L1410+16 + ldr r4, .L1423+16 ldr r6, [sp, #8] - b .L1401 -.L1406: + b .L1414 +.L1419: ldr r3, [r9, #0] cmn r3, #1 - bne .L1402 + bne .L1415 ldr r1, [r9, #4] - ldr r0, .L1410+20 + ldr r0, .L1423+20 bl printk - b .L1403 -.L1402: + b .L1416 +.L1415: rsb r3, r5, r6 mov r1, sl add r2, sp, #28 @@ -12111,12 +12186,12 @@ FlashProgPages: str r3, [sp, #0] add r3, sp, #32 bl LogAddr2PhyAddr - ldr r2, [r4, #220] + ldr r2, [r4, #224] mov r3, #0 mov lr, r9 add ip, sp, #36 str r3, [r2, #0] - ldr r2, [r4, #224] + ldr r2, [r4, #228] str r3, [r2, #0] ldmia lr!, {r0, r1, r2, r3} stmia ip!, {r0, r1, r2, r3} @@ -12127,68 +12202,68 @@ FlashProgPages: mov r1, #1 mov r2, sl str r3, [ip, #0] - ldr r3, [r4, #220] - str r3, [sp, #44] ldr r3, [r4, #224] + str r3, [sp, #44] + ldr r3, [r4, #228] str r3, [sp, #48] bl FlashReadPages ldr r7, [sp, #36] cmn r7, #1 - bne .L1404 - ldr r0, .L1410+24 + bne .L1417 + ldr r0, .L1423+24 ldr r1, [r9, #4] bl printk str r7, [r9, #0] -.L1404: +.L1417: ldr r3, [r9, #12] cmp r3, #0 - beq .L1405 + beq .L1418 + ldr r2, [r3, #0] + ldr r3, [r4, #228] + ldr r3, [r3, #0] + cmp r2, r3 + beq .L1418 + ldr r0, .L1423+28 + ldr r1, [r9, #4] + bl printk + mvn r3, #0 + str r3, [r9, #0] +.L1418: + ldr r3, [r9, #8] + cmp r3, #0 + beq .L1416 ldr r2, [r3, #0] ldr r3, [r4, #224] ldr r3, [r3, #0] cmp r2, r3 - beq .L1405 - ldr r0, .L1410+28 + beq .L1416 + ldr r0, .L1423+32 ldr r1, [r9, #4] bl printk mvn r3, #0 str r3, [r9, #0] -.L1405: - ldr r3, [r9, #8] - cmp r3, #0 - beq .L1403 - ldr r2, [r3, #0] - ldr r3, [r4, #220] - ldr r3, [r3, #0] - cmp r2, r3 - beq .L1403 - ldr r0, .L1410+32 - ldr r1, [r9, #4] - bl printk - mvn r3, #0 - str r3, [r9, #0] -.L1403: +.L1416: add r5, r5, #1 add r9, r9, #36 -.L1401: +.L1414: cmp r5, r6 - bne .L1406 + bne .L1419 mov r0, #0 -.L1384: +.L1397: add sp, sp, #76 ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} -.L1411: +.L1424: .align 2 -.L1410: +.L1423: .word .LANCHOR0 .word .LANCHOR1 .word .LANCHOR0+4 .word .LANCHOR0+3628 .word .LANCHOR2 - .word .LC108 .word .LC109 .word .LC110 .word .LC111 + .word .LC112 .fnend .size FlashProgPages, .-FlashProgPages .align 2 @@ -12200,35 +12275,35 @@ FtlVpcTblFlush.part.14: stmfd sp!, {r3, r4, r5, r6, r7, r8, sl, lr} .save {r3, r4, r5, r6, r7, r8, sl, lr} mov r1, #255 - ldr r4, .L1424 + ldr r4, .L1437 mov r7, #3856 - ldr r6, .L1424+4 - ldr r3, [r4, #-960] - ldr r5, [r4, #-936] - str r3, [r4, #188] - ldr r3, .L1424+8 - str r5, [r4, #192] + ldr r6, .L1437+4 + ldr r3, [r4, #-956] + ldr r5, [r4, #-932] + str r3, [r4, #192] + ldr r3, .L1437+8 + str r5, [r4, #196] ldrh r3, [r4, r3] strh r3, [r5, #2] @ movhi - ldr r3, .L1424+12 + ldr r3, .L1437+12 strh r3, [r5, #0] @ movhi ldr r3, [r4, #-1764] str r3, [r5, #4] mov r3, #0 str r3, [r5, #8] str r3, [r5, #12] - ldr r3, .L1424+16 + ldr r3, .L1437+16 str r3, [r4, #-2072] - ldr r3, .L1424+20 + ldr r3, .L1437+20 str r3, [r4, #-2068] - ldr r3, .L1424+24 + ldr r3, .L1437+24 ldrh r2, [r4, r3] - ldr r3, .L1424+28 + ldr r3, .L1437+28 strh r2, [r4, r3] @ movhi movw r3, #3870 ldrh r3, [r6, r3] strb r3, [r4, #-2062] - ldr r3, .L1424+32 + ldr r3, .L1437+32 ldrh r2, [r4, r3] sub r3, r3, #62 strh r2, [r4, r3] @ movhi @@ -12236,11 +12311,11 @@ FtlVpcTblFlush.part.14: ldrh r2, [r4, r3] ldrb r3, [r4, #-1990] @ zero_extendqisi2 orr r2, r3, r2, asl #6 - ldr r3, .L1424+36 + ldr r3, .L1437+36 strh r2, [r4, r3] @ movhi ldrb r3, [r4, #-1988] @ zero_extendqisi2 strb r3, [r4, #-2061] - ldr r3, .L1424+40 + ldr r3, .L1437+40 ldrh r2, [r4, r3] sub r3, r3, #106 strh r2, [r4, r3] @ movhi @@ -12248,20 +12323,20 @@ FtlVpcTblFlush.part.14: ldrh r2, [r4, r3] ldrb r3, [r4, #-1942] @ zero_extendqisi2 orr r2, r3, r2, asl #6 - ldr r3, .L1424+44 + ldr r3, .L1437+44 strh r2, [r4, r3] @ movhi ldrb r3, [r4, #-1940] @ zero_extendqisi2 strb r3, [r4, #-2060] - ldr r3, .L1424+48 + ldr r3, .L1437+48 ldrh r2, [r4, r3] sub r3, r3, #150 strh r2, [r4, r3] @ movhi add r3, r3, #152 - ldr r0, [r4, #188] + ldr r0, [r4, #192] ldrh r2, [r4, r3] ldrb r3, [r4, #-1894] @ zero_extendqisi2 orr r2, r3, r2, asl #6 - ldr r3, .L1424+52 + ldr r3, .L1437+52 strh r2, [r4, r3] @ movhi ldrb r3, [r4, #-1892] @ zero_extendqisi2 strb r3, [r4, #-2059] @@ -12271,21 +12346,29 @@ FtlVpcTblFlush.part.14: str r3, [r4, #-2032] ldr r3, [r4, #-1800] str r3, [r4, #-2036] - movw r3, #3926 + ldr r3, .L1437+56 + ldrh r2, [r4, r3] + ldr r3, .L1437+60 + strh r2, [r4, r3] @ movhi + add r3, r3, #888 + ldrh r2, [r4, r3] + ldr r3, .L1437+64 + strh r2, [r4, r3] @ movhi + add r3, r3, #5952 ldrh r2, [r6, r3] bl ftl_memset - ldr r1, .L1424+56 + ldr r1, .L1437+68 mov r2, #48 - ldr r0, [r4, #188] + ldr r0, [r4, #192] bl memcpy ldrh r2, [r6, r7] - ldr r0, [r4, #188] + ldr r0, [r4, #192] ldr r1, [r4, #-2016] mov r2, r2, asl #1 add r0, r0, #48 bl memcpy ldrh r2, [r6, r7] - ldr r3, [r4, #188] + ldr r3, [r4, #192] add r0, r2, #24 ldr r1, [r4, #-1840] mov r2, r2, lsr #3 @@ -12296,9 +12379,9 @@ FtlVpcTblFlush.part.14: movw r3, #3960 ldrh r3, [r6, r3] cmp r3, #0 - beq .L1413 + beq .L1426 ldrh r3, [r6, r7] - ldr r1, [r4, #188] + ldr r1, [r4, #192] mov r0, r3, lsr #3 add r0, r0, r3, asl #1 mov r3, #3952 @@ -12307,107 +12390,99 @@ FtlVpcTblFlush.part.14: ubfx r0, r0, #2, #14 mov r2, r2, asl #2 add r0, r1, r0, asl #2 - ldr r1, [r4, #-1032] + ldr r1, [r4, #-1028] bl memcpy -.L1413: +.L1426: mov r0, #0 - ldr r4, .L1424 + ldr r4, .L1437 bl FtlUpdateVaildLpn - ldr r8, .L1424+8 - mov r6, #0 - movw sl, #65535 -.L1423: - ldr r3, [r4, #-960] - mov r1, #1 - ldr r7, .L1424+60 - ldrh r2, [r4, r8] - str r3, [r4, #188] - ldr r3, [r4, #-936] - ldr r0, .L1424+64 + ldr sl, .L1437+8 + ldr r6, .L1437+72 + mov r7, #0 + movw r8, #65535 +.L1436: + ldr r3, [r4, #-956] + ldrh r2, [r4, sl] + ldr r0, .L1437+4 str r3, [r4, #192] - ldrh r3, [r4, r7] - orr r3, r3, r2, asl #10 - mov r2, r1 - str r3, [r4, #184] - mov r3, r1 - bl FlashProgPages - ldr r1, .L1424+4 - movw r3, #3918 - ldrh r2, [r4, r7] - ldrh r3, [r1, r3] - sub r3, r3, #1 - cmp r2, r3 - blt .L1415 - ldr r3, .L1424+68 - ldrh r2, [r4, r8] - ldrh sl, [r4, r3] + ldr r3, [r4, #-932] + str r3, [r4, #196] + ldrh r3, [r4, r6] + orr r1, r3, r2, asl #10 + str r1, [r4, #188] + movw r1, #3918 + ldrh r1, [r0, r1] + sub r1, r1, #1 + cmp r3, r1 + blt .L1428 + ldr r3, .L1437+76 + ldrh r8, [r4, r3] strh r2, [r4, r3] @ movhi mov r3, #0 - strh r3, [r4, r7] @ movhi + strh r3, [r4, r6] @ movhi bl FtlFreeSysBlkQueueOut ldr r3, [r4, #-1804] - mov r1, #1 add r2, r3, #1 str r2, [r4, #-1804] str r3, [r4, #-1764] mov r2, r0, asl #10 - strh r0, [r4, r8] @ movhi - str r2, [r4, #184] - mov r2, r1 + strh r0, [r4, sl] @ movhi + str r2, [r4, #188] str r3, [r5, #4] - mov r3, r1 strh r0, [r5, #2] @ movhi - ldr r0, .L1424+64 +.L1428: + mov r1, #1 + ldr r0, .L1437+80 + mov r2, r1 + mov r3, r1 bl FlashProgPages -.L1415: - ldr r2, .L1424+60 - ldr r1, [r4, #180] - ldrh r3, [r4, r2] - cmn r1, #1 + ldrh r3, [r4, r6] + ldr r2, [r4, #184] add r3, r3, #1 + cmn r2, #1 uxth r3, r3 - strh r3, [r4, r2] @ movhi - bne .L1416 + strh r3, [r4, r6] @ movhi + bne .L1429 cmp r3, #1 - add r6, r6, #1 - ldreq r1, .L1424+4 + add r7, r7, #1 + ldreq r2, .L1437+4 movweq r3, #3918 - uxth r6, r6 - ldreqh r3, [r1, r3] + uxth r7, r7 + ldreqh r3, [r2, r3] subeq r3, r3, #1 - streqh r3, [r4, r2] @ movhi - cmp r6, #3 - bls .L1423 - ldr r3, .L1424 - mov r2, r6 - ldr r0, .L1424+72 - ldr r1, [r3, #184] + streqh r3, [r4, r6] @ movhi + cmp r7, #3 + bls .L1436 + ldr r3, .L1437 + mov r2, r7 + ldr r0, .L1437+84 + ldr r1, [r3, #188] bl printk - ldr r3, .L1424+4 + ldr r3, .L1437+4 mov r2, #1 str r2, [r3, #4040] ldmfd sp!, {r3, r4, r5, r6, r7, r8, sl, pc} -.L1416: +.L1429: cmp r3, #1 - beq .L1423 - cmp r1, #256 - beq .L1423 + beq .L1436 + cmp r2, #256 + beq .L1436 movw r3, #65535 - cmp sl, r3 + cmp r8, r3 ldmeqfd sp!, {r3, r4, r5, r6, r7, r8, sl, pc} - mov r0, sl + mov r0, r8 mov r1, #1 bl FtlFreeSysBlkQueueIn ldmfd sp!, {r3, r4, r5, r6, r7, r8, sl, pc} -.L1425: +.L1438: .align 2 -.L1424: +.L1437: .word .LANCHOR2 .word .LANCHOR0 .word -1772 .word -3932 .word 1179929683 - .word 1342177352 + .word 1342177360 .word -1766 .word -2064 .word -1996 @@ -12416,11 +12491,14 @@ FtlVpcTblFlush.part.14: .word -2052 .word -1900 .word -2048 + .word -1142 + .word -2028 + .word -2026 .word .LANCHOR2-2072 .word -1770 - .word .LANCHOR2+180 .word -1768 - .word .LC112 + .word .LANCHOR2+184 + .word .LC113 .fnend .size FtlVpcTblFlush.part.14, .-FtlVpcTblFlush.part.14 .align 2 @@ -12432,21 +12510,21 @@ FtlVpcTblFlush: @ frame_needed = 0, uses_anonymous_args = 0 stmfd sp!, {r3, lr} .save {r3, lr} - ldr r3, .L1428 + ldr r3, .L1441 ldr r3, [r3, #4040] cmp r3, #0 - bne .L1427 + bne .L1440 bl FtlVpcTblFlush.part.14 -.L1427: +.L1440: mov r0, #0 ldmfd sp!, {r3, pc} -.L1429: +.L1442: .align 2 -.L1428: +.L1441: .word .LANCHOR0 .fnend .size FtlVpcTblFlush, .-FtlVpcTblFlush - .section .text.unlikely,"ax",%progbits + .section .text.unlikely .align 2 .type FtlBbmTblFlush.part.16, %function FtlBbmTblFlush.part.16: @@ -12456,43 +12534,43 @@ FtlBbmTblFlush.part.16: stmfd sp!, {r0, r1, r2, r4, r5, r6, r7, r8, r9, sl, fp, lr} .save {r0, r1, r2, r4, r5, r6, r7, r8, r9, sl, fp, lr} mov r1, #0 - ldr r7, .L1443 + ldr r7, .L1456 mov r5, #0 - ldr sl, .L1443+4 + ldr sl, .L1456+4 movw r9, #3870 - ldr r8, .L1443+8 - ldr r3, [r7, #-936] - ldr r0, [r7, #-960] - str r3, [r7, #192] + ldr r8, .L1456+8 + ldr r3, [r7, #-932] + ldr r0, [r7, #-956] + str r3, [r7, #196] movw r3, #3926 - str r0, [r7, #188] + str r0, [r7, #192] ldrh r2, [sl, r3] bl ftl_memset - b .L1431 -.L1432: - ldr r3, .L1443+12 + b .L1444 +.L1445: + ldr r3, .L1456+12 ldr r1, [r8, #4]! ldrh r2, [r7, r3] - ldr r3, [r7, #188] + ldr r3, [r7, #192] mul r0, r2, r5 mov r2, r2, asl #2 add r5, r5, #1 add r0, r3, r0, asl #2 bl memcpy -.L1431: +.L1444: ldrh r3, [sl, r9] - ldr r4, .L1443+4 + ldr r4, .L1456+4 cmp r5, r3 - ldr r6, .L1443 - blt .L1432 - ldr r5, [r6, #192] + ldr r6, .L1456 + blt .L1445 + ldr r5, [r6, #196] mov r1, #255 mov r2, #16 mov r7, #0 mov fp, r7 mov r0, r5 bl ftl_memset - ldr r3, .L1443+16 + ldr r3, .L1456+16 strh r3, [r5, #0] @ movhi ldr r3, [r4, #3988] str r3, [r5, #4] @@ -12507,40 +12585,35 @@ FtlBbmTblFlush.part.16: strh r3, [r5, #10] @ movhi ldr r3, [r4, #3844] strh r3, [r5, #12] @ movhi - b .L1441 -.L1438: + b .L1454 +.L1451: mov fp, #1 -.L1441: - ldr r3, [r6, #-960] +.L1454: + ldr r3, [r6, #-956] movw r8, #3980 - ldr r4, .L1443+4 + ldr r4, .L1456+4 mov r1, #0 movw sl, #3982 - str r1, [r6, #180] - str r3, [r6, #188] + str r1, [r6, #184] + str r3, [r6, #192] mov r9, #3984 - ldr r3, [r6, #-936] + ldr r3, [r6, #-932] ldrh r1, [r4, r8] ldrh r2, [r4, sl] - str r3, [r6, #192] + str r3, [r6, #196] ldrh r0, [r5, #10] orr r3, r2, r1, asl #10 - str r3, [r6, #184] + str r3, [r6, #188] ldrh r3, [r4, r9] str r0, [sp, #0] - ldr r0, .L1443+20 + ldr r0, .L1456+20 bl printk - mov r1, #1 - mov r2, r1 - mov r3, r1 - ldr r0, .L1443+24 - bl FlashProgPages movw r3, #3918 ldrh r3, [r4, r3] ldrh r2, [r4, sl] sub r3, r3, #1 cmp r2, r3 - blt .L1434 + blt .L1447 ldr r3, [r4, #3988] mov r1, #0 @ movhi ldrh r2, [r4, r8] @@ -12556,55 +12629,54 @@ FtlBbmTblFlush.part.16: mov r2, r1 strh r3, [r4, r8] @ movhi mov r3, r3, asl #10 - str r3, [r6, #184] + str r3, [r6, #188] str r3, [r0, #4] bl FlashEraseBlocks +.L1447: + ldr r4, .L1456 mov r1, #1 - ldr r0, .L1443+24 + ldr r8, .L1456+4 mov r2, r1 mov r3, r1 + add r0, r4, #184 bl FlashProgPages -.L1434: - ldr r4, .L1443+4 movw r3, #3982 - ldrh r2, [r4, r3] + ldrh r2, [r8, r3] add r2, r2, #1 - strh r2, [r4, r3] @ movhi - ldr r3, [r6, #180] + strh r2, [r8, r3] @ movhi + ldr r3, [r6, #184] cmn r3, #1 - bne .L1435 + bne .L1448 add r7, r7, #1 - ldr r0, .L1443+28 - ldr r1, [r6, #184] + ldr r0, .L1456+24 + ldr r1, [r6, #188] uxth r7, r7 bl printk cmp r7, #3 - bls .L1441 - ldr r3, .L1443 + bls .L1454 + ldr r0, .L1456+28 mov r2, r7 - ldr r0, .L1443+32 - ldr r1, [r3, #184] + ldr r1, [r4, #188] bl printk mov r3, #1 - str r3, [r4, #4040] - b .L1442 -.L1435: + str r3, [r8, #4040] + b .L1455 +.L1448: cmp fp, #0 - beq .L1438 -.L1442: + beq .L1451 +.L1455: ldmfd sp!, {r1, r2, r3, r4, r5, r6, r7, r8, r9, sl, fp, pc} -.L1444: +.L1457: .align 2 -.L1443: +.L1456: .word .LANCHOR2 .word .LANCHOR0 .word .LANCHOR0+4004 - .word -1028 + .word -1024 .word -3887 - .word .LC113 - .word .LANCHOR2+180 .word .LC114 .word .LC115 + .word .LC116 .fnend .size FtlBbmTblFlush.part.16, .-FtlBbmTblFlush.part.16 .text @@ -12617,17 +12689,17 @@ FtlBbmTblFlush: @ frame_needed = 0, uses_anonymous_args = 0 stmfd sp!, {r3, lr} .save {r3, lr} - ldr r3, .L1447 + ldr r3, .L1460 ldr r3, [r3, #4040] cmp r3, #0 - bne .L1446 + bne .L1459 bl FtlBbmTblFlush.part.16 -.L1446: +.L1459: mov r0, #0 ldmfd sp!, {r3, pc} -.L1448: +.L1461: .align 2 -.L1447: +.L1460: .word .LANCHOR0 .fnend .size FtlBbmTblFlush, .-FtlBbmTblFlush @@ -12641,77 +12713,79 @@ FtlGcFreeBadSuperBlk: stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, lr} .save {r4, r5, r6, r7, r8, r9, sl, lr} mov r9, r0 - ldr r4, .L1459 - ldr r3, .L1459+4 + ldr r4, .L1472 + ldr r3, .L1472+4 ldrh r3, [r4, r3] cmp r3, #0 movne r6, #0 movne sl, r4 - bne .L1450 - b .L1451 -.L1457: + bne .L1463 + b .L1464 +.L1470: add r3, r3, r6 mov r1, r9 mov r5, #0 - ldr r7, .L1459+4 + ldr r7, .L1472+4 ldrb r0, [r3, #3874] @ zero_extendqisi2 bl V2P_block mov r8, r0 - b .L1452 -.L1456: + b .L1465 +.L1469: add r3, r4, r5, asl #1 - sub r3, r3, #1136 + sub r3, r3, #1120 + sub r3, r3, #12 ldrh r3, [r3, #0] cmp r3, r8 - bne .L1453 + bne .L1466 mov r1, r8 - ldr r0, .L1459+8 + ldr r0, .L1472+8 bl printk mov r0, r8 bl FtlBbmMapBadBlock bl FtlBbmTblFlush - ldrh r2, [r4, r7] + ldrh r1, [r4, r7] mov r3, r5 - b .L1454 -.L1455: - add r1, r3, #1 + b .L1467 +.L1468: + add r0, r3, #1 add r3, r4, r3, asl #1 - sub r3, r3, #1136 - add r0, r4, r1, asl #1 - sub r0, r0, #1136 - ldrh r0, [r0, #0] - strh r0, [r3, #0] @ movhi - uxth r3, r1 -.L1454: - cmp r3, r2 - bcc .L1455 - sub r2, r2, #1 - strh r2, [sl, r7] @ movhi -.L1453: + sub r3, r3, #1120 + add r2, r4, r0, asl #1 + sub r2, r2, #1120 + sub r2, r2, #12 + ldrh r2, [r2, #0] + strh r2, [r3, #-12] @ movhi + uxth r3, r0 +.L1467: + cmp r3, r1 + bcc .L1468 + sub r1, r1, #1 + strh r1, [sl, r7] @ movhi +.L1466: add r5, r5, #1 uxth r5, r5 -.L1452: +.L1465: ldrh r3, [r4, r7] cmp r3, r5 - bhi .L1456 + bhi .L1469 add r6, r6, #1 uxth r6, r6 -.L1450: - ldr r3, .L1459+12 +.L1463: + ldr r3, .L1472+12 movw r2, #3848 ldrh r2, [r3, r2] cmp r2, r6 - bhi .L1457 + bhi .L1470 bl FtlGcReFreshBadBlk -.L1451: +.L1464: mov r0, #0 ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, pc} -.L1460: +.L1473: .align 2 -.L1459: +.L1472: .word .LANCHOR2 - .word -1138 - .word .LC116 + .word -1134 + .word .LC117 .word .LANCHOR0 .fnend .size FtlGcFreeBadSuperBlk, .-FtlGcFreeBadSuperBlk @@ -12725,36 +12799,36 @@ update_vpc_list: stmfd sp!, {r3, r4, r5, lr} .save {r3, r4, r5, lr} mov r2, r0, asl #1 - ldr r3, .L1469 + ldr r3, .L1482 mov r4, r0 ldr r1, [r3, #-2016] ldrh r2, [r1, r2] cmp r2, #0 - bne .L1462 - ldr r1, .L1469+4 + bne .L1475 + ldr r1, .L1482+4 ldrh r0, [r3, r1] cmp r0, r4 mvneq r2, #0 streqh r2, [r3, r1] @ movhi - beq .L1464 - ldr r1, .L1469+8 + beq .L1477 + ldr r1, .L1482+8 ldrh r1, [r3, r1] cmp r1, r4 - beq .L1465 - ldr r1, .L1469+12 + beq .L1478 + ldr r1, .L1482+12 ldrh r1, [r3, r1] cmp r1, r4 - beq .L1465 - ldr r1, .L1469+16 + beq .L1478 + ldr r1, .L1482+16 ldrh r3, [r3, r1] cmp r3, r4 - beq .L1465 -.L1464: + beq .L1478 +.L1477: mov r1, r4 - ldr r0, .L1469+20 + ldr r0, .L1482+20 bl List_remove_node - ldr r5, .L1469 - ldr r3, .L1469+24 + ldr r5, .L1482 + ldr r3, .L1482+24 mov r0, r4 ldrh r2, [r5, r3] sub r2, r2, #1 @@ -12763,16 +12837,16 @@ update_vpc_list: mov r0, r4 bl FtlGcFreeBadSuperBlk mov r2, #1 - b .L1465 -.L1462: + b .L1478 +.L1475: bl List_update_data_list mov r2, #0 -.L1465: +.L1478: mov r0, r2 ldmfd sp!, {r3, r4, r5, pc} -.L1470: +.L1483: .align 2 -.L1469: +.L1482: .word .LANCHOR2 .word -1760 .word -1996 @@ -12789,51 +12863,46 @@ decrement_vpc_count: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - stmfd sp!, {r3, r4, r5, r6, r7, lr} - .save {r3, r4, r5, r6, r7, lr} movw r3, #65535 cmp r0, r3 - mov r5, r0 - beq .L1472 - ldr r2, .L1477 + stmfd sp!, {r4, r5, r6, lr} + .save {r4, r5, r6, lr} + mov r4, r0 + beq .L1485 + ldr r2, .L1490 mov r3, r0, asl #1 ldr r2, [r2, #-2016] - ldrh r4, [r2, r3] - cmp r4, #0 - subne r4, r4, #1 - strneh r4, [r2, r3] @ movhi - bne .L1472 - ldr r0, .L1477+4 - mov r1, r5 - mov r2, r4 - bl printk - mov r0, r4 - ldmfd sp!, {r3, r4, r5, r6, r7, pc} -.L1472: - ldr r7, .L1477 + ldrh r1, [r2, r3] + cmp r1, #0 + subne r1, r1, #1 + strneh r1, [r2, r3] @ movhi + bne .L1485 + ldmfd sp!, {r4, r5, r6, lr} + b decrement_vpc_count.part.18 +.L1485: + ldr r6, .L1490 movw r3, #65535 - ldr r6, .L1477+8 - ldrh r0, [r7, r6] + ldr r5, .L1490+4 + ldrh r0, [r6, r5] cmp r0, r3 - streqh r5, [r7, r6] @ movhi + streqh r4, [r6, r5] @ movhi moveq r0, #0 - ldmeqfd sp!, {r3, r4, r5, r6, r7, pc} - cmp r0, r5 - beq .L1476 + ldmeqfd sp!, {r4, r5, r6, pc} + cmp r0, r4 + beq .L1489 bl update_vpc_list - strh r5, [r7, r6] @ movhi + strh r4, [r6, r5] @ movhi adds r0, r0, #0 movne r0, #1 - ldmfd sp!, {r3, r4, r5, r6, r7, pc} -.L1476: + ldmfd sp!, {r4, r5, r6, pc} +.L1489: mov r0, #0 - ldmfd sp!, {r3, r4, r5, r6, r7, pc} -.L1478: + ldmfd sp!, {r4, r5, r6, pc} +.L1491: .align 2 -.L1477: +.L1490: .word .LANCHOR2 - .word .LC117 - .word -1020 + .word -1016 .fnend .size decrement_vpc_count, .-decrement_vpc_count .align 2 @@ -12850,12 +12919,12 @@ get_new_active_ppa: mov r4, r0 ldrb r3, [r0, #6] @ zero_extendqisi2 movw r6, #65535 - ldr r5, .L1491 - ldr r7, .L1491+4 + ldr r5, .L1504 + ldr r7, .L1504+4 add r3, r0, r3, asl #1 ldrh r3, [r3, #16] - b .L1480 -.L1481: + b .L1493 +.L1494: ldrb r3, [r4, #6] @ zero_extendqisi2 movw r2, #3848 ldrh r2, [r5, r2] @@ -12871,28 +12940,28 @@ get_new_active_ppa: ldrb r3, [r4, #6] @ zero_extendqisi2 add r3, r4, r3, asl #1 ldrh r3, [r3, #16] -.L1480: +.L1493: cmp r3, r6 - beq .L1481 + beq .L1494 ldrb r2, [r4, #8] @ zero_extendqisi2 cmp r2, #1 - bne .L1483 + bne .L1496 ldrb r2, [r5, #928] @ zero_extendqisi2 cmp r2, #0 - bne .L1483 + bne .L1496 ldrh r2, [r4, #2] add r2, r7, r2, asl #1 - sub r2, r2, #892 + sub r2, r2, #888 ldrh r2, [r2, #0] cmp r2, r6 - bne .L1483 + bne .L1496 ldrh r3, [r4, #4] ldrh r0, [r4, #0] sub r3, r3, #1 strh r3, [r4, #4] @ movhi bl decrement_vpc_count - b .L1481 -.L1483: + b .L1494 +.L1496: ldrh r6, [r4, #2] movw r5, #65535 mov r7, r5 @@ -12900,12 +12969,12 @@ get_new_active_ppa: ldrh r3, [r4, #4] sub r3, r3, #1 strh r3, [r4, #4] @ movhi -.L1488: - ldr r2, .L1491 +.L1501: + ldr r2, .L1504 movw r3, #3848 ldrh r2, [r2, r3] ldrb r3, [r4, #6] @ zero_extendqisi2 -.L1485: +.L1498: add r3, r3, #1 uxtb r3, r3 cmp r3, r2 @@ -12916,36 +12985,36 @@ get_new_active_ppa: add r1, r4, r3, asl #1 ldrh r1, [r1, #16] cmp r1, r5 - beq .L1485 + beq .L1498 strb r3, [r4, #6] ldrb r3, [r4, #8] @ zero_extendqisi2 cmp r3, #1 - bne .L1486 - ldr r3, .L1491 + bne .L1499 + ldr r3, .L1504 ldrb r2, [r3, #928] @ zero_extendqisi2 cmp r2, #0 ldrh r2, [r4, #2] - bne .L1489 - ldr r3, .L1491+4 + bne .L1502 + ldr r3, .L1504+4 add r2, r3, r2, asl #1 - sub r2, r2, #892 + sub r2, r2, #888 ldrh r3, [r2, #0] cmp r3, r7 - bne .L1486 + bne .L1499 ldrh r3, [r4, #4] cmp r3, #0 - beq .L1486 + beq .L1499 sub r3, r3, #1 ldrh r0, [r4, #0] strh r3, [r4, #4] @ movhi bl decrement_vpc_count - b .L1488 -.L1489: + b .L1501 +.L1502: movw r1, #3918 ldrh r1, [r3, r1] cmp r2, r1 - bcc .L1486 - ldr r1, .L1491+4 + bcc .L1499 + ldr r1, .L1504+4 ldrh r2, [r4, #0] ldrh r0, [r4, #4] ldr r1, [r1, #-2016] @@ -12960,19 +13029,19 @@ get_new_active_ppa: ldrh r3, [r3, r2] strb r1, [r4, #6] strh r3, [r4, #2] @ movhi -.L1486: +.L1499: mov r0, r6 ldmfd sp!, {r3, r4, r5, r6, r7, pc} -.L1492: +.L1505: .align 2 -.L1491: +.L1504: .word .LANCHOR0 .word .LANCHOR2 .fnend .size get_new_active_ppa, .-get_new_active_ppa .align 2 - .type FtlSlcSuperblockCheck.part.20, %function -FtlSlcSuperblockCheck.part.20: + .type FtlSlcSuperblockCheck.part.19, %function +FtlSlcSuperblockCheck.part.19: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @@ -12981,12 +13050,12 @@ FtlSlcSuperblockCheck.part.20: mov r4, r0 ldrb r3, [r0, #6] @ zero_extendqisi2 movw r6, #65535 - ldr r5, .L1499 - ldr r7, .L1499+4 + ldr r5, .L1512 + ldr r7, .L1512+4 add r3, r0, r3, asl #1 ldrh r3, [r3, #16] - b .L1494 -.L1495: + b .L1507 +.L1508: ldrb r3, [r4, #6] @ zero_extendqisi2 movw r2, #3848 ldrh r2, [r5, r2] @@ -13002,21 +13071,21 @@ FtlSlcSuperblockCheck.part.20: ldrb r3, [r4, #6] @ zero_extendqisi2 add r3, r4, r3, asl #1 ldrh r3, [r3, #16] -.L1494: +.L1507: cmp r3, r6 - beq .L1495 + beq .L1508 ldrb r2, [r4, #8] @ zero_extendqisi2 cmp r2, #1 - bne .L1497 + bne .L1510 ldrb r3, [r5, #928] @ zero_extendqisi2 cmp r3, #0 - bne .L1497 + bne .L1510 ldrh r3, [r4, #2] add r3, r7, r3, asl #1 - sub r3, r3, #892 + sub r3, r3, #888 ldrh r3, [r3, #0] cmp r3, r6 - bne .L1497 + bne .L1510 ldrh r3, [r4, #4] ldrh r0, [r4, #0] sub r3, r3, #1 @@ -13024,14 +13093,14 @@ FtlSlcSuperblockCheck.part.20: bl decrement_vpc_count ldrh r3, [r4, #4] cmp r3, #0 - bne .L1495 + bne .L1508 ldrh r2, [r4, #2] strb r3, [r4, #6] add r2, r2, #1 strh r2, [r4, #2] @ movhi ldmfd sp!, {r3, r4, r5, r6, r7, pc} -.L1497: - ldr r3, .L1499 +.L1510: + ldr r3, .L1512 ldrb r1, [r3, #928] @ zero_extendqisi2 cmp r1, #0 ldmeqfd sp!, {r3, r4, r5, r6, r7, pc} @@ -13042,7 +13111,7 @@ FtlSlcSuperblockCheck.part.20: ldrh r2, [r3, r2] cmp r1, r2 ldmccfd sp!, {r3, r4, r5, r6, r7, pc} - ldr r1, .L1499+4 + ldr r1, .L1512+4 ldrh r2, [r4, #0] ldrh r0, [r4, #4] ldr r1, [r1, #-2016] @@ -13058,13 +13127,13 @@ FtlSlcSuperblockCheck.part.20: strb r1, [r4, #6] strh r3, [r4, #2] @ movhi ldmfd sp!, {r3, r4, r5, r6, r7, pc} -.L1500: +.L1513: .align 2 -.L1499: +.L1512: .word .LANCHOR0 .word .LANCHOR2 .fnend - .size FtlSlcSuperblockCheck.part.20, .-FtlSlcSuperblockCheck.part.20 + .size FtlSlcSuperblockCheck.part.19, .-FtlSlcSuperblockCheck.part.19 .align 2 .global FtlSlcSuperblockCheck .type FtlSlcSuperblockCheck, %function @@ -13080,12 +13149,12 @@ FtlSlcSuperblockCheck: movw r3, #65535 cmp r2, r3 bxeq lr - b FtlSlcSuperblockCheck.part.20 + b FtlSlcSuperblockCheck.part.19 .fnend .size FtlSlcSuperblockCheck, .-FtlSlcSuperblockCheck .align 2 - .type allocate_data_superblock.part.21, %function -allocate_data_superblock.part.21: + .type allocate_data_superblock.part.20, %function +allocate_data_superblock.part.20: .fnstart @ args = 0, pretend = 0, frame = 24 @ frame_needed = 0, uses_anonymous_args = 0 @@ -13093,280 +13162,277 @@ allocate_data_superblock.part.21: .save {r4, r5, r6, r7, r8, r9, sl, fp, lr} .pad #28 sub sp, sp, #28 - ldr r5, .L1538 + ldr r6, .L1555 mov r4, r0 - mov r8, r5 -.L1535: - ldr r3, .L1538+4 + ldr r5, .L1555+4 + mov sl, r6 +.L1550: + ldr r3, .L1555+8 cmp r4, r3 - bne .L1505 - ldr r3, .L1538+8 + bne .L1518 + ldr r3, .L1555+12 ldrh r2, [r5, r3] ldr r3, [r5, #-1184] mov r1, r2, lsr #1 mul ip, r3, r2 add r0, r1, #1 add r0, r0, ip, lsr #2 - ldr ip, .L1538+12 - uxth r0, r0 - ldr ip, [ip, #3840] + ldr ip, [r6, #3840] cmp ip, #0 - beq .L1529 + uxth r0, r0 + beq .L1542 ldr ip, [r5, #-1780] - cmp ip, #29 - bhi .L1529 + cmp ip, #39 + bhi .L1542 cmp ip, #2 - bls .L1534 + bls .L1547 tst r2, #1 - beq .L1506 + beq .L1519 cmp r3, #0 moveq r1, r3 - beq .L1507 - b .L1506 -.L1505: + beq .L1520 + b .L1519 +.L1518: ldrb r3, [r4, #8] @ zero_extendqisi2 cmp r3, #1 - bne .L1534 - ldr r3, .L1538+12 - movw r2, #3868 - ldrh r2, [r3, r2] - cmp r2, #1 - beq .L1534 - ldrb r2, [r3, #928] @ zero_extendqisi2 - cmp r2, #0 - bne .L1534 - sub r2, r2, #2000 - ldr r3, [r3, #3840] - ldrh r2, [r5, r2] - cmp r3, #0 - mov r1, r2, lsr #3 - beq .L1506 - ldr r3, [r5, #-1780] + bne .L1547 + movw r3, #3868 + ldrh r3, [r6, r3] cmp r3, #1 + beq .L1547 + ldrb r3, [r6, #928] @ zero_extendqisi2 + cmp r3, #0 + bne .L1547 + sub r3, r3, #2000 + ldr r2, [r6, #3840] + ldrh r3, [r5, r3] + cmp r2, #0 + mov r1, r3, lsr #3 + beq .L1519 + ldr r2, [r5, #-1780] + cmp r2, #1 movls r1, #7 - mulls r1, r1, r2 + mulls r1, r1, r3 movls r1, r1, lsr #3 - b .L1506 -.L1529: + b .L1519 +.L1542: mov r1, r0 -.L1506: +.L1519: cmp r1, #0 subne r1, r1, #1 uxthne r1, r1 - b .L1507 -.L1534: + b .L1520 +.L1547: mov r1, #0 -.L1507: +.L1520: ldrb r2, [r4, #8] @ zero_extendqisi2 - ldr r0, .L1538+16 + ldr r0, .L1555+16 bl List_pop_index_node - ldr r3, .L1538+8 + ldr r3, .L1555+12 ldrh r2, [r5, r3] sub r2, r2, #1 strh r2, [r5, r3] @ movhi - uxth r7, r0 + mov r3, #3856 + ldrh r3, [r6, r3] + uxth r9, r0 + cmp r3, r9 + bls .L1550 + ldr r3, [r5, #-2016] + mov r7, r9, asl #1 + ldrh r8, [r3, r7] + cmp r8, #0 + bne .L1550 + strh r9, [r4, #0] @ movhi mov r0, r4 - strh r7, [r4, #0] @ movhi bl make_superblock ldrb r3, [r4, #7] @ zero_extendqisi2 cmp r3, #0 - beq .L1508 - ldr r3, .L1538+12 - movw r2, #3848 - mov r6, #0 - mov r9, r4 + beq .L1551 + movw r3, #3848 + ldr ip, [r6, #4044] + ldrh r3, [r6, r3] mov r1, r4 - mov r0, r6 - ldr ip, [r3, #4044] - ldrh sl, [r3, r2] - mov r2, r6 + str r4, [sp, #16] + mov r2, r8 + mov r0, r8 + stmia sp, {r4, ip} + str r3, [sp, #20] mov r3, ip - stmib sp, {r4, ip} - b .L1509 -.L1508: - ldr r3, [r5, #-2016] - mov r7, r7, asl #1 - mvn r2, #0 - strh r2, [r3, r7] @ movhi - b .L1535 -.L1512: + b .L1523 +.L1525: str r0, [r3, #8] movw r4, #65535 str r0, [r3, #12] ldrh lr, [r1, #16] cmp lr, r4 - beq .L1511 - ldr r4, [sp, #8] + beq .L1524 + ldr r4, [sp, #4] mov ip, #36 mov lr, lr, asl #10 - mla fp, ip, r6, r4 - add r6, r6, #1 - uxth r6, r6 + mla fp, ip, r8, r4 + add r8, r8, #1 + uxth r8, r8 str lr, [fp, #4] -.L1511: +.L1524: add r2, r2, #1 add r3, r3, #36 add r1, r1, #2 uxth r2, r2 -.L1509: - cmp r2, sl - bne .L1512 - ldr r3, .L1538+12 - ldr r4, [sp, #4] - ldr r2, [r3, #3840] - cmp r2, #0 - beq .L1513 - ldr r2, .L1538+20 - cmp r4, r2 - bne .L1513 - ldr r2, [r3, #4048] - mov r3, r7, asl #1 - ldrh r3, [r2, r3] - cmp r3, #30 +.L1523: + ldr fp, [sp, #20] + cmp r2, fp + bne .L1525 + ldr r3, [r6, #3840] + ldr r4, [sp, #0] + cmp r3, #0 + beq .L1526 + ldr r3, .L1555+20 + cmp r4, r3 + bne .L1526 + ldr r3, [r6, #4048] + ldrh r3, [r3, r7] + cmp r3, #40 movhi r3, #0 strhib r3, [r5, #-1988] -.L1513: +.L1526: ldrb r3, [r4, #8] @ zero_extendqisi2 - ldr r2, .L1538+12 cmp r3, #0 - mov r3, r7, asl #1 - bne .L1514 - ldr r1, [r2, #4048] - ldrh r0, [r1, r3] - cmp r0, #0 - movwne ip, #3906 + ldr r3, [sl, #4048] + ldrh r2, [r3, r7] + bne .L1527 + cmp r2, #0 + mov r0, r9 + movwne r1, #3906 moveq r2, #2 - ldrneh r2, [r2, ip] - streqh r2, [r1, r3] @ movhi - addne r0, r0, r2 - strneh r0, [r1, r3] @ movhi + ldrneh r1, [r6, r1] + addne r2, r2, r1 + strh r2, [r3, r7] @ movhi ldr r3, [r5, #-1796] - mov r0, r7 mov r1, #0 add r3, r3, #1 str r3, [r5, #-1796] - b .L1536 -.L1514: - ldr r2, [r2, #4048] - mov r0, r7 - ldrh r1, [r2, r3] - add r1, r1, #1 - strh r1, [r2, r3] @ movhi + b .L1553 +.L1527: + add r2, r2, #1 + strh r2, [r3, r7] @ movhi ldr r3, [r5, #-1792] + mov r0, r9 mov r1, #1 add r3, r3, #1 str r3, [r5, #-1792] -.L1536: - ldr sl, .L1538+12 +.L1553: bl ftl_set_blk_mode - mov fp, r7, asl #1 + ldr r3, [r6, #4048] + ldr fp, .L1555+4 ldr r2, [r5, #-1784] - ldr r0, [r8, #-1796] - ldr r3, [sl, #4048] - ldrh r3, [r3, fp] + ldrh r3, [r3, r7] + ldr r0, [fp, #-1796] cmp r3, r2 strhi r3, [r5, #-1784] movw r3, #3906 ldrh r2, [sl, r3] - ldr r3, [r8, #-1792] + ldr r3, [fp, #-1792] mla r0, r0, r2, r3 mov r3, #3856 ldrh r1, [sl, r3] bl __aeabi_uidiv - ldr r3, [r8, #-920] + ldr r3, [fp, #-916] ldr r2, [r3, #16] add r2, r2, #1 str r2, [r3, #16] ldr r3, [sl, #4044] mov r2, #0 - str r0, [r8, #-1788] - b .L1519 -.L1520: + str r0, [fp, #-1788] + b .L1532 +.L1533: add r2, r2, #1 ldr r1, [r3, #-32] uxth r2, r2 bic r1, r1, #1020 bic r1, r1, #3 str r1, [r3, #-32] -.L1519: - cmp r2, r6 +.L1532: + cmp r2, r8 add r3, r3, #36 - bne .L1520 - ldr sl, .L1538+12 - ldrb r3, [sl, #928] @ zero_extendqisi2 + bne .L1533 + ldrb r3, [r6, #928] @ zero_extendqisi2 cmp r3, #0 - beq .L1521 + beq .L1534 ldrb r3, [r4, #8] @ zero_extendqisi2 - mov r2, r6 - ldr r0, [sl, #4044] + mov r2, r8 + ldr r0, [r6, #4044] cmp r3, #1 moveq r1, #0 movne r1, #1 bl FlashEraseBlocks -.L1521: - mov r2, r6 +.L1534: + mov r2, r8 ldr r0, [sl, #4044] ldrb r1, [r4, #8] @ zero_extendqisi2 bl FlashEraseBlocks - mov r1, #36 - mul r1, r1, r6 - mov r6, #0 - mov r3, fp - mov sl, r6 - mov fp, r7 - ldr r2, .L1538+12 - mov r7, r1 - b .L1523 -.L1525: - ldr r1, [r2, #4044] - add r0, r1, r6 - ldr r1, [r1, r6] - cmn r1, #1 - bne .L1524 - ldr r0, [r0, #4] - add sl, sl, #1 - str r1, [sp, #20] + mov r2, #36 + mul r2, r2, r8 + mov r8, #0 + mov r3, r9 + mov fp, r8 + mov r9, r2 + mov r2, r7 + mov r7, r4 + b .L1536 +.L1538: + ldr r0, [r6, #4044] + add r1, r0, r8 + ldr r4, [r0, r8] + cmn r4, #1 + bne .L1537 + ldr r0, [r1, #4] + add fp, fp, #1 + str r2, [sp, #8] ubfx r0, r0, #10, #16 - str r2, [sp, #16] str r3, [sp, #12] bl FtlBbmMapBadBlock - ldr r1, [sp, #20] - strh r1, [r9, #16] @ movhi - ldrb r1, [r4, #7] @ zero_extendqisi2 + ldr ip, [sp, #16] + strh r4, [ip, #16] @ movhi + ldrb r1, [r7, #7] @ zero_extendqisi2 sub r1, r1, #1 - strb r1, [r4, #7] + strb r1, [r7, #7] ldr r3, [sp, #12] - ldr r2, [sp, #16] -.L1524: - add r6, r6, #36 - add r9, r9, #2 -.L1523: - cmp r6, r7 - bne .L1525 - cmp sl, #0 - mov r7, fp - mov fp, r3 - beq .L1526 - mov r0, r7 + ldr r2, [sp, #8] +.L1537: + ldr r4, [sp, #16] + add r8, r8, #36 + add r4, r4, #2 + str r4, [sp, #16] +.L1536: + cmp r8, r9 + bne .L1538 + cmp fp, #0 + mov r4, r7 + mov r9, r3 + mov r7, r2 + beq .L1539 + mov r0, r3 bl update_multiplier_value bl FtlBbmTblFlush -.L1526: +.L1539: ldrb r3, [r4, #7] @ zero_extendqisi2 cmp r3, #0 - ldreq r3, [r5, #-2016] - mvneq r2, #0 - streqh r2, [r3, fp] @ movhi - beq .L1535 -.L1527: - ldr r1, .L1538+12 + bne .L1540 +.L1551: + ldr r3, [r5, #-2016] + mvn r2, #0 + strh r2, [r3, r7] @ movhi + b .L1550 +.L1540: + ldr r1, .L1555 movw r2, #3916 ldrh r2, [r1, r2] - strh r7, [r4, #0] @ movhi + strh r9, [r4, #0] @ movhi mul r2, r2, r3 mov r3, #0 strh r3, [r4, #2] @ movhi strb r3, [r4, #6] - ldr r3, .L1538 + ldr r3, .L1555+4 uxth r2, r2 strh r2, [r4, #4] @ movhi ldr r1, [r3, #-1804] @@ -13379,17 +13445,17 @@ allocate_data_superblock.part.21: strh r2, [r1, r3] @ movhi add sp, sp, #28 ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} -.L1539: +.L1556: .align 2 -.L1538: +.L1555: + .word .LANCHOR0 .word .LANCHOR2 .word .LANCHOR2-1900 .word -2000 - .word .LANCHOR0 .word .LANCHOR2-2004 .word .LANCHOR2-1996 .fnend - .size allocate_data_superblock.part.21, .-allocate_data_superblock.part.21 + .size allocate_data_superblock.part.20, .-allocate_data_superblock.part.20 .align 2 .global allocate_data_superblock .type allocate_data_superblock, %function @@ -13399,84 +13465,97 @@ allocate_data_superblock: @ frame_needed = 0, uses_anonymous_args = 0 stmfd sp!, {r3, lr} .save {r3, lr} - ldr r3, .L1542 + ldr r3, .L1559 ldr r3, [r3, #4040] cmp r3, #0 - bne .L1541 - bl allocate_data_superblock.part.21 -.L1541: + bne .L1558 + bl allocate_data_superblock.part.20 +.L1558: mov r0, #0 ldmfd sp!, {r3, pc} -.L1543: +.L1560: .align 2 -.L1542: +.L1559: .word .LANCHOR0 .fnend .size allocate_data_superblock, .-allocate_data_superblock .align 2 - .type FtlSuperblockPowerLostFix.part.19, %function -FtlSuperblockPowerLostFix.part.19: + .global FtlSuperblockPowerLostFix + .type FtlSuperblockPowerLostFix, %function +FtlSuperblockPowerLostFix: .fnstart @ args = 0, pretend = 0, frame = 40 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L1553 - stmfd sp!, {r4, r5, r6, r7, r8, lr} - .save {r4, r5, r6, r7, r8, lr} + ldr r2, .L1571 + stmfd sp!, {r4, r5, r6, r7, r8, sl, lr} + .save {r4, r5, r6, r7, r8, sl, lr} mov r4, r0 - ldrb r7, [r3, #928] @ zero_extendqisi2 - .pad #40 - sub sp, sp, #40 + ldr r3, [r2, #4040] + .pad #44 + sub sp, sp, #44 + cmp r3, #0 + bne .L1561 + ldrb r7, [r2, #928] @ zero_extendqisi2 cmp r7, #0 - beq .L1552 + beq .L1570 ldrb r7, [r0, #8] @ zero_extendqisi2 cmp r7, #1 - ldreqh r6, [r0, #4] - beq .L1545 - mov r7, #0 -.L1552: - mov r6, #12 -.L1545: - mvn r8, #0 - ldr r5, .L1553+4 - b .L1546 -.L1549: + ldreqh r8, [r0, #4] + beq .L1563 + mov r7, r3 +.L1570: + mov r8, #12 +.L1563: + ldr r6, .L1571+4 + mvn r3, #0 + str r3, [sp, #20] + mov sl, #0 + movw r2, #61589 + ldr r5, [r6, #-932] + ldr r3, [r6, #-956] + str r5, [sp, #16] + str r3, [sp, #12] + mvn r3, #2 + str r3, [r5, #8] + mvn r3, #1 + str r3, [r5, #12] + ldrh r3, [r4, #0] + strh sl, [r5, #0] @ movhi + strh r3, [r5, #2] @ movhi + ldr r3, [r6, #-956] + str r2, [r3, #0] + ldr r2, .L1571+8 + ldr r3, [r6, #-956] + str r2, [r3, #4] + b .L1564 +.L1567: ldrh r3, [r4, #4] cmp r3, #0 - beq .L1547 + beq .L1565 mov r0, r4 bl get_new_active_ppa cmn r0, #1 str r0, [sp, #8] - beq .L1547 - ldr r2, [r5, #-936] - add r0, sp, #4 - ldr r3, [r5, #-960] - sub r6, r6, #1 - str r8, [sp, #20] - str r2, [sp, #16] - str r3, [sp, #12] - str r8, [r2, #12] - str r8, [r2, #8] - ldrh r3, [r4, #0] - strh r3, [r2, #2] @ movhi - mov r3, #0 - strh r3, [r2, #0] @ movhi - ldr r1, [r5, #-1800] - cmn r1, #2 - str r1, [r2, #4] - addne r1, r1, #1 - moveq r1, #0 - mov r2, r7 - str r1, [r5, #-1800] + beq .L1565 + ldr r3, [r6, #-1800] mov r1, #1 + mov r2, r7 + add r0, sp, #4 + sub r8, r8, #1 + str r3, [r5, #4] + add r3, r3, #1 + cmn r3, #1 + moveq r3, sl + str r3, [r6, #-1800] + mov r3, #0 bl FlashProgPages ldrh r0, [r4, #0] bl decrement_vpc_count -.L1546: - cmp r6, #0 - bne .L1549 -.L1547: - ldr r2, .L1553+4 +.L1564: + cmp r8, #0 + bne .L1567 +.L1565: + ldr r2, .L1571+4 ldrh r3, [r4, #0] ldrh r1, [r4, #4] ldr r2, [r2, #-2016] @@ -13484,39 +13563,22 @@ FtlSuperblockPowerLostFix.part.19: ldrh r0, [r2, r3] rsb r1, r1, r0 strh r1, [r2, r3] @ movhi - ldr r2, .L1553 + ldr r2, .L1571 movw r3, #3916 ldrh r3, [r2, r3] strh r3, [r4, #2] @ movhi mov r3, #0 strb r3, [r4, #6] strh r3, [r4, #4] @ movhi - add sp, sp, #40 - ldmfd sp!, {r4, r5, r6, r7, r8, pc} -.L1554: +.L1561: + add sp, sp, #44 + ldmfd sp!, {r4, r5, r6, r7, r8, sl, pc} +.L1572: .align 2 -.L1553: +.L1571: .word .LANCHOR0 .word .LANCHOR2 - .fnend - .size FtlSuperblockPowerLostFix.part.19, .-FtlSuperblockPowerLostFix.part.19 - .align 2 - .global FtlSuperblockPowerLostFix - .type FtlSuperblockPowerLostFix, %function -FtlSuperblockPowerLostFix: - .fnstart - @ args = 0, pretend = 0, frame = 0 - @ frame_needed = 0, uses_anonymous_args = 0 - @ link register save eliminated. - ldr r3, .L1557 - ldr r3, [r3, #4040] - cmp r3, #0 - bxne lr - b FtlSuperblockPowerLostFix.part.19 -.L1558: - .align 2 -.L1557: - .word .LANCHOR0 + .word 305419896 .fnend .size FtlSuperblockPowerLostFix, .-FtlSuperblockPowerLostFix .align 2 @@ -13529,7 +13591,7 @@ FtlLowFormatEraseBlock: stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} .save {r4, r5, r6, r7, r8, r9, sl, fp, lr} mov sl, r1 - ldr r8, .L1589 + ldr r8, .L1603 .pad #28 sub sp, sp, #28 str r0, [sp, #8] @@ -13538,16 +13600,16 @@ FtlLowFormatEraseBlock: cmp r6, #0 str r1, [sp, #16] movne r4, #0 - bne .L1560 + bne .L1574 ldrb r2, [r8, #928] @ zero_extendqisi2 mov r5, r6 - ldr fp, .L1589+4 + ldr fp, .L1603+4 mov r4, r6 mov r9, #36 str r2, [sp, #4] - str r0, [fp, #-984] - b .L1561 -.L1565: + str r0, [fp, #-980] + b .L1575 +.L1579: mul r3, r9, r6 ldr r2, [r8, #4044] mov r1, #0 @@ -13558,17 +13620,17 @@ FtlLowFormatEraseBlock: bl V2P_block cmp sl, #0 mov r7, r0 - beq .L1562 + beq .L1576 bl IsBlkInVendorPart cmp r0, #0 - bne .L1563 -.L1562: + bne .L1577 +.L1576: mov r0, r7 bl FtlBbmIsBadBlock cmp r0, #0 addne r4, r4, #1 uxthne r4, r4 - bne .L1563 + bne .L1577 movw r1, #3928 ldr r3, [r8, #4044] ldrh r2, [r8, r1] @@ -13581,22 +13643,22 @@ FtlLowFormatEraseBlock: cmp r2, #0 str r7, [r3, #4] movlt r2, r1 - ldr r1, [fp, #-932] + ldr r1, [fp, #-928] bic r2, r2, #3 str r0, [r3, #8] add r2, r1, r2 str r2, [r3, #12] -.L1563: +.L1577: add r6, r6, #1 uxth r6, r6 -.L1561: +.L1575: movw r2, #3848 - ldr r7, .L1589 + ldr r7, .L1603 ldrh r3, [r8, r2] cmp r3, r6 - bhi .L1565 + bhi .L1579 cmp r5, #0 - beq .L1560 + beq .L1574 ldr r3, [sp, #4] mov r8, #0 ldr r0, [r7, #4044] @@ -13609,26 +13671,26 @@ FtlLowFormatEraseBlock: bl FlashEraseBlocks ldr r1, [sp, #16] strb r1, [r7, #3837] -.L1568: +.L1582: ldr r3, [r7, #4044] add r2, r3, r8 ldr r3, [r3, r8] cmn r3, #1 - bne .L1567 + bne .L1581 ldr r0, [r2, #4] add r4, r4, #1 ubfx r0, r0, #10, #16 uxth r4, r4 bl FtlBbmMapBadBlock -.L1567: +.L1581: add r9, r9, #1 add r8, r8, #36 uxth r9, r9 cmp r9, r5 - bne .L1568 + bne .L1582 cmp sl, #0 - beq .L1582 - ldr r3, .L1589 + beq .L1596 + ldr r3, .L1603 movw r2, #3918 ldrh r2, [r3, r2] ldrb r3, [r3, #928] @ zero_extendqisi2 @@ -13637,26 +13699,26 @@ FtlLowFormatEraseBlock: moveq r2, r2, lsr #2 streq r2, [sp, #4] moveq r6, #1 - beq .L1569 - b .L1588 -.L1582: + beq .L1583 + b .L1602 +.L1596: mov r3, #6 mov r1, #1 str r3, [sp, #4] str r1, [sp, #12] - b .L1569 -.L1588: + b .L1583 +.L1602: mov r6, #1 str r6, [sp, #4] -.L1569: - ldr r7, .L1589 +.L1583: + ldr r7, .L1603 mov r8, #0 -.L1577: +.L1591: mov r9, #0 - ldr fp, .L1589+4 + ldr fp, .L1603+4 mov r5, r9 - b .L1570 -.L1573: + b .L1584 +.L1587: mov r1, #36 ldr r2, [r7, #4044] mul r3, r1, r9 @@ -13668,15 +13730,15 @@ FtlLowFormatEraseBlock: bl V2P_block cmp sl, #0 str r0, [sp, #20] - beq .L1571 + beq .L1585 bl IsBlkInVendorPart cmp r0, #0 - bne .L1572 -.L1571: + bne .L1586 +.L1585: ldr r0, [sp, #20] bl FtlBbmIsBadBlock cmp r0, #0 - bne .L1572 + bne .L1586 ldr r3, [r7, #4044] mov r2, #36 ldr r1, [sp, #20] @@ -13684,7 +13746,7 @@ FtlLowFormatEraseBlock: add r2, r8, r1, asl #10 movw r1, #3928 str r2, [r3, #4] - ldr r2, [fp, #-944] + ldr r2, [fp, #-940] str r2, [r3, #8] ldrh r2, [r7, r1] mul r2, r2, r5 @@ -13693,21 +13755,21 @@ FtlLowFormatEraseBlock: add r1, r2, #3 cmp r2, #0 movlt r2, r1 - ldr r1, [fp, #-940] + ldr r1, [fp, #-936] bic r2, r2, #3 add r2, r1, r2 str r2, [r3, #12] -.L1572: +.L1586: add r9, r9, #1 uxth r9, r9 -.L1570: +.L1584: movw r2, #3848 - ldr ip, .L1589 + ldr ip, .L1603 ldrh r3, [r7, r2] cmp r3, r9 - bhi .L1573 + bhi .L1587 cmp r5, #0 - beq .L1560 + beq .L1574 ldr r0, [ip, #4044] mov r3, #0 mov r1, r5 @@ -13721,50 +13783,50 @@ FtlLowFormatEraseBlock: ldr r1, [sp, #16] mov fp, r9 strb r1, [ip, #3837] -.L1576: +.L1590: ldr r3, [r7, #4044] add r2, r3, r9 ldr r3, [r3, r9] cmp r3, #0 - beq .L1575 + beq .L1589 ldr r0, [r2, #4] add r4, r4, #1 ubfx r0, r0, #10, #16 uxth r4, r4 bl FtlBbmMapBadBlock -.L1575: +.L1589: add fp, fp, #1 add r9, r9, #36 uxth fp, fp cmp fp, r5 - bne .L1576 + bne .L1590 ldr r2, [sp, #4] ldr r3, [sp, #12] add r8, r8, r2 uxth r8, r8 cmp r8, r3 - bcc .L1577 - ldr r9, .L1589 + bcc .L1591 + ldr r9, .L1603 mov r7, #0 mov r8, r7 -.L1579: +.L1593: cmp sl, #0 - beq .L1578 + beq .L1592 ldr r3, [r9, #4044] add r2, r3, r7 ldr r3, [r3, r7] cmp r3, #0 - bne .L1578 + bne .L1592 ldr r0, [r2, #4] mov r1, #1 ubfx r0, r0, #10, #16 bl FtlFreeSysBlkQueueIn -.L1578: +.L1592: add r8, r8, #1 add r7, r7, #36 uxth r8, r8 cmp r8, r5 - bne .L1579 + bne .L1593 ldr r1, [sp, #8] cmp r1, #63 movhi r3, #0 @@ -13773,45 +13835,45 @@ FtlLowFormatEraseBlock: moveq sl, r3 orrne sl, r3, #1 cmp sl, #0 - beq .L1560 - ldr r3, .L1589 + beq .L1574 + ldr r3, .L1603 mov r1, r6 mov r2, r8 ldr r0, [r3, #4044] bl FlashEraseBlocks -.L1560: +.L1574: mov r0, r4 add sp, sp, #28 ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} -.L1590: +.L1604: .align 2 -.L1589: +.L1603: .word .LANCHOR0 .word .LANCHOR2 .fnend .size FtlLowFormatEraseBlock, .-FtlLowFormatEraseBlock .align 2 - .type FlashTestBlk.part.25, %function -FlashTestBlk.part.25: + .type FlashTestBlk.part.24, %function +FlashTestBlk.part.24: .fnstart @ args = 0, pretend = 0, frame = 104 @ frame_needed = 0, uses_anonymous_args = 0 -.L1592: +.L1606: stmfd sp!, {r4, r5, lr} .save {r4, r5, lr} .pad #108 sub sp, sp, #108 - ldr r4, .L1594 + ldr r4, .L1608 mov r5, r0 mov r1, #165 add r0, sp, #40 mov r2, #32 str r0, [sp, #16] - ldr r3, [r4, #136] + ldr r3, [r4, #140] mov r5, r5, asl #10 str r3, [sp, #12] bl ftl_memset - ldr r0, [r4, #136] + ldr r0, [r4, #140] mov r1, #90 mov r2, #8 bl ftl_memset @@ -13835,12 +13897,12 @@ FlashTestBlk.part.25: mov r0, r4 add sp, sp, #108 ldmfd sp!, {r4, r5, pc} -.L1595: +.L1609: .align 2 -.L1594: +.L1608: .word .LANCHOR2 .fnend - .size FlashTestBlk.part.25, .-FlashTestBlk.part.25 + .size FlashTestBlk.part.24, .-FlashTestBlk.part.24 .align 2 .global FlashTestBlk .type FlashTestBlk, %function @@ -13849,17 +13911,17 @@ FlashTestBlk: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L1598 - ldr r3, [r3, #156] + ldr r3, .L1612 + ldr r3, [r3, #160] cmp r0, r3 - bcc .L1597 - b FlashTestBlk.part.25 -.L1597: + bcc .L1611 + b FlashTestBlk.part.24 +.L1611: mov r0, #0 bx lr -.L1599: +.L1613: .align 2 -.L1598: +.L1612: .word .LANCHOR2 .fnend .size FlashTestBlk, .-FlashTestBlk @@ -13870,7 +13932,7 @@ FlashMakeFactorBbt: .fnstart @ args = 0, pretend = 0, frame = 72 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L1628 + ldr r3, .L1642 movw r1, #3062 movw r2, #3060 stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} @@ -13881,13 +13943,13 @@ FlashMakeFactorBbt: mov r5, #0 ldrh fp, [r3, r1] mov r1, #1 - ldr r4, .L1628+4 + ldr r4, .L1642+4 mul fp, fp, r2 ldr r2, [r3, #3624] - ldr r0, [r4, #228] + ldr r0, [r4, #232] ldrb r2, [r2, #24] @ zero_extendqisi2 str r0, [sp, #28] - ldr r0, .L1628+8 + ldr r0, .L1642+8 uxth fp, fp str r2, [sp, #12] ldr r2, [r3, #856] @@ -13899,25 +13961,25 @@ FlashMakeFactorBbt: uxtheq r3, r3 streq r3, [sp, #8] bl printk - ldr r0, [r4, #228] + ldr r0, [r4, #232] mov r2, #4096 mov r1, #0 bl ftl_memset sub r3, fp, #1 mov r2, fp, lsr #4 - ldr r4, .L1628 + ldr r4, .L1642 uxth r3, r3 str r2, [sp, #20] str r3, [sp, #24] - b .L1602 -.L1624: - ldr r3, .L1628+4 + b .L1616 +.L1638: + ldr r3, .L1642+4 add r2, r3, r5, asl #1 - ldrh r6, [r2, #232] + ldrh r6, [r2, #236] cmp r6, #0 - bne .L1603 + bne .L1617 movw r2, #3068 - ldr r0, [r3, #148] + ldr r0, [r3, #152] ldrh r2, [r4, r2] mov r1, r6 mov r8, r6 @@ -13927,14 +13989,14 @@ FlashMakeFactorBbt: bl ftl_memset add r3, r4, r5 ldrb r9, [r3, #3764] @ zero_extendqisi2 - b .L1604 -.L1612: + b .L1618 +.L1626: mvn r3, #0 strb r3, [sp, #34] strb r3, [sp, #35] ldr r3, [sp, #12] tst r3, #1 - beq .L1605 + beq .L1619 ldr r3, [sl, #3588] add r2, sp, #34 mov r0, r9 @@ -13945,7 +14007,7 @@ FlashMakeFactorBbt: ldrb r2, [r4, #852] @ zero_extendqisi2 ldr r3, [sp, #4] cmp r2, #1 - bne .L1605 + bne .L1619 ldr r1, [r4, #856] add r2, sp, #35 mov r0, r9 @@ -13955,10 +14017,10 @@ FlashMakeFactorBbt: ldrb r2, [sp, #35] @ zero_extendqisi2 and r3, r2, r3 strb r3, [sp, #34] -.L1605: +.L1619: ldr r0, [sp, #12] tst r0, #2 - beq .L1606 + beq .L1620 ldr r3, [r4, #3624] mov r0, r9 add r2, sp, #35 @@ -13968,42 +14030,42 @@ FlashMakeFactorBbt: add r1, r1, r3 add r1, r1, r6 bl FlashReadSpare -.L1606: +.L1620: ldr r3, [r4, #3624] ldrb r3, [r3, #7] @ zero_extendqisi2 cmp r3, #1 cmpne r3, #8 ldrb r3, [sp, #34] @ zero_extendqisi2 - bne .L1607 + bne .L1621 cmp r3, #0 - beq .L1626 + beq .L1640 ldrb r0, [sp, #35] @ zero_extendqisi2 rsbs r0, r0, #1 movcc r0, #0 - b .L1608 -.L1607: + b .L1622 +.L1621: cmp r3, #255 - bne .L1626 + bne .L1640 ldrb r0, [sp, #35] @ zero_extendqisi2 subs r0, r0, #255 movne r0, #1 - b .L1608 -.L1626: + b .L1622 +.L1640: mov r0, #1 -.L1608: +.L1622: ldr r2, [sp, #12] tst r2, #4 - beq .L1609 + beq .L1623 ldr r1, [sl, #3588] mov r0, r9 add r1, r6, r1 bl SandiskProgTestBadBlock -.L1609: +.L1623: cmp r0, #0 - beq .L1610 + beq .L1624 mov r1, r5 mov r2, r8 - ldr r0, .L1628+12 + ldr r0, .L1642+12 add r7, r7, #1 bl printk ldr r3, [sp, #16] @@ -14011,8 +14073,8 @@ FlashMakeFactorBbt: mov ip, #1 uxth r7, r7 mov r2, r3, lsr #5 - ldr r3, .L1628+4 - ldr r3, [r3, #148] + ldr r3, .L1642+4 + ldr r3, [r3, #152] ldr r1, [r3, r2, asl #2] orr r1, r1, ip, asl r0 ldr r0, [sp, #20] @@ -14020,18 +14082,18 @@ FlashMakeFactorBbt: ldrb r3, [r4, #3762] @ zero_extendqisi2 mul r3, r3, r0 cmp r7, r3 - bgt .L1611 -.L1610: + bgt .L1625 +.L1624: ldr r2, [sp, #8] add r8, r8, #1 add r6, r6, r2 -.L1604: +.L1618: uxth r3, r8 str r3, [sp, #16] cmp r3, fp - bcc .L1612 -.L1611: - ldr r0, .L1628+16 + bcc .L1626 +.L1625: + ldr r0, .L1642+16 mov r1, r5 mov r2, r7 bl printk @@ -14039,31 +14101,31 @@ FlashMakeFactorBbt: ldr r0, [sp, #20] mul r3, r3, r0 cmp r7, r3 - blt .L1613 + blt .L1627 movw r3, #3068 mov r1, #0 ldrh r2, [r4, r3] - ldr r3, .L1628+4 + ldr r3, .L1642+4 mov r2, r2, asl #9 - ldr r0, [r3, #148] + ldr r0, [r3, #152] bl ftl_memset -.L1613: +.L1627: cmp r5, #0 - bne .L1614 - ldr sl, .L1628+4 + bne .L1628 + ldr sl, .L1642+4 mov r8, r5 mov r7, r5 - ldrh r9, [sl, #156] - b .L1615 -.L1617: + ldrh r9, [sl, #160] + b .L1629 +.L1631: mov r0, r6 bl FlashTestBlk cmp r0, #0 - beq .L1616 + beq .L1630 mov r1, r6 - ldr r0, .L1628+20 + ldr r0, .L1642+20 bl printk - ldr r3, [sl, #148] + ldr r3, [sl, #152] mov r2, r6, lsr #5 mov r0, #1 add r7, r7, r0 @@ -14072,86 +14134,86 @@ FlashMakeFactorBbt: uxth r7, r7 orr r6, r1, r0, asl r6 str r6, [r3, r2, asl #2] -.L1616: +.L1630: add r8, r8, #1 uxth r8, r8 -.L1615: +.L1629: add r6, r8, r9 ldrb r3, [r4, #853] @ zero_extendqisi2 uxth r6, r6 cmp r3, r6 - bhi .L1617 + bhi .L1631 ldr r6, [sp, #24] sub r9, fp, #50 - ldr sl, .L1628+4 + ldr sl, .L1642+4 mov r8, #1 - b .L1618 -.L1620: + b .L1632 +.L1634: mov r0, r6 bl FlashTestBlk cmp r0, #0 - beq .L1619 + beq .L1633 mov r1, r6 - ldr r0, .L1628+20 + ldr r0, .L1642+20 bl printk - ldr r3, [sl, #148] + ldr r3, [sl, #152] mov r2, r6, lsr #5 and r0, r6, #31 ldr r1, [r3, r2, asl #2] orr r1, r1, r8, asl r0 str r1, [r3, r2, asl #2] -.L1619: +.L1633: sub r6, r6, #1 uxth r6, r6 -.L1618: +.L1632: cmp r6, r9 - bgt .L1620 - ldr r3, .L1628+4 + bgt .L1634 + ldr r3, .L1642+4 ldrb r1, [r4, #853] @ zero_extendqisi2 - ldr r2, [r3, #156] + ldr r2, [r3, #160] rsb r2, r2, r1 cmp r7, r2 - bcc .L1614 + bcc .L1628 movw r2, #3068 - ldr r0, [r3, #148] + ldr r0, [r3, #152] ldrh r2, [r4, r2] mov r1, #0 mov r2, r2, asl #9 bl ftl_memset -.L1614: +.L1628: mul r8, fp, r5 - ldr r7, .L1628+4 + ldr r7, .L1642+4 ldr r6, [sp, #24] ldr r9, [sp, #28] add sl, r7, r5, asl #1 -.L1621: - ldr r0, .L1628+24 +.L1635: + ldr r0, .L1642+24 mov r1, r5 mov r2, r6 bl printk - ldr r3, [r7, #148] - b .L1622 -.L1623: + ldr r3, [r7, #152] + b .L1636 +.L1637: sub r6, r6, #1 uxth r6, r6 -.L1622: +.L1636: mov r1, r6, lsr #5 and r2, r6, #31 ldr r1, [r3, r1, asl #2] mov r2, r1, lsr r2 ands r2, r2, #1 - bne .L1623 - ldr r3, .L1628+28 + bne .L1637 + ldr r3, .L1642+28 mov r1, #1 - strh r6, [sl, #232] @ movhi + strh r6, [sl, #236] @ movhi add r0, sp, #36 strh r6, [r9, #2] @ movhi strh r3, [r9, #0] @ movhi - ldr r3, [r7, #148] + ldr r3, [r7, #152] strh r2, [r9, #8] @ movhi mov r2, r1 str r3, [sp, #44] - ldr r3, [r7, #228] + ldr r3, [r7, #232] str r3, [sp, #48] add r3, r6, r8 mov r3, r3, asl #10 @@ -14166,19 +14228,19 @@ FlashMakeFactorBbt: cmp r3, #0 subne r6, r6, #1 uxthne r6, r6 - bne .L1621 -.L1603: + bne .L1635 +.L1617: add r5, r5, #1 uxtb r5, r5 -.L1602: +.L1616: ldrb r3, [r4, #3762] @ zero_extendqisi2 cmp r3, r5 - bhi .L1624 + bhi .L1638 add sp, sp, #76 ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} -.L1629: +.L1643: .align 2 -.L1628: +.L1642: .word .LANCHOR0 .word .LANCHOR2 .word .LC118 @@ -14199,70 +14261,26 @@ ftl_map_blk_gc: stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, lr} .save {r4, r5, r6, r7, r8, r9, sl, lr} mov r4, r0 - ldr r6, [r0, #12] - ldr r5, [r0, #24] + ldr r5, [r0, #12] + ldr sl, [r0, #24] bl ftl_free_no_use_map_blk - ldrh ip, [r4, #10] + ldrh r3, [r4, #10] ldrh r2, [r4, #8] - sub r3, ip, #4 + sub r3, r3, #4 cmp r2, r3 - bge .L1631 - ldrh r2, [r4, #40] - movw r3, #65535 - cmp r2, r3 - beq .L1632 - ldr r1, .L1645 - movw r3, #3918 - ldrh r2, [r4, #2] - ldrh r3, [r1, r3] - cmp r2, r3 - bcc .L1632 -.L1631: - ldrh r1, [r4, #40] - movw r3, #65535 - uxth r7, r0 - cmp r1, r3 - beq .L1633 - ldr r0, .L1645 - movw r2, #3918 - ldrh r3, [r4, #2] - ldrh r2, [r0, r2] - cmp r2, r3 - movls r0, r6 - movls r2, #0 - bhi .L1633 - b .L1634 -.L1636: - ldrh lr, [r0], #2 - cmp lr, r1 - beq .L1644 - add r2, r2, #1 - uxth r2, r2 -.L1634: - cmp r2, ip - bne .L1636 - b .L1635 -.L1644: - mov r7, r2 -.L1635: - mov r2, r2, asl #1 - ldr r0, .L1645+4 - ldrh r2, [r6, r2] - bl printk - mvn r3, #0 - strh r3, [r4, #40] @ movhi -.L1633: - mov r7, r7, asl #1 - ldrh r8, [r6, r7] + blt .L1645 + uxth r0, r0 + mov r0, r0, asl #1 + ldrh r8, [r5, r0] cmp r8, #0 - beq .L1632 + beq .L1645 ldr r3, [r4, #32] cmp r3, #0 - bne .L1632 + bne .L1645 mov r2, #1 - ldr r1, .L1645 + ldr r1, .L1653 str r2, [r4, #32] - strh r3, [r6, r7] @ movhi + strh r3, [r5, r0] @ movhi ldrh r3, [r4, #8] ldrh r2, [r4, #2] sub r3, r3, #1 @@ -14270,83 +14288,86 @@ ftl_map_blk_gc: movw r3, #3918 ldrh r3, [r1, r3] cmp r2, r3 - bcc .L1637 + bcc .L1646 mov r0, r4 bl ftl_map_blk_alloc_new_blk -.L1637: - mov r6, #0 - ldr r7, .L1645+8 - b .L1638 -.L1643: - ldr r3, [r5, r6, asl #2] - add r9, r5, r6, asl #2 +.L1646: + mov r5, #0 + ldr r6, .L1653+4 + b .L1647 +.L1652: + ldr r3, [sl, r5, asl #2] + add r9, sl, r5, asl #2 cmp r8, r3, lsr #10 - bne .L1639 - ldr r3, [r7, #-956] + bne .L1648 + ldr r3, [r6, #-952] mov r1, #1 - ldr sl, [r7, #-936] + ldr r7, [r6, #-932] mov r2, r1 - ldr r0, .L1645+12 - str r3, [r7, #188] - str sl, [r7, #192] - ldr r3, [r5, r6, asl #2] - str r3, [r7, #184] + ldr r0, .L1653+8 + str r3, [r6, #192] + str r7, [r6, #196] + ldr r3, [sl, r5, asl #2] + str r3, [r6, #188] bl FlashReadPages - ldr r3, [r7, #180] + ldr r3, [r6, #184] cmn r3, #1 - beq .L1640 - ldrh r3, [sl, #8] - cmp r3, r6 - beq .L1641 -.L1640: + beq .L1649 + ldrh r3, [r7, #8] + cmp r3, r5 + bne .L1649 + ldrh r2, [r7, #0] + ldrh r3, [r4, #4] + cmp r2, r3 + beq .L1650 +.L1649: mov r3, #0 str r3, [r9, #0] - ldr r3, .L1645+8 - ldrh r2, [sl, #8] - ldr r0, .L1645+16 - ldr r1, [r3, #184] + ldr r3, .L1653+4 + ldrh r2, [r7, #8] + ldr r0, .L1653+12 + ldr r1, [r3, #188] bl printk - ldr r3, .L1645 + ldr r3, .L1653 mov r2, #1 str r2, [r3, #4040] - b .L1642 -.L1641: + b .L1651 +.L1650: mov r0, r4 - mov r1, r6 - ldr r2, [r7, #188] + mov r1, r5 + ldr r2, [r6, #192] bl FtlMapWritePage -.L1639: - add r6, r6, #1 - uxth r6, r6 -.L1638: +.L1648: + add r5, r5, #1 + uxth r5, r5 +.L1647: ldrh r3, [r4, #6] - cmp r3, r6 - bhi .L1643 + cmp r3, r5 + bhi .L1652 mov r0, r8 mov r1, #1 bl FtlFreeSysBlkQueueIn mov r3, #0 str r3, [r4, #32] -.L1632: - ldr r1, .L1645 +.L1645: + ldr r1, .L1653 movw r3, #3918 ldrh r2, [r4, #2] ldrh r3, [r1, r3] cmp r2, r3 - bcc .L1642 + bcc .L1651 mov r0, r4 bl ftl_map_blk_alloc_new_blk -.L1642: +.L1651: mov r0, #0 ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, pc} -.L1646: +.L1654: .align 2 -.L1645: +.L1653: .word .LANCHOR0 - .word .LC123 .word .LANCHOR2 - .word .LANCHOR2+180 - .word .LC124 + .word .LANCHOR2+184 + .word .LC123 .fnend .size ftl_map_blk_gc, .-ftl_map_blk_gc .align 2 @@ -14356,7 +14377,7 @@ Ftl_write_map_blk_to_last_page: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L1653 + ldr r3, .L1661 stmfd sp!, {r4, r5, r6, r7, r8, lr} .save {r4, r5, r6, r7, r8, lr} mov r4, r0 @@ -14364,11 +14385,11 @@ Ftl_write_map_blk_to_last_page: ldr r5, [r0, #12] cmp r6, #0 ldr r8, [r0, #24] - bne .L1648 + bne .L1656 ldrh r2, [r0, #0] movw r1, #65535 cmp r2, r1 - bne .L1649 + bne .L1657 ldrh r3, [r0, #8] add r3, r3, #1 strh r3, [r0, #8] @ movhi @@ -14379,21 +14400,21 @@ Ftl_write_map_blk_to_last_page: add r3, r3, #1 strh r6, [r4, #0] @ movhi str r3, [r4, #28] - b .L1648 -.L1649: + b .L1656 +.L1657: mov r2, r2, asl #1 ldr r1, [r0, #28] ldrh r7, [r5, r2] - ldr r5, .L1653+4 + ldr r5, .L1661+4 ldrh r2, [r0, #2] orr r2, r2, r7, asl #10 - str r2, [r5, #184] - ldr r2, [r5, #-960] str r2, [r5, #188] - ldr r2, [r5, #-936] + ldr r2, [r5, #-956] str r2, [r5, #192] + ldr r2, [r5, #-932] + str r2, [r5, #196] str r1, [r2, #4] - ldr r1, .L1653+8 + ldr r1, .L1661+8 strh r1, [r2, #8] @ movhi ldrh r1, [r0, #4] strh r7, [r2, #2] @ movhi @@ -14401,33 +14422,33 @@ Ftl_write_map_blk_to_last_page: movw r2, #3918 ldrh r2, [r3, r2] mov r1, #255 - ldr r0, [r5, #-960] + ldr r0, [r5, #-956] mov r2, r2, asl #3 bl ftl_memset mov r3, r6 - b .L1650 -.L1652: + b .L1658 +.L1660: ldr r2, [r8, r3, asl #2] cmp r7, r2, lsr #10 - bne .L1651 + bne .L1659 add r6, r6, #1 - ldr r2, [r5, #-960] + ldr r2, [r5, #-956] uxth r6, r6 str r3, [r2, r6, asl #3] - ldr r2, [r5, #-960] + ldr r2, [r5, #-956] ldr r1, [r8, r3, asl #2] add r2, r2, r6, asl #3 str r1, [r2, #4] -.L1651: +.L1659: add r3, r3, #1 uxth r3, r3 -.L1650: +.L1658: ldrh r2, [r4, #6] cmp r2, r3 - bhi .L1652 + bhi .L1660 mov r1, #1 mov r3, #0 - ldr r0, .L1653+12 + ldr r0, .L1661+12 mov r2, r1 bl FlashProgPages ldrh r3, [r4, #2] @@ -14435,16 +14456,16 @@ Ftl_write_map_blk_to_last_page: add r3, r3, #1 strh r3, [r4, #2] @ movhi bl ftl_map_blk_gc -.L1648: +.L1656: mov r0, #0 ldmfd sp!, {r4, r5, r6, r7, r8, pc} -.L1654: +.L1662: .align 2 -.L1653: +.L1661: .word .LANCHOR0 .word .LANCHOR2 .word -1291 - .word .LANCHOR2+180 + .word .LANCHOR2+184 .fnend .size Ftl_write_map_blk_to_last_page, .-Ftl_write_map_blk_to_last_page .align 2 @@ -14457,13 +14478,13 @@ FtlMapWritePage: stmfd sp!, {r3, r4, r5, r6, r7, r8, r9, sl, fp, lr} .save {r3, r4, r5, r6, r7, r8, r9, sl, fp, lr} mov r4, r0 - ldr r8, .L1667 + ldr r8, .L1677 mov sl, r1 - ldr r5, .L1667+4 + ldr r5, .L1677+4 mov r9, r2 mov r6, #0 mov fp, r8 -.L1666: +.L1676: ldr r3, [r5, #-1820] add r3, r3, #1 str r3, [r5, #-1820] @@ -14472,34 +14493,34 @@ FtlMapWritePage: ldrh r3, [r8, r3] sub r3, r3, #1 cmp r2, r3 - bge .L1657 + bge .L1665 ldrh r2, [r4, #0] movw r3, #65535 cmp r2, r3 - bne .L1658 -.L1657: + bne .L1666 +.L1665: mov r0, r4 bl Ftl_write_map_blk_to_last_page -.L1658: +.L1666: ldr r1, [fp, #4040] cmp r1, #0 - bne .L1659 + bne .L1667 ldrh r3, [r4, #0] ldr r2, [r4, #12] - ldr r0, [r5, #-936] + ldr r0, [r5, #-932] mov r3, r3, asl #1 ldrh r7, [r2, r3] mov r2, #16 ldrh r3, [r4, #2] - str r9, [r5, #188] + str r9, [r5, #192] orr r3, r3, r7, asl #10 - str r0, [r5, #192] - str r3, [r5, #184] + str r0, [r5, #196] + str r3, [r5, #188] bl ftl_memset - ldr r3, [r5, #192] + ldr r3, [r5, #196] mov r1, #1 ldr r2, [r4, #28] - ldr r0, .L1667+8 + ldr r0, .L1677+8 strh sl, [r3, #8] @ movhi str r2, [r3, #4] ldrh r2, [r4, #4] @@ -14512,12 +14533,12 @@ FtlMapWritePage: add r2, r2, #1 uxth r2, r2 strh r2, [r4, #2] @ movhi - ldr r3, [r5, #180] + ldr r3, [r5, #184] cmn r3, #1 - bne .L1660 - ldr r0, .L1667+12 + bne .L1668 + ldr r0, .L1677+12 add r6, r6, #1 - ldr r1, [r5, #184] + ldr r1, [r5, #188] bl printk ldrh r3, [r4, #2] uxth r6, r6 @@ -14527,38 +14548,46 @@ FtlMapWritePage: subls r3, r3, #1 strlsh r3, [r4, #2] @ movhi cmp r6, #3 - bls .L1666 - ldr r3, .L1667+4 + bls .L1676 + ldr r3, .L1677+4 mov r2, r6 - ldr r0, .L1667+16 - ldr r1, [r3, #184] + ldr r0, .L1677+16 + ldr r1, [r3, #188] bl printk - ldr r3, .L1667 + ldr r3, .L1677 mov r2, #1 str r2, [r3, #4040] - b .L1659 -.L1660: + b .L1667 +.L1668: cmp r3, #0 strneh r7, [r4, #40] @ movhi cmp r2, #1 - beq .L1666 + beq .L1672 cmp r3, #256 - beq .L1666 - ldr r3, .L1667+4 - ldr r2, [r3, #184] + beq .L1672 + ldr r3, [r4, #36] + cmp r3, #0 + beq .L1673 +.L1672: + mov r3, #0 + str r3, [r4, #36] + b .L1676 +.L1673: + ldr r3, .L1677+4 + ldr r2, [r3, #188] ldr r3, [r4, #24] str r2, [r3, sl, asl #2] -.L1659: +.L1667: mov r0, #0 ldmfd sp!, {r3, r4, r5, r6, r7, r8, r9, sl, fp, pc} -.L1668: +.L1678: .align 2 -.L1667: +.L1677: .word .LANCHOR0 .word .LANCHOR2 - .word .LANCHOR2+180 + .word .LANCHOR2+184 + .word .LC124 .word .LC125 - .word .LC126 .fnend .size FtlMapWritePage, .-FtlMapWritePage .align 2 @@ -14571,9 +14600,9 @@ flush_l2p_region: stmfd sp!, {r3, r4, r5, lr} .save {r3, r4, r5, lr} mov r4, #12 - ldr r5, .L1670 + ldr r5, .L1680 mul r4, r4, r0 - sub r0, r5, #1088 + ldr r0, .L1680+4 ldr r2, [r5, #-1852] add r3, r2, r4 ldrh r1, [r2, r4] @@ -14586,10 +14615,11 @@ flush_l2p_region: bic r3, r3, #-2147483648 str r3, [r4, #4] ldmfd sp!, {r3, r4, r5, pc} -.L1671: +.L1681: .align 2 -.L1670: +.L1680: .word .LANCHOR2 + .word .LANCHOR2-1084 .fnend .size flush_l2p_region, .-flush_l2p_region .align 2 @@ -14609,40 +14639,40 @@ FtlMapBlkWriteDumpData: ldmeqfd sp!, {r4, r5, r6, pc} mov r3, #0 str r3, [r0, #36] - ldr r3, .L1676 + ldr r3, .L1686 ldr r1, [r3, #4040] cmp r1, #0 ldmnefd sp!, {r4, r5, r6, pc} - ldr r5, .L1676+4 + ldr r5, .L1686+4 sub r6, r6, #1 uxth r6, r6 - ldr r0, [r5, #-956] - ldr r1, [r5, #-936] - str r0, [r5, #188] - str r1, [r5, #192] + ldr r0, [r5, #-952] + ldr r1, [r5, #-932] + str r0, [r5, #192] + str r1, [r5, #196] ldr r2, [r2, r6, asl #2] cmp r2, #0 - str r2, [r5, #184] - beq .L1674 + str r2, [r5, #188] + beq .L1684 mov r1, #1 - add r0, r5, #180 + add r0, r5, #184 mov r2, r1 bl FlashReadPages - b .L1675 -.L1674: + b .L1685 +.L1684: movw r2, #3926 mov r1, #255 ldrh r2, [r3, r2] bl ftl_memset -.L1675: +.L1685: mov r0, r4 mov r1, r6 - ldr r2, [r5, #188] + ldr r2, [r5, #192] ldmfd sp!, {r4, r5, r6, lr} b FtlMapWritePage -.L1677: +.L1687: .align 2 -.L1676: +.L1686: .word .LANCHOR0 .word .LANCHOR2 .fnend @@ -14654,7 +14684,7 @@ FtlVendorPartRead: .fnstart @ args = 0, pretend = 0, frame = 48 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L1689 + ldr r3, .L1699 stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} .save {r4, r5, r6, r7, r8, r9, sl, fp, lr} mov r9, r2 @@ -14669,20 +14699,20 @@ FtlVendorPartRead: mov r8, r0 cmp r1, r2 mvnhi fp, #0 - bhi .L1679 + bhi .L1689 mov r7, r0, lsr r7 mov fp, #0 - ldr r6, .L1689+4 + ldr r6, .L1699+4 mov r2, r7, asl #2 str r2, [sp, #0] - b .L1680 -.L1686: - ldr r3, [r6, #-904] + b .L1690 +.L1696: + ldr r3, [r6, #-900] mov r0, r8 ldr r2, [sp, #0] ldr sl, [r3, r2] movw r3, #3922 - ldr r2, .L1689 + ldr r2, .L1699 ldrh r4, [r2, r3] mov r1, r4 bl __aeabi_uidivmod @@ -14693,12 +14723,12 @@ FtlVendorPartRead: cmp r4, r5 uxthhi r4, r5 cmp sl, #0 - beq .L1682 - ldr r2, .L1689+4 + beq .L1692 + ldr r2, .L1699+4 mov r1, #1 add r0, sp, #12 str sl, [sp, #16] - ldr r3, [r2, #-952] + ldr r3, [r2, #-948] mov r2, r1 str r3, [sp, #20] mov r3, #0 @@ -14707,31 +14737,31 @@ FtlVendorPartRead: ldr r3, [sp, #12] cmn r3, #1 moveq fp, r3 - ldr r3, [r6, #180] + ldr r3, [r6, #184] cmp r3, #256 - bne .L1684 + bne .L1694 mov r1, r7 mov r2, sl - ldr r0, .L1689+8 + ldr r0, .L1699+8 bl printk - ldr r0, .L1689+12 + ldr r0, .L1699+12 mov r1, r7 - ldr r2, [r6, #-952] + ldr r2, [r6, #-948] bl FtlMapWritePage -.L1684: +.L1694: ldr r3, [sp, #4] mov r0, r9 - ldr r1, [r6, #-952] + ldr r1, [r6, #-948] mov r2, r4, asl #9 add r1, r1, r3, asl #9 bl memcpy - b .L1685 -.L1682: + b .L1695 +.L1692: mov r0, r9 mov r1, sl mov r2, r4, asl #9 bl ftl_memset -.L1685: +.L1695: ldr r3, [sp, #0] add r7, r7, #1 rsb r5, r4, r5 @@ -14739,20 +14769,20 @@ FtlVendorPartRead: add r9, r9, r4, asl #9 add r3, r3, #4 str r3, [sp, #0] -.L1680: +.L1690: cmp r5, #0 - bne .L1686 -.L1679: + bne .L1696 +.L1689: mov r0, fp add sp, sp, #52 ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} -.L1690: +.L1700: .align 2 -.L1689: +.L1699: .word .LANCHOR0 .word .LANCHOR2 - .word .LC127 - .word .LANCHOR2+248 + .word .LC126 + .word .LANCHOR2+252 .fnend .size FtlVendorPartRead, .-FtlVendorPartRead .align 2 @@ -14765,24 +14795,24 @@ Ftl_load_ext_data: stmfd sp!, {r3, r4, r5, lr} .save {r3, r4, r5, lr} mov r0, #0 - ldr r5, .L1695 + ldr r5, .L1705 mov r1, #1 - ldr r2, .L1695+4 + ldr r2, .L1705+4 bl FtlVendorPartRead - ldr r4, .L1695+8 + ldr r4, .L1705+8 ldr r3, [r5, #-1708] cmp r3, r4 - beq .L1692 - ldr r0, .L1695+4 + beq .L1702 + ldr r0, .L1705+4 mov r1, #0 mov r2, #512 bl ftl_memset str r4, [r5, #-1708] -.L1692: +.L1702: ldr r2, [r5, #-1708] - ldr r3, .L1695 + ldr r3, .L1705 cmp r2, r4 - bne .L1693 + bne .L1703 ldr r2, [r3, #-1620] ldr r1, [r3, #-1676] str r2, [r3, #-1812] @@ -14798,7 +14828,7 @@ Ftl_load_ext_data: str r2, [r3, #-1820] ldr r2, [r3, #-1680] str r2, [r3, #-1792] - ldr r2, .L1695+12 + ldr r2, .L1705+12 str r1, [r2, #4052] ldr r2, [r3, #-1672] str r2, [r3, #-1832] @@ -14810,21 +14840,21 @@ Ftl_load_ext_data: str r2, [r3, #-1780] ldr r2, [r3, #-1648] str r2, [r3, #-1712] -.L1693: - ldr r4, .L1695 +.L1703: + ldr r4, .L1705 mov r3, #0 - ldr r5, .L1695+12 - str r3, [r4, #-1000] + ldr r5, .L1705+12 + str r3, [r4, #-996] ldr r2, [r4, #-1640] - ldr r3, .L1695+16 + ldr r3, .L1705+16 cmp r2, r3 - bne .L1694 + bne .L1704 mov r3, #1 - ldr r0, .L1695+20 + ldr r0, .L1705+20 str r3, [r5, #3840] - ldr r1, .L1695+24 + ldr r1, .L1705+24 bl printk -.L1694: +.L1704: movw r3, #3906 ldr r0, [r4, #-1796] ldrh r2, [r5, r3] @@ -14835,16 +14865,16 @@ Ftl_load_ext_data: bl __aeabi_uidiv str r0, [r4, #-1788] ldmfd sp!, {r3, r4, r5, pc} -.L1696: +.L1706: .align 2 -.L1695: +.L1705: .word .LANCHOR2 .word .LANCHOR2-1708 .word 1179929683 .word .LANCHOR0 .word 305432421 - .word .LC78 - .word .LC128 + .word .LC77 + .word .LC127 .fnend .size Ftl_load_ext_data, .-Ftl_load_ext_data .align 2 @@ -14857,35 +14887,35 @@ FtlLoadEctTbl: stmfd sp!, {r3, r4, r5, lr} .save {r3, r4, r5, lr} mov r0, #64 - ldr r4, .L1699 - ldr r5, .L1699+4 - ldr r2, [r4, #-920] + ldr r4, .L1709 + ldr r5, .L1709+4 + ldr r2, [r4, #-916] ldrh r1, [r4, r5] bl FtlVendorPartRead - ldr r3, [r4, #-920] + ldr r3, [r4, #-916] ldr r2, [r3, #0] - ldr r3, .L1699+8 + ldr r3, .L1709+8 cmp r2, r3 - beq .L1698 - ldr r1, .L1699+12 - ldr r0, .L1699+16 + beq .L1708 + ldr r1, .L1709+12 + ldr r0, .L1709+16 bl printk ldrh r2, [r4, r5] - ldr r0, [r4, #-920] + ldr r0, [r4, #-916] mov r1, #0 mov r2, r2, asl #9 bl ftl_memset -.L1698: +.L1708: mov r0, #0 ldmfd sp!, {r3, r4, r5, pc} -.L1700: +.L1710: .align 2 -.L1699: +.L1709: .word .LANCHOR2 - .word -924 + .word -920 .word 1112818501 - .word .LC129 - .word .LC78 + .word .LC128 + .word .LC77 .fnend .size FtlLoadEctTbl, .-FtlLoadEctTbl .align 2 @@ -14895,7 +14925,7 @@ FtlVendorPartWrite: .fnstart @ args = 0, pretend = 0, frame = 56 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L1711 + ldr r3, .L1721 stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} .save {r4, r5, r6, r7, r8, r9, sl, fp, lr} mov r9, r2 @@ -14910,26 +14940,26 @@ FtlVendorPartWrite: mov r6, r0 cmp r1, r2 mvnhi r7, #0 - bhi .L1702 + bhi .L1712 mov r8, r0, lsr r8 mov r7, #0 - ldr sl, .L1711+4 + ldr sl, .L1721+4 mov ip, r8, asl #2 str ip, [sp, #8] - b .L1703 -.L1708: - ldr r1, .L1711 + b .L1713 +.L1718: + ldr r1, .L1721 movw r2, #3922 ldr ip, [sp, #8] mov r0, r6 - ldr r3, [sl, #-904] + ldr r3, [sl, #-900] ldrh fp, [r1, r2] ldr r3, [r3, ip] mov r1, fp str r3, [sp, #4] bl __aeabi_uidivmod ldr r3, [sp, #4] - ldr r2, .L1711+4 + ldr r2, .L1721+4 uxth r1, r1 str r1, [sp, #12] rsb r5, r1, fp @@ -14937,30 +14967,30 @@ FtlVendorPartWrite: cmp r5, r4 uxthhi r5, r4 cmp r3, #0 - beq .L1705 + beq .L1715 cmp r5, fp - beq .L1705 + beq .L1715 str r3, [sp, #24] mov r1, #1 - ldr r3, [r2, #-952] + ldr r3, [r2, #-948] add r0, sp, #20 mov r2, r1 str r3, [sp, #28] mov r3, #0 str r3, [sp, #32] bl FlashReadPages - b .L1706 -.L1705: - ldr ip, .L1711 + b .L1716 +.L1715: + ldr ip, .L1721 movw r3, #3926 - ldr r0, [r2, #-952] + ldr r0, [r2, #-948] mov r1, #0 ldrh r2, [ip, r3] bl ftl_memset -.L1706: +.L1716: ldr r3, [sp, #12] mov fp, r5, asl #9 - ldr r0, [sl, #-952] + ldr r0, [sl, #-948] mov r1, r9 mov r2, fp rsb r4, r5, r4 @@ -14968,9 +14998,9 @@ FtlVendorPartWrite: add r6, r6, r5 bl memcpy mov r1, r8 - ldr r0, .L1711+8 + ldr r0, .L1721+8 add r8, r8, #1 - ldr r2, [sl, #-952] + ldr r2, [sl, #-948] add r9, r9, fp bl FtlMapWritePage ldr ip, [sp, #8] @@ -14978,19 +15008,19 @@ FtlVendorPartWrite: str ip, [sp, #8] cmn r0, #1 moveq r7, r0 -.L1703: +.L1713: cmp r4, #0 - bne .L1708 -.L1702: + bne .L1718 +.L1712: mov r0, r7 add sp, sp, #60 ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} -.L1712: +.L1722: .align 2 -.L1711: +.L1721: .word .LANCHOR0 .word .LANCHOR2 - .word .LANCHOR2+248 + .word .LANCHOR2+252 .fnend .size FtlVendorPartWrite, .-FtlVendorPartWrite .align 2 @@ -15001,12 +15031,12 @@ Ftl_save_ext_data: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L1715 - ldr r2, .L1715+4 + ldr r3, .L1725 + ldr r2, .L1725+4 ldr r1, [r3, #-1708] cmp r1, r2 bxne lr - ldr r2, .L1715+8 + ldr r2, .L1725+8 mov r0, #0 mov r1, #1 str r2, [r3, #-1704] @@ -15024,7 +15054,7 @@ Ftl_save_ext_data: str r2, [r3, #-1688] ldr r2, [r3, #-1792] str r2, [r3, #-1680] - ldr r2, .L1715+12 + ldr r2, .L1725+12 ldr r2, [r2, #4052] str r2, [r3, #-1676] ldr r2, [r3, #-1832] @@ -15037,16 +15067,16 @@ Ftl_save_ext_data: str r2, [r3, #-1660] ldr r2, [r3, #-1712] str r2, [r3, #-1648] - ldr r2, [r3, #-1000] + ldr r2, [r3, #-996] str r2, [r3, #-1644] - ldr r2, .L1715+16 + ldr r2, .L1725+16 b FtlVendorPartWrite -.L1716: +.L1726: .align 2 -.L1715: +.L1725: .word .LANCHOR2 .word 1179929683 - .word 1342177352 + .word 1342177360 .word .LANCHOR0 .word .LANCHOR2-1708 .fnend @@ -15060,42 +15090,42 @@ FtlEctTblFlush: @ frame_needed = 0, uses_anonymous_args = 0 stmfd sp!, {r3, lr} .save {r3, lr} - ldr r3, .L1724 - ldr r1, .L1724+4 + ldr r3, .L1734 + ldr r1, .L1734+4 ldr r3, [r3, #3840] cmp r3, #0 moveq r2, #32 - beq .L1718 + beq .L1728 ldr r2, [r1, #-1780] - cmp r2, #29 + cmp r2, #39 movls r2, #4 movhi r2, #32 -.L1718: - mov r3, #292 +.L1728: + mov r3, #296 ldrh r1, [r1, r3] cmp r1, #31 addls r1, r1, #1 - ldrls r2, .L1724+4 + ldrls r2, .L1734+4 strlsh r1, [r2, r3] @ movhi movls r2, #1 cmp r0, #0 - ldr r3, .L1724+4 - bne .L1720 - ldr r1, [r3, #-920] + ldr r3, .L1734+4 + bne .L1730 + ldr r1, [r3, #-916] ldr r0, [r1, #20] ldr r1, [r1, #16] add r2, r2, r0 cmp r1, r2 - bcc .L1721 -.L1720: - ldr r2, [r3, #-920] + bcc .L1731 +.L1730: + ldr r2, [r3, #-916] mov r0, #64 ldr r1, [r2, #16] str r1, [r2, #20] - ldr r1, .L1724+8 + ldr r1, .L1734+8 str r1, [r2, #0] - ldr r1, .L1724+12 - ldr r2, [r3, #-920] + ldr r1, .L1734+12 + ldr r2, [r3, #-916] ldrh r1, [r3, r1] mov r3, r1, asl #9 str r3, [r2, #12] @@ -15106,16 +15136,16 @@ FtlEctTblFlush: str r3, [r2, #4] bl FtlVendorPartWrite bl Ftl_save_ext_data -.L1721: +.L1731: mov r0, #0 ldmfd sp!, {r3, pc} -.L1725: +.L1735: .align 2 -.L1724: +.L1734: .word .LANCHOR0 .word .LANCHOR2 .word 1112818501 - .word -924 + .word -920 .fnend .size FtlEctTblFlush, .-FtlEctTblFlush .align 2 @@ -15143,13 +15173,13 @@ FtlMapTblRecovery: mov r0, r7 str r3, [sp, #8] bl ftl_memset - ldr r3, .L1747 + ldr r3, .L1756 str fp, [r4, #32] str fp, [r4, #28] - ldr r2, [r3, #-960] - ldr r5, [r3, #-936] - str r2, [r3, #188] - str r5, [r3, #192] + ldr r2, [r3, #-956] + ldr r5, [r3, #-932] + str r2, [r3, #192] + str r5, [r3, #196] mvn r3, #0 strh r3, [r4, #0] @ movhi strh r3, [r4, #2] @ movhi @@ -15158,26 +15188,24 @@ FtlMapTblRecovery: ldr r3, [sp, #8] sub r3, r3, #1 str r3, [sp, #12] - ldr r3, .L1747+4 - b .L1727 -.L1741: + ldr r3, .L1756+4 + b .L1737 +.L1750: ldr r0, [sp, #12] cmp r2, r0 mov r2, r2, asl #1 - bne .L1728 + bne .L1738 ldrh r0, [r9, r2] mov r1, #1 - add ip, r9, r2 - str ip, [sp, #4] + add r3, r9, r2 + str r3, [sp, #8] bl FtlGetLastWrittenPage ldr r1, [sp, #12] ldr r2, [sp, #16] mov r7, sl strh fp, [r4, #0] @ movhi mov sl, #0 - ldr ip, [sp, #4] - ldr r6, .L1747 - mov fp, ip + ldr r6, .L1756 uxth r0, r0 add r3, r0, #1 strh r3, [r4, #2] @ movhi @@ -15185,68 +15213,67 @@ FtlMapTblRecovery: sxth r9, r0 add r9, r9, #1 str r3, [r4, #28] - b .L1729 -.L1732: - ldrh r2, [fp, #0] + b .L1739 +.L1741: + ldr r0, [sp, #8] mov r1, #1 - ldr r0, .L1747+8 + ldrh r2, [r0, #0] + ldr r0, .L1756+8 orr r3, r3, r2, asl #10 mov r2, r1 - str r3, [r6, #184] + str r3, [r6, #188] bl FlashReadPages - ldr r3, [r6, #180] + ldr r3, [r6, #184] cmn r3, #1 - ldreqh r3, [fp, #0] - streqh r3, [r4, #40] @ movhi - beq .L1731 + beq .L1740 ldrh r3, [r5, #8] cmp r3, r8 - bcs .L1731 + bcs .L1740 ldrh r2, [r4, #4] ldrh r1, [r5, #0] cmp r1, r2 - ldreq r2, [r6, #184] + ldreq r2, [r6, #188] streq r2, [r7, r3, asl #2] -.L1731: +.L1740: add sl, sl, #1 uxth sl, sl -.L1729: +.L1739: sxth r3, sl cmp r3, r9 - blt .L1732 - b .L1733 -.L1728: - ldr r6, .L1747 + blt .L1741 + b .L1742 +.L1738: + ldr r6, .L1756 movw r7, #3918 - add r0, r9, r2 - str r0, [sp, #20] - add r0, r6, #180 - ldr r1, [r6, #-960] - str r1, [r6, #188] + add r0, r6, #184 + ldr r1, [r6, #-956] + str r1, [r6, #192] + add r1, r9, r2 + str r1, [sp, #20] ldrh r1, [r9, r2] ldrh r2, [r3, r7] sub r2, r2, #1 orr r2, r2, r1, asl #10 mov r1, #1 - str r2, [r6, #184] + str r2, [r6, #188] mov r2, r1 str r3, [sp, #4] bl FlashReadPages - ldr r2, [r6, #180] + ldr r2, [r6, #184] ldr r3, [sp, #4] cmn r2, #1 - beq .L1744 + beq .L1753 ldrh r1, [r5, #0] ldrh r2, [r4, #4] cmp r1, r2 - bne .L1744 + bne .L1753 ldrh r1, [r5, #8] movw r2, #64245 cmp r1, r2 - bne .L1744 - b .L1745 -.L1737: - ldr r0, [r6, #-960] + bne .L1753 + b .L1754 +.L1746: + ldr r0, [r6, #-956] mov ip, r1, asl #3 add r2, r2, #1 ldr r1, [r0, r1, asl #3] @@ -15256,71 +15283,71 @@ FtlMapTblRecovery: addcc r0, r0, ip ldrcc r0, [r0, #4] strcc r0, [sl, r1, asl #2] - b .L1735 -.L1745: + b .L1744 +.L1754: mov r2, #0 -.L1735: +.L1744: ldrh r0, [r3, r7] sxth r1, r2 sub r0, r0, #1 cmp r1, r0 - blt .L1737 - b .L1738 -.L1740: + blt .L1746 + b .L1747 +.L1749: ldr r0, [sp, #20] ldrh r1, [r0, #0] - ldr r0, .L1747+8 + ldr r0, .L1756+8 orr r2, r2, r1, asl #10 mov r1, #1 - str r2, [r7, #184] + str r2, [r7, #188] mov r2, r1 str r3, [sp, #4] bl FlashReadPages - ldr r2, [r7, #180] + ldr r2, [r7, #184] ldr r3, [sp, #4] cmn r2, #1 - beq .L1739 + beq .L1748 ldrh r2, [r5, #8] cmp r2, r8 - bcs .L1739 + bcs .L1748 ldrh r1, [r4, #4] ldrh r0, [r5, #0] cmp r0, r1 - ldreq r1, [r7, #184] + ldreq r1, [r7, #188] streq r1, [sl, r2, asl #2] -.L1739: +.L1748: add r6, r6, #1 uxth r6, r6 - b .L1746 -.L1744: - ldr r7, .L1747 + b .L1755 +.L1753: + ldr r7, .L1756 mov r6, #0 -.L1746: +.L1755: movw r1, #3918 sxth r2, r6 ldrh r1, [r3, r1] cmp r2, r1 - blt .L1740 -.L1738: + blt .L1749 +.L1747: add fp, fp, #1 uxth fp, fp -.L1727: +.L1737: ldr r1, [sp, #8] sxth r2, fp cmp r2, r1 - blt .L1741 -.L1733: + blt .L1750 +.L1742: mov r0, r4 bl ftl_free_no_use_map_blk - ldr r1, .L1747+4 + ldr r1, .L1756+4 movw r3, #3918 ldrh r2, [r4, #2] ldrh r3, [r1, r3] cmp r2, r3 - bne .L1742 + bne .L1751 mov r0, r4 bl ftl_map_blk_alloc_new_blk -.L1742: +.L1751: mov r0, r4 bl ftl_map_blk_gc mov r0, r4 @@ -15328,12 +15355,12 @@ FtlMapTblRecovery: mov r0, #0 add sp, sp, #28 ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} -.L1748: +.L1757: .align 2 -.L1747: +.L1756: .word .LANCHOR2 .word .LANCHOR0 - .word .LANCHOR2+180 + .word .LANCHOR2+184 .fnend .size FtlMapTblRecovery, .-FtlMapTblRecovery .align 2 @@ -15346,14 +15373,14 @@ FtlLoadMapInfo: stmfd sp!, {r3, lr} .save {r3, lr} bl FtlL2PDataInit - ldr r0, .L1750 + ldr r0, .L1759 bl FtlMapTblRecovery mov r0, #0 ldmfd sp!, {r3, pc} -.L1751: +.L1760: .align 2 -.L1750: - .word .LANCHOR2-1088 +.L1759: + .word .LANCHOR2-1084 .fnend .size FtlLoadMapInfo, .-FtlLoadMapInfo .align 2 @@ -15366,38 +15393,37 @@ FtlLoadVonderInfo: stmfd sp!, {r3, lr} .save {r3, lr} mov r2, #3936 - ldr r3, .L1753 - ldr r0, .L1753+4 + ldr r3, .L1762 + ldr r0, .L1762+4 ldrh r1, [r3, r2] - movw r2, #258 + movw r2, #262 + strh r1, [r0, r2] @ movhi + mov r2, #256 + ldr r1, .L1762+8 strh r1, [r0, r2] @ movhi - ldr r2, .L1753+8 - strh r2, [r0, #252] @ movhi movw r2, #3962 ldrh r1, [r3, r2] - mov r2, #256 + mov r2, #260 strh r1, [r0, r2] @ movhi movw r2, #3938 - ldrh r2, [r3, r2] + ldrh r1, [r3, r2] + sub r2, r2, #3680 ldr r3, [r3, #3964] - strh r2, [r0, #254] @ movhi - mvn r2, #0 - str r3, [r0, #260] - ldr r3, [r0, #-908] + strh r1, [r0, r2] @ movhi str r3, [r0, #264] - ldr r3, [r0, #-912] - str r3, [r0, #268] ldr r3, [r0, #-904] + str r3, [r0, #268] + ldr r3, [r0, #-908] str r3, [r0, #272] - mov r3, #288 - strh r2, [r0, r3] @ movhi - add r0, r0, #248 + ldr r3, [r0, #-900] + str r3, [r0, #276] + add r0, r0, #252 bl FtlMapTblRecovery mov r0, #0 ldmfd sp!, {r3, pc} -.L1754: +.L1763: .align 2 -.L1753: +.L1762: .word .LANCHOR0 .word .LANCHOR2 .word -3962 @@ -15413,21 +15439,21 @@ FlashLoadFactorBbt: stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} .save {r4, r5, r6, r7, r8, r9, sl, fp, lr} movw r2, #3062 - ldr r9, .L1764 + ldr r9, .L1773 movw r3, #3060 - ldr r4, .L1764+4 + ldr r4, .L1773+4 .pad #52 sub sp, sp, #52 mov r1, #0 mvn r7, #0 ldrh r3, [r9, r3] - add r0, r4, #232 + add r0, r4, #236 ldrh r8, [r9, r2] mov r2, #16 mov r6, #0 mul r8, r8, r3 bl ftl_memset - ldr r3, [r4, #228] + ldr r3, [r4, #232] str r6, [sp, #20] mov r4, r6 str r3, [sp, #24] @@ -15435,14 +15461,14 @@ FlashLoadFactorBbt: add r3, r8, r7 uxth r3, r3 str r3, [sp, #4] - b .L1756 -.L1762: + b .L1765 +.L1771: ldr r5, [sp, #4] sub r3, r8, #12 mul fp, r8, r4 - ldr sl, .L1764+4 - b .L1757 -.L1760: + ldr sl, .L1773+4 + b .L1766 +.L1769: add r2, fp, r5 mov r1, #1 add r0, sp, #12 @@ -15454,47 +15480,47 @@ FlashLoadFactorBbt: ldr r2, [sp, #12] ldr r3, [sp, #0] cmn r2, #1 - beq .L1758 - ldr r2, [sl, #228] + beq .L1767 + ldr r2, [sl, #232] ldrh r1, [r2, #0] movw r2, #61664 cmp r1, r2 - bne .L1758 - ldr r0, .L1764+8 + bne .L1767 + ldr r0, .L1773+8 mov r1, r4 mov r2, r5 add r6, r6, #1 bl printk - ldr r3, .L1764+4 + ldr r3, .L1773+4 uxth r6, r6 add r3, r3, r4, asl #1 - strh r5, [r3, #232] @ movhi - b .L1759 -.L1758: + strh r5, [r3, #236] @ movhi + b .L1768 +.L1767: sub r5, r5, #1 uxth r5, r5 -.L1757: +.L1766: cmp r5, r3 - bgt .L1760 -.L1759: + bgt .L1769 +.L1768: ldrb r3, [r9, #3762] @ zero_extendqisi2 add r4, r4, #1 cmp r3, r6 uxtb r4, r4 moveq r7, #0 -.L1756: +.L1765: ldrb r3, [r9, #3762] @ zero_extendqisi2 cmp r3, r4 - bhi .L1762 + bhi .L1771 mov r0, r7 add sp, sp, #52 ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} -.L1765: +.L1774: .align 2 -.L1764: +.L1773: .word .LANCHOR0 .word .LANCHOR2 - .word .LC130 + .word .LC129 .fnend .size FlashLoadFactorBbt, .-FlashLoadFactorBbt .align 2 @@ -15507,12 +15533,12 @@ dump_map_info: stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} .save {r4, r5, r6, r7, r8, r9, sl, fp, lr} mov r3, #3856 - ldr r5, .L1779 + ldr r5, .L1788 .pad #36 sub sp, sp, #36 ldrh r6, [r5, r3] - b .L1767 -.L1769: + b .L1776 +.L1778: add r3, r5, r7 mov r1, r6 ldrb r0, [r3, #3874] @ zero_extendqisi2 @@ -15521,8 +15547,8 @@ dump_map_info: bl FtlBbmIsBadBlock ldr r3, [sp, #28] cmp r0, #0 - bne .L1768 - ldr r2, [r8, #-972] + bne .L1777 + ldr r2, [r8, #-968] mov r3, r3, asl #10 mla r2, r9, r4, r2 str r3, [r2, #4] @@ -15539,32 +15565,32 @@ dump_map_info: bic r3, r3, #3 add r3, r1, r3 str r3, [r2, #12] -.L1768: +.L1777: add r7, r7, #1 uxth r7, r7 - b .L1772 -.L1777: - ldr r8, .L1779+4 + b .L1781 +.L1786: + ldr r8, .L1788+4 mov r4, #0 mov r7, r4 movw fp, #3848 mov r9, #36 movw sl, #3928 -.L1772: +.L1781: ldrh r3, [r5, fp] cmp r3, r7 - bhi .L1769 + bhi .L1778 cmp r4, #0 - beq .L1770 - ldr sl, .L1779+4 + beq .L1779 + ldr sl, .L1788+4 mov r1, r4 mov r2, #1 mov r7, #0 mov r8, r7 - ldr r0, [sl, #-972] + ldr r0, [sl, #-968] bl FlashReadPages -.L1771: - ldr r1, [sl, #-972] +.L1780: + ldr r1, [sl, #-968] add r8, r8, #1 add r1, r1, r7 uxth r8, r8 @@ -15581,39 +15607,39 @@ dump_map_info: ldr r0, [r1, #0] str r0, [sp, #12] ldr r1, [r1, #4] - ldr r0, .L1779+8 + ldr r0, .L1788+8 str r1, [sp, #16] ubfx r1, r2, #10, #16 ldr r3, [r3, #0] bl printk cmp r8, r4 - bne .L1771 -.L1770: + bne .L1780 +.L1779: add r6, r6, #1 uxth r6, r6 -.L1767: +.L1776: movw r2, #3858 ldrh r3, [r5, r2] cmp r3, r6 - bhi .L1777 + bhi .L1786 mov r5, #0 - ldr r4, .L1779+4 - ldr sl, .L1779+12 - b .L1773 -.L1774: - ldr r2, [r4, #-1040] + ldr r4, .L1788+4 + ldr r8, .L1788 + b .L1782 +.L1783: + ldr r2, [r4, #-1036] mov r1, #1 - ldr r0, .L1779+16 + ldr r0, .L1788+12 add r6, r6, #1 ldrh r2, [r2, r7] uxth r6, r6 orr r3, r3, r2, asl #10 mov r2, r1 - str r3, [r4, #184] + str r3, [r4, #188] bl FlashReadPages - ldr r3, [r4, #192] - ldr r1, [r4, #-1040] - ldr r2, [r4, #188] + ldr r3, [r4, #196] + ldr r1, [r4, #-1036] + ldr r2, [r4, #192] ldr r0, [r3, #0] ldrh r1, [r1, r7] str r0, [sp, #0] @@ -15622,64 +15648,64 @@ dump_map_info: ldr r0, [r3, #8] str r0, [sp, #8] ldr r3, [r3, #12] - ldr r0, .L1779+20 + ldr r0, .L1788+16 str r3, [sp, #12] ldr r3, [r2, #0] str r3, [sp, #16] ldr r3, [r2, #4] str r3, [sp, #20] - ldr r2, [r4, #180] - ldr r3, [r4, #184] + ldr r2, [r4, #184] + ldr r3, [r4, #188] bl printk -.L1776: +.L1785: movw r2, #3918 sxth r3, r6 ldrh r2, [r8, r2] cmp r3, r2 - blt .L1774 + blt .L1783 add r5, r5, #1 uxth r5, r5 -.L1773: - ldrh r3, [r4, sl] +.L1782: + ldr r3, .L1788+20 sxth r7, r5 - ldr r6, .L1779+4 + ldr r6, .L1788+4 + ldrh r3, [r4, r3] cmp r7, r3 movlt r7, r7, asl #1 movlt r6, #0 - ldrlt r8, .L1779 - blt .L1776 -.L1775: - ldr r4, .L1779 + blt .L1785 +.L1784: + ldr r4, .L1788 mov r5, #3952 - ldr r1, [r6, #-1040] + ldr r1, [r6, #-1036] mov r2, #2 - ldr r0, .L1779+24 + ldr r0, .L1788+24 ldr r3, [r4, #3944] bl rknand_print_hex - ldr r1, [r6, #-1032] + ldr r1, [r6, #-1028] ldrh r3, [r4, r5] mov r2, #4 - ldr r0, .L1779+28 + ldr r0, .L1788+28 bl rknand_print_hex - ldr r0, .L1779+32 - ldr r1, [r6, #-900] + ldr r0, .L1788+32 + ldr r1, [r6, #-896] mov r2, #4 ldrh r3, [r4, r5] add sp, sp, #36 ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} b rknand_print_hex -.L1780: +.L1789: .align 2 -.L1779: +.L1788: .word .LANCHOR0 .word .LANCHOR2 + .word .LC130 + .word .LANCHOR2+184 + .word .LC108 + .word -1040 .word .LC131 - .word -1044 - .word .LANCHOR2+180 - .word .LC107 .word .LC132 .word .LC133 - .word .LC134 .fnend .size dump_map_info, .-dump_map_info .align 2 @@ -15692,27 +15718,27 @@ FtlDumpSysBlock: stmfd sp!, {r4, r5, r6, r7, r8, lr} .save {r4, r5, r6, r7, r8, lr} mov r6, r0 - ldr r4, .L1785 + ldr r4, .L1794 .pad #24 sub sp, sp, #24 mov r7, r0, asl #10 mov r5, #0 - ldr r8, .L1785+4 - ldr r3, [r4, #-960] - str r3, [r4, #188] - ldr r3, [r4, #-936] + ldr r8, .L1794+4 + ldr r3, [r4, #-956] str r3, [r4, #192] - b .L1782 -.L1784: + ldr r3, [r4, #-932] + str r3, [r4, #196] + b .L1791 +.L1793: mov r1, #1 - ldr r0, .L1785+8 + ldr r0, .L1794+8 mov r2, r1 orr r3, r3, r7 - str r3, [r4, #184] + str r3, [r4, #188] bl FlashReadPages - ldr r3, [r4, #192] + ldr r3, [r4, #196] mov r1, r6 - ldr r0, .L1785+12 + ldr r0, .L1794+12 ldr r2, [r3, #0] str r2, [sp, #0] ldr r2, [r3, #4] @@ -15720,41 +15746,41 @@ FtlDumpSysBlock: ldr r2, [r3, #8] str r2, [sp, #8] ldr r3, [r3, #12] - ldr r2, [r4, #180] + ldr r2, [r4, #184] str r3, [sp, #12] - ldr r3, [r4, #188] - ldr r3, [r3, #0] - str r3, [sp, #16] - ldr r3, [r4, #184] - bl printk ldr r3, [r4, #192] ldr r3, [r3, #0] + str r3, [sp, #16] + ldr r3, [r4, #188] + bl printk + ldr r3, [r4, #196] + ldr r3, [r3, #0] cmn r3, #1 - beq .L1783 - ldr r0, .L1785+16 + beq .L1792 + ldr r0, .L1794+16 mov r2, #4 - ldr r1, [r4, #-960] + ldr r1, [r4, #-956] mov r3, #768 bl rknand_print_hex -.L1783: +.L1792: add r5, r5, #1 uxth r5, r5 -.L1782: +.L1791: movw r2, #3918 sxth r3, r5 ldrh r2, [r8, r2] cmp r3, r2 - blt .L1784 + blt .L1793 add sp, sp, #24 ldmfd sp!, {r4, r5, r6, r7, r8, pc} -.L1786: +.L1795: .align 2 -.L1785: +.L1794: .word .LANCHOR2 .word .LANCHOR0 - .word .LANCHOR2+180 + .word .LANCHOR2+184 + .word .LC134 .word .LC135 - .word .LC136 .fnend .size FtlDumpSysBlock, .-FtlDumpSysBlock .align 2 @@ -15764,7 +15790,7 @@ FlashReadFacBbtData: .fnstart @ args = 0, pretend = 0, frame = 40 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L1797 + ldr r3, .L1806 stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, lr} .save {r4, r5, r6, r7, r8, r9, sl, lr} mov r6, r1 @@ -15775,20 +15801,20 @@ FlashReadFacBbtData: ldrh r2, [r3, r2] .pad #40 sub sp, sp, #40 - ldr r7, .L1797+4 + ldr r7, .L1806+4 mov r4, r0 mul r8, r8, r2 - ldr r3, [r7, #148] + ldr r3, [r7, #152] str r3, [sp, #12] - ldr r3, [r7, #228] + ldr r3, [r7, #232] uxth r8, r8 sub r5, r8, #1 mul sl, r8, r6 str r3, [sp, #16] uxth r5, r5 sub r8, r8, #16 - b .L1788 -.L1794: + b .L1797 +.L1803: mov r1, #1 add r3, r5, sl add r0, sp, #4 @@ -15798,22 +15824,22 @@ FlashReadFacBbtData: bl FlashReadPages ldr r3, [sp, #4] cmn r3, #1 - beq .L1789 - ldr r3, [r7, #228] + beq .L1798 + ldr r3, [r7, #232] ldrh r2, [r3, #0] movw r3, #61664 cmp r2, r3 - bne .L1789 + bne .L1798 cmp r4, #0 moveq r0, r4 - beq .L1790 + beq .L1799 cmp r6, #0 - ldreq r3, .L1797+4 + ldreq r3, .L1806+4 moveq r0, #1 - beq .L1791 - b .L1792 -.L1793: - ldr r2, [r3, #148] + beq .L1800 + b .L1801 +.L1802: + ldr r2, [r3, #152] ubfx r1, r6, #5, #16 and lr, r6, #31 add r6, r6, #1 @@ -15821,39 +15847,39 @@ FlashReadFacBbtData: uxth r6, r6 orr ip, ip, r0, asl lr str ip, [r2, r1, asl #2] -.L1791: - ldr r2, [r3, #156] +.L1800: + ldr r2, [r3, #160] cmp r6, r2 - bcc .L1793 -.L1792: - ldr r3, .L1797+4 + bcc .L1802 +.L1801: + ldr r3, .L1806+4 mov r2, r9 mov r0, r4 - ldr r1, [r3, #148] + ldr r1, [r3, #152] bl memcpy mov r2, #4 - ldr r0, .L1797+8 + ldr r0, .L1806+8 mov r1, r4 mov r3, r2 bl rknand_print_hex mov r0, #0 - b .L1790 -.L1789: + b .L1799 +.L1798: sub r5, r5, #1 uxth r5, r5 -.L1788: +.L1797: cmp r5, r8 - bgt .L1794 + bgt .L1803 mvn r0, #0 -.L1790: +.L1799: add sp, sp, #40 ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, pc} -.L1798: +.L1807: .align 2 -.L1797: +.L1806: .word .LANCHOR0 .word .LANCHOR2 - .word .LC137 + .word .LC136 .fnend .size FlashReadFacBbtData, .-FlashReadFacBbtData .align 2 @@ -15863,30 +15889,30 @@ FlashGetBadBlockList: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L1806 + ldr r3, .L1815 stmfd sp!, {r4, r5, r6, r7, r8, lr} .save {r4, r5, r6, r7, r8, lr} mov r5, r0 ldr r3, [r3, #3624] - ldr r6, .L1806+4 + ldr r6, .L1815+4 ldrb r2, [r3, #13] @ zero_extendqisi2 ldrh r4, [r3, #14] - ldr r0, [r6, #136] + ldr r0, [r6, #140] mul r4, r4, r2 uxth r4, r4 add r2, r4, #7 mov r2, r2, lsr #3 bl FlashReadFacBbtData cmn r0, #1 - beq .L1805 + beq .L1814 mov r2, #0 mov r0, r4, lsr #4 mov r3, r2 sub r4, r4, #1 mov r1, #1 - b .L1801 -.L1803: - ldr ip, [r6, #136] + b .L1810 +.L1812: + ldr ip, [r6, #140] mov r8, r2, lsr #5 and r7, r2, #31 ldr ip, [ip, r8, asl #2] @@ -15896,24 +15922,24 @@ FlashGetBadBlockList: uxthne r3, r3 strneh r2, [r5, ip] @ movhi cmp r3, r0 - bcs .L1805 + bcs .L1814 add r2, r2, #1 uxth r2, r2 -.L1801: +.L1810: cmp r2, r4 - blt .L1803 - b .L1800 -.L1805: + blt .L1812 + b .L1809 +.L1814: mov r3, #0 -.L1800: +.L1809: mov r3, r3, asl #1 mvn r2, #0 mov r0, #0 strh r2, [r5, r3] @ movhi ldmfd sp!, {r4, r5, r6, r7, r8, pc} -.L1807: +.L1816: .align 2 -.L1806: +.L1815: .word .LANCHOR0 .word .LANCHOR2 .fnend @@ -15927,65 +15953,65 @@ FtlMakeBbt: @ frame_needed = 0, uses_anonymous_args = 0 stmfd sp!, {r3, r4, r5, r6, r7, r8, r9, sl, fp, lr} .save {r3, r4, r5, r6, r7, r8, r9, sl, fp, lr} - ldr r6, .L1826 + ldr r6, .L1835 ldr r5, [r6, #4040] cmp r5, #0 - bne .L1809 - ldr r8, .L1826+4 + bne .L1818 + ldr r8, .L1835+4 bl FtlBbtMemInit - ldr r4, .L1826+8 + ldr r4, .L1835+8 bl FtlLoadFactoryBbt add sl, r8, #12 - b .L1810 -.L1816: + b .L1819 +.L1825: ldrh r3, [sl], #2 movw r2, #65535 - ldr r0, [r4, #-960] + ldr r0, [r4, #-956] movw fp, #3912 - ldr r9, [r4, #-936] + ldr r9, [r4, #-932] cmp r3, r2 - str r0, [r4, #188] - str r9, [r4, #192] - beq .L1811 + str r0, [r4, #192] + str r9, [r4, #196] + beq .L1820 ldrh r7, [r6, fp] mov r1, #1 mov r2, r1 - ldr r0, .L1826+12 + ldr r0, .L1835+12 mla r7, r7, r5, r3 mov r3, r7, asl #10 - str r3, [r4, #184] + str r3, [r4, #188] bl FlashReadPages ldrh r2, [r6, fp] ldr r0, [r8, #28] add r2, r2, #7 - ldr r1, [r4, #188] + ldr r1, [r4, #192] mov r2, r2, lsr #3 bl memcpy - b .L1812 -.L1811: + b .L1821 +.L1820: mov r1, r5 bl FlashGetBadBlockList - ldr r0, [r4, #188] + ldr r0, [r4, #192] ldr r1, [r8, #28] bl FtlBbt2Bitmap ldrh fp, [r6, fp] -.L1814: +.L1823: sub fp, fp, #1 uxth fp, fp -.L1825: +.L1834: movw r7, #3912 ldrh r0, [r6, r7] mla r0, r0, r5, fp uxth r0, r0 bl FtlBbmIsBadBlock cmp r0, #1 - beq .L1814 + beq .L1823 mov r1, #0 mov r2, #16 strh fp, [sl, #-2] @ movhi - ldr r0, [r4, #-936] + ldr r0, [r4, #-932] bl ftl_memset - ldr r3, .L1826+16 + ldr r3, .L1835+16 strh r3, [r9, #0] @ movhi mov r3, #0 str r3, [r9, #4] @@ -15994,91 +16020,91 @@ FtlMakeBbt: strh r3, [r9, #2] @ movhi ldrh r3, [sl, #-2] ldr r1, [r8, #28] - ldr r0, [r4, #188] + ldr r0, [r4, #192] mla r7, r7, r5, r3 mov r3, r7, asl #10 - str r3, [r4, #184] - ldr r3, .L1826+20 + str r3, [r4, #188] + ldr r3, .L1835+20 ldrh r2, [r4, r3] mov r2, r2, asl #2 bl memcpy mov r1, #1 mov r2, r1 - ldr r0, .L1826+12 + ldr r0, .L1835+12 bl FlashEraseBlocks mov r1, #1 mov r3, r1 - ldr r0, .L1826+12 + ldr r0, .L1835+12 mov r2, r1 bl FlashProgPages - ldr r3, [r4, #180] + ldr r3, [r4, #184] cmn r3, #1 - bne .L1812 + bne .L1821 uxth r0, r7 bl FtlBbmMapBadBlock - b .L1825 -.L1812: + b .L1834 +.L1821: uxth r0, r7 add r5, r5, #1 bl FtlBbmMapBadBlock add r8, r8, #4 -.L1810: +.L1819: movw r3, #3870 ldrh r3, [r6, r3] cmp r5, r3 - bcc .L1816 + bcc .L1825 mov r4, #0 - ldr r7, .L1826 + ldr r7, .L1835 movw r6, #3930 - b .L1817 -.L1818: + b .L1826 +.L1827: mov r0, r4 add r4, r4, #1 bl FtlBbmMapBadBlock uxth r4, r4 -.L1817: +.L1826: ldrh r3, [r7, r6] - ldr r5, .L1826 + ldr r5, .L1835 cmp r3, r4 - bhi .L1818 + bhi .L1827 movw r7, #3992 movw r6, #3980 ldrh r4, [r5, r7] sub r4, r4, #1 uxth r4, r4 - b .L1819 -.L1824: + b .L1828 +.L1833: mov r0, r4 bl FtlBbmIsBadBlock cmp r0, #1 - beq .L1820 + beq .L1829 mov r0, r4 bl FlashTestBlk cmp r0, #0 - beq .L1821 + beq .L1830 mov r0, r4 bl FtlBbmMapBadBlock - b .L1820 -.L1821: + b .L1829 +.L1830: ldrh r2, [r5, r6] movw r3, #65535 cmp r2, r3 streqh r4, [r5, r6] @ movhi -.L1822: - ldrne r2, .L1826 +.L1831: + ldrne r2, .L1835 movne r3, #3984 strneh r4, [r2, r3] @ movhi - bne .L1823 -.L1820: + bne .L1832 +.L1829: sub r4, r4, #1 uxth r4, r4 -.L1819: +.L1828: ldrh r3, [r5, r7] sub r3, r3, #48 cmp r4, r3 - bgt .L1824 -.L1823: - ldr r4, .L1826 + bgt .L1833 +.L1832: + ldr r4, .L1835 movw r6, #3980 mov r5, #3984 mov r7, #0 @@ -16109,18 +16135,18 @@ FtlMakeBbt: strh r2, [r4, r6] @ movhi strh r3, [r4, r5] @ movhi bl FtlBbmTblFlush -.L1809: +.L1818: mov r0, #0 ldmfd sp!, {r3, r4, r5, r6, r7, r8, r9, sl, fp, pc} -.L1827: +.L1836: .align 2 -.L1826: +.L1835: .word .LANCHOR0 .word .LANCHOR0+3980 .word .LANCHOR2 - .word .LANCHOR2+180 + .word .LANCHOR2+184 .word -3872 - .word -1028 + .word -1024 .fnend .size FtlMakeBbt, .-FtlMakeBbt .align 2 @@ -16129,103 +16155,100 @@ ftl_load_l2p_region: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - stmfd sp!, {r4, r5, r6, r7, r8, lr} - .save {r4, r5, r6, r7, r8, lr} - mov r4, r0 - ldr r6, .L1833 - mov r5, #12 - ldr r3, [r6, #-1032] + stmfd sp!, {r3, r4, r5, r6, r7, lr} + .save {r3, r4, r5, r6, r7, lr} + mov r5, r0 + ldr r4, .L1842 + mov r6, #12 + ldr r3, [r4, #-1028] ldr r7, [r3, r0, asl #2] cmp r7, #0 - bne .L1829 - mul r5, r5, r1 - ldr r3, [r6, #-1852] - ldr r2, .L1833+4 + bne .L1838 + mul r6, r6, r1 + ldr r3, [r4, #-1852] + ldr r2, .L1842+4 mov r1, #255 - add r3, r3, r5 + add r3, r3, r6 ldr r0, [r3, #8] movw r3, #3926 ldrh r2, [r2, r3] bl ftl_memset - ldr r3, [r6, #-1852] - strh r4, [r3, r5] @ movhi - ldr r3, [r6, #-1852] - add r5, r3, r5 - str r7, [r5, #4] - b .L1830 -.L1829: - mul r5, r5, r1 - ldr r3, [r6, #-1852] + ldr r3, [r4, #-1852] + strh r5, [r3, r6] @ movhi + ldr r3, [r4, #-1852] + add r6, r3, r6 + str r7, [r6, #4] + b .L1839 +.L1838: + mul r6, r6, r1 + ldr r3, [r4, #-1852] mov r1, #1 - str r7, [r6, #184] - add r0, r6, #180 + add r0, r4, #184 mov r2, r1 - add r3, r3, r5 + str r7, [r4, #188] + add r3, r3, r6 ldr r3, [r3, #8] - str r3, [r6, #188] - ldr r3, [r6, #-936] - str r3, [r6, #192] + str r3, [r4, #192] + ldr r3, [r4, #-932] + str r3, [r4, #196] bl FlashReadPages - ldr r3, [r6, #180] - ldr r8, [r6, #192] - cmp r3, #256 - bne .L1831 - mov r1, r4 + ldr r3, [r4, #196] + ldrh r3, [r3, #8] + cmp r3, r5 + beq .L1840 mov r2, r7 - ldr r0, .L1833+8 + mov r1, r5 + ldr r0, .L1842+8 bl printk - ldr r3, .L1833+12 - mov r2, r7, lsr #10 - sub r0, r6, #1088 - mov r1, r4 - strh r2, [r6, r3] @ movhi - ldr r3, [r6, #-1852] - add r3, r3, r5 - ldr r2, [r3, #8] - bl FtlMapWritePage -.L1831: - ldrh r3, [r8, #8] - cmp r3, r4 - beq .L1832 - mov r2, r7 - ldr r7, .L1833 - mov r1, r4 - ldr r0, .L1833+16 - bl printk - ldr r6, .L1833+4 + ldr r7, .L1842+4 mov r2, #4 - ldr r0, .L1833+20 + ldr r0, .L1842+12 mov r3, r2 - ldr r1, [r7, #192] + ldr r1, [r4, #196] bl rknand_print_hex mov r3, #3952 - ldrh r3, [r6, r3] + ldrh r3, [r7, r3] mov r2, #4 - ldr r0, .L1833+24 - ldr r1, [r7, #-1032] + ldr r0, .L1842+16 + ldr r1, [r4, #-1028] bl rknand_print_hex mov r3, #1 - str r3, [r6, #4040] -.L1832: - ldr r3, .L1833 + str r3, [r7, #4040] + b .L1841 +.L1840: + ldr r3, [r4, #184] + cmp r3, #256 + bne .L1841 + mov r1, r5 + mov r2, r7 + ldr r0, .L1842+20 + bl printk + ldr r3, [r4, #-1852] + ldr r0, .L1842+24 + mov r1, r5 + add r3, r3, r6 + ldr r2, [r3, #8] + bl FtlMapWritePage +.L1841: + ldr r3, .L1842 mov r1, #0 ldr r3, [r3, #-1852] - add r2, r3, r5 + add r2, r3, r6 str r1, [r2, #4] - strh r4, [r3, r5] @ movhi -.L1830: + strh r5, [r3, r6] @ movhi +.L1839: mov r0, #0 - ldmfd sp!, {r4, r5, r6, r7, r8, pc} -.L1834: + ldmfd sp!, {r3, r4, r5, r6, r7, pc} +.L1843: .align 2 -.L1833: +.L1842: .word .LANCHOR2 .word .LANCHOR0 + .word .LC137 + .word .LC99 .word .LC138 - .word -1048 .word .LC139 - .word .LC98 - .word .LC140 + .word .LANCHOR2-1084 .fnend .size ftl_load_l2p_region, .-ftl_load_l2p_region .align 2 @@ -16238,7 +16261,7 @@ log2phys: stmfd sp!, {r3, r4, r5, r6, r7, r8, sl, lr} .save {r3, r4, r5, r6, r7, r8, sl, lr} mov r8, r2 - ldr r3, .L1844 + ldr r3, .L1853 movw r2, #3924 mov r4, r1 ldrh r7, [r3, r2] @@ -16249,30 +16272,30 @@ log2phys: movw r2, #3954 ldrh r2, [r3, r2] uxth r6, r6 - ldr r3, .L1844+4 + ldr r3, .L1853+4 uxth r7, r7 ldr sl, [r3, #-1852] mov r3, #0 mov r5, r3 - b .L1836 -.L1842: + b .L1845 +.L1851: add r3, r3, #12 add r1, sl, r3 ldrh r1, [r1, #-12] cmp r1, r6 - bne .L1837 -.L1838: + bne .L1846 +.L1847: cmp r8, #0 - ldr r3, .L1844+4 + ldr r3, .L1853+4 mov r2, #12 - bne .L1839 + bne .L1848 ldr r3, [r3, #-1852] mla r2, r2, r5, r3 ldr r3, [r2, #8] ldr r3, [r3, r7, asl #2] str r3, [r4, #0] - b .L1840 -.L1839: + b .L1849 +.L1848: mul r2, r2, r5 ldr r1, [r3, #-1852] ldr r0, [r4, #0] @@ -16284,10 +16307,10 @@ log2phys: ldr r1, [r2, #4] orr r1, r1, #-2147483648 str r1, [r2, #4] - ldr r2, .L1844+8 + ldr r2, .L1853+8 strh r6, [r3, r2] @ movhi -.L1840: - ldr r3, .L1844+4 +.L1849: + ldr r3, .L1853+4 mov r2, #12 mov r0, #0 ldr r3, [r3, #-1852] @@ -16297,12 +16320,12 @@ log2phys: addne r3, r3, #1 strne r3, [r5, #4] ldmfd sp!, {r3, r4, r5, r6, r7, r8, sl, pc} -.L1837: +.L1846: add r5, r5, #1 uxth r5, r5 -.L1836: +.L1845: cmp r5, r2 - bne .L1842 + bne .L1851 bl select_l2p_ram_region mov r3, #12 mul r3, r3, r0 @@ -16311,19 +16334,19 @@ log2phys: ldrh r1, [sl, r3] movw r3, #65535 cmp r1, r3 - beq .L1843 + beq .L1852 ldr r3, [r2, #4] cmp r3, #0 - bge .L1843 + bge .L1852 bl flush_l2p_region -.L1843: +.L1852: mov r0, r6 mov r1, r5 bl ftl_load_l2p_region - b .L1838 -.L1845: + b .L1847 +.L1854: .align 2 -.L1844: +.L1853: .word .LANCHOR0 .word .LANCHOR2 .word -1848 @@ -16339,18 +16362,18 @@ FtlReadRefresh.part.15: .save {r4, r5, r6, lr} .pad #40 sub sp, sp, #40 - ldr r4, .L1854 - ldr r6, .L1854+4 + ldr r4, .L1863 + ldr r6, .L1863+4 ldr r2, [r4, #-1624] ldr r3, [r6, #3976] cmp r2, r3 - bcs .L1847 + bcs .L1856 mov r5, #2048 -.L1850: +.L1859: ldr r0, [r4, #-1624] ldr r3, [r6, #3976] cmp r0, r3 - bcs .L1852 + bcs .L1861 mov r1, sp mov r2, #0 bl log2phys @@ -16359,7 +16382,7 @@ FtlReadRefresh.part.15: cmn r0, #1 add r3, r3, #1 str r3, [r4, #-1624] - beq .L1849 + beq .L1858 str r0, [sp, #8] add r0, sp, #40 mov r2, #0 @@ -16371,31 +16394,31 @@ FtlReadRefresh.part.15: bl FlashReadPages ldr r3, [sp, #4] cmp r3, #256 - bne .L1852 + bne .L1861 ldr r0, [sp, #0] ubfx r0, r0, #10, #16 bl P2V_block_in_plane bl FtlGcRefreshBlock - b .L1852 -.L1849: + b .L1861 +.L1858: subs r5, r5, #1 - bne .L1850 - b .L1848 -.L1847: + bne .L1859 + b .L1857 +.L1856: ldr r3, [r4, #-1836] mov r0, #0 str r0, [r4, #-1628] str r0, [r4, #-1624] str r3, [r4, #-1632] - b .L1848 -.L1852: + b .L1857 +.L1861: mvn r0, #0 -.L1848: +.L1857: add sp, sp, #40 ldmfd sp!, {r4, r5, r6, pc} -.L1855: +.L1864: .align 2 -.L1854: +.L1863: .word .LANCHOR2 .word .LANCHOR0 .fnend @@ -16408,13 +16431,13 @@ FtlReadRefresh: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L1863 + ldr r3, .L1872 ldr r2, [r3, #-1628] cmp r2, #0 - beq .L1857 + beq .L1866 b FtlReadRefresh.part.15 -.L1857: - ldr r2, .L1863+4 +.L1866: + ldr r2, .L1872+4 ldr r0, [r3, #-1784] ldr r1, [r2, #3840] ldrb r2, [r2, #928] @ zero_extendqisi2 @@ -16427,27 +16450,27 @@ FtlReadRefresh: ldr r1, [r3, #-1632] add r3, r2, #1048576 cmp r1, r3 - bhi .L1859 + bhi .L1868 add r1, r0, r1 cmp r1, r2 - bcc .L1859 - ldr r3, .L1863 + bcc .L1868 + ldr r3, .L1872 ldrb r3, [r3, #-2044] @ zero_extendqisi2 cmp r3, #0 - bne .L1860 -.L1859: - ldr r3, .L1863 + bne .L1869 +.L1868: + ldr r3, .L1872 mov r1, #1 str r2, [r3, #-1632] str r1, [r3, #-1628] mov r1, #0 str r1, [r3, #-1624] -.L1860: +.L1869: mov r0, #0 bx lr -.L1864: +.L1873: .align 2 -.L1863: +.L1872: .word .LANCHOR2 .word .LANCHOR0 .fnend @@ -16465,36 +16488,36 @@ FtlReUsePrevPpa: ubfx r0, r1, #10, #16 str r1, [sp, #4] bl P2V_block_in_plane - ldr r3, .L1871 + ldr r3, .L1880 ldr r1, [r3, #-2016] mov r5, r0, asl #1 ldrh r2, [r1, r5] cmp r2, #0 addne r2, r2, #1 strneh r2, [r1, r5] @ movhi - bne .L1867 + bne .L1876 ldr r4, [r3, #-2004] cmp r4, #0 - beq .L1867 - ldr r1, .L1871+4 + beq .L1876 + ldr r1, .L1880+4 mov ip, #6 ldrh lr, [r3, r1] ldr r3, [r3, #-2024] - ldr r1, .L1871+8 + ldr r1, .L1880+8 rsb r4, r3, r4 mov r4, r4, asr #1 mul r4, r1, r4 movw r1, #65535 uxth r4, r4 - b .L1868 -.L1870: + b .L1877 +.L1879: cmp r4, r0 - bne .L1869 + bne .L1878 mov r1, r4 - ldr r0, .L1871+12 + ldr r0, .L1880+12 bl List_remove_node - ldr r6, .L1871 - ldr r3, .L1871+4 + ldr r6, .L1880 + ldr r3, .L1880+4 mov r0, r4 ldrh r2, [r6, r3] sub r2, r2, #1 @@ -16504,26 +16527,26 @@ FtlReUsePrevPpa: ldrh r2, [r3, r5] add r2, r2, #1 strh r2, [r3, r5] @ movhi - b .L1867 -.L1869: + b .L1876 +.L1878: mul r4, ip, r4 ldrh r4, [r3, r4] cmp r4, r1 - beq .L1867 + beq .L1876 add r2, r2, #1 uxth r2, r2 -.L1868: +.L1877: cmp r2, lr - bne .L1870 -.L1867: + bne .L1879 +.L1876: mov r0, r7 add r1, sp, #4 mov r2, #1 bl log2phys ldmfd sp!, {r1, r2, r3, r4, r5, r6, r7, pc} -.L1872: +.L1881: .align 2 -.L1871: +.L1880: .word .LANCHOR2 .word -2000 .word -1431655765 @@ -16540,52 +16563,52 @@ Ftlscanalldata: stmfd sp!, {r4, r5, r6, r7, r8, lr} .save {r4, r5, r6, r7, r8, lr} mov r1, #0 - ldr r4, .L1879 + ldr r4, .L1888 .pad #32 sub sp, sp, #32 - ldr r0, .L1879+4 + ldr r0, .L1888+4 mov r5, #0 bl printk - ldr r7, .L1879+8 + ldr r7, .L1888+8 mov r6, r4 - b .L1874 -.L1878: + b .L1883 +.L1887: mov r0, r5 add r1, sp, #28 mov r2, #0 bl log2phys movs r3, r5, asl #21 - bne .L1875 - ldr r0, .L1879+12 + bne .L1884 + ldr r0, .L1888+12 mov r1, r5 ldr r2, [sp, #28] bl printk -.L1875: +.L1884: ldr r3, [sp, #28] cmn r3, #1 - beq .L1876 - str r3, [r4, #184] - mov r2, #0 - ldr r3, [r4, #-960] - mov r1, #1 - ldr r8, [r4, #-936] - ldr r0, .L1879+16 + beq .L1885 str r3, [r4, #188] - str r5, [r4, #196] - str r8, [r4, #192] - str r2, [r4, #180] + mov r2, #0 + ldr r3, [r4, #-956] + mov r1, #1 + ldr r8, [r4, #-932] + ldr r0, .L1888+16 + str r3, [r4, #192] + str r5, [r4, #200] + str r8, [r4, #196] + str r2, [r4, #184] bl FlashReadPages - ldr r3, [r4, #180] + ldr r3, [r4, #184] cmn r3, #1 cmpne r3, #256 - beq .L1877 + beq .L1886 ldr r3, [r8, #8] cmp r3, r5 - beq .L1876 -.L1877: - ldr r3, [r6, #192] - ldr r2, [r6, #188] - ldr r0, .L1879+20 + beq .L1885 +.L1886: + ldr r3, [r6, #196] + ldr r2, [r6, #192] + ldr r0, .L1888+20 ldr r1, [r3, #4] str r1, [sp, #0] ldr r1, [r3, #8] @@ -16597,26 +16620,26 @@ Ftlscanalldata: mov r1, r5 ldr r2, [r2, #4] str r2, [sp, #16] - ldr r2, [r6, #184] + ldr r2, [r6, #188] ldr r3, [r3, #0] bl printk -.L1876: +.L1885: add r5, r5, #1 -.L1874: +.L1883: ldr r3, [r7, #3976] cmp r5, r3 - bcc .L1878 + bcc .L1887 add sp, sp, #32 ldmfd sp!, {r4, r5, r6, r7, r8, pc} -.L1880: +.L1889: .align 2 -.L1879: +.L1888: .word .LANCHOR2 - .word .LC141 + .word .LC140 .word .LANCHOR0 + .word .LC141 + .word .LANCHOR2+184 .word .LC142 - .word .LANCHOR2+180 - .word .LC143 .fnend .size Ftlscanalldata, .-Ftlscanalldata .align 2 @@ -16624,89 +16647,89 @@ Ftlscanalldata: .type FtlRecoverySuperblock, %function FtlRecoverySuperblock: .fnstart - @ args = 0, pretend = 0, frame = 56 + @ args = 0, pretend = 0, frame = 64 @ frame_needed = 0, uses_anonymous_args = 0 stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} .save {r4, r5, r6, r7, r8, r9, sl, fp, lr} movw r2, #65535 ldrh r3, [r0, #0] - .pad #60 - sub sp, sp, #60 + .pad #68 + sub sp, sp, #68 mov r4, r0 cmp r3, r2 - beq .L1882 + beq .L1891 ldrh r3, [r0, #2] - ldr r1, .L1971 - ldrb fp, [r0, #6] @ zero_extendqisi2 - str r3, [sp, #12] + ldr r1, .L1979 + ldrb r6, [r0, #6] @ zero_extendqisi2 + str r3, [sp, #20] movw r3, #3916 ldrh r3, [r1, r3] - ldr ip, [sp, #12] - str fp, [sp, #24] - cmp r3, ip + ldr fp, [sp, #20] + str r6, [sp, #36] + cmp r3, fp mov r3, #0 streqh r3, [r0, #4] @ movhi moveq r2, r3 @ movhi ldrneh r0, [r0, #16] - bne .L1884 - b .L1968 -.L1885: + bne .L1893 + b .L1976 +.L1894: add r3, r3, #1 uxth r3, r3 add r1, r4, r3, asl #1 ldrh r0, [r1, #16] -.L1884: +.L1893: cmp r0, r2 - beq .L1885 + beq .L1894 ldrb r1, [r4, #8] @ zero_extendqisi2 cmp r1, #1 - bne .L1886 + bne .L1895 bl FtlGetLastWrittenPage cmn r0, #1 mov r7, r0 - beq .L1887 - ldr r3, .L1971 + beq .L1896 + ldr r3, .L1979 ldrb r2, [r3, #928] @ zero_extendqisi2 cmp r2, #0 - bne .L1961 + bne .L1969 add r3, r3, r0, asl #1 movw r2, #3076 ldrh r8, [r3, r2] - b .L1953 -.L1886: + b .L1961 +.L1895: mov r1, #0 bl FtlGetLastWrittenPage cmn r0, #1 mov r7, r0 - beq .L1887 -.L1961: + beq .L1896 +.L1969: mov r8, r7 -.L1953: - ldr r3, .L1971 +.L1961: + ldr r3, .L1979 movw r2, #3848 mov r5, #0 - str r4, [sp, #32] + str r4, [sp, #44] movw ip, #65535 ldrh r9, [r3, r2] - ldr r2, .L1971+4 - ldr sl, [r2, #-972] + ldr r2, .L1979+4 + ldr sl, [r2, #-968] ldr r6, [r2, #-1168] movw r2, #3928 ldrh lr, [r3, r2] mov r2, r4 mov r3, r5 - b .L1889 -.L1887: + b .L1898 +.L1896: mov r3, #0 strh r3, [r4, #2] @ movhi mov r2, r3 @ movhi -.L1968: +.L1976: strb r2, [r4, #6] - b .L1882 -.L1891: + b .L1891 +.L1900: ldrh r0, [r2, #16] cmp r0, ip - beq .L1890 + beq .L1899 mov fp, #36 orr r0, r8, r0, asl #10 mla r1, fp, r5, sl @@ -16722,528 +16745,528 @@ FtlRecoverySuperblock: bic r0, r0, #3 add r0, r6, r0 str r0, [r1, #12] -.L1890: +.L1899: add r3, r3, #1 add r2, r2, #2 uxth r3, r3 -.L1889: +.L1898: cmp r3, r9 - bne .L1891 + bne .L1900 ldrb r3, [r4, #8] @ zero_extendqisi2 cmp r3, #1 movne r3, #0 - bne .L1962 - ldr r3, .L1971 + bne .L1970 + ldr r3, .L1979 ldrb r3, [r3, #928] @ zero_extendqisi2 adds r3, r3, #0 movne r3, #1 -.L1962: - ldr r6, .L1971+4 +.L1970: + ldr r6, .L1979+4 mov r1, r5 - str r3, [sp, #20] + str r3, [sp, #32] mov sl, #0 - ldr r2, [sp, #20] - ldr r0, [r6, #-972] + ldr r2, [sp, #32] + ldr r0, [r6, #-968] bl FlashReadPages ldr fp, [r6, #-1800] - movw ip, #65535 - str ip, [sp, #4] - str fp, [sp, #8] - b .L1893 -.L1898: - mov lr, #36 - ldr r1, [r6, #-972] - mul r2, lr, sl + movw r2, #65535 + str r2, [sp, #12] + str fp, [sp, #16] + b .L1902 +.L1907: + mov r3, #36 + ldr r1, [r6, #-968] + mul r2, r3, sl add r3, r1, r2 ldr r2, [r1, r2] cmp r2, #0 - bne .L1894 + bne .L1903 ldr r3, [r3, #12] ldr fp, [r3, #4] cmn fp, #1 - beq .L1895 + beq .L1904 ldr r1, [r6, #-1800] mov r0, fp - str r3, [sp, #0] + str r3, [sp, #4] bl ftl_cmp_data_ver - ldr r3, [sp, #0] + ldr r3, [sp, #4] cmp r0, #0 addne fp, fp, #1 strne fp, [r6, #-1800] -.L1895: +.L1904: ldr r3, [r3, #0] cmn r3, #1 - bne .L1897 - b .L1896 -.L1894: + bne .L1906 + b .L1905 +.L1903: ldr r1, [r3, #4] - movw fp, #294 - ldr r0, .L1971+8 + uxth fp, r8 + ldr r0, .L1979+8 bl printk ldrh r3, [r4, #0] - uxth r2, r8 - str r2, [sp, #4] - strh r3, [r6, fp] @ movhi -.L1897: + movw lr, #298 + str fp, [sp, #12] + strh r3, [r6, lr] @ movhi +.L1906: add sl, sl, #1 -.L1893: +.L1902: uxth r9, sl cmp r9, r5 - bcc .L1898 -.L1896: - ldr r3, .L1971+4 + bcc .L1907 +.L1905: + ldr r3, .L1979+4 cmp r9, r5 addeq r7, r7, #1 uxthne r7, r7 movne r2, #36 - ldrne r3, [r3, #-972] + ldrne r3, [r3, #-968] uxtheq r7, r7 - ldreq r3, [r3, #-972] + ldreq r3, [r3, #-968] mlane r9, r2, r9, r3 ldreq r0, [r3, #4] ldrne r0, [r9, #4] ubfx r0, r0, #10, #16 bl P2V_plane ldrb r2, [r4, #8] @ zero_extendqisi2 - ldr r3, .L1971 + ldr r3, .L1979 cmp r2, #1 - str r0, [sp, #16] - bne .L1901 + str r0, [sp, #24] + bne .L1910 ldrb r1, [r3, #928] @ zero_extendqisi2 cmp r1, #0 addeq r7, r3, r7, asl #1 movweq r1, #3076 ldreqh r7, [r7, r1] -.L1901: +.L1910: movw r1, #3916 - ldr ip, [sp, #12] + ldr r6, [sp, #24] ldrh r3, [r3, r1] - ldr fp, [sp, #24] + ldr fp, [sp, #36] cmp r3, r7 streqh r7, [r4, #2] @ movhi moveq r3, #0 streqb r3, [r4, #6] streqh r3, [r4, #4] @ movhi + ldr r3, [sp, #20] + cmp r7, r3 + cmpeq r6, fp + moveq r0, r4 + moveq r1, r7 + moveq r2, r6 + beq .L1977 ldr r3, [sp, #16] - cmp r7, ip - cmpeq r3, fp - beq .L1969 -.L1903: - ldr fp, [sp, #4] + ldr fp, [sp, #12] + sub r6, r3, #1 movw r3, #65535 - ldr ip, [sp, #8] cmp fp, r3 - sub r6, ip, #1 - bne .L1904 + bne .L1913 cmp r2, #0 - bne .L1905 -.L1904: - ldr r2, .L1971+4 + bne .L1914 +.L1913: + ldr r2, .L1979+4 uxth r3, r8 - ldr ip, [sp, #12] - mvn fp, #0 + ldr fp, [sp, #20] + movw ip, #65535 mov sl, r3 - mov r9, fp - ldr r1, [r2, #-1008] - ldr r8, .L1971+4 + ldr r8, .L1979+4 + ldr r1, [r2, #-1004] cmn r1, #1 - streq r6, [r2, #-1008] - ldr r2, [r2, #-1008] - str r2, [sp, #4] - add r2, ip, #7 + streq r6, [r2, #-1004] + ldr r2, [r2, #-1004] + str r2, [sp, #12] + add r2, fp, #7 cmp r3, r2 + mvn fp, #0 subgt r5, r3, #7 + mov r9, fp mov r3, r7 - ldrle r5, [sp, #12] + ldrle r5, [sp, #20] mov r7, r6 uxthgt r5, r5 - b .L1908 -.L1910: + mov r6, r4 + b .L1917 +.L1919: ldrh r0, [r1, #16] - movw lr, #65535 - cmp r0, lr - beq .L1909 - ldr ip, [sp, #8] + cmp r0, ip + beq .L1918 + ldr r6, [sp, #28] mov r3, #36 orr r0, r5, r0, asl #10 - mla lr, r3, r6, ip - add r6, r6, #1 - uxth r6, r6 + mla lr, r3, r4, r6 + add r4, r4, #1 + uxth r4, r4 str r0, [lr, #4] -.L1909: +.L1918: add r2, r2, #1 add r1, r1, #2 uxth r2, r2 -.L1921: - ldr lr, [sp, #36] +.L1930: + ldr lr, [sp, #16] cmp r2, lr - bne .L1910 - ldr r3, [sp, #28] - mov r1, r6 - ldr r0, [r8, #-972] - ldr r2, [sp, #20] - str r3, [sp, #0] + bne .L1919 + ldr r3, [sp, #40] + mov r1, r4 + ldr r0, [r8, #-968] + ldr r2, [sp, #32] + stmib sp, {r3, ip} + ldr r6, [sp, #0] bl FlashReadPages - ldr r2, .L1971 + ldr r2, .L1979 add r0, r8, r5, asl #1 mov r1, #0 - str r0, [sp, #8] - ldr r3, [sp, #0] - ldrb ip, [r2, #928] @ zero_extendqisi2 - ldr r2, [r8, #-972] - str ip, [sp, #28] - b .L1911 -.L1919: + str r0, [sp, #28] + ldmib sp, {r3, ip} + ldrb r2, [r2, #928] @ zero_extendqisi2 + str r2, [sp, #16] + ldr r2, [r8, #-968] + b .L1920 +.L1928: ldr r0, [r2, #0] cmp r0, #0 - bne .L1912 + bne .L1921 ldr r0, [r2, #12] - movw ip, #65535 ldrh lr, [r0, #0] cmp lr, ip - beq .L1913 + beq .L1922 ldr r0, [r0, #4] cmn r0, #1 - beq .L1913 + beq .L1922 cmn fp, #1 - ldr r9, [r8, #-1008] - str r0, [r8, #-1008] - bne .L1913 - ldr lr, [sp, #8] - sub r0, lr, #892 + ldr r9, [r8, #-1004] + str r0, [r8, #-1004] + bne .L1922 + ldr lr, [sp, #28] + sub r0, lr, #888 ldrh r0, [r0, #0] cmp r0, ip - bne .L1914 - ldr r0, [sp, #28] + bne .L1923 + ldr r0, [sp, #16] cmp r0, #0 - beq .L1913 -.L1914: + beq .L1922 +.L1923: cmp r9, r7 mvneq fp, #0 movne fp, r9 - b .L1913 -.L1912: + b .L1922 +.L1921: + mov r4, r6 mov r6, r7 ldrh r1, [r4, #0] mov r7, r3 - ldr r3, .L1971+4 - movw r2, #294 + ldr r3, .L1979+4 + movw r2, #298 strh r1, [r3, r2] @ movhi ldrb r2, [r4, #8] @ zero_extendqisi2 cmp r2, #0 - bne .L1905 + bne .L1914 add r5, r3, r5, asl #1 movw r2, #65535 - sub r5, r5, #892 + sub r5, r5, #888 ldrh r1, [r5, #0] cmp r1, r2 - bne .L1915 + bne .L1924 cmn fp, #1 - bne .L1964 -.L1916: - ldr fp, [sp, #4] + bne .L1972 +.L1925: + ldr fp, [sp, #12] cmp fp, r6 - beq .L1917 -.L1964: - str fp, [r3, #-1008] - b .L1905 -.L1917: - ldr r2, [r3, #-1008] - b .L1970 -.L1915: + beq .L1926 +.L1972: + str fp, [r3, #-1004] + b .L1914 +.L1926: + ldr r2, [r3, #-1004] + b .L1978 +.L1924: cmp r9, r6 - beq .L1918 + beq .L1927 cmn r9, #1 - strne r9, [r3, #-1008] - b .L1905 -.L1918: - ldr r2, [r3, #-1008] + strne r9, [r3, #-1004] + b .L1914 +.L1927: + ldr r2, [r3, #-1004] cmp r2, r6 - beq .L1905 -.L1970: + beq .L1914 +.L1978: sub r2, r2, #1 - b .L1965 -.L1913: + b .L1973 +.L1922: add r1, r1, #1 add r2, r2, #36 uxth r1, r1 -.L1911: - cmp r1, r6 - bne .L1919 +.L1920: + cmp r1, r4 + bne .L1928 add r5, r5, #1 uxth r5, r5 -.L1908: +.L1917: cmp r5, sl - bhi .L1920 - ldr r1, .L1971 + bhi .L1929 + ldr r1, .L1979 movw r2, #3848 - ldr lr, [r8, #-972] - mov r6, #0 - str r3, [sp, #28] - ldrh ip, [r1, r2] - mov r1, r4 - str lr, [sp, #8] - mov r2, r6 - str ip, [sp, #36] - b .L1921 -.L1920: + ldr lr, [r8, #-968] + mov r4, #0 + str r3, [sp, #40] + ldrh r2, [r1, r2] + mov r1, r6 + str lr, [sp, #28] + str r6, [sp, #0] + str r2, [sp, #16] + mov r2, r4 + b .L1930 +.L1929: + mov r4, r6 mov r6, r7 mov r7, r3 - ldr r3, .L1971+4 + ldr r3, .L1979+4 mvn r2, #0 -.L1965: - str r2, [r3, #-1008] -.L1905: - ldr r5, .L1971+4 - mov r3, #296 +.L1973: + str r2, [r3, #-1004] +.L1914: + ldr r5, .L1979+4 + mov r3, #300 + ldr r8, [sp, #20] mov r2, #1 - sub r0, r5, #1088 + str r7, [sp, #16] strh r2, [r5, r3] @ movhi - bl FtlMapBlkWriteDumpData - ldr r8, [sp, #12] - str r7, [sp, #8] -.L1922: - ldr r3, .L1971 +.L1931: + ldr r3, .L1979 movw r2, #3848 mov r7, #0 - ldr lr, [r5, #-972] + ldr lr, [r5, #-968] mov fp, #36 ldrh sl, [r3, r2] mov r2, r4 ldrb ip, [r3, #928] @ zero_extendqisi2 mov r3, r7 - b .L1923 -.L1926: + b .L1932 +.L1935: ldrh r0, [r2, #16] movw r1, #65535 cmp r0, r1 - beq .L1924 + beq .L1933 mla r1, fp, r7, lr orr r0, r8, r0, asl #10 str r0, [r1, #4] ldrb r9, [r4, #8] @ zero_extendqisi2 cmp r9, #1 - bne .L1925 + bne .L1934 cmp ip, #0 orrne r0, r0, #-2147483648 strne r0, [r1, #4] -.L1925: +.L1934: add r7, r7, #1 uxth r7, r7 -.L1924: +.L1933: add r3, r3, #1 add r2, r2, #2 uxth r3, r3 -.L1923: +.L1932: cmp r3, sl - bne .L1926 + bne .L1935 mov r1, r7 - ldr r0, [r5, #-972] - ldr r2, [sp, #20] + ldr r0, [r5, #-968] + ldr r2, [sp, #32] bl FlashReadPages mov r3, #36 mul r3, r3, r7 mov r7, #0 - str r3, [sp, #36] - b .L1927 -.L1948: - ldr r9, [r5, #-972] + str r3, [sp, #40] + b .L1936 +.L1956: + ldr r9, [r5, #-968] add r9, r9, r7 ldr sl, [r9, #4] ubfx r0, sl, #10, #16 - str sl, [sp, #52] + str sl, [sp, #60] bl P2V_plane - ldr r3, [sp, #12] + ldr r3, [sp, #20] cmp r8, r3 - bcc .L1928 - ldr fp, [sp, #24] - mov ip, r3 + bcc .L1937 + ldr fp, [sp, #36] + mov r1, r3 cmp r0, fp movcs r3, #0 movcc r3, #1 - cmp r8, ip + cmp r8, r1 movne r3, #0 cmp r3, #0 - bne .L1928 - ldr r3, [sp, #16] - ldr ip, [sp, #8] + bne .L1937 + ldr r3, [sp, #24] + ldr fp, [sp, #16] cmp r0, r3 - cmpeq r8, ip - beq .L1960 + cmpeq r8, fp + beq .L1968 ldr r3, [r9, #0] cmn r3, #1 - beq .L1930 + beq .L1939 ldr sl, [r9, #12] movw r3, #61589 ldrh r2, [sl, #0] cmp r2, r3 - bne .L1937 -.L1931: + ldrneh r0, [r4, #0] + bne .L1974 ldr r6, [sl, #4] cmn r6, #1 - beq .L1932 + beq .L1941 ldr r1, [r5, #-1800] mov r0, r6 bl ftl_cmp_data_ver cmp r0, #0 addne r3, r6, #1 strne r3, [r5, #-1800] -.L1932: +.L1941: ldr r9, [sl, #8] - add r1, sp, #48 + add r1, sp, #56 ldr r3, [sl, #12] mov r2, #0 mov r0, r9 - str r3, [sp, #44] + str r3, [sp, #52] bl log2phys - ldr r1, [r5, #-1008] + ldr r1, [r5, #-1004] cmn r1, #1 - beq .L1933 + beq .L1942 mov r0, r6 bl ftl_cmp_data_ver cmp r0, #0 - beq .L1933 - ldr r3, [sp, #44] + beq .L1942 + ldr r3, [sp, #52] cmn r3, #1 - beq .L1934 - ldr r0, [r5, #-972] + beq .L1943 + ldr r0, [r5, #-968] mov r1, #1 mov r2, #0 add r0, r0, r7 ldr fp, [r0, #12] str r3, [r0, #4] - str fp, [sp, #4] + str fp, [sp, #12] bl FlashReadPages - ldr r3, [r5, #-972] - ldr ip, [fp, #4] + ldr r3, [fp, #4] + str r3, [sp, #28] + ldr r3, [r5, #-968] add fp, r3, r7 ldr r3, [r3, r7] - str ip, [sp, #28] cmn r3, #1 - bne .L1935 - b .L1936 -.L1934: - ldr r3, [sp, #52] - ldr r2, [sp, #48] + bne .L1944 + b .L1945 +.L1943: + ldr r3, [sp, #60] + ldr r2, [sp, #56] cmp r2, r3 bne .L1937 mov r0, r9 - add r1, sp, #44 - mov r2, #1 - bl log2phys -.L1937: - ldrh r0, [r4, #0] - b .L1967 -.L1935: - ldr r3, [sp, #4] - ldr sl, [r3, #8] - cmp sl, r9 - bne .L1936 - ldr r0, [r5, #-1008] - ldr r1, [sp, #28] - bl ftl_cmp_data_ver - cmp r0, #0 - beq .L1936 - ldr r3, [sp, #48] - ldr r2, [sp, #52] - cmp r3, r2 - beq .L1941 -.L1938: - ldr r2, [sp, #44] - cmp r3, r2 - beq .L1936 - cmn r3, #1 - streq r3, [fp, #0] - beq .L1940 - ldr ip, [fp, #12] - mov r0, fp - str r3, [fp, #4] - mov r1, #1 - mov r2, #0 - str ip, [sp, #4] - bl FlashReadPages -.L1940: - ldr r3, [r5, #-972] - ldr r3, [r3, r7] - cmn r3, #1 - beq .L1941 - ldr r3, [sp, #4] - ldr r0, [r5, #-1008] - ldr r9, [r3, #4] - mov r1, r9 - bl ftl_cmp_data_ver - cmp r0, #0 - beq .L1941 - ldr r0, [sp, #28] - mov r1, r9 - bl ftl_cmp_data_ver - cmp r0, #0 - beq .L1936 -.L1941: - mov r0, sl - ldr r1, [sp, #44] - bl FtlReUsePrevPpa -.L1936: - ldrh r0, [r4, #0] - mvn r3, #0 - str r3, [sp, #44] - bl decrement_vpc_count - b .L1943 -.L1933: - ldr r3, [sp, #52] - ldr r2, [sp, #48] - cmp r2, r3 - beq .L1943 - mov r0, r9 add r1, sp, #52 mov r2, #1 bl log2phys - ldr fp, [sp, #48] - cmn fp, #1 - beq .L1943 - ldr r3, [sp, #44] - cmp fp, r3 - beq .L1943 - ubfx r0, fp, #10, #16 - bl P2V_block_in_plane - ldr r3, .L1971+12 - ldrh r3, [r5, r3] - cmp r3, r0 - beq .L1944 - ldr r3, .L1971+16 - ldrh r3, [r5, r3] - cmp r3, r0 - beq .L1944 - ldr r3, .L1971+20 - ldrh r3, [r5, r3] - cmp r3, r0 - bne .L1943 + b .L1937 .L1944: - ldr ip, .L1971+4 + ldr r3, [sp, #12] + ldr sl, [r3, #8] + cmp sl, r9 + bne .L1945 + ldr r0, [r5, #-1004] + ldr r1, [sp, #28] + bl ftl_cmp_data_ver + cmp r0, #0 + beq .L1945 + ldr r3, [sp, #56] + ldr r2, [sp, #60] + cmp r3, r2 + beq .L1949 +.L1946: + ldr r2, [sp, #52] + cmp r3, r2 + beq .L1945 + cmn r3, #1 + streq r3, [fp, #0] + beq .L1948 + ldr lr, [fp, #12] + mov r0, fp + str r3, [fp, #4] mov r1, #1 mov r2, #0 - ldr r0, [ip, #-972] + str lr, [sp, #12] + bl FlashReadPages +.L1948: + ldr r3, [r5, #-968] + ldr r3, [r3, r7] + cmn r3, #1 + beq .L1949 + ldr r3, [sp, #12] + ldr r0, [r5, #-1004] + ldr r9, [r3, #4] + mov r1, r9 + bl ftl_cmp_data_ver + cmp r0, #0 + beq .L1949 + ldr r0, [sp, #28] + mov r1, r9 + bl ftl_cmp_data_ver + cmp r0, #0 + beq .L1945 +.L1949: + mov r0, sl + ldr r1, [sp, #52] + bl FtlReUsePrevPpa +.L1945: + mvn r3, #0 + str r3, [sp, #52] + b .L1951 +.L1942: + ldr r3, [sp, #60] + ldr r2, [sp, #56] + cmp r2, r3 + beq .L1951 + mov r0, r9 + add r1, sp, #60 + mov r2, #1 + bl log2phys + ldr fp, [sp, #56] + cmn fp, #1 + beq .L1951 + ldr r3, [sp, #52] + cmp fp, r3 + beq .L1951 + ubfx r0, fp, #10, #16 + bl P2V_block_in_plane + ldr r3, .L1979+12 + ldrh r3, [r5, r3] + cmp r3, r0 + beq .L1952 + ldr r3, .L1979+16 + ldrh r3, [r5, r3] + cmp r3, r0 + beq .L1952 + ldr r3, .L1979+20 + ldrh r3, [r5, r3] + cmp r3, r0 + bne .L1951 +.L1952: + ldr lr, .L1979+4 + mov r1, #1 + mov r2, #0 + ldr r0, [lr, #-968] str fp, [r0, #4] ldr sl, [r0, #12] bl FlashReadPages - ldr r0, .L1971+4 + ldr r0, .L1979+4 ldr r1, [sl, #4] - ldr r3, [r0, #-972] + ldr r3, [r0, #-968] ldr r3, [r3, #0] cmn r3, #1 - beq .L1943 + beq .L1951 mov r0, r6 bl ftl_cmp_data_ver cmp r0, #0 - bne .L1943 + bne .L1951 mov r0, r9 - add r1, sp, #48 + add r1, sp, #56 mov r2, #1 bl log2phys -.L1943: - ldr r0, [sp, #44] +.L1951: + ldr r0, [sp, #52] cmn r0, #1 - beq .L1928 + beq .L1937 ubfx r0, r0, #10, #16 bl P2V_block_in_plane ldr r2, [r5, #-2016] @@ -17251,66 +17274,66 @@ FtlRecoverySuperblock: mov r1, r0 ldrh r3, [r2, r3] cmp r3, #0 - beq .L1945 -.L1967: + beq .L1953 +.L1974: bl decrement_vpc_count - b .L1928 -.L1945: - ldr r0, .L1971+24 + b .L1937 +.L1953: + ldr r0, .L1979+24 bl printk - b .L1928 -.L1930: + b .L1937 +.L1939: ldrh r3, [r4, #0] - movw r1, #294 + movw r1, #298 mov r2, r6 - ldr r0, .L1971+28 + ldr r0, .L1979+28 strh r3, [r5, r1] @ movhi mov r1, sl bl printk - ldr r3, [r5, #300] + ldr r3, [r5, #304] cmp r3, #31 addls r2, r5, r3, asl #2 addls r3, r3, #1 - ldrls r1, [sp, #52] - strls r3, [r5, #300] - strls r1, [r2, #304] + ldrls r1, [sp, #60] + strls r3, [r5, #304] + strls r1, [r2, #308] ldrh r0, [r4, #0] bl decrement_vpc_count - ldr r3, [r5, #-1008] + ldr r3, [r5, #-1004] cmn r3, #1 - beq .L1966 -.L1947: + beq .L1975 +.L1955: cmp r3, r6 - bls .L1928 -.L1966: - str r6, [r5, #-1008] -.L1928: + bls .L1937 +.L1975: + str r6, [r5, #-1004] +.L1937: add r7, r7, #36 -.L1927: - ldr r3, [sp, #36] +.L1936: + ldr r3, [sp, #40] cmp r7, r3 - bne .L1948 + bne .L1956 ldrb r3, [r4, #8] @ zero_extendqisi2 add r8, r8, #1 cmp r3, #1 uxth r8, r8 - bne .L1949 - ldr r3, .L1971 + bne .L1957 + ldr r3, .L1979 ldrb r2, [r3, #928] @ zero_extendqisi2 cmp r2, #0 - beq .L1949 + beq .L1957 movw r2, #3918 - ldr ip, [sp, #8] + ldr fp, [sp, #16] ldrh r3, [r3, r2] - cmp ip, r8 + cmp fp, r8 cmpeq r3, r8 - beq .L1960 -.L1949: - ldr r3, .L1971 + beq .L1968 +.L1957: + ldr r3, .L1979 movw r2, #3916 ldrh r2, [r3, r2] cmp r8, r2 - bne .L1922 + bne .L1931 mov r2, #0 movw r1, #3848 strh r2, [r4, #4] @ movhi @@ -17318,47 +17341,47 @@ FtlRecoverySuperblock: mov r3, r2 strh r8, [r4, #2] @ movhi movw r2, #65535 - ldr r0, [sp, #32] - b .L1950 -.L1952: + ldr r0, [sp, #44] + b .L1958 +.L1960: add r0, r0, #2 ldrh ip, [r0, #14] cmp ip, r2 strneb r3, [r4, #6] - bne .L1882 -.L1951: + bne .L1891 +.L1959: add r3, r3, #1 uxth r3, r3 -.L1950: +.L1958: cmp r3, r1 - bne .L1952 - b .L1882 -.L1960: -.L1929: - ldr r7, [sp, #8] - ldr r3, [sp, #16] - strh r7, [r4, #2] @ movhi - strb r3, [r4, #6] -.L1969: + bne .L1960 + b .L1891 +.L1968: +.L1938: + ldr r7, [sp, #16] mov r0, r4 + ldr r3, [sp, #24] mov r1, r7 + strh r7, [r4, #2] @ movhi mov r2, r3 + strb r3, [r4, #6] +.L1977: bl ftl_sb_update_avl_pages -.L1882: +.L1891: mov r0, #0 - add sp, sp, #60 + add sp, sp, #68 ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} -.L1972: +.L1980: .align 2 -.L1971: +.L1979: .word .LANCHOR0 .word .LANCHOR2 - .word .LC144 + .word .LC143 .word -1996 .word -1948 .word -1900 + .word .LC144 .word .LC145 - .word .LC146 .fnend .size FtlRecoverySuperblock, .-FtlRecoverySuperblock .align 2 @@ -17372,72 +17395,72 @@ FtlWriteDumpData: .save {r4, r5, r6, r7, r8, sl, lr} .pad #44 sub sp, sp, #44 - ldr r5, .L1982 + ldr r5, .L1990 ldr r3, [r5, #4040] cmp r3, #0 - bne .L1973 - ldr r4, .L1982+4 - ldr r3, .L1982+8 + bne .L1981 + ldr r4, .L1990+4 + ldr r3, .L1990+8 mov r2, r4 ldrh r3, [r4, r3] cmp r3, #0 - beq .L1975 + beq .L1983 ldrb r1, [r4, #-1988] @ zero_extendqisi2 cmp r1, #0 - bne .L1975 + bne .L1983 movw r0, #3916 ldrb r1, [r4, #-1989] @ zero_extendqisi2 ldrh r0, [r5, r0] mul r1, r0, r1 cmp r3, r1 - beq .L1975 + beq .L1983 ldrb r8, [r4, #-1986] @ zero_extendqisi2 movw r3, #3848 ldr r7, [r5, #3976] cmp r8, #0 ldrh r6, [r5, r3] - bne .L1973 + bne .L1981 sub r7, r7, #1 mov r1, sp mov r2, r8 mov r0, r7 bl log2phys ldr r3, [sp, #0] - ldr r0, [r4, #-960] - ldr r4, [r4, #-936] + ldr r0, [r4, #-956] + ldr r4, [r4, #-932] cmn r3, #1 str r3, [sp, #8] str r7, [sp, #20] str r0, [sp, #12] str r4, [sp, #16] str r8, [r4, #4] - beq .L1976 + beq .L1984 add r0, sp, #4 mov r1, #1 mov r2, r8 bl FlashReadPages - b .L1977 -.L1976: + b .L1985 +.L1984: movw r3, #3926 mov r1, #255 ldrh r2, [r5, r3] bl ftl_memset -.L1977: - ldr r3, .L1982+12 +.L1985: + ldr r3, .L1990+12 mov r6, r6, asl #2 - ldr r5, .L1982+4 - ldr sl, .L1982+8 + ldr r5, .L1990+4 + ldr sl, .L1990+8 strh r3, [r4, #0] @ movhi - ldr r8, .L1982+16 - b .L1978 -.L1981: + ldr r8, .L1990+16 + b .L1986 +.L1989: ldrh r3, [r5, sl] cmp r3, #0 - beq .L1979 + beq .L1987 ldr r3, [sp, #8] sub r6, r6, #1 str r7, [r4, #8] - ldr r0, .L1982+20 + ldr r0, .L1990+20 str r3, [r4, #12] ldrh r3, [r5, r8] strh r3, [r4, #2] @ movhi @@ -17457,23 +17480,23 @@ FtlWriteDumpData: bl FlashProgPages ldrh r0, [r5, r8] bl decrement_vpc_count -.L1978: +.L1986: cmp r6, #0 - bne .L1981 -.L1979: - ldr r3, .L1982+4 + bne .L1989 +.L1987: + ldr r3, .L1990+4 mov r2, #1 strb r2, [r3, #-1986] - b .L1973 -.L1975: + b .L1981 +.L1983: mov r3, #0 strb r3, [r2, #-1986] -.L1973: +.L1981: add sp, sp, #44 ldmfd sp!, {r4, r5, r6, r7, r8, sl, pc} -.L1983: +.L1991: .align 2 -.L1982: +.L1990: .word .LANCHOR0 .word .LANCHOR2 .word -1992 @@ -17493,31 +17516,31 @@ l2p_flush: .save {r3, r4, r5, r6, r7, lr} bl FtlWriteDumpData mov r4, #0 - ldr r7, .L1988 + ldr r7, .L1996 movw r6, #3954 - ldr r5, .L1988+4 - b .L1985 -.L1987: + ldr r5, .L1996+4 + b .L1993 +.L1995: ldr r3, [r5, #-1852] mov r2, #12 mla r3, r2, r4, r3 ldr r3, [r3, #4] cmp r3, #0 - bge .L1986 + bge .L1994 mov r0, r4 bl flush_l2p_region -.L1986: +.L1994: add r4, r4, #1 uxth r4, r4 -.L1985: +.L1993: ldrh r3, [r7, r6] cmp r3, r4 - bhi .L1987 + bhi .L1995 mov r0, #0 ldmfd sp!, {r3, r4, r5, r6, r7, pc} -.L1989: +.L1997: .align 2 -.L1988: +.L1996: .word .LANCHOR0 .word .LANCHOR2 .fnend @@ -17529,107 +17552,107 @@ allocate_new_data_superblock: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L2002 + ldr r3, .L2010 stmfd sp!, {r4, r5, r6, lr} .save {r4, r5, r6, lr} mov r4, r0 ldr r3, [r3, #4040] ldrh r5, [r0, #0] cmp r3, #0 - bne .L1991 + bne .L1999 movw r3, #65535 cmp r5, r3 - beq .L1992 - ldr r3, .L2002+4 + beq .L2000 + ldr r3, .L2010+4 mov r0, r5 ldr r2, [r3, #-2016] mov r3, r5, asl #1 ldrh r3, [r2, r3] cmp r3, #0 - beq .L1993 + beq .L2001 bl INSERT_DATA_LIST - b .L1992 -.L1993: + b .L2000 +.L2001: bl INSERT_FREE_LIST -.L1992: +.L2000: mov r3, #0 strb r3, [r4, #8] - ldr r3, .L2002+8 + ldr r3, .L2010+8 cmp r4, r3 - beq .L1994 - ldr r2, .L2002 + beq .L2002 + ldr r2, .L2010 movw r3, #3868 ldrh r3, [r2, r3] cmp r3, #1 - beq .L1994 + beq .L2002 ldrb r2, [r2, #928] @ zero_extendqisi2 cmp r2, #0 - beq .L1995 -.L1994: + beq .L2003 +.L2002: mov r3, #1 strb r3, [r4, #8] - b .L1996 -.L1995: - ldr r2, .L2002+12 + b .L2004 +.L2003: + ldr r2, .L2010+12 cmp r4, r2 - bne .L1996 + bne .L2004 cmp r3, #3 - ldr r3, .L2002+4 - beq .L1997 + ldr r3, .L2010+4 + beq .L2005 ldr r2, [r3, #-1712] cmp r2, #1 - bne .L1998 -.L1997: + bne .L2006 +.L2005: mov r2, #1 strb r2, [r3, #-1988] -.L1998: - ldr r2, .L2002 +.L2006: + ldr r2, .L2010 ldr r2, [r2, #3840] cmp r2, #0 - beq .L1996 + beq .L2004 ldr r3, [r3, #-1780] - cmp r3, #29 - ldrls r3, .L2002+4 + cmp r3, #39 + ldrls r3, .L2010+4 movls r2, #1 strlsb r2, [r3, #-1988] -.L1996: - ldr r3, .L2002+16 - ldr r6, .L2002+4 +.L2004: + ldr r3, .L2010+16 + ldr r6, .L2010+4 ldrh r0, [r6, r3] movw r3, #65535 cmp r0, r3 - beq .L1999 + beq .L2007 cmp r5, r0 - bne .L2000 + bne .L2008 ldr r2, [r6, #-2016] mov r3, r0, asl #1 ldrh r3, [r2, r3] cmp r3, #0 - beq .L2001 -.L2000: + beq .L2009 +.L2008: bl update_vpc_list -.L2001: - ldr r3, .L2002+16 +.L2009: + ldr r3, .L2010+16 mvn r2, #0 strh r2, [r6, r3] @ movhi -.L1999: +.L2007: mov r0, r4 bl allocate_data_superblock bl l2p_flush mov r0, #0 bl FtlEctTblFlush bl FtlVpcTblFlush -.L1991: +.L1999: mov r0, #0 ldmfd sp!, {r4, r5, r6, pc} -.L2003: +.L2011: .align 2 -.L2002: +.L2010: .word .LANCHOR0 .word .LANCHOR2 .word .LANCHOR2-1948 .word .LANCHOR2-1996 - .word -1020 + .word -1016 .fnend .size allocate_new_data_superblock, .-allocate_new_data_superblock .align 2 @@ -17642,94 +17665,98 @@ FtlVpcCheckAndModify: stmfd sp!, {r0, r1, r4, r5, r6, r7, r8, lr} .save {r0, r1, r4, r5, r6, r7, r8, lr} mov r4, #0 - ldr r6, .L2011 - ldr r1, .L2011+4 - ldr r0, .L2011+8 + ldr r6, .L2020 + ldr r1, .L2020+4 + ldr r0, .L2020+8 bl printk movw r3, #3858 ldrh r2, [r6, r3] mov r1, #0 - ldr r5, .L2011+12 + ldr r5, .L2020+12 mov r2, r2, asl #1 - ldr r0, [r5, #-916] + ldr r0, [r5, #-912] bl ftl_memset - b .L2005 -.L2007: + b .L2013 +.L2015: mov r0, r4 add r1, sp, #4 mov r2, #0 bl log2phys ldr r0, [sp, #4] cmn r0, #1 - beq .L2006 + beq .L2014 ubfx r0, r0, #10, #16 bl P2V_block_in_plane - ldr r3, [r5, #-916] + ldr r3, [r5, #-912] mov r0, r0, asl #1 ldrh r2, [r3, r0] add r2, r2, #1 strh r2, [r3, r0] @ movhi -.L2006: +.L2014: add r4, r4, #1 -.L2005: +.L2013: ldr r3, [r6, #3976] cmp r4, r3 - bcc .L2007 + bcc .L2015 mov r4, #0 - ldr r7, .L2011 - ldr r5, .L2011+12 + ldr r7, .L2020 + ldr r5, .L2020+12 movw r8, #65535 - b .L2008 -.L2010: + b .L2016 +.L2019: ldr r3, [r5, #-2016] mov r6, r4, asl #1 ldrh r2, [r3, r6] - ldr r3, [r5, #-916] + ldr r3, [r5, #-912] ldrh r3, [r3, r6] cmp r2, r3 - beq .L2009 + beq .L2017 cmp r2, r8 - beq .L2009 - ldr r0, .L2011+16 + beq .L2017 + ldr r0, .L2020+16 mov r1, r4 bl printk - ldr r3, .L2011+20 + ldr r3, .L2020+20 ldrh r3, [r5, r3] cmp r3, r4 - beq .L2009 - ldr r3, .L2011+24 + beq .L2017 + ldr r3, .L2020+24 ldrh r3, [r5, r3] cmp r3, r4 - beq .L2009 - ldr r3, .L2011+28 + beq .L2017 + ldr r3, .L2020+28 ldrh r3, [r5, r3] cmp r3, r4 - beq .L2009 - ldr r3, [r5, #-916] - mov r0, r4 - ldrh r2, [r3, r6] + beq .L2017 ldr r3, [r5, #-2016] + ldrh r2, [r3, r6] + cmp r2, #0 + ldr r2, [r5, #-912] + ldrh r2, [r2, r6] strh r2, [r3, r6] @ movhi + beq .L2017 +.L2018: + mov r0, r4 bl update_vpc_list - bl l2p_flush - bl FtlVpcTblFlush -.L2009: +.L2017: add r4, r4, #1 uxth r4, r4 -.L2008: +.L2016: mov r3, #3856 ldrh r3, [r7, r3] cmp r3, r4 - bhi .L2010 + bhi .L2019 + bl l2p_flush + bl FtlVpcTblFlush ldmfd sp!, {r2, r3, r4, r5, r6, r7, r8, pc} -.L2012: +.L2021: .align 2 -.L2011: +.L2020: .word .LANCHOR0 .word .LANCHOR3+48 - .word .LC101 + .word .LC102 .word .LANCHOR2 - .word .LC147 + .word .LC146 .word -1996 .word -1900 .word -1948 @@ -17742,54 +17769,54 @@ FtlGcFreeTempBlock: .fnstart @ args = 0, pretend = 0, frame = 8 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L2036 + ldr r3, .L2045 stmfd sp!, {r0, r1, r2, r4, r5, r6, r7, r8, sl, lr} .save {r0, r1, r2, r4, r5, r6, r7, r8, sl, lr} movw r2, #3916 ldrh r1, [r3, r2] ldr r2, [r3, #4040] cmp r2, #0 - bne .L2034 - ldr ip, .L2036+4 - ldr r3, .L2036+8 + bne .L2043 + ldr ip, .L2045+4 + ldr r3, .L2045+8 ldrh r4, [r3, ip] movw ip, #65535 cmp r4, ip - beq .L2015 + beq .L2024 cmp r0, #0 - beq .L2016 - ldr lr, .L2036+12 - movw r0, #3000 + beq .L2025 + ldr lr, .L2045+12 + movw r0, #3096 ldrh r5, [lr, r0] cmp r5, ip movne r1, #2 - bne .L2016 + bne .L2025 strh r2, [lr, r0] @ movhi sub r2, r2, #2000 ldrh r3, [r3, r2] cmp r3, #17 movhi r1, #2 -.L2016: - ldr r0, .L2036+16 +.L2025: + ldr r0, .L2045+16 bl FtlGcScanTempBlk cmn r0, #1 str r0, [sp, #4] - beq .L2017 - ldr r3, .L2036 + beq .L2026 + ldr r3, .L2045 mov r4, r4, asl #1 ldr r3, [r3, #4048] ldrh r2, [r3, r4] cmp r2, #4 - bls .L2018 + bls .L2027 sub r2, r2, #5 mov r0, #1 strh r2, [r3, r4] @ movhi bl FtlEctTblFlush -.L2018: - ldr r3, .L2036+8 - ldr r2, [r3, #-1012] +.L2027: + ldr r3, .L2045+8 + ldr r2, [r3, #-1008] cmp r2, #0 - bne .L2019 + bne .L2028 ldr r2, [r3, #-1612] ldr r0, [sp, #4] add r2, r2, #1 @@ -17797,36 +17824,35 @@ FtlGcFreeTempBlock: ubfx r0, r0, #10, #16 bl FtlBbmMapBadBlock bl FtlBbmTblFlush -.L2019: - ldr r3, .L2036+8 +.L2028: + ldr r3, .L2045+8 mov r2, #0 - str r2, [r3, #-1012] - b .L2032 -.L2017: - ldr r2, .L2036+12 - movw r3, #3000 + str r2, [r3, #-1008] + b .L2040 +.L2026: + ldr r2, .L2045+12 + movw r3, #3096 ldrh r2, [r2, r3] movw r3, #65535 cmp r2, r3 - bne .L2032 -.L2015: - ldr r6, .L2036+8 + bne .L2040 +.L2024: + ldr r6, .L2045+8 movw r3, #65535 - ldr r5, .L2036+4 + ldr r5, .L2045+4 mov r4, #0 - str r4, [r6, #-1012] + str r4, [r6, #-1008] ldrh r2, [r6, r5] cmp r2, r3 - moveq r0, r4 - beq .L2014 + beq .L2023 bl FtlCacheWriteBack - ldr ip, .L2036 + ldr ip, .L2045 movw r0, #3916 ldrb r1, [r6, #-1893] @ zero_extendqisi2 ldrh r3, [r6, r5] ldrh r0, [ip, r0] ldr r2, [r6, #-2016] - ldr sl, .L2036+20 + ldr sl, .L2045+20 mov r3, r3, asl #1 mul r1, r0, r1 strh r1, [r2, r3] @ movhi @@ -17834,8 +17860,8 @@ FtlGcFreeTempBlock: ldrh r2, [r6, sl] add r3, r2, r3 str r3, [r6, #-1816] - b .L2020 -.L2023: + b .L2029 +.L2032: mov r7, #12 ldr r8, [r6, #-1148] mul r7, r7, r4 @@ -17847,7 +17873,7 @@ FtlGcFreeTempBlock: ldr r0, [sp, #4] ldr r3, [r8, r7] cmp r0, r3 - bne .L2021 + bne .L2030 ubfx r0, r0, #10, #16 bl P2V_block_in_plane add r1, r5, #4 @@ -17856,147 +17882,143 @@ FtlGcFreeTempBlock: ldr r0, [r5, #8] bl log2phys mov r0, r7 - b .L2035 -.L2021: + b .L2044 +.L2030: ldr r3, [r5, #4] cmp r0, r3 - beq .L2022 - ldr r3, .L2036+4 + beq .L2031 + ldr r3, .L2045+4 ldrh r0, [r6, r3] -.L2035: +.L2044: bl decrement_vpc_count -.L2022: +.L2031: add r4, r4, #1 uxth r4, r4 -.L2020: +.L2029: ldrh r3, [r6, sl] - ldr r5, .L2036+8 + ldr r5, .L2045+8 cmp r3, r4 - bhi .L2023 + bhi .L2032 movw r0, #65535 - ldr r4, .L2036+4 + ldr r4, .L2045+4 bl decrement_vpc_count - ldr r3, .L2036 + ldr r3, .L2045 ldrb r3, [r3, #928] @ zero_extendqisi2 cmp r3, #0 - beq .L2024 - ldr r0, .L2036+24 + beq .L2033 + ldr r0, .L2045+24 ldrh r1, [r5, r4] bl printk -.L2024: +.L2033: ldrh r0, [r5, r4] ldr r2, [r5, #-2016] mov r3, r0, asl #1 ldrh r3, [r2, r3] cmp r3, #0 - beq .L2025 + beq .L2034 bl INSERT_DATA_LIST - b .L2026 -.L2025: + b .L2035 +.L2034: bl INSERT_FREE_LIST -.L2026: - ldr r4, .L2036+8 - mvn r2, #0 - ldr r3, .L2036+4 - strh r2, [r4, r3] @ movhi - mov r3, #0 - ldr r2, .L2036+20 - strh r3, [r4, r2] @ movhi - sub r2, r2, #12 - strh r3, [r4, r2] @ movhi +.L2035: + ldr r5, .L2045+8 + mvn r6, #0 + ldr r3, .L2045+4 + mov r4, #0 + strh r6, [r5, r3] @ movhi + add r3, r3, #756 + strh r4, [r5, r3] @ movhi + sub r3, r3, #12 + strh r4, [r5, r3] @ movhi bl l2p_flush bl FtlVpcTblFlush - ldr r3, .L2036 - mov r1, r4 + ldr r3, .L2045+28 + mov r2, r5 + strh r6, [r5, r3] @ movhi + ldr r3, .L2045 ldr r3, [r3, #3840] - cmp r3, #0 - beq .L2027 - ldr r3, [r4, #-1780] - cmp r3, #29 - bhi .L2027 - ldr r3, .L2036+28 - mvn r1, #0 - ldr r2, .L2036+32 - ldrh r3, [r4, r3] - ldrh r2, [r4, r2] + cmp r3, r4 + beq .L2036 + ldr r3, [r5, #-1780] + cmp r3, #39 + bhi .L2036 + ldr r3, .L2045+32 + ldr r2, .L2045+36 + ldrh r3, [r5, r3] + ldrh r2, [r5, r2] cmp r2, r3 + ldrcc r2, .L2045+40 movcc r3, r3, asl #1 - ldrcc r2, .L2036+36 - strcch r3, [r4, r2] @ movhi - ldr r3, .L2036+40 - ldr r2, .L2036+8 - strh r1, [r2, r3] @ movhi - b .L2034 -.L2027: - ldr r2, .L2036+28 - ldr r0, .L2036+32 - ldr r3, .L2036+8 - ldrh r2, [r1, r2] - ldrh r1, [r1, r0] - add r0, r2, r2, asl #1 - cmp r1, r0, lsr #2 - ble .L2034 - ldr r1, .L2036+40 - mvn r0, #0 - strh r0, [r3, r1] @ movhi - ldr r1, .L2036 - ldrb r0, [r1, #928] @ zero_extendqisi2 - ldr r1, .L2036+36 - cmp r0, #0 - subne r2, r2, #2 - moveq r2, #20 - strneh r2, [r3, r1] @ movhi - streqh r2, [r3, r1] @ movhi - beq .L2014 - b .L2034 -.L2032: - mov r0, #1 - b .L2014 -.L2034: - mov r0, #0 -.L2014: - ldmfd sp!, {r1, r2, r3, r4, r5, r6, r7, r8, sl, pc} -.L2037: - .align 2 + strcch r3, [r5, r2] @ movhi + b .L2023 .L2036: + ldr r3, .L2045+32 + ldr r0, .L2045+36 + ldr r1, .L2045+8 + ldrh r3, [r2, r3] + ldrh r2, [r2, r0] + add r0, r3, r3, asl #1 + cmp r2, r0, lsr #2 + ble .L2043 + ldr r2, .L2045 + ldrb r4, [r2, #928] @ zero_extendqisi2 + ldr r2, .L2045+40 + cmp r4, #0 + subne r3, r3, #2 + moveq r3, #20 + strneh r3, [r1, r2] @ movhi + streqh r3, [r1, r2] @ movhi + beq .L2023 + b .L2043 +.L2040: + mov r4, #1 + b .L2023 +.L2043: + mov r4, #0 +.L2023: + mov r0, r4 + ldmfd sp!, {r1, r2, r3, r4, r5, r6, r7, r8, sl, pc} +.L2046: + .align 2 +.L2045: .word .LANCHOR0 .word -1900 .word .LANCHOR2 .word .LANCHOR1 .word .LANCHOR2-1900 .word -1144 - .word .LC148 + .word .LC147 + .word -1760 .word -1776 .word -2000 .word -1196 - .word -1760 .fnend .size FtlGcFreeTempBlock, .-FtlGcFreeTempBlock .align 2 - .type Ftl_gc_temp_data_write_back.part.22, %function -Ftl_gc_temp_data_write_back.part.22: + .type Ftl_gc_temp_data_write_back.part.21, %function +Ftl_gc_temp_data_write_back.part.21: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 stmfd sp!, {r3, r4, r5, r6, r7, lr} .save {r3, r4, r5, r6, r7, lr} mov r2, #0 - ldr r4, .L2044 + ldr r4, .L2053 mov r3, r2 mov r5, #0 mov r6, #36 - ldr r0, [r4, #-968] + ldr r0, [r4, #-964] ldr r1, [r4, #-1180] bl FlashProgPages - b .L2039 -.L2042: + b .L2048 +.L2051: mul r3, r6, r5 - ldr r1, [r4, #-968] + ldr r1, [r4, #-964] add r2, r1, r3 ldr r1, [r1, r3] cmn r1, #1 - bne .L2040 - ldr r2, .L2044+4 + bne .L2049 + ldr r2, .L2053+4 mov lr, #0 ldr ip, [r7, #-2016] ldrh r0, [r7, r2] @@ -18006,7 +18028,7 @@ Ftl_gc_temp_data_write_back.part.22: ldr r2, [r7, #-1612] add r2, r2, #1 str r2, [r7, #-1612] - ldr r2, [r7, #-968] + ldr r2, [r7, #-964] add r3, r2, r3 ldr r0, [r3, #4] ubfx r0, r0, #10, #16 @@ -18015,7 +18037,7 @@ Ftl_gc_temp_data_write_back.part.22: bl FtlGcPageVarInit mov r0, #1 ldmfd sp!, {r3, r4, r5, r6, r7, pc} -.L2040: +.L2049: ldr r3, [r2, #12] add r5, r5, #1 ldr r1, [r2, #4] @@ -18023,14 +18045,14 @@ Ftl_gc_temp_data_write_back.part.22: ldr r0, [r3, #12] ldr r2, [r3, #8] bl FtlGcUpdatePage -.L2039: +.L2048: ldr r1, [r4, #-1180] - ldr r7, .L2044 + ldr r7, .L2053 cmp r5, r1 - bcc .L2042 - ldr r0, [r7, #-968] + bcc .L2051 + ldr r0, [r7, #-964] bl FtlGcBufFree - ldr r3, .L2044+8 + ldr r3, .L2053+8 mov r0, #0 str r0, [r7, #-1180] ldrh r3, [r7, r3] @@ -18040,14 +18062,14 @@ Ftl_gc_temp_data_write_back.part.22: bl FtlGcFreeTempBlock mov r0, #1 ldmfd sp!, {r3, r4, r5, r6, r7, pc} -.L2045: +.L2054: .align 2 -.L2044: +.L2053: .word .LANCHOR2 .word -1900 .word -1896 .fnend - .size Ftl_gc_temp_data_write_back.part.22, .-Ftl_gc_temp_data_write_back.part.22 + .size Ftl_gc_temp_data_write_back.part.21, .-Ftl_gc_temp_data_write_back.part.21 .align 2 .global Ftl_gc_temp_data_write_back .type Ftl_gc_temp_data_write_back, %function @@ -18056,29 +18078,29 @@ Ftl_gc_temp_data_write_back: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L2051 + ldr r3, .L2060 ldr r2, [r3, #4040] cmp r2, #0 - bne .L2047 + bne .L2056 ldrb r3, [r3, #928] @ zero_extendqisi2 cmp r3, #0 - beq .L2048 - ldr r3, .L2051+4 + beq .L2057 + ldr r3, .L2060+4 ldr r2, [r3, #-1180] tst r2, #1 - beq .L2048 - ldr r2, .L2051+8 + beq .L2057 + ldr r2, .L2060+8 ldrh r3, [r3, r2] cmp r3, #0 - bne .L2047 -.L2048: - b Ftl_gc_temp_data_write_back.part.22 -.L2047: + bne .L2056 +.L2057: + b Ftl_gc_temp_data_write_back.part.21 +.L2056: mov r0, #0 bx lr -.L2052: +.L2061: .align 2 -.L2051: +.L2060: .word .LANCHOR0 .word .LANCHOR2 .word -1896 @@ -18094,30 +18116,31 @@ FtlGcPageRecovery: stmfd sp!, {r4, r5, r6, lr} .save {r4, r5, r6, lr} movw r5, #3916 - ldr r6, .L2055 - ldr r0, .L2055+4 - ldr r4, .L2055+8 + ldr r6, .L2064 + ldr r0, .L2064+4 + ldr r4, .L2064+8 ldrh r1, [r6, r5] bl FtlGcScanTempBlk - ldr r3, .L2055+12 + ldr r3, .L2064+12 ldrh r2, [r4, r3] ldrh r3, [r6, r5] cmp r2, r3 ldmccfd sp!, {r4, r5, r6, pc} - sub r0, r4, #1088 + ldr r0, .L2064+16 bl FtlMapBlkWriteDumpData mov r0, #0 bl FtlGcFreeTempBlock mov r3, #0 - str r3, [r4, #-1012] + str r3, [r4, #-1008] ldmfd sp!, {r4, r5, r6, pc} -.L2056: +.L2065: .align 2 -.L2055: +.L2064: .word .LANCHOR0 .word .LANCHOR2-1900 .word .LANCHOR2 .word -1898 + .word .LANCHOR2-1084 .fnend .size FtlGcPageRecovery, .-FtlGcPageRecovery .align 2 @@ -18130,9 +18153,9 @@ FtlPowerLostRecovery: stmfd sp!, {r3, r4, r5, lr} .save {r3, r4, r5, lr} mov r4, #0 - ldr r3, .L2058 - ldr r5, .L2058+4 - str r4, [r3, #300] + ldr r3, .L2067 + ldr r5, .L2067+4 + str r4, [r3, #304] mov r0, r5 bl FtlRecoverySuperblock mov r0, r5 @@ -18147,9 +18170,9 @@ FtlPowerLostRecovery: bl decrement_vpc_count mov r0, r4 ldmfd sp!, {r3, r4, r5, pc} -.L2059: +.L2068: .align 2 -.L2058: +.L2067: .word .LANCHOR2 .word .LANCHOR2-1996 .fnend @@ -18163,26 +18186,26 @@ FtlSysBlkInit: @ frame_needed = 0, uses_anonymous_args = 0 stmfd sp!, {r3, r4, r5, r6, r7, lr} .save {r3, r4, r5, r6, r7, lr} - mov r3, #296 - ldr r6, .L2071 + mov r3, #300 + ldr r6, .L2082 mov r2, #0 - ldr r4, .L2071+4 + ldr r4, .L2082+4 mvn r5, #0 ldr r0, [r6, #3852] strh r2, [r4, r3] @ movhi - movw r3, #294 + movw r3, #298 strh r5, [r4, r3] @ movhi uxth r0, r0 bl FtlFreeSysBlkQueueInit bl FtlScanSysBlk - ldr r3, .L2071+8 + ldr r3, .L2082+8 ldrh r2, [r4, r3] movw r3, #65535 cmp r2, r3 - beq .L2061 + beq .L2070 bl FtlLoadSysInfo subs r7, r0, #0 - bne .L2061 + bne .L2070 bl FtlLoadMapInfo bl FtlLoadVonderInfo bl Ftl_load_ext_data @@ -18193,156 +18216,146 @@ FtlSysBlkInit: mov r0, #1 bl FtlUpdateVaildLpn movw r3, #3954 - ldrh r2, [r6, r3] - mov r3, r7 - ldr r1, [r4, #-1852] - b .L2062 -.L2064: - add r0, r1, r7 + ldrh r1, [r6, r3] + mov r2, r7 + ldr r3, [r4, #-1852] + b .L2071 +.L2073: + add r0, r3, r7 add r7, r7, #12 ldr r0, [r0, #4] cmp r0, #0 - blt .L2063 - add r3, r3, #1 -.L2062: - cmp r3, r2 - blt .L2064 -.L2063: - ldr r4, .L2071+4 - cmp r3, r2 - ldr r1, .L2071+12 - ldrh r0, [r4, r1] - add r0, r0, #1 - strh r0, [r4, r1] @ movhi - blt .L2065 - mov r3, #296 - ldrh r3, [r4, r3] - cmp r3, #0 - beq .L2066 -.L2065: - ldr r0, .L2071+16 - bl FtlSuperblockPowerLostFix - ldr r0, .L2071+20 - bl FtlSuperblockPowerLostFix - ldr r3, .L2071+24 - ldr r1, [r4, #-2016] - ldr r2, .L2071+28 - ldrh r3, [r4, r3] - ldrh r0, [r4, r2] - mov r3, r3, asl #1 - ldrh ip, [r1, r3] - rsb r0, r0, ip - strh r0, [r1, r3] @ movhi - ldr r0, .L2071 - movw r1, #3916 - ldr r3, .L2071+32 - ldr lr, [r4, #-2016] - ldrh ip, [r0, r1] - strh ip, [r4, r3] @ movhi - mov r3, #0 - strh r3, [r4, r2] @ movhi - add r2, r2, #44 - strb r3, [r4, #-1990] - ldrh ip, [r4, r2] - add r2, r2, #4 - ldrh r5, [r4, r2] - mov ip, ip, asl #1 - ldrh r6, [lr, ip] - rsb r5, r5, r6 - strh r5, [lr, ip] @ movhi - ldrh r0, [r0, r1] - ldr r1, .L2071+36 - strh r3, [r4, r2] @ movhi - strb r3, [r4, #-1942] - strh r0, [r4, r1] @ movhi - ldr r0, .L2071+40 - bl FtlMapBlkWriteDumpData - ldr r0, .L2071+44 - bl FtlMapBlkWriteDumpData - ldr r3, .L2071+48 - ldrh r2, [r4, r3] + blt .L2072 add r2, r2, #1 - strh r2, [r4, r3] @ movhi +.L2071: + cmp r2, r1 + blt .L2073 +.L2072: + ldr r3, .L2082+4 + cmp r2, r1 + ldr r0, .L2082+12 + ldrh ip, [r3, r0] + add ip, ip, #1 + strh ip, [r3, r0] @ movhi + blt .L2074 + mov r2, #300 + ldrh r2, [r3, r2] + cmp r2, #0 + beq .L2075 +.L2074: + ldr r2, .L2082+16 + ldr r0, [r3, #-2016] + ldr r1, .L2082+20 + ldrh r2, [r3, r2] + ldrh ip, [r3, r1] + mov r2, r2, asl #1 + ldrh lr, [r0, r2] + rsb ip, ip, lr + strh ip, [r0, r2] @ movhi + ldr ip, .L2082 + movw r0, #3916 + ldr r2, .L2082+24 + ldr r4, [r3, #-2016] + ldrh lr, [ip, r0] + strh lr, [r3, r2] @ movhi + mov r2, #0 + strh r2, [r3, r1] @ movhi + add r1, r1, #44 + strb r2, [r3, #-1990] + ldrh lr, [r3, r1] + add r1, r1, #4 + ldrh r5, [r3, r1] + mov lr, lr, asl #1 + ldrh r6, [r4, lr] + rsb r5, r5, r6 + strh r5, [r4, lr] @ movhi + strh r2, [r3, r1] @ movhi + strb r2, [r3, #-1942] + ldr r2, .L2082+28 + ldrh ip, [ip, r0] + ldr r0, .L2082+32 + ldrh r1, [r3, r2] + strh ip, [r3, r0] @ movhi + add r1, r1, #1 + strh r1, [r3, r2] @ movhi bl l2p_flush bl FtlVpcTblFlush bl FtlVpcTblFlush -.L2066: - ldr r4, .L2071+4 +.L2075: + ldr r3, .L2082+4 + ldr r2, .L2082+12 + mov r5, r3 + ldrh r2, [r3, r2] + tst r2, #31 + bne .L2076 + bl FtlVpcCheckAndModify +.L2076: + ldr r2, .L2082+16 movw r3, #65535 - ldr r5, .L2071+24 - ldrh r2, [r4, r5] - cmp r2, r3 - beq .L2067 - ldr r3, .L2071+28 + ldr r4, .L2082+4 + ldrh r0, [r5, r2] + cmp r0, r3 + beq .L2080 + ldr r3, .L2082+20 ldrh r3, [r4, r3] cmp r3, #0 - bne .L2067 - ldr r3, .L2071+52 - ldrh r3, [r4, r3] - cmp r3, #0 - bne .L2067 - bl FtlVpcTblFlush - ldrh r0, [r4, r5] + bne .L2080 + add r2, r2, #52 + ldrh r5, [r4, r2] + cmp r5, #0 + movne r5, r3 + bne .L2070 bl FtlGcRefreshOpenBlock - ldr r3, .L2071+56 + ldr r3, .L2082+36 ldrh r0, [r4, r3] bl FtlGcRefreshOpenBlock - ldr r0, .L2071+16 + bl FtlVpcTblFlush + ldr r0, .L2082+40 bl allocate_new_data_superblock - ldr r0, .L2071+20 + ldr r0, .L2082+44 bl allocate_new_data_superblock - add r0, r4, #248 - bl FtlMapBlkWriteDumpData -.L2067: - ldr r3, .L2071+12 - ldr r2, .L2071+4 - ldrh r5, [r2, r3] - ands r5, r5, #31 - movne r5, #0 - bne .L2061 - bl FtlVpcCheckAndModify -.L2061: + b .L2070 +.L2080: + mov r5, #0 +.L2070: mov r0, r5 ldmfd sp!, {r3, r4, r5, r6, r7, pc} -.L2072: +.L2083: .align 2 -.L2071: +.L2082: .word .LANCHOR0 .word .LANCHOR2 .word -1772 .word -2044 - .word .LANCHOR2-1996 - .word .LANCHOR2-1948 .word -1996 .word -1992 .word -1994 - .word -1946 - .word .LANCHOR2-1088 - .word .LANCHOR2+248 .word -2042 - .word -1944 + .word -1946 .word -1948 + .word .LANCHOR2-1996 + .word .LANCHOR2-1948 .fnend .size FtlSysBlkInit, .-FtlSysBlkInit .align 2 - .type FtlLowFormat.part.26, %function -FtlLowFormat.part.26: + .type FtlLowFormat.part.25, %function +FtlLowFormat.part.25: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 stmfd sp!, {r3, r4, r5, r6, r7, r8, r9, sl, fp, lr} .save {r3, r4, r5, r6, r7, r8, r9, sl, fp, lr} mov r6, #3952 - ldr r5, .L2094 + ldr r5, .L2105 mov r1, #0 - ldr r4, .L2094+4 + ldr r4, .L2105+4 ldrh r2, [r5, r6] - ldr r0, [r4, #-900] + ldr r0, [r4, #-896] mov r2, r2, asl #2 bl ftl_memset ldrh r2, [r5, r6] mov r1, #0 - ldr r0, [r4, #-1032] + ldr r0, [r4, #-1028] mov r2, r2, asl #2 bl ftl_memset ldr r0, [r5, #3852] @@ -18353,35 +18366,35 @@ FtlLowFormat.part.26: bl FtlFreeSysBlkQueueInit bl FtlLoadBbt cmp r0, #0 - beq .L2074 + beq .L2085 bl FtlMakeBbt -.L2074: +.L2085: mov r3, #0 - ldr ip, .L2094 + ldr ip, .L2105 movw r0, #3922 - ldr r2, .L2094+4 - ldr r1, .L2094+8 - b .L2075 -.L2076: - ldr lr, [r2, #-944] + ldr r2, .L2105+4 + ldr r1, .L2105+8 + b .L2086 +.L2087: + ldr lr, [r2, #-940] mvn r4, r3 orr r4, r3, r4, asl #16 str r4, [lr, r3, asl #2] - ldr lr, [r2, #-940] + ldr lr, [r2, #-936] str r1, [lr, r3, asl #2] add r3, r3, #1 uxth r3, r3 -.L2075: +.L2086: ldrh lr, [ip, r0] - ldr r8, .L2094 + ldr r8, .L2105 cmp r3, lr, asl #7 - blt .L2076 + blt .L2087 mov r3, #3856 mov r5, #0 ldrh r6, [r8, r3] movw r7, #3858 - b .L2077 -.L2078: + b .L2088 +.L2089: mov r0, r6 mov r1, #1 bl FtlLowFormatEraseBlock @@ -18389,16 +18402,16 @@ FtlLowFormat.part.26: uxth r6, r6 add r5, r5, r0 uxth r5, r5 -.L2077: +.L2088: ldrh r3, [r8, r7] - ldr r4, .L2094 + ldr r4, .L2105 cmp r3, r6 - bhi .L2078 + bhi .L2089 movw r3, #3848 ldrh r1, [r4, r3] sub r3, r5, #3 cmp r3, r1, asl #1 - blt .L2079 + blt .L2090 mov r0, r5 movw r6, #3858 bl __aeabi_uidiv @@ -18411,24 +18424,24 @@ FtlLowFormat.part.26: bl FtlFreeSysBlkQueueInit mov r3, #3856 ldrh r5, [r4, r3] - b .L2080 -.L2081: + b .L2091 +.L2092: mov r0, r5 mov r1, #1 bl FtlLowFormatEraseBlock add r5, r5, #1 uxth r5, r5 -.L2080: +.L2091: ldrh r3, [r4, r6] cmp r3, r5 - bhi .L2081 -.L2079: + bhi .L2092 +.L2090: mov r4, #0 - ldr r8, .L2094 + ldr r8, .L2105 mov r6, r4 mov r7, #3856 - b .L2082 -.L2083: + b .L2093 +.L2094: mov r0, r6 mov r1, #0 bl FtlLowFormatEraseBlock @@ -18436,17 +18449,17 @@ FtlLowFormat.part.26: uxth r6, r6 add r4, r4, r0 uxth r4, r4 -.L2082: +.L2093: ldrh r3, [r8, r7] - ldr r5, .L2094 + ldr r5, .L2105 cmp r3, r6 - bhi .L2083 + bhi .L2094 movw r3, #3858 - ldr r8, .L2094+4 + ldr r8, .L2105+4 ldrh r3, [r5, r3] ldr fp, [r5, #3860] - ldr r9, .L2094+12 - str r3, [r8, #-984] + ldr r9, .L2105+12 + str r3, [r8, #-980] movw r3, #3848 ldrh r6, [r5, r3] mov r0, fp @@ -18460,7 +18473,7 @@ FtlLowFormat.part.26: str r0, [r5, #3976] mul r3, r3, r6 cmp r4, r3 - ble .L2084 + ble .L2095 rsb r0, r4, fp mov r1, r6 bl __aeabi_uidiv @@ -18468,42 +18481,42 @@ FtlLowFormat.part.26: mov r0, r0, lsr #5 add r0, r0, #24 strh r0, [r8, r9] @ movhi -.L2084: - ldr r3, .L2094 +.L2095: + ldr r3, .L2105 ldr r3, [r3, #3840] cmp r3, #1 - bne .L2085 + bne .L2096 mov r0, r4 mov r1, r6 bl __aeabi_uidiv - ldr r8, .L2094+4 - ldr r5, .L2094+12 + ldr r8, .L2105+4 + ldr r5, .L2105+12 ldrh r9, [r8, r5] uxtah r0, r9, r0 add r9, r9, r0, lsr #2 strh r9, [r8, r5] @ movhi -.L2085: - ldr r3, .L2094 +.L2096: + ldr r3, .L2105 ldrb r3, [r3, #928] @ zero_extendqisi2 cmp r3, #0 - beq .L2086 + beq .L2097 mov r0, r4 mov r1, r6 bl __aeabi_uidiv - ldr r8, .L2094+4 - ldr r5, .L2094+12 + ldr r8, .L2105+4 + ldr r5, .L2105+12 ldrh r9, [r8, r5] uxtah r0, r9, r0 add r9, r9, r0, lsr #2 strh r9, [r8, r5] @ movhi -.L2086: - ldr r0, .L2094 +.L2097: + ldr r0, .L2105 movw r3, #3908 ldrh r3, [r0, r3] cmp r3, #0 - beq .L2087 - ldr r1, .L2094+4 - ldr r2, .L2094+12 + beq .L2098 + ldr r1, .L2105+4 + ldr r2, .L2105+12 ldrh ip, [r1, r2] add ip, ip, r3, lsr #1 strh ip, [r1, r2] @ movhi @@ -18513,18 +18526,18 @@ FtlLowFormat.part.26: addgt r3, r3, #32 addgt sl, sl, r3 strgth sl, [r1, r2] @ movhi -.L2087: - ldr r4, .L2094+4 - ldr r5, .L2094 - ldr r3, .L2094+12 - ldr r7, .L2094+16 +.L2098: + ldr r4, .L2105+4 + ldr r5, .L2105 + ldr r3, .L2105+12 + ldr r7, .L2105+16 ldr r2, [r5, #3976] ldrh r3, [r4, r3] rsb r3, r3, r2 mul r6, r6, r3 movw r3, #3916 ldrh r3, [r5, r3] - str r6, [r4, #216] + str r6, [r4, #220] mul r6, r3, r6 movw r3, #3922 ldrh r3, [r5, r3] @@ -18539,9 +18552,9 @@ FtlLowFormat.part.26: ldr r0, [r4, #-2016] mov r2, r2, asl #1 bl ftl_memset - ldr r1, .L2094+20 + ldr r1, .L2105+20 mov r3, #0 - ldr r2, .L2094+24 + ldr r2, .L2105+24 str r3, [r4, #-1844] strh r3, [r4, r1] @ movhi sub r1, r1, #236 @@ -18559,14 +18572,14 @@ FtlLowFormat.part.26: ldr r0, [r4, #-1840] mov r2, r2, lsr #3 bl ftl_memset -.L2088: - ldr r0, .L2094+28 +.L2099: + ldr r0, .L2105+28 bl make_superblock ldrb r3, [r4, #-1989] @ zero_extendqisi2 - ldr r5, .L2094+4 + ldr r5, .L2105+4 cmp r3, #0 - ldr r3, .L2094+16 - bne .L2089 + ldr r3, .L2105+16 + bne .L2100 ldrh r3, [r4, r7] ldr r2, [r4, #-2016] mov r3, r3, asl #1 @@ -18574,22 +18587,22 @@ FtlLowFormat.part.26: ldrh r3, [r4, r7] add r3, r3, #1 strh r3, [r4, r7] @ movhi - b .L2088 -.L2089: + b .L2099 +.L2100: ldr r2, [r5, #-1804] mvn r7, #0 ldr r1, [r5, #-2016] - ldr r6, .L2094+32 + ldr r6, .L2105+32 str r2, [r5, #-1984] add r2, r2, #1 str r2, [r5, #-1804] - ldr r2, .L2094+36 + ldr r2, .L2105+36 ldrh r0, [r5, r2] ldrh r2, [r5, r3] mov r2, r2, asl #1 strh r0, [r1, r2] @ movhi mov r2, #0 - ldr r0, .L2094+40 + ldr r0, .L2105+40 ldrh r3, [r5, r3] strb r2, [r5, #-1942] add r3, r3, #1 @@ -18597,13 +18610,13 @@ FtlLowFormat.part.26: strh r3, [r5, r6] @ movhi mov r3, #1 strb r3, [r5, #-1940] -.L2090: - ldr r0, .L2094+44 +.L2101: + ldr r0, .L2105+44 bl make_superblock ldrb r3, [r5, #-1941] @ zero_extendqisi2 - ldr r4, .L2094+4 + ldr r4, .L2105+4 cmp r3, #0 - bne .L2091 + bne .L2102 ldrh r3, [r5, r6] ldr r2, [r5, #-2016] mov r3, r3, asl #1 @@ -18611,30 +18624,30 @@ FtlLowFormat.part.26: ldrh r3, [r5, r6] add r3, r3, #1 strh r3, [r5, r6] @ movhi - b .L2090 -.L2091: + b .L2101 +.L2102: ldr r3, [r4, #-1804] mvn r5, #0 ldr r2, [r4, #-2016] str r3, [r4, #-1936] add r3, r3, #1 str r3, [r4, #-1804] - ldr r3, .L2094+48 + ldr r3, .L2105+48 ldrh r1, [r4, r3] sub r3, r3, #4 ldrh r3, [r4, r3] mov r3, r3, asl #1 strh r1, [r2, r3] @ movhi - ldr r3, .L2094+52 + ldr r3, .L2105+52 strh r5, [r4, r3] @ movhi bl FtlFreeSysBlkQueueOut - ldr r3, .L2094+56 + ldr r3, .L2105+56 mov r2, #0 strh r0, [r4, r3] @ movhi add r3, r3, #2 strh r2, [r4, r3] @ movhi add r3, r3, #2 - ldr r2, [r4, #216] + ldr r2, [r4, #220] strh r5, [r4, r3] @ movhi add r3, r3, #2 strh r2, [r4, r3] @ movhi @@ -18646,13 +18659,13 @@ FtlLowFormat.part.26: bl FtlSysBlkInit cmp r0, #0 ldmnefd sp!, {r3, r4, r5, r6, r7, r8, r9, sl, fp, pc} - ldr r3, .L2094+60 + ldr r3, .L2105+60 mov r2, #1 - str r2, [r3, #2996] + str r2, [r3, #3092] ldmfd sp!, {r3, r4, r5, r6, r7, r8, r9, sl, fp, pc} -.L2095: +.L2106: .align 2 -.L2094: +.L2105: .word .LANCHOR0 .word .LANCHOR2 .word 168778952 @@ -18670,7 +18683,7 @@ FtlLowFormat.part.26: .word -1772 .word .LANCHOR1 .fnend - .size FtlLowFormat.part.26, .-FtlLowFormat.part.26 + .size FtlLowFormat.part.25, .-FtlLowFormat.part.25 .align 2 .global FtlLowFormat .type FtlLowFormat, %function @@ -18680,17 +18693,17 @@ FtlLowFormat: @ frame_needed = 0, uses_anonymous_args = 0 stmfd sp!, {r3, lr} .save {r3, lr} - ldr r3, .L2098 + ldr r3, .L2109 ldr r3, [r3, #4040] cmp r3, #0 - bne .L2097 - bl FtlLowFormat.part.26 -.L2097: + bne .L2108 + bl FtlLowFormat.part.25 +.L2108: mov r0, #0 ldmfd sp!, {r3, pc} -.L2099: +.L2110: .align 2 -.L2098: +.L2109: .word .LANCHOR0 .fnend .size FtlLowFormat, .-FtlLowFormat @@ -18703,25 +18716,25 @@ Ftl_get_new_temp_ppa: @ frame_needed = 0, uses_anonymous_args = 0 stmfd sp!, {r3, r4, r5, lr} .save {r3, r4, r5, lr} - ldr r3, .L2103 - ldr r5, .L2103+4 + ldr r3, .L2114 + ldr r5, .L2114+4 ldrh r2, [r5, r3] movw r3, #65535 cmp r2, r3 - beq .L2101 - ldr r3, .L2103+8 + beq .L2112 + ldr r3, .L2114+8 ldrh r3, [r5, r3] cmp r3, #0 - bne .L2102 -.L2101: + bne .L2113 +.L2112: bl FtlCacheWriteBack mov r0, #0 bl FtlGcFreeTempBlock - ldr r0, .L2103+12 + ldr r0, .L2114+12 mov r4, #0 strb r4, [r5, #-1892] bl allocate_data_superblock - ldr r3, .L2103+16 + ldr r3, .L2114+16 strh r4, [r5, r3] @ movhi add r3, r3, #12 strh r4, [r5, r3] @ movhi @@ -18729,13 +18742,13 @@ Ftl_get_new_temp_ppa: mov r0, r4 bl FtlEctTblFlush bl FtlVpcTblFlush -.L2102: - ldr r0, .L2103+12 +.L2113: + ldr r0, .L2114+12 ldmfd sp!, {r3, r4, r5, lr} b get_new_active_ppa -.L2104: +.L2115: .align 2 -.L2103: +.L2114: .word -1900 .word .LANCHOR2 .word -1896 @@ -18744,107 +18757,117 @@ Ftl_get_new_temp_ppa: .fnend .size Ftl_get_new_temp_ppa, .-Ftl_get_new_temp_ppa .align 2 - .type ftl_do_gc.part.23, %function -ftl_do_gc.part.23: + .type ftl_do_gc.part.22, %function +ftl_do_gc.part.22: .fnstart @ args = 0, pretend = 0, frame = 24 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L2202 - movw ip, #65535 - ldr r2, .L2202+4 stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} .save {r4, r5, r6, r7, r8, r9, sl, fp, lr} + mov sl, r1 + ldr r3, .L2213 .pad #36 sub sp, sp, #36 - mov sl, r1 + ldr r4, .L2213+4 + movw r1, #65535 str r0, [sp, #16] - ldrh r0, [r3, r2] - cmp r0, ip - beq .L2106 - ldr r1, .L2202+8 - ldrh r4, [r3, r1] - cmp r4, ip - streqh r0, [r3, r1] @ movhi - mvneq r1, #0 - streqh r1, [r3, r2] @ movhi -.L2106: + ldrh r7, [r3, r4] + cmp r7, r1 + beq .L2117 + ldr r6, .L2213+8 + ldrh r2, [r3, r6] + cmp r2, r1 + bne .L2117 + ldr r0, .L2213+12 + ldrh r5, [r3, r0] + cmp r5, r2 + beq .L2117 + ldr r1, .L2213+16 + ldrh ip, [r3, r1] + cmp ip, r2 + strneh r7, [r3, r6] @ movhi + strneh r5, [r3, r4] @ movhi + mvnne r2, #0 + strneh ip, [r3, r0] @ movhi + strneh r2, [r3, r1] @ movhi +.L2117: ldr r1, [sp, #16] ldr r2, [r3, #-1192] cmp r1, #1 add r2, r2, #1 add r2, r2, r1, asl #7 str r2, [r3, #-1192] - bne .L2107 - ldr r3, .L2202+12 + bne .L2118 + ldr r3, .L2213+20 ldr r1, [r3, #3840] cmp r1, #0 - bne .L2108 + bne .L2119 ldrb r3, [r3, #928] @ zero_extendqisi2 cmp r3, #0 - beq .L2107 -.L2108: - ldr r4, .L2202 + beq .L2118 +.L2119: + ldr r4, .L2213 ldr r3, [r4, #-1780] - cmp r3, #29 - bhi .L2107 - mov r3, #432 + cmp r3, #39 + bhi .L2118 + mov r3, #436 ldrh r3, [r4, r3] add r2, r2, r3 str r2, [r4, #-1192] bl FtlGcReFreshBadBlk - ldr r3, .L2202+16 + ldr r3, .L2213+24 movw r2, #65535 ldrh r3, [r4, r3] cmp r3, r2 - bne .L2107 - ldr r2, .L2202+8 + bne .L2118 + ldr r2, .L2213+8 ldrh r2, [r4, r2] cmp r2, r3 - bne .L2107 + bne .L2118 ldr r3, [r4, #-1192] cmp r3, #1024 - bhi .L2109 - ldr r3, .L2202+20 + bhi .L2120 + ldr r3, .L2213+28 ldrh r3, [r4, r3] cmp r3, #63 - bhi .L2107 -.L2109: - ldr r3, .L2202 - mov r2, #432 - ldr r0, .L2202+20 + bhi .L2118 +.L2120: + ldr r3, .L2213 + mov r2, #436 + ldr r0, .L2213+28 mov r1, #0 strh r1, [r3, r2] @ movhi ldrh ip, [r3, r0] - ldr r0, .L2202+24 + ldr r0, .L2213+32 ldrh r0, [r3, r0] add r0, r0, #64 cmp ip, r0 - bgt .L2107 + bgt .L2118 str r1, [r3, #-1192] ldr r1, [r3, #-1780] cmp r1, #0 moveq r1, #6 - beq .L2198 + beq .L2209 cmp r1, #5 - bhi .L2111 + bhi .L2122 mov r1, #18 -.L2198: +.L2209: strh r1, [r3, r2] @ movhi -.L2111: +.L2122: mov r0, #32 movw r7, #65535 bl List_get_gc_head_node uxth r2, r0 cmp r2, r7 - beq .L2112 - ldr r5, .L2202 - ldr r6, .L2202+28 + beq .L2123 + ldr r5, .L2213 + ldr r6, .L2213+36 ldrh r0, [r5, r6] cmp r0, #0 moveq r3, #1 streqh r3, [r5, r6] @ movhi - beq .L2112 - ldr r3, .L2202+12 + beq .L2123 + ldr r3, .L2213+20 movw ip, #3918 movw lr, #3848 ldr r9, [r5, #-2016] @@ -18855,7 +18878,7 @@ ftl_do_gc.part.23: mul r3, r3, ip add r3, r3, #1 cmp r1, r3 - bgt .L2112 + bgt .L2123 add fp, r0, #1 mov r8, #0 str r8, [r5, #-1184] @@ -18866,10 +18889,10 @@ ftl_do_gc.part.23: ldr r2, [sp, #8] uxth r4, r0 cmp r4, r7 - beq .L2112 + beq .L2123 ldrh r2, [r9, r2] mov r7, r4, asl #1 - ldr r0, .L2202+32 + ldr r0, .L2213+40 mov r1, fp ldrh r3, [r9, r7] str r2, [sp, #0] @@ -18877,45 +18900,45 @@ ftl_do_gc.part.23: bl printk ldrh r3, [r5, r6] cmp r3, #40 - bls .L2114 + bls .L2125 ldr r3, [r5, #-2016] ldrh r3, [r3, r7] cmp r3, #32 strhih r8, [r5, r6] @ movhi -.L2114: - ldr r2, .L2202 - mov r3, #432 +.L2125: + ldr r2, .L2213 + mov r3, #436 mov r1, #6 strh r1, [r2, r3] @ movhi - b .L2116 -.L2112: + b .L2127 +.L2123: bl GetSwlReplaceBlock movw r3, #65535 cmp r0, r3 mov r4, r0 - bne .L2116 - ldr r2, .L2202 - mov r3, #432 + bne .L2127 + ldr r2, .L2213 + mov r3, #436 mov r1, #0 strh r1, [r2, r3] @ movhi -.L2107: - ldr r5, .L2202 +.L2118: + ldr r5, .L2213 movw r4, #65535 - ldr r3, .L2202+16 + ldr r3, .L2213+24 ldrh r2, [r5, r3] cmp r2, r4 - bne .L2116 + bne .L2127 sub r3, r3, #140 ldrh r3, [r5, r3] cmp r3, r2 movne r4, r2 - bne .L2116 - ldr r2, .L2202+8 + bne .L2127 + ldr r2, .L2213+8 ldrh r7, [r5, r2] cmp r7, r3 movne r4, r3 - bne .L2116 - ldr r8, .L2202+20 + bne .L2127 + ldr r8, .L2213+28 ldr r2, [r5, #-1192] ldrh r3, [r5, r8] cmp r3, #23 @@ -18923,8 +18946,8 @@ ftl_do_gc.part.23: movls r3, #5120 cmp r2, r3 movls r4, r7 - bls .L2116 - mov r2, #432 + bls .L2127 + mov r2, #436 mov r3, #0 str r3, [r5, #-1192] mov r6, r5 @@ -18932,45 +18955,45 @@ ftl_do_gc.part.23: bl GetSwlReplaceBlock cmp r0, r7 mov r4, r0 - bne .L2118 - ldr r3, .L2202+24 + bne .L2129 + ldr r3, .L2213+32 ldrh r1, [r5, r8] ldrh r2, [r5, r3] cmp r1, r2 movcs r2, #80 strcsh r2, [r5, r3] @ movhi - bcs .L2128 + bcs .L2139 mov r0, #64 bl List_get_gc_head_node uxth r3, r0 cmp r3, r4 - beq .L2128 - ldr r2, [r5, #-1000] + beq .L2139 + ldr r2, [r5, #-996] cmp r2, #0 - bne .L2121 - ldr r2, .L2202+12 + bne .L2132 + ldr r2, .L2213+20 movw r1, #3868 ldrh r1, [r2, r1] cmp r1, #3 - beq .L2121 + beq .L2132 ldr r1, [r5, #-1712] cmp r1, #0 - bne .L2121 + bne .L2132 ldr r1, [r2, #3840] cmp r1, #0 - bne .L2121 + bne .L2132 ldrb r0, [r2, #928] @ zero_extendqisi2 cmp r0, #0 - beq .L2122 -.L2121: - ldr r1, .L2202 + beq .L2133 +.L2132: + ldr r1, .L2213 mov r3, r3, asl #1 movw ip, #3848 movw lr, #3868 ldr r2, [r1, #-2016] ldrh r0, [r2, r3] movw r2, #3918 - ldr r3, .L2202+12 + ldr r3, .L2213+20 ldrh r2, [r3, r2] ldrh ip, [r3, ip] ldrh r3, [r3, lr] @@ -18980,140 +19003,141 @@ ftl_do_gc.part.23: movne r3, #0 add r3, ip, r3 cmp r0, r3 - bgt .L2124 + bgt .L2135 mov r0, #0 bl List_get_gc_head_node - ldr r2, .L2202+12 - ldr r3, .L2202 + ldr r2, .L2213+20 + ldr r3, .L2213 ldr r2, [r2, #3976] ldr r1, [r3, #-1844] add r2, r2, r2, asl #1 cmp r1, r2, lsr #2 - ldr r2, .L2202+24 + ldr r2, .L2213+32 movhi r1, #128 movls r1, #160 strh r1, [r3, r2] @ movhi uxth r4, r0 - b .L2126 -.L2124: - ldr r3, .L2202+24 + b .L2137 +.L2135: + ldr r3, .L2213+32 mov r2, #128 strh r2, [r1, r3] @ movhi - b .L2128 -.L2122: + b .L2139 +.L2133: ldr r2, [r5, #-2016] mov r3, r3, asl #1 - ldr r6, .L2202 - ldr r5, .L2202+24 + ldr r6, .L2213 + ldr r5, .L2213+32 ldrh r3, [r2, r3] cmp r3, #7 movhi r3, #64 strhih r3, [r6, r5] @ movhi - bhi .L2128 + bhi .L2139 bl List_get_gc_head_node mov r3, #128 strh r3, [r6, r5] @ movhi uxth r4, r0 -.L2126: +.L2137: movw r3, #65535 cmp r4, r3 - beq .L2128 -.L2118: - ldr r1, .L2202 + beq .L2139 +.L2129: + ldr r1, .L2213 mov r0, r4, asl #1 - ldr r3, .L2202+20 - ldr ip, .L2202+12 + ldr r3, .L2213+28 + ldr ip, .L2213+20 ldrh r2, [r1, r3] ldr ip, [ip, #4048] ldr r3, [r1, #-2016] ldrh r3, [r3, r0] ldrh r0, [ip, r0] str r0, [sp, #0] - ldr r0, .L2202+36 + ldr r0, .L2213+44 ldrh r1, [r1, r0] - ldr r0, .L2202+40 + ldr r0, .L2213+48 str r1, [sp, #4] mov r1, r4 bl printk -.L2128: +.L2139: bl FtlGcReFreshBadBlk -.L2116: - movw r0, #65535 - rsb ip, r0, r4 - rsbs r1, ip, #0 - ldr r3, [sp, #16] - adc r1, r1, ip - ldr r5, .L2202 - cmp r3, #0 - movne r2, #0 - andeq r2, r1, #1 - cmp r2, #0 - beq .L2129 - ldr r3, .L2202+20 - ldrh r2, [r5, r3] - cmp r2, #24 - movhi r6, #1 - bhi .L2130 - ldr r1, .L2202+12 - movw r3, #3916 - cmp r2, #16 - ldrh r6, [r1, r3] - movhi r6, r6, lsr #5 - bhi .L2130 - cmp r2, #12 - movhi r6, r6, lsr #4 - bhi .L2130 - cmp r2, #8 - movhi r6, r6, lsr #2 -.L2130: - ldr r1, .L2202+36 - ldr r3, .L2202 - ldrh r0, [r5, r1] - cmp r0, r2 - mov r0, r1 - bcs .L2134 - ldr r2, .L2202+44 +.L2127: movw ip, #65535 - ldrh r2, [r3, r2] - cmp r2, ip - bne .L2135 - ldr ip, .L2202+8 - ldrh ip, [r3, ip] - cmp ip, r2 - bne .L2135 - mov r2, #432 - ldrh r0, [r3, r2] + rsb r1, ip, r4 + rsbs r0, r1, #0 + ldr r2, [sp, #16] + adc r0, r0, r1 + ldr r3, .L2213 + cmp r2, #0 + movne r1, #0 + andeq r1, r0, #1 + cmp r1, #0 + beq .L2140 + ldr r2, .L2213+28 + ldrh r1, [r3, r2] + cmp r1, #24 + movhi r6, #1 + bhi .L2141 + ldr r0, .L2213+20 + movw r2, #3916 + cmp r1, #16 + ldrh r6, [r0, r2] + movhi r6, r6, lsr #5 + bhi .L2141 + cmp r1, #12 + movhi r6, r6, lsr #4 + bhi .L2141 + cmp r1, #8 + movhi r6, r6, lsr #2 +.L2141: + ldr ip, .L2213+44 + ldr r2, .L2213 + ldrh r3, [r3, ip] + cmp r3, r1 + mov r1, ip + bcs .L2145 + ldr r3, .L2213+52 + movw r0, #65535 + ldrh r3, [r2, r3] + cmp r3, r0 + bne .L2146 + ldr r0, .L2213+8 + ldrh r0, [r2, r0] + cmp r0, r3 + bne .L2146 + mov r3, #436 + ldrh r0, [r2, r3] cmp r0, #0 - bne .L2136 - ldr r2, .L2202+12 - ldr ip, [r3, #-1844] - ldr r2, [r2, #3976] - add r2, r2, r2, asl #1 - cmp ip, r2, lsr #2 - movcs r2, #18 - bcs .L2200 -.L2136: - ldr r3, .L2202 - ldr r2, .L2202+48 - ldr r1, .L2202+36 + bne .L2147 + ldr r3, .L2213+20 + ldr r1, [r2, #-1844] + ldr r3, [r3, #3976] + add r3, r3, r3, asl #1 + cmp r1, r3, lsr #2 + movcs r3, #18 + strcsh r3, [r2, ip] @ movhi + bcs .L2149 +.L2147: + ldr r3, .L2213 + ldr r2, .L2213+56 + ldr r1, .L2213+44 ldrh r2, [r3, r2] add r2, r2, r2, asl #1 mov r2, r2, asr #2 -.L2200: strh r2, [r3, r1] @ movhi +.L2149: + ldr r3, .L2213 mov r2, #0 - ldr r3, .L2202 str r2, [r3, #-1184] - b .L2139 -.L2135: - ldr r3, .L2202 - ldr r2, .L2202+48 + b .L2150 +.L2146: + ldr r3, .L2213 + ldr r2, .L2213+56 ldrh r2, [r3, r2] add r2, r2, r2, asl #1 mov r2, r2, asr #2 - strh r2, [r3, r0] @ movhi -.L2134: - ldr r3, .L2202+12 + strh r2, [r3, r1] @ movhi +.L2145: + ldr r3, .L2213+20 cmp sl, #2 movw r4, #65535 movhi sl, #0 @@ -19124,68 +19148,77 @@ ftl_do_gc.part.23: cmp sl, #0 addne r6, r6, #1 uxthne r6, r6 - b .L2140 -.L2129: - ldr r3, .L2202+44 - ldrh r3, [r5, r3] - cmp r3, r0 - bne .L2141 - ldr r0, .L2202+8 - ldrh r0, [r5, r0] - cmp r0, r3 - movne r1, #0 - andeq r1, r1, #1 + b .L2151 +.L2140: + ldr r2, .L2213+52 + ldrh r2, [r3, r2] + cmp r2, ip + bne .L2152 + ldr ip, .L2213+8 + ldrh ip, [r3, ip] + cmp ip, r2 + movne r0, #0 + andeq r0, r0, #1 + cmp r0, #0 + beq .L2152 + ldr r0, .L2213+24 + ldrh r0, [r3, r0] + cmp r0, r2 + movne r4, r2 + bne .L2152 + str r1, [r3, #-1184] + ldr r2, .L2213+44 + ldr r1, .L2213+28 + ldrh r0, [r3, r1] + ldrh r1, [r3, r2] + cmp r0, r1 + bls .L2153 + mov r1, #436 + ldrh r1, [r3, r1] cmp r1, #0 - beq .L2141 - ldr r1, .L2202+16 - ldrh r4, [r5, r1] - cmp r4, r3 - movne r4, r3 - bne .L2141 - ldr r3, .L2202+20 - mov r6, #432 - str r2, [r5, #-1184] - ldrh r7, [r5, r3] - add r3, r3, #804 - ldrh r2, [r5, r3] - cmp r2, r7 - bcs .L2142 - ldrh r2, [r5, r6] - cmp r2, #0 - bne .L2143 - ldr r2, .L2202+12 - ldr r1, [r5, #-1844] - ldr r2, [r2, #3976] - add r2, r2, r2, asl #1 - cmp r1, r2, lsr #2 - movcs r2, #18 - strcsh r2, [r5, r3] @ movhi - bcs .L2145 -.L2143: - ldr r3, .L2202 - ldr r2, .L2202+48 - ldr r1, .L2202+36 + bne .L2154 + ldr r1, .L2213+20 + ldr r0, [r3, #-1844] + ldr r1, [r1, #3976] + add r1, r1, r1, asl #1 + cmp r0, r1, lsr #2 + movcs r1, #18 + strcsh r1, [r3, r2] @ movhi + bcs .L2156 +.L2154: + ldr r3, .L2213 + ldr r2, .L2213+56 + ldr r1, .L2213+44 ldrh r2, [r3, r2] add r2, r2, r2, asl #1 mov r2, r2, asr #2 strh r2, [r3, r1] @ movhi -.L2145: +.L2156: bl FtlReadRefresh - mov r3, #432 - ldr r2, .L2202 - b .L2201 -.L2142: - ldrh r0, [r5, r6] - cmp r0, #0 - bne .L2141 - ldr r2, .L2202+48 - ldrh r4, [r5, r2] - add r2, r4, r4, asl #1 - mov r2, r2, asr #2 - strh r2, [r5, r3] @ movhi + mov r0, #0 bl List_get_gc_head_node - ldr r3, [r5, #-2016] - ldr r1, .L2202+12 + ldr r3, .L2213 + ldr r2, [r3, #-2016] + uxth r0, r0 + mov r0, r0, asl #1 + ldrh r2, [r2, r0] + cmp r2, #4 + bhi .L2212 +.L2153: + ldr r4, .L2213 + mov r6, #436 + ldrh r0, [r4, r6] + cmp r0, #0 + bne .L2204 + ldr r3, .L2213+56 + ldrh r5, [r4, r3] + add r3, r3, #580 + add r2, r5, r5, asl #1 + mov r2, r2, asr #2 + strh r2, [r4, r3] @ movhi + bl List_get_gc_head_node + ldr r3, [r4, #-2016] + ldr r1, .L2213+20 movw r2, #3918 ldrh r2, [r1, r2] uxth r0, r0 @@ -19196,89 +19229,92 @@ ftl_do_gc.part.23: mul r2, r1, r2 add r2, r2, r2, lsr #31 cmp r3, r2, asr #1 - ble .L2146 - sub r4, r4, #1 - cmp r7, r4 - blt .L2146 + ble .L2157 + ldr r2, .L2213+28 + sub r5, r5, #1 + ldrh r2, [r4, r2] + cmp r2, r5 + blt .L2157 bl FtlReadRefresh - ldrh r0, [r5, r6] - b .L2139 -.L2146: + ldrh r0, [r4, r6] + b .L2150 +.L2157: cmp r3, #0 - movwne r4, #65535 - bne .L2141 + bne .L2204 movw r0, #65535 bl decrement_vpc_count - ldr r3, .L2202+20 - ldr r2, .L2202 + ldr r3, .L2213+28 + ldr r2, .L2213 ldrh r0, [r2, r3] add r0, r0, #1 - b .L2139 -.L2141: - ldr r3, .L2202+12 + b .L2150 +.L2204: + movw r4, #65535 +.L2152: + ldr r3, .L2213+20 ldr r6, [r3, #3840] cmp r6, #0 movne r6, #2 moveq r6, #1 -.L2140: - ldr r3, .L2202 +.L2151: + ldr r3, .L2213 movw r0, #65535 - ldr r2, .L2202+16 + ldr r2, .L2213+24 ldrh r1, [r3, r2] cmp r1, r0 - bne .L2147 + bne .L2158 cmp r4, r1 strneh r4, [r3, r2] @ movhi - bne .L2149 - ldr r2, .L2202+8 + bne .L2160 + ldr r2, .L2213+8 ldrh r1, [r3, r2] cmp r1, r4 - beq .L2149 + beq .L2160 ldr r0, [r3, #-2016] mov r1, r1, asl #1 ldrh r1, [r0, r1] cmp r1, #0 mvneq r1, #0 streqh r1, [r3, r2] @ movhi - ldr r3, .L2202 - ldr r1, .L2202+16 + ldr r3, .L2213 + ldr r1, .L2213+24 ldrh r0, [r3, r2] strh r0, [r3, r1] @ movhi mvn r1, #0 strh r1, [r3, r2] @ movhi -.L2149: - ldr r5, .L2202 +.L2160: + ldr r5, .L2213 mov r3, #0 - ldr r7, .L2202+16 + ldr r7, .L2213+24 strb r3, [r5, #-1752] movw r3, #65535 ldrh r0, [r5, r7] cmp r0, r3 - beq .L2147 + beq .L2158 bl IsBlkInGcList cmp r0, #0 mvnne r3, #0 strneh r3, [r5, r7] @ movhi - ldr r3, .L2202+12 - ldr r7, .L2202 + ldr r3, .L2213+20 + ldr r7, .L2213 ldrb r3, [r3, #928] @ zero_extendqisi2 cmp r3, #0 - beq .L2152 - ldr r3, .L2202+16 + beq .L2163 + ldr r3, .L2213+24 ldrh r0, [r7, r3] bl ftl_get_blk_mode strb r0, [r7, #-1752] -.L2152: - ldr r8, .L2202+16 +.L2163: + ldr r8, .L2213+24 movw r3, #65535 - ldr r5, .L2202 + ldr r5, .L2213 ldrh r2, [r7, r8] cmp r2, r3 - beq .L2147 + beq .L2158 add r0, r5, r8 bl make_superblock - ldr r1, .L2202+52 - movw r2, #434 + ldr r1, .L2213+60 + movw r2, #438 mov r3, #0 strh r3, [r5, r2] @ movhi strh r3, [r5, r1] @ movhi @@ -19287,65 +19323,65 @@ ftl_do_gc.part.23: ldr r2, [r5, #-2016] mov r3, r3, asl #1 ldrh r2, [r2, r3] - mov r3, #436 + mov r3, #440 strh r2, [r5, r3] @ movhi -.L2147: - ldr r3, .L2202 - ldr r2, .L2202+16 +.L2158: + ldr r3, .L2213 + ldr r2, .L2213+24 ldrh r1, [r3, r2] sub r2, r2, #236 ldrh r2, [r3, r2] cmp r2, r1 mov r2, r3 - beq .L2153 - ldr r0, .L2202+56 + beq .L2164 + ldr r0, .L2213+64 ldrh r3, [r3, r0] cmp r3, r1 - movne fp, r4 - bne .L2197 -.L2154: -.L2153: - ldr r3, .L2202+16 + strne r4, [sp, #20] + bne .L2208 +.L2165: +.L2164: + ldr r3, .L2213+24 mvn r1, #0 strh r1, [r2, r3] @ movhi - mov r3, #432 -.L2201: + mov r3, #436 +.L2211: ldrh r0, [r2, r3] - b .L2139 -.L2197: - ldr r4, .L2202 + b .L2150 +.L2208: + ldr r4, .L2213 movw sl, #65535 - ldr r3, .L2202+16 + ldr r3, .L2213+24 ldrh r3, [r4, r3] cmp r3, sl - bne .L2156 - ldr r5, .L2202+28 + bne .L2167 + ldr r5, .L2213+36 mov r3, #0 str r3, [r4, #-1184] -.L2196: +.L2207: ldrh r8, [r4, r5] mov r0, r8 bl List_get_gc_head_node - ldr r3, .L2202+16 + ldr r3, .L2213+24 movw r1, #65535 uxth r7, r0 strh r7, [r4, r3] @ movhi cmp r7, r1 - bne .L2158 - ldr r2, .L2202 + bne .L2169 + ldr r2, .L2213 add r3, r3, #572 mov r1, #0 mov r0, #8 strh r1, [r2, r3] @ movhi - b .L2139 -.L2158: + b .L2150 +.L2169: mov r0, r7 bl IsBlkInGcList cmp r0, #0 add r0, r8, #1 strneh r0, [r4, r5] @ movhi - bne .L2196 - ldr ip, .L2202+12 + bne .L2207 + ldr ip, .L2213+20 movw r8, #3916 movw sl, #3848 ldr r2, [r4, #-2016] @@ -19358,103 +19394,103 @@ ftl_do_gc.part.23: mul r8, ip, r8 add ip, r8, r8, lsr #31 cmp r1, ip, asr #1 - bgt .L2161 + bgt .L2172 cmp r0, #48 - bls .L2162 + bls .L2173 cmp r1, #8 - bls .L2162 - ldr r1, .L2202+60 + bls .L2173 + ldr r1, .L2213+68 ldrh r1, [r4, r1] cmp r1, #35 - bhi .L2162 -.L2161: + bhi .L2173 +.L2172: mov r1, #0 strh r1, [r4, r5] @ movhi -.L2162: +.L2173: ldrh r3, [r2, r3] - movw r2, #65535 - ldr sl, .L2202 + movw r1, #65535 + ldr sl, [sp, #20] + ldr r9, .L2213 cmp r3, r8 - cmpge fp, r2 + cmpge sl, r1 movne r8, #0 moveq r8, #1 - bne .L2163 - ldr r3, .L2202+16 + bne .L2174 + ldr r3, .L2213+24 mvn r2, #0 - strh r2, [sl, r3] @ movhi + strh r2, [r9, r3] @ movhi add r3, r3, #572 mov r2, #0 - strh r2, [sl, r3] @ movhi - mov r3, #432 - ldrh r0, [sl, r3] - b .L2139 -.L2163: + strh r2, [r9, r3] @ movhi + mov r3, #436 + ldrh r0, [r9, r3] + b .L2150 +.L2174: cmp r3, #0 - bne .L2164 + bne .L2175 movw r0, #65535 bl decrement_vpc_count ldrh r3, [r4, r5] add r3, r3, #1 strh r3, [r4, r5] @ movhi - b .L2196 -.L2164: - ldr r3, .L2202+12 - strb r8, [sl, #-1752] + b .L2207 +.L2175: + ldr r3, .L2213+20 + strb r8, [r9, #-1752] ldrb r3, [r3, #928] @ zero_extendqisi2 cmp r3, #0 - beq .L2165 + beq .L2176 mov r0, r7 bl ftl_get_blk_mode - strb r0, [sl, #-1752] -.L2165: - ldr r4, .L2202 + strb r0, [r9, #-1752] +.L2176: + ldr r4, .L2213 sub r0, r4, #1760 bl make_superblock - movw r1, #434 + movw r1, #438 mov r3, #0 strh r3, [r4, r1] @ movhi - ldr r1, .L2202+16 + ldr r1, .L2213+24 ldr r0, [r4, #-2016] ldrh r1, [r4, r1] mov r1, r1, asl #1 ldrh r0, [r0, r1] - mov r1, #436 + mov r1, #440 strb r3, [r4, #-1754] strh r0, [r4, r1] @ movhi - ldr r1, .L2202+52 + ldr r1, .L2213+60 strh r3, [r4, r1] @ movhi -.L2156: +.L2167: ldr sl, [sp, #16] cmp sl, #1 - bne .L2166 + bne .L2177 bl FtlReadRefresh -.L2166: - ldr r3, .L2202 +.L2177: + ldr r3, .L2213 mov r2, #1 movw r1, #3916 - str r2, [r3, #-996] - ldr r2, .L2202+12 + str r2, [r3, #-992] + ldr r2, .L2213+20 ldrh r9, [r2, r1] ldrb r1, [r2, #928] @ zero_extendqisi2 cmp r1, #0 - beq .L2167 + beq .L2178 ldrb r1, [r3, #-1752] @ zero_extendqisi2 cmp r1, #1 movweq r1, #3918 ldreqh r9, [r2, r1] -.L2167: - ldr r2, .L2202+52 +.L2178: + ldr r2, .L2213+60 mov r8, #0 - str fp, [sp, #20] + ldr r4, .L2213 mov fp, r9 - ldr r4, .L2202 ldrh r3, [r3, r2] add r2, r3, r6 cmp r2, r9 rsbgt r6, r3, r9 uxthgt r6, r6 - b .L2169 -.L2171: + b .L2180 +.L2182: ldrh r1, [r2, #2]! movw sl, #65535 add r3, r3, #1 @@ -19465,9 +19501,9 @@ ftl_do_gc.part.23: addne r7, r7, #1 uxthne r7, r7 strne r1, [sl, #4] -.L2177: +.L2188: cmp r3, r5 - bne .L2171 + bne .L2182 ldr r0, [r4, #-1164] mov r1, r7 ldrb r2, [r4, #-1752] @ zero_extendqisi2 @@ -19475,18 +19511,18 @@ ftl_do_gc.part.23: bl FlashReadPages mov r9, r5 mov sl, r6 - b .L2172 -.L2175: + b .L2183 +.L2186: ldr r3, [r4, #-1164] add r2, r3, r5 ldr r3, [r3, r5] ldr r6, [r2, #12] cmn r3, #1 - beq .L2173 + beq .L2184 ldrh r3, [r6, #0] movw r1, #61589 cmp r3, r1 - bne .L2173 + bne .L2184 add r1, sp, #28 mov r2, #0 ldr r0, [r6, #8] @@ -19497,14 +19533,14 @@ ftl_do_gc.part.23: bic r2, r2, #-2147483648 ldr r3, [r1, #4] cmp r2, r3 - bne .L2173 - movw r3, #434 + bne .L2184 + movw r3, #438 ldr r0, [r4, #-1180] ldrh r2, [r4, r3] ldr r1, [r1, #16] add r2, r2, #1 strh r2, [r4, r3] @ movhi - ldr r2, [r4, #-968] + ldr r2, [r4, #-964] mov r3, #36 mla r2, r3, r0, r2 str r1, [r2, #16] @@ -19515,7 +19551,7 @@ ftl_do_gc.part.23: ldr r1, [r4, #-1180] str r0, [r2, #4] ldr r3, [sp, #12] - ldr r2, [r4, #-968] + ldr r2, [r4, #-964] mla r3, r3, r1, r2 ldr r2, [r4, #-1164] add r2, r2, r5 @@ -19526,7 +19562,7 @@ ftl_do_gc.part.23: str r2, [r3, #12] ldr r3, [sp, #28] str r3, [r6, #12] - ldr r3, .L2202+44 + ldr r3, .L2213+52 ldrh r3, [r4, r3] strh r3, [r6, #2] @ movhi ldr r3, [r4, #-1800] @@ -19537,42 +19573,44 @@ ftl_do_gc.part.23: add r3, r3, #1 str r3, [r4, #-1180] bl FtlGcBufAlloc - ldr r3, .L2202+12 + ldr r3, .L2213+20 ldrb r3, [r3, #928] @ zero_extendqisi2 cmp r3, #0 - bne .L2174 + bne .L2185 ldrb r3, [r4, #-1893] @ zero_extendqisi2 ldr r2, [r4, #-1180] cmp r2, r3 - beq .L2174 - ldr r3, .L2202+64 + beq .L2185 + ldr r3, .L2213+72 ldrh r3, [r4, r3] cmp r3, #0 - bne .L2173 -.L2174: + bne .L2184 +.L2185: bl Ftl_gc_temp_data_write_back cmp r0, #0 - ldrne r3, .L2202 - movne r2, #0 - strne r2, [r3, #-996] - movne r2, #432 - bne .L2201 -.L2173: + beq .L2184 + ldr r3, .L2213 + mov r2, #0 + str r2, [r3, #-992] +.L2212: + mov r2, #436 + b .L2211 +.L2184: add r9, r9, #1 add r5, r5, #36 uxth r9, r9 -.L2172: +.L2183: cmp r9, r7 - bne .L2175 + bne .L2186 add r8, r8, #1 mov r6, sl -.L2169: +.L2180: uxth r3, r8 - ldr r7, .L2202 + ldr r7, .L2213 cmp r3, r6 - ldr r3, .L2202+52 - bcs .L2176 - ldr r1, .L2202+12 + ldr r3, .L2213+60 + bcs .L2187 + ldr r1, .L2213+20 movw r2, #3848 ldrh ip, [r4, r3] mov r7, #0 @@ -19580,85 +19618,98 @@ ftl_do_gc.part.23: mov r3, r7 ldrh r5, [r1, r2] add ip, ip, r8 - ldr r2, .L2202+68 + ldr r2, .L2213+76 mov r0, #36 - b .L2177 -.L2176: + b .L2188 +.L2187: ldrh r2, [r7, r3] mov r9, fp - ldr fp, [sp, #20] add r6, r6, r2 uxth r6, r6 strh r6, [r7, r3] @ movhi - cmp r6, r9 - bcc .L2178 + cmp r6, fp + bcc .L2189 ldr r3, [r7, #-1180] cmp r3, #0 - beq .L2179 + beq .L2190 bl Ftl_gc_temp_data_write_back cmp r0, #0 movne r3, #0 - strne r3, [r7, #-996] - movne r3, #432 + strne r3, [r7, #-992] + movne r3, #436 ldrneh r0, [r7, r3] - bne .L2139 -.L2179: - ldr r3, .L2202 - movw r2, #434 - ldrh ip, [r3, r2] - cmp ip, #0 - bne .L2180 - ldr r2, .L2202+16 - ldr r0, [r3, #-2016] - ldrh r1, [r3, r2] - mov r1, r1, asl #1 - ldrh r4, [r0, r1] - cmp r4, #0 - beq .L2180 - strh ip, [r0, r1] @ movhi - ldrh r0, [r3, r2] + bne .L2150 +.L2190: + ldr r4, .L2213 + movw r3, #438 + ldrh r6, [r4, r3] + cmp r6, #0 + bne .L2191 + ldr r5, .L2213+24 + ldr r2, [r4, #-2016] + ldrh r1, [r4, r5] + mov r3, r1, asl #1 + ldrh r3, [r2, r3] + cmp r3, #0 + beq .L2191 + ldr r2, .L2213+60 + ldr r0, .L2213+80 + ldrh r2, [r4, r2] + str r3, [sp, #0] + mov r3, #440 + ldrh r3, [r4, r3] + str r3, [sp, #4] + mov r3, r6 + bl printk + ldrh r3, [r4, r5] + ldr r2, [r4, #-2016] + mov r3, r3, asl #1 + strh r6, [r2, r3] @ movhi + ldrh r0, [r4, r5] bl update_vpc_list bl FtlCacheWriteBack bl l2p_flush bl FtlVpcTblFlush -.L2180: - ldr r3, .L2202+16 +.L2191: + ldr r3, .L2213+24 mvn r1, #0 - ldr r2, .L2202 + ldr r2, .L2213 strh r1, [r2, r3] @ movhi -.L2178: - ldr r3, .L2202 - ldr r2, .L2202+20 +.L2189: + ldr r3, .L2213 + ldr r2, .L2213+28 ldrh r2, [r3, r2] cmp r2, #2 - ldrls r2, .L2202+12 + ldrls r2, .L2213+20 movwls r3, #3916 ldrlsh r6, [r2, r3] - bls .L2197 -.L2181: + bls .L2208 +.L2192: mov r1, #0 - str r1, [r3, #-996] - mov r1, #432 + str r1, [r3, #-992] + mov r1, #436 ldrh r0, [r3, r1] cmp r0, #0 addeq r0, r2, #1 -.L2139: +.L2150: add sp, sp, #36 ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} -.L2203: +.L2214: .align 2 -.L2202: +.L2213: .word .LANCHOR2 .word -1140 .word -1142 + .word -1138 + .word -1136 .word .LANCHOR0 .word -1760 .word -2000 .word -1194 .word -1188 - .word .LC149 + .word .LC148 .word -1196 - .word .LC150 + .word .LC149 .word -1900 .word -1776 .word -1758 @@ -19666,8 +19717,9 @@ ftl_do_gc.part.23: .word -1156 .word -1896 .word .LANCHOR2-1746 + .word .LC150 .fnend - .size ftl_do_gc.part.23, .-ftl_do_gc.part.23 + .size ftl_do_gc.part.22, .-ftl_do_gc.part.22 .align 2 .global ftl_do_gc .type ftl_do_gc, %function @@ -19678,46 +19730,46 @@ ftl_do_gc: stmfd sp!, {r3, r4, r5, lr} .save {r3, r4, r5, lr} mov r4, r0 - ldr r3, .L2211 + ldr r3, .L2222 mov r5, r1 ldr r0, [r3, #4040] cmp r0, #0 movne r0, #0 ldmnefd sp!, {r3, r4, r5, pc} - ldr r3, .L2211+4 - ldr r2, [r3, #-996] + ldr r3, .L2222+4 + ldr r2, [r3, #-992] cmp r2, #0 ldmnefd sp!, {r3, r4, r5, pc} - ldr r1, .L2211+8 + ldr r1, .L2222+8 ldrh r1, [r3, r1] cmp r1, #47 movls r0, r2 ldmlsfd sp!, {r3, r4, r5, pc} - ldr r1, .L2211+12 - movw r2, #3000 + ldr r1, .L2222+12 + movw r2, #3096 ldrh r1, [r1, r2] movw r2, #65535 cmp r1, r2 - beq .L2206 - ldr r1, .L2211+16 + beq .L2217 + ldr r1, .L2222+16 ldrh r3, [r3, r1] cmp r3, r2 - beq .L2206 + beq .L2217 mov r0, #1 bl FtlGcFreeTempBlock cmp r0, #0 - bne .L2210 -.L2206: + bne .L2221 +.L2217: mov r0, r4 mov r1, r5 ldmfd sp!, {r3, r4, r5, lr} - b ftl_do_gc.part.23 -.L2210: + b ftl_do_gc.part.22 +.L2221: mov r0, #1 ldmfd sp!, {r3, r4, r5, pc} -.L2212: +.L2223: .align 2 -.L2211: +.L2222: .word .LANCHOR0 .word .LANCHOR2 .word -2008 @@ -19732,40 +19784,40 @@ FtlCacheWriteBack: .fnstart @ args = 0, pretend = 0, frame = 8 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L2236 + ldr r3, .L2247 stmfd sp!, {r0, r1, r4, r5, r6, r7, r8, r9, sl, lr} .save {r0, r1, r4, r5, r6, r7, r8, r9, sl, lr} - ldr r4, [r3, #440] - ldr r3, .L2236+4 + ldr r4, [r3, #444] + ldr r3, .L2247+4 ldr r2, [r3, #4040] cmp r2, #0 - bne .L2214 + bne .L2225 ldr r1, [r3, #3968] cmp r1, #0 - beq .L2214 + beq .L2225 ldrb r8, [r3, #928] @ zero_extendqisi2 cmp r8, #0 - beq .L2215 + beq .L2226 ldrb r8, [r4, #8] @ zero_extendqisi2 - sub lr, r8, #1 - rsbs r8, lr, #0 - adc r8, r8, lr -.L2215: - ldr r5, .L2236+4 + sub r0, r8, #1 + rsbs r8, r0, #0 + adc r8, r8, r0 +.L2226: + ldr r5, .L2247+4 mov r2, r8 ldrb r3, [r4, #9] @ zero_extendqisi2 mov r6, #0 mov r7, r6 - ldr r9, .L2236 + ldr r9, .L2247 ldr r0, [r5, #3972] bl FlashProgPages - b .L2216 -.L2221: + b .L2227 +.L2232: ldr r2, [r5, #3972] add r3, r2, r6 ldr r2, [r2, r6] cmn r2, #1 - beq .L2235 + beq .L2246 ldr r2, [r3, #4] cmp r8, #0 ldr r0, [r3, #16] @@ -19780,7 +19832,7 @@ FtlCacheWriteBack: ldr r3, [r3, #12] ldr r0, [r3, #12] cmn r0, #1 - beq .L2219 + beq .L2230 ubfx r0, r0, #10, #16 bl P2V_block_in_plane ldr r2, [r9, #-2016] @@ -19788,34 +19840,34 @@ FtlCacheWriteBack: mov sl, r0 ldrh r2, [r2, r3] cmp r2, #0 - bne .L2220 - ldr r0, .L2236+8 + bne .L2231 + ldr r0, .L2247+8 mov r1, sl bl printk -.L2220: +.L2231: mov r0, sl bl decrement_vpc_count -.L2219: +.L2230: add r7, r7, #1 add r6, r6, #36 -.L2216: +.L2227: ldr r3, [r5, #3968] cmp r7, r3 - bcc .L2221 - b .L2222 -.L2231: + bcc .L2232 + b .L2233 +.L2242: ldr r3, [r5, #3972] mvn r2, #0 - ldr r7, .L2236 + ldr r7, .L2247 str r2, [r3, r6] - b .L2223 -.L2227: + b .L2234 +.L2238: ldr r0, [r3, #4] ubfx r0, r0, #10, #16 bl P2V_block_in_plane ldrh r3, [r4, #0] cmp r3, r0 - bne .L2224 + bne .L2235 ldr r2, [r7, #-2016] mov r3, r3, asl #1 ldrh r1, [r4, #4] @@ -19828,13 +19880,13 @@ FtlCacheWriteBack: mov r3, #0 strb r3, [r4, #6] strh r3, [r4, #4] @ movhi -.L2224: +.L2235: ldrh r3, [r4, #4] cmp r3, #0 - bne .L2225 + bne .L2236 mov r0, r4 bl allocate_new_data_superblock -.L2225: +.L2236: ldr r3, [r7, #-1612] add r3, r3, #1 str r3, [r7, #-1612] @@ -19861,13 +19913,13 @@ FtlCacheWriteBack: streq r3, [r5, #4040] ldr r3, [r9, #4040] cmp r3, #0 - bne .L2214 -.L2223: + bne .L2225 +.L2234: ldr r2, [r5, #3972] add r3, r2, r6 ldr r2, [r2, r6] cmn r2, #1 - beq .L2227 + beq .L2238 ldr r2, [r3, #4] cmp r8, #0 ldr r0, [r3, #16] @@ -19882,63 +19934,63 @@ FtlCacheWriteBack: ldr r3, [r3, #12] ldr r0, [r3, #12] cmn r0, #1 - beq .L2229 + beq .L2240 ubfx r0, r0, #10, #16 bl P2V_block_in_plane - ldr r3, .L2236 + ldr r3, .L2247 ldr r2, [r3, #-2016] mov r3, r0, asl #1 mov r7, r0 ldrh r2, [r2, r3] cmp r2, #0 - bne .L2230 - ldr r0, .L2236+8 + bne .L2241 + ldr r0, .L2247+8 mov r1, r7 bl printk -.L2230: +.L2241: mov r0, r7 bl decrement_vpc_count -.L2229: +.L2240: add sl, sl, #1 add r6, r6, #36 - b .L2217 -.L2235: - ldr r5, .L2236+4 + b .L2228 +.L2246: + ldr r5, .L2247+4 mov r6, #0 mov sl, r6 mov r9, r5 -.L2217: +.L2228: ldr r3, [r5, #3968] cmp sl, r3 - bcc .L2231 + bcc .L2242 movw r4, #16386 - ldr r6, .L2236 - ldr r5, .L2236+12 - b .L2232 -.L2233: + ldr r6, .L2247 + ldr r5, .L2247+12 + b .L2243 +.L2244: mov r0, #1 mov r1, r0 bl ftl_do_gc subs r4, r4, #1 - beq .L2222 -.L2232: + beq .L2233 +.L2243: ldrh r3, [r6, r5] cmp r3, #0 - bne .L2233 -.L2222: - ldr r3, .L2236+4 + bne .L2244 +.L2233: + ldr r3, .L2247+4 mov r2, #0 str r2, [r3, #3968] -.L2214: +.L2225: mov r0, #0 ldmfd sp!, {r2, r3, r4, r5, r6, r7, r8, r9, sl, pc} -.L2237: +.L2248: .align 2 -.L2236: +.L2247: .word .LANCHOR2 .word .LANCHOR0 .word .LC151 - .word -1138 + .word -1134 .fnend .size FtlCacheWriteBack, .-FtlCacheWriteBack .align 2 @@ -19972,21 +20024,21 @@ FtlSysFlush: @ frame_needed = 0, uses_anonymous_args = 0 stmfd sp!, {r3, lr} .save {r3, lr} - ldr r3, .L2242 + ldr r3, .L2253 ldr r3, [r3, #4040] cmp r3, #0 - bne .L2241 + bne .L2252 bl FtlCacheWriteBack bl l2p_flush mov r0, #1 bl FtlEctTblFlush bl FtlVpcTblFlush -.L2241: +.L2252: mov r0, #0 ldmfd sp!, {r3, pc} -.L2243: +.L2254: .align 2 -.L2242: +.L2253: .word .LANCHOR0 .fnend .size FtlSysFlush, .-FtlSysFlush @@ -19999,17 +20051,17 @@ FtlDeInit: @ frame_needed = 0, uses_anonymous_args = 0 stmfd sp!, {r3, lr} .save {r3, lr} - ldr r3, .L2246 - ldr r3, [r3, #2996] + ldr r3, .L2257 + ldr r3, [r3, #3092] cmp r3, #1 - bne .L2245 + bne .L2256 bl FtlSysFlush -.L2245: +.L2256: mov r0, #0 ldmfd sp!, {r3, pc} -.L2247: +.L2258: .align 2 -.L2246: +.L2257: .word .LANCHOR1 .fnend .size FtlDeInit, .-FtlDeInit @@ -20038,13 +20090,13 @@ rk_ftl_de_init: stmfd sp!, {r3, lr} .save {r3, lr} mov r1, #0 - ldr r0, .L2250 + ldr r0, .L2261 bl printk ldmfd sp!, {r3, lr} b ftl_deinit -.L2251: +.L2262: .align 2 -.L2250: +.L2261: .word .LC152 .fnend .size rk_ftl_de_init, .-rk_ftl_de_init @@ -20066,17 +20118,17 @@ ftl_fix_nand_power_lost_error: .fnstart @ args = 0, pretend = 0, frame = 48 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L2262 + ldr r3, .L2273 stmfd sp!, {r4, r5, r6, r7, r8, sl, lr} .save {r4, r5, r6, r7, r8, sl, lr} .pad #52 sub sp, sp, #52 ldrb r3, [r3, #928] @ zero_extendqisi2 cmp r3, #0 - beq .L2253 - ldr r4, .L2262+4 - movw r3, #294 - ldr r0, .L2262+8 + beq .L2264 + ldr r4, .L2273+4 + movw r3, #298 + ldr r0, .L2273+8 movw r7, #4097 ldrh r6, [r4, r3] ldr r3, [r4, #-2016] @@ -20084,45 +20136,45 @@ ftl_fix_nand_power_lost_error: mov r1, r6 ldrh r2, [r3, r5] bl printk - ldr r3, .L2262+12 + ldr r3, .L2273+12 ldrh r0, [r4, r3] bl FtlGcRefreshOpenBlock - ldr r3, .L2262+16 + ldr r3, .L2273+16 ldrh r0, [r4, r3] bl FtlGcRefreshOpenBlock - ldr r0, .L2262+20 + ldr r0, .L2273+20 bl allocate_new_data_superblock - ldr r0, .L2262+24 + ldr r0, .L2273+24 bl allocate_new_data_superblock - b .L2255 -.L2257: + b .L2266 +.L2268: mov r0, #1 mov r1, r0 bl ftl_do_gc ldr r3, [r4, #-2016] ldrh r3, [r3, r5] cmp r3, #0 - beq .L2256 -.L2255: + beq .L2267 +.L2266: subs r7, r7, #1 - bne .L2257 -.L2256: - ldr r4, .L2262+4 + bne .L2268 +.L2267: + ldr r4, .L2273+4 mov r1, r6 - ldr r0, .L2262+8 + ldr r0, .L2273+8 ldr r3, [r4, #-2016] ldrh r2, [r3, r5] bl printk ldr r3, [r4, #-2016] ldrh r4, [r3, r5] cmp r4, #0 - bne .L2258 + bne .L2269 add r7, sp, #48 mov r0, sp strh r6, [r7, #-48]! @ movhi add r7, r7, #14 bl make_superblock - ldr r3, .L2262 + ldr r3, .L2273 movw r2, #3848 movw lr, #65535 mov ip, #36 @@ -20130,29 +20182,29 @@ ftl_fix_nand_power_lost_error: ldrh r8, [r3, r2] ldr sl, [r3, #4044] mov r3, r4 - b .L2259 -.L2261: + b .L2270 +.L2272: ldrh r0, [r7, #2]! cmp r0, lr - beq .L2260 + beq .L2271 mla r2, ip, r4, sl add r4, r4, #1 mov r0, r0, asl #10 uxth r4, r4 stmib r2, {r0, r1} str r1, [r2, #12] -.L2260: +.L2271: add r3, r3, #1 uxth r3, r3 -.L2259: +.L2270: cmp r3, r8 - bne .L2261 - ldr r3, .L2262+4 + bne .L2272 + ldr r3, .L2273+4 mov r1, r6 - ldr r0, .L2262+28 + ldr r0, .L2273+28 ldr r3, [r3, #-2016] ldrh r2, [r3, r5] - ldr r5, .L2262 + ldr r5, .L2273 bl printk mov r1, #0 mov r2, r4 @@ -20162,17 +20214,17 @@ ftl_fix_nand_power_lost_error: mov r1, #1 mov r2, r4 bl FlashEraseBlocks -.L2258: - ldr r2, .L2262+4 - movw r3, #294 +.L2269: + ldr r2, .L2273+4 + movw r3, #298 mvn r1, #0 strh r1, [r2, r3] @ movhi -.L2253: +.L2264: add sp, sp, #52 ldmfd sp!, {r4, r5, r6, r7, r8, sl, pc} -.L2263: +.L2274: .align 2 -.L2262: +.L2273: .word .LANCHOR0 .word .LANCHOR2 .word .LC153 @@ -20190,21 +20242,21 @@ FtlInit: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 -.L2265: +.L2276: stmfd sp!, {r4, r5, r6, lr} .save {r4, r5, r6, lr} mvn r3, #0 - ldr r4, .L2275 - ldr r6, .L2275+4 - ldr r5, .L2275+8 - ldr r1, .L2275+12 - str r3, [r6, #2996] + ldr r4, .L2286 + ldr r6, .L2286+4 + ldr r5, .L2286+8 + ldr r1, .L2286+12 + str r3, [r6, #3092] mov r3, #0 - ldr r0, .L2275+16 + ldr r0, .L2286+16 str r3, [r4, #4040] - str r3, [r5, #444] + str r3, [r5, #448] bl printk - ldr r0, .L2275+20 + ldr r0, .L2286+20 bl FtlConstantsInit bl FtlMemInit bl FtlVariablesInit @@ -20213,54 +20265,54 @@ FtlInit: bl FtlFreeSysBlkQueueInit bl FtlLoadBbt cmp r0, #0 - ldrne r0, .L2275+24 - bne .L2274 + ldrne r0, .L2286+24 + bne .L2285 bl FtlSysBlkInit cmp r0, #0 - beq .L2268 - ldr r0, .L2275+28 -.L2274: - ldr r1, .L2275+32 + beq .L2279 + ldr r0, .L2286+28 +.L2285: + ldr r1, .L2286+32 bl printk - b .L2267 -.L2268: + b .L2278 +.L2279: mov r1, #1 - str r1, [r6, #2996] + str r1, [r6, #3092] bl ftl_do_gc - ldr r3, .L2275+36 + ldr r3, .L2286+36 ldrh r3, [r5, r3] cmp r3, #15 - bhi .L2269 + bhi .L2280 mov r4, #1024 -.L2270: +.L2281: mov r0, #1 mov r1, r0 bl ftl_do_gc subs r4, r4, #1 - bne .L2270 - b .L2267 -.L2269: + bne .L2281 + b .L2278 +.L2280: ldrb r3, [r4, #928] @ zero_extendqisi2 cmp r3, #0 - beq .L2267 + beq .L2278 mov r4, #128 -.L2271: +.L2282: mov r0, #1 mov r1, r0 bl ftl_do_gc subs r4, r4, #1 - bne .L2271 -.L2267: + bne .L2282 +.L2278: mov r0, #0 ldmfd sp!, {r4, r5, r6, pc} -.L2276: +.L2287: .align 2 -.L2275: +.L2286: .word .LANCHOR0 .word .LANCHOR1 .word .LANCHOR2 - .word .LC79 .word .LC78 + .word .LC77 .word .LANCHOR0+3048 .word .LC155 .word .LC156 @@ -20278,18 +20330,18 @@ ftl_discard: stmfd sp!, {r0, r1, r2, r4, r5, r6, r7, lr} .save {r0, r1, r2, r4, r5, r6, r7, lr} add r2, r1, r0 - ldr r5, .L2287 + ldr r5, .L2298 mov r7, r0 mov r4, r1 ldr r3, [r5, #3956] cmp r2, r3 mvnhi r0, #0 - bhi .L2278 + bhi .L2289 cmp r1, #31 - bls .L2285 + bls .L2296 ldr r3, [r5, #4040] cmp r3, #0 - bne .L2285 + bne .L2296 bl FtlCacheWriteBack movw r3, #3922 ldrh r6, [r5, r3] @@ -20300,33 +20352,33 @@ ftl_discard: mov r5, r0 uxth r7, r7 cmp r7, #0 - beq .L2279 + beq .L2290 rsb r6, r7, r6 add r5, r0, #1 cmp r6, r4 movcs r6, r4 uxth r6, r6 rsb r4, r6, r4 -.L2279: +.L2290: mvn r3, #0 - ldr r7, .L2287 + ldr r7, .L2298 str r3, [sp, #4] movw r6, #3922 - b .L2280 -.L2282: + b .L2291 +.L2293: mov r0, r5 mov r1, sp mov r2, #0 bl log2phys ldr r3, [sp, #0] cmn r3, #1 - beq .L2281 - ldr r3, .L2287+4 + beq .L2292 + ldr r3, .L2298+4 add r1, sp, #4 mov r0, r5 - ldr r2, [r3, #448] + ldr r2, [r3, #452] add r2, r2, #1 - str r2, [r3, #448] + str r2, [r3, #452] ldr r2, [r3, #-1832] add r2, r2, #1 str r2, [r3, #-1832] @@ -20336,33 +20388,33 @@ ftl_discard: ubfx r0, r0, #10, #16 bl P2V_block_in_plane bl decrement_vpc_count -.L2281: +.L2292: ldrh r3, [r7, r6] add r5, r5, #1 rsb r4, r3, r4 -.L2280: +.L2291: ldrh r3, [r7, r6] cmp r4, r3 - bcs .L2282 - ldr r3, .L2287+4 + bcs .L2293 + ldr r3, .L2298+4 mov r4, #0 - ldr r2, [r3, #448] + ldr r2, [r3, #452] cmp r2, #32 - bls .L2286 - str r4, [r3, #448] + bls .L2297 + str r4, [r3, #452] bl l2p_flush bl FtlVpcTblFlush - b .L2286 -.L2285: + b .L2297 +.L2296: mov r0, #0 - b .L2278 -.L2286: + b .L2289 +.L2297: mov r0, r4 -.L2278: +.L2289: ldmfd sp!, {r1, r2, r3, r4, r5, r6, r7, pc} -.L2288: +.L2299: .align 2 -.L2287: +.L2298: .word .LANCHOR0 .word .LANCHOR2 .fnend @@ -20379,22 +20431,22 @@ FtlDiscard: .fnend .size FtlDiscard, .-FtlDiscard .align 2 - .type ftl_write.part.24, %function -ftl_write.part.24: + .type ftl_write.part.23, %function +ftl_write.part.23: .fnstart @ args = 0, pretend = 0, frame = 96 @ frame_needed = 0, uses_anonymous_args = 0 stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} .save {r4, r5, r6, r7, r8, r9, sl, fp, lr} mov r3, #2048 - ldr r4, .L2335 + ldr r4, .L2346 .pad #100 sub sp, sp, #100 - ldr r8, .L2335+4 + ldr r8, .L2346+4 mov r5, r1 mov r7, r0 mov r9, r2 - str r3, [r4, #452] + str r3, [r4, #456] movw r3, #3922 ldrh r6, [r8, r3] mov r1, r6 @@ -20418,7 +20470,7 @@ ftl_write.part.24: ldr r3, [r4, #-1812] add r3, r5, r3 str r3, [r4, #-1812] - beq .L2323 + beq .L2334 ldr r3, [r8, #3972] sub sl, sl, #1 mov r2, #36 @@ -20427,15 +20479,15 @@ ftl_write.part.24: ldr r3, [sl, #16] cmp r0, r3 strne r5, [sp, #32] - bne .L2292 + bne .L2303 ldr r3, [r4, #-1824] mov r0, r7 mov r1, r6 add r3, r3, #1 str r3, [r4, #-1824] - ldr r3, [r4, #456] + ldr r3, [r4, #460] add r3, r3, #1 - str r3, [r4, #456] + str r3, [r4, #460] bl __aeabi_uidivmod ldr r0, [sl, #8] rsb r8, r1, r6 @@ -20449,11 +20501,11 @@ ftl_write.part.24: bl memcpy cmp fp, #0 ldr r3, [sp, #4] - bne .L2293 - ldr r2, [r4, #456] + bne .L2304 + ldr r2, [r4, #460] cmp r2, #2 - ble .L2294 -.L2293: + ble .L2305 +.L2304: add r9, r9, r3 add r7, r7, r8 ldr r3, [sp, #16] @@ -20462,84 +20514,84 @@ ftl_write.part.24: add r3, r3, #1 str r1, [sp, #32] str r3, [sp, #16] -.L2292: - ldr r3, .L2335 +.L2303: + ldr r3, .L2346 mov r2, #0 - str r2, [r3, #456] - b .L2291 -.L2323: + str r2, [r3, #460] + b .L2302 +.L2334: str r5, [sp, #32] -.L2291: +.L2302: ldr r0, [sp, #16] ldr r1, [sp, #36] bl FtlCacheMetchLpa cmp r0, #0 - beq .L2295 + beq .L2306 bl FtlCacheWriteBack -.L2295: +.L2306: cmp r5, r6, asl #1 - ldr r3, .L2335 - ldr r4, .L2335+4 + ldr r3, .L2346 + ldr r4, .L2346+4 mov fp, #0 movcc r6, #0 movcs r6, #1 str r6, [sp, #24] - ldr r6, .L2335+8 + ldr r6, .L2346+8 ldr r5, [sp, #16] mov sl, r4 str fp, [sp, #40] - str r6, [r3, #440] - b .L2332 -.L2321: + str r6, [r3, #444] + b .L2343 +.L2332: ldrh r1, [r6, #4] cmp r1, #0 - bne .L2297 - ldr r2, .L2335+8 - ldr r3, .L2335+12 + bne .L2308 + ldr r2, .L2346+8 + ldr r3, .L2346+12 cmp r6, r2 - bne .L2298 - ldr r2, .L2335+16 + bne .L2309 + ldr r2, .L2346+16 ldrh r8, [r8, r2] cmp r8, #0 - bne .L2299 - ldr r0, .L2335+20 + bne .L2310 + ldr r0, .L2346+20 str r3, [sp, #4] bl allocate_new_data_superblock ldr r3, [sp, #4] - str r8, [r3, #3004] -.L2299: - ldr r0, .L2335+8 + str r8, [r3, #3100] +.L2310: + ldr r0, .L2346+8 str r3, [sp, #4] bl allocate_new_data_superblock ldr r3, [sp, #4] - ldr r2, [r3, #3004] - ldr r3, .L2335+20 + ldr r2, [r3, #3100] + ldr r3, .L2346+20 cmp r2, #0 movne r6, r3 - b .L2300 -.L2298: - str r1, [r3, #3004] - ldr r3, .L2335+24 + b .L2311 +.L2309: + str r1, [r3, #3100] + ldr r3, .L2346+24 ldrh r3, [r8, r3] cmp r3, #0 movne r6, r2 - bne .L2300 + bne .L2311 mov r0, r6 bl allocate_new_data_superblock -.L2300: +.L2311: ldrh r3, [r6, #4] cmp r3, #0 - bne .L2301 + bne .L2312 mov r0, r6 bl allocate_new_data_superblock -.L2301: - ldr r3, .L2335 - str r6, [r3, #440] -.L2297: - ldr r2, .L2335 +.L2312: + ldr r3, .L2346 + str r6, [r3, #444] +.L2308: + ldr r2, .L2346 mov r8, r6 ldrh r3, [r6, #4] - ldr r1, [r2, #-976] + ldr r1, [r2, #-972] ldr r2, [r4, #3968] rsb r2, r2, r1 cmp r3, r2 @@ -20550,29 +20602,29 @@ ftl_write.part.24: str r3, [sp, #52] mov r3, #0 str r3, [sp, #28] - b .L2302 -.L2318: + b .L2313 +.L2329: ldrh r3, [r8, #4] cmp r3, #0 - beq .L2303 + beq .L2314 ldr r6, [sp, #36] - rsb r2, r6, r5 + rsb lr, r6, r5 ldr r6, [sp, #24] - rsbs r3, r2, #0 - adc r3, r3, r2 + rsbs r3, lr, #0 + adc r3, r3, lr tst r3, r6 - beq .L2304 + beq .L2315 ldr r6, [sp, #28] cmp r6, #0 - beq .L2304 + beq .L2315 movw lr, #3922 ldr r6, [sp, #32] ldrh r2, [r4, lr] add r1, r6, r7 mls r1, r2, r5, r1 cmp r1, r2 - bne .L2303 -.L2304: + bne .L2314 +.L2315: add r1, sp, #56 mov r2, #0 mov r0, r5 @@ -20585,10 +20637,10 @@ ftl_write.part.24: movw r2, #3928 mov ip, #36 ldrh r2, [r4, r2] - ldr r6, .L2335 + ldr r6, .L2346 mla r1, ip, lr, r1 mul lr, lr, r2 - ldr r6, [r6, #-928] + ldr r6, [r6, #-924] bic lr, lr, #3 str r6, [sp, #48] str lr, [sp, #44] @@ -20600,10 +20652,10 @@ ftl_write.part.24: ldrh lr, [r4, r0] ldr r0, [r4, #3968] mul lr, r0, lr - ldr r0, .L2335 + ldr r0, .L2346 bic lr, lr, #3 str lr, [sp, #12] - ldr lr, [r0, #-948] + ldr lr, [r0, #-944] ldr r0, [sp, #12] add lr, lr, r0 mov r0, r6 @@ -20612,17 +20664,17 @@ ftl_write.part.24: str ip, [sp, #8] bl ftl_memset ldr r1, [sp, #16] - ldr ip, [sp, #8] - rsb r3, r1, r5 - rsbs r1, r3, #0 - adc r1, r1, r3 ldr r3, [sp, #4] + rsb ip, r1, r5 + rsbs r1, ip, #0 + adc r1, r1, ip str r1, [sp, #12] orrs r1, r1, r3 - beq .L2305 + ldr ip, [sp, #8] + beq .L2316 ldr r2, [sp, #12] cmp r2, #0 - beq .L2306 + beq .L2317 movw r3, #3922 mov r0, r7 ldrh fp, [r4, r3] @@ -20633,10 +20685,10 @@ ftl_write.part.24: str r1, [sp, #40] cmp fp, r3 movcs fp, r3 - b .L2307 -.L2306: + b .L2318 +.L2317: cmp r3, #0 - beq .L2307 + beq .L2318 ldr r3, [sp, #32] movw lr, #3922 add fp, r3, r7 @@ -20645,11 +20697,11 @@ ftl_write.part.24: ldr r3, [sp, #12] str r3, [sp, #40] uxth fp, fp -.L2307: +.L2318: movw lr, #3922 ldrh r3, [r4, lr] cmp fp, r3 - bne .L2308 + bne .L2319 ldr r3, [sp, #12] ldr r0, [sl, #3968] cmp r3, #0 @@ -20663,16 +20715,16 @@ ftl_write.part.24: mov r3, #36 mla r3, r3, r0, r2 strne r1, [r3, #8] - bne .L2311 + bne .L2322 ldr r0, [r3, #8] movw r3, #3926 ldrh r2, [sl, r3] - b .L2333 -.L2308: + b .L2344 +.L2319: ldr r2, [sp, #56] mov r3, #36 cmn r2, #1 - beq .L2312 + beq .L2323 ldr r1, [r4, #3968] add r0, sp, #60 str r2, [sp, #64] @@ -20688,23 +20740,23 @@ ftl_write.part.24: bl FlashReadPages ldr r3, [sp, #60] cmn r3, #1 - ldr r3, .L2335 + ldr r3, .L2346 ldreq r2, [r3, #-1636] addeq r2, r2, #1 streq r2, [r3, #-1636] - beq .L2314 + beq .L2325 ldr r2, [r6, #8] cmp r2, r5 - beq .L2314 + beq .L2325 ldr r2, [r3, #-1636] - ldr r0, .L2335+28 + ldr r0, .L2346+28 add r2, r2, #1 str r2, [r3, #-1636] mov r2, r5 ldr r1, [r6, #8] bl printk - b .L2314 -.L2312: + b .L2325 +.L2323: ldr r1, [r4, #3968] ldr r2, [r4, #3972] mla r3, r3, r1, r2 @@ -20713,7 +20765,7 @@ ftl_write.part.24: movw r3, #3926 ldrh r2, [r4, r3] bl ftl_memset -.L2314: +.L2325: ldr r3, [sp, #12] ldr r1, [r4, #3968] cmp r3, #0 @@ -20731,22 +20783,22 @@ ftl_write.part.24: ldreq r0, [r3, #8] addne r0, r0, r3, asl #9 addeq r1, r9, r1, asl #9 - b .L2333 -.L2305: + b .L2344 +.L2316: ldr r3, [sp, #24] ldr r2, [r4, #3968] cmp r3, #0 ldr r3, [r4, #3972] mla ip, ip, r2, r3 - beq .L2316 + beq .L2327 movw lr, #3922 ldrh r3, [r4, lr] mul r3, r3, r5 rsb r3, r7, r3 add r3, r9, r3, asl #9 str r3, [ip, #8] - b .L2311 -.L2316: + b .L2322 +.L2327: movw r0, #3922 movw r3, #3926 ldrh r1, [r4, r0] @@ -20755,14 +20807,14 @@ ftl_write.part.24: mul r1, r1, r5 rsb r1, r7, r1 add r1, r9, r1, asl #9 -.L2333: +.L2344: bl memcpy -.L2311: - ldr r3, .L2335+32 +.L2322: + ldr r3, .L2346+32 ldr r0, [sp, #48] ldr lr, [sp, #44] strh r3, [r0, lr] @ movhi - ldr r3, .L2335 + ldr r3, .L2346 str r5, [r6, #8] add r5, r5, #1 ldr r2, [r3, #-1800] @@ -20782,30 +20834,30 @@ ftl_write.part.24: ldr r3, [sp, #28] add r3, r3, #1 str r3, [sp, #28] -.L2302: +.L2313: ldr r6, [sp, #28] ldr r3, [sp, #52] cmp r6, r3 - bne .L2318 -.L2303: + bne .L2329 +.L2314: ldr r3, [sp, #20] mov r6, r8 ldr lr, [sp, #28] ldr r2, [r4, #3968] rsb r3, lr, r3 str r3, [sp, #20] - ldr r3, .L2335 + ldr r3, .L2346 ldr r0, [sp, #24] - ldr r3, [r3, #-976] + ldr r3, [r3, #-972] cmp r2, r3 orrcs r0, r0, #1 uxtb r3, r0 cmp r3, #0 - bne .L2319 + bne .L2330 ldrh r2, [r8, #4] cmp r2, #0 - bne .L2329 -.L2319: + bne .L2340 +.L2330: bl FtlCacheWriteBack ldr lr, [sp, #20] mov r3, #0 @@ -20813,45 +20865,45 @@ ftl_write.part.24: cmp lr, #1 ldr r3, [sp, #24] movls r3, #0 -.L2329: +.L2340: str r3, [sp, #24] -.L2332: +.L2343: ldr r3, [sp, #20] - ldr r8, .L2335 + ldr r8, .L2346 cmp r3, #0 - bne .L2321 + bne .L2332 mov r0, r3 ldr r6, [sp, #36] ldr r3, [sp, #16] rsb r1, r3, r6 bl ftl_do_gc - ldr r3, .L2335+36 + ldr r3, .L2346+36 ldrh r3, [r8, r3] cmp r3, #31 - bhi .L2294 - ldr r2, .L2335+40 + bhi .L2305 + ldr r2, .L2346+40 mov r3, #128 - ldr r5, .L2335+4 + ldr r5, .L2346+4 mov r4, #16 strh r3, [r8, r2] @ movhi sub r2, r2, #2 strh r3, [r8, r2] @ movhi -.L2322: +.L2333: mov r0, #0 mov r1, #1 bl ftl_do_gc ldr r3, [r5, #4040] cmp r3, #0 - bne .L2294 + bne .L2305 subs r4, r4, #1 - bne .L2322 -.L2294: + bne .L2333 +.L2305: mov r0, #0 add sp, sp, #100 ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} -.L2336: +.L2347: .align 2 -.L2335: +.L2346: .word .LANCHOR2 .word .LANCHOR0 .word .LANCHOR2-1996 @@ -20864,7 +20916,7 @@ ftl_write.part.24: .word -2000 .word -1194 .fnend - .size ftl_write.part.24, .-ftl_write.part.24 + .size ftl_write.part.23, .-ftl_write.part.23 .align 2 .global ftl_write .type ftl_write, %function @@ -20876,7 +20928,7 @@ ftl_write: mov r0, r1 mov r1, r2 mov r2, r3 - ldr r3, .L2342 + ldr r3, .L2353 stmfd sp!, {r4, lr} .save {r4, lr} ldr r4, [r3, #4040] @@ -20884,38 +20936,27 @@ ftl_write: movne r0, #0 ldmnefd sp!, {r4, pc} cmp ip, #16 - bne .L2339 + bne .L2350 add r0, r0, #256 ldmfd sp!, {r4, lr} b FtlVendorPartWrite -.L2339: +.L2350: ldr r3, [r3, #3956] add ip, r1, r0 cmp ip, r3 - bhi .L2341 + bhi .L2352 ldmfd sp!, {r4, lr} - b ftl_write.part.24 -.L2341: + b ftl_write.part.23 +.L2352: mvn r0, #0 ldmfd sp!, {r4, pc} -.L2343: +.L2354: .align 2 -.L2342: +.L2353: .word .LANCHOR0 .fnend .size ftl_write, .-ftl_write .align 2 - .global FtlWrite - .type FtlWrite, %function -FtlWrite: - .fnstart - @ args = 0, pretend = 0, frame = 0 - @ frame_needed = 0, uses_anonymous_args = 0 - @ link register save eliminated. - b ftl_write - .fnend - .size FtlWrite, .-FtlWrite - .align 2 .global ftl_sys_write .type ftl_sys_write, %function ftl_sys_write: @@ -21000,271 +21041,299 @@ FlashBootVendorWrite: .type ftl_read, %function ftl_read: .fnstart - @ args = 0, pretend = 0, frame = 64 + @ args = 0, pretend = 0, frame = 56 @ frame_needed = 0, uses_anonymous_args = 0 stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} .save {r4, r5, r6, r7, r8, r9, sl, fp, lr} cmp r0, #16 - .pad #68 - sub sp, sp, #68 - mov r4, r1 + .pad #84 + sub sp, sp, #84 + mov r6, r1 mov r8, r3 - str r2, [sp, #28] - bne .L2350 + str r2, [sp, #48] + bne .L2360 add r0, r1, #256 mov r1, r2 mov r2, r3 bl FtlVendorPartRead - str r0, [sp, #16] - b .L2351 -.L2350: - ldr r3, [sp, #28] - add r3, r3, r1 - str r3, [sp, #20] - ldr r3, .L2380 - ldr r1, [sp, #20] + str r0, [sp, #36] + b .L2361 +.L2360: + ldr r3, .L2391 + ldr r1, [sp, #48] ldr r2, [r3, #3956] + add r1, r1, r6 + str r1, [sp, #40] cmp r1, r2 mvnhi r3, #0 - strhi r3, [sp, #16] - bhi .L2351 + strhi r3, [sp, #36] + bhi .L2361 movw r2, #3922 - mov r0, r4 - ldrh r5, [r3, r2] - mov r1, r5 + mov r0, r6 + ldrh r4, [r3, r2] + mov r1, r4 bl __aeabi_uidiv - ldr r3, [sp, #20] - mov r1, r5 - str r0, [sp, #12] - sub r0, r3, #1 + ldr r2, [sp, #40] + mov r1, r4 + str r0, [sp, #28] + sub r0, r2, #1 bl __aeabi_uidiv - ldr r1, [sp, #12] - rsb r3, r1, #1 ldr r1, [sp, #28] + rsb r3, r1, #1 + ldr r1, [sp, #48] add r3, r3, r0 - str r3, [sp, #8] - ldr r3, .L2380+4 - mov fp, r0 - ldr r0, [sp, #12] + str r3, [sp, #24] + ldr r3, .L2391+4 + str r0, [sp, #32] + ldr r0, [sp, #28] ldr r2, [r3, #-1808] add r2, r1, r2 - ldr r1, [sp, #8] + ldr r1, [sp, #24] str r2, [r3, #-1808] ldr r2, [r3, #-1836] add r2, r1, r2 - mov r1, fp + ldr r1, [sp, #32] str r2, [r3, #-1836] bl FtlCacheMetchLpa cmp r0, #0 - beq .L2352 + beq .L2362 bl FtlCacheWriteBack -.L2352: +.L2362: mov r9, #0 - ldr r6, [sp, #12] - str r9, [sp, #32] - mov r5, r9 - str r9, [sp, #16] - ldr r7, .L2380 - b .L2375 -.L2369: + ldr r5, [sp, #28] + str r9, [sp, #52] + mov r4, r9 + str r9, [sp, #36] + mov r7, r6 + ldr sl, .L2391 + b .L2386 +.L2380: mov r2, #0 - mov r0, r6 - add r1, sp, #60 + mov r0, r5 + add r1, sp, #76 bl log2phys - ldr r2, [sp, #60] + ldr r2, [sp, #76] cmn r2, #1 - bne .L2376 - b .L2379 -.L2357: - mla r0, r0, r6, sl - cmp r0, r4 - bcc .L2356 - ldr r2, [sp, #20] + bne .L2387 + b .L2390 +.L2367: + mla r0, r0, r5, r6 + cmp r0, r7 + bcc .L2366 + ldr r2, [sp, #40] cmp r0, r2 - bcs .L2356 - rsb r0, r4, r0 + bcs .L2366 + rsb r0, r7, r0 mov r1, #0 mov r2, #512 - str r3, [sp, #4] add r0, r8, r0, asl #9 bl ftl_memset - ldr r3, [sp, #4] -.L2356: - add sl, sl, #1 - b .L2354 -.L2379: - mov sl, #0 - movw r3, #3922 -.L2354: - ldrh r0, [r7, r3] - cmp sl, r0 - bcc .L2357 - b .L2358 -.L2376: - ldr r3, .L2380+4 - mov sl, #36 - ldr r1, [r3, #-972] - mla sl, sl, r5, r1 - ldr r1, [sp, #12] - cmp r6, r1 - str r2, [sl, #4] - movw r2, #3922 - bne .L2359 - ldr r3, [r3, #-944] - mov r0, r4 - str r3, [sl, #8] - ldrh r3, [r7, r2] - mov r1, r3 - str r3, [sp, #4] - bl __aeabi_uidivmod - ldr r3, [sp, #4] - str r1, [sp, #36] - rsb r2, r1, r3 +.L2366: + add r6, r6, #1 + b .L2364 +.L2390: + mov r6, #0 + movw fp, #3922 +.L2364: + ldrh r0, [sl, fp] + cmp r6, r0 + bcc .L2367 + b .L2368 +.L2387: + ldr r3, .L2391+4 + mov r6, #36 + ldr r1, [r3, #-968] + mla r6, r6, r4, r1 ldr r1, [sp, #28] - cmp r2, r1 - movcc r1, r2 - str r1, [sp, #32] - cmp r1, r3 - streq r8, [sl, #8] - b .L2360 -.L2359: - cmp r6, fp - ldrneh r3, [r7, r2] - mulne r3, r3, r6 - bne .L2377 + cmp r5, r1 + str r2, [r6, #4] + movw r2, #3922 + bne .L2369 + ldrh fp, [sl, r2] + mov r0, r7 ldr r3, [r3, #-940] - ldrh r2, [r7, r2] - ldr r1, [sp, #20] - str r3, [sl, #8] - mul r3, r2, r6 + mov r1, fp + str r3, [r6, #8] + bl __aeabi_uidivmod + ldr r2, [sp, #48] + rsb r3, r1, fp + str r1, [sp, #56] + cmp r3, r2 + movcc r2, r3 + str r2, [sp, #52] + cmp r2, fp + streq r8, [r6, #8] + b .L2370 +.L2369: + ldr r1, [sp, #32] + cmp r5, r1 + ldrneh r3, [sl, r2] + mulne r3, r3, r5 + bne .L2388 + ldr r3, [r3, #-936] + ldrh r2, [sl, r2] + ldr r1, [sp, #40] + str r3, [r6, #8] + mul r3, r2, r5 rsb r9, r3, r1 cmp r9, r2 - bne .L2360 -.L2377: - rsb r3, r4, r3 + bne .L2370 +.L2388: + rsb r3, r7, r3 add r3, r8, r3, asl #9 - str r3, [sl, #8] -.L2360: + str r3, [r6, #8] +.L2370: movw r3, #3928 - ldr r2, .L2380+4 - ldrh r3, [r7, r3] - str r6, [sl, #16] - ldr r2, [r2, #-932] - mul r3, r3, r5 - add r5, r5, #1 + ldr r2, .L2391+4 + ldrh r3, [sl, r3] + str r5, [r6, #16] + ldr r2, [r2, #-928] + mul r3, r3, r4 + add r4, r4, #1 bic r3, r3, #3 add r3, r2, r3 - str r3, [sl, #12] -.L2358: - ldr r3, [sp, #8] - add r6, r6, #1 - subs r3, r3, #1 - str r3, [sp, #8] - beq .L2362 - movw r3, #3848 - ldrh r3, [r7, r3] - cmp r5, r3, asl #3 - bne .L2375 -.L2362: - cmp r5, #0 - beq .L2375 - ldr sl, .L2380+4 - mov r1, r5 - mov r2, #0 - ldr r0, [sl, #-972] - bl FlashReadPages - ldr r3, [sp, #36] - str r6, [sp, #52] - mov r6, r5 - mov r3, r3, asl #9 - str r3, [sp, #40] - ldr r3, [sp, #32] - mov r3, r3, asl #9 - str r3, [sp, #44] - mov r3, r9, asl #9 - str r3, [sp, #48] - mov r3, #0 - str r3, [sp, #24] + str r3, [r6, #12] .L2368: - ldr r3, [sp, #24] - mov r5, #36 - ldr r1, [sp, #12] - mul r5, r5, r3 - ldr r3, [sl, #-972] - add r3, r3, r5 + ldr r2, [sp, #24] + add r5, r5, #1 + subs r2, r2, #1 + str r2, [sp, #24] + beq .L2372 + movw r3, #3848 + ldrh r3, [sl, r3] + cmp r4, r3, asl #3 + bne .L2386 +.L2372: + cmp r4, #0 + beq .L2386 + ldr r6, .L2391+4 + mov r1, r4 + mov r2, #0 + mov fp, r5 + mov r5, r4 + ldr r0, [r6, #-968] + bl FlashReadPages + ldr r3, [sp, #56] + ldr r1, [sp, #52] + mov r2, r9, asl #9 + str r2, [sp, #68] + mov r3, r3, asl #9 + str r3, [sp, #60] + mov r1, r1, asl #9 + mov r3, #0 + str r1, [sp, #64] + str r3, [sp, #44] +.L2379: + ldr r1, [sp, #44] + mov r4, #36 + ldr r3, [r6, #-968] + mul r4, r4, r1 + ldr r1, [sp, #28] + add r3, r3, r4 ldr r2, [r3, #16] cmp r2, r1 - bne .L2364 + bne .L2374 ldr r1, [r3, #8] - ldr r3, [sl, #-944] + ldr r3, [r6, #-940] cmp r1, r3 - bne .L2365 - ldr r3, [sp, #40] + bne .L2375 + ldr r2, [sp, #60] mov r0, r8 - ldr r2, [sp, #44] - add r1, r1, r3 - b .L2378 -.L2364: - cmp r2, fp - bne .L2365 + add r1, r1, r2 + ldr r2, [sp, #64] + b .L2389 +.L2374: + ldr r1, [sp, #32] + cmp r2, r1 + bne .L2375 ldr r1, [r3, #8] - ldr r3, [sl, #-940] + ldr r3, [r6, #-936] cmp r1, r3 - bne .L2365 + bne .L2375 movw r2, #3922 - ldrh r0, [r7, r2] - ldr r2, [sp, #48] - mul r0, r0, fp - rsb r0, r4, r0 + ldr r3, [sp, #32] + ldrh r0, [sl, r2] + ldr r2, [sp, #68] + mul r0, r0, r3 + rsb r0, r7, r0 add r0, r8, r0, asl #9 -.L2378: +.L2389: bl memcpy -.L2365: - ldr r3, [sl, #-972] - add r0, r3, r5 - ldr r2, [r3, r5] +.L2375: + ldr r2, [r6, #-968] + add r3, r2, r4 + ldr r2, [r2, r4] cmn r2, #1 - streq r2, [sp, #16] - ldreq r1, [sl, #-1636] + streq r2, [sp, #36] + ldreq r1, [r6, #-1636] addeq r1, r1, #1 - streq r1, [sl, #-1636] - ldr r3, [r3, r5] + streq r1, [r6, #-1636] + ldr r2, [r3, #12] + ldr r1, [r3, #16] + ldr r2, [r2, #8] + cmp r1, r2 + beq .L2377 + ldr r2, [r6, #-1636] + ldr r0, .L2391+8 + add r2, r2, #1 + str r2, [r6, #-1636] + ldr ip, [r3, #12] + ldr r2, [r3, #8] + ldr r1, [ip, #4] + str r1, [sp, #0] + ldr r1, [ip, #8] + str r1, [sp, #4] + ldr r1, [ip, #12] + str r1, [sp, #8] + ldr r1, [r2, #0] + str r1, [sp, #12] + ldr r2, [r2, #4] + str r2, [sp, #16] + ldr r1, [r3, #16] + ldr r2, [r3, #4] + ldr r3, [ip, #0] + bl printk +.L2377: + ldr r3, [r6, #-968] + add r2, r3, r4 + ldr r3, [r3, r4] cmp r3, #256 - bne .L2367 - ldr r0, [r0, #4] + bne .L2378 + ldr r0, [r2, #4] ubfx r0, r0, #10, #16 bl P2V_block_in_plane bl FtlGcRefreshBlock -.L2367: - ldr r3, [sp, #24] - add r3, r3, #1 - str r3, [sp, #24] - cmp r3, r6 - bne .L2368 - ldr r6, [sp, #52] - mov r5, #0 -.L2375: - ldr r3, [sp, #8] - cmp r3, #0 - bne .L2369 - ldr r3, .L2380+8 - ldr r2, .L2380+4 +.L2378: + ldr r1, [sp, #44] + add r1, r1, #1 + str r1, [sp, #44] + cmp r1, r5 + bne .L2379 + mov r5, fp + mov r4, #0 +.L2386: + ldr r2, [sp, #24] + cmp r2, #0 + bne .L2380 + ldr r3, .L2391+12 + ldr r2, .L2391+4 ldrh r3, [r2, r3] cmp r3, #0 - beq .L2351 - ldr r0, [sp, #8] + beq .L2361 + ldr r0, [sp, #24] mov r1, #1 bl ftl_do_gc -.L2351: - ldr r0, [sp, #16] - add sp, sp, #68 +.L2361: + ldr r0, [sp, #36] + add sp, sp, #84 ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} -.L2381: +.L2392: .align 2 -.L2380: +.L2391: .word .LANCHOR0 .word .LANCHOR2 - .word -1138 + .word .LC142 + .word -1134 .fnend .size ftl_read, .-ftl_read .align 2 @@ -21363,8 +21432,8 @@ FlashBootVendorRead: .fnend .size FlashBootVendorRead, .-FlashBootVendorRead .align 2 - .type rk_ftl_vendor_ops.constprop.28, %function -rk_ftl_vendor_ops.constprop.28: + .type rk_ftl_vendor_ops.constprop.27, %function +rk_ftl_vendor_ops.constprop.27: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @@ -21374,12 +21443,12 @@ rk_ftl_vendor_ops.constprop.28: mov r2, r3 mov r0, r1 mov r1, #128 - beq .L2388 + beq .L2399 b FlashBootVendorWrite -.L2388: +.L2399: b FlashBootVendorRead .fnend - .size rk_ftl_vendor_ops.constprop.28, .-rk_ftl_vendor_ops.constprop.28 + .size rk_ftl_vendor_ops.constprop.27, .-rk_ftl_vendor_ops.constprop.27 .align 2 .global FtlCheckVpc .type FtlCheckVpc, %function @@ -21390,118 +21459,118 @@ FtlCheckVpc: stmfd sp!, {r0, r1, r2, r4, r5, r6, r7, r8, sl, lr} .save {r0, r1, r2, r4, r5, r6, r7, r8, sl, lr} mov r4, #0 - ldr r1, .L2400 - ldr r0, .L2400+4 + ldr r1, .L2411 + ldr r0, .L2411+4 bl printk - ldr r0, .L2400+8 + ldr r0, .L2411+8 mov r1, #8192 - ldr r6, .L2400+12 + ldr r6, .L2411+12 bl __memzero - ldr r5, .L2400+16 - b .L2390 -.L2392: + ldr r5, .L2411+16 + b .L2401 +.L2403: mov r0, r4 add r1, sp, #4 mov r2, #0 bl log2phys ldr r0, [sp, #4] cmn r0, #1 - beq .L2391 + beq .L2402 ubfx r0, r0, #10, #16 bl P2V_block_in_plane add r0, r5, r0, asl #1 - add r0, r0, #460 + add r0, r0, #464 ldrh r3, [r0, #0] add r3, r3, #1 strh r3, [r0, #0] @ movhi -.L2391: +.L2402: add r4, r4, #1 -.L2390: +.L2401: ldr r3, [r6, #3976] - ldr r7, .L2400+12 + ldr r7, .L2411+12 cmp r4, r3 - bcc .L2392 - ldr r5, .L2400+16 + bcc .L2403 + ldr r5, .L2411+16 mov r6, #3856 - ldr r0, .L2400+20 + ldr r0, .L2411+20 mov r2, #2 ldrh r3, [r7, r6] mov r4, #0 ldr r1, [r5, #-2016] bl rknand_print_hex - ldr r0, .L2400+24 - add r1, r5, #460 + ldr r0, .L2411+24 + add r1, r5, #464 mov r2, #2 ldrh r3, [r7, r6] bl rknand_print_hex - b .L2393 -.L2395: + b .L2404 +.L2406: ldr r2, [r5, #-2016] mov r3, r4, asl #1 ldrh r2, [r2, r3] add r3, r5, r3 - add r3, r3, #460 + add r3, r3, #464 ldrh r3, [r3, #0] cmp r2, r3 - beq .L2394 - ldr r0, .L2400+28 + beq .L2405 + ldr r0, .L2411+28 mov r1, r4 bl printk -.L2394: +.L2405: add r4, r4, #1 uxth r4, r4 -.L2393: +.L2404: ldrh r3, [r7, r6] cmp r3, r4 - ldr r3, .L2400+16 - bhi .L2395 + ldr r3, .L2411+16 + bhi .L2406 ldr r2, [r3, #-2004] cmp r2, #0 - beq .L2389 + beq .L2400 ldr r4, [r3, #-2024] mov r6, #0 - ldr r1, .L2400+32 + ldr r1, .L2411+32 mov r5, r3 rsb r2, r4, r2 - ldr r4, .L2400+36 + ldr r4, .L2411+36 mov r8, #6 movw sl, #65535 mov r2, r2, asr #1 ldrh r7, [r3, r1] mul r4, r4, r2 uxth r4, r4 - b .L2397 -.L2399: + b .L2408 +.L2410: ldr r2, [r5, #-2016] mov r3, r4, asl #1 ldrh r2, [r2, r3] cmp r2, #0 - beq .L2398 + beq .L2409 add r3, r5, r3 - ldr r0, .L2400+40 - add r3, r3, #460 + ldr r0, .L2411+40 + add r3, r3, #464 mov r1, r4 ldrh r3, [r3, #0] bl printk -.L2398: +.L2409: mul r4, r8, r4 ldr r3, [r5, #-2024] ldrh r4, [r3, r4] cmp r4, sl - beq .L2389 + beq .L2400 add r6, r6, #1 uxth r6, r6 -.L2397: +.L2408: cmp r6, r7 - bne .L2399 -.L2389: - ldmfd sp!, {r1, r2, r3, r4, r5, r6, r7, r8, sl, pc} -.L2401: - .align 2 + bne .L2410 .L2400: + ldmfd sp!, {r1, r2, r3, r4, r5, r6, r7, r8, sl, pc} +.L2412: + .align 2 +.L2411: .word .LANCHOR3+77 - .word .LC101 - .word .LANCHOR2+460 + .word .LC102 + .word .LANCHOR2+464 .word .LANCHOR0 .word .LANCHOR2 .word .LC158 @@ -21519,7 +21588,7 @@ HynixGetReadRetryDefault: .fnstart @ args = 0, pretend = 0, frame = 64 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L2487 + ldr r3, .L2498 mvn r2, #83 stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} .save {r4, r5, r6, r7, r8, r9, sl, fp, lr} @@ -21535,16 +21604,16 @@ HynixGetReadRetryDefault: strb r0, [r3, #5] strb r1, [r3, #6] strb r2, [r3, #7] - bne .L2403 + bne .L2414 mvn r2, #88 strb r2, [r3, #4] - ldr r3, .L2487+4 + ldr r3, .L2498+4 mvn r2, #8 - strb r2, [r3, #3025] - b .L2459 -.L2403: + strb r2, [r3, #3121] + b .L2470 +.L2414: cmp r4, #3 - bne .L2405 + bne .L2416 mvn r2, #79 strb r2, [r3, #4] mvn r2, #78 @@ -21560,10 +21629,10 @@ HynixGetReadRetryDefault: mvn r2, #73 strb r2, [r3, #10] mvn r2, #72 - b .L2482 -.L2405: + b .L2493 +.L2416: cmp r4, #4 - bne .L2406 + bne .L2417 mvn ip, #51 strb r0, [r3, #9] strb ip, [r3, #4] @@ -21576,14 +21645,14 @@ HynixGetReadRetryDefault: strb ip, [r3, #7] mvn ip, #50 strb ip, [r3, #8] -.L2482: +.L2493: mov r6, #8 strb r2, [r3, #11] mov r5, r6 - b .L2404 -.L2406: + b .L2415 +.L2417: cmp r4, #5 - bne .L2407 + bne .L2418 mov r2, #56 mov r6, #8 strb r2, [r3, #4] @@ -21593,10 +21662,10 @@ HynixGetReadRetryDefault: strb r2, [r3, #6] mov r2, #59 strb r2, [r3, #7] - b .L2481 -.L2407: + b .L2492 +.L2418: cmp r4, #6 - bne .L2408 + bne .L2419 mov r2, #14 mov r6, #12 strb r2, [r3, #4] @@ -21606,10 +21675,10 @@ HynixGetReadRetryDefault: strb r2, [r3, #6] mov r2, #17 strb r2, [r3, #7] - b .L2481 -.L2408: + b .L2492 +.L2419: cmp r4, #7 - bne .L2459 + bne .L2470 mvn r2, #79 mov r6, #12 strb r2, [r3, #4] @@ -21632,17 +21701,17 @@ HynixGetReadRetryDefault: strb r2, [r3, #12] mvn r2, #42 strb r2, [r3, #13] - b .L2404 -.L2459: + b .L2415 +.L2470: mov r6, #7 -.L2481: +.L2492: mov r5, #4 -.L2404: +.L2415: sub r3, r4, #1 cmp r3, #1 - bhi .L2477 - b .L2485 -.L2415: + bhi .L2488 + b .L2496 +.L2426: add r2, fp, r8 add r4, fp, #20 mov r7, #0 @@ -21654,7 +21723,7 @@ HynixGetReadRetryDefault: ldr r1, [r2, #864] add sl, sl, #8 add sl, r1, sl, asl #8 -.L2411: +.L2422: add r2, fp, r7 str r5, [sl, #8] mov r0, #80 @@ -21668,26 +21737,26 @@ HynixGetReadRetryDefault: ldr r3, [sp, #12] uxtb r2, r7 cmp r2, r6 - bcc .L2411 + bcc .L2422 mov r2, #0 - b .L2412 -.L2413: + b .L2423 +.L2424: ldrb r7, [r0, r1, asl #2] @ zero_extendqisi2 ldrb r5, [r4, r2] @ zero_extendqisi2 add r5, r7, r5 strb r5, [ip, r1, asl #3] add r1, r1, #1 cmp r1, #7 - bne .L2413 + bne .L2424 add r2, r2, #1 cmp r2, #4 - beq .L2414 -.L2412: + beq .L2425 +.L2423: mov r1, #1 add ip, r4, r2 add r0, r2, r9 - b .L2413 -.L2414: + b .L2424 +.L2425: add r8, r8, #1 mov r2, #0 strb r2, [r4, #16] @@ -21698,24 +21767,24 @@ HynixGetReadRetryDefault: strb r2, [r4, #48] strb r2, [r4, #41] strb r2, [r4, #49] - b .L2409 -.L2485: - ldr r9, .L2487+8 + b .L2420 +.L2496: + ldr r9, .L2498+8 mov r3, r6 mov r8, #0 mov r6, r5 -.L2409: - ldr fp, .L2487 +.L2420: + ldr fp, .L2498 ldrb r2, [fp, #3762] @ zero_extendqisi2 cmp r2, r8 - bhi .L2415 + bhi .L2426 mov r5, r6 mov r6, r3 - b .L2416 -.L2477: + b .L2427 +.L2488: sub r3, r4, #3 cmp r3, #4 - bhi .L2416 + bhi .L2427 mul r3, r6, r5 mov sl, #0 mov r7, sl @@ -21724,8 +21793,8 @@ HynixGetReadRetryDefault: mov r3, r3, asl #4 str r2, [sp, #24] str r3, [sp, #52] - b .L2417 -.L2458: + b .L2428 +.L2469: add r3, r1, sl ldrb r6, [r3, #3764] @ zero_extendqisi2 add r3, r1, r6, asl #3 @@ -21750,30 +21819,30 @@ HynixGetReadRetryDefault: cmp r4, #4 mov r3, #54 str r3, [r8, #8] - bne .L2420 + bne .L2431 mov r3, #255 str r3, [r8, #4] mov r3, #64 str r3, [r9, fp, asl #8] mov r3, #204 - b .L2483 -.L2420: + b .L2494 +.L2431: sub r3, r4, #5 cmp r3, #1 - ldrls r3, .L2487 + ldrls r3, .L2498 ldrlsb r3, [r3, #4] @ zero_extendqisi2 strls r3, [r8, #4] movls r3, #82 - bls .L2484 -.L2422: + bls .L2495 +.L2433: mov r3, #174 str r3, [r8, #4] mov r3, #176 str r7, [r9, fp, asl #8] -.L2483: +.L2494: str r3, [r8, #4] mov r3, #77 -.L2484: +.L2495: cmp r4, #6 str r3, [r9, fp, asl #8] mov r0, r6 @@ -21801,88 +21870,88 @@ HynixGetReadRetryDefault: cmp r3, #1 str r3, [sp, #36] movls r1, #16 - bls .L2426 + bls .L2437 cmp r4, #7 moveq r1, #32 movne r1, #2 -.L2426: - ldr r3, .L2487+12 - ldr r2, [r3, #148] +.L2437: + ldr r3, .L2498+12 + ldr r2, [r3, #152] mov r3, #0 -.L2427: +.L2438: ldr r0, [r8, #0] strb r0, [r2, r3] add r3, r3, #1 uxtb r0, r3 cmp r0, r1 - bcc .L2427 + bcc .L2438 cmp r4, #7 - bne .L2428 + bne .L2439 mov r3, #0 -.L2430: +.L2441: ldrb r1, [r2, #0] @ zero_extendqisi2 cmp r1, #12 - beq .L2429 + beq .L2440 ldrb r1, [r2, #1] @ zero_extendqisi2 cmp r1, #10 - beq .L2429 + beq .L2440 add r3, r3, #1 add r2, r2, #4 uxtb r3, r3 cmp r3, #8 - bne .L2430 - b .L2431 -.L2429: + bne .L2441 + b .L2442 +.L2440: cmp r3, #6 - bls .L2432 -.L2431: - ldr r0, .L2487+16 + bls .L2443 +.L2442: + ldr r0, .L2498+16 mov r1, #0 bl printk -.L2433: - b .L2433 -.L2428: +.L2444: + b .L2444 +.L2439: cmp r4, #6 - bne .L2432 + bne .L2443 mov r1, #8 -.L2434: +.L2445: ldrb r3, [r2], #1 @ zero_extendqisi2 cmp r3, #12 - beq .L2432 + beq .L2443 ldrb r3, [r2, #7] @ zero_extendqisi2 cmp r3, #4 - beq .L2432 + beq .L2443 sub r1, r1, #1 uxtb r1, r1 cmp r1, #0 - bne .L2434 - b .L2486 -.L2436: - b .L2436 -.L2432: - ldr r3, .L2487+12 + bne .L2445 + b .L2497 +.L2447: + b .L2447 +.L2443: + ldr r3, .L2498+12 mov r2, #0 - ldr ip, [r3, #148] + ldr ip, [r3, #152] str ip, [sp, #40] -.L2437: +.L2448: ldr r1, [r8, #0] ldr lr, [sp, #40] ldr ip, [sp, #52] strb r1, [lr, r2] add r2, r2, #1 cmp r2, ip - blt .L2437 + blt .L2448 ldr r2, [sp, #24] - ldr r1, [r3, #148] + ldr r1, [r3, #152] mov r3, #8 mov ip, r2, asl #2 mov lr, r2, asl #3 add r1, r1, ip str ip, [sp, #32] -.L2439: +.L2450: mov r2, #0 mov r0, r2 -.L2438: +.L2449: ldr ip, [r1, r2] add r0, r0, #1 mvn ip, ip @@ -21890,14 +21959,14 @@ HynixGetReadRetryDefault: ldr ip, [sp, #24] add r2, r2, #4 cmp r0, ip - blt .L2438 + blt .L2449 subs r3, r3, #1 add r1, r1, lr - bne .L2439 + bne .L2450 str r3, [sp, #16] str sl, [sp, #60] - b .L2440 -.L2444: + b .L2451 +.L2455: mov lr, #1 mov r0, #0 mov ip, lr, asl r2 @@ -21905,7 +21974,7 @@ HynixGetReadRetryDefault: mov sl, #16 str r3, [sp, #4] str sl, [sp, #20] -.L2442: +.L2453: ldr r3, [sp, #56] ldr r3, [r3, r0] and sl, ip, r3 @@ -21916,13 +21985,13 @@ HynixGetReadRetryDefault: subs r3, r3, #1 add r0, r0, sl str r3, [sp, #20] - bne .L2442 + bne .L2453 cmp lr, #8 add r2, r2, #1 orrhi r1, r1, ip cmp r2, #32 ldr r3, [sp, #4] - bne .L2444 + bne .L2455 ldr ip, [sp, #16] ldr r2, [sp, #24] add ip, ip, #1 @@ -21931,50 +22000,50 @@ HynixGetReadRetryDefault: str ip, [sp, #16] str r1, [sl, r3] add r3, r3, #4 - bge .L2445 -.L2440: - ldr sl, .L2487+12 + bge .L2456 +.L2451: + ldr sl, .L2498+12 mov r1, #0 mov r2, r1 - ldr sl, [sl, #148] + ldr sl, [sl, #152] add ip, sl, r3 str ip, [sp, #56] str sl, [sp, #44] - b .L2444 -.L2445: - ldr r3, .L2487+12 + b .L2455 +.L2456: + ldr r3, .L2498+12 ldr sl, [sp, #60] - ldr r1, [r3, #148] + ldr r1, [r3, #152] mov r3, #0 mov r2, r3 -.L2447: +.L2458: ldr r0, [r1, r3] add r3, r3, #4 cmp r0, #0 addeq r2, r2, #1 cmp r3, #32 - bne .L2447 + bne .L2458 cmp r2, #7 - ble .L2448 - ldr r0, .L2487+20 + ble .L2459 + ldr r0, .L2498+20 mov r2, #1 mov r3, #1024 bl rknand_print_hex - ldr r0, .L2487+16 + ldr r0, .L2498+16 mov r1, #0 bl printk -.L2449: - b .L2449 -.L2448: +.L2460: + b .L2460 +.L2459: cmp r4, #6 moveq r0, #4 streq r0, [sp, #16] - beq .L2450 + beq .L2461 cmp r4, #7 moveq lr, #10 movne lr, #8 str lr, [sp, #16] -.L2450: +.L2461: cmp r5, #0 ldr r0, [sp, #40] subne r3, r5, #1 @@ -21985,14 +22054,14 @@ HynixGetReadRetryDefault: ldr r1, [sp, #28] addne r3, r3, #1 strne r3, [sp, #20] - b .L2453 -.L2454: + b .L2464 +.L2465: ldrb lr, [ip], #1 @ zero_extendqisi2 strb lr, [r1, r3] add r3, r3, #1 uxtb lr, r3 cmp lr, r5 - bcc .L2454 + bcc .L2465 ldr r3, [sp, #20] add r2, r2, #1 ldr ip, [sp, #16] @@ -22000,12 +22069,12 @@ HynixGetReadRetryDefault: ldr r3, [sp, #48] add r1, r1, ip cmp r2, r3 - bge .L2455 -.L2453: + bge .L2466 +.L2464: mov ip, r0 mov r3, #0 - b .L2454 -.L2455: + b .L2465 +.L2466: mov r3, #255 mov r0, r6 str r3, [r8, #8] @@ -22014,10 +22083,10 @@ HynixGetReadRetryDefault: cmp ip, #1 movhi r3, #56 strhi r3, [r8, #8] - bhi .L2457 + bhi .L2468 mov r3, #54 str r3, [r8, #8] - ldr r3, .L2487 + ldr r3, .L2498 mov r0, sl mvn r1, #0 ldrb r3, [r3, #4] @ zero_extendqisi2 @@ -22026,33 +22095,33 @@ HynixGetReadRetryDefault: str r7, [r9, fp, asl #8] str r3, [r8, #8] bl FlashReadCmd -.L2457: +.L2468: mov r0, r6 add sl, sl, #1 bl NandcWaitFlashReady uxtb sl, sl -.L2417: - ldr r1, .L2487 +.L2428: + ldr r1, .L2498 ldrb r3, [r1, #3762] @ zero_extendqisi2 cmp r3, sl - bhi .L2458 + bhi .L2469 ldr r6, [sp, #48] -.L2416: - ldr r3, .L2487 +.L2427: + ldr r3, .L2498 strb r5, [r3, #1] strb r6, [r3, #2] add sp, sp, #68 ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} -.L2486: - ldr r0, .L2487+16 +.L2497: + ldr r0, .L2498+16 bl printk - b .L2436 -.L2488: + b .L2447 +.L2499: .align 2 -.L2487: +.L2498: .word .LANCHOR0 .word .LANCHOR1 - .word .LANCHOR1+3008 + .word .LANCHOR1+3104 .word .LANCHOR2 .word .LC162 .word .LC163 @@ -22071,15 +22140,15 @@ FlashGetReadRetryDefault: ldmeqfd sp!, {r3, pc} sub r2, r3, #1 cmp r2, #6 - bhi .L2491 + bhi .L2502 ldmfd sp!, {r3, lr} b HynixGetReadRetryDefault -.L2491: +.L2502: cmp r3, #49 - bne .L2492 - ldr r0, .L2493 + bne .L2503 + ldr r0, .L2504 mov r2, #64 - ldr r1, .L2493+4 + ldr r1, .L2504+4 strb r3, [r0, #0] mov r3, #4 strb r3, [r0, #1] @@ -22088,14 +22157,14 @@ FlashGetReadRetryDefault: add r0, r0, #4 bl memcpy ldmfd sp!, {r3, pc} -.L2492: +.L2503: ldmfd sp!, {r3, lr} - b FlashGetReadRetryDefault.part.27 -.L2494: + b FlashGetReadRetryDefault.part.26 +.L2505: .align 2 -.L2493: +.L2504: .word .LANCHOR0 - .word .LANCHOR1+2924 + .word .LANCHOR1+3020 .fnend .size FlashGetReadRetryDefault, .-FlashGetReadRetryDefault .align 2 @@ -22109,191 +22178,193 @@ FlashInit: .save {r4, r5, r6, r7, r8, lr} mov r7, r0 mov r0, #32768 - ldr r5, .L2546 + ldr r5, .L2557 bl ftl_malloc - ldr r6, .L2546+4 + ldr r6, .L2557+4 mov r4, #0 - str r0, [r5, #148] + str r0, [r5, #152] mov r0, #32768 bl ftl_malloc - str r0, [r5, #136] + str r0, [r5, #140] mov r0, #4096 bl ftl_malloc - str r0, [r5, #228] + str r0, [r5, #232] mov r0, #32768 bl ftl_malloc - str r0, [r5, #220] + str r0, [r5, #224] mov r0, #4096 bl ftl_malloc mov r3, #50 - str r4, [r5, #156] - strb r3, [r5, #164] + str r4, [r5, #160] + strb r3, [r5, #168] strb r3, [r6, #853] mov r3, #128 - str r4, [r5, #168] + str r4, [r5, #172] str r3, [r6, #856] mov r3, #60 strb r4, [r6, #3780] - strb r3, [r5, #152] + strb r3, [r5, #156] strb r4, [r6, #852] - str r0, [r5, #224] + str r0, [r5, #228] mov r0, r7 bl NandcInit - ldr r5, .L2546+8 + ldr r5, .L2557+8 mov r7, #44 -.L2499: +.L2510: uxtb r0, r4 mov r1, r5 bl FlashReadIDRaw cmp r4, #0 - bne .L2496 + bne .L2507 ldrb r3, [r6, #2980] @ zero_extendqisi2 sub r3, r3, #1 uxtb r3, r3 cmp r3, #253 - bhi .L2537 + bhi .L2548 ldrb r3, [r6, #2981] @ zero_extendqisi2 cmp r3, #255 - beq .L2538 -.L2496: + beq .L2549 +.L2507: ldrb r3, [r5, #0] @ zero_extendqisi2 add r4, r4, #1 cmp r3, #181 streqb r7, [r5, #0] cmp r4, #4 add r5, r5, #8 - bne .L2499 - ldr r4, .L2546+4 + bne .L2510 + ldr r4, .L2557+4 ldrb r3, [r4, #2980] @ zero_extendqisi2 cmp r3, #173 - beq .L2500 + beq .L2511 ldr r0, [r4, #3784] bl NandcSetDdrMode -.L2500: - ldr r5, .L2546+4 +.L2511: + ldr r5, .L2557+4 mov r1, #0 mov r2, #852 mov r0, r5 bl ftl_memset - ldr r3, .L2546+12 + ldr r3, .L2557+12 str r3, [r4, #3624] mov r3, #0 strb r3, [r4, #860] ldrb r3, [r4, #2981] @ zero_extendqisi2 cmp r3, #161 cmpne r3, #241 - beq .L2501 + beq .L2512 cmp r3, #218 - beq .L2501 + beq .L2512 cmp r3, #209 - beq .L2501 + beq .L2512 cmp r3, #220 - bne .L2502 + bne .L2513 ldrb r2, [r5, #2983] @ zero_extendqisi2 cmp r2, #149 - bne .L2502 -.L2501: - ldr r2, .L2546+4 + bne .L2513 +.L2512: + ldr r2, .L2557+4 mov r1, #1 mov r0, #16 - ldr ip, .L2546+16 + ldr ip, .L2557+16 strb r1, [r2, #852] - ldr r1, .L2546 + ldr r1, .L2557 strb r0, [r2, #853] - strb r3, [ip, #3038] - strb r0, [r1, #152] + strb r3, [ip, #3134] + strb r0, [r1, #156] ldrb r0, [r2, #2980] @ zero_extendqisi2 cmp r0, #152 - strb r0, [ip, #3037] - bne .L2503 + strb r0, [ip, #3133] + bne .L2514 ldrb r0, [r2, #2984] @ zero_extendqisi2 sxtb r0, r0 cmp r0, #0 movge r0, #24 - strgeb r0, [r1, #152] -.L2503: - ldr r1, [r2, #3776] - ldr r2, .L2546+20 - cmp r1, r2 - ldreq r2, .L2546 + strgeb r0, [r1, #156] +.L2514: + ldr r2, [r2, #3776] + movw r0, #2049 + ldr r1, .L2557+20 + cmp r2, r1 + cmpne r2, r0 + ldreq r2, .L2557 moveq r1, #16 - streqb r1, [r2, #152] + streqb r1, [r2, #156] cmp r3, #218 - bne .L2505 - ldr r3, .L2546+16 - movw r2, #3050 + bne .L2516 + ldr r3, .L2557+16 + movw r2, #3146 mov r1, #2048 strh r1, [r3, r2] @ movhi mvn r2, #37 - b .L2543 -.L2505: + b .L2554 +.L2516: cmp r3, #220 - bne .L2506 - ldr r3, .L2546+16 - movw r2, #3050 + bne .L2517 + ldr r3, .L2557+16 + movw r2, #3146 mov r1, #4096 strh r1, [r3, r2] @ movhi mvn r2, #35 -.L2543: - strb r2, [r3, #3038] -.L2506: - ldr r1, .L2546+24 +.L2554: + strb r2, [r3, #3134] +.L2517: + ldr r1, .L2557+24 mov r2, #32 - ldr r0, .L2546+28 + ldr r0, .L2557+28 bl memcpy - ldr r0, .L2546+12 + ldr r0, .L2557+12 mov r2, #32 add r1, r0, #144 bl memcpy -.L2502: - ldr r4, .L2546+4 +.L2513: + ldr r4, .L2557+4 ldrb r3, [r4, #852] @ zero_extendqisi2 cmp r3, #0 - bne .L2507 + bne .L2518 bl FlashLoadPhyInfoInRam cmp r0, #0 - bne .L2508 + bne .L2519 ldr r3, [r4, #3624] ldrh r0, [r3, #16] ubfx r0, r0, #8, #3 strb r0, [r4, #3772] tst r0, #1 - bne .L2508 + bne .L2519 mov r3, #1 strb r3, [r4, #3780] bl FlashSetInterfaceMode ldrb r0, [r4, #3772] @ zero_extendqisi2 bl NandcSetMode -.L2508: - ldr r4, .L2546+4 +.L2519: + ldr r4, .L2557+4 ldr r3, [r4, #3624] ldrb r3, [r3, #26] @ zero_extendqisi2 strb r3, [r4, #928] bl FlashLoadPhyInfo cmp r0, #0 - beq .L2507 + beq .L2518 ldr r3, [r4, #3784] cmp r3, #0 - beq .L2510 + beq .L2521 mov r0, #1 bl FlashSetInterfaceMode mov r0, #1 - b .L2544 -.L2510: + b .L2555 +.L2521: ldrb r0, [r4, #3772] @ zero_extendqisi2 bl FlashSetInterfaceMode ldrb r0, [r4, #3772] @ zero_extendqisi2 -.L2544: +.L2555: bl NandcSetMode bl FlashLoadPhyInfo cmp r0, #0 - beq .L2507 - ldr r4, .L2546+4 + beq .L2518 + ldr r4, .L2557+4 mov r0, #1 bl FlashSetInterfaceMode mov r0, #1 bl NandcSetMode - ldr r0, .L2546+32 + ldr r0, .L2557+32 ldr r3, [r4, #3624] ldrh r1, [r3, #14] bl printk @@ -22304,38 +22375,38 @@ FlashInit: ldr r3, [r4, #3624] ldrb r0, [r3, #19] @ zero_extendqisi2 bl FlashGetReadRetryDefault - ldr r1, .L2546+36 - ldr r0, .L2546 + ldr r1, .L2557+36 + ldr r0, .L2557 ldr r3, [r4, #3624] ldrh r1, [r0, r1] ldrb r2, [r3, #9] @ zero_extendqisi2 add r1, r1, #4080 add r1, r1, #15 cmp r2, r1, lsr #12 - blt .L2513 + blt .L2524 ldrh r1, [r3, #14] add r1, r1, #255 cmp r2, r1, lsr #8 - bge .L2514 -.L2513: + bge .L2525 +.L2524: ldrh r2, [r3, #14] bic r2, r2, #255 strh r2, [r3, #14] @ movhi -.L2514: - ldr r3, .L2546+4 +.L2525: + ldr r3, .L2557+4 ldrb r3, [r3, #3772] @ zero_extendqisi2 tst r3, #6 - beq .L2515 + beq .L2526 bl FlashSavePhyInfo - ldr r3, .L2546 + ldr r3, .L2557 mov r0, #0 - ldr r1, [r3, #160] + ldr r1, [r3, #164] bl FlashDdrParaScan -.L2515: +.L2526: bl FlashSavePhyInfo -.L2507: - ldr r4, .L2546+4 - ldr r5, .L2546 +.L2518: + ldr r4, .L2557+4 + ldr r5, .L2557 ldr r3, [r4, #3624] ldrb r2, [r3, #26] @ zero_extendqisi2 ldrh r0, [r3, #10] @@ -22345,14 +22416,14 @@ FlashInit: ubfx r1, r2, #7, #1 strb r1, [r4, #860] ubfx r1, r2, #3, #1 - strb r1, [r5, #176] + strb r1, [r5, #180] ubfx r1, r2, #4, #1 ubfx r2, r2, #8, #3 strb r1, [r4, #3837] strb r2, [r4, #3772] mov r2, #0 ldrb r1, [r3, #12] @ zero_extendqisi2 - str r2, [r5, #172] + str r2, [r5, #176] bl __aeabi_idiv mov r1, r0 mov r0, r6 @@ -22361,157 +22432,157 @@ FlashInit: ldr r3, [r4, #3624] ldrh r2, [r3, #16] tst r2, #64 - beq .L2516 + beq .L2527 ldrb r0, [r3, #19] @ zero_extendqisi2 ldrb r3, [r4, #1] @ zero_extendqisi2 strb r0, [r4, #3761] strb r3, [r4, #3760] ldrb r3, [r4, #2] @ zero_extendqisi2 - strb r3, [r5, #140] + strb r3, [r5, #144] sub r3, r0, #1 uxtb r3, r3 cmp r3, #6 - bhi .L2517 - ldr r3, .L2546+40 - str r3, [r5, #172] + bhi .L2528 + ldr r3, .L2557+40 + str r3, [r5, #176] sub r3, r0, #5 uxtb r3, r3 cmp r3, #1 movls r3, #1 strls r3, [r4, #3828] - bls .L2519 + bls .L2530 cmp r0, #7 addeq r4, r4, #28 - beq .L2520 -.L2519: - ldr r4, .L2546+44 -.L2520: + beq .L2531 +.L2530: + ldr r4, .L2557+44 +.L2531: mov r3, #0 mov r2, r3 -.L2522: +.L2533: ldrsb r1, [r4, r2] add r2, r2, #1 cmp r1, #0 addeq r3, r3, #1 cmp r2, #32 - bne .L2522 + bne .L2533 cmp r3, #27 - bls .L2516 + bls .L2527 bl FlashGetReadRetryDefault bl FlashSavePhyInfo - b .L2516 -.L2517: + b .L2527 +.L2528: sub r3, r0, #17 uxtb r3, r3 cmp r3, #2 - bhi .L2523 - ldr r3, .L2546+48 + bhi .L2534 + ldr r3, .L2557+48 cmp r0, #19 - str r3, [r5, #172] + str r3, [r5, #176] mov r3, #7 - strb r3, [r5, #140] + strb r3, [r5, #144] moveq r3, #15 - streqb r3, [r5, #140] - b .L2516 -.L2523: + streqb r3, [r5, #144] + b .L2527 +.L2534: cmp r0, #33 cmpne r0, #65 - beq .L2524 + beq .L2535 cmp r0, #66 - bne .L2525 -.L2524: - ldr r3, .L2546 + bne .L2536 +.L2535: + ldr r3, .L2557 mov r1, #4 - ldr r2, .L2546+52 - str r2, [r3, #172] - ldr r2, .L2546+4 + ldr r2, .L2557+52 + str r2, [r3, #176] + ldr r2, .L2557+4 strb r1, [r2, #3760] mov r2, #7 - strb r2, [r3, #140] - b .L2516 -.L2525: + strb r2, [r3, #144] + b .L2527 +.L2536: cmp r0, #67 cmpne r0, #34 - beq .L2526 + beq .L2537 cmp r0, #35 - beq .L2526 + beq .L2537 cmp r0, #68 - bne .L2527 -.L2526: - ldr r3, .L2546 + bne .L2538 +.L2537: + ldr r3, .L2557 cmp r0, #35 cmpne r0, #68 - ldr r2, .L2546+52 + ldr r2, .L2557+52 sub r0, r0, #67 uxtb r0, r0 - str r2, [r3, #172] + str r2, [r3, #176] mov r2, #7 - strb r2, [r3, #140] + strb r2, [r3, #144] moveq r2, #17 - streqb r2, [r3, #140] + streqb r2, [r3, #144] cmp r0, #1 - ldr r3, .L2546+4 + ldr r3, .L2557+4 movls r2, #4 movhi r2, #5 strb r2, [r3, #3760] - b .L2516 -.L2527: + b .L2527 +.L2538: cmp r0, #49 - ldreq r3, .L2546+56 - streq r3, [r5, #172] -.L2516: - ldr r2, .L2546+4 - ldr r3, .L2546+20 + ldreq r3, .L2557+56 + streq r3, [r5, #176] +.L2527: + ldr r2, .L2557+4 + ldr r3, .L2557+20 ldr r1, [r2, #3776] cmp r1, r3 - bne .L2530 + bne .L2541 ldrb r3, [r2, #928] @ zero_extendqisi2 cmp r3, #0 ldrne r3, [r2, #3624] movne r1, #0 strneb r1, [r3, #18] -.L2530: +.L2541: ldrb r2, [r2, #2980] @ zero_extendqisi2 - ldr r3, .L2546+4 + ldr r3, .L2557+4 cmp r2, #44 - bne .L2531 + bne .L2542 ldrb r2, [r3, #3780] @ zero_extendqisi2 cmp r2, #0 - beq .L2531 + beq .L2542 ldr r1, [r3, #3776] - ldr r2, .L2546+20 + ldr r2, .L2557+20 cmp r1, r2 - bne .L2532 + bne .L2543 ldrb r3, [r3, #928] @ zero_extendqisi2 cmp r3, #0 - bne .L2531 -.L2532: - ldr r3, .L2546+4 + bne .L2542 +.L2543: + ldr r3, .L2557+4 mov r2, #0 mov r0, #1 strb r2, [r3, #3780] bl FlashSetInterfaceMode mov r0, #1 bl NandcSetMode -.L2531: +.L2542: mov r0, #0 bl flash_enter_slc_mode - ldr r2, .L2546+4 + ldr r2, .L2557+4 ldrb r3, [r2, #3772] @ zero_extendqisi2 tst r3, #6 - beq .L2533 + beq .L2544 ldrb r2, [r2, #3780] @ zero_extendqisi2 cmp r2, #0 - bne .L2534 + bne .L2545 tst r3, #1 - bne .L2533 -.L2534: - ldr r3, .L2546 + bne .L2544 +.L2545: + ldr r3, .L2557 mov r0, #0 - ldr r1, [r3, #160] + ldr r1, [r3, #164] bl FlashDdrParaScan -.L2533: - ldr r4, .L2546+4 +.L2544: + ldr r4, .L2557+4 mov r0, #0 bl flash_exit_slc_mode mov r8, #16 @@ -22521,7 +22592,7 @@ FlashInit: bl FlashBchSel add r0, r4, #932 bl FlashReadIdbDataRaw - ldr r0, .L2546+60 + ldr r0, .L2557+60 strb r8, [r4, #853] bl FlashTimingCfg ldr r5, [r4, #3624] @@ -22565,7 +22636,7 @@ FlashInit: ldrb lr, [r4, #852] @ zero_extendqisi2 strh r1, [r4, r2] @ movhi cmp lr, #1 - bne .L2536 + bne .L2547 mov r7, r7, lsr #1 mov ip, ip, asl #1 mov r1, r1, asl #1 @@ -22575,31 +22646,31 @@ FlashInit: strh r7, [r4, r6] @ movhi strh ip, [r4, r0] @ movhi strh r2, [r4, r3] @ movhi -.L2536: +.L2547: ldrb r0, [r5, #20] @ zero_extendqisi2 bl FlashBchSel bl ftl_flash_suspend mov r0, #0 ldmfd sp!, {r4, r5, r6, r7, r8, pc} -.L2537: +.L2548: mvn r0, #1 ldmfd sp!, {r4, r5, r6, r7, r8, pc} -.L2538: +.L2549: mvn r0, #1 ldmfd sp!, {r4, r5, r6, r7, r8, pc} -.L2547: +.L2558: .align 2 -.L2546: +.L2557: .word .LANCHOR2 .word .LANCHOR0 .word .LANCHOR0+2980 - .word .LANCHOR1+2892 + .word .LANCHOR1+2988 .word .LANCHOR1 .word 1446522928 - .word .LANCHOR1+2796 + .word .LANCHOR1+2892 .word .LANCHOR0+896 .word .LC164 - .word -894 + .word -890 .word HynixReadRetrial .word .LANCHOR0+20 .word MicronReadRetrial @@ -22619,41 +22690,41 @@ rk_ftl_init: .save {r4, r5, r6, lr} mov r0, #2048 bl ftl_malloc - ldr r4, .L2552 - ldr r6, .L2552+4 + ldr r4, .L2563 + ldr r6, .L2563+4 mov r5, #0 mov r1, r6 - str r5, [r1, #472]! - str r0, [r6, #468] + str r5, [r1, #476]! + str r0, [r6, #472] mov r0, r4 - str r5, [r0, #132]! + str r5, [r0, #136]! bl rknand_get_reg_addr - ldr r3, [r4, #132] + ldr r3, [r4, #136] cmp r3, r5 mvneq r4, #0 - beq .L2549 + beq .L2560 bl rk_nandc_irq_init mov r1, r5 mov r2, r5 mov r3, #2048 - ldr r0, [r6, #468] + ldr r0, [r6, #472] bl FlashSramLoadStore bl rknand_flash_cs_init - ldr r0, [r4, #132] + ldr r0, [r4, #136] bl FlashInit subs r4, r0, #0 - bne .L2550 + bne .L2561 bl FtlInit -.L2550: - ldr r0, .L2552+8 +.L2561: + ldr r0, .L2563+8 mov r1, r4 bl printk -.L2549: +.L2560: mov r0, r4 ldmfd sp!, {r4, r5, r6, pc} -.L2553: +.L2564: .align 2 -.L2552: +.L2563: .word .LANCHOR2 .word .LANCHOR4 .word .LC165 @@ -22666,7 +22737,7 @@ FtlReInitForSDUpdata: .fnstart @ args = 0, pretend = 0, frame = 16 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L2579 + ldr r3, .L2590 stmfd sp!, {r4, r5, lr} .save {r4, r5, lr} .pad #20 @@ -22674,22 +22745,22 @@ FtlReInitForSDUpdata: ldrb r4, [r3, #928] @ zero_extendqisi2 cmp r4, #0 movne r0, #0 - bne .L2555 - ldr r5, .L2579+4 - ldr r0, [r5, #132] + bne .L2566 + ldr r5, .L2590+4 + ldr r0, [r5, #136] bl FlashInit cmp r0, #0 movne r0, r4 - bne .L2555 + bne .L2566 bl FlashLoadFactorBbt cmp r0, #0 - beq .L2556 + beq .L2567 bl FlashMakeFactorBbt -.L2556: - ldr r0, [r5, #136] +.L2567: + ldr r0, [r5, #140] bl FlashReadIdbDataRaw cmp r0, #0 - beq .L2557 + beq .L2568 mov r1, #0 mov r2, #16 mov r0, sp @@ -22698,77 +22769,77 @@ FtlReInitForSDUpdata: mov r3, #0 mov r0, #1 mov r2, r3 -.L2559: +.L2570: ands ip, r1, r0, asl r2 add r2, r2, #1 addne r3, r3, #1 cmp r2, #16 - bne .L2559 + bne .L2570 cmp r3, #6 - ldrls r3, .L2579 - bls .L2575 + ldrls r3, .L2590 + bls .L2586 mov r2, #0 mov r0, #1 -.L2560: +.L2571: ands ip, r1, r0, asl r2 add r2, r2, #1 addne r3, r3, #1 cmp r2, #24 - bne .L2560 + bne .L2571 cmp r3, #17 - ldr r3, .L2579 + ldr r3, .L2590 movhi r2, #36 -.L2575: +.L2586: strb r2, [r3, #853] movw r2, #3074 - ldr r3, .L2579 + ldr r3, .L2590 ldrb r1, [r3, #853] @ zero_extendqisi2 strh r1, [r3, r2] @ movhi -.L2557: - ldr r1, .L2579+8 +.L2568: + ldr r1, .L2590+8 mov r4, #1 - ldr r0, .L2579+12 + ldr r0, .L2590+12 bl printk - ldr r0, .L2579+16 + ldr r0, .L2590+16 bl FtlConstantsInit bl FtlVariablesInit - ldr r3, .L2579 + ldr r3, .L2590 ldr r0, [r3, #3852] uxth r0, r0 bl FtlFreeSysBlkQueueInit - b .L2564 -.L2566: + b .L2575 +.L2577: add r4, r4, #1 -.L2564: +.L2575: bl FtlLoadBbt cmp r0, #0 - bne .L2577 -.L2565: + bne .L2588 +.L2576: bl FtlSysBlkInit cmp r0, #0 - beq .L2567 -.L2577: + beq .L2578 +.L2588: bl FtlLowFormat cmp r4, #3 - bls .L2566 - b .L2578 -.L2567: - ldr r3, .L2579+20 - mov r2, #1 - str r2, [r3, #2996] - b .L2555 + bls .L2577 + b .L2589 .L2578: + ldr r3, .L2590+20 + mov r2, #1 + str r2, [r3, #3092] + b .L2566 +.L2589: mvn r0, #0 -.L2555: +.L2566: add sp, sp, #20 ldmfd sp!, {r4, r5, pc} -.L2580: +.L2591: .align 2 -.L2579: +.L2590: .word .LANCHOR0 .word .LANCHOR2 - .word .LC79 .word .LC78 + .word .LC77 .word .LANCHOR0+3048 .word .LANCHOR1 .fnend @@ -22781,15 +22852,15 @@ flash_boot_enter_slc_mode: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L2583 + ldr r3, .L2594 ldr r2, [r3, #3776] - ldr r3, .L2583+4 + ldr r3, .L2594+4 cmp r2, r3 bxne lr b flash_enter_slc_mode -.L2584: +.L2595: .align 2 -.L2583: +.L2594: .word .LANCHOR0 .word 1446522928 .fnend @@ -22802,15 +22873,15 @@ flash_boot_exit_slc_mode: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L2587 + ldr r3, .L2598 ldr r2, [r3, #3776] - ldr r3, .L2587+4 + ldr r3, .L2598+4 cmp r2, r3 bxne lr b flash_exit_slc_mode -.L2588: +.L2599: .align 2 -.L2587: +.L2598: .word .LANCHOR0 .word 1446522928 .fnend @@ -22824,13 +22895,13 @@ IdBlockReadData: stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} .save {r4, r5, r6, r7, r8, r9, sl, fp, lr} mov r4, r0 - ldr r5, .L2593 + ldr r5, .L2604 mov fp, r1 .pad #28 sub sp, sp, #28 mov r1, r4 mov sl, r2 - ldr r0, .L2593+4 + ldr r0, .L2604+4 ldr r3, [r5, #3624] mov r2, fp mov r9, r5 @@ -22848,8 +22919,8 @@ IdBlockReadData: mul r2, r7, r8 str r1, [sp, #16] ubfx r2, r2, #2, #2 - b .L2590 -.L2592: + b .L2601 +.L2603: add r1, r6, r8 ldrb r0, [r5, #928] @ zero_extendqisi2 ubfx r1, r1, #2, #16 @@ -22860,12 +22931,12 @@ IdBlockReadData: add r3, r3, #3072 add r3, r3, #4 ldrh r3, [r3, #0] - beq .L2591 + beq .L2602 ldr r0, [r5, #3776] - ldr lr, .L2593+8 + ldr lr, .L2604+8 cmp r0, lr moveq r3, r1 -.L2591: +.L2602: ldr r1, [sp, #16] add r2, r2, r1 mla r2, r7, r3, r2 @@ -22873,8 +22944,8 @@ IdBlockReadData: ldrb r1, [r3, #9] @ zero_extendqisi2 ldrb r3, [r9, #3836] @ zero_extendqisi2 str r3, [sp, #20] - ldr r3, .L2593+12 - ldrb r0, [r3, #152] @ zero_extendqisi2 + ldr r3, .L2604+12 + ldrb r0, [r3, #156] @ zero_extendqisi2 str ip, [sp, #4] str r1, [sp, #8] str r2, [sp, #12] @@ -22899,20 +22970,20 @@ IdBlockReadData: add r6, ip, r6 add sl, sl, ip, asl #9 uxth r6, r6 -.L2590: +.L2601: cmp r6, fp - bcc .L2592 + bcc .L2603 mov r1, r4 mov r2, fp mov r3, #0 - ldr r0, .L2593+16 + ldr r0, .L2604+16 bl printk mov r0, #0 add sp, sp, #28 ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} -.L2594: +.L2605: .align 2 -.L2593: +.L2604: .word .LANCHOR0 .word .LC166 .word 1446522928 @@ -22927,7 +22998,7 @@ IDBlockWriteData: .fnstart @ args = 0, pretend = 0, frame = 88 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L2603 + ldr r3, .L2614 stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} .save {r4, r5, r6, r7, r8, r9, sl, fp, lr} mov r5, r0 @@ -22937,7 +23008,7 @@ IDBlockWriteData: sub sp, sp, #92 mov r1, r5 mov sl, r2 - ldr r0, .L2603+4 + ldr r0, .L2614+4 ldrb r6, [r3, #9] @ zero_extendqisi2 mov r2, fp ldrh r7, [r3, #10] @@ -22955,14 +23026,14 @@ IDBlockWriteData: bl FlashEraseBlock cmp fp, r7 movls r8, #1 - bls .L2596 + bls .L2607 mov r0, #0 add r1, r7, r5 mov r2, r0 mov r8, #2 bl FlashEraseBlock -.L2596: - ldr r4, .L2603 +.L2607: + ldr r4, .L2614 mov r0, #0 bl flash_boot_exit_slc_mode ldr r3, [r4, #3624] @@ -22982,12 +23053,12 @@ IDBlockWriteData: rsb r1, r1, r5 mov r7, ip str r1, [sp, #12] - b .L2597 -.L2601: + b .L2608 +.L2612: add r3, r8, r7 ubfx r3, r3, #2, #16 cmp r3, #0 - beq .L2598 + beq .L2609 add r1, r3, #1 ldrb r0, [r4, #928] @ zero_extendqisi2 add r2, r4, r1, asl #1 @@ -22995,16 +23066,16 @@ IDBlockWriteData: add r2, r2, #3072 add r2, r2, #4 ldrh r2, [r2, #0] - beq .L2599 + beq .L2610 ldr r0, [r4, #3776] - ldr ip, .L2603+8 + ldr ip, .L2614+8 cmp r0, ip moveq r2, r1 -.L2599: +.L2610: sub r2, r2, #-1073741823 mov r2, r2, asl #2 str r2, [sp, #24] -.L2598: +.L2609: movw r2, #61424 str r2, [sp, #28] add r2, r4, r3, asl #1 @@ -23012,19 +23083,19 @@ IDBlockWriteData: ldrh r5, [r2, #4] ldrb r2, [r4, #928] @ zero_extendqisi2 cmp r2, #0 - beq .L2600 + beq .L2611 ldr r2, [r4, #3776] - ldr r1, .L2603+8 + ldr r1, .L2614+8 cmp r2, r1 moveq r5, r3 -.L2600: +.L2611: ldr ip, [sp, #12] add r8, r8, #4 - ldr r2, .L2603+12 + ldr r2, .L2614+12 uxth r8, r8 mla r3, r6, r5, ip ldrb ip, [r9, #3836] @ zero_extendqisi2 - ldrb r0, [r2, #152] @ zero_extendqisi2 + ldrb r0, [r2, #156] @ zero_extendqisi2 str ip, [sp, #4] str r3, [sp, #8] bl FlashBchSel @@ -23054,22 +23125,22 @@ IDBlockWriteData: mov r1, r0 mov r0, #0 bl FlashPageProgMsbFFData -.L2597: +.L2608: ldr ip, [sp, #16] cmp r8, ip - bcc .L2601 + bcc .L2612 ldr r5, [sp, #20] mov r2, fp mov r3, #0 - ldr r0, .L2603+16 + ldr r0, .L2614+16 mov r1, r5 bl printk mov r0, #0 add sp, sp, #92 ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} -.L2604: +.L2615: .align 2 -.L2603: +.L2614: .word .LANCHOR0 .word .LC168 .word 1446522928 @@ -23085,7 +23156,7 @@ write_idblock: .fnstart @ args = 0, pretend = 0, frame = 24 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L2629 + ldr r3, .L2641 stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} .save {r4, r5, r6, r7, r8, r9, sl, fp, lr} mov r5, r0 @@ -23099,16 +23170,20 @@ write_idblock: ldrh sl, [r3, #10] bl ftl_malloc subs r9, r0, #0 - beq .L2623 + beq .L2635 add r5, r5, #508 add r5, r5, #3 mov r5, r5, lsr #9 cmp r5, #8 movls r5, #8 - bls .L2607 + bls .L2618 cmp r5, #500 - bhi .L2623 -.L2607: + bhi .L2635 +.L2618: + ldr r2, [r6, #0] + ldr r3, .L2641+4 + cmp r2, r3 + bne .L2635 mul sl, sl, r4 uxth sl, sl sub r0, sl, #1 @@ -23121,10 +23196,10 @@ write_idblock: str r0, [sp, #20] add r0, r6, #254976 add r0, r0, #1020 -.L2612: +.L2623: ldr r1, [r0], #-4 cmp r1, #0 - bne .L2608 + bne .L2619 ldr r1, [r6, r3, asl #2] add r3, r3, #1 cmp r3, ip @@ -23132,29 +23207,29 @@ write_idblock: movcs r3, #0 cmp r2, #4096 str r1, [r0, #4] - bne .L2612 - b .L2611 -.L2608: - ldr r0, .L2629+4 + bne .L2623 + b .L2622 +.L2619: + ldr r0, .L2641+8 bl printk -.L2611: - ldr r4, .L2629 +.L2622: + ldr r4, .L2641 mov r1, r7 mov r3, #5 - ldr r0, .L2629+8 + ldr r0, .L2641+12 mov r2, #4 mov r8, r5 bl rknand_print_hex ldrb r2, [r4, #853] @ zero_extendqisi2 ldr r1, [r6, #512] - ldr r0, .L2629+12 + ldr r0, .L2641+16 bl printk - ldr r2, .L2629+16 + ldr r2, .L2641+20 movw r3, #3074 mov r1, r5 ldrh r3, [r4, r3] - ldr r2, [r2, #156] - ldr r0, .L2629+20 + ldr r2, [r2, #160] + ldr r0, .L2641+24 str r2, [sp, #0] mov r2, r5 bl printk @@ -23169,16 +23244,16 @@ write_idblock: strhi r3, [r6, #512] str r2, [sp, #16] str r2, [sp, #12] -.L2620: - ldr r1, .L2629 +.L2631: + ldr r1, .L2641 ldr r3, [r4], #4 ldrb r2, [r1, #853] @ zero_extendqisi2 cmp r3, r2 - bcs .L2614 - ldr r1, .L2629+16 - ldr r2, [r1, #156] + bcs .L2625 + ldr r1, .L2641+20 + ldr r2, [r1, #160] cmp r3, r2 - bcc .L2614 + bcc .L2625 ldr r2, [sp, #20] ldr r1, [sp, #12] cmp r2, #1 @@ -23188,12 +23263,12 @@ write_idblock: ldr r2, [sp, #20] cmp r1, #0 cmpne r2, #1 - bls .L2615 + bls .L2626 ldr r2, [r4, #-8] add r2, r2, #1 cmp r3, r2 - beq .L2614 -.L2615: + beq .L2625 +.L2626: mov r0, r9 mov r1, #512 bl __memzero @@ -23210,7 +23285,7 @@ write_idblock: bl IdBlockReadData mov r2, r9 mov r3, r7 -.L2619: +.L2630: mov fp, r2 mov r5, r3 ldr r0, [fp, #0] @@ -23218,13 +23293,13 @@ write_idblock: ldr r1, [r5, #0] add r3, r3, #4 cmp r0, r1 - beq .L2616 + beq .L2627 mov r0, r9 mov r1, #512 bl __memzero ldr r3, [fp, #0] ldr r1, [sp, #12] - ldr r0, .L2629+24 + ldr r0, .L2641+28 str r3, [sp, #0] ldr r3, [r5, #0] bic r5, r6, #255 @@ -23233,7 +23308,7 @@ write_idblock: mov r3, r6 ldr r2, [r4, #-4] bl printk - ldr r0, .L2629+28 + ldr r0, .L2641+32 add r1, r7, r5 mov r2, #4 mov r3, #256 @@ -23241,7 +23316,7 @@ write_idblock: mov r3, #256 add r1, r9, r5 mov r2, #4 - ldr r0, .L2629+32 + ldr r0, .L2641+36 bl rknand_print_hex mov r0, #0 bl flash_boot_enter_slc_mode @@ -23252,54 +23327,55 @@ write_idblock: bl FlashEraseBlock ldr r3, [sp, #28] cmp r3, #0 - beq .L2617 + beq .L2628 ldr r1, [r4, #-4] mov r0, #0 mov r2, r0 add r1, r1, #1 mul r1, sl, r1 bl FlashEraseBlock -.L2617: +.L2628: mov r0, #0 bl flash_boot_exit_slc_mode ldr r1, [r4, #-4] - ldr r0, .L2629+36 + ldr r0, .L2641+40 bl printk ldr r1, [sp, #24] cmp r6, r1 - bcc .L2614 - b .L2618 -.L2616: + bcc .L2625 + b .L2629 +.L2627: ldr r1, [sp, #24] add r6, r6, #1 cmp r6, r1 - bne .L2619 -.L2618: + bne .L2630 +.L2629: ldr r2, [sp, #16] add r2, r2, #1 str r2, [sp, #16] -.L2614: +.L2625: ldr r3, [sp, #12] add r3, r3, #1 str r3, [sp, #12] cmp r3, #5 - bne .L2620 + bne .L2631 mov r0, r9 bl ftl_free ldr r1, [sp, #16] cmp r1, #0 mvneq r0, #0 movne r0, #0 - b .L2606 -.L2623: + b .L2617 +.L2635: mvn r0, #0 -.L2606: +.L2617: add sp, sp, #36 ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} -.L2630: +.L2642: .align 2 -.L2629: +.L2641: .word .LANCHOR0 + .word -52655045 .word .LC170 .word .LC171 .word .LC172 @@ -23323,33 +23399,200 @@ CRC_32: stmfd sp!, {r4, lr} .save {r4, lr} mov r2, r0 - ldr ip, .L2634 - b .L2632 -.L2633: + ldr ip, .L2646 + b .L2644 +.L2645: ldrb r4, [r3, r2] @ zero_extendqisi2 add r2, r2, #1 eor r4, r4, r0, lsr #24 add r4, ip, r4, asl #2 - ldr r4, [r4, #3068] + ldr r4, [r4, #3164] eor r0, r4, r0, asl #8 -.L2632: +.L2644: cmp r2, r1 - bne .L2633 + bne .L2645 ldmfd sp!, {r4, pc} -.L2635: +.L2647: .align 2 -.L2634: +.L2646: .word .LANCHOR1 .fnend .size CRC_32, .-CRC_32 .align 2 + .global write_loader_lba + .type write_loader_lba, %function +write_loader_lba: + .fnstart + @ args = 0, pretend = 0, frame = 32 + @ frame_needed = 0, uses_anonymous_args = 0 + cmp r0, #64 + stmfd sp!, {r4, r5, r6, r7, r8, lr} + .save {r4, r5, r6, r7, r8, lr} + mov r4, r0 + .pad #32 + sub sp, sp, #32 + mov r6, r1 + mov r7, r2 + bne .L2649 + ldr r2, [r2, #0] + ldr r3, .L2665 + cmp r2, r3 + bne .L2649 + ldr r5, .L2665+4 + mov r3, #1 + mov r0, #256000 + strb r3, [r5, #480] + bl ftl_malloc + mov r1, #0 + mov r2, #256000 + str r0, [r5, #484] + bl ftl_memset + str r4, [r5, #488] +.L2649: + ldr r3, .L2665+4 + ldrb r2, [r3, #480] @ zero_extendqisi2 + cmp r2, #0 + beq .L2648 + sub r0, r4, #64 + ldr r5, [r3, #484] + cmp r0, #500 + bcs .L2651 + rsb r2, r4, #564 + add r0, r5, r0, asl #9 + cmp r6, r2 + movcc r2, r6 + mov r1, r7 + mov r2, r2, asl #9 + bl memcpy + b .L2652 +.L2651: + cmp r4, #564 + bcc .L2652 + ldr r0, [r3, #488] + ldr r3, .L2665+8 + sub r0, r0, #64 + cmp r0, #500 + movcs r0, #500 + ldr r3, [r3, #3624] + ldrb r3, [r3, #9] @ zero_extendqisi2 + cmp r3, #4 + beq .L2662 + mov r3, #4 + mov r1, #2 + mov r2, #3 + mov r7, #5 + stmia sp, {r1, r2, r3, r7} + mov r3, #6 + str r3, [sp, #16] + b .L2654 +.L2662: + mov r1, #0 + mov r2, r1 +.L2653: + cmp r0, #256 + strls r2, [sp, r1] + movhi r3, r2, asl #1 + add r2, r2, #1 + strhi r3, [sp, r1] + cmp r2, #5 + add r1, r1, #4 + bne .L2653 +.L2654: + ldr r3, .L2665+4 + ldr r2, [r3, #492] + movw r3, #63999 +.L2659: + ldrb r1, [r2, r3] @ zero_extendqisi2 + cmp r1, #0 + addne r3, r3, #1 + movne r0, r3, asl #2 + bne .L2658 +.L2657: + sub r3, r3, #1 + cmp r3, #4096 + bne .L2659 + mov r0, r0, asl #9 +.L2658: + mov r1, r5 + ldr r5, .L2665+4 + mov r2, sp + mov r7, #0 + bl write_idblock + strb r7, [r5, #480] + ldr r0, [r5, #484] + bl ftl_free + str r7, [r5, #484] + b .L2660 +.L2652: + ldr r7, .L2665+4 + ldr r3, [r7, #488] + cmp r3, r4 + beq .L2660 + mov r8, #0 + cmp r5, r8 + strb r8, [r7, #480] + beq .L2661 + mov r0, r5 + bl ftl_free +.L2661: + str r8, [r7, #484] +.L2660: + ldr r3, .L2665+4 + add r4, r6, r4 + str r4, [r3, #488] +.L2648: + add sp, sp, #32 + ldmfd sp!, {r4, r5, r6, r7, r8, pc} +.L2666: + .align 2 +.L2665: + .word -52655045 + .word .LANCHOR4 + .word .LANCHOR0 + .fnend + .size write_loader_lba, .-write_loader_lba + .align 2 + .global FtlWrite + .type FtlWrite, %function +FtlWrite: + .fnstart + @ args = 0, pretend = 0, frame = 0 + @ frame_needed = 0, uses_anonymous_args = 0 + stmfd sp!, {r4, r5, r6, r7, r8, lr} + .save {r4, r5, r6, r7, r8, lr} + mov r6, r3 + sub r3, r1, #64 + mov r4, r1 + cmp r3, #1984 + mov r5, r2 + mov r7, r0 + movcs r3, #0 + movcc r3, #1 + cmp r0, #0 + movne r3, #0 + cmp r3, #0 + beq .L2668 + mov r0, r1 + mov r1, r2 + mov r2, r6 + bl write_loader_lba +.L2668: + mov r0, r7 + mov r1, r4 + mov r2, r5 + mov r3, r6 + ldmfd sp!, {r4, r5, r6, r7, r8, lr} + b ftl_write + .fnend + .size FtlWrite, .-FtlWrite + .align 2 .global rknand_sys_storage_ioctl .type rknand_sys_storage_ioctl, %function rknand_sys_storage_ioctl: .fnstart @ args = 0, pretend = 0, frame = 528 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L2752 + ldr r3, .L2785 stmfd sp!, {r4, r5, r6, lr} .save {r4, r5, r6, lr} cmp r1, r3 @@ -23357,102 +23600,102 @@ rknand_sys_storage_ioctl: sub sp, sp, #528 mov r5, r1 mov r4, r2 - beq .L2645 - bhi .L2654 - ldr r3, .L2752+4 + beq .L2678 + bhi .L2687 + ldr r3, .L2785+4 cmp r1, r3 - beq .L2642 - bhi .L2655 + beq .L2675 + bhi .L2688 sub r3, r3, #125 cmp r1, r3 - beq .L2639 - bhi .L2656 + beq .L2672 + bhi .L2689 sub r3, r3, #237 cmp r1, r3 - bne .L2698 - b .L2748 -.L2656: - ldr r3, .L2752+8 + bne .L2731 + b .L2781 +.L2689: + ldr r3, .L2785+8 cmp r1, r3 - beq .L2640 + beq .L2673 add r3, r3, #1 cmp r1, r3 - bne .L2698 - b .L2749 -.L2655: - ldr r3, .L2752+12 + bne .L2731 + b .L2782 +.L2688: + ldr r3, .L2785+12 cmp r1, r3 - beq .L2644 - bhi .L2657 - ldr r3, .L2752+16 + beq .L2677 + bhi .L2690 + ldr r3, .L2785+16 cmp r1, r3 - bne .L2698 - b .L2750 -.L2657: - ldr r3, .L2752+20 + bne .L2731 + b .L2783 +.L2690: + ldr r3, .L2785+20 cmp r1, r3 - beq .L2644 + beq .L2677 add r3, r3, #10 cmp r1, r3 - bne .L2698 - b .L2644 -.L2654: - ldr r3, .L2752+24 + bne .L2731 + b .L2677 +.L2687: + ldr r3, .L2785+24 cmp r1, r3 - beq .L2650 - bhi .L2658 + beq .L2683 + bhi .L2691 sub r3, r3, #78 cmp r1, r3 - beq .L2647 - bcc .L2646 + beq .L2680 + bcc .L2679 add r3, r3, #21 cmp r1, r3 - beq .L2648 + beq .L2681 add r3, r3, #56 cmp r1, r3 - bne .L2698 - b .L2751 -.L2658: - ldr r3, .L2752+28 + bne .L2731 + b .L2784 +.L2691: + ldr r3, .L2785+28 cmp r1, r3 - beq .L2653 - bhi .L2659 + beq .L2686 + bhi .L2692 sub r3, r3, #956 sub r3, r3, #1 cmp r1, r3 - beq .L2651 + beq .L2684 add r3, r3, #956 cmp r1, r3 - bne .L2698 - b .L2652 -.L2659: - ldr r3, .L2752+32 + bne .L2731 + b .L2685 +.L2692: + ldr r3, .L2785+32 cmp r1, r3 - beq .L2652 + beq .L2685 add r3, r3, #1 cmp r1, r3 - bne .L2698 - b .L2653 -.L2646: - ldr r0, .L2752+36 + bne .L2731 + b .L2686 +.L2679: + ldr r0, .L2785+36 bl printk mov r0, #4096 bl ftl_malloc subs r5, r0, #0 - beq .L2705 + beq .L2738 mov r1, r4 mov r2, #512 bl rk_copy_from_user cmp r0, #0 - bne .L2747 -.L2660: - ldr r0, .L2752+40 + bne .L2780 +.L2693: + ldr r0, .L2785+40 ldmia r5, {r1, r2} bl printk ldr r3, [r5, #4] cmp r3, #8 str r3, [sp, #4] - bhi .L2669 + bhi .L2702 bl rknand_device_lock ldr r1, [sp, #4] mov r2, r5 @@ -23465,163 +23708,155 @@ rknand_sys_storage_ioctl: mov r2, r2, asl #9 bl rk_copy_to_user cmp r0, #0 - beq .L2733 - ldr r0, .L2752+44 -.L2746: + beq .L2766 + ldr r0, .L2785+44 +.L2779: bl printk - b .L2669 -.L2647: - ldr r0, .L2752+48 + b .L2702 +.L2680: + ldr r0, .L2785+48 bl printk mov r0, #4096 bl ftl_malloc subs r5, r0, #0 - beq .L2705 + beq .L2738 mov r1, r4 mov r2, #4096 bl rk_copy_from_user cmp r0, #0 - bne .L2747 -.L2664: - ldr r4, .L2752+52 - ldr r0, .L2752+56 + bne .L2780 +.L2697: + ldr r4, .L2785+52 + ldr r0, .L2785+56 ldmia r5, {r1, r2} bl printk - ldr r3, [r4, #476] + ldr r3, [r4, #492] cmp r3, #0 - bne .L2665 + bne .L2698 mov r0, #260096 bl ftl_malloc cmp r0, #0 - str r0, [r4, #476] - beq .L2669 -.L2666: + str r0, [r4, #492] + beq .L2702 +.L2699: mov r1, #260096 bl __memzero -.L2665: +.L2698: ldr r2, [r5, #4] movw r3, #4088 cmp r2, r3 - bhi .L2669 + bhi .L2702 ldr r3, [r5, #0] cmp r3, #251904 - bhi .L2669 - ldr r1, .L2752+52 - ldr r0, [r1, #476] + bhi .L2702 + ldr r1, .L2785+52 + ldr r0, [r1, #492] add r1, r5, #8 add r0, r0, r3 bl memcpy -.L2733: +.L2766: mov r0, r5 bl ftl_free -.L2734: +.L2767: mov r4, #0 - b .L2663 -.L2751: - ldr r0, .L2752+60 + b .L2696 +.L2784: + ldr r0, .L2785+60 bl printk mov r0, #4096 bl ftl_malloc subs r5, r0, #0 - beq .L2705 + beq .L2738 mov r1, r4 mov r2, #28 bl rk_copy_from_user cmp r0, #0 - beq .L2668 -.L2747: - ldr r0, .L2752+64 - b .L2746 -.L2668: + beq .L2701 +.L2780: + ldr r0, .L2785+64 + b .L2779 +.L2701: ldmia r5, {r1, r2} - ldr r0, .L2752+68 + ldr r0, .L2785+68 bl printk ldr r1, [r5, #0] cmp r1, #256000 - bhi .L2669 - ldr r4, .L2752+52 - ldr r0, [r4, #476] + bhi .L2702 + ldr r4, .L2785+52 + ldr r0, [r4, #492] cmp r0, #0 - beq .L2669 -.L2670: + beq .L2702 +.L2703: bl CRC_32 ldr r3, [r5, #4] cmp r3, r0 - beq .L2671 + beq .L2704 mov r0, r5 bl ftl_free - b .L2711 -.L2671: + b .L2744 +.L2704: bl rknand_device_lock - ldr r1, [r4, #476] + ldr r1, [r4, #492] add r2, r5, #8 ldr r0, [r5, #0] bl write_idblock mov r6, #0 bl rknand_device_unlock - ldr r0, [r4, #476] + ldr r0, [r4, #492] bl ftl_free - str r6, [r4, #476] + str r6, [r4, #492] mov r0, r5 mov r4, r6 bl ftl_free - b .L2663 -.L2669: + b .L2696 +.L2702: mov r0, r5 - b .L2737 -.L2648: - ldr r0, .L2752+72 + b .L2770 +.L2681: + ldr r0, .L2785+72 bl printk mov r0, #4096 bl ftl_malloc subs r5, r0, #0 - beq .L2705 + beq .L2738 bl ftl_read_flash_info mov r0, r4 mov r1, r5 mov r2, #11 - b .L2742 -.L2645: - ldr r0, .L2752+76 + b .L2775 +.L2678: + ldr r0, .L2785+76 bl printk bl nand_blk_add_whole_disk mov r0, #4096 bl ftl_malloc subs r5, r0, #0 - beq .L2705 - bl rknand_device_lock + beq .L2738 mov r1, #0 mov r2, #64 - mov r0, r5 - bl FlashReadFacBbtData - bl rknand_device_unlock - ldr r0, .L2752+80 - mov r1, r5 - mov r2, #4 - mov r3, #8 - bl rknand_print_hex + bl ftl_memset mov r0, r4 mov r1, r5 mov r2, #64 - b .L2742 -.L2650: - ldr r0, .L2752+84 + b .L2775 +.L2683: + ldr r0, .L2785+80 bl printk - ldr r3, .L2752+52 + ldr r3, .L2785+52 add r1, sp, #528 mov r0, r4 mov r2, #4 - ldr r3, [r3, #480] + ldr r3, [r3, #496] ldr r3, [r3, #20] str r3, [r1, #-524]! - b .L2738 -.L2651: - ldr r0, .L2752+88 + b .L2771 +.L2684: + ldr r0, .L2785+84 bl printk mov r0, #4096 bl ftl_malloc subs r5, r0, #0 - beq .L2705 + beq .L2738 bl rknand_device_lock mov r1, #264 mov r2, #2 @@ -23632,259 +23867,259 @@ rknand_sys_storage_ioctl: mov r0, r4 mov r1, r5 mov r2, #1024 -.L2742: +.L2775: bl rk_copy_to_user subs r4, r0, #0 mov r0, r5 - beq .L2674 -.L2737: + beq .L2707 +.L2770: bl ftl_free - b .L2728 -.L2674: + b .L2761 +.L2707: bl ftl_free - b .L2663 -.L2639: - ldr r0, .L2752+92 + b .L2696 +.L2672: + ldr r0, .L2785+88 bl printk add r0, sp, #8 mov r1, r4 mov r2, #520 bl rk_copy_from_user subs r5, r0, #0 - bne .L2739 -.L2675: + bne .L2772 +.L2708: ldr r2, [sp, #8] - ldr r3, .L2752+96 + ldr r3, .L2785+92 cmp r2, r3 - bne .L2730 + bne .L2763 ldr r3, [sp, #12] cmp r3, #512 - bhi .L2730 - ldr r6, .L2752+52 + bhi .L2763 + ldr r6, .L2785+52 mov r2, #512 add r0, sp, #8 - ldr r1, [r6, #480] + ldr r1, [r6, #496] bl memcpy - ldr r2, [r6, #484] - ldr r3, .L2752+100 + ldr r2, [r6, #500] + ldr r3, .L2785+96 cmp r2, r3 - beq .L2676 + beq .L2709 add r0, sp, #72 mov r1, #128 str r5, [sp, #16] str r5, [sp, #20] bl __memzero -.L2676: +.L2709: add r0, sp, #264 mov r1, #256 mov r3, #0 str r3, [sp, #24] bl __memzero - b .L2745 -.L2640: - ldr r0, .L2752+104 + b .L2778 +.L2673: + ldr r0, .L2785+100 bl printk add r0, sp, #8 mov r1, r4 mov r2, #520 bl rk_copy_from_user cmp r0, #0 - bne .L2739 -.L2677: + bne .L2772 +.L2710: ldr r2, [sp, #8] - ldr r3, .L2752+96 + ldr r3, .L2785+92 cmp r2, r3 - bne .L2730 + bne .L2763 ldr r3, [sp, #12] cmp r3, #512 - bhi .L2730 - ldr r4, .L2752+52 - ldr r3, .L2752+100 - ldr r2, [r4, #484] + bhi .L2763 + ldr r4, .L2785+52 + ldr r3, .L2785+96 + ldr r2, [r4, #500] cmp r2, r3 - bne .L2711 + bne .L2744 ldr r3, [sp, #20] sub r2, r3, #1 cmp r2, #127 mvnhi r4, #2 - bhi .L2637 - ldr r0, [r4, #480] + bhi .L2670 + ldr r0, [r4, #496] add r1, sp, #72 str r3, [r0, #12] add r0, r0, #64 ldr r2, [sp, #20] bl memcpy mov r0, #1 - ldr r1, [r4, #480] - b .L2735 -.L2750: - ldr r0, .L2752+108 + ldr r1, [r4, #496] + b .L2768 +.L2783: + ldr r0, .L2785+104 bl printk add r0, sp, #8 mov r1, r4 mov r2, #520 bl rk_copy_from_user cmp r0, #0 - bne .L2739 -.L2678: + bne .L2772 +.L2711: ldr r2, [sp, #8] - ldr r3, .L2752+112 + ldr r3, .L2785+108 cmp r2, r3 - bne .L2730 + bne .L2763 ldr r3, [sp, #12] cmp r3, #512 - bhi .L2730 - ldr r5, .L2752+52 - ldr r4, [r5, #488] + bhi .L2763 + ldr r5, .L2785+52 + ldr r4, [r5, #504] cmp r4, #0 - beq .L2637 - ldr r3, [r5, #492] - ldr r2, .L2752+116 + beq .L2670 + ldr r3, [r5, #508] + ldr r2, .L2785+112 ldr r1, [r3, #0] cmp r1, r2 - beq .L2679 + beq .L2712 str r2, [r3, #0] mov r2, #504 - ldr r3, [r5, #492] + ldr r3, [r5, #508] str r2, [r3, #4] mov r2, #0 str r2, [r3, #8] str r2, [r3, #12] -.L2679: - ldr r1, [r5, #492] +.L2712: + ldr r1, [r5, #508] mov r4, #0 mov r0, r4 str r4, [r1, #16] bl StorageSysDataStore - ldr r3, [r5, #480] - ldr r2, .L2752+96 - ldr r5, .L2752+52 + ldr r3, [r5, #496] + ldr r2, .L2785+92 + ldr r5, .L2785+52 ldr r1, [r3, #0] cmp r1, r2 strne r2, [r3, #0] - ldr r0, [r5, #480] + ldr r0, [r5, #496] mov r1, #128 - ldrne r3, .L2752+52 + ldrne r3, .L2785+52 movne r2, #504 - ldrne r3, [r3, #480] + ldrne r3, [r3, #496] stmneib r3, {r2, r4} mov r4, #0 str r4, [r0, #12] add r0, r0, #64 bl __memzero mov r0, #1 - ldr r1, [r5, #480] + ldr r1, [r5, #496] bl StorageSysDataStore - str r4, [r5, #488] - str r4, [r5, #484] - b .L2663 -.L2642: - ldr r0, .L2752+120 + str r4, [r5, #504] + str r4, [r5, #500] + b .L2696 +.L2675: + ldr r0, .L2785+116 bl printk mov r1, r4 add r0, sp, #8 mov r2, #520 bl rk_copy_from_user subs r4, r0, #0 - bne .L2739 -.L2681: + bne .L2772 +.L2714: ldr r2, [sp, #8] - ldr r3, .L2752+124 + ldr r3, .L2785+120 cmp r2, r3 - bne .L2730 + bne .L2763 ldr r3, [sp, #12] cmp r3, #512 - bhi .L2730 - ldr r5, .L2752+52 - ldr r3, [r5, #488] + bhi .L2763 + ldr r5, .L2785+52 + ldr r3, [r5, #504] cmp r3, #1 - beq .L2637 - ldr r3, [r5, #492] + beq .L2670 + ldr r3, [r5, #508] mov r0, #0 - ldr r2, .L2752+116 + ldr r2, .L2785+112 ldr r1, [r3, #0] cmp r1, r2 strne r2, [r3, #0] - ldr r1, [r5, #492] - ldrne r3, [r5, #492] + ldr r1, [r5, #508] + ldrne r3, [r5, #508] movne r2, #504 strne r4, [r3, #12] stmneib r3, {r2, r4} mov r3, #1 str r3, [r1, #16] bl StorageSysDataStore - ldr r3, [r5, #480] - ldr r2, .L2752+96 + ldr r3, [r5, #496] + ldr r2, .L2785+92 ldr r1, [r3, #0] cmp r1, r2 - beq .L2683 + beq .L2716 str r2, [r3, #0] - mov r1, #504 - ldr r3, .L2752+52 + mov r0, #504 + ldr r3, .L2785+52 mov r2, #0 - ldr r3, [r3, #480] - stmib r3, {r1, r2} -.L2683: - ldr r5, .L2752+52 + ldr r3, [r3, #496] + stmib r3, {r0, r2} +.L2716: + ldr r5, .L2785+52 mov r1, #128 mov r4, #0 - ldr r0, [r5, #480] + ldr r0, [r5, #496] str r4, [r0, #12] add r0, r0, #64 bl __memzero mov r0, #1 - ldr r1, [r5, #480] + ldr r1, [r5, #496] bl StorageSysDataStore mov r3, #1 - str r3, [r5, #488] - b .L2663 -.L2749: - ldr r0, .L2752+128 + str r3, [r5, #504] + b .L2696 +.L2782: + ldr r0, .L2785+124 bl printk add r0, sp, #8 mov r1, r4 mov r2, #520 bl rk_copy_from_user cmp r0, #0 - bne .L2739 -.L2684: + bne .L2772 +.L2717: ldr r2, [sp, #8] - ldr r3, .L2752+132 + ldr r3, .L2785+128 cmp r2, r3 - bne .L2730 + bne .L2763 ldr r2, [sp, #12] cmp r2, #512 addls r0, sp, #16 - ldrls r1, .L2752+136 - bls .L2744 - b .L2730 -.L2644: - ldr r3, .L2752+20 + ldrls r1, .L2785+132 + bls .L2777 + b .L2763 +.L2677: + ldr r3, .L2785+20 cmp r5, r3 - ldreq r0, .L2752+140 - beq .L2731 - ldr r3, .L2752+144 + ldreq r0, .L2785+136 + beq .L2764 + ldr r3, .L2785+140 cmp r5, r3 - ldreq r0, .L2752+148 - ldrne r0, .L2752+152 -.L2731: + ldreq r0, .L2785+144 + ldrne r0, .L2785+148 +.L2764: bl printk add r0, sp, #8 mov r1, r4 mov r2, #520 bl rk_copy_from_user cmp r0, #0 - bne .L2739 -.L2688: + bne .L2772 +.L2721: ldr r2, [sp, #8] - ldr r3, .L2752+156 + ldr r3, .L2785+152 cmp r2, r3 - bne .L2728 - ldr r3, .L2752+144 - ldr r6, .L2752+52 + bne .L2761 + ldr r3, .L2785+140 + ldr r6, .L2785+52 cmp r5, r3 - bne .L2689 - ldr r3, [r6, #480] + bne .L2722 + ldr r3, [r6, #496] mov r0, r4 add r1, sp, #8 mov r2, #16 @@ -23895,29 +24130,29 @@ rknand_sys_storage_ioctl: cmp r0, #0 moveq r4, r0 mvnne r4, #13 - b .L2637 -.L2689: - ldr r3, [r6, #1008] + b .L2670 +.L2722: + ldr r3, [r6, #1024] cmp r3, #10 - bhi .L2728 - ldr r3, [r6, #480] + bhi .L2761 + ldr r3, [r6, #496] ldr r1, [sp, #12] ldr r2, [r3, #24] cmp r2, r1 - beq .L2690 + beq .L2723 cmp r2, #0 - beq .L2690 - ldr r0, .L2752+160 + beq .L2723 + ldr r0, .L2785+156 bl printk - ldr r3, [r6, #1008] + ldr r3, [r6, #1024] add r3, r3, #1 - str r3, [r6, #1008] - b .L2728 -.L2690: - ldr r0, .L2752+52 + str r3, [r6, #1024] + b .L2761 +.L2723: + ldr r0, .L2785+52 mov r2, #0 - str r2, [r0, #1008] - ldr r0, .L2752+20 + str r2, [r0, #1024] + ldr r0, .L2785+20 cmp r5, r0 mov r0, #1 strne r1, [r3, #24] @@ -23930,112 +24165,112 @@ rknand_sys_storage_ioctl: cmn r0, #1 mvneq r4, #1 movne r4, #0 - b .L2663 -.L2652: - ldr r0, .L2752+164 + b .L2696 +.L2685: + ldr r0, .L2785+160 bl printk add r0, sp, #8 mov r1, r4 mov r2, #520 bl rk_copy_from_user cmp r0, #0 - bne .L2739 -.L2693: + bne .L2772 +.L2726: ldr r2, [sp, #8] - ldr r3, .L2752+168 + ldr r3, .L2785+164 cmp r2, r3 - bne .L2730 + bne .L2763 ldr r2, [sp, #12] cmp r2, #504 - bhi .L2730 - ldr r3, .L2752+172 + bhi .L2763 + ldr r3, .L2785+168 add r0, sp, #16 cmp r5, r3 - ldr r3, .L2752+52 - ldreq r1, [r3, #1012] - ldrne r1, [r3, #1016] + ldr r3, .L2785+52 + ldreq r1, [r3, #1028] + ldrne r1, [r3, #1032] add r1, r1, #8 -.L2744: +.L2777: bl memcpy -.L2745: +.L2778: add r1, sp, #8 mov r0, r4 mov r2, #520 -.L2738: +.L2771: bl rk_copy_to_user subs r4, r0, #0 - bne .L2728 - b .L2663 -.L2653: - ldr r0, .L2752+176 + bne .L2761 + b .L2696 +.L2686: + ldr r0, .L2785+172 bl printk add r0, sp, #8 mov r1, r4 mov r2, #520 bl rk_copy_from_user cmp r0, #0 - beq .L2696 -.L2739: - ldr r0, .L2752+64 + beq .L2729 +.L2772: + ldr r0, .L2785+64 bl printk - b .L2728 -.L2696: + b .L2761 +.L2729: ldr r2, [sp, #8] - ldr r3, .L2752+168 + ldr r3, .L2785+164 cmp r2, r3 - bne .L2730 + bne .L2763 ldr r2, [sp, #12] cmp r2, #504 - bhi .L2730 - ldr r3, .L2752+28 + bhi .L2763 + ldr r3, .L2785+28 add r2, r2, #8 - ldr r4, .L2752+52 + ldr r4, .L2785+52 cmp r5, r3 - bne .L2697 + bne .L2730 add r1, sp, #8 - ldr r0, [r4, #1012] + ldr r0, [r4, #1028] bl memcpy - ldr r1, [r4, #1012] + ldr r1, [r4, #1028] mov r0, #2 -.L2735: +.L2768: bl StorageSysDataStore mov r4, r0 - b .L2663 -.L2697: + b .L2696 +.L2730: add r1, sp, #8 - ldr r0, [r4, #1016] + ldr r0, [r4, #1032] bl memcpy mov r0, #3 - ldr r1, [r4, #1016] - b .L2735 -.L2748: + ldr r1, [r4, #1032] + b .L2768 +.L2781: bl rknand_dev_flush - b .L2734 -.L2730: + b .L2767 +.L2763: mvn r4, #0 -.L2663: +.L2696: mov r1, r4 - ldr r0, .L2752+180 + ldr r0, .L2785+176 bl printk - b .L2637 -.L2698: + b .L2670 +.L2731: mvn r4, #21 - b .L2637 -.L2705: + b .L2670 +.L2738: mvn r4, #11 - b .L2637 -.L2711: + b .L2670 +.L2744: mvn r4, #1 - b .L2637 -.L2728: + b .L2670 +.L2761: mvn r4, #13 -.L2637: +.L2670: mov r0, r4 add sp, sp, #528 ldmfd sp!, {r4, r5, r6, pc} -.L2753: +.L2786: .align 2 -.L2752: +.L2785: .word 1074033155 .word 1074029694 .word 1074029570 @@ -24059,29 +24294,28 @@ rknand_sys_storage_ioctl: .word .LC188 .word .LC189 .word .LC190 - .word .LC191 .word 1263358532 .word -1067903959 + .word .LC191 .word .LC192 - .word .LC193 .word 1112753220 .word 1146313043 - .word .LC194 + .word .LC193 .word 1112755781 - .word .LC195 + .word .LC194 .word 1094995539 - .word .LANCHOR4+496 - .word .LC196 + .word .LANCHOR4+512 + .word .LC195 .word 1074031676 + .word .LC196 .word .LC197 - .word .LC198 .word 1280262987 + .word .LC198 .word .LC199 - .word .LC200 .word 1145980246 .word 1074034192 + .word .LC200 .word .LC201 - .word .LC202 .fnend .size rknand_sys_storage_ioctl, .-rknand_sys_storage_ioctl .align 2 @@ -24094,55 +24328,59 @@ rk_ftl_storage_sys_init: stmfd sp!, {r3, r4, r5, r6, r7, lr} .save {r3, r4, r5, r6, r7, lr} mov r2, #512 - ldr r4, .L2757 + ldr r4, .L2790 mov r6, #0 - add r0, r4, #496 - ldr r5, [r4, #468] - str r6, [r4, #476] + mvn r3, #0 + add r0, r4, #512 + ldr r5, [r4, #472] + str r3, [r4, #488] add r1, r5, #1536 add r3, r5, #512 - str r5, [r4, #492] - str r3, [r4, #480] + strb r6, [r4, #480] + str r3, [r4, #496] add r3, r5, #1024 - str r1, [r4, #1016] - str r3, [r4, #1012] + str r6, [r4, #484] + str r3, [r4, #1028] + str r6, [r4, #492] + str r5, [r4, #508] + str r1, [r4, #1032] bl memcpy ldr r7, [r5, #508] ldr r3, [r5, #16] cmp r7, r6 - str r6, [r4, #484] - str r6, [r4, #1008] - str r3, [r4, #488] - beq .L2755 + str r6, [r4, #500] + str r6, [r4, #1024] + str r3, [r4, #504] + beq .L2788 mov r0, r5 mov r1, #508 bl JSHash cmp r7, r0 - beq .L2755 + beq .L2788 str r6, [r5, #16] - ldr r0, .L2757+4 - str r6, [r4, #488] + ldr r0, .L2790+4 + str r6, [r4, #504] bl printk -.L2755: - ldr r3, [r4, #488] +.L2788: + ldr r3, [r4, #504] mov r0, #2 - ldr r4, .L2757 + ldr r4, .L2790 cmp r3, #0 - ldrne r2, .L2757+8 - ldrne r3, .L2757 - ldr r1, [r4, #1012] - strne r2, [r3, #484] + ldrne r2, .L2790+8 + ldrne r3, .L2790 + ldr r1, [r4, #1028] + strne r2, [r3, #500] bl StorageSysDataLoad - ldr r1, [r4, #1016] + ldr r1, [r4, #1032] mov r0, #3 bl StorageSysDataLoad ldmfd sp!, {r3, r4, r5, r6, r7, lr} b rknand_sys_storage_init -.L2758: +.L2791: .align 2 -.L2757: +.L2790: .word .LANCHOR4 - .word .LC203 + .word .LC202 .word -1067903959 .fnend .size rk_ftl_storage_sys_init, .-rk_ftl_storage_sys_init @@ -24169,83 +24407,83 @@ rk_ftl_vendor_storage_init: .save {r3, r4, r5, r6, r7, r8, sl, lr} mov r0, #65536 bl ftl_malloc - ldr r7, .L2768 + ldr r7, .L2801 cmp r0, #0 - str r0, [r7, #1020] - beq .L2766 - ldr sl, .L2768+4 + str r0, [r7, #1036] + beq .L2799 + ldr sl, .L2801+4 mov r6, #0 mov r4, r6 mov r5, r6 movw r8, #65532 -.L2764: - ldr r0, [r7, #1020] +.L2797: + ldr r0, [r7, #1036] mov r1, r5, asl #7 mov r2, #0 - bl rk_ftl_vendor_ops.constprop.28 + bl rk_ftl_vendor_ops.constprop.27 cmp r0, #0 - bne .L2762 - ldr r3, [r7, #1020] - ldr r0, .L2768+8 + bne .L2795 + ldr r3, [r7, #1036] + ldr r0, .L2801+8 ldr r1, [r3, #0] ldr r2, [r3, r8] ldr r3, [r3, #4] bl printk - ldr r0, [r7, #1020] + ldr r0, [r7, #1036] ldr r3, [r0, #0] cmp r3, sl - bne .L2763 + bne .L2796 ldr r3, [r0, r8] ldr r2, [r0, #4] cmp r3, r2 - bne .L2763 + bne .L2796 cmp r4, r3 movcc r6, r5 movcc r4, r3 -.L2763: +.L2796: add r5, r5, #1 cmp r5, #2 - bne .L2764 + bne .L2797 cmp r4, #0 - beq .L2765 + beq .L2798 mov r1, r6, asl #7 mov r2, #0 - bl rk_ftl_vendor_ops.constprop.28 + bl rk_ftl_vendor_ops.constprop.27 cmp r0, #0 ldmeqfd sp!, {r3, r4, r5, r6, r7, r8, sl, pc} - b .L2762 -.L2765: + b .L2795 +.L2798: mov r1, #65536 bl __memzero - ldr r3, .L2768 - ldr r1, .L2768+4 + ldr r3, .L2801 + ldr r1, .L2801+4 mov r2, #1 mov r0, r4 - ldr r3, [r3, #1020] + ldr r3, [r3, #1036] stmia r3, {r1, r2} movw r1, #65532 str r2, [r3, r1] - ldr r2, .L2768+12 + ldr r2, .L2801+12 strh r4, [r3, #12] @ movhi strh r2, [r3, #14] @ movhi ldmfd sp!, {r3, r4, r5, r6, r7, r8, sl, pc} -.L2762: - ldr r4, .L2768 - ldr r0, [r4, #1020] +.L2795: + ldr r4, .L2801 + ldr r0, [r4, #1036] bl kfree mov r3, #0 mvn r0, #0 - str r3, [r4, #1020] + str r3, [r4, #1036] ldmfd sp!, {r3, r4, r5, r6, r7, r8, sl, pc} -.L2766: +.L2799: mvn r0, #11 ldmfd sp!, {r3, r4, r5, r6, r7, r8, sl, pc} -.L2769: +.L2802: .align 2 -.L2768: +.L2801: .word .LANCHOR4 .word 1380668996 - .word .LC204 + .word .LC203 .word -1032 .fnend .size rk_ftl_vendor_storage_init, .-rk_ftl_vendor_storage_init @@ -24258,21 +24496,21 @@ rk_ftl_vendor_read: @ frame_needed = 0, uses_anonymous_args = 0 mov r3, r0 mov r0, r1 - ldr r1, .L2777 + ldr r1, .L2810 stmfd sp!, {r4, r5, r6, lr} .save {r4, r5, r6, lr} - ldr ip, [r1, #1020] + ldr ip, [r1, #1036] cmp ip, #0 ldrneh r4, [ip, #10] movne r5, ip movne r1, #0 - bne .L2772 - b .L2776 -.L2774: + bne .L2805 + b .L2809 +.L2807: ldrh r6, [r5, #16] add r5, r5, #8 cmp r6, r3 - bne .L2773 + bne .L2806 add r1, r1, #2 add r1, ip, r1, asl #3 ldrh r4, [r1, #4] @@ -24285,19 +24523,19 @@ rk_ftl_vendor_read: bl memcpy mov r0, r4 ldmfd sp!, {r4, r5, r6, pc} -.L2773: +.L2806: add r1, r1, #1 -.L2772: +.L2805: cmp r1, r4 - bcc .L2774 + bcc .L2807 mvn r0, #0 ldmfd sp!, {r4, r5, r6, pc} -.L2776: +.L2809: mvn r0, #0 ldmfd sp!, {r4, r5, r6, pc} -.L2778: +.L2811: .align 2 -.L2777: +.L2810: .word .LANCHOR4 .fnend .size rk_ftl_vendor_read, .-rk_ftl_vendor_read @@ -24308,46 +24546,46 @@ rk_ftl_vendor_write: .fnstart @ args = 0, pretend = 0, frame = 16 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L2796 + ldr r3, .L2829 stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} .save {r4, r5, r6, r7, r8, r9, sl, fp, lr} mov sl, r0 - ldr r4, [r3, #1020] + ldr r4, [r3, #1036] .pad #20 sub sp, sp, #20 mov r9, r1 mov r5, r2 cmp r4, #0 - beq .L2792 + beq .L2825 add r8, r2, #63 ldrh r2, [r4, #8] ldrh r3, [r4, #10] bic r8, r8, #63 mov r7, #0 str r2, [sp, #8] - b .L2781 -.L2788: + b .L2814 +.L2821: add r2, r7, #2 mov r2, r2, asl #3 add r6, r4, r2 ldrh r2, [r4, r2] cmp r2, sl - bne .L2782 + bne .L2815 ldrh r2, [r6, #4] add r2, r2, #63 bic r2, r2, #63 str r2, [sp, #12] cmp r5, r2 - bls .L2783 + bls .L2816 ldrh r2, [r4, #14] cmp r2, r8 - bcc .L2792 + bcc .L2825 sub r3, r3, #1 mov fp, r8 ldrh r6, [r6, #2] mov r8, r3 - b .L2784 -.L2785: + b .L2817 +.L2818: add r7, r7, #1 mov r2, r2, asl #3 add r0, r7, #2 @@ -24372,10 +24610,10 @@ rk_ftl_vendor_write: bl memcpy ldr r3, [sp, #4] add r6, r6, r3 -.L2784: +.L2817: cmp r7, r8 add r2, r7, #2 - bcc .L2785 + bcc .L2818 mov r2, r2, asl #3 uxth r6, r6 add r3, r4, r2 @@ -24395,8 +24633,8 @@ rk_ftl_vendor_write: add r3, r2, r3 rsb r8, r8, r3 strh r8, [r4, #14] @ movhi - b .L2795 -.L2783: + b .L2828 +.L2816: ldrh r0, [r6, #2] mov r1, r9 mov r2, r5 @@ -24404,15 +24642,15 @@ rk_ftl_vendor_write: add r0, r4, r0 bl memcpy strh r5, [r6, #4] @ movhi - b .L2795 -.L2782: + b .L2828 +.L2815: add r7, r7, #1 -.L2781: +.L2814: cmp r7, r3 - bcc .L2788 + bcc .L2821 ldrh r2, [r4, #14] cmp r2, r8 - bcc .L2792 + bcc .L2825 add r3, r3, #2 uxth r8, r8 mov r1, r9 @@ -24436,7 +24674,7 @@ rk_ftl_vendor_write: ldrh r3, [r4, #10] add r3, r3, #1 strh r3, [r4, #10] @ movhi -.L2795: +.L2828: ldr r3, [r4, #4] movw r2, #65532 mov r0, r4 @@ -24453,17 +24691,17 @@ rk_ftl_vendor_write: strhih r3, [r4, #8] @ movhi ldr r3, [sp, #8] mov r1, r3, asl #7 - bl rk_ftl_vendor_ops.constprop.28 + bl rk_ftl_vendor_ops.constprop.27 mov r0, #0 - b .L2780 -.L2792: + b .L2813 +.L2825: mvn r0, #0 -.L2780: +.L2813: add sp, sp, #20 ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} -.L2797: +.L2830: .align 2 -.L2796: +.L2829: .word .LANCHOR4 .fnend .size rk_ftl_vendor_write, .-rk_ftl_vendor_write @@ -24482,30 +24720,30 @@ rk_ftl_vendor_storage_ioctl: bl ftl_malloc subs r4, r0, #0 mvneq r5, #0 - beq .L2799 - ldr r3, .L2815 + beq .L2832 + ldr r3, .L2848 cmp r6, r3 - beq .L2801 + beq .L2834 add r3, r3, #1 cmp r6, r3 - bne .L2812 - b .L2814 -.L2801: + bne .L2845 + b .L2847 +.L2834: mov r1, r5 mov r2, #8 bl rk_copy_from_user cmp r0, #0 - bne .L2812 + bne .L2845 ldr r2, [r4, #0] - ldr r3, .L2815+4 + ldr r3, .L2848+4 cmp r2, r3 - bne .L2811 + bne .L2844 ldrh r0, [r4, #4] add r1, r4, #8 ldrh r2, [r4, #6] bl rk_ftl_vendor_read cmn r0, #1 - beq .L2807 + beq .L2840 uxth r2, r0 mov r1, r4 strh r2, [r4, #6] @ movhi @@ -24515,48 +24753,48 @@ rk_ftl_vendor_storage_ioctl: cmp r0, #0 moveq r5, r0 mvnne r5, #13 - b .L2800 -.L2814: + b .L2833 +.L2847: mov r1, r5 mov r2, #8 bl rk_copy_from_user cmp r0, #0 - bne .L2812 + bne .L2845 ldr r2, [r4, #0] - ldr r3, .L2815+4 + ldr r3, .L2848+4 cmp r2, r3 - bne .L2811 + bne .L2844 ldrh r2, [r4, #6] movw r3, #4087 cmp r2, r3 - bhi .L2811 + bhi .L2844 mov r0, r4 mov r1, r5 add r2, r2, #8 bl rk_copy_from_user cmp r0, #0 - bne .L2812 + bne .L2845 ldrh r0, [r4, #4] add r1, r4, #8 ldrh r2, [r4, #6] bl rk_ftl_vendor_write -.L2807: +.L2840: mov r5, r0 - b .L2800 -.L2811: + b .L2833 +.L2844: mvn r5, #0 - b .L2800 -.L2812: + b .L2833 +.L2845: mvn r5, #13 -.L2800: +.L2833: mov r0, r4 bl kfree -.L2799: +.L2832: mov r0, r5 ldmfd sp!, {r4, r5, r6, pc} -.L2816: +.L2849: .align 2 -.L2815: +.L2848: .word 1074034177 .word 1448232273 .fnend @@ -24631,6 +24869,8 @@ rk_ftl_vendor_storage_ioctl: .global g_gc_bad_block_temp_tbl .global g_gc_bad_block_gc_index .global g_gc_bad_block_temp_num + .global g_gc_next_blk_3 + .global g_gc_next_blk_2 .global g_gc_next_blk_1 .global g_gc_next_blk .global g_gc_cur_blk_max_valid_pages @@ -24803,34 +25043,34 @@ rk_ftl_vendor_storage_ioctl: .global read_retry_cur_offset .section .rodata .set .LANCHOR3,. + 0 - .type __func__.14466, %object - .size __func__.14466, 11 -__func__.14466: + .type __func__.14269, %object + .size __func__.14269, 11 +__func__.14269: .ascii "FtlMemInit\000" .LC0: .byte 60 .byte 40 .byte 24 .byte 16 - .type __func__.15268, %object - .size __func__.15268, 16 -__func__.15268: + .type __func__.15064, %object + .size __func__.15064, 16 +__func__.15064: .ascii "FtlScanAllBlock\000" - .type __func__.15249, %object - .size __func__.15249, 17 -__func__.15249: + .type __func__.15045, %object + .size __func__.15045, 17 +__func__.15045: .ascii "FtlDumpBlockInfo\000" - .type __func__.15516, %object - .size __func__.15516, 21 -__func__.15516: + .type __func__.15312, %object + .size __func__.15312, 21 +__func__.15312: .ascii "FtlVpcCheckAndModify\000" - .type __func__.14539, %object - .size __func__.14539, 8 -__func__.14539: + .type __func__.14342, %object + .size __func__.14342, 8 +__func__.14342: .ascii "FtlInit\000" - .type __func__.15213, %object - .size __func__.15213, 12 -__func__.15213: + .type __func__.15010, %object + .size __func__.15010, 12 +__func__.15010: .ascii "FtlCheckVpc\000" .section .rodata.str1.1,"aMS",%progbits,1 .LC1: @@ -24841,239 +25081,239 @@ __func__.15213: .ascii "phyBlk = 0x%x die = %d block_in_die = 0x%x 0x%8x\012" .ascii "\000" .LC4: - .ascii "remove_from_free_sys_Queue %x\012\000" -.LC5: .ascii "FtlFreeSysBlkQueueOut free count = %d\012\000" -.LC6: +.LC5: .ascii "FtlFreeSysBlkQueueOut = %x, free count = %d, error\012" .ascii "\000" -.LC7: +.LC6: .ascii "FtlFreeSysBlkQueueOut = %x, free count = %d\012\000" -.LC8: +.LC7: .ascii "FLASH INFO:\012\000" -.LC9: +.LC8: .ascii "FLASH ID: %x\012\000" -.LC10: +.LC9: .ascii "Device Capacity: %d MB\012\000" -.LC11: +.LC10: .ascii "FMWAIT: %x %x %x %x\012\000" -.LC12: +.LC11: .ascii "FTL INFO:\012\000" -.LC13: +.LC12: .ascii "g_MaxLpn = 0x%x\012\000" -.LC14: +.LC13: .ascii "g_VaildLpn = 0x%x\012\000" -.LC15: +.LC14: .ascii "read_page_count = 0x%x\012\000" -.LC16: +.LC15: .ascii "discard_page_count = 0x%x\012\000" -.LC17: +.LC16: .ascii "write_page_count = 0x%x\012\000" -.LC18: +.LC17: .ascii "cache_write_count = 0x%x\012\000" -.LC19: +.LC18: .ascii "l2p_write_count = 0x%x\012\000" -.LC20: +.LC19: .ascii "gc_page_count = 0x%x\012\000" -.LC21: +.LC20: .ascii "totle_write = %d MB\012\000" -.LC22: +.LC21: .ascii "totle_read = %d MB\012\000" -.LC23: +.LC22: .ascii "GSV = 0x%x\012\000" -.LC24: +.LC23: .ascii "GDV = 0x%x\012\000" -.LC25: +.LC24: .ascii "bad blk num = %d %d\012\000" -.LC26: +.LC25: .ascii "free_superblocks = 0x%x\012\000" -.LC27: +.LC26: .ascii "mlc_EC = 0x%x\012\000" -.LC28: +.LC27: .ascii "slc_EC = 0x%x\012\000" -.LC29: +.LC28: .ascii "avg_EC = 0x%x\012\000" -.LC30: +.LC29: .ascii "sys_EC = 0x%x\012\000" -.LC31: +.LC30: .ascii "max_EC = 0x%x\012\000" -.LC32: +.LC31: .ascii "min_EC = 0x%x\012\000" -.LC33: +.LC32: .ascii "PLT = 0x%x\012\000" -.LC34: +.LC33: .ascii "POT = 0x%x\012\000" -.LC35: +.LC34: .ascii "MaxSector = 0x%x\012\000" -.LC36: +.LC35: .ascii "init_sys_blks_pp = 0x%x\012\000" -.LC37: +.LC36: .ascii "sys_blks_pp = 0x%x\012\000" -.LC38: +.LC37: .ascii "free sysblock = 0x%x\012\000" -.LC39: +.LC38: .ascii "data_blks_pp = 0x%x\012\000" -.LC40: +.LC39: .ascii "data_op_blks_pp = 0x%x\012\000" -.LC41: +.LC40: .ascii "max_data_blks = 0x%x\012\000" -.LC42: +.LC41: .ascii "Sys.id = 0x%x\012\000" -.LC43: +.LC42: .ascii "Bbt.id = 0x%x\012\000" -.LC44: +.LC43: .ascii "ACT.page = 0x%x\012\000" -.LC45: +.LC44: .ascii "ACT.plane = 0x%x\012\000" -.LC46: +.LC45: .ascii "ACT.id = 0x%x\012\000" -.LC47: +.LC46: .ascii "ACT.mode = 0x%x\012\000" -.LC48: +.LC47: .ascii "ACT.a_pages = 0x%x\012\000" -.LC49: +.LC48: .ascii "ACT VPC = 0x%x\012\000" -.LC50: +.LC49: .ascii "BUF.page = 0x%x\012\000" -.LC51: +.LC50: .ascii "BUF.plane = 0x%x\012\000" -.LC52: +.LC51: .ascii "BUF.id = 0x%x\012\000" -.LC53: +.LC52: .ascii "BUF.mode = 0x%x\012\000" -.LC54: +.LC53: .ascii "BUF.a_pages = 0x%x\012\000" -.LC55: +.LC54: .ascii "BUF VPC = 0x%x\012\000" -.LC56: +.LC55: .ascii "TMP.page = 0x%x\012\000" -.LC57: +.LC56: .ascii "TMP.plane = 0x%x\012\000" -.LC58: +.LC57: .ascii "TMP.id = 0x%x\012\000" -.LC59: +.LC58: .ascii "TMP.mode = 0x%x\012\000" -.LC60: +.LC59: .ascii "TMP.a_pages = 0x%x\012\000" -.LC61: +.LC60: .ascii "GC.page = 0x%x\012\000" -.LC62: +.LC61: .ascii "GC.plane = 0x%x\012\000" -.LC63: +.LC62: .ascii "GC.id = 0x%x\012\000" -.LC64: +.LC63: .ascii "GC.mode = 0x%x\012\000" -.LC65: +.LC64: .ascii "GC.a_pages = 0x%x\012\000" -.LC66: +.LC65: .ascii "WR_CHK = 0x%x %x %x %x\012\000" -.LC67: +.LC66: .ascii "Read Err = 0x%x\012\000" -.LC68: +.LC67: .ascii "Prog Err = 0x%x\012\000" -.LC69: +.LC68: .ascii "gc_free_blk_th= 0x%x\012\000" -.LC70: +.LC69: .ascii "gc_merge_free_blk_th= 0x%x\012\000" -.LC71: +.LC70: .ascii "gc_skip_write_count= 0x%x\012\000" -.LC72: +.LC71: .ascii "gc_blk_index= 0x%x\012\000" -.LC73: +.LC72: .ascii "free min EC= 0x%x\012\000" -.LC74: +.LC73: .ascii "free max EC= 0x%x\012\000" -.LC75: +.LC74: .ascii "GC__SB VPC = 0x%x\012\000" -.LC76: +.LC75: .ascii "%d. [0x%x]=0x%x 0x%x 0x%x\012\000" -.LC77: +.LC76: .ascii "free %d. [0x%x] 0x%x 0x%x\012\000" -.LC78: +.LC77: .ascii "%s\012\000" +.LC78: + .ascii "FTL version: 5.0.50 20180905\000" .LC79: - .ascii "FTL version: 5.0.48 20180703\000" -.LC80: .ascii "swblk %x ,avg = %x max= %x vpc= %x,ec=%x ,max ec=%x" .ascii "\012\000" -.LC81: +.LC80: .ascii "FtlGcRefreshBlock 0x%x\012\000" +.LC81: + .ascii "decrement_vpc_count %x = %d\012\000" .LC82: - .ascii "FtlGcMarkBadPhyBlk %d 0x%x\012\000" + .ascii "decrement_vpc_count %x = %d in free list\012\000" .LC83: - .ascii "%s error allocating memory. return -1\012\000" + .ascii "FtlGcMarkBadPhyBlk %d 0x%x\012\000" .LC84: - .ascii "%s %p:0x%x:\000" + .ascii "%s error allocating memory. return -1\012\000" .LC85: - .ascii "%x \000" + .ascii "%s %p:0x%x:\000" .LC86: - .ascii "\000" + .ascii "%x \000" .LC87: - .ascii "%d statReg->V6.mtrans_cnt=%d flReg.V6.page_num=%d\012" .ascii "\000" .LC88: - .ascii "nandc:\000" + .ascii "%d statReg->V6.mtrans_cnt=%d flReg.V6.page_num=%d\012" + .ascii "\000" .LC89: - .ascii "%d flReg.d32=%x %x\012\000" + .ascii "nandc:\000" .LC90: - .ascii "micron RR %d row=%x,count %d,status=%d\012\000" + .ascii "%d flReg.d32=%x %x\012\000" .LC91: - .ascii "ECC:%d\012\000" + .ascii "micron RR %d row=%x,count %d,status=%d\012\000" .LC92: - .ascii "sdr read ok %x ecc=%d\012\000" + .ascii "ECC:%d\012\000" .LC93: - .ascii "sync para %d\012\000" + .ascii "sdr read ok %x ecc=%d\012\000" .LC94: - .ascii "TOG mode Read error %x %x\012\000" + .ascii "sync para %d\012\000" .LC95: - .ascii "read retry status %x %x %x\012\000" + .ascii "TOG mode Read error %x %x\012\000" .LC96: - .ascii "Read pageadd=%x ecc=%x err=%x\012\000" + .ascii "read retry status %x %x %x\012\000" .LC97: - .ascii "data:\000" + .ascii "Read pageadd=%x ecc=%x err=%x\012\000" .LC98: - .ascii "spare:\000" + .ascii "data:\000" .LC99: - .ascii "ReadRetry pageadd=%x ecc=%x err=%x\012\000" + .ascii "spare:\000" .LC100: - .ascii "FtlGcScanTempBlkError ID %x %x!!!!!!!\012\000" + .ascii "ReadRetry pageadd=%x ecc=%x err=%x\012\000" .LC101: - .ascii "...%s enter...\012\000" + .ascii "FtlGcScanTempBlkError ID %x %x!!!!!!!\012\000" .LC102: - .ascii "blk = %x vpc=%x mode = %x\012\000" + .ascii "...%s enter...\012\000" .LC103: + .ascii "blk = %x vpc=%x mode = %x\012\000" +.LC104: .ascii "mlc id = %x,%x addr= %x,spare= %x %x %x %x data=%x " .ascii "%x\012\000" -.LC104: +.LC105: .ascii "slc id = %x,%x addr= %x,spare= %x %x %x %x data=%x " .ascii "%x\012\000" -.LC105: - .ascii "superBlkID = %x vpc=%x\012\000" .LC106: - .ascii "flashmode = %x pagenum = %x %x\012\000" + .ascii "superBlkID = %x vpc=%x\012\000" .LC107: + .ascii "flashmode = %x pagenum = %x %x\012\000" +.LC108: .ascii "id = %x,%x addr= %x,spare= %x %x %x %x data=%x %x\012" .ascii "\000" -.LC108: - .ascii "prog error: = %x\012\000" .LC109: - .ascii "prog read error: = %x\012\000" + .ascii "prog error: = %x\012\000" .LC110: - .ascii "prog read s error: = %x %x %x\012\000" + .ascii "prog read error: = %x\012\000" .LC111: - .ascii "prog read d error: = %x %x %x\012\000" + .ascii "prog read s error: = %x %x %x\012\000" .LC112: - .ascii "FtlVpcTblFlush error = %x error count = %d\012\000" + .ascii "prog read d error: = %x %x %x\012\000" .LC113: - .ascii "FtlBbmTblFlush id=%x,page=%x,previd=%x cnt=%d\012\000" + .ascii "FtlVpcTblFlush error = %x error count = %d\012\000" .LC114: - .ascii "FtlBbmTblFlush error:%x\012\000" + .ascii "FtlBbmTblFlush id=%x,page=%x,previd=%x cnt=%d\012\000" .LC115: - .ascii "FtlBbmTblFlush error = %x error count = %d\012\000" + .ascii "FtlBbmTblFlush error:%x\012\000" .LC116: - .ascii "FtlGcFreeBadSuperBlk 0x%x\012\000" + .ascii "FtlBbmTblFlush error = %x error count = %d\012\000" .LC117: - .ascii "decrement_vpc_count %x = %d\012\000" + .ascii "FtlGcFreeBadSuperBlk 0x%x\012\000" .LC118: .ascii "FlashMakeFactorBbt %d\012\000" .LC119: @@ -25085,64 +25325,64 @@ __func__.15213: .LC122: .ascii "FMFB:Save %d %d\012\000" .LC123: - .ascii "ftl_map_blk_gc blk info: %x %x %x\012\000" -.LC124: .ascii "page map lost: %x %x\012\000" -.LC125: +.LC124: .ascii "FtlMapWritePage error = %x\012\000" -.LC126: +.LC125: .ascii "FtlMapWritePage error = %x error count = %d\012\000" -.LC127: +.LC126: .ascii "FtlVendorPartRead refresh = %x phyAddr = %x\012\000" -.LC128: +.LC127: .ascii "slc mode\000" -.LC129: +.LC128: .ascii "no ect\000" -.LC130: +.LC129: .ascii "FLFB:%d %d\012\000" -.LC131: +.LC130: .ascii "phyBlk = %x,addr= %x,spare= %x %x %x %x data=%x %x\012" .ascii "\000" -.LC132: +.LC131: .ascii "Mblk:\000" -.LC133: +.LC132: .ascii "L2P:\000" -.LC134: +.LC133: .ascii "L2PC:\000" -.LC135: +.LC134: .ascii "id = %x,%x addr= %x,spare= %x %x %x %x data = %x\012" .ascii "\000" -.LC136: +.LC135: .ascii ":\000" -.LC137: +.LC136: .ascii "BBT:\000" -.LC138: - .ascii "load_l2p_region refresh = %x phyAddr = %x\012\000" -.LC139: +.LC137: .ascii "region_id = %x phyAddr = %x\012\000" -.LC140: +.LC138: .ascii "map_ppn:\000" -.LC141: +.LC139: + .ascii "load_l2p_region refresh = %x phyAddr = %x\012\000" +.LC140: .ascii "Ftlscanalldata = %x\012\000" -.LC142: +.LC141: .ascii "scan lpa = %x ppa= %x\012\000" -.LC143: +.LC142: .ascii "lba = %x,addr= %x,spare= %x %x %x %x data=%x %x\012" .ascii "\000" -.LC144: +.LC143: .ascii "RSB refresh addr %x\012\000" -.LC145: +.LC144: .ascii "spuer block %x vpn is 0\012 \000" -.LC146: +.LC145: .ascii "g_recovery_ppa %x ver %x\012 \000" -.LC147: +.LC146: .ascii "FtlCheckVpc %x = %x %x\012\000" -.LC148: +.LC147: .ascii "GC des block %x done\012\000" -.LC149: +.LC148: .ascii "%d GC datablk = %x vpc %x %x\012\000" -.LC150: +.LC149: .ascii "SWL %x, FSB = %x vpc= %x,ec=%x th=%x\012\000" +.LC150: + .ascii "g_gc_superblock_free %x %x %x %x %x\012\000" .LC151: .ascii "Ftlwrite decrement_vpc_count %x = %d\012\000" .LC152: @@ -25220,38 +25460,36 @@ __func__.15213: .LC187: .ascii "GET_BAD_BLOCK_IO\012\000" .LC188: - .ascii "bbt:\000" -.LC189: .ascii "GET_LOCK_FLAG_IO\012\000" -.LC190: +.LC189: .ascii "GET_PUBLIC_KEY_IO\012\000" -.LC191: +.LC190: .ascii "RKNAND_GET_DRM_KEY\012\000" -.LC192: +.LC191: .ascii "RKNAND_STORE_DRM_KEY\012\000" -.LC193: +.LC192: .ascii "RKNAND_DIASBLE_SECURE_BOOT\012\000" -.LC194: +.LC193: .ascii "RKNAND_ENASBLE_SECURE_BOOT\012\000" -.LC195: +.LC194: .ascii "RKNAND_GET_SN_SECTOR\012\000" -.LC196: +.LC195: .ascii "RKNAND_LOADER_UNLOCK\012\000" -.LC197: +.LC196: .ascii "RKNAND_LOADER_STATUS\012\000" -.LC198: +.LC197: .ascii "RKNAND_LOADER_LOCK\012\000" -.LC199: +.LC198: .ascii "LockKey not match %d\012\000" -.LC200: +.LC199: .ascii "RKNAND_GET_VENDOR_SECTOR\012\000" -.LC201: +.LC200: .ascii "RKNAND_STORE_VENDOR_SECTOR\012\000" -.LC202: +.LC201: .ascii "return ret = %lx\012\000" -.LC203: +.LC202: .ascii "secureBootEn check error\012\000" -.LC204: +.LC203: .ascii "\0013vendor storage %x,%x,%x\012\000" .data .align 2 @@ -25534,7 +25772,7 @@ random_seed: .short 17598 .short 28087 .type NandFlashParaTbl, %object - .size NandFlashParaTbl, 2368 + .size NandFlashParaTbl, 2464 NandFlashParaTbl: .byte 6 .byte 44 @@ -26108,6 +26346,58 @@ NandFlashParaTbl: .byte 0 .byte 0 .space 4 + .byte 5 + .byte 44 + .byte -124 + .byte -60 + .byte 52 + .byte -86 + .byte 0 + .byte 4 + .byte 1 + .byte 32 + .short 512 + .byte 2 + .byte 1 + .short 2184 + .short 1479 + .byte 5 + .byte 19 + .byte 60 + .byte 32 + .byte 1 + .byte 0 + .byte 1 + .byte 0 + .byte 1 + .byte 0 + .space 4 + .byte 5 + .byte 44 + .byte -124 + .byte 68 + .byte 52 + .byte -92 + .byte 0 + .byte 4 + .byte 1 + .byte 32 + .short 512 + .byte 2 + .byte 1 + .short 2184 + .short 1479 + .byte 5 + .byte 19 + .byte 60 + .byte 32 + .byte 1 + .byte 0 + .byte 1 + .byte 0 + .byte 1 + .byte 0 + .space 4 .byte 6 .byte -83 .byte -34 @@ -26628,6 +26918,32 @@ NandFlashParaTbl: .byte 0 .byte 0 .space 4 + .byte 5 + .byte -119 + .byte 100 + .byte 100 + .byte 60 + .byte -95 + .byte 0 + .byte 7 + .byte 1 + .byte 32 + .short 512 + .byte 2 + .byte 1 + .short 1024 + .short 455 + .byte 3 + .byte 17 + .byte 40 + .byte 32 + .byte 1 + .byte 0 + .byte 1 + .byte 0 + .byte 0 + .byte 0 + .space 4 .byte 6 .byte -104 .byte -41 @@ -28552,6 +28868,14 @@ g_gc_next_blk: .type g_gc_next_blk_1, %object .size g_gc_next_blk_1, 2 g_gc_next_blk_1: + .space 2 + .type g_gc_next_blk_2, %object + .size g_gc_next_blk_2, 2 +g_gc_next_blk_2: + .space 2 + .type g_gc_next_blk_3, %object + .size g_gc_next_blk_3, 2 +g_gc_next_blk_3: .space 2 .type g_gc_bad_block_temp_num, %object .size g_gc_bad_block_temp_num, 2 @@ -28893,6 +29217,19 @@ gLoaderBootInfo: .type RK29_NANDC1_REG_BASE, %object .size RK29_NANDC1_REG_BASE, 4 RK29_NANDC1_REG_BASE: + .space 4 + .type idb_write_enable, %object + .size idb_write_enable, 1 +idb_write_enable: + .space 1 + .space 3 + .type idb_buf, %object + .size idb_buf, 4 +idb_buf: + .space 4 + .type idb_last_lba, %object + .size idb_last_lba, 4 +idb_last_lba: .space 4 .type g_idb_buffer, %object .size g_idb_buffer, 4 diff --git a/drivers/rk_nand/rk_ftl_arm_v8.S b/drivers/rk_nand/rk_ftl_arm_v8.S index e7ed5e817d30..37fe71ab2a53 100644 --- a/drivers/rk_nand/rk_ftl_arm_v8.S +++ b/drivers/rk_nand/rk_ftl_arm_v8.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: 2017-11-20 + * date: 2018-09-05 */ .cpu generic+fp+simd .file "rk_ftl_arm_v8.S" @@ -27,8 +27,8 @@ #NO_APP .text .align 2 - .type ftl_set_blk_mode.part.8, %function -ftl_set_blk_mode.part.8: + .type ftl_set_blk_mode.part.9, %function +ftl_set_blk_mode.part.9: adrp x1, .LANCHOR0 uxth w0, w0 ubfx x2, x0, 5, 11 @@ -40,7 +40,7 @@ ftl_set_blk_mode.part.8: orr w0, w1, w0 str w0, [x3,x2] ret - .size ftl_set_blk_mode.part.8, .-ftl_set_blk_mode.part.8 + .size ftl_set_blk_mode.part.9, .-ftl_set_blk_mode.part.9 .align 2 .global FlashMemCmp8 .type FlashMemCmp8, %function @@ -432,9 +432,9 @@ FlashPrintInfo: ret .size FlashPrintInfo, .-FlashPrintInfo .align 2 - .global FlashSuspend - .type FlashSuspend, %function -FlashSuspend: + .global ftl_flash_suspend + .type ftl_flash_suspend, %function +ftl_flash_suspend: adrp x0, .LANCHOR0 add x0, x0, :lo12:.LANCHOR0 ldr x1, [x0,128] @@ -454,9 +454,8 @@ FlashSuspend: ldr w1, [x1,344] str w2, [x0,160] str w1, [x0,164] - mov w0, 0 ret - .size FlashSuspend, .-FlashSuspend + .size ftl_flash_suspend, .-ftl_flash_suspend .align 2 .global LogAddr2PhyAddr .type LogAddr2PhyAddr, %function @@ -590,48 +589,34 @@ NandcSetDdrMode: .global NandcSetMode .type NandcSetMode, %function NandcSetMode: - stp x29, x30, [sp, -48]! - adrp x1, .LANCHOR0 + adrp x1, .LANCHOR0+128 uxtb w0, w0 - add x29, sp, 0 - str x21, [sp,32] - add x21, x1, :lo12:.LANCHOR0 - stp x19, x20, [sp,16] tst w0, 6 - mov x20, x1 - ldr x2, [x21,128] - ldr w19, [x2] + ldr x2, [x1,#:lo12:.LANCHOR0+128] + ldr w1, [x2] beq .L73 - orr w19, w19, 24576 and w0, w0, 4 - and w19, w19, -32769 + orr w1, w1, 24576 cmp w0, wzr - orr w19, w19, 196608 - mov w0, 0 - orr w1, w19, 32768 - csel w19, w1, w19, ne - bl rknand_get_clk_rate - ldr x0, [x21,128] - mov w1, 8322 - str w1, [x0,344] - mov w1, 4099 - movk w1, 0x10, lsl 16 - str w1, [x0,304] - mov w1, 38 - str w1, [x0,308] - mov w1, 39 - str w1, [x0,308] + mov w0, 8322 + and w1, w1, -32769 + str w0, [x2,344] + mov w0, 4099 + orr w1, w1, 196608 + movk w0, 0x10, lsl 16 + str w0, [x2,304] + orr w3, w1, 32768 + mov w0, 38 + str w0, [x2,308] + csel w1, w3, w1, ne + mov w0, 39 + str w0, [x2,308] b .L75 .L73: - and w19, w19, -8193 + and w1, w1, -8193 .L75: - add x1, x20, :lo12:.LANCHOR0 - ldr x0, [x1,128] - str w19, [x0] + str w1, [x2] mov w0, 0 - ldp x19, x20, [sp,16] - ldr x21, [sp,32] - ldp x29, x30, [sp], 48 ret .size NandcSetMode, .-NandcSetMode .align 2 @@ -1380,6 +1365,40 @@ SandiskSetRRPara: ret .size SandiskSetRRPara, .-SandiskSetRRPara .align 2 + .global micron_auto_read_calibration_config + .type micron_auto_read_calibration_config, %function +micron_auto_read_calibration_config: + stp x29, x30, [sp, -48]! + add x29, sp, 0 + str x19, [sp,16] + uxtb w19, w0 + mov w0, w19 + sbfiz x19, x19, 4, 32 + str x1, [x29,40] + bl NandcWaitFlashReady + adrp x3, .LANCHOR0 + add x3, x3, :lo12:.LANCHOR0 + add x3, x3, 24 + add x0, x3, x19 + ldr x19, [x3,x19] + ldrb w2, [x0,8] + mov w0, 239 + add x19, x19, x2, lsl 8 + str w0, [x19,2056] + mov w0, 150 + str w0, [x19,2052] + mov w0, 200 + bl NandcDelayns + ldr x1, [x29,40] + str w1, [x19,2048] + str wzr, [x19,2048] + str wzr, [x19,2048] + str wzr, [x19,2048] + ldr x19, [sp,16] + ldp x29, x30, [sp], 48 + ret + .size micron_auto_read_calibration_config, .-micron_auto_read_calibration_config + .align 2 .global FlashEraseSLc2KBlocks .type FlashEraseSLc2KBlocks, %function FlashEraseSLc2KBlocks: @@ -1397,9 +1416,9 @@ FlashEraseSLc2KBlocks: mov w22, 0 add x25, x21, 1652 add x23, x23, :lo12:.LC0 -.L176: +.L177: cmp w22, w24 - beq .L185 + beq .L186 add x2, x29, 88 sub w4, w24, w22 mov x0, x20 @@ -1409,11 +1428,11 @@ FlashEraseSLc2KBlocks: ldr w2, [x29,92] ldrb w0, [x21,1845] cmp w2, w0 - bcc .L177 + bcc .L178 mov w0, -1 str w0, [x20] - b .L178 -.L177: + b .L179 +.L178: uxtw x2, w2 add x0, x21, x2 ldrb w19, [x0,1848] @@ -1446,24 +1465,24 @@ FlashEraseSLc2KBlocks: ldr w1, [x29,88] mov w0, w19 bl FlashReadStatus - tbz x0, 0, .L179 + tbz x0, 0, .L180 mov w0, -1 str w0, [x20] -.L179: +.L180: ldr w0, [x20] cmn w0, #1 - bne .L180 + bne .L181 ldr w1, [x29,88] mov x0, x23 bl printk -.L180: +.L181: mov w0, w19 bl NandcFlashDeCs -.L178: +.L179: add w22, w22, 1 add x20, x20, 56 - b .L176 -.L185: + b .L177 +.L186: mov w0, 0 ldr x25, [sp,64] ldp x19, x20, [sp,16] @@ -1498,7 +1517,7 @@ FlashReadDpCmd: cmp w0, 1 and w5, w1, 255 lsr w0, w1, 16 - bne .L187 + bne .L188 add x19, x6, x19, lsl 8 ldrb w2, [x3,8] str x1, [x29,72] @@ -1521,8 +1540,8 @@ FlashReadDpCmd: str w20, [x19,2052] str w0, [x19,2056] ldr x1, [x29,72] - b .L188 -.L187: + b .L189 +.L188: add x19, x6, x19, lsl 8 ldrb w2, [x3,8] str w2, [x19,2056] @@ -1536,7 +1555,7 @@ FlashReadDpCmd: str w22, [x19,2052] str w20, [x19,2052] str w0, [x19,2056] -.L188: +.L189: mov w0, w21 bl FlashSetRandomizer ldr x23, [sp,48] @@ -1546,36 +1565,44 @@ FlashReadDpCmd: ret .size FlashReadDpCmd, .-FlashReadDpCmd .align 2 - .global FlashDeInit - .type FlashDeInit, %function -FlashDeInit: + .global ftl_flash_de_init + .type ftl_flash_de_init, %function +ftl_flash_de_init: stp x29, x30, [sp, -32]! mov w0, 0 add x29, sp, 0 stp x19, x20, [sp,16] bl NandcWaitFlashReady + adrp x19, .LANCHOR0 bl FlashSetReadRetryDefault - adrp x0, .LANCHOR0 - add x20, x0, :lo12:.LANCHOR0 - mov x19, x0 - ldrb w1, [x20,1856] - cbz w1, .L190 + add x0, x19, :lo12:.LANCHOR0 + ldr w1, [x0,1856] + mov w0, 12336 + movk w0, 0x5638, lsl 16 + cmp w1, w0 + bne .L191 + mov w0, 0 + bl flash_enter_slc_mode +.L191: + add x20, x19, :lo12:.LANCHOR0 + ldrb w0, [x20,1860] + cbz w0, .L192 ldrb w0, [x20,1844] - tbz x0, 0, .L190 + tbz x0, 0, .L192 mov w0, 1 bl FlashSetInterfaceMode mov w0, 1 bl NandcSetMode - strb wzr, [x20,1856] -.L190: - add x0, x19, :lo12:.LANCHOR0 - ldr x0, [x0,24] + strb wzr, [x20,1860] +.L192: + add x19, x19, :lo12:.LANCHOR0 + ldr x0, [x19,24] str wzr, [x0,336] mov w0, 0 ldp x19, x20, [sp,16] ldp x29, x30, [sp], 32 ret - .size FlashDeInit, .-FlashDeInit + .size ftl_flash_de_init, .-ftl_flash_de_init .align 2 .global NandcRandmzSel .type NandcRandmzSel, %function @@ -1604,37 +1631,37 @@ NandcTimeCfg: add x1, x1, :lo12:.LANCHOR0 sdiv w0, w0, w2 cmp w0, 250 - ble .L199 - ldr x0, [x1,128] - mov w1, 8354 - b .L206 -.L199: - cmp w0, 220 ble .L201 ldr x0, [x1,128] - b .L207 + mov w1, 8354 + b .L208 .L201: + cmp w0, 220 + ble .L203 + ldr x0, [x1,128] + b .L209 +.L203: cmp w0, 185 - ble .L202 + ble .L204 ldr x0, [x1,128] mov w1, 4226 - b .L206 -.L202: + b .L208 +.L204: cmp w0, 160 ldr x0, [x1,128] - ble .L203 + ble .L205 mov w1, 4194 - b .L206 -.L203: + b .L208 +.L205: cmp w19, 35 mov w1, 4193 - bls .L206 + bls .L208 cmp w19, 99 mov w1, 4225 - bls .L206 -.L207: + bls .L208 +.L209: mov w1, 8322 -.L206: +.L208: str w1, [x0,4] ldr x19, [sp,16] ldp x29, x30, [sp], 32 @@ -1650,15 +1677,15 @@ FlashTimingCfg: and w1, w1, -33 cmp w1, 1 add x29, sp, 0 - bls .L209 + bls .L211 mov w1, 8322 cmp w0, w1 - bne .L210 -.L209: + bne .L212 +.L211: adrp x1, .LANCHOR0+128 ldr x1, [x1,#:lo12:.LANCHOR0+128] str w0, [x1,4] -.L210: +.L212: adrp x0, .LANCHOR1+493 ldrb w0, [x0,#:lo12:.LANCHOR1+493] bl NandcTimeCfg @@ -1670,33 +1697,39 @@ FlashTimingCfg: .type NandcInit, %function NandcInit: stp x29, x30, [sp, -32]! - mov w2, 1 + mov w3, 1 add x29, sp, 0 str x19, [sp,16] adrp x19, .LANCHOR0 + add x1, x19, :lo12:.LANCHOR0 + str w3, [x1,48] + mov w3, 2 + str wzr, [x1,32] + str w3, [x1,64] + mov w3, 3 + str x0, [x1,24] + str w3, [x1,80] + str x0, [x1,40] + str x0, [x1,56] + str x0, [x1,72] + str x0, [x1,128] + ldr w2, [x0] + ubfx x3, x2, 13, 1 + str w3, [x1,1864] + ldr w3, [x0,352] + and w2, w2, 245760 + orr w2, w2, 256 + ubfx x3, x3, 16, 4 + str w3, [x1,1868] + ldr w3, [x0,352] + str w3, [x1,1856] + cmp w3, 2049 + bne .L214 + mov w3, 8 + str w3, [x1,1868] +.L214: add x19, x19, :lo12:.LANCHOR0 - str w2, [x19,48] - mov w2, 2 - str x0, [x19,24] - str x0, [x19,40] - str w2, [x19,64] - mov w2, 3 - str x0, [x19,56] - str w2, [x19,80] - str x0, [x19,72] - str x0, [x19,128] - str wzr, [x19,32] - ldr w1, [x0] - ubfx x2, x1, 13, 1 - str w2, [x19,1860] - ldr w2, [x0,352] - and w1, w1, 245760 - orr w1, w1, 256 - ubfx x2, x2, 16, 4 - str w2, [x19,1864] - ldr w2, [x0,352] - str w2, [x19,1868] - str w1, [x0] + str w2, [x0] ldr x0, [x19,128] str wzr, [x0,336] mov w0, 40 @@ -1755,21 +1788,21 @@ NandcBchSel: str w0, [x1,1932] mov w1, 4096 str w3, [x2,8] - bne .L214 -.L217: + bne .L217 +.L220: and w1, w1, -17 - b .L215 -.L214: + b .L218 +.L217: cmp w0, 24 - bne .L216 + bne .L219 orr w1, w1, 16 - b .L215 -.L216: + b .L218 +.L219: cmp w0, 40 orr w1, w1, 262144 orr w1, w1, 16 - beq .L217 -.L215: + beq .L220 +.L218: orr w1, w1, 1 str w1, [x2,12] ret @@ -1788,116 +1821,87 @@ FlashBchSel: ret .size FlashBchSel, .-FlashBchSel .align 2 - .global FlashResume - .type FlashResume, %function -FlashResume: + .global ftl_flash_resume + .type ftl_flash_resume, %function +ftl_flash_resume: stp x29, x30, [sp, -48]! add x29, sp, 0 stp x19, x20, [sp,16] adrp x20, .LANCHOR0 - str x21, [sp,32] - add x0, x20, :lo12:.LANCHOR0 + add x1, x20, :lo12:.LANCHOR0 + stp x21, x22, [sp,32] + add x19, x1, 1620 mov x21, 0 - add x19, x0, 1620 - ldr x1, [x0,128] - ldr w2, [x0,136] - str w2, [x1] - ldr w2, [x0,140] - ldr x1, [x0,128] - str w2, [x1,4] - ldr w2, [x0,144] - ldr x1, [x0,128] - str w2, [x1,8] - ldr w2, [x0,148] - str w2, [x1,12] - ldr w2, [x0,152] - str w2, [x1,304] - ldr w2, [x0,156] - str w2, [x1,308] - ldr w2, [x0,160] - str w2, [x1,336] - ldr w2, [x0,164] - str w2, [x1,344] -.L224: + ldr x0, [x1,128] + ldr w2, [x1,136] + ldr w22, [x1,152] + str w2, [x0] + ldr w2, [x1,140] + ldr x0, [x1,128] + str w2, [x0,4] + ldr w0, [x1,144] + ldr x2, [x1,128] + str w0, [x2,8] + ldr w0, [x1,148] + str w0, [x2,12] + str w22, [x2,304] + ldr w0, [x1,156] + str w0, [x2,308] + ldr w0, [x1,160] + str w0, [x2,336] + ldr w0, [x1,164] + str w0, [x2,344] +.L227: lsl x0, x21, 3 - ldrb w0, [x0,x19] - sub w0, w0, #1 - uxtb w0, w0 - cmp w0, 253 - bhi .L223 + ldrb w1, [x0,x19] + sub w1, w1, #1 + uxtb w1, w1 + cmp w1, 253 + bhi .L226 mov w0, w21 bl FlashReset -.L223: +.L226: add x21, x21, 1 cmp x21, 4 - bne .L224 + bne .L227 add x19, x20, :lo12:.LANCHOR0 - ldrb w0, [x19,1856] - cbz w0, .L225 + ldrb w0, [x19,1860] + cbz w0, .L228 mov w0, 1 bl NandcSetMode ldrb w0, [x19,1844] bl FlashSetInterfaceMode ldrb w0, [x19,1844] bl NandcSetMode - ldr w0, [x19,152] - lsr w0, w0, 8 + lsr w0, w22, 8 bl NandcSetDdrPara -.L225: +.L228: add x20, x20, :lo12:.LANCHOR0 ldr x0, [x20,744] ldrb w0, [x0,20] bl FlashBchSel - ldr x21, [sp,32] - mov w0, 0 ldp x19, x20, [sp,16] + ldp x21, x22, [sp,32] ldp x29, x30, [sp], 48 ret - .size FlashResume, .-FlashResume + .size ftl_flash_resume, .-ftl_flash_resume .align 2 - .global NandCIrqEnable - .type NandCIrqEnable, %function -NandCIrqEnable: - ldr w3, [x0,368] - mov x2, 1 - lsl x1, x2, x1 - orr w3, w3, w1 - str w3, [x0,368] - ldr w2, [x0,364] - orr w1, w2, w1 - str w1, [x0,364] - ret - .size NandCIrqEnable, .-NandCIrqEnable - .align 2 - .global NandCIrqDisable - .type NandCIrqDisable, %function -NandCIrqDisable: - ldr w3, [x0,368] - mov x2, 1 - lsl x1, x2, x1 - orr w3, w3, w1 - str w3, [x0,368] - ldr w2, [x0,364] - bic w1, w2, w1 - str w1, [x0,364] - ret - .size NandCIrqDisable, .-NandCIrqDisable - .align 2 - .global rk_nandc_get_irq_status - .type rk_nandc_get_irq_status, %function -rk_nandc_get_irq_status: + .global ftl_nandc_get_irq_status + .type ftl_nandc_get_irq_status, %function +ftl_nandc_get_irq_status: ldr w0, [x0,372] ret - .size rk_nandc_get_irq_status, .-rk_nandc_get_irq_status + .size ftl_nandc_get_irq_status, .-ftl_nandc_get_irq_status .align 2 .global rk_nandc_flash_ready .type rk_nandc_flash_ready, %function rk_nandc_flash_ready: - stp x29, x30, [sp, -16]! - mov w1, 1 - add x29, sp, 0 - bl NandCIrqDisable - ldp x29, x30, [sp], 16 + ldr w1, [x0,368] + orr w1, w1, 2 + str w1, [x0,368] + ldr w1, [x0,364] + and w1, w1, -3 + str w1, [x0,364] ret .size rk_nandc_flash_ready, .-rk_nandc_flash_ready .align 2 @@ -1909,19 +1913,25 @@ NandcIqrWaitFlashReady: str x19, [sp,16] mov x19, x0 bl rk_nandc_rb_irq_flag_init - mov x0, x19 - mov w1, 1 - bl NandCIrqEnable + ldr w0, [x19,368] + orr w0, w0, 2 + str w0, [x19,368] + ldr w0, [x19,364] + orr w0, w0, 2 + str w0, [x19,364] ldr w0, [x19] - tbnz x0, 9, .L235 + tbnz x0, 9, .L236 mov x0, x19 bl wait_for_nand_flash_ready - b .L234 + b .L235 +.L236: + ldr w0, [x19,368] + orr w0, w0, 2 + str w0, [x19,368] + ldr w0, [x19,364] + and w0, w0, -3 + str w0, [x19,364] .L235: - mov x0, x19 - mov w1, 1 - bl NandCIrqDisable -.L234: ldr x19, [sp,16] ldp x29, x30, [sp], 32 ret @@ -1945,17 +1955,17 @@ FlashEraseBlocks: mov w20, 0 stp x21, x22, [sp,32] stp x25, x26, [sp,64] - cbz w2, .L238 + cbz w2, .L239 mov w1, w23 bl FlashEraseSLc2KBlocks - b .L239 -.L238: + b .L240 +.L239: mov w28, 56 add x25, x19, 1652 mov x26, 24 -.L264: +.L270: cmp w20, w23 - bcs .L265 + bcs .L271 umull x5, w20, w28 mov w1, 0 sub w4, w23, w20 @@ -1970,32 +1980,32 @@ FlashEraseBlocks: ldr w0, [x29,124] ldr x5, [x29,96] cmp w0, w1 - bcc .L240 + bcc .L241 mov w0, -1 str w0, [x24,x5] - b .L241 -.L240: + b .L242 +.L241: ldrb w1, [x19,1937] cmp w1, wzr uxtw x1, w0 csel w22, w22, wzr, ne madd x1, x1, x26, x25 ldr x1, [x1,8] - cbz x1, .L243 + cbz x1, .L244 bl FlashWaitCmdDone -.L243: +.L244: ldr w0, [x29,124] ldr w1, [x29,120] madd x2, x0, x26, x25 str x21, [x2,8] str xzr, [x2,16] str w1, [x2,4] - cbz w22, .L244 + cbz w22, .L245 add w1, w20, 1 umull x1, w1, w28 add x1, x24, x1 str x1, [x2,16] -.L244: +.L245: add x1, x19, x0 mul x0, x0, x26 ldrb w21, [x1,1848] @@ -2003,16 +2013,16 @@ FlashEraseBlocks: mov w0, w21 bl NandcFlashCs cmp w27, 1 - bne .L245 + bne .L246 ldrb w0, [x19,120] - cbz w0, .L245 + cbz w0, .L246 mov w0, w21 bl flash_enter_slc_mode - b .L246 -.L245: + b .L247 +.L246: mov w0, w21 bl flash_exit_slc_mode -.L246: +.L247: ldr w1, [x29,124] add x0, x19, 708 add w20, w20, w22 @@ -2028,10 +2038,10 @@ FlashEraseBlocks: bl FlashEraseCmd mov w0, w21 bl NandcFlashDeCs -.L241: +.L242: add w20, w20, 1 - b .L264 -.L265: + b .L270 +.L271: ldr x0, [x29,104] mov x20, 0 mov x22, 24 @@ -2039,25 +2049,42 @@ FlashEraseBlocks: add x21, x19, 1652 ldr x0, [x19,128] bl NandcIqrWaitFlashReady -.L248: +.L249: ldrb w0, [x19,1845] cmp w0, w20 - bls .L266 + bls .L272 mov w0, w20 bl FlashWaitCmdDone cmp w27, 1 - bne .L249 + bne .L250 ldrb w0, [x19,120] - cbz w0, .L249 + cbz w0, .L250 mul x0, x20, x22 ldrb w0, [x0,x21] bl flash_exit_slc_mode -.L249: +.L250: add x20, x20, 1 - b .L248 -.L266: + b .L249 +.L272: + ldr w0, [x19,1940] + cbnz w0, .L252 +.L254: mov w0, 0 -.L239: + b .L240 +.L252: + ldrb w0, [x19,1620] + cmp w0, 69 + bne .L254 + mov x0, 0 + mov x1, 56 +.L253: + cmp w23, w0 + bls .L254 + mul x2, x0, x1 + add x0, x0, 1 + str wzr, [x24,x2] + b .L253 +.L240: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -2070,11 +2097,12 @@ FlashEraseBlocks: .global rk_nandc_flash_xfer_completed .type rk_nandc_flash_xfer_completed, %function rk_nandc_flash_xfer_completed: - stp x29, x30, [sp, -16]! - mov w1, 0 - add x29, sp, 0 - bl NandCIrqDisable - ldp x29, x30, [sp], 16 + ldr w1, [x0,368] + orr w1, w1, 1 + str w1, [x0,368] + ldr w1, [x0,364] + and w1, w1, -2 + str w1, [x0,364] ret .size rk_nandc_flash_xfer_completed, .-rk_nandc_flash_xfer_completed .align 2 @@ -2106,11 +2134,11 @@ NandcSendDumpDataStart: .type NandcSendDumpDataDone, %function NandcSendDumpDataDone: sub sp, sp, #16 -.L270: +.L276: ldr w1, [x0,8] str w1, [sp,8] ldr w1, [sp,8] - tbz x1, 20, .L270 + tbz x1, 20, .L276 add sp, sp, 16 ret .size NandcSendDumpDataDone, .-NandcSendDumpDataDone @@ -2125,100 +2153,103 @@ NandcXferStart: stp x19, x20, [sp,16] adrp x19, .LANCHOR0 str x25, [sp,64] - stp x23, x24, [sp,48] - uxtb w24, w1 + uxtb w25, w1 add x1, x19, :lo12:.LANCHOR0 - uxtb w25, w2 + stp x23, x24, [sp,48] + uxtb w23, w2 add x2, x1, 24 stp x21, x22, [sp,32] mov x22, x4 add x4, x2, x0 ldr x21, [x2,x0] mov w2, 16 - ubfiz w20, w24, 1, 1 + ubfiz w20, w25, 1, 1 ldrb w0, [x4,8] orr w20, w20, 8 - ldr w23, [x21,12] - bfi w23, w2, 8, 8 - and w23, w23, -9 - bfi w23, w0, 5, 3 + ldr w24, [x21,12] + bfi w24, w2, 8, 8 + and w24, w24, -9 + bfi w24, w0, 5, 3 mov w0, 1 bfi w20, w0, 5, 2 - ldr w0, [x1,1864] + ldr w0, [x1,1868] orr w20, w20, 536870912 cmp w0, 3 orr w20, w20, 1024 bfi w20, w3, 4, 1 - bls .L274 + bls .L280 ldr w0, [x21,16] cmp x5, xzr str w0, [x29,88] - cset w8, ne + cset w7, ne ldr w0, [x29,88] and w0, w0, -5 str w0, [x29,88] - cbnz w8, .L288 - cbz x22, .L275 -.L288: - cbnz w24, .L277 -.L285: + cbnz w7, .L294 + cbz x22, .L281 +.L294: + cbnz w25, .L283 +.L291: mov x0, x21 + add w23, w23, 1 + asr w23, w23, 1 bl rk_nandc_xfer_irq_flag_init - mov x0, x21 - mov w1, 0 - bl NandCIrqEnable - add w2, w25, 1 + bfi w20, w23, 22, 6 + ldr w0, [x21,368] + orr w0, w0, 1 + str w0, [x21,368] + ldr w0, [x21,364] + orr w0, w0, 1 + str w0, [x21,364] mov x0, x22 - asr w2, w2, 1 - bfi w20, w2, 22, 6 - cbnz x22, .L279 + cbnz x22, .L285 add x0, x19, :lo12:.LANCHOR0 ldr x0, [x0,1880] - b .L279 -.L277: + b .L285 +.L283: add x1, x19, :lo12:.LANCHOR0 - mov w6, 128 - mov w3, 0 - lsr w2, w25, 1 - mov w4, w3 + mov w4, 128 + mov w2, 0 + lsr w8, w23, 1 + mov w3, w2 mov w9, -1 ldr w0, [x1,1932] cmp w0, 25 mov w0, 64 - csel w6, w0, w6, cc -.L281: - cmp w4, w2 - bcs .L285 - lsr w0, w3, 2 + csel w4, w0, w4, cc +.L287: + cmp w3, w8 + bcs .L291 + lsr w0, w2, 2 ubfiz x0, x0, 2, 30 - cbz w8, .L282 - ldrh w7, [x5,2] + cbz w7, .L288 + ldrh w6, [x5,2] ldr x10, [x1,1888] ldrh w11, [x5],4 - orr w7, w11, w7, lsl 16 - str w7, [x10,x0] - b .L283 -.L282: - ldr x7, [x1,1888] - str w9, [x7,x0] -.L283: - add w4, w4, 1 - add w3, w3, w6 - b .L281 -.L279: + orr w6, w11, w6, lsl 16 + str w6, [x10,x0] + b .L289 +.L288: + ldr x6, [x1,1888] + str w9, [x6,x0] +.L289: + add w3, w3, 1 + add w2, w2, w4 + b .L287 +.L285: add x19, x19, :lo12:.LANCHOR0 - ubfx x25, x20, 22, 5 - mov w2, w24 + ubfx x23, x20, 22, 5 + mov w2, w25 and x22, x22, 3 ldr x1, [x19,1888] str x1, [x19,1904] - lsl w1, w25, 10 + lsl w1, w23, 10 str x0, [x19,1896] bl rknand_dma_map_single str w0, [x19,1912] ldr x0, [x19,1904] - lsl w1, w25, 7 - mov w2, w24 + lsl w1, w23, 7 + mov w2, w25 bl rknand_dma_map_single str w0, [x19,1916] mov w0, 1 @@ -2235,14 +2266,14 @@ NandcXferStart: ldr w0, [x29,88] orr w0, w0, 448 str w0, [x29,88] - cbnz x22, .L286 + cbnz x22, .L292 ldr w0, [x29,88] mov w1, 2 bfi w0, w1, 3, 3 str w0, [x29,88] -.L286: +.L292: ldr w0, [x29,88] - cmp w24, wzr + cmp w25, wzr cset w1, eq orr w0, w0, 4 str w0, [x29,88] @@ -2252,11 +2283,11 @@ NandcXferStart: ldr w0, [x29,88] orr w0, w0, 1 str w0, [x29,88] -.L275: +.L281: ldr w0, [x29,88] str w0, [x21,16] -.L274: - str w23, [x21,12] +.L280: + str w24, [x21,12] str w20, [x21,8] orr w20, w20, 4 str w20, [x21,8] @@ -2273,14 +2304,14 @@ NandcXferStart: Ftl_log2: mov w2, 1 mov w1, 0 -.L293: +.L299: cmp w2, w0 - bhi .L295 + bhi .L301 add w1, w1, 1 lsl w2, w2, 1 uxth w1, w1 - b .L293 -.L295: + b .L299 +.L301: sub w0, w1, #1 ret .size Ftl_log2, .-Ftl_log2 @@ -2300,17 +2331,17 @@ FtlSysBlkNumInit: csel w0, w0, w1, hi adrp x1, .LANCHOR0 add x1, x1, :lo12:.LANCHOR0 - ldrh w2, [x1,1944] - ldrh w3, [x1,1954] - str w0, [x1,1940] + ldrh w2, [x1,1948] + ldrh w3, [x1,1958] + str w0, [x1,1944] mul w2, w0, w2 sub w0, w3, w0 - strh w0, [x1,1952] - ldr w0, [x1,1960] - str w2, [x1,1948] + strh w0, [x1,1956] + ldr w0, [x1,1964] + str w2, [x1,1952] sub w2, w0, w2 mov w0, 0 - str w2, [x1,1956] + str w2, [x1,1960] ret .size FtlSysBlkNumInit, .-FtlSysBlkNumInit .align 2 @@ -2326,40 +2357,40 @@ FtlConstantsInit: stp x25, x26, [sp,64] str x27, [sp,80] mov x23, x0 - adrp x19, .LANCHOR0 + adrp x20, .LANCHOR0 ldrh w6, [x0,8] - add x0, x19, :lo12:.LANCHOR0 + add x0, x20, :lo12:.LANCHOR0 ldrh w2, [x23,10] ldrh w1, [x23,12] ldrh w4, [x23,14] - strh w6, [x0,1964] - strh w2, [x0,1966] - strh w1, [x0,1968] - strh w4, [x0,1954] -.L300: + strh w6, [x0,1968] + strh w2, [x0,1970] + strh w1, [x0,1972] + strh w4, [x0,1958] +.L306: add x5, x0, 1976 strb w3, [x3,x5] add x3, x3, 1 cmp x3, 32 - bne .L300 + bne .L306 ldrh w3, [x23,20] ldrb w0, [x23,15] cmp w3, w0 - bcs .L301 + bcs .L307 uxtb w8, w1 mov w3, 0 mul w11, w1, w2 ubfiz w10, w8, 1, 7 - add x12, x19, :lo12:.LANCHOR0 -.L302: + add x12, x20, :lo12:.LANCHOR0 +.L308: cmp w3, w1 - bcs .L304 + bcs .L310 uxtb w0, w3 mov w5, w3 mov w7, 0 -.L305: +.L311: cmp w7, w2 - bcs .L328 + bcs .L333 add x9, x12, 1976 add w13, w5, w11 add w14, w0, w8 @@ -2369,40 +2400,40 @@ FtlConstantsInit: strb w14, [x9,x13] add w5, w5, w1 uxtb w0, w0 - b .L305 -.L328: + b .L311 +.L333: add w3, w3, 1 - b .L302 -.L304: - add x0, x19, :lo12:.LANCHOR0 + b .L308 +.L310: + add x0, x20, :lo12:.LANCHOR0 lsl w2, w2, 1 lsr w4, w4, 1 - strh w2, [x0,1966] - strh w4, [x0,1954] -.L301: - add x0, x19, :lo12:.LANCHOR0 + strh w2, [x0,1970] + strh w4, [x0,1958] +.L307: + add x0, x20, :lo12:.LANCHOR0 mov w2, 5 cmp w6, 1 strh w2, [x0,2008] strh wzr, [x0,2010] - bne .L306 + bne .L312 strh w6, [x0,2008] -.L306: - add x0, x19, :lo12:.LANCHOR0 +.L312: + add x0, x20, :lo12:.LANCHOR0 mov w2, 4352 ldrb w26, [x0,8] strh w2, [x0,2012] - cbz w26, .L307 + cbz w26, .L313 mov w2, 384 strh w2, [x0,2012] -.L307: - add x21, x19, :lo12:.LANCHOR0 - ldrh w20, [x21,1954] - ldrh w22, [x21,1966] +.L313: + add x21, x20, :lo12:.LANCHOR0 + ldrh w19, [x21,1958] + ldrh w22, [x21,1970] mul w22, w1, w22 - mul w1, w20, w1 + mul w1, w19, w1 uxth w22, w22 - strh w22, [x21,1944] + strh w22, [x21,1948] uxth w0, w1 strh w0, [x21,2014] bl Ftl_log2 @@ -2420,23 +2451,23 @@ FtlConstantsInit: lsl w2, w24, 9 uxth w3, w0 strh w0, [x21,2026] - cmp w20, 1024 + cmp w19, 1024 ldrh w0, [x23,26] strh w2, [x21,2028] ubfx x2, x2, 9, 7 strh w0, [x21,2032] lsl w2, w2, 1 - mul w0, w22, w20 + mul w0, w22, w19 strh w2, [x21,2030] - str w0, [x21,1960] - bls .L308 - and w0, w20, 255 + str w0, [x21,1964] + bls .L314 + and w0, w19, 255 strh w0, [x21,2010] -.L308: - add x2, x19, :lo12:.LANCHOR0 +.L314: + add x2, x20, :lo12:.LANCHOR0 mul w0, w24, w27 ldrh w1, [x2,2010] - sub w1, w20, w1 + sub w1, w19, w1 mul w1, w22, w1 mul w1, w1, w24 mul w1, w1, w25 @@ -2447,81 +2478,87 @@ FtlConstantsInit: sdiv w0, w1, w0 uxth w0, w0 cmp w0, 4 - bhi .L326 + bhi .L330 mov w0, 4 -.L326: +.L330: strh w0, [x2,2040] - cbz w26, .L311 - add x0, x19, :lo12:.LANCHOR0 + cbz w26, .L317 + add x0, x20, :lo12:.LANCHOR0 mov w1, 640 strh w1, [x0,2012] -.L311: - add x1, x19, :lo12:.LANCHOR0 - lsl w20, w20, 6 +.L317: + add x1, x20, :lo12:.LANCHOR0 + lsl w19, w19, 6 cmp w22, 1 ldrh w0, [x1,2012] asr w0, w0, w3 add w3, w3, 9 - asr w20, w20, w3 - strh w20, [x1,2044] - and w20, w20, 65535 + asr w19, w19, w3 + strh w19, [x1,2044] + and w19, w19, 65535 add w0, w0, 2 strh w0, [x1,2042] - mul w0, w20, w22 + mul w0, w19, w22 str w0, [x1,2048] - add w20, w20, 8 + add w19, w19, 8 ldrh w0, [x1,2040] udiv w0, w0, w22 - add w20, w20, w0 - bne .L327 - add w20, w20, 4 -.L327: - str w20, [x1,1940] - add x20, x19, :lo12:.LANCHOR0 - ldrh w0, [x20,1940] + add w19, w19, w0 + bne .L331 + add w19, w19, 4 +.L331: + str w19, [x1,1944] + add x19, x20, :lo12:.LANCHOR0 + ldrh w0, [x19,1944] bl FtlSysBlkNumInit - str wzr, [x20,2060] - ldr w0, [x20,1940] - str w0, [x20,2052] - ldr w0, [x20,1956] - ldrh w1, [x20,2018] + str wzr, [x19,2060] + ldr w0, [x19,1944] + str w0, [x19,2052] + ldr w0, [x19,1960] + ldrh w1, [x19,2018] lsl w0, w0, 2 - ldrh w3, [x20,2024] - ldrh w2, [x20,2040] + ldrh w3, [x19,2024] + ldrh w2, [x19,2040] mul w1, w0, w1 - ldrh w0, [x20,2026] + ldrh w0, [x19,2026] + ldrb w5, [x19,120] add w0, w0, 9 lsr w0, w1, w0 mov w1, 2048 add w0, w0, 2 sdiv w1, w1, w3 - strh w1, [x20,2058] + strh w1, [x19,2058] uxth w0, w0 - strh w0, [x20,2056] + strh w0, [x19,2056] add w1, w2, 3 - strh w1, [x20,2040] - ldr w1, [x20,2048] + strh w1, [x19,2040] + ldr w1, [x19,2048] add w4, w1, 3 - str w4, [x20,2048] - ldrb w4, [x20,120] - cbz w4, .L314 + str w4, [x19,2048] + cbz w5, .L320 add w2, w2, 4 add w1, w1, 5 - strh w2, [x20,2040] - str w1, [x20,2048] -.L314: - add x19, x19, :lo12:.LANCHOR0 - ldrh w1, [x19,1952] - strh wzr, [x19,2064] + strh w2, [x19,2040] + b .L332 +.L320: + cmp w4, 7 + bhi .L321 + mov w1, 8 +.L332: + str w1, [x19,2048] +.L321: + add x20, x20, :lo12:.LANCHOR0 + ldrh w1, [x20,1956] + strh wzr, [x20,2064] 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 .L315 + bcs .L322 mov w0, 1 - strh w0, [x19,2064] -.L315: + strh w0, [x20,2064] +.L322: mov w0, 0 ldr x27, [sp,80] ldp x19, x20, [sp,16] @@ -2540,23 +2577,23 @@ IsBlkInVendorPart: add x1, x1, :lo12:.LANCHOR0 mov w0, 0 ldrh w2, [x1,2066] - cbz w2, .L330 + cbz w2, .L335 ldrh w2, [x1,2040] ldr x3, [x1,2072] mov x1, 0 -.L331: +.L336: cmp w2, w1, uxth - bls .L336 + bls .L341 add x1, x1, 1 add x0, x3, x1, lsl 1 ldrh w0, [x0,-2] cmp w0, w4 - bne .L331 + bne .L336 mov w0, 1 - b .L330 -.L336: + b .L335 +.L341: mov w0, 0 -.L330: +.L335: ret .size IsBlkInVendorPart, .-IsBlkInVendorPart .align 2 @@ -2568,25 +2605,25 @@ FtlCacheMetchLpa: add x2, x2, :lo12:.LANCHOR0 mov w0, 0 ldr w3, [x2,2080] - cbz w3, .L338 + cbz w3, .L343 ldr x5, [x2,2088] mov x0, 56 mov x2, 0 -.L339: +.L344: cmp w3, w2 - bls .L348 + bls .L353 madd x4, x2, x0, x5 add x2, x2, 1 ldr w4, [x4,24] cmp w4, w6 - bcc .L339 + bcc .L344 cmp w4, w1 - bhi .L339 + bhi .L344 mov w0, 1 - b .L338 -.L348: + b .L343 +.L353: mov w0, 0 -.L338: +.L343: ret .size FtlCacheMetchLpa, .-FtlCacheMetchLpa .align 2 @@ -2598,13 +2635,13 @@ FtlGetCap: ret .size FtlGetCap, .-FtlGetCap .align 2 - .global FtlGetCapacity - .type FtlGetCapacity, %function -FtlGetCapacity: + .global ftl_get_density + .type ftl_get_density, %function +ftl_get_density: adrp x0, .LANCHOR0+2060 ldr w0, [x0,#:lo12:.LANCHOR0+2060] ret - .size FtlGetCapacity, .-FtlGetCapacity + .size ftl_get_density, .-ftl_get_density .align 2 .global FtlGetLpn .type FtlGetLpn, %function @@ -2614,28 +2651,6 @@ FtlGetLpn: ret .size FtlGetLpn, .-FtlGetLpn .align 2 - .global FtlGetCurEraseBlock - .type FtlGetCurEraseBlock, %function -FtlGetCurEraseBlock: - adrp x1, .LANCHOR0 - add x1, x1, :lo12:.LANCHOR0 - ldrh w2, [x1,1944] - ldr w0, [x1,2100] - mul w0, w2, w0 - ret - .size FtlGetCurEraseBlock, .-FtlGetCurEraseBlock - .align 2 - .global FtlGetAllBlockNum - .type FtlGetAllBlockNum, %function -FtlGetAllBlockNum: - adrp x1, .LANCHOR0 - add x1, x1, :lo12:.LANCHOR0 - ldrh w2, [x1,1954] - ldrh w0, [x1,1944] - mul w0, w2, w0 - ret - .size FtlGetAllBlockNum, .-FtlGetAllBlockNum - .align 2 .global FtlBbmMapBadBlock .type FtlBbmMapBadBlock, %function FtlBbmMapBadBlock: @@ -2708,21 +2723,21 @@ FtlBbtCalcTotleCnt: mov w19, 0 mov w20, w19 ldrh w1, [x0,2014] - ldrh w21, [x0,1966] + ldrh w21, [x0,1970] mul w21, w1, w21 -.L358: +.L361: cmp w20, w21 - bge .L364 + bge .L367 mov w0, w20 bl FtlBbmIsBadBlock - cbz w0, .L359 + cbz w0, .L362 add w19, w19, 1 uxth w19, w19 -.L359: +.L362: add w20, w20, 1 uxth w20, w20 - b .L358 -.L364: + b .L361 +.L367: mov w0, w19 ldr x21, [sp,32] ldp x19, x20, [sp,16] @@ -2737,7 +2752,7 @@ V2P_block: uxth w0, w0 add x3, x3, :lo12:.LANCHOR0 uxth w1, w1 - ldrh w4, [x3,1968] + ldrh w4, [x3,1972] udiv w2, w0, w4 msub w0, w2, w4, w0 madd w0, w1, w4, w0 @@ -2752,7 +2767,7 @@ P2V_plane: adrp x2, .LANCHOR0 uxth w0, w0 add x2, x2, :lo12:.LANCHOR0 - ldrh w1, [x2,1968] + ldrh w1, [x2,1972] ldrh w3, [x2,2014] udiv w2, w0, w1 udiv w3, w0, w3 @@ -2770,7 +2785,7 @@ P2V_block_in_plane: ldrh w3, [x2,2014] udiv w1, w0, w3 msub w0, w1, w3, w0 - ldrh w1, [x2,1968] + ldrh w1, [x2,1972] uxth w0, w0 udiv w0, w0, w1 ret @@ -2781,16 +2796,16 @@ P2V_block_in_plane: ftl_cmp_data_ver: cmp w0, w1 mov w2, -2147483648 - bls .L369 + bls .L372 sub w1, w0, w1 cmp w1, w2 cset w0, ls - b .L370 -.L369: + b .L373 +.L372: sub w1, w1, w0 cmp w1, w2 cset w0, hi -.L370: +.L373: ret .size ftl_cmp_data_ver, .-ftl_cmp_data_ver .align 2 @@ -2818,41 +2833,45 @@ FtlFreeSysBlkQueueFull: .type FtlFreeSysBlkQueueIn, %function FtlFreeSysBlkQueueIn: stp x29, x30, [sp, -48]! - adrp x2, .LANCHOR0 uxth w1, w1 add x29, sp, 0 stp x21, x22, [sp,32] - uxth w22, w0 - add x0, x2, :lo12:.LANCHOR0 stp x19, x20, [sp,16] + uxth w21, w0 + mov w0, 65533 + sub w2, w21, #1 + cmp w0, w2, uxth + bcc .L376 + adrp x2, .LANCHOR0 + add x0, x2, :lo12:.LANCHOR0 mov x19, x2 ldrh w0, [x0,2206] cmp w0, 1024 - beq .L373 - cbz w1, .L375 + beq .L376 + cbz w1, .L378 adrp x20, .LANCHOR2 add x20, x20, :lo12:.LANCHOR2 ldr w0, [x20,-96] - cbnz w0, .L375 - mov w0, w22 + cbnz w0, .L378 + mov w0, w21 bl P2V_block_in_plane - uxth w21, w0 + uxth w22, w0 ldr x0, [x20,-88] - lsl w1, w22, 10 + lsl w1, w21, 10 str w1, [x0,4] mov w1, 1 mov w2, w1 ldr x0, [x20,-88] bl FlashEraseBlocks - ubfiz x1, x21, 1, 16 + ubfiz x0, x22, 1, 16 ldr x2, [x20,-80] - ldrh w0, [x2,x1] - add w0, w0, 1 - strh w0, [x2,x1] + ldrh w1, [x2,x0] + add w1, w1, 1 + strh w1, [x2,x0] ldr w0, [x20,-72] add w0, w0, 1 str w0, [x20,-72] -.L375: +.L378: add x1, x19, :lo12:.LANCHOR0 add x1, x1, 2200 ldrh w0, [x1,6] @@ -2862,9 +2881,9 @@ FtlFreeSysBlkQueueIn: add x0, x1, x2, sxtw 1 add w2, w2, 1 and w2, w2, 1023 - strh w22, [x0,8] + strh w21, [x0,8] strh w2, [x1,4] -.L373: +.L376: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x29, x30, [sp], 48 @@ -2874,192 +2893,92 @@ FtlFreeSysBlkQueueIn: .global FtlFreeSysBLkSort .type FtlFreeSysBLkSort, %function FtlFreeSysBLkSort: - stp x29, x30, [sp, -48]! - add x29, sp, 0 - stp x19, x20, [sp,16] - adrp x20, .LANCHOR0 - str x21, [sp,32] - add x20, x20, :lo12:.LANCHOR0 - mov w19, 0 - add x20, x20, 2200 - adrp x21, .LANCHOR2 -.L383: - ldrh w0, [x20,6] - cmp w0, w19 - bls .L391 - ldrh w0, [x20,2] - add w0, w0, w19 - add x0, x20, x0, sxtw 1 - ldrh w0, [x0,8] - bl P2V_block_in_plane - ubfiz x0, x0, 1, 16 - add x1, x21, :lo12:.LANCHOR2 - ubfiz x2, x19, 2, 16 - add w19, w19, 1 - ldr x3, [x1,-64] - uxth w19, w19 - ldr x1, [x1,-80] - ldrh w0, [x1,x0] - str w0, [x3,x2] - b .L383 -.L391: - adrp x4, .LANCHOR0 - adrp x7, .LANCHOR2 - mov w0, 0 - add x4, x4, :lo12:.LANCHOR0 - mov x8, x7 + adrp x0, .LANCHOR2-36 + ldrh w6, [x0,#:lo12:.LANCHOR2-36] + adrp x0, .LANCHOR0 + add x1, x0, :lo12:.LANCHOR0 + add x1, x1, 2200 + ldrh w2, [x1,6] + cbz w2, .L385 + mov w5, 0 + ldrh w3, [x1,2] + ldrh w2, [x1,4] + mov w4, w5 + and w6, w6, 31 +.L387: + cmp w4, w6 + bge .L395 + 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 .L387 +.L395: + cbz w5, .L385 + add x0, x0, :lo12:.LANCHOR0 + strh w3, [x0,2202] + strh w2, [x0,2204] .L385: - ldrh w6, [x4,2206] - sub w1, w6, #1 - cmp w0, w1 - bge .L392 - add x1, x7, :lo12:.LANCHOR2 - add w5, w0, 1 - uxth w5, w5 - ldr x3, [x1,-64] - mov w2, w5 - mov w1, w0 -.L386: - cmp w2, w6 - bcs .L393 - ubfiz x9, x2, 2, 16 - ldr w10, [x3,w1,uxtw 2] - ldr w9, [x3,x9] - cmp w10, w9 - csel w1, w1, w2, ls - add w2, w2, 1 - uxth w2, w2 - b .L386 -.L393: - cmp w0, w1 - beq .L389 - ubfiz x2, x0, 2, 16 - ubfiz x6, x1, 2, 32 - ldr w10, [x3,x2] - ldr w9, [x3,x6] - str w10, [x3,x6] - add x3, x8, :lo12:.LANCHOR2 - ldr x3, [x3,-64] - str w9, [x3,x2] - add x2, x4, 2200 - ldrh w3, [x4,2202] - add w1, w3, w1 - add w0, w3, 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] -.L389: - mov w0, w5 - b .L385 -.L392: - ldp x19, x20, [sp,16] - ldr x21, [sp,32] - ldp x29, x30, [sp], 48 ret .size FtlFreeSysBLkSort, .-FtlFreeSysBLkSort .align 2 - .global remove_from_free_sys_Queue - .type remove_from_free_sys_Queue, %function -remove_from_free_sys_Queue: - stp x29, x30, [sp, -32]! - uxth w1, w0 - mov w0, 0 - add x29, sp, 0 - stp x19, x20, [sp,16] - adrp x20, .LANCHOR0 - add x20, x20, :lo12:.LANCHOR0 - add x20, x20, 2200 - ldrh w3, [x20,6] - cbz w3, .L395 - ldrh w4, [x20,2] - mov w19, w0 -.L396: - cmp w19, w3 - bcs .L401 - add w2, w19, w4 - ubfiz x2, x2, 1, 10 - add x2, x20, x2 - ldrh w0, [x2,8] - cmp w0, w1 - bne .L397 - adrp x0, .LC2 - add x0, x0, :lo12:.LC2 - bl printk - ldrh w0, [x20,2] - add x1, x20, x0, sxtw 1 - ldrh w1, [x1,8] - add w19, w19, w0 - add w0, w0, 1 - and w0, w0, 1023 - ubfiz x19, x19, 1, 10 - add x19, x20, x19 - strh w0, [x20,2] - ldrh w0, [x20,6] - sub w0, w0, #1 - strh w1, [x19,8] - strh w0, [x20,6] - mov w0, 1 - b .L395 -.L397: - add w19, w19, 1 - b .L396 -.L401: - mov w0, 0 -.L395: - ldp x19, x20, [sp,16] - ldp x29, x30, [sp], 32 - ret - .size remove_from_free_sys_Queue, .-remove_from_free_sys_Queue - .align 2 .global FtlFreeSysBlkQueueOut .type FtlFreeSysBlkQueueOut, %function FtlFreeSysBlkQueueOut: - stp x29, x30, [sp, -80]! + stp x29, x30, [sp, -96]! add x29, sp, 0 stp x21, x22, [sp,32] - adrp x22, .LANCHOR0 - str x23, [sp,48] - add x22, x22, :lo12:.LANCHOR0 + adrp x21, .LANCHOR0 + stp x23, x24, [sp,48] + add x21, x21, :lo12:.LANCHOR0 + adrp x23, .LC3 stp x19, x20, [sp,16] - add x2, x22, 2200 - mov w20, 65535 - ldrh w0, [x22,2206] - cbz w0, .L403 - ldrh w1, [x22,2202] + stp x25, x26, [sp,64] + add x22, x21, 2200 + add x23, x23, :lo12:.LC3 + mov x24, x21 +.L397: + ldrh w1, [x22,6] + cbz w1, .L398 adrp x19, .LANCHOR2 - add x23, x19, :lo12:.LANCHOR2 - add x3, x2, x1, sxtw 1 - add w1, w1, 1 - sub w0, w0, #1 - and w1, w1, 1023 - strh w1, [x22,2202] - ldr w1, [x23,-96] - strh w0, [x22,2206] - str x1, [x29,72] - ldrh w20, [x3,8] - cbnz w1, .L403 + ldrh w2, [x22,2] + add x25, x19, :lo12:.LANCHOR2 + sub w1, w1, #1 + add x0, x22, x2, sxtw 1 + strh w1, [x22,6] + add w2, w2, 1 + ldrh w20, [x0,8] + ldr w1, [x25,-96] + and w2, w2, 1023 + strh w2, [x22,2] + cbnz w1, .L399 mov w0, w20 + str x1, [x29,88] bl P2V_block_in_plane - uxth w21, w0 - ldr x0, [x23,-88] + uxth w26, w0 + ldr x0, [x25,-88] lsl w2, w20, 10 - ldr x1, [x29,72] + ldr x1, [x29,88] str w2, [x0,4] - ldrb w0, [x22,120] - cbz w0, .L404 - ldr x0, [x23,-88] + ldrb w0, [x21,120] + cbz w0, .L400 + ldr x0, [x25,-88] mov w2, 1 bl FlashEraseBlocks -.L404: +.L400: add x19, x19, :lo12:.LANCHOR2 mov w1, 1 mov w2, w1 ldr x0, [x19,-88] bl FlashEraseBlocks - ubfiz x0, x21, 1, 16 + ubfiz x0, x26, 1, 16 ldr x2, [x19,-80] ldrh w1, [x2,x0] add w1, w1, 1 @@ -3067,48 +2986,98 @@ FtlFreeSysBlkQueueOut: ldr w0, [x19,-72] add w0, w0, 1 str w0, [x19,-72] -.L403: + b .L399 +.L398: + adrp x0, .LC2 + add x0, x0, :lo12:.LC2 + bl printk +.L401: + b .L401 +.L399: + sub w0, w20, #1 + mov w1, 65533 + cmp w1, w0, uxth + bcs .L402 + ldrh w2, [x24,2206] + mov x0, x23 + mov w1, w20 + bl printk + b .L397 +.L402: mov w0, w20 - ldr x23, [sp,48] ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] - ldp x29, x30, [sp], 80 + ldp x23, x24, [sp,48] + ldp x25, x26, [sp,64] + ldp x29, x30, [sp], 96 ret .size FtlFreeSysBlkQueueOut, .-FtlFreeSysBlkQueueOut .align 2 + .global test_node_in_list + .type test_node_in_list, %function +test_node_in_list: + ldr x2, [x0] + adrp x0, .LANCHOR2-16 + mov x4, -6148914691236517206 + uxth w1, w1 + mov w5, 65535 + ldr x3, [x0,#:lo12:.LANCHOR2-16] + sub x0, x2, x3 + asr x0, x0, 1 + madd x0, x4, x0, x0 + mov w4, 6 + uxth w0, w0 +.L408: + cmp w1, w0 + beq .L409 + ldrh w0, [x2] + cmp w0, w5 + beq .L410 + umull x2, w0, w4 + add x2, x3, x2 + b .L408 +.L409: + mov w0, 1 + b .L407 +.L410: + mov w0, 0 +.L407: + ret + .size test_node_in_list, .-test_node_in_list + .align 2 .global insert_data_list .type insert_data_list, %function insert_data_list: adrp x9, .LANCHOR0 uxth w0, w0 add x9, x9, :lo12:.LANCHOR0 - ldrh w1, [x9,1952] + ldrh w1, [x9,1956] cmp w1, w0 - bls .L412 + bls .L413 adrp x2, .LANCHOR2 mov w7, 6 add x5, x2, :lo12:.LANCHOR2 mov w1, -1 umull x10, w0, w7 mov x3, x2 - ldr x11, [x5,-56] + ldr x11, [x5,-16] add x4, x11, x10 strh w1, [x4,2] strh w1, [x11,x10] - ldr x1, [x5,-48] - cbnz x1, .L413 - str x4, [x5,-48] - b .L412 -.L413: + ldr x1, [x5,-8] + cbnz x1, .L414 + str x4, [x5,-8] + b .L413 +.L414: ubfiz x8, x0, 1, 16 - ldr x13, [x5,-40] + ldr x13, [x2,#:lo12:.LANCHOR2] ldrh w2, [x4,4] mov x14, -6148914691236517206 - ldr x12, [x5,-56] + ldr x12, [x5,-16] mov w18, 65535 ldrh w6, [x13,x8] cmp w2, wzr - ldrh w17, [x9,1952] + ldrh w17, [x9,1956] mul w6, w6, w2 sub x2, x1, x12 asr x2, x2, 1 @@ -3119,13 +3088,13 @@ insert_data_list: add x9, x14, x8 uxth w2, w2 mov w8, w7 -.L421: +.L422: add w5, w5, 1 cmp w0, w2 uxth w5, w5 - beq .L412 + beq .L413 cmp w5, w17 - bhi .L412 + bhi .L413 ubfiz x15, x2, 1, 16 ldrh w16, [x1,4] cmp w16, wzr @@ -3133,47 +3102,47 @@ insert_data_list: mul w7, w7, w16 csinv w7, w7, wzr, ne cmp w7, w6 - bne .L417 + bne .L418 ldrh w15, [x14,x15] ldrh w7, [x9] cmp w15, w7 - bcc .L419 - b .L418 -.L417: - bhi .L418 -.L419: + bcc .L420 + b .L419 +.L418: + bhi .L419 +.L420: ldrh w7, [x1] cmp w7, w18 - bne .L420 + bne .L421 strh w2, [x4,2] add x2, x3, :lo12:.LANCHOR2 strh w0, [x1] - str x4, [x2,-32] - b .L412 -.L420: + str x4, [x2,8] + b .L413 +.L421: umull x1, w7, w8 mov w2, w7 add x1, x12, x1 - b .L421 -.L418: + b .L422 +.L419: strh w2, [x11,x10] ldrh w2, [x1,2] strh w2, [x4,2] add x2, x3, :lo12:.LANCHOR2 - ldr x3, [x2,-48] + ldr x3, [x2,-8] cmp x1, x3 - bne .L422 + bne .L423 strh w0, [x1,2] - str x4, [x2,-48] - b .L412 -.L422: + str x4, [x2,-8] + b .L413 +.L423: ldrh w3, [x1,2] mov w4, 6 - ldr x2, [x2,-56] + ldr x2, [x2,-16] umull x3, w3, w4 strh w0, [x2,x3] strh w0, [x1,2] -.L412: +.L413: mov w0, 0 ret .size insert_data_list, .-insert_data_list @@ -3186,9 +3155,9 @@ INSERT_DATA_LIST: bl insert_data_list adrp x0, .LANCHOR2 add x0, x0, :lo12:.LANCHOR2 - ldrh w1, [x0,-24] + ldrh w1, [x0,16] add w1, w1, 1 - strh w1, [x0,-24] + strh w1, [x0,16] ldp x29, x30, [sp], 16 ret .size INSERT_DATA_LIST, .-INSERT_DATA_LIST @@ -3199,66 +3168,66 @@ insert_free_list: uxth w0, w0 mov w7, 65535 cmp w0, w7 - beq .L427 + beq .L428 adrp x2, .LANCHOR2 mov w6, 6 add x5, x2, :lo12:.LANCHOR2 mov w1, -1 umull x8, w0, w6 mov x3, x2 - ldr x9, [x5,-56] + ldr x9, [x5,-16] add x4, x9, x8 strh w1, [x4,2] strh w1, [x9,x8] - ldr x1, [x5,-16] - cbnz x1, .L428 - str x4, [x5,-16] - b .L427 -.L428: + ldr x1, [x5,24] + cbnz x1, .L429 + str x4, [x5,24] + b .L428 +.L429: ldr x11, [x5,-80] ubfiz x2, x0, 1, 16 - ldr x10, [x5,-56] + ldr x10, [x5,-16] mov x5, -6148914691236517206 ldrh w12, [x11,x2] sub x2, x1, x10 asr x2, x2, 1 madd x2, x5, x2, x2 uxth w2, w2 -.L431: +.L432: ubfiz x5, x2, 1, 16 ldrh w5, [x11,x5] cmp w5, w12 - bcs .L429 + bcs .L430 ldrh w5, [x1] cmp w5, w7 - bne .L430 + bne .L431 strh w2, [x4,2] strh w0, [x1] - b .L427 -.L430: + b .L428 +.L431: umull x1, w5, w6 mov w2, w5 add x1, x10, x1 - b .L431 -.L429: + b .L432 +.L430: ldrh w5, [x1,2] strh w5, [x4,2] strh w2, [x9,x8] add x2, x3, :lo12:.LANCHOR2 - ldr x3, [x2,-16] + ldr x3, [x2,24] cmp x1, x3 - bne .L432 + bne .L433 strh w0, [x1,2] - str x4, [x2,-16] - b .L427 -.L432: + str x4, [x2,24] + b .L428 +.L433: ldrh w3, [x1,2] mov w4, 6 - ldr x2, [x2,-56] + ldr x2, [x2,-16] umull x3, w3, w4 strh w0, [x2,x3] strh w0, [x1,2] -.L427: +.L428: mov w0, 0 ret .size insert_free_list, .-insert_free_list @@ -3271,9 +3240,9 @@ INSERT_FREE_LIST: bl insert_free_list adrp x0, .LANCHOR2 add x0, x0, :lo12:.LANCHOR2 - ldrh w1, [x0,-8] + ldrh w1, [x0,32] add w1, w1, 1 - strh w1, [x0,-8] + strh w1, [x0,32] ldp x29, x30, [sp], 16 ret .size INSERT_FREE_LIST, .-INSERT_FREE_LIST @@ -3288,43 +3257,43 @@ List_remove_node: ldr x3, [x0] mov w7, 65535 umull x1, w1, w5 - ldr x2, [x6,-56] + ldr x2, [x6,-16] add x4, x2, x1 cmp x4, x3 - bne .L435 + bne .L436 ldrh w3, [x2,x1] cmp w3, w7 - bne .L436 + bne .L437 str xzr, [x0] - b .L437 -.L436: + b .L438 +.L437: umull x3, w3, w5 add x3, x2, x3 str x3, [x0] mov w0, -1 strh w0, [x3,2] - b .L437 -.L435: + b .L438 +.L436: ldrh w0, [x2,x1] ldrh w3, [x4,2] cmp w0, w7 - bne .L438 + bne .L439 cmp w3, w0 - beq .L437 + beq .L438 umull x3, w3, w5 mov w0, -1 strh w0, [x2,x3] - b .L437 -.L438: + b .L438 +.L439: umull x0, w0, w5 add x0, x2, x0 strh w3, [x0,2] ldrh w3, [x4,2] - ldr x0, [x6,-56] + ldr x0, [x6,-16] ldrh w7, [x2,x1] umull x3, w3, w5 strh w7, [x0,x3] -.L437: +.L438: mov w0, -1 strh w0, [x2,x1] strh w0, [x4,2] @@ -3341,14 +3310,14 @@ List_pop_index_node: str x19, [sp,16] mov w19, 65535 ldr x2, [x0] - cbz x2, .L440 - adrp x3, .LANCHOR2-56 + cbz x2, .L441 + adrp x3, .LANCHOR2-16 mov w5, w19 mov w6, 6 - ldr x4, [x3,#:lo12:.LANCHOR2-56] -.L441: - cbnz w1, .L442 -.L444: + ldr x4, [x3,#:lo12:.LANCHOR2-16] +.L442: + cbnz w1, .L443 +.L445: sub x2, x2, x4 mov x1, -6148914691236517206 asr x2, x2, 1 @@ -3356,17 +3325,17 @@ List_pop_index_node: uxth w19, w2 mov w1, w19 bl List_remove_node - b .L440 -.L442: + b .L441 +.L443: ldrh w3, [x2] cmp w3, w5 - beq .L444 + beq .L445 umull x3, w3, w6 sub w1, w1, #1 add x2, x4, x3 uxth w1, w1 - b .L441 -.L440: + b .L442 +.L441: mov w0, w19 ldr x19, [sp,16] ldp x29, x30, [sp], 32 @@ -3380,27 +3349,27 @@ List_get_gc_head_node: uxth w3, w0 add x2, x2, :lo12:.LANCHOR2 mov w0, 65535 - ldr x1, [x2,-48] - cbz x1, .L452 - ldr x4, [x2,-56] + ldr x1, [x2,-8] + cbz x1, .L453 + ldr x4, [x2,-16] mov w5, 6 -.L448: - cbz w3, .L449 +.L449: + cbz w3, .L450 ldrh w2, [x1] cmp w2, w0 - beq .L452 + beq .L453 umull x2, w2, w5 sub w3, w3, #1 add x1, x4, x2 uxth w3, w3 - b .L448 -.L449: + b .L449 +.L450: sub x1, x1, x4 mov x0, -6148914691236517206 asr x1, x1, 1 madd x1, x0, x1, x1 uxth w0, w1 -.L452: +.L453: ret .size List_get_gc_head_node, .-List_get_gc_head_node .align 2 @@ -3413,37 +3382,37 @@ List_update_data_list: adrp x19, .LANCHOR2 uxth w20, w0 add x0, x19, :lo12:.LANCHOR2 - ldrh w1, [x19,#:lo12:.LANCHOR2] + ldrh w1, [x0,40] cmp w1, w20 - beq .L454 - ldrh w1, [x0,48] + beq .L455 + ldrh w1, [x0,88] cmp w1, w20 - beq .L454 - ldrh w1, [x0,96] + beq .L455 + ldrh w1, [x0,136] cmp w1, w20 - beq .L454 + beq .L455 mov w3, 6 - ldr x4, [x0,-56] - ldr x2, [x0,-48] + ldr x4, [x0,-16] + ldr x0, [x0,-8] umull x3, w20, w3 add x1, x4, x3 - cmp x1, x2 - beq .L454 - ldr x5, [x0,-40] + cmp x1, x0 + beq .L455 ubfiz x0, x20, 1, 16 - ldrh w2, [x1,4] + ldr x5, [x19,#:lo12:.LANCHOR2] + ldrh w2, [x5,x0] + ldrh w0, [x1,4] ldrh w1, [x1,2] - ldrh w0, [x5,x0] - mul w2, w0, w2 + cmp w0, wzr + mul w2, w2, w0 mov w0, 65535 - cmp w2, wzr csinv w2, w2, wzr, ne cmp w1, w0 - bne .L456 + bne .L457 ldrh w0, [x4,x3] cmp w0, w1 - beq .L454 -.L456: + beq .L455 +.L457: mov w0, 6 mov x3, -6148914691236517206 umull x1, w1, w0 @@ -3452,21 +3421,21 @@ List_update_data_list: madd x0, x3, x0, x0 ldrh w1, [x1,4] ldrh w0, [x5,x0,lsl 1] + cmp w1, wzr mul w0, w0, w1 - cmp w0, wzr csinv w0, w0, wzr, ne cmp w2, w0 - bcs .L454 + bcs .L455 add x19, x19, :lo12:.LANCHOR2 mov w1, w20 - sub x0, x19, #48 + sub x0, x19, #8 bl List_remove_node - ldrh w0, [x19,-24] + ldrh w0, [x19,16] sub w0, w0, #1 - strh w0, [x19,-24] + strh w0, [x19,16] mov w0, w20 bl INSERT_DATA_LIST -.L454: +.L455: mov w0, 0 ldp x19, x20, [sp,16] ldp x29, x30, [sp], 32 @@ -3483,17 +3452,28 @@ ftl_map_blk_alloc_new_blk: mov w20, 0 ldrh w2, [x0,10] ldr x1, [x0,16] -.L459: +.L462: cmp w20, w2 - beq .L462 + beq .L466 mov x22, x1 ldrh w21, [x1],2 - cbnz w21, .L460 + cbnz w21, .L463 mov x19, x0 bl FtlFreeSysBlkQueueOut - uxth w1, w0 strh w0, [x22] - cbz w1, .L462 + uxth w1, w0 + sub w2, w1, #1 + mov w0, 65533 + cmp w0, w2, uxth + bcs .L464 + adrp x2, .LANCHOR0+2206 + adrp x0, .LC4 + add x0, x0, :lo12:.LC4 + ldrh w2, [x2,#:lo12:.LANCHOR0+2206] + bl printk +.L465: + b .L465 +.L464: ldr w0, [x19,48] strh w21, [x19,2] add w0, w0, 1 @@ -3502,12 +3482,12 @@ ftl_map_blk_alloc_new_blk: strh w20, [x19] add w0, w0, 1 strh w0, [x19,8] - b .L462 -.L460: + b .L466 +.L463: add w20, w20, 1 uxth w20, w20 - b .L459 -.L462: + b .L462 +.L466: mov w0, 0 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -3525,64 +3505,64 @@ select_l2p_ram_region: adrp x0, .LANCHOR2 add x1, x0, :lo12:.LANCHOR2 mov x3, x0 - ldr x1, [x1,144] -.L466: + ldr x1, [x1,184] +.L469: uxth w0, w4 cmp w0, w2 - bcs .L482 + bcs .L485 add x4, x4, 1 add x6, x1, x4, lsl 4 ldrh w6, [x6,-16] cmp w6, w5 - bne .L466 - b .L467 -.L482: + bne .L469 + b .L470 +.L485: mov w0, w2 mov x4, 0 mov w7, -2147483648 -.L469: +.L472: uxth w6, w4 cmp w6, w2 - bcs .L483 + bcs .L486 add x5, x1, x4, lsl 4 ldr w5, [x5,4] - tbnz w5, #31, .L478 + tbnz w5, #31, .L481 cmp w5, w7 - bcc .L470 -.L478: + bcc .L473 +.L481: mov w5, w7 mov w6, w0 -.L470: +.L473: add x4, x4, 1 mov w7, w5 mov w0, w6 - b .L469 -.L483: + b .L472 +.L486: cmp w0, w2 - bcc .L467 + bcc .L470 add x0, x3, :lo12:.LANCHOR2 add x1, x1, 4 mov w4, -1 mov w3, 0 - ldrh w5, [x0,152] + ldrh w5, [x0,192] mov w0, w2 -.L473: +.L476: cmp w3, w2 - beq .L467 + beq .L470 ldr w7, [x1] cmp w7, w4 - bcs .L474 + bcs .L477 ldrh w6, [x1,-4] cmp w6, w5 csel w4, w4, w7, eq cmp w6, w5 csel w0, w0, w3, eq -.L474: +.L477: add w3, w3, 1 add x1, x1, 16 uxth w3, w3 - b .L473 -.L467: + b .L476 +.L470: ret .size select_l2p_ram_region, .-select_l2p_ram_region .align 2 @@ -3591,36 +3571,36 @@ select_l2p_ram_region: FtlUpdateVaildLpn: adrp x1, .LANCHOR2 add x3, x1, :lo12:.LANCHOR2 - ldrh w2, [x3,154] - cbnz w0, .L485 + ldrh w2, [x3,194] + cbnz w0, .L488 cmp w2, 4 - bhi .L485 + bhi .L488 add w2, w2, 1 - strh w2, [x3,154] - b .L484 -.L485: - adrp x2, .LANCHOR0+1952 + strh w2, [x3,194] + b .L487 +.L488: add x0, x1, :lo12:.LANCHOR2 + ldr x6, [x1,#:lo12:.LANCHOR2] mov w7, 65535 - ldrh w5, [x2,#:lo12:.LANCHOR0+1952] - strh wzr, [x0,154] - str wzr, [x0,156] - ldr x6, [x0,-40] + strh wzr, [x0,194] + str wzr, [x0,196] + adrp x0, .LANCHOR0+1956 + ldrh w5, [x0,#:lo12:.LANCHOR0+1956] mov x0, 0 -.L486: +.L489: cmp w5, w0, uxth - bls .L484 + bls .L487 ldrh w4, [x6,x0,lsl 1] cmp w4, w7 - beq .L487 + beq .L490 add x3, x1, :lo12:.LANCHOR2 - ldr w2, [x3,156] + ldr w2, [x3,196] add w2, w4, w2 - str w2, [x3,156] -.L487: + str w2, [x3,196] +.L490: add x0, x0, 1 - b .L486 -.L484: + b .L489 +.L487: ret .size FtlUpdateVaildLpn, .-FtlUpdateVaildLpn .align 2 @@ -3630,10 +3610,10 @@ ftl_set_blk_mode: stp x29, x30, [sp, -16]! uxth w0, w0 add x29, sp, 0 - cbz w1, .L491 - bl ftl_set_blk_mode.part.8 - b .L490 -.L491: + cbz w1, .L494 + bl ftl_set_blk_mode.part.9 + b .L493 +.L494: adrp x1, .LANCHOR0 ubfx x2, x0, 5, 11 lsl x2, x2, 2 @@ -3643,7 +3623,7 @@ ftl_set_blk_mode: ldr w1, [x3,x2] bic w0, w1, w0 str w0, [x3,x2] -.L490: +.L493: ldp x29, x30, [sp], 16 ret .size ftl_set_blk_mode, .-ftl_set_blk_mode @@ -3670,42 +3650,42 @@ ftl_sb_update_avl_pages: uxth w2, w2 strh wzr, [x0,4] mov w6, 65535 - ldrh w4, [x4,1944] -.L495: + ldrh w4, [x4,1948] +.L498: cmp w2, w4 - bcs .L501 + bcs .L504 add x5, x0, x2, sxtw 1 ldrh w5, [x5,16] cmp w5, w6 - beq .L496 + beq .L499 ldrh w5, [x0,4] add w5, w5, 1 strh w5, [x0,4] -.L496: +.L499: add w2, w2, 1 uxth w2, w2 - b .L495 -.L501: + b .L498 +.L504: add x3, x3, :lo12:.LANCHOR0 mov w6, 65535 add x4, x0, x4, uxth 1 ldrh w5, [x3,2018] mov x3, x0 -.L498: +.L501: cmp x3, x4 - beq .L502 + beq .L505 ldrh w2, [x3,16] cmp w2, w6 - beq .L499 + beq .L502 ldrh w2, [x0,4] add w2, w5, w2 sub w2, w2, #1 sub w2, w2, w1 strh w2, [x0,4] -.L499: - add x3, x3, 2 - b .L498 .L502: + add x3, x3, 2 + b .L501 +.L505: ret .size ftl_sb_update_avl_pages, .-ftl_sb_update_avl_pages .align 2 @@ -3727,10 +3707,10 @@ make_superblock: mov x21, 0 mov x23, x0 mov w25, -1 - ldrh w24, [x0,1944] -.L504: + ldrh w24, [x0,1948] +.L507: cmp w24, w21, uxth - bls .L515 + bls .L518 add x0, x23, 1976 ldrh w1, [x19] ldrb w0, [x0,x21] @@ -3738,40 +3718,39 @@ make_superblock: strh w25, [x22] mov w26, w0 bl FtlBbmIsBadBlock - cbnz w0, .L505 + cbnz w0, .L508 strh w26, [x22] ldrb w0, [x19,7] add w0, w0, 1 strb w0, [x19,7] -.L505: +.L508: add x21, x21, 1 add x22, x22, 2 - b .L504 -.L515: + b .L507 +.L518: add x1, x20, :lo12:.LANCHOR0 ldrb w0, [x19,7] strb wzr, [x19,9] - ldrh w1, [x1,2018] - mul w0, w0, w1 + ldrh w2, [x1,2018] + mul w0, w0, w2 strh w0, [x19,4] - adrp x0, .LANCHOR2 - add x0, x0, :lo12:.LANCHOR2 - ldr w1, [x0,160] - cbz w1, .L507 + ldr w0, [x1,1940] + cbz w0, .L510 + adrp x0, .LANCHOR2-80 ldrh w1, [x19] - ldr x0, [x0,-80] + ldr x0, [x0,#:lo12:.LANCHOR2-80] ldrh w0, [x0,x1,lsl 1] - cmp w0, 59 - bhi .L507 + cmp w0, 79 + bhi .L510 mov w0, 1 strb w0, [x19,9] -.L507: +.L510: add x20, x20, :lo12:.LANCHOR0 ldrb w0, [x20,8] - cbz w0, .L508 + cbz w0, .L511 mov w0, 1 strb w0, [x19,9] -.L508: +.L511: mov w0, 0 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -3793,33 +3772,33 @@ update_multiplier_value: stp x23, x24, [sp,48] mov x22, 0 uxth w21, w0 - ldrh w23, [x1,1944] + ldrh w23, [x1,1948] mov w19, w22 ldrh w24, [x1,2018] mov x20, x1 -.L517: +.L520: cmp w23, w22, uxth - bls .L524 + bls .L527 add x0, x20, 1976 mov w1, w21 ldrb w0, [x0,x22] bl V2P_block bl FtlBbmIsBadBlock - cbnz w0, .L518 + cbnz w0, .L521 add w19, w19, w24 uxth w19, w19 -.L518: +.L521: add x22, x22, 1 - b .L517 -.L524: - cbz w19, .L520 + b .L520 +.L527: + cbz w19, .L523 mov w0, 32768 sdiv w19, w0, w19 -.L520: +.L523: mov w0, 6 umull x21, w21, w0 - adrp x0, .LANCHOR2-56 - ldr x0, [x0,#:lo12:.LANCHOR2-56] + adrp x0, .LANCHOR2-16 + ldr x0, [x0,#:lo12:.LANCHOR2-16] add x21, x0, x21 mov w0, 0 strh w19, [x21,4] @@ -3835,10 +3814,10 @@ update_multiplier_value: GetFreeBlockMinEraseCount: adrp x2, .LANCHOR2 add x2, x2, :lo12:.LANCHOR2 - ldr x1, [x2,-16] + ldr x1, [x2,24] mov w0, w1 - cbz x1, .L526 - ldr x0, [x2,-56] + cbz x1, .L529 + ldr x0, [x2,-16] sub x1, x1, x0 mov x0, -6148914691236517206 asr x1, x1, 1 @@ -3846,7 +3825,7 @@ GetFreeBlockMinEraseCount: ldr x0, [x2,-80] and x1, x1, 65535 ldrh w0, [x0,x1,lsl 1] -.L526: +.L529: ret .size GetFreeBlockMinEraseCount, .-GetFreeBlockMinEraseCount .align 2 @@ -3856,15 +3835,15 @@ GetFreeBlockMaxEraseCount: adrp x2, .LANCHOR2 uxth w4, w0 add x5, x2, :lo12:.LANCHOR2 - ldr x1, [x5,-16] + ldr x1, [x5,24] mov w0, w1 - cbz x1, .L529 - ldrh w3, [x5,-8] + cbz x1, .L532 + ldrh w3, [x5,32] mov w0, 7 mov w6, 6 mov w7, 65535 mul w3, w3, w0 - ldr x0, [x5,-56] + ldr x0, [x5,-16] asr w3, w3, 3 cmp w4, w3 sub x1, x1, x0 @@ -3874,25 +3853,25 @@ GetFreeBlockMaxEraseCount: madd x1, x3, x1, x1 mov w3, 0 uxth w1, w1 -.L531: +.L534: cmp w3, w4 - beq .L534 + beq .L537 umull x5, w1, w6 ldrh w5, [x0,x5] cmp w5, w7 - bne .L532 -.L534: + bne .L535 +.L537: add x2, x2, :lo12:.LANCHOR2 ubfiz x1, x1, 1, 16 ldr x0, [x2,-80] ldrh w0, [x0,x1] - b .L529 -.L532: + b .L532 +.L535: add w3, w3, 1 mov w1, w5 uxth w3, w3 - b .L531 -.L529: + b .L534 +.L532: ret .size GetFreeBlockMaxEraseCount, .-GetFreeBlockMaxEraseCount .align 2 @@ -3900,529 +3879,529 @@ GetFreeBlockMaxEraseCount: .type FtlPrintInfo2buf, %function FtlPrintInfo2buf: stp x29, x30, [sp, -112]! - adrp x1, .LC3 + adrp x1, .LC5 add x29, sp, 0 - stp x25, x26, [sp,64] - adrp x25, .LANCHOR0 - add x1, x1, :lo12:.LC3 - add x25, x25, :lo12:.LANCHOR0 + stp x23, x24, [sp,48] + adrp x24, .LANCHOR0 + add x1, x1, :lo12:.LC5 + add x24, x24, :lo12:.LANCHOR0 str x27, [sp,80] stp x19, x20, [sp,16] - stp x23, x24, [sp,48] stp x21, x22, [sp,32] - mov x23, x0 + stp x25, x26, [sp,64] + mov x22, x0 bl strcpy - add x20, x23, 12 - ldr w2, [x25,168] - adrp x1, .LC4 + add x20, x22, 12 + ldr w2, [x24,168] + adrp x1, .LC6 mov x0, x20 - add x1, x1, :lo12:.LC4 + add x1, x1, :lo12:.LC6 bl sprintf add x20, x20, x0, sxtw - adrp x1, .LC5 - ldr w2, [x25,2036] + adrp x1, .LC7 + ldr w2, [x24,2036] mov x0, x20 - add x1, x1, :lo12:.LC5 + add x1, x1, :lo12:.LC7 bl sprintf add x20, x20, x0, sxtw adrp x0, .LANCHOR1+504 ldr w0, [x0,#:lo12:.LANCHOR1+504] cmp w0, 1 - beq .L537 - sub w0, w20, w23 - b .L538 -.L537: + beq .L540 + sub w0, w20, w22 + b .L541 +.L540: add x0, x29, 96 add x1, x29, 100 add x2, x29, 104 add x3, x29, 108 - adrp x24, .LANCHOR2 + adrp x25, .LANCHOR2 bl NandcGetTimeCfg - add x22, x24, :lo12:.LANCHOR2 + add x23, x25, :lo12:.LANCHOR2 ldr w4, [x29,104] - adrp x1, .LC6 + adrp x1, .LC8 ldr w5, [x29,108] - add x1, x1, :lo12:.LC6 + add x1, x1, :lo12:.LC8 ldr w3, [x29,100] mov x0, x20 ldr w2, [x29,96] bl sprintf add x21, x20, x0, sxtw - adrp x1, .LC7 - mov x0, x21 - add x1, x1, :lo12:.LC7 - add x21, x21, 10 - bl strcpy - ldr w2, [x25,2096] - adrp x1, .LC8 - mov x0, x21 - add x1, x1, :lo12:.LC8 - bl sprintf - add x21, x21, x0, sxtw - ldr w2, [x22,156] adrp x1, .LC9 mov x0, x21 add x1, x1, :lo12:.LC9 - bl sprintf - add x21, x21, x0, sxtw - ldr w2, [x22,164] + add x21, x21, 10 + bl strcpy + ldr w2, [x24,2096] adrp x1, .LC10 mov x0, x21 add x1, x1, :lo12:.LC10 bl sprintf add x21, x21, x0, sxtw - ldr w2, [x22,168] + ldr w2, [x23,196] adrp x1, .LC11 mov x0, x21 add x1, x1, :lo12:.LC11 bl sprintf add x21, x21, x0, sxtw - ldr w2, [x22,172] + ldr w2, [x23,200] adrp x1, .LC12 mov x0, x21 add x1, x1, :lo12:.LC12 bl sprintf add x21, x21, x0, sxtw - ldr w2, [x22,176] + ldr w2, [x23,204] adrp x1, .LC13 mov x0, x21 add x1, x1, :lo12:.LC13 bl sprintf add x21, x21, x0, sxtw - ldr w2, [x22,180] + ldr w2, [x23,208] adrp x1, .LC14 mov x0, x21 add x1, x1, :lo12:.LC14 bl sprintf add x21, x21, x0, sxtw - ldr w2, [x22,184] + ldr w2, [x23,212] adrp x1, .LC15 mov x0, x21 add x1, x1, :lo12:.LC15 bl sprintf add x21, x21, x0, sxtw - ldr w2, [x22,188] + ldr w2, [x23,216] adrp x1, .LC16 mov x0, x21 add x1, x1, :lo12:.LC16 - lsr w2, w2, 11 bl sprintf add x21, x21, x0, sxtw - ldr w2, [x22,192] + ldr w2, [x23,220] adrp x1, .LC17 mov x0, x21 add x1, x1, :lo12:.LC17 - lsr w2, w2, 11 bl sprintf add x21, x21, x0, sxtw - ldr w2, [x22,196] + ldr w2, [x23,224] adrp x1, .LC18 mov x0, x21 add x1, x1, :lo12:.LC18 + lsr w2, w2, 11 bl sprintf add x21, x21, x0, sxtw - ldr w2, [x22,200] + ldr w2, [x23,228] adrp x1, .LC19 - add x1, x1, :lo12:.LC19 mov x0, x21 + add x1, x1, :lo12:.LC19 + lsr w2, w2, 11 bl sprintf add x21, x21, x0, sxtw - bl FtlBbtCalcTotleCnt - uxth w3, w0 - ldrh w2, [x25,2110] + ldr w2, [x23,232] adrp x1, .LC20 mov x0, x21 add x1, x1, :lo12:.LC20 bl sprintf add x21, x21, x0, sxtw - ldrh w2, [x22,-8] + ldr w2, [x23,236] adrp x1, .LC21 - mov x0, x21 add x1, x1, :lo12:.LC21 + mov x0, x21 bl sprintf add x21, x21, x0, sxtw - ldr w2, [x22,204] + bl FtlBbtCalcTotleCnt + uxth w3, w0 + ldrh w2, [x24,2110] adrp x1, .LC22 mov x0, x21 add x1, x1, :lo12:.LC22 bl sprintf add x21, x21, x0, sxtw - ldr w2, [x22,208] + ldrh w2, [x23,32] adrp x1, .LC23 mov x0, x21 add x1, x1, :lo12:.LC23 bl sprintf add x21, x21, x0, sxtw - ldr w2, [x22,212] + ldr w2, [x23,240] adrp x1, .LC24 mov x0, x21 add x1, x1, :lo12:.LC24 bl sprintf add x21, x21, x0, sxtw - ldr w2, [x22,-72] + ldr w2, [x23,244] adrp x1, .LC25 mov x0, x21 add x1, x1, :lo12:.LC25 bl sprintf add x21, x21, x0, sxtw - ldr w2, [x22,216] + ldr w2, [x23,248] adrp x1, .LC26 mov x0, x21 add x1, x1, :lo12:.LC26 bl sprintf add x21, x21, x0, sxtw - ldr w2, [x22,220] + ldr w2, [x23,-72] adrp x1, .LC27 mov x0, x21 add x1, x1, :lo12:.LC27 bl sprintf add x21, x21, x0, sxtw - ldrh w2, [x22,254] + ldr w2, [x23,252] adrp x1, .LC28 mov x0, x21 add x1, x1, :lo12:.LC28 bl sprintf add x21, x21, x0, sxtw - ldrh w2, [x22,252] + ldr w2, [x23,256] adrp x1, .LC29 mov x0, x21 add x1, x1, :lo12:.LC29 bl sprintf add x21, x21, x0, sxtw - ldr w2, [x25,2060] + ldrh w2, [x23,-34] adrp x1, .LC30 mov x0, x21 add x1, x1, :lo12:.LC30 bl sprintf add x21, x21, x0, sxtw - ldr w2, [x25,2052] + ldrh w2, [x23,-36] adrp x1, .LC31 mov x0, x21 add x1, x1, :lo12:.LC31 bl sprintf add x21, x21, x0, sxtw - ldr w2, [x25,1940] + ldr w2, [x24,2060] adrp x1, .LC32 mov x0, x21 add x1, x1, :lo12:.LC32 bl sprintf add x21, x21, x0, sxtw - ldrh w2, [x25,2206] + ldr w2, [x24,2052] adrp x1, .LC33 mov x0, x21 add x1, x1, :lo12:.LC33 bl sprintf add x21, x21, x0, sxtw - ldrh w2, [x25,1952] + ldr w2, [x24,1944] adrp x1, .LC34 mov x0, x21 add x1, x1, :lo12:.LC34 bl sprintf add x21, x21, x0, sxtw - ldrh w2, [x22,272] + ldrh w2, [x24,2206] adrp x1, .LC35 mov x0, x21 add x1, x1, :lo12:.LC35 bl sprintf add x21, x21, x0, sxtw - ldr w2, [x25,1956] + ldrh w2, [x24,1956] adrp x1, .LC36 mov x0, x21 add x1, x1, :lo12:.LC36 bl sprintf add x21, x21, x0, sxtw - ldrh w2, [x22,280] + ldrh w2, [x23,260] adrp x1, .LC37 mov x0, x21 add x1, x1, :lo12:.LC37 bl sprintf add x21, x21, x0, sxtw - ldrh w2, [x25,2104] + ldr w2, [x24,1960] adrp x1, .LC38 mov x0, x21 add x1, x1, :lo12:.LC38 bl sprintf add x21, x21, x0, sxtw - ldrh w2, [x22,2] + ldrh w2, [x23,264] adrp x1, .LC39 mov x0, x21 add x1, x1, :lo12:.LC39 bl sprintf add x21, x21, x0, sxtw - ldrb w2, [x22,6] + ldrh w2, [x24,2104] adrp x1, .LC40 mov x0, x21 add x1, x1, :lo12:.LC40 bl sprintf add x21, x21, x0, sxtw - ldrh w2, [x24,#:lo12:.LANCHOR2] + ldrh w2, [x23,42] adrp x1, .LC41 mov x0, x21 add x1, x1, :lo12:.LC41 bl sprintf add x21, x21, x0, sxtw - ldrb w2, [x22,8] + ldrb w2, [x23,46] adrp x1, .LC42 mov x0, x21 add x1, x1, :lo12:.LC42 bl sprintf add x21, x21, x0, sxtw - ldrh w2, [x22,4] + ldrh w2, [x23,40] adrp x1, .LC43 mov x0, x21 add x1, x1, :lo12:.LC43 bl sprintf add x21, x21, x0, sxtw - ldrh w3, [x24,#:lo12:.LANCHOR2] + ldrb w2, [x23,48] adrp x1, .LC44 - ldr x2, [x22,-40] mov x0, x21 add x1, x1, :lo12:.LC44 - ldrh w2, [x2,x3,lsl 1] bl sprintf add x21, x21, x0, sxtw - ldrh w2, [x22,50] + ldrh w2, [x23,44] adrp x1, .LC45 mov x0, x21 add x1, x1, :lo12:.LC45 bl sprintf add x21, x21, x0, sxtw - ldrb w2, [x22,54] + ldrh w3, [x23,40] adrp x1, .LC46 + ldr x2, [x25,#:lo12:.LANCHOR2] mov x0, x21 add x1, x1, :lo12:.LC46 + ldrh w2, [x2,x3,lsl 1] bl sprintf add x21, x21, x0, sxtw - ldrh w2, [x22,48] + ldrh w2, [x23,90] adrp x1, .LC47 mov x0, x21 add x1, x1, :lo12:.LC47 bl sprintf add x21, x21, x0, sxtw - ldrb w2, [x22,56] + ldrb w2, [x23,94] adrp x1, .LC48 mov x0, x21 add x1, x1, :lo12:.LC48 bl sprintf add x21, x21, x0, sxtw - ldrh w2, [x22,52] + ldrh w2, [x23,88] adrp x1, .LC49 mov x0, x21 add x1, x1, :lo12:.LC49 bl sprintf add x21, x21, x0, sxtw - ldrh w3, [x22,48] + ldrb w2, [x23,96] adrp x1, .LC50 - ldr x2, [x22,-40] mov x0, x21 add x1, x1, :lo12:.LC50 - ldrh w2, [x2,x3,lsl 1] bl sprintf add x21, x21, x0, sxtw - ldrh w2, [x22,98] + ldrh w2, [x23,92] adrp x1, .LC51 mov x0, x21 add x1, x1, :lo12:.LC51 bl sprintf add x21, x21, x0, sxtw - ldrb w2, [x22,102] + ldrh w3, [x23,88] adrp x1, .LC52 + ldr x2, [x25,#:lo12:.LANCHOR2] mov x0, x21 add x1, x1, :lo12:.LC52 + ldrh w2, [x2,x3,lsl 1] bl sprintf add x21, x21, x0, sxtw - ldrh w2, [x22,96] + ldrh w2, [x23,138] adrp x1, .LC53 mov x0, x21 add x1, x1, :lo12:.LC53 bl sprintf add x21, x21, x0, sxtw - ldrb w2, [x22,104] + ldrb w2, [x23,142] adrp x1, .LC54 mov x0, x21 add x1, x1, :lo12:.LC54 bl sprintf add x21, x21, x0, sxtw - ldrh w2, [x22,100] + ldrh w2, [x23,136] adrp x1, .LC55 mov x0, x21 add x1, x1, :lo12:.LC55 bl sprintf add x21, x21, x0, sxtw - ldrh w2, [x22,298] + ldrb w2, [x23,144] adrp x1, .LC56 mov x0, x21 add x1, x1, :lo12:.LC56 bl sprintf add x21, x21, x0, sxtw - ldrb w2, [x22,302] + ldrh w2, [x23,140] adrp x1, .LC57 mov x0, x21 add x1, x1, :lo12:.LC57 bl sprintf add x21, x21, x0, sxtw - ldrh w2, [x22,296] + ldrh w2, [x23,282] adrp x1, .LC58 mov x0, x21 add x1, x1, :lo12:.LC58 bl sprintf add x21, x21, x0, sxtw - ldrb w2, [x22,304] + ldrb w2, [x23,286] adrp x1, .LC59 mov x0, x21 add x1, x1, :lo12:.LC59 bl sprintf add x21, x21, x0, sxtw - ldrh w2, [x22,300] + ldrh w2, [x23,280] adrp x1, .LC60 mov x0, x21 add x1, x1, :lo12:.LC60 bl sprintf add x21, x21, x0, sxtw - ldr w3, [x22,344] + ldrb w2, [x23,288] adrp x1, .LC61 - ldr w2, [x22,160] - add x1, x1, :lo12:.LC61 - ldr w4, [x22,436] mov x0, x21 - ldr w5, [x22,428] - orr w2, w2, w3, lsl 8 - ldr w3, [x22,432] + add x1, x1, :lo12:.LC61 bl sprintf - add x19, x21, x0, sxtw - ldr w2, [x22,424] + add x21, x21, x0, sxtw + ldrh w2, [x23,284] adrp x1, .LC62 - mov x0, x19 + mov x0, x21 add x1, x1, :lo12:.LC62 bl sprintf - add x19, x19, x0, sxtw - ldr w2, [x22,448] + add x21, x21, x0, sxtw + ldr w3, [x23,328] adrp x1, .LC63 - mov x0, x19 + ldr w2, [x24,1940] add x1, x1, :lo12:.LC63 + ldr w4, [x23,420] + mov x0, x21 + ldr w5, [x23,412] + orr w2, w2, w3, lsl 8 + ldr w3, [x23,416] bl sprintf - add x19, x19, x0, sxtw - ldrh w2, [x22,864] + add x19, x21, x0, sxtw + ldr w2, [x23,408] adrp x1, .LC64 mov x0, x19 add x1, x1, :lo12:.LC64 bl sprintf add x19, x19, x0, sxtw - ldrh w2, [x22,866] + ldr w2, [x23,432] adrp x1, .LC65 mov x0, x19 add x1, x1, :lo12:.LC65 bl sprintf add x19, x19, x0, sxtw - ldr w2, [x22,868] + ldrh w2, [x23,848] adrp x1, .LC66 mov x0, x19 add x1, x1, :lo12:.LC66 bl sprintf add x19, x19, x0, sxtw - ldrh w2, [x22,872] + ldrh w2, [x23,850] adrp x1, .LC67 - add x1, x1, :lo12:.LC67 mov x0, x19 + add x1, x1, :lo12:.LC67 bl sprintf add x19, x19, x0, sxtw - bl GetFreeBlockMinEraseCount - uxth w2, w0 + ldr w2, [x23,852] adrp x1, .LC68 mov x0, x19 add x1, x1, :lo12:.LC68 bl sprintf add x19, x19, x0, sxtw - ldrh w0, [x22,-8] - bl GetFreeBlockMaxEraseCount - uxth w2, w0 + ldrh w2, [x23,856] adrp x1, .LC69 - mov x0, x19 add x1, x1, :lo12:.LC69 + mov x0, x19 bl sprintf add x19, x19, x0, sxtw - ldrh w0, [x22,296] - mov w1, 65535 - cmp w0, w1 - beq .L539 - ubfiz x2, x0, 1, 16 - ldr x3, [x22,-40] + bl GetFreeBlockMinEraseCount + uxth w2, w0 adrp x1, .LC70 mov x0, x19 add x1, x1, :lo12:.LC70 + bl sprintf + add x19, x19, x0, sxtw + ldrh w0, [x23,32] + bl GetFreeBlockMaxEraseCount + uxth w2, w0 + adrp x1, .LC71 + mov x0, x19 + add x1, x1, :lo12:.LC71 + bl sprintf + add x19, x19, x0, sxtw + ldrh w0, [x23,280] + mov w1, 65535 + cmp w0, w1 + beq .L542 + ubfiz x2, x0, 1, 16 + ldr x3, [x25,#:lo12:.LANCHOR2] + adrp x1, .LC72 + mov x0, x19 + add x1, x1, :lo12:.LC72 ldrh w2, [x3,x2] bl sprintf add x19, x19, x0, sxtw -.L539: +.L542: mov w0, 0 - adrp x22, .LC71 + adrp x23, .LC73 mov w20, 0 mov w27, 65535 bl List_get_gc_head_node mov w26, 6 uxth w3, w0 - add x22, x22, :lo12:.LC71 -.L541: + add x23, x23, :lo12:.LC73 +.L544: cmp w3, w27 - beq .L540 - add x21, x24, :lo12:.LANCHOR2 + beq .L543 + add x21, x25, :lo12:.LANCHOR2 ubfiz x6, x3, 1, 16 - umull x25, w3, w26 + umull x24, w3, w26 + ldr x4, [x25,#:lo12:.LANCHOR2] mov x0, x19 + ldr x5, [x21,-16] mov w2, w20 - ldr x5, [x21,-56] - mov x1, x22 - ldr x4, [x21,-40] - add w20, w20, 1 ldr x7, [x21,-80] - add x5, x5, x25 + mov x1, x23 + add x5, x5, x24 ldrh w4, [x4,x6] - ldrh w5, [x5,4] + add w20, w20, 1 ldrh w6, [x7,x6] + ldrh w5, [x5,4] bl sprintf add x19, x19, x0, sxtw - ldr x0, [x21,-56] + ldr x0, [x21,-16] cmp w20, 16 - ldrh w3, [x0,x25] - bne .L541 -.L540: - add x1, x24, :lo12:.LANCHOR2 - adrp x22, .LC72 + ldrh w3, [x0,x24] + bne .L544 +.L543: + add x1, x25, :lo12:.LANCHOR2 + adrp x23, .LC74 mov w20, 0 mov w27, 65535 mov w26, 6 - add x22, x22, :lo12:.LC72 - ldr x0, [x1,-16] - ldr x3, [x1,-56] + add x23, x23, :lo12:.LC74 + ldr x0, [x1,24] + ldr x3, [x1,-16] sub x3, x0, x3 mov x0, -6148914691236517206 asr x3, x3, 1 madd x3, x0, x3, x3 uxth w3, w3 -.L543: +.L546: cmp w3, w27 - beq .L542 - add x21, x24, :lo12:.LANCHOR2 + beq .L545 + add x21, x25, :lo12:.LANCHOR2 ubfiz x5, x3, 1, 16 - umull x25, w3, w26 + umull x24, w3, w26 mov x0, x19 mov w2, w20 - ldr x4, [x21,-56] - mov x1, x22 + ldr x4, [x21,-16] + mov x1, x23 ldr x6, [x21,-80] add w20, w20, 1 - add x4, x4, x25 + add x4, x4, x24 ldrh w5, [x6,x5] ldrh w4, [x4,4] bl sprintf add x19, x19, x0, sxtw - ldr x0, [x21,-56] + ldr x0, [x21,-16] cmp w20, 4 - ldrh w3, [x0,x25] - bne .L543 -.L542: - sub w0, w19, w23 -.L538: + ldrh w3, [x0,x24] + bne .L546 +.L545: + sub w0, w19, w22 +.L541: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -4432,15 +4411,15 @@ FtlPrintInfo2buf: ret .size FtlPrintInfo2buf, .-FtlPrintInfo2buf .align 2 - .global rknand_proc_ftlread - .type rknand_proc_ftlread, %function -rknand_proc_ftlread: + .global ftl_proc_ftl_read + .type ftl_proc_ftl_read, %function +ftl_proc_ftl_read: stp x29, x30, [sp, -32]! - adrp x1, .LC73 - adrp x2, .LC74 + adrp x1, .LC75 + adrp x2, .LC76 add x29, sp, 0 - add x1, x1, :lo12:.LC73 - add x2, x2, :lo12:.LC74 + add x1, x1, :lo12:.LC75 + add x2, x2, :lo12:.LC76 stp x19, x20, [sp,16] mov x20, x0 bl sprintf @@ -4452,7 +4431,7 @@ rknand_proc_ftlread: ldp x19, x20, [sp,16] ldp x29, x30, [sp], 32 ret - .size rknand_proc_ftlread, .-rknand_proc_ftlread + .size ftl_proc_ftl_read, .-ftl_proc_ftl_read .align 2 .global GetSwlReplaceBlock .type GetSwlReplaceBlock, %function @@ -4465,51 +4444,51 @@ GetSwlReplaceBlock: stp x21, x22, [sp,32] stp x23, x24, [sp,48] stp x25, x26, [sp,64] - ldr w2, [x0,212] - ldr w1, [x0,220] + ldr w2, [x0,248] + ldr w1, [x0,256] cmp w2, w1 - bcs .L548 + bcs .L551 adrp x1, .LANCHOR0 - str wzr, [x0,204] + str wzr, [x0,240] add x2, x1, :lo12:.LANCHOR0 ldr x5, [x0,-80] mov x0, 0 - ldrh w3, [x2,1952] -.L549: + ldrh w3, [x2,1956] +.L552: cmp w3, w0 - bls .L581 + bls .L584 add x4, x19, :lo12:.LANCHOR2 ldrh w6, [x5,x0,lsl 1] add x0, x0, 1 - ldr w2, [x4,204] + ldr w2, [x4,240] add w2, w6, w2 - str w2, [x4,204] - b .L549 -.L581: + str w2, [x4,240] + b .L552 +.L584: add x2, x19, :lo12:.LANCHOR2 add x1, x1, :lo12:.LANCHOR0 - ldr w0, [x2,204] + ldr w0, [x2,240] ldrh w1, [x1,2008] udiv w3, w0, w3 - str w3, [x2,212] - ldr w3, [x2,208] + str w3, [x2,248] + ldr w3, [x2,244] sub w0, w0, w3 udiv w0, w0, w1 - str w0, [x2,204] - b .L551 -.L548: - ldr w1, [x0,216] + str w0, [x2,240] + b .L554 +.L551: + ldr w1, [x0,252] cmp w2, w1 - bls .L551 + bls .L554 add w1, w1, 1 adrp x4, .LANCHOR0 - str w1, [x0,216] + str w1, [x0,252] mov w0, 0 -.L553: +.L556: add x1, x4, :lo12:.LANCHOR0 - ldrh w1, [x1,1952] + ldrh w1, [x1,1956] cmp w0, w1 - bcs .L551 + bcs .L554 add x1, x19, :lo12:.LANCHOR2 ubfiz x2, x0, 1, 32 add w0, w0, 1 @@ -4517,62 +4496,63 @@ GetSwlReplaceBlock: ldrh w1, [x3,x2] add w1, w1, 1 strh w1, [x3,x2] - b .L553 -.L551: - add x0, x19, :lo12:.LANCHOR2 - ldr w21, [x0,220] - ldr w24, [x0,212] - add w1, w21, 256 - cmp w1, w24 - bls .L556 - ldr w2, [x0,216] - add w1, w21, 768 - cmp w1, w2 - bls .L556 - ldr w0, [x0,160] - cbz w0, .L559 - cmp w21, 30 - bls .L556 -.L559: + b .L556 +.L554: + add x1, x19, :lo12:.LANCHOR2 + ldr w21, [x1,256] + ldr w24, [x1,248] + add w0, w21, 256 + cmp w0, w24 + bls .L559 + ldr w1, [x1,252] + add w0, w21, 768 + cmp w0, w1 + bls .L559 + adrp x0, .LANCHOR0+1940 + ldr w0, [x0,#:lo12:.LANCHOR0+1940] + cbz w0, .L562 + cmp w21, 40 + bls .L559 +.L562: mov w0, 65535 - b .L558 -.L556: + b .L561 +.L559: add x0, x19, :lo12:.LANCHOR2 - ldrh w0, [x0,-8] + ldrh w0, [x0,32] add w0, w0, w0, lsl 1 lsr w0, w0, 2 bl GetFreeBlockMaxEraseCount uxth w6, w0 add w0, w21, 64 cmp w6, w0 - bcs .L568 - cmp w21, 30 - bhi .L559 -.L568: + bcs .L571 + cmp w21, 40 + bhi .L562 +.L571: add x0, x19, :lo12:.LANCHOR2 - ldr x3, [x0,-48] - cbz x3, .L559 - adrp x1, .LANCHOR0+1952 + ldr x3, [x0,-8] + cbz x3, .L562 + adrp x1, .LANCHOR0+1956 mov w23, 65535 - ldr x7, [x0,-56] + ldr x7, [x0,-16] mov w20, w23 ldr x26, [x0,-80] mov x0, -6148914691236517206 - ldrh w9, [x1,#:lo12:.LANCHOR0+1952] + ldrh w9, [x1,#:lo12:.LANCHOR0+1956] mov w8, w23 mov w1, 0 add x0, x0, 1 mov w10, 6 -.L561: +.L564: ldrh w2, [x3] cmp w2, w8 - beq .L563 + beq .L566 add w1, w1, 1 uxth w1, w1 cmp w1, w9 - bhi .L559 + bhi .L562 ldrh w4, [x3,4] - cbz w4, .L562 + cbz w4, .L565 sub x4, x3, x7 asr x4, x4, 1 mul x4, x4, x0 @@ -4580,61 +4560,61 @@ GetSwlReplaceBlock: and x4, x4, 65535 ldrh w3, [x26,x4,lsl 1] cmp w3, w21 - bls .L567 + bls .L570 cmp w3, w23 - bcs .L562 + bcs .L565 mov w23, w3 mov w20, w5 -.L562: +.L565: umull x3, w2, w10 add x3, x7, x3 - b .L561 -.L567: + b .L564 +.L570: mov w20, w5 -.L563: +.L566: mov w0, 65535 cmp w20, w0 - beq .L559 + beq .L562 ubfiz x25, x20, 1, 16 ldrh w22, [x26,x25] cmp w22, w21 - bls .L565 + bls .L568 str x6, [x29,88] bl GetFreeBlockMinEraseCount ldr x6, [x29,88] cmp w21, w0, uxth - bcs .L565 + bcs .L568 add x0, x19, :lo12:.LANCHOR2 - str w23, [x0,220] -.L565: + str w23, [x0,256] +.L568: cmp w22, w24 - bcs .L559 + bcs .L562 add w0, w22, 128 cmp w6, w0 - ble .L559 + ble .L562 add w0, w22, 256 cmp w0, w24 - bcc .L566 + bcc .L569 add x0, x19, :lo12:.LANCHOR2 add w22, w22, 768 - ldr w0, [x0,216] + ldr w0, [x0,252] cmp w22, w0 - bcs .L559 -.L566: - add x19, x19, :lo12:.LANCHOR2 - adrp x0, .LC75 + bcs .L562 +.L569: + add x21, x19, :lo12:.LANCHOR2 + ldr x4, [x19,#:lo12:.LANCHOR2] + adrp x0, .LC77 ldrh w5, [x26,x25] - add x0, x0, :lo12:.LC75 + add x0, x0, :lo12:.LC77 mov w1, w20 + ldr w3, [x21,252] mov w2, w24 - ldr x4, [x19,-40] - ldr w3, [x19,216] ldrh w4, [x4,x25] bl printk mov w0, 1 - str w0, [x19,876] + str w0, [x21,860] mov w0, w20 -.L558: +.L561: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -4651,13 +4631,13 @@ free_data_superblock: mov w1, 65535 cmp w0, w1 add x29, sp, 0 - beq .L583 - adrp x2, .LANCHOR2-40 + beq .L586 + adrp x2, .LANCHOR2 ubfiz x1, x0, 1, 16 - ldr x2, [x2,#:lo12:.LANCHOR2-40] + ldr x2, [x2,#:lo12:.LANCHOR2] strh wzr, [x2,x1] bl INSERT_FREE_LIST -.L583: +.L586: mov w0, 0 ldp x29, x30, [sp], 16 ret @@ -4674,17 +4654,17 @@ FtlGcBufInit: mov w12, 1 mov w6, 4 mov w13, 56 - str wzr, [x0,880] -.L585: + str wzr, [x0,864] +.L588: add x5, x10, :lo12:.LANCHOR0 adrp x9, .LANCHOR0 - ldrh w0, [x5,1944] + ldrh w0, [x5,1948] cmp w1, w0 - bcs .L589 + bcs .L592 add x2, x3, :lo12:.LANCHOR2 umull x4, w1, w11 - ldr x7, [x2,888] - ldr x8, [x2,896] + ldr x7, [x2,872] + ldr x8, [x2,880] add x0, x7, x4 str w12, [x0,16] ldrh w0, [x5,2028] @@ -4693,11 +4673,11 @@ FtlGcBufInit: add x0, x8, x0, sxtw 2 str x0, [x7,x4] ldrh w0, [x5,2030] - ldr x8, [x2,888] - ldr x5, [x2,904] + ldr x8, [x2,872] + ldr x5, [x2,888] mul w0, w1, w0 add x7, x8, x4 - ldr x2, [x2,912] + ldr x2, [x2,896] sdiv w0, w0, w6 add x0, x5, x0, sxtw 2 str x0, [x7,8] @@ -4709,19 +4689,19 @@ FtlGcBufInit: str x2, [x0,8] ldr x2, [x7,8] str x2, [x0,16] - b .L585 -.L589: + b .L588 +.L592: mov w8, 24 mov w5, 4 -.L587: +.L590: add x2, x3, :lo12:.LANCHOR2 - ldr w1, [x2,920] + ldr w1, [x2,904] cmp w0, w1 - bcs .L590 + bcs .L593 umull x4, w0, w8 - ldr x7, [x2,888] + ldr x7, [x2,872] add x6, x9, :lo12:.LANCHOR0 - ldr x10, [x2,896] + ldr x10, [x2,880] add x1, x7, x4 str wzr, [x1,16] ldrh w1, [x6,2028] @@ -4730,8 +4710,8 @@ FtlGcBufInit: add x1, x10, x1, sxtw 2 str x1, [x7,x4] ldrh w1, [x6,2030] - ldr x6, [x2,888] - ldr x2, [x2,904] + ldr x6, [x2,872] + ldr x2, [x2,888] mul w1, w0, w1 add x4, x6, x4 add w0, w0, 1 @@ -4739,8 +4719,8 @@ FtlGcBufInit: uxth w0, w0 add x1, x2, x1, sxtw 2 str x1, [x4,8] - b .L587 -.L590: + b .L590 +.L593: ret .size FtlGcBufInit, .-FtlGcBufInit .align 2 @@ -4752,34 +4732,34 @@ FtlGcBufFree: add x2, x2, :lo12:.LANCHOR2 mov w7, 56 mov w9, 24 - ldr w8, [x2,920] - ldr x5, [x2,888] -.L592: + ldr w8, [x2,904] + ldr x5, [x2,872] +.L595: cmp w3, w1 - bcs .L591 + bcs .L594 umull x4, w3, w7 mov w2, 0 add x4, x0, x4 -.L597: +.L600: cmp w2, w8 - bcs .L594 + bcs .L597 umull x6, w2, w9 add x10, x5, x6 ldr x11, [x5,x6] ldr x6, [x4,8] cmp x11, x6 - bne .L593 + bne .L596 str wzr, [x10,16] - b .L594 -.L593: + b .L597 +.L596: add w2, w2, 1 uxth w2, w2 - b .L597 -.L594: + b .L600 +.L597: add w3, w3, 1 uxth w3, w3 - b .L592 -.L591: + b .L595 +.L594: ret .size FtlGcBufFree, .-FtlGcBufFree .align 2 @@ -4791,20 +4771,20 @@ FtlGcBufAlloc: add x2, x2, :lo12:.LANCHOR2 mov w8, 1 mov w9, 56 - ldr w5, [x2,920] - ldr x6, [x2,888] + ldr w5, [x2,904] + ldr x6, [x2,872] mov w2, 0 -.L599: +.L602: cmp w2, w1 - bcs .L605 + bcs .L608 mov w3, 0 -.L603: +.L606: cmp w3, w5 - bcs .L601 + bcs .L604 umull x4, w3, w7 add x4, x6, x4 ldr w10, [x4,16] - cbnz w10, .L600 + cbnz w10, .L603 umull x3, w2, w9 str w8, [x4,16] add x3, x0, x3 @@ -4812,16 +4792,16 @@ FtlGcBufAlloc: str x10, [x3,8] ldr x4, [x4,8] str x4, [x3,16] - b .L601 -.L600: + b .L604 +.L603: add w3, w3, 1 uxth w3, w3 - b .L603 -.L601: + b .L606 +.L604: add w2, w2, 1 uxth w2, w2 - b .L599 -.L605: + b .L602 +.L608: ret .size FtlGcBufAlloc, .-FtlGcBufAlloc .align 2 @@ -4831,22 +4811,22 @@ IsBlkInGcList: adrp x1, .LANCHOR2 uxth w0, w0 add x1, x1, :lo12:.LANCHOR2 - ldrh w2, [x1,924] - ldr x3, [x1,928] + ldrh w2, [x1,908] + ldr x3, [x1,912] mov x1, 0 -.L607: +.L610: cmp w2, w1, uxth - bls .L611 + bls .L614 add x1, x1, 1 add x4, x3, x1, lsl 1 ldrh w4, [x4,-2] cmp w4, w0 - bne .L607 + bne .L610 mov w0, 1 - b .L608 -.L611: + b .L611 +.L614: mov w0, 0 -.L608: +.L611: ret .size IsBlkInGcList, .-IsBlkInGcList .align 2 @@ -4867,41 +4847,41 @@ FtlGcUpdatePage: ldr x1, [x29,32] uxth w8, w0 mov x5, 0 - ldrh w7, [x4,924] - ldr x6, [x4,928] -.L613: + ldrh w7, [x4,908] + ldr x6, [x4,912] +.L616: uxth w4, w5 cmp w4, w7 - bcs .L617 + bcs .L620 add x5, x5, 1 add x9, x6, x5, lsl 1 ldrh w9, [x9,-2] cmp w9, w8 - bne .L613 -.L617: + bne .L616 +.L620: cmp w4, w7 - bne .L615 + bne .L618 ubfiz x4, x4, 1, 16 strh w0, [x6,x4] add x0, x3, :lo12:.LANCHOR2 - ldrh w4, [x0,924] + ldrh w4, [x0,908] add w4, w4, 1 - strh w4, [x0,924] -.L615: + strh w4, [x0,908] +.L618: add x3, x3, :lo12:.LANCHOR2 mov w0, 12 - ldrh w4, [x3,936] - ldr x5, [x3,944] + ldrh w4, [x3,920] + ldr x5, [x3,928] umull x4, w4, w0 add x5, x5, x4 str w1, [x5,4] - ldr x1, [x3,944] + ldr x1, [x3,928] add x0, x1, x4 str w2, [x0,8] str w19, [x1,x4] - ldrh w0, [x3,936] + ldrh w0, [x3,920] add w0, w0, 1 - strh w0, [x3,936] + strh w0, [x3,920] ldr x19, [sp,16] ldp x29, x30, [sp], 48 ret @@ -4914,28 +4894,44 @@ FtlGcRefreshOpenBlock: add x29, sp, 0 str x19, [sp,16] uxth w19, w0 - adrp x0, .LC76 + adrp x0, .LC78 mov w1, w19 - add x0, x0, :lo12:.LC76 + add x0, x0, :lo12:.LC78 bl printk adrp x2, .LANCHOR2 add x2, x2, :lo12:.LANCHOR2 - ldrh w3, [x2,952] + ldrh w5, [x2,936] + cmp w5, w19 + beq .L623 + ldrh w4, [x2,938] + cmp w4, w19 + beq .L623 + ldrh w3, [x2,940] cmp w3, w19 - beq .L620 - ldrh w1, [x2,954] + beq .L623 + ldrh w1, [x2,942] cmp w1, w19 - beq .L620 + beq .L623 mov w0, 65535 + cmp w5, w0 + bne .L624 + strh w19, [x2,936] + b .L623 +.L624: + cmp w4, w0 + bne .L625 + strh w19, [x2,938] + b .L623 +.L625: cmp w3, w0 - bne .L621 - strh w19, [x2,952] - b .L620 -.L621: + bne .L626 + strh w19, [x2,940] + b .L623 +.L626: cmp w1, w0 - bne .L620 - strh w19, [x2,954] -.L620: + bne .L623 + strh w19, [x2,942] +.L623: mov w0, 0 ldr x19, [sp,16] ldp x29, x30, [sp], 32 @@ -4949,29 +4945,48 @@ FtlGcRefreshBlock: add x29, sp, 0 str x19, [sp,16] uxth w19, w0 - adrp x0, .LC76 + adrp x0, .LC78 mov w1, w19 - add x0, x0, :lo12:.LC76 + add x0, x0, :lo12:.LC78 bl printk adrp x2, .LANCHOR2 - add x2, x2, :lo12:.LANCHOR2 - ldrh w3, [x2,952] - cmp w3, w19 - beq .L623 - ldrh w1, [x2,954] - cmp w1, w19 - beq .L623 - mov w0, 65535 - cmp w3, w0 - bne .L624 - strh w19, [x2,952] - b .L623 -.L624: - cmp w1, w0 - bne .L623 - strh w19, [x2,954] -.L623: mov w0, 0 + add x2, x2, :lo12:.LANCHOR2 + ldrh w6, [x2,936] + cmp w6, w19 + beq .L628 + ldrh w5, [x2,938] + cmp w5, w19 + beq .L628 + ldrh w4, [x2,940] + cmp w4, w19 + beq .L628 + ldrh w3, [x2,942] + cmp w3, w19 + beq .L628 + mov w1, 65535 + cmp w6, w1 + bne .L629 + strh w19, [x2,936] + b .L628 +.L629: + cmp w5, w1 + bne .L630 + strh w19, [x2,938] + b .L637 +.L630: + cmp w4, w1 + bne .L631 + strh w19, [x2,940] + b .L637 +.L631: + cmp w3, w1 + mov w0, -1 + bne .L628 + strh w19, [x2,942] +.L637: + mov w0, 0 +.L628: ldr x19, [sp,16] ldp x29, x30, [sp], 32 ret @@ -4991,45 +5006,46 @@ FtlGcMarkBadPhyBlk: str x23, [sp,48] bl P2V_block_in_plane uxth w21, w0 - ldrh w1, [x22,956] - adrp x0, .LC77 + ldrh w1, [x22,944] + adrp x0, .LC79 mov w2, w20 - add x0, x0, :lo12:.LC77 + add x0, x0, :lo12:.LC79 bl printk mov w0, w21 bl FtlGcRefreshBlock - ldr w0, [x22,160] - cbz w0, .L626 + adrp x0, .LANCHOR0+1940 + ldr w0, [x0,#:lo12:.LANCHOR0+1940] + cbz w0, .L639 ubfiz x0, x21, 1, 16 ldr x2, [x22,-80] ldrh w1, [x2,x0] - cmp w1, 29 - bls .L626 - sub w1, w1, #30 + cmp w1, 39 + bls .L639 + sub w1, w1, #40 strh w1, [x2,x0] -.L626: +.L639: add x2, x19, :lo12:.LANCHOR2 mov x0, 0 - add x2, x2, 960 - ldrh w1, [x2,-4] -.L627: + add x2, x2, 952 + ldrh w1, [x2,-8] +.L640: cmp w1, w0, uxth - bls .L633 + bls .L646 add x0, x0, 1 add x3, x2, x0, lsl 1 ldrh w3, [x3,-2] cmp w3, w20 - bne .L627 - b .L628 -.L633: + bne .L640 + b .L641 +.L646: cmp w1, 15 - bhi .L628 + bhi .L641 add x19, x19, :lo12:.LANCHOR2 add w0, w1, 1 - add x19, x19, 960 - strh w0, [x19,-4] + add x19, x19, 952 + strh w0, [x19,-8] strh w20, [x19,w1,sxtw 1] -.L628: +.L641: mov w0, 0 ldr x23, [sp,48] ldp x19, x20, [sp,16] @@ -5046,27 +5062,27 @@ FtlGcReFreshBadBlk: str x19, [sp,16] adrp x19, .LANCHOR2 add x0, x19, :lo12:.LANCHOR2 - ldrh w1, [x0,956] - cbz w1, .L635 - ldrh w3, [x0,952] + ldrh w1, [x0,944] + cbz w1, .L648 + ldrh w3, [x0,936] mov w2, 65535 cmp w3, w2 - bne .L635 - ldrh w2, [x0,994] + bne .L648 + ldrh w2, [x0,986] cmp w2, w1 - bcc .L636 - strh wzr, [x0,994] -.L636: + bcc .L649 + strh wzr, [x0,986] +.L649: add x19, x19, :lo12:.LANCHOR2 - add x0, x19, 960 - ldrh w1, [x19,994] + add x0, x19, 952 + ldrh w1, [x19,986] ldrh w0, [x0,w1,sxtw 1] bl P2V_block_in_plane bl FtlGcRefreshBlock - ldrh w0, [x19,994] + ldrh w0, [x19,986] add w0, w0, 1 - strh w0, [x19,994] -.L635: + strh w0, [x19,986] +.L648: mov w0, 0 ldr x19, [sp,16] ldp x29, x30, [sp], 32 @@ -5091,63 +5107,63 @@ BuildFlashLsbPageTable: add x29, sp, 0 stp x19, x20, [sp,16] mov w20, w1 - cbnz w0, .L642 + cbnz w0, .L655 adrp x1, .LANCHOR0 mov x0, 0 add x1, x1, :lo12:.LANCHOR0 -.L643: +.L656: add x2, x1, 196 strh w0, [x2,x0,lsl 1] add x0, x0, 1 cmp x0, 256 - bne .L643 -.L649: + bne .L656 +.L662: adrp x19, .LANCHOR2 mov w1, 255 add x19, x19, :lo12:.LANCHOR2 mov w2, 1024 - add x19, x19, 996 + add x19, x19, 988 uxth w20, w20 mov x0, x19 bl ftl_memset adrp x1, .LANCHOR0 mov x0, 0 add x1, x1, :lo12:.LANCHOR0 - b .L644 -.L642: + b .L657 +.L655: cmp w0, 1 - bne .L645 + bne .L658 adrp x3, .LANCHOR0 mov x0, 0 mov w4, 3 mov w5, 2 add x3, x3, :lo12:.LANCHOR0 -.L648: +.L661: cmp x0, 3 uxth w1, w0 mov w2, w1 - bls .L646 + bls .L659 ubfiz w2, w1, 1, 15 and w1, w1, 1 cmp w1, wzr csel w1, w4, w5, ne sub w2, w2, w1 uxth w2, w2 -.L646: +.L659: add x1, x3, 196 strh w2, [x1,x0,lsl 1] add x0, x0, 1 cmp x0, 256 - bne .L648 - b .L649 -.L645: + bne .L661 + b .L662 +.L658: cmp w0, 2 - bne .L650 + bne .L663 adrp x3, .LANCHOR0 mov w1, 65535 mov x0, 0 add x3, x3, :lo12:.LANCHOR0 -.L652: +.L665: add x4, x3, 196 cmp x0, 1 uxth w2, w0 @@ -5157,37 +5173,37 @@ BuildFlashLsbPageTable: add x0, x0, 1 cmp x0, 256 uxth w1, w1 - bne .L652 - b .L649 -.L650: + bne .L665 + b .L662 +.L663: cmp w0, 3 - bne .L653 + bne .L666 adrp x3, .LANCHOR0 mov x0, 0 mov w4, 5 mov w5, 4 add x3, x3, :lo12:.LANCHOR0 -.L656: +.L669: cmp x0, 5 uxth w1, w0 mov w2, w1 - bls .L654 + bls .L667 ubfiz w2, w1, 1, 15 and w1, w1, 1 cmp w1, wzr csel w1, w4, w5, ne sub w2, w2, w1 uxth w2, w2 -.L654: +.L667: add x1, x3, 196 strh w2, [x1,x0,lsl 1] add x0, x0, 1 cmp x0, 256 - bne .L656 - b .L649 -.L653: + bne .L669 + b .L662 +.L666: cmp w0, 4 - bne .L657 + bne .L670 adrp x1, .LANCHOR0 mov w5, 7 add x1, x1, :lo12:.LANCHOR0 @@ -5208,7 +5224,7 @@ BuildFlashLsbPageTable: strh w0, [x2,14] mov w0, 8 strh w1, [x2,6] -.L659: +.L672: and w3, w0, 1 ubfiz w1, w0, 1, 15 add w0, w0, 1 @@ -5219,42 +5235,42 @@ BuildFlashLsbPageTable: sub w1, w1, w3 cmp w0, 256 strh w1, [x2,14] - bne .L659 - b .L649 -.L657: + bne .L672 + b .L662 +.L670: cmp w0, 5 - bne .L660 + bne .L673 adrp x2, .LANCHOR0 mov x0, 0 add x2, x2, :lo12:.LANCHOR0 -.L661: +.L674: add x1, x2, 196 strh w0, [x1,x0,lsl 1] add x0, x0, 1 cmp x0, 16 - bne .L661 + bne .L674 mov x0, 0 -.L662: +.L675: add x2, x1, x0 add w3, w0, 16 add x0, x0, 2 cmp x0, 480 strh w3, [x2,32] - bne .L662 - b .L649 -.L660: + bne .L675 + b .L662 +.L673: cmp w0, 6 - bne .L649 + bne .L662 adrp x1, .LANCHOR0 mov x2, 0 mov w4, 12 mov w5, 10 add x1, x1, :lo12:.LANCHOR0 -.L665: +.L678: cmp x2, 5 uxth w3, w2 mov w0, w3 - bls .L663 + bls .L676 add w0, w3, w3, lsl 1 and w3, w3, 1 cmp w3, wzr @@ -5262,22 +5278,22 @@ BuildFlashLsbPageTable: csel w3, w4, w5, ne sub w0, w0, w3 uxth w0, w0 -.L663: +.L676: add x3, x1, 196 strh w0, [x3,x2,lsl 1] add x2, x2, 1 cmp x2, 256 - bne .L665 - b .L649 -.L644: + bne .L678 + b .L662 +.L657: cmp w20, w0, uxth - bls .L683 + bls .L696 add x2, x1, 196 ldrh w2, [x2,x0,lsl 1] add x0, x0, 1 strh w2, [x19,w2,sxtw 1] - b .L644 -.L683: + b .L657 +.L696: ldp x19, x20, [sp,16] ldp x29, x30, [sp], 32 ret @@ -5296,20 +5312,20 @@ FlashDieInfoInit: stp x19, x20, [sp,16] stp x23, x24, [sp,48] stp x25, x26, [sp,64] - strb wzr, [x1,2020] + strb wzr, [x1,2012] adrp x1, .LANCHOR1+482 add x0, x21, :lo12:.LANCHOR0 ldrh w1, [x1,#:lo12:.LANCHOR1+482] strb wzr, [x0,1845] cmp w1, 256 - bls .L685 + bls .L698 mov w1, 512 - b .L701 -.L685: + b .L714 +.L698: cmp w1, 128 - bls .L701 + bls .L714 mov w1, 256 -.L701: +.L714: add x19, x21, :lo12:.LANCHOR0 str w1, [x0,12] mov w2, 8 @@ -5329,30 +5345,30 @@ FlashDieInfoInit: bl ftl_memset ldr x20, [x19,744] add x23, x20, 1 -.L689: +.L702: ldrb w2, [x20] mov x0, x23 add x1, x26, x24, lsl 3 bl FlashMemCmp8 - cbnz w0, .L688 + cbnz w0, .L701 ldrb w1, [x19,1845] str w0, [x25,w1,sxtw 2] add w0, w1, 1 add x1, x19, x1, sxtw strb w0, [x19,1845] strb w24, [x1,1848] -.L688: +.L701: add x24, x24, 1 cmp x24, 4 - bne .L689 + bne .L702 add x19, x21, :lo12:.LANCHOR0 add x0, x22, :lo12:.LANCHOR2 ldrb w1, [x19,1845] - strb w1, [x0,2020] + strb w1, [x0,2012] ldrb w0, [x20,8] cmp w0, 2 - beq .L690 -.L694: + beq .L703 +.L707: add x21, x21, :lo12:.LANCHOR0 ldrb w1, [x20,13] add x22, x22, :lo12:.LANCHOR2 @@ -5364,21 +5380,21 @@ FlashDieInfoInit: ldrh w1, [x20,14] ldp x19, x20, [sp,16] mul w0, w0, w1 - strh w0, [x22,2022] + strh w0, [x22,2014] ldp x21, x22, [sp,32] ldp x29, x30, [sp], 96 ret -.L690: +.L703: ldr w26, [x19,12] mov x24, 0 add x27, x19, 1620 add x25, x19, 708 -.L693: +.L706: ldrb w2, [x20] mov x0, x23 add x1, x27, x24, lsl 3 bl FlashMemCmp8 - cbnz w0, .L691 + cbnz w0, .L704 ldrb w1, [x20,13] ldrb w3, [x19,1845] mul w0, w1, w26 @@ -5388,24 +5404,24 @@ FlashDieInfoInit: mul w1, w0, w1 str w1, [x25,w3,sxtw 2] ldrb w0, [x20,23] - cbz w0, .L692 + cbz w0, .L705 lsl w1, w1, 1 str w1, [x25,w3,sxtw 2] -.L692: +.L705: add x0, x19, x3 add w2, w2, 1 strb w2, [x19,1845] strb w24, [x0,1848] -.L691: +.L704: add x24, x24, 1 cmp x24, 4 - bne .L693 - b .L694 + bne .L706 + b .L707 .size FlashDieInfoInit, .-FlashDieInfoInit .align 2 - .global ReadFlashInfo - .type ReadFlashInfo, %function -ReadFlashInfo: + .global ftl_read_flash_info + .type ftl_read_flash_info, %function +ftl_read_flash_info: stp x29, x30, [sp, -32]! mov w1, 0 mov w2, 11 @@ -5420,17 +5436,10 @@ ReadFlashInfo: ldrb w2, [x0,9] ldr w0, [x1,12] mul w0, w0, w2 - ldrb w2, [x1,1936] - strb w2, [x19,7] - uxth w0, w0 strh w0, [x19,4] - ldr x3, [x1,744] - ldrb w2, [x3,13] - mul w0, w2, w0 - ldrh w2, [x3,14] - mul w0, w0, w2 - ldrb w2, [x3,8] - mul w0, w0, w2 + ldrb w0, [x1,1936] + strb w0, [x19,7] + ldr w0, [x1,2060] str w0, [x19] ldr x0, [x1,744] ldrb w4, [x1,1845] @@ -5443,9 +5452,9 @@ ReadFlashInfo: strb w0, [x19,9] mov x0, 0 strb wzr, [x19,10] -.L703: +.L716: cmp w4, w0, uxtb - bls .L705 + bls .L718 add x2, x1, 1848 ldrb w3, [x19,10] ldrb w2, [x0,x2] @@ -5453,12 +5462,12 @@ ReadFlashInfo: lsl w2, w5, w2 orr w2, w2, w3 strb w2, [x19,10] - b .L703 -.L705: + b .L716 +.L718: ldr x19, [sp,16] ldp x29, x30, [sp], 32 ret - .size ReadFlashInfo, .-ReadFlashInfo + .size ftl_read_flash_info, .-ftl_read_flash_info .align 2 .global FtlMemInit .type FtlMemInit, %function @@ -5470,53 +5479,55 @@ FtlMemInit: adrp x21, .LANCHOR2 adrp x22, .LANCHOR0 add x0, x21, :lo12:.LANCHOR2 - add x3, x22, :lo12:.LANCHOR0 + str x25, [sp,64] stp x19, x20, [sp,16] stp x23, x24, [sp,48] - str x25, [sp,64] - str w1, [x0,2036] + add x3, x22, :lo12:.LANCHOR0 + str w1, [x0,2028] + strh wzr, [x0,2016] mov w1, -1 - strh wzr, [x0,2024] - strh w1, [x0,952] - str wzr, [x0,2028] - str wzr, [x0,344] - str wzr, [x0,196] - str wzr, [x0,200] - str wzr, [x0,184] - str wzr, [x0,172] - str wzr, [x0,168] - str wzr, [x0,176] - str wzr, [x0,180] - str wzr, [x0,164] - str wzr, [x0,204] - str wzr, [x0,208] - str wzr, [x0,-72] - str wzr, [x0,216] + str wzr, [x0,2020] + strh w1, [x0,936] + str wzr, [x0,328] + str wzr, [x0,232] + str wzr, [x0,236] str wzr, [x0,220] + str wzr, [x0,208] + str wzr, [x0,204] + str wzr, [x0,212] + str wzr, [x0,216] + str wzr, [x0,200] + str wzr, [x0,240] + str wzr, [x0,244] + str wzr, [x0,-72] + str wzr, [x0,252] + str wzr, [x0,256] + str wzr, [x0,2024] + str wzr, [x0,860] str wzr, [x0,2032] - str wzr, [x0,876] - str wzr, [x0,2040] - str wzr, [x0,868] - str wzr, [x3,2100] - strh w1, [x0,954] + str wzr, [x0,852] + str wzr, [x0,2036] + strh w1, [x0,938] + strh w1, [x0,940] + strh w1, [x0,942] mov w1, 32 ldrh w2, [x3,2024] - strh w1, [x0,864] + strh w1, [x0,848] mov w1, 128 - strh w1, [x0,866] + strh w1, [x0,850] mov w1, 1024 - strh wzr, [x0,872] + strh wzr, [x0,856] sdiv w2, w1, w2 - ldrh w1, [x3,1944] - strh wzr, [x0,956] + ldrh w1, [x3,1948] + strh wzr, [x0,944] lsl w1, w1, 2 - strh wzr, [x0,2044] - strh wzr, [x0,994] + strh wzr, [x0,2040] + strh wzr, [x0,986] cmp w2, w1 - str w2, [x0,2048] - bls .L707 - str w1, [x0,2048] -.L707: + str w2, [x0,2044] + bls .L720 + str w1, [x0,2044] +.L720: add x20, x22, :lo12:.LANCHOR0 add x19, x21, :lo12:.LANCHOR2 mov w24, 56 @@ -5524,53 +5535,53 @@ FtlMemInit: str wzr, [x20,2080] lsl w0, w0, 1 bl ftl_malloc - str x0, [x19,928] + str x0, [x19,912] ldrh w1, [x20,2022] mov w0, 12 mul w0, w1, w0 bl ftl_malloc - ldrh w23, [x20,1944] - str x0, [x19,944] + ldrh w23, [x20,1948] + str x0, [x19,928] mul w23, w23, w24 lsl w25, w23, 3 mov w0, w25 bl ftl_malloc - str x0, [x19,2056] + str x0, [x19,2048] mov w0, w23 bl ftl_malloc - str x0, [x19,2064] + str x0, [x19,2056] mov w0, w25 bl ftl_malloc - str x0, [x19,2072] + str x0, [x19,2064] mov w0, w23 bl ftl_malloc str x0, [x19,-88] mov w0, w23 bl ftl_malloc - str x0, [x19,912] - ldr w0, [x19,2048] + str x0, [x19,896] + ldr w0, [x19,2044] mul w0, w0, w24 bl ftl_malloc str x0, [x20,2088] - ldrh w0, [x20,1944] + ldrh w0, [x20,1948] ldrh w23, [x20,2028] lsl w0, w0, 1 add w0, w0, 1 - str w0, [x19,920] + str w0, [x19,904] mov w0, w23 bl ftl_malloc - str x0, [x19,-64] + str x0, [x19,2072] mov w0, w23 bl ftl_malloc str x0, [x19,2080] mov w0, w23 bl ftl_malloc str x0, [x19,2088] - ldr w0, [x19,920] + ldr w0, [x19,904] mul w0, w23, w0 bl ftl_malloc - str x0, [x19,896] - ldr w0, [x19,2048] + str x0, [x19,880] + ldr w0, [x19,2044] mul w0, w23, w0 bl ftl_malloc str x0, [x19,2096] @@ -5580,12 +5591,12 @@ FtlMemInit: mov w0, w23 bl ftl_malloc str x0, [x19,2112] - ldr w1, [x19,920] + ldr w1, [x19,904] mov w0, 24 mul w0, w1, w0 bl ftl_malloc - ldrh w23, [x20,1944] - str x0, [x19,888] + ldrh w23, [x20,1948] + str x0, [x19,872] ldrh w0, [x20,2030] mul w23, w0, w23 mov w0, w23 @@ -5595,16 +5606,16 @@ FtlMemInit: bl ftl_malloc str x0, [x19,2128] ldrh w1, [x20,2030] - ldr w0, [x19,920] + ldr w0, [x19,904] mul w0, w1, w0 bl ftl_malloc - str x0, [x19,904] + str x0, [x19,888] ldrh w1, [x20,2030] - ldr w0, [x19,2048] + ldr w0, [x19,2044] mul w0, w1, w0 bl ftl_malloc str x0, [x19,2136] - ldrh w0, [x20,1954] + ldrh w0, [x20,1958] lsl w0, w0, 1 strh w0, [x19,2144] and w0, w0, 65534 @@ -5616,7 +5627,7 @@ FtlMemInit: strh w0, [x19,2144] lsl w0, w0, 9 bl ftl_malloc - ldrh w23, [x20,1954] + ldrh w23, [x20,1958] str x0, [x19,2160] add x0, x0, 32 lsl w23, w23, 1 @@ -5627,7 +5638,7 @@ FtlMemInit: mov w0, w23 bl ftl_malloc ldr w23, [x20,2048] - str x0, [x19,-40] + str x0, [x21,#:lo12:.LANCHOR2] lsl w23, w23, 1 mov w0, w23 bl ftl_malloc @@ -5635,7 +5646,7 @@ FtlMemInit: mov w0, w23 bl ftl_malloc str x0, [x19,2184] - ldrh w0, [x20,1954] + ldrh w0, [x20,1958] lsr w0, w0, 3 add w0, w0, 4 bl ftl_malloc @@ -5675,19 +5686,19 @@ FtlMemInit: ldrh w0, [x20,2058] lsl w0, w0, 4 bl ftl_malloc - str x0, [x19,144] + str x0, [x19,184] ldrh w1, [x20,2058] ldrh w0, [x20,2028] mul w0, w1, w0 bl ftl_malloc str x0, [x19,2240] - ldrh w1, [x20,1954] + ldrh w1, [x20,1958] mov w0, 6 mul w0, w1, w0 bl ftl_malloc - str x0, [x19,-56] + str x0, [x19,-16] ldrh w0, [x20,2014] - ldrh w1, [x20,1966] + ldrh w1, [x20,1970] add w0, w0, 31 asr w0, w0, 5 strh w0, [x19,2248] @@ -5697,111 +5708,112 @@ FtlMemInit: str x0, [x20,2136] add x1, x20, 2104 ldrh w4, [x19,2248] - ldrh w5, [x20,1966] + ldrh w5, [x20,1970] mov w0, 1 mov w2, w4 -.L708: +.L721: cmp w0, w5 add x1, x1, 8 - bcs .L808 + bcs .L821 ldr x3, [x20,2136] add w0, w0, 1 add x3, x3, x2, uxtw 2 add w2, w2, w4 str x3, [x1,32] - b .L708 -.L808: + b .L721 +.L821: add x1, x22, :lo12:.LANCHOR0 -.L710: +.L723: cmp w0, 8 - beq .L809 + beq .L822 add x2, x1, x0, uxtw 3 add w0, w0, 1 str xzr, [x2,2136] - b .L710 -.L809: + b .L723 +.L822: add x0, x21, :lo12:.LANCHOR2 ldr x1, [x0,2176] - cbnz x1, .L712 -.L714: - adrp x0, .LC78 + cbnz x1, .L725 +.L727: + adrp x0, .LC80 adrp x1, .LANCHOR3 - add x0, x0, :lo12:.LC78 + add x0, x0, :lo12:.LC80 add x1, x1, :lo12:.LANCHOR3 bl printk mov w0, -1 - b .L713 -.L712: + b .L726 +.L725: ldr x1, [x0,2184] - cbz x1, .L714 + cbz x1, .L727 ldr x1, [x0,2216] - cbz x1, .L714 + cbz x1, .L727 ldr x1, [x0,2232] - cbz x1, .L714 - ldr x1, [x0,144] - cbz x1, .L714 + cbz x1, .L727 + ldr x1, [x0,184] + cbz x1, .L727 ldr x1, [x0,2240] - cbz x1, .L714 - ldr x1, [x0,-56] - cbz x1, .L714 + cbz x1, .L727 + ldr x0, [x0,-16] + cbz x0, .L727 add x22, x22, :lo12:.LANCHOR0 - ldr x1, [x22,2136] - cbz x1, .L714 - ldr x0, [x0,-40] - cbz x0, .L714 + ldr x0, [x22,2136] + cbz x0, .L727 + adrp x0, .LANCHOR2 + ldr x0, [x0,#:lo12:.LANCHOR2] + cbz x0, .L727 add x0, x21, :lo12:.LANCHOR2 - ldr x1, [x0,928] - cbz x1, .L714 - ldr x1, [x0,944] - cbz x1, .L714 - ldr x1, [x0,2056] - cbz x1, .L714 - ldr x1, [x0,2072] - cbz x1, .L714 - ldr x1, [x0,-88] - cbz x1, .L714 ldr x1, [x0,912] - cbz x1, .L714 + cbz x1, .L727 + ldr x1, [x0,928] + cbz x1, .L727 + ldr x1, [x0,2048] + cbz x1, .L727 ldr x1, [x0,2064] - cbz x1, .L714 - ldr x1, [x0,-64] - cbz x1, .L714 - ldr x1, [x0,2080] - cbz x1, .L714 - ldr x0, [x0,2088] - cbz x0, .L714 - add x0, x21, :lo12:.LANCHOR2 + cbz x1, .L727 + ldr x1, [x0,-88] + cbz x1, .L727 ldr x1, [x0,896] - cbz x1, .L714 + cbz x1, .L727 + ldr x1, [x0,2056] + cbz x1, .L727 + ldr x1, [x0,2072] + cbz x1, .L727 + ldr x1, [x0,2080] + cbz x1, .L727 + ldr x0, [x0,2088] + cbz x0, .L727 + add x0, x21, :lo12:.LANCHOR2 + ldr x1, [x0,880] + cbz x1, .L727 ldr x1, [x0,2104] - cbz x1, .L714 + cbz x1, .L727 ldr x1, [x0,2112] - cbz x1, .L714 - ldr x1, [x0,888] - cbz x1, .L714 + cbz x1, .L727 + ldr x1, [x0,872] + cbz x1, .L727 ldr x1, [x0,2120] - cbz x1, .L714 + cbz x1, .L727 ldr x1, [x0,2128] - cbz x1, .L714 - ldr x1, [x0,904] - cbz x1, .L714 + cbz x1, .L727 + ldr x1, [x0,888] + cbz x1, .L727 ldr x1, [x0,-80] - cbz x1, .L714 + cbz x1, .L727 ldr x0, [x0,2152] - cbz x0, .L714 + cbz x0, .L727 adrp x0, .LANCHOR0+2072 ldr x0, [x0,#:lo12:.LANCHOR0+2072] - cbz x0, .L714 + cbz x0, .L727 adrp x0, .LANCHOR2 add x0, x0, :lo12:.LANCHOR2 ldr x1, [x0,2192] - cbz x1, .L714 + cbz x1, .L727 ldr x1, [x0,2200] - cbz x1, .L714 + cbz x1, .L727 ldr x0, [x0,2208] - cbz x0, .L714 + cbz x0, .L727 mov w0, 0 -.L713: +.L726: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -5827,10 +5839,10 @@ FtlBbt2Bitmap: mov x3, 0 mov w0, 65535 mov w5, 1 -.L812: +.L825: ldrh w2, [x20,x3] cmp w2, w0 - beq .L810 + beq .L823 ubfx x4, x2, 5, 11 add x3, x3, 2 lsl x4, x4, 2 @@ -5839,8 +5851,8 @@ FtlBbt2Bitmap: ldr w1, [x19,x4] orr w2, w1, w2 str w2, [x19,x4] - bne .L812 -.L810: + bne .L825 +.L823: ldp x19, x20, [sp,16] ldp x29, x30, [sp], 32 ret @@ -5887,98 +5899,98 @@ FtlFreeSysBlkQueueInit: .global ftl_free_no_use_map_blk .type ftl_free_no_use_map_blk, %function ftl_free_no_use_map_blk: - stp x29, x30, [sp, -96]! + stp x29, x30, [sp, -80]! mov w1, 0 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] + str x25, [sp,64] mov x19, x0 ldrh w2, [x0,10] ldr x21, [x0,32] - ldr x25, [x0,16] + ldr x22, [x0,16] lsl w2, w2, 1 ldr x20, [x0,40] mov x0, x21 bl ftl_memset mov w0, 0 -.L818: +.L831: ldrh w1, [x19,6] cmp w1, w0 - bls .L831 + bls .L853 ubfiz x1, x0, 2, 16 ldr w2, [x20,x1] mov w1, 0 ubfx x2, x2, 10, 16 -.L819: +.L832: ldrh w3, [x19,10] cmp w3, w1 - bls .L832 + bls .L854 ubfiz x3, x1, 1, 16 - ldrh w4, [x25,x3] - cmp w4, w2 - bne .L820 + ldrh w4, [x22,x3] + cmp w2, w4 + bne .L833 + cbz w4, .L833 ldrh w4, [x21,x3] add w4, w4, 1 strh w4, [x21,x3] -.L820: +.L833: add w1, w1, 1 uxth w1, w1 - b .L819 -.L832: + b .L832 +.L854: add w0, w0, 1 uxth w0, w0 - b .L818 -.L831: - mov w24, 0 - ldrh w26, [x21] - mov w20, w24 - adrp x27, .LANCHOR0 -.L823: + b .L831 +.L853: + adrp x0, .LANCHOR0+2020 + mov w23, 0 + mov w20, w23 + ldrh w1, [x0,#:lo12:.LANCHOR0+2020] + ldrh w0, [x19] + strh w1, [x21,x0,lsl 1] + ldrh w24, [x21] +.L836: ldrh w0, [x19,10] cmp w0, w20 - bls .L833 - ldrh w0, [x19] - uxtw x22, w20 - cmp w0, w20 - bne .L824 - add x0, x27, :lo12:.LANCHOR0 - ldrh w1, [x19,2] - ldrh w0, [x0,2020] - cmp w1, w0 - bcs .L824 - strh w0, [x21,x22,lsl 1] -.L824: - lsl x22, x22, 1 - ldrh w23, [x21,x22] - cmp w26, w23 - bls .L825 - mov w24, w20 - mov w26, w23 -.L825: - cbnz w23, .L826 - ldrh w0, [x25,x22] - cbz w0, .L826 + bls .L855 + ubfiz x2, x20, 1, 16 + ldrh w1, [x21,x2] + cmp w24, w1 + bls .L837 + ldrh w0, [x22,x2] + add x25, x22, x2 + cbnz w0, .L838 + b .L839 +.L837: + cbnz w1, .L839 + ldrh w0, [x22,x2] + add x25, x22, x2 + cbz w0, .L839 +.L841: mov w1, 1 bl FtlFreeSysBlkQueueIn - strh w23, [x25,x22] + strh wzr, [x25] ldrh w0, [x19,8] sub w0, w0, #1 strh w0, [x19,8] -.L826: +.L839: add w20, w20, 1 uxth w20, w20 - b .L823 -.L833: - mov w0, w24 - ldr x27, [sp,80] + b .L836 +.L838: + mov w23, w20 + mov w24, w1 + cbz w1, .L841 + b .L839 +.L855: + mov w0, w23 + 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 x29, x30, [sp], 96 + ldp x29, x30, [sp], 80 ret .size ftl_free_no_use_map_blk, .-ftl_free_no_use_map_blk .align 2 @@ -6006,19 +6018,19 @@ FtlL2PDataInit: bl ftl_memset mov w1, 0 mov w5, -1 -.L835: +.L857: add x3, x20, :lo12:.LANCHOR0 ldrh w0, [x3,2058] cmp w0, w1 - bls .L837 + bls .L859 add x4, x19, :lo12:.LANCHOR2 ubfiz x0, x1, 4, 16 - ldr x2, [x4,144] + ldr x2, [x4,184] add x2, x2, x0 str wzr, [x2,4] - ldr x2, [x4,144] + ldr x2, [x4,184] strh w5, [x2,x0] - ldr x2, [x4,144] + ldr x2, [x4,184] add x2, x2, x0 ldrh w0, [x3,2028] ldr x3, [x4,2240] @@ -6029,30 +6041,29 @@ FtlL2PDataInit: and x0, x0, -4 add x0, x3, x0 str x0, [x2,8] - b .L835 -.L837: + b .L857 +.L859: add x0, x19, :lo12:.LANCHOR2 - ldr w4, [x3,2048] - ldrh w3, [x3,2056] - add x1, x0, 2256 mov w2, -1 - strh w3, [x0,2262] - ldr x3, [x0,2176] - strh w4, [x0,2266] - mov w4, -3902 - str x3, [x0,2272] - ldr x3, [x0,2232] - strh w4, [x0,2260] - str x3, [x0,2280] - ldrh w4, [x0,2320] - ldr x3, [x0,2184] + add x1, x0, 2256 strh w2, [x0,2258] strh w2, [x0,2256] - strh w4, [x0,2264] - str x3, [x0,2288] + ldr w2, [x3,2048] + strh w2, [x0,2266] + mov w2, -3902 + strh w2, [x0,2260] + ldrh w2, [x0,2320] + strh w2, [x0,2264] + ldrh w2, [x3,2056] + strh w2, [x0,2262] + ldr x2, [x0,2176] + str x2, [x0,2272] + ldr x2, [x0,2232] + str x2, [x0,2280] + ldr x2, [x0,2184] + str x2, [x0,2288] ldr x0, [x0,2216] str x0, [x1,40] - strh w2, [x1,60] ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x29, x30, [sp], 48 @@ -6080,26 +6091,26 @@ FtlVariablesInit: str xzr, [x19,2328] str wzr, [x19,2340] str wzr, [x19,2344] - str wzr, [x19,160] + str wzr, [x20,1940] strh wzr, [x20,2066] bl ftl_memset - ldrh w2, [x20,1954] + ldrh w2, [x20,1958] mov w1, 0 ldr x0, [x19,-80] lsl w2, w2, 1 bl ftl_memset - ldrh w2, [x20,1954] + ldrh w2, [x20,1958] mov w1, 0 ldr x0, [x19,2152] lsl w2, w2, 1 bl ftl_memset - add x0, x19, 224 + sub x0, x19, #64 mov w1, 0 mov w2, 48 bl ftl_memset mov w1, 0 mov w2, 512 - add x0, x19, 352 + add x0, x19, 336 bl ftl_memset bl FtlGcBufInit bl FtlL2PDataInit @@ -6126,32 +6137,32 @@ SupperBlkListInit: adrp x21, .LANCHOR2 mov w25, 0 add x19, x21, :lo12:.LANCHOR2 - ldrh w2, [x0,1954] + ldrh w2, [x0,1958] mov w22, w25 mov w26, 32768 - ldr x0, [x19,-56] + ldr x0, [x19,-16] mul w2, w2, w24 bl ftl_memset - str xzr, [x19,-16] - str xzr, [x19,-48] - str xzr, [x19,-32] - strh wzr, [x19,-24] - strh wzr, [x19,-8] - strh wzr, [x19,2024] + str xzr, [x19,24] + str xzr, [x19,-8] + str xzr, [x19,8] + strh wzr, [x19,16] + strh wzr, [x19,32] + strh wzr, [x19,2016] mov w19, w25 -.L840: +.L862: add x0, x23, :lo12:.LANCHOR0 - ldrh w1, [x0,1952] + ldrh w1, [x0,1956] cmp w19, w1 - bge .L847 + bge .L869 mov w20, 0 - ldrh w3, [x0,1944] + ldrh w3, [x0,1948] ldrh w2, [x0,2018] mov w28, w20 mov x27, x0 -.L848: +.L870: cmp w28, w3 - bge .L849 + bge .L871 add x0, x27, 1976 mov w1, w19 str x2, [x29,96] @@ -6161,61 +6172,60 @@ SupperBlkListInit: bl FtlBbmIsBadBlock ldr x3, [x29,104] ldr x2, [x29,96] - cbnz w0, .L841 + cbnz w0, .L863 add w20, w2, w20 sxth w20, w20 -.L841: +.L863: add w28, w28, 1 sxth w28, w28 - b .L848 -.L849: - cbz w20, .L843 + b .L870 +.L871: + cbz w20, .L865 sdiv w20, w26, w20 sxth w20, w20 - b .L844 -.L843: - add x0, x21, :lo12:.LANCHOR2 + b .L866 +.L865: + ldr x0, [x21,#:lo12:.LANCHOR2] mov w1, -1 - ldr x0, [x0,-40] strh w1, [x0,w19,sxtw 1] -.L844: +.L866: add x0, x21, :lo12:.LANCHOR2 - ldr x1, [x0,-56] + ldr x1, [x0,-16] smaddl x1, w19, w24, x1 strh w20, [x1,4] - ldrh w1, [x21,#:lo12:.LANCHOR2] + ldrh w1, [x0,40] cmp w19, w1 - beq .L845 - ldrh w1, [x0,48] + beq .L867 + ldrh w1, [x0,88] cmp w19, w1 - beq .L845 - ldrh w1, [x0,96] - cmp w19, w1 - beq .L845 - ldr x0, [x0,-40] + beq .L867 + ldrh w0, [x0,136] + cmp w19, w0 + beq .L867 + ldr x0, [x21,#:lo12:.LANCHOR2] ldrh w0, [x0,w19,sxtw 1] - cbnz w0, .L846 + cbnz w0, .L868 add w4, w25, 1 mov w0, w19 uxth w25, w4 bl INSERT_FREE_LIST - b .L845 -.L846: + b .L867 +.L868: add w22, w22, 1 mov w0, w19 uxth w22, w22 bl INSERT_DATA_LIST -.L845: +.L867: add w19, w19, 1 sxth w19, w19 - b .L840 -.L847: + b .L862 +.L869: add x21, x21, :lo12:.LANCHOR2 mov w0, 0 ldp x19, x20, [sp,16] ldp x23, x24, [sp,48] - strh w25, [x21,-8] - strh w22, [x21,-24] + strh w25, [x21,32] + strh w22, [x21,16] ldp x25, x26, [sp,64] ldp x21, x22, [sp,32] ldp x27, x28, [sp,80] @@ -6235,14 +6245,14 @@ FtlGcPageVarInit: add x20, x20, :lo12:.LANCHOR0 add x19, x19, :lo12:.LANCHOR2 ldrh w2, [x20,2022] - ldr x0, [x19,928] + ldr x0, [x19,912] lsl w2, w2, 1 - strh wzr, [x19,924] - strh wzr, [x19,936] + strh wzr, [x19,908] + strh wzr, [x19,920] bl ftl_memset ldrh w3, [x20,2022] mov w2, 12 - ldr x0, [x19,944] + ldr x0, [x19,928] mov w1, 255 mul w2, w3, w2 bl ftl_memset @@ -6293,43 +6303,43 @@ FlashLoadPhyInfoInRam: add x21, x21, 512 mov w19, 0 add x22, x22, 1620 -.L857: +.L879: ldrb w2, [x21] add x0, x21, 1 mov x1, x22 bl FlashMemCmp8 mov w23, w0 - cbnz w0, .L854 + cbnz w0, .L876 add x0, x20, :lo12:.LANCHOR1 ubfiz x19, x19, 5, 32 add x1, x0, 512 adds x19, x1, x19 - beq .L860 + beq .L882 ldrb w3, [x19,22] mov x2, 0 mov x1, x0 - b .L859 -.L854: + b .L881 +.L876: add w19, w19, 1 add x21, x21, 32 - cmp w19, 72 - bne .L857 - b .L860 -.L859: + cmp w19, 77 + bne .L879 + b .L882 +.L881: add x4, x1, x2, lsl 5 mov w0, w2 - ldrb w4, [x4,2816] + ldrb w4, [x4,2976] cmp w4, w3 - beq .L858 + beq .L880 add x2, x2, 1 cmp x2, 4 - bne .L859 + bne .L881 mov w0, w2 -.L858: +.L880: add x20, x20, :lo12:.LANCHOR1 ubfiz x1, x0, 5, 32 adrp x0, .LANCHOR0 - add x2, x20, 2816 + add x2, x20, 2976 add x0, x0, :lo12:.LANCHOR0 add x1, x2, x1 add x0, x0, 88 @@ -6339,10 +6349,10 @@ FlashLoadPhyInfoInRam: mov x1, x19 mov w2, 32 bl ftl_memcpy - b .L855 -.L860: + b .L877 +.L882: mov w23, -1 -.L855: +.L877: mov w0, w23 ldr x23, [sp,48] ldp x19, x20, [sp,16] @@ -6366,14 +6376,14 @@ NandcCopy1KB: add x4, x0, 4096 add x21, x0, 512 add x2, x4, x2 - bne .L865 - cbz x3, .L866 + bne .L887 + cbz x3, .L888 mov x0, x2 mov x1, x3 mov w2, 1024 bl ftl_memcpy -.L866: - cbz x20, .L864 +.L888: + cbz x20, .L886 mov w0, 48 lsr w19, w19, 1 ldrb w1, [x20,1] @@ -6387,15 +6397,15 @@ NandcCopy1KB: ldrb w1, [x20,3] orr w0, w0, w1, lsl 24 str w0, [x21,w19,sxtw 2] - b .L864 -.L865: - cbz x3, .L869 + b .L886 +.L887: + cbz x3, .L891 mov x1, x2 mov x0, x3 mov w2, 1024 bl ftl_memcpy -.L869: - cbz x20, .L864 +.L891: + cbz x20, .L886 mov w0, 48 lsr w19, w19, 1 mul w19, w19, w0 @@ -6408,13 +6418,28 @@ NandcCopy1KB: lsr w0, w0, 24 strb w1, [x20,2] strb w0, [x20,3] -.L864: +.L886: ldp x19, x20, [sp,16] ldr x21, [sp,32] ldp x29, x30, [sp], 48 ret .size NandcCopy1KB, .-NandcCopy1KB .align 2 + .global ftl_memcpy32 + .type ftl_memcpy32, %function +ftl_memcpy32: + mov x3, 0 +.L903: + cmp w2, w3 + bls .L905 + ldr w4, [x1,x3,lsl 2] + str w4, [x0,x3,lsl 2] + add x3, x3, 1 + b .L903 +.L905: + ret + .size ftl_memcpy32, .-ftl_memcpy32 + .align 2 .global ftl_memcmp .type ftl_memcmp, %function ftl_memcmp: @@ -6426,6 +6451,39 @@ ftl_memcmp: ret .size ftl_memcmp, .-ftl_memcmp .align 2 + .global js_hash + .type js_hash, %function +js_hash: + mov x5, x0 + mov w0, 42982 + mov x2, 0 + movk w0, 0x47c6, lsl 16 +.L908: + cmp w1, w2 + bls .L910 + 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 .L908 +.L910: + ret + .size js_hash, .-js_hash + .align 2 + .global timer_get_time + .type timer_get_time, %function +timer_get_time: + adrp x0, jiffies + stp x29, x30, [sp, -16]! + add x29, sp, 0 + ldr x0, [x0,#:lo12:jiffies] + bl jiffies_to_msecs + ldp x29, x30, [sp], 16 + ret + .size timer_get_time, .-timer_get_time + .align 2 .global FlashSramLoadStore .type FlashSramLoadStore, %function FlashSramLoadStore: @@ -6436,13 +6494,13 @@ FlashSramLoadStore: add x29, sp, 0 ldr x4, [x4,#:lo12:.LANCHOR4+48] add x4, x4, 4096 - cbnz w2, .L882 + cbnz w2, .L913 add x1, x4, x1 - b .L884 -.L882: + b .L915 +.L913: add x0, x4, x1 mov x1, x6 -.L884: +.L915: mov w2, w3 bl ftl_memcpy ldp x29, x30, [sp], 16 @@ -6455,22 +6513,12 @@ FlashCs123Init: ret .size FlashCs123Init, .-FlashCs123Init .align 2 - .global rk_nand_de_init - .type rk_nand_de_init, %function -rk_nand_de_init: - stp x29, x30, [sp, -16]! - add x29, sp, 0 - bl FlashDeInit - ldp x29, x30, [sp], 16 - ret - .size rk_nand_de_init, .-rk_nand_de_init - .align 2 .global rk_nand_suspend .type rk_nand_suspend, %function rk_nand_suspend: stp x29, x30, [sp, -16]! add x29, sp, 0 - bl FlashSuspend + bl ftl_flash_suspend ldp x29, x30, [sp], 16 ret .size rk_nand_suspend, .-rk_nand_suspend @@ -6480,7 +6528,7 @@ rk_nand_suspend: rk_nand_resume: stp x29, x30, [sp, -16]! add x29, sp, 0 - bl FlashResume + bl ftl_flash_resume ldp x29, x30, [sp], 16 ret .size rk_nand_resume, .-rk_nand_resume @@ -6493,6 +6541,33 @@ rk_ftl_get_capacity: ret .size rk_ftl_get_capacity, .-rk_ftl_get_capacity .align 2 + .global rk_nandc_get_irq_status + .type rk_nandc_get_irq_status, %function +rk_nandc_get_irq_status: + ldr w0, [x0,372] + ret + .size rk_nandc_get_irq_status, .-rk_nandc_get_irq_status + .align 2 + .global rknand_proc_ftlread + .type rknand_proc_ftlread, %function +rknand_proc_ftlread: + stp x29, x30, [sp, -16]! + add x29, sp, 0 + bl ftl_proc_ftl_read + ldp x29, x30, [sp], 16 + ret + .size rknand_proc_ftlread, .-rknand_proc_ftlread + .align 2 + .global ReadFlashInfo + .type ReadFlashInfo, %function +ReadFlashInfo: + stp x29, x30, [sp, -16]! + add x29, sp, 0 + bl ftl_read_flash_info + ldp x29, x30, [sp], 16 + ret + .size ReadFlashInfo, .-ReadFlashInfo + .align 2 .global rknand_print_hex .type rknand_print_hex, %function rknand_print_hex: @@ -6502,9 +6577,9 @@ rknand_print_hex: stp x21, x22, [sp,32] stp x23, x24, [sp,48] mov x19, 0 - adrp x23, .LC79 - adrp x21, .LC80 - adrp x24, .LC73 + adrp x23, .LC81 + adrp x21, .LC82 + adrp x24, .LC75 stp x25, x26, [sp,64] str x27, [sp,80] mov x22, x1 @@ -6512,48 +6587,49 @@ rknand_print_hex: mov w25, w2 uxtw x26, w3 mov w20, w19 - add x23, x23, :lo12:.LC79 - add x21, x21, :lo12:.LC80 - add x24, x24, :lo12:.LC73 -.L891: + add x23, x23, :lo12:.LC81 + add x21, x21, :lo12:.LC82 + add x24, x24, :lo12:.LC75 +.L924: cmp x19, x26 - beq .L899 - cbnz w20, .L892 + beq .L932 + cbnz w20, .L925 mov x0, x23 mov x1, x27 - mov w2, w19 + mov x2, x22 + mov w3, w19 bl printk -.L892: +.L925: cmp w25, 4 mov x0, x21 - bne .L893 + bne .L926 ldr w1, [x22,x19,lsl 2] - b .L898 -.L893: + b .L931 +.L926: cmp w25, 2 - bne .L895 + bne .L928 ldrsh w1, [x22,x19,lsl 1] - b .L898 -.L895: + b .L931 +.L928: ldrb w1, [x22,x19] -.L898: +.L931: bl printk add w20, w20, 1 cmp w20, 15 - bls .L896 - adrp x1, .LC81 + bls .L929 + adrp x1, .LC83 mov x0, x24 - add x1, x1, :lo12:.LC81 + add x1, x1, :lo12:.LC83 mov w20, 0 bl printk -.L896: +.L929: add x19, x19, 1 - b .L891 -.L899: - adrp x0, .LC73 - adrp x1, .LC81 - add x1, x1, :lo12:.LC81 - add x0, x0, :lo12:.LC73 + b .L924 +.L932: + adrp x0, .LC75 + adrp x1, .LC83 + add x1, x1, :lo12:.LC83 + add x0, x0, :lo12:.LC75 bl printk ldr x27, [sp,80] ldp x19, x20, [sp,16] @@ -6588,16 +6664,16 @@ HynixGetReadRetryDefault: mov w0, -81 strb w2, [x1,6] strb w0, [x1,7] - bne .L901 + bne .L934 mov w0, -89 strb w0, [x1,4] - adrp x0, .LANCHOR1+2961 + adrp x0, .LANCHOR1+3121 mov w1, -9 - strb w1, [x0,#:lo12:.LANCHOR1+2961] - b .L956 -.L901: + strb w1, [x0,#:lo12:.LANCHOR1+3121] + b .L989 +.L934: cmp w26, 3 - bne .L903 + bne .L936 mov w0, -80 strb w0, [x1,4] mov w0, -79 @@ -6613,10 +6689,10 @@ HynixGetReadRetryDefault: mov w0, -74 strb w0, [x1,10] mov w0, -73 - b .L989 -.L903: + b .L1022 +.L936: cmp w26, 4 - bne .L904 + bne .L937 mov w5, -52 strb w5, [x1,4] mov w5, -65 @@ -6629,14 +6705,14 @@ HynixGetReadRetryDefault: mov w5, -51 strb w2, [x1,10] strb w5, [x1,8] -.L989: +.L1022: mov w27, 8 strb w0, [x1,11] mov w28, w27 - b .L902 -.L904: + b .L935 +.L937: cmp w26, 5 - bne .L905 + bne .L938 mov w0, 56 strb w0, [x1,4] mov w0, 57 @@ -6646,10 +6722,10 @@ HynixGetReadRetryDefault: strb w0, [x1,6] mov w0, 59 strb w0, [x1,7] - b .L988 -.L905: + b .L1021 +.L938: cmp w26, 6 - bne .L906 + bne .L939 mov w0, 14 strb w0, [x1,4] mov w0, 15 @@ -6659,10 +6735,10 @@ HynixGetReadRetryDefault: strb w0, [x1,6] mov w0, 17 strb w0, [x1,7] - b .L988 -.L906: + b .L1021 +.L939: cmp w26, 7 - bne .L956 + bne .L989 mov w0, -80 strb w0, [x1,4] mov w0, -79 @@ -6685,26 +6761,26 @@ HynixGetReadRetryDefault: mov w28, 10 mov w0, -43 strb w0, [x1,13] - b .L902 -.L956: + b .L935 +.L989: mov w27, 7 -.L988: +.L1021: mov w28, 4 -.L902: +.L935: sub w0, w26, #1 cmp w0, 1 - bhi .L985 + bhi .L1018 adrp x22, .LANCHOR1 add x25, x19, :lo12:.LANCHOR0 add x22, x22, :lo12:.LANCHOR1 mov w21, 0 add x26, x25, 760 add x4, x25, 24 - add x22, x22, 2944 -.L907: + add x22, x22, 3104 +.L940: ldrb w0, [x25,1845] cmp w0, w21 - bls .L914 + bls .L947 add x0, x25, x21, sxtw ldrb w0, [x0,1848] mov x23, 0 @@ -6716,7 +6792,7 @@ HynixGetReadRetryDefault: ldrb w0, [x1,8] mov w1, 55 add x24, x24, x0, lsl 8 -.L909: +.L942: add x0, x26, x23 str w1, [x24,2056] str x4, [x29,128] @@ -6731,12 +6807,12 @@ HynixGetReadRetryDefault: ldr x1, [x29,136] cmp w28, w23, uxtb ldr x4, [x29,128] - bhi .L909 + bhi .L942 mov x0, 0 -.L910: +.L943: add w2, w0, 8 mov x1, 0 -.L911: +.L944: add x3, x1, x0 add x1, x1, 4 add x3, x22, x3 @@ -6746,10 +6822,10 @@ HynixGetReadRetryDefault: add w3, w6, w3 strb w3, [x20,w2,sxtw] add w2, w2, 8 - bne .L911 + bne .L944 add x0, x0, 1 cmp x0, 4 - bne .L910 + bne .L943 add w21, w21, 1 strb wzr, [x20,16] strb wzr, [x20,24] @@ -6759,11 +6835,11 @@ HynixGetReadRetryDefault: strb wzr, [x20,48] strb wzr, [x20,41] strb wzr, [x20,49] - b .L907 -.L985: + b .L940 +.L1018: sub w0, w26, #3 cmp w0, 4 - bhi .L914 + bhi .L947 mul w25, w28, w27 sub w23, w28, #1 add x21, x19, :lo12:.LANCHOR0 @@ -6779,11 +6855,11 @@ HynixGetReadRetryDefault: sub w25, w26, #5 add x0, x23, 1 str x0, [x29,112] -.L915: +.L948: ldrb w0, [x21,1845] cmp w0, w20 - bhi .L955 -.L914: + bhi .L988 +.L947: add x19, x19, :lo12:.LANCHOR0 ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -6794,7 +6870,7 @@ HynixGetReadRetryDefault: ldp x27, x28, [sp,80] ldp x29, x30, [sp], 144 ret -.L955: +.L988: add x0, x21, x20, sxtw ldrb w1, [x0,1848] str x1, [x29,104] @@ -6812,41 +6888,41 @@ HynixGetReadRetryDefault: cmp w26, 7 add x6, x21, 760 ldr x1, [x29,104] - beq .L916 + beq .L949 add x1, x6, x1, lsl 6 add x6, x1, 20 - b .L917 -.L916: + b .L950 +.L949: mov x0, 160 madd x1, x1, x0, x6 add x6, x1, 28 -.L917: +.L950: mov w0, 54 cmp w26, 4 str w0, [x23,2056] - bne .L918 + bne .L951 mov w0, 255 str w0, [x23,2052] mov w0, 64 str w0, [x23,2048] mov w0, 204 - b .L990 -.L918: + b .L1023 +.L951: cmp w25, 1 - bhi .L920 + bhi .L953 ldrb w0, [x21,764] str w0, [x23,2052] mov w0, 82 - b .L991 -.L920: + b .L1024 +.L953: mov w0, 174 str w0, [x23,2052] str wzr, [x23,2048] mov w0, 176 -.L990: +.L1023: str w0, [x23,2052] mov w0, 77 -.L991: +.L1024: str w0, [x23,2048] mov w0, 22 str w0, [x23,2056] @@ -6860,13 +6936,13 @@ HynixGetReadRetryDefault: str wzr, [x23,2056] str wzr, [x23,2052] str wzr, [x23,2052] - bne .L921 + bne .L954 mov w0, 31 str w0, [x23,2052] - b .L922 -.L921: + b .L955 +.L954: str wzr, [x23,2052] -.L922: +.L955: mov w1, 2 str w1, [x23,2052] str wzr, [x23,2052] @@ -6879,89 +6955,89 @@ HynixGetReadRetryDefault: cmp w25, 1 mov w7, 16 ldr x6, [x29,96] - bls .L924 + bls .L957 ldr x1, [x29,104] cmp w26, 7 mov w7, 32 csel w7, w7, w1, eq -.L924: +.L957: adrp x0, .LANCHOR4 mov x8, 0 add x1, x0, :lo12:.LANCHOR4 ldr x1, [x1,56] -.L925: +.L958: ldr w9, [x23,2048] strb w9, [x1,x8] add x8, x8, 1 cmp w7, w8, uxtb - bhi .L925 + bhi .L958 cmp w26, 7 - bne .L926 + bne .L959 mov w7, 0 -.L928: +.L961: ldrb w8, [x1] cmp w8, 12 - beq .L927 + beq .L960 ldrb w8, [x1,1] cmp w8, 10 - beq .L927 + beq .L960 add w7, w7, 1 add x1, x1, 4 uxtb w7, w7 cmp w7, 8 - bne .L928 - b .L929 -.L927: + bne .L961 + b .L962 +.L960: cmp w7, 7 - bne .L930 -.L929: - adrp x0, .LC82 + bne .L963 +.L962: + adrp x0, .LC84 mov w1, 0 - add x0, x0, :lo12:.LC82 + add x0, x0, :lo12:.LC84 bl printk -.L931: - b .L931 -.L926: +.L964: + b .L964 +.L959: cmp w26, 6 - bne .L930 + bne .L963 mov x7, 0 -.L932: +.L965: ldrb w8, [x1,x7] cmp w8, 12 - beq .L930 + beq .L963 add x8, x1, x7 ldrb w8, [x8,8] cmp w8, 4 - beq .L930 + beq .L963 add x7, x7, 1 cmp x7, 8 - bne .L932 - adrp x0, .LC82 + bne .L965 + adrp x0, .LC84 mov w1, 0 - add x0, x0, :lo12:.LC82 + add x0, x0, :lo12:.LC84 bl printk -.L934: - b .L934 -.L930: +.L967: + b .L967 +.L963: add x1, x0, :lo12:.LANCHOR4 ldr x10, [x1,56] mov x1, 0 -.L935: +.L968: ldr w2, [x29,128] cmp w2, w1 - ble .L992 + ble .L1025 ldr w7, [x23,2048] strb w7, [x10,x1] add x1, x1, 1 - b .L935 -.L992: + b .L968 +.L1025: add x1, x0, :lo12:.LANCHOR4 mov w9, w22 mov w8, 8 ldr x12, [x1,56] -.L938: +.L971: mov w1, 0 -.L937: +.L970: add w7, w1, w9 add w1, w1, 1 sbfiz x7, x7, 2, 32 @@ -6969,96 +7045,96 @@ HynixGetReadRetryDefault: ldr w11, [x12,x7] mvn w11, w11 str w11, [x12,x7] - bne .L937 + bne .L970 ldr w1, [x29,124] subs w8, w8, #1 add w9, w9, w1 - bne .L938 + bne .L971 mov x8, 0 mov w16, 1 -.L939: +.L972: add x1, x0, :lo12:.LANCHOR4 ldr x15, [x1,56] mov w1, 0 mov w11, w1 -.L943: +.L976: lsl w9, w16, w11 mov w13, w8 mov w7, 16 mov w12, 0 -.L941: +.L974: ldr w14, [x15,w13,sxtw 2] add w13, w13, w22 and w14, w9, w14 cmp w14, w9 csinc w12, w12, w12, ne subs w7, w7, #1 - bne .L941 + bne .L974 cmp w12, 9 orr w9, w1, w9 add w11, w11, 1 csel w1, w9, w1, cs cmp w11, 32 - bne .L943 + bne .L976 str w1, [x15,x8,lsl 2] add x8, x8, 1 cmp w22, w8 - bgt .L939 + bgt .L972 add x0, x0, :lo12:.LANCHOR4 ldr x1, [x0,56] mov x0, 0 mov w8, w0 -.L946: +.L979: ldr w9, [x1,x0] add x0, x0, 4 cmp w9, wzr csinc w8, w8, w8, ne cmp x0, 32 - bne .L946 + bne .L979 cmp w8, 7 - ble .L947 - adrp x0, .LC83 + ble .L980 + adrp x0, .LC85 mov w2, 1 - add x0, x0, :lo12:.LC83 + add x0, x0, :lo12:.LC85 mov w3, 1024 bl rknand_print_hex - adrp x0, .LC82 + adrp x0, .LC84 mov w1, 0 - add x0, x0, :lo12:.LC82 + add x0, x0, :lo12:.LC84 bl printk -.L948: - b .L948 -.L947: +.L981: + b .L981 +.L980: cmp w26, 6 mov w1, 4 - beq .L949 + beq .L982 cmp w26, 7 mov w1, 10 mov w0, 8 csel w1, w0, w1, ne -.L949: +.L982: mov w8, 0 -.L950: +.L983: mov x0, 0 -.L951: +.L984: add w9, w7, w0 ldrb w11, [x10,x0] add x0, x0, 1 cmp w28, w0, uxtb strb w11, [x6,w9,sxtw] - bhi .L951 + bhi .L984 add w8, w8, 1 ldr x0, [x29,112] cmp w8, w27 add w7, w7, w1 add x10, x10, x0 - blt .L950 + blt .L983 mov w0, 255 str w0, [x23,2056] mov w0, w24 bl NandcWaitFlashReady cmp w25, 1 - bhi .L953 + bhi .L986 mov w0, 54 str w0, [x23,2056] adrp x0, .LANCHOR0+764 @@ -7070,16 +7146,16 @@ HynixGetReadRetryDefault: str w0, [x23,2056] mov w0, w20 bl FlashReadCmd - b .L954 -.L953: + b .L987 +.L986: mov w0, 56 str w0, [x23,2056] -.L954: +.L987: mov w0, w24 add w20, w20, 1 bl NandcWaitFlashReady uxtb w20, w20 - b .L915 + b .L948 .size HynixGetReadRetryDefault, .-HynixGetReadRetryDefault .align 2 .global FlashGetReadRetryDefault @@ -7088,15 +7164,15 @@ FlashGetReadRetryDefault: stp x29, x30, [sp, -16]! mov w1, w0 add x29, sp, 0 - cbz w0, .L993 + cbz w0, .L1026 sub w2, w0, #1 cmp w2, 6 - bhi .L995 + bhi .L1028 bl HynixGetReadRetryDefault - b .L993 -.L995: + b .L1026 +.L1028: cmp w0, 49 - bne .L996 + bne .L1029 adrp x0, .LANCHOR0 mov w2, 64 add x0, x0, :lo12:.LANCHOR0 @@ -7109,30 +7185,30 @@ FlashGetReadRetryDefault: adrp x1, .LANCHOR1 add x1, x1, :lo12:.LANCHOR1 add x1, x1, 408 - b .L1011 -.L996: + b .L1044 +.L1029: sub w0, w0, #65 cmp w0, 1 - bls .L1002 + bls .L1035 cmp w1, 33 - bne .L997 -.L1002: + bne .L1030 +.L1035: adrp x0, .LANCHOR0 add x0, x0, :lo12:.LANCHOR0 strb w1, [x0,760] mov w1, 4 - b .L1012 -.L997: + b .L1045 +.L1030: cmp w1, 67 - beq .L1003 + beq .L1036 cmp w1, 34 - bne .L999 -.L1003: + bne .L1032 +.L1036: adrp x0, .LANCHOR0 add x0, x0, :lo12:.LANCHOR0 strb w1, [x0,760] mov w1, 5 -.L1012: +.L1045: strb w1, [x0,761] mov w1, 7 strb w1, [x0,762] @@ -7141,13 +7217,13 @@ FlashGetReadRetryDefault: add x0, x0, 764 add x1, x1, 256 mov w2, 45 - b .L1011 -.L999: + b .L1044 +.L1032: cmp w1, 68 - beq .L1004 + beq .L1037 cmp w1, 35 - bne .L993 -.L1004: + bne .L1026 +.L1037: adrp x0, .LANCHOR0 mov w2, 95 add x0, x0, :lo12:.LANCHOR0 @@ -7160,9 +7236,9 @@ FlashGetReadRetryDefault: adrp x1, .LANCHOR1 add x1, x1, :lo12:.LANCHOR1 add x1, x1, 304 -.L1011: +.L1044: bl ftl_memcpy -.L993: +.L1026: ldp x29, x30, [sp], 16 ret .size FlashGetReadRetryDefault, .-FlashGetReadRetryDefault @@ -7180,38 +7256,38 @@ NandcXferComp: add x2, x1, 24 stp x21, x22, [sp,32] ldr x19, [x2,x0] - ldr w0, [x1,1864] + ldr w0, [x1,1868] cmp w0, 3 - bls .L1044 + bls .L1077 ldr w0, [x19,16] - tbz x0, 2, .L1044 + tbz x0, 2, .L1077 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, .L1015 - adrp x22, .LC84 - adrp x23, .LC85 + cbz w21, .L1048 + adrp x22, .LC86 + adrp x23, .LC87 mov w21, 0 - add x22, x22, :lo12:.LC84 - add x23, x23, :lo12:.LC85 -.L1016: + add x22, x22, :lo12:.LC86 + add x23, x23, :lo12:.LC87 +.L1049: ldr w2, [x19,28] ldr w1, [x29,64] ubfx x2, x2, 16, 5 ubfx x1, x1, 22, 6 cmp w2, w1 - bge .L1024 + bge .L1057 add x0, x20, :lo12:.LANCHOR0 - ldr w0, [x0,1864] + ldr w0, [x0,1868] cmp w0, 5 - bhi .L1017 -.L1020: + bhi .L1050 +.L1053: add w21, w21, 1 and w0, w21, 16777215 - cbnz w0, .L1016 + cbnz w0, .L1049 ldr w2, [x19,28] mov w1, w21 ldr w3, [x29,64] @@ -7224,19 +7300,19 @@ NandcXferComp: mov w2, 4 mov w3, 512 bl rknand_print_hex - b .L1016 -.L1017: + b .L1049 +.L1050: ldr w0, [x19] str w0, [x29,72] ldr w0, [x29,72] - tbz x0, 13, .L1020 + tbz x0, 13, .L1053 ldr w0, [x29,72] - tbz x0, 17, .L1020 -.L1024: + tbz x0, 17, .L1053 +.L1057: add x19, x20, :lo12:.LANCHOR0 add x19, x19, 1880 ldr w0, [x19,40] - cbz w0, .L1025 + cbz w0, .L1058 ldr w1, [x29,64] mov w2, 0 ldr w0, [x19,32] @@ -7249,20 +7325,20 @@ NandcXferComp: ubfx x1, x1, 22, 5 lsl w1, w1, 7 bl rknand_dma_unmap_single - b .L1025 -.L1015: - adrp x22, .LC86 - adrp x23, .LC85 - add x22, x22, :lo12:.LC86 - add x23, x23, :lo12:.LC85 -.L1026: + b .L1058 +.L1048: + adrp x22, .LC88 + adrp x23, .LC87 + add x22, x22, :lo12:.LC88 + add x23, x23, :lo12:.LC87 +.L1059: ldr w0, [x29,64] - tbnz x0, 20, .L1052 + tbnz x0, 20, .L1085 ldr w0, [x19,8] add w21, w21, 1 str w0, [x29,64] and w0, w21, 16777215 - cbnz w0, .L1026 + cbnz w0, .L1059 ldr w2, [x29,64] mov w1, w21 ldr w3, [x19,28] @@ -7274,18 +7350,18 @@ NandcXferComp: mov w2, 4 mov w3, 512 bl rknand_print_hex - b .L1026 -.L1052: + b .L1059 +.L1085: add x0, x20, :lo12:.LANCHOR0 ldr w0, [x0,1928] - cbz w0, .L1029 + cbz w0, .L1062 mov x0, x19 bl NandcSendDumpDataStart -.L1029: +.L1062: add x21, x20, :lo12:.LANCHOR0 add x21, x21, 1880 ldr w0, [x21,40] - cbz w0, .L1030 + cbz w0, .L1063 ldr w1, [x29,64] mov w2, 1 ldr w0, [x21,32] @@ -7298,22 +7374,22 @@ NandcXferComp: ubfx x1, x1, 22, 5 lsl w1, w1, 7 bl rknand_dma_unmap_single -.L1030: +.L1063: add x0, x20, :lo12:.LANCHOR0 ldr w0, [x0,1928] - cbz w0, .L1025 + cbz w0, .L1058 mov x0, x19 bl NandcSendDumpDataDone -.L1025: +.L1058: add x20, x20, :lo12:.LANCHOR0 str wzr, [x20,1920] - b .L1013 -.L1044: + b .L1046 +.L1077: ldr w0, [x19,8] str w0, [x29,64] ldr w0, [x29,64] - tbz x0, 20, .L1044 -.L1013: + tbz x0, 20, .L1077 +.L1046: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldr x23, [sp,48] @@ -7341,14 +7417,14 @@ NandcXferData: uxtb w24, w2 mov x26, x3 mov x22, x4 - cbnz x0, .L1054 - cbnz x4, .L1055 + cbnz x0, .L1087 + cbnz x4, .L1088 add x0, x29, 112 mov w1, 255 mov w2, 64 add x22, x29, 112 bl ftl_memset -.L1055: +.L1088: mov w0, w25 mov w1, w21 mov w2, w24 @@ -7359,7 +7435,7 @@ NandcXferData: bl NandcXferStart mov w0, w25 bl NandcXferComp - cbnz w21, .L1056 + cbnz w21, .L1089 add x1, x19, :lo12:.LANCHOR0 ubfx x2, x24, 1, 7 mov w3, 128 @@ -7369,10 +7445,10 @@ NandcXferData: mov w0, 64 csel w3, w0, w3, cc mov w0, w21 -.L1058: +.L1091: cmp x22, x2 add w4, w0, w3 - beq .L1100 + beq .L1133 ldr x5, [x1,1888] and x0, x0, 4294967292 add x22, x22, 4 @@ -7385,29 +7461,29 @@ NandcXferData: lsr w0, w0, 24 strb w0, [x22,-1] mov w0, w4 - b .L1058 -.L1100: + b .L1091 +.L1133: add x0, x19, :lo12:.LANCHOR0 lsr w24, w24, 2 ldr w5, [x0,1932] - ldr w4, [x0,1864] + ldr w4, [x0,1868] mov w0, 0 mov w23, w0 -.L1060: +.L1093: cmp w0, w24 - bcs .L1056 - cbz w5, .L1056 + bcs .L1089 + cbz w5, .L1089 uxtw x1, w0 add x1, x1, 8 ldr w1, [x20,x1,lsl 2] str w1, [x29,104] ldr w1, [x29,104] - tbnz x1, 2, .L1084 + tbnz x1, 2, .L1117 ldr w3, [x29,104] ubfx x3, x3, 15, 1 - cbnz w3, .L1084 + cbnz w3, .L1117 cmp w4, 5 - bls .L1062 + bls .L1095 ldr w2, [x29,104] ubfx x6, x2, 3, 5 ldr w2, [x29,104] @@ -7420,20 +7496,20 @@ NandcXferData: orr w1, w3, w1, lsl 5 ldr w3, [x29,104] cmp w2, w1 - bls .L1063 + bls .L1096 ldr w1, [x29,104] ubfx x3, x3, 3, 5 ubfx x1, x1, 27, 1 orr w3, w3, w1, lsl 5 - b .L1064 -.L1063: + b .L1097 +.L1096: ubfx x1, x3, 16, 5 ldr w3, [x29,104] ubfx x3, x3, 29, 1 - b .L1099 -.L1062: + b .L1132 +.L1095: cmp w4, 3 - bls .L1064 + bls .L1097 ldr w2, [x29,104] ubfx x6, x2, 3, 5 ldr w2, [x29,104] @@ -7446,43 +7522,43 @@ NandcXferData: orr w1, w3, w1, lsl 5 ldr w3, [x29,104] cmp w2, w1 - bls .L1065 + bls .L1098 ubfx x1, x3, 3, 5 ldr w3, [x29,104] ubfx x3, x3, 28, 1 - b .L1099 -.L1065: + b .L1132 +.L1098: ubfx x1, x3, 16, 5 ldr w3, [x29,104] ubfx x3, x3, 30, 1 -.L1099: +.L1132: orr w3, w1, w3, lsl 5 -.L1064: +.L1097: cmp w23, w3 csel w23, w23, w3, cs - b .L1061 -.L1084: + b .L1094 +.L1117: mov w23, -1 -.L1061: +.L1094: add w0, w0, 1 - b .L1060 -.L1056: + b .L1093 +.L1089: str wzr, [x20,16] - b .L1067 -.L1054: + b .L1100 +.L1087: cmp w21, 1 - bne .L1098 + bne .L1131 mov w23, 0 mov w28, 2 -.L1068: +.L1101: cmp w23, w24 - bcs .L1101 + bcs .L1134 and w27, w23, 3 mov x3, x26 - cbz x26, .L1070 + cbz x26, .L1103 ubfiz x0, x23, 9, 23 add x3, x26, x0 -.L1070: +.L1103: cmp x22, xzr mov x0, x20 csel w4, w28, wzr, ne @@ -7501,11 +7577,11 @@ NandcXferData: bl NandcXferStart mov w0, w25 bl NandcXferComp - b .L1068 -.L1101: + b .L1101 +.L1134: mov w23, 0 - b .L1067 -.L1098: + b .L1100 +.L1131: mov w1, 0 mov x4, 0 mov w27, 0 @@ -7515,16 +7591,16 @@ NandcXferData: mov x5, x4 mov w23, w27 bl NandcXferStart -.L1073: +.L1106: cmp w27, w24 - bcs .L1067 + bcs .L1100 mov w0, w25 add w28, w27, 2 bl NandcXferComp ldr w0, [x20,32] cmp w28, w24 str w0, [x29,104] - bcs .L1074 + bcs .L1107 mov x4, 0 mov w0, w25 mov w1, 0 @@ -7532,9 +7608,9 @@ NandcXferData: and w3, w28, 3 mov x5, x4 bl NandcXferStart -.L1074: +.L1107: ldr w0, [x29,104] - tbnz x0, 2, .L1089 + tbnz x0, 2, .L1122 ldr w0, [x29,104] ubfx x1, x0, 3, 5 ldr w0, [x29,104] @@ -7542,16 +7618,16 @@ NandcXferData: orr w0, w1, w0, lsl 5 cmp w23, w0 csel w23, w23, w0, cs - b .L1075 -.L1089: + b .L1108 +.L1122: mov w23, -1 -.L1075: +.L1108: and w2, w27, 3 mov x3, x26 - cbz x26, .L1076 + cbz x26, .L1109 ubfiz x3, x27, 9, 23 add x3, x26, x3 -.L1076: +.L1109: cmp x22, xzr mov w0, 2 csel w4, w0, wzr, ne @@ -7561,23 +7637,23 @@ NandcXferData: mov w27, w28 add x4, x22, x4 bl NandcCopy1KB - b .L1073 -.L1067: - cbnz w21, .L1079 + b .L1106 +.L1100: + cbnz w21, .L1112 add x19, x19, :lo12:.LANCHOR0 - ldr w0, [x19,1864] + ldr w0, [x19,1868] cmp w0, 5 - bls .L1079 + bls .L1112 ldr w0, [x20] mov w1, 8192 movk w1, 0x2, lsl 16 and w1, w0, w1 cmp w1, 139264 - bne .L1079 + bne .L1112 orr w0, w0, 131072 mov w23, -1 str w0, [x20] -.L1079: +.L1112: mov w0, w23 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -7600,7 +7676,7 @@ FlashReadRawPage: str x21, [sp,32] mov x21, x2 ldrb w20, [x0,#:lo12:.LANCHOR1+481] - cbnz w19, .L1103 + cbnz w19, .L1136 adrp x0, .LANCHOR0 add x0, x0, :lo12:.LANCHOR0 ldrb w5, [x0,9] @@ -7609,7 +7685,7 @@ FlashReadRawPage: cmp w1, w0 mov w0, 4 csel w20, w20, w0, cs -.L1103: +.L1136: mov w0, w19 str x4, [x29,48] str x1, [x29,56] @@ -7659,11 +7735,11 @@ FlashDdrTunningRead: mov w21, 1024 ldr w0, [x0,304] str w0, [x29,124] - ldr w0, [x19,1864] + ldr w0, [x19,1868] cmp w0, 8 mov w0, 12 csel w22, w22, w0, cc - cbz w4, .L1106 + cbz w4, .L1139 mov w0, 1 bl FlashSetInterfaceMode mov w0, 1 @@ -7681,42 +7757,42 @@ FlashDdrTunningRead: ldrb w0, [x19,1844] bl NandcSetMode cmn w21, #1 - bne .L1107 -.L1116: + bne .L1140 +.L1149: mov w21, -1 - b .L1108 -.L1107: - adrp x0, .LC87 + b .L1141 +.L1140: + adrp x0, .LC89 mov w1, w24 - add x0, x0, :lo12:.LC87 + add x0, x0, :lo12:.LC89 mov w2, w21 bl printk cmp w21, 9 - bhi .L1109 + bhi .L1142 add x19, x19, x23, sxtw 4 ldr x0, [x19,24] ldr w1, [x0,3840] ldr w1, [x0] orr w1, w1, 131072 str w1, [x0] -.L1109: +.L1142: adrp x0, .LANCHOR4 add x0, x0, :lo12:.LANCHOR4 ldr w1, [x0,64] add w1, w1, 1 str w1, [x0,64] cmp w1, 2047 - bls .L1108 + bls .L1141 mov x27, 0 str wzr, [x0,64] mov x28, x27 -.L1106: +.L1139: mov w19, 0 mov w26, -1 mov w5, w19 mov w6, w19 mov w20, w19 -.L1114: +.L1147: mov w0, w22 str x5, [x29,104] str x6, [x29,112] @@ -7730,63 +7806,63 @@ FlashDdrTunningRead: ldr x6, [x29,112] cmp w0, w1 ldr x5, [x29,104] - bhi .L1110 + bhi .L1143 cmp w0, 2 - bhi .L1120 + bhi .L1153 add w20, w20, 1 cmp w20, 9 - bls .L1120 + bls .L1153 sub w19, w22, w20 mov w21, w0 mov w26, 0 - b .L1112 -.L1110: + b .L1145 +.L1143: cmp w6, w20 - bcs .L1121 + bcs .L1154 cmp w20, 7 sub w5, w19, w20 - bhi .L1122 + bhi .L1155 mov w6, w20 - b .L1121 -.L1120: + b .L1154 +.L1153: mov x27, 0 mov w19, w22 mov w21, w0 mov w26, 0 mov x28, x27 - b .L1111 -.L1121: + b .L1144 +.L1154: mov w20, 0 -.L1111: +.L1144: add w22, w22, 2 cmp w22, 69 - bls .L1114 -.L1112: + bls .L1147 +.L1145: cmp w6, w20 csel w19, w19, w5, cc - b .L1113 -.L1122: + b .L1146 +.L1155: mov w19, w5 -.L1113: - cbz w19, .L1115 - adrp x0, .LC88 +.L1146: + cbz w19, .L1148 + adrp x0, .LC90 mov w1, w19 - add x0, x0, :lo12:.LC88 + add x0, x0, :lo12:.LC90 bl printk mov w0, w19 bl NandcSetDdrPara -.L1115: - cbz w26, .L1108 - adrp x0, .LC89 +.L1148: + cbz w26, .L1141 + adrp x0, .LC91 mov w1, w23 - add x0, x0, :lo12:.LC89 + add x0, x0, :lo12:.LC91 mov w2, w24 bl printk - cbz w25, .L1116 + cbz w25, .L1149 ldr w0, [x29,124] lsr w0, w0, 8 bl NandcSetDdrPara -.L1108: +.L1141: mov w0, w21 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -7814,17 +7890,17 @@ FlashReadPage: bl FlashReadRawPage cmn w0, #1 mov w19, w0 - bne .L1132 + bne .L1165 adrp x21, .LANCHOR0 add x25, x21, :lo12:.LANCHOR0 ldrb w26, [x25,16] - cbnz w26, .L1133 -.L1135: + cbnz w26, .L1166 +.L1168: add x21, x21, :lo12:.LANCHOR0 - ldrb w0, [x21,1856] - cbz w0, .L1132 - b .L1153 -.L1133: + ldrb w0, [x21,1860] + cbz w0, .L1165 + b .L1186 +.L1166: mov w0, w20 mov w1, w22 mov x2, x24 @@ -7833,10 +7909,10 @@ FlashReadPage: bl FlashReadRawPage strb w26, [x25,16] cmn w0, #1 - beq .L1135 + beq .L1168 mov w19, w0 - b .L1132 -.L1153: + b .L1165 +.L1186: ldr x0, [x21,128] mov w1, w22 mov x2, x24 @@ -7847,37 +7923,37 @@ FlashReadPage: bl FlashDdrTunningRead cmn w0, #1 mov w19, w0 - beq .L1136 + beq .L1169 ldrb w0, [x21,1936] cmp w19, w0, lsr 1 - bls .L1132 -.L1136: + bls .L1165 +.L1169: lsr w0, w25, 8 bl NandcSetDdrPara -.L1132: +.L1165: adrp x21, .LANCHOR4 cmn w19, #1 add x21, x21, :lo12:.LANCHOR4 ldr x4, [x21,72] - bne .L1137 - cbz x4, .L1137 + bne .L1170 + cbz x4, .L1170 mov w1, w22 mov x2, x24 mov x3, x23 mov w0, w20 blr x4 mov w19, w0 - adrp x0, .LC90 + adrp x0, .LC92 mov w1, w19 - add x0, x0, :lo12:.LC90 + add x0, x0, :lo12:.LC92 mov w2, w20 mov w3, w22 bl printk cmn w19, #1 - bne .L1137 + bne .L1170 adrp x0, .LANCHOR0+120 ldrb w0, [x0,#:lo12:.LANCHOR0+120] - cbz w0, .L1137 + cbz w0, .L1170 mov w0, w20 bl flash_enter_slc_mode ldr x4, [x21,72] @@ -7889,7 +7965,7 @@ FlashReadPage: mov w19, w0 mov w0, w20 bl flash_exit_slc_mode -.L1137: +.L1170: mov w0, w19 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -7927,24 +8003,24 @@ FlashDdrParaScan: mov x3, x2 bl FlashReadRawPage cmn w0, #1 - beq .L1158 + beq .L1191 cmn w22, #1 - bne .L1155 -.L1158: + bne .L1188 +.L1191: add x20, x19, :lo12:.LANCHOR0 ldrb w0, [x20,1844] - tbz x0, 0, .L1155 + tbz x0, 0, .L1188 mov w0, 1 bl FlashSetInterfaceMode mov w0, 1 bl NandcSetMode - strb wzr, [x20,1856] - b .L1157 -.L1155: + strb wzr, [x20,1860] + b .L1190 +.L1188: add x19, x19, :lo12:.LANCHOR0 mov w0, 1 - strb w0, [x19,1856] -.L1157: + strb w0, [x19,1860] +.L1190: mov w0, 0 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -7987,11 +8063,11 @@ FlashLoadPhyInfo: add x28, x25, 88 ldrh w27, [x21,10] bl flash_enter_slc_mode -.L1166: +.L1199: add w0, w20, 1 mov x19, 0 str w0, [x29,104] -.L1168: +.L1201: add x0, x29, 120 ldrb w0, [x19,x0] bl FlashBchSel @@ -8003,7 +8079,7 @@ FlashLoadPhyInfo: ldr x2, [x5,56] bl FlashReadRawPage cmn w0, #1 - bne .L1167 + bne .L1200 ldr x5, [x29,96] mov w0, 0 ldr w1, [x29,104] @@ -8011,12 +8087,12 @@ FlashLoadPhyInfo: ldr x2, [x5,56] bl FlashReadRawPage cmn w0, #1 - bne .L1167 + bne .L1200 add x19, x19, 1 cmp x19, 4 - beq .L1169 - b .L1168 -.L1170: + beq .L1202 + b .L1201 +.L1203: add x0, x2, 12 mov w1, 2036 str x2, [x29,104] @@ -8025,13 +8101,13 @@ FlashLoadPhyInfo: ldr x2, [x29,104] ldr w1, [x2,8] cmp w1, w0 - beq .L1180 -.L1169: + beq .L1213 +.L1202: subs w26, w26, #1 add w20, w20, w27 - bne .L1166 + bne .L1199 mov w0, w26 -.L1179: +.L1212: bl flash_exit_slc_mode mov w0, w24 ldp x19, x20, [sp,16] @@ -8041,23 +8117,23 @@ FlashLoadPhyInfo: ldp x27, x28, [sp,80] ldp x29, x30, [sp], 128 ret -.L1167: +.L1200: add x19, x23, :lo12:.LANCHOR4 mov w0, 20036 movk w0, 0x4e41, lsl 16 ldr x2, [x19,80] ldr w1, [x2] cmp w1, w0 - bne .L1169 - cbnz w24, .L1170 + bne .L1202 + cbnz w24, .L1203 add x22, x22, :lo12:.LANCHOR1 ldrh w0, [x22,482] udiv w20, w20, w0 mov w0, w24 add w20, w20, 1 str w20, [x19,92] - b .L1179 -.L1180: + b .L1212 +.L1213: add x1, x2, 160 mov x0, x21 mov w2, 32 @@ -8075,22 +8151,22 @@ FlashLoadPhyInfo: str w20, [x19,88] ldr x1, [x19,80] ldr w0, [x1,1076] - strb w0, [x25,1856] + strb w0, [x25,1860] ldrh w0, [x21,10] udiv w0, w20, w0 add w2, w0, 1 - cbz w0, .L1172 + cbz w0, .L1205 str w2, [x19,92] - b .L1173 -.L1172: + b .L1206 +.L1205: mov w0, 2 str w0, [x19,92] -.L1173: +.L1206: add x0, x23, :lo12:.LANCHOR4 ldrh w1, [x1,14] mov w24, 0 strb w1, [x0,96] - b .L1169 + b .L1202 .size FlashLoadPhyInfo, .-FlashLoadPhyInfo .align 2 .global ToshibaReadRetrial @@ -8125,20 +8201,20 @@ ToshibaReadRetrial: sub w0, w0, #67 uxtb w0, w0 cmp w0, 1 - bls .L1182 - ldrb w0, [x2,1856] - cbz w0, .L1183 + bls .L1215 + ldrb w0, [x2,1860] + cbz w0, .L1216 mov w0, w22 mov w22, 1 bl NandcSetDdrMode -.L1183: +.L1216: ubfiz x0, x28, 8, 8 mov w2, 92 add x0, x24, x0 str w2, [x0,2056] mov w2, 197 str w2, [x0,2056] -.L1182: +.L1215: ldr x0, [x29,120] mov w21, 1 mov w25, -1 @@ -8147,13 +8223,13 @@ ToshibaReadRetrial: str x0, [x29,104] ubfiz x0, x28, 8, 8 str x0, [x29,96] -.L1184: +.L1217: adrp x0, .LANCHOR4 add x0, x0, :lo12:.LANCHOR4 ldrb w0, [x0,97] add w0, w0, 1 cmp w21, w0 - bcs .L1209 + bcs .L1242 add x0, x19, :lo12:.LANCHOR0 mov w1, w21 ldrb w0, [x0,752] @@ -8161,34 +8237,34 @@ ToshibaReadRetrial: uxtb w0, w0 cmp w0, 1 mov x0, x20 - bhi .L1185 + bhi .L1218 bl SandiskSetRRPara - b .L1186 -.L1185: + b .L1219 +.L1218: bl ToshibaSetRRPara -.L1186: +.L1219: add x0, x19, :lo12:.LANCHOR0 ldrb w0, [x0,752] cmp w0, 34 - bne .L1187 + bne .L1220 adrp x0, .LANCHOR4 add x0, x0, :lo12:.LANCHOR4 ldrb w0, [x0,97] sub w0, w0, #3 cmp w21, w0 - bne .L1187 + bne .L1220 ldr x0, [x29,104] mov w1, 179 add x0, x24, x0 str w1, [x0,8] -.L1187: +.L1220: ldr x0, [x29,96] mov w1, 38 add x0, x24, x0 str w1, [x0,2056] mov w1, 93 str w1, [x0,2056] - cbz w22, .L1188 + cbz w22, .L1221 mov w0, 4 bl NandcSetDdrMode ldr w1, [x29,116] @@ -8199,32 +8275,32 @@ ToshibaReadRetrial: mov w28, w0 mov w0, 0 bl NandcSetDdrMode - b .L1189 -.L1188: + b .L1222 +.L1221: ldr w1, [x29,116] mov w0, w23 mov x2, x27 mov x3, x26 bl FlashReadRawPage mov w28, w0 -.L1189: +.L1222: cmn w28, #1 - beq .L1190 + beq .L1223 add x0, x19, :lo12:.LANCHOR0 cmn w25, #1 csel w25, w25, w28, ne ldrb w0, [x0,1936] add w0, w0, w0, lsl 1 cmp w28, w0, lsr 2 - bcc .L1192 + bcc .L1225 mov x26, 0 mov x27, x26 -.L1190: +.L1223: add w21, w21, 1 - b .L1184 -.L1209: + b .L1217 +.L1242: mov w28, w25 -.L1192: +.L1225: add x0, x19, :lo12:.LANCHOR0 mov w1, 0 ldrb w0, [x0,752] @@ -8232,12 +8308,12 @@ ToshibaReadRetrial: uxtb w0, w0 cmp w0, 1 mov x0, x20 - bhi .L1194 + bhi .L1227 bl SandiskSetRRPara - b .L1195 -.L1194: + b .L1228 +.L1227: bl ToshibaSetRRPara -.L1195: +.L1228: ldr x0, [x29,120] add x19, x19, :lo12:.LANCHOR0 add x0, x0, 8 @@ -8247,17 +8323,17 @@ ToshibaReadRetrial: ldrb w0, [x19,1936] add w0, w0, w0, lsl 1 cmp w28, w0, lsr 2 - bcc .L1196 + bcc .L1229 cmn w28, #1 mov w0, 256 csel w28, w28, w0, eq -.L1196: +.L1229: mov w0, w23 bl NandcWaitFlashReady - cbz w22, .L1197 + cbz w22, .L1230 mov w0, 4 bl NandcSetDdrMode -.L1197: +.L1230: mov w0, w28 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -8296,12 +8372,12 @@ SamsungReadRetrial: ldrb w21, [x2,8] add x21, x21, 8 add x21, x0, x21, lsl 8 -.L1211: +.L1244: add x0, x27, :lo12:.LANCHOR4 ldrb w0, [x0,97] add w0, w0, 1 cmp w26, w0 - bcs .L1214 + bcs .L1247 mov x0, x21 mov w1, w26 bl SamsungSetRRPara @@ -8311,22 +8387,22 @@ SamsungReadRetrial: mov x3, x23 bl FlashReadRawPage cmn w0, #1 - beq .L1212 + beq .L1245 add x1, x20, :lo12:.LANCHOR0 cmn w19, #1 csel w19, w19, w0, ne ldrb w1, [x1,1936] add w1, w1, w1, lsl 1 cmp w0, w1, lsr 2 - bcc .L1217 + bcc .L1250 mov x23, 0 mov x24, x23 -.L1212: +.L1245: add w26, w26, 1 - b .L1211 -.L1217: + b .L1244 +.L1250: mov w19, w0 -.L1214: +.L1247: mov x0, x21 mov w1, 0 add x20, x20, :lo12:.LANCHOR0 @@ -8334,11 +8410,11 @@ SamsungReadRetrial: ldrb w0, [x20,1936] add w0, w0, w0, lsl 1 cmp w19, w0, lsr 2 - bcc .L1216 + bcc .L1249 cmn w19, #1 mov w0, 256 csel w19, w19, w0, eq -.L1216: +.L1249: mov w0, w19 ldr x27, [sp,80] ldp x19, x20, [sp,16] @@ -8352,125 +8428,161 @@ SamsungReadRetrial: .global MicronReadRetrial .type MicronReadRetrial, %function MicronReadRetrial: - stp x29, x30, [sp, -144]! - adrp x4, .LANCHOR0 + stp x29, x30, [sp, -160]! add x29, sp, 0 - stp x21, x22, [sp,32] - uxtb w22, w0 - add x0, x4, :lo12:.LANCHOR0 - stp x23, x24, [sp,48] stp x19, x20, [sp,16] + adrp x20, .LANCHOR0 + stp x21, x22, [sp,32] + uxtb w21, w0 + add x0, x20, :lo12:.LANCHOR0 stp x25, x26, [sp,64] stp x27, x28, [sp,80] - mov w24, w1 - mov x25, x2 - ldrb w20, [x0,1936] - mov x23, x3 + stp x23, x24, [sp,48] + mov w28, w1 + mov x26, x2 + ldrb w19, [x0,1936] + mov x22, x3 ldrb w0, [x0,120] - mov x19, x4 - cbnz w0, .L1224 - add w20, w20, w20, lsl 1 - ubfx x20, x20, 2, 8 - b .L1225 -.L1224: + cbnz w0, .L1257 + add w19, w19, w19, lsl 1 + ubfx x19, x19, 2, 8 + b .L1258 +.L1257: mov w0, 3 - sdiv w20, w20, w0 -.L1225: - mov w0, w22 - mov w27, 0 + sdiv w19, w19, w0 +.L1258: + adrp x27, .LC93 + mov w25, 0 + add x0, x27, :lo12:.LC93 + str x0, [x29,152] + add x20, x20, :lo12:.LANCHOR0 + add x23, x20, 24 + add x23, x23, x21, sxtw 4 +.L1269: + mov w0, w21 + mov w24, 0 + mov w27, -1 bl NandcWaitFlashReady - add x4, x19, :lo12:.LANCHOR0 - sbfiz x0, x22, 4, 32 - add x4, x4, 24 - mov w19, -1 - add x1, x4, x0 - adrp x5, .LANCHOR4 - mov w7, 239 - mov w8, 137 - ldr x28, [x4,x0] - ldrb w21, [x1,8] - lsl x6, x21, 8 -.L1226: - add x0, x5, :lo12:.LANCHOR4 + ldrb w4, [x23,8] + mov w9, 239 + ldr x6, [x23] + mov w10, 137 + lsl x8, x4, 8 +.L1259: + adrp x0, .LANCHOR4 + add x0, x0, :lo12:.LANCHOR4 ldrb w0, [x0,97] - cmp w27, w0 - bcs .L1229 - add x26, x28, x6 + cmp w24, w0 + bcs .L1262 + add x2, x6, x8 mov w0, 200 - str x5, [x29,104] - str x6, [x29,112] - str w7, [x26,2056] - str w8, [x26,2052] - str x7, [x29,120] - str x8, [x29,128] + str x4, [x29,104] + str x8, [x29,112] + str w9, [x2,2056] + str w10, [x2,2052] + str x6, [x29,120] + str x9, [x29,128] + str x10, [x29,136] + str x2, [x29,144] bl NandcDelayns - add w4, w27, 1 - str w4, [x26,2048] - str wzr, [x26,2048] - mov w0, w22 - str wzr, [x26,2048] - mov w1, w24 - str wzr, [x26,2048] - mov x2, x25 - mov x3, x23 - str x4, [x29,136] + ldr x2, [x29,144] + add w7, w24, 1 + mov w0, w21 + mov w1, w28 + mov x3, x22 + str x7, [x29,144] + str w7, [x2,2048] + str wzr, [x2,2048] + str wzr, [x2,2048] + str wzr, [x2,2048] + mov x2, x26 bl FlashReadRawPage cmn w0, #1 - ldr x4, [x29,136] - ldr x8, [x29,128] - ldr x7, [x29,120] - ldr x6, [x29,112] - ldr x5, [x29,104] - beq .L1227 - cmn w19, #1 - csel w19, w19, w0, ne - cmp w0, w20 - bcc .L1234 - mov x23, 0 - mov x25, x23 -.L1227: - mov w27, w4 - b .L1226 -.L1234: - mov w19, w0 -.L1229: - add x21, x28, x21, lsl 8 + ldr x7, [x29,144] + ldr x10, [x29,136] + ldr x9, [x29,128] + ldr x6, [x29,120] + ldr x8, [x29,112] + ldr x4, [x29,104] + beq .L1260 + cmn w27, #1 + csel w27, w27, w0, ne + cmp w0, w19 + bcc .L1271 + mov x22, 0 + mov x26, x22 +.L1260: + mov w24, w7 + b .L1259 +.L1271: + mov x22, 0 + mov w27, w0 + mov x26, x22 +.L1262: + add x1, x6, x4, lsl 8 mov w0, 239 - str w0, [x21,2056] + str x1, [x29,144] + str w0, [x1,2056] mov w0, 137 - str w0, [x21,2052] + str w0, [x1,2052] mov w0, 200 bl NandcDelayns - str wzr, [x21,2048] - str wzr, [x21,2048] - cmp w19, w20 - str wzr, [x21,2048] - str wzr, [x21,2048] - bcc .L1231 - cmn w19, #1 + ldr x1, [x29,144] + cmp w27, w19 + str wzr, [x1,2048] + str wzr, [x1,2048] + str wzr, [x1,2048] + str wzr, [x1,2048] + bcc .L1264 + cmn w27, #1 mov w0, 256 - csel w19, w19, w0, eq -.L1231: - cmn w19, #1 - beq .L1235 - cmp w19, 256 - bne .L1232 -.L1235: - adrp x0, .LC91 - mov w1, w27 - add x0, x0, :lo12:.LC91 - mov w2, w24 - mov w3, w27 - mov w4, w19 + csel w27, w27, w0, eq +.L1264: + cmn w27, #1 + cset w6, eq + cbnz w6, .L1273 + cmp w27, 256 + cset w1, eq + cbz w1, .L1265 +.L1273: + ldr x0, [x29,152] + mov w1, w24 + mov w2, w28 + mov w3, w24 + mov w4, w27 + str x6, [x29,144] bl printk -.L1232: - mov w0, w19 + cbnz w25, .L1267 + ldr x6, [x29,144] + cbz w6, .L1278 + ldrb w0, [x20,120] + cbz w0, .L1278 + mov w0, w21 + mov w1, 3 + mov w25, 1 + bl micron_auto_read_calibration_config + b .L1269 +.L1267: + mov w0, w21 + mov w1, 0 + bl micron_auto_read_calibration_config + cmn w27, #1 + mov w0, 256 + csel w27, w27, w0, eq + b .L1278 +.L1265: + cbz w25, .L1278 + mov w0, w21 + mov w27, 256 + bl micron_auto_read_calibration_config +.L1278: + mov w0, w27 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], 144 + ldp x29, x30, [sp], 160 ret .size MicronReadRetrial, .-MicronReadRetrial .align 2 @@ -8498,18 +8610,18 @@ HynixReadRetrial: ldrb w19, [x0,12] ldrb w1, [x1,19] cmp w1, 7 - bne .L1245 + bne .L1287 ldrb w19, [x0,20] -.L1245: +.L1287: mov w0, w23 mov w28, 0 mov w20, -1 bl NandcWaitFlashReady add x4, x21, :lo12:.LANCHOR0 add x5, x4, 764 -.L1246: +.L1288: cmp w28, w25 - bcs .L1250 + bcs .L1292 add w19, w19, 1 ldrb w1, [x4,761] mov x2, x5 @@ -8529,42 +8641,42 @@ HynixReadRetrial: cmn w0, #1 ldr x5, [x29,104] ldr x4, [x29,96] - beq .L1248 + beq .L1290 ldrb w1, [x4,1936] cmn w20, #1 csel w20, w20, w0, ne add w1, w1, w1, lsl 1 cmp w0, w1, lsr 2 - bcc .L1255 + bcc .L1297 mov x24, 0 mov x26, x24 -.L1248: +.L1290: add w28, w28, 1 - b .L1246 -.L1255: + b .L1288 +.L1297: mov w20, w0 -.L1250: +.L1292: add x0, x21, :lo12:.LANCHOR0 add x0, x0, 760 ldr x1, [x0,-16] add x0, x0, x22 ldrb w1, [x1,19] cmp w1, 7 - bne .L1252 + bne .L1294 strb w19, [x0,20] - b .L1253 -.L1252: + b .L1295 +.L1294: strb w19, [x0,12] -.L1253: +.L1295: add x21, x21, :lo12:.LANCHOR0 ldrb w0, [x21,1936] add w0, w0, w0, lsl 1 cmp w20, w0, lsr 2 - bcc .L1254 + bcc .L1296 cmn w20, #1 mov w0, 256 csel w20, w20, w0, eq -.L1254: +.L1296: mov w0, w20 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -8588,21 +8700,21 @@ FlashProgPage: mov w20, w1 mov x22, x2 ldrb w21, [x0,#:lo12:.LANCHOR1+481] - cbnz w19, .L1262 + cbnz w19, .L1304 adrp x0, .LANCHOR0 add x0, x0, :lo12:.LANCHOR0 ldrb w1, [x0,9] ldr w2, [x0,12] mul w1, w1, w2 cmp w20, w1 - bcs .L1262 + bcs .L1304 ldrb w0, [x0,8] - cbnz w0, .L1263 + cbnz w0, .L1305 sub w21, w21, #2 - b .L1262 -.L1263: + b .L1304 +.L1305: mov w21, 4 -.L1262: +.L1304: mov w0, w19 str x4, [x29,56] bl NandcWaitFlashReady @@ -8668,7 +8780,7 @@ FlashSavePhyInfo: strh w1, [x0,-4] ldrb w1, [x20,9] strh w1, [x0,-2] - ldrb w1, [x20,1856] + ldrb w1, [x20,1860] str w1, [x0,1060] add x1, x20, 1620 bl ftl_memcpy @@ -8711,7 +8823,7 @@ FlashSavePhyInfo: mov w0, 0 mov w19, w21 bl flash_enter_slc_mode -.L1267: +.L1309: add x22, x24, :lo12:.LANCHOR0 mov w2, 0 mov w0, 0 @@ -8740,34 +8852,34 @@ FlashSavePhyInfo: mul w1, w19, w1 bl FlashReadRawPage cmn w0, #1 - beq .L1265 + beq .L1307 ldr x25, [x20,80] mov w0, 20036 movk w0, 0x4e41, lsl 16 ldr w1, [x25] cmp w1, w0 - bne .L1265 + bne .L1307 mov w1, 2036 add x0, x25, 12 bl JSHash ldr w1, [x25,8] cmp w1, w0 - bne .L1265 + bne .L1307 ldr w0, [x22,12] cmp w21, 1 str w26, [x20,92] mul w19, w19, w0 str w19, [x20,88] - beq .L1268 + beq .L1310 mov w21, 1 -.L1265: +.L1307: cmp w26, 4 mov w19, w26 - bne .L1267 - b .L1266 -.L1268: + bne .L1309 + b .L1308 +.L1310: mov w21, 2 -.L1266: +.L1308: mov w0, 0 bl flash_exit_slc_mode cmp w21, wzr @@ -8801,32 +8913,32 @@ FlashReadIdbDataRaw: stp x21, x22, [sp,32] stp x23, x24, [sp,48] stp x27, x28, [sp,80] - ldr w1, [x0,1868] + ldr w1, [x0,1856] ldrb w27, [x0,1936] mov w0, 12336 movk w0, 0x5638, lsl 16 cmp w1, w0 - bne .L1274 + bne .L1316 mov w0, 0 bl flash_enter_slc_mode -.L1274: +.L1316: mov x0, x26 mov w1, 0 mov w2, 2048 - adrp x24, .LC92 + adrp x24, .LC94 mov w23, -1 mov w20, 2 bl ftl_memset adrp x28, .LANCHOR4 - add x0, x24, :lo12:.LC92 + add x0, x24, :lo12:.LC94 str x0, [x29,104] -.L1275: +.L1317: add x0, x19, :lo12:.LANCHOR0 ldrb w0, [x0,9] cmp w20, w0 - bcs .L1279 + bcs .L1321 mov x22, 0 -.L1277: +.L1319: add x0, x29, 120 add x24, x19, :lo12:.LANCHOR0 add x21, x28, :lo12:.LANCHOR4 @@ -8840,18 +8952,18 @@ FlashReadIdbDataRaw: mul w1, w20, w1 bl FlashReadRawPage cmn w0, #1 - bne .L1276 + bne .L1318 add x22, x22, 1 cmp x22, 4 - bne .L1277 - b .L1278 -.L1276: + bne .L1319 + b .L1320 +.L1318: ldr x0, [x21,56] ldr w1, [x0] mov w0, 35899 movk w0, 0xfcdc, lsl 16 cmp w1, w0 - bne .L1278 + bne .L1320 ldr x0, [x29,104] mov w1, w25 bl printk @@ -8864,27 +8976,27 @@ FlashReadIdbDataRaw: strb w0, [x24,9] ldr w0, [x21,92] cmp w0, w20 - bls .L1282 + bls .L1324 mov w23, 0 str w20, [x21,92] bl FlashSavePhyInfo -.L1278: +.L1320: add w20, w20, 1 - b .L1275 -.L1282: + b .L1317 +.L1324: mov w23, 0 -.L1279: +.L1321: mov w0, w27 add x19, x19, :lo12:.LANCHOR0 bl FlashBchSel - ldr w1, [x19,1868] + ldr w1, [x19,1856] mov w0, 12336 movk w0, 0x5638, lsl 16 cmp w1, w0 - bne .L1284 + bne .L1326 mov w0, 0 bl flash_exit_slc_mode -.L1284: +.L1326: mov w0, w23 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -8914,7 +9026,7 @@ FlashInit: mov w0, 32768 adrp x19, .LANCHOR0 add x20, x19, :lo12:.LANCHOR0 - adrp x25, .LC93 + adrp x25, .LC95 bl ftl_malloc str x0, [x22,104] mov w0, 4096 @@ -8935,7 +9047,7 @@ FlashInit: mov w1, 50 strb w0, [x22,98] mov x0, x23 - strb wzr, [x20,1856] + strb wzr, [x20,1860] strb w1, [x20,9] strb wzr, [x20,8] add x20, x20, 1620 @@ -8944,9 +9056,9 @@ FlashInit: str wzr, [x22,92] str wzr, [x22,64] bl NandcInit - add x0, x25, :lo12:.LC93 + add x0, x25, :lo12:.LC95 str x0, [x29,104] -.L1291: +.L1333: uxtb w25, w27 mov w0, w25 bl FlashReset @@ -8979,7 +9091,7 @@ FlashInit: sub w0, w2, #1 uxtb w0, w0 cmp w0, 253 - bhi .L1287 + bhi .L1329 ldr x0, [x29,104] add w1, w27, 1 ldrb w3, [x20,1] @@ -8988,179 +9100,201 @@ FlashInit: ldrb w6, [x20,4] ldrb w7, [x20,5] bl printk -.L1287: - cbnz w27, .L1288 +.L1329: + cbnz w27, .L1330 ldrb w0, [x26] sub w0, w0, #1 uxtb w0, w0 cmp w0, 253 - bhi .L1333 + bhi .L1378 ldrb w0, [x26,1] cmp w0, 255 - beq .L1333 -.L1288: + beq .L1378 +.L1330: ldrb w0, [x20] cmp w0, 181 - bne .L1290 + bne .L1332 strb w28, [x20] -.L1290: +.L1332: add w27, w27, 1 add x24, x24, 16 cmp w27, 4 add x20, x20, 8 - bne .L1291 + bne .L1333 add x0, x19, :lo12:.LANCHOR0 ldrb w1, [x0,1620] cmp w1, 173 - beq .L1292 - ldr w0, [x0,1860] + beq .L1334 + ldr w0, [x0,1864] bl NandcSetDdrMode -.L1292: - add x20, x19, :lo12:.LANCHOR0 +.L1334: + add x22, x19, :lo12:.LANCHOR0 mov w1, 0 + add x0, x22, 760 mov w2, 852 - add x0, x20, 760 + adrp x20, .LANCHOR1 bl ftl_memset - strb wzr, [x20,16] - adrp x1, .LANCHOR1 - ldrb w2, [x20,1621] - add x0, x1, :lo12:.LANCHOR1 + strb wzr, [x22,16] + add x0, x20, :lo12:.LANCHOR1 add x0, x0, 472 - str x0, [x20,744] - add w0, w2, 38 - and w0, w0, -3 - uxtb w0, w0 - cbz w0, .L1335 - cmp w2, 241 - bne .L1293 + str x0, [x22,744] + ldrb w0, [x22,1621] + add x22, x22, 1620 + cmp w0, 218 + cset w2, eq + cmp w0, 161 + cset w1, eq + orr w1, w2, w1 + cbnz w1, .L1335 + and w1, w0, -33 + cmp w1, 209 + beq .L1335 + cmp w0, 220 + bne .L1336 + ldrb w1, [x22,3] + cmp w1, 149 + bne .L1336 .L1335: - add x0, x19, :lo12:.LANCHOR0 + add x1, x19, :lo12:.LANCHOR0 mov w3, 1 mov w4, 16 - add x5, x1, :lo12:.LANCHOR1 - strb w3, [x0,8] + add x5, x1, 1620 + strb w3, [x1,8] add x3, x21, :lo12:.LANCHOR4 - strb w4, [x0,9] + strb w4, [x1,9] strb w4, [x3,98] - add x4, x0, 1620 - ldrb w0, [x0,1620] - strb w0, [x5,2977] - cmp w0, 152 - bne .L1295 - ldrsb w0, [x4,4] - tbnz w0, #31, .L1295 - mov w0, 24 - strb w0, [x3,98] -.L1295: - cmp w2, 218 - bne .L1296 - add x0, x1, :lo12:.LANCHOR1 - mov w2, 2048 - strh w2, [x0,2990] - mov w2, -38 - b .L1368 -.L1296: - cmp w2, 220 - bne .L1297 - add x0, x1, :lo12:.LANCHOR1 - mov w2, 4096 - strh w2, [x0,2990] - mov w2, -36 -.L1368: - strb w2, [x0,2978] -.L1297: - add x20, x1, :lo12:.LANCHOR1 + ldrb w4, [x1,1620] + add x1, x20, :lo12:.LANCHOR1 + cmp w4, 152 + strb w4, [x1,3137] + strb w0, [x1,3138] + bne .L1337 + ldrsb w1, [x5,4] + tbnz w1, #31, .L1337 + mov w1, 24 + strb w1, [x3,98] +.L1337: + add x1, x19, :lo12:.LANCHOR0 + ldr w3, [x1,1856] + cmp w3, 2049 + beq .L1380 + mov w1, 12336 + movk w1, 0x5638, lsl 16 + cmp w3, w1 + bne .L1338 +.L1380: + add x1, x21, :lo12:.LANCHOR4 + mov w3, 16 + strb w3, [x1,98] +.L1338: + cbz w2, .L1340 + add x0, x20, :lo12:.LANCHOR1 + mov w1, 2048 + strh w1, [x0,3150] + mov w1, -38 + b .L1413 +.L1340: + cmp w0, 220 + bne .L1341 + add x0, x20, :lo12:.LANCHOR1 + mov w1, 4096 + strh w1, [x0,3150] + mov w1, -36 +.L1413: + strb w1, [x0,3138] +.L1341: + add x20, x20, :lo12:.LANCHOR1 add x0, x19, :lo12:.LANCHOR0 - add x1, x20, 2848 + add x1, x20, 3008 mov w2, 32 add x0, x0, 88 bl ftl_memcpy add x0, x20, 472 - add x1, x20, 2976 + add x1, x20, 3136 mov w2, 32 bl ftl_memcpy -.L1293: +.L1336: add x20, x19, :lo12:.LANCHOR0 ldrb w0, [x20,8] - cbnz w0, .L1298 + cbnz w0, .L1342 bl FlashLoadPhyInfoInRam - cbnz w0, .L1300 + cbnz w0, .L1344 ldr x0, [x20,744] ldrb w1, [x0,17] and w0, w1, 7 strb w0, [x20,1844] - tbnz x1, 0, .L1300 + tbnz x1, 0, .L1344 mov w1, 1 - strb w1, [x20,1856] + strb w1, [x20,1860] bl FlashSetInterfaceMode ldrb w0, [x20,1844] bl NandcSetMode -.L1300: +.L1344: add x20, x19, :lo12:.LANCHOR0 ldr x0, [x20,744] ldrb w0, [x0,26] strb w0, [x20,120] bl FlashLoadPhyInfo - cbz w0, .L1298 - ldr w0, [x20,1860] - cbz w0, .L1303 + cbz w0, .L1342 + ldr w0, [x20,1864] + cbz w0, .L1347 mov w0, 1 bl FlashSetInterfaceMode mov w0, 1 - b .L1369 -.L1303: + b .L1414 +.L1347: ldrb w0, [x20,1844] bl FlashSetInterfaceMode ldrb w0, [x20,1844] -.L1369: +.L1414: bl NandcSetMode bl FlashLoadPhyInfo - cbz w0, .L1298 + cbz w0, .L1342 mov w0, 1 add x20, x19, :lo12:.LANCHOR0 bl FlashSetInterfaceMode mov w0, 1 bl NandcSetMode ldr x1, [x20,744] - adrp x0, .LC94 - add x0, x0, :lo12:.LC94 + adrp x0, .LC96 + add x0, x0, :lo12:.LC96 ldrh w1, [x1,14] bl printk bl FlashLoadPhyInfoInRam cmn w0, #1 - beq .L1289 + beq .L1331 bl FlashDieInfoInit ldr x0, [x20,744] ldrb w0, [x0,19] bl FlashGetReadRetryDefault - adrp x1, .LANCHOR2+2022 + adrp x1, .LANCHOR2+2014 ldr x0, [x20,744] - ldrh w1, [x1,#:lo12:.LANCHOR2+2022] + ldrh w1, [x1,#:lo12:.LANCHOR2+2014] ldrb w2, [x0,9] add w1, w1, 4095 cmp w2, w1, lsr 12 - blt .L1305 + blt .L1349 ldrh w1, [x0,14] add w1, w1, 255 cmp w2, w1, lsr 8 - bge .L1306 -.L1305: + bge .L1350 +.L1349: ldrh w1, [x0,14] and w1, w1, -256 strh w1, [x0,14] -.L1306: +.L1350: add x0, x19, :lo12:.LANCHOR0 ldrb w0, [x0,1844] tst w0, 6 - beq .L1307 + beq .L1351 bl FlashSavePhyInfo add x1, x21, :lo12:.LANCHOR4 mov w0, 0 ldr w1, [x1,88] bl FlashDdrParaScan -.L1307: +.L1351: bl FlashSavePhyInfo -.L1298: +.L1342: add x20, x19, :lo12:.LANCHOR0 add x22, x21, :lo12:.LANCHOR4 ldr x2, [x20,744] @@ -9184,7 +9318,7 @@ FlashInit: bl FlashDieInfoInit ldr x0, [x20,744] ldrh w1, [x0,16] - tbz x1, 6, .L1309 + tbz x1, 6, .L1353 ldrb w0, [x0,19] ldrb w1, [x20,762] strb w1, [x22,97] @@ -9194,64 +9328,64 @@ FlashInit: strb w0, [x20,752] strb w2, [x20,753] cmp w1, 6 - bhi .L1310 + bhi .L1354 adrp x1, HynixReadRetrial add x1, x1, :lo12:HynixReadRetrial str x1, [x22,72] sub w1, w0, #5 uxtb w1, w1 cmp w1, 1 - bhi .L1311 + bhi .L1355 mov w1, 1 str w1, [x20,1928] - b .L1312 -.L1311: + b .L1356 +.L1355: cmp w0, 7 add x20, x20, 788 - beq .L1313 -.L1312: + beq .L1357 +.L1356: add x20, x19, :lo12:.LANCHOR0 add x20, x20, 780 -.L1313: +.L1357: mov x1, 0 mov w2, w1 -.L1315: +.L1359: ldrsb w3, [x20,x1] add x1, x1, 1 cmp w3, wzr csinc w2, w2, w2, ne cmp x1, 32 - bne .L1315 + bne .L1359 cmp w2, 27 - bls .L1309 + bls .L1353 bl FlashGetReadRetryDefault bl FlashSavePhyInfo - b .L1309 -.L1310: + b .L1353 +.L1354: sub w1, w0, #17 uxtb w1, w1 cmp w1, 2 - bhi .L1317 + bhi .L1361 adrp x1, MicronReadRetrial cmp w0, 19 add x1, x1, :lo12:MicronReadRetrial str x1, [x22,72] - beq .L1318 + beq .L1362 mov w0, 7 - b .L1370 -.L1318: + b .L1415 +.L1362: mov w0, 15 -.L1370: +.L1415: strb w0, [x22,97] - b .L1309 -.L1317: + b .L1353 +.L1361: sub w1, w0, #65 uxtb w1, w1 cmp w1, 1 - bls .L1336 + bls .L1381 cmp w0, 33 - bne .L1319 -.L1336: + bne .L1363 +.L1381: add x0, x21, :lo12:.LANCHOR4 adrp x1, ToshibaReadRetrial add x1, x1, :lo12:ToshibaReadRetrial @@ -9261,8 +9395,8 @@ FlashInit: strb w2, [x1,753] mov w1, 7 strb w1, [x0,97] - b .L1309 -.L1319: + b .L1353 +.L1363: sub w1, w0, #67 uxtb w1, w1 cmp w1, 1 @@ -9270,77 +9404,85 @@ FlashInit: cset w2, ls uxtb w1, w1 cmp w1, 1 - bls .L1337 - cbz w2, .L1321 -.L1337: + bls .L1382 + cbz w2, .L1365 +.L1382: add x3, x21, :lo12:.LANCHOR4 adrp x1, ToshibaReadRetrial add x1, x1, :lo12:ToshibaReadRetrial cmp w0, 35 str x1, [x3,72] - beq .L1323 + beq .L1367 cmp w0, 68 - beq .L1323 + beq .L1367 mov w0, 7 strb w0, [x3,97] - b .L1324 -.L1323: + b .L1368 +.L1367: add x0, x21, :lo12:.LANCHOR4 mov w1, 17 strb w1, [x0,97] -.L1324: +.L1368: add x0, x19, :lo12:.LANCHOR0 mov w1, 4 - cbnz w2, .L1371 + cbnz w2, .L1416 mov w1, 5 -.L1371: +.L1416: strb w1, [x0,753] - b .L1309 -.L1321: + b .L1353 +.L1365: cmp w0, 49 - bne .L1309 + bne .L1353 adrp x0, SamsungReadRetrial add x0, x0, :lo12:SamsungReadRetrial str x0, [x22,72] -.L1309: +.L1353: add x0, x19, :lo12:.LANCHOR0 mov w1, 12336 movk w1, 0x5638, lsl 16 - ldr w2, [x0,1868] + ldr w2, [x0,1856] cmp w2, w1 - bne .L1326 + bne .L1370 ldrb w1, [x0,120] - cbz w1, .L1326 + cbz w1, .L1370 ldr x0, [x0,744] strb wzr, [x0,18] -.L1326: +.L1370: add x0, x19, :lo12:.LANCHOR0 ldrb w1, [x0,1620] cmp w1, 44 - bne .L1327 - ldrb w1, [x0,1856] - cbz w1, .L1327 - strb wzr, [x0,1856] + bne .L1371 + ldrb w1, [x0,1860] + cbz w1, .L1371 + mov w1, 12336 + movk w1, 0x5638, lsl 16 + cmp w2, w1 + bne .L1372 + ldrb w0, [x0,120] + cbnz w0, .L1371 +.L1372: + add x0, x19, :lo12:.LANCHOR0 + strb wzr, [x0,1860] mov w0, 1 bl FlashSetInterfaceMode mov w0, 1 bl NandcSetMode -.L1327: +.L1371: mov w0, 0 bl flash_enter_slc_mode add x1, x19, :lo12:.LANCHOR0 ldrb w0, [x1,1844] tst w0, 6 - beq .L1328 - ldrb w1, [x1,1856] - cbnz w1, .L1329 - tbnz x0, 0, .L1328 -.L1329: + beq .L1373 + ldrb w1, [x1,1860] + cbnz w1, .L1374 + tbnz x0, 0, .L1373 +.L1374: add x21, x21, :lo12:.LANCHOR4 mov w0, 0 ldr w1, [x21,88] bl FlashDdrParaScan -.L1328: +.L1373: add x19, x19, :lo12:.LANCHOR0 mov w0, 0 mov w20, 16 @@ -9388,7 +9530,7 @@ FlashInit: ldrb w5, [x19,8] strh w2, [x19,190] cmp w5, 1 - bne .L1331 + bne .L1376 lsl w2, w2, 1 lsr w4, w4, 1 lsl w3, w3, 1 @@ -9398,15 +9540,15 @@ FlashInit: strh w4, [x19,182] strh w3, [x19,188] strh w2, [x19,194] -.L1331: +.L1376: ldrb w0, [x1,20] bl FlashBchSel - bl FlashSuspend + bl ftl_flash_suspend mov w0, 0 - b .L1289 -.L1333: + b .L1331 +.L1378: mov w0, -2 -.L1289: +.L1331: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -9433,39 +9575,39 @@ FlashPageProgMsbFFData: ldr x3, [x0,744] ldrb w4, [x0,120] ldrb w3, [x3,19] - cbz w4, .L1373 - ldr w2, [x0,1868] + cbz w4, .L1418 + ldr w2, [x0,1856] mov w0, 12336 movk w0, 0x5638, lsl 16 cmp w2, w0 - beq .L1372 -.L1373: + beq .L1417 +.L1418: sub w2, w3, #5 uxtb w2, w2 cmp w2, 2 - bls .L1374 + bls .L1419 cmp w3, 68 - beq .L1374 + beq .L1419 sub w3, w3, #19 and w3, w3, -17 uxtb w3, w3 - cbnz w3, .L1372 -.L1374: + cbnz w3, .L1417 +.L1419: adrp x20, .LANCHOR2 mov w24, w1 add x20, x20, :lo12:.LANCHOR2 mov w25, 65535 - add x20, x20, 996 + add x20, x20, 988 adrp x26, .LANCHOR4 -.L1376: +.L1421: add x0, x23, :lo12:.LANCHOR0 ldr x0, [x0,744] ldrh w0, [x0,10] cmp w0, w19 - bls .L1372 + bls .L1417 ldrh w0, [x20,w19,sxtw 1] cmp w0, w25 - bne .L1372 + bne .L1417 add x22, x26, :lo12:.LANCHOR4 mov w1, 255 mov w2, 32768 @@ -9478,8 +9620,8 @@ FlashPageProgMsbFFData: add w19, w19, 1 bl FlashProgPage uxth w19, w19 - b .L1376 -.L1372: + b .L1421 +.L1417: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -9499,8 +9641,8 @@ FlashReadSlc2KPages: stp x21, x22, [sp,32] stp x23, x24, [sp,48] adrp x21, .LANCHOR0 - adrp x23, .LC95 - adrp x24, .LC97 + adrp x23, .LC97 + adrp x24, .LC99 ldrb w26, [x1,#:lo12:.LANCHOR1+481] stp x19, x20, [sp,16] stp x27, x28, [sp,80] @@ -9508,11 +9650,11 @@ FlashReadSlc2KPages: mov w27, w2 mov w22, 0 add x21, x21, :lo12:.LANCHOR0 - add x23, x23, :lo12:.LC95 - add x24, x24, :lo12:.LC97 -.L1382: + add x23, x23, :lo12:.LC97 + add x24, x24, :lo12:.LC99 +.L1427: cmp w22, w25 - beq .L1416 + beq .L1461 mov w1, w27 sub w4, w25, w22 mov x0, x19 @@ -9523,11 +9665,11 @@ FlashReadSlc2KPages: adrp x5, .LANCHOR0 ldrb w1, [x21,1845] cmp w0, w1 - bcc .L1383 + bcc .L1428 mov w0, -1 str w0, [x19] - b .L1384 -.L1383: + b .L1429 +.L1428: add x0, x21, x0, uxtw ldrb w28, [x0,1848] str x5, [x29,96] @@ -9576,58 +9718,61 @@ FlashReadSlc2KPages: ldrb w0, [x0,1936] add w0, w0, w0, lsl 1 cmp w3, w0, lsr 2 - bls .L1387 + bls .L1432 cmn w3, #1 mov w0, 256 csel w3, w3, w0, eq -.L1387: +.L1432: cmp w3, 256 - beq .L1398 + beq .L1443 cmn w3, #1 - bne .L1388 -.L1398: + bne .L1433 +.L1443: str w3, [x19] - b .L1390 -.L1388: + b .L1435 +.L1433: str wzr, [x19] -.L1390: +.L1435: ldr x0, [x19,16] - cbz x0, .L1391 + cbz x0, .L1436 + ldr w1, [x0,12] + cmn w1, #1 + bne .L1436 ldr w1, [x0,8] cmn w1, #1 - bne .L1391 + bne .L1436 ldr w0, [x0] cmn w0, #1 - beq .L1391 + beq .L1436 str w1, [x19] -.L1391: +.L1436: ldr w3, [x19] cmn w3, #1 - bne .L1384 + bne .L1429 add x5, x5, :lo12:.LANCHOR0 ldr w1, [x19,4] mov x0, x23 ldrb w2, [x5,1936] bl printk ldr x1, [x19,8] - cbz x1, .L1393 - adrp x0, .LC96 + cbz x1, .L1438 + adrp x0, .LC98 mov w2, 4 - add x0, x0, :lo12:.LC96 + add x0, x0, :lo12:.LC98 mov w3, 8 bl rknand_print_hex -.L1393: +.L1438: ldr x1, [x19,16] - cbz x1, .L1384 + cbz x1, .L1429 mov w2, 4 mov x0, x24 mov w3, w2 bl rknand_print_hex -.L1384: +.L1429: add w22, w22, 1 add x19, x19, 56 - b .L1382 -.L1416: + b .L1427 +.L1461: mov w0, 0 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -9659,24 +9804,24 @@ FlashReadPages: ldrb w23, [x3,8] str w2, [x29,140] str w4, [x29,136] - cbz w23, .L1457 + cbz w23, .L1502 bl FlashReadSlc2KPages - b .L1506 -.L1457: - adrp x0, .LC95 - mov w24, w23 - add x0, x0, :lo12:.LC95 - str x0, [x29,128] + b .L1551 +.L1502: adrp x0, .LC97 + mov w24, w23 add x0, x0, :lo12:.LC97 + str x0, [x29,128] + adrp x0, .LC99 + add x0, x0, :lo12:.LC99 str x0, [x29,120] - adrp x0, .LC98 - add x0, x0, :lo12:.LC98 + adrp x0, .LC100 + add x0, x0, :lo12:.LC100 str x0, [x29,112] -.L1418: +.L1463: ldr w0, [x29,144] cmp w24, w0 - bcs .L1508 + bcs .L1553 mov w27, 56 ldr w0, [x29,144] ldr w1, [x29,140] @@ -9693,11 +9838,11 @@ FlashReadPages: ldr w0, [x29,168] ldrb w2, [x1,1845] cmp w0, w2 - bcc .L1420 + bcc .L1465 mov w0, -1 str w0, [x26,x27] - b .L1421 -.L1420: + b .L1466 +.L1465: add x0, x1, x0, uxtw adrp x25, .LANCHOR4 ldrb w19, [x0,1848] @@ -9714,25 +9859,25 @@ FlashReadPages: sub w0, w2, #1 uxtb w0, w0 cmp w0, 6 - bhi .L1423 + bhi .L1468 add x1, x1, 760 sxtw x0, w19 add x1, x1, x0 cmp w2, 7 ldrb w3, [x1,12] - bne .L1424 + bne .L1469 ldrb w3, [x1,20] -.L1424: +.L1469: add x2, x22, :lo12:.LANCHOR0 add x0, x2, x0 ldrb w0, [x0,1616] cmp w0, w3 - beq .L1423 + beq .L1468 ldrb w1, [x2,761] mov w0, w19 add x2, x2, 764 bl HynixSetRRPara -.L1423: +.L1468: mov w0, w19 bl NandcFlashCs ldr w0, [x29,140] @@ -9740,38 +9885,38 @@ FlashReadPages: cset w0, eq orr w0, w0, w28, lsr 31 str w0, [x29,152] - cbz w0, .L1425 + cbz w0, .L1470 add x0, x22, :lo12:.LANCHOR0 ldrb w0, [x0,120] - cbz w0, .L1425 + cbz w0, .L1470 mov w0, w19 bl flash_enter_slc_mode - b .L1426 -.L1425: + b .L1471 +.L1470: mov w0, w19 bl flash_exit_slc_mode -.L1426: +.L1471: cmp w19, 255 ldr w1, [x29,172] - bne .L1464 + bne .L1509 cmn w1, #1 cset w0, ne - cbz w0, .L1458 -.L1464: - cbz w20, .L1430 + cbz w0, .L1503 +.L1509: + cbz w20, .L1475 add x0, x22, :lo12:.LANCHOR0 ldr w2, [x0,12] mov w0, w19 add w2, w1, w2 bl FlashReadDpCmd - b .L1431 -.L1430: + b .L1476 +.L1475: mov w0, w19 bl FlashReadCmd - b .L1431 -.L1458: + b .L1476 +.L1503: mov w20, w0 -.L1428: +.L1473: ldrb w2, [x29,148] mov w0, w19 ldr x3, [x21,8] @@ -9780,15 +9925,15 @@ FlashReadPages: bl NandcXferData cmn w0, #1 mov w28, w0 - bne .L1432 + bne .L1477 add x0, x22, :lo12:.LANCHOR0 ldrb w1, [x0,16] - cbz w1, .L1432 + cbz w1, .L1477 strb wzr, [x0,16] mov w20, 0 - b .L1426 -.L1432: - cbz w20, .L1433 + b .L1471 +.L1477: + cbz w20, .L1478 add x0, x22, :lo12:.LANCHOR0 ldr w1, [x29,172] ldr w2, [x0,12] @@ -9808,22 +9953,22 @@ FlashReadPages: cmn w0, #1 mov w23, w0 csel w20, w20, wzr, ne -.L1433: +.L1478: mov w0, w19 bl NandcFlashDeCs add x6, x22, :lo12:.LANCHOR0 ldrb w0, [x29,136] cmn w28, #1 strb w0, [x6,16] - bne .L1440 - ldrb w0, [x6,1856] - cbnz w0, .L1435 -.L1439: + bne .L1485 + ldrb w0, [x6,1860] + cbnz w0, .L1480 +.L1484: add x0, x25, :lo12:.LANCHOR4 ldr x20, [x0,72] - cbnz x20, .L1436 - b .L1509 -.L1435: + cbnz x20, .L1481 + b .L1554 +.L1480: ldr x0, [x6,128] mov w4, 1 ldr w1, [x29,172] @@ -9835,18 +9980,18 @@ FlashReadPages: bl FlashDdrTunningRead cmn w0, #1 mov w28, w0 - beq .L1438 + beq .L1483 ldr x6, [x29,104] ldrb w0, [x6,1936] cmp w28, w0, lsr 1 - bls .L1460 -.L1438: + bls .L1505 +.L1483: lsr w0, w20, 8 bl NandcSetDdrPara cmn w28, #1 - beq .L1439 - b .L1460 -.L1436: + beq .L1484 + b .L1505 +.L1481: ldr w1, [x29,172] mov w0, w19 ldr x2, [x21,8] @@ -9855,20 +10000,20 @@ FlashReadPages: cmn w0, #1 mov w28, w0 mov w20, 0 - bne .L1441 + bne .L1486 add x2, x22, :lo12:.LANCHOR0 ldr x0, [x2,744] ldrb w0, [x0,19] sub w0, w0, #1 uxtb w0, w0 cmp w0, 6 - bhi .L1442 + bhi .L1487 ldrb w1, [x2,761] mov w0, w19 add x2, x2, 764 mov w3, w20 bl HynixSetRRPara -.L1442: +.L1487: ldr w1, [x29,172] mov w0, w19 ldr x2, [x21,8] @@ -9885,18 +10030,18 @@ FlashReadPages: bl printk cmn w28, #1 ldr x4, [x29,104] - bne .L1441 + bne .L1486 ldrb w0, [x4,120] - cbz w0, .L1441 + cbz w0, .L1486 ldr w0, [x29,152] - cbz w0, .L1443 + cbz w0, .L1488 mov w0, w19 bl flash_enter_slc_mode - b .L1444 -.L1443: + b .L1489 +.L1488: mov w0, w19 bl flash_exit_slc_mode -.L1444: +.L1489: add x0, x25, :lo12:.LANCHOR4 ldr w1, [x29,172] ldr x2, [x21,8] @@ -9906,102 +10051,102 @@ FlashReadPages: mov w0, w19 blr x4 mov w28, w0 - b .L1441 -.L1509: + b .L1486 +.L1554: ldr w1, [x29,172] mov w0, w19 ldr x2, [x21,8] ldr x3, [x21,16] bl FlashReadRawPage mov w28, w0 - b .L1441 -.L1460: + b .L1486 +.L1505: mov w20, 0 -.L1440: +.L1485: add x0, x22, :lo12:.LANCHOR0 ldrb w0, [x0,1936] add w0, w0, w0, lsl 1 cmp w28, w0, lsr 2 - bls .L1441 + bls .L1486 add x0, x25, :lo12:.LANCHOR4 ldr x0, [x0,72] cmp x0, xzr mov w0, 256 csel w28, w28, w0, ne -.L1441: +.L1486: cmp w28, 256 - beq .L1465 + beq .L1510 cmn w28, #1 - bne .L1445 -.L1465: + bne .L1490 +.L1510: str w28, [x26,x27] - b .L1447 -.L1445: + b .L1492 +.L1490: str wzr, [x26,x27] -.L1447: +.L1492: ldr w3, [x26,x27] cmn w3, #1 - bne .L1449 + bne .L1494 add x2, x22, :lo12:.LANCHOR0 ldr w1, [x21,4] ldr x0, [x29,128] ldrb w2, [x2,1936] bl printk ldr x1, [x21,16] - cbz x1, .L1449 + cbz x1, .L1494 mov w2, 4 ldr x0, [x29,120] mov w3, w2 bl rknand_print_hex -.L1449: - cbz w20, .L1451 +.L1494: + cbz w20, .L1496 add x0, x22, :lo12:.LANCHOR0 ldrb w0, [x0,1936] add w0, w0, w0, lsl 1 cmp w23, w0, lsr 2 - bls .L1452 + bls .L1497 add x25, x25, :lo12:.LANCHOR4 ldr x0, [x25,72] cmp x0, xzr mov w0, 256 csel w23, w23, w0, ne -.L1452: +.L1497: add w0, w24, 1 mov w1, 56 cmp w23, 256 umull x0, w0, w1 - beq .L1466 + beq .L1511 cmn w23, #1 - bne .L1453 -.L1466: + bne .L1498 +.L1511: str w23, [x26,x0] - b .L1451 -.L1453: + b .L1496 +.L1498: str wzr, [x26,x0] -.L1451: +.L1496: ldr w0, [x29,152] add w24, w24, w20 - cbz w0, .L1421 + cbz w0, .L1466 add x0, x22, :lo12:.LANCHOR0 ldrb w0, [x0,120] - cbz w0, .L1421 + cbz w0, .L1466 mov w0, w19 bl flash_exit_slc_mode -.L1421: +.L1466: add w24, w24, 1 - b .L1418 -.L1508: + b .L1463 +.L1553: mov w0, 0 - b .L1506 -.L1431: + b .L1551 +.L1476: mov w0, w19 bl NandcWaitFlashReady - cbz w20, .L1428 + cbz w20, .L1473 ldr w1, [x29,172] mov w0, w19 bl FlashReadDpDataOutCmd - b .L1428 -.L1506: + b .L1473 +.L1551: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -10031,8 +10176,8 @@ FlashLoadFactorBbt: ldrh w21, [x0,182] add x0, x19, 144 mov w28, 0 - adrp x26, .LC99 - add x26, x26, :lo12:.LC99 + adrp x26, .LC101 + add x26, x26, :lo12:.LC101 mul w21, w1, w21 mov w1, 0 uxth w21, w21 @@ -10045,18 +10190,18 @@ FlashLoadFactorBbt: str xzr, [x29,144] uxth w25, w25 str w0, [x29,124] -.L1511: +.L1556: add x1, x22, :lo12:.LANCHOR0 ldrb w1, [x1,1845] cmp w1, w19 - bls .L1521 + bls .L1566 mul w3, w19, w21 mov w20, w25 mov w4, 61664 -.L1512: +.L1557: ldr w0, [x29,124] cmp w20, w0 - ble .L1514 + ble .L1559 add w1, w3, w20 add x0, x29, 136 lsl w1, w1, 10 @@ -10070,12 +10215,12 @@ FlashLoadFactorBbt: ldr x3, [x29,112] cmn w0, #1 ldr x4, [x29,104] - beq .L1513 + beq .L1558 add x24, x23, :lo12:.LANCHOR4 ldr x0, [x24,112] ldrh w0, [x0] cmp w0, w4 - bne .L1513 + bne .L1558 mov x0, x26 mov w1, w19 mov w2, w20 @@ -10084,20 +10229,20 @@ FlashLoadFactorBbt: bl printk uxth w28, w28 strh w20, [x24,144] - b .L1514 -.L1513: + b .L1559 +.L1558: sub w20, w20, #1 uxth w20, w20 - b .L1512 -.L1514: + b .L1557 +.L1559: add x1, x22, :lo12:.LANCHOR0 add w19, w19, 1 uxtb w19, w19 ldrb w1, [x1,1845] cmp w1, w28 csel w27, w27, wzr, ne - b .L1511 -.L1521: + b .L1556 +.L1566: mov w0, w27 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -10129,9 +10274,9 @@ FlashProgSlc2KPages: mov w25, 0 add x22, x22, :lo12:.LANCHOR0 mov w28, -1 -.L1523: +.L1568: cmp w25, w23 - beq .L1552 + beq .L1597 mov w1, w24 sub w4, w23, w25 mov x0, x21 @@ -10141,10 +10286,10 @@ FlashProgSlc2KPages: ldr w0, [x29,100] ldrb w1, [x22,1845] cmp w0, w1 - bcc .L1524 + bcc .L1569 str w28, [x21] - b .L1525 -.L1524: + b .L1570 +.L1569: add x0, x22, x0, uxtw ldrb w20, [x0,1848] mov w0, w20 @@ -10199,36 +10344,36 @@ FlashProgSlc2KPages: ldr w1, [x29,96] mov w0, w20 bl FlashReadStatus - tbz x0, 0, .L1528 + tbz x0, 0, .L1573 str w28, [x21] -.L1528: +.L1573: mov w0, w20 bl NandcFlashDeCs -.L1525: +.L1570: add w25, w25, 1 add x21, x21, 56 - b .L1523 -.L1552: + b .L1568 +.L1597: mov w21, 0 - cbz w27, .L1550 - adrp x25, .LC103 - adrp x26, .LC102 - adrp x27, .LC101 - add x25, x25, :lo12:.LC103 - add x26, x26, :lo12:.LC102 - add x27, x27, :lo12:.LC101 -.L1551: + cbz w27, .L1595 + adrp x25, .LC105 + adrp x26, .LC104 + adrp x27, .LC103 + add x25, x25, :lo12:.LC105 + add x26, x26, :lo12:.LC104 + add x27, x27, :lo12:.LC103 +.L1596: cmp w21, w23 - beq .L1550 + beq .L1595 ldr w0, [x19] cmn w0, #1 - bne .L1531 - adrp x0, .LC100 + bne .L1576 + adrp x0, .LC102 ldr w1, [x19,4] - add x0, x0, :lo12:.LC100 + add x0, x0, :lo12:.LC102 bl printk - b .L1532 -.L1531: + b .L1577 +.L1576: adrp x20, .LANCHOR4 sub w4, w23, w21 add x22, x20, :lo12:.LANCHOR4 @@ -10255,44 +10400,44 @@ FlashProgSlc2KPages: bl FlashReadPages ldr w22, [x29,104] cmn w22, #1 - bne .L1533 + bne .L1578 ldr w1, [x19,4] mov x0, x27 bl printk str w22, [x19] -.L1533: +.L1578: ldr x0, [x19,16] - cbz x0, .L1534 + cbz x0, .L1579 ldr w2, [x0] add x0, x20, :lo12:.LANCHOR4 ldr x0, [x0,128] ldr w3, [x0] cmp w2, w3 - beq .L1534 + beq .L1579 ldr w1, [x19,4] mov x0, x26 bl printk mov w0, -1 str w0, [x19] -.L1534: +.L1579: ldr x0, [x19,8] - cbz x0, .L1532 + cbz x0, .L1577 add x20, x20, :lo12:.LANCHOR4 ldr w2, [x0] ldr x0, [x20,120] ldr w3, [x0] cmp w2, w3 - beq .L1532 + beq .L1577 ldr w1, [x19,4] mov x0, x25 bl printk mov w0, -1 str w0, [x19] -.L1532: +.L1577: add w21, w21, 1 add x19, x19, 56 - b .L1551 -.L1550: + b .L1596 +.L1595: mov w0, 0 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -10318,7 +10463,7 @@ FtlLoadFactoryBbt: stp x23, x24, [sp,48] add x19, x19, 160 adrp x22, .LANCHOR0 - ldr x1, [x0,-64] + ldr x1, [x0,2072] add x21, x22, :lo12:.LANCHOR0 ldr x24, [x0,2120] add x21, x21, 2104 @@ -10327,21 +10472,21 @@ FtlLoadFactoryBbt: str x24, [x19,16] mov w25, -1 mov w26, 61664 -.L1554: +.L1599: add x0, x22, :lo12:.LANCHOR0 - ldrh w1, [x0,1966] + ldrh w1, [x0,1970] cmp w23, w1 - bcs .L1563 + bcs .L1608 ldrh w20, [x0,2014] strh w25, [x21,12] -.L1556: +.L1601: add x0, x22, :lo12:.LANCHOR0 sub w20, w20, #1 uxth w20, w20 ldrh w0, [x0,2014] sub w1, w0, #16 cmp w20, w1 - ble .L1557 + ble .L1602 madd w0, w23, w0, w20 mov w1, 1 lsl w0, w0, 10 @@ -10351,16 +10496,16 @@ FtlLoadFactoryBbt: bl FlashReadPages ldr w0, [x19] cmn w0, #1 - beq .L1556 + beq .L1601 ldrh w0, [x24] cmp w0, w26 - bne .L1556 + bne .L1601 strh w20, [x21,12] -.L1557: +.L1602: add w23, w23, 1 add x21, x21, 2 - b .L1554 -.L1563: + b .L1599 +.L1608: mov w0, 0 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -10383,12 +10528,12 @@ FtlGetLastWrittenPage: str x25, [sp,64] mov w23, w1 add x3, x3, :lo12:.LANCHOR0 - bne .L1565 + bne .L1610 ldrh w19, [x3,2020] - b .L1566 -.L1565: + b .L1611 +.L1610: ldrh w19, [x3,2018] -.L1566: +.L1611: sub w19, w19, #1 lsl w21, w0, 10 mov w1, 1 @@ -10403,12 +10548,12 @@ FtlGetLastWrittenPage: bl FlashReadPages ldr w0, [x29,144] cmn w0, #1 - bne .L1567 + bne .L1612 mov w22, 0 mov w25, 2 -.L1568: +.L1613: cmp w22, w19 - bgt .L1567 + bgt .L1612 add w3, w22, w19 mov w1, 1 mov w2, w23 @@ -10420,21 +10565,21 @@ FtlGetLastWrittenPage: bl FlashReadPages ldr w0, [x24] cmn w0, #1 - bne .L1569 + bne .L1614 ldr w0, [x24,4] cmn w0, #1 - bne .L1569 + bne .L1614 ldr w0, [x29,88] cmn w0, #1 - beq .L1569 + beq .L1614 sub w19, w20, #1 sxth w19, w19 - b .L1568 -.L1569: + b .L1613 +.L1614: add w20, w20, 1 sxth w22, w20 - b .L1568 -.L1567: + b .L1613 +.L1612: mov w0, w19 ldr x25, [sp,64] ldp x19, x20, [sp,16] @@ -10450,30 +10595,31 @@ FtlLoadBbt: stp x29, x30, [sp, -80]! add x29, sp, 0 stp x23, x24, [sp,48] - adrp x23, .LANCHOR4 adrp x24, .LANCHOR2 - stp x19, x20, [sp,16] + adrp x23, .LANCHOR4 add x0, x24, :lo12:.LANCHOR2 - add x19, x23, :lo12:.LANCHOR4 + stp x19, x20, [sp,16] stp x21, x22, [sp,32] stp x25, x26, [sp,64] - add x19, x19, 160 + add x19, x23, :lo12:.LANCHOR4 adrp x20, .LANCHOR0 + ldr x1, [x0,2072] + add x19, x19, 160 ldr x22, [x0,2120] mov w25, 61649 - str xzr, [x19,8] + str x1, [x19,8] str x22, [x19,16] bl FtlBbtMemInit add x0, x20, :lo12:.LANCHOR0 ldrh w21, [x0,2014] sub w21, w21, #1 uxth w21, w21 -.L1576: +.L1621: add x0, x20, :lo12:.LANCHOR0 ldrh w0, [x0,2014] sub w0, w0, #48 cmp w21, w0 - ble .L1579 + ble .L1624 lsl w0, w21, 10 mov w1, 1 str w0, [x19,4] @@ -10482,7 +10628,7 @@ FtlLoadBbt: bl FlashReadPages ldr w0, [x19] cmn w0, #1 - bne .L1577 + bne .L1622 ldr w0, [x19,4] mov w1, 1 mov w2, w1 @@ -10490,13 +10636,13 @@ FtlLoadBbt: str w0, [x19,4] mov x0, x19 bl FlashReadPages -.L1577: +.L1622: ldr w0, [x19] cmn w0, #1 - beq .L1578 + beq .L1623 ldrh w0, [x22] cmp w0, w25 - bne .L1578 + bne .L1623 add x1, x20, :lo12:.LANCHOR0 add x0, x1, 2104 strh w21, [x1,2104] @@ -10504,21 +10650,21 @@ FtlLoadBbt: str w1, [x0,8] ldrh w1, [x22,8] strh w1, [x0,4] - b .L1579 -.L1578: + b .L1624 +.L1623: sub w21, w21, #1 uxth w21, w21 - b .L1576 -.L1579: + b .L1621 +.L1624: add x21, x20, :lo12:.LANCHOR0 mov w2, 65535 mov w0, -1 ldrh w1, [x21,2104] cmp w1, w2 - beq .L1581 + beq .L1626 ldrh w1, [x21,2108] cmp w1, w2 - beq .L1583 + beq .L1628 add x25, x23, :lo12:.LANCHOR4 lsl w1, w1, 10 add x0, x25, 160 @@ -10528,21 +10674,21 @@ FtlLoadBbt: bl FlashReadPages ldr w0, [x25,160] cmn w0, #1 - beq .L1583 + beq .L1628 ldrh w1, [x22] mov w0, 61649 cmp w1, w0 - bne .L1583 + bne .L1628 ldr w0, [x22,4] ldr w1, [x21,2112] cmp w0, w1 - bls .L1583 + bls .L1628 str w0, [x21,2112] ldrh w1, [x21,2108] ldrh w0, [x22,8] strh w1, [x21,2104] strh w0, [x21,2108] -.L1583: +.L1628: add x25, x20, :lo12:.LANCHOR0 mov w1, 1 add x21, x23, :lo12:.LANCHOR4 @@ -10553,59 +10699,59 @@ FtlLoadBbt: sxth w19, w0 add w0, w0, 1 strh w0, [x25,2106] -.L1585: - tbnz w19, #31, .L1590 +.L1630: + tbnz w19, #31, .L1635 ldrh w0, [x25,2104] mov w1, 1 mov w2, w1 orr w0, w19, w0, lsl 10 str w0, [x21,4] add x0, x24, :lo12:.LANCHOR2 - ldr x0, [x0,-64] + ldr x0, [x0,2072] str x0, [x21,8] mov x0, x21 bl FlashReadPages ldr w0, [x21] cmn w0, #1 - beq .L1586 + beq .L1631 ldrh w0, [x22] cmp w0, w26 - bne .L1586 -.L1590: + bne .L1631 +.L1635: add x1, x20, :lo12:.LANCHOR0 ldrh w0, [x22,10] mov w2, 65535 strh w0, [x1,2110] ldrh w0, [x22,12] cmp w0, w2 - bne .L1587 - b .L1588 -.L1586: + bne .L1632 + b .L1633 +.L1631: sub w19, w19, #1 sxth w19, w19 - b .L1585 -.L1587: - ldr w2, [x1,1940] + b .L1630 +.L1632: + ldr w2, [x1,1944] cmp w0, w2 - beq .L1588 - ldrh w1, [x1,1954] + beq .L1633 + ldrh w1, [x1,1958] lsr w1, w1, 2 cmp w0, w1 - bcs .L1588 + bcs .L1633 cmp w2, w1 - bcs .L1588 + bcs .L1633 bl FtlSysBlkNumInit -.L1588: +.L1633: add x20, x20, :lo12:.LANCHOR0 mov x19, 0 add x21, x20, 2104 add x23, x23, :lo12:.LANCHOR4 -.L1591: - ldrh w0, [x20,1966] +.L1636: + ldrh w0, [x20,1970] mov w1, w19 add x19, x19, 1 cmp w1, w0 - bcs .L1609 + bcs .L1654 add x0, x24, :lo12:.LANCHOR2 ldr x3, [x23,168] ldrh w2, [x0,2248] @@ -10615,10 +10761,10 @@ FtlLoadBbt: lsl w2, w2, 2 add x1, x3, x1, lsl 2 bl ftl_memcpy - b .L1591 -.L1609: + b .L1636 +.L1654: mov w0, 0 -.L1581: +.L1626: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -10665,24 +10811,24 @@ FtlScanSysBlk: ldr x0, [x20,2072] lsl w2, w2, 1 bl ftl_memset - add x0, x21, 280 + add x0, x21, 264 mov w1, 255 mov w2, 12 bl ftl_memset - ldrh w21, [x20,1952] -.L1611: + ldrh w21, [x20,1956] +.L1656: add x1, x19, :lo12:.LANCHOR0 - ldrh w0, [x1,1954] + ldrh w0, [x1,1958] cmp w0, w21 - bls .L1652 + bls .L1697 mov x27, 0 - ldrh w5, [x1,1944] + ldrh w5, [x1,1948] ldrh w4, [x1,2030] mov w20, w27 mov x23, x1 -.L1653: +.L1698: cmp w5, w27, uxth - bls .L1686 + bls .L1731 add x0, x23, 1976 mov w1, w21 str x4, [x29,112] @@ -10693,19 +10839,19 @@ FtlScanSysBlk: bl FtlBbmIsBadBlock ldr x5, [x29,120] ldr x4, [x29,112] - cbnz w0, .L1612 + cbnz w0, .L1657 add x2, x24, :lo12:.LANCHOR2 mov w0, 56 lsl w28, w28, 10 mov w3, 4 umull x0, w20, w0 - ldr x1, [x2,2056] + ldr x1, [x2,2048] add x1, x1, x0 str w28, [x1,4] - ldr x1, [x2,2056] + ldr x1, [x2,2048] add x0, x1, x0 - ldr x1, [x2,896] - ldr x2, [x2,904] + ldr x1, [x2,880] + ldr x2, [x2,888] str x1, [x0,8] mul w1, w20, w4 add w20, w20, 1 @@ -10713,46 +10859,46 @@ FtlScanSysBlk: uxth w20, w20 add x1, x2, x1, sxtw 2 str x1, [x0,16] -.L1612: +.L1657: add x27, x27, 1 - b .L1653 -.L1686: - cbz w20, .L1615 + b .L1698 +.L1731: + cbz w20, .L1660 add x0, x24, :lo12:.LANCHOR2 mov w1, w20 mov w2, 1 mov x23, 0 mov w27, -1 mov w28, 61604 - ldr x0, [x0,2056] + ldr x0, [x0,2048] bl FlashReadPages -.L1616: +.L1661: cmp w20, w23, uxth - bls .L1615 + bls .L1660 mov x0, 56 mul x6, x23, x0 add x0, x24, :lo12:.LANCHOR2 - ldr x0, [x0,2056] + ldr x0, [x0,2048] add x1, x0, x6 ldr w0, [x0,x6] ldr w5, [x1,4] cmn w0, #1 ldr x26, [x1,16] ubfx x25, x5, 10, 16 - bne .L1618 + bne .L1663 mov w7, 16 -.L1617: +.L1662: add x8, x24, :lo12:.LANCHOR2 str x7, [x29,104] str x8, [x29,112] str x6, [x29,120] - ldr x0, [x8,2056] + ldr x0, [x8,2048] add x0, x0, x6 ldr w1, [x0,4] add w1, w1, 1 str w1, [x0,4] mov w1, 1 - ldr x0, [x8,2056] + ldr x0, [x8,2048] mov w2, w1 add x0, x0, x6 bl FlashReadPages @@ -10761,44 +10907,44 @@ FtlScanSysBlk: cmp w0, w22 ldr x6, [x29,120] ldr x7, [x29,104] - ldr x0, [x8,2056] - bne .L1619 + ldr x0, [x8,2048] + bne .L1664 str w27, [x0,x6] - b .L1618 -.L1619: + b .L1663 +.L1664: ldr w0, [x0,x6] cmn w0, #1 - bne .L1618 + bne .L1663 sub w7, w7, #1 uxth w7, w7 - cbnz w7, .L1617 -.L1618: + cbnz w7, .L1662 +.L1663: add x0, x24, :lo12:.LANCHOR2 - ldr x1, [x0,2056] + ldr x1, [x0,2048] ldr w1, [x1,x6] cmn w1, #1 - beq .L1621 - ldr w0, [x0,196] + beq .L1666 + ldr w0, [x0,232] cmn w0, #1 - beq .L1622 + beq .L1667 ldr w1, [x26,4] cmp w0, w1 - bhi .L1623 -.L1622: + bhi .L1668 +.L1667: ldr w0, [x26,4] cmn w0, #1 - beq .L1623 + beq .L1668 add x1, x24, :lo12:.LANCHOR2 add w0, w0, 1 - str w0, [x1,196] -.L1623: + str w0, [x1,232] +.L1668: ldrh w0, [x26] cmp w0, w28 - beq .L1625 - bhi .L1626 + beq .L1670 + bhi .L1671 mov w1, 61574 cmp w0, w1 - bne .L1624 + bne .L1669 add x0, x19, :lo12:.LANCHOR0 add x7, x24, :lo12:.LANCHOR2 ldrh w6, [x0,2040] @@ -10807,16 +10953,16 @@ FtlScanSysBlk: ldr x7, [x7,2200] sxth x1, w2 sub w2, w2, w0 - b .L1639 -.L1626: + b .L1684 +.L1671: mov w1, 61634 cmp w0, w1 - beq .L1628 + beq .L1673 cmp w0, w22 - bne .L1624 + bne .L1669 mov w0, w25 - b .L1685 -.L1628: + b .L1730 +.L1673: add x0, x19, :lo12:.LANCHOR0 add x7, x24, :lo12:.LANCHOR2 ldr w6, [x0,2048] @@ -10828,27 +10974,27 @@ FtlScanSysBlk: sub w2, w2, #1 sxth x1, w1 sxth w2, w2 -.L1630: +.L1675: cmp w1, w2 - ble .L1687 + ble .L1732 sbfiz x8, x1, 2, 32 ldr w11, [x26,4] sxth x9, w1 ldr w10, [x7,x8] cmp w11, w10 - bls .L1631 + bls .L1676 ldr w2, [x7] - cbnz w2, .L1632 + cbnz w2, .L1677 cmp w0, w6 - beq .L1632 + beq .L1677 add x2, x24, :lo12:.LANCHOR2 add w0, w0, 1 strh w0, [x2,2320] -.L1632: +.L1677: mov w0, 0 -.L1633: +.L1678: cmp w0, w1 - beq .L1688 + beq .L1733 add x6, x24, :lo12:.LANCHOR2 sxtw x2, w0 lsl x7, x2, 2 @@ -10863,32 +11009,32 @@ FtlScanSysBlk: add x7, x6, x2 ldrh w7, [x7,2] strh w7, [x6,x2] - b .L1633 -.L1688: + b .L1678 +.L1733: add x0, x24, :lo12:.LANCHOR2 ldr w6, [x26,4] ldr x2, [x0,2232] str w6, [x2,x8] ldr x2, [x0,2176] strh w25, [x2,x9,lsl 1] - tbz w1, #31, .L1635 - b .L1624 -.L1631: + tbz w1, #31, .L1680 + b .L1669 +.L1676: sub w1, w1, #1 sxth x1, w1 - b .L1630 -.L1687: - tbz w1, #31, .L1668 - b .L1624 -.L1635: + b .L1675 +.L1732: + tbz w1, #31, .L1713 + b .L1669 +.L1680: add x2, x19, :lo12:.LANCHOR0 ldrh w0, [x0,2320] ldr w2, [x2,2048] sub w2, w2, w0 sub w2, w2, #1 cmp w1, w2, sxth - bgt .L1624 -.L1668: + bgt .L1669 +.L1713: add x2, x24, :lo12:.LANCHOR2 add w0, w0, 1 ldr w4, [x26,4] @@ -10896,33 +11042,33 @@ FtlScanSysBlk: ldr x0, [x2,2232] str w4, [x0,x1,lsl 2] ldr x0, [x2,2176] - b .L1684 -.L1645: + b .L1729 +.L1690: sbfiz x8, x1, 2, 32 ldr w11, [x26,4] sxth x9, w1 ldr w10, [x7,x8] cmp w11, w10 - bhi .L1689 + bhi .L1734 sub w1, w1, #1 sxth x1, w1 -.L1639: +.L1684: cmp w1, w2 - bgt .L1645 - b .L1644 -.L1689: + bgt .L1690 + b .L1689 +.L1734: ldr w2, [x7] - cbnz w2, .L1641 + cbnz w2, .L1686 cmp w0, w6 - beq .L1641 + beq .L1686 add x2, x19, :lo12:.LANCHOR0 add w0, w0, 1 strh w0, [x2,2066] -.L1641: +.L1686: mov w0, 0 -.L1642: +.L1687: cmp w0, w1 - beq .L1690 + beq .L1735 add x2, x24, :lo12:.LANCHOR2 ldr x7, [x2,2200] sxtw x2, w0 @@ -10938,8 +11084,8 @@ FtlScanSysBlk: add x7, x6, x2 ldrh w7, [x7,2] strh w7, [x6,x2] - b .L1642 -.L1690: + b .L1687 +.L1735: add x0, x24, :lo12:.LANCHOR2 ldr w2, [x26,4] ldr x0, [x0,2200] @@ -10947,15 +11093,15 @@ FtlScanSysBlk: add x0, x19, :lo12:.LANCHOR0 ldr x0, [x0,2072] strh w25, [x0,x9,lsl 1] -.L1644: - tbnz w1, #31, .L1624 +.L1689: + tbnz w1, #31, .L1669 add x2, x19, :lo12:.LANCHOR0 ldrh w0, [x2,2040] ldrh w6, [x2,2066] sub w0, w0, #1 sub w0, w0, w6 cmp w1, w0, sxth - bgt .L1624 + bgt .L1669 add x0, x24, :lo12:.LANCHOR2 add w6, w6, 1 ldr w4, [x26,4] @@ -10963,83 +11109,83 @@ FtlScanSysBlk: ldr x0, [x0,2200] str w4, [x0,x1,lsl 2] ldr x0, [x2,2072] -.L1684: +.L1729: strh w25, [x0,x1,lsl 1] - b .L1624 -.L1625: + b .L1669 +.L1670: add x0, x24, :lo12:.LANCHOR2 - add x1, x0, 280 - ldrh w2, [x0,280] + add x1, x0, 264 + ldrh w2, [x0,264] cmp w2, w22 - bne .L1646 - strh w25, [x0,280] + bne .L1691 + strh w25, [x0,264] ldr w0, [x26,4] str w0, [x1,8] - b .L1624 -.L1646: + b .L1669 +.L1691: ldrh w0, [x1,4] cmp w0, w22 - beq .L1647 + beq .L1692 mov w1, 1 bl FtlFreeSysBlkQueueIn -.L1647: +.L1692: add x1, x24, :lo12:.LANCHOR2 ldr w2, [x26,4] - add x0, x1, 280 + add x0, x1, 264 ldr w6, [x0,8] cmp w6, w2 - bcs .L1648 - ldrh w2, [x1,280] + bcs .L1693 + ldrh w2, [x1,264] strh w2, [x0,4] - strh w25, [x1,280] + strh w25, [x1,264] ldr w1, [x26,4] str w1, [x0,8] - b .L1624 -.L1648: + b .L1669 +.L1693: strh w25, [x0,4] - b .L1624 -.L1621: + b .L1669 +.L1666: add x0, x19, :lo12:.LANCHOR0 ldrb w1, [x0,120] mov w0, w25 - cbz w1, .L1649 -.L1685: + cbz w1, .L1694 +.L1730: mov w1, 0 -.L1649: +.L1694: bl FtlFreeSysBlkQueueIn -.L1624: +.L1669: add x23, x23, 1 - b .L1616 -.L1615: + b .L1661 +.L1660: add w21, w21, 1 uxth w21, w21 - b .L1611 -.L1652: + b .L1656 +.L1697: add x4, x24, :lo12:.LANCHOR2 ldr x2, [x4,2176] ldrh w0, [x2] - cbz w0, .L1654 -.L1657: + cbz w0, .L1699 +.L1702: add x1, x19, :lo12:.LANCHOR0 ldr x2, [x1,2072] ldrh w0, [x2] - cbz w0, .L1655 - b .L1678 -.L1654: + cbz w0, .L1700 + b .L1723 +.L1699: ldrh w4, [x4,2320] - cbz w4, .L1657 + cbz w4, .L1702 ldr w1, [x1,2048] -.L1658: +.L1703: cmp w0, w1 - bcs .L1657 + bcs .L1702 ldrh w4, [x2,w0,sxtw 1] - cbz w4, .L1659 + cbz w4, .L1704 mov w7, w0 -.L1660: +.L1705: add x1, x19, :lo12:.LANCHOR0 ldr w1, [x1,2048] cmp w0, w1 - bcs .L1657 + bcs .L1702 add x2, x24, :lo12:.LANCHOR2 sxtw x6, w0 sub w1, w0, w7 @@ -11055,26 +11201,26 @@ FtlScanSysBlk: str w6, [x5,x1,lsl 2] ldr x1, [x2,2176] strh wzr, [x1,x4] - b .L1660 -.L1659: + b .L1705 +.L1704: add w0, w0, 1 sxth w0, w0 - b .L1658 -.L1655: + b .L1703 +.L1700: ldrh w4, [x1,2066] - cbz w4, .L1678 + cbz w4, .L1723 ldrh w1, [x1,2040] -.L1663: +.L1708: cmp w0, w1 mov w7, w0 - bge .L1678 + bge .L1723 ldrh w4, [x2,w0,sxtw 1] - cbz w4, .L1664 -.L1665: + cbz w4, .L1709 +.L1710: add x2, x19, :lo12:.LANCHOR0 ldrh w1, [x2,2040] cmp w0, w1 - bge .L1678 + bge .L1723 sxtw x6, w0 sub w1, w0, w7 ldr x5, [x2,2072] @@ -11090,12 +11236,12 @@ FtlScanSysBlk: str w6, [x5,x1,lsl 2] ldr x1, [x2,2072] strh wzr, [x1,x4] - b .L1665 -.L1664: + b .L1710 +.L1709: add w0, w0, 1 sxth w0, w0 - b .L1663 -.L1678: + b .L1708 +.L1723: mov w0, 0 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -11114,79 +11260,80 @@ FtlLoadSysInfo: add x29, sp, 0 stp x19, x20, [sp,16] stp x23, x24, [sp,48] - adrp x20, .LANCHOR2 + adrp x19, .LANCHOR2 adrp x23, .LANCHOR4 stp x21, x22, [sp,32] - add x22, x20, :lo12:.LANCHOR2 + add x22, x19, :lo12:.LANCHOR2 add x21, x23, :lo12:.LANCHOR4 str x25, [sp,64] add x21, x21, 160 - adrp x19, .LANCHOR0 - add x25, x22, 280 + adrp x20, .LANCHOR0 + add x25, x22, 264 + ldr x0, [x22,2072] + str x0, [x21,8] ldr x0, [x22,2120] str x0, [x21,16] - add x0, x19, :lo12:.LANCHOR0 - str xzr, [x21,8] - ldrh w2, [x0,1952] - ldr x0, [x22,-40] + add x0, x20, :lo12:.LANCHOR0 + ldrh w2, [x0,1956] + ldr x0, [x19,#:lo12:.LANCHOR2] lsl w2, w2, 1 bl ftl_memset - ldrh w0, [x22,280] + ldrh w0, [x22,264] mov w1, 65535 cmp w0, w1 - bne .L1692 -.L1700: + bne .L1737 +.L1745: mov w19, -1 - b .L1693 -.L1692: + b .L1738 +.L1737: mov w1, 1 bl FtlGetLastWrittenPage sxth w24, w0 add w0, w0, 1 strh w0, [x25,2] mov w25, 61604 -.L1694: - tbnz w24, #31, .L1699 - ldrh w0, [x22,280] +.L1739: + tbnz w24, #31, .L1744 + ldrh w0, [x22,264] mov w1, 1 mov w2, w1 orr w0, w24, w0, lsl 10 str w0, [x21,4] - ldr x0, [x22,-64] + ldr x0, [x22,2072] str x0, [x21,8] mov x0, x21 bl FlashReadPages ldr w0, [x21] cmn w0, #1 - beq .L1695 - ldr x0, [x22,-64] + beq .L1740 + ldr x0, [x22,2072] ldr w1, [x0] mov w0, 19539 movk w0, 0x4654, lsl 16 cmp w1, w0 - bne .L1695 + bne .L1740 ldr x0, [x22,2120] ldrh w0, [x0] cmp w0, w25 - bne .L1695 -.L1699: + bne .L1740 +.L1744: add x21, x23, :lo12:.LANCHOR4 - add x24, x20, :lo12:.LANCHOR2 + add x24, x19, :lo12:.LANCHOR2 add x21, x21, 160 - add x22, x19, :lo12:.LANCHOR0 + add x22, x20, :lo12:.LANCHOR0 mov w2, 48 - add x0, x24, 224 + sub x0, x24, #64 ldr x1, [x21,8] bl ftl_memcpy ldr x1, [x21,8] - ldrh w2, [x22,1952] - ldr x0, [x24,-40] + ldrh w2, [x22,1956] + ldr x0, [x19,#:lo12:.LANCHOR2] add x1, x1, 48 lsl w2, w2, 1 bl ftl_memcpy - ldrh w2, [x22,1952] + ldrh w2, [x22,1956] ldr x3, [x21,8] - ldr x0, [x19,#:lo12:.LANCHOR0] + ldr x0, [x20,#:lo12:.LANCHOR0] uxth x1, w2 lsr w2, w2, 3 add x1, x1, 24 @@ -11195,8 +11342,8 @@ FtlLoadSysInfo: add x1, x3, x1, lsl 2 bl ftl_memcpy ldrh w0, [x22,2064] - cbz w0, .L1697 - ldrh w0, [x22,1952] + cbz w0, .L1742 + ldrh w0, [x22,1956] ldr x3, [x21,8] lsr w1, w0, 3 ldrh w2, [x22,2056] @@ -11207,126 +11354,126 @@ FtlLoadSysInfo: and x1, x1, 65532 add x1, x3, x1 bl ftl_memcpy - b .L1697 -.L1695: + b .L1742 +.L1740: sub w24, w24, #1 sxth w24, w24 - b .L1694 -.L1697: - add x0, x20, :lo12:.LANCHOR2 - mov w2, 19539 - movk w2, 0x4654, lsl 16 - ldr w3, [x0,224] + b .L1739 +.L1742: + add x0, x19, :lo12:.LANCHOR2 + mov w1, 19539 + movk w1, 0x4654, lsl 16 + ldr w2, [x0,-64] + cmp w2, w1 + bne .L1745 + add x1, x20, :lo12:.LANCHOR0 + ldrb w3, [x0,-54] + ldrh w4, [x0,-56] + strh w4, [x0,270] + ldrh w2, [x1,1970] cmp w3, w2 - bne .L1700 - add x2, x19, :lo12:.LANCHOR0 - ldrb w4, [x0,234] - ldrh w5, [x0,232] - strh w5, [x0,286] - ldrh w3, [x2,1966] - cmp w4, w3 - bne .L1700 - ldrh w4, [x2,2018] + bne .L1745 + ldrh w3, [x1,2018] add x23, x23, :lo12:.LANCHOR4 - ldrh w3, [x2,2024] - strh wzr, [x0,298] - mul w4, w4, w5 - str w4, [x2,2096] - str w5, [x23,216] - mul w4, w4, w3 - str w4, [x2,2060] - ldrh w3, [x2,2110] - ldr w4, [x2,1956] - ldrh w2, [x2,1944] - sub w3, w4, w3 - ldrh w4, [x0,238] - sub w3, w3, w5 - strb wzr, [x0,302] - strb wzr, [x0,304] - udiv w2, w3, w2 - strh w2, [x0,272] - adrp x2, .LANCHOR2 - strh w4, [x2,#:lo12:.LANCHOR2] - ldrh w2, [x0,240] - lsr w3, w2, 6 - strh w3, [x0,2] - mov w3, -1 - strh w3, [x0,296] - ldrh w3, [x0,242] + ldrh w2, [x1,2024] + strh wzr, [x0,282] + mul w3, w3, w4 + str w3, [x1,2096] + str w4, [x23,216] + mul w3, w3, w2 + str w3, [x1,2060] + ldrh w2, [x1,2110] + ldr w3, [x1,1960] + ldrh w1, [x1,1948] + sub w2, w3, w2 + ldrh w3, [x0,-50] + sub w2, w2, w4 + strh w3, [x0,40] + strb wzr, [x0,286] + udiv w1, w2, w1 + ldrh w2, [x0,-48] + strh w1, [x0,260] + lsr w4, w2, 6 and w2, w2, 63 - strh w3, [x0,48] - ldrh w3, [x0,244] - strb w2, [x0,6] - lsr w5, w3, 6 - and w3, w3, 63 - strb w3, [x0,54] - ldrb w3, [x0,236] - strb w3, [x0,56] - ldrh w3, [x0,246] - strh w3, [x0,96] - ldrh w3, [x0,248] - ldrb w2, [x0,235] - strh w5, [x0,50] - lsr w5, w3, 6 - and w3, w3, 63 - strb w2, [x0,8] - strb w3, [x0,102] - strh w5, [x0,98] - ldrb w3, [x0,237] - strb w3, [x0,104] - ldr w2, [x0,256] - str w2, [x0,204] - ldr w1, [x0,264] - ldr w2, [x0,196] - str wzr, [x0,184] - str wzr, [x0,172] - cmp w1, w2 - str wzr, [x0,164] - str wzr, [x0,180] + strb w2, [x0,46] + ldrb w2, [x0,-53] + strb w2, [x0,48] + mov w2, -1 + strh w2, [x0,280] + ldrh w2, [x0,-46] + strh w2, [x0,88] + ldrh w2, [x0,-44] + strh w4, [x0,42] + lsr w4, w2, 6 + and w2, w2, 63 + strb w2, [x0,94] + ldrb w2, [x0,-52] + strb w2, [x0,96] + ldrh w2, [x0,-42] + strh w2, [x0,136] + ldrh w2, [x0,-40] + strh w4, [x0,90] + lsr w4, w2, 6 + and w2, w2, 63 + strb wzr, [x0,288] + strb w2, [x0,142] + strh w4, [x0,138] + ldrb w2, [x0,-51] + strb w2, [x0,144] + ldr w1, [x0,-32] + str w1, [x0,240] + ldr w2, [x0,232] + ldr w1, [x0,-24] + str wzr, [x0,220] str wzr, [x0,208] - str wzr, [x0,216] - str wzr, [x0,176] - bls .L1701 - str w1, [x0,196] -.L1701: - add x0, x20, :lo12:.LANCHOR2 - ldr w1, [x0,260] - ldr w2, [x0,200] cmp w1, w2 - bls .L1702 - str w1, [x0,200] -.L1702: + str wzr, [x0,200] + str wzr, [x0,216] + str wzr, [x0,244] + str wzr, [x0,252] + str wzr, [x0,212] + bls .L1746 + str w1, [x0,232] +.L1746: + add x0, x19, :lo12:.LANCHOR2 + ldr w1, [x0,-28] + ldr w2, [x0,236] + cmp w1, w2 + bls .L1747 + str w1, [x0,236] +.L1747: mov w0, 65535 - cmp w4, w0 - beq .L1703 - add x0, x20, :lo12:.LANCHOR2 + cmp w3, w0 + beq .L1748 + add x0, x19, :lo12:.LANCHOR2 + add x0, x0, 40 bl make_superblock -.L1703: - add x1, x20, :lo12:.LANCHOR2 - add x0, x1, 48 - ldrh w2, [x1,48] +.L1748: + add x1, x19, :lo12:.LANCHOR2 + add x0, x1, 88 + ldrh w2, [x1,88] mov w1, 65535 cmp w2, w1 - beq .L1704 + beq .L1749 bl make_superblock -.L1704: - add x1, x20, :lo12:.LANCHOR2 - add x0, x1, 96 - ldrh w2, [x1,96] +.L1749: + add x1, x19, :lo12:.LANCHOR2 + add x0, x1, 136 + ldrh w2, [x1,136] mov w1, 65535 cmp w2, w1 - beq .L1705 + beq .L1750 bl make_superblock -.L1705: - add x20, x20, :lo12:.LANCHOR2 +.L1750: + add x19, x19, :lo12:.LANCHOR2 mov w1, 65535 - add x0, x20, 296 + add x0, x19, 280 + ldrh w2, [x19,280] mov w19, 0 - ldrh w2, [x20,296] cmp w2, w1 - beq .L1693 + beq .L1738 bl make_superblock -.L1693: +.L1738: mov w0, w19 ldr x25, [sp,64] ldp x19, x20, [sp,16] @@ -11336,77 +11483,390 @@ FtlLoadSysInfo: ret .size FtlLoadSysInfo, .-FtlLoadSysInfo .align 2 + .global FtlDumpBlockInfo + .type FtlDumpBlockInfo, %function +FtlDumpBlockInfo: + sub sp, sp, #176 + lsr x0, x0, 10 + stp x29, x30, [sp,16] + add x29, sp, 16 + stp x21, x22, [sp,48] + stp x19, x20, [sp,32] + stp x23, x24, [sp,64] + stp x25, x26, [sp,80] + stp x27, x28, [sp,96] + uxtb w25, w1 + bl P2V_block_in_plane + adrp x2, .LANCHOR3 + adrp x22, .LANCHOR0 + uxth w23, w0 + add x1, x2, :lo12:.LANCHOR3 + add x19, x22, :lo12:.LANCHOR0 + adrp x0, .LC106 + add x1, x1, 16 + add x0, x0, :lo12:.LC106 + adrp x21, .LANCHOR2 + ldrh w24, [x19,2018] + bl printk + ubfiz x2, x23, 1, 16 + adrp x0, .LC107 + ldr x3, [x21,#:lo12:.LANCHOR2] + add x0, x0, :lo12:.LC107 + mov w1, w23 + ldrh w2, [x3,x2] + bl printk + strh w23, [x29,112] + add x0, x29, 112 + bl make_superblock + cbnz w25, .L1764 + ldrb w0, [x19,120] + cbz w0, .L1764 + mov w0, w23 + bl ftl_get_blk_mode + cmp w0, 1 + mov w23, w0 + bne .L1756 + ldrh w24, [x19,2020] + b .L1756 +.L1764: + mov w23, 0 +.L1756: + add x3, x22, :lo12:.LANCHOR0 + adrp x0, .LC108 + adrp x25, .LC109 + add x0, x0, :lo12:.LC108 + mov w1, w23 + mov w2, w24 + ldrh w3, [x3,2018] + mov w20, 0 + mov w27, 65535 + mov w28, 56 + mov w26, 4 + add x25, x25, :lo12:.LC109 + bl printk +.L1757: + add x0, x22, :lo12:.LANCHOR0 + ldrh w5, [x0,1948] + ldrh w6, [x0,2028] + ldrh w7, [x0,2030] + mov x0, 0 + mov w19, w0 +.L1758: + cmp w5, w0, uxth + bls .L1772 + add x1, x29, 112 + add x1, x1, x0, lsl 1 + ldrh w2, [x1,16] + cmp w2, w27 + beq .L1759 + add x3, x21, :lo12:.LANCHOR2 + orr w2, w20, w2, lsl 10 + umull x1, w19, w28 + ldr x4, [x3,2048] + add x4, x4, x1 + str w2, [x4,4] + ldr x2, [x3,2048] + ldr x4, [x3,880] + add x1, x2, x1 + ldr x3, [x3,888] + mul w2, w19, w6 + sdiv w2, w2, w26 + add x2, x4, x2, sxtw 2 + str x2, [x1,8] + mul w2, w19, w7 + add w19, w19, 1 + uxth w19, w19 + sdiv w2, w2, w26 + add x2, x3, x2, sxtw 2 + str x2, [x1,16] +.L1759: + add x0, x0, 1 + b .L1758 +.L1772: + add x0, x21, :lo12:.LANCHOR2 + mov w1, w19 + mov w2, w23 + ldr x0, [x0,2048] + bl FlashReadPages + mov x8, 0 + mov x9, 56 +.L1761: + cmp w19, w8, uxth + bls .L1773 + add x0, x21, :lo12:.LANCHOR2 + ldrh w1, [x29,112] + mul x2, x8, x9 + str x9, [x29,96] + ldr x4, [x0,2048] + str x8, [x29,104] + add x3, x4, x2 + ldr x0, [x3,8] + ldr x7, [x3,16] + ldr w5, [x0] + str w5, [sp] + ldr w0, [x0,4] + str w0, [sp,8] + mov x0, x25 + ldr w2, [x4,x2] + ldr w5, [x7,4] + ldr w4, [x7] + ldr w6, [x7,8] + ldr w3, [x3,4] + ldr w7, [x7,12] + bl printk + ldr x8, [x29,104] + ldr x9, [x29,96] + add x8, x8, 1 + b .L1761 +.L1773: + add w20, w20, 1 + uxth w20, w20 + cmp w20, w24 + bne .L1757 +.L1763: + sub sp, x29, #16 + mov w0, 0 + ldp x19, x20, [sp,32] + ldp x21, x22, [sp,48] + ldp x23, x24, [sp,64] + ldp x25, x26, [sp,80] + ldp x27, x28, [sp,96] + ldp x29, x30, [sp,16] + add sp, sp, 176 + ret + .size FtlDumpBlockInfo, .-FtlDumpBlockInfo + .align 2 + .global FtlScanAllBlock + .type FtlScanAllBlock, %function +FtlScanAllBlock: + sub sp, sp, #144 + adrp x1, .LANCHOR3 + adrp x0, .LC106 + add x1, x1, :lo12:.LANCHOR3 + add x0, x0, :lo12:.LC106 + add x1, x1, 40 + stp x29, x30, [sp,16] + add x29, sp, 16 + stp x23, x24, [sp,64] + stp x21, x22, [sp,48] + adrp x23, .LC111 + adrp x22, .LC110 + adrp x24, .LC112 + add x22, x22, :lo12:.LC110 + stp x19, x20, [sp,32] + add x23, x23, :lo12:.LC111 + mov w20, 0 + add x24, x24, :lo12:.LC112 + stp x25, x26, [sp,80] + bl printk +.L1775: + adrp x19, .LANCHOR0 + add x19, x19, :lo12:.LANCHOR0 + ldrh w0, [x19,1958] + cmp w0, w20 + bls .L1784 + mov w0, w20 + adrp x21, .LANCHOR2 + strh w20, [x29,80] + bl ftl_get_blk_mode + mov w3, w0 + ldr x4, [x21,#:lo12:.LANCHOR2] + ubfiz x2, x20, 1, 16 + mov w1, w20 + mov x0, x22 + ldrh w2, [x4,x2] + bl printk + add x0, x29, 80 + bl make_superblock + mov x1, 0 + ldrh w6, [x19,1948] + ldrh w7, [x19,2028] + mov w9, 65535 + ldrh w8, [x19,2030] + mov w10, 56 + mov w19, w1 + mov w5, 4 +.L1776: + cmp w6, w1, uxth + bls .L1785 + add x0, x29, 80 + add x0, x0, x1, lsl 1 + ldrh w2, [x0,16] + cmp w2, w9 + beq .L1777 + add x3, x21, :lo12:.LANCHOR2 + lsl w2, w2, 10 + umull x0, w19, w10 + ldr x4, [x3,2048] + add x4, x4, x0 + str w2, [x4,4] + ldr x2, [x3,2048] + ldr x4, [x3,880] + add x2, x2, x0 + ldr x3, [x3,888] + mul w0, w19, w7 + sdiv w0, w0, w5 + add x0, x4, x0, sxtw 2 + str x0, [x2,8] + mul w0, w19, w8 + add w19, w19, 1 + uxth w19, w19 + sdiv w0, w0, w5 + add x0, x3, x0, sxtw 2 + str x0, [x2,16] +.L1777: + add x1, x1, 1 + b .L1776 +.L1785: + add x0, x21, :lo12:.LANCHOR2 + mov w1, w19 + mov w2, 0 + mov x25, 0 + mov x26, 56 + ldr x0, [x0,2048] + bl FlashReadPages +.L1779: + add x0, x21, :lo12:.LANCHOR2 + cmp w19, w25, uxth + bls .L1786 + ldr x4, [x0,2048] + mul x2, x25, x26 + ldrh w1, [x29,80] + add x25, x25, 1 + add x3, x4, x2 + ldr x0, [x3,8] + ldr x7, [x3,16] + ldr w5, [x0] + str w5, [sp] + ldr w0, [x0,4] + str w0, [sp,8] + mov x0, x23 + ldr w2, [x4,x2] + ldr w5, [x7,4] + ldr w4, [x7] + ldr w6, [x7,8] + ldr w3, [x3,4] + ldr w7, [x7,12] + bl printk + b .L1779 +.L1786: + ldr x0, [x0,2048] + mov w1, w19 + mov w2, 1 + mov x25, 0 + mov x26, 56 + bl FlashReadPages +.L1781: + cmp w19, w25, uxth + bls .L1787 + add x0, x21, :lo12:.LANCHOR2 + ldrh w1, [x29,80] + mul x2, x25, x26 + add x25, x25, 1 + ldr x4, [x0,2048] + add x3, x4, x2 + ldr x0, [x3,8] + ldr x7, [x3,16] + ldr w5, [x0] + str w5, [sp] + ldr w0, [x0,4] + str w0, [sp,8] + mov x0, x24 + ldr w2, [x4,x2] + ldr w5, [x7,4] + ldr w4, [x7] + ldr w6, [x7,8] + ldr w3, [x3,4] + ldr w7, [x7,12] + bl printk + b .L1781 +.L1787: + add w20, w20, 1 + uxth w20, w20 + b .L1775 +.L1784: + sub sp, x29, #16 + mov w0, 0 + ldp x19, x20, [sp,32] + ldp x21, x22, [sp,48] + ldp x23, x24, [sp,64] + ldp x25, x26, [sp,80] + ldp x29, x30, [sp,16] + add sp, sp, 144 + ret + .size FtlScanAllBlock, .-FtlScanAllBlock + .align 2 .global FtlGcScanTempBlk .type FtlGcScanTempBlk, %function FtlGcScanTempBlk: - stp x29, x30, [sp, -144]! + stp x29, x30, [sp, -160]! add x29, sp, 0 stp x19, x20, [sp,16] adrp x20, .LANCHOR1 mov x19, x0 add x0, x20, :lo12:.LANCHOR1 - str w1, [x29,136] + str w1, [x29,152] stp x21, x22, [sp,32] stp x23, x24, [sp,48] stp x25, x26, [sp,64] stp x27, x28, [sp,80] - str x20, [x29,128] - ldrh w28, [x0,3008] + str x20, [x29,144] + ldrh w28, [x0,3168] mov w0, 65535 cmp w28, w0 - beq .L1732 - cbnz w28, .L1711 - b .L1712 -.L1732: + beq .L1810 + cbnz w28, .L1789 + b .L1790 +.L1810: mov w28, 0 -.L1711: +.L1789: adrp x0, .LANCHOR0+2018 - ldr w1, [x29,136] + ldr w1, [x29,152] ldrh w0, [x0,#:lo12:.LANCHOR0+2018] cmp w1, w0 - bne .L1713 -.L1712: + bne .L1791 +.L1790: bl FtlGcPageVarInit -.L1713: +.L1791: mov w0, -1 - str w0, [x29,140] - adrp x0, .LC104 + str w0, [x29,156] + adrp x0, .LC113 mov w21, 0 - add x0, x0, :lo12:.LC104 + add x0, x0, :lo12:.LC113 mov w22, 65535 adrp x23, .LANCHOR0 - str x0, [x29,120] -.L1726: + str x0, [x29,136] +.L1804: ldrh w0, [x19] strb wzr, [x19,8] cmp w0, w22 - beq .L1733 -.L1715: -.L1729: + beq .L1811 +.L1793: + adrp x27, .LANCHOR2 +.L1807: add x0, x23, :lo12:.LANCHOR0 mov x2, x19 mov w20, 0 mov w9, 4 - ldrh w5, [x0,1944] + ldrh w5, [x0,1948] ldrh w8, [x0,2030] add x5, x19, x5, lsl 1 -.L1716: +.L1794: cmp x2, x5 - beq .L1741 + beq .L1819 ldrh w1, [x2,16] cmp w1, w22 - beq .L1717 - adrp x3, .LANCHOR2 + beq .L1795 + add x6, x27, :lo12:.LANCHOR2 mov w0, 56 - add x6, x3, :lo12:.LANCHOR2 orr w1, w28, w1, lsl 10 - umull x0, w20, w0 add w4, w20, 1 - ldr x7, [x6,2056] + umull x0, w20, w0 + ldr x7, [x6,2048] add x7, x7, x0 str w1, [x7,4] - ldr x1, [x6,2056] - ldr x6, [x6,904] + ldr x1, [x6,2048] + ldr x6, [x6,888] add x0, x1, x0 mul w1, w20, w8 uxth w20, w4 @@ -11414,142 +11874,142 @@ FtlGcScanTempBlk: sdiv w1, w1, w9 add x1, x6, x1, sxtw 2 str x1, [x0,16] -.L1717: +.L1795: add x2, x2, 2 - b .L1716 -.L1741: - adrp x0, .LANCHOR2 + b .L1794 +.L1819: + add x0, x27, :lo12:.LANCHOR2 mov w1, w20 - add x0, x0, :lo12:.LANCHOR2 mov w2, 0 mov x24, 0 adrp x25, .LANCHOR2 - ldr x0, [x0,2056] + ldr x0, [x0,2048] bl FlashReadPages -.L1719: +.L1797: cmp w20, w24, uxth - bls .L1742 - add x27, x25, :lo12:.LANCHOR2 + bls .L1820 + add x1, x25, :lo12:.LANCHOR2 mov x0, 56 - mul x26, x24, x0 - ldr x10, [x27,2056] - str x10, [x29,96] - add x1, x10, x26 str x1, [x29,104] - ldr w2, [x1,4] - str x2, [x29,112] + mul x26, x24, x0 + ldr x10, [x1,2048] + str x10, [x29,112] + add x9, x10, x26 + str x9, [x29,120] + ldr w2, [x9,4] + str x2, [x29,128] lsr x0, x2, 10 bl P2V_plane uxth w7, w0 - ldr x10, [x29,96] - ldr x2, [x29,112] + ldr x10, [x29,112] + ldr x2, [x29,128] ldr w0, [x10,x26] - cbnz w0, .L1720 - ldr x1, [x29,104] + cbnz w0, .L1798 + ldr x9, [x29,120] add x24, x24, 1 - ldr x6, [x1,16] - ldrh w0, [x6] + ldr x1, [x29,104] + ldr x5, [x9,16] + ldrh w0, [x5] cmp w0, w22 - bne .L1721 + bne .L1799 mov w0, 1 - str w0, [x27,2344] - b .L1714 -.L1721: + str w0, [x1,2344] + b .L1792 +.L1799: mov w1, w2 - ldr w0, [x6,12] - ldr w2, [x6,8] + ldr w0, [x5,12] + ldr w2, [x5,8] bl FtlGcUpdatePage - b .L1719 -.L1720: - ldr x0, [x29,120] + b .L1797 +.L1798: ldrh w1, [x19] + ldr x0, [x29,136] bl printk - ldr w0, [x27,160] - cbnz w0, .L1722 adrp x0, .LANCHOR0 add x0, x0, :lo12:.LANCHOR0 + ldr w1, [x0,1940] + cbnz w1, .L1800 ldrb w0, [x0,120] - cbz w0, .L1723 -.L1722: + cbz w0, .L1801 +.L1800: add x0, x25, :lo12:.LANCHOR2 ldrh w1, [x19] ldr x0, [x0,-80] ldrh w0, [x0,x1,lsl 1] - cmp w0, 119 - bls .L1724 -.L1723: + cmp w0, 159 + bls .L1802 +.L1801: add x0, x25, :lo12:.LANCHOR2 - ldr x0, [x0,2056] + ldr x0, [x0,2048] ldr w0, [x0,x26] cmn w0, #1 - bne .L1725 -.L1724: + bne .L1803 +.L1802: add x0, x25, :lo12:.LANCHOR2 - ldr x0, [x0,2056] - add x6, x0, x26 - ldr w0, [x6,4] - str w0, [x29,140] -.L1725: - add x5, x25, :lo12:.LANCHOR2 + ldr x0, [x0,2048] + add x5, x0, x26 + ldr w0, [x5,4] + str w0, [x29,156] +.L1803: ldrh w1, [x19] mov w28, 0 - ldr x0, [x5,-40] + ldr x0, [x25,#:lo12:.LANCHOR2] strh wzr, [x0,x1,lsl 1] ldrh w0, [x19] bl INSERT_FREE_LIST mov w0, -1 strh w0, [x19] bl FtlGcPageVarInit - b .L1726 -.L1742: - ldr w0, [x29,136] + b .L1804 +.L1820: + ldr w0, [x29,152] add w21, w21, 1 add w3, w28, 1 cmp w21, w0 uxth w28, w3 - bcs .L1728 -.L1730: + bcs .L1806 +.L1808: adrp x0, .LANCHOR0 add x0, x0, :lo12:.LANCHOR0 ldrh w0, [x0,2018] cmp w0, w28 - bhi .L1729 - b .L1733 -.L1728: - ldr x0, [x29,128] + bhi .L1807 + b .L1811 +.L1806: + ldr x0, [x29,144] add x1, x0, :lo12:.LANCHOR1 - ldrh w0, [x1,3008] + ldrh w0, [x1,3168] cmp w0, w22 - beq .L1730 + beq .L1808 add w0, w0, w21 - strh w0, [x1,3008] + strh w0, [x1,3168] adrp x0, .LANCHOR0 add x0, x0, :lo12:.LANCHOR0 ldrh w0, [x0,2018] cmp w0, w28 - bls .L1730 - b .L1731 -.L1733: + bls .L1808 + b .L1809 +.L1811: mov w7, 0 -.L1714: - ldr x0, [x29,128] +.L1792: + ldr x0, [x29,144] mov w1, w28 strh w28, [x19,2] mov w2, w7 add x20, x0, :lo12:.LANCHOR1 mov w0, -1 strb w7, [x19,6] - strh w0, [x20,3008] + strh w0, [x20,3168] mov x0, x19 bl ftl_sb_update_avl_pages -.L1731: - ldr w0, [x29,140] +.L1809: + ldr w0, [x29,156] 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], 144 + ldp x29, x30, [sp], 160 ret .size FtlGcScanTempBlk, .-FtlGcScanTempBlk .align 2 @@ -11576,17 +12036,17 @@ FlashProgPages: mov w23, w2 mov w22, 0 ldrb w5, [x5,19] - cbz w4, .L1744 + cbz w4, .L1822 bl FlashProgSlc2KPages - b .L1745 -.L1744: + b .L1823 +.L1822: sub w0, w5, #1 mov w27, 56 mov x28, 24 str w0, [x29,116] -.L1796: +.L1874: cmp w22, w25 - bcs .L1797 + bcs .L1875 umull x20, w22, w27 sub w4, w25, w22 add x2, x29, 128 @@ -11600,11 +12060,11 @@ FlashProgPages: ldr w0, [x29,132] ldrb w4, [x2,1845] cmp w0, w4 - bcc .L1746 + bcc .L1824 mov w0, -1 str w0, [x19,x20] - b .L1747 -.L1746: + b .L1825 +.L1824: ldrb w1, [x2,1937] add x3, x2, 1652 cmp w1, wzr @@ -11612,15 +12072,15 @@ FlashProgPages: csel w24, w24, wzr, ne madd x0, x1, x28, x3 ldr x0, [x0,8] - cbz x0, .L1749 + cbz x0, .L1827 cmp w4, 1 - bne .L1750 + bne .L1828 ldr x0, [x2,128] bl NandcIqrWaitFlashReady -.L1750: +.L1828: ldrb w0, [x29,132] bl FlashWaitCmdDone -.L1749: +.L1827: add x0, x21, :lo12:.LANCHOR0 ldr w2, [x29,132] add x0, x0, 1652 @@ -11629,12 +12089,12 @@ FlashProgPages: str x26, [x0,8] str xzr, [x0,16] str w1, [x0,4] - cbz w24, .L1751 + cbz w24, .L1829 add w1, w22, 1 umull x1, w1, w27 add x1, x19, x1 str x1, [x0,16] -.L1751: +.L1829: add x1, x21, :lo12:.LANCHOR0 add x0, x1, x2 madd x2, x2, x28, x1 @@ -11642,11 +12102,11 @@ FlashProgPages: ldrb w0, [x1,1845] strb w20, [x2,1652] cmp w0, 1 - bne .L1752 + bne .L1830 mov w0, w20 bl NandcWaitFlashReady - b .L1753 -.L1752: + b .L1831 +.L1830: mov w0, w20 str x1, [x29,104] bl NandcFlashCs @@ -11661,34 +12121,34 @@ FlashProgPages: bl FlashWaitReadyEN mov w0, w20 bl NandcFlashDeCs -.L1753: +.L1831: ldr w0, [x29,116] cmp w0, 6 - bhi .L1754 + bhi .L1832 add x2, x21, :lo12:.LANCHOR0 add x0, x2, x20, sxtw ldrb w0, [x0,1616] - cbz w0, .L1754 + cbz w0, .L1832 ldrb w1, [x2,761] mov w0, w20 add x2, x2, 764 mov w3, 0 bl HynixSetRRPara -.L1754: +.L1832: mov w0, w20 bl NandcFlashCs cmp w23, 1 - bne .L1755 + bne .L1833 add x0, x21, :lo12:.LANCHOR0 ldrb w0, [x0,120] - cbz w0, .L1755 + cbz w0, .L1833 mov w0, w20 bl flash_enter_slc_mode - b .L1756 -.L1755: + b .L1834 +.L1833: mov w0, w20 bl flash_exit_slc_mode -.L1756: +.L1834: ldr w1, [x29,128] mov w0, w20 bl FlashProgFirstCmd @@ -11698,7 +12158,7 @@ FlashProgPages: mov w1, 1 ldr x4, [x26,16] bl NandcXferData - cbz w24, .L1757 + cbz w24, .L1835 ldr w1, [x29,128] mov w0, w20 add x26, x21, :lo12:.LANCHOR0 @@ -11725,65 +12185,65 @@ FlashProgPages: ldr x3, [x4,8] ldr x4, [x4,16] bl NandcXferData -.L1757: +.L1835: ldr w1, [x29,128] mov w0, w20 add w22, w22, w24 bl FlashProgSecondCmd mov w0, w20 bl NandcFlashDeCs -.L1747: +.L1825: add w22, w22, 1 - b .L1796 -.L1797: + b .L1874 +.L1875: add x21, x21, :lo12:.LANCHOR0 mov x20, 0 add x22, x21, 1652 mov x24, 24 ldr x0, [x21,128] bl NandcIqrWaitFlashReady -.L1759: +.L1837: ldrb w0, [x21,1845] cmp w0, w20 - bls .L1798 + bls .L1876 mov w0, w20 bl FlashWaitCmdDone cmp w23, 1 - bne .L1760 + bne .L1838 ldrb w0, [x21,120] - cbz w0, .L1760 + cbz w0, .L1838 mul x0, x20, x24 ldrb w0, [x0,x22] bl flash_exit_slc_mode -.L1760: +.L1838: add x20, x20, 1 - b .L1759 -.L1798: + b .L1837 +.L1876: ldr w0, [x29,120] - cbnz w0, .L1762 -.L1770: + cbnz w0, .L1840 +.L1848: mov w0, 0 - b .L1745 -.L1762: - adrp x24, .LC103 - adrp x26, .LC102 - adrp x27, .LC101 + b .L1823 +.L1840: + adrp x24, .LC105 + adrp x26, .LC104 + adrp x27, .LC103 mov w21, 0 - add x24, x24, :lo12:.LC103 - add x26, x26, :lo12:.LC102 - add x27, x27, :lo12:.LC101 -.L1763: + add x24, x24, :lo12:.LC105 + add x26, x26, :lo12:.LC104 + add x27, x27, :lo12:.LC103 +.L1841: cmp w21, w25 - beq .L1770 + beq .L1848 ldr w0, [x19] cmn w0, #1 - bne .L1764 - adrp x0, .LC100 + bne .L1842 + adrp x0, .LC102 ldr w1, [x19,4] - add x0, x0, :lo12:.LC100 + add x0, x0, :lo12:.LC102 bl printk - b .L1765 -.L1764: + b .L1843 +.L1842: adrp x20, .LANCHOR4 sub w4, w25, w21 add x22, x20, :lo12:.LANCHOR4 @@ -11810,44 +12270,44 @@ FlashProgPages: bl FlashReadPages ldr w22, [x29,136] cmn w22, #1 - bne .L1766 + bne .L1844 ldr w1, [x19,4] mov x0, x27 bl printk str w22, [x19] -.L1766: +.L1844: ldr x0, [x19,16] - cbz x0, .L1767 + cbz x0, .L1845 ldr w2, [x0] add x0, x20, :lo12:.LANCHOR4 ldr x0, [x0,128] ldr w3, [x0] cmp w2, w3 - beq .L1767 + beq .L1845 ldr w1, [x19,4] mov x0, x26 bl printk mov w0, -1 str w0, [x19] -.L1767: +.L1845: ldr x0, [x19,8] - cbz x0, .L1765 + cbz x0, .L1843 add x20, x20, :lo12:.LANCHOR4 ldr w2, [x0] ldr x0, [x20,120] ldr w3, [x0] cmp w2, w3 - beq .L1765 + beq .L1843 ldr w1, [x19,4] mov x0, x24 bl printk mov w0, -1 str w0, [x19] -.L1765: +.L1843: add w21, w21, 1 add x19, x19, 56 - b .L1763 -.L1745: + b .L1841 +.L1823: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -11857,8 +12317,8 @@ FlashProgPages: ret .size FlashProgPages, .-FlashProgPages .align 2 - .type FlashTestBlk.part.14, %function -FlashTestBlk.part.14: + .type FlashTestBlk.part.15, %function +FlashTestBlk.part.15: stp x29, x30, [sp, -160]! mov w1, 165 mov w2, 32 @@ -11898,7 +12358,7 @@ FlashTestBlk.part.14: ldp x19, x20, [sp,16] ldp x29, x30, [sp], 160 ret - .size FlashTestBlk.part.14, .-FlashTestBlk.part.14 + .size FlashTestBlk.part.15, .-FlashTestBlk.part.15 .align 2 .global FlashTestBlk .type FlashTestBlk, %function @@ -11910,10 +12370,10 @@ FlashTestBlk: ldr w2, [x0,#:lo12:.LANCHOR4+92] mov w0, 0 cmp w1, w2 - bcc .L1801 + bcc .L1879 mov w0, w1 - bl FlashTestBlk.part.14 -.L1801: + bl FlashTestBlk.part.15 +.L1879: ldp x29, x30, [sp], 16 ret .size FlashTestBlk, .-FlashTestBlk @@ -11952,9 +12412,9 @@ FlashMakeFactorBbt: ldr w0, [x29,172] csel w0, w1, w0, eq str w0, [x29,172] - adrp x0, .LC105 + adrp x0, .LC114 mov w1, 1 - add x0, x0, :lo12:.LC105 + add x0, x0, :lo12:.LC114 bl printk add x0, x20, :lo12:.LANCHOR4 mov w1, 0 @@ -11969,15 +12429,15 @@ FlashMakeFactorBbt: sub w0, w23, #1 uxth w0, w0 str w0, [x29,124] -.L1805: +.L1883: ldrb w0, [x19,1845] cmp w0, w21 - bls .L1856 + bls .L1934 sxtw x25, w21 add x0, x20, :lo12:.LANCHOR4 add x1, x0, x25, lsl 1 ldrh w22, [x1,144] - cbnz w22, .L1835 + cbnz w22, .L1913 ldrh w2, [x19,188] mov w1, w22 ldr x0, [x0,56] @@ -11991,16 +12451,16 @@ FlashMakeFactorBbt: and w0, w0, 2 uxtb w0, w0 str w0, [x29,120] -.L1807: +.L1885: uxth w0, w26 str w0, [x29,144] cmp w0, w23 - bcs .L1817 + bcs .L1895 mov w0, -1 strb w0, [x29,182] strb w0, [x29,183] ldr w0, [x29,116] - cbz w0, .L1809 + cbz w0, .L1887 ldr w3, [x28,x25,lsl 2] mov w0, w27 add x2, x29, 182 @@ -12011,7 +12471,7 @@ FlashMakeFactorBbt: ldrb w0, [x19,8] ldr x3, [x29,104] cmp w0, 1 - bne .L1809 + bne .L1887 ldr w1, [x19,12] mov w0, w27 add x2, x29, 183 @@ -12021,9 +12481,9 @@ FlashMakeFactorBbt: ldrb w1, [x29,183] and w0, w1, w0 strb w0, [x29,182] -.L1809: +.L1887: ldr w0, [x29,120] - cbz w0, .L1811 + cbz w0, .L1889 ldr x0, [x19,744] add x2, x29, 183 ldrh w1, [x0,10] @@ -12033,41 +12493,41 @@ FlashMakeFactorBbt: mov w0, w27 add w1, w1, w22 bl FlashReadSpare -.L1811: +.L1889: ldr x0, [x19,744] ldrb w1, [x29,182] ldrb w0, [x0,7] cmp w0, 8 - beq .L1836 + beq .L1914 cmp w0, 1 - bne .L1812 -.L1836: + bne .L1890 +.L1914: mov w0, 1 - cbz w1, .L1814 + cbz w1, .L1892 ldrb w0, [x29,183] cmp w0, wzr cset w0, eq - b .L1814 -.L1812: + b .L1892 +.L1890: cmp w1, 255 mov w0, 1 - bne .L1814 + bne .L1892 ldrb w0, [x29,183] cmp w0, 255 cset w0, ne -.L1814: +.L1892: ldr x1, [x29,128] - tbz x1, 2, .L1815 + tbz x1, 2, .L1893 ldr w1, [x28,x25,lsl 2] mov w0, w27 add w1, w22, w1 bl SandiskProgTestBadBlock -.L1815: - cbz w0, .L1816 - adrp x0, .LC106 +.L1893: + cbz w0, .L1894 + adrp x0, .LC115 mov w1, w21 mov w2, w26 - add x0, x0, :lo12:.LC106 + add x0, x0, :lo12:.LC115 add w24, w24, 1 bl printk add x0, x20, :lo12:.LANCHOR4 @@ -12086,44 +12546,44 @@ FlashMakeFactorBbt: ldrb w0, [x19,1845] mul w0, w1, w0 cmp w24, w0 - bgt .L1817 -.L1816: + bgt .L1895 +.L1894: ldr w0, [x29,172] add w26, w26, 1 add w22, w22, w0 - b .L1807 -.L1817: - adrp x0, .LC107 + b .L1885 +.L1895: + adrp x0, .LC116 mov w1, w21 - add x0, x0, :lo12:.LC107 + add x0, x0, :lo12:.LC116 mov w2, w24 bl printk ldrb w0, [x19,1845] ldr w1, [x29,168] mul w0, w1, w0 cmp w24, w0 - blt .L1819 + blt .L1897 add x0, x20, :lo12:.LANCHOR4 ldrh w2, [x19,188] mov w1, 0 lsl w2, w2, 9 ldr x0, [x0,56] bl ftl_memset -.L1819: - cbnz w21, .L1821 +.L1897: + cbnz w21, .L1899 add x0, x20, :lo12:.LANCHOR4 - adrp x26, .LC108 + adrp x26, .LC117 mov w22, w21 - add x26, x26, :lo12:.LC108 + add x26, x26, :lo12:.LC117 mov w24, 1 ldrh w27, [x0,92] -.L1822: +.L1900: ldrb w0, [x19,9] cmp w0, w27 - bls .L1857 + bls .L1935 mov w0, w27 bl FlashTestBlk - cbz w0, .L1823 + cbz w0, .L1901 mov w1, w27 mov x0, x26 add w22, w22, 1 @@ -12137,21 +12597,21 @@ FlashMakeFactorBbt: ldr w3, [x2,x1] orr w0, w3, w0 str w0, [x2,x1] -.L1823: +.L1901: add w27, w27, 1 uxth w27, w27 - b .L1822 -.L1857: - adrp x26, .LC108 + b .L1900 +.L1935: + adrp x26, .LC117 ldr w24, [x29,124] sub w27, w23, #50 - add x26, x26, :lo12:.LC108 -.L1825: + add x26, x26, :lo12:.LC117 +.L1903: cmp w24, w27 - ble .L1858 + ble .L1936 mov w0, w24 bl FlashTestBlk - cbz w0, .L1826 + cbz w0, .L1904 mov w1, w24 mov x0, x26 bl printk @@ -12164,46 +12624,46 @@ FlashMakeFactorBbt: ldr w4, [x3,x1] orr w0, w4, w0 str w0, [x3,x1] -.L1826: +.L1904: sub w2, w24, #1 uxth w24, w2 - b .L1825 -.L1858: + b .L1903 +.L1936: add x1, x20, :lo12:.LANCHOR4 ldrb w0, [x19,9] ldr w2, [x1,92] sub w0, w0, w2 cmp w22, w0 - bcc .L1821 + bcc .L1899 ldrh w2, [x19,188] ldr x0, [x1,56] mov w1, 0 lsl w2, w2, 9 bl ftl_memset -.L1821: - adrp x24, .LC109 +.L1899: + adrp x24, .LC118 ldr w27, [x29,124] mul w26, w21, w23 - add x24, x24, :lo12:.LC109 + add x24, x24, :lo12:.LC118 lsl x25, x25, 1 mov w22, -3872 -.L1829: +.L1907: mov w2, w27 mov x0, x24 mov w1, w21 bl printk add x0, x20, :lo12:.LANCHOR4 ldr x2, [x0,56] -.L1830: +.L1908: ubfx x0, x27, 5, 11 ldr w0, [x2,x0,lsl 2] lsr w0, w0, w27 and w1, w0, 1 - tbz x0, 0, .L1859 + tbz x0, 0, .L1937 sub w27, w27, #1 uxth w27, w27 - b .L1830 -.L1859: + b .L1908 +.L1937: add x0, x20, :lo12:.LANCHOR4 add x2, x0, x25 strh w27, [x2,144] @@ -12228,15 +12688,15 @@ FlashMakeFactorBbt: mov w3, w1 bl FlashProgPages ldr w0, [x29,184] - cbz w0, .L1835 + cbz w0, .L1913 sub w27, w27, #1 uxth w27, w27 - b .L1829 -.L1835: + b .L1907 +.L1913: add w21, w21, 1 uxtb w21, w21 - b .L1805 -.L1856: + b .L1883 +.L1934: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -12252,60 +12712,62 @@ FtlLowFormatEraseBlock: stp x29, x30, [sp, -128]! add x29, sp, 0 stp x19, x20, [sp,16] - adrp x20, .LANCHOR2 - stp x25, x26, [sp,64] - uxth w26, w0 - add x0, x20, :lo12:.LANCHOR2 stp x21, x22, [sp,32] - stp x23, x24, [sp,48] - stp x27, x28, [sp,80] - uxtb w25, w1 - ldr w2, [x0,-96] - mov w0, 0 - cbnz w2, .L1861 + adrp x20, .LANCHOR2 adrp x22, .LANCHOR0 - mov w28, w2 - add x23, x22, :lo12:.LANCHOR0 - mov w21, w2 - mov w24, w2 - mov w27, 56 - ldrb w0, [x23,120] + stp x25, x26, [sp,64] + stp x23, x24, [sp,48] + uxtb w25, w1 + add x24, x22, :lo12:.LANCHOR0 + add x1, x20, :lo12:.LANCHOR2 + uxth w26, w0 + stp x27, x28, [sp,80] + ldrb w0, [x24,1937] + ldr w2, [x1,-96] str w0, [x29,120] - str w26, [x23,2100] -.L1862: - ldrh w0, [x23,1944] + mov w0, 0 + cbnz w2, .L1939 + ldrb w0, [x24,120] + mov w28, w2 + str w0, [x29,124] + mov w21, w2 + str w26, [x1,2036] + mov w19, w2 + mov w27, 56 +.L1940: + ldrh w0, [x24,1948] cmp w0, w28 - bls .L1906 + bls .L1984 add x1, x20, :lo12:.LANCHOR2 umull x0, w28, w27 ldr x1, [x1,-88] str wzr, [x1,x0] - add x0, x23, 1976 + add x0, x24, 1976 mov w1, w26 ldrb w0, [x0,w28,sxtw] bl V2P_block - uxth w19, w0 - mov w1, w19 - cbz w25, .L1863 + uxth w23, w0 + mov w1, w23 + cbz w25, .L1941 str x1, [x29,112] bl IsBlkInVendorPart ldr x1, [x29,112] - cbnz w0, .L1864 -.L1863: + cbnz w0, .L1942 +.L1941: mov w0, w1 bl FtlBbmIsBadBlock - cbnz w0, .L1865 + cbnz w0, .L1943 add x3, x20, :lo12:.LANCHOR2 - lsl w19, w19, 10 + lsl w23, w23, 10 umull x0, w21, w27 mov w2, 4 ldr x1, [x3,-88] add x1, x1, x0 - str w19, [x1,4] + str w23, [x1,4] ldr x1, [x3,-88] ldr x3, [x3,2128] add x1, x1, x0 - ldrh w0, [x23,2030] + ldrh w0, [x24,2030] mul w0, w21, w0 add w21, w21, 1 str xzr, [x1,8] @@ -12313,21 +12775,19 @@ FtlLowFormatEraseBlock: uxth w21, w21 add x0, x3, x0, sxtw 2 str x0, [x1,16] - b .L1864 -.L1865: - add w24, w24, 1 - uxth w24, w24 -.L1864: + b .L1942 +.L1943: + add w19, w19, 1 + uxth w19, w19 +.L1942: add w2, w28, 1 uxth w28, w2 - b .L1862 -.L1906: - mov w19, w24 - mov w0, w24 - cbz w21, .L1861 - ldr w0, [x29,120] + b .L1940 +.L1984: + cbz w21, .L1963 + ldr w0, [x29,124] mov w2, w21 - mov x24, 0 + strb wzr, [x24,1937] mov x27, 56 cmp w0, wzr add x0, x20, :lo12:.LANCHOR2 @@ -12335,120 +12795,125 @@ FtlLowFormatEraseBlock: mov w1, w23 ldr x0, [x0,-88] bl FlashEraseBlocks -.L1868: + ldrb w0, [x29,120] + strb w0, [x24,1937] + mov x24, 0 +.L1946: cmp w21, w24, uxth - bls .L1907 + bls .L1985 add x1, x20, :lo12:.LANCHOR2 mul x0, x24, x27 ldr x1, [x1,-88] add x2, x1, x0 ldr w0, [x1,x0] cmn w0, #1 - bne .L1869 + bne .L1947 ldr w0, [x2,4] add w19, w19, 1 lsr w0, w0, 10 uxth w19, w19 bl FtlBbmMapBadBlock -.L1869: +.L1947: add x24, x24, 1 - b .L1868 -.L1907: - cbnz w25, .L1871 + b .L1946 +.L1985: + cbnz w25, .L1949 + mov w0, 1 uxth w23, w23 mov w28, 6 - mov w27, 1 - b .L1872 -.L1871: + str w0, [x29,124] + b .L1950 +.L1949: add x0, x22, :lo12:.LANCHOR0 - ldrh w27, [x0,2020] + ldrh w1, [x0,2020] ldrb w0, [x0,120] - cbnz w0, .L1888 - lsr w28, w27, 2 + str w1, [x29,124] + cbnz w0, .L1966 + uxtw x0, w1 mov w23, 1 - b .L1872 -.L1888: + lsr w28, w0, 2 + b .L1950 +.L1966: mov w23, 1 mov w28, w23 -.L1872: - add x0, x22, :lo12:.LANCHOR0 +.L1950: mov w24, 0 - str x0, [x29,120] -.L1881: - mov w22, 0 - mov w21, w22 -.L1873: - ldr x0, [x29,120] - ldrh w0, [x0,1944] - cmp w0, w22 - bls .L1908 + add x22, x22, :lo12:.LANCHOR0 +.L1959: + mov w27, 0 + mov w21, w27 +.L1951: + ldrh w0, [x22,1948] + cmp w0, w27 + bls .L1986 add x1, x20, :lo12:.LANCHOR2 mov w0, 56 - umull x0, w22, w0 + umull x0, w27, w0 ldr x1, [x1,-88] str wzr, [x1,x0] + add x0, x22, 1976 mov w1, w26 - ldr x0, [x29,120] - add x0, x0, 1976 - ldrb w0, [x0,w22,sxtw] + ldrb w0, [x0,w27,sxtw] bl V2P_block uxth w2, w0 str w2, [x29,112] mov w1, w2 - cbz w25, .L1874 + cbz w25, .L1952 str x1, [x29,104] bl IsBlkInVendorPart ldr x1, [x29,104] - cbnz w0, .L1875 -.L1874: + cbnz w0, .L1953 +.L1952: mov w0, w1 bl FtlBbmIsBadBlock - cbnz w0, .L1875 - add x3, x20, :lo12:.LANCHOR2 + cbnz w0, .L1953 + add x2, x20, :lo12:.LANCHOR2 mov w0, 56 - ldr w2, [x29,112] + ldr w3, [x29,112] umull x0, w21, w0 - ldr x1, [x3,-88] - add w4, w24, w2, lsl 10 - mov w2, 4 + ldr x1, [x2,-88] + add w3, w24, w3, lsl 10 add x1, x1, x0 - str w4, [x1,4] - ldr x1, [x3,-88] + str w3, [x1,4] + mov w3, 4 + ldr x1, [x2,-88] add x1, x1, x0 - ldr x0, [x3,2104] - ldr x3, [x3,2112] + ldr x0, [x2,2104] + ldr x2, [x2,2112] str x0, [x1,8] - ldr x0, [x29,120] - ldrh w0, [x0,2030] + ldrh w0, [x22,2030] mul w0, w21, w0 add w21, w21, 1 - sdiv w0, w0, w2 + sdiv w0, w0, w3 uxth w21, w21 - add x0, x3, x0, sxtw 2 + add x0, x2, x0, sxtw 2 str x0, [x1,16] -.L1875: - add w2, w22, 1 - uxth w22, w2 - b .L1873 -.L1908: - cbz w21, .L1885 +.L1953: + add w4, w27, 1 + uxth w27, w4 + b .L1951 +.L1986: + cbz w21, .L1963 add x0, x20, :lo12:.LANCHOR2 mov w1, w21 mov w2, w23 mov w3, 1 + strb wzr, [x22,1937] ldr x0, [x0,-88] bl FlashProgPages + ldrb w0, [x29,120] mov x1, 0 -.L1878: + strb w0, [x22,1937] +.L1956: cmp w21, w1, uxth - bls .L1909 + bls .L1987 add x2, x20, :lo12:.LANCHOR2 mov x0, 56 mul x0, x1, x0 ldr x2, [x2,-88] add x3, x2, x0 ldr w0, [x2,x0] - cbz w0, .L1879 + cbz w0, .L1957 ldr w0, [x3,4] add w19, w19, 1 str x1, [x29,112] @@ -12456,46 +12921,47 @@ FtlLowFormatEraseBlock: uxth w19, w19 bl FtlBbmMapBadBlock ldr x1, [x29,112] -.L1879: +.L1957: add x1, x1, 1 - b .L1878 -.L1909: + b .L1956 +.L1987: add w24, w24, w28 + ldr w0, [x29,124] uxth w24, w24 - cmp w24, w27 - bcc .L1881 + cmp w24, w0 + bcc .L1959 mov x22, 0 mov x24, 56 -.L1882: +.L1960: cmp w21, w22, uxth - bls .L1910 - cbz w25, .L1883 + bls .L1988 + cbz w25, .L1961 add x1, x20, :lo12:.LANCHOR2 mul x0, x22, x24 ldr x1, [x1,-88] add x2, x1, x0 ldr w0, [x1,x0] - cbnz w0, .L1883 + cbnz w0, .L1961 ldr w0, [x2,4] mov w1, 1 lsr w0, w0, 10 bl FtlFreeSysBlkQueueIn -.L1883: +.L1961: add x22, x22, 1 - b .L1882 -.L1910: + b .L1960 +.L1988: cmp w26, 63 - bls .L1889 - cbz w25, .L1885 -.L1889: + bls .L1967 + cbz w25, .L1963 +.L1967: add x20, x20, :lo12:.LANCHOR2 mov w1, w23 mov w2, w21 ldr x0, [x20,-88] bl FlashEraseBlocks -.L1885: +.L1963: mov w0, w19 -.L1861: +.L1939: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -12511,144 +12977,139 @@ FtlBbmTblFlush: stp x29, x30, [sp, -96]! add x29, sp, 0 stp x21, x22, [sp,32] - adrp x21, .LANCHOR2 - add x2, x21, :lo12:.LANCHOR2 + adrp x22, .LANCHOR2 + add x2, x22, :lo12:.LANCHOR2 stp x19, x20, [sp,16] stp x23, x24, [sp,48] stp x25, x26, [sp,64] stp x27, x28, [sp,80] ldr w1, [x2,-96] - cbnz w1, .L1913 + cbnz w1, .L1991 adrp x19, .LANCHOR4 adrp x20, .LANCHOR0 add x24, x19, :lo12:.LANCHOR4 add x20, x20, :lo12:.LANCHOR0 - ldr x0, [x2,-64] - mov x23, 0 + ldr x0, [x2,2072] + mov x21, 0 ldr x2, [x2,2120] - add x22, x20, 2104 + add x23, x20, 2104 str x2, [x24,176] ldrh w2, [x20,2028] str x0, [x24,168] bl ftl_memset -.L1914: - ldrh w1, [x20,1966] - mov w0, w23 - add x23, x23, 1 +.L1992: + ldrh w1, [x20,1970] + mov w0, w21 + add x21, x21, 1 cmp w0, w1 - bge .L1922 - add x1, x21, :lo12:.LANCHOR2 + bge .L2000 + add x1, x22, :lo12:.LANCHOR2 ldr x3, [x24,168] ldrh w2, [x1,2248] - add x1, x22, x23, lsl 3 + add x1, x23, x21, lsl 3 ldr x1, [x1,24] mul w0, w0, w2 add x0, x3, x0, sxtw 2 lsl w2, w2, 2 bl ftl_memcpy - b .L1914 -.L1922: + b .L1992 +.L2000: add x19, x19, :lo12:.LANCHOR4 mov w1, 255 add x19, x19, 160 mov w2, 16 - mov w28, 0 - adrp x25, .LC110 - ldr x27, [x19,16] - adrp x26, .LC111 - mov w24, w28 - add x25, x25, :lo12:.LC110 - mov x0, x27 - add x26, x26, :lo12:.LC111 + mov w24, 0 + adrp x26, .LC119 + ldr x21, [x19,16] + adrp x27, .LC120 + mov w25, w24 + add x26, x26, :lo12:.LC119 + mov x0, x21 + add x27, x27, :lo12:.LC120 bl ftl_memset mov w0, -3887 - strh w0, [x27] - ldr w0, [x22,8] - str w0, [x27,4] + strh w0, [x21] + ldr w0, [x23,8] + str w0, [x21,4] ldrh w0, [x20,2104] - strh w0, [x27,2] - ldrh w0, [x22,4] - strh w0, [x27,8] - ldrh w0, [x22,6] - strh w0, [x27,10] - ldr w0, [x20,1940] - strh w0, [x27,12] -.L1916: - add x23, x21, :lo12:.LANCHOR2 + strh w0, [x21,2] + ldrh w0, [x23,4] + strh w0, [x21,8] + ldrh w0, [x23,6] + strh w0, [x21,10] + ldr w0, [x20,1944] + strh w0, [x21,12] +.L1994: + add x28, x22, :lo12:.LANCHOR2 ldrh w1, [x20,2104] ldrh w2, [x20,2106] ldrh w3, [x20,2108] - ldr x0, [x23,-64] + ldr x0, [x28,2072] str x0, [x19,8] - ldr x0, [x23,2120] + ldr x0, [x28,2120] str x0, [x19,16] orr w0, w2, w1, lsl 10 str w0, [x19,4] - mov x0, x25 - ldrh w4, [x27,10] + mov x0, x26 + ldrh w4, [x21,10] str wzr, [x19] bl printk - mov w1, 1 - mov x0, x19 - mov w2, w1 - mov w3, w1 - bl FlashProgPages ldrh w0, [x20,2020] ldrh w1, [x20,2106] sub w0, w0, #1 cmp w1, w0 - blt .L1917 - ldr w1, [x20,2112] + blt .L1995 + ldr w0, [x20,2112] + strh wzr, [x20,2106] + add w0, w0, 1 + str w0, [x20,2112] + str w0, [x21,4] ldrh w0, [x20,2104] - add w1, w1, 1 - str w1, [x20,2112] - str w1, [x27,4] - strh w0, [x27,8] ldrh w1, [x20,2108] + strh w0, [x21,8] strh w0, [x20,2108] - ldr x0, [x23,-88] + ldr x0, [x28,-88] strh w1, [x20,2104] lsl w1, w1, 10 str w1, [x19,4] str w1, [x0,4] mov w1, 1 mov w2, w1 - strh wzr, [x20,2106] - ldr x0, [x23,-88] + ldr x0, [x28,-88] bl FlashEraseBlocks +.L1995: mov w1, 1 mov x0, x19 mov w2, w1 mov w3, w1 bl FlashProgPages -.L1917: ldrh w0, [x20,2106] add w0, w0, 1 strh w0, [x20,2106] ldr w0, [x19] cmn w0, #1 - bne .L1918 + bne .L1996 ldr w1, [x19,4] - mov x0, x26 - add w28, w28, 1 + mov x0, x27 + add w24, w24, 1 bl printk - uxth w28, w28 - cmp w28, 3 - bls .L1916 - adrp x0, .LC112 + uxth w24, w24 + cmp w24, 3 + bls .L1994 + adrp x0, .LC121 ldr w1, [x19,4] - add x0, x0, :lo12:.LC112 - mov w2, w28 - add x21, x21, :lo12:.LANCHOR2 + add x0, x0, :lo12:.LC121 + mov w2, w24 + add x22, x22, :lo12:.LANCHOR2 bl printk mov w0, 1 - str w0, [x21,-96] - b .L1913 -.L1918: - cbnz w24, .L1913 - mov w24, 1 - b .L1916 -.L1913: + str w0, [x22,-96] + b .L1991 +.L1996: + cbnz w25, .L1991 + mov w25, 1 + b .L1994 +.L1991: mov w0, 0 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -12665,94 +13126,96 @@ allocate_data_superblock: stp x29, x30, [sp, -144]! add x29, sp, 0 stp x21, x22, [sp,32] - adrp x21, .LANCHOR2 + adrp x22, .LANCHOR2 stp x19, x20, [sp,16] - add x19, x21, :lo12:.LANCHOR2 + add x19, x22, :lo12:.LANCHOR2 stp x23, x24, [sp,48] stp x25, x26, [sp,64] ldr w1, [x19,-96] stp x27, x28, [sp,80] - cbnz w1, .L1924 - adrp x22, .LANCHOR0 + cbnz w1, .L2002 mov x20, x0 - add x24, x19, 96 - sub x25, x19, #16 - mov x23, x22 -.L1925: - cmp x20, x24 - bne .L1926 - ldrh w2, [x19,-8] - ldr w4, [x19,876] + add x23, x19, 136 + adrp x21, .LANCHOR0 + mov w24, 7 + add x25, x19, 24 +.L2003: + cmp x20, x23 + bne .L2004 + ldrh w2, [x19,32] + ldr w4, [x19,860] lsr w3, w2, 1 add w1, w3, 1 mul w0, w2, w4 add w1, w1, w0, lsr 2 - ldr w0, [x19,160] + add x0, x21, :lo12:.LANCHOR0 uxth w1, w1 - cbz w0, .L1927 - ldr w0, [x19,220] - cmp w0, 29 - bhi .L1927 + ldr w0, [x0,1940] + cbz w0, .L2005 + ldr w0, [x19,256] + cmp w0, 39 + bhi .L2005 cmp w0, 2 mov w1, 0 - bls .L1928 - tbz x2, 0, .L1955 - cbz w4, .L1928 -.L1955: + bls .L2006 + tbz x2, 0, .L2033 + cbz w4, .L2006 +.L2033: mov w1, w3 - b .L1927 -.L1926: + b .L2005 +.L2004: ldrb w0, [x20,8] mov w1, 0 cmp w0, 1 - bne .L1928 - add x0, x22, :lo12:.LANCHOR0 - ldrh w2, [x0,1964] - cmp w2, 1 - beq .L1928 - ldrb w0, [x0,120] - cbnz w0, .L1928 - ldr w2, [x19,160] - ldrh w0, [x19,-8] + bne .L2006 + add x2, x21, :lo12:.LANCHOR0 + ldrh w0, [x2,1968] + cmp w0, 1 + beq .L2006 + ldrb w0, [x2,120] + cbnz w0, .L2006 + ldr w2, [x2,1940] + ldrh w0, [x19,32] lsr w1, w0, 3 - cbz w2, .L1927 - ldr w2, [x19,220] + cbz w2, .L2005 + ldr w2, [x19,256] cmp w2, 1 - bhi .L1927 - mov w1, 7 - mul w1, w0, w1 + bhi .L2005 + mul w1, w0, w24 lsr w1, w1, 3 -.L1927: - cbz w1, .L1928 +.L2005: + cbz w1, .L2006 sub w1, w1, #1 uxth w1, w1 -.L1928: +.L2006: ldrb w2, [x20,8] mov x0, x25 + add x27, x21, :lo12:.LANCHOR0 bl List_pop_index_node - uxth w27, w0 - ldrh w0, [x19,-8] + uxth w28, w0 + ldrh w0, [x19,32] sub w0, w0, #1 - strh w0, [x19,-8] - strh w27, [x20] + strh w0, [x19,32] + ldrh w0, [x27,1956] + cmp w0, w28 + bls .L2003 + ubfiz x26, x28, 1, 16 + ldr x0, [x19] + ldrh w0, [x0,x26] + cbnz w0, .L2003 + strh w28, [x20] mov x0, x20 bl make_superblock ldrb w0, [x20,7] - cbz w0, .L1930 - add x0, x22, :lo12:.LANCHOR0 - mov x3, 56 - mov w6, 65535 - ldrh w5, [x0,1944] + cbz w0, .L2058 mov x0, 0 - mov w26, w0 - b .L1931 -.L1930: - ubfiz x27, x27, 1, 16 - ldr x0, [x19,-40] - mov w1, -1 - strh w1, [x0,x27] - b .L1925 -.L1934: + ldrh w5, [x27,1948] + mov x3, 56 + mov w27, w0 + mov w6, 65535 +.L2010: + cmp w5, w0, uxth + bls .L2061 ldr x4, [x19,-88] madd x1, x0, x3, x4 str xzr, [x1,16] @@ -12760,124 +13223,121 @@ allocate_data_superblock: add x1, x20, x0, lsl 1 ldrh w1, [x1,16] cmp w1, w6 - beq .L1933 - umull x2, w26, w3 - add w26, w26, 1 + beq .L2011 + umull x2, w27, w3 + add w27, w27, 1 lsl w1, w1, 10 add x2, x4, x2 - uxth w26, w26 + uxth w27, w27 str w1, [x2,4] -.L1933: +.L2011: add x0, x0, 1 -.L1931: - cmp w5, w0, uxth - bhi .L1934 - cmp x20, x19 - uxtw x28, w27 - bne .L1935 - ldr w0, [x19,160] - cbz w0, .L1935 - ldr x0, [x19,-80] - ldrh w0, [x0,x28,lsl 1] - cmp w0, 30 - bls .L1935 - strb wzr, [x19,8] -.L1935: - ldrb w0, [x20,8] - cbnz w0, .L1936 - lsl x0, x28, 1 + b .L2010 +.L2061: + add x0, x19, 40 + cmp x20, x0 + bne .L2013 + add x1, x21, :lo12:.LANCHOR0 + ldr w1, [x1,1940] + cbz w1, .L2013 ldr x1, [x19,-80] - mov w2, 2 - ldrh w3, [x1,x0] - cbz w3, .L1980 - add x2, x23, :lo12:.LANCHOR0 - ldrh w2, [x2,2008] - add w2, w3, w2 -.L1980: - strh w2, [x1,x0] - mov w1, 0 - ldr w0, [x19,204] - add w0, w0, 1 - str w0, [x19,204] - mov w0, w27 - bl ftl_set_blk_mode - b .L1939 -.L1936: - lsl x0, x28, 1 - ldr x2, [x19,-80] - ldrh w1, [x2,x0] - add w1, w1, 1 - strh w1, [x2,x0] - ldr w0, [x19,208] - add w0, w0, 1 - str w0, [x19,208] - mov w0, w27 - bl ftl_set_blk_mode.part.8 -.L1939: - lsl x28, x28, 1 + ldrh w1, [x1,x26] + cmp w1, 40 + bls .L2013 + strb wzr, [x19,48] +.L2013: + ldrb w0, [x20,8] + cbnz w0, .L2014 ldr x0, [x19,-80] - ldr w1, [x19,216] - ldrh w0, [x0,x28] + mov w1, 2 + ldrh w2, [x0,x26] + cbz w2, .L2059 + add x1, x21, :lo12:.LANCHOR0 + ldrh w1, [x1,2008] + add w1, w2, w1 +.L2059: + strh w1, [x0,x26] + mov w1, 0 + ldr w0, [x19,240] + add w0, w0, 1 + str w0, [x19,240] + mov w0, w28 + bl ftl_set_blk_mode + b .L2017 +.L2014: + ldr x1, [x19,-80] + ldrh w0, [x1,x26] + add w0, w0, 1 + strh w0, [x1,x26] + ldr w0, [x19,244] + add w0, w0, 1 + str w0, [x19,244] + mov w0, w28 + bl ftl_set_blk_mode.part.9 +.L2017: + ldr x0, [x19,-80] + ldr w1, [x19,252] + ldrh w0, [x0,x26] cmp w0, w1 - bls .L1940 - str w0, [x19,216] -.L1940: - add x2, x23, :lo12:.LANCHOR0 - ldr w3, [x19,204] - ldr w0, [x19,208] + bls .L2018 + str w0, [x19,252] +.L2018: + add x2, x21, :lo12:.LANCHOR0 + ldr w3, [x19,240] + ldr w0, [x19,244] ldrh w1, [x2,2008] madd w0, w1, w3, w0 - ldrh w1, [x2,1952] + ldrh w1, [x2,1956] mov x3, 56 udiv w0, w0, w1 ldr x1, [x19,2160] - str w0, [x19,212] + str w0, [x19,248] ldr w0, [x1,16] add w0, w0, 1 str w0, [x1,16] mov x0, 0 -.L1941: - cmp w26, w0, uxth - bls .L1982 +.L2019: + cmp w27, w0, uxth + bls .L2062 ldr x1, [x19,-88] madd x1, x0, x3, x1 add x0, x0, 1 ldr w2, [x1,4] and w2, w2, -1024 str w2, [x1,4] - b .L1941 -.L1982: - add x0, x23, :lo12:.LANCHOR0 + b .L2019 +.L2062: + add x0, x21, :lo12:.LANCHOR0 ldrb w0, [x0,120] - cbz w0, .L1943 + cbz w0, .L2021 ldrb w0, [x20,8] cmp w0, 1 ldr x0, [x19,-88] - bne .L1944 + bne .L2022 mov w1, 0 - b .L1981 -.L1944: + b .L2060 +.L2022: mov w1, 1 -.L1981: - mov w2, w26 +.L2060: + mov w2, w27 bl FlashEraseBlocks -.L1943: +.L2021: ldrb w1, [x20,8] - mov w2, w26 + mov w2, w27 ldr x0, [x19,-88] bl FlashEraseBlocks mov x1, 0 mov x4, 56 mov w2, w1 -.L1945: - cmp w26, w1, uxth - bls .L1983 +.L2023: + cmp w27, w1, uxth + bls .L2063 mul x0, x1, x4 ldr x3, [x19,-88] add x5, x3, x0 ldr w3, [x3,x0] cmn w3, #1 - bne .L1946 + bne .L2024 ldr w0, [x5,4] add w2, w2, 1 str x4, [x29,104] @@ -12896,40 +13356,41 @@ allocate_data_superblock: ldrb w0, [x20,7] sub w0, w0, #1 strb w0, [x20,7] -.L1946: +.L2024: add x1, x1, 1 - b .L1945 -.L1983: - cbz w2, .L1948 - mov w0, w27 + b .L2023 +.L2063: + cbz w2, .L2026 + mov w0, w28 bl update_multiplier_value bl FtlBbmTblFlush -.L1948: +.L2026: ldrb w0, [x20,7] - cbnz w0, .L1949 - ldr x0, [x19,-40] + cbnz w0, .L2027 +.L2058: + ldr x0, [x19] mov w1, -1 - strh w1, [x0,x28] - b .L1925 -.L1949: + strh w1, [x0,x26] + b .L2003 +.L2027: adrp x1, .LANCHOR0 - add x21, x21, :lo12:.LANCHOR2 + add x2, x22, :lo12:.LANCHOR2 add x1, x1, :lo12:.LANCHOR0 strh wzr, [x20,2] strb wzr, [x20,6] ldrh w1, [x1,2018] - strh w27, [x20] + strh w28, [x20] mul w0, w0, w1 - ldr w1, [x21,196] + ldr w1, [x2,232] str w1, [x20,12] uxth w0, w0 add w1, w1, 1 strh w0, [x20,4] - str w1, [x21,196] - ldr x1, [x21,-40] + str w1, [x2,232] + ldr x1, [x22,#:lo12:.LANCHOR2] ldrh w2, [x20] strh w0, [x1,x2,lsl 1] -.L1924: +.L2002: mov w0, 0 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -12951,63 +13412,63 @@ FtlGcFreeBadSuperBlk: add x19, x19, :lo12:.LANCHOR2 stp x23, x24, [sp,48] uxth w23, w0 - ldrh w0, [x19,956] + ldrh w0, [x19,944] stp x21, x22, [sp,32] mov w21, 0 - cbz w0, .L1986 + cbz w0, .L2066 adrp x22, .LANCHOR0 - adrp x24, .LC113 + adrp x24, .LC122 add x22, x22, :lo12:.LANCHOR0 - add x24, x24, :lo12:.LC113 -.L1994: - ldrh w0, [x22,1944] + add x24, x24, :lo12:.LC122 +.L2074: + ldrh w0, [x22,1948] cmp w0, w21 - bls .L1995 + bls .L2075 add x0, x22, 1976 mov w1, w23 mov w20, 0 ldrb w0, [x0,w21,sxtw] bl V2P_block uxth w25, w0 -.L1987: - ldrh w0, [x19,956] +.L2067: + ldrh w0, [x19,944] cmp w0, w20 - bls .L1996 - add x0, x19, 960 + bls .L2076 + add x0, x19, 952 ldrh w0, [x0,w20,sxtw 1] cmp w0, w25 - bne .L1988 + bne .L2068 mov w1, w25 mov x0, x24 bl printk mov w0, w25 bl FtlBbmMapBadBlock bl FtlBbmTblFlush - ldrh w2, [x19,956] + ldrh w2, [x19,944] mov w3, w20 -.L1989: +.L2069: cmp w3, w2 - bcs .L1997 - add x4, x19, 960 + bcs .L2077 + add x4, x19, 952 add w0, w3, 1 ldrh w1, [x4,w0,sxtw 1] strh w1, [x4,w3,sxtw 1] uxth w3, w0 - b .L1989 -.L1997: + b .L2069 +.L2077: sub w2, w2, #1 - strh w2, [x19,956] -.L1988: + strh w2, [x19,944] +.L2068: add w20, w20, 1 uxth w20, w20 - b .L1987 -.L1996: + b .L2067 +.L2076: add w21, w21, 1 uxth w21, w21 - b .L1994 -.L1995: + b .L2074 +.L2075: bl FtlGcReFreshBadBlk -.L1986: +.L2066: mov w0, 0 ldr x25, [sp,64] ldp x19, x20, [sp,16] @@ -13023,50 +13484,49 @@ update_vpc_list: stp x29, x30, [sp, -32]! add x29, sp, 0 stp x19, x20, [sp,16] + adrp x20, .LANCHOR2 uxth w19, w0 - adrp x0, .LANCHOR2 - add x1, x0, :lo12:.LANCHOR2 - ubfiz x2, x19, 1, 16 - mov x20, x0 - ldr x3, [x1,-40] - ldrh w2, [x3,x2] - cbnz w2, .L1999 - ldrh w3, [x1,296] - cmp w3, w19 - bne .L2000 + ubfiz x0, x19, 1, 16 + add x1, x20, :lo12:.LANCHOR2 + ldr x2, [x20,#:lo12:.LANCHOR2] + ldrh w2, [x2,x0] + cbnz w2, .L2079 + ldrh w0, [x1,280] + cmp w0, w19 + bne .L2080 mov w0, -1 - strh w0, [x1,296] - b .L2001 -.L2000: - ldrh w3, [x0,#:lo12:.LANCHOR2] + strh w0, [x1,280] + b .L2081 +.L2080: + ldrh w3, [x1,40] mov w0, w2 cmp w3, w19 - beq .L2002 - ldrh w3, [x1,48] + beq .L2082 + ldrh w3, [x1,88] cmp w3, w19 - beq .L2002 - ldrh w1, [x1,96] + beq .L2082 + ldrh w1, [x1,136] cmp w1, w19 - beq .L2002 -.L2001: + beq .L2082 +.L2081: add x20, x20, :lo12:.LANCHOR2 mov w1, w19 - sub x0, x20, #48 + sub x0, x20, #8 bl List_remove_node - ldrh w0, [x20,-24] + ldrh w0, [x20,16] sub w0, w0, #1 - strh w0, [x20,-24] + strh w0, [x20,16] mov w0, w19 bl free_data_superblock mov w0, w19 bl FtlGcFreeBadSuperBlk mov w0, 1 - b .L2002 -.L1999: + b .L2082 +.L2079: mov w0, w19 bl List_update_data_list mov w0, 0 -.L2002: +.L2082: ldp x19, x20, [sp,16] ldp x29, x30, [sp], 32 ret @@ -13075,51 +13535,78 @@ update_vpc_list: .global decrement_vpc_count .type decrement_vpc_count, %function decrement_vpc_count: - stp x29, x30, [sp, -48]! - uxth w1, w0 - mov w0, 65535 + stp x29, x30, [sp, -64]! add x29, sp, 0 - str x19, [sp,16] - cmp w1, w0 - adrp x2, .LANCHOR2 - beq .L2007 - add x0, x2, :lo12:.LANCHOR2 - ubfiz x3, x1, 1, 16 - ldr x0, [x0,-40] - ldrh w19, [x0,x3] - cbnz w19, .L2008 - adrp x0, .LC114 - mov w2, w19 - add x0, x0, :lo12:.LC114 - bl printk - b .L2012 -.L2008: - sub w19, w19, #1 - strh w19, [x0,x3] -.L2007: - add x19, x2, :lo12:.LANCHOR2 + stp x19, x20, [sp,16] + uxth w19, w0 mov w0, 65535 - ldrh w2, [x19,2336] - cmp w2, w0 - bne .L2010 - strh w1, [x19,2336] -.L2012: + stp x21, x22, [sp,32] + str x23, [sp,48] + cmp w19, w0 + adrp x20, .LANCHOR2 + beq .L2087 + ubfiz x21, x19, 1, 16 + ldr x0, [x20,#:lo12:.LANCHOR2] + add x22, x20, :lo12:.LANCHOR2 + ldrh w2, [x0,x21] + cbnz w2, .L2088 + adrp x0, .LC123 + mov w1, w19 + add x0, x0, :lo12:.LC123 + add x23, x22, 24 + bl printk + ldr x0, [x20,#:lo12:.LANCHOR2] + mov w1, 32 + strh w1, [x0,x21] + mov x0, x23 + mov w1, w19 + bl test_node_in_list + cbz w0, .L2089 + mov w1, w19 + mov x0, x23 + bl List_remove_node + ldrh w0, [x22,32] + sub w0, w0, #1 + strh w0, [x22,32] + mov w0, w19 + bl INSERT_DATA_LIST + ldr x2, [x20,#:lo12:.LANCHOR2] + adrp x0, .LC124 + add x0, x0, :lo12:.LC124 + mov w1, w19 + ldrh w2, [x2,x21] + bl printk +.L2089: + mov w0, w19 + bl FtlGcRefreshBlock + b .L2096 +.L2088: + sub w2, w2, #1 + strh w2, [x0,x21] +.L2087: + add x20, x20, :lo12:.LANCHOR2 + mov w0, 65535 + ldrh w1, [x20,2336] + cmp w1, w0 + bne .L2091 + strh w19, [x20,2336] +.L2096: mov w0, 0 - b .L2009 -.L2010: - cmp w2, w1 - str x1, [x29,40] + b .L2090 +.L2091: + cmp w1, w19 mov w0, 0 - beq .L2009 - mov w0, w2 + beq .L2090 + mov w0, w1 bl update_vpc_list cmp w0, wzr - ldr x1, [x29,40] cset w0, ne - strh w1, [x19,2336] -.L2009: - ldr x19, [sp,16] - ldp x29, x30, [sp], 48 + strh w19, [x20,2336] +.L2090: + ldp x19, x20, [sp,16] + ldp x21, x22, [sp,32] + ldr x23, [sp,48] + ldp x29, x30, [sp], 64 ret .size decrement_vpc_count, .-decrement_vpc_count .align 2 @@ -13131,79 +13618,79 @@ FtlSlcSuperblockCheck: stp x19, x20, [sp,16] stp x21, x22, [sp,32] ldrh w1, [x0,4] - cbz w1, .L2013 + cbz w1, .L2097 ldrh w1, [x0] mov w20, 65535 cmp w1, w20 - beq .L2013 + beq .L2097 mov x19, x0 ldrb w0, [x0,6] adrp x21, .LANCHOR2 adrp x22, .LANCHOR0 add x0, x0, 8 add x21, x21, :lo12:.LANCHOR2 - add x21, x21, 996 + add x21, x21, 988 ldrh w0, [x19,x0,lsl 1] -.L2017: +.L2101: cmp w0, w20 - bne .L2024 -.L2019: + bne .L2108 +.L2103: ldrb w0, [x19,6] add x1, x22, :lo12:.LANCHOR0 add w0, w0, 1 - ldrh w1, [x1,1944] + ldrh w1, [x1,1948] uxtb w0, w0 strb w0, [x19,6] cmp w1, w0 - bne .L2018 + bne .L2102 ldrh w0, [x19,2] strb wzr, [x19,6] add w0, w0, 1 strh w0, [x19,2] -.L2018: +.L2102: ldrb w0, [x19,6] add x0, x0, 8 ldrh w0, [x19,x0,lsl 1] - b .L2017 -.L2024: + b .L2101 +.L2108: ldrb w1, [x19,8] cmp w1, 1 - bne .L2020 + bne .L2104 add x0, x22, :lo12:.LANCHOR0 ldrb w0, [x0,120] - cbnz w0, .L2020 + cbnz w0, .L2104 ldrh w0, [x19,2] ldrh w0, [x21,w0,sxtw 1] cmp w0, w20 - bne .L2020 + bne .L2104 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, .L2019 + cbnz w1, .L2103 ldrh w0, [x19,2] strb w1, [x19,6] add w0, w0, 1 strh w0, [x19,2] - b .L2013 -.L2020: + b .L2097 +.L2104: adrp x0, .LANCHOR0 add x0, x0, :lo12:.LANCHOR0 ldrb w2, [x0,120] - cbz w2, .L2013 + cbz w2, .L2097 cmp w1, 1 - bne .L2013 + bne .L2097 ldrh w2, [x19,2] ldrh w1, [x0,2020] cmp w2, w1 - bcc .L2013 - adrp x2, .LANCHOR2-40 + bcc .L2097 + adrp x2, .LANCHOR2 ldrh w1, [x19] ldrh w4, [x19,4] lsl x1, x1, 1 - ldr x3, [x2,#:lo12:.LANCHOR2-40] + ldr x3, [x2,#:lo12:.LANCHOR2] ldrh w2, [x3,x1] sub w2, w2, w4 strh w2, [x3,x1] @@ -13211,7 +13698,7 @@ FtlSlcSuperblockCheck: ldrh w0, [x0,2018] strh w0, [x19,2] strb wzr, [x19,6] -.L2013: +.L2097: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x29, x30, [sp], 48 @@ -13234,48 +13721,48 @@ get_new_active_ppa: mov w22, 65535 add x0, x0, 8 adrp x23, .LANCHOR0 - add x21, x21, 996 + add x21, x21, 988 ldrh w0, [x19,x0,lsl 1] -.L2026: +.L2110: cmp w0, w22 adrp x20, .LANCHOR0 - bne .L2041 -.L2027: + bne .L2125 +.L2111: ldrb w0, [x19,6] add x1, x23, :lo12:.LANCHOR0 add w0, w0, 1 - ldrh w1, [x1,1944] + ldrh w1, [x1,1948] uxtb w0, w0 strb w0, [x19,6] cmp w1, w0 - bne .L2028 + bne .L2112 ldrh w0, [x19,2] strb wzr, [x19,6] add w0, w0, 1 strh w0, [x19,2] -.L2028: +.L2112: ldrb w0, [x19,6] add x0, x0, 8 ldrh w0, [x19,x0,lsl 1] - b .L2026 -.L2041: + b .L2110 +.L2125: ldrb w1, [x19,8] cmp w1, 1 - bne .L2029 + bne .L2113 add x1, x23, :lo12:.LANCHOR0 ldrb w1, [x1,120] - cbnz w1, .L2029 + cbnz w1, .L2113 ldrh w1, [x19,2] ldrh w1, [x21,w1,sxtw 1] cmp w1, w22 - bne .L2029 + bne .L2113 ldrh w0, [x19,4] sub w0, w0, #1 strh w0, [x19,4] ldrh w0, [x19] bl decrement_vpc_count - b .L2027 -.L2029: + b .L2111 +.L2113: ldrh w1, [x19,4] adrp x21, .LANCHOR2 ldrh w22, [x19,2] @@ -13285,56 +13772,56 @@ get_new_active_ppa: orr w22, w22, w0, lsl 10 strh w1, [x19,4] mov w24, w23 - add x21, x21, 996 -.L2030: + add x21, x21, 988 +.L2114: add x0, x20, :lo12:.LANCHOR0 ldrb w1, [x19,6] - ldrh w2, [x0,1944] -.L2032: + ldrh w2, [x0,1948] +.L2116: add w1, w1, 1 uxtb w1, w1 cmp w1, w2 - bne .L2031 + bne .L2115 ldrh w1, [x19,2] add w1, w1, 1 strh w1, [x19,2] mov w1, 0 -.L2031: +.L2115: add x0, x19, x1, sxtw 1 ldrh w0, [x0,16] cmp w0, w23 - beq .L2032 + beq .L2116 ldrb w0, [x19,8] strb w1, [x19,6] cmp w0, 1 - bne .L2037 + bne .L2121 add x0, x20, :lo12:.LANCHOR0 ldrb w0, [x0,120] - cbnz w0, .L2034 + cbnz w0, .L2118 ldrh w0, [x19,2] ldrh w0, [x21,w0,sxtw 1] cmp w0, w24 - bne .L2034 + bne .L2118 ldrh w1, [x19,4] - cbz w1, .L2034 + cbz w1, .L2118 ldrh w0, [x19] sub w1, w1, #1 strh w1, [x19,4] bl decrement_vpc_count - b .L2030 -.L2034: + b .L2114 +.L2118: add x20, x20, :lo12:.LANCHOR0 ldrb w0, [x20,120] - cbz w0, .L2037 + cbz w0, .L2121 ldrh w1, [x19,2] ldrh w0, [x20,2020] cmp w1, w0 - bcc .L2037 - adrp x0, .LANCHOR2-40 + bcc .L2121 + adrp x0, .LANCHOR2 ldrh w1, [x19] ldrh w3, [x19,4] lsl x1, x1, 1 - ldr x0, [x0,#:lo12:.LANCHOR2-40] + ldr x0, [x0,#:lo12:.LANCHOR2] ldrh w2, [x0,x1] sub w2, w2, w3 strh w2, [x0,x1] @@ -13342,7 +13829,7 @@ get_new_active_ppa: ldrh w0, [x20,2018] strh w0, [x19,2] strb wzr, [x19,6] -.L2037: +.L2121: mov w0, w22 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -13356,204 +13843,200 @@ get_new_active_ppa: FtlVpcTblFlush: stp x29, x30, [sp, -96]! add x29, sp, 0 - stp x23, x24, [sp,48] - adrp x23, .LANCHOR2 - str x27, [sp,80] - stp x19, x20, [sp,16] - add x19, x23, :lo12:.LANCHOR2 stp x21, x22, [sp,32] + adrp x22, .LANCHOR2 + stp x19, x20, [sp,16] + add x19, x22, :lo12:.LANCHOR2 + stp x23, x24, [sp,48] stp x25, x26, [sp,64] ldr w0, [x19,-96] - cbnz w0, .L2044 - adrp x24, .LANCHOR4 - ldr x22, [x19,2120] - add x21, x24, :lo12:.LANCHOR4 - ldr x1, [x19,-64] - ldrh w2, [x19,280] - adrp x25, .LANCHOR0 - add x26, x25, :lo12:.LANCHOR0 - add x20, x19, 224 - str x1, [x21,168] - add x21, x21, 160 - str x22, [x21,16] - strh w2, [x22,2] + stp x27, x28, [sp,80] + cbnz w0, .L2128 + adrp x23, .LANCHOR4 + ldr x21, [x19,2120] + add x20, x23, :lo12:.LANCHOR4 + ldr x1, [x19,2072] + ldrh w2, [x19,264] + adrp x24, .LANCHOR0 + add x25, x24, :lo12:.LANCHOR0 + sub x26, x19, #64 + str x1, [x20,168] + add x20, x20, 160 + str x21, [x20,16] + strh w2, [x21,2] mov w2, -3932 - strh w2, [x22] - str w0, [x22,12] - ldr w2, [x19,288] - str w0, [x22,8] + strh w2, [x21] + str w0, [x21,12] + ldr w2, [x19,272] + str w2, [x21,4] + str w0, [x21,8] mov w0, 19539 + ldrh w1, [x19,40] movk w0, 0x4654, lsl 16 - str w2, [x22,4] - str w0, [x19,224] - mov w0, 71 + strh w1, [x19,-50] + ldrh w1, [x19,42] + ldrb w2, [x19,46] + str w0, [x19,-64] + mov w0, 80 + orr w1, w2, w1, lsl 6 + strh w1, [x19,-48] + ldrh w1, [x19,88] movk w0, 0x5000, lsl 16 - str w0, [x19,228] - ldrh w0, [x19,286] - strh w0, [x19,232] - ldrh w0, [x26,1966] - strb w0, [x19,234] - ldrh w0, [x23,#:lo12:.LANCHOR2] - strh w0, [x19,238] - ldrh w0, [x19,2] - ldrb w1, [x19,6] - ldrb w2, [x19,54] - orr w0, w1, w0, lsl 6 - ldrh w1, [x19,48] - strh w1, [x19,242] - ldrh w1, [x19,50] - strh w0, [x19,240] - ldrb w0, [x19,8] + strh w1, [x19,-46] + ldrh w1, [x19,90] + ldrb w2, [x19,94] + str w0, [x19,-60] + ldrh w0, [x19,270] orr w1, w2, w1, lsl 6 - strb w0, [x19,235] - strh w1, [x19,244] - ldrb w0, [x19,56] - ldrh w1, [x19,96] - strb w0, [x19,236] - strh w1, [x19,246] - ldrh w1, [x19,98] - ldrb w0, [x19,104] - strb w0, [x19,237] - ldr w0, [x19,204] - ldrb w2, [x19,102] - str w0, [x19,256] - ldr w0, [x19,196] + strh w0, [x19,-56] + ldrh w0, [x25,1970] + strb w0, [x19,-54] + ldrb w0, [x19,48] + strb w0, [x19,-53] + strh w1, [x19,-44] + ldrb w0, [x19,96] + ldrh w1, [x19,136] + strb w0, [x19,-52] + strh w1, [x19,-42] + ldrh w1, [x19,138] + ldrb w0, [x19,144] + strb w0, [x19,-51] + ldr w0, [x19,240] + str w0, [x19,-32] + ldr w0, [x19,232] + str w0, [x19,-24] + ldr w0, [x19,236] + ldrb w2, [x19,142] + str w0, [x19,-28] + ldrh w0, [x19,936] orr w1, w2, w1, lsl 6 - str w0, [x19,264] - ldr w0, [x19,200] - str w0, [x19,260] - ldrh w2, [x26,2028] - ldr x0, [x21,8] - strh w1, [x19,248] + strh w0, [x19,-20] + ldrh w0, [x19,938] + strh w0, [x19,-18] + ldrh w2, [x25,2028] + ldr x0, [x20,8] + strh w1, [x19,-40] mov w1, 255 bl ftl_memset - ldr x0, [x21,8] - mov x1, x20 + ldr x0, [x20,8] + mov x1, x26 mov w2, 48 bl ftl_memcpy - ldr x0, [x21,8] - ldrh w2, [x26,1952] - ldr x1, [x19,-40] + ldr x0, [x20,8] + ldrh w2, [x25,1956] + ldr x1, [x22,#:lo12:.LANCHOR2] add x0, x0, 48 lsl w2, w2, 1 bl ftl_memcpy - ldrh w2, [x26,1952] - ldr x1, [x21,8] + ldrh w2, [x25,1956] + ldr x1, [x20,8] uxth x0, w2 lsr w2, w2, 3 add x0, x0, 24 add w2, w2, 4 lsr x0, x0, 1 add x0, x1, x0, lsl 2 - ldr x1, [x25,#:lo12:.LANCHOR0] + ldr x1, [x24,#:lo12:.LANCHOR0] bl ftl_memcpy - ldrh w0, [x26,2064] - cbz w0, .L2045 - ldrh w0, [x26,1952] - ldrh w2, [x26,2056] + ldrh w0, [x25,2064] + cbz w0, .L2129 + ldrh w0, [x25,1956] + ldrh w2, [x25,2056] lsr w1, w0, 3 add w0, w1, w0, lsl 1 - ldr x1, [x21,8] + ldr x1, [x20,8] add w0, w0, 52 lsl w2, w2, 2 and x0, x0, 65532 add x0, x1, x0 ldr x1, [x19,2216] bl ftl_memcpy -.L2045: - add x19, x24, :lo12:.LANCHOR4 +.L2129: mov w0, 0 - mov w21, 0 + mov w20, 0 mov w27, 65535 - add x19, x19, 160 - add x20, x23, :lo12:.LANCHOR2 + add x28, x23, :lo12:.LANCHOR4 + add x19, x22, :lo12:.LANCHOR2 bl FtlUpdateVaildLpn -.L2046: - ldr x0, [x20,-64] - str x0, [x19,8] - ldr x0, [x20,2120] - str x0, [x19,16] - ldrh w0, [x20,280] - ldrh w1, [x20,282] - orr w0, w1, w0, lsl 10 - mov w1, 1 - str w0, [x19,4] - mov w2, w1 - mov w3, w1 - mov x0, x19 - bl FlashProgPages - add x0, x25, :lo12:.LANCHOR0 - ldrh w1, [x20,282] +.L2130: + ldrh w1, [x19,264] + ldr x0, [x19,2072] + ldrh w2, [x19,266] + str x0, [x28,168] + ldr x0, [x19,2120] + str x0, [x28,176] + orr w0, w2, w1, lsl 10 + str w0, [x28,164] + add x0, x24, :lo12:.LANCHOR0 ldrh w0, [x0,2020] sub w0, w0, #1 - cmp w1, w0 - blt .L2047 - ldrh w0, [x20,280] - ldrh w27, [x20,284] - strh wzr, [x20,282] - strh w0, [x20,284] + cmp w2, w0 + blt .L2131 + ldrh w27, [x19,268] + strh wzr, [x19,266] + strh w1, [x19,268] bl FtlFreeSysBlkQueueOut - ldr w1, [x20,196] - str w1, [x20,288] + ldr w1, [x19,232] + str w1, [x19,272] add w2, w1, 1 - str w2, [x20,196] + str w2, [x19,232] ubfiz w2, w0, 10, 16 - str w2, [x19,4] - str w1, [x22,4] + str w2, [x28,164] + strh w0, [x19,264] + str w1, [x21,4] + strh w0, [x21,2] +.L2131: mov w1, 1 - strh w0, [x20,280] + add x0, x28, 160 mov w2, w1 - strh w0, [x22,2] mov w3, w1 - mov x0, x19 bl FlashProgPages -.L2047: - ldrh w1, [x20,282] - ldr w2, [x19] + ldrh w1, [x19,266] + ldr w2, [x28,160] add w1, w1, 1 cmn w2, #1 uxth w1, w1 - strh w1, [x20,282] - bne .L2048 + strh w1, [x19,266] + bne .L2132 cmp w1, 1 - bne .L2049 - add x1, x25, :lo12:.LANCHOR0 + bne .L2133 + add x1, x24, :lo12:.LANCHOR0 ldrh w1, [x1,2020] sub w1, w1, #1 - strh w1, [x20,282] -.L2049: - add w21, w21, 1 - uxth w21, w21 - cmp w21, 3 - bls .L2046 - add x24, x24, :lo12:.LANCHOR4 - adrp x0, .LC115 - add x0, x0, :lo12:.LC115 - mov w2, w21 - add x23, x23, :lo12:.LANCHOR2 - ldr w1, [x24,164] + strh w1, [x19,266] +.L2133: + add w20, w20, 1 + uxth w20, w20 + cmp w20, 3 + bls .L2130 + add x23, x23, :lo12:.LANCHOR4 + adrp x0, .LC125 + add x0, x0, :lo12:.LC125 + mov w2, w20 + add x22, x22, :lo12:.LANCHOR2 + ldr w1, [x23,164] bl printk mov w0, 1 - str w0, [x23,-96] - b .L2044 -.L2048: + str w0, [x22,-96] + b .L2128 +.L2132: cmp w1, 1 - beq .L2046 + beq .L2130 cmp w2, 256 - beq .L2046 + beq .L2130 mov w0, 65535 cmp w27, w0 - beq .L2044 + beq .L2128 mov w0, w27 mov w1, 1 bl FtlFreeSysBlkQueueIn -.L2044: +.L2128: 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 FtlVpcTblFlush, .-FtlVpcTblFlush @@ -13563,40 +14046,61 @@ FtlVpcTblFlush: FtlSuperblockPowerLostFix: stp x29, x30, [sp, -128]! add x29, sp, 0 - stp x21, x22, [sp,32] - adrp x21, .LANCHOR0 stp x19, x20, [sp,16] - mov x19, x0 - add x0, x21, :lo12:.LANCHOR0 + adrp x20, .LANCHOR2 + add x1, x20, :lo12:.LANCHOR2 + stp x21, x22, [sp,32] stp x23, x24, [sp,48] - ldrb w20, [x0,120] - cbz w20, .L2069 - ldrb w20, [x19,8] - cmp w20, 1 - bne .L2064 - ldrh w22, [x19,4] - b .L2056 -.L2064: - mov w20, 0 -.L2069: - mov w22, 12 -.L2056: - adrp x23, .LANCHOR2 - mov w24, -1 -.L2057: - sub w22, w22, #1 - cmn w22, #1 - beq .L2059 + ldr w1, [x1,-96] + cbnz w1, .L2139 + adrp x21, .LANCHOR0 + add x2, x21, :lo12:.LANCHOR0 + ldrb w22, [x2,120] + cbz w22, .L2154 + ldrb w22, [x0,8] + cmp w22, 1 + bne .L2150 + ldrh w24, [x0,4] + b .L2141 +.L2150: + mov w22, w1 +.L2154: + mov w24, 12 +.L2141: + mov x19, x0 + mov w0, -1 + str w0, [x29,96] + add x0, x20, :lo12:.LANCHOR2 + mov w2, 61589 + ldr x23, [x0,2120] + ldr x1, [x0,2072] + str x1, [x29,80] + mov w1, -3 + str x23, [x29,88] + str w1, [x23,8] + mov w1, -2 + str w1, [x23,12] + ldrh w1, [x19] + strh w1, [x23,2] + strh wzr, [x23] + ldr x1, [x0,2072] + str w2, [x1] + ldr x1, [x0,2072] + mov w0, 22136 + movk w0, 0x1234, lsl 16 + str w0, [x1,4] +.L2142: + sub w24, w24, #1 + cmn w24, #1 + beq .L2145 ldrh w0, [x19,4] - cbnz w0, .L2058 -.L2059: - adrp x1, .LANCHOR2 + cbnz w0, .L2143 +.L2145: ldrh w0, [x19] - add x1, x1, :lo12:.LANCHOR2 - ldrh w3, [x19,4] - lsl x0, x0, 1 add x21, x21, :lo12:.LANCHOR0 - ldr x2, [x1,-40] + ldr x2, [x20,#:lo12:.LANCHOR2] + lsl x0, x0, 1 + ldrh w3, [x19,4] ldrh w1, [x2,x0] sub w1, w1, w3 strh w1, [x2,x0] @@ -13604,112 +14108,64 @@ FtlSuperblockPowerLostFix: ldrh w0, [x21,2018] strh w0, [x19,2] strh wzr, [x19,4] - ldp x21, x22, [sp,32] - ldp x19, x20, [sp,16] - ldp x23, x24, [sp,48] - ldp x29, x30, [sp], 128 - ret -.L2058: + b .L2139 +.L2143: mov x0, x19 bl get_new_active_ppa str w0, [x29,76] cmn w0, #1 - beq .L2059 - add x2, x23, :lo12:.LANCHOR2 - str w24, [x29,96] + beq .L2145 + add x1, x20, :lo12:.LANCHOR2 + mov w2, w22 mov w3, 0 - ldr x1, [x2,2120] - ldr x0, [x2,-64] - str x0, [x29,80] - str x1, [x29,88] - str w24, [x1,8] - str w24, [x1,12] - ldrh w0, [x19] - strh w0, [x1,2] - strh wzr, [x1] - ldr w0, [x2,200] - str w0, [x1,4] - mov w1, 1 + ldr w0, [x1,236] + str w0, [x23,4] add w0, w0, 1 cmn w0, #1 csel w0, w0, wzr, ne - str w0, [x2,200] + str w0, [x1,236] add x0, x29, 72 - mov w2, w20 + mov w1, 1 bl FlashProgPages ldrh w0, [x19] bl decrement_vpc_count - b .L2057 + b .L2142 +.L2139: + ldp x19, x20, [sp,16] + ldp x21, x22, [sp,32] + ldp x23, x24, [sp,48] + ldp x29, x30, [sp], 128 + ret .size FtlSuperblockPowerLostFix, .-FtlSuperblockPowerLostFix .align 2 .global ftl_map_blk_gc .type ftl_map_blk_gc, %function ftl_map_blk_gc: - stp x29, x30, [sp, -112]! + 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] + str x27, [sp,80] mov x19, x0 adrp x22, .LANCHOR0 - ldr x21, [x0,16] - ldr x23, [x0,40] + ldr x20, [x0,16] + ldr x25, [x0,40] bl ftl_free_no_use_map_blk - ldrh w4, [x19,10] + ldrh w1, [x19,10] ldrh w2, [x19,8] - sub w1, w4, #4 + sub w1, w1, #4 cmp w2, w1 - bge .L2071 - ldrh w2, [x19,60] - mov w1, 65535 - cmp w2, w1 - beq .L2073 - add x1, x22, :lo12:.LANCHOR0 - ldrh w2, [x19,2] - ldrh w1, [x1,2020] - cmp w2, w1 - bcc .L2073 -.L2071: - ldrh w1, [x19,60] - uxth w20, w0 - mov w0, 65535 - cmp w1, w0 - beq .L2075 - add x0, x22, :lo12:.LANCHOR0 - ldrh w3, [x19,2] - ldrh w0, [x0,2020] - cmp w0, w3 - bhi .L2075 - mov x2, 0 -.L2076: - uxth w0, w2 - cmp w0, w4 - bcs .L2077 - add x2, x2, 1 - add x5, x21, x2, lsl 1 - ldrh w5, [x5,-2] - cmp w5, w1 - bne .L2076 - mov w20, w0 -.L2077: - ubfiz x2, x0, 1, 16 - adrp x0, .LC116 - add x0, x0, :lo12:.LC116 - ldrh w2, [x21,x2] - bl printk - mov w0, -1 - strh w0, [x19,60] -.L2075: - ubfiz x20, x20, 1, 16 - ldrh w24, [x21,x20] - cbz w24, .L2073 - ldr w0, [x19,52] - cbnz w0, .L2073 - mov w1, 1 - str w1, [x19,52] - strh w0, [x21,x20] + blt .L2156 + ubfiz x0, x0, 1, 16 + ldrh w24, [x20,x0] + cbz w24, .L2156 + ldr w1, [x19,52] + cbnz w1, .L2156 + mov w2, 1 + str w2, [x19,52] + strh w1, [x20,x0] ldrh w0, [x19,8] ldrh w1, [x19,2] sub w0, w0, #1 @@ -13717,79 +14173,89 @@ ftl_map_blk_gc: add x0, x22, :lo12:.LANCHOR0 ldrh w0, [x0,2020] cmp w1, w0 - bcc .L2079 + bcc .L2157 mov x0, x19 bl ftl_map_blk_alloc_new_blk -.L2079: +.L2157: adrp x20, .LANCHOR4 - adrp x25, .LC117 - add x20, x20, :lo12:.LANCHOR4 mov w21, 0 + add x20, x20, :lo12:.LANCHOR4 + adrp x26, .LANCHOR2 add x20, x20, 160 - adrp x27, .LANCHOR2 - add x25, x25, :lo12:.LC117 -.L2080: +.L2158: ldrh w0, [x19,6] cmp w0, w21 - bls .L2090 - ubfiz x28, x21, 2, 16 - ldr w0, [x23,x28] - cmp w24, w0, lsr 10 - bne .L2081 - add x26, x27, :lo12:.LANCHOR2 + bls .L2167 + ubfiz x0, x21, 2, 16 + add x27, x25, x0 + ldr w1, [x25,x0] + cmp w24, w1, lsr 10 + bne .L2159 + add x1, x26, :lo12:.LANCHOR2 + ldr x2, [x1,2080] + ldr x23, [x1,2120] mov w1, 1 + str x2, [x20,8] mov w2, w1 - ldr x3, [x26,2120] - ldr x0, [x26,2080] - str x3, [x20,16] - str x0, [x20,8] - str x3, [x29,104] - ldr w0, [x23,x28] + str x23, [x20,16] + ldr w0, [x25,x0] str w0, [x20,4] mov x0, x20 bl FlashReadPages ldr w0, [x20] - ldr x3, [x29,104] cmn w0, #1 - bne .L2082 - str wzr, [x23,x28] - mov x0, x25 - ldr w1, [x20,4] - ldrh w2, [x3,8] + bne .L2160 +.L2162: + adrp x1, .LANCHOR4 + str wzr, [x27] + add x1, x1, :lo12:.LANCHOR4 + adrp x0, .LC126 + ldrh w2, [x23,8] + add x0, x0, :lo12:.LC126 + ldr w1, [x1,164] bl printk - mov w0, 1 - str w0, [x26,-96] - b .L2081 -.L2082: + adrp x0, .LANCHOR2 + mov w1, 1 + add x0, x0, :lo12:.LANCHOR2 + str w1, [x0,-96] + b .L2161 +.L2160: + ldrh w0, [x23,8] + cmp w0, w21 + bne .L2162 + ldrh w1, [x23] + ldrh w0, [x19,4] + cmp w1, w0 + bne .L2162 ldr x2, [x20,8] mov x0, x19 mov w1, w21 bl FtlMapWritePage -.L2081: +.L2159: add w21, w21, 1 uxth w21, w21 - b .L2080 -.L2090: + b .L2158 +.L2167: mov w0, w24 mov w1, 1 bl FtlFreeSysBlkQueueIn str wzr, [x19,52] -.L2073: +.L2156: add x22, x22, :lo12:.LANCHOR0 ldrh w1, [x19,2] ldrh w0, [x22,2020] cmp w1, w0 - bcc .L2084 + bcc .L2161 mov x0, x19 bl ftl_map_blk_alloc_new_blk -.L2084: +.L2161: 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], 112 + ldp x29, x30, [sp], 96 ret .size ftl_map_blk_gc, .-ftl_map_blk_gc .align 2 @@ -13807,12 +14273,12 @@ Ftl_write_map_blk_to_last_page: ldr w20, [x3,-96] ldr x21, [x0,16] ldr x24, [x0,40] - cbnz w20, .L2092 + cbnz w20, .L2169 mov x19, x0 ldrh w0, [x0] mov w1, 65535 cmp w0, w1 - bne .L2093 + bne .L2170 ldrh w0, [x19,8] add w0, w0, 1 strh w0, [x19,8] @@ -13823,8 +14289,8 @@ Ftl_write_map_blk_to_last_page: strh w20, [x19] add w0, w0, 1 str w0, [x19,48] - b .L2092 -.L2093: + b .L2169 +.L2170: ubfiz x0, x0, 1, 16 ldrh w22, [x21,x0] adrp x21, .LANCHOR4 @@ -13832,7 +14298,7 @@ Ftl_write_map_blk_to_last_page: add x1, x21, :lo12:.LANCHOR4 orr w0, w0, w22, lsl 10 str w0, [x1,164] - ldr x0, [x3,-64] + ldr x0, [x3,2072] str x0, [x1,168] ldr x0, [x3,2120] str x0, [x1,176] @@ -13846,33 +14312,33 @@ Ftl_write_map_blk_to_last_page: strh w22, [x0,2] adrp x0, .LANCHOR0+2020 ldrh w2, [x0,#:lo12:.LANCHOR0+2020] - ldr x0, [x3,-64] + ldr x0, [x3,2072] lsl w2, w2, 3 bl ftl_memset mov w1, w20 -.L2094: +.L2171: ldrh w0, [x19,6] cmp w0, w1 - bls .L2097 + bls .L2174 ubfiz x3, x1, 2, 32 ldr w0, [x24,x3] cmp w22, w0, lsr 10 - bne .L2095 + bne .L2172 add x2, x23, :lo12:.LANCHOR2 add w20, w20, 1 uxth w20, w20 - ldr x4, [x2,-64] + ldr x4, [x2,2072] ubfiz x0, x20, 3, 16 str w1, [x4,x0] - ldr x2, [x2,-64] + ldr x2, [x2,2072] ldr w3, [x24,x3] add x0, x2, x0 str w3, [x0,4] -.L2095: +.L2172: add w1, w1, 1 uxth w1, w1 - b .L2094 -.L2097: + b .L2171 +.L2174: mov w1, 1 add x0, x21, :lo12:.LANCHOR4 add x0, x0, 160 @@ -13884,7 +14350,7 @@ Ftl_write_map_blk_to_last_page: strh w0, [x19,2] mov x0, x19 bl ftl_map_blk_gc -.L2092: +.L2169: mov w0, 0 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -13898,67 +14364,66 @@ Ftl_write_map_blk_to_last_page: FtlMapWritePage: stp x29, x30, [sp, -112]! add x29, sp, 0 - stp x21, x22, [sp,32] - adrp x22, .LANCHOR2 stp x19, x20, [sp,16] - mov x19, x0 - add x0, x22, :lo12:.LANCHOR2 - stp x25, x26, [sp,64] - stp x27, x28, [sp,80] - stp x23, x24, [sp,48] - mov w25, w1 - mov x27, x2 - ldr w21, [x0,-96] - cbnz w21, .L2099 adrp x20, .LANCHOR4 - adrp x26, .LANCHOR0 + mov x19, x0 + stp x25, x26, [sp,64] add x20, x20, :lo12:.LANCHOR4 - adrp x24, .LC118 - add x0, x24, :lo12:.LC118 - mov x28, x26 + adrp x25, .LC127 + stp x27, x28, [sp,80] + stp x21, x22, [sp,32] + stp x23, x24, [sp,48] + mov w26, w1 + mov x27, x2 + mov w22, 0 + adrp x28, .LANCHOR2 add x20, x20, 160 - str x0, [x29,104] -.L2100: - add x1, x22, :lo12:.LANCHOR2 - ldr w0, [x1,180] + add x25, x25, :lo12:.LC127 +.L2176: + add x1, x28, :lo12:.LANCHOR2 + adrp x23, .LANCHOR0 + str x23, [x29,104] + adrp x24, .LANCHOR2 + ldr w0, [x1,216] add w0, w0, 1 - str w0, [x1,180] - add x0, x26, :lo12:.LANCHOR0 + str w0, [x1,216] + add x0, x23, :lo12:.LANCHOR0 ldrh w1, [x19,2] ldrh w0, [x0,2020] sub w0, w0, #1 cmp w1, w0 - bge .L2101 + bge .L2177 ldrh w1, [x19] mov w0, 65535 cmp w1, w0 - bne .L2102 -.L2101: + bne .L2178 +.L2177: mov x0, x19 bl Ftl_write_map_blk_to_last_page -.L2102: - ldrh w1, [x19] - mov w2, 16 +.L2178: + add x2, x24, :lo12:.LANCHOR2 + ldr w1, [x2,-96] + cbnz w1, .L2179 + ldrh w3, [x19] + adrp x21, .LANCHOR4 ldr x0, [x19,16] - adrp x23, .LANCHOR4 - ldrh w24, [x0,x1,lsl 1] - mov w1, 0 + ldrh w23, [x0,x3,lsl 1] ldrh w0, [x19,2] str x27, [x20,8] - orr w0, w0, w24, lsl 10 + orr w0, w0, w23, lsl 10 str w0, [x20,4] - add x0, x22, :lo12:.LANCHOR2 - ldr x0, [x0,2120] + ldr x0, [x2,2120] + mov w2, 16 str x0, [x20,16] bl ftl_memset ldr x0, [x20,16] ldr w1, [x19,48] str w1, [x0,4] - strh w25, [x0,8] + strh w26, [x0,8] ldrh w1, [x19,4] strh w1, [x0] mov w1, 1 - strh w24, [x0,2] + strh w23, [x0,2] mov w2, w1 mov w3, w1 mov x0, x20 @@ -13969,45 +14434,52 @@ FtlMapWritePage: strh w0, [x19,2] ldr w1, [x20] cmn w1, #1 - bne .L2103 - ldr x0, [x29,104] - add w21, w21, 1 + bne .L2180 ldr w1, [x20,4] - uxth w21, w21 + mov x0, x25 + add w22, w22, 1 bl printk + uxth w22, w22 ldrh w0, [x19,2] cmp w0, 2 - bhi .L2104 - add x0, x28, :lo12:.LANCHOR0 - ldrh w0, [x0,2020] + bhi .L2181 + ldr x0, [x29,104] + add x23, x0, :lo12:.LANCHOR0 + ldrh w0, [x23,2020] sub w0, w0, #1 strh w0, [x19,2] -.L2104: - cmp w21, 3 - bls .L2100 - add x23, x23, :lo12:.LANCHOR4 - adrp x0, .LC119 - add x0, x0, :lo12:.LC119 - mov w2, w21 - add x22, x22, :lo12:.LANCHOR2 - ldr w1, [x23,164] +.L2181: + cmp w22, 3 + bls .L2176 + add x21, x21, :lo12:.LANCHOR4 + adrp x0, .LC128 + add x0, x0, :lo12:.LC128 + mov w2, w22 + add x24, x24, :lo12:.LANCHOR2 + ldr w1, [x21,164] bl printk mov w0, 1 - str w0, [x22,-96] - b .L2099 -.L2103: - cbz w1, .L2106 - strh w24, [x19,60] -.L2106: + str w0, [x24,-96] + b .L2179 +.L2180: + cbz w1, .L2183 + strh w23, [x19,60] +.L2183: cmp w0, 1 - beq .L2100 + beq .L2184 cmp w1, 256 - beq .L2100 - add x23, x23, :lo12:.LANCHOR4 + beq .L2184 + ldr w0, [x19,56] + cbz w0, .L2185 +.L2184: + str wzr, [x19,56] + b .L2176 +.L2185: + add x21, x21, :lo12:.LANCHOR4 ldr x0, [x19,40] - ldr w1, [x23,164] - str w1, [x0,w25,uxtw 2] -.L2099: + ldr w1, [x21,164] + str w1, [x0,w26,uxtw 2] +.L2179: mov w0, 0 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -14018,84 +14490,6 @@ FtlMapWritePage: ret .size FtlMapWritePage, .-FtlMapWritePage .align 2 - .global load_l2p_region - .type load_l2p_region, %function -load_l2p_region: - stp x29, x30, [sp, -64]! - adrp x2, .LANCHOR2 - uxth x1, w1 - add x29, sp, 0 - stp x19, x20, [sp,16] - add x20, x2, :lo12:.LANCHOR2 - stp x23, x24, [sp,48] - uxth w23, w0 - ubfiz x0, x23, 2, 16 - ldr x3, [x20,2216] - stp x21, x22, [sp,32] - mov x22, x2 - ldr w21, [x3,x0] - cbnz w21, .L2111 - ldr x0, [x20,144] - lsl x19, x1, 4 - adrp x2, .LANCHOR0+2028 - mov w1, 255 - add x0, x0, x19 - ldrh w2, [x2,#:lo12:.LANCHOR0+2028] - ldr x0, [x0,8] - bl ftl_memset - ldr x0, [x20,144] - strh w23, [x0,x19] - ldr x1, [x20,144] - add x19, x1, x19 - str w21, [x19,4] - b .L2112 -.L2111: - lsl x19, x1, 4 - ldr x1, [x20,144] - adrp x24, .LANCHOR4 - add x24, x24, :lo12:.LANCHOR4 - add x1, x1, x19 - add x0, x24, 160 - ldr x1, [x1,8] - str x1, [x0,8] - ldr x1, [x20,2120] - str x1, [x0,16] - mov w1, 1 - mov w2, w1 - str w21, [x0,4] - bl FlashReadPages - ldr w0, [x24,160] - cmp w0, 256 - bne .L2113 - adrp x0, .LC120 - mov w2, w21 - mov w1, w23 - add x0, x0, :lo12:.LC120 - lsr w21, w21, 10 - bl printk - strh w21, [x20,2316] - add x0, x20, 2256 - ldr x2, [x20,144] - mov w1, w23 - add x2, x2, x19 - ldr x2, [x2,8] - bl FtlMapWritePage -.L2113: - add x2, x22, :lo12:.LANCHOR2 - ldr x0, [x2,144] - add x0, x0, x19 - str wzr, [x0,4] - ldr x0, [x2,144] - strh w23, [x0,x19] -.L2112: - mov w0, 0 - ldp x19, x20, [sp,16] - ldp x21, x22, [sp,32] - ldp x23, x24, [sp,48] - ldp x29, x30, [sp], 64 - ret - .size load_l2p_region, .-load_l2p_region - .align 2 .global flush_l2p_region .type flush_l2p_region, %function flush_l2p_region: @@ -14106,12 +14500,12 @@ flush_l2p_region: ubfiz x19, x0, 4, 16 add x20, x20, :lo12:.LANCHOR2 add x0, x20, 2256 - ldr x1, [x20,144] + ldr x1, [x20,184] add x2, x1, x19 ldrh w1, [x1,x19] ldr x2, [x2,8] bl FtlMapWritePage - ldr x0, [x20,144] + ldr x0, [x20,184] add x19, x0, x19 ldr w0, [x19,4] and w0, w0, 2147483647 @@ -14122,482 +14516,202 @@ flush_l2p_region: ret .size flush_l2p_region, .-flush_l2p_region .align 2 - .global log2phys - .type log2phys, %function -log2phys: - stp x29, x30, [sp, -96]! - adrp x5, .LANCHOR0 - mov x4, 1 - add x5, x5, :lo12:.LANCHOR0 - add x29, sp, 0 - stp x21, x22, [sp,32] - stp x23, x24, [sp,48] - stp x19, x20, [sp,16] - str x25, [sp,64] - adrp x23, .LANCHOR2 - mov x21, x1 - add x1, x23, :lo12:.LANCHOR2 - ldrh w3, [x5,2026] - mov w22, w2 - add w3, w3, 7 - ldr x25, [x1,144] - lsr w20, w0, w3 - lsl x3, x4, x3 - sub w3, w3, #1 - mov x4, 0 - and w0, w3, w0 - uxth w20, w20 - uxth x24, w0 - ldrh w0, [x5,2058] -.L2116: - uxth x19, w4 - cmp w19, w0 - bcs .L2128 - add x4, x4, 1 - add x1, x25, x4, lsl 4 - ldrh w1, [x1,-16] - cmp w1, w20 - bne .L2116 -.L2117: - cbnz w22, .L2118 - add x0, x23, :lo12:.LANCHOR2 - ldr x1, [x0,144] - add x1, x1, x19, lsl 4 - ldr x0, [x1,8] - ldr w0, [x0,x24,lsl 2] - str w0, [x21] - b .L2119 -.L2118: - add x1, x23, :lo12:.LANCHOR2 - lsl x0, x19, 4 - ldr w3, [x21] - ldr x2, [x1,144] - add x2, x2, x0 - ldr x2, [x2,8] - str w3, [x2,x24,lsl 2] - strh w20, [x1,152] - ldr x2, [x1,144] - add x0, x2, x0 - ldr w2, [x0,4] - orr w2, w2, -2147483648 - str w2, [x0,4] -.L2119: - add x23, x23, :lo12:.LANCHOR2 - ldr x0, [x23,144] - add x19, x0, x19, lsl 4 - ldr w0, [x19,4] - cmn w0, #1 - beq .L2125 - add w0, w0, 1 - str w0, [x19,4] - b .L2125 -.L2128: - bl select_l2p_ram_region - uxth x19, w0 - ubfiz x2, x19, 4, 16 - mov w1, w0 - add x3, x25, x2 - ldrh w4, [x25,x2] - mov w2, 65535 - cmp w4, w2 - beq .L2122 - ldr w2, [x3,4] - tbz w2, #31, .L2122 - str x1, [x29,88] - bl flush_l2p_region - ldr x1, [x29,88] -.L2122: - mov w0, w20 - bl load_l2p_region - b .L2117 -.L2125: - mov w0, 0 - ldr x25, [sp,64] - ldp x19, x20, [sp,16] - ldp x21, x22, [sp,32] - ldp x23, x24, [sp,48] - ldp x29, x30, [sp], 96 - ret - .size log2phys, .-log2phys - .align 2 - .global FtlReUsePrevPpa - .type FtlReUsePrevPpa, %function -FtlReUsePrevPpa: - stp x29, x30, [sp, -64]! - add x29, sp, 0 - stp x19, x20, [sp,16] - mov w20, w0 - lsr x0, x1, 10 - stp x21, x22, [sp,32] - str w1, [x29,60] - adrp x21, .LANCHOR2 - bl P2V_block_in_plane - uxth w0, w0 - add x2, x21, :lo12:.LANCHOR2 - ubfiz x22, x0, 1, 16 - ldr x3, [x2,-40] - ldrh w1, [x3,x22] - cbnz w1, .L2130 - ldr x19, [x2,-16] - cbz x19, .L2131 - ldrh w3, [x2,-8] - mov x4, -6148914691236517206 - ldr x2, [x2,-56] - mov w5, 65535 - sub x19, x19, x2 - asr x19, x19, 1 - madd x19, x4, x19, x19 - mov w4, 6 - uxth w19, w19 -.L2132: - cmp w1, w3 - beq .L2131 - cmp w19, w0 - bne .L2133 - add x21, x21, :lo12:.LANCHOR2 - mov w1, w19 - sub x0, x21, #16 - bl List_remove_node - ldrh w0, [x21,-8] - sub w0, w0, #1 - strh w0, [x21,-8] - mov w0, w19 - bl INSERT_DATA_LIST - ldr x1, [x21,-40] - ldrh w0, [x1,x22] - add w0, w0, 1 - strh w0, [x1,x22] - b .L2131 -.L2133: - umull x19, w19, w4 - ldrh w19, [x2,x19] - cmp w19, w5 - beq .L2131 - add w1, w1, 1 - uxth w1, w1 - b .L2132 -.L2130: - add w1, w1, 1 - strh w1, [x3,x22] -.L2131: - add x1, x29, 60 - mov w0, w20 - mov w2, 1 - bl log2phys - ldp x19, x20, [sp,16] - ldp x21, x22, [sp,32] - ldp x29, x30, [sp], 64 - ret - .size FtlReUsePrevPpa, .-FtlReUsePrevPpa - .align 2 .global FtlMapTblRecovery .type FtlMapTblRecovery, %function FtlMapTblRecovery: stp x29, x30, [sp, -144]! mov w1, 0 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 x27, x0 + stp x23, x24, [sp,48] + stp x25, x26, [sp,64] + stp x19, x20, [sp,16] + stp x21, x22, [sp,32] + ldrh w22, [x27,6] adrp x19, .LANCHOR2 - ldr x0, [x0,40] - adrp x20, .LANCHOR4 - str x0, [x29,136] - adrp x25, .LANCHOR0 - ldr x0, [x27,24] - mov w24, 0 - str x0, [x29,112] - mov x26, x25 - ldrh w0, [x27,8] - ldrh w23, [x27,6] - str w0, [x29,132] - ldr x0, [x29,136] - lsl w2, w23, 2 - ldr x21, [x27,16] + ldr x20, [x0,40] + mov w25, 0 + ldr x21, [x0,16] + lsl w2, w22, 2 + ldr x0, [x0,24] + adrp x24, .LANCHOR0 + str x0, [x29,128] + mov x0, x20 + ldrh w23, [x27,8] bl ftl_memset - str x20, [x29,120] - add x0, x19, :lo12:.LANCHOR2 - add x4, x20, :lo12:.LANCHOR4 - add x4, x4, 160 + str x19, [x29,136] + add x1, x19, :lo12:.LANCHOR2 + adrp x0, .LANCHOR4 + add x5, x0, :lo12:.LANCHOR4 + str x0, [x29,120] + add x5, x5, 160 + sub w0, w23, #1 + ldr x2, [x1,2072] + ldr x26, [x1,2120] + mov w1, -1 + str x2, [x5,8] + str x26, [x5,16] + mov x19, x5 + strh w1, [x27] + strh w1, [x27,2] + mov w1, 1 str wzr, [x27,52] str wzr, [x27,48] - ldr x1, [x0,-64] - ldr x22, [x0,2120] - mov w0, -1 - str x1, [x4,8] - str x22, [x4,16] - mov x20, x4 - strh w0, [x27] - strh w0, [x27,2] - mov w0, 1 - str w0, [x27,56] - ldr w0, [x29,132] - sub w0, w0, #1 - str w0, [x29,128] -.L2139: - ldr w0, [x29,132] - cmp w24, w0 - bge .L2156 - ldr w0, [x29,128] - sxtw x28, w24 - cmp w24, w0 - bne .L2140 + str w1, [x27,56] + str w0, [x29,116] +.L2191: + cmp w25, w23 + bge .L2207 + ldr w0, [x29,116] + sxtw x28, w25 + cmp w25, w0 + bne .L2192 lsl x0, x28, 1 mov w1, 1 - add x25, x21, x0 + add x23, x21, x0 + mov w19, 0 ldrh w0, [x21,x0] bl FtlGetLastWrittenPage - sxth w1, w0 + sxth w24, w0 add w0, w0, 1 strh w0, [x27,2] - ldr x0, [x29,112] - add w20, w1, 1 - strh w24, [x27] - mov w24, 0 + ldr x0, [x29,128] + add w24, w24, 1 + strh w25, [x27] ldr w0, [x0,x28,lsl 2] str w0, [x27,48] ldr x0, [x29,120] - add x26, x0, :lo12:.LANCHOR4 - add x26, x26, 160 -.L2141: - cmp w24, w20 - bge .L2156 - ldrh w0, [x25] + add x21, x0, :lo12:.LANCHOR4 + add x21, x21, 160 +.L2193: + cmp w19, w24 + bge .L2207 + ldrh w0, [x23] mov w1, 1 mov w2, w1 - orr w0, w24, w0, lsl 10 - str w0, [x26,4] - mov x0, x26 + orr w0, w19, w0, lsl 10 + str w0, [x21,4] + mov x0, x21 bl FlashReadPages - ldr w0, [x26] + ldr w0, [x21] cmn w0, #1 - beq .L2142 - ldrh w0, [x22,8] - cmp w0, w23 - bcs .L2143 - ldrh w2, [x22] + beq .L2194 + ldrh w0, [x26,8] + cmp w0, w22 + bcs .L2194 + ldrh w2, [x26] ldrh w1, [x27,4] cmp w2, w1 - bne .L2143 + bne .L2194 ubfiz x0, x0, 2, 16 - ldr x2, [x29,136] - ldr w1, [x26,4] - str w1, [x2,x0] - b .L2143 -.L2142: - ldrh w0, [x25] - strh w0, [x27,60] -.L2143: - add w24, w24, 1 - sxth w24, w24 - b .L2141 -.L2156: - add x19, x19, :lo12:.LANCHOR2 - adrp x22, .LANCHOR0 - add x0, x19, 2256 - cmp x27, x0 - bne .L2146 - b .L2181 -.L2140: - add x0, x19, :lo12:.LANCHOR2 - ldr x0, [x0,-64] - str x0, [x20,8] + ldr w1, [x21,4] + str w1, [x20,x0] +.L2194: + add w19, w19, 1 + sxth w19, w19 + b .L2193 +.L2207: + mov x0, x27 + bl ftl_free_no_use_map_blk + adrp x0, .LANCHOR0+2020 + ldrh w1, [x27,2] + ldrh w0, [x0,#:lo12:.LANCHOR0+2020] + cmp w1, w0 + bne .L2197 + mov x0, x27 + bl ftl_map_blk_alloc_new_blk + b .L2197 +.L2192: + ldr x0, [x29,136] + add x0, x0, :lo12:.LANCHOR2 + ldr x0, [x0,2072] + str x0, [x19,8] lsl x0, x28, 1 add x28, x21, x0 ldrh w1, [x21,x0] - add x0, x25, :lo12:.LANCHOR0 + add x0, x24, :lo12:.LANCHOR0 ldrh w0, [x0,2020] sub w0, w0, #1 orr w0, w0, w1, lsl 10 mov w1, 1 - str w0, [x20,4] + str w0, [x19,4] mov w2, w1 - mov x0, x20 + mov x0, x19 bl FlashReadPages - ldr w0, [x20] + ldr w0, [x19] cmn w0, #1 - beq .L2169 - ldrh w1, [x22] - mov w3, 0 + beq .L2208 + ldrh w1, [x26] + mov w4, 0 ldrh w0, [x27,4] cmp w1, w0 - bne .L2178 - ldrh w1, [x22,8] + bne .L2217 + ldrh w1, [x26,8] mov w0, 64245 cmp w1, w0 - bne .L2178 -.L2148: - add x0, x26, :lo12:.LANCHOR0 + bne .L2217 +.L2199: + adrp x0, .LANCHOR0 + add x0, x0, :lo12:.LANCHOR0 ldrh w0, [x0,2020] sub w0, w0, #1 - cmp w3, w0 - bge .L2151 - add x0, x19, :lo12:.LANCHOR2 - sbfiz x1, x3, 3, 32 - ldr x2, [x0,-64] + cmp w4, w0 + bge .L2202 + ldr x0, [x29,136] + sbfiz x1, x4, 3, 32 + add x0, x0, :lo12:.LANCHOR2 + ldr x2, [x0,2072] ldrh w0, [x2,x1] - cmp w0, w23 - bcs .L2149 + cmp w0, w22 + bcs .L2200 add x1, x2, x1 ubfiz x0, x0, 2, 16 - ldr x2, [x29,136] ldr w1, [x1,4] - str w1, [x2,x0] -.L2149: - add w3, w3, 1 - sxth w3, w3 - b .L2148 -.L2169: - mov w3, 0 -.L2178: - add x0, x26, :lo12:.LANCHOR0 + str w1, [x20,x0] +.L2200: + add w4, w4, 1 + sxth w4, w4 + b .L2199 +.L2208: + mov w4, 0 +.L2217: + adrp x0, .LANCHOR0 + add x0, x0, :lo12:.LANCHOR0 ldrh w0, [x0,2020] - cmp w3, w0 - bge .L2151 + cmp w4, w0 + bge .L2202 ldrh w0, [x28] mov w1, 1 mov w2, w1 - str x3, [x29,104] - orr w0, w3, w0, lsl 10 - str w0, [x20,4] - mov x0, x20 + str x4, [x29,104] + orr w0, w4, w0, lsl 10 + str w0, [x19,4] + mov x0, x19 bl FlashReadPages - ldr w0, [x20] - ldr x3, [x29,104] + ldr w0, [x19] + ldr x4, [x29,104] cmn w0, #1 - beq .L2152 - ldrh w0, [x22,8] - cmp w0, w23 - bcs .L2152 - ldrh w2, [x22] + beq .L2203 + ldrh w0, [x26,8] + cmp w0, w22 + bcs .L2203 + ldrh w2, [x26] ldrh w1, [x27,4] cmp w2, w1 - bne .L2152 + bne .L2203 ubfiz x0, x0, 2, 16 - ldr x2, [x29,136] - ldr w1, [x20,4] - str w1, [x2,x0] -.L2152: - add w3, w3, 1 - sxth w3, w3 - b .L2178 -.L2151: - add w6, w24, 1 - sxth w24, w6 - b .L2139 -.L2167: - ubfiz x24, x23, 2, 32 - ldr x0, [x19,2224] - ldr w1, [x0,x24] - sub w2, w1, #1 - cmn w2, #3 - bls .L2182 -.L2161: - add w23, w23, 1 -.L2159: - add x0, x22, :lo12:.LANCHOR0 - ldrh w0, [x0,2056] - cmp w23, w0 - bcc .L2167 -.L2146: - mov x0, x27 - add x22, x22, :lo12:.LANCHOR0 - bl ftl_free_no_use_map_blk - ldrh w1, [x27,2] - ldrh w0, [x22,2020] - cmp w1, w0 - bne .L2158 - mov x0, x27 - bl ftl_map_blk_alloc_new_blk - b .L2158 -.L2181: - add x0, x22, :lo12:.LANCHOR0 - ldrh w0, [x0,2064] - cbz w0, .L2146 - ldr x0, [x29,120] - adrp x25, .LC121 - mov w23, 0 - add x25, x25, :lo12:.LC121 - add x20, x0, :lo12:.LANCHOR4 - add x20, x20, 160 - b .L2159 -.L2182: - ldr x2, [x19,2216] - ldr w2, [x2,x24] - cmp w1, w2 - beq .L2161 - ldr x1, [x19,-64] - ldr x26, [x19,2120] - str x1, [x20,8] - mov w1, 1 - str x26, [x20,16] - mov w2, w1 - ldr w0, [x0,x24] - str w0, [x20,4] - mov x0, x20 - bl FlashReadPages - ldr w0, [x20] - mov w3, 0 - cmn w0, #1 - beq .L2163 - ldrh w1, [x26] - ldrh w0, [x19,2260] - cmp w1, w0 - bne .L2163 - ldr w3, [x26,4] -.L2163: - ldr x0, [x19,2216] - mov w1, 1 - mov w2, w1 - str x3, [x29,136] - ldr w0, [x0,x24] - str w0, [x20,4] - mov x0, x20 - bl FlashReadPages - ldr w4, [x26,4] - ldr x3, [x29,136] - cmp w3, w4 - bls .L2161 - ldr x1, [x19,2224] - mov x0, x25 - ldr x2, [x19,2216] - ldr w1, [x1,x24] - ldr w2, [x2,x24] - bl printk - ldr x0, [x19,2224] - ldr w1, [x0,x24] - ldr x0, [x19,2216] - str w1, [x0,x24] - mov w1, 0 - ldr x0, [x19,2224] - ldrh w2, [x19,2320] - ldr w0, [x0,x24] - ubfx x0, x0, 10, 16 -.L2164: - cmp w1, w2 - bge .L2183 - ldrh w3, [x21,w1,sxtw 1] - cmp w3, w0 - beq .L2161 - add w1, w1, 1 - sxth w1, w1 - b .L2164 -.L2183: - add x1, x22, :lo12:.LANCHOR0 - ldr w1, [x1,2048] - cmp w2, w1 - bcs .L2161 - ubfiz x2, x2, 1, 16 - strh w0, [x21,x2] - ldrh w1, [x19,2320] - add w1, w1, 1 - strh w1, [x19,2320] - bl remove_from_free_sys_Queue - b .L2161 -.L2158: + ldr w1, [x19,4] + str w1, [x20,x0] +.L2203: + add w4, w4, 1 + sxth w4, w4 + b .L2217 +.L2202: + add w6, w25, 1 + sxth w25, w6 + b .L2191 +.L2197: mov x0, x27 bl ftl_map_blk_gc mov x0, x27 @@ -14638,10 +14752,8 @@ FtlLoadVonderInfo: str x2, [x0,24] ldr x2, [x1,2192] ldr x1, [x1,2208] - str x1, [x0,40] - mov w1, -1 str x2, [x0,32] - strh w1, [x0,60] + str x1, [x0,40] bl FtlMapTblRecovery mov w0, 0 ldp x29, x30, [sp], 16 @@ -14663,108 +14775,6 @@ FtlLoadMapInfo: ret .size FtlLoadMapInfo, .-FtlLoadMapInfo .align 2 - .global FtlReadRefresh - .type FtlReadRefresh, %function -FtlReadRefresh: - stp x29, x30, [sp, -112]! - adrp x1, .LANCHOR2 - add x0, x1, :lo12:.LANCHOR2 - add x29, sp, 0 - add x2, x0, 352 - stp x19, x20, [sp,16] - stp x21, x22, [sp,32] - adrp x20, .LANCHOR0 - ldr w3, [x2,80] - cbz w3, .L2187 - add x1, x20, :lo12:.LANCHOR0 - ldr w3, [x2,84] - ldr w1, [x1,2096] - cmp w3, w1 - bcs .L2188 - mov w21, 2048 - mov x19, x0 -.L2193: - add x1, x20, :lo12:.LANCHOR0 - ldr w0, [x19,436] - ldr w1, [x1,2096] - cmp w0, w1 - bcs .L2190 - add x1, x29, 52 - mov w2, 0 - bl log2phys - ldr w0, [x19,436] - ldr w1, [x29,52] - add w0, w0, 1 - str w0, [x19,436] - cmn w1, #1 - beq .L2191 - str w1, [x29,60] - mov w2, 0 - str w0, [x29,80] - mov w1, 1 - add x0, x29, 56 - str xzr, [x29,64] - str xzr, [x29,72] - str wzr, [x29,56] - bl FlashReadPages - ldr w0, [x29,56] - cmp w0, 256 - bne .L2190 - ldr w0, [x29,52] - lsr x0, x0, 10 - bl P2V_block_in_plane - bl FtlGcRefreshBlock - b .L2190 -.L2191: - subs w21, w21, #1 - bne .L2193 -.L2190: - mov w0, -1 - b .L2195 -.L2188: - ldr w0, [x0,164] - str wzr, [x2,80] - str wzr, [x2,84] - str w0, [x2,76] - b .L2201 -.L2187: - add x20, x20, :lo12:.LANCHOR0 - ldr w3, [x0,216] - mov w2, 4194304 - ldr w0, [x0,160] - ldrb w4, [x20,120] - cbnz w4, .L2196 - add w0, w0, w3, lsr 10 - mov w3, 33554432 - asr w2, w3, w0 -.L2196: - add x4, x1, :lo12:.LANCHOR2 - ldr w3, [x4,164] - ldr w0, [x4,428] - add w5, w3, 1048576 - cmp w0, w5 - bhi .L2197 - add w0, w2, w0 - cmp w0, w3 - bcc .L2197 - ldrb w2, [x4,252] - mov w0, 0 - cbnz w2, .L2195 -.L2197: - add x0, x1, :lo12:.LANCHOR2 - mov w1, 1 - str wzr, [x0,436] - str w1, [x0,432] - str w3, [x0,428] -.L2201: - mov w0, 0 -.L2195: - ldp x19, x20, [sp,16] - ldp x21, x22, [sp,32] - ldp x29, x30, [sp], 112 - ret - .size FtlReadRefresh, .-FtlReadRefresh - .align 2 .global FtlVendorPartWrite .type FtlVendorPartWrite, %function FtlVendorPartWrite: @@ -14785,15 +14795,15 @@ FtlVendorPartWrite: ldrh w0, [x0,2012] mov w20, -1 cmp w1, w0 - bhi .L2203 + bhi .L2221 adrp x24, .LANCHOR4 lsr w21, w26, w21 add x24, x24, :lo12:.LANCHOR4 mov w20, 0 adrp x27, .LANCHOR2 add x24, x24, 224 -.L2204: - cbz w28, .L2203 +.L2222: + cbz w28, .L2221 adrp x0, .LANCHOR2 add x2, x0, :lo12:.LANCHOR2 ldr x0, [x2,2208] @@ -14808,8 +14818,8 @@ FtlVendorPartWrite: cmp w19, w28 csel w19, w0, w19, hi cmp w19, w1 - beq .L2206 - cbz w4, .L2206 + beq .L2224 + cbz w4, .L2224 ldr x0, [x2,2088] mov w1, 1 str x0, [x29,128] @@ -14818,15 +14828,15 @@ FtlVendorPartWrite: str w4, [x29,124] str xzr, [x29,136] bl FlashReadPages - b .L2207 -.L2206: + b .L2225 +.L2224: add x0, x27, :lo12:.LANCHOR2 add x2, x23, :lo12:.LANCHOR0 mov w1, 0 ldr x0, [x0,2088] ldrh w2, [x2,2028] bl ftl_memset -.L2207: +.L2225: add x5, x27, :lo12:.LANCHOR2 lsl w4, w19, 9 ubfiz x22, x22, 9, 16 @@ -14849,8 +14859,8 @@ FtlVendorPartWrite: ldr x4, [x29,104] csinv w20, w20, wzr, ne add x25, x25, x4, sxtw - b .L2204 -.L2203: + b .L2222 +.L2221: mov w0, w20 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -14869,46 +14879,46 @@ Ftl_save_ext_data: add x0, x0, :lo12:.LANCHOR2 movk w1, 0x4654, lsl 16 stp x29, x30, [sp, -16]! - add x2, x0, 352 + add x2, x0, 336 add x29, sp, 0 - ldr w3, [x0,352] + ldr w3, [x0,336] cmp w3, w1 - bne .L2217 - mov w1, 71 + bne .L2235 + mov w1, 80 movk w1, 0x5000, lsl 16 str w1, [x2,4] - ldr w1, [x0,188] + ldr w1, [x0,224] str w1, [x2,88] - ldr w1, [x0,192] + ldr w1, [x0,228] str w1, [x2,92] - ldr w1, [x0,184] + ldr w1, [x0,220] str w1, [x2,8] - ldr w1, [x0,172] - str w1, [x2,12] - ldr w1, [x0,164] - str w1, [x2,16] - ldr w1, [x0,180] - str w1, [x2,20] ldr w1, [x0,208] + str w1, [x2,12] + ldr w1, [x0,200] + str w1, [x2,16] + ldr w1, [x0,216] + str w1, [x2,20] + ldr w1, [x0,244] str w1, [x2,28] ldr w1, [x0,-72] str w1, [x2,32] - ldr w1, [x0,168] + ldr w1, [x0,204] str w1, [x2,36] - ldr w1, [x0,176] + ldr w1, [x0,212] str w1, [x2,40] - ldr w1, [x0,216] + ldr w1, [x0,252] str w1, [x2,44] - ldr w1, [x0,220] + ldr w1, [x0,256] str w1, [x2,48] - ldr w1, [x0,344] - ldr w0, [x0,2028] + ldr w1, [x0,328] + ldr w0, [x0,2020] str w1, [x2,60] mov w1, 1 str w0, [x2,64] mov w0, 0 bl FtlVendorPartWrite -.L2217: +.L2235: ldp x29, x30, [sp], 16 ret .size Ftl_save_ext_data, .-Ftl_save_ext_data @@ -14916,36 +14926,37 @@ Ftl_save_ext_data: .global FtlEctTblFlush .type FtlEctTblFlush, %function FtlEctTblFlush: + adrp x1, .LANCHOR0+1940 adrp x2, .LANCHOR2 - mov w1, 32 - add x3, x2, :lo12:.LANCHOR2 stp x29, x30, [sp, -16]! add x29, sp, 0 - ldr w4, [x3,160] - cbz w4, .L2220 - ldr w3, [x3,220] - cmp w3, 29 + ldr w3, [x1,#:lo12:.LANCHOR0+1940] + mov w1, 32 + cbz w3, .L2238 + add x3, x2, :lo12:.LANCHOR2 + ldr w3, [x3,256] + cmp w3, 39 mov w3, 4 csel w1, w1, w3, hi -.L2220: +.L2238: adrp x3, .LANCHOR4 add x3, x3, :lo12:.LANCHOR4 ldrh w4, [x3,288] cmp w4, 31 - bhi .L2221 + bhi .L2239 add w4, w4, 1 mov w1, 1 strh w4, [x3,288] -.L2221: - cbnz w0, .L2222 +.L2239: + cbnz w0, .L2240 add x0, x2, :lo12:.LANCHOR2 ldr x3, [x0,2160] ldr w0, [x3,20] add w1, w1, w0 ldr w0, [x3,16] cmp w0, w1 - bcc .L2223 -.L2222: + bcc .L2241 +.L2240: add x2, x2, :lo12:.LANCHOR2 ldr x0, [x2,2160] ldr w1, [x0,16] @@ -14965,7 +14976,7 @@ FtlEctTblFlush: mov w0, 64 bl FtlVendorPartWrite bl Ftl_save_ext_data -.L2223: +.L2241: mov w0, 0 ldp x29, x30, [sp], 16 ret @@ -14992,18 +15003,18 @@ FtlVendorPartRead: cmp w3, w2 ldrh w20, [x0,2026] mov w0, -1 - bhi .L2228 + bhi .L2246 adrp x27, .LANCHOR4 - adrp x0, .LC122 - add x0, x0, :lo12:.LC122 + adrp x0, .LC129 + add x0, x0, :lo12:.LC129 add x27, x27, :lo12:.LANCHOR4 str x0, [x29,128] lsr w20, w23, w20 add x0, x27, 224 mov w21, 0 str x0, [x29,120] -.L2229: - cbz w22, .L2237 +.L2247: + cbz w22, .L2255 adrp x25, .LANCHOR2 add x4, x25, :lo12:.LANCHOR2 ldr x0, [x4,2208] @@ -15019,7 +15030,7 @@ FtlVendorPartRead: cmp w19, w22 csel w19, w0, w19, hi lsl w28, w19, 9 - cbz w3, .L2231 + cbz w3, .L2249 ldr x0, [x4,2088] mov w1, 1 str x0, [x29,160] @@ -15036,7 +15047,7 @@ FtlVendorPartRead: ldr w0, [x27,160] csinv w21, w21, wzr, ne cmp w0, 256 - bne .L2233 + bne .L2251 ldr x0, [x29,128] mov w1, w20 mov w2, w3 @@ -15046,7 +15057,7 @@ FtlVendorPartRead: ldr x0, [x29,120] ldr x2, [x4,2088] bl FtlMapWritePage -.L2233: +.L2251: add x25, x25, :lo12:.LANCHOR2 ubfiz x24, x24, 9, 16 mov x0, x26 @@ -15054,21 +15065,21 @@ FtlVendorPartRead: ldr x1, [x25,2088] add x1, x1, x24 bl ftl_memcpy - b .L2234 -.L2231: + b .L2252 +.L2249: mov x0, x26 mov w1, w3 mov w2, w28 bl ftl_memset -.L2234: +.L2252: add w20, w20, 1 sub w22, w22, w19 add w23, w23, w19 add x26, x26, x28, sxtw - b .L2229 -.L2237: + b .L2247 +.L2255: mov w0, w21 -.L2228: +.L2246: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -15095,18 +15106,18 @@ FtlLoadEctTbl: mov w0, 17221 movk w0, 0x4254, lsl 16 cmp w1, w0 - beq .L2239 - adrp x0, .LC73 - adrp x1, .LC123 - add x1, x1, :lo12:.LC123 - add x0, x0, :lo12:.LC73 + beq .L2257 + adrp x0, .LC75 + adrp x1, .LC130 + add x1, x1, :lo12:.LC130 + add x0, x0, :lo12:.LC75 bl printk ldrh w2, [x19,2144] mov w1, 0 ldr x0, [x19,2160] lsl w2, w2, 9 bl ftl_memset -.L2239: +.L2257: mov w0, 0 ldr x19, [sp,16] ldp x29, x30, [sp], 32 @@ -15124,103 +15135,146 @@ Ftl_load_ext_data: adrp x19, .LANCHOR2 str x21, [sp,32] add x20, x19, :lo12:.LANCHOR2 - add x21, x20, 352 + add x21, x20, 336 mov x2, x21 bl FtlVendorPartRead - ldr w1, [x20,352] + ldr w1, [x20,336] mov w0, 19539 movk w0, 0x4654, lsl 16 cmp w1, w0 - beq .L2241 + beq .L2259 mov x0, x21 mov w1, 0 mov w2, 512 bl ftl_memset mov w0, 19539 movk w0, 0x4654, lsl 16 - str w0, [x20,352] -.L2241: + str w0, [x20,336] +.L2259: add x0, x19, :lo12:.LANCHOR2 mov w2, 19539 movk w2, 0x4654, lsl 16 - ldr w3, [x0,352] + ldr w3, [x0,336] cmp w3, w2 - bne .L2242 - ldr w2, [x0,440] - str w2, [x0,188] - ldr w2, [x0,444] - str w2, [x0,192] - ldr w2, [x0,360] - str w2, [x0,184] - ldr w2, [x0,364] - str w2, [x0,172] - ldr w2, [x0,368] - str w2, [x0,164] - ldr w2, [x0,372] - str w2, [x0,180] - ldr w2, [x0,380] - str w2, [x0,208] - ldr w2, [x0,384] - str w2, [x0,-72] - ldr w2, [x0,388] - str w2, [x0,168] - ldr w2, [x0,392] - str w2, [x0,176] - ldr w2, [x0,396] - str w2, [x0,216] - ldr w1, [x0,412] - ldr w2, [x0,400] + bne .L2260 + ldr w2, [x0,424] + str w2, [x0,224] + ldr w2, [x0,428] + str w2, [x0,228] + ldr w2, [x0,344] str w2, [x0,220] - str w1, [x0,344] -.L2242: + ldr w2, [x0,348] + str w2, [x0,208] + ldr w2, [x0,352] + str w2, [x0,200] + ldr w2, [x0,356] + str w2, [x0,216] + ldr w2, [x0,364] + str w2, [x0,244] + ldr w2, [x0,368] + str w2, [x0,-72] + ldr w2, [x0,372] + str w2, [x0,204] + ldr w2, [x0,376] + str w2, [x0,212] + ldr w2, [x0,380] + str w2, [x0,252] + ldr w1, [x0,396] + ldr w2, [x0,384] + str w2, [x0,256] + str w1, [x0,328] +.L2260: add x0, x19, :lo12:.LANCHOR2 - mov w1, 34661 - movk w1, 0x1234, lsl 16 - ldr w2, [x0,420] - str wzr, [x0,2028] - cmp w2, w1 - bne .L2243 + adrp x20, .LANCHOR0 + ldr w1, [x0,404] + str wzr, [x0,2020] + mov w0, 34661 + movk w0, 0x1234, lsl 16 + cmp w1, w0 + bne .L2261 + add x0, x20, :lo12:.LANCHOR0 mov w1, 1 - str w1, [x0,160] - adrp x0, .LC73 - adrp x1, .LC124 - add x0, x0, :lo12:.LC73 - add x1, x1, :lo12:.LC124 + str w1, [x0,1940] + adrp x0, .LC75 + adrp x1, .LC131 + add x0, x0, :lo12:.LC75 + add x1, x1, :lo12:.LC131 bl printk -.L2243: - adrp x2, .LANCHOR0 +.L2261: add x19, x19, :lo12:.LANCHOR2 - add x2, x2, :lo12:.LANCHOR0 + add x20, x20, :lo12:.LANCHOR0 ldr x21, [sp,32] - ldr w3, [x19,204] - ldrh w1, [x2,2008] - ldr w0, [x19,208] - madd w0, w1, w3, w0 - ldrh w1, [x2,1952] + ldrh w1, [x20,2008] + ldr w2, [x19,240] + ldr w0, [x19,244] + madd w0, w1, w2, w0 + ldrh w1, [x20,1956] udiv w0, w0, w1 - str w0, [x19,212] + str w0, [x19,248] ldp x19, x20, [sp,16] ldp x29, x30, [sp], 48 ret .size Ftl_load_ext_data, .-Ftl_load_ext_data .align 2 + .global ftl_vendor_read + .type ftl_vendor_read, %function +ftl_vendor_read: + stp x29, x30, [sp, -16]! + add w0, w0, 256 + add x29, sp, 0 + bl FtlVendorPartRead + ldp x29, x30, [sp], 16 + ret + .size ftl_vendor_read, .-ftl_vendor_read + .align 2 + .global FlashBootVendorRead + .type FlashBootVendorRead, %function +FlashBootVendorRead: + stp x29, x30, [sp, -48]! + add x29, sp, 0 + str x0, [x29,24] + str x1, [x29,32] + str x2, [x29,40] + bl rknand_device_lock + ldr x1, [x29,32] + ldr x2, [x29,40] + ldr x0, [x29,24] + bl ftl_vendor_read + str x0, [x29,40] + bl rknand_device_unlock + ldr x0, [x29,40] + ldp x29, x30, [sp], 48 + ret + .size FlashBootVendorRead, .-FlashBootVendorRead + .align 2 + .global ftl_sys_read + .type ftl_sys_read, %function +ftl_sys_read: + stp x29, x30, [sp, -16]! + add w0, w0, 512 + add x29, sp, 0 + bl FtlVendorPartRead + ldp x29, x30, [sp], 16 + ret + .size ftl_sys_read, .-ftl_sys_read + .align 2 .global StorageSysDataLoad .type StorageSysDataLoad, %function StorageSysDataLoad: stp x29, x30, [sp, -48]! - mov x2, 512 + mov w2, 512 add x29, sp, 0 stp x19, x20, [sp,16] mov w20, w0 mov x19, x1 mov x0, x1 mov w1, 0 - bl memset + bl ftl_memset bl rknand_device_lock mov x2, x19 mov w1, 1 - add w0, w20, 512 - bl FtlVendorPartRead + mov w0, w20 + bl ftl_sys_read str x0, [x29,40] bl rknand_device_unlock ldr x0, [x29,40] @@ -15239,12 +15293,12 @@ FtlMapBlkWriteDumpData: ldr w1, [x0,56] ldrh w20, [x0,6] ldr x4, [x0,40] - cbz w1, .L2245 + cbz w1, .L2266 adrp x3, .LANCHOR2 str wzr, [x0,56] add x3, x3, :lo12:.LANCHOR2 ldr w1, [x3,-96] - cbnz w1, .L2245 + cbnz w1, .L2266 adrp x2, .LANCHOR4 sub w20, w20, #1 add x1, x2, :lo12:.LANCHOR4 @@ -15259,3882 +15313,32 @@ FtlMapBlkWriteDumpData: mov x19, x2 ldr w3, [x4,x3] str w3, [x1,4] - cbz w3, .L2249 + cbz w3, .L2270 mov x0, x1 mov w1, 1 mov w2, w1 bl FlashReadPages - b .L2250 -.L2249: + b .L2271 +.L2270: adrp x2, .LANCHOR0+2028 mov w1, 255 ldrh w2, [x2,#:lo12:.LANCHOR0+2028] bl ftl_memset -.L2250: +.L2271: add x2, x19, :lo12:.LANCHOR4 mov x0, x21 mov w1, w20 ldr x2, [x2,168] bl FtlMapWritePage -.L2245: +.L2266: ldp x19, x20, [sp,16] ldr x21, [sp,32] ldp x29, x30, [sp], 48 ret .size FtlMapBlkWriteDumpData, .-FtlMapBlkWriteDumpData .align 2 - .global FtlRecoverySuperblock - .type FtlRecoverySuperblock, %function -FtlRecoverySuperblock: - stp x29, x30, [sp, -208]! - mov w2, 65535 - 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 - ldrh w0, [x0] - cmp w0, w2 - beq .L2409 - ldrh w0, [x19,2] - adrp x23, .LANCHOR0 - str w0, [x29,188] - ldrb w0, [x19,6] - str w0, [x29,176] - add x0, x23, :lo12:.LANCHOR0 - ldr w1, [x29,188] - ldrh w0, [x0,2018] - cmp w0, w1 - bne .L2254 - strh wzr, [x19,4] - b .L2415 -.L2254: - ldrh w0, [x19,16] - mov w1, 0 -.L2255: - cmp w0, w2 - bne .L2418 - add w1, w1, 1 - uxth w1, w1 - add x0, x19, x1, sxtw 1 - ldrh w0, [x0,16] - b .L2255 -.L2418: - ldrb w1, [x19,8] - cmp w1, 1 - bne .L2257 - bl FtlGetLastWrittenPage - cmn w0, #1 - mov w21, w0 - beq .L2258 - add x0, x23, :lo12:.LANCHOR0 - mov w24, w21 - ldrb w1, [x0,120] - cbnz w1, .L2332 - add x0, x0, 196 - ldrh w24, [x0,w21,sxtw 1] - b .L2332 -.L2257: - mov w1, 0 - bl FtlGetLastWrittenPage - cmn w0, #1 - mov w21, w0 - beq .L2258 - mov w24, w0 -.L2332: - add x0, x23, :lo12:.LANCHOR0 - mov x2, x19 - mov w26, 0 - mov w8, 65535 - mov w9, 56 - adrp x10, .LANCHOR2 - ldrh w4, [x0,1944] - mov w11, 4 - ldrh w7, [x0,2030] - add x4, x19, x4, lsl 1 - b .L2260 -.L2258: - strh wzr, [x19,2] -.L2415: - strb wzr, [x19,6] - b .L2409 -.L2262: - ldrh w1, [x2,16] - cmp w1, w8 - beq .L2261 - add x5, x10, :lo12:.LANCHOR2 - orr w1, w24, w1, lsl 10 - umull x0, w26, w9 - add w3, w26, 1 - ldr x6, [x5,2056] - add x6, x6, x0 - str w1, [x6,4] - ldr x1, [x5,2056] - ldr x5, [x5,904] - add x0, x1, x0 - mul w1, w26, w7 - uxth w26, w3 - str xzr, [x0,8] - sdiv w1, w1, w11 - add x1, x5, x1, sxtw 2 - str x1, [x0,16] -.L2261: - add x2, x2, 2 -.L2260: - cmp x2, x4 - bne .L2262 - ldrb w0, [x19,8] - str wzr, [x29,184] - cmp w0, 1 - bne .L2263 - add x0, x23, :lo12:.LANCHOR0 - ldrb w0, [x0,120] - cmp w0, wzr - cset w0, ne - str w0, [x29,184] -.L2263: - adrp x20, .LANCHOR2 - ldr w2, [x29,184] - add x22, x20, :lo12:.LANCHOR2 - mov w1, w26 - mov x27, 0 - mov w25, 65535 - mov x28, 56 - ldr x0, [x22,2056] - bl FlashReadPages - ldr w0, [x22,200] - adrp x22, .LC125 - str w0, [x29,168] - add x22, x22, :lo12:.LC125 - uxth w0, w24 - str w0, [x29,160] -.L2264: - uxth w2, w27 - cmp w2, w26 - bcs .L2271 - add x6, x20, :lo12:.LANCHOR2 - mul x0, x27, x28 - ldr x4, [x6,2056] - add x1, x4, x0 - ldr w0, [x4,x0] - cbnz w0, .L2265 - ldr x7, [x1,16] - ldr w4, [x7,4] - cmn w4, #1 - beq .L2266 - ldr w1, [x6,200] - mov w0, w4 - str x7, [x29,128] - str x2, [x29,136] - str x4, [x29,144] - str x6, [x29,152] - bl ftl_cmp_data_ver - ldr x6, [x29,152] - ldr x4, [x29,144] - ldr x2, [x29,136] - ldr x7, [x29,128] - cbz w0, .L2266 - add w4, w4, 1 - str w4, [x6,200] -.L2266: - ldr w0, [x7] - cmn w0, #1 - bne .L2267 -.L2271: - cmp w2, w26 - bne .L2410 - add x0, x20, :lo12:.LANCHOR2 - add w21, w21, 1 - uxth w21, w21 - ldr x0, [x0,2056] - ldr w0, [x0,4] - b .L2411 -.L2265: - ldr w1, [x1,4] - mov x0, x22 - bl printk - ldr w25, [x29,160] - adrp x0, .LANCHOR4 - ldrh w1, [x19] - add x0, x0, :lo12:.LANCHOR4 - strh w1, [x0,290] -.L2267: - add x27, x27, 1 - b .L2264 -.L2410: - add x0, x20, :lo12:.LANCHOR2 - mov w1, 56 - uxth w21, w21 - umull x2, w2, w1 - ldr x0, [x0,2056] - add x2, x0, x2 - ldr w0, [x2,4] -.L2411: - lsr x0, x0, 10 - bl P2V_plane - uxth w26, w0 - ldrb w1, [x19,8] - cmp w1, 1 - bne .L2273 - add x0, x23, :lo12:.LANCHOR0 - ldrb w2, [x0,120] - cbnz w2, .L2273 - add x0, x0, 196 - ldrh w21, [x0,w21,sxtw 1] -.L2273: - add x0, x23, :lo12:.LANCHOR0 - ldrh w0, [x0,2018] - cmp w0, w21 - bne .L2274 - strh w21, [x19,2] - strb wzr, [x19,6] - strh wzr, [x19,4] -.L2274: - ldrh w0, [x29,176] - str w0, [x29,152] - ldr w0, [x29,188] - cmp w21, w0 - bne .L2275 - ldr w0, [x29,152] - cmp w26, w0 - beq .L2416 -.L2275: - ldr w0, [x29,168] - sub w22, w0, #1 - mov w0, 65535 - cmp w25, w0 - bne .L2276 - cbnz w1, .L2277 -.L2276: - add x0, x20, :lo12:.LANCHOR2 - uxth w5, w24 - ldr w1, [x0,2348] - cmn w1, #1 - bne .L2278 - str w22, [x0,2348] -.L2278: - add x0, x20, :lo12:.LANCHOR2 - ldr w25, [x29,188] - ldr w6, [x0,2348] - ldr w0, [x29,188] - add w0, w0, 7 - cmp w0, w24, uxth - bge .L2279 - sub w25, w5, #7 - uxth w25, w25 -.L2279: - mov w3, -1 - add x28, x20, :lo12:.LANCHOR2 - mov w27, w3 - mov w4, 65535 - mov w7, 56 - add x8, x28, 996 -.L2280: - cmp w25, w5 - bhi .L2293 - add x0, x23, :lo12:.LANCHOR0 - mov w24, 0 - ldrh w2, [x0,1944] - mov x0, x19 - add x2, x19, x2, lsl 1 -.L2294: - cmp x0, x2 - beq .L2419 - ldrh w1, [x0,16] - cmp w1, w4 - beq .L2281 - umull x9, w24, w7 - ldr x10, [x28,2056] - add w24, w24, 1 - orr w1, w25, w1, lsl 10 - add x9, x10, x9 - uxth w24, w24 - str w1, [x9,4] -.L2281: - add x0, x0, 2 - b .L2294 -.L2419: - ldr x0, [x28,2056] - mov w1, w24 - ldr w2, [x29,184] - str x8, [x29,128] - str x7, [x29,136] - str x4, [x29,144] - str x6, [x29,160] - str x5, [x29,168] - str x3, [x29,176] - bl FlashReadPages - add x0, x23, :lo12:.LANCHOR0 - ldr x3, [x29,176] - ldr x5, [x29,168] - mov w1, 0 - ldr x6, [x29,160] - sxtw x10, w25 - ldrb w9, [x0,120] - ldr x0, [x28,2056] - ldr x4, [x29,144] - ldr x7, [x29,136] - add x0, x0, 16 - ldr x8, [x29,128] -.L2283: - cmp w1, w24 - beq .L2420 - ldr w2, [x0,-16] - cbnz w2, .L2284 - ldr x2, [x0] - ldrh w11, [x2] - cmp w11, w4 - beq .L2285 - ldr w2, [x2,4] - cmn w2, #1 - beq .L2285 - ldr w27, [x28,2348] - cmn w3, #1 - str w2, [x28,2348] - bne .L2285 - ldrh w2, [x8,x10,lsl 1] - cmp w2, w4 - bne .L2286 - cbz w9, .L2285 -.L2286: - cmp w27, w22 - csinv w3, w27, wzr, ne - b .L2285 -.L2284: - adrp x0, .LANCHOR4+290 - ldrh w1, [x19] - strh w1, [x0,#:lo12:.LANCHOR4+290] - ldrb w0, [x19,8] - cbnz w0, .L2277 - add x0, x20, :lo12:.LANCHOR2 - add x1, x0, 996 - ldrh w2, [x1,w25,sxtw 1] - mov w1, 65535 - cmp w2, w1 - bne .L2288 - cmn w3, #1 - beq .L2289 - str w3, [x0,2348] - b .L2277 -.L2289: - cmp w6, w22 - beq .L2290 - str w6, [x0,2348] - b .L2277 -.L2290: - ldr w1, [x0,2348] - b .L2417 -.L2288: - cmp w27, w22 - beq .L2291 - cmn w27, #1 - beq .L2277 - str w27, [x0,2348] - b .L2277 -.L2291: - ldr w1, [x0,2348] - cmp w1, w22 - beq .L2277 -.L2417: - sub w1, w1, #1 - b .L2412 -.L2285: - add w1, w1, 1 - add x0, x0, 56 - uxth w1, w1 - b .L2283 -.L2420: - add w25, w25, 1 - uxth w25, w25 - b .L2280 -.L2293: - add x0, x20, :lo12:.LANCHOR2 - mov w1, -1 -.L2412: - str w1, [x0,2348] -.L2277: - adrp x25, .LANCHOR4 - mov w1, 1 - add x0, x25, :lo12:.LANCHOR4 - strh w1, [x0,292] - add x0, x20, :lo12:.LANCHOR2 - add x0, x0, 2256 - bl FtlMapBlkWriteDumpData - ldr w24, [x29,188] - adrp x0, .LC127 - str x25, [x29,136] - add x0, x0, :lo12:.LC127 - str x0, [x29,128] - adrp x0, .LC126 - add x0, x0, :lo12:.LC126 - str x0, [x29,120] -.L2295: - add x0, x23, :lo12:.LANCHOR0 - mov x1, x19 - str wzr, [x29,176] - mov w7, 65535 - mov w8, 56 - ldrh w3, [x0,1944] - ldrb w6, [x0,120] - add x3, x19, x3, lsl 1 -.L2296: - cmp x1, x3 - beq .L2421 - ldrh w2, [x1,16] - cmp w2, w7 - beq .L2297 - ldr w0, [x29,176] - add x5, x20, :lo12:.LANCHOR2 - orr w2, w24, w2, lsl 10 - ldr x4, [x5,2056] - umull x0, w0, w8 - add x4, x4, x0 - str w2, [x4,4] - ldrb w2, [x19,8] - cmp w2, 1 - bne .L2298 - cbz w6, .L2298 - ldr x2, [x5,2056] - add x0, x2, x0 - ldr w2, [x0,4] - orr w2, w2, -2147483648 - str w2, [x0,4] -.L2298: - ldr w0, [x29,176] - add w0, w0, 1 - uxth w0, w0 - str w0, [x29,176] -.L2297: - add x1, x1, 2 - b .L2296 -.L2421: - add x0, x20, :lo12:.LANCHOR2 - ldr w1, [x29,176] - ldr w2, [x29,184] - ldr x0, [x0,2056] - bl FlashReadPages - str xzr, [x29,160] -.L2300: - ldrh w0, [x29,160] - ldr w1, [x29,176] - cmp w1, w0, uxth - bls .L2422 - ldr x0, [x29,160] - mov x25, 56 - mul x25, x0, x25 - add x0, x20, :lo12:.LANCHOR2 - ldr x28, [x0,2056] - add x27, x28, x25 - ldr w1, [x27,4] - str w1, [x29,204] - lsr x0, x1, 10 - str x1, [x29,168] - bl P2V_plane - uxth w0, w0 - ldr w1, [x29,188] - cmp w24, w1 - ldr x1, [x29,168] - bcc .L2301 - ldr w2, [x29,152] - cmp w0, w2 - bcs .L2336 - ldr w2, [x29,188] - cmp w24, w2 - beq .L2301 -.L2336: - cmp w0, w26 - bne .L2337 - cmp w24, w21 - beq .L2303 -.L2337: - ldr w0, [x28,x25] - cmn w0, #1 - beq .L2305 - ldr x28, [x27,16] - mov w0, 61589 - ldrh w1, [x28] - cmp w1, w0 - bne .L2312 - ldr w22, [x28,4] - cmn w22, #1 - beq .L2307 - add x27, x20, :lo12:.LANCHOR2 - mov w0, w22 - ldr w1, [x27,200] - bl ftl_cmp_data_ver - cbz w0, .L2307 - add w0, w22, 1 - str w0, [x27,200] -.L2307: - ldr w27, [x28,8] - add x1, x29, 200 - ldr w0, [x28,12] - mov w2, 0 - str w0, [x29,196] - mov w0, w27 - bl log2phys - add x3, x20, :lo12:.LANCHOR2 - str x3, [x29,168] - ldr w1, [x3,2348] - cmn w1, #1 - beq .L2308 - mov w0, w22 - bl ftl_cmp_data_ver - ldr x3, [x29,168] - cbz w0, .L2308 - ldr w1, [x29,196] - cmn w1, #1 - beq .L2309 - ldr x0, [x3,2056] - str x3, [x29,112] - add x0, x0, x25 - str w1, [x0,4] - mov w1, 1 - ldr x2, [x0,16] - ldr x0, [x3,2056] - str x2, [x29,168] - mov w2, 0 - add x0, x0, x25 - bl FlashReadPages - ldr x3, [x29,112] - ldr x0, [x29,168] - ldr x2, [x3,2056] - ldr w0, [x0,4] - str w0, [x29,144] - add x4, x2, x25 - ldr w0, [x2,x25] - cmn w0, #1 - bne .L2310 - b .L2311 -.L2309: - ldr w0, [x29,204] - ldr w1, [x29,200] - cmp w1, w0 - bne .L2312 - mov w0, w27 - add x1, x29, 196 - mov w2, 1 - bl log2phys -.L2312: - ldrh w0, [x19] - b .L2414 -.L2310: - ldr x0, [x29,168] - ldr w28, [x0,8] - cmp w28, w27 - bne .L2311 - ldr w0, [x3,2348] - ldr w1, [x29,144] - str x2, [x29,96] - str x4, [x29,104] - str x3, [x29,112] - bl ftl_cmp_data_ver - ldr x3, [x29,112] - ldr x4, [x29,104] - ldr x2, [x29,96] - cbz w0, .L2311 - ldr w0, [x29,200] - ldr w1, [x29,204] - cmp w0, w1 - beq .L2317 - ldr w1, [x29,196] - cmp w0, w1 - beq .L2311 - cmn w0, #1 - beq .L2315 - str w0, [x4,4] - mov w2, 0 - ldr x1, [x4,16] - ldr x0, [x3,2056] - str x1, [x29,168] - mov w1, 1 - add x0, x0, x25 - bl FlashReadPages - b .L2316 -.L2315: - str w0, [x2,x25] -.L2316: - add x0, x20, :lo12:.LANCHOR2 - ldr x1, [x0,2056] - ldr w1, [x1,x25] - cmn w1, #1 - beq .L2317 - ldr x1, [x29,168] - ldr w0, [x0,2348] - ldr w25, [x1,4] - mov w1, w25 - bl ftl_cmp_data_ver - cbz w0, .L2317 - ldr w0, [x29,144] - mov w1, w25 - bl ftl_cmp_data_ver - cbz w0, .L2311 -.L2317: - ldr w1, [x29,196] - mov w0, w28 - bl FtlReUsePrevPpa -.L2311: - mov w0, -1 - str w0, [x29,196] - ldrh w0, [x19] - bl decrement_vpc_count - b .L2319 -.L2308: - ldr w0, [x29,204] - ldr w1, [x29,200] - cmp w1, w0 - beq .L2319 - mov w0, w27 - add x1, x29, 204 - mov w2, 1 - bl log2phys - ldr w25, [x29,200] - cmn w25, #1 - beq .L2319 - ldr w0, [x29,196] - cmp w25, w0 - beq .L2319 - lsr x0, x25, 10 - bl P2V_block_in_plane - uxth w0, w0 - ldrh w2, [x20,#:lo12:.LANCHOR2] - add x1, x20, :lo12:.LANCHOR2 - cmp w2, w0 - beq .L2322 - ldrh w2, [x1,48] - cmp w2, w0 - beq .L2322 - ldrh w1, [x1,96] - cmp w1, w0 - bne .L2319 -.L2322: - add x28, x20, :lo12:.LANCHOR2 - mov w1, 1 - mov w2, 0 - ldr x0, [x28,2056] - str w25, [x0,4] - ldr x3, [x0,16] - ldr x0, [x28,2056] - str x3, [x29,168] - bl FlashReadPages - ldr x0, [x28,2056] - ldr x3, [x29,168] - ldr w0, [x0] - ldr w1, [x3,4] - cmn w0, #1 - beq .L2319 - mov w0, w22 - bl ftl_cmp_data_ver - cbnz w0, .L2319 - mov w0, w27 - add x1, x29, 200 - mov w2, 1 - bl log2phys -.L2319: - ldr w0, [x29,196] - cmn w0, #1 - beq .L2301 - 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,-40] - ldrh w2, [x2,x3] - cbz w2, .L2323 -.L2414: - bl decrement_vpc_count - b .L2301 -.L2323: - ldr x0, [x29,120] - bl printk - b .L2301 -.L2305: - ldr x2, [x29,136] - ldrh w0, [x19] - add x25, x2, :lo12:.LANCHOR4 - mov w2, w22 - strh w0, [x25,290] - ldr x0, [x29,128] - bl printk - ldr w0, [x25,296] - cmp w0, 31 - bhi .L2324 - add x1, x25, 304 - ldr w2, [x29,204] - str w2, [x1,w0,uxtw 2] - add w0, w0, 1 - str w0, [x25,296] -.L2324: - ldrh w0, [x19] - bl decrement_vpc_count - add x0, x20, :lo12:.LANCHOR2 - ldr w1, [x0,2348] - cmn w1, #1 - beq .L2413 - cmp w1, w22 - bls .L2301 -.L2413: - str w22, [x0,2348] -.L2301: - ldr x0, [x29,160] - add x0, x0, 1 - str x0, [x29,160] - b .L2300 -.L2422: - ldrb w0, [x19,8] - add w24, w24, 1 - cmp w0, 1 - uxth w24, w24 - bne .L2327 - add x0, x23, :lo12:.LANCHOR0 - ldrb w1, [x0,120] - cbz w1, .L2327 - cmp w21, w24 - bne .L2327 - ldrh w0, [x0,2020] - cmp w0, w24 - beq .L2303 -.L2327: - add x0, x23, :lo12:.LANCHOR0 - ldrh w1, [x0,2018] - cmp w24, w1 - bne .L2295 - ldrh w2, [x0,1944] - mov w3, 65535 - strh w24, [x19,2] - mov x0, 0 - strh wzr, [x19,4] -.L2329: - uxth w1, w0 - cmp w1, w2 - bcs .L2409 - add x0, x0, 1 - add x4, x19, x0, lsl 1 - ldrh w4, [x4,14] - cmp w4, w3 - beq .L2329 - strb w1, [x19,6] - b .L2409 -.L2303: - strb w26, [x19,6] - strh w21, [x19,2] -.L2416: - mov x0, x19 - mov w1, w21 - mov w2, w26 - bl ftl_sb_update_avl_pages -.L2409: - 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], 208 - ret - .size FtlRecoverySuperblock, .-FtlRecoverySuperblock - .align 2 - .global FtlWriteDumpData - .type FtlWriteDumpData, %function -FtlWriteDumpData: - stp x29, x30, [sp, -144]! - add x29, sp, 0 - stp x19, x20, [sp,16] - adrp x19, .LANCHOR2 - str x25, [sp,64] - add x20, x19, :lo12:.LANCHOR2 - stp x21, x22, [sp,32] - stp x23, x24, [sp,48] - ldr w0, [x20,-96] - cbnz w0, .L2423 - ldrh w1, [x20,4] - cbz w1, .L2425 - ldrb w0, [x20,8] - cbnz w0, .L2425 - adrp x22, .LANCHOR0 - ldrb w0, [x20,7] - add x22, x22, :lo12:.LANCHOR0 - ldrh w2, [x22,2018] - mul w0, w0, w2 - cmp w1, w0 - beq .L2425 - ldrb w24, [x20,10] - ldr w23, [x22,2096] - ldrh w25, [x22,1944] - cbnz w24, .L2423 - sub w23, w23, #1 - add x1, x29, 84 - mov w0, w23 - mov w2, w24 - bl log2phys - ldr x21, [x20,2120] - ldr w0, [x29,84] - ldr x1, [x20,-64] - str w0, [x29,92] - cmn w0, #1 - str w23, [x29,112] - str x1, [x29,96] - str x21, [x29,104] - str w24, [x21,4] - beq .L2427 - add x0, x29, 88 - mov w1, 1 - mov w2, w24 - bl FlashReadPages - b .L2428 -.L2427: - ldr x0, [x20,-64] - mov w1, 255 - ldrh w2, [x22,2028] - bl ftl_memset -.L2428: - mov w0, -3947 - lsl w25, w25, 2 - strh w0, [x21] - mov w22, 0 - add x20, x19, :lo12:.LANCHOR2 -.L2429: - cmp w22, w25 - beq .L2430 - ldrh w0, [x20,4] - cbz w0, .L2430 - ldr w0, [x29,92] - add w22, w22, 1 - str w0, [x21,12] - ldrh w0, [x20] - strh w0, [x21,2] - mov x0, x20 - str w23, [x21,8] - bl get_new_active_ppa - str w0, [x29,92] - ldr w1, [x20,200] - mov w2, 0 - str w1, [x21,4] - mov w3, w2 - add w1, w1, 1 - add x0, x29, 88 - cmn w1, #1 - csel w1, w1, wzr, ne - str w1, [x20,200] - mov w1, 1 - bl FlashProgPages - ldrh w0, [x20] - bl decrement_vpc_count - b .L2429 -.L2430: - add x19, x19, :lo12:.LANCHOR2 - mov w0, 1 - strb w0, [x19,10] - b .L2423 -.L2425: - add x19, x19, :lo12:.LANCHOR2 - strb wzr, [x19,10] -.L2423: - ldp x19, x20, [sp,16] - ldp x21, x22, [sp,32] - ldp x23, x24, [sp,48] - ldr x25, [sp,64] - ldp x29, x30, [sp], 144 - ret - .size FtlWriteDumpData, .-FtlWriteDumpData - .align 2 - .global l2p_flush - .type l2p_flush, %function -l2p_flush: - stp x29, x30, [sp, -48]! - add x29, sp, 0 - stp x19, x20, [sp,16] - str x21, [sp,32] - mov w19, 0 - adrp x20, .LANCHOR0 - adrp x21, .LANCHOR2 - bl FtlWriteDumpData -.L2441: - add x0, x20, :lo12:.LANCHOR0 - ldrh w0, [x0,2058] - cmp w0, w19 - bls .L2444 - add x1, x21, :lo12:.LANCHOR2 - ubfiz x0, x19, 4, 16 - ldr x1, [x1,144] - add x0, x1, x0 - ldr w0, [x0,4] - tbz w0, #31, .L2442 - mov w0, w19 - bl flush_l2p_region -.L2442: - add w19, w19, 1 - uxth w19, w19 - b .L2441 -.L2444: - mov w0, 0 - ldr x21, [sp,32] - ldp x19, x20, [sp,16] - ldp x29, x30, [sp], 48 - ret - .size l2p_flush, .-l2p_flush - .align 2 - .global FtlVpcCheckAndModify - .type FtlVpcCheckAndModify, %function -FtlVpcCheckAndModify: - stp x29, x30, [sp, -80]! - adrp x1, .LANCHOR3 - adrp x0, .LC128 - add x1, x1, :lo12:.LANCHOR3 - add x29, sp, 0 - add x1, x1, 16 - add x0, x0, :lo12:.LC128 - stp x19, x20, [sp,16] - stp x21, x22, [sp,32] - stp x23, x24, [sp,48] - adrp x21, .LANCHOR0 - bl printk - add x1, x21, :lo12:.LANCHOR0 - adrp x20, .LANCHOR2 - add x0, x20, :lo12:.LANCHOR2 - mov w19, 0 - ldrh w2, [x1,1954] - mov w1, 0 - ldr x0, [x0,2168] - lsl w2, w2, 1 - bl ftl_memset -.L2446: - add x0, x21, :lo12:.LANCHOR0 - ldr w0, [x0,2096] - cmp w19, w0 - bcs .L2461 - mov w0, w19 - add x1, x29, 76 - mov w2, 0 - bl log2phys - ldr w0, [x29,76] - cmn w0, #1 - beq .L2447 - lsr x0, x0, 10 - bl P2V_block_in_plane - ubfiz x0, x0, 1, 16 - add x1, x20, :lo12:.LANCHOR2 - ldr x2, [x1,2168] - ldrh w1, [x2,x0] - add w1, w1, 1 - strh w1, [x2,x0] -.L2447: - add w19, w19, 1 - b .L2446 -.L2461: - adrp x23, .LC129 - mov w19, 0 - add x20, x20, :lo12:.LANCHOR2 - mov w24, 65535 - add x23, x23, :lo12:.LC129 -.L2449: - add x0, x21, :lo12:.LANCHOR0 - ldrh w0, [x0,1952] - cmp w0, w19 - bls .L2462 - ubfiz x22, x19, 1, 16 - ldr x0, [x20,-40] - ldrh w2, [x0,x22] - ldr x0, [x20,2168] - ldrh w3, [x0,x22] - cmp w2, w3 - beq .L2452 - cmp w2, w24 - beq .L2452 - mov x0, x23 - mov w1, w19 - bl printk - ldrh w0, [x20] - cmp w0, w19 - beq .L2452 - ldrh w0, [x20,96] - cmp w0, w19 - beq .L2452 - ldrh w0, [x20,48] - cmp w0, w19 - beq .L2452 - ldr x0, [x20,2168] - ldrh w1, [x0,x22] - ldr x0, [x20,-40] - strh w1, [x0,x22] - mov w0, w19 - bl update_vpc_list - bl l2p_flush - bl FtlVpcTblFlush -.L2452: - add w19, w19, 1 - uxth w19, w19 - b .L2449 -.L2462: - ldp x19, x20, [sp,16] - ldp x21, x22, [sp,32] - ldp x23, x24, [sp,48] - ldp x29, x30, [sp], 80 - ret - .size FtlVpcCheckAndModify, .-FtlVpcCheckAndModify - .align 2 - .global allocate_new_data_superblock - .type allocate_new_data_superblock, %function -allocate_new_data_superblock: - stp x29, x30, [sp, -48]! - add x29, sp, 0 - stp x19, x20, [sp,16] - adrp x19, .LANCHOR2 - str x21, [sp,32] - add x2, x19, :lo12:.LANCHOR2 - ldrh w20, [x0] - ldr w1, [x2,-96] - cbnz w1, .L2464 - mov x21, x0 - mov w0, 65535 - cmp w20, w0 - beq .L2465 - ubfiz x1, x20, 1, 16 - ldr x0, [x2,-40] - ldrh w0, [x0,x1] - cbz w0, .L2466 - mov w0, w20 - bl INSERT_DATA_LIST - b .L2465 -.L2466: - mov w0, w20 - bl INSERT_FREE_LIST -.L2465: - add x3, x19, :lo12:.LANCHOR2 - strb wzr, [x21,8] - add x0, x3, 48 - cmp x21, x0 - beq .L2467 - adrp x1, .LANCHOR0 - add x1, x1, :lo12:.LANCHOR0 - ldrh w2, [x1,1964] - cmp w2, 1 - beq .L2467 - ldrb w0, [x1,120] - cbz w0, .L2468 -.L2467: - mov w0, 1 - strb w0, [x21,8] - b .L2469 -.L2468: - cmp x21, x3 - bne .L2469 - cmp w2, 3 - beq .L2471 - ldr w0, [x21,344] - cmp w0, 1 - bne .L2472 -.L2471: - add x1, x19, :lo12:.LANCHOR2 - mov w0, 1 - strb w0, [x1,8] -.L2472: - add x1, x19, :lo12:.LANCHOR2 - ldr w0, [x1,160] - cbz w0, .L2469 - ldr w0, [x1,220] - cmp w0, 29 - bhi .L2469 - mov w0, 1 - strb w0, [x1,8] -.L2469: - add x3, x19, :lo12:.LANCHOR2 - mov w0, 65535 - ldrh w1, [x3,2336] - cmp w1, w0 - beq .L2474 - cmp w20, w1 - bne .L2475 - ubfiz x2, x1, 1, 16 - ldr x0, [x3,-40] - ldrh w0, [x0,x2] - cbz w0, .L2476 -.L2475: - mov w0, w1 - bl update_vpc_list -.L2476: - add x19, x19, :lo12:.LANCHOR2 - mov w0, -1 - strh w0, [x19,2336] -.L2474: - mov x0, x21 - bl allocate_data_superblock - bl l2p_flush - mov w0, 0 - bl FtlEctTblFlush - bl FtlVpcTblFlush -.L2464: - mov w0, 0 - ldr x21, [sp,32] - ldp x19, x20, [sp,16] - ldp x29, x30, [sp], 48 - ret - .size allocate_new_data_superblock, .-allocate_new_data_superblock - .align 2 - .global rk_ftl_garbage_collect - .type rk_ftl_garbage_collect, %function -rk_ftl_garbage_collect: - stp x29, x30, [sp, -144]! - mov w2, 0 - add x29, sp, 0 - stp x19, x20, [sp,16] - adrp x19, .LANCHOR2 - add x3, x19, :lo12:.LANCHOR2 - stp x21, x22, [sp,32] - stp x23, x24, [sp,48] - stp x25, x26, [sp,64] - stp x27, x28, [sp,80] - ldr w4, [x3,-96] - cbnz w4, .L2634 - ldr w4, [x3,2032] - cbnz w4, .L2634 - ldrh w4, [x3,-24] - cmp w4, 47 - bls .L2634 - mov w23, w0 - adrp x0, .LANCHOR1+3008 - mov w22, w1 - ldrh w1, [x0,#:lo12:.LANCHOR1+3008] - mov w0, 65535 - cmp w1, w0 - bne .L2491 -.L2494: - add x0, x19, :lo12:.LANCHOR2 - mov w2, 65535 - ldrh w1, [x0,954] - cmp w1, w2 - bne .L2492 - b .L2493 -.L2491: - ldrh w1, [x3,96] - cmp w1, w0 - beq .L2494 - mov w0, 1 - bl FtlGcFreeTempBlock - mov w2, 1 - cbz w0, .L2494 - b .L2634 -.L2492: - ldrh w3, [x0,952] - cmp w3, w2 - bne .L2493 - strh w1, [x0,952] - mov w1, -1 - strh w1, [x0,954] -.L2493: - add x1, x19, :lo12:.LANCHOR2 - cmp w23, 1 - ldr w0, [x1,868] - add w0, w0, 1 - add w0, w0, w23, lsl 7 - str w0, [x1,868] - bne .L2505 - ldr w1, [x1,160] - cbnz w1, .L2496 - adrp x1, .LANCHOR0+120 - ldrb w1, [x1,#:lo12:.LANCHOR0+120] - cbz w1, .L2505 -.L2496: - add x20, x19, :lo12:.LANCHOR2 - ldr w1, [x20,220] - cmp w1, 29 - bhi .L2505 - adrp x21, .LANCHOR4 - add x1, x21, :lo12:.LANCHOR4 - ldrh w1, [x1,432] - add w0, w0, w1 - str w0, [x20,868] - bl FtlGcReFreshBadBlk - ldrh w0, [x20,296] - mov w1, 65535 - cmp w0, w1 - bne .L2505 - ldrh w1, [x20,952] - cmp w1, w0 - bne .L2505 - ldr w0, [x20,868] - cmp w0, 1024 - bhi .L2497 - ldrh w0, [x20,-8] - cmp w0, 63 - bhi .L2505 -.L2497: - add x0, x19, :lo12:.LANCHOR2 - add x1, x21, :lo12:.LANCHOR4 - ldrh w2, [x0,866] - ldrh w3, [x0,-8] - add w2, w2, 64 - strh wzr, [x1,432] - cmp w3, w2 - bgt .L2505 - str wzr, [x0,868] - ldr w0, [x0,220] - cbnz w0, .L2498 - mov w0, 6 - b .L2656 -.L2498: - cmp w0, 5 - bhi .L2499 - mov w0, 18 -.L2656: - strh w0, [x1,432] -.L2499: - mov w0, 32 - mov w27, 65535 - bl List_get_gc_head_node - uxth w25, w0 - cmp w25, w27 - beq .L2504 - add x24, x19, :lo12:.LANCHOR2 - ldrh w0, [x24,872] - cbz w0, .L2501 - adrp x2, .LANCHOR0 - ldr x26, [x24,-40] - add x2, x2, :lo12:.LANCHOR0 - ubfiz x25, x25, 1, 16 - ldrh w1, [x2,2020] - ldrh w2, [x2,1944] - ldrh w3, [x26,x25] - mul w1, w1, w2 - add w1, w1, 1 - cmp w3, w1 - bgt .L2504 - add w1, w0, 1 - str wzr, [x24,876] - uxth w1, w1 - strh w1, [x24,872] - str x1, [x29,120] - bl List_get_gc_head_node - uxth w20, w0 - cmp w20, w27 - ldr x1, [x29,120] - beq .L2504 - ubfiz x27, x20, 1, 16 - adrp x0, .LC130 - ldrh w4, [x26,x25] - add x0, x0, :lo12:.LC130 - mov w2, w20 - ldrh w3, [x26,x27] - bl printk - ldrh w0, [x24,872] - cmp w0, 40 - bls .L2502 - ldr x0, [x24,-40] - ldrh w0, [x0,x27] - cmp w0, 32 - bls .L2502 - strh wzr, [x24,872] -.L2502: - add x21, x21, :lo12:.LANCHOR4 - mov w0, 6 - strh w0, [x21,432] - b .L2506 -.L2501: - mov w0, 1 - strh w0, [x24,872] -.L2504: - bl GetSwlReplaceBlock - uxth w20, w0 - mov w0, 65535 - cmp w20, w0 - bne .L2506 - add x21, x21, :lo12:.LANCHOR4 - strh wzr, [x21,432] -.L2505: - add x21, x19, :lo12:.LANCHOR2 - mov w0, 65535 - ldrh w20, [x21,296] - cmp w20, w0 - bne .L2660 - ldrh w0, [x21,96] - cmp w0, w20 - beq .L2661 -.L2506: - mov w0, 65535 - cmp w20, w0 - cset w1, eq - cbz w1, .L2519 - cbnz w23, .L2519 - add x0, x19, :lo12:.LANCHOR2 - mov w21, 1 - ldrh w1, [x0,-8] - cmp w1, 24 - bhi .L2520 - adrp x0, .LANCHOR0 - cmp w1, 16 - add x0, x0, :lo12:.LANCHOR0 - ldrh w21, [x0,2018] - bls .L2521 - lsr w21, w21, 5 - b .L2520 -.L2521: - cmp w1, 12 - bls .L2522 - lsr w21, w21, 4 - b .L2520 -.L2522: - cmp w1, 8 - bls .L2520 - lsr w21, w21, 2 -.L2520: - add x0, x19, :lo12:.LANCHOR2 - ldrh w2, [x0,864] - cmp w2, w1 - bcs .L2524 - ldrh w1, [x0,96] - mov w2, 65535 - cmp w1, w2 - bne .L2525 - ldrh w2, [x0,952] - cmp w2, w1 - bne .L2525 - adrp x1, .LANCHOR4+432 - ldrh w2, [x1,#:lo12:.LANCHOR4+432] - cbnz w2, .L2526 - adrp x1, .LANCHOR0+2096 - ldr w3, [x0,156] - ldr w1, [x1,#:lo12:.LANCHOR0+2096] - add w1, w1, w1, lsl 1 - cmp w3, w1, lsr 2 - bcs .L2527 -.L2526: - add x1, x19, :lo12:.LANCHOR2 - ldrh w0, [x1,272] - add w0, w0, w0, lsl 1 - asr w0, w0, 2 - strh w0, [x1,864] - b .L2528 -.L2527: - mov w1, 18 - strh w1, [x0,864] -.L2528: - add x19, x19, :lo12:.LANCHOR2 - str wzr, [x19,876] - b .L2634 -.L2525: - add x1, x19, :lo12:.LANCHOR2 - ldrh w0, [x1,272] - add w0, w0, w0, lsl 1 - asr w0, w0, 2 - strh w0, [x1,864] -.L2524: - cmp w22, 2 - bhi .L2589 - add x0, x19, :lo12:.LANCHOR2 - ldr w0, [x0,160] - cbz w0, .L2589 - add w21, w21, 1 - uxth w21, w21 - b .L2589 -.L2519: - add x21, x19, :lo12:.LANCHOR2 - mov w2, 65535 - ldrh w0, [x21,96] - cmp w0, w2 - bne .L2531 - cbz w1, .L2531 - ldrh w1, [x21,952] - cmp w1, w0 - bne .L2531 - ldrh w1, [x21,296] - cmp w1, w0 - beq .L2532 -.L2537: - mov w20, 65535 - b .L2531 -.L2532: - ldrh w24, [x21,-8] - adrp x20, .LANCHOR4 - ldrh w0, [x21,864] - str wzr, [x21,876] - cmp w0, w24 - bcs .L2533 - add x0, x20, :lo12:.LANCHOR4 - ldrh w0, [x0,432] - cbnz w0, .L2534 - adrp x0, .LANCHOR0+2096 - ldr w1, [x21,156] - ldr w0, [x0,#:lo12:.LANCHOR0+2096] - add w0, w0, w0, lsl 1 - cmp w1, w0, lsr 2 - bcs .L2535 -.L2534: - add x19, x19, :lo12:.LANCHOR2 - ldrh w0, [x19,272] - add w0, w0, w0, lsl 1 - asr w0, w0, 2 - strh w0, [x19,864] - b .L2536 -.L2535: - mov w0, 18 - strh w0, [x21,864] -.L2536: - add x20, x20, :lo12:.LANCHOR4 - bl FtlReadRefresh - ldrh w2, [x20,432] - b .L2634 -.L2533: - add x22, x20, :lo12:.LANCHOR4 - ldrh w0, [x22,432] - cbnz w0, .L2537 - ldrh w20, [x21,272] - add w1, w20, w20, lsl 1 - asr w1, w1, 2 - strh w1, [x21,864] - bl List_get_gc_head_node - ubfiz x0, x0, 1, 16 - ldr x1, [x21,-40] - ldrh w2, [x1,x0] - adrp x1, .LANCHOR0 - add x1, x1, :lo12:.LANCHOR0 - ldrh w0, [x1,2020] - ldrh w1, [x1,1944] - mul w0, w0, w1 - mov w1, 2 - sdiv w0, w0, w1 - cmp w2, w0 - ble .L2538 - sub w20, w20, #1 - cmp w24, w20 - blt .L2538 - bl FtlReadRefresh - ldrh w2, [x22,432] - b .L2634 -.L2538: - cbnz w2, .L2537 - mov w0, -1 - add x19, x19, :lo12:.LANCHOR2 - bl decrement_vpc_count - ldrh w2, [x19,-8] - add w2, w2, 1 - b .L2634 -.L2531: - add x0, x19, :lo12:.LANCHOR2 - mov w21, 2 - ldr w0, [x0,160] - cmp w0, wzr - csinc w21, w21, wzr, ne - b .L2530 -.L2589: - mov w20, 65535 -.L2530: - add x0, x19, :lo12:.LANCHOR2 - mov w2, 65535 - ldrh w1, [x0,296] - cmp w1, w2 - bne .L2540 - cmp w20, w1 - beq .L2541 - strh w20, [x0,296] - b .L2542 -.L2541: - ldrh w1, [x0,952] - cmp w1, w20 - beq .L2542 - ubfiz x1, x1, 1, 16 - ldr x2, [x0,-40] - ldrh w1, [x2,x1] - cbnz w1, .L2543 - mov w1, -1 - strh w1, [x0,952] -.L2543: - add x0, x19, :lo12:.LANCHOR2 - ldrh w1, [x0,952] - strh w1, [x0,296] - mov w1, -1 - strh w1, [x0,952] -.L2542: - add x22, x19, :lo12:.LANCHOR2 - mov w1, 65535 - ldrh w0, [x22,296] - strb wzr, [x22,304] - cmp w0, w1 - beq .L2540 - bl IsBlkInGcList - cbz w0, .L2545 - mov w0, -1 - strh w0, [x22,296] -.L2545: - adrp x0, .LANCHOR0+120 - ldrb w0, [x0,#:lo12:.LANCHOR0+120] - cbz w0, .L2546 - add x0, x19, :lo12:.LANCHOR2 - add x22, x0, 296 - ldrh w0, [x0,296] - bl ftl_get_blk_mode - strb w0, [x22,8] -.L2546: - add x22, x19, :lo12:.LANCHOR2 - mov w0, 65535 - add x24, x22, 296 - ldrh w1, [x22,296] - cmp w1, w0 - beq .L2540 - mov x0, x24 - bl make_superblock - strh wzr, [x22,298] - adrp x0, .LANCHOR4 - ldrh w2, [x22,296] - add x0, x0, :lo12:.LANCHOR4 - ldr x1, [x22,-40] - strb wzr, [x22,302] - strh wzr, [x0,434] - ldrh w1, [x1,x2,lsl 1] - strh w1, [x0,436] -.L2540: - add x3, x19, :lo12:.LANCHOR2 - ldrh w1, [x19,#:lo12:.LANCHOR2] - ldrh w0, [x3,296] - cmp w1, w0 - beq .L2547 - ldrh w1, [x3,48] - cmp w1, w0 - beq .L2547 -.L2548: - mov x28, x3 - mov w24, 65535 - b .L2549 -.L2547: - add x19, x19, :lo12:.LANCHOR2 - mov w0, -1 - strh w0, [x19,296] - b .L2659 -.L2570: - ldrh w0, [x28,298] - add w21, w21, w0 - uxth w21, w21 - strh w21, [x28,298] - cmp w21, w25 - bcs .L2662 -.L2572: - ldrh w0, [x28,-8] - cmp w0, 2 - bhi .L2575 - adrp x0, .LANCHOR0 - add x0, x0, :lo12:.LANCHOR0 - ldrh w21, [x0,2018] -.L2549: - ldrh w0, [x28,296] - cmp w0, w24 - bne .L2550 - str wzr, [x28,876] -.L2551: - ldrh w22, [x28,872] - mov w0, w22 - bl List_get_gc_head_node - uxth w25, w0 - cmp w25, w24 - strh w25, [x28,296] - bne .L2552 - strh wzr, [x28,872] - mov w2, 8 - b .L2634 -.L2552: - mov w0, w25 - add w22, w22, 1 - bl IsBlkInGcList - cbz w0, .L2553 - strh w22, [x28,872] - b .L2551 -.L2553: - adrp x0, .LANCHOR0 - ubfiz x1, x25, 1, 16 - add x5, x0, :lo12:.LANCHOR0 - ldr x2, [x28,-40] - uxth w22, w22 - mov w3, 2 - strh w22, [x28,872] - ldrh w0, [x5,2018] - ldrh w5, [x5,1944] - ldrh w4, [x2,x1] - mul w0, w0, w5 - sdiv w5, w0, w3 - cmp w4, w5 - bgt .L2555 - cmp w4, 8 - bls .L2556 - cmp w22, 48 - bls .L2556 - ldrh w4, [x28,924] - cmp w4, 35 - bhi .L2556 -.L2555: - strh wzr, [x28,872] -.L2556: - ldrh w1, [x2,x1] - cmp w1, w0 - blt .L2557 - cmp w20, w24 - bne .L2557 - add x19, x19, :lo12:.LANCHOR2 - mov w0, -1 - strh wzr, [x19,872] - strh w0, [x19,296] -.L2659: - adrp x0, .LANCHOR4+432 - ldrh w2, [x0,#:lo12:.LANCHOR4+432] - b .L2634 -.L2557: - cbnz w1, .L2558 - mov w0, -1 - bl decrement_vpc_count - ldrh w0, [x28,872] - add w0, w0, 1 - strh w0, [x28,872] - b .L2551 -.L2558: - adrp x0, .LANCHOR0 - strb wzr, [x28,304] - add x0, x0, :lo12:.LANCHOR0 - ldrb w0, [x0,120] - cbz w0, .L2559 - mov w0, w25 - bl ftl_get_blk_mode - strb w0, [x28,304] -.L2559: - add x22, x28, 296 - mov x0, x22 - bl make_superblock - adrp x1, .LANCHOR4 - ldrh w2, [x28,296] - add x1, x1, :lo12:.LANCHOR4 - ldr x0, [x28,-40] - strh wzr, [x1,434] - ldrh w0, [x0,x2,lsl 1] - strh w0, [x1,436] - strh wzr, [x28,298] - strb wzr, [x28,302] -.L2550: - cmp w23, 1 - bne .L2560 - bl FtlReadRefresh -.L2560: - mov w0, 1 - str w0, [x28,2032] - adrp x0, .LANCHOR0 - add x0, x0, :lo12:.LANCHOR0 - ldrb w1, [x0,120] - ldrh w25, [x0,2018] - cbz w1, .L2561 - ldrb w1, [x28,304] - cmp w1, 1 - bne .L2561 - ldrh w25, [x0,2020] -.L2561: - ldrh w0, [x28,298] - add w1, w0, w21 - cmp w1, w25 - ble .L2562 - sub w21, w25, w0 - uxth w21, w21 -.L2562: - mov w26, 0 -.L2563: - cmp w21, w26, uxth - bls .L2570 - adrp x0, .LANCHOR0 - add x1, x28, 296 - add x0, x0, :lo12:.LANCHOR0 - ldrh w4, [x1,2] - add w4, w4, w26 - ldrh w6, [x0,1944] - mov x0, 0 - mov w22, w0 -.L2571: - cmp w6, w0, uxth - bls .L2663 - add x2, x1, x0, lsl 1 - ldrh w2, [x2,16] - cmp w2, w24 - beq .L2564 - mov w3, 56 - ldr x7, [x28,912] - 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] -.L2564: - add x0, x0, 1 - b .L2571 -.L2663: - ldr x0, [x28,912] - mov w1, w22 - ldrb w2, [x28,304] - mov x27, 0 - bl FlashReadPages -.L2566: - cmp w22, w27, uxth - bls .L2664 - mov x0, 56 - mul x4, x27, x0 - ldr x0, [x28,912] - add x1, x0, x4 - ldr w0, [x0,x4] - cmn w0, #1 - ldr x5, [x1,16] - beq .L2591 - ldrh w0, [x5] - mov w1, 61589 - cmp w0, w1 - bne .L2591 - ldr w0, [x5,8] - add x1, x29, 140 - mov w2, 0 - str x4, [x29,112] - str x5, [x29,120] - bl log2phys - ldr x2, [x28,912] - ldr x4, [x29,112] - ldr w0, [x29,140] - add x2, x2, x4 - ldr x5, [x29,120] - and w0, w0, 2147483647 - ldr w1, [x2,4] - cmp w0, w1 - bne .L2591 - adrp x0, .LANCHOR4 - mov x3, 56 - add x1, x0, :lo12:.LANCHOR4 - str x4, [x29,104] - str x5, [x29,112] - ldrh w0, [x1,434] - add w0, w0, 1 - strh w0, [x1,434] - ldr w0, [x28,880] - ldr x1, [x28,2064] - madd x1, x0, x3, x1 - ldr w0, [x2,24] - str x1, [x29,120] - str w0, [x1,24] - bl Ftl_get_new_temp_ppa - ldr x1, [x29,120] - mov x2, 56 - ldr x4, [x29,104] - ldr x5, [x29,112] - str w0, [x1,4] - ldr w0, [x28,880] - ldr x1, [x28,2064] - madd x0, x0, x2, x1 - ldr x1, [x28,912] - add x1, x1, x4 - ldr x2, [x1,8] - str x2, [x0,8] - add x2, x28, 96 - str x2, [x29,120] - ldr x1, [x1,16] - str x1, [x0,16] - mov w1, 1 - ldr w0, [x29,140] - str w0, [x5,12] - ldrh w0, [x28,96] - strh w0, [x5,2] - ldr w0, [x28,200] - str w0, [x5,4] - ldr w0, [x28,880] - add w0, w0, 1 - str w0, [x28,880] - ldr x0, [x28,912] - add x0, x0, x4 - bl FtlGcBufAlloc - adrp x0, .LANCHOR0 - add x0, x0, :lo12:.LANCHOR0 - ldrb w0, [x0,120] - cbnz w0, .L2568 - ldr x2, [x29,120] - ldr w1, [x28,880] - ldrb w0, [x2,7] - cmp w1, w0 - beq .L2568 - ldrh w0, [x2,4] - cbnz w0, .L2591 -.L2568: - bl Ftl_gc_temp_data_write_back - cbz w0, .L2591 - adrp x0, .LANCHOR4 - add x19, x19, :lo12:.LANCHOR2 - add x0, x0, :lo12:.LANCHOR4 - str wzr, [x19,2032] - ldrh w2, [x0,432] - b .L2634 -.L2591: - add x27, x27, 1 - b .L2566 -.L2664: - add w26, w26, 1 - b .L2563 -.L2662: - ldr w0, [x28,880] - adrp x21, .LANCHOR4 - cbz w0, .L2573 - bl Ftl_gc_temp_data_write_back - cbz w0, .L2573 - add x21, x21, :lo12:.LANCHOR4 - str wzr, [x28,2032] - ldrh w2, [x21,432] - b .L2634 -.L2573: - add x21, x21, :lo12:.LANCHOR4 - ldrh w2, [x21,434] - cbnz w2, .L2574 - ldrh w0, [x28,296] - ldr x1, [x28,-40] - lsl x0, x0, 1 - ldrh w4, [x1,x0] - cbz w4, .L2574 - strh w2, [x1,x0] - ldrh w0, [x28,296] - bl update_vpc_list - bl FtlCacheWriteBack - bl l2p_flush - bl FtlVpcTblFlush -.L2574: - mov w0, -1 - strh w0, [x28,296] - b .L2572 -.L2575: - adrp x1, .LANCHOR4+432 - str wzr, [x28,2032] - ldrh w2, [x1,#:lo12:.LANCHOR4+432] - cmp w2, wzr - csinc w2, w2, w0, ne - b .L2634 -.L2661: - ldrh w25, [x21,952] - cmp w25, w20 - bne .L2506 - ldrh w0, [x21,-8] - mov w2, 1024 - ldr w1, [x21,868] - cmp w0, 24 - mov w0, 5120 - csel w0, w0, w2, cc - cmp w1, w0 - bls .L2506 - adrp x0, .LANCHOR4+432 - str wzr, [x21,868] - mov x24, x21 - strh wzr, [x0,#:lo12:.LANCHOR4+432] - bl GetSwlReplaceBlock - uxth w20, w0 - cmp w20, w25 - bne .L2508 - ldrh w1, [x21,-8] - ldrh w0, [x21,866] - cmp w1, w0 - bcs .L2509 - mov w0, 64 - bl List_get_gc_head_node - uxth w0, w0 - cmp w0, w20 - beq .L2518 - ldr w2, [x21,2028] - uxtw x1, w0 - adrp x21, .LANCHOR0 - cbnz w2, .L2511 - add x0, x21, :lo12:.LANCHOR0 - ldrh w2, [x0,1964] - cmp w2, 3 - beq .L2511 - ldr w2, [x24,344] - cbnz w2, .L2511 - ldr w2, [x24,160] - cbnz w2, .L2511 - ldrb w0, [x0,120] - cbz w0, .L2512 -.L2511: - add x0, x19, :lo12:.LANCHOR2 - add x3, x21, :lo12:.LANCHOR0 - ldr x0, [x0,-40] - ldrh w4, [x0,x1,lsl 1] - ldrh w1, [x3,2020] - ldrh w0, [x3,1944] - ldrh w3, [x3,1964] - mul w2, w1, w0 - cmp w3, 3 - mov w0, 0 - lsr w1, w1, 1 - csel w0, w1, w0, eq - add w0, w2, w0 - cmp w4, w0 - bgt .L2514 - mov w0, 0 - add x21, x21, :lo12:.LANCHOR0 - bl List_get_gc_head_node - uxth w20, w0 - add x1, x19, :lo12:.LANCHOR2 - ldr w0, [x21,2096] - ldr w2, [x1,156] - add w0, w0, w0, lsl 1 - cmp w2, w0, lsr 2 - bls .L2515 - mov w0, 128 - b .L2657 -.L2515: - mov w0, 160 -.L2657: - strh w0, [x1,866] - b .L2516 -.L2514: - add x0, x19, :lo12:.LANCHOR2 - mov w1, 128 - b .L2658 -.L2512: - ldr x2, [x24,-40] - ldrh w1, [x2,x1,lsl 1] - cmp w1, 7 - bhi .L2517 - bl List_get_gc_head_node - uxth w20, w0 - add x0, x19, :lo12:.LANCHOR2 - mov w1, 128 - strh w1, [x0,866] - b .L2516 -.L2517: - add x0, x19, :lo12:.LANCHOR2 - mov w1, 64 -.L2658: - strh w1, [x0,866] - b .L2518 -.L2509: - mov w0, 80 - strh w0, [x21,866] - b .L2518 -.L2516: - mov w0, 65535 - cmp w20, w0 - beq .L2518 -.L2508: - add x5, x19, :lo12:.LANCHOR2 - ubfiz x4, x20, 1, 32 - adrp x0, .LC131 - mov w1, w20 - add x0, x0, :lo12:.LC131 - ldr x3, [x5,-40] - ldr x6, [x5,-80] - ldrh w2, [x5,-8] - ldrh w3, [x3,x4] - ldrh w5, [x5,864] - ldrh w4, [x6,x4] - bl printk -.L2518: - bl FtlGcReFreshBadBlk - b .L2506 -.L2660: - mov w20, w0 - b .L2506 -.L2634: - mov w0, w2 - 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], 144 - ret - .size rk_ftl_garbage_collect, .-rk_ftl_garbage_collect - .align 2 - .global FtlCacheWriteBack - .type FtlCacheWriteBack, %function -FtlCacheWriteBack: - stp x29, x30, [sp, -128]! - adrp x0, .LANCHOR4+440 - add x29, sp, 0 - stp x21, x22, [sp,32] - adrp x22, .LANCHOR2 - stp x19, x20, [sp,16] - ldr x20, [x0,#:lo12:.LANCHOR4+440] - add x0, x22, :lo12:.LANCHOR2 - stp x23, x24, [sp,48] - stp x25, x26, [sp,64] - stp x27, x28, [sp,80] - ldr w23, [x0,-96] - cbnz w23, .L2667 - adrp x19, .LANCHOR0 - add x0, x19, :lo12:.LANCHOR0 - ldr w1, [x0,2080] - cbz w1, .L2667 - ldrb w0, [x0,120] - cbz w0, .L2669 - ldrb w0, [x20,8] - cmp w0, 1 - cset w23, eq -.L2669: - add x0, x19, :lo12:.LANCHOR0 - ldrb w3, [x20,9] - adrp x26, .LC132 - mov w2, w23 - mov w24, 0 - mov w27, 56 - ldr x0, [x0,2088] - add x26, x26, :lo12:.LC132 - bl FlashProgPages -.L2670: - add x0, x19, :lo12:.LANCHOR0 - ldr w1, [x0,2080] - cmp w24, w1 - bcs .L2687 - umull x21, w24, w27 - ldr x1, [x0,2088] - add x0, x1, x21 - ldr w25, [x1,x21] - cmn w25, #1 - beq .L2690 - ldr w1, [x0,4] - cbz w23, .L2704 - orr w1, w1, -2147483648 -.L2704: - ldr w0, [x0,24] - mov w2, 1 - str w1, [x29,124] - add x1, x29, 124 - bl log2phys - add x0, x19, :lo12:.LANCHOR0 - ldr x0, [x0,2088] - add x21, x0, x21 - ldr x0, [x21,16] - ldr w0, [x0,12] - cmn w0, #1 - beq .L2674 - lsr x0, x0, 10 - bl P2V_block_in_plane - uxth w1, w0 - add x2, x22, :lo12:.LANCHOR2 - ubfiz x0, x1, 1, 16 - mov w21, w1 - ldr x2, [x2,-40] - ldrh w2, [x2,x0] - cbnz w2, .L2675 - mov x0, x26 - bl printk -.L2675: - mov w0, w21 - bl decrement_vpc_count -.L2674: - add w24, w24, 1 - b .L2670 -.L2706: - mov w20, 16386 -.L2686: - add x0, x22, :lo12:.LANCHOR2 - ldrh w0, [x0,956] - cbz w0, .L2687 - mov w0, 1 - mov w1, w0 - bl rk_ftl_garbage_collect - subs w20, w20, #1 - bne .L2686 -.L2687: - add x19, x19, :lo12:.LANCHOR0 - str wzr, [x19,2080] - b .L2667 -.L2690: - adrp x26, .LC132 - mov w24, 0 - mov w27, 56 - add x26, x26, :lo12:.LC132 -.L2671: - add x0, x19, :lo12:.LANCHOR0 - ldr w1, [x0,2080] - cmp w24, w1 - bcs .L2706 - umull x21, w24, w27 - ldr x0, [x0,2088] - str w25, [x0,x21] -.L2677: - add x28, x19, :lo12:.LANCHOR0 - ldr x0, [x28,2088] - add x1, x0, x21 - ldr w0, [x0,x21] - cmn w0, #1 - ldr w0, [x1,4] - bne .L2707 - lsr x0, x0, 10 - bl P2V_block_in_plane - ldrh w1, [x20] - cmp w1, w0, uxth - bne .L2678 - add x0, x22, :lo12:.LANCHOR2 - ubfiz x1, x1, 1, 16 - ldrh w3, [x20,4] - ldr x2, [x0,-40] - ldrh w0, [x2,x1] - sub w0, w0, w3 - strh w0, [x2,x1] - strb wzr, [x20,6] - ldrh w0, [x28,2018] - strh w0, [x20,2] - strh wzr, [x20,4] -.L2678: - ldrh w0, [x20,4] - cbnz w0, .L2679 - mov x0, x20 - bl allocate_new_data_superblock -.L2679: - add x4, x22, :lo12:.LANCHOR2 - add x28, x19, :lo12:.LANCHOR0 - str x4, [x29,104] - ldr w0, [x4,448] - add w0, w0, 1 - str w0, [x4,448] - ldr x0, [x28,2088] - add x0, x0, x21 - ldr w0, [x0,4] - lsr x0, x0, 10 - bl FtlGcMarkBadPhyBlk - mov x0, x20 - bl get_new_active_ppa - str w0, [x29,124] - ldr x1, [x28,2088] - mov w2, w23 - add x1, x1, x21 - str w0, [x1,4] - mov w1, 1 - ldr x0, [x28,2088] - ldrb w3, [x20,9] - add x0, x0, x21 - bl FlashProgPages - ldr x4, [x29,104] - ldr w0, [x4,-96] - cbz w0, .L2677 - b .L2667 -.L2707: - cbz w23, .L2705 - orr w0, w0, -2147483648 -.L2705: - str w0, [x29,124] - mov w2, 1 - ldr w0, [x1,24] - add x1, x29, 124 - bl log2phys - add x0, x19, :lo12:.LANCHOR0 - ldr x0, [x0,2088] - add x21, x0, x21 - ldr x0, [x21,16] - ldr w0, [x0,12] - cmn w0, #1 - beq .L2683 - lsr x0, x0, 10 - bl P2V_block_in_plane - uxth w1, w0 - add x2, x22, :lo12:.LANCHOR2 - ubfiz x0, x1, 1, 16 - mov w21, w1 - ldr x2, [x2,-40] - ldrh w2, [x2,x0] - cbnz w2, .L2684 - mov x0, x26 - bl printk -.L2684: - mov w0, w21 - bl decrement_vpc_count -.L2683: - add w24, w24, 1 - b .L2671 -.L2667: - 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], 128 - ret - .size FtlCacheWriteBack, .-FtlCacheWriteBack - .align 2 - .global FtlSysFlush - .type FtlSysFlush, %function -FtlSysFlush: - adrp x0, .LANCHOR2-96 - stp x29, x30, [sp, -16]! - add x29, sp, 0 - ldr w0, [x0,#:lo12:.LANCHOR2-96] - cbnz w0, .L2709 - bl FtlCacheWriteBack - bl l2p_flush - mov w0, 1 - bl FtlEctTblFlush - bl FtlVpcTblFlush -.L2709: - mov w0, 0 - ldp x29, x30, [sp], 16 - ret - .size FtlSysFlush, .-FtlSysFlush - .align 2 - .global FtlDeInit - .type FtlDeInit, %function -FtlDeInit: - adrp x0, .LANCHOR1+504 - stp x29, x30, [sp, -16]! - add x29, sp, 0 - ldr w0, [x0,#:lo12:.LANCHOR1+504] - cmp w0, 1 - bne .L2711 - bl FtlSysFlush -.L2711: - mov w0, 0 - ldp x29, x30, [sp], 16 - ret - .size FtlDeInit, .-FtlDeInit - .align 2 - .global rk_ftl_de_init - .type rk_ftl_de_init, %function -rk_ftl_de_init: - stp x29, x30, [sp, -16]! - add x29, sp, 0 - bl FlashDeInit - bl FtlDeInit - bl FlashDeInit - ldp x29, x30, [sp], 16 - ret - .size rk_ftl_de_init, .-rk_ftl_de_init - .align 2 - .global FtlDiscard - .type FtlDiscard, %function -FtlDiscard: - stp x29, x30, [sp, -80]! - add w2, w0, w1 - add x29, sp, 0 - stp x21, x22, [sp,32] - adrp x22, .LANCHOR0 - str x23, [sp,48] - add x21, x22, :lo12:.LANCHOR0 - stp x19, x20, [sp,16] - mov w19, w1 - mov w20, w0 - ldr w1, [x21,2060] - mov w0, -1 - cmp w2, w1 - bhi .L2714 - cmp w19, 31 - bls .L2728 - adrp x23, .LANCHOR2 - add x0, x23, :lo12:.LANCHOR2 - ldr w0, [x0,-96] - cbnz w0, .L2728 - bl FtlCacheWriteBack - ldrh w1, [x21,2024] - udiv w21, w20, w1 - msub w20, w1, w21, w20 - uxth w20, w20 - cbz w20, .L2717 - sub w1, w1, w20 - add w21, w21, 1 - cmp w1, w19 - csel w1, w1, w19, ls - sub w19, w19, w1, uxth -.L2717: - mov w0, -1 - adrp x20, .LANCHOR4 - str w0, [x29,76] -.L2718: - add x0, x22, :lo12:.LANCHOR0 - ldrh w0, [x0,2024] - cmp w19, w0 - bcc .L2729 - mov w0, w21 - add x1, x29, 72 - mov w2, 0 - bl log2phys - ldr w0, [x29,72] - cmn w0, #1 - beq .L2719 - add x1, x20, :lo12:.LANCHOR4 - mov w2, 1 - ldr w0, [x1,448] - add w0, w0, 1 - str w0, [x1,448] - add x1, x23, :lo12:.LANCHOR2 - ldr w0, [x1,168] - add w0, w0, 1 - str w0, [x1,168] - add x1, x29, 76 - mov w0, w21 - bl log2phys - ldr w0, [x29,72] - lsr x0, x0, 10 - bl P2V_block_in_plane - bl decrement_vpc_count -.L2719: - add x0, x22, :lo12:.LANCHOR0 - add w21, w21, 1 - ldrh w0, [x0,2024] - sub w19, w19, w0 - b .L2718 -.L2729: - adrp x0, .LANCHOR4 - add x0, x0, :lo12:.LANCHOR4 - ldr w1, [x0,448] - cmp w1, 32 - bls .L2728 - str wzr, [x0,448] - bl l2p_flush - bl FtlVpcTblFlush -.L2728: - mov w0, 0 -.L2714: - ldp x19, x20, [sp,16] - ldp x21, x22, [sp,32] - ldr x23, [sp,48] - ldp x29, x30, [sp], 80 - ret - .size FtlDiscard, .-FtlDiscard - .align 2 - .global FtlGcFreeTempBlock - .type FtlGcFreeTempBlock, %function -FtlGcFreeTempBlock: - stp x29, x30, [sp, -96]! - add x29, sp, 0 - stp x19, x20, [sp,16] - adrp x19, .LANCHOR2 - add x2, x19, :lo12:.LANCHOR2 - stp x21, x22, [sp,32] - stp x23, x24, [sp,48] - stp x25, x26, [sp,64] - adrp x21, .LANCHOR0 - add x1, x21, :lo12:.LANCHOR0 - ldr w3, [x2,-96] - ldrh w1, [x1,2018] - cbnz w3, .L2765 - ldrh w20, [x2,96] - mov w4, 65535 - cmp w20, w4 - bne .L2733 -.L2742: - add x20, x19, :lo12:.LANCHOR2 - mov w0, 65535 - add x22, x20, 96 - ldrh w1, [x20,96] - str wzr, [x20,2344] - cmp w1, w0 - beq .L2765 - bl FtlCacheWriteBack - mov w26, 12 - add x3, x21, :lo12:.LANCHOR0 - ldrb w0, [x22,7] - ldr x1, [x20,-40] - mov w22, 0 - ldrh w2, [x20,96] - ldrh w3, [x3,2018] - mul w0, w0, w3 - strh w0, [x1,x2,lsl 1] - ldr w0, [x20,184] - ldrh w1, [x20,936] - add w0, w1, w0 - str w0, [x20,184] - b .L2743 -.L2733: - cbz w0, .L2736 - adrp x0, .LANCHOR1 - add x0, x0, :lo12:.LANCHOR1 - ldrh w5, [x0,3008] - cmp w5, w4 - beq .L2737 -.L2738: - mov w1, 2 - b .L2736 -.L2737: - strh w3, [x0,3008] - ldrh w0, [x2,-8] - cmp w0, 17 - bhi .L2738 -.L2736: - add x22, x19, :lo12:.LANCHOR2 - add x0, x22, 96 - bl FtlGcScanTempBlk - str w0, [x29,92] - cmn w0, #1 - beq .L2739 - ubfiz x20, x20, 1, 16 - ldr x1, [x22,-80] - ldrh w0, [x1,x20] - cmp w0, 4 - bls .L2740 - sub w0, w0, #5 - strh w0, [x1,x20] - mov w0, 1 - bl FtlEctTblFlush -.L2740: - add x0, x19, :lo12:.LANCHOR2 - ldr w1, [x0,2344] - cbnz w1, .L2741 - ldr w1, [x0,448] - add w1, w1, 1 - str w1, [x0,448] - ldr w0, [x29,92] - lsr w0, w0, 10 - bl FtlBbmMapBadBlock - bl FtlBbmTblFlush -.L2741: - add x19, x19, :lo12:.LANCHOR2 - mov w0, 1 - str wzr, [x19,2344] - b .L2732 -.L2739: - adrp x0, .LANCHOR1+3008 - mov w1, 65535 - ldrh w2, [x0,#:lo12:.LANCHOR1+3008] - mov w0, 1 - cmp w2, w1 - bne .L2732 - b .L2742 -.L2746: - ldr x25, [x20,944] - add x1, x29, 92 - umull x24, w22, w26 - mov w2, 0 - add x23, x25, x24 - ldr w0, [x23,8] - bl log2phys - ldr w0, [x29,92] - ldr w1, [x25,x24] - cmp w0, w1 - bne .L2744 - lsr x0, x0, 10 - bl P2V_block_in_plane - mov w24, w0 - ldr w0, [x23,8] - add x1, x23, 4 - mov w2, 1 - bl log2phys - mov w0, w24 -.L2764: - bl decrement_vpc_count -.L2745: - add w22, w22, 1 - uxth w22, w22 -.L2743: - ldrh w0, [x20,936] - cmp w0, w22 - bhi .L2746 - b .L2766 -.L2744: - ldr w1, [x23,4] - cmp w0, w1 - beq .L2745 - ldrh w0, [x20,96] - b .L2764 -.L2766: - mov w0, -1 - bl decrement_vpc_count - add x0, x21, :lo12:.LANCHOR0 - ldrb w0, [x0,120] - cbz w0, .L2747 - adrp x0, .LC133 - ldrh w1, [x20,96] - add x0, x0, :lo12:.LC133 - bl printk -.L2747: - add x1, x19, :lo12:.LANCHOR2 - ldrh w0, [x1,96] - ldr x1, [x1,-40] - ubfiz x2, x0, 1, 16 - ldrh w1, [x1,x2] - cbz w1, .L2748 - bl INSERT_DATA_LIST - b .L2749 -.L2748: - bl INSERT_FREE_LIST -.L2749: - add x20, x19, :lo12:.LANCHOR2 - mov w0, -1 - strh wzr, [x20,936] - strh w0, [x20,96] - strh wzr, [x20,924] - bl l2p_flush - bl FtlVpcTblFlush - ldr w0, [x20,160] - cbz w0, .L2750 - ldr w0, [x20,220] - cmp w0, 29 - bhi .L2750 - ldrh w0, [x20,272] - ldrh w1, [x20,-8] - cmp w1, w0 - bcs .L2751 - lsl w0, w0, 1 - strh w0, [x20,864] -.L2751: - add x19, x19, :lo12:.LANCHOR2 - mov w0, -1 - strh w0, [x19,296] -.L2765: - mov w0, 0 - b .L2732 -.L2750: - add x19, x19, :lo12:.LANCHOR2 - ldrh w1, [x19,272] - ldrh w0, [x19,-8] - add w2, w1, w1, lsl 1 - cmp w0, w2, lsr 2 - ble .L2765 - add x21, x21, :lo12:.LANCHOR0 - mov w0, -1 - strh w0, [x19,296] - ldrb w0, [x21,120] - cbz w0, .L2752 - sub w1, w1, #2 - strh w1, [x19,864] - b .L2765 -.L2752: - mov w1, 20 - strh w1, [x19,864] -.L2732: - 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 FtlGcFreeTempBlock, .-FtlGcFreeTempBlock - .align 2 - .global Ftl_gc_temp_data_write_back - .type Ftl_gc_temp_data_write_back, %function -Ftl_gc_temp_data_write_back: - adrp x0, .LANCHOR0+120 - stp x29, x30, [sp, -48]! - add x29, sp, 0 - ldrb w0, [x0,#:lo12:.LANCHOR0+120] - stp x21, x22, [sp,32] - stp x19, x20, [sp,16] - adrp x21, .LANCHOR2 - cbz w0, .L2768 - add x0, x21, :lo12:.LANCHOR2 - ldr w1, [x0,880] - tbz x1, 0, .L2768 - ldrh w0, [x0,100] - cbz w0, .L2768 -.L2773: - mov w0, 0 - b .L2769 -.L2768: - add x1, x21, :lo12:.LANCHOR2 - mov w2, 0 - mov w3, w2 - mov w20, 0 - mov w22, 56 - ldr x0, [x1,2064] - ldr w1, [x1,880] - bl FlashProgPages -.L2770: - add x19, x21, :lo12:.LANCHOR2 - ldr w1, [x19,880] - cmp w20, w1 - bcs .L2784 - umull x0, w20, w22 - ldr x2, [x19,2064] - add x1, x2, x0 - ldr w2, [x2,x0] - cmn w2, #1 - bne .L2771 - ldrh w3, [x19,96] - ldr x1, [x19,-40] - strh wzr, [x1,x3,lsl 1] - strh w2, [x19,96] - ldr w1, [x19,448] - add w1, w1, 1 - str w1, [x19,448] - ldr x1, [x19,2064] - add x0, x1, x0 - ldr w0, [x0,4] - lsr w0, w0, 10 - bl FtlBbmMapBadBlock - bl FtlBbmTblFlush - bl FtlGcPageVarInit - b .L2783 -.L2771: - ldr x2, [x1,16] - add w20, w20, 1 - ldr w1, [x1,4] - uxth w20, w20 - ldr w0, [x2,12] - ldr w2, [x2,8] - bl FtlGcUpdatePage - b .L2770 -.L2784: - ldr x0, [x19,2064] - bl FtlGcBufFree - str wzr, [x19,880] - ldrh w0, [x19,100] - cbnz w0, .L2773 - mov w0, 1 - bl FtlGcFreeTempBlock -.L2783: - mov w0, 1 -.L2769: - ldp x19, x20, [sp,16] - ldp x21, x22, [sp,32] - ldp x29, x30, [sp], 48 - ret - .size Ftl_gc_temp_data_write_back, .-Ftl_gc_temp_data_write_back - .align 2 - .global FtlGcPageRecovery - .type FtlGcPageRecovery, %function -FtlGcPageRecovery: - stp x29, x30, [sp, -48]! - add x29, sp, 0 - stp x19, x20, [sp,16] - adrp x20, .LANCHOR0 - adrp x19, .LANCHOR2 - add x20, x20, :lo12:.LANCHOR0 - add x19, x19, :lo12:.LANCHOR2 - str x21, [sp,32] - add x21, x19, 96 - mov x0, x21 - ldrh w1, [x20,2018] - bl FtlGcScanTempBlk - ldrh w1, [x19,98] - ldrh w0, [x20,2018] - cmp w1, w0 - bcc .L2785 - add x0, x19, 2256 - bl FtlMapBlkWriteDumpData - mov w0, 0 - bl FtlGcFreeTempBlock - str wzr, [x19,2344] -.L2785: - ldp x19, x20, [sp,16] - ldr x21, [sp,32] - ldp x29, x30, [sp], 48 - ret - .size FtlGcPageRecovery, .-FtlGcPageRecovery - .align 2 - .global FtlPowerLostRecovery - .type FtlPowerLostRecovery, %function -FtlPowerLostRecovery: - stp x29, x30, [sp, -32]! - adrp x0, .LANCHOR4+296 - add x29, sp, 0 - str x19, [sp,16] - adrp x19, .LANCHOR2 - add x19, x19, :lo12:.LANCHOR2 - str wzr, [x0,#:lo12:.LANCHOR4+296] - mov x0, x19 - bl FtlRecoverySuperblock - mov x0, x19 - add x19, x19, 48 - bl FtlSlcSuperblockCheck - mov x0, x19 - bl FtlRecoverySuperblock - mov x0, x19 - bl FtlSlcSuperblockCheck - bl FtlGcPageRecovery - mov w0, -1 - bl decrement_vpc_count - ldr x19, [sp,16] - mov w0, 0 - ldp x29, x30, [sp], 32 - ret - .size FtlPowerLostRecovery, .-FtlPowerLostRecovery - .align 2 - .global FtlSysBlkInit - .type FtlSysBlkInit, %function -FtlSysBlkInit: - stp x29, x30, [sp, -64]! - mov w1, -1 - add x29, sp, 0 - stp x21, x22, [sp,32] - stp x23, x24, [sp,48] - adrp x21, .LANCHOR4 - adrp x24, .LANCHOR0 - add x0, x21, :lo12:.LANCHOR4 - add x22, x24, :lo12:.LANCHOR0 - stp x19, x20, [sp,16] - adrp x20, .LANCHOR2 - strh w1, [x0,290] - add x19, x20, :lo12:.LANCHOR2 - strh wzr, [x0,292] - ldrh w0, [x22,1948] - bl FtlFreeSysBlkQueueInit - bl FtlScanSysBlk - ldrh w1, [x19,280] - mov w0, 65535 - cmp w1, w0 - bne .L2789 -.L2791: - mov w23, -1 - b .L2790 -.L2789: - bl FtlLoadSysInfo - mov w23, w0 - cbnz w0, .L2791 - bl FtlLoadMapInfo - bl FtlLoadVonderInfo - bl Ftl_load_ext_data - bl FtlLoadEctTbl - bl FtlFreeSysBLkSort - bl SupperBlkListInit - bl FtlPowerLostRecovery - mov w0, 1 - bl FtlUpdateVaildLpn - ldrh w2, [x22,2058] - mov x1, 0 - ldr x0, [x19,144] -.L2792: - cmp w1, w2 - mov w3, w1 - bge .L2796 - add x4, x0, x1, lsl 4 - add x1, x1, 1 - ldr w4, [x4,4] - tbz w4, #31, .L2792 -.L2796: - add x0, x20, :lo12:.LANCHOR2 - cmp w3, w2 - ldrh w1, [x0,252] - add w1, w1, 1 - strh w1, [x0,252] - blt .L2793 - add x0, x21, :lo12:.LANCHOR4 - ldrh w0, [x0,292] - cbz w0, .L2797 -.L2793: - add x19, x20, :lo12:.LANCHOR2 - mov x0, x19 - add x22, x19, 48 - bl FtlSuperblockPowerLostFix - mov x0, x22 - bl FtlSuperblockPowerLostFix - ldrh w0, [x20,#:lo12:.LANCHOR2] - ldr x2, [x19,-40] - lsl x0, x0, 1 - ldrh w3, [x19,4] - ldrh w1, [x2,x0] - sub w1, w1, w3 - strh w1, [x2,x0] - add x0, x24, :lo12:.LANCHOR0 - strb wzr, [x19,6] - ldr x3, [x19,-40] - strh wzr, [x19,4] - ldrh w1, [x0,2018] - strh w1, [x19,2] - ldrh w1, [x19,48] - ldrh w4, [x19,52] - lsl x1, x1, 1 - ldrh w2, [x3,x1] - sub w2, w2, w4 - strh w2, [x3,x1] - strb wzr, [x19,54] - ldrh w0, [x0,2018] - strh w0, [x19,50] - add x0, x19, 2256 - strh wzr, [x19,52] - bl FtlMapBlkWriteDumpData - add x0, x21, :lo12:.LANCHOR4 - add x0, x0, 224 - bl FtlMapBlkWriteDumpData - ldrh w0, [x19,254] - add w0, w0, 1 - strh w0, [x19,254] - bl l2p_flush - bl FtlVpcTblFlush - bl FtlVpcTblFlush -.L2797: - ldrh w1, [x20,#:lo12:.LANCHOR2] - mov w0, 65535 - add x19, x20, :lo12:.LANCHOR2 - cmp w1, w0 - beq .L2798 - ldrh w0, [x19,4] - cbnz w0, .L2798 - ldrh w0, [x19,52] - add x22, x19, 48 - cbnz w0, .L2798 - bl FtlVpcTblFlush - adrp x0, .LANCHOR2 - ldrh w0, [x0,#:lo12:.LANCHOR2] - bl FtlGcRefreshOpenBlock - ldrh w0, [x19,48] - bl FtlGcRefreshOpenBlock - mov x0, x19 - bl allocate_new_data_superblock - mov x0, x22 - bl allocate_new_data_superblock - add x0, x21, :lo12:.LANCHOR4 - add x0, x0, 224 - bl FtlMapBlkWriteDumpData -.L2798: - add x20, x20, :lo12:.LANCHOR2 - ldrh w0, [x20,252] - and w0, w0, 31 - cbnz w0, .L2790 - bl FtlVpcCheckAndModify -.L2790: - mov w0, w23 - ldp x19, x20, [sp,16] - ldp x21, x22, [sp,32] - ldp x23, x24, [sp,48] - ldp x29, x30, [sp], 64 - ret - .size FtlSysBlkInit, .-FtlSysBlkInit - .align 2 - .global Ftl_get_new_temp_ppa - .type Ftl_get_new_temp_ppa, %function -Ftl_get_new_temp_ppa: - stp x29, x30, [sp, -32]! - add x29, sp, 0 - stp x19, x20, [sp,16] - adrp x19, .LANCHOR2 - add x0, x19, :lo12:.LANCHOR2 - add x1, x0, 96 - ldrh w2, [x0,96] - mov w0, 65535 - cmp w2, w0 - beq .L2805 - ldrh w0, [x1,4] - cbnz w0, .L2806 -.L2805: - bl FtlCacheWriteBack - add x20, x19, :lo12:.LANCHOR2 - mov w0, 0 - bl FtlGcFreeTempBlock - strb wzr, [x20,104] - add x0, x20, 96 - bl allocate_data_superblock - strh wzr, [x20,924] - strh wzr, [x20,936] - bl l2p_flush - mov w0, 0 - bl FtlEctTblFlush - bl FtlVpcTblFlush -.L2806: - add x0, x19, :lo12:.LANCHOR2 - add x0, x0, 96 - bl get_new_active_ppa - ldp x19, x20, [sp,16] - ldp x29, x30, [sp], 32 - ret - .size Ftl_get_new_temp_ppa, .-Ftl_get_new_temp_ppa - .align 2 - .global rk_ftl_cache_write_back - .type rk_ftl_cache_write_back, %function -rk_ftl_cache_write_back: - stp x29, x30, [sp, -16]! - add x29, sp, 0 - bl FtlCacheWriteBack - ldp x29, x30, [sp], 16 - ret - .size rk_ftl_cache_write_back, .-rk_ftl_cache_write_back - .align 2 - .global FtlInit - .type FtlInit, %function -FtlInit: - stp x29, x30, [sp, -48]! - adrp x1, .LC74 - add x29, sp, 0 - str x21, [sp,32] - adrp x21, .LANCHOR1 - add x21, x21, :lo12:.LANCHOR1 - add x1, x1, :lo12:.LC74 - stp x19, x20, [sp,16] - mov x19, x0 - mov w0, -1 - str w0, [x21,504] - adrp x0, .LANCHOR4+452 - adrp x20, .LANCHOR2 - add x20, x20, :lo12:.LANCHOR2 - str wzr, [x0,#:lo12:.LANCHOR4+452] - adrp x0, .LC73 - add x0, x0, :lo12:.LC73 - str wzr, [x20,-96] - bl printk - mov x0, x19 - adrp x19, .LANCHOR0 - add x19, x19, :lo12:.LANCHOR0 - bl FtlConstantsInit - bl FtlMemInit - bl FtlVariablesInit - ldrh w0, [x19,1948] - bl FtlFreeSysBlkQueueInit - bl FtlLoadBbt - cbz w0, .L2809 - adrp x0, .LC134 - add x0, x0, :lo12:.LC134 - b .L2821 -.L2809: - bl FtlSysBlkInit - cbz w0, .L2811 - adrp x0, .LC135 - add x0, x0, :lo12:.LC135 -.L2821: - adrp x1, .LANCHOR3 - add x1, x1, :lo12:.LANCHOR3 - add x1, x1, 40 - bl printk - b .L2810 -.L2811: - mov w1, 1 - str w1, [x21,504] - bl rk_ftl_garbage_collect - ldrh w0, [x20,-8] - cmp w0, 15 - bhi .L2812 - mov w19, 1024 -.L2813: - mov w0, 1 - mov w1, w0 - bl rk_ftl_garbage_collect - subs w19, w19, #1 - bne .L2813 - b .L2810 -.L2812: - ldrb w0, [x19,120] - cbz w0, .L2810 - mov w19, 128 -.L2815: - mov w0, 1 - mov w1, w0 - bl rk_ftl_garbage_collect - subs w19, w19, #1 - bne .L2815 -.L2810: - mov w0, 0 - ldr x21, [sp,32] - ldp x19, x20, [sp,16] - ldp x29, x30, [sp], 48 - ret - .size FtlInit, .-FtlInit - .align 2 - .global rk_ftl_init - .type rk_ftl_init, %function -rk_ftl_init: - stp x29, x30, [sp, -32]! - mov w0, 2048 - add x29, sp, 0 - str x19, [sp,16] - adrp x19, .LANCHOR4 - add x19, x19, :lo12:.LANCHOR4 - bl ftl_malloc - add x1, x19, 464 - str x0, [x19,456] - add x0, x19, 48 - str xzr, [x19,48] - str xzr, [x19,464] - bl rknand_get_reg_addr - ldr x1, [x19,48] - mov w0, -1 - cbz x1, .L2823 - bl rk_nandc_irq_init - mov w1, 0 - ldr x0, [x19,456] - mov w2, w1 - mov w3, 2048 - bl FlashSramLoadStore - bl rknand_flash_cs_init - ldr x0, [x19,48] - bl FlashInit - mov w19, w0 - cbnz w0, .L2824 - adrp x0, .LANCHOR0 - add x0, x0, :lo12:.LANCHOR0 - add x0, x0, 168 - bl FtlInit -.L2824: - adrp x0, .LC136 - mov w1, w19 - add x0, x0, :lo12:.LC136 - bl printk - mov w0, w19 -.L2823: - ldr x19, [sp,16] - ldp x29, x30, [sp], 32 - ret - .size rk_ftl_init, .-rk_ftl_init - .align 2 - .global ftl_fix_nand_power_lost_error - .type ftl_fix_nand_power_lost_error, %function -ftl_fix_nand_power_lost_error: - stp x29, x30, [sp, -128]! - add x29, sp, 0 - stp x19, x20, [sp,16] - adrp x20, .LANCHOR0 - add x0, x20, :lo12:.LANCHOR0 - stp x21, x22, [sp,32] - stp x23, x24, [sp,48] - stp x25, x26, [sp,64] - ldrb w0, [x0,120] - cbz w0, .L2827 - adrp x21, .LANCHOR4 - adrp x19, .LANCHOR2 - add x0, x21, :lo12:.LANCHOR4 - add x25, x19, :lo12:.LANCHOR2 - adrp x24, .LC137 - add x26, x25, 48 - ldrh w23, [x0,290] - add x0, x24, :lo12:.LC137 - ldr x2, [x25,-40] - ubfiz x22, x23, 1, 16 - mov w1, w23 - ldrh w2, [x2,x22] - bl printk - ldrh w0, [x19,#:lo12:.LANCHOR2] - bl FtlGcRefreshOpenBlock - ldrh w0, [x25,48] - bl FtlGcRefreshOpenBlock - mov x0, x25 - mov w25, 4097 - bl allocate_new_data_superblock - mov x0, x26 - bl allocate_new_data_superblock -.L2829: - subs w25, w25, #1 - beq .L2833 - mov w0, 1 - mov w1, w0 - bl rk_ftl_garbage_collect - add x0, x19, :lo12:.LANCHOR2 - ldr x0, [x0,-40] - ldrh w0, [x0,x22] - cbnz w0, .L2829 -.L2833: - add x25, x19, :lo12:.LANCHOR2 - add x0, x24, :lo12:.LC137 - mov w1, w23 - ldr x2, [x25,-40] - ldrh w2, [x2,x22] - bl printk - ldr x0, [x25,-40] - ldrh w0, [x0,x22] - cbnz w0, .L2831 - add x0, x29, 80 - add x20, x20, :lo12:.LANCHOR0 - strh w23, [x29,80] - bl make_superblock - mov x0, 0 - ldrh w5, [x20,1944] - mov w6, 65535 - mov w20, w0 - mov w7, 56 -.L2834: - cmp w5, w0, uxth - bls .L2841 - add x1, x29, 80 - add x1, x1, x0, lsl 1 - ldrh w2, [x1,16] - cmp w2, w6 - beq .L2835 - add x4, x19, :lo12:.LANCHOR2 - lsl w2, w2, 10 - umull x1, w20, w7 - add w20, w20, 1 - ldr x3, [x4,-88] - uxth w20, w20 - add x3, x3, x1 - str w2, [x3,4] - ldr x2, [x4,-88] - add x1, x2, x1 - str xzr, [x1,8] - str xzr, [x1,16] -.L2835: - add x0, x0, 1 - b .L2834 -.L2841: - add x19, x19, :lo12:.LANCHOR2 - adrp x0, .LC138 - mov w1, w23 - add x0, x0, :lo12:.LC138 - ldr x2, [x19,-40] - ldrh w2, [x2,x22] - bl printk - ldr x0, [x19,-88] - mov w1, 0 - mov w2, w20 - bl FlashEraseBlocks - ldr x0, [x19,-88] - mov w1, 1 - mov w2, w20 - bl FlashEraseBlocks -.L2831: - add x21, x21, :lo12:.LANCHOR4 - mov w0, -1 - strh w0, [x21,290] -.L2827: - ldp x19, x20, [sp,16] - ldp x21, x22, [sp,32] - ldp x23, x24, [sp,48] - ldp x25, x26, [sp,64] - ldp x29, x30, [sp], 128 - ret - .size ftl_fix_nand_power_lost_error, .-ftl_fix_nand_power_lost_error - .align 2 - .global FtlRead - .type FtlRead, %function -FtlRead: - stp x29, x30, [sp, -176]! - uxtb w0, w0 - add x29, sp, 0 - stp x19, x20, [sp,16] - stp x25, x26, [sp,64] - stp x27, x28, [sp,80] - stp x21, x22, [sp,32] - stp x23, x24, [sp,48] - cmp w0, 16 - mov w20, w1 - mov w28, w2 - mov x26, x3 - bne .L2843 - add w0, w1, 256 - mov w1, w2 - mov x2, x3 - bl FtlVendorPartRead - b .L2844 -.L2843: - adrp x21, .LANCHOR0 - add w0, w1, w2 - add x1, x21, :lo12:.LANCHOR0 - str w0, [x29,152] - mov w0, -1 - ldr w3, [x29,152] - ldr w2, [x1,2060] - cmp w3, w2 - bhi .L2844 - ldrh w0, [x1,2024] - sub w25, w3, #1 - adrp x19, .LANCHOR2 - udiv w1, w20, w0 - str w1, [x29,156] - udiv w25, w25, w0 - ldr w0, [x29,156] - sub w24, w25, w0 - add x0, x19, :lo12:.LANCHOR2 - add w24, w24, 1 - ldr w1, [x0,192] - add w1, w28, w1 - str w1, [x0,192] - ldr w1, [x0,164] - add w1, w24, w1 - str w1, [x0,164] - ldr w0, [x29,156] - mov w1, w25 - bl FtlCacheMetchLpa - cbz w0, .L2845 - bl FtlCacheWriteBack -.L2845: - mov w27, 0 - ldr w22, [x29,156] - str w27, [x29,140] - mov w23, w27 - str w27, [x29,136] -.L2846: - cbz w24, .L2888 - mov w0, w22 - add x1, x29, 172 - mov w2, 0 - bl log2phys - ldr w3, [x29,172] - cmn w3, #1 - bne .L2885 - mov w3, 0 -.L2847: - add x0, x21, :lo12:.LANCHOR0 - ldrh w0, [x0,2024] - cmp w3, w0 - bcs .L2851 - madd w0, w22, w0, w3 - cmp w0, w20 - bcc .L2849 - ldr w1, [x29,152] - cmp w0, w1 - bcs .L2849 - sub w0, w0, w20 - mov w1, 0 - ubfiz x0, x0, 9, 23 - mov w2, 512 - add x0, x26, x0 - str x3, [x29,144] - bl ftl_memset - ldr x3, [x29,144] -.L2849: - add w3, w3, 1 - b .L2847 -.L2885: - mov w0, 56 - umull x1, w23, w0 - add x0, x19, :lo12:.LANCHOR2 - ldr x2, [x0,2056] - add x2, x2, x1 - str w3, [x2,4] - ldr w2, [x29,156] - cmp w22, w2 - ldr x2, [x0,2056] - add x2, x2, x1 - bne .L2852 - ldr x0, [x0,2104] - str x0, [x2,8] - add x0, x21, :lo12:.LANCHOR0 - ldrh w0, [x0,2024] - udiv w3, w20, w0 - msub w3, w3, w0, w20 - str w3, [x29,112] - sub w3, w0, w3 - cmp w3, w28 - csel w3, w3, w28, ls - str w3, [x29,140] - cmp w3, w0 - bne .L2853 - str x26, [x2,8] - b .L2853 -.L2852: - cmp w22, w25 - bne .L2854 - ldr x0, [x0,2112] - str x0, [x2,8] - add x0, x21, :lo12:.LANCHOR0 - ldr w4, [x29,152] - ldrh w3, [x0,2024] - mul w0, w22, w3 - sub w27, w4, w0 - cmp w27, w3 - bne .L2853 - b .L2886 -.L2854: - add x0, x21, :lo12:.LANCHOR0 - ldrh w0, [x0,2024] - mul w0, w22, w0 -.L2886: - sub w0, w0, w20 - ubfiz x0, x0, 9, 23 - add x0, x26, x0 - str x0, [x2,8] -.L2853: - add x2, x19, :lo12:.LANCHOR2 - ldr x0, [x2,2056] - ldr x2, [x2,2128] - add x1, x0, x1 - add x0, x21, :lo12:.LANCHOR0 - ldrh w0, [x0,2030] - str w22, [x1,24] - mul w0, w23, w0 - add w23, w23, 1 - and x0, x0, 4294967292 - add x0, x2, x0 - str x0, [x1,16] -.L2851: - subs w24, w24, #1 - add w22, w22, 1 - beq .L2855 - add x0, x21, :lo12:.LANCHOR0 - ldrh w0, [x0,1944] - cmp w23, w0, lsl 3 - bne .L2846 -.L2855: - cbz w23, .L2846 - add x0, x19, :lo12:.LANCHOR2 - mov w1, w23 - mov w2, 0 - ldr x0, [x0,2056] - bl FlashReadPages - str xzr, [x29,144] - ldr x0, [x29,112] - ubfiz x0, x0, 9, 23 - str x0, [x29,128] - ldr w0, [x29,140] - lsl w0, w0, 9 - str w0, [x29,108] - lsl w0, w27, 9 - str w0, [x29,104] -.L2857: - ldr w0, [x29,144] - cmp w23, w0 - bls .L2889 - ldr x0, [x29,144] - add x2, x19, :lo12:.LANCHOR2 - mov x1, 56 - ldr w4, [x29,156] - mul x3, x0, x1 - ldr x0, [x2,2056] - add x0, x0, x3 - ldr w1, [x0,24] - cmp w1, w4 - bne .L2858 - ldr x1, [x0,8] - ldr x0, [x2,2104] - cmp x1, x0 - bne .L2859 - ldr x2, [x29,128] - mov x0, x26 - str x3, [x29,96] - add x1, x1, x2 - ldr w2, [x29,108] - b .L2887 -.L2858: - cmp w1, w25 - bne .L2859 - ldr x1, [x0,8] - ldr x0, [x2,2112] - cmp x1, x0 - bne .L2859 - add x0, x21, :lo12:.LANCHOR0 - ldr w2, [x29,104] - str x3, [x29,96] - ldrh w0, [x0,2024] - mul w0, w25, w0 - sub w0, w0, w20 - ubfiz x0, x0, 9, 23 - add x0, x26, x0 -.L2887: - bl ftl_memcpy - ldr x3, [x29,96] -.L2859: - add x0, x19, :lo12:.LANCHOR2 - ldr x1, [x0,2056] - add x5, x1, x3 - ldr w4, [x1,x3] - cmn w4, #1 - bne .L2860 - ldr w2, [x0,424] - str w4, [x29,136] - add w2, w2, 1 - str w2, [x0,424] -.L2860: - ldr w0, [x1,x3] - cmp w0, 256 - bne .L2861 - ldr w0, [x5,4] - lsr x0, x0, 10 - bl P2V_block_in_plane - bl FtlGcRefreshBlock -.L2861: - ldr x0, [x29,144] - add x0, x0, 1 - str x0, [x29,144] - b .L2857 -.L2889: - mov w23, 0 - b .L2846 -.L2888: - add x19, x19, :lo12:.LANCHOR2 - ldrh w0, [x19,956] - cbz w0, .L2864 - mov w0, w24 - mov w1, 1 - bl rk_ftl_garbage_collect -.L2864: - ldr w0, [x29,136] -.L2844: - 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], 176 - ret - .size FtlRead, .-FtlRead - .align 2 - .global FtlWrite - .type FtlWrite, %function -FtlWrite: - stp x29, x30, [sp, -272]! - uxtb w4, w0 - mov w0, 0 - add x29, sp, 0 - stp x21, x22, [sp,32] - mov w22, w1 - adrp x1, .LANCHOR2 - stp x23, x24, [sp,48] - mov w23, w2 - add x2, x1, :lo12:.LANCHOR2 - stp x19, x20, [sp,16] - stp x25, x26, [sp,64] - stp x27, x28, [sp,80] - mov x24, x3 - str x1, [x29,152] - ldr w3, [x2,-96] - cbnz w3, .L2891 - cmp w4, 16 - bne .L2892 - add w0, w22, 256 - mov w1, w23 - mov x2, x24 - bl FtlVendorPartWrite - b .L2891 -.L2892: - adrp x20, .LANCHOR0 - add w26, w22, w23 - add x4, x20, :lo12:.LANCHOR0 - mov w0, -1 - ldr w1, [x4,2060] - cmp w26, w1 - bhi .L2891 - adrp x3, .LANCHOR4 - ldrh w1, [x4,2024] - add x28, x3, :lo12:.LANCHOR4 - sub w26, w26, #1 - mov w0, 2048 - str x3, [x29,144] - udiv w25, w22, w1 - cmp w23, w1, lsl 1 - str w0, [x28,472] - add x19, x2, 48 - ldr w3, [x4,2080] - udiv w0, w26, w1 - str w0, [x29,200] - sub w26, w0, w25 - add w27, w26, 1 - ldr w0, [x2,172] - add w0, w27, w0 - str w0, [x2,172] - ldr w0, [x2,188] - add w0, w23, w0 - str w0, [x2,188] - cset w0, cs - str w0, [x29,204] - cmp w23, 8 - csel x19, x2, x19, hi - cbz w3, .L2895 - mov w0, 56 - sub w3, w3, #1 - umull x3, w3, w0 - ldr x0, [x4,2088] - add x3, x0, x3 - ldr w0, [x3,24] - cmp w25, w0 - bne .L2896 - ldr w0, [x2,176] - add w0, w0, 1 - str w0, [x2,176] - ldr w0, [x28,476] - add w0, w0, 1 - str w0, [x28,476] - msub w0, w25, w1, w22 - sub w1, w1, w0 - ubfiz x0, x0, 9, 23 - cmp w1, w23 - csel w19, w1, w23, ls - ldr x1, [x3,8] - lsl w21, w19, 9 - add x0, x1, x0 - mov w2, w21 - mov x1, x24 - bl ftl_memcpy - cbnz w26, .L2897 - ldr w0, [x28,476] - cmp w0, 2 - bgt .L2897 -.L2930: - mov w0, 0 - b .L2891 -.L2897: - sub w23, w23, w19 - add w22, w22, w19 - add x24, x24, x21 - add w25, w25, 1 - mov w27, w26 -.L2896: - ldr x0, [x29,144] - add x0, x0, :lo12:.LANCHOR4 - ldr x19, [x0,440] - str wzr, [x0,476] -.L2895: - ldr w1, [x29,200] - mov w0, w25 - bl FtlCacheMetchLpa - cbz w0, .L2898 - bl FtlCacheWriteBack -.L2898: - ldr x0, [x29,144] - str w25, [x29,184] - add x0, x0, :lo12:.LANCHOR4 - str x19, [x0,440] - ldr x0, [x29,152] - add x21, x0, :lo12:.LANCHOR2 - adrp x0, .LC139 - add x0, x0, :lo12:.LC139 - str x0, [x29,104] -.L2899: - cbz w27, .L2960 - ldrh w0, [x19,4] - cbnz w0, .L2900 - cmp x19, x21 - bne .L2901 - add x0, x21, 48 - ldrh w19, [x0,4] - cbnz w19, .L2902 - bl allocate_new_data_superblock - adrp x0, .LANCHOR1 - add x0, x0, :lo12:.LANCHOR1 - str w19, [x0,3012] -.L2902: - mov x0, x21 - add x19, x21, 48 - bl allocate_new_data_superblock - adrp x0, .LANCHOR1 - add x0, x0, :lo12:.LANCHOR1 - ldr w0, [x0,3012] - cbnz w0, .L2903 -.L2904: - mov x19, x21 - b .L2903 -.L2901: - adrp x1, .LANCHOR1 - add x1, x1, :lo12:.LANCHOR1 - str w0, [x1,3012] - ldrh w0, [x21,4] - cbnz w0, .L2904 - mov x0, x19 - bl allocate_new_data_superblock -.L2903: - ldrh w0, [x19,4] - cbnz w0, .L2905 - mov x0, x19 - bl allocate_new_data_superblock -.L2905: - ldr x0, [x29,144] - add x0, x0, :lo12:.LANCHOR4 - str x19, [x0,440] -.L2900: - add x2, x20, :lo12:.LANCHOR0 - ldr w0, [x21,2048] - ldrh w1, [x19,4] - str xzr, [x29,192] - ldr w2, [x2,2080] - sub w0, w0, w2 - cmp w1, w0 - csel w0, w1, w0, ls - cmp w0, w27 - csel w0, w0, w27, ls - str w0, [x29,140] - ldr w0, [x29,204] - and w0, w0, 1 - str w0, [x29,116] - add w0, w23, w22 - str w0, [x29,136] -.L2906: - ldr w0, [x29,192] - ldr w2, [x29,140] - ldr w1, [x29,184] - cmp w0, w2 - add w26, w1, w0 - bcs .L2961 - ldrh w1, [x19,4] - cbz w1, .L2937 - ldr w1, [x29,200] - cmp w26, w1 - cset w7, eq - cbz w0, .L2908 - ldr w1, [x29,116] - tst w7, w1 - beq .L2908 - add x1, x20, :lo12:.LANCHOR0 - ldr w2, [x29,136] - ldrh w1, [x1,2024] - msub w2, w26, w1, w2 - cmp w2, w1 - bne .L2937 -.L2908: - add x1, x29, 212 - mov w2, 0 - mov w0, w26 - str x7, [x29,96] - bl log2phys - mov x0, x19 - bl get_new_active_ppa - add x4, x20, :lo12:.LANCHOR0 - mov w5, 56 - str x4, [x29,176] - str x5, [x29,160] - ldr w6, [x4,2080] - ldr x2, [x4,2088] - umull x1, w6, w5 - add x2, x2, x1 - str w0, [x2,4] - ldrh w2, [x4,2030] - ldr x0, [x4,2088] - add x1, x0, x1 - mul w0, w2, w6 - and x0, x0, 4294967292 - str x0, [x29,128] - ldr x0, [x21,2136] - ldr x3, [x29,128] - str x0, [x29,120] - add x28, x0, x3 - ldrh w0, [x4,2028] - str x28, [x1,16] - str w26, [x1,24] - mul w0, w0, w6 - ldr x6, [x21,2096] - and x0, x0, 4294967292 - add x0, x6, x0 - str x0, [x1,8] - mov x0, x28 - mov w1, 0 - bl ftl_memset - cmp w26, w25 - ldr x4, [x29,176] - cset w0, eq - str w0, [x29,188] - cbnz w0, .L2940 - ldr x7, [x29,96] - ldr x5, [x29,160] - cbz w7, .L2909 - ldr w0, [x29,136] - ldrh w2, [x4,2024] - msub w2, w26, w2, w0 - uxth w0, w2 - str w0, [x29,176] - ldr w0, [x29,188] - str w0, [x29,160] - b .L2912 -.L2940: - ldrh w2, [x4,2024] - udiv w0, w22, w2 - msub w0, w0, w2, w22 - str w0, [x29,160] - sub w2, w2, w0 - cmp w2, w23 - csel w0, w2, w23, ls - str w0, [x29,176] -.L2912: - add x2, x20, :lo12:.LANCHOR0 - ldr w1, [x29,176] - ldrh w0, [x2,2024] - cmp w1, w0 - bne .L2913 - ldr w0, [x29,188] - mov x1, x24 - cbnz w0, .L2914 - ldr w0, [x29,176] - mul w1, w0, w26 - sub w1, w1, w22 - ubfiz x1, x1, 9, 23 - add x1, x24, x1 -.L2914: - ldr w2, [x29,204] - mov w0, 56 - add x4, x20, :lo12:.LANCHOR0 - cbz w2, .L2915 - ldr w2, [x4,2080] - umull x0, w2, w0 - ldr x2, [x4,2088] - add x0, x2, x0 - b .L2957 -.L2915: - ldr w2, [x4,2080] - umull x0, w2, w0 - ldr x2, [x4,2088] - add x0, x2, x0 - ldr x0, [x0,8] - b .L2958 -.L2913: - ldr w0, [x29,212] - cmn w0, #1 - beq .L2917 - str w0, [x29,220] - mov w1, 56 - ldr w0, [x2,2080] - str w26, [x29,240] - umull x0, w0, w1 - ldr x1, [x2,2088] - mov w2, 0 - add x0, x1, x0 - ldr x1, [x0,8] - ldr x0, [x0,16] - str x1, [x29,224] - mov w1, 1 - str x0, [x29,232] - add x0, x29, 216 - bl FlashReadPages - ldr w0, [x29,216] - cmn w0, #1 - bne .L2918 - ldr w0, [x21,424] - add w0, w0, 1 - str w0, [x21,424] - b .L2920 -.L2918: - ldr w0, [x28,8] - cmp w0, w26 - beq .L2920 - ldr w0, [x21,424] - mov w2, w26 - add w0, w0, 1 - str w0, [x21,424] - ldr x0, [x29,104] - ldr w1, [x28,8] - bl printk - b .L2920 -.L2917: - ldr w0, [x2,2080] - mov w1, 56 - umull x0, w0, w1 - ldr x1, [x2,2088] - ldrh w2, [x2,2028] - add x0, x1, x0 - mov w1, 0 - ldr x0, [x0,8] - bl ftl_memset -.L2920: - ldr w1, [x29,176] - mov w0, 56 - lsl w2, w1, 9 - ldr w1, [x29,188] - cbz w1, .L2921 - add x1, x20, :lo12:.LANCHOR0 - ldr w4, [x1,2080] - umull x0, w4, w0 - ldr x4, [x1,2088] - add x4, x4, x0 - ldr x0, [x29,160] - ubfiz x0, x0, 9, 23 - ldr x1, [x4,8] - add x0, x1, x0 - mov x1, x24 - b .L2959 -.L2921: - add x5, x20, :lo12:.LANCHOR0 - ldr w4, [x5,2080] - ldr x1, [x5,2088] - umull x0, w4, w0 - add x0, x1, x0 - ldrh w1, [x5,2024] - mul w1, w26, w1 - ldr x0, [x0,8] - sub w1, w1, w22 - ubfiz x1, x1, 9, 23 - add x1, x24, x1 - b .L2959 -.L2909: - ldr w0, [x29,204] - ldrh w1, [x4,2024] - ldr w2, [x4,2080] - cbz w0, .L2922 - mul w1, w26, w1 - umull x0, w2, w5 - sub w1, w1, w22 - ldr x2, [x4,2088] - ubfiz x1, x1, 9, 23 - add x0, x2, x0 - add x1, x24, x1 -.L2957: - str x1, [x0,8] - b .L2916 -.L2922: - umull x0, w2, w5 - ldr x2, [x4,2088] - mul w1, w26, w1 - add x0, x2, x0 - sub w1, w1, w22 - ubfiz x1, x1, 9, 23 - ldr x0, [x0,8] - add x1, x24, x1 -.L2958: - ldrh w2, [x4,2028] -.L2959: - bl ftl_memcpy -.L2916: - ldr x1, [x29,120] - mov w0, -3947 - ldr x2, [x29,128] - strh w0, [x1,x2] - add x1, x20, :lo12:.LANCHOR0 - str w26, [x28,8] - ldr w0, [x21,200] - str w0, [x28,4] - add w0, w0, 1 - cmn w0, #1 - csel w0, w0, wzr, ne - str w0, [x21,200] - ldr w0, [x29,212] - str w0, [x28,12] - ldrh w0, [x19] - strh w0, [x28,2] - ldr w0, [x1,2080] - add w0, w0, 1 - str w0, [x1,2080] - ldr x0, [x29,192] - add x0, x0, 1 - str x0, [x29,192] - b .L2906 -.L2961: - str w26, [x29,184] - mov x0, x2 - b .L2907 -.L2937: - str w26, [x29,184] -.L2907: - sub w27, w27, w0 - ldr w0, [x29,204] - cbnz w0, .L2926 - add x0, x20, :lo12:.LANCHOR0 - ldr w1, [x0,2080] - ldr w0, [x21,2048] - cmp w1, w0 - bcs .L2926 - ldrh w0, [x19,4] - cbz w0, .L2926 -.L2928: - str wzr, [x29,204] - b .L2899 -.L2926: - bl FtlCacheWriteBack - add x0, x20, :lo12:.LANCHOR0 - cmp w27, 3 - str wzr, [x0,2080] - bls .L2928 - b .L2899 -.L2960: - ldr w1, [x29,200] - mov w0, w27 - sub w1, w1, w25 - bl rk_ftl_garbage_collect - ldr x0, [x29,152] - add x0, x0, :lo12:.LANCHOR2 - ldrh w1, [x0,-8] - cmp w1, 31 - bhi .L2930 - mov w1, 128 - mov w19, 16 - strh w1, [x0,866] - strh w1, [x0,864] -.L2931: - mov w0, 0 - mov w1, 1 - bl rk_ftl_garbage_collect - ldr x0, [x29,152] - add x0, x0, :lo12:.LANCHOR2 - ldr w0, [x0,-96] - cbnz w0, .L2930 - subs w19, w19, #1 - bne .L2931 - b .L2930 -.L2891: - 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], 272 - ret - .size FtlWrite, .-FtlWrite - .align 2 - .global StorageSysDataStore - .type StorageSysDataStore, %function -StorageSysDataStore: - stp x29, x30, [sp, -48]! - add x29, sp, 0 - str x19, [sp,16] - mov w19, w0 - str x1, [x29,40] - bl rknand_device_lock - ldr x3, [x29,40] - add w1, w19, 256 - mov w2, 1 - mov w0, 16 - bl FtlWrite - str x0, [x29,40] - bl rknand_device_unlock - ldr x19, [sp,16] - ldr x0, [x29,40] - ldp x29, x30, [sp], 48 - ret - .size StorageSysDataStore, .-StorageSysDataStore - .align 2 - .type FlashReadFacBbtData.part.13, %function -FlashReadFacBbtData.part.13: + .type FlashReadFacBbtData.part.14, %function +FlashReadFacBbtData.part.14: stp x29, x30, [sp, -32]! mov w3, 0 adrp x4, .LANCHOR4 @@ -19142,12 +15346,12 @@ FlashReadFacBbtData.part.13: str x19, [sp,16] mov w7, 1 mov x19, x0 - cbnz w1, .L2966 -.L2968: + cbnz w1, .L2275 +.L2277: add x0, x4, :lo12:.LANCHOR4 ldr w1, [x0,92] cmp w3, w1 - bcs .L2966 + bcs .L2275 ubfx x5, x3, 5, 11 ldr x0, [x0,56] lsl x5, x5, 2 @@ -19157,23 +15361,23 @@ FlashReadFacBbtData.part.13: uxth w3, w3 orr w6, w1, w6 str w6, [x0,x5] - b .L2968 -.L2966: + b .L2277 +.L2275: add x4, x4, :lo12:.LANCHOR4 mov x0, x19 ldr x1, [x4,56] bl ftl_memcpy mov w2, 4 - adrp x0, .LC140 + adrp x0, .LC132 mov x1, x19 - add x0, x0, :lo12:.LC140 + add x0, x0, :lo12:.LC132 mov w3, w2 bl rknand_print_hex ldr x19, [sp,16] mov w0, 0 ldp x29, x30, [sp], 32 ret - .size FlashReadFacBbtData.part.13, .-FlashReadFacBbtData.part.13 + .size FlashReadFacBbtData.part.14, .-FlashReadFacBbtData.part.14 .align 2 .global FlashReadFacBbtData .type FlashReadFacBbtData, %function @@ -19205,9 +15409,9 @@ FlashReadFacBbtData: str x1, [x29,96] sub w19, w3, #16 str x0, [x29,104] -.L2971: +.L2280: cmp w20, w19 - ble .L2979 + ble .L2288 add w0, w20, w24 mov w1, 1 lsl w0, w0, 10 @@ -19217,26 +15421,26 @@ FlashReadFacBbtData: bl FlashReadPages ldr w0, [x29,88] cmn w0, #1 - beq .L2972 + beq .L2281 add x0, x21, :lo12:.LANCHOR4 ldr x0, [x0,112] ldrh w0, [x0] cmp w0, w26 - bne .L2972 + bne .L2281 mov w0, w22 - cbz x22, .L2973 + cbz x22, .L2282 mov x0, x22 mov w1, w23 mov w2, w25 - bl FlashReadFacBbtData.part.13 - b .L2973 -.L2972: + bl FlashReadFacBbtData.part.14 + b .L2282 +.L2281: sub w20, w20, #1 uxth w20, w20 - b .L2971 -.L2979: + b .L2280 +.L2288: mov w0, -1 -.L2973: +.L2282: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -19266,37 +15470,37 @@ FlashGetBadBlockList: lsr w2, w2, 3 bl FlashReadFacBbtData cmn w0, #1 - bne .L2981 -.L2985: + bne .L2290 +.L2294: mov w1, 0 - b .L2982 -.L2981: + b .L2291 +.L2290: mov w2, 0 lsr w0, w19, 4 mov w1, w2 sub w19, w19, #1 mov w5, 1 -.L2983: +.L2292: cmp w2, w19 - bge .L2982 + bge .L2291 add x3, x20, :lo12:.LANCHOR4 ubfx x4, x2, 5, 11 ldr x6, [x3,104] lsl w3, w5, w2 ldr w4, [x6,x4,lsl 2] tst w3, w4 - beq .L2984 + beq .L2293 add w3, w1, 1 ubfiz x1, x1, 1, 16 strh w2, [x21,x1] uxth w1, w3 -.L2984: +.L2293: cmp w1, w0 - bcs .L2985 + bcs .L2294 add w2, w2, 1 uxth w2, w2 - b .L2983 -.L2982: + b .L2292 +.L2291: ubfiz x1, x1, 1, 16 mov w0, -1 ldp x19, x20, [sp,16] @@ -19320,7 +15524,7 @@ FtlMakeBbt: stp x25, x26, [sp,64] stp x27, x28, [sp,80] ldr w21, [x0,-96] - cbnz w21, .L2991 + cbnz w21, .L2300 adrp x19, .LANCHOR0 adrp x20, .LANCHOR4 add x24, x19, :lo12:.LANCHOR0 @@ -19331,20 +15535,20 @@ FtlMakeBbt: mov x26, x20 bl FtlBbtMemInit bl FtlLoadFactoryBbt -.L2992: +.L2301: add x22, x19, :lo12:.LANCHOR0 - ldrh w0, [x22,1966] + ldrh w0, [x22,1970] cmp w21, w0 - bcs .L3010 + bcs .L2319 add x1, x23, :lo12:.LANCHOR2 ldrh w28, [x25,12] - ldr x0, [x1,-64] + ldr x0, [x1,2072] ldr x27, [x1,2120] mov w1, 65535 str x0, [x20,8] cmp w28, w1 str x27, [x20,16] - beq .L2993 + beq .L2302 ldrh w0, [x22,2014] mov w1, 1 mov w2, w1 @@ -19359,24 +15563,24 @@ FtlMakeBbt: ldr x1, [x20,8] lsr w2, w2, 3 bl ftl_memcpy - b .L2994 -.L2993: + b .L2303 +.L2302: mov w1, w21 bl FlashGetBadBlockList ldr x0, [x20,8] ldr x1, [x24,32] bl FtlBbt2Bitmap ldrh w22, [x22,2014] -.L2996: +.L2305: sub w22, w22, #1 uxth w22, w22 -.L2995: +.L2304: add x28, x19, :lo12:.LANCHOR0 ldrh w0, [x28,2014] madd w0, w21, w0, w22 bl FtlBbmIsBadBlock cmp w0, 1 - beq .L2996 + beq .L2305 add x3, x23, :lo12:.LANCHOR2 mov w1, 0 mov w2, 16 @@ -19411,64 +15615,64 @@ FtlMakeBbt: bl FlashProgPages ldr w0, [x26] cmn w0, #1 - bne .L2994 + bne .L2303 mov w0, w28 bl FtlBbmMapBadBlock - b .L2995 -.L2994: + b .L2304 +.L2303: mov w0, w28 add w21, w21, 1 add x24, x24, 8 add x25, x25, 2 bl FtlBbmMapBadBlock - b .L2992 -.L3010: + b .L2301 +.L2319: mov w20, 0 -.L2999: +.L2308: add x21, x19, :lo12:.LANCHOR0 ldrh w0, [x21,2032] cmp w0, w20 - bls .L3011 + bls .L2320 mov w0, w20 add w20, w20, 1 bl FtlBbmMapBadBlock uxth w20, w20 - b .L2999 -.L3011: + b .L2308 +.L2320: ldrh w20, [x21,2116] mov w24, 65535 sub w20, w20, #1 uxth w20, w20 -.L3001: +.L2310: add x22, x21, 2104 ldrh w0, [x22,12] sub w0, w0, #48 cmp w20, w0 - ble .L3005 + ble .L2314 mov w0, w20 bl FtlBbmIsBadBlock cmp w0, 1 - beq .L3002 + beq .L2311 mov w0, w20 bl FlashTestBlk - cbz w0, .L3003 + cbz w0, .L2312 mov w0, w20 bl FtlBbmMapBadBlock - b .L3002 -.L3003: + b .L2311 +.L2312: ldrh w0, [x21,2104] cmp w0, w24 - bne .L3004 + bne .L2313 strh w20, [x21,2104] - b .L3002 -.L3004: + b .L2311 +.L2313: strh w20, [x22,4] - b .L3005 -.L3002: + b .L2314 +.L2311: sub w20, w20, #1 uxth w20, w20 - b .L3001 -.L3005: + b .L2310 +.L2314: add x23, x23, :lo12:.LANCHOR2 add x19, x19, :lo12:.LANCHOR0 mov w2, 2 @@ -19498,7 +15702,7 @@ FtlMakeBbt: strh w0, [x19,2108] strh w1, [x19,2104] bl FtlBbmTblFlush -.L2991: +.L2300: mov w0, 0 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -19509,6 +15713,1939 @@ FtlMakeBbt: ret .size FtlMakeBbt, .-FtlMakeBbt .align 2 + .global log2phys + .type log2phys, %function +log2phys: + stp x29, x30, [sp, -112]! + add x29, sp, 0 + stp x23, x24, [sp,48] + adrp x24, .LANCHOR0 + add x3, x24, :lo12:.LANCHOR0 + str w2, [x29,104] + stp x25, x26, [sp,64] + stp x19, x20, [sp,16] + stp x27, x28, [sp,80] + stp x21, x22, [sp,32] + mov x27, x1 + mov x2, 1 + ldrh w1, [x3,2026] + adrp x20, .LANCHOR2 + add w1, w1, 7 + lsr w26, w0, w1 + lsl x1, x2, x1 + sub w1, w1, #1 + and w23, w1, w0 + ldrh w1, [x3,2058] + uxth w25, w26 + uxth w0, w23 + str w0, [x29,108] + add x0, x20, :lo12:.LANCHOR2 + ldr x21, [x0,184] + mov x0, 0 +.L2322: + uxth x19, w0 + cmp w19, w1 + bcs .L2337 + add x0, x0, 1 + add x2, x21, x0, lsl 4 + ldrh w2, [x2,-16] + cmp w2, w25 + bne .L2322 +.L2323: + ldr w0, [x29,104] + ldr w23, [x29,108] + cbnz w0, .L2324 + add x0, x20, :lo12:.LANCHOR2 + ldr x1, [x0,184] + add x1, x1, x19, lsl 4 + ldr x0, [x1,8] + ldr w0, [x0,x23,lsl 2] + str w0, [x27] + b .L2325 +.L2324: + add x1, x20, :lo12:.LANCHOR2 + lsl x0, x19, 4 + ldr w3, [x27] + ldr x2, [x1,184] + add x2, x2, x0 + ldr x2, [x2,8] + str w3, [x2,x23,lsl 2] + strh w25, [x1,192] + ldr x2, [x1,184] + add x0, x2, x0 + ldr w2, [x0,4] + orr w2, w2, -2147483648 + str w2, [x0,4] +.L2325: + add x20, x20, :lo12:.LANCHOR2 + ldr x0, [x20,184] + add x19, x0, x19, lsl 4 + ldr w0, [x19,4] + cmn w0, #1 + beq .L2334 + add w0, w0, 1 + str w0, [x19,4] + b .L2334 +.L2337: + bl select_l2p_ram_region + uxth x19, w0 + ubfiz x22, x19, 4, 16 + mov w2, 65535 + add x1, x21, x22 + ldrh w3, [x21,x22] + cmp w3, w2 + beq .L2328 + ldr w1, [x1,4] + tbz w1, #31, .L2328 + bl flush_l2p_region +.L2328: + add x21, x20, :lo12:.LANCHOR2 + ubfiz x0, x25, 2, 16 + ldr x1, [x21,2216] + ldr w23, [x1,x0] + cbnz w23, .L2329 + ldr x0, [x21,184] + add x24, x24, :lo12:.LANCHOR0 + mov w1, 255 + add x0, x0, x22 + ldrh w2, [x24,2028] + ldr x0, [x0,8] + bl ftl_memset + ldr x0, [x21,184] + strh w25, [x0,x22] + ldr x0, [x21,184] + add x22, x0, x22 + str w23, [x22,4] + b .L2323 +.L2329: + ldr x0, [x21,184] + adrp x5, .LANCHOR4 + add x5, x5, :lo12:.LANCHOR4 + mov w1, 1 + add x0, x0, x22 + add x28, x5, 160 + mov w2, w1 + str x5, [x29,96] + str w23, [x5,164] + ldr x0, [x0,8] + str x0, [x5,168] + ldr x0, [x21,2120] + str x0, [x5,176] + mov x0, x28 + bl FlashReadPages + ldr x0, [x28,16] + ldr x5, [x29,96] + ldrh w0, [x0,8] + cmp w0, w25 + beq .L2330 + adrp x0, .LC133 + uxth w1, w26 + mov w2, w23 + add x0, x0, :lo12:.LC133 + add x24, x24, :lo12:.LANCHOR0 + bl printk + mov w2, 4 + ldr x1, [x28,16] + adrp x0, .LC99 + mov w3, w2 + add x0, x0, :lo12:.LC99 + bl rknand_print_hex + adrp x0, .LC134 + ldr x1, [x21,2216] + ldrh w3, [x24,2056] + add x0, x0, :lo12:.LC134 + mov w2, 4 + bl rknand_print_hex + mov w0, 1 + str w0, [x21,-96] + b .L2331 +.L2330: + ldr w0, [x5,160] + cmp w0, 256 + bne .L2331 + and w26, w26, 65535 + adrp x0, .LC135 + mov w1, w26 + mov w2, w23 + add x0, x0, :lo12:.LC135 + bl printk + ldr x2, [x21,184] + add x0, x21, 2256 + mov w1, w26 + add x2, x2, x22 + ldr x2, [x2,8] + bl FtlMapWritePage +.L2331: + add x1, x20, :lo12:.LANCHOR2 + ldr x0, [x1,184] + add x0, x0, x22 + str wzr, [x0,4] + ldr x0, [x1,184] + strh w25, [x0,x22] + b .L2323 +.L2334: + 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 + ret + .size log2phys, .-log2phys + .align 2 + .global FtlWriteDumpData + .type FtlWriteDumpData, %function +FtlWriteDumpData: + stp x29, x30, [sp, -144]! + add x29, sp, 0 + stp x19, x20, [sp,16] + adrp x19, .LANCHOR2 + str x25, [sp,64] + stp x23, x24, [sp,48] + add x23, x19, :lo12:.LANCHOR2 + stp x21, x22, [sp,32] + ldr w0, [x23,-96] + cbnz w0, .L2338 + ldrh w2, [x23,44] + cbz w2, .L2340 + ldrb w1, [x23,48] + cbnz w1, .L2340 + adrp x21, .LANCHOR0 + ldrb w1, [x23,47] + add x21, x21, :lo12:.LANCHOR0 + ldrh w3, [x21,2018] + mul w1, w1, w3 + cmp w2, w1 + beq .L2340 + ldrb w24, [x23,50] + ldr w22, [x21,2096] + ldrh w25, [x21,1948] + cbnz w24, .L2338 + sub w22, w22, #1 + add x1, x29, 84 + mov w0, w22 + mov w2, w24 + bl log2phys + ldr x20, [x23,2120] + ldr w0, [x29,84] + ldr x1, [x23,2072] + str w0, [x29,92] + cmn w0, #1 + str w22, [x29,112] + str x1, [x29,96] + str x20, [x29,104] + str w24, [x20,4] + beq .L2342 + add x0, x29, 88 + mov w1, 1 + mov w2, w24 + bl FlashReadPages + b .L2343 +.L2342: + ldr x0, [x23,2072] + mov w1, 255 + ldrh w2, [x21,2028] + bl ftl_memset +.L2343: + add x24, x19, :lo12:.LANCHOR2 + mov w0, -3947 + lsl w25, w25, 2 + strh w0, [x20] + mov w23, 0 + add x21, x24, 40 +.L2344: + cmp w23, w25 + beq .L2345 + ldrh w0, [x21,4] + cbz w0, .L2345 + ldr w0, [x29,92] + add w23, w23, 1 + str w0, [x20,12] + ldrh w0, [x21] + strh w0, [x20,2] + mov x0, x21 + str w22, [x20,8] + bl get_new_active_ppa + str w0, [x29,92] + ldr w1, [x24,236] + mov w2, 0 + str w1, [x20,4] + mov w3, w2 + add w1, w1, 1 + add x0, x29, 88 + cmn w1, #1 + csel w1, w1, wzr, ne + str w1, [x24,236] + mov w1, 1 + bl FlashProgPages + ldrh w0, [x21] + bl decrement_vpc_count + b .L2344 +.L2345: + add x19, x19, :lo12:.LANCHOR2 + mov w0, 1 + strb w0, [x19,50] + b .L2338 +.L2340: + add x19, x19, :lo12:.LANCHOR2 + strb wzr, [x19,50] +.L2338: + ldp x19, x20, [sp,16] + ldp x21, x22, [sp,32] + ldp x23, x24, [sp,48] + ldr x25, [sp,64] + ldp x29, x30, [sp], 144 + ret + .size FtlWriteDumpData, .-FtlWriteDumpData + .align 2 + .global l2p_flush + .type l2p_flush, %function +l2p_flush: + stp x29, x30, [sp, -48]! + add x29, sp, 0 + stp x19, x20, [sp,16] + str x21, [sp,32] + mov w19, 0 + adrp x20, .LANCHOR0 + adrp x21, .LANCHOR2 + bl FtlWriteDumpData +.L2356: + add x0, x20, :lo12:.LANCHOR0 + ldrh w0, [x0,2058] + cmp w0, w19 + bls .L2359 + add x1, x21, :lo12:.LANCHOR2 + ubfiz x0, x19, 4, 16 + ldr x1, [x1,184] + add x0, x1, x0 + ldr w0, [x0,4] + tbz w0, #31, .L2357 + mov w0, w19 + bl flush_l2p_region +.L2357: + add w19, w19, 1 + uxth w19, w19 + b .L2356 +.L2359: + mov w0, 0 + ldr x21, [sp,32] + ldp x19, x20, [sp,16] + ldp x29, x30, [sp], 48 + ret + .size l2p_flush, .-l2p_flush + .align 2 + .global allocate_new_data_superblock + .type allocate_new_data_superblock, %function +allocate_new_data_superblock: + stp x29, x30, [sp, -48]! + add x29, sp, 0 + stp x19, x20, [sp,16] + adrp x19, .LANCHOR2 + str x21, [sp,32] + add x1, x19, :lo12:.LANCHOR2 + ldrh w20, [x0] + ldr w1, [x1,-96] + cbnz w1, .L2361 + mov x21, x0 + mov w0, 65535 + cmp w20, w0 + beq .L2362 + ubfiz x1, x20, 1, 16 + ldr x0, [x19,#:lo12:.LANCHOR2] + ldrh w0, [x0,x1] + cbz w0, .L2363 + mov w0, w20 + bl INSERT_DATA_LIST + b .L2362 +.L2363: + mov w0, w20 + bl INSERT_FREE_LIST +.L2362: + add x2, x19, :lo12:.LANCHOR2 + strb wzr, [x21,8] + add x0, x2, 88 + cmp x21, x0 + beq .L2364 + adrp x1, .LANCHOR0 + add x4, x1, :lo12:.LANCHOR0 + ldrh w3, [x4,1968] + cmp w3, 1 + beq .L2364 + ldrb w0, [x4,120] + cbz w0, .L2365 +.L2364: + mov w0, 1 + strb w0, [x21,8] + b .L2366 +.L2365: + add x0, x2, 40 + cmp x21, x0 + bne .L2366 + cmp w3, 3 + beq .L2368 + ldr w0, [x2,328] + cmp w0, 1 + bne .L2369 +.L2368: + add x2, x19, :lo12:.LANCHOR2 + mov w0, 1 + strb w0, [x2,48] +.L2369: + add x1, x1, :lo12:.LANCHOR0 + ldr w0, [x1,1940] + cbz w0, .L2366 + add x1, x19, :lo12:.LANCHOR2 + ldr w0, [x1,256] + cmp w0, 39 + bhi .L2366 + mov w0, 1 + strb w0, [x1,48] +.L2366: + add x0, x19, :lo12:.LANCHOR2 + ldrh w1, [x0,2336] + mov w0, 65535 + cmp w1, w0 + beq .L2371 + cmp w20, w1 + bne .L2372 + adrp x0, .LANCHOR2 + ubfiz x2, x1, 1, 16 + ldr x0, [x0,#:lo12:.LANCHOR2] + ldrh w0, [x0,x2] + cbz w0, .L2373 +.L2372: + mov w0, w1 + bl update_vpc_list +.L2373: + add x19, x19, :lo12:.LANCHOR2 + mov w0, -1 + strh w0, [x19,2336] +.L2371: + mov x0, x21 + bl allocate_data_superblock + bl l2p_flush + mov w0, 0 + bl FtlEctTblFlush + bl FtlVpcTblFlush +.L2361: + mov w0, 0 + ldr x21, [sp,32] + ldp x19, x20, [sp,16] + ldp x29, x30, [sp], 48 + ret + .size allocate_new_data_superblock, .-allocate_new_data_superblock + .align 2 + .global Ftlscanalldata + .type Ftlscanalldata, %function +Ftlscanalldata: + sub sp, sp, #80 + adrp x0, .LC136 + add x0, x0, :lo12:.LC136 + mov w1, 0 + stp x29, x30, [sp,16] + add x29, sp, 16 + stp x19, x20, [sp,32] + adrp x19, .LANCHOR4 + mov w20, 0 + stp x21, x22, [sp,48] + add x19, x19, :lo12:.LANCHOR4 + adrp x21, .LC137 + add x21, x21, :lo12:.LC137 + add x19, x19, 160 + bl printk +.L2387: + adrp x0, .LANCHOR0+2096 + ldr w0, [x0,#:lo12:.LANCHOR0+2096] + cmp w20, w0 + bcs .L2394 + mov w0, w20 + add x1, x29, 60 + mov w2, 0 + bl log2phys + and w0, w20, 2047 + cbnz w0, .L2388 + ldr w2, [x29,60] + mov x0, x21 + mov w1, w20 + bl printk +.L2388: + ldr w0, [x29,60] + cmn w0, #1 + beq .L2390 + adrp x1, .LANCHOR2 + str w0, [x19,4] + add x1, x1, :lo12:.LANCHOR2 + mov w2, 0 + str w20, [x19,24] + str wzr, [x19] + ldr x0, [x1,2072] + ldr x22, [x1,2120] + mov w1, 1 + str x0, [x19,8] + mov x0, x19 + str x22, [x19,16] + bl FlashReadPages + ldr w0, [x19] + cmn w0, #1 + beq .L2391 + cmp w0, 256 + beq .L2391 + ldr w0, [x22,8] + cmp w0, w20 + beq .L2390 +.L2391: + adrp x2, .LANCHOR4 + mov w1, w20 + add x2, x2, :lo12:.LANCHOR4 + add x2, x2, 160 + ldr x7, [x2,8] + ldr x6, [x2,16] + ldr w0, [x7,4] + str w0, [sp] + adrp x0, .LC138 + add x0, x0, :lo12:.LC138 + ldr w3, [x6] + ldr w4, [x6,4] + ldr w5, [x6,8] + ldr w2, [x2,4] + ldr w6, [x6,12] + ldr w7, [x7] + bl printk +.L2390: + add w20, w20, 1 + b .L2387 +.L2394: + sub sp, x29, #16 + ldp x19, x20, [sp,32] + ldp x21, x22, [sp,48] + ldp x29, x30, [sp,16] + add sp, sp, 80 + ret + .size Ftlscanalldata, .-Ftlscanalldata + .align 2 + .global FtlReUsePrevPpa + .type FtlReUsePrevPpa, %function +FtlReUsePrevPpa: + stp x29, x30, [sp, -80]! + add x29, sp, 0 + stp x19, x20, [sp,16] + mov w20, w0 + lsr x0, x1, 10 + stp x21, x22, [sp,32] + str w1, [x29,76] + str x23, [sp,48] + bl P2V_block_in_plane + adrp x2, .LANCHOR2 + uxth w0, w0 + ubfiz x22, x0, 1, 16 + add x3, x2, :lo12:.LANCHOR2 + mov x21, x2 + ldr x4, [x2,#:lo12:.LANCHOR2] + ldrh w1, [x4,x22] + cbnz w1, .L2396 + ldr x19, [x3,24] + cbz x19, .L2397 + ldr x2, [x3,-16] + mov w5, 65535 + ldrh w4, [x3,32] + mov x3, -6148914691236517206 + sub x19, x19, x2 + asr x19, x19, 1 + madd x19, x3, x19, x19 + mov w3, 6 + uxth w19, w19 +.L2398: + cmp w1, w4 + beq .L2397 + cmp w19, w0 + bne .L2399 + add x23, x21, :lo12:.LANCHOR2 + mov w1, w19 + add x0, x23, 24 + bl List_remove_node + ldrh w0, [x23,32] + sub w0, w0, #1 + strh w0, [x23,32] + mov w0, w19 + bl INSERT_DATA_LIST + ldr x1, [x21,#:lo12:.LANCHOR2] + ldrh w0, [x1,x22] + add w0, w0, 1 + strh w0, [x1,x22] + b .L2397 +.L2399: + umull x19, w19, w3 + ldrh w19, [x2,x19] + cmp w19, w5 + beq .L2397 + add w1, w1, 1 + uxth w1, w1 + b .L2398 +.L2396: + add w1, w1, 1 + strh w1, [x4,x22] +.L2397: + add x1, x29, 76 + mov w0, w20 + mov w2, 1 + bl log2phys + ldr x23, [sp,48] + ldp x19, x20, [sp,16] + ldp x21, x22, [sp,32] + ldp x29, x30, [sp], 80 + ret + .size FtlReUsePrevPpa, .-FtlReUsePrevPpa + .align 2 + .global FtlRecoverySuperblock + .type FtlRecoverySuperblock, %function +FtlRecoverySuperblock: + stp x29, x30, [sp, -208]! + mov w2, 65535 + 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 + ldrh w0, [x0] + cmp w0, w2 + beq .L2561 + ldrh w0, [x19,2] + adrp x23, .LANCHOR0 + str w0, [x29,188] + ldrb w0, [x19,6] + str w0, [x29,176] + add x0, x23, :lo12:.LANCHOR0 + ldr w1, [x29,188] + ldrh w0, [x0,2018] + cmp w0, w1 + bne .L2407 + strh wzr, [x19,4] + b .L2567 +.L2407: + ldrh w0, [x19,16] + mov w1, 0 +.L2408: + cmp w0, w2 + bne .L2570 + add w1, w1, 1 + uxth w1, w1 + add x0, x19, x1, sxtw 1 + ldrh w0, [x0,16] + b .L2408 +.L2570: + ldrb w1, [x19,8] + cmp w1, 1 + bne .L2410 + bl FtlGetLastWrittenPage + cmn w0, #1 + mov w20, w0 + beq .L2411 + add x0, x23, :lo12:.LANCHOR0 + mov w24, w20 + ldrb w1, [x0,120] + cbnz w1, .L2484 + add x0, x0, 196 + ldrh w24, [x0,w20,sxtw 1] + b .L2484 +.L2410: + mov w1, 0 + bl FtlGetLastWrittenPage + cmn w0, #1 + mov w20, w0 + beq .L2411 + mov w24, w0 +.L2484: + add x0, x23, :lo12:.LANCHOR0 + mov x2, x19 + mov w26, 0 + mov w8, 65535 + mov w9, 56 + adrp x10, .LANCHOR2 + ldrh w4, [x0,1948] + mov w11, 4 + ldrh w7, [x0,2030] + add x4, x19, x4, lsl 1 + b .L2413 +.L2411: + strh wzr, [x19,2] +.L2567: + strb wzr, [x19,6] + b .L2561 +.L2415: + ldrh w1, [x2,16] + cmp w1, w8 + beq .L2414 + add x5, x10, :lo12:.LANCHOR2 + orr w1, w24, w1, lsl 10 + umull x0, w26, w9 + add w3, w26, 1 + ldr x6, [x5,2048] + add x6, x6, x0 + str w1, [x6,4] + ldr x1, [x5,2048] + ldr x5, [x5,888] + add x0, x1, x0 + mul w1, w26, w7 + uxth w26, w3 + str xzr, [x0,8] + sdiv w1, w1, w11 + add x1, x5, x1, sxtw 2 + str x1, [x0,16] +.L2414: + add x2, x2, 2 +.L2413: + cmp x2, x4 + bne .L2415 + ldrb w0, [x19,8] + str wzr, [x29,184] + cmp w0, 1 + bne .L2416 + add x0, x23, :lo12:.LANCHOR0 + ldrb w0, [x0,120] + cmp w0, wzr + cset w0, ne + str w0, [x29,184] +.L2416: + adrp x21, .LANCHOR2 + ldr w2, [x29,184] + add x22, x21, :lo12:.LANCHOR2 + mov w1, w26 + mov x27, 0 + mov w25, 65535 + mov x28, 56 + ldr x0, [x22,2048] + bl FlashReadPages + ldr w0, [x22,236] + adrp x22, .LC139 + str w0, [x29,168] + add x22, x22, :lo12:.LC139 + uxth w0, w24 + str w0, [x29,160] +.L2417: + uxth w2, w27 + cmp w2, w26 + bcs .L2424 + add x6, x21, :lo12:.LANCHOR2 + mul x0, x27, x28 + ldr x4, [x6,2048] + add x1, x4, x0 + ldr w0, [x4,x0] + cbnz w0, .L2418 + ldr x7, [x1,16] + ldr w4, [x7,4] + cmn w4, #1 + beq .L2419 + ldr w1, [x6,236] + mov w0, w4 + str x7, [x29,128] + str x2, [x29,136] + str x4, [x29,144] + str x6, [x29,152] + bl ftl_cmp_data_ver + ldr x6, [x29,152] + ldr x4, [x29,144] + ldr x2, [x29,136] + ldr x7, [x29,128] + cbz w0, .L2419 + add w4, w4, 1 + str w4, [x6,236] +.L2419: + ldr w0, [x7] + cmn w0, #1 + bne .L2420 +.L2424: + cmp w2, w26 + bne .L2562 + add x0, x21, :lo12:.LANCHOR2 + add w20, w20, 1 + uxth w20, w20 + ldr x0, [x0,2048] + ldr w0, [x0,4] + b .L2563 +.L2418: + ldr w1, [x1,4] + mov x0, x22 + bl printk + ldr w25, [x29,160] + adrp x0, .LANCHOR4 + ldrh w1, [x19] + add x0, x0, :lo12:.LANCHOR4 + strh w1, [x0,290] +.L2420: + add x27, x27, 1 + b .L2417 +.L2562: + add x0, x21, :lo12:.LANCHOR2 + mov w1, 56 + uxth w20, w20 + umull x2, w2, w1 + ldr x0, [x0,2048] + add x2, x0, x2 + ldr w0, [x2,4] +.L2563: + lsr x0, x0, 10 + bl P2V_plane + uxth w26, w0 + ldrb w1, [x19,8] + cmp w1, 1 + bne .L2426 + add x0, x23, :lo12:.LANCHOR0 + ldrb w2, [x0,120] + cbnz w2, .L2426 + add x0, x0, 196 + ldrh w20, [x0,w20,sxtw 1] +.L2426: + add x0, x23, :lo12:.LANCHOR0 + ldrh w0, [x0,2018] + cmp w0, w20 + bne .L2427 + strh w20, [x19,2] + strb wzr, [x19,6] + strh wzr, [x19,4] +.L2427: + ldrh w0, [x29,176] + str w0, [x29,152] + ldr w0, [x29,188] + cmp w20, w0 + bne .L2428 + ldr w0, [x29,152] + cmp w26, w0 + beq .L2568 +.L2428: + ldr w0, [x29,168] + sub w22, w0, #1 + mov w0, 65535 + cmp w25, w0 + bne .L2429 + cbnz w1, .L2430 +.L2429: + add x0, x21, :lo12:.LANCHOR2 + uxth w5, w24 + ldr w1, [x0,2348] + cmn w1, #1 + bne .L2431 + str w22, [x0,2348] +.L2431: + add x0, x21, :lo12:.LANCHOR2 + ldr w25, [x29,188] + ldr w6, [x0,2348] + ldr w0, [x29,188] + add w0, w0, 7 + cmp w0, w24, uxth + bge .L2432 + sub w25, w5, #7 + uxth w25, w25 +.L2432: + mov w3, -1 + add x28, x21, :lo12:.LANCHOR2 + mov w27, w3 + mov w4, 65535 + mov w7, 56 + add x8, x28, 988 +.L2433: + cmp w25, w5 + bhi .L2446 + add x0, x23, :lo12:.LANCHOR0 + mov w24, 0 + ldrh w2, [x0,1948] + mov x0, x19 + add x2, x19, x2, lsl 1 +.L2447: + cmp x0, x2 + beq .L2571 + ldrh w1, [x0,16] + cmp w1, w4 + beq .L2434 + umull x9, w24, w7 + ldr x10, [x28,2048] + add w24, w24, 1 + orr w1, w25, w1, lsl 10 + add x9, x10, x9 + uxth w24, w24 + str w1, [x9,4] +.L2434: + add x0, x0, 2 + b .L2447 +.L2571: + ldr x0, [x28,2048] + mov w1, w24 + ldr w2, [x29,184] + str x8, [x29,128] + str x7, [x29,136] + str x4, [x29,144] + str x6, [x29,160] + str x5, [x29,168] + str x3, [x29,176] + bl FlashReadPages + add x0, x23, :lo12:.LANCHOR0 + ldr x3, [x29,176] + ldr x5, [x29,168] + mov w1, 0 + ldr x6, [x29,160] + sxtw x10, w25 + ldrb w9, [x0,120] + ldr x0, [x28,2048] + ldr x4, [x29,144] + ldr x7, [x29,136] + add x0, x0, 16 + ldr x8, [x29,128] +.L2436: + cmp w1, w24 + beq .L2572 + ldr w2, [x0,-16] + cbnz w2, .L2437 + ldr x2, [x0] + ldrh w11, [x2] + cmp w11, w4 + beq .L2438 + ldr w2, [x2,4] + cmn w2, #1 + beq .L2438 + ldr w27, [x28,2348] + cmn w3, #1 + str w2, [x28,2348] + bne .L2438 + ldrh w2, [x8,x10,lsl 1] + cmp w2, w4 + bne .L2439 + cbz w9, .L2438 +.L2439: + cmp w27, w22 + csinv w3, w27, wzr, ne + b .L2438 +.L2437: + adrp x0, .LANCHOR4+290 + ldrh w1, [x19] + strh w1, [x0,#:lo12:.LANCHOR4+290] + ldrb w0, [x19,8] + cbnz w0, .L2430 + add x0, x21, :lo12:.LANCHOR2 + add x1, x0, 988 + ldrh w2, [x1,w25,sxtw 1] + mov w1, 65535 + cmp w2, w1 + bne .L2441 + cmn w3, #1 + beq .L2442 + str w3, [x0,2348] + b .L2430 +.L2442: + cmp w6, w22 + beq .L2443 + str w6, [x0,2348] + b .L2430 +.L2443: + ldr w1, [x0,2348] + b .L2569 +.L2441: + cmp w27, w22 + beq .L2444 + cmn w27, #1 + beq .L2430 + str w27, [x0,2348] + b .L2430 +.L2444: + ldr w1, [x0,2348] + cmp w1, w22 + beq .L2430 +.L2569: + sub w1, w1, #1 + b .L2564 +.L2438: + add w1, w1, 1 + add x0, x0, 56 + uxth w1, w1 + b .L2436 +.L2572: + add w25, w25, 1 + uxth w25, w25 + b .L2433 +.L2446: + add x0, x21, :lo12:.LANCHOR2 + mov w1, -1 +.L2564: + str w1, [x0,2348] +.L2430: + adrp x0, .LANCHOR4 + str x0, [x29,136] + add x1, x0, :lo12:.LANCHOR4 + adrp x0, .LC141 + add x0, x0, :lo12:.LC141 + ldr w24, [x29,188] + str x0, [x29,128] + adrp x0, .LC140 + mov w2, 1 + add x0, x0, :lo12:.LC140 + strh w2, [x1,292] + str x0, [x29,120] +.L2448: + add x0, x23, :lo12:.LANCHOR0 + mov x1, x19 + str wzr, [x29,176] + mov w7, 65535 + mov w8, 56 + ldrh w3, [x0,1948] + ldrb w6, [x0,120] + add x3, x19, x3, lsl 1 +.L2449: + cmp x1, x3 + beq .L2573 + ldrh w2, [x1,16] + cmp w2, w7 + beq .L2450 + ldr w0, [x29,176] + add x5, x21, :lo12:.LANCHOR2 + orr w2, w24, w2, lsl 10 + ldr x4, [x5,2048] + umull x0, w0, w8 + add x4, x4, x0 + str w2, [x4,4] + ldrb w2, [x19,8] + cmp w2, 1 + bne .L2451 + cbz w6, .L2451 + ldr x2, [x5,2048] + add x0, x2, x0 + ldr w2, [x0,4] + orr w2, w2, -2147483648 + str w2, [x0,4] +.L2451: + ldr w0, [x29,176] + add w0, w0, 1 + uxth w0, w0 + str w0, [x29,176] +.L2450: + add x1, x1, 2 + b .L2449 +.L2573: + add x0, x21, :lo12:.LANCHOR2 + ldr w1, [x29,176] + ldr w2, [x29,184] + ldr x0, [x0,2048] + bl FlashReadPages + str xzr, [x29,160] +.L2453: + ldrh w0, [x29,160] + ldr w1, [x29,176] + cmp w1, w0, uxth + bls .L2574 + ldr x0, [x29,160] + mov x25, 56 + mul x25, x0, x25 + add x0, x21, :lo12:.LANCHOR2 + ldr x28, [x0,2048] + add x27, x28, x25 + ldr w1, [x27,4] + str w1, [x29,204] + lsr x0, x1, 10 + str x1, [x29,168] + bl P2V_plane + uxth w0, w0 + ldr w1, [x29,188] + cmp w24, w1 + ldr x1, [x29,168] + bcc .L2454 + ldr w2, [x29,152] + cmp w0, w2 + bcs .L2488 + ldr w2, [x29,188] + cmp w24, w2 + beq .L2454 +.L2488: + cmp w0, w26 + bne .L2489 + cmp w24, w20 + beq .L2456 +.L2489: + ldr w0, [x28,x25] + cmn w0, #1 + beq .L2458 + ldr x28, [x27,16] + mov w0, 61589 + ldrh w1, [x28] + cmp w1, w0 + beq .L2459 + ldrh w0, [x19] + b .L2565 +.L2459: + ldr w22, [x28,4] + cmn w22, #1 + beq .L2460 + add x27, x21, :lo12:.LANCHOR2 + mov w0, w22 + ldr w1, [x27,236] + bl ftl_cmp_data_ver + cbz w0, .L2460 + add w0, w22, 1 + str w0, [x27,236] +.L2460: + ldr w27, [x28,8] + add x1, x29, 200 + ldr w0, [x28,12] + mov w2, 0 + str w0, [x29,196] + mov w0, w27 + bl log2phys + add x3, x21, :lo12:.LANCHOR2 + str x3, [x29,168] + ldr w1, [x3,2348] + cmn w1, #1 + beq .L2461 + mov w0, w22 + bl ftl_cmp_data_ver + ldr x3, [x29,168] + cbz w0, .L2461 + ldr w1, [x29,196] + cmn w1, #1 + beq .L2462 + ldr x0, [x3,2048] + str x3, [x29,112] + add x0, x0, x25 + str w1, [x0,4] + mov w1, 1 + ldr x2, [x0,16] + ldr x0, [x3,2048] + str x2, [x29,168] + mov w2, 0 + add x0, x0, x25 + bl FlashReadPages + ldr x3, [x29,112] + ldr x0, [x29,168] + ldr x2, [x3,2048] + ldr w0, [x0,4] + str w0, [x29,144] + add x4, x2, x25 + ldr w0, [x2,x25] + cmn w0, #1 + bne .L2463 + b .L2464 +.L2462: + ldr w0, [x29,204] + ldr w1, [x29,200] + cmp w1, w0 + bne .L2454 + mov w0, w27 + add x1, x29, 196 + mov w2, 1 + bl log2phys + b .L2454 +.L2463: + ldr x0, [x29,168] + ldr w28, [x0,8] + cmp w28, w27 + bne .L2464 + ldr w0, [x3,2348] + ldr w1, [x29,144] + str x2, [x29,96] + str x4, [x29,104] + str x3, [x29,112] + bl ftl_cmp_data_ver + ldr x3, [x29,112] + ldr x4, [x29,104] + ldr x2, [x29,96] + cbz w0, .L2464 + ldr w0, [x29,200] + ldr w1, [x29,204] + cmp w0, w1 + beq .L2469 + ldr w1, [x29,196] + cmp w0, w1 + beq .L2464 + cmn w0, #1 + beq .L2467 + str w0, [x4,4] + mov w2, 0 + ldr x1, [x4,16] + ldr x0, [x3,2048] + str x1, [x29,168] + mov w1, 1 + add x0, x0, x25 + bl FlashReadPages + b .L2468 +.L2467: + str w0, [x2,x25] +.L2468: + add x0, x21, :lo12:.LANCHOR2 + ldr x1, [x0,2048] + ldr w1, [x1,x25] + cmn w1, #1 + beq .L2469 + ldr x1, [x29,168] + ldr w0, [x0,2348] + ldr w25, [x1,4] + mov w1, w25 + bl ftl_cmp_data_ver + cbz w0, .L2469 + ldr w0, [x29,144] + mov w1, w25 + bl ftl_cmp_data_ver + cbz w0, .L2464 +.L2469: + ldr w1, [x29,196] + mov w0, w28 + bl FtlReUsePrevPpa +.L2464: + mov w0, -1 + str w0, [x29,196] + b .L2471 +.L2461: + ldr w0, [x29,204] + ldr w1, [x29,200] + cmp w1, w0 + beq .L2471 + mov w0, w27 + add x1, x29, 204 + mov w2, 1 + bl log2phys + ldr w25, [x29,200] + cmn w25, #1 + beq .L2471 + ldr w0, [x29,196] + cmp w25, w0 + beq .L2471 + lsr x0, x25, 10 + bl P2V_block_in_plane + uxth w0, w0 + add x1, x21, :lo12:.LANCHOR2 + ldrh w2, [x1,40] + cmp w2, w0 + beq .L2474 + ldrh w2, [x1,88] + cmp w2, w0 + beq .L2474 + ldrh w1, [x1,136] + cmp w1, w0 + bne .L2471 +.L2474: + add x28, x21, :lo12:.LANCHOR2 + mov w1, 1 + mov w2, 0 + ldr x0, [x28,2048] + str w25, [x0,4] + ldr x3, [x0,16] + ldr x0, [x28,2048] + str x3, [x29,168] + bl FlashReadPages + ldr x0, [x28,2048] + ldr x3, [x29,168] + ldr w0, [x0] + ldr w1, [x3,4] + cmn w0, #1 + beq .L2471 + mov w0, w22 + bl ftl_cmp_data_ver + cbnz w0, .L2471 + mov w0, w27 + add x1, x29, 200 + mov w2, 1 + bl log2phys +.L2471: + ldr w0, [x29,196] + cmn w0, #1 + beq .L2454 + lsr x0, x0, 10 + bl P2V_block_in_plane + uxth w1, w0 + ubfiz x2, x1, 1, 16 + ldr x3, [x21,#:lo12:.LANCHOR2] + ldrh w2, [x3,x2] + cbz w2, .L2475 +.L2565: + bl decrement_vpc_count + b .L2454 +.L2475: + ldr x0, [x29,120] + bl printk + b .L2454 +.L2458: + ldr x2, [x29,136] + ldrh w0, [x19] + add x25, x2, :lo12:.LANCHOR4 + mov w2, w22 + strh w0, [x25,290] + ldr x0, [x29,128] + bl printk + ldr w0, [x25,296] + cmp w0, 31 + bhi .L2476 + add x1, x25, 304 + ldr w2, [x29,204] + str w2, [x1,w0,uxtw 2] + add w0, w0, 1 + str w0, [x25,296] +.L2476: + ldrh w0, [x19] + bl decrement_vpc_count + add x0, x21, :lo12:.LANCHOR2 + ldr w1, [x0,2348] + cmn w1, #1 + beq .L2566 + cmp w1, w22 + bls .L2454 +.L2566: + str w22, [x0,2348] +.L2454: + ldr x0, [x29,160] + add x0, x0, 1 + str x0, [x29,160] + b .L2453 +.L2574: + ldrb w0, [x19,8] + add w24, w24, 1 + cmp w0, 1 + uxth w24, w24 + bne .L2479 + add x0, x23, :lo12:.LANCHOR0 + ldrb w1, [x0,120] + cbz w1, .L2479 + cmp w20, w24 + bne .L2479 + ldrh w0, [x0,2020] + cmp w0, w24 + beq .L2456 +.L2479: + add x0, x23, :lo12:.LANCHOR0 + ldrh w1, [x0,2018] + cmp w24, w1 + bne .L2448 + ldrh w2, [x0,1948] + mov w3, 65535 + strh w24, [x19,2] + mov x0, 0 + strh wzr, [x19,4] +.L2481: + uxth w1, w0 + cmp w1, w2 + bcs .L2561 + add x0, x0, 1 + add x4, x19, x0, lsl 1 + ldrh w4, [x4,14] + cmp w4, w3 + beq .L2481 + strb w1, [x19,6] + b .L2561 +.L2456: + strb w26, [x19,6] + strh w20, [x19,2] +.L2568: + mov x0, x19 + mov w1, w20 + mov w2, w26 + bl ftl_sb_update_avl_pages +.L2561: + 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], 208 + ret + .size FtlRecoverySuperblock, .-FtlRecoverySuperblock + .align 2 + .global FtlVpcCheckAndModify + .type FtlVpcCheckAndModify, %function +FtlVpcCheckAndModify: + stp x29, x30, [sp, -80]! + adrp x1, .LANCHOR3 + adrp x0, .LC106 + add x1, x1, :lo12:.LANCHOR3 + add x29, sp, 0 + add x1, x1, 56 + add x0, x0, :lo12:.LC106 + stp x19, x20, [sp,16] + stp x21, x22, [sp,32] + stp x23, x24, [sp,48] + adrp x22, .LANCHOR0 + bl printk + add x1, x22, :lo12:.LANCHOR0 + adrp x20, .LANCHOR2 + add x0, x20, :lo12:.LANCHOR2 + mov w19, 0 + ldrh w2, [x1,1958] + mov w1, 0 + ldr x0, [x0,2168] + lsl w2, w2, 1 + bl ftl_memset +.L2576: + add x0, x22, :lo12:.LANCHOR0 + ldr w0, [x0,2096] + cmp w19, w0 + bcs .L2592 + mov w0, w19 + add x1, x29, 76 + mov w2, 0 + bl log2phys + ldr w0, [x29,76] + cmn w0, #1 + beq .L2577 + lsr x0, x0, 10 + bl P2V_block_in_plane + ubfiz x0, x0, 1, 16 + add x1, x20, :lo12:.LANCHOR2 + ldr x2, [x1,2168] + ldrh w1, [x2,x0] + add w1, w1, 1 + strh w1, [x2,x0] +.L2577: + add w19, w19, 1 + b .L2576 +.L2592: + adrp x23, .LC142 + mov w19, 0 + add x20, x20, :lo12:.LANCHOR2 + mov w24, 65535 + add x23, x23, :lo12:.LC142 +.L2579: + add x0, x22, :lo12:.LANCHOR0 + ldrh w0, [x0,1956] + cmp w0, w19 + bls .L2593 + ubfiz x21, x19, 1, 16 + ldr x0, [x20] + ldrh w2, [x0,x21] + ldr x0, [x20,2168] + ldrh w3, [x0,x21] + cmp w2, w3 + beq .L2582 + cmp w2, w24 + beq .L2582 + mov x0, x23 + mov w1, w19 + bl printk + ldrh w0, [x20,40] + cmp w0, w19 + beq .L2582 + ldrh w0, [x20,136] + cmp w0, w19 + beq .L2582 + ldrh w0, [x20,88] + cmp w0, w19 + beq .L2582 + ldr x0, [x20] + ldrh w1, [x0,x21] + cbnz w1, .L2584 + ldr x1, [x20,2168] + ldrh w1, [x1,x21] + strh w1, [x0,x21] + b .L2582 +.L2584: + ldr x1, [x20,2168] + ldrh w1, [x1,x21] + strh w1, [x0,x21] + mov w0, w19 + bl update_vpc_list +.L2582: + add w19, w19, 1 + uxth w19, w19 + b .L2579 +.L2593: + bl l2p_flush + bl FtlVpcTblFlush + ldp x19, x20, [sp,16] + ldp x21, x22, [sp,32] + ldp x23, x24, [sp,48] + ldp x29, x30, [sp], 80 + ret + .size FtlVpcCheckAndModify, .-FtlVpcCheckAndModify + .align 2 + .global FtlReadRefresh + .type FtlReadRefresh, %function +FtlReadRefresh: + stp x29, x30, [sp, -112]! + adrp x1, .LANCHOR2 + add x0, x1, :lo12:.LANCHOR2 + add x29, sp, 0 + add x2, x0, 336 + stp x19, x20, [sp,16] + stp x21, x22, [sp,32] + adrp x19, .LANCHOR0 + ldr w3, [x2,80] + cbz w3, .L2595 + add x1, x19, :lo12:.LANCHOR0 + ldr w3, [x2,84] + ldr w1, [x1,2096] + cmp w3, w1 + bcs .L2596 + mov w21, 2048 + mov x20, x0 +.L2601: + add x1, x19, :lo12:.LANCHOR0 + ldr w0, [x20,420] + ldr w1, [x1,2096] + cmp w0, w1 + bcs .L2598 + add x1, x29, 52 + mov w2, 0 + bl log2phys + ldr w0, [x20,420] + ldr w1, [x29,52] + add w0, w0, 1 + str w0, [x20,420] + cmn w1, #1 + beq .L2599 + str w1, [x29,60] + mov w2, 0 + str w0, [x29,80] + mov w1, 1 + add x0, x29, 56 + str xzr, [x29,64] + str xzr, [x29,72] + str wzr, [x29,56] + bl FlashReadPages + ldr w0, [x29,56] + cmp w0, 256 + bne .L2598 + ldr w0, [x29,52] + lsr x0, x0, 10 + bl P2V_block_in_plane + bl FtlGcRefreshBlock + b .L2598 +.L2599: + subs w21, w21, #1 + bne .L2601 +.L2598: + mov w0, -1 + b .L2603 +.L2596: + ldr w0, [x0,200] + str wzr, [x2,80] + str wzr, [x2,84] + str w0, [x2,76] + b .L2609 +.L2595: + add x19, x19, :lo12:.LANCHOR0 + ldr w0, [x0,252] + mov w2, 4194304 + ldrb w4, [x19,120] + ldr w3, [x19,1940] + cbnz w4, .L2604 + add w0, w3, w0, lsr 10 + mov w3, 33554432 + asr w2, w3, w0 +.L2604: + add x4, x1, :lo12:.LANCHOR2 + ldr w3, [x4,200] + ldr w0, [x4,412] + add w5, w3, 1048576 + cmp w0, w5 + bhi .L2605 + add w0, w2, w0 + cmp w0, w3 + bcc .L2605 + ldrb w2, [x4,-36] + mov w0, 0 + cbnz w2, .L2603 +.L2605: + add x0, x1, :lo12:.LANCHOR2 + mov w1, 1 + str wzr, [x0,420] + str w1, [x0,416] + str w3, [x0,412] +.L2609: + mov w0, 0 +.L2603: + ldp x19, x20, [sp,16] + ldp x21, x22, [sp,32] + ldp x29, x30, [sp], 112 + ret + .size FtlReadRefresh, .-FtlReadRefresh + .align 2 + .global FtlGcFreeTempBlock + .type FtlGcFreeTempBlock, %function +FtlGcFreeTempBlock: + stp x29, x30, [sp, -96]! + add x29, sp, 0 + stp x19, x20, [sp,16] + adrp x19, .LANCHOR2 + add x2, x19, :lo12:.LANCHOR2 + stp x21, x22, [sp,32] + stp x23, x24, [sp,48] + stp x25, x26, [sp,64] + adrp x21, .LANCHOR0 + add x1, x21, :lo12:.LANCHOR0 + ldr w3, [x2,-96] + ldrh w1, [x1,2018] + cbnz w3, .L2644 + ldrh w20, [x2,136] + mov w4, 65535 + cmp w20, w4 + bne .L2613 +.L2622: + add x20, x19, :lo12:.LANCHOR2 + mov w0, 65535 + add x22, x20, 136 + ldrh w1, [x20,136] + str wzr, [x20,2344] + cmp w1, w0 + beq .L2644 + bl FtlCacheWriteBack + mov w26, 12 + adrp x0, .LANCHOR2 + add x3, x21, :lo12:.LANCHOR0 + ldrh w2, [x20,136] + ldr x1, [x0,#:lo12:.LANCHOR2] + ldrh w3, [x3,2018] + ldrb w0, [x22,7] + mov w22, 0 + mul w0, w0, w3 + strh w0, [x1,x2,lsl 1] + ldr w0, [x20,220] + ldrh w1, [x20,920] + add w0, w1, w0 + str w0, [x20,220] + b .L2623 +.L2613: + cbz w0, .L2616 + adrp x0, .LANCHOR1 + add x0, x0, :lo12:.LANCHOR1 + ldrh w5, [x0,3168] + cmp w5, w4 + beq .L2617 +.L2618: + mov w1, 2 + b .L2616 +.L2617: + strh w3, [x0,3168] + ldrh w0, [x2,32] + cmp w0, 17 + bhi .L2618 +.L2616: + add x22, x19, :lo12:.LANCHOR2 + add x0, x22, 136 + bl FtlGcScanTempBlk + str w0, [x29,92] + cmn w0, #1 + beq .L2619 + ubfiz x20, x20, 1, 16 + ldr x1, [x22,-80] + ldrh w0, [x1,x20] + cmp w0, 4 + bls .L2620 + sub w0, w0, #5 + strh w0, [x1,x20] + mov w0, 1 + bl FtlEctTblFlush +.L2620: + add x0, x19, :lo12:.LANCHOR2 + ldr w1, [x0,2344] + cbnz w1, .L2621 + ldr w1, [x0,432] + add w1, w1, 1 + str w1, [x0,432] + ldr w0, [x29,92] + lsr w0, w0, 10 + bl FtlBbmMapBadBlock + bl FtlBbmTblFlush +.L2621: + add x19, x19, :lo12:.LANCHOR2 + mov w0, 1 + str wzr, [x19,2344] + b .L2612 +.L2619: + adrp x0, .LANCHOR1+3168 + mov w1, 65535 + ldrh w2, [x0,#:lo12:.LANCHOR1+3168] + mov w0, 1 + cmp w2, w1 + bne .L2612 + b .L2622 +.L2626: + ldr x25, [x20,928] + add x1, x29, 92 + umull x24, w22, w26 + mov w2, 0 + add x23, x25, x24 + ldr w0, [x23,8] + bl log2phys + ldr w0, [x29,92] + ldr w1, [x25,x24] + cmp w0, w1 + bne .L2624 + lsr x0, x0, 10 + bl P2V_block_in_plane + mov w24, w0 + ldr w0, [x23,8] + add x1, x23, 4 + mov w2, 1 + bl log2phys + mov w0, w24 +.L2643: + bl decrement_vpc_count +.L2625: + add w22, w22, 1 + uxth w22, w22 +.L2623: + ldrh w0, [x20,920] + cmp w0, w22 + bhi .L2626 + b .L2645 +.L2624: + ldr w1, [x23,4] + cmp w0, w1 + beq .L2625 + ldrh w0, [x20,136] + b .L2643 +.L2645: + mov w0, -1 + bl decrement_vpc_count + add x0, x21, :lo12:.LANCHOR0 + ldrb w0, [x0,120] + cbz w0, .L2627 + adrp x0, .LC143 + ldrh w1, [x20,136] + add x0, x0, :lo12:.LC143 + bl printk +.L2627: + add x0, x19, :lo12:.LANCHOR2 + ldr x2, [x19,#:lo12:.LANCHOR2] + ldrh w0, [x0,136] + ubfiz x1, x0, 1, 16 + ldrh w1, [x2,x1] + cbz w1, .L2628 + bl INSERT_DATA_LIST + b .L2629 +.L2628: + bl INSERT_FREE_LIST +.L2629: + add x20, x19, :lo12:.LANCHOR2 + mov w22, -1 + strh wzr, [x20,920] + strh w22, [x20,136] + strh wzr, [x20,908] + bl l2p_flush + bl FtlVpcTblFlush + strh w22, [x20,280] + add x0, x21, :lo12:.LANCHOR0 + ldr w0, [x0,1940] + cbz w0, .L2630 + ldr w0, [x20,256] + cmp w0, 39 + bhi .L2630 + ldrh w0, [x20,260] + ldrh w1, [x20,32] + cmp w1, w0 + bcs .L2644 + lsl w0, w0, 1 + strh w0, [x20,848] +.L2644: + mov w0, 0 + b .L2612 +.L2630: + add x19, x19, :lo12:.LANCHOR2 + ldrh w1, [x19,260] + ldrh w0, [x19,32] + add w2, w1, w1, lsl 1 + cmp w0, w2, lsr 2 + ble .L2644 + add x21, x21, :lo12:.LANCHOR0 + ldrb w0, [x21,120] + cbz w0, .L2631 + sub w1, w1, #2 + strh w1, [x19,848] + b .L2644 +.L2631: + mov w1, 20 + strh w1, [x19,848] +.L2612: + 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 FtlGcFreeTempBlock, .-FtlGcFreeTempBlock + .align 2 + .global FtlGcPageRecovery + .type FtlGcPageRecovery, %function +FtlGcPageRecovery: + stp x29, x30, [sp, -48]! + add x29, sp, 0 + stp x19, x20, [sp,16] + adrp x20, .LANCHOR0 + adrp x19, .LANCHOR2 + add x20, x20, :lo12:.LANCHOR0 + add x19, x19, :lo12:.LANCHOR2 + str x21, [sp,32] + add x21, x19, 136 + mov x0, x21 + ldrh w1, [x20,2018] + bl FtlGcScanTempBlk + ldrh w1, [x19,138] + ldrh w0, [x20,2018] + cmp w1, w0 + bcc .L2646 + add x0, x19, 2256 + bl FtlMapBlkWriteDumpData + mov w0, 0 + bl FtlGcFreeTempBlock + str wzr, [x19,2344] +.L2646: + ldp x19, x20, [sp,16] + ldr x21, [sp,32] + ldp x29, x30, [sp], 48 + ret + .size FtlGcPageRecovery, .-FtlGcPageRecovery + .align 2 + .global FtlPowerLostRecovery + .type FtlPowerLostRecovery, %function +FtlPowerLostRecovery: + stp x29, x30, [sp, -32]! + adrp x0, .LANCHOR4+296 + add x29, sp, 0 + stp x19, x20, [sp,16] + adrp x19, .LANCHOR2 + str wzr, [x0,#:lo12:.LANCHOR4+296] + add x19, x19, :lo12:.LANCHOR2 + add x20, x19, 40 + add x19, x19, 88 + mov x0, x20 + bl FtlRecoverySuperblock + mov x0, x20 + bl FtlSlcSuperblockCheck + mov x0, x19 + bl FtlRecoverySuperblock + mov x0, x19 + bl FtlSlcSuperblockCheck + bl FtlGcPageRecovery + mov w0, -1 + bl decrement_vpc_count + mov w0, 0 + ldp x19, x20, [sp,16] + ldp x29, x30, [sp], 32 + ret + .size FtlPowerLostRecovery, .-FtlPowerLostRecovery + .align 2 + .global FtlSysBlkInit + .type FtlSysBlkInit, %function +FtlSysBlkInit: + stp x29, x30, [sp, -64]! + mov w1, -1 + add x29, sp, 0 + stp x19, x20, [sp,16] + stp x21, x22, [sp,32] + adrp x20, .LANCHOR4 + adrp x21, .LANCHOR0 + stp x23, x24, [sp,48] + add x0, x20, :lo12:.LANCHOR4 + add x24, x21, :lo12:.LANCHOR0 + adrp x19, .LANCHOR2 + add x23, x19, :lo12:.LANCHOR2 + strh w1, [x0,290] + strh wzr, [x0,292] + ldrh w0, [x24,1952] + bl FtlFreeSysBlkQueueInit + bl FtlScanSysBlk + ldrh w1, [x23,264] + mov w0, 65535 + cmp w1, w0 + bne .L2650 +.L2652: + mov w22, -1 + b .L2651 +.L2650: + bl FtlLoadSysInfo + mov w22, w0 + cbnz w0, .L2652 + bl FtlLoadMapInfo + bl FtlLoadVonderInfo + bl Ftl_load_ext_data + bl FtlLoadEctTbl + bl FtlFreeSysBLkSort + bl SupperBlkListInit + bl FtlPowerLostRecovery + mov w0, 1 + bl FtlUpdateVaildLpn + ldrh w2, [x24,2058] + mov x1, 0 + ldr x0, [x23,184] +.L2653: + cmp w1, w2 + mov w3, w1 + bge .L2657 + add x4, x0, x1, lsl 4 + add x1, x1, 1 + ldr w4, [x4,4] + tbz w4, #31, .L2653 +.L2657: + add x1, x19, :lo12:.LANCHOR2 + cmp w3, w2 + ldrh w0, [x1,-36] + add w0, w0, 1 + strh w0, [x1,-36] + blt .L2654 + add x20, x20, :lo12:.LANCHOR4 + ldrh w0, [x20,292] + cbz w0, .L2658 +.L2654: + add x1, x19, :lo12:.LANCHOR2 + ldr x4, [x19,#:lo12:.LANCHOR2] + ldrh w2, [x1,40] + ldrh w5, [x1,44] + lsl x2, x2, 1 + ldrh w3, [x4,x2] + sub w3, w3, w5 + strh w3, [x4,x2] + add x3, x21, :lo12:.LANCHOR0 + strb wzr, [x1,46] + ldrh w4, [x1,88] + ldr x5, [x19,#:lo12:.LANCHOR2] + ldrh w2, [x3,2018] + lsl x4, x4, 1 + strh w2, [x1,42] + strh wzr, [x1,44] + ldrh w6, [x1,92] + ldrh w0, [x5,x4] + sub w0, w0, w6 + strh w0, [x5,x4] + strb wzr, [x1,94] + ldrh w0, [x3,2018] + strh w0, [x1,90] + ldrh w0, [x1,-34] + strh wzr, [x1,92] + add w0, w0, 1 + strh w0, [x1,-34] + bl l2p_flush + bl FtlVpcTblFlush + bl FtlVpcTblFlush +.L2658: + add x0, x19, :lo12:.LANCHOR2 + ldrh w0, [x0,-36] + and w0, w0, 31 + cbnz w0, .L2659 + bl FtlVpcCheckAndModify +.L2659: + add x19, x19, :lo12:.LANCHOR2 + mov w1, 65535 + add x21, x19, 40 + ldrh w0, [x19,40] + cmp w0, w1 + beq .L2651 + ldrh w1, [x19,44] + cbnz w1, .L2651 + ldrh w1, [x19,92] + add x20, x19, 88 + cbnz w1, .L2651 + bl FtlGcRefreshOpenBlock + ldrh w0, [x19,88] + bl FtlGcRefreshOpenBlock + bl FtlVpcTblFlush + mov x0, x21 + bl allocate_new_data_superblock + mov x0, x20 + bl allocate_new_data_superblock +.L2651: + mov w0, w22 + ldp x19, x20, [sp,16] + ldp x21, x22, [sp,32] + ldp x23, x24, [sp,48] + ldp x29, x30, [sp], 64 + ret + .size FtlSysBlkInit, .-FtlSysBlkInit + .align 2 .global FtlLowFormat .type FtlLowFormat, %function FtlLowFormat: @@ -19516,27 +17653,37 @@ FtlLowFormat: add x29, sp, 0 stp x21, x22, [sp,32] adrp x21, .LANCHOR2 - add x0, x21, :lo12:.LANCHOR2 stp x19, x20, [sp,16] + add x19, x21, :lo12:.LANCHOR2 stp x23, x24, [sp,48] - ldr w1, [x0,-96] - cbnz w1, .L3014 + ldr w22, [x19,-96] + cbnz w22, .L2667 adrp x20, .LANCHOR0 - str w1, [x0,196] - str w1, [x0,200] - add x0, x20, :lo12:.LANCHOR0 - ldrh w0, [x0,1948] + ldr x0, [x19,2224] + add x23, x20, :lo12:.LANCHOR0 + mov w1, w22 + ldrh w2, [x23,2056] + lsl w2, w2, 2 + bl ftl_memset + ldrh w2, [x23,2056] + mov w1, w22 + ldr x0, [x19,2216] + lsl w2, w2, 2 + bl ftl_memset + str w22, [x19,232] + ldrh w0, [x23,1952] + str w22, [x19,236] bl FtlFreeSysBlkQueueInit bl FtlLoadBbt - cbz w0, .L3015 + cbz w0, .L2668 bl FtlMakeBbt -.L3015: +.L2668: mov w0, 0 -.L3016: +.L2669: add x1, x20, :lo12:.LANCHOR0 ldrh w2, [x1,2024] cmp w0, w2, lsl 7 - bge .L3043 + bge .L2696 add x3, x21, :lo12:.LANCHOR2 ubfiz x2, x0, 2, 16 mvn w1, w0 @@ -19549,15 +17696,15 @@ FtlLowFormat: uxth w0, w0 ldr x3, [x3,2112] str w1, [x3,x2] - b .L3016 -.L3043: - ldrh w22, [x1,1952] + b .L2669 +.L2696: + ldrh w22, [x1,1956] mov w19, 0 -.L3018: +.L2671: add x23, x20, :lo12:.LANCHOR0 - ldrh w0, [x23,1954] + ldrh w0, [x23,1958] cmp w0, w22 - bls .L3044 + bls .L2697 mov w0, w22 mov w1, 1 add w22, w22, 1 @@ -19565,40 +17712,40 @@ FtlLowFormat: add w0, w19, w0 uxth w22, w22 uxth w19, w0 - b .L3018 -.L3044: - ldrh w0, [x23,1944] + b .L2671 +.L2697: + ldrh w0, [x23,1948] sub w1, w19, #3 cmp w1, w0, lsl 1 - bge .L3020 -.L3024: + bge .L2673 +.L2677: mov w19, 0 mov w22, w19 - b .L3021 -.L3020: + b .L2674 +.L2673: udiv w19, w19, w0 ldr w0, [x23,2052] add w0, w19, w0 bl FtlSysBlkNumInit - ldrh w0, [x23,1948] + ldrh w0, [x23,1952] bl FtlFreeSysBlkQueueInit - ldrh w19, [x23,1952] -.L3022: + ldrh w19, [x23,1956] +.L2675: add x0, x20, :lo12:.LANCHOR0 - ldrh w0, [x0,1954] + ldrh w0, [x0,1958] cmp w0, w19 - bls .L3024 + bls .L2677 mov w0, w19 mov w1, 1 add w19, w19, 1 bl FtlLowFormatEraseBlock uxth w19, w19 - b .L3022 -.L3021: + b .L2675 +.L2674: add x0, x20, :lo12:.LANCHOR0 - ldrh w1, [x0,1952] + ldrh w1, [x0,1956] cmp w1, w22 - bls .L3045 + bls .L2698 mov w0, w22 mov w1, 0 add w22, w22, 1 @@ -19606,70 +17753,71 @@ FtlLowFormat: add w0, w19, w0 uxth w22, w22 uxth w19, w0 - b .L3021 -.L3045: - ldrh w1, [x0,1954] - add x6, x21, :lo12:.LANCHOR2 - ldrh w2, [x0,1944] - str w1, [x0,2100] - ldr w1, [x0,1956] + b .L2674 +.L2698: + add x4, x21, :lo12:.LANCHOR2 + ldrh w1, [x0,1958] + ldrh w2, [x0,1948] + str w1, [x4,2036] + ldr w1, [x0,1960] udiv w3, w1, w2 str w3, [x0,2096] - ubfx x5, x3, 5, 16 - add w4, w5, 36 - strh w4, [x6,272] - mov w4, 24 - mul w4, w2, w4 - cmp w19, w4 - ble .L3026 + ubfx x6, x3, 5, 16 + add w5, w6, 36 + strh w5, [x4,260] + mov w5, 24 + mul w5, w2, w5 + cmp w19, w5 + ble .L2679 sub w1, w1, w19 udiv w1, w1, w2 str w1, [x0,2096] lsr w1, w1, 5 add w1, w1, 24 - strh w1, [x6,272] -.L3026: - add x4, x21, :lo12:.LANCHOR2 - ldr w0, [x4,160] - cmp w0, 1 - bne .L3027 - ldrh w1, [x4,272] - udiv w0, w19, w2 - add w0, w1, w0 - add w0, w1, w0, asr 2 - strh w0, [x4,272] -.L3027: + strh w1, [x4,260] +.L2679: add x0, x20, :lo12:.LANCHOR0 - ldrb w0, [x0,120] - cbz w0, .L3028 + ldr w0, [x0,1940] + cmp w0, 1 + bne .L2680 add x1, x21, :lo12:.LANCHOR2 udiv w0, w19, w2 - ldrh w4, [x1,272] + ldrh w4, [x1,260] add w0, w4, w0 add w0, w4, w0, asr 2 - strh w0, [x1,272] -.L3028: - add x6, x20, :lo12:.LANCHOR0 - ldrh w1, [x6,2010] - cbz w1, .L3030 + strh w0, [x1,260] +.L2680: + add x0, x20, :lo12:.LANCHOR0 + ldrb w0, [x0,120] + cbz w0, .L2681 + add x1, x21, :lo12:.LANCHOR2 + udiv w0, w19, w2 + ldrh w4, [x1,260] + add w0, w4, w0 + add w0, w4, w0, asr 2 + strh w0, [x1,260] +.L2681: + add x5, x20, :lo12:.LANCHOR0 + ldrh w1, [x5,2010] + cbz w1, .L2683 add x0, x21, :lo12:.LANCHOR2 - ldrh w4, [x0,272] + ldrh w4, [x0,260] add w4, w4, w1, lsr 1 - strh w4, [x0,272] + strh w4, [x0,260] mul w4, w1, w2 cmp w4, w19 - ble .L3030 + ble .L2683 add w1, w1, 32 - str w3, [x6,2096] - add w1, w5, w1 - strh w1, [x0,272] -.L3030: + str w3, [x5,2096] + add w1, w6, w1 + strh w1, [x0,260] +.L2683: add x19, x21, :lo12:.LANCHOR2 add x22, x20, :lo12:.LANCHOR0 adrp x24, .LANCHOR4 mov w23, -1 ldr w1, [x22,2096] - ldrh w0, [x19,272] + ldrh w0, [x19,260] sub w0, w1, w0 add x1, x24, :lo12:.LANCHOR4 mul w0, w0, w2 @@ -19681,98 +17829,99 @@ FtlLowFormat: mul w0, w0, w1 str w0, [x22,2060] bl FtlBbmTblFlush - ldrh w2, [x22,1954] + ldrh w2, [x22,1958] mov w1, 0 - ldr x0, [x19,-40] + ldr x0, [x21,#:lo12:.LANCHOR2] + add x21, x19, 40 lsl w2, w2, 1 bl ftl_memset - strh wzr, [x21,#:lo12:.LANCHOR2] + str wzr, [x19,196] + ldrh w2, [x22,1956] mov w0, 1 - ldrh w2, [x22,1952] - strb w0, [x19,8] + strb w0, [x21,8] mov w1, 255 ldr x0, [x20,#:lo12:.LANCHOR0] lsr w2, w2, 3 - mov x21, x24 - str wzr, [x19,156] - strh w23, [x19,296] - strh wzr, [x19,298] - strb wzr, [x19,302] - strb wzr, [x19,304] - strh wzr, [x19,2] - strb wzr, [x19,6] + mov x22, x24 + strh w23, [x19,280] + strh wzr, [x19,282] + strb wzr, [x19,286] + strb wzr, [x19,288] + strh wzr, [x21,2] + strb wzr, [x21,6] + strh wzr, [x19,40] bl ftl_memset -.L3032: - mov x0, x19 +.L2685: + mov x0, x21 bl make_superblock - ldrb w0, [x19,7] - cbnz w0, .L3033 - ldrh w1, [x19] - ldr x0, [x19,-40] + ldrb w0, [x21,7] + cbnz w0, .L2686 + ldrh w1, [x21] + ldr x0, [x19] strh w23, [x0,x1,lsl 1] - ldrh w0, [x19] + ldrh w0, [x21] add w0, w0, 1 - strh w0, [x19] - b .L3032 -.L3033: - ldr w0, [x19,196] - add x20, x19, 48 - str w0, [x19,12] - mov w22, -1 + strh w0, [x21] + b .L2685 +.L2686: + ldr w0, [x19,232] + mov x20, x19 + str w0, [x21,12] add w0, w0, 1 - ldrh w1, [x19] - str w0, [x19,196] - ldr x0, [x19,-40] - ldrh w2, [x19,4] + ldrh w1, [x21] + str w0, [x19,232] + ldr x0, [x20],88 + ldrh w2, [x21,4] strh w2, [x0,x1,lsl 1] strh wzr, [x20,2] - ldrh w0, [x19] + ldrh w0, [x21] + mov w21, -1 strb wzr, [x20,6] add w0, w0, 1 - strh w0, [x19,48] + strh w0, [x19,88] mov w0, 1 strb w0, [x20,8] -.L3034: +.L2687: mov x0, x20 bl make_superblock ldrb w0, [x20,7] - cbnz w0, .L3035 + cbnz w0, .L2688 ldrh w1, [x20] - ldr x0, [x19,-40] - strh w22, [x0,x1,lsl 1] + ldr x0, [x19] + strh w21, [x0,x1,lsl 1] ldrh w0, [x20] add w0, w0, 1 strh w0, [x20] - b .L3034 -.L3035: - ldr w0, [x19,196] - add x21, x21, :lo12:.LANCHOR4 + b .L2687 +.L2688: + ldr w0, [x19,232] + add x22, x22, :lo12:.LANCHOR4 str w0, [x20,12] add w0, w0, 1 ldrh w1, [x20] - str w0, [x19,196] - ldr x0, [x19,-40] + str w0, [x19,232] + ldr x0, [x19] ldrh w2, [x20,4] mov w20, -1 strh w2, [x0,x1,lsl 1] - strh w20, [x19,96] + strh w20, [x19,136] bl FtlFreeSysBlkQueueOut - strh w0, [x19,280] - ldr w0, [x21,216] - strh w0, [x19,286] - ldr w0, [x19,196] - str w0, [x19,288] + strh w0, [x19,264] + ldr w0, [x22,216] + strh w0, [x19,270] + ldr w0, [x19,232] + str w0, [x19,272] add w0, w0, 1 - strh wzr, [x19,282] - strh w20, [x19,284] - str w0, [x19,196] + strh wzr, [x19,266] + strh w20, [x19,268] + str w0, [x19,232] bl FtlVpcTblFlush bl FtlSysBlkInit - cbnz w0, .L3014 + cbnz w0, .L2667 adrp x0, .LANCHOR1+504 mov w1, 1 str w1, [x0,#:lo12:.LANCHOR1+504] -.L3014: +.L2667: mov w0, 0 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -19790,24 +17939,24 @@ FtlReInitForSDUpdata: adrp x19, .LANCHOR0 add x0, x19, :lo12:.LANCHOR0 ldrb w0, [x0,120] - cbz w0, .L3047 -.L3049: + cbz w0, .L2700 +.L2702: mov w0, 0 - b .L3048 -.L3047: + b .L2701 +.L2700: adrp x20, .LANCHOR4 add x0, x20, :lo12:.LANCHOR4 ldr x0, [x0,48] bl FlashInit - cbnz w0, .L3049 + cbnz w0, .L2702 bl FlashLoadFactorBbt - cbz w0, .L3050 + cbz w0, .L2703 bl FlashMakeFactorBbt -.L3050: +.L2703: add x20, x20, :lo12:.LANCHOR4 ldr x0, [x20,104] bl FlashReadIdbDataRaw - cbz w0, .L3051 + cbz w0, .L2704 mov w1, 0 mov w2, 16 add x0, x29, 32 @@ -19816,212 +17965,1081 @@ FtlReInitForSDUpdata: ldr w2, [x29,32] mov w1, w0 mov w4, 1 -.L3053: +.L2706: lsl w3, w4, w1 add w1, w1, 1 tst w3, w2 cset w3, ne cmp w1, 16 add w0, w0, w3 - bne .L3053 + bne .L2706 cmp w0, 6 - bhi .L3054 + bhi .L2707 add x0, x19, :lo12:.LANCHOR0 - b .L3077 -.L3054: + b .L2729 +.L2707: mov w1, 0 mov w4, 1 -.L3057: +.L2710: lsl w3, w4, w1 add w1, w1, 1 tst w3, w2 cset w3, ne cmp w1, 24 add w0, w0, w3 - bne .L3057 + bne .L2710 cmp w0, 17 add x0, x19, :lo12:.LANCHOR0 - bls .L3077 + bls .L2729 mov w1, 36 -.L3077: +.L2729: strb w1, [x0,9] add x0, x19, :lo12:.LANCHOR0 ldrb w1, [x0,9] strh w1, [x0,194] -.L3051: - adrp x0, .LC73 - adrp x1, .LC74 - add x1, x1, :lo12:.LC74 - add x0, x0, :lo12:.LC73 +.L2704: + adrp x0, .LC75 + adrp x1, .LC76 + add x1, x1, :lo12:.LC76 + add x0, x0, :lo12:.LC75 add x19, x19, :lo12:.LANCHOR0 bl printk add x0, x19, 168 bl FtlConstantsInit bl FtlVariablesInit - ldrh w0, [x19,1948] + ldrh w0, [x19,1952] mov w19, 1 bl FtlFreeSysBlkQueueInit -.L3059: +.L2712: bl FtlLoadBbt - cbz w0, .L3060 -.L3079: + cbz w0, .L2713 +.L2731: bl FtlLowFormat cmp w19, 3 - bhi .L3080 + bhi .L2732 add w19, w19, 1 - b .L3059 -.L3080: + b .L2712 +.L2732: mov w0, -1 - b .L3048 -.L3060: + b .L2701 +.L2713: bl FtlSysBlkInit - cbnz w0, .L3079 + cbnz w0, .L2731 adrp x1, .LANCHOR1+504 mov w2, 1 str w2, [x1,#:lo12:.LANCHOR1+504] -.L3048: +.L2701: ldp x19, x20, [sp,16] ldp x29, x30, [sp], 48 ret .size FtlReInitForSDUpdata, .-FtlReInitForSDUpdata .align 2 - .global flash_boot_enter_slc_mode - .type flash_boot_enter_slc_mode, %function -flash_boot_enter_slc_mode: - adrp x1, .LANCHOR0+1868 - uxtb w0, w0 - stp x29, x30, [sp, -16]! + .global Ftl_gc_temp_data_write_back + .type Ftl_gc_temp_data_write_back, %function +Ftl_gc_temp_data_write_back: + stp x29, x30, [sp, -48]! add x29, sp, 0 - ldr w2, [x1,#:lo12:.LANCHOR0+1868] - mov w1, 12336 - movk w1, 0x5638, lsl 16 - cmp w2, w1 - bne .L3081 - bl flash_enter_slc_mode -.L3081: - ldp x29, x30, [sp], 16 + stp x21, x22, [sp,32] + adrp x21, .LANCHOR2 + add x0, x21, :lo12:.LANCHOR2 + stp x19, x20, [sp,16] + ldr w1, [x0,-96] + cbz w1, .L2734 +.L2737: + mov w0, 0 + b .L2735 +.L2734: + adrp x1, .LANCHOR0+120 + ldrb w1, [x1,#:lo12:.LANCHOR0+120] + cbz w1, .L2736 + ldr w1, [x0,864] + tbz x1, 0, .L2736 + ldrh w0, [x0,140] + cbnz w0, .L2737 +.L2736: + add x1, x21, :lo12:.LANCHOR2 + mov w2, 0 + mov w3, w2 + mov w20, 0 + mov w22, 56 + ldr x0, [x1,2056] + ldr w1, [x1,864] + bl FlashProgPages +.L2738: + add x19, x21, :lo12:.LANCHOR2 + ldr w1, [x19,864] + cmp w20, w1 + bcs .L2748 + umull x0, w20, w22 + ldr x2, [x19,2056] + add x1, x2, x0 + ldr w2, [x2,x0] + cmn w2, #1 + bne .L2739 + ldrh w3, [x19,136] + ldr x1, [x19] + strh wzr, [x1,x3,lsl 1] + strh w2, [x19,136] + ldr w1, [x19,432] + add w1, w1, 1 + str w1, [x19,432] + ldr x1, [x19,2056] + add x0, x1, x0 + ldr w0, [x0,4] + lsr w0, w0, 10 + bl FtlBbmMapBadBlock + bl FtlBbmTblFlush + bl FtlGcPageVarInit + b .L2747 +.L2739: + ldr x2, [x1,16] + add w20, w20, 1 + ldr w1, [x1,4] + uxth w20, w20 + ldr w0, [x2,12] + ldr w2, [x2,8] + bl FtlGcUpdatePage + b .L2738 +.L2748: + ldr x0, [x19,2056] + bl FtlGcBufFree + str wzr, [x19,864] + ldrh w0, [x19,140] + cbnz w0, .L2737 + mov w0, 1 + bl FtlGcFreeTempBlock +.L2747: + mov w0, 1 +.L2735: + ldp x19, x20, [sp,16] + ldp x21, x22, [sp,32] + ldp x29, x30, [sp], 48 ret - .size flash_boot_enter_slc_mode, .-flash_boot_enter_slc_mode + .size Ftl_gc_temp_data_write_back, .-Ftl_gc_temp_data_write_back .align 2 - .global flash_boot_exit_slc_mode - .type flash_boot_exit_slc_mode, %function -flash_boot_exit_slc_mode: - adrp x1, .LANCHOR0+1868 - uxtb w0, w0 - stp x29, x30, [sp, -16]! - add x29, sp, 0 - ldr w2, [x1,#:lo12:.LANCHOR0+1868] - mov w1, 12336 - movk w1, 0x5638, lsl 16 - cmp w2, w1 - bne .L3083 - bl flash_exit_slc_mode -.L3083: - ldp x29, x30, [sp], 16 - ret - .size flash_boot_exit_slc_mode, .-flash_boot_exit_slc_mode - .align 2 - .global IdBlockReadData - .type IdBlockReadData, %function -IdBlockReadData: - stp x29, x30, [sp, -144]! + .global Ftl_get_new_temp_ppa + .type Ftl_get_new_temp_ppa, %function +Ftl_get_new_temp_ppa: + stp x29, x30, [sp, -32]! add x29, sp, 0 stp x19, x20, [sp,16] - adrp x19, .LANCHOR0 - mov x20, x2 - add x19, x19, :lo12:.LANCHOR0 + adrp x19, .LANCHOR2 + add x0, x19, :lo12:.LANCHOR2 + add x1, x0, 136 + ldrh w2, [x0,136] + mov w0, 65535 + cmp w2, w0 + beq .L2750 + ldrh w0, [x1,4] + cbnz w0, .L2751 +.L2750: + bl FtlCacheWriteBack + add x20, x19, :lo12:.LANCHOR2 + mov w0, 0 + bl FtlGcFreeTempBlock + strb wzr, [x20,144] + add x0, x20, 136 + bl allocate_data_superblock + strh wzr, [x20,908] + strh wzr, [x20,920] + bl l2p_flush + mov w0, 0 + bl FtlEctTblFlush + bl FtlVpcTblFlush +.L2751: + add x0, x19, :lo12:.LANCHOR2 + add x0, x0, 136 + bl get_new_active_ppa + ldp x19, x20, [sp,16] + ldp x29, x30, [sp], 32 + ret + .size Ftl_get_new_temp_ppa, .-Ftl_get_new_temp_ppa + .align 2 + .global ftl_do_gc + .type ftl_do_gc, %function +ftl_do_gc: + stp x29, x30, [sp, -144]! + mov w2, 0 + add x29, sp, 0 + stp x19, x20, [sp,16] + adrp x19, .LANCHOR2 + add x3, x19, :lo12:.LANCHOR2 stp x21, x22, [sp,32] - mov w22, w0 - ldr x0, [x19,744] stp x23, x24, [sp,48] stp x25, x26, [sp,64] stp x27, x28, [sp,80] - ldr w3, [x19,12] - mov w26, w1 - ldrb w21, [x0,9] - adrp x0, .LC141 - add x0, x0, :lo12:.LC141 - mov w1, w22 - mov w2, w26 - mov w23, 0 - mul w21, w3, w21 - bl printk - ldr x0, [x19,744] - mov w6, 4 - uxth w21, w21 - adrp x7, .LANCHOR4 - ldrb w28, [x0,9] - udiv w0, w22, w21 - msub w21, w0, w21, w22 - sub w5, w22, w21 - mul w3, w21, w28 - ubfx x3, x3, 2, 2 -.L3086: - cmp w23, w26 - bcs .L3092 - ldrb w1, [x19,120] - sub w24, w6, w3 - add w4, w23, w21 - lsr w4, w4, 2 - uxth w24, w24 - add x0, x19, x4, uxth 1 - ldrh w0, [x0,196] - cbz w1, .L3087 - ldr w2, [x19,1868] - mov w1, 12336 - movk w1, 0x5638, lsl 16 - uxth w4, w4 + ldr w4, [x3,-96] + cbnz w4, .L2897 + ldr w4, [x3,2024] + cbnz w4, .L2897 + ldrh w4, [x3,16] + cmp w4, 47 + bls .L2897 + mov w23, w0 + adrp x0, .LANCHOR1+3168 + mov w22, w1 + ldrh w1, [x0,#:lo12:.LANCHOR1+3168] + mov w0, 65535 + cmp w1, w0 + bne .L2754 +.L2757: + add x0, x19, :lo12:.LANCHOR2 + mov w2, 65535 + ldrh w4, [x0,938] + cmp w4, w2 + bne .L2755 + b .L2756 +.L2754: + ldrh w1, [x3,136] + cmp w1, w0 + beq .L2757 + mov w0, 1 + bl FtlGcFreeTempBlock + mov w2, 1 + cbz w0, .L2757 + b .L2897 +.L2755: + ldrh w1, [x0,936] + cmp w1, w2 + bne .L2756 + ldrh w3, [x0,940] + cmp w3, w1 + beq .L2756 + ldrh w2, [x0,942] cmp w2, w1 - csel w0, w4, w0, eq -.L3087: - add w3, w3, w5 - add x27, x7, :lo12:.LANCHOR4 - ldrb w4, [x19,1936] - madd w25, w0, w28, w3 - ldr x0, [x19,744] - ldr x2, [x27,104] - str x6, [x29,96] - ldrb w1, [x0,9] - ldrb w0, [x27,98] - str x5, [x29,104] - str x7, [x29,112] - str x4, [x29,136] - str x2, [x29,120] - str x1, [x29,128] - bl FlashBchSel - mov w0, 0 - bl flash_boot_enter_slc_mode - ldr x1, [x29,128] - mov x3, 0 - ldr x2, [x29,120] - mov w0, 0 - udiv w1, w25, w1 - bl FlashReadPage - mov w0, 0 - bl flash_boot_exit_slc_mode - ldr x4, [x29,136] - mov w0, w4 - bl FlashBchSel - ubfiz x0, x23, 9, 16 - ldr x1, [x27,104] - add x0, x20, x0 - mov w2, 2048 - add w23, w24, w23 - bl ftl_memcpy - uxth w23, w23 - mov w3, 0 - ldr x6, [x29,96] - ldr x5, [x29,104] - ldr x7, [x29,112] - b .L3086 -.L3092: - adrp x0, .LC142 - mov w1, w22 - mov w2, w26 - mov w3, 0 - add x0, x0, :lo12:.LC142 + beq .L2756 + mov w1, -1 + strh w4, [x0,936] + strh w3, [x0,938] + strh w2, [x0,940] + strh w1, [x0,942] +.L2756: + add x1, x19, :lo12:.LANCHOR2 + cmp w23, 1 + ldr w0, [x1,852] + add w0, w0, 1 + add w0, w0, w23, lsl 7 + str w0, [x1,852] + bne .L2768 + adrp x25, .LANCHOR0 + add x1, x25, :lo12:.LANCHOR0 + ldr w2, [x1,1940] + cbnz w2, .L2759 + ldrb w1, [x1,120] + cbz w1, .L2768 +.L2759: + add x20, x19, :lo12:.LANCHOR2 + ldr w1, [x20,256] + cmp w1, 39 + bhi .L2768 + adrp x21, .LANCHOR4 + add x1, x21, :lo12:.LANCHOR4 + ldrh w1, [x1,432] + add w0, w0, w1 + str w0, [x20,852] + bl FtlGcReFreshBadBlk + ldrh w0, [x20,280] + mov w1, 65535 + cmp w0, w1 + bne .L2768 + ldrh w1, [x20,936] + cmp w1, w0 + bne .L2768 + ldr w0, [x20,852] + cmp w0, 1024 + bhi .L2760 + ldrh w0, [x20,32] + cmp w0, 63 + bhi .L2768 +.L2760: + add x0, x19, :lo12:.LANCHOR2 + add x1, x21, :lo12:.LANCHOR4 + ldrh w2, [x0,850] + ldrh w3, [x0,32] + add w2, w2, 64 + strh wzr, [x1,432] + cmp w3, w2 + bgt .L2768 + str wzr, [x0,852] + ldr w0, [x0,256] + cbnz w0, .L2761 + mov w0, 6 + b .L2919 +.L2761: + cmp w0, 5 + bhi .L2762 + mov w0, 18 +.L2919: + strh w0, [x1,432] +.L2762: + mov w0, 32 + bl List_get_gc_head_node + uxth w26, w0 + mov w3, 65535 + cmp w26, w3 + beq .L2767 + add x24, x19, :lo12:.LANCHOR2 + adrp x27, .LANCHOR2 + ldrh w0, [x24,856] + cbz w0, .L2764 + add x25, x25, :lo12:.LANCHOR0 + ldr x28, [x27,#:lo12:.LANCHOR2] + ubfiz x26, x26, 1, 16 + ldrh w1, [x25,2020] + ldrh w4, [x25,1948] + ldrh w2, [x28,x26] + mul w1, w1, w4 + add w1, w1, 1 + cmp w2, w1 + bgt .L2767 + add w1, w0, 1 + str x3, [x29,112] + str wzr, [x24,860] + uxth w1, w1 + strh w1, [x24,856] + str x1, [x29,120] + bl List_get_gc_head_node + uxth w20, w0 + ldr x3, [x29,112] + ldr x1, [x29,120] + cmp w20, w3 + beq .L2767 + ubfiz x25, x20, 1, 16 + adrp x0, .LC144 + ldrh w4, [x28,x26] + add x0, x0, :lo12:.LC144 + mov w2, w20 + ldrh w3, [x28,x25] bl printk + ldrh w0, [x24,856] + cmp w0, 40 + bls .L2765 + ldr x0, [x27,#:lo12:.LANCHOR2] + ldrh w0, [x0,x25] + cmp w0, 32 + bls .L2765 + strh wzr, [x24,856] +.L2765: + add x21, x21, :lo12:.LANCHOR4 + mov w0, 6 + strh w0, [x21,432] + b .L2769 +.L2764: + mov w0, 1 + strh w0, [x24,856] +.L2767: + bl GetSwlReplaceBlock + uxth w20, w0 + mov w0, 65535 + cmp w20, w0 + bne .L2769 + add x21, x21, :lo12:.LANCHOR4 + strh wzr, [x21,432] +.L2768: + add x21, x19, :lo12:.LANCHOR2 + mov w0, 65535 + ldrh w20, [x21,280] + cmp w20, w0 + bne .L2923 + ldrh w0, [x21,136] + cmp w0, w20 + beq .L2924 +.L2769: + mov w0, 65535 + cmp w20, w0 + add x0, x19, :lo12:.LANCHOR2 + cset w2, eq + cbz w2, .L2782 + cbnz w23, .L2782 + ldrh w1, [x0,32] + mov w21, 1 + cmp w1, 24 + bhi .L2783 + adrp x0, .LANCHOR0 + cmp w1, 16 + add x0, x0, :lo12:.LANCHOR0 + ldrh w21, [x0,2018] + bls .L2784 + lsr w21, w21, 5 + b .L2783 +.L2784: + cmp w1, 12 + bls .L2785 + lsr w21, w21, 4 + b .L2783 +.L2785: + cmp w1, 8 + bls .L2783 + lsr w21, w21, 2 +.L2783: + add x0, x19, :lo12:.LANCHOR2 + ldrh w2, [x0,848] + cmp w2, w1 + bcs .L2787 + ldrh w1, [x0,136] + mov w2, 65535 + cmp w1, w2 + bne .L2788 + ldrh w2, [x0,936] + cmp w2, w1 + bne .L2788 + adrp x1, .LANCHOR4+432 + ldrh w2, [x1,#:lo12:.LANCHOR4+432] + cbnz w2, .L2789 + adrp x1, .LANCHOR0+2096 + ldr w3, [x0,196] + ldr w1, [x1,#:lo12:.LANCHOR0+2096] + add w1, w1, w1, lsl 1 + cmp w3, w1, lsr 2 + bcs .L2790 +.L2789: + add x1, x19, :lo12:.LANCHOR2 + ldrh w0, [x1,260] + add w0, w0, w0, lsl 1 + asr w0, w0, 2 + strh w0, [x1,848] + b .L2791 +.L2790: + mov w1, 18 + strh w1, [x0,848] +.L2791: + add x19, x19, :lo12:.LANCHOR2 + str wzr, [x19,860] + b .L2897 +.L2788: + add x1, x19, :lo12:.LANCHOR2 + ldrh w0, [x1,260] + add w0, w0, w0, lsl 1 + asr w0, w0, 2 + strh w0, [x1,848] +.L2787: + cmp w22, 2 + bhi .L2852 + adrp x0, .LANCHOR0+1940 + ldr w0, [x0,#:lo12:.LANCHOR0+1940] + cbz w0, .L2852 + add w21, w21, 1 + uxth w21, w21 + b .L2852 +.L2782: + ldrh w1, [x0,136] + mov w3, 65535 + cmp w1, w3 + bne .L2794 + cbz w2, .L2794 + ldrh w2, [x0,936] + cmp w2, w1 + bne .L2794 + ldrh w2, [x0,280] + cmp w2, w1 + beq .L2795 +.L2800: + mov w20, 65535 + b .L2794 +.L2795: + ldrh w2, [x0,32] + adrp x20, .LANCHOR4 + ldrh w1, [x0,848] + str wzr, [x0,860] + cmp w2, w1 + bls .L2796 + add x1, x20, :lo12:.LANCHOR4 + ldrh w1, [x1,432] + cbnz w1, .L2797 + adrp x1, .LANCHOR0+2096 + ldr w2, [x0,196] + ldr w1, [x1,#:lo12:.LANCHOR0+2096] + add w1, w1, w1, lsl 1 + cmp w2, w1, lsr 2 + bcs .L2798 +.L2797: + add x1, x19, :lo12:.LANCHOR2 + ldrh w0, [x1,260] + add w0, w0, w0, lsl 1 + asr w0, w0, 2 + strh w0, [x1,848] + b .L2799 +.L2798: + mov w1, 18 + strh w1, [x0,848] +.L2799: + bl FtlReadRefresh mov w0, 0 + bl List_get_gc_head_node + ubfiz x0, x0, 1, 16 + ldr x1, [x19,#:lo12:.LANCHOR2] + ldrh w0, [x1,x0] + cmp w0, 4 + bls .L2796 + add x20, x20, :lo12:.LANCHOR4 + ldrh w2, [x20,432] + b .L2897 +.L2796: + add x21, x20, :lo12:.LANCHOR4 + ldrh w0, [x21,432] + cbnz w0, .L2800 + add x22, x19, :lo12:.LANCHOR2 + ldrh w20, [x22,260] + add w1, w20, w20, lsl 1 + asr w1, w1, 2 + strh w1, [x22,848] + bl List_get_gc_head_node + ubfiz x0, x0, 1, 16 + ldr x1, [x19,#:lo12:.LANCHOR2] + ldrh w2, [x1,x0] + adrp x1, .LANCHOR0 + add x1, x1, :lo12:.LANCHOR0 + ldrh w0, [x1,2020] + ldrh w1, [x1,1948] + mul w0, w0, w1 + mov w1, 2 + sdiv w0, w0, w1 + cmp w2, w0 + ble .L2801 + ldrh w0, [x22,32] + sub w20, w20, #1 + cmp w0, w20 + blt .L2801 + bl FtlReadRefresh + ldrh w2, [x21,432] + b .L2897 +.L2801: + cbnz w2, .L2800 + mov w0, -1 + add x19, x19, :lo12:.LANCHOR2 + bl decrement_vpc_count + ldrh w2, [x19,32] + add w2, w2, 1 + b .L2897 +.L2794: + adrp x0, .LANCHOR0+1940 + mov w21, 2 + ldr w0, [x0,#:lo12:.LANCHOR0+1940] + cmp w0, wzr + csinc w21, w21, wzr, ne + b .L2793 +.L2852: + mov w20, 65535 +.L2793: + add x0, x19, :lo12:.LANCHOR2 + mov w2, 65535 + ldrh w1, [x0,280] + cmp w1, w2 + bne .L2803 + cmp w20, w1 + beq .L2804 + strh w20, [x0,280] + b .L2805 +.L2804: + ldrh w1, [x0,936] + cmp w1, w20 + beq .L2805 + adrp x2, .LANCHOR2 + ubfiz x1, x1, 1, 16 + ldr x2, [x2,#:lo12:.LANCHOR2] + ldrh w1, [x2,x1] + cbnz w1, .L2806 + mov w1, -1 + strh w1, [x0,936] +.L2806: + add x0, x19, :lo12:.LANCHOR2 + ldrh w1, [x0,936] + strh w1, [x0,280] + mov w1, -1 + strh w1, [x0,936] +.L2805: + add x22, x19, :lo12:.LANCHOR2 + mov w1, 65535 + ldrh w0, [x22,280] + strb wzr, [x22,288] + cmp w0, w1 + beq .L2803 + bl IsBlkInGcList + cbz w0, .L2808 + mov w0, -1 + strh w0, [x22,280] +.L2808: + adrp x0, .LANCHOR0+120 + ldrb w0, [x0,#:lo12:.LANCHOR0+120] + cbz w0, .L2809 + add x0, x19, :lo12:.LANCHOR2 + add x22, x0, 280 + ldrh w0, [x0,280] + bl ftl_get_blk_mode + strb w0, [x22,8] +.L2809: + add x22, x19, :lo12:.LANCHOR2 + mov w0, 65535 + add x24, x22, 280 + ldrh w1, [x22,280] + cmp w1, w0 + beq .L2803 + mov x0, x24 + bl make_superblock + strh wzr, [x22,282] + adrp x0, .LANCHOR4 + adrp x1, .LANCHOR2 + add x0, x0, :lo12:.LANCHOR4 + ldrh w2, [x22,280] + strb wzr, [x22,286] + ldr x1, [x1,#:lo12:.LANCHOR2] + strh wzr, [x0,434] + ldrh w1, [x1,x2,lsl 1] + strh w1, [x0,436] +.L2803: + add x6, x19, :lo12:.LANCHOR2 + ldrh w0, [x6,280] + ldrh w1, [x6,40] + cmp w1, w0 + beq .L2810 + ldrh w1, [x6,88] + cmp w1, w0 + beq .L2810 +.L2811: + adrp x0, .LC146 + mov x28, x6 + add x0, x0, :lo12:.LC146 + mov w24, 65535 + str x0, [x29,120] + b .L2812 +.L2810: + add x19, x19, :lo12:.LANCHOR2 + mov w0, -1 + strh w0, [x19,280] + b .L2922 +.L2833: + ldrh w0, [x28,282] + add w21, w21, w0 + uxth w21, w21 + strh w21, [x28,282] + cmp w21, w25 + bcs .L2925 +.L2835: + ldrh w0, [x28,32] + cmp w0, 2 + bhi .L2838 + adrp x0, .LANCHOR0 + add x0, x0, :lo12:.LANCHOR0 + ldrh w21, [x0,2018] +.L2812: + ldrh w0, [x28,280] + cmp w0, w24 + bne .L2813 + str wzr, [x28,860] + mov w25, 2 +.L2814: + ldrh w22, [x28,856] + mov w0, w22 + bl List_get_gc_head_node + uxth w26, w0 + cmp w26, w24 + strh w26, [x28,280] + bne .L2815 + strh wzr, [x28,856] + mov w2, 8 + b .L2897 +.L2815: + mov w0, w26 + add w22, w22, 1 + bl IsBlkInGcList + cbz w0, .L2816 + strh w22, [x28,856] + b .L2814 +.L2816: + adrp x0, .LANCHOR0 + ubfiz x1, x26, 1, 16 + add x4, x0, :lo12:.LANCHOR0 + ldr x2, [x28] + uxth w22, w22 + strh w22, [x28,856] + ldrh w0, [x4,2018] + ldrh w4, [x4,1948] + ldrh w3, [x2,x1] + mul w0, w0, w4 + sdiv w4, w0, w25 + cmp w3, w4 + bgt .L2818 + cmp w3, 8 + bls .L2819 + cmp w22, 48 + bls .L2819 + ldrh w3, [x28,908] + cmp w3, 35 + bhi .L2819 +.L2818: + strh wzr, [x28,856] +.L2819: + ldrh w1, [x2,x1] + cmp w1, w0 + blt .L2820 + cmp w20, w24 + bne .L2820 + add x19, x19, :lo12:.LANCHOR2 + mov w0, -1 + strh wzr, [x19,856] + strh w0, [x19,280] +.L2922: + adrp x0, .LANCHOR4+432 + ldrh w2, [x0,#:lo12:.LANCHOR4+432] + b .L2897 +.L2820: + cbnz w1, .L2821 + mov w0, -1 + bl decrement_vpc_count + ldrh w0, [x28,856] + add w0, w0, 1 + strh w0, [x28,856] + b .L2814 +.L2821: + adrp x0, .LANCHOR0 + strb wzr, [x28,288] + add x0, x0, :lo12:.LANCHOR0 + ldrb w0, [x0,120] + cbz w0, .L2822 + mov w0, w26 + bl ftl_get_blk_mode + strb w0, [x28,288] +.L2822: + add x22, x28, 280 + mov x0, x22 + bl make_superblock + adrp x1, .LANCHOR4 + ldrh w2, [x28,280] + add x1, x1, :lo12:.LANCHOR4 + ldr x0, [x28] + strh wzr, [x1,434] + ldrh w0, [x0,x2,lsl 1] + strh w0, [x1,436] + strh wzr, [x28,282] + strb wzr, [x28,286] +.L2813: + cmp w23, 1 + bne .L2823 + bl FtlReadRefresh +.L2823: + mov w0, 1 + str w0, [x28,2024] + adrp x0, .LANCHOR0 + add x0, x0, :lo12:.LANCHOR0 + ldrb w1, [x0,120] + ldrh w25, [x0,2018] + cbz w1, .L2824 + ldrb w1, [x28,288] + cmp w1, 1 + bne .L2824 + ldrh w25, [x0,2020] +.L2824: + ldrh w0, [x28,282] + add w1, w0, w21 + cmp w1, w25 + ble .L2825 + sub w21, w25, w0 + uxth w21, w21 +.L2825: + mov w26, 0 +.L2826: + cmp w21, w26, uxth + bls .L2833 + adrp x0, .LANCHOR0 + add x1, x28, 280 + add x0, x0, :lo12:.LANCHOR0 + ldrh w3, [x1,2] + add w3, w3, w26 + ldrh w5, [x0,1948] + mov x0, 0 + mov w22, w0 +.L2834: + cmp w5, w0, uxth + bls .L2926 + add x2, x1, x0, lsl 1 + ldrh w2, [x2,16] + cmp w2, w24 + beq .L2827 + mov w4, 56 + ldr x7, [x28,896] + orr w2, w3, w2, lsl 10 + umull x4, w22, w4 + add w22, w22, 1 + add x4, x7, x4 + uxth w22, w22 + str w2, [x4,4] +.L2827: + add x0, x0, 1 + b .L2834 +.L2926: + ldr x0, [x28,896] + mov w1, w22 + ldrb w2, [x28,288] + mov x27, 0 + bl FlashReadPages +.L2829: + cmp w22, w27, uxth + bls .L2927 + mov x0, 56 + mul x4, x27, x0 + ldr x0, [x28,896] + add x1, x0, x4 + ldr w0, [x0,x4] + cmn w0, #1 + ldr x3, [x1,16] + beq .L2854 + ldrh w0, [x3] + mov w1, 61589 + cmp w0, w1 + bne .L2854 + ldr w0, [x3,8] + add x1, x29, 140 + mov w2, 0 + str x4, [x29,104] + str x3, [x29,112] + bl log2phys + ldr x2, [x28,896] + ldr x4, [x29,104] + ldr w0, [x29,140] + add x2, x2, x4 + ldr x3, [x29,112] + and w0, w0, 2147483647 + ldr w1, [x2,4] + cmp w0, w1 + bne .L2854 + adrp x0, .LANCHOR4 + str x3, [x29,104] + add x1, x0, :lo12:.LANCHOR4 + mov x3, 56 + str x4, [x29,96] + ldrh w0, [x1,434] + add w0, w0, 1 + strh w0, [x1,434] + ldr w0, [x28,864] + ldr x1, [x28,2056] + madd x1, x0, x3, x1 + ldr w0, [x2,24] + str x1, [x29,112] + str w0, [x1,24] + bl Ftl_get_new_temp_ppa + ldr x1, [x29,112] + mov x2, 56 + ldr x4, [x29,96] + ldr x3, [x29,104] + str w0, [x1,4] + ldr w0, [x28,864] + ldr x1, [x28,2056] + madd x0, x0, x2, x1 + ldr x1, [x28,896] + add x1, x1, x4 + ldr x2, [x1,8] + str x2, [x0,8] + add x2, x28, 136 + str x2, [x29,112] + ldr x1, [x1,16] + str x1, [x0,16] + mov w1, 1 + ldr w0, [x29,140] + str w0, [x3,12] + ldrh w0, [x28,136] + strh w0, [x3,2] + ldr w0, [x28,236] + str w0, [x3,4] + ldr w0, [x28,864] + add w0, w0, 1 + str w0, [x28,864] + ldr x0, [x28,896] + add x0, x0, x4 + bl FtlGcBufAlloc + adrp x0, .LANCHOR0 + add x0, x0, :lo12:.LANCHOR0 + ldrb w0, [x0,120] + cbnz w0, .L2831 + ldr x2, [x29,112] + ldr w1, [x28,864] + ldrb w0, [x2,7] + cmp w1, w0 + beq .L2831 + ldrh w0, [x2,4] + cbnz w0, .L2854 +.L2831: + bl Ftl_gc_temp_data_write_back + cbz w0, .L2854 + adrp x0, .LANCHOR4 + add x19, x19, :lo12:.LANCHOR2 + add x0, x0, :lo12:.LANCHOR4 + str wzr, [x19,2024] + ldrh w2, [x0,432] + b .L2897 +.L2854: + add x27, x27, 1 + b .L2829 +.L2927: + add w26, w26, 1 + b .L2826 +.L2925: + ldr w0, [x28,864] + adrp x21, .LANCHOR4 + cbz w0, .L2836 + bl Ftl_gc_temp_data_write_back + cbz w0, .L2836 + add x5, x21, :lo12:.LANCHOR4 + str wzr, [x28,2024] + ldrh w2, [x5,432] + b .L2897 +.L2836: + add x5, x21, :lo12:.LANCHOR4 + ldrh w21, [x5,434] + cbnz w21, .L2837 + ldrh w1, [x28,280] + ldr x3, [x28] + ubfiz x0, x1, 1, 16 + ldrh w4, [x3,x0] + cbz w4, .L2837 + ldrh w2, [x28,282] + mov w3, w21 + ldrh w5, [x5,436] + ldr x0, [x29,120] + bl printk + ldrh w1, [x28,280] + ldr x0, [x28] + strh w21, [x0,x1,lsl 1] + ldrh w0, [x28,280] + bl update_vpc_list + bl FtlCacheWriteBack + bl l2p_flush + bl FtlVpcTblFlush +.L2837: + mov w0, -1 + strh w0, [x28,280] + b .L2835 +.L2838: + adrp x1, .LANCHOR4+432 + str wzr, [x28,2024] + ldrh w2, [x1,#:lo12:.LANCHOR4+432] + cmp w2, wzr + csinc w2, w2, w0, ne + b .L2897 +.L2924: + ldrh w24, [x21,936] + cmp w24, w20 + bne .L2769 + ldrh w0, [x21,32] + mov w2, 1024 + ldr w1, [x21,852] + cmp w0, 24 + mov w0, 5120 + csel w0, w0, w2, cc + cmp w1, w0 + bls .L2769 + adrp x0, .LANCHOR4+432 + str wzr, [x21,852] + strh wzr, [x0,#:lo12:.LANCHOR4+432] + bl GetSwlReplaceBlock + uxth w20, w0 + cmp w20, w24 + bne .L2771 + ldrh w1, [x21,32] + ldrh w0, [x21,850] + cmp w1, w0 + bcs .L2772 + mov w0, 64 + bl List_get_gc_head_node + uxth w0, w0 + cmp w0, w20 + beq .L2781 + ldr w2, [x21,2020] + adrp x24, .LANCHOR0 + uxtw x1, w0 + cbnz w2, .L2774 + add x0, x24, :lo12:.LANCHOR0 + ldrh w2, [x0,1968] + cmp w2, 3 + beq .L2774 + ldr w2, [x21,328] + cbnz w2, .L2774 + ldr w2, [x0,1940] + cbnz w2, .L2774 + ldrb w0, [x0,120] + cbz w0, .L2775 +.L2774: + add x3, x24, :lo12:.LANCHOR0 + ldr x0, [x19,#:lo12:.LANCHOR2] + ldrh w4, [x0,x1,lsl 1] + ldrh w1, [x3,2020] + ldrh w0, [x3,1948] + ldrh w3, [x3,1968] + mul w2, w1, w0 + cmp w3, 3 + mov w0, 0 + lsr w1, w1, 1 + csel w0, w1, w0, eq + add w0, w2, w0 + cmp w4, w0 + bgt .L2777 + mov w0, 0 + add x24, x24, :lo12:.LANCHOR0 + bl List_get_gc_head_node + uxth w20, w0 + add x1, x19, :lo12:.LANCHOR2 + ldr w0, [x24,2096] + ldr w2, [x1,196] + add w0, w0, w0, lsl 1 + cmp w2, w0, lsr 2 + bls .L2778 + mov w0, 128 + b .L2920 +.L2778: + mov w0, 160 +.L2920: + strh w0, [x1,850] + b .L2779 +.L2777: + add x0, x19, :lo12:.LANCHOR2 + mov w1, 128 + b .L2921 +.L2775: + adrp x2, .LANCHOR2 + ldr x2, [x2,#:lo12:.LANCHOR2] + ldrh w1, [x2,x1,lsl 1] + cmp w1, 7 + bhi .L2780 + bl List_get_gc_head_node + uxth w20, w0 + add x0, x19, :lo12:.LANCHOR2 + mov w1, 128 + strh w1, [x0,850] + b .L2779 +.L2780: + add x0, x19, :lo12:.LANCHOR2 + mov w1, 64 +.L2921: + strh w1, [x0,850] + b .L2781 +.L2772: + mov w0, 80 + strh w0, [x21,850] + b .L2781 +.L2779: + mov w0, 65535 + cmp w20, w0 + beq .L2781 +.L2771: + add x5, x19, :lo12:.LANCHOR2 + ubfiz x4, x20, 1, 32 + ldr x3, [x19,#:lo12:.LANCHOR2] + adrp x0, .LC145 + add x0, x0, :lo12:.LC145 + mov w1, w20 + ldr x6, [x5,-80] + ldrh w2, [x5,32] + ldrh w3, [x3,x4] + ldrh w5, [x5,848] + ldrh w4, [x6,x4] + bl printk +.L2781: + bl FtlGcReFreshBadBlk + b .L2769 +.L2923: + mov w20, w0 + b .L2769 +.L2897: + mov w0, w2 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -20029,295 +19047,217 @@ IdBlockReadData: ldp x27, x28, [sp,80] ldp x29, x30, [sp], 144 ret - .size IdBlockReadData, .-IdBlockReadData + .size ftl_do_gc, .-ftl_do_gc .align 2 - .global IDBlockWriteData - .type IDBlockWriteData, %function -IDBlockWriteData: - stp x29, x30, [sp, -192]! - add x29, sp, 0 - stp x19, x20, [sp,16] - adrp x19, .LANCHOR0 - add x19, x19, :lo12:.LANCHOR0 - stp x27, x28, [sp,80] - mov w27, w1 - adrp x28, .LANCHOR4 - ldr x1, [x19,744] - stp x23, x24, [sp,48] - stp x21, x22, [sp,32] - stp x25, x26, [sp,64] - mov w24, w0 - ldr w0, [x19,12] - ldrb w21, [x1,9] - mov x22, x2 - mov w1, w24 - mov w2, w27 - mov w23, 0 - mul w21, w0, w21 - adrp x0, .LC143 - add x0, x0, :lo12:.LC143 - uxth w21, w21 - bl printk - mov w0, 0 - bl flash_boot_enter_slc_mode - ldrh w1, [x19,188] - mov w2, 0 - mov w0, 0 - udiv w1, w24, w1 - bl FlashEraseBlock - mov w0, 0 - bl flash_boot_exit_slc_mode - udiv w26, w24, w21 - ldr x0, [x19,744] - ldrb w20, [x0,9] - msub w26, w26, w21, w24 - sub w21, w24, w26 -.L3094: - cmp w23, w27 - bcs .L3108 - add w4, w23, w26 - lsr w4, w4, 2 - uxth w0, w4 - and w4, w4, 65535 - cbz w0, .L3095 - add x1, x19, 196 - add w2, w4, 1 - ldrh w3, [x1,w2,sxtw 1] - ldrb w1, [x19,120] - cbz w1, .L3096 - ldr w2, [x19,1868] - mov w1, 12336 - movk w1, 0x5638, lsl 16 - cmp w2, w1 - bne .L3096 - add w3, w0, 1 - uxth w3, w3 -.L3096: - sub w3, w3, #1 - str wzr, [x29,132] - lsl w3, w3, 2 - str w3, [x29,128] -.L3095: - add x1, x19, 196 - ldrh w25, [x1,w4,sxtw 1] - ldrb w1, [x19,120] - cbz w1, .L3097 - ldr w2, [x19,1868] - mov w1, 12336 - movk w1, 0x5638, lsl 16 - cmp w2, w1 - csel w25, w25, w0, ne -.L3097: - add x0, x28, :lo12:.LANCHOR4 - ldrb w4, [x19,1936] - madd w3, w25, w20, w21 - ubfiz x2, x23, 9, 16 - str x4, [x29,120] - ldrb w0, [x0,98] - add x2, x22, x2 - str x3, [x29,104] - add w23, w23, 4 - str x2, [x29,112] - bl FlashBchSel - uxth w23, w23 - mov w0, 0 - bl flash_boot_enter_slc_mode - ldr x0, [x19,744] - ldr x3, [x29,104] - ldr x2, [x29,112] - ldrb w1, [x0,9] - mov w0, 0 - udiv w1, w3, w1 - add x3, x29, 128 - bl FlashProgPage - mov w0, 0 - bl flash_boot_exit_slc_mode - ldr x4, [x29,120] - mov w0, w4 - bl FlashBchSel - udiv w1, w21, w20 - add w2, w25, 1 - mov w0, 0 - bl FlashPageProgMsbFFData - b .L3094 -.L3108: - adrp x0, .LC144 - mov w1, w24 - mov w2, w27 - mov w3, 0 - add x0, x0, :lo12:.LC144 - bl printk - 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], 192 - ret - .size IDBlockWriteData, .-IDBlockWriteData - .align 2 - .global write_idblock - .type write_idblock, %function -write_idblock: + .global FtlCacheWriteBack + .type FtlCacheWriteBack, %function +FtlCacheWriteBack: stp x29, x30, [sp, -128]! + adrp x0, .LANCHOR4+440 add x29, sp, 0 - stp x23, x24, [sp,48] - adrp x24, .LANCHOR0 - mov x23, x2 - stp x25, x26, [sp,64] - mov w25, w0 - add x0, x24, :lo12:.LANCHOR0 - stp x19, x20, [sp,16] stp x21, x22, [sp,32] + adrp x22, .LANCHOR2 + stp x19, x20, [sp,16] + ldr x20, [x0,#:lo12:.LANCHOR4+440] + add x0, x22, :lo12:.LANCHOR2 + stp x23, x24, [sp,48] + stp x25, x26, [sp,64] stp x27, x28, [sp,80] - mov x21, x1 - ldr w26, [x0,12] - ldr x1, [x0,744] - mov w0, 59392 - movk w0, 0x3, lsl 16 - ldrb w22, [x1,9] - bl ftl_malloc - str x24, [x29,120] - mov x20, x0 - mov w0, -1 - cbz x20, .L3119 - add w19, w25, 511 - lsr w19, w19, 9 - cmp w19, 255 - bhi .L3111 - ubfiz x0, x19, 9, 23 - mov w2, 256 - add x0, x21, x0 - mov x1, x21 - sub w2, w2, w19 - bl memcpy -.L3111: - add w19, w19, 128 - mov w0, 256 - cmp w19, 256 - mov x1, x23 - csel w19, w19, w0, ls - adrp x0, .LC145 - add x0, x0, :lo12:.LC145 - mov w2, 4 - mov w3, 5 - bl rknand_print_hex - ldr x0, [x29,120] - ldr w1, [x21,512] - add x27, x0, :lo12:.LANCHOR0 - adrp x0, .LC146 - add x0, x0, :lo12:.LC146 - ldrb w2, [x27,9] - bl printk - ldrb w0, [x27,9] - ldr w1, [x21,512] - cmp w1, w0 - bls .L3112 - str w0, [x21,512] -.L3112: - adrp x0, .LC147 - mov w2, w25 - mul w22, w22, w26 - add x0, x0, :lo12:.LC147 - mov w1, w19 - mov x24, 0 - adrp x26, .LC148 - bl printk - adrp x27, .LC149 - adrp x28, .LC150 - lsl w0, w19, 7 - uxth w22, w22 - str w0, [x29,116] - mov w25, w24 - add x26, x26, :lo12:.LC148 - add x27, x27, :lo12:.LC149 - add x28, x28, :lo12:.LC150 -.L3117: - ldr x1, [x29,120] - mov w8, w24 - ldr w0, [x23,x24,lsl 2] - add x1, x1, :lo12:.LANCHOR0 - ldrh w1, [x1,194] - cmp w0, w1 - bcs .L3113 - adrp x1, .LANCHOR4+92 - ldr w1, [x1,#:lo12:.LANCHOR4+92] - cmp w0, w1 - bcc .L3113 - mov w1, 0 - mov x2, 512 - mov x0, x20 - str x8, [x29,104] - bl memset - ldr w0, [x23,x24,lsl 2] - mov w1, w19 - mov x2, x21 - mul w0, w22, w0 - bl IDBlockWriteData - ldr w0, [x23,x24,lsl 2] - mov w1, w19 - mov x2, x20 - mul w0, w22, w0 - bl IdBlockReadData - ldr x8, [x29,104] - mov x0, 0 -.L3114: - ldr w1, [x29,116] - mov w3, w0 - cmp w0, w1 - bcs .L3124 - ldr w4, [x20,x0,lsl 2] - mov x7, x0 - add x0, x0, 1 - add x1, x21, x0, lsl 2 - ldr w5, [x1,-4] - cmp w4, w5 - beq .L3114 - ldr w2, [x23,x24,lsl 2] - mov w1, w8 + ldr w23, [x0,-96] + cbnz w23, .L2930 + adrp x19, .LANCHOR0 + add x0, x19, :lo12:.LANCHOR0 + ldr w1, [x0,2080] + cbz w1, .L2930 + ldrb w0, [x0,120] + cbz w0, .L2932 + ldrb w0, [x20,8] + cmp w0, 1 + cset w23, eq +.L2932: + add x0, x19, :lo12:.LANCHOR0 + ldrb w3, [x20,9] + adrp x26, .LC147 + mov w2, w23 + mov w24, 0 + mov w27, 56 + ldr x0, [x0,2088] + add x26, x26, :lo12:.LC147 + bl FlashProgPages +.L2933: + add x0, x19, :lo12:.LANCHOR0 + ldr w1, [x0,2080] + cmp w24, w1 + bcs .L2951 + umull x21, w24, w27 + ldr x1, [x0,2088] + add x0, x1, x21 + ldr w25, [x1,x21] + cmn w25, #1 + beq .L2954 + ldr w1, [x0,4] + cbz w23, .L2968 + orr w1, w1, -2147483648 +.L2968: + ldr w0, [x0,24] + mov w2, 1 + str w1, [x29,124] + add x1, x29, 124 + bl log2phys + add x0, x19, :lo12:.LANCHOR0 + ldr x0, [x0,2088] + add x21, x0, x21 + ldr x0, [x21,16] + ldr w0, [x0,12] + cmn w0, #1 + beq .L2937 + lsr x0, x0, 10 + bl P2V_block_in_plane + uxth w1, w0 + ubfiz x0, x1, 1, 16 + ldr x2, [x22,#:lo12:.LANCHOR2] + mov w21, w1 + ldrh w2, [x2,x0] + cbnz w2, .L2938 mov x0, x26 - str x7, [x29,104] bl printk - ldr x7, [x29,104] - mov x0, x27 - mov w2, 4 - mov w3, 256 - and x4, x7, -256 - lsl x4, x4, 2 - str x4, [x29,104] - add x1, x21, x4 - bl rknand_print_hex - ldr x4, [x29,104] - mov w3, 256 - mov x0, x28 - mov w2, 4 - add x1, x20, x4 - bl rknand_print_hex +.L2938: + mov w0, w21 + bl decrement_vpc_count +.L2937: + add w24, w24, 1 + b .L2933 +.L2970: + mov w20, 16386 +.L2950: + add x0, x22, :lo12:.LANCHOR2 + ldrh w0, [x0,944] + cbz w0, .L2951 + mov w0, 1 + mov w1, w0 + bl ftl_do_gc + subs w20, w20, #1 + bne .L2950 +.L2951: + add x19, x19, :lo12:.LANCHOR0 + str wzr, [x19,2080] + b .L2930 +.L2954: + adrp x26, .LC147 + mov w24, 0 + mov w27, 56 + str w25, [x29,108] + mov w28, 1 + add x26, x26, :lo12:.LC147 +.L2934: + add x0, x19, :lo12:.LANCHOR0 + ldr w1, [x0,2080] + cmp w24, w1 + bcs .L2970 + umull x21, w24, w27 + ldr x0, [x0,2088] + ldr w1, [x29,108] + str w1, [x0,x21] +.L2940: + add x2, x19, :lo12:.LANCHOR0 + ldr x0, [x2,2088] + add x1, x0, x21 + ldr w0, [x0,x21] + cmn w0, #1 + bne .L2971 + ldr w0, [x1,4] + str x2, [x29,96] + lsr x0, x0, 10 + bl P2V_block_in_plane + ldrh w1, [x20] + cmp w1, w0, uxth + ldr x2, [x29,96] + bne .L2941 + ldr x3, [x22,#:lo12:.LANCHOR2] + ubfiz x1, x1, 1, 16 + ldrh w4, [x20,4] + ldrh w0, [x3,x1] + sub w0, w0, w4 + strh w0, [x3,x1] + strb wzr, [x20,6] + ldrh w0, [x2,2018] + strh w0, [x20,2] + strh wzr, [x20,4] +.L2941: + ldrh w0, [x20,4] + cbnz w0, .L2942 mov x0, x20 - mov w1, 0 - mov x2, 512 - bl memset - ldr w0, [x23,x24,lsl 2] - mov w1, 4 - mov x2, x20 - mul w0, w22, w0 - bl IDBlockWriteData - adrp x0, .LC151 - add x0, x0, :lo12:.LC151 + bl allocate_new_data_superblock +.L2942: + add x5, x22, :lo12:.LANCHOR2 + add x25, x19, :lo12:.LANCHOR0 + str x5, [x29,96] + ldr w0, [x5,432] + add w0, w0, 1 + str w0, [x5,432] + ldr x0, [x25,2088] + add x0, x0, x21 + ldr w0, [x0,4] + lsr x0, x0, 10 + bl FtlGcMarkBadPhyBlk + mov x0, x20 + bl get_new_active_ppa + str w0, [x29,124] + ldr x1, [x25,2088] + mov w2, w23 + add x1, x1, x21 + str w0, [x1,4] + mov w1, 1 + ldr x0, [x25,2088] + ldrb w3, [x20,9] + add x0, x0, x21 + bl FlashProgPages + ldr x0, [x25,2088] + ldr x5, [x29,96] + ldr w0, [x0,x21] + cmn w0, #1 + bne .L2943 + str w28, [x5,-96] +.L2943: + add x0, x22, :lo12:.LANCHOR2 + ldr w0, [x0,-96] + cbz w0, .L2940 + b .L2930 +.L2971: + ldr w0, [x1,4] + cbz w23, .L2969 + orr w0, w0, -2147483648 +.L2969: + str w0, [x29,124] + mov w2, 1 + ldr w0, [x1,24] + add x1, x29, 124 + bl log2phys + add x0, x19, :lo12:.LANCHOR0 + ldr x0, [x0,2088] + add x21, x0, x21 + ldr x0, [x21,16] + ldr w0, [x0,12] + cmn w0, #1 + beq .L2947 + lsr x0, x0, 10 + bl P2V_block_in_plane + uxth w1, w0 + ubfiz x0, x1, 1, 16 + ldr x2, [x22,#:lo12:.LANCHOR2] + mov w21, w1 + ldrh w2, [x2,x0] + cbnz w2, .L2948 + mov x0, x26 bl printk - b .L3113 -.L3124: - add w25, w25, 1 -.L3113: - add x24, x24, 1 - cmp x24, 5 - bne .L3117 - mov x0, x20 - bl ftl_free - cmp w25, wzr - csetm w0, eq -.L3119: +.L2948: + mov w0, w21 + bl decrement_vpc_count +.L2947: + add w24, w24, 1 + b .L2934 +.L2930: + mov w0, 0 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -20325,6 +19265,2192 @@ write_idblock: ldp x27, x28, [sp,80] ldp x29, x30, [sp], 128 ret + .size FtlCacheWriteBack, .-FtlCacheWriteBack + .align 2 + .global FtlSysFlush + .type FtlSysFlush, %function +FtlSysFlush: + adrp x0, .LANCHOR2-96 + stp x29, x30, [sp, -16]! + add x29, sp, 0 + ldr w0, [x0,#:lo12:.LANCHOR2-96] + cbnz w0, .L2973 + bl FtlCacheWriteBack + bl l2p_flush + mov w0, 1 + bl FtlEctTblFlush + bl FtlVpcTblFlush +.L2973: + mov w0, 0 + ldp x29, x30, [sp], 16 + ret + .size FtlSysFlush, .-FtlSysFlush + .align 2 + .global FtlDeInit + .type FtlDeInit, %function +FtlDeInit: + adrp x0, .LANCHOR1+504 + stp x29, x30, [sp, -16]! + add x29, sp, 0 + ldr w0, [x0,#:lo12:.LANCHOR1+504] + cmp w0, 1 + bne .L2975 + bl FtlSysFlush +.L2975: + mov w0, 0 + ldp x29, x30, [sp], 16 + ret + .size FtlDeInit, .-FtlDeInit + .align 2 + .global ftl_deinit + .type ftl_deinit, %function +ftl_deinit: + stp x29, x30, [sp, -16]! + add x29, sp, 0 + bl ftl_flash_de_init + bl FtlDeInit + bl ftl_flash_de_init + ldp x29, x30, [sp], 16 + ret + .size ftl_deinit, .-ftl_deinit + .align 2 + .global rk_ftl_de_init + .type rk_ftl_de_init, %function +rk_ftl_de_init: + stp x29, x30, [sp, -16]! + adrp x0, .LC148 + mov w1, 0 + add x29, sp, 0 + add x0, x0, :lo12:.LC148 + bl printk + bl ftl_deinit + ldp x29, x30, [sp], 16 + ret + .size rk_ftl_de_init, .-rk_ftl_de_init + .align 2 + .global ftl_cache_flush + .type ftl_cache_flush, %function +ftl_cache_flush: + stp x29, x30, [sp, -16]! + add x29, sp, 0 + bl FtlCacheWriteBack + ldp x29, x30, [sp], 16 + ret + .size ftl_cache_flush, .-ftl_cache_flush + .align 2 + .global rk_ftl_cache_write_back + .type rk_ftl_cache_write_back, %function +rk_ftl_cache_write_back: + stp x29, x30, [sp, -16]! + add x29, sp, 0 + bl FtlCacheWriteBack + ldp x29, x30, [sp], 16 + ret + .size rk_ftl_cache_write_back, .-rk_ftl_cache_write_back + .align 2 + .global ftl_discard + .type ftl_discard, %function +ftl_discard: + stp x29, x30, [sp, -80]! + add w2, w0, w1 + add x29, sp, 0 + stp x21, x22, [sp,32] + adrp x22, .LANCHOR0 + str x23, [sp,48] + add x21, x22, :lo12:.LANCHOR0 + stp x19, x20, [sp,16] + mov w19, w1 + mov w20, w0 + ldr w1, [x21,2060] + mov w0, -1 + cmp w2, w1 + bhi .L2981 + cmp w19, 31 + mov w0, 0 + bls .L2981 + adrp x23, .LANCHOR2 + add x1, x23, :lo12:.LANCHOR2 + ldr w1, [x1,-96] + cbnz w1, .L2981 + bl FtlCacheWriteBack + ldrh w1, [x21,2024] + udiv w21, w20, w1 + msub w20, w1, w21, w20 + uxth w20, w20 + cbz w20, .L2982 + sub w1, w1, w20 + add w21, w21, 1 + cmp w1, w19 + csel w1, w1, w19, ls + sub w19, w19, w1, uxth +.L2982: + mov w0, -1 + adrp x20, .LANCHOR4 + str w0, [x29,76] +.L2983: + add x0, x22, :lo12:.LANCHOR0 + ldrh w0, [x0,2024] + cmp w19, w0 + bcc .L2996 + mov w0, w21 + add x1, x29, 72 + mov w2, 0 + bl log2phys + ldr w0, [x29,72] + cmn w0, #1 + beq .L2984 + add x1, x20, :lo12:.LANCHOR4 + mov w2, 1 + ldr w0, [x1,448] + add w0, w0, 1 + str w0, [x1,448] + add x1, x23, :lo12:.LANCHOR2 + ldr w0, [x1,204] + add w0, w0, 1 + str w0, [x1,204] + add x1, x29, 76 + mov w0, w21 + bl log2phys + ldr w0, [x29,72] + lsr x0, x0, 10 + bl P2V_block_in_plane + bl decrement_vpc_count +.L2984: + add x0, x22, :lo12:.LANCHOR0 + add w21, w21, 1 + ldrh w0, [x0,2024] + sub w19, w19, w0 + b .L2983 +.L2996: + adrp x0, .LANCHOR4 + add x0, x0, :lo12:.LANCHOR4 + ldr w1, [x0,448] + cmp w1, 32 + bls .L2986 + str wzr, [x0,448] + bl l2p_flush + bl FtlVpcTblFlush +.L2986: + mov w0, 0 +.L2981: + ldp x19, x20, [sp,16] + ldp x21, x22, [sp,32] + ldr x23, [sp,48] + ldp x29, x30, [sp], 80 + ret + .size ftl_discard, .-ftl_discard + .align 2 + .global FtlDiscard + .type FtlDiscard, %function +FtlDiscard: + stp x29, x30, [sp, -16]! + add x29, sp, 0 + bl ftl_discard + ldp x29, x30, [sp], 16 + ret + .size FtlDiscard, .-FtlDiscard + .align 2 + .global ftl_read + .type ftl_read, %function +ftl_read: + sub sp, sp, #208 + cmp w0, 16 + stp x29, x30, [sp,16] + add x29, sp, 16 + stp x19, x20, [sp,32] + stp x25, x26, [sp,80] + stp x27, x28, [sp,96] + stp x21, x22, [sp,48] + stp x23, x24, [sp,64] + mov w20, w1 + mov w28, w2 + mov x26, x3 + bne .L2999 + add w0, w1, 256 + mov w1, w2 + mov x2, x3 + bl FtlVendorPartRead + b .L3000 +.L2999: + adrp x21, .LANCHOR0 + add w0, w1, w2 + add x1, x21, :lo12:.LANCHOR0 + str w0, [x29,168] + mov w0, -1 + ldr w3, [x29,168] + ldr w2, [x1,2060] + cmp w3, w2 + bhi .L3000 + ldrh w0, [x1,2024] + sub w25, w3, #1 + adrp x19, .LANCHOR2 + udiv w1, w20, w0 + str w1, [x29,172] + udiv w25, w25, w0 + ldr w0, [x29,172] + sub w24, w25, w0 + add x0, x19, :lo12:.LANCHOR2 + add w24, w24, 1 + ldr w1, [x0,228] + add w1, w28, w1 + str w1, [x0,228] + ldr w1, [x0,200] + add w1, w24, w1 + str w1, [x0,200] + ldr w0, [x29,172] + mov w1, w25 + bl FtlCacheMetchLpa + cbz w0, .L3001 + bl FtlCacheWriteBack +.L3001: + mov w27, 0 + adrp x0, .LC138 + ldr w22, [x29,172] + add x0, x0, :lo12:.LC138 + str w27, [x29,156] + mov w23, w27 + str w27, [x29,152] + str x0, [x29,112] +.L3002: + cbz w24, .L3045 + mov w0, w22 + add x1, x29, 188 + mov w2, 0 + bl log2phys + ldr w3, [x29,188] + cmn w3, #1 + bne .L3042 + mov w3, 0 +.L3003: + add x0, x21, :lo12:.LANCHOR0 + ldrh w0, [x0,2024] + cmp w3, w0 + bcs .L3007 + madd w0, w22, w0, w3 + cmp w0, w20 + bcc .L3005 + ldr w1, [x29,168] + cmp w0, w1 + bcs .L3005 + sub w0, w0, w20 + mov w1, 0 + ubfiz x0, x0, 9, 23 + mov w2, 512 + add x0, x26, x0 + str x3, [x29,160] + bl ftl_memset + ldr x3, [x29,160] +.L3005: + add w3, w3, 1 + b .L3003 +.L3042: + mov w0, 56 + umull x1, w23, w0 + add x0, x19, :lo12:.LANCHOR2 + ldr x2, [x0,2048] + add x2, x2, x1 + str w3, [x2,4] + ldr w2, [x29,172] + cmp w22, w2 + ldr x2, [x0,2048] + add x2, x2, x1 + bne .L3008 + ldr x0, [x0,2104] + str x0, [x2,8] + add x0, x21, :lo12:.LANCHOR0 + ldrh w0, [x0,2024] + udiv w3, w20, w0 + msub w3, w3, w0, w20 + str w3, [x29,128] + sub w3, w0, w3 + cmp w3, w28 + csel w3, w3, w28, ls + str w3, [x29,156] + cmp w3, w0 + bne .L3009 + str x26, [x2,8] + b .L3009 +.L3008: + cmp w22, w25 + bne .L3010 + ldr x0, [x0,2112] + str x0, [x2,8] + add x0, x21, :lo12:.LANCHOR0 + ldr w4, [x29,168] + ldrh w3, [x0,2024] + mul w0, w22, w3 + sub w27, w4, w0 + cmp w27, w3 + bne .L3009 + b .L3043 +.L3010: + add x0, x21, :lo12:.LANCHOR0 + ldrh w0, [x0,2024] + mul w0, w22, w0 +.L3043: + sub w0, w0, w20 + ubfiz x0, x0, 9, 23 + add x0, x26, x0 + str x0, [x2,8] +.L3009: + add x2, x19, :lo12:.LANCHOR2 + ldr x0, [x2,2048] + ldr x2, [x2,2128] + add x1, x0, x1 + add x0, x21, :lo12:.LANCHOR0 + ldrh w0, [x0,2030] + str w22, [x1,24] + mul w0, w23, w0 + add w23, w23, 1 + and x0, x0, 4294967292 + add x0, x2, x0 + str x0, [x1,16] +.L3007: + subs w24, w24, #1 + add w22, w22, 1 + beq .L3011 + add x0, x21, :lo12:.LANCHOR0 + ldrh w0, [x0,1948] + cmp w23, w0, lsl 3 + bne .L3002 +.L3011: + cbz w23, .L3002 + add x0, x19, :lo12:.LANCHOR2 + mov w1, w23 + mov w2, 0 + ldr x0, [x0,2048] + bl FlashReadPages + str xzr, [x29,160] + ldr x0, [x29,128] + ubfiz x0, x0, 9, 23 + str x0, [x29,144] + ldr w0, [x29,156] + lsl w0, w0, 9 + str w0, [x29,124] + lsl w0, w27, 9 + str w0, [x29,120] +.L3013: + ldr w0, [x29,160] + cmp w23, w0 + bls .L3046 + ldr x0, [x29,160] + add x2, x19, :lo12:.LANCHOR2 + mov x1, 56 + ldr w3, [x29,172] + mul x8, x0, x1 + ldr x0, [x2,2048] + add x0, x0, x8 + ldr w1, [x0,24] + cmp w1, w3 + bne .L3014 + ldr x1, [x0,8] + ldr x0, [x2,2104] + cmp x1, x0 + bne .L3015 + ldr x2, [x29,144] + mov x0, x26 + str x8, [x29,104] + add x1, x1, x2 + ldr w2, [x29,124] + b .L3044 +.L3014: + cmp w1, w25 + bne .L3015 + ldr x1, [x0,8] + ldr x0, [x2,2112] + cmp x1, x0 + bne .L3015 + add x0, x21, :lo12:.LANCHOR0 + ldr w2, [x29,120] + str x8, [x29,104] + ldrh w0, [x0,2024] + mul w0, w25, w0 + sub w0, w0, w20 + ubfiz x0, x0, 9, 23 + add x0, x26, x0 +.L3044: + bl ftl_memcpy + ldr x8, [x29,104] +.L3015: + add x0, x19, :lo12:.LANCHOR2 + ldr x1, [x0,2048] + add x2, x1, x8 + ldr w3, [x1,x8] + cmn w3, #1 + bne .L3016 + ldr w1, [x0,408] + str w3, [x29,152] + add w1, w1, 1 + str w1, [x0,408] +.L3016: + ldr x0, [x2,16] + ldr w1, [x2,24] + ldr w0, [x0,8] + cmp w1, w0 + beq .L3017 + add x0, x19, :lo12:.LANCHOR2 + str x8, [x29,104] + ldr w1, [x0,408] + add w1, w1, 1 + str w1, [x0,408] + ldr x7, [x2,8] + ldr x6, [x2,16] + ldr w0, [x7,4] + str w0, [sp] + ldr x0, [x29,112] + ldr w1, [x2,24] + ldr w3, [x6] + ldr w4, [x6,4] + ldr w5, [x6,8] + ldr w2, [x2,4] + ldr w6, [x6,12] + ldr w7, [x7] + bl printk + ldr x8, [x29,104] +.L3017: + add x0, x19, :lo12:.LANCHOR2 + ldr x0, [x0,2048] + add x1, x0, x8 + ldr w0, [x0,x8] + cmp w0, 256 + bne .L3018 + ldr w0, [x1,4] + lsr x0, x0, 10 + bl P2V_block_in_plane + bl FtlGcRefreshBlock +.L3018: + ldr x0, [x29,160] + add x0, x0, 1 + str x0, [x29,160] + b .L3013 +.L3046: + mov w23, 0 + b .L3002 +.L3045: + add x19, x19, :lo12:.LANCHOR2 + ldrh w0, [x19,944] + cbz w0, .L3021 + mov w0, w24 + mov w1, 1 + bl ftl_do_gc +.L3021: + ldr w0, [x29,152] +.L3000: + sub sp, x29, #16 + ldp x19, x20, [sp,32] + ldp x21, x22, [sp,48] + ldp x23, x24, [sp,64] + ldp x25, x26, [sp,80] + ldp x27, x28, [sp,96] + ldp x29, x30, [sp,16] + add sp, sp, 208 + ret + .size ftl_read, .-ftl_read + .align 2 + .global FtlRead + .type FtlRead, %function +FtlRead: + stp x29, x30, [sp, -16]! + uxtb w0, w0 + add x29, sp, 0 + bl ftl_read + ldp x29, x30, [sp], 16 + ret + .size FtlRead, .-FtlRead + .align 2 + .global FtlInit + .type FtlInit, %function +FtlInit: + stp x29, x30, [sp, -48]! + mov w0, -1 + adrp x1, .LC76 + add x29, sp, 0 + str x21, [sp,32] + adrp x21, .LANCHOR1 + add x21, x21, :lo12:.LANCHOR1 + add x1, x1, :lo12:.LC76 + stp x19, x20, [sp,16] + adrp x20, .LANCHOR2 + adrp x19, .LANCHOR0 + str w0, [x21,504] + adrp x0, .LANCHOR4+452 + add x20, x20, :lo12:.LANCHOR2 + add x19, x19, :lo12:.LANCHOR0 + str wzr, [x0,#:lo12:.LANCHOR4+452] + adrp x0, .LC75 + add x0, x0, :lo12:.LC75 + str wzr, [x20,-96] + bl printk + add x0, x19, 168 + bl FtlConstantsInit + bl FtlMemInit + bl FtlVariablesInit + ldrh w0, [x19,1952] + bl FtlFreeSysBlkQueueInit + bl FtlLoadBbt + cbz w0, .L3049 + adrp x0, .LC149 + add x0, x0, :lo12:.LC149 + b .L3061 +.L3049: + bl FtlSysBlkInit + cbz w0, .L3051 + adrp x0, .LC150 + add x0, x0, :lo12:.LC150 +.L3061: + adrp x1, .LANCHOR3 + add x1, x1, :lo12:.LANCHOR3 + add x1, x1, 80 + bl printk + b .L3050 +.L3051: + mov w1, 1 + str w1, [x21,504] + bl ftl_do_gc + ldrh w0, [x20,32] + cmp w0, 15 + bhi .L3052 + mov w19, 1024 +.L3053: + mov w0, 1 + mov w1, w0 + bl ftl_do_gc + subs w19, w19, #1 + bne .L3053 + b .L3050 +.L3052: + ldrb w0, [x19,120] + cbz w0, .L3050 + mov w19, 128 +.L3055: + mov w0, 1 + mov w1, w0 + bl ftl_do_gc + subs w19, w19, #1 + bne .L3055 +.L3050: + mov w0, 0 + ldr x21, [sp,32] + ldp x19, x20, [sp,16] + ldp x29, x30, [sp], 48 + ret + .size FtlInit, .-FtlInit + .align 2 + .global rk_ftl_init + .type rk_ftl_init, %function +rk_ftl_init: + stp x29, x30, [sp, -32]! + mov w0, 2048 + add x29, sp, 0 + str x19, [sp,16] + adrp x19, .LANCHOR4 + add x19, x19, :lo12:.LANCHOR4 + bl ftl_malloc + add x1, x19, 464 + str x0, [x19,456] + add x0, x19, 48 + str xzr, [x19,48] + str xzr, [x19,464] + bl rknand_get_reg_addr + ldr x1, [x19,48] + mov w0, -1 + cbz x1, .L3063 + bl rk_nandc_irq_init + mov w1, 0 + ldr x0, [x19,456] + mov w2, w1 + mov w3, 2048 + bl FlashSramLoadStore + bl rknand_flash_cs_init + ldr x0, [x19,48] + bl FlashInit + mov w19, w0 + cbnz w0, .L3064 + bl FtlInit +.L3064: + adrp x0, .LC151 + mov w1, w19 + add x0, x0, :lo12:.LC151 + bl printk + mov w0, w19 +.L3063: + ldr x19, [sp,16] + ldp x29, x30, [sp], 32 + ret + .size rk_ftl_init, .-rk_ftl_init + .align 2 + .global ftl_fix_nand_power_lost_error + .type ftl_fix_nand_power_lost_error, %function +ftl_fix_nand_power_lost_error: + stp x29, x30, [sp, -144]! + adrp x0, .LANCHOR0 + add x29, sp, 0 + add x1, x0, :lo12:.LANCHOR0 + stp x25, x26, [sp,64] + stp x19, x20, [sp,16] + stp x21, x22, [sp,32] + stp x23, x24, [sp,48] + str x27, [sp,80] + mov x25, x0 + ldrb w1, [x1,120] + cbz w1, .L3067 + adrp x21, .LANCHOR4 + adrp x19, .LANCHOR2 + add x0, x21, :lo12:.LANCHOR4 + adrp x20, .LC152 + add x24, x19, :lo12:.LANCHOR2 + ldr x2, [x19,#:lo12:.LANCHOR2] + add x27, x24, 40 + ldrh w23, [x0,290] + add x0, x20, :lo12:.LC152 + add x26, x24, 88 + ubfiz x22, x23, 1, 16 + mov w1, w23 + ldrh w2, [x2,x22] + bl printk + ldrh w0, [x24,40] + bl FtlGcRefreshOpenBlock + ldrh w0, [x24,88] + mov w24, 4097 + bl FtlGcRefreshOpenBlock + mov x0, x27 + bl allocate_new_data_superblock + mov x0, x26 + bl allocate_new_data_superblock +.L3069: + subs w24, w24, #1 + beq .L3073 + mov w0, 1 + mov w1, w0 + bl ftl_do_gc + ldr x0, [x19,#:lo12:.LANCHOR2] + ldrh w0, [x0,x22] + cbnz w0, .L3069 +.L3073: + ldr x2, [x19,#:lo12:.LANCHOR2] + add x0, x20, :lo12:.LC152 + mov w1, w23 + ldrh w2, [x2,x22] + bl printk + ldr x0, [x19,#:lo12:.LANCHOR2] + ldrh w0, [x0,x22] + cbnz w0, .L3071 + add x0, x29, 96 + strh w23, [x29,96] + bl make_superblock + add x0, x25, :lo12:.LANCHOR0 + mov w6, 65535 + mov w7, 56 + ldrh w5, [x0,1948] + mov x0, 0 + mov w20, w0 +.L3074: + cmp w5, w0, uxth + bls .L3081 + add x1, x29, 96 + add x1, x1, x0, lsl 1 + ldrh w2, [x1,16] + cmp w2, w6 + beq .L3075 + add x4, x19, :lo12:.LANCHOR2 + lsl w2, w2, 10 + umull x1, w20, w7 + add w20, w20, 1 + ldr x3, [x4,-88] + uxth w20, w20 + add x3, x3, x1 + str w2, [x3,4] + ldr x2, [x4,-88] + add x1, x2, x1 + str xzr, [x1,8] + str xzr, [x1,16] +.L3075: + add x0, x0, 1 + b .L3074 +.L3081: + ldr x2, [x19,#:lo12:.LANCHOR2] + adrp x0, .LC153 + add x24, x19, :lo12:.LANCHOR2 + mov w1, w23 + add x0, x0, :lo12:.LC153 + ldrh w2, [x2,x22] + bl printk + ldr x0, [x24,-88] + mov w1, 0 + mov w2, w20 + bl FlashEraseBlocks + ldr x0, [x24,-88] + mov w1, 1 + mov w2, w20 + bl FlashEraseBlocks +.L3071: + add x21, x21, :lo12:.LANCHOR4 + mov w0, -1 + strh w0, [x21,290] +.L3067: + 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], 144 + ret + .size ftl_fix_nand_power_lost_error, .-ftl_fix_nand_power_lost_error + .align 2 + .global rk_ftl_garbage_collect + .type rk_ftl_garbage_collect, %function +rk_ftl_garbage_collect: + stp x29, x30, [sp, -16]! + add x29, sp, 0 + bl ftl_do_gc + ldp x29, x30, [sp], 16 + ret + .size rk_ftl_garbage_collect, .-rk_ftl_garbage_collect + .align 2 + .global ftl_write + .type ftl_write, %function +ftl_write: + stp x29, x30, [sp, -288]! + mov w4, w0 + mov w0, 0 + add x29, sp, 0 + stp x21, x22, [sp,32] + mov w21, w1 + adrp x1, .LANCHOR2 + stp x23, x24, [sp,48] + mov w23, w2 + add x2, x1, :lo12:.LANCHOR2 + stp x19, x20, [sp,16] + stp x25, x26, [sp,64] + stp x27, x28, [sp,80] + mov x24, x3 + str x1, [x29,176] + ldr w3, [x2,-96] + cbnz w3, .L3084 + cmp w4, 16 + bne .L3085 + add w0, w21, 256 + mov w1, w23 + mov x2, x24 + bl FtlVendorPartWrite + b .L3084 +.L3085: + adrp x20, .LANCHOR0 + add w26, w21, w23 + add x4, x20, :lo12:.LANCHOR0 + mov w0, -1 + ldr w1, [x4,2060] + cmp w26, w1 + bhi .L3084 + adrp x6, .LANCHOR4 + ldrh w1, [x4,2024] + add x28, x6, :lo12:.LANCHOR4 + sub w26, w26, #1 + mov w0, 2048 + ldr w3, [x4,2080] + udiv w25, w21, w1 + cmp w23, w1, lsl 1 + str w0, [x28,472] + str x6, [x29,152] + udiv w0, w26, w1 + str w0, [x29,216] + sub w26, w0, w25 + add w27, w26, 1 + ldr w0, [x2,208] + add w0, w27, w0 + str w0, [x2,208] + ldr w0, [x2,224] + add w0, w23, w0 + str w0, [x2,224] + cset w0, cs + str w0, [x29,220] + cbz w3, .L3087 + mov w0, 56 + sub w3, w3, #1 + umull x3, w3, w0 + ldr x0, [x4,2088] + add x3, x0, x3 + ldr w0, [x3,24] + cmp w25, w0 + bne .L3088 + ldr w0, [x2,212] + add w0, w0, 1 + str w0, [x2,212] + ldr w0, [x28,476] + add w0, w0, 1 + str w0, [x28,476] + msub w0, w25, w1, w21 + sub w1, w1, w0 + ubfiz x0, x0, 9, 23 + cmp w1, w23 + csel w19, w1, w23, ls + ldr x1, [x3,8] + lsl w22, w19, 9 + add x0, x1, x0 + mov w2, w22 + mov x1, x24 + bl ftl_memcpy + cbnz w26, .L3089 + ldr w0, [x28,476] + cmp w0, 2 + bgt .L3089 +.L3122: + mov w0, 0 + b .L3084 +.L3089: + sub w23, w23, w19 + add w21, w21, w19 + add x24, x24, x22 + add w25, w25, 1 + mov w27, w26 +.L3088: + ldr x0, [x29,152] + add x0, x0, :lo12:.LANCHOR4 + str wzr, [x0,476] +.L3087: + ldr w1, [x29,216] + mov w0, w25 + bl FtlCacheMetchLpa + cbz w0, .L3090 + bl FtlCacheWriteBack +.L3090: + ldr x0, [x29,152] + ldr x1, [x29,176] + add x0, x0, :lo12:.LANCHOR4 + str w25, [x29,200] + add x22, x1, :lo12:.LANCHOR2 + add x19, x22, 40 + str x19, [x29,184] + str x19, [x0,440] + adrp x0, .LC154 + add x0, x0, :lo12:.LC154 + str x0, [x29,112] +.L3091: + cbz w27, .L3151 + ldrh w0, [x19,4] + cbnz w0, .L3092 + ldr x1, [x29,184] + adrp x28, .LANCHOR1 + cmp x19, x1 + bne .L3093 + add x0, x22, 88 + ldrh w19, [x0,4] + cbnz w19, .L3094 + bl allocate_new_data_superblock + add x0, x28, :lo12:.LANCHOR1 + str w19, [x0,3172] +.L3094: + ldr x0, [x29,184] + add x28, x28, :lo12:.LANCHOR1 + add x19, x22, 88 + bl allocate_new_data_superblock + ldr w0, [x28,3172] + cbnz w0, .L3095 +.L3096: + ldr x19, [x29,184] + b .L3095 +.L3093: + add x28, x28, :lo12:.LANCHOR1 + str w0, [x28,3172] + ldr x0, [x29,184] + ldrh w0, [x0,4] + cbnz w0, .L3096 + mov x0, x19 + bl allocate_new_data_superblock +.L3095: + ldrh w0, [x19,4] + cbnz w0, .L3097 + mov x0, x19 + bl allocate_new_data_superblock +.L3097: + ldr x0, [x29,152] + add x0, x0, :lo12:.LANCHOR4 + str x19, [x0,440] +.L3092: + add x2, x20, :lo12:.LANCHOR0 + ldr w0, [x22,2044] + ldrh w1, [x19,4] + str xzr, [x29,208] + ldr w2, [x2,2080] + sub w0, w0, w2 + cmp w1, w0 + csel w0, w1, w0, ls + cmp w0, w27 + csel w0, w0, w27, ls + str w0, [x29,148] + ldr w0, [x29,220] + and w0, w0, 1 + str w0, [x29,124] + add w0, w23, w21 + str w0, [x29,144] +.L3098: + ldr w0, [x29,208] + ldr w2, [x29,148] + ldr w1, [x29,200] + cmp w0, w2 + add w26, w1, w0 + bcs .L3152 + ldrh w1, [x19,4] + cbz w1, .L3128 + ldr w1, [x29,216] + cmp w26, w1 + cset w7, eq + cbz w0, .L3100 + ldr w1, [x29,124] + tst w7, w1 + beq .L3100 + add x1, x20, :lo12:.LANCHOR0 + ldr w2, [x29,144] + ldrh w1, [x1,2024] + msub w2, w26, w1, w2 + cmp w2, w1 + bne .L3128 +.L3100: + add x1, x29, 228 + mov w2, 0 + mov w0, w26 + str x7, [x29,104] + bl log2phys + mov x0, x19 + bl get_new_active_ppa + add x4, x20, :lo12:.LANCHOR0 + mov w5, 56 + str x4, [x29,192] + str x5, [x29,160] + ldr w6, [x4,2080] + ldr x2, [x4,2088] + umull x1, w6, w5 + add x2, x2, x1 + str w0, [x2,4] + ldrh w2, [x4,2030] + ldr x0, [x4,2088] + add x1, x0, x1 + mul w0, w2, w6 + and x0, x0, 4294967292 + str x0, [x29,136] + ldr x0, [x22,2136] + ldr x3, [x29,136] + str x0, [x29,128] + add x28, x0, x3 + ldrh w0, [x4,2028] + str x28, [x1,16] + str w26, [x1,24] + mul w0, w0, w6 + ldr x6, [x22,2096] + and x0, x0, 4294967292 + add x0, x6, x0 + str x0, [x1,8] + mov x0, x28 + mov w1, 0 + bl ftl_memset + cmp w26, w25 + ldr x4, [x29,192] + cset w0, eq + str w0, [x29,204] + cbnz w0, .L3131 + ldr x7, [x29,104] + ldr x5, [x29,160] + cbz w7, .L3101 + ldr w0, [x29,144] + ldrh w2, [x4,2024] + msub w2, w26, w2, w0 + uxth w0, w2 + str w0, [x29,192] + ldr w0, [x29,204] + str w0, [x29,160] + b .L3104 +.L3131: + ldrh w2, [x4,2024] + udiv w0, w21, w2 + msub w0, w0, w2, w21 + str w0, [x29,160] + sub w2, w2, w0 + cmp w2, w23 + csel w0, w2, w23, ls + str w0, [x29,192] +.L3104: + add x2, x20, :lo12:.LANCHOR0 + ldr w1, [x29,192] + ldrh w0, [x2,2024] + cmp w1, w0 + bne .L3105 + ldr w0, [x29,204] + mov x1, x24 + cbnz w0, .L3106 + ldr w0, [x29,192] + mul w1, w0, w26 + sub w1, w1, w21 + ubfiz x1, x1, 9, 23 + add x1, x24, x1 +.L3106: + ldr w2, [x29,220] + mov w0, 56 + add x4, x20, :lo12:.LANCHOR0 + cbz w2, .L3107 + ldr w2, [x4,2080] + umull x0, w2, w0 + ldr x2, [x4,2088] + add x0, x2, x0 + b .L3148 +.L3107: + ldr w2, [x4,2080] + umull x0, w2, w0 + ldr x2, [x4,2088] + add x0, x2, x0 + ldr x0, [x0,8] + b .L3149 +.L3105: + ldr w0, [x29,228] + cmn w0, #1 + beq .L3109 + str w0, [x29,236] + mov w1, 56 + ldr w0, [x2,2080] + str w26, [x29,256] + umull x0, w0, w1 + ldr x1, [x2,2088] + mov w2, 0 + add x0, x1, x0 + ldr x1, [x0,8] + ldr x0, [x0,16] + str x1, [x29,240] + mov w1, 1 + str x0, [x29,248] + add x0, x29, 232 + bl FlashReadPages + ldr w0, [x29,232] + cmn w0, #1 + bne .L3110 + ldr w0, [x22,408] + add w0, w0, 1 + str w0, [x22,408] + b .L3112 +.L3110: + ldr w0, [x28,8] + cmp w0, w26 + beq .L3112 + ldr w0, [x22,408] + mov w2, w26 + add w0, w0, 1 + str w0, [x22,408] + ldr x0, [x29,112] + ldr w1, [x28,8] + bl printk + b .L3112 +.L3109: + ldr w0, [x2,2080] + mov w1, 56 + umull x0, w0, w1 + ldr x1, [x2,2088] + ldrh w2, [x2,2028] + add x0, x1, x0 + mov w1, 0 + ldr x0, [x0,8] + bl ftl_memset +.L3112: + ldr w1, [x29,192] + mov w0, 56 + lsl w2, w1, 9 + ldr w1, [x29,204] + cbz w1, .L3113 + add x1, x20, :lo12:.LANCHOR0 + ldr w4, [x1,2080] + umull x0, w4, w0 + ldr x4, [x1,2088] + add x4, x4, x0 + ldr x0, [x29,160] + ubfiz x0, x0, 9, 23 + ldr x1, [x4,8] + add x0, x1, x0 + mov x1, x24 + b .L3150 +.L3113: + add x5, x20, :lo12:.LANCHOR0 + ldr w4, [x5,2080] + ldr x1, [x5,2088] + umull x0, w4, w0 + add x0, x1, x0 + ldrh w1, [x5,2024] + mul w1, w26, w1 + ldr x0, [x0,8] + sub w1, w1, w21 + ubfiz x1, x1, 9, 23 + add x1, x24, x1 + b .L3150 +.L3101: + ldr w0, [x29,220] + ldrh w1, [x4,2024] + ldr w2, [x4,2080] + cbz w0, .L3114 + mul w1, w26, w1 + umull x0, w2, w5 + sub w1, w1, w21 + ldr x2, [x4,2088] + ubfiz x1, x1, 9, 23 + add x0, x2, x0 + add x1, x24, x1 +.L3148: + str x1, [x0,8] + b .L3108 +.L3114: + umull x0, w2, w5 + ldr x2, [x4,2088] + mul w1, w26, w1 + add x0, x2, x0 + sub w1, w1, w21 + ubfiz x1, x1, 9, 23 + ldr x0, [x0,8] + add x1, x24, x1 +.L3149: + ldrh w2, [x4,2028] +.L3150: + bl ftl_memcpy +.L3108: + ldr x1, [x29,128] + mov w0, -3947 + ldr x2, [x29,136] + strh w0, [x1,x2] + add x1, x20, :lo12:.LANCHOR0 + str w26, [x28,8] + ldr w0, [x22,236] + str w0, [x28,4] + add w0, w0, 1 + cmn w0, #1 + csel w0, w0, wzr, ne + str w0, [x22,236] + ldr w0, [x29,228] + str w0, [x28,12] + ldrh w0, [x19] + strh w0, [x28,2] + ldr w0, [x1,2080] + add w0, w0, 1 + str w0, [x1,2080] + ldr x0, [x29,208] + add x0, x0, 1 + str x0, [x29,208] + b .L3098 +.L3152: + str w26, [x29,200] + mov x0, x2 + b .L3099 +.L3128: + str w26, [x29,200] +.L3099: + sub w27, w27, w0 + ldr w0, [x29,220] + cbnz w0, .L3118 + add x0, x20, :lo12:.LANCHOR0 + ldr w1, [x0,2080] + ldr w0, [x22,2044] + cmp w1, w0 + bcs .L3118 + ldrh w0, [x19,4] + cbz w0, .L3118 +.L3120: + str wzr, [x29,220] + b .L3091 +.L3118: + bl FtlCacheWriteBack + add x0, x20, :lo12:.LANCHOR0 + cmp w27, 1 + str wzr, [x0,2080] + bhi .L3091 + b .L3120 +.L3151: + ldr w1, [x29,216] + mov w0, w27 + sub w1, w1, w25 + bl ftl_do_gc + ldr x0, [x29,176] + add x0, x0, :lo12:.LANCHOR2 + ldrh w1, [x0,32] + cmp w1, 31 + bhi .L3122 + mov w1, 128 + mov w19, 16 + strh w1, [x0,850] + strh w1, [x0,848] +.L3123: + mov w0, 0 + mov w1, 1 + bl ftl_do_gc + ldr x0, [x29,176] + add x0, x0, :lo12:.LANCHOR2 + ldr w0, [x0,-96] + cbnz w0, .L3122 + subs w19, w19, #1 + bne .L3123 + b .L3122 +.L3084: + 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], 288 + ret + .size ftl_write, .-ftl_write + .align 2 + .global ftl_vendor_write + .type ftl_vendor_write, %function +ftl_vendor_write: + stp x29, x30, [sp, -16]! + mov w5, w0 + mov w4, w1 + add x29, sp, 0 + mov x3, x2 + mov w1, w5 + mov w2, w4 + mov w0, 16 + bl ftl_write + ldp x29, x30, [sp], 16 + ret + .size ftl_vendor_write, .-ftl_vendor_write + .align 2 + .global FlashBootVendorWrite + .type FlashBootVendorWrite, %function +FlashBootVendorWrite: + stp x29, x30, [sp, -48]! + add x29, sp, 0 + str x0, [x29,24] + str x1, [x29,32] + str x2, [x29,40] + bl rknand_device_lock + ldr x1, [x29,32] + ldr x2, [x29,40] + ldr x0, [x29,24] + bl ftl_vendor_write + str x0, [x29,40] + bl rknand_device_unlock + ldr x0, [x29,40] + ldp x29, x30, [sp], 48 + ret + .size FlashBootVendorWrite, .-FlashBootVendorWrite + .align 2 + .global ftl_sys_write + .type ftl_sys_write, %function +ftl_sys_write: + stp x29, x30, [sp, -16]! + mov w4, w1 + mov x3, x2 + add x29, sp, 0 + add w1, w0, 256 + mov w2, w4 + mov w0, 16 + bl ftl_write + ldp x29, x30, [sp], 16 + ret + .size ftl_sys_write, .-ftl_sys_write + .align 2 + .global StorageSysDataStore + .type StorageSysDataStore, %function +StorageSysDataStore: + stp x29, x30, [sp, -32]! + add x29, sp, 0 + str x0, [x29,16] + str x1, [x29,24] + bl rknand_device_lock + ldr x2, [x29,24] + mov w1, 1 + ldr x0, [x29,16] + bl ftl_sys_write + str x0, [x29,24] + bl rknand_device_unlock + ldr x0, [x29,24] + ldp x29, x30, [sp], 32 + ret + .size StorageSysDataStore, .-StorageSysDataStore + .align 2 + .global FtlCheckVpc + .type FtlCheckVpc, %function +FtlCheckVpc: + stp x29, x30, [sp, -96]! + adrp x1, .LANCHOR3 + adrp x0, .LC106 + add x1, x1, :lo12:.LANCHOR3 + add x29, sp, 0 + add x1, x1, 88 + add x0, x0, :lo12:.LC106 + stp x21, x22, [sp,32] + adrp x21, .LANCHOR4 + adrp x22, .LANCHOR0 + stp x19, x20, [sp,16] + stp x23, x24, [sp,48] + stp x25, x26, [sp,64] + add x20, x21, :lo12:.LANCHOR4 + bl printk + add x0, x20, 480 + mov w1, 0 + mov x2, 8192 + mov w19, 0 + bl memset +.L3158: + add x24, x22, :lo12:.LANCHOR0 + adrp x23, .LANCHOR0 + ldr w0, [x24,2096] + cmp w19, w0 + bcs .L3175 + mov w0, w19 + add x1, x29, 92 + mov w2, 0 + bl log2phys + ldr w0, [x29,92] + cmn w0, #1 + beq .L3159 + lsr w0, w0, 10 + bl P2V_block_in_plane + uxth w0, w0 + add x2, x20, 480 + ldrh w1, [x2,w0,sxtw 1] + add w1, w1, 1 + strh w1, [x2,w0,sxtw 1] +.L3159: + add w19, w19, 1 + b .L3158 +.L3175: + adrp x20, .LANCHOR2 + ldrh w3, [x24,1956] + adrp x0, .LC155 + mov w2, 2 + add x0, x0, :lo12:.LC155 + add x22, x21, :lo12:.LANCHOR4 + ldr x1, [x20,#:lo12:.LANCHOR2] + mov w19, 0 + bl rknand_print_hex + ldrh w3, [x24,1956] + adrp x0, .LC156 + adrp x24, .LC157 + add x0, x0, :lo12:.LC156 + add x1, x22, 480 + mov w2, 2 + add x24, x24, :lo12:.LC157 + bl rknand_print_hex +.L3161: + add x0, x23, :lo12:.LANCHOR0 + ldrh w0, [x0,1956] + cmp w0, w19 + bls .L3176 + ubfiz x0, x19, 1, 16 + ldr x1, [x20,#:lo12:.LANCHOR2] + ldrh w2, [x1,x0] + add x0, x22, 480 + ldrh w3, [x0,w19,sxtw 1] + cmp w2, w3 + beq .L3162 + mov x0, x24 + mov w1, w19 + bl printk +.L3162: + add w19, w19, 1 + uxth w19, w19 + b .L3161 +.L3176: + add x1, x20, :lo12:.LANCHOR2 + ldr x0, [x1,24] + cbz x0, .L3157 + ldr x19, [x1,-16] + adrp x23, .LC158 + ldrh w24, [x1,32] + mov w22, 0 + sub x19, x0, x19 + mov x0, -6148914691236517206 + asr x19, x19, 1 + add x23, x23, :lo12:.LC158 + add x21, x21, :lo12:.LANCHOR4 + mov w25, 6 + madd x19, x0, x19, x19 + mov w26, 65535 + uxth w19, w19 +.L3165: + cmp w22, w24 + beq .L3157 + ubfiz x0, x19, 1, 16 + ldr x1, [x20,#:lo12:.LANCHOR2] + ldrh w2, [x1,x0] + cbz w2, .L3166 + add x3, x21, 480 + mov x0, x23 + mov w1, w19 + ldrh w3, [x3,w19,sxtw 1] + bl printk +.L3166: + add x0, x20, :lo12:.LANCHOR2 + umull x19, w19, w25 + ldr x0, [x0,-16] + ldrh w19, [x0,x19] + cmp w19, w26 + beq .L3157 + add w22, w22, 1 + uxth w22, w22 + b .L3165 +.L3157: + 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 FtlCheckVpc, .-FtlCheckVpc + .align 2 + .global FtlDumpSysBlock + .type FtlDumpSysBlock, %function +FtlDumpSysBlock: + sub sp, sp, #96 + stp x29, x30, [sp,16] + add x29, sp, 16 + stp x19, x20, [sp,32] + stp x21, x22, [sp,48] + adrp x19, .LANCHOR4 + adrp x21, .LANCHOR2 + stp x23, x24, [sp,64] + add x19, x19, :lo12:.LANCHOR4 + uxth w23, w0 + add x0, x21, :lo12:.LANCHOR2 + str x25, [sp,80] + add x19, x19, 160 + adrp x22, .LC159 + adrp x24, .LC160 + lsl w25, w23, 10 + ldr x1, [x0,2072] + mov w20, 0 + ldr x0, [x0,2120] + add x22, x22, :lo12:.LC159 + str x1, [x19,8] + add x24, x24, :lo12:.LC160 + str x0, [x19,16] +.L3178: + adrp x0, .LANCHOR0+2020 + ldrh w0, [x0,#:lo12:.LANCHOR0+2020] + cmp w20, w0 + bge .L3184 + mov w1, 1 + orr w0, w20, w25 + mov w2, w1 + str w0, [x19,4] + mov x0, x19 + bl FlashReadPages + ldr x0, [x19,8] + mov w1, w23 + ldr x7, [x19,16] + ldr w0, [x0] + str w0, [sp] + mov x0, x22 + ldr w4, [x7] + ldr w5, [x7,4] + ldr w6, [x7,8] + ldr w2, [x19] + ldr w3, [x19,4] + ldr w7, [x7,12] + bl printk + ldr x0, [x19,16] + ldr w0, [x0] + cmn w0, #1 + beq .L3179 + add x1, x21, :lo12:.LANCHOR2 + mov x0, x24 + mov w2, 4 + mov w3, 768 + ldr x1, [x1,2072] + bl rknand_print_hex +.L3179: + add w20, w20, 1 + sxth w20, w20 + b .L3178 +.L3184: + sub sp, x29, #16 + ldp x19, x20, [sp,32] + ldp x21, x22, [sp,48] + ldp x23, x24, [sp,64] + ldr x25, [sp,80] + ldp x29, x30, [sp,16] + add sp, sp, 96 + ret + .size FtlDumpSysBlock, .-FtlDumpSysBlock + .align 2 + .global dump_map_info + .type dump_map_info, %function +dump_map_info: + sub sp, sp, #128 + stp x29, x30, [sp,16] + add x29, sp, 16 + stp x19, x20, [sp,32] + adrp x19, .LANCHOR0 + add x0, x19, :lo12:.LANCHOR0 + stp x23, x24, [sp,64] + stp x25, x26, [sp,80] + stp x21, x22, [sp,48] + stp x27, x28, [sp,96] + adrp x23, .LC161 + mov w25, 56 + ldrh w21, [x0,1956] + adrp x24, .LANCHOR2 + mov w26, 4 + add x23, x23, :lo12:.LC161 +.L3186: + add x2, x19, :lo12:.LANCHOR0 + ldrh w0, [x2,1958] + cmp w0, w21 + bls .L3199 + mov x22, 0 + ldrh w5, [x2,1948] + ldrh w4, [x2,2030] + mov w27, w22 + mov x20, x2 +.L3195: + cmp w5, w22, uxth + bls .L3200 + add x0, x20, 1976 + mov w1, w21 + str x4, [x29,96] + str x5, [x29,104] + ldrb w0, [x0,x22] + bl V2P_block + uxth w28, w0 + bl FtlBbmIsBadBlock + ldr x5, [x29,104] + ldr x4, [x29,96] + cbnz w0, .L3187 + add x3, x24, :lo12:.LANCHOR2 + lsl w28, w28, 10 + umull x0, w27, w25 + mul w2, w27, w4 + ldr x1, [x3,2048] + add w27, w27, 1 + add x1, x1, x0 + uxth w27, w27 + sdiv w2, w2, w26 + str w28, [x1,4] + ldr x1, [x3,2048] + add x0, x1, x0 + ldr x1, [x3,880] + str x1, [x0,8] + ldr x1, [x3,888] + add x2, x1, x2, sxtw 2 + str x2, [x0,16] +.L3187: + add x22, x22, 1 + b .L3195 +.L3200: + cbz w27, .L3190 + add x0, x24, :lo12:.LANCHOR2 + mov w1, w27 + mov w2, 1 + mov x20, 0 + adrp x22, .LANCHOR2 + mov x28, 56 + ldr x0, [x0,2048] + bl FlashReadPages +.L3191: + cmp w27, w20, uxth + bls .L3190 + add x0, x22, :lo12:.LANCHOR2 + ldr x3, [x0,2048] + madd x3, x20, x28, x3 + add x20, x20, 1 + ldr x7, [x3,8] + ldr x6, [x3,16] + ldr w2, [x3,4] + ldr w0, [x7,4] + str w0, [sp] + ubfx x1, x2, 10, 16 + mov x0, x23 + ldr w3, [x6] + ldr w4, [x6,4] + ldr w5, [x6,8] + ldr w7, [x7] + ldr w6, [x6,12] + bl printk + b .L3191 +.L3190: + add w21, w21, 1 + uxth w21, w21 + b .L3186 +.L3199: + adrp x20, .LANCHOR4 + adrp x23, .LC109 + add x20, x20, :lo12:.LANCHOR4 + mov w22, 0 + adrp x27, .LANCHOR2 + add x20, x20, 160 + add x23, x23, :lo12:.LC109 +.L3194: + add x21, x27, :lo12:.LANCHOR2 + adrp x26, .LANCHOR2 + ldrh w0, [x21,2320] + cmp w22, w0 + bge .L3197 + sbfiz x24, x22, 1, 32 + mov w21, 0 +.L3198: + add x0, x19, :lo12:.LANCHOR0 + ldrh w0, [x0,2020] + cmp w21, w0 + bge .L3201 + add x25, x26, :lo12:.LANCHOR2 + mov w1, 1 + mov w2, w1 + ldr x0, [x25,2176] + ldrh w0, [x0,x24] + orr w0, w21, w0, lsl 10 + str w0, [x20,4] + mov x0, x20 + add w21, w21, 1 + bl FlashReadPages + sxth w21, w21 + ldr x0, [x20,8] + ldr x1, [x25,2176] + ldr x7, [x20,16] + ldr w2, [x0] + ldrh w1, [x1,x24] + str w2, [sp] + ldr w0, [x0,4] + str w0, [sp,8] + mov x0, x23 + ldr w4, [x7] + ldr w5, [x7,4] + ldr w6, [x7,8] + ldr w2, [x20] + ldr w3, [x20,4] + ldr w7, [x7,12] + bl printk + b .L3198 +.L3201: + add w22, w22, 1 + sxth w22, w22 + b .L3194 +.L3197: + add x19, x19, :lo12:.LANCHOR0 + ldr x1, [x21,2176] + adrp x0, .LC162 + mov w2, 2 + add x0, x0, :lo12:.LC162 + ldr w3, [x19,2048] + bl rknand_print_hex + ldr x1, [x21,2216] + adrp x0, .LC163 + ldrh w3, [x19,2056] + add x0, x0, :lo12:.LC163 + mov w2, 4 + bl rknand_print_hex + ldr x1, [x21,2224] + adrp x0, .LC164 + ldrh w3, [x19,2056] + add x0, x0, :lo12:.LC164 + mov w2, 4 + bl rknand_print_hex + sub sp, x29, #16 + ldp x19, x20, [sp,32] + ldp x21, x22, [sp,48] + ldp x23, x24, [sp,64] + ldp x25, x26, [sp,80] + ldp x27, x28, [sp,96] + ldp x29, x30, [sp,16] + add sp, sp, 128 + ret + .size dump_map_info, .-dump_map_info + .align 2 + .global flash_boot_enter_slc_mode + .type flash_boot_enter_slc_mode, %function +flash_boot_enter_slc_mode: + adrp x1, .LANCHOR0+1856 + uxtb w0, w0 + stp x29, x30, [sp, -16]! + add x29, sp, 0 + ldr w2, [x1,#:lo12:.LANCHOR0+1856] + mov w1, 12336 + movk w1, 0x5638, lsl 16 + cmp w2, w1 + bne .L3202 + bl flash_enter_slc_mode +.L3202: + ldp x29, x30, [sp], 16 + ret + .size flash_boot_enter_slc_mode, .-flash_boot_enter_slc_mode + .align 2 + .global flash_boot_exit_slc_mode + .type flash_boot_exit_slc_mode, %function +flash_boot_exit_slc_mode: + adrp x1, .LANCHOR0+1856 + uxtb w0, w0 + stp x29, x30, [sp, -16]! + add x29, sp, 0 + ldr w2, [x1,#:lo12:.LANCHOR0+1856] + mov w1, 12336 + movk w1, 0x5638, lsl 16 + cmp w2, w1 + bne .L3204 + bl flash_exit_slc_mode +.L3204: + ldp x29, x30, [sp], 16 + ret + .size flash_boot_exit_slc_mode, .-flash_boot_exit_slc_mode + .align 2 + .type IdBlockReadData, %function +IdBlockReadData: + stp x29, x30, [sp, -128]! + add x29, sp, 0 + stp x19, x20, [sp,16] + adrp x19, .LANCHOR0 + add x19, x19, :lo12:.LANCHOR0 + stp x23, x24, [sp,48] + mov w23, w0 + ldr x0, [x19,744] + stp x25, x26, [sp,64] + stp x21, x22, [sp,32] + stp x27, x28, [sp,80] + mov w26, w1 + mov x21, x2 + ldrb w27, [x0,9] + mov w1, w23 + ldrh w20, [x0,10] + adrp x0, .LC165 + add x0, x0, :lo12:.LC165 + mov w2, w26 + mov w25, 0 + mul w20, w27, w20 + bl printk + mov w6, 4 + adrp x7, .LANCHOR4 + uxth w20, w20 + udiv w24, w23, w20 + msub w24, w24, w20, w23 + sub w28, w23, w24 + mul w3, w24, w27 + ubfx x3, x3, 2, 2 +.L3207: + cmp w25, w26 + bcs .L3213 + add w5, w25, w24 + add x0, x19, 196 + ubfx x5, x5, 2, 16 + sub w20, w6, w3 + uxth w20, w20 + ldrh w4, [x0,w5,sxtw 1] + ldrb w0, [x19,120] + cbz w0, .L3208 + ldr w1, [x19,1856] + mov w0, 12336 + movk w0, 0x5638, lsl 16 + cmp w1, w0 + csel w4, w4, w5, ne +.L3208: + ldr x0, [x19,744] + add w3, w3, w28 + str x6, [x29,96] + madd w22, w4, w27, w3 + ldrb w1, [x0,9] + add x0, x7, :lo12:.LANCHOR4 + ldrb w4, [x19,1936] + str x7, [x29,120] + ldrb w0, [x0,98] + str x4, [x29,112] + str x1, [x29,104] + bl FlashBchSel + mov w0, 0 + bl flash_boot_enter_slc_mode + ldr x1, [x29,104] + mov x2, x21 + mov x3, 0 + mov w0, 0 + udiv w1, w22, w1 + bl FlashReadPage + mov w0, 0 + bl flash_boot_exit_slc_mode + ldr x4, [x29,112] + mov w0, w4 + bl FlashBchSel + ubfiz x0, x20, 9, 16 + add w20, w20, w25 + add x21, x21, x0 + mov w3, 0 + uxth w25, w20 + ldr x6, [x29,96] + ldr x7, [x29,120] + b .L3207 +.L3213: + adrp x0, .LC166 + mov w1, w23 + mov w2, w26 + mov w3, 0 + add x0, x0, :lo12:.LC166 + bl printk + 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], 128 + ret + .size IdBlockReadData, .-IdBlockReadData + .align 2 + .global write_idblock + .type write_idblock, %function +write_idblock: + stp x29, x30, [sp, -304]! + add x29, sp, 0 + stp x23, x24, [sp,48] + adrp x24, .LANCHOR0 + mov x23, x2 + stp x19, x20, [sp,16] + mov w19, w0 + add x0, x24, :lo12:.LANCHOR0 + stp x21, x22, [sp,32] + stp x25, x26, [sp,64] + stp x27, x28, [sp,80] + mov x22, x1 + mov x28, x24 + ldr x0, [x0,744] + ldrb w21, [x0,9] + ldrh w20, [x0,10] + mov w0, 59392 + movk w0, 0x3, lsl 16 + bl ftl_malloc + mov x26, x0 + mov w0, -1 + cbz x26, .L3252 + add w19, w19, 511 + lsr w19, w19, 9 + cmp w19, 8 + bls .L3236 + cmp w19, 500 + bhi .L3252 + b .L3216 +.L3236: + mov w19, 8 +.L3216: + ldr w2, [x22] + mov w1, 35899 + movk w1, 0xfcdc, lsl 16 + mov w0, -1 + cmp w2, w1 + bne .L3252 + mul w21, w20, w21 + add x3, x22, 253952 + mov w2, 63999 + add x3, x3, 2044 + mov w4, 4097 + uxth w21, w21 + add w0, w21, w0 + add w0, w0, w19 + udiv w0, w0, w21 + str w0, [x29,224] + mov w0, 0 +.L3220: + ldr w1, [x3] + cbnz w1, .L3217 + ldr w1, [x22,w0,uxtw 2] + add w0, w0, 1 + cmp w0, w4 + sub w2, w2, #1 + csel w0, w0, wzr, cc + str w1, [x3],-4 + cmp w2, 4096 + bne .L3220 + b .L3219 +.L3217: + adrp x0, .LC167 + add x0, x0, :lo12:.LC167 + bl printk +.L3219: + adrp x0, .LC168 + mov w3, 5 + add x20, x28, :lo12:.LANCHOR0 + add x0, x0, :lo12:.LC168 + mov x1, x23 + mov w2, 4 + adrp x24, .LANCHOR4 + bl rknand_print_hex + ldr w1, [x22,512] + adrp x0, .LC169 + ldrb w2, [x20,9] + add x0, x0, :lo12:.LC169 + bl printk + add x4, x24, :lo12:.LANCHOR4 + adrp x0, .LC170 + ldrh w3, [x20,194] + mov w1, w19 + add x0, x0, :lo12:.LC170 + mov w2, w19 + ldr w4, [x4,92] + bl printk + str x24, [x29,208] + ldrb w0, [x20,9] + ldr w1, [x22,512] + cmp w1, w0 + bls .L3221 + str w0, [x22,512] +.L3221: + lsl w0, w19, 7 + str w0, [x29,204] + adrp x0, .LC171 + mov x20, 0 + add x0, x0, :lo12:.LC171 + str x0, [x29,192] + adrp x0, .LC172 + str w20, [x29,236] + add x0, x0, :lo12:.LC172 + str x0, [x29,184] + adrp x0, .LC173 + add x0, x0, :lo12:.LC173 + str x0, [x29,176] +.L3234: + add x0, x28, :lo12:.LANCHOR0 + ldr w1, [x23,x20,lsl 2] + str w20, [x29,232] + ldrb w0, [x0,9] + cmp w1, w0 + bcs .L3222 + ldr x0, [x29,208] + add x0, x0, :lo12:.LANCHOR4 + ldr w0, [x0,92] + cmp w1, w0 + bcc .L3222 + ldr w0, [x29,224] + cmp w0, 1 + cset w0, hi + str w0, [x29,228] + uxtw x0, w20 + cbz w0, .L3223 + ldr w0, [x29,228] + cbz w0, .L3223 + uxtw x0, w20 + sub w0, w0, #1 + ldr w0, [x23,x0,lsl 2] + add w0, w0, 1 + cmp w1, w0 + beq .L3222 +.L3223: + mov w1, 0 + mov x2, 512 + mov x0, x26 + bl memset + ldr w24, [x23,x20,lsl 2] + add x0, x28, :lo12:.LANCHOR0 + mov w2, w19 + mul w24, w21, w24 + ldr x0, [x0,744] + mov w1, w24 + ldrb w27, [x0,9] + ldrh w25, [x0,10] + ldr x0, [x29,192] + mul w25, w27, w25 + bl printk + mov w0, 0 + uxth w25, w25 + bl flash_boot_enter_slc_mode + udiv w1, w24, w27 + mov w2, 0 + mov w0, 0 + bl FlashEraseBlock + cmp w19, w25 + mov w2, 1 + bls .L3224 + mov w2, 0 + mov w0, 0 + add w1, w24, w25 + bl FlashEraseBlock + mov w2, 2 +.L3224: + mov w0, 0 + str x2, [x29,216] + bl flash_boot_exit_slc_mode + add x4, x28, :lo12:.LANCHOR0 + ldr x2, [x29,216] + udiv w8, w24, w25 + mov w6, 0 + mov w10, 1073741823 + mov w11, 61424 + ldr x1, [x4,744] + ldrh w0, [x1,10] + ldrb w5, [x1,12] + lsl w0, w0, 2 + msub w8, w8, w25, w24 + mul w0, w0, w2 + mov x25, x22 + sdiv w5, w0, w5 + sub w0, w24, w8 + str w0, [x29,216] +.L3225: + cmp w6, w5 + bcs .L3263 + add w0, w6, w8 + lsr w0, w0, 2 + uxth w1, w0 + and w0, w0, 65535 + cbz w1, .L3226 + add w2, w0, 1 + add x1, x4, 196 + ldrb w3, [x4,120] + ldrh w1, [x1,w2,sxtw 1] + cbz w3, .L3227 + ldr w7, [x4,1856] + mov w3, 12336 + movk w3, 0x5638, lsl 16 + cmp w7, w3 + csel w1, w1, w2, ne +.L3227: + add w1, w1, w10 + lsl w1, w1, 2 + str w1, [x29,240] +.L3226: + add x1, x4, 196 + str w11, [x29,244] + ldrh w7, [x1,w0,sxtw 1] + ldrb w1, [x4,120] + cbz w1, .L3228 + ldr w2, [x4,1856] + mov w1, 12336 + movk w1, 0x5638, lsl 16 + cmp w2, w1 + csel w7, w7, w0, ne +.L3228: + ldr w0, [x29,216] + ldrb w12, [x4,1936] + str x11, [x29,104] + madd w2, w7, w27, w0 + ldr x0, [x29,208] + str x10, [x29,112] + add x0, x0, :lo12:.LANCHOR4 + str x6, [x29,120] + str x8, [x29,128] + str x5, [x29,136] + ldrb w0, [x0,98] + str x7, [x29,144] + str x12, [x29,160] + str x2, [x29,152] + str x4, [x29,168] + bl FlashBchSel + mov w0, 0 + bl flash_boot_enter_slc_mode + ldr x4, [x29,168] + add x3, x29, 240 + ldr x2, [x29,152] + ldr x0, [x4,744] + ldrb w1, [x0,9] + mov w0, 0 + udiv w1, w2, w1 + mov x2, x25 + add x25, x25, 2048 + bl FlashProgPage + mov w0, 0 + bl flash_boot_exit_slc_mode + ldr x12, [x29,160] + mov w0, w12 + bl FlashBchSel + ldr w1, [x29,216] + mov w0, 0 + ldr x7, [x29,144] + udiv w1, w1, w27 + add w2, w7, 1 + bl FlashPageProgMsbFFData + ldr x6, [x29,120] + ldr x11, [x29,104] + add w6, w6, 4 + ldr x10, [x29,112] + ldr x8, [x29,128] + uxth w6, w6 + ldr x5, [x29,136] + ldr x4, [x29,168] + b .L3225 +.L3263: + ldr x0, [x29,184] + mov w1, w24 + mov w2, w19 + mov w3, 0 + bl printk + ldr w0, [x23,x20,lsl 2] + mov w1, w19 + mov x2, x26 + mul w0, w21, w0 + bl IdBlockReadData + mov x2, x26 + mov x1, x22 + mov x0, 0 +.L3230: + ldr w4, [x29,204] + mov w3, w0 + cmp w0, w4 + bcs .L3264 + mov x27, x2 + mov x25, x1 + mov x24, x0 + add x2, x2, 4 + add x0, x0, 1 + add x1, x1, 4 + ldr w5, [x27] + ldr w4, [x25] + cmp w5, w4 + beq .L3230 + mov w1, 0 + mov x2, 512 + mov x0, x26 + str x3, [x29,216] + and x24, x24, -256 + bl memset + lsl x24, x24, 2 + ldr w4, [x27] + ldr w5, [x25] + ldr w1, [x29,232] + ldr w2, [x23,x20,lsl 2] + ldr x3, [x29,216] + ldr x0, [x29,176] + bl printk + adrp x0, .LC174 + add x1, x22, x24 + add x0, x0, :lo12:.LC174 + mov w2, 4 + mov w3, 256 + bl rknand_print_hex + adrp x0, .LC175 + add x1, x26, x24 + mov w2, 4 + mov w3, 256 + add x0, x0, :lo12:.LC175 + bl rknand_print_hex + mov w0, 0 + bl flash_boot_enter_slc_mode + ldr w1, [x23,x20,lsl 2] + mov w0, 0 + mov w2, 0 + mul w1, w21, w1 + bl FlashEraseBlock + ldr w0, [x29,228] + cbz w0, .L3231 + ldr w1, [x23,x20,lsl 2] + mov w0, 0 + mov w2, 0 + madd w1, w1, w21, w21 + bl FlashEraseBlock +.L3231: + mov w0, 0 + bl flash_boot_exit_slc_mode + adrp x0, .LC176 + ldr w1, [x23,x20,lsl 2] + add x0, x0, :lo12:.LC176 + bl printk + b .L3222 +.L3264: + ldr w0, [x29,236] + add w0, w0, 1 + str w0, [x29,236] +.L3222: + add x20, x20, 1 + cmp x20, 5 + bne .L3234 + mov x0, x26 + bl ftl_free + ldr w0, [x29,236] + cmp w0, wzr + csetm w0, eq +.L3252: + 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], 304 + ret .size write_idblock, .-write_idblock .align 2 .global CRC_32 @@ -20335,20 +21461,193 @@ CRC_32: mov x5, x0 add x3, x3, :lo12:.LANCHOR1 mov w0, w2 -.L3126: +.L3266: cmp w1, w2 - bls .L3128 + bls .L3268 ldrb w4, [x5,x2] - add x6, x3, 3016 + add x6, x3, 3176 add x2, x2, 1 eor w4, w4, w0, lsr 24 ldr w4, [x6,w4,uxtw 2] eor w0, w4, w0, lsl 8 - b .L3126 -.L3128: + b .L3266 +.L3268: ret .size CRC_32, .-CRC_32 .align 2 + .global write_loader_lba + .type write_loader_lba, %function +write_loader_lba: + stp x29, x30, [sp, -96]! + cmp w0, 64 + add x29, sp, 0 + stp x19, x20, [sp,16] + stp x21, x22, [sp,32] + str x23, [sp,48] + mov w19, w0 + mov w21, w1 + mov x23, x2 + adrp x20, .LANCHOR5 + bne .L3270 + ldr w1, [x2] + mov w0, 35899 + movk w0, 0xfcdc, lsl 16 + cmp w1, w0 + bne .L3270 + add x22, x20, :lo12:.LANCHOR5 + mov w0, 1 + strb w0, [x22,-32] + mov w0, 59392 + movk w0, 0x3, lsl 16 + bl ftl_malloc + str x0, [x22,-24] + mov w2, 59392 + mov w1, 0 + movk w2, 0x3, lsl 16 + bl ftl_memset + str w19, [x22,-16] +.L3270: + add x3, x20, :lo12:.LANCHOR5 + ldrb w0, [x3,-32] + cbz w0, .L3269 + sub w0, w19, #64 + ldr x22, [x3,-24] + cmp w0, 499 + bhi .L3272 + mov w3, 564 + ubfiz x0, x0, 9, 25 + sub w3, w3, w19 + add x0, x22, x0 + cmp w3, w21 + mov x1, x23 + csel w2, w3, w21, ls + lsl w2, w2, 9 + bl ftl_memcpy + b .L3273 +.L3272: + cmp w19, 563 + bhi .L3283 +.L3273: + add x0, x20, :lo12:.LANCHOR5 + ldr w1, [x0,-16] + cmp w1, w19 + beq .L3281 + strb wzr, [x0,-32] + cbz x22, .L3282 + mov x0, x22 + bl ftl_free +.L3282: + add x0, x20, :lo12:.LANCHOR5 + str xzr, [x0,-24] +.L3281: + add x20, x20, :lo12:.LANCHOR5 + add w19, w19, w21 + str w19, [x20,-16] + b .L3269 +.L3283: + ldr w2, [x3,-16] + mov w0, 500 + sub w2, w2, #64 + cmp w2, 500 + csel w2, w2, w0, ls + adrp x0, .LANCHOR0+744 + ldr x0, [x0,#:lo12:.LANCHOR0+744] + ldrb w0, [x0,9] + cmp w0, 4 + beq .L3284 + mov w0, 2 + str w0, [x29,64] + mov w0, 3 + str w0, [x29,68] + mov w0, 4 + str w0, [x29,72] + mov w0, 5 + str w0, [x29,76] + mov w0, 6 + str w0, [x29,80] + b .L3275 +.L3284: + mov x3, 0 +.L3274: + cmp w2, 256 + add x0, x29, 64 + bls .L3276 + lsl w1, w3, 1 + str w1, [x0,x3,lsl 2] + b .L3277 +.L3276: + str w3, [x0,x3,lsl 2] +.L3277: + add x3, x3, 1 + cmp x3, 5 + bne .L3274 +.L3275: + add x0, x20, :lo12:.LANCHOR5 + mov w4, 63999 + ldr x3, [x0,-8] + add x3, x3, 61440 + add x3, x3, 2559 +.L3280: + ldrb w0, [x3] + cbz w0, .L3278 + add w2, w4, 1 + lsl w0, w2, 2 + b .L3279 +.L3278: + sub w4, w4, #1 + sub x3, x3, #1 + cmp w4, 4096 + bne .L3280 + lsl w0, w2, 9 +.L3279: + mov x1, x22 + add x2, x29, 64 + add x22, x20, :lo12:.LANCHOR5 + bl write_idblock + ldr x0, [x22,-24] + strb wzr, [x22,-32] + bl ftl_free + str xzr, [x22,-24] + b .L3281 +.L3269: + ldp x19, x20, [sp,16] + ldp x21, x22, [sp,32] + ldr x23, [sp,48] + ldp x29, x30, [sp], 96 + ret + .size write_loader_lba, .-write_loader_lba + .align 2 + .global FtlWrite + .type FtlWrite, %function +FtlWrite: + stp x29, x30, [sp, -64]! + add x29, sp, 0 + str x21, [sp,32] + uxtb w21, w0 + sub w0, w1, #64 + stp x19, x20, [sp,16] + cmp w0, 1983 + mov w19, w1 + mov w20, w2 + bhi .L3294 + cbnz w21, .L3294 + mov w0, w1 + mov w1, w2 + mov x2, x3 + str x3, [x29,56] + bl write_loader_lba + ldr x3, [x29,56] +.L3294: + mov w1, w19 + mov w2, w20 + mov w0, w21 + bl ftl_write + ldr x21, [sp,32] + ldp x19, x20, [sp,16] + ldp x29, x30, [sp], 64 + ret + .size FtlWrite, .-FtlWrite + .align 2 .global rknand_sys_storage_ioctl .type rknand_sys_storage_ioctl, %function rknand_sys_storage_ioctl: @@ -20359,149 +21658,149 @@ rknand_sys_storage_ioctl: stp x29, x30, [sp, -48]! add x29, sp, 0 stp x19, x20, [sp,16] - str x21, [sp,32] + stp x21, x22, [sp,32] mov w19, w1 mov x20, x2 - beq .L3131 + beq .L3303 mov w0, 29187 movk w0, 0x4004, lsl 16 cmp w1, w0 - bhi .L3132 + bhi .L3304 mov w0, 25726 movk w0, 0x4004, lsl 16 cmp w1, w0 - beq .L3133 + beq .L3305 mov w0, 25726 movk w0, 0x4004, lsl 16 cmp w1, w0 - bhi .L3134 + bhi .L3306 mov w0, 25601 movk w0, 0x4004, lsl 16 cmp w1, w0 - beq .L3135 + beq .L3307 mov w0, 25601 movk w0, 0x4004, lsl 16 cmp w1, w0 - bhi .L3136 + bhi .L3308 mov w0, 25364 movk w0, 0x4004, lsl 16 cmp w1, w0 - bne .L3193 + bne .L3365 bl rknand_dev_flush - b .L3225 -.L3136: + b .L3399 +.L3308: mov w0, 25602 movk w0, 0x4004, lsl 16 cmp w1, w0 - beq .L3138 + beq .L3310 mov w0, 25603 movk w0, 0x4004, lsl 16 cmp w1, w0 - beq .L3139 - b .L3193 -.L3134: + beq .L3311 + b .L3365 +.L3306: mov w0, 27688 movk w0, 0x4004, lsl 16 cmp w1, w0 - beq .L3140 + beq .L3312 mov w0, 27688 movk w0, 0x4004, lsl 16 cmp w1, w0 - bhi .L3141 + bhi .L3313 mov w0, 25727 movk w0, 0x4004, lsl 16 cmp w1, w0 - beq .L3142 - b .L3193 -.L3141: + beq .L3314 + b .L3365 +.L3313: mov w0, 27698 movk w0, 0x4004, lsl 16 cmp w1, w0 - beq .L3140 + beq .L3312 mov w0, 27708 movk w0, 0x4004, lsl 16 cmp w1, w0 - beq .L3140 - b .L3193 -.L3132: + beq .L3312 + b .L3365 +.L3304: mov w0, 29267 movk w0, 0x4004, lsl 16 cmp w1, w0 - beq .L3143 + beq .L3315 mov w0, 29267 movk w0, 0x4004, lsl 16 cmp w1, w0 - bhi .L3144 + bhi .L3316 mov w0, 29189 movk w0, 0x4004, lsl 16 cmp w1, w0 - beq .L3145 + beq .L3317 mov w0, 29189 movk w0, 0x4004, lsl 16 cmp w1, w0 - bcc .L3146 + bcc .L3318 mov w0, 29210 movk w0, 0x4004, lsl 16 cmp w1, w0 - beq .L3147 + beq .L3319 mov w0, 29266 movk w0, 0x4004, lsl 16 cmp w1, w0 - beq .L3148 - b .L3193 -.L3144: + beq .L3320 + b .L3365 +.L3316: mov w0, 30225 movk w0, 0x4004, lsl 16 cmp w1, w0 - beq .L3149 + beq .L3321 mov w0, 30225 movk w0, 0x4004, lsl 16 cmp w1, w0 - bhi .L3150 + bhi .L3322 mov w0, 29268 movk w0, 0x4004, lsl 16 cmp w1, w0 - beq .L3151 + beq .L3323 mov w0, 30224 movk w0, 0x4004, lsl 16 cmp w1, w0 - beq .L3152 - b .L3193 -.L3150: + beq .L3324 + b .L3365 +.L3322: mov w0, 30226 movk w0, 0x4004, lsl 16 cmp w1, w0 - beq .L3152 + beq .L3324 mov w0, 30227 movk w0, 0x4004, lsl 16 cmp w1, w0 - beq .L3149 - b .L3193 -.L3146: - adrp x0, .LC152 - add x0, x0, :lo12:.LC152 + beq .L3321 + b .L3365 +.L3318: + adrp x0, .LC177 + add x0, x0, :lo12:.LC177 bl printk mov w0, 4096 bl ftl_malloc mov x19, x0 - cbnz x0, .L3153 -.L3158: + cbnz x0, .L3325 +.L3330: mov x0, -12 - b .L3130 -.L3153: + b .L3302 +.L3325: mov x1, x20 mov x2, 512 bl rk_copy_from_user - cbnz x0, .L3232 - adrp x0, .LC154 + cbnz x0, .L3406 + adrp x0, .LC179 ldr w1, [x19] ldr w2, [x19,4] - add x0, x0, :lo12:.LC154 + add x0, x0, :lo12:.LC179 bl printk ldr w0, [x19,4] str w0, [x29,52] cmp w0, 8 - bhi .L3228 + bhi .L3403 bl rknand_device_lock ldr w1, [x29,52] mov x2, x19 @@ -20513,176 +21812,168 @@ rknand_sys_storage_ioctl: mov x1, x19 ubfiz x2, x2, 9, 23 bl rk_copy_to_user - cbz x0, .L3234 - adrp x0, .LC155 - add x0, x0, :lo12:.LC155 -.L3227: + cbz x0, .L3409 + adrp x0, .LC180 + add x0, x0, :lo12:.LC180 +.L3401: bl printk -.L3228: +.L3403: mov x0, x19 -.L3229: +.L3404: bl ftl_free -.L3230: +.L3402: mov x0, -14 - b .L3130 -.L3145: - adrp x0, .LC156 - add x0, x0, :lo12:.LC156 + b .L3302 +.L3317: + adrp x0, .LC181 + add x0, x0, :lo12:.LC181 bl printk mov w0, 4096 bl ftl_malloc mov x19, x0 - cbz x0, .L3158 + cbz x0, .L3330 mov x1, x20 mov x2, 4096 bl rk_copy_from_user - cbnz x0, .L3232 + cbnz x0, .L3406 + adrp x0, .LC182 ldr w1, [x19] - adrp x0, .LC157 ldr w2, [x19,4] - add x0, x0, :lo12:.LC157 + add x0, x0, :lo12:.LC182 bl printk - adrp x0, .LANCHOR4 - add x21, x0, :lo12:.LANCHOR4 + adrp x0, .LANCHOR5 + add x22, x0, :lo12:.LANCHOR5 mov x20, x0 - ldr x1, [x21,480] - cbnz x1, .L3160 + ldr x21, [x22,-8] + cbnz x21, .L3332 mov w0, 260096 bl ftl_malloc - str x0, [x21,480] - cbz x0, .L3228 -.L3160: + str x0, [x22,-8] + cbz x0, .L3403 + mov w1, w21 + mov x2, 260096 + bl memset +.L3332: ldr w2, [x19,4] cmp w2, 4088 - bhi .L3228 + bhi .L3403 ldr w0, [x19] mov w1, 55296 movk w1, 0x3, lsl 16 cmp w0, w1 - bhi .L3228 - add x20, x20, :lo12:.LANCHOR4 + bhi .L3403 + add x20, x20, :lo12:.LANCHOR5 uxtw x2, w2 - ldr x1, [x20,480] + ldr x1, [x20,-8] add x0, x1, x0, uxtw add x1, x19, 8 bl memcpy -.L3234: +.L3409: mov x0, x19 bl ftl_free - b .L3225 -.L3148: - adrp x0, .LC158 - add x0, x0, :lo12:.LC158 + b .L3399 +.L3320: + adrp x0, .LC183 + add x0, x0, :lo12:.LC183 bl printk mov w0, 4096 bl ftl_malloc mov x19, x0 - cbz x0, .L3158 + cbz x0, .L3330 mov x1, x20 mov x2, 28 bl rk_copy_from_user - cbz x0, .L3162 -.L3232: - adrp x0, .LC153 - add x0, x0, :lo12:.LC153 - b .L3227 -.L3162: + cbz x0, .L3335 +.L3406: + adrp x0, .LC178 + add x0, x0, :lo12:.LC178 + b .L3401 +.L3335: ldr w1, [x19] - adrp x0, .LC159 + adrp x0, .LC184 ldr w2, [x19,4] - add x0, x0, :lo12:.LC159 + add x0, x0, :lo12:.LC184 bl printk ldr w1, [x19] mov w0, 59392 movk w0, 0x3, lsl 16 cmp w1, w0 - bhi .L3228 - adrp x20, .LANCHOR4 - add x20, x20, :lo12:.LANCHOR4 - ldr x0, [x20,480] - cbz x0, .L3228 + bhi .L3403 + adrp x20, .LANCHOR5 + add x20, x20, :lo12:.LANCHOR5 + ldr x0, [x20,-8] + cbz x0, .L3403 bl CRC_32 ldr w1, [x19,4] cmp w1, w0 - beq .L3165 + beq .L3338 mov x0, x19 bl ftl_free mov x0, -2 - b .L3130 -.L3165: + b .L3302 +.L3338: bl rknand_device_lock - ldr x1, [x20,480] + ldr x1, [x20,-8] add x2, x19, 8 ldr w0, [x19] bl write_idblock bl rknand_device_unlock - ldr x0, [x20,480] + ldr x0, [x20,-8] bl ftl_free - str xzr, [x20,480] - b .L3234 -.L3147: - adrp x0, .LC160 - add x0, x0, :lo12:.LC160 + str xzr, [x20,-8] + b .L3409 +.L3319: + adrp x0, .LC185 + add x0, x0, :lo12:.LC185 bl printk mov w0, 4096 bl ftl_malloc mov x21, x0 - cbz x0, .L3158 - bl ReadFlashInfo + cbz x0, .L3330 + bl ftl_read_flash_info mov x0, x20 mov x1, x21 mov x2, 11 - b .L3236 -.L3131: - adrp x0, .LC161 - add x0, x0, :lo12:.LC161 + b .L3411 +.L3303: + adrp x0, .LC186 + add x0, x0, :lo12:.LC186 bl printk - bl rknand_device_lock - bl FtlReInitForSDUpdata - mov w19, w0 - bl rknand_device_unlock - cbnz w19, .L3230 bl nand_blk_add_whole_disk mov w0, 4096 bl ftl_malloc mov x21, x0 - cbz x0, .L3158 - bl rknand_device_lock - mov w1, w19 + cbz x0, .L3330 + mov w1, 0 mov w2, 64 - mov x0, x21 - bl FlashReadFacBbtData - bl rknand_device_unlock - adrp x0, .LC162 - mov x1, x21 - add x0, x0, :lo12:.LC162 - mov w2, 4 - mov w3, 8 - bl rknand_print_hex + bl ftl_memset mov x0, x20 mov x1, x21 mov x2, 64 - b .L3236 -.L3143: - adrp x0, .LC163 - add x0, x0, :lo12:.LC163 + b .L3411 +.L3315: + adrp x0, .LC187 + add x0, x0, :lo12:.LC187 bl printk - adrp x0, .LANCHOR4+488 + adrp x0, .LANCHOR5 add x1, x29, 52 mov x2, 4 - ldr x0, [x0,#:lo12:.LANCHOR4+488] + ldr x0, [x0,#:lo12:.LANCHOR5] ldr w0, [x0,20] str w0, [x29,52] mov x0, x20 - b .L3221 -.L3151: - adrp x0, .LC164 - add x0, x0, :lo12:.LC164 +.L3394: + bl rk_copy_to_user + cbnz x0, .L3402 + b .L3399 +.L3323: + adrp x0, .LC188 + add x0, x0, :lo12:.LC188 bl printk mov w0, 4096 bl ftl_malloc mov x21, x0 - cbz x0, .L3158 + cbz x0, .L3330 bl rknand_device_lock mov w1, 2 mov x2, x21 @@ -20692,455 +21983,453 @@ rknand_sys_storage_ioctl: mov x0, x20 mov x1, x21 mov x2, 1024 -.L3236: +.L3411: bl rk_copy_to_user mov x19, x0 mov x0, x21 - cbnz x19, .L3229 + cbnz x19, .L3404 bl ftl_free - b .L3157 -.L3135: - adrp x0, .LC165 - add x0, x0, :lo12:.LC165 + b .L3329 +.L3307: + adrp x0, .LC189 + add x0, x0, :lo12:.LC189 bl printk add x0, x29, 56 mov x1, x20 mov x2, 520 bl rk_copy_from_user mov x19, x0 - cbz x0, .L3171 -.L3176: - adrp x0, .LC153 - add x0, x0, :lo12:.LC153 + cbz x0, .L3343 +.L3348: + adrp x0, .LC178 + add x0, x0, :lo12:.LC178 bl printk - b .L3230 -.L3171: + b .L3402 +.L3343: ldr w1, [x29,56] mov w0, 21060 movk w0, 0x4b4d, lsl 16 cmp w1, w0 - beq .L3172 -.L3173: + beq .L3344 +.L3345: mov x19, -1 - b .L3157 -.L3172: + b .L3329 +.L3344: ldr w0, [x29,60] cmp w0, 512 - bhi .L3173 - adrp x21, .LANCHOR4 + bhi .L3345 + adrp x1, .LANCHOR5 add x0, x29, 56 - add x21, x21, :lo12:.LANCHOR4 + add x21, x1, :lo12:.LANCHOR5 mov x2, 512 - ldr x1, [x21,488] + ldr x1, [x1,#:lo12:.LANCHOR5] bl memcpy - ldr w1, [x21,496] + ldr w1, [x21,8] mov w0, 5161 movk w0, 0xc059, lsl 16 cmp w1, w0 - beq .L3174 + beq .L3346 add x0, x29, 120 mov w1, w19 mov x2, 128 str w19, [x29,64] str w19, [x29,68] bl memset -.L3174: +.L3346: add x0, x29, 312 mov w1, 0 mov x2, 256 str wzr, [x29,72] bl memset -.L3222: - mov x0, x20 - add x1, x29, 56 - mov x2, 520 -.L3221: - bl rk_copy_to_user - cbnz x0, .L3230 - b .L3225 -.L3138: - adrp x0, .LC166 - add x0, x0, :lo12:.LC166 + b .L3408 +.L3310: + adrp x0, .LC190 + add x0, x0, :lo12:.LC190 bl printk add x0, x29, 56 mov x1, x20 mov x2, 520 bl rk_copy_from_user - cbnz x0, .L3176 + cbnz x0, .L3348 ldr w1, [x29,56] mov w0, 21060 movk w0, 0x4b4d, lsl 16 cmp w1, w0 - bne .L3173 + bne .L3345 ldr w0, [x29,60] cmp w0, 512 - bhi .L3173 - adrp x1, .LANCHOR4 - mov w2, 5161 - add x1, x1, :lo12:.LANCHOR4 - movk w2, 0xc059, lsl 16 + bhi .L3345 + adrp x2, .LANCHOR5 + mov w1, 5161 + add x0, x2, :lo12:.LANCHOR5 + movk w1, 0xc059, lsl 16 + ldr w3, [x0,8] mov x0, -2 - ldr w3, [x1,496] - cmp w3, w2 - bne .L3130 - ldr w2, [x29,68] + cmp w3, w1 + bne .L3302 + ldr w1, [x29,68] mov x0, -3 - sub w3, w2, #1 + sub w3, w1, #1 cmp w3, 127 - bhi .L3130 - ldr x19, [x1,488] - add x1, x29, 120 + bhi .L3302 + ldr x19, [x2,#:lo12:.LANCHOR5] add x0, x19, 64 - str w2, [x19,12] + str w1, [x19,12] + add x1, x29, 120 ldr w2, [x29,68] bl memcpy mov w0, 1 mov x1, x19 - b .L3226 -.L3142: - adrp x0, .LC167 - add x0, x0, :lo12:.LC167 + b .L3400 +.L3314: + adrp x0, .LC191 + add x0, x0, :lo12:.LC191 bl printk add x0, x29, 56 mov x1, x20 mov x2, 520 bl rk_copy_from_user - cbnz x0, .L3176 + cbnz x0, .L3348 ldr w1, [x29,56] mov w0, 17476 movk w0, 0x4253, lsl 16 cmp w1, w0 - bne .L3173 + bne .L3345 ldr w0, [x29,60] cmp w0, 512 - bhi .L3173 - adrp x19, .LANCHOR4 - add x0, x19, :lo12:.LANCHOR4 - ldr w1, [x0,500] - cbnz w1, .L3177 -.L3180: + bhi .L3345 + adrp x19, .LANCHOR5 + add x0, x19, :lo12:.LANCHOR5 + ldr w1, [x0,12] + cbnz w1, .L3349 +.L3352: mov x0, 0 - b .L3130 -.L3177: - ldr x1, [x0,504] + b .L3302 +.L3349: + ldr x1, [x0,16] mov w2, 22867 movk w2, 0x4453, lsl 16 ldr w3, [x1] cmp w3, w2 - beq .L3178 + beq .L3350 mov w2, 22867 movk w2, 0x4453, lsl 16 str w2, [x1] mov w2, 504 - ldr x1, [x0,504] + ldr x1, [x0,16] str w2, [x1,4] - ldr x0, [x0,504] + ldr x0, [x0,16] str wzr, [x0,8] str wzr, [x0,12] -.L3178: - add x20, x19, :lo12:.LANCHOR4 +.L3350: + add x0, x19, :lo12:.LANCHOR5 + adrp x20, .LANCHOR5 + ldr x1, [x0,16] mov w0, 0 - ldr x1, [x20,504] str wzr, [x1,16] bl StorageSysDataStore - ldr x0, [x20,488] + ldr x0, [x19,#:lo12:.LANCHOR5] mov w1, 21060 movk w1, 0x4b4d, lsl 16 ldr w2, [x0] cmp w2, w1 - beq .L3179 + beq .L3351 mov w1, 21060 movk w1, 0x4b4d, lsl 16 str w1, [x0] mov w1, 504 - ldr x0, [x20,488] + ldr x0, [x20,#:lo12:.LANCHOR5] str w1, [x0,4] - ldr x0, [x20,488] + ldr x0, [x20,#:lo12:.LANCHOR5] str wzr, [x0,8] -.L3179: - add x19, x19, :lo12:.LANCHOR4 +.L3351: + add x20, x19, :lo12:.LANCHOR5 + ldr x19, [x19,#:lo12:.LANCHOR5] mov w1, 0 mov x2, 128 - ldr x20, [x19,488] - add x0, x20, 64 - str wzr, [x20,12] + add x0, x19, 64 + str wzr, [x19,12] bl memset mov w0, 1 - mov x1, x20 + mov x1, x19 bl StorageSysDataStore - str wzr, [x19,500] - str wzr, [x19,496] - b .L3225 -.L3133: - adrp x0, .LC168 - add x0, x0, :lo12:.LC168 + str wzr, [x20,12] + str wzr, [x20,8] + b .L3399 +.L3305: + adrp x0, .LC192 + add x0, x0, :lo12:.LC192 bl printk add x0, x29, 56 mov x1, x20 mov x2, 520 bl rk_copy_from_user - cbnz x0, .L3176 + cbnz x0, .L3348 ldr w2, [x29,56] mov w1, 20037 movk w1, 0x4253, lsl 16 cmp w2, w1 - bne .L3173 + bne .L3345 ldr w1, [x29,60] cmp w1, 512 - bhi .L3173 - adrp x19, .LANCHOR4 - add x1, x19, :lo12:.LANCHOR4 - ldr w2, [x1,500] + bhi .L3345 + adrp x19, .LANCHOR5 + add x1, x19, :lo12:.LANCHOR5 + ldr w2, [x1,12] cmp w2, 1 - beq .L3180 - ldr x2, [x1,504] + beq .L3352 + ldr x2, [x1,16] mov w3, 22867 movk w3, 0x4453, lsl 16 ldr w4, [x2] cmp w4, w3 - beq .L3181 + beq .L3353 mov w3, 22867 movk w3, 0x4453, lsl 16 str w3, [x2] mov w3, 504 - ldr x2, [x1,504] + ldr x2, [x1,16] str w3, [x2,4] - ldr x1, [x1,504] + ldr x1, [x1,16] str w0, [x1,8] str w0, [x1,12] -.L3181: - add x20, x19, :lo12:.LANCHOR4 +.L3353: + add x0, x19, :lo12:.LANCHOR5 + adrp x20, .LANCHOR5 + ldr x1, [x0,16] mov w0, 1 - ldr x1, [x20,504] str w0, [x1,16] mov w0, 0 bl StorageSysDataStore - ldr x0, [x20,488] + ldr x0, [x19,#:lo12:.LANCHOR5] mov w1, 21060 movk w1, 0x4b4d, lsl 16 ldr w2, [x0] cmp w2, w1 - beq .L3182 + beq .L3354 mov w1, 21060 movk w1, 0x4b4d, lsl 16 str w1, [x0] mov w1, 504 - ldr x0, [x20,488] + ldr x0, [x20,#:lo12:.LANCHOR5] str w1, [x0,4] - ldr x0, [x20,488] + ldr x0, [x20,#:lo12:.LANCHOR5] str wzr, [x0,8] -.L3182: - add x19, x19, :lo12:.LANCHOR4 +.L3354: + add x20, x19, :lo12:.LANCHOR5 + ldr x19, [x19,#:lo12:.LANCHOR5] mov w1, 0 mov x2, 128 - ldr x20, [x19,488] - add x0, x20, 64 - str wzr, [x20,12] + add x0, x19, 64 + str wzr, [x19,12] bl memset mov w0, 1 - mov x1, x20 + mov x1, x19 bl StorageSysDataStore mov w0, 1 - str w0, [x19,500] - b .L3225 -.L3139: - adrp x0, .LC169 - add x0, x0, :lo12:.LC169 + str w0, [x20,12] + b .L3399 +.L3311: + adrp x0, .LC193 + add x0, x0, :lo12:.LC193 bl printk add x0, x29, 56 mov x1, x20 mov x2, 520 bl rk_copy_from_user - cbnz x0, .L3176 + cbnz x0, .L3348 ldr w1, [x29,56] mov w0, 20051 movk w0, 0x4144, lsl 16 cmp w1, w0 - bne .L3173 + bne .L3345 ldr w2, [x29,60] cmp w2, 512 - bhi .L3173 - adrp x1, .LANCHOR4 + bhi .L3345 + adrp x1, .LANCHOR5 add x0, x29, 64 - add x1, x1, :lo12:.LANCHOR4 + add x1, x1, :lo12:.LANCHOR5 uxtw x2, w2 - add x1, x1, 512 - b .L3223 -.L3140: + add x1, x1, 24 + b .L3407 +.L3312: mov w0, 27698 movk w0, 0x4004, lsl 16 cmp w19, w0 - bne .L3183 - adrp x0, .LC170 - add x0, x0, :lo12:.LC170 - b .L3224 -.L3183: + bne .L3355 + adrp x0, .LC194 + add x0, x0, :lo12:.LC194 + b .L3397 +.L3355: mov w0, 27708 movk w0, 0x4004, lsl 16 cmp w19, w0 - bne .L3185 - adrp x0, .LC171 - add x0, x0, :lo12:.LC171 - b .L3224 -.L3185: - adrp x0, .LC172 - add x0, x0, :lo12:.LC172 -.L3224: + bne .L3357 + adrp x0, .LC195 + add x0, x0, :lo12:.LC195 + b .L3397 +.L3357: + adrp x0, .LC196 + add x0, x0, :lo12:.LC196 +.L3397: bl printk add x0, x29, 56 mov x1, x20 mov x2, 520 bl rk_copy_from_user - cbnz x0, .L3176 + cbnz x0, .L3348 ldr w1, [x29,56] mov w0, 17227 movk w0, 0x4c4f, lsl 16 cmp w1, w0 - bne .L3230 + bne .L3402 mov w0, 27708 movk w0, 0x4004, lsl 16 cmp w19, w0 - adrp x0, .LANCHOR4 - bne .L3186 - add x0, x0, :lo12:.LANCHOR4 + adrp x0, .LANCHOR5 + bne .L3358 + ldr x0, [x0,#:lo12:.LANCHOR5] add x1, x29, 56 mov x2, 16 - ldr x0, [x0,488] ldr w0, [x0,20] str w0, [x29,60] strb w0, [x29,64] mov x0, x20 bl rk_copy_to_user - cbz x0, .L3130 - b .L3230 -.L3186: - add x20, x0, :lo12:.LANCHOR4 - ldr w1, [x20,1024] + cbz x0, .L3302 + b .L3402 +.L3358: + add x20, x0, :lo12:.LANCHOR5 + ldr w1, [x20,536] cmp w1, 10 - bhi .L3230 - ldr x1, [x20,488] + bhi .L3402 + ldr x1, [x0,#:lo12:.LANCHOR5] ldr w2, [x29,60] ldr w3, [x1,24] cmp w3, w2 - beq .L3187 - cbz w3, .L3187 - adrp x0, .LC173 + beq .L3359 + cbz w3, .L3359 + adrp x0, .LC197 mov w1, w2 - add x0, x0, :lo12:.LC173 + add x0, x0, :lo12:.LC197 bl printk - ldr w0, [x20,1024] + ldr w0, [x20,536] add w0, w0, 1 - str w0, [x20,1024] - b .L3230 -.L3187: - add x0, x0, :lo12:.LANCHOR4 - str wzr, [x0,1024] + str w0, [x20,536] + b .L3402 +.L3359: + add x0, x0, :lo12:.LANCHOR5 + str wzr, [x0,536] mov w0, 27698 movk w0, 0x4004, lsl 16 cmp w19, w0 - bne .L3188 + bne .L3360 str wzr, [x1,20] str wzr, [x1,24] - b .L3189 -.L3188: + b .L3361 +.L3360: mov w0, 1 str w2, [x1,24] str w0, [x1,20] -.L3189: +.L3361: mov w0, 1 mov x19, -2 bl StorageSysDataStore cmn w0, #1 - bne .L3225 - b .L3157 -.L3152: - adrp x0, .LC174 - add x0, x0, :lo12:.LC174 + bne .L3399 + b .L3329 +.L3324: + adrp x0, .LC198 + add x0, x0, :lo12:.LC198 bl printk add x0, x29, 56 mov x1, x20 mov x2, 520 bl rk_copy_from_user - cbnz x0, .L3176 + cbnz x0, .L3348 ldr w1, [x29,56] mov w0, 17750 movk w0, 0x444e, lsl 16 cmp w1, w0 - bne .L3173 + bne .L3345 ldr w2, [x29,60] cmp w2, 504 - bhi .L3173 + bhi .L3345 mov w0, 30224 - adrp x1, .LANCHOR4 + adrp x1, .LANCHOR5 movk w0, 0x4004, lsl 16 uxtw x2, w2 cmp w19, w0 - add x1, x1, :lo12:.LANCHOR4 + add x1, x1, :lo12:.LANCHOR5 add x0, x29, 64 - bne .L3190 - ldr x1, [x1,1032] - b .L3233 -.L3190: - ldr x1, [x1,1040] -.L3233: + bne .L3362 + ldr x1, [x1,544] + b .L3398 +.L3362: + ldr x1, [x1,552] +.L3398: add x1, x1, 8 -.L3223: +.L3407: bl memcpy - b .L3222 -.L3149: - adrp x0, .LC175 - add x0, x0, :lo12:.LC175 +.L3408: + mov x0, x20 + add x1, x29, 56 + mov x2, 520 + b .L3394 +.L3321: + adrp x0, .LC199 + add x0, x0, :lo12:.LC199 bl printk add x0, x29, 56 mov x1, x20 mov x2, 520 bl rk_copy_from_user - cbnz x0, .L3176 + cbnz x0, .L3348 ldr w1, [x29,56] mov w0, 17750 movk w0, 0x444e, lsl 16 cmp w1, w0 - bne .L3173 + bne .L3345 ldr w2, [x29,60] cmp w2, 504 - bhi .L3173 + bhi .L3345 mov w0, 30225 add w2, w2, 8 movk w0, 0x4004, lsl 16 cmp w19, w0 - adrp x19, .LANCHOR4 - add x19, x19, :lo12:.LANCHOR4 - bne .L3192 - ldr x0, [x19,1032] + adrp x19, .LANCHOR5 + add x19, x19, :lo12:.LANCHOR5 + bne .L3364 + ldr x0, [x19,544] add x1, x29, 56 bl memcpy mov w0, 2 - ldr x1, [x19,1032] - b .L3226 -.L3192: - ldr x0, [x19,1040] + ldr x1, [x19,544] + b .L3400 +.L3364: + ldr x0, [x19,552] add x1, x29, 56 bl memcpy - ldr x1, [x19,1040] + ldr x1, [x19,552] mov w0, 3 -.L3226: +.L3400: bl StorageSysDataStore uxtw x19, w0 - b .L3157 -.L3225: + b .L3329 +.L3399: mov x19, 0 -.L3157: - adrp x0, .LC176 +.L3329: + adrp x0, .LC200 mov x1, x19 - add x0, x0, :lo12:.LC176 + add x0, x0, :lo12:.LC200 bl printk mov x0, x19 - b .L3130 -.L3193: + b .L3302 +.L3365: mov x0, -22 -.L3130: +.L3302: ldp x19, x20, [sp,16] - ldr x21, [sp,32] + ldp x21, x22, [sp,32] ldp x29, x30, [sp], 48 add sp, sp, 528 ret @@ -21150,53 +22439,58 @@ rknand_sys_storage_ioctl: .type rk_ftl_storage_sys_init, %function rk_ftl_storage_sys_init: stp x29, x30, [sp, -48]! + mov w0, -1 mov w2, 512 add x29, sp, 0 stp x19, x20, [sp,16] - adrp x20, .LANCHOR4 - add x19, x20, :lo12:.LANCHOR4 + adrp x20, .LANCHOR5 + add x19, x20, :lo12:.LANCHOR5 stp x21, x22, [sp,32] - ldr x1, [x19,456] - str x1, [x19,504] + str w0, [x19,-16] + adrp x0, .LANCHOR4+456 + strb wzr, [x19,-32] + str xzr, [x19,-24] + ldr x1, [x0,#:lo12:.LANCHOR4+456] + str x1, [x19,16] add x0, x1, 512 - str x0, [x19,488] + str x0, [x20,#:lo12:.LANCHOR5] add x0, x1, 1024 add x1, x1, 1536 - str x0, [x19,1032] - add x0, x19, 512 - str xzr, [x19,480] - str x1, [x19,1040] + str x0, [x19,544] + add x0, x19, 24 + str xzr, [x19,-8] + str x1, [x19,552] bl ftl_memcpy - ldr x21, [x19,504] - str wzr, [x19,496] - str wzr, [x19,1024] + ldr x21, [x19,16] + str wzr, [x19,8] + str wzr, [x19,536] ldr w0, [x21,16] ldr w22, [x21,508] - str w0, [x19,500] - cbz w22, .L3239 + str w0, [x19,12] + cbz w22, .L3414 mov x0, x21 mov w1, 508 bl JSHash cmp w22, w0 - beq .L3239 - adrp x0, .LC177 + beq .L3414 + adrp x0, .LC201 str wzr, [x21,16] - add x0, x0, :lo12:.LC177 - str wzr, [x19,500] + add x0, x0, :lo12:.LC201 + str wzr, [x19,12] bl printk -.L3239: - add x0, x20, :lo12:.LANCHOR4 - ldr w1, [x0,500] - cbz w1, .L3240 +.L3414: + add x0, x20, :lo12:.LANCHOR5 + ldr w1, [x0,12] + cbz w1, .L3415 mov w1, 5161 movk w1, 0xc059, lsl 16 - str w1, [x0,496] -.L3240: - add x20, x20, :lo12:.LANCHOR4 + str w1, [x0,8] +.L3415: + add x20, x20, :lo12:.LANCHOR5 mov w0, 2 - ldr x1, [x20,1032] + ldr x1, [x20,544] bl StorageSysDataLoad - ldr x1, [x20,1040] + ldr x1, [x20,552] mov w0, 3 bl StorageSysDataLoad bl rknand_sys_storage_init @@ -21216,128 +22510,115 @@ StorageSysDataDeInit: .global rk_ftl_vendor_storage_init .type rk_ftl_vendor_storage_init, %function rk_ftl_vendor_storage_init: - stp x29, x30, [sp, -80]! - mov w1, 193 - mov x0, 65536 + stp x29, x30, [sp, -64]! + 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, .LANCHOR4 - bl kmalloc_order_trace - add x1, x21, :lo12:.LANCHOR4 + adrp x21, .LANCHOR5 + bl ftl_malloc + add x1, x21, :lo12:.LANCHOR5 mov w19, -12 - str x0, [x1,1048] - cbz x0, .L3249 - mov w22, 0 - adrp x24, .LC178 - mov w19, w22 - mov w23, w22 - add x24, x24, :lo12:.LC178 -.L3253: - add x20, x21, :lo12:.LANCHOR4 - ldr x2, [x20,1048] - str x2, [x29,72] - bl rknand_device_lock - ldr x2, [x29,72] - add w0, w23, 2 + str x0, [x1,560] + cbz x0, .L3424 + mov w23, 0 + adrp x24, .LC202 + mov w19, w23 + mov w22, w23 + add x24, x24, :lo12:.LC202 +.L3428: + add x20, x21, :lo12:.LANCHOR5 + lsl w0, w22, 7 mov w1, 128 - lsl w0, w0, 7 - bl FtlVendorPartRead - str x0, [x29,72] - bl rknand_device_unlock - ldr x0, [x29,72] - cbnz w0, .L3250 - ldr x3, [x20,1048] + ldr x2, [x20,560] + bl FlashBootVendorRead + cbnz w0, .L3425 + ldr x3, [x20,560] mov x0, x24 add x2, x3, 61440 ldr w1, [x3] ldr w3, [x3,4] ldr w2, [x2,4092] bl printk - ldr x20, [x20,1048] + ldr x20, [x20,560] mov w0, 22084 movk w0, 0x524b, lsl 16 ldr w1, [x20] cmp w1, w0 - bne .L3251 + bne .L3426 ldr w0, [x20,4] cmp w19, w0 - bcs .L3251 + bcs .L3426 add x1, x20, 61440 ldr w1, [x1,4092] cmp w1, w0 - csel w22, w22, w23, ne + csel w23, w23, w22, ne csel w19, w19, w0, ne -.L3251: - cbnz w23, .L3261 - mov w23, 1 - b .L3253 -.L3261: - cbz w19, .L3254 - bl rknand_device_lock - lsl w0, w22, 7 +.L3426: + cbnz w22, .L3436 + mov w22, 1 + b .L3428 +.L3436: + cbz w19, .L3429 + lsl w0, w23, 7 mov w1, 128 - add w0, w0, 256 mov x2, x20 - bl FtlVendorPartRead + bl FlashBootVendorRead mov w19, w0 - bl rknand_device_unlock - cbz w19, .L3249 - b .L3250 -.L3254: + cbz w0, .L3424 + b .L3425 +.L3429: mov x0, x20 mov w1, w19 mov x2, 65536 bl memset - str w23, [x20,4] + str w22, [x20,4] mov w0, 22084 movk w0, 0x524b, lsl 16 str w0, [x20] add x0, x20, 61440 - str w23, [x0,4092] + str w22, [x0,4092] mov w0, -1032 strh w19, [x20,12] strh w0, [x20,14] - b .L3249 -.L3250: - add x21, x21, :lo12:.LANCHOR4 + b .L3424 +.L3425: + add x21, x21, :lo12:.LANCHOR5 mov w19, -1 - ldr x0, [x21,1048] + ldr x0, [x21,560] bl kfree - str xzr, [x21,1048] -.L3249: + str xzr, [x21,560] +.L3424: mov w0, w19 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] - ldp x29, x30, [sp], 80 + ldp x29, x30, [sp], 64 ret .size rk_ftl_vendor_storage_init, .-rk_ftl_vendor_storage_init .align 2 .global rk_ftl_vendor_read .type rk_ftl_vendor_read, %function rk_ftl_vendor_read: - adrp x3, .LANCHOR4+1048 + adrp x3, .LANCHOR5+560 stp x29, x30, [sp, -32]! add x29, sp, 0 - ldr x5, [x3,#:lo12:.LANCHOR4+1048] + ldr x5, [x3,#:lo12:.LANCHOR5+560] mov w3, -1 str x19, [sp,16] - cbz x5, .L3263 + cbz x5, .L3438 ldrh w3, [x5,10] mov x4, 0 -.L3264: +.L3439: cmp w4, w3 mov w6, w4 - bcs .L3268 + bcs .L3443 add x7, x5, x4, lsl 3 add x4, x4, 1 ldrh w7, [x7,16] cmp w7, w0 - bne .L3264 + bne .L3439 add x6, x5, x6, uxtw 3 ldrh w4, [x6,20] mov x0, x1 @@ -21349,10 +22630,10 @@ rk_ftl_vendor_read: uxtw x2, w19 bl memcpy mov w3, w19 - b .L3263 -.L3268: + b .L3438 +.L3443: mov w3, -1 -.L3263: +.L3438: mov w0, w3 ldr x19, [sp,16] ldp x29, x30, [sp], 32 @@ -21364,10 +22645,10 @@ rk_ftl_vendor_read: rk_ftl_vendor_write: stp x29, x30, [sp, -112]! mov w6, w0 - adrp x0, .LANCHOR4+1048 + adrp x0, .LANCHOR5+560 add x29, sp, 0 stp x19, x20, [sp,16] - ldr x19, [x0,#:lo12:.LANCHOR4+1048] + ldr x19, [x0,#:lo12:.LANCHOR5+560] stp x25, x26, [sp,64] stp x27, x28, [sp,80] stp x21, x22, [sp,32] @@ -21375,38 +22656,38 @@ rk_ftl_vendor_write: mov w26, w2 mov x28, x1 mov w2, -1 - cbz x19, .L3270 + cbz x19, .L3445 add w20, w26, 63 ldrh w3, [x19,10] ldrh w23, [x19,8] and w20, w20, -64 mov x2, 0 -.L3271: +.L3446: cmp w2, w3 mov w4, w2 - bcs .L3286 + bcs .L3461 add x0, x19, x2, lsl 3 add x2, x2, 1 ldrh w0, [x0,16] cmp w0, w6 - bne .L3271 + bne .L3446 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 .L3272 + bls .L3447 ldrh w0, [x19,14] mov w2, -1 cmp w0, w20 - bcc .L3270 + bcc .L3445 ldrh w21, [x21,18] add w22, w3, w2 -.L3273: +.L3448: cmp w4, w22 uxtw x3, w4 - bcs .L3287 + bcs .L3462 add x3, x19, x3, lsl 3 add w25, w4, 1 add x1, x19, x25, uxtw 3 @@ -21429,8 +22710,8 @@ rk_ftl_vendor_write: mov w4, w25 ldr x6, [x29,96] ldr x5, [x29,104] - b .L3273 -.L3287: + b .L3448 +.L3462: add x3, x19, x3, lsl 3 uxth w21, w21 mov x1, x28 @@ -21447,20 +22728,20 @@ rk_ftl_vendor_write: add w24, w24, w0 sub w24, w24, w20 strh w24, [x19,14] - b .L3285 -.L3272: + b .L3460 +.L3447: ldrh w0, [x21,18] mov x1, x28 uxtw x2, w26 add x0, x5, x0 bl memcpy strh w26, [x21,20] - b .L3285 -.L3286: + b .L3460 +.L3461: ldrh w4, [x19,14] mov w2, -1 cmp w4, w20 - bcc .L3270 + bcc .L3445 add x3, x19, x3, uxth 3 strh w6, [x3,16] uxth w20, w20 @@ -21480,27 +22761,24 @@ rk_ftl_vendor_write: ldrh w0, [x19,10] add w0, w0, 1 strh w0, [x19,10] -.L3285: +.L3460: ldr w0, [x19,4] add x1, x19, 61440 + mov x2, x19 add w0, w0, 1 str w0, [x19,4] str w0, [x1,4092] + mov w1, 128 ldrh w0, [x19,8] add w0, w0, 1 uxth w0, w0 cmp w0, 1 csel w0, w0, wzr, ls strh w0, [x19,8] - bl rknand_device_lock - mov w2, 128 - lsl w1, w23, 7 - mov x3, x19 - mov w0, 16 - bl FtlWrite - bl rknand_device_unlock + lsl w0, w23, 7 + bl FlashBootVendorWrite mov w2, 0 -.L3270: +.L3445: mov w0, w2 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -21514,50 +22792,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, .L3289 - mov w1, 30209 - movk w1, 0x4004, lsl 16 - cmp w22, w1 - beq .L3291 + cbz x0, .L3464 + mov w2, 30209 + ldr x1, [x29,56] + movk w2, 0x4004, lsl 16 + cmp w1, w2 + beq .L3466 mov w2, 30210 movk w2, 0x4004, lsl 16 - cmp w22, w2 - beq .L3292 - b .L3303 -.L3291: + cmp w1, w2 + beq .L3467 + b .L3478 +.L3466: mov x1, x21 mov x2, 8 bl rk_copy_from_user - cbnz x0, .L3303 + cbnz x0, .L3478 ldr w1, [x19] mov w0, 17745 movk w0, 0x5652, lsl 16 cmp w1, w0 - beq .L3294 -.L3295: + beq .L3469 +.L3470: mov x20, -1 - b .L3290 -.L3294: + b .L3465 +.L3469: ldrh w0, [x19,4] add x1, x19, 8 ldrh w2, [x19,6] bl rk_ftl_vendor_read cmn w0, #1 - beq .L3295 + beq .L3470 uxth x2, w0 strh w0, [x19,6] mov x1, x19 @@ -21567,42 +22842,42 @@ rk_ftl_vendor_storage_ioctl: bl rk_copy_to_user cmp x0, xzr csel x20, xzr, x20, eq - b .L3290 -.L3292: + b .L3465 +.L3467: mov x1, x21 mov x2, 8 bl rk_copy_from_user - cbnz x0, .L3303 + cbnz x0, .L3478 ldr w1, [x19] mov w0, 17745 movk w0, 0x5652, lsl 16 cmp w1, w0 - bne .L3295 + bne .L3470 ldrh w3, [x19,6] cmp w3, 4087 - bhi .L3295 + bhi .L3470 add w2, w3, 8 mov x0, x19 mov x1, x21 sxtw x2, w2 bl rk_copy_from_user - cbnz x0, .L3303 + cbnz x0, .L3478 ldrh w0, [x19,4] add x1, x19, 8 ldrh w2, [x19,6] bl rk_ftl_vendor_write sxtw x20, w0 - b .L3290 -.L3303: + b .L3465 +.L3478: mov x20, -14 -.L3290: +.L3465: mov x0, x19 bl kfree -.L3289: +.L3464: 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 @@ -21619,6 +22894,7 @@ rk_ftl_vendor_storage_ioctl: .global RK29_NANDC1_REG_BASE .global RK29_NANDC_REG_BASE .global gc_ink_free_return_value + .global check_valid_page_count_table .global FtlUpdateVaildLpnCount .global g_ect_tbl_power_up_flush .global last_cache_match_count @@ -21635,7 +22911,6 @@ rk_ftl_vendor_storage_ioctl: .global random_seed .global gSlcNandParaInfo .global gNandParaInfo - .global NandFlashParaTbl .global g_page_map_check_enable .global g_power_lost_ecc_error_blk .global g_power_lost_recovery_flag @@ -21675,6 +22950,8 @@ rk_ftl_vendor_storage_ioctl: .global g_gc_bad_block_temp_tbl .global g_gc_bad_block_gc_index .global g_gc_bad_block_temp_num + .global g_gc_next_blk_3 + .global g_gc_next_blk_2 .global g_gc_next_blk_1 .global g_gc_next_blk .global g_gc_cur_blk_max_valid_pages @@ -21848,378 +23125,439 @@ rk_ftl_vendor_storage_ioctl: .section .rodata .align 3 .LANCHOR3 = . + 0 - .type __func__.19317, %object - .size __func__.19317, 11 -__func__.19317: + .type __func__.19528, %object + .size __func__.19528, 11 +__func__.19528: .string "FtlMemInit" .zero 5 - .type __func__.20247, %object - .size __func__.20247, 21 -__func__.20247: + .type __func__.20301, %object + .size __func__.20301, 17 +__func__.20301: + .string "FtlDumpBlockInfo" + .zero 7 + .type __func__.20320, %object + .size __func__.20320, 16 +__func__.20320: + .string "FtlScanAllBlock" + .type __func__.20568, %object + .size __func__.20568, 21 +__func__.20568: .string "FtlVpcCheckAndModify" .zero 3 - .type __func__.19388, %object - .size __func__.19388, 8 -__func__.19388: + .type __func__.19601, %object + .size __func__.19601, 8 +__func__.19601: .string "FtlInit" + .type __func__.20269, %object + .size __func__.20269, 12 +__func__.20269: + .string "FtlCheckVpc" .section .rodata.str1.1,"aMS",%progbits,1 .LC0: .string "FlashEraseBlocks pageAddr error %x\n" .LC1: .string "phyBlk = 0x%x die = %d block_in_die = 0x%x 0x%8x\n" .LC2: - .string "remove_from_free_sys_Queue %x\n" + .string "FtlFreeSysBlkQueueOut free count = %d\n" .LC3: - .string "FLASH INFO:\n" + .string "FtlFreeSysBlkQueueOut = %x, free count = %d, error\n" .LC4: - .string "FLASH ID: %x\n" + .string "FtlFreeSysBlkQueueOut = %x, free count = %d\n" .LC5: - .string "Device Capacity: %d MB\n" + .string "FLASH INFO:\n" .LC6: - .string "FMWAIT: %x %x %x %x\n" + .string "FLASH ID: %x\n" .LC7: - .string "FTL INFO:\n" + .string "Device Capacity: %d MB\n" .LC8: - .string "g_MaxLpn = 0x%x\n" + .string "FMWAIT: %x %x %x %x\n" .LC9: - .string "g_VaildLpn = 0x%x\n" + .string "FTL INFO:\n" .LC10: - .string "read_page_count = 0x%x\n" + .string "g_MaxLpn = 0x%x\n" .LC11: - .string "discard_page_count = 0x%x\n" + .string "g_VaildLpn = 0x%x\n" .LC12: - .string "write_page_count = 0x%x\n" + .string "read_page_count = 0x%x\n" .LC13: - .string "cache_write_count = 0x%x\n" + .string "discard_page_count = 0x%x\n" .LC14: - .string "l2p_write_count = 0x%x\n" + .string "write_page_count = 0x%x\n" .LC15: - .string "gc_page_count = 0x%x\n" + .string "cache_write_count = 0x%x\n" .LC16: - .string "totle_write = %d MB\n" + .string "l2p_write_count = 0x%x\n" .LC17: - .string "totle_read = %d MB\n" + .string "gc_page_count = 0x%x\n" .LC18: - .string "GSV = 0x%x\n" + .string "totle_write = %d MB\n" .LC19: - .string "GDV = 0x%x\n" + .string "totle_read = %d MB\n" .LC20: - .string "bad blk num = %d %d\n" + .string "GSV = 0x%x\n" .LC21: - .string "free_superblocks = 0x%x\n" + .string "GDV = 0x%x\n" .LC22: - .string "mlc_EC = 0x%x\n" + .string "bad blk num = %d %d\n" .LC23: - .string "slc_EC = 0x%x\n" + .string "free_superblocks = 0x%x\n" .LC24: - .string "avg_EC = 0x%x\n" + .string "mlc_EC = 0x%x\n" .LC25: - .string "sys_EC = 0x%x\n" + .string "slc_EC = 0x%x\n" .LC26: - .string "max_EC = 0x%x\n" + .string "avg_EC = 0x%x\n" .LC27: - .string "min_EC = 0x%x\n" + .string "sys_EC = 0x%x\n" .LC28: - .string "PLT = 0x%x\n" + .string "max_EC = 0x%x\n" .LC29: - .string "POT = 0x%x\n" + .string "min_EC = 0x%x\n" .LC30: - .string "MaxSector = 0x%x\n" + .string "PLT = 0x%x\n" .LC31: - .string "init_sys_blks_pp = 0x%x\n" + .string "POT = 0x%x\n" .LC32: - .string "sys_blks_pp = 0x%x\n" + .string "MaxSector = 0x%x\n" .LC33: - .string "free sysblock = 0x%x\n" + .string "init_sys_blks_pp = 0x%x\n" .LC34: - .string "data_blks_pp = 0x%x\n" + .string "sys_blks_pp = 0x%x\n" .LC35: - .string "data_op_blks_pp = 0x%x\n" + .string "free sysblock = 0x%x\n" .LC36: - .string "max_data_blks = 0x%x\n" + .string "data_blks_pp = 0x%x\n" .LC37: - .string "Sys.id = 0x%x\n" + .string "data_op_blks_pp = 0x%x\n" .LC38: - .string "Bbt.id = 0x%x\n" + .string "max_data_blks = 0x%x\n" .LC39: - .string "ACT.page = 0x%x\n" + .string "Sys.id = 0x%x\n" .LC40: - .string "ACT.plane = 0x%x\n" + .string "Bbt.id = 0x%x\n" .LC41: - .string "ACT.id = 0x%x\n" + .string "ACT.page = 0x%x\n" .LC42: - .string "ACT.mode = 0x%x\n" + .string "ACT.plane = 0x%x\n" .LC43: - .string "ACT.a_pages = 0x%x\n" + .string "ACT.id = 0x%x\n" .LC44: - .string "ACT VPC = 0x%x\n" + .string "ACT.mode = 0x%x\n" .LC45: - .string "BUF.page = 0x%x\n" + .string "ACT.a_pages = 0x%x\n" .LC46: - .string "BUF.plane = 0x%x\n" + .string "ACT VPC = 0x%x\n" .LC47: - .string "BUF.id = 0x%x\n" + .string "BUF.page = 0x%x\n" .LC48: - .string "BUF.mode = 0x%x\n" + .string "BUF.plane = 0x%x\n" .LC49: - .string "BUF.a_pages = 0x%x\n" + .string "BUF.id = 0x%x\n" .LC50: - .string "BUF VPC = 0x%x\n" + .string "BUF.mode = 0x%x\n" .LC51: - .string "TMP.page = 0x%x\n" + .string "BUF.a_pages = 0x%x\n" .LC52: - .string "TMP.plane = 0x%x\n" + .string "BUF VPC = 0x%x\n" .LC53: - .string "TMP.id = 0x%x\n" + .string "TMP.page = 0x%x\n" .LC54: - .string "TMP.mode = 0x%x\n" + .string "TMP.plane = 0x%x\n" .LC55: - .string "TMP.a_pages = 0x%x\n" + .string "TMP.id = 0x%x\n" .LC56: - .string "GC.page = 0x%x\n" + .string "TMP.mode = 0x%x\n" .LC57: - .string "GC.plane = 0x%x\n" + .string "TMP.a_pages = 0x%x\n" .LC58: - .string "GC.id = 0x%x\n" + .string "GC.page = 0x%x\n" .LC59: - .string "GC.mode = 0x%x\n" + .string "GC.plane = 0x%x\n" .LC60: - .string "GC.a_pages = 0x%x\n" + .string "GC.id = 0x%x\n" .LC61: - .string "WR_CHK = 0x%x %x %x %x\n" + .string "GC.mode = 0x%x\n" .LC62: - .string "Read Err Cnt = 0x%x\n" + .string "GC.a_pages = 0x%x\n" .LC63: - .string "Prog Err Cnt = 0x%x\n" + .string "WR_CHK = 0x%x %x %x %x\n" .LC64: - .string "gc_free_blk_th= 0x%x\n" + .string "Read Err = 0x%x\n" .LC65: - .string "gc_merge_free_blk_th= 0x%x\n" + .string "Prog Err = 0x%x\n" .LC66: - .string "gc_skip_write_count= 0x%x\n" + .string "gc_free_blk_th= 0x%x\n" .LC67: - .string "gc_blk_index= 0x%x\n" + .string "gc_merge_free_blk_th= 0x%x\n" .LC68: - .string "free min EC= 0x%x\n" + .string "gc_skip_write_count= 0x%x\n" .LC69: - .string "free max EC= 0x%x\n" + .string "gc_blk_index= 0x%x\n" .LC70: - .string "GC__SB VPC = 0x%x\n" + .string "free min EC= 0x%x\n" .LC71: - .string "%d. [0x%x]=0x%x 0x%x 0x%x\n" + .string "free max EC= 0x%x\n" .LC72: - .string "free %d. [0x%x] 0x%x 0x%x\n" + .string "GC__SB VPC = 0x%x\n" .LC73: - .string "%s\n" + .string "%d. [0x%x]=0x%x 0x%x 0x%x\n" .LC74: - .string "FTL version: 5.0.47 20171120" + .string "free %d. [0x%x] 0x%x 0x%x\n" .LC75: - .string "swblk %x ,avg = %x max= %x vpc= %x,ec=%x ,max ec=%x\n" + .string "%s\n" .LC76: - .string "FtlGcRefreshBlock 0x%x\n" + .string "FTL version: 5.0.50 20180905" .LC77: - .string "FtlGcMarkBadPhyBlk %d 0x%x\n" + .string "swblk %x ,avg = %x max= %x vpc= %x,ec=%x ,max ec=%x\n" .LC78: - .string "%s error allocating memory. return -1\n" + .string "FtlGcRefreshBlock 0x%x\n" .LC79: - .string "%s 0x%x:" + .string "FtlGcMarkBadPhyBlk %d 0x%x\n" .LC80: - .string "%x " + .string "%s error allocating memory. return -1\n" .LC81: - .string "" + .string "%s %p:0x%x:" .LC82: - .string "otp error! %d" + .string "%x " .LC83: - .string "rr" + .string "" .LC84: - .string "%d statReg->V6.mtrans_cnt=%d flReg.V6.page_num=%d\n" + .string "otp error! %d" .LC85: - .string "nandc:" + .string "rr" .LC86: - .string "%d flReg.d32=%x %x\n" + .string "%d statReg->V6.mtrans_cnt=%d flReg.V6.page_num=%d\n" .LC87: - .string "sdr read ok %x ecc=%d\n" + .string "nandc:" .LC88: - .string "sync para %d\n" + .string "%d flReg.d32=%x %x\n" .LC89: - .string "TOG mode Read error %x %x\n" + .string "sdr read ok %x ecc=%d\n" .LC90: - .string "read retry status %x %x %x\n" + .string "sync para %d\n" .LC91: - .string "micron RR %d row=%x,count %d,status=%d\n" + .string "TOG mode Read error %x %x\n" .LC92: - .string "ECC:%d\n" + .string "read retry status %x %x %x\n" .LC93: - .string "No.%d FLASH ID:%x %x %x %x %x %x\n" + .string "micron RR %d row=%x,count %d,status=%d\n" .LC94: - .string "FlashLoadPhyInfo fail %x!!\n" + .string "ECC:%d\n" .LC95: - .string "Read pageadd=%x ecc=%x err=%x\n" + .string "No.%d FLASH ID:%x %x %x %x %x %x\n" .LC96: - .string "data:" + .string "FlashLoadPhyInfo fail %x!!\n" .LC97: - .string "spare:" + .string "Read pageadd=%x ecc=%x err=%x\n" .LC98: - .string "ReadRetry pageadd=%x ecc=%x err=%x\n" + .string "data:" .LC99: - .string "FLFB:%d %d\n" + .string "spare:" .LC100: - .string "prog error: = %x\n" + .string "ReadRetry pageadd=%x ecc=%x err=%x\n" .LC101: - .string "prog read error: = %x\n" + .string "FLFB:%d %d\n" .LC102: - .string "prog read s error: = %x %x %x\n" + .string "prog error: = %x\n" .LC103: - .string "prog read d error: = %x %x %x\n" + .string "prog read error: = %x\n" .LC104: - .string "FtlGcScanTempBlkError ID %x %x!!!!!!!\n" + .string "prog read s error: = %x %x %x\n" .LC105: - .string "FlashMakeFactorBbt %d\n" + .string "prog read d error: = %x %x %x\n" .LC106: - .string "bad block:%d %d\n" -.LC107: - .string "FMFB:%d %d\n" -.LC108: - .string "E:bad block:%d\n" -.LC109: - .string "FMFB:Save %d %d\n" -.LC110: - .string "FtlBbmTblFlush id=%x,page=%x,previd=%x cnt=%d\n" -.LC111: - .string "FtlBbmTblFlush error:%x\n" -.LC112: - .string "FtlBbmTblFlush error = %x error count = %d\n" -.LC113: - .string "FtlGcFreeBadSuperBlk 0x%x\n" -.LC114: - .string "decrement_vpc_count %x = %d\n" -.LC115: - .string "FtlVpcTblFlush error = %x error count = %d\n" -.LC116: - .string "ftl_map_blk_gc blk info: %x %x %x\n" -.LC117: - .string "page map lost: %x %x\n" -.LC118: - .string "FtlMapWritePage error = %x\n" -.LC119: - .string "FtlMapWritePage error = %x error count = %d\n" -.LC120: - .string "load_l2p_region refresh = %x phyAddr = %x\n" -.LC121: - .string "page map lost %x %x %x %x\n" -.LC122: - .string "FtlVendorPartRead refresh = %x phyAddr = %x\n" -.LC123: - .string "no ect" -.LC124: - .string "slc mode" -.LC125: - .string "RSB refresh addr %x\n" -.LC126: - .string "spuer block %x vpn is 0\n " -.LC127: - .string "g_recovery_ppa %x ver %x\n " -.LC128: .string "...%s enter...\n" +.LC107: + .string "superBlkID = %x vpc=%x\n" +.LC108: + .string "flashmode = %x pagenum = %x %x\n" +.LC109: + .string "id = %x,%x addr= %x,spare= %x %x %x %x data=%x %x\n" +.LC110: + .string "blk = %x vpc=%x mode = %x\n" +.LC111: + .string "mlc id = %x,%x addr= %x,spare= %x %x %x %x data=%x %x\n" +.LC112: + .string "slc id = %x,%x addr= %x,spare= %x %x %x %x data=%x %x\n" +.LC113: + .string "FtlGcScanTempBlkError ID %x %x!!!!!!!\n" +.LC114: + .string "FlashMakeFactorBbt %d\n" +.LC115: + .string "bad block:%d %d\n" +.LC116: + .string "FMFB:%d %d\n" +.LC117: + .string "E:bad block:%d\n" +.LC118: + .string "FMFB:Save %d %d\n" +.LC119: + .string "FtlBbmTblFlush id=%x,page=%x,previd=%x cnt=%d\n" +.LC120: + .string "FtlBbmTblFlush error:%x\n" +.LC121: + .string "FtlBbmTblFlush error = %x error count = %d\n" +.LC122: + .string "FtlGcFreeBadSuperBlk 0x%x\n" +.LC123: + .string "decrement_vpc_count %x = %d\n" +.LC124: + .string "decrement_vpc_count %x = %d in free list\n" +.LC125: + .string "FtlVpcTblFlush error = %x error count = %d\n" +.LC126: + .string "page map lost: %x %x\n" +.LC127: + .string "FtlMapWritePage error = %x\n" +.LC128: + .string "FtlMapWritePage error = %x error count = %d\n" .LC129: - .string "FtlCheckVpc %x = %x %x\n" + .string "FtlVendorPartRead refresh = %x phyAddr = %x\n" .LC130: - .string "%d GC datablk = %x vpc %x %x\n" + .string "no ect" .LC131: - .string "SWL %x, FSB = %x vpc= %x,ec=%x th=%x\n" + .string "slc mode" .LC132: - .string "Ftlwrite decrement_vpc_count %x = %d\n" -.LC133: - .string "GC des block %x done\n" -.LC134: - .string "...%s: no bad block mapping table, format device\n" -.LC135: - .string "...%s FtlSysBlkInit error ,format device!\n" -.LC136: - .string "FtlInit %x\n" -.LC137: - .string "fix power lost blk = %x vpc=%x\n" -.LC138: - .string "erase power lost blk = %x vpc=%x\n" -.LC139: - .string "FtlWrite: lpa error:%x %x\n" -.LC140: .string "BBT:" +.LC133: + .string "region_id = %x phyAddr = %x\n" +.LC134: + .string "map_ppn:" +.LC135: + .string "load_l2p_region refresh = %x phyAddr = %x\n" +.LC136: + .string "Ftlscanalldata = %x\n" +.LC137: + .string "scan lpa = %x ppa= %x\n" +.LC138: + .string "lba = %x,addr= %x,spare= %x %x %x %x data=%x %x\n" +.LC139: + .string "RSB refresh addr %x\n" +.LC140: + .string "spuer block %x vpn is 0\n " .LC141: - .string "IdBlockReadData %x %x\n" + .string "g_recovery_ppa %x ver %x\n " .LC142: - .string "IdBlockReadData %x %x ret= %x\n" + .string "FtlCheckVpc %x = %x %x\n" .LC143: - .string "IDBlockWriteData %x %x\n" + .string "GC des block %x done\n" .LC144: - .string "IDBlockWriteData %x %x ret= %x\n" + .string "%d GC datablk = %x vpc %x %x\n" .LC145: - .string "idblk:" + .string "SWL %x, FSB = %x vpc= %x,ec=%x th=%x\n" .LC146: - .string "idb reverse %x %x\n" + .string "g_gc_superblock_free %x %x %x %x %x\n" .LC147: - .string "write_idblock totle_sec %x %x\n" + .string "Ftlwrite decrement_vpc_count %x = %d\n" .LC148: - .string "write and check error:%d idb=%x,offset=%x,r=%x,w=%x\n" + .string "rk_ftl_de_init %x\n" .LC149: - .string "write" + .string "...%s: no bad block mapping table, format device\n" .LC150: - .string "read" + .string "...%s FtlSysBlkInit error ,format device!\n" .LC151: - .string "write_idblock error\n" + .string "FtlInit %x\n" .LC152: - .string "READ_SECTOR_IO\n" + .string "fix power lost blk = %x vpc=%x\n" .LC153: - .string "rk_copy_from_user error\n" + .string "erase power lost blk = %x vpc=%x\n" .LC154: - .string "READ_SECTOR_IO %x %x\n" + .string "FtlWrite: lpa error:%x %x\n" .LC155: - .string "rk_copy_to_user error\n" + .string "vpc1" .LC156: - .string "WRITE_SECTOR_IO\n" + .string "vpc2" .LC157: - .string "WRITE_SECTOR_IO %x %x\n" + .string "FtlCheckVpc2 %x = %x %x\n" .LC158: - .string "END_WRITE_SECTOR_IO\n" + .string "free blk vpc error %x = %x %x\n" .LC159: - .string "END_WRITE_SECTOR_IO %x %x\n" + .string "id = %x,%x addr= %x,spare= %x %x %x %x data = %x\n" .LC160: - .string "GET_FLASH_INFO_IO\n" + .string ":" .LC161: - .string "GET_BAD_BLOCK_IO\n" + .string "phyBlk = %x,addr= %x,spare= %x %x %x %x data=%x %x\n" .LC162: - .string "bbt:" + .string "Mblk:" .LC163: - .string "GET_LOCK_FLAG_IO\n" + .string "L2P:" .LC164: - .string "GET_PUBLIC_KEY_IO\n" + .string "L2PC:" .LC165: - .string "RKNAND_GET_DRM_KEY\n" + .string "IdBlockReadData %x %x\n" .LC166: - .string "RKNAND_STORE_DRM_KEY\n" + .string "IdBlockReadData %x %x ret= %x\n" .LC167: - .string "RKNAND_DIASBLE_SECURE_BOOT\n" + .string "write_idblock fix data %x %x\n" .LC168: - .string "RKNAND_ENASBLE_SECURE_BOOT\n" + .string "idblk:" .LC169: - .string "RKNAND_GET_SN_SECTOR\n" + .string "idb reverse %x %x\n" .LC170: - .string "RKNAND_LOADER_UNLOCK\n" + .string "write_idblock totle_sec %x %x %x %x\n" .LC171: - .string "RKNAND_LOADER_STATUS\n" + .string "IDBlockWriteData %x %x\n" .LC172: - .string "RKNAND_LOADER_LOCK\n" + .string "IDBlockWriteData %x %x ret= %x\n" .LC173: - .string "LockKey not match %d\n" + .string "write and check error:%d idb=%x,offset=%x,r=%x,w=%x\n" .LC174: - .string "RKNAND_GET_VENDOR_SECTOR\n" + .string "write" .LC175: - .string "RKNAND_STORE_VENDOR_SECTOR\n" + .string "read" .LC176: - .string "return ret = %lx\n" + .string "write_idblock error %d\n" .LC177: - .string "secureBootEn check error\n" + .string "READ_SECTOR_IO\n" .LC178: + .string "rk_copy_from_user error\n" +.LC179: + .string "READ_SECTOR_IO %x %x\n" +.LC180: + .string "rk_copy_to_user error\n" +.LC181: + .string "WRITE_SECTOR_IO\n" +.LC182: + .string "WRITE_SECTOR_IO %x %x\n" +.LC183: + .string "END_WRITE_SECTOR_IO\n" +.LC184: + .string "END_WRITE_SECTOR_IO %x %x\n" +.LC185: + .string "GET_FLASH_INFO_IO\n" +.LC186: + .string "GET_BAD_BLOCK_IO\n" +.LC187: + .string "GET_LOCK_FLAG_IO\n" +.LC188: + .string "GET_PUBLIC_KEY_IO\n" +.LC189: + .string "RKNAND_GET_DRM_KEY\n" +.LC190: + .string "RKNAND_STORE_DRM_KEY\n" +.LC191: + .string "RKNAND_DIASBLE_SECURE_BOOT\n" +.LC192: + .string "RKNAND_ENASBLE_SECURE_BOOT\n" +.LC193: + .string "RKNAND_GET_SN_SECTOR\n" +.LC194: + .string "RKNAND_LOADER_UNLOCK\n" +.LC195: + .string "RKNAND_LOADER_STATUS\n" +.LC196: + .string "RKNAND_LOADER_LOCK\n" +.LC197: + .string "LockKey not match %d\n" +.LC198: + .string "RKNAND_GET_VENDOR_SECTOR\n" +.LC199: + .string "RKNAND_STORE_VENDOR_SECTOR\n" +.LC200: + .string "return ret = %lx\n" +.LC201: + .string "secureBootEn check error\n" +.LC202: .string "\0013vendor storage %x,%x,%x\n" .data .align 3 @@ -22612,7 +23950,7 @@ gFtlInitStatus: .word -1 .zero 4 .type NandFlashParaTbl, %object - .size NandFlashParaTbl, 2304 + .size NandFlashParaTbl, 2464 NandFlashParaTbl: .byte 6 .byte 44 @@ -23110,6 +24448,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 1 + .hword 2184 + .hword 1479 + .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 @@ -23122,7 +24486,7 @@ NandFlashParaTbl: .byte 2 .byte 1 .hword 1048 - .hword 1503 + .hword 1479 .byte 5 .byte 19 .byte 60 @@ -23160,6 +24524,58 @@ NandFlashParaTbl: .byte 0 .byte 0 .zero 4 + .byte 5 + .byte 44 + .byte -124 + .byte -60 + .byte 52 + .byte -86 + .byte 0 + .byte 4 + .byte 1 + .byte 32 + .hword 512 + .byte 2 + .byte 1 + .hword 2184 + .hword 1479 + .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 -124 + .byte 68 + .byte 52 + .byte -92 + .byte 0 + .byte 4 + .byte 1 + .byte 32 + .hword 512 + .byte 2 + .byte 1 + .hword 2184 + .hword 1479 + .byte 5 + .byte 19 + .byte 60 + .byte 32 + .byte 1 + .byte 0 + .byte 1 + .byte 0 + .byte 1 + .byte 0 + .zero 4 .byte 6 .byte -83 .byte -34 @@ -23473,6 +24889,32 @@ NandFlashParaTbl: .byte 0 .zero 4 .byte 6 + .byte -83 + .byte -43 + .byte -108 + .byte -102 + .byte 116 + .byte 66 + .byte 2 + .byte 1 + .byte 16 + .hword 256 + .byte 2 + .byte 1 + .hword 1024 + .hword 273 + .byte 1 + .byte 0 + .byte 24 + .byte 32 + .byte 4 + .byte 1 + .byte 3 + .byte 0 + .byte 0 + .byte 0 + .zero 4 + .byte 6 .byte -119 .byte 100 .byte 68 @@ -23654,6 +25096,32 @@ NandFlashParaTbl: .byte 0 .byte 0 .zero 4 + .byte 5 + .byte -119 + .byte 100 + .byte 100 + .byte 60 + .byte -95 + .byte 0 + .byte 7 + .byte 1 + .byte 32 + .hword 512 + .byte 2 + .byte 1 + .hword 1024 + .hword 455 + .byte 3 + .byte 17 + .byte 40 + .byte 32 + .byte 1 + .byte 0 + .byte 1 + .byte 0 + .byte 0 + .byte 0 + .zero 4 .byte 6 .byte -104 .byte -41 @@ -24214,7 +25682,7 @@ NandFlashParaTbl: .byte 2 .byte 2 .hword 2106 - .hword 1497 + .hword 473 .byte 2 .byte 68 .byte 40 @@ -24240,7 +25708,7 @@ NandFlashParaTbl: .byte 2 .byte 2 .hword 1074 - .hword 1497 + .hword 473 .byte 2 .byte 68 .byte 40 @@ -24899,6 +26367,7 @@ gTable_Crc32: .LANCHOR0 = . + 0 .LANCHOR2 = . + 4352 .LANCHOR4 = . + 8704 +.LANCHOR5 = . + 17408 .type p_blk_mode_table, %object .size p_blk_mode_table, 8 p_blk_mode_table: @@ -25029,6 +26498,10 @@ gNandMaxDie: .size DieCsIndex, 8 DieCsIndex: .zero 8 + .type g_nandc_version_data, %object + .size g_nandc_version_data, 4 +g_nandc_version_data: + .zero 4 .type gFlashToggleModeEn, %object .size gFlashToggleModeEn, 1 gFlashToggleModeEn: @@ -25041,10 +26514,6 @@ gBootDdrMode: .type gNandcVer, %object .size gNandcVer, 4 gNandcVer: - .zero 4 - .type g_nandc_version_data, %object - .size g_nandc_version_data, 4 -g_nandc_version_data: .zero 4 .type gMasterTempBuf, %object .size gMasterTempBuf, 8 @@ -25071,6 +26540,10 @@ gNandFlashEccBits: gMultiPageProgEn: .zero 1 .zero 2 + .type g_inkDie_check_enable, %object + .size g_inkDie_check_enable, 4 +g_inkDie_check_enable: + .zero 4 .type c_ftl_nand_sys_blks_per_plane, %object .size c_ftl_nand_sys_blks_per_plane, 4 c_ftl_nand_sys_blks_per_plane: @@ -25112,7 +26585,7 @@ c_ftl_nand_die_num: .size c_ftl_nand_planes_per_die, 2 c_ftl_nand_planes_per_die: .zero 2 - .zero 6 + .zero 2 .type p_plane_order_table, %object .size p_plane_order_table, 32 p_plane_order_table: @@ -25233,9 +26706,6 @@ req_wr_io: .size g_MaxLpn, 4 g_MaxLpn: .zero 4 - .type g_cur_erase_blk, %object - .size g_cur_erase_blk, 4 -g_cur_erase_blk: .zero 4 .type gBbtInfo, %object .size gBbtInfo, 96 @@ -25263,10 +26733,10 @@ p_erase_count_table: g_totle_sys_slc_erase_count: .zero 4 .zero 4 - .type p_sys_data_buf, %object - .size p_sys_data_buf, 8 -p_sys_data_buf: - .zero 8 + .type g_sys_save_data, %object + .size g_sys_save_data, 48 +g_sys_save_data: + .zero 48 .type p_data_block_list_table, %object .size p_data_block_list_table, 8 p_data_block_list_table: @@ -25324,10 +26794,6 @@ FtlUpdateVaildLpnCount: .type g_VaildLpn, %object .size g_VaildLpn, 4 g_VaildLpn: - .zero 4 - .type g_inkDie_check_enable, %object - .size g_inkDie_check_enable, 4 -g_inkDie_check_enable: .zero 4 .type g_totle_read_page_count, %object .size g_totle_read_page_count, 4 @@ -25389,15 +26855,11 @@ g_max_erase_count: .size g_min_erase_count, 4 g_min_erase_count: .zero 4 - .type g_sys_save_data, %object - .size g_sys_save_data, 48 -g_sys_save_data: - .zero 48 .type c_ftl_nand_data_op_blks_per_plane, %object .size c_ftl_nand_data_op_blks_per_plane, 2 c_ftl_nand_data_op_blks_per_plane: .zero 2 - .zero 6 + .zero 2 .type gSysInfo, %object .size gSysInfo, 12 gSysInfo: @@ -25487,12 +26949,20 @@ g_gc_next_blk: .type g_gc_next_blk_1, %object .size g_gc_next_blk_1, 2 g_gc_next_blk_1: + .zero 2 + .type g_gc_next_blk_2, %object + .size g_gc_next_blk_2, 2 +g_gc_next_blk_2: + .zero 2 + .type g_gc_next_blk_3, %object + .size g_gc_next_blk_3, 2 +g_gc_next_blk_3: .zero 2 .type g_gc_bad_block_temp_num, %object .size g_gc_bad_block_temp_num, 2 g_gc_bad_block_temp_num: .zero 2 - .zero 2 + .zero 6 .type g_gc_bad_block_temp_tbl, %object .size g_gc_bad_block_temp_tbl, 34 g_gc_bad_block_temp_tbl: @@ -25534,6 +27004,10 @@ g_gc_head_data_block: .type g_gc_head_data_block_count, %object .size g_gc_head_data_block_count, 4 g_gc_head_data_block_count: + .zero 4 + .type g_cur_erase_blk, %object + .size g_cur_erase_blk, 4 +g_cur_erase_blk: .zero 4 .type g_gc_refresh_block_temp_num, %object .size g_gc_refresh_block_temp_num, 2 @@ -25543,7 +27017,6 @@ g_gc_refresh_block_temp_num: .type c_wr_page_buf_num, %object .size c_wr_page_buf_num, 4 c_wr_page_buf_num: - .zero 4 .zero 4 .type req_read, %object .size req_read, 8 @@ -25556,6 +27029,10 @@ req_gc_dst: .type req_prgm, %object .size req_prgm, 8 req_prgm: + .zero 8 + .type p_sys_data_buf, %object + .size p_sys_data_buf, 8 +p_sys_data_buf: .zero 8 .type p_sys_data_buf_1, %object .size p_sys_data_buf_1, 8 @@ -25823,6 +27300,24 @@ g_ftl_nand_free_count: .type last_cache_match_count, %object .size last_cache_match_count, 4 last_cache_match_count: + .zero 4 + .type check_valid_page_count_table, %object + .size check_valid_page_count_table, 8192 +check_valid_page_count_table: + .zero 8192 + .type idb_write_enable, %object + .size idb_write_enable, 1 +idb_write_enable: + .zero 1 + .zero 7 + .type idb_buf, %object + .size idb_buf, 8 +idb_buf: + .zero 8 + .type idb_last_lba, %object + .size idb_last_lba, 4 +idb_last_lba: + .zero 4 .zero 4 .type g_idb_buffer, %object .size g_idb_buffer, 8 diff --git a/drivers/rk_nand/rk_ftlv5_arm64.S b/drivers/rk_nand/rk_ftlv5_arm64.S index 379404130efd..2e4a3c3db025 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-07-03 + * date: 2018-09-05 * function: rk ftl v5 for rockchip soc base on arm v8 to support MLC NAND. */ .cpu generic+fp+simd @@ -831,13 +831,13 @@ FlashLoadPhyInfoInRam: .L127: add w19, w19, 1 add x21, x21, 32 - cmp w19, 74 + cmp w19, 77 bne .L130 b .L133 .L132: add x4, x1, x2, lsl 5 mov w0, w2 - ldrb w4, [x4,2656] + ldrb w4, [x4,2752] 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, 2656 + add x2, x20, 2752 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, 2832 - add x25, x2, 2784 + add x21, x2, 2928 + add x25, x2, 2880 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, 2784 + add x0, x19, 2880 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,2928] + ldrsb w0, [x23,3024] .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, 2940 + add x23, x1, 3036 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, 2936 + add x0, x19, 3032 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, 2784 + add x3, x2, 2880 adrp x4, g_retryMode - add x2, x2, 2832 + add x2, x2, 2928 add x3, x3, x1 add x0, x0, :lo12:g_maxRegNum add x1, x2, x1 @@ -2011,9 +2011,9 @@ HynixGetReadRetryDefault: bne .L272 mov w0, -89 strb w0, [x1,4] - adrp x0, .LANCHOR1+3017 + adrp x0, .LANCHOR1+3113 mov w1, -9 - strb w1, [x0,#:lo12:.LANCHOR1+3017] + strb w1, [x0,#:lo12:.LANCHOR1+3113] b .L327 .L272: cmp w26, 3 @@ -2120,7 +2120,7 @@ HynixGetReadRetryDefault: mov w21, 0 add x26, x25, 4056 add x3, x25, 40 - add x22, x22, 3000 + add x22, x22, 3096 .L278: ldrb w0, [x25,1676] cmp w0, w21 @@ -2524,7 +2524,7 @@ FlashGetReadRetryDefault: strb w1, [x0,-2] adrp x1, .LANCHOR1 add x1, x1, :lo12:.LANCHOR1 - add x1, x1, 2936 + add x1, x1, 3032 b .L382 .L367: sub w0, w0, #65 @@ -2555,7 +2555,7 @@ FlashGetReadRetryDefault: adrp x1, .LANCHOR1 add x1, x1, :lo12:.LANCHOR1 add x0, x0, 4060 - add x1, x1, 2784 + add x1, x1, 2880 mov w2, 45 b .L382 .L370: @@ -2575,7 +2575,7 @@ FlashGetReadRetryDefault: strb w1, [x0,-2] adrp x1, .LANCHOR1 add x1, x1, :lo12:.LANCHOR1 - add x1, x1, 2832 + add x1, x1, 2928 .L382: bl ftl_memcpy .L364: @@ -5316,10 +5316,10 @@ FlashInit: sub w0, w0, #1 uxtb w0, w0 cmp w0, 253 - bhi .L840 + bhi .L841 ldrb w0, [x26,1] cmp w0, 255 - beq .L840 + beq .L841 bl FlashCs123Init .L793: ldrb w0, [x21] @@ -5376,8 +5376,8 @@ FlashInit: add x2, x1, :lo12:.LANCHOR1 strb w5, [x4,685] ldrb w5, [x23,#:lo12:IDByte] - strb w5, [x2,3033] - strb w0, [x2,3034] + strb w5, [x2,3129] + strb w0, [x2,3130] cmp w5, 152 bne .L800 ldrsb w2, [x6,4] @@ -5386,79 +5386,83 @@ FlashInit: strb w2, [x4,685] .L800: add x2, x20, :lo12:.LANCHOR2 - mov w4, 12336 - movk w4, 0x5638, lsl 16 - ldr w5, [x2,568] - cmp w5, w4 + ldr w4, [x2,568] + cmp w4, 2049 + beq .L843 + mov w2, 12336 + movk w2, 0x5638, lsl 16 + cmp w4, w2 bne .L801 +.L843: + add x2, x20, :lo12:.LANCHOR2 mov w4, 16 strb w4, [x2,685] .L801: - cbz w3, .L802 + cbz w3, .L803 add x0, x1, :lo12:.LANCHOR1 mov w2, 2048 - strh w2, [x0,3046] + strh w2, [x0,3142] mov w2, -38 - b .L871 -.L802: + b .L876 +.L803: cmp w0, 220 - bne .L803 + bne .L804 add x0, x1, :lo12:.LANCHOR1 mov w2, 4096 - strh w2, [x0,3046] + strh w2, [x0,3142] mov w2, -36 -.L871: - strb w2, [x0,3034] -.L803: +.L876: + strb w2, [x0,3130] +.L804: add x21, x1, :lo12:.LANCHOR1 add x0, x19, :lo12:.LANCHOR0 - add x1, x21, 2688 + add x1, x21, 2784 mov w2, 32 add x0, x0, 104 bl ftl_memcpy add x0, x21, 256 - add x1, x21, 3032 + add x1, x21, 3128 mov w2, 32 bl ftl_memcpy .L799: add x21, x19, :lo12:.LANCHOR0 ldrb w0, [x21,24] - cbnz w0, .L804 + cbnz w0, .L805 bl FlashLoadPhyInfoInRam - cbnz w0, .L806 + cbnz w0, .L807 ldr x0, [x21,1912] add x21, x20, :lo12:.LANCHOR2 ldrb w1, [x0,17] and w0, w1, 7 strb w0, [x21,564] - tbnz x1, 0, .L806 + tbnz x1, 0, .L807 mov w1, 1 strb w1, [x21,572] bl FlashSetInterfaceMode ldrb w0, [x21,564] bl NandcSetMode -.L806: +.L807: add x0, x19, :lo12:.LANCHOR0 ldr x1, [x0,1912] ldrb w1, [x1,26] strb w1, [x0,136] bl FlashLoadPhyInfo - cbz w0, .L804 + cbz w0, .L805 add x21, x20, :lo12:.LANCHOR2 ldr w0, [x21,576] - cbz w0, .L809 + cbz w0, .L810 mov w0, 1 bl FlashSetInterfaceMode mov w0, 1 - b .L872 -.L809: + b .L877 +.L810: ldrb w0, [x21,564] bl FlashSetInterfaceMode ldrb w0, [x21,564] -.L872: +.L877: bl NandcSetMode bl FlashLoadPhyInfo - cbz w0, .L804 + cbz w0, .L805 mov w0, 1 add x21, x19, :lo12:.LANCHOR0 bl FlashSetInterfaceMode @@ -5481,27 +5485,27 @@ FlashInit: ldrb w2, [x0,9] add w1, w1, 4095 cmp w2, w1, lsr 12 - blt .L811 + blt .L812 ldrh w1, [x0,14] add w1, w1, 255 cmp w2, w1, lsr 8 - bge .L812 -.L811: + bge .L813 +.L812: ldrh w1, [x0,14] and w1, w1, -256 strh w1, [x0,14] -.L812: +.L813: add x21, x20, :lo12:.LANCHOR2 ldrb w0, [x21,564] tst w0, 6 - beq .L813 + beq .L814 bl FlashSavePhyInfo ldr w1, [x21,680] mov w0, 0 bl FlashDdrParaScan -.L813: +.L814: bl FlashSavePhyInfo -.L804: +.L805: add x21, x19, :lo12:.LANCHOR0 add x22, x20, :lo12:.LANCHOR2 ldr x2, [x21,1912] @@ -5525,7 +5529,7 @@ FlashInit: bl FlashDieInfoInit ldr x0, [x21,1912] ldrh w1, [x0,16] - tbz x1, 6, .L815 + tbz x1, 6, .L816 adrp x1, g_retryMode adrp x3, g_maxRegNum ldrb w0, [x0,19] @@ -5540,64 +5544,64 @@ FlashInit: uxtb w2, w2 cmp w2, 6 mov x2, x1 - bhi .L816 + bhi .L817 adrp x1, HynixReadRetrial add x1, x1, :lo12:HynixReadRetrial str x1, [x22,664] sub w1, w0, #5 uxtb w1, w1 cmp w1, 1 - bhi .L817 + bhi .L818 mov w1, 1 str w1, [x22,640] - b .L818 -.L817: + b .L819 +.L818: cmp w0, 7 add x21, x21, 4084 - beq .L819 -.L818: + beq .L820 +.L819: add x21, x19, :lo12:.LANCHOR0 add x21, x21, 4076 -.L819: +.L820: mov x1, 0 mov w2, w1 -.L821: +.L822: ldrsb w3, [x21,x1] add x1, x1, 1 cmp w3, wzr csinc w2, w2, w2, ne cmp x1, 32 - bne .L821 + bne .L822 cmp w2, 27 - bls .L815 + bls .L816 bl FlashGetReadRetryDefault bl FlashSavePhyInfo - b .L815 -.L816: + b .L816 +.L817: sub w3, w0, #17 uxtb w3, w3 cmp w3, 2 - bhi .L823 + bhi .L824 adrp x2, MicronReadRetrial cmp w0, 19 add x2, x2, :lo12:MicronReadRetrial str x2, [x22,664] - beq .L824 + beq .L825 mov w0, 7 - b .L874 -.L824: + b .L879 +.L825: mov w0, 15 -.L874: +.L879: strb w0, [x1,#:lo12:g_maxRetryCount] - b .L815 -.L823: + b .L816 +.L824: sub w1, w0, #65 uxtb w1, w1 cmp w1, 1 - bls .L842 + bls .L844 cmp w0, 33 - bne .L825 -.L842: + bne .L826 +.L844: add x0, x20, :lo12:.LANCHOR2 adrp x1, ToshibaReadRetrial add x1, x1, :lo12:ToshibaReadRetrial @@ -5606,8 +5610,8 @@ FlashInit: strb w0, [x5,#:lo12:g_maxRegNum] mov w0, 7 strb w0, [x2,#:lo12:g_maxRetryCount] - b .L815 -.L825: + b .L816 +.L826: sub w1, w0, #67 uxtb w1, w1 cmp w1, 1 @@ -5615,84 +5619,84 @@ FlashInit: cset w4, ls uxtb w1, w1 cmp w1, 1 - bls .L843 - cbz w4, .L827 -.L843: + bls .L845 + cbz w4, .L828 +.L845: add x1, x20, :lo12:.LANCHOR2 adrp x3, ToshibaReadRetrial add x3, x3, :lo12:ToshibaReadRetrial cmp w0, 35 str x3, [x1,664] - beq .L829 + beq .L830 cmp w0, 68 - beq .L829 + beq .L830 mov w0, 7 - b .L873 -.L829: + b .L878 +.L830: mov w0, 17 -.L873: +.L878: strb w0, [x2,#:lo12:g_maxRetryCount] mov w0, 4 - cbnz w4, .L875 + cbnz w4, .L880 mov w0, 5 -.L875: +.L880: strb w0, [x5,#:lo12:g_maxRegNum] - b .L815 -.L827: + b .L816 +.L828: cmp w0, 49 - bne .L815 + bne .L816 adrp x0, SamsungReadRetrial add x0, x0, :lo12:SamsungReadRetrial str x0, [x22,664] -.L815: +.L816: add x0, x20, :lo12:.LANCHOR2 ldr w1, [x0,568] mov w0, 12336 movk w0, 0x5638, lsl 16 cmp w1, w0 - bne .L832 + bne .L833 add x0, x19, :lo12:.LANCHOR0 ldrb w2, [x0,136] - cbz w2, .L832 + cbz w2, .L833 ldr x0, [x0,1912] strb wzr, [x0,18] -.L832: +.L833: ldrb w0, [x23,#:lo12:IDByte] cmp w0, 44 - bne .L833 + bne .L834 add x0, x20, :lo12:.LANCHOR2 ldrb w0, [x0,572] - cbz w0, .L833 + cbz w0, .L834 mov w0, 12336 movk w0, 0x5638, lsl 16 cmp w1, w0 - bne .L834 + bne .L835 add x0, x19, :lo12:.LANCHOR0 ldrb w0, [x0,136] - cbnz w0, .L833 -.L834: + cbnz w0, .L834 +.L835: add x0, x20, :lo12:.LANCHOR2 strb wzr, [x0,572] mov w0, 1 bl FlashSetInterfaceMode mov w0, 1 bl NandcSetMode -.L833: +.L834: mov w0, 0 bl flash_enter_slc_mode add x1, x20, :lo12:.LANCHOR2 ldrb w0, [x1,564] tst w0, 6 - beq .L835 + beq .L836 ldrb w1, [x1,572] - cbnz w1, .L836 - tbnz x0, 0, .L835 -.L836: + cbnz w1, .L837 + tbnz x0, 0, .L836 +.L837: add x20, x20, :lo12:.LANCHOR2 mov w0, 0 ldr w1, [x20,680] bl FlashDdrParaScan -.L835: +.L836: add x19, x19, :lo12:.LANCHOR0 mov w0, 0 mov w20, 16 @@ -5739,7 +5743,7 @@ FlashInit: ldrb w5, [x19,24] strh w2, [x19,4038] cmp w5, 1 - bne .L838 + bne .L839 lsl w2, w2, 1 lsr w4, w4, 1 lsl w3, w3, 1 @@ -5749,13 +5753,13 @@ FlashInit: strh w4, [x19,4030] strh w3, [x19,4036] strh w2, [x19,4042] -.L838: +.L839: ldrb w0, [x1,20] bl FlashBchSel bl ftl_flash_suspend mov w0, 0 b .L794 -.L840: +.L841: mov w0, -2 .L794: ldp x19, x20, [sp,16] @@ -5783,38 +5787,38 @@ FlashPageProgMsbFFData: ldr x2, [x0,1912] ldrb w0, [x0,136] ldrb w3, [x2,19] - cbz w0, .L877 + cbz w0, .L882 adrp x0, .LANCHOR2+568 ldr w2, [x0,#:lo12:.LANCHOR2+568] mov w0, 12336 movk w0, 0x5638, lsl 16 cmp w2, w0 - beq .L876 -.L877: + beq .L881 +.L882: sub w0, w3, #5 uxtb w0, w0 cmp w0, 2 - bls .L878 + bls .L883 cmp w3, 68 - beq .L878 + beq .L883 sub w3, w3, #19 and w3, w3, -17 uxtb w3, w3 - cbnz w3, .L876 -.L878: + cbnz w3, .L881 +.L883: add x20, x20, :lo12:.LANCHOR0 mov w21, w1 add x24, x20, 652 mov w25, 65535 adrp x26, .LANCHOR2 -.L880: +.L885: ldr x0, [x20,1912] ldrh w0, [x0,10] cmp w0, w19 - bls .L876 + bls .L881 ldrh w0, [x24,w19,sxtw 1] cmp w0, w25 - bne .L876 + bne .L881 add x23, x26, :lo12:.LANCHOR2 mov w1, 255 mov w2, 32768 @@ -5827,8 +5831,8 @@ FlashPageProgMsbFFData: add w19, w19, 1 bl FlashProgPage uxth w19, w19 - b .L880 -.L876: + b .L885 +.L881: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -5859,9 +5863,9 @@ FlashReadSlc2KPages: add x21, x21, :lo12:.LANCHOR0 add x23, x23, :lo12:.LC15 add x24, x24, :lo12:.LC17 -.L886: +.L891: cmp w22, w25 - beq .L920 + beq .L925 mov w1, w27 sub w4, w25, w22 mov x0, x19 @@ -5872,11 +5876,11 @@ FlashReadSlc2KPages: adrp x5, .LANCHOR0 ldrb w1, [x21,1676] cmp w0, w1 - bcc .L887 + bcc .L892 mov w0, -1 str w0, [x19] - b .L888 -.L887: + b .L893 +.L892: add x0, x21, x0, uxtw ldrb w28, [x0,1680] str x5, [x29,96] @@ -5925,58 +5929,61 @@ FlashReadSlc2KPages: ldrb w0, [x0,4044] add w0, w0, w0, lsl 1 cmp w3, w0, lsr 2 - bls .L891 + bls .L896 cmn w3, #1 mov w0, 256 csel w3, w3, w0, eq -.L891: +.L896: cmp w3, 256 - beq .L902 + beq .L907 cmn w3, #1 - bne .L892 -.L902: + bne .L897 +.L907: str w3, [x19] - b .L894 -.L892: + b .L899 +.L897: str wzr, [x19] -.L894: +.L899: ldr x0, [x19,16] - cbz x0, .L895 + cbz x0, .L900 + ldr w1, [x0,12] + cmn w1, #1 + bne .L900 ldr w1, [x0,8] cmn w1, #1 - bne .L895 + bne .L900 ldr w0, [x0] cmn w0, #1 - beq .L895 + beq .L900 str w1, [x19] -.L895: +.L900: ldr w3, [x19] cmn w3, #1 - bne .L888 + bne .L893 add x5, x5, :lo12:.LANCHOR0 ldr w1, [x19,4] mov x0, x23 ldrb w2, [x5,4044] bl printk ldr x1, [x19,8] - cbz x1, .L897 + cbz x1, .L902 adrp x0, .LC16 mov w2, 4 add x0, x0, :lo12:.LC16 mov w3, 8 bl rknand_print_hex -.L897: +.L902: ldr x1, [x19,16] - cbz x1, .L888 + cbz x1, .L893 mov w2, 4 mov x0, x24 mov w3, w2 bl rknand_print_hex -.L888: +.L893: add w22, w22, 1 add x19, x19, 56 - b .L886 -.L920: + b .L891 +.L925: mov w0, 0 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -6008,10 +6015,10 @@ FlashReadPages: ldrb w23, [x3,24] str w2, [x29,140] str w4, [x29,136] - cbz w23, .L961 + cbz w23, .L966 bl FlashReadSlc2KPages - b .L1010 -.L961: + b .L1015 +.L966: adrp x0, .LC15 mov w25, w23 add x0, x0, :lo12:.LC15 @@ -6022,10 +6029,10 @@ FlashReadPages: adrp x0, .LC18 add x0, x0, :lo12:.LC18 str x0, [x29,112] -.L922: +.L927: ldr w0, [x29,144] cmp w25, w0 - bcs .L1012 + bcs .L1017 mov w27, 56 ldr w0, [x29,144] ldr w1, [x29,140] @@ -6042,11 +6049,11 @@ FlashReadPages: ldr w0, [x29,168] ldrb w2, [x1,1676] cmp w0, w2 - bcc .L924 + bcc .L929 mov w0, -1 str w0, [x26,x27] - b .L925 -.L924: + b .L930 +.L929: add x0, x1, x0, uxtw adrp x24, .LANCHOR2 ldrb w19, [x0,1680] @@ -6063,26 +6070,26 @@ FlashReadPages: sub w0, w2, #1 uxtb w0, w0 cmp w0, 6 - bhi .L927 + bhi .L932 add x1, x1, 4056 sxtw x0, w19 add x1, x1, x0 cmp w2, 7 ldrb w3, [x1,12] - bne .L928 + bne .L933 ldrb w3, [x1,20] -.L928: +.L933: add x1, x24, :lo12:.LANCHOR2 add x0, x1, x0 ldrb w0, [x0,560] cmp w0, w3 - beq .L927 + beq .L932 add x2, x22, :lo12:.LANCHOR0 mov w0, w19 add x2, x2, 4060 ldrb w1, [x2,-3] bl HynixSetRRPara -.L927: +.L932: mov w0, w19 bl NandcFlashCs ldr w0, [x29,140] @@ -6090,38 +6097,38 @@ FlashReadPages: cset w0, eq orr w0, w0, w28, lsr 31 str w0, [x29,152] - cbz w0, .L929 + cbz w0, .L934 add x0, x22, :lo12:.LANCHOR0 ldrb w0, [x0,136] - cbz w0, .L929 + cbz w0, .L934 mov w0, w19 bl flash_enter_slc_mode - b .L930 -.L929: + b .L935 +.L934: mov w0, w19 bl flash_exit_slc_mode -.L930: +.L935: cmp w19, 255 ldr w1, [x29,172] - bne .L968 + bne .L973 cmn w1, #1 cset w0, ne - cbz w0, .L962 -.L968: - cbz w20, .L934 + cbz w0, .L967 +.L973: + cbz w20, .L939 add x0, x22, :lo12:.LANCHOR0 ldr w2, [x0,28] mov w0, w19 add w2, w1, w2 bl FlashReadDpCmd - b .L935 -.L934: + b .L940 +.L939: mov w0, w19 bl FlashReadCmd - b .L935 -.L962: + b .L940 +.L967: mov w20, w0 -.L932: +.L937: ldrb w2, [x29,148] mov w0, w19 ldr x3, [x21,8] @@ -6130,15 +6137,15 @@ FlashReadPages: bl NandcXferData cmn w0, #1 mov w28, w0 - bne .L936 + bne .L941 add x0, x22, :lo12:.LANCHOR0 ldrb w1, [x0,32] - cbz w1, .L936 + cbz w1, .L941 strb wzr, [x0,32] mov w20, 0 - b .L930 -.L936: - cbz w20, .L937 + b .L935 +.L941: + cbz w20, .L942 add x0, x22, :lo12:.LANCHOR0 ldr w1, [x29,172] ldr w2, [x0,28] @@ -6158,23 +6165,23 @@ FlashReadPages: cmn w0, #1 mov w23, w0 csel w20, w20, wzr, ne -.L937: +.L942: mov w0, w19 bl NandcFlashDeCs add x6, x22, :lo12:.LANCHOR0 ldrb w0, [x29,136] cmn w28, #1 strb w0, [x6,32] - bne .L944 + bne .L949 add x0, x24, :lo12:.LANCHOR2 ldrb w0, [x0,572] - cbnz w0, .L939 -.L943: + cbnz w0, .L944 +.L948: add x0, x24, :lo12:.LANCHOR2 ldr x20, [x0,664] - cbnz x20, .L940 - b .L1013 -.L939: + cbnz x20, .L945 + b .L1018 +.L944: ldr x0, [x6,3976] mov w4, 1 ldr w1, [x29,172] @@ -6186,18 +6193,18 @@ FlashReadPages: bl FlashDdrTunningRead cmn w0, #1 mov w28, w0 - beq .L942 + beq .L947 ldr x6, [x29,104] ldrb w0, [x6,4044] cmp w28, w0, lsr 1 - bls .L964 -.L942: + bls .L969 +.L947: lsr w0, w20, 8 bl NandcSetDdrPara cmn w28, #1 - beq .L943 - b .L964 -.L940: + beq .L948 + b .L969 +.L945: ldr w1, [x29,172] mov w0, w19 ldr x2, [x21,8] @@ -6206,20 +6213,20 @@ FlashReadPages: cmn w0, #1 mov w28, w0 mov w20, 0 - bne .L945 + bne .L950 add x2, x22, :lo12:.LANCHOR0 ldr x0, [x2,1912] ldrb w0, [x0,19] sub w0, w0, #1 uxtb w0, w0 cmp w0, 6 - bhi .L946 + bhi .L951 ldrb w1, [x2,4057] mov w0, w19 add x2, x2, 4060 mov w3, w20 bl HynixSetRRPara -.L946: +.L951: ldr w1, [x29,172] mov w0, w19 ldr x2, [x21,8] @@ -6236,18 +6243,18 @@ FlashReadPages: bl printk cmn w28, #1 ldr x4, [x29,104] - bne .L945 + bne .L950 ldrb w0, [x4,136] - cbz w0, .L945 + cbz w0, .L950 ldr w0, [x29,152] - cbz w0, .L947 + cbz w0, .L952 mov w0, w19 bl flash_enter_slc_mode - b .L948 -.L947: + b .L953 +.L952: mov w0, w19 bl flash_exit_slc_mode -.L948: +.L953: add x0, x24, :lo12:.LANCHOR2 ldr w1, [x29,172] ldr x2, [x21,8] @@ -6257,102 +6264,102 @@ FlashReadPages: mov w0, w19 blr x4 mov w28, w0 - b .L945 -.L1013: + b .L950 +.L1018: ldr w1, [x29,172] mov w0, w19 ldr x2, [x21,8] ldr x3, [x21,16] bl FlashReadRawPage mov w28, w0 - b .L945 -.L964: + b .L950 +.L969: mov w20, 0 -.L944: +.L949: add x0, x22, :lo12:.LANCHOR0 ldrb w0, [x0,4044] add w0, w0, w0, lsl 1 cmp w28, w0, lsr 2 - bls .L945 + bls .L950 add x0, x24, :lo12:.LANCHOR2 ldr x0, [x0,664] cmp x0, xzr mov w0, 256 csel w28, w28, w0, ne -.L945: +.L950: cmp w28, 256 - beq .L969 + beq .L974 cmn w28, #1 - bne .L949 -.L969: + bne .L954 +.L974: str w28, [x26,x27] - b .L951 -.L949: + b .L956 +.L954: str wzr, [x26,x27] -.L951: +.L956: ldr w3, [x26,x27] cmn w3, #1 - bne .L953 + bne .L958 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, .L953 + cbz x1, .L958 mov w2, 4 ldr x0, [x29,120] mov w3, w2 bl rknand_print_hex -.L953: - cbz w20, .L955 +.L958: + cbz w20, .L960 add x0, x22, :lo12:.LANCHOR0 ldrb w0, [x0,4044] add w0, w0, w0, lsl 1 cmp w23, w0, lsr 2 - bls .L956 + bls .L961 add x24, x24, :lo12:.LANCHOR2 ldr x0, [x24,664] cmp x0, xzr mov w0, 256 csel w23, w23, w0, ne -.L956: +.L961: add w0, w25, 1 mov w1, 56 cmp w23, 256 umull x0, w0, w1 - beq .L970 + beq .L975 cmn w23, #1 - bne .L957 -.L970: + bne .L962 +.L975: str w23, [x26,x0] - b .L955 -.L957: + b .L960 +.L962: str wzr, [x26,x0] -.L955: +.L960: ldr w0, [x29,152] add w25, w25, w20 - cbz w0, .L925 + cbz w0, .L930 add x0, x22, :lo12:.LANCHOR0 ldrb w0, [x0,136] - cbz w0, .L925 + cbz w0, .L930 mov w0, w19 bl flash_exit_slc_mode -.L925: +.L930: add w25, w25, 1 - b .L922 -.L1012: + b .L927 +.L1017: mov w0, 0 - b .L1010 -.L935: + b .L1015 +.L940: mov w0, w19 bl NandcWaitFlashReady - cbz w20, .L932 + cbz w20, .L937 ldr w1, [x29,172] mov w0, w19 bl FlashReadDpDataOutCmd - b .L932 -.L1010: + b .L937 +.L1015: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -6396,18 +6403,18 @@ FlashLoadFactorBbt: str xzr, [x29,144] uxth w25, w25 str w0, [x29,124] -.L1015: +.L1020: add x1, x22, :lo12:.LANCHOR0 ldrb w1, [x1,1676] cmp w1, w19 - bls .L1025 + bls .L1030 mul w3, w19, w21 mov w20, w25 mov w4, 61664 -.L1016: +.L1021: ldr w0, [x29,124] cmp w20, w0 - ble .L1018 + ble .L1023 add w1, w3, w20 add x0, x29, 136 lsl w1, w1, 10 @@ -6421,12 +6428,12 @@ FlashLoadFactorBbt: ldr x3, [x29,112] cmn w0, #1 ldr x4, [x29,104] - beq .L1017 + beq .L1022 add x24, x23, :lo12:.LANCHOR2 ldr x0, [x24,696] ldrh w0, [x0] cmp w0, w4 - bne .L1017 + bne .L1022 add x24, x24, 728 mov x0, x26 mov w1, w19 @@ -6435,20 +6442,20 @@ FlashLoadFactorBbt: bl printk strh w20, [x24,w19,sxtw 1] uxth w28, w28 - b .L1018 -.L1017: + b .L1023 +.L1022: sub w20, w20, #1 uxth w20, w20 - b .L1016 -.L1018: + b .L1021 +.L1023: 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 .L1015 -.L1025: + b .L1020 +.L1030: mov w0, w27 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -6489,9 +6496,9 @@ FlashReadFacBbtData: sub w19, w3, #16 mul w24, w23, w3 uxth w20, w20 -.L1027: +.L1032: cmp w20, w19 - ble .L1035 + ble .L1040 add w0, w20, w24 mov w1, 1 lsl w0, w0, 10 @@ -6501,26 +6508,26 @@ FlashReadFacBbtData: bl FlashReadPages ldr w0, [x29,88] cmn w0, #1 - beq .L1028 + beq .L1033 add x0, x21, :lo12:.LANCHOR2 ldr x0, [x0,696] ldrh w0, [x0] cmp w0, w26 - bne .L1028 + bne .L1033 mov w0, w22 - cbz x22, .L1029 + cbz x22, .L1034 mov x0, x22 mov w1, w23 mov w2, w25 bl FlashReadFacBbtData.part.6 - b .L1029 -.L1028: + b .L1034 +.L1033: sub w20, w20, #1 uxth w20, w20 - b .L1027 -.L1035: + b .L1032 +.L1040: mov w0, -1 -.L1029: +.L1034: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -6550,37 +6557,37 @@ FlashGetBadBlockList: lsr w2, w2, 3 bl FlashReadFacBbtData cmn w0, #1 - bne .L1037 -.L1041: + bne .L1042 +.L1046: mov w1, 0 - b .L1038 -.L1037: + b .L1043 +.L1042: mov w2, 0 lsr w0, w19, 4 mov w1, w2 sub w19, w19, #1 mov w5, 1 -.L1039: +.L1044: cmp w2, w19 - bge .L1038 + bge .L1043 add x3, x20, :lo12:.LANCHOR2 ubfx x4, x2, 5, 11 ldr x6, [x3,688] lsl w3, w5, w2 ldr w4, [x6,x4,lsl 2] tst w3, w4 - beq .L1040 + beq .L1045 add w3, w1, 1 ubfiz x1, x1, 1, 16 strh w2, [x21,x1] uxth w1, w3 -.L1040: +.L1045: cmp w1, w0 - bcs .L1041 + bcs .L1046 add w2, w2, 1 uxth w2, w2 - b .L1039 -.L1038: + b .L1044 +.L1043: ubfiz x1, x1, 1, 16 mov w0, -1 ldp x19, x20, [sp,16] @@ -6612,9 +6619,9 @@ FlashProgSlc2KPages: mov w25, 0 add x22, x22, :lo12:.LANCHOR0 mov w28, -1 -.L1047: +.L1052: cmp w25, w23 - beq .L1076 + beq .L1081 mov w1, w24 sub w4, w23, w25 mov x0, x21 @@ -6624,10 +6631,10 @@ FlashProgSlc2KPages: ldr w0, [x29,100] ldrb w1, [x22,1676] cmp w0, w1 - bcc .L1048 + bcc .L1053 str w28, [x21] - b .L1049 -.L1048: + b .L1054 +.L1053: add x0, x22, x0, uxtw ldrb w20, [x0,1680] mov w0, w20 @@ -6682,36 +6689,36 @@ FlashProgSlc2KPages: ldr w1, [x29,96] mov w0, w20 bl FlashReadStatus - tbz x0, 0, .L1052 + tbz x0, 0, .L1057 str w28, [x21] -.L1052: +.L1057: mov w0, w20 bl NandcFlashDeCs -.L1049: +.L1054: add w25, w25, 1 add x21, x21, 56 - b .L1047 -.L1076: + b .L1052 +.L1081: mov w21, 0 - cbz w27, .L1074 + cbz w27, .L1079 adrp x25, .LC23 adrp x26, .LC22 adrp x27, .LC21 add x25, x25, :lo12:.LC23 add x26, x26, :lo12:.LC22 add x27, x27, :lo12:.LC21 -.L1075: +.L1080: cmp w21, w23 - beq .L1074 + beq .L1079 ldr w0, [x19] cmn w0, #1 - bne .L1055 + bne .L1060 adrp x0, .LC20 ldr w1, [x19,4] add x0, x0, :lo12:.LC20 bl printk - b .L1056 -.L1055: + b .L1061 +.L1060: adrp x20, .LANCHOR2 sub w4, w23, w21 add x22, x20, :lo12:.LANCHOR2 @@ -6738,44 +6745,44 @@ FlashProgSlc2KPages: bl FlashReadPages ldr w22, [x29,104] cmn w22, #1 - bne .L1057 + bne .L1062 ldr w1, [x19,4] mov x0, x27 bl printk str w22, [x19] -.L1057: +.L1062: ldr x0, [x19,16] - cbz x0, .L1058 + cbz x0, .L1063 ldr w2, [x0] add x0, x20, :lo12:.LANCHOR2 ldr x0, [x0,712] ldr w3, [x0] cmp w2, w3 - beq .L1058 + beq .L1063 ldr w1, [x19,4] mov x0, x26 bl printk mov w0, -1 str w0, [x19] -.L1058: +.L1063: ldr x0, [x19,8] - cbz x0, .L1056 + cbz x0, .L1061 add x20, x20, :lo12:.LANCHOR2 ldr w2, [x0] ldr x0, [x20,704] ldr w3, [x0] cmp w2, w3 - beq .L1056 + beq .L1061 ldr w1, [x19,4] mov x0, x25 bl printk mov w0, -1 str w0, [x19] -.L1056: +.L1061: add w21, w21, 1 add x19, x19, 56 - b .L1075 -.L1074: + b .L1080 +.L1079: mov w0, 0 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -6808,18 +6815,18 @@ FlashProgPages: ldrb w4, [x4,24] ldrb w27, [x6,#:lo12:.LANCHOR1+265] ldrb w5, [x5,19] - cbz w4, .L1078 + cbz w4, .L1083 bl FlashProgSlc2KPages - b .L1079 -.L1078: + b .L1084 +.L1083: sub w0, w5, #1 adrp x28, .LANCHOR2 str w0, [x29,120] add x0, x28, :lo12:.LANCHOR2 str x0, [x29,112] -.L1130: +.L1135: cmp w22, w25 - bcs .L1131 + bcs .L1136 mov w20, 56 mov w1, w23 add x2, x29, 128 @@ -6834,11 +6841,11 @@ FlashProgPages: ldr w0, [x29,132] ldrb w2, [x1,1676] cmp w0, w2 - bcc .L1080 + bcc .L1085 mov w0, -1 str w0, [x19,x20] - b .L1081 -.L1080: + b .L1086 +.L1085: add x3, x28, :lo12:.LANCHOR2 uxtw x0, w0 ldrb w3, [x3,648] @@ -6847,15 +6854,15 @@ FlashProgPages: csel w24, w24, wzr, ne madd x0, x0, x3, x1 ldr x0, [x0,1728] - cbz x0, .L1083 + cbz x0, .L1088 cmp w2, 1 - bne .L1084 + bne .L1089 ldr x0, [x1,3976] bl NandcIqrWaitFlashReady -.L1084: +.L1089: ldrb w0, [x29,132] bl FlashWaitCmdDone -.L1083: +.L1088: add x0, x21, :lo12:.LANCHOR0 ldr w2, [x29,132] mov x1, 24 @@ -6865,13 +6872,13 @@ FlashProgPages: str x26, [x0,8] str xzr, [x0,16] str w1, [x0,4] - cbz w24, .L1085 + cbz w24, .L1090 add w1, w22, 1 mov w3, 56 umull x1, w1, w3 add x1, x19, x1 str x1, [x0,16] -.L1085: +.L1090: add x1, x21, :lo12:.LANCHOR0 add x0, x1, x2 ldrb w20, [x0,1680] @@ -6880,11 +6887,11 @@ FlashProgPages: ldrb w0, [x1,1676] strb w20, [x2,1720] cmp w0, 1 - bne .L1086 + bne .L1091 mov w0, w20 bl NandcWaitFlashReady - b .L1087 -.L1086: + b .L1092 +.L1091: mov w0, w20 str x1, [x29,104] bl NandcFlashCs @@ -6899,35 +6906,35 @@ FlashProgPages: bl FlashWaitReadyEN mov w0, w20 bl NandcFlashDeCs -.L1087: +.L1092: ldr w0, [x29,120] cmp w0, 6 - bhi .L1088 + bhi .L1093 ldr x0, [x29,112] add x0, x0, x20, sxtw ldrb w0, [x0,560] - cbz w0, .L1088 + cbz w0, .L1093 add x2, x21, :lo12:.LANCHOR0 mov w0, w20 add x2, x2, 4060 mov w3, 0 ldrb w1, [x2,-3] bl HynixSetRRPara -.L1088: +.L1093: mov w0, w20 bl NandcFlashCs cmp w23, 1 - bne .L1089 + bne .L1094 add x0, x21, :lo12:.LANCHOR0 ldrb w0, [x0,136] - cbz w0, .L1089 + cbz w0, .L1094 mov w0, w20 bl flash_enter_slc_mode - b .L1090 -.L1089: + b .L1095 +.L1094: mov w0, w20 bl flash_exit_slc_mode -.L1090: +.L1095: ldr w1, [x29,128] mov w0, w20 bl FlashProgFirstCmd @@ -6937,7 +6944,7 @@ FlashProgPages: mov w1, 1 mov w2, w27 bl NandcXferData - cbz w24, .L1091 + cbz w24, .L1096 ldr w1, [x29,128] mov w0, w20 add x26, x21, :lo12:.LANCHOR0 @@ -6965,45 +6972,45 @@ FlashProgPages: ldr x3, [x4,8] ldr x4, [x4,16] bl NandcXferData -.L1091: +.L1096: ldr w1, [x29,128] mov w0, w20 add w22, w22, w24 bl FlashProgSecondCmd mov w0, w20 bl NandcFlashDeCs -.L1081: +.L1086: add w22, w22, 1 - b .L1130 -.L1131: + b .L1135 +.L1136: add x21, x21, :lo12:.LANCHOR0 mov x20, 0 mov x22, 24 ldr x0, [x21,3976] bl NandcIqrWaitFlashReady -.L1093: +.L1098: ldrb w0, [x21,1676] cmp w0, w20 - bls .L1132 + bls .L1137 mov w0, w20 bl FlashWaitCmdDone cmp w23, 1 - bne .L1094 + bne .L1099 ldrb w0, [x21,136] - cbz w0, .L1094 + cbz w0, .L1099 madd x0, x20, x22, x21 ldrb w0, [x0,1720] bl flash_exit_slc_mode -.L1094: +.L1099: add x20, x20, 1 - b .L1093 -.L1132: + b .L1098 +.L1137: ldr w0, [x29,124] - cbnz w0, .L1096 -.L1104: + cbnz w0, .L1101 +.L1109: mov w0, 0 - b .L1079 -.L1096: + b .L1084 +.L1101: adrp x24, .LC23 adrp x26, .LC22 adrp x27, .LC21 @@ -7011,18 +7018,18 @@ FlashProgPages: add x24, x24, :lo12:.LC23 add x26, x26, :lo12:.LC22 add x27, x27, :lo12:.LC21 -.L1097: +.L1102: cmp w21, w25 - beq .L1104 + beq .L1109 ldr w0, [x19] cmn w0, #1 - bne .L1098 + bne .L1103 adrp x0, .LC20 ldr w1, [x19,4] add x0, x0, :lo12:.LC20 bl printk - b .L1099 -.L1098: + b .L1104 +.L1103: adrp x20, .LANCHOR2 sub w4, w25, w21 add x22, x20, :lo12:.LANCHOR2 @@ -7049,44 +7056,44 @@ FlashProgPages: bl FlashReadPages ldr w22, [x29,136] cmn w22, #1 - bne .L1100 + bne .L1105 ldr w1, [x19,4] mov x0, x27 bl printk str w22, [x19] -.L1100: +.L1105: ldr x0, [x19,16] - cbz x0, .L1101 + cbz x0, .L1106 ldr w2, [x0] add x0, x20, :lo12:.LANCHOR2 ldr x0, [x0,712] ldr w3, [x0] cmp w2, w3 - beq .L1101 + beq .L1106 ldr w1, [x19,4] mov x0, x26 bl printk mov w0, -1 str w0, [x19] -.L1101: +.L1106: ldr x0, [x19,8] - cbz x0, .L1099 + cbz x0, .L1104 add x20, x20, :lo12:.LANCHOR2 ldr w2, [x0] ldr x0, [x20,704] ldr w3, [x0] cmp w2, w3 - beq .L1099 + beq .L1104 ldr w1, [x19,4] mov x0, x24 bl printk mov w0, -1 str w0, [x19] -.L1099: +.L1104: add w21, w21, 1 add x19, x19, 56 - b .L1097 -.L1079: + b .L1102 +.L1084: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -7149,10 +7156,10 @@ FlashTestBlk: ldr w2, [x0,#:lo12:.LANCHOR0+8] mov w0, 0 cmp w1, w2 - bcc .L1135 + bcc .L1140 mov w0, w1 bl FlashTestBlk.part.7 -.L1135: +.L1140: ldp x29, x30, [sp], 16 ret .size FlashTestBlk, .-FlashTestBlk @@ -7209,17 +7216,17 @@ FlashMakeFactorBbt: sub w0, w22, #1 uxth w0, w0 str w0, [x29,132] -.L1139: +.L1144: add x23, x19, :lo12:.LANCHOR0 ldrb w0, [x23,1676] cmp w0, w20 - bls .L1190 + bls .L1195 ldr x0, [x29,136] sxtw x24, w20 add x0, x0, :lo12:.LANCHOR2 add x0, x0, 728 ldrh w21, [x0,w20,sxtw 1] - cbnz w21, .L1169 + cbnz w21, .L1174 ldrh w2, [x23,4036] mov w1, w21 ldr x0, [x19,#:lo12:.LANCHOR0] @@ -7233,15 +7240,15 @@ FlashMakeFactorBbt: and w0, w0, 4 uxtb w0, w0 str w0, [x29,128] -.L1141: +.L1146: uxth w28, w26 cmp w28, w22 - bcs .L1151 + bcs .L1156 mov w0, -1 strb w0, [x29,166] strb w0, [x29,167] ldr w0, [x29,124] - cbz w0, .L1143 + cbz w0, .L1148 add x4, x19, :lo12:.LANCHOR0 add x2, x29, 166 add x0, x4, 1688 @@ -7256,7 +7263,7 @@ FlashMakeFactorBbt: ldr x3, [x29,112] ldrb w0, [x4,24] cmp w0, 1 - bne .L1143 + bne .L1148 ldr w1, [x4,28] mov w0, w27 add x2, x29, 167 @@ -7266,9 +7273,9 @@ FlashMakeFactorBbt: ldrb w1, [x29,167] and w0, w1, w0 strb w0, [x29,166] -.L1143: +.L1148: ldr w0, [x29,120] - cbz w0, .L1145 + cbz w0, .L1150 add x0, x19, :lo12:.LANCHOR0 add x2, x29, 167 add x0, x0, 1688 @@ -7280,40 +7287,40 @@ FlashMakeFactorBbt: mov w0, w27 add w1, w1, w21 bl FlashReadSpare -.L1145: +.L1150: add x0, x19, :lo12:.LANCHOR0 ldrb w1, [x29,166] ldr x0, [x0,1912] ldrb w0, [x0,7] cmp w0, 8 - beq .L1170 + beq .L1175 cmp w0, 1 - bne .L1146 -.L1170: + bne .L1151 +.L1175: mov w0, 1 - cbz w1, .L1148 + cbz w1, .L1153 ldrb w0, [x29,167] cmp w0, wzr cset w0, eq - b .L1148 -.L1146: + b .L1153 +.L1151: cmp w1, 255 mov w0, 1 - bne .L1148 + bne .L1153 ldrb w0, [x29,167] cmp w0, 255 cset w0, ne -.L1148: +.L1153: ldr w1, [x29,128] - cbz w1, .L1149 + cbz w1, .L1154 add x0, x19, :lo12:.LANCHOR0 add x0, x0, 1688 ldr w1, [x0,x24,lsl 2] mov w0, w27 add w1, w21, w1 bl SandiskProgTestBadBlock -.L1149: - cbz w0, .L1150 +.L1154: + cbz w0, .L1155 adrp x0, .LC25 mov w1, w20 mov w2, w26 @@ -7334,12 +7341,12 @@ FlashMakeFactorBbt: ldrb w0, [x2,1676] mul w0, w1, w0 cmp w23, w0 - bgt .L1151 -.L1150: + bgt .L1156 +.L1155: add w26, w26, 1 add w21, w21, w25 - b .L1141 -.L1151: + b .L1146 +.L1156: adrp x0, .LC26 mov w1, w20 mov w2, w23 @@ -7350,28 +7357,28 @@ FlashMakeFactorBbt: ldrb w0, [x1,1676] mul w0, w2, w0 cmp w23, w0 - blt .L1153 + blt .L1158 ldrh w2, [x1,4036] mov w1, 0 ldr x0, [x19,#:lo12:.LANCHOR0] lsl w2, w2, 9 bl ftl_memset -.L1153: - cbnz w20, .L1155 +.L1158: + cbnz w20, .L1160 add x0, x19, :lo12:.LANCHOR0 adrp x26, .LC27 mov w21, w20 add x26, x26, :lo12:.LC27 mov w23, 1 ldrh w27, [x0,8] -.L1156: +.L1161: add x0, x19, :lo12:.LANCHOR0 ldrb w0, [x0,25] cmp w0, w27 - bls .L1191 + bls .L1196 mov w0, w27 bl FlashTestBlk - cbz w0, .L1157 + cbz w0, .L1162 mov w1, w27 mov x0, x26 add w21, w21, 1 @@ -7384,22 +7391,22 @@ FlashMakeFactorBbt: ldr w3, [x2,x1] orr w0, w3, w0 str w0, [x2,x1] -.L1157: +.L1162: add w27, w27, 1 uxth w27, w27 - b .L1156 -.L1191: + b .L1161 +.L1196: adrp x26, .LC27 ldr w28, [x29,132] sub w27, w22, #50 add x26, x26, :lo12:.LC27 mov w23, 1 -.L1159: +.L1164: cmp w28, w27 - ble .L1192 + ble .L1197 mov w0, w28 bl FlashTestBlk - cbz w0, .L1160 + cbz w0, .L1165 mov w1, w28 mov x0, x26 bl printk @@ -7410,23 +7417,23 @@ FlashMakeFactorBbt: ldr w3, [x2,x1] orr w0, w3, w0 str w0, [x2,x1] -.L1160: +.L1165: sub w28, w28, #1 uxth w28, w28 - b .L1159 -.L1192: + b .L1164 +.L1197: add x0, x19, :lo12:.LANCHOR0 ldrb w1, [x0,25] ldr w2, [x0,8] sub w1, w1, w2 cmp w21, w1 - bcc .L1155 + bcc .L1160 ldrh w2, [x0,4036] mov w1, 0 ldr x0, [x19,#:lo12:.LANCHOR0] lsl w2, w2, 9 bl ftl_memset -.L1155: +.L1160: ldr x0, [x29,136] adrp x23, .LC28 ldr w27, [x29,132] @@ -7434,22 +7441,22 @@ FlashMakeFactorBbt: mul w26, w20, w22 add x28, x0, :lo12:.LANCHOR2 mov w21, -3872 -.L1163: +.L1168: mov w2, w27 mov x0, x23 mov w1, w20 bl printk ldr x2, [x19,#:lo12:.LANCHOR0] -.L1164: +.L1169: ubfx x0, x27, 5, 11 ldr w0, [x2,x0,lsl 2] lsr w0, w0, w27 and w1, w0, 1 - tbz x0, 0, .L1193 + tbz x0, 0, .L1198 sub w27, w27, #1 uxth w27, w27 - b .L1164 -.L1193: + b .L1169 +.L1198: add x0, x28, 728 strh w27, [x0,x24,lsl 1] ldr x0, [x29,152] @@ -7473,15 +7480,15 @@ FlashMakeFactorBbt: mov w3, w1 bl FlashProgPages ldr w0, [x29,168] - cbz w0, .L1169 + cbz w0, .L1174 sub w27, w27, #1 uxth w27, w27 - b .L1163 -.L1169: + b .L1168 +.L1174: add w20, w20, 1 uxtb w20, w20 - b .L1139 -.L1190: + b .L1144 +.L1195: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -7496,14 +7503,14 @@ FlashMakeFactorBbt: Ftl_log2: mov w2, 1 mov w1, 0 -.L1195: +.L1200: cmp w2, w0 - bhi .L1197 + bhi .L1202 add w1, w1, 1 lsl w2, w2, 1 uxth w1, w1 - b .L1195 -.L1197: + b .L1200 +.L1202: sub w0, w1, #1 ret .size Ftl_log2, .-Ftl_log2 @@ -7559,30 +7566,30 @@ FtlConstantsInit: strh w2, [x0,770] strh w1, [x0,772] strh w4, [x0,758] -.L1202: +.L1207: add x5, x0, 776 strb w3, [x3,x5] add x3, x3, 1 cmp x3, 32 - bne .L1202 + bne .L1207 ldrh w3, [x24,20] ldrb w0, [x24,15] cmp w3, w0 - bcs .L1203 + bcs .L1208 uxtb w8, w1 mov w3, 0 mul w11, w1, w2 ubfiz w10, w8, 1, 7 add x12, x19, :lo12:.LANCHOR2 -.L1204: +.L1209: cmp w3, w1 - bcs .L1206 + bcs .L1211 uxtb w0, w3 mov w5, w3 mov w7, 0 -.L1207: +.L1212: cmp w7, w2 - bcs .L1229 + bcs .L1234 add x9, x12, 776 add w13, w5, w11 add w14, w0, w8 @@ -7592,35 +7599,35 @@ FtlConstantsInit: strb w14, [x9,x13] add w5, w5, w1 uxtb w0, w0 - b .L1207 -.L1229: + b .L1212 +.L1234: add w3, w3, 1 - b .L1204 -.L1206: + b .L1209 +.L1211: add x0, x19, :lo12:.LANCHOR2 lsl w2, w2, 1 lsr w4, w4, 1 strh w2, [x0,770] strh w4, [x0,758] -.L1203: +.L1208: add x0, x19, :lo12:.LANCHOR2 mov w2, 5 cmp w6, 1 strh w2, [x0,808] strh wzr, [x0,810] - bne .L1208 + bne .L1213 strh w6, [x0,808] -.L1208: +.L1213: add x0, x19, :lo12:.LANCHOR2 mov w2, 4352 adrp x22, .LANCHOR0 strh w2, [x0,812] add x2, x22, :lo12:.LANCHOR0 ldrb w27, [x2,24] - cbz w27, .L1209 + cbz w27, .L1214 mov w2, 384 strh w2, [x0,812] -.L1209: +.L1214: add x21, x19, :lo12:.LANCHOR2 ldrh w20, [x21,758] ldrh w23, [x21,770] @@ -7654,10 +7661,10 @@ FtlConstantsInit: mul w0, w23, w20 strh w2, [x21,830] str w0, [x21,764] - bls .L1210 + bls .L1215 and w0, w20, 255 strh w0, [x21,810] -.L1210: +.L1215: add x2, x19, :lo12:.LANCHOR2 mul w0, w25, w28 ldrh w1, [x2,810] @@ -7672,15 +7679,15 @@ FtlConstantsInit: sdiv w0, w1, w0 uxth w0, w0 cmp w0, 4 - bhi .L1226 + bhi .L1231 mov w0, 4 -.L1226: +.L1231: strh w0, [x2,840] - cbz w27, .L1213 + cbz w27, .L1218 add x0, x19, :lo12:.LANCHOR2 mov w1, 640 strh w1, [x0,812] -.L1213: +.L1218: add x1, x19, :lo12:.LANCHOR2 lsl w20, w20, 6 cmp w23, 1 @@ -7698,9 +7705,9 @@ FtlConstantsInit: ldrh w0, [x1,840] udiv w0, w0, w23 add w20, w20, w0 - bne .L1227 + bne .L1232 add w20, w20, 4 -.L1227: +.L1232: str w20, [x1,744] add x20, x19, :lo12:.LANCHOR2 add x22, x22, :lo12:.LANCHOR0 @@ -7730,18 +7737,18 @@ FtlConstantsInit: ldr w1, [x20,848] add w4, w1, 3 str w4, [x20,848] - cbz w5, .L1216 + cbz w5, .L1221 add w2, w2, 4 add w1, w1, 5 strh w2, [x20,840] - b .L1228 -.L1216: + b .L1233 +.L1221: cmp w4, 7 - bhi .L1217 + bhi .L1222 mov w1, 8 -.L1228: +.L1233: str w1, [x20,848] -.L1217: +.L1222: add x19, x19, :lo12:.LANCHOR2 ldrh w1, [x19,756] strh wzr, [x19,860] @@ -7750,10 +7757,10 @@ FtlConstantsInit: add w1, w1, 52 add w0, w1, w0, lsl 2 cmp w0, w3, lsl 9 - bcs .L1218 + bcs .L1223 mov w0, 1 strh w0, [x19,860] -.L1218: +.L1223: mov w0, 0 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -7780,10 +7787,8 @@ FtlMemInit: strh wzr, [x0,862] strh w1, [x0,948] strh w1, [x0,950] - mov w1, 32 - str wzr, [x0,864] strh w1, [x0,952] - mov w1, 128 + str wzr, [x0,864] str wzr, [x0,868] str wzr, [x0,872] str wzr, [x0,876] @@ -7804,24 +7809,28 @@ FtlMemInit: str wzr, [x0,940] str wzr, [x0,944] strh w1, [x0,954] - mov w1, 1024 + mov w1, 32 ldrh w2, [x0,824] - strh wzr, [x0,956] - strh wzr, [x0,958] + strh w1, [x0,956] + mov w1, 128 + strh w1, [x0,958] + mov w1, 1024 + strh wzr, [x0,960] sdiv w2, w1, w2 ldrh w1, [x0,748] - strh wzr, [x0,960] - lsl w1, w1, 2 strh wzr, [x0,962] - str w2, [x0,964] + lsl w1, w1, 2 + strh wzr, [x0,964] + strh wzr, [x0,966] cmp w2, w1 - bls .L1231 - str w1, [x0,964] -.L1231: + str w2, [x0,968] + bls .L1236 + str w1, [x0,968] +.L1236: add x19, x20, :lo12:.LANCHOR2 mov w22, 56 ldrh w0, [x19,822] - str wzr, [x19,968] + str wzr, [x19,972] lsl w0, w0, 1 bl ftl_malloc str x0, [x19,976] @@ -7848,7 +7857,7 @@ FtlMemInit: mov w0, w21 bl ftl_malloc str x0, [x19,1024] - ldr w0, [x19,964] + ldr w0, [x19,968] mul w0, w0, w22 bl ftl_malloc str x0, [x19,1032] @@ -7870,7 +7879,7 @@ FtlMemInit: mul w0, w21, w0 bl ftl_malloc str x0, [x19,1072] - ldr w0, [x19,964] + ldr w0, [x19,968] mul w0, w21, w0 bl ftl_malloc str x0, [x19,1080] @@ -7900,7 +7909,7 @@ FtlMemInit: bl ftl_malloc str x0, [x19,1128] ldrh w1, [x19,830] - ldr w0, [x19,964] + ldr w0, [x19,968] mul w0, w1, w0 bl ftl_malloc str x0, [x19,1136] @@ -8001,106 +8010,106 @@ FtlMemInit: ldrh w5, [x19,770] mov w0, 1 mov w2, w4 -.L1232: +.L1237: cmp w0, w5 add x1, x1, 8 - bcs .L1332 + bcs .L1337 ldr x3, [x19,1328] add w0, w0, 1 add x3, x3, x2, uxtw 2 add w2, w2, w4 str x3, [x1,32] - b .L1232 -.L1332: + b .L1237 +.L1337: add x1, x20, :lo12:.LANCHOR2 -.L1234: +.L1239: cmp w0, 8 - beq .L1333 + beq .L1338 add x2, x1, x0, uxtw 3 add w0, w0, 1 str xzr, [x2,1328] - b .L1234 -.L1333: + b .L1239 +.L1338: add x0, x20, :lo12:.LANCHOR2 ldr x1, [x0,1192] - cbnz x1, .L1236 -.L1238: + cbnz x1, .L1241 +.L1243: adrp x0, .LC29 adrp x1, .LANCHOR3 add x0, x0, :lo12:.LC29 add x1, x1, :lo12:.LANCHOR3 bl printk mov w0, -1 - b .L1237 -.L1236: + b .L1242 +.L1241: ldr x1, [x0,1200] - cbz x1, .L1238 + cbz x1, .L1243 ldr x1, [x0,1240] - cbz x1, .L1238 + cbz x1, .L1243 ldr x1, [x0,1256] - cbz x1, .L1238 + cbz x1, .L1243 ldr x1, [x0,1264] - cbz x1, .L1238 + cbz x1, .L1243 ldr x1, [x0,1272] - cbz x1, .L1238 + cbz x1, .L1243 ldr x1, [x0,1280] - cbz x1, .L1238 + cbz x1, .L1243 ldr x1, [x0,1328] - cbz x1, .L1238 + cbz x1, .L1243 ldr x0, [x0,1184] - cbz x0, .L1238 + cbz x0, .L1243 add x0, x20, :lo12:.LANCHOR2 ldr x1, [x0,976] - cbz x1, .L1238 + cbz x1, .L1243 ldr x1, [x0,984] - cbz x1, .L1238 + cbz x1, .L1243 ldr x1, [x0,992] - cbz x1, .L1238 + cbz x1, .L1243 ldr x1, [x0,1008] - cbz x1, .L1238 + cbz x1, .L1243 ldr x1, [x0,1016] - cbz x1, .L1238 + cbz x1, .L1243 ldr x1, [x0,1024] - cbz x1, .L1238 + cbz x1, .L1243 ldr x1, [x0,1000] - cbz x1, .L1238 + cbz x1, .L1243 ldr x1, [x0,1048] - cbz x1, .L1238 + cbz x1, .L1243 ldr x1, [x0,1056] - cbz x1, .L1238 + cbz x1, .L1243 ldr x0, [x0,1064] - cbz x0, .L1238 + cbz x0, .L1243 add x0, x20, :lo12:.LANCHOR2 ldr x1, [x0,1072] - cbz x1, .L1238 + cbz x1, .L1243 ldr x1, [x0,1088] - cbz x1, .L1238 + cbz x1, .L1243 ldr x1, [x0,1096] - cbz x1, .L1238 + cbz x1, .L1243 ldr x1, [x0,1104] - cbz x1, .L1238 + cbz x1, .L1243 ldr x1, [x0,1112] - cbz x1, .L1238 + cbz x1, .L1243 ldr x1, [x0,1120] - cbz x1, .L1238 + cbz x1, .L1243 ldr x1, [x0,1128] - cbz x1, .L1238 + cbz x1, .L1243 ldr x1, [x0,1168] - cbz x1, .L1238 + cbz x1, .L1243 ldr x1, [x0,1152] - cbz x1, .L1238 + cbz x1, .L1243 ldr x0, [x0,1208] - cbz x0, .L1238 + cbz x0, .L1243 adrp x0, .LANCHOR2 add x0, x0, :lo12:.LANCHOR2 ldr x1, [x0,1216] - cbz x1, .L1238 + cbz x1, .L1243 ldr x1, [x0,1224] - cbz x1, .L1238 + cbz x1, .L1243 ldr x0, [x0,1232] - cbz x0, .L1238 + cbz x0, .L1243 mov w0, 0 -.L1237: +.L1242: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldr x23, [sp,48] @@ -8116,23 +8125,23 @@ IsBlkInVendorPart: add x1, x1, :lo12:.LANCHOR2 mov w0, 0 ldrh w2, [x1,1392] - cbz w2, .L1335 + cbz w2, .L1340 ldrh w2, [x1,840] ldr x3, [x1,1208] mov x1, 0 -.L1336: +.L1341: cmp w2, w1, uxth - bls .L1341 + bls .L1346 add x1, x1, 1 add x0, x3, x1, lsl 1 ldrh w0, [x0,-2] cmp w0, w4 - bne .L1336 + bne .L1341 mov w0, 1 - b .L1335 -.L1341: + b .L1340 +.L1346: mov w0, 0 -.L1335: +.L1340: ret .size IsBlkInVendorPart, .-IsBlkInVendorPart .align 2 @@ -8143,26 +8152,26 @@ FtlCacheMetchLpa: mov w6, w0 add x2, x2, :lo12:.LANCHOR2 mov w0, 0 - ldr w3, [x2,968] - cbz w3, .L1343 + ldr w3, [x2,972] + cbz w3, .L1348 ldr x5, [x2,1032] mov x0, 56 mov x2, 0 -.L1344: +.L1349: cmp w3, w2 - bls .L1353 + bls .L1358 madd x4, x2, x0, x5 add x2, x2, 1 ldr w4, [x4,24] cmp w4, w6 - bcc .L1344 + bcc .L1349 cmp w4, w1 - bhi .L1344 + bhi .L1349 mov w0, 1 - b .L1343 -.L1353: + b .L1348 +.L1358: mov w0, 0 -.L1343: +.L1348: ret .size FtlCacheMetchLpa, .-FtlCacheMetchLpa .align 2 @@ -8267,10 +8276,10 @@ FtlBbt2Bitmap: mov x3, 0 mov w0, 65535 mov w5, 1 -.L1362: +.L1367: ldrh w2, [x20,x3] cmp w2, w0 - beq .L1360 + beq .L1365 ubfx x4, x2, 5, 11 add x3, x3, 2 lsl x4, x4, 2 @@ -8279,8 +8288,8 @@ FtlBbt2Bitmap: ldr w1, [x19,x4] orr w2, w1, w2 str w2, [x19,x4] - bne .L1362 -.L1360: + bne .L1367 +.L1365: ldp x19, x20, [sp,16] ldp x29, x30, [sp], 32 ret @@ -8298,7 +8307,7 @@ FtlBbmTblFlush: stp x23, x24, [sp,48] ldr w1, [x19,1400] stp x25, x26, [sp,64] - cbnz w1, .L1367 + cbnz w1, .L1372 ldr x0, [x19,1048] mov x22, 0 ldr x3, [x19,1112] @@ -8307,13 +8316,13 @@ FtlBbmTblFlush: str x0, [x19,1416] str x3, [x19,1424] bl ftl_memset -.L1368: +.L1373: ldrh w1, [x19,770] mov w0, w22 add x20, x19, 1408 add x22, x22, 1 cmp w0, w1 - bge .L1376 + bge .L1381 add x1, x21, x22, lsl 3 ldrh w2, [x19,1288] ldr x3, [x20,8] @@ -8322,32 +8331,32 @@ FtlBbmTblFlush: add x0, x3, x0, sxtw 2 lsl w2, w2, 2 bl ftl_memcpy - b .L1368 -.L1376: - ldr x25, [x20,16] + b .L1373 +.L1381: + ldr x26, [x20,16] mov w1, 255 mov w2, 16 - mov w26, 0 - mov x0, x25 - adrp x22, .LC31 - adrp x24, .LC32 - mov w23, w26 + mov w22, 0 + mov x0, x26 + adrp x23, .LC31 + adrp x25, .LC32 + mov w24, w22 bl ftl_memset - add x22, x22, :lo12:.LC31 + add x23, x23, :lo12:.LC31 mov w0, -3887 - strh w0, [x25] - add x24, x24, :lo12:.LC32 + strh w0, [x26] + add x25, x25, :lo12:.LC32 ldr w0, [x21,8] - str w0, [x25,4] + str w0, [x26,4] ldrh w0, [x19,1296] - strh w0, [x25,2] + strh w0, [x26,2] ldrh w0, [x21,4] - strh w0, [x25,8] + strh w0, [x26,8] ldrh w0, [x21,6] - strh w0, [x25,10] + strh w0, [x26,10] ldr w0, [x19,744] - strh w0, [x25,12] -.L1370: + strh w0, [x26,12] +.L1375: ldr x0, [x19,1048] str x0, [x20,8] ldrh w1, [x19,1296] @@ -8356,27 +8365,22 @@ FtlBbmTblFlush: ldrh w2, [x19,1298] ldrh w3, [x19,1300] orr w0, w2, w1, lsl 10 - ldrh w4, [x25,10] + ldrh w4, [x26,10] str w0, [x20,4] - mov x0, x22 + mov x0, x23 str wzr, [x20] bl printk - mov w1, 1 - mov x0, x20 - mov w2, w1 - mov w3, w1 - bl FlashProgPages ldrh w1, [x19,820] ldrh w0, [x19,1298] sub w1, w1, #1 cmp w0, w1 - blt .L1371 + blt .L1376 ldr w1, [x19,1304] ldrh w0, [x19,1296] add w1, w1, 1 str w1, [x19,1304] - str w1, [x25,4] - strh w0, [x25,8] + str w1, [x26,4] + strh w0, [x26,8] ldrh w1, [x19,1300] strh w0, [x19,1300] ldr x0, [x19,1016] @@ -8389,38 +8393,38 @@ FtlBbmTblFlush: strh wzr, [x19,1298] ldr x0, [x19,1016] bl FlashEraseBlocks +.L1376: mov w1, 1 mov x0, x20 mov w2, w1 mov w3, w1 bl FlashProgPages -.L1371: ldrh w1, [x19,1298] ldr w0, [x20] add w1, w1, 1 strh w1, [x19,1298] cmn w0, #1 - bne .L1372 + bne .L1377 ldr w1, [x20,4] - mov x0, x24 - add w26, w26, 1 + mov x0, x25 + add w22, w22, 1 bl printk - uxth w26, w26 - cmp w26, 3 - bls .L1370 + uxth w22, w22 + cmp w22, 3 + bls .L1375 adrp x0, .LC33 ldr w1, [x20,4] add x0, x0, :lo12:.LC33 - mov w2, w26 + mov w2, w22 bl printk mov w0, 1 str w0, [x19,1400] - b .L1367 + b .L1372 +.L1377: + cbnz w24, .L1372 + mov w24, 1 + b .L1375 .L1372: - cbnz w23, .L1367 - mov w23, 1 - b .L1370 -.L1367: mov w0, 0 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -8451,19 +8455,19 @@ FtlLoadFactoryBbt: mov w25, -1 str x24, [x21,16] mov w26, 61664 -.L1378: +.L1383: ldrh w0, [x19,770] cmp w22, w0 - bcs .L1387 + bcs .L1392 ldrh w20, [x19,814] strh w25, [x23,12] -.L1380: +.L1385: sub w20, w20, #1 ldrh w0, [x19,814] uxth w20, w20 sub w1, w0, #16 cmp w20, w1 - ble .L1381 + ble .L1386 madd w0, w22, w0, w20 mov w1, 1 lsl w0, w0, 10 @@ -8473,16 +8477,16 @@ FtlLoadFactoryBbt: bl FlashReadPages ldr w0, [x21] cmn w0, #1 - beq .L1380 + beq .L1385 ldrh w0, [x24] cmp w0, w26 - bne .L1380 + bne .L1385 strh w20, [x23,12] -.L1381: +.L1386: add w22, w22, 1 add x23, x23, 2 - b .L1378 -.L1387: + b .L1383 +.L1392: mov w0, 0 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -8524,19 +8528,19 @@ FtlBbtCalcTotleCnt: ldrh w1, [x0,814] ldrh w21, [x0,770] mul w21, w1, w21 -.L1390: +.L1395: cmp w20, w21 - bge .L1396 + bge .L1401 mov w0, w20 bl FtlBbmIsBadBlock - cbz w0, .L1391 + cbz w0, .L1396 add w19, w19, 1 uxth w19, w19 -.L1391: +.L1396: add w20, w20, 1 uxth w20, w20 - b .L1390 -.L1396: + b .L1395 +.L1401: mov w0, w19 ldr x21, [sp,32] ldp x19, x20, [sp,16] @@ -8558,7 +8562,7 @@ FtlMakeBbt: stp x27, x28, [sp,80] mov x21, x19 ldr w22, [x20,1400] - cbnz w22, .L1398 + cbnz w22, .L1403 add x24, x20, 1296 mov x19, x20 mov x25, x24 @@ -8566,10 +8570,10 @@ FtlMakeBbt: mov w28, -3872 bl FtlBbtMemInit bl FtlLoadFactoryBbt -.L1399: +.L1404: ldrh w0, [x19,770] cmp w22, w0 - bcs .L1417 + bcs .L1422 ldrh w4, [x25,12] mov w1, 65535 ldr x0, [x19,1048] @@ -8577,7 +8581,7 @@ FtlMakeBbt: cmp w4, w1 str x0, [x20,8] str x26, [x20,16] - beq .L1400 + beq .L1405 ldrh w0, [x19,814] mov w1, 1 mov w2, w1 @@ -8592,23 +8596,23 @@ FtlMakeBbt: ldr x1, [x20,8] lsr w2, w2, 3 bl ftl_memcpy - b .L1401 -.L1400: + b .L1406 +.L1405: mov w1, w22 bl FlashGetBadBlockList ldr x0, [x20,8] ldr x1, [x24,32] bl FtlBbt2Bitmap ldrh w23, [x19,814] -.L1403: +.L1408: sub w23, w23, #1 uxth w23, w23 -.L1402: +.L1407: ldrh w0, [x19,814] madd w0, w22, w0, w23 bl FtlBbmIsBadBlock cmp w0, 1 - beq .L1403 + beq .L1408 ldr x0, [x19,1112] mov w1, 0 mov w2, 16 @@ -8639,64 +8643,64 @@ FtlMakeBbt: bl FlashProgPages ldr w0, [x20] cmn w0, #1 - bne .L1401 + bne .L1406 mov w0, w27 bl FtlBbmMapBadBlock - b .L1402 -.L1401: + b .L1407 +.L1406: mov w0, w27 add w22, w22, 1 add x24, x24, 8 add x25, x25, 2 bl FtlBbmMapBadBlock - b .L1399 -.L1417: + b .L1404 +.L1422: mov w19, 0 -.L1406: +.L1411: add x20, x21, :lo12:.LANCHOR2 ldrh w0, [x20,832] cmp w0, w19 - bls .L1418 + bls .L1423 mov w0, w19 add w19, w19, 1 bl FtlBbmMapBadBlock uxth w19, w19 - b .L1406 -.L1418: + b .L1411 +.L1423: ldrh w19, [x20,1308] mov w23, 65535 sub w19, w19, #1 uxth w19, w19 -.L1408: +.L1413: add x22, x20, 1296 ldrh w0, [x22,12] sub w0, w0, #48 cmp w19, w0 - ble .L1412 + ble .L1417 mov w0, w19 bl FtlBbmIsBadBlock cmp w0, 1 - beq .L1409 + beq .L1414 mov w0, w19 bl FlashTestBlk - cbz w0, .L1410 + cbz w0, .L1415 mov w0, w19 bl FtlBbmMapBadBlock - b .L1409 -.L1410: + b .L1414 +.L1415: ldrh w0, [x20,1296] cmp w0, w23 - bne .L1411 + bne .L1416 strh w19, [x20,1296] - b .L1409 -.L1411: + b .L1414 +.L1416: strh w19, [x22,4] - b .L1412 -.L1409: + b .L1417 +.L1414: sub w19, w19, #1 uxth w19, w19 - b .L1408 -.L1412: + b .L1413 +.L1417: add x19, x21, :lo12:.LANCHOR2 mov w2, 2 ldr x1, [x19,1016] @@ -8725,7 +8729,7 @@ FtlMakeBbt: strh w0, [x19,1300] strh w1, [x19,1296] bl FtlBbmTblFlush -.L1398: +.L1403: mov w0, 0 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -8787,16 +8791,16 @@ P2V_block_in_plane: ftl_cmp_data_ver: cmp w0, w1 mov w2, -2147483648 - bls .L1423 + bls .L1428 sub w1, w0, w1 cmp w1, w2 cset w0, ls - b .L1424 -.L1423: + b .L1429 +.L1428: sub w1, w1, w0 cmp w1, w2 cset w0, hi -.L1424: +.L1429: ret .size ftl_cmp_data_ver, .-ftl_cmp_data_ver .align 2 @@ -8813,12 +8817,12 @@ FtlGetLastWrittenPage: str x25, [sp,64] mov w23, w1 add x3, x3, :lo12:.LANCHOR2 - bne .L1426 + bne .L1431 ldrh w19, [x3,820] - b .L1427 -.L1426: + b .L1432 +.L1431: ldrh w19, [x3,818] -.L1427: +.L1432: sub w19, w19, #1 lsl w21, w0, 10 mov w1, 1 @@ -8833,12 +8837,12 @@ FtlGetLastWrittenPage: bl FlashReadPages ldr w0, [x29,144] cmn w0, #1 - bne .L1428 + bne .L1433 mov w22, 0 mov w25, 2 -.L1429: +.L1434: cmp w22, w19 - bgt .L1428 + bgt .L1433 add w3, w22, w19 mov w1, 1 mov w2, w23 @@ -8850,21 +8854,21 @@ FtlGetLastWrittenPage: bl FlashReadPages ldr w0, [x24] cmn w0, #1 - bne .L1430 + bne .L1435 ldr w0, [x24,4] cmn w0, #1 - bne .L1430 + bne .L1435 ldr w0, [x29,88] cmn w0, #1 - beq .L1430 + beq .L1435 sub w19, w20, #1 sxth w19, w19 - b .L1429 -.L1430: + b .L1434 +.L1435: add w20, w20, 1 sxth w22, w20 - b .L1429 -.L1428: + b .L1434 +.L1433: mov w0, w19 ldr x25, [sp,64] ldp x19, x20, [sp,16] @@ -8894,11 +8898,11 @@ FtlLoadBbt: ldrh w20, [x23,814] sub w20, w20, #1 uxth w20, w20 -.L1437: +.L1442: ldrh w0, [x23,814] sub w0, w0, #48 cmp w20, w0 - ble .L1440 + ble .L1445 lsl w0, w20, 10 mov w1, 1 str w0, [x21,4] @@ -8907,7 +8911,7 @@ FtlLoadBbt: bl FlashReadPages ldr w0, [x21] cmn w0, #1 - bne .L1438 + bne .L1443 ldr w0, [x21,4] mov w1, 1 mov w2, w1 @@ -8915,33 +8919,33 @@ FtlLoadBbt: str w0, [x21,4] mov x0, x21 bl FlashReadPages -.L1438: +.L1443: ldr w0, [x21] cmn w0, #1 - beq .L1439 + beq .L1444 ldrh w0, [x22] cmp w0, w24 - bne .L1439 + bne .L1444 ldr w1, [x22,4] str w1, [x23,1304] strh w20, [x23,1296] ldrh w1, [x22,8] strh w1, [x23,1300] - b .L1440 -.L1439: + b .L1445 +.L1444: sub w20, w20, #1 uxth w20, w20 - b .L1437 -.L1440: + b .L1442 +.L1445: add x21, x19, :lo12:.LANCHOR2 mov w2, 65535 mov w0, -1 ldrh w1, [x21,1296] cmp w1, w2 - beq .L1442 + beq .L1447 ldrh w1, [x21,1300] cmp w1, w2 - beq .L1444 + beq .L1449 add x0, x21, 1408 lsl w1, w1, 10 str w1, [x0,4] @@ -8950,21 +8954,21 @@ FtlLoadBbt: bl FlashReadPages ldr w0, [x21,1408] cmn w0, #1 - beq .L1444 + beq .L1449 ldrh w1, [x22] mov w0, 61649 cmp w1, w0 - bne .L1444 + bne .L1449 ldr w0, [x22,4] ldr w1, [x21,1304] cmp w0, w1 - bls .L1444 + bls .L1449 str w0, [x21,1304] ldrh w1, [x21,1300] ldrh w0, [x22,8] strh w1, [x21,1296] strh w0, [x21,1300] -.L1444: +.L1449: add x20, x19, :lo12:.LANCHOR2 mov w1, 1 add x23, x20, 1408 @@ -8974,8 +8978,8 @@ FtlLoadBbt: sxth w21, w0 add w0, w0, 1 strh w0, [x20,1298] -.L1446: - tbnz w21, #31, .L1451 +.L1451: + tbnz w21, #31, .L1456 ldrh w0, [x20,1296] mov w1, 1 mov w2, w1 @@ -8987,44 +8991,44 @@ FtlLoadBbt: bl FlashReadPages ldr w0, [x23] cmn w0, #1 - beq .L1447 + beq .L1452 ldrh w0, [x22] cmp w0, w24 - bne .L1447 -.L1451: + bne .L1452 +.L1456: add x1, x19, :lo12:.LANCHOR2 ldrh w0, [x22,10] mov w2, 65535 strh w0, [x1,1302] ldrh w0, [x22,12] cmp w0, w2 - bne .L1448 - b .L1449 -.L1447: + bne .L1453 + b .L1454 +.L1452: sub w21, w21, #1 sxth w21, w21 - b .L1446 -.L1448: + b .L1451 +.L1453: ldr w2, [x1,744] cmp w0, w2 - beq .L1449 + beq .L1454 ldrh w1, [x1,758] lsr w1, w1, 2 cmp w0, w1 - bcs .L1449 + bcs .L1454 cmp w2, w1 - bcs .L1449 + bcs .L1454 bl FtlSysBlkNumInit -.L1449: +.L1454: add x19, x19, :lo12:.LANCHOR2 mov x20, 0 add x21, x19, 1296 -.L1452: +.L1457: ldrh w0, [x19,770] mov w1, w20 add x20, x20, 1 cmp w1, w0 - bcs .L1470 + bcs .L1475 ldrh w2, [x19,1288] add x0, x21, x20, lsl 3 ldr x3, [x19,1416] @@ -9033,10 +9037,10 @@ FtlLoadBbt: lsl w2, w2, 2 add x1, x3, x1, lsl 2 bl ftl_memcpy - b .L1452 -.L1470: + b .L1457 +.L1475: mov w0, 0 -.L1442: +.L1447: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -9096,16 +9100,16 @@ FtlFreeSysBlkQueueIn: mov w0, 65533 sub w2, w21, #1 cmp w0, w2, uxth - bcc .L1474 + bcc .L1479 adrp x2, .LANCHOR2 add x20, x2, :lo12:.LANCHOR2 mov x19, x2 ldrh w0, [x20,1470] cmp w0, 1024 - beq .L1474 - cbz w1, .L1476 + beq .L1479 + cbz w1, .L1481 ldr w0, [x20,1400] - cbnz w0, .L1476 + cbnz w0, .L1481 mov w0, w21 bl P2V_block_in_plane uxth w22, w0 @@ -9124,7 +9128,7 @@ FtlFreeSysBlkQueueIn: ldr w0, [x20,912] add w0, w0, 1 str w0, [x20,912] -.L1476: +.L1481: add x1, x19, :lo12:.LANCHOR2 add x1, x1, 1464 ldrh w0, [x1,6] @@ -9136,7 +9140,7 @@ FtlFreeSysBlkQueueIn: and w2, w2, 1023 strh w21, [x0,8] strh w2, [x1,4] -.L1474: +.L1479: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x29, x30, [sp], 48 @@ -9161,7 +9165,7 @@ FtlLowFormatEraseBlock: ldr w2, [x3,1400] str w0, [x29,120] mov w0, 0 - cbnz w2, .L1484 + cbnz w2, .L1489 adrp x28, .LANCHOR0 str w25, [x3,944] add x0, x28, :lo12:.LANCHOR0 @@ -9172,10 +9176,10 @@ FtlLowFormatEraseBlock: mov w23, 56 ldrb w0, [x0,136] str w0, [x29,124] -.L1485: +.L1490: ldrh w0, [x26,748] cmp w0, w27 - bls .L1529 + bls .L1534 umull x0, w27, w23 ldr x1, [x26,1016] str wzr, [x1,x0] @@ -9185,15 +9189,15 @@ FtlLowFormatEraseBlock: bl V2P_block uxth w22, w0 mov w1, w22 - cbz w24, .L1486 + cbz w24, .L1491 str x1, [x29,112] bl IsBlkInVendorPart ldr x1, [x29,112] - cbnz w0, .L1487 -.L1486: + cbnz w0, .L1492 +.L1491: mov w0, w1 bl FtlBbmIsBadBlock - cbnz w0, .L1488 + cbnz w0, .L1493 umull x0, w20, w23 ldr x1, [x26,1016] lsl w22, w22, 10 @@ -9211,16 +9215,16 @@ FtlLowFormatEraseBlock: uxth w20, w20 add x0, x4, x0, sxtw 2 str x0, [x1,16] - b .L1487 -.L1488: + b .L1492 +.L1493: add w19, w19, 1 uxth w19, w19 -.L1487: +.L1492: add w2, w27, 1 uxth w27, w2 - b .L1485 -.L1529: - cbz w20, .L1508 + b .L1490 +.L1534: + cbz w20, .L1513 ldr w0, [x29,124] mov w2, w20 strb wzr, [x26,648] @@ -9233,55 +9237,55 @@ FtlLowFormatEraseBlock: ldrb w0, [x29,120] strb w0, [x26,648] mov x26, 56 -.L1491: +.L1496: cmp w20, w23, uxth - bls .L1530 + bls .L1535 add x1, x21, :lo12:.LANCHOR2 mul x0, x23, x26 ldr x1, [x1,1016] add x2, x1, x0 ldr w0, [x1,x0] cmn w0, #1 - bne .L1492 + bne .L1497 ldr w0, [x2,4] add w19, w19, 1 lsr w0, w0, 10 uxth w19, w19 bl FtlBbmMapBadBlock -.L1492: +.L1497: add x23, x23, 1 - b .L1491 -.L1530: - cbnz w24, .L1494 + b .L1496 +.L1535: + cbnz w24, .L1499 mov w0, 1 uxth w22, w22 mov w27, 6 str w0, [x29,124] - b .L1495 -.L1494: + b .L1500 +.L1499: add x0, x21, :lo12:.LANCHOR2 add x28, x28, :lo12:.LANCHOR0 ldrh w0, [x0,820] str w0, [x29,124] ldrb w0, [x28,136] - cbnz w0, .L1511 + cbnz w0, .L1516 ldr w0, [x29,124] mov w22, 1 lsr w27, w0, 2 - b .L1495 -.L1511: + b .L1500 +.L1516: mov w22, 1 mov w27, w22 -.L1495: +.L1500: mov w23, 0 add x28, x21, :lo12:.LANCHOR2 -.L1504: +.L1509: mov w26, 0 mov w20, w26 -.L1496: +.L1501: ldrh w0, [x28,748] cmp w0, w26 - bls .L1531 + bls .L1536 mov w0, 56 ldr x1, [x28,1016] umull x0, w26, w0 @@ -9293,15 +9297,15 @@ FtlLowFormatEraseBlock: uxth w2, w0 str w2, [x29,112] mov w1, w2 - cbz w24, .L1497 + cbz w24, .L1502 str x1, [x29,104] bl IsBlkInVendorPart ldr x1, [x29,104] - cbnz w0, .L1498 -.L1497: + cbnz w0, .L1503 +.L1502: mov w0, w1 bl FtlBbmIsBadBlock - cbnz w0, .L1498 + cbnz w0, .L1503 mov w0, 56 ldr x1, [x28,1016] ldr w2, [x29,112] @@ -9322,12 +9326,12 @@ FtlLowFormatEraseBlock: ldr x2, [x28,1096] add x0, x2, x0, sxtw 2 str x0, [x1,16] -.L1498: +.L1503: add w3, w26, 1 uxth w26, w3 - b .L1496 -.L1531: - cbz w20, .L1508 + b .L1501 +.L1536: + cbz w20, .L1513 ldr x0, [x28,1016] mov w1, w20 mov w2, w22 @@ -9337,15 +9341,15 @@ FtlLowFormatEraseBlock: ldrb w0, [x29,120] mov x1, 0 strb w0, [x28,648] -.L1501: +.L1506: cmp w20, w1, uxth - bls .L1532 + bls .L1537 mov x0, 56 ldr x2, [x28,1016] mul x0, x1, x0 add x3, x2, x0 ldr w0, [x2,x0] - cbz w0, .L1502 + cbz w0, .L1507 ldr w0, [x3,4] add w19, w19, 1 str x1, [x29,112] @@ -9353,47 +9357,47 @@ FtlLowFormatEraseBlock: uxth w19, w19 bl FtlBbmMapBadBlock ldr x1, [x29,112] -.L1502: +.L1507: add x1, x1, 1 - b .L1501 -.L1532: + b .L1506 +.L1537: add w23, w23, w27 ldr w0, [x29,124] uxth w23, w23 cmp w23, w0 - bcc .L1504 + bcc .L1509 mov x23, 0 mov x26, 56 -.L1505: +.L1510: cmp w20, w23, uxth - bls .L1533 - cbz w24, .L1506 + bls .L1538 + cbz w24, .L1511 add x1, x21, :lo12:.LANCHOR2 mul x0, x23, x26 ldr x1, [x1,1016] add x2, x1, x0 ldr w0, [x1,x0] - cbnz w0, .L1506 + cbnz w0, .L1511 ldr w0, [x2,4] mov w1, 1 lsr w0, w0, 10 bl FtlFreeSysBlkQueueIn -.L1506: +.L1511: add x23, x23, 1 - b .L1505 -.L1533: + b .L1510 +.L1538: cmp w25, 63 - bls .L1512 - cbz w24, .L1508 -.L1512: + bls .L1517 + cbz w24, .L1513 +.L1517: add x21, x21, :lo12:.LANCHOR2 mov w1, w22 mov w2, w20 ldr x0, [x21,1016] bl FlashEraseBlocks -.L1508: +.L1513: mov w0, w19 -.L1484: +.L1489: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -9411,15 +9415,15 @@ FtlFreeSysBLkSort: add x0, x0, 1464 ldrh w6, [x0,2084] ldrh w2, [x0,6] - cbz w2, .L1534 + cbz w2, .L1539 mov w5, 0 ldrh w3, [x0,2] ldrh w2, [x0,4] mov w4, w5 and w6, w6, 31 -.L1536: +.L1541: cmp w4, w6 - bge .L1544 + bge .L1549 add x5, x0, x3, sxtw 1 ldrh w7, [x5,8] add x5, x0, x2, sxtw 1 @@ -9431,69 +9435,16 @@ FtlFreeSysBLkSort: uxth w4, w4 and w3, w3, 1023 and w2, w2, 1023 - b .L1536 -.L1544: - cbz w5, .L1534 + b .L1541 +.L1549: + cbz w5, .L1539 add x0, x1, :lo12:.LANCHOR2 strh w3, [x0,1466] strh w2, [x0,1468] -.L1534: +.L1539: ret .size FtlFreeSysBLkSort, .-FtlFreeSysBLkSort .align 2 - .global remove_from_free_sys_Queue - .type remove_from_free_sys_Queue, %function -remove_from_free_sys_Queue: - stp x29, x30, [sp, -32]! - uxth w1, w0 - mov w0, 0 - add x29, sp, 0 - stp x19, x20, [sp,16] - adrp x20, .LANCHOR2 - add x20, x20, :lo12:.LANCHOR2 - add x20, x20, 1464 - ldrh w3, [x20,6] - cbz w3, .L1546 - ldrh w4, [x20,2] - mov w19, w0 -.L1547: - cmp w19, w3 - bcs .L1552 - add w2, w19, w4 - ubfiz x2, x2, 1, 10 - add x2, x20, x2 - ldrh w0, [x2,8] - cmp w0, w1 - bne .L1548 - adrp x0, .LC34 - add x0, x0, :lo12:.LC34 - bl printk - ldrh w0, [x20,2] - add x1, x20, x0, sxtw 1 - ldrh w1, [x1,8] - add w19, w19, w0 - add w0, w0, 1 - and w0, w0, 1023 - ubfiz x19, x19, 1, 10 - add x19, x20, x19 - strh w0, [x20,2] - ldrh w0, [x20,6] - sub w0, w0, #1 - strh w1, [x19,8] - strh w0, [x20,6] - mov w0, 1 - b .L1546 -.L1548: - add w19, w19, 1 - b .L1547 -.L1552: - mov w0, 0 -.L1546: - ldp x19, x20, [sp,16] - ldp x29, x30, [sp], 32 - ret - .size remove_from_free_sys_Queue, .-remove_from_free_sys_Queue - .align 2 .global FtlFreeSysBlkQueueOut .type FtlFreeSysBlkQueueOut, %function FtlFreeSysBlkQueueOut: @@ -9503,16 +9454,16 @@ FtlFreeSysBlkQueueOut: adrp x19, .LANCHOR2 stp x23, x24, [sp,48] add x19, x19, :lo12:.LANCHOR2 - adrp x23, .LC36 + adrp x23, .LC35 stp x21, x22, [sp,32] stp x25, x26, [sp,64] add x21, x19, 1464 adrp x24, .LANCHOR0 - add x23, x23, :lo12:.LC36 -.L1554: + add x23, x23, :lo12:.LC35 +.L1551: ldrh w1, [x21,6] adrp x22, .LANCHOR2 - cbz w1, .L1555 + cbz w1, .L1552 ldrh w2, [x21,2] sub w1, w1, #1 add x0, x21, x2, sxtw 1 @@ -9522,7 +9473,7 @@ FtlFreeSysBlkQueueOut: and w2, w2, 1023 strh w2, [x21,2] ldrh w20, [x0,8] - cbnz w1, .L1556 + cbnz w1, .L1553 mov w0, w20 str x1, [x29,88] bl P2V_block_in_plane @@ -9533,11 +9484,11 @@ FtlFreeSysBlkQueueOut: str w2, [x0,4] add x0, x24, :lo12:.LANCHOR0 ldrb w0, [x0,136] - cbz w0, .L1557 + cbz w0, .L1554 ldr x0, [x19,1016] mov w2, 1 bl FlashEraseBlocks -.L1557: +.L1554: add x25, x22, :lo12:.LANCHOR2 mov w1, 1 mov w2, w1 @@ -9551,25 +9502,25 @@ FtlFreeSysBlkQueueOut: ldr w0, [x25,912] add w0, w0, 1 str w0, [x25,912] - b .L1556 -.L1555: - adrp x0, .LC35 - add x0, x0, :lo12:.LC35 + b .L1553 +.L1552: + adrp x0, .LC34 + add x0, x0, :lo12:.LC34 bl printk -.L1558: - b .L1558 -.L1556: +.L1555: + b .L1555 +.L1553: sub w0, w20, #1 mov w1, 65533 cmp w1, w0, uxth - bcs .L1559 + bcs .L1556 add x22, x22, :lo12:.LANCHOR2 mov x0, x23 mov w1, w20 ldrh w2, [x22,1470] bl printk - b .L1554 -.L1559: + b .L1551 +.L1556: mov w0, w20 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -9579,6 +9530,38 @@ FtlFreeSysBlkQueueOut: ret .size FtlFreeSysBlkQueueOut, .-FtlFreeSysBlkQueueOut .align 2 + .global test_node_in_list + .type test_node_in_list, %function +test_node_in_list: + ldr x2, [x0] + adrp x0, .LANCHOR2+1280 + mov x4, -6148914691236517206 + uxth w1, w1 + mov w5, 65535 + ldr x3, [x0,#:lo12:.LANCHOR2+1280] + sub x0, x2, x3 + asr x0, x0, 1 + madd x0, x4, x0, x0 + mov w4, 6 + uxth w0, w0 +.L1562: + cmp w1, w0 + beq .L1563 + ldrh w0, [x2] + cmp w0, w5 + beq .L1564 + umull x2, w0, w4 + add x2, x3, x2 + b .L1562 +.L1563: + mov w0, 1 + b .L1561 +.L1564: + mov w0, 0 +.L1561: + ret + .size test_node_in_list, .-test_node_in_list + .align 2 .global insert_data_list .type insert_data_list, %function insert_data_list: @@ -9588,7 +9571,7 @@ insert_data_list: mov x4, x2 ldrh w1, [x3,756] cmp w1, w0 - bls .L1565 + bls .L1567 mov w7, 6 ldr x11, [x3,1280] mov w1, -1 @@ -9597,10 +9580,10 @@ insert_data_list: strh w1, [x5,2] strh w1, [x11,x10] ldr x1, [x3,3568] - cbnz x1, .L1566 + cbnz x1, .L1568 str x5, [x3,3568] - b .L1565 -.L1566: + b .L1567 +.L1568: ubfiz x8, x0, 1, 16 ldr x13, [x3,1184] ldrh w2, [x5,4] @@ -9620,13 +9603,13 @@ insert_data_list: add x9, x14, x8 mov w8, w7 uxth w2, w2 -.L1574: +.L1576: add w3, w3, 1 cmp w0, w2 uxth w3, w3 - beq .L1565 + beq .L1567 cmp w3, w17 - bhi .L1565 + bhi .L1567 ubfiz x15, x2, 1, 16 ldrh w16, [x1,4] cmp w16, wzr @@ -9634,47 +9617,47 @@ insert_data_list: mul w7, w7, w16 csinv w7, w7, wzr, ne cmp w7, w6 - bne .L1570 + bne .L1572 ldrh w15, [x14,x15] ldrh w7, [x9] cmp w15, w7 - bcc .L1572 - b .L1571 -.L1570: - bhi .L1571 + bcc .L1574 + b .L1573 .L1572: + bhi .L1573 +.L1574: ldrh w7, [x1] cmp w7, w18 - bne .L1573 + bne .L1575 strh w2, [x5,2] add x2, x4, :lo12:.LANCHOR2 strh w0, [x1] str x5, [x2,3576] - b .L1565 -.L1573: + b .L1567 +.L1575: umull x1, w7, w8 mov w2, w7 add x1, x12, x1 - b .L1574 -.L1571: + b .L1576 +.L1573: strh w2, [x11,x10] ldrh w2, [x1,2] strh w2, [x5,2] add x2, x4, :lo12:.LANCHOR2 ldr x3, [x2,3568] cmp x1, x3 - bne .L1575 + bne .L1577 strh w0, [x1,2] str x5, [x2,3568] - b .L1565 -.L1575: + b .L1567 +.L1577: ldrh w3, [x1,2] mov w4, 6 ldr x2, [x2,1280] umull x3, w3, w4 strh w0, [x2,x3] strh w0, [x1,2] -.L1565: +.L1567: mov w0, 0 ret .size insert_data_list, .-insert_data_list @@ -9700,7 +9683,7 @@ insert_free_list: uxth w0, w0 mov w7, 65535 cmp w0, w7 - beq .L1580 + beq .L1582 adrp x2, .LANCHOR2 mov w6, 6 add x5, x2, :lo12:.LANCHOR2 @@ -9712,10 +9695,10 @@ insert_free_list: strh w1, [x4,2] strh w1, [x9,x8] ldr x1, [x5,3592] - cbnz x1, .L1581 + cbnz x1, .L1583 str x4, [x5,3592] - b .L1580 -.L1581: + b .L1582 +.L1583: ldr x11, [x5,1168] ubfiz x2, x0, 1, 16 ldr x10, [x5,1280] @@ -9725,41 +9708,41 @@ insert_free_list: asr x2, x2, 1 madd x2, x5, x2, x2 uxth w2, w2 -.L1584: +.L1586: ubfiz x5, x2, 1, 16 ldrh w5, [x11,x5] cmp w5, w12 - bcs .L1582 + bcs .L1584 ldrh w5, [x1] cmp w5, w7 - bne .L1583 + bne .L1585 strh w2, [x4,2] strh w0, [x1] - b .L1580 -.L1583: + b .L1582 +.L1585: umull x1, w5, w6 mov w2, w5 add x1, x10, x1 - b .L1584 -.L1582: + b .L1586 +.L1584: ldrh w5, [x1,2] strh w5, [x4,2] strh w2, [x9,x8] add x2, x3, :lo12:.LANCHOR2 ldr x3, [x2,3592] cmp x1, x3 - bne .L1585 + bne .L1587 strh w0, [x1,2] str x4, [x2,3592] - b .L1580 -.L1585: + b .L1582 +.L1587: ldrh w3, [x1,2] mov w4, 6 ldr x2, [x2,1280] umull x3, w3, w4 strh w0, [x2,x3] strh w0, [x1,2] -.L1580: +.L1582: mov w0, 0 ret .size insert_free_list, .-insert_free_list @@ -9792,31 +9775,31 @@ List_remove_node: ldr x2, [x6,1280] add x4, x2, x1 cmp x4, x3 - bne .L1588 + bne .L1590 ldrh w3, [x2,x1] cmp w3, w7 - bne .L1589 + bne .L1591 str xzr, [x0] - b .L1590 -.L1589: + b .L1592 +.L1591: umull x3, w3, w5 add x3, x2, x3 str x3, [x0] mov w0, -1 strh w0, [x3,2] - b .L1590 -.L1588: + b .L1592 +.L1590: ldrh w0, [x2,x1] ldrh w3, [x4,2] cmp w0, w7 - bne .L1591 + bne .L1593 cmp w3, w0 - beq .L1590 + beq .L1592 umull x3, w3, w5 mov w0, -1 strh w0, [x2,x3] - b .L1590 -.L1591: + b .L1592 +.L1593: umull x0, w0, w5 add x0, x2, x0 strh w3, [x0,2] @@ -9825,7 +9808,7 @@ List_remove_node: ldrh w7, [x2,x1] umull x3, w3, w5 strh w7, [x0,x3] -.L1590: +.L1592: mov w0, -1 strh w0, [x2,x1] strh w0, [x4,2] @@ -9842,14 +9825,14 @@ List_pop_index_node: str x19, [sp,16] mov w19, 65535 ldr x2, [x0] - cbz x2, .L1593 + cbz x2, .L1595 adrp x3, .LANCHOR2+1280 mov w5, w19 mov w6, 6 ldr x4, [x3,#:lo12:.LANCHOR2+1280] -.L1594: - cbnz w1, .L1595 -.L1597: +.L1596: + cbnz w1, .L1597 +.L1599: sub x2, x2, x4 mov x1, -6148914691236517206 asr x2, x2, 1 @@ -9857,17 +9840,17 @@ List_pop_index_node: uxth w19, w2 mov w1, w19 bl List_remove_node - b .L1593 -.L1595: + b .L1595 +.L1597: ldrh w3, [x2] cmp w3, w5 - beq .L1597 + beq .L1599 umull x3, w3, w6 sub w1, w1, #1 add x2, x4, x3 uxth w1, w1 - b .L1594 -.L1593: + b .L1596 +.L1595: mov w0, w19 ldr x19, [sp,16] ldp x29, x30, [sp], 32 @@ -9882,26 +9865,26 @@ List_get_gc_head_node: add x2, x2, :lo12:.LANCHOR2 mov w0, 65535 ldr x1, [x2,3568] - cbz x1, .L1605 + cbz x1, .L1607 ldr x4, [x2,1280] mov w5, 6 -.L1601: - cbz w3, .L1602 +.L1603: + cbz w3, .L1604 ldrh w2, [x1] cmp w2, w0 - beq .L1605 + beq .L1607 umull x2, w2, w5 sub w3, w3, #1 add x1, x4, x2 uxth w3, w3 - b .L1601 -.L1602: + b .L1603 +.L1604: sub x1, x1, x4 mov x0, -6148914691236517206 asr x1, x1, 1 madd x1, x0, x1, x1 uxth w0, w1 -.L1605: +.L1607: ret .size List_get_gc_head_node, .-List_get_gc_head_node .align 2 @@ -9916,20 +9899,20 @@ List_update_data_list: add x0, x19, :lo12:.LANCHOR2 ldrh w1, [x0,3608] cmp w1, w20 - beq .L1607 + beq .L1609 ldrh w1, [x0,3656] cmp w1, w20 - beq .L1607 + beq .L1609 ldrh w1, [x0,3704] cmp w1, w20 - beq .L1607 + beq .L1609 mov w3, 6 ldr x4, [x0,1280] ldr x2, [x0,3568] umull x3, w20, w3 add x1, x4, x3 cmp x1, x2 - beq .L1607 + beq .L1609 ldr x5, [x0,1184] ubfiz x0, x20, 1, 16 ldrh w2, [x5,x0] @@ -9940,11 +9923,11 @@ List_update_data_list: mov w0, 65535 csinv w2, w2, wzr, ne cmp w1, w0 - bne .L1609 + bne .L1611 ldrh w0, [x4,x3] cmp w0, w1 - beq .L1607 -.L1609: + beq .L1609 +.L1611: mov w0, 6 mov x3, -6148914691236517206 umull x1, w1, w0 @@ -9957,7 +9940,7 @@ List_update_data_list: mul w0, w0, w1 csinv w0, w0, wzr, ne cmp w2, w0 - bcs .L1607 + bcs .L1609 add x19, x19, :lo12:.LANCHOR2 mov w1, w20 add x0, x19, 3568 @@ -9967,7 +9950,7 @@ List_update_data_list: strh w0, [x19,3584] mov w0, w20 bl INSERT_DATA_LIST -.L1607: +.L1609: mov w0, 0 ldp x19, x20, [sp,16] ldp x29, x30, [sp], 32 @@ -9977,98 +9960,98 @@ List_update_data_list: .global ftl_free_no_use_map_blk .type ftl_free_no_use_map_blk, %function ftl_free_no_use_map_blk: - stp x29, x30, [sp, -96]! + stp x29, x30, [sp, -80]! mov w1, 0 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] + str x25, [sp,64] mov x19, x0 ldrh w2, [x0,10] ldr x21, [x0,32] - ldr x25, [x0,16] + ldr x22, [x0,16] lsl w2, w2, 1 ldr x20, [x0,40] mov x0, x21 bl ftl_memset mov w0, 0 -.L1614: +.L1616: ldrh w1, [x19,6] cmp w1, w0 - bls .L1627 + bls .L1638 ubfiz x1, x0, 2, 16 ldr w2, [x20,x1] mov w1, 0 ubfx x2, x2, 10, 16 -.L1615: +.L1617: ldrh w3, [x19,10] cmp w3, w1 - bls .L1628 + bls .L1639 ubfiz x3, x1, 1, 16 - ldrh w4, [x25,x3] - cmp w4, w2 - bne .L1616 + ldrh w4, [x22,x3] + cmp w2, w4 + bne .L1618 + cbz w4, .L1618 ldrh w4, [x21,x3] add w4, w4, 1 strh w4, [x21,x3] -.L1616: +.L1618: add w1, w1, 1 uxth w1, w1 - b .L1615 -.L1628: + b .L1617 +.L1639: add w0, w0, 1 uxth w0, w0 - b .L1614 -.L1627: - mov w24, 0 - ldrh w26, [x21] - mov w20, w24 - adrp x27, .LANCHOR2 -.L1619: + b .L1616 +.L1638: + adrp x0, .LANCHOR2+820 + mov w23, 0 + mov w20, w23 + ldrh w1, [x0,#:lo12:.LANCHOR2+820] + ldrh w0, [x19] + strh w1, [x21,x0,lsl 1] + ldrh w24, [x21] +.L1621: ldrh w0, [x19,10] cmp w0, w20 - bls .L1629 - ldrh w0, [x19] - uxtw x22, w20 - cmp w0, w20 - bne .L1620 - add x0, x27, :lo12:.LANCHOR2 - ldrh w1, [x19,2] - ldrh w0, [x0,820] - cmp w1, w0 - bcs .L1620 - strh w0, [x21,x22,lsl 1] -.L1620: - lsl x22, x22, 1 - ldrh w23, [x21,x22] - cmp w26, w23 - bls .L1621 - mov w24, w20 - mov w26, w23 -.L1621: - cbnz w23, .L1622 - ldrh w0, [x25,x22] - cbz w0, .L1622 + bls .L1640 + ubfiz x2, x20, 1, 16 + ldrh w1, [x21,x2] + cmp w24, w1 + bls .L1622 + ldrh w0, [x22,x2] + add x25, x22, x2 + cbnz w0, .L1623 + b .L1624 +.L1622: + cbnz w1, .L1624 + ldrh w0, [x22,x2] + add x25, x22, x2 + cbz w0, .L1624 +.L1626: mov w1, 1 bl FtlFreeSysBlkQueueIn - strh w23, [x25,x22] + strh wzr, [x25] ldrh w0, [x19,8] sub w0, w0, #1 strh w0, [x19,8] -.L1622: +.L1624: add w20, w20, 1 uxth w20, w20 - b .L1619 -.L1629: - mov w0, w24 - ldr x27, [sp,80] + b .L1621 +.L1623: + mov w23, w20 + mov w24, w1 + cbz w1, .L1626 + b .L1624 +.L1640: + mov w0, w23 + 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 x29, x30, [sp], 96 + ldp x29, x30, [sp], 80 ret .size ftl_free_no_use_map_blk, .-ftl_free_no_use_map_blk .align 2 @@ -10082,12 +10065,12 @@ ftl_map_blk_alloc_new_blk: mov w20, 0 ldrh w2, [x0,10] ldr x1, [x0,16] -.L1631: +.L1642: cmp w20, w2 - beq .L1635 + beq .L1646 mov x22, x1 ldrh w21, [x1],2 - cbnz w21, .L1632 + cbnz w21, .L1643 mov x19, x0 bl FtlFreeSysBlkQueueOut strh w0, [x22] @@ -10095,15 +10078,15 @@ ftl_map_blk_alloc_new_blk: sub w2, w1, #1 mov w0, 65533 cmp w0, w2, uxth - bcs .L1633 + bcs .L1644 adrp x2, .LANCHOR2+1470 - adrp x0, .LC37 - add x0, x0, :lo12:.LC37 + adrp x0, .LC36 + add x0, x0, :lo12:.LC36 ldrh w2, [x2,#:lo12:.LANCHOR2+1470] bl printk -.L1634: - b .L1634 -.L1633: +.L1645: + b .L1645 +.L1644: ldr w0, [x19,48] strh w21, [x19,2] add w0, w0, 1 @@ -10112,12 +10095,12 @@ ftl_map_blk_alloc_new_blk: strh w20, [x19] add w0, w0, 1 strh w0, [x19,8] - b .L1635 -.L1632: + b .L1646 +.L1643: add w20, w20, 1 uxth w20, w20 - b .L1631 -.L1635: + b .L1642 +.L1646: mov w0, 0 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -10135,18 +10118,18 @@ FtlMapWritePage: mov x26, x2 stp x23, x24, [sp,48] stp x27, x28, [sp,80] - adrp x23, .LC38 + adrp x23, .LC37 add x28, x25, :lo12:.LANCHOR2 stp x21, x22, [sp,32] stp x19, x20, [sp,16] mov w24, w1 mov x19, x0 mov w22, 0 - add x0, x23, :lo12:.LC38 + add x0, x23, :lo12:.LC37 mov w27, 65535 add x21, x28, 1408 str x0, [x29,104] -.L1638: +.L1649: add x0, x25, :lo12:.LANCHOR2 adrp x20, .LANCHOR2 ldr w1, [x0,896] @@ -10156,16 +10139,16 @@ FtlMapWritePage: ldrh w1, [x19,2] sub w0, w0, #1 cmp w1, w0 - bge .L1639 + bge .L1650 ldrh w0, [x19] cmp w0, w27 - bne .L1640 -.L1639: + bne .L1651 +.L1650: mov x0, x19 bl Ftl_write_map_blk_to_last_page -.L1640: +.L1651: ldr w1, [x28,1400] - cbnz w1, .L1641 + cbnz w1, .L1652 ldrh w2, [x19] ldr x0, [x19,16] ldrh w23, [x0,x2,lsl 1] @@ -10195,7 +10178,7 @@ FtlMapWritePage: strh w3, [x19,2] ldr w0, [x21] cmn w0, #1 - bne .L1642 + bne .L1653 ldr x0, [x29,104] add w22, w22, 1 ldr w1, [x21,4] @@ -10203,35 +10186,41 @@ FtlMapWritePage: bl printk ldrh w0, [x19,2] cmp w0, 2 - bhi .L1643 + bhi .L1654 ldrh w0, [x28,820] sub w0, w0, #1 strh w0, [x19,2] -.L1643: +.L1654: cmp w22, 3 - bls .L1638 + bls .L1649 add x20, x20, :lo12:.LANCHOR2 - adrp x0, .LC39 - add x0, x0, :lo12:.LC39 + adrp x0, .LC38 + add x0, x0, :lo12:.LC38 mov w2, w22 ldr w1, [x20,1412] bl printk mov w0, 1 str w0, [x20,1400] - b .L1641 -.L1642: - cbz w0, .L1645 + b .L1652 +.L1653: + cbz w0, .L1656 strh w23, [x19,60] -.L1645: +.L1656: cmp w3, 1 - beq .L1638 + beq .L1657 cmp w0, 256 - beq .L1638 + beq .L1657 + ldr w0, [x19,56] + cbz w0, .L1658 +.L1657: + str wzr, [x19,56] + b .L1649 +.L1658: add x20, x20, :lo12:.LANCHOR2 ldr x0, [x19,40] ldr w1, [x20,1412] str w1, [x0,w24,uxtw 2] -.L1641: +.L1652: mov w0, 0 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -10254,62 +10243,22 @@ ftl_map_blk_gc: str x27, [sp,80] mov x19, x0 adrp x20, .LANCHOR2 - ldr x22, [x0,16] - ldr x23, [x0,40] + ldr x21, [x0,16] + ldr x25, [x0,40] bl ftl_free_no_use_map_blk - ldrh w4, [x19,10] + ldrh w1, [x19,10] ldrh w2, [x19,8] - sub w1, w4, #4 + sub w1, w1, #4 cmp w2, w1 - bge .L1650 - ldrh w2, [x19,60] - mov w1, 65535 - cmp w2, w1 - beq .L1652 - add x1, x20, :lo12:.LANCHOR2 - ldrh w2, [x19,2] - ldrh w1, [x1,820] - cmp w2, w1 - bcc .L1652 -.L1650: - ldrh w1, [x19,60] - uxth w21, w0 - mov w0, 65535 - cmp w1, w0 - beq .L1654 - add x0, x20, :lo12:.LANCHOR2 - ldrh w3, [x19,2] - ldrh w0, [x0,820] - cmp w0, w3 - bhi .L1654 - mov x2, 0 -.L1655: - uxth w0, w2 - cmp w0, w4 - bcs .L1656 - add x2, x2, 1 - add x5, x22, x2, lsl 1 - ldrh w5, [x5,-2] - cmp w5, w1 - bne .L1655 - mov w21, w0 -.L1656: - ubfiz x2, x0, 1, 16 - adrp x0, .LC40 - add x0, x0, :lo12:.LC40 - ldrh w2, [x22,x2] - bl printk - mov w0, -1 - strh w0, [x19,60] -.L1654: - ubfiz x21, x21, 1, 16 - ldrh w24, [x22,x21] - cbz w24, .L1652 + blt .L1663 + ubfiz x1, x0, 1, 16 + ldrh w24, [x21,x1] + cbz w24, .L1663 ldr w0, [x19,52] - cbnz w0, .L1652 - mov w1, 1 - str w1, [x19,52] - strh w0, [x22,x21] + cbnz w0, .L1663 + mov w2, 1 + str w2, [x19,52] + strh w0, [x21,x1] ldrh w0, [x19,8] ldrh w1, [x19,2] sub w0, w0, #1 @@ -10317,72 +10266,76 @@ ftl_map_blk_gc: add x0, x20, :lo12:.LANCHOR2 ldrh w0, [x0,820] cmp w1, w0 - bcc .L1658 + bcc .L1664 mov x0, x19 bl ftl_map_blk_alloc_new_blk -.L1658: - add x25, x20, :lo12:.LANCHOR2 +.L1664: + add x26, x20, :lo12:.LANCHOR2 mov w21, 0 - add x22, x25, 1408 -.L1659: + add x22, x26, 1408 +.L1665: ldrh w0, [x19,6] cmp w0, w21 - bls .L1670 + bls .L1674 ubfiz x0, x21, 2, 16 - add x27, x23, x0 - ldr w1, [x23,x0] + add x27, x25, x0 + ldr w1, [x25,x0] cmp w24, w1, lsr 10 - bne .L1660 - ldr x1, [x25,1056] - ldr x26, [x25,1112] + bne .L1666 + ldr x1, [x26,1056] + ldr x23, [x26,1112] str x1, [x22,8] mov w1, 1 - str x26, [x22,16] + str x23, [x22,16] mov w2, w1 - ldr w0, [x23,x0] + ldr w0, [x25,x0] str w0, [x22,4] mov x0, x22 bl FlashReadPages ldr w0, [x22] cmn w0, #1 - bne .L1661 -.L1663: + bne .L1667 +.L1669: add x20, x20, :lo12:.LANCHOR2 str wzr, [x27] - adrp x0, .LC41 - ldrh w2, [x26,8] - add x0, x0, :lo12:.LC41 + adrp x0, .LC39 + ldrh w2, [x23,8] + add x0, x0, :lo12:.LC39 ldr w1, [x20,1412] bl printk mov w0, 1 str w0, [x20,1400] - b .L1662 -.L1661: - ldrh w0, [x26,8] + b .L1668 +.L1667: + ldrh w0, [x23,8] cmp w0, w21 - bne .L1663 + bne .L1669 + ldrh w1, [x23] + ldrh w0, [x19,4] + cmp w1, w0 + bne .L1669 ldr x2, [x22,8] mov x0, x19 mov w1, w21 bl FtlMapWritePage -.L1660: +.L1666: add w21, w21, 1 uxth w21, w21 - b .L1659 -.L1670: + b .L1665 +.L1674: mov w0, w24 mov w1, 1 bl FtlFreeSysBlkQueueIn str wzr, [x19,52] -.L1652: +.L1663: add x20, x20, :lo12:.LANCHOR2 ldrh w1, [x19,2] ldrh w0, [x20,820] cmp w1, w0 - bcc .L1662 + bcc .L1668 mov x0, x19 bl ftl_map_blk_alloc_new_blk -.L1662: +.L1668: mov w0, 0 ldr x27, [sp,80] ldp x19, x20, [sp,16] @@ -10406,12 +10359,12 @@ Ftl_write_map_blk_to_last_page: ldr w20, [x1,1400] ldr x22, [x0,16] ldr x23, [x0,40] - cbnz w20, .L1672 + cbnz w20, .L1676 mov x19, x0 ldrh w0, [x0] mov w2, 65535 cmp w0, w2 - bne .L1673 + bne .L1677 ldrh w0, [x19,8] add w0, w0, 1 strh w0, [x19,8] @@ -10422,8 +10375,8 @@ Ftl_write_map_blk_to_last_page: strh w20, [x19] add w0, w0, 1 str w0, [x19,48] - b .L1672 -.L1673: + b .L1676 +.L1677: ubfiz x0, x0, 1, 16 ldr w2, [x19,48] ldrh w22, [x22,x0] @@ -10446,14 +10399,14 @@ Ftl_write_map_blk_to_last_page: lsl w2, w2, 3 bl ftl_memset mov w0, w20 -.L1674: +.L1678: ldrh w1, [x19,6] cmp w1, w0 - bls .L1677 + bls .L1681 ubfiz x3, x0, 2, 32 ldr w1, [x23,x3] cmp w22, w1, lsr 10 - bne .L1675 + bne .L1679 add x2, x21, :lo12:.LANCHOR2 add w20, w20, 1 uxth w20, w20 @@ -10464,11 +10417,11 @@ Ftl_write_map_blk_to_last_page: ldr w3, [x23,x3] add x1, x2, x1 str w3, [x1,4] -.L1675: +.L1679: add w0, w0, 1 uxth w0, w0 - b .L1674 -.L1677: + b .L1678 +.L1681: mov w1, 1 add x0, x21, :lo12:.LANCHOR2 add x0, x0, 1408 @@ -10480,7 +10433,7 @@ Ftl_write_map_blk_to_last_page: strh w0, [x19,2] mov x0, x19 bl ftl_map_blk_gc -.L1672: +.L1676: mov w0, 0 ldr x23, [sp,48] ldp x19, x20, [sp,16] @@ -10525,63 +10478,63 @@ select_l2p_ram_region: mov w5, 65535 ldrh w2, [x1,858] ldr x1, [x1,1264] -.L1680: +.L1684: uxth w0, w4 cmp w0, w2 - bcs .L1696 + bcs .L1700 add x4, x4, 1 add x6, x1, x4, lsl 4 ldrh w6, [x6,-16] cmp w6, w5 - bne .L1680 - b .L1681 -.L1696: + bne .L1684 + b .L1685 +.L1700: mov w0, w2 mov x4, 0 mov w7, -2147483648 -.L1683: +.L1687: uxth w6, w4 cmp w6, w2 - bcs .L1697 + bcs .L1701 add x5, x1, x4, lsl 4 ldr w5, [x5,4] - tbnz w5, #31, .L1692 + tbnz w5, #31, .L1696 cmp w5, w7 - bcc .L1684 -.L1692: + bcc .L1688 +.L1696: mov w5, w7 mov w6, w0 -.L1684: +.L1688: add x4, x4, 1 mov w7, w5 mov w0, w6 - b .L1683 -.L1697: + b .L1687 +.L1701: cmp w0, w2 - bcc .L1681 + bcc .L1685 add x0, x3, :lo12:.LANCHOR2 add x1, x1, 4 mov w4, -1 mov w3, 0 ldrh w5, [x0,3816] mov w0, w2 -.L1687: +.L1691: cmp w3, w2 - beq .L1681 + beq .L1685 ldr w7, [x1] cmp w7, w4 - bcs .L1688 + bcs .L1692 ldrh w6, [x1,-4] cmp w6, w5 csel w4, w4, w7, eq cmp w6, w5 csel w0, w0, w3, eq -.L1688: +.L1692: add w3, w3, 1 add x1, x1, 16 uxth w3, w3 - b .L1687 -.L1681: + b .L1691 +.L1685: ret .size select_l2p_ram_region, .-select_l2p_ram_region .align 2 @@ -10590,49 +10543,51 @@ select_l2p_ram_region: log2phys: stp x29, x30, [sp, -112]! add x29, sp, 0 - stp x19, x20, [sp,16] - adrp x19, .LANCHOR2 - add x3, x19, :lo12:.LANCHOR2 + stp x21, x22, [sp,32] + adrp x21, .LANCHOR2 + add x3, x21, :lo12:.LANCHOR2 stp x23, x24, [sp,48] stp x25, x26, [sp,64] stp x27, x28, [sp,80] - stp x21, x22, [sp,32] - mov x25, x1 - mov w26, w2 + stp x19, x20, [sp,16] + mov x26, x1 + mov w27, w2 ldrh w1, [x3,826] mov x2, 1 - ldr x21, [x3,1264] + ldr x19, [x3,1264] add w1, w1, 7 - lsr w28, w0, w1 + lsr w25, w0, w1 lsl x1, x2, x1 sub w1, w1, #1 and w23, w1, w0 ldrh w1, [x3,858] - uxth w24, w28 + uxth w24, w25 + uxth w0, w23 + str w0, [x29,108] mov x0, 0 - uxth x23, w23 -.L1699: +.L1703: uxth x20, w0 cmp w20, w1 - bcs .L1714 + bcs .L1718 add x0, x0, 1 - add x2, x21, x0, lsl 4 + add x2, x19, x0, lsl 4 ldrh w2, [x2,-16] cmp w2, w24 - bne .L1699 -.L1700: - cbnz w26, .L1701 - add x0, x19, :lo12:.LANCHOR2 + bne .L1703 +.L1704: + ldr w23, [x29,108] + cbnz w27, .L1705 + add x0, x21, :lo12:.LANCHOR2 ldr x1, [x0,1264] add x1, x1, x20, lsl 4 ldr x0, [x1,8] ldr w0, [x0,x23,lsl 2] - str w0, [x25] - b .L1702 -.L1701: - add x1, x19, :lo12:.LANCHOR2 + str w0, [x26] + b .L1706 +.L1705: + add x1, x21, :lo12:.LANCHOR2 lsl x0, x20, 4 - ldr w3, [x25] + ldr w3, [x26] ldr x2, [x1,1264] add x2, x2, x0 ldr x2, [x2,8] @@ -10643,116 +10598,108 @@ log2phys: ldr w2, [x0,4] orr w2, w2, -2147483648 str w2, [x0,4] -.L1702: - add x19, x19, :lo12:.LANCHOR2 - ldr x0, [x19,1264] +.L1706: + add x21, x21, :lo12:.LANCHOR2 + ldr x0, [x21,1264] add x20, x0, x20, lsl 4 ldr w0, [x20,4] cmn w0, #1 - beq .L1711 + beq .L1715 add w0, w0, 1 str w0, [x20,4] - b .L1711 -.L1714: + b .L1715 +.L1718: bl select_l2p_ram_region uxth x20, w0 ubfiz x22, x20, 4, 16 mov w2, 65535 - add x1, x21, x22 - ldrh w3, [x21,x22] + add x1, x19, x22 + ldrh w3, [x19,x22] cmp w3, w2 - beq .L1705 + beq .L1709 ldr w1, [x1,4] - tbz w1, #31, .L1705 + tbz w1, #31, .L1709 bl flush_l2p_region -.L1705: - add x21, x19, :lo12:.LANCHOR2 +.L1709: + add x19, x21, :lo12:.LANCHOR2 ubfiz x0, x24, 2, 16 - ldr x1, [x21,1240] - ldr w27, [x1,x0] - cbnz w27, .L1706 - ldr x0, [x21,1264] + ldr x1, [x19,1240] + ldr w23, [x1,x0] + cbnz w23, .L1710 + ldr x0, [x19,1264] mov w1, 255 - ldrh w2, [x21,828] + ldrh w2, [x19,828] add x0, x0, x22 ldr x0, [x0,8] bl ftl_memset - ldr x0, [x21,1264] + ldr x0, [x19,1264] strh w24, [x0,x22] - ldr x0, [x21,1264] + ldr x0, [x19,1264] add x22, x0, x22 - str w27, [x22,4] - b .L1700 -.L1706: - ldr x0, [x21,1264] - add x3, x21, 1408 + str w23, [x22,4] + b .L1704 +.L1710: + ldr x0, [x19,1264] mov w1, 1 - str x3, [x29,104] - add x0, x0, x22 + add x28, x19, 1408 mov w2, w1 - str w27, [x21,1412] + add x0, x0, x22 + str w23, [x19,1412] ldr x0, [x0,8] - str x0, [x21,1416] - ldr x0, [x21,1112] - str x0, [x21,1424] - mov x0, x3 + str x0, [x19,1416] + ldr x0, [x19,1112] + str x0, [x19,1424] + mov x0, x28 bl FlashReadPages - ldr w0, [x21,1408] - ldr x3, [x29,104] - cmp w0, 256 - ldr x4, [x3,16] - bne .L1707 - and w3, w28, 65535 - adrp x0, .LC42 - mov w1, w3 - mov w2, w27 - add x0, x0, :lo12:.LC42 - str x4, [x29,96] - str x3, [x29,104] - bl printk - add x0, x21, 3752 - ldr x2, [x21,1264] - lsr w1, w27, 10 - ldr x3, [x29,104] - add x2, x2, x22 - strh w1, [x0,60] - mov w1, w3 - ldr x2, [x2,8] - bl FtlMapWritePage - ldr x4, [x29,96] -.L1707: - ldrh w0, [x4,8] + ldr x0, [x19,1424] + ldrh w0, [x0,8] cmp w0, w24 - beq .L1708 - adrp x0, .LC43 - add x21, x19, :lo12:.LANCHOR2 - uxth w1, w28 - mov w2, w27 - add x0, x0, :lo12:.LC43 + beq .L1711 + adrp x0, .LC40 + uxth w1, w25 + mov w2, w23 + add x0, x0, :lo12:.LC40 bl printk mov w2, 4 - ldr x1, [x21,1424] + ldr x1, [x19,1424] adrp x0, .LC17 mov w3, w2 add x0, x0, :lo12:.LC17 bl rknand_print_hex - adrp x0, .LC44 - ldr x1, [x21,1240] - ldrh w3, [x21,856] - add x0, x0, :lo12:.LC44 + adrp x0, .LC41 + ldr x1, [x19,1240] + ldrh w3, [x19,856] + add x0, x0, :lo12:.LC41 mov w2, 4 bl rknand_print_hex mov w0, 1 - str w0, [x21,1400] -.L1708: - add x1, x19, :lo12:.LANCHOR2 + str w0, [x19,1400] + b .L1712 +.L1711: + ldr w0, [x19,1408] + cmp w0, 256 + bne .L1712 + and w25, w25, 65535 + adrp x0, .LC42 + mov w1, w25 + mov w2, w23 + add x0, x0, :lo12:.LC42 + bl printk + ldr x2, [x19,1264] + add x0, x19, 3752 + mov w1, w25 + add x2, x2, x22 + ldr x2, [x2,8] + bl FtlMapWritePage +.L1712: + add x1, x21, :lo12:.LANCHOR2 ldr x0, [x1,1264] add x0, x0, x22 str wzr, [x0,4] ldr x0, [x1,1264] strh w24, [x0,x22] - b .L1700 -.L1711: + b .L1704 +.L1715: mov w0, 0 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -10783,12 +10730,12 @@ FtlVendorPartWrite: mov x24, x2 ldrh w23, [x19,826] mov w21, -1 - bhi .L1716 + bhi .L1720 lsr w23, w25, w23 mov w21, 0 add x27, x19, 3824 -.L1717: - cbz w22, .L1716 +.L1721: + cbz w22, .L1720 ldrh w1, [x19,824] ldr x0, [x19,1232] udiv w26, w25, w1 @@ -10800,8 +10747,8 @@ FtlVendorPartWrite: cmp w20, w22 csel w20, w0, w20, hi cmp w20, w1 - beq .L1719 - cbz w2, .L1719 + beq .L1723 + cbz w2, .L1723 ldr x0, [x19,1064] mov w1, 1 str w2, [x29,108] @@ -10810,13 +10757,13 @@ FtlVendorPartWrite: add x0, x29, 104 str xzr, [x29,120] bl FlashReadPages - b .L1720 -.L1719: + b .L1724 +.L1723: ldr x0, [x19,1064] mov w1, 0 ldrh w2, [x19,828] bl ftl_memset -.L1720: +.L1724: ldr x0, [x19,1064] lsl w28, w20, 9 ubfiz x26, x26, 9, 16 @@ -10834,8 +10781,8 @@ FtlVendorPartWrite: bl FtlMapWritePage cmn w0, #1 csinv w21, w21, wzr, ne - b .L1717 -.L1716: + b .L1721 +.L1720: mov w0, w21 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -10866,16 +10813,16 @@ FtlVendorPartRead: ldrh w20, [x3,826] cmp w2, w1 mov w0, -1 - bhi .L1731 - adrp x26, .LC45 + bhi .L1735 + adrp x26, .LC43 add x0, x3, 3824 lsr w20, w23, w20 mov w21, 0 mov x28, x3 - add x26, x26, :lo12:.LC45 + add x26, x26, :lo12:.LC43 str x0, [x29,104] -.L1732: - cbz w22, .L1740 +.L1736: + cbz w22, .L1744 ldrh w19, [x28,824] ldr x0, [x28,1232] udiv w24, w23, w19 @@ -10887,7 +10834,7 @@ FtlVendorPartRead: cmp w19, w22 csel w19, w0, w19, hi lsl w27, w19, 9 - cbz w4, .L1734 + cbz w4, .L1738 ldr x0, [x28,1064] mov w1, 1 str x0, [x29,128] @@ -10903,7 +10850,7 @@ FtlVendorPartRead: ldr w0, [x28,1408] csinv w21, w21, wzr, ne cmp w0, 256 - bne .L1736 + bne .L1740 mov w1, w20 mov w2, w4 mov x0, x26 @@ -10912,28 +10859,28 @@ FtlVendorPartRead: mov w1, w20 ldr x2, [x28,1064] bl FtlMapWritePage -.L1736: +.L1740: ldr x1, [x28,1064] ubfiz x24, x24, 9, 16 mov x0, x25 mov w2, w27 add x1, x1, x24 bl ftl_memcpy - b .L1737 -.L1734: + b .L1741 +.L1738: mov x0, x25 mov w1, w4 mov w2, w27 bl ftl_memset -.L1737: +.L1741: add w20, w20, 1 sub w22, w22, w19 add w23, w23, w19 add x25, x25, x27, sxtw - b .L1732 -.L1740: + b .L1736 +.L1744: mov w0, w21 -.L1731: +.L1735: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -10971,13 +10918,13 @@ FtlUpdateVaildLpn: adrp x1, .LANCHOR2 add x3, x1, :lo12:.LANCHOR2 ldrh w2, [x3,3888] - cbnz w0, .L1744 + cbnz w0, .L1748 cmp w2, 4 - bhi .L1744 + bhi .L1748 add w2, w2, 1 strh w2, [x3,3888] - b .L1743 -.L1744: + b .L1747 +.L1748: add x0, x1, :lo12:.LANCHOR2 mov w7, 65535 strh wzr, [x0,3888] @@ -10985,20 +10932,20 @@ FtlUpdateVaildLpn: ldrh w5, [x0,756] ldr x6, [x0,1184] mov x0, 0 -.L1745: +.L1749: cmp w5, w0, uxth - bls .L1743 + bls .L1747 ldrh w4, [x6,x0,lsl 1] cmp w4, w7 - beq .L1746 + beq .L1750 add x3, x1, :lo12:.LANCHOR2 ldr w2, [x3,3892] add w2, w4, w2 str w2, [x3,3892] -.L1746: +.L1750: add x0, x0, 1 - b .L1745 -.L1743: + b .L1749 +.L1747: ret .size FtlUpdateVaildLpn, .-FtlUpdateVaildLpn .align 2 @@ -11012,13 +10959,13 @@ FtlMapBlkWriteDumpData: ldr w1, [x0,56] ldrh w19, [x0,6] ldr x4, [x0,40] - cbz w1, .L1749 + cbz w1, .L1753 adrp x1, .LANCHOR2 str wzr, [x0,56] add x2, x1, :lo12:.LANCHOR2 mov x21, x1 ldr w3, [x2,1400] - cbnz w3, .L1749 + cbnz w3, .L1753 mov x20, x0 sub w19, w19, #1 add x0, x2, 1408 @@ -11030,23 +10977,23 @@ FtlMapBlkWriteDumpData: str x1, [x0,8] ldr w3, [x4,x3] str w3, [x0,4] - cbz w3, .L1753 + cbz w3, .L1757 mov w1, 1 mov w2, w1 bl FlashReadPages - b .L1754 -.L1753: + b .L1758 +.L1757: ldrh w2, [x2,828] mov x0, x1 mov w1, 255 bl ftl_memset -.L1754: +.L1758: add x2, x21, :lo12:.LANCHOR2 mov x0, x20 mov w1, w19 ldr x2, [x2,1416] bl FtlMapWritePage -.L1749: +.L1753: ldp x19, x20, [sp,16] ldr x21, [sp,32] ldp x29, x30, [sp], 48 @@ -11065,7 +11012,7 @@ FtlVpcTblFlush: add x19, x22, :lo12:.LANCHOR2 stp x23, x24, [sp,48] ldr w0, [x19,1400] - cbnz w0, .L1757 + cbnz w0, .L1761 ldr x21, [x19,1112] add x20, x19, 3520 ldr x1, [x19,1048] @@ -11082,45 +11029,49 @@ FtlVpcTblFlush: mov w0, 19539 ldrh w1, [x19,3608] movk w0, 0x4654, lsl 16 - strh w1, [x19,3534] + strh w1, [x20,14] ldrh w1, [x19,3610] ldrb w2, [x19,3614] str w0, [x19,3520] - mov w0, 72 + mov w0, 80 orr w1, w2, w1, lsl 6 - strh w1, [x19,3536] + strh w1, [x20,16] ldrh w1, [x19,3656] movk w0, 0x5000, lsl 16 - strh w1, [x19,3538] + strh w1, [x20,18] ldrh w1, [x19,3658] ldrb w2, [x19,3662] - str w0, [x19,3524] + str w0, [x20,4] ldrh w0, [x19,3902] orr w1, w2, w1, lsl 6 - strh w0, [x19,3528] + strh w0, [x20,8] ldrh w0, [x19,770] - strb w0, [x19,3530] + strb w0, [x20,10] ldrb w0, [x19,3616] - strb w0, [x19,3531] - strh w1, [x19,3540] + strb w0, [x20,11] + strh w1, [x20,20] ldrb w0, [x19,3664] ldrh w1, [x19,3704] - strb w0, [x19,3532] - strh w1, [x19,3542] + strb w0, [x20,12] + strh w1, [x20,22] ldrh w1, [x19,3706] ldrb w0, [x19,3712] - strb w0, [x19,3533] + strb w0, [x20,13] ldr w0, [x19,904] - ldrb w2, [x19,3710] - str w0, [x19,3552] + str w0, [x20,32] ldr w0, [x19,872] - orr w1, w2, w1, lsl 6 - str w0, [x19,3560] + str w0, [x20,40] ldr w0, [x19,876] - str w0, [x19,3556] + ldrb w2, [x19,3710] + str w0, [x20,36] + ldrh w0, [x19,948] + orr w1, w2, w1, lsl 6 + strh w0, [x20,44] + ldrh w0, [x19,950] + strh w0, [x20,46] ldrh w2, [x19,828] ldr x0, [x19,1416] - strh w1, [x19,3544] + strh w1, [x20,24] mov w1, 255 bl ftl_memset ldr x0, [x19,1416] @@ -11145,7 +11096,7 @@ FtlVpcTblFlush: ldr x1, [x1,#:lo12:.LANCHOR0+16] bl ftl_memcpy ldrh w0, [x19,860] - cbz w0, .L1758 + cbz w0, .L1762 ldrh w0, [x19,756] ldrh w2, [x19,856] lsr w1, w0, 3 @@ -11157,90 +11108,82 @@ FtlVpcTblFlush: add x0, x1, x0 ldr x1, [x19,1240] bl ftl_memcpy -.L1758: - add x19, x22, :lo12:.LANCHOR2 +.L1762: mov w0, 0 - mov w23, 0 + mov w20, 0 mov w25, 65535 - add x20, x19, 1408 + add x19, x22, :lo12:.LANCHOR2 bl FtlUpdateVaildLpn -.L1759: +.L1763: + ldrh w1, [x19,3896] ldr x0, [x19,1048] - str x0, [x20,8] + ldrh w2, [x19,3898] + str x0, [x19,1416] ldr x0, [x19,1112] - str x0, [x20,16] - ldrh w0, [x19,3896] - ldrh w1, [x19,3898] - orr w0, w1, w0, lsl 10 - mov w1, 1 - str w0, [x20,4] - mov w2, w1 - mov w3, w1 - mov x0, x20 - bl FlashProgPages + str x0, [x19,1424] + orr w0, w2, w1, lsl 10 + str w0, [x19,1412] ldrh w0, [x19,820] - ldrh w1, [x19,3898] sub w0, w0, #1 - cmp w1, w0 - blt .L1760 - ldrh w0, [x19,3896] + cmp w2, w0 + blt .L1764 ldrh w25, [x19,3900] strh wzr, [x19,3898] - strh w0, [x19,3900] + strh w1, [x19,3900] bl FtlFreeSysBlkQueueOut ldr w1, [x19,872] str w1, [x19,3904] add w2, w1, 1 str w2, [x19,872] ubfiz w2, w0, 10, 16 - str w2, [x20,4] - str w1, [x21,4] - mov w1, 1 + str w2, [x19,1412] strh w0, [x19,3896] - mov w2, w1 + str w1, [x21,4] strh w0, [x21,2] +.L1764: + mov w1, 1 + add x0, x19, 1408 + mov w2, w1 mov w3, w1 - mov x0, x20 bl FlashProgPages -.L1760: ldrh w1, [x19,3898] - ldr w2, [x20] + ldr w2, [x19,1408] add w1, w1, 1 cmn w2, #1 uxth w1, w1 strh w1, [x19,3898] - bne .L1761 + bne .L1765 cmp w1, 1 - bne .L1762 + bne .L1766 ldrh w1, [x19,820] sub w1, w1, #1 strh w1, [x19,3898] -.L1762: - add w23, w23, 1 - uxth w23, w23 - cmp w23, 3 - bls .L1759 +.L1766: + add w20, w20, 1 + uxth w20, w20 + cmp w20, 3 + bls .L1763 add x22, x22, :lo12:.LANCHOR2 - adrp x0, .LC46 - add x0, x0, :lo12:.LC46 - mov w2, w23 + adrp x0, .LC44 + add x0, x0, :lo12:.LC44 + mov w2, w20 ldr w1, [x22,1412] bl printk mov w0, 1 str w0, [x22,1400] - b .L1757 -.L1761: + b .L1761 +.L1765: cmp w1, 1 - beq .L1759 + beq .L1763 cmp w2, 256 - beq .L1759 + beq .L1763 mov w0, 65535 cmp w25, w0 - beq .L1757 + beq .L1761 mov w0, w25 mov w1, 1 bl FtlFreeSysBlkQueueIn -.L1757: +.L1761: mov w0, 0 ldr x25, [sp,64] ldp x19, x20, [sp,16] @@ -11291,19 +11234,19 @@ FtlScanSysBlk: mov w2, 12 bl ftl_memset ldrh w21, [x20,756] -.L1769: +.L1773: add x1, x19, :lo12:.LANCHOR2 ldrh w0, [x1,758] cmp w0, w21 - bls .L1810 + bls .L1814 mov x27, 0 ldrh w3, [x1,748] ldrh w2, [x1,830] mov w20, w27 mov x23, x1 -.L1811: +.L1815: cmp w3, w27, uxth - bls .L1844 + bls .L1848 add x0, x23, 776 mov w1, w21 str x2, [x29,112] @@ -11314,7 +11257,7 @@ FtlScanSysBlk: bl FtlBbmIsBadBlock ldr x3, [x29,120] ldr x2, [x29,112] - cbnz w0, .L1770 + cbnz w0, .L1774 mov w0, 56 ldr x1, [x23,992] lsl w28, w28, 10 @@ -11333,11 +11276,11 @@ FtlScanSysBlk: ldr x4, [x23,1128] add x1, x4, x1, sxtw 2 str x1, [x0,16] -.L1770: +.L1774: add x27, x27, 1 - b .L1811 -.L1844: - cbz w20, .L1773 + b .L1815 +.L1848: + cbz w20, .L1777 add x0, x19, :lo12:.LANCHOR2 mov w1, w20 mov w2, 1 @@ -11346,9 +11289,9 @@ FtlScanSysBlk: adrp x28, .LANCHOR0 ldr x0, [x0,992] bl FlashReadPages -.L1774: +.L1778: cmp w20, w23, uxth - bls .L1773 + bls .L1777 add x0, x19, :lo12:.LANCHOR2 mul x5, x23, x26 ldr x0, [x0,992] @@ -11358,9 +11301,9 @@ FtlScanSysBlk: cmn w0, #1 ldr x25, [x1,16] ubfx x24, x4, 10, 16 - bne .L1776 + bne .L1780 mov w6, 16 -.L1775: +.L1779: add x7, x19, :lo12:.LANCHOR2 str x6, [x29,104] str x7, [x29,112] @@ -11381,44 +11324,44 @@ FtlScanSysBlk: ldr x5, [x29,120] ldr x6, [x29,104] ldr x0, [x7,992] - bne .L1777 + bne .L1781 str w27, [x0,x5] - b .L1776 -.L1777: + b .L1780 +.L1781: ldr w0, [x0,x5] cmn w0, #1 - bne .L1776 + bne .L1780 sub w6, w6, #1 uxth w6, w6 - cbnz w6, .L1775 -.L1776: + cbnz w6, .L1779 +.L1780: add x0, x19, :lo12:.LANCHOR2 ldr x1, [x0,992] ldr w1, [x1,x5] cmn w1, #1 - beq .L1779 + beq .L1783 ldr w0, [x0,872] cmn w0, #1 - beq .L1780 + beq .L1784 ldr w1, [x25,4] cmp w0, w1 - bhi .L1781 -.L1780: + bhi .L1785 +.L1784: ldr w0, [x25,4] cmn w0, #1 - beq .L1781 + beq .L1785 add x1, x19, :lo12:.LANCHOR2 add w0, w0, 1 str w0, [x1,872] -.L1781: +.L1785: ldrh w0, [x25] mov w1, 61604 cmp w0, w1 - beq .L1783 - bhi .L1784 + beq .L1787 + bhi .L1788 mov w1, 61574 cmp w0, w1 - bne .L1782 + bne .L1786 add x5, x19, :lo12:.LANCHOR2 ldrh w6, [x5,840] ldrh w0, [x5,1392] @@ -11426,16 +11369,16 @@ FtlScanSysBlk: ldr x5, [x5,1224] sxth x1, w2 sub w2, w2, w0 - b .L1797 -.L1784: + b .L1801 +.L1788: mov w1, 61634 cmp w0, w1 - beq .L1786 + beq .L1790 cmp w0, w22 - bne .L1782 + bne .L1786 mov w0, w24 - b .L1843 -.L1786: + b .L1847 +.L1790: add x5, x19, :lo12:.LANCHOR2 ldr w6, [x5,848] ldrh w0, [x5,3908] @@ -11446,27 +11389,27 @@ FtlScanSysBlk: sub w2, w2, #1 sxth x1, w1 sxth w2, w2 -.L1788: +.L1792: cmp w1, w2 - ble .L1845 + ble .L1849 sbfiz x7, x1, 2, 32 ldr w10, [x25,4] sxth x8, w1 ldr w9, [x5,x7] cmp w10, w9 - bls .L1789 + bls .L1793 ldr w2, [x5] - cbnz w2, .L1790 + cbnz w2, .L1794 cmp w0, w6 - beq .L1790 + beq .L1794 add x2, x19, :lo12:.LANCHOR2 add w0, w0, 1 strh w0, [x2,3908] -.L1790: +.L1794: mov w0, 0 -.L1791: +.L1795: cmp w0, w1 - beq .L1846 + beq .L1850 add x5, x19, :lo12:.LANCHOR2 sxtw x2, w0 lsl x6, x2, 2 @@ -11481,31 +11424,31 @@ FtlScanSysBlk: add x6, x5, x2 ldrh w6, [x6,2] strh w6, [x5,x2] - b .L1791 -.L1846: + b .L1795 +.L1850: add x2, x19, :lo12:.LANCHOR2 ldr w5, [x25,4] ldr x0, [x2,1256] str w5, [x0,x7] ldr x0, [x2,1192] strh w24, [x0,x8,lsl 1] - tbz w1, #31, .L1793 - b .L1782 -.L1789: + tbz w1, #31, .L1797 + b .L1786 +.L1793: sub w1, w1, #1 sxth x1, w1 - b .L1788 -.L1845: - tbz w1, #31, .L1826 - b .L1782 -.L1793: + b .L1792 +.L1849: + tbz w1, #31, .L1830 + b .L1786 +.L1797: ldrh w0, [x2,3908] ldr w2, [x2,848] sub w2, w2, w0 sub w2, w2, #1 cmp w1, w2, sxth - bgt .L1782 -.L1826: + bgt .L1786 +.L1830: add x2, x19, :lo12:.LANCHOR2 add w0, w0, 1 ldr w3, [x25,4] @@ -11513,33 +11456,33 @@ FtlScanSysBlk: ldr x0, [x2,1256] str w3, [x0,x1,lsl 2] ldr x0, [x2,1192] - b .L1842 -.L1803: + b .L1846 +.L1807: sbfiz x7, x1, 2, 32 ldr w10, [x25,4] sxth x8, w1 ldr w9, [x5,x7] cmp w10, w9 - bhi .L1847 + bhi .L1851 sub w1, w1, #1 sxth x1, w1 -.L1797: +.L1801: cmp w1, w2 - bgt .L1803 - b .L1802 -.L1847: + bgt .L1807 + b .L1806 +.L1851: ldr w2, [x5] - cbnz w2, .L1799 + cbnz w2, .L1803 cmp w0, w6 - beq .L1799 + beq .L1803 add x2, x19, :lo12:.LANCHOR2 add w0, w0, 1 strh w0, [x2,1392] -.L1799: +.L1803: mov w0, 0 -.L1800: +.L1804: cmp w0, w1 - beq .L1848 + beq .L1852 add x5, x19, :lo12:.LANCHOR2 sxtw x2, w0 lsl x6, x2, 2 @@ -11554,105 +11497,105 @@ FtlScanSysBlk: add x6, x5, x2 ldrh w6, [x6,2] strh w6, [x5,x2] - b .L1800 -.L1848: + b .L1804 +.L1852: add x0, x19, :lo12:.LANCHOR2 ldr w5, [x25,4] ldr x2, [x0,1224] str w5, [x2,x7] ldr x0, [x0,1208] strh w24, [x0,x8,lsl 1] -.L1802: - tbnz w1, #31, .L1782 +.L1806: + tbnz w1, #31, .L1786 add x0, x19, :lo12:.LANCHOR2 ldrh w2, [x0,840] ldrh w5, [x0,1392] sub w2, w2, #1 sub w2, w2, w5 cmp w1, w2, sxth - bgt .L1782 + bgt .L1786 ldr x2, [x0,1224] add w5, w5, 1 ldr w3, [x25,4] strh w5, [x0,1392] str w3, [x2,x1,lsl 2] ldr x0, [x0,1208] -.L1842: +.L1846: strh w24, [x0,x1,lsl 1] - b .L1782 -.L1783: + b .L1786 +.L1787: add x0, x19, :lo12:.LANCHOR2 add x1, x0, 3896 ldrh w2, [x0,3896] cmp w2, w22 - bne .L1804 + bne .L1808 strh w24, [x0,3896] ldr w0, [x25,4] str w0, [x1,8] - b .L1782 -.L1804: + b .L1786 +.L1808: ldrh w0, [x1,4] cmp w0, w22 - beq .L1805 + beq .L1809 mov w1, 1 bl FtlFreeSysBlkQueueIn -.L1805: +.L1809: add x1, x19, :lo12:.LANCHOR2 ldr w2, [x25,4] add x0, x1, 3896 ldr w5, [x0,8] cmp w5, w2 - bcs .L1806 + bcs .L1810 ldrh w2, [x1,3896] strh w2, [x0,4] strh w24, [x1,3896] ldr w1, [x25,4] str w1, [x0,8] - b .L1782 -.L1806: + b .L1786 +.L1810: strh w24, [x0,4] - b .L1782 -.L1779: + b .L1786 +.L1783: add x0, x28, :lo12:.LANCHOR0 ldrb w1, [x0,136] mov w0, w24 - cbz w1, .L1807 -.L1843: + cbz w1, .L1811 +.L1847: mov w1, 0 -.L1807: +.L1811: bl FtlFreeSysBlkQueueIn -.L1782: +.L1786: add x23, x23, 1 - b .L1774 -.L1773: + b .L1778 +.L1777: add w21, w21, 1 uxth w21, w21 - b .L1769 -.L1810: + b .L1773 +.L1814: ldr x2, [x1,1192] ldrh w0, [x2] - cbz w0, .L1812 -.L1815: + cbz w0, .L1816 +.L1819: add x1, x19, :lo12:.LANCHOR2 ldr x2, [x1,1208] ldrh w0, [x2] - cbz w0, .L1813 - b .L1836 -.L1812: - ldrh w3, [x1,3908] - cbz w3, .L1815 - ldr w1, [x1,848] + cbz w0, .L1817 + b .L1840 .L1816: + ldrh w3, [x1,3908] + cbz w3, .L1819 + ldr w1, [x1,848] +.L1820: cmp w0, w1 - bcs .L1815 + bcs .L1819 ldrh w3, [x2,w0,sxtw 1] - cbz w3, .L1817 + cbz w3, .L1821 mov w6, w0 -.L1818: +.L1822: add x1, x19, :lo12:.LANCHOR2 ldr w2, [x1,848] cmp w0, w2 - bcs .L1815 + bcs .L1819 sxtw x5, w0 sub w2, w0, w6 ldr x4, [x1,1192] @@ -11667,26 +11610,26 @@ FtlScanSysBlk: str w5, [x4,x2,lsl 2] ldr x1, [x1,1192] strh wzr, [x1,x3] - b .L1818 -.L1817: + b .L1822 +.L1821: add w0, w0, 1 sxth w0, w0 - b .L1816 -.L1813: + b .L1820 +.L1817: ldrh w3, [x1,1392] - cbz w3, .L1836 + cbz w3, .L1840 ldrh w1, [x1,840] -.L1821: +.L1825: cmp w0, w1 mov w6, w0 - bge .L1836 + bge .L1840 ldrh w3, [x2,w0,sxtw 1] - cbz w3, .L1822 -.L1823: + cbz w3, .L1826 +.L1827: add x1, x19, :lo12:.LANCHOR2 ldrh w2, [x1,840] cmp w0, w2 - bge .L1836 + bge .L1840 sxtw x5, w0 sub w2, w0, w6 ldr x4, [x1,1208] @@ -11701,12 +11644,12 @@ FtlScanSysBlk: str w5, [x4,x2,lsl 2] ldr x1, [x1,1208] strh wzr, [x1,x3] - b .L1823 -.L1822: + b .L1827 +.L1826: add w0, w0, 1 sxth w0, w0 - b .L1821 -.L1836: + b .L1825 +.L1840: mov w0, 0 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -11734,18 +11677,18 @@ FtlLoadEctTbl: mov w0, 17221 movk w0, 0x4254, lsl 16 cmp w1, w0 - beq .L1850 - adrp x0, .LC47 - adrp x1, .LC48 - add x1, x1, :lo12:.LC48 - add x0, x0, :lo12:.LC47 + beq .L1854 + adrp x0, .LC45 + adrp x1, .LC46 + add x1, x1, :lo12:.LC46 + add x0, x0, :lo12:.LC45 bl printk ldrh w2, [x19,1144] mov w1, 0 ldr x0, [x19,1160] lsl w2, w2, 9 bl ftl_memset -.L1850: +.L1854: mov w0, 0 ldr x19, [sp,16] ldp x29, x30, [sp], 32 @@ -11758,10 +11701,10 @@ ftl_set_blk_mode: stp x29, x30, [sp, -16]! uxth w0, w0 add x29, sp, 0 - cbz w1, .L1852 + cbz w1, .L1856 bl ftl_set_blk_mode.part.17 - b .L1851 -.L1852: + b .L1855 +.L1856: adrp x1, .LANCHOR0+16 ubfx x2, x0, 5, 11 lsl x2, x2, 2 @@ -11771,7 +11714,7 @@ ftl_set_blk_mode: ldr w1, [x3,x2] bic w0, w1, w0 str w0, [x3,x2] -.L1851: +.L1855: ldp x29, x30, [sp], 16 ret .size ftl_set_blk_mode, .-ftl_set_blk_mode @@ -11794,11 +11737,11 @@ ftl_get_blk_mode: FtlCheckVpc: stp x29, x30, [sp, -96]! adrp x1, .LANCHOR3 - adrp x0, .LC49 + adrp x0, .LC47 add x1, x1, :lo12:.LANCHOR3 add x29, sp, 0 add x1, x1, 16 - add x0, x0, :lo12:.LC49 + add x0, x0, :lo12:.LC47 str x25, [sp,64] stp x19, x20, [sp,16] adrp x19, .LANCHOR2 @@ -11811,17 +11754,17 @@ FtlCheckVpc: mov w1, 0 mov x2, 8192 bl memset -.L1856: +.L1860: ldr w0, [x19,1396] cmp w20, w0 - bcs .L1873 + bcs .L1877 mov w0, w20 add x1, x29, 92 mov w2, 0 bl log2phys ldr w0, [x29,92] cmn w0, #1 - beq .L1857 + beq .L1861 lsr w0, w0, 10 bl P2V_block_in_plane uxth w0, w0 @@ -11829,80 +11772,80 @@ FtlCheckVpc: ldrh w1, [x2,w0,sxtw 1] add w1, w1, 1 strh w1, [x2,w0,sxtw 1] -.L1857: +.L1861: add w20, w20, 1 - b .L1856 -.L1873: + b .L1860 +.L1877: ldr x1, [x19,1184] - adrp x0, .LC50 + adrp x0, .LC48 ldrh w3, [x19,756] - add x0, x0, :lo12:.LC50 + add x0, x0, :lo12:.LC48 mov w2, 2 - adrp x21, .LC52 + adrp x21, .LC50 mov w20, 0 - add x21, x21, :lo12:.LC52 + add x21, x21, :lo12:.LC50 bl rknand_print_hex - adrp x0, .LC51 + adrp x0, .LC49 ldrh w3, [x19,756] - add x0, x0, :lo12:.LC51 + add x0, x0, :lo12:.LC49 add x1, x19, 3912 mov w2, 2 bl rknand_print_hex -.L1859: +.L1863: ldrh w0, [x19,756] cmp w0, w20 - bls .L1874 + bls .L1878 ubfiz x0, x20, 1, 16 ldr x1, [x19,1184] ldrh w2, [x1,x0] add x0, x19, 3912 ldrh w3, [x0,w20,sxtw 1] cmp w2, w3 - beq .L1860 + beq .L1864 mov x0, x21 mov w1, w20 bl printk -.L1860: +.L1864: add w20, w20, 1 uxth w20, w20 - b .L1859 -.L1874: + b .L1863 +.L1878: ldr x0, [x19,3592] - cbz x0, .L1855 + cbz x0, .L1859 ldr x20, [x19,1280] - adrp x22, .LC53 + adrp x22, .LC51 ldrh w23, [x19,3600] mov w21, 0 sub x20, x0, x20 mov x0, -6148914691236517206 asr x20, x20, 1 - add x22, x22, :lo12:.LC53 + add x22, x22, :lo12:.LC51 mov w24, 6 mov w25, 65535 madd x20, x0, x20, x20 uxth w20, w20 -.L1863: +.L1867: cmp w21, w23 - beq .L1855 + beq .L1859 ubfiz x0, x20, 1, 16 ldr x1, [x19,1184] ldrh w2, [x1,x0] - cbz w2, .L1864 + cbz w2, .L1868 add x3, x19, 3912 mov x0, x22 mov w1, w20 ldrh w3, [x3,w20,sxtw 1] bl printk -.L1864: +.L1868: umull x20, w20, w24 ldr x0, [x19,1280] ldrh w20, [x0,x20] cmp w20, w25 - beq .L1855 + beq .L1859 add w21, w21, 1 uxth w21, w21 - b .L1863 -.L1855: + b .L1867 +.L1859: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -11925,21 +11868,21 @@ FtlDumpSysBlock: str x25, [sp,80] add x19, x2, 1408 uxth w23, w0 - adrp x22, .LC54 + adrp x22, .LC52 ldr x0, [x2,1048] - adrp x25, .LC55 + adrp x25, .LC53 str x0, [x19,8] lsl w24, w23, 10 ldr x0, [x2,1112] mov w20, 0 str x0, [x19,16] mov x21, x2 - add x22, x22, :lo12:.LC54 - add x25, x25, :lo12:.LC55 -.L1876: + add x22, x22, :lo12:.LC52 + add x25, x25, :lo12:.LC53 +.L1880: ldrh w0, [x21,820] cmp w20, w0 - bge .L1882 + bge .L1886 mov w1, 1 orr w0, w20, w24 mov w2, w1 @@ -11962,17 +11905,17 @@ FtlDumpSysBlock: ldr x0, [x19,16] ldr w0, [x0] cmn w0, #1 - beq .L1877 + beq .L1881 ldr x1, [x21,1048] mov x0, x25 mov w2, 4 mov w3, 768 bl rknand_print_hex -.L1877: +.L1881: add w20, w20, 1 sxth w20, w20 - b .L1876 -.L1882: + b .L1880 +.L1886: sub sp, x29, #16 ldp x19, x20, [sp,32] ldp x21, x22, [sp,48] @@ -11987,40 +11930,40 @@ FtlDumpSysBlock: .type Ftlscanalldata, %function Ftlscanalldata: sub sp, sp, #96 - adrp x0, .LC56 - add x0, x0, :lo12:.LC56 + adrp x0, .LC54 + add x0, x0, :lo12:.LC54 mov w1, 0 stp x29, x30, [sp,16] add x29, sp, 16 stp x23, x24, [sp,64] adrp x23, .LANCHOR2 stp x21, x22, [sp,48] - adrp x21, .LC57 + adrp x21, .LC55 add x22, x23, :lo12:.LANCHOR2 stp x19, x20, [sp,32] - add x21, x21, :lo12:.LC57 + add x21, x21, :lo12:.LC55 mov w20, 0 add x19, x22, 1408 bl printk -.L1884: +.L1888: add x0, x23, :lo12:.LANCHOR2 ldr w0, [x0,1396] cmp w20, w0 - bcs .L1891 + bcs .L1895 mov w0, w20 add x1, x29, 76 mov w2, 0 bl log2phys and w0, w20, 2047 - cbnz w0, .L1885 + cbnz w0, .L1889 ldr w2, [x29,76] mov x0, x21 mov w1, w20 bl printk -.L1885: +.L1889: ldr w0, [x29,76] cmn w0, #1 - beq .L1887 + beq .L1891 str w0, [x19,4] mov w1, 1 ldr x0, [x22,1048] @@ -12034,20 +11977,20 @@ Ftlscanalldata: bl FlashReadPages ldr w0, [x19] cmn w0, #1 - beq .L1888 + beq .L1892 cmp w0, 256 - beq .L1888 + beq .L1892 ldr w0, [x24,8] cmp w0, w20 - beq .L1887 -.L1888: + beq .L1891 +.L1892: ldr x7, [x19,8] mov w1, w20 ldr x6, [x19,16] ldr w0, [x7,4] str w0, [sp] - adrp x0, .LC58 - add x0, x0, :lo12:.LC58 + adrp x0, .LC56 + add x0, x0, :lo12:.LC56 ldr w3, [x6] ldr w4, [x6,4] ldr w5, [x6,8] @@ -12055,10 +11998,10 @@ Ftlscanalldata: ldr w6, [x6,12] ldr w7, [x7] bl printk -.L1887: - add w20, w20, 1 - b .L1884 .L1891: + add w20, w20, 1 + b .L1888 +.L1895: sub sp, x29, #16 ldp x19, x20, [sp,32] ldp x21, x22, [sp,48] @@ -12081,24 +12024,24 @@ dump_map_info: stp x23, x24, [sp,64] stp x27, x28, [sp,96] stp x19, x20, [sp,32] - adrp x24, .LC59 + adrp x24, .LC57 mov w25, 56 ldrh w21, [x0,756] mov w26, 4 mov x27, 56 - add x24, x24, :lo12:.LC59 -.L1893: + add x24, x24, :lo12:.LC57 +.L1897: add x19, x22, :lo12:.LANCHOR2 ldrh w0, [x19,758] cmp w0, w21 - bls .L1906 + bls .L1910 mov x23, 0 ldrh w3, [x19,748] ldrh w2, [x19,830] mov w20, w23 -.L1902: +.L1906: cmp w3, w23, uxth - bls .L1907 + bls .L1911 add x0, x19, 776 mov w1, w21 str x2, [x29,96] @@ -12109,7 +12052,7 @@ dump_map_info: bl FtlBbmIsBadBlock ldr x3, [x29,104] ldr x2, [x29,96] - cbnz w0, .L1894 + cbnz w0, .L1898 umull x0, w20, w25 ldr x1, [x19,992] lsl w28, w28, 10 @@ -12126,20 +12069,20 @@ dump_map_info: uxth w20, w20 add x1, x4, x1, sxtw 2 str x1, [x0,16] -.L1894: +.L1898: add x23, x23, 1 - b .L1902 -.L1907: - cbz w20, .L1897 + b .L1906 +.L1911: + cbz w20, .L1901 add x0, x22, :lo12:.LANCHOR2 mov w1, w20 mov w2, 1 mov x19, 0 ldr x0, [x0,992] bl FlashReadPages -.L1898: +.L1902: cmp w20, w19, uxth - bls .L1897 + bls .L1901 add x0, x22, :lo12:.LANCHOR2 ldr x0, [x0,992] madd x0, x19, x27, x0 @@ -12157,26 +12100,26 @@ dump_map_info: ldr w7, [x7] ldr w6, [x6,12] bl printk - b .L1898 -.L1897: + b .L1902 +.L1901: add w21, w21, 1 uxth w21, w21 - b .L1893 -.L1906: - adrp x23, .LC60 + b .L1897 +.L1910: + adrp x23, .LC58 mov w21, 0 add x22, x19, 1408 - add x23, x23, :lo12:.LC60 -.L1901: + add x23, x23, :lo12:.LC58 +.L1905: ldrh w0, [x19,3908] cmp w21, w0 - bge .L1904 + bge .L1908 sbfiz x24, x21, 1, 32 mov w20, 0 -.L1905: +.L1909: ldrh w0, [x19,820] cmp w20, w0 - bge .L1908 + bge .L1912 ldr x0, [x19,1192] mov w1, 1 mov w2, w1 @@ -12203,28 +12146,28 @@ dump_map_info: ldr w3, [x22,4] ldr w7, [x7,12] bl printk - b .L1905 -.L1908: + b .L1909 +.L1912: add w21, w21, 1 sxth w21, w21 - b .L1901 -.L1904: + b .L1905 +.L1908: ldr x1, [x19,1192] - adrp x0, .LC61 + adrp x0, .LC59 ldr w3, [x19,848] - add x0, x0, :lo12:.LC61 + add x0, x0, :lo12:.LC59 mov w2, 2 bl rknand_print_hex ldr x1, [x19,1240] - adrp x0, .LC62 + adrp x0, .LC60 ldrh w3, [x19,856] - add x0, x0, :lo12:.LC62 + add x0, x0, :lo12:.LC60 mov w2, 4 bl rknand_print_hex ldr x1, [x19,1248] - adrp x0, .LC63 + adrp x0, .LC61 ldrh w3, [x19,856] - add x0, x0, :lo12:.LC63 + add x0, x0, :lo12:.LC61 mov w2, 4 bl rknand_print_hex sub sp, x29, #16 @@ -12278,13 +12221,13 @@ FtlMapTblRecovery: str w0, [x19,56] sub w0, w24, #1 str w0, [x29,108] -.L1910: +.L1914: cmp w27, w24 - bge .L1927 + bge .L1930 ldr w0, [x29,108] sxtw x28, w27 cmp w27, w0 - bne .L1911 + bne .L1915 lsl x0, x28, 1 mov w1, 1 add x24, x22, x0 @@ -12301,9 +12244,9 @@ FtlMapTblRecovery: ldr x0, [x29,112] add x25, x0, :lo12:.LANCHOR2 add x25, x25, 1408 -.L1912: +.L1916: cmp w22, w26 - bge .L1927 + bge .L1930 ldrh w0, [x24] mov w1, 1 mov w2, w1 @@ -12313,27 +12256,23 @@ FtlMapTblRecovery: bl FlashReadPages ldr w0, [x25] cmn w0, #1 - beq .L1913 + beq .L1917 ldrh w0, [x21,8] cmp w0, w23 - bcs .L1914 + bcs .L1917 ldrh w2, [x21] ldrh w1, [x19,4] cmp w2, w1 - bne .L1914 + bne .L1917 ubfiz x0, x0, 2, 16 ldr x2, [x29,120] ldr w1, [x25,4] str w1, [x2,x0] - b .L1914 -.L1913: - ldrh w0, [x24] - strh w0, [x19,60] -.L1914: +.L1917: add w22, w22, 1 sxth w22, w22 - b .L1912 -.L1927: + b .L1916 +.L1930: mov x0, x19 bl ftl_free_no_use_map_blk ldr x0, [x29,112] @@ -12341,11 +12280,11 @@ FtlMapTblRecovery: add x20, x0, :lo12:.LANCHOR2 ldrh w0, [x20,820] cmp w1, w0 - bne .L1917 + bne .L1920 mov x0, x19 bl ftl_map_blk_alloc_new_blk - b .L1917 -.L1911: + b .L1920 +.L1915: ldr x0, [x26,1048] str x0, [x20,8] lsl x0, x28, 1 @@ -12361,41 +12300,41 @@ FtlMapTblRecovery: bl FlashReadPages ldr w0, [x20] cmn w0, #1 - beq .L1928 + beq .L1931 ldrh w1, [x21] mov w3, 0 ldrh w0, [x19,4] cmp w1, w0 - bne .L1934 + bne .L1940 ldrh w0, [x21,8] mov w1, 64245 cmp w0, w1 - bne .L1934 -.L1919: + bne .L1940 +.L1922: ldrh w0, [x26,820] sub w0, w0, #1 cmp w3, w0 - bge .L1922 + bge .L1925 ldr x2, [x26,1048] sbfiz x1, x3, 3, 32 ldrh w0, [x2,x1] cmp w0, w23 - bcs .L1920 + bcs .L1923 add x1, x2, x1 ubfiz x0, x0, 2, 16 ldr x2, [x29,120] ldr w1, [x1,4] str w1, [x2,x0] -.L1920: +.L1923: add w3, w3, 1 sxth w3, w3 - b .L1919 -.L1928: + b .L1922 +.L1931: mov w3, 0 -.L1934: +.L1940: ldrh w0, [x26,820] cmp w3, w0 - bge .L1922 + bge .L1925 ldrh w0, [x28] mov w1, 1 mov w2, w1 @@ -12407,27 +12346,27 @@ FtlMapTblRecovery: ldr w0, [x20] ldr x3, [x29,96] cmn w0, #1 - beq .L1923 + beq .L1926 ldrh w0, [x21,8] cmp w0, w23 - bcs .L1923 + bcs .L1926 ldrh w2, [x21] ldrh w1, [x19,4] cmp w2, w1 - bne .L1923 + bne .L1926 ubfiz x0, x0, 2, 16 ldr x2, [x29,120] ldr w1, [x20,4] str w1, [x2,x0] -.L1923: +.L1926: add w3, w3, 1 sxth w3, w3 - b .L1934 -.L1922: + b .L1940 +.L1925: add w6, w27, 1 sxth w27, w6 - b .L1910 -.L1917: + b .L1914 +.L1920: mov x0, x19 bl ftl_map_blk_gc mov x0, x19 @@ -12464,10 +12403,8 @@ FtlLoadVonderInfo: str x2, [x0,24] ldr x2, [x1,1216] ldr x1, [x1,1232] - str x1, [x0,40] - mov w1, -1 str x2, [x0,32] - strh w1, [x0,60] + str x1, [x0,40] bl FtlMapTblRecovery mov w0, 0 ldp x29, x30, [sp], 16 @@ -12495,11 +12432,11 @@ FtlL2PDataInit: bl ftl_memset mov w2, 0 mov w4, -1 -.L1937: +.L1943: add x0, x20, :lo12:.LANCHOR2 ldrh w1, [x0,858] cmp w1, w2 - bls .L1939 + bls .L1945 ldr x3, [x0,1264] ubfiz x1, x2, 4, 16 add x3, x3, x1 @@ -12517,29 +12454,28 @@ FtlL2PDataInit: and x1, x1, -4 add x0, x0, x1 str x0, [x3,8] - b .L1937 -.L1939: - ldr w3, [x0,848] - add x1, x0, 3752 - strh w3, [x0,3762] - mov w3, -3902 - strh w3, [x0,3756] + b .L1943 +.L1945: mov w2, -1 - ldrh w3, [x0,3908] - strh w3, [x0,3760] - ldrh w3, [x0,856] - strh w3, [x0,3758] - ldr x3, [x0,1192] - 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] + add x1, x0, 3752 + ldr w2, [x0,848] + strh w2, [x0,3762] + mov w2, -3902 + strh w2, [x0,3756] + ldrh w2, [x0,3908] + strh w2, [x0,3760] + ldrh w2, [x0,856] + strh w2, [x0,3758] + ldr x2, [x0,1192] + str x2, [x0,3768] + ldr x2, [x0,1256] + str x2, [x0,3776] + ldr x2, [x0,1200] + str x2, [x0,3784] ldr x0, [x0,1240] str x0, [x1,40] - strh w2, [x1,60] ldp x19, x20, [sp,16] ldp x29, x30, [sp], 32 ret @@ -12570,41 +12506,41 @@ ftl_sb_update_avl_pages: strh wzr, [x0,4] mov w6, 65535 ldrh w4, [x4,748] -.L1942: +.L1948: cmp w2, w4 - bcs .L1948 + bcs .L1954 add x5, x0, x2, sxtw 1 ldrh w5, [x5,16] cmp w5, w6 - beq .L1943 + beq .L1949 ldrh w5, [x0,4] add w5, w5, 1 strh w5, [x0,4] -.L1943: +.L1949: add w2, w2, 1 uxth w2, w2 - b .L1942 -.L1948: + b .L1948 +.L1954: add x3, x3, :lo12:.LANCHOR2 mov w6, 65535 add x4, x0, x4, uxth 1 ldrh w5, [x3,818] mov x3, x0 -.L1945: +.L1951: cmp x3, x4 - beq .L1949 + beq .L1955 ldrh w2, [x3,16] cmp w2, w6 - beq .L1946 + beq .L1952 ldrh w2, [x0,4] add w2, w5, w2 sub w2, w2, #1 sub w2, w2, w1 strh w2, [x0,4] -.L1946: +.L1952: add x3, x3, 2 - b .L1945 -.L1949: + b .L1951 +.L1955: ret .size ftl_sb_update_avl_pages, .-ftl_sb_update_avl_pages .align 2 @@ -12625,9 +12561,9 @@ FtlReUsePrevPpa: ubfiz x22, x0, 1, 16 ldr x3, [x2,1184] ldrh w1, [x3,x22] - cbnz w1, .L1951 + cbnz w1, .L1957 ldr x19, [x2,3592] - cbz x19, .L1952 + cbz x19, .L1958 ldrh w3, [x2,3600] mov x4, -6148914691236517206 ldr x2, [x2,1280] @@ -12637,11 +12573,11 @@ FtlReUsePrevPpa: madd x19, x4, x19, x19 mov w4, 6 uxth w19, w19 -.L1953: +.L1959: cmp w1, w3 - beq .L1952 + beq .L1958 cmp w19, w0 - bne .L1954 + bne .L1960 add x21, x21, :lo12:.LANCHOR2 mov w1, w19 add x0, x21, 3592 @@ -12655,19 +12591,19 @@ FtlReUsePrevPpa: ldrh w0, [x1,x22] add w0, w0, 1 strh w0, [x1,x22] - b .L1952 -.L1954: + b .L1958 +.L1960: umull x19, w19, w4 ldrh w19, [x2,x19] cmp w19, w5 - beq .L1952 + beq .L1958 add w1, w1, 1 uxth w1, w1 - b .L1953 -.L1951: + b .L1959 +.L1957: add w1, w1, 1 strh w1, [x3,x22] -.L1952: +.L1958: add x1, x29, 60 mov w0, w20 mov w2, 1 @@ -12698,9 +12634,9 @@ make_superblock: mov x23, x1 mov w25, -1 ldrh w24, [x1,748] -.L1960: +.L1966: cmp w24, w21, uxth - bls .L1971 + bls .L1977 add x0, x23, 776 ldrh w1, [x19] ldrb w0, [x0,x21] @@ -12708,16 +12644,16 @@ make_superblock: strh w25, [x22] mov w26, w0 bl FtlBbmIsBadBlock - cbnz w0, .L1961 + cbnz w0, .L1967 strh w26, [x22] ldrb w0, [x19,7] add w0, w0, 1 strb w0, [x19,7] -.L1961: +.L1967: add x21, x21, 1 add x22, x22, 2 - b .L1960 -.L1971: + b .L1966 +.L1977: add x0, x20, :lo12:.LANCHOR2 ldrb w1, [x19,7] strb wzr, [x19,9] @@ -12725,21 +12661,21 @@ make_superblock: mul w1, w1, w2 strh w1, [x19,4] ldr w1, [x0,652] - cbz w1, .L1963 + cbz w1, .L1969 ldrh w1, [x19] ldr x0, [x0,1168] ldrh w0, [x0,x1,lsl 1] - cmp w0, 59 - bhi .L1963 + cmp w0, 79 + bhi .L1969 mov w0, 1 strb w0, [x19,9] -.L1963: +.L1969: adrp x0, .LANCHOR0+24 ldrb w0, [x0,#:lo12:.LANCHOR0+24] - cbz w0, .L1964 + cbz w0, .L1970 mov w0, 1 strb w0, [x19,9] -.L1964: +.L1970: mov w0, 0 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -12756,72 +12692,73 @@ FtlLoadSysInfo: mov w1, 0 add x29, sp, 0 stp x19, x20, [sp,16] - adrp x19, .LANCHOR2 + adrp x20, .LANCHOR2 str x23, [sp,48] - add x20, x19, :lo12:.LANCHOR2 + add x19, x20, :lo12:.LANCHOR2 stp x21, x22, [sp,32] - add x21, x20, 1408 - add x23, x20, 3896 - ldr x0, [x20,1112] - ldrh w2, [x20,756] - str x0, [x21,16] - ldr x0, [x20,1184] + add x21, x19, 1408 + add x23, x19, 3896 + ldr x0, [x19,1048] + ldrh w2, [x19,756] + str x0, [x21,8] + ldr x0, [x19,1112] lsl w2, w2, 1 - str xzr, [x21,8] + str x0, [x21,16] + ldr x0, [x19,1184] bl ftl_memset - ldrh w0, [x20,3896] + ldrh w0, [x19,3896] mov w1, 65535 cmp w0, w1 - bne .L1973 -.L1981: + bne .L1979 +.L1987: mov w19, -1 - b .L1974 -.L1973: + b .L1980 +.L1979: mov w1, 1 bl FtlGetLastWrittenPage sxth w22, w0 add w0, w0, 1 strh w0, [x23,2] mov w23, 61604 -.L1975: - tbnz w22, #31, .L1980 - ldrh w0, [x20,3896] +.L1981: + tbnz w22, #31, .L1986 + ldrh w0, [x19,3896] mov w1, 1 mov w2, w1 orr w0, w22, w0, lsl 10 str w0, [x21,4] - ldr x0, [x20,1048] + ldr x0, [x19,1048] str x0, [x21,8] mov x0, x21 bl FlashReadPages ldr w0, [x21] cmn w0, #1 - beq .L1976 - ldr x0, [x20,1048] + beq .L1982 + ldr x0, [x19,1048] ldr w1, [x0] mov w0, 19539 movk w0, 0x4654, lsl 16 cmp w1, w0 - bne .L1976 - ldr x0, [x20,1112] + bne .L1982 + ldr x0, [x19,1112] ldrh w0, [x0] cmp w0, w23 - bne .L1976 -.L1980: - add x20, x19, :lo12:.LANCHOR2 + bne .L1982 +.L1986: + add x19, x20, :lo12:.LANCHOR2 mov w2, 48 - add x22, x20, 1408 - add x0, x20, 3520 + add x22, x19, 1408 + add x0, x19, 3520 adrp x21, .LANCHOR0 ldr x1, [x22,8] bl ftl_memcpy ldr x1, [x22,8] - ldrh w2, [x20,756] - ldr x0, [x20,1184] + ldrh w2, [x19,756] + ldr x0, [x19,1184] add x1, x1, 48 lsl w2, w2, 1 bl ftl_memcpy - ldrh w2, [x20,756] + ldrh w2, [x19,756] add x0, x21, :lo12:.LANCHOR0 ldr x3, [x22,8] uxth x1, w2 @@ -12832,43 +12769,43 @@ FtlLoadSysInfo: add w2, w2, 4 add x1, x3, x1, lsl 2 bl ftl_memcpy - ldrh w0, [x20,860] - cbz w0, .L1978 - ldrh w0, [x20,756] + ldrh w0, [x19,860] + cbz w0, .L1984 + ldrh w0, [x19,756] ldr x3, [x22,8] lsr w1, w0, 3 - ldrh w2, [x20,856] + ldrh w2, [x19,856] add w1, w1, w0, lsl 1 - ldr x0, [x20,1248] + ldr x0, [x19,1248] add w1, w1, 52 lsl w2, w2, 2 and x1, x1, 65532 add x1, x3, x1 bl ftl_memcpy - b .L1978 -.L1976: + b .L1984 +.L1982: sub w22, w22, #1 sxth w22, w22 - b .L1975 -.L1978: - add x0, x19, :lo12:.LANCHOR2 + b .L1981 +.L1984: + add x0, x20, :lo12:.LANCHOR2 mov w2, 19539 movk w2, 0x4654, lsl 16 ldr w3, [x0,3520] cmp w3, w2 - bne .L1981 + bne .L1987 ldrb w3, [x0,3530] ldrh w2, [x0,770] ldrh w6, [x0,3528] strh w6, [x0,3902] cmp w3, w2 - bne .L1981 + bne .L1987 ldrh w3, [x0,818] add x21, x21, :lo12:.LANCHOR0 ldrh w2, [x0,824] adrp x4, .LANCHOR4 add x5, x4, :lo12:.LANCHOR4 - mov x20, x4 + mov x19, x4 mul w3, w3, w6 str w3, [x0,1396] str w6, [x5,3400] @@ -12925,48 +12862,48 @@ FtlLoadSysInfo: str wzr, [x0,908] str wzr, [x0,916] str wzr, [x0,892] - bls .L1982 + bls .L1988 str w1, [x0,872] -.L1982: - add x0, x19, :lo12:.LANCHOR2 +.L1988: + add x0, x20, :lo12:.LANCHOR2 ldr w1, [x0,3556] ldr w2, [x0,876] cmp w1, w2 - bls .L1983 + bls .L1989 str w1, [x0,876] -.L1983: +.L1989: mov w0, 65535 cmp w6, w0 - beq .L1984 - add x0, x19, :lo12:.LANCHOR2 + beq .L1990 + add x0, x20, :lo12:.LANCHOR2 add x0, x0, 3608 bl make_superblock -.L1984: - add x1, x19, :lo12:.LANCHOR2 +.L1990: + add x1, x20, :lo12:.LANCHOR2 add x0, x1, 3656 ldrh w2, [x1,3656] mov w1, 65535 cmp w2, w1 - beq .L1985 + beq .L1991 bl make_superblock -.L1985: - add x19, x19, :lo12:.LANCHOR2 +.L1991: + add x20, x20, :lo12:.LANCHOR2 mov w1, 65535 - add x0, x19, 3704 - ldrh w2, [x19,3704] + add x0, x20, 3704 + ldrh w2, [x20,3704] cmp w2, w1 - beq .L1986 + beq .L1992 bl make_superblock -.L1986: - add x1, x20, :lo12:.LANCHOR4 +.L1992: + add x1, x19, :lo12:.LANCHOR4 mov w19, 0 add x0, x1, 3408 ldrh w2, [x1,3408] mov w1, 65535 cmp w2, w1 - beq .L1974 + beq .L1980 bl make_superblock -.L1974: +.L1980: mov w0, w19 ldr x23, [sp,48] ldp x19, x20, [sp,16] @@ -12994,39 +12931,39 @@ FtlDumpBlockInfo: uxth w22, w0 add x1, x2, :lo12:.LANCHOR3 add x19, x20, :lo12:.LANCHOR2 - adrp x0, .LC49 + adrp x0, .LC47 add x1, x1, 32 - add x0, x0, :lo12:.LC49 + add x0, x0, :lo12:.LC47 ldrh w23, [x19,818] bl printk ldr x3, [x19,1184] ubfiz x2, x22, 1, 16 - adrp x0, .LC64 + adrp x0, .LC62 mov w1, w22 - add x0, x0, :lo12:.LC64 + add x0, x0, :lo12:.LC62 ldrh w2, [x3,x2] bl printk strh w22, [x29,112] add x0, x29, 112 bl make_superblock - cbnz w24, .L2000 + cbnz w24, .L2006 adrp x0, .LANCHOR0+136 ldrb w0, [x0,#:lo12:.LANCHOR0+136] - cbz w0, .L2000 + cbz w0, .L2006 mov w0, w22 bl ftl_get_blk_mode cmp w0, 1 mov w22, w0 - bne .L1992 + bne .L1998 ldrh w23, [x19,820] - b .L1992 -.L2000: + b .L1998 +.L2006: mov w22, 0 -.L1992: +.L1998: add x3, x20, :lo12:.LANCHOR2 - adrp x0, .LC65 - adrp x24, .LC60 - add x0, x0, :lo12:.LC65 + adrp x0, .LC63 + adrp x24, .LC58 + add x0, x0, :lo12:.LC63 mov w1, w22 mov w2, w23 ldrh w3, [x3,818] @@ -13034,23 +12971,23 @@ FtlDumpBlockInfo: mov w26, 65535 mov w27, 56 mov w25, 4 - add x24, x24, :lo12:.LC60 + add x24, x24, :lo12:.LC58 bl printk -.L1993: +.L1999: add x0, x20, :lo12:.LANCHOR2 mov x3, 0 mov w19, w3 ldrh w5, [x0,748] ldrh w6, [x0,828] ldrh w7, [x0,830] -.L1994: +.L2000: cmp w5, w3, uxth - bls .L2008 + bls .L2014 add x0, x29, 112 add x0, x0, x3, lsl 1 ldrh w1, [x0,16] cmp w1, w26 - beq .L1995 + beq .L2001 add x2, x20, :lo12:.LANCHOR2 orr w1, w21, w1, lsl 10 umull x0, w19, w27 @@ -13071,10 +13008,10 @@ FtlDumpBlockInfo: sdiv w1, w1, w25 add x1, x2, x1, sxtw 2 str x1, [x0,16] -.L1995: +.L2001: add x3, x3, 1 - b .L1994 -.L2008: + b .L2000 +.L2014: add x0, x20, :lo12:.LANCHOR2 mov w1, w19 mov w2, w22 @@ -13082,9 +13019,9 @@ FtlDumpBlockInfo: ldr x0, [x0,992] bl FlashReadPages mov x8, 56 -.L1997: +.L2003: cmp w19, w28, uxth - bls .L2009 + bls .L2015 add x0, x20, :lo12:.LANCHOR2 ldrh w1, [x29,112] mul x2, x28, x8 @@ -13107,13 +13044,13 @@ FtlDumpBlockInfo: ldr w7, [x7,12] bl printk ldr x8, [x29,104] - b .L1997 -.L2009: + b .L2003 +.L2015: add w21, w21, 1 uxth w21, w21 cmp w21, w23 - bne .L1993 -.L1999: + bne .L1999 +.L2005: sub sp, x29, #16 mov w0, 0 ldp x19, x20, [sp,32] @@ -13131,30 +13068,30 @@ FtlDumpBlockInfo: FtlScanAllBlock: sub sp, sp, #144 adrp x1, .LANCHOR3 - adrp x0, .LC49 + adrp x0, .LC47 add x1, x1, :lo12:.LANCHOR3 - add x0, x0, :lo12:.LC49 + add x0, x0, :lo12:.LC47 add x1, x1, 56 stp x29, x30, [sp,16] add x29, sp, 16 stp x23, x24, [sp,64] stp x21, x22, [sp,48] - adrp x23, .LC67 - adrp x22, .LC66 - adrp x24, .LC68 - add x22, x22, :lo12:.LC66 + adrp x23, .LC65 + adrp x22, .LC64 + adrp x24, .LC66 + add x22, x22, :lo12:.LC64 stp x19, x20, [sp,32] - add x23, x23, :lo12:.LC67 + add x23, x23, :lo12:.LC65 mov w20, 0 - add x24, x24, :lo12:.LC68 + add x24, x24, :lo12:.LC66 stp x25, x26, [sp,80] bl printk -.L2011: +.L2017: adrp x21, .LANCHOR2 add x19, x21, :lo12:.LANCHOR2 ldrh w0, [x19,758] cmp w0, w20 - bls .L2020 + bls .L2026 mov w0, w20 strh w20, [x29,80] bl ftl_get_blk_mode @@ -13175,14 +13112,14 @@ FtlScanAllBlock: mov w10, 56 mov w19, w1 mov w5, 4 -.L2012: +.L2018: cmp w6, w1, uxth - bls .L2021 + bls .L2027 add x0, x29, 80 add x0, x0, x1, lsl 1 ldrh w0, [x0,16] cmp w0, w9 - beq .L2013 + beq .L2019 add x3, x21, :lo12:.LANCHOR2 lsl w0, w0, 10 umull x2, w19, w10 @@ -13203,10 +13140,10 @@ FtlScanAllBlock: sdiv w0, w0, w5 add x0, x3, x0, sxtw 2 str x0, [x2,16] -.L2013: +.L2019: add x1, x1, 1 - b .L2012 -.L2021: + b .L2018 +.L2027: add x0, x21, :lo12:.LANCHOR2 mov w1, w19 mov w2, 0 @@ -13214,10 +13151,10 @@ FtlScanAllBlock: mov x26, 56 ldr x0, [x0,992] bl FlashReadPages -.L2015: +.L2021: add x0, x21, :lo12:.LANCHOR2 cmp w19, w25, uxth - bls .L2022 + bls .L2028 ldr x4, [x0,992] mul x2, x25, x26 ldrh w1, [x29,80] @@ -13237,17 +13174,17 @@ FtlScanAllBlock: ldr w3, [x3,4] ldr w7, [x7,12] bl printk - b .L2015 -.L2022: + b .L2021 +.L2028: ldr x0, [x0,992] mov w1, w19 mov w2, 1 mov x25, 0 mov x26, 56 bl FlashReadPages -.L2017: +.L2023: cmp w19, w25, uxth - bls .L2023 + bls .L2029 add x0, x21, :lo12:.LANCHOR2 ldrh w1, [x29,80] mul x2, x25, x26 @@ -13268,12 +13205,12 @@ FtlScanAllBlock: ldr w3, [x3,4] ldr w7, [x7,12] bl printk - b .L2017 -.L2023: + b .L2023 +.L2029: add w20, w20, 1 uxth w20, w20 - b .L2011 -.L2020: + b .L2017 +.L2026: sub sp, x29, #16 mov w0, 0 ldp x19, x20, [sp,32] @@ -13314,19 +13251,19 @@ SupperBlkListInit: strh wzr, [x19,3600] strh wzr, [x19,862] mov w19, w27 -.L2025: +.L2031: add x0, x21, :lo12:.LANCHOR2 ldrh w1, [x0,756] cmp w19, w1 - bge .L2032 + bge .L2038 mov w20, 0 ldrh w3, [x0,748] ldrh w2, [x0,818] mov w28, w20 mov x26, x0 -.L2033: +.L2039: cmp w28, w3 - bge .L2034 + bge .L2040 add x0, x26, 776 mov w1, w19 str x2, [x29,96] @@ -13336,54 +13273,54 @@ SupperBlkListInit: bl FtlBbmIsBadBlock ldr x3, [x29,104] ldr x2, [x29,96] - cbnz w0, .L2026 + cbnz w0, .L2032 add w20, w2, w20 sxth w20, w20 -.L2026: +.L2032: add w28, w28, 1 sxth w28, w28 - b .L2033 -.L2034: - cbz w20, .L2028 + b .L2039 +.L2040: + cbz w20, .L2034 sdiv w20, w25, w20 sxth w20, w20 - b .L2029 -.L2028: + b .L2035 +.L2034: add x0, x21, :lo12:.LANCHOR2 ldr x0, [x0,1184] strh w24, [x0,w19,sxtw 1] -.L2029: +.L2035: add x0, x21, :lo12:.LANCHOR2 ldr x1, [x0,1280] smaddl x1, w19, w23, x1 strh w20, [x1,4] ldrh w1, [x0,3608] cmp w19, w1 - beq .L2030 + beq .L2036 ldrh w1, [x0,3656] cmp w19, w1 - beq .L2030 + beq .L2036 ldrh w1, [x0,3704] cmp w19, w1 - beq .L2030 + beq .L2036 ldr x0, [x0,1184] ldrh w0, [x0,w19,sxtw 1] - cbnz w0, .L2031 + cbnz w0, .L2037 add w27, w27, 1 mov w0, w19 uxth w27, w27 bl INSERT_FREE_LIST - b .L2030 -.L2031: + b .L2036 +.L2037: add w22, w22, 1 mov w0, w19 uxth w22, w22 bl INSERT_DATA_LIST -.L2030: +.L2036: add w19, w19, 1 sxth w19, w19 - b .L2025 -.L2032: + b .L2031 +.L2038: strh w22, [x0,3584] strh w27, [x0,3600] mov w0, 0 @@ -13408,8 +13345,8 @@ Ftl_save_ext_data: add x29, sp, 0 ldr w3, [x0,3456] cmp w3, w1 - bne .L2035 - mov w1, 72 + bne .L2041 + mov w1, 80 movk w1, 0x5000, lsl 16 str w1, [x2,4] ldr w1, [x0,3968] @@ -13445,7 +13382,7 @@ Ftl_save_ext_data: str w0, [x2,64] mov w0, 0 bl FtlVendorPartWrite -.L2035: +.L2041: ldp x29, x30, [sp], 16 ret .size Ftl_save_ext_data, .-Ftl_save_ext_data @@ -13459,30 +13396,30 @@ FtlEctTblFlush: stp x29, x30, [sp, -16]! add x29, sp, 0 ldr w4, [x3,652] - cbz w4, .L2038 + cbz w4, .L2044 ldr w3, [x3,920] - cmp w3, 29 + cmp w3, 39 mov w3, 4 csel w1, w1, w3, hi -.L2038: +.L2044: adrp x3, .LANCHOR4 add x3, x3, :lo12:.LANCHOR4 ldrh w4, [x3,3976] cmp w4, 31 - bhi .L2039 + bhi .L2045 add w4, w4, 1 mov w1, 1 strh w4, [x3,3976] -.L2039: - cbnz w0, .L2040 +.L2045: + cbnz w0, .L2046 add x0, x2, :lo12:.LANCHOR2 ldr x3, [x0,1160] ldr w0, [x3,20] add w1, w1, w0 ldr w0, [x3,16] cmp w0, w1 - bcc .L2041 -.L2040: + bcc .L2047 +.L2046: add x2, x2, :lo12:.LANCHOR2 ldr x0, [x2,1160] ldr w1, [x0,16] @@ -13502,7 +13439,7 @@ FtlEctTblFlush: mov w0, 64 bl FtlVendorPartWrite bl Ftl_save_ext_data -.L2041: +.L2047: mov w0, 0 ldp x29, x30, [sp], 16 ret @@ -13526,7 +13463,7 @@ Ftl_load_ext_data: mov w0, 19539 movk w0, 0x4654, lsl 16 cmp w1, w0 - beq .L2046 + beq .L2052 mov x0, x21 mov w1, 0 mov w2, 512 @@ -13534,7 +13471,7 @@ Ftl_load_ext_data: mov w0, 19539 movk w0, 0x4654, lsl 16 str w0, [x20,3456] -.L2046: +.L2052: add x1, x19, :lo12:.LANCHOR4 mov w2, 19539 movk w2, 0x4654, lsl 16 @@ -13542,7 +13479,7 @@ Ftl_load_ext_data: adrp x20, .LANCHOR2 ldr w3, [x1,3456] cmp w3, w2 - bne .L2047 + bne .L2053 ldr w2, [x1,3544] str w2, [x1,3968] ldr w2, [x1,3548] @@ -13570,7 +13507,7 @@ Ftl_load_ext_data: ldr w0, [x0,60] str w2, [x1,920] str w0, [x1,868] -.L2047: +.L2053: add x1, x19, :lo12:.LANCHOR4 add x0, x20, :lo12:.LANCHOR2 ldr w2, [x1,3524] @@ -13578,15 +13515,15 @@ Ftl_load_ext_data: movk w1, 0x1234, lsl 16 str wzr, [x0,864] cmp w2, w1 - bne .L2048 + bne .L2054 mov w1, 1 str w1, [x0,652] - adrp x0, .LC47 - adrp x1, .LC69 - add x0, x0, :lo12:.LC47 - add x1, x1, :lo12:.LC69 + adrp x0, .LC45 + adrp x1, .LC67 + add x0, x0, :lo12:.LC45 + add x1, x1, :lo12:.LC67 bl printk -.L2048: +.L2054: add x0, x20, :lo12:.LANCHOR2 add x19, x19, :lo12:.LANCHOR4 ldr x21, [sp,32] @@ -13620,25 +13557,25 @@ update_multiplier_value: mov w19, w22 ldrh w25, [x1,818] mov x23, x1 -.L2050: +.L2056: cmp w24, w22, uxth - bls .L2057 + bls .L2063 add x0, x23, 776 mov w1, w20 ldrb w0, [x0,x22] bl V2P_block bl FtlBbmIsBadBlock - cbnz w0, .L2051 + cbnz w0, .L2057 add w19, w19, w25 uxth w19, w19 -.L2051: - add x22, x22, 1 - b .L2050 .L2057: - cbz w19, .L2053 + add x22, x22, 1 + b .L2056 +.L2063: + cbz w19, .L2059 mov w0, 32768 sdiv w19, w0, w19 -.L2053: +.L2059: add x0, x21, :lo12:.LANCHOR2 mov w1, 6 umull x20, w20, w1 @@ -13661,7 +13598,7 @@ GetFreeBlockMinEraseCount: add x2, x2, :lo12:.LANCHOR2 ldr x1, [x2,3592] mov w0, w1 - cbz x1, .L2059 + cbz x1, .L2065 ldr x0, [x2,1280] sub x1, x1, x0 mov x0, -6148914691236517206 @@ -13670,7 +13607,7 @@ GetFreeBlockMinEraseCount: ldr x0, [x2,1168] and x1, x1, 65535 ldrh w0, [x0,x1,lsl 1] -.L2059: +.L2065: ret .size GetFreeBlockMinEraseCount, .-GetFreeBlockMinEraseCount .align 2 @@ -13682,7 +13619,7 @@ GetFreeBlockMaxEraseCount: add x5, x2, :lo12:.LANCHOR2 ldr x1, [x5,3592] mov w0, w1 - cbz x1, .L2062 + cbz x1, .L2068 ldrh w3, [x5,3600] mov w0, 7 mov w6, 6 @@ -13698,25 +13635,25 @@ GetFreeBlockMaxEraseCount: madd x1, x3, x1, x1 mov w3, 0 uxth w1, w1 -.L2064: +.L2070: cmp w3, w4 - beq .L2067 + beq .L2073 umull x5, w1, w6 ldrh w5, [x0,x5] cmp w5, w7 - bne .L2065 -.L2067: + bne .L2071 +.L2073: add x2, x2, :lo12:.LANCHOR2 ubfiz x1, x1, 1, 16 ldr x0, [x2,1168] ldrh w0, [x0,x1] - b .L2062 -.L2065: + b .L2068 +.L2071: add w3, w3, 1 mov w1, w5 uxth w3, w3 - b .L2064 -.L2062: + b .L2070 +.L2068: ret .size GetFreeBlockMaxEraseCount, .-GetFreeBlockMaxEraseCount .align 2 @@ -13724,11 +13661,11 @@ GetFreeBlockMaxEraseCount: .type FtlPrintInfo2buf, %function FtlPrintInfo2buf: stp x29, x30, [sp, -112]! - adrp x1, .LC70 + adrp x1, .LC68 add x29, sp, 0 stp x25, x26, [sp,64] adrp x25, .LANCHOR0 - add x1, x1, :lo12:.LC70 + add x1, x1, :lo12:.LC68 add x25, x25, :lo12:.LANCHOR0 str x27, [sp,80] stp x23, x24, [sp,48] @@ -13738,377 +13675,377 @@ FtlPrintInfo2buf: bl strcpy add x20, x23, 12 ldr w2, [x25,4016] - adrp x1, .LC71 + adrp x1, .LC69 adrp x24, .LANCHOR2 mov x0, x20 - add x1, x1, :lo12:.LC71 + add x1, x1, :lo12:.LC69 add x22, x24, :lo12:.LANCHOR2 bl sprintf add x20, x20, x0, sxtw - adrp x1, .LC72 + adrp x1, .LC70 mov x0, x20 ldr w2, [x22,836] - add x1, x1, :lo12:.LC72 + add x1, x1, :lo12:.LC70 bl sprintf add x20, x20, x0, sxtw - adrp x0, .LANCHOR1+3064 - ldr w0, [x0,#:lo12:.LANCHOR1+3064] + adrp x0, .LANCHOR1+3160 + ldr w0, [x0,#:lo12:.LANCHOR1+3160] cmp w0, 1 - beq .L2070 + beq .L2076 sub w0, w20, w23 - b .L2071 -.L2070: + b .L2077 +.L2076: add x0, x29, 96 add x1, x29, 100 add x2, x29, 104 add x3, x29, 108 bl NandcGetTimeCfg ldr w4, [x29,104] - adrp x1, .LC73 + adrp x1, .LC71 ldr w5, [x29,108] mov x0, x20 ldr w3, [x29,100] - add x1, x1, :lo12:.LC73 + add x1, x1, :lo12:.LC71 ldr w2, [x29,96] bl sprintf add x21, x20, x0, sxtw - adrp x1, .LC74 + adrp x1, .LC72 mov x0, x21 - add x1, x1, :lo12:.LC74 + add x1, x1, :lo12:.LC72 add x21, x21, 10 adrp x20, .LANCHOR4 bl strcpy add x20, x20, :lo12:.LANCHOR4 ldr w2, [x22,1396] + adrp x1, .LC73 + mov x0, x21 + add x1, x1, :lo12:.LC73 + bl sprintf + add x21, x21, x0, sxtw + ldr w2, [x22,3892] + adrp x1, .LC74 + mov x0, x21 + add x1, x1, :lo12:.LC74 + bl sprintf + add x21, x21, x0, sxtw + ldr w2, [x22,900] adrp x1, .LC75 mov x0, x21 add x1, x1, :lo12:.LC75 bl sprintf add x21, x21, x0, sxtw - ldr w2, [x22,3892] + ldr w2, [x22,888] adrp x1, .LC76 mov x0, x21 add x1, x1, :lo12:.LC76 bl sprintf add x21, x21, x0, sxtw - ldr w2, [x22,900] + ldr w2, [x22,884] adrp x1, .LC77 mov x0, x21 add x1, x1, :lo12:.LC77 bl sprintf add x21, x21, x0, sxtw - ldr w2, [x22,888] + ldr w2, [x22,892] adrp x1, .LC78 mov x0, x21 add x1, x1, :lo12:.LC78 bl sprintf add x21, x21, x0, sxtw - ldr w2, [x22,884] + ldr w2, [x22,896] adrp x1, .LC79 mov x0, x21 add x1, x1, :lo12:.LC79 bl sprintf add x21, x21, x0, sxtw - ldr w2, [x22,892] + ldr w2, [x22,880] adrp x1, .LC80 mov x0, x21 add x1, x1, :lo12:.LC80 bl sprintf add x21, x21, x0, sxtw - ldr w2, [x22,896] + ldr w2, [x20,3968] adrp x1, .LC81 mov x0, x21 add x1, x1, :lo12:.LC81 - bl sprintf - add x21, x21, x0, sxtw - ldr w2, [x22,880] - adrp x1, .LC82 - mov x0, x21 - add x1, x1, :lo12:.LC82 - bl sprintf - add x21, x21, x0, sxtw - ldr w2, [x20,3968] - adrp x1, .LC83 - mov x0, x21 - add x1, x1, :lo12:.LC83 lsr w2, w2, 11 bl sprintf add x21, x21, x0, sxtw ldr w2, [x20,3972] - adrp x1, .LC84 + adrp x1, .LC82 mov x0, x21 - add x1, x1, :lo12:.LC84 + add x1, x1, :lo12:.LC82 lsr w2, w2, 11 bl sprintf add x21, x21, x0, sxtw ldr w2, [x22,872] - adrp x1, .LC85 + adrp x1, .LC83 mov x0, x21 - add x1, x1, :lo12:.LC85 + add x1, x1, :lo12:.LC83 bl sprintf add x21, x21, x0, sxtw ldr w2, [x22,876] - adrp x1, .LC86 - add x1, x1, :lo12:.LC86 + adrp x1, .LC84 + add x1, x1, :lo12:.LC84 mov x0, x21 bl sprintf add x21, x21, x0, sxtw bl FtlBbtCalcTotleCnt uxth w3, w0 ldrh w2, [x22,1302] + adrp x1, .LC85 + mov x0, x21 + add x1, x1, :lo12:.LC85 + bl sprintf + add x21, x21, x0, sxtw + ldrh w2, [x22,3600] + adrp x1, .LC86 + mov x0, x21 + add x1, x1, :lo12:.LC86 + bl sprintf + add x21, x21, x0, sxtw + ldr w2, [x22,904] adrp x1, .LC87 mov x0, x21 add x1, x1, :lo12:.LC87 bl sprintf add x21, x21, x0, sxtw - ldrh w2, [x22,3600] + ldr w2, [x22,908] adrp x1, .LC88 mov x0, x21 add x1, x1, :lo12:.LC88 bl sprintf add x21, x21, x0, sxtw - ldr w2, [x22,904] + ldr w2, [x20,3980] adrp x1, .LC89 mov x0, x21 add x1, x1, :lo12:.LC89 bl sprintf add x21, x21, x0, sxtw - ldr w2, [x22,908] + ldr w2, [x22,912] adrp x1, .LC90 mov x0, x21 add x1, x1, :lo12:.LC90 bl sprintf add x21, x21, x0, sxtw - ldr w2, [x20,3980] + ldr w2, [x22,916] adrp x1, .LC91 mov x0, x21 add x1, x1, :lo12:.LC91 bl sprintf add x21, x21, x0, sxtw - ldr w2, [x22,912] + ldr w2, [x22,920] adrp x1, .LC92 mov x0, x21 add x1, x1, :lo12:.LC92 bl sprintf add x21, x21, x0, sxtw - ldr w2, [x22,916] + ldrh w2, [x22,3550] adrp x1, .LC93 mov x0, x21 add x1, x1, :lo12:.LC93 bl sprintf add x21, x21, x0, sxtw - ldr w2, [x22,920] + ldrh w2, [x22,3548] adrp x1, .LC94 mov x0, x21 add x1, x1, :lo12:.LC94 bl sprintf add x21, x21, x0, sxtw - ldrh w2, [x22,3550] + ldr w2, [x25,4048] adrp x1, .LC95 mov x0, x21 add x1, x1, :lo12:.LC95 bl sprintf add x21, x21, x0, sxtw - ldrh w2, [x22,3548] + ldr w2, [x22,852] adrp x1, .LC96 mov x0, x21 add x1, x1, :lo12:.LC96 bl sprintf add x21, x21, x0, sxtw - ldr w2, [x25,4048] + ldr w2, [x22,744] adrp x1, .LC97 mov x0, x21 add x1, x1, :lo12:.LC97 bl sprintf add x21, x21, x0, sxtw - ldr w2, [x22,852] + ldrh w2, [x22,1470] adrp x1, .LC98 mov x0, x21 add x1, x1, :lo12:.LC98 bl sprintf add x21, x21, x0, sxtw - ldr w2, [x22,744] + ldrh w2, [x22,756] adrp x1, .LC99 mov x0, x21 add x1, x1, :lo12:.LC99 bl sprintf add x21, x21, x0, sxtw - ldrh w2, [x22,1470] + ldrh w2, [x20,3404] adrp x1, .LC100 mov x0, x21 add x1, x1, :lo12:.LC100 bl sprintf add x21, x21, x0, sxtw - ldrh w2, [x22,756] + ldr w2, [x22,760] adrp x1, .LC101 mov x0, x21 add x1, x1, :lo12:.LC101 bl sprintf add x21, x21, x0, sxtw - ldrh w2, [x20,3404] + ldrh w2, [x22,3896] adrp x1, .LC102 mov x0, x21 add x1, x1, :lo12:.LC102 bl sprintf add x21, x21, x0, sxtw - ldr w2, [x22,760] + ldrh w2, [x22,1296] adrp x1, .LC103 mov x0, x21 add x1, x1, :lo12:.LC103 bl sprintf add x21, x21, x0, sxtw - ldrh w2, [x22,3896] + ldrh w2, [x22,3610] adrp x1, .LC104 mov x0, x21 add x1, x1, :lo12:.LC104 bl sprintf add x21, x21, x0, sxtw - ldrh w2, [x22,1296] + ldrb w2, [x22,3614] adrp x1, .LC105 mov x0, x21 add x1, x1, :lo12:.LC105 bl sprintf add x21, x21, x0, sxtw - ldrh w2, [x22,3610] + ldrh w2, [x22,3608] adrp x1, .LC106 mov x0, x21 add x1, x1, :lo12:.LC106 bl sprintf add x21, x21, x0, sxtw - ldrb w2, [x22,3614] + ldrb w2, [x22,3616] adrp x1, .LC107 mov x0, x21 add x1, x1, :lo12:.LC107 bl sprintf add x21, x21, x0, sxtw - ldrh w2, [x22,3608] + ldrh w2, [x22,3612] adrp x1, .LC108 mov x0, x21 add x1, x1, :lo12:.LC108 bl sprintf add x21, x21, x0, sxtw - ldrb w2, [x22,3616] + ldrh w3, [x22,3608] adrp x1, .LC109 + ldr x2, [x22,1184] mov x0, x21 add x1, x1, :lo12:.LC109 + ldrh w2, [x2,x3,lsl 1] bl sprintf add x21, x21, x0, sxtw - ldrh w2, [x22,3612] + ldrh w2, [x22,3658] adrp x1, .LC110 mov x0, x21 add x1, x1, :lo12:.LC110 bl sprintf add x21, x21, x0, sxtw - ldrh w3, [x22,3608] + ldrb w2, [x22,3662] adrp x1, .LC111 - ldr x2, [x22,1184] mov x0, x21 add x1, x1, :lo12:.LC111 - ldrh w2, [x2,x3,lsl 1] bl sprintf add x21, x21, x0, sxtw - ldrh w2, [x22,3658] + ldrh w2, [x22,3656] adrp x1, .LC112 mov x0, x21 add x1, x1, :lo12:.LC112 bl sprintf add x21, x21, x0, sxtw - ldrb w2, [x22,3662] + ldrb w2, [x22,3664] adrp x1, .LC113 mov x0, x21 add x1, x1, :lo12:.LC113 bl sprintf add x21, x21, x0, sxtw - ldrh w2, [x22,3656] + ldrh w2, [x22,3660] adrp x1, .LC114 mov x0, x21 add x1, x1, :lo12:.LC114 bl sprintf add x21, x21, x0, sxtw - ldrb w2, [x22,3664] + ldrh w3, [x22,3656] adrp x1, .LC115 + ldr x2, [x22,1184] mov x0, x21 add x1, x1, :lo12:.LC115 + ldrh w2, [x2,x3,lsl 1] bl sprintf add x21, x21, x0, sxtw - ldrh w2, [x22,3660] + ldrh w2, [x22,3706] adrp x1, .LC116 mov x0, x21 add x1, x1, :lo12:.LC116 bl sprintf add x21, x21, x0, sxtw - ldrh w3, [x22,3656] + ldrb w2, [x22,3710] adrp x1, .LC117 - ldr x2, [x22,1184] mov x0, x21 add x1, x1, :lo12:.LC117 - ldrh w2, [x2,x3,lsl 1] bl sprintf add x21, x21, x0, sxtw - ldrh w2, [x22,3706] + ldrh w2, [x22,3704] adrp x1, .LC118 mov x0, x21 add x1, x1, :lo12:.LC118 bl sprintf add x21, x21, x0, sxtw - ldrb w2, [x22,3710] + ldrb w2, [x22,3712] adrp x1, .LC119 mov x0, x21 add x1, x1, :lo12:.LC119 bl sprintf add x21, x21, x0, sxtw - ldrh w2, [x22,3704] + ldrh w2, [x22,3708] adrp x1, .LC120 mov x0, x21 add x1, x1, :lo12:.LC120 bl sprintf add x21, x21, x0, sxtw - ldrb w2, [x22,3712] + ldrh w2, [x20,3410] adrp x1, .LC121 mov x0, x21 add x1, x1, :lo12:.LC121 bl sprintf add x21, x21, x0, sxtw - ldrh w2, [x22,3708] + ldrb w2, [x20,3414] adrp x1, .LC122 mov x0, x21 add x1, x1, :lo12:.LC122 bl sprintf add x21, x21, x0, sxtw - ldrh w2, [x20,3410] + ldrh w2, [x20,3408] adrp x1, .LC123 mov x0, x21 add x1, x1, :lo12:.LC123 bl sprintf add x21, x21, x0, sxtw - ldrb w2, [x20,3414] + ldrb w2, [x20,3416] adrp x1, .LC124 mov x0, x21 add x1, x1, :lo12:.LC124 bl sprintf add x21, x21, x0, sxtw - ldrh w2, [x20,3408] + ldrh w2, [x20,3412] adrp x1, .LC125 mov x0, x21 add x1, x1, :lo12:.LC125 bl sprintf add x21, x21, x0, sxtw - ldrb w2, [x20,3416] - adrp x1, .LC126 - mov x0, x21 - add x1, x1, :lo12:.LC126 - bl sprintf - add x21, x21, x0, sxtw - ldrh w2, [x20,3412] - adrp x1, .LC127 - mov x0, x21 - add x1, x1, :lo12:.LC127 - bl sprintf - add x21, x21, x0, sxtw ldr w3, [x22,868] - adrp x1, .LC128 + adrp x1, .LC126 ldr w2, [x22,652] - add x1, x1, :lo12:.LC128 + add x1, x1, :lo12:.LC126 ldr w4, [x20,3540] mov x0, x21 ldr w5, [x20,3532] @@ -14117,80 +14054,80 @@ FtlPrintInfo2buf: bl sprintf add x19, x21, x0, sxtw ldr w2, [x20,3528] + adrp x1, .LC127 + mov x0, x19 + add x1, x1, :lo12:.LC127 + bl sprintf + add x19, x19, x0, sxtw + ldr w2, [x20,3552] + adrp x1, .LC128 + mov x0, x19 + add x1, x1, :lo12:.LC128 + bl sprintf + add x19, x19, x0, sxtw + ldrh w2, [x22,956] adrp x1, .LC129 mov x0, x19 add x1, x1, :lo12:.LC129 bl sprintf add x19, x19, x0, sxtw - ldr w2, [x20,3552] + ldrh w2, [x22,958] adrp x1, .LC130 mov x0, x19 add x1, x1, :lo12:.LC130 bl sprintf add x19, x19, x0, sxtw - ldrh w2, [x22,952] + ldr w2, [x22,940] adrp x1, .LC131 mov x0, x19 add x1, x1, :lo12:.LC131 bl sprintf add x19, x19, x0, sxtw - ldrh w2, [x22,954] + ldrh w2, [x22,960] adrp x1, .LC132 - mov x0, x19 add x1, x1, :lo12:.LC132 - bl sprintf - add x19, x19, x0, sxtw - ldr w2, [x22,940] - adrp x1, .LC133 - mov x0, x19 - add x1, x1, :lo12:.LC133 - bl sprintf - add x19, x19, x0, sxtw - ldrh w2, [x22,956] - adrp x1, .LC134 - add x1, x1, :lo12:.LC134 mov x0, x19 bl sprintf add x19, x19, x0, sxtw bl GetFreeBlockMinEraseCount uxth w2, w0 - adrp x1, .LC135 + adrp x1, .LC133 mov x0, x19 - add x1, x1, :lo12:.LC135 + add x1, x1, :lo12:.LC133 bl sprintf add x19, x19, x0, sxtw ldrh w0, [x22,3600] bl GetFreeBlockMaxEraseCount uxth w2, w0 - adrp x1, .LC136 + adrp x1, .LC134 mov x0, x19 - add x1, x1, :lo12:.LC136 + add x1, x1, :lo12:.LC134 bl sprintf add x19, x19, x0, sxtw ldrh w0, [x20,3408] mov w1, 65535 cmp w0, w1 - beq .L2072 + beq .L2078 ubfiz x2, x0, 1, 16 ldr x3, [x22,1184] - adrp x1, .LC137 + adrp x1, .LC135 mov x0, x19 - add x1, x1, :lo12:.LC137 + add x1, x1, :lo12:.LC135 ldrh w2, [x3,x2] bl sprintf add x19, x19, x0, sxtw -.L2072: +.L2078: mov w0, 0 - adrp x22, .LC138 + adrp x22, .LC136 mov w20, 0 mov w27, 65535 bl List_get_gc_head_node mov w26, 6 uxth w3, w0 - add x22, x22, :lo12:.LC138 -.L2074: + add x22, x22, :lo12:.LC136 +.L2080: cmp w3, w27 - beq .L2073 + beq .L2079 add x21, x24, :lo12:.LANCHOR2 ubfiz x6, x3, 1, 16 umull x25, w3, w26 @@ -14210,14 +14147,14 @@ FtlPrintInfo2buf: ldr x0, [x21,1280] cmp w20, 16 ldrh w3, [x0,x25] - bne .L2074 -.L2073: + bne .L2080 +.L2079: add x1, x24, :lo12:.LANCHOR2 - adrp x22, .LC139 + adrp x22, .LC137 mov w20, 0 mov w27, 65535 mov w26, 6 - add x22, x22, :lo12:.LC139 + add x22, x22, :lo12:.LC137 ldr x0, [x1,3592] ldr x3, [x1,1280] sub x3, x0, x3 @@ -14225,9 +14162,9 @@ FtlPrintInfo2buf: asr x3, x3, 1 madd x3, x0, x3, x3 uxth w3, w3 -.L2076: +.L2082: cmp w3, w27 - beq .L2075 + beq .L2081 add x21, x24, :lo12:.LANCHOR2 ubfiz x5, x3, 1, 16 umull x25, w3, w26 @@ -14245,10 +14182,10 @@ FtlPrintInfo2buf: ldr x0, [x21,1280] cmp w20, 4 ldrh w3, [x0,x25] - bne .L2076 -.L2075: + bne .L2082 +.L2081: sub w0, w19, w23 -.L2071: +.L2077: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -14262,11 +14199,11 @@ FtlPrintInfo2buf: .type ftl_proc_ftl_read, %function ftl_proc_ftl_read: stp x29, x30, [sp, -32]! - adrp x1, .LC47 - adrp x2, .LC140 + adrp x1, .LC45 + adrp x2, .LC138 add x29, sp, 0 - add x1, x1, :lo12:.LC47 - add x2, x2, :lo12:.LC140 + add x1, x1, :lo12:.LC45 + add x2, x2, :lo12:.LC138 stp x19, x20, [sp,16] mov x20, x0 bl sprintf @@ -14296,22 +14233,22 @@ GetSwlReplaceBlock: add x1, x19, :lo12:.LANCHOR2 ldr w2, [x1,920] cmp w3, w2 - bcs .L2081 + bcs .L2087 str wzr, [x1,904] ldrh w3, [x1,756] ldr x5, [x1,1168] mov x1, 0 -.L2082: +.L2088: cmp w3, w1 - bls .L2114 + bls .L2120 add x4, x19, :lo12:.LANCHOR2 ldrh w6, [x5,x1,lsl 1] add x1, x1, 1 ldr w2, [x4,904] add w2, w6, w2 str w2, [x4,904] - b .L2082 -.L2114: + b .L2088 +.L2120: add x2, x19, :lo12:.LANCHOR2 add x4, x0, :lo12:.LANCHOR4 ldr w1, [x2,904] @@ -14322,46 +14259,46 @@ GetSwlReplaceBlock: ldrh w3, [x2,808] udiv w1, w1, w3 str w1, [x2,904] - b .L2084 -.L2081: + b .L2090 +.L2087: ldr w2, [x1,916] cmp w3, w2 - bls .L2084 + bls .L2090 add w2, w2, 1 str w2, [x1,916] mov w1, 0 -.L2086: +.L2092: add x2, x19, :lo12:.LANCHOR2 ldrh w3, [x2,756] cmp w1, w3 - bcs .L2084 + bcs .L2090 ubfiz x3, x1, 1, 32 ldr x4, [x2,1168] add w1, w1, 1 ldrh w2, [x4,x3] add w2, w2, 1 strh w2, [x4,x3] - b .L2086 -.L2084: + b .L2092 +.L2090: add x1, x19, :lo12:.LANCHOR2 add x0, x0, :lo12:.LANCHOR4 ldr w21, [x1,920] ldr w23, [x0,3980] add w0, w21, 256 cmp w0, w23 - bls .L2089 + bls .L2095 ldr w2, [x1,916] add w0, w21, 768 cmp w0, w2 - bls .L2089 + bls .L2095 ldr w0, [x1,652] - cbz w0, .L2092 - cmp w21, 30 - bls .L2089 -.L2092: + cbz w0, .L2098 + cmp w21, 40 + bls .L2095 +.L2098: mov w0, 65535 - b .L2091 -.L2089: + b .L2097 +.L2095: add x0, x19, :lo12:.LANCHOR2 ldrh w0, [x0,3600] add w0, w0, w0, lsl 1 @@ -14370,13 +14307,13 @@ GetSwlReplaceBlock: uxth w6, w0 add w0, w21, 64 cmp w6, w0 - bcs .L2101 - cmp w21, 30 - bhi .L2092 -.L2101: + bcs .L2107 + cmp w21, 40 + bhi .L2098 +.L2107: add x1, x19, :lo12:.LANCHOR2 ldr x3, [x1,3568] - cbz x3, .L2092 + cbz x3, .L2098 mov w26, 65535 mov x0, -6148914691236517206 ldrh w9, [x1,756] @@ -14387,16 +14324,16 @@ GetSwlReplaceBlock: add x0, x0, 1 mov w1, 0 mov w10, 6 -.L2094: +.L2100: ldrh w5, [x3] cmp w5, w8 - beq .L2096 + beq .L2102 add w1, w1, 1 uxth w1, w1 cmp w1, w9 - bhi .L2092 + bhi .L2098 ldrh w2, [x3,4] - cbz w2, .L2095 + cbz w2, .L2101 sub x4, x3, x7 asr x4, x4, 1 mul x4, x4, x0 @@ -14404,51 +14341,51 @@ GetSwlReplaceBlock: and x4, x4, 65535 ldrh w2, [x25,x4,lsl 1] cmp w2, w21 - bls .L2100 + bls .L2106 cmp w2, w26 - bcs .L2095 + bcs .L2101 mov w26, w2 mov w20, w3 -.L2095: +.L2101: umull x3, w5, w10 add x3, x7, x3 - b .L2094 -.L2100: + b .L2100 +.L2106: mov w20, w3 -.L2096: +.L2102: mov w0, 65535 cmp w20, w0 - beq .L2092 + beq .L2098 ubfiz x24, x20, 1, 16 ldrh w22, [x25,x24] cmp w22, w21 - bls .L2098 + bls .L2104 str x6, [x29,88] bl GetFreeBlockMinEraseCount ldr x6, [x29,88] cmp w21, w0, uxth - bcs .L2098 + bcs .L2104 add x0, x19, :lo12:.LANCHOR2 str w26, [x0,920] -.L2098: +.L2104: cmp w22, w23 - bcs .L2092 + bcs .L2098 add w0, w22, 128 cmp w6, w0 - ble .L2092 + ble .L2098 add w0, w22, 256 cmp w0, w23 - bcc .L2099 + bcc .L2105 add x0, x19, :lo12:.LANCHOR2 add w22, w22, 768 ldr w0, [x0,916] cmp w22, w0 - bcs .L2092 -.L2099: + bcs .L2098 +.L2105: add x19, x19, :lo12:.LANCHOR2 - adrp x0, .LC141 + adrp x0, .LC139 ldrh w5, [x25,x24] - add x0, x0, :lo12:.LC141 + add x0, x0, :lo12:.LC139 mov w1, w20 mov w2, w23 ldr x4, [x19,1184] @@ -14458,7 +14395,7 @@ GetSwlReplaceBlock: mov w0, 1 str w0, [x19,928] mov w0, w20 -.L2091: +.L2097: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -14475,13 +14412,13 @@ free_data_superblock: mov w1, 65535 cmp w0, w1 add x29, sp, 0 - beq .L2116 + beq .L2122 adrp x2, .LANCHOR2+1184 ubfiz x1, x0, 1, 16 ldr x2, [x2,#:lo12:.LANCHOR2+1184] strh wzr, [x2,x1] bl INSERT_FREE_LIST -.L2116: +.L2122: mov w0, 0 ldp x29, x30, [sp], 16 ret @@ -14500,15 +14437,15 @@ allocate_data_superblock: stp x25, x26, [sp,64] ldr w1, [x19,1400] stp x27, x28, [sp,80] - cbnz w1, .L2118 + cbnz w1, .L2124 mov x20, x0 add x23, x19, 3704 adrp x22, .LANCHOR0 mov w24, 7 add x25, x19, 3592 -.L2119: +.L2125: cmp x20, x23 - bne .L2120 + bne .L2126 ldrh w2, [x19,3600] ldr w4, [x19,928] lsr w3, w2, 1 @@ -14517,68 +14454,70 @@ allocate_data_superblock: add w1, w1, w0, lsr 2 ldr w0, [x19,652] uxth w1, w1 - cbz w0, .L2121 + cbz w0, .L2127 ldr w0, [x19,920] - cmp w0, 29 - bhi .L2121 + cmp w0, 39 + bhi .L2127 cmp w0, 2 mov w1, 0 - bls .L2122 - tbz x2, 0, .L2149 - cbz w4, .L2122 -.L2149: + bls .L2128 + tbz x2, 0, .L2155 + cbz w4, .L2128 +.L2155: mov w1, w3 - b .L2121 -.L2120: + b .L2127 +.L2126: ldrb w0, [x20,8] mov w1, 0 cmp w0, 1 - bne .L2122 + bne .L2128 ldrh w0, [x19,768] cmp w0, 1 - beq .L2122 + beq .L2128 add x0, x22, :lo12:.LANCHOR0 ldrb w0, [x0,136] - cbnz w0, .L2122 + cbnz w0, .L2128 ldr w2, [x19,652] ldrh w0, [x19,3600] lsr w1, w0, 3 - cbz w2, .L2121 + cbz w2, .L2127 ldr w2, [x19,920] cmp w2, 1 - bhi .L2121 + bhi .L2127 mul w1, w0, w24 lsr w1, w1, 3 -.L2121: - cbz w1, .L2122 +.L2127: + cbz w1, .L2128 sub w1, w1, #1 uxth w1, w1 -.L2122: +.L2128: ldrb w2, [x20,8] mov x0, x25 bl List_pop_index_node - uxth w27, w0 + uxth w28, w0 ldrh w0, [x19,3600] sub w0, w0, #1 strh w0, [x19,3600] - strh w27, [x20] + ldrh w0, [x19,756] + cmp w0, w28 + bls .L2125 + ubfiz x26, x28, 1, 16 + ldr x0, [x19,1184] + ldrh w0, [x0,x26] + cbnz w0, .L2125 + strh w28, [x20] mov x0, x20 bl make_superblock ldrb w0, [x20,7] - cbz w0, .L2124 + cbz w0, .L2180 mov x0, 0 ldrh w5, [x19,748] - mov w26, w0 + mov w27, w0 mov x3, 56 mov w6, 65535 - b .L2125 -.L2124: - ubfiz x27, x27, 1, 16 - ldr x0, [x19,1184] - mov w1, -1 - strh w1, [x0,x27] - b .L2119 -.L2128: +.L2132: + cmp w5, w0, uxth + bls .L2183 ldr x4, [x19,1016] madd x1, x0, x3, x4 str xzr, [x1,16] @@ -14586,68 +14525,63 @@ allocate_data_superblock: add x1, x20, x0, lsl 1 ldrh w1, [x1,16] cmp w1, w6 - beq .L2127 - umull x2, w26, w3 - add w26, w26, 1 + beq .L2133 + umull x2, w27, w3 + add w27, w27, 1 lsl w1, w1, 10 add x2, x4, x2 - uxth w26, w26 + uxth w27, w27 str w1, [x2,4] -.L2127: +.L2133: add x0, x0, 1 -.L2125: - cmp w5, w0, uxth - bhi .L2128 + b .L2132 +.L2183: add x0, x19, 3608 - uxtw x28, w27 cmp x20, x0 - bne .L2129 + bne .L2135 ldr w1, [x19,652] - cbz w1, .L2129 + cbz w1, .L2135 ldr x1, [x19,1168] - ldrh w1, [x1,x28,lsl 1] - cmp w1, 30 - bls .L2129 + ldrh w1, [x1,x26] + cmp w1, 40 + bls .L2135 strb wzr, [x19,3616] -.L2129: +.L2135: ldrb w0, [x20,8] - cbnz w0, .L2130 - lsl x0, x28, 1 - ldr x1, [x19,1168] - mov w2, 2 - ldrh w3, [x1,x0] - cbz w3, .L2174 - ldrh w2, [x19,808] - add w2, w3, w2 -.L2174: - strh w2, [x1,x0] + cbnz w0, .L2136 + ldr x0, [x19,1168] + mov w1, 2 + ldrh w2, [x0,x26] + cbz w2, .L2181 + ldrh w1, [x19,808] + add w1, w2, w1 +.L2181: + strh w1, [x0,x26] mov w1, 0 ldr w0, [x19,904] add w0, w0, 1 str w0, [x19,904] - mov w0, w27 + mov w0, w28 bl ftl_set_blk_mode - b .L2133 -.L2130: - lsl x0, x28, 1 - ldr x2, [x19,1168] - ldrh w1, [x2,x0] - add w1, w1, 1 - strh w1, [x2,x0] + b .L2139 +.L2136: + ldr x1, [x19,1168] + ldrh w0, [x1,x26] + add w0, w0, 1 + strh w0, [x1,x26] ldr w0, [x19,908] add w0, w0, 1 str w0, [x19,908] - mov w0, w27 + mov w0, w28 bl ftl_set_blk_mode.part.17 -.L2133: - lsl x28, x28, 1 +.L2139: ldr x0, [x19,1168] ldr w1, [x19,916] - ldrh w0, [x0,x28] + ldrh w0, [x0,x26] cmp w0, w1 - bls .L2134 + bls .L2140 str w0, [x19,916] -.L2134: +.L2140: ldrh w1, [x19,808] mov x3, 56 ldr w2, [x19,904] @@ -14662,48 +14596,48 @@ allocate_data_superblock: add w0, w0, 1 str w0, [x1,16] mov x0, 0 -.L2135: - cmp w26, w0, uxth - bls .L2176 +.L2141: + cmp w27, w0, uxth + bls .L2184 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 .L2135 -.L2176: + b .L2141 +.L2184: add x0, x22, :lo12:.LANCHOR0 ldrb w0, [x0,136] - cbz w0, .L2137 + cbz w0, .L2143 ldrb w0, [x20,8] cmp w0, 1 ldr x0, [x19,1016] - bne .L2138 + bne .L2144 mov w1, 0 - b .L2175 -.L2138: + b .L2182 +.L2144: mov w1, 1 -.L2175: - mov w2, w26 +.L2182: + mov w2, w27 bl FlashEraseBlocks -.L2137: +.L2143: ldrb w1, [x20,8] - mov w2, w26 + mov w2, w27 ldr x0, [x19,1016] bl FlashEraseBlocks mov x1, 0 mov x4, 56 mov w2, w1 -.L2139: - cmp w26, w1, uxth - bls .L2177 +.L2145: + cmp w27, w1, uxth + bls .L2185 mul x0, x1, x4 ldr x3, [x19,1016] add x5, x3, x0 ldr w3, [x3,x0] cmn w3, #1 - bne .L2140 + bne .L2146 ldr w0, [x5,4] add w2, w2, 1 str x4, [x29,104] @@ -14722,27 +14656,28 @@ allocate_data_superblock: ldrb w0, [x20,7] sub w0, w0, #1 strb w0, [x20,7] -.L2140: +.L2146: add x1, x1, 1 - b .L2139 -.L2177: - cbz w2, .L2142 - mov w0, w27 + b .L2145 +.L2185: + cbz w2, .L2148 + mov w0, w28 bl update_multiplier_value bl FtlBbmTblFlush -.L2142: +.L2148: ldrb w0, [x20,7] - cbnz w0, .L2143 + cbnz w0, .L2149 +.L2180: ldr x0, [x19,1184] mov w1, -1 - strh w1, [x0,x28] - b .L2119 -.L2143: + strh w1, [x0,x26] + b .L2125 +.L2149: add x21, x21, :lo12:.LANCHOR2 strh wzr, [x20,2] strb wzr, [x20,6] ldrh w1, [x21,818] - strh w27, [x20] + strh w28, [x20] mul w0, w0, w1 ldr w1, [x21,872] str w1, [x20,12] @@ -14753,7 +14688,7 @@ allocate_data_superblock: ldr x1, [x21,1184] ldrh w2, [x20] strh w0, [x1,x2,lsl 1] -.L2118: +.L2124: mov w0, 0 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -14775,12 +14710,12 @@ FtlGcBufInit: mov w4, 4 str wzr, [x0,#:lo12:.LANCHOR4+3984] mov w10, 56 -.L2179: +.L2187: add x2, x7, :lo12:.LANCHOR2 adrp x6, .LANCHOR2 ldrh w0, [x2,748] cmp w1, w0 - bcs .L2183 + bcs .L2191 umull x3, w1, w8 ldr x5, [x2,1104] ldr x6, [x2,1072] @@ -14808,15 +14743,15 @@ FtlGcBufInit: str x2, [x0,8] ldr x2, [x5,8] str x2, [x0,16] - b .L2179 -.L2183: + b .L2187 +.L2191: mov w7, 24 mov w4, 4 -.L2181: +.L2189: add x1, x6, :lo12:.LANCHOR2 ldr w2, [x1,1040] cmp w0, w2 - bcs .L2184 + bcs .L2192 umull x3, w0, w7 ldr x5, [x1,1104] ldr x8, [x1,1072] @@ -14837,8 +14772,8 @@ FtlGcBufInit: uxth w0, w0 add x1, x1, x2, sxtw 2 str x1, [x3,8] - b .L2181 -.L2184: + b .L2189 +.L2192: ret .size FtlGcBufInit, .-FtlGcBufInit .align 2 @@ -14902,32 +14837,32 @@ FtlGcBufFree: mov w9, 24 ldr w8, [x2,1040] ldr x5, [x2,1104] -.L2187: +.L2195: cmp w3, w1 - bcs .L2186 + bcs .L2194 umull x4, w3, w7 mov w2, 0 add x4, x0, x4 -.L2192: +.L2200: cmp w2, w8 - bcs .L2189 + bcs .L2197 umull x6, w2, w9 add x10, x5, x6 ldr x11, [x5,x6] ldr x6, [x4,8] cmp x11, x6 - bne .L2188 + bne .L2196 str wzr, [x10,16] - b .L2189 -.L2188: + b .L2197 +.L2196: add w2, w2, 1 uxth w2, w2 - b .L2192 -.L2189: + b .L2200 +.L2197: add w3, w3, 1 uxth w3, w3 - b .L2187 -.L2186: + b .L2195 +.L2194: ret .size FtlGcBufFree, .-FtlGcBufFree .align 2 @@ -14942,17 +14877,17 @@ FtlGcBufAlloc: ldr w5, [x2,1040] ldr x6, [x2,1104] mov w2, 0 -.L2194: +.L2202: cmp w2, w1 - bcs .L2200 + bcs .L2208 mov w3, 0 -.L2198: +.L2206: cmp w3, w5 - bcs .L2196 + bcs .L2204 umull x4, w3, w7 add x4, x6, x4 ldr w10, [x4,16] - cbnz w10, .L2195 + cbnz w10, .L2203 umull x3, w2, w9 str w8, [x4,16] add x3, x0, x3 @@ -14960,16 +14895,16 @@ FtlGcBufAlloc: str x10, [x3,8] ldr x4, [x4,8] str x4, [x3,16] - b .L2196 -.L2195: + b .L2204 +.L2203: add w3, w3, 1 uxth w3, w3 - b .L2198 -.L2196: + b .L2206 +.L2204: add w2, w2, 1 uxth w2, w2 - b .L2194 -.L2200: + b .L2202 +.L2208: ret .size FtlGcBufAlloc, .-FtlGcBufAlloc .align 2 @@ -14982,19 +14917,19 @@ IsBlkInGcList: adrp x1, .LANCHOR2+976 ldr x3, [x1,#:lo12:.LANCHOR2+976] mov x1, 0 -.L2202: +.L2210: cmp w2, w1, uxth - bls .L2206 + bls .L2214 add x1, x1, 1 add x4, x3, x1, lsl 1 ldrh w4, [x4,-2] cmp w4, w0 - bne .L2202 + bne .L2210 mov w0, 1 - b .L2203 -.L2206: + b .L2211 +.L2214: mov w0, 0 -.L2203: +.L2211: ret .size IsBlkInGcList, .-IsBlkInGcList .align 2 @@ -15019,25 +14954,25 @@ FtlGcUpdatePage: adrp x4, .LANCHOR2 add x5, x4, :lo12:.LANCHOR2 ldr x7, [x5,976] -.L2208: +.L2216: uxth w5, w6 cmp w5, w8 - bcs .L2212 + bcs .L2220 add x6, x6, 1 add x10, x7, x6, lsl 1 ldrh w10, [x10,-2] cmp w10, w9 - bne .L2208 -.L2212: + bne .L2216 +.L2220: cmp w5, w8 - bne .L2210 + bne .L2218 ubfiz x5, x5, 1, 16 strh w0, [x7,x5] add x0, x3, :lo12:.LANCHOR4 ldrh w5, [x0,4016] add w5, w5, 1 strh w5, [x0,4016] -.L2210: +.L2218: add x3, x3, :lo12:.LANCHOR4 add x4, x4, :lo12:.LANCHOR2 mov w0, 12 @@ -15102,52 +15037,52 @@ FtlGcScanTempBlk: stp x25, x26, [sp,64] stp x27, x28, [sp,80] str x20, [x29,136] - ldrh w26, [x0,3068] + ldrh w26, [x0,3164] mov w0, 65535 cmp w26, w0 - beq .L2237 - cbnz w26, .L2216 - b .L2217 -.L2237: + beq .L2245 + cbnz w26, .L2224 + b .L2225 +.L2245: mov w26, 0 -.L2216: +.L2224: adrp x0, .LANCHOR2+818 ldr w1, [x29,152] ldrh w0, [x0,#:lo12:.LANCHOR2+818] cmp w1, w0 - bne .L2218 -.L2217: + bne .L2226 +.L2225: bl FtlGcPageVarInit -.L2218: +.L2226: mov w0, -1 adrp x25, .LANCHOR2 str w0, [x29,156] - adrp x0, .LC142 - add x0, x0, :lo12:.LC142 + adrp x0, .LC140 + add x0, x0, :lo12:.LC140 mov w22, 0 mov w23, 65535 mov x21, x25 mov x24, x25 str x0, [x29,128] -.L2231: +.L2239: ldrh w0, [x19] strb wzr, [x19,8] cmp w0, w23 - beq .L2238 -.L2220: -.L2234: + beq .L2246 +.L2228: +.L2242: add x0, x25, :lo12:.LANCHOR2 mov x2, x19 mov w20, 0 ldrh w5, [x0,748] ldrh w8, [x0,830] add x5, x19, x5, lsl 1 -.L2221: +.L2229: cmp x2, x5 - beq .L2246 + beq .L2254 ldrh w1, [x2,16] cmp w1, w23 - beq .L2222 + beq .L2230 add x6, x21, :lo12:.LANCHOR2 mov w0, 56 orr w1, w26, w1, lsl 10 @@ -15166,19 +15101,19 @@ FtlGcScanTempBlk: sdiv w1, w1, w3 add x1, x6, x1, sxtw 2 str x1, [x0,16] -.L2222: +.L2230: add x2, x2, 2 - b .L2221 -.L2246: + b .L2229 +.L2254: add x0, x21, :lo12:.LANCHOR2 mov w1, w20 mov w2, 0 mov x27, 0 ldr x0, [x0,992] bl FlashReadPages -.L2224: +.L2232: cmp w20, w27, uxth - bls .L2247 + bls .L2255 mov x0, 56 mul x28, x27, x0 add x0, x21, :lo12:.LANCHOR2 @@ -15195,53 +15130,53 @@ FtlGcScanTempBlk: ldr x8, [x29,104] ldr x2, [x29,120] ldr w0, [x8,x28] - cbnz w0, .L2225 + cbnz w0, .L2233 ldr x1, [x29,112] add x27, x27, 1 ldr x5, [x1,16] ldrh w0, [x5] cmp w0, w23 - bne .L2226 + bne .L2234 adrp x0, .LANCHOR4+4008 mov w1, 1 str w1, [x0,#:lo12:.LANCHOR4+4008] - b .L2219 -.L2226: + b .L2227 +.L2234: mov w1, w2 ldr w0, [x5,12] ldr w2, [x5,8] bl FtlGcUpdatePage - b .L2224 -.L2225: + b .L2232 +.L2233: ldr x0, [x29,128] ldrh w1, [x19] bl printk ldr x0, [x29,144] ldr w0, [x0,652] - cbnz w0, .L2227 + cbnz w0, .L2235 adrp x0, .LANCHOR0+136 ldrb w0, [x0,#:lo12:.LANCHOR0+136] - cbz w0, .L2228 -.L2227: + cbz w0, .L2236 +.L2235: add x0, x24, :lo12:.LANCHOR2 ldrh w1, [x19] ldr x0, [x0,1168] ldrh w0, [x0,x1,lsl 1] - cmp w0, 119 - bls .L2229 -.L2228: + cmp w0, 159 + bls .L2237 +.L2236: add x0, x24, :lo12:.LANCHOR2 ldr x0, [x0,992] ldr w0, [x0,x28] cmn w0, #1 - bne .L2230 -.L2229: + bne .L2238 +.L2237: add x0, x24, :lo12:.LANCHOR2 ldr x0, [x0,992] add x5, x0, x28 ldr w0, [x5,4] str w0, [x29,156] -.L2230: +.L2238: add x0, x24, :lo12:.LANCHOR2 ldrh w1, [x19] mov w26, 0 @@ -15252,36 +15187,36 @@ FtlGcScanTempBlk: mov w0, -1 strh w0, [x19] bl FtlGcPageVarInit - b .L2231 -.L2247: + b .L2239 +.L2255: ldr w0, [x29,152] add w22, w22, 1 add w3, w26, 1 cmp w22, w0 uxth w26, w3 - bcs .L2233 -.L2235: + bcs .L2241 +.L2243: add x0, x21, :lo12:.LANCHOR2 ldrh w0, [x0,818] cmp w0, w26 - bhi .L2234 - b .L2238 -.L2233: + bhi .L2242 + b .L2246 +.L2241: ldr x0, [x29,136] add x1, x0, :lo12:.LANCHOR1 - ldrh w0, [x1,3068] + ldrh w0, [x1,3164] cmp w0, w23 - beq .L2235 + beq .L2243 add w0, w0, w22 - strh w0, [x1,3068] + strh w0, [x1,3164] add x0, x21, :lo12:.LANCHOR2 ldrh w0, [x0,818] cmp w0, w26 - bls .L2235 - b .L2236 -.L2238: + bls .L2243 + b .L2244 +.L2246: mov w6, 0 -.L2219: +.L2227: ldr x0, [x29,136] mov w1, w26 strh w26, [x19,2] @@ -15289,10 +15224,10 @@ FtlGcScanTempBlk: add x20, x0, :lo12:.LANCHOR1 mov w0, -1 strb w6, [x19,6] - strh w0, [x20,3068] + strh w0, [x20,3164] mov x0, x19 bl ftl_sb_update_avl_pages -.L2236: +.L2244: ldr w0, [x29,156] ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -15310,28 +15245,44 @@ FtlGcRefreshOpenBlock: add x29, sp, 0 str x19, [sp,16] uxth w19, w0 - adrp x0, .LC143 + adrp x0, .LC141 mov w1, w19 - add x0, x0, :lo12:.LC143 + add x0, x0, :lo12:.LC141 bl printk adrp x2, .LANCHOR2 add x2, x2, :lo12:.LANCHOR2 - ldrh w3, [x2,948] + ldrh w5, [x2,948] + cmp w5, w19 + beq .L2257 + ldrh w4, [x2,950] + cmp w4, w19 + beq .L2257 + ldrh w3, [x2,952] cmp w3, w19 - beq .L2249 - ldrh w1, [x2,950] + beq .L2257 + ldrh w1, [x2,954] cmp w1, w19 - beq .L2249 + beq .L2257 mov w0, 65535 - cmp w3, w0 - bne .L2250 + cmp w5, w0 + bne .L2258 strh w19, [x2,948] - b .L2249 -.L2250: - cmp w1, w0 - bne .L2249 + b .L2257 +.L2258: + cmp w4, w0 + bne .L2259 strh w19, [x2,950] -.L2249: + b .L2257 +.L2259: + cmp w3, w0 + bne .L2260 + strh w19, [x2,952] + b .L2257 +.L2260: + cmp w1, w0 + bne .L2257 + strh w19, [x2,954] +.L2257: mov w0, 0 ldr x19, [sp,16] ldp x29, x30, [sp], 32 @@ -15345,29 +15296,48 @@ FtlGcRefreshBlock: add x29, sp, 0 str x19, [sp,16] uxth w19, w0 - adrp x0, .LC143 + adrp x0, .LC141 mov w1, w19 - add x0, x0, :lo12:.LC143 + add x0, x0, :lo12:.LC141 bl printk adrp x2, .LANCHOR2 - add x2, x2, :lo12:.LANCHOR2 - ldrh w3, [x2,948] - cmp w3, w19 - beq .L2252 - ldrh w1, [x2,950] - cmp w1, w19 - beq .L2252 - mov w0, 65535 - cmp w3, w0 - bne .L2253 - strh w19, [x2,948] - b .L2252 -.L2253: - cmp w1, w0 - bne .L2252 - strh w19, [x2,950] -.L2252: mov w0, 0 + add x2, x2, :lo12:.LANCHOR2 + ldrh w6, [x2,948] + cmp w6, w19 + beq .L2262 + ldrh w5, [x2,950] + cmp w5, w19 + beq .L2262 + ldrh w4, [x2,952] + cmp w4, w19 + beq .L2262 + ldrh w3, [x2,954] + cmp w3, w19 + beq .L2262 + mov w1, 65535 + cmp w6, w1 + bne .L2263 + strh w19, [x2,948] + b .L2262 +.L2263: + cmp w5, w1 + bne .L2264 + strh w19, [x2,950] + b .L2271 +.L2264: + cmp w4, w1 + bne .L2265 + strh w19, [x2,952] + b .L2271 +.L2265: + cmp w3, w1 + mov w0, -1 + bne .L2262 + strh w19, [x2,954] +.L2271: + mov w0, 0 +.L2262: ldr x19, [sp,16] ldp x29, x30, [sp], 32 ret @@ -15387,49 +15357,49 @@ FtlGcMarkBadPhyBlk: str x23, [sp,48] bl P2V_block_in_plane uxth w21, w0 - ldrh w1, [x22,958] - adrp x0, .LC144 + ldrh w1, [x22,962] + adrp x0, .LC142 mov w2, w20 - add x0, x0, :lo12:.LC144 + add x0, x0, :lo12:.LC142 bl printk mov w0, w21 bl FtlGcRefreshBlock ldr w0, [x22,652] - cbz w0, .L2255 + cbz w0, .L2273 ubfiz x0, x21, 1, 16 ldr x2, [x22,1168] ldrh w1, [x2,x0] - cmp w1, 29 - bls .L2255 - sub w1, w1, #30 + cmp w1, 39 + bls .L2273 + sub w1, w1, #40 strh w1, [x2,x0] -.L2255: +.L2273: add x0, x19, :lo12:.LANCHOR2 adrp x1, .LANCHOR4 add x1, x1, :lo12:.LANCHOR4 add x1, x1, 4024 - ldrh w3, [x0,958] + ldrh w3, [x0,962] mov x0, 0 -.L2256: +.L2274: cmp w3, w0, uxth - bls .L2262 + bls .L2280 add x0, x0, 1 add x2, x1, x0, lsl 1 ldrh w2, [x2,-2] cmp w2, w20 - bne .L2256 - b .L2257 -.L2262: + bne .L2274 + b .L2275 +.L2280: cmp w3, 15 - bhi .L2257 + bhi .L2275 adrp x1, .LANCHOR4 add x19, x19, :lo12:.LANCHOR2 add x1, x1, :lo12:.LANCHOR4 add w0, w3, 1 add x1, x1, 4024 - strh w0, [x19,958] + strh w0, [x19,962] strh w20, [x1,w3,sxtw 1] -.L2257: +.L2275: mov w0, 0 ldr x23, [sp,48] ldp x19, x20, [sp,16] @@ -15446,29 +15416,29 @@ FtlGcReFreshBadBlk: str x19, [sp,16] adrp x19, .LANCHOR2 add x0, x19, :lo12:.LANCHOR2 - ldrh w1, [x0,958] - cbz w1, .L2264 + ldrh w1, [x0,962] + cbz w1, .L2282 ldrh w3, [x0,948] mov w2, 65535 cmp w3, w2 - bne .L2264 - ldrh w2, [x0,962] + bne .L2282 + ldrh w2, [x0,966] cmp w2, w1 - bcc .L2265 - strh wzr, [x0,962] -.L2265: + bcc .L2283 + strh wzr, [x0,966] +.L2283: add x19, x19, :lo12:.LANCHOR2 adrp x0, .LANCHOR4 add x0, x0, :lo12:.LANCHOR4 add x0, x0, 4024 - ldrh w1, [x19,962] + ldrh w1, [x19,966] ldrh w0, [x0,w1,sxtw 1] bl P2V_block_in_plane bl FtlGcRefreshBlock - ldrh w0, [x19,962] + ldrh w0, [x19,966] add w0, w0, 1 - strh w0, [x19,962] -.L2264: + strh w0, [x19,966] +.L2282: mov w0, 0 ldr x19, [sp,16] ldp x29, x30, [sp], 32 @@ -15486,19 +15456,19 @@ FtlGcFreeBadSuperBlk: add x19, x19, :lo12:.LANCHOR2 stp x23, x24, [sp,48] uxth w23, w0 - ldrh w0, [x19,958] + ldrh w0, [x19,962] stp x21, x22, [sp,32] stp x25, x26, [sp,64] mov w21, 0 - cbz w0, .L2271 + cbz w0, .L2289 adrp x24, .LANCHOR4 - adrp x22, .LC145 - add x22, x22, :lo12:.LC145 + adrp x22, .LC143 + add x22, x22, :lo12:.LC143 add x25, x24, :lo12:.LANCHOR4 -.L2279: +.L2297: ldrh w0, [x19,748] cmp w0, w21 - bls .L2280 + bls .L2298 add x0, x19, 776 mov w1, w23 mov w20, 0 @@ -15506,45 +15476,45 @@ FtlGcFreeBadSuperBlk: ldrb w0, [x0,w21,sxtw] bl V2P_block uxth w26, w0 -.L2272: - ldrh w0, [x19,958] +.L2290: + ldrh w0, [x19,962] cmp w0, w20 - bls .L2281 + bls .L2299 add x0, x27, 4024 ldrh w0, [x0,w20,sxtw 1] cmp w0, w26 - bne .L2273 + bne .L2291 mov w1, w26 mov x0, x22 bl printk mov w0, w26 bl FtlBbmMapBadBlock bl FtlBbmTblFlush - ldrh w2, [x19,958] + ldrh w2, [x19,962] mov w3, w20 -.L2274: +.L2292: cmp w3, w2 - bcs .L2282 + bcs .L2300 add x4, x25, 4024 add w0, w3, 1 ldrh w1, [x4,w0,sxtw 1] strh w1, [x4,w3,sxtw 1] uxth w3, w0 - b .L2274 -.L2282: + b .L2292 +.L2300: sub w2, w2, #1 - strh w2, [x19,958] -.L2273: + strh w2, [x19,962] +.L2291: add w20, w20, 1 uxth w20, w20 - b .L2272 -.L2281: + b .L2290 +.L2299: add w21, w21, 1 uxth w21, w21 - b .L2279 -.L2280: + b .L2297 +.L2298: bl FtlGcReFreshBadBlk -.L2271: +.L2289: mov w0, 0 ldr x27, [sp,80] ldp x19, x20, [sp,16] @@ -15567,27 +15537,27 @@ update_vpc_list: ubfiz x0, x19, 1, 16 ldr x1, [x2,1184] ldrh w1, [x1,x0] - cbnz w1, .L2284 + cbnz w1, .L2302 adrp x0, .LANCHOR4 add x0, x0, :lo12:.LANCHOR4 ldrh w3, [x0,3408] cmp w3, w19 - bne .L2285 + bne .L2303 mov w1, -1 strh w1, [x0,3408] - b .L2286 -.L2285: + b .L2304 +.L2303: ldrh w3, [x2,3608] mov w0, w1 cmp w3, w19 - beq .L2287 + beq .L2305 ldrh w3, [x2,3656] cmp w3, w19 - beq .L2287 + beq .L2305 ldrh w2, [x2,3704] cmp w2, w19 - beq .L2287 -.L2286: + beq .L2305 +.L2304: add x20, x20, :lo12:.LANCHOR2 mov w1, w19 add x0, x20, 3568 @@ -15600,12 +15570,12 @@ update_vpc_list: mov w0, w19 bl FtlGcFreeBadSuperBlk mov w0, 1 - b .L2287 -.L2284: + b .L2305 +.L2302: mov w0, w19 bl List_update_data_list mov w0, 0 -.L2287: +.L2305: ldp x19, x20, [sp,16] ldp x29, x30, [sp], 32 ret @@ -15615,49 +15585,75 @@ update_vpc_list: .type decrement_vpc_count, %function decrement_vpc_count: stp x29, x30, [sp, -48]! - uxth w1, w0 - mov w0, 65535 add x29, sp, 0 - str x19, [sp,16] - cmp w1, w0 - beq .L2292 - adrp x2, .LANCHOR2+1184 - ubfiz x0, x1, 1, 16 - ldr x2, [x2,#:lo12:.LANCHOR2+1184] - ldrh w19, [x2,x0] - cbnz w19, .L2293 - adrp x0, .LC146 - mov w2, w19 - add x0, x0, :lo12:.LC146 - bl printk - b .L2297 -.L2293: - sub w19, w19, #1 - strh w19, [x2,x0] -.L2292: - adrp x19, .LANCHOR4 + stp x19, x20, [sp,16] + uxth w19, w0 mov w0, 65535 - add x19, x19, :lo12:.LANCHOR4 - ldrh w2, [x19,4000] - cmp w2, w0 - bne .L2295 - strh w1, [x19,4000] -.L2297: + stp x21, x22, [sp,32] + cmp w19, w0 + beq .L2310 + adrp x20, .LANCHOR2 + ubfiz x21, x19, 1, 16 + add x20, x20, :lo12:.LANCHOR2 + ldr x0, [x20,1184] + ldrh w2, [x0,x21] + cbnz w2, .L2311 + adrp x0, .LC144 + mov w1, w19 + add x0, x0, :lo12:.LC144 + add x22, x20, 3592 + bl printk + ldr x0, [x20,1184] + mov w1, 32 + strh w1, [x0,x21] + mov x0, x22 + mov w1, w19 + bl test_node_in_list + cbz w0, .L2312 + mov w1, w19 + mov x0, x22 + bl List_remove_node + ldrh w0, [x20,3600] + sub w0, w0, #1 + strh w0, [x20,3600] + mov w0, w19 + bl INSERT_DATA_LIST + ldr x2, [x20,1184] + adrp x0, .LC145 + add x0, x0, :lo12:.LC145 + mov w1, w19 + ldrh w2, [x2,x21] + bl printk +.L2312: + mov w0, w19 + bl FtlGcRefreshBlock + b .L2319 +.L2311: + sub w2, w2, #1 + strh w2, [x0,x21] +.L2310: + adrp x20, .LANCHOR4 + mov w0, 65535 + add x20, x20, :lo12:.LANCHOR4 + ldrh w1, [x20,4000] + cmp w1, w0 + bne .L2314 + strh w19, [x20,4000] +.L2319: mov w0, 0 - b .L2294 -.L2295: - cmp w2, w1 - str x1, [x29,40] + b .L2313 +.L2314: + cmp w1, w19 mov w0, 0 - beq .L2294 - mov w0, w2 + beq .L2313 + mov w0, w1 bl update_vpc_list cmp w0, wzr - ldr x1, [x29,40] cset w0, ne - strh w1, [x19,4000] -.L2294: - ldr x19, [sp,16] + strh w19, [x20,4000] +.L2313: + ldp x19, x20, [sp,16] + ldp x21, x22, [sp,32] ldp x29, x30, [sp], 48 ret .size decrement_vpc_count, .-decrement_vpc_count @@ -15676,7 +15672,7 @@ FtlRecoverySuperblock: mov x19, x0 ldrh w0, [x0] cmp w0, w2 - beq .L2456 + beq .L2477 ldrh w0, [x19,2] adrp x20, .LANCHOR2 str w0, [x29,188] @@ -15685,44 +15681,44 @@ FtlRecoverySuperblock: ldr w1, [x29,188] ldrh w0, [x0,818] cmp w0, w1 - bne .L2301 + bne .L2323 strh wzr, [x19,4] - b .L2462 -.L2301: + b .L2483 +.L2323: ldrh w0, [x19,16] mov w1, 0 -.L2302: +.L2324: cmp w0, w2 - bne .L2465 + bne .L2486 add w1, w1, 1 uxth w1, w1 add x0, x19, x1, sxtw 1 ldrh w0, [x0,16] - b .L2302 -.L2465: + b .L2324 +.L2486: ldrb w1, [x19,8] cmp w1, 1 - bne .L2304 + bne .L2326 bl FtlGetLastWrittenPage cmn w0, #1 mov w21, w0 - beq .L2305 + beq .L2327 adrp x0, .LANCHOR0 mov w23, w21 add x0, x0, :lo12:.LANCHOR0 ldrb w1, [x0,136] - cbnz w1, .L2379 + cbnz w1, .L2400 add x0, x0, 140 ldrh w23, [x0,w21,sxtw 1] - b .L2379 -.L2304: + b .L2400 +.L2326: mov w1, 0 bl FtlGetLastWrittenPage cmn w0, #1 mov w21, w0 - beq .L2305 + beq .L2327 mov w23, w0 -.L2379: +.L2400: add x0, x20, :lo12:.LANCHOR2 mov x2, x19 mov w25, 0 @@ -15732,16 +15728,16 @@ FtlRecoverySuperblock: ldrh w4, [x0,748] ldrh w7, [x0,830] add x4, x19, x4, lsl 1 - b .L2307 -.L2305: + b .L2329 +.L2327: strh wzr, [x19,2] -.L2462: +.L2483: strb wzr, [x19,6] - b .L2456 -.L2309: + b .L2477 +.L2331: ldrh w1, [x2,16] cmp w1, w8 - beq .L2308 + beq .L2330 add x5, x20, :lo12:.LANCHOR2 orr w1, w23, w1, lsl 10 umull x0, w25, w9 @@ -15758,21 +15754,21 @@ FtlRecoverySuperblock: sdiv w1, w1, w10 add x1, x5, x1, sxtw 2 str x1, [x0,16] -.L2308: +.L2330: add x2, x2, 2 -.L2307: +.L2329: cmp x2, x4 - bne .L2309 + bne .L2331 ldrb w0, [x19,8] str wzr, [x29,184] cmp w0, 1 - bne .L2310 + bne .L2332 adrp x0, .LANCHOR0+136 ldrb w0, [x0,#:lo12:.LANCHOR0+136] cmp w0, wzr cset w0, ne str w0, [x29,184] -.L2310: +.L2332: add x22, x20, :lo12:.LANCHOR2 ldr w2, [x29,184] mov w1, w25 @@ -15782,26 +15778,26 @@ FtlRecoverySuperblock: ldr x0, [x22,992] bl FlashReadPages ldr w0, [x22,876] - adrp x22, .LC147 + adrp x22, .LC146 str w0, [x29,176] - add x22, x22, :lo12:.LC147 + add x22, x22, :lo12:.LC146 uxth w0, w23 str w0, [x29,168] -.L2311: +.L2333: uxth w2, w26 cmp w2, w25 - bcs .L2318 + bcs .L2340 add x6, x20, :lo12:.LANCHOR2 mov x0, 56 mul x0, x26, x0 ldr x4, [x6,992] add x1, x4, x0 ldr w0, [x4,x0] - cbnz w0, .L2312 + cbnz w0, .L2334 ldr x7, [x1,16] ldr w4, [x7,4] cmn w4, #1 - beq .L2313 + beq .L2335 ldr w1, [x6,876] mov w0, w4 str x7, [x29,136] @@ -15813,23 +15809,23 @@ FtlRecoverySuperblock: ldr x4, [x29,152] ldr x2, [x29,144] ldr x7, [x29,136] - cbz w0, .L2313 + cbz w0, .L2335 add w4, w4, 1 str w4, [x6,876] -.L2313: +.L2335: ldr w0, [x7] cmn w0, #1 - bne .L2314 -.L2318: + bne .L2336 +.L2340: cmp w2, w25 - bne .L2457 + bne .L2478 add x0, x20, :lo12:.LANCHOR2 add w21, w21, 1 uxth w21, w21 ldr x0, [x0,992] ldr w0, [x0,4] - b .L2458 -.L2312: + b .L2479 +.L2334: ldr w1, [x1,4] mov x0, x22 bl printk @@ -15837,10 +15833,10 @@ FtlRecoverySuperblock: add x0, x27, :lo12:.LANCHOR4 ldrh w1, [x19] strh w1, [x0,4058] -.L2314: +.L2336: add x26, x26, 1 - b .L2311 -.L2457: + b .L2333 +.L2478: add x0, x20, :lo12:.LANCHOR2 mov w1, 56 uxth w21, w21 @@ -15848,83 +15844,83 @@ FtlRecoverySuperblock: ldr x0, [x0,992] add x2, x0, x2 ldr w0, [x2,4] -.L2458: +.L2479: lsr x0, x0, 10 bl P2V_plane uxth w26, w0 ldrb w1, [x19,8] cmp w1, 1 - bne .L2320 + bne .L2342 adrp x0, .LANCHOR0 add x0, x0, :lo12:.LANCHOR0 ldrb w2, [x0,136] - cbnz w2, .L2320 + cbnz w2, .L2342 add x0, x0, 140 ldrh w21, [x0,w21,sxtw 1] -.L2320: +.L2342: add x0, x20, :lo12:.LANCHOR2 ldrh w0, [x0,818] cmp w0, w21 - bne .L2321 + bne .L2343 strh w21, [x19,2] strb wzr, [x19,6] strh wzr, [x19,4] -.L2321: +.L2343: uxth w0, w28 str w0, [x29,152] ldr w0, [x29,188] cmp w21, w0 - bne .L2322 + bne .L2344 ldr w0, [x29,152] cmp w26, w0 - beq .L2463 -.L2322: + beq .L2484 +.L2344: ldr w0, [x29,176] adrp x25, .LANCHOR4 sub w22, w0, #1 mov w0, 65535 cmp w24, w0 - bne .L2323 - cbnz w1, .L2324 -.L2323: + bne .L2345 + cbnz w1, .L2346 +.L2345: add x0, x25, :lo12:.LANCHOR4 uxth w6, w23 ldr w1, [x0,4012] cmn w1, #1 - bne .L2325 + bne .L2347 str w22, [x0,4012] -.L2325: +.L2347: add x0, x25, :lo12:.LANCHOR4 ldr w24, [x29,188] ldr w3, [x0,4012] ldr w0, [x29,188] add w0, w0, 7 cmp w0, w23, uxth - bge .L2326 + bge .L2348 sub w24, w6, #7 uxth w24, w24 -.L2326: +.L2348: adrp x7, .LANCHOR0 mov w28, -1 add x5, x7, :lo12:.LANCHOR0 mov w27, w28 mov w4, 65535 add x5, x5, 652 -.L2327: +.L2349: cmp w24, w6 - bhi .L2340 + bhi .L2362 add x0, x20, :lo12:.LANCHOR2 mov w23, 0 mov w10, 56 ldrh w2, [x0,748] mov x0, x19 add x2, x19, x2, lsl 1 -.L2341: +.L2363: cmp x0, x2 - beq .L2466 + beq .L2487 ldrh w1, [x0,16] cmp w1, w4 - beq .L2328 + beq .L2350 add x9, x20, :lo12:.LANCHOR2 orr w1, w24, w1, lsl 10 umull x8, w23, w10 @@ -15933,10 +15929,10 @@ FtlRecoverySuperblock: uxth w23, w23 add x8, x9, x8 str w1, [x8,4] -.L2328: +.L2350: add x0, x0, 2 - b .L2341 -.L2466: + b .L2363 +.L2487: add x8, x20, :lo12:.LANCHOR2 ldr w2, [x29,184] mov w1, w23 @@ -15960,99 +15956,96 @@ FtlRecoverySuperblock: ldr x0, [x8,992] ldr x5, [x29,128] add x0, x0, 16 -.L2330: +.L2352: cmp w1, w23 - beq .L2467 + beq .L2488 ldr w2, [x0,-16] - cbnz w2, .L2331 + cbnz w2, .L2353 ldr x2, [x0] ldrh w8, [x2] cmp w8, w4 - beq .L2332 + beq .L2354 ldr w8, [x2,4] cmn w8, #1 - beq .L2332 + beq .L2354 add x2, x25, :lo12:.LANCHOR4 cmn w28, #1 ldr w27, [x2,4012] str w8, [x2,4012] - bne .L2332 + bne .L2354 ldrh w2, [x5,x10,lsl 1] cmp w2, w4 - bne .L2333 - cbz w9, .L2332 -.L2333: + bne .L2355 + cbz w9, .L2354 +.L2355: cmp w27, w22 csinv w28, w27, wzr, ne - b .L2332 -.L2331: + b .L2354 +.L2353: add x0, x25, :lo12:.LANCHOR4 ldrh w1, [x19] strh w1, [x0,4058] ldrb w1, [x19,8] - cbnz w1, .L2324 + cbnz w1, .L2346 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 .L2335 + bne .L2357 cmn w28, #1 - beq .L2336 + beq .L2358 str w28, [x0,4012] - b .L2324 -.L2336: + b .L2346 +.L2358: cmp w3, w22 - beq .L2337 + beq .L2359 str w3, [x0,4012] - b .L2324 -.L2337: + b .L2346 +.L2359: ldr w1, [x0,4012] - b .L2464 -.L2335: + b .L2485 +.L2357: cmp w27, w22 - beq .L2338 + beq .L2360 cmn w27, #1 - beq .L2324 + beq .L2346 str w27, [x0,4012] - b .L2324 -.L2338: + b .L2346 +.L2360: ldr w1, [x0,4012] cmp w1, w22 - beq .L2324 -.L2464: + beq .L2346 +.L2485: sub w1, w1, #1 - b .L2459 -.L2332: + b .L2480 +.L2354: add w1, w1, 1 add x0, x0, 56 uxth w1, w1 - b .L2330 -.L2467: + b .L2352 +.L2488: add w24, w24, 1 uxth w24, w24 - b .L2327 -.L2340: + b .L2349 +.L2362: add x0, x25, :lo12:.LANCHOR4 mov w1, -1 -.L2459: +.L2480: str w1, [x0,4012] -.L2324: +.L2346: add x0, x25, :lo12:.LANCHOR4 mov w1, 1 - strh w1, [x0,4060] - add x0, x20, :lo12:.LANCHOR2 - add x0, x0, 3752 - bl FtlMapBlkWriteDumpData ldr w23, [x29,188] - adrp x0, .LC149 - add x0, x0, :lo12:.LC149 - str x0, [x29,128] + strh w1, [x0,4060] adrp x0, .LC148 add x0, x0, :lo12:.LC148 + str x0, [x29,128] + adrp x0, .LC147 + add x0, x0, :lo12:.LC147 str x0, [x29,120] -.L2342: +.L2364: add x0, x20, :lo12:.LANCHOR2 adrp x1, .LANCHOR0 add x1, x1, :lo12:.LANCHOR0 @@ -16063,12 +16056,12 @@ FtlRecoverySuperblock: ldrb w6, [x1,136] mov x1, x19 add x3, x19, x3, lsl 1 -.L2343: +.L2365: cmp x1, x3 - beq .L2468 + beq .L2489 ldrh w2, [x1,16] cmp w2, w7 - beq .L2344 + beq .L2366 ldr w0, [x29,176] add x5, x20, :lo12:.LANCHOR2 orr w2, w23, w2, lsl 10 @@ -16078,33 +16071,33 @@ FtlRecoverySuperblock: str w2, [x4,4] ldrb w2, [x19,8] cmp w2, 1 - bne .L2345 - cbz w6, .L2345 + bne .L2367 + cbz w6, .L2367 ldr x2, [x5,992] add x0, x2, x0 ldr w2, [x0,4] orr w2, w2, -2147483648 str w2, [x0,4] -.L2345: +.L2367: ldr w0, [x29,176] add w0, w0, 1 uxth w0, w0 str w0, [x29,176] -.L2344: +.L2366: add x1, x1, 2 - b .L2343 -.L2468: + b .L2365 +.L2489: add x0, x20, :lo12:.LANCHOR2 ldr w1, [x29,176] ldr w2, [x29,184] ldr x0, [x0,992] bl FlashReadPages str xzr, [x29,160] -.L2347: +.L2369: ldrh w0, [x29,160] ldr w1, [x29,176] cmp w1, w0, uxth - bls .L2469 + bls .L2490 ldr x0, [x29,160] mov x24, 56 mul x24, x0, x24 @@ -16120,38 +16113,41 @@ FtlRecoverySuperblock: ldr w1, [x29,188] cmp w23, w1 ldr x1, [x29,168] - bcc .L2348 + bcc .L2370 ldr w2, [x29,152] cmp w0, w2 - bcs .L2383 + bcs .L2404 ldr w2, [x29,188] cmp w23, w2 - beq .L2348 -.L2383: + beq .L2370 +.L2404: cmp w0, w26 - bne .L2384 + bne .L2405 cmp w23, w21 - beq .L2350 -.L2384: + beq .L2372 +.L2405: ldr w0, [x28,x24] cmn w0, #1 - beq .L2352 + beq .L2374 ldr x28, [x27,16] mov w0, 61589 ldrh w1, [x28] cmp w1, w0 - bne .L2359 + beq .L2375 + ldrh w0, [x19] + b .L2481 +.L2375: ldr w22, [x28,4] cmn w22, #1 - beq .L2354 + beq .L2376 add x27, x20, :lo12:.LANCHOR2 mov w0, w22 ldr w1, [x27,876] bl ftl_cmp_data_ver - cbz w0, .L2354 + cbz w0, .L2376 add w0, w22, 1 str w0, [x27,876] -.L2354: +.L2376: ldr w27, [x28,8] add x1, x29, 200 ldr w0, [x28,12] @@ -16163,13 +16159,13 @@ FtlRecoverySuperblock: str x0, [x29,136] ldr w1, [x0,4012] cmn w1, #1 - beq .L2355 + beq .L2377 mov w0, w22 bl ftl_cmp_data_ver - cbz w0, .L2355 + cbz w0, .L2377 ldr w1, [x29,196] cmn w1, #1 - beq .L2356 + beq .L2378 add x3, x20, :lo12:.LANCHOR2 str x3, [x29,112] ldr x0, [x3,992] @@ -16190,25 +16186,23 @@ FtlRecoverySuperblock: add x4, x2, x24 ldr w0, [x2,x24] cmn w0, #1 - bne .L2357 - b .L2358 -.L2356: + bne .L2379 + b .L2380 +.L2378: ldr w0, [x29,204] ldr w1, [x29,200] cmp w1, w0 - bne .L2359 + bne .L2370 mov w0, w27 add x1, x29, 196 mov w2, 1 bl log2phys -.L2359: - ldrh w0, [x19] - b .L2461 -.L2357: + b .L2370 +.L2379: ldr x0, [x29,168] ldr w28, [x0,8] cmp w28, w27 - bne .L2358 + bne .L2380 ldr x0, [x29,136] ldr w1, [x29,144] str x2, [x29,96] @@ -16219,16 +16213,16 @@ FtlRecoverySuperblock: ldr x4, [x29,112] ldr x3, [x29,104] ldr x2, [x29,96] - cbz w0, .L2358 + cbz w0, .L2380 ldr w0, [x29,200] ldr w1, [x29,204] cmp w0, w1 - beq .L2364 + beq .L2385 ldr w1, [x29,196] cmp w0, w1 - beq .L2358 + beq .L2380 cmn w0, #1 - beq .L2362 + beq .L2383 str w0, [x4,4] mov w2, 0 ldr x1, [x4,16] @@ -16237,65 +16231,63 @@ FtlRecoverySuperblock: mov w1, 1 add x0, x0, x24 bl FlashReadPages - b .L2363 -.L2362: + b .L2384 +.L2383: str w0, [x2,x24] -.L2363: +.L2384: adrp x0, .LANCHOR2+992 ldr x0, [x0,#:lo12:.LANCHOR2+992] ldr w0, [x0,x24] cmn w0, #1 - beq .L2364 + beq .L2385 ldr x0, [x29,168] ldr w24, [x0,4] add x0, x25, :lo12:.LANCHOR4 mov w1, w24 ldr w0, [x0,4012] bl ftl_cmp_data_ver - cbz w0, .L2364 + cbz w0, .L2385 ldr w0, [x29,144] mov w1, w24 bl ftl_cmp_data_ver - cbz w0, .L2358 -.L2364: + cbz w0, .L2380 +.L2385: ldr w1, [x29,196] mov w0, w28 bl FtlReUsePrevPpa -.L2358: +.L2380: mov w0, -1 str w0, [x29,196] - ldrh w0, [x19] - bl decrement_vpc_count - b .L2366 -.L2355: + b .L2387 +.L2377: ldr w0, [x29,204] ldr w1, [x29,200] cmp w1, w0 - beq .L2366 + beq .L2387 mov w0, w27 add x1, x29, 204 mov w2, 1 bl log2phys ldr w24, [x29,200] cmn w24, #1 - beq .L2366 + beq .L2387 ldr w0, [x29,196] cmp w24, w0 - beq .L2366 + beq .L2387 lsr x0, x24, 10 bl P2V_block_in_plane uxth w0, w0 add x1, x20, :lo12:.LANCHOR2 ldrh w2, [x1,3608] cmp w2, w0 - beq .L2369 + beq .L2390 ldrh w2, [x1,3656] cmp w2, w0 - beq .L2369 + beq .L2390 ldrh w1, [x1,3704] cmp w1, w0 - bne .L2366 -.L2369: + bne .L2387 +.L2390: add x28, x20, :lo12:.LANCHOR2 mov w1, 1 mov w2, 0 @@ -16310,18 +16302,18 @@ FtlRecoverySuperblock: ldr w0, [x0] ldr w1, [x3,4] cmn w0, #1 - beq .L2366 + beq .L2387 mov w0, w22 bl ftl_cmp_data_ver - cbnz w0, .L2366 + cbnz w0, .L2387 mov w0, w27 add x1, x29, 200 mov w2, 1 bl log2phys -.L2366: +.L2387: ldr w0, [x29,196] cmn w0, #1 - beq .L2348 + beq .L2370 lsr x0, x0, 10 bl P2V_block_in_plane uxth w1, w0 @@ -16329,15 +16321,15 @@ FtlRecoverySuperblock: ubfiz x3, x1, 1, 16 ldr x2, [x2,1184] ldrh w2, [x2,x3] - cbz w2, .L2370 -.L2461: + cbz w2, .L2391 +.L2481: bl decrement_vpc_count - b .L2348 -.L2370: + b .L2370 +.L2391: ldr x0, [x29,120] bl printk - b .L2348 -.L2352: + b .L2370 +.L2374: add x24, x25, :lo12:.LANCHOR4 ldrh w0, [x19] mov w2, w22 @@ -16346,74 +16338,74 @@ FtlRecoverySuperblock: bl printk ldr w0, [x24,4064] cmp w0, 31 - bhi .L2371 + bhi .L2392 add x1, x24, 4072 ldr w2, [x29,204] str w2, [x1,w0,uxtw 2] add w0, w0, 1 str w0, [x24,4064] -.L2371: +.L2392: ldrh w0, [x19] bl decrement_vpc_count add x0, x25, :lo12:.LANCHOR4 ldr w1, [x0,4012] cmn w1, #1 - beq .L2460 + beq .L2482 cmp w1, w22 - bls .L2348 -.L2460: + bls .L2370 +.L2482: str w22, [x0,4012] -.L2348: +.L2370: ldr x0, [x29,160] add x0, x0, 1 str x0, [x29,160] - b .L2347 -.L2469: + b .L2369 +.L2490: ldrb w0, [x19,8] add w23, w23, 1 cmp w0, 1 uxth w23, w23 - bne .L2374 + bne .L2395 adrp x0, .LANCHOR0 add x0, x0, :lo12:.LANCHOR0 ldrb w0, [x0,136] - cbz w0, .L2374 + cbz w0, .L2395 cmp w21, w23 - bne .L2374 + bne .L2395 add x0, x20, :lo12:.LANCHOR2 ldrh w0, [x0,820] cmp w0, w23 - beq .L2350 -.L2374: + beq .L2372 +.L2395: add x0, x20, :lo12:.LANCHOR2 ldrh w1, [x0,818] cmp w23, w1 - bne .L2342 + bne .L2364 ldrh w2, [x0,748] mov w3, 65535 strh w23, [x19,2] mov x0, 0 strh wzr, [x19,4] -.L2376: +.L2397: uxth w1, w0 cmp w1, w2 - bcs .L2456 + bcs .L2477 add x0, x0, 1 add x4, x19, x0, lsl 1 ldrh w4, [x4,14] cmp w4, w3 - beq .L2376 + beq .L2397 strb w1, [x19,6] - b .L2456 -.L2350: + b .L2477 +.L2372: strb w26, [x19,6] strh w21, [x19,2] -.L2463: +.L2484: mov x0, x19 mov w1, w21 mov w2, w26 bl ftl_sb_update_avl_pages -.L2456: +.L2477: mov w0, 0 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -16433,11 +16425,11 @@ FtlSlcSuperblockCheck: stp x21, x22, [sp,32] str x23, [sp,48] ldrh w1, [x0,4] - cbz w1, .L2470 + cbz w1, .L2491 ldrh w1, [x0] mov w20, 65535 cmp w1, w20 - beq .L2470 + beq .L2491 mov x19, x0 ldrb w0, [x0,6] adrp x21, .LANCHOR0 @@ -16446,10 +16438,10 @@ FtlSlcSuperblockCheck: add x21, x21, :lo12:.LANCHOR0 add x22, x21, 652 ldrh w0, [x19,x0,lsl 1] -.L2474: +.L2495: cmp w0, w20 - bne .L2481 -.L2476: + bne .L2502 +.L2497: ldrb w0, [x19,6] add x1, x23, :lo12:.LANCHOR2 add w0, w0, 1 @@ -16457,51 +16449,51 @@ FtlSlcSuperblockCheck: uxtb w0, w0 strb w0, [x19,6] cmp w1, w0 - bne .L2475 + bne .L2496 ldrh w0, [x19,2] strb wzr, [x19,6] add w0, w0, 1 strh w0, [x19,2] -.L2475: +.L2496: ldrb w0, [x19,6] add x0, x0, 8 ldrh w0, [x19,x0,lsl 1] - b .L2474 -.L2481: + b .L2495 +.L2502: ldrb w1, [x19,8] cmp w1, 1 - bne .L2477 + bne .L2498 ldrb w0, [x21,136] - cbnz w0, .L2477 + cbnz w0, .L2498 ldrh w0, [x19,2] ldrh w0, [x22,w0,sxtw 1] cmp w0, w20 - bne .L2477 + bne .L2498 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, .L2476 + cbnz w1, .L2497 ldrh w0, [x19,2] strb w1, [x19,6] add w0, w0, 1 strh w0, [x19,2] - b .L2470 -.L2477: + b .L2491 +.L2498: adrp x0, .LANCHOR0 add x0, x0, :lo12:.LANCHOR0 ldrb w0, [x0,136] - cbz w0, .L2470 + cbz w0, .L2491 cmp w1, 1 - bne .L2470 + bne .L2491 adrp x0, .LANCHOR2 ldrh w2, [x19,2] add x0, x0, :lo12:.LANCHOR2 ldrh w1, [x0,820] cmp w2, w1 - bcc .L2470 + bcc .L2491 ldrh w1, [x19] ldr x3, [x0,1184] lsl x1, x1, 1 @@ -16513,7 +16505,7 @@ FtlSlcSuperblockCheck: ldrh w0, [x0,818] strh w0, [x19,2] strb wzr, [x19,6] -.L2470: +.L2491: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldr x23, [sp,48] @@ -16540,11 +16532,11 @@ get_new_active_ppa: add x0, x0, 8 add x24, x20, 652 ldrh w0, [x19,x0,lsl 1] -.L2483: +.L2504: cmp w0, w22 adrp x21, .LANCHOR2 - bne .L2498 -.L2484: + bne .L2519 +.L2505: ldrb w0, [x19,6] add x1, x23, :lo12:.LANCHOR2 add w0, w0, 1 @@ -16552,33 +16544,33 @@ get_new_active_ppa: uxtb w0, w0 strb w0, [x19,6] cmp w1, w0 - bne .L2485 + bne .L2506 ldrh w0, [x19,2] strb wzr, [x19,6] add w0, w0, 1 strh w0, [x19,2] -.L2485: +.L2506: ldrb w0, [x19,6] add x0, x0, 8 ldrh w0, [x19,x0,lsl 1] - b .L2483 -.L2498: + b .L2504 +.L2519: ldrb w1, [x19,8] cmp w1, 1 - bne .L2486 + bne .L2507 ldrb w1, [x20,136] - cbnz w1, .L2486 + cbnz w1, .L2507 ldrh w1, [x19,2] ldrh w1, [x24,w1,sxtw 1] cmp w1, w22 - bne .L2486 + bne .L2507 ldrh w0, [x19,4] sub w0, w0, #1 strh w0, [x19,4] ldrh w0, [x19] bl decrement_vpc_count - b .L2484 -.L2486: + b .L2505 +.L2507: ldrh w1, [x19,4] adrp x20, .LANCHOR0 ldrh w22, [x19,2] @@ -16589,51 +16581,51 @@ get_new_active_ppa: strh w1, [x19,4] mov w24, w23 add x25, x20, 652 -.L2487: +.L2508: add x0, x21, :lo12:.LANCHOR2 ldrb w1, [x19,6] ldrh w2, [x0,748] -.L2489: +.L2510: add w1, w1, 1 uxtb w1, w1 cmp w1, w2 - bne .L2488 + bne .L2509 ldrh w1, [x19,2] add w1, w1, 1 strh w1, [x19,2] mov w1, 0 -.L2488: +.L2509: add x0, x19, x1, sxtw 1 ldrh w0, [x0,16] cmp w0, w23 - beq .L2489 + beq .L2510 ldrb w0, [x19,8] strb w1, [x19,6] cmp w0, 1 - bne .L2494 + bne .L2515 ldrb w0, [x20,136] - cbnz w0, .L2491 + cbnz w0, .L2512 ldrh w0, [x19,2] ldrh w0, [x25,w0,sxtw 1] cmp w0, w24 - bne .L2491 + bne .L2512 ldrh w1, [x19,4] - cbz w1, .L2491 + cbz w1, .L2512 ldrh w0, [x19] sub w1, w1, #1 strh w1, [x19,4] bl decrement_vpc_count - b .L2487 -.L2491: + b .L2508 +.L2512: adrp x1, .LANCHOR0 add x1, x1, :lo12:.LANCHOR0 ldrb w0, [x1,136] - cbz w0, .L2494 + cbz w0, .L2515 add x2, x21, :lo12:.LANCHOR2 ldrh w1, [x19,2] ldrh w0, [x2,820] cmp w1, w0 - bcc .L2494 + bcc .L2515 ldrh w1, [x19] ldr x0, [x2,1184] lsl x1, x1, 1 @@ -16645,7 +16637,7 @@ get_new_active_ppa: ldrh w0, [x2,818] strh w0, [x19,2] strb wzr, [x19,6] -.L2494: +.L2515: mov w0, w22 ldr x25, [sp,64] ldp x19, x20, [sp,16] @@ -16667,20 +16659,20 @@ FtlWriteDumpData: stp x21, x22, [sp,32] stp x23, x24, [sp,48] ldr w0, [x20,1400] - cbnz w0, .L2499 + cbnz w0, .L2520 ldrh w2, [x20,3612] - cbz w2, .L2501 + cbz w2, .L2522 ldrb w1, [x20,3616] - cbnz w1, .L2501 + cbnz w1, .L2522 ldrb w1, [x20,3615] ldrh w3, [x20,818] mul w1, w1, w3 cmp w2, w1 - beq .L2501 + beq .L2522 ldrb w23, [x20,3618] ldr w22, [x20,1396] ldrh w24, [x20,748] - cbnz w23, .L2499 + cbnz w23, .L2520 sub w22, w22, #1 add x1, x29, 84 mov w0, w22 @@ -16695,29 +16687,29 @@ FtlWriteDumpData: str x1, [x29,96] str x21, [x29,104] str w23, [x21,4] - beq .L2503 + beq .L2524 add x0, x29, 88 mov w1, 1 mov w2, w23 bl FlashReadPages - b .L2504 -.L2503: + b .L2525 +.L2524: ldr x0, [x20,1048] mov w1, 255 ldrh w2, [x20,828] bl ftl_memset -.L2504: +.L2525: add x25, x19, :lo12:.LANCHOR2 mov w0, -3947 lsl w24, w24, 2 strh w0, [x21] mov w23, 0 add x20, x25, 3608 -.L2505: +.L2526: cmp w23, w24 - beq .L2506 + beq .L2527 ldrh w0, [x20,4] - cbz w0, .L2506 + cbz w0, .L2527 ldr w0, [x29,92] add w23, w23, 1 str w0, [x21,12] @@ -16740,16 +16732,16 @@ FtlWriteDumpData: bl FlashProgPages ldrh w0, [x20] bl decrement_vpc_count - b .L2505 -.L2506: + b .L2526 +.L2527: add x19, x19, :lo12:.LANCHOR2 mov w0, 1 strb w0, [x19,3618] - b .L2499 -.L2501: + b .L2520 +.L2522: add x19, x19, :lo12:.LANCHOR2 strb wzr, [x19,3618] -.L2499: +.L2520: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -16767,23 +16759,23 @@ l2p_flush: mov w19, 0 adrp x20, .LANCHOR2 bl FtlWriteDumpData -.L2517: +.L2538: add x1, x20, :lo12:.LANCHOR2 ldrh w0, [x1,858] cmp w0, w19 - bls .L2520 + bls .L2541 ldr x1, [x1,1264] ubfiz x0, x19, 4, 16 add x0, x1, x0 ldr w0, [x0,4] - tbz w0, #31, .L2518 + tbz w0, #31, .L2539 mov w0, w19 bl flush_l2p_region -.L2518: +.L2539: add w19, w19, 1 uxth w19, w19 - b .L2517 -.L2520: + b .L2538 +.L2541: mov w0, 0 ldp x19, x20, [sp,16] ldp x29, x30, [sp], 32 @@ -16801,29 +16793,49 @@ FtlSuperblockPowerLostFix: add x1, x20, :lo12:.LANCHOR2 stp x21, x22, [sp,32] ldr w1, [x1,1400] - cbnz w1, .L2521 + cbnz w1, .L2542 adrp x2, .LANCHOR0+136 ldrb w21, [x2,#:lo12:.LANCHOR0+136] - cbz w21, .L2535 + cbz w21, .L2557 ldrb w21, [x0,8] cmp w21, 1 - bne .L2531 - ldrh w22, [x0,4] - b .L2523 -.L2531: + bne .L2553 + ldrh w23, [x0,4] + b .L2544 +.L2553: mov w21, w1 -.L2535: - mov w22, 12 -.L2523: +.L2557: + mov w23, 12 +.L2544: mov x19, x0 - mov w23, -1 -.L2524: - sub w22, w22, #1 - cmn w22, #1 - beq .L2526 + mov w0, -1 + str w0, [x29,96] + add x0, x20, :lo12:.LANCHOR2 + mov w2, 61589 + ldr x22, [x0,1112] + ldr x1, [x0,1048] + str x1, [x29,80] + mov w1, -3 + str x22, [x29,88] + str w1, [x22,8] + mov w1, -2 + str w1, [x22,12] + ldrh w1, [x19] + strh w1, [x22,2] + strh wzr, [x22] + ldr x1, [x0,1048] + str w2, [x1] + ldr x1, [x0,1048] + mov w0, 22136 + movk w0, 0x1234, lsl 16 + str w0, [x1,4] +.L2545: + sub w23, w23, #1 + cmn w23, #1 + beq .L2548 ldrh w0, [x19,4] - cbnz w0, .L2525 -.L2526: + cbnz w0, .L2546 +.L2548: add x20, x20, :lo12:.LANCHOR2 ldrh w0, [x19] ldrh w3, [x19,4] @@ -16836,39 +16848,29 @@ FtlSuperblockPowerLostFix: ldrh w0, [x20,818] strh w0, [x19,2] strh wzr, [x19,4] - b .L2521 -.L2525: + b .L2542 +.L2546: mov x0, x19 bl get_new_active_ppa str w0, [x29,76] cmn w0, #1 - beq .L2526 - add x2, x20, :lo12:.LANCHOR2 - str w23, [x29,96] + beq .L2548 + add x1, x20, :lo12:.LANCHOR2 + mov w2, w21 mov w3, 0 - ldr x1, [x2,1112] - ldr x0, [x2,1048] - str x0, [x29,80] - str x1, [x29,88] - str w23, [x1,8] - str w23, [x1,12] - ldrh w0, [x19] - strh w0, [x1,2] - strh wzr, [x1] - ldr w0, [x2,876] - str w0, [x1,4] - mov w1, 1 + ldr w0, [x1,876] + str w0, [x22,4] add w0, w0, 1 cmn w0, #1 csel w0, w0, wzr, ne - str w0, [x2,876] + str w0, [x1,876] add x0, x29, 72 - mov w2, w21 + mov w1, 1 bl FlashProgPages ldrh w0, [x19] bl decrement_vpc_count - b .L2524 -.L2521: + b .L2545 +.L2542: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldr x23, [sp,48] @@ -16881,11 +16883,11 @@ FtlSuperblockPowerLostFix: FtlVpcCheckAndModify: stp x29, x30, [sp, -80]! adrp x1, .LANCHOR3 - adrp x0, .LC49 + adrp x0, .LC47 add x1, x1, :lo12:.LANCHOR3 add x29, sp, 0 add x1, x1, 72 - add x0, x0, :lo12:.LC49 + add x0, x0, :lo12:.LC47 stp x19, x20, [sp,16] stp x21, x22, [sp,32] adrp x19, .LANCHOR2 @@ -16899,18 +16901,18 @@ FtlVpcCheckAndModify: ldr x0, [x0,1176] lsl w2, w2, 1 bl ftl_memset -.L2537: +.L2559: add x19, x21, :lo12:.LANCHOR2 ldr w0, [x19,1396] cmp w20, w0 - bcs .L2552 + bcs .L2575 mov w0, w20 add x1, x29, 76 mov w2, 0 bl log2phys ldr w0, [x29,76] cmn w0, #1 - beq .L2538 + beq .L2560 lsr x0, x0, 10 bl P2V_block_in_plane ubfiz x0, x0, 1, 16 @@ -16918,55 +16920,62 @@ FtlVpcCheckAndModify: ldrh w1, [x2,x0] add w1, w1, 1 strh w1, [x2,x0] -.L2538: +.L2560: add w20, w20, 1 - b .L2537 -.L2552: - adrp x22, .LC150 + b .L2559 +.L2575: + adrp x22, .LC149 mov w20, 0 mov w23, 65535 - add x22, x22, :lo12:.LC150 -.L2540: + add x22, x22, :lo12:.LC149 +.L2562: ldrh w0, [x19,756] cmp w0, w20 - bls .L2553 + bls .L2576 ubfiz x21, x20, 1, 16 ldr x0, [x19,1184] ldrh w2, [x0,x21] ldr x0, [x19,1176] ldrh w3, [x0,x21] cmp w2, w3 - beq .L2543 + beq .L2565 cmp w2, w23 - beq .L2543 + beq .L2565 mov x0, x22 mov w1, w20 bl printk ldrh w0, [x19,3608] cmp w0, w20 - beq .L2543 + beq .L2565 ldrh w0, [x19,3704] cmp w0, w20 - beq .L2543 + beq .L2565 ldrh w0, [x19,3656] cmp w0, w20 - beq .L2543 - ldr x0, [x19,1176] - ldrh w1, [x0,x21] + beq .L2565 ldr x0, [x19,1184] + ldrh w1, [x0,x21] + cbnz w1, .L2567 + ldr x1, [x19,1176] + ldrh w1, [x1,x21] + strh w1, [x0,x21] + b .L2565 +.L2567: + ldr x1, [x19,1176] + ldrh w1, [x1,x21] strh w1, [x0,x21] mov w0, w20 bl update_vpc_list - bl l2p_flush - bl FtlVpcTblFlush -.L2543: +.L2565: add w20, w20, 1 uxth w20, w20 - b .L2540 -.L2553: + b .L2562 +.L2576: + bl l2p_flush + bl FtlVpcTblFlush + ldr x23, [sp,48] ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] - ldr x23, [sp,48] ldp x29, x30, [sp], 80 ret .size FtlVpcCheckAndModify, .-FtlVpcCheckAndModify @@ -16982,89 +16991,89 @@ allocate_new_data_superblock: stp x21, x22, [sp,32] ldr w1, [x2,1400] ldrh w22, [x0] - cbnz w1, .L2555 + cbnz w1, .L2578 mov x21, x0 mov w0, 65535 cmp w22, w0 - beq .L2556 + beq .L2579 ubfiz x1, x22, 1, 16 ldr x0, [x2,1184] ldrh w0, [x0,x1] - cbz w0, .L2557 + cbz w0, .L2580 mov w0, w22 bl INSERT_DATA_LIST - b .L2556 -.L2557: + b .L2579 +.L2580: mov w0, w22 bl INSERT_FREE_LIST -.L2556: +.L2579: add x1, x19, :lo12:.LANCHOR2 strb wzr, [x21,8] add x0, x1, 3656 cmp x21, x0 - beq .L2558 + beq .L2581 ldrh w2, [x1,768] cmp w2, 1 - beq .L2558 + beq .L2581 adrp x0, .LANCHOR0+136 ldrb w0, [x0,#:lo12:.LANCHOR0+136] - cbz w0, .L2559 -.L2558: + cbz w0, .L2582 +.L2581: mov w0, 1 strb w0, [x21,8] - b .L2560 -.L2559: + b .L2583 +.L2582: add x0, x1, 3608 cmp x21, x0 - bne .L2560 + bne .L2583 cmp w2, 3 - beq .L2562 + beq .L2585 ldr w0, [x1,868] cmp w0, 1 - bne .L2563 -.L2562: + bne .L2586 +.L2585: add x1, x19, :lo12:.LANCHOR2 mov w0, 1 strb w0, [x1,3616] -.L2563: +.L2586: add x1, x19, :lo12:.LANCHOR2 ldr w0, [x1,652] - cbz w0, .L2560 + cbz w0, .L2583 ldr w0, [x1,920] - cmp w0, 29 - bhi .L2560 + cmp w0, 39 + bhi .L2583 mov w0, 1 strb w0, [x1,3616] -.L2560: +.L2583: adrp x1, .LANCHOR4 add x0, x1, :lo12:.LANCHOR4 mov x20, x1 ldrh w2, [x0,4000] mov w0, 65535 cmp w2, w0 - beq .L2565 + beq .L2588 cmp w22, w2 - bne .L2566 + bne .L2589 add x19, x19, :lo12:.LANCHOR2 ubfiz x1, x2, 1, 16 ldr x0, [x19,1184] ldrh w0, [x0,x1] - cbz w0, .L2567 -.L2566: + cbz w0, .L2590 +.L2589: mov w0, w2 bl update_vpc_list -.L2567: +.L2590: add x1, x20, :lo12:.LANCHOR4 mov w0, -1 strh w0, [x1,4000] -.L2565: +.L2588: mov x0, x21 bl allocate_data_superblock bl l2p_flush mov w0, 0 bl FtlEctTblFlush bl FtlVpcTblFlush -.L2555: +.L2578: mov w0, 0 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -17084,20 +17093,20 @@ FtlReadRefresh: stp x21, x22, [sp,32] adrp x19, .LANCHOR2 ldr w3, [x0,80] - cbz w3, .L2581 + cbz w3, .L2604 add x1, x19, :lo12:.LANCHOR2 ldr w4, [x0,84] ldr w3, [x1,1396] cmp w4, w3 - bcs .L2582 + bcs .L2605 mov w21, 2048 mov x20, x2 -.L2587: +.L2610: add x1, x19, :lo12:.LANCHOR2 ldr w0, [x20,3540] ldr w1, [x1,1396] cmp w0, w1 - bcs .L2584 + bcs .L2607 add x1, x29, 52 mov w2, 0 bl log2phys @@ -17106,7 +17115,7 @@ FtlReadRefresh: add w0, w0, 1 str w0, [x20,3540] cmn w1, #1 - beq .L2585 + beq .L2608 str w1, [x29,60] mov w2, 0 str w0, [x29,80] @@ -17118,58 +17127,58 @@ FtlReadRefresh: bl FlashReadPages ldr w0, [x29,56] cmp w0, 256 - bne .L2584 + bne .L2607 ldr w0, [x29,52] lsr x0, x0, 10 bl P2V_block_in_plane bl FtlGcRefreshBlock - b .L2584 -.L2585: + b .L2607 +.L2608: subs w21, w21, #1 - bne .L2587 -.L2584: + bne .L2610 +.L2607: mov w0, -1 - b .L2589 -.L2582: + b .L2612 +.L2605: ldr w1, [x1,900] str wzr, [x0,80] str wzr, [x0,84] str w1, [x0,76] - b .L2595 -.L2581: + b .L2618 +.L2604: add x2, x19, :lo12:.LANCHOR2 ldr w0, [x2,916] ldr w3, [x2,652] adrp x2, .LANCHOR0+136 ldrb w4, [x2,#:lo12:.LANCHOR0+136] mov w2, 4194304 - cbnz w4, .L2590 + cbnz w4, .L2613 add w0, w3, w0, lsr 10 mov w3, 33554432 asr w2, w3, w0 -.L2590: +.L2613: add x19, x19, :lo12:.LANCHOR2 add x0, x1, :lo12:.LANCHOR4 ldr w3, [x19,900] ldr w0, [x0,3532] add w4, w3, 1048576 cmp w0, w4 - bhi .L2591 + bhi .L2614 add w0, w2, w0 cmp w0, w3 - bcc .L2591 + bcc .L2614 ldrb w2, [x19,3548] mov w0, 0 - cbnz w2, .L2589 -.L2591: + cbnz w2, .L2612 +.L2614: add x0, x1, :lo12:.LANCHOR4 mov w1, 1 str wzr, [x0,3540] str w1, [x0,3536] str w3, [x0,3532] -.L2595: +.L2618: mov w0, 0 -.L2589: +.L2612: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x29, x30, [sp], 112 @@ -17179,7 +17188,7 @@ FtlReadRefresh: .global ftl_do_gc .type ftl_do_gc, %function ftl_do_gc: - stp x29, x30, [sp, -144]! + stp x29, x30, [sp, -160]! mov w2, 0 add x29, sp, 0 stp x19, x20, [sp,16] @@ -17190,305 +17199,323 @@ ftl_do_gc: stp x25, x26, [sp,64] stp x27, x28, [sp,80] ldr w4, [x3,1400] - cbnz w4, .L2741 + cbnz w4, .L2764 ldr w4, [x3,924] - cbnz w4, .L2741 + cbnz w4, .L2764 ldrh w4, [x3,3584] cmp w4, 47 - bls .L2741 - str w0, [x29,124] - adrp x0, .LANCHOR1+3068 + bls .L2764 + str w0, [x29,140] + adrp x0, .LANCHOR1+3164 mov w24, w1 - ldrh w1, [x0,#:lo12:.LANCHOR1+3068] + ldrh w1, [x0,#:lo12:.LANCHOR1+3164] mov w0, 65535 cmp w1, w0 - bne .L2598 -.L2601: + bne .L2621 +.L2624: add x0, x19, :lo12:.LANCHOR2 mov w2, 65535 - ldrh w1, [x0,950] - cmp w1, w2 - bne .L2599 - b .L2600 -.L2598: + ldrh w4, [x0,950] + cmp w4, w2 + bne .L2622 + b .L2623 +.L2621: ldrh w1, [x3,3704] cmp w1, w0 - beq .L2601 + beq .L2624 mov w0, 1 bl FtlGcFreeTempBlock mov w2, 1 - cbz w0, .L2601 - b .L2741 -.L2599: - ldrh w3, [x0,948] - cmp w3, w2 - bne .L2600 - strh w1, [x0,948] + cbz w0, .L2624 + b .L2764 +.L2622: + ldrh w1, [x0,948] + cmp w1, w2 + bne .L2623 + ldrh w3, [x0,952] + cmp w3, w1 + beq .L2623 + ldrh w2, [x0,954] + cmp w2, w1 + beq .L2623 mov w1, -1 - strh w1, [x0,950] -.L2600: + strh w4, [x0,948] + strh w3, [x0,950] + strh w2, [x0,952] + strh w1, [x0,954] +.L2623: add x1, x19, :lo12:.LANCHOR2 - ldr w2, [x29,124] - adrp x22, .LANCHOR4 + ldr w2, [x29,140] + adrp x23, .LANCHOR4 cmp w2, 1 ldr w0, [x1,940] add w0, w0, 1 add w0, w0, w2, lsl 7 str w0, [x1,940] - bne .L2612 + bne .L2635 ldr w1, [x1,652] - cbnz w1, .L2603 + cbnz w1, .L2626 adrp x1, .LANCHOR0+136 ldrb w1, [x1,#:lo12:.LANCHOR0+136] - cbz w1, .L2612 -.L2603: + cbz w1, .L2635 +.L2626: add x20, x19, :lo12:.LANCHOR2 ldr w1, [x20,920] - cmp w1, 29 - bhi .L2612 + cmp w1, 39 + bhi .L2635 adrp x21, .LANCHOR5 add x1, x21, :lo12:.LANCHOR5 ldrh w1, [x1,-152] add w0, w0, w1 str w0, [x20,940] bl FtlGcReFreshBadBlk - add x0, x22, :lo12:.LANCHOR4 + add x0, x23, :lo12:.LANCHOR4 mov w1, 65535 ldrh w0, [x0,3408] cmp w0, w1 - bne .L2612 + bne .L2635 ldrh w1, [x20,948] cmp w1, w0 - bne .L2612 + bne .L2635 ldr w0, [x20,940] cmp w0, 1024 - bhi .L2604 + bhi .L2627 ldrh w0, [x20,3600] cmp w0, 63 - bhi .L2612 -.L2604: + bhi .L2635 +.L2627: add x0, x19, :lo12:.LANCHOR2 add x1, x21, :lo12:.LANCHOR5 - ldrh w2, [x0,954] + ldrh w2, [x0,958] ldrh w3, [x0,3600] add w2, w2, 64 strh wzr, [x1,-152] cmp w3, w2 - bgt .L2612 + bgt .L2635 str wzr, [x0,940] ldr w0, [x0,920] - cbnz w0, .L2605 + cbnz w0, .L2628 mov w0, 6 - b .L2763 -.L2605: + b .L2786 +.L2628: cmp w0, 5 - bhi .L2606 + bhi .L2629 mov w0, 18 -.L2763: +.L2786: strh w0, [x1,-152] -.L2606: +.L2629: mov w0, 32 - mov w27, 65535 + mov w28, 65535 bl List_get_gc_head_node - uxth w25, w0 - cmp w25, w27 - beq .L2611 - add x23, x19, :lo12:.LANCHOR2 - ldrh w0, [x23,956] - cbz w0, .L2608 - ldrh w1, [x23,820] - ubfiz x25, x25, 1, 16 - ldrh w3, [x23,748] - ldr x26, [x23,1184] + uxth w26, w0 + cmp w26, w28 + beq .L2634 + add x22, x19, :lo12:.LANCHOR2 + ldrh w0, [x22,960] + cbz w0, .L2631 + ldrh w1, [x22,820] + ubfiz x26, x26, 1, 16 + ldrh w3, [x22,748] + ldr x27, [x22,1184] mul w1, w1, w3 - ldrh w2, [x26,x25] + ldrh w2, [x27,x26] add w1, w1, 1 cmp w2, w1 - bgt .L2611 + bgt .L2634 add w1, w0, 1 - str wzr, [x23,928] + str wzr, [x22,928] uxth w1, w1 - strh w1, [x23,956] - str x1, [x29,112] + strh w1, [x22,960] + str x1, [x29,128] bl List_get_gc_head_node uxth w20, w0 - cmp w20, w27 - ldr x1, [x29,112] - beq .L2611 - ubfiz x27, x20, 1, 16 - adrp x0, .LC151 - ldrh w4, [x26,x25] - add x0, x0, :lo12:.LC151 + cmp w20, w28 + ldr x1, [x29,128] + beq .L2634 + ubfiz x28, x20, 1, 16 + adrp x0, .LC150 + ldrh w4, [x27,x26] + add x0, x0, :lo12:.LC150 mov w2, w20 - ldrh w3, [x26,x27] + ldrh w3, [x27,x28] bl printk - ldrh w0, [x23,956] + ldrh w0, [x22,960] cmp w0, 40 - bls .L2609 - ldr x0, [x23,1184] - ldrh w0, [x0,x27] + bls .L2632 + ldr x0, [x22,1184] + ldrh w0, [x0,x28] cmp w0, 32 - bls .L2609 - strh wzr, [x23,956] -.L2609: + bls .L2632 + strh wzr, [x22,960] +.L2632: add x21, x21, :lo12:.LANCHOR5 mov w0, 6 strh w0, [x21,-152] - b .L2613 -.L2608: + b .L2636 +.L2631: mov w0, 1 - strh w0, [x23,956] -.L2611: + strh w0, [x22,960] +.L2634: bl GetSwlReplaceBlock uxth w20, w0 mov w0, 65535 cmp w20, w0 - bne .L2613 + bne .L2636 add x21, x21, :lo12:.LANCHOR5 strh wzr, [x21,-152] -.L2612: - add x0, x22, :lo12:.LANCHOR4 +.L2635: + add x0, x23, :lo12:.LANCHOR4 ldrh w20, [x0,3408] mov w0, 65535 cmp w20, w0 - bne .L2769 - add x23, x19, :lo12:.LANCHOR2 - ldrh w0, [x23,3704] + bne .L2791 + add x22, x19, :lo12:.LANCHOR2 + ldrh w0, [x22,3704] cmp w0, w20 - beq .L2770 -.L2613: + beq .L2792 +.L2636: mov w0, 65535 cmp w20, w0 - cset w1, eq - cbz w1, .L2626 - ldr w0, [x29,124] - cbnz w0, .L2626 + cset w2, eq + cbz w2, .L2649 + ldr w0, [x29,140] + cbnz w0, .L2649 add x0, x19, :lo12:.LANCHOR2 - mov w23, 1 + mov w22, 1 ldrh w1, [x0,3600] cmp w1, 24 - bhi .L2627 + bhi .L2650 cmp w1, 16 - ldrh w23, [x0,818] - bls .L2628 - lsr w23, w23, 5 - b .L2627 -.L2628: + ldrh w22, [x0,818] + bls .L2651 + lsr w22, w22, 5 + b .L2650 +.L2651: cmp w1, 12 - bls .L2629 - lsr w23, w23, 4 - b .L2627 -.L2629: - lsr w0, w23, 2 + bls .L2652 + lsr w22, w22, 4 + b .L2650 +.L2652: + lsr w0, w22, 2 cmp w1, 9 - csel w23, w0, w23, cs -.L2627: + csel w22, w0, w22, cs +.L2650: add x0, x19, :lo12:.LANCHOR2 - ldrh w2, [x0,952] + ldrh w2, [x0,956] cmp w2, w1 - bcs .L2631 + bcs .L2654 ldrh w1, [x0,3704] mov w2, 65535 cmp w1, w2 - bne .L2632 + bne .L2655 ldrh w2, [x0,948] cmp w2, w1 - bne .L2632 + bne .L2655 adrp x1, .LANCHOR5-152 ldrh w2, [x1,#:lo12:.LANCHOR5-152] - cbnz w2, .L2633 + cbnz w2, .L2656 ldr w1, [x0,1396] ldr w3, [x0,3892] add w1, w1, w1, lsl 1 cmp w3, w1, lsr 2 - bcs .L2634 -.L2633: - add x22, x22, :lo12:.LANCHOR4 + bcs .L2657 +.L2656: + add x23, x23, :lo12:.LANCHOR4 add x1, x19, :lo12:.LANCHOR2 - ldrh w0, [x22,3404] + ldrh w0, [x23,3404] add w0, w0, w0, lsl 1 asr w0, w0, 2 - strh w0, [x1,952] - b .L2635 -.L2634: + strh w0, [x1,956] + b .L2658 +.L2657: mov w1, 18 - strh w1, [x0,952] -.L2635: + strh w1, [x0,956] +.L2658: add x19, x19, :lo12:.LANCHOR2 str wzr, [x19,928] - b .L2741 -.L2632: - add x0, x22, :lo12:.LANCHOR4 + b .L2764 +.L2655: + add x0, x23, :lo12:.LANCHOR4 add x1, x19, :lo12:.LANCHOR2 ldrh w0, [x0,3404] add w0, w0, w0, lsl 1 asr w0, w0, 2 - strh w0, [x1,952] -.L2631: + strh w0, [x1,956] +.L2654: cmp w24, 2 - bhi .L2696 + bhi .L2719 add x0, x19, :lo12:.LANCHOR2 ldr w0, [x0,652] - cbz w0, .L2696 - add w23, w23, 1 - uxth w23, w23 - b .L2696 -.L2626: - add x21, x19, :lo12:.LANCHOR2 - mov w2, 65535 - ldrh w0, [x21,3704] - cmp w0, w2 - bne .L2638 - cbz w1, .L2638 - ldrh w1, [x21,948] - cmp w1, w0 - bne .L2638 - add x1, x22, :lo12:.LANCHOR4 - ldrh w2, [x1,3408] - cmp w2, w0 - beq .L2639 -.L2644: + cbz w0, .L2719 + add w22, w22, 1 + uxth w22, w22 + b .L2719 +.L2649: + add x0, x19, :lo12:.LANCHOR2 + mov w3, 65535 + ldrh w1, [x0,3704] + cmp w1, w3 + bne .L2661 + cbz w2, .L2661 + ldrh w2, [x0,948] + cmp w2, w1 + bne .L2661 + add x2, x23, :lo12:.LANCHOR4 + ldrh w2, [x2,3408] + cmp w2, w1 + beq .L2662 +.L2667: mov w20, 65535 - b .L2638 -.L2639: - ldrh w24, [x21,3600] + b .L2661 +.L2662: + ldrh w2, [x0,3600] adrp x20, .LANCHOR5 - ldrh w0, [x21,952] - str wzr, [x21,928] - cmp w0, w24 - bcs .L2640 - add x0, x20, :lo12:.LANCHOR5 - ldrh w0, [x0,-152] - cbnz w0, .L2641 - ldr w0, [x21,1396] - ldr w1, [x21,3892] - add w0, w0, w0, lsl 1 - cmp w1, w0, lsr 2 - bcs .L2642 -.L2641: - add x22, x22, :lo12:.LANCHOR4 - add x19, x19, :lo12:.LANCHOR2 - ldrh w0, [x22,3404] + ldrh w1, [x0,956] + str wzr, [x0,928] + cmp w2, w1 + bls .L2663 + add x1, x20, :lo12:.LANCHOR5 + ldrh w1, [x1,-152] + cbnz w1, .L2664 + ldr w1, [x0,1396] + ldr w2, [x0,3892] + add w1, w1, w1, lsl 1 + cmp w2, w1, lsr 2 + bcs .L2665 +.L2664: + add x0, x23, :lo12:.LANCHOR4 + add x1, x19, :lo12:.LANCHOR2 + ldrh w0, [x0,3404] add w0, w0, w0, lsl 1 asr w0, w0, 2 - strh w0, [x19,952] - b .L2643 -.L2642: - mov w0, 18 - strh w0, [x21,952] -.L2643: - add x20, x20, :lo12:.LANCHOR5 + strh w0, [x1,956] + b .L2666 +.L2665: + mov w1, 18 + strh w1, [x0,956] +.L2666: bl FtlReadRefresh + mov w0, 0 + bl List_get_gc_head_node + ubfiz x0, x0, 1, 16 + add x1, x19, :lo12:.LANCHOR2 + ldr x1, [x1,1184] + ldrh w0, [x1,x0] + cmp w0, 4 + bls .L2663 + add x20, x20, :lo12:.LANCHOR5 ldrh w2, [x20,-152] - b .L2741 -.L2640: - add x23, x20, :lo12:.LANCHOR5 - ldrh w0, [x23,-152] - cbnz w0, .L2644 + b .L2764 +.L2663: + add x22, x20, :lo12:.LANCHOR5 + ldrh w0, [x22,-152] + cbnz w0, .L2667 + add x1, x23, :lo12:.LANCHOR4 + add x21, x19, :lo12:.LANCHOR2 ldrh w20, [x1,3404] add w1, w20, w20, lsl 1 asr w1, w1, 2 - strh w1, [x21,952] + strh w1, [x21,956] bl List_get_gc_head_node ubfiz x0, x0, 1, 16 ldr x1, [x21,1184] @@ -17499,84 +17526,86 @@ ftl_do_gc: mov w2, 2 sdiv w0, w0, w2 cmp w1, w0 - ble .L2645 + ble .L2668 + ldrh w0, [x21,3600] sub w20, w20, #1 - cmp w24, w20 - blt .L2645 + cmp w0, w20 + blt .L2668 bl FtlReadRefresh - b .L2767 -.L2645: - cbnz w1, .L2644 + ldrh w2, [x22,-152] + b .L2764 +.L2668: + cbnz w1, .L2667 mov w0, -1 add x19, x19, :lo12:.LANCHOR2 bl decrement_vpc_count ldrh w2, [x19,3600] add w2, w2, 1 - b .L2741 -.L2638: + b .L2764 +.L2661: add x0, x19, :lo12:.LANCHOR2 - mov w23, 2 + mov w22, 2 ldr w0, [x0,652] cmp w0, wzr - csinc w23, w23, wzr, ne - b .L2637 -.L2696: + csinc w22, w22, wzr, ne + b .L2660 +.L2719: mov w20, 65535 -.L2637: - add x0, x22, :lo12:.LANCHOR4 +.L2660: + add x0, x23, :lo12:.LANCHOR4 mov w2, 65535 ldrh w1, [x0,3408] cmp w1, w2 - bne .L2647 + bne .L2670 cmp w20, w1 - beq .L2648 + beq .L2671 strh w20, [x0,3408] - b .L2649 -.L2648: + b .L2672 +.L2671: add x1, x19, :lo12:.LANCHOR2 ldrh w0, [x1,948] cmp w0, w20 - beq .L2649 + beq .L2672 ubfiz x0, x0, 1, 16 ldr x2, [x1,1184] ldrh w0, [x2,x0] - cbnz w0, .L2650 + cbnz w0, .L2673 mov w0, -1 strh w0, [x1,948] -.L2650: +.L2673: add x1, x19, :lo12:.LANCHOR2 - add x0, x22, :lo12:.LANCHOR4 + add x0, x23, :lo12:.LANCHOR4 ldrh w2, [x1,948] strh w2, [x0,3408] mov w0, -1 strh w0, [x1,948] -.L2649: - add x21, x22, :lo12:.LANCHOR4 +.L2672: + add x21, x23, :lo12:.LANCHOR4 mov w1, 65535 ldrh w0, [x21,3408] strb wzr, [x21,3416] cmp w0, w1 - beq .L2647 + beq .L2670 bl IsBlkInGcList - cbz w0, .L2652 + cbz w0, .L2675 mov w0, -1 strh w0, [x21,3408] -.L2652: +.L2675: adrp x0, .LANCHOR0+136 ldrb w0, [x0,#:lo12:.LANCHOR0+136] - cbz w0, .L2653 - add x0, x22, :lo12:.LANCHOR4 + cbz w0, .L2676 + add x0, x23, :lo12:.LANCHOR4 add x21, x0, 3408 ldrh w0, [x0,3408] bl ftl_get_blk_mode strb w0, [x21,8] -.L2653: - add x21, x22, :lo12:.LANCHOR4 +.L2676: + add x21, x23, :lo12:.LANCHOR4 mov w0, 65535 add x24, x21, 3408 ldrh w1, [x21,3408] cmp w1, w0 - beq .L2647 + beq .L2670 mov x0, x24 bl make_superblock strh wzr, [x21,3410] @@ -17589,120 +17618,122 @@ ftl_do_gc: strh wzr, [x0,-150] ldrh w1, [x1,x2,lsl 1] strh w1, [x0,-148] -.L2647: - add x21, x22, :lo12:.LANCHOR4 +.L2670: + add x21, x23, :lo12:.LANCHOR4 add x1, x19, :lo12:.LANCHOR2 ldrh w0, [x21,3408] ldrh w2, [x1,3608] cmp w2, w0 - beq .L2654 + beq .L2677 ldrh w1, [x1,3656] cmp w1, w0 - bne .L2656 -.L2655: -.L2654: - add x22, x22, :lo12:.LANCHOR4 - mov w0, -1 - strh w0, [x22,3408] - b .L2768 + beq .L2677 +.L2678: + adrp x0, .LC152 + add x0, x0, :lo12:.LC152 + str x0, [x29,128] + b .L2679 .L2677: + add x23, x23, :lo12:.LANCHOR4 + mov w0, -1 + strh w0, [x23,3408] + b .L2790 +.L2700: ldrh w0, [x21,3410] - add w23, w23, w0 - uxth w23, w23 - strh w23, [x21,3410] - cmp w23, w26 - bcs .L2771 -.L2679: + add w22, w22, w0 + uxth w22, w22 + strh w22, [x21,3410] + cmp w22, w26 + bcs .L2793 +.L2702: add x1, x19, :lo12:.LANCHOR2 ldrh w0, [x1,3600] cmp w0, 2 - bhi .L2682 - ldrh w23, [x1,818] -.L2656: - ldrh w0, [x21,3408] - mov w1, 65535 - cmp w0, w1 - bne .L2657 + bhi .L2705 + ldrh w22, [x1,818] +.L2679: + ldrh w26, [x21,3408] + mov w0, 65535 + cmp w26, w0 + bne .L2680 add x0, x19, :lo12:.LANCHOR2 + mov w27, 2 str wzr, [x0,928] -.L2658: - add x26, x19, :lo12:.LANCHOR2 - ldrh w24, [x26,956] +.L2681: + add x28, x19, :lo12:.LANCHOR2 + ldrh w24, [x28,960] mov w0, w24 bl List_get_gc_head_node - uxth w27, w0 - mov w0, 65535 - strh w27, [x21,3408] - cmp w27, w0 - bne .L2659 - strh wzr, [x26,956] + uxth w25, w0 + cmp w25, w26 + strh w25, [x21,3408] + bne .L2682 + strh wzr, [x28,960] mov w2, 8 - b .L2741 -.L2659: - mov w0, w27 + b .L2764 +.L2682: + mov w0, w25 add w24, w24, 1 bl IsBlkInGcList - cbz w0, .L2660 - strh w24, [x26,956] - b .L2658 -.L2660: - ldrh w4, [x26,748] - ubfiz x1, x27, 1, 16 - ldrh w0, [x26,818] + cbz w0, .L2683 + strh w24, [x28,960] + b .L2681 +.L2683: + ldrh w5, [x28,748] + ubfiz x2, x25, 1, 16 + ldrh w0, [x28,818] uxth w24, w24 - ldr x2, [x26,1184] - strh w24, [x26,956] - mul w0, w0, w4 - mov w4, 2 - ldrh w3, [x2,x1] - sdiv w4, w0, w4 - cmp w3, w4 - bgt .L2662 - cmp w3, 8 - bls .L2663 + ldr x3, [x28,1184] + strh w24, [x28,960] + mul w0, w0, w5 + ldrh w4, [x3,x2] + sdiv w5, w0, w27 + cmp w4, w5 + bgt .L2685 + cmp w4, 8 + bls .L2686 cmp w24, 48 - bls .L2663 - ldrh w3, [x21,4016] - cmp w3, 35 - bhi .L2663 -.L2662: - add x3, x19, :lo12:.LANCHOR2 - strh wzr, [x3,956] -.L2663: - ldrh w1, [x2,x1] - cmp w1, w0 - blt .L2664 - mov w0, 65535 - cmp w20, w0 - bne .L2664 - add x22, x22, :lo12:.LANCHOR4 + bls .L2686 + ldrh w4, [x21,4016] + cmp w4, 35 + bhi .L2686 +.L2685: + add x4, x19, :lo12:.LANCHOR2 + strh wzr, [x4,960] +.L2686: + ldrh w2, [x3,x2] + cmp w2, w0 + blt .L2687 + cmp w20, w26 + bne .L2687 + add x23, x23, :lo12:.LANCHOR4 add x19, x19, :lo12:.LANCHOR2 mov w0, -1 - strh wzr, [x19,956] - strh w0, [x22,3408] -.L2768: + strh wzr, [x19,960] + strh w0, [x23,3408] +.L2790: adrp x0, .LANCHOR5-152 ldrh w2, [x0,#:lo12:.LANCHOR5-152] - b .L2741 -.L2664: - cbnz w1, .L2665 + b .L2764 +.L2687: + cbnz w2, .L2688 mov w0, -1 bl decrement_vpc_count add x1, x19, :lo12:.LANCHOR2 - ldrh w0, [x1,956] + ldrh w0, [x1,960] add w0, w0, 1 - strh w0, [x1,956] - b .L2658 -.L2665: + strh w0, [x1,960] + b .L2681 +.L2688: adrp x0, .LANCHOR0 strb wzr, [x21,3416] add x0, x0, :lo12:.LANCHOR0 ldrb w0, [x0,136] - cbz w0, .L2666 - mov w0, w27 + cbz w0, .L2689 + mov w0, w25 bl ftl_get_blk_mode strb w0, [x21,3416] -.L2666: +.L2689: add x24, x21, 3408 mov x0, x24 bl make_superblock @@ -17716,12 +17747,12 @@ ftl_do_gc: strh w0, [x1,-148] strh wzr, [x21,3410] strb wzr, [x21,3414] -.L2657: - ldr w0, [x29,124] +.L2680: + ldr w0, [x29,140] cmp w0, 1 - bne .L2667 + bne .L2690 bl FtlReadRefresh -.L2667: +.L2690: add x0, x19, :lo12:.LANCHOR2 mov w1, 1 str w1, [x0,924] @@ -17729,23 +17760,23 @@ ftl_do_gc: add x1, x1, :lo12:.LANCHOR0 ldrh w26, [x0,818] ldrb w1, [x1,136] - cbz w1, .L2668 + cbz w1, .L2691 ldrb w1, [x21,3416] cmp w1, 1 - bne .L2668 + bne .L2691 ldrh w26, [x0,820] -.L2668: +.L2691: ldrh w0, [x21,3410] - add w1, w0, w23 + add w1, w0, w22 cmp w1, w26 - ble .L2669 - sub w23, w26, w0 - uxth w23, w23 -.L2669: + ble .L2692 + sub w22, w26, w0 + uxth w22, w22 +.L2692: mov w27, 0 -.L2670: - cmp w23, w27, uxth - bls .L2677 +.L2693: + cmp w22, w27, uxth + bls .L2700 add x1, x21, 3408 add x0, x19, :lo12:.LANCHOR2 ldrh w3, [x1,2] @@ -17753,14 +17784,14 @@ ftl_do_gc: mov x0, 0 add w3, w3, w27 mov w24, w0 -.L2678: +.L2701: cmp w6, w0, uxth - bls .L2772 + bls .L2794 add x2, x1, x0, lsl 1 mov w4, 65535 ldrh w2, [x2,16] cmp w2, w4 - beq .L2671 + beq .L2694 add x5, x19, :lo12:.LANCHOR2 mov w4, 56 orr w2, w3, w2, lsl 10 @@ -17770,19 +17801,19 @@ ftl_do_gc: add x4, x5, x4 uxth w24, w24 str w2, [x4,4] -.L2671: +.L2694: add x0, x0, 1 - b .L2678 -.L2772: + b .L2701 +.L2794: add x25, x19, :lo12:.LANCHOR2 ldrb w2, [x21,3416] mov w1, w24 mov x28, 0 ldr x0, [x25,1024] bl FlashReadPages -.L2673: +.L2696: cmp w24, w28, uxth - bls .L2773 + bls .L2795 mov x0, 56 mul x5, x28, x0 ldr x0, [x25,1024] @@ -17790,31 +17821,31 @@ ftl_do_gc: ldr w0, [x0,x5] cmn w0, #1 ldr x4, [x1,16] - beq .L2698 + beq .L2721 ldrh w0, [x4] mov w1, 61589 cmp w0, w1 - bne .L2698 + bne .L2721 ldr w0, [x4,8] - add x1, x29, 140 + add x1, x29, 156 mov w2, 0 - str x5, [x29,104] - str x4, [x29,112] + str x5, [x29,112] + str x4, [x29,120] bl log2phys ldr x2, [x25,1024] - ldr x5, [x29,104] - ldr w0, [x29,140] + ldr x5, [x29,112] + ldr w0, [x29,156] add x2, x2, x5 - ldr x4, [x29,112] + ldr x4, [x29,120] and w0, w0, 2147483647 ldr w1, [x2,4] cmp w0, w1 - bne .L2698 + bne .L2721 adrp x0, .LANCHOR5 mov x3, 56 add x1, x0, :lo12:.LANCHOR5 - str x5, [x29,96] - str x4, [x29,104] + str x5, [x29,104] + str x4, [x29,112] ldrh w0, [x1,-150] add w0, w0, 1 strh w0, [x1,-150] @@ -17822,13 +17853,13 @@ ftl_do_gc: ldr x1, [x25,1000] madd x1, x0, x3, x1 ldr w0, [x2,24] - str x1, [x29,112] + str x1, [x29,120] str w0, [x1,24] bl Ftl_get_new_temp_ppa - ldr x1, [x29,112] + ldr x1, [x29,120] mov x2, 56 - ldr x5, [x29,96] - ldr x4, [x29,104] + ldr x5, [x29,104] + ldr x4, [x29,112] str w0, [x1,4] ldr w0, [x21,3984] ldr x1, [x25,1000] @@ -17838,11 +17869,11 @@ ftl_do_gc: ldr x2, [x1,8] str x2, [x0,8] add x2, x25, 3704 - str x2, [x29,112] + str x2, [x29,120] ldr x1, [x1,16] str x1, [x0,16] mov w1, 1 - ldr w0, [x29,140] + ldr w0, [x29,156] str w0, [x4,12] ldrh w0, [x25,3704] strh w0, [x4,2] @@ -17857,110 +17888,116 @@ ftl_do_gc: adrp x0, .LANCHOR0 add x0, x0, :lo12:.LANCHOR0 ldrb w0, [x0,136] - cbnz w0, .L2675 - ldr x2, [x29,112] + cbnz w0, .L2698 + ldr x2, [x29,120] ldr w1, [x21,3984] ldrb w0, [x2,7] cmp w1, w0 - beq .L2675 + beq .L2698 ldrh w0, [x2,4] - cbnz w0, .L2698 -.L2675: + cbnz w0, .L2721 +.L2698: bl Ftl_gc_temp_data_write_back - cbz w0, .L2698 + cbz w0, .L2721 adrp x0, .LANCHOR5 add x19, x19, :lo12:.LANCHOR2 add x0, x0, :lo12:.LANCHOR5 str wzr, [x19,924] ldrh w2, [x0,-152] - b .L2741 -.L2698: + b .L2764 +.L2721: add x28, x28, 1 - b .L2673 -.L2773: + b .L2696 +.L2795: add w27, w27, 1 - b .L2670 -.L2771: + b .L2693 +.L2793: ldr w0, [x21,3984] - adrp x23, .LANCHOR5 - cbz w0, .L2680 + adrp x22, .LANCHOR5 + cbz w0, .L2703 bl Ftl_gc_temp_data_write_back - cbz w0, .L2680 + cbz w0, .L2703 add x19, x19, :lo12:.LANCHOR2 - add x23, x23, :lo12:.LANCHOR5 + add x5, x22, :lo12:.LANCHOR5 str wzr, [x19,924] -.L2767: - ldrh w2, [x23,-152] - b .L2741 -.L2680: - add x23, x23, :lo12:.LANCHOR5 - ldrh w2, [x23,-150] - cbnz w2, .L2681 - add x1, x19, :lo12:.LANCHOR2 - ldrh w0, [x21,3408] - lsl x0, x0, 1 - ldr x1, [x1,1184] - ldrh w3, [x1,x0] - cbz w3, .L2681 - strh w2, [x1,x0] + ldrh w2, [x5,-152] + b .L2764 +.L2703: + add x5, x22, :lo12:.LANCHOR5 + ldrh w22, [x5,-150] + cbnz w22, .L2704 + add x24, x19, :lo12:.LANCHOR2 + ldrh w1, [x21,3408] + ubfiz x0, x1, 1, 16 + ldr x3, [x24,1184] + ldrh w4, [x3,x0] + cbz w4, .L2704 + ldrh w2, [x21,3410] + mov w3, w22 + ldrh w5, [x5,-148] + ldr x0, [x29,128] + bl printk + ldrh w1, [x21,3408] + ldr x0, [x24,1184] + strh w22, [x0,x1,lsl 1] ldrh w0, [x21,3408] bl update_vpc_list bl FtlCacheWriteBack bl l2p_flush bl FtlVpcTblFlush -.L2681: +.L2704: mov w0, -1 strh w0, [x21,3408] - b .L2679 -.L2682: + b .L2702 +.L2705: str wzr, [x1,924] adrp x1, .LANCHOR5-152 ldrh w2, [x1,#:lo12:.LANCHOR5-152] cmp w2, wzr csinc w2, w2, w0, ne - b .L2741 -.L2770: - ldrh w25, [x23,948] - cmp w25, w20 - bne .L2613 - ldrh w0, [x23,3600] + b .L2764 +.L2792: + ldrh w26, [x22,948] + cmp w26, w20 + bne .L2636 + ldrh w0, [x22,3600] mov w2, 1024 - ldr w1, [x23,940] + ldr w1, [x22,940] cmp w0, 24 mov w0, 5120 csel w0, w0, w2, cc cmp w1, w0 - bls .L2613 + bls .L2636 adrp x0, .LANCHOR5-152 - str wzr, [x23,940] + str wzr, [x22,940] strh wzr, [x0,#:lo12:.LANCHOR5-152] bl GetSwlReplaceBlock uxth w20, w0 - cmp w20, w25 - bne .L2615 - ldrh w1, [x23,3600] - ldrh w0, [x23,954] + cmp w20, w26 + bne .L2638 + ldrh w1, [x22,3600] + ldrh w0, [x22,958] cmp w1, w0 - bcs .L2616 + bcs .L2639 mov w0, 64 bl List_get_gc_head_node uxth w0, w0 cmp w0, w20 - beq .L2625 - ldr w2, [x23,864] + beq .L2648 + ldr w2, [x22,864] uxtw x1, w0 - cbnz w2, .L2618 - ldrh w0, [x23,768] + cbnz w2, .L2641 + ldrh w0, [x22,768] cmp w0, 3 - beq .L2618 - ldr w0, [x23,868] - cbnz w0, .L2618 - ldr w0, [x23,652] - cbnz w0, .L2618 + beq .L2641 + ldr w0, [x22,868] + cbnz w0, .L2641 + ldr w0, [x22,652] + cbnz w0, .L2641 adrp x0, .LANCHOR0+136 ldrb w0, [x0,#:lo12:.LANCHOR0+136] - cbz w0, .L2619 -.L2618: + cbz w0, .L2642 +.L2641: add x2, x19, :lo12:.LANCHOR2 ldr x0, [x2,1184] ldrh w4, [x0,x1,lsl 1] @@ -17974,7 +18011,7 @@ ftl_do_gc: csel w0, w1, w0, eq add w0, w3, w0 cmp w4, w0 - bgt .L2621 + bgt .L2644 mov w0, 0 bl List_get_gc_head_node uxth w20, w0 @@ -17983,66 +18020,66 @@ ftl_do_gc: ldr w2, [x0,3892] add w1, w1, w1, lsl 1 cmp w2, w1, lsr 2 - bhi .L2765 + bhi .L2788 mov w1, 160 - b .L2764 -.L2621: + b .L2787 +.L2644: add x0, x19, :lo12:.LANCHOR2 mov w1, 128 - b .L2766 -.L2619: - ldr x2, [x23,1184] + b .L2789 +.L2642: + ldr x2, [x22,1184] ldrh w1, [x2,x1,lsl 1] cmp w1, 7 - bhi .L2624 + bhi .L2647 bl List_get_gc_head_node uxth w20, w0 add x0, x19, :lo12:.LANCHOR2 -.L2765: +.L2788: mov w1, 128 -.L2764: - strh w1, [x0,954] +.L2787: + strh w1, [x0,958] mov w0, 65535 cmp w20, w0 - beq .L2625 - b .L2615 -.L2624: + beq .L2648 + b .L2638 +.L2647: add x0, x19, :lo12:.LANCHOR2 mov w1, 64 -.L2766: - strh w1, [x0,954] - b .L2625 -.L2616: +.L2789: + strh w1, [x0,958] + b .L2648 +.L2639: mov w0, 80 - strh w0, [x23,954] - b .L2625 -.L2615: + strh w0, [x22,958] + b .L2648 +.L2638: add x5, x19, :lo12:.LANCHOR2 ubfiz x4, x20, 1, 32 - adrp x0, .LC152 + adrp x0, .LC151 mov w1, w20 - add x0, x0, :lo12:.LC152 + add x0, x0, :lo12:.LC151 ldr x3, [x5,1184] ldr x6, [x5,1168] ldrh w2, [x5,3600] ldrh w3, [x3,x4] - ldrh w5, [x5,952] + ldrh w5, [x5,956] ldrh w4, [x6,x4] bl printk -.L2625: +.L2648: bl FtlGcReFreshBadBlk - b .L2613 -.L2769: + b .L2636 +.L2791: mov w20, w0 - b .L2613 -.L2741: + b .L2636 +.L2764: mov w0, w2 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], 144 + ldp x29, x30, [sp], 160 ret .size ftl_do_gc, .-ftl_do_gc .align 2 @@ -18061,16 +18098,16 @@ FtlCacheWriteBack: stp x25, x26, [sp,64] stp x27, x28, [sp,80] ldr w22, [x0,1400] - cbnz w22, .L2776 - ldr w1, [x0,968] - cbz w1, .L2776 + cbnz w22, .L2798 + ldr w1, [x0,972] + cbz w1, .L2798 adrp x0, .LANCHOR0+136 ldrb w0, [x0,#:lo12:.LANCHOR0+136] - cbz w0, .L2778 + cbz w0, .L2800 ldrb w0, [x20,8] cmp w0, 1 cset w22, eq -.L2778: +.L2800: add x0, x19, :lo12:.LANCHOR2 ldrb w3, [x20,9] adrp x24, .LC153 @@ -18080,21 +18117,21 @@ FtlCacheWriteBack: ldr x0, [x0,1032] add x24, x24, :lo12:.LC153 bl FlashProgPages -.L2779: +.L2801: add x0, x19, :lo12:.LANCHOR2 - ldr w1, [x0,968] + ldr w1, [x0,972] cmp w23, w1 - bcs .L2797 + bcs .L2819 umull x21, w23, w25 ldr x1, [x0,1032] add x0, x1, x21 ldr w1, [x1,x21] cmn w1, #1 - beq .L2800 + beq .L2822 ldr w1, [x0,4] - cbz w22, .L2814 + cbz w22, .L2836 orr w1, w1, -2147483648 -.L2814: +.L2836: ldr w0, [x0,24] mov w2, 1 str w1, [x29,108] @@ -18106,7 +18143,7 @@ FtlCacheWriteBack: ldr x0, [x21,16] ldr w0, [x0,12] cmn w0, #1 - beq .L2783 + beq .L2805 lsr x0, x0, 10 bl P2V_block_in_plane uxth w1, w0 @@ -18114,60 +18151,60 @@ FtlCacheWriteBack: ldr x2, [x26,1184] mov w21, w1 ldrh w2, [x2,x0] - cbnz w2, .L2784 + cbnz w2, .L2806 mov x0, x24 bl printk -.L2784: +.L2806: mov w0, w21 bl decrement_vpc_count -.L2783: +.L2805: add w23, w23, 1 - b .L2779 -.L2816: + b .L2801 +.L2838: mov w20, 16386 -.L2796: +.L2818: add x0, x19, :lo12:.LANCHOR2 - ldrh w0, [x0,958] - cbz w0, .L2797 + ldrh w0, [x0,962] + cbz w0, .L2819 mov w0, 1 mov w1, w0 bl ftl_do_gc subs w20, w20, #1 - bne .L2796 -.L2797: + bne .L2818 +.L2819: add x19, x19, :lo12:.LANCHOR2 - str wzr, [x19,968] - b .L2776 -.L2800: + str wzr, [x19,972] + b .L2798 +.L2822: adrp x25, .LANCHOR4 adrp x26, .LC153 mov w24, 0 mov w27, 56 add x25, x25, :lo12:.LANCHOR4 add x26, x26, :lo12:.LC153 -.L2780: +.L2802: add x0, x19, :lo12:.LANCHOR2 - ldr w1, [x0,968] + ldr w1, [x0,972] cmp w24, w1 - bcs .L2816 + bcs .L2838 umull x21, w24, w27 ldr x0, [x0,1032] mov w1, -1 mov w28, 1 str w1, [x0,x21] -.L2786: +.L2808: add x23, x19, :lo12:.LANCHOR2 ldr x0, [x23,1032] add x1, x0, x21 ldr w0, [x0,x21] cmn w0, #1 ldr w0, [x1,4] - bne .L2817 + bne .L2839 lsr x0, x0, 10 bl P2V_block_in_plane ldrh w1, [x20] cmp w1, w0, uxth - bne .L2787 + bne .L2809 ldr x2, [x23,1184] ubfiz x1, x1, 1, 16 ldrh w3, [x20,4] @@ -18178,12 +18215,12 @@ FtlCacheWriteBack: ldrh w0, [x23,818] strh w0, [x20,2] strh wzr, [x20,4] -.L2787: +.L2809: ldrh w0, [x20,4] - cbnz w0, .L2788 + cbnz w0, .L2810 mov x0, x20 bl allocate_new_data_superblock -.L2788: +.L2810: add x23, x19, :lo12:.LANCHOR2 ldr w0, [x25,3552] add w0, w0, 1 @@ -18208,17 +18245,17 @@ FtlCacheWriteBack: ldr x0, [x23,1032] ldr w0, [x0,x21] cmn w0, #1 - bne .L2789 + bne .L2811 str w28, [x23,1400] -.L2789: +.L2811: add x0, x19, :lo12:.LANCHOR2 ldr w0, [x0,1400] - cbz w0, .L2786 - b .L2776 -.L2817: - cbz w22, .L2815 + cbz w0, .L2808 + b .L2798 +.L2839: + cbz w22, .L2837 orr w0, w0, -2147483648 -.L2815: +.L2837: str w0, [x29,108] mov w2, 1 ldr w0, [x1,24] @@ -18230,7 +18267,7 @@ FtlCacheWriteBack: ldr x0, [x21,16] ldr w0, [x0,12] cmn w0, #1 - beq .L2793 + beq .L2815 lsr x0, x0, 10 bl P2V_block_in_plane uxth w1, w0 @@ -18238,16 +18275,16 @@ FtlCacheWriteBack: ldr x2, [x23,1184] mov w21, w1 ldrh w2, [x2,x0] - cbnz w2, .L2794 + cbnz w2, .L2816 mov x0, x26 bl printk -.L2794: +.L2816: mov w0, w21 bl decrement_vpc_count -.L2793: +.L2815: add w24, w24, 1 - b .L2780 -.L2776: + b .L2802 +.L2798: mov w0, 0 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -18265,13 +18302,13 @@ FtlSysFlush: stp x29, x30, [sp, -16]! add x29, sp, 0 ldr w0, [x0,#:lo12:.LANCHOR2+1400] - cbnz w0, .L2819 + cbnz w0, .L2841 bl FtlCacheWriteBack bl l2p_flush mov w0, 1 bl FtlEctTblFlush bl FtlVpcTblFlush -.L2819: +.L2841: mov w0, 0 ldp x29, x30, [sp], 16 ret @@ -18280,14 +18317,14 @@ FtlSysFlush: .global FtlDeInit .type FtlDeInit, %function FtlDeInit: - adrp x0, .LANCHOR1+3064 + adrp x0, .LANCHOR1+3160 stp x29, x30, [sp, -16]! add x29, sp, 0 - ldr w0, [x0,#:lo12:.LANCHOR1+3064] + ldr w0, [x0,#:lo12:.LANCHOR1+3160] cmp w0, 1 - bne .L2821 + bne .L2843 bl FtlSysFlush -.L2821: +.L2843: mov w0, 0 ldp x29, x30, [sp], 16 ret @@ -18330,40 +18367,40 @@ ftl_discard: ldr w1, [x0,#:lo12:.LANCHOR0+4048] mov w0, -1 cmp w2, w1 - bhi .L2825 + bhi .L2847 cmp w19, 31 - bls .L2839 + bls .L2861 adrp x22, .LANCHOR2 add x21, x22, :lo12:.LANCHOR2 ldr w0, [x21,1400] - cbnz w0, .L2839 + cbnz w0, .L2861 bl FtlCacheWriteBack ldrh w1, [x21,824] udiv w21, w20, w1 msub w20, w1, w21, w20 uxth w20, w20 - cbz w20, .L2828 + cbz w20, .L2850 sub w1, w1, w20 add w21, w21, 1 cmp w1, w19 csel w1, w1, w19, ls sub w19, w19, w1, uxth -.L2828: +.L2850: mov w0, -1 adrp x23, .LANCHOR5 str w0, [x29,76] -.L2829: +.L2851: add x20, x22, :lo12:.LANCHOR2 ldrh w0, [x20,824] cmp w19, w0 - bcc .L2840 + bcc .L2862 mov w0, w21 add x1, x29, 72 mov w2, 0 bl log2phys ldr w0, [x29,72] cmn w0, #1 - beq .L2830 + beq .L2852 add x1, x23, :lo12:.LANCHOR5 mov w2, 1 ldr w0, [x1,-136] @@ -18379,24 +18416,24 @@ ftl_discard: lsr x0, x0, 10 bl P2V_block_in_plane bl decrement_vpc_count -.L2830: +.L2852: add x0, x22, :lo12:.LANCHOR2 add w21, w21, 1 ldrh w0, [x0,824] sub w19, w19, w0 - b .L2829 -.L2840: + b .L2851 +.L2862: adrp x0, .LANCHOR5 add x0, x0, :lo12:.LANCHOR5 ldr w1, [x0,-136] cmp w1, 32 - bls .L2839 + bls .L2861 str wzr, [x0,-136] bl l2p_flush bl FtlVpcTblFlush -.L2839: +.L2861: mov w0, 0 -.L2825: +.L2847: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldr x23, [sp,48] @@ -18417,72 +18454,72 @@ FtlGcFreeTempBlock: stp x25, x26, [sp,64] ldr w3, [x2,1400] ldrh w1, [x2,818] - cbnz w3, .L2876 + cbnz w3, .L2897 ldrh w20, [x2,3704] mov w4, 65535 cmp w20, w4 - bne .L2844 -.L2853: - add x21, x19, :lo12:.LANCHOR2 - adrp x20, .LANCHOR4 - add x22, x20, :lo12:.LANCHOR4 + bne .L2866 +.L2875: + add x20, x19, :lo12:.LANCHOR2 + adrp x21, .LANCHOR4 + add x22, x21, :lo12:.LANCHOR4 mov w0, 65535 - add x23, x21, 3704 - ldrh w1, [x21,3704] + add x23, x20, 3704 + ldrh w1, [x20,3704] str wzr, [x22,4008] cmp w1, w0 - beq .L2876 + beq .L2897 bl FtlCacheWriteBack mov w26, 12 ldrb w0, [x23,7] - ldrh w3, [x21,818] - ldr x1, [x21,1184] - ldrh w2, [x21,3704] + 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,4018] mov w22, 0 - ldr w0, [x21,880] + ldr w0, [x20,880] add w0, w1, w0 - str w0, [x21,880] - b .L2854 -.L2844: - cbz w0, .L2847 + str w0, [x20,880] + b .L2876 +.L2866: + cbz w0, .L2869 adrp x0, .LANCHOR1 add x0, x0, :lo12:.LANCHOR1 - ldrh w5, [x0,3068] + ldrh w5, [x0,3164] cmp w5, w4 - beq .L2848 -.L2849: + beq .L2870 +.L2871: mov w1, 2 - b .L2847 -.L2848: - strh w3, [x0,3068] + b .L2869 +.L2870: + strh w3, [x0,3164] ldrh w0, [x2,3600] cmp w0, 17 - bhi .L2849 -.L2847: + bhi .L2871 +.L2869: add x21, x19, :lo12:.LANCHOR2 add x0, x21, 3704 bl FtlGcScanTempBlk str w0, [x29,92] cmn w0, #1 - beq .L2850 + beq .L2872 ubfiz x20, x20, 1, 16 ldr x1, [x21,1168] ldrh w0, [x1,x20] cmp w0, 4 - bls .L2851 + bls .L2873 sub w0, w0, #5 strh w0, [x1,x20] mov w0, 1 bl FtlEctTblFlush -.L2851: +.L2873: adrp x0, .LANCHOR4 add x1, x0, :lo12:.LANCHOR4 mov x19, x0 ldr w2, [x1,4008] - cbnz w2, .L2852 + cbnz w2, .L2874 ldr w0, [x1,3552] add w0, w0, 1 str w0, [x1,3552] @@ -18490,21 +18527,21 @@ FtlGcFreeTempBlock: lsr w0, w0, 10 bl FtlBbmMapBadBlock bl FtlBbmTblFlush -.L2852: +.L2874: add x0, x19, :lo12:.LANCHOR4 str wzr, [x0,4008] mov w0, 1 - b .L2843 -.L2850: - adrp x0, .LANCHOR1+3068 + b .L2865 +.L2872: + adrp x0, .LANCHOR1+3164 mov w1, 65535 - ldrh w2, [x0,#:lo12:.LANCHOR1+3068] + ldrh w2, [x0,#:lo12:.LANCHOR1+3164] mov w0, 1 cmp w2, w1 - bne .L2843 - b .L2853 -.L2857: - ldr x25, [x21,984] + bne .L2865 + b .L2875 +.L2879: + ldr x25, [x20,984] add x1, x29, 92 umull x24, w22, w26 mov w2, 0 @@ -18514,7 +18551,7 @@ FtlGcFreeTempBlock: ldr w0, [x29,92] ldr w1, [x25,x24] cmp w0, w1 - bne .L2855 + bne .L2877 lsr x0, x0, 10 bl P2V_block_in_plane mov w24, w0 @@ -18523,93 +18560,88 @@ FtlGcFreeTempBlock: mov w2, 1 bl log2phys mov w0, w24 -.L2875: +.L2896: bl decrement_vpc_count -.L2856: +.L2878: add w22, w22, 1 uxth w22, w22 -.L2854: - add x0, x20, :lo12:.LANCHOR4 +.L2876: + add x0, x21, :lo12:.LANCHOR4 ldrh w0, [x0,4018] cmp w0, w22 - bhi .L2857 - b .L2877 -.L2855: + bhi .L2879 + b .L2898 +.L2877: ldr w1, [x23,4] cmp w0, w1 - beq .L2856 - ldrh w0, [x21,3704] - b .L2875 -.L2877: + beq .L2878 + ldrh w0, [x20,3704] + b .L2896 +.L2898: mov w0, -1 - adrp x21, .LANCHOR0 + adrp x20, .LANCHOR0 bl decrement_vpc_count - add x0, x21, :lo12:.LANCHOR0 + add x0, x20, :lo12:.LANCHOR0 ldrb w0, [x0,136] - cbz w0, .L2858 + cbz w0, .L2880 add x1, x19, :lo12:.LANCHOR2 adrp x0, .LC154 add x0, x0, :lo12:.LC154 ldrh w1, [x1,3704] bl printk -.L2858: +.L2880: add x1, x19, :lo12:.LANCHOR2 ldrh w0, [x1,3704] ldr x1, [x1,1184] ubfiz x2, x0, 1, 16 ldrh w1, [x1,x2] - cbz w1, .L2859 + cbz w1, .L2881 bl INSERT_DATA_LIST - b .L2860 -.L2859: + b .L2882 +.L2881: bl INSERT_FREE_LIST -.L2860: +.L2882: + add x23, x21, :lo12:.LANCHOR4 add x22, x19, :lo12:.LANCHOR2 - add x23, x20, :lo12:.LANCHOR4 - mov w0, -1 + mov w24, -1 strh wzr, [x23,4018] - strh w0, [x22,3704] + strh w24, [x22,3704] strh wzr, [x23,4016] bl l2p_flush bl FtlVpcTblFlush + strh w24, [x23,3408] ldr w0, [x22,652] - cbz w0, .L2861 + cbz w0, .L2883 ldr w0, [x22,920] - cmp w0, 29 - bhi .L2861 + cmp w0, 39 + bhi .L2883 ldrh w0, [x23,3404] ldrh w1, [x22,3600] cmp w1, w0 - bcs .L2862 + bcs .L2897 lsl w0, w0, 1 - strh w0, [x22,952] -.L2862: - add x20, x20, :lo12:.LANCHOR4 - mov w0, -1 - strh w0, [x20,3408] -.L2876: + strh w0, [x22,956] +.L2897: mov w0, 0 - b .L2843 -.L2861: - add x20, x20, :lo12:.LANCHOR4 + b .L2865 +.L2883: + add x21, x21, :lo12:.LANCHOR4 add x19, x19, :lo12:.LANCHOR2 - ldrh w1, [x20,3404] + ldrh w1, [x21,3404] ldrh w0, [x19,3600] add w2, w1, w1, lsl 1 cmp w0, w2, lsr 2 - ble .L2876 - add x21, x21, :lo12:.LANCHOR0 - mov w0, -1 - strh w0, [x20,3408] - ldrb w0, [x21,136] - cbz w0, .L2863 + ble .L2897 + add x20, x20, :lo12:.LANCHOR0 + ldrb w0, [x20,136] + cbz w0, .L2884 sub w1, w1, #2 - strh w1, [x19,952] - b .L2876 -.L2863: + strh w1, [x19,956] + b .L2897 +.L2884: mov w1, 20 - strh w1, [x19,952] -.L2843: + strh w1, [x19,956] +.L2865: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -18633,14 +18665,14 @@ FtlGcPageRecovery: ldrh w1, [x19,3706] ldrh w0, [x19,818] cmp w1, w0 - bcc .L2878 + bcc .L2899 add x0, x19, 3752 bl FtlMapBlkWriteDumpData mov w0, 0 bl FtlGcFreeTempBlock adrp x0, .LANCHOR4+4008 str wzr, [x0,#:lo12:.LANCHOR4+4008] -.L2878: +.L2899: ldp x19, x20, [sp,16] ldp x29, x30, [sp], 32 ret @@ -18678,32 +18710,31 @@ FtlPowerLostRecovery: .global FtlSysBlkInit .type FtlSysBlkInit, %function FtlSysBlkInit: - stp x29, x30, [sp, -64]! + stp x29, x30, [sp, -48]! mov w1, -1 add x29, sp, 0 stp x19, x20, [sp,16] - adrp x19, .LANCHOR4 - adrp x20, .LANCHOR2 + adrp x20, .LANCHOR4 + adrp x19, .LANCHOR2 stp x21, x22, [sp,32] - add x0, x19, :lo12:.LANCHOR4 - add x21, x20, :lo12:.LANCHOR2 - str x23, [sp,48] + add x0, x20, :lo12:.LANCHOR4 + add x22, x19, :lo12:.LANCHOR2 strh w1, [x0,4058] strh wzr, [x0,4060] - ldrh w0, [x21,752] + ldrh w0, [x22,752] bl FtlFreeSysBlkQueueInit bl FtlScanSysBlk - ldrh w1, [x21,3896] + ldrh w1, [x22,3896] mov w0, 65535 cmp w1, w0 - bne .L2882 -.L2884: - mov w23, -1 - b .L2883 -.L2882: + bne .L2903 +.L2905: + mov w21, -1 + b .L2904 +.L2903: bl FtlLoadSysInfo - mov w23, w0 - cbnz w0, .L2884 + mov w21, w0 + cbnz w0, .L2905 bl FtlLoadMapInfo bl FtlLoadVonderInfo bl Ftl_load_ext_data @@ -18713,102 +18744,88 @@ FtlSysBlkInit: bl FtlPowerLostRecovery mov w0, 1 bl FtlUpdateVaildLpn - ldrh w2, [x21,858] + ldrh w2, [x22,858] mov x1, 0 - ldr x0, [x21,1264] -.L2885: + ldr x0, [x22,1264] +.L2906: cmp w1, w2 mov w3, w1 - bge .L2889 + bge .L2910 add x4, x0, x1, lsl 4 add x1, x1, 1 ldr w4, [x4,4] - tbz w4, #31, .L2885 -.L2889: - add x0, x20, :lo12:.LANCHOR2 + tbz w4, #31, .L2906 +.L2910: + add x0, x19, :lo12:.LANCHOR2 cmp w3, w2 ldrh w1, [x0,3548] add w1, w1, 1 strh w1, [x0,3548] - blt .L2886 - add x19, x19, :lo12:.LANCHOR4 - ldrh w0, [x19,4060] - cbz w0, .L2890 -.L2886: - add x19, x20, :lo12:.LANCHOR2 - add x22, x19, 3608 - add x21, x19, 3656 - mov x0, x22 - bl FtlSuperblockPowerLostFix - mov x0, x21 - bl FtlSuperblockPowerLostFix - ldrh w0, [x19,3608] - ldr x2, [x19,1184] - lsl x0, x0, 1 - ldrh w3, [x19,3612] - ldrh w1, [x2,x0] - sub w1, w1, w3 - strh w1, [x2,x0] - 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,3612] - ldrh w3, [x19,3660] - ldrh w1, [x2,x0] - sub w1, w1, w3 - strh w1, [x2,x0] - 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, 3824 - bl FtlMapBlkWriteDumpData - ldrh w0, [x19,3550] + blt .L2907 + add x20, x20, :lo12:.LANCHOR4 + ldrh w0, [x20,4060] + cbz w0, .L2911 +.L2907: + add x1, x19, :lo12:.LANCHOR2 + ldrh w2, [x1,3608] + ldr x4, [x1,1184] + lsl x2, x2, 1 + ldrh w5, [x1,3612] + ldrh w3, [x4,x2] + sub w3, w3, w5 + strh w3, [x4,x2] + strb wzr, [x1,3614] + ldrh w3, [x1,3656] + ldrh w2, [x1,818] + lsl x3, x3, 1 + ldr x4, [x1,1184] + strh w2, [x1,3610] + strh wzr, [x1,3612] + ldrh w5, [x1,3660] + ldrh w0, [x4,x3] + sub w0, w0, w5 + strh w0, [x4,x3] + strb wzr, [x1,3662] + ldrh w0, [x1,818] + strh w0, [x1,3658] + ldrh w0, [x1,3550] + strh wzr, [x1,3660] add w0, w0, 1 - strh w0, [x19,3550] + strh w0, [x1,3550] bl l2p_flush bl FtlVpcTblFlush bl FtlVpcTblFlush -.L2890: - add x19, x20, :lo12:.LANCHOR2 - mov w0, 65535 +.L2911: + add x0, x19, :lo12:.LANCHOR2 + ldrh w0, [x0,3548] + and w0, w0, 31 + cbnz w0, .L2912 + bl FtlVpcCheckAndModify +.L2912: + add x19, x19, :lo12:.LANCHOR2 + mov w1, 65535 add x22, x19, 3608 - ldrh w1, [x19,3608] - cmp w1, w0 - beq .L2891 - ldrh w0, [x19,3612] - cbnz w0, .L2891 - ldrh w0, [x19,3660] - add x21, x19, 3656 - cbnz w0, .L2891 - bl FtlVpcTblFlush ldrh w0, [x19,3608] + cmp w0, w1 + beq .L2904 + ldrh w1, [x19,3612] + cbnz w1, .L2904 + ldrh w1, [x19,3660] + add x20, x19, 3656 + cbnz w1, .L2904 bl FtlGcRefreshOpenBlock ldrh w0, [x19,3656] bl FtlGcRefreshOpenBlock + bl FtlVpcTblFlush mov x0, x22 bl allocate_new_data_superblock - mov x0, x21 + mov x0, x20 bl allocate_new_data_superblock - add x0, x19, 3824 - bl FtlMapBlkWriteDumpData -.L2891: - add x20, x20, :lo12:.LANCHOR2 - ldrh w0, [x20,3548] - and w0, w0, 31 - cbnz w0, .L2883 - bl FtlVpcCheckAndModify -.L2883: - mov w0, w23 - ldr x23, [sp,48] +.L2904: + mov w0, w21 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] - ldp x29, x30, [sp], 64 + ldp x29, x30, [sp], 48 ret .size FtlSysBlkInit, .-FtlSysBlkInit .align 2 @@ -18823,7 +18840,7 @@ FtlLowFormat: add x20, x19, :lo12:.LANCHOR2 stp x21, x22, [sp,32] ldr w21, [x20,1400] - cbnz w21, .L2899 + cbnz w21, .L2920 ldrh w2, [x20,856] mov w1, w21 ldr x0, [x20,1248] @@ -18839,15 +18856,15 @@ FtlLowFormat: str w21, [x20,876] bl FtlFreeSysBlkQueueInit bl FtlLoadBbt - cbz w0, .L2900 + cbz w0, .L2921 bl FtlMakeBbt -.L2900: +.L2921: mov w0, 0 -.L2901: +.L2922: add x1, x19, :lo12:.LANCHOR2 ldrh w2, [x1,824] cmp w0, w2, lsl 7 - bge .L2928 + bge .L2949 ubfiz x3, x0, 2, 16 ldr x4, [x1,1088] mvn w2, w0 @@ -18859,15 +18876,15 @@ FtlLowFormat: movk w1, 0xa0f, lsl 16 uxth w0, w0 str w1, [x2,x3] - b .L2901 -.L2928: + b .L2922 +.L2949: ldrh w21, [x1,756] mov w20, 0 -.L2903: +.L2924: add x22, x19, :lo12:.LANCHOR2 ldrh w0, [x22,758] cmp w0, w21 - bls .L2929 + bls .L2950 mov w0, w21 mov w1, 1 add w21, w21, 1 @@ -18875,17 +18892,17 @@ FtlLowFormat: add w0, w20, w0 uxth w21, w21 uxth w20, w0 - b .L2903 -.L2929: + b .L2924 +.L2950: ldrh w0, [x22,748] sub w1, w20, #3 cmp w1, w0, lsl 1 - bge .L2905 -.L2909: + bge .L2926 +.L2930: mov w20, 0 mov w21, w20 - b .L2906 -.L2905: + b .L2927 +.L2926: udiv w20, w20, w0 ldr w0, [x22,852] add w0, w20, w0 @@ -18893,22 +18910,22 @@ FtlLowFormat: ldrh w0, [x22,752] bl FtlFreeSysBlkQueueInit ldrh w20, [x22,756] -.L2907: +.L2928: add x0, x19, :lo12:.LANCHOR2 ldrh w0, [x0,758] cmp w0, w20 - bls .L2909 + bls .L2930 mov w0, w20 mov w1, 1 add w20, w20, 1 bl FtlLowFormatEraseBlock uxth w20, w20 - b .L2907 -.L2906: + b .L2928 +.L2927: add x0, x19, :lo12:.LANCHOR2 ldrh w1, [x0,756] cmp w1, w21 - bls .L2930 + bls .L2951 mov w0, w21 mov w1, 0 add w21, w21, 1 @@ -18916,8 +18933,8 @@ FtlLowFormat: add w0, w20, w0 uxth w21, w21 uxth w20, w0 - b .L2906 -.L2930: + b .L2927 +.L2951: ldrh w1, [x0,758] adrp x21, .LANCHOR4 ldrh w2, [x0,748] @@ -18932,51 +18949,51 @@ FtlLowFormat: mov w4, 24 mul w4, w2, w4 cmp w20, w4 - ble .L2911 + ble .L2932 sub w1, w1, w20 udiv w1, w1, w2 str w1, [x0,1396] lsr w1, w1, 5 add w1, w1, 24 strh w1, [x6,3404] -.L2911: +.L2932: add x0, x19, :lo12:.LANCHOR2 ldr w0, [x0,652] cmp w0, 1 - bne .L2912 + bne .L2933 add x1, x21, :lo12:.LANCHOR4 udiv w0, w20, w2 ldrh w4, [x1,3404] add w0, w4, w0 add w0, w4, w0, asr 2 strh w0, [x1,3404] -.L2912: +.L2933: adrp x22, .LANCHOR0 add x0, x22, :lo12:.LANCHOR0 ldrb w0, [x0,136] - cbz w0, .L2913 + cbz w0, .L2934 add x1, x21, :lo12:.LANCHOR4 udiv w0, w20, w2 ldrh w4, [x1,3404] add w0, w4, w0 add w0, w4, w0, asr 2 strh w0, [x1,3404] -.L2913: +.L2934: add x6, x19, :lo12:.LANCHOR2 ldrh w1, [x6,810] - cbz w1, .L2915 + cbz w1, .L2936 add x0, x21, :lo12:.LANCHOR4 ldrh w4, [x0,3404] add w4, w4, w1, lsr 1 strh w4, [x0,3404] mul w4, w1, w2 cmp w4, w20 - ble .L2915 + ble .L2936 add w1, w1, 32 str w3, [x6,1396] add w1, w5, w1 strh w1, [x0,3404] -.L2915: +.L2936: add x19, x19, :lo12:.LANCHOR2 add x20, x21, :lo12:.LANCHOR4 add x22, x22, :lo12:.LANCHOR0 @@ -19014,19 +19031,19 @@ FtlLowFormat: strb wzr, [x20,6] strh wzr, [x19,3608] bl ftl_memset -.L2917: +.L2938: mov x0, x20 bl make_superblock ldrb w0, [x20,7] - cbnz w0, .L2918 + cbnz w0, .L2939 ldrh w1, [x20] ldr x0, [x19,1184] strh w23, [x0,x1,lsl 1] ldrh w0, [x20] add w0, w0, 1 strh w0, [x20] - b .L2917 -.L2918: + b .L2938 +.L2939: ldr w0, [x19,872] mov w22, -1 str w0, [x20,12] @@ -19045,19 +19062,19 @@ FtlLowFormat: strh w1, [x19,3656] mov w1, 1 strb w1, [x19,3664] -.L2919: +.L2940: mov x0, x20 bl make_superblock ldrb w0, [x20,7] - cbnz w0, .L2920 + cbnz w0, .L2941 ldrh w1, [x20] ldr x0, [x19,1184] strh w22, [x0,x1,lsl 1] ldrh w0, [x20] add w0, w0, 1 strh w0, [x20] - b .L2919 -.L2920: + b .L2940 +.L2941: ldr w0, [x19,872] add x21, x21, :lo12:.LANCHOR4 str w0, [x20,12] @@ -19081,11 +19098,11 @@ FtlLowFormat: str w0, [x19,872] bl FtlVpcTblFlush bl FtlSysBlkInit - cbnz w0, .L2899 - adrp x0, .LANCHOR1+3064 + cbnz w0, .L2920 + adrp x0, .LANCHOR1+3160 mov w1, 1 - str w1, [x0,#:lo12:.LANCHOR1+3064] -.L2899: + str w1, [x0,#:lo12:.LANCHOR1+3160] +.L2920: mov w0, 0 ldr x23, [sp,48] ldp x19, x20, [sp,16] @@ -19103,24 +19120,24 @@ FtlReInitForSDUpdata: adrp x19, .LANCHOR0 add x0, x19, :lo12:.LANCHOR0 ldrb w0, [x0,136] - cbz w0, .L2932 -.L2934: + cbz w0, .L2953 +.L2955: mov w0, 0 - b .L2933 -.L2932: + b .L2954 +.L2953: adrp x0, RK29_NANDC_REG_BASE ldr x0, [x0,#:lo12:RK29_NANDC_REG_BASE] bl FlashInit - cbnz w0, .L2934 + cbnz w0, .L2955 bl FlashLoadFactorBbt - cbz w0, .L2935 + cbz w0, .L2956 bl FlashMakeFactorBbt -.L2935: +.L2956: adrp x20, .LANCHOR2 add x0, x20, :lo12:.LANCHOR2 ldr x0, [x0,688] bl FlashReadIdbDataRaw - cbz w0, .L2936 + cbz w0, .L2957 mov w1, 0 mov w2, 16 add x0, x29, 32 @@ -19129,43 +19146,43 @@ FtlReInitForSDUpdata: ldr w2, [x29,32] mov w1, w0 mov w4, 1 -.L2938: +.L2959: lsl w3, w4, w1 add w1, w1, 1 tst w3, w2 cset w3, ne cmp w1, 16 add w0, w0, w3 - bne .L2938 + bne .L2959 cmp w0, 6 - bhi .L2939 + bhi .L2960 add x0, x19, :lo12:.LANCHOR0 - b .L2961 -.L2939: + b .L2982 +.L2960: mov w1, 0 mov w4, 1 -.L2942: +.L2963: lsl w3, w4, w1 add w1, w1, 1 tst w3, w2 cset w3, ne cmp w1, 24 add w0, w0, w3 - bne .L2942 + bne .L2963 cmp w0, 17 add x0, x19, :lo12:.LANCHOR0 - bls .L2961 + bls .L2982 mov w1, 36 -.L2961: +.L2982: strb w1, [x0,25] add x0, x19, :lo12:.LANCHOR0 ldrb w1, [x0,25] strh w1, [x0,4042] -.L2936: - adrp x0, .LC47 - adrp x1, .LC140 - add x1, x1, :lo12:.LC140 - add x0, x0, :lo12:.LC47 +.L2957: + adrp x0, .LC45 + adrp x1, .LC138 + add x1, x1, :lo12:.LC138 + add x0, x0, :lo12:.LC45 add x20, x20, :lo12:.LANCHOR2 bl printk add x0, x19, :lo12:.LANCHOR0 @@ -19175,25 +19192,25 @@ FtlReInitForSDUpdata: bl FtlVariablesInit ldrh w0, [x20,752] bl FtlFreeSysBlkQueueInit -.L2944: +.L2965: bl FtlLoadBbt - cbz w0, .L2945 -.L2963: + cbz w0, .L2966 +.L2984: bl FtlLowFormat cmp w19, 3 - bhi .L2964 + bhi .L2985 add w19, w19, 1 - b .L2944 -.L2964: + b .L2965 +.L2985: mov w0, -1 - b .L2933 -.L2945: + b .L2954 +.L2966: bl FtlSysBlkInit - cbnz w0, .L2963 - adrp x1, .LANCHOR1+3064 + cbnz w0, .L2984 + adrp x1, .LANCHOR1+3160 mov w2, 1 - str w2, [x1,#:lo12:.LANCHOR1+3064] -.L2933: + str w2, [x1,#:lo12:.LANCHOR1+3160] +.L2954: ldp x19, x20, [sp,16] ldp x29, x30, [sp], 48 ret @@ -19210,21 +19227,21 @@ Ftl_gc_temp_data_write_back: add x0, x19, :lo12:.LANCHOR2 stp x21, x22, [sp,32] ldr w1, [x0,1400] - cbz w1, .L2966 -.L2969: + cbz w1, .L2987 +.L2990: mov w0, 0 - b .L2967 -.L2966: + b .L2988 +.L2987: adrp x1, .LANCHOR0+136 adrp x22, .LANCHOR4 ldrb w1, [x1,#:lo12:.LANCHOR0+136] - cbz w1, .L2968 + cbz w1, .L2989 add x1, x22, :lo12:.LANCHOR4 ldr w1, [x1,3984] - tbz x1, 0, .L2968 + tbz x1, 0, .L2989 ldrh w0, [x0,3708] - cbnz w0, .L2969 -.L2968: + cbnz w0, .L2990 +.L2989: add x0, x19, :lo12:.LANCHOR2 add x1, x22, :lo12:.LANCHOR4 mov w2, 0 @@ -19234,18 +19251,18 @@ Ftl_gc_temp_data_write_back: ldr x0, [x0,1000] ldr w1, [x1,3984] bl FlashProgPages -.L2970: +.L2991: add x20, x22, :lo12:.LANCHOR4 ldr w1, [x20,3984] cmp w21, w1 - bcs .L2980 + bcs .L3001 add x1, x19, :lo12:.LANCHOR2 umull x0, w21, w23 ldr x2, [x1,1000] add x3, x2, x0 ldr w2, [x2,x0] cmn w2, #1 - bne .L2971 + bne .L2992 ldrh w4, [x1,3704] ldr x3, [x1,1184] strh wzr, [x3,x4,lsl 1] @@ -19260,8 +19277,8 @@ Ftl_gc_temp_data_write_back: bl FtlBbmMapBadBlock bl FtlBbmTblFlush bl FtlGcPageVarInit - b .L2979 -.L2971: + b .L3000 +.L2992: ldr x2, [x3,16] add w21, w21, 1 ldr w1, [x3,4] @@ -19269,19 +19286,19 @@ Ftl_gc_temp_data_write_back: ldr w0, [x2,12] ldr w2, [x2,8] bl FtlGcUpdatePage - b .L2970 -.L2980: + b .L2991 +.L3001: add x19, x19, :lo12:.LANCHOR2 ldr x0, [x19,1000] bl FtlGcBufFree str wzr, [x20,3984] ldrh w0, [x19,3708] - cbnz w0, .L2969 + cbnz w0, .L2990 mov w0, 1 bl FtlGcFreeTempBlock -.L2979: +.L3000: mov w0, 1 -.L2967: +.L2988: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldr x23, [sp,48] @@ -19301,10 +19318,10 @@ Ftl_get_new_temp_ppa: ldrh w2, [x0,3704] mov w0, 65535 cmp w2, w0 - beq .L2982 + beq .L3003 ldrh w0, [x1,4] - cbnz w0, .L2983 -.L2982: + cbnz w0, .L3004 +.L3003: bl FtlCacheWriteBack mov w0, 0 bl FtlGcFreeTempBlock @@ -19320,7 +19337,7 @@ Ftl_get_new_temp_ppa: mov w0, 0 bl FtlEctTblFlush bl FtlVpcTblFlush -.L2983: +.L3004: add x0, x19, :lo12:.LANCHOR2 add x0, x0, 3704 bl get_new_active_ppa @@ -19332,32 +19349,33 @@ Ftl_get_new_temp_ppa: .global ftl_read .type ftl_read, %function ftl_read: - stp x29, x30, [sp, -192]! + sub sp, sp, #224 cmp w0, 16 - add x29, sp, 0 - stp x19, x20, [sp,16] - stp x25, x26, [sp,64] - stp x27, x28, [sp,80] - stp x21, x22, [sp,32] - stp x23, x24, [sp,48] + stp x29, x30, [sp,16] + add x29, sp, 16 + stp x19, x20, [sp,32] + stp x25, x26, [sp,80] + stp x27, x28, [sp,96] + stp x21, x22, [sp,48] + stp x23, x24, [sp,64] mov w20, w1 mov w28, w2 mov x25, x3 - bne .L2985 + bne .L3006 add w0, w1, 256 mov w1, w2 mov x2, x3 bl FtlVendorPartRead - b .L2986 -.L2985: + b .L3007 +.L3006: add w0, w1, w2 - str w0, [x29,172] + str w0, [x29,188] adrp x0, .LANCHOR0+4048 - ldr w2, [x29,172] + ldr w2, [x29,188] ldr w1, [x0,#:lo12:.LANCHOR0+4048] mov w0, -1 cmp w2, w1 - bhi .L2986 + bhi .L3007 adrp x19, .LANCHOR2 adrp x21, .LANCHOR4 add x0, x19, :lo12:.LANCHOR2 @@ -19374,55 +19392,54 @@ ftl_read: ldr w1, [x0,900] add w1, w23, w1 str w1, [x0,900] - mov w1, w24 mov w0, w27 + mov w1, w24 bl FtlCacheMetchLpa - mov x1, x21 - cbz w0, .L2987 - str x21, [x29,160] + str x21, [x29,120] + cbz w0, .L3008 bl FtlCacheWriteBack - ldr x1, [x29,160] -.L2987: +.L3008: mov w26, 0 - add x0, x1, :lo12:.LANCHOR4 + adrp x0, .LC56 + add x0, x0, :lo12:.LC56 mov w21, w27 - str w26, [x29,168] + str w26, [x29,184] mov w22, w26 - str w26, [x29,156] + str w26, [x29,172] str x0, [x29,112] -.L2988: - cbz w23, .L3029 +.L3009: + cbz w23, .L3051 mov w0, w21 - add x1, x29, 188 + add x1, x29, 204 mov w2, 0 bl log2phys - ldr w3, [x29,188] + ldr w3, [x29,204] cmn w3, #1 - bne .L3027 + bne .L3049 mov w3, 0 -.L2989: +.L3010: add x0, x19, :lo12:.LANCHOR2 ldrh w0, [x0,824] cmp w3, w0 - bcs .L2993 + bcs .L3014 madd w0, w21, w0, w3 cmp w0, w20 - bcc .L2991 - ldr w1, [x29,172] + bcc .L3012 + ldr w1, [x29,188] cmp w0, w1 - bcs .L2991 + bcs .L3012 sub w0, w0, w20 mov w1, 0 ubfiz x0, x0, 9, 23 mov w2, 512 add x0, x25, x0 - str x3, [x29,160] + str x3, [x29,176] bl ftl_memset - ldr x3, [x29,160] -.L2991: + ldr x3, [x29,176] +.L3012: add w3, w3, 1 - b .L2989 -.L3027: + b .L3010 +.L3049: add x2, x19, :lo12:.LANCHOR2 mov w0, 56 cmp w21, w27 @@ -19431,40 +19448,40 @@ ftl_read: add x0, x0, x1 str w3, [x0,4] ldrh w0, [x2,824] - bne .L2994 + bne .L3015 ldr x3, [x2,992] ldr x2, [x2,1088] add x3, x3, x1 str x2, [x3,8] udiv w2, w20, w0 msub w2, w2, w0, w20 - str w2, [x29,128] + str w2, [x29,144] sub w2, w0, w2 cmp w2, w28 csel w2, w2, w28, ls - str w2, [x29,168] + str w2, [x29,184] cmp w2, w0 - bne .L2995 + bne .L3016 str x25, [x3,8] - b .L2995 -.L2994: + b .L3016 +.L3015: cmp w21, w24 - bne .L2996 + bne .L3017 ldr x3, [x2,992] ldr x2, [x2,1096] add x3, x3, x1 - ldr w4, [x29,172] + ldr w4, [x29,188] str x2, [x3,8] mul w2, w21, w0 sub w26, w4, w2 cmp w26, w0 - bne .L2995 + bne .L3016 sub w2, w2, w20 ubfiz x2, x2, 9, 23 add x2, x25, x2 str x2, [x3,8] - b .L2995 -.L2996: + b .L3016 +.L3017: ldr x2, [x2,992] mul w0, w21, w0 add x2, x2, x1 @@ -19472,7 +19489,7 @@ ftl_read: ubfiz x0, x0, 9, 23 add x0, x25, x0 str x0, [x2,8] -.L2995: +.L3016: add x2, x19, :lo12:.LANCHOR2 ldr x0, [x2,992] add x1, x0, x1 @@ -19484,115 +19501,149 @@ ftl_read: and x0, x0, 4294967292 add x0, x2, x0 str x0, [x1,16] -.L2993: +.L3014: subs w23, w23, #1 add w21, w21, 1 - beq .L2997 + beq .L3018 add x0, x19, :lo12:.LANCHOR2 ldrh w0, [x0,748] cmp w22, w0, lsl 3 - bne .L2988 -.L2997: - cbz w22, .L2988 + bne .L3009 +.L3018: + cbz w22, .L3009 add x0, x19, :lo12:.LANCHOR2 mov w1, w22 mov w2, 0 ldr x0, [x0,992] bl FlashReadPages - str xzr, [x29,160] - ldr x0, [x29,128] + str xzr, [x29,176] + ldr x0, [x29,144] ubfiz x0, x0, 9, 23 - str x0, [x29,144] - ldr w0, [x29,168] + str x0, [x29,136] + ldr w0, [x29,184] lsl w0, w0, 9 - str w0, [x29,152] + str w0, [x29,168] lsl w0, w26, 9 - str w0, [x29,124] -.L2999: - ldr w0, [x29,160] + str w0, [x29,132] + ldr x0, [x29,120] + add x0, x0, :lo12:.LANCHOR4 + str x0, [x29,160] +.L3020: + ldr w0, [x29,176] cmp w22, w0 - bls .L3030 - ldr x0, [x29,160] + bls .L3052 + ldr x0, [x29,176] add x2, x19, :lo12:.LANCHOR2 mov x1, 56 - mul x3, x0, x1 + mul x8, x0, x1 ldr x0, [x2,992] - add x0, x0, x3 + add x0, x0, x8 ldr w1, [x0,24] cmp w1, w27 - bne .L3000 + bne .L3021 ldr x1, [x0,8] ldr x0, [x2,1088] cmp x1, x0 - bne .L3001 - ldr x2, [x29,144] + bne .L3022 + ldr x2, [x29,136] mov x0, x25 - str x3, [x29,104] + str x8, [x29,104] add x1, x1, x2 - ldr w2, [x29,152] - b .L3028 -.L3000: + ldr w2, [x29,168] + b .L3050 +.L3021: cmp w1, w24 - bne .L3001 + bne .L3022 ldr x1, [x0,8] ldr x0, [x2,1096] cmp x1, x0 - bne .L3001 + bne .L3022 ldrh w0, [x2,824] - ldr w2, [x29,124] - str x3, [x29,104] + ldr w2, [x29,132] + str x8, [x29,104] mul w0, w24, w0 sub w0, w0, w20 ubfiz x0, x0, 9, 23 add x0, x25, x0 -.L3028: +.L3050: bl ftl_memcpy - ldr x3, [x29,104] -.L3001: + ldr x8, [x29,104] +.L3022: add x0, x19, :lo12:.LANCHOR2 ldr x0, [x0,992] - add x5, x0, x3 - ldr w2, [x0,x3] - cmn w2, #1 - bne .L3002 - ldr x1, [x29,112] - str w2, [x29,156] - add x4, x1, 3456 - ldr w1, [x1,3528] - add w1, w1, 1 - str w1, [x4,72] -.L3002: - ldr w0, [x0,x3] + add x2, x0, x8 + ldr w1, [x0,x8] + cmn w1, #1 + bne .L3023 + ldr x0, [x29,160] + str w1, [x29,172] + add x3, x0, 3456 + ldr w0, [x0,3528] + add w0, w0, 1 + str w0, [x3,72] +.L3023: + ldr x0, [x2,16] + ldr w1, [x2,24] + ldr w0, [x0,8] + cmp w1, w0 + beq .L3024 + ldr x0, [x29,160] + str x8, [x29,104] + add x1, x0, 3456 + ldr w0, [x0,3528] + add w0, w0, 1 + str w0, [x1,72] + ldr x7, [x2,8] + ldr x6, [x2,16] + ldr w0, [x7,4] + str w0, [sp] + ldr x0, [x29,112] + ldr w1, [x2,24] + ldr w3, [x6] + ldr w4, [x6,4] + ldr w5, [x6,8] + ldr w2, [x2,4] + ldr w6, [x6,12] + ldr w7, [x7] + bl printk + ldr x8, [x29,104] +.L3024: + add x0, x19, :lo12:.LANCHOR2 + ldr x0, [x0,992] + add x1, x0, x8 + ldr w0, [x0,x8] cmp w0, 256 - bne .L3003 - ldr w0, [x5,4] + bne .L3025 + ldr w0, [x1,4] lsr x0, x0, 10 bl P2V_block_in_plane bl FtlGcRefreshBlock -.L3003: - ldr x0, [x29,160] +.L3025: + ldr x0, [x29,176] add x0, x0, 1 - str x0, [x29,160] - b .L2999 -.L3030: + str x0, [x29,176] + b .L3020 +.L3052: mov w22, 0 - b .L2988 -.L3029: + b .L3009 +.L3051: add x19, x19, :lo12:.LANCHOR2 - ldrh w0, [x19,958] - cbz w0, .L3006 + ldrh w0, [x19,962] + cbz w0, .L3028 mov w0, w23 mov w1, 1 bl ftl_do_gc -.L3006: - ldr w0, [x29,156] -.L2986: - 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], 192 +.L3028: + ldr w0, [x29,172] +.L3007: + sub sp, x29, #16 + ldp x19, x20, [sp,32] + ldp x21, x22, [sp,48] + ldp x23, x24, [sp,64] + ldp x25, x26, [sp,80] + ldp x27, x28, [sp,96] + ldp x29, x30, [sp,16] + add sp, sp, 224 ret .size ftl_read, .-ftl_read .align 2 @@ -19601,22 +19652,22 @@ ftl_read: FtlInit: stp x29, x30, [sp, -48]! mov w0, -1 - adrp x1, .LC140 + adrp x1, .LC138 add x29, sp, 0 str x21, [sp,32] adrp x21, .LANCHOR1 add x21, x21, :lo12:.LANCHOR1 - add x1, x1, :lo12:.LC140 + add x1, x1, :lo12:.LC138 stp x19, x20, [sp,16] adrp x19, .LANCHOR2 adrp x20, .LANCHOR0 - str w0, [x21,3064] + str w0, [x21,3160] adrp x0, .LANCHOR5-132 add x19, x19, :lo12:.LANCHOR2 add x20, x20, :lo12:.LANCHOR0 str wzr, [x0,#:lo12:.LANCHOR5-132] - adrp x0, .LC47 - add x0, x0, :lo12:.LC47 + adrp x0, .LC45 + add x0, x0, :lo12:.LC45 str wzr, [x19,1400] bl printk add x0, x20, 4016 @@ -19626,47 +19677,47 @@ FtlInit: ldrh w0, [x19,752] bl FtlFreeSysBlkQueueInit bl FtlLoadBbt - cbz w0, .L3032 + cbz w0, .L3054 adrp x0, .LC155 add x0, x0, :lo12:.LC155 - b .L3044 -.L3032: + b .L3066 +.L3054: bl FtlSysBlkInit - cbz w0, .L3034 + cbz w0, .L3056 adrp x0, .LC156 add x0, x0, :lo12:.LC156 -.L3044: +.L3066: adrp x1, .LANCHOR3 add x1, x1, :lo12:.LANCHOR3 add x1, x1, 96 bl printk - b .L3033 -.L3034: + b .L3055 +.L3056: mov w1, 1 - str w1, [x21,3064] + str w1, [x21,3160] bl ftl_do_gc ldrh w0, [x19,3600] cmp w0, 15 - bhi .L3035 + bhi .L3057 mov w19, 1024 -.L3036: +.L3058: mov w0, 1 mov w1, w0 bl ftl_do_gc subs w19, w19, #1 - bne .L3036 - b .L3033 -.L3035: + bne .L3058 + b .L3055 +.L3057: ldrb w0, [x20,136] - cbz w0, .L3033 + cbz w0, .L3055 mov w19, 128 -.L3038: +.L3060: mov w0, 1 mov w1, w0 bl ftl_do_gc subs w19, w19, #1 - bne .L3038 -.L3033: + bne .L3060 +.L3055: mov w0, 0 ldr x21, [sp,32] ldp x19, x20, [sp,16] @@ -19693,21 +19744,21 @@ ftl_write: mov x22, x3 str x1, [x29,152] ldr w3, [x2,1400] - cbnz w3, .L3046 + cbnz w3, .L3068 cmp w4, 16 - bne .L3047 + bne .L3069 add w0, w20, 256 mov w1, w21 mov x2, x22 bl FtlVendorPartWrite - b .L3046 -.L3047: + b .L3068 +.L3069: adrp x0, .LANCHOR0+4048 add w24, w20, w21 ldr w1, [x0,#:lo12:.LANCHOR0+4048] mov w0, -1 cmp w24, w1 - bhi .L3046 + bhi .L3068 adrp x5, .LANCHOR5 ldrh w1, [x2,824] add x26, x5, :lo12:.LANCHOR5 @@ -19730,10 +19781,10 @@ ftl_write: ldr w0, [x3,3968] add w0, w21, w0 str w0, [x3,3968] - ldr w3, [x2,968] + ldr w3, [x2,972] cset w0, cs str w0, [x29,204] - cbz w3, .L3049 + cbz w3, .L3071 mov w0, 56 sub w3, w3, #1 umull x3, w3, w0 @@ -19741,7 +19792,7 @@ ftl_write: add x3, x0, x3 ldr w0, [x3,24] cmp w23, w0 - bne .L3050 + bne .L3072 ldr w0, [x2,892] add w0, w0, 1 str w0, [x2,892] @@ -19759,30 +19810,30 @@ ftl_write: mov w2, w25 mov x1, x22 bl ftl_memcpy - cbnz w28, .L3051 + cbnz w28, .L3073 ldr w0, [x26,-124] cmp w0, 2 - bgt .L3051 -.L3084: + bgt .L3073 +.L3106: mov w0, 0 - b .L3046 -.L3051: + b .L3068 +.L3073: add x22, x22, x25 sub w21, w21, w19 add w20, w20, w19 add w23, w23, 1 mov w25, w28 -.L3050: +.L3072: ldr x0, [x29,144] add x0, x0, :lo12:.LANCHOR5 str wzr, [x0,-124] -.L3049: +.L3071: ldr w1, [x29,200] mov w0, w23 bl FtlCacheMetchLpa - cbz w0, .L3052 + cbz w0, .L3074 bl FtlCacheWriteBack -.L3052: +.L3074: ldr x0, [x29,144] ldr x1, [x29,152] add x0, x0, :lo12:.LANCHOR5 @@ -19795,51 +19846,51 @@ ftl_write: add x0, x0, :lo12:.LC157 str x19, [x29,176] str x0, [x29,96] -.L3053: - cbz w25, .L3113 +.L3075: + cbz w25, .L3135 ldrh w0, [x19,4] - cbnz w0, .L3054 + cbnz w0, .L3076 ldr x1, [x29,176] adrp x26, .LANCHOR1 cmp x19, x1 - bne .L3055 + bne .L3077 add x0, x24, 3656 ldrh w19, [x0,4] - cbnz w19, .L3056 + cbnz w19, .L3078 bl allocate_new_data_superblock add x0, x26, :lo12:.LANCHOR1 - str w19, [x0,3072] -.L3056: + str w19, [x0,3168] +.L3078: ldr x0, [x29,176] add x26, x26, :lo12:.LANCHOR1 add x19, x24, 3656 bl allocate_new_data_superblock - ldr w0, [x26,3072] - cbnz w0, .L3057 -.L3058: + ldr w0, [x26,3168] + cbnz w0, .L3079 +.L3080: ldr x19, [x29,176] - b .L3057 -.L3055: + b .L3079 +.L3077: add x26, x26, :lo12:.LANCHOR1 - str w0, [x26,3072] + str w0, [x26,3168] ldr x0, [x29,176] ldrh w0, [x0,4] - cbnz w0, .L3058 + cbnz w0, .L3080 mov x0, x19 bl allocate_new_data_superblock -.L3057: +.L3079: ldrh w0, [x19,4] - cbnz w0, .L3059 + cbnz w0, .L3081 mov x0, x19 bl allocate_new_data_superblock -.L3059: +.L3081: ldr x0, [x29,144] add x0, x0, :lo12:.LANCHOR5 str x19, [x0,-144] -.L3054: - ldr w0, [x24,964] +.L3076: + ldr w0, [x24,968] mov x28, 0 - ldr w2, [x24,968] + ldr w2, [x24,972] ldrh w1, [x19,4] sub w0, w0, w2 cmp w1, w0 @@ -19852,28 +19903,28 @@ ftl_write: str w0, [x29,108] add w0, w21, w20 str w0, [x29,136] -.L3060: +.L3082: ldr w1, [x29,192] mov w0, w28 add w27, w1, w28 ldr w1, [x29,140] cmp w28, w1 - bcs .L3114 + bcs .L3136 ldrh w1, [x19,4] - cbz w1, .L3090 + cbz w1, .L3112 ldr w1, [x29,200] cmp w27, w1 cset w7, eq - cbz w0, .L3062 + cbz w0, .L3084 ldr w1, [x29,108] tst w7, w1 - beq .L3062 + beq .L3084 ldrh w1, [x24,824] ldr w2, [x29,136] msub w2, w27, w1, w2 cmp w2, w1 - bne .L3090 -.L3062: + bne .L3112 +.L3084: add x1, x29, 212 mov w2, 0 mov w0, w27 @@ -19881,7 +19932,7 @@ ftl_write: bl log2phys mov x0, x19 bl get_new_active_ppa - ldr w6, [x24,968] + ldr w6, [x24,972] mov w5, 56 ldr x2, [x24,1032] str x5, [x29,184] @@ -19912,10 +19963,10 @@ ftl_write: cmp w27, w23 cset w0, eq str w0, [x29,196] - cbnz w0, .L3093 + cbnz w0, .L3115 ldr x7, [x29,160] ldr x5, [x29,184] - cbz w7, .L3063 + cbz w7, .L3085 ldr w0, [x29,136] ldrh w2, [x24,824] msub w2, w27, w2, w0 @@ -19923,8 +19974,8 @@ ftl_write: str w0, [x29,184] ldr w0, [x29,196] str w0, [x29,160] - b .L3066 -.L3093: + b .L3088 +.L3115: ldrh w2, [x24,824] udiv w0, w20, w2 msub w0, w0, w2, w20 @@ -19933,42 +19984,42 @@ ftl_write: cmp w2, w21 csel w0, w2, w21, ls str w0, [x29,184] -.L3066: +.L3088: ldrh w0, [x24,824] ldr w1, [x29,184] cmp w1, w0 - bne .L3067 + bne .L3089 ldr w0, [x29,196] mov x1, x22 - cbnz w0, .L3068 + cbnz w0, .L3090 ldr w0, [x29,184] mul w1, w0, w27 sub w1, w1, w20 ubfiz x1, x1, 9, 23 add x1, x22, x1 -.L3068: +.L3090: ldr w2, [x29,204] mov w0, 56 - cbz w2, .L3069 - ldr w2, [x24,968] + cbz w2, .L3091 + ldr w2, [x24,972] umull x0, w2, w0 ldr x2, [x24,1032] add x0, x2, x0 - b .L3110 -.L3069: - ldr w2, [x24,968] + b .L3132 +.L3091: + ldr w2, [x24,972] umull x0, w2, w0 ldr x2, [x24,1032] add x0, x2, x0 ldr x0, [x0,8] - b .L3111 -.L3067: + b .L3133 +.L3089: ldr w0, [x29,212] cmn w0, #1 - beq .L3071 + beq .L3093 str w0, [x29,220] mov w1, 56 - ldr w0, [x24,968] + ldr w0, [x24,972] mov w2, 0 str w27, [x29,240] umull x0, w0, w1 @@ -19983,17 +20034,17 @@ ftl_write: bl FlashReadPages ldr w0, [x29,216] cmn w0, #1 - bne .L3072 + bne .L3094 ldr x0, [x29,112] add x0, x0, :lo12:.LANCHOR4 ldr w1, [x0,3528] add w1, w1, 1 str w1, [x0,3528] - b .L3074 -.L3072: + b .L3096 +.L3094: ldr w0, [x26,8] cmp w0, w27 - beq .L3074 + beq .L3096 ldr x0, [x29,112] mov w2, w27 add x0, x0, :lo12:.LANCHOR4 @@ -20003,9 +20054,9 @@ ftl_write: ldr x0, [x29,96] ldr w1, [x26,8] bl printk - b .L3074 -.L3071: - ldr w0, [x24,968] + b .L3096 +.L3093: + ldr w0, [x24,972] mov w1, 56 ldrh w2, [x24,828] umull x0, w0, w1 @@ -20014,13 +20065,13 @@ ftl_write: mov w1, 0 ldr x0, [x0,8] bl ftl_memset -.L3074: +.L3096: ldr w1, [x29,184] mov w0, 56 lsl w2, w1, 9 ldr w1, [x29,196] - cbz w1, .L3075 - ldr w1, [x24,968] + cbz w1, .L3097 + ldr w1, [x24,972] umull x0, w1, w0 ldr x1, [x24,1032] add x1, x1, x0 @@ -20029,9 +20080,9 @@ ftl_write: ldr x1, [x1,8] add x0, x1, x0 mov x1, x22 - b .L3112 -.L3075: - ldr w1, [x24,968] + b .L3134 +.L3097: + ldr w1, [x24,972] umull x0, w1, w0 ldr x1, [x24,1032] add x0, x1, x0 @@ -20041,12 +20092,12 @@ ftl_write: sub w1, w1, w20 ubfiz x1, x1, 9, 23 add x1, x22, x1 - b .L3112 -.L3063: + b .L3134 +.L3085: ldr w0, [x29,204] ldrh w1, [x24,824] - ldr w2, [x24,968] - cbz w0, .L3076 + ldr w2, [x24,972] + cbz w0, .L3098 mul w1, w27, w1 umull x0, w2, w5 sub w1, w1, w20 @@ -20054,10 +20105,10 @@ ftl_write: ubfiz x1, x1, 9, 23 add x0, x2, x0 add x1, x22, x1 -.L3110: +.L3132: str x1, [x0,8] - b .L3070 -.L3076: + b .L3092 +.L3098: umull x0, w2, w5 ldr x2, [x24,1032] mul w1, w27, w1 @@ -20066,11 +20117,11 @@ ftl_write: ubfiz x1, x1, 9, 23 ldr x0, [x0,8] add x1, x22, x1 -.L3111: +.L3133: ldrh w2, [x24,828] -.L3112: +.L3134: bl ftl_memcpy -.L3070: +.L3092: ldr x1, [x29,120] mov w0, -3947 ldr x2, [x29,128] @@ -20087,36 +20138,36 @@ ftl_write: str w0, [x26,12] ldrh w0, [x19] strh w0, [x26,2] - ldr w0, [x24,968] + ldr w0, [x24,972] add w0, w0, 1 - str w0, [x24,968] - b .L3060 -.L3114: + str w0, [x24,972] + b .L3082 +.L3136: str w27, [x29,192] mov x0, x1 - b .L3061 -.L3090: + b .L3083 +.L3112: str w27, [x29,192] -.L3061: +.L3083: sub w25, w25, w0 ldr w0, [x29,204] - cbnz w0, .L3080 - ldr w1, [x24,968] - ldr w0, [x24,964] + cbnz w0, .L3102 + ldr w1, [x24,972] + ldr w0, [x24,968] cmp w1, w0 - bcs .L3080 + bcs .L3102 ldrh w0, [x19,4] - cbz w0, .L3080 -.L3082: + cbz w0, .L3102 +.L3104: str wzr, [x29,204] - b .L3053 -.L3080: + b .L3075 +.L3102: bl FtlCacheWriteBack - str wzr, [x24,968] + str wzr, [x24,972] cmp w25, 1 - bhi .L3053 - b .L3082 -.L3113: + bhi .L3075 + b .L3104 +.L3135: ldr w1, [x29,200] mov w0, w25 sub w1, w1, w23 @@ -20125,23 +20176,23 @@ ftl_write: add x0, x0, :lo12:.LANCHOR2 ldrh w1, [x0,3600] cmp w1, 31 - bhi .L3084 + bhi .L3106 mov w1, 128 mov w19, 16 - strh w1, [x0,954] - strh w1, [x0,952] -.L3085: + strh w1, [x0,958] + strh w1, [x0,956] +.L3107: mov w0, 0 mov w1, 1 bl ftl_do_gc ldr x0, [x29,152] add x0, x0, :lo12:.LANCHOR2 ldr w0, [x0,1400] - cbnz w0, .L3084 + cbnz w0, .L3106 subs w19, w19, #1 - bne .L3085 - b .L3084 -.L3046: + bne .L3107 + b .L3106 +.L3068: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -20193,7 +20244,7 @@ ftl_fix_nand_power_lost_error: stp x21, x22, [sp,32] stp x23, x24, [sp,48] stp x25, x26, [sp,64] - cbz w0, .L3117 + cbz w0, .L3139 adrp x21, .LANCHOR4 adrp x19, .LANCHOR2 add x0, x21, :lo12:.LANCHOR4 @@ -20217,17 +20268,17 @@ ftl_fix_nand_power_lost_error: bl allocate_new_data_superblock mov x0, x25 bl allocate_new_data_superblock -.L3119: +.L3141: subs w20, w20, #1 - beq .L3123 + beq .L3145 mov w0, 1 mov w1, w0 bl ftl_do_gc add x0, x19, :lo12:.LANCHOR2 ldr x0, [x0,1184] ldrh w0, [x0,x22] - cbnz w0, .L3119 -.L3123: + cbnz w0, .L3141 +.L3145: add x20, x19, :lo12:.LANCHOR2 add x0, x24, :lo12:.LC158 mov w1, w23 @@ -20236,7 +20287,7 @@ ftl_fix_nand_power_lost_error: bl printk ldr x0, [x20,1184] ldrh w0, [x0,x22] - cbnz w0, .L3121 + cbnz w0, .L3143 add x0, x29, 80 strh w23, [x29,80] bl make_superblock @@ -20245,14 +20296,14 @@ ftl_fix_nand_power_lost_error: mov w6, 65535 mov w20, w0 mov w7, 56 -.L3124: +.L3146: cmp w5, w0, uxth - bls .L3131 + bls .L3153 add x1, x29, 80 add x1, x1, x0, lsl 1 ldrh w2, [x1,16] cmp w2, w6 - beq .L3125 + beq .L3147 add x4, x19, :lo12:.LANCHOR2 lsl w2, w2, 10 umull x1, w20, w7 @@ -20265,10 +20316,10 @@ ftl_fix_nand_power_lost_error: add x1, x2, x1 str xzr, [x1,8] str xzr, [x1,16] -.L3125: +.L3147: add x0, x0, 1 - b .L3124 -.L3131: + b .L3146 +.L3153: add x19, x19, :lo12:.LANCHOR2 adrp x0, .LC159 mov w1, w23 @@ -20284,11 +20335,11 @@ ftl_fix_nand_power_lost_error: mov w1, 1 mov w2, w20 bl FlashEraseBlocks -.L3121: +.L3143: add x21, x21, :lo12:.LANCHOR4 mov w0, -1 strh w0, [x21,4058] -.L3117: +.L3139: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -20353,6 +20404,8 @@ ftl_fix_nand_power_lost_error: .global g_gc_bad_block_temp_tbl .global g_gc_bad_block_gc_index .global g_gc_bad_block_temp_num + .global g_gc_next_blk_3 + .global g_gc_next_blk_2 .global g_gc_next_blk_1 .global g_gc_next_blk .global g_gc_cur_blk_max_valid_pages @@ -20522,33 +20575,33 @@ ftl_fix_nand_power_lost_error: .section .rodata .align 3 .LANCHOR3 = . + 0 - .type __func__.19448, %object - .size __func__.19448, 11 -__func__.19448: + .type __func__.19520, %object + .size __func__.19520, 11 +__func__.19520: .string "FtlMemInit" .zero 5 - .type __func__.20195, %object - .size __func__.20195, 12 -__func__.20195: + .type __func__.20261, %object + .size __func__.20261, 12 +__func__.20261: .string "FtlCheckVpc" .zero 4 - .type __func__.20228, %object - .size __func__.20228, 17 -__func__.20228: + .type __func__.20293, %object + .size __func__.20293, 17 +__func__.20293: .string "FtlDumpBlockInfo" .zero 7 - .type __func__.20247, %object - .size __func__.20247, 16 -__func__.20247: + .type __func__.20312, %object + .size __func__.20312, 16 +__func__.20312: .string "FtlScanAllBlock" - .type __func__.20495, %object - .size __func__.20495, 21 -__func__.20495: + .type __func__.20560, %object + .size __func__.20560, 21 +__func__.20560: .string "FtlVpcCheckAndModify" .zero 3 - .type __func__.19521, %object - .size __func__.19521, 8 -__func__.19521: + .type __func__.19593, %object + .size __func__.19593, 8 +__func__.19593: .string "FtlInit" .section .rodata.str1.1,"aMS",%progbits,1 .LC0: @@ -20620,243 +20673,243 @@ __func__.19521: .LC33: .string "FtlBbmTblFlush error = %x error count = %d\n" .LC34: - .string "remove_from_free_sys_Queue %x\n" -.LC35: .string "FtlFreeSysBlkQueueOut free count = %d\n" -.LC36: +.LC35: .string "FtlFreeSysBlkQueueOut = %x, free count = %d, error\n" -.LC37: +.LC36: .string "FtlFreeSysBlkQueueOut = %x, free count = %d\n" -.LC38: +.LC37: .string "FtlMapWritePage error = %x\n" -.LC39: +.LC38: .string "FtlMapWritePage error = %x error count = %d\n" -.LC40: - .string "ftl_map_blk_gc blk info: %x %x %x\n" -.LC41: +.LC39: .string "page map lost: %x %x\n" +.LC40: + .string "region_id = %x phyAddr = %x\n" +.LC41: + .string "map_ppn:" .LC42: .string "load_l2p_region refresh = %x phyAddr = %x\n" .LC43: - .string "region_id = %x phyAddr = %x\n" -.LC44: - .string "map_ppn:" -.LC45: .string "FtlVendorPartRead refresh = %x phyAddr = %x\n" -.LC46: +.LC44: .string "FtlVpcTblFlush error = %x error count = %d\n" -.LC47: +.LC45: .string "%s\n" -.LC48: +.LC46: .string "no ect" -.LC49: +.LC47: .string "...%s enter...\n" -.LC50: +.LC48: .string "vpc1" -.LC51: +.LC49: .string "vpc2" -.LC52: +.LC50: .string "FtlCheckVpc2 %x = %x %x\n" -.LC53: +.LC51: .string "free blk vpc error %x = %x %x\n" -.LC54: +.LC52: .string "id = %x,%x addr= %x,spare= %x %x %x %x data = %x\n" -.LC55: +.LC53: .string ":" -.LC56: +.LC54: .string "Ftlscanalldata = %x\n" -.LC57: +.LC55: .string "scan lpa = %x ppa= %x\n" -.LC58: +.LC56: .string "lba = %x,addr= %x,spare= %x %x %x %x data=%x %x\n" -.LC59: +.LC57: .string "phyBlk = %x,addr= %x,spare= %x %x %x %x data=%x %x\n" -.LC60: +.LC58: .string "id = %x,%x addr= %x,spare= %x %x %x %x data=%x %x\n" -.LC61: +.LC59: .string "Mblk:" -.LC62: +.LC60: .string "L2P:" -.LC63: +.LC61: .string "L2PC:" -.LC64: +.LC62: .string "superBlkID = %x vpc=%x\n" -.LC65: +.LC63: .string "flashmode = %x pagenum = %x %x\n" -.LC66: +.LC64: .string "blk = %x vpc=%x mode = %x\n" -.LC67: +.LC65: .string "mlc id = %x,%x addr= %x,spare= %x %x %x %x data=%x %x\n" -.LC68: +.LC66: .string "slc id = %x,%x addr= %x,spare= %x %x %x %x data=%x %x\n" -.LC69: +.LC67: .string "slc mode" -.LC70: +.LC68: .string "FLASH INFO:\n" -.LC71: +.LC69: .string "FLASH ID: %x\n" -.LC72: +.LC70: .string "Device Capacity: %d MB\n" -.LC73: +.LC71: .string "FMWAIT: %x %x %x %x\n" -.LC74: +.LC72: .string "FTL INFO:\n" -.LC75: +.LC73: .string "g_MaxLpn = 0x%x\n" -.LC76: +.LC74: .string "g_VaildLpn = 0x%x\n" -.LC77: +.LC75: .string "read_page_count = 0x%x\n" -.LC78: +.LC76: .string "discard_page_count = 0x%x\n" -.LC79: +.LC77: .string "write_page_count = 0x%x\n" -.LC80: +.LC78: .string "cache_write_count = 0x%x\n" -.LC81: +.LC79: .string "l2p_write_count = 0x%x\n" -.LC82: +.LC80: .string "gc_page_count = 0x%x\n" -.LC83: +.LC81: .string "totle_write = %d MB\n" -.LC84: +.LC82: .string "totle_read = %d MB\n" -.LC85: +.LC83: .string "GSV = 0x%x\n" -.LC86: +.LC84: .string "GDV = 0x%x\n" -.LC87: +.LC85: .string "bad blk num = %d %d\n" -.LC88: +.LC86: .string "free_superblocks = 0x%x\n" -.LC89: +.LC87: .string "mlc_EC = 0x%x\n" -.LC90: +.LC88: .string "slc_EC = 0x%x\n" -.LC91: +.LC89: .string "avg_EC = 0x%x\n" -.LC92: +.LC90: .string "sys_EC = 0x%x\n" -.LC93: +.LC91: .string "max_EC = 0x%x\n" -.LC94: +.LC92: .string "min_EC = 0x%x\n" -.LC95: +.LC93: .string "PLT = 0x%x\n" -.LC96: +.LC94: .string "POT = 0x%x\n" -.LC97: +.LC95: .string "MaxSector = 0x%x\n" -.LC98: +.LC96: .string "init_sys_blks_pp = 0x%x\n" -.LC99: +.LC97: .string "sys_blks_pp = 0x%x\n" -.LC100: +.LC98: .string "free sysblock = 0x%x\n" -.LC101: +.LC99: .string "data_blks_pp = 0x%x\n" -.LC102: +.LC100: .string "data_op_blks_pp = 0x%x\n" -.LC103: +.LC101: .string "max_data_blks = 0x%x\n" -.LC104: +.LC102: .string "Sys.id = 0x%x\n" -.LC105: +.LC103: .string "Bbt.id = 0x%x\n" -.LC106: +.LC104: .string "ACT.page = 0x%x\n" -.LC107: +.LC105: .string "ACT.plane = 0x%x\n" -.LC108: +.LC106: .string "ACT.id = 0x%x\n" -.LC109: +.LC107: .string "ACT.mode = 0x%x\n" -.LC110: +.LC108: .string "ACT.a_pages = 0x%x\n" -.LC111: +.LC109: .string "ACT VPC = 0x%x\n" -.LC112: +.LC110: .string "BUF.page = 0x%x\n" -.LC113: +.LC111: .string "BUF.plane = 0x%x\n" -.LC114: +.LC112: .string "BUF.id = 0x%x\n" -.LC115: +.LC113: .string "BUF.mode = 0x%x\n" -.LC116: +.LC114: .string "BUF.a_pages = 0x%x\n" -.LC117: +.LC115: .string "BUF VPC = 0x%x\n" -.LC118: +.LC116: .string "TMP.page = 0x%x\n" -.LC119: +.LC117: .string "TMP.plane = 0x%x\n" -.LC120: +.LC118: .string "TMP.id = 0x%x\n" -.LC121: +.LC119: .string "TMP.mode = 0x%x\n" -.LC122: +.LC120: .string "TMP.a_pages = 0x%x\n" -.LC123: +.LC121: .string "GC.page = 0x%x\n" -.LC124: +.LC122: .string "GC.plane = 0x%x\n" -.LC125: +.LC123: .string "GC.id = 0x%x\n" -.LC126: +.LC124: .string "GC.mode = 0x%x\n" -.LC127: +.LC125: .string "GC.a_pages = 0x%x\n" -.LC128: +.LC126: .string "WR_CHK = 0x%x %x %x %x\n" -.LC129: +.LC127: .string "Read Err = 0x%x\n" -.LC130: +.LC128: .string "Prog Err = 0x%x\n" -.LC131: +.LC129: .string "gc_free_blk_th= 0x%x\n" -.LC132: +.LC130: .string "gc_merge_free_blk_th= 0x%x\n" -.LC133: +.LC131: .string "gc_skip_write_count= 0x%x\n" -.LC134: +.LC132: .string "gc_blk_index= 0x%x\n" -.LC135: +.LC133: .string "free min EC= 0x%x\n" -.LC136: +.LC134: .string "free max EC= 0x%x\n" -.LC137: +.LC135: .string "GC__SB VPC = 0x%x\n" -.LC138: +.LC136: .string "%d. [0x%x]=0x%x 0x%x 0x%x\n" -.LC139: +.LC137: .string "free %d. [0x%x] 0x%x 0x%x\n" -.LC140: - .string "FTL version: 5.0.48 20180703" -.LC141: +.LC138: + .string "FTL version: 5.0.50 20180905" +.LC139: .string "swblk %x ,avg = %x max= %x vpc= %x,ec=%x ,max ec=%x\n" -.LC142: +.LC140: .string "FtlGcScanTempBlkError ID %x %x!!!!!!!\n" -.LC143: +.LC141: .string "FtlGcRefreshBlock 0x%x\n" -.LC144: +.LC142: .string "FtlGcMarkBadPhyBlk %d 0x%x\n" -.LC145: +.LC143: .string "FtlGcFreeBadSuperBlk 0x%x\n" -.LC146: +.LC144: .string "decrement_vpc_count %x = %d\n" -.LC147: +.LC145: + .string "decrement_vpc_count %x = %d in free list\n" +.LC146: .string "RSB refresh addr %x\n" -.LC148: +.LC147: .string "spuer block %x vpn is 0\n " -.LC149: +.LC148: .string "g_recovery_ppa %x ver %x\n " -.LC150: +.LC149: .string "FtlCheckVpc %x = %x %x\n" -.LC151: +.LC150: .string "%d GC datablk = %x vpc %x %x\n" -.LC152: +.LC151: .string "SWL %x, FSB = %x vpc= %x,ec=%x th=%x\n" +.LC152: + .string "g_gc_superblock_free %x %x %x %x %x\n" .LC153: .string "Ftlwrite decrement_vpc_count %x = %d\n" .LC154: @@ -21031,7 +21084,7 @@ gNandParaInfo: .byte 0 .zero 4 .type NandFlashParaTbl, %object - .size NandFlashParaTbl, 2368 + .size NandFlashParaTbl, 2464 NandFlashParaTbl: .byte 6 .byte 44 @@ -21605,6 +21658,58 @@ NandFlashParaTbl: .byte 0 .byte 0 .zero 4 + .byte 5 + .byte 44 + .byte -124 + .byte -60 + .byte 52 + .byte -86 + .byte 0 + .byte 4 + .byte 1 + .byte 32 + .hword 512 + .byte 2 + .byte 1 + .hword 2184 + .hword 1479 + .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 -124 + .byte 68 + .byte 52 + .byte -92 + .byte 0 + .byte 4 + .byte 1 + .byte 32 + .hword 512 + .byte 2 + .byte 1 + .hword 2184 + .hword 1479 + .byte 5 + .byte 19 + .byte 60 + .byte 32 + .byte 1 + .byte 0 + .byte 1 + .byte 0 + .byte 1 + .byte 0 + .zero 4 .byte 6 .byte -83 .byte -34 @@ -22125,6 +22230,32 @@ NandFlashParaTbl: .byte 0 .byte 0 .zero 4 + .byte 5 + .byte -119 + .byte 100 + .byte 100 + .byte 60 + .byte -95 + .byte 0 + .byte 7 + .byte 1 + .byte 32 + .hword 512 + .byte 2 + .byte 1 + .hword 1024 + .hword 455 + .byte 3 + .byte 17 + .byte 40 + .byte 32 + .byte 1 + .byte 0 + .byte 1 + .byte 0 + .byte 0 + .byte 0 + .zero 4 .byte 6 .byte -104 .byte -41 @@ -23819,6 +23950,14 @@ g_gc_next_blk: .type g_gc_next_blk_1, %object .size g_gc_next_blk_1, 2 g_gc_next_blk_1: + .zero 2 + .type g_gc_next_blk_2, %object + .size g_gc_next_blk_2, 2 +g_gc_next_blk_2: + .zero 2 + .type g_gc_next_blk_3, %object + .size g_gc_next_blk_3, 2 +g_gc_next_blk_3: .zero 2 .type g_gc_free_blk_threshold, %object .size g_gc_free_blk_threshold, 2 @@ -23851,7 +23990,6 @@ c_wr_page_buf_num: .type g_wr_page_num, %object .size g_wr_page_num, 4 g_wr_page_num: - .zero 4 .zero 4 .type p_gc_blk_tbl, %object .size p_gc_blk_tbl, 8 diff --git a/drivers/rk_nand/rk_nand_blk.c b/drivers/rk_nand/rk_nand_blk.c index 967ec4ed2562..1f24efbd69ba 100644 --- a/drivers/rk_nand/rk_nand_blk.c +++ b/drivers/rk_nand/rk_nand_blk.c @@ -633,6 +633,13 @@ static int nand_remove_dev(struct nand_blk_dev *dev) int nand_blk_add_whole_disk(void) { + struct nand_part part; + + part.offset = 0; + part.size = rk_ftl_get_capacity(); + part.type = 0; + strncpy(part.name, "rknand", sizeof(part.name)); + nand_add_dev(&mytr, &part); return 0; } diff --git a/drivers/rk_nand/rk_zftl_arm64.S b/drivers/rk_nand/rk_zftl_arm64.S index f1af25e7078a..1afe30373e59 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-07-18 + * date: 2018-09-08 * function: rk ftl v5 for rockchip soc base on arm v8 to support 3D/2D * TLC and MLC. */ @@ -713,8 +713,8 @@ zftl_get_gc_node.part.12: .size zftl_get_gc_node.part.12, .-zftl_get_gc_node.part.12 .section .text.unlikely .align 2 - .type rk_simple_strtoull.constprop.31, %function -rk_simple_strtoull.constprop.31: + .type rk_simple_strtoull.constprop.29, %function +rk_simple_strtoull.constprop.29: stp x29, x30, [sp, -64]! add x29, sp, 0 stp x19, x20, [sp,16] @@ -773,7 +773,7 @@ rk_simple_strtoull.constprop.31: ldp x21, x22, [sp,32] ldp x29, x30, [sp], 64 ret - .size rk_simple_strtoull.constprop.31, .-rk_simple_strtoull.constprop.31 + .size rk_simple_strtoull.constprop.29, .-rk_simple_strtoull.constprop.29 .text .align 2 .global nand_flash_print_info @@ -1528,7 +1528,7 @@ flash_wait_device_ready_raw: adrp x1, .LANCHOR1 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR1 - mov w2, 602 + mov w2, 606 add x1, x1, 240 add x0, x0, :lo12:.LC0 bl printk @@ -1960,7 +1960,7 @@ flash_start_page_read: adrp x1, .LANCHOR1 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR1 - mov w2, 744 + mov w2, 748 add x1, x1, 688 add x0, x0, :lo12:.LC0 bl printk @@ -2039,7 +2039,7 @@ flash_start_plane_read: adrp x1, .LANCHOR1 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR1 - mov w2, 839 + mov w2, 843 add x1, x1, 712 add x0, x0, :lo12:.LC0 bl printk @@ -2647,7 +2647,7 @@ flash_erase_duplane_block: adrp x1, .LANCHOR1 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR1 - mov w2, 513 + mov w2, 517 add x1, x1, 736 add x0, x0, :lo12:.LC0 bl printk @@ -2746,29 +2746,29 @@ flash_erase_block_en: add x29, sp, 0 stp x19, x20, [sp,16] adrp x19, .LANCHOR0 - uxtb w20, w0 - add x0, x19, :lo12:.LANCHOR0 - str x25, [sp,64] stp x23, x24, [sp,48] + uxtb w23, w0 + add x0, x19, :lo12:.LANCHOR0 stp x21, x22, [sp,32] - uxtb w24, w1 + stp x25, x26, [sp,64] mov w22, w2 + uxtb w26, w1 ldrb w0, [x0,633] - and w23, w2, 2097151 - cmp w0, w20 + and w24, w2, 2097151 + cmp w0, w23 bhi .L494 adrp x1, .LANCHOR1 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR1 - mov w2, 558 + mov w2, 562 add x1, x1, 768 add x0, x0, :lo12:.LC0 bl printk bl dump_stack .L494: add x0, x19, :lo12:.LANCHOR0 - add x20, x0, x20, sxtw - ldrb w21, [x20,736] + add x1, x0, x23, sxtw + ldrb w21, [x1,736] ldr x25, [x0,536] adrp x0, .LANCHOR2 mov x20, x21 @@ -2780,13 +2780,14 @@ flash_erase_block_en: mov w1, w20 add x0, x0, :lo12:.LC43 mov w2, w22 + mov w3, w26 bl printk .L495: bl nandc_wait_flash_ready mov w0, w20 bl nandc_cs mov w0, w20 - cbnz w24, .L496 + cbnz w26, .L496 bl zftl_flash_enter_slc_mode b .L497 .L496: @@ -2798,9 +2799,9 @@ flash_erase_block_en: str w0, [x3,2056] and w0, w22, 255 str w0, [x3,2052] - lsr w0, w23, 8 + lsr w0, w24, 8 str w0, [x3,2052] - lsr w0, w23, 16 + lsr w0, w24, 16 str w0, [x3,2052] mov w0, 208 str w0, [x3,2056] @@ -2817,16 +2818,17 @@ flash_erase_block_en: add x19, x19, :lo12:.LANCHOR0 adrp x0, .LC44 add x0, x0, :lo12:.LC44 - mov w2, w20 - ldrh w1, [x19,2] - udiv w1, w22, w1 + mov w1, w23 + mov w3, w20 + ldrh w2, [x19,2] + udiv w2, w22, w2 bl printk .L498: mov w0, w20 - 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 x29, x30, [sp], 80 ret .size flash_erase_block_en, .-flash_erase_block_en @@ -6536,19 +6538,24 @@ ftl_vpn_decrement: cmp w1, w0 adrp x2, .LANCHOR0 beq .L1069 - add x0, x2, :lo12:.LANCHOR0 - ubfiz x3, x1, 1, 16 - ldr x0, [x0,600] - ldrh w19, [x0,x3] + add x5, x2, :lo12:.LANCHOR0 + uxtw x0, w1 + lsl x3, x0, 1 + ldr x4, [x5,600] + ldrh w19, [x4,x3] cbnz w19, .L1070 - adrp x0, .LC102 + ldr x2, [x5,584] + add x0, x2, x0, lsl 2 mov w2, w19 + ldrb w3, [x0,2] + adrp x0, .LC102 add x0, x0, :lo12:.LC102 + ubfx x3, x3, 5, 3 bl printk b .L1076 .L1070: sub w19, w19, #1 - strh w19, [x0,x3] + strh w19, [x4,x3] .L1069: add x19, x2, :lo12:.LANCHOR0 mov w0, 0 @@ -7899,24 +7906,18 @@ zftl_read_flash_info: bl ftl_memset adrp x1, .LANCHOR2 adrp x0, .LANCHOR0 - add x1, x1, :lo12:.LANCHOR2 add x0, x0, :lo12:.LANCHOR0 + add x1, x1, :lo12:.LANCHOR2 add x1, x1, 376 + strb wzr, [x19,10] mov w5, 1 ldrb w2, [x1,9] ldrh w3, [x0,2] mul w2, w2, w3 - ldrb w3, [x0,724] - strb w3, [x19,7] - uxth w2, w2 strh w2, [x19,4] - ldrb w3, [x1,13] - mul w2, w3, w2 - ldrh w3, [x1,14] - strb wzr, [x19,10] - mul w2, w2, w3 - ldrb w3, [x1,8] - mul w2, w2, w3 + ldrb w2, [x0,724] + strb w2, [x19,7] + ldr w2, [x0,520] str w2, [x19] ldrb w2, [x1,9] strb w2, [x19,6] @@ -9443,20 +9444,6 @@ rknand_proc_ftlread: ret .size rknand_proc_ftlread, .-rknand_proc_ftlread .align 2 - .global FtlWrite - .type FtlWrite, %function -FtlWrite: - adrp x4, .LANCHOR4+1176 - uxtb w0, w0 - stp x29, x30, [sp, -16]! - add x29, sp, 0 - ldr x4, [x4,#:lo12:.LANCHOR4+1176] - ldr x4, [x4,48] - blr x4 - ldp x29, x30, [sp], 16 - ret - .size FtlWrite, .-FtlWrite - .align 2 .global FtlRead .type FtlRead, %function FtlRead: @@ -9532,42 +9519,42 @@ rknand_print_hex: add x23, x23, :lo12:.LC129 add x21, x21, :lo12:.LC130 add x24, x24, :lo12:.LC1 -.L1507: +.L1506: cmp x19, x26 - beq .L1515 - cbnz w20, .L1508 + beq .L1514 + cbnz w20, .L1507 mov x0, x23 mov x1, x27 mov x2, x22 mov w3, w19 bl printk -.L1508: +.L1507: cmp w25, 4 mov x0, x21 - bne .L1509 + bne .L1508 ldr w1, [x22,x19,lsl 2] - b .L1514 -.L1509: + b .L1513 +.L1508: cmp w25, 2 - bne .L1511 + bne .L1510 ldrsh w1, [x22,x19,lsl 1] - b .L1514 -.L1511: + b .L1513 +.L1510: ldrb w1, [x22,x19] -.L1514: +.L1513: bl printk add w20, w20, 1 cmp w20, 15 - bls .L1512 + bls .L1511 adrp x1, .LC131 mov x0, x24 add x1, x1, :lo12:.LC131 mov w20, 0 bl printk -.L1512: +.L1511: add x19, x19, 1 - b .L1507 -.L1515: + b .L1506 +.L1514: adrp x0, .LC1 adrp x1, .LC131 add x1, x1, :lo12:.LC131 @@ -9610,30 +9597,30 @@ hynix_get_read_retry_default: add x26, x27, 128 strb w1, [x27,130] strb w0, [x27,131] - bne .L1517 + bne .L1516 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 .L1572 -.L1517: + b .L1571 +.L1516: cmp w25, 3 - bne .L1519 + bne .L1518 mov x4, 0 -.L1520: +.L1519: sub w0, w4, #80 strb w0, [x26,x4] add x4, x4, 1 cmp x4, 8 - bne .L1520 + bne .L1519 mov w21, w4 mov w28, w4 - b .L1518 -.L1519: + b .L1517 +.L1518: cmp w25, 4 - bne .L1521 + bne .L1520 mov w4, -52 strb w4, [x27,128] mov w4, -65 @@ -9649,10 +9636,10 @@ hynix_get_read_retry_default: strb w1, [x27,134] strb w4, [x27,132] strb w0, [x27,135] - b .L1518 -.L1521: + b .L1517 +.L1520: cmp w25, 5 - bne .L1522 + bne .L1521 mov w0, 56 strb w0, [x27,128] mov w0, 57 @@ -9662,10 +9649,10 @@ hynix_get_read_retry_default: strb w0, [x27,130] mov w0, 59 strb w0, [x27,131] - b .L1606 -.L1522: + b .L1605 +.L1521: cmp w25, 6 - bne .L1523 + bne .L1522 mov w0, 14 strb w0, [x27,128] mov w0, 15 @@ -9675,32 +9662,32 @@ hynix_get_read_retry_default: strb w0, [x27,130] mov w0, 17 strb w0, [x27,131] - b .L1606 -.L1523: + b .L1605 +.L1522: cmp w25, 7 - bne .L1572 + bne .L1571 mov x0, 0 -.L1524: +.L1523: sub w1, w0, #80 strb w1, [x26,x0] add x0, x0, 1 cmp x0, 8 - bne .L1524 + bne .L1523 mov w0, -44 mov w21, 12 strb w0, [x27,136] mov w28, 10 mov w0, -43 strb w0, [x27,137] - b .L1518 -.L1572: + b .L1517 +.L1571: mov w21, 7 -.L1606: +.L1605: mov w28, 4 -.L1518: +.L1517: sub w0, w25, #1 cmp w0, 1 - bhi .L1603 + bhi .L1602 ldr x0, [x29,128] adrp x24, .LANCHOR2 add x24, x24, :lo12:.LANCHOR2 @@ -9708,10 +9695,10 @@ hynix_get_read_retry_default: add x19, x0, :lo12:.LANCHOR0 mov w27, 55 add x24, x24, 408 -.L1525: +.L1524: ldrb w0, [x19,633] cmp w0, w23 - bls .L1532 + bls .L1531 add x0, x19, x23, sxtw ldr x2, [x29,136] ldrb w0, [x0,736] @@ -9722,7 +9709,7 @@ hynix_get_read_retry_default: madd x20, x0, x20, x2 add x22, x22, x1 add x20, x20, 32 -.L1527: +.L1526: str w27, [x22,2056] ldrb w0, [x26,x25] str w0, [x22,2052] @@ -9732,12 +9719,12 @@ hynix_get_read_retry_default: strb w0, [x20,x25] add x25, x25, 1 cmp w28, w25, uxtb - bhi .L1527 + bhi .L1526 mov x0, 0 -.L1528: +.L1527: add w2, w0, 8 mov x1, 0 -.L1529: +.L1528: add x3, x1, x0 add x1, x1, 4 add x3, x24, x3 @@ -9747,10 +9734,10 @@ hynix_get_read_retry_default: add w3, w5, w3 strb w3, [x20,w2,sxtw] add w2, w2, 8 - bne .L1529 + bne .L1528 add x0, x0, 1 cmp x0, 4 - bne .L1528 + bne .L1527 add w23, w23, 1 strb wzr, [x20,16] strb wzr, [x20,24] @@ -9760,11 +9747,11 @@ hynix_get_read_retry_default: strb wzr, [x20,48] strb wzr, [x20,41] strb wzr, [x20,49] - b .L1525 -.L1603: + b .L1524 +.L1602: sub w0, w25, #3 cmp w0, 4 - bhi .L1532 + bhi .L1531 mul w0, w28, w21 sub w23, w28, #1 mov w20, 0 @@ -9778,13 +9765,13 @@ hynix_get_read_retry_default: adrp x26, .LANCHOR4 add x0, x23, 1 str x0, [x29,112] -.L1533: +.L1532: ldr x0, [x29,128] add x1, x0, :lo12:.LANCHOR0 ldrb w0, [x1,633] cmp w0, w20 - bhi .L1571 -.L1532: + bhi .L1570 +.L1531: ldr x0, [x29,136] strb w28, [x0,1] strb w21, [x0,2] @@ -9795,7 +9782,7 @@ hynix_get_read_retry_default: ldp x27, x28, [sp,80] ldp x29, x30, [sp], 144 ret -.L1571: +.L1570: add x0, x1, x20, sxtw ldrb w23, [x0,736] str x1, [x29,104] @@ -9818,28 +9805,28 @@ hynix_get_read_retry_default: cmp w25, 4 str w0, [x23,2056] ldr x1, [x29,104] - bne .L1534 + bne .L1533 mov w0, 64 str w1, [x23,2052] str w0, [x23,2048] mov w0, 204 - b .L1607 -.L1534: + b .L1606 +.L1533: cmp w19, 1 - bhi .L1536 + bhi .L1535 ldrb w0, [x27,128] str w0, [x23,2052] mov w0, 82 - b .L1608 -.L1536: + b .L1607 +.L1535: mov w0, 174 str w0, [x23,2052] str wzr, [x23,2048] mov w0, 176 -.L1607: +.L1606: str w0, [x23,2052] mov w0, 77 -.L1608: +.L1607: str w0, [x23,2048] mov w0, 22 str w0, [x23,2056] @@ -9853,13 +9840,13 @@ hynix_get_read_retry_default: str wzr, [x23,2056] str wzr, [x23,2052] str wzr, [x23,2052] - bne .L1537 + bne .L1536 mov w0, 31 str w0, [x23,2052] - b .L1538 -.L1537: + b .L1537 +.L1536: str wzr, [x23,2052] -.L1538: +.L1537: mov w7, 2 str w7, [x23,2052] str wzr, [x23,2052] @@ -9869,89 +9856,89 @@ hynix_get_read_retry_default: bl nandc_wait_flash_ready cmp w19, 1 mov w1, 16 - bls .L1540 + bls .L1539 ldr x7, [x29,104] cmp w25, 7 mov w1, 32 csel w1, w1, w7, eq -.L1540: +.L1539: adrp x0, .LANCHOR4 mov x7, 0 add x0, x0, :lo12:.LANCHOR4 ldr x0, [x0,1192] -.L1541: +.L1540: ldr w8, [x23,2048] strb w8, [x0,x7] add x7, x7, 1 cmp w1, w7, uxtb - bhi .L1541 + bhi .L1540 cmp w25, 7 - bne .L1542 + bne .L1541 mov w1, 0 -.L1544: +.L1543: ldrb w7, [x0] cmp w7, 12 - beq .L1543 + beq .L1542 ldrb w7, [x0,1] cmp w7, 10 - beq .L1543 + beq .L1542 add w1, w1, 1 add x0, x0, 4 uxtb w1, w1 cmp w1, 8 - bne .L1544 - b .L1545 -.L1543: + bne .L1543 + b .L1544 +.L1542: cmp w1, 7 - bne .L1546 -.L1545: + bne .L1545 +.L1544: adrp x0, .LC132 mov w1, 0 add x0, x0, :lo12:.LC132 bl printk -.L1547: - b .L1547 -.L1542: +.L1546: + b .L1546 +.L1541: cmp w25, 6 - bne .L1546 + bne .L1545 mov x1, 0 -.L1548: +.L1547: ldrb w7, [x0,x1] cmp w7, 12 - beq .L1546 + beq .L1545 add x7, x0, x1 ldrb w7, [x7,8] cmp w7, 4 - beq .L1546 + beq .L1545 add x1, x1, 1 cmp x1, 8 - bne .L1548 + bne .L1547 adrp x0, .LC132 mov w1, 0 add x0, x0, :lo12:.LC132 bl printk -.L1550: - b .L1550 -.L1546: +.L1549: + b .L1549 +.L1545: add x0, x26, :lo12:.LANCHOR4 ldr x9, [x0,1192] mov x0, 0 -.L1551: +.L1550: ldr w1, [x29,120] cmp w1, w0 - ble .L1610 + ble .L1609 ldr w1, [x23,2048] strb w1, [x9,x0] add x0, x0, 1 - b .L1551 -.L1610: + b .L1550 +.L1609: add x0, x26, :lo12:.LANCHOR4 mov w8, w22 mov w7, 8 ldr x11, [x0,1192] -.L1554: - mov w0, 0 .L1553: + mov w0, 0 +.L1552: add w1, w0, w8 add w0, w0, 1 sbfiz x1, x1, 2, 32 @@ -9959,54 +9946,54 @@ hynix_get_read_retry_default: ldr w10, [x11,x1] mvn w10, w10 str w10, [x11,x1] - bne .L1553 + bne .L1552 ldr w0, [x29,124] subs w7, w7, #1 add w8, w8, w0 - bne .L1554 + bne .L1553 mov x7, 0 mov w15, 1 -.L1555: +.L1554: add x0, x26, :lo12:.LANCHOR4 mov w1, 0 mov w10, w1 ldr x14, [x0,1192] -.L1559: +.L1558: lsl w8, w15, w10 mov w12, w7 mov w0, 16 mov w11, 0 -.L1557: +.L1556: 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 .L1557 + bne .L1556 cmp w11, 9 orr w8, w1, w8 add w10, w10, 1 csel w1, w8, w1, cs cmp w10, 32 - bne .L1559 + bne .L1558 str w1, [x14,x7,lsl 2] add x7, x7, 1 cmp w22, w7 - bgt .L1555 + bgt .L1554 add x1, x26, :lo12:.LANCHOR4 mov x7, 0 mov w8, w7 ldr x1, [x1,1192] -.L1562: +.L1561: ldr w10, [x1,x7] add x7, x7, 4 cmp w10, wzr csinc w8, w8, w8, ne cmp x7, 32 - bne .L1562 + bne .L1561 cmp w8, 7 - ble .L1563 + ble .L1562 adrp x0, .LC133 mov w2, 1 add x0, x0, :lo12:.LC133 @@ -10016,39 +10003,39 @@ hynix_get_read_retry_default: mov w1, 0 add x0, x0, :lo12:.LC132 bl printk -.L1564: - b .L1564 .L1563: + b .L1563 +.L1562: cmp w25, 6 mov w7, 4 - beq .L1565 + beq .L1564 cmp w25, 7 mov w7, 10 mov w1, 8 csel w7, w1, w7, ne -.L1565: +.L1564: mov w8, 0 -.L1566: +.L1565: mov x1, 0 -.L1567: +.L1566: add w10, w0, w1 ldrb w11, [x9,x1] add x1, x1, 1 cmp w28, w1, uxtb strb w11, [x24,w10,sxtw] - bhi .L1567 + bhi .L1566 add w8, w8, 1 ldr x1, [x29,112] cmp w8, w21 add w0, w0, w7 add x9, x9, x1 - blt .L1566 + blt .L1565 mov w24, 255 str w24, [x23,2056] bl nandc_wait_flash_ready cmp w19, 1 mov w0, 56 - bhi .L1609 + bhi .L1608 mov w0, 54 str w0, [x23,2056] ldrb w0, [x27,128] @@ -10063,12 +10050,12 @@ hynix_get_read_retry_default: str w24, [x23,2052] str w24, [x23,2052] str w24, [x23,2052] -.L1609: +.L1608: str w0, [x23,2056] add w20, w20, 1 bl nandc_wait_flash_ready uxtb w20, w20 - b .L1533 + b .L1532 .size hynix_get_read_retry_default, .-hynix_get_read_retry_default .align 2 .global flash_get_read_retry_tbl @@ -10081,9 +10068,9 @@ flash_get_read_retry_tbl: sub w1, w0, #1 uxtb w1, w1 cmp w1, 6 - bhi .L1611 + bhi .L1610 bl hynix_get_read_retry_default -.L1611: +.L1610: ldp x29, x30, [sp], 16 ret .size flash_get_read_retry_tbl, .-flash_get_read_retry_tbl @@ -10106,51 +10093,51 @@ nandc_xfer_done: strb wzr, [x1,1200] ldrb w1, [x20,516] cmp w1, 9 - bne .L1614 + bne .L1613 ldr x24, [x20,536] ldr w0, [x24,16] str w0, [x29,64] ldr w20, [x24,48] ubfx x20, x20, 1, 1 - cbnz w20, .L1634 + cbnz w20, .L1633 adrp x21, .LC137 adrp x23, .LC136 add x21, x21, :lo12:.LC137 add x23, x23, :lo12:.LC136 - b .L1616 -.L1634: + b .L1615 +.L1633: adrp x21, .LC135 adrp x22, .LC136 mov w20, 0 add x21, x21, :lo12:.LC135 add x22, x22, :lo12:.LC136 -.L1615: +.L1614: ldr w2, [x24,64] ldr w1, [x29,64] ubfx x2, x2, 16, 6 ubfx x1, x1, 22, 6 cmp w2, w1 - bge .L1618 + bge .L1617 add x0, x19, :lo12:.LANCHOR0 ldr x0, [x0,536] ldr w0, [x0] str w0, [x29,72] ldr w0, [x29,72] - tbz x0, 13, .L1617 + tbz x0, 13, .L1616 ldr w0, [x29,72] - tbz x0, 17, .L1617 + tbz x0, 17, .L1616 ldr w1, [x29,72] adrp x0, .LC134 add x0, x0, :lo12:.LC134 ubfx x1, x1, 17, 1 bl printk - b .L1618 -.L1617: + b .L1617 +.L1616: ldr w0, [x29,64] add w20, w20, 1 ubfx x0, x0, 22, 6 cmp w20, w0, lsl 12 - bne .L1615 + bne .L1614 ldr w2, [x24,64] mov w1, w20 ldr w3, [x29,64] @@ -10165,15 +10152,15 @@ nandc_xfer_done: ldr x1, [x1,536] bl rknand_print_hex ldr w0, [x29,72] - tbz x0, 13, .L1615 + tbz x0, 13, .L1614 add x0, x23, :lo12:.LANCHOR4 mov w1, 1 strb w1, [x0,1200] -.L1618: +.L1617: add x20, x19, :lo12:.LANCHOR0 add x20, x20, 680 ldr w0, [x20,32] - cbz w0, .L1622 + cbz w0, .L1621 ldr w1, [x29,64] mov w2, 0 ldr w0, [x20,24] @@ -10184,15 +10171,15 @@ nandc_xfer_done: ldr w0, [x20,28] ubfx x1, x1, 22, 6 lsl w1, w1, 2 - b .L1662 -.L1624: + b .L1661 +.L1623: add x22, x19, :lo12:.LANCHOR0 add w20, w20, 1 ldr x0, [x22,536] ldr w0, [x0,16] str w0, [x29,64] and w0, w20, 16777215 - cbnz w0, .L1616 + cbnz w0, .L1615 ldr w2, [x29,64] mov w1, w20 ldr w3, [x24,64] @@ -10204,13 +10191,13 @@ nandc_xfer_done: mov w2, 4 mov w3, 64 bl rknand_print_hex -.L1616: +.L1615: ldr w0, [x29,64] - tbz x0, 20, .L1624 + tbz x0, 20, .L1623 add x20, x19, :lo12:.LANCHOR0 add x20, x20, 680 ldr w0, [x20,32] - cbz w0, .L1622 + cbz w0, .L1621 ldr w1, [x29,64] mov w2, 1 ldr w0, [x20,24] @@ -10221,49 +10208,49 @@ nandc_xfer_done: ldr w0, [x20,28] ubfx x1, x1, 22, 6 lsl w1, w1, 2 - b .L1661 -.L1614: + b .L1660 +.L1613: ldr x23, [x20,536] ldr w0, [x23,8] str w0, [x29,64] ldr w20, [x23,16] ubfx x20, x20, 1, 1 - cbnz w20, .L1635 + cbnz w20, .L1634 adrp x21, .LC137 adrp x24, .LC136 add x21, x21, :lo12:.LC137 add x24, x24, :lo12:.LC136 - b .L1627 -.L1635: + b .L1626 +.L1634: adrp x21, .LC135 adrp x22, .LC136 mov w20, 0 add x21, x21, :lo12:.LC135 add x22, x22, :lo12:.LC136 -.L1626: +.L1625: ldr w2, [x23,28] ldr w1, [x29,64] ubfx x2, x2, 16, 5 ubfx x1, x1, 22, 6 cmp w2, w1 - bge .L1629 + bge .L1628 add x0, x19, :lo12:.LANCHOR0 ldr x0, [x0,536] ldr w0, [x0] str w0, [x29,72] ldr w0, [x29,72] - tbz x0, 13, .L1628 + tbz x0, 13, .L1627 ldr w0, [x29,72] - tbz x0, 17, .L1628 + tbz x0, 17, .L1627 ldr w1, [x29,72] adrp x0, .LC138 add x0, x0, :lo12:.LC138 bl printk - b .L1629 -.L1628: + b .L1628 +.L1627: add w20, w20, 1 and w0, w20, 16777215 - cbnz w0, .L1626 + cbnz w0, .L1625 ldr w2, [x23,28] mov w1, w20 ldr w3, [x29,64] @@ -10277,12 +10264,12 @@ nandc_xfer_done: mov w3, 64 ldr x1, [x1,536] bl rknand_print_hex - b .L1626 -.L1629: + b .L1625 +.L1628: add x20, x19, :lo12:.LANCHOR0 add x20, x20, 680 ldr w0, [x20,32] - cbz w0, .L1622 + cbz w0, .L1621 ldr w1, [x29,64] mov w2, 0 ldr w0, [x20,24] @@ -10293,17 +10280,17 @@ nandc_xfer_done: ldr w0, [x20,28] ubfx x1, x1, 22, 6 lsl w1, w1, 7 -.L1662: +.L1661: mov w2, 0 - b .L1660 -.L1633: + b .L1659 +.L1632: add x22, x19, :lo12:.LANCHOR0 add w20, w20, 1 ldr x0, [x22,536] ldr w0, [x0,8] str w0, [x29,64] and w0, w20, 16777215 - cbnz w0, .L1627 + cbnz w0, .L1626 ldr w2, [x29,64] mov w1, w20 ldr w3, [x23,28] @@ -10315,13 +10302,13 @@ nandc_xfer_done: mov w2, 4 mov w3, 64 bl rknand_print_hex -.L1627: +.L1626: ldr w0, [x29,64] - tbz x0, 20, .L1633 + tbz x0, 20, .L1632 add x20, x19, :lo12:.LANCHOR0 add x20, x20, 680 ldr w0, [x20,32] - cbz w0, .L1622 + cbz w0, .L1621 ldr w1, [x29,64] mov w2, 1 ldr w0, [x20,24] @@ -10332,11 +10319,11 @@ nandc_xfer_done: ldr w0, [x20,28] ubfx x1, x1, 22, 6 lsl w1, w1, 7 -.L1661: - mov w2, 1 .L1660: + mov w2, 1 +.L1659: bl rknand_dma_unmap_single -.L1622: +.L1621: add x19, x19, :lo12:.LANCHOR0 ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -10365,19 +10352,19 @@ nandc_xfer: bl nandc_xfer_start bl nandc_xfer_done mov w0, 0 - cbnz w20, .L1693 + cbnz w20, .L1692 adrp x19, .LANCHOR0 add x2, x19, :lo12:.LANCHOR0 ldrb w1, [x2,516] cmp w1, 9 - bne .L1665 + bne .L1664 ldr x5, [x2,536] lsr w22, w22, 2 mov w4, 1 mov w3, w0 -.L1666: +.L1665: cmp w3, w22 - bcs .L1702 + bcs .L1701 uxtw x1, w3 add x1, x1, 84 ldr w1, [x5,x1,lsl 2] @@ -10389,30 +10376,30 @@ nandc_xfer: and w1, w1, w2 and w4, w4, w1 ldr w1, [x29,72] - tbnz x1, 2, .L1685 + tbnz x1, 2, .L1684 ldr w1, [x29,72] - tbnz x1, 18, .L1685 + tbnz x1, 18, .L1684 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 .L1668 + ble .L1667 ubfx x1, x1, 3, 7 - b .L1669 -.L1668: + b .L1668 +.L1667: ubfx x1, x1, 19, 7 -.L1669: +.L1668: cmp w0, w1 csel w0, w0, w1, cs - b .L1667 -.L1685: - mov w0, -1 -.L1667: - add w3, w3, 1 b .L1666 -.L1702: +.L1684: + mov w0, -1 +.L1666: + add w3, w3, 1 + b .L1665 +.L1701: add x22, x19, :lo12:.LANCHOR0 cmp w4, wzr ldr x1, [x22,536] @@ -10423,7 +10410,7 @@ nandc_xfer: movk w1, 0x2, lsl 16 and w1, w20, w1 cmp w1, 139264 - bne .L1672 + bne .L1671 adrp x0, .LC139 mov w1, w20 add x0, x0, :lo12:.LC139 @@ -10432,11 +10419,11 @@ nandc_xfer: ldr x0, [x22,536] str w20, [x0] mov w0, -1 -.L1672: - tbz x20, 13, .L1673 +.L1671: + tbz x20, 13, .L1672 adrp x1, .LANCHOR4+1200 ldrb w1, [x1,#:lo12:.LANCHOR4+1200] - cbz w1, .L1673 + cbz w1, .L1672 adrp x0, .LC140 mov w1, w20 add x0, x0, :lo12:.LC140 @@ -10445,8 +10432,8 @@ nandc_xfer: ldr x0, [x19,536] mov w1, 1 str w1, [x0,16] - b .L1674 -.L1665: + b .L1673 +.L1664: ldrb w0, [x2,724] mov w5, 128 lsr w6, w22, 1 @@ -10456,10 +10443,10 @@ nandc_xfer: csel w5, w0, w5, cc mov w1, w20 mov w4, w20 -.L1676: +.L1675: cmp w4, w6 add w7, w1, w5 - bcs .L1703 + bcs .L1702 ldr x0, [x2,680] and x1, x1, 4294967292 ldr w0, [x0,x1] @@ -10476,24 +10463,24 @@ nandc_xfer: add w3, w3, 4 strb w0, [x23,x1] mov w1, w7 - b .L1676 -.L1703: + b .L1675 +.L1702: add x0, x19, :lo12:.LANCHOR0 mov w2, 0 lsr w22, w22, 2 ldr x6, [x0,536] mov w0, w2 -.L1678: +.L1677: cmp w2, w22 - bcs .L1704 + bcs .L1703 uxtw x1, w2 add x1, x1, 8 ldr w1, [x6,x1,lsl 2] str w1, [x29,72] ldr w1, [x29,72] - tbnz x1, 2, .L1688 + tbnz x1, 2, .L1687 ldr w1, [x29,72] - tbnz x1, 15, .L1688 + tbnz x1, 15, .L1687 ldr w3, [x29,72] ubfx x5, x3, 3, 5 ldr w3, [x29,72] @@ -10506,26 +10493,26 @@ nandc_xfer: orr w1, w4, w1, lsl 5 cmp w3, w1 ldr w1, [x29,72] - bls .L1680 + bls .L1679 ubfx x3, x1, 3, 5 ldr w1, [x29,72] ubfx x1, x1, 27, 1 - b .L1701 -.L1680: + b .L1700 +.L1679: ubfx x3, x1, 16, 5 ldr w1, [x29,72] ubfx x1, x1, 29, 1 -.L1701: +.L1700: orr w1, w3, w1, lsl 5 cmp w0, w1 csel w0, w0, w1, cs - b .L1679 -.L1688: - mov w0, -1 -.L1679: - add w2, w2, 1 b .L1678 -.L1704: +.L1687: + mov w0, -1 +.L1678: + add w2, w2, 1 + b .L1677 +.L1703: add x19, x19, :lo12:.LANCHOR0 ldr x1, [x19,536] str wzr, [x1,16] @@ -10534,7 +10521,7 @@ nandc_xfer: movk w1, 0x2, lsl 16 and w1, w20, w1 cmp w1, 139264 - bne .L1673 + bne .L1672 adrp x0, .LC141 mov w1, w20 add x0, x0, :lo12:.LC141 @@ -10542,24 +10529,24 @@ nandc_xfer: bl printk ldr x0, [x19,536] str w20, [x0] - b .L1674 -.L1673: + b .L1673 +.L1672: cmn w0, #1 - beq .L1693 + beq .L1692 ldr w1, [x23] cmn w1, #1 - bne .L1693 + bne .L1692 ldr w1, [x23,4] cmn w1, #1 - bne .L1693 + bne .L1692 ldr w1, [x21] cmn w1, #1 mov w1, 512 csel w0, w0, w1, ne - b .L1693 -.L1674: + b .L1692 +.L1673: mov w0, -1 -.L1693: +.L1692: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldr x23, [sp,48] @@ -10589,36 +10576,36 @@ flash_read_page: and w20, w1, 2097151 ubfx x24, x23, 24, 2 ldr w0, [x0,#:lo12:.LANCHOR2] - tbz x0, 4, .L1706 + tbz x0, 4, .L1705 adrp x0, .LC142 mov w1, w21 add x0, x0, :lo12:.LC142 mov w2, w24 mov w3, w23 bl printk -.L1706: +.L1705: bl nandc_wait_flash_ready mov w0, w21 bl nandc_cs - cbnz w24, .L1707 + cbnz w24, .L1706 mov w0, w21 bl zftl_flash_enter_slc_mode - b .L1708 -.L1707: + b .L1707 +.L1706: add x0, x22, :lo12:.LANCHOR0 ldr x0, [x0,624] ldrb w0, [x0,12] cmp w0, 3 - bne .L1709 + bne .L1708 sxtw x0, w21 add x0, x0, 8 add x0, x19, x0, lsl 8 str w24, [x0,8] - b .L1708 -.L1709: + b .L1707 +.L1708: mov w0, w21 bl zftl_flash_exit_slc_mode -.L1708: +.L1707: ubfiz x5, x21, 8, 8 and w23, w23, 255 add x19, x19, x5 @@ -10632,19 +10619,19 @@ flash_read_page: str w0, [x19,2052] mov w0, 48 str w0, [x19,2056] - cbz w24, .L1710 + cbz w24, .L1709 add x22, x22, :lo12:.LANCHOR0 ldr x0, [x22,624] ldrb w0, [x0,12] cmp w0, 3 - bne .L1710 + bne .L1709 add w20, w20, w20, lsl 1 sub w0, w20, #1 add w0, w0, w24 - b .L1721 -.L1710: + b .L1720 +.L1709: mov w0, w20 -.L1721: +.L1720: bl nandc_set_seed bl nandc_wait_flash_ready mov w0, 5 @@ -10704,11 +10691,11 @@ micron_read_retrial: adrp x0, .LC143 add x0, x0, :lo12:.LC143 str x0, [x29,104] -.L1723: +.L1722: add x0, x23, :lo12:.LANCHOR4 ldrb w0, [x0,1216] cmp w20, w0 - bcs .L1727 + bcs .L1726 ldr x0, [x29,112] add w27, w20, 1 add x1, x22, x0 @@ -10733,18 +10720,18 @@ micron_read_retrial: mov w6, w0 adrp x0, .LANCHOR2 ldr w0, [x0,#:lo12:.LANCHOR2] - tbz x0, 12, .L1724 + tbz x0, 12, .L1723 ldr x0, [x29,104] + mov w4, w6 mov w1, w20 mov w2, w21 - mov w3, w20 - mov w4, w28 + mov w3, w28 str x6, [x29,96] bl printk ldr x6, [x29,96] -.L1724: +.L1723: cmn w6, #1 - beq .L1725 + beq .L1724 adrp x0, .LANCHOR4 cmn w28, #1 add x0, x0, :lo12:.LANCHOR4 @@ -10753,13 +10740,13 @@ micron_read_retrial: ldr x26, [x0,1208] ldr w0, [x29,124] cmp w6, w0 - bcc .L1732 -.L1725: + bcc .L1731 +.L1724: mov w20, w27 - b .L1723 -.L1732: + b .L1722 +.L1731: mov w28, w6 -.L1727: +.L1726: add x19, x22, x19, lsl 8 mov w0, 239 str w0, [x19,2056] @@ -10773,16 +10760,16 @@ micron_read_retrial: str wzr, [x19,2048] str wzr, [x19,2048] cmp w28, w0 - bcc .L1729 + bcc .L1728 cmn w28, #1 mov w0, 256 csel w28, w28, w0, eq -.L1729: +.L1728: cmn w28, #1 - beq .L1733 + beq .L1732 cmp w28, 256 - bne .L1730 -.L1733: + bne .L1729 +.L1732: adrp x0, .LC144 mov w1, w20 add x0, x0, :lo12:.LC144 @@ -10790,7 +10777,7 @@ micron_read_retrial: mov w3, w20 mov w4, w28 bl printk -.L1730: +.L1729: mov w0, w28 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -10835,19 +10822,19 @@ toshiba_3d_read_retrial: cmp w1, 36 mov w1, 26 csel w21, w21, w1, ne - cbnz w19, .L1747 + cbnz w19, .L1746 str x0, [x29,112] adrp x0, .LC145 add x0, x0, :lo12:.LC145 mov w19, -1 mov w28, 1 str x0, [x29,104] -.L1754: +.L1753: add x0, x20, :lo12:.LANCHOR0 ldrb w0, [x0,725] cmp w0, 36 mov x0, x23 - bne .L1748 + bne .L1747 mov w1, w28 mov w2, 0 bl toshiba_tlc_set_rr_para @@ -10855,11 +10842,11 @@ toshiba_3d_read_retrial: mov w1, 93 add x0, x25, x0 str w1, [x0,8] - b .L1749 -.L1748: + b .L1748 +.L1747: mov w1, w28 bl toshiba_3d_set_slc_rr_para -.L1749: +.L1748: ldr w4, [x29,124] mov w0, w22 mov w1, w24 @@ -10869,7 +10856,7 @@ toshiba_3d_read_retrial: mov w4, w0 adrp x0, .LANCHOR2 ldr w0, [x0,#:lo12:.LANCHOR2] - tbz x0, 4, .L1750 + tbz x0, 4, .L1749 ldr x0, [x29,104] mov w3, w4 mov w1, w28 @@ -10877,9 +10864,87 @@ toshiba_3d_read_retrial: str x4, [x29,96] bl printk ldr x4, [x29,96] -.L1750: +.L1749: cmn w4, #1 - beq .L1751 + beq .L1750 + adrp x0, .LANCHOR4 + cmn w19, #1 + add x0, x0, :lo12:.LANCHOR4 + csel w19, w19, w4, ne + ldr x26, [x0,1192] + ldr x27, [x0,1208] + add x0, x20, :lo12:.LANCHOR0 + ldrb w0, [x0,724] + add w0, w0, w0, lsl 1 + cmp w4, w0, lsr 2 + bcc .L1769 +.L1750: + add w28, w28, 1 + cmp w28, w21 + bne .L1753 + b .L1752 +.L1769: + mov w21, w28 + mov w19, w4 +.L1752: + add x0, x20, :lo12:.LANCHOR0 + ldrb w0, [x0,725] + cmp w0, 36 + mov x0, x23 + bne .L1754 + mov w1, 0 + mov w2, w1 + b .L1792 +.L1754: + mov w1, 0 + bl toshiba_3d_set_slc_rr_para + b .L1755 +.L1746: + mov x28, x0 + adrp x0, .LC146 + add x0, x0, :lo12:.LC146 + mov w19, -1 + mov w21, 1 + str x0, [x29,104] +.L1762: + add x0, x20, :lo12:.LANCHOR0 + ldrb w0, [x0,725] + cmp w0, 36 + mov x0, x23 + bne .L1756 + mov w1, w21 + mov w2, 1 + bl toshiba_tlc_set_rr_para + add x0, x25, x28 + mov w1, 93 + b .L1791 +.L1756: + mov w1, w21 + bl toshiba_3d_set_tlc_rr_para + add x0, x25, x28 + mov w1, 38 +.L1791: + str w1, [x0,8] + mov x2, x26 + mov w0, w22 + mov w1, w24 + ldr w4, [x29,124] + mov x3, x27 + bl flash_read_page + mov w4, w0 + adrp x0, .LANCHOR2 + ldr w0, [x0,#:lo12:.LANCHOR2] + tbz x0, 4, .L1758 + ldr x0, [x29,104] + mov w3, w4 + mov w1, w21 + mov w2, w24 + str x4, [x29,96] + bl printk + ldr x4, [x29,96] +.L1758: + cmn w4, #1 + beq .L1759 adrp x0, .LANCHOR4 cmn w19, #1 add x0, x0, :lo12:.LANCHOR4 @@ -10891,111 +10956,33 @@ toshiba_3d_read_retrial: add w0, w0, w0, lsl 1 cmp w4, w0, lsr 2 bcc .L1770 -.L1751: - add w28, w28, 1 - cmp w28, w21 - bne .L1754 - b .L1753 -.L1770: - mov w21, w28 - mov w19, w4 -.L1753: - add x0, x20, :lo12:.LANCHOR0 - ldrb w0, [x0,725] - cmp w0, 36 - mov x0, x23 - bne .L1755 - mov w1, 0 - mov w2, w1 - b .L1793 -.L1755: - mov w1, 0 - bl toshiba_3d_set_slc_rr_para - b .L1756 -.L1747: - mov x28, x0 - adrp x0, .LC146 - add x0, x0, :lo12:.LC146 - mov w19, -1 - mov w21, 1 - str x0, [x29,104] -.L1763: - add x0, x20, :lo12:.LANCHOR0 - ldrb w0, [x0,725] - cmp w0, 36 - mov x0, x23 - bne .L1757 - mov w1, w21 - mov w2, 1 - bl toshiba_tlc_set_rr_para - add x0, x25, x28 - mov w1, 93 - b .L1792 -.L1757: - mov w1, w21 - bl toshiba_3d_set_tlc_rr_para - add x0, x25, x28 - mov w1, 38 -.L1792: - str w1, [x0,8] - mov x2, x26 - mov w0, w22 - mov w1, w24 - ldr w4, [x29,124] - mov x3, x27 - bl flash_read_page - mov w4, w0 - adrp x0, .LANCHOR2 - ldr w0, [x0,#:lo12:.LANCHOR2] - tbz x0, 4, .L1759 - ldr x0, [x29,104] - mov w3, w4 - mov w1, w21 - mov w2, w24 - str x4, [x29,96] - bl printk - ldr x4, [x29,96] .L1759: - cmn w4, #1 - beq .L1760 - adrp x0, .LANCHOR4 - cmn w19, #1 - add x0, x0, :lo12:.LANCHOR4 - csel w19, w19, w4, ne - ldr x26, [x0,1192] - ldr x27, [x0,1208] - add x0, x20, :lo12:.LANCHOR0 - ldrb w0, [x0,724] - add w0, w0, w0, lsl 1 - cmp w4, w0, lsr 2 - bcc .L1771 -.L1760: ldr w0, [x29,112] add w21, w21, 1 cmp w21, w0 - bne .L1763 - b .L1762 -.L1771: + bne .L1762 + b .L1761 +.L1770: mov w19, w4 -.L1762: +.L1761: add x0, x20, :lo12:.LANCHOR0 ldrb w0, [x0,725] cmp w0, 36 mov x0, x23 - bne .L1764 + bne .L1763 mov w1, 0 mov w2, 1 -.L1793: +.L1792: bl toshiba_tlc_set_rr_para - b .L1756 -.L1764: + b .L1755 +.L1763: mov w1, 0 bl toshiba_3d_set_tlc_rr_para -.L1756: +.L1755: add x0, x20, :lo12:.LANCHOR0 ldrb w0, [x0,725] cmp w0, 36 - bne .L1765 + bne .L1764 ubfiz x22, x22, 8, 8 mov w0, 85 add x25, x25, x22 @@ -11004,21 +10991,21 @@ toshiba_3d_read_retrial: str wzr, [x25,2052] str wzr, [x25,2048] str w0, [x25,2056] -.L1765: +.L1764: add x20, x20, :lo12:.LANCHOR0 ldrb w0, [x20,724] add w0, w0, w0, lsl 1 cmp w19, w0, lsr 2 - bcc .L1766 + bcc .L1765 cmn w19, #1 mov w0, 256 csel w19, w19, w0, eq -.L1766: +.L1765: cmn w19, #1 - beq .L1772 + beq .L1771 cmp w19, 256 - bne .L1767 -.L1772: + bne .L1766 +.L1771: adrp x0, .LC147 mov w1, w21 add x0, x0, :lo12:.LC147 @@ -11026,7 +11013,7 @@ toshiba_3d_read_retrial: mov w3, w21 mov w4, w19 bl printk -.L1767: +.L1766: bl nandc_wait_flash_ready mov w0, w19 ldp x19, x20, [sp,16] @@ -11066,20 +11053,20 @@ toshiba_read_retrial: add x21, x22, x21, lsl 8 uxtb w0, w0 cmp w0, 1 - bls .L1795 + bls .L1794 ldrb w0, [x1,672] - cbz w0, .L1796 + cbz w0, .L1795 mov w0, 1 mov w25, 1 bl nandc_set_if_mode -.L1796: +.L1795: ubfiz x0, x23, 8, 8 mov w1, 92 add x0, x22, x0 str w1, [x0,2056] mov w1, 197 str w1, [x0,2056] -.L1795: +.L1794: ldr x0, [x29,112] mov w20, 1 mov w24, -1 @@ -11088,13 +11075,13 @@ toshiba_read_retrial: str x0, [x29,104] ubfiz x0, x23, 8, 8 str x0, [x29,96] -.L1797: +.L1796: adrp x0, .LANCHOR4 add x0, x0, :lo12:.LANCHOR4 ldrb w0, [x0,1216] add w0, w0, 1 cmp w20, w0 - bcs .L1828 + bcs .L1827 add x0, x19, :lo12:.LANCHOR0 mov w1, w20 ldrb w0, [x0,725] @@ -11102,27 +11089,27 @@ toshiba_read_retrial: uxtb w0, w0 cmp w0, 1 mov x0, x21 - bhi .L1798 + bhi .L1797 bl sandisk_set_rr_para - b .L1799 -.L1798: + b .L1798 +.L1797: bl toshiba_set_rr_para -.L1799: +.L1798: add x0, x19, :lo12:.LANCHOR0 ldrb w0, [x0,725] cmp w0, 34 - bne .L1800 + bne .L1799 adrp x0, .LANCHOR4 add x0, x0, :lo12:.LANCHOR4 ldrb w0, [x0,1216] sub w0, w0, #3 cmp w20, w0 - bne .L1800 + bne .L1799 ldr x0, [x29,104] mov w1, 179 add x0, x22, x0 str w1, [x0,8] -.L1800: +.L1799: ldr x0, [x29,96] mov w1, 38 ldr w4, [x29,120] @@ -11137,7 +11124,7 @@ toshiba_read_retrial: bl flash_read_page cmn w0, #1 mov w28, w0 - beq .L1803 + beq .L1802 cmn w24, #1 csel w24, w24, w0, ne adrp x0, .LANCHOR4 @@ -11148,13 +11135,13 @@ toshiba_read_retrial: ldrb w0, [x0,724] add w0, w0, w0, lsl 1 cmp w28, w0, lsr 2 - bcc .L1805 -.L1803: + bcc .L1804 +.L1802: add w20, w20, 1 - b .L1797 -.L1828: + b .L1796 +.L1827: mov w28, w24 -.L1805: +.L1804: add x0, x19, :lo12:.LANCHOR0 mov w1, 0 ldrb w0, [x0,725] @@ -11162,12 +11149,12 @@ toshiba_read_retrial: uxtb w0, w0 cmp w0, 1 mov x0, x21 - bhi .L1807 + bhi .L1806 bl sandisk_set_rr_para - b .L1808 -.L1807: + b .L1807 +.L1806: bl toshiba_set_rr_para -.L1808: +.L1807: ldr x0, [x29,112] add x19, x19, :lo12:.LANCHOR0 add x0, x0, 8 @@ -11177,16 +11164,16 @@ toshiba_read_retrial: ldrb w0, [x19,724] add w0, w0, w0, lsl 1 cmp w28, w0, lsr 2 - bcc .L1809 + bcc .L1808 cmn w28, #1 mov w0, 256 csel w28, w28, w0, eq -.L1809: +.L1808: cmn w28, #1 - beq .L1815 + beq .L1814 cmp w28, 256 - bne .L1810 -.L1815: + bne .L1809 +.L1814: adrp x0, .LC147 ldr w2, [x29,124] add x0, x0, :lo12:.LC147 @@ -11194,12 +11181,12 @@ toshiba_read_retrial: mov w3, w20 mov w4, w28 bl printk -.L1810: +.L1809: bl nandc_wait_flash_ready - cbz w25, .L1812 + cbz w25, .L1811 mov w0, 4 bl nandc_set_if_mode -.L1812: +.L1811: mov w0, w28 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -11237,9 +11224,9 @@ hynix_read_retrial: bl nandc_wait_flash_ready mov w6, 0 adrp x7, .LANCHOR4 -.L1830: +.L1829: cmp w6, w24 - bcs .L1834 + bcs .L1833 add w20, w20, 1 mov w0, w22 str x7, [x29,104] @@ -11258,7 +11245,7 @@ hynix_read_retrial: cmn w0, #1 ldr x6, [x29,112] ldr x7, [x29,104] - beq .L1832 + beq .L1831 add x1, x7, :lo12:.LANCHOR4 cmn w19, #1 csel w19, w19, w0, ne @@ -11268,29 +11255,29 @@ hynix_read_retrial: ldrb w1, [x1,724] add w1, w1, w1, lsl 1 cmp w0, w1, lsr 2 - bcc .L1839 -.L1832: + bcc .L1838 +.L1831: add w6, w6, 1 - b .L1830 -.L1839: + b .L1829 +.L1838: mov w19, w0 -.L1834: +.L1833: add x28, x28, :lo12:.LANCHOR0 add x21, x27, x21 ldrb w0, [x28,724] strb w20, [x21,8] add w0, w0, w0, lsl 1 cmp w19, w0, lsr 2 - bcc .L1836 + bcc .L1835 cmn w19, #1 mov w0, 256 csel w19, w19, w0, eq -.L1836: +.L1835: cmn w19, #1 - beq .L1840 + beq .L1839 cmp w19, 256 - bne .L1837 -.L1840: + bne .L1836 +.L1839: adrp x0, .LC148 mov w1, w6 add x0, x0, :lo12:.LC148 @@ -11298,7 +11285,7 @@ hynix_read_retrial: mov w3, w6 mov w4, w19 bl printk -.L1837: +.L1836: mov w0, w19 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -11313,119 +11300,165 @@ hynix_read_retrial: .type flash_ddr_tuning_read, %function flash_ddr_tuning_read: stp x29, x30, [sp, -128]! - uxtb w0, w0 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] - str w0, [x29,124] - mov w20, w1 - mov x23, x2 - mov x24, x3 - str w4, [x29,116] + uxtb w20, w0 + mov w22, w1 + mov x24, x2 + mov x23, x3 + str w4, [x29,120] bl nandc_get_ddr_para - mov w26, 0 - str w0, [x29,120] + mov w27, 0 + str w0, [x29,116] adrp x0, .LC149 - mov w22, w26 + str w27, [x29,124] add x0, x0, :lo12:.LC149 - mov w28, w26 - mov w27, w26 - mov w25, 1024 - mov w21, 6 - mov w19, -1 + mov w25, w27 + mov w28, w27 + mov w19, 1024 + mov w26, 6 + mov w21, -1 str x0, [x29,104] -.L1855: - mov w0, w21 +.L1854: + mov w0, w26 bl nandc_set_ddr_para - ldr w4, [x29,116] - mov w1, w20 - ldrb w0, [x29,124] - mov x2, x23 - mov x3, x24 + ldr w4, [x29,120] + mov w0, w20 + mov w1, w22 + mov x2, x24 + mov x3, x23 bl flash_read_page mov w4, w0 adrp x0, .LANCHOR2 ldr w0, [x0,#:lo12:.LANCHOR2] - tbz x0, 4, .L1850 + tbz x0, 4, .L1849 ldr x0, [x29,104] mov w3, w4 - mov w1, w21 - mov w2, w20 + mov w1, w26 + mov w2, w22 str x4, [x29,96] bl printk ldr x4, [x29,96] -.L1850: - add w0, w25, 1 +.L1849: + add w0, w19, 1 cmp w4, w0 - bhi .L1851 + bhi .L1850 adrp x0, .LANCHOR4 add x0, x0, :lo12:.LANCHOR4 - ldr x23, [x0,1192] - ldr x24, [x0,1208] + ldr x24, [x0,1192] + ldr x23, [x0,1208] adrp x0, .LANCHOR0 add x0, x0, :lo12:.LANCHOR0 ldrb w0, [x0,724] cmp w4, w0, lsr 2 bcs .L1860 - add w27, w27, 1 - cmp w27, 7 + add w28, w28, 1 + cmp w28, 7 bls .L1860 - sub w26, w21, w27 - mov w25, w4 - mov w19, 0 - b .L1853 -.L1851: - cmp w28, w27 + sub w27, w26, w28 + mov w19, w4 + mov w21, 0 + b .L1852 +.L1850: + cmp w25, w28 bcs .L1861 - cmp w27, 7 - sub w22, w26, w27 - bhi .L1854 - mov w28, w27 + sub w0, w27, w28 + cmp w28, 7 + str w0, [x29,124] + bhi .L1853 + mov w25, w28 b .L1861 .L1860: - mov w26, w21 - mov w25, w4 - mov w19, 0 - b .L1852 + mov w27, w26 + mov w19, w4 + mov w21, 0 + b .L1851 .L1861: - mov w27, 0 + mov w28, 0 +.L1851: + add w26, w26, 2 + cmp w26, 50 + bne .L1854 .L1852: - add w21, w21, 2 - cmp w21, 50 - bne .L1855 + ldr w0, [x29,124] + cmp w25, w28 + csel w27, w27, w0, ls .L1853: - cmp w28, w27 - csel w26, w26, w22, ls -.L1854: - cbz w26, .L1856 + cbz w27, .L1855 adrp x0, .LANCHOR0+724 mov w1, 3 ldrb w0, [x0,#:lo12:.LANCHOR0+724] udiv w0, w0, w1 - cmp w25, w0 - bcs .L1856 + cmp w19, w0 + bcs .L1855 adrp x0, .LC150 - mov w1, w26 + mov w1, w27 add x0, x0, :lo12:.LC150 bl printk - mov w0, w26 - b .L1869 -.L1856: - ldrb w0, [x29,120] -.L1869: + mov w0, w27 + b .L1870 +.L1855: + ldrb w0, [x29,116] +.L1870: bl nandc_set_ddr_para - cbz w19, .L1858 + cbz w21, .L1857 adrp x0, .LC151 - ldr w1, [x29,124] + mov w2, w22 + mov w1, w20 add x0, x0, :lo12:.LC151 - mov w2, w20 - mov w25, w19 + adrp x26, .LANCHOR0 bl printk + add x27, x26, :lo12:.LANCHOR0 + mov w0, w20 + bl flash_reset + mov w0, 1 + bl flash_set_interface_mode + mov w0, 1 + bl nandc_set_if_mode + add x0, x27, x20, sxtw + mov w1, 2 + strb w1, [x0,744] + mov w0, w20 + bl zftl_flash_enter_slc_mode + ldr w4, [x29,120] + mov w1, w22 + mov x2, x24 + mov x3, x23 + mov w0, w20 + bl flash_read_page + mov w19, w0 + adrp x0, .LC152 + mov w1, w20 + add x0, x0, :lo12:.LC152 + mov w2, w22 + mov w3, w19 + bl printk + ldrb w0, [x27,724] + cmp w19, w0 + bhi .L1862 + adrp x1, .LANCHOR4 + add x1, x1, :lo12:.LANCHOR4 + ldr w0, [x1,1220] + add w0, w0, 1 + str w0, [x1,1220] + cmp w0, 100 + bls .L1858 + strb wzr, [x27,672] + b .L1857 +.L1862: + mov w19, w21 .L1858: - mov w0, w25 + add x26, x26, :lo12:.LANCHOR0 + ldrb w0, [x26,780] + bl flash_set_interface_mode + ldrb w0, [x26,780] + bl nandc_set_if_mode +.L1857: + mov w0, w19 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -11455,53 +11488,53 @@ flash_read_page_en: mov w23, w4 ubfx x26, x19, 24, 2 cmp w0, w21 - bhi .L1871 + bhi .L1872 adrp x1, .LANCHOR3 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR3 - mov w2, 380 + mov w2, 382 add x1, x1, 136 add x0, x0, :lo12:.LC0 bl printk bl dump_stack -.L1871: +.L1872: add x0, x20, :lo12:.LANCHOR0 add x1, x0, x21, sxtw ldrb w22, [x1,736] ldrb w0, [x0,633] cmp w0, w21 - bcs .L1872 + bcs .L1873 adrp x0, .LANCHOR2 ldr w0, [x0,#:lo12:.LANCHOR2] - tbz x0, 6, .L1872 - adrp x0, .LC152 + tbz x0, 6, .L1873 + adrp x0, .LC153 mov w1, w22 - add x0, x0, :lo12:.LC152 + add x0, x0, :lo12:.LC153 mov w2, w21 mov w3, w19 bl printk -.L1872: - cbnz w26, .L1873 +.L1873: + cbnz w26, .L1874 ldrb w1, [x20,#:lo12:.LANCHOR0] add x0, x20, :lo12:.LANCHOR0 - cbz w1, .L1874 + cbz w1, .L1875 ldrb w0, [x0,1] - cbz w0, .L1873 -.L1874: + cbz w0, .L1874 +.L1875: add x1, x20, :lo12:.LANCHOR0 ldrh w2, [x1,2] udiv w0, w19, w2 mul w0, w0, w2 ldrb w2, [x1,1] sub w19, w19, w0 - cbz w2, .L1875 + cbz w2, .L1876 add w19, w0, w19, lsl 1 - b .L1873 -.L1875: + b .L1874 +.L1876: add x1, x1, 4 ldrh w19, [x1,w19,uxtw 1] add w19, w19, w0 -.L1873: +.L1874: mov w0, w22 mov w1, w19 mov x2, x25 @@ -11510,16 +11543,16 @@ flash_read_page_en: bl flash_read_page cmn w0, #1 mov w21, w0 - bne .L1882 + bne .L1883 add x26, x20, :lo12:.LANCHOR0 ldrb w27, [x26,720] - cbnz w27, .L1877 -.L1880: + cbnz w27, .L1878 +.L1881: adrp x0, .LANCHOR4+1224 ldr x5, [x0,#:lo12:.LANCHOR4+1224] - cbnz x5, .L1878 - b .L1879 -.L1877: + cbnz x5, .L1879 + b .L1880 +.L1878: mov w0, w22 mov w1, w19 mov x2, x25 @@ -11529,9 +11562,9 @@ flash_read_page_en: bl flash_read_page strb w27, [x26,720] cmn w0, #1 - beq .L1880 - b .L1898 -.L1878: + beq .L1881 + b .L1899 +.L1879: mov w0, w22 mov w1, w19 mov x2, x25 @@ -11539,27 +11572,27 @@ flash_read_page_en: mov w4, w23 blr x5 cmn w0, #1 - bne .L1898 -.L1879: + bne .L1899 +.L1880: add x20, x20, :lo12:.LANCHOR0 - adrp x0, .LC153 - add x0, x0, :lo12:.LC153 + adrp x0, .LC154 + add x0, x0, :lo12:.LC154 mov w1, 0 mov w2, w19 mov w3, -1 ldrb w4, [x20,720] bl printk ldrb w0, [x20,672] - cbz w0, .L1882 + cbz w0, .L1883 mov w0, w22 mov w1, w19 mov x2, x25 mov x3, x24 mov w4, w23 bl flash_ddr_tuning_read -.L1898: +.L1899: mov w21, w0 -.L1882: +.L1883: mov w0, w21 ldr x27, [sp,80] ldp x19, x20, [sp,16] @@ -11598,12 +11631,12 @@ flash_get_last_written_page: add w1, w26, w19 bl flash_read_page_en cmp w0, 512 - bne .L1900 + bne .L1901 mov w28, 0 mov w5, 2 -.L1901: +.L1902: cmp w28, w19 - bgt .L1900 + bgt .L1901 add w0, w28, w19 mov x2, x24 mov x3, x21 @@ -11615,24 +11648,24 @@ flash_get_last_written_page: bl flash_read_page_en cmp w0, 512 ldr x5, [x29,104] - bne .L1902 + bne .L1903 sub w19, w20, #1 sxth w19, w19 - b .L1901 -.L1902: + b .L1902 +.L1903: add w20, w20, 1 sxth w28, w20 - b .L1901 -.L1900: + b .L1902 +.L1901: ldr w0, [x27,#:lo12:.LANCHOR2] - tbz x0, 12, .L1905 - adrp x0, .LC154 + tbz x0, 12, .L1906 + adrp x0, .LC155 ldr w3, [x21] - add x0, x0, :lo12:.LC154 + add x0, x0, :lo12:.LC155 mov w1, w22 mov w2, w19 bl printk -.L1905: +.L1906: mov w0, w19 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -11679,21 +11712,21 @@ flash_info_blk_init: stp x21, x22, [sp,32] stp x23, x24, [sp,48] adrp x20, .LANCHOR0 - tbz x0, 12, .L1911 + tbz x0, 12, .L1912 add x4, x20, :lo12:.LANCHOR0 adrp x2, .LANCHOR3 - adrp x0, .LC155 + adrp x0, .LC156 add x2, x2, :lo12:.LANCHOR3 - add x0, x0, :lo12:.LC155 + add x0, x0, :lo12:.LC156 mov w1, 49 ldr x4, [x4,728] add x2, x2, 160 mov w3, 2048 bl printk -.L1911: +.L1912: mov w22, 4 adrp x24, .LANCHOR4 -.L1914: +.L1915: add x19, x20, :lo12:.LANCHOR0 add x21, x24, :lo12:.LANCHOR4 mov w0, 0 @@ -11705,21 +11738,21 @@ flash_info_blk_init: mul w1, w22, w1 bl flash_read_page_en cmn w0, #1 - beq .L1912 + beq .L1913 ldr x2, [x19,728] mov w0, 21321 movk w0, 0x5359, lsl 16 ldr w1, [x2] cmp w1, w0 - beq .L1913 -.L1912: + beq .L1914 +.L1913: add w22, w22, 1 cmp w22, 16 - bne .L1914 -.L1938: + bne .L1915 +.L1939: mov w0, -1 - b .L1937 -.L1913: + b .L1938 +.L1914: ldrb w1, [x2,36] mov w4, 4 ldrh w3, [x19,2] @@ -11732,16 +11765,16 @@ flash_info_blk_init: mov w21, 0 bl flash_read_page_en cmn w0, #1 - beq .L1916 + beq .L1917 ldr x0, [x19,728] mov w1, 21321 movk w1, 0x5359, lsl 16 mov w21, 0 ldr w2, [x0] cmp w2, w1 - bne .L1916 + bne .L1917 ldr w21, [x0,4] -.L1916: +.L1917: add x19, x23, :lo12:.LANCHOR4 add x22, x20, :lo12:.LANCHOR0 mov w0, 0 @@ -11753,21 +11786,21 @@ flash_info_blk_init: ldr x2, [x22,728] bl flash_read_page_en cmn w0, #1 - beq .L1917 + beq .L1918 ldr x0, [x22,728] mov w1, 21321 movk w1, 0x5359, lsl 16 ldr w2, [x0] cmp w2, w1 - bne .L1917 + bne .L1918 ldr w1, [x0,4] cmp w21, w1 - bcs .L1917 + bcs .L1918 ldrb w1, [x0,37] ldrb w0, [x0,36] strb w1, [x19,1240] strb w0, [x19,1241] -.L1917: +.L1918: add x21, x23, :lo12:.LANCHOR4 add x22, x20, :lo12:.LANCHOR0 mov w0, 0 @@ -11782,8 +11815,8 @@ flash_info_blk_init: ldrb w0, [x21,1240] ldrh w21, [x22,2] mul w21, w0, w21 -.L1918: - tbnz w19, #31, .L1939 +.L1919: + tbnz w19, #31, .L1940 add x22, x20, :lo12:.LANCHOR0 add x3, x23, :lo12:.LANCHOR4 mov w0, 0 @@ -11793,31 +11826,31 @@ flash_info_blk_init: ldr x3, [x3,1232] bl flash_read_page_en cmn w0, #1 - beq .L1919 + beq .L1920 ldr x0, [x22,728] ldr w1, [x0] mov w0, 21321 movk w0, 0x5359, lsl 16 cmp w1, w0 - bne .L1919 -.L1921: + bne .L1920 +.L1922: mov w0, 0 - b .L1937 -.L1919: + b .L1938 +.L1920: sub w19, w19, #1 sxth w19, w19 - b .L1918 -.L1939: + b .L1919 +.L1940: cmn w19, #1 - bne .L1921 + bne .L1922 add x20, x20, :lo12:.LANCHOR0 - adrp x0, .LC156 - add x0, x0, :lo12:.LC156 + adrp x0, .LC157 + add x0, x0, :lo12:.LC157 ldr x1, [x20,728] ldr w1, [x1] bl printk - b .L1938 -.L1937: + b .L1939 +.L1938: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -11858,20 +11891,20 @@ flash_ddr_para_scan: mov w4, 4 bl flash_read_page cmn w0, #1 - bne .L1941 + bne .L1942 ldrb w0, [x21,780] - tbz x0, 0, .L1941 + tbz x0, 0, .L1942 mov w0, 1 bl flash_set_interface_mode mov w0, w22 bl nandc_set_if_mode strb wzr, [x21,672] - b .L1942 -.L1941: + b .L1943 +.L1942: add x19, x19, :lo12:.LANCHOR0 mov w0, 1 strb w0, [x19,672] -.L1942: +.L1943: mov w0, 0 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -11880,8 +11913,8 @@ flash_ddr_para_scan: ret .size flash_ddr_para_scan, .-flash_ddr_para_scan .align 2 - .type id_block_read_data.constprop.27, %function -id_block_read_data.constprop.27: + .type id_block_read_data.constprop.31, %function +id_block_read_data.constprop.31: stp x29, x30, [sp, -240]! add x29, sp, 0 stp x27, x28, [sp,80] @@ -11915,12 +11948,12 @@ id_block_read_data.constprop.27: ldr w0, [x29,172] and w0, w0, 3 str w0, [x29,168] - adrp x0, .LC157 - add x0, x0, :lo12:.LC157 + adrp x0, .LC158 + add x0, x0, :lo12:.LC158 str x0, [x29,112] -.L1947: +.L1948: cmp w22, w27 - bcs .L1984 + bcs .L1985 ldr w0, [x29,168] adrp x1, .LANCHOR4 add x1, x1, :lo12:.LANCHOR4 @@ -11934,15 +11967,15 @@ id_block_read_data.constprop.27: udiv w20, w20, w23 and w20, w20, 65535 ldrh w0, [x0,w20,sxtw 1] - cbnz w1, .L1948 + cbnz w1, .L1949 mov w20, w0 - b .L1949 -.L1948: + b .L1950 +.L1949: ldrb w1, [x19,1] lsl w0, w20, 1 cmp w1, wzr csel w20, w0, w20, ne -.L1949: +.L1950: ldr w1, [x29,160] ldr w0, [x29,164] ldrb w28, [x19,632] @@ -11957,7 +11990,7 @@ id_block_read_data.constprop.27: str w0, [x29,132] mov w0, w28 bl nandc_bch_sel -.L1950: +.L1951: mov w0, 0 mov w1, w24 mov x2, x21 @@ -11966,16 +11999,16 @@ id_block_read_data.constprop.27: bl flash_read_page cmn w0, #1 mov w20, w0 - bne .L1957 + bne .L1958 ldrb w6, [x19,720] - cbnz w6, .L1952 -.L1955: + cbnz w6, .L1953 +.L1956: adrp x0, .LANCHOR4 add x0, x0, :lo12:.LANCHOR4 ldr x6, [x0,1224] - cbnz x6, .L1953 - b .L1954 -.L1952: + cbnz x6, .L1954 + b .L1955 +.L1953: mov w0, 0 mov w1, w24 mov x2, x21 @@ -11987,9 +12020,9 @@ id_block_read_data.constprop.27: cmn w0, #1 ldr x6, [x29,104] strb w6, [x19,720] - beq .L1955 - b .L1983 -.L1953: + beq .L1956 + b .L1984 +.L1954: mov w0, 0 mov w1, w24 mov x2, x21 @@ -11997,28 +12030,28 @@ id_block_read_data.constprop.27: mov w4, w23 blr x6 cmn w0, #1 - bne .L1983 -.L1954: + bne .L1984 +.L1955: ldrb w0, [x19,672] - cbz w0, .L1957 + cbz w0, .L1958 mov w0, 0 mov w1, w24 mov x2, x21 add x3, x29, 176 mov w4, w23 bl flash_ddr_tuning_read -.L1983: +.L1984: mov w20, w0 -.L1957: +.L1958: cmn w20, #1 - bne .L1958 + bne .L1959 cmp w28, 16 - beq .L1958 + beq .L1959 mov w0, 16 mov w28, 16 bl nandc_bch_sel - b .L1950 -.L1958: + b .L1951 +.L1959: ldr w0, [x29,132] bl nandc_bch_sel cmn w20, #1 @@ -12029,18 +12062,18 @@ id_block_read_data.constprop.27: cmp w0, w26 cset w0, eq tst w1, w0 - beq .L1960 - cbnz w25, .L1960 + beq .L1961 + cbnz w25, .L1961 ldr w1, [x21] mov w0, 18766 movk w0, 0x464e, lsl 16 cmp w1, w0 - bne .L1960 + bne .L1961 ldr w0, [x29,144] ldrb w23, [x21,17] add w27, w27, w0 - b .L1961 -.L1960: + b .L1962 +.L1961: ldr x0, [x29,144] mov w2, w22 ldr w1, [x29,140] @@ -12051,12 +12084,12 @@ id_block_read_data.constprop.27: ldr x0, [x29,112] bl printk str wzr, [x29,168] -.L1961: +.L1962: ldr w0, [x29,144] add w22, w0, w22 uxth w22, w22 - b .L1947 -.L1984: + b .L1948 +.L1985: ldr x0, [x29,120] ldrb w1, [x29,136] add x0, x0, :lo12:.LANCHOR0 @@ -12069,7 +12102,7 @@ id_block_read_data.constprop.27: ldp x27, x28, [sp,80] ldp x29, x30, [sp], 240 ret - .size id_block_read_data.constprop.27, .-id_block_read_data.constprop.27 + .size id_block_read_data.constprop.31, .-id_block_read_data.constprop.31 .align 2 .global flash_complete_plane_page_read .type flash_complete_plane_page_read, %function @@ -12089,27 +12122,27 @@ flash_complete_plane_page_read: mov x23, x2 ldrb w0, [x0,633] cmp w0, w22 - bhi .L1986 + bhi .L1987 adrp x1, .LANCHOR3 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR3 - mov w2, 785 + mov w2, 789 add x1, x1, 184 add x0, x0, :lo12:.LC0 bl printk bl dump_stack -.L1986: +.L1987: add x0, x21, :lo12:.LANCHOR0 add x22, x0, x22, sxtw ldrb w22, [x22,736] ldr x25, [x0,536] mov w0, w22 bl nandc_cs - cbnz w20, .L1987 + cbnz w20, .L1988 mov w0, w19 bl slc_phy_page_address_calc mov w19, w0 -.L1987: +.L1988: add x3, x21, :lo12:.LANCHOR0 uxtb x5, w22 and w2, w19, 255 @@ -12117,26 +12150,26 @@ flash_complete_plane_page_read: ldrb w0, [x3,656] cmp w0, 1 lsr w0, w19, 16 - bne .L1988 + bne .L1989 add x5, x25, x5, lsl 8 mov w3, 6 - b .L2001 -.L1988: + b .L2002 +.L1989: ldr x3, [x3,624] add x5, x25, x5, lsl 8 ldrb w3, [x3,12] cmp w3, 3 - bne .L1990 + bne .L1991 mov w3, 5 -.L2001: +.L2002: str w3, [x5,2056] str wzr, [x5,2052] str wzr, [x5,2052] str w2, [x5,2052] str w1, [x5,2052] str w0, [x5,2052] - b .L1999 -.L1990: + b .L2000 +.L1991: str wzr, [x5,2056] str wzr, [x5,2052] str wzr, [x5,2052] @@ -12147,22 +12180,22 @@ flash_complete_plane_page_read: str w0, [x5,2056] str wzr, [x5,2052] str wzr, [x5,2052] -.L1999: +.L2000: mov w0, 224 str w0, [x5,2056] - cbz w20, .L1991 + cbz w20, .L1992 add x21, x21, :lo12:.LANCHOR0 ldr x0, [x21,624] ldrb w0, [x0,12] cmp w0, 3 - bne .L1991 + bne .L1992 sub w20, w20, #1 add w0, w19, w19, lsl 1 add w0, w20, w0 - b .L2000 -.L1991: + b .L2001 +.L1992: mov w0, w19 -.L2000: +.L2001: bl nandc_set_seed adrp x2, .LANCHOR2+385 mov x3, x24 @@ -12203,27 +12236,27 @@ flash_complete_page_read: mov x26, x2 ubfx x22, x24, 24, 2 cmp w0, w21 - bhi .L2003 + bhi .L2004 adrp x1, .LANCHOR3 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR3 - mov w2, 907 + mov w2, 911 add x1, x1, 216 add x0, x0, :lo12:.LC0 bl printk bl dump_stack -.L2003: +.L2004: add x0, x19, :lo12:.LANCHOR0 add x21, x0, x21, sxtw ldrb w23, [x21,736] ldr x21, [x0,536] mov w0, w23 bl nandc_cs - cbnz w22, .L2004 + cbnz w22, .L2005 mov w0, w20 bl slc_phy_page_address_calc mov w20, w0 -.L2004: +.L2005: ubfiz x0, x23, 8, 8 add x5, x21, x0 mov w0, 5 @@ -12238,19 +12271,19 @@ flash_complete_page_read: str w0, [x5,2052] mov w0, 224 str w0, [x5,2056] - cbz w22, .L2005 + cbz w22, .L2006 add x0, x19, :lo12:.LANCHOR0 ldr x0, [x0,624] ldrb w0, [x0,12] cmp w0, 3 - bne .L2005 + bne .L2006 sub w0, w22, #1 add w1, w20, w20, lsl 1 add w0, w0, w1 - b .L2037 -.L2005: + b .L2038 +.L2006: mov w0, w20 -.L2037: +.L2038: adrp x21, .LANCHOR2 bl nandc_set_seed add x27, x21, :lo12:.LANCHOR2 @@ -12262,10 +12295,10 @@ flash_complete_page_read: ldrb w2, [x27,9] bl nandc_xfer cmn w0, #1 - bne .L2007 + bne .L2008 add x28, x19, :lo12:.LANCHOR0 ldrb w5, [x28,720] - cbz w5, .L2008 + cbz w5, .L2009 ldrb w4, [x27,9] mov w0, w23 orr w1, w20, w22, lsl 24 @@ -12276,15 +12309,15 @@ flash_complete_page_read: bl flash_read_page ldr x5, [x29,104] strb w5, [x28,720] - cbnz w22, .L2009 -.L2016: + cbnz w22, .L2010 +.L2017: ldrb w2, [x19,#:lo12:.LANCHOR0] add x1, x19, :lo12:.LANCHOR0 - cbz w2, .L2009 + cbz w2, .L2010 ldrb w1, [x1,724] add w1, w1, w1, lsl 1 cmp w0, w1, lsr 2 - blt .L2009 + blt .L2010 add x21, x21, :lo12:.LANCHOR2 ldrb w1, [x21,395] sub w1, w1, #4 @@ -12292,28 +12325,28 @@ flash_complete_page_read: cmp w1, 3 mov w1, 256 csel w0, w0, w1, hi - b .L2024 -.L2009: + b .L2025 +.L2010: cmn w0, #1 - bne .L2024 -.L2017: + bne .L2025 +.L2018: adrp x0, .LANCHOR4+1224 ldr x5, [x0,#:lo12:.LANCHOR4+1224] - cbnz x5, .L2012 -.L2015: + cbnz x5, .L2013 +.L2016: add x19, x19, :lo12:.LANCHOR0 - adrp x0, .LC158 - add x0, x0, :lo12:.LC158 + adrp x0, .LC159 + add x0, x0, :lo12:.LC159 mov w1, 0 mov w2, w24 mov w3, -1 ldrb w4, [x19,720] bl printk ldrb w0, [x19,672] - cbnz w0, .L2013 + cbnz w0, .L2014 mov w0, -1 - b .L2024 -.L2012: + b .L2025 +.L2013: add x4, x21, :lo12:.LANCHOR2 mov w0, w23 orr w1, w20, w22, lsl 24 @@ -12322,9 +12355,9 @@ flash_complete_page_read: ldrb w4, [x4,385] blr x5 cmn w0, #1 - bne .L2024 - b .L2015 -.L2013: + bne .L2025 + b .L2016 +.L2014: add x21, x21, :lo12:.LANCHOR2 mov w0, w23 orr w1, w20, w22, lsl 24 @@ -12332,14 +12365,14 @@ flash_complete_page_read: mov x3, x26 ldrb w4, [x21,385] bl flash_ddr_tuning_read - b .L2024 -.L2007: - cbz w22, .L2016 - b .L2024 + b .L2025 .L2008: - cbz w22, .L2016 - b .L2017 -.L2024: + cbz w22, .L2017 + b .L2025 +.L2009: + cbz w22, .L2017 + b .L2018 +.L2025: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -12362,7 +12395,7 @@ queue_wait_first_req_completed: stp x27, x28, [sp,80] ldrb w21, [x0,2835] cmp w21, 255 - beq .L2122 + beq .L2123 add x0, x0, 784 mov w1, 0 add x0, x0, x21, lsl 6 @@ -12370,45 +12403,45 @@ queue_wait_first_req_completed: ldr w20, [x0,40] sub w3, w2, #1 cmp w3, 9 - bhi .L2040 - adrp x0, .L2042 - add x0, x0, :lo12:.L2042 + bhi .L2041 + adrp x0, .L2043 + add x0, x0, :lo12:.L2043 ldrh w0, [x0,w3,uxtw #1] - adr x1, .Lrtx2042 + adr x1, .Lrtx2043 add x0, x1, w0, sxth #2 br x0 -.Lrtx2042: +.Lrtx2043: .section .rodata .align 0 .align 2 -.L2042: - .2byte (.L2041 - .Lrtx2042) / 4 - .2byte (.L2043 - .Lrtx2042) / 4 - .2byte (.L2044 - .Lrtx2042) / 4 - .2byte (.L2044 - .Lrtx2042) / 4 - .2byte (.L2044 - .Lrtx2042) / 4 - .2byte (.L2045 - .Lrtx2042) / 4 - .2byte (.L2046 - .Lrtx2042) / 4 - .2byte (.L2047 - .Lrtx2042) / 4 - .2byte (.L2044 - .Lrtx2042) / 4 - .2byte (.L2047 - .Lrtx2042) / 4 +.L2043: + .2byte (.L2042 - .Lrtx2043) / 4 + .2byte (.L2044 - .Lrtx2043) / 4 + .2byte (.L2045 - .Lrtx2043) / 4 + .2byte (.L2045 - .Lrtx2043) / 4 + .2byte (.L2045 - .Lrtx2043) / 4 + .2byte (.L2046 - .Lrtx2043) / 4 + .2byte (.L2047 - .Lrtx2043) / 4 + .2byte (.L2048 - .Lrtx2043) / 4 + .2byte (.L2045 - .Lrtx2043) / 4 + .2byte (.L2048 - .Lrtx2043) / 4 .text -.L2041: +.L2042: mov w0, w20 mov w1, 64 bl flash_wait_device_ready - tbz x0, 6, .L2122 + tbz x0, 6, .L2123 add x3, x19, :lo12:.LANCHOR0 add x0, x3, 784 add x0, x0, x21, lsl 6 ldr x2, [x0,16] ldr x1, [x0,8] - cbz x2, .L2049 + cbz x2, .L2050 ldrb w4, [x0,56] ldrb w0, [x3,2832] cmp w4, w0 csel x1, x1, x2, ne -.L2049: +.L2050: add x19, x19, :lo12:.LANCHOR0 mov w0, w20 add x19, x19, 784 @@ -12421,8 +12454,8 @@ queue_wait_first_req_completed: ldrb w0, [x19,2] orr w0, w0, 8 strb w0, [x19,2] - b .L2122 -.L2043: + b .L2123 +.L2044: mov w0, w20 mov w1, 64 bl flash_wait_device_ready @@ -12431,27 +12464,27 @@ queue_wait_first_req_completed: add x3, x2, 784 add x1, x3, x4 ldrb w20, [x3,x4] - tbz x0, 6, .L2122 + tbz x0, 6, .L2123 add x3, x3, x20, lsl 6 ldr x0, [x1,16] ldr x27, [x1,8] ldr x23, [x3,8] - cbz x0, .L2050 + cbz x0, .L2051 ldrb w3, [x1,56] ldrb w1, [x2,2832] cmp w3, w1 csel x27, x27, x0, ne -.L2050: +.L2051: add x2, x19, :lo12:.LANCHOR0 add x0, x2, 784 add x0, x0, x20, lsl 6 ldr x1, [x0,16] - cbz x1, .L2051 + cbz x1, .L2052 ldrb w3, [x0,56] ldrb w0, [x2,2832] cmp w3, w0 csel x23, x23, x1, ne -.L2051: +.L2052: add x24, x19, :lo12:.LANCHOR0 mov x1, x27 add x24, x24, 784 @@ -12469,15 +12502,15 @@ queue_wait_first_req_completed: bl flash_complete_plane_page_read mov w25, w0 cmn w22, #1 - beq .L2052 + beq .L2053 ldr w0, [x28,4] cmn w0, #1 - beq .L2053 + beq .L2054 ldr x1, [x26,8] ldr w1, [x1,4] cmp w0, w1 - beq .L2053 -.L2052: + beq .L2054 +.L2053: add x4, x19, :lo12:.LANCHOR0 mov x2, x27 add x24, x4, 784 @@ -12493,30 +12526,30 @@ queue_wait_first_req_completed: mov w22, w0 ldr w2, [x26,4] cmn w2, #1 - beq .L2054 + beq .L2055 ldr x3, [x24,8] ldr w4, [x3,4] cmp w2, w4 - beq .L2054 + beq .L2055 adrp x0, .LANCHOR2 ldr w0, [x0,#:lo12:.LANCHOR2] - tbz x0, 6, .L2054 - adrp x0, .LC159 + tbz x0, 6, .L2055 + adrp x0, .LC160 ldr w1, [x26,8] ldr w3, [x3] - add x0, x0, :lo12:.LC159 + add x0, x0, :lo12:.LC160 bl printk -.L2054: +.L2055: add x0, x19, :lo12:.LANCHOR0 add x0, x0, 784 add x0, x0, x21, lsl 6 ldr w1, [x0,36] cmn w1, #1 - beq .L2053 + beq .L2054 ldr x0, [x0,24] ldr w0, [x0,4] cmp w1, w0 - beq .L2053 + beq .L2054 adrp x1, .LANCHOR3 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR3 @@ -12525,7 +12558,7 @@ queue_wait_first_req_completed: add x0, x0, :lo12:.LC0 bl printk bl dump_stack -.L2053: +.L2054: add x3, x19, :lo12:.LANCHOR0 mov w1, 12 add x3, x3, 784 @@ -12536,16 +12569,16 @@ queue_wait_first_req_completed: orr w0, w0, 8 strb w1, [x21,58] strb w0, [x21,2] - beq .L2055 + beq .L2056 add x3, x3, x20, lsl 6 ldr w0, [x3,36] cmn w0, #1 - beq .L2057 + beq .L2058 ldr x1, [x3,24] ldr w1, [x1,4] cmp w0, w1 - beq .L2057 -.L2055: + beq .L2058 +.L2056: add x4, x19, :lo12:.LANCHOR0 mov x2, x23 add x21, x4, 784 @@ -12560,30 +12593,30 @@ queue_wait_first_req_completed: bl flash_read_page_en ldr w2, [x24,4] cmn w2, #1 - beq .L2059 + beq .L2060 ldr x3, [x21,8] ldr w4, [x3,4] cmp w2, w4 - beq .L2059 + beq .L2060 adrp x0, .LANCHOR2 ldr w0, [x0,#:lo12:.LANCHOR2] - tbz x0, 6, .L2059 - adrp x0, .LC159 + tbz x0, 6, .L2060 + adrp x0, .LC160 ldr w1, [x24,8] ldr w3, [x3] - add x0, x0, :lo12:.LC159 + add x0, x0, :lo12:.LC160 bl printk -.L2059: +.L2060: add x0, x19, :lo12:.LANCHOR0 add x0, x0, 784 add x0, x0, x20, lsl 6 ldr w1, [x0,36] cmn w1, #1 - beq .L2057 + beq .L2058 ldr x0, [x0,24] ldr w0, [x0,4] cmp w1, w0 - beq .L2057 + beq .L2058 adrp x1, .LANCHOR3 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR3 @@ -12592,7 +12625,7 @@ queue_wait_first_req_completed: add x0, x0, :lo12:.LC0 bl printk bl dump_stack -.L2057: +.L2058: add x19, x19, :lo12:.LANCHOR0 mov w1, 12 add x19, x19, 784 @@ -12602,36 +12635,36 @@ queue_wait_first_req_completed: orr w0, w0, 8 strb w1, [x20,58] strb w0, [x20,2] - b .L2122 -.L2044: + b .L2123 +.L2045: bl nandc_iqr_wait_flash_ready mov w0, w20 mov w1, 64 bl flash_wait_device_ready mov w20, w0 - tbz x20, 6, .L2122 + tbz x20, 6, .L2123 mov w1, 5 add x19, x19, :lo12:.LANCHOR0 ands w1, w20, w1 - beq .L2060 + beq .L2061 add x19, x19, 784 mov w0, 11 add x19, x19, x21, lsl 6 mov w2, w20 mov w4, 11 strb w0, [x19,58] - adrp x0, .LC160 + adrp x0, .LC161 ldrb w1, [x19,1] - add x0, x0, :lo12:.LC160 + add x0, x0, :lo12:.LC161 ldr w3, [x19,40] bl printk mov w0, -1 str w0, [x19,52] - b .L2123 -.L2060: + b .L2124 +.L2061: add x19, x19, x21, lsl 6 - b .L2067 -.L2047: + b .L2068 +.L2048: add x22, x19, :lo12:.LANCHOR0 mov w0, 3 cmp w2, 10 @@ -12640,32 +12673,32 @@ queue_wait_first_req_completed: csel w1, w0, w1, ne ubfx x3, x20, 21, 3 add x0, x22, x21, lsl 6 -.L2062: +.L2063: ldrb w23, [x0] cmp w23, 255 - beq .L2124 + beq .L2125 add x0, x22, x23, lsl 6 ldrb w2, [x0,58] cmp w2, w1 - bne .L2062 + bne .L2063 ldr w2, [x0,40] ubfx x2, x2, 21, 3 cmp w3, w2 - bne .L2062 + bne .L2063 bl nandc_iqr_wait_flash_ready mov w0, w20 mov w1, 64 bl flash_wait_device_ready mov w20, w0 and w0, w0, 64 - tbz x20, 6, .L2070 + tbz x20, 6, .L2071 ands w0, w20, 15 add x22, x22, x21, lsl 6 - beq .L2065 - adrp x0, .LC161 + beq .L2066 + adrp x0, .LC162 ldrb w1, [x22,1] ldr w3, [x22,40] - add x0, x0, :lo12:.LC161 + add x0, x0, :lo12:.LC162 mov w2, w20 mov w4, 11 bl printk @@ -12673,7 +12706,7 @@ queue_wait_first_req_completed: strb w0, [x22,58] mov w0, -1 str w0, [x22,52] -.L2064: +.L2065: add x19, x19, :lo12:.LANCHOR0 add x19, x19, 784 add x21, x19, x21, lsl 6 @@ -12682,52 +12715,52 @@ queue_wait_first_req_completed: strb w0, [x23,58] ldr w0, [x21,52] str w0, [x23,52] -.L2123: +.L2124: mov w1, w20 - b .L2040 -.L2065: + b .L2041 +.L2066: mov w1, 12 str w0, [x22,52] strb w1, [x22,58] -.L2070: +.L2071: mov w20, w0 - b .L2064 -.L2124: + b .L2065 +.L2125: mov w1, -1 - b .L2040 -.L2045: + b .L2041 +.L2046: mov w1, 32 mov w0, w20 bl flash_wait_device_ready - tbz x0, 5, .L2122 + tbz x0, 5, .L2123 ands w1, w0, 15 add x19, x19, :lo12:.LANCHOR0 add x19, x19, x21, lsl 6 - beq .L2067 + beq .L2068 mov w1, 11 strb w1, [x19,842] mov w1, -1 str w1, [x19,836] mov w1, w0 - b .L2040 -.L2067: + b .L2041 +.L2068: mov w0, 12 str w1, [x19,836] strb w0, [x19,842] - b .L2040 -.L2046: + b .L2041 +.L2047: mov w1, 64 mov w0, w20 bl flash_wait_device_ready - tbz x0, 6, .L2122 + tbz x0, 6, .L2123 add x19, x19, :lo12:.LANCHOR0 add x19, x19, x21, lsl 6 str w0, [x19,836] mov w0, 6 strb w0, [x19,842] -.L2122: +.L2123: mov w1, 0 -.L2040: +.L2041: mov w0, w1 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -12745,15 +12778,15 @@ sblk_wait_write_queue_completed: add x29, sp, 0 str x19, [sp,16] adrp x19, .LANCHOR0 -.L2126: +.L2127: add x0, x19, :lo12:.LANCHOR0 ldrb w0, [x0,2835] cmp w0, 255 - beq .L2128 + beq .L2129 bl queue_wait_first_req_completed bl queue_remove_completed_req - b .L2126 -.L2128: + b .L2127 +.L2129: ldr x19, [sp,16] ldp x29, x30, [sp], 32 ret @@ -12827,28 +12860,28 @@ sblk_read_page: mov w20, w21 add x27, x22, 784 add x23, x23, 280 -.L2132: - cbz w20, .L2155 +.L2133: + cbz w20, .L2156 ldrb w28, [x19] ldr w26, [x19,40] -.L2133: +.L2134: mov w0, w26 mov w1, 0 bl queue_lun_state - cbz w0, .L2156 + cbz w0, .L2157 bl queue_wait_first_req_completed bl queue_remove_completed_req - b .L2133 -.L2156: + b .L2134 +.L2157: cmp w20, 1 - beq .L2139 + beq .L2140 adrp x0, .LANCHOR4+1265 ldrb w0, [x0,#:lo12:.LANCHOR4+1265] - cbz w0, .L2139 + cbz w0, .L2140 ldrb w0, [x19] ubfx x3, x26, 21, 3 cmp w0, 255 - bne .L2138 + bne .L2139 adrp x0, .LC0 mov x1, x23 mov w2, 624 @@ -12857,18 +12890,18 @@ sblk_read_page: bl printk bl dump_stack ldr x3, [x29,120] -.L2138: +.L2139: ldrb w24, [x19] lsl x24, x24, 6 add x2, x27, x24 ldr w1, [x2,40] ubfx x0, x1, 21, 3 cmp w3, w0 - bne .L2139 + bne .L2140 ldrh w0, [x22,3350] add w26, w0, w26 cmp w1, w26 - bne .L2139 + bne .L2140 ldr w0, [x19,40] add x26, x22, 2835 str x2, [x29,104] @@ -12894,36 +12927,36 @@ sblk_read_page: strb wzr, [x2,59] strb w3, [x27,x24] bl buf_add_tail - b .L2137 -.L2139: + b .L2138 +.L2140: mov x0, x19 bl queue_read_cmd -.L2137: +.L2138: subs w20, w20, #1 - beq .L2155 + beq .L2156 sbfiz x19, x28, 6, 32 add x19, x27, x19 - b .L2132 -.L2155: + b .L2133 +.L2156: adrp x19, .LANCHOR0 add x19, x19, :lo12:.LANCHOR0 add x19, x19, 784 -.L2143: - cbz w21, .L2157 +.L2144: + cbz w21, .L2158 ldrb w0, [x25,58] cmp w0, 12 - bne .L2144 + bne .L2145 ldrb w0, [x25] sub w21, w21, #1 cmp w0, 255 - beq .L2144 + beq .L2145 sbfiz x25, x0, 6, 32 add x25, x19, x25 -.L2144: +.L2145: bl queue_wait_first_req_completed bl queue_remove_completed_req - b .L2143 -.L2157: + b .L2144 +.L2158: mov w0, w21 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -12958,24 +12991,24 @@ flash_prog_page: add x22, x19, x22, lsl 8 and w24, w1, 2097151 ubfx x27, x23, 24, 2 - tbz x0, 4, .L2159 - adrp x0, .LC162 + tbz x0, 4, .L2160 + adrp x0, .LC163 mov w2, w27 - add x0, x0, :lo12:.LC162 + add x0, x0, :lo12:.LC163 bl printk -.L2159: +.L2160: bl nandc_wait_flash_ready mov w0, w20 bl hynix_reconfig_rr_para mov w0, w20 bl nandc_cs mov w0, w20 - cbnz w27, .L2160 + cbnz w27, .L2161 bl zftl_flash_enter_slc_mode - b .L2161 -.L2160: - bl zftl_flash_exit_slc_mode + b .L2162 .L2161: + bl zftl_flash_exit_slc_mode +.L2162: ubfiz x4, x20, 8, 8 mov w0, 128 add x19, x19, x4 @@ -13007,16 +13040,16 @@ flash_prog_page: mov w0, w20 and w19, w21, 4 bl nandc_de_cs - tbz x21, 2, .L2162 + tbz x21, 2, .L2163 adrp x0, .LANCHOR2 ldr w0, [x0,#:lo12:.LANCHOR2] - tbz x0, 12, .L2162 - adrp x0, .LC163 + tbz x0, 12, .L2163 + adrp x0, .LC164 mov w1, w23 - add x0, x0, :lo12:.LC163 + add x0, x0, :lo12:.LC164 mov w2, w19 bl printk -.L2162: +.L2163: mov w0, w19 ldr x27, [sp,80] ldp x19, x20, [sp,16] @@ -13053,11 +13086,11 @@ flash_test_blk: mov w1, w20 bl flash_erase_block cmn w0, #1 - bne .L2173 -.L2175: + bne .L2174 +.L2176: mov w19, -1 - b .L2174 -.L2173: + b .L2175 +.L2174: adrp x21, .LANCHOR2 ldr x2, [x19,1192] add x21, x21, :lo12:.LANCHOR2 @@ -13068,7 +13101,7 @@ flash_test_blk: ldrb w4, [x21,9] bl flash_prog_page cmn w0, #1 - beq .L2175 + beq .L2176 ldr x2, [x19,1192] mov w0, w22 ldr x3, [x19,1208] @@ -13076,20 +13109,20 @@ flash_test_blk: ldrb w4, [x21,9] bl flash_read_page cmn w0, #1 - beq .L2175 + beq .L2176 ldr x0, [x19,1192] ldr w1, [x0] mov w0, 42405 bfi w0, w0, 16, 16 cmp w1, w0 - bne .L2175 + bne .L2176 ldr x0, [x19,1208] ldr w1, [x0] mov w0, 23130 bfi w0, w0, 16, 16 cmp w1, w0 csetm w19, ne -.L2174: +.L2175: mov w1, w20 mov w0, w22 bl flash_erase_block @@ -13101,8 +13134,8 @@ flash_test_blk: .size flash_test_blk, .-flash_test_blk .section .text.unlikely .align 2 - .type fw_flash_page_prog.constprop.28, %function -fw_flash_page_prog.constprop.28: + .type fw_flash_page_prog.constprop.30, %function +fw_flash_page_prog.constprop.30: stp x29, x30, [sp, -64]! adrp x4, .LANCHOR0 add x29, sp, 0 @@ -13131,9 +13164,346 @@ fw_flash_page_prog.constprop.28: ldp x19, x20, [sp,16] ldp x29, x30, [sp], 64 ret - .size fw_flash_page_prog.constprop.28, .-fw_flash_page_prog.constprop.28 + .size fw_flash_page_prog.constprop.30, .-fw_flash_page_prog.constprop.30 .text .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 x21, x22, [sp,32] + adrp x22, .LANCHOR0 + stp x25, x26, [sp,64] + uxtb w25, w0 + add x0, x22, :lo12:.LANCHOR0 + stp x23, x24, [sp,48] + stp x19, x20, [sp,16] + stp x27, x28, [sp,80] + ubfx x24, x1, 21, 3 + mov x27, x2 + ldrb w0, [x0,633] + mov x26, x3 + and w20, w1, 2097151 + ubfx x23, x1, 24, 2 + cmp w0, w24 + bhi .L2185 + adrp x1, .LANCHOR3 + adrp x0, .LC0 + add x1, x1, :lo12:.LANCHOR3 + mov w2, 706 + add x1, x1, 296 + add x0, x0, :lo12:.LC0 + bl printk + bl dump_stack +.L2185: + add x28, x22, :lo12:.LANCHOR0 + add x0, x28, x24, sxtw + ldrb w21, [x0,736] + ldr x19, [x28,536] + bl nandc_rdy_status + cbnz w0, .L2186 + ldrb w0, [x28,633] + cmp w0, 1 + bne .L2187 + bl nandc_wait_flash_ready + b .L2186 +.L2187: + mov w0, w24 + mov w1, w20 + mov w2, 64 + bl flash_wait_device_ready_raw +.L2186: + mov w0, w21 + bl hynix_reconfig_rr_para + mov w0, w21 + bl nandc_cs + cbnz w23, .L2188 + mov w0, w20 + bl slc_phy_page_address_calc + mov w20, w0 + ldrb w0, [x22,#:lo12:.LANCHOR0] + cbz w0, .L2189 + mov w0, w21 + bl zftl_flash_enter_slc_mode + b .L2189 +.L2188: + mov w0, w21 + bl zftl_flash_exit_slc_mode +.L2189: + ubfiz x4, x21, 8, 8 + mov w0, 128 + add x19, x19, x4 + 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 + str w0, [x19,2052] + mov w0, w20 + bl nandc_set_seed + adrp x1, .LANCHOR2+385 + mov x2, x27 + mov x3, x26 + mov w0, 1 + ldrb w1, [x1,#:lo12:.LANCHOR2+385] + bl nandc_xfer_start + bl nandc_xfer_done + str w25, [x19,2056] + mov w0, w21 + 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,2835] + cmp w2, 255 + beq .L2194 + ubfx x4, x4, 21, 3 + add x1, x1, 784 +.L2196: + add x3, x1, x2, lsl 6 + ldr w5, [x3,40] + ubfx x5, x5, 21, 3 + cmp w4, w5 + bne .L2195 + ldrb w5, [x3,58] + add x3, x3, 48 + cmp w5, 6 + bne .L2195 + mov w1, 3 + strb w1, [x3,10] + b .L2194 +.L2195: + lsl x2, x2, 6 + ldrb w2, [x1,x2] + cmp w2, 255 + bne .L2196 +.L2194: + 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, 2835 + 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, .L2202 + adrp x0, .LANCHOR2 + ldr w0, [x0,#:lo12:.LANCHOR2] + tbz x0, 8, .L2202 + adrp x0, .LC165 + ldr w1, [x19,40] + add x0, x0, :lo12:.LC165 + mov w2, w20 + bl printk +.L2202: + adrp x24, .LANCHOR0 + adrp x25, .LC0 + add x23, x24, :lo12:.LANCHOR0 + mov w21, 0 + add x27, x23, 784 + add x25, x25, :lo12:.LC0 +.L2203: + cbz w20, .L2233 + ldrb w26, [x19] + ldr w22, [x19,40] +.L2204: + mov w0, w22 + mov w1, 1 + bl queue_lun_state + cbz w0, .L2234 + bl queue_wait_first_req_completed + bl queue_remove_completed_req + b .L2204 +.L2234: + cmp w20, 1 + beq .L2206 + add x0, x24, :lo12:.LANCHOR0 + ldrb w0, [x0,781] + cbnz w0, .L2207 +.L2206: + mov x0, x19 + bl queue_prog_cmd + b .L2208 +.L2207: + ldrb w0, [x19] + ubfx x28, x22, 21, 3 + cmp w0, 255 + bne .L2209 + adrp x1, .LANCHOR3 + mov w2, 546 + add x1, x1, :lo12:.LANCHOR3 + mov x0, x25 + add x1, x1, 320 + bl printk + bl dump_stack +.L2209: + ldrb w0, [x19] + add x0, x27, x0, lsl 6 + ldr w4, [x0,40] + ubfx x0, x4, 21, 3 + cmp w28, w0 + bne .L2210 + ldrh w3, [x23,3340] + mov w1, 21 + ldrb w6, [x23,3338] + mov w28, 1 + sub w1, w1, w3 + lsr w0, w22, w3 + sub w6, w6, #1 + lsl w1, w28, w1 + sub w1, w1, #1 + lsl w2, w28, 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 .L2210 + and w22, w2, w22 + and w2, w2, w4 + cmp w22, w2 + bne .L2210 + cmp w21, w6 + beq .L2210 + ldr w1, [x19,40] + mov w0, 17 + ldr x2, [x19,8] + add w21, w21, w28 + ldr x3, [x19,24] + bl flash_start_page_prog + strb w28, [x19,59] + mov w0, 8 + strb w0, [x19,58] + mov w0, -1 + mov x1, x19 + strb w0, [x19] + add x0, x23, 2835 + bl buf_add_tail + b .L2208 +.L2210: + mov x0, x19 + mov w21, 0 + bl queue_prog_cmd +.L2208: + subs w20, w20, #1 + beq .L2233 + add x19, x24, :lo12:.LANCHOR0 + sbfiz x26, x26, 6, 32 + add x19, x19, 784 + add x19, x19, x26 + b .L2203 +.L2233: + 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], 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, .LANCHOR4 + ldrb w1, [x0,2857] + cbz w1, .L2236 + add x2, x20, :lo12:.LANCHOR4 + add x0, x0, 784 + ldrb w2, [x2,1266] + add x0, x0, x2, lsl 6 + bl sblk_prog_page +.L2236: + add x2, x19, :lo12:.LANCHOR0 + add x20, x20, :lo12:.LANCHOR4 + mov w0, -1 + strb wzr, [x2,2857] + strb w0, [x20,1266] + 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+2857 + stp x29, x30, [sp, -16]! + add x29, sp, 0 + ldrb w0, [x0,#:lo12:.LANCHOR0+2857] + cbz w0, .L2240 + bl timer_get_time + adrp x1, .LANCHOR4+1268 + ldr w1, [x1,#:lo12:.LANCHOR4+1268] + add w1, w1, 100 + cmp w0, w1 + bls .L2240 + bl ftl_flush +.L2240: + 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: @@ -13155,28 +13525,28 @@ flash_start_tlc_page_prog: mov x23, x6 cmp w0, w26 mov x19, x4 - bhi .L2184 + bhi .L2245 adrp x1, .LANCHOR3 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR3 - mov w2, 651 - add x1, x1, 296 + mov w2, 655 + add x1, x1, 336 add x0, x0, :lo12:.LC0 bl printk bl dump_stack -.L2184: +.L2245: add x4, x19, :lo12:.LANCHOR0 add x26, x4, x26, sxtw ldrb w26, [x26,736] mov w0, w26 ldr x19, [x4,536] bl nandc_cs - cbz w25, .L2185 + cbz w25, .L2246 sxtw x1, w26 add x1, x1, 8 add x1, x19, x1, lsl 8 str w25, [x1,8] -.L2185: +.L2246: ubfiz x7, x26, 8, 8 mov w0, 128 add x19, x19, x7 @@ -13282,16 +13652,16 @@ sblk_tlc_prog_one_page: mov x20, x0 ldr x0, [x0] ldr w21, [x0,40] -.L2191: +.L2252: mov w0, w21 mov w1, 1 bl queue_lun_state mov w19, w0 - cbz w0, .L2193 + cbz w0, .L2254 bl queue_wait_first_req_completed bl queue_remove_completed_req - b .L2191 -.L2193: + b .L2252 +.L2254: mov x0, x20 bl queue_tlc_prog_cmd ldr x21, [sp,32] @@ -13314,17 +13684,17 @@ sblk_xlc_prog_pages: ldr x0, [x0] mov w24, w2 ldr w20, [x0,40] -.L2195: +.L2256: mov w0, w20 mov w1, 1 bl queue_lun_state - cbz w0, .L2199 + cbz w0, .L2260 bl queue_wait_first_req_completed bl queue_remove_completed_req - b .L2195 -.L2199: + b .L2256 +.L2260: cmp w24, 2 - bne .L2197 + bne .L2258 ldr x6, [x19] mov w1, 1 ldr x0, [x22] @@ -13408,11 +13778,11 @@ sblk_xlc_prog_pages: add x0, x0, :lo12:.LANCHOR0 add x0, x0, 2835 bl buf_add_tail - b .L2198 -.L2197: + b .L2259 +.L2258: mov x0, x19 bl queue_tlc_prog_cmd -.L2198: +.L2259: mov w0, 0 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -13421,419 +13791,82 @@ 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 x21, x22, [sp,32] - adrp x22, .LANCHOR0 - stp x25, x26, [sp,64] - uxtb w25, w0 - add x0, x22, :lo12:.LANCHOR0 - stp x23, x24, [sp,48] - stp x19, x20, [sp,16] - stp x27, x28, [sp,80] - ubfx x24, x1, 21, 3 - mov x27, x2 - ldrb w0, [x0,633] - mov x26, x3 - and w20, w1, 2097151 - ubfx x23, x1, 24, 2 - cmp w0, w24 - bhi .L2201 - adrp x1, .LANCHOR3 - adrp x0, .LC0 - add x1, x1, :lo12:.LANCHOR3 - mov w2, 702 - add x1, x1, 328 - add x0, x0, :lo12:.LC0 - bl printk - bl dump_stack -.L2201: - add x28, x22, :lo12:.LANCHOR0 - add x0, x28, x24, sxtw - ldrb w21, [x0,736] - ldr x19, [x28,536] - bl nandc_rdy_status - cbnz w0, .L2202 - ldrb w0, [x28,633] - cmp w0, 1 - bne .L2203 - bl nandc_wait_flash_ready - b .L2202 -.L2203: - mov w0, w24 - mov w1, w20 - mov w2, 64 - bl flash_wait_device_ready_raw -.L2202: - mov w0, w21 - bl hynix_reconfig_rr_para - mov w0, w21 - bl nandc_cs - cbnz w23, .L2204 - mov w0, w20 - bl slc_phy_page_address_calc - mov w20, w0 - ldrb w0, [x22,#:lo12:.LANCHOR0] - cbz w0, .L2205 - mov w0, w21 - bl zftl_flash_enter_slc_mode - b .L2205 -.L2204: - mov w0, w21 - bl zftl_flash_exit_slc_mode -.L2205: - ubfiz x4, x21, 8, 8 - mov w0, 128 - add x19, x19, x4 - 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 - str w0, [x19,2052] - mov w0, w20 - bl nandc_set_seed - adrp x1, .LANCHOR2+385 - mov x2, x27 - mov x3, x26 - mov w0, 1 - ldrb w1, [x1,#:lo12:.LANCHOR2+385] - bl nandc_xfer_start - bl nandc_xfer_done - str w25, [x19,2056] - mov w0, w21 - 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,2835] - cmp w2, 255 - beq .L2210 - ubfx x4, x4, 21, 3 - add x1, x1, 784 -.L2212: - add x3, x1, x2, lsl 6 - ldr w5, [x3,40] - ubfx x5, x5, 21, 3 - cmp w4, w5 - bne .L2211 - ldrb w5, [x3,58] - add x3, x3, 48 - cmp w5, 6 - bne .L2211 - mov w1, 3 - strb w1, [x3,10] - b .L2210 -.L2211: - lsl x2, x2, 6 - ldrb w2, [x1,x2] - cmp w2, 255 - bne .L2212 -.L2210: - 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, 2835 - 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, .L2218 - adrp x0, .LANCHOR2 - ldr w0, [x0,#:lo12:.LANCHOR2] - tbz x0, 8, .L2218 - adrp x0, .LC164 - ldr w1, [x19,40] - add x0, x0, :lo12:.LC164 - mov w2, w20 - bl printk -.L2218: - adrp x24, .LANCHOR0 - adrp x25, .LC0 - add x23, x24, :lo12:.LANCHOR0 - mov w21, 0 - add x27, x23, 784 - add x25, x25, :lo12:.LC0 -.L2219: - cbz w20, .L2249 - ldrb w26, [x19] - ldr w22, [x19,40] -.L2220: - mov w0, w22 - mov w1, 1 - bl queue_lun_state - cbz w0, .L2250 - bl queue_wait_first_req_completed - bl queue_remove_completed_req - b .L2220 -.L2250: - cmp w20, 1 - beq .L2222 - add x0, x24, :lo12:.LANCHOR0 - ldrb w0, [x0,781] - cbnz w0, .L2223 -.L2222: - mov x0, x19 - bl queue_prog_cmd - b .L2224 -.L2223: - ldrb w0, [x19] - ubfx x28, x22, 21, 3 - cmp w0, 255 - bne .L2225 - adrp x1, .LANCHOR3 - mov w2, 546 - add x1, x1, :lo12:.LANCHOR3 - mov x0, x25 - add x1, x1, 352 - bl printk - bl dump_stack -.L2225: - ldrb w0, [x19] - add x0, x27, x0, lsl 6 - ldr w4, [x0,40] - ubfx x0, x4, 21, 3 - cmp w28, w0 - bne .L2226 - ldrh w3, [x23,3340] - mov w1, 21 - ldrb w6, [x23,3338] - mov w28, 1 - sub w1, w1, w3 - lsr w0, w22, w3 - sub w6, w6, #1 - lsl w1, w28, w1 - sub w1, w1, #1 - lsl w2, w28, 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 .L2226 - and w22, w2, w22 - and w2, w2, w4 - cmp w22, w2 - bne .L2226 - cmp w21, w6 - beq .L2226 - ldr w1, [x19,40] - mov w0, 17 - ldr x2, [x19,8] - add w21, w21, w28 - ldr x3, [x19,24] - bl flash_start_page_prog - strb w28, [x19,59] - mov w0, 8 - strb w0, [x19,58] - mov w0, -1 - mov x1, x19 - strb w0, [x19] - add x0, x23, 2835 - bl buf_add_tail - b .L2224 -.L2226: - mov x0, x19 - mov w21, 0 - bl queue_prog_cmd -.L2224: - subs w20, w20, #1 - beq .L2249 - add x19, x24, :lo12:.LANCHOR0 - sbfiz x26, x26, 6, 32 - add x19, x19, 784 - add x19, x19, x26 - b .L2219 -.L2249: - 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], 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, .LANCHOR4 - ldrb w1, [x0,2857] - cbz w1, .L2252 - add x2, x20, :lo12:.LANCHOR4 - add x0, x0, 784 - ldrb w2, [x2,1266] - add x0, x0, x2, lsl 6 - bl sblk_prog_page -.L2252: - add x2, x19, :lo12:.LANCHOR0 - add x20, x20, :lo12:.LANCHOR4 - mov w0, -1 - strb wzr, [x2,2857] - strb w0, [x20,1266] - 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+2857 - stp x29, x30, [sp, -16]! - add x29, sp, 0 - ldrb w0, [x0,#:lo12:.LANCHOR0+2857] - cbz w0, .L2256 - bl timer_get_time - adrp x1, .LANCHOR4+1268 - ldr w1, [x1,#:lo12:.LANCHOR4+1268] - add w1, w1, 100 - cmp w0, w1 - bls .L2256 - bl ftl_flush -.L2256: - 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, -96]! adrp x6, .LANCHOR0 add x29, sp, 0 - stp x21, x22, [sp,32] - uxtb w21, w0 + stp x23, x24, [sp,48] + uxtb w23, w0 add x0, x6, :lo12:.LANCHOR0 stp x19, x20, [sp,16] - stp x23, x24, [sp,48] + stp x21, x22, [sp,32] stp x25, x26, [sp,64] stp x27, x28, [sp,80] mov w20, w1 - mov x23, x2 + mov x22, x2 ldrb w0, [x0,633] - mov x22, x3 + mov x21, x3 mov w24, w4 uxtb w25, w5 - cmp w0, w21 + cmp w0, w23 ubfx x28, x20, 24, 2 mov x19, x6 - bhi .L2261 + bhi .L2262 adrp x1, .LANCHOR3 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR3 - mov w2, 476 + mov w2, 478 add x1, x1, 368 add x0, x0, :lo12:.LC0 bl printk bl dump_stack -.L2261: +.L2262: add x0, x19, :lo12:.LANCHOR0 mov w26, w20 - add x1, x0, x21, sxtw + add x1, x0, x23, sxtw ldrb w27, [x1,736] - cbnz w28, .L2262 + cbnz w28, .L2263 adrp x1, .LANCHOR0 ldrb w1, [x1,#:lo12:.LANCHOR0] - cbz w1, .L2263 + cbz w1, .L2264 ldrb w0, [x0,1] - cbz w0, .L2262 -.L2263: + cbz w0, .L2263 +.L2264: add x6, x19, :lo12:.LANCHOR0 ldrh w26, [x6,2] ldrb w1, [x6,1] udiv w2, w20, w26 mul w26, w2, w26 sub w0, w20, w26 - cbz w1, .L2264 + cbz w1, .L2265 add w26, w26, w0, lsl 1 - b .L2262 -.L2264: + b .L2263 +.L2265: add x6, x6, 4 ldrh w0, [x6,w0,uxtw 1] add w26, w0, w26 -.L2262: +.L2263: adrp x0, .LANCHOR2 ldr w0, [x0,#:lo12:.LANCHOR2] - tbz x0, 4, .L2265 - adrp x0, .LC165 + tbz x0, 4, .L2266 + adrp x0, .LC166 mov w1, w27 - add x0, x0, :lo12:.LC165 + add x0, x0, :lo12:.LC166 mov w2, w20 bl printk -.L2265: +.L2266: mov w1, w26 mov w0, w27 - mov x2, x23 - mov x3, x22 + mov x2, x22 + mov x3, x21 mov w4, w24 bl flash_prog_page mov w26, w0 - cbz w25, .L2266 + cbz w25, .L2267 adrp x19, .LANCHOR4 - mov w0, w21 + mov w0, w23 add x25, x19, :lo12:.LANCHOR4 mov w1, w20 mov w4, w24 @@ -13841,53 +13874,65 @@ flash_prog_page_en: ldr x3, [x25,1256] bl flash_read_page_en cmp w0, 512 - beq .L2267 + beq .L2268 cmn w0, #1 - beq .L2267 + beq .L2268 ldr x0, [x25,1248] - ldr w1, [x23] - ldr w0, [x0] - cmp w1, w0 - bne .L2267 - ldr x0, [x25,1256] ldr w1, [x22] ldr w0, [x0] cmp w1, w0 - beq .L2266 -.L2267: - add x19, x19, :lo12:.LANCHOR4 - mov w2, 4 - adrp x0, .LC166 - mov w3, w2 - add x0, x0, :lo12:.LC166 - ldr x1, [x19,1256] - bl rknand_print_hex + bne .L2268 + ldr x0, [x25,1256] + ldr w1, [x21] + ldr w0, [x0] + cmp w1, w0 + beq .L2267 +.L2268: mov w2, 4 adrp x0, .LC167 - ldr x1, [x19,1248] + mov x1, x22 + mov w3, w2 add x0, x0, :lo12:.LC167 + add x19, x19, :lo12:.LANCHOR4 + bl rknand_print_hex + mov w2, 4 + adrp x0, .LC168 + mov x1, x21 + mov w3, w2 + add x0, x0, :lo12:.LC168 + bl rknand_print_hex + ldr x1, [x19,1256] + mov w2, 4 + adrp x0, .LC169 + mov w3, w2 + add x0, x0, :lo12:.LC169 + bl rknand_print_hex + mov w2, 4 + adrp x0, .LC170 + ldr x1, [x19,1248] + add x0, x0, :lo12:.LC170 mov w3, w2 bl rknand_print_hex - b .L2268 -.L2266: + b .L2269 +.L2267: cmn w26, #1 mov w0, w26 - bne .L2269 -.L2268: - adrp x0, .LC168 + bne .L2270 +.L2269: + adrp x0, .LC171 mov w1, w20 - add x0, x0, :lo12:.LC168 + add x0, x0, :lo12:.LC171 bl printk adrp x1, .LANCHOR3 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR3 - mov w2, 502 + mov w2, 506 add x1, x1, 368 add x0, x0, :lo12:.LC0 bl printk bl dump_stack mov w0, -1 -.L2269: +.L2270: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -13918,7 +13963,7 @@ ftl_prog_page: bl flash_prog_page_en cmn w0, #1 mov w19, w0 - bne .L2283 + bne .L2284 adrp x2, .LANCHOR3 adrp x0, .LC0 add x1, x2, :lo12:.LANCHOR3 @@ -13927,11 +13972,11 @@ ftl_prog_page: mov w2, 2150 bl printk bl dump_stack - adrp x0, .LC168 + adrp x0, .LC171 mov w1, w20 - add x0, x0, :lo12:.LC168 + add x0, x0, :lo12:.LC171 bl printk -.L2283: +.L2284: mov w0, w19 ldp x19, x20, [sp,16] ldp x29, x30, [sp], 64 @@ -13956,15 +14001,15 @@ ftl_info_flush: adrp x23, .LANCHOR3 add x19, x22, :lo12:.LANCHOR4 ldrb w2, [x0,2832] - adrp x24, .LC169 + adrp x24, .LC172 add x23, x23, :lo12:.LANCHOR3 add x0, x19, 1280 lsl w2, w2, 1 mov w25, 0 - add x24, x24, :lo12:.LC169 + add x24, x24, :lo12:.LC172 add x23, x23, 408 bl ftl_memset -.L2285: +.L2286: add x0, x21, :lo12:.LANCHOR0 ldrb w27, [x19,1536] ldrh w20, [x19,1538] @@ -13979,29 +14024,29 @@ ftl_info_flush: str w0, [x19,1284] adrp x0, .LANCHOR2 ldr w0, [x0,#:lo12:.LANCHOR2] - tbz x0, 12, .L2286 + tbz x0, 12, .L2287 ldr w3, [x3,4] mov x0, x24 mov w1, w27 mov w2, w20 bl printk -.L2286: +.L2287: add x1, x21, :lo12:.LANCHOR0 ldrh w0, [x19,1538] ldrh w1, [x1,3300] cmp w1, w0 - bhi .L2287 + bhi .L2288 adrp x20, .LC0 add x20, x20, :lo12:.LC0 -.L2292: +.L2293: ldrb w1, [x19,1537] add w1, w1, 1 uxtb w1, w1 strb w1, [x19,1537] cmp w1, 7 - bls .L2288 + bls .L2289 mov x1, 0 -.L2291: +.L2292: add x0, x21, :lo12:.LANCHOR0 uxth w25, w1 ldr x2, [x0,728] @@ -14011,24 +14056,24 @@ ftl_info_flush: add w0, w2, 127 uxtb w0, w0 cmp w0, 125 - bhi .L2289 + bhi .L2290 mov x1, x23 mov w2, 742 mov x0, x20 bl printk bl dump_stack - b .L2290 -.L2289: + b .L2291 +.L2290: cmp w2, 255 - bne .L2290 + bne .L2291 add x1, x1, 1 cmp x1, 8 - bne .L2291 + bne .L2292 mov w25, w1 -.L2290: +.L2291: strb w25, [x19,1537] mov w25, 1 -.L2288: +.L2289: add x27, x21, :lo12:.LANCHOR0 ldrb w1, [x19,1537] ldr x0, [x27,728] @@ -14036,7 +14081,7 @@ ftl_info_flush: ldrb w2, [x1,40] strb w2, [x19,1536] cmp w2, 255 - beq .L2292 + beq .L2293 ldrh w20, [x27,3350] mov w0, 0 mul w20, w2, w20 @@ -14051,13 +14096,13 @@ ftl_info_flush: bl ftl_prog_page mov w0, 1 strh w0, [x19,1538] - b .L2293 -.L2287: + b .L2294 +.L2288: madd w20, w27, w28, w20 - cbnz w0, .L2293 + cbnz w0, .L2294 mov w1, w20 bl flash_erase_block -.L2293: +.L2294: add x4, x21, :lo12:.LANCHOR0 mov w1, w20 mov w0, 0 @@ -14070,21 +14115,21 @@ ftl_info_flush: adrp x0, .LANCHOR5 add w1, w1, 1 strh w1, [x19,1538] - beq .L2294 + beq .L2295 add x1, x0, :lo12:.LANCHOR5 ldrb w1, [x1,576] - cbz w1, .L2295 -.L2294: + cbz w1, .L2296 +.L2295: add x0, x0, :lo12:.LANCHOR5 strb wzr, [x0,576] - b .L2285 -.L2295: - cbnz w25, .L2296 -.L2304: + b .L2286 +.L2296: + cbnz w25, .L2297 +.L2305: add x22, x22, :lo12:.LANCHOR4 ldrb w0, [x22,1536] cmp w0, 255 - bne .L2298 + bne .L2299 adrp x1, .LANCHOR3 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR3 @@ -14093,8 +14138,8 @@ ftl_info_flush: add x0, x0, :lo12:.LC0 bl printk bl dump_stack - b .L2298 -.L2296: + b .L2299 +.L2297: ldrb w19, [x19,1537] adrp x20, .LANCHOR3 adrp x23, .LC0 @@ -14102,9 +14147,9 @@ ftl_info_flush: add w19, w19, 1 add x23, x23, :lo12:.LC0 add x20, x20, 408 -.L2299: +.L2300: cmp w19, 7 - bhi .L2304 + bhi .L2305 add x0, x21, :lo12:.LANCHOR0 ldr x1, [x0,728] add w0, w19, 8 @@ -14113,27 +14158,27 @@ ftl_info_flush: add w0, w24, 127 uxtb w0, w0 cmp w0, 125 - bhi .L2300 + bhi .L2301 mov x1, x20 mov w2, 771 mov x0, x23 bl printk bl dump_stack - b .L2301 -.L2300: - cmp w24, 255 - beq .L2302 + b .L2302 .L2301: + cmp w24, 255 + beq .L2303 +.L2302: add x0, x21, :lo12:.LANCHOR0 ldrh w1, [x0,3350] mov w0, 0 mul w1, w24, w1 bl flash_erase_block -.L2302: +.L2303: add w19, w19, 1 uxth w19, w19 - b .L2299 -.L2298: + b .L2300 +.L2299: mov w0, 0 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -14172,10 +14217,10 @@ ftl_info_blk_init: str x1, [x23,2864] mov w1, 0 str x24, [x23,584] - adrp x26, .LC170 + adrp x26, .LC173 adrp x27, .LANCHOR2 bl ftl_memset - add x26, x26, :lo12:.LC170 + add x26, x26, :lo12:.LC173 add x0, x20, 640 mov w1, 0 mov w2, 16384 @@ -14187,7 +14232,7 @@ ftl_info_blk_init: strh wzr, [x22,1538] ldrb w0, [x0,40] strb w0, [x22,1536] -.L2322: +.L2323: add x5, x19, :lo12:.LANCHOR0 add w0, w20, 8 sxth w25, w20 @@ -14195,7 +14240,7 @@ ftl_info_blk_init: add x0, x1, x0, sxtw ldrb w1, [x0,32] cmp w1, 255 - beq .L2318 + beq .L2319 ldrh w22, [x5,3350] mov w0, 0 ldrb w4, [x5,2832] @@ -14208,7 +14253,7 @@ ftl_info_blk_init: cmn w0, #1 mov w28, w0 ldr x5, [x29,104] - bne .L2319 + bne .L2320 ldrb w4, [x5,2832] mov w0, 0 add w1, w22, 1 @@ -14216,9 +14261,9 @@ ftl_info_blk_init: mov x3, x23 bl ftl_read_page mov w28, w0 -.L2319: +.L2320: ldr w0, [x27,#:lo12:.LANCHOR2] - tbz x0, 12, .L2320 + tbz x0, 12, .L2321 add x0, x19, :lo12:.LANCHOR0 mov w1, w20 mov w2, w28 @@ -14227,39 +14272,39 @@ ftl_info_blk_init: mov x0, x26 ldr w4, [x4] bl printk -.L2320: +.L2321: cmn w28, #1 - beq .L2318 + beq .L2319 add x0, x19, :lo12:.LANCHOR0 ldr x0, [x0,2864] ldr w1, [x0] mov w0, 21574 movk w0, 0x494c, lsl 16 cmp w1, w0 - beq .L2330 -.L2318: + beq .L2331 +.L2319: sub w20, w20, #1 cmn w20, #1 - bne .L2322 + bne .L2323 mov w25, 0 - b .L2321 -.L2330: + b .L2322 +.L2331: mov w20, w25 -.L2321: +.L2322: adrp x0, .LANCHOR2 ldr w0, [x0,#:lo12:.LANCHOR2] - tbz x0, 12, .L2323 + tbz x0, 12, .L2324 add x0, x19, :lo12:.LANCHOR0 mov w1, w20 mov w2, 4800 ldr x3, [x0,2864] - adrp x0, .LC171 - add x0, x0, :lo12:.LC171 + adrp x0, .LC174 + add x0, x0, :lo12:.LC174 ldr w3, [x3] bl printk -.L2323: +.L2324: cmn w20, #1 - bne .L2324 + bne .L2325 add x0, x21, :lo12:.LANCHOR4 mov w1, 0 add x19, x19, :lo12:.LANCHOR0 @@ -14270,13 +14315,13 @@ ftl_info_blk_init: mov w0, 21574 movk w0, 0x494c, lsl 16 str w0, [x1] - mov w0, 17 + mov w0, 20 movk w0, 0x6, lsl 16 ldr x1, [x19,2864] str w0, [x1,12] mov w0, w20 - b .L2325 -.L2324: + b .L2326 +.L2325: add x26, x19, :lo12:.LANCHOR0 add x23, x21, :lo12:.LANCHOR4 add w0, w25, 8 @@ -14298,8 +14343,8 @@ ftl_info_blk_init: ldrb w0, [x23,1536] ldrh w23, [x26,3350] mul w23, w0, w23 -.L2326: - tbnz w22, #31, .L2329 +.L2327: + tbnz w22, #31, .L2330 add x26, x19, :lo12:.LANCHOR0 mov w0, 0 add w1, w22, w23 @@ -14308,14 +14353,14 @@ ftl_info_blk_init: ldrb w4, [x26,2832] bl ftl_read_page cmn w0, #1 - beq .L2327 + beq .L2328 ldr x0, [x26,2864] ldr w1, [x0] mov w0, 21574 movk w0, 0x494c, lsl 16 cmp w1, w0 - bne .L2327 -.L2329: + bne .L2328 +.L2330: add x21, x21, :lo12:.LANCHOR4 add x19, x19, :lo12:.LANCHOR0 strh w20, [x21,1538] @@ -14329,12 +14374,12 @@ ftl_info_blk_init: mov w0, 0 bl ftl_info_flush mov w0, 0 - b .L2325 -.L2327: + b .L2326 +.L2328: sub w22, w22, #1 sxth w22, w22 - b .L2326 -.L2325: + b .L2327 +.L2326: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -14361,17 +14406,17 @@ ftl_ext_info_flush: ldr x1, [x1,608] ldr w3, [x1,520] cmp w0, w3 - bls .L2348 + bls .L2349 ldr w2, [x1,12] sub w2, w2, w3 add w2, w2, w0 str w2, [x1,12] - b .L2361 -.L2348: - bcs .L2349 -.L2361: - str w0, [x1,520] + b .L2362 .L2349: + bcs .L2350 +.L2362: + str w0, [x1,520] +.L2350: adrp x23, .LANCHOR3 adrp x19, .LANCHOR4 add x23, x23, :lo12:.LANCHOR3 @@ -14380,11 +14425,11 @@ ftl_ext_info_flush: add x23, x23, 424 add x19, x19, 1280 bl ftl_total_vpn_update -.L2350: +.L2351: adrp x24, .LANCHOR5 add x24, x24, :lo12:.LANCHOR5 add x25, x24, 640 -.L2353: +.L2354: add x2, x22, :lo12:.LANCHOR0 ldr x0, [x2,2864] ldr w1, [x0,56] @@ -14393,22 +14438,22 @@ ftl_ext_info_flush: ldrh w1, [x0,140] ldrh w0, [x2,3300] cmp w1, w0 - bcc .L2351 + bcc .L2352 bl ftl_ext_alloc_new_blk -.L2351: +.L2352: add x0, x22, :lo12:.LANCHOR0 ldr x0, [x0,2864] ldrh w1, [x0,130] mov w0, 65535 cmp w1, w0 - bne .L2352 + bne .L2353 adrp x0, .LC0 mov x1, x23 mov w2, 1746 add x0, x0, :lo12:.LC0 bl printk bl dump_stack -.L2352: +.L2353: add x21, x22, :lo12:.LANCHOR0 mov w0, 21 mov w1, 1 @@ -14445,17 +14490,17 @@ ftl_ext_info_flush: uxth w1, w1 strh w1, [x2,140] cmp w1, 1 - beq .L2353 - cmn w0, #1 beq .L2354 + cmn w0, #1 + beq .L2355 ldrb w0, [x24,578] - cbz w0, .L2355 -.L2354: + cbz w0, .L2356 +.L2355: adrp x0, .LANCHOR5 add x0, x0, :lo12:.LANCHOR5 strb wzr, [x0,578] - b .L2350 -.L2355: + b .L2351 +.L2356: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -14502,26 +14547,26 @@ ftl_ext_info_init: adrp x0, .LANCHOR2 mov w23, w24 ldr w0, [x0,#:lo12:.LANCHOR2] - tbz x0, 12, .L2363 + tbz x0, 12, .L2364 ldr x5, [x26,2864] adrp x1, .LANCHOR3 - adrp x0, .LC172 + adrp x0, .LC175 add x1, x1, :lo12:.LANCHOR3 - add x0, x0, :lo12:.LC172 + add x0, x0, :lo12:.LC175 add x1, x1, 448 ldrh w5, [x5,130] mov w2, 1790 mov w3, w24 uxth w4, w27 bl printk -.L2363: +.L2364: add x20, x20, :lo12:.LANCHOR5 add x21, x21, :lo12:.LANCHOR4 mov w26, w24 add x20, x20, 640 add x21, x21, 1280 -.L2364: - tbnz w26, #31, .L2369 +.L2365: + tbnz w26, #31, .L2370 add x27, x19, :lo12:.LANCHOR0 mov w0, w25 mov x2, x20 @@ -14531,31 +14576,31 @@ ftl_ext_info_init: madd w1, w22, w1, w26 bl flash_read_page_en cmp w0, 512 - beq .L2365 + beq .L2366 cmn w0, #1 - beq .L2365 + beq .L2366 ldr x0, [x27,608] ldr w1, [x0] mov w0, 20038 movk w0, 0x4549, lsl 16 cmp w1, w0 - bne .L2365 -.L2369: + bne .L2366 +.L2370: bl zftl_sblk_list_init add x0, x19, :lo12:.LANCHOR0 ldr x0, [x0,2864] ldrh w1, [x0,140] cmp w1, w24 - bgt .L2367 + bgt .L2368 add w23, w23, 1 strh w23, [x0,140] bl ftl_ext_info_flush - b .L2367 -.L2365: + b .L2368 +.L2366: sub w26, w26, #1 sxth w26, w26 - b .L2364 -.L2367: + b .L2365 +.L2368: add x19, x19, :lo12:.LANCHOR0 ldr x20, [x19,608] bl timer_get_time @@ -14616,13 +14661,13 @@ ftl_write_last_log_page: ldrh w24, [x0,12] cmp w1, 1 ldr x22, [x19,3872] - bne .L2381 + bne .L2382 mov x20, x0 bl ftl_get_new_free_page cmn w0, #1 mov w23, w0 mov w21, 0 - beq .L2381 + beq .L2382 ldrh w0, [x20] add x22, x22, x24, uxth 2 bl ftl_vpn_decrement @@ -14647,7 +14692,7 @@ ftl_write_last_log_page: str w21, [x2,8] str w21, [x2,12] bl ftl_prog_ppa_page -.L2381: +.L2382: mov w0, w21 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -14670,34 +14715,34 @@ ftl_open_sblk_recovery: stp x21, x22, [sp,32] stp x25, x26, [sp,64] mov x27, x1 - tbz x0, 12, .L2386 - adrp x0, .LC173 - ldrh w1, [x19,2] - add x0, x0, :lo12:.LC173 - bl printk -.L2386: - ldr w0, [x24,#:lo12:.LANCHOR2] tbz x0, 12, .L2387 - adrp x0, .LC174 - ldrb w1, [x19,5] - add x0, x0, :lo12:.LC174 + adrp x0, .LC176 + ldrh w1, [x19,2] + add x0, x0, :lo12:.LC176 bl printk .L2387: ldr w0, [x24,#:lo12:.LANCHOR2] tbz x0, 12, .L2388 - adrp x0, .LC175 - ldrh w1, [x19] - add x0, x0, :lo12:.LC175 + adrp x0, .LC177 + ldrb w1, [x19,5] + add x0, x0, :lo12:.LC177 bl printk .L2388: ldr w0, [x24,#:lo12:.LANCHOR2] tbz x0, 12, .L2389 - adrp x0, .LC176 - ldrh w1, [x19,16] - ldrh w2, [x19,18] - add x0, x0, :lo12:.LC176 + adrp x0, .LC178 + ldrh w1, [x19] + add x0, x0, :lo12:.LC178 bl printk .L2389: + ldr w0, [x24,#:lo12:.LANCHOR2] + tbz x0, 12, .L2390 + adrp x0, .LC179 + ldrh w1, [x19,16] + ldrh w2, [x19,18] + add x0, x0, :lo12:.LC179 + bl printk +.L2390: ldrh w0, [x19,10] adrp x21, .LANCHOR0 strh w0, [x19,14] @@ -14705,7 +14750,7 @@ ftl_open_sblk_recovery: ldrh w1, [x19] ldrh w0, [x0,576] cmp w1, w0 - bcs .L2385 + bcs .L2386 mov w0, 1 adrp x25, .LANCHOR4 adrp x26, .LANCHOR3 @@ -14719,21 +14764,21 @@ ftl_open_sblk_recovery: mov w28, 0 add x25, x25, 1280 str x0, [x29,120] -.L2392: +.L2393: add x0, x21, :lo12:.LANCHOR0 ldrh w0, [x0,3300] cmp w0, w23 - bls .L2395 + bls .L2396 ldrb w22, [x19,5] -.L2393: +.L2394: ldrb w0, [x19,9] cmp w0, w22 - bls .L2469 + bls .L2470 add x0, x19, x22, sxtw 1 ldrh w0, [x0,16] mov w1, 65535 cmp w0, w1 - beq .L2394 + beq .L2395 add x3, x21, :lo12:.LANCHOR0 ldr x2, [x20,24] ldrh w1, [x3,3350] @@ -14743,21 +14788,21 @@ ftl_open_sblk_recovery: bl ftl_read_ppa_page cmp w0, 512 mov w26, w0 - beq .L2395 - cmn w0, #1 beq .L2396 + cmn w0, #1 + beq .L2397 ldr x0, [x20,24] ldr w1, [x0] cmn w1, #1 - bne .L2396 + bne .L2397 ldr w0, [x0,4] cmn w0, #1 - bne .L2396 + bne .L2397 ldr x0, [x20,8] ldr w0, [x0] cmn w0, #1 - beq .L2395 -.L2396: + beq .L2396 +.L2397: adrp x0, .LANCHOR5+577 mov w1, 1 strb w1, [x0,#:lo12:.LANCHOR5+577] @@ -14765,14 +14810,14 @@ ftl_open_sblk_recovery: ldrh w1, [x19,10] madd w0, w23, w0, w22 cmp w1, w0 - beq .L2397 + beq .L2398 adrp x0, .LC0 ldr x1, [x29,120] mov w2, 1395 add x0, x0, :lo12:.LC0 bl printk bl dump_stack -.L2397: +.L2398: ldrh w0, [x19,10] ldrh w1, [x19,6] ldrb w2, [x19,9] @@ -14781,28 +14826,28 @@ ftl_open_sblk_recovery: ldrh w0, [x0,3300] mul w0, w0, w2 cmp w1, w0 - beq .L2398 + beq .L2399 adrp x0, .LC0 ldr x1, [x29,120] mov w2, 1396 add x0, x0, :lo12:.LC0 bl printk bl dump_stack -.L2398: +.L2399: cmn w26, #1 - beq .L2402 + beq .L2403 ldr x0, [x20,24] ldr w0, [x0,4] cmn w0, #1 - beq .L2402 + beq .L2403 bl lpa_hash_get_ppa - cbz x27, .L2400 + cbz x27, .L2401 ldr x2, [x20,24] ldr w3, [x2,8] cmp w0, w3 - beq .L2400 + beq .L2401 cmn w0, #1 - beq .L2400 + beq .L2401 add x4, x21, :lo12:.LANCHOR0 mov w5, 21 mov w28, 1 @@ -14816,7 +14861,7 @@ ftl_open_sblk_recovery: udiv w3, w3, w1 ldrh w1, [x27] cmp w1, w3, uxth - bne .L2400 + bne .L2401 ldr w6, [x2] mov x2, x25 ldrb w3, [x4,2832] @@ -14830,11 +14875,11 @@ ftl_open_sblk_recovery: ldr x4, [x29,112] cmp w0, w6 ldr x5, [x29,96] - bcc .L2400 + bcc .L2401 ldr x0, [x20,24] ldr w1, [x0,8] cmn w1, #1 - beq .L2402 + beq .L2403 ldrh w0, [x4,3340] sub w5, w5, w0 lsr w1, w1, w0 @@ -14844,22 +14889,22 @@ ftl_open_sblk_recovery: and w1, w28, w1 udiv w0, w1, w0 bl ftl_vpn_decrement - b .L2402 -.L2400: + b .L2403 +.L2401: ldr x2, [x20,24] add x1, x21, :lo12:.LANCHOR0 ldr w3, [x2,4] ldr w0, [x1,2840] cmp w3, w0 - bcs .L2402 + bcs .L2403 ldrb w0, [x19,9] ldrh w4, [x1,3300] ldrh w3, [x19,10] mul w0, w0, w4 sub w0, w0, #1 cmp w3, w0 - blt .L2470 -.L2402: + blt .L2471 +.L2403: ldrh w0, [x19,6] mov w28, 1 sub w0, w0, #1 @@ -14867,16 +14912,16 @@ ftl_open_sblk_recovery: ldrh w0, [x19,10] add w0, w0, 1 strh w0, [x19,10] -.L2394: +.L2395: add w22, w22, 1 uxth w22, w22 - b .L2393 -.L2469: + b .L2394 +.L2470: add w23, w23, 1 strb wzr, [x19,5] uxth w23, w23 - b .L2392 -.L2395: + b .L2393 +.L2396: add x2, x21, :lo12:.LANCHOR0 ldrh w0, [x19,10] ldrh w1, [x19,6] @@ -14887,7 +14932,7 @@ ftl_open_sblk_recovery: strb w22, [x19,5] mul w0, w0, w2 cmp w1, w0 - beq .L2406 + beq .L2407 adrp x1, .LANCHOR3 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR3 @@ -14896,26 +14941,26 @@ ftl_open_sblk_recovery: add x0, x0, :lo12:.LC0 bl printk bl dump_stack -.L2406: +.L2407: add x0, x21, :lo12:.LANCHOR0 ldrh w3, [x19,10] ldr x4, [x0,3872] mov w0, 0 mov w2, w0 -.L2407: +.L2408: cmp w2, w3 - bcs .L2471 + bcs .L2472 ldrh w1, [x19,12] add w1, w2, w1 ldr w1, [x4,x1,lsl 2] cmn w1, #1 - beq .L2408 + beq .L2409 add w1, w0, 1 uxth w0, w1 -.L2408: +.L2409: add w2, w2, 1 - b .L2407 -.L2471: + b .L2408 +.L2472: add x2, x21, :lo12:.LANCHOR0 ldrb w1, [x19,9] sub w0, w0, w3 @@ -14923,44 +14968,44 @@ ftl_open_sblk_recovery: madd w0, w1, w22, w0 uxth w22, w0 ldr w0, [x24,#:lo12:.LANCHOR2] - tbz x0, 12, .L2410 + tbz x0, 12, .L2411 ldrh w1, [x19] - adrp x0, .LC177 + adrp x0, .LC180 ldr x4, [x2,600] - add x0, x0, :lo12:.LC177 + add x0, x0, :lo12:.LC180 ubfiz x3, x1, 1, 16 mov w2, w22 ldrh w3, [x4,x3] bl printk -.L2410: +.L2411: add x0, x21, :lo12:.LANCHOR0 ldrh w1, [x19] - adrp x23, .LC178 + adrp x23, .LC181 mov w25, -1 - add x23, x23, :lo12:.LC178 + add x23, x23, :lo12:.LC181 ldr x0, [x0,600] strh w22, [x0,x1,lsl 1] mov x0, x20 mov w22, 0 bl buf_free -.L2411: +.L2412: add x2, x21, :lo12:.LANCHOR0 ldrb w0, [x2,3276] cmp w22, w0, lsl 1 - bcs .L2472 - cbz w28, .L2412 + bcs .L2473 + cbz w28, .L2413 ldrh w0, [x19,6] cmp w0, 1 - bls .L2412 + bls .L2413 mov x0, x19 bl ftl_get_new_free_page mov w26, w0 ldr w0, [x24,#:lo12:.LANCHOR2] - tbz x0, 12, .L2413 + tbz x0, 12, .L2414 mov x0, x23 mov w1, w26 bl printk -.L2413: +.L2414: add x3, x21, :lo12:.LANCHOR0 ldr x0, [x20,24] ldr x1, [x3,2864] @@ -14981,10 +15026,10 @@ ftl_open_sblk_recovery: bl ftl_prog_ppa_page ldrh w0, [x19] bl ftl_vpn_decrement -.L2412: +.L2413: add w22, w22, 1 - b .L2411 -.L2472: + b .L2412 +.L2473: ldrh w1, [x2,3300] ldrh w0, [x19,12] ldrb w3, [x19,9] @@ -14994,7 +15039,7 @@ ftl_open_sblk_recovery: ldr x1, [x2,3872] ldr w0, [x1,x0] cmn w0, #1 - beq .L2415 + beq .L2416 adrp x1, .LANCHOR3 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR3 @@ -15003,21 +15048,21 @@ ftl_open_sblk_recovery: add x0, x0, :lo12:.LC0 bl printk bl dump_stack -.L2415: +.L2416: ldrh w0, [x19,6] cmp w0, 1 - bne .L2385 + bne .L2386 mov x0, x19 bl ftl_write_last_log_page - b .L2385 -.L2470: + b .L2386 +.L2471: ldr x0, [x1,2864] ldr w2, [x2] ldr w1, [x0,8] cmp w2, w1 - bls .L2403 + bls .L2404 str w2, [x0,8] -.L2403: +.L2404: ldr x1, [x20,24] ldrh w0, [x19,10] ldrh w2, [x19,12] @@ -15025,8 +15070,8 @@ ftl_open_sblk_recovery: ldr w0, [x1,4] ldr w1, [x1,8] bl lpa_hash_update_ppa - b .L2402 -.L2385: + b .L2403 +.L2386: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -15054,7 +15099,7 @@ pm_write_page: adrp x25, .LANCHOR0 add x23, x23, :lo12:.LC0 add x22, x22, 496 -.L2474: +.L2475: add x2, x25, :lo12:.LANCHOR0 adrp x19, .LANCHOR0 ldr x0, [x2,2864] @@ -15064,28 +15109,28 @@ pm_write_page: str w1, [x0,48] ldrh w1, [x2,3300] cmp w3, w1 - bcs .L2475 + bcs .L2476 ldrh w1, [x0,692] mov w0, 65535 cmp w1, w0 - bne .L2476 -.L2475: + bne .L2477 +.L2476: bl pm_alloc_new_blk mov w0, 0 bl ftl_info_flush -.L2476: +.L2477: add x0, x19, :lo12:.LANCHOR0 ldr x0, [x0,2864] ldrh w1, [x0,692] mov w0, 65535 cmp w1, w0 - bne .L2477 + bne .L2478 mov x1, x22 mov w2, 230 mov x0, x23 bl printk bl dump_stack -.L2477: +.L2478: add x19, x19, :lo12:.LANCHOR0 adrp x20, .LANCHOR7 add x27, x20, :lo12:.LANCHOR7 @@ -15117,28 +15162,28 @@ pm_write_page: uxth w2, w2 strh w2, [x1,696] cmp w2, 1 - beq .L2478 + beq .L2479 ldrb w2, [x27,-120] - cbz w2, .L2479 -.L2478: + cbz w2, .L2480 +.L2479: add x20, x20, :lo12:.LANCHOR7 strb wzr, [x20,-120] - b .L2474 -.L2479: + b .L2475 +.L2480: cmn w0, #1 - bne .L2481 - adrp x0, .LC179 + bne .L2482 + adrp x0, .LC182 mov w1, w26 - add x0, x0, :lo12:.LC179 + add x0, x0, :lo12:.LC182 bl printk - b .L2474 -.L2481: + b .L2475 +.L2482: ldrh w0, [x1,698] cmp w21, w0 - bcs .L2482 + bcs .L2483 add x21, x1, x21, uxtw 2 str w26, [x21,704] -.L2482: +.L2483: mov w0, 0 ldr x27, [sp,80] ldp x19, x20, [sp,16] @@ -15161,31 +15206,31 @@ flash_info_flush: stp x23, x24, [sp,48] stp x25, x26, [sp,64] stp x27, x28, [sp,80] - tbz x0, 12, .L2487 + tbz x0, 12, .L2488 adrp x2, .LANCHOR3 adrp x0, .LC127 add x2, x2, :lo12:.LANCHOR3 add x0, x0, :lo12:.LC127 - mov w1, 251 + mov w1, 250 add x2, x2, 512 bl printk -.L2487: +.L2488: adrp x22, .LANCHOR4 adrp x23, .LANCHOR0 add x0, x22, :lo12:.LANCHOR4 mov w1, 0 mov w2, 64 add x19, x23, :lo12:.LANCHOR0 - adrp x24, .LC181 - adrp x25, .LC182 + adrp x24, .LC184 + adrp x25, .LC185 ldr x0, [x0,1232] mov w26, 0 - add x24, x24, :lo12:.LC181 - add x25, x25, :lo12:.LC182 + add x24, x24, :lo12:.LC184 + add x25, x25, :lo12:.LC185 bl ftl_memset ldr x1, [x19,728] - adrp x0, .LC180 - add x0, x0, :lo12:.LC180 + adrp x0, .LC183 + add x0, x0, :lo12:.LC183 mov w2, 4 mov w3, 16 bl rknand_print_hex @@ -15194,7 +15239,7 @@ flash_info_flush: ldr w1, [x19,8] bl js_hash str w0, [x19,12] -.L2488: +.L2489: add x21, x22, :lo12:.LANCHOR4 add x27, x23, :lo12:.LANCHOR0 mov x0, x24 @@ -15208,7 +15253,7 @@ flash_info_flush: ldrh w0, [x21,1242] sub w1, w1, #1 cmp w0, w1 - blt .L2489 + blt .L2490 ldr x1, [x27,728] ldrb w19, [x21,1241] strh wzr, [x21,1242] @@ -15229,14 +15274,14 @@ flash_info_flush: ldrh w0, [x27,2] mul w19, w19, w0 mov w0, 0 - b .L2497 -.L2489: + b .L2498 +.L2490: madd w19, w20, w28, w19 - cbnz w0, .L2490 -.L2497: + cbnz w0, .L2491 +.L2498: mov w1, w19 bl flash_erase_block -.L2490: +.L2491: add x2, x23, :lo12:.LANCHOR0 add x20, x22, :lo12:.LANCHOR4 mov w4, 4 @@ -15258,16 +15303,16 @@ flash_info_flush: ldrh w1, [x20,1242] add w1, w1, 1 strh w1, [x20,1242] - bne .L2491 + bne .L2492 mov x0, x25 mov w1, w19 bl printk - b .L2488 -.L2491: - cbnz w26, .L2498 + b .L2489 +.L2492: + cbnz w26, .L2499 mov w26, 1 - b .L2488 -.L2498: + b .L2489 +.L2499: mov w0, 0 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -15290,105 +15335,106 @@ nand_flash_init: stp x23, x24, [sp,48] ldr w0, [x20,#:lo12:.LANCHOR2] str x25, [sp,64] - tbz x0, 12, .L2500 + tbz x0, 12, .L2501 adrp x2, .LANCHOR3 adrp x0, .LC127 add x2, x2, :lo12:.LANCHOR3 add x0, x0, :lo12:.LC127 - mov w1, 2220 + mov w1, 2239 add x2, x2, 536 bl printk -.L2500: +.L2501: + adrp x21, .LANCHOR4 mov x0, x19 + add x23, x21, :lo12:.LANCHOR4 adrp x19, .LANCHOR0 add x22, x19, :lo12:.LANCHOR0 - adrp x21, .LANCHOR4 - bl nandc_init - mov w23, 0 - add x0, x20, :lo12:.LANCHOR2 - mov w1, 0 - add x0, x0, 376 - str x0, [x22,624] - mov w0, 1 - mov w2, 8 - strb w0, [x22,633] - add x0, x22, 736 - add x22, x22, 748 mov w25, 44 + str wzr, [x23,1220] + bl nandc_init + add x1, x20, :lo12:.LANCHOR2 + mov w0, 1 + add x1, x1, 376 + strb w0, [x22,633] + str x1, [x22,624] + add x0, x22, 736 + mov w1, 0 + mov w2, 8 + add x22, x22, 748 bl ftl_memset mov x24, x22 - add x0, x21, :lo12:.LANCHOR4 + add x0, x23, 1096 mov w1, 0 - add x0, x0, 1096 mov w2, 32 + mov w23, 0 bl ftl_memset -.L2506: +.L2507: mov w0, w23 mov x1, x22 bl flash_read_id - cbnz w23, .L2501 + cbnz w23, .L2502 ldrb w0, [x24] sub w0, w0, #1 uxtb w0, w0 cmp w0, 253 - bls .L2502 -.L2504: + bls .L2503 +.L2505: mov w22, -2 - b .L2573 -.L2502: + b .L2574 +.L2503: ldrb w0, [x24,1] cmp w0, 255 - beq .L2504 -.L2501: + beq .L2505 +.L2502: ldrb w0, [x22] cmp w0, 181 - bne .L2505 + bne .L2506 strb w25, [x22] -.L2505: +.L2506: add w23, w23, 1 add x22, x22, 8 uxtb w23, w23 cmp w23, 4 - bne .L2506 + bne .L2507 add x23, x20, :lo12:.LANCHOR2 add x24, x19, :lo12:.LANCHOR0 add x23, x23, 440 mov w22, 0 add x24, x24, 748 -.L2509: +.L2510: ldrb w2, [x23] add x0, x23, 1 mov x1, x24 bl flash_mem_cmp8 - cbnz w0, .L2507 + cbnz w0, .L2508 add x1, x20, :lo12:.LANCHOR2 ubfiz x22, x22, 5, 32 add x0, x1, 440 adds x22, x0, x22 - beq .L2504 + beq .L2505 ldrb w3, [x22,22] mov x0, 0 - b .L2511 -.L2507: + b .L2512 +.L2508: add w22, w22, 1 add x23, x23, 32 - cmp w22, 32 - bne .L2509 - b .L2504 -.L2511: + cmp w22, 36 + bne .L2510 + b .L2505 +.L2512: add x4, x1, x0, lsl 5 mov w2, w0 - ldrb w4, [x4,1464] + ldrb w4, [x4,1592] cmp w4, w3 - beq .L2510 + beq .L2511 add x0, x0, 1 cmp x0, 4 - bne .L2511 + bne .L2512 mov w2, w0 -.L2510: +.L2511: add x23, x20, :lo12:.LANCHOR2 add x24, x19, :lo12:.LANCHOR0 - add x1, x23, 1464 + add x1, x23, 1592 ubfiz x2, x2, 5, 32 add x1, x1, x2 add x0, x24, 640 @@ -15401,32 +15447,32 @@ nand_flash_init: bl ftl_memcpy ldrb w0, [x24,516] cmp w0, 8 - bhi .L2512 + bhi .L2513 ldrb w1, [x23,20] cmp w1, 60 - bls .L2513 + bls .L2514 mov w1, 60 strb w1, [x23,20] -.L2513: +.L2514: cmp w0, 8 - bne .L2512 + bne .L2513 add x0, x19, :lo12:.LANCHOR0 ldrb w0, [x0,748] cmp w0, 137 - beq .L2540 + beq .L2538 cmp w0, 44 - beq .L2540 -.L2512: + beq .L2538 +.L2513: ldr w0, [x20,#:lo12:.LANCHOR2] - tbz x0, 12, .L2515 + tbz x0, 12, .L2516 adrp x2, .LANCHOR3 adrp x0, .LC127 add x2, x2, :lo12:.LANCHOR3 add x0, x0, :lo12:.LC127 - mov w1, 2244 + mov w1, 2264 add x2, x2, 536 bl printk -.L2515: +.L2516: add x23, x21, :lo12:.LANCHOR4 mov w0, 16384 add x22, x19, :lo12:.LANCHOR0 @@ -15476,10 +15522,10 @@ nand_flash_init: strb w2, [x22,3348] strb w0, [x19,#:lo12:.LANCHOR0] cmp w1, 9 - bne .L2516 + bne .L2517 mov w1, 70 strb w1, [x22,632] -.L2516: +.L2517: add x2, x20, :lo12:.LANCHOR2 add x1, x21, :lo12:.LANCHOR4 add x2, x2, 376 @@ -15493,21 +15539,19 @@ nand_flash_init: uxtb w2, w2 cmp w2, 2 bhi .L2519 - adrp x2, micron_read_retrial - cmp w0, 19 - add x2, x2, :lo12:micron_read_retrial - str x2, [x1,1224] - bne .L2575 + adrp x0, micron_read_retrial + add x0, x0, :lo12:micron_read_retrial + str x0, [x1,1224] mov w0, 15 b .L2576 .L2519: sub w2, w0, #65 uxtb w2, w2 cmp w2, 1 - bls .L2541 + bls .L2539 cmp w0, 33 - bne .L2522 -.L2541: + bne .L2520 +.L2539: add x0, x21, :lo12:.LANCHOR4 adrp x1, toshiba_read_retrial add x1, x1, :lo12:toshiba_read_retrial @@ -15518,35 +15562,33 @@ nand_flash_init: mov w1, 7 strb w1, [x0,1216] b .L2518 -.L2522: +.L2520: sub w2, w0, #67 uxtb w2, w2 cmp w2, 1 sub w2, w0, #34 cset w3, ls - cmp w0, 35 - cset w4, eq uxtb w2, w2 - cmp w0, 68 - cset w5, eq cmp w2, 1 - bls .L2542 - cbz w3, .L2524 -.L2542: - add x1, x21, :lo12:.LANCHOR4 - adrp x0, toshiba_read_retrial - add x0, x0, :lo12:toshiba_read_retrial - str x0, [x1,1224] - cbnz w5, .L2526 - cbnz w4, .L2526 + bls .L2540 + cbz w3, .L2522 +.L2540: + add x2, x21, :lo12:.LANCHOR4 + adrp x1, toshiba_read_retrial + add x1, x1, :lo12:toshiba_read_retrial + cmp w0, 35 + str x1, [x2,1224] + beq .L2524 + cmp w0, 68 + beq .L2524 mov w0, 7 - strb w0, [x1,1216] - b .L2527 -.L2526: + strb w0, [x2,1216] + b .L2525 +.L2524: add x0, x21, :lo12:.LANCHOR4 mov w1, 17 strb w1, [x0,1216] -.L2527: +.L2525: add x0, x19, :lo12:.LANCHOR0 mov w1, 4 cbnz w3, .L2577 @@ -15554,7 +15596,7 @@ nand_flash_init: .L2577: strb w1, [x0,726] b .L2518 -.L2524: +.L2522: sub w0, w0, #36 uxtb w0, w0 cmp w0, 1 @@ -15562,72 +15604,71 @@ nand_flash_init: adrp x0, toshiba_3d_read_retrial add x0, x0, :lo12:toshiba_3d_read_retrial str x0, [x1,1224] -.L2575: mov w0, 7 .L2576: strb w0, [x1,1216] .L2518: ldr w0, [x20,#:lo12:.LANCHOR2] - tbz x0, 12, .L2529 + tbz x0, 12, .L2527 adrp x2, .LANCHOR3 adrp x0, .LC127 add x2, x2, :lo12:.LANCHOR3 add x0, x0, :lo12:.LC127 - mov w1, 2292 + mov w1, 2312 add x2, x2, 536 bl printk -.L2529: +.L2527: add x0, x19, :lo12:.LANCHOR0 strb wzr, [x0,672] ldrb w0, [x0,780] - tbz x0, 0, .L2530 + tbz x0, 0, .L2528 mov w0, 4 bl nandc_set_if_mode mov w0, 1 bl flash_set_interface_mode mov w0, 1 b .L2578 -.L2530: +.L2528: mov w0, 4 .L2578: bl nandc_set_if_mode bl flash_info_blk_init cmn w0, #1 mov w22, w0 - bne .L2532 + bne .L2530 ldr w0, [x20,#:lo12:.LANCHOR2] - tbz x0, 12, .L2533 + tbz x0, 12, .L2531 adrp x2, .LANCHOR3 adrp x0, .LC127 add x2, x2, :lo12:.LANCHOR3 add x0, x0, :lo12:.LC127 - mov w1, 2313 + mov w1, 2347 add x2, x2, 536 bl printk -.L2533: +.L2531: add x19, x19, :lo12:.LANCHOR0 mov w1, 17 ldr x0, [x19,728] strb w1, [x0,32] - b .L2573 -.L2532: + b .L2574 +.L2530: add x0, x19, :lo12:.LANCHOR0 ldrb w0, [x0,725] sub w0, w0, #1 uxtb w0, w0 cmp w0, 6 - bhi .L2534 + bhi .L2532 add x0, x21, :lo12:.LANCHOR4 adrp x1, hynix_read_retrial add x1, x1, :lo12:hynix_read_retrial str x1, [x0,1224] -.L2534: +.L2532: add x19, x19, :lo12:.LANCHOR0 ldrb w0, [x19,780] - tbz x0, 2, .L2536 + tbz x0, 2, .L2534 ldr x0, [x19,728] ldrb w0, [x0,19] - cbz w0, .L2536 + cbz w0, .L2534 add x21, x21, :lo12:.LANCHOR4 ldrh w1, [x19,2] mov w0, 0 @@ -15635,33 +15676,33 @@ nand_flash_init: mul w1, w2, w1 bl flash_ddr_para_scan ldrb w0, [x19,672] - cbnz w0, .L2536 + cbnz w0, .L2534 ldr x1, [x19,728] strb w0, [x1,19] bl flash_info_flush -.L2536: +.L2534: ldr w0, [x20,#:lo12:.LANCHOR2] - tbz x0, 12, .L2538 + tbz x0, 12, .L2536 adrp x2, .LANCHOR3 adrp x0, .LC127 add x2, x2, :lo12:.LANCHOR3 add x0, x0, :lo12:.LC127 - mov w1, 2370 + mov w1, 2404 add x2, x2, 536 bl printk -.L2538: +.L2536: bl nand_flash_print_info mov w22, 0 - b .L2573 -.L2540: + b .L2574 +.L2538: add x0, x20, :lo12:.LANCHOR2 add x0, x0, 376 ldrb w1, [x0,28] cmp w1, 3 - bne .L2512 + bne .L2513 strb wzr, [x0,28] - b .L2512 -.L2573: + b .L2513 +.L2574: mov w0, w22 ldr x25, [sp,64] ldp x19, x20, [sp,16] @@ -15687,13 +15728,13 @@ ftl_sysblk_dump: bl buf_alloc ldr x24, [x0,8] mov w20, 0 - adrp x22, .LC183 - adrp x23, .LC184 + adrp x22, .LC186 + adrp x23, .LC187 mov x27, x0 mov w19, w20 adrp x28, .LANCHOR0 - add x22, x22, :lo12:.LC183 - add x23, x23, :lo12:.LC184 + add x22, x22, :lo12:.LC186 + add x23, x23, :lo12:.LC187 add x24, x24, 704 .L2580: add x3, x28, :lo12:.LANCHOR0 @@ -15773,31 +15814,31 @@ ftl_sysblk_dump: .type dump_ftl_info, %function dump_ftl_info: stp x29, x30, [sp, -32]! - adrp x0, .LC185 + adrp x0, .LC188 add x29, sp, 0 str x19, [sp,16] adrp x19, .LANCHOR0 add x19, x19, :lo12:.LANCHOR0 - add x0, x0, :lo12:.LC185 + add x0, x0, :lo12:.LC188 ldrb w1, [x19,2834] bl printk adrp x3, .LANCHOR4 - adrp x0, .LC186 + adrp x0, .LC189 add x3, x3, :lo12:.LANCHOR4 - add x0, x0, :lo12:.LC186 + add x0, x0, :lo12:.LC189 ldrb w1, [x3,1536] ldrb w2, [x3,1537] ldrh w3, [x3,1538] bl printk ldr x2, [x19,2864] - adrp x0, .LC187 - add x0, x0, :lo12:.LC187 + adrp x0, .LC190 + add x0, x0, :lo12:.LC190 ldrh w1, [x2,130] ldrh w2, [x2,140] bl printk ldr x1, [x19,608] - adrp x0, .LC188 - add x0, x0, :lo12:.LC188 + adrp x0, .LC191 + add x0, x0, :lo12:.LC191 add x5, x1, 16 ldrh w1, [x1,16] ldrh w2, [x5,2] @@ -15806,8 +15847,8 @@ dump_ftl_info: ldrh w5, [x5,10] bl printk ldr x1, [x19,608] - adrp x0, .LC189 - add x0, x0, :lo12:.LC189 + adrp x0, .LC192 + add x0, x0, :lo12:.LC192 add x5, x1, 48 ldrh w1, [x1,48] ldrh w2, [x5,2] @@ -15816,8 +15857,8 @@ dump_ftl_info: ldrh w5, [x5,10] bl printk ldr x1, [x19,608] - adrp x0, .LC190 - add x0, x0, :lo12:.LC190 + adrp x0, .LC193 + add x0, x0, :lo12:.LC193 add x5, x1, 80 ldrh w1, [x1,80] ldrh w4, [x5,6] @@ -15830,32 +15871,32 @@ dump_ftl_info: ldrb w3, [x19,3276] ldr x1, [x19,3872] mul w3, w0, w3 - adrp x0, .LC191 - add x0, x0, :lo12:.LC191 + adrp x0, .LC194 + add x0, x0, :lo12:.LC194 lsl w3, w3, 1 bl rknand_print_hex ldr x1, [x19,600] - adrp x0, .LC192 + adrp x0, .LC195 ldrh w3, [x19,576] - add x0, x0, :lo12:.LC192 + add x0, x0, :lo12:.LC195 mov w2, 2 bl rknand_print_hex ldr x3, [x19,2864] - adrp x0, .LC184 - add x0, x0, :lo12:.LC184 + adrp x0, .LC187 + add x0, x0, :lo12:.LC187 mov w2, 4 add x1, x3, 704 ldrh w3, [x3,698] bl rknand_print_hex ldr x1, [x19,584] - adrp x0, .LC193 + adrp x0, .LC196 ldrh w3, [x19,576] - add x0, x0, :lo12:.LC193 + add x0, x0, :lo12:.LC196 mov w2, 4 bl rknand_print_hex - adrp x0, .LC194 + adrp x0, .LC197 add x1, x19, 3360 - add x0, x0, :lo12:.LC194 + add x0, x0, :lo12:.LC197 mov w2, 2 mov w3, 256 bl rknand_print_hex @@ -15864,8 +15905,8 @@ dump_ftl_info: ldrb w3, [x19,3276] ldr x1, [x19,3880] mul w3, w0, w3 - adrp x0, .LC195 - add x0, x0, :lo12:.LC195 + adrp x0, .LC198 + add x0, x0, :lo12:.LC198 lsl w3, w3, 1 bl rknand_print_hex ldr x19, [sp,16] @@ -15903,8 +15944,8 @@ pm_ppa_update_check: mov w3, w2 mov w2, w1 mov x1, x0 - adrp x0, .LC196 - add x0, x0, :lo12:.LC196 + adrp x0, .LC199 + add x0, x0, :lo12:.LC199 bl printk bl dump_ftl_info mov w4, -1 @@ -15941,9 +15982,9 @@ load_l2p_region: ldrh w2, [x0,698] cmp w20, w2 bls .L2602 - adrp x0, .LC197 + adrp x0, .LC200 mov w1, w20 - add x0, x0, :lo12:.LC197 + add x0, x0, :lo12:.LC200 add x19, x19, :lo12:.LANCHOR7 bl printk mov x0, 0 @@ -15971,11 +16012,11 @@ load_l2p_region: strh w20, [x0,x22] strh wzr, [x23,2] cbnz w4, .L2605 - adrp x0, .LC198 + adrp x0, .LC201 mov w1, w20 mov w2, w4 add x19, x19, :lo12:.LANCHOR7 - add x0, x0, :lo12:.LC198 + add x0, x0, :lo12:.LC201 bl printk ldr x0, [x23,8] mov w1, 255 @@ -15996,27 +16037,27 @@ load_l2p_region: ldr w2, [x0] cmp w2, w20 beq .L2606 - adrp x0, .LC199 + adrp x0, .LC202 mov w1, w20 - add x0, x0, :lo12:.LC199 + add x0, x0, :lo12:.LC202 bl printk ldr x3, [x21,2864] - adrp x0, .LC200 - add x0, x0, :lo12:.LC200 + adrp x0, .LC203 + add x0, x0, :lo12:.LC203 mov w2, 4 add x1, x3, 704 ldrh w3, [x3,698] bl rknand_print_hex ldrb w3, [x21,2832] - adrp x0, .LC201 + adrp x0, .LC204 ldr x1, [x23,8] - add x0, x0, :lo12:.LC201 + add x0, x0, :lo12:.LC204 mov w2, 4 lsl w3, w3, 7 bl rknand_print_hex - adrp x0, .LC202 + adrp x0, .LC205 ldr x1, [x22,-128] - add x0, x0, :lo12:.LC202 + add x0, x0, :lo12:.LC205 mov w2, 4 mov w3, 16 bl rknand_print_hex @@ -16289,14 +16330,14 @@ pm_init: ldrh w2, [x1,696] cmp w2, w21 bgt .L2636 - adrp x0, .LC203 + adrp x0, .LC206 ldrh w1, [x1,692] mov w3, w21 - add x0, x0, :lo12:.LC203 - adrp x26, .LC204 + add x0, x0, :lo12:.LC206 + adrp x26, .LC207 add w21, w21, 1 bl printk - add x26, x26, :lo12:.LC204 + add x26, x26, :lo12:.LC207 ldr x0, [x20,2864] ldrsh w20, [x0,696] .L2637: @@ -16392,9 +16433,9 @@ pm_log2phys: msub w24, w25, w24, w0 uxth x24, w24 bcc .L2663 - adrp x0, .LC205 + adrp x0, .LC208 mov w1, w5 - add x0, x0, :lo12:.LC205 + add x0, x0, :lo12:.LC208 bl printk mov w0, -1 b .L2653 @@ -16559,8 +16600,8 @@ gc_recovery: str w0, [sp,8] ldr w0, [x7,12] str w0, [sp,16] - adrp x0, .LC206 - add x0, x0, :lo12:.LC206 + adrp x0, .LC209 + add x0, x0, :lo12:.LC209 ldr w3, [x6] ldr w4, [x6,4] ldr w5, [x6,8] @@ -16597,8 +16638,8 @@ gc_recovery: mov w26, 1 .L2676: mov w23, 0 - adrp x24, .LC207 - add x0, x24, :lo12:.LC207 + adrp x24, .LC210 + add x0, x24, :lo12:.LC210 mov w27, w23 str x0, [x29,112] b .L2677 @@ -16841,9 +16882,9 @@ gc_recovery: bl zftl_insert_data_list .L2675: ldrh w1, [x21,80] - adrp x0, .LC208 + adrp x0, .LC211 mov w2, w28 - add x0, x0, :lo12:.LC208 + add x0, x0, :lo12:.LC211 bl printk mov w0, -1 strh w0, [x21,80] @@ -17054,71 +17095,71 @@ zftl_init: .L2728: ldr w0, [x20,#:lo12:.LANCHOR2] tbz x0, 12, .L2730 - adrp x0, .LC209 - add x0, x0, :lo12:.LC209 + adrp x0, .LC212 + add x0, x0, :lo12:.LC212 bl printk .L2730: ldr w0, [x20,#:lo12:.LANCHOR2] tbz x0, 12, .L2731 add x1, x19, :lo12:.LANCHOR0 - adrp x0, .LC210 - add x0, x0, :lo12:.LC210 + adrp x0, .LC213 + add x0, x0, :lo12:.LC213 ldr w1, [x1,2836] bl printk .L2731: ldr w0, [x20,#:lo12:.LANCHOR2] tbz x0, 12, .L2732 add x1, x19, :lo12:.LANCHOR0 - adrp x0, .LC211 - add x0, x0, :lo12:.LC211 + adrp x0, .LC214 + add x0, x0, :lo12:.LC214 ldr w1, [x1,2840] bl printk .L2732: ldr w0, [x20,#:lo12:.LANCHOR2] tbz x0, 12, .L2733 add x1, x21, :lo12:.LANCHOR7 - adrp x0, .LC212 - add x0, x0, :lo12:.LC212 + adrp x0, .LC215 + add x0, x0, :lo12:.LC215 ldr w1, [x1,-108] bl printk .L2733: ldr w0, [x20,#:lo12:.LANCHOR2] tbz x0, 12, .L2734 add x1, x21, :lo12:.LANCHOR7 - adrp x0, .LC213 - add x0, x0, :lo12:.LC213 + adrp x0, .LC216 + add x0, x0, :lo12:.LC216 ldrh w1, [x1,-104] bl printk .L2734: ldr w0, [x20,#:lo12:.LANCHOR2] tbz x0, 12, .L2735 add x1, x21, :lo12:.LANCHOR7 - adrp x0, .LC214 - add x0, x0, :lo12:.LC214 + adrp x0, .LC217 + add x0, x0, :lo12:.LC217 ldrh w1, [x1,-118] bl printk .L2735: ldr w0, [x20,#:lo12:.LANCHOR2] tbz x0, 12, .L2736 add x22, x22, :lo12:.LANCHOR4 - adrp x0, .LC215 - add x0, x0, :lo12:.LC215 + adrp x0, .LC218 + add x0, x0, :lo12:.LC218 ldrh w1, [x22,1164] bl printk .L2736: ldr w0, [x20,#:lo12:.LANCHOR2] tbz x0, 12, .L2737 add x1, x19, :lo12:.LANCHOR0 - adrp x0, .LC216 - add x0, x0, :lo12:.LC216 + adrp x0, .LC219 + add x0, x0, :lo12:.LC219 ldrh w1, [x1,3306] bl printk .L2737: ldr w0, [x20,#:lo12:.LANCHOR2] tbz x0, 12, .L2738 add x1, x19, :lo12:.LANCHOR0 - adrp x0, .LC217 - add x0, x0, :lo12:.LC217 + adrp x0, .LC220 + add x0, x0, :lo12:.LC220 ldrh w1, [x1,3308] bl printk .L2738: @@ -17151,8 +17192,8 @@ zftl_init: add x1, x2, x1, sxtw 2 str x1, [x22,608] tbz x0, 12, .L2739 - adrp x0, .LC218 - add x0, x0, :lo12:.LC218 + adrp x0, .LC221 + add x0, x0, :lo12:.LC221 bl printk .L2739: add x2, x19, :lo12:.LANCHOR0 @@ -17170,9 +17211,9 @@ zftl_init: lsl w22, w22, 1 add w22, w22, 632 tbz x0, 12, .L2740 - adrp x0, .LC219 + adrp x0, .LC222 ldrh w3, [x3,-118] - add x0, x0, :lo12:.LC219 + add x0, x0, :lo12:.LC222 mov w1, w22 mov w2, w24 bl printk @@ -17347,7 +17388,6 @@ rk_ftl_init: add x2, x2, :lo12:ftl_read_flash_info adrp x0, ftl_deinit add x0, x0, :lo12:ftl_deinit - adrp x21, .LANCHOR2 str x2, [x1,112] adrp x2, ftl_read add x2, x2, :lo12:ftl_read @@ -17396,16 +17436,19 @@ rk_ftl_init: bl FlashInit mov w19, w0 cmn w22, #2 + adrp x22, .LANCHOR2 bne .L2796 - add x22, x21, :lo12:.LANCHOR2 + add x21, x22, :lo12:.LANCHOR2 adrp x1, gNandParaInfo - add x22, x22, 376 + add x21, x21, 376 add x1, x1, :lo12:gNandParaInfo - mov x0, x22 mov w2, 32 + mov x0, x21 bl ftl_memcpy - ldrb w0, [x22,18] + ldrb w0, [x21,18] bl flash_lsb_page_tbl_build + ldrh w0, [x21,10] + strh w0, [x21,26] .L2796: adrp x0, g_nandc_version_data ldr w1, [x0,#:lo12:g_nandc_version_data] @@ -17424,12 +17467,12 @@ rk_ftl_init: .L2798: adrp x2, gNandFlashIDBEccBits add x0, x1, :lo12:.LANCHOR0 - add x21, x21, :lo12:.LANCHOR2 + add x22, x22, :lo12:.LANCHOR2 add x20, x20, :lo12:.LANCHOR4 ldrb w2, [x2,#:lo12:gNandFlashIDBEccBits] strb w2, [x0,632] adrp x2, gNandFlashEccBits - ldrh w3, [x21,386] + ldrh w3, [x22,386] str xzr, [x20,1224] ldrb w2, [x2,#:lo12:gNandFlashEccBits] strb w2, [x0,724] @@ -17451,9 +17494,9 @@ rk_ftl_init: bl FtlInit mov w19, w0 .L2795: - adrp x0, .LC220 + adrp x0, .LC223 mov w1, w19 - add x0, x0, :lo12:.LC220 + add x0, x0, :lo12:.LC223 bl printk mov w0, w19 .L2792: @@ -17485,9 +17528,9 @@ gc_update_l2p_map_new: bl timer_get_time ldr w0, [x22,#:lo12:.LANCHOR2] tbz x0, 8, .L2806 - adrp x0, .LC221 + adrp x0, .LC224 ldrh w1, [x20,80] - add x0, x0, :lo12:.LC221 + add x0, x0, :lo12:.LC224 bl printk .L2806: add x0, x19, :lo12:.LANCHOR0 @@ -17498,11 +17541,11 @@ gc_update_l2p_map_new: adrp x27, .LANCHOR4 ldr x0, [x0,600] strh w2, [x0,x1,lsl 1] - adrp x0, .LC223 - add x0, x0, :lo12:.LC223 + adrp x0, .LC226 + add x0, x0, :lo12:.LC226 str x0, [x29,120] - adrp x0, .LC222 - add x0, x0, :lo12:.LC222 + adrp x0, .LC225 + add x0, x0, :lo12:.LC225 str x0, [x29,112] .L2807: cmp w23, w24 @@ -17611,8 +17654,8 @@ gc_update_l2p_map_new: ldrh w3, [x20,80] ldr x1, [x0,608] ldr x2, [x0,600] - adrp x0, .LC224 - add x0, x0, :lo12:.LC224 + adrp x0, .LC227 + add x0, x0, :lo12:.LC227 ldrh w1, [x1,80] ldrh w2, [x2,x3,lsl 1] mov w3, w21 @@ -17652,148 +17695,135 @@ gc_update_l2p_map_new: .type gc_scan_src_blk_one_page, %function gc_scan_src_blk_one_page: stp x29, x30, [sp, -80]! - mov w4, 0 - mov w6, 65535 + mov w5, 65535 add x29, sp, 0 stp x19, x20, [sp,16] adrp x19, .LANCHOR0 - str x23, [sp,48] - add x3, x19, :lo12:.LANCHOR0 - mov w5, w4 - add x2, x3, 2896 - stp x21, x22, [sp,32] - ldrb w0, [x2,4] - add x1, x2, x0, sxtw 1 - ldrb w7, [x3,3276] - ldrh w1, [x1,40] - ldrh w3, [x2,2] -.L2841: - cmp w1, w6 - bne .L2883 - add w0, w0, 1 - uxtb w0, w0 - cmp w0, w7 - bne .L2842 - add w3, w3, 1 - mov w4, 1 - mov w0, 0 - uxth w3, w3 -.L2842: - add x1, x2, x0, sxtw 1 - mov w5, 1 - ldrh w1, [x1,40] - b .L2841 -.L2883: - cbz w5, .L2844 - add x2, x19, :lo12:.LANCHOR0 - strb w0, [x2,2900] -.L2844: - cbz w4, .L2845 - add x0, x19, :lo12:.LANCHOR0 - strh w3, [x0,2898] -.L2845: - add x0, x19, :lo12:.LANCHOR0 - ldrb w2, [x0,3257] - ldrh w20, [x0,3350] - cmp w2, 2 - mul w1, w1, w20 - bne .L2846 - ldrb w2, [x0,2902] - add x0, x0, 2896 - cbnz w2, .L2846 - ldrh w20, [x0,2] - add w20, w1, w20, lsl 1 - b .L2847 -.L2846: - add x0, x19, :lo12:.LANCHOR0 - ldrh w20, [x0,2898] - add w20, w1, w20 -.L2847: add x2, x19, :lo12:.LANCHOR0 add x1, x2, 2896 - ldrb w0, [x2,2900] + stp x21, x22, [sp,32] + stp x23, x24, [sp,48] + ldrb w0, [x1,4] + add x3, x1, x0, sxtw 1 + ldrb w6, [x2,3276] + ldrh w22, [x3,40] + mov w3, 0 + ldrh w2, [x1,2] + mov w4, w3 +.L2841: + cmp w22, w5 + bne .L2867 add w0, w0, 1 uxtb w0, w0 - strb w0, [x2,2900] - ldrb w2, [x2,3276] - cmp w2, w0 - bne .L2848 - ldrh w0, [x1,2] - strb wzr, [x1,4] - add w0, w0, 1 - strh w0, [x1,2] -.L2848: + cmp w0, w6 + bne .L2842 + add w2, w2, 1 + mov w0, 0 + mov w4, 1 + uxth w2, w2 +.L2842: + add x3, x1, x0, sxtw 1 + ldrh w22, [x3,40] + mov w3, 1 + b .L2841 +.L2867: + cbz w4, .L2844 + add x1, x19, :lo12:.LANCHOR0 + strh w2, [x1,2898] +.L2844: + cbz w3, .L2845 + add x1, x19, :lo12:.LANCHOR0 + strb w0, [x1,2900] +.L2845: mov w0, 1 - mov w21, 0 + mov w23, 1 add x19, x19, :lo12:.LANCHOR0 bl buf_alloc - mov x22, x0 -.L2859: - ldrb w0, [x19,2902] - cbnz w21, .L2861 - cmp w0, 3 - beq .L2849 -.L2861: - cmp w0, w21 - bgt .L2851 -.L2860: - mov x0, x22 - bl buf_free - ldr x23, [sp,48] - ldp x19, x20, [sp,16] - ldp x21, x22, [sp,32] - ldp x29, x30, [sp], 80 - ret -.L2851: - ldrb w1, [x19,3257] + mov x21, x0 +.L2846: + add x20, x19, 2896 + ldrb w1, [x20,6] + cmp w23, w1 + bgt .L2868 + ldrh w0, [x19,3350] + cmp w1, 3 + mul w0, w22, w0 + bne .L2847 + ldrh w1, [x20,2] + add w0, w0, w1 + orr w0, w0, w23, lsl 24 + b .L2866 +.L2847: cmp w1, 2 - bne .L2852 - cbnz w0, .L2852 - add w0, w21, w20 - orr w0, w0, 33554432 - b .L2882 -.L2852: - orr w0, w20, w21, lsl 24 -.L2882: - str w0, [x22,40] + ldrh w1, [x20,2] + bne .L2849 + add w0, w0, w1, lsl 1 + ldrb w1, [x19,3257] + sub w0, w0, #1 + add w0, w0, w23 + orr w0, w0, w1, lsl 24 + b .L2866 +.L2849: + add w0, w0, w1 +.L2866: + str w0, [x21,40] mov w1, 1 - mov x0, x22 + mov x0, x21 + ldr w24, [x21,40] bl sblk_read_page - ldr w0, [x22,52] + ldr w0, [x21,52] cmp w0, 512 - beq .L2856 + beq .L2852 cmn w0, #1 - beq .L2856 - ldr x0, [x22,24] - ldr w23, [x0,4] - mov w0, w23 + beq .L2852 + ldr x0, [x21,24] + ldr w20, [x0,4] + mov w0, w20 bl lpa_hash_get_ppa str w0, [x29,76] cmn w0, #1 - bne .L2857 - mov w0, w23 + bne .L2853 + mov w0, w20 add x1, x29, 76 mov w2, 0 bl pm_log2phys -.L2857: +.L2853: + ldr w1, [x21,40] ldr w0, [x29,76] - cmp w20, w0 - bne .L2856 + cmp w1, w0 + bne .L2852 ldrh w2, [x19,2920] ldr x1, [x19,3248] - str w20, [x1,x2,lsl 2] + str w24, [x1,x2,lsl 2] ldrh w1, [x19,2920] add w1, w1, 1 strh w1, [x19,2920] -.L2856: +.L2852: ldrh w0, [x19,2922] + add w23, w23, 1 add w0, w0, 1 strh w0, [x19,2922] -.L2849: - add w21, w21, 1 - cmp w21, 4 - bne .L2859 - b .L2860 + b .L2846 +.L2868: + mov x0, x21 + bl buf_free + ldrb w0, [x20,4] + ldrb w1, [x19,3276] + add w0, w0, 1 + uxtb w0, w0 + strb w0, [x20,4] + cmp w1, w0 + bne .L2840 + ldrh w0, [x20,2] + strb wzr, [x20,4] + add w0, w0, 1 + strh w0, [x20,2] +.L2840: + ldp x19, x20, [sp,16] + ldp x21, x22, [sp,32] + ldp x23, x24, [sp,48] + ldp x29, x30, [sp], 80 + ret .size gc_scan_src_blk_one_page, .-gc_scan_src_blk_one_page .align 2 .global gc_scan_src_blk @@ -17810,32 +17840,32 @@ gc_scan_src_blk: ldrh w1, [x0,2896] mov w0, 65535 cmp w1, w0 - bne .L2885 + bne .L2870 adrp x1, .LANCHOR3 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR3 - mov w2, 926 + mov w2, 919 add x1, x1, 616 add x0, x0, :lo12:.LC0 bl printk bl dump_stack -.L2885: +.L2870: add x2, x19, :lo12:.LANCHOR0 mov w3, 65535 mov w0, 0 ldrh w1, [x2,2896] cmp w1, w3 - beq .L2886 + beq .L2871 adrp x0, .LANCHOR2 ldr w0, [x0,#:lo12:.LANCHOR2] - tbz x0, 8, .L2887 + tbz x0, 8, .L2872 ubfiz x3, x1, 1, 16 ldr x2, [x2,600] - adrp x0, .LC225 - add x0, x0, :lo12:.LC225 + adrp x0, .LC228 + add x0, x0, :lo12:.LC228 ldrh w2, [x2,x3] bl printk -.L2887: +.L2872: add x20, x19, :lo12:.LANCHOR0 bl timer_get_time add x21, x20, 2896 @@ -17844,76 +17874,76 @@ gc_scan_src_blk: bl ftl_get_blk_list_in_sblk uxtb w1, w0 strb w1, [x21,5] - cbnz w1, .L2888 + cbnz w1, .L2873 mov w0, -1 strh w0, [x20,2896] - b .L2914 -.L2888: + b .L2899 +.L2873: ldrh w3, [x20,2896] ldr x2, [x20,584] add x2, x2, x3, lsl 2 ldrb w2, [x2,2] tst w2, 192 and w4, w2, 224 - beq .L2889 + beq .L2874 cmp w4, 224 - beq .L2889 + beq .L2874 ldr x2, [x20,608] ldrh w5, [x2,16] cmp w5, w3 - beq .L2889 + beq .L2874 ldrh w5, [x2,48] cmp w5, w3 - beq .L2889 + beq .L2874 ldrh w2, [x2,80] cmp w2, w3 - bne .L2890 -.L2889: - cbnz w4, .L2891 + bne .L2875 +.L2874: + cbnz w4, .L2876 add x0, x19, :lo12:.LANCHOR0 ldr x0, [x0,600] ldrh w0, [x0,x3,lsl 1] - cbz w0, .L2892 + cbz w0, .L2877 adrp x1, .LANCHOR3 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR3 - mov w2, 946 + mov w2, 939 add x1, x1, 616 add x0, x0, :lo12:.LC0 bl printk bl dump_stack -.L2892: +.L2877: add x0, x19, :lo12:.LANCHOR0 ldrh w1, [x0,2896] ldr x0, [x0,600] strh wzr, [x0,x1,lsl 1] -.L2891: +.L2876: add x19, x19, :lo12:.LANCHOR0 mov w0, -1 strh wzr, [x19,2920] strh w0, [x19,2896] -.L2914: +.L2899: mov w0, 0 - b .L2886 -.L2890: + b .L2871 +.L2875: and w0, w0, 255 sub w0, w0, #1 add x0, x21, x0, sxtw 1 ldrh w20, [x0,40] mov w0, 65535 cmp w20, w0 - bne .L2893 + bne .L2878 adrp x1, .LANCHOR3 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR3 - mov w2, 954 + mov w2, 947 add x1, x1, 616 add x0, x0, :lo12:.LC0 bl printk bl dump_stack -.L2893: +.L2878: add x2, x19, :lo12:.LANCHOR0 - mov w24, 1 + mov w25, 1 ldrh w3, [x2,2896] ldr x4, [x2,584] ldrh w0, [x2,3300] @@ -17925,23 +17955,24 @@ gc_scan_src_blk: mul w1, w20, w1 and w3, w3, 224 cmp w3, 160 - bne .L2894 + bne .L2879 ldrb w3, [x2,3257] cmp w3, 2 - uxth w24, w3 + uxth w25, w3 orr w1, w1, w3, lsl 24 - bne .L2894 + bne .L2879 ldrh w0, [x2,3274] sub w0, w0, #1 uxth w0, w0 -.L2894: +.L2879: add x20, x19, :lo12:.LANCHOR0 orr w23, w0, w1 mov w0, 1 - strb w24, [x20,2902] + strb w25, [x20,2902] strh wzr, [x20,2898] strb wzr, [x20,2900] strh wzr, [x20,2922] + strh wzr, [x20,2924] bl buf_alloc mov w1, 1 str w23, [x0,40] @@ -17957,53 +17988,53 @@ gc_scan_src_blk: strh wzr, [x20,2920] ldr w0, [x21,52] cmp w0, 512 - beq .L2915 + beq .L2900 cmn w0, #1 - beq .L2915 + beq .L2900 ldr x0, [x21,24] ldr w1, [x0] mov w0, 15555 movk w0, 0xf55f, lsl 16 cmp w1, w0 - beq .L2897 + beq .L2882 adrp x1, .LANCHOR3 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR3 - mov w2, 986 + mov w2, 980 add x1, x1, 616 add x0, x0, :lo12:.LC0 bl printk bl dump_stack -.L2915: +.L2900: mov x0, x21 bl buf_free mov w0, -1 - b .L2886 -.L2897: + b .L2871 +.L2882: ldrb w0, [x20,3276] mov x26, 0 ldrh w22, [x20,3300] - mov w25, 1 + mov w24, 21 ldr x23, [x21,8] mul w22, w0, w22 - mul w22, w24, w22 - mov w24, 21 + mul w22, w25, w22 + mov w25, 1 uxth w22, w22 -.L2898: +.L2883: cmp w22, w26 - ble .L2916 + ble .L2901 ldr w0, [x23,x26,lsl 2] cmn w0, #1 - beq .L2900 + beq .L2885 bl lpa_hash_get_ppa str w0, [x29,92] cmn w0, #1 - bne .L2901 + bne .L2886 ldr w0, [x23,x26,lsl 2] add x1, x29, 92 mov w2, 0 bl pm_log2phys -.L2901: +.L2886: ldrh w1, [x20,3340] ldr w2, [x29,92] sub w0, w24, w1 @@ -18015,18 +18046,18 @@ gc_scan_src_blk: ldrb w0, [x20,3338] udiv w1, w1, w0 cmp w1, w3 - bne .L2900 + bne .L2885 ldrh w3, [x20,2920] ldr x1, [x20,3248] str w2, [x1,x3,lsl 2] ldrh w1, [x20,2920] add w1, w1, 1 strh w1, [x20,2920] -.L2900: +.L2885: bl timer_get_time add x26, x26, 1 - b .L2898 -.L2916: + b .L2883 +.L2901: mov x0, x21 bl buf_free add x0, x19, :lo12:.LANCHOR0 @@ -18036,11 +18067,11 @@ gc_scan_src_blk: ldrh w2, [x3,x2] ldrh w3, [x0,2920] cmp w2, w3 - beq .L2904 - adrp x0, .LC226 - add x0, x0, :lo12:.LC226 + beq .L2889 + adrp x0, .LC229 + add x0, x0, :lo12:.LC229 bl printk -.L2904: +.L2889: add x19, x19, :lo12:.LANCHOR0 ldrh w2, [x19,2896] ldr x1, [x19,600] @@ -18048,7 +18079,7 @@ gc_scan_src_blk: strh w3, [x1,x2,lsl 1] strh wzr, [x19,2924] ldrh w0, [x19,2920] -.L2886: +.L2871: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -18070,14 +18101,14 @@ gc_scan_static_data: ldr x0, [x3,608] ldr w1, [x0,544] cmn w1, #1 - beq .L2918 + beq .L2903 adrp x21, .LANCHOR3 adrp x22, .LC0 add x21, x21, :lo12:.LANCHOR3 mov w20, 11 add x22, x22, :lo12:.LC0 add x21, x21, 632 -.L2919: +.L2904: add x24, x19, :lo12:.LANCHOR0 add x1, x29, 76 mov w2, 0 @@ -18086,7 +18117,7 @@ gc_scan_static_data: bl pm_log2phys ldr w0, [x29,76] cmn w0, #1 - beq .L2920 + beq .L2905 mov w0, 1 bl buf_alloc mov x23, x0 @@ -18096,7 +18127,7 @@ gc_scan_static_data: bl sblk_read_page ldr w0, [x23,52] cmp w0, 256 - bne .L2921 + bne .L2906 ldrh w0, [x24,3340] mov w2, 21 mov w1, 1 @@ -18110,23 +18141,23 @@ gc_scan_static_data: udiv w0, w2, w0 mov w2, 0 bl gc_add_sblk -.L2921: +.L2906: add x0, x19, :lo12:.LANCHOR0 ldr x1, [x23,24] ldr x0, [x0,608] ldr w1, [x1,4] ldr w0, [x0,544] cmp w1, w0 - beq .L2922 + beq .L2907 mov x1, x21 - mov w2, 1425 + mov w2, 1419 mov x0, x22 bl printk bl dump_stack -.L2922: +.L2907: mov x0, x23 bl buf_free -.L2920: +.L2905: add x2, x19, :lo12:.LANCHOR0 ldr x1, [x2,608] ldr w2, [x2,2840] @@ -18134,7 +18165,7 @@ gc_scan_static_data: add w0, w0, 1 str w0, [x1,544] cmp w0, w2 - bcc .L2923 + bcc .L2908 mov w0, -1 str w0, [x1,544] ldr w0, [x1,548] @@ -18145,37 +18176,37 @@ gc_scan_static_data: bl ftl_ext_info_flush mov w0, 0 bl ftl_info_flush - b .L2917 -.L2923: + b .L2902 +.L2908: ldr w0, [x29,76] cmn w0, #1 - bne .L2917 + bne .L2902 sub w20, w20, #1 uxth w20, w20 - cbnz w20, .L2919 - b .L2917 -.L2918: + cbnz w20, .L2904 + b .L2902 +.L2903: ldr w1, [x0,536] ldr w2, [x0,12] add w1, w1, 12959744 add w1, w1, 256 cmp w2, w1 - bhi .L2928 + bhi .L2913 ldr x3, [x3,2864] ldr w1, [x0,540] ldr w3, [x3,44] add w1, w1, 98304 add w1, w1, 1696 cmp w3, w1 - bls .L2917 -.L2928: + bls .L2902 +.L2913: add x19, x19, :lo12:.LANCHOR0 ldr x1, [x19,2864] ldr w1, [x1,44] str w1, [x0,540] str w2, [x0,536] str wzr, [x0,544] -.L2917: +.L2902: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -18199,45 +18230,45 @@ gc_block_vpn_scan: ldrh w0, [x20,576] ldr w1, [x1,608] cmp w1, w0 - bcs .L2933 + bcs .L2918 bl timer_get_time ldr x21, [x20,608] ldr w1, [x21,604] add w1, w1, 28672 add w1, w1, 1328 cmp w0, w1 - bls .L2933 + bls .L2918 bl timer_get_time str w0, [x21,604] ldr x0, [x20,608] ldrh w2, [x20,576] ldr w1, [x0,600] cmp w1, w2 - bcs .L2937 + bcs .L2922 ldr x2, [x20,2864] ldrh w2, [x2,134] cmp w1, w2 - bcs .L2938 -.L2937: + bcs .L2923 +.L2922: add x1, x19, :lo12:.LANCHOR0 ldr x1, [x1,2864] ldrh w1, [x1,134] str w1, [x0,600] -.L2938: +.L2923: ldr w25, [x0,600] mov w0, 65535 uxth w20, w25 cmp w20, w0 - bne .L2939 + bne .L2924 adrp x1, .LANCHOR3 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR3 - mov w2, 1720 + mov w2, 1714 add x1, x1, 656 add x0, x0, :lo12:.LC0 bl printk bl dump_stack -.L2939: +.L2924: add x21, x19, :lo12:.LANCHOR0 ldr x0, [x21,608] ldr w1, [x0,600] @@ -18250,33 +18281,55 @@ gc_block_vpn_scan: mov w0, w20 bl ftl_get_blk_list_in_sblk uxth w1, w0 - cbz w1, .L2933 + cbz w1, .L2918 uxtw x22, w20 ldr x24, [x21,584] add x24, x24, x22, lsl 2 ldrb w1, [x24,2] tst w1, 192 and w2, w1, 224 - beq .L2940 + beq .L2925 cmp w2, 224 - beq .L2940 + beq .L2925 ldr x1, [x21,608] ldrh w3, [x1,16] cmp w3, w20 - beq .L2940 + beq .L2925 ldrh w3, [x1,48] cmp w3, w20 - beq .L2940 + beq .L2925 ldrh w1, [x1,80] cmp w1, w20 - bne .L2941 -.L2940: - cbnz w2, .L2933 + bne .L2926 +.L2925: + cbnz w2, .L2918 add x0, x19, :lo12:.LANCHOR0 lsl x22, x22, 1 ldr x0, [x0,600] ldrh w0, [x0,x22] - cbz w0, .L2942 + cbz w0, .L2927 + adrp x1, .LANCHOR3 + adrp x0, .LC0 + add x1, x1, :lo12:.LANCHOR3 + mov w2, 1730 + add x1, x1, 656 + add x0, x0, :lo12:.LC0 + bl printk + bl dump_stack +.L2927: + add x19, x19, :lo12:.LANCHOR0 + ldr x0, [x19,600] + strh wzr, [x0,x22] + b .L2918 +.L2926: + and w0, w0, 65535 + add x1, x29, 144 + sub w0, w0, #1 + add x0, x1, x0, sxtw 1 + ldrh w21, [x0,-16] + mov w0, 65535 + cmp w21, w0 + bne .L2929 adrp x1, .LANCHOR3 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR3 @@ -18285,29 +18338,7 @@ gc_block_vpn_scan: add x0, x0, :lo12:.LC0 bl printk bl dump_stack -.L2942: - add x19, x19, :lo12:.LANCHOR0 - ldr x0, [x19,600] - strh wzr, [x0,x22] - b .L2933 -.L2941: - and w0, w0, 65535 - add x1, x29, 144 - sub w0, w0, #1 - add x0, x1, x0, sxtw 1 - ldrh w21, [x0,-16] - mov w0, 65535 - cmp w21, w0 - bne .L2944 - adrp x1, .LANCHOR3 - adrp x0, .LC0 - add x1, x1, :lo12:.LANCHOR3 - mov w2, 1742 - add x1, x1, 656 - add x0, x0, :lo12:.LC0 - bl printk - bl dump_stack -.L2944: +.L2929: add x2, x19, :lo12:.LANCHOR0 ldrb w3, [x24,2] mov w26, 1 @@ -18318,16 +18349,16 @@ gc_block_vpn_scan: sub w0, w0, #1 mul w1, w21, w1 uxth w0, w0 - bne .L2945 + bne .L2930 ldrb w3, [x2,3257] cmp w3, 2 uxth w26, w3 orr w1, w1, w3, lsl 24 - bne .L2945 + bne .L2930 ldrh w0, [x2,3274] sub w0, w0, #1 uxth w0, w0 -.L2945: +.L2930: orr w21, w0, w1 mov w0, 1 bl buf_alloc @@ -18345,30 +18376,30 @@ gc_block_vpn_scan: bl ftl_memset ldr w0, [x23,52] cmp w0, 512 - beq .L2957 + beq .L2942 cmn w0, #1 cset w2, eq - cbz w2, .L2946 -.L2957: + cbz w2, .L2931 +.L2942: mov w0, w20 mov w1, 1 mov w2, 0 - b .L2970 -.L2946: + b .L2955 +.L2931: ldr x0, [x23,24] ldr w1, [x0] mov w0, 15555 movk w0, 0xf55f, lsl 16 cmp w1, w0 - beq .L2948 + beq .L2933 mov w0, w20 mov w1, 1 -.L2970: +.L2955: bl gc_add_sblk mov x0, x23 bl buf_free - b .L2933 -.L2948: + b .L2918 +.L2933: ldrb w0, [x21,3276] mov x27, 0 ldrh w1, [x21,3300] @@ -18379,22 +18410,22 @@ gc_block_vpn_scan: uxth w0, w26 ldr x26, [x23,8] str w0, [x29,108] -.L2949: +.L2934: ldr w0, [x29,108] cmp w0, w27 - ble .L2971 + ble .L2956 ldr w0, [x26,x27,lsl 2] cmn w0, #1 - beq .L2950 + beq .L2935 bl lpa_hash_get_ppa str w0, [x29,124] cmn w0, #1 - bne .L2951 + bne .L2936 ldr w0, [x26,x27,lsl 2] add x1, x29, 124 mov w2, 0 bl pm_log2phys -.L2951: +.L2936: add x4, x19, :lo12:.LANCHOR0 mov w1, 21 ldrh w0, [x4,3340] @@ -18408,39 +18439,39 @@ gc_block_vpn_scan: and w0, w2, w0 udiv w0, w0, w1 cmp w0, w28 - bne .L2950 + bne .L2935 add w21, w21, 1 uxth w21, w21 -.L2950: +.L2935: add x27, x27, 1 - b .L2949 -.L2971: + b .L2934 +.L2956: mov x0, x23 bl buf_free adrp x0, .LANCHOR2 ldr w0, [x0,#:lo12:.LANCHOR2] - tbz x0, 8, .L2953 + tbz x0, 8, .L2938 add x0, x19, :lo12:.LANCHOR0 ldrb w4, [x24,2] uxth w1, w25 mov w3, w21 ubfx x4, x4, 5, 3 ldr x2, [x0,600] - adrp x0, .LC227 - add x0, x0, :lo12:.LC227 + adrp x0, .LC230 + add x0, x0, :lo12:.LC230 ldrh w2, [x2,x22,lsl 1] bl printk -.L2953: +.L2938: add x19, x19, :lo12:.LANCHOR0 cmp w21, 31 ldr x0, [x19,600] strh w21, [x0,x22,lsl 1] - bhi .L2933 + bhi .L2918 mov w0, w20 mov w1, 1 mov w2, 0 bl gc_add_sblk -.L2933: +.L2918: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -18472,9 +18503,9 @@ ftl_sblk_dump: add x1, x0, x25 ldrh w4, [x0,x25] ldr w5, [x0,x25] - adrp x0, .LC228 + adrp x0, .LC231 ldrb w3, [x1,2] - add x0, x0, :lo12:.LC228 + add x0, x0, :lo12:.LC231 mov w1, w20 and w4, w4, 2047 ubfx x2, x3, 5, 3 @@ -18484,19 +18515,19 @@ ftl_sblk_dump: mov w1, 65535 mov w0, 0 cmp w20, w1 - beq .L2973 + beq .L2958 ldrh w1, [x19,576] cmp w1, w20 - bls .L2973 + bls .L2958 ldr x0, [x19,584] mov w26, 1 add x0, x0, x25 ldrb w0, [x0,2] and w0, w0, 224 cmp w0, 160 - bne .L2974 + bne .L2959 ldrb w26, [x19,3257] -.L2974: +.L2959: add x1, x29, 192 mov w0, w20 strh w20, [x29,176] @@ -18517,8 +18548,8 @@ ftl_sblk_dump: mul w1, w1, w2 strh w1, [x29,182] ldr x1, [x0,584] - adrp x0, .LC229 - add x0, x0, :lo12:.LC229 + adrp x0, .LC232 + add x0, x0, :lo12:.LC232 add x1, x1, x25 ldrb w2, [x1,2] mov w1, w20 @@ -18527,56 +18558,56 @@ ftl_sblk_dump: mov w0, 1 bl buf_alloc mov x28, x0 - adrp x0, .LC183 + adrp x0, .LC186 str w22, [x29,152] - add x0, x0, :lo12:.LC183 + add x0, x0, :lo12:.LC186 str x0, [x29,120] adrp x0, .LANCHOR3 add x0, x0, :lo12:.LANCHOR3 add x0, x0, 680 str x0, [x29,112] -.L2975: +.L2960: add x21, x23, :lo12:.LANCHOR0 ldrh w0, [x21,3300] cmp w0, w19 - bls .L2991 + bls .L2976 lsl w0, w19, 1 str wzr, [x29,156] sub w0, w0, #1 str w0, [x29,132] -.L2992: +.L2977: ldrb w0, [x29,185] ldr w1, [x29,156] cmp w0, w1 - bls .L2989 + bls .L2974 mov w24, 1 -.L2990: +.L2975: cmp w24, w26 ldr w0, [x29,156] - bhi .L3009 + bhi .L2994 add x1, x29, 176 add x0, x1, x0, sxtw 1 ldrh w2, [x0,16] mov w0, 65535 cmp w2, w0 - beq .L2976 + beq .L2961 add x1, x23, :lo12:.LANCHOR0 cmp w26, 3 ldrh w0, [x1,3350] mul w0, w2, w0 add w21, w0, w19 - bne .L2977 + bne .L2962 orr w21, w21, w24, lsl 24 - b .L2978 -.L2977: + b .L2963 +.L2962: cmp w26, 2 - bne .L2978 + bne .L2963 ldr w3, [x29,132] ldrb w21, [x1,3257] add w0, w0, w3 add w0, w0, w24 orr w21, w0, w21, lsl 24 -.L2978: +.L2963: mov w1, 1 str w21, [x28,40] mov x0, x28 @@ -18608,23 +18639,23 @@ ftl_sblk_dump: bl printk ldr x9, [x29,104] cmp w9, 512 - beq .L2996 + beq .L2981 cmn w9, #1 - bne .L2980 -.L2996: + bne .L2965 +.L2981: mov w0, 1 str w0, [x29,152] -.L2980: +.L2965: add x0, x23, :lo12:.LANCHOR0 ldr x0, [x0,584] add x0, x0, x25 ldrb w0, [x0,2] and w0, w0, 224 cmp w0, 32 - beq .L2976 + beq .L2961 cmp w0, 224 cset w2, eq - cbnz w2, .L2976 + cbnz w2, .L2961 ldr x0, [x28,24] str x2, [x29,104] ldr w0, [x0,4] @@ -18632,82 +18663,82 @@ ftl_sblk_dump: str w0, [x29,172] cmn w0, #1 ldr x2, [x29,104] - bne .L2982 + bne .L2967 ldr x0, [x28,24] add x1, x29, 172 ldr w0, [x0,4] bl pm_log2phys -.L2982: +.L2967: ldr w0, [x29,172] cmp w0, w21 - bne .L2983 + bne .L2968 ldr x2, [x28,24] add w22, w22, 1 - adrp x0, .LC230 + adrp x0, .LC233 mov w1, w21 - add x0, x0, :lo12:.LC230 + add x0, x0, :lo12:.LC233 mov w3, w22 ldr w2, [x2,4] bl printk -.L2983: +.L2968: ldr x0, [x29,144] - cbz x0, .L2985 + cbz x0, .L2970 ubfiz x21, x27, 2, 32 ldr w2, [x0,x21] ldr x0, [x28,24] ldr w0, [x0,4] cmp w0, w2 - beq .L2986 + beq .L2971 adrp x0, .LANCHOR2 ldr w0, [x0,#:lo12:.LANCHOR2] - tbz x0, 12, .L2986 - adrp x0, .LC231 + tbz x0, 12, .L2971 + adrp x0, .LC234 mov w1, w27 - add x0, x0, :lo12:.LC231 + add x0, x0, :lo12:.LC234 bl printk -.L2986: +.L2971: ldr x0, [x29,144] ldr x1, [x28,24] ldr w0, [x0,x21] ldr w1, [x1,4] cmp w1, w0 - beq .L2985 + beq .L2970 cmn w0, #1 - beq .L2985 + beq .L2970 adrp x0, .LC0 ldr x1, [x29,112] mov w2, 1299 add x0, x0, :lo12:.LC0 bl printk bl dump_stack -.L2985: +.L2970: add w27, w27, 1 -.L2976: +.L2961: add w24, w24, 1 uxth w24, w24 - b .L2990 -.L3009: + b .L2975 +.L2994: add w0, w0, 1 uxth w0, w0 str w0, [x29,156] - b .L2992 -.L2989: + b .L2977 +.L2974: add w19, w19, 1 uxth w19, w19 - b .L2975 -.L2991: + b .L2960 +.L2976: mov x0, x28 bl buf_free ldr x3, [x29,136] - adrp x0, .LC232 + adrp x0, .LC235 ldr x2, [x21,600] - add x0, x0, :lo12:.LC232 + add x0, x0, :lo12:.LC235 mov w1, w20 ldrh w2, [x2,x3,lsl 1] mov w3, w22 bl printk ldr w0, [x29,152] -.L2973: +.L2958: sub sp, x29, #48 ldp x19, x20, [sp,64] ldp x21, x22, [sp,80] @@ -18735,30 +18766,30 @@ zftl_read: stp x27, x28, [sp,80] mov w25, w2 mov x23, x3 - tbz x0, 12, .L3011 - adrp x0, .LC233 + tbz x0, 12, .L2996 + adrp x0, .LC236 mov w1, w19 - add x0, x0, :lo12:.LC233 + add x0, x0, :lo12:.LC236 mov w2, w22 mov w3, w25 bl printk -.L3011: - cbnz w19, .L3012 +.L2996: + cbnz w19, .L2997 adrp x0, .LANCHOR0+520 mov w19, 24576 ldr w2, [x0,#:lo12:.LANCHOR0+520] - b .L3013 -.L3012: + b .L2998 +.L2997: cmp w19, 3 mov w0, -1 - bhi .L3014 + bhi .L2999 lsl w19, w19, 13 mov w2, 8192 -.L3013: +.L2998: add w1, w22, w25 mov w0, -1 cmp w1, w2 - bhi .L3014 + bhi .L2999 add w22, w19, w22 adrp x19, .LANCHOR0 add x1, x19, :lo12:.LANCHOR0 @@ -18783,8 +18814,8 @@ zftl_read: add x0, x0, :lo12:.LANCHOR3 add x0, x0, 696 str x0, [x29,120] -.L3015: - cbz w24, .L3075 +.L3000: + cbz w24, .L3060 add x0, x19, :lo12:.LANCHOR0 ldr w1, [x29,136] cmp w20, w27 @@ -18793,12 +18824,12 @@ zftl_read: ldrb w0, [x0,2832] cset w26, eq uxth w21, w0 - cbnz w26, .L3045 - cbz w2, .L3016 - b .L3074 -.L3045: - cbz w2, .L3018 -.L3074: + cbnz w26, .L3030 + cbz w2, .L3001 + b .L3059 +.L3030: + cbz w2, .L3003 +.L3059: udiv w26, w22, w0 msub w26, w26, w0, w22 uxth w0, w25 @@ -18807,21 +18838,21 @@ zftl_read: uxth w21, w21 cmp w21, w25 csel w21, w0, w21, hi - b .L3016 -.L3018: + b .L3001 +.L3003: msub w21, w0, w20, w28 mov w26, w2 uxtb w21, w21 -.L3016: +.L3001: add x1, x19, :lo12:.LANCHOR0 mov w0, 0 add x1, x1, 784 -.L3021: +.L3006: ldr w2, [x1,36] cmp w2, w20 - bne .L3019 + bne .L3004 ldrb w2, [x1,2] - tbz x2, 3, .L3019 + tbz x2, 3, .L3004 add x2, x19, :lo12:.LANCHOR0 ubfiz x1, x0, 6, 32 add x0, x2, x1 @@ -18833,48 +18864,48 @@ zftl_read: add x23, x23, x21 add x1, x1, x26 bl ftl_memcpy - b .L3020 -.L3019: + b .L3005 +.L3004: add w0, w0, 1 add x1, x1, 64 cmp w0, 32 - bne .L3021 + bne .L3006 mov w0, w20 bl lpa_hash_get_ppa str w0, [x29,156] cmn w0, #1 - bne .L3022 + bne .L3007 mov w0, w20 add x1, x29, 156 mov w2, 0 bl pm_log2phys -.L3022: +.L3007: ldr w0, [x29,156] cmn w0, #1 - bne .L3023 + bne .L3008 mov w21, 0 -.L3024: +.L3009: add x0, x19, :lo12:.LANCHOR0 ldrb w0, [x0,2832] cmp w21, w0 - bcs .L3020 + bcs .L3005 madd w0, w20, w0, w21 cmp w0, w22 - bcc .L3025 + bcc .L3010 cmp w0, w28 - bcs .L3025 + bcs .L3010 mov x0, x23 mov w1, 0 mov w2, 512 add x23, x23, 512 bl ftl_memset -.L3025: +.L3010: add w21, w21, 1 - b .L3024 -.L3023: + b .L3009 +.L3008: mov w0, 0 bl buf_alloc - cbz x0, .L3027 + cbz x0, .L3012 add x2, x19, :lo12:.LANCHOR0 ldr x3, [x2,2864] ldr w2, [x3,40] @@ -18890,36 +18921,36 @@ zftl_read: str w20, [x0,36] strb w26, [x0,57] bl zftl_add_read_buf -.L3020: +.L3005: add w20, w20, 1 sub w24, w24, #1 -.L3027: - cbz w24, .L3046 +.L3012: + cbz w24, .L3031 add x0, x19, :lo12:.LANCHOR0 ldrb w0, [x0,2834] cmp w0, 2 - bhi .L3015 -.L3046: + bhi .L3000 +.L3031: add x2, x19, :lo12:.LANCHOR0 ldrb w1, [x2,3894] - cbz w1, .L3015 + cbz w1, .L3000 add x0, x2, 784 ldrb w2, [x2,3893] add x0, x0, x2, lsl 6 bl sblk_read_page -.L3030: +.L3015: add x0, x19, :lo12:.LANCHOR0 ldrb w1, [x0,3894] - cbz w1, .L3076 + cbz w1, .L3061 ldrb w0, [x0,3893] cmp w0, 255 - bne .L3031 + bne .L3016 ldr x1, [x29,120] mov w2, 1065 ldr x0, [x29,128] bl printk bl dump_stack -.L3031: +.L3016: add x2, x19, :lo12:.LANCHOR0 add x1, x2, 784 ldrb w21, [x2,3893] @@ -18929,16 +18960,16 @@ zftl_read: ldr w8, [x26,52] strb w0, [x2,3893] cmn w8, #1 - bne .L3032 + bne .L3017 ldr x1, [x2,608] str w8, [x29,140] ldr w0, [x1,552] add w0, w0, 1 str w0, [x1,552] - b .L3033 -.L3032: + b .L3018 +.L3017: cmp w8, 256 - bne .L3033 + bne .L3018 ldrh w0, [x2,3340] mov w1, 21 mov w5, 1 @@ -18953,8 +18984,8 @@ zftl_read: ldrb w4, [x2,3338] ldr w2, [x26,36] udiv w4, w0, w4 - adrp x0, .LC234 - add x0, x0, :lo12:.LC234 + adrp x0, .LC237 + add x0, x0, :lo12:.LC237 str x4, [x29,112] uxth w1, w4 bl printk @@ -18965,7 +18996,7 @@ zftl_read: mov w1, w5 bl gc_add_sblk ldr x8, [x29,96] -.L3033: +.L3018: add x9, x19, :lo12:.LANCHOR0 add x1, x9, 784 add x1, x1, x21, lsl 6 @@ -18974,7 +19005,7 @@ zftl_read: ldr w3, [x0,4] ldr w0, [x1,36] cmp w3, w0 - beq .L3034 + beq .L3019 ldr x3, [x9,608] str x8, [x29,96] str x9, [x29,104] @@ -18982,9 +19013,9 @@ zftl_read: str x10, [x29,112] add w0, w0, 1 str w0, [x3,552] - adrp x0, .LC235 + adrp x0, .LC238 ldr x7, [x1,24] - add x0, x0, :lo12:.LC235 + add x0, x0, :lo12:.LC238 ldr w2, [x10,4] ldr w3, [x10,8] ldr w4, [x7] @@ -19009,7 +19040,7 @@ zftl_read: mov x1, 0 bl ftl_sblk_dump ldr x8, [x29,96] -.L3034: +.L3019: add x0, x19, :lo12:.LANCHOR0 add x0, x0, 784 add x0, x0, x21, lsl 6 @@ -19017,35 +19048,35 @@ zftl_read: ldr w0, [x0,36] ldr w1, [x1,4] cmp w1, w0 - bne .L3047 + bne .L3032 cmn w8, #1 - bne .L3035 -.L3047: + bne .L3020 +.L3032: ldr x1, [x29,120] mov w2, 1086 ldr x0, [x29,128] bl printk bl dump_stack -.L3035: +.L3020: add x1, x19, :lo12:.LANCHOR0 add x0, x1, 784 add x21, x0, x21, lsl 6 ldrb w1, [x1,2832] ldrb w2, [x21,56] cmp w1, w2 - bls .L3037 + bls .L3022 ldrb w3, [x21,57] lsl w2, w2, 9 ldr x1, [x21,8] ldr x0, [x21,16] add x1, x1, x3, lsl 9 bl ftl_memcpy - b .L3038 -.L3037: + b .L3023 +.L3022: ldrb w0, [x21,2] and w0, w0, -9 strb w0, [x21,2] -.L3038: +.L3023: add x21, x19, :lo12:.LANCHOR0 mov x1, x26 add x0, x21, 3895 @@ -19055,18 +19086,18 @@ zftl_read: ldrb w0, [x21,3894] sub w0, w0, #1 strb w0, [x21,3894] - b .L3030 -.L3076: + b .L3015 +.L3061: mov w2, -1 strb w1, [x0,3894] strb w2, [x0,3893] - b .L3015 -.L3075: + b .L3000 +.L3060: bl timer_get_time adrp x1, .LANCHOR7-80 str w0, [x1,#:lo12:.LANCHOR7-80] ldr w0, [x29,140] -.L3014: +.L2999: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -19121,34 +19152,34 @@ zftl_debug_proc_write: stp x23, x24, [sp,80] stp x25, x26, [sp,96] mov x21, x2 - bhi .L3080 + bhi .L3065 mov x0, x19 bl rk_copy_from_user mov x22, x0 mov x0, -14 - cbnz x22, .L3080 - adrp x0, .LC236 + cbnz x22, .L3065 + adrp x0, .LC239 mov x1, x19 - add x0, x0, :lo12:.LC236 + add x0, x0, :lo12:.LC239 strb w22, [x19,x21] bl printk - adrp x0, .LC237 + adrp x0, .LC240 mov x1, x19 - add x0, x0, :lo12:.LC237 + add x0, x0, :lo12:.LC240 mov w2, 1 mov w3, 16 bl rknand_print_hex bl rknand_device_lock - adrp x1, .LC238 + adrp x1, .LC241 mov x0, x19 - add x1, x1, :lo12:.LC238 + add x1, x1, :lo12:.LC241 mov x2, 7 bl memcmp - cbnz w0, .L3081 + cbnz w0, .L3066 adrp x23, .LANCHOR0 - adrp x0, .LC239 + adrp x0, .LC242 add x19, x23, :lo12:.LANCHOR0 - add x0, x0, :lo12:.LC239 + add x0, x0, :lo12:.LC242 mov w2, 4 adrp x20, .LANCHOR4 ldr x3, [x19,2864] @@ -19157,19 +19188,19 @@ zftl_debug_proc_write: bl rknand_print_hex add x3, x20, :lo12:.LANCHOR4 ldr x1, [x19,2864] - adrp x0, .LC240 + adrp x0, .LC243 mov w2, 2 - add x0, x0, :lo12:.LC240 + add x0, x0, :lo12:.LC243 add x1, x1, 416 ldrh w3, [x3,1164] mov w19, w22 mov w22, 65535 bl rknand_print_hex -.L3082: +.L3067: add x0, x20, :lo12:.LANCHOR4 ldrh w0, [x0,1164] cmp w19, w0 - bge .L3085 + bge .L3070 mov w0, 300 bl msleep add x0, x23, :lo12:.LANCHOR0 @@ -19177,63 +19208,63 @@ zftl_debug_proc_write: add x0, x0, x19, sxtw 1 ldrh w0, [x0,416] cmp w0, w22 - beq .L3083 + beq .L3068 mov x1, 0 bl ftl_sblk_dump -.L3083: +.L3068: add w19, w19, 1 - b .L3082 -.L3081: - adrp x1, .LC241 + b .L3067 +.L3066: + adrp x1, .LC244 mov x0, x19 - add x1, x1, :lo12:.LC241 + add x1, x1, :lo12:.LC244 mov x2, 7 bl memcmp - cbnz w0, .L3086 + cbnz w0, .L3071 adrp x23, .LANCHOR0 - adrp x0, .LC239 + adrp x0, .LC242 add x20, x23, :lo12:.LANCHOR0 - add x0, x0, :lo12:.LC239 + add x0, x0, :lo12:.LC242 mov w2, 4 add x22, x29, 192 - adrp x24, .LC244 + adrp x24, .LC247 ldr x3, [x20,2864] - add x24, x24, :lo12:.LC244 + add x24, x24, :lo12:.LC247 add x1, x3, 704 ldrh w3, [x3,698] bl rknand_print_hex adrp x3, .LANCHOR4+1164 ldr x1, [x20,2864] - adrp x0, .LC240 + adrp x0, .LC243 mov w2, 2 - add x0, x0, :lo12:.LC240 + add x0, x0, :lo12:.LC243 add x1, x1, 416 ldrh w3, [x3,#:lo12:.LANCHOR4+1164] bl rknand_print_hex - adrp x0, .LC242 + adrp x0, .LC245 add x1, x19, 7 - add x0, x0, :lo12:.LC242 + add x0, x0, :lo12:.LC245 str x1, [x22,-88]! add x19, x20, 3904 mov x20, x23 bl printk - adrp x23, .LC243 + adrp x23, .LC246 ldr x0, [x29,104] mov x1, x22 add x25, x19, 512 - add x23, x23, :lo12:.LC243 - bl rk_simple_strtoull.constprop.31 + add x23, x23, :lo12:.LC246 + bl rk_simple_strtoull.constprop.29 mov w22, w0 str w0, [x29,100] uxth w26, w0 -.L3088: +.L3073: ldrh w1, [x19] mov x0, x23 ldrh w2, [x19,2] bl printk ldrh w0, [x19] cmp w0, w26 - bne .L3087 + bne .L3072 add x0, x20, :lo12:.LANCHOR0 ldr x1, [x19,8] mov w2, 4 @@ -19241,10 +19272,10 @@ zftl_debug_proc_write: mov x0, x24 lsl w3, w3, 7 bl rknand_print_hex -.L3087: +.L3072: add x19, x19, 16 cmp x19, x25 - bne .L3088 + bne .L3073 mov w0, 300 add x20, x20, :lo12:.LANCHOR0 bl msleep @@ -19267,8 +19298,8 @@ zftl_debug_proc_write: str w0, [sp,8] ldr w0, [x7,12] str w0, [sp,16] - adrp x0, .LC206 - add x0, x0, :lo12:.LC206 + adrp x0, .LC209 + add x0, x0, :lo12:.LC209 ldr w3, [x6] ldr w2, [x19,52] ldr w4, [x6,4] @@ -19277,61 +19308,61 @@ zftl_debug_proc_write: ldr w6, [x6,12] bl printk ldrb w3, [x20,2832] - adrp x0, .LC245 - add x0, x0, :lo12:.LC245 + adrp x0, .LC248 + add x0, x0, :lo12:.LC248 ldr x1, [x19,8] mov w2, 4 lsl w3, w3, 7 - b .L3103 -.L3086: - adrp x1, .LC246 + b .L3088 +.L3071: + adrp x1, .LC249 mov x0, x19 - add x1, x1, :lo12:.LC246 + add x1, x1, :lo12:.LC249 mov x2, 7 bl memcmp - cbnz w0, .L3089 + cbnz w0, .L3074 bl dump_ftl_info - b .L3085 -.L3089: - adrp x1, .LC247 + b .L3070 +.L3074: + adrp x1, .LC250 mov x0, x19 - add x1, x1, :lo12:.LC247 + add x1, x1, :lo12:.LC250 mov x2, 9 bl memcmp - cbnz w0, .L3090 + cbnz w0, .L3075 add x1, x29, 192 add x0, x19, 9 str x0, [x1,-88]! - bl rk_simple_strtoull.constprop.31 + bl rk_simple_strtoull.constprop.29 str w0, [x29,100] adrp x1, .LANCHOR0+3336 strh w0, [x1,#:lo12:.LANCHOR0+3336] bl dump_all_list_info - b .L3085 -.L3090: - adrp x1, .LC248 + b .L3070 +.L3075: + adrp x1, .LC251 mov x0, x19 - add x1, x1, :lo12:.LC248 + add x1, x1, :lo12:.LC251 mov x2, 8 bl memcmp - cbz w0, .L3085 - adrp x1, .LC249 + cbz w0, .L3070 + adrp x1, .LC252 mov x0, x19 - add x1, x1, :lo12:.LC249 + add x1, x1, :lo12:.LC252 mov x2, 8 bl memcmp - cbnz w0, .L3092 + cbnz w0, .L3077 add x20, x29, 192 - adrp x0, .LC242 + adrp x0, .LC245 add x1, x19, 8 - add x0, x0, :lo12:.LC242 + add x0, x0, :lo12:.LC245 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.31 + bl rk_simple_strtoull.constprop.29 str w0, [x29,100] mov w0, 1 bl buf_alloc @@ -19349,8 +19380,8 @@ zftl_debug_proc_write: str w0, [sp,8] ldr w0, [x7,12] str w0, [sp,16] - adrp x0, .LC206 - add x0, x0, :lo12:.LC206 + adrp x0, .LC209 + add x0, x0, :lo12:.LC209 ldr w3, [x6] ldr w4, [x6,4] ldr w5, [x6,8] @@ -19359,107 +19390,98 @@ zftl_debug_proc_write: ldr w7, [x7] bl printk ldrb w3, [x20,2832] - adrp x0, .LC201 + adrp x0, .LC204 ldr x1, [x19,8] - add x0, x0, :lo12:.LC201 + add x0, x0, :lo12:.LC204 mov w2, 4 lsl w3, w3, 7 bl rknand_print_hex ldrb w3, [x20,2832] - adrp x0, .LC202 + adrp x0, .LC205 ldr x1, [x19,24] - add x0, x0, :lo12:.LC202 + add x0, x0, :lo12:.LC205 mov w2, 4 lsl w3, w3, 1 -.L3103: +.L3088: bl rknand_print_hex mov x0, x19 bl buf_free - b .L3085 -.L3092: - adrp x1, .LC250 + b .L3070 +.L3077: + adrp x1, .LC253 mov x0, x19 - add x1, x1, :lo12:.LC250 + add x1, x1, :lo12:.LC253 mov x2, 8 bl memcmp - cbnz w0, .L3093 + cbnz w0, .L3078 add x20, x29, 192 - adrp x0, .LC242 + adrp x0, .LC245 add x1, x19, 8 - add x0, x0, :lo12:.LC242 + add x0, x0, :lo12:.LC245 str x1, [x20,-88]! bl printk ldr x0, [x29,104] mov x1, x20 - bl rk_simple_strtoull.constprop.31 + bl rk_simple_strtoull.constprop.29 str w0, [x29,100] mov x1, x22 bl ftl_sblk_dump - b .L3085 -.L3093: - adrp x1, .LC251 + b .L3070 +.L3078: + adrp x1, .LC254 mov x0, x19 - add x1, x1, :lo12:.LC251 + add x1, x1, :lo12:.LC254 mov x2, 10 bl memcmp - cbnz w0, .L3094 + cbnz w0, .L3079 add x20, x29, 192 - adrp x0, .LC242 + adrp x0, .LC245 add x1, x19, 10 - add x0, x0, :lo12:.LC242 + add x0, x0, :lo12:.LC245 str x1, [x20,-88]! bl printk ldr x0, [x29,104] mov x1, x20 - bl rk_simple_strtoull.constprop.31 + bl rk_simple_strtoull.constprop.29 str w0, [x29,100] adrp x1, .LANCHOR2 str w0, [x1,#:lo12:.LANCHOR2] - b .L3085 -.L3094: - adrp x1, .LC252 + b .L3070 +.L3079: + adrp x1, .LC255 mov x2, 8 mov x0, x19 - add x1, x1, :lo12:.LC252 + add x1, x1, :lo12:.LC255 bl memcmp mov w2, w0 str x2, [x29,88] - cbnz w0, .L3095 + cbnz w0, .L3080 add x1, x19, 8 - adrp x0, .LC242 + adrp x0, .LC245 add x19, x29, 192 - add x0, x0, :lo12:.LC242 + add x0, x0, :lo12:.LC245 str x1, [x19,-88]! bl printk ldr x0, [x29,104] mov x1, x19 - bl rk_simple_strtoull.constprop.31 + bl rk_simple_strtoull.constprop.29 mov w19, w0 bl lpa_hash_get_ppa str w0, [x29,100] cmn w0, #1 ldr x2, [x29,88] - bne .L3096 + bne .L3081 mov w0, w19 add x1, x29, 100 bl pm_log2phys -.L3096: - adrp x0, .LC253 +.L3081: + adrp x0, .LC256 ldr w2, [x29,100] mov w1, w19 - add x0, x0, :lo12:.LC253 - bl printk - b .L3085 -.L3095: - adrp x0, .LC254 - add x0, x0, :lo12:.LC254 - bl printk - adrp x0, .LC255 - add x0, x0, :lo12:.LC255 - bl printk - adrp x0, .LC256 add x0, x0, :lo12:.LC256 bl printk + b .L3070 +.L3080: adrp x0, .LC257 add x0, x0, :lo12:.LC257 bl printk @@ -19478,10 +19500,19 @@ zftl_debug_proc_write: adrp x0, .LC262 add x0, x0, :lo12:.LC262 bl printk -.L3085: + 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 +.L3070: bl rknand_device_unlock mov x0, x21 -.L3080: +.L3065: sub sp, x29, #32 ldp x19, x20, [sp,48] ldp x21, x22, [sp,64] @@ -19508,14 +19539,14 @@ gc_check_data_one_wl: ldr x0, [x20,2904] ldr x23, [x20,608] add x20, x20, 2896 - cbnz x0, .L3105 + cbnz x0, .L3090 mov w0, 1 bl buf_alloc str x0, [x20,8] -.L3105: +.L3090: add x0, x19, :lo12:.LANCHOR0 ldr x20, [x0,2904] - cbnz x20, .L3106 + cbnz x20, .L3091 adrp x1, .LANCHOR3 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR3 @@ -19524,22 +19555,22 @@ gc_check_data_one_wl: add x0, x0, :lo12:.LC0 bl printk bl dump_stack -.L3106: +.L3091: mov w24, 0 add x25, x23, 80 add x21, x19, :lo12:.LANCHOR0 adrp x27, .LANCHOR4 -.L3107: +.L3092: ldrb w0, [x25,9] cmp w24, w0 - bge .L3130 + bge .L3115 mov w22, 1 sxtw x28, w24 -.L3116: +.L3101: add x0, x21, 2896 ldrh w1, [x0,20] cmp w22, w1 - bgt .L3131 + bgt .L3116 add x1, x28, 8 ldrh w2, [x21,3350] ldrh w0, [x0,16] @@ -19547,28 +19578,28 @@ gc_check_data_one_wl: mul w1, w1, w2 ldrb w2, [x21,3257] cmp w2, 3 - bne .L3108 + bne .L3093 add w1, w1, w0 orr w1, w1, w22, lsl 24 - b .L3129 -.L3108: + b .L3114 +.L3093: cmp w2, 2 - bne .L3110 + bne .L3095 sub w0, w0, #1 add w1, w0, w1 add w1, w1, w22 orr w1, w1, 33554432 - b .L3129 -.L3110: + b .L3114 +.L3095: add w1, w1, w0 -.L3129: +.L3114: str w1, [x20,40] mov x0, x20 mov w1, 1 bl sblk_read_page ldr w0, [x20,52] cmn w0, #1 - beq .L3111 + beq .L3096 add x2, x27, :lo12:.LANCHOR4 ldrh w0, [x21,2918] ldr x1, [x20,24] @@ -19577,32 +19608,32 @@ gc_check_data_one_wl: ldr w4, [x3,x0] ldr w3, [x1,4] cmp w4, w3 - bne .L3111 + bne .L3096 ldr x2, [x2,1144] ldr w2, [x2,x0] ldr w0, [x1,8] cmp w2, w0 - beq .L3112 -.L3111: + beq .L3097 +.L3096: add x26, x27, :lo12:.LANCHOR4 ldrh w0, [x21,2918] add x4, x21, 2896 ldr x1, [x26,1136] ldr w0, [x1,x0,lsl 2] cmn w0, #1 - beq .L3112 + beq .L3097 ldrb w5, [x25,9] - adrp x0, .LC263 + adrp x0, .LC266 ldrh w3, [x21,3274] - add x0, x0, :lo12:.LC263 + add x0, x0, :lo12:.LC266 mov w2, 4 str x4, [x29,104] mul w3, w5, w3 bl rknand_print_hex ldrb w5, [x25,9] - adrp x0, .LC264 + adrp x0, .LC267 ldrh w3, [x21,3274] - add x0, x0, :lo12:.LC264 + add x0, x0, :lo12:.LC267 ldr x1, [x26,1144] mov w2, 4 mul w3, w5, w3 @@ -19610,7 +19641,7 @@ gc_check_data_one_wl: adrp x0, .LANCHOR2 ldr x4, [x29,104] ldr w0, [x0,#:lo12:.LANCHOR2] - tbz x0, 10, .L3113 + tbz x0, 10, .L3098 ldr x7, [x20,24] ldrh w4, [x4,22] ldr x5, [x26,1144] @@ -19618,8 +19649,8 @@ gc_check_data_one_wl: lsl x4, x4, 2 ldr x3, [x26,1136] str w0, [sp] - adrp x0, .LC265 - add x0, x0, :lo12:.LC265 + adrp x0, .LC268 + add x0, x0, :lo12:.LC268 ldr w3, [x3,x4] ldr w6, [x7,4] ldr w4, [x5,x4] @@ -19628,7 +19659,7 @@ gc_check_data_one_wl: ldr w2, [x20,52] ldr w7, [x7,8] bl printk -.L3113: +.L3098: add x19, x19, :lo12:.LANCHOR0 mov x1, 0 ldr x0, [x19,608] @@ -19638,27 +19669,27 @@ gc_check_data_one_wl: ldrh w1, [x23,80] strh wzr, [x0,x1,lsl 1] mov w0, -1 - b .L3114 -.L3112: + b .L3099 +.L3097: ldrh w0, [x21,2918] add w22, w22, 1 add w0, w0, 1 strh w0, [x21,2918] - b .L3116 -.L3131: + b .L3101 +.L3116: add w24, w24, 1 - b .L3107 -.L3130: + b .L3092 +.L3115: add x19, x19, :lo12:.LANCHOR0 ldrh w1, [x19,2912] ldrb w3, [x19,3348] add w0, w1, 1 strh w0, [x19,2912] mov w0, 0 - cbz w3, .L3114 + cbz w3, .L3099 add w1, w1, 2 strh w1, [x19,2912] -.L3114: +.L3099: sub sp, x29, #16 ldp x19, x20, [sp,32] ldp x21, x22, [sp,48] @@ -19692,7 +19723,7 @@ ftl_update_l2p_map: add x0, x20, x24, sxtw 2 ldr w0, [x0,-4] cmn w0, #1 - beq .L3133 + beq .L3118 adrp x1, .LANCHOR3 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR3 @@ -19701,24 +19732,24 @@ ftl_update_l2p_map: add x0, x0, :lo12:.LC0 bl printk bl dump_stack -.L3133: - adrp x0, .LC267 +.L3118: + adrp x0, .LC270 mov x28, 0 - add x0, x0, :lo12:.LC267 - adrp x27, .LC266 + add x0, x0, :lo12:.LC270 + adrp x27, .LC269 str x0, [x29,120] - adrp x0, .LC268 - add x0, x0, :lo12:.LC268 + adrp x0, .LC271 + add x0, x0, :lo12:.LC271 mov w22, w28 str x0, [x29,112] - add x27, x27, :lo12:.LC266 -.L3134: + add x27, x27, :lo12:.LC269 +.L3119: cmp w28, w24 mov w25, w28 - bge .L3161 + bge .L3146 ldr w2, [x20,x28,lsl 2] cmn w2, #1 - beq .L3135 + beq .L3120 add x0, x19, :lo12:.LANCHOR0 ldrb w21, [x0,2832] adrp x0, .LANCHOR2 @@ -19726,22 +19757,22 @@ ftl_update_l2p_map: ldr w0, [x0,#:lo12:.LANCHOR2] udiv w21, w2, w21 and w21, w21, 65535 - tbz x0, 12, .L3139 + tbz x0, 12, .L3124 mov x0, x27 mov w1, w21 mov w3, w28 bl printk -.L3139: +.L3124: sbfiz x26, x25, 2, 32 ldr w0, [x20,x26] cmn w0, #1 - beq .L3137 + beq .L3122 add x3, x19, :lo12:.LANCHOR0 ldrb w1, [x3,2832] lsl w1, w1, 7 udiv w0, w0, w1 cmp w21, w0, uxth - bne .L3137 + bne .L3122 ldrb w0, [x23,9] ldrh w2, [x3,3350] str x3, [x29,104] @@ -19755,13 +19786,13 @@ ftl_update_l2p_map: ldr w1, [x20,x26] bl pm_ppa_update_check ldr x3, [x29,104] - cbz w0, .L3138 + cbz w0, .L3123 ldr x1, [x3,3872] mov w2, 4 ldr x0, [x29,112] mov w3, w24 bl rknand_print_hex -.L3138: +.L3123: ldr w0, [x20,x26] add x1, x29, 140 mov w2, 1 @@ -19770,27 +19801,27 @@ ftl_update_l2p_map: uxth w22, w22 mov w0, -1 str w0, [x20,x26] -.L3137: +.L3122: add w25, w25, 1 cmp w25, w24 - bne .L3139 -.L3135: + bne .L3124 +.L3120: add x28, x28, 1 - b .L3134 -.L3161: + b .L3119 +.L3146: adrp x0, .LANCHOR2 ldr w0, [x0,#:lo12:.LANCHOR2] - tbz x0, 12, .L3141 + tbz x0, 12, .L3126 add x0, x19, :lo12:.LANCHOR0 ldrh w1, [x23] mov w2, w22 ubfiz x3, x1, 1, 16 ldr x4, [x0,600] - adrp x0, .LC269 - add x0, x0, :lo12:.LC269 + adrp x0, .LC272 + add x0, x0, :lo12:.LC272 ldrh w3, [x4,x3] bl printk -.L3141: +.L3126: add x19, x19, :lo12:.LANCHOR0 ldrh w1, [x23] ldr x0, [x19,600] @@ -19816,9 +19847,9 @@ ftl_alloc_new_data_sblk: ldrh w0, [x19] mov w1, 65535 cmp w0, w1 - beq .L3163 + beq .L3148 bl zftl_insert_data_list -.L3163: +.L3148: adrp x0, .LANCHOR0+608 mov w2, 2 mov w1, 3 @@ -19857,10 +19888,10 @@ ftl_write_commit: stp x21, x22, [sp,32] stp x25, x26, [sp,64] stp x27, x28, [sp,80] -.L3167: +.L3152: ldrb w0, [x24,2856] adrp x21, .LANCHOR0 - cbz w0, .L3169 + cbz w0, .L3154 ldrb w1, [x24,2888] sub w0, w0, #1 ldr x2, [x29,112] @@ -19873,7 +19904,7 @@ ftl_write_commit: strb w1, [x24,2888] ldr w1, [x27,36] cmp w1, w0 - bcc .L3170 + bcc .L3155 adrp x1, .LANCHOR3 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR3 @@ -19882,7 +19913,7 @@ ftl_write_commit: add x0, x0, :lo12:.LC0 bl printk bl dump_stack -.L3170: +.L3155: ldr x0, [x29,128] add x1, x21, :lo12:.LANCHOR0 add x4, x1, 784 @@ -19890,32 +19921,32 @@ ftl_write_commit: ldr w2, [x1,2840] ldr w23, [x0,36] cmp w23, w2 - bcc .L3171 + bcc .L3156 mov x0, x27 bl buf_free mov w0, -1 - b .L3225 -.L3171: + b .L3210 +.L3156: ldr x25, [x0,8] ldr x28, [x0,24] ldrb w22, [x0,57] ldrb w20, [x0,56] ldrb w0, [x1,2857] - cbz w0, .L3173 + cbz w0, .L3158 ldr x0, [x29,120] ldrb w3, [x0,1266] add x3, x4, x3, lsl 6 -.L3174: +.L3159: ldrb w5, [x3] cmp w5, 255 - beq .L3227 + beq .L3212 sbfiz x3, x5, 6, 32 add x3, x4, x3 - b .L3174 -.L3227: + b .L3159 +.L3212: ldr w0, [x3,36] cmp w0, w23 - bne .L3173 + bne .L3158 ldr x0, [x3,8] ubfiz x1, x22, 9, 8 lsl w2, w20, 9 @@ -19924,29 +19955,29 @@ ftl_write_commit: bl ftl_memcpy mov x0, x27 bl buf_free - b .L3167 -.L3173: + b .L3152 +.L3158: mov w0, w23 bl lpa_hash_get_ppa str w0, [x29,156] cmn w0, #1 - bne .L3177 + bne .L3162 mov w0, w23 add x1, x29, 156 mov w2, 0 bl pm_log2phys -.L3177: +.L3162: add x4, x21, :lo12:.LANCHOR0 mov w3, 0 add x4, x4, 784 ldr x19, [x4,-176] add x19, x19, 16 -.L3180: +.L3165: ldr w0, [x4,36] cmp w0, w23 - bne .L3178 + bne .L3163 ldrb w5, [x4,2] - tbz x5, 3, .L3178 + tbz x5, 3, .L3163 add x0, x21, :lo12:.LANCHOR0 ubfiz x3, x3, 6, 32 add x0, x0, 784 @@ -19956,22 +19987,22 @@ ftl_write_commit: strb w5, [x3,2] ldr x26, [x3,8] str w0, [x29,156] - b .L3179 -.L3178: + b .L3164 +.L3163: add w3, w3, 1 add x4, x4, 64 cmp w3, 32 - bne .L3180 + bne .L3165 mov x26, 0 -.L3179: +.L3164: add x3, x21, :lo12:.LANCHOR0 str wzr, [x29,136] ldrb w0, [x3,2832] cmp w20, w0 - bcs .L3181 + bcs .L3166 add w20, w22, w20 - cbz x26, .L3182 - cbz w22, .L3183 + cbz x26, .L3167 + cbz w22, .L3168 mov x0, x25 mov x1, x26 lsl w2, w22, 9 @@ -19980,28 +20011,28 @@ ftl_write_commit: ldr x3, [x29,136] ldr x19, [x3,608] add x19, x19, 48 -.L3183: +.L3168: add x0, x21, :lo12:.LANCHOR0 ldrb w2, [x0,2832] cmp w20, w2 - bcc .L3184 + bcc .L3169 ldr x19, [x0,608] add x19, x19, 16 - b .L3226 -.L3184: + b .L3211 +.L3169: ubfiz x1, x20, 9, 9 sub w2, w2, w20 add x0, x25, x1 lsl w2, w2, 9 add x1, x26, x1 bl ftl_memcpy -.L3226: +.L3211: str wzr, [x29,136] - b .L3181 -.L3182: + b .L3166 +.L3167: ldr w0, [x29,156] cmn w0, #1 - beq .L3185 + beq .L3170 mov w0, 1 bl buf_alloc mov x26, x0 @@ -20016,11 +20047,11 @@ ftl_write_commit: add w1, w1, 1 str w1, [x29,136] cmp w0, w23 - bne .L3186 + bne .L3171 ldr w0, [x26,52] cmn w0, #1 - bne .L3187 -.L3186: + bne .L3172 +.L3171: add x0, x21, :lo12:.LANCHOR0 ldr w2, [x29,156] mov w3, w23 @@ -20028,26 +20059,26 @@ ftl_write_commit: ldr w0, [x1,552] add w0, w0, 1 str w0, [x1,552] - adrp x0, .LC270 + adrp x0, .LC273 ldrb w1, [x26,1] - add x0, x0, :lo12:.LC270 + add x0, x0, :lo12:.LC273 ldr w4, [x26,52] bl printk - adrp x0, .LC202 + adrp x0, .LC205 mov w2, 4 ldr x1, [x26,24] - add x0, x0, :lo12:.LC202 + add x0, x0, :lo12:.LC205 mov w3, w2 bl rknand_print_hex -.L3187: +.L3172: ldr x0, [x26,24] ldr w0, [x0,4] cmp w0, w23 - bne .L3188 + bne .L3173 ldr w0, [x26,52] cmn w0, #1 - bne .L3189 -.L3188: + bne .L3174 +.L3173: adrp x1, .LANCHOR3 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR3 @@ -20056,55 +20087,55 @@ ftl_write_commit: add x0, x0, :lo12:.LC0 bl printk bl dump_stack -.L3189: - cbz w22, .L3190 +.L3174: + cbz w22, .L3175 ldr w0, [x29,156] lsl w2, w22, 9 cmn w0, #1 - beq .L3191 + beq .L3176 ldr x1, [x26,8] mov x0, x25 bl ftl_memcpy - b .L3192 -.L3185: - cbz w22, .L3190 + b .L3177 +.L3170: + cbz w22, .L3175 lsl w2, w22, 9 -.L3191: +.L3176: mov x0, x25 mov w1, 0 bl ftl_memset -.L3192: +.L3177: add x0, x21, :lo12:.LANCHOR0 ldr x19, [x0,608] add x19, x19, 48 -.L3190: +.L3175: add x0, x21, :lo12:.LANCHOR0 ldrb w2, [x0,2832] cmp w20, w2 - bcc .L3193 - bls .L3194 + bcc .L3178 + bls .L3179 ldr x19, [x0,608] add x19, x19, 16 - b .L3194 -.L3193: + b .L3179 +.L3178: ldr w0, [x29,156] sub w2, w2, w20 lsl w2, w2, 9 cmn w0, #1 ubfiz x0, x20, 7, 9 - beq .L3195 + beq .L3180 ldr x1, [x26,8] lsl x20, x0, 2 add x0, x25, x20 add x1, x1, x20 bl ftl_memcpy - b .L3194 -.L3195: + b .L3179 +.L3180: add x0, x25, x0, lsl 2 mov w1, 0 bl ftl_memset -.L3194: - cbz x26, .L3181 +.L3179: + cbz x26, .L3166 ldrb w0, [x26,2] mov x1, x26 and w0, w0, -9 @@ -20114,13 +20145,13 @@ ftl_write_commit: bl buf_remove_buf mov x0, x26 bl buf_free -.L3181: +.L3166: ldrh w0, [x19,6] - cbnz w0, .L3196 + cbnz w0, .L3181 bl ftl_flush mov x0, x19 bl ftl_alloc_new_data_sblk -.L3196: +.L3181: mov x0, x19 add x20, x21, :lo12:.LANCHOR0 bl ftl_get_new_free_page @@ -20160,11 +20191,11 @@ ftl_write_commit: str w0, [x1,1268] cmp w2, 2 adrp x0, .LANCHOR4 - bhi .L3197 + bhi .L3182 ldrh w1, [x19,6] cmp w1, 1 - bne .L3169 -.L3197: + bne .L3154 +.L3182: ldrb w1, [x19,5] mov w4, 2 add x6, x21, :lo12:.LANCHOR0 @@ -20178,14 +20209,14 @@ ftl_write_commit: ldrb w5, [x1,1266] mov w1, 0 mov w3, w5 -.L3201: +.L3186: cmp w1, w4 - beq .L3228 + beq .L3213 ubfiz x3, x3, 6, 8 add w1, w1, 1 ldrb w3, [x6,x3] - b .L3201 -.L3228: + b .L3186 +.L3213: add x0, x0, :lo12:.LANCHOR4 uxtb w1, w1 sub w2, w2, w1 @@ -20198,20 +20229,20 @@ ftl_write_commit: bl sblk_prog_page ldrh w0, [x19,6] cmp w0, 1 - bne .L3169 + bne .L3154 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 -.L3169: +.L3154: add x21, x21, :lo12:.LANCHOR0 ldrb w19, [x21,2856] - cbnz w19, .L3167 + cbnz w19, .L3152 bl ftl_write_completed mov w0, w19 -.L3225: +.L3210: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -20236,10 +20267,10 @@ gc_do_copy_back: stp x27, x28, [sp,96] ldrb w0, [x21,3273] ldr x22, [x21,608] - cbnz w0, .L3230 + cbnz w0, .L3215 bl buf_alloc mov x20, x0 - cbz x0, .L3229 + cbz x0, .L3214 ldrh w22, [x21,2922] mov w0, w22 add w22, w22, 1 @@ -20252,10 +20283,10 @@ gc_do_copy_back: bl sblk_read_page ldr w0, [x20,52] cmp w0, 512 - beq .L3283 + beq .L3268 cmn w0, #1 - bne .L3232 -.L3283: + bne .L3217 +.L3268: adrp x1, .LANCHOR3 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR3 @@ -20264,48 +20295,48 @@ gc_do_copy_back: add x0, x0, :lo12:.LC0 bl printk bl dump_stack -.L3232: +.L3217: ldr x0, [x20,24] ldr w21, [x0,4] mov w0, w21 bl lpa_hash_get_ppa str w0, [x29,144] cmn w0, #1 - bne .L3234 + bne .L3219 mov w0, w21 add x1, x29, 144 mov w2, 0 bl pm_log2phys -.L3234: +.L3219: ldr w22, [x29,144] cmp w22, w23 - bne .L3235 + bne .L3220 add x1, x19, :lo12:.LANCHOR0 add x0, x1, 784 add x1, x1, 2832 -.L3238: +.L3223: ldr w2, [x0,36] cmp w2, w21 - bne .L3236 + bne .L3221 ldrb w2, [x0,2] - tbz x2, 1, .L3236 + tbz x2, 1, .L3221 mov x0, x20 bl buf_free adrp x0, .LANCHOR2 ldr w0, [x0,#:lo12:.LANCHOR2] - tbz x0, 8, .L3229 + tbz x0, 8, .L3214 add x19, x19, :lo12:.LANCHOR0 - adrp x0, .LC271 + adrp x0, .LC274 mov w1, w21 mov w2, w22 - add x0, x0, :lo12:.LC271 + add x0, x0, :lo12:.LC274 ldrh w3, [x19,2922] bl printk - b .L3229 -.L3236: + b .L3214 +.L3221: add x0, x0, 64 cmp x0, x1 - bne .L3238 + bne .L3223 add x23, x19, :lo12:.LANCHOR0 ldrb w1, [x20,2] str w21, [x20,36] @@ -20320,20 +20351,20 @@ gc_do_copy_back: str w0, [x20,32] adrp x0, .LANCHOR2 ldr w0, [x0,#:lo12:.LANCHOR2] - tbz x0, 8, .L3239 + tbz x0, 8, .L3224 ldr w2, [x29,144] mov w0, w21 str x2, [x29,136] bl lpa_hash_get_ppa mov w3, w0 ldr x2, [x29,136] - adrp x0, .LC272 + adrp x0, .LC275 ldrh w5, [x23,2922] - add x0, x0, :lo12:.LC272 + add x0, x0, :lo12:.LC275 mov w1, w21 mov w4, w22 bl printk -.L3239: +.L3224: add x19, x19, :lo12:.LANCHOR0 mov x0, x20 bl ftl_gc_write_buf @@ -20345,34 +20376,34 @@ gc_do_copy_back: ldrh w0, [x19,2924] add w0, w0, 1 strh w0, [x19,2924] - b .L3229 -.L3235: + b .L3214 +.L3220: adrp x0, .LANCHOR2 ldr w0, [x0,#:lo12:.LANCHOR2] - tbz x0, 8, .L3241 + tbz x0, 8, .L3226 mov w0, w21 add x19, x19, :lo12:.LANCHOR0 bl lpa_hash_get_ppa mov w3, w0 ldrh w5, [x19,2922] - adrp x0, .LC272 - add x0, x0, :lo12:.LC272 + adrp x0, .LC275 + add x0, x0, :lo12:.LC275 mov w1, w21 mov w2, w22 mov w4, w23 bl printk -.L3241: +.L3226: mov x0, x20 bl buf_free - b .L3229 -.L3230: + b .L3214 +.L3215: ldrb w24, [x21,3257] add x0, x21, 2896 add x22, x22, 80 cmp w24, 3 - bne .L3242 + bne .L3227 ldrb w1, [x21,3272] - cbz w1, .L3243 + cbz w1, .L3228 ldrb w20, [x22,9] ldrh w21, [x0,314] str w24, [x29,136] @@ -20381,13 +20412,13 @@ gc_do_copy_back: sdiv w23, w21, w23 madd w20, w23, w20, w21 uxth w20, w20 - b .L3245 -.L3243: + b .L3230 +.L3228: ldrh w20, [x0,314] adrp x0, .LANCHOR2 ldrb w21, [x22,9] add x0, x0, :lo12:.LANCHOR2 - add x0, x0, 1592 + add x0, x0, 1720 str w24, [x29,136] sdiv w1, w20, w21 msub w20, w1, w21, w20 @@ -20399,9 +20430,9 @@ gc_do_copy_back: cmp w25, 1 add w21, w21, w21, lsl 1 uxth w21, w21 - bne .L3246 - b .L3245 -.L3242: + bne .L3231 + b .L3230 +.L3227: ldrb w20, [x22,9] ldrb w1, [x21,3348] ldrh w21, [x0,314] @@ -20409,38 +20440,38 @@ gc_do_copy_back: sdiv w23, w21, w20 msub w20, w23, w20, w21 uxth w20, w20 - cbz w1, .L3324 + cbz w1, .L3309 mov w0, 2 -.L3324: +.L3309: str w0, [x29,136] -.L3245: +.L3230: mov w25, 0 add x24, x19, :lo12:.LANCHOR0 adrp x3, .LANCHOR4 -.L3248: +.L3233: ldrb w1, [x22,9] ldr w0, [x29,136] mul w0, w0, w1 cmp w25, w0 - bge .L3281 + bge .L3266 ldrh w0, [x24,3274] add w26, w21, w25 mul w0, w0, w1 sub w0, w0, #1 cmp w26, w0 - beq .L3281 + beq .L3266 add x0, x3, :lo12:.LANCHOR4 sbfiz x26, x26, 2, 32 ldr x1, [x0,1144] ldr w0, [x1,x26] cmn w0, #1 - bne .L3249 + bne .L3234 ldrh w27, [x24,2922] ldrh w0, [x24,2920] str x3, [x29,120] str x1, [x29,128] cmp w0, w27 - bls .L3229 + bls .L3214 mov w0, w27 add w27, w27, 1 bl gc_get_src_ppa_from_index @@ -20448,17 +20479,17 @@ gc_do_copy_back: ldr x1, [x29,128] ldr x3, [x29,120] str w0, [x1,x26] -.L3249: +.L3234: add w25, w25, 1 uxth w25, w25 - b .L3248 -.L3281: + b .L3233 +.L3266: mov w25, 1 -.L3246: +.L3231: adrp x0, .LANCHOR2 str x0, [x29,120] ldr w1, [x0,#:lo12:.LANCHOR2] - tbz x1, 8, .L3251 + tbz x1, 8, .L3236 adrp x0, .LANCHOR4+1144 add x4, x19, :lo12:.LANCHOR0 ubfiz x5, x21, 2, 16 @@ -20466,13 +20497,13 @@ gc_do_copy_back: mov w2, w25 mov w3, w20 ldr x6, [x0,#:lo12:.LANCHOR4+1144] - adrp x0, .LC273 + adrp x0, .LC276 ldrh w4, [x4,3210] - add x0, x0, :lo12:.LC273 + add x0, x0, :lo12:.LC276 ldr w5, [x6,x5] mov w6, w21 bl printk -.L3251: +.L3236: adrp x0, .LC0 mov w27, 0 add x0, x0, :lo12:.LC0 @@ -20481,12 +20512,12 @@ gc_do_copy_back: add x0, x0, :lo12:.LANCHOR3 add x0, x0, 784 str x0, [x29,104] -.L3252: +.L3237: ldrb w0, [x22,9] ldr w1, [x29,136] mul w0, w1, w0 cmp w27, w0 - bge .L3328 + bge .L3313 add w26, w21, w27 sxtw x0, w26 str x0, [x29,128] @@ -20495,11 +20526,11 @@ gc_do_copy_back: ldr x0, [x0,3264] ldrb w0, [x0,x1] cmp w0, 255 - bne .L3253 + bne .L3238 mov w0, 0 bl buf_alloc mov x24, x0 - cbnz x0, .L3254 + cbnz x0, .L3239 bl sblk_wait_write_queue_completed bl ftl_write_completed bl gc_write_completed @@ -20507,8 +20538,8 @@ gc_do_copy_back: mov w0, w24 bl buf_alloc mov x24, x0 - cbz x0, .L3229 -.L3254: + cbz x0, .L3214 +.L3239: add x28, x19, :lo12:.LANCHOR0 ldr x2, [x29,128] ldrb w1, [x24,1] @@ -20525,7 +20556,7 @@ gc_do_copy_back: sub w0, w0, #1 cmp w26, w0 adrp x26, .LANCHOR4 - bne .L3255 + bne .L3240 add x26, x26, :lo12:.LANCHOR4 mov w1, -1 ldr x0, [x26,1136] @@ -20565,8 +20596,8 @@ gc_do_copy_back: ldr x1, [x28,608] ldr x0, [x24,24] ldr w1, [x1,132] - b .L3325 -.L3255: + b .L3310 +.L3240: ldr x0, [x29,128] mov w1, 1 lsl x28, x0, 2 @@ -20578,10 +20609,10 @@ gc_do_copy_back: bl sblk_read_page ldr w0, [x24,52] cmp w0, 512 - beq .L3256 + beq .L3241 cmn w0, #1 - bne .L3257 -.L3256: + bne .L3242 +.L3241: add x4, x19, :lo12:.LANCHOR0 mov w2, 21 mov w1, 1 @@ -20598,35 +20629,35 @@ gc_do_copy_back: bl ftl_sblk_dump ldr w0, [x24,52] cmp w0, 512 - beq .L3284 + beq .L3269 cmn w0, #1 - bne .L3257 -.L3284: + bne .L3242 +.L3269: ldr x0, [x24,24] mov w1, -1 str w1, [x0,4] -.L3257: +.L3242: ldr w0, [x24,52] cmp w0, 512 - beq .L3285 + beq .L3270 cmn w0, #1 - bne .L3260 -.L3285: + bne .L3245 +.L3270: ldr x1, [x29,104] mov w2, 716 ldr x0, [x29,112] bl printk bl dump_stack -.L3260: +.L3245: ldr x1, [x24,24] add x0, x19, :lo12:.LANCHOR0 ldr w2, [x1,4] ldr w0, [x0,2840] cmp w2, w0 - bcc .L3262 + bcc .L3247 mov w0, -1 str w0, [x1,4] -.L3262: +.L3247: ldr x0, [x24,24] add x26, x26, :lo12:.LANCHOR4 ldr w1, [x0,4] @@ -20634,9 +20665,9 @@ gc_do_copy_back: str w1, [x0,x28] ldr x0, [x24,24] ldr w1, [x24,40] -.L3325: +.L3310: str w1, [x0,8] -.L3253: +.L3238: add x3, x19, :lo12:.LANCHOR0 ldr x2, [x29,128] add x1, x3, 784 @@ -20652,7 +20683,7 @@ gc_do_copy_back: cmp w0, 3 strb w25, [x1,61] adrp x2, .LANCHOR4 - bne .L3263 + bne .L3248 udiv w0, w27, w0 ldrh w3, [x3,3350] add x2, x2, :lo12:.LANCHOR4 @@ -20670,30 +20701,30 @@ gc_do_copy_back: add w0, w0, 1 orr w0, w3, w0, lsl 24 str w0, [x1,x4,lsl 2] - b .L3264 -.L3263: + b .L3249 +.L3248: cmp w0, 2 - bne .L3265 + bne .L3250 ldrb w6, [x3,3348] add x1, x1, 32 ldrh w0, [x3,3350] - cbnz w6, .L3266 + cbnz w6, .L3251 add w3, w27, w20 add x3, x22, x3, sxtw 1 ldrh w3, [x3,16] madd w0, w3, w0, w23 - b .L3327 -.L3266: + b .L3312 +.L3251: 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 -.L3327: +.L3312: orr w0, w0, 33554432 str w0, [x1,8] -.L3265: +.L3250: add x0, x19, :lo12:.LANCHOR0 add x2, x2, :lo12:.LANCHOR4 add x0, x0, 784 @@ -20702,10 +20733,10 @@ gc_do_copy_back: ldrh w1, [x0,48] ldr x0, [x2,1152] str w3, [x0,x1,lsl 2] -.L3264: +.L3249: ldr x0, [x29,120] ldr w0, [x0,#:lo12:.LANCHOR2] - tbz x0, 8, .L3267 + tbz x0, 8, .L3252 add x0, x29, 144 ldr x1, [x29,128] mov w2, w25 @@ -20724,57 +20755,57 @@ gc_do_copy_back: ldr x0, [x5,24] ldr w0, [x0,4] str w0, [sp,8] - adrp x0, .LC274 - add x0, x0, :lo12:.LC274 + adrp x0, .LC277 + add x0, x0, :lo12:.LC277 ldr w5, [x5,40] bl printk -.L3267: +.L3252: add w8, w27, 1 uxth w27, w8 - b .L3252 -.L3328: + b .L3237 +.L3313: add x2, x19, :lo12:.LANCHOR0 mov w1, 0 ldrb w0, [x2,3257] cmp w0, 3 add x0, x29, 144 - bne .L3311 + bne .L3296 ldrb w1, [x2,3272] - cbz w1, .L3270 -.L3273: + cbz w1, .L3255 +.L3258: ldr x1, [x29,144] strb wzr, [x1,60] - b .L3271 -.L3270: + b .L3256 +.L3255: cmp w25, 1 mov w2, 9 - beq .L3326 + beq .L3311 cmp w25, 2 - bne .L3273 + bne .L3258 mov w2, 13 -.L3326: +.L3311: ldr x1, [x29,144] strb w2, [x1,60] -.L3271: +.L3256: ldrb w2, [x22,9] add x1, x0, 24 bl sblk_xlc_prog_pages - b .L3274 -.L3311: + b .L3259 +.L3296: ldrb w2, [x22,9] ldr w3, [x29,136] mul w2, w2, w3 sub w2, w2, #1 cmp w1, w2 - bge .L3329 + bge .L3314 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 .L3311 -.L3329: + b .L3296 +.L3314: ldr x0, [x0,w2,sxtw 3] mov w1, -1 strb w1, [x0] @@ -20782,20 +20813,20 @@ gc_do_copy_back: ldr x0, [x29,144] mul w1, w3, w1 bl sblk_prog_page -.L3274: +.L3259: add x1, x19, :lo12:.LANCHOR0 ldrb w2, [x22,9] ldrb w3, [x1,3272] - cbz w3, .L3276 + cbz w3, .L3261 add w0, w2, w2, lsl 1 and w2, w0, 1023 - b .L3277 -.L3276: + b .L3262 +.L3261: ldrb w1, [x1,3348] ubfiz w0, w2, 1, 8 cmp w1, wzr csel w2, w0, w2, ne -.L3277: +.L3262: add x19, x19, :lo12:.LANCHOR0 ldr x1, [x19,2864] ldr w0, [x1,52] @@ -20809,12 +20840,12 @@ gc_do_copy_back: ldrb w2, [x22,9] mul w1, w1, w2 cmp w0, w1 - blt .L3278 + blt .L3263 ldr x0, [x19,608] strh wzr, [x0,86] -.L3278: +.L3263: bl gc_write_completed -.L3229: +.L3214: sub sp, x29, #16 ldp x19, x20, [sp,32] ldp x21, x22, [sp,48] @@ -20847,63 +20878,63 @@ zftl_do_gc: add w20, w0, w20 ldrh w22, [x1,2846] uxth w20, w20 - bne .L3331 + bne .L3316 adrp x21, .LANCHOR7 add x1, x21, :lo12:.LANCHOR7 ldr w23, [x1,-80] - cbnz w23, .L3332 + cbnz w23, .L3317 ldr w1, [x1,-76] - cbz w1, .L3331 -.L3332: + cbz w1, .L3316 +.L3317: add x1, x19, :lo12:.LANCHOR0 ldrh w2, [x1,3306] cmp w20, w2, lsr 2 - bls .L3331 + bls .L3316 ldrh w1, [x1,2872] cmp w1, w20 - bcs .L3331 + bcs .L3316 add w23, w23, 20 bl timer_get_time cmp w23, w0 - bcs .L3333 + bcs .L3318 add x0, x21, :lo12:.LANCHOR7 str wzr, [x0,-80] -.L3333: +.L3318: add x19, x21, :lo12:.LANCHOR7 ldr w20, [x19,-76] bl timer_get_time add w20, w20, 20 cmp w20, w0 - bcs .L3516 + bcs .L3501 str wzr, [x19,-76] - b .L3516 -.L3331: + b .L3501 +.L3316: adrp x23, .LANCHOR4 add x1, x23, :lo12:.LANCHOR4 ldrb w2, [x1,1130] mov w1, 16 cmp w2, 6 - bhi .L3489 - adrp x1, .L3337 - add x1, x1, :lo12:.L3337 + bhi .L3474 + adrp x1, .L3322 + add x1, x1, :lo12:.L3322 ldrh w1, [x1,w2,uxtw #1] - adr x2, .Lrtx3337 + adr x2, .Lrtx3322 add x1, x2, w1, sxth #2 br x1 -.Lrtx3337: +.Lrtx3322: .section .rodata .align 0 .align 2 -.L3337: - .2byte (.L3336 - .Lrtx3337) / 4 - .2byte (.L3338 - .Lrtx3337) / 4 - .2byte (.L3339 - .Lrtx3337) / 4 - .2byte (.L3340 - .Lrtx3337) / 4 - .2byte (.L3341 - .Lrtx3337) / 4 - .2byte (.L3447 - .Lrtx3337) / 4 - .2byte (.L3343 - .Lrtx3337) / 4 +.L3322: + .2byte (.L3321 - .Lrtx3322) / 4 + .2byte (.L3323 - .Lrtx3322) / 4 + .2byte (.L3324 - .Lrtx3322) / 4 + .2byte (.L3325 - .Lrtx3322) / 4 + .2byte (.L3326 - .Lrtx3322) / 4 + .2byte (.L3432 - .Lrtx3322) / 4 + .2byte (.L3328 - .Lrtx3322) / 4 .text -.L3336: +.L3321: add x21, x19, :lo12:.LANCHOR0 add w22, w22, w0 ldrh w1, [x24,80] @@ -20914,12 +20945,12 @@ zftl_do_gc: mov w0, 65535 cmp w1, w0 uxth w25, w25 - beq .L3344 - cbnz w26, .L3345 + beq .L3329 + cbnz w26, .L3330 ldrh w0, [x21,2872] cmp w20, w0, lsl 1 - bge .L3516 -.L3345: + bge .L3501 +.L3330: add x21, x19, :lo12:.LANCHOR0 mov w1, 5 ldrh w0, [x21,3304] @@ -20930,7 +20961,7 @@ zftl_do_gc: uxth w2, w0 mov w1, 65535 cmp w2, w1 - beq .L3347 + beq .L3332 add x3, x23, :lo12:.LANCHOR4 ubfiz x2, x2, 1, 16 ldr w1, [x3,1132] @@ -20940,112 +20971,112 @@ zftl_do_gc: ldrh w2, [x3,x2] ldrh w3, [x21,3300] cmp w3, w2 - bcs .L3348 + bcs .L3333 ldrh w3, [x21,576] cmp w1, w3, lsr 4 - bls .L3347 + bls .L3332 ldrh w1, [x21,2874] cmp w1, w2 - bls .L3347 -.L3348: + bls .L3332 +.L3333: add x2, x19, :lo12:.LANCHOR0 mov w1, 0 ldrb w2, [x2,3273] bl gc_add_sblk - cbz w0, .L3349 + cbz w0, .L3334 add x23, x23, :lo12:.LANCHOR4 mov w0, 1 str wzr, [x23,1132] strb w0, [x23,1130] - b .L3516 -.L3347: + b .L3501 +.L3332: add x0, x19, :lo12:.LANCHOR0 strh wzr, [x0,3304] -.L3349: +.L3334: cmp w22, 15 mov w21, 2 - bls .L3350 - cbz w25, .L3449 + bls .L3335 + cbz w25, .L3434 add x0, x19, :lo12:.LANCHOR0 mov w21, 1 ldrh w1, [x0,2854] ldrh w0, [x0,3308] cmp w1, w0 - bls .L3350 -.L3449: + bls .L3335 +.L3434: mov w21, 2 -.L3350: +.L3335: adrp x0, .LANCHOR2 ldr w0, [x0,#:lo12:.LANCHOR2] - tbz x0, 8, .L3351 + tbz x0, 8, .L3336 add x1, x19, :lo12:.LANCHOR0 mov w3, w20 mov w4, w22 ldr x0, [x1,608] ldrb w2, [x1,3273] - mov w1, 1856 + mov w1, 1850 ldrh w5, [x0,124] ldrh w6, [x0,120] ldrh w7, [x0,122] ldrh w0, [x24,80] str w0, [sp] - adrp x0, .LC275 - add x0, x0, :lo12:.LC275 + adrp x0, .LC278 + add x0, x0, :lo12:.LC278 bl printk -.L3351: +.L3336: add x19, x19, :lo12:.LANCHOR0 mov w1, w21 mov w2, 1 ldrb w0, [x19,3273] bl gc_search_src_blk cmp w0, wzr - ble .L3352 -.L3353: + ble .L3337 +.L3338: add x23, x23, :lo12:.LANCHOR4 mov w0, 1 - b .L3519 -.L3352: + b .L3504 +.L3337: ldrb w0, [x19,3273] mov w1, 3 mov w2, 1 bl gc_search_src_blk cmp w0, wzr - bgt .L3353 - b .L3516 -.L3344: + bgt .L3338 + b .L3501 +.L3329: cmp w26, 1 - bne .L3354 + bne .L3339 bl gc_scan_static_data ldr x0, [x21,608] ldrh w0, [x0,122] - cbz w0, .L3355 -.L3356: + cbz w0, .L3340 +.L3341: add x19, x19, :lo12:.LANCHOR0 mov w0, 1 add x23, x23, :lo12:.LANCHOR4 strb w0, [x19,3273] - b .L3519 -.L3355: + b .L3504 +.L3340: bl gc_static_wearleveling - cbnz w0, .L3356 + cbnz w0, .L3341 bl gc_block_vpn_scan - cbz w22, .L3450 + cbz w22, .L3435 cmp w20, w25 - bcs .L3359 + bcs .L3344 ldrh w0, [x21,3306] cmp w20, w0, lsl 1 - blt .L3360 -.L3359: + blt .L3345 +.L3344: add x0, x19, :lo12:.LANCHOR0 add w1, w20, w25 ldrh w2, [x0,3306] cmp w1, w2, lsl 1 - blt .L3360 + blt .L3345 ldrh w1, [x0,2854] ldrh w0, [x0,3308] cmp w1, w0 - bcc .L3450 -.L3360: + bcc .L3435 +.L3345: add x21, x19, :lo12:.LANCHOR0 add x27, x23, :lo12:.LANCHOR4 mov w28, 1 @@ -21055,17 +21086,17 @@ zftl_do_gc: strb w28, [x21,3273] str w1, [x27,1132] cmp w1, w0, lsr 5 - bls .L3362 + bls .L3347 ldrh w0, [x21,2854] cmp w0, w22 - bls .L3362 + bls .L3347 mov w1, 5 mov w0, 0 bl zftl_get_gc_node uxth w1, w0 mov w0, 65535 cmp w1, w0 - beq .L3450 + beq .L3435 ubfiz x1, x1, 1, 16 ldr x0, [x21,600] ldrb w2, [x21,3276] @@ -21074,47 +21105,47 @@ zftl_do_gc: ldrh w1, [x21,3300] mul w1, w1, w2 cmp w0, w1 - bgt .L3358 + bgt .L3343 str wzr, [x27,1132] mov w0, w28 mov w1, 2 - b .L3509 -.L3362: + b .L3494 +.L3347: add x0, x19, :lo12:.LANCHOR0 ldrh w2, [x0,2854] ldrh w1, [x0,3308] cmp w2, w1 - bcc .L3365 + bcc .L3350 mov w0, 1 mov w1, 2 mov w2, w0 - b .L3510 -.L3365: + b .L3495 +.L3350: ldrh w24, [x0,2850] - cbnz w24, .L3366 + cbnz w24, .L3351 ldrh w0, [x0,2852] cmp w0, 8 - bls .L3358 -.L3366: + bls .L3343 +.L3351: mov w0, 1 mov w1, w0 -.L3509: +.L3494: mov w2, 4 -.L3510: +.L3495: bl gc_search_src_blk uxth w0, w0 - cbnz w0, .L3353 - b .L3450 -.L3354: + cbnz w0, .L3338 + b .L3435 +.L3339: ldrh w0, [x21,2872] cmp w0, w20 - bcc .L3516 -.L3450: + bcc .L3501 +.L3435: mov w24, 16 -.L3358: +.L3343: add x21, x19, :lo12:.LANCHOR0 ldr w0, [x21,2884] - cbz w0, .L3367 + cbz w0, .L3352 mov w0, 1 mov w1, 5 strb w0, [x21,3273] @@ -21124,105 +21155,105 @@ zftl_do_gc: uxth w1, w0 mov w2, 65535 cmp w1, w2 - beq .L3368 + beq .L3353 ubfiz x1, x1, 1, 16 ldr x2, [x21,600] ldrh w1, [x2,x1] cmp w1, 8 - bhi .L3368 + bhi .L3353 mov w2, 1 mov w1, 0 str w2, [x21,2884] bl gc_add_sblk - cbnz w0, .L3353 -.L3368: + cbnz w0, .L3338 +.L3353: mov w1, 4 mov w0, 0 bl zftl_get_gc_node uxth w1, w0 mov w2, 65535 cmp w1, w2 - beq .L3369 + beq .L3354 add x3, x19, :lo12:.LANCHOR0 ubfiz x1, x1, 1, 16 ldr x2, [x3,600] ldrh w1, [x2,x1] cmp w1, 4 - bhi .L3369 + bhi .L3354 mov w2, 1 mov w1, 0 str w2, [x3,2884] bl gc_add_sblk - cbnz w0, .L3353 -.L3369: + cbnz w0, .L3338 +.L3354: mov w0, 0 bl zftl_get_gc_node.part.12 uxth w1, w0 mov w2, 65535 cmp w1, w2 - beq .L3367 + beq .L3352 add x2, x19, :lo12:.LANCHOR0 ubfiz x1, x1, 1, 16 ldr x3, [x2,600] ldrh w1, [x3,x1] cmp w1, 4 - bhi .L3367 + bhi .L3352 mov w1, 1 str w1, [x2,2884] mov w2, 0 bl gc_add_sblk - cbnz w0, .L3353 -.L3367: + cbnz w0, .L3338 +.L3352: add x21, x19, :lo12:.LANCHOR0 mov w0, 1 ldr x7, [x21,608] strb w0, [x21,3273] ldrh w5, [x7,124] - cbz w5, .L3370 + cbz w5, .L3355 add x23, x23, :lo12:.LANCHOR4 strb wzr, [x21,3273] strb w0, [x23,1130] adrp x0, .LANCHOR2 ldr w0, [x0,#:lo12:.LANCHOR2] - tbz x0, 8, .L3371 + tbz x0, 8, .L3356 ldrh w6, [x7,120] - adrp x0, .LC276 + adrp x0, .LC279 ldrh w7, [x7,122] - mov w1, 1954 + mov w1, 1948 mov w2, 0 mov w3, w20 mov w4, w22 - add x0, x0, :lo12:.LC276 + add x0, x0, :lo12:.LC279 bl printk - b .L3371 -.L3370: + b .L3356 +.L3355: ldrh w2, [x21,2872] cmp w20, w2 - bcs .L3372 - cbz w22, .L3373 + bcs .L3357 + cbz w22, .L3358 cmp w22, 16 - bls .L3374 + bls .L3359 ldrh w2, [x21,2854] ldrh w1, [x21,3308] cmp w2, w1 - bhi .L3374 + bhi .L3359 mov w1, w0 mov w2, 4 str x5, [x29,104] bl gc_search_src_blk uxth w0, w0 ldr x5, [x29,104] - cbnz w0, .L3375 + cbnz w0, .L3360 ldrb w0, [x21,3273] - b .L3518 -.L3375: + b .L3503 +.L3360: mov w1, 5 mov w0, w5 bl zftl_get_gc_node uxth w2, w0 mov w1, 65535 cmp w2, w1 - beq .L3444 + beq .L3429 add x3, x23, :lo12:.LANCHOR4 ubfiz x2, x2, 1, 16 ldr w1, [x3,1132] @@ -21232,14 +21263,14 @@ zftl_do_gc: ldrh w2, [x3,x2] ldrh w3, [x21,3300] cmp w3, w2 - bcs .L3378 + bcs .L3363 ldrh w3, [x21,576] cmp w1, w3, lsr 4 - bls .L3444 + bls .L3429 ldrh w1, [x21,2874] cmp w1, w2 - bls .L3444 -.L3378: + bls .L3429 +.L3363: add x19, x19, :lo12:.LANCHOR0 mov w1, 0 ldrb w2, [x19,3273] @@ -21248,71 +21279,71 @@ zftl_do_gc: str w0, [x19,2884] add x0, x23, :lo12:.LANCHOR4 str wzr, [x0,1132] - b .L3444 -.L3374: + b .L3429 +.L3359: mov w0, 1 mov w1, 2 mov w2, w0 bl gc_search_src_blk uxth w0, w0 - cbnz w0, .L3444 + cbnz w0, .L3429 add x19, x19, :lo12:.LANCHOR0 -.L3515: +.L3500: ldrb w0, [x19,3273] mov w1, 3 mov w2, 2 -.L3512: +.L3497: bl gc_search_src_blk uxth w0, w0 - b .L3376 -.L3373: + b .L3361 +.L3358: adrp x0, .LANCHOR2 strb w22, [x21,3273] ldr w0, [x0,#:lo12:.LANCHOR2] - tbz x0, 8, .L3380 - adrp x0, .LC276 + tbz x0, 8, .L3365 + adrp x0, .LC279 ldrh w6, [x7,120] ldrh w7, [x7,122] - add x0, x0, :lo12:.LC276 - mov w1, 1984 + add x0, x0, :lo12:.LC279 + mov w1, 1978 mov w2, w22 mov w3, w20 mov w4, w22 mov w5, w22 bl printk -.L3380: +.L3365: add x19, x19, :lo12:.LANCHOR0 cmp w20, 16 ldrb w0, [x19,3273] - bls .L3381 -.L3518: + bls .L3366 +.L3503: mov w1, 3 mov w2, 4 - b .L3512 -.L3381: + b .L3497 +.L3366: mov w1, 1 mov w2, w1 bl gc_search_src_blk uxth w0, w0 - cbnz w0, .L3444 - b .L3515 -.L3372: + cbnz w0, .L3429 + b .L3500 +.L3357: cmp w26, 1 mov w1, w24 - bne .L3489 + bne .L3474 cmp w20, w2, lsl 1 - bge .L3382 + bge .L3367 cmp w25, w22, lsr 1 - bcs .L3383 + bcs .L3368 ldrh w2, [x21,2854] ldrh w0, [x21,3308] cmp w2, w0 - bcs .L3383 + bcs .L3368 ldrh w0, [x21,3306] lsr w0, w0, 2 strh w0, [x21,2872] - b .L3489 -.L3383: + b .L3474 +.L3368: mov w1, 5 mov w0, 0 bl zftl_get_gc_node @@ -21320,12 +21351,12 @@ zftl_do_gc: mov w1, 65535 mov w27, w21 cmp w21, w1 - bne .L3384 -.L3389: + bne .L3369 +.L3374: cmp w22, 1 - bhi .L3385 - b .L3386 -.L3384: + bhi .L3370 + b .L3371 +.L3369: add x26, x23, :lo12:.LANCHOR4 add x2, x19, :lo12:.LANCHOR0 uxtw x21, w21 @@ -21334,94 +21365,94 @@ zftl_do_gc: add w1, w1, 1 str w1, [x26,1132] cmp w1, w3, lsr 4 - bls .L3387 + bls .L3372 ldr x1, [x2,600] str wzr, [x26,1132] ldrh w3, [x1,x21,lsl 1] ldrh w1, [x2,2874] cmp w3, w1 - bcs .L3387 + bcs .L3372 mov w1, 0 mov w2, 1 bl gc_add_sblk - cbz w0, .L3387 + cbz w0, .L3372 mov w0, 1 strb w0, [x26,1130] - b .L3371 -.L3387: + b .L3356 +.L3372: add x1, x19, :lo12:.LANCHOR0 ldr x0, [x1,600] ldrh w2, [x0,x21,lsl 1] ldrh w0, [x1,3300] cmp w2, w0, lsr 1 - bhi .L3388 + bhi .L3373 mov w0, w27 mov w1, 1 mov w2, 0 bl gc_add_sblk - b .L3444 -.L3388: + b .L3429 +.L3373: ldrh w3, [x1,2850] ldrh w0, [x1,2852] add w0, w3, w0 ldrh w3, [x1,3306] cmp w0, w3, lsl 1 - ble .L3389 + ble .L3374 ldrh w0, [x1,2874] cmp w0, w2 - bcc .L3386 - b .L3389 -.L3385: + bcc .L3371 + b .L3374 +.L3370: add x21, x19, :lo12:.LANCHOR0 mov w0, 1 cmp w22, 16 strb w0, [x21,3273] - bls .L3390 + bls .L3375 ldrh w2, [x21,2854] ldrh w1, [x21,3308] cmp w2, w1 - bhi .L3390 + bhi .L3375 mov w1, w0 mov w2, 4 bl gc_search_src_blk uxth w0, w0 - cbnz w0, .L3391 + cbnz w0, .L3376 ldrb w0, [x21,3273] mov w1, 3 mov w2, 4 - b .L3511 -.L3390: + b .L3496 +.L3375: mov w0, 1 mov w1, 2 mov w2, w0 bl gc_search_src_blk uxth w0, w0 - cbnz w0, .L3391 + cbnz w0, .L3376 add x0, x19, :lo12:.LANCHOR0 mov w1, 3 mov w2, 2 ldrb w0, [x0,3273] -.L3511: +.L3496: bl gc_search_src_blk uxth w0, w0 -.L3391: +.L3376: add x19, x19, :lo12:.LANCHOR0 cmp w20, w25, lsr 1 ldrh w1, [x19,3306] - bls .L3513 + bls .L3498 lsr w1, w1, 2 - b .L3514 -.L3386: + b .L3499 +.L3371: cmp w20, w25 add x19, x19, :lo12:.LANCHOR0 - bcs .L3393 + bcs .L3378 mov w0, 4 strb wzr, [x19,3273] bl zftl_get_gc_node.part.12 uxth w0, w0 mov w1, 65535 cmp w0, w1 - beq .L3393 + beq .L3378 ubfiz x0, x0, 1, 16 ldr x1, [x19,600] ldrb w2, [x19,3276] @@ -21429,134 +21460,134 @@ zftl_do_gc: ldrh w0, [x19,3300] mul w0, w0, w2 cmp w1, w0, lsr 1 - bgt .L3393 + bgt .L3378 mov w1, 3 mov w0, 0 mov w2, 4 bl gc_search_src_blk uxth w0, w0 ldrh w1, [x19,3306] -.L3513: +.L3498: lsr w1, w1, 1 -.L3514: +.L3499: strh w1, [x19,2872] - b .L3376 -.L3393: + b .L3361 +.L3378: ldrh w0, [x19,3306] lsr w0, w0, 2 strh w0, [x19,2872] - b .L3371 -.L3382: + b .L3356 +.L3367: ldrh w0, [x21,3306] mov w24, w5 lsr w0, w0, 2 strh w0, [x21,2872] - b .L3371 -.L3376: + b .L3356 +.L3361: mov w1, w24 - cbz w0, .L3489 -.L3444: + cbz w0, .L3474 +.L3429: add x23, x23, :lo12:.LANCHOR4 mov w0, 1 strb w0, [x23,1130] - b .L3371 -.L3338: + b .L3356 +.L3323: add x20, x19, :lo12:.LANCHOR0 mov w0, 65535 ldrh w1, [x20,2896] cmp w1, w0 - bne .L3396 + bne .L3381 bl gc_get_src_blk strh w0, [x20,2896] -.L3396: +.L3381: add x0, x19, :lo12:.LANCHOR0 mov w2, 65535 add x1, x0, 2896 ldrh w3, [x0,2896] cmp w3, w2 - beq .L3517 + beq .L3502 ldrh w5, [x1,56] uxtw x4, w3 ldr x2, [x0,584] add x2, x2, x4, lsl 2 - cbz w5, .L3399 + cbz w5, .L3384 mov x0, 0 -.L3398: +.L3383: cmp w5, w0, uxth - bls .L3399 + bls .L3384 add x0, x0, 1 add x6, x1, x0, lsl 1 ldrh w6, [x6,56] cmp w6, w3 - bne .L3398 -.L3404: + bne .L3383 +.L3389: add x19, x19, :lo12:.LANCHOR0 mov w0, -1 strh w0, [x19,2896] - b .L3516 -.L3399: + b .L3501 +.L3384: ldrb w0, [x2,2] tst w0, 192 - beq .L3457 + beq .L3442 and w0, w0, 224 cmp w0, 224 - bne .L3401 -.L3457: + bne .L3386 +.L3442: add x0, x19, :lo12:.LANCHOR0 ldr x0, [x0,600] ldrh w0, [x0,x4,lsl 1] - cbz w0, .L3404 + cbz w0, .L3389 adrp x1, .LANCHOR3 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR3 - mov w2, 2217 + mov w2, 2211 add x1, x1, 800 add x0, x0, :lo12:.LC0 bl printk bl dump_stack - b .L3404 -.L3401: + b .L3389 +.L3386: add x23, x23, :lo12:.LANCHOR4 mov w0, 2 - b .L3519 -.L3339: + b .L3504 +.L3324: bl gc_scan_src_blk cmn w0, #1 - bne .L3405 + bne .L3390 add x23, x23, :lo12:.LANCHOR4 mov w0, 3 -.L3519: +.L3504: strb w0, [x23,1130] - b .L3516 -.L3405: + b .L3501 +.L3390: add x1, x19, :lo12:.LANCHOR0 mov w3, 65535 ldrh w0, [x1,2896] cmp w0, w3 - beq .L3353 + beq .L3338 ldrh w3, [x1,2920] add x23, x23, :lo12:.LANCHOR4 - cbz w3, .L3406 + cbz w3, .L3391 mov w0, 4 strh wzr, [x1,2922] strb w0, [x23,1130] - b .L3516 -.L3406: + b .L3501 +.L3391: ubfiz x0, x0, 1, 16 ldr x1, [x1,600] mov w2, 1 strb w2, [x23,1130] ldrh w0, [x1,x0] - cbz w0, .L3407 + cbz w0, .L3392 adrp x1, .LANCHOR3 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR3 - mov w2, 2245 + mov w2, 2239 add x1, x1, 800 add x0, x0, :lo12:.LC0 bl printk bl dump_stack -.L3407: +.L3392: add x20, x19, :lo12:.LANCHOR0 add x21, x20, 2896 ldrh w0, [x20,2896] @@ -21568,70 +21599,70 @@ zftl_do_gc: add w0, w0, 1 uxth w0, w0 cmp w0, 8 - bhi .L3408 + bhi .L3393 strh w0, [x21,30] - b .L3404 -.L3408: + b .L3389 +.L3393: strh wzr, [x21,30] bl ftl_flush bl pm_flush bl ftl_ext_info_flush mov w0, 0 bl ftl_info_flush - b .L3404 -.L3340: + b .L3389 +.L3325: add x21, x19, :lo12:.LANCHOR0 -.L3490: +.L3475: bl gc_scan_src_blk_one_page ldrh w2, [x21,2898] add x0, x21, 2896 ldrh w1, [x21,3300] cmp w2, w1 - bcs .L3410 + bcs .L3395 cmp w20, 7 - bls .L3490 - b .L3516 -.L3410: + bls .L3475 + b .L3501 +.L3395: ldrh w3, [x0,24] adrp x2, .LANCHOR2 - cbz w3, .L3411 + cbz w3, .L3396 add x23, x23, :lo12:.LANCHOR4 mov w1, 4 strh wzr, [x0,26] strb w1, [x23,1130] ldr w1, [x2,#:lo12:.LANCHOR2] - tbz x1, 8, .L3412 + tbz x1, 8, .L3397 ldrh w1, [x0] - adrp x0, .LC277 + adrp x0, .LC280 ldr x4, [x21,600] - add x0, x0, :lo12:.LC277 + add x0, x0, :lo12:.LC280 ubfiz x2, x1, 1, 16 ldrh w2, [x4,x2] bl printk -.L3412: +.L3397: add x0, x19, :lo12:.LANCHOR0 ldrh w2, [x0,2896] ldr x1, [x0,600] ldrh w0, [x0,2920] ldrh w1, [x1,x2,lsl 1] cmp w1, w0 - beq .L3413 + beq .L3398 adrp x1, .LANCHOR3 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR3 - mov w2, 2279 + mov w2, 2273 add x1, x1, 800 add x0, x0, :lo12:.LC0 bl printk bl dump_stack -.L3413: +.L3398: add x19, x19, :lo12:.LANCHOR0 ldrh w1, [x19,2896] ldr x0, [x19,600] ldrh w2, [x19,2920] strh w2, [x0,x1,lsl 1] - b .L3516 -.L3411: + b .L3501 +.L3396: add x23, x23, :lo12:.LANCHOR4 ldrh w1, [x0] mov w0, 1 @@ -21639,29 +21670,29 @@ zftl_do_gc: add x20, x20, x1, uxth 2 strb w0, [x23,1130] ldr w0, [x2,#:lo12:.LANCHOR2] - tbz x0, 8, .L3414 + tbz x0, 8, .L3399 ldrb w2, [x20,2] - adrp x0, .LC278 - add x0, x0, :lo12:.LC278 + adrp x0, .LC281 + add x0, x0, :lo12:.LC281 ubfx x2, x2, 5, 3 bl printk -.L3414: +.L3399: ldrb w0, [x20,2] tst w0, 192 - beq .L3458 + beq .L3443 and w0, w0, 224 cmp w0, 224 - bne .L3415 -.L3458: + bne .L3400 +.L3443: adrp x1, .LANCHOR3 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR3 - mov w2, 2289 + mov w2, 2283 add x1, x1, 800 add x0, x0, :lo12:.LC0 bl printk bl dump_stack -.L3415: +.L3400: add x19, x19, :lo12:.LANCHOR0 add x20, x19, 2896 ldrh w0, [x19,2896] @@ -21672,59 +21703,59 @@ zftl_do_gc: add w0, w0, 1 uxth w0, w0 cmp w0, 8 - bhi .L3417 + bhi .L3402 strh w0, [x20,30] - b .L3516 -.L3417: + b .L3501 +.L3402: strh wzr, [x20,30] - b .L3520 -.L3341: - cbnz w26, .L3418 + b .L3505 +.L3326: + cbnz w26, .L3403 add x0, x19, :lo12:.LANCHOR0 ldrh w0, [x0,2872] cmp w0, w20 - bcc .L3516 -.L3418: + bcc .L3501 +.L3403: ldrh w1, [x24,80] mov w0, 65535 cmp w1, w0 - bne .L3419 + bne .L3404 add x22, x19, :lo12:.LANCHOR0 ldrb w21, [x22,3273] cmp w21, 1 - bne .L3419 + bne .L3404 bl ftl_flush ldrh w0, [x22,3214] - cbz w0, .L3420 + cbz w0, .L3405 mov w0, w21 -.L3420: +.L3405: mov w1, 5 bl zftl_gc_get_free_sblk uxth w20, w0 mov w0, 65535 cmp w20, w0 - beq .L3422 + beq .L3407 add x0, x19, :lo12:.LANCHOR0 ldr x21, [x0,584] add x21, x21, x20, uxth 2 ldrb w0, [x21,2] tst w0, 224 - beq .L3423 + beq .L3408 adrp x1, .LANCHOR3 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR3 - mov w2, 2318 + mov w2, 2312 add x1, x1, 800 add x0, x0, :lo12:.LC0 bl printk bl dump_stack -.L3423: +.L3408: ldrb w0, [x21,2] mov w1, 5 bfi w0, w1, 5, 3 orr w0, w0, 16 strb w0, [x21,2] -.L3445: +.L3430: mov w0, w20 mov w1, 1 add x19, x19, :lo12:.LANCHOR0 @@ -21781,8 +21812,8 @@ zftl_do_gc: strh wzr, [x19,3212] strh wzr, [x19,3216] bl ftl_info_flush - b .L3516 -.L3419: + b .L3501 +.L3404: cmp w26, 1 mov w21, 4 csinc w21, w21, wzr, eq @@ -21790,23 +21821,23 @@ zftl_do_gc: add w0, w21, 4 add x22, x19, :lo12:.LANCHOR0 csel w21, w0, w21, ls -.L3426: +.L3411: sub w21, w21, #1 uxtb w21, w21 cmp w21, 255 - beq .L3516 + beq .L3501 bl gc_do_copy_back ldrb w0, [x22,3273] - cbnz w0, .L3427 + cbnz w0, .L3412 ldrb w0, [x22,2834] cmp w0, 3 - bhi .L3428 + bhi .L3413 bl ftl_write_commit -.L3428: +.L3413: ldrh w1, [x22,2922] ldrh w0, [x22,2920] cmp w1, w0 - bcc .L3426 + bcc .L3411 add x23, x23, :lo12:.LANCHOR4 mov w0, 1 strb w0, [x23,1130] @@ -21815,43 +21846,43 @@ zftl_do_gc: ldrh w1, [x22,2896] ldr x0, [x22,600] ldrh w0, [x0,x1,lsl 1] - cbz w0, .L3430 + cbz w0, .L3415 adrp x1, .LANCHOR3 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR3 - mov w2, 2393 + mov w2, 2387 add x1, x1, 800 add x0, x0, :lo12:.LC0 bl printk bl dump_stack -.L3430: +.L3415: add x1, x19, :lo12:.LANCHOR0 ldrh w0, [x1,2896] ldr x3, [x1,600] ubfiz x2, x0, 1, 16 ldrh w4, [x3,x2] - cbnz w4, .L3431 + cbnz w4, .L3416 strh w4, [x3,x2] ldrh w0, [x1,2896] bl ftl_free_sblk - b .L3404 -.L3431: + b .L3389 +.L3416: mov w1, 0 mov w2, 1 bl gc_add_sblk - b .L3404 -.L3427: + b .L3389 +.L3412: add x20, x22, 2896 ldrh w0, [x20,320] - cbz w0, .L3432 + cbz w0, .L3417 strh wzr, [x20,320] bl sblk_wait_write_queue_completed bl gc_write_completed ldr w0, [x20,324] cmn w0, #1 - beq .L3433 + beq .L3418 bl ftl_mask_bad_block -.L3433: +.L3418: add x20, x19, :lo12:.LANCHOR0 ldr x0, [x20,608] str wzr, [x20,3220] @@ -21865,9 +21896,9 @@ zftl_do_gc: strh w0, [x2,126] strh w0, [x1,130] ldr x0, [x20,2904] - cbz x0, .L3434 + cbz x0, .L3419 bl buf_free -.L3434: +.L3419: add x19, x19, :lo12:.LANCHOR0 add x23, x23, :lo12:.LANCHOR4 str xzr, [x19,2904] @@ -21875,21 +21906,21 @@ zftl_do_gc: adrp x1, .LANCHOR3 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR3 - mov w2, 2431 + mov w2, 2425 add x1, x1, 800 add x0, x0, :lo12:.LC0 strb wzr, [x23,1130] bl printk bl dump_stack - b .L3516 -.L3432: + b .L3501 +.L3417: ldrh w0, [x24,86] cmp w0, 1 - bls .L3435 + bls .L3420 ldrh w1, [x20,26] ldrh w0, [x20,24] cmp w1, w0 - bcc .L3426 + bcc .L3411 add x23, x23, :lo12:.LANCHOR4 mov w0, 1 strb w0, [x23,1130] @@ -21901,15 +21932,15 @@ zftl_do_gc: strh w1, [x0,58] mov w0, -1 strh w0, [x20] - b .L3516 -.L3435: + b .L3501 +.L3420: add x23, x23, :lo12:.LANCHOR4 mov w0, 5 ldrh w1, [x20,26] strb w0, [x23,1130] ldrh w0, [x20,24] cmp w1, w0 - bcc .L3436 + bcc .L3421 ldrh w0, [x20,56] add w1, w0, 1 add x0, x20, x0, sxtw 1 @@ -21918,7 +21949,7 @@ zftl_do_gc: strh w1, [x0,58] mov w0, -1 strh w0, [x20] -.L3436: +.L3421: add x20, x19, :lo12:.LANCHOR0 bl ftl_flush bl sblk_wait_write_queue_completed @@ -21934,23 +21965,23 @@ zftl_do_gc: strh w1, [x20,2914] cmp w2, 2 strh w2, [x20,2916] - bne .L3438 + bne .L3423 lsl w1, w1, 1 strh w1, [x20,2914] ldrb w1, [x20,3348] - cbnz w1, .L3438 + cbnz w1, .L3423 mov w1, 1 strh w1, [x20,2916] -.L3438: +.L3423: add x19, x19, :lo12:.LANCHOR0 strh wzr, [x19,2918] - b .L3516 -.L3447: + b .L3501 +.L3432: mov w21, 0 add x24, x19, :lo12:.LANCHOR0 -.L3342: +.L3327: bl gc_check_data_one_wl - cbz w0, .L3441 + cbz w0, .L3426 add x19, x19, :lo12:.LANCHOR0 add x23, x23, :lo12:.LANCHOR4 ldr x0, [x19,608] @@ -21967,32 +21998,32 @@ zftl_do_gc: bl buf_free str xzr, [x19,2904] strb wzr, [x23,1130] -.L3520: +.L3505: bl flt_sys_flush - b .L3516 -.L3441: + b .L3501 +.L3426: ldrh w1, [x24,2912] ldrh w0, [x24,2914] cmp w1, w0 - bcc .L3442 + bcc .L3427 add x23, x23, :lo12:.LANCHOR4 mov w0, 6 strb w0, [x23,1130] ldr x0, [x24,2904] bl buf_free str xzr, [x24,2904] - b .L3516 -.L3442: + b .L3501 +.L3427: cmp w20, 15 - bls .L3342 + bls .L3327 cmp w26, 1 - bne .L3516 + bne .L3501 add w21, w21, 1 uxtb w21, w21 cmp w21, 4 - bls .L3342 - b .L3516 -.L3343: + bls .L3327 + b .L3501 +.L3328: bl gc_update_l2p_map_new mov w20, -1 bl gc_free_src_blk @@ -22005,26 +22036,26 @@ zftl_do_gc: strh w20, [x0,126] mov w0, 0 bl ftl_info_flush -.L3517: +.L3502: add x23, x23, :lo12:.LANCHOR4 strb wzr, [x23,1130] -.L3516: +.L3501: mov w1, 16 - b .L3489 -.L3371: + b .L3474 +.L3356: mov w1, w24 - b .L3489 -.L3422: + b .L3474 +.L3407: adrp x1, .LANCHOR3 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR3 - mov w2, 2324 + mov w2, 2318 add x1, x1, 800 add x0, x0, :lo12:.LC0 bl printk bl dump_stack - b .L3445 -.L3489: + b .L3430 +.L3474: sub sp, x29, #16 mov w0, w1 ldp x19, x20, [sp,32] @@ -22053,30 +22084,30 @@ zftl_write: stp x21, x22, [sp,32] mov w28, w1 mov x25, x3 - tbz x0, 12, .L3522 - adrp x0, .LC279 + tbz x0, 12, .L3507 + adrp x0, .LC282 mov w1, w19 - add x0, x0, :lo12:.LC279 + add x0, x0, :lo12:.LC282 mov w2, w28 mov w3, w23 bl printk -.L3522: - cbnz w19, .L3523 +.L3507: + cbnz w19, .L3508 adrp x0, .LANCHOR0+520 mov w19, 24576 ldr w2, [x0,#:lo12:.LANCHOR0+520] - b .L3524 -.L3523: + b .L3509 +.L3508: cmp w19, 3 mov w0, -1 - bhi .L3525 + bhi .L3510 lsl w19, w19, 13 mov w2, 8192 -.L3524: +.L3509: add w1, w28, w23 mov w0, -1 cmp w1, w2 - bhi .L3525 + bhi .L3510 add w28, w19, w28 adrp x19, .LANCHOR0 add x0, x19, :lo12:.LANCHOR0 @@ -22089,15 +22120,15 @@ zftl_write: udiv w22, w22, w0 sub w20, w22, w24 add w20, w20, 1 -.L3526: - cbz w20, .L3545 +.L3511: + cbz w20, .L3530 mov w0, 0 bl buf_alloc mov x27, x0 - cbnz x0, .L3527 + cbnz x0, .L3512 bl ftl_write_commit - b .L3526 -.L3527: + b .L3511 +.L3512: strb wzr, [x0,57] add x0, x19, :lo12:.LANCHOR0 cmp w21, w24 @@ -22105,12 +22136,12 @@ zftl_write: cset w0, eq strb w4, [x27,56] cmp w21, w22 - beq .L3529 - cbz w0, .L3530 - b .L3539 -.L3529: - cbz w0, .L3531 -.L3539: + beq .L3514 + cbz w0, .L3515 + b .L3524 +.L3514: + cbz w0, .L3516 +.L3524: udiv w0, w28, w4 msub w0, w0, w4, w28 uxtb w0, w0 @@ -22119,12 +22150,12 @@ zftl_write: uxtb w4, w4 cmp w4, w23 csel w4, w23, w4, hi - b .L3543 -.L3531: + b .L3528 +.L3516: msub w4, w4, w21, w26 -.L3543: +.L3528: strb w4, [x27,56] -.L3530: +.L3515: ldrb w1, [x27,57] sub w20, w20, #1 ldr x0, [x27,8] @@ -22145,11 +22176,11 @@ zftl_write: bl ftl_write_buf ldrb w0, [x27,56] add x25, x25, x0, lsl 9 - b .L3526 -.L3545: + b .L3511 +.L3530: bl ftl_write_commit mov w0, w20 -.L3544: +.L3529: mov w1, 1 bl zftl_do_gc add x1, x19, :lo12:.LANCHOR0 @@ -22157,15 +22188,15 @@ zftl_write: ldrh w0, [x1,2848] add w0, w2, w0 cmp w0, 7 - bgt .L3546 + bgt .L3531 mov w0, 0 - b .L3544 -.L3546: + b .L3529 +.L3531: bl timer_get_time adrp x1, .LANCHOR7-76 str w0, [x1,#:lo12:.LANCHOR7-76] mov w0, 0 -.L3525: +.L3510: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -22223,7 +22254,7 @@ zftl_discard: stp x27, x28, [sp,80] ldr w1, [x1,520] cmp w2, w1 - bhi .L3550 + bhi .L3535 adrp x23, .LANCHOR7 add w24, w0, 24576 add x0, x23, :lo12:.LANCHOR7 @@ -22232,14 +22263,14 @@ zftl_discard: add w1, w19, w1 str w1, [x0,-72] ldr w0, [x25,#:lo12:.LANCHOR2] - tbz x0, 12, .L3551 - adrp x0, .LC280 + tbz x0, 12, .L3536 + adrp x0, .LC283 mov w2, w24 - add x0, x0, :lo12:.LC280 + add x0, x0, :lo12:.LC283 mov w3, w19 mov w4, 0 bl printk -.L3551: +.L3536: add x20, x21, :lo12:.LANCHOR0 ldr x0, [x20,2864] ldr w26, [x0,8] @@ -22250,7 +22281,7 @@ zftl_discard: ldrb w22, [x20,2832] udiv w20, w24, w22 msub w27, w20, w22, w24 - cbz w27, .L3552 + cbz w27, .L3537 sub w22, w22, w27 mov w0, w20 cmp w22, w19 @@ -22258,20 +22289,20 @@ zftl_discard: bl lpa_hash_get_ppa str w0, [x29,120] cmn w0, #1 - bne .L3553 + bne .L3538 mov w0, w20 add x1, x29, 120 mov w2, 0 bl pm_log2phys -.L3553: +.L3538: ldr w0, [x29,120] and w28, w22, 65535 cmn w0, #1 - beq .L3555 + beq .L3540 mov w0, 0 bl buf_alloc mov x3, x0 - cbz x0, .L3555 + cbz x0, .L3540 strb w27, [x0,57] ubfiz x27, x27, 9, 25 str w20, [x0,36] @@ -22292,31 +22323,31 @@ zftl_discard: ldr w0, [x1,76] add w0, w0, 1 str w0, [x1,76] -.L3555: +.L3540: add w20, w20, 1 sub w19, w19, w28 -.L3552: - cbz w19, .L3557 +.L3537: + cbz w19, .L3542 bl ftl_flush -.L3557: +.L3542: mov w0, -1 mov w27, 1 str w0, [x29,124] mov w28, 21 -.L3558: +.L3543: add x22, x21, :lo12:.LANCHOR0 ldrb w0, [x22,2832] cmp w19, w0 - bcc .L3597 + bcc .L3582 mov w0, w20 bl lpa_hash_get_ppa str w0, [x29,120] cmn w0, #1 - beq .L3559 + beq .L3544 mov w0, 0 bl buf_alloc mov x3, x0 - cbz x0, .L3561 + cbz x0, .L3546 ldrb w2, [x22,2832] mov w1, 0 str w20, [x0,36] @@ -22331,15 +22362,15 @@ zftl_discard: mov x0, x3 bl ftl_write_buf bl ftl_write_commit - b .L3596 -.L3559: + b .L3581 +.L3544: mov w0, w20 add x1, x29, 120 mov w2, 0 bl pm_log2phys ldr w0, [x29,120] cmn w0, #1 - beq .L3561 + beq .L3546 add x1, x29, 124 mov w2, 1 mov w0, w20 @@ -22354,36 +22385,36 @@ zftl_discard: and w0, w2, w0 udiv w0, w0, w1 bl ftl_vpn_decrement -.L3596: +.L3581: ldr x1, [x22,2864] ldr w0, [x1,76] add w0, w0, 1 str w0, [x1,76] -.L3561: +.L3546: add x0, x21, :lo12:.LANCHOR0 add w20, w20, 1 ldrb w0, [x0,2832] sub w19, w19, w0 - b .L3558 -.L3597: - cbz w19, .L3565 + b .L3543 +.L3582: + cbz w19, .L3550 mov w0, w20 bl lpa_hash_get_ppa str w0, [x29,120] cmn w0, #1 - bne .L3566 + bne .L3551 mov w0, w20 add x1, x29, 120 mov w2, 0 bl pm_log2phys -.L3566: +.L3551: ldr w0, [x29,120] cmn w0, #1 - beq .L3565 + beq .L3550 mov w0, 0 bl buf_alloc mov x22, x0 - cbz x0, .L3565 + cbz x0, .L3550 str w20, [x0,36] strb wzr, [x0,57] strb w19, [x0,56] @@ -22391,7 +22422,7 @@ zftl_discard: add x0, x21, :lo12:.LANCHOR0 ldrb w0, [x0,2832] cmp w19, w0 - bcc .L3568 + bcc .L3553 adrp x1, .LANCHOR3 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR3 @@ -22400,7 +22431,7 @@ zftl_discard: add x0, x0, :lo12:.LC0 bl printk bl dump_stack -.L3568: +.L3553: ldr x0, [x22,8] mov w1, 0 lsl w2, w19, 9 @@ -22413,20 +22444,20 @@ zftl_discard: ldr w0, [x1,76] add w0, w0, 1 str w0, [x1,76] -.L3565: +.L3550: add x0, x23, :lo12:.LANCHOR7 mov w4, 0 ldr w1, [x0,-72] cmp w1, 8192 - bls .L3550 + bls .L3535 ldr w0, [x25,#:lo12:.LANCHOR2] - tbz x0, 12, .L3569 - adrp x0, .LC280 + tbz x0, 12, .L3554 + adrp x0, .LC283 mov w2, w24 - add x0, x0, :lo12:.LC280 + add x0, x0, :lo12:.LC283 mov w3, w19 bl printk -.L3569: +.L3554: add x23, x23, :lo12:.LANCHOR7 add x21, x21, :lo12:.LANCHOR0 str wzr, [x23,-72] @@ -22434,7 +22465,7 @@ zftl_discard: mov w0, 1 mov w4, 0 str w0, [x21,2884] -.L3550: +.L3535: mov w0, w4 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -22464,29 +22495,29 @@ id_block_prog_msb_ff_data: ldrb w2, [x0,19] add x0, x20, :lo12:.LANCHOR4 ldrb w0, [x0,1264] - cbnz w0, .L3598 + cbnz w0, .L3583 sub w0, w2, #5 uxtb w0, w0 cmp w0, 2 - bls .L3600 + bls .L3585 cmp w2, 68 - beq .L3600 + beq .L3585 sub w2, w2, #19 and w2, w2, -17 uxtb w2, w2 - cbnz w2, .L3598 -.L3600: - adrp x24, .LC281 + cbnz w2, .L3583 +.L3585: + adrp x24, .LC284 mov w25, w1 - add x24, x24, :lo12:.LC281 + add x24, x24, :lo12:.LC284 add x20, x20, :lo12:.LANCHOR4 mov w27, 65535 -.L3602: +.L3587: add x28, x21, :lo12:.LANCHOR0 ldr x0, [x28,624] ldrh w0, [x0,10] cmp w0, w19 - bls .L3598 + bls .L3583 add x22, x20, 68 add w26, w19, w25 mov x0, x24 @@ -22496,7 +22527,7 @@ id_block_prog_msb_ff_data: bl printk ldrh w0, [x22,w19,sxtw 1] cmp w0, w27 - bne .L3598 + bne .L3583 ldr x0, [x20,1192] mov w1, 255 mov w2, 16384 @@ -22510,8 +22541,8 @@ id_block_prog_msb_ff_data: ldrb w4, [x4,9] mov x3, x2 bl flash_prog_page - b .L3602 -.L3598: + b .L3587 +.L3583: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -22534,7 +22565,7 @@ write_idblock: stp x23, x24, [sp,48] stp x25, x26, [sp,64] stp x27, x28, [sp,80] - mov x26, x1 + mov x25, x1 str x2, [x29,128] ldr x0, [x0,624] ldrb w21, [x0,9] @@ -22544,111 +22575,120 @@ write_idblock: bl ftl_malloc mov x23, x0 mov w0, -1 - cbz x23, .L3649 + cbz x23, .L3635 add w19, w19, 511 lsr w19, w19, 9 cmp w19, 8 - bls .L3635 + bls .L3620 cmp w19, 500 - bhi .L3649 - b .L3606 -.L3635: + bhi .L3635 + b .L3591 +.L3620: mov w19, 8 -.L3606: +.L3591: + ldr w2, [x25] + mov w1, 35899 + movk w1, 0xfcdc, lsl 16 + mov w0, -1 + cmp w2, w1 + bne .L3635 mul w20, w20, w21 - add x3, x26, 253952 + add x3, x25, 253952 mov w2, 63999 add x3, x3, 2044 mov w4, 4097 uxth w0, w20 - str w0, [x29,152] - udiv w0, w19, w0 + str w0, [x29,156] + sub w0, w0, #1 + ldr w1, [x29,156] + add w0, w0, w19 + udiv w0, w0, w1 str w0, [x29,120] mov w0, 0 -.L3610: +.L3595: ldr w1, [x3] - cbnz w1, .L3607 - ldr w1, [x26,w0,uxtw 2] + cbnz w1, .L3592 + ldr w1, [x25,w0,uxtw 2] add w0, w0, 1 cmp w0, w4 sub w2, w2, #1 csel w0, w0, wzr, cc str w1, [x3],-4 cmp w2, 4096 - bne .L3610 - b .L3609 -.L3607: - adrp x0, .LC282 - add x0, x0, :lo12:.LC282 + bne .L3595 + b .L3594 +.L3592: + adrp x0, .LC285 + add x0, x0, :lo12:.LC285 bl printk -.L3609: +.L3594: ldr x1, [x29,128] - adrp x0, .LC283 - add x0, x0, :lo12:.LC283 + adrp x0, .LC286 + add x0, x0, :lo12:.LC286 mov w2, 4 mov w3, 5 mov x21, 0 mov w28, w21 bl rknand_print_hex - adrp x0, .LC284 + adrp x0, .LC287 mov w1, w19 - add x0, x0, :lo12:.LC284 + add x0, x0, :lo12:.LC287 mov w2, w19 bl printk -.L3632: +.L3617: adrp x1, .LANCHOR7 add x1, x1, :lo12:.LANCHOR7 ldrb w1, [x1,-102] - cbnz w1, .L3611 + cbnz w1, .L3596 ldr x1, [x29,128] - ldr w2, [x29,152] + ldr w2, [x29,156] ldr w1, [x1,x21,lsl 2] mul w20, w1, w2 - cbz w21, .L3612 + cbz w21, .L3597 ldr w2, [x29,120] cmp w2, 1 - bls .L3612 + bls .L3597 sub w0, w21, #1 ldr x2, [x29,128] ldr w0, [x2,x0,lsl 2] add w0, w0, 1 cmp w1, w0 - bne .L3612 - b .L3613 -.L3611: + bne .L3597 + b .L3598 +.L3596: add x0, x22, :lo12:.LANCHOR0 ldr x0, [x0,728] add x0, x0, x21, uxtw ldrb w20, [x0,32] cmp w20, 255 - beq .L3613 - ldr w0, [x29,152] + beq .L3598 + ldr w0, [x29,156] mul w20, w20, w0 -.L3612: +.L3597: mov w2, 512 mov w1, 0 mov x0, x23 bl ftl_memset add x0, x22, :lo12:.LANCHOR0 ldr x1, [x0,624] - ldrb w25, [x1,9] + ldrb w26, [x1,9] ldrh w24, [x1,10] ldrb w1, [x0,720] str w1, [x29,116] - udiv w1, w20, w25 + udiv w1, w20, w26 strb wzr, [x0,720] - mul w24, w25, w24 + mul w24, w26, w24 mov w0, 0 uxth w24, w24 bl flash_erase_block cmp w19, w24 mov w2, 1 - bls .L3614 + bls .L3599 mov w0, 0 add w1, w20, w24 bl flash_erase_block mov w2, 2 -.L3614: +.L3599: add x27, x22, :lo12:.LANCHOR0 ldr x1, [x27,624] ldrh w0, [x1,10] @@ -22661,12 +22701,12 @@ write_idblock: msub w0, w0, w24, w20 str w0, [x29,124] sub w0, w20, w0 - str w0, [x29,156] + str w0, [x29,152] cmp w20, w0 - bne .L3639 + bne .L3625 ldrb w0, [x27,516] cmp w0, 9 - bne .L3639 + bne .L3625 adrp x0, .LANCHOR4 mov w1, 0 add x0, x0, :lo12:.LANCHOR4 @@ -22679,7 +22719,7 @@ write_idblock: mov w0, 18766 movk w0, 0x464e, lsl 16 mov w1, 12 - cmp w25, 8 + cmp w26, 8 str w0, [x3] str w1, [x3,4] str wzr, [x3,12] @@ -22704,18 +22744,18 @@ write_idblock: str w0, [x3,8] sub w0, w19, #4 str w0, [x29,144] - b .L3615 -.L3639: + b .L3600 +.L3625: str w19, [x29,144] mov x3, 0 -.L3615: - str x26, [x29,136] +.L3600: + str x25, [x29,136] mov w24, 0 add x27, x22, :lo12:.LANCHOR0 -.L3617: +.L3602: ldr w0, [x29,112] cmp w24, w0 - bcs .L3658 + bcs .L3644 ldr w0, [x29,124] adrp x2, .LANCHOR4 add x2, x2, :lo12:.LANCHOR4 @@ -22725,85 +22765,85 @@ write_idblock: add w1, w4, 1 ldrb w2, [x2,1264] ldrh w0, [x0,w1,sxtw 1] - cbz w2, .L3619 + cbz w2, .L3604 ldrb w6, [x27,1] lsl w0, w1, 1 cmp w6, wzr csel w0, w0, w1, ne -.L3619: +.L3604: ldrb w1, [x27,516] cmp w1, 9 - beq .L3657 + beq .L3643 sub w0, w0, #1 lsl w0, w0, 2 -.L3657: +.L3643: str w0, [x29,160] mov w0, 61424 str w0, [x29,164] add x0, x27, 4 ldrh w0, [x0,w4,sxtw 1] - cbnz w2, .L3623 + cbnz w2, .L3608 mov w4, w0 - b .L3624 -.L3623: + b .L3609 +.L3608: ldrb w1, [x27,1] lsl w0, w4, 1 cmp w1, wzr csel w4, w0, w4, ne -.L3624: - mul w0, w4, w25 - cbnz x3, .L3625 - ldr w1, [x29,156] +.L3609: + mul w0, w4, w26 + cbnz x3, .L3610 + ldr w1, [x29,152] add x2, x29, 160 str x4, [x29,104] add w0, w0, w1 ldr x1, [x29,136] - bl fw_flash_page_prog.constprop.28 + bl fw_flash_page_prog.constprop.30 adrp x0, .LANCHOR4 ldr x4, [x29,104] add x0, x0, :lo12:.LANCHOR4 ldrb w0, [x0,1264] - cbnz w0, .L3626 - ldr w1, [x29,156] + cbnz w0, .L3611 + ldr w1, [x29,152] add w2, w4, 1 - udiv w1, w1, w25 + udiv w1, w1, w26 bl id_block_prog_msb_ff_data -.L3626: +.L3611: ldr x0, [x29,136] add x0, x0, 2048 str x0, [x29,136] - b .L3627 -.L3625: - ldr w1, [x29,156] + b .L3612 +.L3610: + ldr w1, [x29,152] add x2, x29, 160 add w0, w0, w1 mov x1, x3 - bl fw_flash_page_prog.constprop.28 -.L3627: + bl fw_flash_page_prog.constprop.30 +.L3612: add w24, w24, 4 mov x3, 0 uxth w24, w24 - b .L3617 -.L3658: + b .L3602 +.L3644: add x0, x22, :lo12:.LANCHOR0 ldrb w1, [x29,116] mov x2, x23 strb w1, [x0,720] mov w0, w20 ldr w1, [x29,144] - bl id_block_read_data.constprop.27 + bl id_block_read_data.constprop.31 ldr w0, [x29,144] mov x1, 0 lsl w0, w0, 7 -.L3629: +.L3614: cmp w0, w1 - bls .L3659 + bls .L3645 ldr w3, [x23,x1,lsl 2] add x1, x1, 1 - add x2, x26, x1, lsl 2 + add x2, x25, x1, lsl 2 ldr w2, [x2,-4] cmp w3, w2 - beq .L3629 + beq .L3614 mov x0, x23 mov w1, 0 mov w2, 512 @@ -22811,21 +22851,21 @@ write_idblock: mov w1, w20 mov w0, 0 bl flash_erase_block - b .L3613 -.L3659: + b .L3598 +.L3645: add w28, w28, 1 cmp w28, 5 - bhi .L3633 -.L3613: + bhi .L3618 +.L3598: add x21, x21, 1 cmp x21, 4 - bne .L3632 -.L3633: + bne .L3617 +.L3618: mov x0, x23 bl ftl_free cmp w28, wzr csetm w0, eq -.L3649: +.L3635: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -22843,20 +22883,196 @@ CRC_32: mov x5, x0 add x3, x3, :lo12:.LANCHOR2 mov w0, w2 -.L3661: +.L3647: cmp w1, w2 - bls .L3663 + bls .L3649 ldrb w4, [x5,x2] - add x6, x3, 2360 + add x6, x3, 2488 add x2, x2, 1 eor w4, w4, w0, lsr 24 ldr w4, [x6,w4,uxtw 2] eor w0, w4, w0, lsl 8 - b .L3661 -.L3663: + b .L3647 +.L3649: ret .size CRC_32, .-CRC_32 .align 2 + .global write_loader_lba + .type write_loader_lba, %function +write_loader_lba: + stp x29, x30, [sp, -96]! + cmp w0, 64 + add x29, sp, 0 + stp x19, x20, [sp,16] + stp x21, x22, [sp,32] + str x23, [sp,48] + mov w19, w0 + mov w21, w1 + mov x23, x2 + adrp x20, .LANCHOR7 + bne .L3651 + ldr w1, [x2] + mov w0, 35899 + movk w0, 0xfcdc, lsl 16 + cmp w1, w0 + bne .L3651 + add x22, x20, :lo12:.LANCHOR7 + mov w0, 1 + strb w0, [x22,-68] + mov w0, 59392 + movk w0, 0x3, lsl 16 + bl ftl_malloc + str x0, [x22,-64] + mov w2, 59392 + mov w1, 0 + movk w2, 0x3, lsl 16 + bl ftl_memset + str w19, [x22,-56] +.L3651: + add x3, x20, :lo12:.LANCHOR7 + ldrb w0, [x3,-68] + cbz w0, .L3650 + sub w0, w19, #64 + ldr x22, [x3,-64] + cmp w0, 499 + bhi .L3653 + mov w3, 564 + ubfiz x0, x0, 9, 25 + sub w3, w3, w19 + add x0, x22, x0 + cmp w3, w21 + mov x1, x23 + csel w2, w3, w21, ls + lsl w2, w2, 9 + bl ftl_memcpy + b .L3654 +.L3653: + cmp w19, 563 + bhi .L3664 +.L3654: + add x0, x20, :lo12:.LANCHOR7 + ldr w1, [x0,-56] + cmp w1, w19 + beq .L3662 + strb wzr, [x0,-68] + cbz x22, .L3663 + mov x0, x22 + bl ftl_free +.L3663: + add x0, x20, :lo12:.LANCHOR7 + str xzr, [x0,-64] +.L3662: + add x20, x20, :lo12:.LANCHOR7 + add w19, w19, w21 + str w19, [x20,-56] + b .L3650 +.L3664: + ldr w2, [x3,-56] + mov w0, 500 + sub w2, w2, #64 + cmp w2, 500 + csel w2, w2, w0, ls + adrp x0, .LANCHOR0+624 + ldr x0, [x0,#:lo12:.LANCHOR0+624] + ldrb w0, [x0,9] + cmp w0, 4 + beq .L3665 + mov w0, 2 + str w0, [x29,64] + mov w0, 3 + str w0, [x29,68] + mov w0, 4 + str w0, [x29,72] + mov w0, 5 + str w0, [x29,76] + mov w0, 6 + str w0, [x29,80] + b .L3656 +.L3665: + mov x3, 0 +.L3655: + cmp w2, 256 + add x0, x29, 64 + bls .L3657 + lsl w1, w3, 1 + str w1, [x0,x3,lsl 2] + b .L3658 +.L3657: + str w3, [x0,x3,lsl 2] +.L3658: + add x3, x3, 1 + cmp x3, 5 + bne .L3655 +.L3656: + add x0, x20, :lo12:.LANCHOR7 + mov w4, 63999 + ldr x3, [x0,-48] + add x3, x3, 61440 + add x3, x3, 2559 +.L3661: + ldrb w0, [x3] + cbz w0, .L3659 + add w2, w4, 1 + lsl w0, w2, 2 + b .L3660 +.L3659: + sub w4, w4, #1 + sub x3, x3, #1 + cmp w4, 4096 + bne .L3661 + lsl w0, w2, 9 +.L3660: + mov x1, x22 + add x2, x29, 64 + add x22, x20, :lo12:.LANCHOR7 + bl write_idblock + ldr x0, [x22,-64] + strb wzr, [x22,-68] + bl ftl_free + str xzr, [x22,-64] + b .L3662 +.L3650: + ldp x19, x20, [sp,16] + ldp x21, x22, [sp,32] + ldr x23, [sp,48] + ldp x29, x30, [sp], 96 + ret + .size write_loader_lba, .-write_loader_lba + .align 2 + .global FtlWrite + .type FtlWrite, %function +FtlWrite: + stp x29, x30, [sp, -64]! + add x29, sp, 0 + str x21, [sp,32] + uxtb w21, w0 + sub w0, w1, #64 + stp x19, x20, [sp,16] + cmp w0, 1983 + mov w19, w1 + mov w20, w2 + bhi .L3675 + cbnz w21, .L3675 + mov w0, w1 + mov w1, w2 + mov x2, x3 + str x3, [x29,56] + bl write_loader_lba + ldr x3, [x29,56] +.L3675: + adrp x0, .LANCHOR4+1176 + mov w1, w19 + mov w2, w20 + ldr x0, [x0,#:lo12:.LANCHOR4+1176] + ldr x4, [x0,48] + mov w0, w21 + blr x4 + ldr x21, [sp,32] + ldp x19, x20, [sp,16] + ldp x29, x30, [sp], 64 + ret + .size FtlWrite, .-FtlWrite + .align 2 .global rknand_sys_storage_ioctl .type rknand_sys_storage_ioctl, %function rknand_sys_storage_ioctl: @@ -22870,319 +23086,319 @@ rknand_sys_storage_ioctl: stp x21, x22, [sp,32] mov w19, w1 mov x20, x2 - beq .L3666 + beq .L3684 mov w0, 29187 movk w0, 0x4004, lsl 16 cmp w1, w0 - bhi .L3667 - mov w0, 25726 - movk w0, 0x4004, lsl 16 - cmp w1, w0 - beq .L3668 - mov w0, 25726 - movk w0, 0x4004, lsl 16 - cmp w1, w0 - bhi .L3669 - mov w0, 25601 - movk w0, 0x4004, lsl 16 - cmp w1, w0 - beq .L3670 - mov w0, 25601 - movk w0, 0x4004, lsl 16 - cmp w1, w0 - bhi .L3671 - mov w0, 25364 - movk w0, 0x4004, lsl 16 - cmp w1, w0 - bne .L3728 - bl rknand_dev_flush - b .L3762 -.L3671: - mov w0, 25602 - movk w0, 0x4004, lsl 16 - cmp w1, w0 - beq .L3673 - mov w0, 25603 - movk w0, 0x4004, lsl 16 - cmp w1, w0 - beq .L3674 - b .L3728 -.L3669: - mov w0, 27688 - movk w0, 0x4004, lsl 16 - cmp w1, w0 - beq .L3675 - mov w0, 27688 - movk w0, 0x4004, lsl 16 - cmp w1, w0 - bhi .L3676 - mov w0, 25727 - movk w0, 0x4004, lsl 16 - cmp w1, w0 - beq .L3677 - b .L3728 -.L3676: - mov w0, 27698 - movk w0, 0x4004, lsl 16 - cmp w1, w0 - beq .L3675 - mov w0, 27708 - movk w0, 0x4004, lsl 16 - cmp w1, w0 - beq .L3675 - b .L3728 -.L3667: - mov w0, 29267 - movk w0, 0x4004, lsl 16 - cmp w1, w0 - beq .L3678 - mov w0, 29267 - movk w0, 0x4004, lsl 16 - cmp w1, w0 - bhi .L3679 - mov w0, 29189 - movk w0, 0x4004, lsl 16 - cmp w1, w0 - beq .L3680 - mov w0, 29189 - movk w0, 0x4004, lsl 16 - cmp w1, w0 - bcc .L3681 - mov w0, 29210 - movk w0, 0x4004, lsl 16 - cmp w1, w0 - beq .L3682 - mov w0, 29266 - movk w0, 0x4004, lsl 16 - cmp w1, w0 - beq .L3683 - b .L3728 -.L3679: - mov w0, 30225 - movk w0, 0x4004, lsl 16 - cmp w1, w0 - beq .L3684 - mov w0, 30225 - movk w0, 0x4004, lsl 16 - cmp w1, w0 bhi .L3685 - mov w0, 29268 + mov w0, 25726 movk w0, 0x4004, lsl 16 cmp w1, w0 beq .L3686 + mov w0, 25726 + movk w0, 0x4004, lsl 16 + cmp w1, w0 + bhi .L3687 + mov w0, 25601 + movk w0, 0x4004, lsl 16 + cmp w1, w0 + beq .L3688 + mov w0, 25601 + movk w0, 0x4004, lsl 16 + cmp w1, w0 + bhi .L3689 + mov w0, 25364 + movk w0, 0x4004, lsl 16 + cmp w1, w0 + bne .L3746 + bl rknand_dev_flush + b .L3780 +.L3689: + mov w0, 25602 + movk w0, 0x4004, lsl 16 + cmp w1, w0 + beq .L3691 + mov w0, 25603 + movk w0, 0x4004, lsl 16 + cmp w1, w0 + beq .L3692 + b .L3746 +.L3687: + mov w0, 27688 + movk w0, 0x4004, lsl 16 + cmp w1, w0 + beq .L3693 + mov w0, 27688 + movk w0, 0x4004, lsl 16 + cmp w1, w0 + bhi .L3694 + mov w0, 25727 + movk w0, 0x4004, lsl 16 + cmp w1, w0 + beq .L3695 + b .L3746 +.L3694: + mov w0, 27698 + movk w0, 0x4004, lsl 16 + cmp w1, w0 + beq .L3693 + mov w0, 27708 + movk w0, 0x4004, lsl 16 + cmp w1, w0 + beq .L3693 + b .L3746 +.L3685: + mov w0, 29267 + movk w0, 0x4004, lsl 16 + cmp w1, w0 + beq .L3696 + mov w0, 29267 + movk w0, 0x4004, lsl 16 + cmp w1, w0 + bhi .L3697 + mov w0, 29189 + movk w0, 0x4004, lsl 16 + cmp w1, w0 + beq .L3698 + mov w0, 29189 + movk w0, 0x4004, lsl 16 + cmp w1, w0 + bcc .L3699 + mov w0, 29210 + movk w0, 0x4004, lsl 16 + cmp w1, w0 + beq .L3700 + mov w0, 29266 + movk w0, 0x4004, lsl 16 + cmp w1, w0 + beq .L3701 + b .L3746 +.L3697: + mov w0, 30225 + movk w0, 0x4004, lsl 16 + cmp w1, w0 + beq .L3702 + mov w0, 30225 + movk w0, 0x4004, lsl 16 + cmp w1, w0 + bhi .L3703 + mov w0, 29268 + movk w0, 0x4004, lsl 16 + cmp w1, w0 + beq .L3704 mov w0, 30224 movk w0, 0x4004, lsl 16 cmp w1, w0 - beq .L3687 - b .L3728 -.L3685: + beq .L3705 + b .L3746 +.L3703: mov w0, 30226 movk w0, 0x4004, lsl 16 cmp w1, w0 - beq .L3687 + beq .L3705 mov w0, 30227 movk w0, 0x4004, lsl 16 cmp w1, w0 - beq .L3684 - b .L3728 -.L3681: - adrp x0, .LC285 - add x0, x0, :lo12:.LC285 + beq .L3702 + b .L3746 +.L3699: + adrp x0, .LC288 + add x0, x0, :lo12:.LC288 bl printk mov w0, 4096 bl ftl_malloc mov x19, x0 - cbnz x0, .L3688 -.L3693: + cbnz x0, .L3706 +.L3711: mov x0, -12 - b .L3665 -.L3688: + b .L3683 +.L3706: mov x1, x20 mov x2, 512 bl rk_copy_from_user - cbnz x0, .L3769 - adrp x0, .LC287 + cbnz x0, .L3787 + adrp x0, .LC290 ldr w1, [x19] ldr w2, [x19,4] - add x0, x0, :lo12:.LC287 + add x0, x0, :lo12:.LC290 bl printk ldr w0, [x19,4] str w0, [x29,52] cmp w0, 8 - bhi .L3766 + bhi .L3784 bl rknand_device_lock ldr w1, [x29,52] mov x2, x19 ldr w0, [x19] - bl id_block_read_data.constprop.27 + bl id_block_read_data.constprop.31 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, .L3772 - adrp x0, .LC288 - add x0, x0, :lo12:.LC288 -.L3764: + cbz x0, .L3790 + adrp x0, .LC291 + add x0, x0, :lo12:.LC291 +.L3782: bl printk -.L3766: +.L3784: mov x0, x19 -.L3767: +.L3785: bl ftl_free -.L3765: +.L3783: mov x0, -14 - b .L3665 -.L3680: - adrp x0, .LC289 - add x0, x0, :lo12:.LC289 + b .L3683 +.L3698: + adrp x0, .LC292 + add x0, x0, :lo12:.LC292 bl printk mov w0, 4096 bl ftl_malloc mov x19, x0 - cbz x0, .L3693 + cbz x0, .L3711 mov x1, x20 mov x2, 4096 bl rk_copy_from_user - cbnz x0, .L3769 - adrp x0, .LC290 + cbnz x0, .L3787 + adrp x0, .LC293 ldr w1, [x19] ldr w2, [x19,4] - add x0, x0, :lo12:.LC290 + add x0, x0, :lo12:.LC293 bl printk adrp x0, .LANCHOR7 add x22, x0, :lo12:.LANCHOR7 mov x20, x0 - ldr x21, [x22,-64] - cbnz x21, .L3695 + ldr x21, [x22,-48] + cbnz x21, .L3713 mov w0, 260096 bl ftl_malloc - str x0, [x22,-64] - cbz x0, .L3766 + str x0, [x22,-48] + cbz x0, .L3784 mov w1, w21 mov x2, 260096 bl memset -.L3695: +.L3713: ldr w2, [x19,4] cmp w2, 4088 - bhi .L3766 + bhi .L3784 ldr w0, [x19] mov w1, 55296 movk w1, 0x3, lsl 16 cmp w0, w1 - bhi .L3766 + bhi .L3784 add x20, x20, :lo12:.LANCHOR7 uxtw x2, w2 - ldr x1, [x20,-64] + ldr x1, [x20,-48] add x0, x1, x0, uxtw add x1, x19, 8 bl memcpy -.L3772: +.L3790: mov x0, x19 bl ftl_free - b .L3762 -.L3683: - adrp x0, .LC291 - add x0, x0, :lo12:.LC291 + b .L3780 +.L3701: + adrp x0, .LC294 + add x0, x0, :lo12:.LC294 bl printk mov w0, 4096 bl ftl_malloc mov x19, x0 - cbz x0, .L3693 + cbz x0, .L3711 mov x1, x20 mov x2, 28 bl rk_copy_from_user - cbz x0, .L3698 -.L3769: - adrp x0, .LC286 - add x0, x0, :lo12:.LC286 - b .L3764 -.L3698: + cbz x0, .L3716 +.L3787: + adrp x0, .LC289 + add x0, x0, :lo12:.LC289 + b .L3782 +.L3716: ldr w1, [x19] - adrp x0, .LC292 + adrp x0, .LC295 ldr w2, [x19,4] - add x0, x0, :lo12:.LC292 + add x0, x0, :lo12:.LC295 bl printk ldr w1, [x19] mov w0, 59392 movk w0, 0x3, lsl 16 cmp w1, w0 - bhi .L3766 + bhi .L3784 adrp x20, .LANCHOR7 add x20, x20, :lo12:.LANCHOR7 - ldr x0, [x20,-64] - cbz x0, .L3766 + ldr x0, [x20,-48] + cbz x0, .L3784 bl CRC_32 ldr w1, [x19,4] cmp w1, w0 - beq .L3701 + beq .L3719 mov x0, x19 bl ftl_free mov x0, -2 - b .L3665 -.L3701: + b .L3683 +.L3719: bl rknand_device_lock - ldr x1, [x20,-64] + ldr x1, [x20,-48] add x2, x19, 8 ldr w0, [x19] bl write_idblock bl rknand_device_unlock - ldr x0, [x20,-64] + ldr x0, [x20,-48] bl ftl_free - str xzr, [x20,-64] - b .L3772 -.L3682: - adrp x0, .LC293 - add x0, x0, :lo12:.LC293 - bl printk - mov w0, 4096 - bl ftl_malloc - mov x21, x0 - cbz x0, .L3693 - bl ReadFlashInfo - mov x0, x20 - mov x1, x21 - mov x2, 11 - b .L3774 -.L3666: - adrp x0, .LC294 - add x0, x0, :lo12:.LC294 - bl printk - bl nand_blk_add_whole_disk - mov w0, 4096 - bl ftl_malloc - mov x21, x0 - cbz x0, .L3693 - mov w1, 0 - mov w2, 64 - bl ftl_memset - mov x0, x20 - mov x1, x21 - mov x2, 64 - b .L3774 -.L3678: - adrp x0, .LC295 - add x0, x0, :lo12:.LC295 - bl printk - adrp x0, .LANCHOR7-56 - add x1, x29, 52 - mov x2, 4 - ldr x0, [x0,#:lo12:.LANCHOR7-56] - ldr w0, [x0,20] - str w0, [x29,52] - mov x0, x20 -.L3757: - bl rk_copy_to_user - cbnz x0, .L3765 - b .L3762 -.L3686: + str xzr, [x20,-48] + b .L3790 +.L3700: adrp x0, .LC296 add x0, x0, :lo12:.LC296 bl printk mov w0, 4096 bl ftl_malloc mov x21, x0 - cbz x0, .L3693 + cbz x0, .L3711 + bl ReadFlashInfo + mov x0, x20 + mov x1, x21 + mov x2, 11 + b .L3792 +.L3684: + adrp x0, .LC297 + add x0, x0, :lo12:.LC297 + bl printk + bl nand_blk_add_whole_disk + mov w0, 4096 + bl ftl_malloc + mov x21, x0 + cbz x0, .L3711 + mov w1, 0 + mov w2, 64 + bl ftl_memset + mov x0, x20 + mov x1, x21 + mov x2, 64 + b .L3792 +.L3696: + adrp x0, .LC298 + add x0, x0, :lo12:.LC298 + bl printk + adrp x0, .LANCHOR7-40 + add x1, x29, 52 + mov x2, 4 + ldr x0, [x0,#:lo12:.LANCHOR7-40] + ldr w0, [x0,20] + str w0, [x29,52] + mov x0, x20 +.L3775: + bl rk_copy_to_user + cbnz x0, .L3783 + b .L3780 +.L3704: + adrp x0, .LC299 + add x0, x0, :lo12:.LC299 + bl printk + mov w0, 4096 + bl ftl_malloc + mov x21, x0 + cbz x0, .L3711 bl rknand_device_lock mov w1, 264 mov w2, 2 @@ -23193,179 +23409,14 @@ rknand_sys_storage_ioctl: mov x0, x20 mov x1, x21 mov x2, 1024 -.L3774: +.L3792: bl rk_copy_to_user mov x19, x0 mov x0, x21 - cbnz x19, .L3767 + cbnz x19, .L3785 bl ftl_free - b .L3692 -.L3670: - adrp x0, .LC297 - add x0, x0, :lo12:.LC297 - bl printk - add x0, x29, 56 - mov x1, x20 - mov x2, 520 - bl rk_copy_from_user - mov x19, x0 - cbz x0, .L3706 -.L3711: - adrp x0, .LC286 - add x0, x0, :lo12:.LC286 - bl printk - b .L3765 -.L3706: - ldr w1, [x29,56] - mov w0, 21060 - movk w0, 0x4b4d, lsl 16 - cmp w1, w0 - beq .L3707 -.L3708: - mov x19, -1 - b .L3692 -.L3707: - ldr w0, [x29,60] - cmp w0, 512 - bhi .L3708 - adrp x21, .LANCHOR7 - add x0, x29, 56 - add x21, x21, :lo12:.LANCHOR7 - mov x2, 512 - ldr x1, [x21,-56] - bl memcpy - ldr w1, [x21,-48] - mov w0, 5161 - movk w0, 0xc059, lsl 16 - cmp w1, w0 - beq .L3709 - add x0, x29, 120 - mov w1, w19 - mov x2, 128 - str w19, [x29,64] - str w19, [x29,68] - bl memset -.L3709: - add x0, x29, 312 - mov w1, 0 - mov x2, 256 - str wzr, [x29,72] - bl memset - b .L3771 -.L3673: - adrp x0, .LC298 - add x0, x0, :lo12:.LC298 - bl printk - add x0, x29, 56 - mov x1, x20 - mov x2, 520 - bl rk_copy_from_user - cbnz x0, .L3711 - ldr w1, [x29,56] - mov w0, 21060 - movk w0, 0x4b4d, lsl 16 - cmp w1, w0 - bne .L3708 - ldr w0, [x29,60] - cmp w0, 512 - bhi .L3708 - adrp x1, .LANCHOR7 - mov w2, 5161 - add x1, x1, :lo12:.LANCHOR7 - movk w2, 0xc059, lsl 16 - mov x0, -2 - ldr w3, [x1,-48] - cmp w3, w2 - bne .L3665 - ldr w2, [x29,68] - mov x0, -3 - sub w3, w2, #1 - cmp w3, 127 - bhi .L3665 - ldr x19, [x1,-56] - add x1, x29, 120 - add x0, x19, 64 - str w2, [x19,12] - ldr w2, [x29,68] - bl memcpy - mov w0, 1 - mov x1, x19 - b .L3763 -.L3677: - adrp x0, .LC299 - add x0, x0, :lo12:.LC299 - bl printk - add x0, x29, 56 - mov x1, x20 - mov x2, 520 - bl rk_copy_from_user - cbnz x0, .L3711 - ldr w1, [x29,56] - mov w0, 17476 - movk w0, 0x4253, lsl 16 - cmp w1, w0 - bne .L3708 - ldr w0, [x29,60] - cmp w0, 512 - bhi .L3708 - adrp x19, .LANCHOR7 - add x0, x19, :lo12:.LANCHOR7 - ldr w1, [x0,-44] - cbnz w1, .L3712 -.L3715: - mov x0, 0 - b .L3665 -.L3712: - ldr x1, [x0,-40] - mov w2, 22867 - movk w2, 0x4453, lsl 16 - ldr w3, [x1] - cmp w3, w2 - beq .L3713 - mov w2, 22867 - movk w2, 0x4453, lsl 16 - str w2, [x1] - mov w2, 504 - ldr x1, [x0,-40] - str w2, [x1,4] - ldr x0, [x0,-40] - str wzr, [x0,8] - str wzr, [x0,12] -.L3713: - add x20, x19, :lo12:.LANCHOR7 - mov w0, 0 - ldr x1, [x20,-40] - str wzr, [x1,16] - bl StorageSysDataStore - ldr x0, [x20,-56] - mov w1, 21060 - movk w1, 0x4b4d, lsl 16 - ldr w2, [x0] - cmp w2, w1 - beq .L3714 - mov w1, 21060 - movk w1, 0x4b4d, lsl 16 - str w1, [x0] - mov w1, 504 - ldr x0, [x20,-56] - str w1, [x0,4] - ldr x0, [x20,-56] - str wzr, [x0,8] -.L3714: - add x19, x19, :lo12:.LANCHOR7 - mov w1, 0 - mov x2, 128 - ldr x20, [x19,-56] - add x0, x20, 64 - str wzr, [x20,12] - bl memset - mov w0, 1 - mov x1, x20 - bl StorageSysDataStore - str wzr, [x19,-44] - str wzr, [x19,-48] - b .L3762 -.L3668: + b .L3710 +.L3688: adrp x0, .LC300 add x0, x0, :lo12:.LC300 bl printk @@ -23373,71 +23424,51 @@ rknand_sys_storage_ioctl: mov x1, x20 mov x2, 520 bl rk_copy_from_user - cbnz x0, .L3711 - ldr w2, [x29,56] - mov w1, 20037 - movk w1, 0x4253, lsl 16 - cmp w2, w1 - bne .L3708 - ldr w1, [x29,60] - cmp w1, 512 - bhi .L3708 - adrp x19, .LANCHOR7 - add x1, x19, :lo12:.LANCHOR7 - ldr w2, [x1,-44] - cmp w2, 1 - beq .L3715 - ldr x2, [x1,-40] - mov w3, 22867 - movk w3, 0x4453, lsl 16 - ldr w4, [x2] - cmp w4, w3 - beq .L3716 - mov w3, 22867 - movk w3, 0x4453, lsl 16 - str w3, [x2] - mov w3, 504 - ldr x2, [x1,-40] - str w3, [x2,4] - ldr x1, [x1,-40] - str w0, [x1,8] - str w0, [x1,12] -.L3716: - add x20, x19, :lo12:.LANCHOR7 - mov w0, 1 - ldr x1, [x20,-40] - str w0, [x1,16] - mov w0, 0 - bl StorageSysDataStore - ldr x0, [x20,-56] - mov w1, 21060 - movk w1, 0x4b4d, lsl 16 - ldr w2, [x0] - cmp w2, w1 - beq .L3717 - mov w1, 21060 - movk w1, 0x4b4d, lsl 16 - str w1, [x0] - mov w1, 504 - ldr x0, [x20,-56] - str w1, [x0,4] - ldr x0, [x20,-56] - str wzr, [x0,8] -.L3717: - add x19, x19, :lo12:.LANCHOR7 - mov w1, 0 + mov x19, x0 + cbz x0, .L3724 +.L3729: + adrp x0, .LC289 + add x0, x0, :lo12:.LC289 + bl printk + b .L3783 +.L3724: + ldr w1, [x29,56] + mov w0, 21060 + movk w0, 0x4b4d, lsl 16 + cmp w1, w0 + beq .L3725 +.L3726: + mov x19, -1 + b .L3710 +.L3725: + ldr w0, [x29,60] + cmp w0, 512 + bhi .L3726 + adrp x21, .LANCHOR7 + add x0, x29, 56 + add x21, x21, :lo12:.LANCHOR7 + mov x2, 512 + ldr x1, [x21,-40] + bl memcpy + ldr w1, [x21,-32] + mov w0, 5161 + movk w0, 0xc059, lsl 16 + cmp w1, w0 + beq .L3727 + add x0, x29, 120 + mov w1, w19 mov x2, 128 - ldr x20, [x19,-56] - add x0, x20, 64 - str wzr, [x20,12] + str w19, [x29,64] + str w19, [x29,68] bl memset - mov w0, 1 - mov x1, x20 - bl StorageSysDataStore - mov w0, 1 - str w0, [x19,-44] - b .L3762 -.L3674: +.L3727: + add x0, x29, 312 + mov w1, 0 + mov x2, 256 + str wzr, [x29,72] + bl memset + b .L3789 +.L3691: adrp x0, .LC301 add x0, x0, :lo12:.LC301 bl printk @@ -23445,125 +23476,310 @@ rknand_sys_storage_ioctl: mov x1, x20 mov x2, 520 bl rk_copy_from_user - cbnz x0, .L3711 + cbnz x0, .L3729 ldr w1, [x29,56] - mov w0, 20051 - movk w0, 0x4144, lsl 16 + mov w0, 21060 + movk w0, 0x4b4d, lsl 16 cmp w1, w0 - bne .L3708 - ldr w2, [x29,60] - cmp w2, 512 - bhi .L3708 + bne .L3726 + ldr w0, [x29,60] + cmp w0, 512 + bhi .L3726 adrp x1, .LANCHOR7 - add x0, x29, 64 + mov w2, 5161 add x1, x1, :lo12:.LANCHOR7 - uxtw x2, w2 - sub x1, x1, #32 - b .L3770 -.L3675: - mov w0, 27698 - movk w0, 0x4004, lsl 16 - cmp w19, w0 - bne .L3718 + movk w2, 0xc059, lsl 16 + mov x0, -2 + ldr w3, [x1,-32] + cmp w3, w2 + bne .L3683 + ldr w2, [x29,68] + mov x0, -3 + sub w3, w2, #1 + cmp w3, 127 + bhi .L3683 + ldr x19, [x1,-40] + add x1, x29, 120 + add x0, x19, 64 + str w2, [x19,12] + ldr w2, [x29,68] + bl memcpy + mov w0, 1 + mov x1, x19 + b .L3781 +.L3695: adrp x0, .LC302 add x0, x0, :lo12:.LC302 - b .L3760 -.L3718: - mov w0, 27708 - movk w0, 0x4004, lsl 16 - cmp w19, w0 - bne .L3720 - adrp x0, .LC303 - add x0, x0, :lo12:.LC303 - b .L3760 -.L3720: - adrp x0, .LC304 - add x0, x0, :lo12:.LC304 -.L3760: bl printk add x0, x29, 56 mov x1, x20 mov x2, 520 bl rk_copy_from_user - cbnz x0, .L3711 + cbnz x0, .L3729 + ldr w1, [x29,56] + mov w0, 17476 + movk w0, 0x4253, lsl 16 + cmp w1, w0 + bne .L3726 + ldr w0, [x29,60] + cmp w0, 512 + bhi .L3726 + adrp x19, .LANCHOR7 + add x0, x19, :lo12:.LANCHOR7 + ldr w1, [x0,-28] + cbnz w1, .L3730 +.L3733: + mov x0, 0 + b .L3683 +.L3730: + ldr x1, [x0,-24] + mov w2, 22867 + movk w2, 0x4453, lsl 16 + ldr w3, [x1] + cmp w3, w2 + beq .L3731 + mov w2, 22867 + movk w2, 0x4453, lsl 16 + str w2, [x1] + mov w2, 504 + ldr x1, [x0,-24] + str w2, [x1,4] + ldr x0, [x0,-24] + str wzr, [x0,8] + str wzr, [x0,12] +.L3731: + add x20, x19, :lo12:.LANCHOR7 + mov w0, 0 + ldr x1, [x20,-24] + str wzr, [x1,16] + bl StorageSysDataStore + ldr x0, [x20,-40] + mov w1, 21060 + movk w1, 0x4b4d, lsl 16 + ldr w2, [x0] + cmp w2, w1 + beq .L3732 + mov w1, 21060 + movk w1, 0x4b4d, lsl 16 + str w1, [x0] + mov w1, 504 + ldr x0, [x20,-40] + str w1, [x0,4] + ldr x0, [x20,-40] + str wzr, [x0,8] +.L3732: + add x19, x19, :lo12:.LANCHOR7 + mov w1, 0 + mov x2, 128 + ldr x20, [x19,-40] + add x0, x20, 64 + str wzr, [x20,12] + bl memset + mov w0, 1 + mov x1, x20 + bl StorageSysDataStore + str wzr, [x19,-28] + str wzr, [x19,-32] + b .L3780 +.L3686: + 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 + cbnz x0, .L3729 + ldr w2, [x29,56] + mov w1, 20037 + movk w1, 0x4253, lsl 16 + cmp w2, w1 + bne .L3726 + ldr w1, [x29,60] + cmp w1, 512 + bhi .L3726 + adrp x19, .LANCHOR7 + add x1, x19, :lo12:.LANCHOR7 + ldr w2, [x1,-28] + cmp w2, 1 + beq .L3733 + ldr x2, [x1,-24] + mov w3, 22867 + movk w3, 0x4453, lsl 16 + ldr w4, [x2] + cmp w4, w3 + beq .L3734 + mov w3, 22867 + movk w3, 0x4453, lsl 16 + str w3, [x2] + mov w3, 504 + ldr x2, [x1,-24] + str w3, [x2,4] + ldr x1, [x1,-24] + str w0, [x1,8] + str w0, [x1,12] +.L3734: + add x20, x19, :lo12:.LANCHOR7 + mov w0, 1 + ldr x1, [x20,-24] + str w0, [x1,16] + mov w0, 0 + bl StorageSysDataStore + ldr x0, [x20,-40] + mov w1, 21060 + movk w1, 0x4b4d, lsl 16 + ldr w2, [x0] + cmp w2, w1 + beq .L3735 + mov w1, 21060 + movk w1, 0x4b4d, lsl 16 + str w1, [x0] + mov w1, 504 + ldr x0, [x20,-40] + str w1, [x0,4] + ldr x0, [x20,-40] + str wzr, [x0,8] +.L3735: + add x19, x19, :lo12:.LANCHOR7 + mov w1, 0 + mov x2, 128 + ldr x20, [x19,-40] + add x0, x20, 64 + str wzr, [x20,12] + bl memset + mov w0, 1 + mov x1, x20 + bl StorageSysDataStore + mov w0, 1 + str w0, [x19,-28] + b .L3780 +.L3692: + 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, .L3729 + ldr w1, [x29,56] + mov w0, 20051 + movk w0, 0x4144, lsl 16 + cmp w1, w0 + bne .L3726 + ldr w2, [x29,60] + cmp w2, 512 + bhi .L3726 + adrp x1, .LANCHOR7 + add x0, x29, 64 + add x1, x1, :lo12:.LANCHOR7 + uxtw x2, w2 + sub x1, x1, #16 + b .L3788 +.L3693: + mov w0, 27698 + movk w0, 0x4004, lsl 16 + cmp w19, w0 + bne .L3736 + adrp x0, .LC305 + add x0, x0, :lo12:.LC305 + b .L3778 +.L3736: + mov w0, 27708 + movk w0, 0x4004, lsl 16 + cmp w19, w0 + bne .L3738 + adrp x0, .LC306 + add x0, x0, :lo12:.LC306 + b .L3778 +.L3738: + adrp x0, .LC307 + add x0, x0, :lo12:.LC307 +.L3778: + bl printk + add x0, x29, 56 + mov x1, x20 + mov x2, 520 + bl rk_copy_from_user + cbnz x0, .L3729 ldr w1, [x29,56] mov w0, 17227 movk w0, 0x4c4f, lsl 16 cmp w1, w0 - bne .L3765 + bne .L3783 mov w0, 27708 movk w0, 0x4004, lsl 16 cmp w19, w0 adrp x0, .LANCHOR7 - bne .L3721 + bne .L3739 add x0, x0, :lo12:.LANCHOR7 add x1, x29, 56 mov x2, 16 - ldr x0, [x0,-56] + ldr x0, [x0,-40] ldr w0, [x0,20] str w0, [x29,60] strb w0, [x29,64] mov x0, x20 bl rk_copy_to_user - cbz x0, .L3665 - b .L3765 -.L3721: + cbz x0, .L3683 + b .L3783 +.L3739: add x20, x0, :lo12:.LANCHOR7 - ldr w1, [x20,480] + ldr w1, [x20,496] cmp w1, 10 - bhi .L3765 - ldr x1, [x20,-56] + bhi .L3783 + ldr x1, [x20,-40] ldr w2, [x29,60] ldr w3, [x1,24] cmp w3, w2 - beq .L3722 - cbz w3, .L3722 - adrp x0, .LC305 + beq .L3740 + cbz w3, .L3740 + adrp x0, .LC308 mov w1, w2 - add x0, x0, :lo12:.LC305 + add x0, x0, :lo12:.LC308 bl printk - ldr w0, [x20,480] + ldr w0, [x20,496] add w0, w0, 1 - str w0, [x20,480] - b .L3765 -.L3722: + str w0, [x20,496] + b .L3783 +.L3740: add x0, x0, :lo12:.LANCHOR7 - str wzr, [x0,480] + str wzr, [x0,496] mov w0, 27698 movk w0, 0x4004, lsl 16 cmp w19, w0 - bne .L3723 + bne .L3741 str wzr, [x1,20] str wzr, [x1,24] - b .L3724 -.L3723: + b .L3742 +.L3741: mov w0, 1 str w2, [x1,24] str w0, [x1,20] -.L3724: +.L3742: mov w0, 1 mov x19, -2 bl StorageSysDataStore cmn w0, #1 - bne .L3762 - b .L3692 -.L3687: - adrp x0, .LC306 - add x0, x0, :lo12:.LC306 + bne .L3780 + b .L3710 +.L3705: + adrp x0, .LC309 + add x0, x0, :lo12:.LC309 bl printk add x0, x29, 56 mov x1, x20 mov x2, 520 bl rk_copy_from_user - cbnz x0, .L3711 + cbnz x0, .L3729 ldr w1, [x29,56] mov w0, 17750 movk w0, 0x444e, lsl 16 cmp w1, w0 - bne .L3708 + bne .L3726 ldr w2, [x29,60] cmp w2, 504 - bhi .L3708 + bhi .L3726 mov w0, 30224 adrp x1, .LANCHOR7 movk w0, 0x4004, lsl 16 @@ -23571,72 +23787,72 @@ rknand_sys_storage_ioctl: cmp w19, w0 add x1, x1, :lo12:.LANCHOR7 add x0, x29, 64 - bne .L3725 - ldr x1, [x1,488] - b .L3761 -.L3725: - ldr x1, [x1,496] -.L3761: + bne .L3743 + ldr x1, [x1,504] + b .L3779 +.L3743: + ldr x1, [x1,512] +.L3779: add x1, x1, 8 -.L3770: +.L3788: bl memcpy -.L3771: +.L3789: mov x0, x20 add x1, x29, 56 mov x2, 520 - b .L3757 -.L3684: - adrp x0, .LC307 - add x0, x0, :lo12:.LC307 + b .L3775 +.L3702: + adrp x0, .LC310 + add x0, x0, :lo12:.LC310 bl printk add x0, x29, 56 mov x1, x20 mov x2, 520 bl rk_copy_from_user - cbnz x0, .L3711 + cbnz x0, .L3729 ldr w1, [x29,56] mov w0, 17750 movk w0, 0x444e, lsl 16 cmp w1, w0 - bne .L3708 + bne .L3726 ldr w2, [x29,60] cmp w2, 504 - bhi .L3708 + bhi .L3726 mov w0, 30225 add w2, w2, 8 movk w0, 0x4004, lsl 16 cmp w19, w0 adrp x19, .LANCHOR7 add x19, x19, :lo12:.LANCHOR7 - bne .L3727 - ldr x0, [x19,488] + bne .L3745 + ldr x0, [x19,504] add x1, x29, 56 bl memcpy mov w0, 2 - ldr x1, [x19,488] - b .L3763 -.L3727: - ldr x0, [x19,496] + ldr x1, [x19,504] + b .L3781 +.L3745: + ldr x0, [x19,512] add x1, x29, 56 bl memcpy - ldr x1, [x19,496] + ldr x1, [x19,512] mov w0, 3 -.L3763: +.L3781: bl StorageSysDataStore uxtw x19, w0 - b .L3692 -.L3762: + b .L3710 +.L3780: mov x19, 0 -.L3692: - adrp x0, .LC308 +.L3710: + adrp x0, .LC311 mov x1, x19 - add x0, x0, :lo12:.LC308 + add x0, x0, :lo12:.LC311 bl printk mov x0, x19 - b .L3665 -.L3728: + b .L3683 +.L3746: mov x0, -22 -.L3665: +.L3683: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x29, x30, [sp], 48 @@ -23648,6 +23864,7 @@ rknand_sys_storage_ioctl: .type rk_ftl_storage_sys_init, %function rk_ftl_storage_sys_init: stp x29, x30, [sp, -48]! + mov w0, -1 mov w2, 512 add x29, sp, 0 stp x19, x20, [sp,16] @@ -23655,46 +23872,49 @@ rk_ftl_storage_sys_init: add x19, x20, :lo12:.LANCHOR7 stp x21, x22, [sp,32] ldr x1, [x19,-96] - str x1, [x19,-40] + str w0, [x19,-56] add x0, x1, 512 - str x0, [x19,-56] + str x0, [x19,-40] add x0, x1, 1024 + str x1, [x19,-24] + str x0, [x19,504] add x1, x1, 1536 - str x0, [x19,488] - sub x0, x19, #32 + sub x0, x19, #16 + strb wzr, [x19,-68] str xzr, [x19,-64] - str x1, [x19,496] + str xzr, [x19,-48] + str x1, [x19,512] bl ftl_memcpy - ldr x21, [x19,-40] - str wzr, [x19,-48] - str wzr, [x19,480] + ldr x21, [x19,-24] + str wzr, [x19,-32] + str wzr, [x19,496] ldr w0, [x21,16] ldr w22, [x21,508] - str w0, [x19,-44] - cbz w22, .L3777 + str w0, [x19,-28] + cbz w22, .L3795 mov x0, x21 mov w1, 508 bl js_hash cmp w22, w0 - beq .L3777 - adrp x0, .LC309 + beq .L3795 + adrp x0, .LC312 str wzr, [x21,16] - add x0, x0, :lo12:.LC309 - str wzr, [x19,-44] + add x0, x0, :lo12:.LC312 + str wzr, [x19,-28] bl printk -.L3777: +.L3795: add x0, x20, :lo12:.LANCHOR7 - ldr w1, [x0,-44] - cbz w1, .L3778 + ldr w1, [x0,-28] + cbz w1, .L3796 mov w1, 5161 movk w1, 0xc059, lsl 16 - str w1, [x0,-48] -.L3778: + str w1, [x0,-32] +.L3796: add x20, x20, :lo12:.LANCHOR7 mov w0, 2 - ldr x1, [x20,488] + ldr x1, [x20,504] bl StorageSysDataLoad - ldr x1, [x20,496] + ldr x1, [x20,512] mov w0, 3 bl StorageSysDataLoad bl rknand_sys_storage_init @@ -23724,55 +23944,55 @@ rk_ftl_vendor_storage_init: bl ftl_malloc add x1, x21, :lo12:.LANCHOR7 mov w19, -12 - str x0, [x1,504] - cbz x0, .L3787 + str x0, [x1,520] + cbz x0, .L3805 mov w23, 0 - adrp x24, .LC310 + adrp x24, .LC313 mov w19, w23 mov w22, w23 - add x24, x24, :lo12:.LC310 -.L3791: + add x24, x24, :lo12:.LC313 +.L3809: add x20, x21, :lo12:.LANCHOR7 lsl w0, w22, 7 mov w1, 128 - ldr x2, [x20,504] + ldr x2, [x20,520] bl FlashBootVendorRead - cbnz w0, .L3788 - ldr x3, [x20,504] + cbnz w0, .L3806 + ldr x3, [x20,520] mov x0, x24 add x2, x3, 61440 ldr w1, [x3] ldr w3, [x3,4] ldr w2, [x2,4092] bl printk - ldr x20, [x20,504] + ldr x20, [x20,520] mov w0, 22084 movk w0, 0x524b, lsl 16 ldr w1, [x20] cmp w1, w0 - bne .L3789 + bne .L3807 ldr w0, [x20,4] cmp w19, w0 - bcs .L3789 + bcs .L3807 add x1, x20, 61440 ldr w1, [x1,4092] cmp w1, w0 csel w23, w23, w22, ne csel w19, w19, w0, ne -.L3789: - cbnz w22, .L3799 +.L3807: + cbnz w22, .L3817 mov w22, 1 - b .L3791 -.L3799: - cbz w19, .L3792 + b .L3809 +.L3817: + cbz w19, .L3810 lsl w0, w23, 7 mov w1, 128 mov x2, x20 bl FlashBootVendorRead mov w19, w0 - cbz w0, .L3787 - b .L3788 -.L3792: + cbz w0, .L3805 + b .L3806 +.L3810: mov x0, x20 mov w1, w19 mov x2, 65536 @@ -23786,14 +24006,14 @@ rk_ftl_vendor_storage_init: mov w0, -1032 strh w19, [x20,12] strh w0, [x20,14] - b .L3787 -.L3788: + b .L3805 +.L3806: add x21, x21, :lo12:.LANCHOR7 mov w19, -1 - ldr x0, [x21,504] + ldr x0, [x21,520] bl kfree - str xzr, [x21,504] -.L3787: + str xzr, [x21,520] +.L3805: mov w0, w19 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -23805,24 +24025,24 @@ rk_ftl_vendor_storage_init: .global rk_ftl_vendor_read .type rk_ftl_vendor_read, %function rk_ftl_vendor_read: - adrp x3, .LANCHOR7+504 + adrp x3, .LANCHOR7+520 stp x29, x30, [sp, -32]! add x29, sp, 0 - ldr x5, [x3,#:lo12:.LANCHOR7+504] + ldr x5, [x3,#:lo12:.LANCHOR7+520] mov w3, -1 str x19, [sp,16] - cbz x5, .L3801 + cbz x5, .L3819 ldrh w3, [x5,10] mov x4, 0 -.L3802: +.L3820: cmp w4, w3 mov w6, w4 - bcs .L3806 + bcs .L3824 add x7, x5, x4, lsl 3 add x4, x4, 1 ldrh w7, [x7,16] cmp w7, w0 - bne .L3802 + bne .L3820 add x6, x5, x6, uxtw 3 ldrh w4, [x6,20] mov x0, x1 @@ -23834,10 +24054,10 @@ rk_ftl_vendor_read: uxtw x2, w19 bl memcpy mov w3, w19 - b .L3801 -.L3806: + b .L3819 +.L3824: mov w3, -1 -.L3801: +.L3819: mov w0, w3 ldr x19, [sp,16] ldp x29, x30, [sp], 32 @@ -23849,10 +24069,10 @@ rk_ftl_vendor_read: rk_ftl_vendor_write: stp x29, x30, [sp, -112]! mov w6, w0 - adrp x0, .LANCHOR7+504 + adrp x0, .LANCHOR7+520 add x29, sp, 0 stp x19, x20, [sp,16] - ldr x19, [x0,#:lo12:.LANCHOR7+504] + ldr x19, [x0,#:lo12:.LANCHOR7+520] stp x25, x26, [sp,64] stp x27, x28, [sp,80] stp x21, x22, [sp,32] @@ -23860,38 +24080,38 @@ rk_ftl_vendor_write: mov w26, w2 mov x28, x1 mov w2, -1 - cbz x19, .L3808 + cbz x19, .L3826 add w20, w26, 63 ldrh w3, [x19,10] ldrh w23, [x19,8] and w20, w20, -64 mov x2, 0 -.L3809: +.L3827: cmp w2, w3 mov w4, w2 - bcs .L3824 + bcs .L3842 add x0, x19, x2, lsl 3 add x2, x2, 1 ldrh w0, [x0,16] cmp w0, w6 - bne .L3809 + bne .L3827 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 .L3810 + bls .L3828 ldrh w0, [x19,14] mov w2, -1 cmp w0, w20 - bcc .L3808 + bcc .L3826 ldrh w21, [x21,18] add w22, w3, w2 -.L3811: +.L3829: cmp w4, w22 uxtw x3, w4 - bcs .L3825 + bcs .L3843 add x3, x19, x3, lsl 3 add w25, w4, 1 add x1, x19, x25, uxtw 3 @@ -23914,8 +24134,8 @@ rk_ftl_vendor_write: mov w4, w25 ldr x6, [x29,96] ldr x5, [x29,104] - b .L3811 -.L3825: + b .L3829 +.L3843: add x3, x19, x3, lsl 3 uxth w21, w21 mov x1, x28 @@ -23932,20 +24152,20 @@ rk_ftl_vendor_write: add w24, w24, w0 sub w24, w24, w20 strh w24, [x19,14] - b .L3823 -.L3810: + b .L3841 +.L3828: ldrh w0, [x21,18] mov x1, x28 uxtw x2, w26 add x0, x5, x0 bl memcpy strh w26, [x21,20] - b .L3823 -.L3824: + b .L3841 +.L3842: ldrh w4, [x19,14] mov w2, -1 cmp w4, w20 - bcc .L3808 + bcc .L3826 add x3, x19, x3, uxth 3 strh w6, [x3,16] uxth w20, w20 @@ -23965,7 +24185,7 @@ rk_ftl_vendor_write: ldrh w0, [x19,10] add w0, w0, 1 strh w0, [x19,10] -.L3823: +.L3841: ldr w0, [x19,4] add x1, x19, 61440 mov x2, x19 @@ -23982,7 +24202,7 @@ rk_ftl_vendor_write: lsl w0, w23, 7 bl FlashBootVendorWrite mov w2, 0 -.L3808: +.L3826: mov w0, w2 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -24006,37 +24226,37 @@ rk_ftl_vendor_storage_ioctl: mov x21, x2 bl ftl_malloc mov x19, x0 - cbz x0, .L3827 + cbz x0, .L3845 mov w2, 30209 ldr x1, [x29,56] movk w2, 0x4004, lsl 16 cmp w1, w2 - beq .L3829 + beq .L3847 mov w2, 30210 movk w2, 0x4004, lsl 16 cmp w1, w2 - beq .L3830 - b .L3841 -.L3829: + beq .L3848 + b .L3859 +.L3847: mov x1, x21 mov x2, 8 bl rk_copy_from_user - cbnz x0, .L3841 + cbnz x0, .L3859 ldr w1, [x19] mov w0, 17745 movk w0, 0x5652, lsl 16 cmp w1, w0 - beq .L3832 -.L3833: + beq .L3850 +.L3851: mov x20, -1 - b .L3828 -.L3832: + b .L3846 +.L3850: ldrh w0, [x19,4] add x1, x19, 8 ldrh w2, [x19,6] bl rk_ftl_vendor_read cmn w0, #1 - beq .L3833 + beq .L3851 uxth x2, w0 strh w0, [x19,6] mov x1, x19 @@ -24046,38 +24266,38 @@ rk_ftl_vendor_storage_ioctl: bl rk_copy_to_user cmp x0, xzr csel x20, xzr, x20, eq - b .L3828 -.L3830: + b .L3846 +.L3848: mov x1, x21 mov x2, 8 bl rk_copy_from_user - cbnz x0, .L3841 + cbnz x0, .L3859 ldr w1, [x19] mov w0, 17745 movk w0, 0x5652, lsl 16 cmp w1, w0 - bne .L3833 + bne .L3851 ldrh w3, [x19,6] cmp w3, 4087 - bhi .L3833 + bhi .L3851 add w2, w3, 8 mov x0, x19 mov x1, x21 sxtw x2, w2 bl rk_copy_from_user - cbnz x0, .L3841 + cbnz x0, .L3859 ldrh w0, [x19,4] add x1, x19, 8 ldrh w2, [x19,6] bl rk_ftl_vendor_write sxtw x20, w0 - b .L3828 -.L3841: + b .L3846 +.L3859: mov x20, -14 -.L3828: +.L3846: mov x0, x19 bl kfree -.L3827: +.L3845: mov x0, x20 ldr x21, [sp,32] ldp x19, x20, [sp,16] @@ -24256,24 +24476,24 @@ rk_ftl_vendor_storage_ioctl: .section .rodata .align 3 .LANCHOR1 = . + 0 - .type __func__.33888, %object - .size __func__.33888, 18 -__func__.33888: + .type __func__.33351, %object + .size __func__.33351, 18 +__func__.33351: .string "_list_remove_node" .zero 6 - .type __func__.33913, %object - .size __func__.33913, 23 -__func__.33913: + .type __func__.33376, %object + .size __func__.33376, 23 +__func__.33376: .string "_list_update_data_list" .zero 1 - .type __func__.18934, %object - .size __func__.18934, 22 -__func__.18934: + .type __func__.18345, %object + .size __func__.18345, 22 +__func__.18345: .string "nand_flash_print_info" .zero 2 - .type __func__.19019, %object - .size __func__.19019, 11 -__func__.19019: + .type __func__.18431, %object + .size __func__.18431, 11 +__func__.18431: .string "nandc_init" .zero 5 .type toshiba_A19ref_value, %object @@ -24435,9 +24655,9 @@ toshiba_ref_value: .byte 8 .byte 12 .byte 112 - .type __func__.18522, %object - .size __func__.18522, 28 -__func__.18522: + .type __func__.17933, %object + .size __func__.17933, 28 +__func__.17933: .string "flash_wait_device_ready_raw" .zero 4 .type toshiba_3D_tlc_value, %object @@ -24858,24 +25078,24 @@ toshiba_3D_slc_value: .byte -56 .byte 56 .zero 5 - .type __func__.18575, %object - .size __func__.18575, 22 -__func__.18575: + .type __func__.17986, %object + .size __func__.17986, 22 +__func__.17986: .string "flash_start_page_read" .zero 2 - .type __func__.18600, %object - .size __func__.18600, 23 -__func__.18600: + .type __func__.18011, %object + .size __func__.18011, 23 +__func__.18011: .string "flash_start_plane_read" .zero 1 - .type __func__.18497, %object - .size __func__.18497, 26 -__func__.18497: + .type __func__.17908, %object + .size __func__.17908, 26 +__func__.17908: .string "flash_erase_duplane_block" .zero 6 - .type __func__.18508, %object - .size __func__.18508, 21 -__func__.18508: + .type __func__.17919, %object + .size __func__.17919, 21 +__func__.17919: .string "flash_erase_block_en" .zero 3 .type random_seed, %object @@ -25009,19 +25229,19 @@ random_seed: .hword 28406 .hword 17598 .hword 28087 - .type __func__.19189, %object - .size __func__.19189, 13 -__func__.19189: + .type __func__.18601, %object + .size __func__.18601, 13 +__func__.18601: .string "buf_add_tail" .zero 3 - .type __func__.19202, %object - .size __func__.19202, 10 -__func__.19202: + .type __func__.18614, %object + .size __func__.18614, 10 +__func__.18614: .string "buf_alloc" .zero 6 - .type __func__.19216, %object - .size __func__.19216, 16 -__func__.19216: + .type __func__.18628, %object + .size __func__.18628, 16 +__func__.18628: .string "buf_remove_free" .type zftl_debug_proc_fops, %object .size zftl_debug_proc_fops, 216 @@ -25035,249 +25255,249 @@ zftl_debug_proc_fops: .zero 8 .xword single_release .zero 104 - .type __func__.33482, %object - .size __func__.33482, 12 -__func__.33482: + .type __func__.32946, %object + .size __func__.32946, 12 +__func__.32946: .string "gc_add_sblk" .zero 4 - .type __func__.33550, %object - .size __func__.33550, 19 -__func__.33550: + .type __func__.33014, %object + .size __func__.33014, 19 +__func__.33014: .string "gc_write_completed" .zero 5 - .type __func__.33601, %object - .size __func__.33601, 16 -__func__.33601: + .type __func__.33065, %object + .size __func__.33065, 16 +__func__.33065: .string "gc_free_src_blk" - .type __func__.34094, %object - .size __func__.34094, 18 -__func__.34094: + .type __func__.33557, %object + .size __func__.33557, 18 +__func__.33557: .string "ftl_alloc_sys_blk" .zero 6 - .type __func__.34104, %object - .size __func__.34104, 17 -__func__.34104: + .type __func__.33567, %object + .size __func__.33567, 17 +__func__.33567: .string "ftl_free_sys_blk" .zero 7 - .type __func__.34208, %object - .size __func__.34208, 23 -__func__.34208: + .type __func__.33671, %object + .size __func__.33671, 23 +__func__.33671: .string "ftl_get_ppa_from_index" .zero 1 - .type __func__.34247, %object - .size __func__.34247, 22 -__func__.34247: + .type __func__.33710, %object + .size __func__.33710, 22 +__func__.33710: .string "ftl_get_new_free_page" .zero 2 - .type __func__.34258, %object - .size __func__.34258, 22 -__func__.34258: + .type __func__.33721, %object + .size __func__.33721, 22 +__func__.33721: .string "ftl_ext_alloc_new_blk" .zero 2 - .type __func__.33264, %object - .size __func__.33264, 14 -__func__.33264: + .type __func__.32728, %object + .size __func__.32728, 14 +__func__.32728: .string "ftl_write_buf" .zero 2 - .type __func__.33308, %object - .size __func__.33308, 18 -__func__.33308: + .type __func__.32772, %object + .size __func__.32772, 18 +__func__.32772: .string "zftl_add_read_buf" .zero 6 - .type __func__.34053, %object - .size __func__.34053, 15 -__func__.34053: + .type __func__.33516, %object + .size __func__.33516, 15 +__func__.33516: .string "ftl_alloc_sblk" .align 3 .LANCHOR3 = . + 0 - .type __func__.34605, %object - .size __func__.34605, 17 -__func__.34605: + .type __func__.34068, %object + .size __func__.34068, 17 +__func__.34068: .string "pm_alloc_new_blk" .zero 7 - .type __func__.34633, %object - .size __func__.34633, 21 -__func__.34633: + .type __func__.34096, %object + .size __func__.34096, 21 +__func__.34096: .string "pm_select_ram_region" .zero 3 - .type __func__.18924, %object - .size __func__.18924, 20 -__func__.18924: + .type __func__.18335, %object + .size __func__.18335, 20 +__func__.18335: .string "flash_die_info_init" .zero 4 - .type __func__.33199, %object - .size __func__.33199, 17 -__func__.33199: + .type __func__.32663, %object + .size __func__.32663, 17 +__func__.32663: .string "lpa_rebuild_hash" .zero 7 - .type __func__.34569, %object - .size __func__.34569, 13 -__func__.34569: + .type __func__.34032, %object + .size __func__.34032, 13 +__func__.34032: .string "pm_free_sblk" .zero 3 - .type __func__.19239, %object - .size __func__.19239, 21 -__func__.19239: + .type __func__.18651, %object + .size __func__.18651, 21 +__func__.18651: .string "flash_info_data_init" .zero 3 - .type __func__.18453, %object - .size __func__.18453, 19 -__func__.18453: + .type __func__.17864, %object + .size __func__.17864, 19 +__func__.17864: .string "flash_read_page_en" .zero 5 - .type __func__.19228, %object - .size __func__.19228, 20 -__func__.19228: + .type __func__.18640, %object + .size __func__.18640, 20 +__func__.18640: .string "flash_info_blk_init" .zero 4 - .type __func__.18588, %object - .size __func__.18588, 31 -__func__.18588: + .type __func__.17999, %object + .size __func__.17999, 31 +__func__.17999: .string "flash_complete_plane_page_read" .zero 1 - .type __func__.18613, %object - .size __func__.18613, 25 -__func__.18613: + .type __func__.18024, %object + .size __func__.18024, 25 +__func__.18024: .string "flash_complete_page_read" .zero 7 - .type __func__.34436, %object - .size __func__.34436, 31 -__func__.34436: + .type __func__.33899, %object + .size __func__.33899, 31 +__func__.33899: .string "queue_wait_first_req_completed" .zero 1 - .type __func__.34516, %object - .size __func__.34516, 15 -__func__.34516: + .type __func__.33979, %object + .size __func__.33979, 15 +__func__.33979: .string "sblk_read_page" .zero 1 - .type __func__.18546, %object - .size __func__.18546, 26 -__func__.18546: - .string "flash_start_tlc_page_prog" - .zero 6 - .type __func__.18564, %object - .size __func__.18564, 22 -__func__.18564: + .type __func__.17975, %object + .size __func__.17975, 22 +__func__.17975: .string "flash_start_page_prog" .zero 2 - .type __func__.34489, %object - .size __func__.34489, 15 -__func__.34489: + .type __func__.33952, %object + .size __func__.33952, 15 +__func__.33952: .string "sblk_prog_page" .zero 1 - .type __func__.18482, %object - .size __func__.18482, 19 -__func__.18482: + .type __func__.17957, %object + .size __func__.17957, 26 +__func__.17957: + .string "flash_start_tlc_page_prog" + .zero 6 + .type __func__.17893, %object + .size __func__.17893, 19 +__func__.17893: .string "flash_prog_page_en" .zero 5 - .type __func__.34319, %object - .size __func__.34319, 14 -__func__.34319: + .type __func__.33782, %object + .size __func__.33782, 14 +__func__.33782: .string "ftl_prog_page" .zero 2 - .type __func__.34021, %object - .size __func__.34021, 15 -__func__.34021: + .type __func__.33484, %object + .size __func__.33484, 15 +__func__.33484: .string "ftl_info_flush" .zero 1 - .type __func__.34283, %object - .size __func__.34283, 19 -__func__.34283: + .type __func__.33746, %object + .size __func__.33746, 19 +__func__.33746: .string "ftl_ext_info_flush" .zero 5 - .type __func__.34295, %object - .size __func__.34295, 18 -__func__.34295: + .type __func__.33758, %object + .size __func__.33758, 18 +__func__.33758: .string "ftl_ext_info_init" .zero 6 - .type __func__.34182, %object - .size __func__.34182, 23 -__func__.34182: + .type __func__.33645, %object + .size __func__.33645, 23 +__func__.33645: .string "ftl_open_sblk_recovery" .zero 1 - .type __func__.34615, %object - .size __func__.34615, 14 -__func__.34615: + .type __func__.34078, %object + .size __func__.34078, 14 +__func__.34078: .string "pm_write_page" .zero 2 - .type __func__.19261, %object - .size __func__.19261, 17 -__func__.19261: + .type __func__.18673, %object + .size __func__.18673, 17 +__func__.18673: .string "flash_info_flush" .zero 7 - .type __func__.18978, %object - .size __func__.18978, 16 -__func__.18978: + .type __func__.18390, %object + .size __func__.18390, 16 +__func__.18390: .string "nand_flash_init" - .type __func__.34163, %object - .size __func__.34163, 16 -__func__.34163: + .type __func__.33626, %object + .size __func__.33626, 16 +__func__.33626: .string "ftl_sysblk_dump" - .type __func__.34555, %object - .size __func__.34555, 16 -__func__.34555: + .type __func__.34018, %object + .size __func__.34018, 16 +__func__.34018: .string "load_l2p_region" - .type __func__.34589, %object - .size __func__.34589, 6 -__func__.34589: + .type __func__.34052, %object + .size __func__.34052, 6 +__func__.34052: .string "pm_gc" .zero 2 - .type __func__.33537, %object - .size __func__.33537, 22 -__func__.33537: + .type __func__.33001, %object + .size __func__.33001, 22 +__func__.33001: .string "gc_update_l2p_map_new" .zero 2 - .type __func__.33646, %object - .size __func__.33646, 16 -__func__.33646: + .type __func__.33109, %object + .size __func__.33109, 16 +__func__.33109: .string "gc_scan_src_blk" - .type __func__.33704, %object - .size __func__.33704, 20 -__func__.33704: + .type __func__.33167, %object + .size __func__.33167, 20 +__func__.33167: .string "gc_scan_static_data" .zero 4 - .type __func__.33767, %object - .size __func__.33767, 18 -__func__.33767: + .type __func__.33230, %object + .size __func__.33230, 18 +__func__.33230: .string "gc_block_vpn_scan" .zero 6 - .type __func__.34139, %object - .size __func__.34139, 14 -__func__.34139: + .type __func__.33602, %object + .size __func__.33602, 14 +__func__.33602: .string "ftl_sblk_dump" .zero 2 - .type __func__.33341, %object - .size __func__.33341, 10 -__func__.33341: + .type __func__.32805, %object + .size __func__.32805, 10 +__func__.32805: .string "zftl_read" .zero 6 - .type __func__.33503, %object - .size __func__.33503, 21 -__func__.33503: + .type __func__.32967, %object + .size __func__.32967, 21 +__func__.32967: .string "gc_check_data_one_wl" .zero 3 - .type __func__.34229, %object - .size __func__.34229, 19 -__func__.34229: + .type __func__.33692, %object + .size __func__.33692, 19 +__func__.33692: .string "ftl_update_l2p_map" .zero 5 - .type __func__.33246, %object - .size __func__.33246, 17 -__func__.33246: + .type __func__.32710, %object + .size __func__.32710, 17 +__func__.32710: .string "ftl_write_commit" .zero 7 - .type __func__.33579, %object - .size __func__.33579, 16 -__func__.33579: + .type __func__.33043, %object + .size __func__.33043, 16 +__func__.33043: .string "gc_do_copy_back" - .type __func__.33795, %object - .size __func__.33795, 11 -__func__.33795: + .type __func__.33258, %object + .size __func__.33258, 11 +__func__.33258: .string "zftl_do_gc" .zero 5 - .type __func__.33372, %object - .size __func__.33372, 13 -__func__.33372: + .type __func__.32836, %object + .size __func__.32836, 13 +__func__.32836: .string "_ftl_discard" .section .rodata.str1.1,"aMS",%progbits,1 .LC0: @@ -25285,7 +25505,7 @@ __func__.33372: .LC1: .string "%s\n" .LC2: - .string "FTL version: 6.0.11 20180718" + .string "FTL version: 6.0.14 20180908" .LC3: .string "zftl_debug:0x%x\n" .LC4: @@ -25367,9 +25587,9 @@ __func__.33372: .LC42: .string "flash_erase_duplane_block pageadd = %x status = %x\n" .LC43: - .string "flash_erase_block %x %x\n" + .string "flash_erase_block %x %x %x\n" .LC44: - .string "flash_erase_block block = %x status = %x\n" + .string "flash_erase_block %d block = %x status = %x\n" .LC45: .string "erase done: %x\n" .LC46: @@ -25485,7 +25705,7 @@ __func__.33372: .LC101: .string "gc_free_src_blk %x, %d\n" .LC102: - .string "ftl_vpn_decrement %x = %d\n" + .string "ftl_vpn_decrement %x = %d, %d\n" .LC103: .string "mask bad block:cs %x block: %x\n" .LC104: @@ -25567,7 +25787,7 @@ __func__.33372: .LC142: .string "flash_read_page %x %x %x\n" .LC143: - .string "micron %d row=%x,count %d,status=%d\n" + .string "micron %d row=%x,last status %d,status = %d\n" .LC144: .string "micron RR %d row=%x,count %d,status=%d\n" .LC145: @@ -25585,322 +25805,328 @@ __func__.33372: .LC151: .string "DDR mode Read error %x %x\n" .LC152: - .string "flash_read_page_en %x %x %x\n" + .string "SDR mode Read %x %x ecc:%x\n" .LC153: - .string "flash_read_page_en %x %x error_ecc %d %d\n" + .string "flash_read_page_en %x %x %x\n" .LC154: - .string "flash_get_last_written_page: %x %x %x\n" + .string "flash_read_page_en %x %x error_ecc %d %d\n" .LC155: - .string "...%d @ %s %d %p\n" + .string "flash_get_last_written_page: %x %x %x\n" .LC156: - .string "no sys info %x\n" + .string "...%d @ %s %d %p\n" .LC157: - .string "read page: %x %x %x %x\n" + .string "no sys info %x\n" .LC158: - .string "flash_complete_page_read %x %x error_ecc %d %d\n" + .string "read page: %x %x %x %x\n" .LC159: - .string "read: %x %x %x %x\n" + .string "flash_complete_page_read %x %x error_ecc %d %d\n" .LC160: - .string "0set buf %d,status = %x, ppa = %x lun state = %d\n" + .string "read: %x %x %x %x\n" .LC161: - .string "1set buf %d,status = %x, ppa = %x lun state = %d\n" + .string "0set buf %d,status = %x, ppa = %x lun state = %d\n" .LC162: - .string "flash_prog_page %x %x %x\n" + .string "1set buf %d,status = %x, ppa = %x lun state = %d\n" .LC163: - .string "flash_prog_page page_addr = %x status = %x\n" + .string "flash_prog_page %x %x %x\n" .LC164: - .string "sblk_prog_page ppa = %x, count = %d\n" + .string "flash_prog_page page_addr = %x status = %x\n" .LC165: - .string "flash_prog_page_en:%x %x\n" + .string "sblk_prog_page ppa = %x, count = %d\n" .LC166: - .string "spare" + .string "flash_prog_page_en:%x %x\n" .LC167: - .string "data" + .string "w d:" .LC168: - .string "write error: %x\n" + .string "w s:" .LC169: - .string "g_ftl_info_blk blk = %x, page = %x version = %d\n" + .string "spare" .LC170: - .string "%d %x @%d %x\n" + .string "data" .LC171: - .string "ftl_info_blk_init %d %d %x\n" + .string "write error: %x\n" .LC172: - .string "%s %d %d %x %x\n" + .string "g_ftl_info_blk blk = %x, page = %x version = %d\n" .LC173: - .string "saved_active_page = %x\n" + .string "%d %x @%d %x\n" .LC174: - .string "saved_active_plane = %x\n" + .string "ftl_info_blk_init %d %d %x\n" .LC175: - .string "sblk = %x\n" + .string "%s %d %d %x %x\n" .LC176: - .string "phy_blk = %x %x\n" + .string "saved_active_page = %x\n" .LC177: - .string "sblk = %x, vpn0 = %d, vpn1 = %d\n" + .string "saved_active_plane = %x\n" .LC178: - .string "dump write = %x\n" + .string "sblk = %x\n" .LC179: - .string "pm_write_page write error: %x\n" + .string "phy_blk = %x %x\n" .LC180: - .string "finfo:" + .string "sblk = %x, vpn0 = %d, vpn1 = %d\n" .LC181: - .string "flash_info_flush id = %x, page = %x\n" + .string "dump write = %x\n" .LC182: - .string "sys_info_flush error:%x\n" + .string "pm_write_page write error: %x\n" .LC183: - .string "blk= %x, page=%x, ppa = %x, status = %x, data:%x %x %x %x, spare: %x %x %x %x\n" + .string "finfo:" .LC184: - .string "l2p:" + .string "flash_info_flush id = %x, page = %x\n" .LC185: - .string "free_buf_count: %d\n" + .string "sys_info_flush error:%x\n" .LC186: - .string "g_ftl_info_blk blk:0x%x, index:0x%x, page:0x%x\n" + .string "blk= %x, page=%x, ppa = %x, status = %x, data:%x %x %x %x, spare: %x %x %x %x\n" .LC187: - .string "ftl_ext_info_blk blk:0x%x, page:0x%x\n" + .string "l2p:" .LC188: - .string "ac_blk:0x%x, page:0x%x, index:0x%x, free:0x%x, page_index:0x%x\n" + .string "free_buf_count: %d\n" .LC189: - .string "tmp_blk:0x%x, page:0x%x, index:0x%x, free:0x%x, page_index:0x%x\n" + .string "g_ftl_info_blk blk:0x%x, index:0x%x, page:0x%x\n" .LC190: - .string "gc_blk:0x%x, page:0x%x, index:0x%x, free:0x%x, page_index:0x%x\n" + .string "ftl_ext_info_blk blk:0x%x, page:0x%x\n" .LC191: - .string "lpa:" + .string "ac_blk:0x%x, page:0x%x, index:0x%x, free:0x%x, page_index:0x%x\n" .LC192: - .string "vpn:" + .string "tmp_blk:0x%x, page:0x%x, index:0x%x, free:0x%x, page_index:0x%x\n" .LC193: - .string "sblk:" + .string "gc_blk:0x%x, page:0x%x, index:0x%x, free:0x%x, page_index:0x%x\n" .LC194: - .string "lpa_hash:" + .string "lpa:" .LC195: - .string "lpa_hash_index:" + .string "vpn:" .LC196: - .string "%s w error lpn = %x, max ppa = %d\n" + .string "sblk:" .LC197: - .string "region_id = %d, pm_max_region = %d\n" + .string "lpa_hash:" .LC198: - .string "load_l2p_region no ppa = %x , %x, all setting 0xff....\n" + .string "lpa_hash_index:" .LC199: - .string "load_l2p_region = %x,%x,%x, %x\n" + .string "%s w error lpn = %x, max ppa = %d\n" .LC200: - .string "pm_ppa:" + .string "region_id = %d, pm_max_region = %d\n" .LC201: - .string "data:" + .string "load_l2p_region no ppa = %x , %x, all setting 0xff....\n" .LC202: - .string "spare:" + .string "load_l2p_region = %x,%x,%x, %x\n" .LC203: - .string "pm_init posr %x %x %x\n" + .string "pm_ppa:" .LC204: - .string "pm_init recovery %x %x %x\n" + .string "data:" .LC205: - .string "pm_log2phys lpn = %d, max lpn = %d\n" + .string "spare:" .LC206: - .string "ppa = %x, status = %x, data:%x %x %x %x, spare: %x %x %x %x\n" + .string "pm_init posr %x %x %x\n" .LC207: - .string "ppa = %x, status = %x, %x %x spare: %x %x %x %x\n" + .string "pm_init recovery %x %x %x\n" .LC208: - .string "gc_recovery: %x vpn = %x\n" + .string "pm_log2phys lpn = %d, max lpn = %d\n" .LC209: - .string "_c_user_data_density := %d\n" + .string "ppa = %x, status = %x, data:%x %x %x %x, spare: %x %x %x %x\n" .LC210: - .string "_c_totle_phy_density := %d\n" + .string "ppa = %x, status = %x, %x %x spare: %x %x %x %x\n" .LC211: - .string "_c_totle_log_page := %d\n" + .string "gc_recovery: %x vpn = %x\n" .LC212: - .string "_c_totle_data_density := %d\n" + .string "_c_user_data_density := %d\n" .LC213: - .string "_c_ftl_pm_page_num := %d\n" + .string "_c_totle_phy_density := %d\n" .LC214: - .string "_c_ftl_byte_pre_page := %d\n" + .string "_c_totle_log_page := %d\n" .LC215: - .string "_c_max_pm_sblk := %d\n" + .string "_c_totle_data_density := %d\n" .LC216: - .string "_min_slc_super_block := %d\n" + .string "_c_ftl_pm_page_num := %d\n" .LC217: - .string "_max_xlc_super_block := %d\n" + .string "_c_ftl_byte_pre_page := %d\n" .LC218: - .string "gp_ftl_ext_info %p %p %p\n" + .string "_c_max_pm_sblk := %d\n" .LC219: - .string "flash info size: %d %d %d\n" + .string "_min_slc_super_block := %d\n" .LC220: - .string "ftl_init %x\n" + .string "_max_xlc_super_block := %d\n" .LC221: - .string "gc_update_l2p_map_new sblk %x\n" + .string "gp_ftl_ext_info %p %p %p\n" .LC222: - .string "gc_update_l2p_map_new: %x %x %x\n" + .string "flash info size: %d %d %d\n" .LC223: - .string "lpa: %x %x %x\n" + .string "ftl_init %x\n" .LC224: - .string "gc_update_l2p_map_new: %x vpn = %x vpn1 = %x done\n" + .string "gc_update_l2p_map_new sblk %x\n" .LC225: - .string "gc_scan_src_blk = %x, vpn = %d\n" + .string "gc_update_l2p_map_new: %x %x %x\n" .LC226: - .string "gc_scan_src_blk = %x, s vpn0 = %d, c vpn1 = %d\n" + .string "lpa: %x %x %x\n" .LC227: - .string "gc_block_vpn_scan = %x, s vpn0 = %d, c vpn1 = %d f:%d\n" + .string "gc_update_l2p_map_new: %x vpn = %x vpn1 = %x done\n" .LC228: - .string "ftl_sblk_dump = %x %d %d %d %d\n" + .string "gc_scan_src_blk = %x, vpn = %d\n" .LC229: - .string "ftl_sblk_dump = %x %x %x %x\n" + .string "gc_scan_src_blk = %x, s vpn0 = %d, c vpn1 = %d\n" .LC230: - .string "page_addr = %x, lpa=%x vpn = %d\n" + .string "gc_block_vpn_scan = %x, s vpn0 = %d, c vpn1 = %d f:%d\n" .LC231: - .string "index= %x, lpa=%x\n" + .string "ftl_sblk_dump = %x %d %d %d %d\n" .LC232: - .string "block = %x, vpn=%x check vpn = %d\n" + .string "ftl_sblk_dump = %x %x %x %x\n" .LC233: - .string "ftl_read %x %x %x\n" + .string "page_addr = %x, lpa=%x vpn = %d\n" .LC234: - .string "ftl_read refresh =%x, lpa = %x, ppa= %x\n" + .string "index= %x, lpa=%x\n" .LC235: - .string "id=%d, lpa = %x, ppa = %x spare = %x %x %x %x\n" + .string "block = %x, vpn=%x check vpn = %d\n" .LC236: - .string "zftl debug cmd: %s\n" + .string "ftl_read %x %x %x\n" .LC237: - .string "cmd:" + .string "ftl_read refresh =%x, lpa = %x, ppa= %x\n" .LC238: - .string "dumpl2p" + .string "id=%d, lpa = %x, ppa = %x spare = %x %x %x %x\n" .LC239: - .string "pm l2p:" + .string "zftl debug cmd: %s\n" .LC240: - .string "pm blk:" + .string "cmd:" .LC241: - .string "dumppm:" + .string "dumpl2p" .LC242: - .string "p_cmd: %s\n" + .string "pm l2p:" .LC243: - .string "pm ram = %x, %x\n" + .string "pm blk:" .LC244: - .string "ram:" + .string "dumppm:" .LC245: - .string "pm:" + .string "p_cmd: %s\n" .LC246: - .string "dumpsys" + .string "pm ram = %x, %x\n" .LC247: - .string "dumplist:" + .string "ram:" .LC248: - .string "vpncheck" + .string "pm:" .LC249: - .string "dumpppa:" + .string "dumpsys" .LC250: - .string "dumpblk:" + .string "dumplist:" .LC251: - .string "setzdebug:" + .string "vpncheck" .LC252: - .string "lpa2ppa:" + .string "dumpppa:" .LC253: - .string "lpa: %x--> ppa: %x\n" + .string "dumpblk:" .LC254: - .string "help:\n" + .string "setzdebug:" .LC255: - .string "1. echo dumpl2p > /proc/zftl_debug\n" + .string "lpa2ppa:" .LC256: - .string "2. echo dumppm:x > /proc/zftl_debug\n" + .string "lpa: %x--> ppa: %x\n" .LC257: - .string "3. echo dumpsys > /proc/zftl_debug\n" + .string "help:\n" .LC258: - .string "4. echo dumpppa:x > /proc/zftl_debug\n" + .string "1. echo dumpl2p > /proc/zftl_debug\n" .LC259: - .string "5. echo vpncheck > /proc/zftl_debug\n" + .string "2. echo dumppm:x > /proc/zftl_debug\n" .LC260: - .string "6. echo setzdebug:x > /proc/zftl_debug\n" + .string "3. echo dumpsys > /proc/zftl_debug\n" .LC261: - .string "7. echo dumplist > /proc/zftl_debug\n" + .string "4. echo dumpppa:x > /proc/zftl_debug\n" .LC262: - .string "8. echo lpa2ppa:x> /proc/zftl_debug\n" + .string "5. echo vpncheck > /proc/zftl_debug\n" .LC263: - .string "gc_lpa:" + .string "6. echo setzdebug:x > /proc/zftl_debug\n" .LC264: - .string "gc_ppa:" + .string "7. echo dumplist > /proc/zftl_debug\n" .LC265: - .string "err: ppa = %x, status = %x, %x %x spare: %x %x %x %x\n" + .string "8. echo lpa2ppa:x> /proc/zftl_debug\n" .LC266: - .string "ftl_update_l2p_map: %x %x %x\n" + .string "gc_lpa:" .LC267: - .string "ftl_update_l2p_map" + .string "gc_ppa:" .LC268: - .string "lpa_tbl:" + .string "err: ppa = %x, status = %x, %x %x spare: %x %x %x %x\n" .LC269: - .string "sblk %x vpn: %d %d\n" + .string "ftl_update_l2p_map: %x %x %x\n" .LC270: - .string "%d read error: ppa:%x, lpa:%x, status:%x\n" + .string "ftl_update_l2p_map" .LC271: - .string "gc page in buf: lpa %x ppa = %x pageindex= %x\n" + .string "lpa_tbl:" .LC272: - .string "gc_do_copy_back: lpa %x des_ppa = %x %x gc_ppa= %x page_index= %d\n" + .string "sblk %x vpn: %d %d\n" .LC273: - .string "gc_do_copy_back: %x %x %x %x gc_ppa:%x %x\n" + .string "%d read error: ppa:%x, lpa:%x, status:%x\n" .LC274: - .string "%d prog_step: %x %x buf id= %x ppa = %x hash=%x id = %x plane = %x lpa=%x\n" + .string "gc page in buf: lpa %x ppa = %x pageindex= %x\n" .LC275: - .string "gc %d: %d %d %d %d %d %d %d\n" + .string "gc_do_copy_back: lpa %x des_ppa = %x %x gc_ppa= %x page_index= %d\n" .LC276: - .string "gc %d: %d %d %d %d %d %d\n" + .string "gc_do_copy_back: %x %x %x %x gc_ppa:%x %x\n" .LC277: - .string "GC_STATE_SCAN_ALL_PAGE = %x, vpn0 = %d, vpn1 = %d\n" + .string "%d prog_step: %x %x buf id= %x ppa = %x hash=%x id = %x plane = %x lpa=%x\n" .LC278: - .string "gc free %x, %d\n" + .string "gc %d: %d %d %d %d %d %d %d\n" .LC279: - .string "ftlwrite %x %x %x\n" + .string "gc %d: %d %d %d %d %d %d\n" .LC280: - .string "ftl_discard:(%x, %x, %x, %x)\n" + .string "GC_STATE_SCAN_ALL_PAGE = %x, vpn0 = %d, vpn1 = %d\n" .LC281: - .string "id_block_prog_msb_ff_data slc page = %d pageadd=%x %x\n" + .string "gc free %x, %d\n" .LC282: - .string "write_idblock fix data %x %x\n" + .string "ftlwrite %x %x %x\n" .LC283: - .string "idblk:" + .string "ftl_discard:(%x, %x, %x, %x)\n" .LC284: - .string "write_idblock totle_sec %x %x\n" + .string "id_block_prog_msb_ff_data slc page = %d pageadd=%x %x\n" .LC285: - .string "READ_SECTOR_IO\n" + .string "write_idblock fix data %x %x\n" .LC286: - .string "rk_copy_from_user error\n" + .string "idblk:" .LC287: - .string "READ_SECTOR_IO %x %x\n" + .string "write_idblock totle_sec %x %x\n" .LC288: - .string "rk_copy_to_user error\n" + .string "READ_SECTOR_IO\n" .LC289: - .string "WRITE_SECTOR_IO\n" + .string "rk_copy_from_user error\n" .LC290: - .string "WRITE_SECTOR_IO %x %x\n" + .string "READ_SECTOR_IO %x %x\n" .LC291: - .string "END_WRITE_SECTOR_IO\n" + .string "rk_copy_to_user error\n" .LC292: - .string "END_WRITE_SECTOR_IO %x %x\n" + .string "WRITE_SECTOR_IO\n" .LC293: - .string "GET_FLASH_INFO_IO\n" + .string "WRITE_SECTOR_IO %x %x\n" .LC294: - .string "GET_BAD_BLOCK_IO\n" + .string "END_WRITE_SECTOR_IO\n" .LC295: - .string "GET_LOCK_FLAG_IO\n" + .string "END_WRITE_SECTOR_IO %x %x\n" .LC296: - .string "GET_PUBLIC_KEY_IO\n" + .string "GET_FLASH_INFO_IO\n" .LC297: - .string "RKNAND_GET_DRM_KEY\n" + .string "GET_BAD_BLOCK_IO\n" .LC298: - .string "RKNAND_STORE_DRM_KEY\n" + .string "GET_LOCK_FLAG_IO\n" .LC299: - .string "RKNAND_DIASBLE_SECURE_BOOT\n" + .string "GET_PUBLIC_KEY_IO\n" .LC300: - .string "RKNAND_ENASBLE_SECURE_BOOT\n" + .string "RKNAND_GET_DRM_KEY\n" .LC301: - .string "RKNAND_GET_SN_SECTOR\n" + .string "RKNAND_STORE_DRM_KEY\n" .LC302: - .string "RKNAND_LOADER_UNLOCK\n" + .string "RKNAND_DIASBLE_SECURE_BOOT\n" .LC303: - .string "RKNAND_LOADER_STATUS\n" + .string "RKNAND_ENASBLE_SECURE_BOOT\n" .LC304: - .string "RKNAND_LOADER_LOCK\n" + .string "RKNAND_GET_SN_SECTOR\n" .LC305: - .string "LockKey not match %d\n" + .string "RKNAND_LOADER_UNLOCK\n" .LC306: - .string "RKNAND_GET_VENDOR_SECTOR\n" + .string "RKNAND_LOADER_STATUS\n" .LC307: - .string "RKNAND_STORE_VENDOR_SECTOR\n" + .string "RKNAND_LOADER_LOCK\n" .LC308: - .string "return ret = %lx\n" + .string "LockKey not match %d\n" .LC309: - .string "secureBootEn check error\n" + .string "RKNAND_GET_VENDOR_SECTOR\n" .LC310: + .string "RKNAND_STORE_VENDOR_SECTOR\n" +.LC311: + .string "return ret = %lx\n" +.LC312: + .string "secureBootEn check error\n" +.LC313: .string "\0013vendor storage %x,%x,%x\n" .data .align 3 @@ -26336,7 +26562,7 @@ hy_f26_ref_value: .byte -37 .zero 4 .type zftl_nand_flash_para_tbl, %object - .size zftl_nand_flash_para_tbl, 1024 + .size zftl_nand_flash_para_tbl, 1152 zftl_nand_flash_para_tbl: .byte 6 .byte -104 @@ -26810,7 +27036,7 @@ zftl_nand_flash_para_tbl: .byte 4 .byte 0 .hword 512 - .byte 2 + .byte 1 .byte -38 .byte -33 .byte 0 @@ -27012,6 +27238,34 @@ zftl_nand_flash_para_tbl: .byte 0 .byte 5 .byte 44 + .byte 100 + .byte 100 + .byte 60 + .byte -91 + .byte 0 + .byte 4 + .byte 1 + .byte 32 + .hword 512 + .byte 2 + .byte 1 + .hword 1044 + .hword 471 + .byte 3 + .byte 17 + .byte 40 + .byte 32 + .byte 1 + .byte 0 + .byte 1 + .byte 0 + .hword 512 + .byte 3 + .byte 0 + .byte 0 + .byte 0 + .byte 5 + .byte 44 .byte -124 .byte 68 .byte 50 @@ -27038,6 +27292,62 @@ zftl_nand_flash_para_tbl: .byte -38 .byte -33 .byte 0 + .byte 5 + .byte 44 + .byte -124 + .byte -60 + .byte 52 + .byte -86 + .byte 0 + .byte 4 + .byte 1 + .byte 32 + .hword 512 + .byte 2 + .byte 1 + .hword 2184 + .hword 9671 + .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 5 + .byte 44 + .byte -124 + .byte 68 + .byte 52 + .byte -86 + .byte 0 + .byte 4 + .byte 1 + .byte 32 + .hword 512 + .byte 2 + .byte 1 + .hword 2184 + .hword 9671 + .byte 5 + .byte 19 + .byte 70 + .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 @@ -27178,6 +27488,34 @@ zftl_nand_flash_para_tbl: .byte -65 .byte -66 .byte 0 + .byte 6 + .byte -83 + .byte -41 + .byte 20 + .byte -98 + .byte 52 + .byte 74 + .byte 2 + .byte 1 + .byte 16 + .hword 256 + .byte 2 + .byte 2 + .hword 1056 + .hword 473 + .byte 2 + .byte 5 + .byte 40 + .byte 32 + .byte 4 + .byte 1 + .byte 3 + .byte 0 + .hword 256 + .byte 0 + .byte 0 + .byte 0 + .byte 0 .byte 5 .byte -119 .byte 100 @@ -28495,7 +28833,11 @@ g_flash_tmp_spare_buffer: .size g_maxRetryCount, 1 g_maxRetryCount: .zero 1 - .zero 7 + .zero 3 + .type flash_ddr_tuning_sdr_read_count, %object + .size flash_ddr_tuning_sdr_read_count, 4 +flash_ddr_tuning_sdr_read_count: + .zero 4 .type flash_read_retry, %object .size flash_read_retry, 8 flash_read_retry: @@ -28626,6 +28968,19 @@ _last_write_time: .type discard_sector_count, %object .size discard_sector_count, 4 discard_sector_count: + .zero 4 + .type idb_write_enable, %object + .size idb_write_enable, 1 +idb_write_enable: + .zero 1 + .zero 3 + .type idb_buf, %object + .size idb_buf, 8 +idb_buf: + .zero 8 + .type idb_last_lba, %object + .size idb_last_lba, 4 +idb_last_lba: .zero 4 .zero 4 .type g_idb_buffer, %object @@ -28673,7 +29028,7 @@ g_vendor: .size ftl_low_format_cur_blk, 2 ftl_low_format_cur_blk: .zero 2 - .zero 62 + .zero 46 .type ftl_tmp_buffer, %object .size ftl_tmp_buffer, 16384 ftl_tmp_buffer: