Date: Mon, 22 Sep 2008 18:06:25 -0400 From: John Baldwin <jhb@freebsd.org> To: freebsd-ia32@freebsd.org Subject: Re: Suspicious physical memory map from BIOS Message-ID: <200809221806.25680.jhb@freebsd.org> In-Reply-To: <db346c9d0809212008g3132507cs2bf9731d7583b467@mail.gmail.com> References: <db346c9d0809200510x681bc4f6i5f11a067a40dcbbb@mail.gmail.com> <db346c9d0809212008g3132507cs2bf9731d7583b467@mail.gmail.com>
next in thread | previous in thread | raw e-mail | index | archive | help
On Sunday 21 September 2008 11:08:27 pm questions wrote: > Hi, > > I am sorry if this isn't the correct mailing list to ask my question. > Actually, I posted this on freebsd-questions list but didn't get any reply. > I couldn't find any better mailing list to post this question on. > > I have some problem with physical memory being getting reported incorrectly > on Freebsd 6.3. I have a Xeon series 5300 CPU with 4GB of RAM installed but > BIOS call actually returns following usable physical memory map - > > base address = 0, length = 640K > base address = 1M, length = 2.5G > base address = 4G, length = 5.5G > > How am I getting this third segment? The 2.5g -> 4g window of address space is used for non-memory things like APICs (local APICs and I/O APICs), PCI memio, etc. > Also, in function getmemsize() in machdep.c, why the variable 'Maxmem' is > set to 'Maxmem*4' when hw.physmem and the > highest page number obtained from physical memory map don't match? It's not set to that, it is used for a printf. Maxmem is a count of pages. Each page on i386 holds 4K. The printf wants to print out the number of kilobytes, so it uses 'Maxmem * 4' to convert from number of 4k pages, to number of K. -- John Baldwin
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200809221806.25680.jhb>