1f6c209b3f409f879305ac9837524b9d34c850de6Li Chen#!/bin/bash
24f00eda9fa05364edd719b05b88e4445682eeee5SzuWei Lin# Copyright (C) 2016 The Android Open Source Project
34f00eda9fa05364edd719b05b88e4445682eeee5SzuWei Lin#
44f00eda9fa05364edd719b05b88e4445682eeee5SzuWei Lin# Licensed under the Apache License, Version 2.0 (the "License");
54f00eda9fa05364edd719b05b88e4445682eeee5SzuWei Lin# you may not use this file except in compliance with the License.
64f00eda9fa05364edd719b05b88e4445682eeee5SzuWei Lin# You may obtain a copy of the License at
74f00eda9fa05364edd719b05b88e4445682eeee5SzuWei Lin#
84f00eda9fa05364edd719b05b88e4445682eeee5SzuWei Lin#      http://www.apache.org/licenses/LICENSE-2.0
94f00eda9fa05364edd719b05b88e4445682eeee5SzuWei Lin#
104f00eda9fa05364edd719b05b88e4445682eeee5SzuWei Lin# Unless required by applicable law or agreed to in writing, software
114f00eda9fa05364edd719b05b88e4445682eeee5SzuWei Lin# distributed under the License is distributed on an "AS IS" BASIS,
124f00eda9fa05364edd719b05b88e4445682eeee5SzuWei Lin# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
134f00eda9fa05364edd719b05b88e4445682eeee5SzuWei Lin# See the License for the specific language governing permissions and
144f00eda9fa05364edd719b05b88e4445682eeee5SzuWei Lin# limitations under the License.
15f6c209b3f409f879305ac9837524b9d34c850de6Li Chen
16f6c209b3f409f879305ac9837524b9d34c850de6Li Chen# We want to generate two device tree blob (.dtb) files by combining
17f6c209b3f409f879305ac9837524b9d34c850de6Li Chen# the "base" and "add" device tree source (.dts) files in two
18f6c209b3f409f879305ac9837524b9d34c850de6Li Chen# different ways.
19f6c209b3f409f879305ac9837524b9d34c850de6Li Chen#
20b63f3b74cc6f87a1106e2afd49e82cac3538ef53SzuWei Lin# 1) Use /include/ and compile via dtc to make the "gold standard"
21f6c209b3f409f879305ac9837524b9d34c850de6Li Chen#
22b63f3b74cc6f87a1106e2afd49e82cac3538ef53SzuWei Lin# 2) Compile them separately dtc, and join them with the
23b63f3b74cc6f87a1106e2afd49e82cac3538ef53SzuWei Lin#    ufdt_apply_overlay program
24f6c209b3f409f879305ac9837524b9d34c850de6Li Chen#
25b63f3b74cc6f87a1106e2afd49e82cac3538ef53SzuWei Lin# Then, compare 1) and 2) with dts_diff (diff merged nodes) and return 0
26b63f3b74cc6f87a1106e2afd49e82cac3538ef53SzuWei Lin# iff they are identical.
27f6c209b3f409f879305ac9837524b9d34c850de6Li Chen
28f6c209b3f409f879305ac9837524b9d34c850de6Li ChenSCRIPT_DIR="$(dirname "$(readlink -f "$0")")"
29f6c209b3f409f879305ac9837524b9d34c850de6Li Chensource ${SCRIPT_DIR}/common.sh
30f6c209b3f409f879305ac9837524b9d34c850de6Li Chen
31f6c209b3f409f879305ac9837524b9d34c850de6Li Chenon_exit() {
32b63f3b74cc6f87a1106e2afd49e82cac3538ef53SzuWei Lin  rm -rf "$TEMP_DIR"
33f6c209b3f409f879305ac9837524b9d34c850de6Li Chen}
34f6c209b3f409f879305ac9837524b9d34c850de6Li Chen
35b63f3b74cc6f87a1106e2afd49e82cac3538ef53SzuWei Lin# Constants
36b63f3b74cc6f87a1106e2afd49e82cac3538ef53SzuWei LinIN_DATA_DIR="testdata"
37f6c209b3f409f879305ac9837524b9d34c850de6Li Chen
38b63f3b74cc6f87a1106e2afd49e82cac3538ef53SzuWei LinTEMP_DIR=`mktemp -d`
39f6c209b3f409f879305ac9837524b9d34c850de6Li Chen# The script will exit directly if any command fails.
40f6c209b3f409f879305ac9837524b9d34c850de6Li Chenset -e
41f6c209b3f409f879305ac9837524b9d34c850de6Li Chentrap on_exit EXIT
42f6c209b3f409f879305ac9837524b9d34c850de6Li Chen
43b63f3b74cc6f87a1106e2afd49e82cac3538ef53SzuWei Lin# Global variables
44b63f3b74cc6f87a1106e2afd49e82cac3538ef53SzuWei LinTESTCASE_NAME=$1
45b63f3b74cc6f87a1106e2afd49e82cac3538ef53SzuWei LinBASE_DTS="$IN_DATA_DIR/${TESTCASE_NAME}-base.dts"
46b63f3b74cc6f87a1106e2afd49e82cac3538ef53SzuWei LinOVERLAY_DTS="$IN_DATA_DIR/${TESTCASE_NAME}-overlay.dts"
47f7403df4976562ecf2c1266e5f05f800037c8772SzuWei LinREF_MERGED_DTS="$TEMP_DIR/${TESTCASE_NAME}-ref-merged.dts"
48b63f3b74cc6f87a1106e2afd49e82cac3538ef53SzuWei LinOVL_MERGED_DTS="$TEMP_DIR/${TESTCASE_NAME}-ovl-merged.dts"
49f6c209b3f409f879305ac9837524b9d34c850de6Li Chen
50b63f3b74cc6f87a1106e2afd49e82cac3538ef53SzuWei Lin#
51b63f3b74cc6f87a1106e2afd49e82cac3538ef53SzuWei Lin# Complie and diff
52b63f3b74cc6f87a1106e2afd49e82cac3538ef53SzuWei Lin#
53f7403df4976562ecf2c1266e5f05f800037c8772SzuWei Lin$SCRIPT_DIR/apply_overlay.sh --fdt "$BASE_DTS" "$OVERLAY_DTS" "$REF_MERGED_DTS"
54f7403df4976562ecf2c1266e5f05f800037c8772SzuWei Lin$SCRIPT_DIR/apply_overlay.sh --ufdt "$BASE_DTS" "$OVERLAY_DTS" "$OVL_MERGED_DTS"
55f7403df4976562ecf2c1266e5f05f800037c8772SzuWei Lindts_diff "$REF_MERGED_DTS" "$OVL_MERGED_DTS"
56