Computer with 16gb ram: Computer parts, laptops, electronics, and more

13th Gen 12-Core i5-1340P 16gb RAM 12v Mini Size LattePanda Sigma Single Board Computer for video streaming cluster and AI

Product LattePanda V1 LattePanda 3 Delta LattePanda Sigma

Intel® Atom® x5-Z8350

Intel® Celeron® N5105 Intel® Core™ i5-1340P
CPU Spec.

4-Core, 4-Thread

1.44 ~ 1.92GHz

2M Cache


4-Core, 4-Thread

2.00 ~ 2.90GHz

4M Cache


12-Core, 16-Thread

1.9 ~ 4.60GHz (Performance-core), 3.4 GHz (Efficient-core)  

12M Cache

28W  TDP


Intel® HD Graphics

Intel® UHD Graphics  Intel® Iris® Xe Graphics
Graphics Spec.

200 ~ 500MHz

12 Execution Units

450 ~ 800 MHz

24 Execution Units

400 ~ 1450 MHz

80 Execution Units


2GB/4GB DDR3L 1066MHz

Single Channel

8GB LPDDR4 2933MHz

Single Channel

16GB LPDDR5 6400MHz

Dual Channel


32GB/64GB eMMC V5.1

64GB eMMC  V5.1 M.2 NVMe SSD (separately installed) 

802.11n, 2.4G, up to 150Mbps

Bluetooth 4.0

100M Ethernet

802.11ax, 2.4G & 5G(160MHz), up to 2.4Gbps

Bluetooth 5.2

1000M Ethernet

2 x 2500M Ethernet

M.2 Wi-Fi Module (separately installed)

USB Ports

1 x USB 3.2 Gen1 Type-A (5Gbps)

2 x USB 2. 0 Type-A (480Mbps)

1 x USB 3.2 Gen2 Type-A (10Gbps)

2 x USB 3.2 Gen1 Type-A (5Gbps)

1 x USB 2.0 Type-C (480Mbps)

2 x USB2.0 Type-A (480Mbps)

2 x USB3.2 Gen2 Type-A (10Gbps)

2 x Thunderbolt™ 4 Type-C (40Gbps) 


HDMI 1.4b, up to 1920 x 1080 @ 60Hz

MIPI DSI 1.1, up to 1920 x 1080 @ 60Hz

HDMI 2.0b, up to 4096 x 2304 @ 60Hz

DP 1.4 via USB Type C, up to 4096 x 2304 @ 60Hz

eDP 1.4b, up to 1920 x 1080 @ 60Hz

HDMI 2.1, up to 4096 x 2304 @ 60Hz

DP 1.4a, up to 7680 x 4320 @ 60Hz

eDP 1.4b, up to 4096 x 2304 @ 120Hz

Expansion Slots TF Card Slot

M.2 Key B: SATA III, USB2.0, USB3.0, SIM

M.2 Key M: PCIe 3.0 x 2

TF & Micro SIM Card Slot

M.2 M Key: PCIe 3.0 x 4

M.2 M Key: PCIe 4.0 x 4

M.2 B Key: SATA III/PCIe 3. 0 x 1, USB2.0, USB3.0, SIM

M.2 E Key: PCIe 3.0 x 1, USB2.0, Intel CNVio

Micro SIM Card Slot


3.5mm Microphone/Headphone Combo Connector

3.5mm Microphone/Headphone Combo Connector 3.5mm Microphone/Headphone Combo Connector
Co-Processor Microchip® ATmega32U4-MU Microchip® ATmega32U4-MU Microchip® ATmega32U4-MU
GPIO 20 x Digital IO Pins, incluing: 7 x PWM Pins, 12 x Analog Pins, 1 x UART, 1 x I2C, 1 x SPI, 2 x 5V Power Pins

20 x Digital IO Pins

incluing: 7 x PWM Pins, 12 x Analog Pins, 1 x UART

1 x I2C, 1 x SPI, 4 x 5V Power Pins, 4 x 3.3V Power Pins, 1 x ICSP, 1 x BIOS Flash, 1 x RS232, 1 x USB 2.0, 1 x Audio, 1x I2C (CPU Pins), 1 x DC Input, 1 x Power Switch, 1 x Reset Switch, 1 x S0/S3/S4

20 x Digital IO Pins, incluing: 7 x PWM Pins, 12 x Analog Pins, 1 x UART, 1 x I2C, 1 x SPI, 2 x 5V Power Pins, 1 x ICSP, 1 x S0/S3/S4, 1 x USB2. 0, 1 x SATA III Data, 1 x SATA Power, 1 x Front Panel, 1 x Front Audio Panel, 1 x COM (RS232/RS485), 1 x DC Input


Built-in TPM (2.0) Built-in TPM (2.0)

Operating System

Windows 10

Ubuntu 18.04, 20.04

Windows 10 & 11

Ubuntu 22.04

Windows 10 & 11

Ubuntu 22.04



125mm*78mm*16mm 146mm*102mm*24mm

Power Supply

MicroUSB: 5V 2.5A

USB  Type C: 15V  2.4A

Ph3.0 4-Pin Header: 12V 3A 

USB Type C: 20V 4.5A

DC Jack: 19V 4.7A 

BIOS Function

Auto Power-on

Auto Power-on

Watchdog Timer

Auto Power-on

Watchdog Timer

Fan Fanless Built-in fan Built-in fan

Portable Device

Logistics Robot

Intelligent Gateway

Portable Device

Image Recognition

Auto Optical Inspection


Edge Server

AI Inference


The choice of the most industry customers.

The most cost-effective version. The latest and most powerful version.

5 Best Desktops with 16 GB RAM 2023

As an Amazon Associate and (affiliate of other merchants) we earn from qualifying purchases without any extra cost to you when bought through our links below.

In order to keep an equal pace with this rapid change, the contributions of desktop computers are unbelievable. Here are some of the best desktops listed below under the 16 GB RAM segment for the users to work with ease.


ROG Strix GA15DH Gaming Desktop PC, AMD Ryzen 7 3700X, GeForce GTX 1660 Ti, 16GB DDR4 RAM, 512GB…

ROG Strix GA15DH Gaming Desktop PC, AMD Ryzen 7 3700X, GeForce GTX 1660 Ti, 16GB DDR4 RAM, 512GB…


as of July 26, 2023 10:40 pm Any price and availability information displayed on Amazon at the time of purchase will apply to the purchase of this product.”/>


OEM Lenovo ThinkCentre M80s SFF Intel Hexa Core i5-10500 [6 Cores], 16GB RAM, 512GB NVMe, W11P,…

OEM Lenovo ThinkCentre M80s SFF Intel Hexa Core i5-10500 [6 Cores], 16GB RAM, 512GB NVMe, W11P,…


1 used from $345.74

as of July 26, 2023 10:40 pm


Last updated on July 26, 2023 10:40 pm Any price and availability information displayed on Amazon at the time of purchase will apply to the purchase of this product.”/>

In This Article

5 Best Desktops with 16 GB RAM:

1. MSI Aegis RS 10SE – Best Overall



Bottom Line: It is planted with a powerful processor and the video card is quite capable of handling the high graphical contents. For effective cooling it is offered with a liquid cooling system and dressed with an outstanding storage configuration. The features are updated and it is the best device with 16 GB RAM.

Key features

  • Storage: 1 TB SSD + 1 TB HDD
  • RAM: 16 GB
  • Processor: 10th Gen Intel 10 Core i7-10700KF
  • OS: Windows 10 Home
  • Graphics card: 8 GB DDR6 NVIDIA GeForce RTX 2070 Super

MSI Aegis RS 10SE a powerful desktop. An efficient Intel Core i7 Processor is present in this device.

The 8 GB powerful graphics card that is present here helps it to process any HD content very efficiently.

The most promising factor about this desktop is its processing speed. In this respect, the 1 TB SSD and 16 GB DDR4 RAM play the most crucial roles.

There is enormous storage capacity. This is one of the best desktops that comes with 16 GB RAM.

The other promising factors about this product are a liquid cooling facility, inbuilt Wi-Fi, an attractive outfit with colorful RGB lights, and VR compatibility.


  • Fast performance
  • Impressive storage
  • Liquid cooling system


  • Expensive
  • High maintenance cost
  • Not a value for money device

2. Asus ROG Strix GA15DH – Runner Up


Bottom Line: In the segment of 16 GB RAM this device from ROG gets an interesting and effective combination of both processor and graphics card. It leads to good and smooth work experience. It offers great processing speed to work effectively which makes it obtain the runner up position on our list.

Key features

  • Storage: 512 GB SSD
  • RAM: 16 GB
  • Processor:  8 Core AMD Ryzen 7 3700X
  • OS: Windows 10 Home
  • Graphics card: 6 GB DDR6 NVIDIA GeForce GTX 1660 Ti

It is a well-equipped gaming desktop from Asus. There is a powerful AMD Ryzen 7 processor that helps this device to deliver lightning-fast processing.

The Nvidia GeForce GTX 1660 Ti helps this gaming device to deliver natural and flawless visual effects.

Most of the updated and useful USB ports are present in Asus ROG Strix GA15DH. With 16 GB RAM and 512 GB SSD, it can process mid-range software very efficiently and fluently.

It is an excellent device for the moderate gamers of this era.


  • Attractive desktop computer
  • Fast performance
  • Plenty of ports


  • Expensive device
  • Limited storage
  • No HDD

3. TJJ Halo Gaming Desktop – Impressive Appearance


Bottom Line: This mid-range device is good at processing any moderate software. With 16 GB RAM, it can deliver very smooth performance and has a stunning appearance.

Key Features

  • Storage: 1 TB SSD
  • RAM: 16 GB
  • Processor: Intel Core i7-3770
  • OS: Windows 10 Home
  • Graphics Card: NVIDIA GeForce GT 1030

The powerful configurations of this gaming device make it a very productive desktop.

The quad-core Intel i7 processor and its GPU help it deliver a very speedy and flawless performance. In this respect, its 16 GB RAM and 1 TB M.2 SSD also play crucial roles.

Most of the helpful USB options and connectivity features are present in this PC. The design of this product was unique and eye-catching.

There are RGB ring lights, a transparent side panel, and a very ergonomic design.


  • Smooth processing capacity
  • Attractive design
  • Lots of USB ports


  • Sometimes become noisy.
  • No USB port on the front panel
  • Windows 11 operating system is missing

4. Lenovo ThinkCentre M720e SFF – Ideal Specification


Bottom Line: This device from Lenovo comes with a compact design structure and offers decent performance. The video card dressed with this machine is also very efficient in handling high graphical contents.

Key features

  • Storage: 500 GB SSD
  • RAM: 16 GB
  • Processor:  Intel 6 Core i5-9400
  • OS: Windows 10 Pro
  • Graphics card: Intel UHD Graphics 630

This Lenovo desktop is packed with balanced specifications that help it to deliver exceptionally smooth processing when one uses this product regularly to do any of their easy-to-moderate computing tasks.

The hexa-core Intel i5 processor that is present in it is a very efficient processing unit.  16 GB RAM and 512 GB SSD also help it to deliver very fluent and powerful processing regularly.

Inbuilt wireless connectivity features are also present in this PC. Overall this is a good device that can be used regularly by any casual user.

It doesn’t have a very bulky outfit. But its cooling section is not so good.


  • Decant performance
  • Affordable device
  • Attractive design language


  • Limited storage
  • Critical upgrades
  • No HDD

5. Dell Inspiron 3880 – Value for Money


Bottom Line: If any users are searching for a budget friendly device then this PC is the perfect one to stick with. It offers sufficient performance and provides smooth working experience at a reasonable price range.

Key features

  • Storage: 1 TB SSD
  • RAM: 16 GB
  • Processor: 10th Gen Quad-Core i5-10400
  • OS: Windows 10 Home
  • Graphics card: Intel UHD Graphics 630

The Dell Inspiron 3880 is a good option for casual users to use regularly. It has a banal, old outfit. Its specifications are easy to upgrade.

With a 10th Gen Intel core i5 processor, this PC can deliver smooth processing with any moderate software.

While using this device regularly, users can get very speedy processing for its 16 GB DDR4 RAM and 512 GB SSD.

One TB HDD is also present and mainly used to store various multimedia files. Most of the helpful connectivity features are present on this desktop.

The pocket-friendly price tag is the most appreciated factor about this product.


  • Budget-friendly device
  • Descent performance
  • Good storage option


  • Limited upgrades
  • No HDD
  • Heating issue

Why to Choose the Desktop with 16 GB RAM?

When the buyer is in search of a desktop computer to fulfill the high-end work then the requirement of a powerful and good RAM is very important.

It is the section where all the systematic handling of the multitasking jobs are planned and operated for the users.

The RAM format is all an important aspect to be looked after. Most of the desktop computers are offered with the DDR4 RAM for smooth and flawless handling.

The higher the RAM then there are maximum chances of enhancement of the performance along with smooth multitasking operation.

There are multiple choices and a variety of desktop computers under 16 GB RAM available in the market that allows a wide range of selecting capability to the users.

It helps the users to choose the right one according to their liking. There are also some kind of desktop computers that offer extra slots for the RAM so that the users can modify them according to their preference.

The main reason and cause for selecting the desktop computers with the 16 GB RAM because it is the best option for the users who deal with the high-end software.

This segment is very much capable of handling and performing both in the high-end works as well as in games without any lag and frame drops.

It is a smart decision and a smart choice as well to select the 16 GB RAM. It offers outstanding performance and efficiency while the gameplay and any heavy work situation.

It maintains a proper balance both in price and performance if it is judged according to the performance it offers.

16, 32 or 64 GB – how much memory do you need in a gaming computer in 2023

  • Computer store
  • Blog
  • Articles on the topic: Memory modules for PCs, laptops and servers Koval
    ([email protected])

    Published: 6 February 2023

    When assembling a new gaming computer, it is necessary to solve the issue with the optimal amount of RAM. The numbers change every year. A few years ago, 8 GB was the ultimate dream, but now some users 32 GB is not enough. So let’s figure out how much RAM you need to comfortably play modern games.

    What is RAM for

    After starting the game, all the necessary data for its stable operation is stored in RAM. Moreover, the overall responsiveness of the operating system as a whole depends on it. However, this does not mean that you should try to cram as much RAM as possible into your computer. All modern games and programs are optimized for certain memory indicators. Even if you install much more RAM than what is actually stated by the developers, the performance will not change. For example, Battlefield 2042 requires up to 16 GB. Even if you set it to 32 GB, the frame rate will not increase.

    The situation changes dramatically if there is a lack of RAM. Problems will arise not only during the launch of games, but also with various programs, applications, some of them will not even start. Friezes, FPS subsidence, freezes, all this will not allow you to fully enjoy the gameplay.

    What is the minimum RAM in 2023

    Formally, since 2017, to run certain games, you needed at least 16 GB of RAM. The requirements have not changed much since then, but on the contrary, they have only increased. However, not all users are interested in gaming. Many people need a PC to watch movies, surf the net, music, work with text documents. For such purposes, 8-12 GB will be enough. It will even be possible to run some old games.

    You can consider options with less than 8GB of RAM if you need a budget office computer running Windows 7. For understanding, Windows 11 has the minimum requirements of 6GB of RAM, but this is critically small, since various programs, applications, games will still run.

    Is 16 GB enough for a gaming computer

    In 2022, the first games appeared that require 32 GB for stable operation. However, such projects are rare. Their launch was obviously rushed, as they have a lot of bugs, memory leaks and other problems. A clear indication that 16 GB is the optimal amount for a gaming PC is an identical figure on the top consoles of the PlayStation 5 and Xbox Series.

    It was possible to put an end to this, but when determining the optimal amount of RAM for a gaming PC, you still need to take into account a number of important points. If the video card does not have enough internal memory, it will get the required amount from the RAM. As a result, 16 GB may not be enough.

    Another point is the gaming resolution. QHD and 4K can significantly load the video card and additional RAM. Serious resources will be required to ensure a stable game.

    Among gamers, streaming is now actively flourishing. To do this, install third-party programs, utilities, add video from the camera, all this significantly loads the system. It turns out 16 GB of memory is the minimum for a gaming PC, which may not even be enough in certain situations.

    32 GB – current RAM standard

    32GB is the new standard for gaming PCs coming soon. This volume will last a long time. It will definitely not be possible to think about an upgrade in the next 3-4 years. Moreover, gaming will be extremely comfortable and no third-party programs and browsers will spoil it. Moreover, it will even be possible to recode the video and carry out other complex manipulations.

    Another factor in favor of 32GB is the price of DDR4 RAM. They have dropped significantly in the past year. There are a lot of nice options out there. Accordingly, there is simply no need to save. You should immediately purchase two strips of 16 GB.

    64 GB professional solution

    For gaming, this amount of RAM is not required. There are no prospects for the appearance of games with such requirements yet. All announced projects come with settings for 16 GB. Another thing is professional activity. Video editing, modeling, design, all this requires impressive resources. Here, the minimum input for comfortable work is 32 GB of RAM. You can use less, but the final result will suffer.

    Another important point is the cost. Installing 64 GB of RAM will require a serious budget. When assembling a gaming PC, it is more expedient to limit yourself to 32 GB, and use the available funds to purchase a more powerful video card. However, if there are no problems with finances, Kingston offers 32 GB sticks with different frequencies.

    One or more modules

    Working memory is improving at a tremendous pace. Once upon a time, 1 GB slats were the ultimate dream. Now the possibilities have expanded significantly, there are dies for 8, 16, 32 GB. Accordingly, the question arises whether to limit ourselves to one module or better to put several.

    Modern motherboards support dual-channel and quad-channel memory. Accordingly, the use of several modules can significantly increase productivity. Another plus is the use of several strips of RAM, in the event of a breakdown of one of them, the computer will continue to work.


    The minimum amount of RAM for a gaming PC is 16 GB. The optimal indicator is 32 GB. If you want to get a significant reserve for years to come, then 64 GB.

    • All posts
    • KVM equipment (equipment) (2)
    • Powerline adapters (2)
    • Security (4)
    • Wireless adapters (4)
    • Power supplies (12)
    • Video cards (videocard) (46)
    • Video surveillance (CCTV) (6)
    • HDDs and SSDs (60)
    • Disk shelves (JBOD) (2)
    • Sound cards (sound card) (3)
    • Instruments (1)
    • Uninterruptible power supplies (UPS, UPS) (26)
    • Cables and patch cords (5)
    • Switches (13)
    • Computer peripherals (42)
    • Computers (PC) (43)
    • Controllers (RAID, HBA, Expander) (6)
    • PC Cases (13)
    • PC Motherboards (30)
    • Multifunction devices (MFPs) (6)
    • Memory modules for PC, laptops and servers (17)
    • Monitors (38)
    • Monoblocks (All-in-one PC) (8)
    • Desktop Storage (NAS) (2)
    • Notebooks (notebook, laptop) (34)
    • General help (49)
    • Cooling (18)
    • Tablets (3)
    • Plotters (1)
    • Printers (6)
    • Software (software) (42)
    • Enterprise Software (15)
    • Projectors (projector) (2)
    • Processors for PCs and servers (49)
    • Workstation (5)
    • Power Distribution Unit (PDU) (1)
    • Consumables for office equipment (1)
    • Wi-Fi Extenders (Repeaters, Repeaters) (3)
    • Routers (routers) (15)
    • Servers and server hardware (44)
    • Network cards (4)
    • Network filters (surge protector) (2)
    • Storage Systems (NAS) (2)
    • Scanners (1)
    • Telecommunication cabinets and racks (6)
    • Telephony (phone) (4)
    • Thin clients (2)
    • Transceivers (5)
    • Smart watches (watch) (1)

    How to cram 16 GB of memory onto a motherboard that does not support this amount / Sudo Null IT News

    Some time ago I put 16 GB of memory on one of my computers. It has a Foxconn P55MX motherboard with a Core i5 750. This old CPU could have been replaced, but it still works fine and does everything I need.

    That’s interesting. The motherboard does not officially support 16GB RAM. The specifications on the above page indicate that a maximum of 8 GB is supported. There are only two slots on the board, so I had a hunch that 8 GB sticks were just rare at the time the motherboard came out. I decided to try anyway. In many cases, motherboards support more RAM than the manufacturer officially claims.

    I made sure that the latest BIOS version is installed (version 946F1P06) and inserted two of my 8 GB sticks. Then booted up Ubuntu 16.04 and everything worked great. I decided that my theory that the board supported more memory than what was stated in the documentation turned out to be correct, and forgot about it. I enjoyed working with the extra RAM and was happy that the game paid off.

    But a few months later I tried to download Windows 10. Basically, the computer runs Linux. Only sometimes you need to boot Windows to check something. It was then that the most interesting began.

    When GRUB appeared, I selected Windows 10 from the menu and pressed Enter. The Windows loading screen briefly appeared, and then I was immediately greeted by a blue screen of death.

    Stop code: ACPI_BIOS_ERROR. I googled a lot and found out that the point is some problem with the ACPI tables in the BIOS. Among other things, ACPI tables tell the operating system how to set up the hardware. Trying to boot from a Windows installation USB resulted in the same error. So, I think Foxconn was not lying. This computer does not really support 16 GB of RAM. Reverting to 8 GB resulted in a successful download. The RAM tests also went well, so it’s not a bad memory bar.

    I tried to contact Foxconn support about a BIOS fix, but got no response. The email address is listed on their website, but it doesn’t work. Maybe Foxconn doesn’t make motherboards anymore. They don’t seem to provide support either.

    At this point, the average person would simply give up, accept 8 GB of memory or buy a new computer. But I didn’t want to give up so easily. I knew the computer could theoretically use 16 GB because it worked fine on Linux. So I started learning ACPI and experimenting with BIOS settings.

    I found an interesting BIOS section where you can play with some memory settings. One of the options was the Memory Remap Feature. She was turned on. The BIOS documentation says that the option allows you to “overlap PCI memory” for mapping above the total physical memory. An internet search indicated that it needs to be enabled when booting on a 64-bit OS. Just for the sake of experiment, I turned it off, and Windows actually booted up! However, she said she could use less than 4GB of RAM. But it was nice: I had a way to get into Windows without having to physically remove the memory bar.

    Ubuntu is the same. With memory remapping disabled, it limited me to less than 4 GB of RAM. At this point, I was sure there was some kind of memory mapping issue going on. I decided to take a closer look at the ACPI_BIOS_ERROR error and its causes – and came across this excellent document for debugging Microsoft drivers, which explains ACPI_BIOS_ERROR error checking.

    According to the document, it was necessary to find four error options that used to be displayed on a blue screen in older versions of Windows. Windows 10 hides all information by default, but you can re-enable the display of additional error information by adding a registry entry. Here’s a great answer on that pointed me in the right direction.

    After editing the registry accordingly, I re-enabled the memory remapping feature in the BIOS and booted into Windows. The BSOD now showed four additional codes in the upper left corner:

    Great! So parameter 1 is 0x0000000000000002. Microsoft documentation says that parameter 1 equal to 0x02 means there is a problem with handling the list of resources for PCI root buses. Since parameters 2, 3, and 4 look like crazy values, they are probably pointers. And if there are only pointers, Microsoft says that the problem is that the PCI decode area overlaps with the list of memory areas returned by the E820 BIOS interface.

    Okay. There is a lot of information, but you can start researching somewhere. I found information on how the E820 BIOS call provides information about memory areas. I then went back to Linux and ran through all the kernel startup information with the dmesg command, focusing on E820 and ACPI. Here is what was found:

     BIOS-e820: [mem 0x0000000000000000-0x000000000009ebff] usable
    BIOS-e820: [mem 0x000000000009ec00-0x000000000009ffff] reserved
    BIOS-e820: [mem 0x00000000000e0000-0x00000000000fffff] reserved
    BIOS-e820: [mem 0x0000000000100000-0x00000000cf77ffff] usable
    BIOS-e820: [mem 0x00000000cf780000-0x00000000cf78dfff] ACPI data
    BIOS-e820: [mem 0x00000000cf78e000-0x00000000cf7cffff] ACPI NVS
    BIOS-e820: [mem 0x00000000cf7d0000-0x00000000cf7dffff] reserved
    BIOS-e820: [mem 0x00000000cf7ed000-0x00000000cfffffff] reserved
    BIOS-e820: [mem 0x00000000fee00000-0x00000000fee00fff] reserved
    BIOS-e820: [mem 0x00000000ffb00000-0x00000000ffffffff] reserved
    BIOS-e820: [mem 0x0000000100000000-0x000000042fffffff] usable 

    Later I saw this:

     acpi PNP0A08:00: ignoring host bridge window [mem 0x400000000-0xfffffffff
    window] (conflicts with System RAM [mem 0x100000000-0x42fffffff])
    PCI host bridge to bus 0000:00
    pci_bus 0000:00: root bus resource [io 0x0000-0x0cf7 window]
    pci_bus 0000:00: root bus resource [io 0x0d00-0xffff window]
    pci_bus 0000:00: root bus resource [mem 0x000a0000-0x000bffff window]
    pci_bus 0000:00: root bus resource [mem 0x000d0000-0x000dffff window]
    pci_bus 0000:00: root bus resource [mem 0xd0000000-0xdfffffff window]
    pci_bus 0000:00: root bus resource [mem 0xf0000000-0xfed8ffff window]
    pci_bus 0000:00: root bus resource [bus 00-ff] 

    Aha! See the conflict warning? I would not have noticed it, but after installing the memory, Linux began to display this message on every boot. I tried to boot into Linux with the memory remapping feature disabled in the BIOS. In this case, the last area of ​​the e820 from 0x100000000 to 0x42fffffffff disappeared, and thus the conflict message also disappeared, and another “bus root resource” appeared in the list with the main bridge window from 0x400000000 to 0xfffffffff.

    So what happens. Linux runs with 16 GB because it notices the conflict and ignores the conflicting PCI range that ACPI provides, while Windows throws up its hands in disgust and throws up a blue screen: “Your BIOS has a problem!” Can’t blame Windows. Indeed, there is an overlap, so you can understand that she is confused.

    At this point, I wasn’t sure if I should continue. The last 768 MB of memory from 0x400000000 to 0x42fffffffff is mapped to the start of a huge region of memory space that the motherboard uses for PCI. Clearly, if the motherboard is waiting for PCI there, something really bad can happen. So the motherboard only supports 15. 25GB of RAM, right?

    But…it works just fine on Linux without the support of this extra PCI mapping area! What if we somehow change the ACPI tables so that the large PCI range starts at 0x430000000 instead of 0x400000000, that is, immediately after the end of the physical RAM. The conflict would then disappear and most of the PCI mapping window would still be available.

    Call accepted.

    I started digging through the ACPI tables. Luckily, Linux makes dumping very easy. There are special tools for this, but the tables can be easily found in sysfs:


    Here they are. I was also pleased that GRUB has the ability to replace your ACPI tables with newer versions. So if you find out which table is involved, you can install a new version of that table using GRUB. Theoretically, Windows will be happy with this.

    Among other tools, I used iasl to parse various ACPI tables and find the value 0x400000000 to replace. It’s most likely a little-endian 64-bit value, so I ran binwalk to search through all the table files:

     binwalk -R '\x00\x00\x00\x00\x04\x00\ x00\x00' * 

    There was one result in the OEMB table. The next 64-bit word after it was 0x1000000000, slightly larger than the end address in the master bridge window conflict message. A very promising lead. The OEMB table is special because it is not a standard table according to the ACPI specifications. Linux complains about an invalid checksum, but I don’t think it matters. I guess you can guess what I did next…

    I made a copy of the OEMB table, replacing the byte 0x00 just before byte 0x04 with 0x30 to change the value to 0x430000000 (remember, this is reversed). I placed this modified copy in the /boot/oemb.dat file. Then I used GRUB to replace the OEMB table with my copy, temporarily inserting the following command into the list of boot commands (typing the letter ‘e’ in GRUB after choosing Ubuntu):

     acpi --exclude=OEMB /boot/oemb.dat 

    The idea is that it tells GRUB to load all ACPI tables except the OEMB table, and then load the contents of /boot/oemb.dat and add it as an additional table. This will effectively replace the old OEMB table with the new OEMB table.

    Ok, I booted Linux and…

     acpi PNP0A08:00: ignoring host bridge window [mem 0x400000000-0xfffffffff
    window] (conflicts with System RAM [mem 0x100000000-0x42fffffff]) 

    The damned mistake hasn’t gone away. wtf? I assumed that the PCI range was actually defined somewhere else, but I didn’t see a specific value defined anywhere. I verified that the corrected OEMB table actually loaded and went back to researching.

    This time I decided to use iasl to decompile the DSDT table. Tracing showed that the DSDT table should contain a method called _CRS , which is responsible for creating this table.

     iasl -d DSDT 

    In the .dsl file, I actually found the _CRS method associated with the PCI bus, and it looked quite complex. The DSDT table contains the actual code, so it’s not easy to look up the table’s values. In my case, the _CRS method turned out to be rather complicated. I interpreted the code as best I could and realized that the _CRS method loads information from another table in memory, starting at 0xCF78E064. I looked again at the Linux boot log in dmesg and found this:

     ACPI: Early table checksum verification disabled
    ACPI: RSDP 0x00000000000F9820 000014 (v00 ACPIAM)
    ACPI: RSDT 0x00000000CF780000 000044 (v01 012110 RSDT0821 20100121 MSFT 00000097)
    ACPI: FACP 0x00000000CF780200 000084 (v01 012110 FACP0821 20100121 MSFT 00000097)
    ACPI: DSDT 0x00000000CF780460 006FE7 (v01 946F1 946F1P06 00000000 INTL 20051117)
    ACPI: FACS 0x00000000CF78E000 000040
    ACPI: APIC 0x00000000CF780390 00008C (v01 012110 APIC0821 20100121 MSFT 00000097)
    ACPI: MCFG 0x00000000CF780420 00003C (v01 012110 OEMMCFG 20100121 MSFT 00000097)
    ACPI: OEMB 0x00000000CF78E040 000082 (v01 012110 OEMB0821 20100121 MSFT 00000097)
    ACPI: HPET 0x00000000CF78A460 000038 (v01 012110 OEMHPET 20100121 MSFT 00000097)
    ACPI: GSCI 0x00000000CF78E0D0 002024 (v01 012110 GMCHSCI 20100121 MSFT 00000097)
    ACPI: DMAR 0x00000000CF7
  • 000090 (v01 AMI OEMDMAR 00000001 MSFT 00000097) ACPI: SSDT 0x00000000CF7917C0 000363 (v01 DpgPmm CpuPm 00000012 INTL 20051117)

    Aha! It loads information from the OEMB table. My hunch was correct from the start. So why didn’t replacing the OEMB table work?

    I looked at the dmesg log again after replacing the OEMB table. What I didn’t understand is that if you try to change tables, then GRUB moves most of them, including OEMB, to another area of ​​memory. The problem is that the DSDT table is hardcoded to look up address 0xCF78E064 for the OEMB table. Therefore, the new table is not visible to the system, it still looks at the original table. Wow.

    The first impulse was to change the DSDT to move it to the new OEMB table location, but I felt it was a bad idea in the long run because newer versions of GRUB might change the memory location where the OEMB user table is stored.

    I settled on a different idea. GRUB has equivalents for write_byte , write_word , write_dword and read_ . What if GRUB changes the original OEMB table on the fly? These days, BIOSes are compressed. The tables are probably loaded into RAM, so it is theoretically possible to change the values.

    So I did. As a temporary test, I added the following command to the GRUB boot sequence:

     write_byte 0xCF78E0B5 0x30 

    It replaces the byte 0x00 immediately before byte 0x04 with the value 0x30, converting the 64-bit PCI start address of this end range to 0x0000000430000000. I didn’t update the checksum of the OEMB table because Linux was already whining that the checksum was wrong, so obviously it doesn’t care.

    I rebooted into Linux and anxiously checked the PCI dmesg log.

     PCI host bridge to bus 0000:00
    pci_bus 0000:00: root bus resource [io 0x0000-0x0cf7 window]
    pci_bus 0000:00: root bus resource [io 0x0d00-0xffff window]
    pci_bus 0000:00: root bus resource [mem 0x000a0000-0x000bffff window]
    pci_bus 0000:00: root bus resource [mem 0x000d0000-0x000dffff window]
    pci_bus 0000:00: root bus resource [mem 0xd0000000-0xdfffffff window]
    pci_bus 0000:00: root bus resource [mem 0xf0000000-0xfed8ffff window]
    pci_bus 0000:00: root bus resource [mem 0x430000000-0xfffffffff window]
    pci_bus 0000:00: root bus resource [bus 00-ff] 

    Success! Window 0x430000000-0xfffffffffff appeared as a new valid window in the list and the conflict warning disappeared. After checking that Linux was still working fine, I tried to boot into Windows with the same hack.

    It worked! I can now boot into Windows with 16GB of RAM using GRUB as bootloader with the above write_byte command. The Windows 10 bootloader obviously won’t work. And if I ever reinstall Windows, I’ll probably have to temporarily remove one stick of RAM in order for the installer to boot. But it works!

    To permanently patch GRUB, I created a file /etc/grub.d/00_patchbios with the following content:

     # This file patches the BIOS in my Foxconn P55MX motherboard to work
    # properly when I have 16 GB of RAM installed. It's a nasty hack.
    # Basically, the BIOS is hardcoded in the OEMB ACPI table
    # to have a PCI address range from 0x400000000 to 0xfffffffff, but
    # that overlaps with 16 GB of RAM being installed, because the RAM
    # uses up (among other ranges) 0x100000000 to 0x42fffffff.
    # This patch changes the table to actually list a PCI range of:
    # 0x430000000 to 0xfffffffff
    echo "write_byte 0xCF78E0B5 0x30" 

    Then I made the script executable and ran sudo update-grub .