xref: /aosp_15_r20/system/libufdt/utils/tests/mkdtboimg_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 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