Suspicious physical memory map from BIOS
jhb at freebsd.org
Mon Sep 22 22:29:36 UTC 2008
On Sunday 21 September 2008 11:08:27 pm questions wrote:
> 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.
More information about the freebsd-ia32