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.
mlx_fwsfx_gen Usage
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