Total physical RAM not recognized

Hi!

I installed the latest Tumbleweed on a new Lenovo Ideapad S540 and the system does not recognize the full amount of RAM: I have 8GB (DDR4), but it only sees 5.7

During installation, I noticed that my RAM was not recognized properly, so much so that my request to set up a SWAP partition as large as memory resulted in a 5.7GB partition.

Now the BIOS and dmicode decode see the total amount, but other programs don’t:

localhost:/home/federico # dmidecode --type 17
# dmidecode 3.2
Getting SMBIOS data from sysfs.
SMBIOS 3.1.1 present.

Handle 0x001F, DMI type 17, 40 bytes
Memory Device
        Array Handle: 0x001E
        Error Information Handle: 0x0022
        Total Width: 64 bits
        Data Width: 64 bits
        Size: 4096 MB
        Form Factor: SODIMM
        Set: None
        Locator: DIMM 0
        Bank Locator: P0 CHANNEL A
        Type: DDR4
        Type Detail: Synchronous Unbuffered (Unregistered)
        Speed: 2667 MT/s
        Manufacturer: Samsung
        Serial Number: 00000000
        Asset Tag: Not Specified
        Part Number: M471A5244CB0-CTD    
        Rank: 1
        Configured Memory Speed: 2400 MT/s
        Minimum Voltage: 1.2 V
        Maximum Voltage: 1.2 V
        Configured Voltage: 1.2 V

Handle 0x0020, DMI type 17, 40 bytes
Memory Device
        Array Handle: 0x001E
        Error Information Handle: 0x0023
        Total Width: 64 bits
        Data Width: 64 bits
        Size: 4096 MB
        Form Factor: SODIMM
        Set: None
        Locator: DIMM 0
        Bank Locator: P0 CHANNEL B
        Type: DDR4
        Type Detail: Synchronous Unbuffered (Unregistered)
        Speed: 2667 MT/s
        Manufacturer: Hynix
        Serial Number: 201BE323
        Asset Tag: Not Specified
        Part Number: HMA851S6JJR6N-VK    
        Rank: 1
        Configured Memory Speed: 2400 MT/s
        Minimum Voltage: 1.2 V
        Maximum Voltage: 1.2 V
        Configured Voltage: 1.2 V

localhost:/home/federico # free -h
              total        used        free      shared  buff/cache   available
Mem:          5.7Gi       1.2Gi       3.2Gi        62Mi       1.3Gi       4.2Gi
Swap:         5.7Gi          0B       5.7Gi

I tried adding “mem=8GB” at the end of the Kernel line options before booting, but it did not seem to work.

Any idea much appreciated!

Hi
Can you post the output from;


dmesg | grep e820

here it is:

dmesg | grep e820
    0.000000] BIOS-e820: [mem 0x0000000000000000-0x0000000000086fff] usable
    0.000000] BIOS-e820: [mem 0x0000000000087000-0x00000000000bffff] reserved
    0.000000] BIOS-e820: [mem 0x0000000000100000-0x0000000009afffff] usable
    0.000000] BIOS-e820: [mem 0x0000000009b00000-0x0000000009dfffff] reserved
    0.000000] BIOS-e820: [mem 0x0000000009e00000-0x0000000009efffff] usable
    0.000000] BIOS-e820: [mem 0x0000000009f00000-0x0000000009f0afff] ACPI NVS
    0.000000] BIOS-e820: [mem 0x0000000009f0b000-0x00000000973f8fff] usable
    0.000000] BIOS-e820: [mem 0x00000000973f9000-0x0000000097df8fff] reserved
    0.000000] BIOS-e820: [mem 0x0000000097df9000-0x00000000ae00efff] usable
    0.000000] BIOS-e820: [mem 0x00000000ae00f000-0x00000000aee8efff] reserved
    0.000000] BIOS-e820: [mem 0x00000000aee8f000-0x00000000af77efff] ACPI NVS
    0.000000] BIOS-e820: [mem 0x00000000af77f000-0x00000000af7fefff] ACPI data
    0.000000] BIOS-e820: [mem 0x00000000af7ff000-0x00000000af7fffff] usable
    0.000000] BIOS-e820: [mem 0x00000000af800000-0x00000000afffffff] reserved
    0.000000] BIOS-e820: [mem 0x00000000f8000000-0x00000000fbffffff] reserved
    0.000000] BIOS-e820: [mem 0x00000000fdc00000-0x00000000fec00fff] reserved
    0.000000] BIOS-e820: [mem 0x00000000fec10000-0x00000000fec10fff] reserved
    0.000000] BIOS-e820: [mem 0x00000000fed80000-0x00000000fed80fff] reserved
    0.000000] BIOS-e820: [mem 0x00000000fee00000-0x00000000fee00fff] reserved
    0.000000] BIOS-e820: [mem 0x00000000ff800000-0x00000000fff4ffff] reserved
    0.000000] BIOS-e820: [mem 0x0000000100000000-0x00000001ceffffff] usable
    0.000000] BIOS-e820: [mem 0x00000001cf000000-0x000000024effffff] reserved
    0.000000] e820: remove [mem 0x200000000-0xfffffffffffffffe] usable
    0.000000] e820: update [mem 0x94b08018-0x94b15457] usable ==> usable
    0.000000] e820: update [mem 0x94b08018-0x94b15457] usable ==> usable
    0.000359] e820: update [mem 0x00000000-0x00000fff] usable ==> reserved
    0.000360] e820: remove [mem 0x000a0000-0x000fffff] usable
    0.018576] e820: update [mem 0x9d88b000-0x9d999fff] usable ==> reserved
    0.543576] e820: reserve RAM buffer [mem 0x00087000-0x0008ffff]
    0.543577] e820: reserve RAM buffer [mem 0x09b00000-0x0bffffff]
    0.543577] e820: reserve RAM buffer [mem 0x09f00000-0x0bffffff]
    0.543578] e820: reserve RAM buffer [mem 0x94b08018-0x97ffffff]
    0.543578] e820: reserve RAM buffer [mem 0x973f9000-0x97ffffff]
    0.543579] e820: reserve RAM buffer [mem 0x9d88b000-0x9fffffff]
    0.543579] e820: reserve RAM buffer [mem 0xae00f000-0xafffffff]
    0.543580] e820: reserve RAM buffer [mem 0xaf800000-0xafffffff]
    0.543581] e820: reserve RAM buffer [mem 0x1cf000000-0x1cfffffff]


Hi
Have a read of this thread: https://forums.opensuse.org/showthread.php/510568-Total-amount-of-RAM-not-detected

Is the system BIOS up to date? This could be the issue, sure RAM is seated properly?

Else time to do some hex to decimal conversion eg;


echo $((0x100000000/1024/1024))
4096
echo $((0x00000001ceffffff/1024/1024))
7407

thanks for your reply!

well, is a brand new machine, would that be necessary? How is it possible to update a lenovo bios with a Linux os installed?

Else time to do some hex to decimal conversion eg;

echo $((0x100000000/1024/1024))
4096
echo $((0x00000001ceffffff/1024/1024))
7407

ok, you mean converting the values of the “reserved” lines of memory above and see whether they amount to more than 2GB, right?

Hi
If it’s brand new then would be talking to their support, does the system have a boot to diagnostics option. Have you check ed the BIOS for ram allocation to the GPU?

This is probably a longshot, since your Lenovo is new, but I have an old Asus that will not show all 8GB RAM to an OS unless some non-default BIOS setting is selected. IIRC, it has something to do with mapping. 5.7GB or nearly so may have been the limitation without that setting change.

The lshw command might reveal something experts here might be able to analyze.

sudo lshw

If it is not installed it is in the repositories for tumbleweed.

Thanks for all your answers.

Did not try reseating the memory banks, as it seems they could be welded onto the MB.

Bios still reports 8GB, and I am still at a loss on how to update it on a Linux system. In the Bios I did not find any option to reserve memory for the GPU or anything else.

I tried reinstalling Tumbleweed with a fresh and simpler partition layout, but no luck, still only 5.7 GB visible to the system.

The whole result could not fit into 15000 chars. Here’s the part on memory. Indeed the two memory chips seem to come from two different vendors!

*-memory
          description: System Memory
          physical id: 1e
          slot: System board or motherboard
          size: 8GiB
        *-bank:0
             description: SODIMM DDR4 Synchronous Unbuffered (Unregistered) 2667 MHz (0.4 ns)
             product: M471A5244CB0-CTD
             vendor: Samsung
             physical id: 0
             serial: 00000000
             slot: DIMM 0
             size: 4GiB
             width: 64 bits
             clock: 2667MHz (0.4ns)
        *-bank:1
             description: SODIMM DDR4 Synchronous Unbuffered (Unregistered) 2667 MHz (0.4 ns)
             product: HMA851S6JJR6N-VK
             vendor: Hynix
             physical id: 1
             serial: 201BE323
             slot: DIMM 0
             size: 4GiB
             width: 64 bits
             clock: 2667MHz (0.4ns)

Hi
I would in the first instance talk to Lenovo support and see what they have to say…

I contacted them by email, and as expected the answer was completely useless: I was told to do a static discharge (made no difference) and run their diagnostics program, which is of course a windows only program. Of course, the answer ignored all the info I had provided, including the fact that linux is installed.

I will contact them by phone tomorrow, but do not expect anything better.

How is it possible to update a lenovo bios with a Linux os installed?

A guide on updating Lenovo BIOS from Linux…
https://www.cyberciti.biz/faq/update-lenovo-bios-from-linux-usb-stick-pen/

Part of RAM goes to GPU.
Change in BIOS amout of memory dedicated to GPU (maybe from 2 GB to 512 MB).