blob: a726149ba2ce09da3102939f00f1f6186f83c7b8 [file] [log] [blame]
AKASHI Takahiro7889a992022-02-09 19:10:36 +09001.\" SPDX-License-Identifier: GPL-2.0+
2.\" Copyright (c) 2021, Linaro Limited
3.\" written by AKASHI Takahiro <takahiro.akashi@linaro.org>
4.TH MAEFICAPSULE 1 "May 2021"
5
6.SH NAME
7mkeficapsule \- Generate EFI capsule file for U-Boot
8
9.SH SYNOPSIS
10.B mkeficapsule
Sughosh Ganub39405d2022-10-21 18:16:06 +053011.RI [ options ] " " [ image-blob ] " " capsule-file
AKASHI Takahiro7889a992022-02-09 19:10:36 +090012
Caleb Connollyd9d93342024-08-30 13:34:39 +010013.B mkeficapsule
14.RI guidgen " " [ GUID ] " " DTB " " IMAGE_NAME...
15
AKASHI Takahiro7889a992022-02-09 19:10:36 +090016.SH "DESCRIPTION"
Heinrich Schuchardt438cd702023-01-22 11:27:10 +010017The
AKASHI Takahiro7889a992022-02-09 19:10:36 +090018.B mkeficapsule
Heinrich Schuchardt438cd702023-01-22 11:27:10 +010019command is used to create an EFI capsule file to be used by U-Boot for firmware
20updates.
21A capsule file may contain various types of firmware blobs which are to be
22applied to the system.
23If a capsule file is placed in the /EFI/CapusuleUpdate directory of the EFI
24system partition, U-Boot will try to execute the update at the next reboot.
AKASHI Takahiro7889a992022-02-09 19:10:36 +090025
26Optionally, a capsule file can be signed with a given private key.
27In this case, the update will be authenticated by verifying the signature
28before applying.
29
Heinrich Schuchardt438cd702023-01-22 11:27:10 +010030Additionally, an empty capsule file can be generated to indicate the acceptance
31or rejection of firmware images by a governing component like an operating
32system.
33Empty capsules do not require an image-blob input file.
Sughosh Ganub39405d2022-10-21 18:16:06 +053034
AKASHI Takahiro7889a992022-02-09 19:10:36 +090035.B mkeficapsule
Sughosh Ganub39405d2022-10-21 18:16:06 +053036takes any type of image files when generating non empty capsules, including:
AKASHI Takahiro7889a992022-02-09 19:10:36 +090037.TP
38.I raw image
39format is a single binary blob of any type of firmware.
40
41.TP
42.I FIT (Flattened Image Tree) image
43format is the same as used in the new uImage format and allows for
44multiple binary blobs in a single capsule file.
45This type of image file can be generated by
46.BR mkimage .
47
Caleb Connollyd9d93342024-08-30 13:34:39 +010048mkeficapsule can also be used to simulate the dynamic GUID generation used to
49identify firmware images in capsule updates by providing the namespace guid, dtb
50for the board, and a list of firmware images.
51
AKASHI Takahiro7889a992022-02-09 19:10:36 +090052.SH "OPTIONS"
Sughosh Ganub39405d2022-10-21 18:16:06 +053053
AKASHI Takahiro7889a992022-02-09 19:10:36 +090054.TP
AKASHI Takahiroba212432022-02-09 19:10:39 +090055.BI "-g\fR,\fB --guid " guid-string
56Specify guid for image blob type. The format is:
57 xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
58
59The first three elements are in little endian, while the rest
Sughosh Ganub39405d2022-10-21 18:16:06 +053060is in big endian. The option must be specified for all non empty and
61image acceptance capsules
AKASHI Takahiro7889a992022-02-09 19:10:36 +090062
63.TP
64.BI "-i\fR,\fB --index " index
65Specify an image index
66
67.TP
68.BI "-I\fR,\fB --instance " instance
69Specify a hardware instance
70
Sughosh Ganub39405d2022-10-21 18:16:06 +053071.PP
Masahisa Kojimade87ca02023-06-07 14:41:56 +090072FMP Payload Header is inserted right before the payload if
73.BR --fw-version
74is specified
75
76
77.TP
78.BI "-v\fR,\fB --fw-version " firmware-version
79Specify a firmware version, 0 if omitted
80
81.PP
Sughosh Ganub39405d2022-10-21 18:16:06 +053082For generation of firmware accept empty capsule
83.BR --guid
84is mandatory
85.TP
86.BI "-A\fR,\fB --fw-accept "
87Generate a firmware acceptance empty capsule
88
89.TP
90.BI "-R\fR,\fB --fw-revert "
91Generate a firmware revert empty capsule
92
AKASHI Takahiro7889a992022-02-09 19:10:36 +090093.TP
Sughosh Ganuc0676382022-10-21 18:16:07 +053094.BI "-o\fR,\fB --capoemflag "
95Capsule OEM flag, value between 0x0000 to 0xffff
96
97.TP
Simon Glassb0ef8612024-07-31 08:49:00 -060098.BR -V ", " --version
99Print version information and exit.
100
101.TP
AKASHI Takahiro7889a992022-02-09 19:10:36 +0900102.BR -h ", " --help
103Print a help message
104
105.PP
106With signing,
107.BR --private-key ", " --certificate " and " --monotonic-count
108are all mandatory.
109
110.TP
111.BI "-p\fR,\fB --private-key " private-key-file
112Specify signer's private key file in PEM
113
114.TP
115.BI "-c\fR,\fB --certificate " certificate-file
116Specify signer's certificate file in EFI certificate list format
117
118.TP
119.BI "-m\fR,\fB --monotonic-count " count
120Specify a monotonic count which is set to be monotonically incremented
121at every firmware update.
122
123.TP
124.B "-d\fR,\fB --dump_sig"
125Dump signature data into *.p7 file
126
Caleb Connollyd9d93342024-08-30 13:34:39 +0100127.SH "GUIDGEN OPTIONS"
128
129.TP
130.B "[GUID]"
131The namespace/salt GUID, by default this is EFI_CAPSULE_NAMESPACE_GUID.
132The format is:
133 xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
134
135.TP
136.B DTB
137The device tree blob file for the board.
138
139.TP
140.B IMAGE_NAME...
141The names of the firmware images to generate GUIDs for.
142
AKASHI Takahiro7889a992022-02-09 19:10:36 +0900143.PP
144.SH FILES
145.TP
146.I /EFI/UpdateCapsule
147The directory in which all capsule files be placed
148
149.SH SEE ALSO
150.BR mkimage (1)
151
152.SH AUTHORS
153Written by AKASHI Takahiro <takahiro.akashi@linaro.org>
154
155.SH HOMEPAGE
Tom Riniebcad4c2024-08-26 10:49:55 -0600156http://www.u-boot.org/