blob: ed258a0a246e2bb506d70418b13532f7bd72c5af [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 <Base DTS> <Overlay DTS> <Output DTS>"
8}
9
10function on_exit() {
11 rm -rf "$TEMP_DIR"
12}
13
14#
15# Start
16#
17
18if [[ $# -lt 3 ]]; then
19 usage
20 exit 1
21fi
22
23BASE_DTS=$1
24OVERLAY_DTS=$2
25OUT_DTS=$3
26
27TEMP_DIR=`mktemp -d`
28# The script will exit directly if any command fails.
29set -e
30trap on_exit EXIT
31
32# Finds '/dts-v1/; and /plugin/;' then replace them with '/* REMOVED */'
33OVERLAY_DTS_DIR=`dirname "$OVERLAY_DTS"`
34OVERLAY_DTS_NAME=`basename "$OVERLAY_DTS"`
35OVERLAY_DT_WO_HEADER_DTS="$TEMP_DIR/$OVERLAY_DTS_NAME"
36sed "s/\\(\\/dts-v1\\/\\s*;\\|\\/plugin\\/\\s*;\\)/\\/\\* REMOVED \\*\\//g" \
37 "$OVERLAY_DTS" > "$OVERLAY_DT_WO_HEADER_DTS"
38
39# Appends /include/ ...;
40BASE_DTS_DIR=`dirname "$BASE_DTS"`
41BASE_DTS_NAME=`basename "$BASE_DTS"`
42BASE_DT_WITH_INC_DTS="$TEMP_DIR/$BASE_DTS_NAME"
43cp "$BASE_DTS" "$BASE_DT_WITH_INC_DTS"
44echo "/include/ \"$OVERLAY_DT_WO_HEADER_DTS\"" >> "$BASE_DT_WITH_INC_DTS"
45
46# Simulate device tree overlay
47MERGED_DTB="$BASE_DT_WITH_INC_DTS.dtb"
48dtc -@ -i "$BASE_DTS_DIR" -i "$OVERLAY_DTS_DIR" -O dtb -o "$MERGED_DTB" "$BASE_DT_WITH_INC_DTS"
49
50# Dump
51dtc -s -O dts -o "$OUT_DTS" "$MERGED_DTB"