<a href="https://github.com/antonblanchard/microwatt/blob/master/mmu.vhdl">https://github.com/antonblanchard/microwatt/blob/master/mmu.vhdl</a><div><a href="https://git.libre-soc.org/?p=soc.git;a=blob;f=src/soc/decoder/isa/radixmmu.py;hb=HEAD">https://git.libre-soc.org/?p=soc.git;a=blob;f=src/soc/decoder/isa/radixmmu.py;hb=HEAD</a><br></div><div><br></div><div>we&#39;re implementing the microwatt RADIX MMU in the python-based simulator so that we can do single-step comparisons of LibreSOC (and microwatt, later).</div><div><br></div><div>we&#39;re having some difficulty determining how it works, given that it is a FSM that jumps to different locations.  in particular we are unable to determine what SEGMENT_CHECK is for, and what checking the top bit of the address is meant to do, when selecting pte0 or 3.</div><div><br></div><div>this *should* be identical to power-gem5 radixmmu but is not, because they implemented hypervisor in full.</div><div><br></div><div>is there some resource around which could help us work out the sequence of events, or could someone kindly help review radixmmu.py above?</div><div><br></div><div>l.</div><div><br></div>