#! /bin/bash | |
# SPDX-License-Identifier: GPL-2.0-or-later | |
# This script uses the bash <(...) extension. | |
# If you want to change this to work with a generic /bin/sh, make sure | |
# you fix that. | |
DTC=dtc | |
source_and_sort () { | |
DT="$1" | |
if [ -d "$DT" ]; then | |
IFORMAT=fs | |
elif [ -f "$DT" ]; then | |
case "$DT" in | |
*.dts) | |
IFORMAT=dts | |
;; | |
*.dtb) | |
IFORMAT=dtb | |
;; | |
esac | |
fi | |
if [ -z "$IFORMAT" ]; then | |
echo "Unrecognized format for $DT" >&2 | |
exit 2 | |
fi | |
$DTC -I $IFORMAT -O dts -qq -f -s -o - "$DT" | |
} | |
if [ $# != 2 ]; then | |
echo "Usage: dtdiff <device tree> <device tree>" >&2 | |
exit 1 | |
fi | |
diff -u <(source_and_sort "$1") <(source_and_sort "$2") |