[prev in list] [next in list] [prev in thread] [next in thread] 

List:       freebsd-arm
Subject:    Re: efi-loader ignores dtb files?
From:       Manuel =?ISO-8859-1?Q?St=FChn?= <freebsdnewbie () freenet ! de>
Date:       2019-03-31 15:54:22
Message-ID: 20190331175422.8bc3cb1b654ad0c5a7c9f533 () freenet ! de
[Download RAW message or body]

On Thu, 28 Mar 2019 21:50:48 +0100
Manuel Stühn <freebsdnewbie@freenet.de> wrote:

> On Thu, 28 Mar 2019 14:10:27 -0500
> Kyle Evans <kevans@freebsd.org> wrote:
> 
> > 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ühn <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 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=0x11a
> > > > /boot/dtb/overlays/sun50i-nanopi-neo2-sid.dtbo size=0x1f5
> > > > /boot/dtb/overlays/sun50i-nanopi-neo2-ths.dtbo size=0x3c5
> > > > 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 not \
> > > > match the u-boot dtb file. 
> > > > Is there an issue with loading overlays in conjunction with manually 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.
> > 
> > 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.boot/loader_lua.efi
> > 
> > > [0] https://people.freebsd.org/~kevans/overlay-hack.diff
> > 
> > [1] http://people.freebsd.org/~kevans/overlay-lesshack.diff
> 
> Thank you for your patches. I've been trying patch[1] but unfortunately
> it seems to not work for me. 

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 

Only for the records: how to cross-build and install
only /usr/src/stand: 
% export TARGET=arm64
% export TARGET_ARCH=aarch64
% export DESTDIR=/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.

-- 
Manuel
_______________________________________________
freebsd-arm@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/freebsd-arm
To unsubscribe, send any mail to "freebsd-arm-unsubscribe@freebsd.org"


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic