What exactly is "UEFI with CSM" boot mode?
Under this question, I was told that "UEFI with CSM" is essentially BIOS mode. It made me quite confused because what I've learnt over the years is far from that.
As per my observation, I think CSM is a special mechanism that allows previous "not canonical" UEFI OS to boot.
Here's my observation:
-
The full name for UEFI with CSM is
UEFI with Compatibility Support Module
which as its name suggests, is a "supprt module" for UEFI.
-
I have three partitions on the primary drive in my computer. The drive is formatted to GPT and the three partitions are one ESP (EFI System Partition) and two Primary (Windows 10/Windows 7 each one). There are three options for "Boot Mode" in the motherboard settings, "Legacy", "UEFI" and "UEFI with CSM".
If it's set to "Legacy", the computer tells me "No operating system found". That's correct. If it's set to "UEFI with CSM", both Windows boots normally. If it's set to "UEFI", then only Windows 10 can boot. From the safe boot log I can see Windows 7 gets stuck at
classpnp.sys
.I tried removing
\Windows\System32\winload.exe
from both volumes (I did that in a Windows To Go environment), and nothing went wrong, so I restored the file. I plugged in another drive in MBR, containint two partitions. One primary active with FAT32 and another primary with NTFS, with another Windows 7 installed. It seems I however just can't make it boot if the MB settings is set to either "UEFI" or "UEFI with CSM", but it boots perfectly when set to "Legacy". If I edit the BCD in the EFI partition on the primary disk to add an entry for this experimental Windows 7 installation, it boots under "UEFI with CSM", but still gets stuck at
classpnp.sys
in "UEFI".I have another computer with a MSI B85 motherboard that has a switch named "CSM". If it's enabled then there are two options available in "Boot Mode", "UEFI" and "Legacy". If it's disabled then Boot Mode is locked to UEFI. In that case "UEFI" mode with CSM enabled allows Windows 7 to boot, but it won't boot with CSM disabled.
The above experiments made me believe "UEFI with CSM" is a special mode of EFI, so why am I still told it's BIOS?
"UEFI with CSM" usually means mixed mode in which both native (UEFI) and CSM-based (BIOS) boot is available. The boot menu will show a mix of native UEFI boot entries and CSM "bootable disk" entries in this case.
However, one important side effect of disabling CSM is that it'll allow certain UEFI-only features to be activated (such as "fast boot"), at the same time preventing some BIOS-only features (such as PCI option ROM support).
It is possible that "fast boot" (despite being made for Windows 10) is somewhat buggy and breaks the boot process.
I, personally, think that UEFI ONLY mode is NOT to be paired with CSM ON. In any case.
In the normal UEFI boot-loaders there are three modes, usually, as of my best understanding is:
[1] Legacy ONLY [msdos partitioning table] with CSM mode set to ON
[2] UEFI + Legacy [GPT partitioning table] with CSM mode set to ON
[3] UEFI ONLY [GPT partitioning table] with CSM mode set to OFF
After carefully rethinking, the following popped in my mind:
Maybe some of the UEFI boot-loaders have only two modes:
[1] Legacy ONLY [msdos partitioning table] with CSM mode set to ON
[2] NONE
[3] UEFI ONLY [GPT partitioning table] with CSM mode set to OFF
Where case [2] is played as [3] with CSM mode set to ON. In other words:
[1] Legacy ONLY [msdos partitioning table] with CSM mode set to ON
[2] UEFI ONLY [GPT partitioning table] with CSM mode set to ON.
[3] UEFI ONLY [GPT partitioning table] with CSM mode set to OFF
nobody
As you've noticed, the Compatibility Support Module can be required by the operating system for UEFI boot, not just legacy boot. This is the case for Windows 7. There are in fact name-brand computers that even lack a CSM and cannot boot Windows 7 at all.
I've also noticed having it enabled/disabled can have other effects, like changing which monitor (in a multi-monitor system) or screen resolution is used during boot. It is also, in my experience, required to turn it off to do UEFI network boot. Otherwise, only the legacy network boot firmware is accessible, which cannot boot an operating system in UEFI mode.