On 05.03.21 23:23, 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 loaded 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.
>
> Signed-off-by: Ilias Apalodimas <ilias.apalodi...@linaro.org>
> ---
>  cmd/efidebug.c                                | 193 ++++++++++++++----
>  doc/board/emulation/qemu_capsule_update.rst   |   4 +-
>  doc/uefi/uefi.rst                             |   2 +-
>  .../test_efi_capsule/test_capsule_firmware.py |   6 +-
>  test/py/tests/test_efi_secboot/test_signed.py |  16 +-
>  .../test_efi_secboot/test_signed_intca.py     |   8 +-
>  .../tests/test_efi_secboot/test_unsigned.py   |   8 +-
>  7 files changed, 179 insertions(+), 58 deletions(-)
>
> diff --git a/cmd/efidebug.c b/cmd/efidebug.c
> index bbbcb0a54643..9a1c471a3eaa 100644
> --- a/cmd/efidebug.c
> +++ b/cmd/efidebug.c
> @@ -9,6 +9,8 @@
>  #include <common.h>
>  #include <command.h>
>  #include <efi_dt_fixup.h>
> +#include <efi_helper.h>
> +#include <efi_load_initrd.h>
>  #include <efi_loader.h>
>  #include <efi_rng.h>
>  #include <exports.h>
> @@ -19,6 +21,7 @@
>  #include <part.h>
>  #include <search.h>
>  #include <linux/ctype.h>
> +#include <linux/err.h>
>
>  #define BS systab.boottime
>  #define RT systab.runtime
> @@ -794,6 +797,65 @@ static int do_efi_show_tables(struct cmd_tbl *cmdtp, int 
> flag,
>       return CMD_RET_SUCCESS;
>  }
>
> +/**
> + * add_initrd_instance() - Append a device path to load_options pointing to 
> an
> + *                      inirtd
> + *
> + * @argc:    Number of arguments
> + * @argv:    Argument array
> + * @file_path        Existing device path, the new instance will be appended
> + * Return:   Pointer to the device path or ERR_PTR
> + *
> + */
> +static
> +struct efi_device_path *add_initrd_instance(const char *dev, const char 
> *part,
> +                                         const char *file,
> +                                         const struct efi_device_path *fp,
> +                                         efi_uintn_t *fp_size)
> +{
> +     struct efi_device_path *tmp_dp = NULL, *tmp_fp = NULL;
> +     struct efi_device_path *final_fp = NULL, *initrd_dp = NULL;
> +     efi_status_t ret;
> +     const struct efi_initrd_dp id_dp = {
> +             .vendor = {
> +                     {
> +                     DEVICE_PATH_TYPE_MEDIA_DEVICE,
> +                     DEVICE_PATH_SUB_TYPE_VENDOR_PATH,
> +                     sizeof(id_dp.vendor),
> +                     },
> +                     EFI_INITRD_MEDIA_GUID,
> +             },
> +             .end = {
> +                     DEVICE_PATH_TYPE_END,
> +                     DEVICE_PATH_SUB_TYPE_END,
> +                     sizeof(id_dp.end),
> +             }
> +     };
> +
> +     ret = efi_dp_from_name(dev, part, file, &tmp_dp, &tmp_fp);
> +     if (ret != EFI_SUCCESS) {
> +             printf("Cannot create device path for \"%s %s\"\n", part, file);
> +             goto out;
> +     }
> +
> +     initrd_dp =
> +             efi_dp_append_instance((const struct efi_device_path *)&id_dp,

Please, pass &id_dp.end here to avoid a superfluous end node.

Best regards

Heinrich

> +                                    tmp_fp);
> +     if (!initrd_dp) {
> +             printf("Cannot append media vendor device path path\n");
> +             goto out;
> +     }
> +     final_fp = efi_dp_concat(fp, initrd_dp);
> +     *fp_size = efi_dp_size(fp) + efi_dp_size(initrd_dp) +
> +             (2 * sizeof(struct efi_device_path));
> +
> +out:
> +     efi_free_pool(initrd_dp);
> +     efi_free_pool(tmp_dp);
> +     efi_free_pool(tmp_fp);
> +     return final_fp ? final_fp : ERR_PTR(-EINVAL);
> +}
> +
>  /**
>   * do_efi_boot_add() - set UEFI load option
>   *
> @@ -806,7 +868,9 @@ static int do_efi_show_tables(struct cmd_tbl *cmdtp, int 
> flag,
>   *
>   * Implement efidebug "boot add" sub-command. Create or change UEFI load 
> option.
>   *
> - *     efidebug boot add <id> <label> <interface> <devnum>[:<part>] <file> 
> <options>
> + * efidebug boot add -b <id> <label> <interface> <devnum>[:<part>] <file>
> + *                   -i <file> <interface2> <devnum2>[:<part>] <initrd>
> + *                   -s '<options>'
>   */
>  static int do_efi_boot_add(struct cmd_tbl *cmdtp, int flag,
>                          int argc, char *const argv[])
> @@ -819,55 +883,98 @@ static int do_efi_boot_add(struct cmd_tbl *cmdtp, int 
> flag,
>       size_t label_len, label_len16;
>       u16 *label;
>       struct efi_device_path *device_path = NULL, *file_path = NULL;
> +     struct efi_device_path *final_fp = NULL;
>       struct efi_load_option lo;
>       void *data = NULL;
>       efi_uintn_t size;
> +     efi_uintn_t fp_size;
>       efi_status_t ret;
>       int r = CMD_RET_SUCCESS;
> -
> -     if (argc < 6 || argc > 7)
> -             return CMD_RET_USAGE;
> -
> -     id = (int)simple_strtoul(argv[1], &endp, 16);
> -     if (*endp != '\0' || id > 0xffff)
> -             return CMD_RET_USAGE;
> -
> -     sprintf(var_name, "Boot%04X", id);
> -     p = var_name16;
> -     utf8_utf16_strncpy(&p, var_name, 9);
> +     int i;
>
>       guid = efi_global_variable_guid;
>
>       /* attributes */
>       lo.attributes = LOAD_OPTION_ACTIVE; /* always ACTIVE */
> +     lo.optional_data = NULL;
> +     lo.label = NULL;
>
> -     /* label */
> -     label_len = strlen(argv[2]);
> -     label_len16 = utf8_utf16_strnlen(argv[2], label_len);
> -     label = malloc((label_len16 + 1) * sizeof(u16));
> -     if (!label)
> -             return CMD_RET_FAILURE;
> -     lo.label = label; /* label will be changed below */
> -     utf8_utf16_strncpy(&label, argv[2], label_len);
> +     /* search for -b first since the rest of the arguments depends on that 
> */
> +     for (i = 0; i < argc; i++) {
> +             if (!strcmp(argv[i], "-b")) {
> +                     if (argc < i + 5 || lo.label) {
> +                             r = CMD_RET_USAGE;
> +                             goto out;
> +                     }
> +                     id = (int)simple_strtoul(argv[i + 1], &endp, 16);
> +                     if (*endp != '\0' || id > 0xffff)
> +                             return CMD_RET_USAGE;
> +
> +                     sprintf(var_name, "Boot%04X", id);
> +                     p = var_name16;
> +                     utf8_utf16_strncpy(&p, var_name, 9);
> +
> +                     /* label */
> +                     label_len = strlen(argv[i + 2]);
> +                     label_len16 = utf8_utf16_strnlen(argv[i + 2], 
> label_len);
> +                     label = malloc((label_len16 + 1) * sizeof(u16));
> +                     if (!label)
> +                             return CMD_RET_FAILURE;
> +                     lo.label = label; /* label will be changed below */
> +                     utf8_utf16_strncpy(&label, argv[i + 2], label_len);
> +
> +                     /* file path */
> +                     ret = efi_dp_from_name(argv[i + 3], argv[i + 4],
> +                                            argv[i + 5], &device_path,
> +                                            &file_path);
> +                     if (ret != EFI_SUCCESS) {
> +                             printf("Cannot create device path for \"%s 
> %s\"\n",
> +                                    argv[3], argv[4]);
> +                             r = CMD_RET_FAILURE;
> +                             goto out;
> +                     break;
> +                     }
> +                     fp_size = efi_dp_size(file_path) +
> +                             sizeof(struct efi_device_path);
> +             }
> +     }
>
> -     /* file path */
> -     ret = efi_dp_from_name(argv[3], argv[4], argv[5], &device_path,
> -                            &file_path);
> -     if (ret != EFI_SUCCESS) {
> -             printf("Cannot create device path for \"%s %s\"\n",
> -                    argv[3], argv[4]);
> +     if (!file_path) {
> +             printf("You need to specify an image before an initrd.\n");
>               r = CMD_RET_FAILURE;
>               goto out;
>       }
> -     lo.file_path = file_path;
> -     lo.file_path_length = efi_dp_size(file_path)
> -                             + sizeof(struct efi_device_path); /* for END */
>
> -     /* optional data */
> -     if (argc == 6)
> -             lo.optional_data = NULL;
> -     else
> -             lo.optional_data = (const u8 *)argv[6];
> +     /* add now add initrd and extra data */
> +     for (i = 0; i < argc; i++) {
> +             if (!strcmp(argv[i], "-i")) {
> +                     if (argc < i + 3 || final_fp) {
> +                             r = CMD_RET_USAGE;
> +                             goto out;
> +                     }
> +
> +                     final_fp = add_initrd_instance(argv[i + 1], argv[i + 2],
> +                                                    argv[i + 3], file_path,
> +                                                    &fp_size);
> +                     if (IS_ERR(final_fp)) {
> +                             r = CMD_RET_FAILURE;
> +                             goto out;
> +                     }
> +
> +                     /* add_initrd_instance allocates a new device path */
> +                     efi_free_pool(file_path);
> +                     file_path = final_fp;
> +             } else if (!strcmp(argv[i], "-s")) {
> +                     if (argc < i + 1 || lo.optional_data) {
> +                             r = CMD_RET_USAGE;
> +                             goto out;
> +                     }
> +                     lo.optional_data = (const u8 *)argv[i + 1];
> +             }
> +     }
> +
> +     lo.file_path = file_path;
> +     lo.file_path_length = fp_size;
>
>       size = efi_serialize_load_option(&lo, (u8 **)&data);
>       if (!size) {
> @@ -951,11 +1058,14 @@ static int do_efi_boot_rm(struct cmd_tbl *cmdtp, int 
> flag,
>   */
>  static void show_efi_boot_opt_data(u16 *varname16, void *data, size_t *size)
>  {
> +     struct efi_device_path *initrd_path = NULL;
>       struct efi_load_option lo;
>       char *label, *p;
>       size_t label_len16, label_len;
>       u16 *dp_str;
>       efi_status_t ret;
> +     efi_uintn_t initrd_dp_size;
> +     const efi_guid_t lf2_initrd_guid = EFI_INITRD_MEDIA_GUID;
>
>       ret = efi_deserialize_load_option(&lo, data, size);
>       if (ret != EFI_SUCCESS) {
> @@ -986,6 +1096,14 @@ static void show_efi_boot_opt_data(u16 *varname16, void 
> *data, size_t *size)
>       printf("  file_path: %ls\n", dp_str);
>       efi_free_pool(dp_str);
>
> +     initrd_path = efi_dp_from_lo(&lo, &initrd_dp_size, lf2_initrd_guid);
> +     if (initrd_path) {
> +             dp_str = efi_dp_str(initrd_path);
> +             printf("  initrd_path: %ls\n", dp_str);
> +             efi_free_pool(dp_str);
> +             efi_free_pool(initrd_path);
> +     }
> +
>       printf("  data:\n");
>       print_hex_dump("    ", DUMP_PREFIX_OFFSET, 16, 1,
>                      lo.optional_data, *size, true);
> @@ -1555,7 +1673,10 @@ static int do_efidebug(struct cmd_tbl *cmdtp, int flag,
>  static char efidebug_help_text[] =
>       "  - UEFI Shell-like interface to configure UEFI environment\n"
>       "\n"
> -     "efidebug boot add <bootid> <label> <interface> <devnum>[:<part>] <file 
> path> [<load options>]\n"
> +     "efidebug boot add "
> +     "-b <bootid> <label> <interface> <devnum>[:<part>] <file path> "
> +     "-i <interface> <devnum>[:<part>] <initrd file path> "
> +     "-s '<optional data>'\n"
>       "  - set UEFI BootXXXX variable\n"
>       "    <load options> will be passed to UEFI application\n"
>       "efidebug boot rm <bootid#1> [<bootid#2> [<bootid#3> [...]]]\n"
> @@ -1599,7 +1720,7 @@ static char efidebug_help_text[] =
>  #endif
>
>  U_BOOT_CMD(
> -     efidebug, 10, 0, do_efidebug,
> +     efidebug, CONFIG_SYS_MAXARGS, 0, do_efidebug,
>       "Configure UEFI environment",
>       efidebug_help_text
>  );
> diff --git a/doc/board/emulation/qemu_capsule_update.rst 
> b/doc/board/emulation/qemu_capsule_update.rst
> index 9fec75f8f1c9..33ce4bcd32ea 100644
> --- a/doc/board/emulation/qemu_capsule_update.rst
> +++ b/doc/board/emulation/qemu_capsule_update.rst
> @@ -60,7 +60,7 @@ to be pointing to the EFI System Partition which contains 
> the capsule
>  file. The BootNext, BootXXXX and OsIndications variables can be set
>  using the following commands::
>
> -    => efidebug boot add 0 Boot0000 virtio 0:1 <capsule_file_name>
> +    => efidebug boot add -b 0 Boot0000 virtio 0:1 <capsule_file_name>
>      => efidebug boot next 0
>      => setenv -e -nv -bs -rt -v OsIndications =0x04
>      => saveenv
> @@ -198,7 +198,7 @@ command line::
>      3. Set the following environment and UEFI boot variables
>
>          => setenv -e -nv -bs -rt -v OsIndications =0x04
> -        => efidebug boot add 0 Boot0000 virtio 0:1 <capsule_file_name>
> +        => efidebug boot add -b 0 Boot0000 virtio 0:1 <capsule_file_name>
>          => efidebug boot next 0
>          => saveenv
>
> diff --git a/doc/uefi/uefi.rst b/doc/uefi/uefi.rst
> index 5a67737c1579..b3494c22e073 100644
> --- a/doc/uefi/uefi.rst
> +++ b/doc/uefi/uefi.rst
> @@ -178,7 +178,7 @@ Now in U-Boot install the keys on your board::
>
>  Set up boot parameters on your board::
>
> -    efidebug boot add 1 HELLO mmc 0:1 /helloworld.efi.signed ""
> +    efidebug boot add -b 1 HELLO mmc 0:1 /helloworld.efi.signed ""
>
>  Now your board can run the signed image via the boot manager (see below).
>  You can also try this sequence by running Pytest, test_efi_secboot,
> diff --git a/test/py/tests/test_efi_capsule/test_capsule_firmware.py 
> b/test/py/tests/test_efi_capsule/test_capsule_firmware.py
> index f006fa95d650..e8b0a1575453 100644
> --- a/test/py/tests/test_efi_capsule/test_capsule_firmware.py
> +++ b/test/py/tests/test_efi_capsule/test_capsule_firmware.py
> @@ -39,7 +39,7 @@ class TestEfiCapsuleFirmwareFit(object):
>          with u_boot_console.log.section('Test Case 1-a, before reboot'):
>              output = u_boot_console.run_command_list([
>                  'host bind 0 %s' % disk_img,
> -                'efidebug boot add 1 TEST host 0:1 /helloworld.efi ""',
> +                'efidebug boot add -b 1 TEST host 0:1 /helloworld.efi ""',
>                  'efidebug boot order 1',
>                  'env set -e OsIndications',
>                  'env set dfu_alt_info "sf 0:0=u-boot-bin raw 0x100000 
> 0x50000;u-boot-env raw 0x150000 0x200000"',
> @@ -114,7 +114,7 @@ class TestEfiCapsuleFirmwareFit(object):
>          with u_boot_console.log.section('Test Case 2-a, before reboot'):
>              output = u_boot_console.run_command_list([
>                  'host bind 0 %s' % disk_img,
> -                'efidebug boot add 1 TEST host 0:1 /helloworld.efi ""',
> +                'efidebug boot add -b 1 TEST host 0:1 /helloworld.efi ""',
>                  'efidebug boot order 1',
>                  'env set -e -nv -bs -rt OsIndications =0x0000000000000004',
>                  'env set dfu_alt_info "sf 0:0=u-boot-bin raw 0x100000 
> 0x50000;u-boot-env raw 0x150000 0x200000"',
> @@ -188,7 +188,7 @@ class TestEfiCapsuleFirmwareFit(object):
>          with u_boot_console.log.section('Test Case 3-a, before reboot'):
>              output = u_boot_console.run_command_list([
>                  'host bind 0 %s' % disk_img,
> -                'efidebug boot add 1 TEST host 0:1 /helloworld.efi ""',
> +                'efidebug boot add -b 1 TEST host 0:1 /helloworld.efi ""',
>                  'efidebug boot order 1',
>                  'env set -e -nv -bs -rt OsIndications =0x0000000000000004',
>                  'env set dfu_alt_info "sf 0:0=u-boot-bin raw 0x100000 
> 0x50000;u-boot-env raw 0x150000 0x200000"',
> diff --git a/test/py/tests/test_efi_secboot/test_signed.py 
> b/test/py/tests/test_efi_secboot/test_signed.py
> index 863685e215b7..75f5ea772300 100644
> --- a/test/py/tests/test_efi_secboot/test_signed.py
> +++ b/test/py/tests/test_efi_secboot/test_signed.py
> @@ -28,7 +28,7 @@ class TestEfiSignedImage(object):
>              # Test Case 1a, run signed image if no PK
>              output = u_boot_console.run_command_list([
>                  'host bind 0 %s' % disk_img,
> -                'efidebug boot add 1 HELLO1 host 0:1 /helloworld.efi.signed 
> ""',
> +                'efidebug boot add -b 1 HELLO1 host 0:1 
> /helloworld.efi.signed ""',
>                  'efidebug boot next 1',
>                  'bootefi bootmgr'])
>              assert 'Hello, world!' in ''.join(output)
> @@ -36,7 +36,7 @@ class TestEfiSignedImage(object):
>          with u_boot_console.log.section('Test Case 1b'):
>              # Test Case 1b, run unsigned image if no PK
>              output = u_boot_console.run_command_list([
> -                'efidebug boot add 2 HELLO2 host 0:1 /helloworld.efi ""',
> +                'efidebug boot add -b 2 HELLO2 host 0:1 /helloworld.efi ""',
>                  'efidebug boot next 2',
>                  'bootefi bootmgr'])
>              assert 'Hello, world!' in ''.join(output)
> @@ -58,13 +58,13 @@ class TestEfiSignedImage(object):
>                  'setenv -e -nv -bs -rt -at -i 4000000:$filesize PK'])
>              assert 'Failed to set EFI variable' not in ''.join(output)
>              output = u_boot_console.run_command_list([
> -                'efidebug boot add 1 HELLO1 host 0:1 /helloworld.efi.signed 
> ""',
> +                'efidebug boot add -b 1 HELLO1 host 0:1 
> /helloworld.efi.signed ""',
>                  'efidebug boot next 1',
>                  'efidebug test bootmgr'])
>              assert('\'HELLO1\' failed' in ''.join(output))
>              assert('efi_start_image() returned: 26' in ''.join(output))
>              output = u_boot_console.run_command_list([
> -                'efidebug boot add 2 HELLO2 host 0:1 /helloworld.efi ""',
> +                'efidebug boot add -b 2 HELLO2 host 0:1 /helloworld.efi ""',
>                  'efidebug boot next 2',
>                  'efidebug test bootmgr'])
>              assert '\'HELLO2\' failed' in ''.join(output)
> @@ -104,7 +104,7 @@ class TestEfiSignedImage(object):
>                  'setenv -e -nv -bs -rt -at -i 4000000:$filesize PK'])
>              assert 'Failed to set EFI variable' not in ''.join(output)
>              output = u_boot_console.run_command_list([
> -                'efidebug boot add 1 HELLO host 0:1 /helloworld.efi.signed 
> ""',
> +                'efidebug boot add -b 1 HELLO host 0:1 
> /helloworld.efi.signed ""',
>                  'efidebug boot next 1',
>                  'efidebug test bootmgr'])
>              assert '\'HELLO\' failed' in ''.join(output)
> @@ -142,7 +142,7 @@ class TestEfiSignedImage(object):
>                  'setenv -e -nv -bs -rt -at -i 4000000:$filesize PK'])
>              assert 'Failed to set EFI variable' not in ''.join(output)
>              output = u_boot_console.run_command_list([
> -                'efidebug boot add 1 HELLO host 0:1 /helloworld.efi.signed 
> ""',
> +                'efidebug boot add -b 1 HELLO host 0:1 
> /helloworld.efi.signed ""',
>                  'efidebug boot next 1',
>                  'efidebug test bootmgr'])
>              assert '\'HELLO\' failed' in ''.join(output)
> @@ -169,7 +169,7 @@ class TestEfiSignedImage(object):
>                  'setenv -e -nv -bs -rt -at -i 4000000:$filesize PK'])
>              assert 'Failed to set EFI variable' not in ''.join(output)
>              output = u_boot_console.run_command_list([
> -                'efidebug boot add 1 HELLO host 0:1 
> /helloworld.efi.signed_2sigs ""',
> +                'efidebug boot add -b 1 HELLO host 0:1 
> /helloworld.efi.signed_2sigs ""',
>                  'efidebug boot next 1',
>                  'efidebug test bootmgr'])
>              assert 'Hello, world!' in ''.join(output)
> @@ -227,7 +227,7 @@ class TestEfiSignedImage(object):
>                  'setenv -e -nv -bs -rt -at -i 4000000:$filesize PK'])
>              assert 'Failed to set EFI variable' not in ''.join(output)
>              output = u_boot_console.run_command_list([
> -                'efidebug boot add 1 HELLO host 0:1 /helloworld.efi.signed 
> ""',
> +                'efidebug boot add -b 1 HELLO host 0:1 
> /helloworld.efi.signed ""',
>                  'efidebug boot next 1',
>                  'bootefi bootmgr'])
>              assert 'Hello, world!' in ''.join(output)
> diff --git a/test/py/tests/test_efi_secboot/test_signed_intca.py 
> b/test/py/tests/test_efi_secboot/test_signed_intca.py
> index 70d6be00e8a8..0849572a5143 100644
> --- a/test/py/tests/test_efi_secboot/test_signed_intca.py
> +++ b/test/py/tests/test_efi_secboot/test_signed_intca.py
> @@ -39,7 +39,7 @@ class TestEfiSignedImageIntca(object):
>              assert 'Failed to set EFI variable' not in ''.join(output)
>
>              output = u_boot_console.run_command_list([
> -                'efidebug boot add 1 HELLO_a host 0:1 
> /helloworld.efi.signed_a ""',
> +                'efidebug boot add -b 1 HELLO_a host 0:1 
> /helloworld.efi.signed_a ""',
>                  'efidebug boot next 1',
>                  'efidebug test bootmgr'])
>              assert '\'HELLO_a\' failed' in ''.join(output)
> @@ -48,7 +48,7 @@ class TestEfiSignedImageIntca(object):
>          with u_boot_console.log.section('Test Case 1b'):
>              # Test Case 1b, signed and authenticated by root CA
>              output = u_boot_console.run_command_list([
> -                'efidebug boot add 2 HELLO_ab host 0:1 
> /helloworld.efi.signed_ab ""',
> +                'efidebug boot add -b 2 HELLO_ab host 0:1 
> /helloworld.efi.signed_ab ""',
>                  'efidebug boot next 2',
>                  'bootefi bootmgr'])
>              assert 'Hello, world!' in ''.join(output)
> @@ -70,7 +70,7 @@ class TestEfiSignedImageIntca(object):
>              assert 'Failed to set EFI variable' not in ''.join(output)
>
>              output = u_boot_console.run_command_list([
> -                'efidebug boot add 1 HELLO_abc host 0:1 
> /helloworld.efi.signed_abc ""',
> +                'efidebug boot add -b 1 HELLO_abc host 0:1 
> /helloworld.efi.signed_abc ""',
>                  'efidebug boot next 1',
>                  'efidebug test bootmgr'])
>              assert '\'HELLO_abc\' failed' in ''.join(output)
> @@ -116,7 +116,7 @@ class TestEfiSignedImageIntca(object):
>              assert 'Failed to set EFI variable' not in ''.join(output)
>
>              output = u_boot_console.run_command_list([
> -                'efidebug boot add 1 HELLO_abc host 0:1 
> /helloworld.efi.signed_abc ""',
> +                'efidebug boot add -b 1 HELLO_abc host 0:1 
> /helloworld.efi.signed_abc ""',
>                  'efidebug boot next 1',
>                  'efidebug test bootmgr'])
>              assert 'Hello, world!' in ''.join(output)
> diff --git a/test/py/tests/test_efi_secboot/test_unsigned.py 
> b/test/py/tests/test_efi_secboot/test_unsigned.py
> index 56f56e19eb84..8e026f7566ad 100644
> --- a/test/py/tests/test_efi_secboot/test_unsigned.py
> +++ b/test/py/tests/test_efi_secboot/test_unsigned.py
> @@ -35,7 +35,7 @@ class TestEfiUnsignedImage(object):
>              assert 'Failed to set EFI variable' not in ''.join(output)
>
>              output = u_boot_console.run_command_list([
> -                'efidebug boot add 1 HELLO host 0:1 /helloworld.efi ""',
> +                'efidebug boot add -b 1 HELLO host 0:1 /helloworld.efi ""',
>                  'efidebug boot next 1',
>                  'bootefi bootmgr'])
>              assert '\'HELLO\' failed' in ''.join(output)
> @@ -64,7 +64,7 @@ class TestEfiUnsignedImage(object):
>              assert 'Failed to set EFI variable' not in ''.join(output)
>
>              output = u_boot_console.run_command_list([
> -                'efidebug boot add 1 HELLO host 0:1 /helloworld.efi ""',
> +                'efidebug boot add -b 1 HELLO host 0:1 /helloworld.efi ""',
>                  'efidebug boot next 1',
>                  'bootefi bootmgr'])
>              assert 'Hello, world!' in ''.join(output)
> @@ -88,7 +88,7 @@ class TestEfiUnsignedImage(object):
>              assert 'Failed to set EFI variable' not in ''.join(output)
>
>              output = u_boot_console.run_command_list([
> -                'efidebug boot add 1 HELLO host 0:1 /helloworld.efi ""',
> +                'efidebug boot add -b 1 HELLO host 0:1 /helloworld.efi ""',
>                  'efidebug boot next 1',
>                  'bootefi bootmgr'])
>              assert '\'HELLO\' failed' in ''.join(output)
> @@ -106,7 +106,7 @@ class TestEfiUnsignedImage(object):
>              assert 'Failed to set EFI variable' not in ''.join(output)
>
>              output = u_boot_console.run_command_list([
> -                'efidebug boot add 1 HELLO host 0:1 /helloworld.efi ""',
> +                'efidebug boot add -b 1 HELLO host 0:1 /helloworld.efi ""',
>                  'efidebug boot next 1',
>                  'bootefi bootmgr'])
>              assert '\'HELLO\' failed' in ''.join(output)
>

Reply via email to