@@ -275,27 +275,27 @@ def parse_bit(self, bit, cmd_str):
275
275
op = mpc_op if is_mpc else self .dfi .address
276
276
277
277
rules = {
278
- "H" : lambda : 1 , # high
279
- "L" : lambda : 0 , # low
280
- "V" : lambda : 0 , # defined logic
281
- "X" : lambda : 0 , # don't care
282
- "AB" : lambda : self .dfi .address [10 ], # all banks
283
- "AP" : lambda : self .dfi .address [10 ], # auto precharge
284
- "RFM" : lambda : 0 , # TODO: 1=RFM, 0=REF (Refresh Managemenent, only if r/o MR[27][0]=1, else always REF)
285
- "SB(\d+)" : lambda i : 0 , # sub-bank selection related to RFM
286
- "WS_WR" : lambda : self .wck_sync == WCKSyncType .WR , # Write WCK2CK SYNC
287
- "WS_RD" : lambda : self .wck_sync == WCKSyncType .RD , # Read WCK2CK SYNC
288
- "WS_FS" : lambda : self .wck_sync == WCKSyncType .FS , # FAST SYNC
289
- "DC(\d+)" : lambda i : 0 , # Data Copy, unimplemented
290
- "WRX" : lambda : 0 , # Write X function, unimplemented
291
- "WXSA" : lambda : 0 , # Write X function, unimplemented
292
- "WXSB" : lambda : 0 , # Write X function, unimplemented
293
- "BA(\d+)" : lambda i : self .dfi .bank [i ], # only BA0-2 is used, in BG/B16 modes we always refresh banks (x, x+8)
294
- "R(\d+)" : lambda i : self .dfi .address [i ], # row
278
+ "H" : lambda : 1 , # high
279
+ "L" : lambda : 0 , # low
280
+ "V" : lambda : 0 , # defined logic
281
+ "X" : lambda : 0 , # don't care
282
+ "AB" : lambda : self .dfi .address [10 ], # all banks
283
+ "AP" : lambda : self .dfi .address [10 ], # auto precharge
284
+ "RFM" : lambda : 0 , # TODO: 1=RFM, 0=REF (Refresh Managemenent, only if r/o MR[27][0]=1, else always REF)
285
+ "SB(\\ d+)" : lambda i : 0 , # sub-bank selection related to RFM
286
+ "WS_WR" : lambda : self .wck_sync == WCKSyncType .WR , # Write WCK2CK SYNC
287
+ "WS_RD" : lambda : self .wck_sync == WCKSyncType .RD , # Read WCK2CK SYNC
288
+ "WS_FS" : lambda : self .wck_sync == WCKSyncType .FS , # FAST SYNC
289
+ "DC(\\ d+)" : lambda i : 0 , # Data Copy, unimplemented
290
+ "WRX" : lambda : 0 , # Write X function, unimplemented
291
+ "WXSA" : lambda : 0 , # Write X function, unimplemented
292
+ "WXSB" : lambda : 0 , # Write X function, unimplemented
293
+ "BA(\\ d+)" : lambda i : self .dfi .bank [i ], # only BA0-2 is used, in BG/B16 modes we always refresh banks (x, x+8)
294
+ "R(\\ d+)" : lambda i : self .dfi .address [i ], # row
295
295
# LPDDR5 specs split the regular column address into C[5:0] "column address" and B[3:0] "burst address"
296
- "C(\d+)" : lambda i : self .dfi .address [i + 4 ],
297
- "MA(\d+)" : lambda i : mr_address [i ], # mode register address
298
- "OP(\d+)" : lambda i : op [i ], # mode register value, or operand for MPC
296
+ "C(\\ d+)" : lambda i : self .dfi .address [i + 4 ],
297
+ "MA(\\ d+)" : lambda i : mr_address [i ], # mode register address
298
+ "OP(\\ d+)" : lambda i : op [i ], # mode register value, or operand for MPC
299
299
}
300
300
301
301
for pattern , value in rules .items ():
0 commit comments