Oliver Fromme wrote:
Hello,

I've got a small question regarding $subject.  I'm looking
at this code snippet from src/sys/boot/i386/loader/main.c:

#if defined(LOADER_BZIP2_SUPPORT) || defined(LOADER_FIREWIRE_SUPPORT)
    heap_top = PTOV(memtop_copyin);
    memtop_copyin -= 0x300000;
    heap_bottom = PTOV(memtop_copyin);
#else
    heap_top = (void *)bios_basemem;
    heap_bottom = (void *)end;
#endif
    setheap(heap_bottom, heap_top);

If I understand correctly, the boot loader will use only
low memory (i.e. below 0x100000) for malloc by default.
Extended memory is only used if bzip2 or firewire support
are enabled (not default).  Is this intentional?  Would it
make sense to toggle the default and always use extended
memory, unless disabled?

I'm asking because the upcoming graphics support requires
a little bit of memory for fonts and images, but there's
only less than about 80 KB left in low memory, which is
insufficient except for very trivial things.  The loader
kept crashing on me in nasty ways because of that.

In my p4 branch I modified the above #if to also use
extended memory if LOADER_GRAPHICS_SUPPORT is defined,
giving me 3 MB of memory to play with, which is plenty.
Is that OK, or should I expect trouble?

Any comments are appreciated.

Best regards
   Oliver


At present the amd64 kernel is loaded just above the first megabyte of physical memory. I have no idea if the loader uses malloc()/free() after the kernel is loaded though.

_______________________________________________
freebsd-hackers@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
To unsubscribe, send any mail to "[EMAIL PROTECTED]"

Reply via email to