Re: New pmap module for m68k

Jason Thorpe <[email protected]> Sun, 9 Nov 2025 14:37:41 -0800
Newsgroups gmane.os.netbsd.ports.m68k
Message-ID <[email protected]>

> On Nov 9, 2025, at 12:07=E2=80=AFPM, Izumi Tsutsui =
<[email protected]> wrote:
>=20
> One question: do you have any idea how to enable MMU on ports VA!=3DPA, =
like
> hp300 (as you know) and next68k (currently using TT0 mapping to handle =
it)?

Well, for now, it=E2=80=99s all still left to machine-dependent code in =
locore.s.  My plan for hp300 is to treat the MMU trampoline page the =
same way as a device page.  See below.

> I also wonder how "static I/O spaces (like INTIO on hp300)" should be =
mapped
> (i.e. how MD stuff in current pmap_bootstrap.c should be handled),
> but I guess this should be discussed in a separate thread..

My current thinking there is to have a table that gets instantiated if a =
port defines a CPP macro that provides the table=E2=80=99s contents.  =
The table would have:

=3D=3D> Variable where to stash the VA for the special range
=3D=3D> The PA for the special range
=3D=3D> Size of the special range
=3D=3D> Flags for the special range (fixed VA?  No-cache?  Maybe it=E2=80=99=
s always no-cache=E2=80=A6)

The table gets passed through once to allocate the VAs, then then again =
to actually insert the mappings.

That should be able to handle both the static I/O device ranges as well =
as the MMU trampoline page on hp300.  Eventually I might also make it =
possible to use a separate fixed VA for kernel_ptes[]; hp300 could =
benefit from that because it needs tables to map the end of the kernel =
address space for the MMU trampoline anyway, so putting kernel_ptes[] up =
there would probably save some PT pages (especially on small memory =
machines like the 320 & 350).

>> Definitely looking for help in this aspect, so drop me an email if =
you're interested
>> in helping with the effort and have hardware (or a decently =
functioning emulator)
>> that can be used for testing.
>=20
> I can try (and hopefully help) the following machines here:

I was kind of hoping you=E2=80=99d be able to :-).  I really need to =
spend some time getting Nono set up, as well.

-- thorpej