efi_loader: Use the first random-number-generator device

There is no guarantee that the RNG device has a sequence number of zero.
Use the first available device instead, by default.

This resolved a failure to find the device with qemu-x86_64 when the
virtio device is used.

Signed-off-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
Simon Glass
2025-07-11 17:52:04 +02:00
parent cbc27536ff
commit 37e7aec2d2

View File

@@ -24,21 +24,21 @@ const efi_guid_t efi_guid_rng_protocol = EFI_RNG_PROTOCOL_GUID;
*
* This function may be overridden if special initialization is needed.
*
* @dev: udevice
* @devp: udevice
* Return: status code
*/
__weak efi_status_t platform_get_rng_device(struct udevice **dev)
__weak efi_status_t platform_get_rng_device(struct udevice **devp)
{
int ret;
struct udevice *devp;
struct udevice *dev;
ret = uclass_get_device(UCLASS_RNG, 0, &devp);
ret = uclass_first_device_err(UCLASS_RNG, &dev);
if (ret) {
debug("Unable to get rng device\n");
return EFI_DEVICE_ERROR;
}
*dev = devp;
*devp = dev;
return EFI_SUCCESS;
}