1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
|
.\" SPDX-License-Identifier: GPL-2.0-or-later
.\" Copyright (C) 2025 Kory Maincent <[email protected]>
.TH FWUMDATA 1 2025 U-Boot
.SH NAME
fwumdata \- read, display, and modify FWU metadata
.
.SH SYNOPSIS
.SY fwumdata
.OP \-c config
.OP \-l
.OP \-u
.OP \-a bankid
.OP \-p bankid
.RB [ \-s
.IR bankid " " state ]
.OP \-i imageid
.OP \-b bankid
.OP \-A
.OP \-C
.OP \-B num_banks
.OP \-I num_images
.YS
.SY fwumdata
.B \-h
.YS
.
.SH DESCRIPTION
.B fwumdata
reads, displays, and modifies FWU (Firmware Update) metadata from Linux
userspace.
.PP
The tool operates on FWU metadata stored on block or MTD devices, allowing
userspace manipulation of firmware update state including active bank
selection, image acceptance, and bank state management.
.
.SH OPTIONS
.TP
.BR \-c ", " \-\-config " \fIfile\fR"
Use custom configuration file. By default, the tool searches for
.I ./fwumdata.config
then
.IR /etc/fwumdata.config .
.
.TP
.BR \-l ", " \-\-list
Display detailed metadata information including all GUIDs, image entries,
and bank information. Without this option, only a summary is shown.
.
.TP
.BR \-u ", " \-\-update
Update metadata if CRC validation fails. Useful for recovering from corrupted
metadata.
.
.TP
.BR \-a ", " \-\-active " \fIbankid\fR"
Set the active bank index to
.IR bank .
.
.TP
.BR \-p ", " \-\-previous " \fIbankid\fR"
Set the previous active bank index to
.IR bank .
.
.TP
.BR \-s ", " \-\-state " \fIbankid state\fR"
Set bank index
.I bankid
to the specified
.IR state .
Valid states are:
.BR accepted ,
.BR valid ,
or
.BR invalid .
Supported only with version 2 metadata. When setting a bank to accepted state,
all firmware images in that bank are automatically marked as accepted.
.
.TP
.BR \-i ", " \-\-image " \fIimageid\fR"
Specify image number (used with
.B \-A
or
.BR \-C ).
.
.TP
.BR \-b ", " \-\-bank " \fIbankid\fR"
Specify bank number (used with
.B \-A
or
.BR \-C ).
.
.TP
.BR \-A ", " \-\-accept
Accept the image specified by
.B \-i
in the bank specified by
.BR \-b .
Sets the FWU_IMAGE_ACCEPTED flag for the image.
.
.TP
.BR \-C ", " \-\-clear
Clear the acceptance flag for the image specified by
.B \-i
in the bank specified by
.BR \-b .
According to the FWU specification, the bank state is automatically set to
invalid before clearing the acceptance flag.
.
.TP
.BR \-B ", " \-\-nbanks " \fInum_banks\fR"
Specify total number of banks (required for V1 metadata).
.
.TP
.BR \-I ", " \-\-nimages " \fInum_images\fR"
Specify total number of images (required for V1 metadata).
.
.TP
.BR \-h ", " \-\-help
Print usage information and exit.
.
.SH CONFIGURATION FILE
The configuration file specifies the location of FWU metadata on storage
devices. The format is:
.PP
.EX
.in +4
# Device Name Device Offset Metadata Size Erase Size
/dev/mtd0 0x0 0x78 0x1000
/dev/mtd1 0x0 0x78 0x1000
.in
.EE
.PP
Lines starting with
.B #
are comments.
.I Erase Size
is optional and only applies to MTD devices; if omitted, it defaults to the
metadata size.
.PP
Specifying two devices enables redundant metadata support.
.
.SH BUGS
Please report bugs to the
.UR https://\:source\:.denx\:.de/\:u-boot/\:u-boot/\:issues
U-Boot bug tracker
.UE .
.
.SH EXAMPLES
Display FWU metadata summary:
.PP
.EX
.in +4
$ \c
.B fwumdata
.in
.EE
.PP
Display detailed metadata with all GUIDs:
.PP
.EX
.in +4
$ \c
.B fwumdata \-l
.in
.EE
.PP
Set active bank to 1:
.PP
.EX
.in +4
$ \c
.B fwumdata \-a 1
.in
.EE
.PP
Set bank 1 to accepted state (automatically accepts all images in that bank):
.PP
.EX
.in +4
$ \c
.B fwumdata \-s 1 accepted
.in
.EE
.PP
Accept image 0 in bank 0:
.PP
.EX
.in +4
$ \c
.B fwumdata \-i 0 \-b 0 \-A \-l
.in
.EE
.PP
Clear acceptance for image 0 in bank 1:
.PP
.EX
.in +4
$ \c
.B fwumdata \-i 0 \-b 1 \-C \-l
.in
.EE
.PP
Clear acceptance for image 1 in bank 1 with metadata V1:
.PP
.EX
.in +4
$ \c
.B fwumdata \-B 2 \-I 2 \-i 1 \-b 1 \-C \-l
.in
.EE
.PP
Use custom configuration file:
.PP
.EX
.in +4
$ \c
.B fwumdata \-c /path/to/custom.config
.in
.EE
.
.SH SEE ALSO
.BR mkfwumdata (1)
|