Re: 6.2-PRERELEASE/amd64 boot kernel.gz failes



On Thu, Sep 28, 2006 at 02:33:10AM +0400, Ruslan Ermilov wrote:
I can confirm this: RELENG_6 doesn't pxeboot when /boot/kernel/kernel
is gzipped. In my case, it hangs just after loading a loader.conf file.
I've also verified that loading gzipped kernels/modules works on
7-CURRENT/i386. So it's either loader vs. pxeboot issue (unlikely,
since pxeboot reuses the loader binary), or i386 vs. amd64 issue
(unlikely as well as amd64 reuses the i386 boot code), or more likely
because some changes were not MFCed. Perhaps this one:

: sobomax 2005-12-19 09:00:11 UTC
:
: FreeBSD src repository
:
: Modified files:
: sys/boot/i386/libi386 Makefile biosdisk.c biospnp.c biossmap.c
: i386_copy.c
: Log:
: Long-long time ago, when the trees were large and memory expensive amount of
: memory directly available to loader(8) and friends was limited to 640K on i386.
: Those times have passed long time ago and now loader(8) can directly access
: up to 4GB of RAM at least theoretically. At the same time, there are several
: places where it's assumed that malloc() will only allocate memory within
: first megabyte.
:
: Remove that assumption by allocating appropriate bounce buffers for BIOS
: calls on stack where necessary.
:
: This allows using memory above first megabyte for heap if necessary.
:
: Revision Changes Path
: 1.39 +3 -0 src/sys/boot/i386/libi386/Makefile
: 1.46 +10 -17 src/sys/boot/i386/libi386/biosdisk.c
: 1.10 +1 -1 src/sys/boot/i386/libi386/biospnp.c
: 1.4 +3 -2 src/sys/boot/i386/libi386/biossmap.c
: 1.11 +6 -22 src/sys/boot/i386/libi386/i386_copy.c

I'll narrow this down tomorrow if noone bites me while I sleep. :-)

Yes, this and the follow-up commit plus the following diff make
pxeboot work with gzipped files.

%%%
Index: i386/loader/main.c
===================================================================
RCS file: /home/ncvs/src/sys/boot/i386/loader/main.c,v
retrieving revision 1.37
diff -u -r1.37 main.c
--- i386/loader/main.c 4 Aug 2006 07:56:32 -0000 1.37
+++ i386/loader/main.c 28 Sep 2006 09:06:02 -0000
@@ -91,7 +91,7 @@
*/
bios_getmem();

-#ifdef LOADER_BZIP2_SUPPORT
+#if 1
heap_top = PTOV(memtop_copyin);
memtop_copyin -= 0x300000;
heap_bottom = PTOV(memtop_copyin);
%%%

Here's the loader "heap" command output on the same machine:

: 6.x /boot/loader (unpatched):
: OK heap
: Active Allocations: 803/2173
: 274432 bytes reserved 194432 bytes allocated
: 65 fragments (30016 bytes fragmented)
: heap base at 0x404c0, top at 0x834c0
:
: 7.x pxeboot loader (unpatched):
: OK heap
: Active Allocations: 896/2209
: 229376 bytes reserved 196728 bytes allocated
: 71 fragments (18992 bytes fragmented)
: heap base at 0x404c0, top at 0x784c0, upper limit at 0x9fc00
:
: 7.x pxeboot loader (patched):
: OK heap
: Active Allocations: 896/2209
: 229376 bytes reserved 196728 bytes allocated
: 71 fragments (18992 bytes fragmented)
: heap base at 0xfbce6000, top at 0xfbd1e000, upper limit at 0xfbfe6000


Cheers,
--
Ruslan Ermilov
ru@xxxxxxxxxxx
FreeBSD committer

Attachment: pgpvHfNOSTx5x.pgp
Description: PGP signature



Relevant Pages

  • FreeBSD 5.3/5.4 - pxeboot hosting on em0 Intel 82540EM
    ... Netboot and Installing FreeBSD over em0 GigE link ... TFTP server or NFS server that is hosted on machine with an Intel ... pxeboot comes over, loader comes over, but the ... (BTW - the pxeboot documentation needs some correction for the 5.4 ...
    (freebsd-questions)
  • Re: PXE booting 7.0-R
    ... but if you want to use tftp instead of nfs you should make your pxeboot and loader using tftp enable to do this you can read this article: ... I'm trying to PXE boot 7.0-RELEASE, but it stops at a time. ... BIOS drive C: is disk0 ...
    (freebsd-questions)
  • Re: pxeboot looping
    ... The box load pxeboot via TFTP prints a few lines of ... Relocating the loader and the BTX ... Starting the BTX loader ... I'm stumped - I thought it might be a cpu issue (the Soekris is a 486 ...
    (freebsd-questions)
  • Re: pxeboot looping
    ... The box load pxeboot via TFTP prints a few lines of ... Relocating the loader and the BTX ... Starting the BTX loader ... I'm stumped - I thought it might be a cpu issue (the Soekris is a 486 ...
    (freebsd-questions)
  • Re: "linker" for Merlin
    ... but to execute code at run time to essentially dynamically ... link the separately assembled components. ... version of Merlin and wrote such a linking loader. ... placed into non-overlapping memory locations (like Jim Butterfield's ...
    (comp.sys.apple2.programmer)