| .\" 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) |