UPMF Generation Flow
The mlx_fwsfx_gen tool is used for OEMs that wish to create their own UPMFs that contain their own customized firmware images.
To install the mlx_fwsfx_gen tool, the installation script should be run with the "--oem" command line option.
This tool packs the firmware images provided in the input directory and the mlxfwmanager update tool into a single standalone self-extracting executable.
The UPMF generation is supported on Linux and Windows. Being an executable file, the UPMF should be prepared for Linux and Windows separately.
Usage:
# mlx_fwsfx_gen --source-dir <FW images directory> --out-dir <output directory> [--sfx-name <sfx file name>] [--phy-support --phy-img <phy-img>][--extra-args <args>]
where:
--source-dir |
Directory containing NVIDIA firmware images to be included in the package. This option may be used more than once to specify more than one source directory. |
--out-dir |
Specifies the output directory. |
--certificate |
SSL certificate. |
--phy-support |
Generate extractor with mlxphyburn support. |
--phy-img |
PHY firmware image. |
--sfx-name |
The self-extracting executable filename. The default name is mlxfwmanager-YYYYMMDD-<build number>, where build number is the previous maximum build number existing in the output directory incremented by one. |
--extra-args |
Extra args passed to mlxfwmanager default arguments. In the case of multiple args, the args are separated by commas. For example: [--extra-args --ret-lvim,--online] |
UPMF Package Generation Flow
UPMF Generation Example
The below example packs 3 firmware binaries (named fw-ConnectX-3-1.bin, fw-ConnectX-3-2.bin, fw-ConnectX-3-3.bin) located in the directory '/tmp/fw-ConnectX-3-dir/' into a Linux UPMF package named /tmp/mlxfwmanager-20171004-1.
mlx_fwsfx_gen --source-dir /tmp/fw-ConnectX-3Pro-dir/ --out-dir /tmp/
Package name: /tmp/mlxfwmanager-20171004
-1
Contents:
Source dirs: /tmp/fw-ConnectX-3Pro-dir
Adding file: /etc/mft/ca-bundle.crt
sfx_stub file: /usr/bin/mlx_sfx_stub
Creating intermediate MFA archive from binary files:
4779
-314A-X00_Ax~ATT1090111023.bin
Huawei_TD70VMTA_VA_CX3Pro_2P_40G_Ax~HUA0020010017.bin
Inventec_U50_CX3Pro_10GE_A1~INV0010110023.bin
MCX342A-XCQ_Ax~MT_1680116023.bin
MCX353A-FCC_Ax~MT_1100111019.bin
mfa tool: /usr/bin/mlx_mfa_gen
mfa cmd: /usr/bin/mlx_mfa_gen -p /tmp/OMs1D5PvHq/srcs.mfa -s /tmp/fw-ConnectX-3Pro-dir
Adding bins from /tmp/fw-ConnectX-3Pro-dir
Files copied: 5
Querying images ...
Files queried: 5
Compressing ... (this
may take a minute)
Archive: /tmp/OMs1D5PvHq/srcs.mfa
Total time: 0m3s
Adding file: /tmp/OMs1D5PvHq/srcs.mfa
Adding file: /usr/bin/mlxfwmanager
Creating zip /tmp/OMs1D5PvHq/zippackage.zip
adding: srcs.mfa (deflated 0
%)
adding: mlxfwmanager (deflated 52
%)
adding: ca-bundle.crt (deflated 45
%)
sfx auto-run command:
mlxfwmanager -u --log-on-update --ssl-certificate %ca-bundle.crt% %current-dir% %argv%
Log name: /tmp/mlxfwmanager-20171004
-1
.log
UPMF Generation with PHY Binary Example
The below example packs 3 firmware binaries (named fw-ConnectX-3-1.bin, fw-ConnectX-3-2.bin, fw-ConnectX-3-3.bin) located in the directory '/tmp/fw-ConnectX-3-dir/' and a PHY image '/tmp/Firmware_1.37.10_N32722.cld' into a Linux UPMF package named /tmp/mlxfwmanager-20141126-2.
mlx_fwsfx_gen --source-dir /tmp/fw-ConnectX-3
-dir --out-dir /tmp --phy-support --phy-img /tmp/
Firmware_1.37
.10_N32722.cld
Creating /tmp/C04TldeQHr/phy_mfa direcotry
Package name: /tmp/mlxfwmanager-20141126
-2
Contents:
Source dirs: /tmp/fw-ConnectX-3
-dir
Adding file: /etc/mft/ca-bundle.crt
sfx_stub file: /usr/bin/mlx_sfx_stub
Creating intermediate MFA archive from binary files:
fw-ConnectX-3
-1
.bin
fw-ConnectX-3
-2
.bin
fw-ConnectX-3
-3
.bin
mfa tool: /usr/bin/mlx_mfa_gen
mfa cmd: /usr/bin/mlx_mfa_gen -p /tmp/YaH5BAoQ8q/srcs.mfa -s /tmp/fw-ConnectX-3
-dir
Adding bins from /tmp/fw-ConnectX-3
-dir
Files copied: 3
Querying images ...
Files queried: 3
Compressing ... (this
may take a minute)
Archive: /tmp/YaH5BAoQ8q/srcs.mfa
Total time: 0m1s
Adding file: /tmp/YaH5BAoQ8q/srcs.mfa
Adding file: /usr/bin/mlxfwmanager
Copying /tmp/Firmware_1.37
.10_N32722.cld to /tmp/C04TldeQHr/phy_mfa
Adding file: /tmp/Firmware_1.37
.10_N32722.cld
Adding file: /usr/bin/mlxphyburn
Creating zip /tmp/YaH5BAoQ8q/zippackage.zip
adding: srcs.mfa (deflated 0
%)
adding: ca-bundle.crt (deflated 45
%)
adding: phy_mfa/ (stored 0
%)
adding: phy_mfa/Firmware_1.37
.10_N32722.cld (deflated 44
%)
adding: mlxfwmanager (deflated 57
%)
adding: mlxphyburn (deflated 60
%)
sfx auto-run command:
mlxfwmanager -u --log-on-update --ssl-certificate %ca-bundle.crt% %current-dir% %argv%
mlxphyburn auto-run command:
mlxphyburn %device% -i ./phy_mfa/Firmware_1.37
.10_N32722.cld b
Log name: /tmp/mlxfwmanager-20141126
-2
.log