If found, this message is stating that the emlxs driver has determined that the firmware kernel component needs to be updated. To perform this update, execute luxadm -e forcelip on Solaris 10 (or a fcadm force-lip on Solaris 11) against each emlxs instance that reports the message. As stated in the documentation:
This procedure, while disruptive, will ensure that both driver and firmware are current. The force lip will temporarily disrupt I/O on the port. The disruption and firmware upgrade takes approximately 30-60 seconds to complete as seen from the example messages below. The example shows an update is needed for emlxs instance 0 (emlxs0) and emlxs instance 1 (emlxs1), which happens to correlate to the c1 and c2 controllers in this case.
# fcinfo hba-port HBA Port WWN: 10000000c9e43860 OS Device Name: /dev/cfg/c1 Manufacturer: Emulex Model: LPe12000-S Firmware Version: 1.00a12 (U3D1.00A12) FCode/BIOS Version: Boot:5.03a0 Fcode:3.01a1 Serial Number: 0788BT0-1199500725 Driver Name: emlxs Driver Version: 2.60k (2011.03.24.16.45) Type: N-port State: online Supported Speeds: 2Gb 4Gb 8Gb Current Speed: 8Gb Node WWN: 20000000c9e43860 HBA Port WWN: 10000000c9e435fe OS Device Name: /dev/cfg/c2 Manufacturer: Emulex Model: LPe12000-S Firmware Version: 1.00a12 (U3D1.00A12) FCode/BIOS Version: Boot:5.03a0 Fcode:3.01a1 Serial Number: 0788BT0-1199500724 Driver Name: emlxs Driver Version: 2.60k (2011.03.24.16.45) Type: N-port State: online Supported Speeds: 2Gb 4Gb 8Gb Current Speed: 8Gb Node WWN: 20000000c9e435fe
In order not to interrupt the service, and because MPxIO (native multipathing I/O) is in use, each emlxs instance will be update one after each other.
# luxadm -e forcelip /dev/cfg/c1
That’s it. Lastly, the documentation says:
At this point, the firmware upgrade is complete as indicated by the “Status good” message above. A reboot is not strictly necessary to begin using the new firmware. But the fcinfo hba-port command may still report the old firmware version. This is only a reporting defect that does not affect firmware operation and will be corrected in a later version of fcinfo. To correct the version shown by fcinfo, a second reboot is necessary. On systems capable of DR, you can perform dynamic reconfiguration on the HBA (via cfgadm unconfigure/configure) instead of rebooting.
For my part, I tried to unconfigure/configure each emlxs instance using cfgadm without a reboot, but this didn’t work as expected on Solaris 10. The fcinfo utility still report the old firmware version, seems until the next reboot.