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.

96 lines
3.6 KiB

#! /bin/bash
# Copyright (C) 2017 The Android Open Source Project
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
if ! hash iasl; then
echo "Please install 'acpica-tools' first"
exit 1
fi
SRCDIR="data"
ASL_LIST="
ssdt1.asl
ssdt2.asl
ssdt3.asl
"
PYCONFIG="${SRCDIR}/mkdtboimg_acpi.cfg"
OUTDIR="out"
MKDTIMG_OUT="${OUTDIR}/mkdtimg_acpi_out"
MKDTIMG_DUMP="${MKDTIMG_OUT}"/dump.aml
MKDTBOIMG_OUT="${OUTDIR}/mkdtboimg_acpi_out"
MKDTBOIMG_OUTCREATE="${MKDTBOIMG_OUT}/create"
MKDTBOIMG_OUTCFG="${MKDTBOIMG_OUT}/cfg_create"
MKDTBOIMG_CREATEDUMP="${MKDTBOIMG_OUTCREATE}"/dump.aml
MKDTBOIMG_CFGDUMP="${MKDTBOIMG_OUTCFG}"/dump.aml
mkdir -p "$MKDTIMG_OUT"
mkdir -p "$MKDTBOIMG_OUTCREATE"
mkdir -p "$MKDTBOIMG_OUTCFG"
for asl in ${ASL_LIST}; do
echo "Building $asl..."
src_asl="${SRCDIR}/${asl}"
out_aml_pfx="${OUTDIR}/${asl%.asl}"
iasl -p "${out_aml_pfx}" "$src_asl"
done
echo "Creating acpi image with mkdtbimg"
mkdtimg create ${MKDTIMG_OUT}/create_acpi.img --dt_type=acpi --page_size=2048 --id=0x100 --rev=0x100 --version=1 \
"${OUTDIR}/ssdt1.aml" "${OUTDIR}/ssdt2.aml" "${OUTDIR}/ssdt3.aml" > /dev/null
echo "Creating acpi image with mkdtboimg"
../src/mkdtboimg.py create ${MKDTBOIMG_OUTCREATE}/create_acpi.img --dt_type=acpi --page_size=2048 --id=0x200 --rev=0x200 --version=2 \
"${OUTDIR}/ssdt1.aml" "${OUTDIR}/ssdt2.aml" "${OUTDIR}/ssdt3.aml" > /dev/null
echo "Creating acpi image with ${PYCONFIG} config file"
../src/mkdtboimg.py cfg_create ${MKDTBOIMG_OUTCFG}/create_acpi.img ${PYCONFIG} -d "${OUTDIR}"
echo "Dumping fragments from mkdtimg tool image"
mkdtimg dump ${MKDTIMG_OUT}/create_acpi.img -b "${MKDTIMG_DUMP}"| grep -v 'FDT' > ${MKDTIMG_OUT}/create.dump
echo "Dumping fragments from mkdtboimg.py tool for image generated with 'create'"
../src/mkdtboimg.py dump ${MKDTBOIMG_OUTCREATE}/create_acpi.img --output ${MKDTBOIMG_OUTCREATE}/create.dump -b "${MKDTBOIMG_CREATEDUMP}" --decompress
echo "Dumping fragments from mkdtboimg.py tool for image generated with 'cfg_create'"
../src/mkdtboimg.py dump ${MKDTBOIMG_OUTCFG}/create_acpi.img --output ${MKDTBOIMG_OUTCFG}/create.dump -b "${MKDTBOIMG_CFGDUMP}" --decompress
echo "======================================================================================"
echo "Testing differences between image created by 'create' for 'mkdtimg' and 'mkdtboimg.py'"
echo "======================================================================================"
for x in ${MKDTIMG_DUMP}.*
do
file=$(basename $x)
if [ ! -e ${MKDTBOIMG_OUTCREATE}/$file ]
then
continue
fi
echo "diff $x vs ${MKDTBOIMG_OUTCREATE}/$file"
diff $x ${MKDTBOIMG_OUTCREATE}/$file
done
echo "=========================================================================================="
echo "Testing differences between image created by 'cfg_create' for 'mkdtimg' and 'mkdtboimg.py'"
echo "=========================================================================================="
for x in ${MKDTIMG_DUMP}.*
do
file=$(basename $x)
if [ ! -e ${MKDTBOIMG_OUTCFG}/$file ]
then
continue
fi
echo "diff $x vs ${MKDTBOIMG_OUTCFG}/$file"
diff $x ${MKDTBOIMG_OUTCFG}/$file
done