Port-m68k archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: New pmap module for m68k
thorpej@ wrote:
> In the evenings over the last couple of weeks I've been working on a new pmap module
> for the m68k ports. The intention is to address the fundamental limitations of the
> classical Hibler pmap (pmap_motorola.c) with regard to the 68040. The new module
> has a completely different page table management strategy and natively works with
> the 3-level table configuration of the 68040 while also natively working with
> he mandatory 2-level configuration imposed by the HP MMU found in the HP 9000/320
> and 9000/350.
Great news in 2025! (as a person who cleaned up each MD pmap_bootstrap.c to support
both 8KB/4KB settings per PGSHIFT settings..)
> Some work will be required to integrate this with other m68k ports, pmap_bootstrap1()
> specifically needs to gain some additional capabilities to make it per-platform
> adaptable (I do *not* want to end up with a separate copy per port).
> The Amiga and Atari ports are going to be a heavier lift because they're odd-ball
> in their early bootstrap compared to the others.
One question: do you have any idea how to enable MMU on ports VA!=PA, like
hp300 (as you know) and next68k (currently using TT0 mapping to handle it)?
It looks virt68k/locore.s still has the following comments:
```
/*
* Enable the MMU.
* Since the kernel is mapped logical == physical, we just turn it on.
*/
```
I guess a special page which is PA==VA (I have not checked details of pmap_68k.c yet).
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..
> 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.
I can try (and hopefully help) the following machines here:
news68k: NWS-1750 (68030, PA==VA, using TT mappings, L2 PA cache)
hp300: 319C, 330 (68020/68851)
320 (68020 HP MMU)
(320 and 319C/330 requires "RAS instead of CAS" patch, maybe due to 16 bit bus RAMs)
https://github.com/NetBSD/src/compare/trunk...tsutsui:netbsd-src:hp300-ras-instead-of-cas
340, 360, 362, 370 (68030)
380, 382, 425t (68040)
(PA!=VA on all machines)
mac68k: LC630 (MC68LC040, PA==VA?)
atari: TT030 (68030, PA==VA and PA!=VA in case of "kernel relocation" during bootstrap)
Milan (68040, PA==VA)
x68k: X68030 (68030, PA==VA) (pkgsrc/emulators/nono will also help)
luna68k: LUNA (68030, PA==VA, using TT mappings) (also works on nono)
LUNA-II (68040, PA==VA, using TT mappings)
next68k: NeXT stations (68040, PA!=VA IIRC)
---
Izumi Tsutsui
Home |
Main Index |
Thread Index |
Old Index