Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 10 Sep 2017 12:51:11 -0700
From:      Mark Millard <markmi@dsl-only.net>
To:        Tim Kientzle <tim@kientzle.com>
Cc:        FreeBSD Toolchain <freebsd-toolchain@freebsd.org>, freebsd-arm <freebsd-arm@freebsd.org>, FreeBSD current <freebsd-current@freebsd.org>
Subject:   Re: Missing in action during arm64/aarch64 builds: no pine64_plus.dtb to be found from buildkernel, installkernel, or u-boot-pine64
Message-ID:  <F6DA511E-7A0A-4374-BA75-185B9F148A86@dsl-only.net>
In-Reply-To: <5D56FE2E-DB64-4038-BD5B-8C1AD6B1A69D@kientzle.com>
References:  <DB33811B-1DB8-4461-A8D4-78B7118A547C@dsl-only.net> <5D56FE2E-DB64-4038-BD5B-8C1AD6B1A69D@kientzle.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On 2017-Sep-10, at 10:26 AM, Tim Kientzle <tim at kientzle.com> wrote:

>> On Sep 9, 2017, at 4:35 PM, Mark Millard <markmi at dsl-only.net> =
wrote:
>>=20
>> crochet goes to the trouble to have logic to
>> build and install pine64_plus.dtb (based on
>> arm64/pine64_plus.dts ).
>>=20
>=20
> I'm not sure about Pine64 in particular, but generally
> only the DTS file is actually required.

[Note:
I used crochet source code to figure out a set of manual
steps sufficient to produce a pine64_plus.dtb to copy to
the boot msdosfs file system.]

Some of the #include structure that the existing
pine64_plus.dts.dts depends on:

# grep "#include" /usr/src/sys =
/usr/src/sys/boot/fdt/dts/arm64/pine64_plus.dts
/usr/src/sys/boot/fdt/dts/arm64/pine64_plus.dts:#include =
"sun50i-a64-pine64-plus.dts"
/usr/src/sys/boot/fdt/dts/arm64/pine64_plus.dts:#include "a64.dtsi"
/usr/src/sys/boot/fdt/dts/arm64/pine64_plus.dts:#include =
<dt-bindings/gpio/gpio.h>

# grep "#include" /usr/src/sys =
/usr/src/sys/boot/fdt/dts/arm64/sun50i-a64-pine64-plus.dts
/usr/src/sys/boot/fdt/dts/arm64/sun50i-a64-pine64-plus.dts:#include =
"sun50i-a64-pine64-common.dtsi"

# grep "#include" /usr/src/sys =
/usr/src/sys/boot/fdt/dts/arm64/pine64_plus.dts
/usr/src/sys/boot/fdt/dts/arm64/pine64_plus.dts:#include =
"sun50i-a64-pine64-plus.dts"
/usr/src/sys/boot/fdt/dts/arm64/pine64_plus.dts:#include "a64.dtsi"
/usr/src/sys/boot/fdt/dts/arm64/pine64_plus.dts:#include =
<dt-bindings/gpio/gpio.h>

# grep "#include" /usr/src/sys =
/usr/src/sys/boot/fdt/dts/arm64/sun50i-a64-pine64-plus.dts
/usr/src/sys/boot/fdt/dts/arm64/sun50i-a64-pine64-plus.dts:#include =
"sun50i-a64-pine64-common.dtsi"

# grep "#include" /usr/src/sys =
/usr/src/sys/boot/fdt/dts/arm64/sun50i-a64-pine64-common.dtsi
/usr/src/sys/boot/fdt/dts/arm64/sun50i-a64-pine64-common.dtsi:#include =
"sun50i-a64.dtsi"

# grep "#include" /usr/src/sys =
/usr/src/sys/boot/fdt/dts/arm64/sun50i-a64.dtsi=20
/usr/src/sys/boot/fdt/dts/arm64/sun50i-a64.dtsi:#include =
<dt-bindings/interrupt-controller/arm-gic.h>
/usr/src/sys/boot/fdt/dts/arm64/sun50i-a64.dtsi:#include =
<dt-bindings/pinctrl/sun4i-a10.h>

# grep "#include" /usr/src/sys /usr/src/sys/boot/fdt/dts/arm64/a64.dtsi=20=


(Yep: nothing for that last one.)

I would not guess that the full structure is a appropriate as a
substitute for the dtb/pine64_plus.dtb part of the msdosfs
partition for booting the Pine64+ 2GB :

# find /mnt -print
/mnt
/mnt/startup.nsh
/mnt/EFI
/mnt/EFI/BOOT
/mnt/EFI/BOOT/bootaa64.efi
/mnt/dtb
/mnt/dtb/pine64_plus.dtb
/mnt/System Volume Information
/mnt/System Volume Information/WPSettings.dat

# ls -lt /usr/local/share/u-boot/u-boot-pine64/u-boot-sunxi-with-spl.bin=20=

-rw-r--r--  1 root  wheel  505940 Sep  6 00:49 =
/usr/local/share/u-boot/u-boot-pine64/u-boot-sunxi-with-spl.bin

(*.bin dd'd appropriately.)

So there still seems to be a lack of appropriate .dt* material for
direct use/placement on the boot media. Instead manual extra steps
are required relative to *.dt* files.

> Crochet tries to provide a dtb file (converting the dts if necessary)
> partly for documentation and partly to make it easier to edit the
> device tree file.
>=20
> This is especially convenient in cases where the
> original DTB file depends heavily on other include files;
> converting DTS to DTB gives you a fully standalone DTB
> file that can be edited (for example, to enable additional
> serial ports) and recompiled without having the full source
> tree available.

The above is the kind of context that the Pine64+'s
have.

It does not appear to me that the existing pine64_plus.dts
is set up for more direct use (even with other supporting
files).

> This is probably less important now that overlay DTBs are
> more commonly supported.

Whatever this is, it seems to not be in use for much (any?)
of the Pine64+ structuring of such things in head -r323246 .


=3D=3D=3D
Mark Millard
markmi at dsl-only.net







Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?F6DA511E-7A0A-4374-BA75-185B9F148A86>