m.d.comb += self.load_data.eq(d_out.data)
 
             with m.Case(State.MMU_LOOKUP):
+                '''
+                if m_in.done = '1' then
+                    if r.instr_fault = '0' then
+                        # retry the request now that the MMU has
+                        #installed a TLB entry
+                        req := '1';
+                        if r.last_dword = '0' then
+                            v.state := SECOND_REQ;
+                        else
+                            v.state := ACK_WAIT;
+                        end if;
+                    end if;
+                end if;
+                if m_in.err = '1' then
+                    exception := '1';
+                    dsisr(63 - 33) := m_in.invalid;
+                    dsisr(63 - 36) := m_in.perm_error;
+                    dsisr(63 - 38) := not r.load;
+                    dsisr(63 - 44) := m_in.badtree;
+                    dsisr(63 - 45) := m_in.rc_error;
+                end if;
+                '''
                 pass
+
             with m.Case(State.TLBIE_WAIT):
                 pass
             with m.Case(State.COMPLETE):