
On Thu, Jan 14, 2021 at 02:11:33PM +0900, AKASHI Takahiro wrote:
Ilias,
On Wed, Jan 13, 2021 at 01:11:49PM +0200, Ilias Apalodimas wrote:
The UEFI spec allow a packed array of UEFI device paths in the FilePathList[] of an EFI_LOAD_OPTION. The first file path must describe the laoded image but the rest are OS specific. Previous patches parse the device path and try to use the second member of the array as an initrd. So let's modify efidebug slightly and install the second file described in the command line as the initrd device path.
I have a concern about your proposed command line syntax. It takes a lot of parameters as a whole which makes it hard to understand it at a glance, easily overflowing the width of terminal window.
It will even get worse if we want to take dtb as a third device path, and what if we want to specify dtb, but not initrd?
Moreover, if we want to add support for non-linux executabes which utilize extra device paths (neither initrd nor dtb) in a boot load option, the syntax will be problematic.
Maybe we should add explicit commands in efidebug then? Something like: efidebug initrd add 0002 virtio 1 initrd_file efidebug dtb add 0002 virtio 1 dtb
That would untangle the do_efi_boot_add() function, make our lives easier on adding things like 'kernel <no initrd> valid dtb' and should be much easier to use. The user will just have to make sure the boot order numbers match when adding files
[...]
Cheers /Ilias