Heinrich, On Fri, Jan 03, 2020 at 01:17:05AM +0100, Heinrich Schuchardt wrote: > On 4/19/19 5:22 AM, AKASHI Takahiro wrote: > >There are several reasons that I want to rework/refactor bootefi command > >as well as bootmgr: > >* Some previous commits on bootefi.c have made the code complicated > > and a bit hard to understand. > > > >* do_bootefi_exec() would better be implemented using load_image() along > > with start_image() to be aligned with UEFI interfaces. > > > >* Contrary to the other part, efi_selftest part of the code is unusual > > in terms of loading/execution path in do_bootefi(). > > > >* When we will support "secure boot" in the future, EFI Boot Manager > > is expected to be invoked as a standalone command without any arguments > > to mitigate security surfaces. > > > >In this patch set, > >Patch#1 to #7 are preparatory patches for patch#8. > >Patch#8 is a core part of reworking. > >Patch#9 is for standalone boot manager. > > > ># Please note that some patches, say patch#2 and #3, can be combined into one > ># but I intentionally keep them separated to clarify my intentions of > >changes. > > > >Issues: > >* It would be better off to change the semantics of efi_dp_from_name(). > >no chance to free loaded_image_info->load_options. (see patch #8) > > > >-Takahiro Akashi > > Hello Takahiro, > > with the `efidebug boot add` command we can define load options for the > BootXXXX variables. > > But in do_efibootmgr() we call do_bootefi_exec() which calls > set_load_options() and passes the value of environment variable bootargs > as load options or if the variable is not set an empty string. > > Here is an example console output: > > => setenv bootargs This is a value from bootargs > => efidebug boot add 0000 hello scsi 0:1 helloworld.efi 'This is a value > from efidebug' > => efidebug boot order 0000 > => bootefi bootmgr > Booting: hello > Hello, world! > Running on UEFI 2.8 > Have SMBIOS table > Have device tree > Load options: This is a value from bootargs > ## Application terminated, r = 0 > > Now the same after deleting variable bootargs: > > => setenv bootargs > => bootefi bootmgr > Booting: hello > Hello, world! > Running on UEFI 2.8 > Have SMBIOS table > Have device tree > Load options: <none> > ## Application terminated, r = 0 > =>
Yeah, this is not what I intended. > What behavior would you expect: > > a) if the boot option has a load options value, > b) if the boot option has no load options value? > > One solution would be to define that bootargs is always ignored if the > boot manager is used. I agree. Basically, "bootargs" is only for "bootefi <addr>" command, while "BootXXXX" should work in the exact same way as the UEFI specification defines. Thanks, -Takahiro Akashi > Best regards > > Heinrich