[PATCH 1/1] boot: set correct block device name in set_efi_bootdev()

Heinrich Schuchardt heinrich.schuchardt at canonical.com
Wed Aug 7 16:39:52 CEST 2024


On 07.08.24 16:36, Simon Glass wrote:
> On Tue, 6 Aug 2024 at 18:13, Heinrich Schuchardt
> <heinrich.schuchardt at canonical.com> wrote:
>>
>> For SATA devices the class name is 'ahci' but the block device name is
>> 'sata'.
>>
>> Use function blk_get_uclass_name() to retrieve the correct string.
>>
>> Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt at canonical.com>
>> ---
>>   boot/bootmeth_efi.c | 7 +++----
>>   1 file changed, 3 insertions(+), 4 deletions(-)
>>
> 
> Reviewed-by: Simon Glass <sjg at chromium.org>
> 
> Hmm I suppose I need to do another round to try to get rid of
> blk_desc->uclass_id

efi_set_bootdev() should take a udevice in future.

We are converting to string and later back to device before we create a 
device-path. This makes little sense.

Best regards

Heinrich

> 
> 
>> diff --git a/boot/bootmeth_efi.c b/boot/bootmeth_efi.c
>> index 39232eb2e25..6b41c0999f1 100644
>> --- a/boot/bootmeth_efi.c
>> +++ b/boot/bootmeth_efi.c
>> @@ -100,11 +100,10 @@ static void set_efi_bootdev(struct blk_desc *desc, struct bootflow *bflow)
>>          if (last_slash)
>>                  *last_slash = '\0';
>>
>> -       log_debug("setting bootdev %s, %s, %s, %p, %x\n",
>> -                 dev_get_uclass_name(media_dev), devnum_str, bflow->fname,
>> -                 bflow->buf, size);
>>          dev_name = device_get_uclass_id(media_dev) == UCLASS_MASS_STORAGE ?
>> -                "usb" : dev_get_uclass_name(media_dev);
>> +                "usb" : blk_get_uclass_name(device_get_uclass_id(media_dev));
>> +       log_debug("setting bootdev %s, %s, %s, %p, %x\n",
>> +                 dev_name, devnum_str, bflow->fname, bflow->buf, size);
>>          efi_set_bootdev(dev_name, devnum_str, bflow->fname, bflow->buf, size);
>>   }
>>
>> --
>> 2.45.2
>>



More information about the U-Boot mailing list