| 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. |
| =============== ======================================== |