My experiences updating to P20 on three M1015 controllers simultaneously...
#####################################################################
#####################################################################
For starters, you should learn how to enumerate all the controllers on your server.
Two applications will help you accomplish this: 'sas2flash' and 'sas2ircu'.
In this example, we are upgrading the firmware on three IBM M1015 PCIE SAS2 HBAs from firmware v6 to v20. All three controllers were installed simultaneously in the machine. The M1015 is almost identical to the LSI 9220-8i and LSI 9211-8i. These three M1015 controllers were already changed to IT mode using this How-To:
http://www.servethehome.com/ibm-serveraid-m1015-part-4/
Check the server's FreeNAS home page --> Upper Right Corner --> Blinking Red Light?
Before the firmware upgrade, the light was blinking red. Clicking on it indicated a firmware upgrade was needed on the SAS controller.
No hard drives were installed in the server during this process.
The Operating System used was FreeNAS 9.3.1, build FreeNAS-9.3-STABLE-201509282017.
The applications 'sas2flash' and 'sas2ircu' are already installed on this OS by default.
This was performed on a SuperMicro X8DTE motherboard without UEFI.
#####################################################################
Enumerate all the SAS controllers using 'sas2flash'
sas2flash -listall
Output:
Code:
LSI Corporation SAS2 Flash Utility
Version 16.00.00.00 (2013.03.01)
Copyright (c) 2008-2013 LSI Corporation. All rights reserved
Adapter Selected is a LSI SAS: SAS2008(B2)
Num Ctlr FW Ver NVDATA x86-BIOS PCI Addr
----------------------------------------------------------------------------
0 SAS2008(B2) 16.00.00.00 10.00.00.06 No Image 00:09:00:00
1 SAS2008(B2) 16.00.00.00 10.00.00.06 No Image 00:06:00:00
2 SAS2008(B2) 16.00.00.00 10.00.00.06 No Image 00:05:00:00
Finished Processing Commands Successfully.
Exiting SAS2Flash.
#####################################################################
Enumerate the SAS controllers using 'sas2ircu'
sas2ircu list
Output:
Code:
LSI Corporation SAS2 IR Configuration Utility.
Version 20.00.00.00 (2014.09.18)
Copyright (c) 2008-2014 LSI Corporation. All rights reserved.
Adapter Vendor Device SubSys SubSys
Index Type ID ID Pci Address Ven ID Dev ID
----- ------------ ------ ------ ----------------- ------ ------
0 SAS2008 1000h 72h 00h:09h:00h:00h 1000h 3020h
Adapter Vendor Device SubSys SubSys
Index Type ID ID Pci Address Ven ID Dev ID
----- ------------ ------ ------ ----------------- ------ ------
1 SAS2008 1000h 72h 00h:06h:00h:00h 1000h 3020h
Adapter Vendor Device SubSys SubSys
Index Type ID ID Pci Address Ven ID Dev ID
----- ------------ ------ ------ ----------------- ------ ------
2 SAS2008 1000h 72h 00h:05h:00h:00h 1000h 3020h
SAS2IRCU: Utility Completed Successfully.
#####################################################################
#####################################################################
Next, learn how to extract the SAS Address (WWN) of each controller.
As before, two applications will help you accomplish this: 'sas2flash' and 'sas2ircu'.
#####################################################################
List the SAS address (WWN) of each controller using 'sas2flash'
sas2flash -o -c 0 -listsasadd | grep "SAS Address"
The SAS Address for the controller is: 500605b-0-094a-8ac0
sas2flash -o -c 1 -listsasadd | grep "SAS Address"
The SAS Address for the controller is: 500605b-0-0809-ff10
sas2flash -o -c 2 -listsasadd | grep "SAS Address"
The SAS Address for the controller is: 500605b-0-094a-8a10
#####################################################################
List the SAS Address (WWN or Logical_ID) of each controller using 'sas2ircu'.
sas2ircu 0 display | grep "Logical ID"
Logical ID : 500605b0:094a8ac0
sas2ircu 1 display | grep "Logical ID"
Logical ID : 500605b0:0809ff10
sas2ircu 2 display | grep "Logical ID"
Logical ID : 500605b0:094a8a10
#####################################################################
#####################################################################
Format the SAS Address by removing all colons and/or dashes.
You might need this later in the process.
500605b-0-094a-8ac0 --> 500605b0094a8ac0
500605b0:094a8ac0 --> 500605b0094a8ac0
#####################################################################
#####################################################################
Flash the new firmware to controller 0.
sas2flash -o -fwall 2118it.bin
Output:
Code:
LSI Corporation SAS2 Flash Utility
Version 16.00.00.00 (2013.03.01)
Copyright (c) 2008-2013 LSI Corporation. All rights reserved
Ignoring All other commands except for output flags
Advanced Mode Set
Attempting to flash firmware to LSI SAS SAS2008(B2) :
Executing Operation: Flash Firmware Image
Firmware Image has a Valid Checksum.
Firmware Version 20.00.04.00
Firmware Image compatible with Controller.
Valid NVDATA Image found.
NVDATA Version 14.01.00.00
Checking for a compatible NVData image...
NVDATA Device ID and Chip Revision match verified.
NVDATA Versions Compatible.
Valid Initialization Image verified.
Valid BootLoader Image verified.
Beginning Firmware Download...
Firmware Download Successful.
Verifying Download...
Firmware Flash Successful.
Resetting Adapter...
Adapter Successfully Reset.
Attempting to flash firmware to LSI SAS SAS2008(B2) :
Executing Operation: Flash Firmware Image
Firmware Image has a Valid Checksum.
Firmware Version 20.00.04.00
Firmware Image compatible with Controller.
Valid NVDATA Image found.
NVDATA Version 14.01.00.00
Checking for a compatible NVData image...
NVDATA Device ID and Chip Revision match verified.
NVDATA Versions Compatible.
Valid Initialization Image verified.
Valid BootLoader Image verified.
Beginning Firmware Download...
Firmware Download Successful.
Verifying Download...
Firmware Flash Successful.
Resetting Adapter...
Adapter Successfully Reset.
Attempting to flash firmware to LSI SAS SAS2008(B2) :
Executing Operation: Flash Firmware Image
Firmware Image has a Valid Checksum.
Firmware Version 20.00.04.00
Firmware Image compatible with Controller.
Valid NVDATA Image found.
NVDATA Version 14.01.00.00
Checking for a compatible NVData image...
NVDATA Device ID and Chip Revision match verified.
NVDATA Versions Compatible.
Valid Initialization Image verified.
Valid BootLoader Image verified.
Beginning Firmware Download...
Firmware Download Successful.
Verifying Download...
Firmware Flash Successful.
Resetting Adapter...
Adapter Successfully Reset.
Finished Processing Commands Successfully.
Exiting SAS2Flash.
#####################################################################
#####################################################################
Verify the firmware upgrade by enumerating all the SAS controllers using 'sas2flash'
sas2flash -listall
Output:
Code:
LSI Corporation SAS2 Flash Utility
Version 16.00.00.00 (2013.03.01)
Copyright (c) 2008-2013 LSI Corporation. All rights reserved
Adapter Selected is a LSI SAS: SAS2008(B2)
Num Ctlr FW Ver NVDATA x86-BIOS PCI Addr
----------------------------------------------------------------------------
0 SAS2008(B2) 20.00.04.00 14.01.00.08 No Image 00:09:00:00
1 SAS2008(B2) 20.00.04.00 14.01.00.08 No Image 00:06:00:00
2 SAS2008(B2) 20.00.04.00 14.01.00.08 No Image 00:05:00:00
Finished Processing Commands Successfully.
Exiting SAS2Flash.
The flash process was successful
#####################################################################
Did the SAS address of each controller get blanked out?
sas2ircu 0 display | grep "Logical ID"
Logical ID : 500605b0:094a8ac0
sas2ircu 1 display | grep "Logical ID"
Logical ID : 500605b0:0809ff10
sas2ircu 2 display | grep "Logical ID"
Logical ID : 500605b0:094a8a10
No. Therefore, there is no need to set the SAS Address.
If yes, then use this command to set the SAS address on controller 0
Conceptual: sas2flash -o -c 0 -sasadd <SAS_Address>
Example: sas2flash -o -c 0 -sasadd 500605b0094a8ac0
#####################################################################
#####################################################################
Reboot the server
Check the server's FreeNAS home page --> Upper Right Corner --> Blinking Red Light?
Before the firmware upgrade, the light was blinking red. Clicking on it indicated a firmware upgrade was needed on the SAS controller.
After the firmware upgrade and system reboot, the blinking red light turned into a solid green light.
Done!