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