Loading...
.\" SPDX-License-Identifier: GPL-2.0-or-later
.\" Copyright (C) 2025 Kory Maincent <kory.maincent@bootlin.com>
.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)