kernel memory checks on boot vs. boot time
olli at lurza.secnetix.de
Wed Mar 23 20:51:14 UTC 2011
Alexander Best wrote:
> On Wed Mar 23 11, Oliver Fromme wrote:
> > Alexander Best wrote:
> > > just as a side note: booting a kernel directly from boot stage 2 is broken on
> > > amd64. :( so there's no way around using the boot loader, which will cost extra
> > > time (even with autoboot_delay=0).
> > >
> > > so was the adbility to boot a kernel directly from boot2 abandoned? i heard
> > > reports it still works under i386. dunno about the other archs.
> > The loader checks the type of the kernel binary (i386 vs
> > amd64). In case of amd64, it enables "long mode", among
> > other things. This is required for amd64, because the
> > kernel expects to be started in long mode. boot2 doesn't
> > do that, so you can't start an amd64 kernel directly from
> > boot2.
> hmm...i can't seem to find the location in loader/main.c. could you pinpoint
> me to the exact location? this is something i'd *really* like to try in amd64.
The actual code is in sys/boot/i386/libi386/amd64_tramp.S
which is called from sys/boot/i386/libi386/elf64_freebsd.c
(see the elf64_exec() function), which in turn is called
indirectly via a method of a struct file_format from the
Beware, I don't know if this is the *only* thing preventing
boot2 from booting an amd64 kernel. There might be more.
I haven't tried booting FreeBSD without the boot loader in
a long time. Probably not in this century.
Oliver Fromme, secnetix GmbH & Co. KG, Marktplatz 29, 85567 Grafing b. M.
Handelsregister: Registergericht Muenchen, HRA 74606, Geschäftsfuehrung:
secnetix Verwaltungsgesellsch. mbH, Handelsregister: Registergericht Mün-
chen, HRB 125758, Geschäftsführer: Maik Bachmann, Olaf Erb, Ralf Gebhart
FreeBSD-Dienstleistungen, -Produkte und mehr: http://www.secnetix.de/bsd
"I made up the term 'object-oriented', and I can tell you
I didn't have C++ in mind."
-- Alan Kay, OOPSLA '97
More information about the freebsd-arch