summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZhaoyifeng <zyf@rock-chips.com>2018-03-13 16:32:00 +0800
committerTao Huang <huangtao@rock-chips.com>2018-03-16 17:49:19 +0800
commit5790f6182b4ca2411e71f46b063125b8542484b6 (patch)
treec523cf4d93e5d15c13f1f5db10690118459a0e14
parent7a4fcedce878e2a05a3028f72c014f088dd245fd (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.S4321
-rw-r--r--drivers/rk_nand/rk_zftl_arm64.S20987
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