Merge branch 'next' into for-linus
[sfrench/cifs-2.6.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                 attributes:     A read-only text file enumerating the
21                                 EFI variable flags.  Potential values
22                                 include:
23
24                                 EFI_VARIABLE_NON_VOLATILE
25                                 EFI_VARIABLE_BOOTSERVICE_ACCESS
26                                 EFI_VARIABLE_RUNTIME_ACCESS
27                                 EFI_VARIABLE_HARDWARE_ERROR_RECORD
28                                 EFI_VARIABLE_AUTHENTICATED_WRITE_ACCESS
29
30                                 See the EFI documentation for an
31                                 explanation of each of these variables.
32
33                 data:           A read-only binary file that can be read
34                                 to attain the value of the EFI variable
35
36                 guid:           The vendor GUID of the variable.  This
37                                 should always match the GUID in the
38                                 variable's name.
39
40                 raw_var:        A binary file that can be read to obtain
41                                 a structure that contains everything
42                                 there is to know about the variable.
43                                 For structure definition see "struct
44                                 efi_variable" in the kernel sources.
45
46                                 This file can also be written to in
47                                 order to update the value of a variable.
48                                 For this to work however, all fields of
49                                 the "struct efi_variable" passed must
50                                 match byte for byte with the structure
51                                 read out of the file, save for the value
52                                 portion.
53
54                                 **Note** the efi_variable structure
55                                 read/written with this file contains a
56                                 'long' type that may change widths
57                                 depending on your underlying
58                                 architecture.
59
60                 size:           As ASCII representation of the size of
61                                 the variable's value.
62
63
64                 In addition, two other magic binary files are provided
65                 in the top-level directory and are used for adding and
66                 removing variables:
67
68                 new_var:        Takes a "struct efi_variable" and
69                                 instructs the EFI firmware to create a
70                                 new variable.
71
72                 del_var:        Takes a "struct efi_variable" and
73                                 instructs the EFI firmware to remove any
74                                 variable that has a matching vendor GUID
75                                 and variable key name.