Stand-alone DTB build fails
Ron Brown
ron.brown at arcserv.com
Fri Apr 25 14:57:13 UTC 2014
The FreeBSD Wiki at https://wiki.freebsd.org/FlattenedDeviceTree refers to
building a dtb in the following manner:
--
On platforms capable of running loader(8) the default scenario is to use
a stand-alone DTB file, which is handled by the loader and handed over to
kernel at boot time. In this approach, a DTB should be created at kernel
build time:
If FDT_DTS_FILE is specified in the kernel config file, the DTB is
compiled automatically as part of the buildkernel stage. The user does
not have to perform any explicit steps.
If the default DTS file is not specified in the kernel config file, the
DTB needs to be created separately by the user with the builddtb target:
$ make builddtb FDT_DTS_FILE=mpc8572ds.dts
--
However, this fails with:
ERROR: Specified DTS File (zedboard.dts) does not exist!
This is because /usr/src/Makefile.inc1 uses the MACHINE environment
variable to find FDT_DTS_FILE:
Starting at line 1836:
if [ ! -f ${.CURDIR}/sys/boot/fdt/dts/${MACHINE}/${FDT_DTS_FILE} ]; ...
echo "ERROR: Specified DTS file (${FDT_DTS_FILE}) does not \
exist!"; \
MACHINE refers to the currently running system, however most of the ARM
development is cross-compiled and the zedboard .dts resides in the dts/arm
directory while MACHINE points if to the dts/amd64 directory.
Should Makefile.inc1 instead refer to TARGET or something similar?
if [ ! -f ${.CURDIR}/sys/boot/fdt/dts/${TARGET}/${FDT_DTS_FILE} ]; ...
- Ron
More information about the freebsd-current
mailing list