xFSTK  0.0.0
Intel SoC Cross Platform Firmware & Software Tool Kit
Command Line Usage

xFSTK provides a basic commandline interface to enable scripting of provisioning activities. Within the install folder, the xfstk-dldr-solo binary can be used with the following commandline specification:

Basic Commandline Details

    <table>
            <tr>
                    <td><b>Command</b></td>
                    <td><b>Explanation</b></td>
            </tr>
            <tr>
                    <td><b>-h [ --help ]</b></td>
                    <td>Print usage message</td>
            </tr>
            <tr>
                    <td><b>--fwdnx arg (=BLANK. BIN)</b></td>
                    <td>File path for the FW DNX module</td>
            </tr>
            <tr>
                    <td><b>--fwimage arg (=BLANK.bin)</b></td>
                    <td>File path for the FW Image module</td>
            </tr>
            <tr>
                    <td><b>--osdnx arg (=BLANK.bin)</b></td>
                    <td>File path for the OS DNX module</td>
            </tr>
            <tr>
                    <td><b>--osimage arg (=BLANK.bin)</b></td>
                    <td>File path for the OS image</td>
            </tr>
            <tr>
                    <td><b>--miscdnx arg</b></td>
                    <td>File path for miscellaneous DNX module</td>
            </tr>
            <tr>
                    <td><b>--gpflags arg (=0x80000000)</b></td>
                    <td>Optional argument. 32 Bit Hex Value of the GPFlags.</td>
            </tr>
            <tr>
                    <td><b>-r [ --rev ]</b></td>
                    <td>version/revision</td>
            </tr>
            <tr>
                    <td><b>-v [ --verbose ]</b></td>
                    <td>
                            <p>Optional argument. Display debug information.</p>
                    </td>
            </tr>
            <tr>
                    <td><b>--softfuse arg (=BLANK.bin)</b></td>
                    <td>Optioanl CLVP Only argument.File path for the Softfuse Binary</td>
            </tr>
            <tr>
                    <td><b>--miscbin </b></td>
                    <td>MERR/MOFD Only argument. File path for miscellaneous binary file </td>
            </tr>
            <tr>
                    <td><b>--debuglevel arg (=0xffffffff)</b></td>
                    <td>Optional argument. 32 bit hex value to set the debuglevel, 0x1800 = LOG_STATUS | LOG_PROGRESS</td>
            </tr>
            <tr>
                    <td><b>--usbdelayms arg (<500)</b></td>
                    <td>Optional argument. 32 bit int value to set the usbdelayms, default 0ms</td>
            </tr>
            <tr>
                    <td><b>--usbtimeout arg (=5000)</b></td>
                    <td>set USB read/write timeout, default 5000ms</td>
            </tr>
            <tr>
                    <td><b>--emmcdump arg</b></td>
                    <td>CLVP/MOFD only - Optional argument. Indicate whether to perform an emmc dump. Set to false by default</td>
            </tr>
            <tr>
                    <td><b>-f [ --file ] </b></td>
                    <td>CLVP/MOFD eMMc - Output file name</td>
            </tr>
            <tr>
                    <td><b>-p [ --partition ] </b></td>
                    <td>CLVP/MOFD only eMMc - 0 - user partition; 1- boot partition-1; 2 - boot partition-2;3 - E-CSD</td>
            </tr>
            <tr>
                    <td><b>-b [ --blocksize ] </b></td>
                    <td>CLVP/MOFD only eMMc - size of blocks to read (applicable for partitions 0-2</td>
            </tr>
            <tr>
                    <td><b>-c [ --blockcount ] </b></td>
                    <td>CLVP/MOFD only eMMc -number of blocks to read (applicable for partitions 0-2</td>
            </tr>
            <tr>
                    <td><b>-o [ --offset ] </b></td>
                    <td>CLVP/MOFD only eMMc - offset from base of partition to begin reading (applicable for partitions 0-2</td>
            </tr>
            <tr>
                    <td><b>--register</b></td>
                    <td>CLVP/MOFD only eMMc - Register Token</td>
            </tr>
            <tr>
                    <td><b>-u [ --ufwdnx ] </b></td>
                    <td>CLVP/MOFD only eMMc - Unsigned DnX</td>
            </tr>
            <tr>
                    <td><b>-t [tokenoffset]</b></td>
                    <td>CLVP/MOFD only eMMc - Token offset for the unsigned DnX. (Default offset: 0x0108</td>
            </tr>
            <tr>
                    <td><b>-e [ --expirationduration ] </b></td>
                    <td>
                    <p>CLVP/MOFD only eMMc - Time duration of the token to be valid. </p>
                    <p>Supported format shall be a string which starts with a numeric number followed by</p>
                    <p>h/d/m/y (h for hour, d for day, m for month and y for year</td></p>
                    </td>
            </tr>
            <tr>
                    <td><b>--umipdump</b></td>
                    <td>CLVP/MOFD only - UMIP dumping. Default value 0 (disable). Set to 1 to enable</td>
            </td>
            <tr>
                    <td><b>--wipeifwi </b></td>
                    <td>Optional argument. Indicate whether to wipe out ifwi image on emmc. Set to false by default</td>
            </tr>
            <tr>
                    <td><b>--transfer arg (=USB)</b></td>
                    <td>Optional argument. Determines how the image will be transferred.</td>
            </tr>
            <tr>
                    <td><b>--idrq</b></td>
                    <td>
                            <p>Optional argument. Indicates whether IDRQ is used.</p>
                            <p>Tag present means idrq is used, else idrq is not used.</p>
                            <p>The IDRQ payload will be dumped into the --miscbin path</p>
                    </td>
            </tr>
            <tr>
                    <td><b>--csdb arg (=0)</b></td>
                    <td>
                    <p>MERR/MOFD only Optional argument. Exchange the chaabi specific data block specified in --miscbin parameter</p>
                    <p>Use the command code of the provision as the input argument.
                    </td>
            </tr>
            <tr>
                    <td><b>--initcsdb arg (=1)</b></td>
                    <td>
                    <p>MERR/MOFD Optional argument. Signals whether command is first csdb command in a series</p>
                    <p>Use value of 1 means first command, else use value of 0.
                    </td>
            </tr>
            <tr>
                    <td><b>--finalcsdb arg (=1)</b></td>
                    <td>
                    <p>MERR/MOFD Optional argument. Signals whether command is last csdb command in a series</p>
                    <p>Use value of 1 means last command, else use value of 0.
                    </td>
            </tr>
            <tr>
                    <td><b>spi</b></td>
                    <td>Print SPI usage message (BYT products only)</td>
            </tr>


    </table>

Basic Commandline Details

Download Firmware
xfstk-dldr-solo --fwdnx /intel/fwdnx.bin --fwimage /intel/fwimage.bin
Download Operating System
xfstk-dldr-solo --osdnx /intel/osdnx.bin --osimage /intel/osimage.bin --gpflags 80000001
Download Firmware and Operating System
xfstk-dldr-solo --fwdnx /intel/fwdnx.bin --fwimage /intel/fwimage.bin --osdnx /intel/osdnx.bin --osimage /intel/osimage.bin --gpflags 80000001
Wipe Out IFWI On Emmc
xfstk-dldr-solo --fwdnx /intel/fwdnx.bin --fwimage /intel/fwimage.bin --wipeifwi --gpflags 80000000
Dump IDRQ Payload(Merrifield B0)
xfstk-dldr-solo --idrq --miscbin /intel/miscbin.bin
Dump Key Hash
xfstk-dldr-solo hashverify --hashfile /intel/hashfile.bin -w
Perform Key Hash Verification
xfstk-dldr-solo hashverify --hashfile /intel/hashfile.bin
SPI Download Firmware (BYT products)
xfstk-dldr-solo spi --fwimage /intel/fwimage.bin
Perform CSDB Provision: Lifetime Refresh (Merrifield B0)
xfstk-dldr-solo --fwdnx /intel/fwdnx.bin --miscbin /intel/payload.bin --csdb 2

Perform CSDB Provision: First command in a sequence of commands

xfstk-dldr-solo --fwdnx /intel/fwdnx.bin --miscbin /intel/payload.bin --csdb *command code* --initcsdb 1 --finalcsdb 0

Perform CSDB Provision: Middle command in a sequence of commands

xfstk-dldr-solo --fwdnx /intel/fwdnx.bin --miscbin /intel/payload.bin --csdb *command code* --initcsdb 0 --finalcsdb 0

Perform CSDB Provision: Last command in a sequence of commands

xfstk-dldr-solo --fwdnx /intel/fwdnx.bin --miscbin /intel/payload.bin --csdb *command code* --initcsdb 0 --finalcsdb 1

Debug Level Bit Definitions