1.. SPDX-License-Identifier: GPL-2.0+
2
3Binman bintool Documentation
4============================
5
6This file describes the bintools (binary tools) supported by binman. Bintools
7are binman's name for external executables that it runs to generate or process
8binaries. It is fairly easy to create new bintools. Just add a new file to the
9'btool' directory. You can use existing bintools as examples.
10
11
12
13Bintool: bootgen: Generate bootable fsbl image for zynq/zynqmp
14--------------------------------------------------------------
15
16This bintools supports running Xilinx "bootgen" in order
17to generate a bootable, authenticated image form an SPL.
18
19
20
21
22Bintool: bzip2: Compression/decompression using the bzip2 algorithm
23-------------------------------------------------------------------
24
25This bintool supports running `bzip2` to compress and decompress data, as
26used by binman.
27
28It is also possible to fetch the tool, which uses `apt` to install it.
29
30Documentation is available via::
31
32    man bzip2
33
34
35
36Bintool: cbfstool: Coreboot filesystem (CBFS) tool
37--------------------------------------------------
38
39This bintool supports creating new CBFS images and adding files to an
40existing image, i.e. the features needed by binman.
41
42It also supports fetching a binary cbfstool, since building it from source
43is fairly slow.
44
45Documentation about CBFS is at https://www.coreboot.org/CBFS
46
47
48
49Bintool: cst: Image generation for U-Boot
50-----------------------------------------
51
52This bintool supports running `cst` with some basic parameters as
53needed by binman.
54
55
56
57Bintool: fdt_add_pubkey: Add public key to control dtb (spl or u-boot proper)
58-----------------------------------------------------------------------------
59
60This bintool supports running `fdt_add_pubkey`.
61
62Normally mkimage adds signature information to the control dtb. However
63binman images are built independent from each other. Thus it is required
64to add the public key separately from mkimage.
65
66
67
68Bintool: fdtgrep: Handles the 'fdtgrep' tool
69--------------------------------------------
70
71This bintool supports running `fdtgrep` with parameters suitable for
72producing SPL devicetrees from the main one.
73
74
75
76Bintool: fiptool: Image generation for ARM Trusted Firmware
77-----------------------------------------------------------
78
79This bintool supports running `fiptool` with some basic parameters as
80neeed by binman.
81
82It also supports build fiptool from source.
83
84fiptool provides a way to package firmware in an ARM Trusted Firmware
85Firmware Image Package (ATF FIP) format. It is used with Trusted Firmware A,
86for example.
87
88See `TF-A FIP tool documentation`_ for more information.
89
90.. _`TF-A FIP tool documentation`:
91    https://trustedfirmware-a.readthedocs.io/en/latest/getting_started/tools-build.html?highlight=fiptool#building-and-using-the-fip-tool
92
93
94
95Bintool: futility: Handles the 'futility' tool
96----------------------------------------------
97
98futility (flash utility) is a tool for working with Chromium OS flash
99images. This Bintool implements just the features used by Binman, related to
100GBB creation and firmware signing.
101
102A binary version of the tool can be fetched.
103
104See `Chromium OS vboot documentation`_ for more information.
105
106.. _`Chromium OS vboot documentation`:
107    https://chromium.googlesource.com/chromiumos/platform/vboot/+/refs/heads/main/_vboot_reference/README
108
109
110
111Bintool: gzip: Compression/decompression using the gzip algorithm
112-----------------------------------------------------------------
113
114This bintool supports running `gzip` to compress and decompress data, as
115used by binman.
116
117It is also possible to fetch the tool, which uses `apt` to install it.
118
119Documentation is available via::
120
121    man gzip
122
123
124
125Bintool: ifwitool: Handles the 'ifwitool' tool
126----------------------------------------------
127
128This bintool supports running `ifwitool` with some basic parameters as
129neeed by binman. It includes creating a file from a FIT as well as adding,
130replacing, deleting and extracting subparts.
131
132The tool is built as part of U-Boot, but a binary version can be fetched if
133required.
134
135ifwitool provides a way to package firmware in an Intel Firmware Image
136(IFWI) file on some Intel SoCs, e.g. Apolo Lake.
137
138
139
140Bintool: lz4: Compression/decompression using the LZ4 algorithm
141---------------------------------------------------------------
142
143This bintool supports running `lz4` to compress and decompress data, as
144used by binman.
145
146It is also possible to fetch the tool, which uses `apt` to install it.
147
148Documentation is available via::
149
150    man lz4
151
152
153
154Bintool: lzma_alone: Compression/decompression using the LZMA algorithm
155-----------------------------------------------------------------------
156
157This bintool supports running `lzma_alone` to compress and decompress data,
158as used by binman.
159
160It is also possible to fetch the tool, which uses `apt` to install it.
161
162Documentation is available via::
163
164    man lzma_alone
165
166
167
168Bintool: lzop: Compression/decompression using the lzop algorithm
169-----------------------------------------------------------------
170
171This bintool supports running `lzop` to compress and decompress data, as
172used by binman.
173
174It is also possible to fetch the tool, which uses `apt` to install it.
175
176Documentation is available via::
177
178    man lzop
179
180
181
182Bintool: mkeficapsule: Handles the 'mkeficapsule' tool
183------------------------------------------------------
184
185This bintool is used for generating the EFI capsules. The
186capsule generation parameters can either be specified through
187commandline, or through a config file.
188
189
190
191Bintool: mkimage: Image generation for U-Boot
192---------------------------------------------
193
194This bintool supports running `mkimage` with some basic parameters as
195needed by binman.
196
197Normally binman uses the mkimage built by U-Boot. But when run outside the
198U-Boot build system, binman can use the version installed in your system.
199Support is provided for fetching this on Debian-like systems, using apt.
200
201
202
203Bintool: openssl: openssl tool
204------------------------------
205
206This bintool supports creating new openssl certificates.
207
208It also supports fetching a binary openssl
209
210Documentation about openssl is at https://www.openssl.org/
211
212
213
214Bintool: xz: Compression/decompression using the xz algorithm
215-------------------------------------------------------------
216
217This bintool supports running `xz` to compress and decompress data, as
218used by binman.
219
220It is also possible to fetch the tool, which uses `apt` to install it.
221
222Documentation is available via::
223
224    man xz
225
226
227
228Bintool: zstd: Compression/decompression using the zstd algorithm
229-----------------------------------------------------------------
230
231This bintool supports running `zstd` to compress and decompress data, as
232used by binman.
233
234It is also possible to fetch the tool, which uses `apt` to install it.
235
236Documentation is available via::
237
238    man zstd
239
240
241
242