Windows XP only sees 2GB RAM w/ 4G installed

Page 2 - Seeking answers? Join the AnandTech community: where nearly half-a-million members share solutions and discuss the latest tech.

OneWingedAngel42

Junior Member
Apr 17, 2009
17
0
0
The BIOS, like I said the 'lost' memory is aligned to certain values which are rounded up to regardless of the real amount of address space required.

So if there are no BIOS options for me to modify this value, I'm SOL? Because there aren't any that I can find.
Is there some name for this BIOS function, so i know what to search for or ask MSI about? Is there anything else it could possibly be? It seems like it would be a pretty big bug/screwup to configure a mobo to assign its memory addressing to hardware in 1G chunks.
 

Rebel44

Senior member
Jun 19, 2006
742
1
76
Originally posted by: OneWingedAngel42
The BIOS, like I said the 'lost' memory is aligned to certain values which are rounded up to regardless of the real amount of address space required.

So if there are no BIOS options for me to modify this value, I'm SOL? Because there aren't any that I can find.
Is there some name for this BIOS function, so i know what to search for or ask MSI about? Is there anything else it could possibly be? It seems like it would be a pretty big bug/screwup to configure a mobo to assign its memory addressing to hardware in 1G chunks.

Do you have latest BIOS?
 

Lorne

Senior member
Feb 5, 2001
873
1
76
On my MSI k9a2 w/4G I had to turn the memory hole on for it to see above the 2G mark.
Windoze sees 3.25G on at the desktop.
My MB has so many more control setting compared to what your manual shows but,,,
Durring BIOS posting what does it show, Or in the BIOS system info,,, If it shows less then 4G then BIOS is having issues, Could be a setting or bad memory, If it shows 4G then windoze is causing the so called fault.
 

OneWingedAngel42

Junior Member
Apr 17, 2009
17
0
0
The BIOS does show 4G on boot, and in the system information menu. I guess the question that I've been getting conflicting answers on now is, what allocates 32-bit addressing space, the BIOS/hardware, or the OS?
MSI MB support claims over and over that Windows is doing the addressing work, and since the BIOS shows 4G, it's a Windows thing.
Other people have made claims that imply that the BIOS does this addressing work, and Windows just works on what the BIOS tells it.

Does anyone have any thoughts on this? Either way I may be screwed, since my BIOS doesn't seem to have any memory hole or allocation settings, and I've not found, nor heard of any Windows settings that would affect this. Unless the allocation is done by the driver, so there may be something I can do there, or in the registry? Doubtful, but I'm willing to look at anything at this point. =(
 

Nothinman

Elite Member
Sep 14, 2001
30,672
0
0
The BIOS does show 4G on boot, and in the system information menu. I guess the question that I've been getting conflicting answers on now is, what allocates 32-bit addressing space, the BIOS/hardware, or the OS?
MSI MB support claims over and over that Windows is doing the addressing work, and since the BIOS shows 4G, it's a Windows thing.
Other people have made claims that imply that the BIOS does this addressing work, and Windows just works on what the BIOS tells it.

Technically both are right.

I'm not sure of the interaction between the BIOS and the hardware to setup the MMIO ranges but that is definitely the BIOS and the hardware's doing and Windows just deals with the memory map that it's given. If the BIOS says 4G then the hardware is recognized and it's done it's part. Whether what you're seeing is an alignment issue like I mentioned before I don't know, I haven't had to mess with any of that since I run Linux.

And MSI is right because it's Windows' crippled PAE that's limiting you to 2G. If you used an 32-bit OS that actually uses PAE or a 64-bit OS you'd see all 4G of memory.

Either way I may be screwed,

Since you pulled a card and the memory went up and you put it back and the memory went down, I'd say yea. You're pretty screwed if you wanna keep running XP32.
 

Lazlo Panaflex

Platinum Member
Jun 12, 2006
2,355
0
71
Hey man, just use this as an excuse to upgrade to a GTX 260/275 or a ATI 4890, and sell your old cards to recoup some of the costs. Problem solved ;)
 

OneWingedAngel42

Junior Member
Apr 17, 2009
17
0
0
And MSI is right because it's Windows' crippled PAE that's limiting you to 2G. If you used an 32-bit OS that actually uses PAE or a 64-bit OS you'd see all 4G of memory.
If PAE is to blame, should disabling Windows PAE workaround it? I only ask because that was one of the first things I tried, to no avail.

Hey man, just use this as an excuse to upgrade to a GTX 260/275 or a ATI 4890, and sell your old cards to recoup some of the costs. Problem solved
Haha, if money flowed like water, I would! That and I doubt anyone would want to buy an 8600GTS now =)
 

Lazlo Panaflex

Platinum Member
Jun 12, 2006
2,355
0
71
Originally posted by: OneWingedAngel42
And MSI is right because it's Windows' crippled PAE that's limiting you to 2G. If you used an 32-bit OS that actually uses PAE or a 64-bit OS you'd see all 4G of memory.
If PAE is to blame, should disabling Windows PAE workaround it? I only ask because that was one of the first things I tried, to no avail.

Hey man, just use this as an excuse to upgrade to a GTX 260/275 or a ATI 4890, and sell your old cards to recoup some of the costs. Problem solved
Haha, if money flowed like water, I would! That and I doubt anyone would want to buy an 8600GTS now =)

Heh...you never know, especially on ebay. & there's always Craigslist & the FS/FT forums, if you're feeling adventurous. Anyway, godspeed, bro.

LP

 

Nothinman

Elite Member
Sep 14, 2001
30,672
0
0
If PAE is to blame, should disabling Windows PAE workaround it? I only ask because that was one of the first things I tried, to no avail.

No, PAE is what's used on a 32-bit system to get access to memory above the 4G mark but XP32 is specifically written to ignore memory above 4G even if PAE is enabled. Essentially all PAE gets you on XP32 is DEP. If you were running Linux, Windows Server Enterprise, etc you would enable PAE to use that memory.
 

OneWingedAngel42

Junior Member
Apr 17, 2009
17
0
0
Well, fun! I guess this is as solved as it's going to get, as there's not much I can do to the BIOS or Windows.
Thanks all for the input and advice!
 

FireChicken

Senior member
Jun 6, 2006
620
0
0
I am have been having a similar issue. Is there any way to show/view where windows is specifically allocating memory address space? i.e. 1 gig for video cards, 1 gig for system, etc etc. There must be a way to tally up the memory address space somewhere?
 

Nothinman

Elite Member
Sep 14, 2001
30,672
0
0
I believe the Hardware Resources section of System Info in XP will give you a memory map.
 

ch33zw1z

Lifer
Nov 4, 2004
39,038
19,730
146
Windows shadows different hardware's RAM into system RAM, and can only address up to 3.5GB. Since you have 2x8600's with 256MB each, that will shave off 512. So your system should see 3GB. So unless you have other video devices in there, then you should see 3GB minus what the sound card has...and I seriously doubt the sound card has 1GB of RAM on it. What Service Pack is your install @?
 

Nothinman

Elite Member
Sep 14, 2001
30,672
0
0
Windows shadows different hardware's RAM into system RAM, and can only address up to 3.5GB. Since you have 2x8600's with 256MB each, that will shave off 512. So your system should see 3GB.

Pretty much all of that is wrong. XP32 can "see" up to 4G and the amount of I/O memory used by a device isn't directly related to the amount of memory on the card. They can be the same, but they don't have to be and they aren't always.
 

ch33zw1z

Lifer
Nov 4, 2004
39,038
19,730
146
Originally posted by: Nothinman
Windows shadows different hardware's RAM into system RAM, and can only address up to 3.5GB. Since you have 2x8600's with 256MB each, that will shave off 512. So your system should see 3GB.

Pretty much all of that is wrong. XP32 can "see" up to 4G and the amount of I/O memory used by a device isn't directly related to the amount of memory on the card. They can be the same, but they don't have to be and they aren't always.

In my experience, it's not wrong. I've never had a XP32 installation "see" up to 4GB. And oddly enough, it's always subtracted the exact amount of video memory I have from RAM. But hey, maybe it's just the products I buy that do all this or I just type random nonsense. I would love to see documentation on XP32 from Microsoft that explains just how all this does work. Maybe you could post some of that up?

edit, Nothinman: btw, not being defensive. I'd rather know what's up and be corrected than give people misinformation.
 

Nothinman

Elite Member
Sep 14, 2001
30,672
0
0
In my experience, it's not wrong. I've never had a XP32 installation "see" up to 4GB

That's because there's always some amount of addresses stolen by hardware, but if those addresses weren't required by the hardware you would get all 4G.

And oddly enough, it's always subtracted the exact amount of video memory I have from RAM. But hey, maybe it's just the products I buy that do all this or I just type random nonsense. I would love to see documentation on XP32 from Microsoft that explains just how all this does work. Maybe you could post some of that up?

I remember someone having a video card with 1G of memory on it but only like 256M taken, how that all works with the card and the drivers and the motherboard I have no idea.

The only thing you'll probably find from MS is docs saying that XP with SP2 and up will ignore physical memory above the 4G mark so any amount of BIOS play won't help you. The rest is all hardware setup so I doubt they want to start trying to document that, hell the hardware manufacturers are already having a hard enough time that they usually just say "get a 64-bit OS".
 

bigsnyder

Golden Member
Nov 4, 2004
1,568
2
81
One thing I haven't heard mention is your video drivers? Maybe updating these may help if that are not up to date already. I have two HD4850 512MB cards and XP sees 3GB. Your frustration is valid. If the video drivers don't correct it, it might be time to ditch those 8600s. You can easily get a video card for under $100 that will outperform them.
 

tcsenter

Lifer
Sep 7, 2001
18,801
471
126
Originally posted by: ch33zw1z
In my experience, it's not wrong. I've never had a XP32 installation "see" up to 4GB. And oddly enough, it's always subtracted the exact amount of video memory I have from RAM.
That's because people change the alleged maximum amount that Windows 32-bit client OS can utilize, in order for it to make sense to them or make it "jive" with their graphics card RAM. e.g. if you only get 3.25GB RAM, and your graphics card has 256MB, then the conclusion must be that the OS can only "see" a maximum of 3.25GB + 256MB = 3.5GB. In other cases, you're going to see this 'maximum OS seeable' figure magically increase to 3.75GB or decrease to 3.0GB, in order to make the numbers jive with the presumed 1:1 deduction for graphics RAM.

When in fact, the real formula for a 32-bit system is always "4096MB minus whatever address space is reserved for the hardware = maximum amount of RAM that will be exposed to the system."

The reason that Microsoft doesn't have much info on this is because the OS has nothing to do with it, except to define the upper limit. This is all ACPI (formerly PNP) BIOS and PCI specification stuff (e.g. PCI bus, PCI Bridge, PCI Express, etc.). The BIOS, chipset, and other system/device firmware that exists in PCI configuration space determines all of this, reserves address space to the hardware, then passes whatever is left to the OS. The OS just uses whatever the BIOS says it can have via system memory map.


 

ch33zw1z

Lifer
Nov 4, 2004
39,038
19,730
146
That's guys for clearing it up for me, I'm always willing to learn :) Now I know 4GB max, minus whatever.
 

OneWingedAngel42

Junior Member
Apr 17, 2009
17
0
0
I believe the Hardware Resources section of System Info in XP will give you a memory map
I'm not seeing any Hardware Resources tabs or buttons in the System control panel. Is it deep somewhere, or did you mean something in the MMC?

Also, possible interesting update. My system started blue-screening yesterday (a week after the new RAM went in), and it was always a core Windows driver, so MS recommended testing the memory. Memtest86 freezes up every time in about 2 seconds. If I swap the old RAM in, memtest runs fine. Sounds like I got bad RAM. I'm RMA'ing it now, but I was wondering if bad RAM might possibly have caused what I was seeing?
 

tcsenter

Lifer
Sep 7, 2001
18,801
471
126
Run MSINFO32 (System Information), expand the hardware category, then click "Memory", as shown here:

http://s89934018.onlinehome.us/images/msinfo32.png

From the file menu, click Export (make sure "Memory" is selected else you'll be exporting a lot of information that you don't care about) and save to a text file. This shows you the memory map in hex, which can be converted to decimal (unless you can think in hex).

If you want to see a better organized break-down, open Device Manager and select View Resources by Connection from the View menu. Expand the Memory category, then further expand each collapsed device tree, which should give you something like this:

http://s89934018.onlinehome.us/images/byconn.png

It could be a bum module, but if not, then its either a motherboard BIOS or VGA BIOS issue. You can check if MSI has released any VGA BIOS updates using the MSI LiveUpdate utility:

http://download2.msi.com/files...uti_exe/LiveUpdate.zip
 

FireChicken

Senior member
Jun 6, 2006
620
0
0
How do you add those up to see actually how much memory is allocated to what addresses. I would like to be able to see how much memory each component is getting to see if there is a disconnect somewhere.

 

tcsenter

Lifer
Sep 7, 2001
18,801
471
126
First hex number is the ending byte, second is the starting byte (working from top of memory down). You subtract ending byte from starting byte to get how many bytes are reserved to each device. e.g.

0xFFFF0000 - 0xFFFFFFFF System Board

0xFFFF0000 = 4294901760

0xFFFFFFFF = 4294967295

Thus, 0xFFFF0000 - 0xFFFFFFFF = 65535 bytes

If you start Windows Calculator, switch the view to scientific, change the mode to HEX (Qword or Dword), you can work with the hex numbers as-is. e.g.

Copy 0xFFFFFFFF and paste it into calc, press the subtract (-) button, copy 0xFFFF0000 and paste, then press the equal button. The result should be FFFF. Just change the mode to DEC, it will automatically convert FFFF to 65535.

Calc will drop the 0x part because its not needed. e.g. 0xFFFF is the same as FFFF