Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 11 Oct 2019 08:50:42 -0700
From:      Thomas Skibo <thomasskibo@yahoo.com>
To:        freebsd-arm@freebsd.org
Subject:   Re: PINE64+ 2GB - with U-Boot SPL 2019.10 - bootaa64.efi do not find UFS  partition
Message-ID:  <9840C5F9-64F8-4415-A24E-E62507F14C8D@yahoo.com>

next in thread | raw e-mail | index | archive | help

> 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):
>=20
> >>
>  FreeBSD EFI boot block
>=20
>     Loader path: /boot/loader.efi
>=20
>     Initializing modules: ZFS UFS
>     Load Path: /efi\boot\bootaa64.efi
>     Load Device:=20
> =
/VenHw(e61d73b9-a384-4acc-aeab-82e828f3628b)/SD(0)/SD(0)/HD(1,0x01,0,0x403=
b,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 =3D 1


I=E2=80=99ve 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=E2=80=99t aligned.  In my case, =
efi_disk_read_blocks() was called with a buffer address of 0x1da06040 =
but with this->media->io_align =3D 512.  (See lib/efi_loader/efi_disk.c =
line 125.). Evidently,loader.efi is making disk calls with unaligned =
buffers but it wasn=E2=80=99t an issue until these checks were added.  =
That=E2=80=99s as far as I got debugging this.


=E2=80=94=E2=80=94
Thomas Skibo
ThomasSkibo@yahoo.com






Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?9840C5F9-64F8-4415-A24E-E62507F14C8D>