| #! /bin/bash |
| # Copyright (C) 2017 The Android Open Source Project |
| # |
| # Licensed under the Apache License, Version 2.0 (the "License"); |
| # you may not use this file except in compliance with the License. |
| # You may obtain a copy of the License at |
| # |
| # http://www.apache.org/licenses/LICENSE-2.0 |
| # |
| # Unless required by applicable law or agreed to in writing, software |
| # distributed under the License is distributed on an "AS IS" BASIS, |
| # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| # See the License for the specific language governing permissions and |
| # limitations under the License. |
| |
| SRCDIR="data" |
| DTS_LIST=" |
| board1v1.dts |
| board1v1_1.dts |
| board2v1.dts |
| " |
| DTB_LIST=( |
| "board1v1.dts.dtb" |
| "board1v1_1.dts.dtb" |
| "board2v1.dts.dtb" |
| "board1v1.dts.dtb" |
| ) |
| CONFIG="${SRCDIR}/mkdtimg.cfg" |
| PYCONFIG="${SRCDIR}/mkdtboimg.cfg" |
| |
| ALIGN=4 |
| |
| OUTDIR="out" |
| MKDTIMG_OUT="${OUTDIR}/mkdtimg_out" |
| MKDTIMG_DUMP="${MKDTIMG_OUT}"/dump.dtb |
| |
| MKDTBOIMG_OUT="${OUTDIR}/mkdtboimg_out" |
| MKDTBOIMG_OUTCREATE="${MKDTBOIMG_OUT}/create" |
| MKDTBOIMG_OUTCFG="${MKDTBOIMG_OUT}/cfg_create" |
| MKDTBOIMG_CREATEDUMP="${MKDTBOIMG_OUTCREATE}"/dump.dtb |
| MKDTBOIMG_CFGDUMP="${MKDTBOIMG_OUTCFG}"/dump.dtb |
| |
| mkdir -p "$MKDTIMG_OUT" |
| mkdir -p "$MKDTBOIMG_OUTCREATE" |
| mkdir -p "$MKDTBOIMG_OUTCFG" |
| |
| for dts in ${DTS_LIST}; do |
| echo "Building $dts..." |
| src_dts="${SRCDIR}/${dts}" |
| out_dtb="${OUTDIR}/${dts}.dtb" |
| dtc -O dtb -@ -qq -a "$ALIGN" -o "$out_dtb" "$src_dts" |
| done |
| |
| echo "Creating dtbo image with mkdtbimg" |
| mkdtimg create ${MKDTIMG_OUT}/create.img --page_size=4096 --id=0x100 --version=1\ |
| --rev=0x100 --custom0=0xabc "${OUTDIR}/board1v1.dts.dtb" "${OUTDIR}/board1v1_1.dts.dtb" \ |
| --id=0xddccbbaa --rev=0x01000100 "${OUTDIR}/board2v1.dts.dtb" --id=0x200 \ |
| --rev=0x201 "${OUTDIR}/board1v1.dts.dtb" --custom0=0xdef \ |
| "${OUTDIR}/board1v1.dts.dtb" --custom0=0xdef > /dev/null |
| |
| echo "Creating dtbo image with mkdtboimg" |
| ../src/mkdtboimg.py create ${MKDTBOIMG_OUTCREATE}/create.img --page_size=4096 \ |
| --id=0x100 --rev=0x100 --flags=0xabc0 --version=1 "${OUTDIR}/board1v1.dts.dtb" \ |
| "${OUTDIR}/board1v1_1.dts.dtb" --id=0xddccbbaa --rev=0x01000100 \ |
| "${OUTDIR}/board2v1.dts.dtb" --id=0x200 --rev=0x201 \ |
| "${OUTDIR}/board1v1.dts.dtb" --flags=0xd01 \ |
| "${OUTDIR}/board1v1.dts.dtb" --flags=0xd02 > /dev/null |
| |
| echo "Creating dtbo image with ${PYCONFIG} config file" |
| ../src/mkdtboimg.py cfg_create ${MKDTBOIMG_OUTCFG}/create.img ${PYCONFIG} --dtb-dir "${OUTDIR}" |
| |
| echo "Dumping fragments from mkdtimg tool image" |
| mkdtimg dump ${MKDTIMG_OUT}/create.img -b "${MKDTIMG_DUMP}"| grep -v 'FDT' > ${MKDTIMG_OUT}/create.dump |
| |
| echo "Dumping fragments from mkdtboimg.py tool for image generated with 'create'" |
| ../src/mkdtboimg.py dump ${MKDTBOIMG_OUTCREATE}/create.img --output ${MKDTBOIMG_OUTCREATE}/create.dump -b "${MKDTBOIMG_CREATEDUMP}" --decompress |
| |
| echo "Dumping fragments from mkdtboimg.py tool for image generated with 'cfg_create'" |
| ../src/mkdtboimg.py dump ${MKDTBOIMG_OUTCFG}/create.img --output ${MKDTBOIMG_OUTCFG}/create.dump -b "${MKDTBOIMG_CFGDUMP}" --decompress |
| |
| echo "======================================================================================" |
| echo "Testing differences between image created by 'create' for 'mkdtimg' and 'mkdtboimg.py'" |
| echo "======================================================================================" |
| for x in `ls -1 ${MKDTIMG_DUMP}.*` |
| do |
| file=`basename $x` |
| if [ ! -e ${MKDTBOIMG_OUTCREATE}/$file ] |
| then |
| continue |
| fi |
| echo "diff $x vs ${MKDTBOIMG_OUTCREATE}/$file" |
| diff $x ${MKDTBOIMG_OUTCREATE}/$file |
| done |
| echo "==========================================================================================" |
| echo "Testing differences between image created by 'cfg_create' for 'mkdtimg' and 'mkdtboimg.py'" |
| echo "==========================================================================================" |
| for x in `ls -1 ${MKDTIMG_DUMP}.*` |
| do |
| file=`basename $x` |
| if [ ! -e ${MKDTBOIMG_OUTCFG}/$file ] |
| then |
| continue |
| fi |
| echo "diff $x vs ${MKDTBOIMG_OUTCFG}/$file" |
| diff $x ${MKDTBOIMG_OUTCFG}/$file |
| done |