common.sh revision f6c209b3f409f879305ac9837524b9d34c850de6
1f6c209b3f409f879305ac9837524b9d34c850de6Li Chen#!/bin/bash 2f6c209b3f409f879305ac9837524b9d34c850de6Li Chen 3f6c209b3f409f879305ac9837524b9d34c850de6Li Chenalert() { 4f6c209b3f409f879305ac9837524b9d34c850de6Li Chen echo "$*" >&2 5f6c209b3f409f879305ac9837524b9d34c850de6Li Chen} 6f6c209b3f409f879305ac9837524b9d34c850de6Li Chen 7f6c209b3f409f879305ac9837524b9d34c850de6Li Chendie() { 8f6c209b3f409f879305ac9837524b9d34c850de6Li Chen echo "ERROR: $@" 9f6c209b3f409f879305ac9837524b9d34c850de6Li Chen exit 1 10f6c209b3f409f879305ac9837524b9d34c850de6Li Chen} 11f6c209b3f409f879305ac9837524b9d34c850de6Li Chen 12f6c209b3f409f879305ac9837524b9d34c850de6Li Chencommand_exists () { 13f6c209b3f409f879305ac9837524b9d34c850de6Li Chen type "$1" &> /dev/null; 14f6c209b3f409f879305ac9837524b9d34c850de6Li Chen} 15f6c209b3f409f879305ac9837524b9d34c850de6Li Chen 16f6c209b3f409f879305ac9837524b9d34c850de6Li Chendtb_to_dts () { 17f6c209b3f409f879305ac9837524b9d34c850de6Li Chen dtc -O dts -s $1 18f6c209b3f409f879305ac9837524b9d34c850de6Li Chen if [ $? -ne 0 ]; then 19f6c209b3f409f879305ac9837524b9d34c850de6Li Chen die "dtb_to_dts $1 failed!" 20f6c209b3f409f879305ac9837524b9d34c850de6Li Chen fi 21f6c209b3f409f879305ac9837524b9d34c850de6Li Chen} 22f6c209b3f409f879305ac9837524b9d34c850de6Li Chen 23f6c209b3f409f879305ac9837524b9d34c850de6Li Chendts_to_dtb () { 24f6c209b3f409f879305ac9837524b9d34c850de6Li Chen dtc -O dtb -s -@ $1 25f6c209b3f409f879305ac9837524b9d34c850de6Li Chen if [ $? -ne 0 ]; then 26f6c209b3f409f879305ac9837524b9d34c850de6Li Chen die "dts_to_dtb $1 failed!" 27f6c209b3f409f879305ac9837524b9d34c850de6Li Chen fi 28f6c209b3f409f879305ac9837524b9d34c850de6Li Chen} 29f6c209b3f409f879305ac9837524b9d34c850de6Li Chen 30f6c209b3f409f879305ac9837524b9d34c850de6Li Chenremove_local_fixups() { 31f6c209b3f409f879305ac9837524b9d34c850de6Li Chen sed '/__local_fixups__/ {s/^\s*__local_fixups__\s*//; :again;N; s/{[^{}]*};//; /^$/ !b again; d}' $1 32f6c209b3f409f879305ac9837524b9d34c850de6Li Chen} 33f6c209b3f409f879305ac9837524b9d34c850de6Li Chen 34f6c209b3f409f879305ac9837524b9d34c850de6Li Chenremove_overlay_stuff() { 35f6c209b3f409f879305ac9837524b9d34c850de6Li Chen # remove __symbols__, phandle, "linux,phandle" and __local_fixups__ 36f6c209b3f409f879305ac9837524b9d34c850de6Li Chen sed "/__symbols__/,/[}];/d" $1 | sed "/\(^[ \t]*phandle\)/d" | sed "/\(^[ \t]*linux,phandle\)/d" | sed '/^\s*$/d' | remove_local_fixups 37f6c209b3f409f879305ac9837524b9d34c850de6Li Chen} 38f6c209b3f409f879305ac9837524b9d34c850de6Li Chen 39f6c209b3f409f879305ac9837524b9d34c850de6Li Chendt_diff () { 40f6c209b3f409f879305ac9837524b9d34c850de6Li Chen diff -u <(dtb_to_dts "$1" | remove_overlay_stuff) <(dtb_to_dts "$2" | remove_overlay_stuff) 41f6c209b3f409f879305ac9837524b9d34c850de6Li Chen} 42