xref: /aosp_15_r20/system/libufdt/utils/tests/mkdtboimg_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 WorkerSRCDIR="data"
18*13e8728fSAndroid Build Coastguard WorkerDTS_LIST="
19*13e8728fSAndroid Build Coastguard Worker  board1v1.dts
20*13e8728fSAndroid Build Coastguard Worker  board1v1_1.dts
21*13e8728fSAndroid Build Coastguard Worker  board2v1.dts
22*13e8728fSAndroid Build Coastguard Worker"
23*13e8728fSAndroid Build Coastguard WorkerDTB_LIST=(
24*13e8728fSAndroid Build Coastguard Worker  "board1v1.dts.dtb"
25*13e8728fSAndroid Build Coastguard Worker  "board1v1_1.dts.dtb"
26*13e8728fSAndroid Build Coastguard Worker  "board2v1.dts.dtb"
27*13e8728fSAndroid Build Coastguard Worker  "board1v1.dts.dtb"
28*13e8728fSAndroid Build Coastguard Worker)
29*13e8728fSAndroid Build Coastguard WorkerCONFIG="${SRCDIR}/mkdtimg.cfg"
30*13e8728fSAndroid Build Coastguard WorkerPYCONFIG="${SRCDIR}/mkdtboimg.cfg"
31*13e8728fSAndroid Build Coastguard Worker
32*13e8728fSAndroid Build Coastguard WorkerALIGN=4
33*13e8728fSAndroid Build Coastguard Worker
34*13e8728fSAndroid Build Coastguard WorkerOUTDIR="out"
35*13e8728fSAndroid Build Coastguard WorkerMKDTIMG_OUT="${OUTDIR}/mkdtimg_out"
36*13e8728fSAndroid Build Coastguard WorkerMKDTIMG_DUMP="${MKDTIMG_OUT}"/dump.dtb
37*13e8728fSAndroid Build Coastguard Worker
38*13e8728fSAndroid Build Coastguard WorkerMKDTBOIMG_OUT="${OUTDIR}/mkdtboimg_out"
39*13e8728fSAndroid Build Coastguard WorkerMKDTBOIMG_OUTCREATE="${MKDTBOIMG_OUT}/create"
40*13e8728fSAndroid Build Coastguard WorkerMKDTBOIMG_OUTCFG="${MKDTBOIMG_OUT}/cfg_create"
41*13e8728fSAndroid Build Coastguard WorkerMKDTBOIMG_CREATEDUMP="${MKDTBOIMG_OUTCREATE}"/dump.dtb
42*13e8728fSAndroid Build Coastguard WorkerMKDTBOIMG_CFGDUMP="${MKDTBOIMG_OUTCFG}"/dump.dtb
43*13e8728fSAndroid Build Coastguard Worker
44*13e8728fSAndroid Build Coastguard Workermkdir -p "$MKDTIMG_OUT"
45*13e8728fSAndroid Build Coastguard Workermkdir -p "$MKDTBOIMG_OUTCREATE"
46*13e8728fSAndroid Build Coastguard Workermkdir -p "$MKDTBOIMG_OUTCFG"
47*13e8728fSAndroid Build Coastguard Worker
48*13e8728fSAndroid Build Coastguard Workerfor dts in ${DTS_LIST}; do
49*13e8728fSAndroid Build Coastguard Worker  echo "Building $dts..."
50*13e8728fSAndroid Build Coastguard Worker  src_dts="${SRCDIR}/${dts}"
51*13e8728fSAndroid Build Coastguard Worker  out_dtb="${OUTDIR}/${dts}.dtb"
52*13e8728fSAndroid Build Coastguard Worker  dtc -O dtb -@ -qq -a "$ALIGN" -o "$out_dtb" "$src_dts"
53*13e8728fSAndroid Build Coastguard Workerdone
54*13e8728fSAndroid Build Coastguard Worker
55*13e8728fSAndroid Build Coastguard Workerecho "Creating dtbo image with mkdtbimg"
56*13e8728fSAndroid Build Coastguard Workermkdtimg create ${MKDTIMG_OUT}/create.img --page_size=4096 --id=0x100 --version=1\
57*13e8728fSAndroid Build Coastguard Worker    --rev=0x100 --custom0=0xabc "${OUTDIR}/board1v1.dts.dtb" "${OUTDIR}/board1v1_1.dts.dtb" \
58*13e8728fSAndroid Build Coastguard Worker    --id=0xddccbbaa --rev=0x01000100 "${OUTDIR}/board2v1.dts.dtb" --id=0x200 \
59*13e8728fSAndroid Build Coastguard Worker    --rev=0x201 "${OUTDIR}/board1v1.dts.dtb" --custom0=0xdef \
60*13e8728fSAndroid Build Coastguard Worker    "${OUTDIR}/board1v1.dts.dtb" --custom0=0xdef > /dev/null
61*13e8728fSAndroid Build Coastguard Worker
62*13e8728fSAndroid Build Coastguard Workerecho "Creating dtbo image with mkdtboimg"
63*13e8728fSAndroid Build Coastguard Worker../src/mkdtboimg.py create  ${MKDTBOIMG_OUTCREATE}/create.img --page_size=4096 \
64*13e8728fSAndroid Build Coastguard Worker    --id=0x100 --rev=0x100 --flags=0xabc0 --version=1 "${OUTDIR}/board1v1.dts.dtb" \
65*13e8728fSAndroid Build Coastguard Worker    "${OUTDIR}/board1v1_1.dts.dtb" --id=0xddccbbaa --rev=0x01000100 \
66*13e8728fSAndroid Build Coastguard Worker    "${OUTDIR}/board2v1.dts.dtb" --id=0x200 --rev=0x201 \
67*13e8728fSAndroid Build Coastguard Worker    "${OUTDIR}/board1v1.dts.dtb" --flags=0xd01 \
68*13e8728fSAndroid Build Coastguard Worker    "${OUTDIR}/board1v1.dts.dtb" --flags=0xd02 > /dev/null
69*13e8728fSAndroid Build Coastguard Worker
70*13e8728fSAndroid Build Coastguard Workerecho "Creating dtbo image with ${PYCONFIG} config file"
71*13e8728fSAndroid Build Coastguard Worker../src/mkdtboimg.py cfg_create ${MKDTBOIMG_OUTCFG}/create.img ${PYCONFIG} --dtb-dir "${OUTDIR}"
72*13e8728fSAndroid Build Coastguard Worker
73*13e8728fSAndroid Build Coastguard Workerecho "Dumping fragments from mkdtimg tool image"
74*13e8728fSAndroid Build Coastguard Workermkdtimg dump ${MKDTIMG_OUT}/create.img -b "${MKDTIMG_DUMP}"| grep -v 'FDT' > ${MKDTIMG_OUT}/create.dump
75*13e8728fSAndroid Build Coastguard Worker
76*13e8728fSAndroid Build Coastguard Workerecho "Dumping fragments from mkdtboimg.py tool for image generated with 'create'"
77*13e8728fSAndroid Build Coastguard Worker../src/mkdtboimg.py dump ${MKDTBOIMG_OUTCREATE}/create.img --output ${MKDTBOIMG_OUTCREATE}/create.dump -b "${MKDTBOIMG_CREATEDUMP}" --decompress
78*13e8728fSAndroid Build Coastguard Worker
79*13e8728fSAndroid Build Coastguard Workerecho "Dumping fragments from mkdtboimg.py tool for image generated with 'cfg_create'"
80*13e8728fSAndroid Build Coastguard Worker../src/mkdtboimg.py dump ${MKDTBOIMG_OUTCFG}/create.img --output ${MKDTBOIMG_OUTCFG}/create.dump -b "${MKDTBOIMG_CFGDUMP}" --decompress
81*13e8728fSAndroid Build Coastguard Worker
82*13e8728fSAndroid Build Coastguard Workerecho "======================================================================================"
83*13e8728fSAndroid Build Coastguard Workerecho "Testing differences between image created by 'create' for 'mkdtimg' and 'mkdtboimg.py'"
84*13e8728fSAndroid Build Coastguard Workerecho "======================================================================================"
85*13e8728fSAndroid Build Coastguard Workerfor x in `ls -1 ${MKDTIMG_DUMP}.*`
86*13e8728fSAndroid Build Coastguard Workerdo
87*13e8728fSAndroid Build Coastguard Worker    file=`basename $x`
88*13e8728fSAndroid Build Coastguard Worker    if [ ! -e ${MKDTBOIMG_OUTCREATE}/$file ]
89*13e8728fSAndroid Build Coastguard Worker    then
90*13e8728fSAndroid Build Coastguard Worker        continue
91*13e8728fSAndroid Build Coastguard Worker    fi
92*13e8728fSAndroid Build Coastguard Worker    echo "diff $x vs ${MKDTBOIMG_OUTCREATE}/$file"
93*13e8728fSAndroid Build Coastguard Worker    diff $x ${MKDTBOIMG_OUTCREATE}/$file
94*13e8728fSAndroid Build Coastguard Workerdone
95*13e8728fSAndroid Build Coastguard Workerecho "=========================================================================================="
96*13e8728fSAndroid Build Coastguard Workerecho "Testing differences between image created by 'cfg_create' for 'mkdtimg' and 'mkdtboimg.py'"
97*13e8728fSAndroid Build Coastguard Workerecho "=========================================================================================="
98*13e8728fSAndroid Build Coastguard Workerfor x in `ls -1 ${MKDTIMG_DUMP}.*`
99*13e8728fSAndroid Build Coastguard Workerdo
100*13e8728fSAndroid Build Coastguard Worker    file=`basename $x`
101*13e8728fSAndroid Build Coastguard Worker    if [ ! -e ${MKDTBOIMG_OUTCFG}/$file ]
102*13e8728fSAndroid Build Coastguard Worker    then
103*13e8728fSAndroid Build Coastguard Worker        continue
104*13e8728fSAndroid Build Coastguard Worker    fi
105*13e8728fSAndroid Build Coastguard Worker    echo "diff $x vs ${MKDTBOIMG_OUTCFG}/$file"
106*13e8728fSAndroid Build Coastguard Worker    diff $x ${MKDTBOIMG_OUTCFG}/$file
107*13e8728fSAndroid Build Coastguard Workerdone
108