Suspicious physical memory map from BIOS

View: New views
2 Messages — Rating Filter:   Alert me  

Parent Message unknown Suspicious physical memory map from BIOS

by questions-6 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

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?
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?

Any help with this would be wonderful.

Thanks,
Fahad
_______________________________________________
freebsd-ia32@... mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-ia32
To unsubscribe, send any mail to "freebsd-ia32-unsubscribe@..."

Re: Suspicious physical memory map from BIOS

by John Baldwin :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

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
_______________________________________________
freebsd-ia32@... mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-ia32
To unsubscribe, send any mail to "freebsd-ia32-unsubscribe@..."