I was looking into the "/proc/iomem" entries and have a doubt regarding the same.
My Linux PC is running a Intel Xeon and has a system RAM of 4GB.
/proc/iomem entry of my system looks like
00000000-0000ffff : reserved 00010000-0009f3ff : System RAM 0009f400-0009ffff : reserved 000a0000-000bffff : PCI Bus 0000:00 000c0000-000c7fff : Video ROM 000ca000-000cbfff : reserved 000ca000-000cafff : Adapter ROM 000cb000-000cbfff : Adapter ROM 000cc000-000cffff : PCI Bus 0000:00 000d0000-000d3fff : PCI Bus 0000:00 000d4000-000d7fff : PCI Bus 0000:00 000d8000-000dbfff : PCI Bus 0000:00 000dc000-000fffff : reserved 000f0000-000fffff : System ROM 00100000-7fedffff : System RAM 01000000-01520fa4 : Kernel code 01520fa5-01c0e44f : Kernel data 01d56000-0201d963 : Kernel bss 03000000-0b0fffff : Crash kernel 7fee0000-7fefefff : ACPI Tables 7feff000-7fefffff : ACPI Non-volatile Storage 7ff00000-7fffffff : System RAM c0000000-febfffff : PCI Bus 0000:00 fec00000-fec0ffff : reserved fec00000-fec003ff : IOAPIC 0 fed00000-fed003ff : HPET 0 fed00000-fed003ff : pnp 00:08 fee00000-fee00fff : Local APIC fee00000-fee00fff : reserved fffe0000-ffffffff : reserved
Now, assuming that my processor has 32 address lines ( i feel that it has 40 address lines - i see this from /proc/cpuinfo), this means that my processor will be able to address 4GB of physical memory.
Looking from my "/proc/iomem" entries, I see that only 2GB of system RAM is being directly addressed by my CPU.
Now my doubt is
You are running into the 3 GB barrier (which your BIOS has moved down to 2 GB). Only 2 GB are used as system RAM; the other 2 GB of the physical address space are used for I/O devices.
The other memory is used as high memory, which cannot be used directly but must be mapped, page by page, into the virtual address space whenever it is to be accessed.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With