diff options
author | Zhaoyifeng <zyf@rock-chips.com> | 2018-03-13 16:32:00 +0800 |
---|---|---|
committer | Tao Huang <huangtao@rock-chips.com> | 2018-03-16 17:49:19 +0800 |
commit | 5790f6182b4ca2411e71f46b063125b8542484b6 (patch) | |
tree | c523cf4d93e5d15c13f1f5db10690118459a0e14 | |
parent | 7a4fcedce878e2a05a3028f72c014f088dd245fd (diff) |
drivers: rk_nand: update ftl for rk3226 and px30
1. Optimize the garbage processing.
2. Add data list for block manager.
Change-Id: I1c5563151e80dd3b3e941835dd93e2fe4eb4e20b
Signed-off-by: Zhaoyifeng <zyf@rock-chips.com>
-rw-r--r-- | drivers/rk_nand/rk_ftlv5_arm64.S | 4321 | ||||
-rw-r--r-- | drivers/rk_nand/rk_zftl_arm64.S | 20987 |
2 files changed, 12944 insertions, 12364 deletions
diff --git a/drivers/rk_nand/rk_ftlv5_arm64.S b/drivers/rk_nand/rk_ftlv5_arm64.S index 40a1fc92c7b0..dd6278a68ca6 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-02-27 + * date: 2018-03-16 * function: rk ftl v5 for rockchip soc base on arm v8 to support MLC NAND. */ .cpu generic+fp+simd @@ -7465,7 +7465,7 @@ FtlConstantsInit: mov w7, 0 .L1189: cmp w7, w2 - bcs .L1212 + bcs .L1211 add x9, x12, 768 add w13, w5, w11 add w14, w0, w8 @@ -7476,7 +7476,7 @@ FtlConstantsInit: add w5, w5, w1 uxtb w0, w0 b .L1189 -.L1212: +.L1211: add w3, w3, 1 b .L1186 .L1188: @@ -7555,9 +7555,9 @@ FtlConstantsInit: sdiv w0, w1, w0 uxth w0, w0 cmp w0, 4 - bhi .L1210 + bhi .L1208 mov w0, 4 -.L1210: +.L1208: strh w0, [x2,832] cbz w27, .L1195 add x0, x19, :lo12:.LANCHOR2 @@ -7581,9 +7581,9 @@ FtlConstantsInit: ldrh w0, [x1,832] udiv w0, w0, w23 add w20, w20, w0 - bne .L1211 + bne .L1209 add w20, w20, 4 -.L1211: +.L1209: str w20, [x1,736] add x20, x19, :lo12:.LANCHOR2 add x22, x22, :lo12:.LANCHOR0 @@ -7599,6 +7599,7 @@ FtlConstantsInit: ldrh w2, [x20,832] mul w1, w0, w1 ldrh w0, [x20,818] + ldrb w5, [x22,136] add w0, w0, 9 lsr w0, w1, w0 mov w1, 2048 @@ -7612,13 +7613,18 @@ FtlConstantsInit: ldr w1, [x20,840] add w4, w1, 3 str w4, [x20,840] - ldrb w4, [x22,136] - cbz w4, .L1198 + cbz w5, .L1198 add w2, w2, 4 add w1, w1, 5 strh w2, [x20,832] - str w1, [x20,840] + b .L1210 .L1198: + cmp w4, 7 + bhi .L1199 + mov w1, 8 +.L1210: + str w1, [x20,840] +.L1199: add x19, x19, :lo12:.LANCHOR2 ldrh w1, [x19,748] strh wzr, [x19,852] @@ -7627,10 +7633,10 @@ FtlConstantsInit: add w1, w1, 52 add w0, w1, w0, lsl 2 cmp w0, w3, lsl 9 - bcs .L1199 + bcs .L1200 mov w0, 1 strh w0, [x19,852] -.L1199: +.L1200: mov w0, 0 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -7692,9 +7698,9 @@ FtlMemInit: strh wzr, [x0,954] str w2, [x0,956] cmp w2, w1 - bls .L1214 + bls .L1213 str w1, [x0,956] -.L1214: +.L1213: add x19, x20, :lo12:.LANCHOR2 mov w22, 56 ldrh w0, [x19,814] @@ -7878,106 +7884,106 @@ FtlMemInit: ldrh w5, [x19,762] mov w0, 1 mov w2, w4 -.L1215: +.L1214: cmp w0, w5 add x1, x1, 8 - bcs .L1315 + bcs .L1314 ldr x3, [x19,1320] add w0, w0, 1 add x3, x3, x2, uxtw 2 add w2, w2, w4 str x3, [x1,32] - b .L1215 -.L1315: + b .L1214 +.L1314: add x1, x20, :lo12:.LANCHOR2 -.L1217: +.L1216: cmp w0, 8 - beq .L1316 + beq .L1315 add x2, x1, x0, uxtw 3 add w0, w0, 1 str xzr, [x2,1320] - b .L1217 -.L1316: + b .L1216 +.L1315: add x0, x20, :lo12:.LANCHOR2 ldr x1, [x0,1184] - cbnz x1, .L1219 -.L1221: + cbnz x1, .L1218 +.L1220: adrp x0, .LC29 adrp x1, .LANCHOR3 add x0, x0, :lo12:.LC29 add x1, x1, :lo12:.LANCHOR3 bl printk mov w0, -1 - b .L1220 -.L1219: + b .L1219 +.L1218: ldr x1, [x0,1192] - cbz x1, .L1221 + cbz x1, .L1220 ldr x1, [x0,1232] - cbz x1, .L1221 + cbz x1, .L1220 ldr x1, [x0,1248] - cbz x1, .L1221 + cbz x1, .L1220 ldr x1, [x0,1256] - cbz x1, .L1221 + cbz x1, .L1220 ldr x1, [x0,1264] - cbz x1, .L1221 + cbz x1, .L1220 ldr x1, [x0,1272] - cbz x1, .L1221 + cbz x1, .L1220 ldr x1, [x0,1320] - cbz x1, .L1221 + cbz x1, .L1220 ldr x0, [x0,1176] - cbz x0, .L1221 + cbz x0, .L1220 add x0, x20, :lo12:.LANCHOR2 ldr x1, [x0,968] - cbz x1, .L1221 + cbz x1, .L1220 ldr x1, [x0,976] - cbz x1, .L1221 + cbz x1, .L1220 ldr x1, [x0,984] - cbz x1, .L1221 + cbz x1, .L1220 ldr x1, [x0,1000] - cbz x1, .L1221 + cbz x1, .L1220 ldr x1, [x0,1008] - cbz x1, .L1221 + cbz x1, .L1220 ldr x1, [x0,1016] - cbz x1, .L1221 + cbz x1, .L1220 ldr x1, [x0,992] - cbz x1, .L1221 + cbz x1, .L1220 ldr x1, [x0,1040] - cbz x1, .L1221 + cbz x1, .L1220 ldr x1, [x0,1048] - cbz x1, .L1221 + cbz x1, .L1220 ldr x0, [x0,1056] - cbz x0, .L1221 + cbz x0, .L1220 add x0, x20, :lo12:.LANCHOR2 ldr x1, [x0,1064] - cbz x1, .L1221 + cbz x1, .L1220 ldr x1, [x0,1080] - cbz x1, .L1221 + cbz x1, .L1220 ldr x1, [x0,1088] - cbz x1, .L1221 + cbz x1, .L1220 ldr x1, [x0,1096] - cbz x1, .L1221 + cbz x1, .L1220 ldr x1, [x0,1104] - cbz x1, .L1221 + cbz x1, .L1220 ldr x1, [x0,1112] - cbz x1, .L1221 + cbz x1, .L1220 ldr x1, [x0,1120] - cbz x1, .L1221 + cbz x1, .L1220 ldr x1, [x0,1160] - cbz x1, .L1221 + cbz x1, .L1220 ldr x1, [x0,1144] - cbz x1, .L1221 + cbz x1, .L1220 ldr x0, [x0,1200] - cbz x0, .L1221 + cbz x0, .L1220 adrp x0, .LANCHOR2 add x0, x0, :lo12:.LANCHOR2 ldr x1, [x0,1208] - cbz x1, .L1221 + cbz x1, .L1220 ldr x1, [x0,1216] - cbz x1, .L1221 + cbz x1, .L1220 ldr x0, [x0,1224] - cbz x0, .L1221 + cbz x0, .L1220 mov w0, 0 -.L1220: +.L1219: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldr x23, [sp,48] @@ -7993,23 +7999,23 @@ IsBlkInVendorPart: add x1, x1, :lo12:.LANCHOR2 mov w0, 0 ldrh w2, [x1,1384] - cbz w2, .L1318 + cbz w2, .L1317 ldrh w2, [x1,832] ldr x3, [x1,1200] mov x1, 0 -.L1319: +.L1318: cmp w2, w1, uxth - bls .L1324 + bls .L1323 add x1, x1, 1 add x0, x3, x1, lsl 1 ldrh w0, [x0,-2] cmp w0, w4 - bne .L1319 + bne .L1318 mov w0, 1 - b .L1318 -.L1324: + b .L1317 +.L1323: mov w0, 0 -.L1318: +.L1317: ret .size IsBlkInVendorPart, .-IsBlkInVendorPart .align 2 @@ -8021,25 +8027,25 @@ FtlCacheMetchLpa: add x2, x2, :lo12:.LANCHOR2 mov w0, 0 ldr w3, [x2,960] - cbz w3, .L1326 + cbz w3, .L1325 ldr x5, [x2,1024] mov x0, 56 mov x2, 0 -.L1327: +.L1326: cmp w3, w2 - bls .L1336 + bls .L1335 madd x4, x2, x0, x5 add x2, x2, 1 ldr w4, [x4,24] cmp w4, w6 - bcc .L1327 + bcc .L1326 cmp w4, w1 - bhi .L1327 + bhi .L1326 mov w0, 1 - b .L1326 -.L1336: + b .L1325 +.L1335: mov w0, 0 -.L1326: +.L1325: ret .size FtlCacheMetchLpa, .-FtlCacheMetchLpa .align 2 @@ -8144,10 +8150,10 @@ FtlBbt2Bitmap: mov x3, 0 mov w0, 65535 mov w5, 1 -.L1345: +.L1344: ldrh w2, [x20,x3] cmp w2, w0 - beq .L1343 + beq .L1342 ubfx x4, x2, 5, 11 add x3, x3, 2 lsl x4, x4, 2 @@ -8156,8 +8162,8 @@ FtlBbt2Bitmap: ldr w1, [x19,x4] orr w2, w1, w2 str w2, [x19,x4] - bne .L1345 -.L1343: + bne .L1344 +.L1342: ldp x19, x20, [sp,16] ldp x29, x30, [sp], 32 ret @@ -8175,7 +8181,7 @@ FtlBbmTblFlush: stp x23, x24, [sp,48] ldr w1, [x19,1392] stp x25, x26, [sp,64] - cbnz w1, .L1350 + cbnz w1, .L1349 ldr x0, [x19,1040] mov x22, 0 ldr x3, [x19,1104] @@ -8184,13 +8190,13 @@ FtlBbmTblFlush: str x0, [x19,1408] str x3, [x19,1416] bl ftl_memset -.L1351: +.L1350: ldrh w1, [x19,762] mov w0, w22 add x20, x19, 1400 add x22, x22, 1 cmp w0, w1 - bge .L1359 + bge .L1358 add x1, x21, x22, lsl 3 ldrh w2, [x19,1280] ldr x3, [x20,8] @@ -8199,8 +8205,8 @@ FtlBbmTblFlush: add x0, x3, x0, sxtw 2 lsl w2, w2, 2 bl ftl_memcpy - b .L1351 -.L1359: + b .L1350 +.L1358: ldr x25, [x20,16] mov w1, 255 mov w2, 16 @@ -8224,7 +8230,7 @@ FtlBbmTblFlush: strh w0, [x25,10] ldr w0, [x19,736] strh w0, [x25,12] -.L1353: +.L1352: ldr x0, [x19,1040] str x0, [x20,8] ldrh w1, [x19,1288] @@ -8247,7 +8253,7 @@ FtlBbmTblFlush: ldrh w0, [x19,1290] sub w1, w1, #1 cmp w0, w1 - blt .L1354 + blt .L1353 ldr w1, [x19,1296] ldrh w0, [x19,1288] add w1, w1, 1 @@ -8271,20 +8277,20 @@ FtlBbmTblFlush: mov w2, w1 mov w3, w1 bl FlashProgPages -.L1354: +.L1353: ldrh w1, [x19,1290] ldr w0, [x20] add w1, w1, 1 strh w1, [x19,1290] cmn w0, #1 - bne .L1355 + bne .L1354 ldr w1, [x20,4] mov x0, x24 add w26, w26, 1 bl printk uxth w26, w26 cmp w26, 3 - bls .L1353 + bls .L1352 adrp x0, .LC33 ldr w1, [x20,4] add x0, x0, :lo12:.LC33 @@ -8292,12 +8298,12 @@ FtlBbmTblFlush: bl printk mov w0, 1 str w0, [x19,1392] - b .L1350 -.L1355: - cbnz w23, .L1350 + b .L1349 +.L1354: + cbnz w23, .L1349 mov w23, 1 - b .L1353 -.L1350: + b .L1352 +.L1349: mov w0, 0 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -8328,19 +8334,19 @@ FtlLoadFactoryBbt: mov w25, -1 str x24, [x21,16] mov w26, 61664 -.L1361: +.L1360: ldrh w0, [x19,762] cmp w22, w0 - bcs .L1370 + bcs .L1369 ldrh w20, [x19,806] strh w25, [x23,12] -.L1363: +.L1362: sub w20, w20, #1 ldrh w0, [x19,806] uxth w20, w20 sub w1, w0, #16 cmp w20, w1 - ble .L1364 + ble .L1363 madd w0, w22, w0, w20 mov w1, 1 lsl w0, w0, 10 @@ -8350,16 +8356,16 @@ FtlLoadFactoryBbt: bl FlashReadPages ldr w0, [x21] cmn w0, #1 - beq .L1363 + beq .L1362 ldrh w0, [x24] cmp w0, w26 - bne .L1363 + bne .L1362 strh w20, [x23,12] -.L1364: +.L1363: add w22, w22, 1 add x23, x23, 2 - b .L1361 -.L1370: + b .L1360 +.L1369: mov w0, 0 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -8401,19 +8407,19 @@ FtlBbtCalcTotleCnt: ldrh w1, [x0,806] ldrh w21, [x0,762] mul w21, w1, w21 -.L1373: +.L1372: cmp w20, w21 - bge .L1379 + bge .L1378 mov w0, w20 bl FtlBbmIsBadBlock - cbz w0, .L1374 + cbz w0, .L1373 add w19, w19, 1 uxth w19, w19 -.L1374: +.L1373: add w20, w20, 1 uxth w20, w20 - b .L1373 -.L1379: + b .L1372 +.L1378: mov w0, w19 ldr x21, [sp,32] ldp x19, x20, [sp,16] @@ -8435,7 +8441,7 @@ FtlMakeBbt: stp x27, x28, [sp,80] mov x21, x19 ldr w22, [x20,1392] - cbnz w22, .L1381 + cbnz w22, .L1380 add x24, x20, 1288 mov x19, x20 mov x25, x24 @@ -8443,10 +8449,10 @@ FtlMakeBbt: mov w28, -3872 bl FtlBbtMemInit bl FtlLoadFactoryBbt -.L1382: +.L1381: ldrh w0, [x19,762] cmp w22, w0 - bcs .L1400 + bcs .L1399 ldrh w4, [x25,12] mov w1, 65535 ldr x0, [x19,1040] @@ -8454,7 +8460,7 @@ FtlMakeBbt: cmp w4, w1 str x0, [x20,8] str x26, [x20,16] - beq .L1383 + beq .L1382 ldrh w0, [x19,806] mov w1, 1 mov w2, w1 @@ -8469,23 +8475,23 @@ FtlMakeBbt: ldr x1, [x20,8] lsr w2, w2, 3 bl ftl_memcpy - b .L1384 -.L1383: + b .L1383 +.L1382: mov w1, w22 bl FlashGetBadBlockList ldr x0, [x20,8] ldr x1, [x24,32] bl FtlBbt2Bitmap ldrh w23, [x19,806] -.L1386: +.L1385: sub w23, w23, #1 uxth w23, w23 -.L1385: +.L1384: ldrh w0, [x19,806] madd w0, w22, w0, w23 bl FtlBbmIsBadBlock cmp w0, 1 - beq .L1386 + beq .L1385 ldr x0, [x19,1104] mov w1, 0 mov w2, 16 @@ -8516,64 +8522,64 @@ FtlMakeBbt: bl FlashProgPages ldr w0, [x20] cmn w0, #1 - bne .L1384 + bne .L1383 mov w0, w27 bl FtlBbmMapBadBlock - b .L1385 -.L1384: + b .L1384 +.L1383: mov w0, w27 add w22, w22, 1 add x24, x24, 8 add x25, x25, 2 bl FtlBbmMapBadBlock - b .L1382 -.L1400: + b .L1381 +.L1399: mov w19, 0 -.L1389: +.L1388: add x20, x21, :lo12:.LANCHOR2 ldrh w0, [x20,824] cmp w0, w19 - bls .L1401 + bls .L1400 mov w0, w19 add w19, w19, 1 bl FtlBbmMapBadBlock uxth w19, w19 - b .L1389 -.L1401: + b .L1388 +.L1400: ldrh w19, [x20,1300] mov w23, 65535 sub w19, w19, #1 uxth w19, w19 -.L1391: +.L1390: add x22, x20, 1288 ldrh w0, [x22,12] sub w0, w0, #48 cmp w19, w0 - ble .L1395 + ble .L1394 mov w0, w19 bl FtlBbmIsBadBlock cmp w0, 1 - beq .L1392 + beq .L1391 mov w0, w19 bl FlashTestBlk - cbz w0, .L1393 + cbz w0, .L1392 mov w0, w19 bl FtlBbmMapBadBlock - b .L1392 -.L1393: + b .L1391 +.L1392: ldrh w0, [x20,1288] cmp w0, w23 - bne .L1394 + bne .L1393 strh w19, [x20,1288] - b .L1392 -.L1394: + b .L1391 +.L1393: strh w19, [x22,4] - b .L1395 -.L1392: + b .L1394 +.L1391: sub w19, w19, #1 uxth w19, w19 - b .L1391 -.L1395: + b .L1390 +.L1394: add x19, x21, :lo12:.LANCHOR2 mov w2, 2 ldr x1, [x19,1008] @@ -8602,7 +8608,7 @@ FtlMakeBbt: strh w0, [x19,1292] strh w1, [x19,1288] bl FtlBbmTblFlush -.L1381: +.L1380: mov w0, 0 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -8664,16 +8670,16 @@ P2V_block_in_plane: ftl_cmp_data_ver: cmp w0, w1 mov w2, -2147483648 - bls .L1406 + bls .L1405 sub w1, w0, w1 cmp w1, w2 cset w0, ls - b .L1407 -.L1406: + b .L1406 +.L1405: sub w1, w1, w0 cmp w1, w2 cset w0, hi -.L1407: +.L1406: ret .size ftl_cmp_data_ver, .-ftl_cmp_data_ver .align 2 @@ -8690,12 +8696,12 @@ FtlGetLastWrittenPage: str x25, [sp,64] mov w23, w1 add x3, x3, :lo12:.LANCHOR2 - bne .L1409 + bne .L1408 ldrh w19, [x3,812] - b .L1410 -.L1409: + b .L1409 +.L1408: ldrh w19, [x3,810] -.L1410: +.L1409: sub w19, w19, #1 lsl w21, w0, 10 mov w1, 1 @@ -8710,12 +8716,12 @@ FtlGetLastWrittenPage: bl FlashReadPages ldr w0, [x29,144] cmn w0, #1 - bne .L1411 + bne .L1410 mov w22, 0 mov w25, 2 -.L1412: +.L1411: cmp w22, w19 - bgt .L1411 + bgt .L1410 add w3, w22, w19 mov w1, 1 mov w2, w23 @@ -8727,21 +8733,21 @@ FtlGetLastWrittenPage: bl FlashReadPages ldr w0, [x24] cmn w0, #1 - bne .L1413 + bne .L1412 ldr w0, [x24,4] cmn w0, #1 - bne .L1413 + bne .L1412 ldr w0, [x29,88] cmn w0, #1 - beq .L1413 + beq .L1412 sub w19, w20, #1 sxth w19, w19 - b .L1412 -.L1413: + b .L1411 +.L1412: add w20, w20, 1 sxth w22, w20 - b .L1412 -.L1411: + b .L1411 +.L1410: mov w0, w19 ldr x25, [sp,64] ldp x19, x20, [sp,16] @@ -8770,11 +8776,11 @@ FtlLoadBbt: ldrh w20, [x23,806] sub w20, w20, #1 uxth w20, w20 -.L1420: +.L1419: ldrh w0, [x23,806] sub w0, w0, #48 cmp w20, w0 - ble .L1423 + ble .L1422 lsl w0, w20, 10 mov w1, 1 str w0, [x21,4] @@ -8783,7 +8789,7 @@ FtlLoadBbt: bl FlashReadPages ldr w0, [x21] cmn w0, #1 - bne .L1421 + bne .L1420 ldr w0, [x21,4] mov w1, 1 mov w2, w1 @@ -8791,33 +8797,33 @@ FtlLoadBbt: str w0, [x21,4] mov x0, x21 bl FlashReadPages -.L1421: +.L1420: ldr w0, [x21] cmn w0, #1 - beq .L1422 + beq .L1421 ldrh w0, [x22] cmp w0, w24 - bne .L1422 + bne .L1421 ldr w1, [x22,4] str w1, [x23,1296] strh w20, [x23,1288] ldrh w1, [x22,8] strh w1, [x23,1292] - b .L1423 -.L1422: + b .L1422 +.L1421: sub w20, w20, #1 uxth w20, w20 - b .L1420 -.L1423: + b .L1419 +.L1422: add x21, x19, :lo12:.LANCHOR2 mov w2, 65535 mov w0, -1 ldrh w1, [x21,1288] cmp w1, w2 - beq .L1425 + beq .L1424 ldrh w1, [x21,1292] cmp w1, w2 - beq .L1427 + beq .L1426 add x0, x21, 1400 lsl w1, w1, 10 str w1, [x0,4] @@ -8826,21 +8832,21 @@ FtlLoadBbt: bl FlashReadPages ldr w0, [x21,1400] cmn w0, #1 - beq .L1427 + beq .L1426 ldrh w1, [x22] mov w0, 61649 cmp w1, w0 - bne .L1427 + bne .L1426 ldr w0, [x22,4] ldr w1, [x21,1296] cmp w0, w1 - bls .L1427 + bls .L1426 str w0, [x21,1296] ldrh w1, [x21,1292] ldrh w0, [x22,8] strh w1, [x21,1288] strh w0, [x21,1292] -.L1427: +.L1426: add x20, x19, :lo12:.LANCHOR2 mov w1, 1 add x23, x20, 1400 @@ -8850,8 +8856,8 @@ FtlLoadBbt: sxth w21, w0 add w0, w0, 1 strh w0, [x20,1290] -.L1429: - tbnz w21, #31, .L1434 +.L1428: + tbnz w21, #31, .L1433 ldrh w0, [x20,1288] mov w1, 1 mov w2, w1 @@ -8863,44 +8869,44 @@ FtlLoadBbt: bl FlashReadPages ldr w0, [x23] cmn w0, #1 - beq .L1430 + beq .L1429 ldrh w0, [x22] cmp w0, w24 - bne .L1430 -.L1434: + bne .L1429 +.L1433: add x1, x19, :lo12:.LANCHOR2 ldrh w0, [x22,10] mov w2, 65535 strh w0, [x1,1294] ldrh w0, [x22,12] cmp w0, w2 - bne .L1431 - b .L1432 -.L1430: + bne .L1430 + b .L1431 +.L1429: sub w21, w21, #1 sxth w21, w21 - b .L1429 -.L1431: + b .L1428 +.L1430: ldr w2, [x1,736] cmp w0, w2 - beq .L1432 + beq .L1431 ldrh w1, [x1,750] lsr w1, w1, 2 cmp w0, w1 - bcs .L1432 + bcs .L1431 cmp w2, w1 - bcs .L1432 + bcs .L1431 bl FtlSysBlkNumInit -.L1432: +.L1431: add x19, x19, :lo12:.LANCHOR2 mov x20, 0 add x21, x19, 1288 -.L1435: +.L1434: ldrh w0, [x19,762] mov w1, w20 add x20, x20, 1 cmp w1, w0 - bcs .L1453 + bcs .L1452 ldrh w2, [x19,1280] add x0, x21, x20, lsl 3 ldr x3, [x19,1408] @@ -8909,10 +8915,10 @@ FtlLoadBbt: lsl w2, w2, 2 add x1, x3, x1, lsl 2 bl ftl_memcpy - b .L1435 -.L1453: + b .L1434 +.L1452: mov w0, 0 -.L1425: +.L1424: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -8974,10 +8980,10 @@ FtlFreeSysBlkQueueIn: uxth w22, w0 ldrh w0, [x20,1462] cmp w0, 1024 - beq .L1457 - cbz w1, .L1459 + beq .L1456 + cbz w1, .L1458 ldr w0, [x20,1392] - cbnz w0, .L1459 + cbnz w0, .L1458 mov w0, w22 bl P2V_block_in_plane uxth w21, w0 @@ -8996,7 +9002,7 @@ FtlFreeSysBlkQueueIn: ldr w0, [x20,904] add w0, w0, 1 str w0, [x20,904] -.L1459: +.L1458: add x1, x19, :lo12:.LANCHOR2 add x1, x1, 1456 ldrh w0, [x1,6] @@ -9008,7 +9014,7 @@ FtlFreeSysBlkQueueIn: and w2, w2, 1023 strh w22, [x0,8] strh w2, [x1,4] -.L1457: +.L1456: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x29, x30, [sp], 48 @@ -9031,7 +9037,7 @@ FtlLowFormatEraseBlock: uxtb w24, w1 ldr w3, [x2,1392] mov w0, 0 - cbnz w3, .L1467 + cbnz w3, .L1466 adrp x23, .LANCHOR0 str w25, [x2,936] add x0, x23, :lo12:.LANCHOR0 @@ -9044,10 +9050,10 @@ FtlLowFormatEraseBlock: mov w26, 56 str w0, [x29,124] mov w28, 4 -.L1468: +.L1467: ldrh w0, [x23,740] cmp w0, w27 - bls .L1512 + bls .L1511 umull x0, w27, w26 ldr x1, [x23,1008] str wzr, [x1,x0] @@ -9057,15 +9063,15 @@ FtlLowFormatEraseBlock: bl V2P_block uxth w19, w0 mov w1, w19 - cbz w24, .L1469 + cbz w24, .L1468 str x1, [x29,104] bl IsBlkInVendorPart ldr x1, [x29,104] - cbnz w0, .L1470 -.L1469: + cbnz w0, .L1469 +.L1468: mov w0, w1 bl FtlBbmIsBadBlock - cbnz w0, .L1471 + cbnz w0, .L1470 umull x0, w20, w26 ldr x1, [x23,1008] lsl w19, w19, 10 @@ -9082,18 +9088,18 @@ FtlLowFormatEraseBlock: uxth w20, w20 add x0, x4, x0, sxtw 2 str x0, [x1,16] - b .L1470 -.L1471: + b .L1469 +.L1470: add w22, w22, 1 uxth w22, w22 -.L1470: +.L1469: add w3, w27, 1 uxth w27, w3 - b .L1468 -.L1512: + b .L1467 +.L1511: mov w19, w22 mov w0, w22 - cbz w20, .L1467 + cbz w20, .L1466 ldr w0, [x29,124] mov w2, w20 mov x26, 0 @@ -9103,56 +9109,56 @@ FtlLowFormatEraseBlock: cset w22, ne mov w1, w22 bl FlashEraseBlocks -.L1474: +.L1473: cmp w20, w26, uxth - bls .L1513 + bls .L1512 add x1, x21, :lo12:.LANCHOR2 mul x0, x26, x27 ldr x1, [x1,1008] add x2, x1, x0 ldr w0, [x1,x0] cmn w0, #1 - bne .L1475 + bne .L1474 ldr w0, [x2,4] add w19, w19, 1 lsr w0, w0, 10 uxth w19, w19 bl FtlBbmMapBadBlock -.L1475: +.L1474: add x26, x26, 1 - b .L1474 -.L1513: - cbnz w24, .L1477 + b .L1473 +.L1512: + cbnz w24, .L1476 mov w0, 1 uxth w22, w22 mov w27, 6 str w0, [x29,124] - b .L1478 -.L1477: + b .L1477 +.L1476: add x0, x21, :lo12:.LANCHOR2 ldrh w0, [x0,812] str w0, [x29,124] ldr x0, [x29,112] add x23, x0, :lo12:.LANCHOR0 ldrb w0, [x23,136] - cbnz w0, .L1494 + cbnz w0, .L1493 ldr w0, [x29,124] mov w22, 1 lsr w27, w0, 2 - b .L1478 -.L1494: + b .L1477 +.L1493: mov w22, 1 mov w27, w22 -.L1478: +.L1477: mov w23, 0 add x28, x21, :lo12:.LANCHOR2 -.L1487: +.L1486: mov w26, 0 mov w20, w26 -.L1479: +.L1478: ldrh w0, [x28,740] cmp w0, w26 - bls .L1514 + bls .L1513 mov w0, 56 ldr x1, [x28,1008] umull x0, w26, w0 @@ -9164,15 +9170,15 @@ FtlLowFormatEraseBlock: uxth w2, w0 str w2, [x29,112] mov w1, w2 - cbz w24, .L1480 + cbz w24, .L1479 str x1, [x29,104] bl IsBlkInVendorPart ldr x1, [x29,104] - cbnz w0, .L1481 -.L1480: + cbnz w0, .L1480 +.L1479: mov w0, w1 bl FtlBbmIsBadBlock - cbnz w0, .L1481 + cbnz w0, .L1480 mov w0, 56 ldr x1, [x28,1008] ldr w2, [x29,112] @@ -9193,27 +9199,27 @@ FtlLowFormatEraseBlock: ldr x2, [x28,1088] add x0, x2, x0, sxtw 2 str x0, [x1,16] -.L1481: +.L1480: add w3, w26, 1 uxth w26, w3 - b .L1479 -.L1514: - cbz w20, .L1491 + b .L1478 +.L1513: + cbz w20, .L1490 ldr x0, [x28,1008] mov w1, w20 mov w2, w22 mov w3, 1 bl FlashProgPages mov x1, 0 -.L1484: +.L1483: cmp w20, w1, uxth - bls .L1515 + bls .L1514 mov x0, 56 ldr x2, [x28,1008] mul x0, x1, x0 add x3, x2, x0 ldr w0, [x2,x0] - cbz w0, .L1485 + cbz w0, .L1484 ldr w0, [x3,4] add w19, w19, 1 str x1, [x29,112] @@ -9221,47 +9227,47 @@ FtlLowFormatEraseBlock: uxth w19, w19 bl FtlBbmMapBadBlock ldr x1, [x29,112] -.L1485: +.L1484: add x1, x1, 1 - b .L1484 -.L1515: + b .L1483 +.L1514: add w23, w23, w27 ldr w0, [x29,124] uxth w23, w23 cmp w23, w0 - bcc .L1487 + bcc .L1486 mov x23, 0 mov x26, 56 -.L1488: +.L1487: cmp w20, w23, uxth - bls .L1516 - cbz w24, .L1489 + bls .L1515 + cbz w24, .L1488 add x1, x21, :lo12:.LANCHOR2 mul x0, x23, x26 ldr x1, [x1,1008] add x2, x1, x0 ldr w0, [x1,x0] - cbnz w0, .L1489 + cbnz w0, .L1488 ldr w0, [x2,4] mov w1, 1 lsr w0, w0, 10 bl FtlFreeSysBlkQueueIn -.L1489: +.L1488: add x23, x23, 1 - b .L1488 -.L1516: + b .L1487 +.L1515: cmp w25, 63 - bls .L1495 - cbz w24, .L1491 -.L1495: + bls .L1494 + cbz w24, .L1490 +.L1494: add x21, x21, :lo12:.LANCHOR2 mov w1, w22 mov w2, w20 ldr x0, [x21,1008] bl FlashEraseBlocks -.L1491: +.L1490: mov w0, w19 -.L1467: +.L1466: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -9282,10 +9288,10 @@ FtlFreeSysBLkSort: add x20, x20, :lo12:.LANCHOR2 mov w19, 0 add x21, x20, 1456 -.L1518: +.L1517: ldrh w0, [x21,6] cmp w0, w19 - bls .L1526 + bls .L1525 ldrh w0, [x21,2] add w0, w0, w19 add x0, x21, x0, sxtw 1 @@ -9299,24 +9305,24 @@ FtlFreeSysBLkSort: ldrh w0, [x3,x0] uxth w19, w19 str w0, [x2,x1] - b .L1518 -.L1526: + b .L1517 +.L1525: adrp x3, .LANCHOR2 mov w0, 0 add x3, x3, :lo12:.LANCHOR2 -.L1520: +.L1519: ldrh w6, [x3,1462] sub w1, w6, #1 cmp w0, w1 - bge .L1527 + bge .L1526 add w5, w0, 1 ldr x4, [x3,1040] mov w1, w0 uxth w5, w5 mov w2, w5 -.L1521: +.L1520: cmp w2, w6 - bcs .L1528 + bcs .L1527 ubfiz x7, x2, 2, 16 ldr w8, [x4,w1,uxtw 2] ldr w7, [x4,x7] @@ -9324,10 +9330,10 @@ FtlFreeSysBLkSort: csel w1, w1, w2, ls add w2, w2, 1 uxth w2, w2 - b .L1521 -.L1528: + b .L1520 +.L1527: cmp w0, w1 - beq .L1524 + beq .L1523 ubfiz x2, x0, 2, 16 ubfiz x6, x1, 2, 32 ldr w8, [x4,x2] @@ -9345,10 +9351,10 @@ FtlFreeSysBLkSort: ldrh w6, [x1,8] strh w2, [x1,8] strh w6, [x0,8] -.L1524: +.L1523: mov w0, w5 - b .L1520 -.L1527: + b .L1519 +.L1526: ldp x19, x20, [sp,16] ldr x21, [sp,32] ldp x29, x30, [sp], 48 @@ -9367,18 +9373,18 @@ remove_from_free_sys_Queue: add x20, x20, :lo12:.LANCHOR2 add x20, x20, 1456 ldrh w3, [x20,6] - cbz w3, .L1530 + cbz w3, .L1529 ldrh w4, [x20,2] mov w19, w0 -.L1531: +.L1530: cmp w19, w3 - bcs .L1536 + bcs .L1535 add w2, w19, w4 ubfiz x2, x2, 1, 10 add x2, x20, x2 ldrh w0, [x2,8] cmp w0, w1 - bne .L1532 + bne .L1531 adrp x0, .LC34 add x0, x0, :lo12:.LC34 bl printk @@ -9396,13 +9402,13 @@ remove_from_free_sys_Queue: strh w1, [x19,8] strh w0, [x20,6] mov w0, 1 - b .L1530 -.L1532: + b .L1529 +.L1531: add w19, w19, 1 - b .L1531 -.L1536: + b .L1530 +.L1535: mov w0, 0 -.L1530: +.L1529: ldp x19, x20, [sp,16] ldp x29, x30, [sp], 32 ret @@ -9420,7 +9426,7 @@ FtlFreeSysBlkQueueOut: add x22, x19, :lo12:.LANCHOR2 add x2, x22, 1456 ldrh w0, [x22,1462] - cbz w0, .L1538 + cbz w0, .L1537 ldrh w1, [x22,1458] add x3, x2, x1, sxtw 1 sub w0, w0, #1 @@ -9431,7 +9437,7 @@ FtlFreeSysBlkQueueOut: strh w1, [x22,1458] ldr w1, [x22,1392] str x1, [x29,56] - cbnz w1, .L1538 + cbnz w1, .L1537 mov w0, w20 bl P2V_block_in_plane uxth w21, w0 @@ -9441,11 +9447,11 @@ FtlFreeSysBlkQueueOut: str w2, [x0,4] adrp x0, .LANCHOR0+136 ldrb w0, [x0,#:lo12:.LANCHOR0+136] - cbz w0, .L1539 + cbz w0, .L1538 ldr x0, [x22,1008] mov w2, 1 bl FlashEraseBlocks -.L1539: +.L1538: add x19, x19, :lo12:.LANCHOR2 mov w1, 1 mov w2, w1 @@ -9459,7 +9465,7 @@ FtlFreeSysBlkQueueOut: ldr w0, [x19,904] add w0, w0, 1 str w0, [x19,904] -.L1538: +.L1537: mov w0, w20 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -9476,7 +9482,7 @@ insert_data_list: mov x4, x2 ldrh w1, [x3,748] cmp w1, w0 - bls .L1547 + bls .L1546 mov w7, 6 ldr x11, [x3,1272] mov w1, -1 @@ -9485,10 +9491,10 @@ insert_data_list: strh w1, [x5,2] strh w1, [x11,x10] ldr x1, [x3,3512] - cbnz x1, .L1548 + cbnz x1, .L1547 str x5, [x3,3512] - b .L1547 -.L1548: + b .L1546 +.L1547: ubfiz x8, x0, 1, 16 ldr x13, [x3,1176] ldrh w2, [x5,4] @@ -9508,13 +9514,13 @@ insert_data_list: add x9, x14, x8 mov w8, w7 uxth w2, w2 -.L1556: +.L1555: add w3, w3, 1 cmp w0, w2 uxth w3, w3 - beq .L1547 + beq .L1546 cmp w3, w17 - bhi .L1547 + bhi .L1546 ubfiz x15, x2, 1, 16 ldrh w16, [x1,4] cmp w16, wzr @@ -9522,47 +9528,47 @@ insert_data_list: mul w7, w7, w16 csinv w7, w7, wzr, ne cmp w7, w6 - bne .L1552 + bne .L1551 ldrh w15, [x14,x15] ldrh w7, [x9] cmp w15, w7 - bcc .L1554 - b .L1553 -.L1552: - bhi .L1553 -.L1554: + bcc .L1553 + b .L1552 +.L1551: + bhi .L1552 +.L1553: ldrh w7, [x1] cmp w7, w18 - bne .L1555 + bne .L1554 strh w2, [x5,2] add x2, x4, :lo12:.LANCHOR2 strh w0, [x1] str x5, [x2,3520] - b .L1547 -.L1555: + b .L1546 +.L1554: umull x1, w7, w8 mov w2, w7 add x1, x12, x1 - b .L1556 -.L1553: + b .L1555 +.L1552: strh w2, [x11,x10] ldrh w2, [x1,2] strh w2, [x5,2] add x2, x4, :lo12:.LANCHOR2 ldr x3, [x2,3512] cmp x1, x3 - bne .L1557 + bne .L1556 strh w0, [x1,2] str x5, [x2,3512] - b .L1547 -.L1557: + b .L1546 +.L1556: ldrh w3, [x1,2] mov w4, 6 ldr x2, [x2,1272] umull x3, w3, w4 strh w0, [x2,x3] strh w0, [x1,2] -.L1547: +.L1546: mov w0, 0 ret .size insert_data_list, .-insert_data_list @@ -9588,7 +9594,7 @@ insert_free_list: uxth w0, w0 mov w7, 65535 cmp w0, w7 - beq .L1562 + beq .L1561 adrp x2, .LANCHOR2 mov w6, 6 add x5, x2, :lo12:.LANCHOR2 @@ -9600,10 +9606,10 @@ insert_free_list: strh w1, [x4,2] strh w1, [x9,x8] ldr x1, [x5,3536] - cbnz x1, .L1563 + cbnz x1, .L1562 str x4, [x5,3536] - b .L1562 -.L1563: + b .L1561 +.L1562: ldr x11, [x5,1160] ubfiz x2, x0, 1, 16 ldr x10, [x5,1272] @@ -9613,41 +9619,41 @@ insert_free_list: asr x2, x2, 1 madd x2, x5, x2, x2 uxth w2, w2 -.L1566: +.L1565: ubfiz x5, x2, 1, 16 ldrh w5, [x11,x5] cmp w5, w12 - bcs .L1564 + bcs .L1563 ldrh w5, [x1] cmp w5, w7 - bne .L1565 + bne .L1564 strh w2, [x4,2] strh w0, [x1] - b .L1562 -.L1565: + b .L1561 +.L1564: umull x1, w5, w6 mov w2, w5 add x1, x10, x1 - b .L1566 -.L1564: + b .L1565 +.L1563: ldrh w5, [x1,2] strh w5, [x4,2] strh w2, [x9,x8] add x2, x3, :lo12:.LANCHOR2 ldr x3, [x2,3536] cmp x1, x3 - bne .L1567 + bne .L1566 strh w0, [x1,2] str x4, [x2,3536] - b .L1562 -.L1567: + b .L1561 +.L1566: ldrh w3, [x1,2] mov w4, 6 ldr x2, [x2,1272] umull x3, w3, w4 strh w0, [x2,x3] strh w0, [x1,2] -.L1562: +.L1561: mov w0, 0 ret .size insert_free_list, .-insert_free_list @@ -9680,31 +9686,31 @@ List_remove_node: ldr x2, [x6,1272] add x4, x2, x1 cmp x4, x3 - bne .L1570 + bne .L1569 ldrh w3, [x2,x1] cmp w3, w7 - bne .L1571 + bne .L1570 str xzr, [x0] - b .L1572 -.L1571: + b .L1571 +.L1570: umull x3, w3, w5 add x3, x2, x3 str x3, [x0] mov w0, -1 strh w0, [x3,2] - b .L1572 -.L1570: + b .L1571 +.L1569: ldrh w0, [x2,x1] ldrh w3, [x4,2] cmp w0, w7 - bne .L1573 + bne .L1572 cmp w3, w0 - beq .L1572 + beq .L1571 umull x3, w3, w5 mov w0, -1 strh w0, [x2,x3] - b .L1572 -.L1573: + b .L1571 +.L1572: umull x0, w0, w5 add x0, x2, x0 strh w3, [x0,2] @@ -9713,7 +9719,7 @@ List_remove_node: ldrh w7, [x2,x1] umull x3, w3, w5 strh w7, [x0,x3] -.L1572: +.L1571: mov w0, -1 strh w0, [x2,x1] strh w0, [x4,2] @@ -9730,14 +9736,14 @@ List_pop_index_node: str x19, [sp,16] mov w19, 65535 ldr x2, [x0] - cbz x2, .L1575 + cbz x2, .L1574 adrp x3, .LANCHOR2+1272 mov w5, w19 mov w6, 6 ldr x4, [x3,#:lo12:.LANCHOR2+1272] -.L1576: - cbnz w1, .L1577 -.L1579: +.L1575: + cbnz w1, .L1576 +.L1578: sub x2, x2, x4 mov x1, -6148914691236517206 asr x2, x2, 1 @@ -9745,17 +9751,17 @@ List_pop_index_node: uxth w19, w2 mov w1, w19 bl List_remove_node - b .L1575 -.L1577: + b .L1574 +.L1576: ldrh w3, [x2] cmp w3, w5 - beq .L1579 + beq .L1578 umull x3, w3, w6 sub w1, w1, #1 add x2, x4, x3 uxth w1, w1 - b .L1576 -.L1575: + b .L1575 +.L1574: mov w0, w19 ldr x19, [sp,16] ldp x29, x30, [sp], 32 @@ -9770,26 +9776,26 @@ List_get_gc_head_node: add x2, x2, :lo12:.LANCHOR2 mov w0, 65535 ldr x1, [x2,3512] - cbz x1, .L1587 + cbz x1, .L1586 ldr x4, [x2,1272] mov w5, 6 -.L1583: - cbz w3, .L1584 +.L1582: + cbz w3, .L1583 ldrh w2, [x1] cmp w2, w0 - beq .L1587 + beq .L1586 umull x2, w2, w5 sub w3, w3, #1 add x1, x4, x2 uxth w3, w3 - b .L1583 -.L1584: + b .L1582 +.L1583: sub x1, x1, x4 mov x0, -6148914691236517206 asr x1, x1, 1 madd x1, x0, x1, x1 uxth w0, w1 -.L1587: +.L1586: ret .size List_get_gc_head_node, .-List_get_gc_head_node .align 2 @@ -9804,35 +9810,35 @@ List_update_data_list: add x0, x19, :lo12:.LANCHOR2 ldrh w1, [x0,3552] cmp w1, w20 - beq .L1589 + beq .L1588 ldrh w1, [x0,3600] cmp w1, w20 - beq .L1589 + beq .L1588 ldrh w1, [x0,3648] cmp w1, w20 - beq .L1589 + beq .L1588 mov w3, 6 ldr x4, [x0,1272] ldr x2, [x0,3512] umull x3, w20, w3 add x1, x4, x3 cmp x1, x2 - beq .L1589 + beq .L1588 ldr x5, [x0,1176] ubfiz x0, x20, 1, 16 - ldrh w2, [x1,4] + 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 .L1591 + bne .L1590 ldrh w0, [x4,x3] cmp w0, w1 - beq .L1589 -.L1591: + beq .L1588 +.L1590: mov w0, 6 mov x3, -6148914691236517206 umull x1, w1, w0 @@ -9841,11 +9847,11 @@ 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 .L1589 + bcs .L1588 add x19, x19, :lo12:.LANCHOR2 mov w1, w20 add x0, x19, 3512 @@ -9855,7 +9861,7 @@ List_update_data_list: strh w0, [x19,3528] mov w0, w20 bl INSERT_DATA_LIST -.L1589: +.L1588: mov w0, 0 ldp x19, x20, [sp,16] ldp x29, x30, [sp], 32 @@ -9882,74 +9888,74 @@ ftl_free_no_use_map_blk: mov x0, x21 bl ftl_memset mov w0, 0 -.L1594: +.L1595: ldrh w1, [x19,6] cmp w1, w0 - bls .L1607 + bls .L1608 ubfiz x1, x0, 2, 16 ldr w2, [x20,x1] mov w1, 0 ubfx x2, x2, 10, 16 -.L1595: +.L1596: ldrh w3, [x19,10] cmp w3, w1 - bls .L1608 + bls .L1609 ubfiz x3, x1, 1, 16 ldrh w4, [x25,x3] cmp w4, w2 - bne .L1596 + bne .L1597 ldrh w4, [x21,x3] add w4, w4, 1 strh w4, [x21,x3] -.L1596: +.L1597: add w1, w1, 1 uxth w1, w1 - b .L1595 -.L1608: + b .L1596 +.L1609: add w0, w0, 1 uxth w0, w0 - b .L1594 -.L1607: + b .L1595 +.L1608: mov w24, 0 ldrh w26, [x21] mov w20, w24 adrp x27, .LANCHOR2 -.L1599: +.L1600: ldrh w0, [x19,10] cmp w0, w20 - bls .L1609 + bls .L1610 ldrh w0, [x19] uxtw x22, w20 cmp w0, w20 - bne .L1600 + bne .L1601 add x0, x27, :lo12:.LANCHOR2 ldrh w1, [x19,2] ldrh w0, [x0,812] cmp w1, w0 - bcs .L1600 + bcs .L1601 strh w0, [x21,x22,lsl 1] -.L1600: +.L1601: lsl x22, x22, 1 ldrh w23, [x21,x22] cmp w26, w23 - bls .L1601 + bls .L1602 mov w24, w20 mov w26, w23 -.L1601: - cbnz w23, .L1602 +.L1602: + cbnz w23, .L1603 ldrh w0, [x25,x22] - cbz w0, .L1602 + cbz w0, .L1603 mov w1, 1 bl FtlFreeSysBlkQueueIn strh w23, [x25,x22] ldrh w0, [x19,8] sub w0, w0, #1 strh w0, [x19,8] -.L1602: +.L1603: add w20, w20, 1 uxth w20, w20 - b .L1599 -.L1609: + b .L1600 +.L1610: mov w0, w24 ldr x27, [sp,80] ldp x19, x20, [sp,16] @@ -9970,17 +9976,17 @@ ftl_map_blk_alloc_new_blk: mov w20, 0 ldrh w2, [x0,10] ldr x1, [x0,16] -.L1611: +.L1612: cmp w20, w2 - beq .L1614 + beq .L1615 mov x22, x1 ldrh w21, [x1],2 - cbnz w21, .L1612 + cbnz w21, .L1613 mov x19, x0 bl FtlFreeSysBlkQueueOut uxth w1, w0 strh w0, [x22] - cbz w1, .L1614 + cbz w1, .L1615 ldr w0, [x19,48] strh w21, [x19,2] add w0, w0, 1 @@ -9989,12 +9995,12 @@ ftl_map_blk_alloc_new_blk: strh w20, [x19] add w0, w0, 1 strh w0, [x19,8] - b .L1614 -.L1612: + b .L1615 +.L1613: add w20, w20, 1 uxth w20, w20 - b .L1611 -.L1614: + b .L1612 +.L1615: mov w0, 0 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -10018,12 +10024,12 @@ FtlMapWritePage: mov w24, w1 stp x27, x28, [sp,80] mov x25, x2 - cbnz w21, .L1618 + cbnz w21, .L1619 adrp x23, .LC35 mov w26, 65535 add x28, x22, 1400 add x23, x23, :lo12:.LC35 -.L1619: +.L1620: ldr w1, [x22,888] add w1, w1, 1 str w1, [x22,888] @@ -10031,14 +10037,14 @@ FtlMapWritePage: ldrh w0, [x19,2] sub w1, w1, #1 cmp w0, w1 - bge .L1620 + bge .L1621 ldrh w0, [x19] cmp w0, w26 - bne .L1621 -.L1620: + bne .L1622 +.L1621: mov x0, x19 bl Ftl_write_map_blk_to_last_page -.L1621: +.L1622: ldrh w1, [x19] mov w2, 16 ldr x0, [x19,16] @@ -10069,7 +10075,7 @@ FtlMapWritePage: strh w3, [x19,2] ldr w1, [x28] cmn w1, #1 - bne .L1622 + bne .L1623 ldr w1, [x28,4] mov x0, x23 add w21, w21, 1 @@ -10077,13 +10083,13 @@ FtlMapWritePage: uxth w21, w21 ldrh w0, [x19,2] cmp w0, 2 - bhi .L1623 + bhi .L1624 ldrh w1, [x22,812] sub w1, w1, #1 strh w1, [x19,2] -.L1623: +.L1624: cmp w21, 3 - bls .L1619 + bls .L1620 add x20, x20, :lo12:.LANCHOR2 adrp x0, .LC36 add x0, x0, :lo12:.LC36 @@ -10092,20 +10098,20 @@ FtlMapWritePage: bl printk mov w0, 1 str w0, [x20,1392] - b .L1618 -.L1622: - cbz w1, .L1625 + b .L1619 +.L1623: + cbz w1, .L1626 strh w27, [x19,60] -.L1625: +.L1626: cmp w3, 1 - beq .L1619 + beq .L1620 cmp w1, 256 - beq .L1619 + beq .L1620 add x20, x20, :lo12:.LANCHOR2 ldr x0, [x19,40] ldr w1, [x20,1404] str w1, [x0,w24,uxtw 2] -.L1618: +.L1619: mov w0, 0 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -10135,39 +10141,39 @@ ftl_map_blk_gc: ldrh w2, [x19,8] sub w1, w4, #4 cmp w2, w1 - bge .L1630 + bge .L1631 ldrh w2, [x19,60] mov w1, 65535 cmp w2, w1 - beq .L1632 + beq .L1633 add x1, x20, :lo12:.LANCHOR2 ldrh w2, [x19,2] ldrh w1, [x1,812] cmp w2, w1 - bcc .L1632 -.L1630: + bcc .L1633 +.L1631: ldrh w1, [x19,60] uxth w21, w0 mov w0, 65535 cmp w1, w0 - beq .L1634 + beq .L1635 add x0, x20, :lo12:.LANCHOR2 ldrh w3, [x19,2] ldrh w0, [x0,812] cmp w0, w3 - bhi .L1634 + bhi .L1635 mov x2, 0 -.L1635: +.L1636: uxth w0, w2 cmp w0, w4 - bcs .L1636 + bcs .L1637 add x2, x2, 1 add x5, x22, x2, lsl 1 ldrh w5, [x5,-2] cmp w5, w1 - bne .L1635 + bne .L1636 mov w21, w0 -.L1636: +.L1637: ubfiz x2, x0, 1, 16 adrp x0, .LC37 add x0, x0, :lo12:.LC37 @@ -10175,12 +10181,12 @@ ftl_map_blk_gc: bl printk mov w0, -1 strh w0, [x19,60] -.L1634: +.L1635: ubfiz x21, x21, 1, 16 ldrh w25, [x22,x21] - cbz w25, .L1632 + cbz w25, .L1633 ldr w0, [x19,52] - cbnz w0, .L1632 + cbnz w0, .L1633 mov w1, 1 str w1, [x19,52] strh w0, [x22,x21] @@ -10191,24 +10197,24 @@ ftl_map_blk_gc: add x0, x20, :lo12:.LANCHOR2 ldrh w0, [x0,812] cmp w1, w0 - bcc .L1638 + bcc .L1639 mov x0, x19 bl ftl_map_blk_alloc_new_blk -.L1638: +.L1639: add x24, x20, :lo12:.LANCHOR2 adrp x26, .LC38 mov w21, 0 add x22, x24, 1400 mov w27, 1 add x26, x26, :lo12:.LC38 -.L1639: +.L1640: ldrh w0, [x19,6] cmp w0, w21 - bls .L1649 + bls .L1650 ubfiz x28, x21, 2, 16 ldr w0, [x23,x28] cmp w25, w0, lsr 10 - bne .L1640 + bne .L1641 ldr x3, [x24,1104] mov w1, 1 ldr x0, [x24,1048] @@ -10223,37 +10229,37 @@ ftl_map_blk_gc: ldr w0, [x22] ldr x3, [x29,104] cmn w0, #1 - bne .L1641 + bne .L1642 str wzr, [x23,x28] mov x0, x26 ldr w1, [x22,4] ldrh w2, [x3,8] bl printk str w27, [x24,1392] - b .L1640 -.L1641: + b .L1641 +.L1642: ldr x2, [x22,8] mov x0, x19 mov w1, w21 bl FtlMapWritePage -.L1640: +.L1641: add w21, w21, 1 uxth w21, w21 - b .L1639 -.L1649: + b .L1640 +.L1650: mov w0, w25 mov w1, 1 bl FtlFreeSysBlkQueueIn str wzr, [x19,52] -.L1632: +.L1633: add x20, x20, :lo12:.LANCHOR2 ldrh w1, [x19,2] ldrh w0, [x20,812] cmp w1, w0 - bcc .L1643 + bcc .L1644 mov x0, x19 bl ftl_map_blk_alloc_new_blk -.L1643: +.L1644: mov w0, 0 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -10277,12 +10283,12 @@ Ftl_write_map_blk_to_last_page: ldr w20, [x1,1392] ldr x22, [x0,16] ldr x23, [x0,40] - cbnz w20, .L1651 + cbnz w20, .L1652 mov x19, x0 ldrh w0, [x0] mov w2, 65535 cmp w0, w2 - bne .L1652 + bne .L1653 ldrh w0, [x19,8] add w0, w0, 1 strh w0, [x19,8] @@ -10293,8 +10299,8 @@ Ftl_write_map_blk_to_last_page: strh w20, [x19] add w0, w0, 1 str w0, [x19,48] - b .L1651 -.L1652: + b .L1652 +.L1653: ubfiz x0, x0, 1, 16 ldr w2, [x19,48] ldrh w22, [x22,x0] @@ -10317,14 +10323,14 @@ Ftl_write_map_blk_to_last_page: lsl w2, w2, 3 bl ftl_memset mov w0, w20 -.L1653: +.L1654: ldrh w1, [x19,6] cmp w1, w0 - bls .L1656 + bls .L1657 ubfiz x3, x0, 2, 32 ldr w1, [x23,x3] cmp w22, w1, lsr 10 - bne .L1654 + bne .L1655 add x2, x21, :lo12:.LANCHOR2 add w20, w20, 1 uxth w20, w20 @@ -10335,11 +10341,11 @@ Ftl_write_map_blk_to_last_page: ldr w3, [x23,x3] add x1, x2, x1 str w3, [x1,4] -.L1654: +.L1655: add w0, w0, 1 uxth w0, w0 - b .L1653 -.L1656: + b .L1654 +.L1657: mov w1, 1 add x0, x21, :lo12:.LANCHOR2 add x0, x0, 1400 @@ -10351,7 +10357,7 @@ Ftl_write_map_blk_to_last_page: strh w0, [x19,2] mov x0, x19 bl ftl_map_blk_gc -.L1651: +.L1652: mov w0, 0 ldr x23, [sp,48] ldp x19, x20, [sp,16] @@ -10396,63 +10402,63 @@ select_l2p_ram_region: mov w5, 65535 ldrh w2, [x1,850] ldr x1, [x1,1256] -.L1659: +.L1660: uxth w0, w4 cmp w0, w2 - bcs .L1675 + bcs .L1676 add x4, x4, 1 add x6, x1, x4, lsl 4 ldrh w6, [x6,-16] cmp w6, w5 - bne .L1659 - b .L1660 -.L1675: + bne .L1660 + b .L1661 +.L1676: mov w0, w2 mov x4, 0 mov w7, -2147483648 -.L1662: +.L1663: uxth w6, w4 cmp w6, w2 - bcs .L1676 + bcs .L1677 add x5, x1, x4, lsl 4 ldr w5, [x5,4] - tbnz w5, #31, .L1671 + tbnz w5, #31, .L1672 cmp w5, w7 - bcc .L1663 -.L1671: + bcc .L1664 +.L1672: mov w5, w7 mov w6, w0 -.L1663: +.L1664: add x4, x4, 1 mov w7, w5 mov w0, w6 - b .L1662 -.L1676: + b .L1663 +.L1677: cmp w0, w2 - bcc .L1660 + bcc .L1661 add x0, x3, :lo12:.LANCHOR2 add x1, x1, 4 mov w4, -1 mov w3, 0 ldrh w5, [x0,3760] mov w0, w2 -.L1666: +.L1667: cmp w3, w2 - beq .L1660 + beq .L1661 ldr w7, [x1] cmp w7, w4 - bcs .L1667 + bcs .L1668 ldrh w6, [x1,-4] cmp w6, w5 csel w4, w4, w7, eq cmp w6, w5 csel w0, w0, w3, eq -.L1667: +.L1668: add w3, w3, 1 add x1, x1, 16 uxth w3, w3 - b .L1666 -.L1660: + b .L1667 +.L1661: ret .size select_l2p_ram_region, .-select_l2p_ram_region .align 2 @@ -10482,25 +10488,25 @@ log2phys: uxth w25, w28 mov x0, 0 uxth x23, w23 -.L1678: +.L1679: uxth x19, w0 cmp w19, w1 - bcs .L1692 + bcs .L1693 add x0, x0, 1 add x2, x20, x0, lsl 4 ldrh w2, [x2,-16] cmp w2, w25 - bne .L1678 -.L1679: - cbnz w27, .L1680 + bne .L1679 +.L1680: + cbnz w27, .L1681 add x0, x21, :lo12:.LANCHOR2 ldr x1, [x0,1256] add x1, x1, x19, lsl 4 ldr x0, [x1,8] ldr w0, [x0,x23,lsl 2] str w0, [x26] - b .L1681 -.L1680: + b .L1682 +.L1681: add x1, x21, :lo12:.LANCHOR2 lsl x0, x19, 4 ldr w3, [x26] @@ -10514,17 +10520,17 @@ log2phys: ldr w2, [x0,4] orr w2, w2, -2147483648 str w2, [x0,4] -.L1681: +.L1682: add x21, x21, :lo12:.LANCHOR2 ldr x0, [x21,1256] add x19, x0, x19, lsl 4 ldr w0, [x19,4] cmn w0, #1 - beq .L1689 + beq .L1690 add w0, w0, 1 str w0, [x19,4] - b .L1689 -.L1692: + b .L1690 +.L1693: bl select_l2p_ram_region uxth x19, w0 ubfiz x22, x19, 4, 16 @@ -10532,16 +10538,16 @@ log2phys: add x1, x20, x22 ldrh w3, [x20,x22] cmp w3, w2 - beq .L1684 + beq .L1685 ldr w1, [x1,4] - tbz w1, #31, .L1684 + tbz w1, #31, .L1685 bl flush_l2p_region -.L1684: +.L1685: add x20, x21, :lo12:.LANCHOR2 ubfiz x0, x25, 2, 16 ldr x1, [x20,1232] ldr w24, [x1,x0] - cbnz w24, .L1685 + cbnz w24, .L1686 ldr x0, [x20,1256] mov w1, 255 ldrh w2, [x20,820] @@ -10553,8 +10559,8 @@ log2phys: ldr x0, [x20,1256] add x22, x0, x22 str w24, [x22,4] - b .L1679 -.L1685: + b .L1680 +.L1686: ldr x1, [x20,1256] add x0, x20, 1400 str w24, [x0,4] @@ -10568,7 +10574,7 @@ log2phys: bl FlashReadPages ldr w0, [x20,1400] cmp w0, 256 - bne .L1686 + bne .L1687 and w28, w28, 65535 adrp x0, .LC39 mov w2, w24 @@ -10583,15 +10589,15 @@ log2phys: add x2, x2, x22 ldr x2, [x2,8] bl FtlMapWritePage -.L1686: +.L1687: add x1, x21, :lo12:.LANCHOR2 ldr x0, [x1,1256] add x0, x0, x22 str wzr, [x0,4] ldr x0, [x1,1256] strh w25, [x0,x22] - b .L1679 -.L1689: + b .L1680 +.L1690: mov w0, 0 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -10622,12 +10628,12 @@ FtlVendorPartWrite: mov x24, x2 ldrh w23, [x19,818] mov w21, -1 - bhi .L1694 + bhi .L1695 lsr w23, w25, w23 mov w21, 0 add x27, x19, 3768 -.L1695: - cbz w22, .L1694 +.L1696: + cbz w22, .L1695 ldrh w1, [x19,816] ldr x0, [x19,1224] udiv w26, w25, w1 @@ -10639,8 +10645,8 @@ FtlVendorPartWrite: cmp w20, w22 csel w20, w0, w20, hi cmp w20, w1 - beq .L1697 - cbz w2, .L1697 + beq .L1698 + cbz w2, .L1698 ldr x0, [x19,1056] mov w1, 1 str w2, [x29,108] @@ -10649,13 +10655,13 @@ FtlVendorPartWrite: add x0, x29, 104 str xzr, [x29,120] bl FlashReadPages - b .L1698 -.L1697: + b .L1699 +.L1698: ldr x0, [x19,1056] mov w1, 0 ldrh w2, [x19,820] bl ftl_memset -.L1698: +.L1699: ldr x0, [x19,1056] lsl w28, w20, 9 ubfiz x26, x26, 9, 16 @@ -10673,8 +10679,8 @@ FtlVendorPartWrite: bl FtlMapWritePage cmn w0, #1 csinv w21, w21, wzr, ne - b .L1695 -.L1694: + b .L1696 +.L1695: mov w0, w21 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -10705,7 +10711,7 @@ FtlVendorPartRead: ldrh w20, [x3,818] cmp w2, w1 mov w0, -1 - bhi .L1709 + bhi .L1710 adrp x26, .LC40 add x0, x3, 3768 lsr w20, w23, w20 @@ -10713,8 +10719,8 @@ FtlVendorPartRead: mov x28, x3 add x26, x26, :lo12:.LC40 str x0, [x29,104] -.L1710: - cbz w22, .L1718 +.L1711: + cbz w22, .L1719 ldrh w19, [x28,816] ldr x0, [x28,1224] udiv w24, w23, w19 @@ -10726,7 +10732,7 @@ FtlVendorPartRead: cmp w19, w22 csel w19, w0, w19, hi lsl w27, w19, 9 - cbz w4, .L1712 + cbz w4, .L1713 ldr x0, [x28,1056] mov w1, 1 str x0, [x29,128] @@ -10742,7 +10748,7 @@ FtlVendorPartRead: ldr w0, [x28,1400] csinv w21, w21, wzr, ne cmp w0, 256 - bne .L1714 + bne .L1715 mov w1, w20 mov w2, w4 mov x0, x26 @@ -10751,28 +10757,28 @@ FtlVendorPartRead: mov w1, w20 ldr x2, [x28,1056] bl FtlMapWritePage -.L1714: +.L1715: ldr x1, [x28,1056] ubfiz x24, x24, 9, 16 mov x0, x25 mov w2, w27 add x1, x1, x24 bl ftl_memcpy - b .L1715 -.L1712: + b .L1716 +.L1713: mov x0, x25 mov w1, w4 mov w2, w27 bl ftl_memset -.L1715: +.L1716: add w20, w20, 1 sub w22, w22, w19 add w23, w23, w19 add x25, x25, x27, sxtw - b .L1710 -.L1718: + b .L1711 +.L1719: mov w0, w21 -.L1709: +.L1710: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -10782,19 +10788,41 @@ FtlVendorPartRead: ret .size FtlVendorPartRead, .-FtlVendorPartRead .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 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 FtlUpdateVaildLpn .type FtlUpdateVaildLpn, %function FtlUpdateVaildLpn: adrp x1, .LANCHOR2 add x3, x1, :lo12:.LANCHOR2 ldrh w2, [x3,3832] - cbnz w0, .L1720 + cbnz w0, .L1723 cmp w2, 4 - bhi .L1720 + bhi .L1723 add w2, w2, 1 strh w2, [x3,3832] - b .L1719 -.L1720: + b .L1722 +.L1723: add x0, x1, :lo12:.LANCHOR2 mov w7, 65535 strh wzr, [x0,3832] @@ -10802,20 +10830,20 @@ FtlUpdateVaildLpn: ldrh w5, [x0,748] ldr x6, [x0,1176] mov x0, 0 -.L1721: +.L1724: cmp w5, w0, uxth - bls .L1719 + bls .L1722 ldrh w4, [x6,x0,lsl 1] cmp w4, w7 - beq .L1722 + beq .L1725 add x3, x1, :lo12:.LANCHOR2 ldr w2, [x3,3836] add w2, w4, w2 str w2, [x3,3836] -.L1722: +.L1725: add x0, x0, 1 - b .L1721 -.L1719: + b .L1724 +.L1722: ret .size FtlUpdateVaildLpn, .-FtlUpdateVaildLpn .align 2 @@ -10829,13 +10857,13 @@ FtlMapBlkWriteDumpData: ldr w1, [x0,56] ldrh w19, [x0,6] ldr x4, [x0,40] - cbz w1, .L1725 + cbz w1, .L1728 adrp x1, .LANCHOR2 str wzr, [x0,56] add x2, x1, :lo12:.LANCHOR2 mov x21, x1 ldr w3, [x2,1392] - cbnz w3, .L1725 + cbnz w3, .L1728 mov x20, x0 sub w19, w19, #1 add x0, x2, 1400 @@ -10847,23 +10875,23 @@ FtlMapBlkWriteDumpData: str x1, [x0,8] ldr w3, [x4,x3] str w3, [x0,4] - cbz w3, .L1729 + cbz w3, .L1732 mov w1, 1 mov w2, w1 bl FlashReadPages - b .L1730 -.L1729: + b .L1733 +.L1732: ldrh w2, [x2,820] mov x0, x1 mov w1, 255 bl ftl_memset -.L1730: +.L1733: add x2, x21, :lo12:.LANCHOR2 mov x0, x20 mov w1, w19 ldr x2, [x2,1408] bl FtlMapWritePage -.L1725: +.L1728: ldp x19, x20, [sp,16] ldr x21, [sp,32] ldp x29, x30, [sp], 48 @@ -10882,7 +10910,7 @@ FtlVpcTblFlush: add x19, x22, :lo12:.LANCHOR2 stp x23, x24, [sp,48] ldr w0, [x19,1392] - cbnz w0, .L1733 + cbnz w0, .L1736 ldr x21, [x19,1104] add x20, x19, 3856 ldr x1, [x19,1040] @@ -10962,7 +10990,7 @@ FtlVpcTblFlush: ldr x1, [x1,#:lo12:.LANCHOR0+16] bl ftl_memcpy ldrh w0, [x19,852] - cbz w0, .L1734 + cbz w0, .L1737 ldrh w0, [x19,748] ldrh w2, [x19,848] lsr w1, w0, 3 @@ -10974,14 +11002,14 @@ FtlVpcTblFlush: add x0, x1, x0 ldr x1, [x19,1232] bl ftl_memcpy -.L1734: +.L1737: add x19, x22, :lo12:.LANCHOR2 mov w0, 0 mov w23, 0 mov w25, 65535 add x20, x19, 1400 bl FtlUpdateVaildLpn -.L1735: +.L1738: ldr x0, [x19,1040] str x0, [x20,8] ldr x0, [x19,1104] @@ -10999,7 +11027,7 @@ FtlVpcTblFlush: ldrh w1, [x19,3842] sub w0, w0, #1 cmp w1, w0 - blt .L1736 + blt .L1739 ldrh w0, [x19,3840] ldrh w25, [x19,3844] strh wzr, [x19,3842] @@ -11019,24 +11047,24 @@ FtlVpcTblFlush: mov w3, w1 mov x0, x20 bl FlashProgPages -.L1736: +.L1739: ldrh w1, [x19,3842] ldr w2, [x20] add w1, w1, 1 cmn w2, #1 uxth w1, w1 strh w1, [x19,3842] - bne .L1737 + bne .L1740 cmp w1, 1 - bne .L1738 + bne .L1741 ldrh w1, [x19,812] sub w1, w1, #1 strh w1, [x19,3842] -.L1738: +.L1741: add w23, w23, 1 uxth w23, w23 cmp w23, 3 - bls .L1735 + bls .L1738 add x22, x22, :lo12:.LANCHOR2 adrp x0, .LC41 add x0, x0, :lo12:.LC41 @@ -11045,19 +11073,19 @@ FtlVpcTblFlush: bl printk mov w0, 1 str w0, [x22,1392] - b .L1733 -.L1737: + b .L1736 +.L1740: cmp w1, 1 - beq .L1735 + beq .L1738 cmp w2, 256 - beq .L1735 + beq .L1738 mov w0, 65535 cmp w25, w0 - beq .L1733 + beq .L1736 mov w0, w25 mov w1, 1 bl FtlFreeSysBlkQueueIn -.L1733: +.L1736: mov w0, 0 ldr x25, [sp,64] ldp x19, x20, [sp,16] @@ -11108,19 +11136,19 @@ FtlScanSysBlk: mov w2, 12 bl ftl_memset ldrh w21, [x20,748] -.L1745: +.L1748: add x1, x19, :lo12:.LANCHOR2 ldrh w0, [x1,750] cmp w0, w21 - bls .L1786 + bls .L1789 mov x27, 0 ldrh w3, [x1,740] ldrh w2, [x1,822] mov w20, w27 mov x23, x1 -.L1787: +.L1790: cmp w3, w27, uxth - bls .L1820 + bls .L1823 add x0, x23, 768 mov w1, w21 str x2, [x29,112] @@ -11131,7 +11159,7 @@ FtlScanSysBlk: bl FtlBbmIsBadBlock ldr x3, [x29,120] ldr x2, [x29,112] - cbnz w0, .L1746 + cbnz w0, .L1749 mov w0, 56 ldr x1, [x23,984] lsl w28, w28, 10 @@ -11150,11 +11178,11 @@ FtlScanSysBlk: ldr x4, [x23,1120] add x1, x4, x1, sxtw 2 str x1, [x0,16] -.L1746: +.L1749: add x27, x27, 1 - b .L1787 -.L1820: - cbz w20, .L1749 + b .L1790 +.L1823: + cbz w20, .L1752 add x0, x19, :lo12:.LANCHOR2 mov w1, w20 mov w2, 1 @@ -11163,9 +11191,9 @@ FtlScanSysBlk: adrp x28, .LANCHOR0 ldr x0, [x0,984] bl FlashReadPages -.L1750: +.L1753: cmp w20, w23, uxth - bls .L1749 + bls .L1752 add x0, x19, :lo12:.LANCHOR2 mul x5, x23, x26 ldr x0, [x0,984] @@ -11175,9 +11203,9 @@ FtlScanSysBlk: cmn w0, #1 ldr x25, [x1,16] ubfx x24, x4, 10, 16 - bne .L1752 + bne .L1755 mov w6, 16 -.L1751: +.L1754: add x7, x19, :lo12:.LANCHOR2 str x6, [x29,104] str x7, [x29,112] @@ -11198,44 +11226,44 @@ FtlScanSysBlk: ldr x5, [x29,120] ldr x6, [x29,104] ldr x0, [x7,984] - bne .L1753 + bne .L1756 str w27, [x0,x5] - b .L1752 -.L1753: + b .L1755 +.L1756: ldr w0, [x0,x5] cmn w0, #1 - bne .L1752 + bne .L1755 sub w6, w6, #1 uxth w6, w6 - cbnz w6, .L1751 -.L1752: + cbnz w6, .L1754 +.L1755: add x0, x19, :lo12:.LANCHOR2 ldr x1, [x0,984] ldr w1, [x1,x5] cmn w1, #1 - beq .L1755 + beq .L1758 ldr w0, [x0,864] cmn w0, #1 - beq .L1756 + beq .L1759 ldr w1, [x25,4] cmp w0, w1 - bhi .L1757 -.L1756: + bhi .L1760 +.L1759: ldr w0, [x25,4] cmn w0, #1 - beq .L1757 + beq .L1760 add x1, x19, :lo12:.LANCHOR2 add w0, w0, 1 str w0, [x1,864] -.L1757: +.L1760: ldrh w0, [x25] mov w1, 61604 cmp w0, w1 - beq .L1759 - bhi .L1760 + beq .L1762 + bhi .L1763 mov w1, 61574 cmp w0, w1 - bne .L1758 + bne .L1761 add x5, x19, :lo12:.LANCHOR2 ldrh w6, [x5,832] ldrh w0, [x5,1384] @@ -11243,16 +11271,16 @@ FtlScanSysBlk: ldr x5, [x5,1216] sxth x1, w2 sub w2, w2, w0 - b .L1773 -.L1760: + b .L1776 +.L1763: mov w1, 61634 cmp w0, w1 - beq .L1762 + beq .L1765 cmp w0, w22 - bne .L1758 + bne .L1761 mov w0, w24 - b .L1819 -.L1762: + b .L1822 +.L1765: add x5, x19, :lo12:.LANCHOR2 ldr w6, [x5,840] ldrh w0, [x5,3904] @@ -11263,27 +11291,27 @@ FtlScanSysBlk: sub w2, w2, #1 sxth x1, w1 sxth w2, w2 -.L1764: +.L1767: cmp w1, w2 - ble .L1821 + ble .L1824 sbfiz x7, x1, 2, 32 ldr w10, [x25,4] sxth x8, w1 ldr w9, [x5,x7] cmp w10, w9 - bls .L1765 + bls .L1768 ldr w2, [x5] - cbnz w2, .L1766 + cbnz w2, .L1769 cmp w0, w6 - beq .L1766 + beq .L1769 add x2, x19, :lo12:.LANCHOR2 add w0, w0, 1 strh w0, [x2,3904] -.L1766: +.L1769: mov w0, 0 -.L1767: +.L1770: cmp w0, w1 - beq .L1822 + beq .L1825 add x5, x19, :lo12:.LANCHOR2 sxtw x2, w0 lsl x6, x2, 2 @@ -11298,31 +11326,31 @@ FtlScanSysBlk: add x6, x5, x2 ldrh w6, [x6,2] strh w6, [x5,x2] - b .L1767 -.L1822: + b .L1770 +.L1825: add x2, x19, :lo12:.LANCHOR2 ldr w5, [x25,4] ldr x0, [x2,1248] str w5, [x0,x7] ldr x0, [x2,1184] strh w24, [x0,x8,lsl 1] - tbz w1, #31, .L1769 - b .L1758 -.L1765: + tbz w1, #31, .L1772 + b .L1761 +.L1768: sub w1, w1, #1 sxth x1, w1 - b .L1764 -.L1821: - tbz w1, #31, .L1802 - b .L1758 -.L1769: + b .L1767 +.L1824: + tbz w1, #31, .L1805 + b .L1761 +.L1772: ldrh w0, [x2,3904] ldr w2, [x2,840] sub w2, w2, w0 sub w2, w2, #1 cmp w1, w2, sxth - bgt .L1758 -.L1802: + bgt .L1761 +.L1805: add x2, x19, :lo12:.LANCHOR2 add w0, w0, 1 ldr w3, [x25,4] @@ -11330,33 +11358,33 @@ FtlScanSysBlk: ldr x0, [x2,1248] str w3, [x0,x1,lsl 2] ldr x0, [x2,1184] - b .L1818 -.L1779: + b .L1821 +.L1782: sbfiz x7, x1, 2, 32 ldr w10, [x25,4] sxth x8, w1 ldr w9, [x5,x7] cmp w10, w9 - bhi .L1823 + bhi .L1826 sub w1, w1, #1 sxth x1, w1 -.L1773: +.L1776: cmp w1, w2 - bgt .L1779 - b .L1778 -.L1823: + bgt .L1782 + b .L1781 +.L1826: ldr w2, [x5] - cbnz w2, .L1775 + cbnz w2, .L1778 cmp w0, w6 - beq .L1775 + beq .L1778 add x2, x19, :lo12:.LANCHOR2 add w0, w0, 1 strh w0, [x2,1384] -.L1775: +.L1778: mov w0, 0 -.L1776: +.L1779: cmp w0, w1 - beq .L1824 + beq .L1827 add x5, x19, :lo12:.LANCHOR2 sxtw x2, w0 lsl x6, x2, 2 @@ -11371,105 +11399,105 @@ FtlScanSysBlk: add x6, x5, x2 ldrh w6, [x6,2] strh w6, [x5,x2] - b .L1776 -.L1824: + b .L1779 +.L1827: add x0, x19, :lo12:.LANCHOR2 ldr w5, [x25,4] ldr x2, [x0,1216] str w5, [x2,x7] ldr x0, [x0,1200] strh w24, [x0,x8,lsl 1] -.L1778: - tbnz w1, #31, .L1758 +.L1781: + tbnz w1, #31, .L1761 add x0, x19, :lo12:.LANCHOR2 ldrh w2, [x0,832] ldrh w5, [x0,1384] sub w2, w2, #1 sub w2, w2, w5 cmp w1, w2, sxth - bgt .L1758 + bgt .L1761 ldr x2, [x0,1216] add w5, w5, 1 ldr w3, [x25,4] strh w5, [x0,1384] str w3, [x2,x1,lsl 2] ldr x0, [x0,1200] -.L1818: +.L1821: strh w24, [x0,x1,lsl 1] - b .L1758 -.L1759: + b .L1761 +.L1762: add x0, x19, :lo12:.LANCHOR2 add x1, x0, 3840 ldrh w2, [x0,3840] cmp w2, w22 - bne .L1780 + bne .L1783 strh w24, [x0,3840] ldr w0, [x25,4] str w0, [x1,8] - b .L1758 -.L1780: + b .L1761 +.L1783: ldrh w0, [x1,4] cmp w0, w22 - beq .L1781 + beq .L1784 mov w1, 1 bl FtlFreeSysBlkQueueIn -.L1781: +.L1784: add x1, x19, :lo12:.LANCHOR2 ldr w2, [x25,4] add x0, x1, 3840 ldr w5, [x0,8] cmp w5, w2 - bcs .L1782 + bcs .L1785 ldrh w2, [x1,3840] strh w2, [x0,4] strh w24, [x1,3840] ldr w1, [x25,4] str w1, [x0,8] - b .L1758 -.L1782: + b .L1761 +.L1785: strh w24, [x0,4] - b .L1758 -.L1755: + b .L1761 +.L1758: add x0, x28, :lo12:.LANCHOR0 ldrb w1, [x0,136] mov w0, w24 - cbz w1, .L1783 -.L1819: + cbz w1, .L1786 +.L1822: mov w1, 0 -.L1783: +.L1786: bl FtlFreeSysBlkQueueIn -.L1758: +.L1761: add x23, x23, 1 - b .L1750 -.L1749: + b .L1753 +.L1752: add w21, w21, 1 uxth w21, w21 - b .L1745 -.L1786: + b .L1748 +.L1789: ldr x2, [x1,1184] ldrh w0, [x2] - cbz w0, .L1788 -.L1791: + cbz w0, .L1791 +.L1794: add x1, x19, :lo12:.LANCHOR2 ldr x2, [x1,1200] ldrh w0, [x2] - cbz w0, .L1789 - b .L1812 -.L1788: + cbz w0, .L1792 + b .L1815 +.L1791: ldrh w3, [x1,3904] - cbz w3, .L1791 + cbz w3, .L1794 ldr w1, [x1,840] -.L1792: +.L1795: cmp w0, w1 - bcs .L1791 + bcs .L1794 ldrh w3, [x2,w0,sxtw 1] - cbz w3, .L1793 + cbz w3, .L1796 mov w6, w0 -.L1794: +.L1797: add x1, x19, :lo12:.LANCHOR2 ldr w2, [x1,840] cmp w0, w2 - bcs .L1791 + bcs .L1794 sxtw x5, w0 sub w2, w0, w6 ldr x4, [x1,1184] @@ -11484,26 +11512,26 @@ FtlScanSysBlk: str w5, [x4,x2,lsl 2] ldr x1, [x1,1184] strh wzr, [x1,x3] - b .L1794 -.L1793: + b .L1797 +.L1796: add w0, w0, 1 sxth w0, w0 - b .L1792 -.L1789: + b .L1795 +.L1792: ldrh w3, [x1,1384] - cbz w3, .L1812 + cbz w3, .L1815 ldrh w1, [x1,832] -.L1797: +.L1800: cmp w0, w1 mov w6, w0 - bge .L1812 + bge .L1815 ldrh w3, [x2,w0,sxtw 1] - cbz w3, .L1798 -.L1799: + cbz w3, .L1801 +.L1802: add x1, x19, :lo12:.LANCHOR2 ldrh w2, [x1,832] cmp w0, w2 - bge .L1812 + bge .L1815 sxtw x5, w0 sub w2, w0, w6 ldr x4, [x1,1200] @@ -11518,12 +11546,12 @@ FtlScanSysBlk: str w5, [x4,x2,lsl 2] ldr x1, [x1,1200] strh wzr, [x1,x3] - b .L1799 -.L1798: + b .L1802 +.L1801: add w0, w0, 1 sxth w0, w0 - b .L1797 -.L1812: + b .L1800 +.L1815: mov w0, 0 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -11551,7 +11579,7 @@ FtlLoadEctTbl: mov w0, 17221 movk w0, 0x4254, lsl 16 cmp w1, w0 - beq .L1826 + beq .L1829 adrp x0, .LC42 adrp x1, .LC43 add x1, x1, :lo12:.LC43 @@ -11562,7 +11590,7 @@ FtlLoadEctTbl: ldr x0, [x19,1152] lsl w2, w2, 9 bl ftl_memset -.L1826: +.L1829: mov w0, 0 ldr x19, [sp,16] ldp x29, x30, [sp], 32 @@ -11575,10 +11603,10 @@ ftl_set_blk_mode: stp x29, x30, [sp, -16]! uxth w0, w0 add x29, sp, 0 - cbz w1, .L1828 + cbz w1, .L1831 bl ftl_set_blk_mode.part.18 - b .L1827 -.L1828: + b .L1830 +.L1831: adrp x1, .LANCHOR0+16 ubfx x2, x0, 5, 11 lsl x2, x2, 2 @@ -11588,7 +11616,7 @@ ftl_set_blk_mode: ldr w1, [x3,x2] bic w0, w1, w0 str w0, [x3,x2] -.L1827: +.L1830: ldp x29, x30, [sp], 16 ret .size ftl_set_blk_mode, .-ftl_set_blk_mode @@ -11648,14 +11676,14 @@ FtlMapTblRecovery: ldr w0, [x29,116] sub w0, w0, #1 str w0, [x29,112] -.L1832: +.L1835: ldr w0, [x29,116] cmp w26, w0 - bge .L1849 + bge .L1852 ldr w0, [x29,112] sxtw x28, w26 cmp w26, w0 - bne .L1833 + bne .L1836 lsl x0, x28, 1 mov w1, 1 add x24, x22, x0 @@ -11671,9 +11699,9 @@ FtlMapTblRecovery: ldr w0, [x25,x28,lsl 2] mov w25, 0 str w0, [x19,48] -.L1834: +.L1837: cmp w25, w27 - bge .L1849 + bge .L1852 ldrh w0, [x24] mov w1, 1 mov w2, w1 @@ -11683,33 +11711,33 @@ FtlMapTblRecovery: bl FlashReadPages ldr w0, [x26] cmn w0, #1 - beq .L1835 + beq .L1838 ldrh w0, [x20,8] cmp w0, w23 - bcs .L1836 + bcs .L1839 ldrh w2, [x20] ldrh w1, [x19,4] cmp w2, w1 - bne .L1836 + bne .L1839 ubfiz x0, x0, 2, 16 ldr x2, [x29,120] ldr w1, [x26,4] str w1, [x2,x0] - b .L1836 -.L1835: + b .L1839 +.L1838: ldrh w0, [x24] strh w0, [x19,60] -.L1836: +.L1839: add w25, w25, 1 sxth w25, w25 - b .L1834 -.L1849: + b .L1837 +.L1852: add x20, x21, :lo12:.LANCHOR2 add x0, x20, 3696 cmp x19, x0 - bne .L1839 - b .L1874 -.L1833: + bne .L1842 + b .L1879 +.L1836: ldr x0, [x27,1040] lsl x1, x28, 1 str x0, [x24,8] @@ -11725,41 +11753,41 @@ FtlMapTblRecovery: bl FlashReadPages ldr w0, [x24] cmn w0, #1 - beq .L1862 + beq .L1866 ldrh w1, [x20] mov w3, 0 ldrh w0, [x19,4] cmp w1, w0 - bne .L1871 + bne .L1876 ldrh w0, [x20,8] mov w1, 64245 cmp w0, w1 - bne .L1871 -.L1841: + bne .L1876 +.L1844: ldrh w0, [x27,812] sub w0, w0, #1 cmp w3, w0 - bge .L1844 + bge .L1847 ldr x0, [x27,1040] sbfiz x2, x3, 3, 32 ldrh w1, [x0,x2] cmp w1, w23 - bcs .L1842 + bcs .L1845 add x2, x0, x2 ubfiz x1, x1, 2, 16 ldr w0, [x2,4] ldr x2, [x29,120] str w0, [x2,x1] -.L1842: +.L1845: add w3, w3, 1 sxth w3, w3 - b .L1841 -.L1862: + b .L1844 +.L1866: mov w3, 0 -.L1871: +.L1876: ldrh w0, [x27,812] cmp w3, w0 - bge .L1844 + bge .L1847 ldrh w0, [x28] mov w1, 1 mov w2, w1 @@ -11771,63 +11799,63 @@ FtlMapTblRecovery: ldr w0, [x24] ldr x3, [x29,104] cmn w0, #1 - beq .L1845 + beq .L1848 ldrh w1, [x20,8] cmp w1, w23 - bcs .L1845 + bcs .L1848 ldrh w2, [x20] ldrh w0, [x19,4] cmp w2, w0 - bne .L1845 + bne .L1848 ubfiz x1, x1, 2, 16 ldr x2, [x29,120] ldr w0, [x24,4] str w0, [x2,x1] -.L1845: +.L1848: add w3, w3, 1 sxth w3, w3 - b .L1871 -.L1844: + b .L1876 +.L1847: add w4, w26, 1 sxth w26, w4 - b .L1832 -.L1860: + b .L1835 +.L1864: ubfiz x23, x24, 2, 32 ldr x0, [x20,1240] ldr w1, [x0,x23] sub w2, w1, #1 cmn w2, #3 - bls .L1875 -.L1854: + bls .L1880 +.L1857: add w24, w24, 1 -.L1852: +.L1855: ldrh w0, [x20,848] cmp w24, w0 - bcc .L1860 -.L1839: + bcc .L1864 +.L1842: mov x0, x19 add x21, x21, :lo12:.LANCHOR2 bl ftl_free_no_use_map_blk ldrh w1, [x19,2] ldrh w0, [x21,812] cmp w1, w0 - bne .L1851 + bne .L1854 mov x0, x19 bl ftl_map_blk_alloc_new_blk - b .L1851 -.L1874: + b .L1854 +.L1879: ldrh w0, [x20,852] - cbz w0, .L1839 + cbz w0, .L1842 adrp x25, .LC44 mov w24, 0 add x27, x20, 1400 add x25, x25, :lo12:.LC44 - b .L1852 -.L1875: + b .L1855 +.L1880: ldr x2, [x20,1232] ldr w2, [x2,x23] cmp w1, w2 - beq .L1854 + beq .L1857 ldr x1, [x20,1040] ldr x26, [x20,1104] str x1, [x27,8] @@ -11839,27 +11867,31 @@ FtlMapTblRecovery: mov x0, x27 bl FlashReadPages ldr w0, [x27] - mov w3, 0 cmn w0, #1 - beq .L1856 + beq .L1857 ldrh w1, [x26] ldrh w0, [x20,3700] cmp w1, w0 - bne .L1856 - ldr w3, [x26,4] -.L1856: + bne .L1857 ldr x0, [x20,1232] + ldr w3, [x26,4] + ldr w1, [x0,x23] + str w1, [x27,4] + ldr w0, [x0,x23] + cbnz w0, .L1859 + str w0, [x26,4] + b .L1860 +.L1859: mov w1, 1 + mov x0, x27 mov w2, w1 str x3, [x29,120] - ldr w0, [x0,x23] - str w0, [x27,4] - mov x0, x27 bl FlashReadPages - ldr w4, [x26,4] ldr x3, [x29,120] +.L1860: + ldr w4, [x26,4] cmp w3, w4 - bls .L1854 + bls .L1857 ldr x1, [x20,1240] mov x0, x25 ldr x2, [x20,1232] @@ -11875,19 +11907,19 @@ FtlMapTblRecovery: ldrh w3, [x20,3904] ldr w2, [x0,x23] ubfx x2, x2, 10, 16 -.L1857: +.L1861: cmp w1, w3 - bge .L1876 + bge .L1881 ldrh w0, [x22,w1,sxtw 1] cmp w0, w2 - beq .L1854 + beq .L1857 add w1, w1, 1 sxth w1, w1 - b .L1857 -.L1876: + b .L1861 +.L1881: ldr w0, [x20,840] cmp w3, w0 - bcs .L1854 + bcs .L1857 ubfiz x3, x3, 1, 16 strh w2, [x22,x3] ldrh w0, [x20,3904] @@ -11895,8 +11927,8 @@ FtlMapTblRecovery: strh w0, [x20,3904] mov w0, w2 bl remove_from_free_sys_Queue - b .L1854 -.L1851: + b .L1857 +.L1854: mov x0, x19 bl ftl_map_blk_gc mov x0, x19 @@ -11964,11 +11996,11 @@ FtlL2PDataInit: bl ftl_memset mov w2, 0 mov w4, -1 -.L1879: +.L1884: add x0, x20, :lo12:.LANCHOR2 ldrh w1, [x0,850] cmp w1, w2 - bls .L1881 + bls .L1886 ldr x3, [x0,1256] ubfiz x1, x2, 4, 16 add x3, x3, x1 @@ -11986,8 +12018,8 @@ FtlL2PDataInit: and x1, x1, -4 add x0, x0, x1 str x0, [x3,8] - b .L1879 -.L1881: + b .L1884 +.L1886: ldr w3, [x0,840] add x1, x0, 3696 strh w3, [x0,3706] @@ -12039,41 +12071,41 @@ ftl_sb_update_avl_pages: strh wzr, [x0,4] mov w6, 65535 ldrh w4, [x4,740] -.L1884: +.L1889: cmp w2, w4 - bcs .L1890 + bcs .L1895 add x5, x0, x2, sxtw 1 ldrh w5, [x5,16] cmp w5, w6 - beq .L1885 + beq .L1890 ldrh w5, [x0,4] add w5, w5, 1 strh w5, [x0,4] -.L1885: +.L1890: add w2, w2, 1 uxth w2, w2 - b .L1884 -.L1890: + b .L1889 +.L1895: add x3, x3, :lo12:.LANCHOR2 mov w6, 65535 add x4, x0, x4, uxth 1 ldrh w5, [x3,810] mov x3, x0 -.L1887: +.L1892: cmp x3, x4 - beq .L1891 + beq .L1896 ldrh w2, [x3,16] cmp w2, w6 - beq .L1888 + beq .L1893 ldrh w2, [x0,4] add w2, w5, w2 sub w2, w2, #1 sub w2, w2, w1 strh w2, [x0,4] -.L1888: +.L1893: add x3, x3, 2 - b .L1887 -.L1891: + b .L1892 +.L1896: ret .size ftl_sb_update_avl_pages, .-ftl_sb_update_avl_pages .align 2 @@ -12094,9 +12126,9 @@ FtlReUsePrevPpa: ubfiz x22, x0, 1, 16 ldr x3, [x2,1176] ldrh w1, [x3,x22] - cbnz w1, .L1893 + cbnz w1, .L1898 ldr x19, [x2,3536] - cbz x19, .L1894 + cbz x19, .L1899 ldrh w3, [x2,3544] mov x4, -6148914691236517206 ldr x2, [x2,1272] @@ -12106,11 +12138,11 @@ FtlReUsePrevPpa: madd x19, x4, x19, x19 mov w4, 6 uxth w19, w19 -.L1895: +.L1900: cmp w1, w3 - beq .L1894 + beq .L1899 cmp w19, w0 - bne .L1896 + bne .L1901 add x21, x21, :lo12:.LANCHOR2 mov w1, w19 add x0, x21, 3536 @@ -12124,19 +12156,19 @@ FtlReUsePrevPpa: ldrh w0, [x1,x22] add w0, w0, 1 strh w0, [x1,x22] - b .L1894 -.L1896: + b .L1899 +.L1901: umull x19, w19, w4 ldrh w19, [x2,x19] cmp w19, w5 - beq .L1894 + beq .L1899 add w1, w1, 1 uxth w1, w1 - b .L1895 -.L1893: + b .L1900 +.L1898: add w1, w1, 1 strh w1, [x3,x22] -.L1894: +.L1899: add x1, x29, 60 mov w0, w20 mov w2, 1 @@ -12167,9 +12199,9 @@ make_superblock: mov x23, x1 mov w25, -1 ldrh w24, [x1,740] -.L1902: +.L1907: cmp w24, w21, uxth - bls .L1913 + bls .L1918 add x0, x23, 768 ldrh w1, [x19] ldrb w0, [x0,x21] @@ -12177,16 +12209,16 @@ make_superblock: strh w25, [x22] mov w26, w0 bl FtlBbmIsBadBlock - cbnz w0, .L1903 + cbnz w0, .L1908 strh w26, [x22] ldrb w0, [x19,7] add w0, w0, 1 strb w0, [x19,7] -.L1903: +.L1908: add x21, x21, 1 add x22, x22, 2 - b .L1902 -.L1913: + b .L1907 +.L1918: add x0, x20, :lo12:.LANCHOR2 ldrb w1, [x19,7] strb wzr, [x19,9] @@ -12194,21 +12226,21 @@ make_superblock: mul w1, w1, w2 strh w1, [x19,4] ldr w1, [x0,3908] - cbz w1, .L1905 + cbz w1, .L1910 ldrh w1, [x19] ldr x0, [x0,1160] ldrh w0, [x0,x1,lsl 1] cmp w0, 59 - bhi .L1905 + bhi .L1910 mov w0, 1 strb w0, [x19,9] -.L1905: +.L1910: adrp x0, .LANCHOR0+24 ldrb w0, [x0,#:lo12:.LANCHOR0+24] - cbz w0, .L1906 + cbz w0, .L1911 mov w0, 1 strb w0, [x19,9] -.L1906: +.L1911: mov w0, 0 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -12241,19 +12273,19 @@ FtlLoadSysInfo: ldrh w0, [x20,3840] mov w1, 65535 cmp w0, w1 - bne .L1915 -.L1923: + bne .L1920 +.L1928: mov w19, -1 - b .L1916 -.L1915: + b .L1921 +.L1920: mov w1, 1 bl FtlGetLastWrittenPage sxth w22, w0 add w0, w0, 1 strh w0, [x23,2] mov w23, 61604 -.L1917: - tbnz w22, #31, .L1922 +.L1922: + tbnz w22, #31, .L1927 ldrh w0, [x20,3840] mov w1, 1 mov w2, w1 @@ -12265,18 +12297,18 @@ FtlLoadSysInfo: bl FlashReadPages ldr w0, [x21] cmn w0, #1 - beq .L1918 + beq .L1923 ldr x0, [x20,1040] ldr w1, [x0] mov w0, 19539 movk w0, 0x4654, lsl 16 cmp w1, w0 - bne .L1918 + bne .L1923 ldr x0, [x20,1104] ldrh w0, [x0] cmp w0, w23 - bne .L1918 -.L1922: + bne .L1923 +.L1927: add x20, x19, :lo12:.LANCHOR2 mov w2, 48 add x22, x20, 1400 @@ -12302,7 +12334,7 @@ FtlLoadSysInfo: add x1, x3, x1, lsl 2 bl ftl_memcpy ldrh w0, [x20,852] - cbz w0, .L1920 + cbz w0, .L1925 ldrh w0, [x20,748] ldr x3, [x22,8] lsr w1, w0, 3 @@ -12314,24 +12346,24 @@ FtlLoadSysInfo: and x1, x1, 65532 add x1, x3, x1 bl ftl_memcpy - b .L1920 -.L1918: + b .L1925 +.L1923: sub w22, w22, #1 sxth w22, w22 - b .L1917 -.L1920: + b .L1922 +.L1925: add x0, x19, :lo12:.LANCHOR2 mov w2, 19539 movk w2, 0x4654, lsl 16 ldr w3, [x0,3856] cmp w3, w2 - bne .L1923 + bne .L1928 ldrb w3, [x0,3866] ldrh w2, [x0,762] ldrh w4, [x0,3864] strh w4, [x0,3846] cmp w3, w2 - bne .L1923 + bne .L1928 ldrh w3, [x0,810] add x21, x21, :lo12:.LANCHOR0 ldrh w2, [x0,816] @@ -12391,48 +12423,48 @@ FtlLoadSysInfo: str wzr, [x0,900] str wzr, [x0,908] str wzr, [x0,884] - bls .L1924 + bls .L1929 str w1, [x0,864] -.L1924: +.L1929: add x0, x19, :lo12:.LANCHOR2 ldr w1, [x0,3892] ldr w2, [x0,868] cmp w1, w2 - bls .L1925 + bls .L1930 str w1, [x0,868] -.L1925: +.L1930: mov w0, 65535 cmp w4, w0 - beq .L1926 + beq .L1931 add x0, x19, :lo12:.LANCHOR2 add x0, x0, 3552 bl make_superblock -.L1926: +.L1931: add x1, x19, :lo12:.LANCHOR2 add x0, x1, 3600 ldrh w2, [x1,3600] mov w1, 65535 cmp w2, w1 - beq .L1927 + beq .L1932 bl make_superblock -.L1927: +.L1932: add x1, x19, :lo12:.LANCHOR2 add x0, x1, 3648 ldrh w2, [x1,3648] mov w1, 65535 cmp w2, w1 - beq .L1928 + beq .L1933 bl make_superblock -.L1928: +.L1933: add x19, x19, :lo12:.LANCHOR2 mov w1, 65535 add x0, x19, 3920 ldrh w2, [x19,3920] mov w19, 0 cmp w2, w1 - beq .L1916 + beq .L1921 bl make_superblock -.L1916: +.L1921: mov w0, w19 ldr x23, [sp,48] ldp x19, x20, [sp,16] @@ -12470,19 +12502,19 @@ SupperBlkListInit: strh wzr, [x19,3544] strh wzr, [x19,854] mov w19, w27 -.L1934: +.L1939: add x0, x21, :lo12:.LANCHOR2 ldrh w1, [x0,748] cmp w19, w1 - bge .L1941 + bge .L1946 mov w20, 0 ldrh w3, [x0,740] ldrh w2, [x0,810] mov w28, w20 mov x26, x0 -.L1942: +.L1947: cmp w28, w3 - bge .L1943 + bge .L1948 add x0, x26, 768 mov w1, w19 str x2, [x29,96] @@ -12492,54 +12524,54 @@ SupperBlkListInit: bl FtlBbmIsBadBlock ldr x3, [x29,104] ldr x2, [x29,96] - cbnz w0, .L1935 + cbnz w0, .L1940 add w20, w2, w20 sxth w20, w20 -.L1935: +.L1940: add w28, w28, 1 sxth w28, w28 - b .L1942 -.L1943: - cbz w20, .L1937 + b .L1947 +.L1948: + cbz w20, .L1942 sdiv w20, w25, w20 sxth w20, w20 - b .L1938 -.L1937: + b .L1943 +.L1942: add x0, x21, :lo12:.LANCHOR2 ldr x0, [x0,1176] strh w24, [x0,w19,sxtw 1] -.L1938: +.L1943: add x0, x21, :lo12:.LANCHOR2 ldr x1, [x0,1272] smaddl x1, w19, w23, x1 strh w20, [x1,4] ldrh w1, [x0,3552] cmp w19, w1 - beq .L1939 + beq .L1944 ldrh w1, [x0,3600] cmp w19, w1 - beq .L1939 + beq .L1944 ldrh w1, [x0,3648] cmp w19, w1 - beq .L1939 + beq .L1944 ldr x0, [x0,1176] ldrh w0, [x0,w19,sxtw 1] - cbnz w0, .L1940 + cbnz w0, .L1945 add w27, w27, 1 mov w0, w19 uxth w27, w27 bl INSERT_FREE_LIST - b .L1939 -.L1940: + b .L1944 +.L1945: add w22, w22, 1 mov w0, w19 uxth w22, w22 bl INSERT_DATA_LIST -.L1939: +.L1944: add w19, w19, 1 sxth w19, w19 - b .L1934 -.L1941: + b .L1939 +.L1946: strh w22, [x0,3528] strh w27, [x0,3544] mov w0, 0 @@ -12564,7 +12596,7 @@ Ftl_save_ext_data: add x29, sp, 0 ldr w3, [x0,3968] cmp w3, w1 - bne .L1944 + bne .L1949 mov w1, 71 movk w1, 0x5000, lsl 16 str w1, [x2,4] @@ -12601,7 +12633,7 @@ Ftl_save_ext_data: mov w0, 0 str w3, [x2,88] bl FtlVendorPartWrite -.L1944: +.L1949: ldp x29, x30, [sp], 16 ret .size Ftl_save_ext_data, .-Ftl_save_ext_data @@ -12615,30 +12647,30 @@ FtlEctTblFlush: stp x29, x30, [sp, -16]! add x29, sp, 0 ldr w4, [x3,3908] - cbz w4, .L1947 + cbz w4, .L1952 ldr w3, [x3,912] cmp w3, 29 mov w3, 4 csel w1, w1, w3, hi -.L1947: +.L1952: adrp x3, .LANCHOR4 add x3, x3, :lo12:.LANCHOR4 ldrh w4, [x3,136] cmp w4, 31 - bhi .L1948 + bhi .L1953 add w4, w4, 1 mov w1, 1 strh w4, [x3,136] -.L1948: - cbnz w0, .L1949 +.L1953: + cbnz w0, .L1954 add x0, x2, :lo12:.LANCHOR2 ldr x3, [x0,1152] ldr w0, [x3,20] add w1, w1, w0 ldr w0, [x3,16] cmp w0, w1 - bcc .L1950 -.L1949: + bcc .L1955 +.L1954: add x2, x2, :lo12:.LANCHOR2 ldr x0, [x2,1152] ldr w1, [x0,16] @@ -12658,7 +12690,7 @@ FtlEctTblFlush: mov w0, 64 bl FtlVendorPartWrite bl Ftl_save_ext_data -.L1950: +.L1955: mov w0, 0 ldp x29, x30, [sp], 16 ret @@ -12682,7 +12714,7 @@ Ftl_load_ext_data: mov w0, 19539 movk w0, 0x4654, lsl 16 cmp w1, w0 - beq .L1955 + beq .L1960 mov x0, x21 mov w1, 0 mov w2, 512 @@ -12690,14 +12722,14 @@ Ftl_load_ext_data: mov w0, 19539 movk w0, 0x4654, lsl 16 str w0, [x20,3968] -.L1955: +.L1960: add x0, x19, :lo12:.LANCHOR2 mov w2, 19539 movk w2, 0x4654, lsl 16 adrp x20, .LANCHOR4 ldr w3, [x0,3968] cmp w3, w2 - bne .L1956 + bne .L1961 add x2, x20, :lo12:.LANCHOR4 ldr w3, [x0,4056] ldr w1, [x0,4028] @@ -12725,14 +12757,14 @@ Ftl_load_ext_data: str w2, [x0,908] ldr w2, [x0,4016] str w2, [x0,912] -.L1956: +.L1961: add x0, x19, :lo12:.LANCHOR2 mov w1, 34661 movk w1, 0x1234, lsl 16 ldr w2, [x0,4036] str wzr, [x0,856] cmp w2, w1 - bne .L1957 + bne .L1962 mov w1, 1 str w1, [x0,3908] adrp x0, .LC42 @@ -12740,7 +12772,7 @@ Ftl_load_ext_data: add x0, x0, :lo12:.LC42 add x1, x1, :lo12:.LC45 bl printk -.L1957: +.L1962: add x0, x19, :lo12:.LANCHOR2 add x20, x20, :lo12:.LANCHOR4 ldrh w2, [x0,800] @@ -12774,25 +12806,25 @@ update_multiplier_value: mov w19, w22 ldrh w25, [x1,810] mov x23, x1 -.L1959: +.L1964: cmp w24, w22, uxth - bls .L1966 + bls .L1971 add x0, x23, 768 mov w1, w20 ldrb w0, [x0,x22] bl V2P_block bl FtlBbmIsBadBlock - cbnz w0, .L1960 + cbnz w0, .L1965 add w19, w19, w25 uxth w19, w19 -.L1960: +.L1965: add x22, x22, 1 - b .L1959 -.L1966: - cbz w19, .L1962 + b .L1964 +.L1971: + cbz w19, .L1967 mov w0, 32768 sdiv w19, w0, w19 -.L1962: +.L1967: add x0, x21, :lo12:.LANCHOR2 mov w1, 6 umull x20, w20, w1 @@ -12815,7 +12847,7 @@ GetFreeBlockMinEraseCount: add x2, x2, :lo12:.LANCHOR2 ldr x1, [x2,3536] mov w0, w1 - cbz x1, .L1968 + cbz x1, .L1973 ldr x0, [x2,1272] sub x1, x1, x0 mov x0, -6148914691236517206 @@ -12824,7 +12856,7 @@ GetFreeBlockMinEraseCount: ldr x0, [x2,1160] and x1, x1, 65535 ldrh w0, [x0,x1,lsl 1] -.L1968: +.L1973: ret .size GetFreeBlockMinEraseCount, .-GetFreeBlockMinEraseCount .align 2 @@ -12836,7 +12868,7 @@ GetFreeBlockMaxEraseCount: add x5, x2, :lo12:.LANCHOR2 ldr x1, [x5,3536] mov w0, w1 - cbz x1, .L1971 + cbz x1, .L1976 ldrh w3, [x5,3544] mov w0, 7 mov w6, 6 @@ -12852,25 +12884,25 @@ GetFreeBlockMaxEraseCount: madd x1, x3, x1, x1 mov w3, 0 uxth w1, w1 -.L1973: +.L1978: cmp w3, w4 - beq .L1976 + beq .L1981 umull x5, w1, w6 ldrh w5, [x0,x5] cmp w5, w7 - bne .L1974 -.L1976: + bne .L1979 +.L1981: add x2, x2, :lo12:.LANCHOR2 ubfiz x1, x1, 1, 16 ldr x0, [x2,1160] ldrh w0, [x0,x1] - b .L1971 -.L1974: + b .L1976 +.L1979: add w3, w3, 1 mov w1, w5 uxth w3, w3 - b .L1973 -.L1971: + b .L1978 +.L1976: ret .size GetFreeBlockMaxEraseCount, .-GetFreeBlockMaxEraseCount .align 2 @@ -12908,10 +12940,10 @@ FtlPrintInfo2buf: adrp x0, .LANCHOR1+3032 ldr w0, [x0,#:lo12:.LANCHOR1+3032] cmp w0, 1 - beq .L1979 + beq .L1984 sub w0, w20, w23 - b .L1980 -.L1979: + b .L1985 +.L1984: add x0, x29, 96 add x1, x29, 100 add x2, x29, 104 @@ -13324,7 +13356,7 @@ FtlPrintInfo2buf: ldrh w0, [x22,3920] mov w1, 65535 cmp w0, w1 - beq .L1981 + beq .L1986 ubfiz x2, x0, 1, 16 ldr x3, [x22,1176] adrp x1, .LC113 @@ -13333,7 +13365,7 @@ FtlPrintInfo2buf: ldrh w2, [x3,x2] bl sprintf add x19, x19, x0, sxtw -.L1981: +.L1986: mov w0, 0 adrp x22, .LC114 mov w20, 0 @@ -13342,9 +13374,9 @@ FtlPrintInfo2buf: mov w26, 6 uxth w3, w0 add x22, x22, :lo12:.LC114 -.L1983: +.L1988: cmp w3, w27 - beq .L1982 + beq .L1987 add x21, x24, :lo12:.LANCHOR2 ubfiz x6, x3, 1, 16 umull x25, w3, w26 @@ -13364,8 +13396,8 @@ FtlPrintInfo2buf: ldr x0, [x21,1272] cmp w20, 16 ldrh w3, [x0,x25] - bne .L1983 -.L1982: + bne .L1988 +.L1987: add x1, x24, :lo12:.LANCHOR2 adrp x22, .LC115 mov w20, 0 @@ -13379,9 +13411,9 @@ FtlPrintInfo2buf: asr x3, x3, 1 madd x3, x0, x3, x3 uxth w3, w3 -.L1985: +.L1990: cmp w3, w27 - beq .L1984 + beq .L1989 add x21, x24, :lo12:.LANCHOR2 ubfiz x5, x3, 1, 16 umull x25, w3, w26 @@ -13399,10 +13431,10 @@ FtlPrintInfo2buf: ldr x0, [x21,1272] cmp w20, 4 ldrh w3, [x0,x25] - bne .L1985 -.L1984: + bne .L1990 +.L1989: sub w0, w19, w23 -.L1980: +.L1985: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -13450,22 +13482,22 @@ GetSwlReplaceBlock: add x1, x19, :lo12:.LANCHOR2 ldr w2, [x1,912] cmp w3, w2 - bcs .L1990 + bcs .L1995 str wzr, [x1,896] ldrh w3, [x1,748] ldr x5, [x1,1160] mov x1, 0 -.L1991: +.L1996: cmp w3, w1 - bls .L2023 + bls .L2028 add x4, x19, :lo12:.LANCHOR2 ldrh w6, [x5,x1,lsl 1] add x1, x1, 1 ldr w2, [x4,896] add w2, w6, w2 str w2, [x4,896] - b .L1991 -.L2023: + b .L1996 +.L2028: add x2, x19, :lo12:.LANCHOR2 add x4, x0, :lo12:.LANCHOR4 ldr w1, [x2,896] @@ -13476,46 +13508,46 @@ GetSwlReplaceBlock: ldrh w3, [x2,800] udiv w1, w1, w3 str w1, [x2,896] - b .L1993 -.L1990: + b .L1998 +.L1995: ldr w2, [x1,908] cmp w3, w2 - bls .L1993 + bls .L1998 add w2, w2, 1 str w2, [x1,908] mov w1, 0 -.L1995: +.L2000: add x2, x19, :lo12:.LANCHOR2 ldrh w3, [x2,748] cmp w1, w3 - bcs .L1993 + bcs .L1998 ubfiz x3, x1, 1, 32 ldr x4, [x2,1160] add w1, w1, 1 ldrh w2, [x4,x3] add w2, w2, 1 strh w2, [x4,x3] - b .L1995 -.L1993: + b .L2000 +.L1998: add x1, x19, :lo12:.LANCHOR2 add x0, x0, :lo12:.LANCHOR4 ldr w21, [x1,912] ldr w23, [x0,140] add w0, w21, 256 cmp w0, w23 - bls .L1998 + bls .L2003 ldr w2, [x1,908] add w0, w21, 768 cmp w0, w2 - bls .L1998 + bls .L2003 ldr w0, [x1,3908] - cbz w0, .L2001 + cbz w0, .L2006 cmp w21, 30 - bls .L1998 -.L2001: + bls .L2003 +.L2006: mov w0, 65535 - b .L2000 -.L1998: + b .L2005 +.L2003: add x0, x19, :lo12:.LANCHOR2 ldrh w0, [x0,3544] add w0, w0, w0, lsl 1 @@ -13524,13 +13556,13 @@ GetSwlReplaceBlock: uxth w6, w0 add w0, w21, 64 cmp w6, w0 - bcs .L2010 + bcs .L2015 cmp w21, 30 - bhi .L2001 -.L2010: + bhi .L2006 +.L2015: add x1, x19, :lo12:.LANCHOR2 ldr x3, [x1,3512] - cbz x3, .L2001 + cbz x3, .L2006 mov w26, 65535 mov x0, -6148914691236517206 ldrh w9, [x1,748] @@ -13541,16 +13573,16 @@ GetSwlReplaceBlock: add x0, x0, 1 mov w1, 0 mov w10, 6 -.L2003: +.L2008: ldrh w5, [x3] cmp w5, w8 - beq .L2005 + beq .L2010 add w1, w1, 1 uxth w1, w1 cmp w1, w9 - bhi .L2001 + bhi .L2006 ldrh w2, [x3,4] - cbz w2, .L2004 + cbz w2, .L2009 sub x4, x3, x7 asr x4, x4, 1 mul x4, x4, x0 @@ -13558,47 +13590,47 @@ GetSwlReplaceBlock: and x4, x4, 65535 ldrh w2, [x25,x4,lsl 1] cmp w2, w21 - bls .L2009 + bls .L2014 cmp w2, w26 - bcs .L2004 + bcs .L2009 mov w26, w2 mov w20, w3 -.L2004: +.L2009: umull x3, w5, w10 add x3, x7, x3 - b .L2003 -.L2009: + b .L2008 +.L2014: mov w20, w3 -.L2005: +.L2010: mov w0, 65535 cmp w20, w0 - beq .L2001 + beq .L2006 ubfiz x24, x20, 1, 16 ldrh w22, [x25,x24] cmp w22, w21 - bls .L2007 + bls .L2012 str x6, [x29,88] bl GetFreeBlockMinEraseCount ldr x6, [x29,88] cmp w21, w0, uxth - bcs .L2007 + bcs .L2012 add x0, x19, :lo12:.LANCHOR2 str w26, [x0,912] -.L2007: +.L2012: cmp w22, w23 - bcs .L2001 + bcs .L2006 add w0, w22, 128 cmp w6, w0 - ble .L2001 + ble .L2006 add w0, w22, 256 cmp w0, w23 - bcc .L2008 + bcc .L2013 add x0, x19, :lo12:.LANCHOR2 add w22, w22, 768 ldr w0, [x0,908] cmp w22, w0 - bcs .L2001 -.L2008: + bcs .L2006 +.L2013: add x19, x19, :lo12:.LANCHOR2 adrp x0, .LC117 ldrh w5, [x25,x24] @@ -13612,7 +13644,7 @@ GetSwlReplaceBlock: mov w0, 1 str w0, [x19,920] mov w0, w20 -.L2000: +.L2005: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -13629,13 +13661,13 @@ free_data_superblock: mov w1, 65535 cmp w0, w1 add x29, sp, 0 - beq .L2025 + beq .L2030 adrp x2, .LANCHOR2+1176 ubfiz x1, x0, 1, 16 ldr x2, [x2,#:lo12:.LANCHOR2+1176] strh wzr, [x2,x1] bl INSERT_FREE_LIST -.L2025: +.L2030: mov w0, 0 ldp x29, x30, [sp], 16 ret @@ -13654,15 +13686,15 @@ allocate_data_superblock: stp x25, x26, [sp,64] ldr w1, [x19,1392] stp x27, x28, [sp,80] - cbnz w1, .L2027 + cbnz w1, .L2032 mov x20, x0 add x23, x19, 3648 adrp x22, .LANCHOR0 mov w24, 7 add x25, x19, 3536 -.L2028: +.L2033: cmp x20, x23 - bne .L2029 + bne .L2034 ldrh w2, [x19,3544] ldr w4, [x19,920] lsr w3, w2, 1 @@ -13671,43 +13703,43 @@ allocate_data_superblock: add w1, w1, w0, lsr 2 ldr w0, [x19,3908] uxth w1, w1 - cbz w0, .L2030 + cbz w0, .L2035 ldr w0, [x19,912] cmp w0, 29 - bhi .L2030 + bhi .L2035 cmp w0, 2 mov w1, 0 - bls .L2031 - tbz x2, 0, .L2058 - cbz w4, .L2031 -.L2058: + bls .L2036 + tbz x2, 0, .L2063 + cbz w4, .L2036 +.L2063: mov w1, w3 - b .L2030 -.L2029: + b .L2035 +.L2034: ldrb w0, [x20,8] mov w1, 0 cmp w0, 1 - bne .L2031 + bne .L2036 ldrh w0, [x19,760] cmp w0, 1 - beq .L2031 + beq .L2036 add x0, x22, :lo12:.LANCHOR0 ldrb w0, [x0,136] - cbnz w0, .L2031 + cbnz w0, .L2036 ldr w2, [x19,3908] ldrh w0, [x19,3544] lsr w1, w0, 3 - cbz w2, .L2030 + cbz w2, .L2035 ldr w2, [x19,912] cmp w2, 1 - bhi .L2030 + bhi .L2035 mul w1, w0, w24 lsr w1, w1, 3 -.L2030: - cbz w1, .L2031 +.L2035: + cbz w1, .L2036 sub w1, w1, #1 uxth w1, w1 -.L2031: +.L2036: ldrb w2, [x20,8] mov x0, x25 bl List_pop_index_node @@ -13719,20 +13751,20 @@ allocate_data_superblock: mov x0, x20 bl make_superblock ldrb w0, [x20,7] - cbz w0, .L2033 + cbz w0, .L2038 mov x0, 0 ldrh w5, [x19,740] mov w26, w0 mov x3, 56 mov w6, 65535 - b .L2034 -.L2033: + b .L2039 +.L2038: ubfiz x27, x27, 1, 16 ldr x0, [x19,1176] mov w1, -1 strh w1, [x0,x27] - b .L2028 -.L2037: + b .L2033 +.L2042: ldr x4, [x19,1008] madd x1, x0, x3, x4 str xzr, [x1,16] @@ -13740,40 +13772,40 @@ allocate_data_superblock: add x1, x20, x0, lsl 1 ldrh w1, [x1,16] cmp w1, w6 - beq .L2036 + beq .L2041 umull x2, w26, w3 add w26, w26, 1 lsl w1, w1, 10 add x2, x4, x2 uxth w26, w26 str w1, [x2,4] -.L2036: +.L2041: add x0, x0, 1 -.L2034: +.L2039: cmp w5, w0, uxth - bhi .L2037 + bhi .L2042 add x0, x19, 3552 uxtw x28, w27 cmp x20, x0 - bne .L2038 + bne .L2043 ldr w1, [x19,3908] - cbz w1, .L2038 + cbz w1, .L2043 ldr x1, [x19,1160] ldrh w1, [x1,x28,lsl 1] cmp w1, 30 - bls .L2038 + bls .L2043 strb wzr, [x19,3560] -.L2038: +.L2043: ldrb w0, [x20,8] - cbnz w0, .L2039 + cbnz w0, .L2044 lsl x0, x28, 1 ldr x1, [x19,1160] mov w2, 2 ldrh w3, [x1,x0] - cbz w3, .L2083 + cbz w3, .L2088 ldrh w2, [x19,800] add w2, w3, w2 -.L2083: +.L2088: strh w2, [x1,x0] mov w1, 0 ldr w0, [x19,896] @@ -13781,8 +13813,8 @@ allocate_data_superblock: str w0, [x19,896] mov w0, w27 bl ftl_set_blk_mode - b .L2042 -.L2039: + b .L2047 +.L2044: lsl x0, x28, 1 ldr x2, [x19,1160] ldrh w1, [x2,x0] @@ -13793,15 +13825,15 @@ allocate_data_superblock: str w0, [x19,900] mov w0, w27 bl ftl_set_blk_mode.part.18 -.L2042: +.L2047: lsl x28, x28, 1 ldr x0, [x19,1160] ldr w1, [x19,908] ldrh w0, [x0,x28] cmp w0, w1 - bls .L2043 + bls .L2048 str w0, [x19,908] -.L2043: +.L2048: ldrh w1, [x19,800] mov x3, 56 ldr w2, [x19,896] @@ -13816,32 +13848,32 @@ allocate_data_superblock: add w0, w0, 1 str w0, [x1,16] mov x0, 0 -.L2044: +.L2049: cmp w26, w0, uxth - bls .L2085 + bls .L2090 ldr x1, [x19,1008] madd x1, x0, x3, x1 add x0, x0, 1 ldr w2, [x1,4] and w2, w2, -1024 str w2, [x1,4] - b .L2044 -.L2085: + b .L2049 +.L2090: add x0, x22, :lo12:.LANCHOR0 ldrb w0, [x0,136] - cbz w0, .L2046 + cbz w0, .L2051 ldrb w0, [x20,8] cmp w0, 1 ldr x0, [x19,1008] - bne .L2047 + bne .L2052 mov w1, 0 - b .L2084 -.L2047: + b .L2089 +.L2052: mov w1, 1 -.L2084: +.L2089: mov w2, w26 bl FlashEraseBlocks -.L2046: +.L2051: ldrb w1, [x20,8] mov w2, w26 ldr x0, [x19,1008] @@ -13849,15 +13881,15 @@ allocate_data_superblock: mov x1, 0 mov x4, 56 mov w2, w1 -.L2048: +.L2053: cmp w26, w1, uxth - bls .L2086 + bls .L2091 mul x0, x1, x4 ldr x3, [x19,1008] add x5, x3, x0 ldr w3, [x3,x0] cmn w3, #1 - bne .L2049 + bne .L2054 ldr w0, [x5,4] add w2, w2, 1 str x4, [x29,104] @@ -13876,22 +13908,22 @@ allocate_data_superblock: ldrb w0, [x20,7] sub w0, w0, #1 strb w0, [x20,7] -.L2049: +.L2054: add x1, x1, 1 - b .L2048 -.L2086: - cbz w2, .L2051 + b .L2053 +.L2091: + cbz w2, .L2056 mov w0, w27 bl update_multiplier_value bl FtlBbmTblFlush -.L2051: +.L2056: ldrb w0, [x20,7] - cbnz w0, .L2052 + cbnz w0, .L2057 ldr x0, [x19,1176] mov w1, -1 strh w1, [x0,x28] - b .L2028 -.L2052: + b .L2033 +.L2057: add x21, x21, :lo12:.LANCHOR2 strh wzr, [x20,2] strb wzr, [x20,6] @@ -13907,7 +13939,7 @@ allocate_data_superblock: ldr x1, [x21,1176] ldrh w2, [x20] strh w0, [x1,x2,lsl 1] -.L2027: +.L2032: mov w0, 0 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -13929,12 +13961,12 @@ FtlGcBufInit: mov w4, 4 str wzr, [x0,#:lo12:.LANCHOR4+144] mov w10, 56 -.L2088: +.L2093: add x2, x7, :lo12:.LANCHOR2 adrp x6, .LANCHOR2 ldrh w0, [x2,740] cmp w1, w0 - bcs .L2092 + bcs .L2097 umull x3, w1, w8 ldr x5, [x2,1096] ldr x6, [x2,1064] @@ -13962,15 +13994,15 @@ FtlGcBufInit: str x2, [x0,8] ldr x2, [x5,8] str x2, [x0,16] - b .L2088 -.L2092: + b .L2093 +.L2097: mov w7, 24 mov w4, 4 -.L2090: +.L2095: add x1, x6, :lo12:.LANCHOR2 ldr w2, [x1,1032] cmp w0, w2 - bcs .L2093 + bcs .L2098 umull x3, w0, w7 ldr x5, [x1,1096] ldr x8, [x1,1064] @@ -13991,8 +14023,8 @@ FtlGcBufInit: uxth w0, w0 add x1, x1, x2, sxtw 2 str x1, [x3,8] - b .L2090 -.L2093: + b .L2095 +.L2098: ret .size FtlGcBufInit, .-FtlGcBufInit .align 2 @@ -14056,32 +14088,32 @@ FtlGcBufFree: mov w9, 24 ldr w8, [x2,1032] ldr x5, [x2,1096] -.L2096: +.L2101: cmp w3, w1 - bcs .L2095 + bcs .L2100 umull x4, w3, w7 mov w2, 0 add x4, x0, x4 -.L2101: +.L2106: cmp w2, w8 - bcs .L2098 + bcs .L2103 umull x6, w2, w9 add x10, x5, x6 ldr x11, [x5,x6] ldr x6, [x4,8] cmp x11, x6 - bne .L2097 + bne .L2102 str wzr, [x10,16] - b .L2098 -.L2097: + b .L2103 +.L2102: add w2, w2, 1 uxth w2, w2 - b .L2101 -.L2098: + b .L2106 +.L2103: add w3, w3, 1 uxth w3, w3 - b .L2096 -.L2095: + b .L2101 +.L2100: ret .size FtlGcBufFree, .-FtlGcBufFree .align 2 @@ -14096,17 +14128,17 @@ FtlGcBufAlloc: ldr w5, [x2,1032] ldr x6, [x2,1096] mov w2, 0 -.L2103: +.L2108: cmp w2, w1 - bcs .L2109 + bcs .L2114 mov w3, 0 -.L2107: +.L2112: cmp w3, w5 - bcs .L2105 + bcs .L2110 umull x4, w3, w7 add x4, x6, x4 ldr w10, [x4,16] - cbnz w10, .L2104 + cbnz w10, .L2109 umull x3, w2, w9 str w8, [x4,16] add x3, x0, x3 @@ -14114,16 +14146,16 @@ FtlGcBufAlloc: str x10, [x3,8] ldr x4, [x4,8] str x4, [x3,16] - b .L2105 -.L2104: + b .L2110 +.L2109: add w3, w3, 1 uxth w3, w3 - b .L2107 -.L2105: + b .L2112 +.L2110: add w2, w2, 1 uxth w2, w2 - b .L2103 -.L2109: + b .L2108 +.L2114: ret .size FtlGcBufAlloc, .-FtlGcBufAlloc .align 2 @@ -14136,19 +14168,19 @@ IsBlkInGcList: adrp x1, .LANCHOR2+968 ldr x3, [x1,#:lo12:.LANCHOR2+968] mov x1, 0 -.L2111: +.L2116: cmp w2, w1, uxth - bls .L2115 + bls .L2120 add x1, x1, 1 add x4, x3, x1, lsl 1 ldrh w4, [x4,-2] cmp w4, w0 - bne .L2111 + bne .L2116 mov w0, 1 - b .L2112 -.L2115: + b .L2117 +.L2120: mov w0, 0 -.L2112: +.L2117: ret .size IsBlkInGcList, .-IsBlkInGcList .align 2 @@ -14173,25 +14205,25 @@ FtlGcUpdatePage: adrp x4, .LANCHOR2 add x5, x4, :lo12:.LANCHOR2 ldr x7, [x5,968] -.L2117: +.L2122: uxth w5, w6 cmp w5, w8 - bcs .L2121 + bcs .L2126 add x6, x6, 1 add x10, x7, x6, lsl 1 ldrh w10, [x10,-2] cmp w10, w9 - bne .L2117 -.L2121: + bne .L2122 +.L2126: cmp w5, w8 - bne .L2119 + bne .L2124 ubfiz x5, x5, 1, 16 strh w0, [x7,x5] add x0, x3, :lo12:.LANCHOR4 ldrh w5, [x0,176] add w5, w5, 1 strh w5, [x0,176] -.L2119: +.L2124: add x3, x3, :lo12:.LANCHOR4 add x4, x4, :lo12:.LANCHOR2 mov w0, 12 @@ -14259,20 +14291,20 @@ FtlGcScanTempBlk: ldrh w26, [x0,3036] mov w0, 65535 cmp w26, w0 - beq .L2146 - cbnz w26, .L2125 - b .L2126 -.L2146: + beq .L2151 + cbnz w26, .L2130 + b .L2131 +.L2151: mov w26, 0 -.L2125: +.L2130: adrp x0, .LANCHOR2+810 ldr w1, [x29,152] ldrh w0, [x0,#:lo12:.LANCHOR2+810] cmp w1, w0 - bne .L2127 -.L2126: + bne .L2132 +.L2131: bl FtlGcPageVarInit -.L2127: +.L2132: mov w0, -1 adrp x25, .LANCHOR2 str w0, [x29,156] @@ -14283,25 +14315,25 @@ FtlGcScanTempBlk: mov x21, x25 mov x24, x25 str x0, [x29,128] -.L2140: +.L2145: ldrh w0, [x19] strb wzr, [x19,8] cmp w0, w23 - beq .L2147 -.L2129: -.L2143: + beq .L2152 +.L2134: +.L2148: add x0, x25, :lo12:.LANCHOR2 mov x2, x19 mov w20, 0 ldrh w5, [x0,740] ldrh w8, [x0,822] add x5, x19, x5, lsl 1 -.L2130: +.L2135: cmp x2, x5 - beq .L2155 + beq .L2160 ldrh w1, [x2,16] cmp w1, w23 - beq .L2131 + beq .L2136 add x6, x21, :lo12:.LANCHOR2 mov w0, 56 orr w1, w26, w1, lsl 10 @@ -14320,19 +14352,19 @@ FtlGcScanTempBlk: sdiv w1, w1, w3 add x1, x6, x1, sxtw 2 str x1, [x0,16] -.L2131: +.L2136: add x2, x2, 2 - b .L2130 -.L2155: + b .L2135 +.L2160: add x0, x21, :lo12:.LANCHOR2 mov w1, w20 mov w2, 0 mov x27, 0 ldr x0, [x0,984] bl FlashReadPages -.L2133: +.L2138: cmp w20, w27, uxth - bls .L2156 + bls .L2161 mov x0, 56 mul x28, x27, x0 add x0, x21, :lo12:.LANCHOR2 @@ -14349,53 +14381,53 @@ FtlGcScanTempBlk: ldr x8, [x29,104] ldr x2, [x29,120] ldr w0, [x8,x28] - cbnz w0, .L2134 + cbnz w0, .L2139 ldr x1, [x29,112] add x27, x27, 1 ldr x5, [x1,16] ldrh w0, [x5] cmp w0, w23 - bne .L2135 + bne .L2140 adrp x0, .LANCHOR4+168 mov w1, 1 str w1, [x0,#:lo12:.LANCHOR4+168] - b .L2128 -.L2135: + b .L2133 +.L2140: mov w1, w2 ldr w0, [x5,12] ldr w2, [x5,8] bl FtlGcUpdatePage - b .L2133 -.L2134: + b .L2138 +.L2139: ldr x0, [x29,128] ldrh w1, [x19] bl printk ldr x0, [x29,144] ldr w0, [x0,3908] - cbnz w0, .L2136 + cbnz w0, .L2141 adrp x0, .LANCHOR0+136 ldrb w0, [x0,#:lo12:.LANCHOR0+136] - cbz w0, .L2137 -.L2136: + cbz w0, .L2142 +.L2141: add x0, x24, :lo12:.LANCHOR2 ldrh w1, [x19] ldr x0, [x0,1160] ldrh w0, [x0,x1,lsl 1] cmp w0, 119 - bls .L2138 -.L2137: + bls .L2143 +.L2142: add x0, x24, :lo12:.LANCHOR2 ldr x0, [x0,984] ldr w0, [x0,x28] cmn w0, #1 - bne .L2139 -.L2138: + bne .L2144 +.L2143: add x0, x24, :lo12:.LANCHOR2 ldr x0, [x0,984] add x5, x0, x28 ldr w0, [x5,4] str w0, [x29,156] -.L2139: +.L2144: add x0, x24, :lo12:.LANCHOR2 ldrh w1, [x19] mov w26, 0 @@ -14406,36 +14438,36 @@ FtlGcScanTempBlk: mov w0, -1 strh w0, [x19] bl FtlGcPageVarInit - b .L2140 -.L2156: + b .L2145 +.L2161: ldr w0, [x29,152] add w22, w22, 1 add w3, w26, 1 cmp w22, w0 uxth w26, w3 - bcs .L2142 -.L2144: + bcs .L2147 +.L2149: add x0, x21, :lo12:.LANCHOR2 ldrh w0, [x0,810] cmp w0, w26 - bhi .L2143 - b .L2147 -.L2142: + bhi .L2148 + b .L2152 +.L2147: ldr x0, [x29,136] add x1, x0, :lo12:.LANCHOR1 ldrh w0, [x1,3036] cmp w0, w23 - beq .L2144 + beq .L2149 add w0, w0, w22 strh w0, [x1,3036] add x0, x21, :lo12:.LANCHOR2 ldrh w0, [x0,810] cmp w0, w26 - bls .L2144 - b .L2145 -.L2147: + bls .L2149 + b .L2150 +.L2152: mov w6, 0 -.L2128: +.L2133: ldr x0, [x29,136] mov w1, w26 strh w26, [x19,2] @@ -14446,7 +14478,7 @@ FtlGcScanTempBlk: strh w0, [x20,3036] mov x0, x19 bl ftl_sb_update_avl_pages -.L2145: +.L2150: ldr w0, [x29,156] ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -14472,20 +14504,20 @@ FtlGcRefreshOpenBlock: add x2, x2, :lo12:.LANCHOR2 ldrh w3, [x2,940] cmp w3, w19 - beq .L2158 + beq .L2163 ldrh w1, [x2,942] cmp w1, w19 - beq .L2158 + beq .L2163 mov w0, 65535 cmp w3, w0 - bne .L2159 + bne .L2164 strh w19, [x2,940] - b .L2158 -.L2159: + b .L2163 +.L2164: cmp w1, w0 - bne .L2158 + bne .L2163 strh w19, [x2,942] -.L2158: +.L2163: mov w0, 0 ldr x19, [sp,16] ldp x29, x30, [sp], 32 @@ -14507,20 +14539,20 @@ FtlGcRefreshBlock: add x2, x2, :lo12:.LANCHOR2 ldrh w3, [x2,940] cmp w3, w19 - beq .L2161 + beq .L2166 ldrh w1, [x2,942] cmp w1, w19 - beq .L2161 + beq .L2166 mov w0, 65535 cmp w3, w0 - bne .L2162 + bne .L2167 strh w19, [x2,940] - b .L2161 -.L2162: + b .L2166 +.L2167: cmp w1, w0 - bne .L2161 + bne .L2166 strh w19, [x2,942] -.L2161: +.L2166: mov w0, 0 ldr x19, [sp,16] ldp x29, x30, [sp], 32 @@ -14549,33 +14581,33 @@ FtlGcMarkBadPhyBlk: mov w0, w21 bl FtlGcRefreshBlock ldr w0, [x22,3908] - cbz w0, .L2164 + cbz w0, .L2169 ubfiz x0, x21, 1, 16 ldr x2, [x22,1160] ldrh w1, [x2,x0] cmp w1, 29 - bls .L2164 + bls .L2169 sub w1, w1, #30 strh w1, [x2,x0] -.L2164: +.L2169: add x0, x19, :lo12:.LANCHOR2 adrp x1, .LANCHOR4 add x1, x1, :lo12:.LANCHOR4 add x1, x1, 184 ldrh w3, [x0,950] mov x0, 0 -.L2165: +.L2170: cmp w3, w0, uxth - bls .L2171 + bls .L2176 add x0, x0, 1 add x2, x1, x0, lsl 1 ldrh w2, [x2,-2] cmp w2, w20 - bne .L2165 - b .L2166 -.L2171: + bne .L2170 + b .L2171 +.L2176: cmp w3, 15 - bhi .L2166 + bhi .L2171 adrp x1, .LANCHOR4 add x19, x19, :lo12:.LANCHOR2 add x1, x1, :lo12:.LANCHOR4 @@ -14583,7 +14615,7 @@ FtlGcMarkBadPhyBlk: add x1, x1, 184 strh w0, [x19,950] strh w20, [x1,w3,sxtw 1] -.L2166: +.L2171: mov w0, 0 ldr x23, [sp,48] ldp x19, x20, [sp,16] @@ -14601,16 +14633,16 @@ FtlGcReFreshBadBlk: adrp x19, .LANCHOR2 add x0, x19, :lo12:.LANCHOR2 ldrh w1, [x0,950] - cbz w1, .L2173 + cbz w1, .L2178 ldrh w3, [x0,940] mov w2, 65535 cmp w3, w2 - bne .L2173 + bne .L2178 ldrh w2, [x0,954] cmp w2, w1 - bcc .L2174 + bcc .L2179 strh wzr, [x0,954] -.L2174: +.L2179: add x19, x19, :lo12:.LANCHOR2 adrp x0, .LANCHOR4 add x0, x0, :lo12:.LANCHOR4 @@ -14622,7 +14654,7 @@ FtlGcReFreshBadBlk: ldrh w0, [x19,954] add w0, w0, 1 strh w0, [x19,954] -.L2173: +.L2178: mov w0, 0 ldr x19, [sp,16] ldp x29, x30, [sp], 32 @@ -14644,15 +14676,15 @@ FtlGcFreeBadSuperBlk: stp x21, x22, [sp,32] stp x25, x26, [sp,64] mov w21, 0 - cbz w0, .L2180 + cbz w0, .L2185 adrp x24, .LANCHOR4 adrp x22, .LC121 add x22, x22, :lo12:.LC121 add x25, x24, :lo12:.LANCHOR4 -.L2188: +.L2193: ldrh w0, [x19,740] cmp w0, w21 - bls .L2189 + bls .L2194 add x0, x19, 768 mov w1, w23 mov w20, 0 @@ -14660,14 +14692,14 @@ FtlGcFreeBadSuperBlk: ldrb w0, [x0,w21,sxtw] bl V2P_block uxth w26, w0 -.L2181: +.L2186: ldrh w0, [x19,950] cmp w0, w20 - bls .L2190 + bls .L2195 add x0, x27, 184 ldrh w0, [x0,w20,sxtw 1] cmp w0, w26 - bne .L2182 + bne .L2187 mov w1, w26 mov x0, x22 bl printk @@ -14676,29 +14708,29 @@ FtlGcFreeBadSuperBlk: bl FtlBbmTblFlush ldrh w2, [x19,950] mov w3, w20 -.L2183: +.L2188: cmp w3, w2 - bcs .L2191 + bcs .L2196 add x4, x25, 184 add w0, w3, 1 ldrh w1, [x4,w0,sxtw 1] strh w1, [x4,w3,sxtw 1] uxth w3, w0 - b .L2183 -.L2191: + b .L2188 +.L2196: sub w2, w2, #1 strh w2, [x19,950] -.L2182: +.L2187: add w20, w20, 1 uxth w20, w20 - b .L2181 -.L2190: + b .L2186 +.L2195: add w21, w21, 1 uxth w21, w21 - b .L2188 -.L2189: + b .L2193 +.L2194: bl FtlGcReFreshBadBlk -.L2180: +.L2185: mov w0, 0 ldr x27, [sp,80] ldp x19, x20, [sp,16] @@ -14721,25 +14753,25 @@ update_vpc_list: ubfiz x0, x19, 1, 16 ldr x2, [x1,1176] ldrh w2, [x2,x0] - cbnz w2, .L2193 + cbnz w2, .L2198 ldrh w0, [x1,3920] cmp w0, w19 - bne .L2194 + bne .L2199 mov w0, -1 strh w0, [x1,3920] - b .L2195 -.L2194: + b .L2200 +.L2199: ldrh w3, [x1,3552] mov w0, w2 cmp w3, w19 - beq .L2196 + beq .L2201 ldrh w3, [x1,3600] cmp w3, w19 - beq .L2196 + beq .L2201 ldrh w1, [x1,3648] cmp w1, w19 - beq .L2196 -.L2195: + beq .L2201 +.L2200: add x20, x20, :lo12:.LANCHOR2 mov w1, w19 add x0, x20, 3512 @@ -14752,12 +14784,12 @@ update_vpc_list: mov w0, w19 bl FtlGcFreeBadSuperBlk mov w0, 1 - b .L2196 -.L2193: + b .L2201 +.L2198: mov w0, w19 bl List_update_data_list mov w0, 0 -.L2196: +.L2201: ldp x19, x20, [sp,16] ldp x29, x30, [sp], 32 ret @@ -14772,43 +14804,43 @@ decrement_vpc_count: add x29, sp, 0 str x19, [sp,16] cmp w1, w0 - beq .L2201 + beq .L2206 adrp x2, .LANCHOR2+1176 ubfiz x0, x1, 1, 16 ldr x2, [x2,#:lo12:.LANCHOR2+1176] ldrh w19, [x2,x0] - cbnz w19, .L2202 + cbnz w19, .L2207 adrp x0, .LC122 mov w2, w19 add x0, x0, :lo12:.LC122 bl printk - b .L2206 -.L2202: + b .L2211 +.L2207: sub w19, w19, #1 strh w19, [x2,x0] -.L2201: +.L2206: adrp x19, .LANCHOR4 mov w0, 65535 add x19, x19, :lo12:.LANCHOR4 ldrh w2, [x19,160] cmp w2, w0 - bne .L2204 + bne .L2209 strh w1, [x19,160] -.L2206: +.L2211: mov w0, 0 - b .L2203 -.L2204: + b .L2208 +.L2209: cmp w2, w1 str x1, [x29,40] mov w0, 0 - beq .L2203 + beq .L2208 mov w0, w2 bl update_vpc_list cmp w0, wzr ldr x1, [x29,40] cset w0, ne strh w1, [x19,160] -.L2203: +.L2208: ldr x19, [sp,16] ldp x29, x30, [sp], 48 ret @@ -14828,7 +14860,7 @@ FtlRecoverySuperblock: mov x19, x0 ldrh w0, [x0] cmp w0, w2 - beq .L2365 + beq .L2370 ldrh w0, [x19,2] adrp x20, .LANCHOR2 str w0, [x29,188] @@ -14837,44 +14869,44 @@ FtlRecoverySuperblock: ldr w1, [x29,188] ldrh w0, [x0,810] cmp w0, w1 - bne .L2210 + bne .L2215 strh wzr, [x19,4] - b .L2371 -.L2210: + b .L2376 +.L2215: ldrh w0, [x19,16] mov w1, 0 -.L2211: +.L2216: cmp w0, w2 - bne .L2374 + bne .L2379 add w1, w1, 1 uxth w1, w1 add x0, x19, x1, sxtw 1 ldrh w0, [x0,16] - b .L2211 -.L2374: + b .L2216 +.L2379: ldrb w1, [x19,8] cmp w1, 1 - bne .L2213 + bne .L2218 bl FtlGetLastWrittenPage cmn w0, #1 mov w21, w0 - beq .L2214 + beq .L2219 adrp x0, .LANCHOR0 mov w23, w21 add x0, x0, :lo12:.LANCHOR0 ldrb w1, [x0,136] - cbnz w1, .L2288 + cbnz w1, .L2293 add x0, x0, 140 ldrh w23, [x0,w21,sxtw 1] - b .L2288 -.L2213: + b .L2293 +.L2218: mov w1, 0 bl FtlGetLastWrittenPage cmn w0, #1 mov w21, w0 - beq .L2214 + beq .L2219 mov w23, w0 -.L2288: +.L2293: add x0, x20, :lo12:.LANCHOR2 mov x2, x19 mov w25, 0 @@ -14884,16 +14916,16 @@ FtlRecoverySuperblock: ldrh w4, [x0,740] ldrh w7, [x0,822] add x4, x19, x4, lsl 1 - b .L2216 -.L2214: + b .L2221 +.L2219: strh wzr, [x19,2] -.L2371: +.L2376: strb wzr, [x19,6] - b .L2365 -.L2218: + b .L2370 +.L2223: ldrh w1, [x2,16] cmp w1, w8 - beq .L2217 + beq .L2222 add x5, x20, :lo12:.LANCHOR2 orr w1, w23, w1, lsl 10 umull x0, w25, w9 @@ -14910,21 +14942,21 @@ FtlRecoverySuperblock: sdiv w1, w1, w10 add x1, x5, x1, sxtw 2 str x1, [x0,16] -.L2217: +.L2222: add x2, x2, 2 -.L2216: +.L2221: cmp x2, x4 - bne .L2218 + bne .L2223 ldrb w0, [x19,8] str wzr, [x29,184] cmp w0, 1 - bne .L2219 + bne .L2224 adrp x0, .LANCHOR0+136 ldrb w0, [x0,#:lo12:.LANCHOR0+136] cmp w0, wzr cset w0, ne str w0, [x29,184] -.L2219: +.L2224: add x22, x20, :lo12:.LANCHOR2 ldr w2, [x29,184] mov w1, w25 @@ -14939,21 +14971,21 @@ FtlRecoverySuperblock: add x22, x22, :lo12:.LC123 uxth w0, w23 str w0, [x29,168] -.L2220: +.L2225: uxth w2, w26 cmp w2, w25 - bcs .L2227 + bcs .L2232 add x6, x20, :lo12:.LANCHOR2 mov x0, 56 mul x0, x26, x0 ldr x4, [x6,984] add x1, x4, x0 ldr w0, [x4,x0] - cbnz w0, .L2221 + cbnz w0, .L2226 ldr x7, [x1,16] ldr w4, [x7,4] cmn w4, #1 - beq .L2222 + beq .L2227 ldr w1, [x6,868] mov w0, w4 str x7, [x29,136] @@ -14965,23 +14997,23 @@ FtlRecoverySuperblock: ldr x4, [x29,152] ldr x2, [x29,144] ldr x7, [x29,136] - cbz w0, .L2222 + cbz w0, .L2227 add w4, w4, 1 str w4, [x6,868] -.L2222: +.L2227: ldr w0, [x7] cmn w0, #1 - bne .L2223 -.L2227: + bne .L2228 +.L2232: cmp w2, w25 - bne .L2366 + bne .L2371 add x0, x20, :lo12:.LANCHOR2 add w21, w21, 1 uxth w21, w21 ldr x0, [x0,984] ldr w0, [x0,4] - b .L2367 -.L2221: + b .L2372 +.L2226: ldr w1, [x1,4] mov x0, x22 bl printk @@ -14989,10 +15021,10 @@ FtlRecoverySuperblock: add x0, x27, :lo12:.LANCHOR4 ldrh w1, [x19] strh w1, [x0,218] -.L2223: +.L2228: add x26, x26, 1 - b .L2220 -.L2366: + b .L2225 +.L2371: add x0, x20, :lo12:.LANCHOR2 mov w1, 56 uxth w21, w21 @@ -15000,83 +15032,83 @@ FtlRecoverySuperblock: ldr x0, [x0,984] add x2, x0, x2 ldr w0, [x2,4] -.L2367: +.L2372: lsr x0, x0, 10 bl P2V_plane uxth w26, w0 ldrb w1, [x19,8] cmp w1, 1 - bne .L2229 + bne .L2234 adrp x0, .LANCHOR0 add x0, x0, :lo12:.LANCHOR0 ldrb w2, [x0,136] - cbnz w2, .L2229 + cbnz w2, .L2234 add x0, x0, 140 ldrh w21, [x0,w21,sxtw 1] -.L2229: +.L2234: add x0, x20, :lo12:.LANCHOR2 ldrh w0, [x0,810] cmp w0, w21 - bne .L2230 + bne .L2235 strh w21, [x19,2] strb wzr, [x19,6] strh wzr, [x19,4] -.L2230: +.L2235: uxth w0, w28 str w0, [x29,152] ldr w0, [x29,188] cmp w21, w0 - bne .L2231 + bne .L2236 ldr w0, [x29,152] cmp w26, w0 - beq .L2372 -.L2231: + beq .L2377 +.L2236: ldr w0, [x29,176] adrp x25, .LANCHOR4 sub w22, w0, #1 mov w0, 65535 cmp w24, w0 - bne .L2232 - cbnz w1, .L2233 -.L2232: + bne .L2237 + cbnz w1, .L2238 +.L2237: add x0, x25, :lo12:.LANCHOR4 uxth w6, w23 ldr w1, [x0,172] cmn w1, #1 - bne .L2234 + bne .L2239 str w22, [x0,172] -.L2234: +.L2239: add x0, x25, :lo12:.LANCHOR4 ldr w24, [x29,188] ldr w3, [x0,172] ldr w0, [x29,188] add w0, w0, 7 cmp w0, w23, uxth - bge .L2235 + bge .L2240 sub w24, w6, #7 uxth w24, w24 -.L2235: +.L2240: adrp x7, .LANCHOR0 mov w28, -1 add x5, x7, :lo12:.LANCHOR0 mov w27, w28 mov w4, 65535 add x5, x5, 652 -.L2236: +.L2241: cmp w24, w6 - bhi .L2249 + bhi .L2254 add x0, x20, :lo12:.LANCHOR2 mov w23, 0 mov w10, 56 ldrh w2, [x0,740] mov x0, x19 add x2, x19, x2, lsl 1 -.L2250: +.L2255: cmp x0, x2 - beq .L2375 + beq .L2380 ldrh w1, [x0,16] cmp w1, w4 - beq .L2237 + beq .L2242 add x9, x20, :lo12:.LANCHOR2 orr w1, w24, w1, lsl 10 umull x8, w23, w10 @@ -15085,10 +15117,10 @@ FtlRecoverySuperblock: uxth w23, w23 add x8, x9, x8 str w1, [x8,4] -.L2237: +.L2242: add x0, x0, 2 - b .L2250 -.L2375: + b .L2255 +.L2380: add x8, x20, :lo12:.LANCHOR2 ldr w2, [x29,184] mov w1, w23 @@ -15112,85 +15144,85 @@ FtlRecoverySuperblock: ldr x0, [x8,984] ldr x5, [x29,128] add x0, x0, 16 -.L2239: +.L2244: cmp w1, w23 - beq .L2376 + beq .L2381 ldr w2, [x0,-16] - cbnz w2, .L2240 + cbnz w2, .L2245 ldr x2, [x0] ldrh w8, [x2] cmp w8, w4 - beq .L2241 + beq .L2246 ldr w8, [x2,4] cmn w8, #1 - beq .L2241 + beq .L2246 add x2, x25, :lo12:.LANCHOR4 cmn w28, #1 ldr w27, [x2,172] str w8, [x2,172] - bne .L2241 + bne .L2246 ldrh w2, [x5,x10,lsl 1] cmp w2, w4 - bne .L2242 - cbz w9, .L2241 -.L2242: + bne .L2247 + cbz w9, .L2246 +.L2247: cmp w27, w22 csinv w28, w27, wzr, ne - b .L2241 -.L2240: + b .L2246 +.L2245: add x0, x25, :lo12:.LANCHOR4 ldrh w1, [x19] strh w1, [x0,218] ldrb w1, [x19,8] - cbnz w1, .L2233 + cbnz w1, .L2238 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 .L2244 + bne .L2249 cmn w28, #1 - beq .L2245 + beq .L2250 str w28, [x0,172] - b .L2233 -.L2245: + b .L2238 +.L2250: cmp w3, w22 - beq .L2246 + beq .L2251 str w3, [x0,172] - b .L2233 -.L2246: + b .L2238 +.L2251: ldr w1, [x0,172] - b .L2373 -.L2244: + b .L2378 +.L2249: cmp w27, w22 - beq .L2247 + beq .L2252 cmn w27, #1 - beq .L2233 + beq .L2238 str w27, [x0,172] - b .L2233 -.L2247: + b .L2238 +.L2252: ldr w1, [x0,172] cmp w1, w22 - beq .L2233 -.L2373: + beq .L2238 +.L2378: sub w1, w1, #1 - b .L2368 -.L2241: + b .L2373 +.L2246: add w1, w1, 1 add x0, x0, 56 uxth w1, w1 - b .L2239 -.L2376: + b .L2244 +.L2381: add w24, w24, 1 uxth w24, w24 - b .L2236 -.L2249: + b .L2241 +.L2254: add x0, x25, :lo12:.LANCHOR4 mov w1, -1 -.L2368: +.L2373: str w1, [x0,172] -.L2233: +.L2238: add x0, x25, :lo12:.LANCHOR4 mov w1, 1 strh w1, [x0,220] @@ -15204,7 +15236,7 @@ FtlRecoverySuperblock: adrp x0, .LC124 add x0, x0, :lo12:.LC124 str x0, [x29,120] -.L2251: +.L2256: add x0, x20, :lo12:.LANCHOR2 adrp x1, .LANCHOR0 add x1, x1, :lo12:.LANCHOR0 @@ -15215,12 +15247,12 @@ FtlRecoverySuperblock: ldrb w6, [x1,136] mov x1, x19 add x3, x19, x3, lsl 1 -.L2252: +.L2257: cmp x1, x3 - beq .L2377 + beq .L2382 ldrh w2, [x1,16] cmp w2, w7 - beq .L2253 + beq .L2258 ldr w0, [x29,176] add x5, x20, :lo12:.LANCHOR2 orr w2, w23, w2, lsl 10 @@ -15230,33 +15262,33 @@ FtlRecoverySuperblock: str w2, [x4,4] ldrb w2, [x19,8] cmp w2, 1 - bne .L2254 - cbz w6, .L2254 + bne .L2259 + cbz w6, .L2259 ldr x2, [x5,984] add x0, x2, x0 ldr w2, [x0,4] orr w2, w2, -2147483648 str w2, [x0,4] -.L2254: +.L2259: ldr w0, [x29,176] add w0, w0, 1 uxth w0, w0 str w0, [x29,176] -.L2253: +.L2258: add x1, x1, 2 - b .L2252 -.L2377: + b .L2257 +.L2382: add x0, x20, :lo12:.LANCHOR2 ldr w1, [x29,176] ldr w2, [x29,184] ldr x0, [x0,984] bl FlashReadPages str xzr, [x29,160] -.L2256: +.L2261: ldrh w0, [x29,160] ldr w1, [x29,176] cmp w1, w0, uxth - bls .L2378 + bls .L2383 ldr x0, [x29,160] mov x24, 56 mul x24, x0, x24 @@ -15272,38 +15304,38 @@ FtlRecoverySuperblock: ldr w1, [x29,188] cmp w23, w1 ldr x1, [x29,168] - bcc .L2257 + bcc .L2262 ldr w2, [x29,152] cmp w0, w2 - bcs .L2292 + bcs .L2297 ldr w2, [x29,188] cmp w23, w2 - beq .L2257 -.L2292: + beq .L2262 +.L2297: cmp w0, w26 - bne .L2293 + bne .L2298 cmp w23, w21 - beq .L2259 -.L2293: + beq .L2264 +.L2298: ldr w0, [x28,x24] cmn w0, #1 - beq .L2261 + beq .L2266 ldr x28, [x27,16] mov w0, 61589 ldrh w1, [x28] cmp w1, w0 - bne .L2268 + bne .L2273 ldr w22, [x28,4] cmn w22, #1 - beq .L2263 + beq .L2268 add x27, x20, :lo12:.LANCHOR2 mov w0, w22 ldr w1, [x27,868] bl ftl_cmp_data_ver - cbz w0, .L2263 + cbz w0, .L2268 add w0, w22, 1 str w0, [x27,868] -.L2263: +.L2268: ldr w27, [x28,8] add x1, x29, 200 ldr w0, [x28,12] @@ -15315,13 +15347,13 @@ FtlRecoverySuperblock: str x0, [x29,136] ldr w1, [x0,172] cmn w1, #1 - beq .L2264 + beq .L2269 mov w0, w22 bl ftl_cmp_data_ver - cbz w0, .L2264 + cbz w0, .L2269 ldr w1, [x29,196] cmn w1, #1 - beq .L2265 + beq .L2270 add x3, x20, :lo12:.LANCHOR2 str x3, [x29,112] ldr x0, [x3,984] @@ -15342,25 +15374,25 @@ FtlRecoverySuperblock: add x4, x2, x24 ldr w0, [x2,x24] cmn w0, #1 - bne .L2266 - b .L2267 -.L2265: + bne .L2271 + b .L2272 +.L2270: ldr w0, [x29,204] ldr w1, [x29,200] cmp w1, w0 - bne .L2268 + bne .L2273 mov w0, w27 add x1, x29, 196 mov w2, 1 bl log2phys -.L2268: +.L2273: ldrh w0, [x19] - b .L2370 -.L2266: + b .L2375 +.L2271: ldr x0, [x29,168] ldr w28, [x0,8] cmp w28, w27 - bne .L2267 + bne .L2272 ldr x0, [x29,136] ldr w1, [x29,144] str x2, [x29,96] @@ -15371,16 +15403,16 @@ FtlRecoverySuperblock: ldr x4, [x29,112] ldr x3, [x29,104] ldr x2, [x29,96] - cbz w0, .L2267 + cbz w0, .L2272 ldr w0, [x29,200] ldr w1, [x29,204] cmp w0, w1 - beq .L2273 + beq .L2278 ldr w1, [x29,196] cmp w0, w1 - beq .L2267 + beq .L2272 cmn w0, #1 - beq .L2271 + beq .L2276 str w0, [x4,4] mov w2, 0 ldr x1, [x4,16] @@ -15389,65 +15421,65 @@ FtlRecoverySuperblock: mov w1, 1 add x0, x0, x24 bl FlashReadPages - b .L2272 -.L2271: + b .L2277 +.L2276: str w0, [x2,x24] -.L2272: +.L2277: adrp x0, .LANCHOR2+984 ldr x0, [x0,#:lo12:.LANCHOR2+984] ldr w0, [x0,x24] cmn w0, #1 - beq .L2273 + beq .L2278 ldr x0, [x29,168] ldr w24, [x0,4] add x0, x25, :lo12:.LANCHOR4 mov w1, w24 ldr w0, [x0,172] bl ftl_cmp_data_ver - cbz w0, .L2273 + cbz w0, .L2278 ldr w0, [x29,144] mov w1, w24 bl ftl_cmp_data_ver - cbz w0, .L2267 -.L2273: + cbz w0, .L2272 +.L2278: ldr w1, [x29,196] mov w0, w28 bl FtlReUsePrevPpa -.L2267: +.L2272: mov w0, -1 str w0, [x29,196] ldrh w0, [x19] bl decrement_vpc_count - b .L2275 -.L2264: + b .L2280 +.L2269: ldr w0, [x29,204] ldr w1, [x29,200] cmp w1, w0 - beq .L2275 + beq .L2280 mov w0, w27 add x1, x29, 204 mov w2, 1 bl log2phys ldr w24, [x29,200] cmn w24, #1 - beq .L2275 + beq .L2280 ldr w0, [x29,196] cmp w24, w0 - beq .L2275 + beq .L2280 lsr x0, x24, 10 bl P2V_block_in_plane uxth w0, w0 add x1, x20, :lo12:.LANCHOR2 ldrh w2, [x1,3552] cmp w2, w0 - beq .L2278 + beq .L2283 ldrh w2, [x1,3600] cmp w2, w0 - beq .L2278 + beq .L2283 ldrh w1, [x1,3648] cmp w1, w0 - bne .L2275 -.L2278: + bne .L2280 +.L2283: add x28, x20, :lo12:.LANCHOR2 mov w1, 1 mov w2, 0 @@ -15462,18 +15494,18 @@ FtlRecoverySuperblock: ldr w0, [x0] ldr w1, [x3,4] cmn w0, #1 - beq .L2275 + beq .L2280 mov w0, w22 bl ftl_cmp_data_ver - cbnz w0, .L2275 + cbnz w0, .L2280 mov w0, w27 add x1, x29, 200 mov w2, 1 bl log2phys -.L2275: +.L2280: ldr w0, [x29,196] cmn w0, #1 - beq .L2257 + beq .L2262 lsr x0, x0, 10 bl P2V_block_in_plane uxth w1, w0 @@ -15481,15 +15513,15 @@ FtlRecoverySuperblock: ubfiz x3, x1, 1, 16 ldr x2, [x2,1176] ldrh w2, [x2,x3] - cbz w2, .L2279 -.L2370: + cbz w2, .L2284 +.L2375: bl decrement_vpc_count - b .L2257 -.L2279: + b .L2262 +.L2284: ldr x0, [x29,120] bl printk - b .L2257 -.L2261: + b .L2262 +.L2266: add x24, x25, :lo12:.LANCHOR4 ldrh w0, [x19] mov w2, w22 @@ -15498,74 +15530,74 @@ FtlRecoverySuperblock: bl printk ldr w0, [x24,224] cmp w0, 31 - bhi .L2280 + bhi .L2285 add x1, x24, 232 ldr w2, [x29,204] str w2, [x1,w0,uxtw 2] add w0, w0, 1 str w0, [x24,224] -.L2280: +.L2285: ldrh w0, [x19] bl decrement_vpc_count add x0, x25, :lo12:.LANCHOR4 ldr w1, [x0,172] cmn w1, #1 - beq .L2369 + beq .L2374 cmp w1, w22 - bls .L2257 -.L2369: + bls .L2262 +.L2374: str w22, [x0,172] -.L2257: +.L2262: ldr x0, [x29,160] add x0, x0, 1 str x0, [x29,160] - b .L2256 -.L2378: + b .L2261 +.L2383: ldrb w0, [x19,8] add w23, w23, 1 cmp w0, 1 uxth w23, w23 - bne .L2283 + bne .L2288 adrp x0, .LANCHOR0 add x0, x0, :lo12:.LANCHOR0 ldrb w0, [x0,136] - cbz w0, .L2283 + cbz w0, .L2288 cmp w21, w23 - bne .L2283 + bne .L2288 add x0, x20, :lo12:.LANCHOR2 ldrh w0, [x0,812] cmp w0, w23 - beq .L2259 -.L2283: + beq .L2264 +.L2288: add x0, x20, :lo12:.LANCHOR2 ldrh w1, [x0,810] cmp w23, w1 - bne .L2251 + bne .L2256 ldrh w2, [x0,740] mov w3, 65535 strh w23, [x19,2] mov x0, 0 strh wzr, [x19,4] -.L2285: +.L2290: uxth w1, w0 cmp w1, w2 - bcs .L2365 + bcs .L2370 add x0, x0, 1 add x4, x19, x0, lsl 1 ldrh w4, [x4,14] cmp w4, w3 - beq .L2285 + beq .L2290 strb w1, [x19,6] - b .L2365 -.L2259: + b .L2370 +.L2264: strb w26, [x19,6] strh w21, [x19,2] -.L2372: +.L2377: mov x0, x19 mov w1, w21 mov w2, w26 bl ftl_sb_update_avl_pages -.L2365: +.L2370: mov w0, 0 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -15585,11 +15617,11 @@ FtlSlcSuperblockCheck: stp x21, x22, [sp,32] str x23, [sp,48] ldrh w1, [x0,4] - cbz w1, .L2379 + cbz w1, .L2384 ldrh w1, [x0] mov w20, 65535 cmp w1, w20 - beq .L2379 + beq .L2384 mov x19, x0 ldrb w0, [x0,6] adrp x21, .LANCHOR0 @@ -15598,10 +15630,10 @@ FtlSlcSuperblockCheck: add x21, x21, :lo12:.LANCHOR0 add x22, x21, 652 ldrh w0, [x19,x0,lsl 1] -.L2383: +.L2388: cmp w0, w20 - bne .L2390 -.L2385: + bne .L2395 +.L2390: ldrb w0, [x19,6] add x1, x23, :lo12:.LANCHOR2 add w0, w0, 1 @@ -15609,51 +15641,51 @@ FtlSlcSuperblockCheck: uxtb w0, w0 strb w0, [x19,6] cmp w1, w0 - bne .L2384 + bne .L2389 ldrh w0, [x19,2] strb wzr, [x19,6] add w0, w0, 1 strh w0, [x19,2] -.L2384: +.L2389: ldrb w0, [x19,6] add x0, x0, 8 ldrh w0, [x19,x0,lsl 1] - b .L2383 -.L2390: + b .L2388 +.L2395: ldrb w1, [x19,8] cmp w1, 1 - bne .L2386 + bne .L2391 ldrb w0, [x21,136] - cbnz w0, .L2386 + cbnz w0, .L2391 ldrh w0, [x19,2] ldrh w0, [x22,w0,sxtw 1] cmp w0, w20 - bne .L2386 + bne .L2391 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, .L2385 + cbnz w1, .L2390 ldrh w0, [x19,2] strb w1, [x19,6] add w0, w0, 1 strh w0, [x19,2] - b .L2379 -.L2386: + b .L2384 +.L2391: adrp x0, .LANCHOR0 add x0, x0, :lo12:.LANCHOR0 ldrb w0, [x0,136] - cbz w0, .L2379 + cbz w0, .L2384 cmp w1, 1 - bne .L2379 + bne .L2384 adrp x0, .LANCHOR2 ldrh w2, [x19,2] add x0, x0, :lo12:.LANCHOR2 ldrh w1, [x0,812] cmp w2, w1 - bcc .L2379 + bcc .L2384 ldrh w1, [x19] ldr x3, [x0,1176] lsl x1, x1, 1 @@ -15665,7 +15697,7 @@ FtlSlcSuperblockCheck: ldrh w0, [x0,810] strh w0, [x19,2] strb wzr, [x19,6] -.L2379: +.L2384: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldr x23, [sp,48] @@ -15692,11 +15724,11 @@ get_new_active_ppa: add x0, x0, 8 add x24, x20, 652 ldrh w0, [x19,x0,lsl 1] -.L2392: +.L2397: cmp w0, w22 adrp x21, .LANCHOR2 - bne .L2407 -.L2393: + bne .L2412 +.L2398: ldrb w0, [x19,6] add x1, x23, :lo12:.LANCHOR2 add w0, w0, 1 @@ -15704,33 +15736,33 @@ get_new_active_ppa: uxtb w0, w0 strb w0, [x19,6] cmp w1, w0 - bne .L2394 + bne .L2399 ldrh w0, [x19,2] strb wzr, [x19,6] add w0, w0, 1 strh w0, [x19,2] -.L2394: +.L2399: ldrb w0, [x19,6] add x0, x0, 8 ldrh w0, [x19,x0,lsl 1] - b .L2392 -.L2407: + b .L2397 +.L2412: ldrb w1, [x19,8] cmp w1, 1 - bne .L2395 + bne .L2400 ldrb w1, [x20,136] - cbnz w1, .L2395 + cbnz w1, .L2400 ldrh w1, [x19,2] ldrh w1, [x24,w1,sxtw 1] cmp w1, w22 - bne .L2395 + bne .L2400 ldrh w0, [x19,4] sub w0, w0, #1 strh w0, [x19,4] ldrh w0, [x19] bl decrement_vpc_count - b .L2393 -.L2395: + b .L2398 +.L2400: ldrh w1, [x19,4] adrp x20, .LANCHOR0 ldrh w22, [x19,2] @@ -15741,51 +15773,51 @@ get_new_active_ppa: strh w1, [x19,4] mov w24, w23 add x25, x20, 652 -.L2396: +.L2401: add x0, x21, :lo12:.LANCHOR2 ldrb w1, [x19,6] ldrh w2, [x0,740] -.L2398: +.L2403: add w1, w1, 1 uxtb w1, w1 cmp w1, w2 - bne .L2397 + bne .L2402 ldrh w1, [x19,2] add w1, w1, 1 strh w1, [x19,2] mov w1, 0 -.L2397: +.L2402: add x0, x19, x1, sxtw 1 ldrh w0, [x0,16] cmp w0, w23 - beq .L2398 + beq .L2403 ldrb w0, [x19,8] strb w1, [x19,6] cmp w0, 1 - bne .L2403 + bne .L2408 ldrb w0, [x20,136] - cbnz w0, .L2400 + cbnz w0, .L2405 ldrh w0, [x19,2] ldrh w0, [x25,w0,sxtw 1] cmp w0, w24 - bne .L2400 + bne .L2405 ldrh w1, [x19,4] - cbz w1, .L2400 + cbz w1, .L2405 ldrh w0, [x19] sub w1, w1, #1 strh w1, [x19,4] bl decrement_vpc_count - b .L2396 -.L2400: + b .L2401 +.L2405: adrp x1, .LANCHOR0 add x1, x1, :lo12:.LANCHOR0 ldrb w0, [x1,136] - cbz w0, .L2403 + cbz w0, .L2408 add x2, x21, :lo12:.LANCHOR2 ldrh w1, [x19,2] ldrh w0, [x2,812] cmp w1, w0 - bcc .L2403 + bcc .L2408 ldrh w1, [x19] ldr x0, [x2,1176] lsl x1, x1, 1 @@ -15797,7 +15829,7 @@ get_new_active_ppa: ldrh w0, [x2,810] strh w0, [x19,2] strb wzr, [x19,6] -.L2403: +.L2408: mov w0, w22 ldr x25, [sp,64] ldp x19, x20, [sp,16] @@ -15819,20 +15851,20 @@ FtlWriteDumpData: stp x21, x22, [sp,32] stp x23, x24, [sp,48] ldr w0, [x20,1392] - cbnz w0, .L2408 + cbnz w0, .L2413 ldrh w2, [x20,3556] - cbz w2, .L2410 + cbz w2, .L2415 ldrb w1, [x20,3560] - cbnz w1, .L2410 + cbnz w1, .L2415 ldrb w1, [x20,3559] ldrh w3, [x20,810] mul w1, w1, w3 cmp w2, w1 - beq .L2410 + beq .L2415 ldrb w23, [x20,3562] ldr w22, [x20,1388] ldrh w24, [x20,740] - cbnz w23, .L2408 + cbnz w23, .L2413 sub w22, w22, #1 add x1, x29, 84 mov w0, w22 @@ -15847,29 +15879,29 @@ FtlWriteDumpData: str x1, [x29,96] str x21, [x29,104] str w23, [x21,4] - beq .L2412 + beq .L2417 add x0, x29, 88 mov w1, 1 mov w2, w23 bl FlashReadPages - b .L2413 -.L2412: + b .L2418 +.L2417: ldr x0, [x20,1040] mov w1, 255 ldrh w2, [x20,820] bl ftl_memset -.L2413: +.L2418: add x25, x19, :lo12:.LANCHOR2 mov w0, -3947 lsl w24, w24, 2 strh w0, [x21] mov w23, 0 add x20, x25, 3552 -.L2414: +.L2419: cmp w23, w24 - beq .L2415 + beq .L2420 ldrh w0, [x20,4] - cbz w0, .L2415 + cbz w0, .L2420 ldr w0, [x29,92] add w23, w23, 1 str w0, [x21,12] @@ -15892,16 +15924,16 @@ FtlWriteDumpData: bl FlashProgPages ldrh w0, [x20] bl decrement_vpc_count - b .L2414 -.L2415: + b .L2419 +.L2420: add x19, x19, :lo12:.LANCHOR2 mov w0, 1 strb w0, [x19,3562] - b .L2408 -.L2410: + b .L2413 +.L2415: add x19, x19, :lo12:.LANCHOR2 strb wzr, [x19,3562] -.L2408: +.L2413: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -15919,23 +15951,23 @@ l2p_flush: mov w19, 0 adrp x20, .LANCHOR2 bl FtlWriteDumpData -.L2426: +.L2431: add x1, x20, :lo12:.LANCHOR2 ldrh w0, [x1,850] cmp w0, w19 - bls .L2429 + bls .L2434 ldr x1, [x1,1256] ubfiz x0, x19, 4, 16 add x0, x1, x0 ldr w0, [x0,4] - tbz w0, #31, .L2427 + tbz w0, #31, .L2432 mov w0, w19 bl flush_l2p_region -.L2427: +.L2432: add w19, w19, 1 uxth w19, w19 - b .L2426 -.L2429: + b .L2431 +.L2434: mov w0, 0 ldp x19, x20, [sp,16] ldp x29, x30, [sp], 32 @@ -15953,26 +15985,26 @@ FtlSuperblockPowerLostFix: stp x21, x22, [sp,32] str x23, [sp,48] ldrb w20, [x0,#:lo12:.LANCHOR0+136] - cbz w20, .L2444 + cbz w20, .L2449 ldrb w20, [x19,8] cmp w20, 1 - bne .L2439 + bne .L2444 ldrh w21, [x19,4] - b .L2431 -.L2439: - mov w20, 0 + b .L2436 .L2444: + mov w20, 0 +.L2449: mov w21, 12 -.L2431: +.L2436: adrp x23, .LANCHOR2 mov w22, -1 -.L2432: +.L2437: sub w21, w21, #1 cmn w21, #1 - beq .L2434 + beq .L2439 ldrh w0, [x19,4] - cbnz w0, .L2433 -.L2434: + cbnz w0, .L2438 +.L2439: adrp x0, .LANCHOR2 ldrh w1, [x19] add x0, x0, :lo12:.LANCHOR2 @@ -15991,12 +16023,12 @@ FtlSuperblockPowerLostFix: ldr x23, [sp,48] ldp x29, x30, [sp], 128 ret -.L2433: +.L2438: mov x0, x19 bl get_new_active_ppa str w0, [x29,76] cmn w0, #1 - beq .L2434 + beq .L2439 add x2, x23, :lo12:.LANCHOR2 str w22, [x29,96] mov w3, 0 @@ -16021,7 +16053,7 @@ FtlSuperblockPowerLostFix: bl FlashProgPages ldrh w0, [x19] bl decrement_vpc_count - b .L2432 + b .L2437 .size FtlSuperblockPowerLostFix, .-FtlSuperblockPowerLostFix .align 2 .global FtlVpcCheckAndModify @@ -16047,18 +16079,18 @@ FtlVpcCheckAndModify: ldr x0, [x0,1168] lsl w2, w2, 1 bl ftl_memset -.L2446: +.L2451: add x19, x21, :lo12:.LANCHOR2 ldr w0, [x19,1388] cmp w20, w0 - bcs .L2461 + bcs .L2466 mov w0, w20 add x1, x29, 76 mov w2, 0 bl log2phys ldr w0, [x29,76] cmn w0, #1 - beq .L2447 + beq .L2452 lsr x0, x0, 10 bl P2V_block_in_plane ubfiz x0, x0, 1, 16 @@ -16066,39 +16098,39 @@ FtlVpcCheckAndModify: ldrh w1, [x2,x0] add w1, w1, 1 strh w1, [x2,x0] -.L2447: +.L2452: add w20, w20, 1 - b .L2446 -.L2461: + b .L2451 +.L2466: adrp x22, .LC127 mov w20, 0 mov w23, 65535 add x22, x22, :lo12:.LC127 -.L2449: +.L2454: ldrh w0, [x19,748] cmp w0, w20 - bls .L2462 + bls .L2467 ubfiz x21, x20, 1, 16 ldr x0, [x19,1176] ldrh w2, [x0,x21] ldr x0, [x19,1168] ldrh w3, [x0,x21] cmp w2, w3 - beq .L2452 + beq .L2457 cmp w2, w23 - beq .L2452 + beq .L2457 mov x0, x22 mov w1, w20 bl printk ldrh w0, [x19,3552] cmp w0, w20 - beq .L2452 + beq .L2457 ldrh w0, [x19,3648] cmp w0, w20 - beq .L2452 + beq .L2457 ldrh w0, [x19,3600] cmp w0, w20 - beq .L2452 + beq .L2457 ldr x0, [x19,1168] ldrh w1, [x0,x21] ldr x0, [x19,1176] @@ -16107,11 +16139,11 @@ FtlVpcCheckAndModify: bl update_vpc_list bl l2p_flush bl FtlVpcTblFlush -.L2452: +.L2457: add w20, w20, 1 uxth w20, w20 - b .L2449 -.L2462: + b .L2454 +.L2467: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldr x23, [sp,48] @@ -16130,89 +16162,89 @@ allocate_new_data_superblock: stp x21, x22, [sp,32] ldr w1, [x2,1392] ldrh w22, [x0] - cbnz w1, .L2464 + cbnz w1, .L2469 mov x21, x0 mov w0, 65535 cmp w22, w0 - beq .L2465 + beq .L2470 ubfiz x1, x22, 1, 16 ldr x0, [x2,1176] ldrh w0, [x0,x1] - cbz w0, .L2466 + cbz w0, .L2471 mov w0, w22 bl INSERT_DATA_LIST - b .L2465 -.L2466: + b .L2470 +.L2471: mov w0, w22 bl INSERT_FREE_LIST -.L2465: +.L2470: add x1, x19, :lo12:.LANCHOR2 strb wzr, [x21,8] add x0, x1, 3600 cmp x21, x0 - beq .L2467 + beq .L2472 ldrh w2, [x1,760] cmp w2, 1 - beq .L2467 + beq .L2472 adrp x0, .LANCHOR0+136 ldrb w0, [x0,#:lo12:.LANCHOR0+136] - cbz w0, .L2468 -.L2467: + cbz w0, .L2473 +.L2472: mov w0, 1 strb w0, [x21,8] - b .L2469 -.L2468: + b .L2474 +.L2473: add x0, x1, 3552 cmp x21, x0 - bne .L2469 + bne .L2474 cmp w2, 3 - beq .L2471 + beq .L2476 ldr w0, [x1,860] cmp w0, 1 - bne .L2472 -.L2471: + bne .L2477 +.L2476: add x1, x19, :lo12:.LANCHOR2 mov w0, 1 strb w0, [x1,3560] -.L2472: +.L2477: add x1, x19, :lo12:.LANCHOR2 ldr w0, [x1,3908] - cbz w0, .L2469 + cbz w0, .L2474 ldr w0, [x1,912] cmp w0, 29 - bhi .L2469 + bhi .L2474 mov w0, 1 strb w0, [x1,3560] -.L2469: +.L2474: adrp x1, .LANCHOR4 add x0, x1, :lo12:.LANCHOR4 mov x20, x1 ldrh w2, [x0,160] mov w0, 65535 cmp w2, w0 - beq .L2474 + beq .L2479 cmp w22, w2 - bne .L2475 + bne .L2480 add x19, x19, :lo12:.LANCHOR2 ubfiz x1, x2, 1, 16 ldr x0, [x19,1176] ldrh w0, [x0,x1] - cbz w0, .L2476 -.L2475: + cbz w0, .L2481 +.L2480: mov w0, w2 bl update_vpc_list -.L2476: +.L2481: add x1, x20, :lo12:.LANCHOR4 mov w0, -1 strh w0, [x1,160] -.L2474: +.L2479: mov x0, x21 bl allocate_data_superblock bl l2p_flush mov w0, 0 bl FtlEctTblFlush bl FtlVpcTblFlush -.L2464: +.L2469: mov w0, 0 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -16231,18 +16263,18 @@ FtlReadRefresh: stp x19, x20, [sp,16] str x21, [sp,32] ldr w3, [x2,80] - cbz w3, .L2490 + cbz w3, .L2495 ldr w3, [x2,84] ldr w1, [x0,1388] cmp w3, w1 - bcs .L2491 + bcs .L2496 mov w20, 2048 mov x19, x0 -.L2496: +.L2501: ldr w0, [x19,4052] ldr w1, [x19,1388] cmp w0, w1 - bcs .L2493 + bcs .L2498 add x1, x29, 52 mov w2, 0 bl log2phys @@ -16251,7 +16283,7 @@ FtlReadRefresh: add w0, w0, 1 str w0, [x19,4052] cmn w1, #1 - beq .L2494 + beq .L2499 str w1, [x29,60] mov w2, 0 str w0, [x29,80] @@ -16263,56 +16295,56 @@ FtlReadRefresh: bl FlashReadPages ldr w0, [x29,56] cmp w0, 256 - bne .L2493 + bne .L2498 ldr w0, [x29,52] lsr x0, x0, 10 bl P2V_block_in_plane bl FtlGcRefreshBlock - b .L2493 -.L2494: + b .L2498 +.L2499: subs w20, w20, #1 - bne .L2496 -.L2493: + bne .L2501 +.L2498: mov w0, -1 - b .L2498 -.L2491: + b .L2503 +.L2496: ldr w0, [x0,892] str wzr, [x2,80] str wzr, [x2,84] str w0, [x2,76] - b .L2504 -.L2490: + b .L2509 +.L2495: adrp x2, .LANCHOR0+136 ldr w3, [x0,908] ldr w0, [x0,3908] ldrb w4, [x2,#:lo12:.LANCHOR0+136] mov w2, 4194304 - cbnz w4, .L2499 + cbnz w4, .L2504 add w0, w0, w3, lsr 10 mov w3, 33554432 asr w2, w3, w0 -.L2499: +.L2504: add x4, x1, :lo12:.LANCHOR2 ldr w3, [x4,892] ldr w0, [x4,4044] add w5, w3, 1048576 cmp w0, w5 - bhi .L2500 + bhi .L2505 add w0, w2, w0 cmp w0, w3 - bcc .L2500 + bcc .L2505 ldrb w2, [x4,3884] mov w0, 0 - cbnz w2, .L2498 -.L2500: + cbnz w2, .L2503 +.L2505: add x0, x1, :lo12:.LANCHOR2 mov w1, 1 str wzr, [x0,4052] str w1, [x0,4048] str w3, [x0,4044] -.L2504: +.L2509: mov w0, 0 -.L2498: +.L2503: ldp x19, x20, [sp,16] ldr x21, [sp,32] ldp x29, x30, [sp], 112 @@ -16333,60 +16365,60 @@ ftl_do_gc: stp x25, x26, [sp,64] stp x27, x28, [sp,80] ldr w4, [x3,1392] - cbnz w4, .L2650 + cbnz w4, .L2655 ldr w4, [x3,916] - cbnz w4, .L2650 + cbnz w4, .L2655 ldrh w4, [x3,3528] cmp w4, 47 - bls .L2650 + bls .L2655 mov w23, w0 adrp x0, .LANCHOR1+3036 mov w24, w1 ldrh w1, [x0,#:lo12:.LANCHOR1+3036] mov w0, 65535 cmp w1, w0 - bne .L2507 -.L2510: + bne .L2512 +.L2515: add x0, x19, :lo12:.LANCHOR2 mov w2, 65535 ldrh w1, [x0,942] cmp w1, w2 - bne .L2508 - b .L2509 -.L2507: + bne .L2513 + b .L2514 +.L2512: ldrh w1, [x3,3648] cmp w1, w0 - beq .L2510 + beq .L2515 mov w0, 1 bl FtlGcFreeTempBlock mov w2, 1 - cbz w0, .L2510 - b .L2650 -.L2508: + cbz w0, .L2515 + b .L2655 +.L2513: ldrh w3, [x0,940] cmp w3, w2 - bne .L2509 + bne .L2514 strh w1, [x0,940] mov w1, -1 strh w1, [x0,942] -.L2509: +.L2514: add x1, x19, :lo12:.LANCHOR2 cmp w23, 1 ldr w0, [x1,932] add w0, w0, 1 add w0, w0, w23, lsl 7 str w0, [x1,932] - bne .L2521 + bne .L2526 ldr w1, [x1,3908] - cbnz w1, .L2512 + cbnz w1, .L2517 adrp x1, .LANCHOR0+136 ldrb w1, [x1,#:lo12:.LANCHOR0+136] - cbz w1, .L2521 -.L2512: + cbz w1, .L2526 +.L2517: add x20, x19, :lo12:.LANCHOR2 ldr w1, [x20,912] cmp w1, 29 - bhi .L2521 + bhi .L2526 adrp x21, .LANCHOR4 add x1, x21, :lo12:.LANCHOR4 ldrh w1, [x1,360] @@ -16396,17 +16428,17 @@ ftl_do_gc: ldrh w0, [x20,3920] mov w1, 65535 cmp w0, w1 - bne .L2521 + bne .L2526 ldrh w1, [x20,940] cmp w1, w0 - bne .L2521 + bne .L2526 ldr w0, [x20,932] cmp w0, 1024 - bhi .L2513 + bhi .L2518 ldrh w0, [x20,3544] cmp w0, 63 - bhi .L2521 -.L2513: + bhi .L2526 +.L2518: add x0, x19, :lo12:.LANCHOR2 add x1, x21, :lo12:.LANCHOR4 ldrh w2, [x0,946] @@ -16414,28 +16446,28 @@ ftl_do_gc: add w2, w2, 64 strh wzr, [x1,360] cmp w3, w2 - bgt .L2521 + bgt .L2526 str wzr, [x0,932] ldr w0, [x0,912] - cbnz w0, .L2514 + cbnz w0, .L2519 mov w0, 6 - b .L2672 -.L2514: + b .L2677 +.L2519: cmp w0, 5 - bhi .L2515 + bhi .L2520 mov w0, 18 -.L2672: +.L2677: strh w0, [x1,360] -.L2515: +.L2520: mov w0, 32 mov w27, 65535 bl List_get_gc_head_node uxth w25, w0 cmp w25, w27 - beq .L2520 + beq .L2525 add x22, x19, :lo12:.LANCHOR2 ldrh w0, [x22,948] - cbz w0, .L2517 + cbz w0, .L2522 ldrh w1, [x22,812] ubfiz x25, x25, 1, 16 ldrh w3, [x22,740] @@ -16444,7 +16476,7 @@ ftl_do_gc: ldrh w2, [x26,x25] add w1, w1, 1 cmp w2, w1 - bgt .L2520 + bgt .L2525 add w1, w0, 1 str wzr, [x22,920] uxth w1, w1 @@ -16454,7 +16486,7 @@ ftl_do_gc: uxth w20, w0 cmp w20, w27 ldr x1, [x29,120] - beq .L2520 + beq .L2525 ubfiz x27, x20, 1, 16 adrp x0, .LC128 ldrh w4, [x26,x25] @@ -16464,161 +16496,161 @@ ftl_do_gc: bl printk ldrh w0, [x22,948] cmp w0, 40 - bls .L2518 + bls .L2523 ldr x0, [x22,1176] ldrh w0, [x0,x27] cmp w0, 32 - bls .L2518 + bls .L2523 strh wzr, [x22,948] -.L2518: +.L2523: add x21, x21, :lo12:.LANCHOR4 mov w0, 6 strh w0, [x21,360] - b .L2522 -.L2517: + b .L2527 +.L2522: mov w0, 1 strh w0, [x22,948] -.L2520: +.L2525: bl GetSwlReplaceBlock uxth w20, w0 mov w0, 65535 cmp w20, w0 - bne .L2522 + bne .L2527 add x21, x21, :lo12:.LANCHOR4 strh wzr, [x21,360] -.L2521: +.L2526: add x22, x19, :lo12:.LANCHOR2 mov w0, 65535 ldrh w20, [x22,3920] cmp w20, w0 - bne .L2678 + bne .L2683 ldrh w0, [x22,3648] cmp w0, w20 - beq .L2679 -.L2522: + beq .L2684 +.L2527: mov w0, 65535 cmp w20, w0 cset w1, eq - cbz w1, .L2535 - cbnz w23, .L2535 + cbz w1, .L2540 + cbnz w23, .L2540 add x0, x19, :lo12:.LANCHOR2 mov w21, 1 ldrh w1, [x0,3544] cmp w1, 24 - bhi .L2536 + bhi .L2541 cmp w1, 16 ldrh w21, [x0,810] - bls .L2537 + bls .L2542 lsr w21, w21, 5 - b .L2536 -.L2537: + b .L2541 +.L2542: cmp w1, 12 - bls .L2538 + bls .L2543 lsr w21, w21, 4 - b .L2536 -.L2538: + b .L2541 +.L2543: lsr w0, w21, 2 cmp w1, 9 csel w21, w0, w21, cs -.L2536: +.L2541: add x0, x19, :lo12:.LANCHOR2 ldrh w2, [x0,944] cmp w2, w1 - bcs .L2540 + bcs .L2545 ldrh w1, [x0,3648] mov w2, 65535 cmp w1, w2 - bne .L2541 + bne .L2546 ldrh w2, [x0,940] cmp w2, w1 - bne .L2541 + bne .L2546 adrp x1, .LANCHOR4+360 ldrh w2, [x1,#:lo12:.LANCHOR4+360] - cbnz w2, .L2542 + cbnz w2, .L2547 ldr w1, [x0,1388] ldr w3, [x0,3836] add w1, w1, w1, lsl 1 cmp w3, w1, lsr 2 - bcs .L2543 -.L2542: + bcs .L2548 +.L2547: add x1, x19, :lo12:.LANCHOR2 ldrh w0, [x1,3916] add w0, w0, w0, lsl 1 asr w0, w0, 2 strh w0, [x1,944] - b .L2544 -.L2543: + b .L2549 +.L2548: mov w1, 18 strh w1, [x0,944] -.L2544: +.L2549: add x19, x19, :lo12:.LANCHOR2 str wzr, [x19,920] - b .L2650 -.L2541: + b .L2655 +.L2546: add x1, x19, :lo12:.LANCHOR2 ldrh w0, [x1,3916] add w0, w0, w0, lsl 1 asr w0, w0, 2 strh w0, [x1,944] -.L2540: +.L2545: cmp w24, 2 - bhi .L2605 + bhi .L2610 add x0, x19, :lo12:.LANCHOR2 ldr w0, [x0,3908] - cbz w0, .L2605 + cbz w0, .L2610 add w21, w21, 1 uxth w21, w21 - b .L2605 -.L2535: + b .L2610 +.L2540: add x21, x19, :lo12:.LANCHOR2 mov w2, 65535 ldrh w0, [x21,3648] cmp w0, w2 - bne .L2547 - cbz w1, .L2547 + bne .L2552 + cbz w1, .L2552 ldrh w1, [x21,940] cmp w1, w0 - bne .L2547 + bne .L2552 ldrh w1, [x21,3920] cmp w1, w0 - beq .L2548 -.L2553: + beq .L2553 +.L2558: mov w20, 65535 - b .L2547 -.L2548: + b .L2552 +.L2553: ldrh w24, [x21,3544] adrp x20, .LANCHOR4 ldrh w0, [x21,944] str wzr, [x21,920] cmp w0, w24 - bcs .L2549 + bcs .L2554 add x0, x20, :lo12:.LANCHOR4 ldrh w0, [x0,360] - cbnz w0, .L2550 + cbnz w0, .L2555 ldr w0, [x21,1388] ldr w1, [x21,3836] add w0, w0, w0, lsl 1 cmp w1, w0, lsr 2 - bcs .L2551 -.L2550: + bcs .L2556 +.L2555: add x19, x19, :lo12:.LANCHOR2 ldrh w0, [x19,3916] add w0, w0, w0, lsl 1 asr w0, w0, 2 strh w0, [x19,944] - b .L2552 -.L2551: + b .L2557 +.L2556: mov w0, 18 strh w0, [x21,944] -.L2552: +.L2557: add x20, x20, :lo12:.LANCHOR4 bl FtlReadRefresh ldrh w2, [x20,360] - b .L2650 -.L2549: + b .L2655 +.L2554: add x22, x20, :lo12:.LANCHOR4 ldrh w0, [x22,360] - cbnz w0, .L2553 + cbnz w0, .L2558 ldrh w20, [x21,3916] add w1, w20, w20, lsl 1 asr w1, w1, 2 @@ -16633,82 +16665,82 @@ ftl_do_gc: mov w2, 2 sdiv w0, w0, w2 cmp w1, w0 - ble .L2554 + ble .L2559 sub w20, w20, #1 cmp w24, w20 - blt .L2554 + blt .L2559 bl FtlReadRefresh - b .L2676 -.L2554: - cbnz w1, .L2553 + b .L2681 +.L2559: + cbnz w1, .L2558 mov w0, -1 add x19, x19, :lo12:.LANCHOR2 bl decrement_vpc_count ldrh w2, [x19,3544] add w2, w2, 1 - b .L2650 -.L2547: + b .L2655 +.L2552: add x0, x19, :lo12:.LANCHOR2 mov w21, 2 ldr w0, [x0,3908] cmp w0, wzr csinc w21, w21, wzr, ne - b .L2546 -.L2605: + b .L2551 +.L2610: mov w20, 65535 -.L2546: +.L2551: add x0, x19, :lo12:.LANCHOR2 mov w2, 65535 ldrh w1, [x0,3920] cmp w1, w2 - bne .L2556 + bne .L2561 cmp w20, w1 - beq .L2557 + beq .L2562 strh w20, [x0,3920] - b .L2558 -.L2557: + b .L2563 +.L2562: ldrh w1, [x0,940] cmp w1, w20 - beq .L2558 + beq .L2563 ubfiz x1, x1, 1, 16 ldr x2, [x0,1176] ldrh w1, [x2,x1] - cbnz w1, .L2559 + cbnz w1, .L2564 mov w1, -1 strh w1, [x0,940] -.L2559: +.L2564: add x0, x19, :lo12:.LANCHOR2 ldrh w1, [x0,940] strh w1, [x0,3920] mov w1, -1 strh w1, [x0,940] -.L2558: +.L2563: add x22, x19, :lo12:.LANCHOR2 mov w1, 65535 ldrh w0, [x22,3920] strb wzr, [x22,3928] cmp w0, w1 - beq .L2556 + beq .L2561 bl IsBlkInGcList - cbz w0, .L2561 + cbz w0, .L2566 mov w0, -1 strh w0, [x22,3920] -.L2561: +.L2566: adrp x0, .LANCHOR0+136 ldrb w0, [x0,#:lo12:.LANCHOR0+136] - cbz w0, .L2562 + cbz w0, .L2567 add x0, x19, :lo12:.LANCHOR2 add x22, x0, 3920 ldrh w0, [x0,3920] bl ftl_get_blk_mode strb w0, [x22,8] -.L2562: +.L2567: add x22, x19, :lo12:.LANCHOR2 mov w0, 65535 add x24, x22, 3920 ldrh w1, [x22,3920] cmp w1, w0 - beq .L2556 + beq .L2561 mov x0, x24 bl make_superblock strh wzr, [x22,3922] @@ -16720,61 +16752,61 @@ ftl_do_gc: strh wzr, [x0,362] ldrh w1, [x1,x2,lsl 1] strh w1, [x0,364] -.L2556: +.L2561: add x3, x19, :lo12:.LANCHOR2 ldrh w0, [x3,3920] ldrh w1, [x3,3552] cmp w1, w0 - beq .L2563 + beq .L2568 ldrh w1, [x3,3600] cmp w1, w0 - beq .L2563 -.L2564: + beq .L2568 +.L2569: mov x28, x3 mov w24, 65535 - b .L2565 -.L2563: + b .L2570 +.L2568: add x19, x19, :lo12:.LANCHOR2 mov w0, -1 strh w0, [x19,3920] - b .L2677 -.L2586: + b .L2682 +.L2591: ldrh w0, [x28,3922] add w21, w21, w0 uxth w21, w21 strh w21, [x28,3922] cmp w21, w25 - bcs .L2680 -.L2588: + bcs .L2685 +.L2593: ldrh w0, [x28,3544] cmp w0, 2 - bhi .L2591 + bhi .L2596 ldrh w21, [x28,810] -.L2565: +.L2570: ldrh w0, [x28,3920] cmp w0, w24 - bne .L2566 + bne .L2571 str wzr, [x28,920] adrp x25, .LANCHOR4 -.L2567: +.L2572: ldrh w22, [x28,948] mov w0, w22 bl List_get_gc_head_node uxth w26, w0 cmp w26, w24 strh w26, [x28,3920] - bne .L2568 + bne .L2573 strh wzr, [x28,948] mov w2, 8 - b .L2650 -.L2568: + b .L2655 +.L2573: mov w0, w26 add w22, w22, 1 bl IsBlkInGcList - cbz w0, .L2569 + cbz w0, .L2574 strh w22, [x28,948] - b .L2567 -.L2569: + b .L2572 +.L2574: ldrh w5, [x28,740] ubfiz x1, x26, 1, 16 ldrh w0, [x28,810] @@ -16786,49 +16818,49 @@ ftl_do_gc: ldrh w4, [x2,x1] sdiv w5, w0, w3 cmp w4, w5 - bgt .L2571 + bgt .L2576 cmp w4, 8 - bls .L2572 + bls .L2577 cmp w22, 48 - bls .L2572 + bls .L2577 add x4, x25, :lo12:.LANCHOR4 ldrh w4, [x4,176] cmp w4, 35 - bhi .L2572 -.L2571: + bhi .L2577 +.L2576: strh wzr, [x28,948] -.L2572: +.L2577: ldrh w1, [x2,x1] cmp w1, w0 - blt .L2573 + blt .L2578 cmp w20, w24 - bne .L2573 + bne .L2578 add x19, x19, :lo12:.LANCHOR2 mov w0, -1 strh wzr, [x19,948] strh w0, [x19,3920] -.L2677: +.L2682: adrp x0, .LANCHOR4+360 ldrh w2, [x0,#:lo12:.LANCHOR4+360] - b .L2650 -.L2573: - cbnz w1, .L2574 + b .L2655 +.L2578: + cbnz w1, .L2579 mov w0, -1 bl decrement_vpc_count ldrh w0, [x28,948] add w0, w0, 1 strh w0, [x28,948] - b .L2567 -.L2574: + b .L2572 +.L2579: adrp x0, .LANCHOR0 strb wzr, [x28,3928] add x0, x0, :lo12:.LANCHOR0 ldrb w0, [x0,136] - cbz w0, .L2575 + cbz w0, .L2580 mov w0, w26 bl ftl_get_blk_mode strb w0, [x28,3928] -.L2575: +.L2580: add x22, x28, 3920 mov x0, x22 bl make_superblock @@ -16841,47 +16873,47 @@ ftl_do_gc: strh w0, [x1,364] strh wzr, [x28,3922] strb wzr, [x28,3926] -.L2566: +.L2571: cmp w23, 1 - bne .L2576 + bne .L2581 bl FtlReadRefresh -.L2576: +.L2581: mov w0, 1 str w0, [x28,916] adrp x0, .LANCHOR0 ldrh w25, [x28,810] add x0, x0, :lo12:.LANCHOR0 ldrb w0, [x0,136] - cbz w0, .L2577 + cbz w0, .L2582 ldrb w0, [x28,3928] cmp w0, 1 - bne .L2577 + bne .L2582 ldrh w25, [x28,812] -.L2577: +.L2582: ldrh w0, [x28,3922] add w1, w0, w21 cmp w1, w25 - ble .L2578 + ble .L2583 sub w21, w25, w0 uxth w21, w21 -.L2578: +.L2583: mov w26, 0 -.L2579: +.L2584: cmp w21, w26, uxth - bls .L2586 + bls .L2591 add x1, x28, 3920 ldrh w4, [x1,2] mov x0, 0 ldrh w6, [x28,740] add w4, w4, w26 mov w22, w0 -.L2587: +.L2592: cmp w6, w0, uxth - bls .L2681 + bls .L2686 add x2, x1, x0, lsl 1 ldrh w2, [x2,16] cmp w2, w24 - beq .L2580 + beq .L2585 mov w3, 56 ldr x7, [x28,1016] orr w2, w4, w2, lsl 10 @@ -16890,18 +16922,18 @@ ftl_do_gc: add x5, x7, x5 uxth w22, w22 str w2, [x5,4] -.L2580: +.L2585: add x0, x0, 1 - b .L2587 -.L2681: + b .L2592 +.L2686: ldr x0, [x28,1016] mov w1, w22 ldrb w2, [x28,3928] mov x27, 0 bl FlashReadPages -.L2582: +.L2587: cmp w22, w27, uxth - bls .L2682 + bls .L2687 mov x0, 56 mul x5, x27, x0 ldr x0, [x28,1016] @@ -16909,11 +16941,11 @@ ftl_do_gc: ldr w0, [x0,x5] cmn w0, #1 ldr x4, [x1,16] - beq .L2607 + beq .L2612 ldrh w0, [x4] mov w1, 61589 cmp w0, w1 - bne .L2607 + bne .L2612 ldr w0, [x4,8] add x1, x29, 140 mov w2, 0 @@ -16928,7 +16960,7 @@ ftl_do_gc: and w0, w0, 2147483647 ldr w1, [x6,4] cmp w0, w1 - bne .L2607 + bne .L2612 adrp x0, .LANCHOR4 ldr x1, [x28,992] add x2, x0, :lo12:.LANCHOR4 @@ -16979,72 +17011,72 @@ ftl_do_gc: adrp x0, .LANCHOR0 add x0, x0, :lo12:.LANCHOR0 ldrb w0, [x0,136] - cbnz w0, .L2584 + cbnz w0, .L2589 ldr x6, [x29,112] ldr x2, [x29,120] ldrb w0, [x6,7] ldr w1, [x2,144] cmp w1, w0 - beq .L2584 + beq .L2589 ldrh w0, [x6,4] - cbnz w0, .L2607 -.L2584: + cbnz w0, .L2612 +.L2589: bl Ftl_gc_temp_data_write_back - cbz w0, .L2607 + cbz w0, .L2612 adrp x0, .LANCHOR4 add x19, x19, :lo12:.LANCHOR2 add x0, x0, :lo12:.LANCHOR4 str wzr, [x19,916] ldrh w2, [x0,360] - b .L2650 -.L2607: + b .L2655 +.L2612: add x27, x27, 1 - b .L2582 -.L2682: + b .L2587 +.L2687: add w26, w26, 1 - b .L2579 -.L2680: + b .L2584 +.L2685: adrp x0, .LANCHOR4 add x22, x0, :lo12:.LANCHOR4 mov x21, x0 ldr w1, [x22,144] - cbz w1, .L2589 + cbz w1, .L2594 bl Ftl_gc_temp_data_write_back - cbz w0, .L2589 + cbz w0, .L2594 str wzr, [x28,916] -.L2676: +.L2681: ldrh w2, [x22,360] - b .L2650 -.L2589: + b .L2655 +.L2594: add x0, x21, :lo12:.LANCHOR4 ldrh w2, [x0,362] - cbnz w2, .L2590 + cbnz w2, .L2595 ldrh w0, [x28,3920] ldr x1, [x28,1176] lsl x0, x0, 1 ldrh w4, [x1,x0] - cbz w4, .L2590 + cbz w4, .L2595 strh w2, [x1,x0] ldrh w0, [x28,3920] bl update_vpc_list bl FtlCacheWriteBack bl l2p_flush bl FtlVpcTblFlush -.L2590: +.L2595: mov w0, -1 strh w0, [x28,3920] - b .L2588 -.L2591: + b .L2593 +.L2596: adrp x1, .LANCHOR4+360 str wzr, [x28,916] ldrh w2, [x1,#:lo12:.LANCHOR4+360] cmp w2, wzr csinc w2, w2, w0, ne - b .L2650 -.L2679: + b .L2655 +.L2684: ldrh w25, [x22,940] cmp w25, w20 - bne .L2522 + bne .L2527 ldrh w0, [x22,3544] mov w2, 1024 ldr w1, [x22,932] @@ -17052,37 +17084,37 @@ ftl_do_gc: mov w0, 5120 csel w0, w0, w2, cc cmp w1, w0 - bls .L2522 + bls .L2527 adrp x0, .LANCHOR4+360 str wzr, [x22,932] strh wzr, [x0,#:lo12:.LANCHOR4+360] bl GetSwlReplaceBlock uxth w20, w0 cmp w20, w25 - bne .L2524 + bne .L2529 ldrh w1, [x22,3544] ldrh w0, [x22,946] cmp w1, w0 - bcs .L2525 + bcs .L2530 mov w0, 64 bl List_get_gc_head_node uxth w0, w0 cmp w0, w20 - beq .L2534 + beq .L2539 ldr w2, [x22,856] uxtw x1, w0 - cbnz w2, .L2527 + cbnz w2, .L2532 ldrh w0, [x22,760] cmp w0, 3 - beq .L2527 + beq .L2532 ldr w0, [x22,860] - cbnz w0, .L2527 + cbnz w0, .L2532 ldr w0, [x22,3908] - cbnz w0, .L2527 + cbnz w0, .L2532 adrp x0, .LANCHOR0+136 ldrb w0, [x0,#:lo12:.LANCHOR0+136] - cbz w0, .L2528 -.L2527: + cbz w0, .L2533 +.L2532: add x2, x19, :lo12:.LANCHOR2 ldr x0, [x2,1176] ldrh w4, [x0,x1,lsl 1] @@ -17096,7 +17128,7 @@ ftl_do_gc: csel w0, w1, w0, eq add w0, w3, w0 cmp w4, w0 - bgt .L2530 + bgt .L2535 mov w0, 0 bl List_get_gc_head_node uxth w20, w0 @@ -17105,40 +17137,40 @@ ftl_do_gc: ldr w2, [x0,3836] add w1, w1, w1, lsl 1 cmp w2, w1, lsr 2 - bhi .L2674 + bhi .L2679 mov w1, 160 - b .L2673 -.L2530: + b .L2678 +.L2535: add x0, x19, :lo12:.LANCHOR2 mov w1, 128 - b .L2675 -.L2528: + b .L2680 +.L2533: ldr x2, [x22,1176] ldrh w1, [x2,x1,lsl 1] cmp w1, 7 - bhi .L2533 + bhi .L2538 bl List_get_gc_head_node uxth w20, w0 add x0, x19, :lo12:.LANCHOR2 -.L2674: +.L2679: mov w1, 128 -.L2673: +.L2678: strh w1, [x0,946] mov w0, 65535 cmp w20, w0 - beq .L2534 - b .L2524 -.L2533: + beq .L2539 + b .L2529 +.L2538: add x0, x19, :lo12:.LANCHOR2 mov w1, 64 -.L2675: +.L2680: strh w1, [x0,946] - b .L2534 -.L2525: + b .L2539 +.L2530: mov w0, 80 strh w0, [x22,946] - b .L2534 -.L2524: + b .L2539 +.L2529: add x5, x19, :lo12:.LANCHOR2 ubfiz x4, x20, 1, 32 adrp x0, .LC129 @@ -17151,13 +17183,13 @@ ftl_do_gc: ldrh w5, [x5,944] ldrh w4, [x6,x4] bl printk -.L2534: +.L2539: bl FtlGcReFreshBadBlk - b .L2522 -.L2678: + b .L2527 +.L2683: mov w20, w0 - b .L2522 -.L2650: + b .L2527 +.L2655: mov w0, w2 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -17183,16 +17215,16 @@ FtlCacheWriteBack: stp x23, x24, [sp,48] stp x25, x26, [sp,64] ldr w22, [x0,1392] - cbnz w22, .L2685 + cbnz w22, .L2690 ldr w1, [x0,960] - cbz w1, .L2685 + cbz w1, .L2690 adrp x0, .LANCHOR0+136 ldrb w0, [x0,#:lo12:.LANCHOR0+136] - cbz w0, .L2687 + cbz w0, .L2692 ldrb w0, [x20,8] cmp w0, 1 cset w22, eq -.L2687: +.L2692: add x0, x19, :lo12:.LANCHOR2 ldrb w3, [x20,9] adrp x24, .LC130 @@ -17202,21 +17234,21 @@ FtlCacheWriteBack: ldr x0, [x0,1024] add x24, x24, :lo12:.LC130 bl FlashProgPages -.L2688: +.L2693: add x0, x19, :lo12:.LANCHOR2 ldr w1, [x0,960] cmp w23, w1 - bcs .L2705 + bcs .L2710 umull x21, w23, w26 ldr x1, [x0,1024] add x0, x1, x21 ldr w25, [x1,x21] cmn w25, #1 - beq .L2708 + beq .L2713 ldr w1, [x0,4] - cbz w22, .L2722 + cbz w22, .L2727 orr w1, w1, -2147483648 -.L2722: +.L2727: ldr w0, [x0,24] mov w2, 1 str w1, [x29,108] @@ -17228,7 +17260,7 @@ FtlCacheWriteBack: ldr x0, [x21,16] ldr w0, [x0,12] cmn w0, #1 - beq .L2692 + beq .L2697 lsr x0, x0, 10 bl P2V_block_in_plane uxth w1, w0 @@ -17236,56 +17268,56 @@ FtlCacheWriteBack: ldr x2, [x25,1176] mov w21, w1 ldrh w2, [x2,x0] - cbnz w2, .L2693 + cbnz w2, .L2698 mov x0, x24 bl printk -.L2693: +.L2698: mov w0, w21 bl decrement_vpc_count -.L2692: +.L2697: add w23, w23, 1 - b .L2688 -.L2724: + b .L2693 +.L2729: mov w20, 16386 -.L2704: +.L2709: add x0, x19, :lo12:.LANCHOR2 ldrh w0, [x0,950] - cbz w0, .L2705 + cbz w0, .L2710 mov w0, 1 mov w1, w0 bl ftl_do_gc subs w20, w20, #1 - bne .L2704 -.L2705: + bne .L2709 +.L2710: add x19, x19, :lo12:.LANCHOR2 str wzr, [x19,960] - b .L2685 -.L2708: + b .L2690 +.L2713: adrp x26, .LC130 mov w24, 0 mov w27, 56 add x26, x26, :lo12:.LC130 -.L2689: +.L2694: add x0, x19, :lo12:.LANCHOR2 ldr w1, [x0,960] cmp w24, w1 - bcs .L2724 + bcs .L2729 umull x21, w24, w27 ldr x0, [x0,1024] str w25, [x0,x21] -.L2695: +.L2700: add x23, x19, :lo12:.LANCHOR2 ldr x0, [x23,1024] add x1, x0, x21 ldr w0, [x0,x21] cmn w0, #1 ldr w0, [x1,4] - bne .L2725 + bne .L2730 lsr x0, x0, 10 bl P2V_block_in_plane ldrh w1, [x20] cmp w1, w0, uxth - bne .L2696 + bne .L2701 ldr x2, [x23,1176] ubfiz x1, x1, 1, 16 ldrh w3, [x20,4] @@ -17296,12 +17328,12 @@ FtlCacheWriteBack: ldrh w0, [x23,810] strh w0, [x20,2] strh wzr, [x20,4] -.L2696: +.L2701: ldrh w0, [x20,4] - cbnz w0, .L2697 + cbnz w0, .L2702 mov x0, x20 bl allocate_new_data_superblock -.L2697: +.L2702: add x23, x19, :lo12:.LANCHOR2 ldr w0, [x23,4064] add w0, w0, 1 @@ -17324,12 +17356,12 @@ FtlCacheWriteBack: add x0, x0, x21 bl FlashProgPages ldr w0, [x23,1392] - cbz w0, .L2695 - b .L2685 -.L2725: - cbz w22, .L2723 + cbz w0, .L2700 + b .L2690 +.L2730: + cbz w22, .L2728 orr w0, w0, -2147483648 -.L2723: +.L2728: str w0, [x29,108] mov w2, 1 ldr w0, [x1,24] @@ -17341,7 +17373,7 @@ FtlCacheWriteBack: ldr x0, [x21,16] ldr w0, [x0,12] cmn w0, #1 - beq .L2701 + beq .L2706 lsr x0, x0, 10 bl P2V_block_in_plane uxth w1, w0 @@ -17349,16 +17381,16 @@ FtlCacheWriteBack: ldr x2, [x23,1176] mov w21, w1 ldrh w2, [x2,x0] - cbnz w2, .L2702 + cbnz w2, .L2707 mov x0, x26 bl printk -.L2702: +.L2707: mov w0, w21 bl decrement_vpc_count -.L2701: +.L2706: add w24, w24, 1 - b .L2689 -.L2685: + b .L2694 +.L2690: mov w0, 0 ldr x27, [sp,80] ldp x19, x20, [sp,16] @@ -17376,13 +17408,13 @@ FtlSysFlush: stp x29, x30, [sp, -16]! add x29, sp, 0 ldr w0, [x0,#:lo12:.LANCHOR2+1392] - cbnz w0, .L2727 + cbnz w0, .L2732 bl FtlCacheWriteBack bl l2p_flush mov w0, 1 bl FtlEctTblFlush bl FtlVpcTblFlush -.L2727: +.L2732: mov w0, 0 ldp x29, x30, [sp], 16 ret @@ -17396,9 +17428,9 @@ FtlDeInit: add x29, sp, 0 ldr w0, [x0,#:lo12:.LANCHOR1+3032] cmp w0, 1 - bne .L2729 + bne .L2734 bl FtlSysFlush -.L2729: +.L2734: mov w0, 0 ldp x29, x30, [sp], 16 ret @@ -17441,40 +17473,40 @@ ftl_discard: ldr w1, [x0,#:lo12:.LANCHOR0+4048] mov w0, -1 cmp w2, w1 - bhi .L2733 + bhi .L2738 cmp w19, 31 - bls .L2747 + bls .L2752 adrp x22, .LANCHOR2 add x21, x22, :lo12:.LANCHOR2 ldr w0, [x21,1392] - cbnz w0, .L2747 + cbnz w0, .L2752 bl FtlCacheWriteBack ldrh w1, [x21,816] udiv w21, w20, w1 msub w20, w1, w21, w20 uxth w20, w20 - cbz w20, .L2736 + cbz w20, .L2741 sub w1, w1, w20 add w21, w21, 1 cmp w1, w19 csel w1, w1, w19, ls sub w19, w19, w1, uxth -.L2736: +.L2741: mov w0, -1 adrp x23, .LANCHOR4 str w0, [x29,76] -.L2737: +.L2742: add x20, x22, :lo12:.LANCHOR2 ldrh w0, [x20,816] cmp w19, w0 - bcc .L2748 + bcc .L2753 mov w0, w21 add x1, x29, 72 mov w2, 0 bl log2phys ldr w0, [x29,72] cmn w0, #1 - beq .L2738 + beq .L2743 add x1, x23, :lo12:.LANCHOR4 mov w2, 1 ldr w0, [x1,376] @@ -17490,24 +17522,24 @@ ftl_discard: lsr x0, x0, 10 bl P2V_block_in_plane bl decrement_vpc_count -.L2738: +.L2743: add x0, x22, :lo12:.LANCHOR2 add w21, w21, 1 ldrh w0, [x0,816] sub w19, w19, w0 - b .L2737 -.L2748: + b .L2742 +.L2753: adrp x0, .LANCHOR4 add x0, x0, :lo12:.LANCHOR4 ldr w1, [x0,376] cmp w1, 32 - bls .L2747 + bls .L2752 str wzr, [x0,376] bl l2p_flush bl FtlVpcTblFlush -.L2747: +.L2752: mov w0, 0 -.L2733: +.L2738: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldr x23, [sp,48] @@ -17528,12 +17560,12 @@ FtlGcFreeTempBlock: stp x25, x26, [sp,64] ldr w3, [x2,1392] ldrh w1, [x2,810] - cbnz w3, .L2784 + cbnz w3, .L2789 ldrh w20, [x2,3648] mov w4, 65535 cmp w20, w4 - bne .L2752 -.L2761: + bne .L2757 +.L2766: add x20, x19, :lo12:.LANCHOR2 adrp x21, .LANCHOR4 add x22, x21, :lo12:.LANCHOR4 @@ -17542,7 +17574,7 @@ FtlGcFreeTempBlock: ldrh w1, [x20,3648] str wzr, [x22,168] cmp w1, w0 - beq .L2784 + beq .L2789 bl FtlCacheWriteBack mov w26, 12 ldrb w0, [x23,7] @@ -17556,44 +17588,44 @@ FtlGcFreeTempBlock: ldr w0, [x20,872] add w0, w1, w0 str w0, [x20,872] - b .L2762 -.L2752: - cbz w0, .L2755 + b .L2767 +.L2757: + cbz w0, .L2760 adrp x0, .LANCHOR1 add x0, x0, :lo12:.LANCHOR1 ldrh w5, [x0,3036] cmp w5, w4 - beq .L2756 -.L2757: + beq .L2761 +.L2762: mov w1, 2 - b .L2755 -.L2756: + b .L2760 +.L2761: strh w3, [x0,3036] ldrh w0, [x2,3544] cmp w0, 17 - bhi .L2757 -.L2755: + bhi .L2762 +.L2760: add x21, x19, :lo12:.LANCHOR2 add x0, x21, 3648 bl FtlGcScanTempBlk str w0, [x29,92] cmn w0, #1 - beq .L2758 + beq .L2763 ubfiz x20, x20, 1, 16 ldr x1, [x21,1160] ldrh w0, [x1,x20] cmp w0, 4 - bls .L2759 + bls .L2764 sub w0, w0, #5 strh w0, [x1,x20] mov w0, 1 bl FtlEctTblFlush -.L2759: +.L2764: adrp x0, .LANCHOR4 add x1, x0, :lo12:.LANCHOR4 mov x20, x0 ldr w1, [x1,168] - cbnz w1, .L2760 + cbnz w1, .L2765 add x19, x19, :lo12:.LANCHOR2 ldr w0, [x19,4064] add w0, w0, 1 @@ -17602,20 +17634,20 @@ FtlGcFreeTempBlock: lsr w0, w0, 10 bl FtlBbmMapBadBlock bl FtlBbmTblFlush -.L2760: +.L2765: add x0, x20, :lo12:.LANCHOR4 str wzr, [x0,168] mov w0, 1 - b .L2751 -.L2758: + b .L2756 +.L2763: adrp x0, .LANCHOR1+3036 mov w1, 65535 ldrh w2, [x0,#:lo12:.LANCHOR1+3036] mov w0, 1 cmp w2, w1 - bne .L2751 - b .L2761 -.L2765: + bne .L2756 + b .L2766 +.L2770: ldr x25, [x20,976] add x1, x29, 92 umull x24, w22, w26 @@ -17626,7 +17658,7 @@ FtlGcFreeTempBlock: ldr w0, [x29,92] ldr w1, [x25,x24] cmp w0, w1 - bne .L2763 + bne .L2768 lsr x0, x0, 10 bl P2V_block_in_plane mov w24, w0 @@ -17635,47 +17667,47 @@ FtlGcFreeTempBlock: mov w2, 1 bl log2phys mov w0, w24 -.L2783: +.L2788: bl decrement_vpc_count -.L2764: +.L2769: add w22, w22, 1 uxth w22, w22 -.L2762: +.L2767: add x0, x21, :lo12:.LANCHOR4 ldrh w0, [x0,178] cmp w0, w22 - bhi .L2765 - b .L2785 -.L2763: + bhi .L2770 + b .L2790 +.L2768: ldr w1, [x23,4] cmp w0, w1 - beq .L2764 + beq .L2769 ldrh w0, [x20,3648] - b .L2783 -.L2785: + b .L2788 +.L2790: mov w0, -1 adrp x20, .LANCHOR0 bl decrement_vpc_count add x0, x20, :lo12:.LANCHOR0 ldrb w0, [x0,136] - cbz w0, .L2766 + cbz w0, .L2771 add x1, x19, :lo12:.LANCHOR2 adrp x0, .LC131 add x0, x0, :lo12:.LC131 ldrh w1, [x1,3648] bl printk -.L2766: +.L2771: add x1, x19, :lo12:.LANCHOR2 ldrh w0, [x1,3648] ldr x1, [x1,1176] ubfiz x2, x0, 1, 16 ldrh w1, [x1,x2] - cbz w1, .L2767 + cbz w1, .L2772 bl INSERT_DATA_LIST - b .L2768 -.L2767: + b .L2773 +.L2772: bl INSERT_FREE_LIST -.L2768: +.L2773: add x22, x19, :lo12:.LANCHOR2 add x21, x21, :lo12:.LANCHOR4 mov w0, -1 @@ -17685,42 +17717,42 @@ FtlGcFreeTempBlock: bl l2p_flush bl FtlVpcTblFlush ldr w0, [x22,3908] - cbz w0, .L2769 + cbz w0, .L2774 ldr w0, [x22,912] cmp w0, 29 - bhi .L2769 + bhi .L2774 ldrh w0, [x22,3916] ldrh w1, [x22,3544] cmp w1, w0 - bcs .L2770 + bcs .L2775 lsl w0, w0, 1 strh w0, [x22,944] -.L2770: +.L2775: add x19, x19, :lo12:.LANCHOR2 mov w0, -1 strh w0, [x19,3920] -.L2784: +.L2789: mov w0, 0 - b .L2751 -.L2769: + b .L2756 +.L2774: add x19, x19, :lo12:.LANCHOR2 ldrh w1, [x19,3916] ldrh w0, [x19,3544] add w2, w1, w1, lsl 1 cmp w0, w2, lsr 2 - ble .L2784 + ble .L2789 add x20, x20, :lo12:.LANCHOR0 mov w0, -1 strh w0, [x19,3920] ldrb w0, [x20,136] - cbz w0, .L2771 + cbz w0, .L2776 sub w1, w1, #2 strh w1, [x19,944] - b .L2784 -.L2771: + b .L2789 +.L2776: mov w1, 20 strh w1, [x19,944] -.L2751: +.L2756: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -17744,14 +17776,14 @@ FtlGcPageRecovery: ldrh w1, [x19,3650] ldrh w0, [x19,810] cmp w1, w0 - bcc .L2786 + bcc .L2791 add x0, x19, 3696 bl FtlMapBlkWriteDumpData mov w0, 0 bl FtlGcFreeTempBlock adrp x0, .LANCHOR4+168 str wzr, [x0,#:lo12:.LANCHOR4+168] -.L2786: +.L2791: ldp x19, x20, [sp,16] ldp x29, x30, [sp], 32 ret @@ -17798,17 +17830,17 @@ Ftl_gc_temp_data_write_back: str x23, [sp,48] adrp x21, .LANCHOR4 adrp x19, .LANCHOR2 - cbz w0, .L2790 + cbz w0, .L2795 add x0, x21, :lo12:.LANCHOR4 ldr w0, [x0,144] - tbz x0, 0, .L2790 + tbz x0, 0, .L2795 add x0, x19, :lo12:.LANCHOR2 ldrh w0, [x0,3652] - cbz w0, .L2790 -.L2795: + cbz w0, .L2795 +.L2800: mov w0, 0 - b .L2791 -.L2790: + b .L2796 +.L2795: add x0, x19, :lo12:.LANCHOR2 add x1, x21, :lo12:.LANCHOR4 mov w2, 0 @@ -17818,18 +17850,18 @@ Ftl_gc_temp_data_write_back: ldr x0, [x0,992] ldr w1, [x1,144] bl FlashProgPages -.L2792: +.L2797: add x22, x21, :lo12:.LANCHOR4 ldr w1, [x22,144] cmp w20, w1 - bcs .L2806 + bcs .L2811 add x0, x19, :lo12:.LANCHOR2 umull x1, w20, w23 ldr x2, [x0,992] add x3, x2, x1 ldr w2, [x2,x1] cmn w2, #1 - bne .L2793 + bne .L2798 ldrh w4, [x0,3648] ldr x3, [x0,1176] strh wzr, [x3,x4,lsl 1] @@ -17844,8 +17876,8 @@ Ftl_gc_temp_data_write_back: bl FtlBbmMapBadBlock bl FtlBbmTblFlush bl FtlGcPageVarInit - b .L2805 -.L2793: + b .L2810 +.L2798: ldr x2, [x3,16] add w20, w20, 1 ldr w1, [x3,4] @@ -17853,19 +17885,19 @@ Ftl_gc_temp_data_write_back: ldr w0, [x2,12] ldr w2, [x2,8] bl FtlGcUpdatePage - b .L2792 -.L2806: + b .L2797 +.L2811: add x19, x19, :lo12:.LANCHOR2 ldr x0, [x19,992] bl FtlGcBufFree str wzr, [x22,144] ldrh w0, [x19,3652] - cbnz w0, .L2795 + cbnz w0, .L2800 mov w0, 1 bl FtlGcFreeTempBlock -.L2805: +.L2810: mov w0, 1 -.L2791: +.L2796: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldr x23, [sp,48] @@ -17885,10 +17917,10 @@ Ftl_get_new_temp_ppa: ldrh w2, [x0,3648] mov w0, 65535 cmp w2, w0 - beq .L2808 + beq .L2813 ldrh w0, [x1,4] - cbnz w0, .L2809 -.L2808: + cbnz w0, .L2814 +.L2813: bl FtlCacheWriteBack mov w0, 0 bl FtlGcFreeTempBlock @@ -17904,7 +17936,7 @@ Ftl_get_new_temp_ppa: mov w0, 0 bl FtlEctTblFlush bl FtlVpcTblFlush -.L2809: +.L2814: add x0, x19, :lo12:.LANCHOR2 add x0, x0, 3648 bl get_new_active_ppa @@ -17917,24 +17949,23 @@ Ftl_get_new_temp_ppa: .type ftl_read, %function ftl_read: stp x29, x30, [sp, -176]! - uxtb w0, w0 + 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] - cmp w0, 16 mov w20, w1 mov w28, w2 mov x25, x3 - bne .L2811 + bne .L2816 add w0, w1, 256 mov w1, w2 mov x2, x3 bl FtlVendorPartRead - b .L2812 -.L2811: + b .L2817 +.L2816: add w0, w1, w2 str w0, [x29,156] adrp x0, .LANCHOR0+4048 @@ -17942,7 +17973,7 @@ ftl_read: ldr w1, [x0,#:lo12:.LANCHOR0+4048] mov w0, -1 cmp w2, w1 - bhi .L2812 + bhi .L2817 adrp x19, .LANCHOR2 sub w24, w2, #1 add x1, x19, :lo12:.LANCHOR2 @@ -17962,35 +17993,35 @@ ftl_read: mov w0, w27 mov w1, w24 bl FtlCacheMetchLpa - cbz w0, .L2813 + cbz w0, .L2818 bl FtlCacheWriteBack -.L2813: +.L2818: mov w26, 0 mov w21, w27 str w26, [x29,152] mov w22, w26 str w26, [x29,140] -.L2814: - cbz w23, .L2855 +.L2819: + cbz w23, .L2860 mov w0, w21 add x1, x29, 172 mov w2, 0 bl log2phys ldr w3, [x29,172] cmn w3, #1 - bne .L2853 + bne .L2858 mov w3, 0 -.L2815: +.L2820: add x0, x19, :lo12:.LANCHOR2 ldrh w0, [x0,816] cmp w3, w0 - bcs .L2819 + bcs .L2824 madd w0, w21, w0, w3 cmp w0, w20 - bcc .L2817 + bcc .L2822 ldr w1, [x29,156] cmp w0, w1 - bcs .L2817 + bcs .L2822 sub w0, w0, w20 mov w1, 0 ubfiz x0, x0, 9, 23 @@ -17999,10 +18030,10 @@ ftl_read: str x3, [x29,144] bl ftl_memset ldr x3, [x29,144] -.L2817: +.L2822: add w3, w3, 1 - b .L2815 -.L2853: + b .L2820 +.L2858: add x2, x19, :lo12:.LANCHOR2 mov w0, 56 cmp w21, w27 @@ -18011,7 +18042,7 @@ ftl_read: add x0, x0, x1 str w3, [x0,4] ldrh w0, [x2,816] - bne .L2820 + bne .L2825 ldr x3, [x2,984] ldr x2, [x2,1080] add x3, x3, x1 @@ -18024,12 +18055,12 @@ ftl_read: csel w2, w2, w28, ls str w2, [x29,152] cmp w2, w0 - bne .L2821 + bne .L2826 str x25, [x3,8] - b .L2821 -.L2820: + b .L2826 +.L2825: cmp w21, w24 - bne .L2822 + bne .L2827 ldr x3, [x2,984] ldr x2, [x2,1088] add x3, x3, x1 @@ -18038,13 +18069,13 @@ ftl_read: mul w2, w21, w0 sub w26, w4, w2 cmp w26, w0 - bne .L2821 + bne .L2826 sub w2, w2, w20 ubfiz x2, x2, 9, 23 add x2, x25, x2 str x2, [x3,8] - b .L2821 -.L2822: + b .L2826 +.L2827: ldr x2, [x2,984] mul w0, w21, w0 add x2, x2, x1 @@ -18052,7 +18083,7 @@ ftl_read: ubfiz x0, x0, 9, 23 add x0, x25, x0 str x0, [x2,8] -.L2821: +.L2826: add x2, x19, :lo12:.LANCHOR2 ldr x0, [x2,984] add x1, x0, x1 @@ -18064,16 +18095,16 @@ ftl_read: and x0, x0, 4294967292 add x0, x2, x0 str x0, [x1,16] -.L2819: +.L2824: subs w23, w23, #1 add w21, w21, 1 - beq .L2823 + beq .L2828 add x0, x19, :lo12:.LANCHOR2 ldrh w0, [x0,740] cmp w22, w0, lsl 3 - bne .L2814 -.L2823: - cbz w22, .L2814 + bne .L2819 +.L2828: + cbz w22, .L2819 add x0, x19, :lo12:.LANCHOR2 mov w1, w22 mov w2, 0 @@ -18088,10 +18119,10 @@ ftl_read: str w0, [x29,136] lsl w0, w26, 9 str w0, [x29,108] -.L2825: +.L2830: ldr w0, [x29,144] cmp w22, w0 - bls .L2856 + bls .L2861 ldr x0, [x29,144] add x2, x19, :lo12:.LANCHOR2 mov x1, 56 @@ -18100,24 +18131,24 @@ ftl_read: add x0, x0, x3 ldr w1, [x0,24] cmp w1, w27 - bne .L2826 + bne .L2831 ldr x1, [x0,8] ldr x0, [x2,1080] cmp x1, x0 - bne .L2827 + bne .L2832 ldr x2, [x29,128] mov x0, x25 str x3, [x29,96] add x1, x1, x2 ldr w2, [x29,136] - b .L2854 -.L2826: + b .L2859 +.L2831: cmp w1, w24 - bne .L2827 + bne .L2832 ldr x1, [x0,8] ldr x0, [x2,1088] cmp x1, x0 - bne .L2827 + bne .L2832 ldrh w0, [x2,816] ldr w2, [x29,108] str x3, [x29,96] @@ -18125,46 +18156,46 @@ ftl_read: sub w0, w0, w20 ubfiz x0, x0, 9, 23 add x0, x25, x0 -.L2854: +.L2859: bl ftl_memcpy ldr x3, [x29,96] -.L2827: +.L2832: add x0, x19, :lo12:.LANCHOR2 ldr x1, [x0,984] add x5, x1, x3 ldr w4, [x1,x3] cmn w4, #1 - bne .L2828 + bne .L2833 ldr w2, [x0,4040] str w4, [x29,140] add w2, w2, 1 str w2, [x0,4040] -.L2828: +.L2833: ldr w0, [x1,x3] cmp w0, 256 - bne .L2829 + bne .L2834 ldr w0, [x5,4] lsr x0, x0, 10 bl P2V_block_in_plane bl FtlGcRefreshBlock -.L2829: +.L2834: ldr x0, [x29,144] add x0, x0, 1 str x0, [x29,144] - b .L2825 -.L2856: + b .L2830 +.L2861: mov w22, 0 - b .L2814 -.L2855: + b .L2819 +.L2860: add x19, x19, :lo12:.LANCHOR2 ldrh w0, [x19,950] - cbz w0, .L2832 + cbz w0, .L2837 mov w0, w23 mov w1, 1 bl ftl_do_gc -.L2832: +.L2837: ldr w0, [x29,140] -.L2812: +.L2817: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -18178,6 +18209,8 @@ ftl_read: .type ftl_write, %function ftl_write: stp x29, x30, [sp, -272]! + mov w4, w0 + mov w0, 0 add x29, sp, 0 stp x19, x20, [sp,16] mov w20, w1 @@ -18191,25 +18224,21 @@ ftl_write: mov x22, x3 str x1, [x29,152] ldr w3, [x2,1392] - cbz w3, .L2858 -.L2865: - mov w0, 0 - b .L2859 -.L2858: - cmp w0, 16 - bne .L2860 + cbnz w3, .L2863 + cmp w4, 16 + bne .L2864 add w0, w20, 256 mov w1, w21 mov x2, x22 bl FtlVendorPartWrite - b .L2859 -.L2860: + b .L2863 +.L2864: adrp x0, .LANCHOR0+4048 add w24, w20, w21 ldr w1, [x0,#:lo12:.LANCHOR0+4048] mov w0, -1 cmp w24, w1 - bhi .L2859 + bhi .L2863 adrp x3, .LANCHOR4 ldrh w1, [x2,816] add x26, x3, :lo12:.LANCHOR4 @@ -18222,7 +18251,7 @@ ftl_write: add x19, x2, 3552 ldr w3, [x2,960] udiv w0, w24, w1 - str w0, [x29,188] + str w0, [x29,200] sub w28, w0, w23 add w25, w28, 1 ldr w0, [x2,876] @@ -18236,7 +18265,7 @@ ftl_write: cmp w21, 8 add x0, x2, 3600 csel x19, x19, x0, hi - cbz w3, .L2862 + cbz w3, .L2867 mov w0, 56 sub w3, w3, #1 umull x3, w3, w0 @@ -18244,7 +18273,7 @@ ftl_write: add x3, x0, x3 ldr w0, [x3,24] cmp w23, w0 - bne .L2863 + bne .L2868 ldr w0, [x2,884] add w0, w0, 1 str w0, [x2,884] @@ -18262,30 +18291,33 @@ ftl_write: mov w2, w25 mov x1, x22 bl ftl_memcpy - cbnz w28, .L2864 + cbnz w28, .L2869 ldr w0, [x26,384] cmp w0, 2 - ble .L2865 -.L2864: + bgt .L2869 +.L2902: + mov w0, 0 + b .L2863 +.L2869: add x22, x22, x25 sub w21, w21, w19 add w20, w20, w19 add w23, w23, 1 mov w25, w28 -.L2863: +.L2868: ldr x0, [x29,144] add x0, x0, :lo12:.LANCHOR4 ldr x19, [x0,368] str wzr, [x0,384] -.L2862: - ldr w1, [x29,188] +.L2867: + ldr w1, [x29,200] mov w0, w23 bl FtlCacheMetchLpa - cbz w0, .L2866 + cbz w0, .L2870 bl FtlCacheWriteBack -.L2866: +.L2870: ldr x0, [x29,144] - str w23, [x29,200] + str w23, [x29,192] add x0, x0, :lo12:.LANCHOR4 str x19, [x0,368] ldr x0, [x29,152] @@ -18295,48 +18327,48 @@ ftl_write: adrp x0, .LC132 add x0, x0, :lo12:.LC132 str x0, [x29,104] -.L2867: - cbz w25, .L2926 +.L2871: + cbz w25, .L2932 ldrh w0, [x19,4] - cbnz w0, .L2868 + cbnz w0, .L2872 ldr x1, [x29,176] adrp x26, .LANCHOR1 cmp x19, x1 - bne .L2869 + bne .L2873 add x0, x24, 3600 ldrh w19, [x0,4] - cbnz w19, .L2870 + cbnz w19, .L2874 bl allocate_new_data_superblock add x0, x26, :lo12:.LANCHOR1 str w19, [x0,3040] -.L2870: +.L2874: ldr x0, [x29,176] add x26, x26, :lo12:.LANCHOR1 add x19, x24, 3600 bl allocate_new_data_superblock ldr w0, [x26,3040] - cbnz w0, .L2871 -.L2872: + cbnz w0, .L2875 +.L2876: ldr x19, [x29,176] - b .L2871 -.L2869: + b .L2875 +.L2873: add x26, x26, :lo12:.LANCHOR1 str w0, [x26,3040] ldr x0, [x29,176] ldrh w0, [x0,4] - cbnz w0, .L2872 + cbnz w0, .L2876 mov x0, x19 bl allocate_new_data_superblock -.L2871: +.L2875: ldrh w0, [x19,4] - cbnz w0, .L2873 + cbnz w0, .L2877 mov x0, x19 bl allocate_new_data_superblock -.L2873: +.L2877: ldr x0, [x29,144] add x0, x0, :lo12:.LANCHOR4 str x19, [x0,368] -.L2868: +.L2872: ldr w0, [x24,956] mov x28, 0 ldr w2, [x24,960] @@ -18352,28 +18384,28 @@ ftl_write: str w0, [x29,116] add w0, w21, w20 str w0, [x29,136] -.L2874: - ldr w1, [x29,200] +.L2878: + ldr w1, [x29,192] mov w0, w28 add w27, w1, w28 ldr w1, [x29,140] cmp w28, w1 - bcs .L2927 + bcs .L2933 ldrh w1, [x19,4] - cbz w1, .L2903 - ldr w1, [x29,188] + cbz w1, .L2909 + ldr w1, [x29,200] cmp w27, w1 cset w7, eq - cbz w0, .L2876 + cbz w0, .L2880 ldr w1, [x29,116] tst w7, w1 - beq .L2876 + beq .L2880 ldrh w1, [x24,816] ldr w2, [x29,136] msub w2, w27, w1, w2 cmp w2, w1 - bne .L2903 -.L2876: + bne .L2909 +.L2880: add x1, x29, 212 mov w2, 0 mov w0, w27 @@ -18384,7 +18416,7 @@ ftl_write: ldr w6, [x24,960] mov w5, 56 ldr x2, [x24,1024] - str x5, [x29,192] + str x5, [x29,184] umull x1, w6, w5 add x2, x2, x1 str w0, [x2,4] @@ -18411,20 +18443,20 @@ ftl_write: bl ftl_memset cmp w27, w23 cset w0, eq - str w0, [x29,184] - cbnz w0, .L2906 + str w0, [x29,196] + cbnz w0, .L2912 ldr x7, [x29,160] - ldr x5, [x29,192] - cbz w7, .L2877 + ldr x5, [x29,184] + cbz w7, .L2881 ldr w0, [x29,136] ldrh w2, [x24,816] msub w2, w27, w2, w0 uxth w0, w2 - str w0, [x29,192] - ldr w0, [x29,184] + str w0, [x29,184] + ldr w0, [x29,196] str w0, [x29,160] - b .L2880 -.L2906: + b .L2884 +.L2912: ldrh w2, [x24,816] udiv w0, w20, w2 msub w0, w0, w2, w20 @@ -18432,40 +18464,40 @@ ftl_write: sub w2, w2, w0 cmp w2, w21 csel w0, w2, w21, ls - str w0, [x29,192] -.L2880: + str w0, [x29,184] +.L2884: ldrh w0, [x24,816] - ldr w1, [x29,192] + ldr w1, [x29,184] cmp w1, w0 - bne .L2881 - ldr w0, [x29,184] + bne .L2885 + ldr w0, [x29,196] mov x1, x22 - cbnz w0, .L2882 - ldr w0, [x29,192] + cbnz w0, .L2886 + ldr w0, [x29,184] mul w1, w0, w27 sub w1, w1, w20 ubfiz x1, x1, 9, 23 add x1, x22, x1 -.L2882: +.L2886: ldr w2, [x29,204] mov w0, 56 - cbz w2, .L2883 + cbz w2, .L2887 ldr w2, [x24,960] umull x0, w2, w0 ldr x2, [x24,1024] add x0, x2, x0 - b .L2925 -.L2883: + b .L2929 +.L2887: ldr w2, [x24,960] umull x0, w2, w0 ldr x2, [x24,1024] add x0, x2, x0 ldr x0, [x0,8] - b .L2923 -.L2881: + b .L2930 +.L2885: ldr w0, [x29,212] cmn w0, #1 - beq .L2885 + beq .L2889 str w0, [x29,220] mov w1, 56 ldr w0, [x24,960] @@ -18483,15 +18515,15 @@ ftl_write: bl FlashReadPages ldr w0, [x29,216] cmn w0, #1 - bne .L2886 + bne .L2890 ldr w0, [x24,4040] add w0, w0, 1 str w0, [x24,4040] - b .L2888 -.L2886: + b .L2892 +.L2890: ldr w0, [x26,8] cmp w0, w27 - beq .L2888 + beq .L2892 ldr w0, [x24,4040] mov w2, w27 add w0, w0, 1 @@ -18499,8 +18531,8 @@ ftl_write: ldr x0, [x29,104] ldr w1, [x26,8] bl printk - b .L2888 -.L2885: + b .L2892 +.L2889: ldr w0, [x24,960] mov w1, 56 ldrh w2, [x24,820] @@ -18510,12 +18542,12 @@ ftl_write: mov w1, 0 ldr x0, [x0,8] bl ftl_memset -.L2888: - ldr w1, [x29,192] +.L2892: + ldr w1, [x29,184] mov w0, 56 lsl w2, w1, 9 - ldr w1, [x29,184] - cbz w1, .L2889 + ldr w1, [x29,196] + cbz w1, .L2893 ldr w1, [x24,960] umull x0, w1, w0 ldr x1, [x24,1024] @@ -18525,8 +18557,8 @@ ftl_write: ldr x1, [x1,8] add x0, x1, x0 mov x1, x22 - b .L2924 -.L2889: + b .L2931 +.L2893: ldr w1, [x24,960] umull x0, w1, w0 ldr x1, [x24,1024] @@ -18537,12 +18569,12 @@ ftl_write: sub w1, w1, w20 ubfiz x1, x1, 9, 23 add x1, x22, x1 - b .L2924 -.L2877: + b .L2931 +.L2881: ldr w0, [x29,204] ldrh w1, [x24,816] ldr w2, [x24,960] - cbz w0, .L2890 + cbz w0, .L2894 mul w1, w27, w1 umull x0, w2, w5 sub w1, w1, w20 @@ -18550,10 +18582,10 @@ ftl_write: ubfiz x1, x1, 9, 23 add x0, x2, x0 add x1, x22, x1 -.L2925: +.L2929: str x1, [x0,8] - b .L2884 -.L2890: + b .L2888 +.L2894: umull x0, w2, w5 ldr x2, [x24,1024] mul w1, w27, w1 @@ -18562,11 +18594,11 @@ ftl_write: ubfiz x1, x1, 9, 23 ldr x0, [x0,8] add x1, x22, x1 -.L2923: +.L2930: ldrh w2, [x24,820] -.L2924: +.L2931: bl ftl_memcpy -.L2884: +.L2888: ldr x1, [x29,120] mov w0, -3947 ldr x2, [x29,128] @@ -18586,34 +18618,34 @@ ftl_write: ldr w0, [x24,960] add w0, w0, 1 str w0, [x24,960] - b .L2874 -.L2927: - str w27, [x29,200] + b .L2878 +.L2933: + str w27, [x29,192] mov x0, x1 - b .L2875 -.L2903: - str w27, [x29,200] -.L2875: + b .L2879 +.L2909: + str w27, [x29,192] +.L2879: sub w25, w25, w0 ldr w0, [x29,204] - cbnz w0, .L2894 + cbnz w0, .L2898 ldr w1, [x24,960] ldr w0, [x24,956] cmp w1, w0 - bcs .L2894 + bcs .L2898 ldrh w0, [x19,4] - cbz w0, .L2894 -.L2896: + cbz w0, .L2898 +.L2900: str wzr, [x29,204] - b .L2867 -.L2894: + b .L2871 +.L2898: bl FtlCacheWriteBack str wzr, [x24,960] cmp w25, 3 - bls .L2896 - b .L2867 -.L2926: - ldr w1, [x29,188] + bls .L2900 + b .L2871 +.L2932: + ldr w1, [x29,200] mov w0, w25 sub w1, w1, w23 bl ftl_do_gc @@ -18621,23 +18653,23 @@ ftl_write: add x0, x0, :lo12:.LANCHOR2 ldrh w1, [x0,3544] cmp w1, 31 - bhi .L2865 + bhi .L2902 mov w1, 128 mov w19, 16 strh w1, [x0,946] strh w1, [x0,944] -.L2898: +.L2903: mov w0, 0 mov w1, 1 bl ftl_do_gc ldr x0, [x29,152] add x0, x0, :lo12:.LANCHOR2 ldr w0, [x0,1392] - cbnz w0, .L2865 + cbnz w0, .L2902 subs w19, w19, #1 - bne .L2898 - b .L2865 -.L2859: + bne .L2903 + b .L2902 +.L2863: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -18647,6 +18679,37 @@ ftl_write: 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 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 ftl_fix_nand_power_lost_error .type ftl_fix_nand_power_lost_error, %function ftl_fix_nand_power_lost_error: @@ -18658,7 +18721,7 @@ ftl_fix_nand_power_lost_error: stp x21, x22, [sp,32] stp x23, x24, [sp,48] stp x25, x26, [sp,64] - cbz w0, .L2928 + cbz w0, .L2936 adrp x21, .LANCHOR4 adrp x19, .LANCHOR2 add x0, x21, :lo12:.LANCHOR4 @@ -18682,17 +18745,17 @@ ftl_fix_nand_power_lost_error: bl allocate_new_data_superblock mov x0, x25 bl allocate_new_data_superblock -.L2930: +.L2938: subs w20, w20, #1 - beq .L2934 + beq .L2942 mov w0, 1 mov w1, w0 bl ftl_do_gc add x0, x19, :lo12:.LANCHOR2 ldr x0, [x0,1176] ldrh w0, [x0,x22] - cbnz w0, .L2930 -.L2934: + cbnz w0, .L2938 +.L2942: add x20, x19, :lo12:.LANCHOR2 add x0, x24, :lo12:.LC133 mov w1, w23 @@ -18701,7 +18764,7 @@ ftl_fix_nand_power_lost_error: bl printk ldr x0, [x20,1176] ldrh w0, [x0,x22] - cbnz w0, .L2932 + cbnz w0, .L2940 add x0, x29, 80 strh w23, [x29,80] bl make_superblock @@ -18710,14 +18773,14 @@ ftl_fix_nand_power_lost_error: mov w6, 65535 mov w20, w0 mov w7, 56 -.L2935: +.L2943: cmp w5, w0, uxth - bls .L2942 + bls .L2950 add x1, x29, 80 add x1, x1, x0, lsl 1 ldrh w2, [x1,16] cmp w2, w6 - beq .L2936 + beq .L2944 add x4, x19, :lo12:.LANCHOR2 lsl w2, w2, 10 umull x1, w20, w7 @@ -18730,10 +18793,10 @@ ftl_fix_nand_power_lost_error: add x1, x2, x1 str xzr, [x1,8] str xzr, [x1,16] -.L2936: +.L2944: add x0, x0, 1 - b .L2935 -.L2942: + b .L2943 +.L2950: add x19, x19, :lo12:.LANCHOR2 adrp x0, .LC134 mov w1, w23 @@ -18749,11 +18812,11 @@ ftl_fix_nand_power_lost_error: mov w1, 1 mov w2, w20 bl FlashEraseBlocks -.L2932: +.L2940: add x21, x21, :lo12:.LANCHOR4 mov w0, -1 strh w0, [x21,218] -.L2928: +.L2936: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -18783,14 +18846,14 @@ FtlSysBlkInit: ldrh w1, [x21,3840] mov w0, 65535 cmp w1, w0 - bne .L2944 -.L2946: + bne .L2952 +.L2954: mov w23, -1 - b .L2945 -.L2944: + b .L2953 +.L2952: bl FtlLoadSysInfo mov w23, w0 - cbnz w0, .L2946 + cbnz w0, .L2954 bl FtlLoadMapInfo bl FtlLoadVonderInfo bl Ftl_load_ext_data @@ -18803,25 +18866,25 @@ FtlSysBlkInit: ldrh w2, [x21,850] mov x1, 0 ldr x0, [x21,1256] -.L2947: +.L2955: cmp w1, w2 mov w3, w1 - bge .L2951 + bge .L2959 add x4, x0, x1, lsl 4 add x1, x1, 1 ldr w4, [x4,4] - tbz w4, #31, .L2947 -.L2951: + tbz w4, #31, .L2955 +.L2959: add x0, x20, :lo12:.LANCHOR2 cmp w3, w2 ldrh w1, [x0,3884] add w1, w1, 1 strh w1, [x0,3884] - blt .L2948 + blt .L2956 add x19, x19, :lo12:.LANCHOR4 ldrh w0, [x19,220] - cbz w0, .L2952 -.L2948: + cbz w0, .L2960 +.L2956: add x19, x20, :lo12:.LANCHOR2 add x22, x19, 3552 add x21, x19, 3600 @@ -18860,27 +18923,30 @@ FtlSysBlkInit: strh w0, [x19,3886] bl l2p_flush bl FtlVpcTblFlush - bl FtlVpcTblFlush -.L2952: + b .L2974 +.L2960: + bl l2p_flush +.L2974: add x19, x20, :lo12:.LANCHOR2 + bl FtlVpcTblFlush mov w0, 65535 add x22, x19, 3552 ldrh w1, [x19,3552] cmp w1, w0 - bne .L2953 -.L2955: + bne .L2962 +.L2964: add x20, x20, :lo12:.LANCHOR2 ldrh w0, [x20,3884] and w0, w0, 31 - cbnz w0, .L2945 + cbnz w0, .L2953 bl FtlVpcCheckAndModify - b .L2945 -.L2953: + b .L2953 +.L2962: ldrh w0, [x22,4] - cbnz w0, .L2955 + cbnz w0, .L2964 ldrh w0, [x19,3604] add x21, x19, 3600 - cbnz w0, .L2955 + cbnz w0, .L2964 bl FtlVpcTblFlush ldrh w0, [x19,3552] bl FtlGcRefreshOpenBlock @@ -18895,19 +18961,19 @@ FtlSysBlkInit: adrp x0, .LANCHOR0 add x0, x0, :lo12:.LANCHOR0 ldrb w1, [x0,136] - cbnz w1, .L2957 + cbnz w1, .L2966 ldrb w0, [x0,24] - cbz w0, .L2955 -.L2957: + cbz w0, .L2964 +.L2966: mov w19, 4096 -.L2962: +.L2969: mov w0, 1 mov w1, w0 bl ftl_do_gc subs w19, w19, #1 - bne .L2962 - b .L2955 -.L2945: + bne .L2969 + b .L2964 +.L2953: mov w0, w23 ldr x23, [sp,48] ldp x19, x20, [sp,16] @@ -18920,27 +18986,32 @@ FtlSysBlkInit: .type FtlLowFormat, %function FtlLowFormat: stp x29, x30, [sp, -48]! + mov w1, 0 add x29, sp, 0 stp x19, x20, [sp,16] adrp x19, .LANCHOR2 - add x0, x19, :lo12:.LANCHOR2 + add x20, x19, :lo12:.LANCHOR2 stp x21, x22, [sp,32] - ldr w1, [x0,1392] - cbnz w1, .L2970 - str w1, [x0,864] - str w1, [x0,868] - ldrh w0, [x0,744] + ldrh w2, [x20,848] + ldr x0, [x20,1240] + lsl w2, w2, 2 + bl ftl_memset + ldr w0, [x20,1392] + cbnz w0, .L2977 + str w0, [x20,864] + str w0, [x20,868] + ldrh w0, [x20,744] bl FtlFreeSysBlkQueueInit bl FtlLoadBbt - cbz w0, .L2971 + cbz w0, .L2978 bl FtlMakeBbt -.L2971: +.L2978: mov w0, 0 -.L2972: +.L2979: add x1, x19, :lo12:.LANCHOR2 ldrh w2, [x1,816] cmp w0, w2, lsl 7 - bge .L2999 + bge .L3006 ubfiz x3, x0, 2, 16 ldr x4, [x1,1080] mvn w2, w0 @@ -18952,15 +19023,15 @@ FtlLowFormat: movk w1, 0xa0f, lsl 16 uxth w0, w0 str w1, [x2,x3] - b .L2972 -.L2999: + b .L2979 +.L3006: ldrh w21, [x1,748] mov w20, 0 -.L2974: +.L2981: add x22, x19, :lo12:.LANCHOR2 ldrh w0, [x22,750] cmp w0, w21 - bls .L3000 + bls .L3007 mov w0, w21 mov w1, 1 add w21, w21, 1 @@ -18968,17 +19039,17 @@ FtlLowFormat: add w0, w20, w0 uxth w21, w21 uxth w20, w0 - b .L2974 -.L3000: + b .L2981 +.L3007: ldrh w0, [x22,740] sub w1, w20, #3 cmp w1, w0, lsl 1 - bge .L2976 -.L2980: + bge .L2983 +.L2987: mov w20, 0 mov w21, w20 - b .L2977 -.L2976: + b .L2984 +.L2983: udiv w20, w20, w0 ldr w0, [x22,844] add w0, w20, w0 @@ -18986,22 +19057,22 @@ FtlLowFormat: ldrh w0, [x22,744] bl FtlFreeSysBlkQueueInit ldrh w20, [x22,748] -.L2978: +.L2985: add x0, x19, :lo12:.LANCHOR2 ldrh w0, [x0,750] cmp w0, w20 - bls .L2980 + bls .L2987 mov w0, w20 mov w1, 1 add w20, w20, 1 bl FtlLowFormatEraseBlock uxth w20, w20 - b .L2978 -.L2977: + b .L2985 +.L2984: add x2, x19, :lo12:.LANCHOR2 ldrh w0, [x2,748] cmp w0, w21 - bls .L3001 + bls .L3008 mov w0, w21 mov w1, 0 add w21, w21, 1 @@ -19009,8 +19080,8 @@ FtlLowFormat: add w0, w20, w0 uxth w21, w21 uxth w20, w0 - b .L2977 -.L3001: + b .L2984 +.L3008: ldrh w3, [x2,740] ldr w1, [x2,752] ldrh w0, [x2,750] @@ -19023,49 +19094,49 @@ FtlLowFormat: mov w0, 24 mul w0, w3, w0 cmp w20, w0 - ble .L2982 + ble .L2989 sub w1, w1, w20 udiv w1, w1, w3 str w1, [x2,1388] lsr w1, w1, 5 add w1, w1, 24 strh w1, [x2,3916] -.L2982: +.L2989: add x2, x19, :lo12:.LANCHOR2 ldr w0, [x2,3908] cmp w0, 1 - bne .L2983 + bne .L2990 ldrh w1, [x2,3916] udiv w0, w20, w3 add w0, w1, w0 add w0, w1, w0, asr 2 strh w0, [x2,3916] -.L2983: +.L2990: adrp x21, .LANCHOR0 add x0, x21, :lo12:.LANCHOR0 ldrb w0, [x0,136] - cbz w0, .L2984 + cbz w0, .L2991 add x1, x19, :lo12:.LANCHOR2 udiv w0, w20, w3 ldrh w2, [x1,3916] add w0, w2, w0 add w0, w2, w0, asr 2 strh w0, [x1,3916] -.L2984: +.L2991: add x0, x19, :lo12:.LANCHOR2 ldrh w1, [x0,802] - cbz w1, .L2986 + cbz w1, .L2993 ldrh w2, [x0,3916] add w2, w2, w1, lsr 1 strh w2, [x0,3916] mul w2, w1, w3 cmp w2, w20 - ble .L2986 + ble .L2993 add w1, w1, 32 str w4, [x0,1388] add w1, w5, w1 strh w1, [x0,3916] -.L2986: +.L2993: add x19, x19, :lo12:.LANCHOR2 add x21, x21, :lo12:.LANCHOR0 add x20, x19, 3552 @@ -19102,19 +19173,19 @@ FtlLowFormat: strb wzr, [x20,6] strh wzr, [x19,3552] bl ftl_memset -.L2988: +.L2995: mov x0, x20 bl make_superblock ldrb w0, [x20,7] - cbnz w0, .L2989 + cbnz w0, .L2996 ldrh w1, [x20] ldr x0, [x19,1176] strh w22, [x0,x1,lsl 1] ldrh w0, [x20] add w0, w0, 1 strh w0, [x20] - b .L2988 -.L2989: + b .L2995 +.L2996: ldr w0, [x19,864] mov w21, -1 str w0, [x20,12] @@ -19133,19 +19204,19 @@ FtlLowFormat: strh w1, [x19,3600] mov w1, 1 strb w1, [x19,3608] -.L2990: +.L2997: mov x0, x20 bl make_superblock ldrb w0, [x20,7] - cbnz w0, .L2991 + cbnz w0, .L2998 ldrh w1, [x20] ldr x0, [x19,1176] strh w21, [x0,x1,lsl 1] ldrh w0, [x20] add w0, w0, 1 strh w0, [x20] - b .L2990 -.L2991: + b .L2997 +.L2998: ldr w0, [x19,864] str w0, [x20,12] add w0, w0, 1 @@ -19168,11 +19239,11 @@ FtlLowFormat: str w0, [x19,864] bl FtlVpcTblFlush bl FtlSysBlkInit - cbnz w0, .L2970 + cbnz w0, .L2977 adrp x0, .LANCHOR1+3032 mov w1, 1 str w1, [x0,#:lo12:.LANCHOR1+3032] -.L2970: +.L2977: mov w0, 0 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -19189,24 +19260,24 @@ FtlReInitForSDUpdata: adrp x19, .LANCHOR0 add x0, x19, :lo12:.LANCHOR0 ldrb w0, [x0,136] - cbz w0, .L3003 -.L3005: + cbz w0, .L3010 +.L3012: mov w0, 0 - b .L3004 -.L3003: + b .L3011 +.L3010: adrp x0, RK29_NANDC_REG_BASE ldr x0, [x0,#:lo12:RK29_NANDC_REG_BASE] bl FlashInit - cbnz w0, .L3005 + cbnz w0, .L3012 bl FlashLoadFactorBbt - cbz w0, .L3006 + cbz w0, .L3013 bl FlashMakeFactorBbt -.L3006: +.L3013: adrp x20, .LANCHOR2 add x0, x20, :lo12:.LANCHOR2 ldr x0, [x0,680] bl FlashReadIdbDataRaw - cbz w0, .L3007 + cbz w0, .L3014 mov w1, 0 mov w2, 16 add x0, x29, 32 @@ -19215,39 +19286,39 @@ FtlReInitForSDUpdata: ldr w2, [x29,32] mov w1, w0 mov w4, 1 -.L3009: +.L3016: lsl w3, w4, w1 add w1, w1, 1 tst w3, w2 cset w3, ne cmp w1, 16 add w0, w0, w3 - bne .L3009 + bne .L3016 cmp w0, 6 - bhi .L3010 + bhi .L3017 add x0, x19, :lo12:.LANCHOR0 - b .L3032 -.L3010: + b .L3039 +.L3017: mov w1, 0 mov w4, 1 -.L3013: +.L3020: lsl w3, w4, w1 add w1, w1, 1 tst w3, w2 cset w3, ne cmp w1, 24 add w0, w0, w3 - bne .L3013 + bne .L3020 cmp w0, 17 add x0, x19, :lo12:.LANCHOR0 - bls .L3032 + bls .L3039 mov w1, 36 -.L3032: +.L3039: strb w1, [x0,25] add x0, x19, :lo12:.LANCHOR0 ldrb w1, [x0,25] strh w1, [x0,4042] -.L3007: +.L3014: adrp x0, .LC42 adrp x1, .LC116 add x1, x1, :lo12:.LC116 @@ -19261,25 +19332,25 @@ FtlReInitForSDUpdata: bl FtlVariablesInit ldrh w0, [x20,744] bl FtlFreeSysBlkQueueInit -.L3015: +.L3022: bl FtlLoadBbt - cbz w0, .L3016 -.L3034: + cbz w0, .L3023 +.L3041: bl FtlLowFormat cmp w19, 3 - bhi .L3035 + bhi .L3042 add w19, w19, 1 - b .L3015 -.L3035: + b .L3022 +.L3042: mov w0, -1 - b .L3004 -.L3016: + b .L3011 +.L3023: bl FtlSysBlkInit - cbnz w0, .L3034 + cbnz w0, .L3041 adrp x1, .LANCHOR1+3032 mov w2, 1 str w2, [x1,#:lo12:.LANCHOR1+3032] -.L3004: +.L3011: ldp x19, x20, [sp,16] ldp x29, x30, [sp], 48 ret @@ -19315,47 +19386,47 @@ FtlInit: ldrh w0, [x19,744] bl FtlFreeSysBlkQueueInit bl FtlLoadBbt - cbz w0, .L3037 + cbz w0, .L3044 adrp x0, .LC135 add x0, x0, :lo12:.LC135 - b .L3049 -.L3037: + b .L3056 +.L3044: bl FtlSysBlkInit - cbz w0, .L3039 + cbz w0, .L3046 adrp x0, .LC136 add x0, x0, :lo12:.LC136 -.L3049: +.L3056: adrp x1, .LANCHOR3 add x1, x1, :lo12:.LANCHOR3 add x1, x1, 40 bl printk - b .L3038 -.L3039: + b .L3045 +.L3046: mov w1, 1 str w1, [x21,3032] bl ftl_do_gc ldrh w0, [x19,3544] cmp w0, 15 - bhi .L3040 + bhi .L3047 mov w19, 1024 -.L3041: +.L3048: mov w0, 1 mov w1, w0 bl ftl_do_gc subs w19, w19, #1 - bne .L3041 - b .L3038 -.L3040: + bne .L3048 + b .L3045 +.L3047: ldrb w0, [x20,136] - cbz w0, .L3038 + cbz w0, .L3045 mov w19, 128 -.L3043: +.L3050: mov w0, 1 mov w1, w0 bl ftl_do_gc subs w19, w19, #1 - bne .L3043 -.L3038: + bne .L3050 +.L3045: mov w0, 0 ldr x21, [sp,32] ldp x19, x20, [sp,16] @@ -19587,19 +19658,19 @@ FtlInit: .section .rodata .align 3 .LANCHOR3 = . + 0 - .type __func__.19411, %object - .size __func__.19411, 11 -__func__.19411: + .type __func__.19425, %object + .size __func__.19425, 11 +__func__.19425: .string "FtlMemInit" .zero 5 - .type __func__.20343, %object - .size __func__.20343, 21 -__func__.20343: + .type __func__.20378, %object + .size __func__.20378, 21 +__func__.20378: .string "FtlVpcCheckAndModify" .zero 3 - .type __func__.19482, %object - .size __func__.19482, 8 -__func__.19482: + .type __func__.19496, %object + .size __func__.19496, 8 +__func__.19496: .string "FtlInit" .section .rodata.str1.1,"aMS",%progbits,1 .LC0: @@ -19835,7 +19906,7 @@ __func__.19482: .LC115: .string "free %d. [0x%x] 0x%x 0x%x\n" .LC116: - .string "FTL version: 5.0.47 20180118" + .string "FTL version: 5.0.47 20180316" .LC117: .string "swblk %x ,avg = %x max= %x vpc= %x,ec=%x ,max ec=%x\n" .LC118: diff --git a/drivers/rk_nand/rk_zftl_arm64.S b/drivers/rk_nand/rk_zftl_arm64.S index 8e7ae81c2178..507f22b3f481 100644 --- a/drivers/rk_nand/rk_zftl_arm64.S +++ b/drivers/rk_nand/rk_zftl_arm64.S @@ -5,12 +5,12 @@ * 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-02-27 + * date: 2018-03-16 * function: rk ftl v5 for rockchip soc base on arm v8 to support 3D/2D * TLC and MLC. */ .cpu generic+fp+simd - .file "rk_zftl_arm_v8.S" + .file "rk_zftl_arm64.S" #APP .irp num,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17\ ,18,19,20,21,22,23,24,25,26,27,28,29,30 @@ -80,6 +80,136 @@ zftl_get_density: ret .size zftl_get_density, .-zftl_get_density .align 2 + .type _list_remove_node, %function +_list_remove_node: + adrp x6, .LANCHOR0 + uxth w1, w1 + add x3, x6, :lo12:.LANCHOR0 + mov w7, 65535 + stp x29, x30, [sp, -16]! + add x29, sp, 0 + ldr x5, [x3,8] + mov w3, 6 + umull x1, w1, w3 + add x4, x5, x1 + ldrh w3, [x5,x1] + cmp w3, w7 + bne .L16 + ldrh w7, [x4,2] + cmp w7, w3 + bne .L16 + ldr x7, [x0] + cmp x4, x7 + bne .L15 +.L16: + ldrh w7, [x4,2] + mov w8, 65535 + cmp w7, w8 + bne .L18 + ldr x8, [x0] + cmp x4, x8 + beq .L18 + adrp x0, .LC0 + adrp x1, .LANCHOR1 + add x0, x0, :lo12:.LC0 + add x1, x1, :lo12:.LANCHOR1 + mov w2, 182 + bl printk +.L19: + b .L19 +.L18: + ldr x8, [x0] + cmp x4, x8 + mov w8, 65535 + bne .L20 + cmp w3, w8 + bne .L21 + str xzr, [x0] + b .L22 +.L21: + mov w6, 6 + umull x3, w3, w6 + add x3, x5, x3 + str x3, [x0] + mov w0, -1 + strh w0, [x3,2] + b .L22 +.L20: + cmp w3, w8 + bne .L23 + cmp w7, w3 + beq .L22 + mov w0, 6 + umull x7, w7, w0 + mov w0, -1 + strh w0, [x5,x7] + b .L22 +.L23: + mov w8, 6 + add x6, x6, :lo12:.LANCHOR0 + umull x3, w3, w8 + add x3, x5, x3 + strh w7, [x3,2] + ldrh w0, [x4,2] + ldr x3, [x6,8] + ldrh w7, [x5,x1] + umull x0, w0, w8 + strh w7, [x3,x0] +.L22: + mov w0, -1 + strh w0, [x5,x1] + strh w0, [x4,2] + ldrh w0, [x2] + sub w0, w0, #1 + strh w0, [x2] +.L15: + ldp x29, x30, [sp], 16 + ret + .size _list_remove_node, .-_list_remove_node + .align 2 + .type _list_pop_index_node, %function +_list_pop_index_node: + stp x29, x30, [sp, -32]! + uxth w1, w1 + add x29, sp, 0 + stp x19, x20, [sp,16] + mov w19, 65535 + ldr x20, [x0] + cbz x20, .L25 + adrp x3, .LANCHOR0+8 + mov w4, 65535 + mov w5, 6 + ldr x19, [x3,#:lo12:.LANCHOR0+8] +.L26: + cbnz w1, .L27 +.L29: + sub x19, x20, x19 + mov x1, -6148914691236517206 + asr x19, x19, 1 + madd x19, x1, x19, x19 + uxth w19, w19 + mov w1, w19 + bl _list_remove_node + mov w0, -1 + strh w0, [x20] + strh w0, [x20,2] + b .L25 +.L27: + ldrh w3, [x20] + cmp w3, w4 + beq .L29 + umull x20, w3, w5 + sub w1, w1, #1 + add x20, x19, x20 + uxth w1, w1 + b .L26 +.L25: + mov w0, w19 + ldp x19, x20, [sp,16] + ldp x29, x30, [sp], 32 + ret + .size _list_pop_index_node, .-_list_pop_index_node + .align 2 .global zftl_flash_suspend .type zftl_flash_suspend, %function zftl_flash_suspend: @@ -87,38 +217,38 @@ zftl_flash_suspend: add x0, x1, :lo12:.LANCHOR0 ldrb w1, [x1,#:lo12:.LANCHOR0] cmp w1, 9 - ldr x1, [x0,8] + ldr x1, [x0,16] ldr w2, [x1] - str w2, [x0,16] + str w2, [x0,24] ldr w2, [x1,4] - str w2, [x0,20] - bne .L16 + str w2, [x0,28] + bne .L32 ldr w2, [x1,16] - str w2, [x0,24] + str w2, [x0,32] ldr w2, [x1,32] - str w2, [x0,28] + str w2, [x0,36] ldr w2, [x1,80] - str w2, [x0,32] + str w2, [x0,40] ldr w2, [x1,84] - str w2, [x0,36] + str w2, [x0,44] ldr w2, [x1,520] - str w2, [x0,40] + str w2, [x0,48] ldr w1, [x1,8] - b .L18 -.L16: + b .L34 +.L32: ldr w2, [x1,8] - str w2, [x0,24] + str w2, [x0,32] ldr w2, [x1,12] - str w2, [x0,28] + str w2, [x0,36] ldr w2, [x1,304] - str w2, [x0,32] + str w2, [x0,40] ldr w2, [x1,308] - str w2, [x0,36] + str w2, [x0,44] ldr w2, [x1,336] ldr w1, [x1,344] - str w2, [x0,40] -.L18: - str w1, [x0,44] + str w2, [x0,48] +.L34: + str w1, [x0,52] ret .size zftl_flash_suspend, .-zftl_flash_suspend .align 2 @@ -128,7 +258,7 @@ nandc_irq_disable: ldrb w2, [x2,#:lo12:.LANCHOR0] cmp w2, 9 mov x2, 1 - bne .L20 + bne .L36 ldr w3, [x0,292] lsl x1, x2, x1 orr w2, w3, w1 @@ -136,8 +266,8 @@ nandc_irq_disable: ldr w2, [x0,288] bic w1, w2, w1 str w1, [x0,288] - b .L19 -.L20: + b .L35 +.L36: ldr w3, [x0,368] lsl x1, x2, x1 orr w2, w3, w1 @@ -145,304 +275,398 @@ nandc_irq_disable: ldr w2, [x0,364] bic w1, w2, w1 str w1, [x0,364] -.L19: +.L35: ret .size nandc_irq_disable, .-nandc_irq_disable .align 2 - .global nand_flash_print_info - .type nand_flash_print_info, %function -nand_flash_print_info: - stp x29, x30, [sp, -32]! - adrp x0, .LC0 - adrp x1, .LANCHOR1 + .type _insert_free_list, %function +_insert_free_list: + adrp x3, .LANCHOR0 + uxth w1, w1 + add x6, x3, :lo12:.LANCHOR0 + mov x10, x3 + ldrh w4, [x6,56] + cmp w4, w1 + bls .L38 + ldrh w3, [x2] + mov w5, 6 + add w3, w3, 1 + strh w3, [x2] + umull x11, w1, w5 + ldr x12, [x6,8] + mov w2, -1 + add x7, x12, x11 + strh w2, [x7,2] + strh w2, [x12,x11] + ldr x2, [x0] + cbz x2, .L45 + ldr x9, [x6,64] + ubfiz x8, x1, 2, 16 + ldr x13, [x6,8] + mov x6, -6148914691236517206 + mov w15, 65535 + ldr w4, [x9,x8] + ubfx x3, x4, 11, 8 + ldrh w4, [x9,x8] + mov w8, w5 + ubfx x4, x4, 0, 11 + add w4, w4, w3, lsl 3 + sub x3, x2, x13 + asr x3, x3, 1 + and w4, w4, 4095 + madd x3, x6, x3, x3 + uxth w3, w3 +.L43: + ubfiz x14, x3, 2, 16 + ldr w5, [x9,x14] + ubfx x6, x5, 11, 8 + ldrh w5, [x9,x14] + ubfx x5, x5, 0, 11 + add w5, w5, w6, lsl 3 + and w5, w5, 4095 + cmp w5, w4 + bcs .L41 + ldrh w5, [x2] + cmp w5, w15 + bne .L42 + strh w3, [x7,2] + strh w1, [x2] + b .L38 +.L42: + umull x2, w5, w8 + mov w3, w5 + add x2, x13, x2 + b .L43 +.L41: + ldrh w4, [x2,2] + strh w4, [x7,2] + strh w3, [x12,x11] + ldr x3, [x0] + cmp x2, x3 + bne .L44 + strh w1, [x2,2] +.L45: + str x7, [x0] + b .L38 +.L44: + ldrh w0, [x2,2] + add x3, x10, :lo12:.LANCHOR0 + mov w4, 6 + ldr x3, [x3,8] + umull x0, w0, w4 + strh w1, [x3,x0] + strh w1, [x2,2] +.L38: + ret + .size _insert_free_list, .-_insert_free_list + .align 2 + .type _insert_data_list, %function +_insert_data_list: + sub sp, sp, #16 + adrp x3, .LANCHOR0 + add x4, x3, :lo12:.LANCHOR0 + uxth w1, w1 + mov x10, x3 + str x19, [sp] + ldrh w5, [x4,56] + cmp w5, w1 + bls .L46 + ldrh w3, [x2] + mov w9, 6 + add w3, w3, 1 + strh w3, [x2] + umull x11, w1, w9 + ldr x12, [x4,8] + mov w2, -1 + add x6, x12, x11 + strh w2, [x6,2] + strh w2, [x12,x11] + ldr x2, [x0] + cbz x2, .L61 + ubfiz x3, x1, 1, 16 + ldr x15, [x4,72] + ldr x14, [x4,8] + mov x5, -6148914691236517206 + ldrh w18, [x4,56] + mov w7, 0 + ldrh w16, [x15,x3] + mov w19, 65535 + ldrh w3, [x6,4] + ldr x17, [x4,64] + cmp w3, wzr + mul w13, w16, w3 + sub x3, x2, x14 + asr x3, x3, 1 + csinv w13, w13, wzr, ne + madd x3, x5, x3, x3 + uxth w3, w3 +.L57: + add w7, w7, 1 + cmp w1, w3 + uxth w7, w7 + beq .L46 + cmp w7, w18 + bhi .L46 + uxtw x8, w3 + ldrh w5, [x2,4] + cmp w5, wzr + ldrh w4, [x15,x8,lsl 1] + mul w4, w4, w5 + csinv w4, w4, wzr, ne + cmp w4, w13 + bne .L53 + lsl x8, x8, 2 + ldr w4, [x17,x8] + ubfx x5, x4, 11, 8 + ldrh w4, [x17,x8] + ubfx x4, x4, 0, 11 + add w4, w4, w5, lsl 3 + and w4, w4, 4095 + cmp w4, w16 + bcc .L55 + b .L54 +.L53: + bhi .L54 +.L55: + ldrh w4, [x2] + cmp w4, w19 + bne .L56 + strh w3, [x6,2] + strh w1, [x2] + b .L46 +.L56: + umull x2, w4, w9 + mov w3, w4 + add x2, x14, x2 + b .L57 +.L54: + ldrh w4, [x2,2] + strh w4, [x6,2] + strh w3, [x12,x11] + ldr x3, [x0] + cmp x2, x3 + bne .L58 + strh w1, [x2,2] +.L61: + str x6, [x0] + b .L46 +.L58: + ldrh w0, [x2,2] + add x3, x10, :lo12:.LANCHOR0 + mov w4, 6 + ldr x3, [x3,8] + umull x0, w0, w4 + strh w1, [x3,x0] + strh w1, [x2,2] +.L46: + ldr x19, [sp] + add sp, sp, 16 + ret + .size _insert_data_list, .-_insert_data_list + .align 2 + .type _list_get_gc_head_node.isra.5, %function +_list_get_gc_head_node.isra.5: + uxth w1, w1 + mov w2, 65535 + cbz x0, .L68 + adrp x2, .LANCHOR0+8 + mov w4, 65535 + mov w5, 6 + ldr x3, [x2,#:lo12:.LANCHOR0+8] +.L64: + cbz w1, .L65 + ldrh w2, [x0] + cmp w2, w4 + beq .L68 + umull x2, w2, w5 + sub w1, w1, #1 + add x0, x3, x2 + uxth w1, w1 + b .L64 +.L65: + sub x0, x0, x3 + mov x1, -6148914691236517206 + asr x0, x0, 1 + madd x0, x1, x0, x0 + uxth w2, w0 +.L68: + mov w0, w2 + ret + .size _list_get_gc_head_node.isra.5, .-_list_get_gc_head_node.isra.5 + .align 2 + .type _list_update_data_list, %function +_list_update_data_list: + stp x29, x30, [sp, -48]! add x29, sp, 0 stp x19, x20, [sp,16] - adrp x19, .LANCHOR0 + uxth w19, w1 + adrp x1, .LANCHOR0 + add x4, x1, :lo12:.LANCHOR0 + str x21, [sp,32] + ldr x3, [x4,80] + ldrh w5, [x3,16] + cmp w5, w19 + beq .L69 + ldrh w5, [x3,48] + cmp w5, w19 + beq .L69 + ldrh w3, [x3,80] + cmp w3, w19 + beq .L69 + ldr x5, [x4,8] + mov w4, 6 + ldr x3, [x0] + umull x4, w19, w4 + add x6, x5, x4 + cmp x6, x3 + beq .L69 + ldrh w3, [x6,2] + mov x20, x0 + mov w0, 65535 + mov x21, x2 + cmp w3, w0 + bne .L71 + ldrh w0, [x5,x4] + cmp w0, w3 + bne .L71 + adrp x1, .LANCHOR1 + adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR1 - add x19, x19, :lo12:.LANCHOR0 add x0, x0, :lo12:.LC0 + add x1, x1, 24 + mov w2, 249 bl printk - ldr x6, [x19,48] - adrp x0, .LC1 - add x0, x0, :lo12:.LC1 - ldrb w3, [x6,3] - ldrb w4, [x6,4] - ldrb w5, [x6,5] - ldrb w2, [x6,2] - ldrb w1, [x6,1] - ldrb w6, [x6,6] - bl printk - ldr x1, [x19,48] - adrp x0, .LC2 - add x0, x0, :lo12:.LC2 - ldrb w1, [x1,8] - bl printk - ldr x1, [x19,48] - adrp x0, .LC3 - add x0, x0, :lo12:.LC3 - ldrb w1, [x1,9] - bl printk - ldr x1, [x19,48] - adrp x0, .LC4 - add x0, x0, :lo12:.LC4 - ldrh w1, [x1,10] - bl printk - ldr x1, [x19,48] - adrp x0, .LC5 - add x0, x0, :lo12:.LC5 - ldrb w1, [x1,12] - bl printk - ldr x1, [x19,48] - adrp x0, .LC6 - add x0, x0, :lo12:.LC6 - ldrb w1, [x1,13] - bl printk - ldr x1, [x19,48] - adrp x0, .LC7 - add x0, x0, :lo12:.LC7 - ldrh w1, [x1,14] - bl printk - ldr x1, [x19,48] - adrp x0, .LC8 - add x0, x0, :lo12:.LC8 - ldrb w1, [x1,23] - bl printk - ldr x1, [x19,48] - adrp x0, .LC9 - add x0, x0, :lo12:.LC9 - ldrb w1, [x1,18] - bl printk - ldr x1, [x19,48] - adrp x0, .LC10 - add x0, x0, :lo12:.LC10 - ldrb w1, [x1,19] - bl printk - ldr x1, [x19,48] - adrp x0, .LC11 - add x0, x0, :lo12:.LC11 - ldrb w1, [x1,20] - bl printk - ldrb w1, [x19,56] - adrp x0, .LC12 - add x0, x0, :lo12:.LC12 - bl printk - ldr x1, [x19,48] - adrp x0, .LC13 - add x0, x0, :lo12:.LC13 - ldrb w1, [x1,21] - bl printk - ldr x1, [x19,48] - adrp x0, .LC14 - add x0, x0, :lo12:.LC14 - ldrb w1, [x1,22] - bl printk - ldrb w1, [x19,57] - adrp x0, .LC15 - add x0, x0, :lo12:.LC15 - bl printk - ldr x0, [x19,48] - ldrh w1, [x0,16] - adrp x0, .LC16 - add x0, x0, :lo12:.LC16 - and w1, w1, 1 - bl printk - ldr x0, [x19,48] - ldrh w1, [x0,16] - adrp x0, .LC17 - add x0, x0, :lo12:.LC17 - ubfx x1, x1, 1, 1 - bl printk - ldr x0, [x19,48] - ldrh w1, [x0,16] - adrp x0, .LC18 - add x0, x0, :lo12:.LC18 - ubfx x1, x1, 2, 1 - bl printk - ldr x0, [x19,48] - ldrh w1, [x0,16] - adrp x0, .LC19 - add x0, x0, :lo12:.LC19 - ubfx x1, x1, 3, 1 - bl printk - ldr x0, [x19,48] - ldrh w1, [x0,16] - adrp x0, .LC20 - add x0, x0, :lo12:.LC20 - ubfx x1, x1, 4, 1 - bl printk - ldr x0, [x19,48] - ldrh w1, [x0,16] - adrp x0, .LC21 - add x0, x0, :lo12:.LC21 - ubfx x1, x1, 5, 1 - bl printk - ldr x0, [x19,48] - ldrh w1, [x0,16] - adrp x0, .LC22 - add x0, x0, :lo12:.LC22 - ubfx x1, x1, 6, 1 - bl printk - ldr x0, [x19,48] - ldrh w1, [x0,16] - adrp x0, .LC23 - add x0, x0, :lo12:.LC23 - ubfx x1, x1, 7, 1 - bl printk - ldr x0, [x19,48] - ldrb w1, [x0,17] - adrp x0, .LC24 - add x0, x0, :lo12:.LC24 - and w1, w1, 1 - bl printk - ldr x0, [x19,48] - ldrh w1, [x0,16] - adrp x0, .LC25 - add x0, x0, :lo12:.LC25 - ubfx x1, x1, 9, 1 - bl printk - ldr x0, [x19,48] - ldrh w1, [x0,16] - adrp x0, .LC26 - add x0, x0, :lo12:.LC26 - ubfx x1, x1, 10, 1 - bl printk - ldrb w1, [x19,58] - adrp x0, .LC27 - add x0, x0, :lo12:.LC27 - bl printk - ldrb w1, [x19,74] - adrp x0, .LC28 - ldrb w2, [x19,75] - add x0, x0, :lo12:.LC28 - bl printk - ldrb w2, [x19,73] - adrp x0, .LC29 - ldrb w1, [x19,72] - add x0, x0, :lo12:.LC29 - bl printk - ldrb w1, [x19,96] - adrp x0, .LC30 - add x0, x0, :lo12:.LC30 - bl printk +.L72: + b .L72 +.L71: + add x1, x1, :lo12:.LANCHOR0 + ubfiz x0, x19, 1, 16 + mov x2, -6148914691236517206 + ldr x4, [x1,72] + ldrh w1, [x4,x0] + ldrh w0, [x6,4] + cmp w0, wzr + mul w1, w1, w0 + mov w0, 6 + csinv w1, w1, wzr, ne + umull x3, w3, w0 + asr x0, x3, 1 + add x3, x5, x3 + madd x0, x2, x0, x0 + ldrh w3, [x3,4] + ldrh w0, [x4,x0,lsl 1] + cmp w3, wzr + mul w0, w0, w3 + csinv w0, w0, wzr, ne + cmp w1, w0 + bcs .L69 + mov x0, x20 + mov w1, w19 + mov x2, x21 + bl _list_remove_node + mov x0, x20 + mov w1, w19 + mov x2, x21 + bl _insert_data_list +.L69: ldp x19, x20, [sp,16] - ldp x29, x30, [sp], 32 + ldr x21, [sp,32] + ldp x29, x30, [sp], 48 + ret + .size _list_update_data_list, .-_list_update_data_list + .align 2 + .global nand_flash_print_info + .type nand_flash_print_info, %function +nand_flash_print_info: ret .size nand_flash_print_info, .-nand_flash_print_info .align 2 .global nandc_init .type nandc_init, %function nandc_init: - stp x29, x30, [sp, -64]! - adrp x1, .LANCHOR1 + stp x29, x30, [sp, -48]! + mov w2, 6 add x29, sp, 0 - stp x21, x22, [sp,32] - add x1, x1, :lo12:.LANCHOR1 - mov x21, x0 - adrp x0, .LC31 - add x1, x1, 24 - add x0, x0, :lo12:.LC31 - mov x2, x21 stp x19, x20, [sp,16] - str wzr, [x29,56] adrp x19, .LANCHOR0 - bl printk - add x0, x19, :lo12:.LANCHOR0 - mov w1, 6 + add x1, x19, :lo12:.LANCHOR0 + str wzr, [x29,40] + strb w2, [x19,#:lo12:.LANCHOR0] + str x0, [x1,16] + mov w1, 12336 + ldr w2, [x0,352] + movk w1, 0x5638, lsl 16 + cmp w2, w1 + bne .L79 + mov w1, 8 strb w1, [x19,#:lo12:.LANCHOR0] - ldr w1, [x21,352] - str x21, [x0,8] - mov w0, 12336 - movk w0, 0x5638, lsl 16 - cmp w1, w0 - bne .L24 - mov w0, 8 - strb w0, [x19,#:lo12:.LANCHOR0] -.L24: - ldr w1, [x21,128] - mov w0, 12336 - movk w0, 0x5639, lsl 16 - cmp w1, w0 - bne .L25 - mov w0, 9 - strb w0, [x19,#:lo12:.LANCHOR0] -.L25: - ldrb w0, [x19,#:lo12:.LANCHOR0] +.L79: + ldr w2, [x0,128] + mov w1, 12336 + movk w1, 0x5639, lsl 16 + cmp w2, w1 + bne .L80 + mov w1, 9 + strb w1, [x19,#:lo12:.LANCHOR0] +.L80: + ldrb w1, [x19,#:lo12:.LANCHOR0] add x20, x19, :lo12:.LANCHOR0 - adrp x22, .LC32 - cmp w0, 9 - bne .L26 - ldr w1, [x29,56] - mov w0, 1 - strb w0, [x20,97] + cmp w1, 9 + bne .L81 + mov w1, 1 + strb w1, [x20,88] + ldr w1, [x29,40] orr w1, w1, 256 - str w1, [x29,56] + str w1, [x29,40] + ldr w1, [x29,40] + str w1, [x0] mov w1, 4225 - ldr w0, [x29,56] - str w0, [x21] - ldr x0, [x20,8] + ldr x0, [x20,16] str wzr, [x0,520] str w1, [x0,4] - mov w0, 8321 - ldr x5, [x20,8] - str w0, [x5,8] - mov w0, 4099 - movk w0, 0x10, lsl 16 - str w0, [x5,80] - mov w0, 38 - str w0, [x5,84] - mov w0, 39 - str w0, [x5,84] - ldr w1, [x5] - ldr w2, [x5,8] - ldr w3, [x5,80] - ldr w4, [x5,84] - ldr w5, [x5,88] - b .L28 -.L26: - ldr w1, [x29,56] - strb wzr, [x20,97] + mov w1, 8321 + ldr x0, [x20,16] + str w1, [x0,8] + mov w1, 4099 + movk w1, 0x10, lsl 16 + str w1, [x0,80] + mov w1, 38 + str w1, [x0,84] + mov w1, 39 + str w1, [x0,84] + b .L82 +.L81: + ldr w1, [x29,40] + strb wzr, [x20,88] orr w1, w1, 256 - str w1, [x29,56] + str w1, [x29,40] + ldr w1, [x29,40] + str w1, [x0] mov w1, 4225 - ldr w0, [x29,56] - str w0, [x21] - ldr x0, [x20,8] + ldr x0, [x20,16] str wzr, [x0,336] str w1, [x0,4] - mov w0, 8321 - ldr x1, [x20,8] - str w0, [x1,344] - mov w0, 4099 - movk w0, 0x10, lsl 16 - str w0, [x1,304] - mov w0, 38 - str w0, [x1,308] - mov w0, 39 - str w0, [x1,308] + mov w1, 8321 + ldr x0, [x20,16] + 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, 2048 bl ftl_malloc - str x0, [x20,104] - ldr x5, [x20,8] - ldr w1, [x5] - ldr w2, [x5,344] - ldr w3, [x5,304] - ldr w4, [x5,308] - ldr w5, [x5,312] -.L28: - add x0, x22, :lo12:.LC32 - bl printk - add x0, x19, :lo12:.LANCHOR0 - mov w1, 1 - strh wzr, [x0,146] - strb w1, [x0,144] - strb wzr, [x0,148] - adrp x0, .LC33 - ldrb w1, [x19,#:lo12:.LANCHOR0] - add x0, x0, :lo12:.LC33 - bl printk + str x0, [x20,96] +.L82: + add x19, x19, :lo12:.LANCHOR0 + mov w0, 1 + strh wzr, [x19,138] + strb w0, [x19,136] + strb wzr, [x19,140] ldp x19, x20, [sp,16] - ldp x21, x22, [sp,32] - ldp x29, x30, [sp], 64 + ldp x29, x30, [sp], 48 ret .size nandc_init, .-nandc_init .align 2 @@ -452,11 +676,11 @@ timer_delay_ns: sub sp, sp, #16 lsr w0, w0, 4 str w0, [sp,12] -.L30: +.L84: ldr w0, [sp,12] sub w1, w0, #1 str w1, [sp,12] - cbnz w0, .L30 + cbnz w0, .L84 add sp, sp, 16 ret .size timer_delay_ns, .-timer_delay_ns @@ -493,8 +717,8 @@ toshiba_set_rr_para: stp x21, x22, [sp,32] stp x23, x24, [sp,48] add x23, x2, x1, sxtw - add x24, x2, 40 - add x21, x2, 88 + add x24, x2, 48 + add x21, x2, 96 stp x19, x20, [sp,16] stp x25, x26, [sp,64] str x27, [sp,80] @@ -505,34 +729,34 @@ toshiba_set_rr_para: adrp x26, .LANCHOR0 mov w27, 85 mov x19, x2 -.L34: +.L88: add x25, x26, :lo12:.LANCHOR0 - ldrb w0, [x25,150] + ldrb w0, [x25,142] cmp w0, w20 - bls .L40 - add x0, x19, 40 + bls .L94 + add x0, x19, 48 str w27, [x22,8] ldrsb w0, [x20,x0] str w0, [x22,4] mov w0, 200 bl timer_delay_ns - ldrb w0, [x25,149] + ldrb w0, [x25,141] cmp w0, 34 - bne .L35 + bne .L89 ldrsb w0, [x24,x20] - b .L39 -.L35: + b .L93 +.L89: cmp w0, 35 - bne .L37 + bne .L91 ldrsb w0, [x21,x20] - b .L39 -.L37: - ldrsb w0, [x23,184] -.L39: + b .L93 +.L91: + ldrsb w0, [x23,192] +.L93: str w0, [x22] add x20, x20, 1 - b .L34 -.L40: + b .L88 +.L94: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -555,8 +779,8 @@ hynix_set_rr_para: str x23, [sp,48] mov x20, 160 mov x21, 0 - ldr x4, [x3,152] - ldr x19, [x3,8] + ldr x4, [x3,144] + ldr x19, [x3,16] add x23, x4, 128 ldrb w22, [x4,113] mul w2, w1, w22 @@ -569,9 +793,9 @@ hynix_set_rr_para: add x20, x4, x1 add x20, x20, 144 str w0, [x19,2056] -.L42: +.L96: cmp w22, w21, uxtb - bls .L44 + bls .L98 ldrb w0, [x23,x21] str w0, [x19,2052] mov w0, 120 @@ -579,8 +803,8 @@ hynix_set_rr_para: ldrsb w0, [x20,x21] add x21, x21, 1 str w0, [x19,2048] - b .L42 -.L44: + b .L96 +.L98: mov w0, 22 str w0, [x19,2056] ldp x19, x20, [sp,16] @@ -599,22 +823,22 @@ hynix_reconfig_rr_para: stp x19, x20, [sp,16] adrp x19, .LANCHOR0 add x19, x19, :lo12:.LANCHOR0 - ldrb w1, [x19,149] + ldrb w1, [x19,141] sub w1, w1, #1 uxtb w1, w1 cmp w1, 6 - bhi .L45 - ldr x1, [x19,152] + bhi .L99 + ldr x1, [x19,144] sxtw x20, w0 add x1, x1, x20 ldrb w1, [x1,120] - cbz w1, .L45 + cbz w1, .L99 mov w1, 0 bl hynix_set_rr_para - ldr x0, [x19,152] + ldr x0, [x19,144] add x20, x0, x20 strb wzr, [x20,120] -.L45: +.L99: ldp x19, x20, [sp,16] ldp x29, x30, [sp], 32 ret @@ -627,18 +851,18 @@ nandc_set_ddr_para: uxtb w0, w0 add x2, x1, :lo12:.LANCHOR0 ldrb w1, [x1,#:lo12:.LANCHOR0] - ldr x2, [x2,8] + ldr x2, [x2,16] cmp w1, 9 lsl w1, w0, 16 lsl w0, w0, 8 orr w0, w1, w0 orr w0, w0, 3 - bne .L51 + bne .L105 str w0, [x2,80] - b .L50 -.L51: + b .L104 +.L105: str w0, [x2,304] -.L50: +.L104: ret .size nandc_set_ddr_para, .-nandc_set_ddr_para .align 2 @@ -648,14 +872,14 @@ nandc_get_ddr_para: adrp x1, .LANCHOR0 add x0, x1, :lo12:.LANCHOR0 ldrb w1, [x1,#:lo12:.LANCHOR0] - ldr x0, [x0,8] + ldr x0, [x0,16] cmp w1, 9 - bne .L54 + bne .L108 ldr w0, [x0,80] - b .L56 -.L54: + b .L110 +.L108: ldr w0, [x0,304] -.L56: +.L110: ubfx x0, x0, 8, 8 ret .size nandc_get_ddr_para, .-nandc_get_ddr_para @@ -667,9 +891,9 @@ nandc_set_if_mode: uxtb w0, w0 add x1, x3, :lo12:.LANCHOR0 tst w0, 6 - ldr x2, [x1,8] + ldr x2, [x1,16] ldr w1, [x2] - beq .L58 + beq .L112 orr w1, w1, 24576 and w0, w0, 4 and w1, w1, -32769 @@ -680,7 +904,7 @@ nandc_set_if_mode: csel w1, w4, w1, ne cmp w0, 9 mov w0, 8321 - bne .L60 + bne .L114 str w0, [x2,8] mov w0, 4099 movk w0, 0x10, lsl 16 @@ -689,8 +913,8 @@ nandc_set_if_mode: str w0, [x2,84] mov w0, 39 str w0, [x2,84] - b .L61 -.L60: + b .L115 +.L114: str w0, [x2,344] mov w0, 4099 movk w0, 0x10, lsl 16 @@ -699,10 +923,10 @@ nandc_set_if_mode: str w0, [x2,308] mov w0, 39 str w0, [x2,308] - b .L61 -.L58: + b .L115 +.L112: and w1, w1, -8193 -.L61: +.L115: str w1, [x2] ret .size nandc_set_if_mode, .-nandc_set_if_mode @@ -710,10 +934,10 @@ nandc_set_if_mode: .global nandc_cs .type nandc_cs, %function nandc_cs: - adrp x1, .LANCHOR0+8 + adrp x1, .LANCHOR0+16 mov w2, 1 lsl w0, w2, w0 - ldr x3, [x1,#:lo12:.LANCHOR0+8] + ldr x3, [x1,#:lo12:.LANCHOR0+16] ldr w1, [x3] bfi w1, w0, 0, 8 str w1, [x3] @@ -723,8 +947,8 @@ nandc_cs: .global nandc_de_cs .type nandc_de_cs, %function nandc_de_cs: - adrp x0, .LANCHOR0+8 - ldr x1, [x0,#:lo12:.LANCHOR0+8] + adrp x0, .LANCHOR0+16 + ldr x1, [x0,#:lo12:.LANCHOR0+16] ldr w0, [x1] and w0, w0, -256 and w0, w0, -131073 @@ -743,22 +967,22 @@ flash_wait_device_ready_raw: stp x21, x22, [sp,32] stp x19, x20, [sp,16] mov w21, w2 - ldrb w2, [x3,57] + ldrb w2, [x3,152] cmp w2, w0 - bhi .L67 + bhi .L121 adrp x1, .LANCHOR1 - adrp x0, .LC34 + adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR1 - add x0, x0, :lo12:.LC34 - add x1, x1, 192 - mov w2, 607 + add x0, x0, :lo12:.LC0 + add x1, x1, 200 + mov w2, 597 bl printk -.L68: - b .L68 -.L67: +.L122: + b .L122 +.L121: add x0, x3, x0, sxtw - ldrb w22, [x0,160] - ldr x20, [x3,8] + ldrb w22, [x0,156] + ldr x20, [x3,16] mov w0, w22 str x1, [x29,56] bl nandc_cs @@ -773,19 +997,19 @@ flash_wait_device_ready_raw: str w2, [x20,2052] lsr w1, w1, 16 str w1, [x20,2052] -.L71: +.L125: bl timer_delay_ns ldr w19, [x20,2048] and w19, w19, 255 and w0, w19, w21 cmp w0, w21 - beq .L72 -.L70: + beq .L126 +.L124: mov w0, 20 - b .L71 -.L72: + b .L125 +.L126: cmp w19, 255 - beq .L70 + beq .L124 mov w0, w22 bl nandc_de_cs mov w0, w19 @@ -804,26 +1028,26 @@ flash_wait_device_ready: add x29, sp, 0 and w1, w0, 2097151 ubfx x6, x0, 21, 3 - cbnz w3, .L74 + cbnz w3, .L128 adrp x4, .LANCHOR0 add x3, x4, :lo12:.LANCHOR0 - ldrb w0, [x3,58] - cbz w0, .L75 - ldrb w0, [x3,168] - cbz w0, .L74 -.L75: + ldrb w0, [x3,164] + cbz w0, .L129 + ldrb w0, [x3,165] + cbz w0, .L128 +.L129: add x4, x4, :lo12:.LANCHOR0 - ldrh w5, [x4,170] - ldrb w0, [x4,168] + ldrh w5, [x4,166] + ldrb w0, [x4,165] udiv w3, w1, w5 mul w5, w3, w5 sub w3, w1, w5 add w1, w5, w3, lsl 1 - cbnz w0, .L74 - add x4, x4, 172 + cbnz w0, .L128 + add x4, x4, 168 ldrh w3, [x4,w3,uxtw 1] add w1, w3, w5 -.L74: +.L128: mov w0, w6 bl flash_wait_device_ready_raw ldp x29, x30, [sp], 16 @@ -839,22 +1063,22 @@ nandc_wait_flash_ready: mov w19, 34464 adrp x20, .LANCHOR0 movk w19, 0x1, lsl 16 -.L85: +.L139: mov w0, 100 bl timer_delay_ns add x0, x20, :lo12:.LANCHOR0 - ldr x0, [x0,8] + ldr x0, [x0,16] ldr w0, [x0] str w0, [x29,40] ldr w0, [x29,40] - tbnz x0, 9, .L86 + tbnz x0, 9, .L140 subs w19, w19, #1 - bne .L85 + bne .L139 mov w0, -1 - b .L84 -.L86: + b .L138 +.L140: mov w0, 0 -.L84: +.L138: ldp x19, x20, [sp,16] ldp x29, x30, [sp], 48 ret @@ -880,28 +1104,28 @@ sandisk_set_rr_para: add x2, x2, :lo12:.LANCHOR1 adrp x5, .LANCHOR0 smull x1, w19, w1 - add x0, x2, 40 - add x2, x2, 88 + add x0, x2, 48 + add x2, x2, 96 add x0, x0, x1 add x1, x2, x1 mov x2, 0 -.L89: +.L143: add x3, x5, :lo12:.LANCHOR0 - ldrb w4, [x3,150] + ldrb w4, [x3,142] cmp w4, w2 - bls .L94 - ldrb w3, [x3,149] + bls .L148 + ldrb w3, [x3,141] cmp w3, 67 - bne .L90 + bne .L144 ldrsb w3, [x0,x2] - b .L93 -.L90: + b .L147 +.L144: ldrsb w3, [x1,x2] -.L93: +.L147: str w3, [x20] add x2, x2, 1 - b .L89 -.L94: + b .L143 +.L148: bl nandc_wait_flash_ready ldp x19, x20, [sp,16] ldp x29, x30, [sp], 32 @@ -926,7 +1150,7 @@ toshiba_3d_set_tlc_rr_para: adrp x0, .LANCHOR1 madd x1, x2, x1, x1 add x0, x0, :lo12:.LANCHOR1 - add x0, x0, 224 + add x0, x0, 232 add x20, x0, x1 ldrsb w0, [x0,x1] str w0, [x19] @@ -968,7 +1192,7 @@ toshiba_3d_set_slc_rr_para: adrp x2, .LANCHOR1 add x2, x2, :lo12:.LANCHOR1 add x1, x2, x1, uxtb - ldrsb w1, [x1,625] + ldrsb w1, [x1,633] str w1, [x0] str wzr, [x0] str wzr, [x0] @@ -990,7 +1214,7 @@ toshiba_tlc_set_rr_para: mov w21, 239 adrp x0, .LANCHOR2 str w21, [x19,8] - cbz w2, .L98 + cbz w2, .L152 mov w2, 18 str w2, [x19,4] mov x2, 7 @@ -1016,8 +1240,8 @@ toshiba_tlc_set_rr_para: ldrb w0, [x20,6] str w0, [x19] str wzr, [x19] - b .L99 -.L98: + b .L153 +.L152: add x0, x0, :lo12:.LANCHOR2 mov w3, 20 add x0, x0, 336 @@ -1027,7 +1251,7 @@ toshiba_tlc_set_rr_para: str w2, [x19] str w2, [x19] str w2, [x19] -.L99: +.L153: bl nandc_wait_flash_ready ldr x21, [sp,32] ldp x19, x20, [sp,16] @@ -1043,27 +1267,33 @@ zftl_flash_enter_slc_mode: add x1, x1, :lo12:.LANCHOR0 stp x29, x30, [sp, -16]! add x29, sp, 0 - ldrb w2, [x1,58] - cbz w2, .L100 + ldrb w2, [x1,164] + cbz w2, .L154 cmp w2, 1 - ldr x3, [x1,8] - bne .L102 + ldr x3, [x1,16] + beq .L174 + cmp w2, 2 + bne .L159 + ldrb w2, [x1,680] + cbz w2, .L154 + strb wzr, [x1,680] +.L174: adrp x1, .LANCHOR2+397 ldrb w2, [x1,#:lo12:.LANCHOR2+397] - cbz w2, .L100 + cbz w2, .L154 sxtw x1, w0 add x1, x1, 8 add x0, x3, x1, lsl 8 str w2, [x0,8] - b .L100 -.L102: - cmp w2, 2 - bne .L100 - ldrb w2, [x1,684] - cbz w2, .L100 - ubfiz x0, x0, 8, 8 - strb wzr, [x1,684] - add x0, x3, x0 + b .L154 +.L159: + cmp w2, 3 + bne .L154 + ldrb w2, [x1,680] + cbz w2, .L154 + strb wzr, [x1,680] + ubfiz x1, x0, 8, 8 + add x0, x3, x1 mov w1, 239 str w1, [x0,2056] mov w1, 145 @@ -1074,7 +1304,7 @@ zftl_flash_enter_slc_mode: str wzr, [x0,2048] str wzr, [x0,2048] bl nandc_wait_flash_ready -.L100: +.L154: ldp x29, x30, [sp], 16 ret .size zftl_flash_enter_slc_mode, .-zftl_flash_enter_slc_mode @@ -1087,43 +1317,59 @@ zftl_flash_exit_slc_mode: add x1, x1, :lo12:.LANCHOR0 stp x29, x30, [sp, -16]! add x29, sp, 0 - ldrb w2, [x1,58] - cbz w2, .L112 + ldrb w2, [x1,164] + cbz w2, .L175 cmp w2, 1 - ldr x4, [x1,8] - bne .L114 + ldr x4, [x1,16] + bne .L178 adrp x1, .LANCHOR2+398 ldrb w2, [x1,#:lo12:.LANCHOR2+398] - cbz w2, .L112 + b .L195 +.L178: + cmp w2, 2 + bne .L180 + ldrb w2, [x1,680] + cbnz w2, .L175 + adrp x2, .LANCHOR2 + mov w5, 4 + add x2, x2, :lo12:.LANCHOR2 + add x2, x2, 368 + ldrb w3, [x2,12] + ldrb w2, [x2,30] + cmp w3, 2 + csel w3, w3, w5, eq + strb w3, [x1,680] +.L195: + cbz w2, .L175 sxtw x1, w0 add x1, x1, 8 add x0, x4, x1, lsl 8 str w2, [x0,8] - b .L112 -.L114: - cmp w2, 2 - bne .L112 - ldrb w3, [x1,684] - cbnz w3, .L112 + b .L175 +.L180: + cmp w2, 3 + bne .L175 + ldrb w3, [x1,680] + cbnz w3, .L175 adrp x2, .LANCHOR2+380 - ubfiz x0, x0, 8, 8 - add x0, x4, x0 mov w5, 4 ldrb w2, [x2,#:lo12:.LANCHOR2+380] cmp w2, 2 csel w2, w2, w5, eq - strb w2, [x1,684] + strb w2, [x1,680] + ubfiz x1, x0, 8, 8 + add x0, x4, x1 mov w1, 239 str w1, [x0,2056] mov w1, 145 str w1, [x0,2052] - str w2, [x0,2048] mov w1, 1 + str w2, [x0,2048] str w1, [x0,2048] str w3, [x0,2048] str w3, [x0,2048] bl nandc_wait_flash_ready -.L112: +.L175: ldp x29, x30, [sp], 16 ret .size zftl_flash_exit_slc_mode, .-zftl_flash_exit_slc_mode @@ -1131,99 +1377,82 @@ zftl_flash_exit_slc_mode: .global flash_set_interface_mode .type flash_set_interface_mode, %function flash_set_interface_mode: - stp x29, x30, [sp, -80]! - add x29, sp, 0 - stp x21, x22, [sp,32] - stp x23, x24, [sp,48] - adrp x21, .LANCHOR0 - adrp x22, .LC36 - adrp x23, .LC35 - str x25, [sp,64] - stp x19, x20, [sp,16] - mov w25, w0 - mov x20, 0 - add x21, x21, :lo12:.LANCHOR0 - add x22, x22, :lo12:.LC36 - add x23, x23, :lo12:.LC35 -.L132: - add x0, x21, x20, lsl 3 - ldr x19, [x21,8] - ldrb w1, [x0,688] - cmp w1, 44 - cset w24, eq - cmp w1, 69 - cset w2, eq - cmp w1, 152 - cset w0, eq adrp x1, .LANCHOR0 - orr w0, w2, w0 - cbnz w0, .L133 - cbz w24, .L125 -.L133: + mov x3, 0 add x1, x1, :lo12:.LANCHOR0 - cmp w25, 1 - ldrb w1, [x1,720] - bne .L127 - tbz x1, 0, .L125 - mov x0, x23 - bl printk - add x1, x19, x20, lsl 8 - mov w0, 239 - str w0, [x1,2056] - cbz w24, .L128 - str w25, [x1,2052] - mov w0, 5 - b .L144 -.L128: - mov w0, 128 - str w0, [x1,2052] - str w25, [x1,2048] - b .L131 -.L127: - tbz x1, 2, .L125 - mov x0, x22 - bl printk - add x1, x19, x20, lsl 8 - mov w0, 239 - str w0, [x1,2056] - cbz w24, .L130 - mov w0, 1 + mov w8, 239 + stp x29, x30, [sp, -16]! + mov w9, 128 + mov w11, 1 + add x29, sp, 0 + ldrb w2, [x1,681] + mov w12, 35 + ldr x7, [x1,16] + mov w13, 5 + and w10, w2, 1 + and w2, w2, 4 + uxtb w4, w2 + add x2, x1, 684 +.L204: + lsl x1, x3, 3 + ldrb w6, [x1,x2] + cmp w6, 44 + cset w5, eq + cmp w6, 69 + cset w14, eq + cmp w6, 152 + cset w1, eq + orr w1, w14, w1 + cbnz w1, .L205 + cbz w5, .L197 +.L205: + cmp w0, 1 + bne .L199 + cbz w10, .L197 + add x1, x7, x3, lsl 8 + str w8, [x1,2056] + cbz w5, .L200 str w0, [x1,2052] - mov w0, 35 -.L144: + str w13, [x1,2048] + b .L203 +.L200: + str w9, [x1,2052] str w0, [x1,2048] - b .L131 -.L130: - mov w0, 128 - str w0, [x1,2052] - str w24, [x1,2048] -.L131: + b .L203 +.L199: + cbz w4, .L197 + add x1, x7, x3, lsl 8 + str w8, [x1,2056] + cbz w5, .L202 + str w11, [x1,2052] + str w12, [x1,2048] + b .L203 +.L202: + str w9, [x1,2052] + str w5, [x1,2048] +.L203: str wzr, [x1,2048] str wzr, [x1,2048] str wzr, [x1,2048] -.L125: - add x20, x20, 1 - cmp x20, 4 - bne .L132 +.L197: + add x3, x3, 1 + cmp x3, 4 + bne .L204 bl nandc_wait_flash_ready - ldr x25, [sp,64] mov w0, 0 - ldp x19, x20, [sp,16] - ldp x21, x22, [sp,32] - ldp x23, x24, [sp,48] - ldp x29, x30, [sp], 80 + ldp x29, x30, [sp], 16 ret .size flash_set_interface_mode, .-flash_set_interface_mode .align 2 .global flash_reset .type flash_reset, %function flash_reset: - adrp x1, .LANCHOR0+8 + adrp x1, .LANCHOR0+16 uxtb x0, w0 stp x29, x30, [sp, -16]! add x0, x0, 8 add x29, sp, 0 - ldr x1, [x1,#:lo12:.LANCHOR0+8] + ldr x1, [x1,#:lo12:.LANCHOR0+16] add x0, x1, x0, lsl 8 mov w1, 255 str w1, [x0,8] @@ -1239,10 +1468,10 @@ flash_read_id: add x29, sp, 0 str x21, [sp,32] uxtb w21, w0 - adrp x0, .LANCHOR0+8 + adrp x0, .LANCHOR0+16 stp x19, x20, [sp,16] mov x19, x1 - ldr x20, [x0,#:lo12:.LANCHOR0+8] + ldr x20, [x0,#:lo12:.LANCHOR0+16] mov w0, w21 bl flash_reset mov w0, w21 @@ -1276,17 +1505,17 @@ flash_read_id: sub w0, w2, #1 uxtb w0, w0 cmp w0, 253 - bhi .L146 - adrp x0, .LC37 + bhi .L217 + adrp x0, .LC1 ldrb w3, [x19,1] ldrb w4, [x19,2] - add x0, x0, :lo12:.LC37 + add x0, x0, :lo12:.LC1 ldrb w5, [x19,3] add w1, w21, 1 ldrb w6, [x19,4] ldrb w7, [x19,5] bl printk -.L146: +.L217: ldp x19, x20, [sp,16] ldr x21, [sp,32] ldp x29, x30, [sp], 48 @@ -1297,12 +1526,12 @@ flash_read_id: .type flash_read_spare, %function flash_read_spare: stp x29, x30, [sp, -48]! - adrp x4, .LANCHOR0+8 + adrp x4, .LANCHOR0+16 ubfiz x0, x0, 8, 8 add x29, sp, 0 str x19, [sp,16] adrp x3, .LANCHOR2+377 - ldr x19, [x4,#:lo12:.LANCHOR0+8] + ldr x19, [x4,#:lo12:.LANCHOR0+16] str x2, [x29,40] add x19, x19, x0 ldrb w3, [x3,#:lo12:.LANCHOR2+377] @@ -1331,27 +1560,26 @@ flash_read_spare: .global sandisk_prog_test_bad_block .type sandisk_prog_test_bad_block, %function sandisk_prog_test_bad_block: - stp x29, x30, [sp, -64]! - adrp x2, .LANCHOR0+8 + stp x29, x30, [sp, -32]! + adrp x2, .LANCHOR0+16 uxtb w0, w0 add x29, sp, 0 stp x19, x20, [sp,16] - adrp x20, .LANCHOR2 - ldr x19, [x2,#:lo12:.LANCHOR0+8] - add x2, x20, :lo12:.LANCHOR2 - str x21, [sp,32] - ldrb w3, [x2,397] + ldr x19, [x2,#:lo12:.LANCHOR0+16] + adrp x2, .LANCHOR2 + add x3, x2, :lo12:.LANCHOR2 + mov x20, x2 sxtw x2, w0 add x2, x2, 8 + ldrb w3, [x3,397] add x2, x19, x2, lsl 8 - cbnz w3, .L160 + cbnz w3, .L227 mov w3, 162 -.L160: +.L227: ubfiz x0, x0, 8, 8 str w3, [x2,8] add x19, x19, x0 mov w0, 128 - str x1, [x29,56] str w0, [x19,2056] and w0, w1, 255 str wzr, [x19,2052] @@ -1359,8 +1587,8 @@ sandisk_prog_test_bad_block: str w0, [x19,2052] lsr w0, w1, 8 str w0, [x19,2052] - lsr w0, w1, 16 - str w0, [x19,2052] + lsr w1, w1, 16 + str w1, [x19,2052] mov w0, 16 str w0, [x19,2056] bl nandc_wait_flash_ready @@ -1368,27 +1596,33 @@ sandisk_prog_test_bad_block: str w0, [x19,2056] mov w0, 80 bl timer_delay_ns - ldr w2, [x19,2048] + add x2, x20, :lo12:.LANCHOR2 + ldr w3, [x19,2048] + ldrb w1, [x2,398] + cbz w1, .L223 + str w1, [x19,2056] +.L223: mov w0, 5 - ldr x1, [x29,56] - ands w21, w2, w0 - beq .L152 - adrp x0, .LC38 - add x0, x0, :lo12:.LC38 - bl printk -.L152: - add x20, x20, :lo12:.LANCHOR2 - ldrb w0, [x20,398] - cbz w0, .L153 - str w0, [x19,2056] -.L153: - mov w0, w21 - ldr x21, [sp,32] + and w0, w3, w0 ldp x19, x20, [sp,16] - ldp x29, x30, [sp], 64 + ldp x29, x30, [sp], 32 ret .size sandisk_prog_test_bad_block, .-sandisk_prog_test_bad_block .align 2 + .global nandc_rdy_status + .type nandc_rdy_status, %function +nandc_rdy_status: + adrp x0, .LANCHOR0+16 + sub sp, sp, #16 + ldr x0, [x0,#:lo12:.LANCHOR0+16] + ldr w0, [x0] + str w0, [sp,8] + ldr w0, [sp,8] + add sp, sp, 16 + ubfx x0, x0, 9, 1 + ret + .size nandc_rdy_status, .-nandc_rdy_status + .align 2 .global nandc_bch_sel .type nandc_bch_sel, %function nandc_bch_sel: @@ -1396,47 +1630,47 @@ nandc_bch_sel: mov w3, 1 add x1, x2, :lo12:.LANCHOR0 ldrb w2, [x2,#:lo12:.LANCHOR0] - strb w0, [x1,148] + strb w0, [x1,140] cmp w2, 9 - ldr x2, [x1,8] - bne .L162 + ldr x2, [x1,16] + bne .L230 str w3, [x2,16] cmp w0, 70 mov w1, 0 - beq .L163 + beq .L231 cmp w0, 60 mov w1, 3 - beq .L163 + beq .L231 cmp w0, 40 mov w1, 2 csel w1, w1, w3, eq -.L163: +.L231: lsl w1, w1, 25 orr w1, w1, 1 str w1, [x2,32] - b .L161 -.L162: + b .L229 +.L230: str w3, [x2,8] cmp w0, 16 mov w1, 4096 - bne .L165 -.L168: + bne .L233 +.L236: and w1, w1, -17 - b .L166 -.L165: + b .L234 +.L233: cmp w0, 24 - bne .L167 + bne .L235 orr w1, w1, 16 - b .L166 -.L167: + b .L234 +.L235: cmp w0, 40 orr w1, w1, 262144 orr w1, w1, 16 - beq .L168 -.L166: + beq .L236 +.L234: orr w1, w1, 1 str w1, [x2,12] -.L161: +.L229: ret .size nandc_bch_sel, .-nandc_bch_sel .align 2 @@ -1450,69 +1684,70 @@ zftl_flash_resume: str x21, [sp,32] add x0, x20, :lo12:.LANCHOR0 ldrb w1, [x20,#:lo12:.LANCHOR0] - ldr w2, [x0,16] + ldr w2, [x0,24] cmp w1, 9 - ldr x1, [x0,8] + ldr x1, [x0,16] str w2, [x1] - ldr x1, [x0,8] - ldr w2, [x0,20] + ldr x1, [x0,16] + ldr w2, [x0,28] str w2, [x1,4] - ldr x1, [x0,8] - ldr w2, [x0,24] - bne .L176 + ldr x1, [x0,16] + ldr w2, [x0,32] + bne .L244 str w2, [x1,16] - ldr w2, [x0,28] + ldr w2, [x0,36] str w2, [x1,32] - ldr w2, [x0,32] + ldr w2, [x0,40] str w2, [x1,80] - ldr w2, [x0,36] + ldr w2, [x0,44] str w2, [x1,84] - ldr w2, [x0,40] + ldr w2, [x0,48] str w2, [x1,520] - ldr w0, [x0,44] + ldr w0, [x0,52] str w0, [x1,8] - b .L177 -.L176: + b .L245 +.L244: str w2, [x1,8] - ldr w2, [x0,28] + ldr w2, [x0,36] str w2, [x1,12] - ldr w2, [x0,32] + ldr w2, [x0,40] str w2, [x1,304] - ldr w2, [x0,36] + ldr w2, [x0,44] str w2, [x1,308] - ldr w2, [x0,40] + ldr w2, [x0,48] str w2, [x1,336] - ldr w0, [x0,44] + ldr w0, [x0,52] str w0, [x1,344] -.L177: - mov x19, 0 +.L245: add x21, x20, :lo12:.LANCHOR0 -.L179: - add x0, x21, x19, lsl 3 - ldrb w0, [x0,688] + mov x19, 0 + add x21, x21, 684 +.L247: + lsl x0, x19, 3 + ldrb w0, [x0,x21] sub w0, w0, #1 uxtb w0, w0 cmp w0, 253 - bhi .L178 + bhi .L246 mov w0, w19 bl flash_reset -.L178: +.L246: add x19, x19, 1 cmp x19, 4 - bne .L179 + bne .L247 add x20, x20, :lo12:.LANCHOR0 - ldrb w0, [x20,96] - cbz w0, .L180 + ldrb w0, [x20,716] + cbz w0, .L248 mov w0, 1 bl nandc_set_if_mode mov w0, w19 bl flash_set_interface_mode mov w0, w19 bl nandc_set_if_mode - ldr w0, [x20,32] + ldr w0, [x20,40] lsr w0, w0, 8 bl nandc_set_ddr_para -.L180: +.L248: adrp x0, .LANCHOR2+388 ldrb w0, [x0,#:lo12:.LANCHOR2+388] bl nandc_bch_sel @@ -1541,35 +1776,35 @@ nandc_iqr_wait_flash_ready: stp x19, x20, [sp,16] adrp x19, .LANCHOR0 add x20, x19, :lo12:.LANCHOR0 - ldr x0, [x20,8] + ldr x0, [x20,16] bl rk_nandc_rb_irq_flag_init ldrb w1, [x19,#:lo12:.LANCHOR0] - ldr x0, [x20,8] + ldr x0, [x20,16] cmp w1, 9 - bne .L187 + bne .L255 ldr w1, [x0,292] orr w1, w1, 2 str w1, [x0,292] ldr w1, [x0,288] orr w1, w1, 2 str w1, [x0,288] - b .L188 -.L187: + b .L256 +.L255: ldr w1, [x0,368] orr w1, w1, 2 str w1, [x0,368] ldr w1, [x0,364] orr w1, w1, 2 str w1, [x0,364] -.L188: +.L256: ldr w1, [x0] - tbnz x1, 9, .L189 + tbnz x1, 9, .L257 bl wait_for_nand_flash_ready - b .L186 -.L189: + b .L254 +.L257: mov w1, 1 bl nandc_irq_disable -.L186: +.L254: ldp x19, x20, [sp,16] ldp x29, x30, [sp], 32 ret @@ -1578,59 +1813,59 @@ nandc_iqr_wait_flash_ready: .global flash_erase_duplane_block .type flash_erase_duplane_block, %function flash_erase_duplane_block: - stp x29, x30, [sp, -80]! + stp x29, x30, [sp, -96]! uxtb w0, w0 add x29, sp, 0 - stp x21, x22, [sp,32] - adrp x21, .LANCHOR0 + stp x19, x20, [sp,16] + adrp x20, .LANCHOR0 str x25, [sp,64] uxtb w25, w1 - add x1, x21, :lo12:.LANCHOR0 + add x1, x20, :lo12:.LANCHOR0 stp x23, x24, [sp,48] - stp x19, x20, [sp,16] + stp x21, x22, [sp,32] mov w24, w2 mov w23, w3 - ldrb w4, [x1,57] + ldrb w4, [x1,152] cmp w4, w0 - bhi .L192 + bhi .L260 adrp x1, .LANCHOR1 - adrp x0, .LC34 + adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR1 - add x0, x0, :lo12:.LC34 - add x1, x1, 640 - mov w2, 518 + add x0, x0, :lo12:.LC0 + add x1, x1, 648 + mov w2, 508 bl printk -.L193: - b .L193 -.L192: +.L261: + b .L261 +.L260: add x0, x1, x0, sxtw - ldrb w22, [x0,160] + ldrb w22, [x0,156] adrp x0, .LANCHOR2+400 - ldr x19, [x1,8] - mov x20, x22 + ldr x19, [x1,16] + mov x21, x22 add x22, x22, 8 ldr w0, [x0,#:lo12:.LANCHOR2+400] add x22, x19, x22, lsl 8 - tbz x0, 4, .L194 - adrp x0, .LC39 - mov w1, w20 - add x0, x0, :lo12:.LC39 + tbz x0, 4, .L262 + adrp x0, .LC2 + mov w1, w21 + add x0, x0, :lo12:.LC2 bl printk -.L194: +.L262: bl nandc_wait_flash_ready - mov w0, w20 + mov w0, w21 bl nandc_cs - mov w0, w20 - cbnz w25, .L195 + mov w0, w21 + cbnz w25, .L263 bl zftl_flash_enter_slc_mode - b .L196 -.L195: + b .L264 +.L263: bl zftl_flash_exit_slc_mode -.L196: - ubfiz x4, x20, 8, 8 +.L264: + ubfiz x4, x21, 8, 8 mov w0, 96 add x19, x19, x4 - add x21, x21, :lo12:.LANCHOR0 + add x20, x20, :lo12:.LANCHOR0 str w0, [x19,2056] and w0, w24, 255 str w0, [x19,2052] @@ -1638,17 +1873,17 @@ flash_erase_duplane_block: str w0, [x19,2052] lsr w0, w24, 16 str w0, [x19,2052] - ldrb w0, [x21,721] - mov w21, 0 - cbnz w0, .L197 + ldrb w0, [x20,717] + mov w20, 0 + cbnz w0, .L265 mov w0, 208 str w0, [x19,2056] - mov w21, 5 + mov w20, 5 bl nandc_wait_flash_ready mov x0, x22 bl flash_read_status - and w21, w0, w21 -.L197: + and w20, w0, w20 +.L265: mov w0, 96 str w0, [x19,2056] and w0, w23, 255 @@ -1659,33 +1894,30 @@ flash_erase_duplane_block: str w23, [x19,2052] mov w0, 208 str w0, [x19,2056] + mov w19, 5 bl nandc_iqr_wait_flash_ready bl nandc_wait_flash_ready mov x0, x22 bl flash_read_status - mov w19, w0 - cbnz w25, .L198 - mov w0, w20 - bl zftl_flash_exit_slc_mode -.L198: - mov w0, w20 + mov w2, w0 + mov w0, w21 + str x2, [x29,88] bl nandc_de_cs - mov w1, 5 - and w1, w19, w1 - orr w21, w1, w21 - cbz w21, .L199 - adrp x0, .LC40 + ldr x2, [x29,88] + and w19, w2, w19 + orr w19, w19, w20 + cbz w19, .L266 + adrp x0, .LC3 mov w1, w24 - add x0, x0, :lo12:.LC40 - mov w2, w19 + add x0, x0, :lo12:.LC3 bl printk -.L199: - mov w0, w21 +.L266: + mov w0, w19 ldr x25, [sp,64] ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] - ldp x29, x30, [sp], 80 + ldp x29, x30, [sp], 96 ret .size flash_erase_duplane_block, .-flash_erase_duplane_block .align 2 @@ -1702,55 +1934,55 @@ flash_erase_block_en: uxtb w24, w1 add x1, x20, :lo12:.LANCHOR0 stp x21, x22, [sp,32] - mov w23, w2 - and w22, w2, 2097151 - ldrb w3, [x1,57] + and w23, w2, 2097151 + mov w22, w2 + ldrb w3, [x1,152] cmp w3, w0 - bhi .L208 + bhi .L275 adrp x1, .LANCHOR1 - adrp x0, .LC34 + adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR1 - add x0, x0, :lo12:.LC34 - add x1, x1, 672 - mov w2, 563 + add x0, x0, :lo12:.LC0 + add x1, x1, 680 + mov w2, 553 bl printk -.L209: - b .L209 -.L208: +.L276: + b .L276 +.L275: add x0, x1, x0, sxtw - ldrb w21, [x0,160] + ldrb w21, [x0,156] adrp x0, .LANCHOR2+400 - ldr x25, [x1,8] + ldr x25, [x1,16] mov x19, x21 add x21, x21, 8 ldr w0, [x0,#:lo12:.LANCHOR2+400] add x21, x25, x21, lsl 8 - tbz x0, 4, .L210 - adrp x0, .LC41 + tbz x0, 4, .L277 + adrp x0, .LC4 mov w1, w19 - add x0, x0, :lo12:.LC41 + add x0, x0, :lo12:.LC4 bl printk -.L210: +.L277: bl nandc_wait_flash_ready mov w0, w19 bl nandc_cs mov w0, w19 - cbnz w24, .L211 + cbnz w24, .L278 bl zftl_flash_enter_slc_mode - b .L212 -.L211: + b .L279 +.L278: bl zftl_flash_exit_slc_mode -.L212: +.L279: ubfiz x3, x19, 8, 8 mov w0, 96 add x3, x25, x3 str w0, [x3,2056] - and w0, w23, 255 + and w0, w22, 255 + str w0, [x3,2052] + lsr w0, w23, 8 str w0, [x3,2052] - lsr w0, w22, 8 + lsr w0, w23, 16 str w0, [x3,2052] - lsr w22, w22, 16 - str w22, [x3,2052] mov w0, 208 str w0, [x3,2056] bl nandc_iqr_wait_flash_ready @@ -1758,23 +1990,19 @@ flash_erase_block_en: mov x0, x21 bl flash_read_status mov w21, w0 - cbnz w24, .L213 - mov w0, w19 - bl zftl_flash_exit_slc_mode -.L213: mov w0, w19 bl nandc_de_cs mov w3, 5 ands w19, w21, w3 - beq .L214 + beq .L280 add x20, x20, :lo12:.LANCHOR0 - adrp x0, .LC42 - add x0, x0, :lo12:.LC42 + adrp x0, .LC5 + add x0, x0, :lo12:.LC5 mov w2, w19 - ldrh w1, [x20,170] - udiv w1, w23, w1 + ldrh w1, [x20,166] + udiv w1, w22, w1 bl printk -.L214: +.L280: mov w0, w19 ldr x25, [sp,64] ldp x19, x20, [sp,16] @@ -1814,31 +2042,31 @@ flash_erase_all: mov x21, x0 mul w20, w1, w20 uxth w20, w20 -.L223: - ldrb w0, [x23,57] +.L289: + ldrb w0, [x23,152] cmp w0, w19 - bls .L227 + bls .L293 add x0, x23, x19, sxtw - ldrb w24, [x0,160] + ldrb w24, [x0,156] mov w22, 0 -.L224: +.L290: cmp w20, w22, uxth - bls .L228 + bls .L294 add x0, x21, :lo12:.LANCHOR0 - ldrh w1, [x0,170] + ldrh w1, [x0,166] mov w0, w24 mul w1, w22, w1 add w22, w22, 1 bl flash_erase_block - b .L224 -.L228: + b .L290 +.L294: add w19, w19, 1 uxth w19, w19 - b .L223 -.L227: - adrp x0, .LC43 + b .L289 +.L293: + adrp x0, .LC6 mov w1, 0 - add x0, x0, :lo12:.LC43 + add x0, x0, :lo12:.LC6 bl printk ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -1872,16 +2100,16 @@ nandc_xfer_start: stp x19, x20, [sp,16] uxtb w24, w0 uxtb w23, w1 - ldr x0, [x21,8] + ldr x0, [x21,16] add w20, w23, 1 str x3, [x29,88] bl rk_nandc_xfer_irq_flag_init ldrb w0, [x22,#:lo12:.LANCHOR0] - ldr x4, [x21,8] + ldr x4, [x21,16] cmp w0, 9 ldr x3, [x29,88] ldr x2, [x29,80] - bne .L231 + bne .L297 ldr w0, [x4,292] ubfiz w19, w24, 1, 1 orr w19, w19, 8 @@ -1893,18 +2121,18 @@ nandc_xfer_start: str w0, [x4,288] mov w0, 1 bfi w19, w0, 5, 2 - ldrb w0, [x21,97] + ldrb w0, [x21,88] orr w19, w19, 536870912 orr w19, w19, 1024 and w19, w19, -17 bfi w19, w20, 22, 6 - cbz w0, .L233 - ldrb w1, [x21,144] + cbz w0, .L299 + ldrb w1, [x21,136] orr w0, w19, 512 cmp w1, wzr csel w19, w0, w19, ne - b .L233 -.L231: + b .L299 +.L297: ldr w0, [x4,368] ubfiz w19, w24, 1, 1 orr w19, w19, 8 @@ -1925,8 +2153,8 @@ nandc_xfer_start: orr w19, w19, 1024 and w19, w19, -17 bfi w19, w20, 22, 6 - cbz w24, .L245 - ldrb w0, [x21,148] + cbz w24, .L311 + ldrb w0, [x21,140] ubfx x23, x23, 1, 7 mov w1, 64 mov w4, 128 @@ -1934,27 +2162,27 @@ nandc_xfer_start: add x23, x3, x23, lsl 2 csel w4, w1, w4, cc mov w1, 0 - b .L238 -.L233: + b .L304 +.L299: add x22, x22, :lo12:.LANCHOR0 ubfx x21, x19, 22, 6 mov x0, x2 lsl w1, w21, 10 - str x2, [x22,112] + str x2, [x22,104] mov w2, w24 - str x3, [x22,120] + str x3, [x22,112] bl rknand_dma_map_single - str w0, [x22,128] - ldr x0, [x22,120] + str w0, [x22,120] + ldr x0, [x22,112] lsl w1, w21, 2 mov w2, w24 bl rknand_dma_map_single - str w0, [x22,132] - ldr x3, [x22,8] + str w0, [x22,124] + ldr x3, [x22,16] mov w1, 1 - str w1, [x22,136] + str w1, [x22,128] cmp w24, wzr - ldr w1, [x22,128] + ldr w1, [x22,120] str w1, [x3,52] str w0, [x3,56] mov w0, 16 @@ -1966,53 +2194,53 @@ nandc_xfer_start: cset w0, eq orr w1, w1, 4 bfi w1, w0, 1, 1 - ldrh w0, [x22,146] + ldrh w0, [x22,138] orr w1, w1, 1 bfi w1, w0, 16, 11 str w1, [x3,48] str w19, [x3,16] orr w19, w19, 4 str w19, [x3,16] - b .L230 -.L238: + b .L296 +.L304: cmp x3, x23 add w0, w1, w4 - beq .L240 + beq .L306 ldrh w5, [x3,2] and x1, x1, 4294967292 - ldr x6, [x21,104] + ldr x6, [x21,96] ldrh w7, [x3],4 orr w5, w7, w5, lsl 16 str w5, [x6,x1] mov w1, w0 - b .L238 -.L245: - ldr x1, [x21,104] + b .L304 +.L311: + ldr x1, [x21,96] str w0, [x1] -.L240: +.L306: add x22, x22, :lo12:.LANCHOR0 and w20, w20, 63 lsl w1, w20, 10 - ldr x0, [x22,104] - str x2, [x22,112] - str x0, [x22,120] + ldr x0, [x22,96] + str x2, [x22,104] + str x0, [x22,112] mov x0, x2 mov w2, w24 bl rknand_dma_map_single - str w0, [x22,128] - ldr x0, [x22,120] + str w0, [x22,120] + ldr x0, [x22,112] lsl w1, w20, 7 mov w2, w24 bl rknand_dma_map_single - str w0, [x22,132] - ldr x3, [x22,8] + str w0, [x22,124] + ldr x3, [x22,16] mov w0, 1 - str w0, [x22,136] + str w0, [x22,128] cmp w24, wzr - ldr w0, [x22,128] + ldr w0, [x22,120] mov w1, 8660 str w0, [x3,20] - ldr w0, [x22,132] + ldr w0, [x22,124] str w0, [x3,24] cset w0, eq bfi w1, w0, 1, 1 @@ -2022,7 +2250,7 @@ nandc_xfer_start: str w19, [x3,8] orr w19, w19, 4 str w19, [x3,8] -.L230: +.L296: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -2031,45 +2259,6 @@ nandc_xfer_start: ret .size nandc_xfer_start, .-nandc_xfer_start .align 2 - .global dump_bch_info - .type dump_bch_info, %function -dump_bch_info: - stp x29, x30, [sp, -64]! - add x29, sp, 0 - stp x19, x20, [sp,16] - stp x21, x22, [sp,32] - adrp x20, .LANCHOR2 - adrp x21, .LC44 - mov w19, 0 - add x20, x20, :lo12:.LANCHOR2 - adrp x22, .LANCHOR0 - add x21, x21, :lo12:.LC44 -.L247: - ldrb w0, [x20,377] - cmp w19, w0, lsr 2 - bcs .L249 - add x0, x22, :lo12:.LANCHOR0 - ldr x1, [x0,8] - uxtw x0, w19 - add x0, x0, 84 - ldr w0, [x1,x0,lsl 2] - mov w1, w19 - str w0, [x29,56] - mov x0, x21 - add w19, w19, 1 - ldr w2, [x29,56] - ldr w3, [x29,56] - ubfx x2, x2, 3, 7 - ubfx x3, x3, 19, 7 - bl printk - b .L247 -.L249: - ldp x19, x20, [sp,16] - ldp x21, x22, [sp,32] - ldp x29, x30, [sp], 64 - ret - .size dump_bch_info, .-dump_bch_info - .align 2 .global nandc_set_seed .type nandc_set_seed, %function nandc_set_seed: @@ -2077,22 +2266,22 @@ nandc_set_seed: and w0, w0, 127 add x1, x1, :lo12:.LANCHOR1 adrp x2, .LANCHOR0 - add x1, x1, 696 + add x1, x1, 704 ldrh w0, [x1,w0,uxtw 1] add x1, x2, :lo12:.LANCHOR0 ldrb w2, [x2,#:lo12:.LANCHOR0] orr w3, w0, -1073741824 - ldrb w4, [x1,144] - ldr x1, [x1,8] + ldrb w4, [x1,136] + ldr x1, [x1,16] cmp w4, wzr csel w0, w3, w0, ne cmp w2, 9 - bne .L252 + bne .L314 str w0, [x1,520] - b .L250 -.L252: + b .L312 +.L314: str w0, [x1,336] -.L250: +.L312: ret .size nandc_set_seed, .-nandc_set_seed .align 2 @@ -2111,62 +2300,62 @@ flash_start_page_read: stp x19, x20, [sp,16] ubfx x21, x1, 24, 2 and w19, w1, 2097151 - ldrb w0, [x23,57] + ldrb w0, [x23,152] cmp w0, w2 - bhi .L257 + bhi .L319 adrp x1, .LANCHOR1 - adrp x0, .LC34 + adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR1 - add x0, x0, :lo12:.LC34 - add x1, x1, 952 - mov w2, 741 + add x0, x0, :lo12:.LC0 + add x1, x1, 960 + mov w2, 736 bl printk -.L258: - b .L258 -.L257: +.L320: + b .L320 +.L319: add x2, x23, x2, sxtw - ldrb w20, [x2,160] - ldr x25, [x23,8] + ldrb w20, [x2,156] + ldr x25, [x23,16] mov w0, w20 bl nandc_cs - cbnz w21, .L259 - ldrb w0, [x23,58] - cbz w0, .L260 - ldrb w0, [x23,168] - cbz w0, .L261 -.L260: + cbnz w21, .L321 + ldrb w0, [x23,164] + cbz w0, .L322 + ldrb w0, [x23,165] + cbz w0, .L323 +.L322: add x2, x22, :lo12:.LANCHOR0 - ldrh w1, [x2,170] + ldrh w1, [x2,166] udiv w0, w19, w1 mul w1, w0, w1 - ldrb w0, [x2,168] + ldrb w0, [x2,165] sub w19, w19, w1 - cbz w0, .L262 + cbz w0, .L324 add w19, w1, w19, lsl 1 - b .L261 -.L262: - add x2, x2, 172 + b .L323 +.L324: + add x2, x2, 168 ldrh w19, [x2,w19,uxtw 1] add w19, w19, w1 - b .L263 -.L261: + b .L325 +.L323: mov w0, w20 bl zftl_flash_enter_slc_mode - b .L263 -.L259: - ldr x0, [x23,48] + b .L325 +.L321: + ldr x0, [x23,720] ldrb w0, [x0,12] cmp w0, 3 - bne .L264 + bne .L326 sxtw x1, w20 add x1, x1, 8 add x1, x25, x1, lsl 8 str w21, [x1,8] - b .L263 -.L264: + b .L325 +.L326: mov w0, w20 bl zftl_flash_exit_slc_mode -.L263: +.L325: ubfiz x20, x20, 8, 8 and w0, w19, 255 add x2, x25, x20 @@ -2179,19 +2368,19 @@ flash_start_page_read: lsr w0, w19, 16 str w0, [x2,2052] str w24, [x2,2056] - cbz w21, .L265 + cbz w21, .L327 add x22, x22, :lo12:.LANCHOR0 - ldr x0, [x22,48] + ldr x0, [x22,720] ldrb w0, [x0,12] cmp w0, 3 - bne .L265 + bne .L327 sub w21, w21, #1 add w0, w19, w19, lsl 1 add w0, w21, w0 - b .L276 -.L265: + b .L338 +.L327: mov w0, w19 -.L276: +.L338: bl nandc_set_seed mov w0, 0 bl nandc_de_cs @@ -2214,25 +2403,25 @@ zftl_flash_de_init: mov w0, 0 add x20, x19, :lo12:.LANCHOR0 bl hynix_reconfig_rr_para - ldrb w0, [x20,96] - cbz w0, .L278 - ldrb w0, [x20,720] - tbz x0, 0, .L278 + ldrb w0, [x20,716] + cbz w0, .L340 + ldrb w0, [x20,681] + tbz x0, 0, .L340 mov w0, 1 bl flash_set_interface_mode mov w0, 1 bl nandc_set_if_mode - strb wzr, [x20,96] -.L278: + strb wzr, [x20,716] +.L340: add x19, x19, :lo12:.LANCHOR0 - ldrb w0, [x19,144] - cbz w0, .L279 + ldrb w0, [x19,136] + cbz w0, .L341 mov w0, 0 - strb wzr, [x19,144] + strb wzr, [x19,136] bl nandc_set_seed mov w0, 1 - strb w0, [x19,144] -.L279: + strb w0, [x19,136] +.L341: mov w0, 0 ldp x19, x20, [sp,16] ldp x29, x30, [sp], 32 @@ -2242,18 +2431,18 @@ zftl_flash_de_init: .global nandc_randomizer_enable .type nandc_randomizer_enable, %function nandc_randomizer_enable: - adrp x1, .LANCHOR0+144 - strb w0, [x1,#:lo12:.LANCHOR0+144] + adrp x1, .LANCHOR0+136 + strb w0, [x1,#:lo12:.LANCHOR0+136] ret .size nandc_randomizer_enable, .-nandc_randomizer_enable .align 2 .global nandc_get_chip_if .type nandc_get_chip_if, %function nandc_get_chip_if: - adrp x1, .LANCHOR0+8 + adrp x1, .LANCHOR0+16 uxtb x0, w0 add x0, x0, 8 - ldr x1, [x1,#:lo12:.LANCHOR0+8] + ldr x1, [x1,#:lo12:.LANCHOR0+16] add x0, x1, x0, lsl 8 ret .size nandc_get_chip_if, .-nandc_get_chip_if @@ -2270,7 +2459,7 @@ buf_init: add x19, x19, 728 mov w21, 0 mov x22, x0 -.L292: +.L354: add x20, x22, :lo12:.LANCHOR0 uxtb w0, w21 add w1, w0, 1 @@ -2289,7 +2478,7 @@ buf_init: bl ftl_malloc str x0, [x19,-40] cmp w21, 32 - bne .L292 + bne .L354 strb w21, [x20,2778] mov w0, -1 strb wzr, [x20,2777] @@ -2307,7 +2496,7 @@ buf_reinit: mov w2, 0 add x1, x0, :lo12:.LANCHOR0 add x1, x1, 728 -.L295: +.L357: uxtb w3, w2 add w2, w2, 1 add w4, w3, 1 @@ -2317,7 +2506,7 @@ buf_reinit: strb wzr, [x1,2] add x1, x1, 64 str xzr, [x1,-48] - bne .L295 + bne .L357 add x0, x0, :lo12:.LANCHOR0 mov w1, -1 strb wzr, [x0,2777] @@ -2335,48 +2524,48 @@ buf_add_tail: strb w2, [x1] ldrb w3, [x0] cmp w3, 255 - bne .L305 + bne .L367 ldrb w1, [x1,1] cmp w1, 255 - bne .L299 + bne .L361 adrp x1, .LANCHOR1 - adrp x0, .LC34 + adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR1 - add x0, x0, :lo12:.LC34 - add x1, x1, 976 + add x0, x0, :lo12:.LC0 + add x1, x1, 984 mov w2, 74 bl printk -.L300: - b .L300 -.L299: +.L362: + b .L362 +.L361: strb w1, [x0] - b .L297 -.L305: + b .L359 +.L367: adrp x0, .LANCHOR0 add x0, x0, :lo12:.LANCHOR0 add x0, x0, 728 -.L306: +.L368: mov w2, w3 sbfiz x3, x3, 6, 32 ldrb w3, [x0,x3] cmp w3, 255 - bne .L306 + bne .L368 ldrb w1, [x1,1] cmp w1, 255 - bne .L302 + bne .L364 adrp x1, .LANCHOR1 - adrp x0, .LC34 + adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR1 - add x0, x0, :lo12:.LC34 - add x1, x1, 976 + add x0, x0, :lo12:.LC0 + add x1, x1, 984 mov w2, 81 bl printk -.L303: - b .L303 -.L302: +.L365: + b .L365 +.L364: sbfiz x2, x2, 6, 32 strb w1, [x0,x2] -.L297: +.L359: ldp x29, x30, [sp], 16 ret .size buf_add_tail, .-buf_add_tail @@ -2392,19 +2581,19 @@ buf_free: and w1, w1, 8 uxtb w1, w1 strb w1, [x0,2] - cbz w1, .L308 + cbz w1, .L370 mov x1, x0 add x0, x19, :lo12:.LANCHOR0 add x0, x0, 2777 bl buf_add_tail - b .L309 -.L308: + b .L371 +.L370: add x1, x19, :lo12:.LANCHOR0 ldrb w2, [x1,2777] strb w2, [x0] ldrb w0, [x0,1] strb w0, [x1,2777] -.L309: +.L371: add x19, x19, :lo12:.LANCHOR0 ldrb w0, [x19,2778] add w0, w0, 1 @@ -2424,25 +2613,25 @@ buf_alloc: stp x29, x30, [sp, -16]! add x29, sp, 0 ldrb w3, [x2,2778] - cbnz w3, .L311 + cbnz w3, .L373 adrp x1, .LANCHOR1 - adrp x0, .LC34 + adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR1 - add x0, x0, :lo12:.LC34 - add x1, x1, 992 + add x0, x0, :lo12:.LC0 + add x1, x1, 1000 mov w2, 121 bl printk -.L312: - b .L312 -.L311: +.L374: + b .L374 +.L373: add x4, x2, 728 ldrb w2, [x2,2777] add x4, x4, x2, lsl 6 - cbnz w5, .L316 + cbnz w5, .L378 cmp w3, 1 mov x0, 0 - beq .L313 -.L316: + beq .L375 +.L378: add x0, x1, :lo12:.LANCHOR0 lsl x1, x2, 6 add x5, x0, 728 @@ -2460,7 +2649,7 @@ buf_alloc: str w0, [x2,36] mov x0, x4 str xzr, [x2,16] -.L313: +.L375: ldp x29, x30, [sp], 16 ret .size buf_alloc, .-buf_alloc @@ -2471,33 +2660,33 @@ buf_remove_buf: ldrb w4, [x1,1] ldrb w2, [x0] cmp w4, w2 - bne .L323 + bne .L385 ldrb w1, [x1] strb w1, [x0] - b .L327 -.L323: + b .L389 +.L385: adrp x0, .LANCHOR0 add x0, x0, :lo12:.LANCHOR0 add x0, x0, 728 -.L325: +.L387: cmp w2, 255 - beq .L328 + beq .L390 mov w3, w2 sbfiz x2, x2, 6, 32 ldrb w2, [x0,x2] cmp w2, w4 - bne .L325 + bne .L387 sbfiz x3, x3, 6, 32 ldrb w2, [x1] strb w2, [x0,x3] mov w0, -1 strb w0, [x1] -.L327: +.L389: mov w0, 1 - b .L322 -.L328: + b .L384 +.L390: mov w0, 0 -.L322: +.L384: ret .size buf_remove_buf, .-buf_remove_buf .align 2 @@ -2511,29 +2700,29 @@ buf_remove_free: mov x20, x0 add x19, x19, :lo12:.LANCHOR0 ldrb w0, [x19,2778] - cbnz w0, .L330 + cbnz w0, .L392 adrp x1, .LANCHOR1 - adrp x0, .LC34 + adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR1 - add x0, x0, :lo12:.LC34 - add x1, x1, 1008 + add x0, x0, :lo12:.LC0 + add x1, x1, 1016 mov w2, 170 bl printk -.L331: - b .L331 -.L330: +.L393: + b .L393 +.L392: add x0, x19, 2777 mov x1, x20 bl buf_remove_buf cmp w0, 1 - bne .L329 + bne .L391 ldrb w0, [x19,2778] sub w0, w0, #1 strb w0, [x19,2778] ldrb w0, [x20,2] orr w0, w0, 1 strb w0, [x20,2] -.L329: +.L391: ldp x19, x20, [sp,16] ldp x29, x30, [sp], 32 ret @@ -2555,9 +2744,9 @@ flash_check_bad_block: asr w2, w2, 5 lsl w2, w2, 2 mul w2, w0, w2 - adrp x0, .LANCHOR0+152 + adrp x0, .LANCHOR0+144 sxtw x2, w2 - ldr x0, [x0,#:lo12:.LANCHOR0+152] + ldr x0, [x0,#:lo12:.LANCHOR0+144] add x2, x2, 912 add x2, x0, x2 ldr w0, [x2,x3,lsl 2] @@ -2582,18 +2771,18 @@ flash_mask_bad_block: mov w2, w21 ldrh w20, [x3,382] mul w20, w0, w20 - adrp x0, .LC45 - add x0, x0, :lo12:.LC45 + adrp x0, .LC7 + add x0, x0, :lo12:.LC7 uxth w20, w20 add w20, w20, 31 bl printk asr w20, w20, 5 - adrp x0, .LANCHOR0+152 + adrp x0, .LANCHOR0+144 lsl w20, w20, 2 ubfx x3, x21, 5, 27 lsl x3, x3, 2 mul w19, w19, w20 - ldr x0, [x0,#:lo12:.LANCHOR0+152] + ldr x0, [x0,#:lo12:.LANCHOR0+144] sxtw x19, w19 add x19, x19, 912 add x19, x0, x19 @@ -2612,23 +2801,23 @@ flash_mask_bad_block: .type ftl_print_info_to_buf, %function ftl_print_info_to_buf: stp x29, x30, [sp, -48]! - adrp x1, .LC46 - adrp x2, .LC47 + adrp x1, .LC8 + adrp x2, .LC9 add x29, sp, 0 - add x1, x1, :lo12:.LC46 - add x2, x2, :lo12:.LC47 + add x1, x1, :lo12:.LC8 + add x2, x2, :lo12:.LC9 stp x19, x20, [sp,16] str x21, [sp,32] mov x20, x0 bl sprintf adrp x21, .LANCHOR0 adrp x7, .LANCHOR2 - adrp x1, .LC48 + adrp x1, .LC10 add x7, x7, :lo12:.LANCHOR2 add x21, x21, :lo12:.LANCHOR0 add x7, x7, 368 add x19, x20, x0, sxtw - add x1, x1, :lo12:.LC48 + add x1, x1, :lo12:.LC10 mov x0, x19 ldrb w5, [x7,4] ldrb w6, [x7,5] @@ -2639,95 +2828,97 @@ ftl_print_info_to_buf: bl sprintf add x19, x19, x0, sxtw ldr w2, [x21,4] - adrp x1, .LC49 + adrp x1, .LC11 mov x0, x19 - add x1, x1, :lo12:.LC49 + add x1, x1, :lo12:.LC11 lsr w2, w2, 11 bl sprintf add x19, x19, x0, sxtw ldr w2, [x21,2780] - adrp x1, .LC50 + adrp x1, .LC12 mov x0, x19 - add x1, x1, :lo12:.LC50 + add x1, x1, :lo12:.LC12 lsr w2, w2, 11 bl sprintf add x19, x19, x0, sxtw - adrp x1, .LC51 + adrp x1, .LC13 mov x0, x19 - add x1, x1, :lo12:.LC51 + add x1, x1, :lo12:.LC13 add x19, x19, 10 bl strcpy ldr w2, [x21,2784] - adrp x1, .LC52 + adrp x1, .LC14 mov x0, x19 - add x1, x1, :lo12:.LC52 + add x1, x1, :lo12:.LC14 bl sprintf add x19, x19, x0, sxtw ldr w2, [x21,4] - adrp x1, .LC53 + adrp x1, .LC15 mov x0, x19 - add x1, x1, :lo12:.LC53 + add x1, x1, :lo12:.LC15 bl sprintf add x19, x19, x0, sxtw - ldr x2, [x21,2792] - adrp x1, .LC54 + ldr x2, [x21,80] + adrp x1, .LC16 mov x0, x19 - add x1, x1, :lo12:.LC54 + add x1, x1, :lo12:.LC16 ldr w2, [x2,524] bl sprintf add x19, x19, x0, sxtw - ldr x2, [x21,2792] - adrp x1, .LC55 + ldr x2, [x21,80] + adrp x1, .LC17 mov x0, x19 - add x1, x1, :lo12:.LC55 + add x1, x1, :lo12:.LC17 ldr w2, [x2,528] bl sprintf add x19, x19, x0, sxtw - ldr x2, [x21,2800] - adrp x1, .LC56 + ldrh w2, [x21,2788] + adrp x1, .LC18 mov x0, x19 - add x1, x1, :lo12:.LC56 - ldrh w2, [x2,114] + add x1, x1, :lo12:.LC18 bl sprintf add x19, x19, x0, sxtw - ldr x2, [x21,2800] - adrp x1, .LC57 + ldrh w2, [x21,2790] + adrp x1, .LC19 mov x0, x19 - add x1, x1, :lo12:.LC57 - ldrh w2, [x2,118] + add x1, x1, :lo12:.LC19 bl sprintf add x19, x19, x0, sxtw - ldr x2, [x21,2800] - adrp x1, .LC58 + ldrh w2, [x21,2792] + adrp x1, .LC20 mov x0, x19 - add x1, x1, :lo12:.LC58 - ldrh w2, [x2,116] + add x1, x1, :lo12:.LC20 bl sprintf add x19, x19, x0, sxtw - ldr x2, [x21,2800] - adrp x1, .LC59 + ldrh w2, [x21,2794] + adrp x1, .LC21 mov x0, x19 - add x1, x1, :lo12:.LC59 - ldrh w2, [x2,122] + add x1, x1, :lo12:.LC21 bl sprintf add x19, x19, x0, sxtw - ldr x2, [x21,2800] - adrp x1, .LC60 + ldrh w2, [x21,2796] + adrp x1, .LC22 mov x0, x19 - add x1, x1, :lo12:.LC60 - ldrh w2, [x2,124] + add x1, x1, :lo12:.LC22 bl sprintf add x19, x19, x0, sxtw - ldr x2, [x21,2800] - adrp x1, .LC61 + ldrh w2, [x21,2798] + adrp x1, .LC23 mov x0, x19 - add x1, x1, :lo12:.LC61 - ldrh w2, [x2,120] + add x1, x1, :lo12:.LC23 + bl sprintf + add x19, x19, x0, sxtw + ldr x3, [x21,2800] + adrp x1, .LC24 + mov x0, x19 + add x1, x1, :lo12:.LC24 + ldrh w2, [x3,148] + ldrh w3, [x3,146] bl sprintf add x19, x19, x0, sxtw ldr x0, [x21,2800] - adrp x1, .LC62 - add x1, x1, :lo12:.LC62 + adrp x1, .LC25 + add x1, x1, :lo12:.LC25 ldr w3, [x0,16] ldr w2, [x0,20] mov x0, x19 @@ -2735,8 +2926,8 @@ ftl_print_info_to_buf: bl sprintf add x19, x19, x0, sxtw ldr x0, [x21,2800] - adrp x1, .LC63 - add x1, x1, :lo12:.LC63 + adrp x1, .LC26 + add x1, x1, :lo12:.LC26 ldr w3, [x0,24] ldr w2, [x0,28] mov x0, x19 @@ -2744,101 +2935,107 @@ ftl_print_info_to_buf: bl sprintf add x19, x19, x0, sxtw ldr x2, [x21,2800] - adrp x1, .LC64 + adrp x1, .LC27 mov x0, x19 - add x1, x1, :lo12:.LC64 + add x1, x1, :lo12:.LC27 ldr w2, [x2,64] bl sprintf add x19, x19, x0, sxtw ldr x2, [x21,2800] - adrp x1, .LC65 + adrp x1, .LC28 mov x0, x19 - add x1, x1, :lo12:.LC65 + add x1, x1, :lo12:.LC28 ldr w2, [x2,68] bl sprintf add x19, x19, x0, sxtw - ldr x0, [x21,2792] + ldr x0, [x21,80] mov w2, 10 - adrp x1, .LC66 - add x1, x1, :lo12:.LC66 + adrp x1, .LC29 + add x1, x1, :lo12:.LC29 ldr w3, [x0,12] mov x0, x19 udiv w2, w3, w2 bl sprintf add x19, x19, x0, sxtw - ldr x2, [x21,2792] - adrp x1, .LC67 + ldrb w2, [x21,164] + adrp x1, .LC30 + mov x0, x19 + add x1, x1, :lo12:.LC30 + bl sprintf + add x19, x19, x0, sxtw + ldr x2, [x21,80] + adrp x1, .LC31 mov x0, x19 - add x1, x1, :lo12:.LC67 + add x1, x1, :lo12:.LC31 ldr w2, [x2,556] bl sprintf add x19, x19, x0, sxtw - ldr x2, [x21,2792] - adrp x1, .LC68 + ldr x2, [x21,80] + adrp x1, .LC32 mov x0, x19 - add x1, x1, :lo12:.LC68 + add x1, x1, :lo12:.LC32 ldr w2, [x2,552] bl sprintf add x19, x19, x0, sxtw ldr x2, [x21,2800] - adrp x1, .LC69 + adrp x1, .LC33 mov x0, x19 - add x1, x1, :lo12:.LC69 + add x1, x1, :lo12:.LC33 ldr w2, [x2,52] bl sprintf add x19, x19, x0, sxtw ldr x2, [x21,2800] - adrp x1, .LC70 + adrp x1, .LC34 mov x0, x19 - add x1, x1, :lo12:.LC70 + add x1, x1, :lo12:.LC34 ldr w2, [x2,60] bl sprintf add x19, x19, x0, sxtw ldr x2, [x21,2800] - adrp x1, .LC71 + adrp x1, .LC35 mov x0, x19 - add x1, x1, :lo12:.LC71 + add x1, x1, :lo12:.LC35 ldr w2, [x2,76] bl sprintf add x19, x19, x0, sxtw ldr x2, [x21,2800] - adrp x1, .LC72 + adrp x1, .LC36 mov x0, x19 - add x1, x1, :lo12:.LC72 + add x1, x1, :lo12:.LC36 ldr w2, [x2,8] bl sprintf add x19, x19, x0, sxtw - ldr x4, [x21,2792] - adrp x1, .LC73 + ldr x4, [x21,80] + adrp x1, .LC37 mov x0, x19 - add x1, x1, :lo12:.LC73 + add x1, x1, :lo12:.LC37 ldrh w2, [x4,16] ldrh w3, [x4,22] ldrb w4, [x4,25] bl sprintf add x19, x19, x0, sxtw - ldr x4, [x21,2792] - adrp x1, .LC74 + ldr x4, [x21,80] + adrp x1, .LC38 mov x0, x19 - add x1, x1, :lo12:.LC74 + add x1, x1, :lo12:.LC38 ldrh w2, [x4,48] ldrh w3, [x4,54] ldrb w4, [x4,57] bl sprintf add x19, x19, x0, sxtw - ldr x4, [x21,2792] - adrp x1, .LC75 + ldr x4, [x21,80] + adrp x1, .LC39 mov x0, x19 - add x1, x1, :lo12:.LC75 + add x1, x1, :lo12:.LC39 ldrh w2, [x4,80] ldrh w3, [x4,86] ldrb w4, [x4,89] bl sprintf add x19, x19, x0, sxtw ldr x6, [x21,2800] - adrp x1, .LC76 + adrp x1, .LC40 mov x0, x19 - add x1, x1, :lo12:.LC76 + add x1, x1, :lo12:.LC40 ldrh w2, [x6,74] ldr w3, [x6,84] ldrh w4, [x6,88] @@ -2847,15 +3044,30 @@ ftl_print_info_to_buf: bl sprintf add x19, x19, x0, sxtw ldr x6, [x21,2800] - adrp x1, .LC77 + adrp x1, .LC41 mov x0, x19 - add x1, x1, :lo12:.LC77 - ldrh w2, [x6,72] + add x1, x1, :lo12:.LC41 ldr w3, [x6,80] ldrh w4, [x6,90] ldrh w5, [x6,94] + ldrh w2, [x6,72] ldrh w6, [x6,98] bl sprintf + add x19, x19, x0, sxtw + ldrh w2, [x21,2808] + adrp x1, .LC42 + mov x0, x19 + add x1, x1, :lo12:.LC42 + bl sprintf + add x19, x19, x0, sxtw + ldrh w2, [x21,2810] + adrp x1, .LC43 + ldrh w3, [x21,2812] + mov x0, x19 + ldrh w4, [x21,2814] + add x1, x1, :lo12:.LC43 + ldrh w5, [x21,2816] + bl sprintf add x0, x19, x0, sxtw ldr x21, [sp,32] sub w0, w0, w20 @@ -2864,16 +3076,6 @@ ftl_print_info_to_buf: ret .size ftl_print_info_to_buf, .-ftl_print_info_to_buf .align 2 - .global zftl_proc_ftl_read - .type zftl_proc_ftl_read, %function -zftl_proc_ftl_read: - stp x29, x30, [sp, -16]! - add x29, sp, 0 - bl ftl_print_info_to_buf - ldp x29, x30, [sp], 16 - ret - .size zftl_proc_ftl_read, .-zftl_proc_ftl_read - .align 2 .global ftl_gc_write_buf .type ftl_gc_write_buf, %function ftl_gc_write_buf: @@ -2886,12 +3088,12 @@ ftl_gc_write_buf: ldrb w0, [x0,2] orr w0, w0, 2 strb w0, [x1,2] - add x0, x19, 2808 + add x0, x19, 2818 bl buf_add_tail - ldrb w0, [x19,2809] + ldrb w0, [x19,2819] add w0, w0, 1 uxtb w0, w0 - strb w0, [x19,2809] + strb w0, [x19,2819] ldr x19, [sp,16] ldp x29, x30, [sp], 32 ret @@ -2909,49 +3111,49 @@ ftl_read_buf: add x3, x3, 728 ldr w4, [x3,2056] cmp w0, w4 - bcc .L348 + bcc .L409 adrp x1, .LANCHOR1 - adrp x0, .LC34 + adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR1 - add x0, x0, :lo12:.LC34 - add x1, x1, 1024 - mov w2, 794 + add x0, x0, :lo12:.LC0 + add x1, x1, 1032 + mov w2, 835 bl printk -.L340: - b .L340 -.L353: +.L401: + b .L401 +.L414: ldrb w4, [x3,2] - tbnz x4, 3, .L351 -.L341: + tbnz x4, 3, .L412 +.L402: add w2, w2, 1 add x3, x3, 64 cmp w2, 32 - beq .L352 -.L348: + beq .L413 +.L409: ldr w4, [x3,36] cmp w4, w0 - bne .L341 - b .L353 -.L351: + bne .L402 + b .L414 +.L412: add x19, x19, :lo12:.LANCHOR0 ubfiz x2, x2, 6, 32 add x19, x19, 728 orr w0, w4, 4 add x19, x19, x2 strb w0, [x19,2] - tbnz x4, 0, .L343 + tbnz x4, 0, .L404 mov x0, x19 bl buf_remove_free - b .L343 -.L352: + b .L404 +.L413: add x2, x19, :lo12:.LANCHOR0 mov x19, 0 - ldr w3, [x2,2812] + ldr w3, [x2,2820] cmn w3, #1 - bne .L343 - str w0, [x2,2812] - str x1, [x2,2816] -.L343: + bne .L404 + str w0, [x2,2820] + str x1, [x2,2824] +.L404: mov x0, x19 ldr x19, [sp,16] ldp x29, x30, [sp], 32 @@ -2968,17 +3170,17 @@ ftl_read_buf_free: adrp x0, .LANCHOR0 mov x1, x19 add x0, x0, :lo12:.LANCHOR0 - add x0, x0, 2824 + add x0, x0, 2832 bl buf_remove_buf ldrb w0, [x19,2] - tbz x0, 1, .L355 + tbz x0, 1, .L416 and w0, w0, -5 strb w0, [x19,2] - b .L354 -.L355: + b .L415 +.L416: mov x0, x19 bl buf_free -.L354: +.L415: ldr x19, [sp,16] ldp x29, x30, [sp], 32 ret @@ -2993,141 +3195,161 @@ gc_hook: .global gc_add_sblk .type gc_add_sblk, %function gc_add_sblk: - stp x29, x30, [sp, -64]! + stp x29, x30, [sp, -80]! add x29, sp, 0 stp x19, x20, [sp,16] - adrp x19, .LANCHOR0 - uxth w20, w0 - add x6, x19, :lo12:.LANCHOR0 + adrp x20, .LANCHOR0 + add x6, x20, :lo12:.LANCHOR0 stp x21, x22, [sp,32] stp x23, x24, [sp,48] - uxth w22, w1 - uxth w23, w2 - ldrh w0, [x6,2826] - cmp w0, w20 - bhi .L359 + stp x25, x26, [sp,64] + uxth w21, w0 + uxth w24, w1 + ldrh w0, [x6,56] + uxth w22, w2 + cmp w0, w21 + bhi .L420 adrp x1, .LANCHOR1 - adrp x0, .LC34 + adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR1 - add x0, x0, :lo12:.LC34 - add x1, x1, 1040 - mov w2, 243 + add x0, x0, :lo12:.LC0 + add x1, x1, 1048 + mov w2, 252 bl printk -.L360: - b .L360 -.L359: - ldr x0, [x6,2832] - uxtw x21, w20 - ldrh w24, [x0,x21,lsl 1] - adrp x0, .LANCHOR2+400 - ldr w0, [x0,#:lo12:.LANCHOR2+400] - tbz x0, 8, .L361 - ldr x0, [x6,2840] - mov w1, w20 - ldrh w5, [x6,2904] - mov w2, w22 - add x0, x0, x21, lsl 2 - ldrh w6, [x6,3176] - mov w4, w24 +.L421: + b .L421 +.L420: + uxtw x19, w21 + ldr x0, [x6,72] + lsl x25, x19, 1 + adrp x23, .LANCHOR2 + ldrh w26, [x0,x25] + add x0, x23, :lo12:.LANCHOR2 + ldr w0, [x0,400] + tbz x0, 8, .L422 + ldr x0, [x6,64] + mov w1, w21 + ldrh w5, [x6,2896] + mov w2, w24 + add x0, x0, x19, lsl 2 + ldrh w6, [x6,2814] + mov w4, w26 ldrb w3, [x0,2] - adrp x0, .LC78 - add x0, x0, :lo12:.LC78 + adrp x0, .LC44 + add x0, x0, :lo12:.LC44 ubfx x3, x3, 5, 3 bl printk -.L361: - add x5, x19, :lo12:.LANCHOR0 - ldr x0, [x5,2840] - add x21, x0, x21, lsl 2 - ldrb w3, [x21,2] +.L422: + add x5, x20, :lo12:.LANCHOR0 + ldr x6, [x5,64] + add x6, x6, x19, lsl 2 + ldrb w3, [x6,2] ands w0, w3, 224 - bne .L362 - cbz w24, .L363 + bne .L423 + cbz w26, .L424 adrp x1, .LANCHOR1 - adrp x0, .LC34 + adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR1 - add x0, x0, :lo12:.LC34 - add x1, x1, 1040 - mov w2, 248 + add x0, x0, :lo12:.LC0 + add x1, x1, 1048 + mov w2, 257 bl printk -.L364: - b .L364 -.L362: - ldrh w1, [x5,2848] - add x3, x5, 2848 +.L425: + b .L425 +.L423: + ldrh w1, [x5,2840] + add x3, x5, 2840 mov w0, 0 - cmp w1, w20 - beq .L363 - ldr x4, [x5,2792] + cmp w1, w21 + beq .L424 + ldr x4, [x5,80] ldrh w1, [x4,48] - cmp w1, w20 - beq .L363 + cmp w1, w21 + beq .L424 ldrh w1, [x4,16] - cmp w1, w20 - beq .L363 + cmp w1, w21 + beq .L424 ldrh w1, [x4,80] - cmp w1, w20 - beq .L363 - ldrh w1, [x3,56] + cmp w1, w21 + beq .L424 + ldrh w5, [x3,56] mov x0, 0 -.L365: - cmp w1, w0 - bls .L384 +.L426: + cmp w5, w0 + bls .L449 add x0, x0, 1 - add x2, x3, x0, lsl 1 - ldrh w2, [x2,56] - cmp w2, w20 - bne .L365 + add x1, x3, x0, lsl 1 + ldrh w1, [x1,56] + cmp w1, w21 + bne .L426 mov w0, 0 - b .L363 -.L384: - add x3, x4, 392 - cbnz w22, .L368 - sxtw x3, w23 + b .L424 +.L449: + add x19, x4, 392 + cbnz w24, .L429 + sxtw x3, w22 add x3, x4, x3, lsl 7 - add x3, x3, 136 -.L368: - add x0, x3, 128 + add x19, x3, 136 +.L429: + add x23, x23, :lo12:.LANCHOR2 + ldr w0, [x23,400] + tbz x0, 8, .L430 + ldrb w3, [x6,2] + add x6, x20, :lo12:.LANCHOR0 + adrp x0, .LC44 + mov w1, w21 + add x0, x0, :lo12:.LC44 + mov w2, w24 + ldr x4, [x6,72] + ubfx x3, x3, 5, 3 + ldrh w6, [x6,2814] + ldrh w4, [x4,x25] + bl printk +.L430: + mov x3, x19 + add x0, x19, 128 mov w1, 65535 -.L371: +.L433: ldrh w2, [x3] cmp w2, w1 - bne .L369 - strh w20, [x3] - add x19, x19, :lo12:.LANCHOR0 - cbz w22, .L370 - ldr x1, [x19,2792] + bne .L431 + strh w21, [x3] + add x20, x20, :lo12:.LANCHOR0 + cbz w24, .L432 + ldr x1, [x20,80] ldrh w0, [x1,124] add w0, w0, 1 strh w0, [x1,124] - b .L383 -.L370: - ldr x0, [x19,2792] - add x2, x0, x23, uxth 1 - ldrh w0, [x2,120] + b .L448 +.L432: + ldr x0, [x20,80] + add x22, x0, x22, uxth 1 + ldrh w0, [x22,120] add w0, w0, 1 - strh w0, [x2,120] -.L383: + strh w0, [x22,120] +.L448: mov w0, 1 - b .L363 -.L369: + b .L424 +.L431: add x3, x3, 2 cmp x3, x0 - bne .L371 - b .L383 -.L363: + bne .L433 + b .L448 +.L424: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] - ldp x29, x30, [sp], 64 + ldp x25, x26, [sp,64] + ldp x29, x30, [sp], 80 ret .size gc_add_sblk, .-gc_add_sblk .align 2 .global gc_get_src_ppa_from_index .type gc_get_src_ppa_from_index, %function gc_get_src_ppa_from_index: - adrp x1, .LANCHOR0+3184 + adrp x1, .LANCHOR0+3168 ubfiz x0, x0, 2, 16 - ldr x1, [x1,#:lo12:.LANCHOR0+3184] + ldr x1, [x1,#:lo12:.LANCHOR0+3168] ldr w0, [x1,x0] ret .size gc_get_src_ppa_from_index, .-gc_get_src_ppa_from_index @@ -3146,90 +3368,90 @@ gc_write_completed: stp x23, x24, [sp,48] mov x22, x19 mov x24, x25 -.L387: - ldrb w20, [x19,3192] +.L452: + ldrb w20, [x19,3176] cmp w20, 255 - beq .L409 + beq .L474 lsl x1, x20, 6 add x0, x25, x1 ldrb w1, [x25,x1] - strb w1, [x19,3192] + strb w1, [x19,3176] ldr w1, [x0,52] ldrh w23, [x0,48] - cbz w1, .L388 + cbz w1, .L453 mov w2, 1 - strh w2, [x19,3166] + strh w2, [x19,3158] ldr w2, [x0,40] - adrp x0, .LC79 - add x0, x0, :lo12:.LC79 - str w2, [x19,3168] + adrp x0, .LC45 + add x0, x0, :lo12:.LC45 + str w2, [x19,3160] bl printk adrp x1, .LANCHOR1 - adrp x0, .LC34 + adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR1 - add x0, x0, :lo12:.LC34 - add x1, x1, 1056 - mov w2, 505 + add x0, x0, :lo12:.LC0 + add x1, x1, 1064 + mov w2, 519 bl printk -.L389: - b .L389 -.L388: - ldrb w0, [x19,3193] +.L454: + b .L454 +.L453: + ldrb w0, [x19,3177] mov w21, 1 cmp w0, 3 - bne .L390 - ldr x0, [x19,2792] + bne .L455 + ldr x0, [x19,80] ldrb w21, [x0,89] add w21, w21, w21, lsl 1 and w21, w21, 1023 -.L390: +.L455: adrp x0, .LANCHOR2+400 uxth x26, w23 ldr w0, [x0,#:lo12:.LANCHOR2+400] - tbz x0, 8, .L391 + tbz x0, 8, .L456 add x2, x24, x20, lsl 6 - ldr x4, [x22,3200] - adrp x0, .LC80 + ldr x4, [x22,3184] + adrp x0, .LC46 mov w1, w23 - add x0, x0, :lo12:.LC80 + add x0, x0, :lo12:.LC46 mov w3, w23 ldrb w2, [x2,1] ldrb w4, [x4,x26] bl printk -.L391: - ldr x2, [x22,3200] +.L456: + ldr x2, [x22,3184] add x20, x24, x20, lsl 6 ldrb w1, [x2,x26] ldrb w0, [x20,1] cmp w1, w0 - beq .L392 + beq .L457 adrp x1, .LANCHOR1 - adrp x0, .LC34 + adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR1 - add x0, x0, :lo12:.LC34 - add x1, x1, 1056 - mov w2, 512 + add x0, x0, :lo12:.LC0 + add x1, x1, 1064 + mov w2, 526 bl printk -.L393: - b .L393 -.L392: +.L458: + b .L458 +.L457: ldrb w0, [x20,61] cmp w0, 3 - beq .L394 - ldrb w0, [x22,3193] + beq .L459 + ldrb w0, [x22,3177] cmp w0, 3 - bne .L394 - ldrb w0, [x22,3208] - cbz w0, .L395 -.L394: - strh w23, [x22,3164] + bne .L459 + ldrb w0, [x22,3192] + cbz w0, .L460 +.L459: + strh w23, [x22,3156] mov w20, 0 mov w26, -1 -.L396: +.L461: cmp w21, w20, uxth - bls .L387 + bls .L452 add w1, w20, w23 - ldr x2, [x22,3200] + ldr x2, [x22,3184] add w20, w20, 1 ldrb w0, [x2,x1] strb w26, [x2,x1] @@ -3237,20 +3459,20 @@ gc_write_completed: add x0, x24, x0 strb wzr, [x0,61] bl buf_free - ldrb w0, [x22,2855] + ldrb w0, [x22,2847] sub w0, w0, #1 - strb w0, [x22,2855] - b .L396 -.L395: + strb w0, [x22,2847] + b .L461 +.L460: cmp w21, w0, uxth - bls .L387 + bls .L452 add w1, w0, w23 add w0, w0, 1 ldrb w1, [x2,x1] add x1, x24, x1, lsl 6 strb wzr, [x1,61] - b .L395 -.L409: + b .L460 +.L474: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -3264,51 +3486,51 @@ gc_write_completed: gc_get_src_blk: adrp x3, .LANCHOR0 add x0, x3, :lo12:.LANCHOR0 - ldr x1, [x0,2792] - ldrb w0, [x0,3209] + ldr x1, [x0,80] + ldrb w0, [x0,3193] ldrh w4, [x1,124] - cbz w4, .L411 + cbz w4, .L476 add x1, x1, 392 mov w2, 1 - b .L412 -.L411: + b .L477 +.L476: sxtw x2, w0 add x0, x1, x2, lsl 1 ldrh w5, [x0,120] mov w0, 65535 - cbz w5, .L413 + cbz w5, .L478 add x1, x1, x2, lsl 7 mov w2, w4 add x1, x1, 136 -.L412: +.L477: add x4, x1, 128 mov w5, 65535 -.L416: +.L481: ldrh w0, [x1] cmp w0, w5 - beq .L414 + beq .L479 mov w4, -1 strh w4, [x1] add x3, x3, :lo12:.LANCHOR0 - cbz w2, .L415 - ldr x2, [x3,2792] + cbz w2, .L480 + ldr x2, [x3,80] ldrh w1, [x2,124] sub w1, w1, #1 strh w1, [x2,124] - b .L413 -.L415: - ldrb w1, [x3,3209] - ldr x2, [x3,2792] + b .L478 +.L480: + ldrb w1, [x3,3193] + ldr x2, [x3,80] add x1, x2, x1, lsl 1 ldrh w2, [x1,120] sub w2, w2, #1 strh w2, [x1,120] - b .L413 -.L414: + b .L478 +.L479: add x1, x1, 2 cmp x1, x4 - bne .L416 -.L413: + bne .L481 +.L478: ret .size gc_get_src_blk, .-gc_get_src_blk .align 2 @@ -3322,689 +3544,977 @@ gc_free_temp_buf: adrp x19, .LANCHOR0 str x21, [sp,32] add x2, x19, :lo12:.LANCHOR0 - ldrb w3, [x2,2855] - cbz w3, .L421 + ldrb w3, [x2,2847] + cbz w3, .L486 ldrb w3, [x2,2778] cmp w3, 1 - bhi .L421 - ldrh w4, [x2,3210] + bhi .L486 + ldrh w4, [x2,3194] mov x20, x2 - ldrb w0, [x2,3212] + ldrb w0, [x2,3196] add x2, x2, 728 - ldrh w1, [x2,2436] + ldrh w1, [x2,2428] mul w0, w4, w0 add w3, w1, 24 - ldr x4, [x2,2472] + ldr x4, [x2,2456] cmp w0, w3 csel w3, w0, w3, ls -.L422: +.L487: cmp w1, w3 - bcs .L435 + bcs .L500 uxtw x21, w1 ldrb w0, [x4,x21] cmp w0, 255 - beq .L423 + beq .L488 sbfiz x0, x0, 6, 32 add x0, x2, x0 ldrb w5, [x0,61] - cbnz w5, .L423 + cbnz w5, .L488 str x1, [x29,56] bl buf_free adrp x0, .LANCHOR2+400 ldr x1, [x29,56] ldr w0, [x0,#:lo12:.LANCHOR2+400] - tbz x0, 8, .L424 - ldr x2, [x20,3200] - adrp x0, .LC81 - add x0, x0, :lo12:.LC81 + tbz x0, 8, .L489 + ldr x2, [x20,3184] + adrp x0, .LC47 + add x0, x0, :lo12:.LC47 ldrb w2, [x2,x21] bl printk -.L424: +.L489: add x19, x19, :lo12:.LANCHOR0 mov w1, -1 - ldr x0, [x19,3200] + ldr x0, [x19,3184] strb w1, [x0,x21] - ldrb w0, [x19,2855] + ldrb w0, [x19,2847] sub w0, w0, #1 - strb w0, [x19,2855] + strb w0, [x19,2847] mov w0, 1 - b .L421 -.L423: + b .L486 +.L488: add w1, w1, 1 - b .L422 -.L435: + b .L487 +.L500: mov w0, 0 -.L421: +.L486: ldp x19, x20, [sp,16] ldr x21, [sp,32] ldp x29, x30, [sp], 64 ret .size gc_free_temp_buf, .-gc_free_temp_buf .align 2 - .global gc_static_wearleveling - .type gc_static_wearleveling, %function -gc_static_wearleveling: - stp x29, x30, [sp, -64]! + .global print_gc_debug_info + .type print_gc_debug_info, %function +print_gc_debug_info: + adrp x6, .LANCHOR0 + adrp x0, .LC48 + add x6, x6, :lo12:.LANCHOR0 + add x0, x0, :lo12:.LC48 + stp x29, x30, [sp, -16]! + add x29, sp, 0 + ldrh w1, [x6,2840] + ldrh w2, [x6,2842] + ldrh w3, [x6,3154] + ldrb w4, [x6,2778] + ldrb w5, [x6,2847] + ldrh w6, [x6,2808] + bl printk + ldp x29, x30, [sp], 16 + ret + .size print_gc_debug_info, .-print_gc_debug_info + .align 2 + .global zftl_get_gc_node + .type zftl_get_gc_node, %function +zftl_get_gc_node: + stp x29, x30, [sp, -16]! + uxth w1, w1 + adrp x2, .LANCHOR0 + cmp w1, 5 + add x29, sp, 0 + uxth w3, w0 + add x2, x2, :lo12:.LANCHOR0 + bne .L503 + ldr x0, [x2,3200] + b .L506 +.L503: + cmp w1, 2 + bne .L505 + ldr x0, [x2,3208] + b .L506 +.L505: + ldr x0, [x2,3216] +.L506: + mov w1, w3 + bl _list_get_gc_head_node.isra.5 + uxth w0, w0 + ldp x29, x30, [sp], 16 + ret + .size zftl_get_gc_node, .-zftl_get_gc_node + .align 2 + .global gc_search_src_blk + .type gc_search_src_blk, %function +gc_search_src_blk: + stp x29, x30, [sp, -112]! add x29, sp, 0 - stp x21, x22, [sp,32] - adrp x21, .LANCHOR0 - add x0, x21, :lo12:.LANCHOR0 stp x19, x20, [sp,16] + adrp x20, .LANCHOR0 + stp x21, x22, [sp,32] + uxtb w21, w0 + add x0, x20, :lo12:.LANCHOR0 stp x23, x24, [sp,48] - ldr x6, [x0,2800] - ldr w0, [x6,32] - cmp w0, 20480 - bls .L437 - ldr w1, [x6,36] - add w1, w1, w0, lsr 10 - and w0, w0, 1023 - str w1, [x6,36] - str w0, [x6,32] -.L437: - add x0, x21, :lo12:.LANCHOR0 - ldr x0, [x0,2792] - ldr w1, [x0,568] - ldr w2, [x0,12] - add w1, w1, 12959744 - add w1, w1, 256 - cmp w2, w1 - bhi .L438 - ldr w1, [x0,572] - ldr w3, [x6,36] - add w1, w1, 128 - cmp w3, w1 - bls .L436 -.L438: - ldr w1, [x6,36] - mov w8, 0 - str w1, [x0,572] - mov w20, 65535 - str w2, [x0,568] - add x0, x21, :lo12:.LANCHOR0 - mov w4, w8 - mov w2, w8 - ldrh w9, [x6,134] - mov w1, w8 - ldrh w12, [x0,2826] - mov w24, w8 - ldr x10, [x0,2840] - mov w23, w8 - mov w19, w20 - mov w3, w20 -.L440: - cmp w9, w12 - bcs .L478 - ubfiz x11, x9, 2, 16 - add x0, x10, x11 - ldrb w0, [x0,2] - tbz x0, 3, .L441 - ldrh w5, [x10,x11] - and w7, w5, 2047 - ldr w5, [x10,x11] - ubfx x0, x5, 11, 8 - b .L442 -.L441: - tst w0, 24 - bne .L443 - ldrh w5, [x10,x11] - mov w0, 65535 - and w7, w5, 2047 - b .L442 -.L443: - ldr w5, [x10,x11] - ubfx x0, x5, 11, 8 -.L464: - cmp w19, w0 + stp x25, x26, [sp,64] + stp x27, x28, [sp,80] + uxtb w24, w1 + uxtb w22, w2 + ldr x1, [x0,80] + add x1, x1, x21, sxtw 1 + ldrh w19, [x1,120] + cbnz w19, .L552 + cbnz w21, .L510 + adrp x26, .LC49 + strh w21, [x0,3224] + mov w19, w21 + mov w25, w21 + uxth w23, w22 + mov w27, 65535 + adrp x28, .LANCHOR2 + add x26, x26, :lo12:.LC49 +.L511: + cmp w25, w23 + bcs .L516 + add x3, x20, :lo12:.LANCHOR0 + mov w1, 3 + str x3, [x29,96] + ldrh w2, [x3,3224] + str x2, [x29,104] + mov w0, w2 + bl zftl_get_gc_node + uxth w1, w0 + ldr x2, [x29,104] + cmp w1, w27 + ldr x3, [x29,96] + mov w4, w1 add w2, w2, 1 - csel w19, w19, w0, cc - cmp w23, w0 - add w4, w4, w0 - csel w0, w23, w0, hi uxth w2, w2 - uxth w19, w19 - uxth w23, w0 -.L465: - add w9, w9, 1 - uxth w9, w9 - b .L440 -.L478: - ldrh w0, [x6,96] - cmp w0, w24 - bcs .L445 - strh w24, [x6,96] -.L445: - ldrh w0, [x6,98] - cmp w0, w23 - bcs .L446 - strh w23, [x6,98] -.L446: - adrp x5, .LANCHOR2 - add x0, x5, :lo12:.LANCHOR2 - mov x22, x5 - udiv w3, w8, w1 - strh w3, [x6,88] + strh w2, [x3,3224] + beq .L512 + add x0, x28, :lo12:.LANCHOR2 + uxtw x5, w1 ldr w0, [x0,400] - udiv w4, w4, w2 - strh w4, [x6,90] - tbz x0, 8, .L447 - adrp x0, .LC82 - uxth w3, w3 - add x0, x0, :lo12:.LC82 - uxth w4, w4 - bl printk -.L447: - add x5, x22, :lo12:.LANCHOR2 - ldr w0, [x5,400] - tbz x0, 8, .L448 - adrp x0, .LC83 - mov w1, w20 - add x0, x0, :lo12:.LC83 - mov w2, w19 - mov w3, w24 - mov w4, w23 + tbz x0, 8, .L513 + ldr x3, [x3,72] + mov x0, x26 + str x4, [x29,96] + str x5, [x29,104] + ldrh w3, [x3,x5,lsl 1] bl printk -.L448: - sub w0, w23, w19 - cmp w0, 64 - bgt .L449 -.L455: - cbz w19, .L456 - add x0, x21, :lo12:.LANCHOR0 - ldr x0, [x0,2800] - ldrh w0, [x0,134] - b .L457 -.L449: - add x0, x21, :lo12:.LANCHOR0 - ldr x0, [x0,2800] - ldrh w22, [x0,134] -.L452: - add x0, x21, :lo12:.LANCHOR0 - ldrh w1, [x0,2826] - cmp w1, w22 - bls .L455 - ldr x2, [x0,2840] - ubfiz x1, x22, 2, 16 - add x0, x2, x1 - ldrb w0, [x0,2] - and w3, w0, 224 - cmp w3, 224 - beq .L453 - tst w0, 192 - beq .L453 - tbz x0, 4, .L453 - ldr w0, [x2,x1] - ubfx x0, x0, 11, 8 - cmp w0, w19 - bhi .L453 - mov w1, 1 - mov w0, w22 + ldr x4, [x29,96] + ldr x5, [x29,104] +.L513: + add x1, x20, :lo12:.LANCHOR0 + ldr x0, [x1,72] + ldrh w2, [x0,x5,lsl 1] + ldrh w0, [x1,2814] + cmp w2, w0 + bcs .L514 + mov w1, 0 + mov w0, w4 mov w2, w1 bl gc_add_sblk -.L453: - add w22, w22, 1 - uxth w22, w22 - b .L452 -.L459: - ubfiz x3, x0, 2, 16 - ldr x4, [x1,2840] - ldr w1, [x4,x3] - ubfx x2, x1, 11, 8 - cmp w2, w19 - bcc .L458 - sub w2, w2, w19 - bfi w1, w2, 11, 8 - str w1, [x4,x3] -.L458: - add w0, w0, 1 - uxth w0, w0 -.L457: - add x1, x21, :lo12:.LANCHOR0 - ldrh w2, [x1,2826] + cbz w0, .L515 + add w19, w19, 1 + uxth w19, w19 + cmp w19, w23 + bls .L515 + b .L516 +.L514: + strh wzr, [x1,3224] + b .L516 +.L512: + strh wzr, [x3,3224] + b .L516 +.L515: + add w25, w25, 1 + uxth w25, w25 + b .L511 +.L516: + tbz x24, 1, .L518 + mov w26, 0 + mov w27, 65535 +.L519: + cmp w26, w23 + beq .L523 + add x25, x20, :lo12:.LANCHOR0 + mov w1, 5 + ldrh w28, [x25,3226] + mov w0, w28 + add w28, w28, 1 + bl zftl_get_gc_node + uxth w1, w0 + strh w28, [x25,3226] + cmp w1, w27 + beq .L520 + ubfiz x1, x1, 1, 16 + ldr x2, [x25,72] + ldrh w2, [x2,x1] + ldrh w1, [x25,2816] + cmp w2, w1 + bcs .L521 + mov w1, 0 + mov w2, w1 + bl gc_add_sblk + cbz w0, .L522 + add w19, w19, 1 + uxth w19, w19 + cmp w19, w23 + bls .L522 + b .L525 +.L521: + strh wzr, [x25,3226] + b .L523 +.L520: + strh wzr, [x25,3224] + b .L523 +.L522: + add w26, w26, 1 + uxth w26, w26 + b .L519 +.L523: + cmp w19, w23 + bcs .L525 + add x1, x20, :lo12:.LANCHOR0 + ldrh w0, [x1,3228] + ldrb w4, [x1,3196] + lsr w3, w0, 3 + ldrh w2, [x1,2816] + mul w0, w0, w4 + sub w0, w0, w3 cmp w2, w0 - bhi .L459 - ldr x0, [x1,2800] - ldrh w1, [x0,72] - add w1, w19, w1 - strh w1, [x0,72] - ldrh w1, [x0,98] - cmp w1, w19 - bls .L456 - sub w19, w1, w19 - strh w19, [x0,98] -.L456: - cbz w20, .L436 - add x0, x21, :lo12:.LANCHOR0 - ldr x0, [x0,2800] - ldrh w0, [x0,134] -.L461: - add x1, x21, :lo12:.LANCHOR0 - ldrh w2, [x1,2826] + bge .L518 + add w2, w3, w2 + strh w2, [x1,2816] + b .L518 +.L525: + add x1, x20, :lo12:.LANCHOR0 + ldrh w2, [x1,2816] + ldrh w0, [x1,3228] cmp w2, w0 - bls .L479 - ubfiz x3, x0, 2, 16 - ldr x4, [x1,2840] - ldrh w1, [x4,x3] - and w2, w1, 2047 - cmp w2, w20 - blt .L462 - sub w2, w2, w20 - bfi w1, w2, 0, 11 - strh w1, [x4,x3] -.L462: - add w0, w0, 1 - uxth w0, w0 - b .L461 -.L479: - ldr x0, [x1,2800] - ldrh w1, [x0,74] - add w1, w20, w1 - strh w1, [x0,74] - ldrh w1, [x0,96] - cmp w1, w20 - bls .L436 - sub w20, w1, w20 - strh w20, [x0,96] - b .L436 -.L442: - cmp w20, w7 - add w1, w1, 1 - csel w20, w20, w7, cc - cmp w24, w7 - add w8, w8, w7 - csel w7, w24, w7, hi - cmp w0, w3 - uxth w1, w1 - uxth w20, w20 - uxth w24, w7 - bne .L464 - b .L465 -.L436: + bls .L518 + sub w0, w2, w0, lsr 3 + strh w0, [x1,2816] +.L518: + tbz x24, 0, .L526 + cmp w19, w23 + bcs .L526 + mov w25, 64 + mov w27, 65535 +.L530: + add x26, x20, :lo12:.LANCHOR0 + ldrh w28, [x26,3230] + ldr x0, [x26,3208] + mov w1, w28 + add w28, w28, 1 + bl _list_get_gc_head_node.isra.5 + strh w28, [x26,3230] + cmp w27, w0, uxth + beq .L527 + mov w1, 0 + mov w2, w1 + bl gc_add_sblk + cbz w0, .L528 + add w19, w19, 1 + uxth w19, w19 + cmp w19, w23 + bcc .L528 + b .L531 +.L527: + strh wzr, [x26,3230] + b .L529 +.L528: + sub w25, w25, #1 + uxth w25, w25 + cbnz w25, .L530 +.L529: + cmp w19, w23 + bcs .L531 + add x20, x20, :lo12:.LANCHOR0 + ldrh w0, [x20,2814] + ldrh w1, [x20,3228] + cmp w1, w0 + bls .L526 + add w0, w0, 8 + b .L609 +.L531: + add x20, x20, :lo12:.LANCHOR0 + ldrh w1, [x20,3228] + ldrh w0, [x20,2814] + cmp w0, w1, lsr 1 + bls .L526 + sub w0, w0, #8 +.L609: + strh w0, [x20,2814] + b .L526 +.L510: + and w1, w24, 1 + strh w19, [x0,3230] + str w1, [x29,104] + tbz x24, 0, .L532 + ldrh w2, [x0,3232] + ldrh w1, [x0,2796] + cmp w1, w2, lsr 1 + bcc .L555 + ldrh w0, [x0,2794] + cmp w0, w1 + bls .L534 +.L555: + mov w23, 64 + mov w26, 65535 + uxth w27, w22 +.L586: + add x28, x20, :lo12:.LANCHOR0 + ldrh w25, [x28,3230] + ldr x0, [x28,3208] + mov w1, w25 + bl _list_get_gc_head_node.isra.5 + cmp w26, w0, uxth + add w2, w25, 1 + strh w2, [x28,3230] + beq .L535 + mov w1, 0 + mov w2, w21 + bl gc_add_sblk + cbz w0, .L536 + add w19, w19, 1 + uxth w19, w19 + cmp w19, w27 + bcc .L536 + b .L534 +.L535: + strh wzr, [x28,3230] + b .L534 +.L536: + sub w23, w23, #1 + uxth w23, w23 + cbnz w23, .L586 +.L534: + add x0, x20, :lo12:.LANCHOR0 + ldrh w2, [x0,3232] + ldrh w1, [x0,2796] + cmp w1, w2, lsr 1 + bls .L532 + strh wzr, [x0,3224] + mov w23, 64 + mov w26, 65535 + uxth w27, w22 +.L538: + add x25, x20, :lo12:.LANCHOR0 + mov w1, 3 + ldrh w28, [x25,3224] + mov w0, w28 + add w28, w28, 1 + bl zftl_get_gc_node + strh w28, [x25,3224] + cmp w26, w0, uxth + bne .L610 +.L532: + tbz x24, 1, .L539 + add x0, x20, :lo12:.LANCHOR0 + mov w25, 64 + mov w26, 0 + mov w27, 65535 + uxth w28, w22 + strh wzr, [x0,3226] +.L544: + add x23, x20, :lo12:.LANCHOR0 + mov w1, 5 + ldrh w2, [x23,3226] + str x2, [x29,96] + mov w0, w2 + bl zftl_get_gc_node + uxth w1, w0 + ldr x2, [x29,96] + cmp w1, w27 + add w2, w2, 1 + strh w2, [x23,3226] + beq .L540 + ubfiz x1, x1, 1, 16 + ldr x2, [x23,72] + ldrh w2, [x2,x1] + ldrh w1, [x23,2810] + cmp w2, w1 + bcs .L541 + mov w1, 0 + mov w2, w21 + bl gc_add_sblk + cbz w0, .L542 + add w19, w19, 1 + add w26, w26, 1 + uxth w19, w19 + uxth w26, w26 + cmp w19, w28 + bcc .L542 + b .L543 +.L541: + strh wzr, [x23,3226] + b .L543 +.L540: + strh wzr, [x23,3224] + b .L543 +.L542: + sub w3, w25, #1 + uxth w25, w3 + cbnz w25, .L544 +.L543: + cmp w19, w22 + bcc .L545 + cbnz w26, .L546 + add x0, x20, :lo12:.LANCHOR0 + ldrh w1, [x0,2798] + ldrh w0, [x0,3234] + cmp w1, w0 + bls .L546 +.L545: + add x0, x20, :lo12:.LANCHOR0 + ldrb w3, [x0,3196] + ldrh w2, [x0,3194] + ldrh w1, [x0,2810] + mul w2, w2, w3 + ldrh w3, [x0,3228] + sub w2, w2, w3, lsr 3 + cmp w1, w2 + bge .L539 + add w1, w1, 4 + b .L608 +.L546: + add x0, x20, :lo12:.LANCHOR0 + ldrh w2, [x0,3228] + ldrb w3, [x0,3196] + ldrh w1, [x0,2810] + mul w2, w2, w3 + cmp w1, w2 + ble .L539 + sub w1, w1, #4 +.L608: + strh w1, [x0,2810] +.L539: + ldr w0, [x29,104] + cbz w0, .L526 + add x0, x20, :lo12:.LANCHOR0 + mov w23, 64 + mov w25, 65535 + uxth w26, w22 + strh wzr, [x0,3226] +.L550: + add x27, x20, :lo12:.LANCHOR0 + mov w1, 3 + ldrh w0, [x27,3226] + bl zftl_get_gc_node + uxth w1, w0 + cmp w1, w25 + beq .L547 + ldr x2, [x27,72] + ubfiz x1, x1, 1, 16 + ldrh w1, [x2,x1] + ldrh w2, [x27,2812] + cmp w2, w1 + bls .L557 + cmp w1, 2 + bhi .L548 +.L557: + mov w1, 0 + mov w2, w21 + bl gc_add_sblk + cbz w0, .L548 + add w19, w19, 1 + uxth w19, w19 + cmp w19, w26 + bcs .L547 +.L548: + sub w23, w23, #1 + uxth w23, w23 + cbnz w23, .L550 +.L547: + cmp w19, w22 + add x20, x20, :lo12:.LANCHOR0 + bcs .L551 + ldrh w1, [x20,3228] + ldrh w0, [x20,2812] + cmp w0, w1, lsr 1 + bls .L526 + sub w0, w0, #4 + strh w0, [x20,2812] + b .L526 +.L551: + ldrh w0, [x20,3228] + ldrb w2, [x20,3196] + ldrh w1, [x20,2812] + mul w0, w0, w2 + sub w0, w0, #32 + cmp w1, w0 + bge .L526 + add w1, w1, 4 + strh w1, [x20,2812] +.L526: + adrp x0, .LANCHOR2+400 + ldr w0, [x0,#:lo12:.LANCHOR2+400] + tbz x0, 8, .L552 + adrp x0, .LC50 + mov w1, w21 + add x0, x0, :lo12:.LC50 + mov w2, w24 + mov w3, w19 + mov w4, w22 + bl printk +.L552: + mov w0, w19 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] - ldp x29, x30, [sp], 64 + ldp x25, x26, [sp,64] + ldp x27, x28, [sp,80] + ldp x29, x30, [sp], 112 ret - .size gc_static_wearleveling, .-gc_static_wearleveling +.L610: + mov w1, 0 + mov w2, w21 + bl gc_add_sblk + cbz w0, .L537 + add w19, w19, 1 + uxth w19, w19 + cmp w19, w27 + bcs .L532 +.L537: + sub w23, w23, #1 + uxth w23, w23 + cbnz w23, .L538 + b .L532 + .size gc_search_src_blk, .-gc_search_src_blk .align 2 - .global print_gc_debug_info - .type print_gc_debug_info, %function -print_gc_debug_info: - adrp x6, .LANCHOR0 - adrp x0, .LC84 - add x6, x6, :lo12:.LANCHOR0 - add x0, x0, :lo12:.LC84 + .global zftl_insert_free_list + .type zftl_insert_free_list, %function +zftl_insert_free_list: + adrp x2, .LANCHOR0 + uxth w1, w0 + add x2, x2, :lo12:.LANCHOR0 stp x29, x30, [sp, -16]! add x29, sp, 0 - ldrh w1, [x6,2848] - ldrh w2, [x6,2850] - ldrh w3, [x6,3162] - ldrb w4, [x6,2778] - ldrb w5, [x6,2855] - ldrh w6, [x6,3214] + ldr x0, [x2,64] + add x0, x0, x1, uxth 2 + ldrb w0, [x0,2] + ands w0, w0, 24 + bne .L612 + add x0, x2, 3240 + add x2, x2, 2788 + b .L615 +.L612: + cmp w0, 16 + bne .L614 + add x0, x2, 3248 + add x2, x2, 2790 + b .L615 +.L614: + add x0, x2, 3256 + add x2, x2, 2792 +.L615: + bl _insert_free_list + ldp x29, x30, [sp], 16 + ret + .size zftl_insert_free_list, .-zftl_insert_free_list + .align 2 + .global zftl_insert_data_list + .type zftl_insert_data_list, %function +zftl_insert_data_list: + adrp x2, .LANCHOR0 + uxth w1, w0 + add x2, x2, :lo12:.LANCHOR0 + stp x29, x30, [sp, -16]! + add x29, sp, 0 + ldr x0, [x2,64] + add x0, x0, x1, uxth 2 + ldrb w3, [x0,2] + and w3, w3, 224 + cmp w3, 64 + bne .L617 + add x0, x2, 3208 + add x2, x2, 2794 + b .L620 +.L617: + cmp w3, 96 + bne .L619 + add x0, x2, 3216 + add x2, x2, 2796 + b .L620 +.L619: + cmp w3, 160 + bne .L616 + add x0, x2, 3200 + add x2, x2, 2798 +.L620: + bl _insert_data_list +.L616: + ldp x29, x30, [sp], 16 + ret + .size zftl_insert_data_list, .-zftl_insert_data_list + .align 2 + .global zftl_get_free_sblk + .type zftl_get_free_sblk, %function +zftl_get_free_sblk: + stp x29, x30, [sp, -48]! + uxth w4, w0 + add x29, sp, 0 + str x21, [sp,32] + uxth w21, w1 + stp x19, x20, [sp,16] + cmp w21, 5 + adrp x19, .LANCHOR0 + add x2, x19, :lo12:.LANCHOR0 + bne .L622 + ldrh w1, [x2,2790] + ldrh w0, [x2,2792] + cmp w1, w0 + bls .L623 + add x0, x2, 3248 + mov w1, w4 + add x2, x2, 2790 + b .L626 +.L623: + add x2, x19, :lo12:.LANCHOR0 + mov w1, w4 + add x0, x2, 3256 + add x2, x2, 2792 + b .L626 +.L622: + ldrh w1, [x2,2788] + ldrh w0, [x2,2792] + cmp w1, w0 + bls .L623 + add x0, x2, 3240 + mov w1, w4 + add x2, x2, 2788 +.L626: + bl _list_pop_index_node + uxth w20, w0 + mov w0, 65535 + cmp w20, w0 + bne .L625 + add x19, x19, :lo12:.LANCHOR0 + adrp x0, .LC51 + add x0, x0, :lo12:.LC51 + mov w1, w20 + mov w2, w21 + ldr x3, [x19,3240] + ldrh w4, [x19,2788] + ldrh w5, [x19,2792] bl printk +.L625: + mov w0, w20 + ldr x21, [sp,32] + ldp x19, x20, [sp,16] + ldp x29, x30, [sp], 48 + ret + .size zftl_get_free_sblk, .-zftl_get_free_sblk + .align 2 + .global zftl_remove_data_node + .type zftl_remove_data_node, %function +zftl_remove_data_node: + adrp x2, .LANCHOR0 + uxth w1, w0 + add x2, x2, :lo12:.LANCHOR0 + stp x29, x30, [sp, -16]! + add x29, sp, 0 + ldr x0, [x2,64] + add x0, x0, x1, uxth 2 + ldrb w3, [x0,2] + and w3, w3, 224 + cmp w3, 64 + bne .L628 + add x0, x2, 3208 + add x2, x2, 2794 + b .L631 +.L628: + cmp w3, 96 + bne .L630 + add x0, x2, 3216 + add x2, x2, 2796 + b .L631 +.L630: + cmp w3, 160 + bne .L627 + add x0, x2, 3200 + add x2, x2, 2798 +.L631: + bl _list_remove_node +.L627: ldp x29, x30, [sp], 16 ret - .size print_gc_debug_info, .-print_gc_debug_info + .size zftl_remove_data_node, .-zftl_remove_data_node + .align 2 + .global zftl_remove_free_node + .type zftl_remove_free_node, %function +zftl_remove_free_node: + adrp x2, .LANCHOR0 + uxth w1, w0 + add x2, x2, :lo12:.LANCHOR0 + stp x29, x30, [sp, -16]! + add x29, sp, 0 + ldr x0, [x2,64] + add x0, x0, x1, uxth 2 + ldrb w0, [x0,2] + ands w0, w0, 24 + bne .L633 + add x0, x2, 3240 + add x2, x2, 2788 + b .L636 +.L633: + cmp w0, 16 + bne .L635 + add x0, x2, 3248 + add x2, x2, 2790 + b .L636 +.L635: + add x0, x2, 3256 + add x2, x2, 2792 +.L636: + bl _list_remove_node + ldp x29, x30, [sp], 16 + ret + .size zftl_remove_free_node, .-zftl_remove_free_node + .align 2 + .global zftl_list_update_data_list + .type zftl_list_update_data_list, %function +zftl_list_update_data_list: + adrp x2, .LANCHOR0 + uxth w1, w0 + add x2, x2, :lo12:.LANCHOR0 + stp x29, x30, [sp, -16]! + add x29, sp, 0 + ldr x0, [x2,64] + add x0, x0, x1, uxth 2 + ldrb w3, [x0,2] + and w3, w3, 224 + cmp w3, 64 + bne .L638 + add x0, x2, 3208 + add x2, x2, 2794 + b .L641 +.L638: + cmp w3, 96 + bne .L640 + add x0, x2, 3216 + add x2, x2, 2796 + b .L641 +.L640: + cmp w3, 160 + bne .L637 + add x0, x2, 3200 + add x2, x2, 2798 +.L641: + bl _list_update_data_list +.L637: + ldp x29, x30, [sp], 16 + ret + .size zftl_list_update_data_list, .-zftl_list_update_data_list + .align 2 + .global print_list_info + .type print_list_info, %function +print_list_info: + sub sp, sp, #112 + stp x29, x30, [sp,32] + add x29, sp, 32 + stp x19, x20, [sp,48] + mov x19, x0 + adrp x0, .LC52 + stp x21, x22, [sp,64] + stp x23, x24, [sp,80] + stp x25, x26, [sp,96] + add x0, x0, :lo12:.LC52 + ldrh w2, [x1] + ldr x1, [x19] + bl printk + ldr x19, [x19] + cbz x19, .L642 + mov x22, -6148914691236517206 + adrp x23, .LC53 + mov w20, 0 + adrp x25, .LANCHOR0 + add x22, x22, 1 + add x23, x23, :lo12:.LC53 + mov w26, 65535 + mov w24, 6 +.L645: + add x21, x25, :lo12:.LANCHOR0 + ldrh w3, [x19] + ldrh w4, [x19,2] + ldrh w5, [x19,4] + ldr x2, [x21,8] + ldr x1, [x21,64] + sub x2, x19, x2 + asr x2, x2, 1 + mul x2, x2, x22 + and x8, x2, 65535 + lsl x0, x8, 2 + uxth w2, w2 + add x6, x1, x0 + ldrb w7, [x6,2] + ldr w6, [x1,x0] + ubfx x6, x6, 11, 8 + str w6, [sp] + ubfx x6, x7, 5, 3 + ubfx x7, x7, 3, 2 + ldrh w0, [x1,x0] + mov w1, w20 + and w0, w0, 2047 + str w0, [sp,8] + ldr x0, [x21,72] + ldrh w0, [x0,x8,lsl 1] + str w0, [sp,16] + mov x0, x23 + bl printk + ldrh w19, [x19] + cmp w19, w26 + beq .L642 + add w20, w20, 1 + ldr x0, [x21,8] + umull x19, w19, w24 + cmp w20, 33 + add x19, x0, x19 + bne .L645 +.L642: + sub sp, x29, #32 + ldp x19, x20, [sp,48] + ldp x21, x22, [sp,64] + ldp x23, x24, [sp,80] + ldp x25, x26, [sp,96] + ldp x29, x30, [sp,32] + add sp, sp, 112 + ret + .size print_list_info, .-print_list_info + .align 2 + .global dump_all_list_info + .type dump_all_list_info, %function +dump_all_list_info: + stp x29, x30, [sp, -32]! + add x29, sp, 0 + str x19, [sp,16] + adrp x19, .LANCHOR0 + add x19, x19, :lo12:.LANCHOR0 + add x0, x19, 3240 + add x1, x19, 2788 + bl print_list_info + add x0, x19, 3248 + add x1, x19, 2790 + bl print_list_info + add x0, x19, 3256 + add x1, x19, 2792 + bl print_list_info + add x0, x19, 3208 + add x1, x19, 2794 + bl print_list_info + add x0, x19, 3216 + add x1, x19, 2796 + bl print_list_info + add x0, x19, 3200 + add x1, x19, 2798 + bl print_list_info + ldr x19, [sp,16] + ldp x29, x30, [sp], 32 + ret + .size dump_all_list_info, .-dump_all_list_info + .align 2 + .global zftl_proc_ftl_read + .type zftl_proc_ftl_read, %function +zftl_proc_ftl_read: + stp x29, x30, [sp, -32]! + add x29, sp, 0 + str x19, [sp,16] + bl ftl_print_info_to_buf + mov w19, w0 + bl dump_all_list_info + mov w0, 200 + bl msleep + mov w0, w19 + ldr x19, [sp,16] + ldp x29, x30, [sp], 32 + ret + .size zftl_proc_ftl_read, .-zftl_proc_ftl_read .align 2 .global ftl_get_blk_list_in_sblk .type ftl_get_blk_list_in_sblk, %function ftl_get_blk_list_in_sblk: - adrp x6, .LANCHOR0 + adrp x7, .LANCHOR0 uxth w0, w0 - add x2, x6, :lo12:.LANCHOR0 - mov w11, 21 - ldr x2, [x2,2840] + add x2, x7, :lo12:.LANCHOR0 + mov w12, 21 + ldr x2, [x2,64] add x2, x2, x0, uxth 2 - ldrb w10, [x2,3] + ldrb w11, [x2,3] mov w2, 0 - mov w5, w2 -.L482: - add x7, x6, :lo12:.LANCHOR0 - ldrb w3, [x7,3212] - cmp w5, w3 - bge .L488 - asr w3, w10, w5 - tbnz x3, 0, .L483 - ldrb w4, [x7,3216] - sbfiz x9, x2, 1, 32 - ldrh w3, [x7,3218] - sdiv w8, w5, w4 - sub w3, w11, w3 - lsl w3, w8, w3 - madd w3, w0, w4, w3 - uxth w3, w3 - strh w3, [x1,x9] - ldrb w4, [x7,3216] - cmp w4, 1 - bls .L484 - and w4, w5, 1 - add w3, w3, w4 - strh w3, [x1,x9] -.L484: + mov w6, w2 +.L652: + add x8, x7, :lo12:.LANCHOR0 + ldrb w3, [x8,3196] + cmp w6, w3 + bge .L658 + asr w3, w11, w6 + tbnz x3, 0, .L653 + ldrb w5, [x8,3264] + sbfiz x10, x2, 1, 32 + ldrh w3, [x8,3266] + sdiv w9, w6, w5 + sub w3, w12, w3 + lsl w3, w9, w3 + madd w3, w0, w5, w3 + uxth w4, w3 + strh w4, [x1,x10] + ldrb w3, [x8,3264] + cmp w3, 1 + bls .L654 + sub w3, w3, #1 + and w3, w6, w3 + add w3, w4, w3 + strh w3, [x1,x10] +.L654: add w2, w2, 1 -.L483: - add w5, w5, 1 - b .L482 -.L488: +.L653: + add w6, w6, 1 + b .L652 +.L658: mov w0, w2 mov w4, -1 -.L486: - add x3, x6, :lo12:.LANCHOR0 - ldrb w3, [x3,3212] +.L656: + add x3, x7, :lo12:.LANCHOR0 + ldrb w3, [x3,3196] cmp w2, w3 - bge .L489 + bge .L659 strh w4, [x1,w2,sxtw 1] add w2, w2, 1 - b .L486 -.L489: + b .L656 +.L659: ret .size ftl_get_blk_list_in_sblk, .-ftl_get_blk_list_in_sblk .align 2 - .global ftl_alloc_sblk - .type ftl_alloc_sblk, %function -ftl_alloc_sblk: -.L491: - stp x29, x30, [sp, -64]! - mov w6, 2 - mov w8, 0 - add x29, sp, 0 - stp x21, x22, [sp,32] - adrp x21, .LANCHOR0 - mov w22, w0 - add x0, x21, :lo12:.LANCHOR0 - str x23, [sp,48] - stp x19, x20, [sp,16] - cmp w22, 5 - mov w19, 65535 - ldrh w10, [x0,2826] - csel w23, wzr, w6, ne - ldr x4, [x0,2800] - cmp w22, 5 - ldr x9, [x0,2840] - csel w6, w6, wzr, ne - mov w12, w10 - mov w5, w19 - mov w11, w19 -.L506: - ldrh w7, [x4,132] - mov w1, w7 -.L492: - cmp w1, w12 - bge .L518 - sbfiz x0, x1, 2, 32 - add x20, x9, x0 - ldrb w3, [x20,2] - tst w3, 224 - bne .L493 - ubfx x3, x3, 3, 2 - cmp w3, w6 - beq .L493 - cbz w23, .L494 - ldr w3, [x9,x0] - ldrh w2, [x4,72] - ldrh w0, [x4,90] - ubfx x3, x3, 11, 8 - add w2, w3, w2 - add w0, w0, 1 - cmp w2, w0 - ble .L495 - uxth w3, w3 - cmp w5, w3 - bls .L493 - uxth w19, w1 - mov w5, w3 - b .L493 -.L494: - ldrh w3, [x9,x0] - ldrh w2, [x4,74] - ldrh w0, [x4,88] - and w3, w3, 2047 - add w2, w3, w2 - add w0, w0, 1 - cmp w2, w0 - ble .L495 - cmp w5, w3 - ble .L493 - mov w5, w3 - uxth w19, w1 - b .L493 -.L495: - uxth w19, w1 -.L496: - adrp x0, .LANCHOR2+400 - ldr w0, [x0,#:lo12:.LANCHOR2+400] - tbz x0, 12, .L497 - ldrb w3, [x20,2] - adrp x0, .LC85 - ldrb w4, [x20,3] - add x0, x0, :lo12:.LC85 - mov w1, w19 - mov w2, w22 - ubfx x3, x3, 5, 3 - bl printk -.L497: - ldrb w1, [x20,2] - add x21, x21, :lo12:.LANCHOR0 - bfi w1, w22, 5, 3 - ubfx x0, x1, 3, 2 - orr w0, w23, w0 - bfi w1, w0, 3, 2 - strb w1, [x20,2] - ldr x1, [x21,2800] - strh w19, [x1,132] - ldrb w0, [x20,2] - tbz x0, 3, .L498 - ldrh w0, [x1,116] - sub w0, w0, #1 - strh w0, [x1,116] - b .L499 -.L498: - tst w0, 24 - bne .L500 - ldrh w0, [x1,114] - sub w0, w0, #1 - strh w0, [x1,114] - b .L499 -.L500: - ldrh w0, [x1,118] - sub w0, w0, #1 - strh w0, [x1,118] -.L499: - cmp w22, 5 - bne .L501 - ldrh w0, [x1,120] - add w0, w0, 1 - strh w0, [x1,120] - b .L511 -.L501: - cmp w22, 2 - bne .L503 - ldrh w0, [x1,122] - add w0, w0, 1 - strh w0, [x1,122] - b .L511 -.L503: - cmp w22, 3 - bne .L511 - ldrh w0, [x1,124] - add w0, w0, 1 - strh w0, [x1,124] - b .L511 -.L493: - add w1, w1, 1 - b .L492 -.L518: - sub w3, w1, w7 - ldrh w0, [x4,134] - add w1, w8, w3 - uxth w8, w1 - sub w1, w10, w0 - cmp w8, w1 - blt .L505 - cmp w19, w11 - beq .L505 - add x0, x21, :lo12:.LANCHOR0 - ldr x20, [x0,2840] - add x20, x20, x19, uxtw 2 - b .L496 -.L505: - strh w0, [x4,132] - mov w12, w7 - b .L506 -.L511: - mov w0, w19 - ldr x23, [sp,48] - ldp x19, x20, [sp,16] - ldp x21, x22, [sp,32] - ldp x29, x30, [sp], 64 - ret - .size ftl_alloc_sblk, .-ftl_alloc_sblk - .align 2 .global ftl_free_sblk .type ftl_free_sblk, %function ftl_free_sblk: - stp x29, x30, [sp, -16]! - uxth x0, w0 - mov w1, 65535 - cmp w0, w1 + stp x29, x30, [sp, -32]! add x29, sp, 0 - bne .L520 - adrp x1, .LANCHOR1 - adrp x0, .LC34 - add x1, x1, :lo12:.LANCHOR1 - add x0, x0, :lo12:.LC34 - add x1, x1, 1080 - mov w2, 313 - bl printk -.L521: - b .L521 -.L520: - adrp x1, .LANCHOR0 - lsl x3, x0, 2 - add x5, x1, :lo12:.LANCHOR0 - ldr x7, [x5,2840] - add x4, x7, x3 - ldrb w2, [x4,2] - ands w6, w2, 224 - bne .L522 - adrp x1, .LANCHOR1 - adrp x0, .LC34 - add x1, x1, :lo12:.LANCHOR1 - add x0, x0, :lo12:.LC34 - add x1, x1, 1080 - mov w2, 316 - bl printk -.L523: - b .L523 -.L522: - cmp w6, 160 - ubfx x2, x2, 3, 2 - bne .L524 - ldr x6, [x5,2800] - ldrh w5, [x6,120] - sub w5, w5, #1 - strh w5, [x6,120] - b .L525 -.L524: - cmp w6, 64 - bne .L526 - ldr x6, [x5,2800] - ldrh w5, [x6,122] - sub w5, w5, #1 - strh w5, [x6,122] - b .L525 -.L526: - cmp w6, 96 - bne .L525 - ldr x6, [x5,2800] - ldrh w5, [x6,124] - sub w5, w5, #1 - strh w5, [x6,124] -.L525: - tbz x2, 0, .L527 - add x6, x1, :lo12:.LANCHOR0 - ldr x2, [x6,2800] - ldrh w5, [x2,116] - ldrh w8, [x2,74] - add w5, w5, 1 - strh w5, [x2,116] - ldrh w9, [x2,72] - ldr w5, [x7,x3] - ldrh w7, [x7,x3] - ubfx x5, x5, 11, 8 - ubfx x7, x7, 0, 11 - add w7, w7, w8 - ldrh w8, [x6,3220] - cmp w8, w7, uxth - bcc .L528 - b .L535 -.L527: - cbnz w2, .L530 - add x2, x1, :lo12:.LANCHOR0 - ldr x4, [x2,2800] - ldrh w2, [x4,114] - add w2, w2, 1 - strh w2, [x4,114] - b .L532 -.L530: - add x2, x1, :lo12:.LANCHOR0 - ldr x4, [x2,2800] - ldrh w2, [x4,118] - add w2, w2, 1 - strh w2, [x4,118] - b .L532 -.L535: - add w5, w9, w5 - ldrh w6, [x6,3222] - cmp w6, w5, uxth - bcs .L532 -.L528: - ldrh w5, [x2,118] - ldrh w6, [x2,120] - add w6, w6, w5 - add x5, x1, :lo12:.LANCHOR0 - ldrh w7, [x5,3224] - cmp w6, w7 - bge .L533 - ldrb w2, [x4,2] - mov w6, 2 - bfi w2, w6, 3, 2 - strb w2, [x4,2] - ldr x2, [x5,2800] - ldrh w4, [x2,116] - sub w4, w4, #1 - strh w4, [x2,116] - ldrh w4, [x2,118] - add w4, w4, 1 - strh w4, [x2,118] - b .L532 -.L533: - ldrh w6, [x2,122] - ldrh w2, [x2,114] - add w2, w6, w2 - ldrh w6, [x5,3226] - cmp w2, w6 - bge .L532 - ldrb w2, [x4,2] - and w2, w2, -25 - strb w2, [x4,2] - ldr x2, [x5,2800] - ldrh w4, [x2,116] - sub w4, w4, #1 - strh w4, [x2,116] - ldrh w4, [x2,114] - add w4, w4, 1 - strh w4, [x2,114] -.L532: - add x1, x1, :lo12:.LANCHOR0 - ldr x2, [x1,2840] - add x3, x2, x3 - ldrb w2, [x3,2] + str x19, [sp,16] + uxth x19, w0 + mov w0, w19 + bl zftl_remove_data_node + mov w0, w19 + bl zftl_insert_free_list + adrp x0, .LANCHOR0 + add x0, x0, :lo12:.LANCHOR0 + ldr x1, [x0,64] + add x1, x1, x19, lsl 2 + ldrb w2, [x1,2] and w2, w2, 31 - strb w2, [x3,2] - ldr x1, [x1,2832] - strh wzr, [x1,x0,lsl 1] - ldp x29, x30, [sp], 16 + strb w2, [x1,2] + ldr x0, [x0,72] + strh wzr, [x0,x19,lsl 1] + ldr x19, [sp,16] + ldp x29, x30, [sp], 32 ret .size ftl_free_sblk, .-ftl_free_sblk .align 2 @@ -4018,136 +4528,136 @@ gc_free_src_blk: str x27, [sp,80] stp x23, x24, [sp,48] add x21, x21, :lo12:.LANCHOR0 - adrp x23, .LC86 + adrp x23, .LC54 stp x19, x20, [sp,16] stp x25, x26, [sp,64] mov w20, 0 - add x22, x21, 2848 - add x23, x23, :lo12:.LC86 + add x22, x21, 2840 + add x23, x23, :lo12:.LC54 adrp x24, .LANCHOR2 -.L537: +.L662: ldrh w0, [x22,56] adrp x26, .LANCHOR0 cmp w0, w20 - bls .L573 + bls .L698 add x0, x22, x20, sxtw 1 ldrh w25, [x0,58] - ldr x0, [x21,2832] + ldr x0, [x21,72] lsl x27, x25, 1 mov x19, x25 ldrh w2, [x0,x27] - cbz w2, .L538 + cbz w2, .L663 mov x0, x23 mov w1, w25 bl printk -.L538: +.L663: add x0, x26, :lo12:.LANCHOR0 - ldr x1, [x0,2832] + ldr x1, [x0,72] ldrh w1, [x1,x27] - cbnz w1, .L539 - ldr x0, [x0,2840] + cbnz w1, .L664 + ldr x0, [x0,64] add x25, x0, x25, lsl 2 add x0, x24, :lo12:.LANCHOR2 ldr w0, [x0,400] - tbz x0, 8, .L540 + tbz x0, 8, .L665 ldrb w2, [x25,2] - adrp x0, .LC87 - add x0, x0, :lo12:.LC87 + adrp x0, .LC55 + add x0, x0, :lo12:.LC55 mov w1, w19 ubfx x2, x2, 5, 3 bl printk -.L540: +.L665: ldrb w0, [x25,2] tst w0, 192 - beq .L554 + beq .L679 and w0, w0, 224 cmp w0, 224 - bne .L541 -.L554: + bne .L666 +.L679: adrp x1, .LANCHOR1 - adrp x0, .LC34 + adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR1 - add x0, x0, :lo12:.LC34 - add x1, x1, 1096 - mov w2, 756 + add x0, x0, :lo12:.LC0 + add x1, x1, 1088 + mov w2, 770 bl printk -.L543: - b .L543 -.L541: +.L668: + b .L668 +.L666: mov w0, w19 add x26, x26, :lo12:.LANCHOR0 bl ftl_free_sblk - ldr x2, [x26,2792] + ldr x2, [x26,80] ldrh w0, [x2,124] - cbz w0, .L544 + cbz w0, .L669 mov x1, 0 -.L546: +.L671: add x4, x2, x1, lsl 1 mov w3, w1 ldrh w4, [x4,392] cmp w4, w19 - bne .L545 + bne .L670 add x1, x2, x3, sxtw 1 mov w3, -1 strh w3, [x1,392] sub w0, w0, #1 strh w0, [x2,124] - b .L544 -.L545: + b .L669 +.L670: add x1, x1, 1 cmp x1, 64 - bne .L546 -.L544: + bne .L671 +.L669: ldrh w0, [x2,120] - cbz w0, .L547 + cbz w0, .L672 mov x1, 0 -.L549: +.L674: add x4, x2, x1, lsl 1 mov w3, w1 ldrh w4, [x4,136] cmp w4, w19 - bne .L548 + bne .L673 add x1, x2, x3, sxtw 1 mov w3, -1 strh w3, [x1,136] sub w0, w0, #1 strh w0, [x2,120] - b .L547 -.L548: + b .L672 +.L673: add x1, x1, 1 cmp x1, 64 - bne .L549 -.L547: + bne .L674 +.L672: ldrh w0, [x2,122] - cbz w0, .L550 + cbz w0, .L675 mov x1, 0 -.L552: +.L677: add x4, x2, x1, lsl 1 mov w3, w1 ldrh w4, [x4,264] cmp w4, w19 - bne .L551 + bne .L676 add x1, x2, x3, sxtw 1 mov w3, -1 strh w3, [x1,264] sub w0, w0, #1 strh w0, [x2,122] - b .L550 -.L551: + b .L675 +.L676: add x1, x1, 1 cmp x1, 64 - bne .L552 - b .L550 -.L539: + bne .L677 + b .L675 +.L664: mov w0, w19 mov w1, 1 mov w2, 0 bl gc_add_sblk -.L550: +.L675: add w20, w20, 1 uxth w20, w20 - b .L537 -.L573: + b .L662 +.L698: strh wzr, [x22,56] ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -4171,27 +4681,27 @@ ftl_erase_phy_blk: stp x19, x20, [sp,16] mov w4, 1 mov w21, w1 - ldrh w19, [x5,3218] + ldrh w19, [x5,3266] mov x20, x3 sub w19, w0, w19 - ldrb w0, [x5,3228] + ldrb w0, [x5,3268] asr w22, w2, w19 lsl w19, w4, w19 sub w19, w19, #1 and w19, w19, w2 sxth w19, w19 - cbz w0, .L575 - ldrh w2, [x5,3230] + cbz w0, .L700 + ldrh w2, [x5,3270] cmp w1, wzr mov w0, w22 cset w1, eq mul w2, w19, w2 bl flash_erase_block_en -.L575: +.L700: add x3, x20, :lo12:.LANCHOR0 mov w1, w21 mov w0, w22 - ldrh w2, [x3,3230] + ldrh w2, [x3,3270] mul w2, w19, w2 bl flash_erase_block_en ldp x19, x20, [sp,16] @@ -4203,87 +4713,103 @@ ftl_erase_phy_blk: .global ftl_erase_sblk .type ftl_erase_sblk, %function ftl_erase_sblk: - stp x29, x30, [sp, -128]! + stp x29, x30, [sp, -144]! add x29, sp, 0 - stp x21, x22, [sp,32] - adrp x21, .LANCHOR0 - mov w22, w1 stp x23, x24, [sp,48] - uxth w23, w0 - add x0, x21, :lo12:.LANCHOR0 + adrp x23, .LANCHOR0 + uxth w24, w0 + add x0, x23, :lo12:.LANCHOR0 stp x19, x20, [sp,16] - ubfiz x20, x23, 2, 16 + stp x21, x22, [sp,32] + stp x25, x26, [sp,64] + ubfiz x20, x24, 2, 16 + mov w22, w1 + ldr x0, [x0,64] mov w19, 0 - ldr x0, [x0,2840] add x0, x0, x20 - ldrb w24, [x0,3] -.L580: - add x2, x21, :lo12:.LANCHOR0 - ldrb w0, [x2,3232] + ldrb w25, [x0,3] +.L705: + add x2, x23, :lo12:.LANCHOR0 + ldrb w0, [x2,3272] cmp w19, w0 - bge .L587 - ldrb w0, [x2,3216] - ldrh w4, [x2,3230] - mov w2, 0 - mov w1, w2 - mul w6, w19, w0 - mul w5, w23, w0 -.L588: - cmp w1, w0 - bge .L599 - add w3, w1, w6 - asr w3, w24, w3 - tbnz x3, 0, .L581 - and w3, w1, 1 - add x7, x29, 64 - add w3, w5, w3 - mul w3, w3, w4 - str w3, [x7,w2,sxtw 2] - add w2, w2, 1 -.L581: + bge .L716 + ldrb w3, [x2,3264] + mov w21, 0 + ldrh w2, [x2,3270] + mov w1, w21 + sub w4, w3, #1 + mul w6, w19, w3 + mul w5, w24, w3 +.L717: + cmp w1, w3 + bge .L730 + add w0, w1, w6 + asr w0, w25, w0 + tbnz x0, 0, .L706 + and w0, w1, w4 + add x7, x29, 80 + add w0, w5, w0 + mul w0, w0, w2 + str w0, [x7,w21,sxtw 2] + add w21, w21, 1 +.L706: add w1, w1, 1 - b .L588 -.L599: - cmp w2, 2 - bne .L583 - add x0, x21, :lo12:.LANCHOR0 - ldrb w0, [x0,3228] - cbz w0, .L584 + b .L717 +.L730: + cmp w3, 4 + bne .L729 + mov x26, 0 +.L708: + cmp w21, w26 + ble .L711 + add x2, x29, 80 + mov w0, w19 + mov w1, w22 + ldr w2, [x2,x26,lsl 2] + add x26, x26, 1 + bl flash_erase_block_en + b .L708 +.L729: + cmp w21, 2 + bne .L712 + add x0, x23, :lo12:.LANCHOR0 + ldrb w0, [x0,3268] + cbz w0, .L713 cmp w22, wzr - ldr w2, [x29,64] - ldr w3, [x29,68] + ldr w2, [x29,80] + ldr w3, [x29,84] mov w0, w19 cset w1, eq bl flash_erase_duplane_block -.L584: - ldr w2, [x29,64] +.L713: + ldr w2, [x29,80] mov w0, w19 - ldr w3, [x29,68] + ldr w3, [x29,84] mov w1, w22 bl flash_erase_duplane_block - b .L585 -.L583: - cmp w2, 1 - bne .L585 - add x0, x21, :lo12:.LANCHOR0 - ldrb w0, [x0,3228] - cbz w0, .L586 + b .L711 +.L712: + cmp w21, 1 + bne .L711 + add x0, x23, :lo12:.LANCHOR0 + ldrb w0, [x0,3268] + cbz w0, .L715 cmp w22, wzr - ldr w2, [x29,64] + ldr w2, [x29,80] mov w0, w19 cset w1, eq bl flash_erase_block_en -.L586: - ldr w2, [x29,64] +.L715: + ldr w2, [x29,80] mov w0, w19 mov w1, w22 bl flash_erase_block_en -.L585: +.L711: add w19, w19, 1 - b .L580 -.L587: - cbnz w22, .L589 - ldr x1, [x2,2840] + b .L705 +.L716: + cbnz w22, .L718 + ldr x1, [x2,64] ldrh w0, [x1,x20] add w3, w0, 1 bfi w0, w3, 0, 11 @@ -4293,16 +4819,16 @@ ftl_erase_sblk: ldrh w3, [x0,96] add w1, w1, 1 str w1, [x0,84] - ldr x1, [x2,2840] + ldr x1, [x2,64] ldrh w1, [x1,x20] ubfx x1, x1, 0, 11 uxth w2, w1 cmp w3, w2 - bge .L591 + bge .L720 strh w1, [x0,96] - b .L591 -.L589: - ldr x3, [x2,2840] + b .L720 +.L718: + ldr x3, [x2,64] ldr w0, [x3,x20] ubfx x1, x0, 11, 8 add w1, w1, 1 @@ -4312,19 +4838,20 @@ ftl_erase_sblk: ldr w1, [x0,80] add w1, w1, 1 str w1, [x0,80] - ldr x1, [x2,2840] + ldr x1, [x2,64] ldrh w2, [x0,98] ldr w1, [x1,x20] ubfx x1, x1, 11, 8 cmp w2, w1, uxtb - bcs .L591 + bcs .L720 strh w1, [x0,98] -.L591: +.L720: mov w0, 0 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] - ldp x29, x30, [sp], 128 + ldp x25, x26, [sp,64] + ldp x29, x30, [sp], 144 ret .size ftl_erase_sblk, .-ftl_erase_sblk .align 2 @@ -4337,36 +4864,36 @@ ftl_alloc_sys_blk: ldr x1, [x0,#:lo12:.LANCHOR0+2800] ldrh w0, [x1,136] cmp w0, 63 - bls .L601 + bls .L732 strh wzr, [x1,136] -.L601: +.L732: ldrh w3, [x1,112] mov w5, 65535 - cbnz w3, .L607 + cbnz w3, .L738 adrp x1, .LANCHOR1 - adrp x0, .LC34 + adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR1 - add x0, x0, :lo12:.LC34 - add x1, x1, 1112 - mov w2, 441 + add x0, x0, :lo12:.LC0 + add x1, x1, 1104 + mov w2, 988 bl printk -.L603: - b .L603 -.L606: +.L734: + b .L734 +.L737: sxtw x4, w2 add x4, x4, 80 ldrh w0, [x1,x4,lsl 1] cmp w0, w5 - bne .L609 + bne .L740 add w2, w2, 1 -.L604: +.L735: cmp w2, 63 - ble .L606 + ble .L737 strh wzr, [x1,136] -.L607: +.L738: ldrh w2, [x1,136] - b .L604 -.L609: + b .L735 +.L740: mov w5, -1 strh w5, [x1,x4,lsl 1] strh w2, [x1,136] @@ -4386,37 +4913,37 @@ ftl_free_sys_blk: ldr x1, [x1,#:lo12:.LANCHOR0+2800] ldrh w2, [x1,138] cmp w2, 63 - bls .L611 + bls .L742 strh wzr, [x1,138] -.L611: +.L742: ldrh w3, [x1,112] mov w5, 65535 cmp w3, 63 - bls .L617 + bls .L748 adrp x1, .LANCHOR1 - adrp x0, .LC34 + adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR1 - add x0, x0, :lo12:.LC34 - add x1, x1, 1136 - mov w2, 465 + add x0, x0, :lo12:.LC0 + add x1, x1, 1128 + mov w2, 1012 bl printk -.L613: - b .L613 -.L615: +.L744: + b .L744 +.L746: add w2, w2, 1 -.L614: +.L745: cmp w2, 63 - ble .L616 + ble .L747 strh wzr, [x1,138] -.L617: +.L748: ldrh w2, [x1,138] - b .L614 -.L616: + b .L745 +.L747: sxtw x4, w2 add x4, x4, 80 ldrh w6, [x1,x4,lsl 1] cmp w6, w5 - bne .L615 + bne .L746 strh w0, [x1,x4,lsl 1] add w3, w3, 1 strh w2, [x1,138] @@ -4428,77 +4955,89 @@ ftl_free_sys_blk: .global ftl_info_data_recovery .type ftl_info_data_recovery, %function ftl_info_data_recovery: - ldrh w2, [x0] + stp x29, x30, [sp, -64]! mov w1, 65535 + add x29, sp, 0 + stp x19, x20, [sp,16] + stp x21, x22, [sp,32] + str x23, [sp,48] + ldrh w2, [x0] cmp w2, w1 - beq .L619 - adrp x1, .LANCHOR0 - ubfiz x2, x2, 2, 16 - add x5, x1, :lo12:.LANCHOR0 - ldr x4, [x5,2840] - add x6, x4, x2 - ldrb w3, [x6,2] - tst w3, 224 - bne .L619 + beq .L750 + adrp x19, .LANCHOR0 + ubfiz x20, x2, 2, 16 + add x23, x19, :lo12:.LANCHOR0 + ldr x21, [x23,64] + add x22, x21, x20 + ldrb w1, [x22,2] + tst w1, 224 + bne .L750 ldrb w0, [x0,4] - bfi w3, w0, 5, 3 - strb w3, [x6,2] - tbz x3, 3, .L623 - ldr x3, [x5,2800] - ldrh w0, [x3,116] + bfi w1, w0, 5, 3 + mov w0, w2 + strb w1, [x22,2] + bl zftl_remove_free_node + ldrb w0, [x22,2] + tbz x0, 3, .L754 + ldr x1, [x23,2800] + ldrh w0, [x1,116] sub w0, w0, #1 - strh w0, [x3,116] - b .L624 -.L623: - tst w3, 24 - ldr x3, [x5,2800] - bne .L625 - ldrh w0, [x3,114] + strh w0, [x1,116] + b .L755 +.L754: + tst w0, 24 + ldr x1, [x23,2800] + bne .L756 + ldrh w0, [x1,114] sub w0, w0, #1 - strh w0, [x3,114] - b .L624 -.L625: - ldrh w0, [x3,118] + strh w0, [x1,114] + b .L755 +.L756: + ldrh w0, [x1,118] sub w0, w0, #1 - strh w0, [x3,118] -.L624: - ldrb w0, [x6,2] + strh w0, [x1,118] +.L755: + ldrb w0, [x22,2] and w0, w0, 224 cmp w0, 160 - bne .L626 - ldr w0, [x4,x2] - add x1, x1, :lo12:.LANCHOR0 - ubfx x3, x0, 11, 8 - add w3, w3, 1 - bfi w0, w3, 11, 8 - str w0, [x4,x2] - ldr x1, [x1,2800] + bne .L757 + ldr w0, [x21,x20] + add x19, x19, :lo12:.LANCHOR0 + ubfx x1, x0, 11, 8 + add w1, w1, 1 + bfi w0, w1, 11, 8 + str w0, [x21,x20] + ldr x1, [x19,2800] ldrh w0, [x1,120] sub w0, w0, #1 strh w0, [x1,120] - b .L619 -.L626: - ldrh w3, [x4,x2] + b .L750 +.L757: + ldrh w1, [x21,x20] cmp w0, 64 - add w5, w3, 1 - bfi w3, w5, 0, 11 - strh w3, [x4,x2] - bne .L627 - add x1, x1, :lo12:.LANCHOR0 - ldr x1, [x1,2800] + add w2, w1, 1 + bfi w1, w2, 0, 11 + strh w1, [x21,x20] + bne .L758 + add x19, x19, :lo12:.LANCHOR0 + ldr x1, [x19,2800] ldrh w0, [x1,122] sub w0, w0, #1 strh w0, [x1,122] - b .L619 -.L627: + b .L750 +.L758: cmp w0, 96 - bne .L619 - add x1, x1, :lo12:.LANCHOR0 - ldr x1, [x1,2800] + bne .L750 + add x19, x19, :lo12:.LANCHOR0 + ldr x1, [x19,2800] ldrh w0, [x1,124] sub w0, w0, #1 strh w0, [x1,124] -.L619: +.L750: + ldp x19, x20, [sp,16] + ldp x21, x22, [sp,32] + ldr x23, [sp,48] + ldp x29, x30, [sp], 64 ret .size ftl_info_data_recovery, .-ftl_info_data_recovery .align 2 @@ -4510,19 +5049,19 @@ ftl_get_ppa_from_index: add x3, x2, :lo12:.LANCHOR0 stp x29, x30, [sp, -16]! add x29, sp, 0 - ldrh w0, [x3,3234] - ldr x4, [x3,2792] - ldrb w3, [x3,3212] + ldrh w0, [x3,3228] + ldr x4, [x3,80] + ldrb w3, [x3,3196] mul w0, w0, w3 cmp w1, w0 - bge .L629 + bge .L760 add x4, x4, 16 - b .L630 -.L629: + b .L761 +.L760: sub w1, w1, w0 add x4, x4, 48 uxth w1, w1 -.L630: +.L761: ldrb w3, [x4,9] sdiv w5, w1, w3 msub w1, w5, w3, w1 @@ -4530,20 +5069,20 @@ ftl_get_ppa_from_index: ldrh w0, [x1,16] mov w1, 65535 cmp w0, w1 - bne .L631 + bne .L762 adrp x1, .LANCHOR1 - adrp x0, .LC34 + adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR1 - add x0, x0, :lo12:.LC34 - add x1, x1, 1160 - mov w2, 842 + add x0, x0, :lo12:.LC0 + add x1, x1, 1152 + mov w2, 1390 bl printk -.L632: - b .L632 -.L631: +.L763: + b .L763 +.L762: add x2, x2, :lo12:.LANCHOR0 ldp x29, x30, [sp], 16 - ldrh w1, [x2,3230] + ldrh w1, [x2,3270] madd w0, w0, w1, w5 ret .size ftl_get_ppa_from_index, .-ftl_get_ppa_from_index @@ -4557,25 +5096,25 @@ lpa_hash_get_ppa: add x2, x1, x0, uxtb 1 stp x29, x30, [sp, -16]! add x29, sp, 0 - ldrh w2, [x2,3240] - ldr x4, [x1,3752] - ldr x5, [x1,3760] -.L634: + ldrh w2, [x2,3280] + ldr x4, [x1,3792] + ldr x5, [x1,3800] +.L765: cmp w2, w3 - beq .L638 + beq .L769 uxtw x1, w2 ldr w6, [x4,x1,lsl 2] cmp w6, w0 - bne .L635 + bne .L766 mov w0, w2 bl ftl_get_ppa_from_index - b .L636 -.L635: + b .L767 +.L766: ldrh w2, [x5,x1,lsl 1] - b .L634 -.L638: + b .L765 +.L769: mov w0, -1 -.L636: +.L767: ldp x29, x30, [sp], 16 ret .size lpa_hash_get_ppa, .-lpa_hash_get_ppa @@ -4589,68 +5128,68 @@ ftl_get_new_free_page: add x29, sp, 0 ldrh w0, [x0] cmp w0, w4 - bne .L640 + bne .L771 adrp x1, .LANCHOR1 - adrp x0, .LC34 + adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR1 - add x0, x0, :lo12:.LC34 - add x1, x1, 1184 - mov w2, 955 + add x0, x0, :lo12:.LC0 + add x1, x1, 1176 + mov w2, 1505 bl printk -.L641: - b .L641 -.L640: +.L772: + b .L772 +.L771: adrp x2, .LANCHOR0 ldrh w3, [x1,2] add x5, x2, :lo12:.LANCHOR0 - ldrh w0, [x5,3234] + ldrh w0, [x5,3228] cmp w3, w0 - bne .L642 + bne .L773 adrp x1, .LANCHOR1 - adrp x0, .LC34 + adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR1 - add x0, x0, :lo12:.LC34 - add x1, x1, 1184 - mov w2, 956 + add x0, x0, :lo12:.LC0 + add x1, x1, 1176 + mov w2, 1506 bl printk -.L643: - b .L643 -.L642: +.L774: + b .L774 +.L773: ldrh w3, [x1,6] - cbnz w3, .L644 + cbnz w3, .L775 adrp x1, .LANCHOR1 - adrp x0, .LC34 + adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR1 - add x0, x0, :lo12:.LC34 - add x1, x1, 1184 - mov w2, 957 + add x0, x0, :lo12:.LC0 + add x1, x1, 1176 + mov w2, 1507 bl printk -.L645: - b .L645 -.L644: +.L776: + b .L776 +.L775: ldrb w0, [x1,5] - ldrb w5, [x5,3212] + ldrb w5, [x5,3196] add x0, x0, 8 ldrh w0, [x1,x0,lsl 1] -.L646: +.L777: cmp w0, w4 - bne .L650 + bne .L781 ldrb w0, [x1,5] add w0, w0, 1 uxtb w0, w0 strb w0, [x1,5] cmp w0, w5 - bne .L647 + bne .L778 ldrh w0, [x1,2] strb wzr, [x1,5] add w0, w0, 1 strh w0, [x1,2] -.L647: +.L778: ldrb w0, [x1,5] add x0, x0, 8 ldrh w0, [x1,x0,lsl 1] - b .L646 -.L650: + b .L777 +.L781: sub w3, w3, #1 strh w3, [x1,6] ldrh w3, [x1,10] @@ -4659,19 +5198,19 @@ ftl_get_new_free_page: add w3, w3, 1 strh w3, [x1,10] ldrb w3, [x1,5] - ldrh w5, [x2,3230] + ldrh w5, [x2,3270] add w3, w3, 1 - ldrb w2, [x2,3212] + ldrb w2, [x2,3196] uxtb w3, w3 strb w3, [x1,5] mul w0, w0, w5 cmp w2, w3 orr w0, w0, w4 - bne .L649 + bne .L780 add w4, w4, 1 strb wzr, [x1,5] strh w4, [x1,2] -.L649: +.L780: ldp x29, x30, [sp], 16 ret .size ftl_get_new_free_page, .-ftl_get_new_free_page @@ -4688,17 +5227,17 @@ ftl_ext_alloc_new_blk: mov w2, 65533 sub w1, w1, #1 cmp w2, w1, uxth - bcs .L652 + bcs .L783 adrp x1, .LANCHOR1 - adrp x0, .LC34 + adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR1 - add x0, x0, :lo12:.LC34 - add x1, x1, 1208 - mov w2, 988 + add x0, x0, :lo12:.LC0 + add x1, x1, 1200 + mov w2, 1538 bl printk -.L653: - b .L653 -.L652: +.L784: + b .L784 +.L783: adrp x19, .LANCHOR0 mov w1, 0 add x19, x19, :lo12:.LANCHOR0 @@ -4720,52 +5259,52 @@ ftl_ext_alloc_new_blk: ftl_total_vpn_update: adrp x1, .LANCHOR0 add x3, x1, :lo12:.LANCHOR0 - ldrh w2, [x3,3768] - cbnz w0, .L655 + ldrh w2, [x3,3808] + cbnz w0, .L786 cmp w2, 4 - bhi .L655 + bhi .L786 add w2, w2, 1 - strh w2, [x3,3768] - b .L654 -.L655: + strh w2, [x3,3808] + b .L785 +.L786: add x0, x1, :lo12:.LANCHOR0 mov w9, 65535 - strh wzr, [x0,3768] - ldrh w6, [x0,2826] - ldr x7, [x0,2832] - ldr x8, [x0,2840] + strh wzr, [x0,3808] + ldrh w6, [x0,56] + ldr x7, [x0,72] + ldr x8, [x0,64] mov x0, 0 mov w2, w0 mov w3, w0 -.L657: +.L788: cmp w6, w0, uxth - bls .L665 + bls .L796 ldrh w4, [x7,x0,lsl 1] cmp w4, w9 - beq .L658 + beq .L789 add x5, x8, x0, lsl 2 ldrb w5, [x5,2] and w5, w5, 224 cmp w5, 160 - bne .L659 + bne .L790 add w2, w2, w4 - b .L658 -.L659: + b .L789 +.L790: add w3, w3, w4 -.L658: +.L789: add x0, x0, 1 - b .L657 -.L665: + b .L788 +.L796: add x1, x1, :lo12:.LANCHOR0 - ldr x0, [x1,2792] + ldr x0, [x1,80] ldr x1, [x1,2800] str w3, [x0,524] str w2, [x0,528] ldrh w1, [x1,120] - cbz w1, .L654 + cbz w1, .L785 udiv w2, w2, w1 str w2, [x0,532] -.L654: +.L785: ret .size ftl_total_vpn_update, .-ftl_total_vpn_update .align 2 @@ -4779,12 +5318,20 @@ ftl_debug_info_fill: .global ftl_vpn_update .type ftl_vpn_update, %function ftl_vpn_update: - adrp x1, .LANCHOR0+2832 - ubfiz x0, x0, 1, 16 - ldr x1, [x1,#:lo12:.LANCHOR0+2832] - ldrh w0, [x1,x0] + stp x29, x30, [sp, -32]! + add x29, sp, 0 + str x19, [sp,16] + uxth w19, w0 + mov w0, w19 + ubfiz x19, x19, 1, 16 + bl zftl_list_update_data_list + adrp x0, .LANCHOR0+72 + ldr x0, [x0,#:lo12:.LANCHOR0+72] + ldrh w0, [x0,x19] + ldr x19, [sp,16] cmp w0, wzr cset w0, eq + ldp x29, x30, [sp], 32 ret .size ftl_vpn_update, .-ftl_vpn_update .align 2 @@ -4798,42 +5345,42 @@ ftl_vpn_decrement: str x19, [sp,16] cmp w1, w0 adrp x2, .LANCHOR0 - beq .L669 + beq .L800 add x0, x2, :lo12:.LANCHOR0 ubfiz x3, x1, 1, 16 - ldr x0, [x0,2832] + ldr x0, [x0,72] ldrh w19, [x0,x3] - cbnz w19, .L670 - adrp x0, .LC88 + cbnz w19, .L801 + adrp x0, .LC56 mov w2, w19 - add x0, x0, :lo12:.LC88 + add x0, x0, :lo12:.LC56 bl printk - b .L674 -.L670: + b .L805 +.L801: sub w19, w19, #1 strh w19, [x0,x3] -.L669: +.L800: add x19, x2, :lo12:.LANCHOR0 mov w0, 0 - ldrh w2, [x19,3770] + ldrh w2, [x19,3810] cmp w2, w1 - beq .L671 + beq .L802 mov w0, 65535 cmp w2, w0 - bne .L672 - strh w1, [x19,3770] -.L674: + bne .L803 + strh w1, [x19,3810] +.L805: mov w0, 0 - b .L671 -.L672: + b .L802 +.L803: mov w0, w2 str x1, [x29,40] bl ftl_vpn_update cmp w0, wzr ldr x1, [x29,40] cset w0, ne - strh w1, [x19,3770] -.L671: + strh w1, [x19,3810] +.L802: ldr x19, [sp,16] ldp x29, x30, [sp], 48 ret @@ -4846,73 +5393,73 @@ lpa_hash_update_ppa: uxtb w5, w0 add x6, x3, :lo12:.LANCHOR0 uxth w2, w2 - add x4, x6, 3240 + add x4, x6, 3280 stp x29, x30, [sp, -16]! add x29, sp, 0 - ldr x8, [x6,3752] - ldr x12, [x6,3760] + ldr x8, [x6,3792] + ldr x12, [x6,3800] mov w6, 65535 ldrh w4, [x4,w5,sxtw 1] mov w11, w6 -.L676: +.L807: cmp w4, w11 - beq .L680 + beq .L811 uxtw x9, w4 uxth x7, w4 lsl x10, x9, 2 add x13, x8, x10 ldr w10, [x8,x10] cmp w10, w0 - bne .L677 + bne .L808 mov w4, -1 str w4, [x13] mov w4, 65535 cmp w6, w4 add x4, x3, :lo12:.LANCHOR0 - bne .L678 - ldr x6, [x4,3760] - add x4, x4, 3240 + bne .L809 + ldr x6, [x4,3800] + add x4, x4, 3280 ldrh w6, [x6,x7,lsl 1] strh w6, [x4,w5,sxtw 1] - b .L679 -.L678: - ldr x4, [x4,3760] + b .L810 +.L809: + ldr x4, [x4,3800] ldrh w8, [x4,x7,lsl 1] strh w8, [x4,w6,uxtw 1] -.L679: +.L810: add x4, x3, :lo12:.LANCHOR0 mov w6, -1 - ldr x4, [x4,3760] + ldr x4, [x4,3800] strh w6, [x4,x7,lsl 1] - b .L680 -.L677: + b .L811 +.L808: mov w6, w4 ldrh w4, [x12,x9,lsl 1] - b .L676 -.L680: + b .L807 +.L811: add x3, x3, :lo12:.LANCHOR0 uxtw x4, w2 cmn w1, #1 - ldr x6, [x3,3752] + ldr x6, [x3,3792] str w0, [x6,x4,lsl 2] - add x0, x3, 3240 + add x0, x3, 3280 ldrh w6, [x0,w5,sxtw 1] strh w2, [x0,w5,sxtw 1] - ldr x0, [x3,3760] + ldr x0, [x3,3800] strh w6, [x0,x4,lsl 1] - beq .L682 - ldrh w0, [x3,3218] + beq .L813 + ldrh w0, [x3,3266] mov w2, 21 mov w4, 1 sub w2, w2, w0 lsr w1, w1, w0 lsl w2, w4, w2 - ldrb w0, [x3,3216] + ldrb w0, [x3,3264] sub w2, w2, #1 and w1, w2, w1 udiv w0, w1, w0 bl ftl_vpn_decrement -.L682: +.L813: mov w0, -1 ldp x29, x30, [sp], 16 ret @@ -4931,36 +5478,36 @@ ftl_mask_bad_block: str x21, [sp,32] ubfx x21, x0, 21, 3 mov x19, x3 - ldrh w5, [x1,3218] + ldrh w5, [x1,3266] sub w2, w2, w5 lsr w0, w0, w5 lsl w2, w4, w2 sub w2, w2, #1 and w0, w2, w0 - ldrb w2, [x1,3216] + ldrb w2, [x1,3264] udiv w2, w0, w2 adrp x0, .LANCHOR2+400 ldr w0, [x0,#:lo12:.LANCHOR2+400] uxtb w20, w2 - tbz x0, 14, .L687 - adrp x0, .LC89 + tbz x0, 14, .L818 + adrp x0, .LC57 mov w1, w21 - add x0, x0, :lo12:.LC89 + add x0, x0, :lo12:.LC57 mov w2, w20 bl printk -.L687: +.L818: add x0, x19, :lo12:.LANCHOR0 - ldrh w1, [x0,2826] + ldrh w1, [x0,56] cmp w1, w20 - bls .L686 - ldr x0, [x0,2840] + bls .L817 + ldr x0, [x0,64] add x20, x0, x20, uxtb 2 mov w0, 1 lsl w1, w0, w21 ldrb w0, [x20,3] orr w1, w1, w0 strb w1, [x20,3] -.L686: +.L817: ldp x19, x20, [sp,16] ldr x21, [sp,32] ldp x29, x30, [sp], 48 @@ -4976,34 +5523,33 @@ print_ftl_debug_info: str x19, [sp,48] adrp x19, .LANCHOR0 add x19, x19, :lo12:.LANCHOR0 - ldr x0, [x19,2800] - ldr x7, [x19,2792] - ldrh w6, [x0,120] - ldrh w1, [x0,114] - ldrh w2, [x0,118] - ldrh w3, [x0,116] - ldrh w4, [x0,122] - ldrh w5, [x0,124] + ldr x7, [x19,80] + ldrh w6, [x19,2798] + ldrh w1, [x19,2788] ldr w0, [x7,528] str w0, [sp] - ldrh w0, [x19,3214] + ldr w0, [x19,2784] str w0, [sp,8] - adrp x0, .LC90 - add x0, x0, :lo12:.LC90 + adrp x0, .LC58 + ldrh w2, [x19,2790] + add x0, x0, :lo12:.LC58 ldr w7, [x7,524] + ldrh w3, [x19,2792] + ldrh w4, [x19,2794] + ldrh w5, [x19,2796] bl printk ldr x5, [x19,2800] - adrp x0, .LC91 - ldrb w3, [x19,3772] - add x0, x0, :lo12:.LC91 + adrp x0, .LC59 + ldrb w3, [x19,3812] + add x0, x0, :lo12:.LC59 ldr w4, [x5,8] ldr w1, [x5,20] ldr w2, [x5,28] ldr w5, [x5,64] bl printk ldr x2, [x19,2800] - adrp x0, .LC92 - add x0, x0, :lo12:.LC92 + adrp x0, .LC60 + add x0, x0, :lo12:.LC60 ldr w3, [x2,16] ldr w1, [x2,52] ldr w2, [x2,60] @@ -5011,21 +5557,29 @@ print_ftl_debug_info: bl printk ldr x7, [x19,2800] ldrh w0, [x7,90] + ldrh w6, [x7,72] ldrh w1, [x7,74] ldrh w3, [x7,88] ldrh w4, [x7,92] ldrh w5, [x7,96] - ldrh w6, [x7,72] str w0, [sp] ldrh w0, [x7,94] str w0, [sp,8] ldrh w0, [x7,98] str w0, [sp,16] - adrp x0, .LC93 - add x0, x0, :lo12:.LC93 + adrp x0, .LC61 + add x0, x0, :lo12:.LC61 ldr w2, [x7,84] ldr w7, [x7,80] bl printk + ldrh w1, [x19,2810] + adrp x0, .LC62 + ldrh w2, [x19,2812] + add x0, x0, :lo12:.LC62 + ldrh w3, [x19,2814] + ldrh w4, [x19,2816] + ldrh w5, [x19,2808] + bl printk sub sp, x29, #32 ldr x19, [sp,48] ldp x29, x30, [sp,32] @@ -5040,54 +5594,54 @@ ftl_write_buf: add x29, sp, 0 stp x19, x20, [sp,16] mov x20, x0 - cbnz x0, .L694 + cbnz x0, .L825 adrp x1, .LANCHOR1 - adrp x0, .LC34 + adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR1 - add x0, x0, :lo12:.LC34 - add x1, x1, 1232 - mov w2, 558 + add x0, x0, :lo12:.LC0 + add x1, x1, 1224 + mov w2, 592 bl printk -.L695: - b .L695 -.L694: +.L826: + b .L826 +.L825: adrp x19, .LANCHOR0 ldrb w1, [x0,56] add x19, x19, :lo12:.LANCHOR0 ldrb w2, [x19,2776] cmp w2, w1 - bcs .L696 + bcs .L827 adrp x1, .LANCHOR1 - adrp x0, .LC34 + adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR1 - add x0, x0, :lo12:.LC34 - add x1, x1, 1232 - mov w2, 563 - bl printk -.L697: - b .L697 -.L696: - cbnz w1, .L698 + add x0, x0, :lo12:.LC0 + add x1, x1, 1224 + mov w2, 597 + bl printk +.L828: + b .L828 +.L827: + cbnz w1, .L829 bl buf_free - ldrb w0, [x19,2809] - b .L699 -.L698: - add x0, x19, 2808 + ldrb w0, [x19,2819] + b .L830 +.L829: + add x0, x19, 2818 mov x1, x20 bl buf_add_tail - ldrb w2, [x19,2809] + ldrb w2, [x19,2819] ldrb w1, [x20,56] add w2, w2, 1 uxtb w0, w2 ldr x2, [x19,2800] - strb w0, [x19,2809] + strb w0, [x19,2819] ldr w3, [x2,16] add w1, w3, w1 str w1, [x2,16] ldr w1, [x2,32] add w1, w1, 1 str w1, [x2,32] -.L699: +.L830: ldp x19, x20, [sp,16] ldp x29, x30, [sp], 32 ret @@ -5103,25 +5657,25 @@ ftl_write_completed: str x25, [sp,64] stp x21, x22, [sp,32] add x19, x19, :lo12:.LANCHOR0 - adrp x21, .LC94 + adrp x21, .LC63 stp x23, x24, [sp,48] add x22, x19, 728 mov w23, 21 mov w24, 1 - add x21, x21, :lo12:.LC94 -.L701: - ldrb w0, [x19,3773] + add x21, x21, :lo12:.LC63 +.L832: + ldrb w0, [x19,3813] cmp w0, 255 - beq .L708 + beq .L839 sbfiz x0, x0, 6, 32 add x20, x22, x0 add x4, x20, 32 ldrb w0, [x22,x0] - strb w0, [x19,3773] + strb w0, [x19,3813] ldr w0, [x20,52] cmn w0, #1 - bne .L702 - ldrh w2, [x19,3218] + bne .L833 + ldrh w2, [x19,3266] mov x0, x21 ldr w3, [x4,8] sub w1, w23, w2 @@ -5129,7 +5683,7 @@ ftl_write_completed: lsr w2, w3, w2 sub w1, w1, #1 and w2, w1, w2 - ldrb w1, [x19,3216] + ldrb w1, [x19,3264] udiv w1, w2, w1 ldr w2, [x4,4] uxth w25, w1 @@ -5139,39 +5693,39 @@ ftl_write_completed: mov w0, w25 mov w2, 0 bl gc_add_sblk - ldr x0, [x19,2792] + ldr x0, [x19,80] ldr w1, [x0,556] add w1, w1, 1 str w1, [x0,556] ldrh w1, [x0,16] cmp w1, w25 - bne .L703 + bne .L834 strh wzr, [x0,22] - b .L704 -.L703: + b .L835 +.L834: ldrh w1, [x0,48] cmp w1, w25 - bne .L704 + bne .L835 strh wzr, [x0,54] -.L704: +.L835: mov x0, x20 bl ftl_write_buf - b .L701 -.L702: + b .L832 +.L833: ldr w0, [x4,4] ldr w1, [x4,12] ldrh w2, [x20,48] bl lpa_hash_update_ppa ldrb w0, [x20,2] - tbz x0, 2, .L706 + tbz x0, 2, .L837 and w0, w0, -3 strb w0, [x20,2] - b .L701 -.L706: + b .L832 +.L837: mov x0, x20 bl buf_free - b .L701 -.L708: + b .L832 +.L839: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -5180,16 +5734,87 @@ ftl_write_completed: ret .size ftl_write_completed, .-ftl_write_completed .align 2 + .global ftl_alloc_sblk + .type ftl_alloc_sblk, %function +ftl_alloc_sblk: + stp x29, x30, [sp, -48]! + cmp w0, 5 + mov w1, 2 + add x29, sp, 0 + stp x21, x22, [sp,32] + uxth w22, w0 + csel w21, wzr, w1, ne + stp x19, x20, [sp,16] + mov w1, w22 + mov w20, w0 + mov w0, 0 + bl zftl_get_free_sblk + uxth w19, w0 + mov w1, 65535 + cmp w19, w1 + beq .L842 + adrp x1, .LANCHOR0+64 + ldr x1, [x1,#:lo12:.LANCHOR0+64] + add x19, x1, x19, uxth 2 + ldrb w3, [x19,2] + tst w3, 224 + beq .L843 + adrp x1, .LANCHOR1 + adrp x0, .LC0 + add x1, x1, :lo12:.LANCHOR1 + add x0, x0, :lo12:.LC0 + add x1, x1, 1240 + mov w2, 752 + bl printk +.L844: + b .L844 +.L843: + bfi w3, w20, 5, 3 + ubfx x2, x3, 3, 2 + orr w1, w21, w2 + bfi w3, w1, 3, 2 + strb w3, [x19,2] + ldp x19, x20, [sp,16] + ldp x21, x22, [sp,32] + ldp x29, x30, [sp], 48 + ret +.L842: + adrp x21, .LC64 + bl print_ftl_debug_info + add x21, x21, :lo12:.LC64 + mov w2, w20 + mov w1, w19 + mov x0, x21 + bl printk + mov w1, w22 + mov w0, 0 + bl zftl_get_free_sblk + uxth w1, w0 + mov w2, w20 + mov x0, x21 + bl printk + bl dump_all_list_info + adrp x1, .LANCHOR1 + adrp x0, .LC0 + add x1, x1, :lo12:.LANCHOR1 + add x0, x0, :lo12:.LC0 + add x1, x1, 1240 + mov w2, 762 + bl printk +.L845: + b .L845 + .size ftl_alloc_sblk, .-ftl_alloc_sblk + .align 2 .global sblk_init .type sblk_init, %function sblk_init: adrp x0, .LANCHOR0 mov w1, -1 add x0, x0, :lo12:.LANCHOR0 - strb w1, [x0,3774] - strb w1, [x0,3773] - strb w1, [x0,2824] - strb w1, [x0,3192] + strb w1, [x0,3814] + strb w1, [x0,3813] + strb w1, [x0,2832] + strb w1, [x0,3176] mov w0, 0 ret .size sblk_init, .-sblk_init @@ -5198,24 +5823,24 @@ sblk_init: .type dump_sblk_queue, %function dump_sblk_queue: stp x29, x30, [sp, -48]! - adrp x0, .LC95 + adrp x0, .LC65 add x29, sp, 0 stp x19, x20, [sp,16] adrp x20, .LANCHOR0 str x21, [sp,32] add x20, x20, :lo12:.LANCHOR0 - add x0, x0, :lo12:.LC95 - ldrb w1, [x20,3774] + add x0, x0, :lo12:.LC65 + ldrb w1, [x20,3814] bl printk - ldrb w19, [x20,3774] + ldrb w19, [x20,3814] cmp w19, 255 - beq .L710 + beq .L849 add x20, x20, 728 sbfiz x19, x19, 6, 32 - adrp x21, .LC96 + adrp x21, .LC66 add x19, x20, x19 - add x21, x21, :lo12:.LC96 -.L712: + add x21, x21, :lo12:.LC66 +.L851: ldrb w1, [x19,1] mov x0, x21 ldrb w2, [x19,58] @@ -5223,11 +5848,11 @@ dump_sblk_queue: bl printk ldrb w19, [x19] cmp w19, 255 - beq .L710 + beq .L849 sbfiz x19, x19, 6, 32 add x19, x20, x19 - b .L712 -.L710: + b .L851 +.L849: ldp x19, x20, [sp,16] ldr x21, [sp,32] ldp x29, x30, [sp], 48 @@ -5241,12 +5866,12 @@ queue_lun_state: mov w5, w0 add x3, x3, :lo12:.LANCHOR0 mov w0, 0 - ldrb w2, [x3,3774] + ldrb w2, [x3,3814] cmp w2, 255 - beq .L720 - ldrh w8, [x3,3218] + beq .L859 + ldrh w8, [x3,3266] mov w4, 21 - ldrb w7, [x3,3216] + ldrb w7, [x3,3264] mov w0, 1 sub w4, w4, w8 ubfx x9, x5, 21, 3 @@ -5255,64 +5880,64 @@ queue_lun_state: sub w4, w4, #1 asr w5, w5, w8 uxth w7, w7 - adrp x10, .L724 + adrp x10, .L863 uxth w4, w4 and w5, w5, w7 and w5, w5, w4 add x3, x3, 728 - add x10, x10, :lo12:.L724 -.L727: + add x10, x10, :lo12:.L863 +.L866: add x0, x3, x2, lsl 6 ldr w6, [x0,40] ubfx x11, x6, 21, 3 cmp w11, w9 - bne .L721 + bne .L860 lsr w6, w6, w8 ldrb w0, [x0,58] and w6, w7, w6 and w6, w4, w6 cmp w6, w5 - bne .L722 + bne .L861 cmp w1, 1 - beq .L725 - b .L720 -.L722: + beq .L864 + b .L859 +.L861: cmp w1, 3 - bhi .L721 + bhi .L860 ldrb w6, [x10,w1,uxtw] - adr x11, .Lrtx724 + adr x11, .Lrtx863 add x6, x11, w6, sxtb #2 br x6 -.Lrtx724: +.Lrtx863: .section .rodata .align 0 .align 2 -.L724: - .byte (.L723 - .Lrtx724) / 4 - .byte (.L725 - .Lrtx724) / 4 - .byte (.L726 - .Lrtx724) / 4 - .byte (.L720 - .Lrtx724) / 4 +.L863: + .byte (.L862 - .Lrtx863) / 4 + .byte (.L864 - .Lrtx863) / 4 + .byte (.L865 - .Lrtx863) / 4 + .byte (.L859 - .Lrtx863) / 4 .text -.L723: +.L862: cmp w0, 2 - b .L736 -.L725: + b .L875 +.L864: sub w6, w0, #6 and w6, w6, -3 uxtb w6, w6 - cbz w6, .L721 - b .L720 -.L726: + cbz w6, .L860 + b .L859 +.L865: cmp w0, 10 -.L736: - bne .L720 -.L721: +.L875: + bne .L859 +.L860: lsl x2, x2, 6 ldrb w2, [x3,x2] cmp w2, 255 - bne .L727 + bne .L866 mov w0, 0 -.L720: +.L859: ret .size queue_lun_state, .-queue_lun_state .align 2 @@ -5321,9 +5946,9 @@ queue_lun_state: queue_remove_completed_req: adrp x0, .LANCHOR0 add x1, x0, :lo12:.LANCHOR0 - ldrb w2, [x1,3774] + ldrb w2, [x1,3814] cmp w2, 255 - beq .L738 + beq .L877 add x6, x1, 728 lsl x5, x2, 6 add x7, x6, x5 @@ -5331,51 +5956,51 @@ queue_remove_completed_req: sub w3, w3, #11 uxtb w3, w3 cmp w3, 1 - bhi .L738 + bhi .L877 ldrb w3, [x6,x5] - strb w3, [x1,3774] + strb w3, [x1,3814] mov w3, -1 strb w3, [x6,x5] ldrb w3, [x7,59] cmp w3, 1 - bne .L740 + bne .L879 ldrh w3, [x7,50] - cbnz w3, .L741 - ldrb w3, [x1,3773] - add x1, x1, 3773 - b .L742 -.L741: - ldrb w3, [x1,3192] - add x1, x1, 3192 - b .L742 -.L740: - cbnz w3, .L738 + cbnz w3, .L880 + ldrb w3, [x1,3813] + add x1, x1, 3813 + b .L881 +.L880: + ldrb w3, [x1,3176] + add x1, x1, 3176 + b .L881 +.L879: + cbnz w3, .L877 ldr w3, [x7,36] cmn w3, #1 - beq .L738 - ldrb w3, [x1,2824] - add x1, x1, 2824 -.L742: + beq .L877 + ldrb w3, [x1,2832] + add x1, x1, 2832 +.L881: cmp w3, 255 add x0, x0, :lo12:.LANCHOR0 - bne .L746 + bne .L885 add x0, x0, x2, lsl 6 ldrb w0, [x0,729] strb w0, [x1] - b .L738 -.L746: + b .L877 +.L885: add x0, x0, 728 -.L753: +.L892: mov w1, w3 sbfiz x3, x3, 6, 32 ldrb w3, [x0,x3] cmp w3, 255 - bne .L753 + bne .L892 add x2, x0, x2, lsl 6 sbfiz x1, x1, 6, 32 ldrb w2, [x2,1] strb w2, [x0,x1] -.L738: +.L877: ret .size queue_remove_completed_req, .-queue_remove_completed_req .align 2 @@ -5393,19 +6018,19 @@ pm_alloc_new_blk: ldrh w1, [x2,690] add w1, w1, 1 uxth w0, w1 - ldrb w1, [x3,3212] + ldrb w1, [x3,3196] strh w0, [x2,690] cmp w1, w0 - bls .L755 + bls .L894 add x0, x2, x0, sxtw 1 ldrh w1, [x0,672] mov w0, 65535 cmp w1, w0 - bne .L756 -.L755: - adrp x22, .LC97 - add x22, x22, :lo12:.LC97 -.L770: + bne .L895 +.L894: + adrp x22, .LC67 + add x22, x22, :lo12:.LC67 +.L909: mov w0, 1 add x21, x19, :lo12:.LANCHOR0 bl ftl_alloc_sblk @@ -5417,47 +6042,47 @@ pm_alloc_new_blk: add x1, x1, 672 bl ftl_get_blk_list_in_sblk uxth w0, w0 - cbnz w0, .L757 + cbnz w0, .L896 mov w1, w20 mov x0, x22 bl printk - ldr x0, [x21,2840] + ldr x0, [x21,64] add x20, x0, x20, uxth 2 ldrb w1, [x20,2] orr w1, w1, -32 strb w1, [x20,2] - b .L770 -.L757: + b .L909 +.L896: ldr x0, [x21,2800] mov w1, 1 mov w3, 65535 - str w1, [x21,3776] + str w1, [x21,3816] mov x1, 0 strh wzr, [x0,690] -.L759: +.L898: add x4, x0, x1, lsl 1 mov w2, w1 ldrh w4, [x4,416] cmp w4, w3 - beq .L758 + beq .L897 add x1, x1, 1 cmp x1, 128 - bne .L759 - adrp x0, .LC34 + bne .L898 + adrp x0, .LC0 adrp x1, .LANCHOR3 - add x0, x0, :lo12:.LC34 + add x0, x0, :lo12:.LC0 add x1, x1, :lo12:.LANCHOR3 mov w2, 188 bl printk -.L761: - b .L761 -.L758: +.L900: + b .L900 +.L897: add x1, x0, x2, sxtw 1 strh w20, [x1,416] ldrh w1, [x0,688] add w1, w1, 1 strh w1, [x0,688] -.L756: +.L895: add x19, x19, :lo12:.LANCHOR0 mov w2, 65533 ldr x0, [x19,2800] @@ -5466,17 +6091,17 @@ pm_alloc_new_blk: ldrh w1, [x0,x1,lsl 1] sub w3, w1, #1 cmp w2, w3, uxth - bcs .L762 - adrp x0, .LC34 + bcs .L901 + adrp x0, .LC0 adrp x1, .LANCHOR3 - add x0, x0, :lo12:.LC34 + add x0, x0, :lo12:.LC0 add x1, x1, :lo12:.LANCHOR3 mov w2, 193 bl printk -.L763: - b .L763 -.L762: - ldrh w3, [x19,3218] +.L902: + b .L902 +.L901: + ldrh w3, [x19,3266] mov w2, 21 strh wzr, [x0,696] sub w2, w2, w3 @@ -5485,16 +6110,16 @@ pm_alloc_new_blk: strh w4, [x0,694] adrp x0, .LANCHOR2+400 ldr w0, [x0,#:lo12:.LANCHOR2+400] - tbz x0, 12, .L767 + tbz x0, 12, .L906 mov w0, 1 mov w3, w1 lsl w2, w0, w2 - adrp x0, .LC98 - add x0, x0, :lo12:.LC98 + adrp x0, .LC68 + add x0, x0, :lo12:.LC68 sub w2, w2, #1 uxth w4, w4 bl printk -.L767: +.L906: mov w0, 0 ldr x23, [sp,48] ldp x19, x20, [sp,16] @@ -5512,71 +6137,71 @@ pm_select_ram_region: add x3, x3, :lo12:.LANCHOR0 mov w4, 65535 add x29, sp, 0 -.L774: - add x2, x3, 3784 +.L913: + add x2, x3, 3824 lsl x5, x0, 4 uxth w1, w0 ldrh w5, [x5,x2] cmp w5, w4 - beq .L780 + beq .L919 add x0, x0, 1 cmp x0, 32 - bne .L774 + bne .L913 mov x1, 0 mov w4, 32768 -.L776: +.L915: add x3, x2, x1, lsl 4 uxth w5, w1 ldrh w3, [x3,2] - tbnz x3, 15, .L775 + tbnz x3, 15, .L914 cmp w3, w4 - bcs .L775 + bcs .L914 mov w4, w3 mov w0, w5 -.L775: +.L914: add x1, x1, 1 cmp x1, 32 - bne .L776 + bne .L915 cmp w0, 32 mov w3, w0 - bne .L773 - adrp x0, .LANCHOR4-56 + bne .L912 + adrp x0, .LANCHOR4-16 adrp x1, .LANCHOR0 add x1, x1, :lo12:.LANCHOR0 mov w2, 0 - add x1, x1, 3784 - ldrb w4, [x0,#:lo12:.LANCHOR4-56] + add x1, x1, 3824 + ldrb w4, [x0,#:lo12:.LANCHOR4-16] mov w0, -1 -.L778: +.L917: ldrh w6, [x1,2] cmp w6, w0 - bcs .L777 + bcs .L916 ldrh w5, [x1] cmp w5, w4 csel w0, w0, w6, eq cmp w5, w4 csel w3, w3, w2, eq -.L777: +.L916: add w2, w2, 1 add x1, x1, 16 uxth w2, w2 cmp w2, 32 - bne .L778 + bne .L917 cmp w3, 32 mov w0, w3 - bne .L773 + bne .L912 adrp x1, .LANCHOR3 - adrp x0, .LC34 + adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR3 - add x0, x0, :lo12:.LC34 + add x0, x0, :lo12:.LC0 add x1, x1, 24 mov w2, 289 bl printk -.L779: - b .L779 -.L780: +.L918: + b .L918 +.L919: mov w0, w1 -.L773: +.L912: ldp x29, x30, [sp], 16 ret .size pm_select_ram_region, .-pm_select_ram_region @@ -5599,58 +6224,58 @@ flash_lsb_page_tbl_build: add x29, sp, 0 stp x19, x20, [sp,16] adrp x19, .LANCHOR0 - cbnz w0, .L788 + cbnz w0, .L927 mov x0, 0 add x2, x19, :lo12:.LANCHOR0 -.L789: - add x1, x2, 172 +.L928: + add x1, x2, 168 strh w0, [x1,x0,lsl 1] add x0, x0, 1 cmp x0, 256 - bne .L789 -.L795: + bne .L928 +.L934: adrp x20, .LANCHOR4 mov w1, 255 add x20, x20, :lo12:.LANCHOR4 mov w2, 1024 - sub x0, x20, #52 + sub x0, x20, #12 add x19, x19, :lo12:.LANCHOR0 bl ftl_memset mov x0, 0 - b .L790 -.L788: + b .L929 +.L927: cmp w0, 1 - bne .L791 + bne .L930 mov x0, 0 mov w4, 3 mov w5, 2 add x3, x19, :lo12:.LANCHOR0 -.L794: +.L933: cmp x0, 3 uxth w2, w0 mov w1, w2 - bls .L792 + bls .L931 ubfiz w1, w2, 1, 15 and w2, w2, 1 cmp w2, wzr csel w2, w4, w5, ne sub w1, w1, w2 uxth w1, w1 -.L792: - add x2, x3, 172 +.L931: + add x2, x3, 168 strh w1, [x2,x0,lsl 1] add x0, x0, 1 cmp x0, 256 - bne .L794 - b .L795 -.L791: + bne .L933 + b .L934 +.L930: cmp w0, 2 - bne .L796 + bne .L935 mov w1, 65535 mov x0, 0 add x4, x19, :lo12:.LANCHOR0 -.L798: - add x3, x4, 172 +.L937: + add x3, x4, 168 cmp x0, 1 uxth w2, w0 csel w2, w1, w2, hi @@ -5659,43 +6284,43 @@ flash_lsb_page_tbl_build: add x0, x0, 1 cmp x0, 256 uxth w1, w1 - bne .L798 - b .L795 -.L796: + bne .L937 + b .L934 +.L935: cmp w0, 3 - bne .L799 + bne .L938 mov x0, 0 mov w4, 5 mov w5, 4 add x3, x19, :lo12:.LANCHOR0 -.L802: +.L941: cmp x0, 5 uxth w2, w0 mov w1, w2 - bls .L800 + bls .L939 ubfiz w1, w2, 1, 15 and w2, w2, 1 cmp w2, wzr csel w2, w4, w5, ne sub w1, w1, w2 uxth w1, w1 -.L800: - add x2, x3, 172 +.L939: + add x2, x3, 168 strh w1, [x2,x0,lsl 1] add x0, x0, 1 cmp x0, 256 - bne .L802 - b .L795 -.L799: + bne .L941 + b .L934 +.L938: cmp w0, 4 - bne .L803 + bne .L942 add x2, x19, :lo12:.LANCHOR0 mov w5, 7 - add x1, x2, 172 + add x1, x2, 168 mov w4, 6 strh w0, [x1,8] mov w0, 5 - strh wzr, [x2,172] + strh wzr, [x2,168] mov w2, 1 strh w0, [x1,10] mov w0, 7 @@ -5708,7 +6333,7 @@ flash_lsb_page_tbl_build: strh w0, [x1,14] mov w0, 8 strh w2, [x1,6] -.L805: +.L944: and w3, w0, 1 ubfiz w2, w0, 1, 15 add w0, w0, 1 @@ -5719,48 +6344,48 @@ flash_lsb_page_tbl_build: sub w2, w2, w3 cmp w0, 256 strh w2, [x1,14] - bne .L805 - b .L795 -.L803: + bne .L944 + b .L934 +.L942: cmp w0, 5 - bne .L806 + bne .L945 mov x0, 0 add x2, x19, :lo12:.LANCHOR0 -.L807: - add x1, x2, 172 +.L946: + add x1, x2, 168 strh w0, [x1,x0,lsl 1] add x0, x0, 1 cmp x0, 16 - bne .L807 + bne .L946 mov x0, 0 -.L808: +.L947: add x2, x1, x0 add w3, w0, 16 add x0, x0, 2 cmp x0, 480 strh w3, [x2,32] - bne .L808 - b .L795 -.L806: + bne .L947 + b .L934 +.L945: cmp w0, 8 - bne .L795 + bne .L934 mov x0, 0 add x2, x19, :lo12:.LANCHOR0 -.L809: - add x1, x2, 172 +.L948: + add x1, x2, 168 strh w0, [x0,x1] add x0, x0, 2 cmp x0, 512 - bne .L809 - b .L795 -.L790: - add x1, x19, 172 - sub x2, x20, #52 + bne .L948 + b .L934 +.L929: + add x1, x19, 168 + sub x2, x20, #12 ldrh w1, [x0,x1] add x0, x0, 2 cmp x0, 512 strh w1, [x2,w1,sxtw 1] - bne .L790 + bne .L929 ldp x19, x20, [sp,16] ldp x29, x30, [sp], 32 ret @@ -5770,97 +6395,91 @@ flash_lsb_page_tbl_build: .type flash_die_info_init, %function flash_die_info_init: stp x29, x30, [sp, -112]! - adrp x1, .LANCHOR3 - adrp x0, .LC0 + mov w2, 8 add x29, sp, 0 stp x19, x20, [sp,16] - add x1, x1, :lo12:.LANCHOR3 adrp x19, .LANCHOR2 stp x21, x22, [sp,32] stp x25, x26, [sp,64] - add x1, x1, 48 - add x25, x19, :lo12:.LANCHOR2 - add x0, x0, :lo12:.LC0 adrp x21, .LANCHOR0 - add x20, x21, :lo12:.LANCHOR0 - adrp x22, .LANCHOR4 + add x25, x19, :lo12:.LANCHOR2 stp x23, x24, [sp,48] stp x27, x28, [sp,80] - bl printk - add x26, x22, :lo12:.LANCHOR4 + add x20, x21, :lo12:.LANCHOR0 + adrp x22, .LANCHOR4 ldrh w0, [x25,394] - mov w2, 8 + add x26, x22, :lo12:.LANCHOR4 ldrb w1, [x25,380] mov x24, 0 - strh w0, [x20,170] + strh w0, [x20,166] add x25, x25, 369 ldrh w0, [x25,9] - add x27, x20, 688 - strb wzr, [x20,57] + add x27, x20, 684 + strb wzr, [x20,152] sdiv w0, w0, w1 mov w1, 0 - strh w0, [x26,972] - add x0, x20, 160 + strh w0, [x26,1012] + add x0, x20, 156 bl ftl_memset - add x0, x26, 976 + add x0, x26, 1016 mov w1, 0 mov w2, 32 bl ftl_memset ldrb w23, [x25,-1] -.L827: +.L966: mov x0, x25 add x1, x27, x24, lsl 3 mov w2, w23 bl flash_mem_cmp8 - cbnz w0, .L826 - ldrb w1, [x20,57] - add x2, x26, 976 + cbnz w0, .L965 + ldrb w1, [x20,152] + add x2, x26, 1016 str w0, [x2,w1,sxtw 2] add w0, w1, 1 add x1, x20, x1, sxtw - strb w0, [x20,57] - strb w24, [x1,160] -.L826: + strb w0, [x20,152] + strb w24, [x1,156] +.L965: add x24, x24, 1 cmp x24, 4 - bne .L827 + bne .L966 add x0, x19, :lo12:.LANCHOR2 add x1, x0, 368 ldrb w2, [x1,8] cmp w2, 2 - beq .L828 -.L832: + beq .L967 +.L971: add x19, x19, :lo12:.LANCHOR2 add x21, x21, :lo12:.LANCHOR0 add x22, x22, :lo12:.LANCHOR4 ldp x23, x24, [sp,48] ldrb w1, [x19,381] - ldrb w0, [x21,57] + ldrb w0, [x21,152] ldp x25, x26, [sp,64] ldp x27, x28, [sp,80] mul w0, w0, w1 ldrh w1, [x19,382] ldp x19, x20, [sp,16] mul w0, w0, w1 - strh w0, [x22,1008] + strh w0, [x22,1048] ldp x21, x22, [sp,32] ldp x29, x30, [sp], 112 ret -.L828: +.L967: add x24, x21, :lo12:.LANCHOR0 ldrh w20, [x1,14] ldrb w27, [x1,23] mov x25, 0 and w20, w20, 65280 add x26, x0, 369 - ldrh w2, [x24,170] - add x3, x24, 688 + ldrh w2, [x24,166] + add x3, x24, 684 add x4, x22, :lo12:.LANCHOR4 mul w20, w20, w2 ldrb w2, [x1,13] mul w20, w20, w2 lsl w28, w20, 1 -.L831: +.L970: add x1, x3, x25, lsl 3 mov x0, x26 mov w2, w23 @@ -5869,21 +6488,21 @@ flash_die_info_init: bl flash_mem_cmp8 ldr x3, [x29,104] ldr x4, [x29,96] - cbnz w0, .L829 - ldrb w1, [x24,57] - add x0, x4, 976 + cbnz w0, .L968 + ldrb w1, [x24,152] + add x0, x4, 1016 cmp w27, wzr csel w2, w20, w28, eq str w2, [x0,w1,sxtw 2] add w0, w1, 1 add x1, x24, x1, sxtw - strb w0, [x24,57] - strb w25, [x1,160] -.L829: + strb w0, [x24,152] + strb w25, [x1,156] +.L968: add x25, x25, 1 cmp x25, 4 - bne .L831 - b .L832 + bne .L970 + b .L971 .size flash_die_info_init, .-flash_die_info_init .align 2 .global lpa_hash_init @@ -5896,13 +6515,13 @@ lpa_hash_init: str x19, [sp,16] adrp x19, .LANCHOR0 add x19, x19, :lo12:.LANCHOR0 - add x0, x19, 3240 + add x0, x19, 3280 bl ftl_memset - ldrh w0, [x19,3234] + ldrh w0, [x19,3228] mov w1, 255 - ldrb w2, [x19,3212] + ldrb w2, [x19,3196] mul w2, w0, w2 - ldr x0, [x19,3760] + ldr x0, [x19,3800] lsl w2, w2, 2 bl ftl_memset ldr x19, [sp,16] @@ -5918,52 +6537,52 @@ lpa_rebuild_hash: add x29, sp, 0 ldr w0, [x0,#:lo12:.LANCHOR2+400] str x19, [sp,16] - tbz x0, 12, .L840 + tbz x0, 12, .L979 adrp x1, .LANCHOR3 - adrp x0, .LC99 + adrp x0, .LC69 add x1, x1, :lo12:.LANCHOR3 - add x0, x0, :lo12:.LC99 - add x1, x1, 72 - mov w2, 199 + add x0, x0, :lo12:.LC69 + add x1, x1, 48 + mov w2, 219 mov w3, 0 bl printk -.L840: +.L979: adrp x19, .LANCHOR0 mov w1, 255 add x19, x19, :lo12:.LANCHOR0 mov w2, 512 - add x0, x19, 3240 + add x0, x19, 3280 bl ftl_memset - ldrh w0, [x19,3234] + ldrh w0, [x19,3228] mov w1, 255 - ldrb w2, [x19,3212] + ldrb w2, [x19,3196] mul w2, w0, w2 - ldr x0, [x19,3760] + ldr x0, [x19,3800] lsl w2, w2, 2 bl ftl_memset mov w0, 0 -.L841: - ldrh w1, [x19,3234] - ldrb w2, [x19,3212] +.L980: + ldrh w1, [x19,3228] + ldrb w2, [x19,3196] mul w1, w1, w2 cmp w0, w1, lsl 1 - bge .L850 + bge .L989 uxtw x2, w0 - ldr x1, [x19,3752] + ldr x1, [x19,3792] ldr w1, [x1,x2,lsl 2] cmn w1, #1 - beq .L842 + beq .L981 uxtb w1, w1 - add x3, x19, 3240 + add x3, x19, 3280 ldrh w4, [x3,w1,sxtw 1] strh w0, [x3,w1,sxtw 1] - ldr x1, [x19,3760] + ldr x1, [x19,3800] strh w4, [x1,x2,lsl 1] -.L842: +.L981: add w0, w0, 1 uxth w0, w0 - b .L841 -.L850: + b .L980 +.L989: ldr x19, [sp,16] ldp x29, x30, [sp], 32 ret @@ -5986,9 +6605,9 @@ zftl_read_flash_info: add x1, x1, 368 mov w5, 1 ldrb w2, [x1,9] - ldrh w3, [x0,170] + ldrh w3, [x0,166] mul w2, w2, w3 - ldrb w3, [x0,148] + ldrb w3, [x0,140] strb w3, [x19,7] uxth w2, w2 strh w2, [x19,4] @@ -6003,23 +6622,23 @@ zftl_read_flash_info: ldrb w2, [x1,9] strb w2, [x19,6] mov w2, 32 - ldrb w4, [x0,57] + ldrb w4, [x0,152] ldrb w1, [x1,7] strb w1, [x19,9] mov x1, 0 strb w2, [x19,8] -.L852: +.L991: cmp w4, w1, uxtb - bls .L854 - add x2, x0, 160 + bls .L993 + add x2, x0, 156 ldrb w3, [x19,10] ldrb w2, [x1,x2] add x1, x1, 1 lsl w2, w5, w2 orr w2, w2, w3 strb w2, [x19,10] - b .L852 -.L854: + b .L991 +.L993: ldr x19, [sp,16] ldp x29, x30, [sp], 32 ret @@ -6038,62 +6657,628 @@ gc_init: add x19, x19, :lo12:.LANCHOR0 add x20, x20, :lo12:.LANCHOR4 str x21, [sp,32] - add x21, x19, 2848 + add x21, x19, 2840 mov x0, x21 - strb wzr, [x19,3209] - strb wzr, [x20,1010] + strb wzr, [x19,3193] + strb wzr, [x20,1050] bl ftl_memset - ldrh w1, [x19,3234] + ldrh w1, [x19,3228] mov w0, -1 - strh w0, [x19,2848] + ldrb w3, [x19,3196] + strh w0, [x19,2840] lsr w0, w1, 2 - ldrb w2, [x19,3212] - strh w0, [x19,2884] - lsr w3, w1, 1 - strh w0, [x19,3176] - ldrh w0, [x19,3210] - mul w1, w1, w2 - strh w3, [x19,2886] - mul w0, w0, w2 - sub w1, w1, #32 - strh w3, [x20,1014] + lsr w2, w1, 1 + strh w0, [x19,2876] + strh w0, [x19,2814] + ldrh w0, [x19,3194] + strh w2, [x19,2878] + mul w2, w1, w3 + mul w0, w0, w3 + strh w1, [x19,2816] + uxth w2, w2 lsl w0, w0, 2 - strh w1, [x20,1012] - str xzr, [x19,2856] + sub w4, w2, #32 + strh w2, [x19,2810] + strh w4, [x19,2812] + str xzr, [x19,2848] + strh wzr, [x19,3230] + strh wzr, [x19,3224] + strh wzr, [x19,3226] bl ftl_malloc - str x0, [x20,1016] - ldrb w1, [x19,3212] - ldrh w0, [x19,3210] + ldrb w1, [x19,3196] + str x0, [x20,1056] + ldrh w0, [x19,3194] mul w0, w0, w1 lsl w0, w0, 2 bl ftl_malloc - str x0, [x20,1024] - ldrh w1, [x19,3210] - ldrb w0, [x19,3212] + str x0, [x20,1064] + ldrh w1, [x19,3194] + ldrb w0, [x19,3196] mul w0, w1, w0 bl ftl_malloc - str x0, [x19,3200] - ldrb w1, [x19,3212] - ldrh w0, [x19,3210] + str x0, [x19,3184] + ldrb w1, [x19,3196] + ldrh w0, [x19,3194] mul w0, w0, w1 lsl w0, w0, 2 bl ftl_malloc - str x0, [x19,3184] - ldrb w1, [x19,3212] - ldrh w0, [x19,3210] + str x0, [x19,3168] + ldrb w1, [x19,3196] + ldrh w0, [x19,3194] mul w0, w0, w1 lsl w0, w0, 2 bl ftl_malloc - str x0, [x20,1032] - ldrh w0, [x19,2826] + str x0, [x20,1072] + ldrh w0, [x19,3232] + strh w0, [x19,2808] ldr x21, [sp,32] - lsr w0, w0, 3 - strh w0, [x19,3214] ldp x19, x20, [sp,16] ldp x29, x30, [sp], 48 ret .size gc_init, .-gc_init .align 2 + .global gc_static_wearleveling + .type gc_static_wearleveling, %function +gc_static_wearleveling: + stp x29, x30, [sp, -144]! + mov w1, 10240 + 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] + stp x27, x28, [sp,80] + ldr x6, [x0,2800] + ldr w0, [x6,32] + cmp w0, w1 + bls .L996 + ldr w1, [x6,36] + add w1, w1, w0, lsr 10 + and w0, w0, 1023 + str w1, [x6,36] + str w0, [x6,32] +.L996: + add x0, x20, :lo12:.LANCHOR0 + ldr x0, [x0,80] + ldr w1, [x0,568] + ldr w2, [x0,12] + add w1, w1, 860160 + add w1, w1, 3840 + cmp w2, w1 + bhi .L997 + ldr w1, [x0,572] + ldr w3, [x6,36] + add w1, w1, 32 + cmp w3, w1 + bls .L995 +.L997: + ldr w1, [x6,36] + mov w9, 0 + str w1, [x0,572] + mov w26, 65535 + str w2, [x0,568] + add x0, x20, :lo12:.LANCHOR0 + mov w4, w9 + mov w2, w9 + ldrh w3, [x6,134] + mov w1, w9 + ldrh w11, [x0,56] + mov w22, w9 + ldr x10, [x0,64] + mov w21, w9 + mov w19, w26 + mov w12, w26 +.L999: + cmp w3, w11 + bcs .L1043 + ubfiz x0, x3, 2, 16 + add x5, x10, x0 + ldrb w5, [x5,2] + tbz x5, 3, .L1000 + ldrh w5, [x10,x0] + and w8, w5, 2047 + ldr w5, [x10,x0] + ubfx x0, x5, 11, 8 + b .L1001 +.L1000: + tst w5, 24 + bne .L1002 + ldrh w5, [x10,x0] + mov w0, 65535 + and w8, w5, 2047 + b .L1001 +.L1002: + ldr w5, [x10,x0] + ubfx x0, x5, 11, 8 +.L1025: + cmp w19, w0 + add w2, w2, 1 + csel w19, w19, w0, cc + cmp w21, w0 + add w4, w4, w0 + csel w0, w21, w0, hi + uxth w2, w2 + uxth w19, w19 + uxth w21, w0 +.L1026: + add w3, w3, 1 + uxth w3, w3 + b .L999 +.L1043: + ldrh w0, [x6,96] + cmp w0, w22 + bcs .L1004 + strh w22, [x6,96] +.L1004: + ldrh w0, [x6,98] + cmp w0, w21 + bcs .L1005 + strh w21, [x6,98] +.L1005: + adrp x23, .LANCHOR2 + str x23, [x29,128] + add x0, x23, :lo12:.LANCHOR2 + udiv w3, w9, w1 + strh w3, [x6,88] + ldr w0, [x0,400] + udiv w4, w4, w2 + strh w4, [x6,90] + tbz x0, 10, .L1006 + adrp x0, .LC70 + uxth w3, w3 + add x0, x0, :lo12:.LC70 + uxth w4, w4 + bl printk +.L1006: + ldr x0, [x29,128] + adrp x25, .LANCHOR4 + add x0, x0, :lo12:.LANCHOR2 + ldr w0, [x0,400] + tbz x0, 10, .L1007 + add x6, x25, :lo12:.LANCHOR4 + adrp x0, .LC71 + add x0, x0, :lo12:.LC71 + mov w1, w26 + mov w2, w19 + mov w3, w22 + ldrh w5, [x6,1080] + mov w4, w21 + ldrh w6, [x6,1082] + bl printk +.L1007: + add x0, x20, :lo12:.LANCHOR0 + mov w1, 255 + mov w2, 128 + ldr x0, [x0,80] + add x0, x0, 264 + strh wzr, [x0,-142] + bl ftl_memset + add x1, x25, :lo12:.LANCHOR4 + sub w0, w21, w19 + str w0, [x29,136] + ldrh w0, [x1,1082] + ldr w2, [x29,136] + cmp w2, w0 + bgt .L1008 + ldrh w1, [x1,1080] + sub w0, w22, w26 + cmp w0, w1 + bgt .L1008 +.L1015: + cbz w19, .L1017 + add x0, x20, :lo12:.LANCHOR0 + ldr x0, [x0,2800] + ldrh w0, [x0,134] + b .L1018 +.L1008: + add x9, x20, :lo12:.LANCHOR0 + adrp x27, .LC73 + adrp x28, .LC72 + mov w24, 0 + mov x23, x9 + str w24, [x29,140] + ldr x0, [x9,2800] + ldrh w21, [x0,134] + sub w0, w22, w26 + str w0, [x29,124] + add x0, x27, :lo12:.LC73 + str x0, [x29,112] + add x0, x28, :lo12:.LC72 + str x0, [x29,104] +.L1011: + ldrh w0, [x23,56] + cmp w0, w21 + bls .L1015 + uxtw x22, w21 + ldr x28, [x23,64] + lsl x27, x22, 2 + add x0, x28, x27 + ldrb w0, [x0,2] + and w1, w0, 224 + cmp w1, 224 + beq .L1012 + tst w0, 192 + cset w2, eq + cbnz w2, .L1012 + ubfx x0, x0, 3, 2 + and w0, w0, 2 + uxtb w1, w0 + add x0, x25, :lo12:.LANCHOR4 + cbz w1, .L1013 + ldrh w0, [x0,1082] + ldr w1, [x29,136] + cmp w1, w0 + ble .L1014 + ldr w0, [x28,x27] + add w1, w19, 1 + ubfx x0, x0, 11, 8 + cmp w0, w1 + bgt .L1014 + mov w1, w2 + mov w0, w21 + mov w2, 1 + bl gc_add_sblk + ldr w0, [x29,140] + add w0, w0, 1 + str w0, [x29,140] + ldr x0, [x29,128] + add x0, x0, :lo12:.LANCHOR2 + ldr w0, [x0,400] + tbz x0, 10, .L1014 + ldr x0, [x23,64] + ldr x11, [x23,72] + add x0, x0, x27 + ldrh w5, [x28,x27] + ldr w6, [x28,x27] + ldrb w2, [x0,2] + ldr x0, [x29,104] + b .L1042 +.L1013: + ldrh w0, [x0,1080] + ldr w2, [x29,124] + cmp w2, w0 + ble .L1014 + ldrh w0, [x28,x27] + add w2, w26, 1 + and w0, w0, 2047 + cmp w0, w2 + bgt .L1014 + mov w0, w21 + mov w2, 1 + add w24, w24, 1 + bl gc_add_sblk + ldr x0, [x29,128] + add x0, x0, :lo12:.LANCHOR2 + ldr w0, [x0,400] + tbz x0, 10, .L1014 + ldr x0, [x23,64] + ldr x11, [x23,72] + add x0, x0, x27 + ldrh w5, [x28,x27] + ldr w6, [x28,x27] + ldrb w2, [x0,2] + ldr x0, [x29,112] +.L1042: + ldrh w3, [x11,x22,lsl 1] + mov w1, w21 + ldrh w4, [x23,2896] + ubfx x2, x2, 5, 3 + and w5, w5, 2047 + ubfx x6, x6, 11, 8 + bl printk +.L1014: + cmp w24, 4 + bhi .L1015 + ldr w0, [x29,140] + cmp w0, 4 + bhi .L1015 +.L1012: + add w10, w21, 1 + uxth w21, w10 + b .L1011 +.L1020: + ubfiz x3, x0, 2, 16 + ldr x4, [x1,64] + ldr w1, [x4,x3] + ubfx x2, x1, 11, 8 + cmp w2, w19 + bcc .L1019 + sub w2, w2, w19 + bfi w1, w2, 11, 8 + str w1, [x4,x3] +.L1019: + add w0, w0, 1 + uxth w0, w0 +.L1018: + add x1, x20, :lo12:.LANCHOR0 + ldrh w2, [x1,56] + cmp w2, w0 + bhi .L1020 + ldr x0, [x1,2800] + ldrh w1, [x0,72] + add w1, w19, w1 + strh w1, [x0,72] + ldrh w1, [x0,98] + cmp w1, w19 + bls .L1017 + sub w19, w1, w19 + strh w19, [x0,98] +.L1017: + cbz w26, .L995 + add x0, x20, :lo12:.LANCHOR0 + ldr x0, [x0,2800] + ldrh w0, [x0,134] +.L1022: + add x1, x20, :lo12:.LANCHOR0 + ldrh w2, [x1,56] + cmp w2, w0 + bls .L1044 + ubfiz x3, x0, 2, 16 + ldr x4, [x1,64] + ldrh w1, [x4,x3] + and w2, w1, 2047 + cmp w2, w26 + blt .L1023 + sub w2, w2, w26 + bfi w1, w2, 0, 11 + strh w1, [x4,x3] +.L1023: + add w0, w0, 1 + uxth w0, w0 + b .L1022 +.L1044: + ldr x0, [x1,2800] + ldrh w1, [x0,74] + add w1, w26, w1 + strh w1, [x0,74] + ldrh w1, [x0,96] + cmp w1, w26 + bls .L995 + sub w7, w1, w26 + strh w7, [x0,96] + b .L995 +.L1001: + cmp w26, w8 + add w1, w1, 1 + csel w7, w26, w8, cc + cmp w22, w8 + add w9, w9, w8 + csel w8, w22, w8, hi + cmp w0, w12 + uxth w1, w1 + uxth w26, w7 + uxth w22, w8 + bne .L1025 + b .L1026 +.L995: + 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 gc_static_wearleveling, .-gc_static_wearleveling + .align 2 + .global zftl_sblk_list_init + .type zftl_sblk_list_init, %function +zftl_sblk_list_init: + stp x29, x30, [sp, -112]! + mov w1, 0 + add x29, sp, 0 + stp x21, x22, [sp,32] + adrp x21, .LANCHOR0 + stp x19, x20, [sp,16] + add x19, x21, :lo12:.LANCHOR0 + stp x23, x24, [sp,48] + stp x25, x26, [sp,64] + stp x27, x28, [sp,80] + mov w24, 6 + mov w23, 32768 + ldrh w2, [x19,56] + adrp x26, .LC74 + ldr x0, [x19,8] + mov w25, -1 + add x26, x26, :lo12:.LC74 + mul w2, w2, w24 + bl ftl_memset + ldrh w22, [x19,3228] + ldrb w0, [x19,3196] + str xzr, [x19,3240] + str xzr, [x19,3248] + mul w22, w0, w22 + str xzr, [x19,3256] + str xzr, [x19,3216] + sdiv w22, w23, w22 + str xzr, [x19,3208] + str xzr, [x19,3200] + strh wzr, [x19,2788] + strh wzr, [x19,2790] + strh wzr, [x19,2792] + strh wzr, [x19,2794] + strh wzr, [x19,2798] + strh wzr, [x19,2796] + sxth w0, w22 + str w0, [x29,108] + ldr x0, [x19,2800] + ldrsh w19, [x0,134] + strh wzr, [x0,146] +.L1046: + add x1, x21, :lo12:.LANCHOR0 + ldrh w0, [x1,56] + cmp w19, w0 + bge .L1076 + sxtw x22, w19 + ldr x27, [x1,64] + ldr w2, [x29,108] + add x27, x27, x22, lsl 2 + ldrb w0, [x27,3] + cbz w0, .L1047 + mov w0, 0 + ldrb w5, [x1,3196] + ldrh w6, [x1,3228] + mov w2, w0 + ldr x4, [x1,2800] +.L1048: + cmp w0, w5 + bge .L1077 + ldrb w1, [x27,3] + asr w1, w1, w0 + tbnz x1, 0, .L1049 + add w2, w6, w2 + sxth w2, w2 + b .L1050 +.L1049: + ldrh w1, [x4,146] + add w1, w1, 1 + strh w1, [x4,146] +.L1050: + add w0, w0, 1 + b .L1048 +.L1077: + cbz w2, .L1052 + sdiv w2, w23, w2 + sxth w2, w2 + b .L1047 +.L1052: + ldrb w0, [x27,2] + orr w0, w0, -32 + strb w0, [x27,2] + add x0, x21, :lo12:.LANCHOR0 + ldr x0, [x0,72] + strh w25, [x0,x22,lsl 1] +.L1047: + add x20, x21, :lo12:.LANCHOR0 + smull x0, w19, w24 + ldr x1, [x20,8] + add x1, x1, x0 + strh w2, [x1,4] + ldr x1, [x20,8] + add x2, x1, x0 + strh w25, [x2,2] + strh w25, [x1,x0] + ldrb w1, [x27,2] + and w0, w1, 224 + cmp w0, 224 + beq .L1055 + cmp w0, 32 + cset w28, eq + cbnz w28, .L1055 + ldr x2, [x20,80] + ldrh w4, [x2,16] + cmp w19, w4 + beq .L1055 + ldrh w4, [x2,48] + cmp w19, w4 + beq .L1055 + ldrh w2, [x2,80] + cmp w19, w2 + beq .L1055 + cmp w0, 64 + bne .L1057 + uxth w27, w19 + add x0, x20, 3208 + mov w1, w27 + add x2, x20, 2794 + b .L1074 +.L1057: + cmp w0, 96 + bne .L1058 + uxth w27, w19 + add x0, x20, 3216 + mov w1, w27 + add x2, x20, 2796 + b .L1074 +.L1058: + cmp w0, 160 + bne .L1059 + uxth w27, w19 + add x0, x20, 3200 + mov w1, w27 + add x2, x20, 2798 +.L1074: + bl _insert_data_list + ldr x0, [x20,72] + ldrh w0, [x0,x22,lsl 1] + cmp w0, 7 + bhi .L1055 + mov w0, w27 + mov w1, 1 + mov w2, w28 + b .L1072 +.L1059: + cbnz w0, .L1055 + ldr x0, [x20,72] + ldrh w2, [x0,x22,lsl 1] + cbz w2, .L1060 + mov x0, x26 + mov w1, w19 + bl printk + ldrb w0, [x27,2] + tbz x0, 4, .L1061 + mov w1, 5 + b .L1068 +.L1061: + mov w1, 2 +.L1068: + bfi w0, w1, 5, 3 + mov w2, 0 + strb w0, [x27,2] + mov w1, 1 + mov w0, w19 +.L1072: + bl gc_add_sblk + b .L1055 +.L1060: + ands w1, w1, 24 + add x2, x21, :lo12:.LANCHOR0 + bne .L1063 + add x0, x2, 3240 + mov w1, w19 + add x2, x2, 2788 + b .L1070 +.L1063: + cmp w1, 16 + bne .L1064 + add x0, x2, 3248 + mov w1, w19 + add x2, x2, 2790 + b .L1070 +.L1064: + add x0, x2, 3256 + mov w1, w19 + add x2, x2, 2792 +.L1070: + bl _insert_free_list +.L1055: + add w19, w19, 1 + sxth w19, w19 + b .L1046 +.L1076: + ldr x0, [x1,2800] + ldrh w2, [x1,2788] + strh w2, [x0,114] + ldrh w2, [x1,2790] + strh w2, [x0,118] + ldrh w2, [x1,2792] + strh w2, [x0,116] + ldrh w2, [x1,2794] + strh w2, [x0,122] + ldrh w2, [x1,2798] + ldrh w1, [x1,2796] + strh w2, [x0,120] + strh w1, [x0,124] + 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 zftl_sblk_list_init, .-zftl_sblk_list_init + .align 2 .global ftl_open_sblk_init .type ftl_open_sblk_init, %function ftl_open_sblk_init: @@ -6101,7 +7286,7 @@ ftl_open_sblk_init: add x29, sp, 0 stp x19, x20, [sp,16] stp x23, x24, [sp,48] - adrp x20, .LC97 + adrp x20, .LC67 adrp x23, .LANCHOR0 stp x25, x26, [sp,64] stp x21, x22, [sp,32] @@ -6110,10 +7295,10 @@ ftl_open_sblk_init: mov w21, w1 add x25, x0, 16 mov x26, x23 - add x20, x20, :lo12:.LC97 + add x20, x20, :lo12:.LC67 mov w24, -1 -.L857: -.L860: +.L1079: +.L1082: mov w0, w21 bl ftl_alloc_sblk uxth w22, w0 @@ -6129,41 +7314,41 @@ ftl_open_sblk_init: cmp w21, 2 strh wzr, [x19,2] mov w3, 0 - ldrh w1, [x0,3234] + ldrh w1, [x0,3228] strb wzr, [x19,5] strh wzr, [x19,10] mul w2, w1, w2 strh w2, [x19,6] strb w21, [x19,4] - beq .L858 - ldrb w3, [x0,3212] + beq .L1080 + ldrb w3, [x0,3196] mul w3, w1, w3 uxth w3, w3 -.L858: +.L1080: add x27, x26, :lo12:.LANCHOR0 strh w3, [x19,12] ubfiz x28, x22, 1, 16 - ldrb w2, [x27,3212] - ldr x0, [x27,3752] + ldrb w2, [x27,3196] + ldr x0, [x27,3792] add x0, x0, x3, uxth 2 mul w2, w1, w2 mov w1, 255 lsl w2, w2, 2 bl ftl_memset - ldr x0, [x27,2832] + ldr x0, [x27,72] ldrh w1, [x19,6] strh w1, [x0,x28] ldrb w0, [x19,9] - cbnz w0, .L856 + cbnz w0, .L1078 mov x0, x20 mov w1, w22 bl printk - ldr x0, [x27,2832] + ldr x0, [x27,72] strh w24, [x0,x28] mov w0, 7 strb w0, [x19,4] - b .L860 -.L856: + b .L1082 +.L1078: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -6176,49 +7361,49 @@ ftl_open_sblk_init: .global pm_free_sblk .type pm_free_sblk, %function pm_free_sblk: - stp x29, x30, [sp, -368]! + stp x29, x30, [sp, -352]! add x29, sp, 0 - stp x23, x24, [sp,48] - adrp x23, .LANCHOR4 - stp x19, x20, [sp,16] - add x19, x23, :lo12:.LANCHOR4 stp x21, x22, [sp,32] + adrp x21, .LANCHOR4 + str x27, [sp,80] + stp x19, x20, [sp,16] + add x19, x21, :lo12:.LANCHOR4 + stp x23, x24, [sp,48] stp x25, x26, [sp,64] - stp x27, x28, [sp,80] - ldrh w0, [x19,1040] + ldrh w0, [x19,1084] cmp w0, 128 - bls .L863 + bls .L1085 adrp x1, .LANCHOR3 - adrp x0, .LC34 + adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR3 - add x0, x0, :lo12:.LC34 - add x1, x1, 96 + add x0, x0, :lo12:.LC0 + add x1, x1, 72 mov w2, 74 bl printk -.L864: - b .L864 -.L863: - add x24, x29, 112 +.L1086: + b .L1086 +.L1085: + add x23, x29, 96 mov w1, 0 mov w2, 256 - mov x0, x24 - adrp x21, .LANCHOR0 + mov x0, x23 + adrp x22, .LANCHOR0 bl ftl_memset - add x2, x21, :lo12:.LANCHOR0 + add x2, x22, :lo12:.LANCHOR0 mov w0, 21 mov w1, 1 - ldrh w9, [x19,1040] + ldrh w9, [x19,1084] mov x3, 0 ldr x4, [x2,2800] - ldrh w6, [x2,3218] - ldrb w8, [x2,3216] + ldrh w6, [x2,3266] + ldrb w8, [x2,3264] sub w0, w0, w6 ldrh w7, [x4,698] lsl w0, w1, w0 sub w0, w0, #1 -.L865: +.L1087: cmp w7, w3, uxth - bls .L886 + bls .L1108 add x1, x4, x3, lsl 2 mov x2, 0 ldr w1, [x1,704] @@ -6226,93 +7411,82 @@ pm_free_sblk: and w1, w1, w0 udiv w1, w1, w8 uxth w1, w1 -.L866: +.L1088: cmp w9, w2, uxth - bls .L887 + bls .L1109 add x5, x4, x2, lsl 1 ldrh w5, [x5,416] cmp w5, w1 - bne .L867 - ldrh w5, [x24,x2,lsl 1] + bne .L1089 + ldrh w5, [x23,x2,lsl 1] add w5, w5, 1 - strh w5, [x24,x2,lsl 1] -.L867: + strh w5, [x23,x2,lsl 1] +.L1089: add x2, x2, 1 - b .L866 -.L887: + b .L1088 +.L1109: add x3, x3, 1 - b .L865 -.L886: - add x1, x21, :lo12:.LANCHOR0 + b .L1087 +.L1108: + add x0, x22, :lo12:.LANCHOR0 mov w25, 0 - adrp x26, .LC100 mov w19, w25 - mov w28, 65535 - add x26, x26, :lo12:.LC100 - ldrb w0, [x1,3212] - mov w5, -1 - ldrh w20, [x1,3234] - mul w20, w0, w20 + mov w26, 65535 + mov w27, -1 + ldrb w1, [x0,3196] + ldrh w20, [x0,3228] + mul w20, w1, w20 uxth w20, w20 -.L870: - add x0, x23, :lo12:.LANCHOR4 - ldrh w0, [x0,1040] +.L1092: + add x0, x21, :lo12:.LANCHOR4 + ldrh w0, [x0,1084] cmp w0, w19 - bls .L888 - add x1, x21, :lo12:.LANCHOR0 - sxtw x22, w19 - add x0, x22, 208 - ldr x4, [x1,2800] - ldrb w2, [x1,3216] - ldrh w3, [x4,x0,lsl 1] - ldrh w0, [x4,692] - sdiv w0, w0, w2 - cmp w0, w3 - bne .L871 - ldrb w0, [x1,3212] - ldrh w1, [x1,3234] - mul w0, w0, w1 - strh w0, [x24,w19,sxtw 1] -.L871: - ldrh w1, [x24,x22,lsl 1] + bls .L1110 + add x1, x22, :lo12:.LANCHOR0 + sxtw x24, w19 + add x0, x24, 208 + ldr x2, [x1,2800] + ldrb w3, [x1,3264] + ldrh w0, [x2,x0,lsl 1] + ldrh w2, [x2,692] + sdiv w2, w2, w3 + cmp w2, w0 + bne .L1093 + ldrb w2, [x1,3196] + ldrh w1, [x1,3228] + mul w1, w2, w1 + strh w1, [x23,w19,sxtw 1] +.L1093: + ldrh w1, [x23,x24,lsl 1] cmp w20, w1 - bls .L872 + bls .L1094 cmp w1, wzr csel w25, w25, w19, eq csel w20, w20, w1, eq -.L872: - cbnz w1, .L874 - cmp w3, w28 - beq .L874 - ldrh w4, [x4,688] - mov w1, w19 - mov w2, 0 - add x27, x21, :lo12:.LANCHOR0 - mov x0, x26 - str x5, [x29,104] - add x22, x22, 208 - bl printk - ldr x0, [x27,2800] - ldrh w0, [x0,x22,lsl 1] +.L1094: + cbnz w1, .L1096 + cmp w0, w26 + beq .L1096 bl ftl_free_sblk - ldr x0, [x27,2800] - ldr x5, [x29,104] - strh w5, [x0,x22,lsl 1] + add x24, x24, 208 + add x0, x22, :lo12:.LANCHOR0 + ldr x0, [x0,2800] + strh w27, [x0,x24,lsl 1] ldrh w1, [x0,688] sub w1, w1, #1 strh w1, [x0,688] -.L874: +.L1096: add w19, w19, 1 uxth w19, w19 - b .L870 -.L888: + b .L1092 +.L1110: mov w0, w25 + ldr x27, [sp,80] ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] ldp x25, x26, [sp,64] - ldp x27, x28, [sp,80] - ldp x29, x30, [sp], 368 + ldp x29, x30, [sp], 352 ret .size pm_free_sblk, .-pm_free_sblk .align 2 @@ -6331,35 +7505,30 @@ ftl_memcpy: .type flash_into_data_init, %function flash_into_data_init: stp x29, x30, [sp, -32]! - adrp x2, .LANCHOR3 - adrp x0, .LC101 + mov w1, 0 + mov w2, 2048 add x29, sp, 0 str x19, [sp,16] - add x2, x2, :lo12:.LANCHOR3 adrp x19, .LANCHOR0 - mov w1, 100 add x19, x19, :lo12:.LANCHOR0 - add x2, x2, 112 - add x0, x0, :lo12:.LC101 - bl printk - ldr x0, [x19,152] - mov w1, 0 - mov w2, 2048 + ldr x0, [x19,144] bl ftl_memset - ldr x1, [x19,152] + ldr x1, [x19,144] mov w0, 21321 movk w0, 0x5359, lsl 16 mov w2, 32 str w0, [x1] mov w1, 2032 - ldr x0, [x19,152] + ldr x0, [x19,144] add x0, x0, 80 str w1, [x0,-72] mov w1, 1 strh w1, [x0,-64] - add x1, x19, 64 + adrp x1, .LANCHOR4 + add x1, x1, :lo12:.LANCHOR4 + add x1, x1, 1088 bl ftl_memcpy - ldr x0, [x19,152] + ldr x0, [x19,144] adrp x1, .LANCHOR2 add x1, x1, :lo12:.LANCHOR2 mov w2, 32 @@ -6375,14 +7544,14 @@ flash_into_data_init: .type ftl_memcpy32, %function ftl_memcpy32: mov x3, 0 -.L892: +.L1114: cmp w2, w3 - bls .L894 + bls .L1116 ldr w4, [x1,x3,lsl 2] str w4, [x0,x3,lsl 2] add x3, x3, 1 - b .L892 -.L894: + b .L1114 +.L1116: ret .size ftl_memcpy32, .-ftl_memcpy32 .align 2 @@ -6404,17 +7573,17 @@ js_hash: mov w0, 42982 mov x2, 0 movk w0, 0x47c6, lsl 16 -.L897: +.L1119: cmp w1, w2 - bls .L899 + bls .L1121 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 .L897 -.L899: + b .L1119 +.L1121: ret .size js_hash, .-js_hash .align 2 @@ -6425,8 +7594,8 @@ timer_get_time: stp x29, x30, [sp, -16]! add x29, sp, 0 ldr x1, [x0,#:lo12:jiffies] - adrp x0, .LANCHOR4+1048 - ldr x0, [x0,#:lo12:.LANCHOR4+1048] + adrp x0, .LANCHOR4+1120 + ldr x0, [x0,#:lo12:.LANCHOR4+1120] sub x0, x1, x0 bl jiffies_to_msecs ldp x29, x30, [sp], 16 @@ -6446,10 +7615,10 @@ StorageSysDataLoad: mov w1, 0 bl ftl_memset bl rknand_device_lock - adrp x0, .LANCHOR4+1056 + adrp x0, .LANCHOR4+1128 mov x2, x19 mov w1, 1 - ldr x0, [x0,#:lo12:.LANCHOR4+1056] + ldr x0, [x0,#:lo12:.LANCHOR4+1128] ldr x3, [x0,24] mov w0, w20 blr x3 @@ -6469,10 +7638,10 @@ StorageSysDataStore: str x0, [x29,16] str x1, [x29,24] bl rknand_device_lock - adrp x1, .LANCHOR4+1056 + adrp x1, .LANCHOR4+1128 ldr x2, [x29,24] ldr x0, [x29,16] - ldr x1, [x1,#:lo12:.LANCHOR4+1056] + ldr x1, [x1,#:lo12:.LANCHOR4+1128] ldr x3, [x1,32] mov w1, 1 blr x3 @@ -6492,11 +7661,11 @@ FlashBootVendorRead: str x1, [x29,32] str x2, [x29,40] bl rknand_device_lock - adrp x3, .LANCHOR4+1056 + adrp x3, .LANCHOR4+1128 ldr x1, [x29,32] ldr x2, [x29,40] ldr x0, [x29,24] - ldr x3, [x3,#:lo12:.LANCHOR4+1056] + ldr x3, [x3,#:lo12:.LANCHOR4+1128] ldr x3, [x3,8] blr x3 str x0, [x29,40] @@ -6515,11 +7684,11 @@ FlashBootVendorWrite: str x1, [x29,32] str x2, [x29,40] bl rknand_device_lock - adrp x3, .LANCHOR4+1056 + adrp x3, .LANCHOR4+1128 ldr x1, [x29,32] ldr x2, [x29,40] ldr x0, [x29,24] - ldr x3, [x3,#:lo12:.LANCHOR4+1056] + ldr x3, [x3,#:lo12:.LANCHOR4+1128] ldr x3, [x3,16] blr x3 str x0, [x29,40] @@ -6532,20 +7701,20 @@ FlashBootVendorWrite: .global flash_sram_load_store .type flash_sram_load_store, %function flash_sram_load_store: - adrp x4, .LANCHOR4+1064 + adrp x4, .LANCHOR4+1136 mov x6, x0 stp x29, x30, [sp, -16]! uxtw x1, w1 add x29, sp, 0 - ldr x4, [x4,#:lo12:.LANCHOR4+1064] + ldr x4, [x4,#:lo12:.LANCHOR4+1136] add x4, x4, 4096 - cbnz w2, .L906 + cbnz w2, .L1128 add x1, x4, x1 - b .L908 -.L906: + b .L1130 +.L1128: add x0, x4, x1 mov x1, x6 -.L908: +.L1130: mov w2, w3 bl ftl_memcpy ldp x29, x30, [sp], 16 @@ -6562,13 +7731,13 @@ FlashCs123Init: .type rk_ftl_de_init, %function rk_ftl_de_init: stp x29, x30, [sp, -16]! - adrp x0, .LC102 + adrp x0, .LC75 mov w1, 0 add x29, sp, 0 - add x0, x0, :lo12:.LC102 + add x0, x0, :lo12:.LC75 bl printk - adrp x0, .LANCHOR4+1056 - ldr x0, [x0,#:lo12:.LANCHOR4+1056] + adrp x0, .LANCHOR4+1128 + ldr x0, [x0,#:lo12:.LANCHOR4+1128] ldr x0, [x0,80] blr x0 ldp x29, x30, [sp], 16 @@ -6578,10 +7747,10 @@ rk_ftl_de_init: .global rk_ftl_cache_write_back .type rk_ftl_cache_write_back, %function rk_ftl_cache_write_back: - adrp x0, .LANCHOR4+1056 + adrp x0, .LANCHOR4+1128 stp x29, x30, [sp, -16]! add x29, sp, 0 - ldr x0, [x0,#:lo12:.LANCHOR4+1056] + ldr x0, [x0,#:lo12:.LANCHOR4+1128] ldr x1, [x0,64] mov w0, 0 blr x1 @@ -6592,10 +7761,10 @@ rk_ftl_cache_write_back: .global rk_nand_suspend .type rk_nand_suspend, %function rk_nand_suspend: - adrp x0, .LANCHOR4+1056 + adrp x0, .LANCHOR4+1128 stp x29, x30, [sp, -16]! add x29, sp, 0 - ldr x0, [x0,#:lo12:.LANCHOR4+1056] + ldr x0, [x0,#:lo12:.LANCHOR4+1128] ldr x0, [x0,88] blr x0 ldp x29, x30, [sp], 16 @@ -6605,10 +7774,10 @@ rk_nand_suspend: .global rk_nand_resume .type rk_nand_resume, %function rk_nand_resume: - adrp x0, .LANCHOR4+1056 + adrp x0, .LANCHOR4+1128 stp x29, x30, [sp, -16]! add x29, sp, 0 - ldr x0, [x0,#:lo12:.LANCHOR4+1056] + ldr x0, [x0,#:lo12:.LANCHOR4+1128] ldr x0, [x0,96] blr x0 ldp x29, x30, [sp], 16 @@ -6618,10 +7787,10 @@ rk_nand_resume: .global rk_ftl_get_capacity .type rk_ftl_get_capacity, %function rk_ftl_get_capacity: - adrp x0, .LANCHOR4+1056 + adrp x0, .LANCHOR4+1128 stp x29, x30, [sp, -16]! add x29, sp, 0 - ldr x0, [x0,#:lo12:.LANCHOR4+1056] + ldr x0, [x0,#:lo12:.LANCHOR4+1128] ldr x1, [x0,72] mov w0, 0 blr x1 @@ -6632,10 +7801,10 @@ rk_ftl_get_capacity: .global rk_nandc_get_irq_status .type rk_nandc_get_irq_status, %function rk_nandc_get_irq_status: - adrp x1, .LANCHOR4+1056 + adrp x1, .LANCHOR4+1128 stp x29, x30, [sp, -16]! add x29, sp, 0 - ldr x1, [x1,#:lo12:.LANCHOR4+1056] + ldr x1, [x1,#:lo12:.LANCHOR4+1128] ldr x1, [x1,120] blr x1 ldp x29, x30, [sp], 16 @@ -6645,10 +7814,10 @@ rk_nandc_get_irq_status: .global rknand_proc_ftlread .type rknand_proc_ftlread, %function rknand_proc_ftlread: - adrp x1, .LANCHOR4+1056 + adrp x1, .LANCHOR4+1128 stp x29, x30, [sp, -16]! add x29, sp, 0 - ldr x1, [x1,#:lo12:.LANCHOR4+1056] + ldr x1, [x1,#:lo12:.LANCHOR4+1128] ldr x1, [x1,128] blr x1 ldp x29, x30, [sp], 16 @@ -6658,11 +7827,11 @@ rknand_proc_ftlread: .global FtlWrite .type FtlWrite, %function FtlWrite: - adrp x4, .LANCHOR4+1056 + adrp x4, .LANCHOR4+1128 uxtb w0, w0 stp x29, x30, [sp, -16]! add x29, sp, 0 - ldr x4, [x4,#:lo12:.LANCHOR4+1056] + ldr x4, [x4,#:lo12:.LANCHOR4+1128] ldr x4, [x4,48] blr x4 ldp x29, x30, [sp], 16 @@ -6672,11 +7841,11 @@ FtlWrite: .global FtlRead .type FtlRead, %function FtlRead: - adrp x4, .LANCHOR4+1056 + adrp x4, .LANCHOR4+1128 uxtb w0, w0 stp x29, x30, [sp, -16]! add x29, sp, 0 - ldr x4, [x4,#:lo12:.LANCHOR4+1056] + ldr x4, [x4,#:lo12:.LANCHOR4+1128] ldr x4, [x4,40] blr x4 ldp x29, x30, [sp], 16 @@ -6686,10 +7855,10 @@ FtlRead: .global FtlDiscard .type FtlDiscard, %function FtlDiscard: - adrp x2, .LANCHOR4+1056 + adrp x2, .LANCHOR4+1128 stp x29, x30, [sp, -16]! add x29, sp, 0 - ldr x2, [x2,#:lo12:.LANCHOR4+1056] + ldr x2, [x2,#:lo12:.LANCHOR4+1128] ldr x2, [x2,56] blr x2 ldp x29, x30, [sp], 16 @@ -6699,10 +7868,10 @@ FtlDiscard: .global rk_ftl_garbage_collect .type rk_ftl_garbage_collect, %function rk_ftl_garbage_collect: - adrp x2, .LANCHOR4+1056 + adrp x2, .LANCHOR4+1128 stp x29, x30, [sp, -16]! add x29, sp, 0 - ldr x2, [x2,#:lo12:.LANCHOR4+1056] + ldr x2, [x2,#:lo12:.LANCHOR4+1128] ldr x2, [x2,104] blr x2 ldp x29, x30, [sp], 16 @@ -6712,10 +7881,10 @@ rk_ftl_garbage_collect: .global ReadFlashInfo .type ReadFlashInfo, %function ReadFlashInfo: - adrp x1, .LANCHOR4+1056 + adrp x1, .LANCHOR4+1128 stp x29, x30, [sp, -16]! add x29, sp, 0 - ldr x1, [x1,#:lo12:.LANCHOR4+1056] + ldr x1, [x1,#:lo12:.LANCHOR4+1128] ldr x1, [x1,112] blr x1 ldp x29, x30, [sp], 16 @@ -6731,9 +7900,9 @@ rknand_print_hex: stp x21, x22, [sp,32] stp x23, x24, [sp,48] mov x19, 0 - adrp x23, .LC103 - adrp x21, .LC104 - adrp x24, .LC46 + adrp x23, .LC76 + adrp x21, .LC77 + adrp x24, .LC8 stp x25, x26, [sp,64] str x27, [sp,80] mov x22, x1 @@ -6741,49 +7910,49 @@ rknand_print_hex: mov w25, w2 uxtw x26, w3 mov w20, w19 - add x23, x23, :lo12:.LC103 - add x21, x21, :lo12:.LC104 - add x24, x24, :lo12:.LC46 -.L923: + add x23, x23, :lo12:.LC76 + add x21, x21, :lo12:.LC77 + add x24, x24, :lo12:.LC8 +.L1145: cmp x19, x26 - beq .L931 - cbnz w20, .L924 + beq .L1153 + cbnz w20, .L1146 mov x0, x23 mov x1, x27 mov x2, x22 mov w3, w19 bl printk -.L924: +.L1146: cmp w25, 4 mov x0, x21 - bne .L925 + bne .L1147 ldr w1, [x22,x19,lsl 2] - b .L930 -.L925: + b .L1152 +.L1147: cmp w25, 2 - bne .L927 + bne .L1149 ldrsh w1, [x22,x19,lsl 1] - b .L930 -.L927: + b .L1152 +.L1149: ldrb w1, [x22,x19] -.L930: +.L1152: bl printk add w20, w20, 1 cmp w20, 15 - bls .L928 - adrp x1, .LC105 + bls .L1150 + adrp x1, .LC78 mov x0, x24 - add x1, x1, :lo12:.LC105 + add x1, x1, :lo12:.LC78 mov w20, 0 bl printk -.L928: +.L1150: add x19, x19, 1 - b .L923 -.L931: - adrp x0, .LC46 - adrp x1, .LC105 - add x1, x1, :lo12:.LC105 - add x0, x0, :lo12:.LC46 + b .L1145 +.L1153: + adrp x0, .LC8 + adrp x1, .LC78 + add x1, x1, :lo12:.LC78 + add x0, x0, :lo12:.LC8 bl printk ldr x27, [sp,80] ldp x19, x20, [sp,16] @@ -6811,7 +7980,7 @@ hynix_get_read_retry_default: stp x27, x28, [sp,80] cmp w25, 2 str x19, [x29,128] - ldr x27, [x0,152] + ldr x27, [x0,144] add x0, x27, 112 str x0, [x29,136] mov w0, -84 @@ -6822,30 +7991,30 @@ hynix_get_read_retry_default: add x26, x27, 128 strb w1, [x27,130] strb w0, [x27,131] - bne .L933 + bne .L1155 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 .L988 -.L933: + b .L1210 +.L1155: cmp w25, 3 - bne .L935 + bne .L1157 mov x4, 0 -.L936: +.L1158: sub w0, w4, #80 strb w0, [x26,x4] add x4, x4, 1 cmp x4, 8 - bne .L936 + bne .L1158 mov w21, w4 mov w28, w4 - b .L934 -.L935: + b .L1156 +.L1157: cmp w25, 4 - bne .L937 + bne .L1159 mov w4, -52 strb w4, [x27,128] mov w4, -65 @@ -6861,10 +8030,10 @@ hynix_get_read_retry_default: strb w1, [x27,134] strb w4, [x27,132] strb w0, [x27,135] - b .L934 -.L937: + b .L1156 +.L1159: cmp w25, 5 - bne .L938 + bne .L1160 mov w0, 56 strb w0, [x27,128] mov w0, 57 @@ -6874,10 +8043,10 @@ hynix_get_read_retry_default: strb w0, [x27,130] mov w0, 59 strb w0, [x27,131] - b .L1022 -.L938: + b .L1244 +.L1160: cmp w25, 6 - bne .L939 + bne .L1161 mov w0, 14 strb w0, [x27,128] mov w0, 15 @@ -6887,32 +8056,32 @@ hynix_get_read_retry_default: strb w0, [x27,130] mov w0, 17 strb w0, [x27,131] - b .L1022 -.L939: + b .L1244 +.L1161: cmp w25, 7 - bne .L988 + bne .L1210 mov x0, 0 -.L940: +.L1162: sub w1, w0, #80 strb w1, [x26,x0] add x0, x0, 1 cmp x0, 8 - bne .L940 + bne .L1162 mov w0, -44 mov w21, 12 strb w0, [x27,136] mov w28, 10 mov w0, -43 strb w0, [x27,137] - b .L934 -.L988: + b .L1156 +.L1210: mov w21, 7 -.L1022: +.L1244: mov w28, 4 -.L934: +.L1156: sub w0, w25, #1 cmp w0, 1 - bhi .L1019 + bhi .L1241 ldr x0, [x29,128] adrp x24, .LANCHOR2 add x24, x24, :lo12:.LANCHOR2 @@ -6920,21 +8089,21 @@ hynix_get_read_retry_default: add x19, x0, :lo12:.LANCHOR0 mov w27, 55 add x24, x24, 408 -.L941: - ldrb w0, [x19,57] +.L1163: + ldrb w0, [x19,152] cmp w0, w23 - bls .L948 + bls .L1170 add x0, x19, x23, sxtw ldr x2, [x29,136] - ldrb w0, [x0,160] + ldrb w0, [x0,156] mov x20, 160 - ldr x22, [x19,8] + ldr x22, [x19,16] mov x25, 0 ubfiz x1, x0, 8, 8 madd x20, x0, x20, x2 add x22, x22, x1 add x20, x20, 32 -.L943: +.L1165: str w27, [x22,2056] ldrb w0, [x26,x25] str w0, [x22,2052] @@ -6944,12 +8113,12 @@ hynix_get_read_retry_default: strb w0, [x20,x25] add x25, x25, 1 cmp w28, w25, uxtb - bhi .L943 + bhi .L1165 mov x0, 0 -.L944: +.L1166: add w2, w0, 8 mov x1, 0 -.L945: +.L1167: add x3, x1, x0 add x1, x1, 4 add x3, x24, x3 @@ -6959,10 +8128,10 @@ hynix_get_read_retry_default: add w3, w5, w3 strb w3, [x20,w2,sxtw] add w2, w2, 8 - bne .L945 + bne .L1167 add x0, x0, 1 cmp x0, 4 - bne .L944 + bne .L1166 add w23, w23, 1 strb wzr, [x20,16] strb wzr, [x20,24] @@ -6972,11 +8141,11 @@ hynix_get_read_retry_default: strb wzr, [x20,48] strb wzr, [x20,41] strb wzr, [x20,49] - b .L941 -.L1019: + b .L1163 +.L1241: sub w0, w25, #3 cmp w0, 4 - bhi .L948 + bhi .L1170 mul w0, w28, w21 sub w23, w28, #1 mov w20, 0 @@ -6990,13 +8159,13 @@ hynix_get_read_retry_default: adrp x26, .LANCHOR4 add x0, x23, 1 str x0, [x29,112] -.L949: +.L1171: ldr x0, [x29,128] add x0, x0, :lo12:.LANCHOR0 - ldrb w1, [x0,57] + ldrb w1, [x0,152] cmp w1, w20 - bhi .L987 -.L948: + bhi .L1209 +.L1170: ldr x0, [x29,136] strb w28, [x0,1] strb w21, [x0,2] @@ -7007,10 +8176,10 @@ hynix_get_read_retry_default: ldp x27, x28, [sp,80] ldp x29, x30, [sp], 144 ret -.L987: +.L1209: add x1, x0, x20, sxtw - ldrb w1, [x1,160] - ldr x0, [x0,8] + ldrb w1, [x1,156] + ldr x0, [x0,16] mov x24, 160 ubfiz x2, x1, 8, 8 ldr x3, [x29,136] @@ -7025,28 +8194,28 @@ hynix_get_read_retry_default: cmp w25, 4 str w0, [x23,2056] ldr x1, [x29,104] - bne .L950 + bne .L1172 mov w0, 64 str w1, [x23,2052] str w0, [x23,2048] mov w0, 204 - b .L1023 -.L950: + b .L1245 +.L1172: cmp w19, 1 - bhi .L952 + bhi .L1174 ldrb w0, [x27,128] str w0, [x23,2052] mov w0, 82 - b .L1024 -.L952: + b .L1246 +.L1174: mov w0, 174 str w0, [x23,2052] str wzr, [x23,2048] mov w0, 176 -.L1023: +.L1245: str w0, [x23,2052] mov w0, 77 -.L1024: +.L1246: str w0, [x23,2048] mov w0, 22 str w0, [x23,2056] @@ -7060,13 +8229,13 @@ hynix_get_read_retry_default: str wzr, [x23,2056] str wzr, [x23,2052] str wzr, [x23,2052] - bne .L953 + bne .L1175 mov w0, 31 str w0, [x23,2052] - b .L954 -.L953: + b .L1176 +.L1175: str wzr, [x23,2052] -.L954: +.L1176: mov w7, 2 str w7, [x23,2052] str wzr, [x23,2052] @@ -7076,89 +8245,89 @@ hynix_get_read_retry_default: bl nandc_wait_flash_ready cmp w19, 1 mov w1, 16 - bls .L956 + bls .L1178 ldr x7, [x29,104] cmp w25, 7 mov w1, 32 csel w1, w1, w7, eq -.L956: +.L1178: adrp x0, .LANCHOR4 mov x7, 0 add x0, x0, :lo12:.LANCHOR4 - ldr x0, [x0,1072] -.L957: + ldr x0, [x0,1144] +.L1179: ldr w8, [x23,2048] strb w8, [x0,x7] add x7, x7, 1 cmp w1, w7, uxtb - bhi .L957 + bhi .L1179 cmp w25, 7 - bne .L958 + bne .L1180 mov w1, 0 -.L960: +.L1182: ldrb w7, [x0] cmp w7, 12 - beq .L959 + beq .L1181 ldrb w7, [x0,1] cmp w7, 10 - beq .L959 + beq .L1181 add w1, w1, 1 add x0, x0, 4 uxtb w1, w1 cmp w1, 8 - bne .L960 - b .L961 -.L959: + bne .L1182 + b .L1183 +.L1181: cmp w1, 7 - bne .L962 -.L961: - adrp x0, .LC106 + bne .L1184 +.L1183: + adrp x0, .LC79 mov w1, 0 - add x0, x0, :lo12:.LC106 + add x0, x0, :lo12:.LC79 bl printk -.L963: - b .L963 -.L958: +.L1185: + b .L1185 +.L1180: cmp w25, 6 - bne .L962 + bne .L1184 mov x1, 0 -.L964: +.L1186: ldrb w7, [x0,x1] cmp w7, 12 - beq .L962 + beq .L1184 add x7, x0, x1 ldrb w7, [x7,8] cmp w7, 4 - beq .L962 + beq .L1184 add x1, x1, 1 cmp x1, 8 - bne .L964 - adrp x0, .LC106 + bne .L1186 + adrp x0, .LC79 mov w1, 0 - add x0, x0, :lo12:.LC106 + add x0, x0, :lo12:.LC79 bl printk -.L966: - b .L966 -.L962: +.L1188: + b .L1188 +.L1184: add x0, x26, :lo12:.LANCHOR4 - ldr x9, [x0,1072] + ldr x9, [x0,1144] mov x0, 0 -.L967: +.L1189: ldr w1, [x29,120] cmp w1, w0 - ble .L1026 + ble .L1248 ldr w1, [x23,2048] strb w1, [x9,x0] add x0, x0, 1 - b .L967 -.L1026: + b .L1189 +.L1248: add x0, x26, :lo12:.LANCHOR4 mov w8, w22 mov w7, 8 - ldr x11, [x0,1072] -.L970: + ldr x11, [x0,1144] +.L1192: mov w0, 0 -.L969: +.L1191: add w1, w0, w8 add w0, w0, 1 sbfiz x1, x1, 2, 32 @@ -7166,96 +8335,96 @@ hynix_get_read_retry_default: ldr w10, [x11,x1] mvn w10, w10 str w10, [x11,x1] - bne .L969 + bne .L1191 ldr w0, [x29,124] subs w7, w7, #1 add w8, w8, w0 - bne .L970 + bne .L1192 mov x7, 0 mov w15, 1 -.L971: +.L1193: add x0, x26, :lo12:.LANCHOR4 mov w1, 0 mov w10, w1 - ldr x14, [x0,1072] -.L975: + ldr x14, [x0,1144] +.L1197: lsl w8, w15, w10 mov w12, w7 mov w0, 16 mov w11, 0 -.L973: +.L1195: 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 .L973 + bne .L1195 cmp w11, 9 orr w8, w1, w8 add w10, w10, 1 csel w1, w8, w1, cs cmp w10, 32 - bne .L975 + bne .L1197 str w1, [x14,x7,lsl 2] add x7, x7, 1 cmp w22, w7 - bgt .L971 + bgt .L1193 add x1, x26, :lo12:.LANCHOR4 mov x7, 0 mov w8, w7 - ldr x1, [x1,1072] -.L978: + ldr x1, [x1,1144] +.L1200: ldr w10, [x1,x7] add x7, x7, 4 cmp w10, wzr csinc w8, w8, w8, ne cmp x7, 32 - bne .L978 + bne .L1200 cmp w8, 7 - ble .L979 - adrp x0, .LC107 + ble .L1201 + adrp x0, .LC80 mov w2, 1 - add x0, x0, :lo12:.LC107 + add x0, x0, :lo12:.LC80 mov w3, 1024 bl rknand_print_hex - adrp x0, .LC106 + adrp x0, .LC79 mov w1, 0 - add x0, x0, :lo12:.LC106 + add x0, x0, :lo12:.LC79 bl printk -.L980: - b .L980 -.L979: +.L1202: + b .L1202 +.L1201: cmp w25, 6 mov w7, 4 - beq .L981 + beq .L1203 cmp w25, 7 mov w7, 10 mov w1, 8 csel w7, w1, w7, ne -.L981: +.L1203: mov w8, 0 -.L982: +.L1204: mov x1, 0 -.L983: +.L1205: add w10, w0, w1 ldrb w11, [x9,x1] add x1, x1, 1 cmp w28, w1, uxtb strb w11, [x24,w10,sxtw] - bhi .L983 + bhi .L1205 add w8, w8, 1 ldr x1, [x29,112] cmp w8, w21 add w0, w0, w7 add x9, x9, x1 - blt .L982 + blt .L1204 mov w24, 255 str w24, [x23,2056] bl nandc_wait_flash_ready cmp w19, 1 mov w0, 56 - bhi .L1025 + bhi .L1247 mov w0, 54 str w0, [x23,2056] ldrb w0, [x27,128] @@ -7270,12 +8439,12 @@ hynix_get_read_retry_default: str w24, [x23,2052] str w24, [x23,2052] str w24, [x23,2052] -.L1025: +.L1247: str w0, [x23,2056] add w20, w20, 1 bl nandc_wait_flash_ready uxtb w20, w20 - b .L949 + b .L1171 .size hynix_get_read_retry_default, .-hynix_get_read_retry_default .align 2 .global flash_get_read_retry_tbl @@ -7288,9 +8457,9 @@ flash_get_read_retry_tbl: sub w1, w0, #1 uxtb w1, w1 cmp w1, 6 - bhi .L1027 + bhi .L1249 bl hynix_get_read_retry_default -.L1027: +.L1249: ldp x29, x30, [sp], 16 ret .size flash_get_read_retry_tbl, .-flash_get_read_retry_tbl @@ -7305,48 +8474,48 @@ nandc_xfer_done: add x20, x19, :lo12:.LANCHOR0 stp x21, x22, [sp,32] stp x23, x24, [sp,48] - ldr x0, [x20,8] + ldr x0, [x20,16] bl wait_for_nandc_xfer_completed - ldr x21, [x20,8] + ldr x21, [x20,16] ldrb w0, [x19,#:lo12:.LANCHOR0] cmp w0, 9 - bne .L1030 + bne .L1252 ldr w0, [x21,16] str w0, [x29,64] ldr w20, [x21,48] ubfx x20, x20, 1, 1 - cbnz w20, .L1050 - adrp x22, .LC110 - adrp x23, .LC109 - add x22, x22, :lo12:.LC110 - add x23, x23, :lo12:.LC109 - b .L1032 -.L1050: - adrp x22, .LC108 - adrp x23, .LC109 + cbnz w20, .L1272 + adrp x22, .LC83 + adrp x23, .LC82 + add x22, x22, :lo12:.LC83 + add x23, x23, :lo12:.LC82 + b .L1254 +.L1272: + adrp x22, .LC81 + adrp x23, .LC82 mov w20, 0 - add x22, x22, :lo12:.LC108 - add x23, x23, :lo12:.LC109 -.L1031: + add x22, x22, :lo12:.LC81 + add x23, x23, :lo12:.LC82 +.L1253: ldr w2, [x21,64] ldr w1, [x29,64] ubfx x2, x2, 16, 6 ubfx x1, x1, 22, 6 cmp w2, w1 - bge .L1038 + bge .L1260 add x0, x19, :lo12:.LANCHOR0 - ldr x0, [x0,8] + ldr x0, [x0,16] ldr w0, [x0] str w0, [x29,72] ldr w0, [x29,72] - tbz x0, 13, .L1033 + tbz x0, 13, .L1255 ldr w0, [x29,72] - tbz x0, 17, .L1033 -.L1038: + tbz x0, 17, .L1255 +.L1260: add x20, x19, :lo12:.LANCHOR0 - add x20, x20, 104 + add x20, x20, 96 ldr w0, [x20,32] - cbz w0, .L1039 + cbz w0, .L1261 ldr w1, [x29,64] mov w2, 0 ldr w0, [x20,24] @@ -7357,11 +8526,11 @@ nandc_xfer_done: ldr w0, [x20,28] ubfx x1, x1, 22, 6 lsl w1, w1, 2 - b .L1075 -.L1033: + b .L1297 +.L1255: add w20, w20, 1 and w0, w20, 16777215 - cbnz w0, .L1031 + cbnz w0, .L1253 ldr w2, [x21,64] mov w1, w20 ldr w3, [x29,64] @@ -7373,35 +8542,35 @@ nandc_xfer_done: mov x0, x23 mov w2, 4 mov w3, 256 - ldr x1, [x1,8] + ldr x1, [x1,16] bl rknand_print_hex - b .L1031 -.L1041: + b .L1253 +.L1263: add x24, x19, :lo12:.LANCHOR0 add w20, w20, 1 - ldr x0, [x24,8] + ldr x0, [x24,16] ldr w0, [x0,16] str w0, [x29,64] and w0, w20, 16777215 - cbnz w0, .L1032 + cbnz w0, .L1254 ldr w2, [x29,64] mov w1, w20 ldr w3, [x21,64] mov x0, x22 ubfx x3, x3, 16, 6 bl printk - ldr x1, [x24,8] + ldr x1, [x24,16] mov x0, x23 mov w2, 4 mov w3, 256 bl rknand_print_hex -.L1032: +.L1254: ldr w0, [x29,64] - tbz x0, 20, .L1041 + tbz x0, 20, .L1263 add x20, x19, :lo12:.LANCHOR0 - add x20, x20, 104 + add x20, x20, 96 ldr w0, [x20,32] - cbz w0, .L1039 + cbz w0, .L1261 ldr w1, [x29,64] mov w2, 1 ldr w0, [x20,24] @@ -7412,48 +8581,48 @@ nandc_xfer_done: ldr w0, [x20,28] ubfx x1, x1, 22, 6 lsl w1, w1, 2 - b .L1074 -.L1030: + b .L1296 +.L1252: ldr w0, [x21,8] str w0, [x29,64] ldr w20, [x21,16] ubfx x20, x20, 1, 1 - cbnz w20, .L1051 - adrp x22, .LC110 - adrp x23, .LC109 - add x22, x22, :lo12:.LC110 - add x23, x23, :lo12:.LC109 - b .L1043 -.L1051: - adrp x22, .LC108 - adrp x23, .LC109 + cbnz w20, .L1273 + adrp x22, .LC83 + adrp x23, .LC82 + add x22, x22, :lo12:.LC83 + add x23, x23, :lo12:.LC82 + b .L1265 +.L1273: + adrp x22, .LC81 + adrp x23, .LC82 mov w20, 0 - add x22, x22, :lo12:.LC108 - add x23, x23, :lo12:.LC109 -.L1042: + add x22, x22, :lo12:.LC81 + add x23, x23, :lo12:.LC82 +.L1264: ldr w2, [x21,28] ldr w1, [x29,64] ubfx x2, x2, 16, 5 ubfx x1, x1, 22, 6 cmp w2, w1 - bge .L1045 + bge .L1267 add x0, x19, :lo12:.LANCHOR0 - ldr x0, [x0,8] + ldr x0, [x0,16] ldr w0, [x0] str w0, [x29,72] ldr w0, [x29,72] - tbz x0, 13, .L1044 + tbz x0, 13, .L1266 ldr w0, [x29,72] - tbz x0, 17, .L1044 + tbz x0, 17, .L1266 ldr w1, [x29,72] - adrp x0, .LC111 - add x0, x0, :lo12:.LC111 + adrp x0, .LC84 + add x0, x0, :lo12:.LC84 bl printk - b .L1045 -.L1044: + b .L1267 +.L1266: add w20, w20, 1 and w0, w20, 16777215 - cbnz w0, .L1042 + cbnz w0, .L1264 ldr w2, [x21,28] mov w1, w20 ldr w3, [x29,64] @@ -7465,14 +8634,14 @@ nandc_xfer_done: mov x0, x23 mov w2, 4 mov w3, 256 - ldr x1, [x1,8] + ldr x1, [x1,16] bl rknand_print_hex - b .L1042 -.L1045: + b .L1264 +.L1267: add x20, x19, :lo12:.LANCHOR0 - add x20, x20, 104 + add x20, x20, 96 ldr w0, [x20,32] - cbz w0, .L1039 + cbz w0, .L1261 ldr w1, [x29,64] mov w2, 0 ldr w0, [x20,24] @@ -7483,35 +8652,35 @@ nandc_xfer_done: ldr w0, [x20,28] ubfx x1, x1, 22, 6 lsl w1, w1, 7 -.L1075: +.L1297: mov w2, 0 - b .L1073 -.L1049: + b .L1295 +.L1271: add x24, x19, :lo12:.LANCHOR0 add w20, w20, 1 - ldr x0, [x24,8] + ldr x0, [x24,16] ldr w0, [x0,8] str w0, [x29,64] and w0, w20, 16777215 - cbnz w0, .L1043 + cbnz w0, .L1265 ldr w2, [x29,64] mov w1, w20 ldr w3, [x21,28] mov x0, x22 ubfx x3, x3, 16, 5 bl printk - ldr x1, [x24,8] + ldr x1, [x24,16] mov x0, x23 mov w2, 4 mov w3, 256 bl rknand_print_hex -.L1043: +.L1265: ldr w0, [x29,64] - tbz x0, 20, .L1049 + tbz x0, 20, .L1271 add x20, x19, :lo12:.LANCHOR0 - add x20, x20, 104 + add x20, x20, 96 ldr w0, [x20,32] - cbz w0, .L1039 + cbz w0, .L1261 ldr w1, [x29,64] mov w2, 1 ldr w0, [x20,24] @@ -7522,15 +8691,15 @@ nandc_xfer_done: ldr w0, [x20,28] ubfx x1, x1, 22, 6 lsl w1, w1, 7 -.L1074: +.L1296: mov w2, 1 -.L1073: +.L1295: bl rknand_dma_unmap_single -.L1039: +.L1261: add x19, x19, :lo12:.LANCHOR0 ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] - str wzr, [x19,136] + str wzr, [x19,128] ldp x19, x20, [sp,16] ldp x29, x30, [sp], 80 ret @@ -7554,20 +8723,20 @@ nandc_xfer: bl nandc_xfer_start bl nandc_xfer_done mov w0, 0 - cbnz w19, .L1077 + cbnz w19, .L1299 adrp x20, .LANCHOR0 ldr x4, [x29,56] add x3, x20, :lo12:.LANCHOR0 ldrb w1, [x20,#:lo12:.LANCHOR0] cmp w1, 9 - bne .L1078 - ldr x5, [x3,8] + bne .L1300 + ldr x5, [x3,16] lsr w21, w21, 2 mov w4, 1 mov w3, w0 -.L1079: +.L1301: cmp w3, w21 - bcs .L1105 + bcs .L1327 uxtw x1, w3 add x1, x1, 84 ldr w1, [x5,x1,lsl 2] @@ -7579,33 +8748,33 @@ nandc_xfer: and w1, w1, w2 and w4, w4, w1 ldr w1, [x29,72] - tbnz x1, 2, .L1096 + tbnz x1, 2, .L1318 ldr w1, [x29,72] - tbnz x1, 18, .L1096 + tbnz x1, 18, .L1318 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 .L1081 + ble .L1303 ubfx x1, x1, 3, 7 - b .L1082 -.L1081: + b .L1304 +.L1303: ubfx x1, x1, 19, 7 -.L1082: +.L1304: cmp w0, w1 csel w0, w0, w1, cs - b .L1080 -.L1096: + b .L1302 +.L1318: mov w0, -1 -.L1080: +.L1302: add w3, w3, 1 - b .L1079 -.L1105: + b .L1301 +.L1327: add x20, x20, :lo12:.LANCHOR0 cmp w4, wzr - ldr x1, [x20,8] + ldr x1, [x20,16] ldr w19, [x1] mov w1, 512 csel w0, w0, w1, eq @@ -7613,16 +8782,16 @@ nandc_xfer: movk w1, 0x2, lsl 16 and w1, w19, w1 cmp w1, 139264 - bne .L1077 - adrp x0, .LC112 + bne .L1299 + adrp x0, .LC85 mov w1, w19 - add x0, x0, :lo12:.LC112 + add x0, x0, :lo12:.LC85 orr w19, w19, 131072 bl printk - ldr x0, [x20,8] - b .L1104 -.L1078: - ldrb w0, [x3,148] + ldr x0, [x20,16] + b .L1326 +.L1300: + ldrb w0, [x3,140] mov w6, 128 lsr w7, w21, 1 mov w2, 1 @@ -7631,11 +8800,11 @@ nandc_xfer: csel w6, w0, w6, cc mov w1, w19 mov w5, w19 -.L1086: +.L1308: cmp w5, w7 add w8, w1, w6 - bcs .L1106 - ldr x0, [x3,104] + bcs .L1328 + ldr x0, [x3,96] and x1, x1, 4294967292 ldr w0, [x0,x1] ubfiz x1, x5, 2, 30 @@ -7651,24 +8820,24 @@ nandc_xfer: add w2, w2, 4 strb w0, [x4,x1] mov w1, w8 - b .L1086 -.L1106: + b .L1308 +.L1328: add x0, x20, :lo12:.LANCHOR0 mov w5, 0 lsr w21, w21, 2 - ldr x7, [x0,8] + ldr x7, [x0,16] mov w0, w5 -.L1088: +.L1310: cmp w5, w21 - bcs .L1107 + bcs .L1329 uxtw x1, w5 add x1, x1, 8 ldr w1, [x7,x1,lsl 2] str w1, [x29,72] ldr w1, [x29,72] - tbnz x1, 2, .L1099 + tbnz x1, 2, .L1321 ldr w1, [x29,72] - tbnz x1, 15, .L1099 + tbnz x1, 15, .L1321 ldr w6, [x29,72] ubfx x3, x6, 3, 5 ldr w6, [x29,72] @@ -7681,59 +8850,59 @@ nandc_xfer: orr w1, w2, w1, lsl 5 cmp w6, w1 ldr w1, [x29,72] - bls .L1090 + bls .L1312 ubfx x2, x1, 3, 5 ldr w1, [x29,72] ubfx x1, x1, 27, 1 - b .L1103 -.L1090: + b .L1325 +.L1312: ubfx x2, x1, 16, 5 ldr w1, [x29,72] ubfx x1, x1, 29, 1 -.L1103: +.L1325: orr w1, w2, w1, lsl 5 cmp w0, w1 csel w0, w0, w1, cs - b .L1089 -.L1099: + b .L1311 +.L1321: mov w0, -1 -.L1089: +.L1311: add w5, w5, 1 - b .L1088 -.L1107: + b .L1310 +.L1329: add x1, x20, :lo12:.LANCHOR0 cmn w0, #1 - ldr x1, [x1,8] + ldr x1, [x1,16] str wzr, [x1,16] - beq .L1093 + beq .L1315 ldr w2, [x4] cmn w2, #1 - bne .L1093 + bne .L1315 ldr w2, [x4,4] cmn w2, #1 - bne .L1093 + bne .L1315 ldr w2, [x22] cmn w2, #1 mov w2, 512 csel w0, w0, w2, ne -.L1093: +.L1315: ldr w19, [x1] mov w1, 8192 movk w1, 0x2, lsl 16 and w1, w19, w1 cmp w1, 139264 - bne .L1077 - adrp x0, .LC113 + bne .L1299 + adrp x0, .LC86 mov w1, w19 - add x0, x0, :lo12:.LC113 + add x0, x0, :lo12:.LC86 orr w19, w19, 131072 bl printk add x0, x20, :lo12:.LANCHOR0 - ldr x0, [x0,8] -.L1104: + ldr x0, [x0,16] +.L1326: str w19, [x0] mov w0, -1 -.L1077: +.L1299: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x29, x30, [sp], 80 @@ -7753,71 +8922,71 @@ flash_read_page: stp x23, x24, [sp,48] stp x25, x26, [sp,64] stp x19, x20, [sp,16] - mov w24, w1 + mov w23, w1 mov x26, x2 - ldr x19, [x0,8] + ldr x19, [x0,16] adrp x0, .LANCHOR2+400 mov x25, x3 mov w27, w4 and w20, w1, 2097151 - ubfx x23, x24, 24, 2 + ubfx x24, x23, 24, 2 ldr w0, [x0,#:lo12:.LANCHOR2+400] - tbz x0, 4, .L1109 - adrp x0, .LC114 + tbz x0, 4, .L1331 + adrp x0, .LC87 mov w1, w21 - add x0, x0, :lo12:.LC114 - mov w2, w23 - mov w3, w24 + add x0, x0, :lo12:.LC87 + mov w2, w24 + mov w3, w23 bl printk -.L1109: +.L1331: bl nandc_wait_flash_ready mov w0, w21 bl nandc_cs - cbnz w23, .L1110 + cbnz w24, .L1332 mov w0, w21 bl zftl_flash_enter_slc_mode - b .L1111 -.L1110: + b .L1333 +.L1332: add x0, x22, :lo12:.LANCHOR0 - ldr x0, [x0,48] + ldr x0, [x0,720] ldrb w0, [x0,12] cmp w0, 3 - bne .L1112 + bne .L1334 sxtw x0, w21 add x0, x0, 8 add x0, x19, x0, lsl 8 - str w23, [x0,8] - b .L1111 -.L1112: + str w24, [x0,8] + b .L1333 +.L1334: mov w0, w21 bl zftl_flash_exit_slc_mode -.L1111: +.L1333: ubfiz x5, x21, 8, 8 - and w24, w24, 255 + and w23, w23, 255 add x19, x19, x5 lsr w0, w20, 8 str wzr, [x19,2056] str wzr, [x19,2052] str wzr, [x19,2052] - str w24, [x19,2052] + str w23, [x19,2052] str w0, [x19,2052] lsr w0, w20, 16 str w0, [x19,2052] mov w0, 48 str w0, [x19,2056] - cbz w23, .L1113 + cbz w24, .L1335 add x22, x22, :lo12:.LANCHOR0 - ldr x0, [x22,48] + ldr x0, [x22,720] ldrb w0, [x0,12] cmp w0, 3 - bne .L1113 + bne .L1335 add w20, w20, w20, lsl 1 sub w0, w20, #1 - add w0, w0, w23 - b .L1125 -.L1113: + add w0, w0, w24 + b .L1346 +.L1335: mov w0, w20 -.L1125: +.L1346: bl nandc_set_seed bl nandc_wait_flash_ready mov w0, 5 @@ -7825,18 +8994,14 @@ flash_read_page: str wzr, [x19,2052] mov w0, 224 str wzr, [x19,2052] - mov w1, 0 - str w0, [x19,2056] mov w2, w27 - mov w0, w21 mov x3, x26 mov x4, x25 + str w0, [x19,2056] + mov w1, 0 + mov w0, w21 bl nandc_xfer mov w19, w0 - cbnz w23, .L1115 - mov w0, w21 - bl zftl_flash_exit_slc_mode -.L1115: mov w0, 0 bl nandc_de_cs ldr x27, [sp,80] @@ -7862,83 +9027,72 @@ micron_read_retrial: stp x27, x28, [sp,80] stp x21, x22, [sp,32] uxtb w25, w0 - mov w23, w2 - ldrb w21, [x19,148] + mov w24, w2 + ldrb w21, [x19,140] mov x26, x3 mov x27, x4 mov w28, w5 uxtb x20, w25 bl nandc_wait_flash_ready add w21, w21, w21, lsl 1 - adrp x24, .LC115 - ldr x7, [x19,8] + ldr x6, [x19,16] asr w21, w21, 2 - mov w22, 0 + mov w23, 0 mov w19, -1 - adrp x9, .LANCHOR4 - lsl x10, x20, 8 - mov w11, 239 - add x24, x24, :lo12:.LC115 -.L1127: - add x6, x9, :lo12:.LANCHOR4 - ldrb w0, [x6,1088] - cmp w22, w0 - bcs .L1130 - add x1, x7, x10 - mov w0, 137 - str x9, [x29,104] - str x10, [x29,120] - str w11, [x1,2056] - str w0, [x1,2052] + adrp x8, .LANCHOR4 + lsl x9, x20, 8 + mov w10, 239 + mov w11, 137 +.L1348: + add x5, x8, :lo12:.LANCHOR4 + ldrb w0, [x5,1160] + cmp w23, w0 + bcs .L1351 + add x22, x6, x9 mov w0, 200 - str x7, [x29,128] - str x11, [x29,136] - str x6, [x29,112] - str x1, [x29,152] + str x8, [x29,104] + str x9, [x29,120] + str w10, [x22,2056] + str w11, [x22,2052] + str x6, [x29,128] + str x10, [x29,136] + str x11, [x29,144] + str x5, [x29,112] bl timer_delay_ns - ldr x1, [x29,152] - add w8, w22, 1 + add w7, w23, 1 + str w7, [x22,2048] + str wzr, [x22,2048] + mov w0, w25 + str wzr, [x22,2048] + mov w1, w24 + str wzr, [x22,2048] mov x2, x26 mov x3, x27 mov w4, w28 - mov w0, w25 - str w8, [x1,2048] - str wzr, [x1,2048] - str wzr, [x1,2048] - str wzr, [x1,2048] - mov w1, w23 - str x8, [x29,144] + str x7, [x29,152] bl flash_read_page - mov w5, w0 - mov w1, w22 - mov x0, x24 - mov w2, w23 - mov w3, w22 - mov w4, w19 - str x5, [x29,152] - bl printk - ldr x5, [x29,152] - ldr x8, [x29,144] - cmn w5, #1 - ldr x11, [x29,136] - ldr x7, [x29,128] - ldr x10, [x29,120] - ldr x9, [x29,104] - beq .L1128 + cmn w0, #1 + ldr x7, [x29,152] + ldr x11, [x29,144] + ldr x10, [x29,136] + ldr x6, [x29,128] + ldr x9, [x29,120] + ldr x8, [x29,104] + beq .L1349 cmn w19, #1 - ldr x6, [x29,112] - csel w19, w19, w5, ne - cmp w5, w21 - ldr x26, [x6,1072] - ldr x27, [x6,1080] - bcc .L1135 -.L1128: - mov w22, w8 - b .L1127 -.L1135: - mov w19, w5 -.L1130: - add x20, x7, x20, lsl 8 + ldr x5, [x29,112] + csel w19, w19, w0, ne + cmp w0, w21 + ldr x26, [x5,1144] + ldr x27, [x5,1152] + bcc .L1356 +.L1349: + mov w23, w7 + b .L1348 +.L1356: + mov w19, w0 +.L1351: + add x20, x6, x20, lsl 8 mov w0, 239 str w0, [x20,2056] mov w0, 137 @@ -7950,24 +9104,24 @@ micron_read_retrial: cmp w19, w21 str wzr, [x20,2048] str wzr, [x20,2048] - bcc .L1132 + bcc .L1353 cmn w19, #1 mov w0, 256 csel w19, w19, w0, eq -.L1132: +.L1353: cmn w19, #1 - beq .L1136 + beq .L1357 cmp w19, 256 - bne .L1133 -.L1136: - adrp x0, .LC116 - mov w1, w22 - add x0, x0, :lo12:.LC116 - mov w2, w23 - mov w3, w22 + bne .L1354 +.L1357: + adrp x0, .LC88 + mov w1, w23 + add x0, x0, :lo12:.LC88 + mov w2, w24 + mov w3, w23 mov w4, w19 bl printk -.L1133: +.L1354: mov w0, w19 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -8003,9 +9157,9 @@ toshiba_3d_read_retrial: mov w2, 56 add x22, x22, 8 mov w21, 10 - ldr x26, [x0,8] + ldr x26, [x0,16] lsl x22, x22, 8 - ldrb w0, [x0,149] + ldrb w0, [x0,141] add x24, x26, x22 cmp w0, 36 csel w1, w2, w1, ne @@ -8013,20 +9167,20 @@ toshiba_3d_read_retrial: mov w0, 26 mov w23, w1 csel w21, w21, w0, ne - cbnz w19, .L1147 - adrp x0, .LC117 + cbnz w19, .L1368 + adrp x0, .LC89 str x22, [x29,112] - add x0, x0, :lo12:.LC117 + add x0, x0, :lo12:.LC89 mov w19, -1 mov w23, 1 str x0, [x29,104] adrp x22, .LANCHOR4 -.L1154: +.L1375: add x0, x20, :lo12:.LANCHOR0 - ldrb w0, [x0,149] + ldrb w0, [x0,141] cmp w0, 36 mov x0, x24 - bne .L1148 + bne .L1369 mov w1, w23 mov w2, 0 bl toshiba_tlc_set_rr_para @@ -8034,11 +9188,11 @@ toshiba_3d_read_retrial: mov w1, 93 add x0, x26, x0 str w1, [x0,8] - b .L1149 -.L1148: + b .L1370 +.L1369: mov w1, w23 bl toshiba_3d_set_slc_rr_para -.L1149: +.L1370: ldr w4, [x29,124] mov w1, w25 ldrb w0, [x29,128] @@ -8049,7 +9203,7 @@ toshiba_3d_read_retrial: adrp x0, .LANCHOR2 add x0, x0, :lo12:.LANCHOR2 ldr w0, [x0,400] - tbz x0, 4, .L1150 + tbz x0, 4, .L1371 ldr x0, [x29,104] mov w3, w4 mov w1, w23 @@ -8057,65 +9211,65 @@ toshiba_3d_read_retrial: str x4, [x29,96] bl printk ldr x4, [x29,96] -.L1150: +.L1371: cmn w4, #1 - beq .L1151 + beq .L1372 add x0, x22, :lo12:.LANCHOR4 cmn w19, #1 csel w19, w19, w4, ne - ldr x27, [x0,1072] - ldr x28, [x0,1080] + ldr x27, [x0,1144] + ldr x28, [x0,1152] add x0, x20, :lo12:.LANCHOR0 - ldrb w0, [x0,148] + ldrb w0, [x0,140] add w0, w0, w0, lsl 1 cmp w4, w0, lsr 2 - bcc .L1170 -.L1151: + bcc .L1391 +.L1372: add w23, w23, 1 cmp w23, w21 - bne .L1154 - b .L1153 -.L1170: + bne .L1375 + b .L1374 +.L1391: mov w21, w23 mov w19, w4 -.L1153: +.L1374: add x0, x20, :lo12:.LANCHOR0 - ldrb w0, [x0,149] + ldrb w0, [x0,141] cmp w0, 36 mov x0, x24 - bne .L1155 + bne .L1376 mov w1, 0 mov w2, w1 - b .L1193 -.L1155: + b .L1414 +.L1376: mov w1, 0 bl toshiba_3d_set_slc_rr_para - b .L1156 -.L1147: - adrp x0, .LC118 + b .L1377 +.L1368: + adrp x0, .LC90 orr w25, w25, w19, lsl 24 - add x0, x0, :lo12:.LC118 + add x0, x0, :lo12:.LC90 mov w19, -1 mov w21, 1 str x0, [x29,112] -.L1163: +.L1384: add x0, x20, :lo12:.LANCHOR0 - ldrb w0, [x0,149] + ldrb w0, [x0,141] cmp w0, 36 mov x0, x24 - bne .L1157 + bne .L1378 mov w1, w21 mov w2, 1 bl toshiba_tlc_set_rr_para add x0, x26, x22 mov w1, 93 - b .L1192 -.L1157: + b .L1413 +.L1378: mov w1, w21 bl toshiba_3d_set_tlc_rr_para add x0, x26, x22 mov w1, 38 -.L1192: +.L1413: str w1, [x0,8] mov x2, x27 mov w1, w25 @@ -8127,7 +9281,7 @@ toshiba_3d_read_retrial: adrp x0, .LANCHOR2 add x0, x0, :lo12:.LANCHOR2 ldr w0, [x0,400] - tbz x0, 4, .L1159 + tbz x0, 4, .L1380 ldr x0, [x29,112] mov w3, w4 mov w1, w21 @@ -8135,46 +9289,46 @@ toshiba_3d_read_retrial: str x4, [x29,104] bl printk ldr x4, [x29,104] -.L1159: +.L1380: cmn w4, #1 - beq .L1160 + beq .L1381 adrp x0, .LANCHOR4 cmn w19, #1 add x0, x0, :lo12:.LANCHOR4 csel w19, w19, w4, ne - ldr x27, [x0,1072] - ldr x28, [x0,1080] + ldr x27, [x0,1144] + ldr x28, [x0,1152] add x0, x20, :lo12:.LANCHOR0 - ldrb w0, [x0,148] + ldrb w0, [x0,140] add w0, w0, w0, lsl 1 cmp w4, w0, lsr 2 - bcc .L1171 -.L1160: + bcc .L1392 +.L1381: add w21, w21, 1 cmp w21, w23 - bne .L1163 - b .L1162 -.L1171: + bne .L1384 + b .L1383 +.L1392: mov w19, w4 -.L1162: +.L1383: add x0, x20, :lo12:.LANCHOR0 - ldrb w0, [x0,149] + ldrb w0, [x0,141] cmp w0, 36 mov x0, x24 - bne .L1164 + bne .L1385 mov w1, 0 mov w2, 1 -.L1193: +.L1414: bl toshiba_tlc_set_rr_para - b .L1156 -.L1164: + b .L1377 +.L1385: mov w1, 0 bl toshiba_3d_set_tlc_rr_para -.L1156: +.L1377: add x0, x20, :lo12:.LANCHOR0 - ldrb w0, [x0,149] + ldrb w0, [x0,141] cmp w0, 36 - bne .L1165 + bne .L1386 ldr x0, [x29,128] ubfiz x23, x0, 8, 8 mov w0, 85 @@ -8184,29 +9338,29 @@ toshiba_3d_read_retrial: str wzr, [x26,2052] str wzr, [x26,2048] str w0, [x26,2056] -.L1165: +.L1386: add x20, x20, :lo12:.LANCHOR0 - ldrb w0, [x20,148] + ldrb w0, [x20,140] add w0, w0, w0, lsl 1 cmp w19, w0, lsr 2 - bcc .L1166 + bcc .L1387 cmn w19, #1 mov w0, 256 csel w19, w19, w0, eq -.L1166: +.L1387: cmn w19, #1 - beq .L1172 + beq .L1393 cmp w19, 256 - bne .L1167 -.L1172: - adrp x0, .LC119 + bne .L1388 +.L1393: + adrp x0, .LC91 mov w1, w21 - add x0, x0, :lo12:.LC119 + add x0, x0, :lo12:.LC91 mov w2, w25 mov w3, w21 mov w4, w19 bl printk -.L1167: +.L1388: bl nandc_wait_flash_ready mov w0, w19 ldp x19, x20, [sp,16] @@ -8240,26 +9394,26 @@ toshiba_read_retrial: sxtw x0, w23 add x21, x0, 8 str x0, [x29,112] - ldrb w0, [x1,149] - ldr x22, [x1,8] + ldrb w0, [x1,141] + ldr x22, [x1,16] sub w0, w0, #67 add x21, x22, x21, lsl 8 uxtb w0, w0 cmp w0, 1 - bls .L1195 - ldrb w0, [x1,96] - cbz w0, .L1196 + bls .L1416 + ldrb w0, [x1,716] + cbz w0, .L1417 mov w0, 1 mov w24, 1 bl nandc_set_if_mode -.L1196: +.L1417: ubfiz x0, x23, 8, 8 mov w1, 92 add x0, x22, x0 str w1, [x0,2056] mov w1, 197 str w1, [x0,2056] -.L1195: +.L1416: ldr x0, [x29,112] mov w20, 1 mov w25, -1 @@ -8268,41 +9422,41 @@ toshiba_read_retrial: str x0, [x29,104] ubfiz x0, x23, 8, 8 str x0, [x29,96] -.L1197: +.L1418: adrp x0, .LANCHOR4 add x0, x0, :lo12:.LANCHOR4 - ldrb w0, [x0,1088] + ldrb w0, [x0,1160] add w0, w0, 1 cmp w20, w0 - bcs .L1228 + bcs .L1449 add x0, x19, :lo12:.LANCHOR0 mov w1, w20 - ldrb w0, [x0,149] + ldrb w0, [x0,141] sub w0, w0, #67 uxtb w0, w0 cmp w0, 1 mov x0, x21 - bhi .L1198 + bhi .L1419 bl sandisk_set_rr_para - b .L1199 -.L1198: + b .L1420 +.L1419: bl toshiba_set_rr_para -.L1199: +.L1420: add x0, x19, :lo12:.LANCHOR0 - ldrb w0, [x0,149] + ldrb w0, [x0,141] cmp w0, 34 - bne .L1200 + bne .L1421 adrp x0, .LANCHOR4 add x0, x0, :lo12:.LANCHOR4 - ldrb w0, [x0,1088] + ldrb w0, [x0,1160] sub w0, w0, #3 cmp w20, w0 - bne .L1200 + bne .L1421 ldr x0, [x29,104] mov w1, 179 add x0, x22, x0 str w1, [x0,8] -.L1200: +.L1421: ldr x0, [x29,96] mov w1, 38 ldr w4, [x29,120] @@ -8317,69 +9471,69 @@ toshiba_read_retrial: bl flash_read_page cmn w0, #1 mov w26, w0 - beq .L1203 + beq .L1424 cmn w25, #1 csel w25, w25, w0, ne adrp x0, .LANCHOR4 add x0, x0, :lo12:.LANCHOR4 - ldr x27, [x0,1072] - ldr x28, [x0,1080] + ldr x27, [x0,1144] + ldr x28, [x0,1152] add x0, x19, :lo12:.LANCHOR0 - ldrb w0, [x0,148] + ldrb w0, [x0,140] add w0, w0, w0, lsl 1 cmp w26, w0, lsr 2 - bcc .L1205 -.L1203: + bcc .L1426 +.L1424: add w20, w20, 1 - b .L1197 -.L1228: + b .L1418 +.L1449: mov w26, w25 -.L1205: +.L1426: add x0, x19, :lo12:.LANCHOR0 mov w1, 0 - ldrb w0, [x0,149] + ldrb w0, [x0,141] sub w0, w0, #67 uxtb w0, w0 cmp w0, 1 mov x0, x21 - bhi .L1207 + bhi .L1428 bl sandisk_set_rr_para - b .L1208 -.L1207: + b .L1429 +.L1428: bl toshiba_set_rr_para -.L1208: +.L1429: ldr x0, [x29,112] add x19, x19, :lo12:.LANCHOR0 add x0, x0, 8 add x22, x22, x0, lsl 8 mov w0, 255 str w0, [x22,8] - ldrb w0, [x19,148] + ldrb w0, [x19,140] add w0, w0, w0, lsl 1 cmp w26, w0, lsr 2 - bcc .L1209 + bcc .L1430 cmn w26, #1 mov w0, 256 csel w26, w26, w0, eq -.L1209: +.L1430: cmn w26, #1 - beq .L1215 + beq .L1436 cmp w26, 256 - bne .L1210 -.L1215: - adrp x0, .LC119 + bne .L1431 +.L1436: + adrp x0, .LC91 ldr w2, [x29,124] - add x0, x0, :lo12:.LC119 + add x0, x0, :lo12:.LC91 mov w1, w20 mov w3, w20 mov w4, w26 bl printk -.L1210: +.L1431: bl nandc_wait_flash_ready - cbz w24, .L1212 + cbz w24, .L1433 mov w0, 4 bl nandc_set_if_mode -.L1212: +.L1433: mov w0, w26 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -8405,7 +9559,7 @@ hynix_read_retrial: stp x23, x24, [sp,48] str w5, [x29,124] mov w23, w2 - ldr x5, [x0,152] + ldr x5, [x0,144] mov x25, x3 mov x26, x4 mov x22, x21 @@ -8417,9 +9571,9 @@ hynix_read_retrial: bl nandc_wait_flash_ready mov w6, 0 adrp x7, .LANCHOR4 -.L1230: +.L1451: cmp w6, w24 - bcs .L1234 + bcs .L1455 add w20, w20, 1 mov w0, w22 str x7, [x29,104] @@ -8438,47 +9592,47 @@ hynix_read_retrial: cmn w0, #1 ldr x6, [x29,112] ldr x7, [x29,104] - beq .L1232 + beq .L1453 add x1, x7, :lo12:.LANCHOR4 cmn w19, #1 csel w19, w19, w0, ne - ldr x25, [x1,1072] - ldr x26, [x1,1080] + ldr x25, [x1,1144] + ldr x26, [x1,1152] add x1, x28, :lo12:.LANCHOR0 - ldrb w1, [x1,148] + ldrb w1, [x1,140] add w1, w1, w1, lsl 1 cmp w0, w1, lsr 2 - bcc .L1239 -.L1232: + bcc .L1460 +.L1453: add w6, w6, 1 - b .L1230 -.L1239: + b .L1451 +.L1460: mov w19, w0 -.L1234: +.L1455: add x28, x28, :lo12:.LANCHOR0 add x21, x27, x21 - ldrb w0, [x28,148] + ldrb w0, [x28,140] strb w20, [x21,8] add w0, w0, w0, lsl 1 cmp w19, w0, lsr 2 - bcc .L1236 + bcc .L1457 cmn w19, #1 mov w0, 256 csel w19, w19, w0, eq -.L1236: +.L1457: cmn w19, #1 - beq .L1240 + beq .L1461 cmp w19, 256 - bne .L1237 -.L1240: - adrp x0, .LC120 + bne .L1458 +.L1461: + adrp x0, .LC92 mov w1, w6 - add x0, x0, :lo12:.LC120 + add x0, x0, :lo12:.LC92 mov w2, w23 mov w3, w6 mov w4, w19 bl printk -.L1237: +.L1458: mov w0, w19 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -8492,130 +9646,127 @@ hynix_read_retrial: .global flash_ddr_tunning_read .type flash_ddr_tunning_read, %function flash_ddr_tunning_read: - stp x29, x30, [sp, -160]! + 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] - mov w19, 0 - uxtb w25, w0 - mov w23, w1 - mov x26, x2 - mov x27, x3 - str w4, [x29,156] - adrp x24, .LC121 + str w0, [x29,124] + mov w20, w1 + mov x23, x2 + mov x24, x3 + str w4, [x29,116] bl nandc_get_ddr_para - mov w7, w19 - mov w8, w0 - mov w6, w19 - mov w20, w19 - mov w28, 1024 + mov w26, 0 + str w0, [x29,120] + adrp x0, .LC93 + mov w22, w26 + add x0, x0, :lo12:.LC93 + mov w28, w26 + mov w27, w26 + mov w25, 1024 mov w21, 6 - mov w22, -1 - add x24, x24, :lo12:.LC121 - adrp x9, .LANCHOR4 - adrp x10, .LANCHOR0 -.L1254: + mov w19, -1 + str x0, [x29,104] +.L1476: mov w0, w21 - str x10, [x29,104] - str x9, [x29,112] - str x8, [x29,120] - str x7, [x29,128] - str x6, [x29,136] bl nandc_set_ddr_para - ldr w4, [x29,156] - mov w1, w23 - mov x2, x26 - mov x3, x27 - mov w0, w25 + ldr w4, [x29,116] + mov w1, w20 + ldrb w0, [x29,124] + mov x2, x23 + mov x3, x24 bl flash_read_page mov w4, w0 + adrp x0, .LANCHOR2 + add x0, x0, :lo12:.LANCHOR2 + ldr w0, [x0,400] + tbz x0, 4, .L1471 + ldr x0, [x29,104] mov w3, w4 - mov x0, x24 mov w1, w21 - mov w2, w23 - str x4, [x29,144] + mov w2, w20 + str x4, [x29,96] bl printk - ldr x4, [x29,144] - add w0, w28, 1 - ldr x6, [x29,136] + ldr x4, [x29,96] +.L1471: + add w0, w25, 1 cmp w4, w0 - ldr x7, [x29,128] - ldr x8, [x29,120] - ldr x9, [x29,112] - ldr x10, [x29,104] - bhi .L1250 - add x0, x10, :lo12:.LANCHOR0 - add x1, x9, :lo12:.LANCHOR4 - ldrb w0, [x0,148] - ldr x26, [x1,1072] - ldr x27, [x1,1080] + bhi .L1472 + adrp x0, .LANCHOR4 + add x0, x0, :lo12:.LANCHOR4 + ldr x23, [x0,1144] + ldr x24, [x0,1152] + adrp x0, .LANCHOR0 + add x0, x0, :lo12:.LANCHOR0 + ldrb w0, [x0,140] cmp w4, w0, lsr 2 - bcs .L1259 - add w20, w20, 1 - cmp w20, 7 - bls .L1259 - sub w19, w21, w20 - mov w28, w4 - mov w22, 0 - b .L1252 -.L1250: - cmp w6, w20 - bcs .L1260 - cmp w20, 7 - sub w7, w19, w20 - bhi .L1253 - mov w6, w20 - b .L1260 -.L1259: - mov w19, w21 - mov w28, w4 - mov w22, 0 - b .L1251 -.L1260: - mov w20, 0 -.L1251: + bcs .L1481 + add w27, w27, 1 + cmp w27, 7 + bls .L1481 + sub w26, w21, w27 + mov w25, w4 + mov w19, 0 + b .L1474 +.L1472: + cmp w28, w27 + bcs .L1482 + cmp w27, 7 + sub w22, w26, w27 + bhi .L1475 + mov w28, w27 + b .L1482 +.L1481: + mov w26, w21 + mov w25, w4 + mov w19, 0 + b .L1473 +.L1482: + mov w27, 0 +.L1473: add w21, w21, 2 cmp w21, 50 - bne .L1254 -.L1252: - cmp w6, w20 - csel w19, w19, w7, ls -.L1253: - cbz w19, .L1255 - adrp x0, .LANCHOR0+148 - ldrb w1, [x0,#:lo12:.LANCHOR0+148] - mov w0, 3 - udiv w1, w1, w0 - cmp w28, w1 - bcs .L1255 - adrp x0, .LC122 - mov w1, w19 - add x0, x0, :lo12:.LC122 + bne .L1476 +.L1474: + cmp w28, w27 + csel w26, w26, w22, ls +.L1475: + cbz w26, .L1477 + adrp x0, .LANCHOR0+140 + mov w1, 3 + ldrb w0, [x0,#:lo12:.LANCHOR0+140] + udiv w0, w0, w1 + cmp w25, w0 + bcs .L1477 + adrp x0, .LC94 + mov w1, w26 + add x0, x0, :lo12:.LC94 bl printk - mov w0, w19 - b .L1265 -.L1255: - mov w0, w8 -.L1265: + mov w0, w26 + b .L1490 +.L1477: + ldrb w0, [x29,120] +.L1490: bl nandc_set_ddr_para - cbz w22, .L1257 - adrp x0, .LC123 - mov w1, w25 - add x0, x0, :lo12:.LC123 - mov w2, w23 - mov w28, w22 + cbz w19, .L1479 + adrp x0, .LC95 + ldr w1, [x29,124] + add x0, x0, :lo12:.LC95 + mov w2, w20 + mov w25, w19 bl printk -.L1257: - mov w0, w28 +.L1479: + mov w0, w25 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] ldp x25, x26, [sp,64] ldp x27, x28, [sp,80] - ldp x29, x30, [sp], 160 + ldp x29, x30, [sp], 128 ret .size flash_ddr_tunning_read, .-flash_ddr_tunning_read .align 2 @@ -8635,53 +9786,53 @@ flash_read_page_en: stp x25, x26, [sp,64] mov x25, x2 mov x24, x3 - ldrb w2, [x1,57] + ldrb w2, [x1,152] mov w23, w4 ubfx x21, x19, 24, 2 cmp w2, w0 - bhi .L1267 + bhi .L1492 adrp x1, .LANCHOR3 - adrp x0, .LC34 + adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR3 - add x0, x0, :lo12:.LC34 - add x1, x1, 136 - mov w2, 386 + add x0, x0, :lo12:.LC0 + add x1, x1, 88 + mov w2, 376 bl printk -.L1268: - b .L1268 -.L1267: +.L1493: + b .L1493 +.L1492: add x0, x1, x0, sxtw - ldrb w22, [x0,160] + ldrb w22, [x0,156] adrp x0, .LANCHOR2+400 ldr w0, [x0,#:lo12:.LANCHOR2+400] - tbz x0, 4, .L1269 - adrp x0, .LC124 + tbz x0, 4, .L1494 + adrp x0, .LC96 mov w1, w22 - add x0, x0, :lo12:.LC124 + add x0, x0, :lo12:.LC96 mov w2, w19 bl printk -.L1269: - cbnz w21, .L1270 +.L1494: + cbnz w21, .L1495 add x0, x20, :lo12:.LANCHOR0 - ldrb w1, [x0,58] - cbz w1, .L1271 - ldrb w0, [x0,168] - cbz w0, .L1270 -.L1271: + ldrb w1, [x0,164] + cbz w1, .L1496 + ldrb w0, [x0,165] + cbz w0, .L1495 +.L1496: add x1, x20, :lo12:.LANCHOR0 - ldrh w2, [x1,170] + ldrh w2, [x1,166] udiv w0, w19, w2 mul w0, w0, w2 - ldrb w2, [x1,168] + ldrb w2, [x1,165] sub w19, w19, w0 - cbz w2, .L1272 + cbz w2, .L1497 add w19, w0, w19, lsl 1 - b .L1270 -.L1272: - add x1, x1, 172 + b .L1495 +.L1497: + add x1, x1, 168 ldrh w19, [x1,w19,uxtw 1] add w19, w19, w0 -.L1270: +.L1495: mov w0, w22 mov w1, w19 mov x2, x25 @@ -8690,28 +9841,28 @@ flash_read_page_en: bl flash_read_page cmn w0, #1 mov w21, w0 - bne .L1279 + bne .L1504 add x26, x20, :lo12:.LANCHOR0 - ldrb w27, [x26,144] - cbnz w27, .L1274 -.L1277: - adrp x0, .LANCHOR4+1096 - ldr x6, [x0,#:lo12:.LANCHOR4+1096] - cbnz x6, .L1275 - b .L1276 -.L1274: + ldrb w27, [x26,136] + cbnz w27, .L1499 +.L1502: + adrp x0, .LANCHOR4+1168 + ldr x6, [x0,#:lo12:.LANCHOR4+1168] + cbnz x6, .L1500 + b .L1501 +.L1499: mov w0, w22 mov w1, w19 mov x2, x25 mov x3, x24 mov w4, w23 - strb wzr, [x26,144] + strb wzr, [x26,136] bl flash_read_page - strb w27, [x26,144] + strb w27, [x26,136] cmn w0, #1 - beq .L1277 - b .L1295 -.L1275: + beq .L1502 + b .L1520 +.L1500: mov w0, w22 mov w1, 0 mov w2, w19 @@ -8720,27 +9871,27 @@ flash_read_page_en: mov w5, w23 blr x6 cmn w0, #1 - bne .L1295 -.L1276: + bne .L1520 +.L1501: add x20, x20, :lo12:.LANCHOR0 - adrp x0, .LC125 - add x0, x0, :lo12:.LC125 + adrp x0, .LC97 + add x0, x0, :lo12:.LC97 mov w1, 0 mov w2, w19 mov w3, -1 - ldrb w4, [x20,144] + ldrb w4, [x20,136] bl printk - ldrb w0, [x20,96] - cbz w0, .L1279 + ldrb w0, [x20,716] + cbz w0, .L1504 mov w0, w22 mov w1, w19 mov x2, x25 mov x3, x24 mov w4, w23 bl flash_ddr_tunning_read -.L1295: +.L1520: mov w21, w0 -.L1279: +.L1504: mov w0, w21 ldr x27, [sp,80] ldp x19, x20, [sp,16] @@ -8755,64 +9906,58 @@ flash_read_page_en: .type flash_get_last_written_page, %function flash_get_last_written_page: stp x29, x30, [sp, -96]! + uxth w1, w1 add x29, sp, 0 - stp x23, x24, [sp,48] - uxtb w23, w0 - adrp x0, .LANCHOR4+972 + stp x21, x22, [sp,32] + uxtb w21, w0 + adrp x0, .LANCHOR4+1012 stp x19, x20, [sp,16] stp x25, x26, [sp,64] - ldrh w19, [x0,#:lo12:.LANCHOR4+972] + ldrh w19, [x0,#:lo12:.LANCHOR4+1012] adrp x0, .LANCHOR2+394 - stp x21, x22, [sp,32] - uxth w22, w1 + stp x23, x24, [sp,48] sub w19, w19, #1 - ldrh w26, [x0,#:lo12:.LANCHOR2+394] - mov w0, w23 + str x27, [sp,80] + ldrh w0, [x0,#:lo12:.LANCHOR2+394] + mov x22, x2 sxth w19, w19 - mov x24, x2 - stp x27, x28, [sp,80] - mul w26, w22, w26 - mov x21, x3 - mov w25, w4 - add w1, w26, w19 + mov x23, x3 + mov w24, w4 + mul w25, w1, w0 + mov w0, w21 + add w1, w25, w19 bl flash_read_page_en cmp w0, 512 - bne .L1297 - mov w27, 0 - mov w28, 2 -.L1298: - cmp w27, w19 - bgt .L1297 - add w0, w27, w19 - mov x2, x24 - mov x3, x21 - mov w4, w25 - sdiv w20, w0, w28 - mov w0, w23 - add w1, w26, w20, sxth + bne .L1522 + mov w26, 0 + mov w27, 2 +.L1523: + cmp w26, w19 + bgt .L1522 + add w0, w26, w19 + mov x2, x22 + mov x3, x23 + mov w4, w24 + sdiv w20, w0, w27 + mov w0, w21 + add w1, w25, w20, sxth bl flash_read_page_en cmp w0, 512 - bne .L1299 + bne .L1524 sub w19, w20, #1 sxth w19, w19 - b .L1298 -.L1299: + b .L1523 +.L1524: add w20, w20, 1 - sxth w27, w20 - b .L1298 -.L1297: - ldr w3, [x21] - adrp x0, .LC126 - mov w1, w22 - mov w2, w19 - add x0, x0, :lo12:.LC126 - bl printk + sxth w26, w20 + b .L1523 +.L1522: mov w0, w19 + ldr x27, [sp,80] ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] ldp x25, x26, [sp,64] - ldp x27, x28, [sp,80] ldp x29, x30, [sp], 96 ret .size flash_get_last_written_page, .-flash_get_last_written_page @@ -8821,12 +9966,12 @@ flash_get_last_written_page: .type flash_get_last_written_page_ext, %function flash_get_last_written_page_ext: uxth w6, w0 - adrp x0, .LANCHOR0+3218 + adrp x0, .LANCHOR0+3266 stp x29, x30, [sp, -16]! mov w5, 21 mov x8, x1 add x29, sp, 0 - ldrh w0, [x0,#:lo12:.LANCHOR0+3218] + ldrh w0, [x0,#:lo12:.LANCHOR0+3266] mov x7, x2 mov w4, w3 mov x2, x8 @@ -8845,153 +9990,146 @@ flash_get_last_written_page_ext: .global flash_info_blk_init .type flash_info_blk_init, %function flash_info_blk_init: - stp x29, x30, [sp, -64]! - adrp x2, .LANCHOR3 - adrp x0, .LC127 + stp x29, x30, [sp, -80]! add x29, sp, 0 - stp x19, x20, [sp,16] - adrp x20, .LANCHOR0 - add x2, x2, :lo12:.LANCHOR3 - add x4, x20, :lo12:.LANCHOR0 - add x0, x0, :lo12:.LC127 stp x21, x22, [sp,32] stp x23, x24, [sp,48] - mov w1, 49 - add x2, x2, 160 - ldr x4, [x4,152] - mov w3, 2048 + str x25, [sp,64] mov w22, 4 - adrp x24, .LANCHOR4 - bl printk -.L1306: - add x19, x20, :lo12:.LANCHOR0 - add x21, x24, :lo12:.LANCHOR4 + stp x19, x20, [sp,16] + adrp x24, .LANCHOR0 + adrp x25, .LANCHOR4 +.L1531: + add x19, x24, :lo12:.LANCHOR0 + add x21, x25, :lo12:.LANCHOR4 mov w0, 0 mov w4, 4 + adrp x20, .LANCHOR0 adrp x23, .LANCHOR4 - ldrh w1, [x19,170] - ldr x2, [x19,152] - ldr x3, [x21,1104] + ldrh w1, [x19,166] + ldr x2, [x19,144] + ldr x3, [x21,1176] mul w1, w22, w1 bl flash_read_page_en cmn w0, #1 - beq .L1304 - ldr x2, [x19,152] + beq .L1529 + ldr x2, [x19,144] mov w0, 21321 movk w0, 0x5359, lsl 16 ldr w1, [x2] cmp w1, w0 - beq .L1305 -.L1304: + beq .L1530 +.L1529: add w22, w22, 1 cmp w22, 16 - bne .L1306 -.L1327: + bne .L1531 +.L1552: mov w0, -1 - b .L1326 -.L1305: + b .L1551 +.L1530: ldrb w1, [x2,36] mov w4, 4 - ldrh w3, [x19,170] - strb w1, [x21,1112] + ldrh w3, [x19,166] + strb w1, [x21,1184] ldrb w0, [x2,37] mul w1, w1, w3 - ldr x3, [x21,1104] - strb w0, [x21,1113] + ldr x3, [x21,1176] + strb w0, [x21,1185] mov w0, 0 mov w21, 0 bl flash_read_page_en cmn w0, #1 - beq .L1308 - ldr x0, [x19,152] + beq .L1533 + ldr x0, [x19,144] mov w1, 21321 movk w1, 0x5359, lsl 16 mov w21, 0 ldr w2, [x0] cmp w2, w1 - bne .L1308 + bne .L1533 ldr w21, [x0,4] -.L1308: +.L1533: add x19, x23, :lo12:.LANCHOR4 add x22, x20, :lo12:.LANCHOR0 mov w0, 0 mov w4, 4 - ldrb w2, [x19,1113] - ldrh w1, [x22,170] - ldr x3, [x19,1104] + ldrb w2, [x19,1185] + ldrh w1, [x22,166] + ldr x3, [x19,1176] mul w1, w2, w1 - ldr x2, [x22,152] + ldr x2, [x22,144] bl flash_read_page_en cmn w0, #1 - beq .L1309 - ldr x0, [x22,152] + beq .L1534 + ldr x0, [x22,144] mov w1, 21321 movk w1, 0x5359, lsl 16 ldr w2, [x0] cmp w2, w1 - bne .L1309 + bne .L1534 ldr w1, [x0,4] cmp w21, w1 - bcs .L1309 + bcs .L1534 ldrb w1, [x0,37] ldrb w0, [x0,36] - strb w1, [x19,1112] - strb w0, [x19,1113] -.L1309: + strb w1, [x19,1184] + strb w0, [x19,1185] +.L1534: add x21, x23, :lo12:.LANCHOR4 add x22, x20, :lo12:.LANCHOR0 mov w0, 0 mov w4, 4 - ldrb w1, [x21,1112] - ldr x3, [x21,1104] - ldr x2, [x22,152] + ldrb w1, [x21,1184] + ldr x3, [x21,1176] + ldr x2, [x22,144] bl flash_get_last_written_page sxth w19, w0 add w0, w0, 1 - strh w0, [x21,1114] - ldrb w0, [x21,1112] - ldrh w21, [x22,170] + strh w0, [x21,1186] + ldrb w0, [x21,1184] + ldrh w21, [x22,166] mul w21, w0, w21 -.L1310: - tbnz w19, #31, .L1328 +.L1535: + tbnz w19, #31, .L1553 add x22, x20, :lo12:.LANCHOR0 add x3, x23, :lo12:.LANCHOR4 mov w0, 0 add w1, w19, w21 mov w4, 4 - ldr x2, [x22,152] - ldr x3, [x3,1104] + ldr x2, [x22,144] + ldr x3, [x3,1176] bl flash_read_page_en cmn w0, #1 - beq .L1311 - ldr x0, [x22,152] + beq .L1536 + ldr x0, [x22,144] ldr w1, [x0] mov w0, 21321 movk w0, 0x5359, lsl 16 cmp w1, w0 - bne .L1311 -.L1313: + bne .L1536 +.L1538: mov w0, 0 - b .L1326 -.L1311: + b .L1551 +.L1536: sub w19, w19, #1 sxth w19, w19 - b .L1310 -.L1328: + b .L1535 +.L1553: cmn w19, #1 - bne .L1313 + bne .L1538 add x20, x20, :lo12:.LANCHOR0 - adrp x0, .LC128 - add x0, x0, :lo12:.LC128 - ldr x1, [x20,152] + adrp x0, .LC98 + add x0, x0, :lo12:.LC98 + ldr x1, [x20,144] ldr w1, [x1] bl printk - b .L1327 -.L1326: + b .L1552 +.L1551: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] - ldp x29, x30, [sp], 64 + ldr x25, [sp,64] + ldp x29, x30, [sp], 80 ret .size flash_info_blk_init, .-flash_info_blk_init .align 2 @@ -9009,39 +10147,39 @@ flash_ddr_para_scan: stp x23, x24, [sp,48] uxtb w24, w0 mov w23, w1 - ldrb w0, [x21,720] + ldrb w0, [x21,681] add x20, x20, :lo12:.LANCHOR4 - strb w22, [x21,96] + strb w22, [x21,716] bl flash_set_interface_mode - ldrb w0, [x21,720] + ldrb w0, [x21,681] bl nandc_set_if_mode - ldr x2, [x20,1120] + ldr x2, [x20,1192] mov w1, w23 - ldr x3, [x20,1128] + ldr x3, [x20,1200] mov w4, 4 mov w0, w24 bl flash_ddr_tunning_read - ldr x2, [x20,1120] + ldr x2, [x20,1192] mov w0, w24 - ldr x3, [x20,1128] + ldr x3, [x20,1200] mov w1, w23 mov w4, 4 bl flash_read_page cmn w0, #1 - bne .L1330 - ldrb w0, [x21,720] - tbz x0, 0, .L1330 + bne .L1555 + ldrb w0, [x21,681] + tbz x0, 0, .L1555 mov w0, 1 bl flash_set_interface_mode mov w0, w22 bl nandc_set_if_mode - strb wzr, [x21,96] - b .L1331 -.L1330: + strb wzr, [x21,716] + b .L1556 +.L1555: add x19, x19, :lo12:.LANCHOR0 mov w0, 1 - strb w0, [x19,96] -.L1331: + strb w0, [x19,716] +.L1556: mov w0, 0 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -9050,8 +10188,8 @@ flash_ddr_para_scan: ret .size flash_ddr_para_scan, .-flash_ddr_para_scan .align 2 - .type id_block_read_data.constprop.29, %function -id_block_read_data.constprop.29: + .type id_block_read_data.constprop.38, %function +id_block_read_data.constprop.38: stp x29, x30, [sp, -240]! add x29, sp, 0 stp x27, x28, [sp,80] @@ -9062,7 +10200,7 @@ id_block_read_data.constprop.29: str x1, [x29,120] stp x25, x26, [sp,64] mov w26, w0 - ldr x0, [x19,48] + ldr x0, [x19,720] stp x21, x22, [sp,32] stp x23, x24, [sp,48] mov x21, x2 @@ -9073,10 +10211,10 @@ id_block_read_data.constprop.29: mov w25, w22 str w2, [x29,164] mul w0, w2, w0 - ldrb w2, [x19,144] + ldrb w2, [x19,136] str w2, [x29,136] uxth w0, w0 - strb wzr, [x19,144] + strb wzr, [x19,136] udiv w2, w26, w0 msub w0, w2, w0, w26 str w0, [x29,172] @@ -9085,12 +10223,12 @@ id_block_read_data.constprop.29: ldr w0, [x29,172] and w0, w0, 3 str w0, [x29,168] - adrp x0, .LC129 - add x0, x0, :lo12:.LC129 + adrp x0, .LC99 + add x0, x0, :lo12:.LC99 str x0, [x29,112] -.L1336: +.L1561: cmp w22, w27 - bcs .L1373 + bcs .L1598 ldr w0, [x29,168] adrp x1, .LANCHOR4 add x1, x1, :lo12:.LANCHOR4 @@ -9098,36 +10236,39 @@ id_block_read_data.constprop.29: uxth w0, w0 str w0, [x29,144] ldr w0, [x29,172] - ldrb w1, [x1,1136] + ldrb w1, [x1,1208] add w20, w22, w0 - add x0, x19, 172 + add x0, x19, 168 udiv w20, w20, w23 and w20, w20, 65535 ldrh w0, [x0,w20,sxtw 1] - cbnz w1, .L1337 + cbnz w1, .L1562 mov w20, w0 - b .L1338 -.L1337: - ldrb w1, [x19,168] + b .L1563 +.L1562: + ldrb w1, [x19,165] lsl w0, w20, 1 cmp w1, wzr csel w20, w0, w20, ne -.L1338: +.L1563: ldr w1, [x29,160] ldr w0, [x29,164] - ldrb w28, [x19,56] madd w0, w20, w0, w1 - ldr w1, [x29,168] str w0, [x29,140] + adrp x0, .LANCHOR4 + add x0, x0, :lo12:.LANCHOR4 + ldr w1, [x29,168] + ldrb w28, [x0,1209] + ldr w0, [x29,140] add w24, w0, w1 - ldr x0, [x19,48] + ldr x0, [x19,720] ldrb w0, [x0,9] udiv w24, w24, w0 - ldrb w0, [x19,148] + ldrb w0, [x19,140] str w0, [x29,132] mov w0, w28 bl nandc_bch_sel -.L1339: +.L1564: mov w0, 0 mov w1, w24 mov x2, x21 @@ -9136,30 +10277,30 @@ id_block_read_data.constprop.29: bl flash_read_page cmn w0, #1 mov w20, w0 - bne .L1346 - ldrb w5, [x19,144] - cbnz w5, .L1341 -.L1344: + bne .L1571 + ldrb w5, [x19,136] + cbnz w5, .L1566 +.L1569: adrp x0, .LANCHOR4 add x0, x0, :lo12:.LANCHOR4 - ldr x7, [x0,1096] - cbnz x7, .L1342 - b .L1343 -.L1341: + ldr x7, [x0,1168] + cbnz x7, .L1567 + b .L1568 +.L1566: mov w0, 0 mov w1, w24 mov x2, x21 add x3, x29, 176 mov w4, w23 str x5, [x29,104] - strb wzr, [x19,144] + strb wzr, [x19,136] bl flash_read_page cmn w0, #1 ldr x5, [x29,104] - strb w5, [x19,144] - beq .L1344 - b .L1372 -.L1342: + strb w5, [x19,136] + beq .L1569 + b .L1597 +.L1567: mov w0, 0 mov w2, w24 mov w1, w0 @@ -9168,28 +10309,28 @@ id_block_read_data.constprop.29: mov w5, w23 blr x7 cmn w0, #1 - bne .L1372 -.L1343: - ldrb w0, [x19,96] - cbz w0, .L1346 + bne .L1597 +.L1568: + ldrb w0, [x19,716] + cbz w0, .L1571 mov w0, 0 mov w1, w24 mov x2, x21 add x3, x29, 176 mov w4, w23 bl flash_ddr_tunning_read -.L1372: +.L1597: mov w20, w0 -.L1346: +.L1571: cmn w20, #1 - bne .L1347 + bne .L1572 cmp w28, 16 - beq .L1347 + beq .L1572 mov w0, 16 mov w28, 16 bl nandc_bch_sel - b .L1339 -.L1347: + b .L1564 +.L1572: ldr w0, [x29,132] bl nandc_bch_sel cmn w20, #1 @@ -9200,18 +10341,18 @@ id_block_read_data.constprop.29: cmp w0, w26 cset w0, eq tst w1, w0 - beq .L1349 - cbnz w25, .L1349 + beq .L1574 + cbnz w25, .L1574 ldr w1, [x21] mov w0, 18766 movk w0, 0x464e, lsl 16 cmp w1, w0 - bne .L1349 + bne .L1574 ldr w0, [x29,144] ldrb w23, [x21,17] add w27, w27, w0 - b .L1350 -.L1349: + b .L1575 +.L1574: ldr x0, [x29,144] mov w2, w22 ldr w1, [x29,140] @@ -9222,16 +10363,16 @@ id_block_read_data.constprop.29: ldr x0, [x29,112] bl printk str wzr, [x29,168] -.L1350: +.L1575: ldr w0, [x29,144] add w22, w0, w22 uxth w22, w22 - b .L1336 -.L1373: + b .L1561 +.L1598: ldr x0, [x29,120] ldrb w1, [x29,136] add x0, x0, :lo12:.LANCHOR0 - strb w1, [x0,144] + strb w1, [x0,136] mov w0, w25 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -9240,7 +10381,7 @@ id_block_read_data.constprop.29: ldp x27, x28, [sp,80] ldp x29, x30, [sp], 240 ret - .size id_block_read_data.constprop.29, .-id_block_read_data.constprop.29 + .size id_block_read_data.constprop.38, .-id_block_read_data.constprop.38 .align 2 .global flash_complete_page_read .type flash_complete_page_read, %function @@ -9252,135 +10393,155 @@ flash_complete_page_read: and w19, w0, 2097151 stp x21, x22, [sp,32] add x21, x20, :lo12:.LANCHOR0 - stp x23, x24, [sp,48] stp x25, x26, [sp,64] + stp x23, x24, [sp,48] stp x27, x28, [sp,80] - mov w26, w0 - mov x24, x1 - ldrb w1, [x21,57] - ubfx x0, x26, 21, 3 - mov x23, x2 - ubfx x25, x26, 24, 2 + mov w24, w0 + mov x25, x1 + ldrb w1, [x21,152] + ubfx x0, x24, 21, 3 + mov x26, x2 + ubfx x22, x24, 24, 2 cmp w1, w0 - bhi .L1375 + bhi .L1600 adrp x1, .LANCHOR3 - adrp x0, .LC34 + adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR3 - add x0, x0, :lo12:.LC34 - add x1, x1, 184 - mov w2, 794 + add x0, x0, :lo12:.LC0 + add x1, x1, 112 + mov w2, 789 bl printk -.L1376: - b .L1376 -.L1375: +.L1601: + b .L1601 +.L1600: add x0, x21, x0, sxtw - ldrb w22, [x0,160] - ldr x27, [x21,8] - mov w0, w22 + ldrb w23, [x0,156] + ldr x27, [x21,16] + mov w0, w23 bl nandc_cs - cbnz w25, .L1377 - ldrb w0, [x21,58] - cbz w0, .L1378 - ldrb w0, [x21,168] - cbz w0, .L1377 -.L1378: + cbnz w22, .L1602 + ldrb w0, [x21,164] + cbz w0, .L1603 + ldrb w0, [x21,165] + cbz w0, .L1602 +.L1603: add x1, x20, :lo12:.LANCHOR0 - ldrh w2, [x1,170] + ldrh w2, [x1,166] udiv w0, w19, w2 mul w0, w0, w2 - ldrb w2, [x1,168] + ldrb w2, [x1,165] sub w19, w19, w0 - cbz w2, .L1379 + cbz w2, .L1604 add w19, w0, w19, lsl 1 - b .L1377 -.L1379: - add x1, x1, 172 + b .L1602 +.L1604: + add x1, x1, 168 ldrh w19, [x1,w19,uxtw 1] add w19, w19, w0 -.L1377: - ubfiz x5, x22, 8, 8 - mov w0, 5 - add x5, x27, x5 +.L1602: + ubfiz x0, x23, 8, 8 adrp x21, .LANCHOR2 - add x28, x21, :lo12:.LANCHOR2 + add x5, x27, x0 + mov w0, 5 + add x27, x21, :lo12:.LANCHOR2 mov w1, 0 - add x28, x28, 368 - mov x3, x24 + mov x3, x25 + mov x4, x26 str w0, [x5,2056] and w0, w19, 255 str wzr, [x5,2052] - mov x4, x23 + add x27, x27, 368 str wzr, [x5,2052] str w0, [x5,2052] lsr w0, w19, 8 str w0, [x5,2052] lsr w0, w19, 16 - ldrb w2, [x28,9] + ldrb w2, [x27,9] str w0, [x5,2052] mov w0, 224 str w0, [x5,2056] - mov w0, w22 + mov w0, w23 bl nandc_xfer cmn w0, #1 - mov w27, w0 - bne .L1386 - add x5, x20, :lo12:.LANCHOR0 - ldrb w6, [x5,144] - cbnz w6, .L1381 -.L1384: - adrp x0, .LANCHOR4+1096 - ldr x6, [x0,#:lo12:.LANCHOR4+1096] - cbnz x6, .L1382 - b .L1383 -.L1381: - ldrb w4, [x28,9] - mov w0, w22 - orr w1, w19, w25, lsl 24 - mov x2, x24 - mov x3, x23 - str x6, [x29,96] - strb wzr, [x5,144] + bne .L1605 + add x28, x20, :lo12:.LANCHOR0 + ldrb w5, [x28,136] + cbz w5, .L1606 + ldrb w4, [x27,9] + mov w0, w23 + orr w1, w19, w22, lsl 24 + mov x2, x25 + mov x3, x26 str x5, [x29,104] + strb wzr, [x28,136] bl flash_read_page ldr x5, [x29,104] + strb w5, [x28,136] + cbnz w22, .L1607 +.L1614: + add x1, x20, :lo12:.LANCHOR0 + ldrb w2, [x1,164] + cbz w2, .L1607 + ldrb w1, [x1,140] + add w1, w1, w1, lsl 1 + cmp w0, w1, lsr 2 + blt .L1607 + add x21, x21, :lo12:.LANCHOR2 + ldrb w1, [x21,387] + sub w1, w1, #4 + uxtb w1, w1 + cmp w1, 3 + mov w1, 256 + csel w0, w0, w1, hi + b .L1622 +.L1607: cmn w0, #1 - ldr x6, [x29,96] - strb w6, [x5,144] - beq .L1384 - b .L1399 -.L1382: + bne .L1622 +.L1615: + adrp x0, .LANCHOR4+1168 + ldr x6, [x0,#:lo12:.LANCHOR4+1168] + cbnz x6, .L1610 +.L1613: + add x20, x20, :lo12:.LANCHOR0 + adrp x0, .LC100 + add x0, x0, :lo12:.LC100 + mov w1, 0 + mov w2, w24 + mov w3, -1 + ldrb w4, [x20,136] + bl printk + ldrb w0, [x20,716] + cbnz w0, .L1611 + mov w0, -1 + b .L1622 +.L1610: add x5, x21, :lo12:.LANCHOR2 - mov w0, w22 - mov w1, w25 + mov w0, w23 + mov w1, w22 mov w2, w19 - mov x3, x24 - mov x4, x23 + mov x3, x25 + mov x4, x26 ldrb w5, [x5,377] blr x6 cmn w0, #1 - bne .L1399 -.L1383: - add x20, x20, :lo12:.LANCHOR0 - adrp x0, .LC130 - add x0, x0, :lo12:.LC130 - mov w1, 0 - mov w2, w26 - mov w3, -1 - ldrb w4, [x20,144] - bl printk - ldrb w0, [x20,96] - cbz w0, .L1386 + bne .L1622 + b .L1613 +.L1611: add x21, x21, :lo12:.LANCHOR2 - mov w0, w22 - orr w1, w19, w25, lsl 24 - mov x2, x24 - mov x3, x23 + mov w0, w23 + orr w1, w19, w22, lsl 24 + mov x2, x25 + mov x3, x26 ldrb w4, [x21,377] bl flash_ddr_tunning_read -.L1399: - mov w27, w0 -.L1386: - mov w0, w27 + b .L1622 +.L1605: + cbz w22, .L1614 + b .L1622 +.L1606: + cbz w22, .L1614 + b .L1615 +.L1622: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -9399,9 +10560,9 @@ queue_wait_first_req_completed: add x0, x19, :lo12:.LANCHOR0 stp x21, x22, [sp,32] stp x23, x24, [sp,48] - ldrb w20, [x0,3774] + ldrb w20, [x0,3814] cmp w20, 255 - beq .L1436 + beq .L1671 add x0, x0, 728 mov w1, 0 add x0, x0, x20, lsl 6 @@ -9409,34 +10570,34 @@ queue_wait_first_req_completed: ldr w21, [x0,40] sub w3, w2, #1 cmp w3, 9 - bhi .L1402 - adrp x0, .L1404 - add x0, x0, :lo12:.L1404 + bhi .L1637 + adrp x0, .L1639 + add x0, x0, :lo12:.L1639 ldrb w0, [x0,w3,uxtw] - adr x1, .Lrtx1404 + adr x1, .Lrtx1639 add x0, x1, w0, sxtb #2 br x0 -.Lrtx1404: +.Lrtx1639: .section .rodata .align 0 .align 2 -.L1404: - .byte (.L1403 - .Lrtx1404) / 4 - .byte (.L1403 - .Lrtx1404) / 4 - .byte (.L1405 - .Lrtx1404) / 4 - .byte (.L1405 - .Lrtx1404) / 4 - .byte (.L1405 - .Lrtx1404) / 4 - .byte (.L1406 - .Lrtx1404) / 4 - .byte (.L1407 - .Lrtx1404) / 4 - .byte (.L1408 - .Lrtx1404) / 4 - .byte (.L1405 - .Lrtx1404) / 4 - .byte (.L1408 - .Lrtx1404) / 4 +.L1639: + .byte (.L1638 - .Lrtx1639) / 4 + .byte (.L1638 - .Lrtx1639) / 4 + .byte (.L1640 - .Lrtx1639) / 4 + .byte (.L1640 - .Lrtx1639) / 4 + .byte (.L1640 - .Lrtx1639) / 4 + .byte (.L1641 - .Lrtx1639) / 4 + .byte (.L1642 - .Lrtx1639) / 4 + .byte (.L1643 - .Lrtx1639) / 4 + .byte (.L1640 - .Lrtx1639) / 4 + .byte (.L1643 - .Lrtx1639) / 4 .text -.L1403: +.L1638: mov w0, w21 mov w1, 64 bl flash_wait_device_ready - tbz x0, 6, .L1436 + tbz x0, 6, .L1671 add x19, x19, :lo12:.LANCHOR0 mov w0, w21 add x19, x19, 728 @@ -9454,36 +10615,36 @@ queue_wait_first_req_completed: ldrb w0, [x20,2] orr w0, w0, 8 strb w0, [x20,2] - b .L1436 -.L1405: + b .L1671 +.L1640: bl nandc_iqr_wait_flash_ready mov w0, w21 mov w1, 64 bl flash_wait_device_ready mov w21, w0 - tbz x21, 6, .L1436 + tbz x21, 6, .L1671 mov w1, 5 add x19, x19, :lo12:.LANCHOR0 ands w1, w21, w1 - beq .L1411 + beq .L1646 add x19, x19, 728 mov w0, 11 add x20, x19, x20, lsl 6 mov w4, 11 strb w0, [x20,58] - adrp x0, .LC131 + adrp x0, .LC101 ldrb w1, [x20,1] - add x0, x0, :lo12:.LC131 + add x0, x0, :lo12:.LC101 ldr w2, [x20,52] ldr w3, [x20,40] bl printk mov w0, -1 str w0, [x20,52] - b .L1437 -.L1411: + b .L1672 +.L1646: add x20, x19, x20, lsl 6 - b .L1418 -.L1408: + b .L1653 +.L1643: add x22, x19, :lo12:.LANCHOR0 mov w0, 3 cmp w2, 10 @@ -9492,32 +10653,32 @@ queue_wait_first_req_completed: csel w1, w0, w1, ne ubfx x3, x21, 21, 3 add x0, x22, x20, lsl 6 -.L1413: +.L1648: ldrb w23, [x0] cmp w23, 255 - beq .L1438 + beq .L1673 add x0, x22, x23, lsl 6 ldrb w2, [x0,58] cmp w2, w1 - bne .L1413 + bne .L1648 ldr w2, [x0,40] ubfx x2, x2, 21, 3 cmp w3, w2 - bne .L1413 + bne .L1648 bl nandc_iqr_wait_flash_ready mov w0, w21 mov w1, 64 bl flash_wait_device_ready mov w21, w0 and w0, w0, 64 - tbz x21, 6, .L1421 + tbz x21, 6, .L1656 ands w0, w21, 15 add x22, x22, x20, lsl 6 - beq .L1416 - adrp x0, .LC131 + beq .L1651 + adrp x0, .LC101 ldrb w1, [x22,1] ldr w2, [x22,52] - add x0, x0, :lo12:.LC131 + add x0, x0, :lo12:.LC101 ldr w3, [x22,40] mov w4, 11 bl printk @@ -9525,7 +10686,7 @@ queue_wait_first_req_completed: strb w0, [x22,58] mov w0, -1 str w0, [x22,52] -.L1415: +.L1650: add x19, x19, :lo12:.LANCHOR0 add x19, x19, 728 add x20, x19, x20, lsl 6 @@ -9534,52 +10695,52 @@ queue_wait_first_req_completed: strb w0, [x23,58] ldr w0, [x20,52] str w0, [x23,52] -.L1437: +.L1672: mov w1, w21 - b .L1402 -.L1416: + b .L1637 +.L1651: mov w1, 12 str w0, [x22,52] strb w1, [x22,58] -.L1421: +.L1656: mov w21, w0 - b .L1415 -.L1438: + b .L1650 +.L1673: mov w1, -1 - b .L1402 -.L1406: + b .L1637 +.L1641: mov w1, 32 mov w0, w21 bl flash_wait_device_ready - tbz x0, 5, .L1436 + tbz x0, 5, .L1671 ands w1, w0, 15 add x19, x19, :lo12:.LANCHOR0 add x20, x19, x20, lsl 6 - beq .L1418 + beq .L1653 mov w1, 11 strb w1, [x20,786] mov w1, -1 str w1, [x20,780] mov w1, w0 - b .L1402 -.L1418: + b .L1637 +.L1653: mov w0, 12 str w1, [x20,780] strb w0, [x20,786] - b .L1402 -.L1407: + b .L1637 +.L1642: mov w1, 64 mov w0, w21 bl flash_wait_device_ready - tbz x0, 6, .L1436 + tbz x0, 6, .L1671 add x19, x19, :lo12:.LANCHOR0 add x20, x19, x20, lsl 6 str w0, [x20,780] mov w0, 6 strb w0, [x20,786] -.L1436: +.L1671: mov w1, 0 -.L1402: +.L1637: mov w0, w1 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -9595,15 +10756,15 @@ sblk_wait_write_queue_completed: add x29, sp, 0 str x19, [sp,16] adrp x19, .LANCHOR0 -.L1440: +.L1675: add x0, x19, :lo12:.LANCHOR0 - ldrb w0, [x0,3774] + ldrb w0, [x0,3814] cmp w0, 255 - beq .L1442 + beq .L1677 bl queue_wait_first_req_completed bl queue_remove_completed_req - b .L1440 -.L1442: + b .L1675 +.L1677: ldr x19, [sp,16] ldp x29, x30, [sp], 32 ret @@ -9672,48 +10833,48 @@ ftl_open_sblk_read_test: add x21, x21, :lo12:.LANCHOR4 add x22, x22, :lo12:.LANCHOR5 str x23, [sp,48] - add x21, x21, 1152 + add x21, x21, 1216 bl ftl_get_blk_list_in_sblk - add x22, x22, 128 + add x22, x22, 192 strh w19, [x29,64] strb w0, [x29,73] mov w19, 0 -.L1446: +.L1681: adrp x0, .LANCHOR0 add x1, x0, :lo12:.LANCHOR0 mov x23, x0 - ldrh w1, [x1,3234] + ldrh w1, [x1,3228] cmp w1, w19 - bls .L1445 + bls .L1680 mov w20, 0 -.L1452: +.L1687: add x3, x23, :lo12:.LANCHOR0 - ldrb w0, [x3,3212] + ldrb w0, [x3,3196] cmp w0, w20 - bls .L1458 + bls .L1693 add x0, x29, 64 add x0, x0, x20, sxtw 1 ldrh w0, [x0,16] mov w1, 65535 cmp w0, w1 - beq .L1448 - ldrh w1, [x3,3230] + beq .L1683 + ldrh w1, [x3,3270] mov x2, x22 ldrb w3, [x3,2776] madd w0, w0, w1, w19 mov x1, x21 bl ftl_read_ppa_page cmp w0, 512 - beq .L1445 -.L1448: + beq .L1680 +.L1683: add w20, w20, 1 uxth w20, w20 - b .L1452 -.L1458: + b .L1687 +.L1693: add w19, w19, 1 uxth w19, w19 - b .L1446 -.L1445: + b .L1681 +.L1680: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldr x23, [sp,48] @@ -9739,21 +10900,21 @@ sblk_read_page: mov x19, x0 mov w22, w21 mov w25, -1 - add x26, x23, 3774 -.L1460: - cbz w22, .L1472 + add x26, x23, 3814 +.L1695: + cbz w22, .L1707 ldrb w27, [x19] ldr w28, [x19,40] -.L1461: +.L1696: mov w0, w28 mov w1, 0 bl queue_lun_state mov w2, w0 - cbz w0, .L1473 + cbz w0, .L1708 bl queue_wait_first_req_completed bl queue_remove_completed_req - b .L1461 -.L1473: + b .L1696 +.L1708: ldr w1, [x19,40] mov w0, 48 str x2, [x29,104] @@ -9766,29 +10927,29 @@ sblk_read_page: strb w25, [x19] bl buf_add_tail subs w22, w22, #1 - beq .L1472 + beq .L1707 add x19, x23, 728 sbfiz x27, x27, 6, 32 add x19, x19, x27 - b .L1460 -.L1472: + b .L1695 +.L1707: adrp x19, .LANCHOR0 add x19, x19, :lo12:.LANCHOR0 add x19, x19, 728 -.L1465: - cbz w21, .L1474 +.L1700: + cbz w21, .L1709 ldrb w0, [x20,58] cmp w0, 12 - bne .L1466 + bne .L1701 ldrb w20, [x20] sub w21, w21, #1 add x20, x19, x20, lsl 6 - b .L1465 -.L1466: + b .L1700 +.L1701: bl queue_wait_first_req_completed bl queue_remove_completed_req - b .L1465 -.L1474: + b .L1700 +.L1709: mov w0, w21 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -9812,130 +10973,130 @@ gc_check_data_one_wl: stp x21, x22, [sp,48] stp x23, x24, [sp,64] stp x25, x26, [sp,80] - add x20, x20, 2848 - ldr x0, [x20,8] - ldr x23, [x20,-56] - cbnz x0, .L1476 + ldr x0, [x20,2848] + ldr x23, [x20,80] + add x20, x20, 2840 + cbnz x0, .L1711 mov w0, 1 bl buf_alloc str x0, [x20,8] -.L1476: +.L1711: add x21, x19, :lo12:.LANCHOR0 mov w24, 0 - ldr x20, [x21,2856] - cbnz x20, .L1477 + ldr x20, [x21,2848] + cbnz x20, .L1712 adrp x1, .LANCHOR3 - adrp x0, .LC34 + adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR3 - add x0, x0, :lo12:.LC34 - add x1, x1, 216 - mov w2, 336 + add x0, x0, :lo12:.LC0 + add x1, x1, 144 + mov w2, 348 bl printk -.L1478: - b .L1478 -.L1477: +.L1713: + b .L1713 +.L1712: add x25, x23, 80 adrp x26, .LANCHOR4 -.L1499: +.L1734: ldrb w0, [x25,9] cmp w24, w0 - bge .L1501 + bge .L1736 mov w22, 1 sxtw x27, w24 -.L1487: - add x0, x21, 2848 +.L1722: + add x0, x21, 2840 ldrh w1, [x0,20] cmp w22, w1 - bgt .L1502 + bgt .L1737 add x1, x27, 8 - ldrh w2, [x21,3230] + ldrh w2, [x21,3270] ldrh w0, [x0,16] ldrh w1, [x25,x1,lsl 1] mul w1, w1, w2 - ldrb w2, [x21,3193] + ldrb w2, [x21,3177] cmp w2, 3 - bne .L1479 + bne .L1714 add w1, w1, w0 orr w1, w1, w22, lsl 24 - b .L1500 -.L1479: + b .L1735 +.L1714: cmp w2, 2 - bne .L1481 + bne .L1716 sub w0, w0, #1 add w1, w0, w1 add w1, w1, w22 orr w1, w1, 33554432 - b .L1500 -.L1481: + b .L1735 +.L1716: add w1, w1, w0 -.L1500: +.L1735: str w1, [x20,40] mov x0, x20 mov w1, 1 bl sblk_read_page ldr w2, [x20,52] cmn w2, #1 - beq .L1482 + beq .L1717 add x3, x26, :lo12:.LANCHOR4 - ldrh w0, [x21,2870] + ldrh w0, [x21,2862] ldr x1, [x20,24] lsl x0, x0, 2 - ldr x4, [x3,1016] + ldr x4, [x3,1056] ldr w5, [x4,x0] ldr w4, [x1,4] cmp w5, w4 - bne .L1482 - ldr x3, [x3,1024] + bne .L1717 + ldr x3, [x3,1064] ldr w3, [x3,x0] ldr w0, [x1,8] cmp w3, w0 - beq .L1483 -.L1482: + beq .L1718 +.L1717: add x0, x26, :lo12:.LANCHOR4 - ldrh w4, [x21,2870] + ldrh w4, [x21,2862] lsl x4, x4, 2 - ldr x1, [x0,1016] + ldr x1, [x0,1056] ldr w3, [x1,x4] cmn w3, #1 - beq .L1483 + beq .L1718 adrp x1, .LANCHOR2+400 ldr w1, [x1,#:lo12:.LANCHOR2+400] - tbz x1, 10, .L1484 + tbz x1, 10, .L1719 ldr x7, [x20,24] - ldr x5, [x0,1024] + ldr x5, [x0,1064] ldr w0, [x7,12] str w0, [sp] - adrp x0, .LC132 - add x0, x0, :lo12:.LC132 + adrp x0, .LC102 + add x0, x0, :lo12:.LC102 ldr w4, [x5,x4] ldr w6, [x7,4] ldr w5, [x7] ldr w1, [x20,40] ldr w7, [x7,8] bl printk -.L1484: +.L1719: add x19, x19, :lo12:.LANCHOR0 ldrh w1, [x23,80] - ldr x0, [x19,2832] + ldr x0, [x19,72] strh wzr, [x0,x1,lsl 1] mov w0, -1 - b .L1485 -.L1483: - ldrh w0, [x21,2870] + b .L1720 +.L1718: + ldrh w0, [x21,2862] add w22, w22, 1 add w0, w0, 1 - strh w0, [x21,2870] - b .L1487 -.L1502: + strh w0, [x21,2862] + b .L1722 +.L1737: add w24, w24, 1 - b .L1499 -.L1501: + b .L1734 +.L1736: add x19, x19, :lo12:.LANCHOR0 - ldrh w0, [x19,2864] + ldrh w0, [x19,2856] add w0, w0, 1 - strh w0, [x19,2864] + strh w0, [x19,2856] mov w0, 0 -.L1485: +.L1720: sub sp, x29, #16 ldp x19, x20, [sp,32] ldp x21, x22, [sp,48] @@ -9947,6 +11108,205 @@ gc_check_data_one_wl: ret .size gc_check_data_one_wl, .-gc_check_data_one_wl .align 2 + .global flash_prog_page + .type flash_prog_page, %function +flash_prog_page: + stp x29, x30, [sp, -96]! + add x29, sp, 0 + stp x21, x22, [sp,32] + uxtb x22, w0 + adrp x0, .LANCHOR0+16 + adrp x21, .LANCHOR2 + str x27, [sp,80] + stp x19, x20, [sp,16] + ldr x19, [x0,#:lo12:.LANCHOR0+16] + add x0, x21, :lo12:.LANCHOR2 + stp x23, x24, [sp,48] + stp x25, x26, [sp,64] + mov x20, x22 + add x22, x22, 8 + ldr w0, [x0,400] + mov w23, w1 + mov x24, x3 + mov x25, x2 + mov w3, w4 + add x22, x19, x22, lsl 8 + and w26, w1, 2097151 + ubfx x27, x23, 24, 2 + tbz x0, 4, .L1739 + adrp x0, .LC103 + mov w2, w27 + add x0, x0, :lo12:.LC103 + bl printk +.L1739: + bl nandc_wait_flash_ready + mov w0, w20 + bl hynix_reconfig_rr_para + mov w0, w20 + bl nandc_cs + mov w0, w20 + cbnz w27, .L1740 + bl zftl_flash_enter_slc_mode + b .L1741 +.L1740: + bl zftl_flash_exit_slc_mode +.L1741: + ubfiz x4, x20, 8, 8 + mov w0, 128 + add x19, x19, x4 + and w1, w23, 255 + add x21, x21, :lo12:.LANCHOR2 + str w0, [x19,2056] + lsr w0, w26, 8 + str wzr, [x19,2052] + str wzr, [x19,2052] + str w1, [x19,2052] + str w0, [x19,2052] + lsr w0, w26, 16 + str w0, [x19,2052] + mov w0, w26 + bl nandc_set_seed + ldrb w1, [x21,377] + mov x2, x25 + mov x3, x24 + mov w0, 1 + bl nandc_xfer_start + bl nandc_xfer_done + mov w0, 16 + str w0, [x19,2056] + bl nandc_iqr_wait_flash_ready + bl nandc_wait_flash_ready + mov x0, x22 + bl flash_read_status + mov w19, w0 + mov w0, w20 + bl nandc_de_cs + ldr x27, [sp,80] + and w0, w19, 4 + 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 flash_prog_page, .-flash_prog_page + .align 2 + .global flash_test_blk + .type flash_test_blk, %function +flash_test_blk: + stp x29, x30, [sp, -48]! + add x29, sp, 0 + stp x19, x20, [sp,16] + stp x21, x22, [sp,32] + uxtb w22, w0 + uxth w20, w1 + cbnz w22, .L1746 + adrp x0, .LANCHOR5+448 + ldrb w1, [x0,#:lo12:.LANCHOR5+448] + mov w0, w22 + cmp w1, w20 + bhi .L1747 +.L1746: + adrp x19, .LANCHOR4 + mov w1, 165 + add x19, x19, :lo12:.LANCHOR4 + mov w2, 32 + ldr x0, [x19,1200] + bl ftl_memset + ldr x0, [x19,1192] + mov w1, 90 + mov w2, 8 + bl ftl_memset + adrp x0, .LANCHOR0+166 + ldrh w21, [x0,#:lo12:.LANCHOR0+166] + mov w0, w22 + mul w21, w20, w21 + mov w1, w21 + bl flash_erase_block + cmn w0, #1 + beq .L1752 + adrp x20, .LANCHOR2 + ldr x2, [x19,1192] + add x20, x20, :lo12:.LANCHOR2 + ldr x3, [x19,1200] + mov w0, w22 + mov w1, w21 + add x20, x20, 368 + ldrb w4, [x20,9] + bl flash_prog_page + cmn w0, #1 + beq .L1752 + ldrb w4, [x20,9] + mov w0, w22 + ldr x2, [x19,1192] + mov w1, w21 + ldr x3, [x19,1200] + bl flash_read_page + cmn w0, #1 + mov w20, w0 + beq .L1752 + ldr x0, [x19,1192] + ldr w1, [x0] + mov w0, 23130 + bfi w0, w0, 16, 16 + cmp w1, w0 + bne .L1752 + ldr x0, [x19,1200] + ldr w1, [x0] + mov w0, 42405 + bfi w0, w0, 16, 16 + cmp w1, w0 + csinv w20, w20, wzr, eq + b .L1749 +.L1752: + mov w20, -1 +.L1749: + mov w0, w22 + mov w1, w21 + bl flash_erase_block + mov w0, w20 +.L1747: + ldp x19, x20, [sp,16] + ldp x21, x22, [sp,32] + ldp x29, x30, [sp], 48 + ret + .size flash_test_blk, .-flash_test_blk + .section .text.unlikely,"ax",%progbits + .align 2 + .type fw_flash_page_prog.constprop.39, %function +fw_flash_page_prog.constprop.39: + stp x29, x30, [sp, -64]! + adrp x4, .LANCHOR0 + add x29, sp, 0 + add x4, x4, :lo12:.LANCHOR0 + str x21, [sp,32] + mov x21, x1 + stp x19, x20, [sp,16] + str x2, [x29,56] + ldr x1, [x4,720] + ldrb w20, [x4,140] + ldrb w19, [x1,9] + udiv w19, w0, w19 + adrp x0, .LANCHOR4+1209 + ldrb w0, [x0,#:lo12:.LANCHOR4+1209] + bl nandc_bch_sel + ldr x3, [x29,56] + mov w1, w19 + mov x2, x21 + mov w4, 4 + mov w0, 0 + bl flash_prog_page + mov w19, w0 + mov w0, w20 + bl nandc_bch_sel + ldr x21, [sp,32] + mov w0, w19 + ldp x19, x20, [sp,16] + ldp x29, x30, [sp], 64 + ret + .size fw_flash_page_prog.constprop.39, .-fw_flash_page_prog.constprop.39 + .text + .align 2 .global flash_start_tlc_page_prog .type flash_start_tlc_page_prog, %function flash_start_tlc_page_prog: @@ -9962,34 +11322,34 @@ flash_start_tlc_page_prog: uxtb w25, w0 uxtb w24, w1 uxtb w20, w2 - ldrb w0, [x7,57] + ldrb w0, [x7,152] mov x22, x5 mov x21, x6 cmp w0, w3 - bhi .L1504 + bhi .L1762 adrp x1, .LANCHOR3 - adrp x0, .LC34 + adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR3 - add x0, x0, :lo12:.LC34 - add x1, x1, 240 - mov w2, 658 + add x0, x0, :lo12:.LC0 + add x1, x1, 168 + mov w2, 648 bl printk -.L1505: - b .L1505 -.L1504: +.L1763: + b .L1763 +.L1762: add x3, x7, x3, sxtw - ldrb w23, [x3,160] + ldrb w23, [x3,156] str x4, [x29,88] mov w0, w23 - ldr x19, [x7,8] + ldr x19, [x7,16] bl nandc_cs ldr x4, [x29,88] - cbz w25, .L1506 + cbz w25, .L1764 sxtw x7, w23 add x7, x7, 8 add x7, x19, x7, lsl 8 str w25, [x7,8] -.L1506: +.L1764: ubfiz x7, x23, 8, 8 mov w0, 128 add x19, x19, x7 @@ -10077,7 +11437,7 @@ queue_tlc_prog_cmd: strb w0, [x1] adrp x0, .LANCHOR0 add x0, x0, :lo12:.LANCHOR0 - add x0, x0, 3774 + add x0, x0, 3814 bl buf_add_tail ldr x21, [sp,32] ldp x19, x20, [sp,16] @@ -10095,16 +11455,16 @@ sblk_tlc_prog_one_page: mov x20, x0 ldr x0, [x0] ldr w21, [x0,40] -.L1512: +.L1770: mov w0, w21 mov w1, 1 bl queue_lun_state mov w19, w0 - cbz w0, .L1514 + cbz w0, .L1772 bl queue_wait_first_req_completed bl queue_remove_completed_req - b .L1512 -.L1514: + b .L1770 +.L1772: mov x0, x20 bl queue_tlc_prog_cmd ldr x21, [sp,32] @@ -10127,17 +11487,17 @@ sblk_xlc_prog_pages: ldr x0, [x0] mov w24, w2 ldr w20, [x0,40] -.L1516: +.L1774: mov w0, w20 mov w1, 1 bl queue_lun_state - cbz w0, .L1520 + cbz w0, .L1778 bl queue_wait_first_req_completed bl queue_remove_completed_req - b .L1516 -.L1520: + b .L1774 +.L1778: cmp w24, 2 - bne .L1518 + bne .L1776 ldr x6, [x19] mov w1, 1 ldr x0, [x22] @@ -10219,13 +11579,13 @@ sblk_xlc_prog_pages: strb w0, [x1] adrp x0, .LANCHOR0 add x0, x0, :lo12:.LANCHOR0 - add x0, x0, 3774 + add x0, x0, 3814 bl buf_add_tail - b .L1519 -.L1518: + b .L1777 +.L1776: mov x0, x19 bl queue_tlc_prog_cmd -.L1519: +.L1777: mov w0, 0 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -10239,97 +11599,111 @@ sblk_xlc_prog_pages: flash_start_page_prog: stp x29, x30, [sp, -96]! add x29, sp, 0 + stp x27, x28, [sp,80] stp x19, x20, [sp,16] - stp x21, x22, [sp,32] - str x27, [sp,80] - uxtb w22, w0 + ubfx x27, x1, 21, 3 and w19, w1, 2097151 - ubfx x0, x1, 21, 3 - ubfx x27, x1, 24, 2 + ubfx x28, x1, 24, 2 adrp x1, .LANCHOR0 stp x25, x26, [sp,64] add x26, x1, :lo12:.LANCHOR0 - mov x20, x1 + mov x25, x2 stp x23, x24, [sp,48] - mov x24, x2 - mov x23, x3 - ldrb w2, [x26,57] - cmp w2, w0 - bhi .L1522 + uxtb w23, w0 + mov x24, x3 + ldrb w0, [x26,152] + stp x21, x22, [sp,32] + cmp w0, w27 + mov x21, x1 + bhi .L1780 adrp x1, .LANCHOR3 - adrp x0, .LC34 + adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR3 - add x0, x0, :lo12:.LC34 - add x1, x1, 272 - mov w2, 695 + add x0, x0, :lo12:.LC0 + add x1, x1, 200 + mov w2, 685 bl printk -.L1523: - b .L1523 -.L1522: - add x0, x26, x0, sxtw - ldrb w21, [x0,160] - ldr x25, [x26,8] - mov w0, w21 +.L1781: + b .L1781 +.L1780: + add x0, x26, x27, sxtw + ldr x20, [x26,16] + ldrb w22, [x0,156] + bl nandc_rdy_status + cbnz w0, .L1782 + ldrb w0, [x26,152] + cmp w0, 1 + bne .L1783 + bl nandc_wait_flash_ready + b .L1782 +.L1783: + mov w0, w27 + mov w1, w19 + mov w2, 64 + bl flash_wait_device_ready_raw +.L1782: + mov w0, w22 bl hynix_reconfig_rr_para - mov w0, w21 + mov w0, w22 bl nandc_cs - cbnz w27, .L1524 - ldrb w0, [x26,58] - cbz w0, .L1525 - ldrb w0, [x26,168] - cbz w0, .L1526 -.L1525: - add x1, x20, :lo12:.LANCHOR0 - ldrh w2, [x1,170] + cbnz w28, .L1784 + add x0, x21, :lo12:.LANCHOR0 + ldrb w1, [x0,164] + cbz w1, .L1785 + ldrb w0, [x0,165] + cbz w0, .L1786 +.L1785: + add x1, x21, :lo12:.LANCHOR0 + ldrh w2, [x1,166] udiv w0, w19, w2 mul w0, w0, w2 - ldrb w2, [x1,168] + ldrb w2, [x1,165] sub w19, w19, w0 - cbz w2, .L1527 + cbz w2, .L1787 add w19, w0, w19, lsl 1 - b .L1526 -.L1527: - add x1, x1, 172 + b .L1786 +.L1787: + add x1, x1, 168 ldrh w19, [x1,w19,uxtw 1] add w19, w19, w0 - b .L1528 -.L1526: - mov w0, w21 + b .L1788 +.L1786: + mov w0, w22 bl zftl_flash_enter_slc_mode - b .L1528 -.L1524: - mov w0, w21 + b .L1788 +.L1784: + mov w0, w22 bl zftl_flash_exit_slc_mode -.L1528: - ubfiz x0, x21, 8, 8 - add x25, x25, x0 +.L1788: + ubfiz x1, x22, 8, 8 mov w0, 128 - str w0, [x25,2056] + add x20, x20, x1 + str w0, [x20,2056] and w0, w19, 255 - str wzr, [x25,2052] - str wzr, [x25,2052] - str w0, [x25,2052] + str wzr, [x20,2052] + str wzr, [x20,2052] + str w0, [x20,2052] lsr w0, w19, 8 - str w0, [x25,2052] + str w0, [x20,2052] lsr w0, w19, 16 - str w0, [x25,2052] + str w0, [x20,2052] mov w0, w19 bl nandc_set_seed adrp x1, .LANCHOR2+377 - mov x2, x24 - mov x3, x23 + mov x2, x25 + mov x3, x24 mov w0, 1 ldrb w1, [x1,#:lo12:.LANCHOR2+377] bl nandc_xfer_start bl nandc_xfer_done - str w22, [x25,2056] - mov w0, w21 + str w23, [x20,2056] + mov w0, w22 bl nandc_de_cs - 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 flash_start_page_prog, .-flash_start_page_prog @@ -10348,37 +11722,37 @@ queue_prog_cmd: adrp x0, .LANCHOR0 ldr w4, [x19,40] add x1, x0, :lo12:.LANCHOR0 - ldrb w2, [x1,3774] + ldrb w2, [x1,3814] cmp w2, 255 - beq .L1533 + beq .L1793 ubfx x4, x4, 21, 3 add x1, x1, 728 -.L1535: +.L1795: add x3, x1, x2, lsl 6 ldr w5, [x3,40] ubfx x5, x5, 21, 3 cmp w4, w5 - bne .L1534 + bne .L1794 ldrb w5, [x3,58] add x3, x3, 48 cmp w5, 6 - bne .L1534 + bne .L1794 mov w1, 3 strb w1, [x3,10] - b .L1533 -.L1534: + b .L1793 +.L1794: lsl x2, x2, 6 ldrb w2, [x1,x2] cmp w2, 255 - bne .L1535 -.L1533: + bne .L1795 +.L1793: mov w1, 3 strb w1, [x19,58] mov w1, 1 add x0, x0, :lo12:.LANCHOR0 strb w1, [x19,59] mov w1, -1 - add x0, x0, 3774 + add x0, x0, 3814 strb w1, [x19] mov x1, x19 bl buf_add_tail @@ -10400,67 +11774,67 @@ sblk_prog_page: mov x19, x0 uxtb w20, w1 ldrh w0, [x0,50] - cbz w0, .L1541 + cbz w0, .L1801 adrp x0, .LANCHOR2+400 ldr w0, [x0,#:lo12:.LANCHOR2+400] - tbz x0, 8, .L1541 - adrp x0, .LC133 + tbz x0, 8, .L1801 + adrp x0, .LC104 ldr w1, [x19,40] - add x0, x0, :lo12:.LC133 + add x0, x0, :lo12:.LC104 mov w2, w20 bl printk -.L1541: +.L1801: adrp x21, .LANCHOR0 mov w22, 0 add x21, x21, :lo12:.LANCHOR0 mov w23, 1 add x25, x21, 728 mov w26, 21 -.L1542: - cbz w20, .L1569 +.L1802: + cbz w20, .L1829 ldrb w24, [x19] ldr w27, [x19,40] -.L1543: +.L1803: mov w0, w27 mov w1, 1 bl queue_lun_state mov w28, w0 - cbz w0, .L1570 + cbz w0, .L1830 bl queue_wait_first_req_completed bl queue_remove_completed_req - b .L1543 -.L1570: + b .L1803 +.L1830: cmp w20, 1 - beq .L1545 - ldrb w0, [x21,721] - cbnz w0, .L1546 -.L1545: + beq .L1805 + ldrb w0, [x21,717] + cbnz w0, .L1806 +.L1805: mov x0, x19 bl queue_prog_cmd - b .L1547 -.L1546: + b .L1807 +.L1806: ldrb w1, [x19] ubfx x2, x27, 21, 3 cmp w1, 255 - bne .L1548 + bne .L1808 adrp x1, .LANCHOR3 - adrp x0, .LC34 + adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR3 - add x0, x0, :lo12:.LC34 - add x1, x1, 296 - mov w2, 484 + add x0, x0, :lo12:.LC0 + add x1, x1, 224 + mov w2, 486 bl printk -.L1549: - b .L1549 -.L1548: +.L1809: + b .L1809 +.L1808: sbfiz x1, x1, 6, 32 add x1, x25, x1 ldr w5, [x1,40] ubfx x0, x5, 21, 3 cmp w2, w0 - bne .L1550 - ldrh w3, [x21,3218] - ldrb w6, [x21,3216] + bne .L1810 + ldrh w3, [x21,3266] + ldrb w6, [x21,3264] sub w2, w26, w3 lsr w1, w27, w3 sub w6, w6, #1 @@ -10477,13 +11851,13 @@ sblk_prog_page: and w1, w2, w0 cmp w1, w3 uxth w4, w4 - beq .L1551 + beq .L1811 and w27, w4, w27 and w4, w4, w5 cmp w27, w4 - bne .L1551 + bne .L1811 cmp w22, w6 - beq .L1550 + beq .L1810 ldr w1, [x19,40] mov w0, 17 ldr x2, [x19,8] @@ -10496,24 +11870,24 @@ sblk_prog_page: mov w0, -1 mov x1, x19 strb w0, [x19] - add x0, x21, 3774 + add x0, x21, 3814 bl buf_add_tail - b .L1547 -.L1551: + b .L1807 +.L1811: mov x0, x19 mov w22, 0 bl queue_prog_cmd - b .L1547 -.L1550: + b .L1807 +.L1810: mov x0, x19 mov w22, w28 bl queue_prog_cmd -.L1547: +.L1807: sbfiz x19, x24, 6, 32 sub w20, w20, #1 add x19, x25, x19 - b .L1542 -.L1569: + b .L1802 +.L1829: mov w0, w20 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -10534,19 +11908,19 @@ ftl_flush: stp x19, x20, [sp,16] mov x19, x2 adrp x20, .LANCHOR5 - ldrb w1, [x0,3772] - cbz w1, .L1572 + ldrb w1, [x0,3812] + cbz w1, .L1832 add x2, x20, :lo12:.LANCHOR5 add x0, x0, 728 - ldrb w2, [x2,384] + ldrb w2, [x2,449] add x0, x0, x2, lsl 6 bl sblk_prog_page -.L1572: +.L1832: add x2, x19, :lo12:.LANCHOR0 add x20, x20, :lo12:.LANCHOR5 mov w0, -1 - strb wzr, [x2,3772] - strb w0, [x20,384] + strb wzr, [x2,3812] + strb w0, [x20,449] bl sblk_wait_write_queue_completed bl ftl_write_completed mov w0, -1 @@ -10559,233 +11933,23 @@ ftl_flush: .global zftl_cache_flush .type zftl_cache_flush, %function zftl_cache_flush: - adrp x0, .LANCHOR0+3772 + adrp x0, .LANCHOR0+3812 stp x29, x30, [sp, -16]! add x29, sp, 0 - ldrb w0, [x0,#:lo12:.LANCHOR0+3772] - cbz w0, .L1576 + ldrb w0, [x0,#:lo12:.LANCHOR0+3812] + cbz w0, .L1836 bl timer_get_time - adrp x1, .LANCHOR5+388 - ldr w1, [x1,#:lo12:.LANCHOR5+388] + adrp x1, .LANCHOR5+452 + ldr w1, [x1,#:lo12:.LANCHOR5+452] add w1, w1, 100 cmp w0, w1 - bls .L1576 + bls .L1836 bl ftl_flush -.L1576: +.L1836: ldp x29, x30, [sp], 16 ret .size zftl_cache_flush, .-zftl_cache_flush .align 2 - .global flash_prog_page - .type flash_prog_page, %function -flash_prog_page: - stp x29, x30, [sp, -96]! - add x29, sp, 0 - stp x21, x22, [sp,32] - uxtb x22, w0 - adrp x0, .LANCHOR0+8 - adrp x21, .LANCHOR2 - str x27, [sp,80] - stp x19, x20, [sp,16] - ldr x19, [x0,#:lo12:.LANCHOR0+8] - add x0, x21, :lo12:.LANCHOR2 - stp x23, x24, [sp,48] - stp x25, x26, [sp,64] - mov x20, x22 - add x22, x22, 8 - ldr w0, [x0,400] - mov w23, w1 - mov x25, x3 - mov x26, x2 - mov w3, w4 - add x22, x19, x22, lsl 8 - and w27, w1, 2097151 - ubfx x24, x23, 24, 2 - tbz x0, 4, .L1581 - adrp x0, .LC134 - mov w2, w24 - add x0, x0, :lo12:.LC134 - bl printk -.L1581: - bl nandc_wait_flash_ready - mov w0, w20 - bl hynix_reconfig_rr_para - mov w0, w20 - bl nandc_cs - mov w0, w20 - cbnz w24, .L1582 - bl zftl_flash_enter_slc_mode - b .L1583 -.L1582: - bl zftl_flash_exit_slc_mode -.L1583: - ubfiz x4, x20, 8, 8 - mov w0, 128 - add x19, x19, x4 - add x21, x21, :lo12:.LANCHOR2 - str w0, [x19,2056] - and w0, w23, 255 - str wzr, [x19,2052] - str wzr, [x19,2052] - str w0, [x19,2052] - lsr w0, w27, 8 - str w0, [x19,2052] - lsr w0, w27, 16 - str w0, [x19,2052] - mov w0, w27 - bl nandc_set_seed - ldrb w1, [x21,377] - mov x2, x26 - mov x3, x25 - mov w0, 1 - bl nandc_xfer_start - bl nandc_xfer_done - mov w0, 16 - str w0, [x19,2056] - bl nandc_iqr_wait_flash_ready - bl nandc_wait_flash_ready - mov x0, x22 - bl flash_read_status - mov w21, w0 - cbnz w24, .L1584 - mov w0, w20 - bl zftl_flash_exit_slc_mode -.L1584: - mov w0, w20 - and w19, w21, 4 - bl nandc_de_cs - tbz x21, 2, .L1585 - adrp x0, .LC135 - mov w1, w23 - add x0, x0, :lo12:.LC135 - mov w2, w19 - bl printk -.L1585: - mov w0, w19 - ldr x27, [sp,80] - ldp x19, x20, [sp,16] - ldp x21, x22, [sp,32] - ldp x23, x24, [sp,48] - ldp x25, x26, [sp,64] - ldp x29, x30, [sp], 96 - ret - .size flash_prog_page, .-flash_prog_page - .align 2 - .global flash_test_blk - .type flash_test_blk, %function -flash_test_blk: - stp x29, x30, [sp, -48]! - add x29, sp, 0 - stp x19, x20, [sp,16] - stp x21, x22, [sp,32] - uxtb w22, w0 - uxth w20, w1 - cbnz w22, .L1593 - adrp x0, .LANCHOR5+392 - ldrb w1, [x0,#:lo12:.LANCHOR5+392] - mov w0, w22 - cmp w1, w20 - bhi .L1594 -.L1593: - adrp x19, .LANCHOR4 - mov w1, 165 - add x19, x19, :lo12:.LANCHOR4 - mov w2, 32 - ldr x0, [x19,1128] - bl ftl_memset - ldr x0, [x19,1120] - mov w1, 90 - mov w2, 8 - bl ftl_memset - adrp x0, .LANCHOR0+170 - ldrh w21, [x0,#:lo12:.LANCHOR0+170] - mov w0, w22 - mul w21, w20, w21 - mov w1, w21 - bl flash_erase_block - cmn w0, #1 - beq .L1599 - adrp x20, .LANCHOR2 - ldr x2, [x19,1120] - add x20, x20, :lo12:.LANCHOR2 - ldr x3, [x19,1128] - mov w0, w22 - mov w1, w21 - add x20, x20, 368 - ldrb w4, [x20,9] - bl flash_prog_page - cmn w0, #1 - beq .L1599 - ldrb w4, [x20,9] - mov w0, w22 - ldr x2, [x19,1120] - mov w1, w21 - ldr x3, [x19,1128] - bl flash_read_page - cmn w0, #1 - mov w20, w0 - beq .L1599 - ldr x0, [x19,1120] - ldr w1, [x0] - mov w0, 23130 - bfi w0, w0, 16, 16 - cmp w1, w0 - bne .L1599 - ldr x0, [x19,1128] - ldr w1, [x0] - mov w0, 42405 - bfi w0, w0, 16, 16 - cmp w1, w0 - csinv w20, w20, wzr, eq - b .L1596 -.L1599: - mov w20, -1 -.L1596: - mov w0, w22 - mov w1, w21 - bl flash_erase_block - mov w0, w20 -.L1594: - ldp x19, x20, [sp,16] - ldp x21, x22, [sp,32] - ldp x29, x30, [sp], 48 - ret - .size flash_test_blk, .-flash_test_blk - .section .text.unlikely,"ax",%progbits - .align 2 - .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 - add x4, x4, :lo12:.LANCHOR0 - str x21, [sp,32] - mov x21, x1 - stp x19, x20, [sp,16] - str x2, [x29,56] - ldr x1, [x4,48] - ldrb w20, [x4,148] - ldrb w19, [x1,9] - udiv w19, w0, w19 - ldrb w0, [x4,56] - bl nandc_bch_sel - ldr x3, [x29,56] - mov w1, w19 - mov x2, x21 - mov w4, 4 - mov w0, 0 - bl flash_prog_page - mov w19, w0 - mov w0, w20 - bl nandc_bch_sel - ldr x21, [sp,32] - mov w0, w19 - ldp x19, x20, [sp,16] - ldp x29, x30, [sp], 64 - ret - .size fw_flash_page_prog.constprop.30, .-fw_flash_page_prog.constprop.30 - .text - .align 2 .global flash_prog_page_en .type flash_prog_page_en, %function flash_prog_page_en: @@ -10800,55 +11964,55 @@ flash_prog_page_en: stp x25, x26, [sp,64] mov w24, w1 uxtb w25, w0 - ldrb w1, [x2,57] + ldrb w1, [x2,152] mov x20, x3 mov w22, w4 uxtb w23, w5 cmp w1, w25 ubfx x0, x24, 24, 2 - bhi .L1609 + bhi .L1841 adrp x1, .LANCHOR3 - adrp x0, .LC34 + adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR3 - add x0, x0, :lo12:.LC34 - add x1, x1, 312 - mov w2, 481 + add x0, x0, :lo12:.LC0 + add x1, x1, 240 + mov w2, 471 bl printk -.L1610: - b .L1610 -.L1609: +.L1842: + b .L1842 +.L1841: add x1, x2, x25, sxtw mov w19, w24 - ldrb w26, [x1,160] - cbnz w0, .L1611 - ldrb w0, [x2,58] - cbz w0, .L1612 - ldrb w0, [x2,168] - cbz w0, .L1611 -.L1612: + ldrb w26, [x1,156] + cbnz w0, .L1843 + ldrb w0, [x2,164] + cbz w0, .L1844 + ldrb w0, [x2,165] + cbz w0, .L1843 +.L1844: add x7, x7, :lo12:.LANCHOR0 - ldrh w19, [x7,170] - ldrb w1, [x7,168] + ldrh w19, [x7,166] + ldrb w1, [x7,165] udiv w6, w24, w19 mul w19, w6, w19 sub w0, w24, w19 - cbz w1, .L1613 + cbz w1, .L1845 add w19, w19, w0, lsl 1 - b .L1611 -.L1613: - add x7, x7, 172 + b .L1843 +.L1845: + add x7, x7, 168 ldrh w0, [x7,w0,uxtw 1] add w19, w0, w19 -.L1611: +.L1843: adrp x0, .LANCHOR2+400 ldr w0, [x0,#:lo12:.LANCHOR2+400] - tbz x0, 4, .L1614 - adrp x0, .LC136 + tbz x0, 4, .L1846 + adrp x0, .LC105 mov w1, w26 - add x0, x0, :lo12:.LC136 + add x0, x0, :lo12:.LC105 mov w2, w24 bl printk -.L1614: +.L1846: mov w0, w26 mov w1, w19 mov x2, x21 @@ -10856,62 +12020,62 @@ flash_prog_page_en: mov w4, w22 bl flash_prog_page mov w26, w0 - cbz w23, .L1615 + cbz w23, .L1847 adrp x19, .LANCHOR4 mov w0, w25 add x23, x19, :lo12:.LANCHOR4 mov w1, w24 mov w4, w22 - ldr x2, [x23,1120] - ldr x3, [x23,1128] + ldr x2, [x23,1192] + ldr x3, [x23,1200] bl flash_read_page_en cmp w0, 512 - beq .L1616 + beq .L1848 cmn w0, #1 - beq .L1616 - ldr x0, [x23,1120] + beq .L1848 + ldr x0, [x23,1192] ldr w1, [x21] ldr w0, [x0] cmp w1, w0 - bne .L1616 - ldr x0, [x23,1128] + bne .L1848 + ldr x0, [x23,1200] ldr w1, [x20] ldr w0, [x0] cmp w1, w0 - beq .L1615 -.L1616: + beq .L1847 +.L1848: add x19, x19, :lo12:.LANCHOR4 mov w2, 4 - adrp x0, .LC137 + adrp x0, .LC106 mov w3, w2 - add x0, x0, :lo12:.LC137 - ldr x1, [x19,1128] + add x0, x0, :lo12:.LC106 + ldr x1, [x19,1200] bl rknand_print_hex mov w2, 4 - adrp x0, .LC138 - ldr x1, [x19,1120] - add x0, x0, :lo12:.LC138 + adrp x0, .LC107 + ldr x1, [x19,1192] + add x0, x0, :lo12:.LC107 mov w3, w2 bl rknand_print_hex - b .L1617 -.L1615: + b .L1849 +.L1847: cmn w26, #1 - bne .L1618 -.L1617: - adrp x0, .LC139 + bne .L1850 +.L1849: + adrp x0, .LC108 mov w1, w24 - add x0, x0, :lo12:.LC139 + add x0, x0, :lo12:.LC108 bl printk adrp x1, .LANCHOR3 - adrp x0, .LC34 + adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR3 - add x0, x0, :lo12:.LC34 - add x1, x1, 312 - mov w2, 507 + add x0, x0, :lo12:.LC0 + add x1, x1, 240 + mov w2, 497 bl printk -.L1619: - b .L1619 -.L1618: +.L1851: + b .L1851 +.L1850: mov w0, w26 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -10926,86 +12090,117 @@ flash_prog_page_en: ftl_test_block: stp x29, x30, [sp, -112]! add x29, sp, 0 + stp x25, x26, [sp,64] + stp x27, x28, [sp,80] + adrp x25, .LANCHOR4 + adrp x27, .LANCHOR5 + add x25, x25, :lo12:.LANCHOR4 + add x27, x27, :lo12:.LANCHOR5 stp x21, x22, [sp,32] stp x23, x24, [sp,48] - adrp x22, .LANCHOR4 - adrp x24, .LANCHOR5 - add x22, x22, :lo12:.LANCHOR4 - add x24, x24, :lo12:.LANCHOR5 - stp x25, x26, [sp,64] stp x19, x20, [sp,16] - stp x27, x28, [sp,80] - adrp x25, .LC140 - str wzr, [x22,1152] - uxth w26, w0 - str wzr, [x24,128]! - mov w20, 0 - add x25, x25, :lo12:.LC140 - add x22, x22, 1152 -.L1633: - adrp x21, .LANCHOR0 - add x0, x21, :lo12:.LANCHOR0 - ldrb w0, [x0,3232] - cmp w0, w20 - bls .L1649 - mov w23, 0 -.L1640: - add x0, x21, :lo12:.LANCHOR0 - ldrb w0, [x0,3216] - cmp w0, w23 - bls .L1650 + mov w26, 0 + adrp x28, .LC109 + uxth w23, w0 + str wzr, [x25,1216] + add x0, x25, 1216 + str wzr, [x27,192]! + mov w21, w26 + add x28, x28, :lo12:.LC109 + str x0, [x29,104] +.L1865: + adrp x20, .LANCHOR0 + add x0, x20, :lo12:.LANCHOR0 + ldrb w1, [x0,3272] + cmp w1, w21 + bls .L1874 + mov w24, 0 +.L1875: + add x0, x20, :lo12:.LANCHOR0 + ldrb w0, [x0,3264] + cmp w0, w24 + bls .L1890 adrp x0, .LANCHOR2+400 ldr w0, [x0,#:lo12:.LANCHOR2+400] - tbz x0, 12, .L1634 - mov x0, x25 - mov w1, w26 + tbz x0, 12, .L1866 + mov x0, x28 + mov w1, w23 bl printk -.L1634: - add x0, x21, :lo12:.LANCHOR0 - ldrb w19, [x0,3216] - madd w19, w26, w19, w23 +.L1866: + add x0, x20, :lo12:.LANCHOR0 + ldrb w19, [x0,3264] + madd w19, w23, w19, w24 uxth w19, w19 - cbnz w20, .L1635 - ldr x0, [x0,152] + cbnz w21, .L1867 + ldr x0, [x0,144] ldrb w0, [x0,47] cmp w0, w19 - bcs .L1636 -.L1635: - uxtb w27, w20 + bcs .L1868 +.L1867: + uxtb w22, w21 mov w1, w19 - mov w0, w27 + mov w0, w22 bl flash_check_bad_block - cbnz w0, .L1636 - add x4, x21, :lo12:.LANCHOR0 - mov w0, w27 - str x4, [x29,104] - ldrh w28, [x4,3230] - mul w28, w19, w28 - mov w1, w28 - bl flash_erase_block - ldr x4, [x29,104] - cbnz w0, .L1648 - ldrb w4, [x4,2776] - mov w0, w27 - mov w1, w28 - mov x2, x22 - mov x3, x24 + cbnz w0, .L1868 + add x4, x20, :lo12:.LANCHOR0 + mov w0, w22 + mov w1, w26 + str x4, [x29,96] + ldrh w3, [x4,3270] + mul w25, w19, w3 + mov w2, w25 + bl flash_erase_block_en + ldr x4, [x29,96] + cbz w0, .L1869 + ldrb w0, [x4,3177] + cmp w0, 2 + bne .L1889 + ldrb w0, [x4,164] + cbz w0, .L1889 + mov w0, w22 + mov w1, 1 + mov w2, w25 + bl flash_erase_block_en + cbz w0, .L1871 + b .L1889 +.L1869: + cbz w26, .L1872 +.L1871: + add x0, x20, :lo12:.LANCHOR0 + mov w26, 1 + ldrb w0, [x0,3177] + add w25, w25, w0, lsl 24 +.L1872: + add x4, x20, :lo12:.LANCHOR0 + ldr x2, [x29,104] + mov w0, w22 + mov w1, w25 + mov x3, x27 mov w5, 1 + ldrb w4, [x4,2776] bl flash_prog_page_en - cbz w0, .L1636 -.L1648: - mov w0, w27 + cbz w0, .L1868 +.L1889: + mov w0, w22 mov w1, w19 bl flash_mask_bad_block -.L1636: - add w23, w23, 1 - uxth w23, w23 - b .L1640 -.L1650: - add w20, w20, 1 - uxth w20, w20 - b .L1633 -.L1649: +.L1868: + add w24, w24, 1 + uxth w24, w24 + b .L1875 +.L1890: + add w21, w21, 1 + uxth w21, w21 + b .L1865 +.L1874: + cbz w26, .L1876 + ldr x0, [x0,64] + add x23, x0, x23, uxth 2 + ldrb w0, [x23,2] + mov w1, 2 + bfi w0, w1, 3, 2 + strb w0, [x23,2] +.L1876: mov w0, 0 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -11036,17 +12231,17 @@ ftl_prog_page: ldr x4, [x29,56] bl flash_prog_page_en cmn w0, #1 - bne .L1652 + bne .L1892 adrp x1, .LANCHOR3 - adrp x0, .LC34 + adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR3 - add x0, x0, :lo12:.LC34 - add x1, x1, 336 - mov w2, 1439 + add x0, x0, :lo12:.LC0 + add x1, x1, 264 + mov w2, 2020 bl printk -.L1653: - b .L1653 -.L1652: +.L1893: + b .L1893 +.L1892: ldr x19, [sp,16] ldp x29, x30, [sp], 64 ret @@ -11068,31 +12263,31 @@ ftl_info_flush: stp x19, x20, [sp,16] stp x27, x28, [sp,80] add x19, x21, :lo12:.LANCHOR5 - adrp x23, .LC141 + adrp x23, .LC110 ldrb w2, [x0,2776] mov w24, 0 - add x0, x19, 448 - add x23, x23, :lo12:.LC141 + add x0, x19, 512 + add x23, x23, :lo12:.LC110 lsl w2, w2, 1 mov w27, 1 - add x25, x19, 768 + add x25, x19, 832 bl ftl_memset -.L1655: +.L1895: add x0, x22, :lo12:.LANCHOR0 - ldrb w28, [x19,704] - ldrh w20, [x19,706] + ldrb w28, [x19,768] + ldrh w20, [x19,770] ldr x2, [x0,2800] - ldrh w4, [x0,3230] + ldrh w4, [x0,3270] ldr w3, [x2,4] add w3, w3, 1 str w3, [x2,4] - str w26, [x19,448] + str w26, [x19,512] ldr x3, [x0,2800] ldr w0, [x3,4] - str w0, [x19,452] + str w0, [x19,516] adrp x0, .LANCHOR2+400 ldr w0, [x0,#:lo12:.LANCHOR2+400] - tbz x0, 12, .L1656 + tbz x0, 12, .L1896 ldr w3, [x3,4] mov x0, x23 mov w1, w28 @@ -11100,66 +12295,66 @@ ftl_info_flush: str x4, [x29,104] bl printk ldr x4, [x29,104] -.L1656: +.L1896: add x2, x22, :lo12:.LANCHOR0 - ldrh w0, [x19,706] - ldrh w1, [x2,3234] + ldrh w0, [x19,770] + ldrh w1, [x2,3228] cmp w1, w0 - bhi .L1657 - ldrb w0, [x19,705] + bhi .L1897 + ldrb w0, [x19,769] mov w4, 0 - ldr x5, [x2,152] - ldrb w1, [x19,704] -.L1664: + ldr x5, [x2,144] + ldrb w1, [x19,768] +.L1904: add w0, w0, 1 uxtb w0, w0 cmp w0, 7 - bls .L1658 + bls .L1898 mov x2, 0 -.L1663: +.L1903: add x3, x5, x2 uxth w6, w2 ldrb w7, [x3,40] add w3, w7, 127 uxtb w3, w3 cmp w3, 125 - bhi .L1659 + bhi .L1899 add x21, x21, :lo12:.LANCHOR5 - strb w0, [x21,705] - cbz w4, .L1660 - strb w1, [x21,704] -.L1660: + strb w0, [x21,769] + cbz w4, .L1900 + strb w1, [x21,768] +.L1900: adrp x1, .LANCHOR3 - adrp x0, .LC34 + adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR3 - add x0, x0, :lo12:.LC34 - add x1, x1, 352 - mov w2, 157 + add x0, x0, :lo12:.LC0 + add x1, x1, 280 + mov w2, 668 bl printk -.L1661: - b .L1661 -.L1659: +.L1901: + b .L1901 +.L1899: cmp w7, 255 - bne .L1662 + bne .L1902 add x2, x2, 1 cmp x2, 8 - bne .L1663 + bne .L1903 mov w6, w2 -.L1662: +.L1902: uxtb w0, w6 mov w24, 1 -.L1658: +.L1898: add w1, w0, 8 add x1, x5, x1, sxtw ldrb w1, [x1,32] mov w4, 1 cmp w1, 255 - beq .L1664 + beq .L1904 add x28, x22, :lo12:.LANCHOR0 - strb w0, [x19,705] - strb w1, [x19,704] + strb w0, [x19,769] + strb w1, [x19,768] mov w0, 0 - ldrh w20, [x28,3230] + ldrh w20, [x28,3270] mul w20, w1, w20 mov w1, w20 bl flash_erase_block @@ -11167,81 +12362,81 @@ ftl_info_flush: mov w1, w20 mov w0, 0 mov x2, x25 - add x3, x19, 448 + add x3, x19, 512 add w20, w20, 1 bl ftl_prog_page - strh w27, [x19,706] - b .L1665 -.L1657: + strh w27, [x19,770] + b .L1905 +.L1897: madd w20, w28, w4, w20 - cbnz w0, .L1665 + cbnz w0, .L1905 mov w1, w20 bl flash_erase_block -.L1665: +.L1905: add x4, x22, :lo12:.LANCHOR0 mov w1, w20 mov w0, 0 mov x2, x25 - add x3, x19, 448 + add x3, x19, 512 ldrb w4, [x4,2776] bl ftl_prog_page cmn w0, #1 - ldrh w1, [x19,706] + ldrh w1, [x19,770] add w1, w1, 1 - strh w1, [x19,706] - beq .L1655 - cbnz w24, .L1666 -.L1674: + strh w1, [x19,770] + beq .L1895 + cbnz w24, .L1906 +.L1914: add x21, x21, :lo12:.LANCHOR5 - ldrb w0, [x21,704] + ldrb w0, [x21,768] cmp w0, 255 - bne .L1690 + bne .L1930 adrp x1, .LANCHOR3 - adrp x0, .LC34 + adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR3 - mov w2, 192 - add x1, x1, 352 - add x0, x0, :lo12:.LC34 + mov w2, 703 + add x1, x1, 280 + add x0, x0, :lo12:.LC0 bl printk - b .L1675 -.L1666: - ldrb w19, [x19,705] + b .L1915 +.L1906: + ldrb w19, [x19,769] add w19, w19, 1 -.L1669: +.L1909: cmp w19, 7 - bhi .L1674 + bhi .L1914 add x2, x22, :lo12:.LANCHOR0 add w0, w19, 8 - ldr x1, [x2,152] + ldr x1, [x2,144] add x0, x1, x0, sxtw ldrb w1, [x0,32] add w0, w1, 127 uxtb w0, w0 cmp w0, 125 - bhi .L1670 + bhi .L1910 adrp x1, .LANCHOR3 - adrp x0, .LC34 + adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR3 - add x0, x0, :lo12:.LC34 - add x1, x1, 352 - mov w2, 185 + add x0, x0, :lo12:.LC0 + add x1, x1, 280 + mov w2, 696 bl printk -.L1671: - b .L1671 -.L1670: +.L1911: + b .L1911 +.L1910: cmp w1, 255 - beq .L1672 - ldrh w2, [x2,3230] + beq .L1912 + ldrh w2, [x2,3270] mov w0, 0 mul w1, w1, w2 bl flash_erase_block -.L1672: +.L1912: add w19, w19, 1 uxth w19, w19 - b .L1669 -.L1675: - b .L1675 -.L1690: + b .L1909 +.L1915: + b .L1915 +.L1930: mov w0, 0 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -11267,41 +12462,41 @@ ftl_info_blk_init: stp x27, x28, [sp,80] adrp x21, .LANCHOR5 adrp x23, .LANCHOR6 - ldrh w1, [x19,2826] + ldrh w1, [x19,56] add x22, x21, :lo12:.LANCHOR5 - add x24, x22, 768 + add x24, x22, 832 add x23, x23, :lo12:.LANCHOR6 mov x0, x24 - str x24, [x19,2840] + str x24, [x19,64] add x1, x24, x1, lsl 2 str x1, [x19,2800] mov w1, 0 - strb wzr, [x23,-256] - adrp x26, .LC142 + strb wzr, [x23,-192] + adrp x26, .LC111 adrp x27, .LANCHOR2 bl ftl_memset - add x26, x26, :lo12:.LC142 - sub x0, x23, #192 + add x26, x26, :lo12:.LC111 + sub x0, x23, #128 mov w1, 0 mov w2, 16384 - add x23, x22, 448 + add x23, x22, 512 bl ftl_memset - strb wzr, [x22,705] - ldr x0, [x19,152] + strb wzr, [x22,769] + ldr x0, [x19,144] mov w19, 7 - strh wzr, [x22,706] + strh wzr, [x22,770] ldrb w0, [x0,40] - strb w0, [x22,704] -.L1696: + strb w0, [x22,768] +.L1936: add x5, x20, :lo12:.LANCHOR0 add w0, w19, 8 sxth w25, w19 - ldr x1, [x5,152] + ldr x1, [x5,144] add x0, x1, x0, sxtw ldrb w1, [x0,32] cmp w1, 255 - beq .L1692 - ldrh w22, [x5,3230] + beq .L1932 + ldrh w22, [x5,3270] mov w0, 0 ldrb w4, [x5,2776] mov x2, x24 @@ -11313,7 +12508,7 @@ ftl_info_blk_init: cmn w0, #1 mov w28, w0 ldr x5, [x29,104] - bne .L1693 + bne .L1933 ldrb w4, [x5,2776] mov w0, 0 add w1, w22, 1 @@ -11321,54 +12516,54 @@ ftl_info_blk_init: mov x3, x23 bl ftl_read_page mov w28, w0 -.L1693: +.L1933: add x0, x27, :lo12:.LANCHOR2 ldr w0, [x0,400] - tbz x0, 12, .L1694 + tbz x0, 12, .L1934 add x0, x20, :lo12:.LANCHOR0 mov w1, w19 mov w2, w28 - mov w3, 65 + mov w3, 576 ldr x4, [x0,2800] mov x0, x26 ldr w4, [x4] bl printk -.L1694: +.L1934: cmn w28, #1 - beq .L1692 + beq .L1932 add x0, x20, :lo12:.LANCHOR0 ldr x0, [x0,2800] ldr w1, [x0] mov w0, 21574 movk w0, 0x494c, lsl 16 cmp w1, w0 - beq .L1709 -.L1692: + beq .L1949 +.L1932: sub w19, w19, #1 cmn w19, #1 - bne .L1696 + bne .L1936 mov w25, 0 - b .L1695 -.L1709: + b .L1935 +.L1949: mov w19, w25 -.L1695: +.L1935: adrp x0, .LANCHOR2+400 ldr w0, [x0,#:lo12:.LANCHOR2+400] - tbz x0, 12, .L1697 + tbz x0, 12, .L1937 add x0, x20, :lo12:.LANCHOR0 mov w1, w19 mov w2, 4800 ldr x3, [x0,2800] - adrp x0, .LC143 - add x0, x0, :lo12:.LC143 + adrp x0, .LC112 + add x0, x0, :lo12:.LC112 ldr w3, [x3] bl printk -.L1697: +.L1937: cmn w19, #1 - bne .L1698 + bne .L1938 add x0, x21, :lo12:.LANCHOR5 mov w1, 0 - add x0, x0, 768 + add x0, x0, 832 mov w2, 16384 add x20, x20, :lo12:.LANCHOR0 bl ftl_memset @@ -11377,31 +12572,31 @@ ftl_info_blk_init: movk w0, 0x494c, lsl 16 str w0, [x1] mov w0, w19 - b .L1699 -.L1698: + b .L1939 +.L1938: add x26, x20, :lo12:.LANCHOR0 add x23, x21, :lo12:.LANCHOR5 add w0, w25, 8 - add x24, x23, 768 + add x24, x23, 832 mov x2, x24 mov w4, 4 - ldr x1, [x26,152] + ldr x1, [x26,144] add x0, x1, x0, sxtw - strb w25, [x23,705] - add x25, x23, 448 + strb w25, [x23,769] + add x25, x23, 512 ldrb w1, [x0,32] mov x3, x25 mov w0, 0 - strb w1, [x23,704] + strb w1, [x23,768] bl flash_get_last_written_page sxth w22, w0 add w0, w0, 1 uxth w19, w0 - ldrb w0, [x23,704] - ldrh w23, [x26,3230] + ldrb w0, [x23,768] + ldrh w23, [x26,3270] mul w23, w0, w23 -.L1700: - tbnz w22, #31, .L1705 +.L1940: + tbnz w22, #31, .L1945 add x26, x20, :lo12:.LANCHOR0 mov w0, 0 add w1, w22, w23 @@ -11410,63 +12605,63 @@ ftl_info_blk_init: ldrb w4, [x26,2776] bl ftl_read_page cmn w0, #1 - beq .L1701 + beq .L1941 ldr x0, [x26,2800] ldr w1, [x0] mov w0, 21574 movk w0, 0x494c, lsl 16 cmp w1, w0 - bne .L1701 -.L1705: + bne .L1941 +.L1945: add x20, x20, :lo12:.LANCHOR0 add x21, x21, :lo12:.LANCHOR5 ldr x0, [x20,2800] - strh w19, [x21,706] + strh w19, [x21,770] ldr w2, [x0,16] cmp w2, 2048 - bls .L1703 + bls .L1943 lsr w1, w2, 11 ldr w3, [x0,20] add w3, w3, w1 sub w1, w2, w1, lsl 11 str w3, [x0,20] str w1, [x0,16] - b .L1703 -.L1701: + b .L1943 +.L1941: sub w22, w22, #1 sxth w22, w22 - b .L1700 -.L1703: + b .L1940 +.L1943: ldr w2, [x0,24] cmp w2, 2048 - bls .L1706 + bls .L1946 lsr w1, w2, 11 ldr w3, [x0,28] add w3, w3, w1 sub w1, w2, w1, lsl 11 str w3, [x0,28] str w1, [x0,24] -.L1706: +.L1946: ldr w2, [x0,32] cmp w2, 1024 - bls .L1707 + bls .L1947 lsr w1, w2, 10 ldr w3, [x0,36] add w3, w3, w1 sub w1, w2, w1, lsl 10 str w3, [x0,36] str w1, [x0,32] -.L1707: +.L1947: ldr w2, [x0,40] cmp w2, 1024 - bls .L1708 + bls .L1948 lsr w1, w2, 10 ldr w3, [x0,44] add w3, w3, w1 sub w1, w2, w1, lsl 10 str w3, [x0,44] str w1, [x0,40] -.L1708: +.L1948: ldr w1, [x0,64] add w1, w1, 1 str w1, [x0,64] @@ -11475,7 +12670,7 @@ ftl_info_blk_init: mov w0, 0 bl ftl_info_flush mov w0, 0 -.L1699: +.L1939: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -11498,57 +12693,57 @@ ftl_ext_info_flush: mov w1, 100 udiv w0, w0, w1 add x1, x22, :lo12:.LANCHOR0 - ldr x1, [x1,2792] + ldr x1, [x1,80] ldr w3, [x1,520] cmp w0, w3 - bls .L1727 + bls .L1967 ldr w2, [x1,12] sub w2, w2, w3 add w2, w2, w0 str w2, [x1,12] - b .L1734 -.L1727: - bcs .L1728 -.L1734: + b .L1974 +.L1967: + bcs .L1968 +.L1974: str w0, [x1,520] -.L1728: +.L1968: adrp x20, .LANCHOR5 adrp x23, .LANCHOR6 add x20, x20, :lo12:.LANCHOR5 add x23, x23, :lo12:.LANCHOR6 mov w0, 0 - add x20, x20, 448 - sub x23, x23, #192 + add x20, x20, 512 + sub x23, x23, #128 bl ftl_total_vpn_update -.L1733: +.L1973: add x2, x22, :lo12:.LANCHOR0 ldr x0, [x2,2800] ldr w1, [x0,56] add w1, w1, 1 str w1, [x0,56] ldrh w1, [x0,140] - ldrh w0, [x2,3234] + ldrh w0, [x2,3228] cmp w1, w0 - bcc .L1729 + bcc .L1969 bl ftl_ext_alloc_new_blk -.L1729: +.L1969: add x21, x22, :lo12:.LANCHOR0 mov w0, 65535 ldr x3, [x21,2800] ldrh w1, [x3,130] cmp w1, w0 - bne .L1730 + bne .L1970 adrp x1, .LANCHOR3 - adrp x0, .LC34 + adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR3 - add x0, x0, :lo12:.LC34 - add x1, x1, 368 - mov w2, 1058 + add x0, x0, :lo12:.LC0 + add x1, x1, 296 + mov w2, 1608 bl printk -.L1731: - b .L1731 -.L1730: - ldrh w19, [x21,3218] +.L1971: + b .L1971 +.L1970: + ldrh w19, [x21,3266] mov w0, 21 mov w2, 1 sub w19, w0, w19 @@ -11558,7 +12753,7 @@ ftl_ext_info_flush: sub w19, w19, #1 ldrb w2, [x21,2776] and w1, w19, w1 - ldrh w19, [x21,3230] + ldrh w19, [x21,3270] lsl w2, w2, 1 madd w19, w1, w19, w0 mov w1, 0 @@ -11581,10 +12776,10 @@ ftl_ext_info_flush: add w1, w1, 1 uxth w1, w1 strh w1, [x2,140] - beq .L1733 + beq .L1973 cmp w1, 1 cset w0, eq - cbnz w0, .L1733 + cbnz w0, .L1973 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -11606,90 +12801,91 @@ ftl_ext_info_init: stp x23, x24, [sp,48] stp x21, x22, [sp,32] stp x25, x26, [sp,64] - strh wzr, [x1,3768] + strh wzr, [x1,3808] adrp x21, .LANCHOR5 ldr x0, [x1,2800] add x2, x20, :lo12:.LANCHOR6 - ldrh w22, [x1,3218] + ldrh w22, [x1,3266] mov w1, 21 add x3, x21, :lo12:.LANCHOR5 - sub x2, x2, #192 + sub x2, x2, #128 ldrh w0, [x0,130] sub w22, w1, w22 - add x3, x3, 448 + add x3, x3, 512 asr w22, w0, w22 - and w24, w0, 16383 - mov w1, w24 + and w25, w0, 16383 + mov w1, w25 uxtb w22, w22 mov w0, w22 bl flash_get_last_written_page - sxth w26, w0 + sxth w24, w0 adrp x0, .LANCHOR2+400 - mov w23, w26 + mov w23, w24 ldr w0, [x0,#:lo12:.LANCHOR2+400] - tbz x0, 12, .L1736 + tbz x0, 12, .L1976 adrp x1, .LANCHOR3 - adrp x0, .LC99 + adrp x0, .LC69 add x1, x1, :lo12:.LANCHOR3 - add x0, x0, :lo12:.LC99 - add x1, x1, 392 - mov w2, 1101 - mov w3, w26 + add x0, x0, :lo12:.LC69 + add x1, x1, 320 + mov w2, 1651 + mov w3, w24 bl printk -.L1736: +.L1976: add x20, x20, :lo12:.LANCHOR6 add x21, x21, :lo12:.LANCHOR5 - mov w25, w26 - sub x20, x20, #192 - add x21, x21, 448 -.L1737: - tbnz w25, #31, .L1742 + mov w26, w24 + sub x20, x20, #128 + add x21, x21, 512 +.L1977: + tbnz w26, #31, .L1982 add x27, x19, :lo12:.LANCHOR0 mov w0, w22 mov x2, x20 mov x3, x21 - ldrh w1, [x27,3230] + ldrh w1, [x27,3270] ldrb w4, [x27,2776] - madd w1, w24, w1, w25 + madd w1, w25, w1, w26 bl flash_read_page_en cmp w0, 512 - beq .L1738 + beq .L1978 cmn w0, #1 - beq .L1738 - ldr x0, [x27,2792] + beq .L1978 + ldr x0, [x27,80] ldr w1, [x0] mov w0, 20038 movk w0, 0x4549, lsl 16 cmp w1, w0 - bne .L1738 -.L1742: + bne .L1978 +.L1982: + bl zftl_sblk_list_init add x0, x19, :lo12:.LANCHOR0 ldr x0, [x0,2800] ldrh w1, [x0,140] - cmp w1, w26 - bgt .L1740 + cmp w1, w24 + bgt .L1980 add w23, w23, 1 strh w23, [x0,140] bl ftl_ext_info_flush - b .L1740 -.L1738: - sub w25, w25, #1 - sxth w25, w25 - b .L1737 -.L1740: + b .L1980 +.L1978: + sub w26, w26, #1 + sxth w26, w26 + b .L1977 +.L1980: add x19, x19, :lo12:.LANCHOR0 - ldr x20, [x19,2792] + ldr x20, [x19,80] bl timer_get_time mov w1, 100 udiv w0, w0, w1 str w0, [x20,520] - ldr x20, [x19,2792] + ldr x20, [x19,80] bl timer_get_time str w0, [x20,604] - ldr x0, [x19,2792] + ldr x0, [x19,80] str wzr, [x0,608] mov w0, -1 - strh w0, [x19,3770] + strh w0, [x19,3810] mov w0, 0 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -11711,283 +12907,300 @@ ftl_low_format: stp x25, x26, [sp,64] stp x27, x28, [sp,80] mov w19, 8 - adrp x21, .LANCHOR0 -.L1756: - add x2, x21, :lo12:.LANCHOR0 adrp x20, .LANCHOR0 - ldr x0, [x2,152] +.L1996: + add x2, x20, :lo12:.LANCHOR0 + adrp x21, .LANCHOR0 + ldr x0, [x2,144] add x0, x0, x19, sxtw ldrb w1, [x0,32] add w0, w1, 127 uxtb w0, w0 cmp w0, 125 - bhi .L1753 + bhi .L1993 adrp x1, .LANCHOR3 - adrp x0, .LC34 + adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR3 - add x0, x0, :lo12:.LC34 - add x1, x1, 416 - mov w2, 1253 + add x0, x0, :lo12:.LC0 + add x1, x1, 344 + mov w2, 1822 bl printk -.L1754: - b .L1754 -.L1753: +.L1994: + b .L1994 +.L1993: cmp w1, 255 - beq .L1755 - ldrh w2, [x2,3230] + beq .L1995 + ldrh w2, [x2,3270] mov w0, 0 mul w1, w1, w2 bl flash_erase_block -.L1755: +.L1995: add w19, w19, 1 cmp w19, 16 - bne .L1756 + bne .L1996 bl sblk_init - mov w19, 0 bl ftl_info_blk_init - adrp x24, .LANCHOR7 adrp x0, .LANCHOR5 mov w1, 0 add x0, x0, :lo12:.LANCHOR5 mov w2, 16384 - add x0, x0, 768 - mov w25, 1 + add x0, x0, 832 bl ftl_memset - add x0, x20, :lo12:.LANCHOR0 - ldr x1, [x0,2800] - mov w0, 21574 - movk w0, 0x494c, lsl 16 - str w0, [x1] -.L1757: - add x21, x20, :lo12:.LANCHOR0 - ldrh w0, [x21,2826] + add x1, x21, :lo12:.LANCHOR0 + mov w6, 1 + ldr x0, [x1,2800] + ldrh w5, [x1,56] + ldrh w0, [x0,134] +.L1997: + cmp w0, w5 + bcs .L2032 + add x4, x21, :lo12:.LANCHOR0 + ubfiz x1, x0, 2, 16 + add w0, w0, 1 + ldr x2, [x4,64] + uxth w0, w0 + add x2, x2, x1 + ldrb w3, [x2,2] + and w3, w3, 31 + strb w3, [x2,2] + ldr x2, [x4,64] + add x1, x2, x1 + ldrb w2, [x1,2] + bfi w2, w6, 3, 2 + strb w2, [x1,2] + b .L1997 +.L2032: + add x0, x21, :lo12:.LANCHOR0 + mov w1, 21574 + movk w1, 0x494c, lsl 16 + mov w19, 0 + adrp x24, .LANCHOR7 + mov w25, 1 + ldr x2, [x0,2800] + str w1, [x2] + ldr x0, [x0,2800] + strh wzr, [x0,148] +.L1999: + add x20, x21, :lo12:.LANCHOR0 + ldrh w0, [x20,56] cmp w0, w19 - bls .L1791 + bls .L2033 add x0, x24, :lo12:.LANCHOR7 mov w27, 0 ubfiz x22, x19, 2, 16 mov w23, w27 - strh w19, [x0,3136] + strh w19, [x0,3200] mov w0, w19 bl ftl_test_block - ldrb w28, [x21,3216] - ldrb w3, [x21,3232] - mov w21, w27 - mul w5, w19, w28 - uxth w4, w28 -.L1758: - cmp w21, w3 - bcs .L1762 + ldrb w28, [x20,3264] + ldrb w4, [x20,3272] + mov w20, w27 + mul w6, w19, w28 + uxth w5, w28 +.L2000: + cmp w20, w4 + bcs .L2004 mov x26, 0 -.L1763: - cmp w4, w26, uxth - bls .L1792 - add w1, w5, w26 - mov w0, w21 - str x4, [x29,104] - str x3, [x29,112] - str x5, [x29,120] +.L2005: + cmp w5, w26, uxth + bls .L2034 + add w1, w6, w26 + mov w0, w20 + str x5, [x29,104] + str x4, [x29,112] + str x6, [x29,120] bl flash_check_bad_block - ldr x5, [x29,120] - ldr x3, [x29,112] - ldr x4, [x29,104] - cbz w0, .L1759 - add x0, x20, :lo12:.LANCHOR0 + ldr x6, [x29,120] + ldr x4, [x29,112] + ldr x5, [x29,104] + cbz w0, .L2001 + add x3, x21, :lo12:.LANCHOR0 add w1, w27, w26 lsl w1, w25, w1 - ldr x0, [x0,2840] + ldr x0, [x3,64] add x0, x0, x22 ldrb w2, [x0,3] orr w1, w1, w2 strb w1, [x0,3] - b .L1760 -.L1759: + ldr x1, [x3,2800] + ldrh w0, [x1,148] + add w0, w0, 1 + strh w0, [x1,148] + b .L2002 +.L2001: add w23, w23, 1 uxth w23, w23 -.L1760: +.L2002: add x26, x26, 1 - b .L1763 -.L1792: - add w21, w21, 1 + b .L2005 +.L2034: + add w20, w20, 1 add w27, w27, w28 - uxth w21, w21 - b .L1758 -.L1762: - cbnz w23, .L1764 - add x0, x20, :lo12:.LANCHOR0 - ldr x0, [x0,2840] + uxth w20, w20 + b .L2000 +.L2004: + cbnz w23, .L2006 + add x0, x21, :lo12:.LANCHOR0 + ldr x0, [x0,64] add x22, x0, x22 ldrb w0, [x22,2] orr w0, w0, -32 strb w0, [x22,2] -.L1764: +.L2006: add w19, w19, 1 uxth w19, w19 - b .L1757 -.L1791: + b .L1999 +.L2033: adrp x0, .LANCHOR6 mov w1, 0 add x0, x0, :lo12:.LANCHOR6 mov w2, 16384 - sub x0, x0, #192 + sub x0, x0, #128 bl ftl_memset - ldr x1, [x21,2792] + ldr x1, [x20,80] mov w0, 20038 movk w0, 0x4549, lsl 16 - mov x2, 0 mov w6, 3 + mov w7, 15 str w0, [x1] - ldr x0, [x21,152] - ldrb w4, [x21,3216] - ldrb w19, [x0,47] - udiv w19, w19, w4 - add w19, w19, 1 -.L1767: - add x1, x20, :lo12:.LANCHOR0 - lsl x0, x2, 2 + mov x1, 0 + ldr x0, [x20,144] + ldrb w4, [x20,3264] + ldrb w20, [x0,47] + udiv w20, w20, w4 + add w20, w20, 1 +.L2010: + add x3, x21, :lo12:.LANCHOR0 + lsl x0, x1, 2 cmp w4, 1 - add x2, x2, 1 csinc w5, w6, wzr, ne - ldr x3, [x1,2840] - cmp w19, w2, uxth - add x3, x3, x0 - strb w5, [x3,3] - ldr x3, [x1,2840] - add x3, x3, x0 - ldrb w5, [x3,2] - orr w5, w5, -32 - strb w5, [x3,2] - ldr x3, [x1,2840] + cmp w4, 4 + ldr x2, [x3,64] + add x2, x2, x0 + strb w5, [x2,3] + bne .L2009 + ldr x2, [x3,64] + add x2, x2, x0 + strb w7, [x2,3] +.L2009: + add x2, x21, :lo12:.LANCHOR0 + add x1, x1, 1 + cmp w20, w1, uxth + ldr x5, [x2,2800] + ldrh w3, [x5,148] + add w3, w4, w3 + strh w3, [x5,148] + ldr x3, [x2,64] add x0, x3, x0 ldrb w3, [x0,2] - and w3, w3, -25 + orr w3, w3, -32 strb w3, [x0,2] - bhi .L1767 + bhi .L2010 mov w0, 16 sdiv w4, w0, w4 - ldr x0, [x1,2800] - add w4, w19, w4 + ldr x0, [x2,2800] + add w4, w20, w4 uxth w4, w4 strh w4, [x0,134] adrp x0, .LANCHOR2+400 ldr w0, [x0,#:lo12:.LANCHOR2+400] - tbz x0, 12, .L1768 - adrp x0, .LC144 - mov w1, 1290 - add x0, x0, :lo12:.LC144 + tbz x0, 12, .L2011 + adrp x0, .LC113 + mov w1, 1869 + add x0, x0, :lo12:.LC113 mov w2, 128 - mov w3, w19 + mov w3, w20 bl printk -.L1768: - add x21, x20, :lo12:.LANCHOR0 +.L2011: + add x19, x21, :lo12:.LANCHOR0 mov w1, 255 mov w2, 128 - ldr x0, [x21,2800] + ldr x0, [x19,2800] add x0, x0, 160 bl ftl_memset - ldrb w10, [x21,3216] - mov w12, 21 - ldrh w0, [x21,3218] - mov w3, 0 - ldrb w14, [x21,3232] - mov w1, w3 - uxth w11, w10 - sub w12, w12, w0 - mul w9, w19, w11 - uxth w9, w9 -.L1769: - add x2, x20, :lo12:.LANCHOR0 - ldr x0, [x2,2800] - ldrh w0, [x0,134] - cmp w19, w0 - bcs .L1793 - ldr x4, [x2,2840] - ubfiz x0, x19, 2, 16 - add w7, w3, w9 - mov w6, 0 - add x4, x4, x0 - uxth w7, w7 - ldrb w5, [x4,2] - orr w5, w5, -32 - strb w5, [x4,2] - ldr x4, [x2,2840] - add x4, x4, x0 - ldrb w5, [x4,2] - and w5, w5, -25 - strb w5, [x4,2] - mov w5, w6 - ldr x4, [x2,2840] - ldr x15, [x2,2800] - add x0, x4, x0 -.L1770: - cmp w14, w5, uxth - bls .L1774 - lsl w13, w5, w12 - mov x4, 0 - uxth w13, w13 -.L1775: - uxth w2, w4 - cmp w2, w11 - bcs .L1794 - ldrb w8, [x0,3] - add w16, w6, w4 - asr w8, w8, w16 - tbnz x8, 0, .L1771 - cmp w10, 1 - mov w8, w7 - bls .L1772 + ldrb w8, [x19,3264] + mov w10, 21 + ldrh w0, [x19,3266] + ldrb w13, [x19,3272] + uxth w9, w8 + sub w10, w10, w0 + mov w0, 0 + mul w11, w20, w9 + mov w22, w0 + uxth w11, w11 +.L2012: + add x19, x21, :lo12:.LANCHOR0 + ldr x1, [x19,2800] + ldrh w1, [x1,134] + cmp w1, w20 + bls .L2035 + ldr x2, [x19,64] + ubfiz x1, x20, 2, 16 + add w6, w0, w11 + mov w5, 0 + add x2, x2, x1 + mov w4, w5 + uxth w6, w6 + ldrb w3, [x2,2] + orr w3, w3, -32 + strb w3, [x2,2] + ldr x2, [x19,64] + ldr x14, [x19,2800] + add x1, x2, x1 +.L2013: + cmp w13, w4, uxth + bls .L2017 + lsl w12, w4, w10 + mov x3, 0 + uxth w12, w12 +.L2018: + uxth w2, w3 + cmp w2, w9 + bcs .L2036 + ldrb w7, [x1,3] + add w15, w5, w3 + asr w7, w7, w15 + tbnz x7, 0, .L2014 + cmp w8, 1 + mov w7, w6 + bls .L2015 and w2, w2, 1 - add w2, w7, w2 - uxth w8, w2 -.L1772: - add x16, x15, x1, sxtw 1 - add w1, w1, 1 - add w2, w8, w13 - strh w2, [x16,160] - uxth w1, w1 -.L1771: - add x4, x4, 1 - b .L1775 -.L1794: - add w5, w5, 1 - add w6, w6, w10 - b .L1770 -.L1774: - add w19, w19, 1 - add w3, w3, w11 - uxth w19, w19 - uxth w3, w3 - b .L1769 -.L1793: - ldrh w3, [x2,2826] - mov w7, 1 -.L1777: - cmp w0, w3 - bcs .L1795 - add x6, x20, :lo12:.LANCHOR0 - ubfiz x2, x0, 2, 16 - add w0, w0, 1 - ldr x4, [x6,2840] + add w2, w6, w2 + uxth w7, w2 +.L2015: + add x15, x14, x22, sxtw 1 + add w22, w22, 1 + add w2, w7, w12 + strh w2, [x15,160] + uxth w22, w22 +.L2014: + add x3, x3, 1 + b .L2018 +.L2036: + add w4, w4, 1 + add w5, w5, w8 + b .L2013 +.L2017: + add w20, w20, 1 + add w0, w0, w9 + uxth w20, w20 uxth w0, w0 - add x4, x4, x2 - ldrb w5, [x4,2] - and w5, w5, 31 - strb w5, [x4,2] - ldr x4, [x6,2840] - add x2, x4, x2 - ldrb w4, [x2,2] - bfi w4, w7, 3, 2 - strb w4, [x2,2] - b .L1777 -.L1795: - add x19, x20, :lo12:.LANCHOR0 + b .L2012 +.L2035: + ldrh w2, [x19,56] + mov w1, 0 + ldr x0, [x19,72] + lsl w2, w2, 1 + bl ftl_memset + bl zftl_sblk_list_init ldr x0, [x19,2800] - strh w1, [x0,112] - ldrh w1, [x0,134] + ldrh w1, [x19,56] + ldrh w2, [x0,134] + strh w22, [x0,112] + sub w1, w1, w2 strh wzr, [x0,114] - sub w3, w3, w1 + strh w1, [x0,116] strh wzr, [x0,118] - strh w3, [x0,116] mov w0, 1 bl ftl_alloc_sblk mov w21, w0 @@ -12003,17 +13216,17 @@ ftl_low_format: strh wzr, [x1,690] sub w2, w20, #1 cmp w0, w2, uxth - bcs .L1779 + bcs .L2020 adrp x1, .LANCHOR3 - adrp x0, .LC34 + adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR3 - add x0, x0, :lo12:.LC34 - add x1, x1, 416 - mov w2, 1322 + add x0, x0, :lo12:.LC0 + add x1, x1, 344 + mov w2, 1900 bl printk -.L1780: - b .L1780 -.L1779: +.L2021: + b .L2021 +.L2020: strh wzr, [x1,696] add x0, x1, 416 mov w2, 256 @@ -12021,15 +13234,15 @@ ftl_low_format: bl ftl_memset ldr x1, [x19,2800] mov w2, 21 - ldrh w0, [x19,3218] + ldrh w0, [x19,3266] sub w2, w2, w0 mov w0, 1 strh w0, [x1,688] - adrp x0, .LANCHOR7+3138 + adrp x0, .LANCHOR7+3202 asr w2, w20, w2 strh w20, [x1,692] strh w2, [x1,694] - ldrh w0, [x0,#:lo12:.LANCHOR7+3138] + ldrh w0, [x0,#:lo12:.LANCHOR7+3202] strh w21, [x1,416] strh w0, [x1,698] bl ftl_alloc_sys_blk @@ -12037,17 +13250,17 @@ ftl_low_format: mov w1, 0 bl ftl_erase_phy_blk ldr x1, [x19,2800] - ldr x0, [x19,2792] + ldr x0, [x19,80] strh w20, [x1,130] add x0, x0, 16 mov w1, 2 bl ftl_open_sblk_init - ldr x0, [x19,2792] + ldr x0, [x19,80] mov w1, 3 add x0, x0, 48 bl ftl_open_sblk_init ldr x1, [x19,2800] - ldr x0, [x19,2792] + ldr x0, [x19,80] ldrh w2, [x1,134] add x0, x0, 136 strh w2, [x0,-10] @@ -12063,7 +13276,7 @@ ftl_low_format: mov w1, 255 mov w2, 256 bl ftl_memset - ldr x0, [x19,2792] + ldr x0, [x19,80] mov w1, 255 mov w2, 128 add x0, x0, 392 @@ -12086,10 +13299,10 @@ ftl_low_format: .type ftl_re_low_format_test, %function ftl_re_low_format_test: stp x29, x30, [sp, -48]! - adrp x0, .LC145 + adrp x0, .LC114 mov w1, 1 add x29, sp, 0 - add x0, x0, :lo12:.LC145 + add x0, x0, :lo12:.LC114 stp x19, x20, [sp,16] str x21, [sp,32] adrp x19, .LANCHOR0 @@ -12099,48 +13312,53 @@ ftl_re_low_format_test: bl ftl_ext_info_init add x0, x19, :lo12:.LANCHOR0 ldr x1, [x0,2800] - ldrh w6, [x0,2826] + ldrh w2, [x0,56] mov w0, 0 - mov w2, w0 mov w3, w0 + mov w4, w0 ldrh w1, [x1,134] -.L1797: - cmp w1, w6 - bcs .L1804 - add x4, x19, :lo12:.LANCHOR0 - ldr x5, [x4,2840] - add x5, x5, x1, uxth 2 - ldrb w4, [x5,2] - and w7, w4, 31 - ands w4, w4, 24 - strb w7, [x5,2] - bne .L1798 +.L2038: + cmp w1, w2 + bcs .L2045 + add x5, x19, :lo12:.LANCHOR0 + ldr x6, [x5,64] + add x6, x6, x1, uxth 2 + ldrb w5, [x6,2] + and w7, w5, 31 + ands w5, w5, 24 + strb w7, [x6,2] + bne .L2039 + add w4, w4, 1 + uxth w4, w4 + b .L2040 +.L2039: + cmp w5, 16 + bne .L2041 add w3, w3, 1 uxth w3, w3 - b .L1799 -.L1798: - cmp w4, 16 - bne .L1800 - add w2, w2, 1 - uxth w2, w2 - b .L1799 -.L1800: + b .L2040 +.L2041: add w0, w0, 1 uxth w0, w0 -.L1799: +.L2040: add w1, w1, 1 uxth w1, w1 - b .L1797 -.L1804: + b .L2038 +.L2045: add x19, x19, :lo12:.LANCHOR0 + lsl w2, w2, 1 ldr x1, [x19,2800] - strh w2, [x1,118] - strh w3, [x1,114] strh w0, [x1,116] - mov w0, 1 + ldr x0, [x19,72] + strh w4, [x1,114] + strh w3, [x1,118] strh wzr, [x1,122] strh wzr, [x1,120] strh wzr, [x1,124] + mov w1, 0 + bl ftl_memset + bl zftl_sblk_list_init + mov w0, 1 bl ftl_alloc_sblk mov w21, w0 mov w1, 0 @@ -12155,17 +13373,17 @@ ftl_re_low_format_test: strh wzr, [x1,690] sub w2, w20, #1 cmp w0, w2, uxth - bcs .L1802 + bcs .L2043 adrp x1, .LANCHOR3 - adrp x0, .LC34 + adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR3 - add x0, x0, :lo12:.LC34 - add x1, x1, 432 - mov w2, 1391 + add x0, x0, :lo12:.LC0 + add x1, x1, 360 + mov w2, 1972 bl printk -.L1803: - b .L1803 -.L1802: +.L2044: + b .L2044 +.L2043: strh wzr, [x1,696] add x0, x1, 416 mov w2, 256 @@ -12178,30 +13396,30 @@ ftl_re_low_format_test: bl ftl_memset ldr x1, [x19,2800] lsr w0, w20, 14 - ldrh w2, [x19,2826] + ldrh w2, [x19,56] and w20, w20, 16383 strh w0, [x1,694] mov w0, 1 strh w0, [x1,688] - adrp x0, .LANCHOR7+3138 + adrp x0, .LANCHOR7+3202 lsl w2, w2, 1 strh w20, [x1,692] strh w21, [x1,416] - ldrh w0, [x0,#:lo12:.LANCHOR7+3138] + ldrh w0, [x0,#:lo12:.LANCHOR7+3202] strh w0, [x1,698] mov w1, 0 - ldr x0, [x19,2832] + ldr x0, [x19,72] bl ftl_memset - ldr x0, [x19,2792] + ldr x0, [x19,80] mov w1, 2 add x0, x0, 16 bl ftl_open_sblk_init - ldr x0, [x19,2792] + ldr x0, [x19,80] mov w1, 3 add x0, x0, 48 bl ftl_open_sblk_init ldr x1, [x19,2800] - ldr x0, [x19,2792] + ldr x0, [x19,80] ldrh w2, [x1,134] add x0, x0, 136 strh w2, [x0,-10] @@ -12217,12 +13435,12 @@ ftl_re_low_format_test: mov w1, 255 mov w2, 256 bl ftl_memset - ldr x0, [x19,2792] + ldr x0, [x19,80] mov w1, 255 mov w2, 128 add x0, x0, 392 bl ftl_memset - ldr x0, [x19,2792] + ldr x0, [x19,80] str wzr, [x0,520] str wzr, [x0,524] str wzr, [x0,528] @@ -12269,14 +13487,14 @@ ftl_write_last_log_page: add x19, x19, :lo12:.LANCHOR0 ldrh w24, [x0,12] cmp w1, 1 - ldr x22, [x19,3752] - bne .L1807 + ldr x22, [x19,3792] + bne .L2048 mov x20, x0 bl ftl_get_new_free_page cmn w0, #1 mov w23, w0 mov w21, 0 - beq .L1807 + beq .L2048 ldrh w0, [x20] add x22, x22, x24, uxth 2 bl ftl_vpn_decrement @@ -12284,11 +13502,11 @@ ftl_write_last_log_page: mov w0, 15555 add x1, x1, :lo12:.LANCHOR5 movk w0, 0xf55f, lsl 16 - add x2, x1, 128 + add x2, x1, 192 str x2, [x29,72] - str w0, [x1,128] - ldrb w0, [x19,3212] - ldrh w1, [x19,3234] + str w0, [x1,192] + ldrb w0, [x19,3196] + ldrh w1, [x19,3228] mul w1, w1, w0 mov x0, x22 lsl w1, w1, 2 @@ -12301,7 +13519,7 @@ ftl_write_last_log_page: str w21, [x2,8] str w21, [x2,12] bl ftl_prog_ppa_page -.L1807: +.L2048: mov w0, w21 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -12326,72 +13544,72 @@ ftl_open_sblk_recovery: stp x23, x24, [sp,96] mov x25, x1 ldr w0, [x0,400] - tbz x0, 12, .L1812 - adrp x0, .LC146 + tbz x0, 12, .L2053 + adrp x0, .LC115 ldrh w1, [x28,2] - add x0, x0, :lo12:.LC146 + add x0, x0, :lo12:.LC115 bl printk -.L1812: +.L2053: add x0, x21, :lo12:.LANCHOR2 ldr w0, [x0,400] - tbz x0, 12, .L1813 - adrp x0, .LC147 + tbz x0, 12, .L2054 + adrp x0, .LC116 ldrb w1, [x28,5] - add x0, x0, :lo12:.LC147 + add x0, x0, :lo12:.LC116 bl printk -.L1813: +.L2054: add x0, x21, :lo12:.LANCHOR2 ldr w0, [x0,400] - tbz x0, 12, .L1814 - adrp x0, .LC148 + tbz x0, 12, .L2055 + adrp x0, .LC117 ldrh w1, [x28] - add x0, x0, :lo12:.LC148 + add x0, x0, :lo12:.LC117 bl printk -.L1814: +.L2055: add x0, x21, :lo12:.LANCHOR2 ldr w0, [x0,400] - tbz x0, 12, .L1815 - adrp x0, .LC149 + tbz x0, 12, .L2056 + adrp x0, .LC118 ldrh w1, [x28,16] ldrh w2, [x28,18] - add x0, x0, :lo12:.LC149 + add x0, x0, :lo12:.LC118 bl printk -.L1815: +.L2056: ldrh w0, [x28,10] adrp x23, .LANCHOR5 strh w0, [x28,14] mov w0, 1 add x23, x23, :lo12:.LANCHOR5 - adrp x24, .LC150 + adrp x24, .LC119 bl buf_alloc ldrb w19, [x28,5] ldrh w20, [x28,2] mov x27, x0 mov w26, 0 - add x23, x23, 448 - add x24, x24, :lo12:.LC150 -.L1816: + add x23, x23, 512 + add x24, x24, :lo12:.LC119 +.L2057: adrp x0, .LANCHOR0 adrp x22, .LANCHOR0 add x0, x0, :lo12:.LANCHOR0 - ldrh w0, [x0,3234] + ldrh w0, [x0,3228] cmp w0, w20 - bls .L1819 + bls .L2060 ldrb w19, [x28,5] -.L1817: +.L2058: ldrb w0, [x28,9] cmp w0, w19 - bls .L1898 + bls .L2139 add x0, x28, x19, sxtw 1 ldrh w5, [x0,16] mov w0, 65535 cmp w5, w0 - beq .L1818 + beq .L2059 add x3, x22, :lo12:.LANCHOR0 ldr x1, [x27,8] ldr x2, [x27,24] str x5, [x29,96] - ldrh w4, [x3,3230] + ldrh w4, [x3,3270] ldrb w3, [x3,2776] madd w4, w5, w4, w20 str x4, [x29,104] @@ -12399,26 +13617,26 @@ ftl_open_sblk_recovery: bl ftl_read_ppa_page cmp w0, 512 mov w10, w0 - beq .L1819 + beq .L2060 cmn w0, #1 ldr x4, [x29,104] ldr x5, [x29,96] - beq .L1820 + beq .L2061 ldr x0, [x27,24] ldr w1, [x0] cmn w1, #1 - bne .L1820 + bne .L2061 ldr w0, [x0,4] cmn w0, #1 - bne .L1820 + bne .L2061 ldr x0, [x27,8] ldr w0, [x0] cmn w0, #1 - beq .L1819 -.L1820: + beq .L2060 +.L2061: add x0, x21, :lo12:.LANCHOR2 ldr w0, [x0,400] - tbz x0, 12, .L1821 + tbz x0, 12, .L2062 ldr x7, [x27,8] mov w3, w4 ldr x0, [x27,24] @@ -12442,70 +13660,70 @@ ftl_open_sblk_recovery: ldr w7, [x7,8] bl printk ldr x10, [x29,104] -.L1821: - adrp x0, .LANCHOR6-256 +.L2062: + adrp x0, .LANCHOR6-192 ldrb w2, [x28,9] mov w1, 1 - strb w1, [x0,#:lo12:.LANCHOR6-256] + strb w1, [x0,#:lo12:.LANCHOR6-192] ldrh w0, [x28,10] madd w1, w20, w2, w19 cmp w0, w1 - beq .L1822 + beq .L2063 adrp x1, .LANCHOR3 - adrp x0, .LC34 + adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR3 - add x0, x0, :lo12:.LC34 - add x1, x1, 456 - mov w2, 712 + add x0, x0, :lo12:.LC0 + add x1, x1, 384 + mov w2, 1260 bl printk -.L1823: - b .L1823 -.L1822: +.L2064: + b .L2064 +.L2063: add x26, x22, :lo12:.LANCHOR0 ldrh w1, [x28,6] add w0, w1, w0 - ldrh w1, [x26,3234] + ldrh w1, [x26,3228] mul w1, w1, w2 cmp w0, w1 - beq .L1824 + beq .L2065 adrp x1, .LANCHOR3 - adrp x0, .LC34 + adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR3 - add x0, x0, :lo12:.LC34 - add x1, x1, 456 - mov w2, 713 + add x0, x0, :lo12:.LC0 + add x1, x1, 384 + mov w2, 1261 bl printk -.L1825: - b .L1825 -.L1824: +.L2066: + b .L2066 +.L2065: cmn w10, #1 - beq .L1829 + beq .L2070 ldr x4, [x27,24] str x4, [x29,104] ldr w0, [x4,4] cmn w0, #1 - beq .L1829 + beq .L2070 bl lpa_hash_get_ppa - cbz x25, .L1827 + cbz x25, .L2068 ldr x4, [x29,104] ldr w1, [x4,8] cmp w0, w1 - beq .L1827 + beq .L2068 cmn w0, #1 - beq .L1827 - ldrh w5, [x26,3218] + beq .L2068 + ldrh w5, [x26,3266] mov w1, 21 mov w2, 1 sub w1, w1, w5 lsr w3, w0, w5 lsl w1, w2, w1 - ldrb w2, [x26,3216] + ldrb w2, [x26,3264] sub w1, w1, #1 and w1, w3, w1 udiv w1, w1, w2 ldrh w2, [x25] cmp w2, w1, uxth - bne .L1827 + bne .L2068 ldr w4, [x4] mov x2, x23 ldr x1, [x27,8] @@ -12515,39 +13733,39 @@ ftl_open_sblk_recovery: ldr w0, [x23] ldr x4, [x29,104] cmp w0, w4 - bcc .L1827 + bcc .L2068 ldr x0, [x27,24] ldr w1, [x0,8] cmn w1, #1 - beq .L1829 + beq .L2070 add x4, x22, :lo12:.LANCHOR0 mov w2, 21 mov w3, 1 - ldrh w0, [x4,3218] + ldrh w0, [x4,3266] sub w2, w2, w0 lsr w1, w1, w0 lsl w2, w3, w2 - ldrb w0, [x4,3216] + ldrb w0, [x4,3264] sub w2, w2, #1 and w1, w2, w1 udiv w0, w1, w0 bl ftl_vpn_decrement - b .L1829 -.L1827: + b .L2070 +.L2068: ldr x2, [x27,24] add x1, x22, :lo12:.LANCHOR0 ldr w3, [x2,4] ldr w0, [x1,2784] cmp w3, w0 - bcs .L1829 + bcs .L2070 ldrb w0, [x28,9] - ldrh w4, [x1,3234] + ldrh w4, [x1,3228] ldrh w3, [x28,10] mul w0, w0, w4 sub w0, w0, #1 cmp w3, w0 - blt .L1899 -.L1829: + blt .L2140 +.L2070: ldrh w0, [x28,6] mov w26, 1 sub w0, w0, #1 @@ -12555,99 +13773,99 @@ ftl_open_sblk_recovery: ldrh w0, [x28,10] add w0, w0, 1 strh w0, [x28,10] -.L1818: +.L2059: add w19, w19, 1 uxth w19, w19 - b .L1817 -.L1898: + b .L2058 +.L2139: add w20, w20, 1 strb wzr, [x28,5] uxth w20, w20 - b .L1816 -.L1819: + b .L2057 +.L2060: add x4, x22, :lo12:.LANCHOR0 ldrb w1, [x28,9] ldrh w2, [x28,10] ldrh w3, [x28,6] - ldrh w0, [x4,3234] + ldrh w0, [x4,3228] add w3, w3, w2 strh w20, [x28,2] strb w19, [x28,5] mul w0, w1, w0 cmp w3, w0 - bne .L1833 + bne .L2074 mov w19, 0 - ldr x4, [x4,3752] + ldr x4, [x4,3792] mov w1, w19 - b .L1834 -.L1833: + b .L2075 +.L2074: adrp x1, .LANCHOR3 - adrp x0, .LC34 + adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR3 - add x0, x0, :lo12:.LC34 - add x1, x1, 456 - mov w2, 789 + add x0, x0, :lo12:.LC0 + add x1, x1, 384 + mov w2, 1337 bl printk -.L1835: - b .L1835 -.L1837: +.L2076: + b .L2076 +.L2078: ldrh w3, [x28,12] add w3, w1, w3 ldr w3, [x4,x3,lsl 2] cmn w3, #1 - beq .L1836 + beq .L2077 add w19, w19, 1 uxth w19, w19 -.L1836: +.L2077: add w1, w1, 1 -.L1834: +.L2075: cmp w1, w2 - bcc .L1837 + bcc .L2078 sub w0, w0, w2 add w19, w19, w0 add x0, x21, :lo12:.LANCHOR2 uxth w19, w19 ldr w0, [x0,400] - tbz x0, 12, .L1838 + tbz x0, 12, .L2079 add x0, x22, :lo12:.LANCHOR0 ldrh w1, [x28] mov w2, w19 ubfiz x3, x1, 1, 16 - ldr x4, [x0,2832] - adrp x0, .LC151 - add x0, x0, :lo12:.LC151 + ldr x4, [x0,72] + adrp x0, .LC120 + add x0, x0, :lo12:.LC120 ldrh w3, [x4,x3] bl printk -.L1838: +.L2079: add x0, x22, :lo12:.LANCHOR0 ldrh w1, [x28] - adrp x20, .LC152 + adrp x20, .LC121 mov w23, -1 - add x20, x20, :lo12:.LC152 - ldr x0, [x0,2832] + add x20, x20, :lo12:.LC121 + ldr x0, [x0,72] strh w19, [x0,x1,lsl 1] mov x0, x27 mov w19, 0 bl buf_free -.L1839: +.L2080: add x2, x22, :lo12:.LANCHOR0 - ldrb w0, [x2,3212] + ldrb w0, [x2,3196] cmp w19, w0, lsl 1 - bcs .L1900 - cbz w26, .L1840 + bcs .L2141 + cbz w26, .L2081 ldrh w0, [x28,6] cmp w0, 1 - bls .L1840 + bls .L2081 mov x0, x28 bl ftl_get_new_free_page mov w24, w0 add x0, x21, :lo12:.LANCHOR2 ldr w0, [x0,400] - tbz x0, 12, .L1841 + tbz x0, 12, .L2082 mov x0, x20 mov w1, w24 bl printk -.L1841: +.L2082: add x3, x22, :lo12:.LANCHOR0 ldr x0, [x27,24] ldr x1, [x3,2800] @@ -12668,44 +13886,44 @@ ftl_open_sblk_recovery: bl ftl_prog_ppa_page ldrh w0, [x28] bl ftl_vpn_decrement -.L1840: +.L2081: add w19, w19, 1 - b .L1839 -.L1900: - ldrh w1, [x2,3234] + b .L2080 +.L2141: + ldrh w1, [x2,3228] ldrh w0, [x28,12] ldrb w3, [x28,9] madd w0, w1, w3, w0 mov x1, -4 add x0, x1, x0, sxtw 2 - ldr x1, [x2,3752] + ldr x1, [x2,3792] ldr w0, [x1,x0] cmn w0, #1 - beq .L1843 + beq .L2084 adrp x1, .LANCHOR3 - adrp x0, .LC34 + adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR3 - add x0, x0, :lo12:.LC34 - add x1, x1, 456 - mov w2, 816 + add x0, x0, :lo12:.LC0 + add x1, x1, 384 + mov w2, 1364 bl printk -.L1844: - b .L1844 -.L1843: +.L2085: + b .L2085 +.L2084: ldrh w0, [x28,6] cmp w0, 1 - bne .L1811 + bne .L2052 mov x0, x28 bl ftl_write_last_log_page - b .L1811 -.L1899: + b .L2052 +.L2140: ldr x0, [x1,2800] ldr w2, [x2] ldr w1, [x0,8] cmp w2, w1 - bls .L1830 + bls .L2071 str w2, [x0,8] -.L1830: +.L2071: ldr x1, [x27,24] ldrh w0, [x28,10] ldrh w2, [x28,12] @@ -12713,8 +13931,8 @@ ftl_open_sblk_recovery: ldr w0, [x1,4] ldr w1, [x1,8] bl lpa_hash_update_ppa - b .L1829 -.L1811: + b .L2070 +.L2052: sub sp, x29, #48 ldp x19, x20, [sp,64] ldp x21, x22, [sp,80] @@ -12733,7 +13951,7 @@ pm_write_page: add x29, sp, 0 stp x21, x22, [sp,32] adrp x22, .LANCHOR0 - adrp x21, .LC153 + adrp x21, .LC122 stp x23, x24, [sp,48] stp x19, x20, [sp,16] stp x25, x26, [sp,64] @@ -12742,61 +13960,61 @@ pm_write_page: mov x24, x1 mov x25, x22 mov w23, 65535 - add x21, x21, :lo12:.LC153 -.L1902: + add x21, x21, :lo12:.LC122 +.L2143: adrp x26, .LANCHOR7 -.L1907: +.L2148: add x2, x22, :lo12:.LANCHOR0 ldr x0, [x2,2800] ldr w1, [x0,48] ldrh w3, [x0,696] add w1, w1, 1 str w1, [x0,48] - ldrh w1, [x2,3234] + ldrh w1, [x2,3228] cmp w3, w1 - bcs .L1903 + bcs .L2144 ldrh w0, [x0,692] cmp w0, w23 - bne .L1904 -.L1903: + bne .L2145 +.L2144: bl pm_alloc_new_blk mov w0, 0 bl ftl_info_flush -.L1904: +.L2145: add x27, x25, :lo12:.LANCHOR0 ldr x0, [x27,2800] ldrh w3, [x0,692] cmp w3, w23 - bne .L1905 + bne .L2146 adrp x1, .LANCHOR3 - adrp x0, .LC34 + adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR3 - add x0, x0, :lo12:.LC34 - add x1, x1, 480 + add x0, x0, :lo12:.LC0 + add x1, x1, 408 mov w2, 224 bl printk -.L1906: - b .L1906 -.L1905: +.L2147: + b .L2147 +.L2146: add x28, x26, :lo12:.LANCHOR7 ldrh w0, [x0,696] - ldrh w19, [x27,3230] + ldrh w19, [x27,3270] mov w1, 0 mov w2, 64 madd w19, w3, w19, w0 - ldr x0, [x28,3144] + ldr x0, [x28,3208] bl ftl_memset - ldr x0, [x28,3144] + ldr x0, [x28,3208] mov x2, x24 str w20, [x0] ldr x1, [x27,2800] - ldr x0, [x28,3144] + ldr x0, [x28,3208] ldrb w4, [x27,2776] ldr w1, [x1,48] str w1, [x0,4] mov w1, w19 ldr x0, [x27,2800] - ldr x3, [x28,3144] + ldr x3, [x28,3208] ldrb w0, [x0,694] bl ftl_prog_page ldr x1, [x27,2800] @@ -12805,20 +14023,20 @@ pm_write_page: uxth w3, w3 strh w3, [x1,696] cmp w3, 1 - beq .L1907 + beq .L2148 cmn w0, #1 - bne .L1908 + bne .L2149 mov x0, x21 mov w1, w19 bl printk - b .L1902 -.L1908: + b .L2143 +.L2149: ldrh w0, [x1,698] cmp w20, w0 - bcs .L1909 + bcs .L2150 add x20, x1, x20, uxtw 2 str w19, [x20,704] -.L1909: +.L2150: mov w0, 0 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -12833,117 +14051,110 @@ pm_write_page: .type flash_info_flush, %function flash_info_flush: stp x29, x30, [sp, -96]! - adrp x2, .LANCHOR3 - adrp x0, .LC101 - add x2, x2, :lo12:.LANCHOR3 + mov w1, 0 + mov w2, 64 add x29, sp, 0 - mov w1, 251 - add x2, x2, 496 - add x0, x0, :lo12:.LC101 + stp x21, x22, [sp,32] + adrp x22, .LANCHOR4 + add x0, x22, :lo12:.LANCHOR4 stp x23, x24, [sp,48] stp x25, x26, [sp,64] stp x19, x20, [sp,16] - stp x21, x22, [sp,32] stp x27, x28, [sp,80] - adrp x22, .LANCHOR4 - bl printk - add x0, x22, :lo12:.LANCHOR4 adrp x23, .LANCHOR0 - mov w1, 0 - mov w2, 64 + adrp x24, .LC124 + ldr x0, [x0,1176] add x19, x23, :lo12:.LANCHOR0 - adrp x24, .LC155 - ldr x0, [x0,1104] - adrp x25, .LC156 + adrp x25, .LC125 mov w26, 0 - add x24, x24, :lo12:.LC155 - add x25, x25, :lo12:.LC156 + add x24, x24, :lo12:.LC124 + add x25, x25, :lo12:.LC125 bl ftl_memset - ldr x1, [x19,152] - adrp x0, .LC154 - add x0, x0, :lo12:.LC154 + ldr x1, [x19,144] + adrp x0, .LC123 + add x0, x0, :lo12:.LC123 mov w2, 4 mov w3, 16 bl rknand_print_hex - ldr x19, [x19,152] + ldr x19, [x19,144] add x0, x19, 16 ldr w1, [x19,8] bl js_hash str w0, [x19,12] -.L1913: +.L2154: add x21, x22, :lo12:.LANCHOR4 add x27, x23, :lo12:.LANCHOR0 mov x0, x24 - ldrb w20, [x21,1112] - ldrh w19, [x21,1114] + ldrb w20, [x21,1184] + ldrh w19, [x21,1186] mov w1, w20 - ldrh w28, [x27,170] + ldrh w28, [x27,166] mov w2, w19 bl printk - ldrh w1, [x21,972] - ldrh w0, [x21,1114] + ldrh w1, [x21,1012] + ldrh w0, [x21,1186] sub w1, w1, #1 cmp w0, w1 - blt .L1914 - ldr x1, [x27,152] - ldrb w19, [x21,1113] - strh wzr, [x21,1114] + blt .L2155 + ldr x1, [x27,144] + ldrb w19, [x21,1185] + strh wzr, [x21,1186] ldr w0, [x1,4] add w0, w0, 1 str w0, [x1,4] - ldrb w0, [x21,1112] - ldr x20, [x27,152] - strb w0, [x21,1113] + ldrb w0, [x21,1184] + ldr x20, [x27,144] + strb w0, [x21,1185] mov x0, x20 - strb w19, [x21,1112] + strb w19, [x21,1184] ldrh w1, [x20,16] add w1, w1, 1 strh w1, [x0,16]! ldr w1, [x20,8] bl js_hash str w0, [x20,12] - ldrh w0, [x27,170] + ldrh w0, [x27,166] mul w19, w19, w0 mov w0, 0 - b .L1919 -.L1914: + b .L2160 +.L2155: madd w19, w20, w28, w19 - cbnz w0, .L1915 -.L1919: + cbnz w0, .L2156 +.L2160: mov w1, w19 bl flash_erase_block -.L1915: +.L2156: add x2, x23, :lo12:.LANCHOR0 add x20, x22, :lo12:.LANCHOR4 mov w4, 4 mov w5, 1 - ldr x1, [x2,152] - ldr x0, [x20,1104] + ldr x1, [x2,144] + ldr x0, [x20,1176] ldr w1, [x1,4] str w1, [x0] mov w0, 21321 movk w0, 0x5359, lsl 16 - ldr x1, [x20,1104] + ldr x1, [x20,1176] str w0, [x1,4] mov w1, w19 mov w0, 0 - ldr x2, [x2,152] - ldr x3, [x20,1104] + ldr x2, [x2,144] + ldr x3, [x20,1176] bl flash_prog_page_en cmn w0, #1 - ldrh w1, [x20,1114] + ldrh w1, [x20,1186] add w1, w1, 1 - strh w1, [x20,1114] - bne .L1916 + strh w1, [x20,1186] + bne .L2157 mov x0, x25 mov w1, w19 bl printk - b .L1913 -.L1916: - cbnz w26, .L1920 + b .L2154 +.L2157: + cbnz w26, .L2161 mov w26, 1 - b .L1913 -.L1920: + b .L2154 +.L2161: mov w0, 0 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -12957,104 +14168,95 @@ flash_info_flush: .global nand_flash_init .type nand_flash_init, %function nand_flash_init: - stp x29, x30, [sp, -80]! - mov w1, 2074 + stp x29, x30, [sp, -64]! + mov w1, 2 add x29, sp, 0 - stp x21, x22, [sp,32] - adrp x21, .LANCHOR3 - mov w22, 0 - stp x23, x24, [sp,48] - add x2, x21, :lo12:.LANCHOR3 - adrp x24, .LC101 stp x19, x20, [sp,16] - add x2, x2, 520 - mov x20, x0 adrp x19, .LANCHOR0 - add x0, x24, :lo12:.LC101 - add x23, x19, :lo12:.LANCHOR0 - stp x25, x26, [sp,64] - bl printk - add x25, x23, 688 - mov w0, 2 - strb w0, [x23,684] - mov x0, x20 adrp x20, .LANCHOR2 - mov w26, 44 + stp x21, x22, [sp,32] + add x21, x19, :lo12:.LANCHOR0 + mov w22, 0 + stp x23, x24, [sp,48] + add x21, x21, 684 + mov w24, 44 + strb w1, [x21,-4] bl nandc_init add x0, x20, :lo12:.LANCHOR2 add x0, x0, 368 - str x0, [x23,48] -.L1927: + str x0, [x21,36] + mov x23, x21 +.L2168: mov w0, w22 - mov x1, x25 + mov x1, x21 bl flash_read_id - cbnz w22, .L1922 - ldrb w0, [x23,688] - add x1, x23, 688 + cbnz w22, .L2163 + ldrb w0, [x23] sub w0, w0, #1 uxtb w0, w0 cmp w0, 253 - bls .L1923 -.L1925: - mov w20, -2 - b .L1973 -.L1923: - ldrb w0, [x1,1] + bls .L2164 +.L2166: + mov w0, -2 + b .L2201 +.L2164: + ldrb w0, [x23,1] cmp w0, 255 - beq .L1925 -.L1922: - ldrb w0, [x25] + beq .L2166 +.L2163: + ldrb w0, [x21] cmp w0, 181 - bne .L1926 - strb w26, [x25] -.L1926: + bne .L2167 + strb w24, [x21] +.L2167: add w22, w22, 1 - add x25, x25, 8 + add x21, x21, 8 uxtb w22, w22 cmp w22, 4 - bne .L1927 - add x23, x20, :lo12:.LANCHOR2 - add x25, x19, :lo12:.LANCHOR0 - add x23, x23, 440 - mov w22, 0 - add x25, x25, 688 -.L1930: - ldrb w2, [x23] - add x0, x23, 1 - mov x1, x25 + bne .L2168 + add x22, x20, :lo12:.LANCHOR2 + add x23, x19, :lo12:.LANCHOR0 + add x22, x22, 440 + mov w21, 0 + add x23, x23, 684 +.L2171: + ldrb w2, [x22] + add x0, x22, 1 + mov x1, x23 bl flash_mem_cmp8 - cbnz w0, .L1928 + cbnz w0, .L2169 add x1, x20, :lo12:.LANCHOR2 - ubfiz x22, x22, 5, 32 - add x0, x1, 440 - adds x22, x0, x22 - beq .L1925 + ubfiz x21, x21, 5, 32 + add x22, x1, 440 + adds x22, x22, x21 + beq .L2166 ldrb w3, [x22,22] mov x0, 0 - b .L1932 -.L1928: - add w22, w22, 1 - add x23, x23, 32 - cmp w22, 24 - bne .L1930 - b .L1925 -.L1932: + b .L2173 +.L2169: + add w21, w21, 1 + add x22, x22, 32 + cmp w21, 27 + bne .L2171 + b .L2166 +.L2173: add x4, x1, x0, lsl 5 mov w2, w0 - ldrb w4, [x4,1208] + ldrb w4, [x4,1304] cmp w4, w3 - beq .L1931 + beq .L2172 add x0, x0, 1 cmp x0, 4 - bne .L1932 + bne .L2173 mov w2, w0 -.L1931: +.L2172: add x23, x20, :lo12:.LANCHOR2 + adrp x21, .LANCHOR4 + add x1, x23, 1304 ubfiz x2, x2, 5, 32 - add x1, x23, 1208 - add x0, x19, :lo12:.LANCHOR0 + add x0, x21, :lo12:.LANCHOR4 add x1, x1, x2 - add x0, x0, 64 + add x0, x0, 1088 mov w2, 32 add x23, x23, 368 bl ftl_memcpy @@ -13064,247 +14266,222 @@ nand_flash_init: bl ftl_memcpy ldrb w0, [x19,#:lo12:.LANCHOR0] cmp w0, 8 - bhi .L1933 + bhi .L2174 ldrb w1, [x23,20] cmp w1, 60 - bls .L1934 + bls .L2175 mov w1, 60 strb w1, [x23,20] -.L1934: +.L2175: cmp w0, 8 - bne .L1933 + bne .L2174 add x0, x19, :lo12:.LANCHOR0 - ldrb w0, [x0,688] + ldrb w0, [x0,684] cmp w0, 44 - beq .L1979 -.L1933: - add x2, x21, :lo12:.LANCHOR3 - mov w1, 2095 - add x2, x2, 520 - add x0, x24, :lo12:.LC101 - adrp x22, .LANCHOR4 - add x23, x19, :lo12:.LANCHOR0 - bl printk - add x25, x22, :lo12:.LANCHOR4 + beq .L2218 +.L2174: + add x22, x21, :lo12:.LANCHOR4 mov w0, 16384 - add x26, x20, :lo12:.LANCHOR2 + add x23, x19, :lo12:.LANCHOR0 + add x24, x20, :lo12:.LANCHOR2 bl ftl_malloc - str x0, [x25,1120] + str x0, [x22,1192] mov w0, 16384 bl ftl_malloc - str x0, [x25,1072] + str x0, [x22,1144] mov w0, 2048 bl ftl_malloc - str x0, [x23,152] + str x0, [x23,144] mov w0, 64 bl ftl_malloc - str x0, [x25,1128] + str x0, [x22,1200] mov w0, 64 bl ftl_malloc - str x0, [x25,1080] + str x0, [x22,1152] mov w0, 64 bl ftl_malloc - str x0, [x25,1104] - adrp x0, .LANCHOR5+392 - strb wzr, [x0,#:lo12:.LANCHOR5+392] + str x0, [x22,1176] + adrp x0, .LANCHOR5+448 + strb wzr, [x0,#:lo12:.LANCHOR5+448] bl flash_die_info_init - ldrb w0, [x26,386] + ldrb w0, [x24,386] bl flash_lsb_page_tbl_build - ldrb w0, [x26,388] + ldrb w0, [x24,388] bl nandc_bch_sel - str xzr, [x25,1096] - ldr x1, [x23,48] + str xzr, [x22,1168] + ldr x1, [x23,720] ldrh w0, [x1,16] - ldrb w1, [x1,28] - ubfx x2, x0, 8, 3 - strb w2, [x23,720] - adrp x2, .LANCHOR7+3152 - ubfx x3, x0, 3, 1 - strb w1, [x23,58] - strb w3, [x2,#:lo12:.LANCHOR7+3152] + lsr w3, w0, 8 + ubfx x4, x0, 3, 1 + and w2, w3, 7 + strb w2, [x23,681] + adrp x2, .LANCHOR7+3216 + strb w4, [x2,#:lo12:.LANCHOR7+3216] ubfx x2, x0, 4, 1 - strb w2, [x23,721] + strb w2, [x23,717] ubfx x2, x0, 12, 1 - strb w2, [x23,3208] + strb w2, [x23,3192] ubfx x2, x0, 13, 1 ubfx x0, x0, 14, 1 - strb w0, [x23,168] - mov w0, 60 - strb w0, [x23,56] - ldrb w0, [x19,#:lo12:.LANCHOR0] - strb w2, [x23,3228] - cmp w0, 9 - bne .L1935 - mov w0, 70 - strb w0, [x23,56] -.L1935: + strb w0, [x23,165] + ldrb w0, [x1,28] + mov w1, 60 + strb w1, [x22,1209] + ldrb w1, [x19,#:lo12:.LANCHOR0] + strb w2, [x23,3268] + strb w0, [x23,164] + cmp w1, 9 + bne .L2176 + mov w1, 70 + strb w1, [x22,1209] +.L2176: add x20, x20, :lo12:.LANCHOR2 - add x0, x22, :lo12:.LANCHOR4 + add x1, x21, :lo12:.LANCHOR4 add x2, x19, :lo12:.LANCHOR0 - strb w1, [x0,1136] - ldrb w1, [x20,387] - strb w1, [x2,149] + strb w0, [x1,1208] + ldrb w0, [x20,387] + strb w0, [x2,141] ldrh w2, [x20,384] - tbz x2, 6, .L1937 - sub w2, w1, #17 + tbz x2, 6, .L2178 + sub w2, w0, #17 uxtb w2, w2 cmp w2, 2 - bhi .L1938 + bhi .L2179 adrp x2, micron_read_retrial - cmp w1, 19 + cmp w0, 19 add x2, x2, :lo12:micron_read_retrial - str x2, [x0,1096] - mov w2, 7 - strb w2, [x0,1088] - bne .L1937 - mov w1, 15 - b .L1975 -.L1938: - sub w2, w1, #65 + str x2, [x1,1168] + bne .L2214 + mov w0, 15 + b .L2215 +.L2179: + sub w2, w0, #65 uxtb w2, w2 cmp w2, 1 - bls .L1955 - cmp w1, 33 - bne .L1940 -.L1955: - add x0, x22, :lo12:.LANCHOR4 + bls .L2195 + cmp w0, 33 + bne .L2182 +.L2195: + add x0, x21, :lo12:.LANCHOR4 adrp x1, toshiba_read_retrial add x1, x1, :lo12:toshiba_read_retrial mov w2, 4 - str x1, [x0,1096] + str x1, [x0,1168] add x1, x19, :lo12:.LANCHOR0 - strb w2, [x1,150] - b .L1976 -.L1940: - sub w2, w1, #67 + strb w2, [x1,142] + mov w1, 7 + strb w1, [x0,1160] + b .L2178 +.L2182: + sub w2, w0, #67 uxtb w2, w2 cmp w2, 1 - sub w2, w1, #34 - cset w3, ls - cmp w1, 35 - cset w4, eq + sub w2, w0, #34 + cset w4, ls uxtb w2, w2 - cmp w1, 68 - cset w5, eq cmp w2, 1 - bls .L1956 - cbz w3, .L1942 -.L1956: - add x0, x22, :lo12:.LANCHOR4 + bls .L2196 + cbz w4, .L2184 +.L2196: + add x2, x21, :lo12:.LANCHOR4 adrp x1, toshiba_read_retrial add x1, x1, :lo12:toshiba_read_retrial - str x1, [x0,1096] - mov w1, 7 - strb w1, [x0,1088] - cbnz w5, .L1957 - cbz w4, .L1944 -.L1957: - add x0, x22, :lo12:.LANCHOR4 + cmp w0, 35 + str x1, [x2,1168] + beq .L2186 + cmp w0, 68 + beq .L2186 + mov w0, 7 + strb w0, [x2,1160] + b .L2187 +.L2186: + add x0, x21, :lo12:.LANCHOR4 mov w1, 17 - strb w1, [x0,1088] -.L1944: + strb w1, [x0,1160] +.L2187: add x0, x19, :lo12:.LANCHOR0 mov w1, 4 - cbnz w3, .L1977 + cbnz w4, .L2216 mov w1, 5 -.L1977: - strb w1, [x0,150] - b .L1937 -.L1942: - sub w1, w1, #36 - uxtb w1, w1 - cmp w1, 1 - bhi .L1937 - adrp x1, toshiba_3d_read_retrial - add x1, x1, :lo12:toshiba_3d_read_retrial - str x1, [x0,1096] -.L1976: - mov w1, 7 -.L1975: - strb w1, [x0,1088] -.L1937: - add x2, x21, :lo12:.LANCHOR3 - add x0, x24, :lo12:.LC101 - mov w1, 2143 - add x2, x2, 520 - bl printk +.L2216: + strb w1, [x0,142] + b .L2178 +.L2184: + sub w0, w0, #36 + uxtb w0, w0 + cmp w0, 1 + bhi .L2178 + adrp x0, toshiba_3d_read_retrial + add x0, x0, :lo12:toshiba_3d_read_retrial + str x0, [x1,1168] +.L2214: + mov w0, 7 +.L2215: + strb w0, [x1,1160] +.L2178: add x0, x19, :lo12:.LANCHOR0 - strb wzr, [x0,96] - ldrb w0, [x0,720] - tbz x0, 0, .L1947 + strb wzr, [x0,716] + tbz x3, 0, .L2189 mov w0, 4 bl nandc_set_if_mode mov w0, 1 bl flash_set_interface_mode mov w0, 1 - b .L1978 -.L1947: + b .L2217 +.L2189: mov w0, 4 -.L1978: +.L2217: bl nandc_set_if_mode bl flash_info_blk_init cmn w0, #1 - mov w20, w0 - bne .L1949 - add x2, x21, :lo12:.LANCHOR3 - add x0, x24, :lo12:.LC101 - mov w1, 2161 - add x2, x2, 520 - bl printk - b .L1973 -.L1949: + beq .L2201 add x0, x19, :lo12:.LANCHOR0 - ldrb w0, [x0,149] + ldrb w0, [x0,141] sub w0, w0, #1 uxtb w0, w0 cmp w0, 6 - bhi .L1950 - add x0, x22, :lo12:.LANCHOR4 + bhi .L2191 + add x0, x21, :lo12:.LANCHOR4 adrp x1, hynix_read_retrial add x1, x1, :lo12:hynix_read_retrial - str x1, [x0,1096] -.L1950: + str x1, [x0,1168] +.L2191: add x19, x19, :lo12:.LANCHOR0 - ldrb w0, [x19,720] - tbz x0, 2, .L1952 - ldr x0, [x19,152] + ldrb w0, [x19,681] + tbnz x0, 2, .L2192 +.L2193: + mov w0, 0 + b .L2201 +.L2192: + ldr x0, [x19,144] ldrb w0, [x0,19] - cbz w0, .L1952 - add x22, x22, :lo12:.LANCHOR4 - ldrh w1, [x19,170] + cbz w0, .L2193 + add x21, x21, :lo12:.LANCHOR4 + ldrh w1, [x19,166] mov w0, 0 - ldrb w2, [x22,1112] + ldrb w2, [x21,1184] mul w1, w2, w1 bl flash_ddr_para_scan - ldrb w0, [x19,96] - cbnz w0, .L1952 - ldr x1, [x19,152] - strb w0, [x1,19] + ldrb w20, [x19,716] + cbnz w20, .L2193 + ldr x0, [x19,144] + strb w20, [x0,19] bl flash_info_flush -.L1952: - add x2, x21, :lo12:.LANCHOR3 - mov w1, 2196 - add x2, x2, 520 - add x0, x24, :lo12:.LC101 - mov w20, 0 - bl printk - bl nand_flash_print_info - b .L1973 -.L1979: + mov w0, w20 + b .L2201 +.L2218: add x0, x20, :lo12:.LANCHOR2 add x0, x0, 368 ldrb w1, [x0,28] - cmp w1, 2 - bne .L1933 + cmp w1, 3 + bne .L2174 strb wzr, [x0,28] - b .L1933 -.L1973: - mov w0, w20 + b .L2174 +.L2201: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] - ldp x25, x26, [sp,64] - ldp x29, x30, [sp], 80 + ldp x29, x30, [sp], 64 ret .size nand_flash_init, .-nand_flash_init .align 2 @@ -13324,20 +14501,20 @@ ftl_sysblk_dump: bl buf_alloc ldr x23, [x0,8] mov w27, 0 - adrp x21, .LC150 - adrp x22, .LC157 + adrp x21, .LC119 + adrp x22, .LC126 mov x26, x0 mov w19, w27 adrp x28, .LANCHOR0 - add x21, x21, :lo12:.LC150 - add x22, x22, :lo12:.LC157 + add x21, x21, :lo12:.LC119 + add x22, x22, :lo12:.LC126 add x23, x23, 704 -.L1981: +.L2220: add x3, x28, :lo12:.LANCHOR0 - ldrh w1, [x3,3234] + ldrh w1, [x3,3228] cmp w1, w19 - bls .L1991 - ldrh w20, [x3,3230] + bls .L2230 + ldrh w20, [x3,3270] ldr x1, [x26,8] ldr x2, [x26,24] madd w20, w24, w20, w19 @@ -13372,29 +14549,29 @@ ftl_sysblk_dump: mov w3, 32 bl rknand_print_hex cmp w25, 512 - beq .L1987 + beq .L2226 cmn w25, #1 - bne .L1982 -.L1987: + bne .L2221 +.L2226: mov w27, 1 -.L1982: +.L2221: add w19, w19, 1 uxth w19, w19 - b .L1981 -.L1991: + b .L2220 +.L2230: mov x0, x26 bl buf_free - cbz w27, .L1985 + cbz w27, .L2224 adrp x1, .LANCHOR3 - adrp x0, .LC34 + adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR3 - add x0, x0, :lo12:.LC34 - add x1, x1, 536 - mov w2, 656 + add x0, x0, :lo12:.LC0 + add x1, x1, 424 + mov w2, 1204 bl printk -.L1986: - b .L1986 -.L1985: +.L2225: + b .L2225 +.L2224: sub sp, x29, #48 mov w0, w27 ldp x19, x20, [sp,64] @@ -13412,26 +14589,26 @@ ftl_sysblk_dump: dump_ftl_info: stp x29, x30, [sp, -32]! adrp x3, .LANCHOR5 - adrp x0, .LC158 + adrp x0, .LC127 add x29, sp, 0 add x3, x3, :lo12:.LANCHOR5 - add x0, x0, :lo12:.LC158 + add x0, x0, :lo12:.LC127 str x19, [sp,16] adrp x19, .LANCHOR0 add x19, x19, :lo12:.LANCHOR0 - ldrb w1, [x3,704] - ldrb w2, [x3,705] - ldrh w3, [x3,706] + ldrb w1, [x3,768] + ldrb w2, [x3,769] + ldrh w3, [x3,770] bl printk ldr x2, [x19,2800] - adrp x0, .LC159 - add x0, x0, :lo12:.LC159 + adrp x0, .LC128 + add x0, x0, :lo12:.LC128 ldrh w1, [x2,130] ldrh w2, [x2,140] bl printk - ldr x1, [x19,2792] - adrp x0, .LC160 - add x0, x0, :lo12:.LC160 + ldr x1, [x19,80] + adrp x0, .LC129 + add x0, x0, :lo12:.LC129 add x5, x1, 16 ldrh w1, [x1,16] ldrh w2, [x5,2] @@ -13439,9 +14616,9 @@ dump_ftl_info: ldrh w4, [x5,6] ldrh w5, [x5,10] bl printk - ldr x1, [x19,2792] - adrp x0, .LC161 - add x0, x0, :lo12:.LC161 + ldr x1, [x19,80] + adrp x0, .LC130 + add x0, x0, :lo12:.LC130 add x5, x1, 48 ldrh w1, [x1,48] ldrh w2, [x5,2] @@ -13449,9 +14626,9 @@ dump_ftl_info: ldrh w4, [x5,6] ldrh w5, [x5,10] bl printk - ldr x1, [x19,2792] - adrp x0, .LC162 - add x0, x0, :lo12:.LC162 + ldr x1, [x19,80] + adrp x0, .LC131 + add x0, x0, :lo12:.LC131 add x5, x1, 80 ldrh w1, [x1,80] ldrh w4, [x5,6] @@ -13459,47 +14636,47 @@ dump_ftl_info: ldrb w3, [x5,5] ldrh w5, [x5,10] bl printk - ldrh w0, [x19,3234] + ldrh w0, [x19,3228] mov w2, 4 - ldrb w3, [x19,3212] - ldr x1, [x19,3752] + ldrb w3, [x19,3196] + ldr x1, [x19,3792] mul w3, w0, w3 - adrp x0, .LC163 - add x0, x0, :lo12:.LC163 + adrp x0, .LC132 + add x0, x0, :lo12:.LC132 lsl w3, w3, 1 bl rknand_print_hex - ldr x1, [x19,2832] - adrp x0, .LC164 - ldrh w3, [x19,2826] - add x0, x0, :lo12:.LC164 + ldr x1, [x19,72] + adrp x0, .LC133 + ldrh w3, [x19,56] + add x0, x0, :lo12:.LC133 mov w2, 2 bl rknand_print_hex ldr x1, [x19,2800] - adrp x0, .LC157 - add x0, x0, :lo12:.LC157 + adrp x0, .LC126 + add x0, x0, :lo12:.LC126 mov w2, 4 add x1, x1, 704 mov w3, 32 bl rknand_print_hex - ldr x1, [x19,2840] - adrp x0, .LC165 - ldrh w3, [x19,2826] - add x0, x0, :lo12:.LC165 + ldr x1, [x19,64] + adrp x0, .LC134 + ldrh w3, [x19,56] + add x0, x0, :lo12:.LC134 mov w2, 4 bl rknand_print_hex - adrp x0, .LC166 - add x1, x19, 3240 - add x0, x0, :lo12:.LC166 + adrp x0, .LC135 + add x1, x19, 3280 + add x0, x0, :lo12:.LC135 mov w2, 2 mov w3, 256 bl rknand_print_hex - ldrh w0, [x19,3234] + ldrh w0, [x19,3228] mov w2, 2 - ldrb w3, [x19,3212] - ldr x1, [x19,3760] + ldrb w3, [x19,3196] + ldr x1, [x19,3800] mul w3, w0, w3 - adrp x0, .LC167 - add x0, x0, :lo12:.LC167 + adrp x0, .LC136 + add x0, x0, :lo12:.LC136 lsl w3, w3, 1 bl rknand_print_hex ldr x19, [sp,16] @@ -13516,33 +14693,33 @@ pm_ppa_update_check: mov w7, 1 stp x29, x30, [sp, -16]! add x29, sp, 0 - ldrh w4, [x5,3218] - ldrb w3, [x5,3216] + ldrh w4, [x5,3266] + ldrb w3, [x5,3264] sub w6, w6, w4 lsr w4, w2, w4 lsl w6, w7, w6 sub w6, w6, #1 and w4, w6, w4 udiv w4, w4, w3 - ldr x3, [x5,2840] + ldr x3, [x5,64] add x4, x3, x4, uxth 2 ldrb w3, [x4,2] ubfx x3, x3, 5, 3 cmp w3, 7 cset w4, eq - cbnz w4, .L1997 + cbnz w4, .L2236 cmp w3, w7 - bne .L1994 -.L1997: + bne .L2233 +.L2236: mov w3, w2 mov w2, w1 mov x1, x0 - adrp x0, .LC168 - add x0, x0, :lo12:.LC168 + adrp x0, .LC137 + add x0, x0, :lo12:.LC137 bl printk bl dump_ftl_info mov w4, -1 -.L1994: +.L2233: mov w0, w4 ldp x29, x30, [sp], 16 ret @@ -13558,126 +14735,126 @@ load_l2p_region: stp x23, x24, [sp,48] cmp w1, 31 uxth w21, w0 - bls .L2000 + bls .L2239 adrp x1, .LANCHOR3 - adrp x0, .LC34 + adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR3 - add x0, x0, :lo12:.LC34 - add x1, x1, 552 + add x0, x0, :lo12:.LC0 + add x1, x1, 440 mov w2, 30 bl printk -.L2001: - b .L2001 -.L2000: +.L2240: + b .L2240 +.L2239: adrp x20, .LANCHOR0 adrp x19, .LANCHOR7 add x20, x20, :lo12:.LANCHOR0 ldr x0, [x20,2800] ldrh w2, [x0,698] cmp w21, w2 - bls .L2002 - adrp x0, .LC169 + bls .L2241 + adrp x0, .LC138 mov w1, w21 - add x0, x0, :lo12:.LC169 + add x0, x0, :lo12:.LC138 add x19, x19, :lo12:.LANCHOR7 bl printk mov x0, 0 - ldrh w2, [x19,3154] + ldrh w2, [x19,3218] mov w1, 255 ldr x0, [x0,8] bl ftl_memset ldr x0, [x20,2800] ldrh w0, [x0,698] cmp w0, w21 - bcs .L2006 + bcs .L2245 adrp x1, .LANCHOR3 - adrp x0, .LC34 + adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR3 - add x0, x0, :lo12:.LC34 - add x1, x1, 552 + add x0, x0, :lo12:.LC0 + add x1, x1, 440 mov w2, 34 bl printk -.L2004: - b .L2004 -.L2002: +.L2243: + b .L2243 +.L2241: add x0, x0, x21, sxtw 2 sbfiz x1, x1, 4, 32 ldr w22, [x0,704] - add x0, x20, 3784 + add x0, x20, 3824 add x23, x0, x1 strh w21, [x0,x1] strh wzr, [x23,2] - cbnz w22, .L2005 + cbnz w22, .L2244 add x19, x19, :lo12:.LANCHOR7 ldr x0, [x23,8] mov w1, 255 - ldrh w2, [x19,3154] + ldrh w2, [x19,3218] bl ftl_memset - b .L2006 -.L2005: + b .L2245 +.L2244: add x24, x19, :lo12:.LANCHOR7 ldrb w3, [x20,2776] ldr x1, [x23,8] mov w0, w22 - ldr x2, [x24,3144] + ldr x2, [x24,3208] bl ftl_read_ppa_page mov w3, w0 - ldr x0, [x24,3144] + ldr x0, [x24,3208] ldr w2, [x0] cmp w2, w21 - beq .L2007 - adrp x0, .LC170 + beq .L2246 + adrp x0, .LC139 mov w4, w22 mov w1, w21 - add x0, x0, :lo12:.LC170 + add x0, x0, :lo12:.LC139 bl printk ldr x3, [x20,2800] - adrp x0, .LC171 - add x0, x0, :lo12:.LC171 + adrp x0, .LC140 + add x0, x0, :lo12:.LC140 mov w2, 4 add x1, x3, 704 ldrh w3, [x3,698] bl rknand_print_hex ldr x1, [x23,8] - adrp x0, .LC172 - add x0, x0, :lo12:.LC172 + adrp x0, .LC141 + add x0, x0, :lo12:.LC141 mov w2, 4 mov w3, 16 bl rknand_print_hex - ldr x1, [x24,3144] - adrp x0, .LC173 - add x0, x0, :lo12:.LC173 + ldr x1, [x24,3208] + adrp x0, .LC142 + add x0, x0, :lo12:.LC142 mov w2, 4 mov w3, 16 bl rknand_print_hex - ldrh w0, [x20,3218] + ldrh w0, [x20,3266] mov w1, 21 mov w2, 1 sub w1, w1, w0 lsr w22, w22, w0 lsl w1, w2, w1 - ldrb w0, [x20,3216] + ldrb w0, [x20,3264] sub w1, w1, #1 and w22, w1, w22 mov x1, 0 udiv w0, w22, w0 bl ftl_sblk_dump -.L2007: +.L2246: add x19, x19, :lo12:.LANCHOR7 - ldr x0, [x19,3144] + ldr x0, [x19,3208] ldr w0, [x0] cmp w0, w21 - beq .L2006 + beq .L2245 adrp x1, .LANCHOR3 - adrp x0, .LC34 + adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR3 - add x0, x0, :lo12:.LC34 - add x1, x1, 552 + add x0, x0, :lo12:.LC0 + add x1, x1, 440 mov w2, 55 bl printk -.L2008: - b .L2008 -.L2006: +.L2247: + b .L2247 +.L2245: mov w0, 0 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -13701,62 +14878,62 @@ pm_gc: add x20, x20, :lo12:.LANCHOR4 ldr x0, [x19,2800] ldrh w1, [x0,688] - ldrh w0, [x20,1040] + ldrh w0, [x20,1084] sub w0, w0, #1 cmp w1, w0 - blt .L2011 + blt .L2250 bl pm_free_sblk ldr x2, [x19,2800] - ldrh w1, [x20,1040] + ldrh w1, [x20,1084] ldrh w3, [x2,688] sub w1, w1, #1 cmp w3, w1 - blt .L2011 + blt .L2250 add x0, x2, x0, uxth 1 ldrh w21, [x0,416] mov w25, 65535 cmp w21, w25 - bne .L2013 + bne .L2252 adrp x1, .LANCHOR3 - adrp x0, .LC34 + adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR3 - add x0, x0, :lo12:.LC34 - add x1, x1, 568 + add x0, x0, :lo12:.LC0 + add x1, x1, 456 mov w2, 127 bl printk -.L2014: - b .L2014 -.L2013: +.L2253: + b .L2253 +.L2252: bl pm_select_ram_region uxth x20, w0 - add x19, x19, 3784 + add x19, x19, 3824 lsl x0, x20, 4 add x24, x19, x0 mov x22, x20 ldrh w0, [x19,x0] cmp w0, w25 - beq .L2015 + beq .L2254 ldr x1, [x24,8] - cbz x1, .L2015 + cbz x1, .L2254 ldrsh w2, [x24,2] - tbz w2, #31, .L2015 + tbz w2, #31, .L2254 bl pm_write_page ldrh w0, [x24,2] and w0, w0, 32767 strh w0, [x24,2] -.L2015: +.L2254: add x23, x23, :lo12:.LANCHOR0 mov w19, 0 - add x0, x23, 3784 + add x0, x23, 3824 mov w24, 21 mov w25, 1 add x20, x0, x20, lsl 4 -.L2016: +.L2255: ldr x0, [x23,2800] ldrh w1, [x0,698] cmp w1, w19 - bls .L2022 - ldrh w1, [x23,3218] + bls .L2261 + ldrh w1, [x23,3266] add x0, x0, x19, sxtw 2 ldr w0, [x0,704] lsr w0, w0, w1 @@ -13764,23 +14941,23 @@ pm_gc: lsl w1, w25, w1 sub w1, w1, #1 and w1, w0, w1 - ldrb w0, [x23,3216] + ldrb w0, [x23,3264] udiv w1, w1, w0 cmp w21, w1, uxth - bne .L2017 + bne .L2256 mov w1, w22 mov w0, w19 bl load_l2p_region ldr x1, [x20,8] mov w0, w19 bl pm_write_page -.L2017: +.L2256: add w19, w19, 1 uxth w19, w19 - b .L2016 -.L2022: + b .L2255 +.L2261: bl pm_free_sblk -.L2011: +.L2250: mov w0, 0 ldr x25, [sp,64] ldp x19, x20, [sp,16] @@ -13799,7 +14976,7 @@ pm_flush_id: stp x19, x20, [sp,16] adrp x19, .LANCHOR0 add x19, x19, :lo12:.LANCHOR0 - add x1, x19, 3784 + add x1, x19, 3824 add x20, x1, x0 ldrh w0, [x1,x0] ldr x1, [x20,8] @@ -13807,11 +14984,11 @@ pm_flush_id: ldrh w0, [x20,2] and w0, w0, 32767 strh w0, [x20,2] - ldr w0, [x19,3776] - cbz w0, .L2024 + ldr w0, [x19,3816] + cbz w0, .L2263 bl pm_gc - str wzr, [x19,3776] -.L2024: + str wzr, [x19,3816] +.L2263: mov w0, 0 ldp x19, x20, [sp,16] ldp x29, x30, [sp], 32 @@ -13827,17 +15004,17 @@ pm_flush: adrp x20, .LANCHOR0 mov x19, 0 add x20, x20, :lo12:.LANCHOR0 - add x20, x20, 3784 -.L2030: + add x20, x20, 3824 +.L2269: add x1, x20, x19, lsl 4 uxth w0, w19 ldrsh w1, [x1,2] - tbz w1, #31, .L2029 + tbz w1, #31, .L2268 bl pm_flush_id -.L2029: +.L2268: add x19, x19, 1 cmp x19, 32 - bne .L2030 + bne .L2269 mov w0, 0 ldp x19, x20, [sp,16] ldp x29, x30, [sp], 32 @@ -13884,34 +15061,34 @@ pm_init: stp x21, x22, [sp,32] stp x25, x26, [sp,64] stp x27, x28, [sp,80] - str wzr, [x20,3776] + str wzr, [x20,3816] bl ftl_malloc adrp x1, .LANCHOR7 - add x20, x20, 3784 + add x20, x20, 3824 add x2, x1, :lo12:.LANCHOR7 add x22, x20, 512 mov x21, x1 mov w24, -1 - str x0, [x2,3144] -.L2036: + str x0, [x2,3208] +.L2275: strh w24, [x20] strh wzr, [x20,2] - cbz w23, .L2035 + cbz w23, .L2274 add x0, x19, :lo12:.LANCHOR0 ldrb w0, [x0,2776] lsl w0, w0, 9 bl ftl_malloc str x0, [x20,8] -.L2035: +.L2274: add x20, x20, 16 cmp x20, x22 - bne .L2036 + bne .L2275 add x20, x19, :lo12:.LANCHOR0 add x1, x21, :lo12:.LANCHOR7 mov w4, 4 - ldr x25, [x1,3144] + ldr x25, [x1,3208] ldr x1, [x20,2800] - ldr x23, [x20,3792] + ldr x23, [x20,3832] mov x3, x25 ldrb w0, [x1,694] mov x2, x23 @@ -13922,25 +15099,25 @@ pm_init: mov w24, w21 ldrh w2, [x1,696] cmp w2, w21 - bgt .L2037 - adrp x0, .LC174 + bgt .L2276 + adrp x0, .LC143 ldrh w1, [x1,692] mov w3, w21 - add x0, x0, :lo12:.LC174 - adrp x26, .LC175 + add x0, x0, :lo12:.LC143 + adrp x26, .LC144 add w21, w21, 1 bl printk - add x26, x26, :lo12:.LC175 + add x26, x26, :lo12:.LC144 ldr x0, [x20,2800] ldrsh w20, [x0,696] -.L2038: +.L2277: cmp w20, w21 - bge .L2051 + bge .L2290 add x27, x19, :lo12:.LANCHOR0 mov x2, x23 mov x3, x25 ldr x0, [x27,2800] - ldrh w22, [x27,3230] + ldrh w22, [x27,3270] ldrb w4, [x27,2776] ldrh w1, [x0,692] ldrb w0, [x0,694] @@ -13958,36 +15135,36 @@ pm_init: ldr w1, [x25] bl printk cmp w28, 512 - beq .L2039 + beq .L2278 cmn w28, #1 - beq .L2039 + beq .L2278 ldr x1, [x27,2800] ldr w0, [x25] ldrh w2, [x1,698] cmp w0, w2 - bcs .L2039 + bcs .L2278 add x0, x1, x0, uxtw 2 str w22, [x0,704] -.L2039: +.L2278: add w20, w20, 1 sxth w20, w20 - b .L2038 -.L2051: + b .L2277 +.L2290: add x19, x19, :lo12:.LANCHOR0 - adrp x0, .LANCHOR6-256 + adrp x0, .LANCHOR6-192 mov w1, 1 add w24, w24, 1 - strb w1, [x0,#:lo12:.LANCHOR6-256] + strb w1, [x0,#:lo12:.LANCHOR6-192] ldr x0, [x19,2800] strh w24, [x0,696] bl pm_free_sblk - ldr x1, [x19,3792] + ldr x1, [x19,3832] mov w0, -1 bl pm_write_page - ldr x1, [x19,3792] + ldr x1, [x19,3832] mov w0, -1 bl pm_write_page -.L2037: +.L2276: bl pm_free_sblk bl pm_gc mov w0, 0 @@ -14017,7 +15194,7 @@ pm_log2phys: mov x19, 0 ldrb w4, [x3,2776] ldr w2, [x3,2784] - add x3, x3, 3784 + add x3, x3, 3824 lsl w20, w4, 7 lsl w24, w4, 7 cmp w0, w2 @@ -14025,85 +15202,85 @@ pm_log2phys: uxth w25, w20 msub w24, w25, w24, w0 uxth x24, w24 - bcc .L2064 - adrp x0, .LC176 + bcc .L2303 + adrp x0, .LC145 mov w1, w5 - add x0, x0, :lo12:.LC176 + add x0, x0, :lo12:.LC145 bl printk mov w0, -1 - b .L2054 -.L2068: + b .L2293 +.L2307: ldrh w0, [x3] cmp w0, w25 - beq .L2056 -.L2055: + beq .L2295 +.L2294: add w19, w19, 1 add x3, x3, 16 uxth x19, w19 cmp w19, 32 - beq .L2067 -.L2064: + beq .L2306 +.L2303: ldr x0, [x3,8] - cbnz x0, .L2068 - b .L2055 -.L2067: + cbnz x0, .L2307 + b .L2294 +.L2306: bl pm_select_ram_region uxth x19, w0 add x2, x21, :lo12:.LANCHOR0 sbfiz x3, x19, 4, 32 - add x2, x2, 3784 + add x2, x2, 3824 mov w1, w0 add x4, x2, x3 ldrh w3, [x2,x3] mov w2, 65535 cmp w3, w2 - bne .L2069 -.L2060: - adrp x0, .LANCHOR7+3156 - strb w19, [x0,#:lo12:.LANCHOR7+3156] + bne .L2308 +.L2299: + adrp x0, .LANCHOR7+3220 + strb w19, [x0,#:lo12:.LANCHOR7+3220] mov w0, w25 bl load_l2p_region -.L2056: - cbnz w23, .L2057 +.L2295: + cbnz w23, .L2296 add x0, x21, :lo12:.LANCHOR0 add x0, x0, x19, lsl 4 - ldr x0, [x0,3792] + ldr x0, [x0,3832] ldr w0, [x0,x24,lsl 2] str w0, [x22] - b .L2058 -.L2057: + b .L2297 +.L2296: add x0, x21, :lo12:.LANCHOR0 ldr w2, [x22] - add x0, x0, 3784 + add x0, x0, 3824 add x0, x0, x19, lsl 4 ldr x1, [x0,8] str w2, [x1,x24,lsl 2] ldrh w1, [x0,2] orr w1, w1, -32768 strh w1, [x0,2] - adrp x0, .LANCHOR4-56 - strb w20, [x0,#:lo12:.LANCHOR4-56] -.L2058: + adrp x0, .LANCHOR4-16 + strb w20, [x0,#:lo12:.LANCHOR4-16] +.L2297: add x21, x21, :lo12:.LANCHOR0 mov w2, 32767 - add x21, x21, 3784 + add x21, x21, 3824 mov w0, 0 add x19, x21, x19, lsl 4 ldrh w1, [x19,2] and w3, w1, 32767 cmp w3, w2 - beq .L2054 + beq .L2293 add w1, w1, 1 strh w1, [x19,2] - b .L2054 -.L2069: + b .L2293 +.L2308: ldrsh w2, [x4,2] - tbz w2, #31, .L2060 + tbz w2, #31, .L2299 str x1, [x29,88] bl pm_flush_id ldr x1, [x29,88] - b .L2060 -.L2054: + b .L2299 +.L2293: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -14122,34 +15299,34 @@ ftl_read_ahead: stp x21, x22, [sp,32] add x22, x20, :lo12:.LANCHOR0 stp x23, x24, [sp,48] - ldr w0, [x22,2812] + ldr w0, [x22,2820] cmn w0, #1 - beq .L2080 + beq .L2319 mov w0, 0 bl buf_alloc mov x19, x0 mov w1, -1 - cbz x0, .L2081 - ldr w21, [x22,2812] + cbz x0, .L2320 + ldr w21, [x22,2820] str w21, [x0,36] - str w1, [x22,2812] + str w1, [x22,2820] ldr x23, [x0,8] ldr x22, [x0,24] mov w0, w21 bl lpa_hash_get_ppa str w0, [x29,76] cmn w0, #1 - bne .L2073 + bne .L2312 mov w0, w21 add x1, x29, 76 mov w2, 0 bl pm_log2phys -.L2073: +.L2312: ldr w1, [x29,76] str w1, [x19,40] str w1, [x19,44] cmn w1, #1 - bne .L2074 + bne .L2313 add x20, x20, :lo12:.LANCHOR0 mov x0, x23 mov w1, 0 @@ -14159,35 +15336,35 @@ ftl_read_ahead: ldrb w0, [x19,2] orr w0, w0, 8 strb w0, [x19,2] - b .L2080 -.L2074: + b .L2319 +.L2313: mov x0, x19 mov w1, 1 bl sblk_read_page ldr w23, [x19,52] cmn w23, #1 - bne .L2075 + bne .L2314 ldrb w0, [x19,2] add x20, x20, :lo12:.LANCHOR0 and w0, w0, -9 strb w0, [x19,2] - ldr x1, [x20,2792] + ldr x1, [x20,80] ldr w0, [x1,552] add w0, w0, 1 str w0, [x1,552] - b .L2076 -.L2075: + b .L2315 +.L2314: cmp w23, 256 - bne .L2076 + bne .L2315 add x20, x20, :lo12:.LANCHOR0 mov w5, 21 mov w24, 1 ldr w4, [x29,76] ldr w2, [x19,36] - adrp x0, .LC177 - ldrh w3, [x20,3218] - add x0, x0, :lo12:.LC177 - ldrb w20, [x20,3216] + adrp x0, .LC146 + ldrh w3, [x20,3266] + add x0, x0, :lo12:.LC146 + ldrb w20, [x20,3264] sub w5, w5, w3 lsr w3, w4, w3 lsl w5, w24, w5 @@ -14201,42 +15378,42 @@ ftl_read_ahead: mov w1, w24 mov w2, 0 bl gc_add_sblk -.L2076: +.L2315: ldr w5, [x22,4] cmp w5, w21 - beq .L2077 - adrp x0, .LC178 + beq .L2316 + adrp x0, .LC147 ldrb w1, [x19,1] ldr w3, [x29,76] - add x0, x0, :lo12:.LC178 + add x0, x0, :lo12:.LC147 ldr w4, [x22] mov w2, w21 ldr w6, [x22,8] ldr w7, [x22,12] bl printk -.L2077: +.L2316: ldr w0, [x22,4] cmp w0, w21 cset w0, ne - cbnz w0, .L2083 + cbnz w0, .L2322 cmn w23, #1 - bne .L2071 -.L2083: + bne .L2310 +.L2322: adrp x1, .LANCHOR3 - adrp x0, .LC34 + adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR3 - add x0, x0, :lo12:.LC34 - add x1, x1, 576 - mov w2, 781 + add x0, x0, :lo12:.LC0 + add x1, x1, 464 + mov w2, 822 bl printk -.L2079: - b .L2079 -.L2081: +.L2318: + b .L2318 +.L2320: mov w0, w1 - b .L2071 -.L2080: + b .L2310 +.L2319: mov w0, 0 -.L2071: +.L2310: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -14244,134 +15421,849 @@ ftl_read_ahead: ret .size ftl_read_ahead, .-ftl_read_ahead .align 2 - .global gc_update_l2p_map - .type gc_update_l2p_map, %function -gc_update_l2p_map: - stp x29, x30, [sp, -144]! - add x29, sp, 0 - stp x19, x20, [sp,16] + .global gc_recovery + .type gc_recovery, %function +gc_recovery: + sub sp, sp, #208 + stp x29, x30, [sp,32] + add x29, sp, 32 + stp x19, x20, [sp,48] adrp x19, .LANCHOR0 - add x0, x19, :lo12:.LANCHOR0 - stp x21, x22, [sp,32] - stp x23, x24, [sp,48] - stp x25, x26, [sp,64] - stp x27, x28, [sp,80] - mov w21, 0 - ldr x25, [x0,2792] - mov w20, w21 - mov w24, w21 - bl timer_get_time - add x26, x25, 80 -.L2086: - add x0, x19, :lo12:.LANCHOR0 - ldrh w1, [x0,3234] - cmp w20, w1 - bge .L2096 - lsl w0, w20, 1 - mov w23, 0 + stp x23, x24, [sp,80] + add x24, x19, :lo12:.LANCHOR0 + stp x21, x22, [sp,64] + stp x25, x26, [sp,96] + stp x27, x28, [sp,112] + adrp x22, .LANCHOR4 + strb wzr, [x24,3193] + add x0, x22, :lo12:.LANCHOR4 + ldr x20, [x24,80] + add x21, x20, 80 + strb wzr, [x0,1050] + bl gc_init + ldrh w1, [x20,80] + mov w0, 65535 + str x22, [x29,152] + cmp w1, w0 + ldr x0, [x24,80] + beq .L2325 + mov w1, -1 + strh w1, [x0,130] + mov w0, 1 + bl buf_alloc + mov x23, x0 + ldrb w0, [x21,9] + ldrh w1, [x24,3270] sub w0, w0, #1 - str w0, [x29,124] -.L2097: - ldrb w0, [x26,9] - cmp w23, w0 - bge .L2094 - sxtw x0, w23 - mov w22, 1 - str x0, [x29,112] -.L2095: + add x0, x21, x0, sxtw 1 + ldrh w0, [x0,16] + mul w0, w0, w1 + ldrb w1, [x24,3177] + str w0, [x29,168] + cmp w1, 3 + bne .L2326 + ldrh w1, [x24,3228] + sub w1, w1, #1 + add w0, w1, w0 + orr w0, w0, 50331648 + b .L2372 +.L2326: + cmp w1, 2 + bne .L2327 + ldrh w1, [x24,3228] + add w0, w0, w1, lsl 1 + sub w0, w0, #1 + orr w0, w0, 33554432 +.L2372: + str w0, [x23,40] +.L2327: + mov x0, x23 + mov w1, 1 + bl sblk_read_page + ldr w0, [x23,52] + cmp w0, 512 + beq .L2328 + cmn w0, #1 + beq .L2328 + ldr x0, [x23,24] + ldr w1, [x0] + mov w0, 15555 + movk w0, 0xf55f, lsl 16 + cmp w1, w0 + beq .L2329 +.L2328: + mov x0, x23 + bl buf_free + ldr x7, [x23,24] + ldr x6, [x23,8] + ldr w0, [x7,4] + str w0, [sp] + ldr w0, [x7,8] + str w0, [sp,8] + ldr w0, [x7,12] + str w0, [sp,16] + adrp x0, .LC148 + add x0, x0, :lo12:.LC148 + ldr w3, [x6] + ldr w4, [x6,4] + ldr w5, [x6,8] + ldr w1, [x23,40] + ldr w2, [x23,52] + ldr w6, [x6,12] + ldr w7, [x7] + bl printk + b .L2375 +.L2329: + add x24, x19, :lo12:.LANCHOR0 + ldr x0, [x29,152] + ldr x1, [x23,8] + add x25, x0, :lo12:.LANCHOR4 + ldrb w2, [x24,3196] + ldrh w0, [x24,3194] + mul w2, w0, w2 + ldr x0, [x25,1056] + lsl w2, w2, 2 + bl ftl_memcpy + ldrh w0, [x24,3194] + ldrb w2, [x24,3196] + ldr x1, [x23,8] + mul w2, w0, w2 + add x1, x1, x2, sxtw 2 + ldr x0, [x25,1064] + lsl w2, w2, 2 + bl ftl_memcpy + ldrb w27, [x24,3177] + ldrh w26, [x24,3228] + cmp w27, 2 + bne .L2331 + lsl w26, w26, 1 + mov w27, 1 +.L2331: + mov w22, 0 + adrp x24, .LC149 + add x0, x24, :lo12:.LC149 + mov w25, w22 + str x0, [x29,128] + b .L2332 +.L2377: + ldr x0, [x0,1064] + ldr w1, [x0,x12] + ldr w0, [x7,8] + cmp w1, w0 + bne .L2336 +.L2361: + add w25, w25, 1 + add w28, w28, 1 +.L2340: + cmp w28, w27 + bhi .L2376 + ldr x0, [x29,144] + add x1, x19, :lo12:.LANCHOR0 + add x0, x0, 8 + ldrh w2, [x1,3270] + ldrb w1, [x1,3177] + ldrh w0, [x21,x0,lsl 1] + cmp w1, 3 + mul w0, w0, w2 + str w0, [x29,168] + bne .L2333 + add w0, w0, w22 + orr w0, w0, w28, lsl 24 +.L2373: + str w0, [x23,40] + mov w1, 1 + mov x0, x23 + bl sblk_read_page + ldr x0, [x29,152] + sbfiz x12, x25, 2, 32 + ldr x7, [x23,24] + add x0, x0, :lo12:.LANCHOR4 + ldr w6, [x7,4] + ldr x1, [x0,1056] + ldr w3, [x1,x12] + cmp w3, w6 + beq .L2377 +.L2336: + ldr x0, [x29,152] + str x12, [x29,120] + add x13, x0, :lo12:.LANCHOR4 + ldr w0, [x7,12] + str x13, [x29,112] + ldr x4, [x13,1064] + str w0, [sp] + ldr x0, [x29,128] + ldr w4, [x4,x12] + ldr w5, [x7] + ldr w1, [x23,40] + ldr w2, [x23,52] + ldr w7, [x7,8] + bl printk + ldr x13, [x29,112] + ldr x12, [x29,120] + ldr x0, [x13,1056] + ldr w0, [x0,x12] + cmn w0, #1 + beq .L2361 + mov x0, x23 + bl buf_free +.L2375: add x0, x19, :lo12:.LANCHOR0 - ldrb w0, [x0,3193] - cmp w22, w0 - bgt .L2102 - adrp x1, .LANCHOR4 - sbfiz x0, x24, 2, 32 + ldrh w2, [x20,80] + mov w28, 0 + ldr x1, [x0,72] + strh wzr, [x1,x2,lsl 1] + ldr x0, [x0,80] + ldrh w1, [x20,80] + strh w1, [x0,130] + b .L2330 +.L2339: + add w22, w22, 1 +.L2332: + cmp w22, w26 + beq .L2341 + sub w0, w22, #1 + mov w24, 0 + str w0, [x29,140] +.L2342: + ldrb w0, [x21,9] + cmp w24, w0 + bge .L2339 + sxtw x0, w24 + mov w28, 1 + str x0, [x29,144] + b .L2340 +.L2333: + cmp w1, 2 + bne .L2335 + ldr w1, [x29,140] + add w0, w0, w1 + add w0, w0, w28 + orr w0, w0, 33554432 + b .L2373 +.L2335: + add w0, w0, w22 + b .L2373 +.L2376: + add w24, w24, 1 + b .L2342 +.L2341: + mov x0, x23 + mov w28, 0 + mov w23, w28 + bl buf_free + str w28, [x29,144] + add x0, x19, :lo12:.LANCHOR0 + ldrb w1, [x21,9] + ldrh w3, [x20,80] + ldr x2, [x0,72] + ldrh w0, [x0,3194] + mul w0, w1, w0 + strh w0, [x2,x3,lsl 1] + adrp x0, .LC150 + add x0, x0, :lo12:.LC150 + str x0, [x29,104] +.L2343: + cmp w23, w26 + beq .L2356 + sub w0, w23, #1 + mov w25, 0 + str w0, [x29,112] +.L2357: + ldrb w0, [x21,9] + cmp w25, w0 + bge .L2354 + sxtw x0, w25 + mov w24, 1 + str x0, [x29,120] +.L2355: + cmp w24, w27 + bhi .L2378 + ldr x1, [x29,152] + ldr w0, [x29,144] add x1, x1, :lo12:.LANCHOR4 - ldr x2, [x1,1016] - ldr w27, [x2,x0] - cmn w27, #1 - beq .L2087 - ldr x1, [x1,1024] - ldr w28, [x1,x0] - mov w0, w27 - bl lpa_hash_get_ppa + sbfiz x0, x0, 2, 32 + ldr x2, [x1,1056] + ldr w22, [x2,x0] + cmn w22, #1 + beq .L2344 + ldr x1, [x1,1064] + ldr w0, [x1,x0] str w0, [x29,140] + mov w0, w22 + bl lpa_hash_get_ppa + str w0, [x29,172] cmn w0, #1 - bne .L2088 - mov w0, w27 - add x1, x29, 140 + bne .L2345 + mov w0, w22 + add x1, x29, 172 mov w2, 0 bl pm_log2phys -.L2088: - ldr w3, [x29,140] - cmp w3, w28 - bne .L2089 - ldr x0, [x29,112] +.L2345: + ldr x0, [x29,120] add x0, x0, 8 - ldrh w1, [x26,x0,lsl 1] + ldrh w3, [x21,x0,lsl 1] add x0, x19, :lo12:.LANCHOR0 - ldrh w2, [x0,3230] - ldrb w0, [x0,3193] + ldrh w1, [x0,3270] + ldrb w0, [x0,3177] cmp w0, 3 - mul w1, w1, w2 - bne .L2090 - add w1, w1, w20 - orr w1, w1, w22, lsl 24 - b .L2101 -.L2090: + mul w3, w3, w1 + bne .L2346 + add w3, w3, w23 + orr w3, w3, w24, lsl 24 + b .L2374 +.L2346: cmp w0, 2 - bne .L2092 - ldr w0, [x29,124] - add w1, w1, w0 - add w1, w1, w22 - orr w1, w1, 33554432 - b .L2101 -.L2092: - add w1, w1, w20 -.L2101: - str w1, [x29,136] + bne .L2348 + ldr w0, [x29,112] + add w3, w3, w0 + add w3, w3, w24 + orr w3, w3, 33554432 + b .L2374 +.L2348: + add w3, w3, w23 +.L2374: + add x0, x19, :lo12:.LANCHOR0 + str w3, [x29,168] + ldr w1, [x29,140] + mov w4, 21 mov w2, 1 - add x1, x29, 136 - mov w0, w27 - str x3, [x29,104] - add w21, w21, 1 - bl pm_log2phys - add x2, x19, :lo12:.LANCHOR0 - mov w1, 21 - mov w3, 1 - ldrh w0, [x2,3218] - sub w1, w1, w0 - lsl w1, w3, w1 - ldr x3, [x29,104] - sub w1, w1, #1 - lsr w3, w3, w0 - ldrb w0, [x2,3216] + ldrh w3, [x0,3266] + ldrb w0, [x0,3264] + lsr w1, w1, w3 + sub w3, w4, w3 + lsl w3, w2, w3 + sub w3, w3, #1 and w3, w1, w3 - udiv w0, w3, w0 + ldr w1, [x29,140] + udiv w3, w3, w0 + uxth w0, w3 + str w0, [x29,128] + ldr w0, [x29,172] + cmp w0, w1 + bne .L2349 + ldr x0, [x29,104] + mov w1, w22 + ldr w2, [x29,168] + bl pm_ppa_update_check + cbz w0, .L2350 +.L2371: + b .L2371 +.L2350: + mov w0, w22 + add x1, x29, 168 + mov w2, 1 + add w28, w28, 1 + bl pm_log2phys + ldrh w0, [x29,128] bl ftl_vpn_decrement -.L2089: + b .L2352 +.L2349: + ldr w1, [x29,168] + cmp w0, w1 + csinc w28, w28, w28, ne +.L2352: + ldr w0, [x29,144] + add x2, x19, :lo12:.LANCHOR0 + add w0, w0, 1 + str w0, [x29,144] + ldr w0, [x29,128] + ldr x1, [x2,64] + add x1, x1, x0, lsl 2 + ldrb w1, [x1,2] + ands w1, w1, 224 + bne .L2344 + lsl x0, x0, 1 + ldr x2, [x2,72] + ldrh w3, [x2,x0] + cbz w3, .L2344 + strh w1, [x2,x0] +.L2344: add w24, w24, 1 - bl timer_get_time -.L2087: - add w22, w22, 1 - b .L2095 -.L2102: + b .L2355 +.L2378: + add w25, w25, 1 + b .L2357 +.L2354: add w23, w23, 1 - b .L2097 -.L2094: - add w20, w20, 1 - b .L2086 -.L2096: - ldrh w1, [x25,80] - ldr x0, [x0,2832] - strh w21, [x0,x1,lsl 1] + b .L2343 +.L2356: + add x0, x19, :lo12:.LANCHOR0 + ldrh w1, [x20,80] + ldr x0, [x0,72] + strh w28, [x0,x1,lsl 1] +.L2330: + ldrh w1, [x20,80] + adrp x0, .LC151 + mov w2, w28 + add x0, x0, :lo12:.LC151 + bl printk + mov w0, -1 + strh w0, [x20,80] + bl pm_flush + bl ftl_ext_info_flush + add x0, x19, :lo12:.LANCHOR0 + mov w1, 65535 + ldr x0, [x0,80] + ldrh w0, [x0,130] + cmp w0, w1 + beq .L2358 + bl ftl_free_sblk +.L2358: + add x19, x19, :lo12:.LANCHOR0 + mov w0, -1 + ldr x1, [x19,2800] + strh w0, [x1,126] + ldr x1, [x19,80] + strh w0, [x1,130] + mov w0, 0 + bl ftl_info_flush + b .L2324 +.L2325: + ldrh w0, [x0,130] + cmp w0, w1 + beq .L2324 + ldr x1, [x24,2800] + ldrh w1, [x1,126] + cmp w1, w0 + bne .L2360 + bl pm_flush + ldr x0, [x24,80] + ldrh w0, [x0,130] + bl ftl_free_sblk + ldr x0, [x24,2800] + mov w1, -1 + strh w1, [x0,126] + mov w0, 0 + bl ftl_info_flush +.L2360: + add x19, x19, :lo12:.LANCHOR0 + mov w1, -1 + ldr x0, [x19,80] + strh w1, [x0,130] +.L2324: + sub sp, x29, #32 + ldp x19, x20, [sp,48] + ldp x21, x22, [sp,64] + ldp x23, x24, [sp,80] + ldp x25, x26, [sp,96] + ldp x27, x28, [sp,112] + ldp x29, x30, [sp,32] + add sp, sp, 208 + ret + .size gc_recovery, .-gc_recovery + .align 2 + .global zftl_init + .type zftl_init, %function +zftl_init: + stp x29, x30, [sp, -48]! + adrp x1, .LANCHOR5+449 + mov w0, -1 + add x29, sp, 0 + stp x19, x20, [sp,16] + adrp x19, .LANCHOR0 + str x21, [sp,32] + add x20, x19, :lo12:.LANCHOR0 + strb w0, [x1,#:lo12:.LANCHOR5+449] + adrp x1, .LC9 + add x1, x1, :lo12:.LC9 + strb w0, [x20,2818] + mov w0, -1 + str w0, [x20,2820] + adrp x0, .LC8 + add x0, x0, :lo12:.LC8 + strb wzr, [x20,2819] + strb wzr, [x20,3812] + bl printk + adrp x5, .LANCHOR2 + ldrb w4, [x20,152] + add x5, x5, :lo12:.LANCHOR2 + adrp x8, .LANCHOR7 + strb w4, [x20,3272] + add x3, x8, :lo12:.LANCHOR7 + ldrb w2, [x5,381] + ldrb w6, [x5,380] + ldrh w1, [x5,378] + mul w4, w2, w4 + ldrb w0, [x5,377] + ldrh w7, [x5,382] + sdiv w9, w1, w6 + ldrh w5, [x20,166] + strb w2, [x20,3264] + uxtb w4, w4 + strb w6, [x20,3177] + ubfiz w11, w0, 9, 7 + strb w0, [x20,2776] + mov w2, 0 + strh w1, [x20,3194] + strh w9, [x20,3228] + strb w4, [x20,3196] + strh w7, [x20,56] + strh w11, [x3,3218] + mov w3, 1 + strh w5, [x20,3270] + mov x20, x8 +.L2380: + cmp w3, w5 + bhi .L2400 + add w2, w2, 1 + lsl w3, w3, 1 + uxth w2, w2 + b .L2380 +.L2400: + add x8, x19, :lo12:.LANCHOR0 + sub w2, w2, #1 + mul w3, w0, w1 + add x10, x20, :lo12:.LANCHOR7 + strh w2, [x8,3266] + mov w2, 57344 + movk w2, 0x1c, lsl 16 + mul w5, w3, w7 + mul w2, w4, w2 + lsr w1, w5, 21 + mul w5, w5, w4 + mul w2, w2, w1 + str w2, [x8,4] + add w2, w2, 24576 + str w5, [x8,2780] + adrp x5, .LANCHOR4 + str w2, [x10,3224] + udiv w1, w2, w0 + sub w0, w11, #1 + str w1, [x8,2784] + add w0, w0, w1, lsl 2 + mul w1, w9, w4 + udiv w0, w0, w11 + add x11, x5, :lo12:.LANCHOR4 + strh w0, [x10,3202] + ubfiz w0, w0, 4, 16 + sdiv w0, w0, w1 + mul w1, w3, w4 + strh w0, [x11,1084] + sub w1, w1, #1 + add w0, w7, w7, lsl 1 + asr w0, w0, 2 + strh w0, [x10,3228] + udiv w2, w2, w1 + lsr w0, w7, 4 + cmp w0, 79 + strh w0, [x8,3232] + add w2, w2, 8 + strh w2, [x8,3234] + mov x0, x5 + bhi .L2382 + mov w1, 80 + strh w1, [x8,3232] +.L2382: + add x1, x20, :lo12:.LANCHOR7 + mov w2, 4000 + cmp w6, 2 + strh w2, [x1,3230] + mov w2, 50 + strh w2, [x1,3232] + add x1, x0, :lo12:.LANCHOR4 + mov w2, 1024 + strh w2, [x1,1080] + mov w2, 64 + strh w2, [x1,1082] + beq .L2383 + add x1, x19, :lo12:.LANCHOR0 + ldrb w1, [x1,3192] + cbz w1, .L2384 +.L2383: + add x1, x20, :lo12:.LANCHOR7 + add x0, x0, :lo12:.LANCHOR4 + mov w2, 150 + strh w2, [x1,3232] + mov w2, 128 + strh w2, [x0,1082] + add x2, x19, :lo12:.LANCHOR0 + ldrb w2, [x2,164] + cbnz w2, .L2384 + mov w2, 600 + strh w2, [x1,3230] + mov w1, 512 + strh w1, [x0,1080] +.L2384: + add x19, x19, :lo12:.LANCHOR0 + bl buf_init + mov w0, 6 + adrp x21, .LANCHOR6 + add x21, x21, :lo12:.LANCHOR6 + add x20, x20, :lo12:.LANCHOR7 + ldrh w1, [x19,56] + mul w0, w1, w0 + bl ftl_malloc + str x0, [x19,8] + ldrb w1, [x19,3196] + ldrh w0, [x19,3228] + mul w0, w0, w1 + lsl w0, w0, 2 + bl ftl_malloc + str x0, [x19,3800] + ldrb w1, [x19,3196] + sub x3, x21, #128 + ldrh w0, [x19,3228] + str x3, [x19,3792] + mul w0, w0, w1 + lsl w2, w0, 1 + add x1, x3, x2, sxtw 2 + str x1, [x19,72] + ldrh w1, [x19,56] + add w0, w1, w0, lsl 2 + add w2, w2, w1, lsr 1 + add x2, x3, x2, sxtw 2 + lsl w0, w0, 1 + str x2, [x19,80] + ldrh w2, [x20,3218] + add w0, w0, 612 + cmp w0, w2 + bhi .L2387 + ldrh w0, [x20,3202] + lsl w0, w0, 2 + add w1, w0, w1, lsl 2 + add w1, w1, 704 + cmp w1, w2 + bls .L2386 +.L2387: +.L2388: + b .L2388 +.L2386: + bl sblk_init + bl ftl_info_blk_init + cmn w0, #1 + beq .L2389 + bl ftl_ext_info_init + mov w0, 1 + bl pm_init + bl lpa_rebuild_hash + ldr x0, [x19,80] + mov x1, 0 + add x0, x0, 16 + bl ftl_open_sblk_recovery + ldr x1, [x19,80] + add x0, x1, 48 + add x1, x1, 16 + bl ftl_open_sblk_recovery + ldr x1, [x19,2800] + ldr w0, [x1,8] + add w0, w0, 16 + str w0, [x1,8] + ldr x0, [x19,80] + add x0, x0, 16 + bl ftl_info_data_recovery + ldr x0, [x19,80] + add x0, x0, 48 + bl ftl_info_data_recovery + ldr x0, [x19,80] + add x0, x0, 80 + bl ftl_info_data_recovery + bl gc_recovery + bl pm_flush + mov w0, 1 + bl ftl_total_vpn_update + ldrb w0, [x21,-192] + cbz w0, .L2390 + ldr x1, [x19,2800] + ldr w0, [x1,68] + add w0, w0, 1 + str w0, [x1,68] +.L2390: + bl ftl_ext_info_flush + mov w0, 0 + bl ftl_info_flush + bl print_ftl_debug_info + mov w0, 0 +.L2389: 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 + ldr x21, [sp,32] + ldp x29, x30, [sp], 48 + ret + .size zftl_init, .-zftl_init + .align 2 + .global rk_ftl_init + .type rk_ftl_init, %function +rk_ftl_init: + stp x29, x30, [sp, -48]! + adrp x0, jiffies + add x29, sp, 0 + stp x19, x20, [sp,16] + adrp x20, .LANCHOR4 + ldr x0, [x0,#:lo12:jiffies] + add x19, x20, :lo12:.LANCHOR4 + str x21, [sp,32] + str x0, [x19,1120] + mov w0, 136 + bl ftl_malloc + str x0, [x19,1128] + cbnz x0, .L2402 +.L2404: + mov w0, -1 + b .L2403 +.L2402: + adrp x21, .LANCHOR7 + mov w0, 2048 + add x21, x21, :lo12:.LANCHOR7 + bl ftl_malloc + str xzr, [x19,1136] + add x1, x21, 3248 + str x0, [x21,3240] + add x0, x19, 1136 + str xzr, [x21,3248] + bl rknand_get_reg_addr + ldr x0, [x19,1136] + cbz x0, .L2404 + bl rk_nandc_irq_init + mov w1, 0 + ldr x0, [x21,3240] + mov w2, w1 + mov w3, 2048 + bl flash_sram_load_store + bl rknand_flash_cs_init + ldr x0, [x19,1128] + adrp x1, zftl_deinit + add x1, x1, :lo12:zftl_deinit + str x1, [x0,80] + adrp x1, zftl_cache_flush + add x1, x1, :lo12:zftl_cache_flush + str x1, [x0,64] + adrp x1, zftl_flash_suspend + add x1, x1, :lo12:zftl_flash_suspend + str x1, [x0,88] + adrp x1, zftl_flash_resume + add x1, x1, :lo12:zftl_flash_resume + str x1, [x0,96] + adrp x1, zftl_get_density + add x1, x1, :lo12:zftl_get_density + str x1, [x0,72] + adrp x1, zftl_read_flash_info + add x1, x1, :lo12:zftl_read_flash_info + str x1, [x0,112] + adrp x1, zftl_read + add x1, x1, :lo12:zftl_read + str x1, [x0,40] + adrp x1, zftl_write + add x1, x1, :lo12:zftl_write + str x1, [x0,48] + adrp x1, zftl_sys_read + add x1, x1, :lo12:zftl_sys_read + str x1, [x0,24] + adrp x1, zftl_sys_write + add x1, x1, :lo12:zftl_sys_write + str x1, [x0,32] + adrp x1, zftl_vendor_read + add x1, x1, :lo12:zftl_vendor_read + str x1, [x0,8] + adrp x1, zftl_vendor_write + add x1, x1, :lo12:zftl_vendor_write + str x1, [x0,16] + adrp x1, zftl_nandc_get_irq_status + add x1, x1, :lo12:zftl_nandc_get_irq_status + str x1, [x0,120] + adrp x1, zftl_proc_ftl_read + add x1, x1, :lo12:zftl_proc_ftl_read + str x1, [x0,128] + adrp x1, zftl_do_gc + add x1, x1, :lo12:zftl_do_gc + str x1, [x0,104] + adrp x1, zftl_discard + add x1, x1, :lo12:zftl_discard + str x1, [x0,56] + ldr x0, [x19,1136] + bl nand_flash_init + cbnz w0, .L2405 + bl zftl_init + b .L2412 +.L2405: + ldr x0, [x19,1128] + adrp x1, ftl_deinit + add x1, x1, :lo12:ftl_deinit + str x1, [x0,80] + adrp x1, ftl_cache_flush + add x1, x1, :lo12:ftl_cache_flush + str x1, [x0,64] + adrp x1, ftl_flash_suspend + add x1, x1, :lo12:ftl_flash_suspend + str x1, [x0,88] + adrp x1, ftl_flash_resume + add x1, x1, :lo12:ftl_flash_resume + str x1, [x0,96] + adrp x1, ftl_get_density + add x1, x1, :lo12:ftl_get_density + str x1, [x0,72] + adrp x1, ftl_read_flash_info + add x1, x1, :lo12:ftl_read_flash_info + str x1, [x0,112] + adrp x1, ftl_read + add x1, x1, :lo12:ftl_read + str x1, [x0,40] + adrp x1, ftl_write + add x1, x1, :lo12:ftl_write + str x1, [x0,48] + adrp x1, ftl_sys_read + add x1, x1, :lo12:ftl_sys_read + str x1, [x0,24] + adrp x1, ftl_sys_write + add x1, x1, :lo12:ftl_sys_write + str x1, [x0,32] + adrp x1, ftl_vendor_read + add x1, x1, :lo12:ftl_vendor_read + str x1, [x0,8] + adrp x1, ftl_vendor_write + add x1, x1, :lo12:ftl_vendor_write + str x1, [x0,16] + adrp x1, ftl_nandc_get_irq_status + add x1, x1, :lo12:ftl_nandc_get_irq_status + str x1, [x0,120] + adrp x1, ftl_proc_ftl_read + add x1, x1, :lo12:ftl_proc_ftl_read + str x1, [x0,128] + adrp x1, ftl_do_gc + add x1, x1, :lo12:ftl_do_gc + str x1, [x0,104] + adrp x1, ftl_discard + add x1, x1, :lo12:ftl_discard + str x1, [x0,56] + ldr x0, [x19,1136] + bl FlashInit + mov w19, w0 + adrp x0, .LANCHOR2 + adrp x1, gNandParaInfo + add x0, x0, :lo12:.LANCHOR2 + add x1, x1, :lo12:gNandParaInfo + add x0, x0, 368 + mov w2, 32 + bl ftl_memcpy + adrp x0, g_nandc_version_data + ldr w1, [x0,#:lo12:g_nandc_version_data] + mov w0, 12336 + movk w0, 0x5638, lsl 16 + cmp w1, w0 + bne .L2407 + adrp x0, gFlashSlcMode + ldrb w0, [x0,#:lo12:gFlashSlcMode] + cbnz w0, .L2408 +.L2407: + add x20, x20, :lo12:.LANCHOR4 + adrp x0, .LANCHOR0+164 + strb wzr, [x20,1208] + strb wzr, [x0,#:lo12:.LANCHOR0+164] +.L2408: + cbnz w19, .L2406 + bl FtlInit +.L2412: + mov w19, w0 +.L2406: + adrp x0, .LC152 + mov w1, w19 + add x0, x0, :lo12:.LC152 + bl printk + mov w0, w19 +.L2403: + ldp x19, x20, [sp,16] + ldr x21, [sp,32] + ldp x29, x30, [sp], 48 ret - .size gc_update_l2p_map, .-gc_update_l2p_map + .size rk_ftl_init, .-rk_ftl_init .align 2 .global gc_update_l2p_map_new .type gc_update_l2p_map_new, %function @@ -14386,8 +16278,8 @@ gc_update_l2p_map_new: stp x21, x22, [sp,32] stp x23, x24, [sp,48] stp x25, x26, [sp,64] - ldr x24, [x0,2792] - ldrh w1, [x0,3210] + ldr x24, [x0,80] + ldrh w1, [x0,3194] add x28, x24, 80 ldrb w0, [x28,9] mul w0, w1, w0 @@ -14395,40 +16287,40 @@ gc_update_l2p_map_new: bl timer_get_time add x0, x20, :lo12:.LANCHOR2 ldr w0, [x0,400] - tbz x0, 8, .L2104 - adrp x0, .LC179 + tbz x0, 8, .L2414 + adrp x0, .LC153 ldrh w1, [x24,80] - add x0, x0, :lo12:.LC179 + add x0, x0, :lo12:.LC153 bl printk -.L2104: +.L2414: add x0, x19, :lo12:.LANCHOR0 ldrh w1, [x24,80] ldr w2, [x29,140] mov w23, 0 mov w21, w23 - ldr x0, [x0,2832] + ldr x0, [x0,72] sub w2, w2, #1 strh w2, [x0,x1,lsl 1] - adrp x0, .LC182 - add x0, x0, :lo12:.LC182 + adrp x0, .LC156 + add x0, x0, :lo12:.LC156 str x0, [x29,120] - adrp x0, .LC181 - add x0, x0, :lo12:.LC181 + adrp x0, .LC155 + add x0, x0, :lo12:.LC155 str x0, [x29,112] - adrp x0, .LC180 - add x0, x0, :lo12:.LC180 + adrp x0, .LC154 + add x0, x0, :lo12:.LC154 str x0, [x29,104] -.L2105: +.L2415: ldr w0, [x29,140] cmp w21, w0 - beq .L2140 + beq .L2450 adrp x22, .LANCHOR4 str x22, [x29,128] add x0, x22, :lo12:.LANCHOR4 - ldr x0, [x0,1016] + ldr x0, [x0,1056] ldr w2, [x0,w21,sxtw 2] cmn w2, #1 - beq .L2106 + beq .L2416 add x0, x19, :lo12:.LANCHOR0 ldrb w0, [x0,2776] lsl w0, w0, 7 @@ -14437,49 +16329,49 @@ gc_update_l2p_map_new: str w0, [x29,136] add x0, x20, :lo12:.LANCHOR2 ldr w0, [x0,400] - tbz x0, 8, .L2107 + tbz x0, 8, .L2417 ldr x0, [x29,104] mov w3, w21 ldr w1, [x29,136] bl printk -.L2107: +.L2417: mov w25, w21 -.L2113: +.L2423: ldr x0, [x29,128] sbfiz x26, x25, 2, 32 add x1, x0, :lo12:.LANCHOR4 - ldr x0, [x1,1016] + ldr x0, [x1,1056] ldr w22, [x0,x26] cmn w22, #1 - beq .L2108 + beq .L2418 add x0, x19, :lo12:.LANCHOR0 ldr w2, [x29,136] ldrb w0, [x0,2776] lsl w0, w0, 7 udiv w0, w22, w0 cmp w2, w0, uxth - bne .L2108 - ldr x0, [x1,1024] + bne .L2418 + ldr x0, [x1,1064] ldr w27, [x0,x26] mov w0, w22 bl lpa_hash_get_ppa str w0, [x29,156] cmn w0, #1 - bne .L2109 + bne .L2419 mov w0, w22 add x1, x29, 156 mov w2, 0 bl pm_log2phys -.L2109: +.L2419: ldr w3, [x29,156] cmp w3, w27 - bne .L2110 + bne .L2420 ldr x0, [x29,128] add x1, x29, 152 mov w2, 1 add w23, w23, 1 add x0, x0, :lo12:.LANCHOR4 - ldr x0, [x0,1032] + ldr x0, [x0,1072] ldr w0, [x0,x26] str w0, [x29,152] mov w0, w22 @@ -14487,13 +16379,13 @@ gc_update_l2p_map_new: add x1, x19, :lo12:.LANCHOR0 mov w2, 21 mov w0, 1 - ldrh w3, [x1,3218] + ldrh w3, [x1,3266] sub w2, w2, w3 lsr w3, w27, w3 lsl w2, w0, w2 sub w2, w2, #1 and w3, w2, w3 - ldrb w2, [x1,3216] + ldrb w2, [x1,3264] udiv w2, w3, w2 uxth w2, w2 str x2, [x29,96] @@ -14502,73 +16394,75 @@ gc_update_l2p_map_new: ldrh w0, [x28] ldr x2, [x29,96] cmp w0, w2 - bne .L2111 + bne .L2421 add x0, x20, :lo12:.LANCHOR2 ldr w0, [x0,400] - tbz x0, 8, .L2111 + tbz x0, 8, .L2421 ldr x0, [x29,112] mov w1, w22 ldr w3, [x29,156] mov w2, w27 bl printk - b .L2111 -.L2110: + b .L2421 +.L2420: add x0, x20, :lo12:.LANCHOR2 ldr w0, [x0,400] - tbz x0, 8, .L2112 + tbz x0, 8, .L2422 ldr x0, [x29,120] mov w1, w22 mov w2, w27 bl printk -.L2112: +.L2422: ldrh w0, [x28] bl ftl_vpn_decrement -.L2111: +.L2421: ldr x0, [x29,128] mov w1, -1 add x0, x0, :lo12:.LANCHOR4 - ldr x0, [x0,1016] + ldr x0, [x0,1056] str w1, [x0,x26] bl timer_get_time -.L2108: +.L2418: ldr w0, [x29,140] add w25, w25, 1 cmp w25, w0 - bne .L2113 -.L2106: + bne .L2423 +.L2416: add w21, w21, 1 - b .L2105 -.L2140: + b .L2415 +.L2450: add x20, x20, :lo12:.LANCHOR2 ldr w0, [x20,400] - tbz x0, 8, .L2115 + tbz x0, 8, .L2425 add x0, x19, :lo12:.LANCHOR0 ldrh w3, [x24,80] - ldr x1, [x0,2792] - ldr x2, [x0,2832] - adrp x0, .LC183 - add x0, x0, :lo12:.LC183 + ldr x1, [x0,80] + ldr x2, [x0,72] + adrp x0, .LC157 + add x0, x0, :lo12:.LC157 ldrh w1, [x1,80] ldrh w2, [x2,x3,lsl 1] mov w3, w23 bl printk -.L2115: +.L2425: add x19, x19, :lo12:.LANCHOR0 - ldrh w1, [x24,80] - ldr x0, [x19,2832] - ldrh w0, [x0,x1,lsl 1] - cmp w0, w23 - beq .L2103 + ldrh w0, [x24,80] + ubfiz x1, x0, 1, 16 + ldr x2, [x19,72] + ldrh w1, [x2,x1] + cmp w1, w23 + beq .L2426 adrp x1, .LANCHOR3 - adrp x0, .LC34 + adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR3 - add x0, x0, :lo12:.LC34 - add x1, x1, 592 - mov w2, 451 + add x0, x0, :lo12:.LC0 + add x1, x1, 480 + mov w2, 463 bl printk -.L2117: - b .L2117 -.L2103: +.L2427: + b .L2427 +.L2426: + bl zftl_insert_data_list ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -14590,83 +16484,83 @@ gc_scan_src_blk_one_page: str x23, [sp,48] add x3, x19, :lo12:.LANCHOR0 mov w5, w4 - add x2, x3, 2848 + add x2, x3, 2840 stp x21, x22, [sp,32] ldrb w0, [x2,4] add x1, x2, x0, sxtw 1 - ldrb w7, [x3,3212] + ldrb w7, [x3,3196] ldrh w1, [x1,40] ldrh w3, [x2,2] -.L2142: +.L2452: cmp w1, w6 - bne .L2184 + bne .L2494 add w0, w0, 1 uxtb w0, w0 cmp w0, w7 - bne .L2143 + bne .L2453 add w3, w3, 1 mov w4, 1 mov w0, 0 uxth w3, w3 -.L2143: +.L2453: add x1, x2, x0, sxtw 1 mov w5, 1 ldrh w1, [x1,40] - b .L2142 -.L2184: - cbz w5, .L2145 + b .L2452 +.L2494: + cbz w5, .L2455 add x2, x19, :lo12:.LANCHOR0 - strb w0, [x2,2852] -.L2145: - cbz w4, .L2146 + strb w0, [x2,2844] +.L2455: + cbz w4, .L2456 add x0, x19, :lo12:.LANCHOR0 - strh w3, [x0,2850] -.L2146: + strh w3, [x0,2842] +.L2456: add x0, x19, :lo12:.LANCHOR0 - ldrb w2, [x0,3193] - ldrh w20, [x0,3230] + ldrb w2, [x0,3177] + ldrh w20, [x0,3270] cmp w2, 2 mul w1, w1, w20 - bne .L2147 - ldrb w2, [x0,2854] - add x0, x0, 2848 - cbnz w2, .L2147 + bne .L2457 + ldrb w2, [x0,2846] + add x0, x0, 2840 + cbnz w2, .L2457 ldrh w20, [x0,2] add w20, w1, w20, lsl 1 - b .L2148 -.L2147: + b .L2458 +.L2457: add x0, x19, :lo12:.LANCHOR0 - ldrh w20, [x0,2850] + ldrh w20, [x0,2842] add w20, w1, w20 -.L2148: +.L2458: add x2, x19, :lo12:.LANCHOR0 - add x1, x2, 2848 - ldrb w0, [x2,2852] + add x1, x2, 2840 + ldrb w0, [x2,2844] add w0, w0, 1 uxtb w0, w0 - strb w0, [x2,2852] - ldrb w2, [x2,3212] + strb w0, [x2,2844] + ldrb w2, [x2,3196] cmp w2, w0 - bne .L2149 + bne .L2459 ldrh w0, [x1,2] strb wzr, [x1,4] add w0, w0, 1 strh w0, [x1,2] -.L2149: +.L2459: mov w0, 1 mov w21, 0 add x19, x19, :lo12:.LANCHOR0 bl buf_alloc mov x22, x0 -.L2160: - ldrb w0, [x19,2854] - cbnz w21, .L2162 +.L2470: + ldrb w0, [x19,2846] + cbnz w21, .L2472 cmp w0, 3 - beq .L2150 -.L2162: + beq .L2460 +.L2472: cmp w0, w21 - bgt .L2152 -.L2161: + bgt .L2462 +.L2471: mov x0, x22 bl buf_free ldr x23, [sp,48] @@ -14674,56 +16568,56 @@ gc_scan_src_blk_one_page: ldp x21, x22, [sp,32] ldp x29, x30, [sp], 80 ret -.L2152: - ldrb w1, [x19,3193] +.L2462: + ldrb w1, [x19,3177] cmp w1, 2 - bne .L2153 - cbnz w0, .L2153 + bne .L2463 + cbnz w0, .L2463 add w0, w21, w20 orr w0, w0, 33554432 - b .L2183 -.L2153: + b .L2493 +.L2463: orr w0, w20, w21, lsl 24 -.L2183: +.L2493: str w0, [x22,40] mov w1, 1 mov x0, x22 bl sblk_read_page ldr w0, [x22,52] cmp w0, 512 - beq .L2157 + beq .L2467 cmn w0, #1 - beq .L2157 + beq .L2467 ldr x0, [x22,24] ldr w23, [x0,4] mov w0, w23 bl lpa_hash_get_ppa str w0, [x29,76] cmn w0, #1 - bne .L2158 + bne .L2468 mov w0, w23 add x1, x29, 76 mov w2, 0 bl pm_log2phys -.L2158: +.L2468: ldr w0, [x29,76] cmp w20, w0 - bne .L2157 - ldrh w2, [x19,2872] - ldr x1, [x19,3184] + bne .L2467 + ldrh w2, [x19,2864] + ldr x1, [x19,3168] str w20, [x1,x2,lsl 2] - ldrh w1, [x19,2872] + ldrh w1, [x19,2864] add w1, w1, 1 - strh w1, [x19,2872] -.L2157: - ldrh w0, [x19,2874] + strh w1, [x19,2864] +.L2467: + ldrh w0, [x19,2866] add w0, w0, 1 - strh w0, [x19,2874] -.L2150: + strh w0, [x19,2866] +.L2460: add w21, w21, 1 cmp w21, 4 - bne .L2160 - b .L2161 + bne .L2470 + b .L2471 .size gc_scan_src_blk_one_page, .-gc_scan_src_blk_one_page .align 2 .global gc_scan_static_data @@ -14736,23 +16630,23 @@ gc_scan_static_data: add x1, x19, :lo12:.LANCHOR0 stp x21, x22, [sp,32] stp x23, x24, [sp,48] - ldr x0, [x1,2792] + ldr x0, [x1,80] ldr w2, [x0,544] cmn w2, #1 - beq .L2186 + beq .L2496 mov w20, 11 mov w21, 21 mov w22, 1 -.L2187: +.L2497: add x24, x19, :lo12:.LANCHOR0 add x1, x29, 76 mov w2, 0 - ldr x0, [x24,2792] + ldr x0, [x24,80] ldr w0, [x0,544] bl pm_log2phys ldr w0, [x29,76] cmn w0, #1 - beq .L2188 + beq .L2498 mov w0, 1 bl buf_alloc mov x23, x0 @@ -14762,11 +16656,11 @@ gc_scan_static_data: bl sblk_read_page ldr w0, [x23,52] cmp w0, 256 - bne .L2189 - ldrh w1, [x24,3218] + bne .L2499 + ldrh w1, [x24,3266] ldr w2, [x29,76] sub w3, w21, w1 - ldrb w0, [x24,3216] + ldrb w0, [x24,3264] lsl w3, w22, w3 lsr w1, w2, w1 sub w3, w3, #1 @@ -14775,35 +16669,35 @@ gc_scan_static_data: udiv w0, w1, w0 mov w1, 1 bl gc_add_sblk -.L2189: +.L2499: add x0, x19, :lo12:.LANCHOR0 ldr x1, [x23,24] - ldr x0, [x0,2792] + ldr x0, [x0,80] ldr w1, [x1,4] ldr w0, [x0,544] cmp w1, w0 - beq .L2190 + beq .L2500 adrp x1, .LANCHOR3 - adrp x0, .LC34 + adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR3 - add x0, x0, :lo12:.LC34 - add x1, x1, 616 - mov w2, 1156 + add x0, x0, :lo12:.LC0 + add x1, x1, 504 + mov w2, 1369 bl printk -.L2191: - b .L2191 -.L2190: +.L2501: + b .L2501 +.L2500: mov x0, x23 bl buf_free -.L2188: +.L2498: add x2, x19, :lo12:.LANCHOR0 - ldr x0, [x2,2792] + ldr x0, [x2,80] ldr w2, [x2,2784] ldr w1, [x0,544] add w1, w1, 1 str w1, [x0,544] cmp w1, w2 - bcc .L2192 + bcc .L2502 mov w1, -1 str w1, [x0,544] ldr w1, [x0,548] @@ -14814,44 +16708,44 @@ gc_scan_static_data: bl ftl_ext_info_flush mov w0, 0 bl ftl_info_flush - b .L2185 -.L2192: + b .L2495 +.L2502: ldr w0, [x29,76] cmn w0, #1 - bne .L2185 + bne .L2495 sub w20, w20, #1 uxth w20, w20 - cbnz w20, .L2187 - b .L2185 -.L2186: + cbnz w20, .L2497 + b .L2495 +.L2496: ldr x1, [x1,2800] ldr w2, [x1,40] cmp w2, 20480 - bls .L2197 + bls .L2507 ldr w3, [x1,44] add w3, w3, w2, lsr 10 and w2, w2, 1023 str w3, [x1,44] str w2, [x1,40] -.L2197: +.L2507: ldr w2, [x0,536] ldr w3, [x0,12] add w2, w2, 12959744 add w2, w2, 256 cmp w3, w2 - bhi .L2198 + bhi .L2508 ldr w2, [x0,540] ldr w4, [x1,44] add w2, w2, 98304 add w2, w2, 1696 cmp w4, w2 - bls .L2185 -.L2198: + bls .L2495 +.L2508: ldr w1, [x1,44] str w1, [x0,540] str w3, [x0,536] str wzr, [x0,544] -.L2185: +.L2495: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -14871,35 +16765,35 @@ gc_block_vpn_scan: stp x23, x24, [sp,48] stp x25, x26, [sp,64] stp x27, x28, [sp,80] - ldr x1, [x20,2792] - ldrh w0, [x20,2826] + ldr x1, [x20,80] + ldrh w0, [x20,56] ldr w1, [x1,608] cmp w1, w0 - bcs .L2203 + bcs .L2513 bl timer_get_time - ldr x21, [x20,2792] + ldr x21, [x20,80] ldr w1, [x21,604] add w1, w1, 28672 add w1, w1, 1328 cmp w0, w1 - bls .L2203 + bls .L2513 bl timer_get_time str w0, [x21,604] - ldr x0, [x20,2792] - ldrh w2, [x20,2826] + ldr x0, [x20,80] + ldrh w2, [x20,56] ldr w1, [x0,600] cmp w1, w2 - bcs .L2209 + bcs .L2519 ldr x2, [x20,2800] ldrh w2, [x2,134] cmp w1, w2 - bcs .L2210 -.L2209: + bcs .L2520 +.L2519: add x1, x19, :lo12:.LANCHOR0 ldr x1, [x1,2800] ldrh w1, [x1,134] str w1, [x0,600] -.L2210: +.L2520: ldr w24, [x0,600] add w1, w24, 1 str w1, [x0,600] @@ -14911,47 +16805,47 @@ gc_block_vpn_scan: mov w0, w20 bl ftl_get_blk_list_in_sblk uxth w1, w0 - cbz w1, .L2203 + cbz w1, .L2513 add x2, x19, :lo12:.LANCHOR0 uxtw x22, w20 - ldr x25, [x2,2840] + ldr x25, [x2,64] add x25, x25, x22, lsl 2 ldrb w1, [x25,2] tst w1, 192 and w3, w1, 224 - beq .L2211 + beq .L2521 cmp w3, 224 - beq .L2211 - ldr x1, [x2,2792] + beq .L2521 + ldr x1, [x2,80] ldrh w4, [x1,16] cmp w4, w20 - beq .L2211 + beq .L2521 ldrh w4, [x1,48] cmp w4, w20 - beq .L2211 + beq .L2521 ldrh w1, [x1,80] cmp w1, w20 - bne .L2212 -.L2211: - cbnz w3, .L2203 + bne .L2522 +.L2521: + cbnz w3, .L2513 add x19, x19, :lo12:.LANCHOR0 lsl x22, x22, 1 - ldr x0, [x19,2832] + ldr x0, [x19,72] ldrh w1, [x0,x22] - cbz w1, .L2213 + cbz w1, .L2523 adrp x1, .LANCHOR3 - adrp x0, .LC34 + adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR3 - add x0, x0, :lo12:.LC34 - add x1, x1, 640 - mov w2, 1361 + add x0, x0, :lo12:.LC0 + add x1, x1, 528 + mov w2, 1606 bl printk -.L2214: - b .L2214 -.L2213: +.L2524: + b .L2524 +.L2523: strh w3, [x0,x22] - b .L2203 -.L2212: + b .L2513 +.L2522: add x1, x29, 144 and w0, w0, 65535 sub w0, w0, #1 @@ -14959,34 +16853,34 @@ gc_block_vpn_scan: ldrh w1, [x0,-16] mov w0, 65535 cmp w1, w0 - bne .L2216 + bne .L2526 adrp x1, .LANCHOR3 - adrp x0, .LC34 + adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR3 - add x0, x0, :lo12:.LC34 - add x1, x1, 640 - mov w2, 1367 + add x0, x0, :lo12:.LC0 + add x1, x1, 528 + mov w2, 1612 bl printk -.L2217: - b .L2217 -.L2216: - ldrh w0, [x2,3234] +.L2527: + b .L2527 +.L2526: + ldrh w0, [x2,3228] cmp w3, 160 - ldrh w4, [x2,3230] + ldrh w4, [x2,3270] mov w26, 1 sub w0, w0, #1 mul w1, w1, w4 uxth w0, w0 - bne .L2218 - ldrb w3, [x2,3193] + bne .L2528 + ldrb w3, [x2,3177] cmp w3, 2 uxth w26, w3 orr w1, w1, w3, lsl 24 - bne .L2218 - ldrh w0, [x2,3210] + bne .L2528 + ldrh w0, [x2,3194] sub w0, w0, #1 uxth w0, w0 -.L2218: +.L2528: orr w21, w0, w1 mov w0, 1 bl buf_alloc @@ -14995,42 +16889,42 @@ gc_block_vpn_scan: add x21, x19, :lo12:.LANCHOR0 mov x23, x0 bl sblk_read_page - ldrh w0, [x21,3210] + ldrh w0, [x21,3194] mov w1, 255 - ldrb w2, [x21,3212] + ldrb w2, [x21,3196] mul w2, w0, w2 - ldr x0, [x21,3184] + ldr x0, [x21,3168] lsl w2, w2, 2 bl ftl_memset ldr w0, [x23,52] cmp w0, 512 - beq .L2230 + beq .L2540 cmn w0, #1 cset w2, eq - cbz w2, .L2219 -.L2230: + cbz w2, .L2529 +.L2540: mov w0, w20 mov w1, 1 mov w2, 0 - b .L2240 -.L2219: + b .L2550 +.L2529: ldr x0, [x23,24] ldr w1, [x0] mov w0, 15555 movk w0, 0xf55f, lsl 16 cmp w1, w0 - beq .L2221 + beq .L2531 mov w0, w20 mov w1, 1 -.L2240: +.L2550: bl gc_add_sblk mov x0, x23 bl buf_free - b .L2203 -.L2221: - ldrb w0, [x21,3212] + b .L2513 +.L2531: + ldrb w0, [x21,3196] mov x27, 0 - ldrh w1, [x21,3234] + ldrh w1, [x21,3228] and w28, w24, 65535 mov w21, w27 mul w0, w0, w1 @@ -15038,68 +16932,68 @@ gc_block_vpn_scan: uxth w0, w26 ldr x26, [x23,8] str w0, [x29,108] -.L2222: +.L2532: ldr w0, [x29,108] cmp w0, w27 - ble .L2241 + ble .L2551 ldr w0, [x26,x27,lsl 2] cmn w0, #1 - beq .L2223 + beq .L2533 bl lpa_hash_get_ppa str w0, [x29,124] cmn w0, #1 - bne .L2224 + bne .L2534 ldr w0, [x26,x27,lsl 2] add x1, x29, 124 mov w2, 0 bl pm_log2phys -.L2224: +.L2534: add x4, x19, :lo12:.LANCHOR0 mov w1, 21 - ldrh w0, [x4,3218] + ldrh w0, [x4,3266] sub w2, w1, w0 mov w1, 1 lsl w2, w1, w2 ldr w1, [x29,124] sub w2, w2, #1 lsr w0, w1, w0 - ldrb w1, [x4,3216] + ldrb w1, [x4,3264] and w0, w2, w0 udiv w0, w0, w1 cmp w0, w28 - bne .L2223 + bne .L2533 add w21, w21, 1 uxth w21, w21 -.L2223: +.L2533: add x27, x27, 1 - b .L2222 -.L2241: + b .L2532 +.L2551: mov x0, x23 bl buf_free adrp x0, .LANCHOR2+400 ldr w0, [x0,#:lo12:.LANCHOR2+400] - tbz x0, 8, .L2226 + tbz x0, 8, .L2536 add x0, x19, :lo12:.LANCHOR0 ldrb w4, [x25,2] uxth w1, w24 mov w3, w21 ubfx x4, x4, 5, 3 - ldr x2, [x0,2832] - adrp x0, .LC184 - add x0, x0, :lo12:.LC184 + ldr x2, [x0,72] + adrp x0, .LC158 + add x0, x0, :lo12:.LC158 ldrh w2, [x2,x22,lsl 1] bl printk -.L2226: +.L2536: add x19, x19, :lo12:.LANCHOR0 cmp w21, 31 - ldr x0, [x19,2832] + ldr x0, [x19,72] strh w21, [x0,x22,lsl 1] - bhi .L2203 + bhi .L2513 mov w0, w20 mov w1, 1 mov w2, 0 bl gc_add_sblk -.L2203: +.L2513: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -15116,34 +17010,33 @@ ftl_sblk_dump: stp x29, x30, [sp,48] add x29, sp, 48 stp x23, x24, [sp,96] - uxth w24, w0 + uxth w23, w0 mov w0, 65535 stp x19, x20, [sp,64] stp x21, x22, [sp,80] stp x25, x26, [sp,112] stp x27, x28, [sp,128] - cmp w24, w0 - beq .L2265 - adrp x3, .LANCHOR0 - uxtw x0, w24 - add x2, x3, :lo12:.LANCHOR0 - lsl x20, x0, 2 - str x0, [x29,128] + cmp w23, w0 + beq .L2574 + adrp x25, .LANCHOR0 + uxtw x0, w23 + add x2, x25, :lo12:.LANCHOR0 + lsl x19, x0, 2 + str x0, [x29,136] mov w26, 1 - str x3, [x29,152] - ldr x0, [x2,2840] - add x0, x0, x20 + str x25, [x29,152] + ldr x0, [x2,64] + add x0, x0, x19 ldrb w0, [x0,2] and w0, w0, 224 cmp w0, 160 - bne .L2244 - ldrb w26, [x2,3193] -.L2244: - str x1, [x29,144] - mov w0, w24 + bne .L2554 + ldrb w26, [x2,3177] +.L2554: + mov x27, x1 + mov w0, w23 add x1, x29, 192 - strh w24, [x29,176] - adrp x19, .LANCHOR2 + strh w23, [x29,176] bl ftl_get_blk_list_in_sblk uxtb w1, w0 mov w4, w0 @@ -15153,124 +17046,122 @@ ftl_sblk_dump: strh wzr, [x29,178] strb wzr, [x29,181] strh wzr, [x29,186] - ldrh w2, [x0,3234] + ldrh w2, [x0,3228] mul w1, w1, w2 strh w1, [x29,182] - add x1, x19, :lo12:.LANCHOR2 - ldr w1, [x1,400] - tbz x1, 12, .L2245 - ldr x0, [x0,2840] - mov w1, w24 + adrp x1, .LANCHOR2 + add x2, x1, :lo12:.LANCHOR2 + str x1, [x29,128] + ldr w2, [x2,400] + tbz x2, 12, .L2555 + ldr x0, [x0,64] + mov w1, w23 mov w3, w26 uxtb w4, w4 - add x20, x0, x20 - adrp x0, .LC185 - add x0, x0, :lo12:.LC185 - ldrb w2, [x20,2] + add x19, x0, x19 + adrp x0, .LC159 + add x0, x0, :lo12:.LC159 + ldrb w2, [x19,2] ubfx x2, x2, 5, 3 bl printk -.L2245: +.L2555: mov w0, 1 - mov w22, 0 - mov w28, w22 - mov w20, w22 + mov w21, 0 + mov w28, w21 + mov w19, w21 bl buf_alloc - mov x27, x0 - adrp x0, .LC187 - str w22, [x29,140] - add x0, x0, :lo12:.LC187 + mov x25, x0 + adrp x0, .LC119 + str w21, [x29,148] + add x0, x0, :lo12:.LC119 str x0, [x29,120] - adrp x0, .LC186 - add x0, x0, :lo12:.LC186 + adrp x0, .LC161 + add x0, x0, :lo12:.LC161 str x0, [x29,112] - adrp x0, .LC150 - add x0, x0, :lo12:.LC150 + adrp x0, .LC160 + add x0, x0, :lo12:.LC160 str x0, [x29,104] -.L2246: +.L2556: ldr x0, [x29,152] - add x21, x0, :lo12:.LANCHOR0 - ldrh w0, [x21,3234] - cmp w0, w20 - bls .L2262 - lsl w0, w20, 1 - mov w25, 0 + add x20, x0, :lo12:.LANCHOR0 + ldrh w0, [x20,3228] + cmp w0, w19 + bls .L2571 + lsl w0, w19, 1 + mov w24, 0 sub w0, w0, #1 - str w0, [x29,136] -.L2263: + str w0, [x29,144] +.L2572: ldrb w0, [x29,185] - cmp w0, w25 - bls .L2260 - mov w23, 1 -.L2261: - cmp w23, w26 - bhi .L2295 + cmp w0, w24 + bls .L2569 + mov w22, 1 +.L2570: + cmp w22, w26 + bhi .L2598 add x0, x29, 176 - add x0, x0, x25, sxtw 1 + add x0, x0, x24, sxtw 1 ldrh w3, [x0,16] mov w0, 65535 cmp w3, w0 - beq .L2247 + beq .L2557 ldr x0, [x29,152] cmp w26, 3 add x0, x0, :lo12:.LANCHOR0 - ldrh w2, [x0,3230] + ldrh w2, [x0,3270] mul w2, w3, w2 - add w21, w2, w20 - bne .L2248 - orr w21, w21, w23, lsl 24 - b .L2249 -.L2248: + add w20, w2, w19 + bne .L2558 + orr w20, w20, w22, lsl 24 + b .L2559 +.L2558: cmp w26, 2 - bne .L2249 - ldr w1, [x29,136] - ldrb w21, [x0,3193] + bne .L2559 + ldr w1, [x29,144] + ldrb w20, [x0,3177] add w2, w2, w1 - add w2, w2, w23 - orr w21, w2, w21, lsl 24 -.L2249: - str w21, [x27,40] - mov x0, x27 + add w2, w2, w22 + orr w20, w2, w20, lsl 24 +.L2559: mov w1, 1 + str w20, [x25,40] + mov x0, x25 str x3, [x29,96] bl sblk_read_page - add x0, x19, :lo12:.LANCHOR2 - ldr w9, [x27,52] - ldr x3, [x29,96] - ldr w0, [x0,400] - tbz x0, 12, .L2251 - ldr x7, [x27,8] - mov w4, w9 - ldr x0, [x27,24] - mov w2, w20 - str x9, [x29,96] + ldr x7, [x25,8] + mov w2, w19 + ldr x0, [x25,24] + ldr w9, [x25,52] ldr w1, [x7,12] str w1, [sp] + mov w4, w9 + ldr x3, [x29,96] ldr w1, [x0] str w1, [sp,8] + str x9, [x29,96] ldr w1, [x0,4] str w1, [sp,16] ldr w1, [x0,8] str w1, [sp,24] mov w1, w3 - mov w3, w21 + mov w3, w20 ldr w0, [x0,12] str w0, [sp,32] - ldr x0, [x29,104] + ldr x0, [x29,120] ldr w5, [x7] ldr w6, [x7,4] ldr w7, [x7,8] bl printk ldr x9, [x29,96] -.L2251: cmp w9, 512 - beq .L2267 + beq .L2576 cmn w9, #1 - bne .L2252 -.L2267: + bne .L2561 +.L2576: mov w0, 1 - str w0, [x29,140] -.L2252: - ldr x0, [x27,24] + str w0, [x29,148] +.L2561: + ldr x0, [x25,24] ldr w1, [x0,4] str x1, [x29,96] mov w0, w1 @@ -15278,92 +17169,89 @@ ftl_sblk_dump: str w0, [x29,172] cmn w0, #1 ldr x1, [x29,96] - bne .L2254 + bne .L2563 mov w0, w1 mov w2, 0 add x1, x29, 172 bl pm_log2phys -.L2254: +.L2563: ldr w0, [x29,172] - cmp w0, w21 - bne .L2255 - add x0, x19, :lo12:.LANCHOR2 - add w22, w22, 1 - ldr w0, [x0,400] - tbz x0, 12, .L2255 - ldr x2, [x27,24] - mov w1, w21 - ldr x0, [x29,112] - mov w3, w22 + cmp w0, w20 + bne .L2564 + ldr x2, [x25,24] + add w21, w21, 1 + ldr x0, [x29,104] + mov w1, w20 + mov w3, w21 ldr w2, [x2,4] bl printk -.L2255: - ldr x0, [x29,144] - cbz x0, .L2256 - ubfiz x21, x28, 2, 32 - ldr w2, [x0,x21] - ldr x0, [x27,24] +.L2564: + cbz x27, .L2565 + ubfiz x20, x28, 2, 32 + ldr x0, [x25,24] + ldr w2, [x27,x20] ldr w0, [x0,4] cmp w0, w2 - beq .L2257 - add x0, x19, :lo12:.LANCHOR2 + beq .L2566 + ldr x0, [x29,128] + add x0, x0, :lo12:.LANCHOR2 ldr w0, [x0,400] - tbz x0, 12, .L2257 - ldr x0, [x29,120] + tbz x0, 12, .L2566 + ldr x0, [x29,112] mov w1, w28 bl printk -.L2257: - ldr x0, [x29,144] - ldr x1, [x27,24] - ldr w0, [x0,x21] +.L2566: + ldr x1, [x25,24] + ldr w0, [x27,x20] ldr w1, [x1,4] cmp w1, w0 - beq .L2256 + beq .L2565 cmn w0, #1 - beq .L2256 + beq .L2565 adrp x1, .LANCHOR3 - adrp x0, .LC34 + adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR3 - add x0, x0, :lo12:.LC34 - add x1, x1, 664 - mov w2, 617 + add x0, x0, :lo12:.LC0 + add x1, x1, 552 + mov w2, 1165 bl printk -.L2258: - b .L2258 -.L2256: +.L2567: + b .L2567 +.L2565: add w28, w28, 1 -.L2247: - add w23, w23, 1 - uxth w23, w23 - b .L2261 -.L2295: - add w25, w25, 1 - uxth w25, w25 - b .L2263 -.L2260: - add w20, w20, 1 - uxth w20, w20 - b .L2246 -.L2262: - mov x0, x27 - add x19, x19, :lo12:.LANCHOR2 +.L2557: + add w22, w22, 1 + uxth w22, w22 + b .L2570 +.L2598: + add w24, w24, 1 + uxth w24, w24 + b .L2572 +.L2569: + add w19, w19, 1 + uxth w19, w19 + b .L2556 +.L2571: + mov x0, x25 bl buf_free - ldr w0, [x19,400] - tbz x0, 12, .L2264 - ldr x3, [x29,128] - adrp x0, .LC188 - ldr x2, [x21,2832] - add x0, x0, :lo12:.LC188 - mov w1, w24 + ldr x0, [x29,128] + add x0, x0, :lo12:.LANCHOR2 + ldr w0, [x0,400] + tbz x0, 12, .L2573 + ldr x3, [x29,136] + adrp x0, .LC162 + ldr x2, [x20,72] + add x0, x0, :lo12:.LC162 + mov w1, w23 ldrh w2, [x2,x3,lsl 1] - mov w3, w22 + mov w3, w21 bl printk -.L2264: - ldr w0, [x29,140] - b .L2243 -.L2265: +.L2573: + ldr w0, [x29,148] + b .L2553 +.L2574: mov w0, 0 -.L2243: +.L2553: sub sp, x29, #48 ldp x19, x20, [sp,64] ldp x21, x22, [sp,80] @@ -15375,356 +17263,52 @@ ftl_sblk_dump: ret .size ftl_sblk_dump, .-ftl_sblk_dump .align 2 - .global gc_search_src_blk - .type gc_search_src_blk, %function -gc_search_src_blk: - stp x29, x30, [sp, -128]! - add x29, sp, 0 - stp x19, x20, [sp,16] - stp x21, x22, [sp,32] - adrp x20, .LANCHOR0 - uxtb w21, w0 - uxtb w0, w1 - str w0, [x29,124] - add x0, x20, :lo12:.LANCHOR0 - stp x23, x24, [sp,48] - stp x25, x26, [sp,64] - stp x27, x28, [sp,80] - uxtb w24, w2 - ldr x1, [x0,2800] - ldr x0, [x0,2792] - add x0, x0, x21, sxtw 1 - ldrh w0, [x0,120] - ldrh w25, [x1,134] - cbnz w0, .L2298 - adrp x22, .LANCHOR2 - add x0, x22, :lo12:.LANCHOR2 - ldr w0, [x0,400] - tbz x0, 8, .L2299 - adrp x0, .LC189 - ldr w2, [x29,124] - add x0, x0, :lo12:.LC189 - mov w1, w21 - mov w3, w24 - bl printk -.L2299: - add x0, x22, :lo12:.LANCHOR2 - ldr w0, [x0,400] - tbz x0, 8, .L2300 - add x3, x20, :lo12:.LANCHOR0 - adrp x4, .LANCHOR4+1014 - adrp x0, .LC190 - add x0, x0, :lo12:.LC190 - ldr x1, [x3,2800] - ldr x2, [x3,2792] - ldrh w4, [x4,#:lo12:.LANCHOR4+1014] - ldrh w1, [x1,134] - ldrh w2, [x2,126] - ldrh w3, [x3,3176] - bl printk -.L2300: - cmp w24, 64 - bls .L2301 - adrp x1, .LANCHOR3 - adrp x0, .LC34 - add x1, x1, :lo12:.LANCHOR3 - add x0, x0, :lo12:.LC34 - add x1, x1, 680 - mov w2, 1033 - bl printk -.L2302: - b .L2302 -.L2301: - add x0, x20, :lo12:.LANCHOR0 - adrp x26, .LC191 - mov w19, 0 - add x26, x26, :lo12:.LC191 - ldrb w1, [x0,3212] - ldrh w4, [x0,3234] - ldrh w3, [x0,3210] - ldr x0, [x0,2800] - mul w4, w1, w4 - mul w3, w1, w3 - ldrh w23, [x0,134] - adrp x0, .LANCHOR7 - add x0, x0, :lo12:.LANCHOR7 - uxth w27, w4 - uxth w28, w3 - str x0, [x29,112] -.L2303: - add x2, x20, :lo12:.LANCHOR0 - ldr x0, [x2,2800] - ldrh w1, [x2,2826] - ldrh w0, [x0,134] - sub w6, w1, w0 - cmp w23, w6 - bge .L2312 - ldr x2, [x2,2792] - ldrh w5, [x2,126] - add w5, w23, w5 - uxth w25, w5 - cmp w25, w1 - bcc .L2304 - sub w0, w0, w1 - add w5, w25, w0 - uxth w25, w5 - cmp w25, w1 - bcc .L2304 - adrp x1, .LANCHOR3 - adrp x0, .LC34 - add x1, x1, :lo12:.LANCHOR3 - add x0, x0, :lo12:.LC34 - add x1, x1, 680 - mov w2, 1043 - bl printk -.L2305: - b .L2305 -.L2304: - add x7, x20, :lo12:.LANCHOR0 - uxtw x6, w25 - ldr x0, [x7,2840] - add x0, x0, x6, lsl 2 - ldrb w2, [x0,2] - and w2, w2, 224 - cmp w2, 224 - beq .L2306 - cmp w2, 32 - cset w1, eq - cbnz w1, .L2306 - lsl x6, x6, 1 - ldr x0, [x7,2832] - cbnz w2, .L2307 - ldrh w1, [x0,x6] - cbz w1, .L2308 - mov w2, w25 - mov x0, x26 - str x6, [x29,104] - bl printk - mov w0, w25 - mov x1, 0 - bl ftl_sblk_dump - ldr x6, [x29,104] -.L2308: - add x0, x20, :lo12:.LANCHOR0 - ldr x0, [x0,2832] - ldrh w0, [x0,x6] - cbz w0, .L2306 - adrp x1, .LANCHOR3 - adrp x0, .LC34 - add x1, x1, :lo12:.LANCHOR3 - add x0, x0, :lo12:.LC34 - add x1, x1, 680 - mov w2, 1052 - bl printk -.L2309: - b .L2309 -.L2307: - ldrh w0, [x0,x6] - mov w3, 65535 - cmp w0, w3 - beq .L2306 - ldr x3, [x29,112] - cmp w2, 160 - add x6, x3, 3160 - ldr w3, [x29,124] - ldrb w6, [x6,w25,sxtw] - mul w0, w0, w6 - mov w6, 2 - csinc w6, w6, wzr, eq - uxth w0, w0 - and w6, w6, w3 - cbnz w21, .L2311 - cmp w27, w0 - csel w4, w27, w0, cc - uxth w27, w4 - cbz w6, .L2306 - ldrh w1, [x7,3176] - cmp w1, w0 - bls .L2306 - mov w0, w25 - mov w1, w21 - mov w2, w21 - bl gc_add_sblk - cbz w0, .L2306 - b .L2358 -.L2311: - cbz w6, .L2313 - cmp w2, 160 - adrp x2, .LANCHOR4 - bne .L2314 - add x2, x2, :lo12:.LANCHOR4 - cmp w28, w0 - csel w3, w28, w0, cc - ldrh w2, [x2,1014] - uxth w28, w3 - cmp w2, w0 - bls .L2313 - b .L2360 -.L2314: - add x2, x2, :lo12:.LANCHOR4 - cmp w27, w0 - csel w4, w27, w0, cc - ldrh w2, [x2,1012] - uxth w27, w4 - cmp w2, w0 - bhi .L2313 -.L2360: - mov w0, w25 - mov w2, w21 - bl gc_add_sblk - cbz w0, .L2313 -.L2358: - add w19, w19, 1 - uxth w19, w19 -.L2313: - cmp w19, w24 - bhi .L2312 -.L2306: - add w23, w23, 1 - uxth w23, w23 - b .L2303 -.L2312: - add x1, x20, :lo12:.LANCHOR0 - ldr x0, [x1,2800] - ldrh w2, [x0,134] - ldrh w0, [x1,2826] - sub w0, w0, w2 - cmp w23, w0 - ldr x0, [x1,2792] - blt .L2316 - strh w2, [x0,126] - cbnz w21, .L2317 - ldrh w0, [x1,3176] - cmp w0, w27 - bcs .L2318 - strh w27, [x1,3176] -.L2318: - add x20, x20, :lo12:.LANCHOR0 - mov w1, 7 - ldrh w0, [x20,3234] - ldrh w2, [x20,3176] - mul w1, w0, w1 - cmp w2, w1, lsr 3 - bge .L2320 - add w0, w2, w0, lsr 3 - strh w0, [x20,3176] - b .L2320 -.L2317: - ldrh w0, [x1,3210] - ldrb w1, [x1,3216] - mul w1, w0, w1 - adrp x0, .LANCHOR4 - cmp w28, w1 - beq .L2321 - add x2, x0, :lo12:.LANCHOR4 - ldrh w5, [x2,1014] - cmp w5, w28 - bcs .L2321 - strh w28, [x2,1014] -.L2321: - add x20, x20, :lo12:.LANCHOR0 - add x7, x0, :lo12:.LANCHOR4 - ldrh w6, [x20,3234] - ldrh w2, [x7,1014] - lsr w5, w6, 3 - sub w1, w1, w5 - cmp w2, w1 - bge .L2322 - add w2, w5, w2 - strh w2, [x7,1014] -.L2322: - add x0, x0, :lo12:.LANCHOR4 - ldrh w1, [x0,1012] - cmp w1, w6, lsr 1 - bls .L2320 - sub w1, w1, w5 - strh w1, [x0,1012] - b .L2320 -.L2316: - strh w25, [x0,126] - ldrh w0, [x1,3234] - cbnz w21, .L2324 - ldrh w2, [x1,3176] - cmp w2, w0, lsr 2 - bls .L2320 - sub w0, w2, w0, lsr 3 - strh w0, [x1,3176] - b .L2320 -.L2324: - adrp x1, .LANCHOR4 - add x5, x1, :lo12:.LANCHOR4 - ldrh w2, [x5,1014] - cmp w2, w0, lsr 1 - bls .L2325 - sub w2, w2, w0, lsr 3 - strh w2, [x5,1014] -.L2325: - add x20, x20, :lo12:.LANCHOR0 - add x1, x1, :lo12:.LANCHOR4 - ldrb w5, [x20,3216] - ldrh w2, [x1,1012] - mul w0, w0, w5 - sub w0, w0, #32 - cmp w2, w0 - bge .L2320 - add w2, w2, 32 - strh w2, [x1,1012] -.L2320: - add x22, x22, :lo12:.LANCHOR2 - ldr w0, [x22,400] - tbz x0, 8, .L2326 - adrp x0, .LC192 - mov w1, w19 - add x0, x0, :lo12:.LC192 - mov w2, w27 - mov w3, w28 - bl printk -.L2326: - mov w0, w19 -.L2298: - 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 gc_search_src_blk, .-gc_search_src_blk - .align 2 .global zftl_read .type zftl_read, %function zftl_read: stp x29, x30, [sp, -176]! add x29, sp, 0 + stp x19, x20, [sp,16] + mov w19, w0 + adrp x0, .LANCHOR2+400 stp x23, x24, [sp,48] stp x25, x26, [sp,64] - stp x19, x20, [sp,16] + ldr w0, [x0,#:lo12:.LANCHOR2+400] + mov w24, w1 stp x21, x22, [sp,32] stp x27, x28, [sp,80] - mov w26, w2 + mov w25, w2 mov x23, x3 - cbnz w0, .L2362 + tbz x0, 12, .L2600 + adrp x0, .LC163 + mov w1, w19 + add x0, x0, :lo12:.LC163 + mov w2, w24 + mov w3, w25 + bl printk +.L2600: + cbnz w19, .L2601 adrp x0, .LANCHOR0+4 - ldr w2, [x0,#:lo12:.LANCHOR0+4] - mov w0, 24576 - b .L2363 -.L2362: - cmp w0, 3 - bhi .L2389 - lsl w0, w0, 13 - mov w2, 8192 -.L2363: - add w3, w1, w26 - cmp w3, w2 - bhi .L2389 + mov w19, 24576 + ldr w0, [x0,#:lo12:.LANCHOR0+4] + b .L2602 +.L2601: + cmp w19, 3 + bhi .L2628 + lsl w19, w19, 13 + mov w0, 8192 +.L2602: + add w1, w24, w25 + cmp w1, w0 + bhi .L2628 adrp x22, .LANCHOR0 - add w24, w0, w1 + add w24, w19, w24 add x1, x22, :lo12:.LANCHOR0 - add w28, w24, w26 + add w28, w24, w25 str wzr, [x29,152] ldr x2, [x1,2800] ldr w0, [x2,24] - add w0, w0, w26 + add w0, w0, w25 str w0, [x2,24] ldrb w0, [x1,2776] sub w1, w28, #1 @@ -15732,20 +17316,20 @@ zftl_read: mov w21, w27 udiv w0, w1, w0 str w0, [x29,148] - sub w25, w0, w27 - add w0, w25, 1 + sub w26, w0, w27 + add w0, w26, 1 str w0, [x29,156] - uxth w0, w26 + uxth w0, w25 str w0, [x29,144] - adrp x0, .LC178 - add x0, x0, :lo12:.LC178 + adrp x0, .LC147 + add x0, x0, :lo12:.LC147 str x0, [x29,136] - adrp x0, .LC193 - add x0, x0, :lo12:.LC193 + adrp x0, .LC164 + add x0, x0, :lo12:.LC164 str x0, [x29,128] -.L2365: +.L2604: ldr w0, [x29,156] - cbz w0, .L2406 + cbz w0, .L2648 add x0, x22, :lo12:.LANCHOR0 ldr w1, [x29,148] cmp w21, w27 @@ -15754,35 +17338,35 @@ zftl_read: ldrb w0, [x0,2776] cset w20, eq uxth w19, w0 - cbnz w20, .L2392 - cbz w2, .L2366 - b .L2405 -.L2392: - cbz w2, .L2368 -.L2405: + cbnz w20, .L2631 + cbz w2, .L2605 + b .L2647 +.L2631: + cbz w2, .L2607 +.L2647: udiv w20, w24, w0 msub w20, w20, w0, w24 ldr w0, [x29,144] uxth w20, w20 sub w19, w19, w20 uxth w19, w19 - cmp w19, w26 + cmp w19, w25 csel w19, w0, w19, hi - b .L2366 -.L2368: + b .L2605 +.L2607: msub w19, w0, w21, w28 mov w20, w2 uxtb w19, w19 -.L2366: +.L2605: add x1, x22, :lo12:.LANCHOR0 mov w0, 0 add x1, x1, 728 -.L2371: +.L2610: ldr w2, [x1,36] cmp w2, w21 - bne .L2369 + bne .L2608 ldrb w2, [x1,2] - tbz x2, 3, .L2369 + tbz x2, 3, .L2608 add x2, x22, :lo12:.LANCHOR0 ubfiz x1, x0, 6, 32 add x0, x2, x1 @@ -15794,96 +17378,96 @@ zftl_read: add x23, x23, x19 add x1, x1, x20 bl ftl_memcpy - b .L2370 -.L2369: + b .L2609 +.L2608: add w0, w0, 1 add x1, x1, 64 cmp w0, 32 - bne .L2371 + bne .L2610 mov w0, w21 bl lpa_hash_get_ppa str w0, [x29,172] cmn w0, #1 - bne .L2372 + bne .L2611 mov w0, w21 add x1, x29, 172 mov w2, 0 bl pm_log2phys -.L2372: +.L2611: ldr w0, [x29,172] cmn w0, #1 - bne .L2373 + bne .L2612 mov w19, 0 -.L2374: +.L2613: add x0, x22, :lo12:.LANCHOR0 ldrb w0, [x0,2776] cmp w19, w0 - bcs .L2370 + bcs .L2609 madd w0, w21, w0, w19 cmp w0, w24 - bcc .L2375 + bcc .L2614 cmp w0, w28 - bcs .L2375 + bcs .L2614 mov x0, x23 mov w1, 0 mov w2, 512 add x23, x23, 512 bl ftl_memset -.L2375: +.L2614: add w19, w19, 1 - b .L2374 -.L2373: + b .L2613 +.L2612: mov w0, 0 bl buf_alloc - mov x25, x0 - cbnz x0, .L2377 + mov x26, x0 + cbnz x0, .L2616 bl ftl_read_ahead - b .L2365 -.L2377: + b .L2604 +.L2616: add x1, x22, :lo12:.LANCHOR0 ldr x2, [x1,2800] ldr w0, [x2,40] add w0, w0, 1 str w0, [x2,40] ldr w0, [x29,172] - str w0, [x25,40] - str w0, [x25,44] + str w0, [x26,40] + str w0, [x26,44] ldrb w0, [x1,2776] cmp w0, w19 - bne .L2379 - str x23, [x25,16] -.L2379: - mov x0, x25 + bne .L2618 + str x23, [x26,16] +.L2618: + mov x0, x26 mov w1, 1 bl sblk_read_page - ldr w9, [x25,52] + ldr w9, [x26,52] cmn w9, #1 - bne .L2380 + bne .L2619 add x0, x22, :lo12:.LANCHOR0 str w9, [x29,152] - ldr x1, [x0,2792] + ldr x1, [x0,80] ldr w0, [x1,552] add w0, w0, 1 str w0, [x1,552] - b .L2381 -.L2380: + b .L2620 +.L2619: cmp w9, 256 - bne .L2381 + bne .L2620 add x1, x22, :lo12:.LANCHOR0 mov w2, 21 mov w5, 1 ldr w0, [x29,172] - ldr w3, [x25,40] - ldrh w4, [x1,3218] + ldr w3, [x26,40] + ldrh w4, [x1,3266] str x9, [x29,104] sub w2, w2, w4 lsr w4, w0, w4 lsl w2, w5, w2 - ldrb w0, [x1,3216] + ldrb w0, [x1,3264] sub w2, w2, #1 str x5, [x29,112] and w4, w2, w4 - ldr w2, [x25,36] + ldr w2, [x26,36] udiv w4, w4, w0 ldr x0, [x29,128] str x4, [x29,120] @@ -15896,15 +17480,15 @@ zftl_read: mov w1, w5 bl gc_add_sblk ldr x9, [x29,104] -.L2381: - ldr x7, [x25,24] +.L2620: + ldr x7, [x26,24] ldr w5, [x7,4] cmp w5, w21 - beq .L2382 + beq .L2621 ldr w4, [x7] mov w2, w21 ldr w6, [x7,8] - ldrb w1, [x25,1] + ldrb w1, [x26,1] ldr w3, [x29,172] ldr w7, [x7,12] ldr x0, [x29,136] @@ -15913,61 +17497,64 @@ zftl_read: add x3, x22, :lo12:.LANCHOR0 mov w2, 21 mov w1, 1 - ldrh w0, [x3,3218] + ldrh w0, [x3,3266] sub w2, w2, w0 lsl w2, w1, w2 ldr w1, [x29,172] sub w2, w2, #1 lsr w0, w1, w0 - ldrb w1, [x3,3216] + ldrb w1, [x3,3264] and w0, w2, w0 udiv w0, w0, w1 mov x1, 0 bl ftl_sblk_dump ldr x9, [x29,120] -.L2382: - ldr x0, [x25,24] +.L2621: + ldr x0, [x26,24] ldr w0, [x0,4] cmp w0, w21 - bne .L2393 + bne .L2632 cmn w9, #1 - bne .L2383 -.L2393: + bne .L2622 +.L2632: adrp x1, .LANCHOR3 - adrp x0, .LC34 + adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR3 - add x0, x0, :lo12:.LC34 - add x1, x1, 704 - mov w2, 936 + add x0, x0, :lo12:.LC0 + add x1, x1, 568 + mov w2, 977 bl printk -.L2385: - b .L2385 -.L2383: - ldr x0, [x25,16] - cbnz x0, .L2386 - ldr x1, [x25,8] +.L2624: + b .L2624 +.L2622: + ldr x0, [x26,16] + cbnz x0, .L2625 + ldr x1, [x26,8] ubfiz x20, x20, 9, 16 mov x0, x23 lsl w2, w19, 9 add x1, x1, x20 bl ftl_memcpy -.L2386: - mov x0, x25 +.L2625: + mov x0, x26 ubfiz x19, x19, 9, 16 add x23, x23, x19 bl buf_free -.L2370: +.L2609: ldr w0, [x29,156] add w21, w21, 1 sub w0, w0, #1 str w0, [x29,156] - b .L2365 -.L2406: + b .L2604 +.L2648: + bl timer_get_time + adrp x1, .LANCHOR7+3256 + str w0, [x1,#:lo12:.LANCHOR7+3256] ldr w0, [x29,152] - b .L2364 -.L2389: + b .L2603 +.L2628: mov w0, -1 -.L2364: +.L2603: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -15981,10 +17568,11 @@ zftl_read: .type zftl_vendor_read, %function zftl_vendor_read: stp x29, x30, [sp, -16]! + mov w4, w1 mov x3, x2 - add w1, w0, 512 add x29, sp, 0 - mov w2, 1 + add w1, w0, 512 + mov w2, w4 mov w0, 2 bl zftl_read ldp x29, x30, [sp], 16 @@ -15995,10 +17583,12 @@ zftl_vendor_read: .type zftl_sys_read, %function zftl_sys_read: stp x29, x30, [sp, -16]! - mov w1, w0 - mov x3, x2 + mov w5, w0 + mov w4, w1 add x29, sp, 0 - mov w2, 1 + mov x3, x2 + mov w1, w5 + mov w2, w4 mov w0, 2 bl zftl_read ldp x29, x30, [sp], 16 @@ -16008,470 +17598,265 @@ zftl_sys_read: .global vpn_check .type vpn_check, %function vpn_check: - stp x29, x30, [sp, -112]! + stp x29, x30, [sp, -128]! add x29, sp, 0 stp x19, x20, [sp,16] adrp x19, .LANCHOR0 - str x27, [sp,80] add x20, x19, :lo12:.LANCHOR0 stp x21, x22, [sp,32] stp x23, x24, [sp,48] stp x25, x26, [sp,64] + stp x27, x28, [sp,80] bl timer_get_time - mov w21, w0 + adrp x22, .LC168 bl dump_ftl_info - adrp x23, .LC197 - ldr x3, [x20,2792] - adrp x0, .LC194 - add x0, x0, :lo12:.LC194 - adrp x24, .LC198 - mov w22, 0 - mov w25, 21 + adrp x23, .LC169 + ldr x3, [x20,80] + adrp x0, .LC165 + add x0, x0, :lo12:.LC165 + mov w21, 0 + mov w24, 21 + add x22, x22, :lo12:.LC168 ldrh w1, [x3,16] - add x23, x23, :lo12:.LC197 + add x23, x23, :lo12:.LC169 ldrh w2, [x3,48] - add x24, x24, :lo12:.LC198 ldrh w3, [x3,80] bl printk - ldr x0, [x20,2792] - ldr x3, [x20,2832] + ldr x0, [x20,80] + ldr x3, [x20,72] ldrh w1, [x0,16] ubfiz x2, x1, 1, 16 ldrh w3, [x3,x2] ldrh w2, [x0,22] - adrp x0, .LC195 - add x0, x0, :lo12:.LC195 + adrp x0, .LC166 + add x0, x0, :lo12:.LC166 sub w4, w3, w2 bl printk - ldr x0, [x20,2792] - ldr x3, [x20,2832] - adrp x20, .LANCHOR8 + ldr x0, [x20,80] + ldr x3, [x20,72] + adrp x20, .LANCHOR7 ldrh w1, [x0,48] ubfiz x2, x1, 1, 16 ldrh w3, [x3,x2] ldrh w2, [x0,54] - adrp x0, .LC196 - add x0, x0, :lo12:.LC196 + adrp x0, .LC167 + add x0, x0, :lo12:.LC167 sub w4, w3, w2 bl printk - add x0, x20, :lo12:.LANCHOR8 + add x0, x20, :lo12:.LANCHOR7 mov w1, 0 - add x0, x0, 1112 - mov w2, 4352 + add x0, x0, 3264 + mov w2, 4608 bl ftl_memset -.L2410: - add x26, x19, :lo12:.LANCHOR0 - ldr w0, [x26,2784] - cmp w22, w0 - bcs .L2442 - mov w0, w22 +.L2652: + add x25, x19, :lo12:.LANCHOR0 + ldr w0, [x25,2784] + cmp w21, w0 + bcs .L2683 + mov w0, w21 bl lpa_hash_get_ppa - str w0, [x29,108] + str w0, [x29,124] cmn w0, #1 - bne .L2411 - mov w0, w22 - add x1, x29, 108 + bne .L2653 + mov w0, w21 + add x1, x29, 124 mov w2, 0 bl pm_log2phys - b .L2412 -.L2411: - ldrh w1, [x26,3218] + b .L2654 +.L2653: + ldrh w1, [x25,3266] mov w2, 1 lsr w0, w0, w1 - sub w1, w25, w1 + sub w1, w24, w1 lsl w1, w2, w1 sub w1, w1, #1 and w0, w0, w1 - ldrb w1, [x26,3216] + ldrb w1, [x25,3264] udiv w0, w0, w1 - ldrh w1, [x26,2826] + ldrh w1, [x25,56] cmp w1, w0, uxth - bhi .L2412 + bhi .L2654 adrp x1, .LANCHOR3 - adrp x0, .LC34 + adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR3 - add x0, x0, :lo12:.LC34 - add x1, x1, 720 - mov w2, 1150 + add x0, x0, :lo12:.LC0 + add x1, x1, 584 + mov w2, 1197 bl printk -.L2413: - b .L2413 -.L2412: - ldr w2, [x29,108] +.L2655: + b .L2655 +.L2654: + ldr w2, [x29,124] cmn w2, #1 - beq .L2414 - add x26, x19, :lo12:.LANCHOR0 + beq .L2656 + add x25, x19, :lo12:.LANCHOR0 mov w0, 1 - ldrh w4, [x26,3218] - sub w3, w25, w4 + ldrh w4, [x25,3266] + sub w3, w24, w4 lsr w4, w2, w4 lsl w3, w0, w3 - ldrh w0, [x26,2826] + ldrh w0, [x25,56] sub w3, w3, #1 and w4, w3, w4 - ldrb w3, [x26,3216] + ldrb w3, [x25,3264] udiv w3, w4, w3 - uxth w27, w3 + uxth w26, w3 and w3, w3, 65535 - cmp w0, w27 - bls .L2415 - add x0, x20, :lo12:.LANCHOR8 - add x0, x0, 1112 + cmp w0, w26 + bls .L2657 + add x0, x20, :lo12:.LANCHOR7 + add x0, x0, 3264 ldrh w1, [x0,w3,sxtw 1] add w1, w1, 1 strh w1, [x0,w3,sxtw 1] - b .L2416 -.L2415: - mov w1, w22 - mov x0, x23 + b .L2658 +.L2657: + mov w1, w21 + mov x0, x22 bl printk - ldrb w3, [x26,2776] - mov x0, x24 - ldr x1, [x26,3792] + ldrb w3, [x25,2776] + mov x0, x23 + ldr x1, [x25,3832] mov w2, 4 lsl w3, w3, 7 bl rknand_print_hex -.L2416: +.L2658: add x0, x19, :lo12:.LANCHOR0 - ldrh w0, [x0,2826] - cmp w0, w27 - bhi .L2414 + ldrh w0, [x0,56] + cmp w0, w26 + bhi .L2656 adrp x1, .LANCHOR3 - adrp x0, .LC34 + adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR3 - add x0, x0, :lo12:.LC34 - add x1, x1, 720 - mov w2, 1160 + add x0, x0, :lo12:.LC0 + add x1, x1, 584 + mov w2, 1207 bl printk -.L2417: - b .L2417 -.L2414: +.L2659: + b .L2659 +.L2656: bl timer_get_time - sub w1, w0, w21 - cmp w1, 6 - add w22, w22, 1 - csel w21, w21, w0, cc - b .L2410 -.L2442: - adrp x23, .LC199 - mov w22, 0 - add x24, x20, :lo12:.LANCHOR8 - add x23, x23, :lo12:.LC199 -.L2420: - add x4, x19, :lo12:.LANCHOR0 - ldrh w0, [x4,2826] - cmp w0, w22 - bls .L2443 - ldr x0, [x4,2832] - uxtw x1, w22 - ldrh w3, [x0,x1,lsl 1] - add x0, x24, 1112 - ldrh w2, [x0,w22,sxtw 1] + add w21, w21, 1 + b .L2652 +.L2683: + mov w23, 0 + adrp x26, .LC170 + mov w21, w23 + add x27, x20, :lo12:.LANCHOR7 + add x26, x26, :lo12:.LC170 + mov w28, 65535 +.L2661: + add x22, x19, :lo12:.LANCHOR0 + ldrh w1, [x22,56] + cmp w1, w21 + bls .L2684 + uxtw x1, w21 + ldr x0, [x22,72] + lsl x25, x1, 1 + add x24, x27, 3264 + sxtw x5, w21 + ldrh w3, [x0,x25] + ldrh w2, [x24,w21,sxtw 1] cmp w3, w2 - beq .L2421 - ldr x0, [x4,2840] + beq .L2662 + ldr x0, [x22,64] + str x5, [x29,104] add x1, x0, x1, lsl 2 - mov x0, x23 + mov x0, x26 ldrb w4, [x1,2] - mov w1, w22 + mov w1, w21 ubfx x4, x4, 5, 3 bl printk -.L2421: - add w22, w22, 1 - uxth w22, w22 - b .L2420 -.L2443: - adrp x23, .LC200 - mov w22, 0 - add x20, x20, :lo12:.LANCHOR8 - add x23, x23, :lo12:.LC200 -.L2423: + ldr x0, [x22,72] + ldrh w1, [x0,x25] + cmp w1, w28 + beq .L2662 + ldr x5, [x29,104] + ldrh w0, [x24,x5,lsl 1] + cmp w0, w1 + bls .L2662 + ldr x1, [x22,80] + ldrh w0, [x1,16] + cmp w0, w21 + beq .L2662 + ldrh w0, [x1,80] + cmp w0, w21 + beq .L2662 + ldrh w0, [x1,48] + cmp w0, w21 + csinc w23, w23, wzr, eq +.L2662: + add w21, w21, 1 + uxth w21, w21 + b .L2661 +.L2684: + adrp x22, .LC171 + mov w21, 0 + add x20, x20, :lo12:.LANCHOR7 + add x22, x22, :lo12:.LC171 +.L2664: add x1, x19, :lo12:.LANCHOR0 - ldrh w0, [x1,2826] - cmp w0, w22 - bls .L2444 - uxtw x24, w22 - ldr x0, [x1,2840] + ldrh w0, [x1,56] + cmp w0, w21 + bls .L2685 + uxtw x24, w21 + ldr x0, [x1,64] add x0, x0, x24, lsl 2 ldrb w0, [x0,2] tst w0, 224 - bne .L2429 - add x0, x20, 1112 - sxtw x26, w22 - ldrh w0, [x0,w22,sxtw 1] - cbnz w0, .L2425 + bne .L2670 + add x0, x20, 3264 + sxtw x26, w21 + ldrh w0, [x0,w21,sxtw 1] + cbnz w0, .L2666 lsl x25, x24, 1 - ldr x0, [x1,2832] + ldr x0, [x1,72] ldrh w0, [x0,x25] - cbz w0, .L2426 - mov x0, x23 - mov w1, w22 + cbz w0, .L2667 + mov x0, x22 + mov w1, w21 bl printk -.L2426: +.L2667: add x0, x19, :lo12:.LANCHOR0 - ldr x0, [x0,2832] + ldr x0, [x0,72] strh wzr, [x0,x25] -.L2425: +.L2666: add x0, x19, :lo12:.LANCHOR0 - ldr x0, [x0,2832] + ldr x0, [x0,72] ldrh w0, [x0,x24,lsl 1] - cbz w0, .L2429 - add x0, x20, 1112 + cbz w0, .L2670 + add x0, x20, 3264 ldrh w0, [x0,x26,lsl 1] - cbz w0, .L2429 + cbz w0, .L2670 adrp x1, .LANCHOR3 - adrp x0, .LC34 - add x1, x1, :lo12:.LANCHOR3 - add x0, x0, :lo12:.LC34 - add x1, x1, 720 - mov w2, 1192 - bl printk -.L2427: - b .L2427 -.L2429: - add w22, w22, 1 - uxth w22, w22 - b .L2423 -.L2444: - bl timer_get_time - sub w2, w0, w21 - adrp x1, .LANCHOR3 - adrp x0, .LC201 + adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR3 - add x0, x0, :lo12:.LC201 - add x1, x1, 720 - bl printk - ldr x27, [sp,80] - ldp x19, x20, [sp,16] - ldp x21, x22, [sp,32] - ldp x23, x24, [sp,48] - ldp x25, x26, [sp,64] - ldp x29, x30, [sp], 112 - ret - .size vpn_check, .-vpn_check - .align 2 - .global ftl_info_check - .type ftl_info_check, %function -ftl_info_check: - stp x29, x30, [sp, -112]! - mov w1, 1 - add x29, sp, 0 - stp x19, x20, [sp,16] - adrp x20, .LANCHOR0 - add x19, x20, :lo12:.LANCHOR0 - stp x21, x22, [sp,32] - stp x23, x24, [sp,48] - stp x25, x26, [sp,64] - stp x27, x28, [sp,80] - adrp x21, .LANCHOR7 - adrp x27, .LC202 - add x21, x21, :lo12:.LANCHOR7 - ldrh w2, [x19,2826] - add x0, x21, 3160 - add x27, x27, :lo12:.LC202 - bl ftl_memset - str x21, [x29,104] - ldr x0, [x19,2800] - mov w19, 0 - mov w25, w19 - mov w26, w19 - mov w22, w19 - mov w23, w19 - ldrh w28, [x0,134] - mov w24, w19 -.L2446: - add x5, x20, :lo12:.LANCHOR0 - ldrh w0, [x5,2826] - cmp w0, w28 - bls .L2488 - uxtw x21, w28 - ldr x4, [x5,2840] - add x4, x4, x21, lsl 2 - ldrb w6, [x4,3] - cbz w6, .L2447 - mov w0, 0 - ldrb w2, [x5,3212] - mov w5, w0 -.L2448: - cmp w5, w2 - bge .L2489 - asr w1, w6, w5 - add w5, w5, 1 - and w1, w1, 1 - eor w1, w1, 1 - add w0, w0, w1 - b .L2448 -.L2489: - cbz w0, .L2451 - ldr x1, [x29,104] - sdiv w0, w2, w0 - add x1, x1, 3160 - strb w0, [x1,w28,sxtw] - b .L2447 -.L2451: - ldrb w0, [x4,2] - mov w1, -1 - orr w0, w0, -32 - strb w0, [x4,2] - add x0, x20, :lo12:.LANCHOR0 - ldr x0, [x0,2832] - strh w1, [x0,x21,lsl 1] -.L2447: - ldrb w0, [x4,2] - and w1, w0, 224 - cmp w1, 64 - bne .L2452 - add w24, w24, 1 - uxth w24, w24 - b .L2487 -.L2452: - cmp w1, 96 - bne .L2455 - add w22, w22, 1 - uxth w22, w22 -.L2487: - add x1, x20, :lo12:.LANCHOR0 - ldr x0, [x1,2832] - ldrh w2, [x0,x21,lsl 1] - cmp w2, 15 - bls .L2458 - ldrh w0, [x1,3234] - b .L2484 -.L2455: - cmp w1, 160 - bne .L2457 - add x1, x20, :lo12:.LANCHOR0 - add w23, w23, 1 - uxth w23, w23 - ldr x0, [x1,2832] - ldrh w2, [x0,x21,lsl 1] - cmp w2, 15 - bls .L2458 - ldrh w0, [x1,3210] -.L2484: - ldrb w1, [x1,3212] - mul w0, w0, w1 - cmp w2, w0 - bne .L2454 -.L2458: - mov w0, w28 - mov w1, 1 - mov w2, 0 - bl gc_add_sblk - b .L2454 -.L2457: - cbnz w1, .L2454 - ands w0, w0, 24 - bne .L2459 - add w26, w26, 1 - uxth w26, w26 - b .L2460 -.L2459: - cmp w0, 16 - bne .L2461 - add w25, w25, 1 - uxth w25, w25 - b .L2460 -.L2461: - add w19, w19, 1 - uxth w19, w19 -.L2460: - add x0, x20, :lo12:.LANCHOR0 - lsl x21, x21, 1 - ldr x0, [x0,2832] - ldrh w2, [x0,x21] - cbz w2, .L2462 - mov x0, x27 - mov w1, w28 - str x4, [x29,96] + add x0, x0, :lo12:.LC0 + add x1, x1, 584 + mov w2, 1239 bl printk - ldr x4, [x29,96] - ldrb w0, [x4,2] - tbz x0, 4, .L2463 - mov w1, 5 - b .L2482 -.L2463: - mov w1, 2 -.L2482: - bfi w0, w1, 5, 3 - mov w2, 0 - strb w0, [x4,2] - mov w1, 1 - mov w0, w28 - bl gc_add_sblk - bl vpn_check -.L2462: - add x0, x20, :lo12:.LANCHOR0 - ldr x0, [x0,2832] - ldrh w0, [x0,x21] - cbz w0, .L2454 +.L2668: + b .L2668 +.L2670: + add w21, w21, 1 + uxth w21, w21 + b .L2664 +.L2685: adrp x1, .LANCHOR3 - adrp x0, .LC34 + adrp x0, .LC172 add x1, x1, :lo12:.LANCHOR3 - add x0, x0, :lo12:.LC34 - add x1, x1, 736 - mov w2, 1267 - bl printk -.L2465: - b .L2465 -.L2454: - add w3, w28, 1 - uxth w28, w3 - b .L2446 -.L2488: - adrp x0, .LC203 - mov w1, w24 mov w2, w23 - mov w3, w22 - add x0, x0, :lo12:.LC203 - str x5, [x29,104] - bl printk - adrp x0, .LC204 - mov w1, w26 - add x0, x0, :lo12:.LC204 - mov w2, w25 - mov w3, w19 + add x1, x1, 584 + add x0, x0, :lo12:.LC172 bl printk - ldr x5, [x29,104] - ldr x0, [x5,2800] - ldrh w1, [x0,114] - cmp w1, w26 - beq .L2467 - strh w26, [x0,114] -.L2467: - ldrh w1, [x0,118] - cmp w1, w25 - beq .L2468 - strh w25, [x0,118] -.L2468: - ldrh w1, [x0,116] - cmp w1, w19 - beq .L2469 - strh w19, [x0,116] -.L2469: - ldrh w1, [x0,122] - cmp w1, w24 - beq .L2470 - strh w24, [x0,122] -.L2470: - ldrh w1, [x0,120] - cmp w1, w23 - beq .L2471 - strh w23, [x0,120] -.L2471: - ldrh w1, [x0,124] - cmp w1, w22 - beq .L2445 - strh w22, [x0,124] -.L2445: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] ldp x25, x26, [sp,64] ldp x27, x28, [sp,80] - ldp x29, x30, [sp], 112 + ldp x29, x30, [sp], 128 ret - .size ftl_info_check, .-ftl_info_check + .size vpn_check, .-vpn_check .align 2 .global gc_scan_src_blk .type gc_scan_src_blk, %function @@ -16485,154 +17870,154 @@ gc_scan_src_blk: stp x21, x22, [sp,32] stp x23, x24, [sp,48] stp x25, x26, [sp,64] - ldrh w1, [x0,2848] + ldrh w1, [x0,2840] cmp w1, w2 - bne .L2491 + bne .L2687 adrp x1, .LANCHOR3 - adrp x0, .LC34 + adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR3 - add x0, x0, :lo12:.LC34 - add x1, x1, 752 - mov w2, 883 + add x0, x0, :lo12:.LC0 + add x1, x1, 600 + mov w2, 897 bl printk -.L2492: - b .L2492 -.L2491: +.L2688: + b .L2688 +.L2687: adrp x2, .LANCHOR2+400 ldr w2, [x2,#:lo12:.LANCHOR2+400] - tbz x2, 8, .L2493 - ldr x3, [x0,2832] + tbz x2, 8, .L2689 + ldr x3, [x0,72] ubfiz x2, x1, 1, 16 - adrp x0, .LC205 - add x0, x0, :lo12:.LC205 + adrp x0, .LC173 + add x0, x0, :lo12:.LC173 ldrh w2, [x3,x2] bl printk -.L2493: +.L2689: add x20, x19, :lo12:.LANCHOR0 bl timer_get_time - add x21, x20, 2848 - add x1, x20, 2888 - ldrh w0, [x20,2848] + add x21, x20, 2840 + add x1, x20, 2880 + ldrh w0, [x20,2840] bl ftl_get_blk_list_in_sblk uxtb w1, w0 strb w1, [x21,5] - cbnz w1, .L2494 + cbnz w1, .L2690 mov w0, -1 - strh w0, [x20,2848] - b .L2522 -.L2494: - ldrh w1, [x20,2848] - ldr x2, [x20,2840] + strh w0, [x20,2840] + b .L2718 +.L2690: + ldrh w1, [x20,2840] + ldr x2, [x20,64] add x2, x2, x1, lsl 2 ldrb w4, [x2,2] tst w4, 192 and w2, w4, 224 - beq .L2496 + beq .L2692 cmp w2, 224 - beq .L2496 - ldr x4, [x20,2792] + beq .L2692 + ldr x4, [x20,80] ldrh w5, [x4,16] cmp w5, w1 - beq .L2496 + beq .L2692 ldrh w5, [x4,48] cmp w5, w1 - beq .L2496 + beq .L2692 ldrh w4, [x4,80] cmp w4, w1 - bne .L2497 -.L2496: - cbnz w2, .L2498 + bne .L2693 +.L2692: + cbnz w2, .L2694 add x3, x19, :lo12:.LANCHOR0 lsl x0, x1, 1 - ldr x1, [x3,2832] + ldr x1, [x3,72] ldrh w3, [x1,x0] - cbz w3, .L2499 + cbz w3, .L2695 adrp x1, .LANCHOR3 - adrp x0, .LC34 + adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR3 - add x0, x0, :lo12:.LC34 - add x1, x1, 752 - mov w2, 903 + add x0, x0, :lo12:.LC0 + add x1, x1, 600 + mov w2, 917 bl printk -.L2500: - b .L2500 -.L2499: +.L2696: + b .L2696 +.L2695: strh w2, [x1,x0] -.L2498: +.L2694: add x19, x19, :lo12:.LANCHOR0 mov w0, -1 - strh wzr, [x19,2872] - strh w0, [x19,2848] -.L2522: + strh wzr, [x19,2864] + strh w0, [x19,2840] +.L2718: mov w0, 0 - b .L2495 -.L2497: + b .L2691 +.L2693: and w0, w0, 255 sub w0, w0, #1 add x0, x21, x0, sxtw 1 ldrh w1, [x0,40] mov w0, 65535 cmp w1, w0 - bne .L2501 + bne .L2697 adrp x1, .LANCHOR3 - adrp x0, .LC34 + adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR3 - add x0, x0, :lo12:.LC34 - add x1, x1, 752 - mov w2, 911 + add x0, x0, :lo12:.LC0 + add x1, x1, 600 + mov w2, 925 bl printk -.L2502: - b .L2502 -.L2501: - ldrh w0, [x20,3234] +.L2698: + b .L2698 +.L2697: + ldrh w0, [x20,3228] cmp w2, 160 - ldrh w3, [x20,3230] + ldrh w3, [x20,3270] mov w24, 1 sub w0, w0, #1 mul w1, w1, w3 uxth w0, w0 - bne .L2503 - ldrb w2, [x20,3193] + bne .L2699 + ldrb w2, [x20,3177] cmp w2, 2 uxth w24, w2 orr w1, w1, w2, lsl 24 - bne .L2503 - ldrh w0, [x20,3210] + bne .L2699 + ldrh w0, [x20,3194] sub w0, w0, #1 uxth w0, w0 -.L2503: +.L2699: add x20, x19, :lo12:.LANCHOR0 orr w23, w0, w1 mov w0, 1 - strb w24, [x20,2854] - strh wzr, [x20,2850] - strb wzr, [x20,2852] - strh wzr, [x20,2874] + strb w24, [x20,2846] + strh wzr, [x20,2842] + strb wzr, [x20,2844] + strh wzr, [x20,2866] bl buf_alloc mov w1, 1 str w23, [x0,40] mov x21, x0 bl sblk_read_page - ldrh w0, [x20,3210] + ldrh w0, [x20,3194] mov w1, 255 - ldrb w2, [x20,3212] + ldrb w2, [x20,3196] mul w2, w0, w2 - ldr x0, [x20,3184] + ldr x0, [x20,3168] lsl w2, w2, 2 bl ftl_memset - strh wzr, [x20,2872] + strh wzr, [x20,2864] ldr w0, [x21,52] cmp w0, 512 - beq .L2507 + beq .L2703 cmn w0, #1 - beq .L2507 + beq .L2703 ldr x0, [x21,24] ldr w1, [x0] mov w0, 15555 movk w0, 0xf55f, lsl 16 cmp w1, w0 - beq .L2506 - ldrh w0, [x20,2848] + beq .L2702 + ldrh w0, [x20,2840] mov x1, 0 bl ftl_sblk_dump ldr x0, [x21,24] @@ -16640,100 +18025,100 @@ gc_scan_src_blk: mov w0, 15555 movk w0, 0xf55f, lsl 16 cmp w1, w0 - beq .L2507 + beq .L2703 adrp x1, .LANCHOR3 - adrp x0, .LC34 + adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR3 - add x0, x0, :lo12:.LC34 - add x1, x1, 752 - mov w2, 941 + add x0, x0, :lo12:.LC0 + add x1, x1, 600 + mov w2, 955 bl printk -.L2508: - b .L2508 -.L2507: +.L2704: + b .L2704 +.L2703: mov x0, x21 bl buf_free mov w0, -1 - b .L2495 -.L2506: - ldrb w0, [x20,3212] + b .L2691 +.L2702: + ldrb w0, [x20,3196] mov x26, 0 - ldrh w22, [x20,3234] + ldrh w22, [x20,3228] mov w25, 1 ldr x23, [x21,8] mul w22, w0, w22 mul w22, w24, w22 mov w24, 21 uxth w22, w22 -.L2509: +.L2705: cmp w22, w26 - ble .L2523 + ble .L2719 ldr w0, [x23,x26,lsl 2] cmn w0, #1 - beq .L2511 + beq .L2707 bl lpa_hash_get_ppa str w0, [x29,92] cmn w0, #1 - bne .L2512 + bne .L2708 ldr w0, [x23,x26,lsl 2] add x1, x29, 92 mov w2, 0 bl pm_log2phys -.L2512: - ldrh w0, [x20,3218] +.L2708: + ldrh w0, [x20,3266] ldr w2, [x29,92] sub w1, w24, w0 - ldrh w3, [x20,2848] + ldrh w3, [x20,2840] lsl w1, w25, w1 lsr w0, w2, w0 sub w1, w1, #1 and w0, w1, w0 - ldrb w1, [x20,3216] + ldrb w1, [x20,3264] udiv w0, w0, w1 cmp w0, w3 - bne .L2511 - ldrh w3, [x20,2872] - ldr x0, [x20,3184] + bne .L2707 + ldrh w3, [x20,2864] + ldr x0, [x20,3168] str w2, [x0,x3,lsl 2] - ldrh w0, [x20,2872] + ldrh w0, [x20,2864] add w0, w0, 1 - strh w0, [x20,2872] -.L2511: + strh w0, [x20,2864] +.L2707: bl timer_get_time add x26, x26, 1 - b .L2509 -.L2523: + b .L2705 +.L2719: mov x0, x21 bl buf_free add x0, x19, :lo12:.LANCHOR0 - ldrh w1, [x0,2848] - ldr x3, [x0,2832] + ldrh w1, [x0,2840] + ldr x3, [x0,72] ubfiz x2, x1, 1, 16 ldrh w2, [x3,x2] - ldrh w3, [x0,2872] + ldrh w3, [x0,2864] cmp w2, w3 - beq .L2515 - adrp x0, .LC206 - add x0, x0, :lo12:.LC206 + beq .L2711 + adrp x0, .LC174 + add x0, x0, :lo12:.LC174 bl printk -.L2515: +.L2711: add x0, x19, :lo12:.LANCHOR0 - ldrh w2, [x0,2848] - ldr x1, [x0,2832] - ldrh w0, [x0,2872] + ldrh w2, [x0,2840] + ldr x1, [x0,72] + ldrh w0, [x0,2864] ldrh w1, [x1,x2,lsl 1] cmp w1, w0 - bcs .L2516 + bcs .L2712 bl vpn_check -.L2516: +.L2712: add x19, x19, :lo12:.LANCHOR0 - ldrh w2, [x19,2848] - ldr x1, [x19,2832] - ldrh w3, [x19,2872] + ldrh w2, [x19,2840] + ldr x1, [x19,72] + ldrh w3, [x19,2864] strh w3, [x1,x2,lsl 1] - strh wzr, [x19,2876] - ldrh w0, [x19,2872] -.L2495: + strh wzr, [x19,2868] + ldrh w0, [x19,2864] +.L2691: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -16755,63 +18140,63 @@ ftl_scan_all_data: stp x27, x28, [sp,96] stp x21, x22, [sp,48] bl buf_alloc - adrp x24, .LC208 + adrp x24, .LC176 mov x19, x0 - adrp x25, .LC209 - adrp x0, .LC207 + adrp x25, .LC177 + adrp x0, .LC175 mov w1, 0 - add x0, x0, :lo12:.LC207 + add x0, x0, :lo12:.LC175 mov w20, 0 - add x24, x24, :lo12:.LC208 - add x27, x25, :lo12:.LC209 + add x24, x24, :lo12:.LC176 + add x27, x25, :lo12:.LC177 bl printk -.L2525: +.L2721: adrp x21, .LANCHOR0 add x0, x21, :lo12:.LANCHOR0 ldr w0, [x0,2784] cmp w20, w0 - bcs .L2548 + bcs .L2744 mov w0, -1 str w0, [x19,36] - and w0, w20, 4095 - cbnz w0, .L2526 - ldr w2, [x29,124] - mov x0, x24 - mov w1, w20 - bl printk -.L2526: mov w0, w20 bl lpa_hash_get_ppa str w0, [x29,124] cmn w0, #1 - bne .L2527 + bne .L2722 mov w0, w20 add x1, x29, 124 mov w2, 0 bl pm_log2phys -.L2527: +.L2722: + and w0, w20, 4095 + cbnz w0, .L2723 + ldr w2, [x29,124] + mov x0, x24 + mov w1, w20 + bl printk +.L2723: ldr w0, [x29,124] str w0, [x19,40] str w0, [x19,44] cmn w0, #1 - beq .L2529 + beq .L2725 mov x0, x19 mov w1, 1 bl sblk_read_page ldr w3, [x19,52] cmn w3, #1 - beq .L2530 + beq .L2726 cmp w3, 256 - beq .L2530 + beq .L2726 ldr x0, [x19,24] ldr w0, [x0,4] cmp w0, w20 - beq .L2529 -.L2530: + beq .L2725 +.L2726: ldr x0, [x19,8] - add x23, x25, :lo12:.LC209 + add x23, x25, :lo12:.LC177 ldr x7, [x19,24] - adrp x26, .LC210 + adrp x26, .LC178 ldr w1, [x0] str w1, [sp] mov w1, w20 @@ -16828,24 +18213,24 @@ ftl_scan_all_data: ldr w22, [x0,4] ldr w0, [x0,8] cmn w0, #1 - bne .L2532 -.L2534: + bne .L2728 +.L2730: add x21, x21, :lo12:.LANCHOR0 mov w0, w20 bl lpa_hash_get_ppa mov w4, w0 ldrb w22, [x21,2776] - add x0, x26, :lo12:.LC210 + add x0, x26, :lo12:.LC178 mov w1, w20 - adrp x26, .LC212 + adrp x26, .LC180 lsl w28, w22, 7 lsl w3, w22, 7 sub w3, w3, #1 mov x22, 0 sdiv w28, w20, w28 and w3, w20, w3 - add x21, x21, 3784 - add x26, x26, :lo12:.LC212 + add x21, x21, 3824 + add x26, x26, :lo12:.LC180 uxth w3, w3 uxth w23, w28 mov w2, w23 @@ -16854,12 +18239,12 @@ ftl_scan_all_data: add x1, x29, 124 mov w2, 0 bl pm_log2phys - b .L2533 -.L2532: + b .L2729 +.L2728: add x1, x21, :lo12:.LANCHOR0 ldr w1, [x1,2784] cmp w22, w1 - bcs .L2534 + bcs .L2730 str w0, [x19,40] mov w1, 1 mov x0, x19 @@ -16883,12 +18268,12 @@ ftl_scan_all_data: bl lpa_hash_get_ppa str w0, [x29,124] cmn w0, #1 - bne .L2535 + bne .L2731 mov w0, w22 add x1, x29, 124 mov w2, 0 bl pm_log2phys -.L2535: +.L2731: ldr w0, [x29,124] mov w1, 1 str w0, [x19,40] @@ -16925,7 +18310,7 @@ ftl_scan_all_data: and w3, w3, w22 mov w1, w22 uxth w2, w2 - add x0, x26, :lo12:.LC210 + add x0, x26, :lo12:.LC178 uxth w3, w3 bl printk mov w0, w22 @@ -16934,48 +18319,48 @@ ftl_scan_all_data: mov x22, 0 bl pm_log2phys ldr x5, [x29,96] - adrp x4, .LC211 - add x4, x4, :lo12:.LC211 - add x23, x5, 3784 -.L2537: + adrp x4, .LC179 + add x4, x4, :lo12:.LC179 + add x23, x5, 3824 +.L2733: add x0, x23, x22 ldr x1, [x0,8] - cbz x1, .L2536 + cbz x1, .L2732 ldrh w0, [x22,x23] cmp w0, w28 - bne .L2536 + bne .L2732 mov x0, x4 mov w2, 4 mov w3, 4096 str x4, [x29,104] bl rknand_print_hex ldr x4, [x29,104] -.L2536: +.L2732: add x22, x22, 16 cmp x22, 512 - bne .L2537 - b .L2534 -.L2549: + bne .L2733 + b .L2730 +.L2745: ldrh w0, [x22,x21] cmp w0, w23 - bne .L2538 + bne .L2734 mov x0, x26 mov w2, 4 mov w3, 4096 bl rknand_print_hex -.L2538: +.L2734: add x22, x22, 16 cmp x22, 512 - beq .L2529 -.L2533: + beq .L2725 +.L2729: add x0, x21, x22 ldr x1, [x0,8] - cbnz x1, .L2549 - b .L2538 -.L2529: + cbnz x1, .L2745 + b .L2734 +.L2725: add w20, w20, 1 - b .L2525 -.L2548: + b .L2721 +.L2744: mov x0, x19 bl buf_free sub sp, x29, #16 @@ -16989,867 +18374,6 @@ ftl_scan_all_data: ret .size ftl_scan_all_data, .-ftl_scan_all_data .align 2 - .global gc_recovery - .type gc_recovery, %function -gc_recovery: - sub sp, sp, #208 - stp x29, x30, [sp,32] - add x29, sp, 32 - stp x19, x20, [sp,48] - adrp x19, .LANCHOR0 - stp x23, x24, [sp,80] - add x24, x19, :lo12:.LANCHOR0 - stp x21, x22, [sp,64] - stp x25, x26, [sp,96] - stp x27, x28, [sp,112] - adrp x22, .LANCHOR4 - strb wzr, [x24,3209] - add x0, x22, :lo12:.LANCHOR4 - ldr x20, [x24,2792] - add x21, x20, 80 - strb wzr, [x0,1010] - bl gc_init - ldrh w1, [x20,80] - mov w0, 65535 - str x22, [x29,152] - cmp w1, w0 - ldr x0, [x24,2792] - beq .L2551 - mov w1, -1 - strh w1, [x0,130] - mov w0, 1 - bl buf_alloc - mov x23, x0 - ldrb w0, [x21,9] - ldrh w1, [x24,3230] - sub w0, w0, #1 - add x0, x21, x0, sxtw 1 - ldrh w0, [x0,16] - mul w0, w0, w1 - ldrb w1, [x24,3193] - str w0, [x29,168] - cmp w1, 3 - bne .L2552 - ldrh w1, [x24,3234] - sub w1, w1, #1 - add w0, w1, w0 - orr w0, w0, 50331648 - b .L2598 -.L2552: - cmp w1, 2 - bne .L2553 - ldrh w1, [x24,3234] - add w0, w0, w1, lsl 1 - sub w0, w0, #1 - orr w0, w0, 33554432 -.L2598: - str w0, [x23,40] -.L2553: - mov x0, x23 - mov w1, 1 - bl sblk_read_page - ldr w0, [x23,52] - cmp w0, 512 - beq .L2554 - cmn w0, #1 - beq .L2554 - ldr x0, [x23,24] - ldr w1, [x0] - mov w0, 15555 - movk w0, 0xf55f, lsl 16 - cmp w1, w0 - beq .L2555 -.L2554: - mov x0, x23 - bl buf_free - ldr x7, [x23,24] - ldr x6, [x23,8] - ldr w0, [x7,4] - str w0, [sp] - ldr w0, [x7,8] - str w0, [sp,8] - ldr w0, [x7,12] - str w0, [sp,16] - adrp x0, .LC213 - add x0, x0, :lo12:.LC213 - ldr w3, [x6] - ldr w4, [x6,4] - ldr w5, [x6,8] - ldr w1, [x23,40] - ldr w2, [x23,52] - ldr w6, [x6,12] - ldr w7, [x7] - bl printk - b .L2601 -.L2555: - add x24, x19, :lo12:.LANCHOR0 - ldr x0, [x29,152] - ldr x1, [x23,8] - add x25, x0, :lo12:.LANCHOR4 - ldrb w2, [x24,3212] - ldrh w0, [x24,3210] - mul w2, w0, w2 - ldr x0, [x25,1016] - lsl w2, w2, 2 - bl ftl_memcpy - ldrh w0, [x24,3210] - ldrb w2, [x24,3212] - ldr x1, [x23,8] - mul w2, w0, w2 - add x1, x1, x2, sxtw 2 - ldr x0, [x25,1024] - lsl w2, w2, 2 - bl ftl_memcpy - ldrh w4, [x24,3210] - adrp x0, .LC214 - ldrb w3, [x24,3212] - add x0, x0, :lo12:.LC214 - ldr x1, [x25,1016] - mov w2, 4 - mul w3, w4, w3 - bl rknand_print_hex - ldrh w4, [x24,3210] - adrp x0, .LC215 - ldrb w3, [x24,3212] - add x0, x0, :lo12:.LC215 - ldr x1, [x25,1024] - mov w2, 4 - mul w3, w4, w3 - bl rknand_print_hex - ldrb w27, [x24,3193] - ldrh w26, [x24,3234] - cmp w27, 2 - bne .L2557 - lsl w26, w26, 1 - mov w27, 1 -.L2557: - mov w22, 0 - adrp x24, .LC216 - add x0, x24, :lo12:.LC216 - mov w25, w22 - str x0, [x29,128] - b .L2558 -.L2603: - ldr x0, [x0,1024] - ldr w1, [x0,x12] - ldr w0, [x7,8] - cmp w1, w0 - bne .L2562 -.L2587: - add w25, w25, 1 - add w28, w28, 1 -.L2566: - cmp w28, w27 - bhi .L2602 - ldr x0, [x29,144] - add x1, x19, :lo12:.LANCHOR0 - add x0, x0, 8 - ldrh w2, [x1,3230] - ldrb w1, [x1,3193] - ldrh w0, [x21,x0,lsl 1] - cmp w1, 3 - mul w0, w0, w2 - str w0, [x29,168] - bne .L2559 - add w0, w0, w22 - orr w0, w0, w28, lsl 24 -.L2599: - str w0, [x23,40] - mov w1, 1 - mov x0, x23 - bl sblk_read_page - ldr x0, [x29,152] - sbfiz x12, x25, 2, 32 - ldr x7, [x23,24] - add x0, x0, :lo12:.LANCHOR4 - ldr w6, [x7,4] - ldr x1, [x0,1016] - ldr w3, [x1,x12] - cmp w3, w6 - beq .L2603 -.L2562: - ldr x0, [x29,152] - str x12, [x29,120] - add x13, x0, :lo12:.LANCHOR4 - ldr w0, [x7,12] - str x13, [x29,112] - ldr x4, [x13,1024] - str w0, [sp] - ldr x0, [x29,128] - ldr w4, [x4,x12] - ldr w5, [x7] - ldr w1, [x23,40] - ldr w2, [x23,52] - ldr w7, [x7,8] - bl printk - ldr x13, [x29,112] - ldr x12, [x29,120] - ldr x0, [x13,1016] - ldr w0, [x0,x12] - cmn w0, #1 - beq .L2587 - mov x0, x23 - bl buf_free -.L2601: - add x0, x19, :lo12:.LANCHOR0 - ldrh w2, [x20,80] - mov w28, 0 - ldr x1, [x0,2832] - strh wzr, [x1,x2,lsl 1] - ldr x0, [x0,2792] - ldrh w1, [x20,80] - strh w1, [x0,130] - b .L2556 -.L2565: - add w22, w22, 1 -.L2558: - cmp w22, w26 - beq .L2567 - sub w0, w22, #1 - mov w24, 0 - str w0, [x29,140] -.L2568: - ldrb w0, [x21,9] - cmp w24, w0 - bge .L2565 - sxtw x0, w24 - mov w28, 1 - str x0, [x29,144] - b .L2566 -.L2559: - cmp w1, 2 - bne .L2561 - ldr w1, [x29,140] - add w0, w0, w1 - add w0, w0, w28 - orr w0, w0, 33554432 - b .L2599 -.L2561: - add w0, w0, w22 - b .L2599 -.L2602: - add w24, w24, 1 - b .L2568 -.L2567: - mov x0, x23 - mov w28, 0 - mov w23, w28 - bl buf_free - str w28, [x29,144] - add x0, x19, :lo12:.LANCHOR0 - ldrb w1, [x21,9] - ldrh w3, [x20,80] - ldr x2, [x0,2832] - ldrh w0, [x0,3210] - mul w0, w1, w0 - strh w0, [x2,x3,lsl 1] - adrp x0, .LC217 - add x0, x0, :lo12:.LC217 - str x0, [x29,104] -.L2569: - cmp w23, w26 - beq .L2582 - sub w0, w23, #1 - mov w25, 0 - str w0, [x29,112] -.L2583: - ldrb w0, [x21,9] - cmp w25, w0 - bge .L2580 - sxtw x0, w25 - mov w24, 1 - str x0, [x29,120] -.L2581: - cmp w24, w27 - bhi .L2604 - ldr x1, [x29,152] - ldr w0, [x29,144] - add x1, x1, :lo12:.LANCHOR4 - sbfiz x0, x0, 2, 32 - ldr x2, [x1,1016] - ldr w22, [x2,x0] - cmn w22, #1 - beq .L2570 - ldr x1, [x1,1024] - ldr w0, [x1,x0] - str w0, [x29,140] - mov w0, w22 - bl lpa_hash_get_ppa - str w0, [x29,172] - cmn w0, #1 - bne .L2571 - mov w0, w22 - add x1, x29, 172 - mov w2, 0 - bl pm_log2phys -.L2571: - ldr x0, [x29,120] - add x0, x0, 8 - ldrh w3, [x21,x0,lsl 1] - add x0, x19, :lo12:.LANCHOR0 - ldrh w1, [x0,3230] - ldrb w0, [x0,3193] - cmp w0, 3 - mul w3, w3, w1 - bne .L2572 - add w3, w3, w23 - orr w3, w3, w24, lsl 24 - b .L2600 -.L2572: - cmp w0, 2 - bne .L2574 - ldr w0, [x29,112] - add w3, w3, w0 - add w3, w3, w24 - orr w3, w3, 33554432 - b .L2600 -.L2574: - add w3, w3, w23 -.L2600: - add x0, x19, :lo12:.LANCHOR0 - str w3, [x29,168] - ldr w1, [x29,140] - mov w4, 21 - mov w2, 1 - ldrh w3, [x0,3218] - ldrb w0, [x0,3216] - lsr w1, w1, w3 - sub w3, w4, w3 - lsl w3, w2, w3 - sub w3, w3, #1 - and w3, w1, w3 - ldr w1, [x29,140] - udiv w3, w3, w0 - uxth w0, w3 - str w0, [x29,128] - ldr w0, [x29,172] - cmp w0, w1 - bne .L2575 - ldr x0, [x29,104] - mov w1, w22 - ldr w2, [x29,168] - bl pm_ppa_update_check - cbz w0, .L2576 -.L2597: - b .L2597 -.L2576: - mov w0, w22 - add x1, x29, 168 - mov w2, 1 - add w28, w28, 1 - bl pm_log2phys - ldrh w0, [x29,128] - bl ftl_vpn_decrement - b .L2578 -.L2575: - ldr w1, [x29,168] - cmp w0, w1 - csinc w28, w28, w28, ne -.L2578: - ldr w0, [x29,144] - add x2, x19, :lo12:.LANCHOR0 - add w0, w0, 1 - str w0, [x29,144] - ldr w0, [x29,128] - ldr x1, [x2,2840] - add x1, x1, x0, lsl 2 - ldrb w1, [x1,2] - ands w1, w1, 224 - bne .L2570 - lsl x0, x0, 1 - ldr x2, [x2,2832] - ldrh w3, [x2,x0] - cbz w3, .L2570 - strh w1, [x2,x0] -.L2570: - add w24, w24, 1 - b .L2581 -.L2604: - add w25, w25, 1 - b .L2583 -.L2580: - add w23, w23, 1 - b .L2569 -.L2582: - add x0, x19, :lo12:.LANCHOR0 - ldrh w1, [x20,80] - ldr x0, [x0,2832] - strh w28, [x0,x1,lsl 1] -.L2556: - ldrh w1, [x20,80] - adrp x0, .LC218 - mov w2, w28 - add x0, x0, :lo12:.LC218 - bl printk - mov w0, -1 - strh w0, [x20,80] - bl pm_flush - bl ftl_ext_info_flush - add x0, x19, :lo12:.LANCHOR0 - mov w1, 65535 - ldr x0, [x0,2792] - ldrh w0, [x0,130] - cmp w0, w1 - beq .L2584 - bl ftl_free_sblk -.L2584: - add x19, x19, :lo12:.LANCHOR0 - mov w0, -1 - ldr x1, [x19,2800] - strh w0, [x1,126] - ldr x1, [x19,2792] - strh w0, [x1,130] - mov w0, 0 - bl ftl_info_flush - b .L2550 -.L2551: - ldrh w0, [x0,130] - cmp w0, w1 - beq .L2550 - ldr x1, [x24,2800] - ldrh w1, [x1,126] - cmp w1, w0 - bne .L2586 - bl pm_flush - ldr x0, [x24,2792] - ldrh w0, [x0,130] - bl ftl_free_sblk - ldr x0, [x24,2800] - mov w1, -1 - strh w1, [x0,126] - mov w0, 0 - bl ftl_info_flush -.L2586: - add x19, x19, :lo12:.LANCHOR0 - mov w1, -1 - ldr x0, [x19,2792] - strh w1, [x0,130] -.L2550: - sub sp, x29, #32 - ldp x19, x20, [sp,48] - ldp x21, x22, [sp,64] - ldp x23, x24, [sp,80] - ldp x25, x26, [sp,96] - ldp x27, x28, [sp,112] - ldp x29, x30, [sp,32] - add sp, sp, 208 - ret - .size gc_recovery, .-gc_recovery - .align 2 - .global zftl_init - .type zftl_init, %function -zftl_init: - stp x29, x30, [sp, -64]! - adrp x1, .LANCHOR5+384 - mov w0, -1 - add x29, sp, 0 - stp x19, x20, [sp,16] - adrp x19, .LANCHOR0 - str x23, [sp,48] - add x20, x19, :lo12:.LANCHOR0 - strb w0, [x1,#:lo12:.LANCHOR5+384] - stp x21, x22, [sp,32] - adrp x1, .LC47 - strb w0, [x20,2808] - mov w0, -1 - str w0, [x20,2812] - adrp x0, .LC46 - add x1, x1, :lo12:.LC47 - add x0, x0, :lo12:.LC46 - strb wzr, [x20,2809] - strb wzr, [x20,3772] - bl printk - adrp x1, .LANCHOR2 - ldrb w4, [x20,57] - add x1, x1, :lo12:.LANCHOR2 - adrp x8, .LANCHOR7 - strb w4, [x20,3232] - ldrh w5, [x20,170] - ldrb w3, [x1,381] - ldrb w7, [x1,380] - ldrh w2, [x1,378] - strb w3, [x20,3216] - mul w3, w3, w4 - add x4, x8, :lo12:.LANCHOR7 - ldrb w0, [x1,377] - ldrh w9, [x1,382] - mov w1, 0 - sdiv w6, w2, w7 - strb w7, [x20,3193] - strb w0, [x20,2776] - uxtb w3, w3 - strh w2, [x20,3210] - ubfiz w11, w0, 9, 7 - strh w6, [x20,3234] - strb w3, [x20,3212] - strh w9, [x20,2826] - strh w11, [x4,3154] - mov w4, 1 - strh w5, [x20,3230] - mov x20, x8 -.L2606: - cmp w4, w5 - bhi .L2627 - add w1, w1, 1 - lsl w4, w4, 1 - uxth w1, w1 - b .L2606 -.L2627: - add x8, x19, :lo12:.LANCHOR0 - sub w1, w1, #1 - mul w4, w0, w2 - mul w6, w6, w3 - strh w1, [x8,3218] - mov w1, 57344 - movk w1, 0x1c, lsl 16 - adrp x21, .LANCHOR9 - mul w2, w4, w9 - mul w1, w3, w1 - lsr w5, w2, 21 - add x10, x21, :lo12:.LANCHOR9 - mul w2, w2, w3 - mul w1, w1, w5 - str w2, [x8,2780] - cmp w7, 2 - add w5, w1, 24576 - str w1, [x8,4] - mul w3, w4, w3 - udiv w2, w5, w0 - sub w0, w11, #1 - str w2, [x8,2784] - str w5, [x10,1112] - add w0, w0, w2, lsl 2 - add x2, x20, :lo12:.LANCHOR7 - udiv w3, w5, w3 - add w3, w3, 2 - strh w3, [x8,3224] - udiv w0, w0, w11 - strh w0, [x2,3138] - adrp x2, .LANCHOR4 - ubfiz w0, w0, 4, 16 - add x11, x2, :lo12:.LANCHOR4 - mov x22, x2 - sdiv w0, w0, w6 - strh w0, [x11,1040] - add w0, w9, w9, lsl 1 - asr w0, w0, 2 - strh w0, [x8,3226] - lsr w0, w9, 4 - strh w0, [x10,1116] - mov w0, 4000 - strh w0, [x8,3220] - mov w0, 50 - strh w0, [x8,3222] - beq .L2608 - ldrb w0, [x8,3208] - cbz w0, .L2609 -.L2608: - add x0, x19, :lo12:.LANCHOR0 - mov w2, 150 - strh w2, [x0,3222] -.L2609: - adrp x0, .LC219 - add x19, x19, :lo12:.LANCHOR0 - add x0, x0, :lo12:.LC219 - add x21, x21, :lo12:.LANCHOR9 - add x20, x20, :lo12:.LANCHOR7 - adrp x23, .LANCHOR6 - bl printk - add x23, x23, :lo12:.LANCHOR6 - ldr w1, [x19,2780] - adrp x0, .LC220 - add x0, x0, :lo12:.LC220 - bl printk - ldr w1, [x19,2784] - adrp x0, .LC221 - add x0, x0, :lo12:.LC221 - bl printk - ldr w1, [x21,1112] - adrp x0, .LC222 - add x0, x0, :lo12:.LC222 - bl printk - ldrh w1, [x20,3138] - adrp x0, .LC223 - add x0, x0, :lo12:.LC223 - bl printk - ldrh w1, [x20,3154] - adrp x0, .LC224 - add x0, x0, :lo12:.LC224 - bl printk - add x2, x22, :lo12:.LANCHOR4 - adrp x0, .LC225 - add x0, x0, :lo12:.LC225 - ldrh w1, [x2,1040] - bl printk - ldrh w1, [x21,1116] - adrp x0, .LC226 - add x0, x0, :lo12:.LC226 - bl printk - ldrh w1, [x19,3224] - adrp x0, .LC227 - add x0, x0, :lo12:.LC227 - bl printk - bl buf_init - ldrb w1, [x19,3212] - ldrh w0, [x19,3234] - mul w0, w0, w1 - lsl w0, w0, 2 - bl ftl_malloc - str x0, [x19,3760] - ldrb w1, [x19,3212] - sub x2, x23, #192 - ldrh w0, [x19,3234] - str x2, [x19,3752] - mul w1, w0, w1 - ldrh w0, [x19,2826] - lsl w1, w1, 1 - add x3, x2, x1, sxtw 2 - str x3, [x19,2832] - add w1, w1, w0, lsr 1 - adrp x0, .LC228 - add x0, x0, :lo12:.LC228 - add x1, x2, x1, sxtw 2 - str x1, [x19,2792] - bl printk - ldrb w21, [x19,3212] - ldrh w0, [x19,3234] - ldrh w1, [x19,2826] - ldrh w22, [x20,3138] - mul w21, w0, w21 - lsl w22, w22, 2 - adrp x0, .LC229 - add w22, w22, w1, lsl 2 - ldrh w3, [x20,3154] - add w21, w1, w21, lsl 2 - add w22, w22, 704 - lsl w21, w21, 1 - add x0, x0, :lo12:.LC229 - add w21, w21, 612 - mov w2, w22 - mov w1, w21 - bl printk - ldrh w0, [x20,3154] - cmp w21, w0 - bhi .L2611 - cmp w22, w0 - bls .L2610 -.L2611: -.L2612: - b .L2612 -.L2610: - bl sblk_init - bl ftl_info_blk_init - cmn w0, #1 - beq .L2613 - bl ftl_ext_info_init - mov w0, 1 - bl pm_init - bl lpa_rebuild_hash - ldr x0, [x19,2792] - mov x1, 0 - add x0, x0, 16 - bl ftl_open_sblk_recovery - ldr x1, [x19,2792] - add x0, x1, 48 - add x1, x1, 16 - bl ftl_open_sblk_recovery - ldr x1, [x19,2800] - ldr w0, [x1,8] - add w0, w0, 16 - str w0, [x1,8] - ldr x0, [x19,2792] - add x0, x0, 16 - bl ftl_info_data_recovery - ldr x0, [x19,2792] - add x0, x0, 48 - bl ftl_info_data_recovery - ldr x0, [x19,2792] - add x0, x0, 80 - bl ftl_info_data_recovery - bl gc_recovery - bl ftl_info_check - bl pm_flush - mov w0, 1 - bl ftl_total_vpn_update - ldrb w0, [x23,-256] - cbz w0, .L2614 - ldr x1, [x19,2800] - ldr w0, [x1,68] - add w0, w0, 1 - str w0, [x1,68] -.L2614: - bl ftl_ext_info_flush - mov w0, 0 - bl ftl_info_flush - bl print_ftl_debug_info - mov w0, 0 -.L2613: - ldp x19, x20, [sp,16] - ldp x21, x22, [sp,32] - ldr x23, [sp,48] - ldp x29, x30, [sp], 64 - ret - .size zftl_init, .-zftl_init - .align 2 - .global rk_ftl_init - .type rk_ftl_init, %function -rk_ftl_init: - stp x29, x30, [sp, -32]! - adrp x0, jiffies - add x29, sp, 0 - stp x19, x20, [sp,16] - adrp x19, .LANCHOR4 - ldr x0, [x0,#:lo12:jiffies] - add x19, x19, :lo12:.LANCHOR4 - str x0, [x19,1048] - mov w0, 136 - bl ftl_malloc - str x0, [x19,1056] - cbnz x0, .L2629 -.L2631: - mov w0, -1 - b .L2630 -.L2629: - adrp x20, .LANCHOR9 - mov w0, 2048 - add x20, x20, :lo12:.LANCHOR9 - bl ftl_malloc - str xzr, [x19,1064] - add x1, x20, 1128 - str x0, [x20,1120] - add x0, x19, 1064 - str xzr, [x20,1128] - bl rknand_get_reg_addr - ldr x0, [x19,1064] - cbz x0, .L2631 - bl rk_nandc_irq_init - mov w1, 0 - ldr x0, [x20,1120] - mov w2, w1 - mov w3, 2048 - bl flash_sram_load_store - bl rknand_flash_cs_init - ldr x0, [x19,1056] - adrp x1, zftl_deinit - add x1, x1, :lo12:zftl_deinit - str x1, [x0,80] - adrp x1, zftl_cache_flush - add x1, x1, :lo12:zftl_cache_flush - str x1, [x0,64] - adrp x1, zftl_flash_suspend - add x1, x1, :lo12:zftl_flash_suspend - str x1, [x0,88] - adrp x1, zftl_flash_resume - add x1, x1, :lo12:zftl_flash_resume - str x1, [x0,96] - adrp x1, zftl_get_density - add x1, x1, :lo12:zftl_get_density - str x1, [x0,72] - adrp x1, zftl_read_flash_info - add x1, x1, :lo12:zftl_read_flash_info - str x1, [x0,112] - adrp x1, zftl_read - add x1, x1, :lo12:zftl_read - str x1, [x0,40] - adrp x1, zftl_write - add x1, x1, :lo12:zftl_write - str x1, [x0,48] - adrp x1, zftl_sys_read - add x1, x1, :lo12:zftl_sys_read - str x1, [x0,24] - adrp x1, zftl_sys_write - add x1, x1, :lo12:zftl_sys_write - str x1, [x0,32] - adrp x1, zftl_vendor_read - add x1, x1, :lo12:zftl_vendor_read - str x1, [x0,8] - adrp x1, zftl_vendor_write - add x1, x1, :lo12:zftl_vendor_write - str x1, [x0,16] - adrp x1, zftl_nandc_get_irq_status - add x1, x1, :lo12:zftl_nandc_get_irq_status - str x1, [x0,120] - adrp x1, zftl_proc_ftl_read - add x1, x1, :lo12:zftl_proc_ftl_read - str x1, [x0,128] - adrp x1, zftl_do_gc - add x1, x1, :lo12:zftl_do_gc - str x1, [x0,104] - adrp x1, zftl_discard - add x1, x1, :lo12:zftl_discard - str x1, [x0,56] - ldr x0, [x19,1064] - bl nand_flash_init - cbnz w0, .L2632 - bl zftl_init - b .L2637 -.L2632: - ldr x0, [x19,1056] - adrp x1, ftl_deinit - add x1, x1, :lo12:ftl_deinit - str x1, [x0,80] - adrp x1, ftl_cache_flush - add x1, x1, :lo12:ftl_cache_flush - str x1, [x0,64] - adrp x1, ftl_flash_suspend - add x1, x1, :lo12:ftl_flash_suspend - str x1, [x0,88] - adrp x1, ftl_flash_resume - add x1, x1, :lo12:ftl_flash_resume - str x1, [x0,96] - adrp x1, ftl_get_density - add x1, x1, :lo12:ftl_get_density - str x1, [x0,72] - adrp x1, ftl_read_flash_info - add x1, x1, :lo12:ftl_read_flash_info - str x1, [x0,112] - adrp x1, ftl_read - add x1, x1, :lo12:ftl_read - str x1, [x0,40] - adrp x1, ftl_write - add x1, x1, :lo12:ftl_write - str x1, [x0,48] - adrp x1, ftl_nandc_get_irq_status - add x1, x1, :lo12:ftl_nandc_get_irq_status - str x1, [x0,120] - adrp x1, ftl_proc_ftl_read - add x1, x1, :lo12:ftl_proc_ftl_read - str x1, [x0,128] - adrp x1, ftl_do_gc - add x1, x1, :lo12:ftl_do_gc - str x1, [x0,104] - adrp x1, ftl_discard - add x1, x1, :lo12:ftl_discard - str x1, [x0,56] - ldr x0, [x19,1064] - bl FlashInit - mov w20, w0 - adrp x0, .LANCHOR2 - adrp x1, gNandParaInfo - add x0, x0, :lo12:.LANCHOR2 - add x1, x1, :lo12:gNandParaInfo - add x0, x0, 368 - mov w2, 32 - bl ftl_memcpy - strb wzr, [x19,1136] - adrp x0, .LANCHOR0+58 - strb wzr, [x0,#:lo12:.LANCHOR0+58] - cbnz w20, .L2633 - bl FtlInit -.L2637: - mov w20, w0 -.L2633: - adrp x0, .LC230 - mov w1, w20 - add x0, x0, :lo12:.LC230 - bl printk - mov w0, w20 -.L2630: - ldp x19, x20, [sp,16] - ldp x29, x30, [sp], 32 - ret - .size rk_ftl_init, .-rk_ftl_init - .align 2 .global ftl_update_l2p_map .type ftl_update_l2p_map, %function ftl_update_l2p_map: @@ -17865,39 +18389,39 @@ ftl_update_l2p_map: stp x25, x26, [sp,64] ldrb w1, [x23,9] mov x27, 0 - ldrh w24, [x0,3234] + ldrh w24, [x0,3228] mov w22, w27 - ldr x0, [x0,3752] + ldr x0, [x0,3792] ldrh w20, [x23,12] mul w24, w24, w1 add x20, x0, x20, lsl 2 add x0, x20, x24, sxtw 2 ldr w0, [x0,-4] cmn w0, #1 - beq .L2639 + beq .L2747 adrp x1, .LANCHOR3 - adrp x0, .LC34 + adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR3 - add x0, x0, :lo12:.LC34 - add x1, x1, 768 - mov w2, 889 - bl printk -.L2640: - b .L2640 -.L2639: - adrp x25, .LC232 - adrp x26, .LC231 - add x0, x25, :lo12:.LC232 + add x0, x0, :lo12:.LC0 + add x1, x1, 616 + mov w2, 1437 + bl printk +.L2748: + b .L2748 +.L2747: + adrp x25, .LC182 + adrp x26, .LC181 + add x0, x25, :lo12:.LC182 str x0, [x29,120] - add x0, x26, :lo12:.LC231 + add x0, x26, :lo12:.LC181 str x0, [x29,112] -.L2663: +.L2771: cmp w27, w24 mov w25, w27 - bge .L2664 + bge .L2772 ldr w2, [x20,x27,lsl 2] cmn w2, #1 - beq .L2641 + beq .L2749 add x0, x19, :lo12:.LANCHOR0 ldrb w21, [x0,2776] adrp x0, .LANCHOR2 @@ -17906,26 +18430,26 @@ ftl_update_l2p_map: ldr w0, [x0,400] udiv w21, w2, w21 and w21, w21, 65535 - tbz x0, 12, .L2642 + tbz x0, 12, .L2750 ldr x0, [x29,112] mov w1, w21 mov w3, w27 bl printk -.L2642: +.L2750: mov w28, -1 -.L2646: +.L2754: sbfiz x26, x25, 2, 32 ldr w0, [x20,x26] cmn w0, #1 - beq .L2643 + beq .L2751 add x6, x19, :lo12:.LANCHOR0 ldrb w1, [x6,2776] lsl w1, w1, 7 udiv w0, w0, w1 cmp w21, w0, uxth - bne .L2643 + bne .L2751 ldrb w0, [x23,9] - ldrh w2, [x6,3230] + ldrh w2, [x6,3270] str x6, [x29,104] sdiv w1, w25, w0 msub w0, w1, w0, w25 @@ -17937,16 +18461,16 @@ ftl_update_l2p_map: ldr w1, [x20,x26] bl pm_ppa_update_check ldr x6, [x29,104] - cbz w0, .L2644 - adrp x0, .LC233 - ldr x1, [x6,3752] - add x0, x0, :lo12:.LC233 + cbz w0, .L2752 + adrp x0, .LC183 + ldr x1, [x6,3792] + add x0, x0, :lo12:.LC183 mov w2, 4 mov w3, w24 bl rknand_print_hex -.L2645: - b .L2645 -.L2644: +.L2753: + b .L2753 +.L2752: ldr w0, [x20,x26] add x1, x29, 140 mov w2, 1 @@ -17954,30 +18478,30 @@ ftl_update_l2p_map: bl pm_log2phys uxth w22, w22 str w28, [x20,x26] -.L2643: +.L2751: add w25, w25, 1 cmp w25, w24 - bne .L2646 -.L2641: + bne .L2754 +.L2749: add x27, x27, 1 - b .L2663 -.L2664: + b .L2771 +.L2772: adrp x0, .LANCHOR2+400 ldr w0, [x0,#:lo12:.LANCHOR2+400] - tbz x0, 12, .L2648 + tbz x0, 12, .L2756 add x0, x19, :lo12:.LANCHOR0 ldrh w1, [x23] mov w2, w22 ubfiz x3, x1, 1, 16 - ldr x4, [x0,2832] - adrp x0, .LC234 - add x0, x0, :lo12:.LC234 + ldr x4, [x0,72] + adrp x0, .LC184 + add x0, x0, :lo12:.LC184 ldrh w3, [x4,x3] bl printk -.L2648: +.L2756: add x19, x19, :lo12:.LANCHOR0 ldrh w1, [x23] - ldr x0, [x19,2832] + ldr x0, [x19,72] strh w22, [x0,x1,lsl 1] ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -17997,13 +18521,19 @@ ftl_alloc_new_data_sblk: mov x19, x0 bl ftl_update_l2p_map bl pm_flush - adrp x0, .LANCHOR0+2792 + ldrh w0, [x19] + mov w1, 65535 + cmp w0, w1 + beq .L2774 + bl zftl_insert_data_list +.L2774: + adrp x0, .LANCHOR0+80 mov w2, 2 - ldr x1, [x0,#:lo12:.LANCHOR0+2792] - mov x0, x19 - add x1, x1, 16 - cmp x19, x1 mov w1, 3 + ldr x0, [x0,#:lo12:.LANCHOR0+80] + add x0, x0, 16 + cmp x19, x0 + mov x0, x19 csel w1, w2, w1, eq bl ftl_open_sblk_init bl ftl_ext_info_flush @@ -18030,57 +18560,57 @@ ftl_write_commit: add x0, x0, :lo12:.LANCHOR5 str x0, [x29,120] stp x19, x20, [sp,16] - add x0, x0, 384 + add x0, x0, 449 str x0, [x29,104] stp x21, x22, [sp,32] stp x25, x26, [sp,64] stp x27, x28, [sp,80] -.L2669: - ldrb w0, [x24,2809] +.L2778: + ldrb w0, [x24,2819] adrp x21, .LANCHOR0 - cbz w0, .L2671 - ldrb w1, [x24,2808] + cbz w0, .L2780 + ldrb w1, [x24,2818] sub w0, w0, #1 ldr x2, [x29,128] str x1, [x29,112] lsl x1, x1, 6 add x26, x2, x1 - strb w0, [x24,2809] + strb w0, [x24,2819] ldr w0, [x24,2784] ldrb w1, [x2,x1] ldr w23, [x26,36] - strb w1, [x24,2808] + strb w1, [x24,2818] cmp w23, w0 - bcc .L2672 + bcc .L2781 mov x0, x26 bl buf_free mov w0, -1 - b .L2726 -.L2672: + b .L2836 +.L2781: ldr x0, [x26,24] str x0, [x29,136] - ldrb w0, [x24,3772] + ldrb w0, [x24,3812] ldr x27, [x26,8] ldrb w22, [x26,57] ldrb w20, [x26,56] - cbz w0, .L2674 + cbz w0, .L2783 ldr x0, [x29,120] add x1, x21, :lo12:.LANCHOR0 add x1, x1, 728 - ldrb w3, [x0,384] + ldrb w3, [x0,449] ldr x0, [x29,128] add x3, x0, x3, lsl 6 -.L2675: +.L2784: ldrb w0, [x3] cmp w0, 255 - beq .L2729 + beq .L2837 sbfiz x3, x0, 6, 32 add x3, x1, x3 - b .L2675 -.L2729: + b .L2784 +.L2837: ldr w0, [x3,36] cmp w0, w23 - bne .L2674 + bne .L2783 ldr x0, [x3,8] ubfiz x1, x22, 9, 8 lsl w2, w20, 9 @@ -18089,80 +18619,79 @@ ftl_write_commit: bl ftl_memcpy mov x0, x26 bl buf_free - b .L2669 -.L2674: + b .L2778 +.L2783: mov w0, w23 bl lpa_hash_get_ppa str w0, [x29,156] cmn w0, #1 - bne .L2678 + bne .L2787 mov w0, w23 add x1, x29, 156 mov w2, 0 bl pm_log2phys -.L2678: +.L2787: add x1, x21, :lo12:.LANCHOR0 mov w0, 0 + ldr x19, [x1,80] add x1, x1, 728 - ldr x19, [x1,2064] -.L2681: + add x19, x19, 16 +.L2790: ldr w2, [x1,36] cmp w2, w23 - bne .L2679 + bne .L2788 ldrb w2, [x1,2] - tbz x2, 3, .L2679 + tbz x2, 3, .L2788 add x1, x21, :lo12:.LANCHOR0 ubfiz x0, x0, 6, 32 add x1, x1, 728 and w2, w2, -9 add x0, x1, x0 strb w2, [x0,2] - ldr x25, [x0,8] + ldr x28, [x0,8] ldr w0, [x0,40] str w0, [x29,156] - b .L2680 -.L2679: + b .L2789 +.L2788: add w0, w0, 1 add x1, x1, 64 cmp w0, 32 - bne .L2681 - mov x25, 0 -.L2680: - add x0, x21, :lo12:.LANCHOR0 - ldrb w0, [x0,2776] + bne .L2790 + mov x28, 0 +.L2789: + add x25, x21, :lo12:.LANCHOR0 + ldrb w0, [x25,2776] cmp w20, w0 - bcs .L2727 - cbz x25, .L2684 - cbz w22, .L2685 + bcs .L2815 + cbz x28, .L2792 + cbz w22, .L2793 mov x0, x27 - mov x1, x25 + mov x1, x28 lsl w2, w22, 9 bl ftl_memcpy -.L2685: + ldr x19, [x25,80] + add x19, x19, 48 +.L2793: add x0, x21, :lo12:.LANCHOR0 add w20, w22, w20 ldrb w3, [x0,2776] - ldr x19, [x0,2792] cmp w20, w3 - bcc .L2686 -.L2727: + bcc .L2794 + ldr x19, [x0,80] add x19, x19, 16 - b .L2728 -.L2686: + b .L2815 +.L2794: ubfiz x1, x20, 9, 9 sub w2, w3, w20 add x0, x27, x1 lsl w2, w2, 9 - add x1, x25, x1 - add x19, x19, 48 + add x1, x28, x1 bl ftl_memcpy -.L2728: - mov w25, 0 - b .L2683 -.L2684: + b .L2815 +.L2792: ldr w0, [x29,156] cmn w0, #1 - beq .L2687 + beq .L2795 mov w0, 1 bl buf_alloc mov x28, x0 @@ -18176,119 +18705,127 @@ ftl_write_commit: ldr w0, [x0,4] add w25, w25, 1 cmp w0, w23 - bne .L2688 + bne .L2796 ldr w0, [x28,52] cmn w0, #1 - bne .L2689 -.L2688: + bne .L2797 +.L2796: ldrb w1, [x28,1] - adrp x0, .LC235 + adrp x0, .LC185 ldr w2, [x29,156] mov w3, w23 ldr w4, [x28,52] - add x0, x0, :lo12:.LC235 + add x0, x0, :lo12:.LC185 bl printk mov w2, 4 ldr x1, [x28,24] - adrp x0, .LC173 + adrp x0, .LC142 mov w3, w2 - add x0, x0, :lo12:.LC173 + add x0, x0, :lo12:.LC142 bl rknand_print_hex add x3, x21, :lo12:.LANCHOR0 mov w2, 21 mov w1, 1 - ldrh w0, [x3,3218] + ldrh w0, [x3,3266] sub w2, w2, w0 lsl w2, w1, w2 ldr w1, [x29,156] sub w2, w2, #1 lsr w0, w1, w0 - ldrb w1, [x3,3216] + ldrb w1, [x3,3264] and w0, w2, w0 udiv w0, w0, w1 mov x1, 0 bl ftl_sblk_dump -.L2689: +.L2797: ldr x0, [x28,24] ldr w0, [x0,4] cmp w0, w23 - bne .L2690 + bne .L2798 ldr w0, [x28,52] cmn w0, #1 - bne .L2691 -.L2690: + bne .L2799 +.L2798: adrp x1, .LANCHOR3 - adrp x0, .LC34 + adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR3 - add x0, x0, :lo12:.LC34 - add x1, x1, 792 - mov w2, 464 + add x0, x0, :lo12:.LC0 + add x1, x1, 640 + mov w2, 497 bl printk -.L2692: - b .L2692 -.L2691: - cbz w22, .L2693 +.L2800: + b .L2800 +.L2799: + cbz w22, .L2801 ldr w0, [x29,156] lsl w2, w22, 9 cmn w0, #1 - beq .L2694 + beq .L2802 ldr x1, [x28,8] mov x0, x27 bl ftl_memcpy - b .L2693 -.L2687: - cbz w22, .L2730 + b .L2803 +.L2795: + mov w25, w28 + cbz w22, .L2801 lsl w2, w22, 9 - mov x28, x25 -.L2694: + mov w25, w28 +.L2802: mov x0, x27 mov w1, 0 bl ftl_memset -.L2693: - add x1, x21, :lo12:.LANCHOR0 +.L2803: + add x0, x21, :lo12:.LANCHOR0 + ldr x19, [x0,80] + add x19, x19, 48 +.L2801: + add x0, x21, :lo12:.LANCHOR0 add w20, w22, w20 - ldrb w2, [x1,2776] - ldr x0, [x1,2792] + ldrb w2, [x0,2776] cmp w20, w2 - add x19, x0, 48 - bcc .L2695 - add x19, x0, 16 - b .L2696 -.L2695: + bcc .L2804 + bls .L2805 + ldr x19, [x0,80] + add x19, x19, 16 + b .L2805 +.L2804: ldr w0, [x29,156] sub w2, w2, w20 lsl w2, w2, 9 cmn w0, #1 ubfiz x0, x20, 7, 9 - beq .L2697 + beq .L2806 ldr x1, [x28,8] lsl x20, x0, 2 add x0, x27, x20 add x1, x1, x20 bl ftl_memcpy - b .L2696 -.L2697: + b .L2805 +.L2806: add x0, x27, x0, lsl 2 mov w1, 0 bl ftl_memset -.L2696: - cbz x28, .L2683 +.L2805: + cbz x28, .L2791 ldrb w0, [x28,2] mov x1, x28 and w0, w0, -9 strb w0, [x28,2] add x0, x21, :lo12:.LANCHOR0 - add x0, x0, 2824 + add x0, x0, 2832 bl buf_remove_buf mov x0, x28 bl buf_free -.L2683: + b .L2791 +.L2815: + mov w25, 0 +.L2791: ldrh w0, [x19,6] - cbnz w0, .L2698 + cbnz w0, .L2807 bl ftl_flush mov x0, x19 bl ftl_alloc_new_data_sblk -.L2698: +.L2807: mov x0, x19 add x20, x21, :lo12:.LANCHOR0 bl ftl_get_new_free_page @@ -18319,20 +18856,20 @@ ftl_write_commit: ldr x0, [x29,104] mov x1, x26 bl buf_add_tail - ldrb w0, [x20,3772] + ldrb w0, [x20,3812] add w0, w0, 1 - strb w0, [x20,3772] + strb w0, [x20,3812] bl timer_get_time ldr x1, [x29,120] - ldrb w2, [x20,3772] - str w0, [x1,388] + ldrb w2, [x20,3812] + str w0, [x1,452] cmp w2, 2 adrp x0, .LANCHOR5 - bhi .L2699 + bhi .L2808 ldrh w1, [x19,6] cmp w1, 1 - bne .L2671 -.L2699: + bne .L2780 +.L2808: ldrb w1, [x19,5] mov w4, 2 add x6, x21, :lo12:.LANCHOR0 @@ -18343,47 +18880,43 @@ ftl_write_commit: cmp w1, 1 add x1, x0, :lo12:.LANCHOR5 csel w4, w4, w2, ne - ldrb w5, [x1,384] + ldrb w5, [x1,449] mov w1, 0 mov w3, w5 -.L2703: +.L2812: cmp w1, w4 - beq .L2731 + beq .L2838 ubfiz x3, x3, 6, 8 add w1, w1, 1 ldrb w3, [x6,x3] - b .L2703 -.L2731: + b .L2812 +.L2838: add x0, x0, :lo12:.LANCHOR5 uxtb w1, w1 sub w2, w2, w1 ubfiz x5, x5, 6, 8 - strb w3, [x0,384] + strb w3, [x0,449] add x0, x21, :lo12:.LANCHOR0 add x0, x0, 728 - strb w2, [x0,3044] + strb w2, [x0,3084] add x0, x0, x5 bl sblk_prog_page ldrh w0, [x19,6] cmp w0, 1 - bne .L2671 + bne .L2780 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 -.L2671: +.L2780: add x21, x21, :lo12:.LANCHOR0 - ldrb w19, [x21,2809] - cbnz w19, .L2669 + ldrb w19, [x21,2819] + cbnz w19, .L2778 bl ftl_write_completed mov w0, w19 - b .L2726 -.L2730: - mov x28, x25 - b .L2693 -.L2726: +.L2836: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -18406,13 +18939,13 @@ gc_do_copy_back: stp x23, x24, [sp,64] stp x25, x26, [sp,80] stp x27, x28, [sp,96] - ldrb w0, [x21,3209] - ldr x22, [x21,2792] - cbnz w0, .L2733 + ldrb w0, [x21,3193] + ldr x22, [x21,80] + cbnz w0, .L2840 bl buf_alloc mov x20, x0 - cbz x0, .L2732 - ldrh w23, [x21,2874] + cbz x0, .L2839 + ldrh w23, [x21,2866] mov w0, w23 add w23, w23, 1 bl gc_get_src_ppa_from_index @@ -18420,45 +18953,45 @@ gc_do_copy_back: mov w22, w0 mov w1, 1 mov x0, x20 - strh w23, [x21,2874] + strh w23, [x21,2866] bl sblk_read_page ldr w0, [x20,52] cmp w0, 512 - beq .L2790 + beq .L2897 cmn w0, #1 - bne .L2735 -.L2790: + bne .L2842 +.L2897: add x3, x19, :lo12:.LANCHOR0 mov w2, 21 - ldrh w1, [x3,3218] + ldrh w1, [x3,3266] lsr w0, w22, w1 sub w1, w2, w1 mov w2, 1 lsl w1, w2, w1 sub w1, w1, #1 and w1, w0, w1 - ldrb w0, [x3,3216] + ldrb w0, [x3,3264] udiv w0, w1, w0 mov x1, 0 bl ftl_sblk_dump -.L2735: +.L2842: ldr w0, [x20,52] cmp w0, 512 - beq .L2791 + beq .L2898 cmn w0, #1 cset w2, eq - cbz w2, .L2737 -.L2791: + cbz w2, .L2844 +.L2898: adrp x1, .LANCHOR3 - adrp x0, .LC34 + adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR3 - add x0, x0, :lo12:.LC34 - add x1, x1, 816 - mov w2, 559 + add x0, x0, :lo12:.LC0 + add x1, x1, 664 + mov w2, 573 bl printk -.L2739: - b .L2739 -.L2737: +.L2846: + b .L2846 +.L2844: ldr x0, [x20,24] str x2, [x29,120] ldr w21, [x0,4] @@ -18467,40 +19000,40 @@ gc_do_copy_back: str w0, [x29,128] cmn w0, #1 ldr x2, [x29,120] - bne .L2740 + bne .L2847 mov w0, w21 add x1, x29, 128 bl pm_log2phys -.L2740: +.L2847: ldr w23, [x29,128] cmp w23, w22 - bne .L2741 + bne .L2848 add x1, x19, :lo12:.LANCHOR0 add x0, x1, 728 add x1, x1, 2776 -.L2744: +.L2851: ldr w2, [x0,36] cmp w2, w21 - bne .L2742 + bne .L2849 ldrb w2, [x0,2] - tbz x2, 1, .L2742 + tbz x2, 1, .L2849 mov x0, x20 bl buf_free adrp x0, .LANCHOR2+400 ldr w0, [x0,#:lo12:.LANCHOR2+400] - tbz x0, 8, .L2732 + tbz x0, 8, .L2839 add x19, x19, :lo12:.LANCHOR0 - adrp x0, .LC236 + adrp x0, .LC186 mov w1, w21 mov w2, w23 - add x0, x0, :lo12:.LC236 - ldrh w3, [x19,2874] + add x0, x0, :lo12:.LC186 + ldrh w3, [x19,2866] bl printk - b .L2732 -.L2742: + b .L2839 +.L2849: add x0, x0, 64 cmp x0, x1 - bne .L2744 + bne .L2851 add x22, x19, :lo12:.LANCHOR0 ldrb w1, [x20,2] str w21, [x20,36] @@ -18515,20 +19048,20 @@ gc_do_copy_back: str w0, [x20,32] adrp x0, .LANCHOR2+400 ldr w0, [x0,#:lo12:.LANCHOR2+400] - tbz x0, 8, .L2745 + tbz x0, 8, .L2852 ldr w2, [x29,128] mov w0, w21 str x2, [x29,120] bl lpa_hash_get_ppa mov w3, w0 ldr x2, [x29,120] - adrp x0, .LC237 - ldrh w5, [x22,2874] - add x0, x0, :lo12:.LC237 + adrp x0, .LC187 + ldrh w5, [x22,2866] + add x0, x0, :lo12:.LC187 mov w1, w21 mov w4, w23 bl printk -.L2745: +.L2852: add x19, x19, :lo12:.LANCHOR0 mov x0, x20 bl ftl_gc_write_buf @@ -18537,37 +19070,37 @@ gc_do_copy_back: ldr w0, [x1,60] add w0, w0, 1 str w0, [x1,60] - ldrh w0, [x19,2876] + ldrh w0, [x19,2868] add w0, w0, 1 - strh w0, [x19,2876] - b .L2732 -.L2741: + strh w0, [x19,2868] + b .L2839 +.L2848: adrp x0, .LANCHOR2+400 ldr w0, [x0,#:lo12:.LANCHOR2+400] - tbz x0, 8, .L2747 + tbz x0, 8, .L2854 mov w0, w21 add x19, x19, :lo12:.LANCHOR0 bl lpa_hash_get_ppa mov w3, w0 - ldrh w5, [x19,2874] - adrp x0, .LC237 - add x0, x0, :lo12:.LC237 + ldrh w5, [x19,2866] + adrp x0, .LC187 + add x0, x0, :lo12:.LC187 mov w1, w21 mov w2, w23 mov w4, w22 bl printk -.L2747: +.L2854: mov x0, x20 bl buf_free - b .L2732 -.L2733: - ldrb w24, [x21,3193] - add x0, x21, 2848 + b .L2839 +.L2840: + ldrb w24, [x21,3177] + add x0, x21, 2840 add x22, x22, 80 cmp w24, 3 - bne .L2748 - ldrb w1, [x21,3208] - cbz w1, .L2749 + bne .L2855 + ldrb w1, [x21,3192] + cbz w1, .L2856 ldrb w20, [x22,9] ldrh w21, [x0,314] add w23, w20, w20, lsl 1 @@ -18575,13 +19108,13 @@ gc_do_copy_back: sdiv w23, w21, w23 madd w20, w23, w20, w21 uxth w20, w20 - b .L2751 -.L2749: + b .L2858 +.L2856: ldrh w20, [x0,314] adrp x0, .LANCHOR2 ldrb w21, [x22,9] add x0, x0, :lo12:.LANCHOR2 - add x0, x0, 1336 + add x0, x0, 1432 sdiv w1, w20, w21 msub w20, w1, w21, w20 ldrh w25, [x0,w1,sxtw 1] @@ -18592,47 +19125,47 @@ gc_do_copy_back: cmp w25, 1 add w21, w21, w21, lsl 1 uxth w21, w21 - bne .L2752 - b .L2751 -.L2748: + bne .L2859 + b .L2858 +.L2855: ldrb w20, [x22,9] mov w24, 1 - ldrb w1, [x21,3228] + ldrb w1, [x21,3268] ldrh w21, [x0,314] sdiv w23, w21, w20 msub w20, w23, w20, w21 uxth w20, w20 - cbz w1, .L2751 + cbz w1, .L2858 mov w24, 2 -.L2751: +.L2858: mov w25, 0 add x2, x19, :lo12:.LANCHOR0 adrp x3, .LANCHOR4 -.L2754: +.L2861: ldrb w1, [x22,9] mul w0, w24, w1 cmp w25, w0 - bge .L2788 - ldrh w0, [x2,3210] + bge .L2895 + ldrh w0, [x2,3194] add w26, w21, w25 mul w0, w0, w1 sub w0, w0, #1 cmp w26, w0 - beq .L2788 + beq .L2895 add x0, x3, :lo12:.LANCHOR4 sbfiz x26, x26, 2, 32 - ldr x1, [x0,1024] + ldr x1, [x0,1064] ldr w0, [x1,x26] cmn w0, #1 - bne .L2755 - ldrh w27, [x2,2874] - add x28, x2, 2848 - ldrh w0, [x2,2872] + bne .L2862 + ldrh w27, [x2,2866] + add x28, x2, 2840 + ldrh w0, [x2,2864] str x3, [x29,104] str x1, [x29,112] cmp w0, w27 str x2, [x29,120] - bls .L2732 + bls .L2839 mov w0, w27 add w27, w27, 1 bl gc_get_src_ppa_from_index @@ -18641,56 +19174,56 @@ gc_do_copy_back: ldr x3, [x29,104] ldr x2, [x29,120] str w0, [x1,x26] -.L2755: +.L2862: add w25, w25, 1 uxth w25, w25 - b .L2754 -.L2788: + b .L2861 +.L2895: mov w25, 1 -.L2752: +.L2859: adrp x0, .LANCHOR2 str x0, [x29,112] add x1, x0, :lo12:.LANCHOR2 ldr w1, [x1,400] - tbz x1, 8, .L2757 - adrp x0, .LANCHOR4+1024 + tbz x1, 8, .L2864 + adrp x0, .LANCHOR4+1064 add x4, x19, :lo12:.LANCHOR0 ubfiz x5, x21, 2, 16 mov w1, w23 mov w2, w25 mov w3, w20 - ldr x6, [x0,#:lo12:.LANCHOR4+1024] - adrp x0, .LC238 - ldrh w4, [x4,3162] - add x0, x0, :lo12:.LC238 + ldr x6, [x0,#:lo12:.LANCHOR4+1064] + adrp x0, .LC188 + ldrh w4, [x4,3154] + add x0, x0, :lo12:.LC188 ldr w5, [x6,x5] mov w6, w21 bl printk -.L2757: - adrp x0, .LC239 +.L2864: + adrp x0, .LC189 mov w28, 0 - add x0, x0, :lo12:.LC239 + add x0, x0, :lo12:.LC189 str x0, [x29,104] -.L2758: +.L2865: ldrb w0, [x22,9] mul w0, w24, w0 cmp w28, w0 - bge .L2832 + bge .L2939 add w1, w21, w28 sxtw x0, w1 str x0, [x29,120] add x0, x19, :lo12:.LANCHOR0 ldr x2, [x29,120] - ldr x0, [x0,3200] + ldr x0, [x0,3184] ldrb w0, [x0,x2] cmp w0, 255 - bne .L2759 + bne .L2866 mov w0, 0 str x1, [x29,96] bl buf_alloc mov x27, x0 ldr x1, [x29,96] - cbnz x0, .L2760 + cbnz x0, .L2867 bl sblk_wait_write_queue_completed bl ftl_write_completed bl gc_write_completed @@ -18699,42 +19232,42 @@ gc_do_copy_back: bl buf_alloc mov x27, x0 ldr x1, [x29,96] - cbz x0, .L2732 -.L2760: + cbz x0, .L2839 +.L2867: add x26, x19, :lo12:.LANCHOR0 ldr x3, [x29,120] ldrb w2, [x27,1] - ldr x0, [x26,3200] + ldr x0, [x26,3184] strb w2, [x0,x3] strh w1, [x27,48] - ldrb w0, [x26,2855] + ldrb w0, [x26,2847] strb w25, [x27,61] add w0, w0, 1 - strb w0, [x26,2855] + strb w0, [x26,2847] ldrb w2, [x22,9] - ldrh w0, [x26,3210] + ldrh w0, [x26,3194] mul w0, w0, w2 sub w0, w0, #1 cmp w1, w0 - bne .L2761 + bne .L2868 adrp x0, .LANCHOR4 mov w2, -1 add x5, x0, :lo12:.LANCHOR4 str x5, [x29,96] - ldr x0, [x5,1016] + ldr x0, [x5,1056] str w2, [x0,x3,lsl 2] - ldrh w0, [x26,3210] - ldrb w2, [x26,3212] - ldr x1, [x5,1016] + ldrh w0, [x26,3194] + ldrb w2, [x26,3196] + ldr x1, [x5,1056] mul w2, w0, w2 ldr x0, [x27,8] lsl w2, w2, 2 bl ftl_memcpy - ldrh w0, [x26,3210] - ldrb w2, [x26,3212] + ldrh w0, [x26,3194] + ldrb w2, [x26,3196] ldr x5, [x29,96] mul w2, w0, w2 - ldr x1, [x5,1024] + ldr x1, [x5,1064] ldr x0, [x27,8] add x0, x0, x2, sxtw 2 lsl w2, w2, 2 @@ -18748,8 +19281,8 @@ gc_do_copy_back: mov w0, 15555 movk w0, 0xf55f, lsl 16 str w0, [x1] - ldrh w0, [x26,3210] - ldrb w1, [x26,3212] + ldrh w0, [x26,3194] + ldrb w1, [x26,3196] ldr x2, [x27,24] str x2, [x29,96] mul w1, w0, w1 @@ -18758,18 +19291,18 @@ gc_do_copy_back: bl js_hash ldr x2, [x29,96] str w0, [x2,4] - ldr x1, [x26,2792] + ldr x1, [x26,80] ldr x0, [x27,24] ldr w1, [x1,132] - b .L2829 -.L2761: + b .L2936 +.L2868: ldr x0, [x29,120] mov w1, 1 lsl x4, x0, 2 adrp x0, .LANCHOR4 add x0, x0, :lo12:.LANCHOR4 str x4, [x29,96] - ldr x0, [x0,1024] + ldr x0, [x0,1064] ldr w0, [x0,x4] str w0, [x27,40] mov x0, x27 @@ -18777,21 +19310,21 @@ gc_do_copy_back: ldr w0, [x27,52] ldr x4, [x29,96] cmp w0, 512 - beq .L2762 + beq .L2869 cmn w0, #1 - bne .L2763 -.L2762: + bne .L2870 +.L2869: add x5, x19, :lo12:.LANCHOR0 mov w1, 21 str x4, [x29,96] - ldrh w0, [x5,3218] + ldrh w0, [x5,3266] sub w2, w1, w0 mov w1, 1 lsl w2, w1, w2 ldr w1, [x27,40] sub w2, w2, #1 lsr w0, w1, w0 - ldrb w1, [x5,3216] + ldrb w1, [x5,3264] and w0, w2, w0 udiv w0, w0, w1 mov x1, 0 @@ -18799,67 +19332,67 @@ gc_do_copy_back: ldr w0, [x27,52] ldr x4, [x29,96] cmp w0, 512 - beq .L2792 + beq .L2899 cmn w0, #1 - bne .L2763 -.L2792: + bne .L2870 +.L2899: ldr x0, [x27,24] mov w1, -1 str w1, [x0,4] -.L2763: +.L2870: ldr w0, [x27,52] cmp w0, 512 - beq .L2793 + beq .L2900 cmn w0, #1 - bne .L2766 -.L2793: + bne .L2873 +.L2900: adrp x1, .LANCHOR3 - adrp x0, .LC34 + adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR3 - add x0, x0, :lo12:.LC34 - add x1, x1, 816 - mov w2, 674 + add x0, x0, :lo12:.LC0 + add x1, x1, 664 + mov w2, 688 bl printk -.L2768: - b .L2768 -.L2766: +.L2875: + b .L2875 +.L2873: ldr x1, [x27,24] add x0, x19, :lo12:.LANCHOR0 ldr w2, [x1,4] ldr w0, [x0,2784] cmp w2, w0 - bcc .L2769 + bcc .L2876 mov w0, -1 str w0, [x1,4] -.L2769: +.L2876: ldr x0, [x27,24] ldr w1, [x0,4] adrp x0, .LANCHOR4 add x0, x0, :lo12:.LANCHOR4 - ldr x0, [x0,1016] + ldr x0, [x0,1056] str w1, [x0,x4] ldr x0, [x27,24] ldr w1, [x27,40] -.L2829: +.L2936: str w1, [x0,8] -.L2759: +.L2866: add x2, x19, :lo12:.LANCHOR0 ldr x3, [x29,120] add x1, x2, 728 - mov w5, 1 + mov w5, 2 sxtw x4, w28 - ldr x0, [x2,3200] + ldr x0, [x2,3184] ldrb w3, [x0,x3] add x0, x29, 128 add x1, x1, x3, lsl 6 str x1, [x0,w28,sxtw 3] - ldrb w0, [x2,3193] + ldrb w0, [x2,3177] strb w25, [x1,61] cmp w0, 3 strh w5, [x1,50] - bne .L2770 + bne .L2877 udiv w0, w28, w0 - ldrh w2, [x2,3230] + ldrh w2, [x2,3270] ldrh w5, [x1,48] add w3, w0, w20 add x3, x22, x3, sxtw 1 @@ -18872,34 +19405,34 @@ gc_do_copy_back: orr w2, w2, w23 str w2, [x1,40] uxth w0, w0 - ldr x1, [x3,1032] + ldr x1, [x3,1072] add w0, w0, 1 orr w0, w2, w0, lsl 24 str w0, [x1,x5,lsl 2] - b .L2771 -.L2770: + b .L2878 +.L2877: cmp w0, 2 - bne .L2772 - ldrb w5, [x2,3228] + bne .L2879 + ldrb w5, [x2,3268] add x1, x1, 32 - ldrh w0, [x2,3230] - cbnz w5, .L2773 + ldrh w0, [x2,3270] + cbnz w5, .L2880 add w2, w28, w20 add x2, x22, x2, sxtw 1 ldrh w2, [x2,16] madd w0, w2, w0, w23 - b .L2831 -.L2773: + b .L2938 +.L2880: add w2, w20, w28, lsr 1 add x2, x22, x2, sxtw 1 ldrh w2, [x2,16] madd w0, w2, w0, w23 and w2, w28, 1 add w0, w0, w2 -.L2831: +.L2938: orr w0, w0, 33554432 str w0, [x1,8] -.L2772: +.L2879: add x0, x19, :lo12:.LANCHOR0 adrp x1, .LANCHOR4 add x0, x0, 728 @@ -18907,20 +19440,20 @@ gc_do_copy_back: add x0, x0, x3, lsl 6 ldr w3, [x0,40] ldrh w2, [x0,48] - ldr x0, [x1,1032] + ldr x0, [x1,1072] str w3, [x0,x2,lsl 2] -.L2771: +.L2878: ldr x0, [x29,112] add x0, x0, :lo12:.LANCHOR2 ldr w0, [x0,400] - tbz x0, 8, .L2774 + tbz x0, 8, .L2881 add x0, x29, 128 ldr x1, [x29,120] mov w2, w25 ldr x5, [x0,x4,lsl 3] add x0, x19, :lo12:.LANCHOR0 - ldrb w3, [x0,2854] - ldr x0, [x0,3200] + ldrb w3, [x0,2846] + ldr x0, [x0,3184] ldrh w6, [x5,48] ldrb w7, [x5,1] ldrb w4, [x0,x1] @@ -18935,52 +19468,52 @@ gc_do_copy_back: ldr x0, [x29,104] ldr w5, [x5,40] bl printk -.L2774: +.L2881: add w8, w28, 1 uxth w28, w8 - b .L2758 -.L2832: + b .L2865 +.L2939: add x2, x19, :lo12:.LANCHOR0 mov w1, 0 - ldrb w0, [x2,3193] + ldrb w0, [x2,3177] cmp w0, 3 add x0, x29, 128 - bne .L2817 - ldrb w1, [x2,3208] - cbz w1, .L2777 -.L2780: + bne .L2924 + ldrb w1, [x2,3192] + cbz w1, .L2884 +.L2887: ldr x1, [x29,128] strb wzr, [x1,60] - b .L2778 -.L2777: + b .L2885 +.L2884: cmp w25, 1 mov w2, 9 - beq .L2830 + beq .L2937 cmp w25, 2 - bne .L2780 + bne .L2887 mov w2, 13 -.L2830: +.L2937: ldr x1, [x29,128] strb w2, [x1,60] -.L2778: +.L2885: ldrb w2, [x22,9] add x1, x0, 24 bl sblk_xlc_prog_pages - b .L2781 -.L2817: + b .L2888 +.L2924: ldrb w2, [x22,9] mul w2, w2, w24 sub w2, w2, #1 cmp w1, w2 - bge .L2833 + bge .L2940 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 .L2817 -.L2833: + b .L2924 +.L2940: ldr x0, [x0,w2,sxtw 3] mov w1, -1 strb w1, [x0] @@ -18988,39 +19521,39 @@ gc_do_copy_back: ldr x0, [x29,128] mul w1, w24, w1 bl sblk_prog_page -.L2781: +.L2888: add x1, x19, :lo12:.LANCHOR0 ldrb w2, [x22,9] - ldrb w3, [x1,3208] - cbz w3, .L2783 + ldrb w3, [x1,3192] + cbz w3, .L2890 add w0, w2, w2, lsl 1 and w2, w0, 1023 - b .L2784 -.L2783: - ldrb w1, [x1,3228] + b .L2891 +.L2890: + ldrb w1, [x1,3268] ubfiz w0, w2, 1, 8 cmp w1, wzr csel w2, w0, w2, ne -.L2784: +.L2891: add x19, x19, :lo12:.LANCHOR0 ldr x1, [x19,2800] ldr w0, [x1,52] add w0, w0, w2 str w0, [x1,52] - ldrh w1, [x19,3162] + ldrh w1, [x19,3154] add w0, w2, w1 - ldrh w1, [x19,3210] + ldrh w1, [x19,3194] uxth w0, w0 - strh w0, [x19,3162] + strh w0, [x19,3154] ldrb w2, [x22,9] mul w1, w1, w2 cmp w0, w1 - blt .L2785 - ldr x0, [x19,2792] + blt .L2892 + ldr x0, [x19,80] strh wzr, [x0,86] -.L2785: +.L2892: bl gc_write_completed -.L2732: +.L2839: sub sp, x29, #16 ldp x19, x20, [sp,32] ldp x21, x22, [sp,48] @@ -19036,72 +19569,65 @@ gc_do_copy_back: .type zftl_discard, %function zftl_discard: stp x29, x30, [sp, -112]! - add w2, w0, w1 + add w3, w0, w1 add x29, sp, 0 stp x21, x22, [sp,32] adrp x21, .LANCHOR0 - str x27, [sp,80] stp x19, x20, [sp,16] - mov w20, w1 + mov w19, w1 add x1, x21, :lo12:.LANCHOR0 stp x23, x24, [sp,48] stp x25, x26, [sp,64] - ldr w1, [x1,4] - cmp w2, w1 - bhi .L2856 - add w23, w0, 24576 - adrp x0, .LANCHOR2+400 - ldr w0, [x0,#:lo12:.LANCHOR2+400] - tbz x0, 12, .L2836 - adrp x0, .LC240 - mov w1, 0 - add x0, x0, :lo12:.LC240 - mov w2, w23 - mov w3, w20 - mov w4, w1 - bl printk -.L2836: - add x0, x21, :lo12:.LANCHOR0 - ldrb w3, [x0,2776] - ldr x1, [x0,2800] - udiv w19, w23, w3 - ldr w24, [x1,8] - add w2, w24, 1 - str w2, [x1,8] - msub w26, w19, w3, w23 - cbz w26, .L2837 - sub w3, w3, w26 - mov w0, w19 - cmp w3, w20 - csel w25, w3, w20, ls + stp x27, x28, [sp,80] + ldr w2, [x1,4] + cmp w3, w2 + bhi .L2961 + adrp x22, .LANCHOR8 + add w24, w0, 24576 + add x2, x22, :lo12:.LANCHOR8 + ldr w0, [x2,3520] + add w0, w19, w0 + str w0, [x2,3520] + ldr x0, [x1,2800] + ldrb w1, [x1,2776] + ldr w25, [x0,8] + udiv w20, w24, w1 + add w2, w25, 1 + str w2, [x0,8] + msub w26, w20, w1, w24 + cbz w26, .L2943 + sub w1, w1, w26 + mov w0, w20 + cmp w1, w19 + csel w28, w1, w19, ls bl lpa_hash_get_ppa str w0, [x29,104] cmn w0, #1 - bne .L2838 - mov w0, w19 + bne .L2944 + mov w0, w20 add x1, x29, 104 mov w2, 0 bl pm_log2phys -.L2838: +.L2944: ldr w0, [x29,104] - and w27, w25, 65535 + and w27, w28, 65535 cmn w0, #1 - beq .L2840 + beq .L2946 mov w0, 0 bl buf_alloc - mov x22, x0 - cbz x0, .L2840 - str w19, [x0,36] - ubfiz x1, x26, 9, 25 - strb w26, [x0,57] + mov x23, x0 + cbz x0, .L2946 + str w20, [x0,36] lsl w2, w27, 9 - strb w25, [x0,56] - str w24, [x0,32] - ldr x0, [x0,8] - add x0, x0, x1 + strb w26, [x0,57] + strb w28, [x0,56] + str w25, [x0,32] + ubfiz x0, x26, 9, 25 + ldr x1, [x23,8] + add x0, x1, x0 mov w1, 0 bl ftl_memset - mov x0, x22 + mov x0, x23 bl ftl_write_buf bl ftl_write_commit add x0, x21, :lo12:.LANCHOR0 @@ -19109,170 +19635,151 @@ zftl_discard: ldr w0, [x1,76] add w0, w0, 1 str w0, [x1,76] -.L2840: - add w19, w19, 1 - sub w20, w20, w27 -.L2837: - cbz w20, .L2842 +.L2946: + add w20, w20, 1 + sub w19, w19, w27 +.L2943: + cbz w19, .L2948 bl ftl_flush -.L2842: +.L2948: mov w0, -1 - mov w26, 1 + mov w27, 1 str w0, [x29,108] - mov w27, 21 -.L2843: - add x25, x21, :lo12:.LANCHOR0 - ldrb w0, [x25,2776] - cmp w20, w0 - bcc .L2883 - mov w0, w19 + mov w28, 21 +.L2949: + add x26, x21, :lo12:.LANCHOR0 + ldrb w0, [x26,2776] + cmp w19, w0 + bcc .L2982 + mov w0, w20 bl lpa_hash_get_ppa str w0, [x29,104] cmn w0, #1 - beq .L2844 + beq .L2950 mov w0, 0 bl buf_alloc - mov x22, x0 - cbz x0, .L2845 - ldrb w2, [x25,2776] + mov x23, x0 + cbz x0, .L2952 + ldrb w2, [x26,2776] mov w1, 0 + str w20, [x0,36] strb w2, [x0,56] - str w19, [x0,36] lsl w2, w2, 9 + str w25, [x0,32] strb wzr, [x0,57] - str w24, [x0,32] ldr x0, [x0,8] bl ftl_memset - mov x0, x22 + mov x0, x23 bl ftl_write_buf bl ftl_write_commit - ldr x1, [x25,2800] - ldr w0, [x1,76] - add w0, w0, 1 - str w0, [x1,76] -.L2845: - mov w0, w19 - add x1, x29, 104 - mov w2, 0 - bl pm_log2phys - ldr w0, [x29,104] - cmn w0, #1 - beq .L2847 - add x1, x29, 108 - mov w0, w19 - mov w2, 1 - bl pm_log2phys - add x0, x21, :lo12:.LANCHOR0 - ldr x1, [x0,2800] - b .L2882 -.L2844: - mov w0, w19 + b .L2981 +.L2950: + mov w0, w20 add x1, x29, 104 mov w2, 0 bl pm_log2phys ldr w0, [x29,104] cmn w0, #1 - beq .L2847 + beq .L2952 add x1, x29, 108 mov w2, 1 - mov w0, w19 + mov w0, w20 bl pm_log2phys - ldrh w0, [x25,3218] + ldrh w0, [x26,3266] ldr w1, [x29,104] - sub w2, w27, w0 - lsl w2, w26, w2 + sub w2, w28, w0 + lsl w2, w27, w2 lsr w0, w1, w0 sub w2, w2, #1 - ldrb w1, [x25,3216] + ldrb w1, [x26,3264] and w0, w2, w0 udiv w0, w0, w1 bl ftl_vpn_decrement - ldr x1, [x25,2800] -.L2882: +.L2981: + ldr x1, [x26,2800] ldr w0, [x1,76] add w0, w0, 1 str w0, [x1,76] -.L2847: +.L2952: add x0, x21, :lo12:.LANCHOR0 - add w19, w19, 1 + add w20, w20, 1 ldrb w0, [x0,2776] - sub w20, w20, w0 - b .L2843 -.L2883: - cbz w20, .L2851 - mov w0, w19 + sub w19, w19, w0 + b .L2949 +.L2982: + cbz w19, .L2956 + mov w0, w20 bl lpa_hash_get_ppa str w0, [x29,104] cmn w0, #1 - bne .L2852 - mov w0, w19 + bne .L2957 + mov w0, w20 add x1, x29, 104 mov w2, 0 bl pm_log2phys -.L2852: +.L2957: ldr w0, [x29,104] cmn w0, #1 - beq .L2851 + beq .L2956 mov w0, 0 bl buf_alloc - mov x22, x0 - cbz x0, .L2851 + mov x23, x0 + cbz x0, .L2956 add x21, x21, :lo12:.LANCHOR0 - str w19, [x0,36] + str w20, [x0,36] strb wzr, [x0,57] - strb w20, [x0,56] - str w24, [x0,32] + strb w19, [x0,56] + str w25, [x0,32] ldrb w0, [x21,2776] - cmp w20, w0 - bcc .L2854 + cmp w19, w0 + bcc .L2959 adrp x1, .LANCHOR3 - adrp x0, .LC34 + adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR3 - add x0, x0, :lo12:.LC34 - add x1, x1, 832 - mov w2, 1071 + add x0, x0, :lo12:.LC0 + add x1, x1, 680 + mov w2, 1118 bl printk -.L2855: - b .L2855 -.L2854: - ldr x0, [x22,8] +.L2960: + b .L2960 +.L2959: + ldr x0, [x23,8] mov w1, 0 - lsl w2, w20, 9 + lsl w2, w19, 9 bl ftl_memset - mov x0, x22 + mov x0, x23 bl ftl_write_buf bl ftl_write_commit ldr x1, [x21,2800] ldr w0, [x1,76] add w0, w0, 1 str w0, [x1,76] -.L2851: - adrp x19, .LANCHOR9 - mov w21, 0 - add x19, x19, :lo12:.LANCHOR9 - ldr w1, [x19,1136] - add w1, w20, w1 - str w1, [x19,1136] +.L2956: + add x22, x22, :lo12:.LANCHOR8 + mov w20, 0 + ldr w1, [x22,3520] cmp w1, 8192 - bls .L2835 - adrp x0, .LC240 - mov w2, w23 - mov w3, w20 - mov w4, w21 - add x0, x0, :lo12:.LC240 + bls .L2942 + adrp x0, .LC190 + mov w2, w24 + mov w3, w19 + mov w4, w20 + add x0, x0, :lo12:.LC190 bl printk - str w21, [x19,1136] + str w20, [x22,3520] bl flt_sys_flush - b .L2835 -.L2856: - mov w21, -1 -.L2835: - mov w0, w21 - ldr x27, [sp,80] + mov w0, 1 + str w0, [x22,3524] + b .L2942 +.L2961: + mov w20, -1 +.L2942: + mov w0, w20 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] ldp x25, x26, [sp,64] + ldp x27, x28, [sp,80] ldp x29, x30, [sp], 112 ret .size zftl_discard, .-zftl_discard @@ -19280,984 +19787,894 @@ zftl_discard: .global zftl_do_gc .type zftl_do_gc, %function zftl_do_gc: - stp x29, x30, [sp, -112]! - add x29, sp, 0 - stp x19, x20, [sp,16] + sub sp, sp, #112 + stp x29, x30, [sp,16] + add x29, sp, 16 + stp x19, x20, [sp,32] adrp x19, .LANCHOR0 - adrp x20, .LANCHOR4 - add x1, x19, :lo12:.LANCHOR0 - stp x21, x22, [sp,32] - stp x23, x24, [sp,48] - stp x25, x26, [sp,64] - stp x27, x28, [sp,80] - ldr x22, [x1,2792] - ldr x1, [x1,2800] - ldrh w24, [x1,116] - ldrh w2, [x1,118] - ldrh w25, [x1,114] - add w25, w24, w25 - add w24, w24, w2 - add x2, x20, :lo12:.LANCHOR4 - uxth w25, w25 - uxth w24, w24 - ldrb w3, [x2,1010] - cmp w3, 6 - bhi .L2885 - adrp x2, .L2887 - add x2, x2, :lo12:.L2887 - ldrh w2, [x2,w3,uxtw #1] - adr x3, .Lrtx2887 - add x2, x3, w2, sxth #2 - br x2 -.Lrtx2887: + stp x23, x24, [sp,64] + mov w24, w0 + add x0, x19, :lo12:.LANCHOR0 + stp x21, x22, [sp,48] + stp x25, x26, [sp,80] + stp x27, x28, [sp,96] + cmp w24, 1 + ldrh w1, [x0,2792] + ldrh w20, [x0,2788] + ldr x23, [x0,80] + add w20, w1, w20 + ldrh w22, [x0,2790] + uxth w20, w20 + bne .L2984 + adrp x0, .LANCHOR7 + adrp x25, .LANCHOR8 + add x2, x0, :lo12:.LANCHOR7 + mov x21, x0 + ldr w26, [x2,3256] + cbnz w26, .L2985 + add x0, x25, :lo12:.LANCHOR8 + ldr w0, [x0,3528] + cbz w0, .L2984 +.L2985: + add w26, w26, 50 + bl timer_get_time + cmp w26, w0 + bcs .L2986 + add x0, x21, :lo12:.LANCHOR7 + str wzr, [x0,3256] +.L2986: + add x19, x25, :lo12:.LANCHOR8 + ldr w20, [x19,3528] + bl timer_get_time + add w20, w20, 50 + cmp w20, w0 + bcs .L3099 + str wzr, [x19,3528] + b .L3099 +.L2984: + adrp x0, .LANCHOR4 + add x2, x0, :lo12:.LANCHOR4 + mov x21, x0 + ldrb w2, [x2,1050] + cmp w2, 6 + bhi .L3099 + adrp x0, .L2990 + add x0, x0, :lo12:.L2990 + ldrh w0, [x0,w2,uxtw #1] + adr x2, .Lrtx2990 + add x0, x2, w0, sxth #2 + br x0 +.Lrtx2990: .section .rodata .align 0 .align 2 -.L2887: - .2byte (.L2886 - .Lrtx2887) / 4 - .2byte (.L2888 - .Lrtx2887) / 4 - .2byte (.L2889 - .Lrtx2887) / 4 - .2byte (.L2890 - .Lrtx2887) / 4 - .2byte (.L2891 - .Lrtx2887) / 4 - .2byte (.L2892 - .Lrtx2887) / 4 - .2byte (.L2893 - .Lrtx2887) / 4 +.L2990: + .2byte (.L2989 - .Lrtx2990) / 4 + .2byte (.L2991 - .Lrtx2990) / 4 + .2byte (.L2992 - .Lrtx2990) / 4 + .2byte (.L2993 - .Lrtx2990) / 4 + .2byte (.L2994 - .Lrtx2990) / 4 + .2byte (.L3075 - .Lrtx2990) / 4 + .2byte (.L2996 - .Lrtx2990) / 4 .text -.L2886: - ldrh w2, [x22,80] - ldrh w27, [x1,122] - ldrh w28, [x1,124] - mov w1, 65535 - cmp w2, w1 - beq .L2894 +.L2989: + ldrh w28, [x23,80] + add x27, x19, :lo12:.LANCHOR0 + mov w0, 65535 + add w22, w22, w1 + cmp w28, w0 + uxth w22, w22 + ldrh w25, [x27,2794] + ldrh w26, [x27,2796] + beq .L2997 adrp x0, .LANCHOR2+400 - cmp w24, 7 - mov w21, 3 - csinc w21, w21, wzr, hi + cmp w22, 7 + mov w24, 3 + csinc w24, w24, wzr, hi ldr w0, [x0,#:lo12:.LANCHOR2+400] - tbz x0, 8, .L2896 - add x2, x19, :lo12:.LANCHOR0 - adrp x0, .LC241 - ldrh w5, [x22,124] - add x0, x0, :lo12:.LC241 - ldrh w6, [x22,120] - mov w1, 1455 - ldrb w2, [x2,3209] - mov w3, w25 - ldrh w7, [x22,122] - mov w4, w24 + tbz x0, 8, .L2999 + ldrh w5, [x23,124] + adrp x0, .LC191 + ldrh w6, [x23,120] + add x0, x0, :lo12:.LC191 + ldrh w7, [x23,122] + mov w1, 1705 + ldrb w2, [x27,3193] + mov w3, w20 + str w28, [sp] + mov w4, w22 bl printk -.L2896: +.L2999: add x19, x19, :lo12:.LANCHOR0 - mov w1, w21 + mov w1, w24 mov w2, 1 - ldrb w0, [x19,3209] + ldrb w0, [x19,3193] bl gc_search_src_blk cmp w0, wzr - ble .L2885 -.L2897: - add x20, x20, :lo12:.LANCHOR4 - mov w0, 1 - b .L3049 -.L2894: - cmp w0, 1 - bne .L2898 + ble .L3099 +.L3005: + add x0, x21, :lo12:.LANCHOR4 + mov w1, 1 + b .L3117 +.L2997: + cmp w24, 1 + bne .L3001 bl gc_scan_static_data + adrp x23, .LANCHOR8 bl gc_static_wearleveling bl gc_block_vpn_scan -.L2898: - add x21, x19, :lo12:.LANCHOR0 - mov w23, 1 - ldr x7, [x21,2792] - strb w23, [x21,3209] - ldrh w26, [x7,124] - cbz w26, .L2899 + add x0, x23, :lo12:.LANCHOR8 + ldr w0, [x0,3524] + cbz w0, .L3003 + mov w1, 5 + mov w0, 0 + bl zftl_get_gc_node + uxth w1, w0 + cmp w1, w28 + beq .L3004 + ubfiz x1, x1, 1, 16 + ldr x2, [x27,72] + ldrh w1, [x2,x1] + cmp w1, 4 + bhi .L3004 + mov w1, w24 + mov w2, 0 + bl gc_add_sblk + cbnz w0, .L3005 +.L3004: + mov w1, 4 + mov w0, 0 + bl zftl_get_gc_node + uxth w1, w0 + mov w2, 65535 + cmp w1, w2 + beq .L3006 + add x2, x19, :lo12:.LANCHOR0 + ubfiz x1, x1, 1, 16 + ldr x2, [x2,72] + ldrh w1, [x2,x1] + cmp w1, 4 + bhi .L3006 + mov w1, 1 + mov w2, 0 + bl gc_add_sblk + cbnz w0, .L3005 +.L3006: + add x27, x19, :lo12:.LANCHOR0 + mov w1, 0 + ldr x0, [x27,3208] + bl _list_get_gc_head_node.isra.5 + uxth w1, w0 + mov w2, 65535 + cmp w1, w2 + beq .L3007 + ubfiz x1, x1, 1, 16 + ldr x2, [x27,72] + ldrh w1, [x2,x1] + cmp w1, 4 + bhi .L3007 + mov w1, 1 + mov w2, 0 + bl gc_add_sblk + cbnz w0, .L3005 +.L3007: + add x23, x23, :lo12:.LANCHOR8 + str wzr, [x23,3524] + b .L3003 +.L3001: + ldrh w0, [x27,2808] + cmp w0, w20 + bcc .L3099 +.L3003: + add x1, x19, :lo12:.LANCHOR0 + mov w0, 1 + ldr x7, [x1,80] + strb w0, [x1,3193] + ldrh w5, [x7,124] + cbz w5, .L3009 + add x21, x21, :lo12:.LANCHOR4 + strb wzr, [x1,3193] + strb w0, [x21,1050] adrp x0, .LANCHOR2+400 - add x20, x20, :lo12:.LANCHOR4 - strb wzr, [x21,3209] ldr w0, [x0,#:lo12:.LANCHOR2+400] - strb w23, [x20,1010] - tbz x0, 8, .L2885 + tbz x0, 8, .L3099 ldrh w6, [x7,120] - adrp x0, .LC241 + adrp x0, .LC192 ldrh w7, [x7,122] - mov w1, 1483 + mov w1, 1762 mov w2, 0 - mov w3, w25 - mov w4, w24 - mov w5, w26 - add x0, x0, :lo12:.LC241 + mov w3, w20 + mov w4, w22 + add x0, x0, :lo12:.LC192 bl printk - b .L2885 -.L2899: - ldrh w0, [x21,3214] - cmp w25, w0, lsr 2 - bcs .L2902 - cmp w24, 1 - bls .L2903 - cmp w24, 16 - bhi .L2904 - ldr x0, [x21,2800] - ldrh w0, [x0,120] - cmp w0, 127 - bhi .L2905 -.L2904: - mov w0, 1 + b .L3099 +.L3009: + ldrh w3, [x1,2808] + cmp w20, w3 + bcs .L3012 + cmp w22, 1 + bls .L3013 + cmp w22, 16 + bls .L3014 + ldrh w2, [x1,2798] + ldrh w1, [x1,3234] + cmp w2, w1 + bcs .L3014 mov w1, 3 - b .L2908 -.L2905: - mov w0, w23 + mov w2, 16 + b .L3115 +.L3014: mov w1, 2 - mov w2, 8 -.L3045: + mov w0, 1 + mov w2, w1 + add x19, x19, :lo12:.LANCHOR0 bl gc_search_src_blk - uxth w3, w0 - b .L2906 -.L2903: + uxth w0, w0 + cbnz w0, .L3005 + b .L3113 +.L3013: adrp x0, .LANCHOR2+400 - strb w26, [x21,3209] + strb w5, [x1,3193] ldr w0, [x0,#:lo12:.LANCHOR2+400] - tbz x0, 8, .L2907 - adrp x0, .LC241 + tbz x0, 8, .L3017 + adrp x0, .LC192 ldrh w6, [x7,120] ldrh w7, [x7,122] - add x0, x0, :lo12:.LC241 - mov w1, 1496 - mov w2, w26 - mov w3, w25 - mov w4, w24 - mov w5, w26 + add x0, x0, :lo12:.LC192 + mov w1, 1778 + mov w2, w5 + mov w3, w20 + mov w4, w22 bl printk -.L2907: +.L3017: add x19, x19, :lo12:.LANCHOR0 - cmp w25, 16 + cmp w20, 16 + ldrb w0, [x19,3193] + bls .L3018 mov w1, 3 - mov w2, 1 - ldrb w0, [x19,3209] - bhi .L3045 -.L2908: - mov w2, 16 - b .L3045 -.L2902: - add w22, w28, w27 - cmp w25, w0, lsr 1 - uxth w22, w22 - bcs .L2909 - sub w0, w24, #2 - uxth w0, w0 - cmp w0, 13 - bhi .L2910 - mov w0, w23 - mov w1, 2 - mov w2, 8 - bl gc_search_src_blk - uxth w0, w0 - cbnz w0, .L2897 -.L2910: - add x0, x19, :lo12:.LANCHOR0 - adrp x21, .LANCHOR9 - ldrb w1, [x0,3193] - cmp w1, 2 - bne .L2911 - strh wzr, [x0,2882] - cmp w24, 1 - bls .L2912 -.L2915: - add x0, x19, :lo12:.LANCHOR0 - mov w1, 1 - strb w1, [x0,3209] - adrp x1, .LANCHOR2+400 - ldr w1, [x1,#:lo12:.LANCHOR2+400] - tbz x1, 8, .L2914 - ldr x7, [x0,2792] - adrp x0, .LC241 - mov w1, 1519 - mov w2, 1 - mov w3, w25 - mov w4, w24 - ldrh w5, [x7,124] - add x0, x0, :lo12:.LC241 - ldrh w6, [x7,120] - ldrh w7, [x7,122] - bl printk - b .L2914 -.L2911: - cmp w24, 1 - bls .L2912 - ldrh w0, [x0,2882] - cmp w0, 3 - bls .L2915 - b .L2912 -.L2914: - add x0, x21, :lo12:.LANCHOR9 - add x2, x19, :lo12:.LANCHOR0 - mov w3, 0 - ldrh w0, [x0,1116] - ldrh w1, [x2,2882] - strh wzr, [x2,2880] - add w1, w1, 1 - cmp w22, w0, lsr 2 - strh w1, [x2,2882] - bls .L2916 - ldrb w0, [x2,3209] + mov w2, 4 + b .L3115 +.L3018: mov w1, 1 - mov w2, 16 + mov w2, w1 bl gc_search_src_blk - uxth w3, w0 -.L2916: - cmp w3, 7 - bhi .L2989 - cmp w24, 31 - bls .L2917 -.L2989: - add x0, x19, :lo12:.LANCHOR0 - ldr x1, [x0,2800] - ldrh w0, [x0,3224] - ldrh w1, [x1,120] - cmp w1, w0 - bls .L2926 -.L2917: - add x21, x21, :lo12:.LANCHOR9 - ldrh w0, [x21,1116] - cmp w22, w0, lsr 2 - add x0, x19, :lo12:.LANCHOR0 - ldrb w0, [x0,3209] - bcs .L3040 - mov w1, 2 - mov w2, 8 - b .L3042 -.L2912: - add x0, x21, :lo12:.LANCHOR9 - ldrh w0, [x0,1116] - cmp w22, w0, lsr 1 - add x0, x19, :lo12:.LANCHOR0 - strh wzr, [x0,2882] - bls .L2921 - adrp x1, .LANCHOR2+400 - strb wzr, [x0,3209] - ldr w1, [x1,#:lo12:.LANCHOR2+400] - tbz x1, 8, .L2922 - ldr x7, [x0,2792] - adrp x0, .LC241 - add x0, x0, :lo12:.LC241 - mov w1, 1536 - mov w2, 0 - mov w3, w25 - ldrh w5, [x7,124] - mov w4, w24 - ldrh w6, [x7,120] - ldrh w7, [x7,122] - bl printk -.L2922: - add x21, x21, :lo12:.LANCHOR9 - mov w3, 0 - ldrh w0, [x21,1116] - cmp w22, w0, lsr 1 - bls .L2926 - add x0, x19, :lo12:.LANCHOR0 - cmp w24, 31 - ldrb w0, [x0,3209] - bhi .L2923 - cmp w25, 32 - bls .L2923 -.L3040: + uxth w0, w0 + cbnz w0, .L3005 +.L3113: + ldrb w0, [x19,3193] mov w1, 3 - b .L3041 -.L2923: - mov w1, 1 -.L3041: - mov w2, 16 -.L3042: - bl gc_search_src_blk - uxth w3, w0 - b .L2926 -.L2921: - mov w3, 0 - b .L2926 -.L2909: - cmp w25, w0 - bcs .L2924 - adrp x25, .LANCHOR9 - add x0, x25, :lo12:.LANCHOR9 - ldrh w0, [x0,1116] - cmp w22, w0, lsr 1 - bcc .L2885 - mov w0, w26 - mov w1, w23 - mov w2, 16 - strb w26, [x21,3209] + mov w2, 2 +.L3115: bl gc_search_src_blk - uxth w3, w0 - cmp w3, 7 - bhi .L2926 - cmp w24, 4 - bls .L2926 - ldr x0, [x21,2792] - mov w1, 255 - mov w2, 128 - add x0, x0, 136 - strh w26, [x0,-16] - bl ftl_memset - strb w23, [x21,3209] - ldr x0, [x21,2800] - ldrh w1, [x0,120] - ldrh w0, [x21,3224] - cmp w1, w0 - bls .L2927 - cmp w24, 16 - bls .L2928 -.L2930: + uxth w0, w0 + b .L3015 +.L3012: + cmp w24, 1 + lsl w0, w3, 1 + bne .L3019 + cmp w20, w0 + bge .L3019 + add w0, w26, w25 + uxth w0, w0 + cmp w0, w22, lsr 1 + bcs .L3020 + ldrh w3, [x1,2798] + ldrh w2, [x1,3234] + cmp w3, w2 + bcs .L3020 + ldrh w0, [x1,3232] + lsr w0, w0, 1 + strh w0, [x1,2808] + b .L3099 +.L3020: + cmp w22, 1 + bls .L3021 + cmp w22, 16 mov w0, 1 - mov w1, 2 + bls .L3022 + mov w1, 3 mov w2, 8 - b .L3043 -.L2927: - cmp w24, 32 - bls .L2928 - mov w0, w23 - mov w1, w23 - b .L3044 -.L2928: - cmp w24, 7 - bls .L2930 - mov w0, 1 + b .L3112 +.L3022: + mov w1, 2 + mov w2, w1 + bl gc_search_src_blk + uxth w0, w0 + cbnz w0, .L3023 + add x0, x19, :lo12:.LANCHOR0 mov w1, 3 -.L3044: - mov w2, 16 -.L3043: + mov w2, 2 + ldrb w0, [x0,3193] +.L3112: bl gc_search_src_blk - add x25, x25, :lo12:.LANCHOR9 - uxth w3, w0 - add x0, x20, :lo12:.LANCHOR4 - mov w1, 1 - strb w1, [x0,1010] - ldrh w0, [x25,1116] - add w0, w0, 16 - cmp w22, w0 - bge .L2906 + uxth w0, w0 +.L3023: add x19, x19, :lo12:.LANCHOR0 - ldrh w0, [x19,2826] - lsr w0, w0, 4 - b .L3046 -.L2926: + b .L3114 +.L3021: + cmp w20, w0 + bcs .L3024 add x19, x19, :lo12:.LANCHOR0 - ldrh w0, [x19,2826] - lsr w0, w0, 3 -.L3046: - strh w0, [x19,3214] - b .L2906 -.L2924: - sub w24, w24, #2 - uxth w24, w24 - cmp w24, 5 - bhi .L2931 - adrp x0, .LANCHOR9+1116 - ldrh w0, [x0,#:lo12:.LANCHOR9+1116] - cmp w22, w0, lsr 1 - bls .L2885 - mov w0, w23 - mov w1, 2 - mov w2, 16 - bl gc_search_src_blk - uxth w0, w0 - cmp w0, 15 - bhi .L2897 - ldrb w0, [x21,3209] - ldr x1, [x21,2792] - add x2, x1, x0, lsl 1 - add x0, x1, x0, lsl 7 - add x0, x0, 136 - mov w1, 255 - strh w26, [x2,120] - mov w2, 128 - bl ftl_memset - b .L2885 -.L2931: - ldrh w0, [x21,2826] - ldrh w1, [x21,3224] - lsr w0, w0, 4 - strh w0, [x21,3214] - ldr x0, [x21,2800] - ldrh w0, [x0,120] - cmp w0, w1, lsr 2 - bls .L2885 - ldrb w1, [x21,3212] - ldrh w0, [x21,3210] - mul w0, w0, w1 - ldr w1, [x7,532] - cmp w1, w0, lsr 3 - bcs .L2885 - mov w0, w23 + mov w0, 0 mov w1, 3 - mov w2, 16 + mov w2, 8 + strb wzr, [x19,3193] bl gc_search_src_blk - uxth w3, w0 - add x0, x20, :lo12:.LANCHOR4 - strb w23, [x0,1010] -.L2906: - cbnz w3, .L2897 - b .L2885 -.L2888: - add x21, x19, :lo12:.LANCHOR0 + uxth w0, w0 +.L3114: + ldrh w1, [x19,3232] + strh w1, [x19,2808] + b .L3015 +.L3019: + cmp w20, w0 + blt .L3099 +.L3024: + add x19, x19, :lo12:.LANCHOR0 + ldrh w0, [x19,3232] + lsr w0, w0, 1 + strh w0, [x19,2808] + b .L3099 +.L3015: + cbnz w0, .L3005 + b .L3099 +.L2991: + add x20, x19, :lo12:.LANCHOR0 mov w0, 65535 - ldrh w1, [x21,2848] + ldrh w1, [x20,2840] cmp w1, w0 - bne .L2934 + bne .L3025 bl gc_get_src_blk - strh w0, [x21,2848] -.L2934: + strh w0, [x20,2840] +.L3025: add x0, x19, :lo12:.LANCHOR0 mov w2, 65535 - add x1, x0, 2848 - ldrh w3, [x0,2848] + add x1, x0, 2840 + ldrh w3, [x0,2840] cmp w3, w2 - beq .L2935 + beq .L3026 ldrh w5, [x1,56] uxtw x4, w3 - ldr x2, [x0,2840] + ldr x2, [x0,64] add x2, x2, x4, lsl 2 - cbz w5, .L2937 + cbz w5, .L3028 mov x0, 0 -.L2936: +.L3027: cmp w5, w0, uxth - bls .L2937 + bls .L3028 add x0, x0, 1 add x6, x1, x0, lsl 1 ldrh w6, [x6,56] cmp w6, w3 - bne .L2936 -.L2941: + bne .L3027 +.L3032: add x19, x19, :lo12:.LANCHOR0 mov w0, -1 - strh w0, [x19,2848] - b .L2885 -.L2937: + strh w0, [x19,2840] + b .L3099 +.L3028: ldrb w0, [x2,2] tst w0, 192 - beq .L2990 + beq .L3079 and w0, w0, 224 cmp w0, 224 - bne .L2939 -.L2990: + bne .L3030 +.L3079: add x0, x19, :lo12:.LANCHOR0 - ldr x0, [x0,2832] + ldr x0, [x0,72] ldrh w0, [x0,x4,lsl 1] - cbz w0, .L2941 + cbz w0, .L3032 adrp x1, .LANCHOR3 - adrp x0, .LC34 + adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR3 - add x0, x0, :lo12:.LC34 - add x1, x1, 848 - mov w2, 1622 + add x0, x0, :lo12:.LC0 + add x1, x1, 696 + mov w2, 1972 bl printk -.L2942: - b .L2942 -.L2939: - add x20, x20, :lo12:.LANCHOR4 - mov w0, 2 - b .L3049 -.L2935: - add x20, x20, :lo12:.LANCHOR4 - strb wzr, [x20,1010] - b .L2885 -.L2889: +.L3033: + b .L3033 +.L3030: + add x0, x21, :lo12:.LANCHOR4 + mov w1, 2 +.L3117: + strb w1, [x0,1050] + b .L3099 +.L3026: + add x0, x21, :lo12:.LANCHOR4 + strb wzr, [x0,1050] + b .L3099 +.L2992: bl gc_scan_src_blk cmn w0, #1 - bne .L2943 - add x20, x20, :lo12:.LANCHOR4 - mov w0, 3 -.L3049: - strb w0, [x20,1010] - b .L2885 -.L2943: + bne .L3034 + add x0, x21, :lo12:.LANCHOR4 + mov w1, 3 + b .L3117 +.L3034: add x22, x19, :lo12:.LANCHOR0 mov w1, 65535 - add x21, x22, 2848 - ldrh w0, [x22,2848] + add x20, x22, 2840 + ldrh w0, [x22,2840] cmp w0, w1 - beq .L2897 - ldrh w1, [x21,24] - add x20, x20, :lo12:.LANCHOR4 - cbz w1, .L2944 - mov w0, 4 - strh wzr, [x21,26] - strb w0, [x20,1010] - b .L2885 -.L2944: + beq .L3005 + ldrh w1, [x20,24] + cbz w1, .L3035 + add x0, x21, :lo12:.LANCHOR4 + mov w1, 4 + strh wzr, [x20,26] + strb w1, [x0,1050] + b .L3099 +.L3035: + add x21, x21, :lo12:.LANCHOR4 mov w1, 1 - ldr x2, [x22,2832] - strb w1, [x20,1010] + ldr x2, [x22,72] + strb w1, [x21,1050] ubfiz x1, x0, 1, 16 - ldrh w20, [x2,x1] - cbz w20, .L2945 + ldrh w21, [x2,x1] + cbz w21, .L3036 adrp x1, .LANCHOR3 - adrp x0, .LC34 + adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR3 - add x0, x0, :lo12:.LC34 - add x1, x1, 848 - mov w2, 1650 + add x0, x0, :lo12:.LC0 + add x1, x1, 696 + mov w2, 2000 bl printk -.L2946: - b .L2946 -.L2945: +.L3037: + b .L3037 +.L3036: bl ftl_free_sblk - ldrh w1, [x22,2848] - ldr x0, [x22,2832] - strh w20, [x0,x1,lsl 1] - ldrh w1, [x21,30] + ldrh w1, [x22,2840] + ldr x0, [x22,72] + strh w21, [x0,x1,lsl 1] + ldrh w1, [x20,30] add w1, w1, 1 uxth w1, w1 cmp w1, 8 - bhi .L2947 - strh w1, [x21,30] - b .L2941 -.L2947: - strh w20, [x21,30] + bhi .L3038 + strh w1, [x20,30] + b .L3032 +.L3038: + strh w21, [x20,30] bl ftl_flush bl pm_flush bl ftl_ext_info_flush - mov w0, w20 + mov w0, w21 bl ftl_info_flush - b .L2941 -.L2890: - add x21, x19, :lo12:.LANCHOR0 -.L3021: + b .L3032 +.L2993: + add x22, x19, :lo12:.LANCHOR0 +.L3100: bl gc_scan_src_blk_one_page - ldrh w2, [x21,2850] - add x1, x21, 2848 - ldrh w0, [x21,3234] + ldrh w2, [x22,2842] + add x1, x22, 2840 + ldrh w0, [x22,3228] cmp w2, w0 - bcs .L2948 - cmp w25, 7 - bls .L3021 - b .L2885 -.L2948: + bcs .L3039 + cmp w20, 7 + bls .L3100 + b .L3099 +.L3039: ldrh w3, [x1,24] - adrp x0, .LANCHOR2 - cbz w3, .L2949 - add x0, x0, :lo12:.LANCHOR2 - add x20, x20, :lo12:.LANCHOR4 - mov w2, 4 + adrp x2, .LANCHOR2 + cbz w3, .L3040 + add x0, x21, :lo12:.LANCHOR4 + add x2, x2, :lo12:.LANCHOR2 + mov w4, 4 strh wzr, [x1,26] - ldr w0, [x0,400] - strb w2, [x20,1010] - tbz x0, 8, .L2950 + strb w4, [x0,1050] + ldr w0, [x2,400] + tbz x0, 8, .L3041 ldrh w1, [x1] - adrp x0, .LC242 - ldr x4, [x21,2832] - add x0, x0, :lo12:.LC242 + adrp x0, .LC193 + ldr x4, [x22,72] + add x0, x0, :lo12:.LC193 ubfiz x2, x1, 1, 16 ldrh w2, [x4,x2] bl printk -.L2950: +.L3041: add x19, x19, :lo12:.LANCHOR0 - ldr x0, [x19,2832] - ldrh w1, [x19,2848] + ldr x0, [x19,72] + ldrh w1, [x19,2840] ldrh w1, [x0,x1,lsl 1] - ldrh w0, [x19,2872] + ldrh w0, [x19,2864] cmp w1, w0 - beq .L2885 + beq .L3099 adrp x1, .LANCHOR3 - adrp x0, .LC34 + adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR3 - add x0, x0, :lo12:.LC34 - add x1, x1, 848 - mov w2, 1684 + add x0, x0, :lo12:.LC0 + add x1, x1, 696 + mov w2, 2034 bl printk -.L2951: - b .L2951 -.L2949: - add x0, x0, :lo12:.LANCHOR2 - add x20, x20, :lo12:.LANCHOR4 - mov w2, 1 +.L3042: + b .L3042 +.L3040: + add x0, x21, :lo12:.LANCHOR4 + add x2, x2, :lo12:.LANCHOR2 + mov w3, 1 ldrh w1, [x1] - ldr x21, [x21,2840] - add x21, x21, x1, uxth 2 - ldr w0, [x0,400] - strb w2, [x20,1010] - tbz x0, 8, .L2952 - ldrb w2, [x21,2] - adrp x0, .LC243 - add x0, x0, :lo12:.LC243 + ldr x20, [x22,64] + add x20, x20, x1, uxth 2 + strb w3, [x0,1050] + ldr w0, [x2,400] + tbz x0, 8, .L3043 + ldrb w2, [x20,2] + adrp x0, .LC194 + add x0, x0, :lo12:.LC194 ubfx x2, x2, 5, 3 bl printk -.L2952: - ldrb w0, [x21,2] +.L3043: + ldrb w0, [x20,2] tst w0, 192 - beq .L2991 + beq .L3080 and w0, w0, 224 cmp w0, 224 cset w21, eq - cbz w21, .L2953 -.L2991: + cbz w21, .L3044 +.L3080: adrp x1, .LANCHOR3 - adrp x0, .LC34 + adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR3 - add x0, x0, :lo12:.LC34 - add x1, x1, 848 - mov w2, 1694 + add x0, x0, :lo12:.LC0 + add x1, x1, 696 + mov w2, 2044 bl printk -.L2955: - b .L2955 -.L2953: +.L3046: + b .L3046 +.L3044: add x19, x19, :lo12:.LANCHOR0 - add x20, x19, 2848 - ldrh w0, [x19,2848] + add x20, x19, 2840 + ldrh w0, [x19,2840] bl ftl_free_sblk mov w0, -1 - strh w0, [x19,2848] + strh w0, [x19,2840] ldrh w0, [x20,30] add w0, w0, 1 uxth w0, w0 cmp w0, 8 - bhi .L2956 + bhi .L3047 strh w0, [x20,30] - b .L2885 -.L2956: + b .L3099 +.L3047: strh w21, [x20,30] - b .L3050 -.L2891: - ldrh w26, [x22,80] + b .L3118 +.L2994: + cbnz w24, .L3048 + add x0, x19, :lo12:.LANCHOR0 + ldrh w0, [x0,2808] + cmp w0, w20 + bcc .L3099 +.L3048: + ldrh w1, [x23,80] mov w0, 65535 - add x23, x22, 80 - cmp w26, w0 - bne .L2957 - add x21, x19, :lo12:.LANCHOR0 - ldrb w1, [x21,3209] - cmp w1, 1 - bne .L2957 - str x1, [x29,104] + cmp w1, w0 + bne .L3049 + add x22, x19, :lo12:.LANCHOR0 + ldrb w0, [x22,3193] + cmp w0, 1 + bne .L3049 bl ftl_flush - mov w0, 5 - bl ftl_alloc_sblk - uxth w24, w0 - cmp w24, w26 - ldr x1, [x29,104] - bne .L2958 + ldrh w0, [x22,2792] + cbnz w0, .L3116 + ldrh w0, [x22,2790] +.L3116: + mov w1, 5 + lsr w0, w0, 1 + bl zftl_get_free_sblk + uxth w25, w0 + mov w1, 65535 + cmp w25, w1 + beq .L3052 + add x19, x19, :lo12:.LANCHOR0 + ldr x2, [x19,64] + add x2, x2, x25, uxth 2 + ldrb w1, [x2,2] + ands w20, w1, 224 + beq .L3053 adrp x1, .LANCHOR3 - adrp x0, .LC34 + adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR3 - add x0, x0, :lo12:.LC34 - add x1, x1, 848 - mov w2, 1710 + add x0, x0, :lo12:.LC0 + add x1, x1, 696 + mov w2, 2069 bl printk -.L2959: - b .L2959 -.L2958: +.L3054: + b .L3054 +.L3053: + mov w26, 5 + add x21, x21, :lo12:.LANCHOR4 + bfi w1, w26, 5, 3 + orr w1, w1, 16 + strb w1, [x2,2] + mov w1, 1 bl ftl_erase_sblk - add x20, x20, :lo12:.LANCHOR4 - mov w0, 5 - add x1, x22, 96 - strb w0, [x23,4] - mov w0, w24 + strb w26, [x23,84] + add x1, x23, 96 + mov w0, w25 bl ftl_get_blk_list_in_sblk uxtb w0, w0 - ldrh w1, [x21,3234] - strb w0, [x23,9] - strh w24, [x22,80] + ldrh w1, [x19,3228] + strb w0, [x23,89] + ldrb w2, [x19,3196] mul w0, w0, w1 - strh w0, [x23,6] + ldrh w1, [x19,3194] + strh w0, [x23,86] + ldr x0, [x21,1056] + mul w2, w1, w2 + strh w25, [x23,80] mov w1, 255 - ldrh w0, [x21,3210] - ldrb w2, [x21,3212] - strh wzr, [x23,2] - strb wzr, [x23,5] - mul w2, w0, w2 - ldr x0, [x20,1016] - strh wzr, [x23,10] + strh w20, [x23,82] lsl w2, w2, 2 + strb w20, [x23,85] + strh w20, [x23,90] bl ftl_memset - ldrh w0, [x21,3210] + ldrh w1, [x19,3194] + ldrb w2, [x19,3196] + ldr x0, [x21,1064] + mul w2, w1, w2 mov w1, 255 - ldrb w2, [x21,3212] - mul w2, w0, w2 - ldr x0, [x20,1024] lsl w2, w2, 2 bl ftl_memset - ldrh w3, [x21,3210] + ldrh w3, [x19,3194] mov w1, 255 - ldrb w2, [x21,3212] - ldr x0, [x21,3200] + ldrb w2, [x19,3196] + ldr x0, [x19,3184] mul w2, w3, w2 bl ftl_memset - ldr x0, [x21,2792] + ldr x0, [x19,80] mov w1, -1 - str w24, [x0,132] + str w25, [x0,132] strh w1, [x0,128] strh w1, [x0,130] bl pm_flush bl ftl_ext_info_flush - strh wzr, [x21,2904] - ldr x0, [x21,2800] - strh w24, [x0,126] + strh w20, [x19,2896] + ldr x0, [x19,2800] + strh w25, [x0,126] mov w0, -1 - str w0, [x21,3168] - mov w0, 0 - strh wzr, [x21,3162] - strh wzr, [x21,3164] - strh wzr, [x21,3166] + str w0, [x19,3160] + mov w0, w20 + strh w20, [x19,3154] + strh w20, [x19,3156] + strh w20, [x19,3158] bl ftl_info_flush - b .L2885 -.L2957: - cmp w25, 7 - bhi .L2960 - add x0, x19, :lo12:.LANCHOR0 - ldrh w21, [x0,3210] - lsr w21, w21, 1 - b .L3047 -.L2960: - cmp w25, 15 - bhi .L2962 - add x0, x19, :lo12:.LANCHOR0 - ldrh w21, [x0,3210] - lsr w21, w21, 3 -.L3047: - add w21, w21, 1 - uxtb w21, w21 - b .L2961 -.L2962: - cmp w25, 31 - bhi .L2963 - add x0, x19, :lo12:.LANCHOR0 - ldrh w21, [x0,3210] - lsr w21, w21, 4 - b .L3047 -.L2963: - cmp w25, 63 - mov w21, 9 - bls .L2961 - cmp w25, 127 - mov w21, 5 - bls .L2961 - cmp w25, 255 - mov w21, 2 - csinc w21, w21, wzr, ls -.L2961: - cmp w24, 7 - bhi .L2964 - add x0, x19, :lo12:.LANCHOR0 - ldrh w0, [x0,3210] - add w21, w21, w0, lsr 3 - b .L3048 -.L2964: - cmp w24, 15 - bhi .L2965 - add w21, w21, 16 -.L3048: - uxtb w21, w21 -.L2965: - add x24, x19, :lo12:.LANCHOR0 - bl timer_get_time -.L2966: - cbz w21, .L2885 + b .L3099 +.L3049: + cmp w24, 1 + mov w22, 4 + csinc w22, w22, wzr, eq + cmp w20, 15 + add w0, w22, 4 + add x20, x19, :lo12:.LANCHOR0 + csel w22, w0, w22, ls +.L3058: + sub w22, w22, #1 + uxtb w22, w22 + cmp w22, 255 + beq .L3099 bl gc_do_copy_back - ldrb w0, [x24,3209] - cbnz w0, .L2967 - ldrb w0, [x24,2778] + ldrb w0, [x20,3193] + cbnz w0, .L3059 + ldrb w0, [x20,2778] cmp w0, 3 - bhi .L2968 + bhi .L3060 bl ftl_write_commit -.L2968: - add x25, x24, 2848 - ldrh w1, [x25,26] - ldrh w0, [x25,24] +.L3060: + add x24, x20, 2840 + ldrh w1, [x24,26] + ldrh w0, [x24,24] cmp w1, w0 - bcc .L2992 - add x20, x20, :lo12:.LANCHOR4 - mov w0, 1 - strb w0, [x20,1010] + bcc .L3058 + add x0, x21, :lo12:.LANCHOR4 + mov w1, 1 + strb w1, [x0,1050] bl ftl_write_commit bl ftl_flush - ldrh w0, [x25] - ldr x1, [x24,2832] + ldrh w0, [x24] + ldr x1, [x20,72] lsl x0, x0, 1 ldrh w2, [x1,x0] - cbz w2, .L2970 + cbz w2, .L3062 adrp x1, .LANCHOR3 - adrp x0, .LC34 + adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR3 - add x0, x0, :lo12:.LC34 - add x1, x1, 848 - mov w2, 1771 + add x0, x0, :lo12:.LC0 + add x1, x1, 696 + mov w2, 2144 bl printk -.L2971: - b .L2971 -.L2970: +.L3063: + b .L3063 +.L3062: strh w2, [x1,x0] - ldrh w0, [x25] + ldrh w0, [x24] bl ftl_free_sblk mov w0, -1 - strh w0, [x25] - b .L2885 -.L2967: - add x0, x24, 2848 - ldrh w1, [x0,318] - cbz w1, .L2972 - strh wzr, [x0,318] - ldr w0, [x0,320] + strh w0, [x24] + b .L3099 +.L3059: + add x1, x20, 2840 + ldrh w0, [x1,318] + cbz w0, .L3064 + ldr w0, [x1,320] + strh wzr, [x1,318] cmn w0, #1 - beq .L2973 + beq .L3065 bl ftl_mask_bad_block -.L2973: - add x21, x19, :lo12:.LANCHOR0 - ldr x0, [x21,2792] - str wzr, [x21,3168] - strh wzr, [x21,2904] +.L3065: + add x20, x19, :lo12:.LANCHOR0 + ldr x0, [x20,80] + str wzr, [x20,3160] + strh wzr, [x20,2896] ldrh w0, [x0,80] bl ftl_free_sblk - ldr x1, [x21,2792] + ldr x1, [x20,80] mov w0, -1 - ldr x2, [x21,2800] + ldr x2, [x20,2800] strh w0, [x1,80] strh w0, [x2,126] strh w0, [x1,130] - ldr x0, [x21,2856] - cbz x0, .L2974 + ldr x0, [x20,2848] + cbz x0, .L3066 bl buf_free -.L2974: +.L3066: add x19, x19, :lo12:.LANCHOR0 - add x20, x20, :lo12:.LANCHOR4 - str xzr, [x19,2856] + str xzr, [x19,2848] bl flt_sys_flush + add x0, x21, :lo12:.LANCHOR4 adrp x1, .LANCHOR3 - adrp x0, .LC34 add x1, x1, :lo12:.LANCHOR3 - add x0, x0, :lo12:.LC34 - add x1, x1, 848 - mov w2, 1804 - strb wzr, [x20,1010] - bl printk -.L2975: - b .L2975 -.L2972: - ldrh w1, [x23,6] - cmp w1, 1 - bls .L2976 - ldrh w2, [x0,26] - ldrh w1, [x0,24] - cmp w2, w1 - bcc .L2992 - add x20, x20, :lo12:.LANCHOR4 - mov w1, 1 - strb w1, [x20,1010] - ldrh w1, [x0,56] - add w2, w1, 1 - add x1, x0, x1, sxtw 1 - strh w2, [x0,56] - ldrh w2, [x0] - strh w2, [x1,58] - mov w1, -1 - strh w1, [x0] - b .L2885 -.L2976: - add x20, x20, :lo12:.LANCHOR4 - mov w1, 5 - ldrh w2, [x0,26] - strb w1, [x20,1010] - ldrh w1, [x0,24] - cmp w2, w1 - bcc .L2977 - ldrh w1, [x0,56] - add w2, w1, 1 - add x1, x0, x1, sxtw 1 - strh w2, [x0,56] - ldrh w2, [x0] - strh w2, [x1,58] - mov w1, -1 - strh w1, [x0] -.L2977: + mov w2, 2177 + add x1, x1, 696 + strb wzr, [x0,1050] + adrp x0, .LC0 + add x0, x0, :lo12:.LC0 + bl printk +.L3067: + b .L3067 +.L3064: + ldrh w0, [x23,86] + cmp w0, 1 + bls .L3068 + ldrh w2, [x1,26] + ldrh w0, [x1,24] + cmp w2, w0 + bcc .L3058 + add x0, x21, :lo12:.LANCHOR4 + mov w2, 1 + strb w2, [x0,1050] + ldrh w0, [x1,56] + add w2, w0, 1 + add x0, x1, x0, sxtw 1 + strh w2, [x1,56] + ldrh w2, [x1] + strh w2, [x0,58] + mov w0, -1 + strh w0, [x1] + b .L3099 +.L3068: + add x0, x21, :lo12:.LANCHOR4 + mov w2, 5 + strb w2, [x0,1050] + ldrh w2, [x1,26] + ldrh w0, [x1,24] + cmp w2, w0 + bcc .L3069 + ldrh w0, [x1,56] + add w2, w0, 1 + add x0, x1, x0, sxtw 1 + strh w2, [x1,56] + ldrh w2, [x1] + strh w2, [x0,58] + mov w0, -1 + strh w0, [x1] +.L3069: add x20, x19, :lo12:.LANCHOR0 bl ftl_flush bl sblk_wait_write_queue_completed bl gc_write_completed - ldr x0, [x20,2792] - ldrh w1, [x22,80] + ldr x0, [x20,80] + ldrh w1, [x23,80] strh w1, [x0,128] bl pm_flush bl ftl_ext_info_flush - strh wzr, [x20,2864] - ldrb w2, [x20,3193] - ldrh w1, [x20,3234] - strh w1, [x20,2866] + strh wzr, [x20,2856] + ldrb w2, [x20,3177] + ldrh w1, [x20,3228] + strh w1, [x20,2858] cmp w2, 2 - strh w2, [x20,2868] - bne .L2978 + strh w2, [x20,2860] + bne .L3070 lsl w1, w1, 1 - strh w1, [x20,2866] + strh w1, [x20,2858] mov w1, 1 - strh w1, [x20,2868] -.L2978: + strh w1, [x20,2860] +.L3070: add x19, x19, :lo12:.LANCHOR0 - strh wzr, [x19,2870] - b .L2885 -.L2992: - sub w21, w21, #1 - bl timer_get_time - uxtb w21, w21 - b .L2966 -.L2892: - add x22, x19, :lo12:.LANCHOR0 -.L3022: + strh wzr, [x19,2862] + b .L3099 +.L3075: + mov w22, 0 + add x25, x19, :lo12:.LANCHOR0 +.L2995: bl gc_check_data_one_wl - cbz w0, .L2980 + cbz w0, .L3072 add x19, x19, :lo12:.LANCHOR0 - add x20, x20, :lo12:.LANCHOR4 - ldr x0, [x19,2792] - strh wzr, [x19,2904] + ldr x0, [x19,80] + strh wzr, [x19,2896] ldrh w0, [x0,80] bl ftl_free_sblk - ldr x1, [x19,2792] + ldr x1, [x19,80] mov w0, -1 ldr x2, [x19,2800] strh w0, [x1,80] strh w0, [x2,126] strh w0, [x1,130] - ldr x0, [x19,2856] + ldr x0, [x19,2848] bl buf_free - str xzr, [x19,2856] - strb wzr, [x20,1010] -.L3050: + str xzr, [x19,2848] + add x0, x21, :lo12:.LANCHOR4 + strb wzr, [x0,1050] +.L3118: bl flt_sys_flush - b .L2885 -.L2980: - ldrh w1, [x22,2864] - ldrh w0, [x22,2866] + b .L3099 +.L3072: + ldrh w1, [x25,2856] + ldrh w0, [x25,2858] cmp w1, w0 - bcc .L2981 - add x20, x20, :lo12:.LANCHOR4 - mov w0, 6 - strb w0, [x20,1010] - ldr x0, [x22,2856] + bcc .L3073 + add x0, x21, :lo12:.LANCHOR4 + mov w1, 6 + strb w1, [x0,1050] + ldr x0, [x25,2848] bl buf_free - str xzr, [x22,2856] - b .L2885 -.L2981: - cmp w25, 7 - bls .L3022 - b .L2885 -.L2893: + str xzr, [x25,2848] + b .L3099 +.L3073: + cmp w20, 7 + bls .L2995 + cmp w24, 1 + bne .L3099 + add w22, w22, 1 + uxtb w22, w22 + cmp w22, 4 + bls .L2995 + b .L3099 +.L2996: bl gc_update_l2p_map_new - mov w21, -1 + mov w20, -1 bl gc_free_src_blk add x19, x19, :lo12:.LANCHOR0 bl ftl_flush - add x20, x20, :lo12:.LANCHOR4 bl pm_flush - strh w21, [x22,80] + strh w20, [x23,80] bl ftl_ext_info_flush ldr x0, [x19,2800] - strh w21, [x0,126] + strh w20, [x0,126] mov w0, 0 bl ftl_info_flush - strb wzr, [x20,1010] + add x0, x21, :lo12:.LANCHOR4 + strb wzr, [x0,1050] bl print_ftl_debug_info -.L2885: + b .L3099 +.L3052: + adrp x1, .LANCHOR3 + adrp x0, .LC0 + add x1, x1, :lo12:.LANCHOR3 + add x0, x0, :lo12:.LC0 + add x1, x1, 696 + mov w2, 2075 + bl printk +.L3055: + b .L3055 +.L3099: + sub sp, x29, #16 mov w0, 16 - 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 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, 112 ret .size zftl_do_gc, .-zftl_do_gc .align 2 @@ -20266,105 +20683,130 @@ zftl_do_gc: zftl_write: stp x29, x30, [sp, -96]! add x29, sp, 0 + stp x19, x20, [sp,16] + mov w19, w0 + adrp x0, .LANCHOR2+400 + stp x23, x24, [sp,48] stp x25, x26, [sp,64] + ldr w0, [x0,#:lo12:.LANCHOR2+400] + mov w23, w2 stp x27, x28, [sp,80] - stp x19, x20, [sp,16] stp x21, x22, [sp,32] - stp x23, x24, [sp,48] - mov w28, w2 + mov w28, w1 mov x25, x3 - cbnz w0, .L3052 + tbz x0, 12, .L3120 + adrp x0, .LC195 + mov w1, w19 + add x0, x0, :lo12:.LC195 + mov w2, w28 + mov w3, w23 + bl printk +.L3120: + cbnz w19, .L3121 adrp x0, .LANCHOR0+4 - ldr w3, [x0,#:lo12:.LANCHOR0+4] - mov w0, 24576 - b .L3053 -.L3052: - cmp w0, 3 - mov w19, -1 - bhi .L3054 - lsl w0, w0, 13 - mov w3, 8192 -.L3053: - add w2, w1, w28 - mov w19, -1 - cmp w2, w3 - bhi .L3054 - adrp x22, .LANCHOR0 - add w27, w0, w1 - add x0, x22, :lo12:.LANCHOR0 - add w21, w28, w19 - add w21, w21, w27 - add w24, w27, w28 + mov w19, 24576 + ldr w2, [x0,#:lo12:.LANCHOR0+4] + b .L3122 +.L3121: + cmp w19, 3 + mov w0, -1 + bhi .L3123 + lsl w19, w19, 13 + mov w2, 8192 +.L3122: + add w1, w28, w23 + mov w0, -1 + cmp w1, w2 + bhi .L3123 + add w28, w19, w28 + adrp x19, .LANCHOR0 + add x0, x19, :lo12:.LANCHOR0 + sub w22, w23, #1 + add w22, w22, w28 + add w26, w28, w23 ldrb w0, [x0,2776] - udiv w23, w27, w0 - mov w20, w23 - udiv w21, w21, w0 - sub w19, w21, w23 - add w19, w19, 1 -.L3055: - cbz w19, .L3068 + udiv w24, w28, w0 + mov w21, w24 + udiv w22, w22, w0 + sub w20, w22, w24 + add w20, w20, 1 +.L3124: + cbz w20, .L3143 mov w0, 0 bl buf_alloc - mov x26, x0 - cbnz x0, .L3056 + mov x27, x0 + cbnz x0, .L3125 bl ftl_write_commit - b .L3055 -.L3056: + b .L3124 +.L3125: strb wzr, [x0,57] - add x0, x22, :lo12:.LANCHOR0 - cmp w20, w23 + add x0, x19, :lo12:.LANCHOR0 + cmp w21, w24 ldrb w4, [x0,2776] cset w0, eq - strb w4, [x26,56] - cmp w20, w21 - beq .L3058 - cbz w0, .L3059 - b .L3066 -.L3058: - cbz w0, .L3060 -.L3066: - udiv w0, w27, w4 - msub w0, w0, w4, w27 + strb w4, [x27,56] + cmp w21, w22 + beq .L3127 + cbz w0, .L3128 + b .L3137 +.L3127: + cbz w0, .L3129 +.L3137: + udiv w0, w28, w4 + msub w0, w0, w4, w28 uxtb w0, w0 - strb w0, [x26,57] + strb w0, [x27,57] sub w4, w4, w0 uxtb w4, w4 - cmp w4, w28 - csel w4, w28, w4, hi - b .L3067 -.L3060: - msub w4, w4, w20, w24 -.L3067: - strb w4, [x26,56] -.L3059: - ldrb w1, [x26,57] - sub w19, w19, #1 - ldr x0, [x26,8] - ldrb w2, [x26,56] + cmp w4, w23 + csel w4, w23, w4, hi + b .L3141 +.L3129: + msub w4, w4, w21, w26 +.L3141: + strb w4, [x27,56] +.L3128: + ldrb w1, [x27,57] + sub w20, w20, #1 + ldr x0, [x27,8] + ldrb w2, [x27,56] add x0, x0, x1, lsl 9 mov x1, x25 lsl w2, w2, 9 bl ftl_memcpy - str w20, [x26,36] - add x0, x22, :lo12:.LANCHOR0 - add w20, w20, 1 + str w21, [x27,36] + add x0, x19, :lo12:.LANCHOR0 + add w21, w21, 1 ldr x1, [x0,2800] ldr w0, [x1,8] add w2, w0, 1 str w2, [x1,8] - str w0, [x26,32] - mov x0, x26 + str w0, [x27,32] + mov x0, x27 bl ftl_write_buf - ldrb w0, [x26,56] + ldrb w0, [x27,56] add x25, x25, x0, lsl 9 - b .L3055 -.L3068: + b .L3124 +.L3143: bl ftl_write_commit - mov w0, w19 + mov w0, w20 +.L3142: mov w1, 1 bl zftl_do_gc -.L3054: - mov w0, w19 + add x1, x19, :lo12:.LANCHOR0 + ldrh w2, [x1,2788] + ldrh w0, [x1,2792] + add w0, w2, w0 + cmp w0, 7 + bgt .L3144 + mov w0, 0 + b .L3142 +.L3144: + bl timer_get_time + adrp x1, .LANCHOR8+3528 + str w0, [x1,#:lo12:.LANCHOR8+3528] + mov w0, 0 +.L3123: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -20378,10 +20820,11 @@ zftl_write: .type zftl_vendor_write, %function zftl_vendor_write: stp x29, x30, [sp, -16]! + mov w4, w1 mov x3, x2 - add w1, w0, 512 add x29, sp, 0 - mov w2, 1 + add w1, w0, 512 + mov w2, w4 mov w0, 2 bl zftl_write ldp x29, x30, [sp], 16 @@ -20392,10 +20835,12 @@ zftl_vendor_write: .type zftl_sys_write, %function zftl_sys_write: stp x29, x30, [sp, -16]! - mov w1, w0 - mov x3, x2 + mov w5, w0 + mov w4, w1 add x29, sp, 0 - mov w2, 1 + mov x3, x2 + mov w1, w5 + mov w2, w4 mov w0, 2 bl zftl_write ldp x29, x30, [sp], 16 @@ -20417,34 +20862,34 @@ id_block_prog_msb_ff_data: stp x27, x28, [sp,80] adrp x20, .LANCHOR4 uxth w19, w2 - ldr x0, [x0,48] + ldr x0, [x0,720] ldrb w2, [x0,19] add x0, x20, :lo12:.LANCHOR4 - ldrb w0, [x0,1136] - cbnz w0, .L3071 + ldrb w0, [x0,1208] + cbnz w0, .L3147 sub w0, w2, #5 uxtb w0, w0 cmp w0, 2 - bls .L3073 + bls .L3149 cmp w2, 68 - beq .L3073 + beq .L3149 sub w2, w2, #19 and w2, w2, -17 uxtb w2, w2 - cbnz w2, .L3071 -.L3073: - adrp x24, .LC244 + cbnz w2, .L3147 +.L3149: + adrp x24, .LC196 mov w25, w1 - add x24, x24, :lo12:.LC244 + add x24, x24, :lo12:.LC196 add x20, x20, :lo12:.LANCHOR4 mov w27, 65535 -.L3075: +.L3151: add x28, x21, :lo12:.LANCHOR0 - ldr x0, [x28,48] + ldr x0, [x28,720] ldrh w0, [x0,10] cmp w0, w19 - bls .L3071 - sub x22, x20, #52 + bls .L3147 + sub x22, x20, #12 add w26, w19, w25 mov x0, x24 mov w1, w19 @@ -20453,22 +20898,22 @@ id_block_prog_msb_ff_data: bl printk ldrh w0, [x22,w19,sxtw 1] cmp w0, w27 - bne .L3071 - ldr x0, [x20,1072] + bne .L3147 + ldr x0, [x20,1144] mov w1, 255 mov w2, 16384 add w19, w19, 1 bl ftl_memset uxth w19, w19 - ldr x4, [x28,48] + ldr x4, [x28,720] mov w0, w23 - ldr x2, [x20,1072] + ldr x2, [x20,1144] mov w1, w26 ldrb w4, [x4,9] mov x3, x2 bl flash_prog_page - b .L3075 -.L3071: + b .L3151 +.L3147: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -20492,7 +20937,7 @@ write_idblock: stp x23, x24, [sp,48] stp x27, x28, [sp,80] mov x26, x1 - ldr x0, [x0,48] + ldr x0, [x0,720] ldrb w23, [x0,9] ldrh w20, [x0,10] mov w0, 59392 @@ -20500,7 +20945,7 @@ write_idblock: bl ftl_malloc mov x22, x0 mov w0, -1 - cbz x22, .L3111 + cbz x22, .L3187 add w19, w19, 511 add x2, x26, 253952 lsr w19, w19, 9 @@ -20508,9 +20953,9 @@ write_idblock: mov w0, 0 mov w24, 63999 mov w3, 4097 -.L3082: +.L3158: ldr w1, [x2] - cbnz w1, .L3079 + cbnz w1, .L3155 ldr w1, [x26,w0,uxtw 2] add w0, w0, 1 cmp w0, w3 @@ -20518,19 +20963,19 @@ write_idblock: csel w0, w0, wzr, cc str w1, [x2],-4 cmp w24, 4096 - bne .L3082 - b .L3081 -.L3079: - adrp x0, .LC245 + bne .L3158 + b .L3157 +.L3155: + adrp x0, .LC197 mov w2, w24 - add x0, x0, :lo12:.LC245 + add x0, x0, :lo12:.LC197 bl printk -.L3081: +.L3157: add x0, x21, :lo12:.LANCHOR0 add w1, w19, 128 mul w20, w20, w23 mov w25, 0 - ldr x2, [x0,48] + ldr x2, [x0,720] ldrh w0, [x2,10] ldrb w19, [x2,12] mov w2, w24 @@ -20539,9 +20984,9 @@ write_idblock: mov w0, 500 cmp w19, 500 csel w19, w19, w0, ls - adrp x0, .LC246 + adrp x0, .LC198 cmp w19, w1 - add x0, x0, :lo12:.LC246 + add x0, x0, :lo12:.LC198 csel w19, w19, w1, ls ldr w1, [x26,w24,uxtw 2] mov w3, w19 @@ -20549,29 +20994,29 @@ write_idblock: str w25, [x29,140] uxth w0, w20 str w0, [x29,116] -.L3101: +.L3177: mov w1, 0 mov x0, x22 mov w2, 512 add x24, x21, :lo12:.LANCHOR0 bl ftl_memset - ldr x0, [x24,152] + ldr x0, [x24,144] ldr w1, [x29,140] add x0, x0, x1, uxtw ldrb w20, [x0,32] cmp w20, 255 - beq .L3083 + beq .L3159 ldr w0, [x29,116] mul w20, w20, w0 - ldr x0, [x24,48] + ldr x0, [x24,720] ldrb w27, [x0,9] ldrh w23, [x0,10] - ldrb w0, [x24,144] + ldrb w0, [x24,136] udiv w1, w20, w27 str w0, [x29,112] mul w23, w27, w23 mov w0, 0 - strb wzr, [x24,144] + strb wzr, [x24,136] uxth w23, w23 bl flash_erase_block udiv w0, w20, w23 @@ -20579,15 +21024,15 @@ write_idblock: str w0, [x29,136] sub w28, w20, w0 cmp w20, w28 - bne .L3105 + bne .L3181 ldrb w0, [x21,#:lo12:.LANCHOR0] cmp w0, 9 - bne .L3105 + bne .L3181 adrp x0, .LANCHOR4 mov w1, 0 add x0, x0, :lo12:.LANCHOR4 mov w2, 1024 - ldr x3, [x0,1120] + ldr x3, [x0,1192] str x3, [x29,128] mov x0, x3 bl ftl_memset @@ -20599,7 +21044,7 @@ write_idblock: str w0, [x3] str w1, [x3,4] str wzr, [x3,12] - ldr x2, [x24,48] + ldr x2, [x24,720] ldrb w0, [x2,29] strb w0, [x3,16] mov w0, 4 @@ -20620,102 +21065,102 @@ write_idblock: str w0, [x3,8] sub w0, w19, #4 str w0, [x29,128] - b .L3084 -.L3105: + b .L3160 +.L3181: str w19, [x29,128] mov x3, 0 -.L3084: +.L3160: str x26, [x29,120] mov w24, 0 add x23, x21, :lo12:.LANCHOR0 -.L3086: +.L3162: cmp w24, w19 - bcs .L3119 + bcs .L3195 ldr w0, [x29,136] adrp x2, .LANCHOR4 add x2, x2, :lo12:.LANCHOR4 add w4, w24, w0 - add x0, x23, 172 + add x0, x23, 168 ubfx x4, x4, 2, 16 add w1, w4, 1 - ldrb w2, [x2,1136] + ldrb w2, [x2,1208] ldrh w0, [x0,w1,sxtw 1] - cbz w2, .L3088 - ldrb w6, [x23,168] + cbz w2, .L3164 + ldrb w6, [x23,165] lsl w0, w1, 1 cmp w6, wzr csel w0, w0, w1, ne -.L3088: +.L3164: ldrb w1, [x23] cmp w1, 9 - beq .L3118 + beq .L3194 sub w0, w0, #1 lsl w0, w0, 2 -.L3118: +.L3194: str w0, [x29,144] mov w0, 61424 str w0, [x29,148] - add x0, x23, 172 + add x0, x23, 168 ldrh w0, [x0,w4,sxtw 1] - cbnz w2, .L3092 + cbnz w2, .L3168 mov w4, w0 - b .L3093 -.L3092: - ldrb w1, [x23,168] + b .L3169 +.L3168: + ldrb w1, [x23,165] lsl w0, w4, 1 cmp w1, wzr csel w4, w0, w4, ne -.L3093: +.L3169: mul w0, w4, w27 - cbnz x3, .L3094 + cbnz x3, .L3170 ldr x1, [x29,120] add w0, w0, w28 add x2, x29, 144 str x4, [x29,104] - bl fw_flash_page_prog.constprop.30 + bl fw_flash_page_prog.constprop.39 adrp x0, .LANCHOR4 ldr x4, [x29,104] add x0, x0, :lo12:.LANCHOR4 - ldrb w0, [x0,1136] - cbnz w0, .L3095 + ldrb w0, [x0,1208] + cbnz w0, .L3171 udiv w1, w28, w27 add w2, w4, 1 bl id_block_prog_msb_ff_data -.L3095: +.L3171: ldr x0, [x29,120] add x0, x0, 2048 str x0, [x29,120] - b .L3096 -.L3094: + b .L3172 +.L3170: add w0, w0, w28 mov x1, x3 add x2, x29, 144 - bl fw_flash_page_prog.constprop.30 -.L3096: + bl fw_flash_page_prog.constprop.39 +.L3172: add w24, w24, 4 mov x3, 0 uxth w24, w24 - b .L3086 -.L3119: + b .L3162 +.L3195: add x0, x21, :lo12:.LANCHOR0 ldrb w1, [x29,112] mov x2, x22 - strb w1, [x0,144] + strb w1, [x0,136] mov w0, w20 ldr w1, [x29,128] - bl id_block_read_data.constprop.29 + bl id_block_read_data.constprop.38 ldr w0, [x29,128] lsl w23, w0, 7 mov x0, 0 -.L3098: +.L3174: cmp w23, w0 - bls .L3120 + bls .L3196 ldr w2, [x22,x0,lsl 2] add x0, x0, 1 add x1, x26, x0, lsl 2 ldr w1, [x1,-4] cmp w2, w1 - beq .L3098 + beq .L3174 mov x0, x22 mov w1, 0 mov w2, 512 @@ -20723,23 +21168,23 @@ write_idblock: mov w1, w20 mov w0, 0 bl flash_erase_block - b .L3083 -.L3120: + b .L3159 +.L3196: add w25, w25, 1 cmp w25, 5 - bhi .L3102 -.L3083: + bhi .L3178 +.L3159: ldr w0, [x29,140] add w0, w0, 1 str w0, [x29,140] cmp w0, 4 - bne .L3101 -.L3102: + bne .L3177 +.L3178: mov x0, x22 bl ftl_free cmp w25, wzr csetm w0, eq -.L3111: +.L3187: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -20757,17 +21202,17 @@ CRC_32: mov x5, x0 add x3, x3, :lo12:.LANCHOR2 mov w0, w2 -.L3122: +.L3198: cmp w1, w2 - bls .L3124 + bls .L3200 ldrb w4, [x5,x2] - add x6, x3, 2104 + add x6, x3, 2200 add x2, x2, 1 eor w4, w4, w0, lsr 24 ldr w4, [x6,w4,uxtw 2] eor w0, w4, w0, lsl 8 - b .L3122 -.L3124: + b .L3198 +.L3200: ret .size CRC_32, .-CRC_32 .align 2 @@ -20784,316 +21229,316 @@ rknand_sys_storage_ioctl: str x21, [sp,32] mov w19, w1 mov x20, x2 - beq .L3127 + beq .L3203 mov w0, 29187 movk w0, 0x4004, lsl 16 cmp w1, w0 - bhi .L3128 + bhi .L3204 mov w0, 25726 movk w0, 0x4004, lsl 16 cmp w1, w0 - beq .L3129 + beq .L3205 mov w0, 25726 movk w0, 0x4004, lsl 16 cmp w1, w0 - bhi .L3130 + bhi .L3206 mov w0, 25601 movk w0, 0x4004, lsl 16 cmp w1, w0 - beq .L3131 + beq .L3207 mov w0, 25601 movk w0, 0x4004, lsl 16 cmp w1, w0 - bhi .L3132 + bhi .L3208 mov w0, 25364 movk w0, 0x4004, lsl 16 cmp w1, w0 - bne .L3188 + bne .L3264 bl rknand_dev_flush - b .L3222 -.L3132: + b .L3298 +.L3208: mov w0, 25602 movk w0, 0x4004, lsl 16 cmp w1, w0 - beq .L3134 + beq .L3210 mov w0, 25603 movk w0, 0x4004, lsl 16 cmp w1, w0 - beq .L3135 - b .L3188 -.L3130: + beq .L3211 + b .L3264 +.L3206: mov w0, 27688 movk w0, 0x4004, lsl 16 cmp w1, w0 - beq .L3136 + beq .L3212 mov w0, 27688 movk w0, 0x4004, lsl 16 cmp w1, w0 - bhi .L3137 + bhi .L3213 mov w0, 25727 movk w0, 0x4004, lsl 16 cmp w1, w0 - beq .L3138 - b .L3188 -.L3137: + beq .L3214 + b .L3264 +.L3213: mov w0, 27698 movk w0, 0x4004, lsl 16 cmp w1, w0 - beq .L3136 + beq .L3212 mov w0, 27708 movk w0, 0x4004, lsl 16 cmp w1, w0 - beq .L3136 - b .L3188 -.L3128: + beq .L3212 + b .L3264 +.L3204: mov w0, 29267 movk w0, 0x4004, lsl 16 cmp w1, w0 - beq .L3139 + beq .L3215 mov w0, 29267 movk w0, 0x4004, lsl 16 cmp w1, w0 - bhi .L3140 + bhi .L3216 mov w0, 29189 movk w0, 0x4004, lsl 16 cmp w1, w0 - beq .L3141 + beq .L3217 mov w0, 29189 movk w0, 0x4004, lsl 16 cmp w1, w0 - bcc .L3142 + bcc .L3218 mov w0, 29210 movk w0, 0x4004, lsl 16 cmp w1, w0 - beq .L3143 + beq .L3219 mov w0, 29266 movk w0, 0x4004, lsl 16 cmp w1, w0 - beq .L3144 - b .L3188 -.L3140: + beq .L3220 + b .L3264 +.L3216: mov w0, 30225 movk w0, 0x4004, lsl 16 cmp w1, w0 - beq .L3145 + beq .L3221 mov w0, 30225 movk w0, 0x4004, lsl 16 cmp w1, w0 - bhi .L3146 + bhi .L3222 mov w0, 29268 movk w0, 0x4004, lsl 16 cmp w1, w0 - beq .L3147 + beq .L3223 mov w0, 30224 movk w0, 0x4004, lsl 16 cmp w1, w0 - beq .L3148 - b .L3188 -.L3146: + beq .L3224 + b .L3264 +.L3222: mov w0, 30226 movk w0, 0x4004, lsl 16 cmp w1, w0 - beq .L3148 + beq .L3224 mov w0, 30227 movk w0, 0x4004, lsl 16 cmp w1, w0 - beq .L3145 - b .L3188 -.L3142: - adrp x0, .LC247 - add x0, x0, :lo12:.LC247 + beq .L3221 + b .L3264 +.L3218: + adrp x0, .LC199 + add x0, x0, :lo12:.LC199 bl printk mov w0, 4096 bl ftl_malloc mov x19, x0 - cbnz x0, .L3149 -.L3154: + cbnz x0, .L3225 +.L3230: mov x0, -12 - b .L3126 -.L3149: + b .L3202 +.L3225: mov x1, x20 mov x2, 512 bl rk_copy_from_user - cbnz x0, .L3229 - adrp x0, .LC249 + cbnz x0, .L3305 + adrp x0, .LC201 ldr w1, [x19] ldr w2, [x19,4] - add x0, x0, :lo12:.LC249 + add x0, x0, :lo12:.LC201 bl printk ldr w0, [x19,4] str w0, [x29,52] cmp w0, 8 - bhi .L3226 + bhi .L3302 bl rknand_device_lock ldr w1, [x29,52] mov x2, x19 ldr w0, [x19] - bl id_block_read_data.constprop.29 + bl id_block_read_data.constprop.38 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, .L3232 - adrp x0, .LC250 - add x0, x0, :lo12:.LC250 -.L3224: + cbz x0, .L3308 + adrp x0, .LC202 + add x0, x0, :lo12:.LC202 +.L3300: bl printk -.L3226: +.L3302: mov x0, x19 -.L3227: +.L3303: bl ftl_free -.L3225: +.L3301: mov x0, -14 - b .L3126 -.L3141: - adrp x0, .LC251 - add x0, x0, :lo12:.LC251 + b .L3202 +.L3217: + adrp x0, .LC203 + add x0, x0, :lo12:.LC203 bl printk mov w0, 4096 bl ftl_malloc mov x19, x0 - cbz x0, .L3154 + cbz x0, .L3230 mov x1, x20 mov x2, 4096 bl rk_copy_from_user - cbnz x0, .L3229 + cbnz x0, .L3305 ldr w1, [x19] - adrp x0, .LC252 + adrp x0, .LC204 ldr w2, [x19,4] - add x0, x0, :lo12:.LC252 + add x0, x0, :lo12:.LC204 bl printk - adrp x0, .LANCHOR9 - add x21, x0, :lo12:.LANCHOR9 + adrp x0, .LANCHOR8 + add x21, x0, :lo12:.LANCHOR8 mov x20, x0 - ldr x1, [x21,1144] - cbnz x1, .L3156 + ldr x1, [x21,3536] + cbnz x1, .L3232 mov w0, 260096 bl ftl_malloc - str x0, [x21,1144] - cbz x0, .L3226 -.L3156: + str x0, [x21,3536] + cbz x0, .L3302 +.L3232: ldr w2, [x19,4] cmp w2, 4088 - bhi .L3226 + bhi .L3302 ldr w0, [x19] mov w1, 55296 movk w1, 0x3, lsl 16 cmp w0, w1 - bhi .L3226 - add x20, x20, :lo12:.LANCHOR9 + bhi .L3302 + add x20, x20, :lo12:.LANCHOR8 uxtw x2, w2 - ldr x1, [x20,1144] + ldr x1, [x20,3536] add x0, x1, x0, uxtw add x1, x19, 8 bl memcpy -.L3232: +.L3308: mov x0, x19 bl ftl_free - b .L3222 -.L3144: - adrp x0, .LC253 - add x0, x0, :lo12:.LC253 + b .L3298 +.L3220: + adrp x0, .LC205 + add x0, x0, :lo12:.LC205 bl printk mov w0, 4096 bl ftl_malloc mov x19, x0 - cbz x0, .L3154 + cbz x0, .L3230 mov x1, x20 mov x2, 28 bl rk_copy_from_user - cbz x0, .L3158 -.L3229: - adrp x0, .LC248 - add x0, x0, :lo12:.LC248 - b .L3224 -.L3158: + cbz x0, .L3234 +.L3305: + adrp x0, .LC200 + add x0, x0, :lo12:.LC200 + b .L3300 +.L3234: ldr w1, [x19] - adrp x0, .LC254 + adrp x0, .LC206 ldr w2, [x19,4] - add x0, x0, :lo12:.LC254 + add x0, x0, :lo12:.LC206 bl printk ldr w1, [x19] mov w0, 59392 movk w0, 0x3, lsl 16 cmp w1, w0 - bhi .L3226 - adrp x20, .LANCHOR9 - add x20, x20, :lo12:.LANCHOR9 - ldr x0, [x20,1144] - cbz x0, .L3226 + bhi .L3302 + adrp x20, .LANCHOR8 + add x20, x20, :lo12:.LANCHOR8 + ldr x0, [x20,3536] + cbz x0, .L3302 bl CRC_32 ldr w1, [x19,4] cmp w1, w0 - beq .L3161 + beq .L3237 mov x0, x19 bl ftl_free mov x0, -2 - b .L3126 -.L3161: + b .L3202 +.L3237: bl rknand_device_lock - ldr x1, [x20,1144] + ldr x1, [x20,3536] add x2, x19, 8 ldr w0, [x19] bl write_idblock bl rknand_device_unlock - ldr x0, [x20,1144] + ldr x0, [x20,3536] bl ftl_free - str xzr, [x20,1144] - b .L3232 -.L3143: - adrp x0, .LC255 - add x0, x0, :lo12:.LC255 + str xzr, [x20,3536] + b .L3308 +.L3219: + adrp x0, .LC207 + add x0, x0, :lo12:.LC207 bl printk mov w0, 4096 bl ftl_malloc mov x21, x0 - cbz x0, .L3154 + cbz x0, .L3230 bl ReadFlashInfo mov x0, x20 mov x1, x21 mov x2, 11 - b .L3234 -.L3127: - adrp x0, .LC256 - add x0, x0, :lo12:.LC256 + b .L3310 +.L3203: + adrp x0, .LC208 + add x0, x0, :lo12:.LC208 bl printk bl nand_blk_add_whole_disk mov w0, 4096 bl ftl_malloc mov x21, x0 - cbz x0, .L3154 + cbz x0, .L3230 mov w1, 0 mov w2, 64 bl ftl_memset mov x0, x20 mov x1, x21 mov x2, 64 - b .L3234 -.L3139: - adrp x0, .LC257 - add x0, x0, :lo12:.LC257 + b .L3310 +.L3215: + adrp x0, .LC209 + add x0, x0, :lo12:.LC209 bl printk - adrp x0, .LANCHOR9+1152 + adrp x0, .LANCHOR8+3544 add x1, x29, 52 mov x2, 4 - ldr x0, [x0,#:lo12:.LANCHOR9+1152] + ldr x0, [x0,#:lo12:.LANCHOR8+3544] ldr w0, [x0,20] str w0, [x29,52] mov x0, x20 -.L3217: +.L3293: bl rk_copy_to_user - cbnz x0, .L3225 - b .L3222 -.L3147: - adrp x0, .LC258 - add x0, x0, :lo12:.LC258 + cbnz x0, .L3301 + b .L3298 +.L3223: + adrp x0, .LC210 + add x0, x0, :lo12:.LC210 bl printk mov w0, 4096 bl ftl_malloc mov x21, x0 - cbz x0, .L3154 + cbz x0, .L3230 bl rknand_device_lock mov w1, 264 mov w2, 2 @@ -21104,96 +21549,96 @@ rknand_sys_storage_ioctl: mov x0, x20 mov x1, x21 mov x2, 1024 -.L3234: +.L3310: bl rk_copy_to_user mov x19, x0 mov x0, x21 - cbnz x19, .L3227 + cbnz x19, .L3303 bl ftl_free - b .L3153 -.L3131: - adrp x0, .LC259 - add x0, x0, :lo12:.LC259 + b .L3229 +.L3207: + adrp x0, .LC211 + add x0, x0, :lo12:.LC211 bl printk add x0, x29, 56 mov x1, x20 mov x2, 520 bl rk_copy_from_user mov x19, x0 - cbz x0, .L3166 -.L3171: - adrp x0, .LC248 - add x0, x0, :lo12:.LC248 + cbz x0, .L3242 +.L3247: + adrp x0, .LC200 + add x0, x0, :lo12:.LC200 bl printk - b .L3225 -.L3166: + b .L3301 +.L3242: ldr w1, [x29,56] mov w0, 21060 movk w0, 0x4b4d, lsl 16 cmp w1, w0 - beq .L3167 -.L3168: + beq .L3243 +.L3244: mov x19, -1 - b .L3153 -.L3167: + b .L3229 +.L3243: ldr w0, [x29,60] cmp w0, 512 - bhi .L3168 - adrp x21, .LANCHOR9 + bhi .L3244 + adrp x21, .LANCHOR8 add x0, x29, 56 - add x21, x21, :lo12:.LANCHOR9 + add x21, x21, :lo12:.LANCHOR8 mov x2, 512 - ldr x1, [x21,1152] + ldr x1, [x21,3544] bl memcpy - ldr w1, [x21,1160] + ldr w1, [x21,3552] mov w0, 5161 movk w0, 0xc059, lsl 16 cmp w1, w0 - beq .L3169 + beq .L3245 add x0, x29, 120 mov w1, w19 mov x2, 128 str w19, [x29,64] str w19, [x29,68] bl memset -.L3169: +.L3245: add x0, x29, 312 mov w1, 0 mov x2, 256 str wzr, [x29,72] bl memset - b .L3231 -.L3134: - adrp x0, .LC260 - add x0, x0, :lo12:.LC260 + b .L3307 +.L3210: + adrp x0, .LC212 + add x0, x0, :lo12:.LC212 bl printk add x0, x29, 56 mov x1, x20 mov x2, 520 bl rk_copy_from_user - cbnz x0, .L3171 + cbnz x0, .L3247 ldr w1, [x29,56] mov w0, 21060 movk w0, 0x4b4d, lsl 16 cmp w1, w0 - bne .L3168 + bne .L3244 ldr w0, [x29,60] cmp w0, 512 - bhi .L3168 - adrp x1, .LANCHOR9 + bhi .L3244 + adrp x1, .LANCHOR8 mov w2, 5161 - add x1, x1, :lo12:.LANCHOR9 + add x1, x1, :lo12:.LANCHOR8 movk w2, 0xc059, lsl 16 mov x0, -2 - ldr w3, [x1,1160] + ldr w3, [x1,3552] cmp w3, w2 - bne .L3126 + bne .L3202 ldr w2, [x29,68] mov x0, -3 sub w3, w2, #1 cmp w3, 127 - bhi .L3126 - ldr x19, [x1,1152] + bhi .L3202 + ldr x19, [x1,3544] add x1, x29, 120 add x0, x19, 64 str w2, [x19,12] @@ -21201,144 +21646,144 @@ rknand_sys_storage_ioctl: bl memcpy mov w0, 1 mov x1, x19 - b .L3223 -.L3138: - adrp x0, .LC261 - add x0, x0, :lo12:.LC261 + b .L3299 +.L3214: + adrp x0, .LC213 + add x0, x0, :lo12:.LC213 bl printk add x0, x29, 56 mov x1, x20 mov x2, 520 bl rk_copy_from_user - cbnz x0, .L3171 + cbnz x0, .L3247 ldr w1, [x29,56] mov w0, 17476 movk w0, 0x4253, lsl 16 cmp w1, w0 - bne .L3168 + bne .L3244 ldr w0, [x29,60] cmp w0, 512 - bhi .L3168 - adrp x19, .LANCHOR9 - add x0, x19, :lo12:.LANCHOR9 - ldr w1, [x0,1164] - cbnz w1, .L3172 -.L3175: + bhi .L3244 + adrp x19, .LANCHOR8 + add x0, x19, :lo12:.LANCHOR8 + ldr w1, [x0,3556] + cbnz w1, .L3248 +.L3251: mov x0, 0 - b .L3126 -.L3172: - ldr x1, [x0,1168] + b .L3202 +.L3248: + ldr x1, [x0,3560] mov w2, 22867 movk w2, 0x4453, lsl 16 ldr w3, [x1] cmp w3, w2 - beq .L3173 + beq .L3249 mov w2, 22867 movk w2, 0x4453, lsl 16 str w2, [x1] mov w2, 504 - ldr x1, [x0,1168] + ldr x1, [x0,3560] str w2, [x1,4] - ldr x0, [x0,1168] + ldr x0, [x0,3560] str wzr, [x0,8] str wzr, [x0,12] -.L3173: - add x20, x19, :lo12:.LANCHOR9 +.L3249: + add x20, x19, :lo12:.LANCHOR8 mov w0, 0 - ldr x1, [x20,1168] + ldr x1, [x20,3560] str wzr, [x1,16] bl StorageSysDataStore - ldr x0, [x20,1152] + ldr x0, [x20,3544] mov w1, 21060 movk w1, 0x4b4d, lsl 16 ldr w2, [x0] cmp w2, w1 - beq .L3174 + beq .L3250 mov w1, 21060 movk w1, 0x4b4d, lsl 16 str w1, [x0] mov w1, 504 - ldr x0, [x20,1152] + ldr x0, [x20,3544] str w1, [x0,4] - ldr x0, [x20,1152] + ldr x0, [x20,3544] str wzr, [x0,8] -.L3174: - add x19, x19, :lo12:.LANCHOR9 +.L3250: + add x19, x19, :lo12:.LANCHOR8 mov w1, 0 mov x2, 128 - ldr x20, [x19,1152] + ldr x20, [x19,3544] add x0, x20, 64 str wzr, [x20,12] bl memset mov w0, 1 mov x1, x20 bl StorageSysDataStore - str wzr, [x19,1164] - str wzr, [x19,1160] - b .L3222 -.L3129: - adrp x0, .LC262 - add x0, x0, :lo12:.LC262 + str wzr, [x19,3556] + str wzr, [x19,3552] + b .L3298 +.L3205: + adrp x0, .LC214 + add x0, x0, :lo12:.LC214 bl printk add x0, x29, 56 mov x1, x20 mov x2, 520 bl rk_copy_from_user - cbnz x0, .L3171 + cbnz x0, .L3247 ldr w2, [x29,56] mov w1, 20037 movk w1, 0x4253, lsl 16 cmp w2, w1 - bne .L3168 + bne .L3244 ldr w1, [x29,60] cmp w1, 512 - bhi .L3168 - adrp x19, .LANCHOR9 - add x1, x19, :lo12:.LANCHOR9 - ldr w2, [x1,1164] + bhi .L3244 + adrp x19, .LANCHOR8 + add x1, x19, :lo12:.LANCHOR8 + ldr w2, [x1,3556] cmp w2, 1 - beq .L3175 - ldr x2, [x1,1168] + beq .L3251 + ldr x2, [x1,3560] mov w3, 22867 movk w3, 0x4453, lsl 16 ldr w4, [x2] cmp w4, w3 - beq .L3176 + beq .L3252 mov w3, 22867 movk w3, 0x4453, lsl 16 str w3, [x2] mov w3, 504 - ldr x2, [x1,1168] + ldr x2, [x1,3560] str w3, [x2,4] - ldr x1, [x1,1168] + ldr x1, [x1,3560] str w0, [x1,8] str w0, [x1,12] -.L3176: - add x20, x19, :lo12:.LANCHOR9 +.L3252: + add x20, x19, :lo12:.LANCHOR8 mov w0, 1 - ldr x1, [x20,1168] + ldr x1, [x20,3560] str w0, [x1,16] mov w0, 0 bl StorageSysDataStore - ldr x0, [x20,1152] + ldr x0, [x20,3544] mov w1, 21060 movk w1, 0x4b4d, lsl 16 ldr w2, [x0] cmp w2, w1 - beq .L3177 + beq .L3253 mov w1, 21060 movk w1, 0x4b4d, lsl 16 str w1, [x0] mov w1, 504 - ldr x0, [x20,1152] + ldr x0, [x20,3544] str w1, [x0,4] - ldr x0, [x20,1152] + ldr x0, [x20,3544] str wzr, [x0,8] -.L3177: - add x19, x19, :lo12:.LANCHOR9 +.L3253: + add x19, x19, :lo12:.LANCHOR8 mov w1, 0 mov x2, 128 - ldr x20, [x19,1152] + ldr x20, [x19,3544] add x0, x20, 64 str wzr, [x20,12] bl memset @@ -21346,208 +21791,210 @@ rknand_sys_storage_ioctl: mov x1, x20 bl StorageSysDataStore mov w0, 1 - str w0, [x19,1164] - b .L3222 -.L3135: - adrp x0, .LC263 - add x0, x0, :lo12:.LC263 + str w0, [x19,3556] + b .L3298 +.L3211: + adrp x0, .LC215 + add x0, x0, :lo12:.LC215 bl printk add x0, x29, 56 mov x1, x20 mov x2, 520 bl rk_copy_from_user - cbnz x0, .L3171 + cbnz x0, .L3247 ldr w1, [x29,56] mov w0, 20051 movk w0, 0x4144, lsl 16 cmp w1, w0 - bne .L3168 + bne .L3244 ldr w2, [x29,60] cmp w2, 512 - bhi .L3168 - adrp x1, .LANCHOR9 + bhi .L3244 + adrp x1, .LANCHOR8 add x0, x29, 64 - add x1, x1, :lo12:.LANCHOR9 + add x1, x1, :lo12:.LANCHOR8 uxtw x2, w2 - add x1, x1, 1176 - b .L3230 -.L3136: + add x1, x1, 3568 + b .L3306 +.L3212: mov w0, 27698 movk w0, 0x4004, lsl 16 cmp w19, w0 - bne .L3178 - adrp x0, .LC264 - add x0, x0, :lo12:.LC264 - b .L3220 -.L3178: + bne .L3254 + adrp x0, .LC216 + add x0, x0, :lo12:.LC216 + b .L3296 +.L3254: mov w0, 27708 movk w0, 0x4004, lsl 16 cmp w19, w0 - bne .L3180 - adrp x0, .LC265 - add x0, x0, :lo12:.LC265 - b .L3220 -.L3180: - adrp x0, .LC266 - add x0, x0, :lo12:.LC266 -.L3220: + bne .L3256 + adrp x0, .LC217 + add x0, x0, :lo12:.LC217 + b .L3296 +.L3256: + adrp x0, .LC218 + add x0, x0, :lo12:.LC218 +.L3296: bl printk add x0, x29, 56 mov x1, x20 mov x2, 520 bl rk_copy_from_user - cbnz x0, .L3171 + cbnz x0, .L3247 ldr w1, [x29,56] mov w0, 17227 movk w0, 0x4c4f, lsl 16 cmp w1, w0 - bne .L3225 + bne .L3301 mov w0, 27708 movk w0, 0x4004, lsl 16 cmp w19, w0 - adrp x0, .LANCHOR9 - bne .L3181 - add x0, x0, :lo12:.LANCHOR9 + adrp x0, .LANCHOR8 + bne .L3257 + add x0, x0, :lo12:.LANCHOR8 add x1, x29, 56 mov x2, 16 - ldr x0, [x0,1152] + ldr x0, [x0,3544] ldr w0, [x0,20] str w0, [x29,60] strb w0, [x29,64] mov x0, x20 bl rk_copy_to_user - cbz x0, .L3126 - b .L3225 -.L3181: - add x20, x0, :lo12:.LANCHOR9 - ldr w1, [x20,1688] + cbz x0, .L3202 + b .L3301 +.L3257: + add x20, x0, :lo12:.LANCHOR8 + ldr w1, [x20,4080] cmp w1, 10 - bhi .L3225 - ldr x1, [x20,1152] + bhi .L3301 + ldr x1, [x20,3544] ldr w2, [x29,60] ldr w3, [x1,24] cmp w3, w2 - beq .L3182 - cbz w3, .L3182 - adrp x0, .LC267 + beq .L3258 + cbz w3, .L3258 + adrp x0, .LC219 mov w1, w2 - add x0, x0, :lo12:.LC267 + add x0, x0, :lo12:.LC219 bl printk - ldr w0, [x20,1688] + ldr w0, [x20,4080] add w0, w0, 1 - str w0, [x20,1688] - b .L3225 -.L3182: - add x0, x0, :lo12:.LANCHOR9 - str wzr, [x0,1688] + str w0, [x20,4080] + b .L3301 +.L3258: + add x0, x0, :lo12:.LANCHOR8 + str wzr, [x0,4080] mov w0, 27698 movk w0, 0x4004, lsl 16 cmp w19, w0 - bne .L3183 + bne .L3259 str wzr, [x1,20] str wzr, [x1,24] - b .L3184 -.L3183: + b .L3260 +.L3259: mov w0, 1 str w2, [x1,24] str w0, [x1,20] -.L3184: +.L3260: mov w0, 1 mov x19, -2 bl StorageSysDataStore cmn w0, #1 - bne .L3222 - b .L3153 -.L3148: - adrp x0, .LC268 - add x0, x0, :lo12:.LC268 + bne .L3298 + b .L3229 +.L3224: + adrp x0, .LC220 + add x0, x0, :lo12:.LC220 bl printk add x0, x29, 56 mov x1, x20 mov x2, 520 bl rk_copy_from_user - cbnz x0, .L3171 + cbnz x0, .L3247 ldr w1, [x29,56] mov w0, 17750 movk w0, 0x444e, lsl 16 cmp w1, w0 - bne .L3168 + bne .L3244 ldr w2, [x29,60] cmp w2, 504 - bhi .L3168 + bhi .L3244 mov w0, 30224 - adrp x1, .LANCHOR9 - movk w0, 0x4004, lsl 16 uxtw x2, w2 + movk w0, 0x4004, lsl 16 cmp w19, w0 - add x1, x1, :lo12:.LANCHOR9 add x0, x29, 64 - bne .L3185 - ldr x1, [x1,1696] - b .L3221 -.L3185: - ldr x1, [x1,1704] -.L3221: + bne .L3261 + adrp x1, .LANCHOR8+4088 + ldr x1, [x1,#:lo12:.LANCHOR8+4088] + b .L3297 +.L3261: + adrp x1, .LANCHOR9-256 + ldr x1, [x1,#:lo12:.LANCHOR9-256] +.L3297: add x1, x1, 8 -.L3230: +.L3306: bl memcpy -.L3231: +.L3307: mov x0, x20 add x1, x29, 56 mov x2, 520 - b .L3217 -.L3145: - adrp x0, .LC269 - add x0, x0, :lo12:.LC269 + b .L3293 +.L3221: + adrp x0, .LC221 + add x0, x0, :lo12:.LC221 bl printk add x0, x29, 56 mov x1, x20 mov x2, 520 bl rk_copy_from_user - cbnz x0, .L3171 + cbnz x0, .L3247 ldr w1, [x29,56] mov w0, 17750 movk w0, 0x444e, lsl 16 cmp w1, w0 - bne .L3168 + bne .L3244 ldr w2, [x29,60] cmp w2, 504 - bhi .L3168 + bhi .L3244 mov w0, 30225 add w2, w2, 8 movk w0, 0x4004, lsl 16 cmp w19, w0 - adrp x19, .LANCHOR9 - add x19, x19, :lo12:.LANCHOR9 - bne .L3187 - ldr x0, [x19,1696] + bne .L3263 + adrp x19, .LANCHOR8 add x1, x29, 56 + add x19, x19, :lo12:.LANCHOR8 + ldr x0, [x19,4088] bl memcpy mov w0, 2 - ldr x1, [x19,1696] - b .L3223 -.L3187: - ldr x0, [x19,1704] + ldr x1, [x19,4088] + b .L3299 +.L3263: + adrp x19, .LANCHOR9 add x1, x29, 56 + add x19, x19, :lo12:.LANCHOR9 + ldr x0, [x19,-256] bl memcpy - ldr x1, [x19,1704] + ldr x1, [x19,-256] mov w0, 3 -.L3223: +.L3299: bl StorageSysDataStore uxtw x19, w0 - b .L3153 -.L3222: + b .L3229 +.L3298: mov x19, 0 -.L3153: - adrp x0, .LC270 +.L3229: + adrp x0, .LC222 mov x1, x19 - add x0, x0, :lo12:.LC270 + add x0, x0, :lo12:.LC222 bl printk mov x0, x19 - b .L3126 -.L3188: + b .L3202 +.L3264: mov x0, -22 -.L3126: +.L3202: ldp x19, x20, [sp,16] ldr x21, [sp,32] ldp x29, x30, [sp], 48 @@ -21558,60 +22005,66 @@ rknand_sys_storage_ioctl: .global rk_ftl_storage_sys_init .type rk_ftl_storage_sys_init, %function rk_ftl_storage_sys_init: - stp x29, x30, [sp, -48]! + stp x29, x30, [sp, -64]! + adrp x0, .LANCHOR7+3240 mov w2, 512 add x29, sp, 0 stp x19, x20, [sp,16] - adrp x20, .LANCHOR9 - add x19, x20, :lo12:.LANCHOR9 - stp x21, x22, [sp,32] - ldr x1, [x19,1120] - str x1, [x19,1168] + adrp x20, .LANCHOR8 + ldr x1, [x0,#:lo12:.LANCHOR7+3240] + add x19, x20, :lo12:.LANCHOR8 + str x23, [sp,48] add x0, x1, 512 - str x0, [x19,1152] + stp x21, x22, [sp,32] + str x0, [x19,3544] + adrp x21, .LANCHOR9 add x0, x1, 1024 + str x0, [x19,4088] + add x0, x21, :lo12:.LANCHOR9 + str x1, [x19,3560] add x1, x1, 1536 - str x0, [x19,1696] - add x0, x19, 1176 - str xzr, [x19,1144] - str x1, [x19,1704] + str xzr, [x19,3536] + str x1, [x0,-256] + add x0, x19, 3568 bl ftl_memcpy - ldr x21, [x19,1168] - str wzr, [x19,1160] - str wzr, [x19,1688] - ldr w0, [x21,16] - ldr w22, [x21,508] - str w0, [x19,1164] - cbz w22, .L3237 - mov x0, x21 + ldr x22, [x19,3560] + str wzr, [x19,3552] + str wzr, [x19,4080] + ldr w0, [x22,16] + ldr w23, [x22,508] + str w0, [x19,3556] + cbz w23, .L3313 + mov x0, x22 mov w1, 508 bl js_hash - cmp w22, w0 - beq .L3237 - adrp x0, .LC271 - str wzr, [x21,16] - add x0, x0, :lo12:.LC271 - str wzr, [x19,1164] + cmp w23, w0 + beq .L3313 + adrp x0, .LC223 + str wzr, [x22,16] + add x0, x0, :lo12:.LC223 + str wzr, [x19,3556] bl printk -.L3237: - add x0, x20, :lo12:.LANCHOR9 - ldr w1, [x0,1164] - cbz w1, .L3238 +.L3313: + add x0, x20, :lo12:.LANCHOR8 + ldr w1, [x0,3556] + cbz w1, .L3314 mov w1, 5161 movk w1, 0xc059, lsl 16 - str w1, [x0,1160] -.L3238: - add x20, x20, :lo12:.LANCHOR9 + str w1, [x0,3552] +.L3314: + add x20, x20, :lo12:.LANCHOR8 + add x21, x21, :lo12:.LANCHOR9 mov w0, 2 - ldr x1, [x20,1696] + ldr x1, [x20,4088] bl StorageSysDataLoad - ldr x1, [x20,1704] + ldr x1, [x21,-256] mov w0, 3 bl StorageSysDataLoad bl rknand_sys_storage_init + ldr x23, [sp,48] ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] - ldp x29, x30, [sp], 48 + ldp x29, x30, [sp], 64 ret .size rk_ftl_storage_sys_init, .-rk_ftl_storage_sys_init .align 2 @@ -21638,55 +22091,55 @@ rk_ftl_vendor_storage_init: bl kmalloc_order_trace add x1, x21, :lo12:.LANCHOR9 mov w19, -12 - str x0, [x1,1712] - cbz x0, .L3247 + str x0, [x1,-248] + cbz x0, .L3323 mov w23, 0 - adrp x24, .LC272 + adrp x24, .LC224 mov w19, w23 mov w22, w23 - add x24, x24, :lo12:.LC272 -.L3251: + add x24, x24, :lo12:.LC224 +.L3327: add x20, x21, :lo12:.LANCHOR9 lsl w0, w22, 7 mov w1, 128 - ldr x2, [x20,1712] + ldr x2, [x20,-248] bl FlashBootVendorRead - cbnz w0, .L3248 - ldr x3, [x20,1712] + cbnz w0, .L3324 + ldr x3, [x20,-248] mov x0, x24 add x2, x3, 61440 ldr w1, [x3] ldr w3, [x3,4] ldr w2, [x2,4092] bl printk - ldr x20, [x20,1712] + ldr x20, [x20,-248] mov w0, 22084 movk w0, 0x524b, lsl 16 ldr w1, [x20] cmp w1, w0 - bne .L3249 + bne .L3325 ldr w0, [x20,4] cmp w19, w0 - bcs .L3249 + bcs .L3325 add x1, x20, 61440 ldr w1, [x1,4092] cmp w1, w0 csel w23, w23, w22, ne csel w19, w19, w0, ne -.L3249: - cbnz w22, .L3259 +.L3325: + cbnz w22, .L3335 mov w22, 1 - b .L3251 -.L3259: - cbz w19, .L3252 + b .L3327 +.L3335: + cbz w19, .L3328 lsl w0, w23, 7 mov w1, 128 mov x2, x20 bl FlashBootVendorRead mov w19, w0 - cbz w0, .L3247 - b .L3248 -.L3252: + cbz w0, .L3323 + b .L3324 +.L3328: mov x0, x20 mov w1, w19 mov x2, 65536 @@ -21700,14 +22153,14 @@ rk_ftl_vendor_storage_init: mov w0, -1032 strh w19, [x20,12] strh w0, [x20,14] - b .L3247 -.L3248: + b .L3323 +.L3324: add x21, x21, :lo12:.LANCHOR9 mov w19, -1 - ldr x0, [x21,1712] + ldr x0, [x21,-248] bl kfree - str xzr, [x21,1712] -.L3247: + str xzr, [x21,-248] +.L3323: mov w0, w19 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -21719,24 +22172,24 @@ rk_ftl_vendor_storage_init: .global rk_ftl_vendor_read .type rk_ftl_vendor_read, %function rk_ftl_vendor_read: - adrp x3, .LANCHOR9+1712 + adrp x3, .LANCHOR9-248 stp x29, x30, [sp, -32]! add x29, sp, 0 - ldr x5, [x3,#:lo12:.LANCHOR9+1712] + ldr x5, [x3,#:lo12:.LANCHOR9-248] mov w3, -1 str x19, [sp,16] - cbz x5, .L3261 + cbz x5, .L3337 ldrh w3, [x5,10] mov x4, 0 -.L3262: +.L3338: cmp w4, w3 mov w6, w4 - bcs .L3266 + bcs .L3342 add x7, x5, x4, lsl 3 add x4, x4, 1 ldrh w7, [x7,16] cmp w7, w0 - bne .L3262 + bne .L3338 add x6, x5, x6, uxtw 3 ldrh w4, [x6,20] mov x0, x1 @@ -21748,10 +22201,10 @@ rk_ftl_vendor_read: uxtw x2, w19 bl memcpy mov w3, w19 - b .L3261 -.L3266: + b .L3337 +.L3342: mov w3, -1 -.L3261: +.L3337: mov w0, w3 ldr x19, [sp,16] ldp x29, x30, [sp], 32 @@ -21763,10 +22216,10 @@ rk_ftl_vendor_read: rk_ftl_vendor_write: stp x29, x30, [sp, -112]! mov w6, w0 - adrp x0, .LANCHOR9+1712 + adrp x0, .LANCHOR9-248 add x29, sp, 0 stp x19, x20, [sp,16] - ldr x19, [x0,#:lo12:.LANCHOR9+1712] + ldr x19, [x0,#:lo12:.LANCHOR9-248] stp x25, x26, [sp,64] stp x27, x28, [sp,80] stp x21, x22, [sp,32] @@ -21774,38 +22227,38 @@ rk_ftl_vendor_write: mov w26, w2 mov x28, x1 mov w2, -1 - cbz x19, .L3268 + cbz x19, .L3344 add w20, w26, 63 ldrh w3, [x19,10] ldrh w23, [x19,8] and w20, w20, -64 mov x2, 0 -.L3269: +.L3345: cmp w2, w3 mov w4, w2 - bcs .L3284 + bcs .L3360 add x0, x19, x2, lsl 3 add x2, x2, 1 ldrh w0, [x0,16] cmp w0, w6 - bne .L3269 + bne .L3345 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 .L3270 + bls .L3346 ldrh w0, [x19,14] mov w2, -1 cmp w0, w20 - bcc .L3268 + bcc .L3344 ldrh w21, [x21,18] add w22, w3, w2 -.L3271: +.L3347: cmp w4, w22 uxtw x3, w4 - bcs .L3285 + bcs .L3361 add x3, x19, x3, lsl 3 add w25, w4, 1 add x1, x19, x25, uxtw 3 @@ -21828,8 +22281,8 @@ rk_ftl_vendor_write: mov w4, w25 ldr x6, [x29,96] ldr x5, [x29,104] - b .L3271 -.L3285: + b .L3347 +.L3361: add x3, x19, x3, lsl 3 uxth w21, w21 mov x1, x28 @@ -21846,20 +22299,20 @@ rk_ftl_vendor_write: add w24, w24, w0 sub w24, w24, w20 strh w24, [x19,14] - b .L3283 -.L3270: + b .L3359 +.L3346: ldrh w0, [x21,18] mov x1, x28 uxtw x2, w26 add x0, x5, x0 bl memcpy strh w26, [x21,20] - b .L3283 -.L3284: + b .L3359 +.L3360: ldrh w4, [x19,14] mov w2, -1 cmp w4, w20 - bcc .L3268 + bcc .L3344 add x3, x19, x3, uxth 3 strh w6, [x3,16] uxth w20, w20 @@ -21879,7 +22332,7 @@ rk_ftl_vendor_write: ldrh w0, [x19,10] add w0, w0, 1 strh w0, [x19,10] -.L3283: +.L3359: ldr w0, [x19,4] add x1, x19, 61440 mov x2, x19 @@ -21896,7 +22349,7 @@ rk_ftl_vendor_write: lsl w0, w23, 7 bl FlashBootVendorWrite mov w2, 0 -.L3268: +.L3344: mov w0, w2 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -21924,36 +22377,36 @@ rk_ftl_vendor_storage_ioctl: bl kmem_cache_alloc_trace mov x20, -1 mov x19, x0 - cbz x0, .L3287 + cbz x0, .L3363 mov w1, 30209 movk w1, 0x4004, lsl 16 cmp w22, w1 - beq .L3289 + beq .L3365 mov w2, 30210 movk w2, 0x4004, lsl 16 cmp w22, w2 - beq .L3290 - b .L3301 -.L3289: + beq .L3366 + b .L3377 +.L3365: mov x1, x21 mov x2, 8 bl rk_copy_from_user - cbnz x0, .L3301 + cbnz x0, .L3377 ldr w1, [x19] mov w0, 17745 movk w0, 0x5652, lsl 16 cmp w1, w0 - beq .L3292 -.L3293: + beq .L3368 +.L3369: mov x20, -1 - b .L3288 -.L3292: + b .L3364 +.L3368: ldrh w0, [x19,4] add x1, x19, 8 ldrh w2, [x19,6] bl rk_ftl_vendor_read cmn w0, #1 - beq .L3293 + beq .L3369 uxth x2, w0 strh w0, [x19,6] mov x1, x19 @@ -21963,38 +22416,38 @@ rk_ftl_vendor_storage_ioctl: bl rk_copy_to_user cmp x0, xzr csel x20, xzr, x20, eq - b .L3288 -.L3290: + b .L3364 +.L3366: mov x1, x21 mov x2, 8 bl rk_copy_from_user - cbnz x0, .L3301 + cbnz x0, .L3377 ldr w1, [x19] mov w0, 17745 movk w0, 0x5652, lsl 16 cmp w1, w0 - bne .L3293 + bne .L3369 ldrh w3, [x19,6] cmp w3, 4087 - bhi .L3293 + bhi .L3369 add w2, w3, 8 mov x0, x19 mov x1, x21 sxtw x2, w2 bl rk_copy_from_user - cbnz x0, .L3301 + cbnz x0, .L3377 ldrh w0, [x19,4] add x1, x19, 8 ldrh w2, [x19,6] bl rk_ftl_vendor_write sxtw x20, w0 - b .L3288 -.L3301: + b .L3364 +.L3377: mov x20, -14 -.L3288: +.L3364: mov x0, x19 bl kfree -.L3287: +.L3363: mov x0, x20 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -22024,7 +22477,19 @@ rk_ftl_vendor_storage_ioctl: .global sblk_read_completed_queue_head .global sblk_write_completed_queue_head .global sblk_queue_head - .global vpn_mulit_value + .global slc_cache_sblk + .global xlc_data_sblk + .global slc_data_sblk + .global free_mix_sblk + .global free_xlc_sblk + .global free_slc_sblk + .global gp_data_xlc_data_head + .global gp_data_slc_data_head + .global gp_data_slc_cache_head + .global gp_free_mix_head + .global gp_free_xlc_head + .global gp_free_slc_head + .global gp_sblk_list_tbl .global ftl_low_format_cur_blk .global ftl_power_lost_flag .global ftl_vpn_update_count @@ -22047,8 +22512,12 @@ rk_ftl_vendor_storage_ioctl: .global gc_pre_ppa_tbl .global gc_lpa_tbl .global g_gc_info + .global gc_xlc_data_index + .global gc_slc_cache_index + .global gc_slc_data_index .global gc_free_slc_sblk_th .global gc_slc_mode_vpn_th + .global gc_slc_mode_tlc_vpn_th .global gc_tlc_mode_tlc_vpn_th .global gc_tlc_mode_slc_vpn_th .global gc_state @@ -22066,6 +22535,11 @@ rk_ftl_vendor_storage_ioctl: .global lpa_hash_index .global _c_mix_max_xlc_ec_count .global _c_mix_max_slc_ec_count + .global _c_swl_xlc_gc_th + .global _c_swl_slc_gc_th + .global _gc_after_discard_en + .global _last_write_time + .global _last_read_time .global _min_slc_super_block .global _max_slc_super_block .global _max_xlc_super_block @@ -22140,16 +22614,16 @@ rk_ftl_vendor_storage_ioctl: .section .rodata .align 3 .LANCHOR1 = . + 0 - .type __func__.18805, %object - .size __func__.18805, 22 -__func__.18805: - .string "nand_flash_print_info" - .zero 2 - .type __func__.18885, %object - .size __func__.18885, 11 -__func__.18885: - .string "nandc_init" - .zero 5 + .type __func__.20006, %object + .size __func__.20006, 18 +__func__.20006: + .string "_list_remove_node" + .zero 6 + .type __func__.20031, %object + .size __func__.20031, 23 +__func__.20031: + .string "_list_update_data_list" + .zero 1 .type toshiba_A19ref_value, %object .size toshiba_A19ref_value, 45 toshiba_A19ref_value: @@ -22309,9 +22783,9 @@ toshiba_ref_value: .byte 8 .byte 12 .byte 112 - .type __func__.18413, %object - .size __func__.18413, 28 -__func__.18413: + .type __func__.18483, %object + .size __func__.18483, 28 +__func__.18483: .string "flash_wait_device_ready_raw" .zero 4 .type toshiba_3D_tlc_value, %object @@ -22732,14 +23206,14 @@ toshiba_3D_slc_value: .byte -56 .byte 56 .zero 5 - .type __func__.18388, %object - .size __func__.18388, 26 -__func__.18388: + .type __func__.18458, %object + .size __func__.18458, 26 +__func__.18458: .string "flash_erase_duplane_block" .zero 6 - .type __func__.18399, %object - .size __func__.18399, 21 -__func__.18399: + .type __func__.18469, %object + .size __func__.18469, 21 +__func__.18469: .string "flash_erase_block_en" .zero 3 .type random_seed, %object @@ -22873,830 +23347,700 @@ random_seed: .hword 28406 .hword 17598 .hword 28087 - .type __func__.18464, %object - .size __func__.18464, 22 -__func__.18464: + .type __func__.18534, %object + .size __func__.18534, 22 +__func__.18534: .string "flash_start_page_read" .zero 2 - .type __func__.19059, %object - .size __func__.19059, 13 -__func__.19059: + .type __func__.19121, %object + .size __func__.19121, 13 +__func__.19121: .string "buf_add_tail" .zero 3 - .type __func__.19072, %object - .size __func__.19072, 10 -__func__.19072: + .type __func__.19134, %object + .size __func__.19134, 10 +__func__.19134: .string "buf_alloc" .zero 6 - .type __func__.19086, %object - .size __func__.19086, 16 -__func__.19086: + .type __func__.19148, %object + .size __func__.19148, 16 +__func__.19148: .string "buf_remove_free" - .type __func__.19326, %object - .size __func__.19326, 13 -__func__.19326: + .type __func__.19396, %object + .size __func__.19396, 13 +__func__.19396: .string "ftl_read_buf" .zero 3 - .type __func__.19561, %object - .size __func__.19561, 12 -__func__.19561: + .type __func__.19614, %object + .size __func__.19614, 12 +__func__.19614: .string "gc_add_sblk" .zero 4 - .type __func__.19651, %object - .size __func__.19651, 19 -__func__.19651: + .type __func__.19679, %object + .size __func__.19679, 19 +__func__.19679: .string "gc_write_completed" .zero 5 - .type __func__.19994, %object - .size __func__.19994, 14 -__func__.19994: - .string "ftl_free_sblk" - .zero 2 - .type __func__.19702, %object - .size __func__.19702, 16 -__func__.19702: + .type __func__.19730, %object + .size __func__.19730, 16 +__func__.19730: .string "gc_free_src_blk" - .type __func__.20028, %object - .size __func__.20028, 18 -__func__.20028: + .type __func__.20200, %object + .size __func__.20200, 18 +__func__.20200: .string "ftl_alloc_sys_blk" .zero 6 - .type __func__.20038, %object - .size __func__.20038, 17 -__func__.20038: + .type __func__.20210, %object + .size __func__.20210, 17 +__func__.20210: .string "ftl_free_sys_blk" .zero 7 - .type __func__.20141, %object - .size __func__.20141, 23 -__func__.20141: + .type __func__.20313, %object + .size __func__.20313, 23 +__func__.20313: .string "ftl_get_ppa_from_index" .zero 1 - .type __func__.20181, %object - .size __func__.20181, 22 -__func__.20181: + .type __func__.20353, %object + .size __func__.20353, 22 +__func__.20353: .string "ftl_get_new_free_page" .zero 2 - .type __func__.20192, %object - .size __func__.20192, 22 -__func__.20192: + .type __func__.20364, %object + .size __func__.20364, 22 +__func__.20364: .string "ftl_ext_alloc_new_blk" .zero 2 - .type __func__.19270, %object - .size __func__.19270, 14 -__func__.19270: + .type __func__.19337, %object + .size __func__.19337, 14 +__func__.19337: .string "ftl_write_buf" + .zero 2 + .type __func__.20162, %object + .size __func__.20162, 15 +__func__.20162: + .string "ftl_alloc_sblk" .align 3 .LANCHOR3 = . + 0 - .type __func__.20612, %object - .size __func__.20612, 17 -__func__.20612: + .type __func__.20785, %object + .size __func__.20785, 17 +__func__.20785: .string "pm_alloc_new_blk" .zero 7 - .type __func__.20640, %object - .size __func__.20640, 21 -__func__.20640: + .type __func__.20813, %object + .size __func__.20813, 21 +__func__.20813: .string "pm_select_ram_region" .zero 3 - .type __func__.18795, %object - .size __func__.18795, 20 -__func__.18795: - .string "flash_die_info_init" - .zero 4 - .type __func__.19207, %object - .size __func__.19207, 17 -__func__.19207: + .type __func__.19274, %object + .size __func__.19274, 17 +__func__.19274: .string "lpa_rebuild_hash" .zero 7 - .type __func__.20576, %object - .size __func__.20576, 13 -__func__.20576: + .type __func__.20749, %object + .size __func__.20749, 13 +__func__.20749: .string "pm_free_sblk" .zero 3 - .type __func__.19109, %object - .size __func__.19109, 21 -__func__.19109: - .string "flash_into_data_init" - .zero 3 - .type __func__.18344, %object - .size __func__.18344, 19 -__func__.18344: + .type __func__.18414, %object + .size __func__.18414, 19 +__func__.18414: .string "flash_read_page_en" .zero 5 - .type __func__.19098, %object - .size __func__.19098, 20 -__func__.19098: - .string "flash_info_blk_init" - .zero 4 - .type __func__.18479, %object - .size __func__.18479, 25 -__func__.18479: + .type __func__.18549, %object + .size __func__.18549, 25 +__func__.18549: .string "flash_complete_page_read" .zero 7 - .type __func__.19604, %object - .size __func__.19604, 21 -__func__.19604: + .type __func__.19632, %object + .size __func__.19632, 21 +__func__.19632: .string "gc_check_data_one_wl" .zero 3 - .type __func__.18438, %object - .size __func__.18438, 26 -__func__.18438: + .type __func__.18508, %object + .size __func__.18508, 26 +__func__.18508: .string "flash_start_tlc_page_prog" .zero 6 - .type __func__.18451, %object - .size __func__.18451, 22 -__func__.18451: + .type __func__.18521, %object + .size __func__.18521, 22 +__func__.18521: .string "flash_start_page_prog" .zero 2 - .type __func__.20503, %object - .size __func__.20503, 15 -__func__.20503: + .type __func__.20676, %object + .size __func__.20676, 15 +__func__.20676: .string "sblk_prog_page" .zero 1 - .type __func__.18373, %object - .size __func__.18373, 19 -__func__.18373: + .type __func__.18443, %object + .size __func__.18443, 19 +__func__.18443: .string "flash_prog_page_en" .zero 5 - .type __func__.20328, %object - .size __func__.20328, 14 -__func__.20328: + .type __func__.20501, %object + .size __func__.20501, 14 +__func__.20501: .string "ftl_prog_page" .zero 2 - .type __func__.19945, %object - .size __func__.19945, 15 -__func__.19945: + .type __func__.20130, %object + .size __func__.20130, 15 +__func__.20130: .string "ftl_info_flush" .zero 1 - .type __func__.20217, %object - .size __func__.20217, 19 -__func__.20217: + .type __func__.20389, %object + .size __func__.20389, 19 +__func__.20389: .string "ftl_ext_info_flush" .zero 5 - .type __func__.20229, %object - .size __func__.20229, 18 -__func__.20229: + .type __func__.20401, %object + .size __func__.20401, 18 +__func__.20401: .string "ftl_ext_info_init" .zero 6 - .type __func__.20274, %object - .size __func__.20274, 15 -__func__.20274: + .type __func__.20447, %object + .size __func__.20447, 15 +__func__.20447: .string "ftl_low_format" .zero 1 - .type __func__.20318, %object - .size __func__.20318, 23 -__func__.20318: + .type __func__.20491, %object + .size __func__.20491, 23 +__func__.20491: .string "ftl_re_low_format_test" .zero 1 - .type __func__.20115, %object - .size __func__.20115, 23 -__func__.20115: + .type __func__.20287, %object + .size __func__.20287, 23 +__func__.20287: .string "ftl_open_sblk_recovery" .zero 1 - .type __func__.20622, %object - .size __func__.20622, 14 -__func__.20622: + .type __func__.20795, %object + .size __func__.20795, 14 +__func__.20795: .string "pm_write_page" .zero 2 - .type __func__.19131, %object - .size __func__.19131, 17 -__func__.19131: - .string "flash_info_flush" - .zero 7 - .type __func__.18849, %object - .size __func__.18849, 16 -__func__.18849: - .string "nand_flash_init" - .type __func__.20096, %object - .size __func__.20096, 16 -__func__.20096: + .type __func__.20268, %object + .size __func__.20268, 16 +__func__.20268: .string "ftl_sysblk_dump" - .type __func__.20562, %object - .size __func__.20562, 16 -__func__.20562: + .type __func__.20735, %object + .size __func__.20735, 16 +__func__.20735: .string "load_l2p_region" - .type __func__.20596, %object - .size __func__.20596, 6 -__func__.20596: + .type __func__.20769, %object + .size __func__.20769, 6 +__func__.20769: .string "pm_gc" .zero 2 - .type __func__.19318, %object - .size __func__.19318, 15 -__func__.19318: + .type __func__.19388, %object + .size __func__.19388, 15 +__func__.19388: .string "ftl_read_ahead" .zero 1 - .type __func__.19638, %object - .size __func__.19638, 22 -__func__.19638: + .type __func__.19666, %object + .size __func__.19666, 22 +__func__.19666: .string "gc_update_l2p_map_new" .zero 2 - .type __func__.19796, %object - .size __func__.19796, 20 -__func__.19796: + .type __func__.19834, %object + .size __func__.19834, 20 +__func__.19834: .string "gc_scan_static_data" .zero 4 - .type __func__.19852, %object - .size __func__.19852, 18 -__func__.19852: + .type __func__.19892, %object + .size __func__.19892, 18 +__func__.19892: .string "gc_block_vpn_scan" .zero 6 - .type __func__.20072, %object - .size __func__.20072, 14 -__func__.20072: + .type __func__.20244, %object + .size __func__.20244, 14 +__func__.20244: .string "ftl_sblk_dump" .zero 2 - .type __func__.19780, %object - .size __func__.19780, 18 -__func__.19780: - .string "gc_search_src_blk" - .zero 6 - .type __func__.19364, %object - .size __func__.19364, 10 -__func__.19364: + .type __func__.19434, %object + .size __func__.19434, 10 +__func__.19434: .string "zftl_read" .zero 6 - .type __func__.19431, %object - .size __func__.19431, 10 -__func__.19431: + .type __func__.19501, %object + .size __func__.19501, 10 +__func__.19501: .string "vpn_check" .zero 6 - .type __func__.19461, %object - .size __func__.19461, 15 -__func__.19461: - .string "ftl_info_check" - .zero 1 - .type __func__.19747, %object - .size __func__.19747, 16 -__func__.19747: + .type __func__.19775, %object + .size __func__.19775, 16 +__func__.19775: .string "gc_scan_src_blk" - .type __func__.20162, %object - .size __func__.20162, 19 -__func__.20162: + .type __func__.20334, %object + .size __func__.20334, 19 +__func__.20334: .string "ftl_update_l2p_map" .zero 5 - .type __func__.19259, %object - .size __func__.19259, 17 -__func__.19259: + .type __func__.19326, %object + .size __func__.19326, 17 +__func__.19326: .string "ftl_write_commit" .zero 7 - .type __func__.19680, %object - .size __func__.19680, 16 -__func__.19680: + .type __func__.19708, %object + .size __func__.19708, 16 +__func__.19708: .string "gc_do_copy_back" - .type __func__.19390, %object - .size __func__.19390, 13 -__func__.19390: + .type __func__.19460, %object + .size __func__.19460, 13 +__func__.19460: .string "_ftl_discard" .zero 3 - .type __func__.19881, %object - .size __func__.19881, 11 -__func__.19881: + .type __func__.19919, %object + .size __func__.19919, 11 +__func__.19919: .string "zftl_do_gc" .section .rodata.str1.1,"aMS",%progbits,1 .LC0: - .string "...%s enter...\n" + .string "\n!!!!! error @ func:%s - line:%d\n" .LC1: - .string "No.0 FLASH ID: %x %x %x %x %x %x\n" + .string "No.%d FLASH ID:%x %x %x %x %x %x\n" .LC2: - .string "DiePerChip: %x\n" + .string "flash_erase_duplane_block %x %x %x\n" .LC3: - .string "SectPerPage: %x\n" + .string "flash_erase_duplane_block pageadd = %x status = %x\n" .LC4: - .string "PagePerBlk: %x\n" + .string "flash_erase_block %x %x\n" .LC5: - .string "Cell: %x\n" + .string "flash_erase_block block = %x status = %x\n" .LC6: - .string "PlanePerDie: %x\n" + .string "erase done: %x\n" .LC7: - .string "BlkPerPlane: %x\n" + .string "flash_mask_bad_block %d %d\n" .LC8: - .string "die gap: %x\n" + .string "%s\n" .LC9: - .string "lsbMode: %x\n" + .string "FTL version: 6.0.5 20180316" .LC10: - .string "ReadRetryMode: %x\n" + .string "FLASH ID: %x %x %x %x %x %x\n" .LC11: - .string "ecc: %x\n" + .string "density: %d MB\n" .LC12: - .string "idb ecc: %x\n" + .string "device density: %d MB\n" .LC13: - .string "AccessFreq: %x\n" + .string "FTL INFO:\n" .LC14: - .string "OptMode: %x\n" + .string "max_lpn = 0x%x\n" .LC15: - .string "g_nand_max_die: %x\n" + .string "density = 0x%x\n" .LC16: - .string "Cache read enable: %x\n" + .string "slc vpn = 0x%x\n" .LC17: - .string "Cache random read enable: %x\n" + .string "xlc vpn = 0x%x\n" .LC18: - .string "Cache prog enable: %x\n" + .string "free slc blk = 0x%x\n" .LC19: - .string "multi read enable: %x\n" + .string "free xlc blk = 0x%x\n" .LC20: - .string "multi prog enable: %x\n" + .string "free mix blk = 0x%x\n" .LC21: - .string "interleave enable: %x\n" + .string "slc data blk = 0x%x\n" .LC22: - .string "read retry enable: %x\n" + .string "slc cache blk = 0x%x\n" .LC23: - .string "randomizer enable: %x\n" + .string "xlc data blk = 0x%x\n" .LC24: - .string "SDR enable: %x\n" + .string "bad blk = %d %d\n" .LC25: - .string "ONFI enable: %x\n" + .string "TBW = %d MB\n" .LC26: - .string "TOGGLE enable: %x\n" + .string "TBR = %d MB\n" .LC27: - .string "g_flash_slc_mode: %x\n" + .string "POC = %d\n" .LC28: - .string "MultiPlaneProgCmd: %x %x\n" + .string "PLC = %d\n" .LC29: - .string "MultiPlaneReadCmd: %x %x\n" + .string "sys run time = %d S\n" .LC30: - .string "g_flash_toggle_mode_en: %x\n" + .string "slc mode = %d\n" .LC31: - .string "...%s enter... %p\n" + .string "prog err = %d\n" .LC32: - .string "0:%x %x %x %x %x\n" + .string "read err = %d\n" .LC33: - .string "g_nandc_ver...%d\n" + .string "GC XLC page = %d\n" .LC34: - .string "\n!!!!! error @ func:%s - line:%d\n" + .string "GC SLC page = %d\n" .LC35: - .string "nand sdr mode %x\n" + .string "discard page = 0x%x\n" .LC36: - .string "nand ddr mode %x\n" + .string "version = %d\n" .LC37: - .string "No.%d FLASH ID:%x %x %x %x %x %x\n" + .string "acblk = 0x%x %d %d\n" .LC38: - .string "bad block test:%x %x\n" + .string "tmblk = 0x%x %d %d\n" .LC39: - .string "flash_erase_duplane_block %x %x %x\n" + .string "gcblk = 0x%x %d %d\n" .LC40: - .string "flash_erase_duplane_block pageadd = %x status = %x\n" + .string "slc ec = %d, %d, %d, %d, %d\n" .LC41: - .string "flash_erase_block %x %x\n" + .string "xlc ec = %d, %d, %d, %d, %d\n" .LC42: - .string "flash_erase_block block = %x status = %x\n" + .string "gc free blk th = %d\n" .LC43: - .string "erase done: %x\n" + .string "gc vpn th = %d %d %d %d\n" .LC44: - .string "bch%d: %d %d\n" + .string "gc_add_sblk = %d, %d, %d, %d, %d, %d\n" .LC45: - .string "flash_mask_bad_block %d %d\n" + .string "status: %x, ppa: %x\n" .LC46: - .string "%s\n" + .string "gc_write_completed: %x %x %x %x\n" .LC47: - .string "FTL version: 6.0.3 20180211" + .string "%d gc_free_temp_buf buf id= %x\n" .LC48: - .string "FLASH ID: %x %x %x %x %x %x\n" + .string "gc: b:%x,p:%x,i:%x; free buf=%d %d free slc th: %d\n" .LC49: - .string "density: %d MB\n" + .string "zftl_get_gc_node cache = %x index = %d vpn = %x\n" .LC50: - .string "device density: %d MB\n" + .string "gc_search_src_blk mode = %x, src mode = %x, count= %d %d\n" .LC51: - .string "FTL INFO:\n" + .string "zftl_get_free_sblk %x %d, %p %d %d\n" .LC52: - .string "max_lpn = 0x%x\n" + .string "list count:%p %d\n" .LC53: - .string "density = 0x%x\n" + .string "%d: node:%x %x %x %x, %d %d %d %d %d\n" .LC54: - .string "slc vpn = 0x%x\n" + .string "gc_free_src_blk = %x, vpn = %d\n" .LC55: - .string "xlc vpn = 0x%x\n" + .string "gc_free_src_blk %x, %d\n" .LC56: - .string "free slc blk = 0x%x\n" + .string "ftl_vpn_decrement %x = %d\n" .LC57: - .string "free xlc blk = 0x%x\n" + .string "mask bad block:cs %x block: %x\n" .LC58: - .string "free mix blk = 0x%x\n" + .string "free blk: s:%x,t:%x,m:%x, data blk:s:%x,%x,t%x vpn: s:%x t:%x, max_vpn: %x\n" .LC59: - .string "slc data blk = 0x%x\n" + .string "totle w: %d MB,r: %d MB %d dv:0x%X,poc:%d\n" .LC60: - .string "slc cache blk = 0x%x\n" + .string "gc xlc page: %d,gc slc page: %d, tmp w: %d MB\n" .LC61: - .string "xlc data blk = 0x%x\n" + .string "slc ec: %d,%d,%d,%d,%d,tlc ec: %d,%d,%d,%d,%d\n" .LC62: - .string "TBW = %d MB\n" + .string "gc th: tlc_tlc: %d tlc_slc: %d slc_slc: %d slc_tlc:%d free_th: %d\n" .LC63: - .string "TBR = %d MB\n" + .string "ftl prog error =%x, lpa = %x, ppa= %x\n" .LC64: - .string "POC = %d\n" + .string "alloc sblk %x %d\n" .LC65: - .string "PLC = %d\n" + .string "dump_sblk_queue: %d\n" .LC66: - .string "sys run time = %d S\n" + .string "buf id= %d state = %d ppa = %x\n" .LC67: - .string "prog err = %d\n" + .string "blk %x is bad block\n" .LC68: - .string "read err = %d\n" + .string "pm_alloc_new_blk: %x %x %x %x\n" .LC69: - .string "GC XLC page = %d\n" + .string "%s %d %d\n" .LC70: - .string "GC SLC page = %d\n" + .string "gc_static_wearleveling: slc blk: %d, tlc blk: %d avg slc ec: %d, avg tlc ec: %d \n" .LC71: - .string "discard page = 0x%x\n" + .string "gc_static_wearleveling: min slc ec: %d, min tlc ec: %d max slc ec: %d, max tlc ec: %d; %d %d\n" .LC72: - .string "version = %d\n" + .string "swl add tlc gc = %d, %d, %d, %d, %d, %d\n" .LC73: - .string "acblk = 0x%x %d %d\n" + .string "swl add slc gc = %d, %d, %d, %d, %d, %d\n" .LC74: - .string "tmblk = 0x%x %d %d\n" + .string "free blk vpn error: %x %x\n" .LC75: - .string "gcblk = 0x%x %d %d\n" + .string "rk_ftl_de_init %x\n" .LC76: - .string "slc ec = %d, %d, %d, %d, %d\n" + .string "%s %p:0x%x:" .LC77: - .string "xlc ec = %d, %d, %d, %d, %d\n" + .string "%x " .LC78: - .string "gc_add_sblk = %d, %d, %d, %d, %d, %d\n" + .string "" .LC79: - .string "status: %x, ppa: %x\n" + .string "otp error! %d" .LC80: - .string "gc_write_completed: %x %x %x %x\n" + .string "rr" .LC81: - .string "%d gc_free_temp_buf buf id= %x\n" + .string "%d mtrans_cnt = %d page_num = %d\n" .LC82: - .string "gc_static_wearleveling: slc blk: %d, tlc blk: %d avg slc ec: %d, avg tlc ec: %d \n" + .string "nandc:" .LC83: - .string "gc_static_wearleveling: min slc ec: %d, min tlc ec: %d max slc ec: %d, max tlc ec: %d \n" + .string "%d flReg.d32=%x %x\n" .LC84: - .string "gc: b:%x,p:%x,i:%x; free buf=%d %d free slc th: %d\n" + .string "nandc_xfer_done read error %x\n" .LC85: - .string "ftl_alloc_sblk %x, %d %d %d\n" + .string "dqs data abort %x\n" .LC86: - .string "gc_free_src_blk = %x, vpn = %d\n" + .string "xfer error %x\n" .LC87: - .string "gc_free_src_blk %x, %d\n" + .string "flash_read_page %x %x %x\n" .LC88: - .string "ftl_vpn_decrement %x = %d\n" + .string "micron RR %d row=%x,count %d,status=%d\n" .LC89: - .string "mask bad block:cs %x block: %x\n" + .string "toshiba SRR %d row=%x, status=%d\n" .LC90: - .string "free blk: s:%x,t:%x,m:%x, data blk:s:%x,%x,t%x vpn: s:%x t:%x, gc th: %x\n" + .string "toshiba TRR %d row=%x, status=%d\n" .LC91: - .string "totle w: %d MB,r: %d MB %d dv:0x%X,poc:%d\n" + .string "toshiba RR %d row=%x,count %d,status=%d\n" .LC92: - .string "gc xlc page: %d,gc slc page: %d, tmp w: %d MB\n" + .string "hynix RR %d row=%x, count %d, status=%d\n" .LC93: - .string "slc ec: %d,%d,%d,%d,%d,tlc ec: %d,%d,%d,%d,%d\n" + .string "%d flash_ddr_tunning_read %x ecc=%d\n" .LC94: - .string "ftl prog error =%x, lpa = %x, ppa= %x\n" + .string "sync para %d\n" .LC95: - .string "dump_sblk_queue: %d\n" + .string "DDR mode Read error %x %x\n" .LC96: - .string "buf id= %d state = %d ppa = %x\n" + .string "flash_read_page_en %x %x\n" .LC97: - .string "blk %x is bad block\n" + .string "flash_read_page_en %x %x error_ecc %d %d\n" .LC98: - .string "pm_alloc_new_blk: %x %x %x %x\n" + .string "no sys info %x\n" .LC99: - .string "%s %d %d\n" + .string "read page: %x %x %x %x\n" .LC100: - .string "ftl_free_no_use_map_blk %x %x %x %d\n" + .string "flash_complete_page_read %x %x error_ecc %d %d\n" .LC101: - .string "...%d @ %s\n" + .string "set buf %d,status = %x, ppa = %x lun state = %d\n" .LC102: - .string "rk_ftl_de_init %x\n" + .string "1ppa = %x, status = %x, %x %x spare: %x %x %x %x\n" .LC103: - .string "%s %p:0x%x:" + .string "flash_prog_page %x %x %x\n" .LC104: - .string "%x " + .string "sblk_prog_page ppa = %x, count = %d\n" .LC105: - .string "" + .string "flash_prog_page_en:%x %x\n" .LC106: - .string "otp error! %d" + .string "spare" .LC107: - .string "rr" + .string "data" .LC108: - .string "%d mtrans_cnt = %d page_num = %d\n" + .string "write error: %x\n" .LC109: - .string "nandc:" + .string "low format %d\n" .LC110: - .string "%d flReg.d32=%x %x\n" + .string "g_ftl_info_blk blk = %x, page = %x version = %d\n" .LC111: - .string "nandc_xfer_done read error %x\n" + .string "%d %x @%d %x\n" .LC112: - .string "dqs data abort %x\n" + .string "ftl_info_blk_init %d %d %x\n" .LC113: - .string "xfer error %x\n" + .string "low format %d %d %d %d\n" .LC114: - .string "flash_read_page %x %x %x\n" + .string "re low format %d\n" .LC115: - .string "micron %d row=%x,count %d,status=%d\n" + .string "saved_active_page = %x\n" .LC116: - .string "micron RR %d row=%x,count %d,status=%d\n" + .string "saved_active_plane = %x\n" .LC117: - .string "toshiba SRR %d row=%x, status=%d\n" + .string "sblk = %x\n" .LC118: - .string "toshiba TRR %d row=%x, status=%d\n" + .string "phy_blk = %x %x\n" .LC119: - .string "toshiba RR %d row=%x,count %d,status=%d\n" + .string "blk= %x, page=%x, ppa = %x, status = %x, data:%x %x %x %x, spare: %x %x %x %x\n" .LC120: - .string "hynix RR %d row=%x, count %d, status=%d\n" + .string "sblk = %x, vpn0 = %d, vpn1 = %d\n" .LC121: - .string "%d flash_ddr_tunning_read %x ecc=%d\n" + .string "dump write = %x\n" .LC122: - .string "sync para %d\n" + .string "pm_write_page write error: %x\n" .LC123: - .string "DDR mode Read error %x %x\n" + .string "finfo:" .LC124: - .string "flash_read_page_en %x %x\n" + .string "flash_info_flush id = %x, page = %x\n" .LC125: - .string "flash_read_page_en %x %x error_ecc %d %d\n" + .string "sys_info_flush error:%x\n" .LC126: - .string "flash_get_last_written_page: %x %x %x\n" + .string "l2p:" .LC127: - .string "...%d @ %s %d %p\n" + .string "g_ftl_info_blk blk:0x%x, index:0x%x, page:0x%x\n" .LC128: - .string "no sys info %x\n" + .string "ftl_ext_info_blk blk:0x%x, page:0x%x\n" .LC129: - .string "read page: %x %x %x %x\n" + .string "ac_blk:0x%x, page:0x%x, index:0x%x, free:0x%x, page_index:0x%x\n" .LC130: - .string "flash_complete_page_read %x %x error_ecc %d %d\n" + .string "tmp_blk:0x%x, page:0x%x, index:0x%x, free:0x%x, page_index:0x%x\n" .LC131: - .string "set buf %d,status = %x, ppa = %x lun state = %d\n" + .string "gc_blk:0x%x, page:0x%x, index:0x%x, free:0x%x, page_index:0x%x\n" .LC132: - .string "1ppa = %x, status = %x, %x %x spare: %x %x %x %x\n" + .string "lpa:" .LC133: - .string "sblk_prog_page ppa = %x, count = %d\n" + .string "vpn:" .LC134: - .string "flash_prog_page %x %x %x\n" + .string "sblk:" .LC135: - .string "flash_prog_page page_addr = %x status = %x\n" + .string "lpa_hash:" .LC136: - .string "flash_prog_page_en:%x %x\n" + .string "lpa_hash_index:" .LC137: - .string "spare" + .string "%s w error lpn = %x, max ppa = %d\n" .LC138: - .string "data" + .string "region_id = %d, pm_max_region = %d\n" .LC139: - .string "write error: %x\n" + .string "load_l2p_region = %x,%x,%x, %x\n" .LC140: - .string "low format %d\n" + .string "pm_ppa:" .LC141: - .string "g_ftl_info_blk blk = %x, page = %x version = %d\n" + .string "data:" .LC142: - .string "%d %x @%d %x\n" + .string "spare:" .LC143: - .string "ftl_info_blk_init %d %d %x\n" + .string "pm_init posr %x %x %x\n" .LC144: - .string "low format %d %d %d %d\n" + .string "pm_init recovery %x %x %x\n" .LC145: - .string "re low formaet %d\n" + .string "pm_log2phys lpn = %d, max lpn = %d\n" .LC146: - .string "saved_active_page = %x\n" + .string "ftl_read_ahead refresh =%x, lpa = %x, ppa= %x\n" .LC147: - .string "saved_active_plane = %x\n" + .string "id=%d, lpa = %x, ppa = %x spare = %x %x %x %x\n" .LC148: - .string "sblk = %x\n" + .string "ppa = %x, status = %x, data:%x %x %x %x, spare: %x %x %x %x\n" .LC149: - .string "phy_blk = %x %x\n" + .string "ppa = %x, status = %x, %x %x spare: %x %x %x %x\n" .LC150: - .string "blk= %x, page=%x, ppa = %x, status = %x, data:%x %x %x %x, spare: %x %x %x %x\n" + .string "gc_recovery" .LC151: - .string "sblk = %x, vpn0 = %d, vpn1 = %d\n" + .string "gc_recovery: %x vpn = %x\n" .LC152: - .string "dump write = %x\n" + .string "ftl_init %x\n" .LC153: - .string "pm_write_page write error: %x\n" + .string "gc_update_l2p_map_new sblk %x\n" .LC154: - .string "finfo:" + .string "gc_update_l2p_map_new: %x %x %x\n" .LC155: - .string "flash_info_flush id = %x, page = %x\n" + .string "0lpa: %x %x %x\n" .LC156: - .string "sys_info_flush error:%x\n" + .string "lpa: %x %x %x\n" .LC157: - .string "l2p:" + .string "gc_update_l2p_map_new: %x vpn = %x vpn1 = %x done\n" .LC158: - .string "g_ftl_info_blk blk:0x%x, index:0x%x, page:0x%x\n" + .string "gc_block_vpn_scan = %x, s vpn0 = %d, c vpn1 = %d f:%d\n" .LC159: - .string "ftl_ext_info_blk blk:0x%x, page:0x%x\n" + .string "ftl_sblk_dump = %x %x %x %x\n" .LC160: - .string "ac_blk:0x%x, page:0x%x, index:0x%x, free:0x%x, page_index:0x%x\n" + .string "page_addr = %x, lpa=%x vpn = %d\n" .LC161: - .string "tmp_blk:0x%x, page:0x%x, index:0x%x, free:0x%x, page_index:0x%x\n" + .string "index= %x, lpa=%x\n" .LC162: - .string "gc_blk:0x%x, page:0x%x, index:0x%x, free:0x%x, page_index:0x%x\n" + .string "block = %x, vpn=%x check vpn = %d\n" .LC163: - .string "lpa:" + .string "ftl_read %x %x %x\n" .LC164: - .string "vpn:" + .string "ftl_read refresh =%x, lpa = %x, ppa= %x\n" .LC165: - .string "sblk:" + .string "acblk = %x, tempblk = %x, gc_des = %x\n" .LC166: - .string "lpa_hash:" + .string "acblk = %x, free page = %x, vpn = %x %x\n" .LC167: - .string "lpa_hash_index:" + .string "tmp_blk = %x, free page = %x, vpn = %x %x\n" .LC168: - .string "%s w error lpn = %x, max ppa = %d\n" + .string "vpn_check lpa = %x, ppa = %x, blk = %x\n" .LC169: - .string "region_id = %d, pm_max_region = %d\n" + .string "l2p" .LC170: - .string "load_l2p_region = %x,%x,%x, %x\n" + .string "vpn_check %x = c %x s %x function: %x\n" .LC171: - .string "pm_ppa:" + .string "vpn_check blk = %x fix vpc\n" .LC172: - .string "data:" + .string "...%s exit...%d\n" .LC173: - .string "spare:" + .string "gc_scan_src_blk = %x, vpn = %d\n" .LC174: - .string "pm_init posr %x %x %x\n" + .string "gc_scan_src_blk = %x, s vpn0 = %d, c vpn1 = %d\n" .LC175: - .string "pm_init recovery %x %x %x\n" + .string "ftl_scan_all_data = %x\n" .LC176: - .string "pm_log2phys lpn = %d, max lpn = %d\n" + .string "scan lpa = %x ppa= %x\n" .LC177: - .string "ftl_read_ahead refresh =%x, lpa = %x, ppa= %x\n" + .string "lba = %x,addr= %x, ststus = %x, spare= %x %x %x %x data=%x %x\n" .LC178: - .string "id=%d, lpa = %x, ppa = %x spare = %x %x %x %x\n" + .string "lba = %x, id= %x, index = %x hash ppa = %x\n" .LC179: - .string "gc_update_l2p_map_new sblk %x\n" + .string "0pm:" .LC180: - .string "gc_update_l2p_map_new: %x %x %x\n" + .string "1pm:" .LC181: - .string "0lpa: %x %x %x\n" + .string "ftl_update_l2p_map: %x %x %x\n" .LC182: - .string "lpa: %x %x %x\n" + .string "ftl_update_l2p_map" .LC183: - .string "gc_update_l2p_map_new: %x vpn = %x vpn1 = %x done\n" + .string "lpa_tbl:" .LC184: - .string "gc_block_vpn_scan = %x, s vpn0 = %d, c vpn1 = %d f:%d\n" + .string "sblk %x vpn: %d %d\n" .LC185: - .string "ftl_sblk_dump = %x %x %x %x\n" + .string "%d read error: ppa:%x, lpa:%x, status:%x\n" .LC186: - .string "page_addr = %x, lpa=%x vpn = %d\n" + .string "gc page in buf: lpa %x ppa = %x pageindex= %x\n" .LC187: - .string "index= %x, lpa=%x\n" + .string "gc_do_copy_back: lpa %x des_ppa = %x %x gc_ppa= %x page_index= %d\n" .LC188: - .string "block = %x, vpn=%x check vpn = %d\n" + .string "gc_do_copy_back: %x %x %x %x gc_ppa:%x %x\n" .LC189: - .string "gc_search_src_blk = %d, %d, %d\n" + .string "%d prog_step: %x %x buf id= %x ppa = %x hash=%x id = %x plane = %x lpa=%x\n" .LC190: - .string "gc_search_src_blk = %d, %d, %d %d\n" + .string "ftl_discard:(%x, %x, %x, %x)\n" .LC191: - .string "vpn gc = %d, id = %d\n" + .string "gc %d: %d %d %d %d %d %d %d\n" .LC192: - .string "gc_search_src_blk count= %d slc_min_vpc = %d xlc_min_vpc = %d\n" + .string "gc %d: %d %d %d %d %d %d\n" .LC193: - .string "ftl_read refresh =%x, lpa = %x, ppa= %x\n" + .string "GC_STATE_SCAN_ALL_PAGE = %x, vpn0 = %d, vpn1 = %d\n" .LC194: - .string "acblk = %x, tempblk = %x, gc_des = %x\n" + .string "gc free %x, %d\n" .LC195: - .string "acblk = %x, free page = %x, vpn = %x %x\n" + .string "ftlwrite %x %x %x\n" .LC196: - .string "tmp_blk = %x, free page = %x, vpn = %x %x\n" -.LC197: - .string "vpn_check lpa = %x, ppa = %x, blk = %x\n" -.LC198: - .string "l2p" -.LC199: - .string "vpn_check %x = c %x s %x function: %x\n" -.LC200: - .string "vpn_check blk = %x fix vpc\n" -.LC201: - .string "...%s exit...%d ms\n" -.LC202: - .string "free blk vpn error: %x %x\n" -.LC203: - .string "data blk: %d %d %d\n" -.LC204: - .string "free blk: %d %d %d\n" -.LC205: - .string "gc_scan_src_blk = %x, vpn = %d\n" -.LC206: - .string "gc_scan_src_blk = %x, s vpn0 = %d, c vpn1 = %d\n" -.LC207: - .string "ftl_scan_all_data = %x\n" -.LC208: - .string "scan lpa = %x ppa= %x\n" -.LC209: - .string "lba = %x,addr= %x, ststus = %x, spare= %x %x %x %x data=%x %x\n" -.LC210: - .string "lba = %x, id= %x, index = %x hash ppa = %x\n" -.LC211: - .string "0pm:" -.LC212: - .string "1pm:" -.LC213: - .string "ppa = %x, status = %x, data:%x %x %x %x, spare: %x %x %x %x\n" -.LC214: - .string "gc_lpa:" -.LC215: - .string "gc_ppa:" -.LC216: - .string "ppa = %x, status = %x, %x %x spare: %x %x %x %x\n" -.LC217: - .string "gc_recovery" -.LC218: - .string "gc_recovery: %x vpn = %x\n" -.LC219: - .string "_c_user_data_density := %d\n" -.LC220: - .string "_c_totle_phy_density := %d\n" -.LC221: - .string "_c_totle_log_page := %d\n" -.LC222: - .string "_c_totle_data_density := %d\n" -.LC223: - .string "_c_ftl_pm_page_num := %d\n" -.LC224: - .string "_c_ftl_byte_pre_page := %d\n" -.LC225: - .string "_c_max_pm_sblk := %d\n" -.LC226: - .string "_min_slc_super_block := %d\n" -.LC227: - .string "_max_xlc_super_block := %d\n" -.LC228: - .string "gp_ftl_ext_info %p %p %p\n" -.LC229: - .string "flash info size: %d %d %d\n" -.LC230: - .string "ftl_init %x\n" -.LC231: - .string "ftl_update_l2p_map: %x %x %x\n" -.LC232: - .string "ftl_update_l2p_map" -.LC233: - .string "lpa_tbl:" -.LC234: - .string "sblk %x vpn: %d %d\n" -.LC235: - .string "%d read error: ppa:%x, lpa:%x, status:%x\n" -.LC236: - .string "gc page in buf: lpa %x ppa = %x pageindex= %x\n" -.LC237: - .string "gc_do_copy_back: lpa %x des_ppa = %x %x gc_ppa= %x page_index= %d\n" -.LC238: - .string "gc_do_copy_back: %x %x %x %x gc_ppa:%x %x\n" -.LC239: - .string "%d prog_step: %x %x buf id= %x ppa = %x hash=%x id = %x plane = %x lpa=%x\n" -.LC240: - .string "ftl_discard:(%x, %x, %x, %x)\n" -.LC241: - .string "gc %d: %d %d %d %d %d %d\n" -.LC242: - .string "GC_STATE_SCAN_ALL_PAGE = %x, vpn0 = %d, vpn1 = %d\n" -.LC243: - .string "gc free %x, %d\n" -.LC244: .string "id_block_prog_msb_ff_data slc page = %d pageadd=%x %x\n" -.LC245: +.LC197: .string "write_idblock fix data %x %x\n" -.LC246: +.LC198: .string "1 write_idblock fix data %x %x %x\n" -.LC247: +.LC199: .string "READ_SECTOR_IO\n" -.LC248: +.LC200: .string "rk_copy_from_user error\n" -.LC249: +.LC201: .string "READ_SECTOR_IO %x %x\n" -.LC250: +.LC202: .string "rk_copy_to_user error\n" -.LC251: +.LC203: .string "WRITE_SECTOR_IO\n" -.LC252: +.LC204: .string "WRITE_SECTOR_IO %x %x\n" -.LC253: +.LC205: .string "END_WRITE_SECTOR_IO\n" -.LC254: +.LC206: .string "END_WRITE_SECTOR_IO %x %x\n" -.LC255: +.LC207: .string "GET_FLASH_INFO_IO\n" -.LC256: +.LC208: .string "GET_BAD_BLOCK_IO\n" -.LC257: +.LC209: .string "GET_LOCK_FLAG_IO\n" -.LC258: +.LC210: .string "GET_PUBLIC_KEY_IO\n" -.LC259: +.LC211: .string "RKNAND_GET_DRM_KEY\n" -.LC260: +.LC212: .string "RKNAND_STORE_DRM_KEY\n" -.LC261: +.LC213: .string "RKNAND_DIASBLE_SECURE_BOOT\n" -.LC262: +.LC214: .string "RKNAND_ENASBLE_SECURE_BOOT\n" -.LC263: +.LC215: .string "RKNAND_GET_SN_SECTOR\n" -.LC264: +.LC216: .string "RKNAND_LOADER_UNLOCK\n" -.LC265: +.LC217: .string "RKNAND_LOADER_STATUS\n" -.LC266: +.LC218: .string "RKNAND_LOADER_LOCK\n" -.LC267: +.LC219: .string "LockKey not match %d\n" -.LC268: +.LC220: .string "RKNAND_GET_VENDOR_SECTOR\n" -.LC269: +.LC221: .string "RKNAND_STORE_VENDOR_SECTOR\n" -.LC270: +.LC222: .string "return ret = %lx\n" -.LC271: +.LC223: .string "secureBootEn check error\n" -.LC272: +.LC224: .string "\0013vendor storage %x,%x,%x\n" .data .align 3 @@ -24132,7 +24476,7 @@ hy_f26_ref_value: .byte -37 .zero 4 .type zftl_nand_flash_para_tbl, %object - .size zftl_nand_flash_para_tbl, 768 + .size zftl_nand_flash_para_tbl, 864 zftl_nand_flash_para_tbl: .byte 6 .byte -104 @@ -24550,7 +24894,7 @@ zftl_nand_flash_para_tbl: .byte 4 .byte 0 .hword 512 - .byte 1 + .byte 2 .byte -38 .byte -33 .byte 0 @@ -24578,7 +24922,7 @@ zftl_nand_flash_para_tbl: .byte 1 .byte 0 .hword 512 - .byte 2 + .byte 3 .byte 0 .byte 0 .byte 0 @@ -24606,7 +24950,7 @@ zftl_nand_flash_para_tbl: .byte 1 .byte 0 .hword 256 - .byte 2 + .byte 3 .byte 0 .byte 0 .byte 0 @@ -24634,7 +24978,7 @@ zftl_nand_flash_para_tbl: .byte 1 .byte 0 .hword 512 - .byte 2 + .byte 3 .byte 0 .byte 0 .byte 0 @@ -24667,6 +25011,90 @@ zftl_nand_flash_para_tbl: .byte 0 .byte 0 .byte 6 + .byte 44 + .byte 100 + .byte 68 + .byte 75 + .byte -87 + .byte 0 + .byte 4 + .byte 1 + .byte 16 + .hword 256 + .byte 2 + .byte 4 + .hword 1024 + .hword 449 + .byte 3 + .byte 17 + .byte 40 + .byte 32 + .byte 1 + .byte 0 + .byte 1 + .byte 0 + .hword 256 + .byte 3 + .byte 0 + .byte 0 + .byte 0 + .byte 6 + .byte 44 + .byte -124 + .byte 100 + .byte 60 + .byte -91 + .byte 0 + .byte 4 + .byte 1 + .byte 32 + .hword 512 + .byte 2 + .byte 2 + .hword 1024 + .hword 479 + .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 52 + .byte -92 + .byte 0 + .byte 4 + .byte 1 + .byte 32 + .hword 512 + .byte 2 + .byte 2 + .hword 1096 + .hword 9695 + .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 .byte 20 @@ -24690,9 +25118,9 @@ zftl_nand_flash_para_tbl: .byte 4 .byte 0 .hword 256 - .byte 0 - .byte 0 - .byte 0 + .byte 2 + .byte -65 + .byte -66 .byte 0 .byte 6 .byte -83 @@ -24746,9 +25174,9 @@ zftl_nand_flash_para_tbl: .byte 3 .byte 0 .hword 256 - .byte 0 - .byte 0 - .byte 0 + .byte 2 + .byte -65 + .byte -66 .byte 0 .byte 6 .byte -83 @@ -24802,9 +25230,9 @@ zftl_nand_flash_para_tbl: .byte 3 .byte 0 .hword 256 - .byte 0 - .byte 0 - .byte 0 + .byte 2 + .byte -65 + .byte -66 .byte 0 .type nand_opt_para, %object .size nand_opt_para, 128 @@ -25549,6 +25977,10 @@ g_nandc_ver: .size _c_user_data_density, 4 _c_user_data_density: .zero 4 + .type gp_sblk_list_tbl, %object + .size gp_sblk_list_tbl, 8 +gp_sblk_list_tbl: + .zero 8 .type gp_nandc, %object .size gp_nandc, 8 gp_nandc: @@ -25585,36 +26017,28 @@ NANDC_RANDMZ_CFG: .size NANDC_FMWAIT_SYN, 4 NANDC_FMWAIT_SYN: .zero 4 - .type gp_nand_para_info, %object - .size gp_nand_para_info, 8 -gp_nand_para_info: + .type _c_ftl_blk_pre_plane, %object + .size _c_ftl_blk_pre_plane, 2 +_c_ftl_blk_pre_plane: + .zero 2 + .zero 6 + .type gp_blk_info, %object + .size gp_blk_info, 8 +gp_blk_info: + .zero 8 + .type ftl_sblk_vpn, %object + .size ftl_sblk_vpn, 8 +ftl_sblk_vpn: + .zero 8 + .type gp_ftl_ext_info, %object + .size gp_ftl_ext_info, 8 +gp_ftl_ext_info: .zero 8 - .type g_idb_ecc_bits, %object - .size g_idb_ecc_bits, 1 -g_idb_ecc_bits: - .zero 1 - .type g_nand_max_die, %object - .size g_nand_max_die, 1 -g_nand_max_die: - .zero 1 - .type g_flash_slc_mode, %object - .size g_flash_slc_mode, 1 -g_flash_slc_mode: - .zero 1 - .zero 5 - .type g_nand_opt_para, %object - .size g_nand_opt_para, 32 -g_nand_opt_para: - .zero 32 - .type g_flash_toggle_mode_en, %object - .size g_flash_toggle_mode_en, 1 -g_flash_toggle_mode_en: - .zero 1 .type nandc_hw_seed, %object .size nandc_hw_seed, 1 nandc_hw_seed: .zero 1 - .zero 6 + .zero 7 .type g_nandc_v6_master_info, %object .size g_nandc_v6_master_info, 40 g_nandc_v6_master_info: @@ -25645,15 +26069,23 @@ g_maxRegNum: .size gp_flash_info, 8 gp_flash_info: .zero 8 + .type g_nand_max_die, %object + .size g_nand_max_die, 1 +g_nand_max_die: + .zero 1 + .zero 3 .type g_die_cs_idx, %object .size g_die_cs_idx, 8 g_die_cs_idx: .zero 8 + .type g_flash_slc_mode, %object + .size g_flash_slc_mode, 1 +g_flash_slc_mode: + .zero 1 .type g_slc_mode_addr2, %object .size g_slc_mode_addr2, 1 g_slc_mode_addr2: .zero 1 - .zero 1 .type g_block_align_addr, %object .size g_block_align_addr, 2 g_block_align_addr: @@ -25666,20 +26098,28 @@ g_lsb_page_tbl: .size g_flash_cur_mode, 1 g_flash_cur_mode: .zero 1 - .zero 3 + .type g_flash_interface_mode, %object + .size g_flash_interface_mode, 1 +g_flash_interface_mode: + .zero 1 + .zero 2 .type IDByte, %object .size IDByte, 32 IDByte: .zero 32 - .type g_flash_interface_mode, %object - .size g_flash_interface_mode, 1 -g_flash_interface_mode: + .type g_flash_toggle_mode_en, %object + .size g_flash_toggle_mode_en, 1 +g_flash_toggle_mode_en: .zero 1 .type g_flash_multi_page_prog_en, %object .size g_flash_multi_page_prog_en, 1 g_flash_multi_page_prog_en: .zero 1 - .zero 6 + .zero 2 + .type gp_nand_para_info, %object + .size gp_nand_para_info, 8 +gp_nand_para_info: + .zero 8 .type g_buf, %object .size g_buf, 2048 g_buf: @@ -25705,15 +26145,54 @@ _c_totle_phy_density: .size _c_totle_log_page, 4 _c_totle_log_page: .zero 4 - .zero 4 - .type gp_ftl_ext_info, %object - .size gp_ftl_ext_info, 8 -gp_ftl_ext_info: - .zero 8 + .type free_slc_sblk, %object + .size free_slc_sblk, 2 +free_slc_sblk: + .zero 2 + .type free_xlc_sblk, %object + .size free_xlc_sblk, 2 +free_xlc_sblk: + .zero 2 + .type free_mix_sblk, %object + .size free_mix_sblk, 2 +free_mix_sblk: + .zero 2 + .type slc_data_sblk, %object + .size slc_data_sblk, 2 +slc_data_sblk: + .zero 2 + .type slc_cache_sblk, %object + .size slc_cache_sblk, 2 +slc_cache_sblk: + .zero 2 + .type xlc_data_sblk, %object + .size xlc_data_sblk, 2 +xlc_data_sblk: + .zero 2 .type gp_ftl_info, %object .size gp_ftl_info, 8 gp_ftl_info: .zero 8 + .type gc_free_slc_sblk_th, %object + .size gc_free_slc_sblk_th, 2 +gc_free_slc_sblk_th: + .zero 2 + .type gc_tlc_mode_tlc_vpn_th, %object + .size gc_tlc_mode_tlc_vpn_th, 2 +gc_tlc_mode_tlc_vpn_th: + .zero 2 + .type gc_tlc_mode_slc_vpn_th, %object + .size gc_tlc_mode_slc_vpn_th, 2 +gc_tlc_mode_slc_vpn_th: + .zero 2 + .type gc_slc_mode_vpn_th, %object + .size gc_slc_mode_vpn_th, 2 +gc_slc_mode_vpn_th: + .zero 2 + .type gc_slc_mode_tlc_vpn_th, %object + .size gc_slc_mode_tlc_vpn_th, 2 +gc_slc_mode_tlc_vpn_th: + .zero 2 .type write_buf_head, %object .size write_buf_head, 1 write_buf_head: @@ -25722,7 +26201,6 @@ write_buf_head: .size write_buf_count, 1 write_buf_count: .zero 1 - .zero 2 .type read_ahead_lpa, %object .size read_ahead_lpa, 4 read_ahead_lpa: @@ -25735,29 +26213,11 @@ p_read_ahead_ext_buf: .size sblk_read_completed_queue_head, 1 sblk_read_completed_queue_head: .zero 1 - .zero 1 - .type _c_ftl_blk_pre_plane, %object - .size _c_ftl_blk_pre_plane, 2 -_c_ftl_blk_pre_plane: - .zero 2 - .zero 4 - .type ftl_sblk_vpn, %object - .size ftl_sblk_vpn, 8 -ftl_sblk_vpn: - .zero 8 - .type gp_blk_info, %object - .size gp_blk_info, 8 -gp_blk_info: - .zero 8 + .zero 7 .type g_gc_info, %object .size g_gc_info, 328 g_gc_info: .zero 328 - .type gc_slc_mode_vpn_th, %object - .size gc_slc_mode_vpn_th, 2 -gc_slc_mode_vpn_th: - .zero 2 - .zero 6 .type gc_valid_page_ppa, %object .size gc_valid_page_ppa, 8 gc_valid_page_ppa: @@ -25791,11 +26251,56 @@ _c_ftl_page_pre_blk: .size _c_ftl_nand_planes_num, 1 _c_ftl_nand_planes_num: .zero 1 - .zero 1 - .type gc_free_slc_sblk_th, %object - .size gc_free_slc_sblk_th, 2 -gc_free_slc_sblk_th: + .zero 3 + .type gp_data_xlc_data_head, %object + .size gp_data_xlc_data_head, 8 +gp_data_xlc_data_head: + .zero 8 + .type gp_data_slc_data_head, %object + .size gp_data_slc_data_head, 8 +gp_data_slc_data_head: + .zero 8 + .type gp_data_slc_cache_head, %object + .size gp_data_slc_cache_head, 8 +gp_data_slc_cache_head: + .zero 8 + .type gc_slc_cache_index, %object + .size gc_slc_cache_index, 2 +gc_slc_cache_index: + .zero 2 + .type gc_xlc_data_index, %object + .size gc_xlc_data_index, 2 +gc_xlc_data_index: + .zero 2 + .type _c_ftl_page_pre_slc_blk, %object + .size _c_ftl_page_pre_slc_blk, 2 +_c_ftl_page_pre_slc_blk: + .zero 2 + .type gc_slc_data_index, %object + .size gc_slc_data_index, 2 +gc_slc_data_index: + .zero 2 + .type _min_slc_super_block, %object + .size _min_slc_super_block, 2 +_min_slc_super_block: + .zero 2 + .type _max_xlc_super_block, %object + .size _max_xlc_super_block, 2 +_max_xlc_super_block: .zero 2 + .zero 4 + .type gp_free_slc_head, %object + .size gp_free_slc_head, 8 +gp_free_slc_head: + .zero 8 + .type gp_free_xlc_head, %object + .size gp_free_xlc_head, 8 +gp_free_xlc_head: + .zero 8 + .type gp_free_mix_head, %object + .size gp_free_mix_head, 8 +gp_free_mix_head: + .zero 8 .type _c_ftl_planes_per_die, %object .size _c_ftl_planes_per_die, 1 _c_ftl_planes_per_die: @@ -25805,22 +26310,6 @@ _c_ftl_planes_per_die: .size _c_ftl_block_addr_log2, 2 _c_ftl_block_addr_log2: .zero 2 - .type _c_mix_max_slc_ec_count, %object - .size _c_mix_max_slc_ec_count, 2 -_c_mix_max_slc_ec_count: - .zero 2 - .type _c_mix_max_xlc_ec_count, %object - .size _c_mix_max_xlc_ec_count, 2 -_c_mix_max_xlc_ec_count: - .zero 2 - .type _max_xlc_super_block, %object - .size _max_xlc_super_block, 2 -_max_xlc_super_block: - .zero 2 - .type _max_slc_super_block, %object - .size _max_slc_super_block, 2 -_max_slc_super_block: - .zero 2 .type g_flash_3d_mlc_flag, %object .size g_flash_3d_mlc_flag, 1 g_flash_3d_mlc_flag: @@ -25834,12 +26323,7 @@ _c_ftl_block_align_addr: .size _c_ftl_nand_die_num, 1 _c_ftl_nand_die_num: .zero 1 - .zero 1 - .type _c_ftl_page_pre_slc_blk, %object - .size _c_ftl_page_pre_slc_blk, 2 -_c_ftl_page_pre_slc_blk: - .zero 2 - .zero 4 + .zero 7 .type lpa_hash, %object .size lpa_hash, 512 lpa_hash: @@ -25908,15 +26392,7 @@ g_totle_phy_block: .size gc_state, 1 gc_state: .zero 1 - .zero 1 - .type gc_tlc_mode_slc_vpn_th, %object - .size gc_tlc_mode_slc_vpn_th, 2 -gc_tlc_mode_slc_vpn_th: - .zero 2 - .type gc_tlc_mode_tlc_vpn_th, %object - .size gc_tlc_mode_tlc_vpn_th, 2 -gc_tlc_mode_tlc_vpn_th: - .zero 2 + .zero 5 .type gc_lpa_tbl, %object .size gc_lpa_tbl, 8 gc_lpa_tbl: @@ -25929,11 +26405,23 @@ gc_pre_ppa_tbl: .size gc_des_ppa_tbl, 8 gc_des_ppa_tbl: .zero 8 + .type _c_swl_slc_gc_th, %object + .size _c_swl_slc_gc_th, 2 +_c_swl_slc_gc_th: + .zero 2 + .type _c_swl_xlc_gc_th, %object + .size _c_swl_xlc_gc_th, 2 +_c_swl_xlc_gc_th: + .zero 2 .type _c_max_pm_sblk, %object .size _c_max_pm_sblk, 2 _c_max_pm_sblk: .zero 2 - .zero 6 + .zero 2 + .type g_nand_opt_para, %object + .size g_nand_opt_para, 32 +g_nand_opt_para: + .zero 32 .type power_on_init_jiffies, %object .size power_on_init_jiffies, 8 power_on_init_jiffies: @@ -25984,7 +26472,11 @@ g_flash_spare_buffer: .size g_idb_slc_mode_enable, 1 g_idb_slc_mode_enable: .zero 1 - .zero 15 + .type g_idb_ecc_bits, %object + .size g_idb_ecc_bits, 1 +g_idb_ecc_bits: + .zero 1 + .zero 6 .type ftl_tmp_buffer, %object .size ftl_tmp_buffer, 16384 ftl_tmp_buffer: @@ -25993,20 +26485,20 @@ ftl_tmp_buffer: .size ftl_tmp_spare, 256 ftl_tmp_spare: .zero 256 + .type g_flash_reversd_blks, %object + .size g_flash_reversd_blks, 1 +g_flash_reversd_blks: + .zero 1 .type write_commit_head, %object .size write_commit_head, 1 write_commit_head: .zero 1 - .zero 3 + .zero 2 .type ftl_flush_jiffies, %object .size ftl_flush_jiffies, 4 ftl_flush_jiffies: .zero 4 - .type g_flash_reversd_blks, %object - .size g_flash_reversd_blks, 1 -g_flash_reversd_blks: - .zero 1 - .zero 55 + .zero 56 .type ftl_info_spare, %object .size ftl_info_spare, 256 ftl_info_spare: @@ -26056,23 +26548,23 @@ _c_ftl_byte_pre_page: pm_last_load_ram_id: .zero 1 .zero 3 - .type vpn_mulit_value, %object - .size vpn_mulit_value, 2304 -vpn_mulit_value: - .zero 2304 - .type check_vpc_tbl, %object - .size check_vpc_tbl, 4352 -check_vpc_tbl: - .zero 4352 .type _c_totle_data_density, %object .size _c_totle_data_density, 4 _c_totle_data_density: .zero 4 - .type _min_slc_super_block, %object - .size _min_slc_super_block, 2 -_min_slc_super_block: + .type _max_slc_super_block, %object + .size _max_slc_super_block, 2 +_max_slc_super_block: + .zero 2 + .type _c_mix_max_slc_ec_count, %object + .size _c_mix_max_slc_ec_count, 2 +_c_mix_max_slc_ec_count: .zero 2 + .type _c_mix_max_xlc_ec_count, %object + .size _c_mix_max_xlc_ec_count, 2 +_c_mix_max_xlc_ec_count: .zero 2 + .zero 6 .type gLoaderBootInfo, %object .size gLoaderBootInfo, 8 gLoaderBootInfo: @@ -26081,10 +26573,27 @@ gLoaderBootInfo: .size RK29_NANDC1_REG_BASE, 8 RK29_NANDC1_REG_BASE: .zero 8 + .type _last_read_time, %object + .size _last_read_time, 4 +_last_read_time: + .zero 4 + .zero 4 + .type check_vpc_tbl, %object + .size check_vpc_tbl, 4608 +check_vpc_tbl: + .zero 4608 .type discard_sector_count, %object .size discard_sector_count, 4 discard_sector_count: .zero 4 + .type _gc_after_discard_en, %object + .size _gc_after_discard_en, 4 +_gc_after_discard_en: + .zero 4 + .type _last_write_time, %object + .size _last_write_time, 4 +_last_write_time: + .zero 4 .zero 4 .type g_idb_buffer, %object .size g_idb_buffer, 8 |