Date: Tue, 31 Mar 2015 11:26:55 +0800 From: Marcelo Araujo <araujobsdport@gmail.com> To: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com> Cc: freebsd-xen <freebsd-xen@freebsd.org> Subject: Re: Unable to load multiboot kernel. Message-ID: <CAOfEmZjOd7_dPxo40mykJ6MAdqf1OBPqmhOt%2BjQpPfNPL47Q%2BQ@mail.gmail.com> In-Reply-To: <551985BB.6050706@citrix.com> References: <CAOfEmZgT9nyJfEe5Z39qT9OSWkAa9RVY4xs0b4CjqN=3JJUU1A@mail.gmail.com> <55196D2F.8040203@citrix.com> <CAOfEmZh9ypr6qM4RqmxAZvghmOtUR=uoAHkWjMCOzeNmuZJTOg@mail.gmail.com> <551985BB.6050706@citrix.com>
next in thread | previous in thread | raw e-mail | index | archive | help
2015-03-31 1:19 GMT+08:00 Roger Pau Monn=C3=A9 <roger.pau@citrix.com>: > Hello, > > El 30/03/15 a les 18.45, Marcelo Araujo ha escrit: > > Hello Roger, > > > > Thanks for the prompt reply and for the patch. > > > > I made a test and now we have a bit more of information. Seems the > problem > > is because the kernel is too large. > > > > OK load /boot/kernel/kernel > > /boot/kernel/kernel Trying to load a RAW file at 0x80001000 Error readi= ng > > /boot/kernel/kernel: file too large > > Unable to load /boot/kernel/kernel as a multiboot payload kernel > > can't load file '/boot/kernel/kernel': invalid argument. > > > > Here is the size of my kernel: > > root@e550:/usr/src/sys/boot # du /boot/kernel/kernel > > 12885 /boot/kernel/kernel > > Mmmm, that's smaller than mine and should load without problems: > > # du /boot/kernel/kernel > 21537 /boot/kernel/kernel > > I think the problem might be that your BIOS is not correctly reporting > the extended memory size, or that the loader is not fetching it > properly. Can you try the following patch to see which values you get? > On one of my boxes that is able to load FreeBSD/Xen I get: > > bios_extmem: 0xd75d8000 memtop_copyin: 0xd76d8000 memtop: 0xd76d8000 > > You can apply the patch on top of the previous one, or standalone, as > you wish. > > Roger. > > --- > diff --git a/sys/boot/i386/libi386/i386_copy.c > b/sys/boot/i386/libi386/i386_copy.c > index 3c05241..4d62282 100644 > --- a/sys/boot/i386/libi386/i386_copy.c > +++ b/sys/boot/i386/libi386/i386_copy.c > @@ -67,6 +67,8 @@ i386_readin(const int fd, vm_offset_t dest, const size_= t > len) > { > > if (dest + len >=3D memtop_copyin) { > + printf("bios_extmem: 0x%x memtop_copyin: 0x%x memtop: 0x%x\n", > + bios_extmem, memtop_copyin, memtop); > errno =3D EFBIG; > return(-1); > } > > Hi Roger, Yes, seems my BIOS is not correctly reporting the extended memory size. The value that I got from my box is: bios_extmem: 0xff00000 memtop_copyin: 0x10000000 memtop: 0x10000000 I did check my BIOS if there is any suspicious options that may mess up with the memory, but I didn't find nothing. I will check if there is any new BIOS version. Do you have any other idea? Best Regards, --=20 --=20 Marcelo Araujo (__)araujo@FreeBSD.org \\\'',)http://www.FreeBSD.org <http://www.freebsd.org/> \/ \ ^ Power To Server. .\. /_)
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAOfEmZjOd7_dPxo40mykJ6MAdqf1OBPqmhOt%2BjQpPfNPL47Q%2BQ>