Missing in action during arm64/aarch64 builds: no pine64_plus.dtb to be found from buildkernel, installkernel, or u-boot-pine64
Mark Millard
markmi at dsl-only.net
Sun Sep 10 19:51:15 UTC 2017
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:
>>
>> crochet goes to the trouble to have logic to
>> build and install pine64_plus.dtb (based on
>> arm64/pine64_plus.dts ).
>>
>
> 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
/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
(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
-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.
>
> 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 .
===
Mark Millard
markmi at dsl-only.net
More information about the freebsd-current
mailing list