[U-Boot] [PATCH 1/1] efi_loader: bootmgr: print a message when loading from BootNext failed

Heinrich Schuchardt xypron.glpk at gmx.de
Wed May 29 10:59:05 UTC 2019


On 5/29/19 11:40 AM, Alexander Graf wrote:
>
> On 28.05.19 12:13, Heinrich Schuchardt wrote:
>> From: AKASHI Takahiro <takahiro.akashi at linaro.org>
>>
>> If a user defines BootNext but not BootOrder and loading from BootNext
>> fails, you will see only a message like this:
>>     BootOrder not defined
>>
>> This may confuse a user. Adding an error message will be helpful.
>>
>> Signed-off-by: AKASHI Takahiro <takahiro.akashi at linaro.org>
>
>
> Why is the SoB line in the middle of the patch description?

Everything below was not in Takahiros patch.

>
>
>> Adjust message for fallback from BootNext to BootOrder.
>>
>> An example output looks like this:
>>
>> => bootefi bootmgr
>> Loading from Boot0010 failed
>> Loading from BootNext failed, falling back to BootOrder
>> Loading from Boot0002 failed
>> Loading from Boot0003 failed
>> Loading from Boot0004 failed
>
>
> How hard would it be to print the device path for the respective
> BootXXXX entries as well? Users usually don't think in boot entries.

The change is trivial. Output could look like

=> efidebug boot add 0001 label1 scsi 0:1 "\path1\file1.efi"
=> efidebug boot add 0002 label2 scsi 0:1 "\path2\file2.efi"
=> efidebug boot order 0001 0002
=> bootefi bootmgr
Loading from Boot0001
(/VenHw(e61d73b9-a384-4acc-aeab-82e828f3628b)/Scsi(0,0)/HD(1,MBR,0x1bb2fc9c,0x800,0x3fffe)/\path1\file1.efi)
failed
Loading from Boot0002
(/VenHw(e61d73b9-a384-4acc-aeab-82e828f3628b)/Scsi(0,0)/HD(1,MBR,0x1bb2fc9c,0x800,0x3fffe)/\path2\file2.efi)
failed
EFI boot manager: Cannot load any image
=>

But as you see it does not fit into 80 character lines and the terminal
might cut of the interesting part of the line. Failure may also depend
on the command line parameters.

I think adding the label makes more sense.

Best regards

Heinrich

>
>
> Alex
>
>
>> EFI boot manager: Cannot load any image
>>
>> Reviewed-by: Heinrich Schuchardt <xypron.glpk at gmx.de>
>> ---
>>   lib/efi_loader/efi_bootmgr.c | 5 ++++-
>>   1 file changed, 4 insertions(+), 1 deletion(-)
>>
>> diff --git a/lib/efi_loader/efi_bootmgr.c b/lib/efi_loader/efi_bootmgr.c
>> index 7bf51874c1..00de8165d0 100644
>> --- a/lib/efi_loader/efi_bootmgr.c
>> +++ b/lib/efi_loader/efi_bootmgr.c
>> @@ -149,8 +149,10 @@ static efi_status_t try_load_entry(u16 n,
>> efi_handle_t *handle)
>>
>>           ret = EFI_CALL(efi_load_image(true, efi_root, lo.file_path,
>>                             NULL, 0, handle));
>> -        if (ret != EFI_SUCCESS)
>> +        if (ret != EFI_SUCCESS) {
>> +            printf("Loading from Boot%04X failed\n", n);
>>               goto error;
>> +        }
>>
>>           attributes = EFI_VARIABLE_BOOTSERVICE_ACCESS |
>>                    EFI_VARIABLE_RUNTIME_ACCESS;
>> @@ -215,6 +217,7 @@ efi_status_t efi_bootmgr_load(efi_handle_t *handle)
>>                   ret = try_load_entry(bootnext, handle);
>>                   if (ret == EFI_SUCCESS)
>>                       return ret;
>> +                printf("Loading from BootNext failed, falling back to
>> BootOrder\n");
>>               }
>>           } else {
>>               printf("Deleting BootNext failed\n");
>> --
>> 2.20.1
>>
>



More information about the U-Boot mailing list