1*cd60bc56SAndroid Build Coastguard Worker#! /bin/bash 2*cd60bc56SAndroid Build Coastguard Worker# SPDX-License-Identifier: GPL-2.0-or-later 3*cd60bc56SAndroid Build Coastguard Worker 4*cd60bc56SAndroid Build Coastguard Worker# This script uses the bash <(...) extension. 5*cd60bc56SAndroid Build Coastguard Worker# If you want to change this to work with a generic /bin/sh, make sure 6*cd60bc56SAndroid Build Coastguard Worker# you fix that. 7*cd60bc56SAndroid Build Coastguard Worker 8*cd60bc56SAndroid Build Coastguard Worker 9*cd60bc56SAndroid Build Coastguard WorkerDTC=dtc 10*cd60bc56SAndroid Build Coastguard Worker 11*cd60bc56SAndroid Build Coastguard Workersource_and_sort () { 12*cd60bc56SAndroid Build Coastguard Worker DT="$1" 13*cd60bc56SAndroid Build Coastguard Worker if [ -d "$DT" ]; then 14*cd60bc56SAndroid Build Coastguard Worker IFORMAT=fs 15*cd60bc56SAndroid Build Coastguard Worker elif [ -f "$DT" ]; then 16*cd60bc56SAndroid Build Coastguard Worker case "$DT" in 17*cd60bc56SAndroid Build Coastguard Worker *.dts) 18*cd60bc56SAndroid Build Coastguard Worker IFORMAT=dts 19*cd60bc56SAndroid Build Coastguard Worker ;; 20*cd60bc56SAndroid Build Coastguard Worker *.dtb) 21*cd60bc56SAndroid Build Coastguard Worker IFORMAT=dtb 22*cd60bc56SAndroid Build Coastguard Worker ;; 23*cd60bc56SAndroid Build Coastguard Worker esac 24*cd60bc56SAndroid Build Coastguard Worker fi 25*cd60bc56SAndroid Build Coastguard Worker 26*cd60bc56SAndroid Build Coastguard Worker if [ -z "$IFORMAT" ]; then 27*cd60bc56SAndroid Build Coastguard Worker echo "Unrecognized format for $DT" >&2 28*cd60bc56SAndroid Build Coastguard Worker exit 2 29*cd60bc56SAndroid Build Coastguard Worker fi 30*cd60bc56SAndroid Build Coastguard Worker 31*cd60bc56SAndroid Build Coastguard Worker $DTC -I $IFORMAT -O dts -qq -f -s -o - "$DT" 32*cd60bc56SAndroid Build Coastguard Worker} 33*cd60bc56SAndroid Build Coastguard Worker 34*cd60bc56SAndroid Build Coastguard Workerif [ $# != 2 ]; then 35*cd60bc56SAndroid Build Coastguard Worker echo "Usage: dtdiff <device tree> <device tree>" >&2 36*cd60bc56SAndroid Build Coastguard Worker exit 1 37*cd60bc56SAndroid Build Coastguard Workerfi 38*cd60bc56SAndroid Build Coastguard Worker 39*cd60bc56SAndroid Build Coastguard Workerdiff -u <(source_and_sort "$1") <(source_and_sort "$2") 40