Subject: Re: Heads up: shared arm include files
To: Mike Pumford <mpumford@black-star.demon.co.uk>
From: Chris Gilbert <chris@buzzbee.freeserve.co.uk>
List: port-arm32
Date: 01/13/2001 01:13:45
On Friday 12 January 2001 11:44 pm, Mike Pumford wrote:
> > On Fri, 12 Jan 2001, Chris Gilbert wrote:
> > I think that means that the ubc_object is too big, so you haven't got
> > enough kernel VM for it. I ran into this problem on arm32 (which has
> > very little VM space) and fixed it by forcing UBC_NWINS to be fairly
> > small. I don't feel this should happen on arm32 since you've got 4GB of
> > address space to play with, though the Risc PC port does insist on only
> > having 48MB of that available for the kernel's use (KERNEL_VM_SIZE in
> > <machine/vmparam.h>).
Yep that fixed it, I also shrank the UBC_NWINSIZE to half it's size.
> I wonder if the tiny amount of kernel vm space is the reason why my current
> kernel has fork failures while trying to go multi-user. I wonder why the
> kernel is restricting itself to such a tiny space. On i386 the kernel
> starts at 0xc0000000 which gives much more headroom for buffers and other
> KVM structures. I guess the only thing to do is to start digging at the
> initarm code to rearrange the kernel VM space. I wonder what the boot time
> implications of changing this are?
Yep, the kernel goes in at 0xf0000000. We then have vm space from 0xf1000000
to 0xf5000000. I think that then it's the VIDC memory and the IOMD/VIDC
chips. Note I'm looking over the code, we've got some defines that aren't
relative to the base addr's in the headers (not a hard thing to change, but I
want to check them with docs, but arm.com doesn't want to give me any docs
(or it didn't with lynx of chimera, I've still not got a decent www browser
in i386 until I get mozilla compiled up.
Note that shark and cats have higher amounts of VM, as they've less things in
the map above them.
I'd certainly say we should be able to shift things down in the memory map.
I'd quite like to be able to document the memory map for the kernel (or is it
doc'd somewhere already?)
Cheers,
Chris