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