kernel/system can't see all 4G memory
Lamar Owen
lowen at pari.edu
Thu Nov 3 18:00:35 UTC 2011
On Nov 3, 2011, at 12:13 PM, George R Goffe wrote:
> grep 'BIOS-e820' /var/log/dmesg
> [ 0.000000] BIOS-e820: 0000000000000000 - 000000000009f000
> (usable)
0009F000=636K; this is to the bottom of the UMB. ("640K should be
enough for anyone")....
> [ 0.000000] BIOS-e820: 000000000009f000 - 00000000000a0000
> (reserved)
> [ 0.000000] BIOS-e820: 00000000000d2000 - 00000000000d4000
> (reserved)
> [ 0.000000] BIOS-e820: 00000000000dc000 - 0000000000100000
> (reserved)
UMB/BIOS (Real mode) which is still 'reserved' in this x86_64 day....
> [ 0.000000] BIOS-e820: 0000000000100000 - 00000000bfed0000
> (usable)
1MB and up to 3070MB, your 3GB of RAM.
> [ 0.000000] BIOS-e820: 00000000bfed0000 - 00000000bfedf000 (ACPI
> data)
> [ 0.000000] BIOS-e820: 00000000bfedf000 - 00000000bff00000 (ACPI
> NVS)
> [ 0.000000] BIOS-e820: 00000000bff00000 - 00000000c0000000
> (reserved)
> [ 0.000000] BIOS-e820: 00000000f0000000 - 00000000f4000000
> (reserved)
> [ 0.000000] BIOS-e820: 00000000fec00000 - 00000000fec10000
> (reserved)
> [ 0.000000] BIOS-e820: 00000000fed00000 - 00000000fed00400
> (reserved)
> [ 0.000000] BIOS-e820: 00000000fed14000 - 00000000fed1a000
> (reserved)
> [ 0.000000] BIOS-e820: 00000000fed1c000 - 00000000fed90000
> (reserved)
> [ 0.000000] BIOS-e820: 00000000fee00000 - 00000000fee01000
> (reserved)
> [ 0.000000] BIOS-e820: 00000000ff800000 - 0000000100000000
> (reserved)
>
PCI and PCI express mapping areas. Your video (among other things)
needs memory addresses; think of this as the 32-bit equivalent of the
20-bit upper memory blocks. In the case of 386 and up processors,
hardware remapping of the reserved addresses was accomplished through
virtual 8086 mode from 32-bit protect mode, and thus a 386 memory
manager (QEMM, EMM386, etc) actually was a 32-bit 'kernel' that
presented a single V86 'VM' and emulated real mode in that V86 VM, and
set up the 386's MMU to map RAM into those holes. Microsoft built
upon this foundation the House of Windows/386, which morphed into the
House of Windows 3.x (enhanced), which morphed into the House of Win9x/
ME.....
Many 386 motherboards from that era had '1MB' of RAM, but only 640K
was usable without UMB mapping (and address line A20 'rollover' into
the HMA, thanks to the segmented x86 architecture, for boards with
more than 1MB). The 32-bit boards have the same line, at 3GB, and for
much the same reasons.
The BIOSs on Dells with 945 chipsets allow the ACPI business to move
up, and thus frees up a few hundred MB of RAM address space.
The 965 chipset has hardware memory remapping, and can thus take the
1GB of RAM 'lost' by the PCI hole and put it above the 4GB line, thus
making the system need 33 bit or better hardware addressing (just
because the CPU has more than 32-bit addressing doesn't mean those
lines are connected to anything, after all.....)
-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/pkcs7-signature
Size: 1813 bytes
Desc: not available
Url : http://lists.fedoraproject.org/pipermail/users/attachments/20111103/617fb3d8/attachment.bin
More information about the users
mailing list