From 363b4860e1a506c55a8b692a979c8791c8cca02f Mon Sep 17 00:00:00 2001 From: Tobias Platen Date: Mon, 10 May 2021 19:23:19 +0200 Subject: [PATCH] LoadStore1: add rules for MMU_LOOKUP --- src/soc/fu/ldst/loadstore.py | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/soc/fu/ldst/loadstore.py b/src/soc/fu/ldst/loadstore.py index 5eb42eae..9857c60f 100644 --- a/src/soc/fu/ldst/loadstore.py +++ b/src/soc/fu/ldst/loadstore.py @@ -201,6 +201,18 @@ class LoadStore1(PortInterfaceBase): m.d.comb += self.load_data.eq(d_out.data) with m.Case(State.MMU_LOOKUP): + with m.If(l_out.done): + with m.If(self.instr_fault==0): + # retry the request now that the MMU has + # installed a TLB entry + sync += self.state.eq(State.ACK_WAIT) + with m.If(l_out.err): + sync += self.dsisr[63 - 33].eq(l_out.invalid) + sync += self.dsisr[63 - 36].eq(l_out.perm_error) + sync += self.dsisr[63 - 38].eq(self.load) + sync += self.dsisr[63 - 44].eq(l_out.badtree) + sync += self.dsisr[63 - 45].eq(l_out.rc_error) + ''' if m_in.done = '1' then # actually l_out.done if r.instr_fault = '0' then -- 2.30.2