Merge tag 'efi_updates_for_v5.11' of git://git.kernel.org/pub/scm/linux/kernel/git...
[linux-2.6-microblaze.git] / Documentation / ABI / stable / sysfs-firmware-efi-vars
1 What:           /sys/firmware/efi/vars
2 Date:           April 2004
3 Contact:        Matt Domsch <Matt_Domsch@dell.com>
4 Description:
5                 This directory exposes interfaces for interactive with
6                 EFI variables.  For more information on EFI variables,
7                 see 'Variable Services' in the UEFI specification
8                 (section 7.2 in specification version 2.3 Errata D).
9
10                 In summary, EFI variables are named, and are classified
11                 into separate namespaces through the use of a vendor
12                 GUID.  They also have an arbitrary binary value
13                 associated with them.
14
15                 The efivars module enumerates these variables and
16                 creates a separate directory for each one found.  Each
17                 directory has a name of the form "<key>-<vendor guid>"
18                 and contains the following files:
19
20                 =============== ========================================
21                 attributes:     A read-only text file enumerating the
22                                 EFI variable flags.  Potential values
23                                 include:
24
25                                 EFI_VARIABLE_NON_VOLATILE
26                                 EFI_VARIABLE_BOOTSERVICE_ACCESS
27                                 EFI_VARIABLE_RUNTIME_ACCESS
28                                 EFI_VARIABLE_HARDWARE_ERROR_RECORD
29                                 EFI_VARIABLE_AUTHENTICATED_WRITE_ACCESS
30
31                                 See the EFI documentation for an
32                                 explanation of each of these variables.
33
34                 data:           A read-only binary file that can be read
35                                 to attain the value of the EFI variable
36
37                 guid:           The vendor GUID of the variable.  This
38                                 should always match the GUID in the
39                                 variable's name.
40
41                 raw_var:        A binary file that can be read to obtain
42                                 a structure that contains everything
43                                 there is to know about the variable.
44                                 For structure definition see "struct
45                                 efi_variable" in the kernel sources.
46
47                                 This file can also be written to in
48                                 order to update the value of a variable.
49                                 For this to work however, all fields of
50                                 the "struct efi_variable" passed must
51                                 match byte for byte with the structure
52                                 read out of the file, save for the value
53                                 portion.
54
55                                 **Note** the efi_variable structure
56                                 read/written with this file contains a
57                                 'long' type that may change widths
58                                 depending on your underlying
59                                 architecture.
60
61                 size:           As ASCII representation of the size of
62                                 the variable's value.
63                 =============== ========================================
64
65
66                 In addition, two other magic binary files are provided
67                 in the top-level directory and are used for adding and
68                 removing variables:
69
70                 =============== ========================================
71                 new_var:        Takes a "struct efi_variable" and
72                                 instructs the EFI firmware to create a
73                                 new variable.
74
75                 del_var:        Takes a "struct efi_variable" and
76                                 instructs the EFI firmware to remove any
77                                 variable that has a matching vendor GUID
78                                 and variable key name.
79                 =============== ========================================