diff --git a/drivers/rkflash/rk_sftl_arm_v7.S b/drivers/rkflash/rk_sftl_arm_v7.S index 24a42c98bd4c..137345ac1499 100644 --- a/drivers/rkflash/rk_sftl_arm_v7.S +++ b/drivers/rkflash/rk_sftl_arm_v7.S @@ -1,7 +1,7 @@ /* SPDX-License-Identifier: GPL-2.0 */ /* Copyright (c) 2018 Rockchip Electronics Co. Ltd. - * date: 2019-10-28 + * date: 2019-11-25 */ .file "rk_sftl.c" .global __udivsi3 @@ -13308,117 +13308,114 @@ sftl_init: .fpu softvfp .type FtlWriteToIDB, %function FtlWriteToIDB: - @ args = 0, pretend = 0, frame = 100 + @ args = 0, pretend = 0, frame = 92 @ frame_needed = 1, uses_anonymous_args = 0 mov ip, sp push {r4, r5, r6, r7, r8, r9, r10, fp, ip, lr, pc} sub fp, ip, #4 - sub sp, sp, #104 + sub sp, sp, #96 add r8, r1, r0 sub r9, r8, #1 - mov r5, r0 + mov r4, r0 cmp r9, #63 - mov r4, r1 + mov r6, r1 movhi r3, #0 movls r3, #1 cmp r0, #576 orrcs r3, r3, #1 mov r7, r2 cmp r3, #0 - ldr r6, .L1960 + ldr r5, .L1958 beq .L1899 - ldr r3, [r6, #3680] + ldr r3, [r5, #3680] cmp r3, #0 bne .L1900 -.L1959: +.L1957: mov r4, #0 b .L1898 .L1900: - ldr r3, [r6, #3684] - ldr r2, [r3] - str r3, [fp, #-116] - ldr r3, .L1960+4 + ldr r8, [r5, #3684] + ldr r3, .L1958+4 + ldr r2, [r8] cmp r2, r3 bne .L1902 - ldr r3, [fp, #-116] + ldrh r1, [r5, #10] + add r0, r8, #260096 mov r2, #0 - ldrh r1, [r6, #10] - add r0, r3, #260096 movw r3, #65023 .L1906: ldr ip, [r0, #-4]! cmp ip, #0 bne .L1903 - ldr ip, [fp, #-116] - sub r3, r3, #1 - ldr ip, [ip, r2, lsl #2] + ldr ip, [r8, r2, lsl #2] add r2, r2, #1 cmp r2, #4096 + sub r3, r3, #1 movhi r2, #0 cmp r3, #4096 str ip, [r0, #2048] bne .L1906 mov r3, #512 - b .L1957 + b .L1955 .L1903: add r3, r3, #127 lsr r3, r3, #7 -.L1957: +.L1955: + str r3, [fp, #-108] lsl r1, r1, #2 - str r3, [fp, #-112] - ldr r0, [fp, #-112] + ldr r3, [fp, #-108] uxth r1, r1 - ldr r4, .L1960 + ldr r4, .L1958 + add r0, r3, #4 bl __udivsi3 add r3, r0, #1 - ldr r1, [fp, #-112] + ldr r1, [fp, #-108] mov r2, r3 - ldr r0, .L1960+8 - str r3, [fp, #-120] - mov r6, r4 + ldr r0, .L1958+8 + str r3, [fp, #-112] bl sftl_printk - ldr r3, [fp, #-112] + ldr r3, [fp, #-108] lsl r3, r3, #7 - str r3, [fp, #-132] - mov r3, #0 str r3, [fp, #-124] - str r3, [fp, #-108] + mov r3, #0 + mov r7, r3 + str r3, [fp, #-116] .L1928: mov r1, #512 ldr r0, [r4, #3688] bl __memzero - ldr r3, [fp, #-108] - ldrh r7, [r4, #10] - mul r8, r3, r7 + ldrh r6, [r4, #10] + mul r3, r7, r6 + str r3, [fp, #-120] ldr r3, [r4, #3264] cmp r3, #0 - moveq r10, #6 + moveq r9, #6 beq .L1907 ldr r3, [r4, #3268] cmp r3, #0 - moveq r10, #6 - movne r10, #9 + moveq r9, #6 + movne r9, #9 .L1907: - ldr r3, [r6, #3252] - mov r1, r8 - mov r0, #0 - blx r3 - ldr r3, [fp, #-120] - cmp r3, #1 - beq .L1908 - ldr r3, [r6, #3252] - add r1, r7, r8 - mov r0, #0 - blx r3 + mul r10, r7, r6 + mov r5, #0 .L1908: - cmp r10, #9 + ldr r3, [r4, #3252] + mov r1, r10 + mov r0, #0 + blx r3 + ldr r3, [fp, #-112] + add r5, r5, #1 + add r10, r10, r6 + cmp r3, r5 + bhi .L1908 + cmp r9, #9 movne r5, #0 bne .L1909 - ldr r5, [r6, #3688] + ldr r5, [r4, #3688] mov r1, #1024 mov r0, r5 bl __memzero - ldr r3, .L1960+12 + ldr r3, .L1958+12 mov r1, #12 mov r2, #4 str r1, [r5, #4] @@ -13426,7 +13423,7 @@ FtlWriteToIDB: add r0, r5, r1 str r3, [r5] mov r3, #0 - ldrh r2, [r6, #10] + ldrh r2, [r4, #10] str r3, [r5, #12] strb r3, [r5, #16] strh r2, [r5, #18] @ movhi @@ -13437,27 +13434,24 @@ FtlWriteToIDB: bl js_hash str r0, [r5, #8] .L1909: - ldr r3, [fp, #-120] - mov r9, r8 - mul r3, r7, r3 - mov r7, #0 - str r3, [fp, #-136] - ldr r3, [fp, #-116] + ldr r3, [fp, #-112] + mov r10, r8 + mul r3, r6, r3 + mov r6, #0 str r3, [fp, #-128] .L1910: - ldr r3, [fp, #-136] - cmp r7, r3 + ldr r3, [fp, #-128] + cmp r6, r3 beq .L1917 - cmp r10, #9 - addne r3, r8, r7 - addeq r3, r9, #1 - lslne r3, r3, #2 - cmp r7, #0 - cmpeq r10, #9 - moveq r0, #1 + cmp r9, #9 + lslne r3, r6, #2 + addeq r3, r6, #1 + cmp r6, #0 + cmpeq r9, #9 str r3, [fp, #-104] movw r3, #61424 str r3, [fp, #-100] + moveq r0, #1 movne r0, #0 bne .L1913 ldr r3, [r4, #3264] @@ -13466,40 +13460,41 @@ FtlWriteToIDB: sub r3, fp, #104 ldr ip, [r4, #3256] mov r2, r5 - mov r1, r8 + ldr r1, [fp, #-120] mov r0, #0 blx ip ldr r2, [r4, #3264] - str r0, [fp, #-140] + str r0, [fp, #-132] ldrb r0, [r4, #22] @ zero_extendqisi2 blx r2 - ldr r3, [fp, #-140] + ldr r3, [fp, #-132] cmn r3, #1 bne .L1914 .L1917: ldrb r3, [r4, #14] @ zero_extendqisi2 - ldrh r10, [r4, #10] - ldr r7, [r4, #3688] - str r3, [fp, #-128] - ldr r3, [fp, #-108] - mul r9, r3, r10 - ldr r3, [r4, #3264] - cmp r3, #0 - moveq r8, #6 + ldr r2, [r4, #3264] + ldr r6, [r4, #3688] + str r3, [fp, #-120] + ldrh r3, [r4, #10] + cmp r2, #0 + moveq r9, #6 + mul r10, r7, r3 beq .L1916 - ldr r3, [r4, #3268] - cmp r3, #0 - moveq r8, #6 - movne r8, #9 + ldr r2, [r4, #3268] + cmp r2, #0 + moveq r9, #6 + movne r9, #9 .L1916: - ldr r3, [fp, #-120] + ldr r2, [fp, #-112] mov r5, #0 - mul r10, r10, r3 + mul r3, r3, r2 + str r3, [fp, #-128] .L1919: - cmp r5, r10 + ldr r3, [fp, #-128] + cmp r5, r3 beq .L1923 cmp r5, #0 - cmpeq r8, #9 + cmpeq r9, #9 moveq r0, #1 movne r0, #0 bne .L1920 @@ -13509,66 +13504,63 @@ FtlWriteToIDB: ldr r3, [r4, #3268] mov r0, #2 blx r3 - mov r2, r7 + mov r2, r6 ldr ip, [r4, #3260] - mov r1, r9 + mov r1, r10 sub r3, fp, #104 mov r0, #0 blx ip ldr r3, [r4, #3268] - ldr r0, [fp, #-128] + ldr r0, [fp, #-120] blx r3 ldr r3, [r4, #3264] ldrb r0, [r4, #22] @ zero_extendqisi2 blx r3 - ldr r3, [r7] - ldr r2, .L1960+12 + ldr r3, [r6] + ldr r2, .L1958+12 cmp r3, r2 beq .L1921 .L1923: ldr r0, [r4, #3688] + mov r3, r8 mov r5, #0 - ldr r3, [fp, #-116] .L1922: - mov r8, r3 + mov r9, r3 ldr r1, [r0, r5, lsl #2] - ldr r2, [r8] - lsl r7, r5, #2 + ldr r2, [r9] + lsl r6, r5, #2 add r3, r3, #4 cmp r1, r2 beq .L1925 mov r1, #512 bl __memzero - ldr r2, [r6, #3688] - ldr r1, [fp, #-108] + ldr r2, [r4, #3688] + mov r1, r7 str r5, [sp] - ldr r0, .L1960+16 - ldr r3, [r8] - ldr r2, [r2, r7] + ldr r0, .L1958+16 + ldr r3, [r9] + ldr r2, [r2, r6] bl sftl_printk - ldrh r1, [r6, #10] + ldrh r1, [r4, #10] mov r0, #0 - ldr r2, [fp, #-108] - ldr r3, [r6, #3252] - mul r1, r2, r1 + ldr r3, [r4, #3252] + mul r1, r7, r1 blx r3 .L1926: - ldr r3, [fp, #-108] - ldr r2, [fp, #-120] - add r3, r3, r2 - cmp r3, #7 - str r3, [fp, #-108] + ldr r3, [fp, #-112] + add r7, r7, r3 + cmp r7, #7 bls .L1928 - ldr r3, [fp, #-124] + ldr r3, [fp, #-116] cmp r3, #0 bne .L1929 .L1902: mvn r3, #0 - str r3, [fp, #-112] + str r3, [fp, #-108] .L1929: - ldr r5, .L1960 + ldr r5, .L1958 mov r3, #0 - ldr r4, [fp, #-112] + ldr r4, [fp, #-108] ldr r0, [r5, #3684] str r3, [r5, #3680] bl kfree @@ -13579,25 +13571,23 @@ FtlWriteToIDB: sub sp, fp, #40 ldmfd sp, {r4, r5, r6, r7, r8, r9, r10, fp, sp, pc} .L1913: - ldr ip, [r4, #3256] + ldr r1, [fp, #-120] sub r3, fp, #104 - ldr r2, [fp, #-128] - mov r1, r9 + ldr ip, [r4, #3256] + mov r2, r10 + add r1, r1, r6 blx ip cmn r0, #1 beq .L1917 - ldr r3, [fp, #-128] - add r3, r3, #2048 - str r3, [fp, #-128] + add r10, r10, #2048 .L1914: - add r7, r7, #1 - add r9, r9, #1 + add r6, r6, #1 b .L1910 .L1920: ldr ip, [r4, #3260] sub r3, fp, #104 - mov r2, r7 - add r1, r9, r5 + mov r2, r6 + add r1, r10, r5 blx ip cmn r0, #1 beq .L1923 @@ -13605,19 +13595,19 @@ FtlWriteToIDB: movw r3, #61424 cmp r2, r3 bne .L1923 - add r7, r7, #2048 + add r6, r6, #2048 .L1921: add r5, r5, #1 b .L1919 .L1925: - ldr r2, [fp, #-132] + ldr r2, [fp, #-124] add r5, r5, #1 cmp r5, r2 bne .L1922 - ldr r3, [fp, #-124] + ldr r3, [fp, #-116] add r3, r3, #1 cmp r3, #5 - str r3, [fp, #-124] + str r3, [fp, #-116] bls .L1926 b .L1929 .L1899: @@ -13625,61 +13615,53 @@ FtlWriteToIDB: bne .L1930 mov r0, #262144 bl ftl_malloc - str r0, [r6, #3684] + str r0, [r5, #3684] mov r0, #262144 bl ftl_malloc - ldr r3, [r6, #3684] - str r0, [r6, #3688] + ldr r3, [r5, #3684] + str r0, [r5, #3688] cmp r3, #0 cmpne r0, #0 beq .L1931 mov r2, #1 mov r1, #262144 mov r0, r3 - str r2, [r6, #3680] + str r2, [r5, #3680] bl __memzero .L1930: - ldr r3, [r6, #3680] + ldr r3, [r5, #3680] cmp r3, #0 - beq .L1959 - cmp r5, #63 - ldr r1, [r6, #3684] - ldrhi r6, .L1960+20 - rsbls r5, r5, #64 - subls r4, r4, r5 - addls r7, r7, r5, lsl #9 - movls r6, r1 - ldr r0, .L1960+24 - addhi r6, r5, r6 - mov r2, #262144 - addhi r6, r1, r6, lsl #9 + beq .L1957 + cmp r4, #63 + ldr r0, [r5, #3684] + ldrhi r3, .L1958+20 + rsbls r1, r4, #64 + subls r6, r6, r1 + movhi r1, r7 + addls r1, r7, r1, lsl #9 + addhi r3, r4, r3 + addhi r0, r0, r3, lsl #9 cmp r9, #576 - subcs r4, r4, r8 - subcs r4, r4, #444 - mov r3, r6 - subcs r4, r4, #2 - str r4, [sp] - bl sftl_printk - lsl r2, r4, #9 - mov r1, r7 - mov r0, r6 + subcs r6, r6, r8 + subcs r6, r6, #444 + subcs r6, r6, #2 + lsl r2, r6, #9 bl ftl_memcpy - b .L1959 + b .L1957 .L1931: - ldr r1, .L1960+28 - ldr r0, .L1960+32 + ldr r1, .L1958+24 + ldr r0, .L1958+28 bl sftl_printk b .L1930 -.L1961: +.L1959: .align 2 -.L1960: +.L1958: .word .LANCHOR0 .word -52655045 .word .LC130 .word 1179535694 .word .LC131 .word 8388544 - .word .LC133 .word .LANCHOR1+633 .word .LC132 .size FtlWriteToIDB, .-FtlWriteToIDB @@ -13718,7 +13700,7 @@ rk_sftl_vendor_dev_ops_register: mov ip, sp push {fp, ip, lr, pc} sub fp, ip, #4 - ldr r2, .L1966 + ldr r2, .L1964 ldr r3, [r2, #3692] cmp r3, #0 streq r0, [r2, #3692] @@ -13726,9 +13708,9 @@ rk_sftl_vendor_dev_ops_register: streq r1, [r2, #3696] mvnne r0, #0 ldmfd sp, {fp, sp, pc} -.L1967: +.L1965: .align 2 -.L1966: +.L1964: .word .LANCHOR0 .size rk_sftl_vendor_dev_ops_register, .-rk_sftl_vendor_dev_ops_register .align 2 @@ -13744,28 +13726,28 @@ rk_sftl_vendor_storage_init: push {r4, r5, r6, r7, r8, r9, fp, ip, lr, pc} sub fp, ip, #4 mov r0, #65536 - ldr r4, .L1977 + ldr r4, .L1975 bl ftl_malloc cmp r0, #0 str r0, [r4, #3700] mvneq r9, #11 - beq .L1968 - ldr r8, .L1977+4 + beq .L1966 + ldr r8, .L1975+4 mov r6, #0 mov r5, r6 mov r7, r6 -.L1972: +.L1970: ldr r3, [r4, #3692] mov r1, #128 ldr r2, [r4, #3700] lsl r0, r7, #7 blx r3 subs r9, r0, #0 - bne .L1970 + bne .L1968 ldr r2, [r4, #3700] ldr r3, [r2] cmp r3, r8 - bne .L1971 + bne .L1969 add r1, r2, #61440 ldr r3, [r2, #4] ldr r1, [r1, #4092] @@ -13777,26 +13759,26 @@ rk_sftl_vendor_storage_init: cmp r1, #0 movne r6, r7 movne r5, r3 -.L1971: +.L1969: add r7, r7, #1 cmp r7, #2 - bne .L1972 + bne .L1970 cmp r5, #0 - beq .L1973 + beq .L1971 ldr r3, [r4, #3692] mov r1, #128 lsl r0, r6, #7 blx r3 subs r9, r0, #0 - beq .L1968 -.L1970: + beq .L1966 +.L1968: ldr r0, [r4, #3700] mvn r9, #0 bl kfree mov r3, #0 str r3, [r4, #3700] - b .L1968 -.L1973: + b .L1966 +.L1971: mov r1, #65536 mov r0, r2 bl __memzero @@ -13806,15 +13788,15 @@ rk_sftl_vendor_storage_init: str r2, [r3, #4] str r8, [r3] str r2, [r1, #4092] - ldr r2, .L1977+8 + ldr r2, .L1975+8 strh r5, [r3, #12] @ movhi strh r2, [r3, #14] @ movhi -.L1968: +.L1966: mov r0, r9 ldmfd sp, {r4, r5, r6, r7, r8, r9, fp, sp, pc} -.L1978: +.L1976: .align 2 -.L1977: +.L1975: .word .LANCHOR0 .word 1380668996 .word -1032 @@ -13831,26 +13813,26 @@ rk_sftl_vendor_read: mov ip, sp push {r4, r5, fp, ip, lr, pc} sub fp, ip, #4 - ldr r3, .L1985 + ldr r3, .L1983 mov r4, r0 mov r0, r1 ldr ip, [r3, #3700] cmp ip, #0 ldrhne lr, [ip, #10] movne r3, #0 - bne .L1981 -.L1984: + bne .L1979 +.L1982: mvn r0, #0 ldmfd sp, {r4, r5, fp, sp, pc} -.L1982: +.L1980: add r3, r3, #1 -.L1981: +.L1979: cmp r3, lr - bcs .L1984 + bcs .L1982 add r1, ip, r3, lsl #3 ldrh r5, [r1, #16] cmp r5, r4 - bne .L1982 + bne .L1980 ldrh r4, [r1, #20] ldrh r1, [r1, #18] cmp r4, r2 @@ -13861,9 +13843,9 @@ rk_sftl_vendor_read: bl memcpy mov r0, r4 ldmfd sp, {r4, r5, fp, sp, pc} -.L1986: +.L1984: .align 2 -.L1985: +.L1983: .word .LANCHOR0 .size rk_sftl_vendor_read, .-rk_sftl_vendor_read .align 2 @@ -13880,23 +13862,23 @@ rk_sftl_vendor_write: sub fp, ip, #4 sub sp, sp, #24 mov ip, r1 - ldr r8, .L2006 + ldr r8, .L2004 mov r9, r2 ldr r4, [r8, #3700] cmp r4, #0 - beq .L2002 + beq .L2000 ldrh r2, [r4, #10] add r7, r9, #63 ldrh r3, [r4, #8] bic r7, r7, #63 mov r5, #0 str r3, [fp, #-44] -.L1989: +.L1987: cmp r5, r2 - bcc .L1997 + bcc .L1995 ldrh r1, [r4, #14] cmp r7, r1 - bhi .L2002 + bhi .L2000 add r3, r4, r2, lsl #3 uxth r7, r7 strh r0, [r3, #16] @ movhi @@ -13928,31 +13910,31 @@ rk_sftl_vendor_write: movhi r3, #0 strh r3, [r4, #8] @ movhi ldr r3, [r8, #3696] - b .L2005 -.L1997: + b .L2003 +.L1995: add r6, r4, r5, lsl #3 ldrh r3, [r6, #16] cmp r3, r0 str r3, [fp, #-48] - bne .L1990 + bne .L1988 ldrh r1, [r6, #20] add r3, r4, #1024 add r1, r1, #63 bic r1, r1, #63 cmp r9, r1 str r1, [fp, #-52] - bls .L1991 + bls .L1989 ldrh r1, [r4, #14] cmp r7, r1 - bhi .L2002 + bhi .L2000 ldrh r8, [r6, #18] sub r2, r2, #1 str r2, [fp, #-56] -.L1992: +.L1990: ldr r2, [fp, #-56] add r6, r6, #8 cmp r5, r2 - bcc .L1993 + bcc .L1991 ldrh r2, [fp, #-48] add r5, r4, r5, lsl #3 uxth r8, r8 @@ -13971,7 +13953,7 @@ rk_sftl_vendor_write: strh r8, [r4, #12] @ movhi add r7, r7, r3 strh r7, [r4, #14] @ movhi -.L1994: +.L1992: ldr r3, [r4, #4] add r2, r4, #61440 add r3, r3, #1 @@ -13983,19 +13965,19 @@ rk_sftl_vendor_write: cmp r3, #1 movhi r3, #0 strh r3, [r4, #8] @ movhi - ldr r3, .L2006 + ldr r3, .L2004 ldr r3, [r3, #3696] -.L2005: +.L2003: ldr r0, [fp, #-44] mov r2, r4 mov r1, #128 lsl r0, r0, #7 blx r3 mov r0, #0 -.L1987: +.L1985: sub sp, fp, #40 ldmfd sp, {r4, r5, r6, r7, r8, r9, r10, fp, sp, pc} -.L1993: +.L1991: ldrh r10, [r6, #20] add r0, r3, r8 ldrh r2, [r6, #16] @@ -14014,8 +13996,8 @@ rk_sftl_vendor_write: bl memcpy ldr ip, [fp, #-64] ldr r3, [fp, #-60] - b .L1992 -.L1991: + b .L1990 +.L1989: add r5, r4, r5, lsl #3 mov r2, r9 mov r1, ip @@ -14023,16 +14005,16 @@ rk_sftl_vendor_write: add r0, r3, r0 bl memcpy strh r9, [r6, #20] @ movhi - b .L1994 -.L1990: + b .L1992 +.L1988: add r5, r5, #1 - b .L1989 -.L2002: - mvn r0, #0 b .L1987 -.L2007: +.L2000: + mvn r0, #0 + b .L1985 +.L2005: .align 2 -.L2006: +.L2004: .word .LANCHOR0 .size rk_sftl_vendor_write, .-rk_sftl_vendor_write .align 2 @@ -14053,18 +14035,18 @@ rk_sftl_vendor_storage_ioctl: bl ftl_malloc subs r5, r0, #0 mvneq r4, #0 - beq .L2008 - ldr r3, .L2036 + beq .L2006 + ldr r3, .L2034 cmp r6, r3 - beq .L2011 + beq .L2009 add r3, r3, #1 cmp r6, r3 - beq .L2012 -.L2031: + beq .L2010 +.L2029: mvn r4, #13 - b .L2010 -.L2011: - ldr r6, .L2036+4 + b .L2008 +.L2009: + ldr r6, .L2034+4 mov r3, sp and r3, r3, r6 ldr r3, [r3, #72] @@ -14075,43 +14057,43 @@ rk_sftl_vendor_storage_ioctl: .arm .syntax unified cmp r3, #0 - bne .L2013 + bne .L2011 mov r2, #8 mov r1, r4 bl arm_copy_from_user cmp r0, #0 - beq .L2032 -.L2014: + beq .L2030 +.L2012: mov r2, r4 mov r1, #256 -.L2035: - ldr r0, .L2036+8 +.L2033: + ldr r0, .L2034+8 bl sftl_printk - b .L2031 -.L2013: + b .L2029 +.L2011: mov r1, #8 bl __memzero - b .L2014 -.L2032: + b .L2012 +.L2030: ldr r2, [r5] - ldr r3, .L2036+12 + ldr r3, .L2034+12 cmp r2, r3 - beq .L2016 -.L2017: + beq .L2014 +.L2015: mvn r4, #0 -.L2010: +.L2008: mov r0, r5 bl kfree -.L2008: +.L2006: mov r0, r4 ldmfd sp, {r4, r5, r6, fp, sp, pc} -.L2016: +.L2014: ldrh r2, [r5, #6] add r1, r5, #8 ldrh r0, [r5, #4] bl rk_sftl_vendor_read cmn r0, #1 - beq .L2017 + beq .L2015 mov r3, sp uxth r2, r0 and r6, r6, r3 @@ -14125,15 +14107,15 @@ rk_sftl_vendor_storage_ioctl: .arm .syntax unified cmp r3, #0 - bne .L2031 + bne .L2029 mov r0, r4 mov r1, r5 bl arm_copy_to_user subs r4, r0, #0 - beq .L2010 - b .L2031 -.L2012: - ldr r6, .L2036+4 + beq .L2008 + b .L2029 +.L2010: + ldr r6, .L2034+4 mov r3, sp and r3, r3, r6 ldr r3, [r3, #72] @@ -14144,29 +14126,29 @@ rk_sftl_vendor_storage_ioctl: .arm .syntax unified cmp r3, #0 - bne .L2019 + bne .L2017 mov r2, #8 mov r1, r4 bl arm_copy_from_user cmp r0, #0 - beq .L2033 -.L2020: + beq .L2031 +.L2018: mov r2, r4 mov r1, #276 - b .L2035 -.L2019: + b .L2033 +.L2017: mov r1, #8 bl __memzero - b .L2020 -.L2033: + b .L2018 +.L2031: ldr r2, [r5] - ldr r3, .L2036+12 + ldr r3, .L2034+12 cmp r2, r3 - bne .L2017 + bne .L2015 ldrh r2, [r5, #6] movw r3, #4087 cmp r2, r3 - bhi .L2017 + bhi .L2015 mov r3, sp add r2, r2, #8 and r6, r6, r3 @@ -14178,34 +14160,34 @@ rk_sftl_vendor_storage_ioctl: .arm .syntax unified cmp r3, #0 - bne .L2022 + bne .L2020 mov r1, r4 mov r0, r5 bl arm_copy_from_user cmp r0, #0 - beq .L2034 -.L2023: + beq .L2032 +.L2021: mov r2, r4 movw r1, #283 - b .L2035 -.L2022: + b .L2033 +.L2020: mov r1, r2 mov r0, r5 bl __memzero - b .L2023 -.L2034: + b .L2021 +.L2032: ldrh r2, [r5, #6] add r1, r5, #8 ldrh r0, [r5, #4] bl rk_sftl_vendor_write mov r4, r0 - b .L2010 -.L2037: + b .L2008 +.L2035: .align 2 -.L2036: +.L2034: .word 1074034177 .word -8192 - .word .LC134 + .word .LC133 .word 1448232273 .size rk_sftl_vendor_storage_ioctl, .-rk_sftl_vendor_storage_ioctl .align 2 @@ -14220,12 +14202,12 @@ rk_sftl_vendor_register: mov ip, sp push {fp, ip, lr, pc} sub fp, ip, #4 - ldr r0, .L2039 + ldr r0, .L2037 bl misc_register ldmfd sp, {fp, sp, pc} -.L2040: +.L2038: .align 2 -.L2039: +.L2037: .word .LANCHOR2+12 .size rk_sftl_vendor_register, .-rk_sftl_vendor_register .global g_nand_ops @@ -14408,9 +14390,9 @@ __func__.4469: .size __func__.4644, 19 __func__.4644: .ascii "get_new_active_ppa\000" - .type __func__.15107, %object - .size __func__.15107, 17 -__func__.15107: + .type __func__.15106, %object + .size __func__.15106, 17 +__func__.15106: .ascii "FlashEraseBlocks\000" .type __func__.4077, %object .size __func__.4077, 26 @@ -14428,9 +14410,9 @@ __func__.3809: .size __func__.4490, 18 __func__.4490: .ascii "SupperBlkListInit\000" - .type __func__.15064, %object - .size __func__.15064, 15 -__func__.15064: + .type __func__.15063, %object + .size __func__.15063, 15 +__func__.15063: .ascii "FlashReadPages\000" .type __func__.4254, %object .size __func__.4254, 14 @@ -14440,9 +14422,9 @@ __func__.4254: .size __func__.3852, 11 __func__.3852: .ascii "FtlLoadBbt\000" - .type __func__.15083, %object - .size __func__.15083, 15 -__func__.15083: + .type __func__.15082, %object + .size __func__.15082, 15 +__func__.15082: .ascii "FlashProgPages\000" .type __func__.4616, %object .size __func__.4616, 25 @@ -14524,9 +14506,9 @@ __func__.4310: .size __func__.4332, 18 __func__.4332: .ascii "FtlMapTblRecovery\000" - .type __func__.15231, %object - .size __func__.15231, 14 -__func__.15231: + .type __func__.15234, %object + .size __func__.15234, 14 +__func__.15234: .ascii "FtlWriteToIDB\000" .space 1 .type rk_sftl_vendor_storage_fops, %object @@ -14556,7 +14538,7 @@ power_up_flag: .size rkflash_vender_storage_dev, 40 rkflash_vender_storage_dev: .word 255 - .word .LC135 + .word .LC134 .word rk_sftl_vendor_storage_fops .space 28 .bss @@ -15193,7 +15175,7 @@ gp_last_act_superblock: .space 4 .section .rodata.str1.1,"aMS",%progbits,1 .LC0: - .ascii "SFTL version: 5.0.51 20191028\000" + .ascii "SFTL version: 5.0.52 20191125\000" .LC1: .ascii "\012%s\012\000" .LC2: @@ -15466,8 +15448,6 @@ gp_last_act_superblock: .LC132: .ascii "%s idb buffer alloc fail\012\000" .LC133: - .ascii "%p %x %p %x\012\000" -.LC134: .ascii "copy_from_user error %d %p %p\012\000" -.LC135: +.LC134: .ascii "vendor_storage\000" diff --git a/drivers/rkflash/rk_sftl_arm_v7_thumb.S b/drivers/rkflash/rk_sftl_arm_v7_thumb.S index 9bfdc43f0635..e142b1ebe9d9 100644 --- a/drivers/rkflash/rk_sftl_arm_v7_thumb.S +++ b/drivers/rkflash/rk_sftl_arm_v7_thumb.S @@ -1,7 +1,7 @@ /* SPDX-License-Identifier: GPL-2.0 */ /* Copyright (c) 2018 Rockchip Electronics Co. Ltd. - * date: 2019-10-28 + * date: 2019-11-25 */ .arch armv7-a .eabi_attribute 20, 1 @@ -13230,161 +13230,150 @@ FtlWriteToIDB: @ frame_needed = 0, uses_anonymous_args = 0 push {r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} - adds r7, r1, r0 - add r8, r7, #-1 + add r8, r1, r0 + add r9, r8, #-1 .pad #108 sub sp, sp, #108 - cmp r8, #63 + cmp r9, #63 mov r4, r0 mov r6, r1 - mov r9, r2 - ldr r5, .L2008 + mov r7, r2 + ldr r5, .L2005 bls .L1939 cmp r0, #576 bcc .L1940 .L1939: ldr r3, [r5, #3680] cbnz r3, .L1941 -.L2007: +.L2004: movs r4, #0 b .L1938 .L1941: - ldr r3, [r5, #3684] - ldr r2, [r3] - str r3, [sp, #12] - ldr r3, .L2008+4 + ldr fp, [r5, #3684] + ldr r3, .L2005+4 + ldr r2, [fp] cmp r2, r3 bne .L1943 - ldr r3, [sp, #12] - movs r2, #0 ldrh r1, [r5, #10] - add r0, r3, #260096 + add r0, fp, #260096 + movs r2, #0 movw r3, #65023 .L1947: ldr r4, [r0, #-4]! cbnz r4, .L1944 - ldr r4, [sp, #12] - subs r3, r3, #1 - ldr r4, [r4, r2, lsl #2] + ldr r4, [fp, r2, lsl #2] adds r2, r2, #1 cmp r2, #4096 + add r3, r3, #-1 it hi movhi r2, #0 cmp r3, #4096 str r4, [r0, #2048] bne .L1947 mov r3, #512 - b .L2004 + b .L2002 .L1944: adds r3, r3, #127 lsrs r3, r3, #7 -.L2004: +.L2002: + str r3, [sp, #12] lsls r1, r1, #2 - str r3, [sp, #8] - ldr r0, [sp, #8] + ldr r3, [sp, #12] uxth r1, r1 - ldr r4, .L2008 + ldr r4, .L2005 + adds r0, r3, #4 bl __aeabi_uidiv adds r3, r0, #1 - ldr r1, [sp, #8] + ldr r1, [sp, #12] mov r2, r3 - ldr r0, .L2008+8 + ldr r0, .L2005+8 str r3, [sp, #16] bl sftl_printk - ldr r3, [sp, #8] + ldr r3, [sp, #12] lsls r3, r3, #7 str r3, [sp, #28] movs r3, #0 - mov fp, r3 + mov r5, r3 str r3, [sp, #20] .L1969: mov r1, #512 ldr r0, [r4, #3688] bl __memzero - ldrh r7, [r4, #10] + ldrh r6, [r4, #10] + mul r3, r5, r6 + str r3, [sp, #24] ldr r3, [r4, #3264] - mul r9, fp, r7 cmp r3, #0 beq .L1977 ldr r3, [r4, #3268] cmp r3, #0 ite eq - moveq r3, #6 - movne r3, #9 -.L2005: - str r3, [sp, #24] - mov r1, r9 - ldr r3, .L2008 + moveq r9, #6 + movne r9, #9 +.L1948: + ldr r8, [sp, #24] + movs r7, #0 +.L1949: + ldr r3, [r4, #3252] + mov r1, r8 movs r0, #0 - ldr r3, [r3, #3252] + adds r7, r7, #1 blx r3 ldr r3, [sp, #16] - cmp r3, #1 - beq .L1949 - ldr r3, .L2008 - add r1, r7, r9 - movs r0, #0 - ldr r3, [r3, #3252] - blx r3 -.L1949: - ldr r3, [sp, #24] - cmp r3, #9 + add r8, r8, r6 + cmp r3, r7 + bhi .L1949 + cmp r9, #9 bne .L1979 - ldr r3, .L2008 + ldr r7, [r4, #3688] mov r1, #1024 - ldr r5, [r3, #3688] - mov r0, r5 + mov r0, r7 bl __memzero - movs r2, #4 - ldr r3, .L2008+12 - strb r2, [r5, #17] + ldr r3, .L2005+12 movs r1, #12 - ldr r2, .L2008 - adds r0, r5, r1 - str r3, [r5] + movs r2, #4 + str r1, [r7, #4] + strb r2, [r7, #17] + adds r0, r7, r1 + str r3, [r7] movs r3, #0 - str r1, [r5, #4] - ldrh r2, [r2, #10] - str r3, [r5, #12] - strb r3, [r5, #16] - strh r2, [r5, #18] @ movhi + ldrh r2, [r4, #10] + str r3, [r7, #12] + strb r3, [r7, #16] + strh r2, [r7, #18] @ movhi movs r2, #16 - strb r3, [r5, #20] - strb r2, [r5, #21] - strh r3, [r5, #22] @ movhi + strb r3, [r7, #20] + strb r2, [r7, #21] + strh r3, [r7, #22] @ movhi bl js_hash - str r0, [r5, #8] + str r0, [r7, #8] .L1950: ldr r3, [sp, #16] - mov r10, r9 + mov r10, fp mov r8, #0 - muls r3, r7, r3 - ldr r7, [sp, #12] + muls r3, r6, r3 str r3, [sp, #32] .L1951: ldr r3, [sp, #32] cmp r8, r3 beq .L1958 - ldr r3, [sp, #24] - cmp r3, #9 - itet ne - addne r3, r9, r8 - addeq r3, r10, #1 - lslne r3, r3, #2 + cmp r9, #9 + ite ne + lslne r3, r8, #2 + addeq r3, r8, #1 str r3, [sp, #40] movw r3, #61424 str r3, [sp, #44] cmp r8, #0 bne .L1954 - ldr r3, [sp, #24] - cmp r3, #9 + cmp r9, #9 bne .L1954 ldr r3, [r4, #3264] movs r0, #70 blx r3 - mov r2, r5 + mov r2, r7 add r3, sp, #40 - mov r1, r9 + ldr r1, [sp, #24] mov r0, r8 ldr r6, [r4, #3256] blx r6 @@ -13401,20 +13390,22 @@ FtlWriteToIDB: ldr r8, [r4, #3688] str r3, [sp, #24] ldrh r3, [r4, #10] - mul r10, fp, r3 + mul r9, r5, r3 cmp r2, #0 bne .L1956 - mov r9, #6 + mov r10, #6 .L1957: ldr r2, [sp, #16] - movs r7, #0 - mul r5, r3, r2 + movs r6, #0 + muls r3, r2, r3 + str r3, [sp, #32] .L1960: - cmp r7, r5 + ldr r3, [sp, #32] + cmp r6, r3 beq .L1964 - cmp r7, #0 + cmp r6, #0 bne .L1961 - cmp r9, #9 + cmp r10, #9 bne .L1961 ldr r3, [r4, #3264] movs r0, #70 @@ -13423,11 +13414,11 @@ FtlWriteToIDB: movs r0, #2 blx r3 mov r2, r8 - mov r1, r10 + mov r1, r9 add r3, sp, #40 - mov r0, r7 - ldr r6, [r4, #3260] - blx r6 + mov r0, r6 + ldr r7, [r4, #3260] + blx r7 ldr r3, [r4, #3268] ldr r0, [sp, #24] blx r3 @@ -13435,51 +13426,49 @@ FtlWriteToIDB: ldrb r0, [r4, #22] @ zero_extendqisi2 blx r3 ldr r3, [r8] - ldr r2, .L2008+12 + ldr r2, .L2005+12 cmp r3, r2 beq .L1962 .L1964: ldr r0, [r4, #3688] - movs r5, #0 - ldr r1, [sp, #12] + mov r1, fp + movs r6, #0 .L1963: mov r8, r1 - ldr r2, [r0, r5, lsl #2] + ldr r2, [r0, r6, lsl #2] ldr r3, [r8] - lsls r7, r5, #2 + lsls r7, r6, #2 adds r1, r1, #4 cmp r2, r3 beq .L1966 mov r1, #512 bl __memzero - ldr r3, .L2008 - mov r1, fp - ldr r0, .L2008+16 - ldr r2, [r3, #3688] - str r5, [sp] + ldr r2, [r4, #3688] + mov r1, r5 + str r6, [sp] + ldr r0, .L2005+16 ldr r3, [r8] ldr r2, [r2, r7] bl sftl_printk - ldr r3, .L2008 + ldrh r1, [r4, #10] movs r0, #0 - ldrh r1, [r3, #10] - ldr r3, [r3, #3252] - mul r1, fp, r1 + ldr r3, [r4, #3252] + muls r1, r5, r1 blx r3 .L1967: ldr r3, [sp, #16] - add fp, fp, r3 - cmp fp, #7 + add r5, r5, r3 + cmp r5, #7 bls .L1969 ldr r3, [sp, #20] cbnz r3, .L1970 .L1943: mov r3, #-1 - str r3, [sp, #8] + str r3, [sp, #12] .L1970: - ldr r5, .L2008 + ldr r5, .L2005 movs r3, #0 - ldr r4, [sp, #8] + ldr r4, [sp, #12] ldr r0, [r5, #3684] str r3, [r5, #3680] bl kfree @@ -13491,39 +13480,39 @@ FtlWriteToIDB: @ sp needed pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} .L1977: - movs r3, #6 - b .L2005 + mov r9, #6 + b .L1948 .L1979: - movs r5, #0 + movs r7, #0 b .L1950 .L1954: + ldr r1, [sp, #24] add r3, sp, #40 - mov r2, r7 - mov r1, r10 + mov r2, r10 movs r0, #0 ldr r6, [r4, #3256] + add r1, r1, r8 blx r6 adds r0, r0, #1 beq .L1958 - add r7, r7, #2048 + add r10, r10, #2048 .L1955: add r8, r8, #1 - add r10, r10, #1 b .L1951 .L1956: ldr r2, [r4, #3268] cmp r2, #0 ite eq - moveq r9, #6 - movne r9, #9 + moveq r10, #6 + movne r10, #9 b .L1957 .L1961: add r3, sp, #40 mov r2, r8 - add r1, r10, r7 + add r1, r9, r6 movs r0, #0 - ldr r6, [r4, #3260] - blx r6 + ldr r7, [r4, #3260] + blx r7 adds r0, r0, #1 beq .L1964 ldr r2, [sp, #44] @@ -13532,12 +13521,12 @@ FtlWriteToIDB: bne .L1964 add r8, r8, #2048 .L1962: - adds r7, r7, #1 + adds r6, r6, #1 b .L1960 .L1966: ldr r3, [sp, #28] - adds r5, r5, #1 - cmp r5, r3 + adds r6, r6, #1 + cmp r6, r3 bne .L1963 ldr r3, [sp, #20] adds r3, r3, #1 @@ -13545,9 +13534,9 @@ FtlWriteToIDB: str r3, [sp, #20] bls .L1967 b .L1970 -.L2009: +.L2006: .align 2 -.L2008: +.L2005: .word .LANCHOR0 .word -52655045 .word .LC130 @@ -13573,44 +13562,34 @@ FtlWriteToIDB: .L1971: ldr r3, [r5, #3680] cmp r3, #0 - beq .L2007 + beq .L2004 cmp r4, #63 - ldr r1, [r5, #3684] - iteee hi - ldrhi r5, .L2010 - rsbls r4, r4, #64 - subls r6, r6, r4 - addls r9, r9, r4, lsl #9 - it ls - movls r5, r1 - ldr r0, .L2010+4 - it hi - addhi r5, r5, r4 - mov r2, #262144 - it hi - addhi r5, r1, r5, lsl #9 - cmp r8, #576 + ldr r0, [r5, #3684] + iteet hi + ldrhi r3, .L2007 + rsbls r1, r4, #64 + subls r6, r6, r1 + movhi r1, r7 + itee ls + addls r1, r7, r1, lsl #9 + addhi r3, r3, r4 + addhi r0, r0, r3, lsl #9 + cmp r9, #576 itt cs - subcs r6, r6, r7 + subcs r6, r6, r8 subcs r6, r6, #446 - mov r3, r5 - str r6, [sp] - bl sftl_printk lsls r2, r6, #9 - mov r1, r9 - mov r0, r5 bl ftl_memcpy - b .L2007 + b .L2004 .L1972: - ldr r1, .L2010+8 - ldr r0, .L2010+12 + ldr r1, .L2007+4 + ldr r0, .L2007+8 bl sftl_printk b .L1971 -.L2011: +.L2008: .align 2 -.L2010: +.L2007: .word 8388544 - .word .LC133 .word .LANCHOR1+633 .word .LC132 .fnend @@ -13652,19 +13631,19 @@ rk_sftl_vendor_dev_ops_register: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r2, .L2016 + ldr r2, .L2013 ldr r3, [r2, #3692] - cbnz r3, .L2015 + cbnz r3, .L2012 str r0, [r2, #3692] mov r0, r3 str r1, [r2, #3696] bx lr -.L2015: +.L2012: mov r0, #-1 bx lr -.L2017: +.L2014: .align 2 -.L2016: +.L2013: .word .LANCHOR0 .fnend .size rk_sftl_vendor_dev_ops_register, .-rk_sftl_vendor_dev_ops_register @@ -13682,55 +13661,55 @@ rk_sftl_vendor_storage_init: push {r3, r4, r5, r6, r7, r8, r9, lr} .save {r3, r4, r5, r6, r7, r8, r9, lr} mov r0, #65536 - ldr r4, .L2026 + ldr r4, .L2023 bl ftl_malloc str r0, [r4, #3700] cmp r0, #0 - beq .L2024 - ldr r8, .L2026+4 + beq .L2021 + ldr r8, .L2023+4 mov r9, #0 mov r7, r9 mov r6, r9 -.L2022: +.L2019: ldr r3, [r4, #3692] movs r1, #128 ldr r2, [r4, #3700] lsls r0, r6, #7 blx r3 mov r5, r0 - cbnz r0, .L2020 + cbnz r0, .L2017 ldr r2, [r4, #3700] ldr r3, [r2] cmp r3, r8 - bne .L2021 + bne .L2018 movw r3, #65532 ldr r1, [r2, r3] ldr r3, [r2, #4] cmp r1, r3 - bne .L2021 + bne .L2018 cmp r1, r7 itt hi movhi r9, r6 movhi r7, r1 -.L2021: +.L2018: adds r6, r6, #1 cmp r6, #2 - bne .L2022 - cbz r7, .L2023 + bne .L2019 + cbz r7, .L2020 ldr r3, [r4, #3692] movs r1, #128 lsl r0, r9, #7 blx r3 mov r5, r0 - cbz r0, .L2018 -.L2020: + cbz r0, .L2015 +.L2017: ldr r0, [r4, #3700] mov r5, #-1 bl kfree movs r3, #0 str r3, [r4, #3700] - b .L2018 -.L2023: + b .L2015 +.L2020: mov r1, #65536 mov r0, r2 bl __memzero @@ -13743,15 +13722,15 @@ rk_sftl_vendor_storage_init: movw r2, #64504 strh r7, [r3, #12] @ movhi strh r2, [r3, #14] @ movhi -.L2018: +.L2015: mov r0, r5 pop {r3, r4, r5, r6, r7, r8, r9, pc} -.L2024: +.L2021: mvn r5, #11 - b .L2018 -.L2027: + b .L2015 +.L2024: .align 2 -.L2026: +.L2023: .word .LANCHOR0 .word 1380668996 .fnend @@ -13770,23 +13749,23 @@ rk_sftl_vendor_read: push {r3, r4, r5, r6, r7, lr} .save {r3, r4, r5, r6, r7, lr} mov r7, r0 - ldr r3, .L2034 + ldr r3, .L2031 mov r0, r1 ldr r5, [r3, #3700] - cbz r5, .L2033 + cbz r5, .L2030 ldrh r6, [r5, #10] movs r3, #0 -.L2030: +.L2027: cmp r3, r6 - bcc .L2032 -.L2033: + bcc .L2029 +.L2030: mov r0, #-1 pop {r3, r4, r5, r6, r7, pc} -.L2032: +.L2029: add r1, r5, r3, lsl #3 ldrh r4, [r1, #16] cmp r4, r7 - bne .L2031 + bne .L2028 ldrh r4, [r1, #20] ldrh r1, [r1, #18] cmp r4, r2 @@ -13798,12 +13777,12 @@ rk_sftl_vendor_read: bl memcpy mov r0, r4 pop {r3, r4, r5, r6, r7, pc} -.L2031: +.L2028: adds r3, r3, #1 - b .L2030 -.L2035: + b .L2027 +.L2032: .align 2 -.L2034: +.L2031: .word .LANCHOR0 .fnend .size rk_sftl_vendor_read, .-rk_sftl_vendor_read @@ -13821,26 +13800,26 @@ rk_sftl_vendor_write: push {r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} mov r8, r2 - ldr r2, .L2055 + ldr r2, .L2052 .pad #28 sub sp, sp, #28 mov r3, r1 ldr r4, [r2, #3700] mov r9, r2 cmp r4, #0 - beq .L2051 + beq .L2048 ldrh r2, [r4, #10] add r6, r8, #63 ldrh r1, [r4, #8] bic r6, r6, #63 movs r7, #0 str r1, [sp, #4] -.L2038: +.L2035: cmp r7, r2 - bcc .L2046 + bcc .L2043 ldrh r1, [r4, #14] cmp r6, r1 - bhi .L2051 + bhi .L2048 add r2, r4, r2, lsl #3 uxth r6, r6 strh r0, [r2, #16] @ movhi @@ -13873,31 +13852,31 @@ rk_sftl_vendor_write: movhi r3, #0 strh r3, [r4, #8] @ movhi ldr r3, [r9, #3696] - b .L2054 -.L2046: + b .L2051 +.L2043: add r5, r4, r7, lsl #3 ldrh r1, [r5, #16] cmp r1, r0 str r1, [sp, #8] - bne .L2039 + bne .L2036 ldrh r1, [r5, #20] add fp, r4, #1024 adds r1, r1, #63 bic r1, r1, #63 cmp r8, r1 str r1, [sp, #12] - bls .L2040 + bls .L2037 ldrh r1, [r4, #14] cmp r6, r1 - bhi .L2051 + bhi .L2048 ldrh r10, [r5, #18] subs r2, r2, #1 str r2, [sp, #16] -.L2041: +.L2038: ldr r2, [sp, #16] adds r5, r5, #8 cmp r7, r2 - bcc .L2042 + bcc .L2039 ldrh r2, [sp, #8] add r7, r4, r7, lsl #3 uxth r5, r10 @@ -13916,7 +13895,7 @@ rk_sftl_vendor_write: strh r5, [r4, #12] @ movhi add r6, r6, r3 strh r6, [r4, #14] @ movhi -.L2043: +.L2040: ldr r3, [r4, #4] movw r2, #65532 adds r3, r3, #1 @@ -13929,20 +13908,20 @@ rk_sftl_vendor_write: it hi movhi r3, #0 strh r3, [r4, #8] @ movhi - ldr r3, .L2055 + ldr r3, .L2052 ldr r3, [r3, #3696] -.L2054: +.L2051: ldr r0, [sp, #4] mov r2, r4 movs r1, #128 lsls r0, r0, #7 blx r3 movs r0, #0 -.L2036: +.L2033: add sp, sp, #28 @ sp needed pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L2042: +.L2039: ldrh r9, [r5, #20] add r0, fp, r10 ldrh r2, [r5, #16] @@ -13959,24 +13938,24 @@ rk_sftl_vendor_write: add r10, r10, r9 bl memcpy ldr r3, [sp, #20] - b .L2041 -.L2040: + b .L2038 +.L2037: ldrh r0, [r5, #18] mov r2, r8 mov r1, r3 add r0, r0, fp bl memcpy strh r8, [r5, #20] @ movhi - b .L2043 -.L2039: + b .L2040 +.L2036: adds r7, r7, #1 - b .L2038 -.L2051: + b .L2035 +.L2048: mov r0, #-1 - b .L2036 -.L2056: + b .L2033 +.L2053: .align 2 -.L2055: +.L2052: .word .LANCHOR0 .fnend .size rk_sftl_vendor_write, .-rk_sftl_vendor_write @@ -13999,18 +13978,18 @@ rk_sftl_vendor_storage_ioctl: bl ftl_malloc mov r5, r0 cmp r0, #0 - beq .L2074 - ldr r3, .L2085 + beq .L2071 + ldr r3, .L2082 cmp r6, r3 - beq .L2060 + beq .L2057 adds r3, r3, #1 cmp r6, r3 - beq .L2061 -.L2080: + beq .L2058 +.L2077: mvn r4, #13 - b .L2059 -.L2060: - ldr r6, .L2085+4 + b .L2056 +.L2057: + ldr r6, .L2082+4 mov r3, sp ands r3, r3, r6 ldr r3, [r3, #72] @@ -14020,42 +13999,42 @@ rk_sftl_vendor_storage_ioctl: @ 0 "" 2 .thumb .syntax unified - cbnz r3, .L2062 + cbnz r3, .L2059 movs r2, #8 mov r1, r4 bl arm_copy_from_user - cbz r0, .L2081 -.L2063: + cbz r0, .L2078 +.L2060: mov r2, r4 mov r1, #256 -.L2084: - ldr r0, .L2085+8 +.L2081: + ldr r0, .L2082+8 bl sftl_printk - b .L2080 -.L2062: + b .L2077 +.L2059: movs r1, #8 bl __memzero - b .L2063 -.L2081: + b .L2060 +.L2078: ldr r2, [r5] - ldr r3, .L2085+12 + ldr r3, .L2082+12 cmp r2, r3 - beq .L2065 -.L2066: + beq .L2062 +.L2063: mov r4, #-1 -.L2059: +.L2056: mov r0, r5 bl kfree -.L2057: +.L2054: mov r0, r4 pop {r4, r5, r6, pc} -.L2065: +.L2062: ldrh r2, [r5, #6] add r1, r5, #8 ldrh r0, [r5, #4] bl rk_sftl_vendor_read adds r3, r0, #1 - beq .L2066 + beq .L2063 mov r3, sp uxth r2, r0 ands r6, r6, r3 @@ -14069,17 +14048,17 @@ rk_sftl_vendor_storage_ioctl: .thumb .syntax unified cmp r3, #0 - bne .L2080 + bne .L2077 mov r1, r5 mov r0, r4 bl arm_copy_to_user cmp r0, #0 - bne .L2080 -.L2076: + bne .L2077 +.L2073: mov r4, r0 - b .L2059 -.L2061: - ldr r6, .L2085+4 + b .L2056 +.L2058: + ldr r6, .L2082+4 mov r3, sp ands r3, r3, r6 ldr r3, [r3, #72] @@ -14089,28 +14068,28 @@ rk_sftl_vendor_storage_ioctl: @ 0 "" 2 .thumb .syntax unified - cbnz r3, .L2068 + cbnz r3, .L2065 movs r2, #8 mov r1, r4 bl arm_copy_from_user - cbz r0, .L2082 -.L2069: + cbz r0, .L2079 +.L2066: mov r2, r4 mov r1, #276 - b .L2084 -.L2068: + b .L2081 +.L2065: movs r1, #8 bl __memzero - b .L2069 -.L2082: + b .L2066 +.L2079: ldr r2, [r5] - ldr r3, .L2085+12 + ldr r3, .L2082+12 cmp r2, r3 - bne .L2066 + bne .L2063 ldrh r2, [r5, #6] movw r3, #4087 cmp r2, r3 - bhi .L2066 + bhi .L2063 mov r3, sp adds r2, r2, #8 ands r6, r6, r3 @@ -14121,35 +14100,35 @@ rk_sftl_vendor_storage_ioctl: @ 0 "" 2 .thumb .syntax unified - cbnz r3, .L2071 + cbnz r3, .L2068 mov r1, r4 mov r0, r5 bl arm_copy_from_user - cbz r0, .L2083 -.L2072: + cbz r0, .L2080 +.L2069: mov r2, r4 movw r1, #283 - b .L2084 -.L2071: + b .L2081 +.L2068: mov r1, r2 mov r0, r5 bl __memzero - b .L2072 -.L2083: + b .L2069 +.L2080: ldrh r2, [r5, #6] add r1, r5, #8 ldrh r0, [r5, #4] bl rk_sftl_vendor_write - b .L2076 -.L2074: + b .L2073 +.L2071: mov r4, #-1 - b .L2057 -.L2086: + b .L2054 +.L2083: .align 2 -.L2085: +.L2082: .word 1074034177 .word -8192 - .word .LC134 + .word .LC133 .word 1448232273 .fnend .size rk_sftl_vendor_storage_ioctl, .-rk_sftl_vendor_storage_ioctl @@ -14165,11 +14144,11 @@ rk_sftl_vendor_register: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r0, .L2088 + ldr r0, .L2085 b misc_register -.L2089: +.L2086: .align 2 -.L2088: +.L2085: .word .LANCHOR2+12 .fnend .size rk_sftl_vendor_register, .-rk_sftl_vendor_register @@ -14353,9 +14332,9 @@ __func__.7208: .size __func__.7383, 19 __func__.7383: .ascii "get_new_active_ppa\000" - .type __func__.17846, %object - .size __func__.17846, 17 -__func__.17846: + .type __func__.17845, %object + .size __func__.17845, 17 +__func__.17845: .ascii "FlashEraseBlocks\000" .type __func__.6816, %object .size __func__.6816, 26 @@ -14373,9 +14352,9 @@ __func__.6548: .size __func__.7229, 18 __func__.7229: .ascii "SupperBlkListInit\000" - .type __func__.17803, %object - .size __func__.17803, 15 -__func__.17803: + .type __func__.17802, %object + .size __func__.17802, 15 +__func__.17802: .ascii "FlashReadPages\000" .type __func__.6993, %object .size __func__.6993, 14 @@ -14385,9 +14364,9 @@ __func__.6993: .size __func__.6591, 11 __func__.6591: .ascii "FtlLoadBbt\000" - .type __func__.17822, %object - .size __func__.17822, 15 -__func__.17822: + .type __func__.17821, %object + .size __func__.17821, 15 +__func__.17821: .ascii "FlashProgPages\000" .type __func__.7355, %object .size __func__.7355, 25 @@ -14469,9 +14448,9 @@ __func__.7049: .size __func__.7071, 18 __func__.7071: .ascii "FtlMapTblRecovery\000" - .type __func__.17970, %object - .size __func__.17970, 14 -__func__.17970: + .type __func__.17973, %object + .size __func__.17973, 14 +__func__.17973: .ascii "FtlWriteToIDB\000" .space 1 .type rk_sftl_vendor_storage_fops, %object @@ -14501,7 +14480,7 @@ power_up_flag: .size rkflash_vender_storage_dev, 40 rkflash_vender_storage_dev: .word 255 - .word .LC135 + .word .LC134 .word rk_sftl_vendor_storage_fops .space 28 .bss @@ -15138,7 +15117,7 @@ gp_last_act_superblock: .space 4 .section .rodata.str1.1,"aMS",%progbits,1 .LC0: - .ascii "SFTL version: 5.0.51 20191028\000" + .ascii "SFTL version: 5.0.52 20191125\000" .LC1: .ascii "\012%s\012\000" .LC2: @@ -15411,8 +15390,6 @@ gp_last_act_superblock: .LC132: .ascii "%s idb buffer alloc fail\012\000" .LC133: - .ascii "%p %x %p %x\012\000" -.LC134: .ascii "copy_from_user error %d %p %p\012\000" -.LC135: +.LC134: .ascii "vendor_storage\000" diff --git a/drivers/rkflash/rk_sftl_arm_v8.S b/drivers/rkflash/rk_sftl_arm_v8.S index 319187c76500..42f428ebcf57 100644 --- a/drivers/rkflash/rk_sftl_arm_v8.S +++ b/drivers/rkflash/rk_sftl_arm_v8.S @@ -1,7 +1,7 @@ /* SPDX-License-Identifier: GPL-2.0 */ /* Copyright (c) 2018 Rockchip Electronics Co. Ltd. - * date: 2019-10-28 + * date: 2019-11-25 */ .arch armv8-a .file "rk_sftl.c" @@ -12167,262 +12167,261 @@ sftl_init: FtlWriteToIDB: stp x29, x30, [sp, -208]! add x29, sp, 0 - stp x21, x22, [sp, 32] - adrp x21, .LANCHOR0 stp x23, x24, [sp, 48] - add w24, w1, w0 - stp x25, x26, [sp, 64] - sub w25, w24, #1 + add w23, w1, w0 stp x19, x20, [sp, 16] - cmp w25, 63 + sub w24, w23, #1 + stp x21, x22, [sp, 32] + cmp w24, 63 + stp x25, x26, [sp, 64] + adrp x20, .LANCHOR0 stp x27, x28, [sp, 80] bls .L1772 mov w19, w0 cmp w0, 575 bls .L1773 .L1772: - add x0, x21, :lo12:.LANCHOR0 + add x0, x20, :lo12:.LANCHOR0 ldr w1, [x0, 3984] cbnz w1, .L1774 -.L1840: - mov w20, 0 +.L1838: + mov w19, 0 b .L1771 .L1774: - ldr x26, [x0, 3992] + ldr x24, [x0, 3992] mov w1, 35899 movk w1, 0xfcdc, lsl 16 - ldr w2, [x26] + ldr w2, [x24] cmp w2, w1 bne .L1776 - add x1, x26, 258048 - ldrh w22, [x0, 10] + add x1, x24, 258048 + ldrh w2, [x0, 10] add x1, x1, 2044 mov w0, 0 - mov w20, 65023 - mov w2, 4097 + mov w19, 65023 + mov w3, 4097 .L1780: - ldr w3, [x1] - cbnz w3, .L1777 - ldr w3, [x26, w0, uxtw 2] + ldr w4, [x1] + cbnz w4, .L1777 + ldr w4, [x24, w0, uxtw 2] add w0, w0, 1 - str w3, [x1, 2048] - cmp w0, w2 - sub w20, w20, #1 + str w4, [x1, 2048] + cmp w0, w3 + sub w19, w19, #1 csel w0, w0, wzr, cc sub x1, x1, #4 - cmp w20, 4096 + cmp w19, 4096 bne .L1780 - mov w20, 512 + mov w19, 512 b .L1779 .L1777: - add w20, w20, 127 - lsr w20, w20, 7 + add w19, w19, 127 + lsr w19, w19, 7 .L1779: - ubfiz w22, w22, 2, 14 - mov w1, w20 + ubfiz w0, w2, 2, 14 + add w21, w19, 4 + mov w1, w19 + add x27, x20, :lo12:.LANCHOR0 + mov w25, 0 + mov w22, 0 + udiv w21, w21, w0 adrp x0, .LC130 - add x19, x21, :lo12:.LANCHOR0 add x0, x0, :lo12:.LC130 - mov w23, 0 - udiv w22, w20, w22 - add w22, w22, 1 - mov w2, w22 + add w21, w21, 1 + mov w2, w21 bl sftl_printk - lsl w0, w20, 7 - str wzr, [x29, 140] - str w0, [x29, 128] + lsl w0, w19, 7 + str w0, [x29, 132] .L1802: - ldr x0, [x19, 4000] + ldr x0, [x27, 4000] mov w1, 0 mov x2, 512 bl memset - ldrh w28, [x19, 10] - ldr x1, [x19, 3400] - mul w24, w28, w23 + ldrh w28, [x27, 10] + ldr x1, [x27, 3400] + mul w0, w28, w22 + str w0, [x29, 140] cbz x1, .L1810 - ldr x0, [x19, 3408] - mov w25, 6 + ldr x0, [x27, 3408] + mov w23, 6 cmp x0, 0 mov w0, 9 - csel w25, w25, w0, eq + csel w23, w23, w0, eq .L1781: - ldr x3, [x19, 3376] - mov w1, w24 - mov w0, 0 - blr x3 - cmp w22, 1 - beq .L1782 - ldr x2, [x19, 3376] - add w1, w28, w24 - mov w0, 0 - blr x2 + mul w3, w28, w22 + mov w26, 0 .L1782: - cmp w25, 9 + ldr x4, [x27, 3376] + mov w1, w3 + str w3, [x29, 136] + mov w0, 0 + add w26, w26, 1 + blr x4 + ldr w3, [x29, 136] + cmp w21, w26 + add w3, w3, w28 + bhi .L1782 + cmp w23, 9 bne .L1812 - ldr x27, [x19, 4000] + ldr x26, [x27, 4000] mov w2, 1024 mov w1, 0 - mov x0, x27 + mov x0, x26 bl ftl_memset mov w0, 18766 mov w1, 12 movk w0, 0x464e, lsl 16 - stp w0, w1, [x27] + stp w0, w1, [x26] mov w0, 4 - strb w0, [x27, 17] - ldrh w0, [x19, 10] - strh w0, [x27, 18] - strb wzr, [x27, 16] + strb w0, [x26, 17] + ldrh w0, [x27, 10] + strh w0, [x26, 18] + strb wzr, [x26, 16] mov w0, 16 - strb wzr, [x27, 20] - strb w0, [x27, 21] - add x0, x27, 12 - strh wzr, [x27, 22] - str wzr, [x27, 12] + strb wzr, [x26, 20] + strb w0, [x26, 21] + add x0, x26, 12 + strh wzr, [x26, 22] + str wzr, [x26, 12] bl js_hash - str w0, [x27, 8] + str w0, [x26, 8] .L1783: - mul w0, w22, w28 - mov x6, x26 - str w0, [x29, 136] + mul w0, w21, w28 + mov x7, x24 mov x28, 0 - add w0, w24, 1 - str w0, [x29, 132] + str w0, [x29, 136] .L1784: ldr w0, [x29, 136] mov w1, w28 - cmp w28, w0 - bcs .L1791 - cmp w25, 9 + cmp w0, w28 + bls .L1791 + cmp w23, 9 bne .L1785 - ldr w0, [x29, 132] - add w0, w0, w1 -.L1838: + add w0, w1, 1 +.L1836: str w0, [x29, 144] mov w0, 61424 str w0, [x29, 148] cmp w1, 0 - ccmp w25, 9, 0, eq + ccmp w23, 9, 0, eq bne .L1787 - ldr x1, [x19, 3400] - add x7, x19, 3368 - str x6, [x29, 104] + ldr x1, [x27, 3400] + add x8, x27, 3368 + str x7, [x29, 104] mov w0, 70 - str x7, [x29, 120] + str x8, [x29, 120] blr x1 - ldr x7, [x29, 120] + ldr x8, [x29, 120] add x3, x29, 144 - mov x2, x27 - mov w1, w24 - str x7, [x29, 112] + ldr w1, [x29, 140] + mov x2, x26 + str x8, [x29, 112] mov w0, 0 - ldr x8, [x7, 16] - blr x8 + ldr x9, [x8, 16] + blr x9 mov w1, w0 - ldr x7, [x29, 112] - ldrb w0, [x19, 22] + ldr x8, [x29, 112] + ldrb w0, [x27, 22] str w1, [x29, 120] - ldr x2, [x7, 32] + ldr x2, [x8, 32] blr x2 ldr w1, [x29, 120] - ldr x6, [x29, 104] + ldr x7, [x29, 104] cmn w1, #1 bne .L1788 .L1791: - ldrb w0, [x19, 14] + ldrb w0, [x27, 14] str w0, [x29, 120] - ldrh w0, [x19, 10] - ldr x25, [x19, 4000] - mul w1, w0, w23 - str w1, [x29, 136] - add x1, x19, 3368 + ldrh w0, [x27, 10] + ldr x26, [x27, 4000] + mul w1, w0, w22 + str w1, [x29, 140] + add x1, x27, 3368 ldr x2, [x1, 32] cbnz x2, .L1789 mov w1, 6 -.L1839: - mul w0, w22, w0 +.L1837: + mul w0, w21, w0 mov x28, 0 - mov w27, 61424 str w0, [x29, 112] - str w1, [x29, 132] + str w1, [x29, 136] .L1793: ldr w0, [x29, 112] mov w1, w28 cmp w28, w0 bcs .L1797 - ldr w0, [x29, 132] + ldr w0, [x29, 136] cmp w28, 0 ccmp w0, 9, 0, eq bne .L1794 - ldr x1, [x19, 3400] + ldr x1, [x27, 3400] mov w0, 70 blr x1 - ldr x1, [x19, 3408] + ldr x1, [x27, 3408] mov w0, 2 blr x1 - ldr x7, [x19, 3392] + ldr x8, [x27, 3392] add x3, x29, 144 - ldr w1, [x29, 136] - mov x2, x25 + ldr w1, [x29, 140] + mov x2, x26 mov w0, 0 - blr x7 + blr x8 ldrb w0, [x29, 120] - ldr x1, [x19, 3408] + ldr x1, [x27, 3408] blr x1 - ldrb w0, [x19, 22] - ldr x1, [x19, 3400] + ldrb w0, [x27, 22] + ldr x1, [x27, 3400] blr x1 - ldr w0, [x25] + ldr w0, [x26] mov w1, 18766 movk w1, 0x464e, lsl 16 cmp w0, w1 beq .L1795 .L1797: - ldr x0, [x19, 4000] - mov x1, x26 - mov w24, 0 + ldr x0, [x27, 4000] + mov x1, x24 + mov w23, 0 mov x2, x0 .L1796: - mov x25, x2 + mov x26, x2 mov x28, x1 add x2, x2, 4 add x1, x1, 4 - ldr w4, [x25] + ldr w4, [x26] ldr w3, [x28] cmp w4, w3 beq .L1799 mov x2, 512 mov w1, 0 bl memset - ldr w2, [x25] - mov w1, w23 + ldr w2, [x26] + mov w1, w22 ldr w3, [x28] - mov w4, w24 + mov w4, w23 adrp x0, .LC131 add x0, x0, :lo12:.LC131 bl sftl_printk - ldrh w1, [x19, 10] + ldrh w1, [x27, 10] mov w0, 0 - ldr x2, [x19, 3376] - mul w1, w1, w23 + ldr x2, [x27, 3376] + mul w1, w1, w22 blr x2 .L1800: - add w23, w23, w22 - cmp w23, 7 + add w22, w22, w21 + cmp w22, 7 bls .L1802 - ldr w0, [x29, 140] - cbnz w0, .L1803 + cbnz w25, .L1803 .L1776: - mov w20, -1 + mov w19, -1 .L1803: - add x21, x21, :lo12:.LANCHOR0 - ldr x0, [x21, 3992] - str wzr, [x21, 3984] + add x20, x20, :lo12:.LANCHOR0 + ldr x0, [x20, 3992] + str wzr, [x20, 3984] bl kfree - ldr x0, [x21, 4000] + ldr x0, [x20, 4000] bl kfree .L1771: - mov w0, w20 + mov w0, w19 ldp x19, x20, [sp, 16] ldp x21, x22, [sp, 32] ldp x23, x24, [sp, 48] @@ -12431,116 +12430,106 @@ FtlWriteToIDB: ldp x29, x30, [sp], 208 ret .L1810: - mov w25, 6 + mov w23, 6 b .L1781 .L1812: - mov x27, 0 + mov x26, 0 b .L1783 .L1785: - add w0, w1, w24 - lsl w0, w0, 2 - b .L1838 + lsl w0, w1, 2 + b .L1836 .L1787: - ldr x7, [x19, 3384] + ldr x8, [x27, 3384] add x3, x29, 144 - mov x2, x6 - add w1, w1, w24 + ldr w0, [x29, 140] + mov x2, x7 + str x7, [x29, 120] + add w1, w0, w1 mov w0, 0 - str x6, [x29, 120] - blr x7 + blr x8 cmn w0, #1 beq .L1791 - ldr x6, [x29, 120] - add x6, x6, 2048 + ldr x7, [x29, 120] + add x7, x7, 2048 .L1788: add x28, x28, 1 b .L1784 .L1789: ldr x1, [x1, 40] - mov w24, 6 + mov w23, 6 cmp x1, 0 mov w1, 9 - csel w1, w24, w1, eq - b .L1839 + csel w1, w23, w1, eq + b .L1837 .L1794: - ldr x6, [x19, 3392] + ldr x7, [x27, 3392] add x3, x29, 144 - ldr w0, [x29, 136] - mov x2, x25 + ldr w0, [x29, 140] + mov x2, x26 add w1, w1, w0 mov w0, 0 - blr x6 + blr x7 cmn w0, #1 beq .L1797 ldr w0, [x29, 148] - cmp w0, w27 + mov w1, 61424 + cmp w0, w1 bne .L1797 - add x25, x25, 2048 + add x26, x26, 2048 .L1795: add x28, x28, 1 b .L1793 .L1799: - ldr w3, [x29, 128] - add w24, w24, 1 - cmp w24, w3 + ldr w3, [x29, 132] + add w23, w23, 1 + cmp w23, w3 bne .L1796 - ldr w0, [x29, 140] - add w0, w0, 1 - str w0, [x29, 140] - cmp w0, 5 + add w25, w25, 1 + cmp w25, 5 bls .L1800 b .L1803 .L1773: - mov w22, w1 - mov x23, x2 + mov w21, w1 + mov x22, x2 cmp w0, 64 bne .L1804 - add x20, x21, :lo12:.LANCHOR0 + add x25, x20, :lo12:.LANCHOR0 mov w0, 262144 bl ftl_malloc - str x0, [x20, 3992] + str x0, [x25, 3992] mov w0, 262144 bl ftl_malloc mov x1, x0 - ldr x0, [x20, 3992] - str x1, [x20, 4000] + ldr x0, [x25, 3992] + str x1, [x25, 4000] cbz x0, .L1805 cbz x1, .L1805 mov w1, 1 mov w2, 262144 - str w1, [x20, 3984] + str w1, [x25, 3984] mov w1, 0 bl ftl_memset .L1804: - add x21, x21, :lo12:.LANCHOR0 - ldr w0, [x21, 3984] - cbz w0, .L1840 + add x20, x20, :lo12:.LANCHOR0 + ldr w0, [x20, 3984] + cbz w0, .L1838 cmp w19, 63 - ldr x1, [x21, 3992] + ldr x0, [x20, 3992] bhi .L1807 - mov w0, 64 - sub w19, w0, w19 - sub w22, w22, w19 + mov w1, 64 + sub w19, w1, w19 + sub w21, w21, w19 ubfiz x19, x19, 9, 25 - add x23, x23, x19 - mov x20, x1 + add x1, x22, x19 .L1808: - cmp w25, 575 + cmp w24, 575 bls .L1809 - sub w22, w22, w24 - sub w22, w22, #446 + sub w21, w21, w23 + sub w21, w21, #446 .L1809: - mov w4, w22 - mov x3, x20 - mov w2, 262144 - adrp x0, .LC133 - add x0, x0, :lo12:.LC133 - bl sftl_printk - lsl w2, w22, 9 - mov x1, x23 - mov x0, x20 + lsl w2, w21, 9 bl ftl_memcpy - b .L1840 + b .L1838 .L1805: adrp x1, .LANCHOR1 add x1, x1, :lo12:.LANCHOR1 @@ -12550,9 +12539,10 @@ FtlWriteToIDB: bl sftl_printk b .L1804 .L1807: - lsl w20, w19, 7 - sub w20, w20, #8192 - add x20, x1, x20, lsl 2 + lsl w2, w19, 7 + mov x1, x22 + sub w2, w2, #8192 + add x0, x0, x2, lsl 2 b .L1808 .size FtlWriteToIDB, .-FtlWriteToIDB .align 2 @@ -12584,12 +12574,12 @@ rk_sftl_vendor_dev_ops_register: adrp x2, .LANCHOR0 add x2, x2, :lo12:.LANCHOR0 ldr x3, [x2, 4008] - cbnz x3, .L1845 + cbnz x3, .L1843 str x0, [x2, 4008] mov w0, 0 str x1, [x2, 4016] ret -.L1845: +.L1843: mov w0, -1 ret .size rk_sftl_vendor_dev_ops_register, .-rk_sftl_vendor_dev_ops_register @@ -12608,38 +12598,38 @@ rk_sftl_vendor_storage_init: stp x25, x26, [sp, 64] bl ftl_malloc str x0, [x22, 4024] - cbz x0, .L1852 + cbz x0, .L1850 mov w26, 22084 mov w25, 0 mov w24, 0 mov w23, 0 movk w26, 0x524b, lsl 16 -.L1850: +.L1848: ldr x3, [x22, 4008] mov w1, 128 ldr x2, [x22, 4024] lsl w0, w23, 7 blr x3 mov w21, w0 - cbnz w0, .L1848 + cbnz w0, .L1846 ldr x19, [x22, 4024] ldr w0, [x19] cmp w0, w26 - bne .L1849 + bne .L1847 add x0, x19, 61440 ldr w1, [x19, 4] ldr w0, [x0, 4092] cmp w0, w1 - bne .L1849 + bne .L1847 cmp w0, w24 - bls .L1849 + bls .L1847 mov w25, w23 mov w24, w0 -.L1849: +.L1847: add w23, w23, 1 cmp w23, 2 - bne .L1850 - cbz w24, .L1851 + bne .L1848 + cbz w24, .L1849 add x0, x20, :lo12:.LANCHOR0 mov x2, x19 mov w1, 128 @@ -12647,15 +12637,15 @@ rk_sftl_vendor_storage_init: lsl w0, w25, 7 blr x3 mov w21, w0 - cbz w0, .L1846 -.L1848: + cbz w0, .L1844 +.L1846: add x20, x20, :lo12:.LANCHOR0 mov w21, -1 ldr x0, [x20, 4024] bl kfree str xzr, [x20, 4024] - b .L1846 -.L1851: + b .L1844 +.L1849: mov w1, 0 mov x2, 65536 mov x0, x19 @@ -12668,7 +12658,7 @@ rk_sftl_vendor_storage_init: str w0, [x1, 4092] mov w0, -1032 strh w0, [x19, 14] -.L1846: +.L1844: mov w0, w21 ldp x19, x20, [sp, 16] ldp x21, x22, [sp, 32] @@ -12676,9 +12666,9 @@ rk_sftl_vendor_storage_init: ldp x25, x26, [sp, 64] ldp x29, x30, [sp], 80 ret -.L1852: +.L1850: mov w21, -12 - b .L1846 + b .L1844 .size rk_sftl_vendor_storage_init, .-rk_sftl_vendor_storage_init .align 2 .global rk_sftl_vendor_read @@ -12686,20 +12676,20 @@ rk_sftl_vendor_storage_init: rk_sftl_vendor_read: adrp x3, .LANCHOR0+4024 ldr x4, [x3, #:lo12:.LANCHOR0+4024] - cbz x4, .L1860 + cbz x4, .L1858 ldrh w6, [x4, 10] add x5, x4, 16 mov w3, 0 -.L1857: +.L1855: cmp w3, w6 - bcc .L1859 -.L1860: + bcc .L1857 +.L1858: mov w0, -1 ret -.L1859: +.L1857: ldrh w7, [x5], 8 cmp w7, w0 - bne .L1858 + bne .L1856 stp x29, x30, [sp, -32]! add x3, x4, x3, uxtw 3 mov x0, x1 @@ -12717,9 +12707,9 @@ rk_sftl_vendor_read: ldr x19, [sp, 16] ldp x29, x30, [sp], 32 ret -.L1858: +.L1856: add w3, w3, 1 - b .L1857 + b .L1855 .size rk_sftl_vendor_read, .-rk_sftl_vendor_read .align 2 .global rk_sftl_vendor_write @@ -12735,7 +12725,7 @@ rk_sftl_vendor_write: stp x25, x26, [sp, 64] stp x27, x28, [sp, 80] ldr x19, [x3, 4024] - cbz x19, .L1880 + cbz x19, .L1878 add w21, w2, 63 ldrh w3, [x19, 10] ldrh w24, [x19, 8] @@ -12744,12 +12734,12 @@ rk_sftl_vendor_write: and w21, w21, -64 add x1, x19, 16 mov w20, 0 -.L1867: +.L1865: cmp w20, w3 - bcc .L1875 + bcc .L1873 ldrh w1, [x19, 14] cmp w21, w1 - bhi .L1880 + bhi .L1878 add x3, x19, x3, uxth 3 and w21, w21, 65535 uxtw x2, w28 @@ -12769,11 +12759,11 @@ rk_sftl_vendor_write: ldrh w0, [x19, 10] add w0, w0, 1 strh w0, [x19, 10] - b .L1882 -.L1875: + b .L1880 +.L1873: ldrh w6, [x1], 8 cmp w6, w0 - bne .L1868 + bne .L1866 uxtw x27, w20 add x5, x19, 1024 add x22, x19, x27, lsl 3 @@ -12781,17 +12771,17 @@ rk_sftl_vendor_write: add w25, w25, 63 and w25, w25, -64 cmp w28, w25 - bls .L1869 + bls .L1867 ldrh w0, [x19, 14] cmp w21, w0 - bhi .L1880 + bhi .L1878 add x27, x27, 2 ldrh w22, [x22, 18] add x27, x19, x27, lsl 3 sub w26, w3, #1 -.L1870: +.L1868: cmp w20, w26 - bcc .L1871 + bcc .L1869 add x20, x19, x20, uxtw 3 and w22, w22, 65535 add x0, x5, x22, uxth @@ -12808,7 +12798,7 @@ rk_sftl_vendor_write: sub w21, w0, w21 add w25, w21, w25 strh w25, [x19, 14] -.L1882: +.L1880: ldr w0, [x19, 4] add x1, x19, 61440 add x23, x23, :lo12:.LANCHOR0 @@ -12827,7 +12817,7 @@ rk_sftl_vendor_write: lsl w0, w24, 7 blr x3 mov w0, 0 -.L1865: +.L1863: ldp x19, x20, [sp, 16] ldp x21, x22, [sp, 32] ldp x23, x24, [sp, 48] @@ -12835,7 +12825,7 @@ rk_sftl_vendor_write: ldp x27, x28, [sp, 80] ldp x29, x30, [sp], 128 ret -.L1871: +.L1869: add w20, w20, 1 str x4, [x29, 104] add x0, x19, x20, uxtw 3 @@ -12859,21 +12849,21 @@ rk_sftl_vendor_write: ldr x4, [x29, 104] add w22, w22, w3 ldr x5, [x29, 120] - b .L1870 -.L1869: + b .L1868 +.L1867: ldrh w0, [x22, 18] uxtw x2, w28 mov x1, x4 add x0, x5, x0 bl memcpy strh w28, [x22, 20] - b .L1882 -.L1868: + b .L1880 +.L1866: add w20, w20, 1 - b .L1867 -.L1880: - mov w0, -1 b .L1865 +.L1878: + mov w0, -1 + b .L1863 .size rk_sftl_vendor_write, .-rk_sftl_vendor_write .align 2 .global rk_sftl_vendor_storage_ioctl @@ -12887,19 +12877,19 @@ rk_sftl_vendor_storage_ioctl: str x21, [sp, 32] mov w21, w1 bl ftl_malloc - cbz x0, .L1900 + cbz x0, .L1898 mov w1, 30209 mov x19, x0 movk w1, 0x4004, lsl 16 cmp w21, w1 - beq .L1886 + beq .L1884 add w1, w1, 1 cmp w21, w1 - beq .L1887 -.L1910: + beq .L1885 +.L1908: mov x20, -14 - b .L1885 -.L1886: + b .L1883 +.L1884: #APP // 21 "./arch/arm64/include/asm/current.h" 1 mrs x21, sp_el0 @@ -12912,46 +12902,46 @@ rk_sftl_vendor_storage_ioctl: adds x1, x1, 8; ccmp x1, x2, #2, cc; cset x3, ls // 0 "" 2 #NO_APP - cbz x3, .L1888 + cbz x3, .L1886 mov x2, 8 mov x1, x20 bl __arch_copy_from_user - cbz x0, .L1911 -.L1889: + cbz x0, .L1909 +.L1887: mov x2, x20 mov w1, 256 -.L1915: - adrp x0, .LC134 - add x0, x0, :lo12:.LC134 +.L1913: + adrp x0, .LC133 + add x0, x0, :lo12:.LC133 bl sftl_printk - b .L1910 -.L1888: + b .L1908 +.L1886: str xzr, [x0] - b .L1889 -.L1911: + b .L1887 +.L1909: ldr w1, [x19] mov w0, 17745 movk w0, 0x5652, lsl 16 cmp w1, w0 - beq .L1891 -.L1892: + beq .L1889 +.L1890: mov x20, -1 -.L1885: +.L1883: mov x0, x19 bl kfree -.L1883: +.L1881: mov x0, x20 ldr x21, [sp, 32] ldp x19, x20, [sp, 16] ldp x29, x30, [sp], 48 ret -.L1891: +.L1889: ldrh w2, [x19, 6] add x1, x19, 8 ldrh w0, [x19, 4] bl rk_sftl_vendor_read cmn w0, #1 - beq .L1892 + beq .L1890 strh w0, [x19, 6] and x2, x0, 65535 add x2, x2, 8 @@ -12962,14 +12952,14 @@ rk_sftl_vendor_storage_ioctl: adds x0, x0, x2; ccmp x0, x1, #2, cc; cset x3, ls // 0 "" 2 #NO_APP - cbz x3, .L1910 + cbz x3, .L1908 mov x0, x20 mov x1, x19 mov x20, 0 bl __arch_copy_to_user - cbz x0, .L1885 - b .L1910 -.L1887: + cbz x0, .L1883 + b .L1908 +.L1885: #APP // 21 "./arch/arm64/include/asm/current.h" 1 mrs x21, sp_el0 @@ -12982,27 +12972,27 @@ rk_sftl_vendor_storage_ioctl: adds x1, x1, 8; ccmp x1, x2, #2, cc; cset x3, ls // 0 "" 2 #NO_APP - cbz x3, .L1894 + cbz x3, .L1892 mov x2, 8 mov x1, x20 bl __arch_copy_from_user - cbz x0, .L1912 -.L1895: + cbz x0, .L1910 +.L1893: mov x2, x20 mov w1, 276 - b .L1915 -.L1894: + b .L1913 +.L1892: str xzr, [x0] - b .L1895 -.L1912: + b .L1893 +.L1910: ldr w1, [x19] mov w0, 17745 movk w0, 0x5652, lsl 16 cmp w1, w0 - bne .L1892 + bne .L1890 ldrh w2, [x19, 6] cmp w2, 4087 - bhi .L1892 + bhi .L1890 add w2, w2, 8 mov x0, x20 sxtw x2, w2 @@ -13012,30 +13002,30 @@ rk_sftl_vendor_storage_ioctl: adds x0, x0, x2; ccmp x0, x1, #2, cc; cset x3, ls // 0 "" 2 #NO_APP - cbz x3, .L1897 + cbz x3, .L1895 mov x1, x20 mov x0, x19 bl __arch_copy_from_user - cbz x0, .L1913 -.L1898: + cbz x0, .L1911 +.L1896: mov x2, x20 mov w1, 283 - b .L1915 -.L1897: + b .L1913 +.L1895: mov w1, 0 mov x0, x19 bl memset - b .L1898 -.L1913: + b .L1896 +.L1911: ldrh w2, [x19, 6] add x1, x19, 8 ldrh w0, [x19, 4] bl rk_sftl_vendor_write sxtw x20, w0 - b .L1885 -.L1900: - mov x20, -1 b .L1883 +.L1898: + mov x20, -1 + b .L1881 .size rk_sftl_vendor_storage_ioctl, .-rk_sftl_vendor_storage_ioctl .align 2 .global rk_sftl_vendor_register @@ -13236,9 +13226,9 @@ __func__.4304: __func__.4479: .string "get_new_active_ppa" .zero 5 - .type __func__.16195, %object - .size __func__.16195, 17 -__func__.16195: + .type __func__.16194, %object + .size __func__.16194, 17 +__func__.16194: .string "FlashEraseBlocks" .zero 7 .type __func__.3912, %object @@ -13261,9 +13251,9 @@ __func__.3644: __func__.4325: .string "SupperBlkListInit" .zero 6 - .type __func__.16152, %object - .size __func__.16152, 15 -__func__.16152: + .type __func__.16151, %object + .size __func__.16151, 15 +__func__.16151: .string "FlashReadPages" .zero 1 .type __func__.4089, %object @@ -13276,9 +13266,9 @@ __func__.4089: __func__.3687: .string "FtlLoadBbt" .zero 5 - .type __func__.16171, %object - .size __func__.16171, 15 -__func__.16171: + .type __func__.16170, %object + .size __func__.16170, 15 +__func__.16170: .string "FlashProgPages" .zero 1 .type __func__.4451, %object @@ -13377,9 +13367,9 @@ __func__.4145: __func__.4167: .string "FtlMapTblRecovery" .zero 6 - .type __func__.16310, %object - .size __func__.16310, 14 -__func__.16310: + .type __func__.16313, %object + .size __func__.16313, 14 +__func__.16313: .string "FtlWriteToIDB" .zero 2 .type rk_sftl_vendor_storage_fops, %object @@ -13411,7 +13401,7 @@ power_up_flag: rkflash_vender_storage_dev: .word 255 .zero 4 - .xword .LC135 + .xword .LC134 .xword rk_sftl_vendor_storage_fops .zero 56 .bss @@ -14053,7 +14043,7 @@ gp_last_act_superblock: .zero 8 .section .rodata.str1.1,"aMS",@progbits,1 .LC0: - .string "SFTL version: 5.0.51 20191028" + .string "SFTL version: 5.0.52 20191125" .LC1: .string "\n%s\n" .LC2: @@ -14319,8 +14309,6 @@ gp_last_act_superblock: .LC132: .string "%s idb buffer alloc fail\n" .LC133: - .string "%p %x %p %x\n" -.LC134: .string "copy_from_user error %d %p %p\n" -.LC135: +.LC134: .string "vendor_storage"