xref: /freebsd/sys/tools/fdt/make_dtb.sh (revision 2fec3ae8964c8864a9e75d6a2f0ed137ede489a7)
1#!/bin/sh
2#
3# $FreeBSD$
4
5# Script generates dtb file ($3) from dts source ($2) in build tree S ($1)
6S=$1
7dts="$2"
8dtb_path=$3
9
10if [ -z "$dts" ]; then
11    echo "No DTS specified"
12    exit 1
13fi
14
15if [ -z "${MACHINE}" ]; then
16    MACHINE=$(uname -m)
17fi
18
19: "${DTC:=dtc}"
20: "${ECHO:=echo}"
21: "${CPP:=cpp}"
22
23LINUX_DTS_VERSION=$(make -C $S/gnu/dts -V LINUX_DTS_VERSION)
24
25for d in ${dts}; do
26    dtb="${dtb_path}/$(basename "$d" .dts).dtb"
27    ${ECHO} "converting $d -> $dtb"
28    ${CPP} -DLINUX_DTS_VERSION=\"${LINUX_DTS_VERSION}\" -P -x assembler-with-cpp -I "$S/gnu/dts/include" -I "$S/dts/${MACHINE}" -I "$S/gnu/dts/${MACHINE}" -I "$S/gnu/dts/" -include "$d" -include "$S/dts/freebsd-compatible.dts" /dev/null |
29	${DTC} -@ -O dtb -o "$dtb" -b 0 -p 1024 -i "$S/dts/${MACHINE}" -i "$S/gnu/dts/${MACHINE}" -i "$S/gnu/dts/"
30done
31