0

I'm running linux on my mac mini core 2 duo. The interesting thing is that the EFI for this machine is 32 bit, but the OS is 64 bit. Because of the 32 bit EFI, I only have 4GB worth of address space. Some of that space is Memory Mapped I/O, but after snooping around in (sudo cat)/proc/iomem, I have found rather large chunks of space that seem to not be mapped. For instance:

00000000-00000fff : Reserved
00001000-0009fbff : System RAM
0009fc00-0009ffff : Reserved
000a0000-000bffff : PCI Bus 0000:00
000c0000-000c7fff : Video ROM
000e0000-000fffff : Reserved
  000f0000-000fffff : System ROM
00100000-be0c4fff : System RAM
  afe00000-b0c00eb0 : Kernel code
  b0c00eb1-b165817f : Kernel data
  b1927000-b1dfffff : Kernel bss
be0c5000-be2c5fff : ACPI Non-volatile Storage
be2c6000-beebdfff : ACPI Tables
beebe000-beeeefff : ACPI Non-volatile Storage
beeef000-beefffff : ACPI Tables
bef00000-bfffffff : Reserved
  bf000000-bffc0000 : Graphics Stolen Memory
c0000000-febfffff : PCI Bus 0000:00
  c0000000-cfffffff : 0000:00:02.0
  d0000000-d00fffff : PCI Bus 0000:03
    d0000000-d0000fff : 0000:03:03.0
      d0000000-d0000fff : firewire_ohci
  d0100000-d01fffff : PCI Bus 0000:02
    d0100000-d010ffff : 0000:02:00.0
      d0100000-d010ffff : ath5k
  d0200000-d02fffff : PCI Bus 0000:01
    d0200000-d0203fff : 0000:01:00.0
      d0200000-d0203fff : sky2
    d0220000-d023ffff : 0000:01:00.0
  d0300000-d0300fff : Intel Flush Page
  d0380000-d03fffff : 0000:00:02.0
  d0400000-d043ffff : 0000:00:02.0
  d0440000-d0443fff : 0000:00:1b.0
    d0440000-d0443fff : ICH HD audio
  d0444000-d0444fff : 0000:00:07.0
  d0445000-d04453ff : 0000:00:1f.2
  d0445400-d04457ff : 0000:00:1d.7
    d0445400-d04457ff : ehci_hcd
  d0500000-d06fffff : PCI Bus 0000:01
  d0700000-d08fffff : PCI Bus 0000:02
  e0000000-efffffff : PCI MMCONFIG 0000 [bus 00-ff]
    e0000000-efffffff : Reserved
      e0000000-efffffff : pnp 00:00
fec00000-fec00fff : Reserved
  fec00000-fec003ff : IOAPIC 0
fed00000-fed003ff : HPET 0
  fed00000-fed003ff : pnp 00:01
fed14000-fed19fff : Reserved
  fed14000-fed17fff : pnp 00:00
  fed18000-fed18fff : pnp 00:00
  fed19000-fed19fff : pnp 00:00
fed1c000-fed1ffff : Reserved
  fed1c000-fed1ffff : pnp 00:00
    fed1f410-fed1f414 : iTCO_wdt.1.auto
fed20000-fed8ffff : pnp 00:00
fee00000-fee00fff : Local APIC
  fee00000-fee00fff : Reserved
ff000000-ffffffff : INT0800:00
  ffe00000-ffffffff : Reserved

System RAM has an address space of 2.969GB (00100000-be0c4fff), which is how much RAM my computer recognizes. One of the spots I'm looking at is after the last PCI bus (d08fffff), where there seems to be nothing from (d0900000-dfffffff), which is 247 MB of address space.

Why is there nothing here? If there is something, why can't I see it?

It may be worth mentioning that I have two 2GB RAM sticks installed and both are recognized, but this system has never been able to see more than 2.9GB because the rest of the address space is used (or so I thought).

2
  • How did you determine that you only have 4 GB of address space? This is not determined by EFI; once the OS kernel switches to full 64-bit mode, it's in 64-bit mode.
    – grawity
    Commented Sep 9, 2021 at 5:34
  • Everymac states Please note that some memory in excess of 3 GB cannot be used with 4 GB of RAM installed, so some may prefer to quote an actual maximum of 3 GB of RAM.
    – Tetsujin
    Commented Sep 9, 2021 at 5:52

1 Answer 1

1

It is still allocated to the PCI Bus even if not allocated to a specific port or device.

Your output is a tree, with each indent being a subdivision within that tree. You have a line before your query address

c0000000-febfffff : PCI Bus 0000:00

Which your d0900000-dfffffff address falls into. That means that the entire address range is blocked off and allocated to the PCI bus and all it's subdevices.

You can consider it a "Reserved for future use" signpost if you like, but it is that address allocation that has blocked off that range.

2
  • Ah, thank you!! Of course, that makes sense. That serves the question, is there a way to edit PCI bus address space? The hardware on this machine will never change, so if it was possible, could I theoretically reduce the address space a bit in order to assign the extra space to RAM? Commented Sep 9, 2021 at 16:07
  • 1
    @FlashStopFall as a user there is no way to do it yourself. That is something the system builder determines and is dependent on how the hardware is set up, whether it allows address space remapping and whether the system firmware actually makes use of it and it is all essentially baked into the system design and setup beyond the users access. I do remember some systems towards the end of the 32-bit era that did allow address space remapping that allowed some systems to make more use of the area beyond 3GB, but support was patchy at best. 64-bit made it essentially pointless.
    – Mokubai
    Commented Sep 9, 2021 at 16:20

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .