Skip to content

Commit 5b07956

Browse files
ArcaneNibblemarcan
authored andcommitted
dart-t8110: flush/init
Signed-off-by: R <[email protected]>
1 parent ecb9d12 commit 5b07956

1 file changed

Lines changed: 20 additions & 20 deletions

File tree

proxyclient/m1n1/hw/dart8110.py

Lines changed: 20 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -314,37 +314,37 @@ def get_pt(self, addr, uncached=False):
314314

315315
return cached, self.pt_cache[addr]
316316

317-
# def flush_pt(self, addr):
318-
# assert addr in self.pt_cache
319-
# self.iface.writemem(addr, struct.pack(f"<{self.Lx_SIZE}Q", *self.pt_cache[addr]))
317+
def flush_pt(self, addr):
318+
assert addr in self.pt_cache
319+
self.iface.writemem(addr, struct.pack(f"<{self.Lx_SIZE}Q", *self.pt_cache[addr]))
320320

321-
# def initialize(self):
322-
# for i in range(15):
323-
# self.regs.TCR[i].reg = R_TCR(TRANSLATE_ENABLE=1)
324-
# self.regs.TCR[15].reg = R_TCR(BYPASS_DART=1)
321+
def initialize(self):
322+
for i in range(15):
323+
self.regs.TCR[i].reg = R_TCR(TRANSLATE_ENABLE=1)
324+
self.regs.TCR[15].reg = R_TCR(BYPASS_DART=1)
325325

326-
# for i in range(16):
327-
# for j in range(4):
328-
# self.regs.TTBR[i, j].reg = R_TTBR(VALID = 0)
326+
for i in range(16):
327+
self.regs.TTBR[i].reg = R_TTBR(VALID = 0)
329328

330-
# self.regs.ERROR.val = 0xffffffff
331-
# self.regs.UNK1.val = 0
332-
# self.regs.ENABLED_STREAMS.val = 0
333-
# self.enabled_streams = 0
329+
# self.regs.ERROR.val = 0xffffffff
330+
# self.regs.UNK1.val = 0
331+
self.regs.DISABLE_STREAMS[0].val = 0xffff
332+
self.enabled_streams = 0
334333

335-
# self.invalidate_streams()
334+
self.invalidate_streams()
336335

337336
# def show_error(self):
338337
# if self.regs.ERROR.reg.FLAG:
339338
# print(f"ERROR: {self.regs.ERROR.reg!s}")
340339
# print(f"ADDR: {self.regs.ERROR_ADDR_HI.val:#x}:{self.regs.ERROR_ADDR_LO.val:#x}")
341340
# self.regs.ERROR.val = 0xffffffff
342341

343-
# def invalidate_streams(self, streams=0xffffffff):
344-
# self.regs.STREAM_SELECT.val = streams
345-
# self.regs.STREAM_COMMAND.val = R_STREAM_COMMAND(INVALIDATE=1)
346-
# while self.regs.STREAM_COMMAND.reg.BUSY:
347-
# pass
342+
def invalidate_streams(self, streams=0xffff):
343+
for sid in range(256):
344+
if streams & (1 << sid):
345+
self.regs.TLB_OP.val = R_TLB_OP(STREAM=sid, OP=1)
346+
while self.regs.TLB_OP.reg.BUSY:
347+
pass
348348

349349
def invalidate_cache(self):
350350
self.pt_cache = {}

0 commit comments

Comments
 (0)