xref: /aosp_15_r20/system/libufdt/tests/verify_dto_inc.sh (revision 13e8728f0cffde9369df671f7b293a048a99c7ed)
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