
On 10/24/19 8:17 AM, AKASHI Takahiro wrote:
With this patch, when setting UEFI variable with "env set -e" command, we will be able to
- specify vendor guid with "-guid guid",
- specify variable attributes, BOOTSERVICE_ACCESS, RUNTIME_ACCESS, respectively with "-bs" and "-rt",
- append a value instead of overwriting with "-a",
- use memory as variable's value instead of explicit values given at the command line with "-i address,size"
If guid is not explicitly given, default value will be used.
Meanwhile, "env print -e," will be modified so that it will NOT dump a variable's value if '-n' is specified.
Signed-off-by: AKASHI Takahiro takahiro.akashi@linaro.org
Looks fine to me. The only strange behavior is:
=> printenv -e OsIndicationsSupported: EFI_GLOBAL_VARIABLE_GUID: BS|RT, DataSize = 0x8 00000000: 00 00 00 00 00 00 00 00 ........ PlatformLang: EFI_GLOBAL_VARIABLE_GUID: NV|BS|RT, DataSize = 0x6 00000000: 65 6e 2d 55 53 00 en-US. PlatformLangCodes: EFI_GLOBAL_VARIABLE_GUID: BS|RT, DataSize = 0x6 00000000: 65 6e 2d 55 53 00 en-US. RuntimeServicesSupported: EFI_GLOBAL_VARIABLE_GUID: BS|RT, DataSize = 0x2 00000000: 80 05 .. => env set -e -guid 00000001-0002-0003-0004-010203040506 a b EFI: Entry efi_set_variable("a" 00000001-0002-0003-0004-010203040506 0 1 000000007eef7610) EFI: Exit: efi_set_variable: 14 ## Failed to set EFI variable (not found)
I would have expected ## Failed to set EFI variable (invalid parameter)
The UEFI spec has: If a preexisting variable is rewritten with no access attributes specified, the variable will be deleted.
But "a" is not a preexisting variable. Instead the attributes are invalid.
But as this is a bug in a code that you did not touch:
Reviewed-by: Heinrich Schuchardt xypron.glpk@gmx.de