Skip to content

Commit 7dacfaf

Browse files
Merge pull request #352 from maribu/litedram/phy/lpddrX/commands.py/fix-invalid-escape-sequence
litedram/phy/lpddr*: fix use of invalid escape sequence
2 parents d6bf987 + 37e1f34 commit 7dacfaf

File tree

2 files changed

+32
-32
lines changed

2 files changed

+32
-32
lines changed

litedram/phy/lpddr4/commands.py

+12-12
Original file line numberDiff line numberDiff line change
@@ -199,18 +199,18 @@ def parse_bit(self, bit, is_mrw):
199199
assert len(self.dfi.address) >= 17, "At least 17 DFI addressbits needed for row address"
200200
mr_address = self.dfi.bank if is_mrw else self.dfi.address
201201
rules = {
202-
"H": lambda: 1, # high
203-
"L": lambda: 0, # low
204-
"V": lambda: 0, # defined logic
205-
"X": lambda: 0, # don't care
206-
"BL": lambda: 0, # on-the-fly burst length, not using
207-
"AP": lambda: self.dfi.address[10], # auto precharge
208-
"AB": lambda: self.dfi.address[10], # all banks
209-
"BA(\d+)": lambda i: self.dfi.bank[i],
210-
"R(\d+)": lambda i: self.dfi.address[i], # row
211-
"C(\d+)": lambda i: self.dfi.address[i], # column
212-
"MA(\d+)": lambda i: mr_address[i], # mode register address
213-
"OP(\d+)": lambda i: self.dfi.address[i], # mode register value, or operand for MPC
202+
"H": lambda: 1, # high
203+
"L": lambda: 0, # low
204+
"V": lambda: 0, # defined logic
205+
"X": lambda: 0, # don't care
206+
"BL": lambda: 0, # on-the-fly burst length, not using
207+
"AP": lambda: self.dfi.address[10], # auto precharge
208+
"AB": lambda: self.dfi.address[10], # all banks
209+
"BA(\\d+)": lambda i: self.dfi.bank[i],
210+
"R(\\d+)": lambda i: self.dfi.address[i], # row
211+
"C(\\d+)": lambda i: self.dfi.address[i], # column
212+
"MA(\\d+)": lambda i: mr_address[i], # mode register address
213+
"OP(\\d+)": lambda i: self.dfi.address[i], # mode register value, or operand for MPC
214214
}
215215
for pattern, value in rules.items():
216216
m = re.match(pattern, bit)

litedram/phy/lpddr5/commands.py

+20-20
Original file line numberDiff line numberDiff line change
@@ -275,27 +275,27 @@ def parse_bit(self, bit, cmd_str):
275275
op = mpc_op if is_mpc else self.dfi.address
276276

277277
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
295295
# 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
299299
}
300300

301301
for pattern, value in rules.items():

0 commit comments

Comments
 (0)