Date: Tue, 6 Nov 2007 09:23:55 +0800 From: "Rong-en Fan" <grafan@gmail.com> To: amd64@freebsd.org Subject: Re: panic: no BIOS SMAP info from loader Message-ID: <6eb82e0711051723g20ef2ee0qb8f030601542f8ad@mail.gmail.com> In-Reply-To: <200711021403.04716.jhb@freebsd.org> References: <6eb82e0711010634x5f70e974i78c505d8eda24223@mail.gmail.com> <200711011327.27953.jhb@freebsd.org> <6eb82e0711011841q111fd701sa982c0e7a7f136df@mail.gmail.com> <200711021403.04716.jhb@freebsd.org>
next in thread | previous in thread | raw e-mail | index | archive | help
On Nov 3, 2007 2:03 AM, John Baldwin <jhb@freebsd.org> wrote: > > On Thursday 01 November 2007 09:41:09 pm Rong-en Fan wrote: > > On 11/2/07, John Baldwin <jhb@freebsd.org> wrote: > > > On Thursday 01 November 2007 09:34:22 am Rong-en Fan wrote: > > > > I have a HP dc7000 box, booting with i386 is fine, but not > > > > amd64. It panics as soon as loader loads kernel. The console > > > > snapshot is at > > > > > > > > http://www.flickr.com/photos/rafan/1814155320/ > > > > > > > > under loader prompt, 'smap' shows nothing for both i386 > > > > and amd64. But i386 works well. I looked at archive, it > > > > seems there are several reports, but no solution. BTW, the boot > > > > cd I used is 7.0-BETA1.5. > > > > > > Does Linux find an SMAP? Right now FreeBSD/amd64 requires an SMAP. > > > > I'm not sure if I get this right, on Linux it shows > > > > BIOS-provided physical RAM map: > > BIOS-e820: 0000000000000000 - 000000000009fc00 (usable) > > BIOS-e820: 000000000009fc00 - 00000000000a0000 (reserved) > > BIOS-e820: 00000000000e8000 - 0000000000100000 (reserved) > > BIOS-e820: 0000000000100000 - 00000000defafe00 (usable) > > BIOS-e820: 00000000defafe00 - 00000000defb1ea0 (ACPI NVS) > > BIOS-e820: 00000000defb1ea0 - 00000000e0000000 (reserved) > > BIOS-e820: 00000000f4000000 - 00000000f8000000 (reserved) > > BIOS-e820: 00000000fec00000 - 00000000fed40000 (reserved) > > BIOS-e820: 00000000fed45000 - 0000000100000000 (reserved) > > BIOS-e820: 0000000100000000 - 000000021c000000 (usable) > > Ok, so Linux finds it. They use the same algo the loader uses, so I don't see > why this isn't working. :( You can try adding some debug printfs into > sys/boot/i386/libi386/biossmap.c where it calls the BIOS to fetch the SMAP. > You can also try disassembling your BIOS to see how it handles int 0x15 > ax=0xe820 to see if it is expecting something odd. Right after v86int(), it shows efl 243 eax 8600 ecx 0 edx 534d4150 es 3fa7 edi 4 As eax != SMAPSIG, it just quits the loop... It's obtained from 200704 i386 current snap. BTW, netbsd 3.1 amd64 boots just fine on the same box. But I forget to check whether it can see all memory or not. Regards, Rong-En Fan
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?6eb82e0711051723g20ef2ee0qb8f030601542f8ad>