xref: /aosp_15_r20/system/libufdt/utils/tests/mkdtimg_acpi_testdata.sh (revision 13e8728f0cffde9369df671f7b293a048a99c7ed)
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