blob: 943613f371dab5d6db01638b4c709482c556e418 [file] [log] [blame]
Mayank Groverf3b78182017-12-19 13:31:30 +05301#!/bin/bash
2
3PROG_NAME=`basename $0`
4
5function usage() {
6 echo "Usage:"
7 echo " $PROG_NAME (--fdt|--ufdt) <Base DTS> <Overlay DTS> <Output DTS>"
8}
9
10function on_exit() {
11 rm -rf "$TEMP_DIR"
12}
13
14#
15# Start
16#
17
18# Setup OVERLAY
19if [ "$1" == "--fdt" ]; then
20 shift
21 OVERLAY="fdt_apply_overlay"
22elif [ "$1" == "--ufdt" ]; then
23 shift
24 OVERLAY="ufdt_apply_overlay"
25else
26 usage
27 exit 1
28fi
29
30if [[ $# -lt 3 ]]; then
31 usage
32 exit 1
33fi
34
35BASE_DTS=$1
36OVERLAY_DTS=$2
37OUT_DTS=$3
38
39TEMP_DIR=`mktemp -d`
40# The script will exit directly if any command fails.
41set -e
42trap on_exit EXIT
43
44# Compile the *-base.dts to make *-base.dtb
45BASE_DTS_NAME=`basename "$BASE_DTS"`
46BASE_DTB="$TEMP_DIR/${BASE_DTS_NAME}-base.dtb"
47dtc -@ -qq -O dtb -o "$BASE_DTB" "$BASE_DTS"
48
49# Compile the *-overlay.dts to make *-overlay.dtb
50OVERLAY_DTS_NAME=`basename "$OVERLAY_DTS"`
51OVERLAY_DTB="$TEMP_DIR/${OVERLAY_DTS_NAME}-overlay.dtb"
52dtc -@ -qq -O dtb -o "$OVERLAY_DTB" "$OVERLAY_DTS"
53
54# Run ufdt_apply_overlay to combine *-base.dtb and *-overlay.dtb
55# into *-merged.dtb
56MERGED_DTB="$TEMP_DIR/${BASE_DTS_NAME}-merged.dtb"
57"$OVERLAY" "$BASE_DTB" "$OVERLAY_DTB" "$MERGED_DTB"
58
59# Dump
60dtc -s -O dts -o "$OUT_DTS" "$MERGED_DTB"