Subject: Re: Map kernel as sections
To: None <rjs@fdy2.demon.co.uk>
From: John Fremlin <vii@users.sourceforge.net>
List: port-arm
Date: 06/05/2001 18:28:36
Robert Swindells <swindellsr@genrad.com> writes:
> >Ah, but not the whole kernel as sections. That is what I did (mapping
> >a bit more of non-kernel physical memory as well because the kernel
> >doesn't fit exactly), without a kernel page table at all, and the boot
> >process stopped after telling me how many buffers I had.
>
> If you define VERBOSE_INIT_ARM for the code in arch/arm32/machdep.c
> you will see that the first 1MB of the kernel is mapped as a
> section, followed by several 64kB pages, then by a few 4kB pages.
[Depending very much on where your kernel is located and its size. My
kernel is still < 1 Mb IIRC. Further, I have no access to a riscpc
;-)]
> All of the things that are declared in the l1_sec_table are mapped
> as sections too.
>
> >When I map the kernel (and a bit more) as pages, including mapping
> >the pagetable in the pagetable area, it gets much further down -
> >all the way to "psionwbus0 at mainbus0rtc0 at psionwbus0 addr
> >xxx-xxx" (whoops missed a newline somewhere)
>
> Very nice. The standard code isn't broken though.
Indeed. As long as there is a pagetable mapped into the ptpt, it
doesn't matter whether the kernel is mapped as a section or not :-)
> Why not get your port working first, then rewrite the pmap code.
Hehe. Lack of ambition :-)
[...]
> I had a look at rpc_machdep.c after your first mail yesterday. I
> couldn't see much that could be left out.
Not left out exactly but designed better.
rpc_machdep is about 2000 lines, my version is 512. Of course, a lot
of the cruft in rpc_machdep is ifdefd or commented out, or is necessary
for compatibility.
--
http://ape.n3.net