blob: edb373ab59b88fe37252d02d0db444db4d4d954e [file] [log] [blame]
Simon Glass41424862022-01-09 20:14:12 -07001.. 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: cbfstool: Coreboot filesystem (CBFS) tool
14--------------------------------------------------
15
16This bintool supports creating new CBFS images and adding files to an
17existing image, i.e. the features needed by binman.
18
19It also supports fetching a binary cbfstool, since building it from source
20is fairly slow.
21
22Documentation about CBFS is at https://www.coreboot.org/CBFS
23
24
25
26Bintool: fiptool: Image generation for ARM Trusted Firmware
27-----------------------------------------------------------
28
29This bintool supports running `fiptool` with some basic parameters as
30neeed by binman.
31
32It also supports build fiptool from source.
33
34fiptool provides a way to package firmware in an ARM Trusted Firmware
35Firmware Image Package (ATF FIP) format. It is used with Trusted Firmware A,
36for example.
37
38See `TF-A FIP tool documentation`_ for more information.
39
40.. _`TF-A FIP tool documentation`:
41 https://trustedfirmware-a.readthedocs.io/en/latest/getting_started/tools-build.html?highlight=fiptool#building-and-using-the-fip-tool
42
43
44
45Bintool: futility: Handles the 'futility' tool
46----------------------------------------------
47
48futility (flash utility) is a tool for working with Chromium OS flash
49images. This Bintool implements just the features used by Binman, related to
50GBB creation and firmware signing.
51
52A binary version of the tool can be fetched.
53
54See `Chromium OS vboot documentation`_ for more information.
55
56.. _`Chromium OS vboot documentation`:
57 https://chromium.googlesource.com/chromiumos/platform/vboot/+/refs/heads/main/_vboot_reference/README
58
59
60
61Bintool: ifwitool: Handles the 'ifwitool' tool
62----------------------------------------------
63
64This bintool supports running `ifwitool` with some basic parameters as
65neeed by binman. It includes creating a file from a FIT as well as adding,
66replacing, deleting and extracting subparts.
67
68The tool is built as part of U-Boot, but a binary version can be fetched if
69required.
70
71ifwitool provides a way to package firmware in an Intel Firmware Image
72(IFWI) file on some Intel SoCs, e.g. Apolo Lake.
73
74
75
76Bintool: lz4: Compression/decompression using the LZ4 algorithm
77---------------------------------------------------------------
78
79This bintool supports running `lz4` to compress and decompress data, as
80used by binman.
81
82It is also possible to fetch the tool, which uses `apt` to install it.
83
84Documentation is available via::
85
86 man lz4
87
88
89
90Bintool: lzma_alone: Compression/decompression using the LZMA algorithm
91-----------------------------------------------------------------------
92
93This bintool supports running `lzma_alone` to compress and decompress data,
94as used by binman.
95
96It is also possible to fetch the tool, which uses `apt` to install it.
97
98Documentation is available via::
99
100 man lzma_alone
101
102
103
104Bintool: mkimage: Image generation for U-Boot
105---------------------------------------------
106
107This bintool supports running `mkimage` with some basic parameters as
108neeed by binman.
109
110Normally binman uses the mkimage built by U-Boot. But when run outside the
111U-Boot build system, binman can use the version installed in your system.
112Support is provided for fetching this on Debian-like systems, using apt.
113
114
115