1780c3b0fba4bb4dbd39091ebbd1ddc3eacb2deb9SzuWei Lin#!/bin/bash 24f00eda9fa05364edd719b05b88e4445682eeee5SzuWei Lin# Copyright (C) 2017 The Android Open Source Project 34f00eda9fa05364edd719b05b88e4445682eeee5SzuWei Lin# 44f00eda9fa05364edd719b05b88e4445682eeee5SzuWei Lin# Licensed under the Apache License, Version 2.0 (the "License"); 54f00eda9fa05364edd719b05b88e4445682eeee5SzuWei Lin# you may not use this file except in compliance with the License. 64f00eda9fa05364edd719b05b88e4445682eeee5SzuWei Lin# You may obtain a copy of the License at 74f00eda9fa05364edd719b05b88e4445682eeee5SzuWei Lin# 84f00eda9fa05364edd719b05b88e4445682eeee5SzuWei Lin# http://www.apache.org/licenses/LICENSE-2.0 94f00eda9fa05364edd719b05b88e4445682eeee5SzuWei Lin# 104f00eda9fa05364edd719b05b88e4445682eeee5SzuWei Lin# Unless required by applicable law or agreed to in writing, software 114f00eda9fa05364edd719b05b88e4445682eeee5SzuWei Lin# distributed under the License is distributed on an "AS IS" BASIS, 124f00eda9fa05364edd719b05b88e4445682eeee5SzuWei Lin# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 134f00eda9fa05364edd719b05b88e4445682eeee5SzuWei Lin# See the License for the specific language governing permissions and 144f00eda9fa05364edd719b05b88e4445682eeee5SzuWei Lin# limitations under the License. 15780c3b0fba4bb4dbd39091ebbd1ddc3eacb2deb9SzuWei Lin 16780c3b0fba4bb4dbd39091ebbd1ddc3eacb2deb9SzuWei LinSRCDIR="data" 17780c3b0fba4bb4dbd39091ebbd1ddc3eacb2deb9SzuWei LinDTS_LIST=" 18780c3b0fba4bb4dbd39091ebbd1ddc3eacb2deb9SzuWei Lin board1v1.dts 19780c3b0fba4bb4dbd39091ebbd1ddc3eacb2deb9SzuWei Lin board1v1_1.dts 20780c3b0fba4bb4dbd39091ebbd1ddc3eacb2deb9SzuWei Lin board2v1.dts 21780c3b0fba4bb4dbd39091ebbd1ddc3eacb2deb9SzuWei Lin" 2297a832f2a345b6bb090dd4adc9f6e8b50e11b3daYueyao ZhuDTB_LIST=( 2397a832f2a345b6bb090dd4adc9f6e8b50e11b3daYueyao Zhu "board1v1.dts.dtb" 2497a832f2a345b6bb090dd4adc9f6e8b50e11b3daYueyao Zhu "board1v1_1.dts.dtb" 2597a832f2a345b6bb090dd4adc9f6e8b50e11b3daYueyao Zhu "board2v1.dts.dtb" 2697a832f2a345b6bb090dd4adc9f6e8b50e11b3daYueyao Zhu "board1v1.dts.dtb" 2797a832f2a345b6bb090dd4adc9f6e8b50e11b3daYueyao Zhu) 28780c3b0fba4bb4dbd39091ebbd1ddc3eacb2deb9SzuWei LinCONFIG="${SRCDIR}/mkdtimg.cfg" 29780c3b0fba4bb4dbd39091ebbd1ddc3eacb2deb9SzuWei Lin 30780c3b0fba4bb4dbd39091ebbd1ddc3eacb2deb9SzuWei LinALIGN=4 31780c3b0fba4bb4dbd39091ebbd1ddc3eacb2deb9SzuWei Lin 32780c3b0fba4bb4dbd39091ebbd1ddc3eacb2deb9SzuWei LinOUTDIR="out" 3397a832f2a345b6bb090dd4adc9f6e8b50e11b3daYueyao ZhuOUTDTB_CFG="${OUTDIR}/dump_cfg.dtb" 34780c3b0fba4bb4dbd39091ebbd1ddc3eacb2deb9SzuWei LinOUTDTB="${OUTDIR}/dump.dtb" 35780c3b0fba4bb4dbd39091ebbd1ddc3eacb2deb9SzuWei Lin 36780c3b0fba4bb4dbd39091ebbd1ddc3eacb2deb9SzuWei Linmkdir -p "$OUTDIR" 37780c3b0fba4bb4dbd39091ebbd1ddc3eacb2deb9SzuWei Linfor dts in ${DTS_LIST}; do 38780c3b0fba4bb4dbd39091ebbd1ddc3eacb2deb9SzuWei Lin echo "Building $dts..." 39780c3b0fba4bb4dbd39091ebbd1ddc3eacb2deb9SzuWei Lin src_dts="${SRCDIR}/${dts}" 40780c3b0fba4bb4dbd39091ebbd1ddc3eacb2deb9SzuWei Lin out_dtb="${OUTDIR}/${dts}.dtb" 41780c3b0fba4bb4dbd39091ebbd1ddc3eacb2deb9SzuWei Lin dtc -O dtb -@ -qq -a "$ALIGN" -o "$out_dtb" "$src_dts" 42780c3b0fba4bb4dbd39091ebbd1ddc3eacb2deb9SzuWei Lindone 43780c3b0fba4bb4dbd39091ebbd1ddc3eacb2deb9SzuWei Lin 44780c3b0fba4bb4dbd39091ebbd1ddc3eacb2deb9SzuWei LinIMG="${OUTDIR}/cfg_create.img" 45780c3b0fba4bb4dbd39091ebbd1ddc3eacb2deb9SzuWei Linmkdtimg cfg_create "$IMG" "${CONFIG}" --dtb-dir="$OUTDIR" 4697a832f2a345b6bb090dd4adc9f6e8b50e11b3daYueyao Zhumkdtimg dump "$IMG" -b "$OUTDTB_CFG" | tee "${OUTDIR}/cfg_create.dump" 4797a832f2a345b6bb090dd4adc9f6e8b50e11b3daYueyao Zhufor index in ${!DTB_LIST[@]}; do 4897a832f2a345b6bb090dd4adc9f6e8b50e11b3daYueyao Zhu diff ${OUTDIR}/${DTB_LIST[$index]} ${OUTDTB_CFG}.$index 4997a832f2a345b6bb090dd4adc9f6e8b50e11b3daYueyao Zhudone 50780c3b0fba4bb4dbd39091ebbd1ddc3eacb2deb9SzuWei Lin 51780c3b0fba4bb4dbd39091ebbd1ddc3eacb2deb9SzuWei LinIMG="${OUTDIR}/create.img" 52780c3b0fba4bb4dbd39091ebbd1ddc3eacb2deb9SzuWei Linmkdtimg create "$IMG" \ 53780c3b0fba4bb4dbd39091ebbd1ddc3eacb2deb9SzuWei Lin --page_size=4096 --id=/:board_id --rev=/:board_rev --custom0=0xabc \ 54780c3b0fba4bb4dbd39091ebbd1ddc3eacb2deb9SzuWei Lin "${OUTDIR}/board1v1.dts.dtb" \ 55780c3b0fba4bb4dbd39091ebbd1ddc3eacb2deb9SzuWei Lin "${OUTDIR}/board1v1_1.dts.dtb" --id=/:another_board_id \ 5697a832f2a345b6bb090dd4adc9f6e8b50e11b3daYueyao Zhu "${OUTDIR}/board2v1.dts.dtb" --rev=0x201 \ 5797a832f2a345b6bb090dd4adc9f6e8b50e11b3daYueyao Zhu "${OUTDIR}/board1v1.dts.dtb" --custom0=0xdef 5897a832f2a345b6bb090dd4adc9f6e8b50e11b3daYueyao Zhumkdtimg dump "$IMG" -b "$OUTDTB" | tee "${OUTDIR}/create.dump" 5997a832f2a345b6bb090dd4adc9f6e8b50e11b3daYueyao Zhufor index in ${!DTB_LIST[@]}; do 6097a832f2a345b6bb090dd4adc9f6e8b50e11b3daYueyao Zhu diff ${OUTDIR}/${DTB_LIST[$index]} ${OUTDTB}.$index 6197a832f2a345b6bb090dd4adc9f6e8b50e11b3daYueyao Zhudone 62780c3b0fba4bb4dbd39091ebbd1ddc3eacb2deb9SzuWei Lin 63780c3b0fba4bb4dbd39091ebbd1ddc3eacb2deb9SzuWei Lindiff "${OUTDIR}/cfg_create.dump" "${OUTDIR}/create.dump" 64