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 Worker 16*13e8728fSAndroid Build Coastguard Workerif ! hash iasl; then 17*13e8728fSAndroid Build Coastguard Worker echo "Please install 'acpica-tools' first." 18*13e8728fSAndroid Build Coastguard Worker exit 1 19*13e8728fSAndroid Build Coastguard Workerfi 20*13e8728fSAndroid Build Coastguard Worker 21*13e8728fSAndroid Build Coastguard WorkerSRCDIR="data" 22*13e8728fSAndroid Build Coastguard WorkerASL_LIST=" 23*13e8728fSAndroid Build Coastguard Worker ssdt1.asl 24*13e8728fSAndroid Build Coastguard Worker ssdt2.asl 25*13e8728fSAndroid Build Coastguard Worker ssdt3.asl 26*13e8728fSAndroid Build Coastguard Worker" 27*13e8728fSAndroid Build Coastguard WorkerAML_LIST=( 28*13e8728fSAndroid Build Coastguard Worker "ssdt1.aml" 29*13e8728fSAndroid Build Coastguard Worker "ssdt2.aml" 30*13e8728fSAndroid Build Coastguard Worker "ssdt3.aml" 31*13e8728fSAndroid Build Coastguard Worker) 32*13e8728fSAndroid Build Coastguard WorkerCONFIG="${SRCDIR}/mkdtimg_acpi.cfg" 33*13e8728fSAndroid Build Coastguard Worker 34*13e8728fSAndroid Build Coastguard WorkerOUTDIR="out" 35*13e8728fSAndroid Build Coastguard WorkerOUTDTB_CFG="${OUTDIR}/dump_cfg.aml" 36*13e8728fSAndroid Build Coastguard WorkerOUTDTB="${OUTDIR}/dump.aml" 37*13e8728fSAndroid Build Coastguard Worker 38*13e8728fSAndroid Build Coastguard Workermkdir -p "$OUTDIR" 39*13e8728fSAndroid Build Coastguard Workerfor asl in ${ASL_LIST}; do 40*13e8728fSAndroid Build Coastguard Worker echo "Building $asl..." 41*13e8728fSAndroid Build Coastguard Worker src_asl="${SRCDIR}/${asl}" 42*13e8728fSAndroid Build Coastguard Worker out_aml_pfx="${OUTDIR}/${asl%.asl}" 43*13e8728fSAndroid Build Coastguard Worker iasl -p "${out_aml_pfx}" "$src_asl" 44*13e8728fSAndroid Build Coastguard Workerdone 45*13e8728fSAndroid Build Coastguard Worker 46*13e8728fSAndroid Build Coastguard WorkerIMG="${OUTDIR}/cfg_create_acpi.img" 47*13e8728fSAndroid Build Coastguard Workermkdtimg cfg_create "$IMG" "${CONFIG}" --dtb-dir="$OUTDIR" 48*13e8728fSAndroid Build Coastguard Workermkdtimg dump "$IMG" -b "$OUTDTB_CFG" | grep -v 'FDT' | tee "${OUTDIR}/cfg_create_acpi.dump" 49*13e8728fSAndroid Build Coastguard Workerfor index in "${!AML_LIST[@]}"; do 50*13e8728fSAndroid Build Coastguard Worker diff ${OUTDIR}/${AML_LIST[$index]} ${OUTDTB_CFG}.$index 51*13e8728fSAndroid Build Coastguard Workerdone 52*13e8728fSAndroid Build Coastguard Worker 53*13e8728fSAndroid Build Coastguard WorkerIMG="${OUTDIR}/create_acpi.img" 54*13e8728fSAndroid Build Coastguard Workermkdtimg create "$IMG" --dt_type=acpi --page_size=2048 --id=0x100 --rev=0x100 --version=1 \ 55*13e8728fSAndroid Build Coastguard Worker "${OUTDIR}/ssdt1.aml" "${OUTDIR}/ssdt2.aml" "${OUTDIR}/ssdt3.aml" 56*13e8728fSAndroid Build Coastguard Workermkdtimg dump "$IMG" -b "$OUTDTB" | grep -v 'FDT' | tee "${OUTDIR}/create_acpi.dump" 57*13e8728fSAndroid Build Coastguard Workerfor index in "${!AML_LIST[@]}"; do 58*13e8728fSAndroid Build Coastguard Worker diff ${OUTDIR}/${AML_LIST[$index]} ${OUTDTB}.$index 59*13e8728fSAndroid Build Coastguard Workerdone 60*13e8728fSAndroid Build Coastguard Worker 61*13e8728fSAndroid Build Coastguard Workerdiff "${OUTDIR}/cfg_create_acpi.dump" "${OUTDIR}/create_acpi.dump" 62