summaryrefslogtreecommitdiff
path: root/Documentation/ABI/stable/sysfs-firmware-efi-vars
blob: 46ccd233e3594e12234e0da9f985df232bef5664 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
What:		/sys/firmware/efi/vars
Date:		April 2004
Contact:	Matt Domsch <Matt_Domsch@dell.com>
Description:
		This directory exposes interfaces for interactive with
		EFI variables.  For more information on EFI variables,
		see 'Variable Services' in the UEFI specification
		(section 7.2 in specification version 2.3 Errata D).

		In summary, EFI variables are named, and are classified
		into separate namespaces through the use of a vendor
		GUID.  They also have an arbitrary binary value
		associated with them.

		The efivars module enumerates these variables and
		creates a separate directory for each one found.  Each
		directory has a name of the form "<key>-<vendor guid>"
		and contains the following files:

		=============== ========================================
		attributes:	A read-only text file enumerating the
				EFI variable flags.  Potential values
				include:

				EFI_VARIABLE_NON_VOLATILE
				EFI_VARIABLE_BOOTSERVICE_ACCESS
				EFI_VARIABLE_RUNTIME_ACCESS
				EFI_VARIABLE_HARDWARE_ERROR_RECORD
				EFI_VARIABLE_AUTHENTICATED_WRITE_ACCESS

				See the EFI documentation for an
				explanation of each of these variables.

		data:		A read-only binary file that can be read
				to attain the value of the EFI variable

		guid:		The vendor GUID of the variable.  This
				should always match the GUID in the
				variable's name.

		raw_var:	A binary file that can be read to obtain
				a structure that contains everything
				there is to know about the variable.
				For structure definition see "struct
				efi_variable" in the kernel sources.

				This file can also be written to in
				order to update the value of a variable.
				For this to work however, all fields of
				the "struct efi_variable" passed must
				match byte for byte with the structure
				read out of the file, save for the value
				portion.

				**Note** the efi_variable structure
				read/written with this file contains a
				'long' type that may change widths
				depending on your underlying
				architecture.

		size:		As ASCII representation of the size of
				the variable's value.
		=============== ========================================


		In addition, two other magic binary files are provided
		in the top-level directory and are used for adding and
		removing variables:

		=============== ========================================
		new_var:	Takes a "struct efi_variable" and
				instructs the EFI firmware to create a
				new variable.

		del_var:	Takes a "struct efi_variable" and
				instructs the EFI firmware to remove any
				variable that has a matching vendor GUID
				and variable key name.
		=============== ========================================