You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
72 lines
2.7 KiB
72 lines
2.7 KiB
#!/bin/bash
|
|
|
|
if [ -z "${ANDROID_HOST_OUT}" ]; then
|
|
echo 'ANDROID_HOST_OUT not set. Please run lunch'
|
|
exit 1
|
|
fi
|
|
|
|
# Global variables
|
|
BASE_DT_NAME="apply_fragment-base"
|
|
OVERLAY_DT_1="multiple_overlay_1"
|
|
OVERLAY_DT_2="multiple_overlay_2"
|
|
OVERLAY_DT_3="multiple_overlay_3"
|
|
OVERLAY_DT_4="multiple_overlay_4"
|
|
ANDROID_HOST_BIN_LOCATION=${ANDROID_HOST_OUT}/bin
|
|
IN_DATA_DIR="testdata"
|
|
|
|
tmpdir=$(mktemp -d)
|
|
trap 'rm -rf ${tmpdir};' EXIT
|
|
|
|
dtc -@ -qq -O dtb -o "${tmpdir}/${BASE_DT_NAME}.dtb" "${IN_DATA_DIR}/${BASE_DT_NAME}.dts"
|
|
dtc -@ -qq -O dtb -o "${tmpdir}/${OVERLAY_DT_1}.dtb" "${IN_DATA_DIR}/${OVERLAY_DT_1}.dts"
|
|
dtc -@ -qq -O dtb -o "${tmpdir}/${OVERLAY_DT_2}.dtb" "${IN_DATA_DIR}/${OVERLAY_DT_2}.dts"
|
|
dtc -@ -qq -O dtb -o "${tmpdir}/${OVERLAY_DT_3}.dtb" "${IN_DATA_DIR}/${OVERLAY_DT_3}.dts"
|
|
dtc -@ -qq -O dtb -o "${tmpdir}/${OVERLAY_DT_4}.dtb" "${IN_DATA_DIR}/${OVERLAY_DT_4}.dts"
|
|
|
|
cd $tmpdir
|
|
|
|
apply_bin_path="${ANDROID_HOST_BIN_LOCATION}/ufdt_apply_overlay"
|
|
$apply_bin_path "${BASE_DT_NAME}.dtb" "${OVERLAY_DT_1}.dtb" final_dt.dtb > /dev/null
|
|
$apply_bin_path final_dt.dtb "${OVERLAY_DT_2}.dtb" final_dt.dtb > /dev/null
|
|
$apply_bin_path final_dt.dtb "${OVERLAY_DT_3}.dtb" final_dt.dtb > /dev/null
|
|
|
|
#verify that the overlay was correctly applied
|
|
|
|
verify_bin_path="${ANDROID_HOST_BIN_LOCATION}/ufdt_verify_overlay_host"
|
|
|
|
overlay_sets=(
|
|
"${OVERLAY_DT_1}.dtb ${OVERLAY_DT_2}.dtb ${OVERLAY_DT_3}.dtb"
|
|
"${OVERLAY_DT_1}.dtb ${OVERLAY_DT_2}.dtb ${OVERLAY_DT_3}.dtb ${OVERLAY_DT_4}.dtb"
|
|
"${OVERLAY_DT_2}.dtb ${OVERLAY_DT_3}.dtb ${OVERLAY_DT_1}.dtb"
|
|
"${OVERLAY_DT_3}.dtb ${OVERLAY_DT_1}.dtb ${OVERLAY_DT_2}.dtb"
|
|
"${OVERLAY_DT_1}.dtb ${OVERLAY_DT_3}.dtb ${OVERLAY_DT_2}.dtb"
|
|
"${OVERLAY_DT_2}.dtb ${OVERLAY_DT_1}.dtb ${OVERLAY_DT_3}.dtb"
|
|
"${OVERLAY_DT_3}.dtb ${OVERLAY_DT_2}.dtb ${OVERLAY_DT_1}.dtb"
|
|
"${OVERLAY_DT_1}.dtb ${OVERLAY_DT_2}.dtb"
|
|
"${OVERLAY_DT_1}.dtb ${OVERLAY_DT_3}.dtb"
|
|
"${OVERLAY_DT_2}.dtb ${OVERLAY_DT_3}.dtb"
|
|
"${OVERLAY_DT_3}.dtb ${OVERLAY_DT_1}.dtb"
|
|
"${OVERLAY_DT_2}.dtb ${OVERLAY_DT_1}.dtb"
|
|
"${OVERLAY_DT_1}.dtb"
|
|
"${OVERLAY_DT_2}.dtb"
|
|
"${OVERLAY_DT_3}.dtb"
|
|
"${OVERLAY_DT_4}.dtb"
|
|
""
|
|
)
|
|
|
|
expected_out=(0 1 1 1 1 1 1 1 1 0 1 1 1 1 0 1 1)
|
|
|
|
for((i=0;i<${#overlay_sets[@]};i++))
|
|
do
|
|
$verify_bin_path final_dt.dtb ${overlay_sets[$i]} >& /dev/null
|
|
result=$?
|
|
if [[ "$result" -ne "${expected_out[$i]}" ]]
|
|
then
|
|
echo "Incorrect overlay application/verification for" ${overlay_sets[$i]}
|
|
exit 1
|
|
fi
|
|
done
|
|
|
|
echo "Overlays Verified Successfully"
|
|
exit 0
|