1.. SPDX-License-Identifier: GPL-2.0 2 3======================================= 4efivarfs - a (U)EFI variable filesystem 5======================================= 6 7The efivarfs filesystem was created to address the shortcomings of 8using entries in sysfs to maintain EFI variables. The old sysfs EFI 9variables code only supported variables of up to 1024 bytes. This 10limitation existed in version 0.99 of the EFI specification, but was 11removed before any full releases. Since variables can now be larger 12than a single page, sysfs isn't the best interface for this. 13 14Variables can be created, deleted and modified with the efivarfs 15filesystem. 16 17efivarfs is typically mounted like this:: 18 19 mount -t efivarfs none /sys/firmware/efi/efivars 20 21Due to the presence of numerous firmware bugs where removing non-standard 22UEFI variables causes the system firmware to fail to POST, efivarfs 23files that are not well-known standardized variables are created 24as immutable files. This doesn't prevent removal - "chattr -i" will work - 25but it does prevent this kind of failure from being accomplished 26accidentally. 27 28.. warning :: 29 When a content of an UEFI variable in /sys/firmware/efi/efivars is 30 displayed, for example using "hexdump", pay attention that the first 31 4 bytes of the output represent the UEFI variable attributes, 32 in little-endian format. 33 34 Practically the output of each efivar is composed of: 35 36 +-----------------------------------+ 37 |4_bytes_of_attributes + efivar_data| 38 +-----------------------------------+ 39 40*See also:* 41 42- Documentation/admin-guide/acpi/ssdt-overlays.rst 43- Documentation/ABI/stable/sysfs-firmware-efi-vars 44