Usage:
Extract the zip file to SoftwarePack folder.
Ex: if SoftwarePack directory is at C:\SP1301, extract mdu_w.x.y.z to C:\SP1301

Command instruction:

restore_cfg [-f <filename>][-g <adapter id>][-i <adapter id>][-h]
Options:
    -g, --get BiosVer and HbaInfo for <adapter id>.
    -f, --filename <filename>(optional) file to update configuration from.
    -i, --id <adapter id>
    -h, --help
Examples:
    restore_cfg
    Update HBA configuration of current adapter from 9123.txt.
    restore_cfg -g 0
    Get Bios Version and HBA Information Page for adapter 0.

flash -a <update|backup|erase> -m <folder name> [-h]
Options:
   -a, --action <update|backup|erase>
       Update or backup the flash image.  Erase flash configuration page.
   -m, --model <folder name>
       Any folder you would like magni to flash.
       From current folder Eg. firmware\b1\passide or firmware\b1\passahci.
       Or full folder path Eg. C:\SP1301\firmware\B1\passide.
   -e, --existence
       Check the existence of SPI flash. 
   -h, --help
Examples:
   flash -a update -m passide
       	Update HBA configuration of current adapter from 9123.txt.


phytest -i <adapter id> [-p <phy id>] [-r <phy rate>][-n <jitp|ltdp|htdp|lfscp|ssop|lftp|mftp|hftp|lbp>][-h]
Options:
    -i, --id <adapter id>
    -p, --port <phy id>
    -r, --rate <phy rate>(can be '0', '1', '2').
    -n, --pattern <pattern>
             pattern descriptions as below 
             ltdp means Non-compliant Low Transition Density Pattern.
             htdp means Non-compliant High Transition Density Pattern.
             lfscp means Non-compliant Low Frequency Spectral Content Pattern.
             ssop means Non-compliant Switching Output Pattern.
             lftp means Low-Frequency Test Pattern.
             mftp means Mid-Frequency Test Pattern.
             hftp means High-Frequency Test Pattern.
             lbp means Lone-Bit Pattern.
             jitp means Jitter and PRBS Pattern.
             prbs means PRBS7 Pattern.
             default is prbs
    -a,--all Test all adapters, all ports and all rates.
    -l, --loopback Loopback test.
    -m, --max Ignore negotiated link speed check.
    -t, --only valid with -l parameter, time <test duration> default is infinite loop, unit: second
    -h, --help
Examples:
      phytest -a
        	Test all phy(s) of all adapter(s) and produce all rate Eye Diagram.
      phytest -i 0
        	Test adapter 0 all phy(s) and produce all rate Eye Diagram.
      phytest -i 0 -p 0 -r 0
        	Test adapter 0 phy 0 and produce 1.5Gb/s Eye Diagram.
      phytest -i 0 -p 0 -r 1 -l -t 10
        	Test adapter 0 phy 0 and produce 3Gb/s Eye Diagram for 10 seconds.
      phytest -i 0 -p 0 -r 0,2
        	Test adapter 0 phy 0 and produce 1.5Gb/s and 6Gb/s Eye Diagram.
      phytest -i 0 -p 1
        	Test adapter 0 phy 1 and produce 1.5Gb/s, 3Gb/s and 6Gb/s Eye Diagram.
      phytest -i 0 -r 2
        	Test adapter 0 all phy to produce 6Gb/s Eye Diagram.

        	
config -i <adapter_id>[-o <object>][-a <get|set>][-r<phy rate>][-v<value>][-e<emph>][-p<port_id>][-h]
Options:
    -i, --id <adapter_id>
    -o, --object 
          <phy>include rate,AMP,AMP_ADJ configure.
    -a, --action<get|set>get or set configure. Default:get 
    -r, --phyrate <phy rate>For PHY configure only. (DEFAULT:1, can be '0', '1', '2').    
    -v, --value<value>For set action only. Value to set.
             if object is phy, the value should be 6 digits 0 or 1 value.
             1st digit is TX AMP Adjust Enalbe(Default:1, can be '0', '1')
             2nd~6th digit are AMP[4:0], refer to AMP table of datasheet
    -e, --emph<value>For set action only. Value to set.
             if object is phy, the value should be 4 digits 0 or 1 value.
             It will set TX EMPH AMP value.
             This is an optional parameter.
    -p, --port id <port_id>
    -h, --help
Examples:
    config -i 0 -o phy -a get -p 1
    get port 1 phy tuning parameters of current adapter. 



bist -i <adapter id> -p <port id> -r <phy rate> [-h]
Options:
    -i, --id <adapter id>
    -p, --port <port id>
    -r, --rate <phy rate>
        (can be '0', '1', '2', 'a'. 'a' for all rates).
    -h, --help
Examples:
      bist -i 0 -p 1 -r a
        	Support all SATA speeds on adapter 0 port 1.
      bist -i 0 -p 1 -r 2
        	Support SATA Gen 3 speed (6G) on adapter 0 port 1.
      bist -i 0 -p 1 -r 1,2
        	Support SATA Gen 2 (3G) and Gen 3 (6G) on adapter 0 port 1.

pm -i <adapter id> -p <port id> -s <pm request> [-h]
Options:
    -i, --id <adapter id>
    -p, --port <port id>
    -s, --power saving <pm request>
        (can be '0' for disable, '1' for PMREQ_P, '2' for PMREQ_S)
    -h, --help
Examples:
      pm -i 0 -p 1 -s 0
        	Disable power saving of adapter 0 port 1.
      pm -i 0 -p 1 -s 1
        	Enable power saving and send out PMREQ_P from adapter 0 port 1 .
