1*13e8728fSAndroid Build Coastguard Worker#!/bin/bash 2*13e8728fSAndroid Build Coastguard Worker# Copyright (C) 2016 The Android Open Source Project 3*13e8728fSAndroid Build Coastguard Worker# 4*13e8728fSAndroid Build Coastguard Worker# Licensed under the Apache License, Version 2.0 (the "License"); 5*13e8728fSAndroid Build Coastguard Worker# you may not use this file except in compliance with the License. 6*13e8728fSAndroid Build Coastguard Worker# You may obtain a copy of the License at 7*13e8728fSAndroid Build Coastguard Worker# 8*13e8728fSAndroid Build Coastguard Worker# http://www.apache.org/licenses/LICENSE-2.0 9*13e8728fSAndroid Build Coastguard Worker# 10*13e8728fSAndroid Build Coastguard Worker# Unless required by applicable law or agreed to in writing, software 11*13e8728fSAndroid Build Coastguard Worker# distributed under the License is distributed on an "AS IS" BASIS, 12*13e8728fSAndroid Build Coastguard Worker# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13*13e8728fSAndroid Build Coastguard Worker# See the License for the specific language governing permissions and 14*13e8728fSAndroid Build Coastguard Worker# limitations under the License. 15*13e8728fSAndroid Build Coastguard Worker 16*13e8728fSAndroid Build Coastguard WorkerPROG_NAME=`basename $0` 17*13e8728fSAndroid Build Coastguard Worker 18*13e8728fSAndroid Build Coastguard Workerfunction usage() { 19*13e8728fSAndroid Build Coastguard Worker echo "Usage:" 20*13e8728fSAndroid Build Coastguard Worker echo " $PROG_NAME <Base DTS> <Overlay DTS> <Output DTS>" 21*13e8728fSAndroid Build Coastguard Worker} 22*13e8728fSAndroid Build Coastguard Worker 23*13e8728fSAndroid Build Coastguard Workerfunction on_exit() { 24*13e8728fSAndroid Build Coastguard Worker rm -rf "$TEMP_DIR" 25*13e8728fSAndroid Build Coastguard Worker} 26*13e8728fSAndroid Build Coastguard Worker 27*13e8728fSAndroid Build Coastguard Worker# 28*13e8728fSAndroid Build Coastguard Worker# Start 29*13e8728fSAndroid Build Coastguard Worker# 30*13e8728fSAndroid Build Coastguard Worker 31*13e8728fSAndroid Build Coastguard Workerif [[ $# -lt 3 ]]; then 32*13e8728fSAndroid Build Coastguard Worker usage 33*13e8728fSAndroid Build Coastguard Worker exit 1 34*13e8728fSAndroid Build Coastguard Workerfi 35*13e8728fSAndroid Build Coastguard Worker 36*13e8728fSAndroid Build Coastguard WorkerBASE_DTS=$1 37*13e8728fSAndroid Build Coastguard WorkerOVERLAY_DTS=$2 38*13e8728fSAndroid Build Coastguard WorkerOUT_DTS=$3 39*13e8728fSAndroid Build Coastguard Worker 40*13e8728fSAndroid Build Coastguard WorkerTEMP_DIR=`mktemp -d` 41*13e8728fSAndroid Build Coastguard Worker# The script will exit directly if any command fails. 42*13e8728fSAndroid Build Coastguard Workerset -e 43*13e8728fSAndroid Build Coastguard Workertrap on_exit EXIT 44*13e8728fSAndroid Build Coastguard Worker 45*13e8728fSAndroid Build Coastguard Worker# Finds '/dts-v1/; and /plugin/;' then replace them with '/* REMOVED */' 46*13e8728fSAndroid Build Coastguard WorkerOVERLAY_DTS_DIR=`dirname "$OVERLAY_DTS"` 47*13e8728fSAndroid Build Coastguard WorkerOVERLAY_DTS_NAME=`basename "$OVERLAY_DTS"` 48*13e8728fSAndroid Build Coastguard WorkerOVERLAY_DT_WO_HEADER_DTS="$TEMP_DIR/$OVERLAY_DTS_NAME" 49*13e8728fSAndroid Build Coastguard Workersed "s/\\(\\/dts-v1\\/\\s*;\\|\\/plugin\\/\\s*;\\)/\\/\\* REMOVED \\*\\//g" \ 50*13e8728fSAndroid Build Coastguard Worker "$OVERLAY_DTS" > "$OVERLAY_DT_WO_HEADER_DTS" 51*13e8728fSAndroid Build Coastguard Worker 52*13e8728fSAndroid Build Coastguard Worker# Appends /include/ ...; 53*13e8728fSAndroid Build Coastguard WorkerBASE_DTS_DIR=`dirname "$BASE_DTS"` 54*13e8728fSAndroid Build Coastguard WorkerBASE_DTS_NAME=`basename "$BASE_DTS"` 55*13e8728fSAndroid Build Coastguard WorkerBASE_DT_WITH_INC_DTS="$TEMP_DIR/$BASE_DTS_NAME" 56*13e8728fSAndroid Build Coastguard Workercp "$BASE_DTS" "$BASE_DT_WITH_INC_DTS" 57*13e8728fSAndroid Build Coastguard Workerecho "/include/ \"$OVERLAY_DT_WO_HEADER_DTS\"" >> "$BASE_DT_WITH_INC_DTS" 58*13e8728fSAndroid Build Coastguard Worker 59*13e8728fSAndroid Build Coastguard Worker# Simulate device tree overlay 60*13e8728fSAndroid Build Coastguard WorkerMERGED_DTB="$BASE_DT_WITH_INC_DTS.dtb" 61*13e8728fSAndroid Build Coastguard Workerdtc -@ -i "$BASE_DTS_DIR" -i "$OVERLAY_DTS_DIR" -O dtb -o "$MERGED_DTB" "$BASE_DT_WITH_INC_DTS" 62*13e8728fSAndroid Build Coastguard Worker 63*13e8728fSAndroid Build Coastguard Worker# Dump 64*13e8728fSAndroid Build Coastguard Workerdtc -s -O dts -o "$OUT_DTS" "$MERGED_DTB" 65