in stand/efi/boot1/ufs_module.c init_dev allocates a buffer and calls dskread which passes the buffer to the efi entry readblocks from u-booot.
Likewise in stand/efi/libsa/ufsread.c there are calls to dskread.
according to https://gitlab.denx.de/u-boot/u-boot/-/commit/f59f0825e8b9fdeb8abe43ffd10c5119ca1a032f
as of f59f0825 lib/efi_loader/efi_disk.c checks for block alignment of the buffer passed to readblocks.
on my armv7 system u-boot insists on 512 byte alignment.
The blocks allocated in init_dev and fsread should be block aligned.
There probably exists a similar problem in zfs_module.c