[U-Boot] [PATCH v6 1/1] cmd: env: extend "env [set|print] -e" to manage UEFI variables
AKASHI Takahiro
takahiro.akashi at linaro.org
Mon Oct 28 00:40:04 UTC 2019
On Fri, Oct 25, 2019 at 08:17:03PM +0200, Heinrich Schuchardt wrote:
> 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 at 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.
This might justify all arbitrary attribute/option checks being removed
at command level, at least for test purpose.
Thank you for your review.
-Takahiro Akashi
> But as this is a bug in a code that you did not touch:
>
> Reviewed-by: Heinrich Schuchardt <xypron.glpk at gmx.de>
More information about the U-Boot
mailing list