Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 31 Mar 2019 17:54:22 +0200
From:      Manuel =?ISO-8859-1?Q?St=FChn?= <freebsdnewbie@freenet.de>
To:        freebsd-arm@freebsd.org
Subject:   Re: efi-loader ignores dtb files?
Message-ID:  <20190331175422.8bc3cb1b654ad0c5a7c9f533@freenet.de>
In-Reply-To: <20190328215048.9dccb364c7ccac59f77bb98f@freenet.de>
References:  <20190327192320.GA64908@freebsd-t450.fritz.box> <CACNAnaHQxzhmKKWqb4eUQvqdYr1xYYVRYVakQri_YRyvGb8tXA@mail.gmail.com> <20190328190355.1459c85b48211905f8a3e04a@freenet.de> <CACNAnaEFJMbiVRvPQR1FvtSZ6Ee6t2nr11dtoa0QyZwQhuVD2w@mail.gmail.com> <CACNAnaE4T53nrGPXuJSGPwpe0m_Pdw%2BwxGsCL9Mhu_KA7jKAoQ@mail.gmail.com> <20190328215048.9dccb364c7ccac59f77bb98f@freenet.de>

next in thread | previous in thread | raw e-mail | index | archive | help
On Thu, 28 Mar 2019 21:50:48 +0100
Manuel St=FChn <freebsdnewbie@freenet.de> wrote:

> On Thu, 28 Mar 2019 14:10:27 -0500
> Kyle Evans <kevans@freebsd.org> wrote:
>=20
> > On Thu, Mar 28, 2019 at 1:30 PM Kyle Evans <kevans@freebsd.org> wrote:
> > >
> > > On Thu, Mar 28, 2019 at 1:06 PM Manuel St=FChn <freebsdnewbie@freenet=
.de> wrote:
> > > >
> > > > On Wed, 27 Mar 2019 14:35:26 -0500
> > > > Kyle Evans <kevans@freebsd.org> wrote:
> > > [... snip ...]
> > > > > I'm not sure off-hand why fdt_overlays were not recognized. I wou=
ld
> > > > > drop to loader prompt and double check that it actually ended up =
in
> > > > > the environment, but I don't see any reason off-hand that it woul=
dn't.
> > > >
> > > > I tried to load the overlays from loader prompt by hand like this:
> > > > load -t dtbo sun50i-nanopi-neo2-codec.dtbo
> > > > load -t dtbo sun50i-nanopi-neo2-sid.dtbo
> > > > load -t dtbo sun50i-nanopi-neo2-ths.dtbo
> > > > and they got applied correctly and the corresponding devices appear=
ed in the OS.
> > > >
> > > > As another test I did was to not load the base dtb file via loader.=
conf but to use the one provided by u-boot/EFI.
> > > > The output looked like this
> > > > [...]
> > > > Using DTB provided by EFI at 0x47ef8000.
> > > > Loading DTB overlays: 'sun50i-nanopi-neo2-codec.dtbo,sun50i-nanopi-=
neo2-sid,sun50i-nanopi-neo2-ths.dtbo'
> > > > /boot/dtb/overlays/sun50i-nanopi-neo2-codec.dtbo size=3D0x11a
> > > > /boot/dtb/overlays/sun50i-nanopi-neo2-sid.dtbo size=3D0x1f5
> > > > /boot/dtb/overlays/sun50i-nanopi-neo2-ths.dtbo size=3D0x3c5
> > > > applying DTB overlay '/boot/dtb/overlays/sun50i-nanopi-neo2-codec.d=
tbo'
> > > > applying DTB overlay '/boot/dtb/overlays/sun50i-nanopi-neo2-sid.dtb=
o'
> > > > applying DTB overlay '/boot/dtb/overlays/sun50i-nanopi-neo2-ths.dtb=
o'
> > > > failed to apply overlay: FDT_ERR_NOTFOUND
> > > > [...]
> > > > In this case the overlays were found and loaded, but did most likel=
y not match the u-boot dtb file.
> > > >
> > > > Is there an issue with loading overlays in conjunction with manuall=
y loading dtb files via loader.conf?
> > > >
> > >
> > > Yes, I see a problem -- try something like [0] (not even compile
> > > tested, but it should work). I'll start working out a more proper
> > > solution.
> >=20
> > I've devised a solution that's a little less hacky at [1]. It
> > separates out the loading of overlays from platform_load_dtb into its
> > own platform_load_overlays. I've left it as a platform-specific thing
> > instead of lifting it into the common fdt bits for two reasons:
> >=20
> > 1.) We still technically support setting fdt_overlays in the U-Boot
> > environment and honoring that, and
> > 2.) Not all FDT platforms support overlays as they've not been tested,
> > so it's probably best to nop it there for now just in case...
> >=20
> > If we're ok with dropping #1 (probably not even used, but we don't
> > have a way of measuring usage there) and OK with adding untested
> > overlay support to powerpc/{ofw,kboot} then this diff drops
> > dramatically and the calls to fdt_platform_load_overlays get replaced
> > with fdt_load_dtb_overlays calls.boot/loader_lua.efi
> >=20
> > > [0] https://people.freebsd.org/~kevans/overlay-hack.diff
> >=20
> > [1] http://people.freebsd.org/~kevans/overlay-lesshack.diff
>=20
> Thank you for your patches. I've been trying patch[1] but unfortunately
> it seems to not work for me.=20

The patch[1] _does_ work, actually. I only had to realize
that the loader-files in /boot seem not being involved in booting the
system. After updating /EFI/BOOT/bootaa64.efi with the patched version
of boot/loader_lua.efi all the overlays were applied correctly.

> Due to my lack of knowledge on how to only
> build and install /usr/src/stand=20

Only for the records: how to cross-build and install
only /usr/src/stand:=20
% export TARGET=3Darm64
% export TARGET_ARCH=3Daarch64
% export DESTDIR=3D/path/to/install
% cd /usr/src/
% make buildenv
% cd /usr/src/stand
% make && make install

> I've built+installed both
> kernel+world, but the described behavior did not change; still no
> overlays when defining a dtb file in loader.conf.

--=20
Manuel



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20190331175422.8bc3cb1b654ad0c5a7c9f533>