efi_loader breakage

Mark Kettenis mark.kettenis at xs4all.nl
Tue Apr 26 19:07:13 CEST 2022


commit d97e98c887ed8fa4a339350c02f093f03cd1cf4d breaks the OpenBSD
bootloader.  Or rather, it seems that this breaks access to raw
devices through the UEFI interfaces, which is something the OpenBSD
bootloader relies on.

After this commit we end up calling dev_read() and dev_write() instead
of blk_dread() and blk_dwrite().  But dev_read() and dev_write() only
work if dev_get_blk() returns a valid struct blkdev, and that handles
only for UCLASS_PARTITION.  But when accessing raw devices we have a
UCLASS_BLK.

The easy fix would be to support UCLASS_BLK in dev_get_blk(), but that
function has an explicit comment saying:

        /*
         * We won't support UCLASS_BLK with dev_* interfaces.
         */
			  
So I'm a bit at a loss what is needed here.


More information about the U-Boot mailing list