0001 What: /sys/firmware/efi/vars
0002 Date: April 2004
0003 Contact: Matt Domsch <Matt_Domsch@dell.com>
0004 Description:
0005 This directory exposes interfaces for interactive with
0006 EFI variables. For more information on EFI variables,
0007 see 'Variable Services' in the UEFI specification
0008 (section 7.2 in specification version 2.3 Errata D).
0009
0010 In summary, EFI variables are named, and are classified
0011 into separate namespaces through the use of a vendor
0012 GUID. They also have an arbitrary binary value
0013 associated with them.
0014
0015 The efivars module enumerates these variables and
0016 creates a separate directory for each one found. Each
0017 directory has a name of the form "<key>-<vendor guid>"
0018 and contains the following files:
0019
0020 =============== ========================================
0021 attributes: A read-only text file enumerating the
0022 EFI variable flags. Potential values
0023 include:
0024
0025 EFI_VARIABLE_NON_VOLATILE
0026 EFI_VARIABLE_BOOTSERVICE_ACCESS
0027 EFI_VARIABLE_RUNTIME_ACCESS
0028 EFI_VARIABLE_HARDWARE_ERROR_RECORD
0029 EFI_VARIABLE_AUTHENTICATED_WRITE_ACCESS
0030
0031 See the EFI documentation for an
0032 explanation of each of these variables.
0033
0034 data: A read-only binary file that can be read
0035 to attain the value of the EFI variable
0036
0037 guid: The vendor GUID of the variable. This
0038 should always match the GUID in the
0039 variable's name.
0040
0041 raw_var: A binary file that can be read to obtain
0042 a structure that contains everything
0043 there is to know about the variable.
0044 For structure definition see "struct
0045 efi_variable" in the kernel sources.
0046
0047 This file can also be written to in
0048 order to update the value of a variable.
0049 For this to work however, all fields of
0050 the "struct efi_variable" passed must
0051 match byte for byte with the structure
0052 read out of the file, save for the value
0053 portion.
0054
0055 **Note** the efi_variable structure
0056 read/written with this file contains a
0057 'long' type that may change widths
0058 depending on your underlying
0059 architecture.
0060
0061 size: As ASCII representation of the size of
0062 the variable's value.
0063 =============== ========================================
0064
0065
0066 In addition, two other magic binary files are provided
0067 in the top-level directory and are used for adding and
0068 removing variables:
0069
0070 =============== ========================================
0071 new_var: Takes a "struct efi_variable" and
0072 instructs the EFI firmware to create a
0073 new variable.
0074
0075 del_var: Takes a "struct efi_variable" and
0076 instructs the EFI firmware to remove any
0077 variable that has a matching vendor GUID
0078 and variable key name.
0079 =============== ========================================