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