#!/bin/bash # Copyright (C) 2016 The Android Open Source Project # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. PROG_NAME=`basename $0` function usage() { echo "Usage:" echo " $PROG_NAME <Base DTS> <Overlay DTS> <Output DTS>" } function on_exit() { rm -rf "$TEMP_DIR" } # # Start # 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 # Finds '/dts-v1/; and /plugin/;' then replace them with '/* REMOVED */' OVERLAY_DTS_DIR=`dirname "$OVERLAY_DTS"` OVERLAY_DTS_NAME=`basename "$OVERLAY_DTS"` OVERLAY_DT_WO_HEADER_DTS="$TEMP_DIR/$OVERLAY_DTS_NAME" sed "s/\\(\\/dts-v1\\/\\s*;\\|\\/plugin\\/\\s*;\\)/\\/\\* REMOVED \\*\\//g" \ "$OVERLAY_DTS" > "$OVERLAY_DT_WO_HEADER_DTS" # Appends /include/ ...; BASE_DTS_DIR=`dirname "$BASE_DTS"` BASE_DTS_NAME=`basename "$BASE_DTS"` BASE_DT_WITH_INC_DTS="$TEMP_DIR/$BASE_DTS_NAME" cp "$BASE_DTS" "$BASE_DT_WITH_INC_DTS" echo "/include/ \"$OVERLAY_DT_WO_HEADER_DTS\"" >> "$BASE_DT_WITH_INC_DTS" # Simulate device tree overlay MERGED_DTB="$BASE_DT_WITH_INC_DTS.dtb" dtc -@ -i "$BASE_DTS_DIR" -i "$OVERLAY_DTS_DIR" -O dtb -o "$MERGED_DTB" "$BASE_DT_WITH_INC_DTS" # Dump dtc -s -O dts -o "$OUT_DTS" "$MERGED_DTB"