1*13e8728fSAndroid Build Coastguard Worker#! /bin/bash 2*13e8728fSAndroid Build Coastguard Worker# Copyright (C) 2017 The Android Open Source Project 3*13e8728fSAndroid Build Coastguard Worker# 4*13e8728fSAndroid Build Coastguard Worker# Licensed under the Apache License, Version 2.0 (the "License"); 5*13e8728fSAndroid Build Coastguard Worker# you may not use this file except in compliance with the License. 6*13e8728fSAndroid Build Coastguard Worker# You may obtain a copy of the License at 7*13e8728fSAndroid Build Coastguard Worker# 8*13e8728fSAndroid Build Coastguard Worker# http://www.apache.org/licenses/LICENSE-2.0 9*13e8728fSAndroid Build Coastguard Worker# 10*13e8728fSAndroid Build Coastguard Worker# Unless required by applicable law or agreed to in writing, software 11*13e8728fSAndroid Build Coastguard Worker# distributed under the License is distributed on an "AS IS" BASIS, 12*13e8728fSAndroid Build Coastguard Worker# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13*13e8728fSAndroid Build Coastguard Worker# See the License for the specific language governing permissions and 14*13e8728fSAndroid Build Coastguard Worker# limitations under the License. 15*13e8728fSAndroid Build Coastguard Workerset -e 16*13e8728fSAndroid Build Coastguard Worker 17*13e8728fSAndroid Build Coastguard Workerif ! hash iasl; then 18*13e8728fSAndroid Build Coastguard Worker echo "Please install 'acpica-tools' first" 19*13e8728fSAndroid Build Coastguard Worker exit 1 20*13e8728fSAndroid Build Coastguard Workerfi 21*13e8728fSAndroid Build Coastguard Worker 22*13e8728fSAndroid Build Coastguard WorkerSRCDIR="data" 23*13e8728fSAndroid Build Coastguard WorkerASL_LIST=" 24*13e8728fSAndroid Build Coastguard Worker ssdt1.asl 25*13e8728fSAndroid Build Coastguard Worker ssdt2.asl 26*13e8728fSAndroid Build Coastguard Worker ssdt3.asl 27*13e8728fSAndroid Build Coastguard Worker" 28*13e8728fSAndroid Build Coastguard WorkerPYCONFIG="${SRCDIR}/mkdtboimg_acpi.cfg" 29*13e8728fSAndroid Build Coastguard Worker 30*13e8728fSAndroid Build Coastguard WorkerOUTDIR="out" 31*13e8728fSAndroid Build Coastguard WorkerMKDTIMG_OUT="${OUTDIR}/mkdtimg_acpi_out" 32*13e8728fSAndroid Build Coastguard WorkerMKDTIMG_DUMP="${MKDTIMG_OUT}"/dump.aml 33*13e8728fSAndroid Build Coastguard Worker 34*13e8728fSAndroid Build Coastguard WorkerMKDTBOIMG_OUT="${OUTDIR}/mkdtboimg_acpi_out" 35*13e8728fSAndroid Build Coastguard WorkerMKDTBOIMG_OUTCREATE="${MKDTBOIMG_OUT}/create" 36*13e8728fSAndroid Build Coastguard WorkerMKDTBOIMG_OUTCFG="${MKDTBOIMG_OUT}/cfg_create" 37*13e8728fSAndroid Build Coastguard WorkerMKDTBOIMG_CREATEDUMP="${MKDTBOIMG_OUTCREATE}"/dump.aml 38*13e8728fSAndroid Build Coastguard WorkerMKDTBOIMG_CFGDUMP="${MKDTBOIMG_OUTCFG}"/dump.aml 39*13e8728fSAndroid Build Coastguard Worker 40*13e8728fSAndroid Build Coastguard Workermkdir -p "$MKDTIMG_OUT" 41*13e8728fSAndroid Build Coastguard Workermkdir -p "$MKDTBOIMG_OUTCREATE" 42*13e8728fSAndroid Build Coastguard Workermkdir -p "$MKDTBOIMG_OUTCFG" 43*13e8728fSAndroid Build Coastguard Worker 44*13e8728fSAndroid Build Coastguard Workerfor asl in ${ASL_LIST}; do 45*13e8728fSAndroid Build Coastguard Worker echo "Building $asl..." 46*13e8728fSAndroid Build Coastguard Worker src_asl="${SRCDIR}/${asl}" 47*13e8728fSAndroid Build Coastguard Worker out_aml_pfx="${OUTDIR}/${asl%.asl}" 48*13e8728fSAndroid Build Coastguard Worker iasl -p "${out_aml_pfx}" "$src_asl" 49*13e8728fSAndroid Build Coastguard Workerdone 50*13e8728fSAndroid Build Coastguard Worker 51*13e8728fSAndroid Build Coastguard Workerecho "Creating acpi image with mkdtbimg" 52*13e8728fSAndroid Build Coastguard Workermkdtimg create ${MKDTIMG_OUT}/create_acpi.img --dt_type=acpi --page_size=2048 --id=0x100 --rev=0x100 --version=1 \ 53*13e8728fSAndroid Build Coastguard Worker "${OUTDIR}/ssdt1.aml" "${OUTDIR}/ssdt2.aml" "${OUTDIR}/ssdt3.aml" > /dev/null 54*13e8728fSAndroid Build Coastguard Worker 55*13e8728fSAndroid Build Coastguard Workerecho "Creating acpi image with mkdtboimg" 56*13e8728fSAndroid Build Coastguard Worker../src/mkdtboimg.py create ${MKDTBOIMG_OUTCREATE}/create_acpi.img --dt_type=acpi --page_size=2048 --id=0x200 --rev=0x200 --version=2 \ 57*13e8728fSAndroid Build Coastguard Worker "${OUTDIR}/ssdt1.aml" "${OUTDIR}/ssdt2.aml" "${OUTDIR}/ssdt3.aml" > /dev/null 58*13e8728fSAndroid Build Coastguard Worker 59*13e8728fSAndroid Build Coastguard Workerecho "Creating acpi image with ${PYCONFIG} config file" 60*13e8728fSAndroid Build Coastguard Worker../src/mkdtboimg.py cfg_create ${MKDTBOIMG_OUTCFG}/create_acpi.img ${PYCONFIG} -d "${OUTDIR}" 61*13e8728fSAndroid Build Coastguard Worker 62*13e8728fSAndroid Build Coastguard Workerecho "Dumping fragments from mkdtimg tool image" 63*13e8728fSAndroid Build Coastguard Workermkdtimg dump ${MKDTIMG_OUT}/create_acpi.img -b "${MKDTIMG_DUMP}"| grep -v 'FDT' > ${MKDTIMG_OUT}/create.dump 64*13e8728fSAndroid Build Coastguard Worker 65*13e8728fSAndroid Build Coastguard Workerecho "Dumping fragments from mkdtboimg.py tool for image generated with 'create'" 66*13e8728fSAndroid Build Coastguard Worker../src/mkdtboimg.py dump ${MKDTBOIMG_OUTCREATE}/create_acpi.img --output ${MKDTBOIMG_OUTCREATE}/create.dump -b "${MKDTBOIMG_CREATEDUMP}" --decompress 67*13e8728fSAndroid Build Coastguard Worker 68*13e8728fSAndroid Build Coastguard Workerecho "Dumping fragments from mkdtboimg.py tool for image generated with 'cfg_create'" 69*13e8728fSAndroid Build Coastguard Worker../src/mkdtboimg.py dump ${MKDTBOIMG_OUTCFG}/create_acpi.img --output ${MKDTBOIMG_OUTCFG}/create.dump -b "${MKDTBOIMG_CFGDUMP}" --decompress 70*13e8728fSAndroid Build Coastguard Worker 71*13e8728fSAndroid Build Coastguard Workerecho "======================================================================================" 72*13e8728fSAndroid Build Coastguard Workerecho "Testing differences between image created by 'create' for 'mkdtimg' and 'mkdtboimg.py'" 73*13e8728fSAndroid Build Coastguard Workerecho "======================================================================================" 74*13e8728fSAndroid Build Coastguard Workerfor x in ${MKDTIMG_DUMP}.* 75*13e8728fSAndroid Build Coastguard Workerdo 76*13e8728fSAndroid Build Coastguard Worker file=$(basename $x) 77*13e8728fSAndroid Build Coastguard Worker if [ ! -e ${MKDTBOIMG_OUTCREATE}/$file ] 78*13e8728fSAndroid Build Coastguard Worker then 79*13e8728fSAndroid Build Coastguard Worker continue 80*13e8728fSAndroid Build Coastguard Worker fi 81*13e8728fSAndroid Build Coastguard Worker echo "diff $x vs ${MKDTBOIMG_OUTCREATE}/$file" 82*13e8728fSAndroid Build Coastguard Worker diff $x ${MKDTBOIMG_OUTCREATE}/$file 83*13e8728fSAndroid Build Coastguard Workerdone 84*13e8728fSAndroid Build Coastguard Workerecho "==========================================================================================" 85*13e8728fSAndroid Build Coastguard Workerecho "Testing differences between image created by 'cfg_create' for 'mkdtimg' and 'mkdtboimg.py'" 86*13e8728fSAndroid Build Coastguard Workerecho "==========================================================================================" 87*13e8728fSAndroid Build Coastguard Workerfor x in ${MKDTIMG_DUMP}.* 88*13e8728fSAndroid Build Coastguard Workerdo 89*13e8728fSAndroid Build Coastguard Worker file=$(basename $x) 90*13e8728fSAndroid Build Coastguard Worker if [ ! -e ${MKDTBOIMG_OUTCFG}/$file ] 91*13e8728fSAndroid Build Coastguard Worker then 92*13e8728fSAndroid Build Coastguard Worker continue 93*13e8728fSAndroid Build Coastguard Worker fi 94*13e8728fSAndroid Build Coastguard Worker echo "diff $x vs ${MKDTBOIMG_OUTCFG}/$file" 95*13e8728fSAndroid Build Coastguard Worker diff $x ${MKDTBOIMG_OUTCFG}/$file 96*13e8728fSAndroid Build Coastguard Workerdone 97