2004-06-01 07:32:21

by Reg Clemens

[permalink] [raw]
Subject: Intel 875 Motherboard cant use 4GB of Memory.

Two questons really:

The BIOS of a Motherboard reports how much memory is available to a
user program (Linux) after reserving some memory 'for its own use'

What is this memory reserved for?

OK, now the subject of this note.
The Intel D875PZB motherboard has an error in its current BIOS.

With a single 1GB stick of memory inserted, it reserves 38MB (agan my
question: what for?) leaving most of the 1GB for the user.
With two 1GB sticks of memory inserted, it reserves 72MB
leaving the user most of the 2GB.

BUT with 4 1GB stick of memory inserted, it reserves 1.46GB
which has to be an arithmetic error, leaving the user only 2.6 or so.

So, my second question.
Is this space just 'gone' until (if?) INTEL fixes the BIOS, or is
there some way for Linux to 'get it back'.

I have a certain fear of setting 'mem=' not knowing what this
space is being used for...

--
Reg.Clemens
[email protected]



2004-06-01 19:57:37

by Reg Clemens

[permalink] [raw]
Subject: Re: Intel 875 Motherboard cant use 4GB of Memory.


> That could be PCI devices. Some (particularly high-end video cards)
> take up a lot of address space, which comes straight out of the available
> 4 GB physical address space.
>
> Check /proc/iomem.
>

OK, that leaves me more confused, and (to me) it still looks like a
BIOS problem rather than a greedy device. Here is the /proc/iomem
with some decimal annotations: (as noted, there is 4x1GB of memory installed)

---

00000000-0009fbff : System RAM
0009fc00-0009ffff : reserved
000a0000-000bffff : Video RAM area
000c0000-000ccfff : Video ROM
000f0000-000fffff : System ROM
00100000-ae62ffff : System RAM 1048576 - 2925723647
00100000-002a2fff : Kernel code
002a3000-003542ff : Kernel data
ae630000-ae64180f : ACPI Non-volatile Storage
ae641810-ae72ffff : System RAM
ae730000-ae73ffff : ACPI Tables
ae740000-ae7effff : ACPI Non-volatile Storage
ae7f0000-ae7fffff : reserved
ae800000-ae8003ff : 0000:00:1f.1 2927624192 - 2927625215
aeb00000-eeafffff : PCI Bus #01 2930769920 - 4004511743 <<
c0000000-cfffffff : 0000:01:00.1 3221225472 - 3489660927
d0000000-dfffffff : 0000:01:00.0 3489660928 - 3758096383
f0000000-f7ffffff : 0000:00:00.0 4026531840 - 4160749567
fecf0000-fecf0fff : reserved
fed20000-fed9ffff : reserved
ff800000-ff8fffff : PCI Bus #01 4286578688 - 4287627263
ff8e0000-ff8effff : 0000:01:00.1
ff8f0000-ff8fffff : 0000:01:00.0
ff900000-ff9fffff : PCI Bus #02
ff9e0000-ff9fffff : 0000:02:01.0
ff9e0000-ff9fffff : e1000
ffaffc00-ffafffff : 0000:00:1d.7
ffaffc00-ffafffff : ehci_hcd

---
and here is the lspci

00:00.0 Host bridge: Intel Corp. 82875P Memory Controller Hub (rev 02)
00:01.0 PCI bridge: Intel Corp. 82875P Processor to AGP Controller (rev 02)
00:03.0 PCI bridge: Intel Corp. 82875P Processor to PCI to CSA Bridge (rev 02)
00:1d.0 USB Controller: Intel Corp. 82801EB/ER (ICH5/ICH5R) USB UHCI #1 (rev
02)
00:1d.1 USB Controller: Intel Corp. 82801EB/ER (ICH5/ICH5R) USB UHCI #2 (rev
02)
00:1d.2 USB Controller: Intel Corp. 82801EB/ER (ICH5/ICH5R) USB UHCI #3 (rev
02)
00:1d.3 USB Controller: Intel Corp. 82801EB/ER (ICH5/ICH5R) USB UHCI #4 (rev
02)
00:1d.7 USB Controller: Intel Corp. 82801EB/ER (ICH5/ICH5R) USB2 EHCI
Controller (rev 02)
00:1e.0 PCI bridge: Intel Corp. 82801BA/CA/DB/EB/ER Hub interface to PCI
Bridge (rev c2)
00:1f.0 ISA bridge: Intel Corp. 82801EB/ER (ICH5/ICH5R) LPC Bridge (rev 02)
00:1f.1 IDE interface: Intel Corp. 82801EB/ER (ICH5/ICH5R) Ultra ATA 100
Storage Controller (rev
02)
00:1f.2 IDE interface: Intel Corp. 82801EB (ICH5) Serial ATA 150 Storage
Controller (rev 02)
00:1f.3 SMBus: Intel Corp. 82801EB/ER (ICH5/ICH5R) SMBus Controller (rev 02)
01:00.0 VGA compatible controller: ATI Technologies Inc RV350 AR [Radeon 9600]
01:00.1 Display controller: ATI Technologies Inc RV350 AR [Radeon 9600]
(Secondary)
02:01.0 Ethernet controller: Intel Corp. 82547EI Gigabit Ethernet Controller
(LOM)
03:01.0 Multimedia audio controller: Creative Labs SB Live! EMU10k1 (rev 0a)
03:01.1 Input device controller: Creative Labs SB Live! MIDI/Game Port (rev 0a)
[
---

This still isnt making much sense to me, so if somone can explain why I
can only see a little over 2/3 of the installed memory, I would appreciate
it.

And of course, the original question, any workarround?

---

Reg.Clemens
[email protected]



2004-06-01 20:12:40

by Valdis Klētnieks

[permalink] [raw]
Subject: Re: Intel 875 Motherboard cant use 4GB of Memory.

On Tue, 01 Jun 2004 13:56:34 MDT, [email protected] said:

> 00000000-0009fbff : System RAM
> 0009fc00-0009ffff : reserved
> 000a0000-000bffff : Video RAM area
> 000c0000-000ccfff : Video ROM
> 000f0000-000fffff : System ROM
> 00100000-ae62ffff : System RAM 1048576 - 2925723647
> 00100000-002a2fff : Kernel code
> 002a3000-003542ff : Kernel data
> ae630000-ae64180f : ACPI Non-volatile Storage

and thence a long list of other reserved stuff pretty much clear up to
ffffffff. So there may be 4G of physical memory in the box, but everything
above ae630000 or so is shadowed by something else using those memory
addresses.. and that's just about 1/3 of the address space...

> This still isnt making much sense to me, so if somone can explain why I
> can only see a little over 2/3 of the installed memory, I would appreciate
> it.

If you *were* to allocate a page at (for instance) ff8f0000, and then wrote to
it, who should get the write - the memory page or the device 0000:01:00.0 on
PCI Bus 1?

> And of course, the original question, any workarround?
There's 3 basic directions you can go: (1) find a way to disambiguate the
memory addresses so shadowing isn't a problem (probably not an option), (2a)
find a way to relocate the reserved stuff above the 4G address line (probably
need BIOS assistance for this), or (2b) find a way to relocate a gig and a half
or so of memory above the 4G linem or (3) Move to an architecture that isn't
constrained by 32-bit addresses...


Attachments:
(No filename) (226.00 B)

2004-06-02 09:56:25

by jurriaan

[permalink] [raw]
Subject: Re: Intel 875 Motherboard cant use 4GB of Memory.

From: [email protected] <[email protected]>
Date: Tue, Jun 01, 2004 at 04:10:56PM -0400
> There's 3 basic directions you can go: (1) find a way to disambiguate the
> memory addresses so shadowing isn't a problem (probably not an option), (2a)
> find a way to relocate the reserved stuff above the 4G address line (probably
> need BIOS assistance for this), or (2b) find a way to relocate a gig and a half
> or so of memory above the 4G linem or (3) Move to an architecture that isn't
> constrained by 32-bit addresses...
>
Option 4: move to another i875 motherboard. This is an Epox 4PCA3+,
which at least with 3 Gb has no problems:

Linux version 2.6.7-rc2 (jurriaan@middle) (gcc version 3.3.3 (Debian 20040422)) #2 SMP Mon May 31 10:25:04 CEST 2004
BIOS-provided physical RAM map:
BIOS-e820: 0000000000000000 - 000000000009dc00 (usable)
BIOS-e820: 000000000009dc00 - 00000000000a0000 (reserved)
BIOS-e820: 00000000000f0000 - 0000000000100000 (reserved)
BIOS-e820: 0000000000100000 - 00000000bfff0000 (usable)
BIOS-e820: 00000000bfff0000 - 00000000bfff3000 (ACPI NVS)
BIOS-e820: 00000000bfff3000 - 00000000c0000000 (ACPI data)
BIOS-e820: 00000000fec00000 - 0000000100000000 (reserved)
2175MB HIGHMEM available.
896MB LOWMEM available.
found SMP MP-table at 000f5900
On node 0 totalpages: 786416
DMA zone: 4096 pages, LIFO batch:1
Normal zone: 225280 pages, LIFO batch:16
HighMem zone: 557040 pages, LIFO batch:16
DMI 2.2 present.
Kernel command line: root=/dev/md3 video=radeonfb:1600x1200-32@85 softrepeat=1
Memory: 3113796k/3145664k available (3494k kernel code, 30720k reserved, 1460k data, 504k init, 2228160k highmem)

Good luck,
Jurriaan
--
hundred-and-one symptoms of being an internet addict:
17. You turn on your intercom when leaving the room so you can hear if new
e-mail arrives.
Debian (Unstable) GNU/Linux 2.6.7-rc2 2x6062 bogomips load 0.13

2004-06-02 12:18:24

by Richard B. Johnson

[permalink] [raw]
Subject: Re: Intel 875 Motherboard cant use 4GB of Memory.

On Tue, 1 Jun 2004 [email protected] wrote:

>
> > That could be PCI devices. Some (particularly high-end video cards)
> > take up a lot of address space, which comes straight out of the available
> > 4 GB physical address space.
> >
> > Check /proc/iomem.
> >
>
> OK, that leaves me more confused, and (to me) it still looks like a
> BIOS problem rather than a greedy device. Here is the /proc/iomem
> with some decimal annotations: (as noted, there is 4x1GB of memory installed)
>


Not just Intel motherboards. There is 32 bits of address-space.
This needs to be shared between RAM and the I/O addresses of
PCI/Bus and AGP boards. Unfortunately, the PCI/AGP specification
wastes a lot of address space because something that needs 1 megabyte
of address-space must sit on a 1 megabyte boundary. If this
comes after something that used 128 bytes, there is nearly a megabyte
wasted to get to the next boundary. A megabyte here a megabyte there..
pretty soon you are talking about a lot of wasted address-space.

Solution: A 64 bit machine will have the same problem, you end up
wasting RAM address space if it overlays PCI/Bus space. But, you
probably would never opt for a gazzzilion bytes of RAM anyway?

One gazzzilion = 1844 6744 0737 0955 1615 (2 ^ 64)

Just don't put 4 gigs of RAM in a 4 gig address-space and expect
to use it all. Sell the spare 2 gigs or build another PC with it!


Cheers,
Dick Johnson
Penguin : Linux version 2.4.26 on an i686 machine (5570.56 BogoMips).
Note 96.31% of all statistics are fiction.


2004-06-02 19:53:44

by clemens

[permalink] [raw]
Subject: Re: Intel 875 Motherboard cant use 4GB of Memory.

> On Tue, 1 Jun 2004 [email protected] wrote:
>
> >
> > > That could be PCI devices. Some (particularly high-end video cards)
> > > take up a lot of address space, which comes straight out of the available
> > > 4 GB physical address space.
> > >
> > > Check /proc/iomem.
> > >
> >
> > OK, that leaves me more confused, and (to me) it still looks like a
> > BIOS problem rather than a greedy device. Here is the /proc/iomem
> > with some decimal annotations: (as noted, there is 4x1GB of memory installed)
> >
>
>
> Not just Intel motherboards. There is 32 bits of address-space.
> This needs to be shared between RAM and the I/O addresses of
> PCI/Bus and AGP boards. Unfortunately, the PCI/AGP specification
> wastes a lot of address space because something that needs 1 megabyte
> of address-space must sit on a 1 megabyte boundary. If this
> comes after something that used 128 bytes, there is nearly a megabyte
> wasted to get to the next boundary. A megabyte here a megabyte there..
> pretty soon you are talking about a lot of wasted address-space.
>
> Solution: A 64 bit machine will have the same problem, you end up
> wasting RAM address space if it overlays PCI/Bus space. But, you
> probably would never opt for a gazzzilion bytes of RAM anyway?
>
> One gazzzilion = 1844 6744 0737 0955 1615 (2 ^ 64)
>
> Just don't put 4 gigs of RAM in a 4 gig address-space and expect
> to use it all. Sell the spare 2 gigs or build another PC with it!
>
>
I understand what you are saying, I just hadnt expected the system
to grab quite so much space. After all there is only a video card
(Radeon 9600) and a sound card (Sound Blaster Live!) plugged into
the bus.

Im sure that the sound card doesnt use all that much space, but I
find it hard to believe that the video card is grabbing ALL of that space.
Possibly grabbing space at too low an address, but that should be correctable.

I had expected to loose some space, just not as much as is missing.

And this board does like paired memory cards, so perhaps the solution
would be 2x 1GB and 2x 500MB.


--
Reg.Clemens
[email protected]


2004-06-03 01:10:45

by Brian Gerst

[permalink] [raw]
Subject: Re: Intel 875 Motherboard cant use 4GB of Memory.

Richard B. Johnson wrote:
> On Tue, 1 Jun 2004 [email protected] wrote:
>
>
>>>That could be PCI devices. Some (particularly high-end video cards)
>>>take up a lot of address space, which comes straight out of the available
>>>4 GB physical address space.
>>>
>>>Check /proc/iomem.
>>>
>>
>>OK, that leaves me more confused, and (to me) it still looks like a
>>BIOS problem rather than a greedy device. Here is the /proc/iomem
>>with some decimal annotations: (as noted, there is 4x1GB of memory installed)
>>
>
>
>
> Not just Intel motherboards. There is 32 bits of address-space.
> This needs to be shared between RAM and the I/O addresses of
> PCI/Bus and AGP boards. Unfortunately, the PCI/AGP specification
> wastes a lot of address space because something that needs 1 megabyte
> of address-space must sit on a 1 megabyte boundary. If this
> comes after something that used 128 bytes, there is nearly a megabyte
> wasted to get to the next boundary. A megabyte here a megabyte there..
> pretty soon you are talking about a lot of wasted address-space.
>
> Solution: A 64 bit machine will have the same problem, you end up
> wasting RAM address space if it overlays PCI/Bus space. But, you
> probably would never opt for a gazzzilion bytes of RAM anyway?
>
> One gazzzilion = 1844 6744 0737 0955 1615 (2 ^ 64)
>
> Just don't put 4 gigs of RAM in a 4 gig address-space and expect
> to use it all. Sell the spare 2 gigs or build another PC with it!
>

Wrong. Ever since the Pentium Pro, x86 processors have had 36-bit
*physical* addressing. This is why PAE-mode paging was introduced. A
sane BIOS would configure the memory controller to remap some of the
memory above 4G physical to allow for memory mapped devices. It sounds
like this board's BIOS isn't doing that, or at least not reporting it in
the e820 map.

--
Brian Gerst

2004-06-03 02:42:28

by Reg Clemens

[permalink] [raw]
Subject: Re: Intel 875 Motherboard cant use 4GB of Memory.

>
> Wrong. Ever since the Pentium Pro, x86 processors have had 36-bit
> *physical* addressing. This is why PAE-mode paging was introduced. A
> sane BIOS would configure the memory controller to remap some of the
> memory above 4G physical to allow for memory mapped devices. It sounds
> like this board's BIOS isn't doing that, or at least not reporting it in
> the e820 map.
>
Hummm.

Let me restate the fact that I dont understand how PC hardware works, but
I can understand how the area for PCI devices has to come out of the
KERNEL address space, but why does it have to be subtracted from the USER
address space too?


--
Reg.Clemens
[email protected]


2004-06-03 03:13:56

by clemens

[permalink] [raw]
Subject: Re: Intel 875 Motherboard cant use 4GB of Memory.


Wrong. Ever since the Pentium Pro, x86 processors have had 36-bit
*physical* addressing. This is why PAE-mode paging was introduced. A
sane BIOS would configure the memory controller to remap some of the
memory above 4G physical to allow for memory mapped devices. It sounds
like this board's BIOS isn't doing that, or at least not reporting it in
the e820 map.

---

Hummm.

Let me restate the fact that I dont understand how PC hardware works, but
I can understand how the area for PCI devices has to come out of the
KERNEL address space, but why does it have to be subtracted from the USER
address space too?


--
Reg.Clemens
[email protected]






2004-06-03 11:47:54

by Richard B. Johnson

[permalink] [raw]
Subject: Re: Intel 875 Motherboard cant use 4GB of Memory.

On Wed, 2 Jun 2004 [email protected] wrote:

> >
> > Wrong. Ever since the Pentium Pro, x86 processors have had 36-bit
> > *physical* addressing. This is why PAE-mode paging was introduced. A
> > sane BIOS would configure the memory controller to remap some of the
> > memory above 4G physical to allow for memory mapped devices. It sounds
> > like this board's BIOS isn't doing that, or at least not reporting it in
> > the e820 map.
> >
> Hummm.
>
> Let me restate the fact that I dont understand how PC hardware works, but
> I can understand how the area for PCI devices has to come out of the
> KERNEL address space, but why does it have to be subtracted from the USER
> address space too?
>
>
> --
> Reg.Clemens
> [email protected]


It isn't. However some of the user address-space is used by the kernel
so a user can't address 32 bits of (data) space either. The sum of
the address-spaces that each user can access can far exceed all the
RAM and certainly 32-bits of space. That's why we have swap-files.


Cheers,
Dick Johnson
Penguin : Linux version 2.4.26 on an i686 machine (5570.56 BogoMips).
Note 96.31% of all statistics are fiction.