30

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:

  1. The full name for UEFI with CSM is

    UEFI with Compatibility Support Module

    which as its name suggests, is a "supprt module" for UEFI.

  2. 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.

  3. 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".

  4. 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?

2
  • I think you forgot to put in a link. In my experience enabling CSM mode allows for the legacy booting - I.e. MBR/BIOS mode or whatever you want to call it. Without it you can only boot a UEFI OS. Commented Jan 11, 2018 at 4:52
  • @Appleoddity Well, I did forget it :) I've added another clue as well.
    – iBug
    Commented Jan 11, 2018 at 5:06

4 Answers 4

22

"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.

2
  • 1
    "Fast Boot" is kept disabled through all tests.
    – iBug
    Commented Jan 11, 2018 at 5:50
  • 3
    Also, "Fast Boot" is made for Windows 8 and up, not only Windows 10.
    – iBug
    Commented Jan 11, 2018 at 5:51
2

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

3
  • This answer is very confusing and I'm not sure if it answers anything. (1) "Boot loader" is the piece of code that the system boots into from UEFI/BIOS. It's provided by the operating system, not by the firmware. You seem to be using it to mean boot manager, ie. the piece that chooses which boot loader to use. (2) Partition table schemes aren't tied tightly to boot modes. UEFI is "GPT-native" so to say and MBR was invented with BIOS in mind, but UEFI can boot from MBR and GPT contains a "protective MBR" for backwards compatibility with BIOS.
    – gronostaj
    Commented Sep 16, 2022 at 6:16
  • [cont.] (although Windows will only boot from MBR is BIOS mode or from GPT in UEFI mode, but that's a limitation of Windows and not of BIOS/UEFI/MBR/GPT). (3) CSM is literally the part that lets UEFI boot in legacy mode. It's its only purpose and there's no way to achieve this functionality without CSM. So "UEFI only with CSM on" is self-contradictory. If you wanted to express that the UEFI+legacy is achieved by combining plain UEFI mode with CSM then that's spot on - but it's a very confusing way to put it.
    – gronostaj
    Commented Sep 16, 2022 at 6:23
  • Here's my explanation of the UEFI terminology and boot if you're interested.
    – gronostaj
    Commented Sep 16, 2022 at 6:34
2

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.

1

Maybe asking first What is CSM option might have been better?

People really make a mess out of what is still always just a UEFI protocol/driver (the word "BIOS" being used simultaneously as a shorthand for "firmware type", "OpROM technology" and "MBR boot" doesn't help though).

With this said, I wouldn't know about your laptop but if it's aged similarly to your 2013 LGA 1150 motherboard, then it might have been carrying an equally as old firmware like Aptio 4 (which was itself coming from an era of transition). In turn that could contain some leftover from the time when UEFI firmware was forced to boot BIOS-like-only.

Hence the tri-state toggle (each setting very broadly corresponding to an UEFI class) despite the fact that it doesn't really make sense to add a choice that is a strict subset of the capabilities of CSM proper. I.e. again, the thing cannot exist without or outside of UEFI (check the whitepaper I mention in the first link for more details).

But for some reason your OEM decided to re-frame its logic to have cut and dried "separate" boot tracks, even though the thing is not technically "exclusive" to any (well, on linux that is at least.. Windows is a little can of worms). Maybe they wanted to avoid as much as possible users unwittingly booting the old fashioned way? Or perhaps they wrote the setup menu code with the bare minimum of extra services to support W7 in mind, for those systems sold close to the W8 release date and dreaming of an expedite upgrade path?

Because that's the other factor that you are missing out: W7 isn't going to boot (out of the box at least) in a pure UEFI environment. It's either a full legacy installation, or an UEFI one tied to CSM (mostly for video output purposes, it's funny that your third point was already pretty close to the hacks to mix up partition schemes). Oh, and alas classpnp.sys usually means next to nothing.

So.. long story short, from what you are telling here, "UEFI with CSM" is therefore simply CSM except it has been made just an aid for native UEFI-aware OSs rather than the normal "full suite" of BIOS emulation (unclear if just out of dropping the MBR parsing, because of only accepting UEFI executables, or due to gutting all the extra code after "setting up BIOS interrupt calls and the legacy VBIOS").

In a sense it does exactly what it's written on the tin, but in another it's a pretty specious moniker too (also, please, your desktop has the option named LEGACY+UEFI which would have spelt it already clear).

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .