Re: Current kernel with http://gnats.netbsd.org/39965 and pmap patches
"T. Makinen" <[email protected]>
| Newsgroups | gmane.os.netbsd.ports.atari |
|---|---|
| Message-ID | <[email protected]> |
On Thu, Dec 18, 2008 at 4:16 PM, Izumi Tsutsui <[email protected]> wrote: > [email protected] wrote: > >> Thanks for the patch. I applied it and tested with 030, but unfortunately kernel >> panics right after it has loaded installer to ram disk with: > > Ok, I was actually confused. > Now I think current Sysptmap code is correct. > > - 4KB/page systems require 4MB address space for page tables > to handle whole 4GB address space. > > - 8KB/page systems require 2MB PT pages to handle 4GB range. > > - Sysptmap should be mapped as a part of Sysmap in pmap code. > > - On 4KB page systems, Sysmap is allocated at 0xffc00000 > and its range is from 0xffc00000 to 0xffffffff, > so Sysptmap_pa should be mapped at the end of KVA. > > - On 8KB/page systems, Sysmap is allocated at > 0xff000000 (-PAGE_SIZE * NPTEPG) so its range is from > 0xff000000 to 0xff1fffff, i.e. there is some unused region. > This means Sysptmap_pa should be registered in > the PTE entry at &((pt_entry_t *)Sysptmap)[256 - 1], > not at [NPTEPG - 1] which 4KB/page systems use. > > Maybe we should replace some NPTEPG macro (that is actually TIB_SIZE) > with TIA_SIZE, which the "256" means. Thanks for good explanation! I'm totally new to pmap and I guess I'm just starting to be confused ;). Anyway I splitted atari/atari/pmap.c to two files: atari/atari/pmap.c and atari/atari/pmap_bootstrap.c. I think it's better that way and it's easier to test m68k and Atari specific pmap's. Here's link to new patch (includes also atari/include/vmparam.h, /atar/conf/ files.conf and atari/atari/pmap_bootstrap.c): http://koti.welho.com/tmakinen/atari/pmap-sync3.diff > Anyway, I'll try to see if there is more possible pitfall > for 8KB page systems in m68k pmap code... I tried kernel with m68k/m68k/pmap_motorola.c and it failed with 030 as well. Kernel prints following error: panic: pool_put: buf8k: page header missing. Maybe this is indicator that there's something wrong with 8KB page systems ? -Tuomo