Port-atari archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: Current kernel with http://gnats.netbsd.org/39965 and pmap patches



On Thu, Dec 18, 2008 at 4:16 PM, Izumi Tsutsui 
<tsutsui%ceres.dti.ne.jp@localhost> wrote:
> tjamaloo%gmail.com@localhost 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


Home | Main Index | Thread Index | Old Index