On 6/16/24 7:22 PM, Wols Lists wrote: > On 16/06/2024 23:39, Nuno Silva wrote: >>> And of course, all the rules get bent by the various >>> manufacturers. Bear in mind that basic EFI predates vFAT so even in >>> UEFI vFAT isn't actually mandatory. Apple don't use it, iirc. There's >>> nothing stopping GNU's OpenBIOS project or whatever it is using >>> ext4. But vFAT is the official "lowest common denominator" which >>> everything must support if it's not "single vendor for hardware and >>> software". Which is why, of course, MS can't play fun and games - if >>> they say Windows won't support vFAT they'll get hammered for >>> anti-trust. > >> But there are systems using exFAT, right? You mean UEFI firmwares will >> happily accept other filesystems? > > I don't know. But the formal specification of UEFI says it must accept > vFAT (I believe exFAT was not acceptable because Microsoft had patented > it). It does not say it can't accept other stuff. Which is why Apple > doesn't use vFAT. > > And it explicitly states the version of vFAT. I don't know which > version, but it's along the lines of "version X dated Y", so that is > locked in stone. > > So basically, the UEFI spec says it CAN accept multiple filesystems, but > it MUST accept vFAT if it wants the moniker "Universal". So unless (and > probably even if) it's Apple hardware, it does support vFAT.
https://uefi.org/specs/UEFI/2.10/13_Protocols_Media_Access.html#file-system-format """ EFI encompasses the use of FAT32 for a system partition, and FAT12 or FAT16 for removable media. The FAT32 system partition is identified by an OSType value other than that used to identify previous versions of FAT. This unique partition type distinguishes an EFI defined file system from a normal FAT file system. The file system supported by EFI includes support for long file names. """ It is permissible to additionally ship your own custom UEFI firmware with arbitrary filesystem drivers that the specification does not mandate support for, and Apple does this, but since Apple has to follow the UEFI spec they support FAT as well. You will notice upon reading, that UEFI mandates support for fat 12, but permits a conforming implementation only support it for "removable media". The firmware MUST support filesystem drivers for fat 12 / 16 / 32 in order to satisfy this requirement, but is allowed to decline to use the 12 / 16 drivers unless the drive type is "removable media". What that means in practice isn't obvious. But I somehow doubt any firmware vendor is adding extra code to exercise their right to reject the use of a driver they already had to commit to providing. -- Eli Schwartz
OpenPGP_0x84818A6819AF4A9B.asc
Description: OpenPGP public key
OpenPGP_signature.asc
Description: OpenPGP digital signature