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

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@canonical.com --- boot/bootmeth_efi.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-)
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); }

Hi Heinrich,
Thank you for the patch.
On mer., août 07, 2024 at 02:13, Heinrich Schuchardt heinrich.schuchardt@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@canonical.com
Reviewed-by: Mattijs Korpershoek mkorpershoek@baylibre.com
boot/bootmeth_efi.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-)
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,
dev_name = device_get_uclass_id(media_dev) == UCLASS_MASS_STORAGE ?bflow->buf, size);
"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",
efi_set_bootdev(dev_name, devnum_str, bflow->fname, bflow->buf, size);dev_name, devnum_str, bflow->fname, bflow->buf, size);
}
-- 2.45.2

On Wed, 7 Aug 2024 at 03:13, Heinrich Schuchardt heinrich.schuchardt@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@canonical.com
boot/bootmeth_efi.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-)
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
Reviewed-by: Ilias Apalodimas ilias.apalodimas@linaro.org

On Tue, 6 Aug 2024 at 18:13, Heinrich Schuchardt heinrich.schuchardt@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@canonical.com
boot/bootmeth_efi.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-)
Reviewed-by: Simon Glass sjg@chromium.org
Hmm I suppose I need to do another round to try to get rid of blk_desc->uclass_id
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

On 07.08.24 16:36, Simon Glass wrote:
On Tue, 6 Aug 2024 at 18:13, Heinrich Schuchardt heinrich.schuchardt@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@canonical.com
boot/bootmeth_efi.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-)
Reviewed-by: Simon Glass sjg@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

Hi Heinrich,
On Wed, 7 Aug 2024 at 08:39, Heinrich Schuchardt heinrich.schuchardt@canonical.com wrote:
On 07.08.24 16:36, Simon Glass wrote:
On Tue, 6 Aug 2024 at 18:13, Heinrich Schuchardt heinrich.schuchardt@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@canonical.com
boot/bootmeth_efi.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-)
Reviewed-by: Simon Glass sjg@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.
Yes indeed. I've added it to my list.
Regards, Simon

Hi Heinrich,
On Wed, 7 Aug 2024 at 14:52, Simon Glass sjg@chromium.org wrote:
Hi Heinrich,
On Wed, 7 Aug 2024 at 08:39, Heinrich Schuchardt heinrich.schuchardt@canonical.com wrote:
On 07.08.24 16:36, Simon Glass wrote:
On Tue, 6 Aug 2024 at 18:13, Heinrich Schuchardt heinrich.schuchardt@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@canonical.com
boot/bootmeth_efi.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-)
Reviewed-by: Simon Glass sjg@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.
Yes indeed. I've added it to my list.
But sadly, we still have code for ~DM_BLK so that has to happen first, so I've taken it off my list. I tried to send a series to remove old I2C stuff, but it is still pending.
Regards, Simon
participants (4)
-
Heinrich Schuchardt
-
Ilias Apalodimas
-
Mattijs Korpershoek
-
Simon Glass