good grief, finally tracked down a piece of missing code in the MMU
authorLuke Kenneth Casson Leighton <lkcl@lkcl.net>
Sun, 26 Dec 2021 18:52:29 +0000 (18:52 +0000)
committerLuke Kenneth Casson Leighton <lkcl@lkcl.net>
Sun, 26 Dec 2021 18:52:29 +0000 (18:52 +0000)
commitee968003538a61efa11a4354512a03b5986295b5
treeae81ee6d200afc8405c823ce2bddacc4d167fa60
parentb2ab8f6fd3084473db8efda18261780704764fcc
good grief, finally tracked down a piece of missing code in the MMU
address-shift had somehow not been included
@@ -509,6 +523,10 @@ class MMU(Elaboratable):
         comb += tlb_mask.shift.eq(r.shift)
         comb += finalmask.eq(tlb_mask.mask)

+        # Shift address bits 61--12 right by 0--47 bits and
+        # supply the least significant 16 bits of the result.
+        comb += addrsh.eq(r.addr[12:62] << r.shift)
+

microwatt mmu.bin test 2 should now succeed
src/soc/experiment/mmu.py
src/soc/experiment/radix_walk_example.txt
src/soc/experiment/test/pagetables.py