#! /bin/bash # 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")