efi_loader breakage

Mark Kettenis mark.kettenis at xs4all.nl
Wed Apr 27 11:31:34 CEST 2022


> Date: Wed, 27 Apr 2022 16:26:25 +0900
> From: AKASHI Takahiro <takahiro.akashi at linaro.org>
> 
> On Wed, Apr 27, 2022 at 01:48:13PM +0900, AKASHI Takahiro wrote:
> > On Tue, Apr 26, 2022 at 07:07:13PM +0200, Mark Kettenis wrote:
> > > 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.
> > 
> > Probably I forgot this use case.
> > 
> > > The easy fix would be to support UCLASS_BLK in dev_get_blk(), but that
> > > function has an explicit comment saying:
> > 
> > The best way to do is to modify efi_disk_rw_blocks().
> 
> I have already made necessary changes, but found another problem
> (not relating to my patch) in device path handling.
> 
> So I will post the patch once I fix the latter issue as well.

Thanks,

Looking forward to a patch to test.

Mark


More information about the U-Boot mailing list