PINE64+ 2GB - with U-Boot SPL 2019.10 - bootaa64.efi do not find UFS partition
Thomas Skibo
thomasskibo at yahoo.com
Sat Oct 12 18:07:29 UTC 2019
> > U-Boot SPL 2019.10 (Oct 10 2019 - 18:05:29 +0200)
> > DRAM: 2048 MiB
> > Trying to boot from MMC1
> > NOTICE: BL31: v2.0(release):
> >
> > >>
> > FreeBSD EFI boot block
> >
> > Loader path: /boot/loader.efi
> >
> > Initializing modules: ZFS UFS
> > Load Path: /efi\boot\bootaa64.efi
> > Load Device:
> > /VenHw(e61d73b9-a384-4acc-aeab-82e828f3628b)/SD(0)/SD(0)/HD(1,0x01,0,0x403b,0x20000)
> > Probing 3 block devices...... done
> > ZFS found no pools
> > UFS found no partitions
> > Failed to load '/boot/loader.efi'
> > panic: No bootable partitions found!
> > ## Application terminated, r = 1
>
> I’ve been looking into this. As of u-boot v2019.10, there are some extra checks in efi_disk_read_blocks() and now it will fail with EFI_INVALID_PARAMETER if the buffer isn’t aligned. In my case, efi_disk_read_blocks() was called with a buffer address of 0x1da06040 but with this->media->io_align = 512. (See lib/efi_loader/efi_disk.c line 125.). Evidently,loader.efi is making disk calls with unaligned buffers but it wasn’t an issue until these checks were added. That’s as far as I got debugging this.
Found this bug: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=240572 "libefi: FreeBSD cannot boot with U-Boot patch efi_loader: parameter checks BLOCK_IO_PROTOCOL"
Looks like a fix has been committed. I’ll try the updated loader.
—
Thomas Skibo
thomasskibo at yahoo.com
More information about the freebsd-arm
mailing list