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