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