• P
    ice: wait 5 s for EMP reset after firmware flash · b537752e
    Petr Oros 提交于
    We need to wait 5 s for EMP reset after firmware flash. Code was extracted
    from OOT driver (ice v1.8.3 downloaded from sourceforge). Without this
    wait, fw_activate let card in inconsistent state and recoverable only
    by second flash/activate. Flash was tested on these fw's:
    From -> To
     3.00 -> 3.10/3.20
     3.10 -> 3.00/3.20
     3.20 -> 3.00/3.10
    
    Reproducer:
    [root@host ~]# devlink dev flash pci/0000:ca:00.0 file E810_XXVDA4_FH_O_SEC_FW_1p6p1p9_NVM_3p10_PLDMoMCTP_0.11_8000AD7B.bin
    Preparing to flash
    [fw.mgmt] Erasing
    [fw.mgmt] Erasing done
    [fw.mgmt] Flashing 100%
    [fw.mgmt] Flashing done 100%
    [fw.undi] Erasing
    [fw.undi] Erasing done
    [fw.undi] Flashing 100%
    [fw.undi] Flashing done 100%
    [fw.netlist] Erasing
    [fw.netlist] Erasing done
    [fw.netlist] Flashing 100%
    [fw.netlist] Flashing done 100%
    Activate new firmware by devlink reload
    [root@host ~]# devlink dev reload pci/0000:ca:00.0 action fw_activate
    reload_actions_performed:
        fw_activate
    [root@host ~]# ip link show ens7f0
    71: ens7f0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq state DOWN mode DEFAULT group default qlen 1000
        link/ether b4:96:91:dc:72:e0 brd ff:ff:ff:ff:ff:ff
        altname enp202s0f0
    
    dmesg after flash:
    [   55.120788] ice: Copyright (c) 2018, Intel Corporation.
    [   55.274734] ice 0000:ca:00.0: Get PHY capabilities failed status = -5, continuing anyway
    [   55.569797] ice 0000:ca:00.0: The DDP package was successfully loaded: ICE OS Default Package version 1.3.28.0
    [   55.603629] ice 0000:ca:00.0: Get PHY capability failed.
    [   55.608951] ice 0000:ca:00.0: ice_init_nvm_phy_type failed: -5
    [   55.647348] ice 0000:ca:00.0: PTP init successful
    [   55.675536] ice 0000:ca:00.0: DCB is enabled in the hardware, max number of TCs supported on this port are 8
    [   55.685365] ice 0000:ca:00.0: FW LLDP is disabled, DCBx/LLDP in SW mode.
    [   55.692179] ice 0000:ca:00.0: Commit DCB Configuration to the hardware
    [   55.701382] ice 0000:ca:00.0: 126.024 Gb/s available PCIe bandwidth, limited by 16.0 GT/s PCIe x8 link at 0000:c9:02.0 (capable of 252.048 Gb/s with 16.0 GT/s PCIe x16 link)
    Reboot doesn’t help, only second flash/activate with OOT or patched
    driver put card back in consistent state.
    
    After patch:
    [root@host ~]# devlink dev flash pci/0000:ca:00.0 file E810_XXVDA4_FH_O_SEC_FW_1p6p1p9_NVM_3p10_PLDMoMCTP_0.11_8000AD7B.bin
    Preparing to flash
    [fw.mgmt] Erasing
    [fw.mgmt] Erasing done
    [fw.mgmt] Flashing 100%
    [fw.mgmt] Flashing done 100%
    [fw.undi] Erasing
    [fw.undi] Erasing done
    [fw.undi] Flashing 100%
    [fw.undi] Flashing done 100%
    [fw.netlist] Erasing
    [fw.netlist] Erasing done
    [fw.netlist] Flashing 100%
    [fw.netlist] Flashing done 100%
    Activate new firmware by devlink reload
    [root@host ~]# devlink dev reload pci/0000:ca:00.0 action fw_activate
    reload_actions_performed:
        fw_activate
    [root@host ~]# ip link show ens7f0
    19: ens7f0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DEFAULT group default qlen 1000
        link/ether b4:96:91:dc:72:e0 brd ff:ff:ff:ff:ff:ff
        altname enp202s0f0
    
    Fixes: 399e27db ("ice: support immediate firmware activation via devlink reload")
    Signed-off-by: NPetr Oros <poros@redhat.com>
    Tested-by: Gurucharan <gurucharanx.g@intel.com> (A Contingent worker at Intel)
    Signed-off-by: NTony Nguyen <anthony.l.nguyen@intel.com>
    b537752e
ice_main.c 238.5 KB