blob: 943613f371dab5d6db01638b4c709482c556e418 [file] [log] [blame]
#!/bin/bash
PROG_NAME=`basename $0`
function usage() {
echo "Usage:"
echo " $PROG_NAME (--fdt|--ufdt) <Base DTS> <Overlay DTS> <Output DTS>"
}
function on_exit() {
rm -rf "$TEMP_DIR"
}
#
# Start
#
# Setup OVERLAY
if [ "$1" == "--fdt" ]; then
shift
OVERLAY="fdt_apply_overlay"
elif [ "$1" == "--ufdt" ]; then
shift
OVERLAY="ufdt_apply_overlay"
else
usage
exit 1
fi
if [[ $# -lt 3 ]]; then
usage
exit 1
fi
BASE_DTS=$1
OVERLAY_DTS=$2
OUT_DTS=$3
TEMP_DIR=`mktemp -d`
# The script will exit directly if any command fails.
set -e
trap on_exit EXIT
# Compile the *-base.dts to make *-base.dtb
BASE_DTS_NAME=`basename "$BASE_DTS"`
BASE_DTB="$TEMP_DIR/${BASE_DTS_NAME}-base.dtb"
dtc -@ -qq -O dtb -o "$BASE_DTB" "$BASE_DTS"
# Compile the *-overlay.dts to make *-overlay.dtb
OVERLAY_DTS_NAME=`basename "$OVERLAY_DTS"`
OVERLAY_DTB="$TEMP_DIR/${OVERLAY_DTS_NAME}-overlay.dtb"
dtc -@ -qq -O dtb -o "$OVERLAY_DTB" "$OVERLAY_DTS"
# Run ufdt_apply_overlay to combine *-base.dtb and *-overlay.dtb
# into *-merged.dtb
MERGED_DTB="$TEMP_DIR/${BASE_DTS_NAME}-merged.dtb"
"$OVERLAY" "$BASE_DTB" "$OVERLAY_DTB" "$MERGED_DTB"
# Dump
dtc -s -O dts -o "$OUT_DTS" "$MERGED_DTB"