From Gentoo Wiki
Jump to:navigation Jump to:search

EFI and the CSM

I know of one EFI that has a CSM, and is not a UEFI: Apple EFI 1.1 on the first Intel Macs is not UEFI, but it has a CSM. Apple used Intel EFI 1.10 on the first Intel Macs, and added a CSM for Boot Camp, so that those Intel Macs could boot Windows XP in BIOS mode. They used hybrid partitions too, which is a quite limiting factor, as only 3 partitions remain for all the operating systems (1 primary partition is used for the EFI system partition ESP).

That's why I used the term "(U)EFI" and "EFI/UEFI" in section EFI-CSM: BIOS mode.

Luttztfz (talk) 08:52, 16 December 2023 (UTC)

We should make sure of that. Boot camp does include BIOS emulation; is that actually EFI CSM or is it some home-brew apple solution? To get to the bottom of this we'll probably need to read some specs; is CSM part of EFI 1.1? If so, fine, if not then this is some custom apple thing that just behaves a bit like the CSM. I'd suggest that the Tianocore codebase might make a good place to start, too. In the short term, since still working pre-UEFI apple Intel laptops are few and far between anyway let's leave it as-is until we have a decent reference to say that it is CSM.
-Kangie (talk) 09:28, 16 December 2023 (UTC)
More info on the CSM:
To my knowledge, Apple used EFI 1.1 from Intel, which was also used to create TianoCore, which in turn became UEFI 2.0. The main difference between EFI 1.1 and UEFI 2.0 is that Intel gave it away for free, including the source code, and that it got ported to 64-bit-x64 ("amd64" or "x64"), whereas EFI 1.1 on x86 was originally 32-bit only ("IA-32"). EFI loaders reflect that, the fallback loaders are still \EFI\BOOT\BOOTIA32.EFI (for IA-32) and \EFI\BOOT\BOOTX64.EFI (for "x64" aka "amd64"). Related:
The CSM was added by Apple, and Apple also changed EFI 1.1 a bit to support HFS+ and legacy booting from Universal Mac OS X boot images and such. The CSM itself is, to my knowledge, the same used in UEFI. Reference:
Luttztfz (talk) 09:45, 16 December 2023 (UTC)
Follow-up: To be honest, it doesn't really matter that much. I'm happy if we leave it at UEFI, but since I used Intel Macs (which clearly don't have UEFI) with a CSM, I wanted to reflect that. Also, in context (see rodsbooks) we call them EFI loaders and so on, so we probably should clarify that EFI and UEFI is the same, only it's called EFI prior to version 2.0, and UEFI since version 2.0.
I'm also not locked in on the name "EFI-CSM".
Luttztfz (talk) 09:55, 16 December 2023 (UTC)