# No CONFIG_HIGHMEM on amd64?

## meulie

Hi all!

Is there no CONFIG_HIGHMEM on amd64?

My system has 4GB, but doesn't seem to have access to all of it:

From dmesg:

```
Memory: 3345500k/3405376k available (3136k kernel code, 59208k reserved, 1644k data, 236k init)
```

and

```
free -o -t

             total       used       free     shared    buffers     cached

Mem:       3346048    3187424     158624          0     318652    1701824

Swap:            0          0          0

Total:     3346048    3187424     158624
```

If CONFIG_HIGHMEM is not used by 64bit systems, then how do I get my full 4GB in Linux?

----------

## i92guboj

 *meulie wrote:*   

> Hi all!
> 
> Is there no CONFIG_HIGHMEM on amd64?
> 
> My system has 4GB, but doesn't seem to have access to all of it:
> ...

 

On 64 bits systems you can address all that memory and much more without any ugly tricks. So, all your memory should be visible.

So, you should check:

1.- that you are efectively running and amd64 kernel, and not a 32 bits one

2.- that your bios is not mapping the memory in some weird way for one or anotehr reason

3.- that your video card is not an integrated video card with shared memory, in this case, the portion of ram taken by the video card is not usable for any other purpose.

----------

## meulie

 *i92guboj wrote:*   

> 
> 
> So, you should check:
> 
> 1.- that you are efectively running and amd64 kernel, and not a 32 bits one
> ...

 

#1: Yup. uname -m gives me x86_64

#2: Hmm, that I'd have to verify when I am physically at the machine again and have a chance to reboot it...

(Or can I see this without having to reboot the machine?)

#3: The onboard GPU is a Intel GMA X3000, which is set to 8MB, if I remember correctly.

----------

## i92guboj

 *meulie wrote:*   

> 
> 
> #2: Hmm, that I'd have to verify when I am physically at the machine again and have a chance to reboot it...
> 
> (Or can I see this without having to reboot the machine?)
> ...

 

Not an easy task. There are few components in a linux system that can access the bios directly, and, as far as I know, none of them in userland. Anyway, even if you could, the read values would be totally meaningless unless you have a detailed specification or the sources for your BIOS firmware, I think.

In short: reboot needed  :Razz: 

----------

## meulie

Well, I checked on #2, and there is no mention of any memory mapping at all in the BIOS. My system is a AOpen EU965.

I've contacted their tech support and posted in their forums. Let's hope one of those yields an answer...    :Confused: 

----------

## meulie

Got a reply from AOpen:

After checked with BIOS RD, we got a result,

If your main memory <=4G, the memory address from 3G to 4G still reserved for PCI and some other onboard devices. No matter your OS is 32bit or 64bit.

The only way is add main memory more then 4G, but this is not working at this product. Due to this product had 2 memory slot only.

Looks liked I'm boned (for now)...    :Crying or Very sad: 

----------

## Cyker

Check for info in the BIOS that talks about memory holes or something like that (Not 15-16MB memory holes, but 4GB one).

My A8N32SLI has options for Continuous and Discreet, and apparently you need to play around with these to get access to higher RAM.

Also, some motherboards just won't acknowledge the existance of >4GB RAM at all  :Sad: 

To be sure, you'd need at least something with an AM2 socket or whatever the later Core2 Duo socket was.

Most 939-socket-era mobos just can't deal with >4GB at all...

----------

## meulie

I've checked for that before... No options whatsoever available in the BIOS...

And as you can see, AOpen confirms that there is currently no option for the EU965.

(I got a Q6600 CPU, so that's a recent system for sure...)   :Wink: 

----------

