xref: /aosp_15_r20/system/libufdt/utils/tests/mkdtboimg_testdata.sh (revision 13e8728f0cffde9369df671f7b293a048a99c7ed)
1#! /bin/bash
2# Copyright (C) 2017 The Android Open Source Project
3#
4# Licensed under the Apache License, Version 2.0 (the "License");
5# you may not use this file except in compliance with the License.
6# You may obtain a copy of the License at
7#
8#      http://www.apache.org/licenses/LICENSE-2.0
9#
10# Unless required by applicable law or agreed to in writing, software
11# distributed under the License is distributed on an "AS IS" BASIS,
12# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13# See the License for the specific language governing permissions and
14# limitations under the License.
15set -e
16
17SRCDIR="data"
18DTS_LIST="
19  board1v1.dts
20  board1v1_1.dts
21  board2v1.dts
22"
23DTB_LIST=(
24  "board1v1.dts.dtb"
25  "board1v1_1.dts.dtb"
26  "board2v1.dts.dtb"
27  "board1v1.dts.dtb"
28)
29CONFIG="${SRCDIR}/mkdtimg.cfg"
30PYCONFIG="${SRCDIR}/mkdtboimg.cfg"
31
32ALIGN=4
33
34OUTDIR="out"
35MKDTIMG_OUT="${OUTDIR}/mkdtimg_out"
36MKDTIMG_DUMP="${MKDTIMG_OUT}"/dump.dtb
37
38MKDTBOIMG_OUT="${OUTDIR}/mkdtboimg_out"
39MKDTBOIMG_OUTCREATE="${MKDTBOIMG_OUT}/create"
40MKDTBOIMG_OUTCFG="${MKDTBOIMG_OUT}/cfg_create"
41MKDTBOIMG_CREATEDUMP="${MKDTBOIMG_OUTCREATE}"/dump.dtb
42MKDTBOIMG_CFGDUMP="${MKDTBOIMG_OUTCFG}"/dump.dtb
43
44mkdir -p "$MKDTIMG_OUT"
45mkdir -p "$MKDTBOIMG_OUTCREATE"
46mkdir -p "$MKDTBOIMG_OUTCFG"
47
48for dts in ${DTS_LIST}; do
49  echo "Building $dts..."
50  src_dts="${SRCDIR}/${dts}"
51  out_dtb="${OUTDIR}/${dts}.dtb"
52  dtc -O dtb -@ -qq -a "$ALIGN" -o "$out_dtb" "$src_dts"
53done
54
55echo "Creating dtbo image with mkdtbimg"
56mkdtimg create ${MKDTIMG_OUT}/create.img --page_size=4096 --id=0x100 --version=1\
57    --rev=0x100 --custom0=0xabc "${OUTDIR}/board1v1.dts.dtb" "${OUTDIR}/board1v1_1.dts.dtb" \
58    --id=0xddccbbaa --rev=0x01000100 "${OUTDIR}/board2v1.dts.dtb" --id=0x200 \
59    --rev=0x201 "${OUTDIR}/board1v1.dts.dtb" --custom0=0xdef \
60    "${OUTDIR}/board1v1.dts.dtb" --custom0=0xdef > /dev/null
61
62echo "Creating dtbo image with mkdtboimg"
63../src/mkdtboimg.py create  ${MKDTBOIMG_OUTCREATE}/create.img --page_size=4096 \
64    --id=0x100 --rev=0x100 --flags=0xabc0 --version=1 "${OUTDIR}/board1v1.dts.dtb" \
65    "${OUTDIR}/board1v1_1.dts.dtb" --id=0xddccbbaa --rev=0x01000100 \
66    "${OUTDIR}/board2v1.dts.dtb" --id=0x200 --rev=0x201 \
67    "${OUTDIR}/board1v1.dts.dtb" --flags=0xd01 \
68    "${OUTDIR}/board1v1.dts.dtb" --flags=0xd02 > /dev/null
69
70echo "Creating dtbo image with ${PYCONFIG} config file"
71../src/mkdtboimg.py cfg_create ${MKDTBOIMG_OUTCFG}/create.img ${PYCONFIG} --dtb-dir "${OUTDIR}"
72
73echo "Dumping fragments from mkdtimg tool image"
74mkdtimg dump ${MKDTIMG_OUT}/create.img -b "${MKDTIMG_DUMP}"| grep -v 'FDT' > ${MKDTIMG_OUT}/create.dump
75
76echo "Dumping fragments from mkdtboimg.py tool for image generated with 'create'"
77../src/mkdtboimg.py dump ${MKDTBOIMG_OUTCREATE}/create.img --output ${MKDTBOIMG_OUTCREATE}/create.dump -b "${MKDTBOIMG_CREATEDUMP}" --decompress
78
79echo "Dumping fragments from mkdtboimg.py tool for image generated with 'cfg_create'"
80../src/mkdtboimg.py dump ${MKDTBOIMG_OUTCFG}/create.img --output ${MKDTBOIMG_OUTCFG}/create.dump -b "${MKDTBOIMG_CFGDUMP}" --decompress
81
82echo "======================================================================================"
83echo "Testing differences between image created by 'create' for 'mkdtimg' and 'mkdtboimg.py'"
84echo "======================================================================================"
85for x in `ls -1 ${MKDTIMG_DUMP}.*`
86do
87    file=`basename $x`
88    if [ ! -e ${MKDTBOIMG_OUTCREATE}/$file ]
89    then
90        continue
91    fi
92    echo "diff $x vs ${MKDTBOIMG_OUTCREATE}/$file"
93    diff $x ${MKDTBOIMG_OUTCREATE}/$file
94done
95echo "=========================================================================================="
96echo "Testing differences between image created by 'cfg_create' for 'mkdtimg' and 'mkdtboimg.py'"
97echo "=========================================================================================="
98for x in `ls -1 ${MKDTIMG_DUMP}.*`
99do
100    file=`basename $x`
101    if [ ! -e ${MKDTBOIMG_OUTCFG}/$file ]
102    then
103        continue
104    fi
105    echo "diff $x vs ${MKDTBOIMG_OUTCFG}/$file"
106    diff $x ${MKDTBOIMG_OUTCFG}/$file
107done
108