1#!/bin/bash 2 3if [ -z "${ANDROID_HOST_OUT}" ]; then 4 echo 'ANDROID_HOST_OUT not set. Please run lunch' 5 exit 1 6fi 7 8# Global variables 9BASE_DT_NAME="apply_fragment-base" 10OVERLAY_DT_1="multiple_overlay_1" 11OVERLAY_DT_2="multiple_overlay_2" 12OVERLAY_DT_3="multiple_overlay_3" 13OVERLAY_DT_4="multiple_overlay_4" 14ANDROID_HOST_BIN_LOCATION=${ANDROID_HOST_OUT}/bin 15IN_DATA_DIR="testdata" 16 17tmpdir=$(mktemp -d) 18trap 'rm -rf ${tmpdir};' EXIT 19 20dtc -@ -qq -O dtb -o "${tmpdir}/${BASE_DT_NAME}.dtb" "${IN_DATA_DIR}/${BASE_DT_NAME}.dts" 21dtc -@ -qq -O dtb -o "${tmpdir}/${OVERLAY_DT_1}.dtb" "${IN_DATA_DIR}/${OVERLAY_DT_1}.dts" 22dtc -@ -qq -O dtb -o "${tmpdir}/${OVERLAY_DT_2}.dtb" "${IN_DATA_DIR}/${OVERLAY_DT_2}.dts" 23dtc -@ -qq -O dtb -o "${tmpdir}/${OVERLAY_DT_3}.dtb" "${IN_DATA_DIR}/${OVERLAY_DT_3}.dts" 24dtc -@ -qq -O dtb -o "${tmpdir}/${OVERLAY_DT_4}.dtb" "${IN_DATA_DIR}/${OVERLAY_DT_4}.dts" 25 26cd $tmpdir 27 28apply_bin_path="${ANDROID_HOST_BIN_LOCATION}/ufdt_apply_overlay" 29$apply_bin_path "${BASE_DT_NAME}.dtb" "${OVERLAY_DT_1}.dtb" final_dt.dtb > /dev/null 30$apply_bin_path final_dt.dtb "${OVERLAY_DT_2}.dtb" final_dt.dtb > /dev/null 31$apply_bin_path final_dt.dtb "${OVERLAY_DT_3}.dtb" final_dt.dtb > /dev/null 32 33#verify that the overlay was correctly applied 34 35verify_bin_path="${ANDROID_HOST_BIN_LOCATION}/ufdt_verify_overlay_host" 36 37overlay_sets=( 38 "${OVERLAY_DT_1}.dtb ${OVERLAY_DT_2}.dtb ${OVERLAY_DT_3}.dtb" 39 "${OVERLAY_DT_1}.dtb ${OVERLAY_DT_2}.dtb ${OVERLAY_DT_3}.dtb ${OVERLAY_DT_4}.dtb" 40 "${OVERLAY_DT_2}.dtb ${OVERLAY_DT_3}.dtb ${OVERLAY_DT_1}.dtb" 41 "${OVERLAY_DT_3}.dtb ${OVERLAY_DT_1}.dtb ${OVERLAY_DT_2}.dtb" 42 "${OVERLAY_DT_1}.dtb ${OVERLAY_DT_3}.dtb ${OVERLAY_DT_2}.dtb" 43 "${OVERLAY_DT_2}.dtb ${OVERLAY_DT_1}.dtb ${OVERLAY_DT_3}.dtb" 44 "${OVERLAY_DT_3}.dtb ${OVERLAY_DT_2}.dtb ${OVERLAY_DT_1}.dtb" 45 "${OVERLAY_DT_1}.dtb ${OVERLAY_DT_2}.dtb" 46 "${OVERLAY_DT_1}.dtb ${OVERLAY_DT_3}.dtb" 47 "${OVERLAY_DT_2}.dtb ${OVERLAY_DT_3}.dtb" 48 "${OVERLAY_DT_3}.dtb ${OVERLAY_DT_1}.dtb" 49 "${OVERLAY_DT_2}.dtb ${OVERLAY_DT_1}.dtb" 50 "${OVERLAY_DT_1}.dtb" 51 "${OVERLAY_DT_2}.dtb" 52 "${OVERLAY_DT_3}.dtb" 53 "${OVERLAY_DT_4}.dtb" 54 "" 55 ) 56 57expected_out=(0 1 1 1 1 1 1 1 1 0 1 1 1 1 0 1 1) 58 59for((i=0;i<${#overlay_sets[@]};i++)) 60do 61 $verify_bin_path final_dt.dtb ${overlay_sets[$i]} >& /dev/null 62 result=$? 63 if [[ "$result" -ne "${expected_out[$i]}" ]] 64 then 65 echo "Incorrect overlay application/verification for" ${overlay_sets[$i]} 66 exit 1 67 fi 68done 69 70echo "Overlays Verified Successfully" 71exit 0 72