1 #!/bin/sh
2 #
3 # Script to generate FIT image source for System Firmware (SYSFW) and
4 # associated configuration data based on a given SYSFW binary image plus
5 # multiple domain-specific fragments in binary format all specified via
6 # command line.
7 #
8 # Copyright (C) 2018 Texas Instruments Incorporated - http://www.ti.com/
9 # Andreas Dannenberg <dannenberg@ti.com>
10 #
11 # Redistribution and use in source and binary forms, with or without
12 # modification, are permitted provided that the following conditions
13 # are met:
14 #
15 # Redistributions of source code must retain the above copyright
16 # notice, this list of conditions and the following disclaimer.
17 #
18 # Redistributions in binary form must reproduce the above copyright
19 # notice, this list of conditions and the following disclaimer in the
20 # documentation and/or other materials provided with the
21 # distribution.
22 #
23 # Neither the name of Texas Instruments Incorporated nor the names of
24 # its contributors may be used to endorse or promote products derived
25 # from this software without specific prior written permission.
26 #
27 # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
28 # "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
29 # LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
30 # A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
31 # OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
32 # SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
33 # LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
34 # DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
35 # THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
36 # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
37 # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
38 #
39 # usage: $0 <bin_name> [<bin_name> [<bin_name] ...]
40 #
42 cat << __HEADER_EOF
43 /dts-v1/;
45 / {
46 description = "SYSFW and Config Fragments";
47 #address-cells = <1>;
49 images {
50 __HEADER_EOF
52 for bin_name in $*
53 do
54 cat << __CFG_IMAGE_EOF
55 $(basename $bin_name) {
56 description = "$(basename $bin_name .bin)";
57 data = /incbin/("$bin_name");
58 type = "firmware";
59 arch = "arm";
60 compression = "none";
61 };
62 __CFG_IMAGE_EOF
63 done
65 cat << __ITS_EOF
66 };
67 };
68 __ITS_EOF