cvs commit: src/sys/boot/i386/boot2 boot2.c

John Baldwin jhb at FreeBSD.org
Mon Sep 20 11:14:23 PDT 2004


On Saturday 18 September 2004 06:08 pm, Poul-Henning Kamp wrote:
> In message <200409181659.48310.jhb at FreeBSD.org>, John Baldwin writes:
> >On Saturday 18 September 2004 03:08 am, Poul-Henning Kamp wrote:
> >> In message <200409180207.i8I27044010045 at repoman.freebsd.org>, John
> >> Baldwin writ
> >>
> >> es:
> >> >jhb         2004-09-18 02:07:00 UTC
> >> >
> >> >  FreeBSD src repository
> >> >
> >> >  Modified files:
> >> >    sys/boot/i386/boot2  boot2.c
> >> >  Log:
> >> >  A long, long time ago in a CVS branch far away (specifically, HEAD
> >> > prior to 4.0 and RELENG_3), the BTX mini-kernel used paging rather
> >> > than flat mode and clients were limited to a virtual address space of
> >> > 16 megabytes. Because of this limitation, boot2 silently masked all
> >> > physical addresses in any binaries it loaded so that they were always
> >> > loaded into the first 16 Meg.  Since BTX no longer has this limitation
> >> > (and hasn't for a long time), remove the masking from boot2.  This
> >> > allows boot2 to load kernels larger than about 12 to 14 meg (12 for
> >> > non-PAE, 14 for PAE).
> >>
> >> Does this also give us better space for isa_dma bounce buffers ?
> >
> >Err, I don't see how it could.  This only affects how boot2 handles
> > addresses in the executables it loads, it doesn't affect how the kernel
> > manages memory at all.
>
> it was the "so that they were always loaded into the first 16 Meg" that
> triggered a neuron here.
>
> We're seeing isa-dma bounce buffers getting hard to get hold of these
> days.

Humm, we've always loaded the kernel as low as possible, at least in the 3.x+ 
era.  3.x loaded it at 1MB IIRC, and with Bosko's changes to avoid the Intel 
PSE bug we switched to 4MB for non-PAE and 2MB for PAE (to avoid mapping the 
PSE page starting with physaddr of 0).  Also, the kernel is linked such that 
KERNBASE maps 1:1 from 0 to KERNLOAD and beyond.  If we wanted to move 
KERNLOAD up to, say, 16 MB, that would suck up a lot of KVA to do so.  
Perhaps we could make KERNBASE only map 1:1 for the first meg or so and then 
have it "jump" up to KERNLOAD for the second meg.  Peter might be a better 
person to ask.

-- 
John Baldwin <jhb at FreeBSD.org>  <><  http://www.FreeBSD.org/~jhb/
"Power Users Use the Power to Serve"  =  http://www.FreeBSD.org


More information about the cvs-src mailing list