Find the answer to your Linux question:
Results 1 to 7 of 7
Hi, I have running 2.6.26. Linux on x86 system that has the following BIOS mappings: BIOS-provided physical RAM map: [ 0.000000] BIOS-e820: 0000000000000000 000000000009c000 (usable) [ 0.000000] BIOS-e820: 000000000009c000 ...
Enjoy an ad free experience by logging in. Not a member yet? Register.
  1. #1
    Just Joined!
    Join Date
    Dec 2010
    Posts
    4

    System RAM relocation to address higher than 4G


    Hi,

    I have running 2.6.26. Linux on x86 system that has the following BIOS mappings:

    BIOS-provided physical RAM map:
    [ 0.000000] BIOS-e820: 0000000000000000 000000000009c000 (usable)
    [ 0.000000] BIOS-e820: 000000000009c000 - 00000000000a0000 (reserved)
    [ 0.000000] BIOS-e820: 00000000000e0000 - 0000000000100000 (reserved)
    [ 0.000000] BIOS-e820: 0000000000100000 000000007d5d8000 (usable - system RAM)
    [ 0.000000] BIOS-e820: 000000007d5d8000 000000007d5dfc00 (ACPI data)
    [ 0.000000] BIOS-e820: 000000007d5dfc00 000000007d5e0000 (ACPI NVS)
    [ 0.000000] BIOS-e820: 000000007d5e0000 000000007de00000 (reserved)
    [ 0.000000] BIOS-e820: 00000000e0000000 00000000f0000000 (reserved)
    [ 0.000000] BIOS-e820: 00000000fec00000 - 0000000100000000 (reserved)


    Now, i have additional PCIe devices, which together require 2.5G address space, and since those device can operate only on 32-bit addresses, they require 2.5G address space in the range between 0 to 4G .
    Therefore I need to move system RAM to the address space higher than 4G.
    I tried to use mem and memmap=exactmap kernel boot options, setting the System RAM address at 0x100000000,but the kernel simply crushes during boot.
    Is there is a way to tell kernel to load at address higher than 4G? Or is some hack needed after the MMU is configured, so that the page tables are translated to the addresses higher than 4G?


    Thanks

  2. #2
    Linux Guru Rubberman's Avatar
    Join Date
    Apr 2009
    Location
    I can be found either 40 miles west of Chicago, in Chicago, or in a galaxy far, far away.
    Posts
    11,601
    It depends upon the CPU and BIOS. What is the make/model of the CPU?
    Sometimes, real fast is almost as good as real time.
    Just remember, Semper Gumbi - always be flexible!

  3. #3
    Just Joined!
    Join Date
    Dec 2010
    Posts
    4
    Hi,

    It is Intel Core 2 Duo.

  4. #4
    Linux Guru Rubberman's Avatar
    Join Date
    Apr 2009
    Location
    I can be found either 40 miles west of Chicago, in Chicago, or in a galaxy far, far away.
    Posts
    11,601
    Ok. Your system should be PAE (Physical Address Extension) capable, which means you will need to reconfigure your kernel to support that. According to Intel, all Core 2 Duo processors support PAE. This will enable your kernel to access > 4GB of RAM (though not single processes - they are still limited to 4GB). You should also be able to remap your RAM so that you can have your PCI boards mapped < 4GB. The OS may actually do that for you so you can access all the physical RAM.

    I have to say, I haven't tried this. I generally run stuff in full 64-bit mode, so the problem becomes irrelevant. Anyway, it is worth a try.
    Sometimes, real fast is almost as good as real time.
    Just remember, Semper Gumbi - always be flexible!

  5. #5
    Just Joined!
    Join Date
    Dec 2010
    Posts
    4
    Hi, thanks for the response.
    When you are saying that the OS will remap the RAM itself, does it mean that after initial boot the page tables for process will map the virtual addresses to > 4G, but the page table for kernel will still be mapped to <4G addresses?
    If i have 2GB RAM, then ideally, the kernel will run on 512 M mapped to the lower 4G and application will use the memory that is mapped to the upper 4G?

  6. #6
    Linux Guru Rubberman's Avatar
    Join Date
    Apr 2009
    Location
    I can be found either 40 miles west of Chicago, in Chicago, or in a galaxy far, far away.
    Posts
    11,601
    AFAIK, but as I said, I haven't worked with a 32-bit kernel configured for PAE. A lot of people do who don't want to migrate to 64-bit kernels due to device driver issues, etc. Try it. At worst, you'll be no where you aren't already... Also, you might want to check on some of the Linux web sites for any FAQ's or Wiki pages that deal with this. There are some articles in Wikipedia that might help clarify stuff for you. Here is a link: https://secure.wikimedia.org/wikiped...ress_Extension
    Sometimes, real fast is almost as good as real time.
    Just remember, Semper Gumbi - always be flexible!

  7. #7
    Just Joined!
    Join Date
    Dec 2010
    Posts
    4
    ok, thank you!

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •