Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 28 Mar 2019 14:10:27 -0500
From:      Kyle Evans <kevans@freebsd.org>
To:        =?UTF-8?Q?Manuel_St=C3=BChn?= <freebsdnewbie@freenet.de>
Cc:        "freebsd-arm@freebsd.org" <freebsd-arm@freebsd.org>
Subject:   Re: efi-loader ignores dtb files?
Message-ID:  <CACNAnaE4T53nrGPXuJSGPwpe0m_Pdw%2BwxGsCL9Mhu_KA7jKAoQ@mail.gmail.com>
In-Reply-To: <CACNAnaEFJMbiVRvPQR1FvtSZ6Ee6t2nr11dtoa0QyZwQhuVD2w@mail.gmail.com>
References:  <20190327192320.GA64908@freebsd-t450.fritz.box> <CACNAnaHQxzhmKKWqb4eUQvqdYr1xYYVRYVakQri_YRyvGb8tXA@mail.gmail.com> <20190328190355.1459c85b48211905f8a3e04a@freenet.de> <CACNAnaEFJMbiVRvPQR1FvtSZ6Ee6t2nr11dtoa0QyZwQhuVD2w@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
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=C3=BChn <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 would
> > > 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 wouldn'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 appeared i=
n 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.dtbo'
> > applying DTB overlay '/boot/dtb/overlays/sun50i-nanopi-neo2-sid.dtbo'
> > applying DTB overlay '/boot/dtb/overlays/sun50i-nanopi-neo2-ths.dtbo'
> > failed to apply overlay: FDT_ERR_NOTFOUND
> > [...]
> > In this case the overlays were found and loaded, but did most likely no=
t match the u-boot dtb file.
> >
> > Is there an issue with loading overlays in conjunction with manually lo=
ading 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.

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:

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...

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.

> [0] https://people.freebsd.org/~kevans/overlay-hack.diff

[1] http://people.freebsd.org/~kevans/overlay-lesshack.diff



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CACNAnaE4T53nrGPXuJSGPwpe0m_Pdw%2BwxGsCL9Mhu_KA7jKAoQ>