*IBM eServer
SAS Enclosure Services for 9125-F2C DE*

*0161** Microcode Update*

 

 DATE: Mar 13, 2013


*Table of Contents*

*1.0 Microcode Change History <#1.0>*

*2.0 General Information <#2.0>*
*2.1 Installation Time <#2.1>
**2.2 Machine's Affected <#2.2>
**2.3 AIX Requirements <#2.3>
**2.4 Linux Requirements <#2.4>*
*2.5_IBM_i_Requirements* <#2.5_IBM_i_Requirements:_>

*3.0 Determine the Current Microcode Level for AIX <#3.0>
*

**4.0 Downloading and Unpacking the Firmware Update Package from CORE
<#4.0>*
*4.1 Downloading the RPM Format File to the Target Server <#4.1>*
*4.2 Discovery Tool Microcode CD-ROM creation and download instructions
<#4.2>* *

**5.0 Verifying microcode before download and notes <#5.0>*
*5.1 Microcode Download Procedure-SAS Enclosure Services for 9125-F2C DE
for AIX <#5.1>
**

***6.0 Microcode Readme Change History <#6.0>***

** **

***=====================================================================================*
**

***1.0 Microcode Change History:*
  **
0155 	Update to error handling during device update to prevent drawer
failure.
0161 	Update to error handling when reading VPD during power on to
insure valid VPD is passed to GPFS.

** 
**

*** 2.0 General Information* **

** **

** **

*** 2.1 Installation Time:*
Approximately 90 minutes
 
*2.2 Machine's Affected:*
9125-F2C DE**

** **

*** 2.3 AIX Requirements:*
For support:**

**7.1 SP3
**

**
* 2.4 Linux Requirements:* **

**For support****: **

**HPC SP7.0 or later
**

** **

** *2.5 IBM i Requirements:* **

**For support****: **

**This feature is not supported in IBM i
**

** **

*** 3.0 Determine the Current Microcode Level for AIX:* **

**Note: If the system is running a GPFS file system under AIX,the GPFS
file system must shutdown GPFS prior to updating the expander firmware.
Use the mmshutdown and mmstartup command for this.**

**Before you install the microcode, it is important to determine the
microcode level of the Adapter installed in the target system. Use**

**the following instructions to read the ROM level stored in the
Adapter's VPD.**

**1)  List the SES installed in the system by typing:**

**    lsdev -C | grep ses**

**Note: All of the SAS RAID initiators addresses that are installed will
be displayed. The names will be sesX, where X is 0, 1, etc.**

**2) To check the current microcode level for the adapter or controller
enter the following command**

**   lscfg -vl sesX**

**Where X is the number/s of the previous command. The Command will
produce output similar to**

** **

*** DEVICE   LOCATION                                 DESCRIPTION***

**ses3 U78AD.001.00DE40-P1-C61 SAS Enclosure Services Device

SAS Expander
FRU Number..................74Y2390
Serial Number...............YH10UE11K009
Customer Card ID Number.....2A4A *ROM Level.(alterable).......0155*
Hardware Location Code......U78AD.001.000DE40-P1-C61

**

** **

**If the *ROM Level and ID* is less than *0161* then you should update
the microcode.
**

** **

*** 3.1 Determine the Current Microcode Level for Linux:* **

**1) get a list of SAS expander device names
Command
> lsscsi -g | grep encl
Example output
# lsscsi -g | grep encl
[0:0:149:0] enclosu IBM 78AD-001 0161 - /dev/sg74
[0:0:174:0] enclosu IBM 78AD-001 0161 - /dev/sg99
[0:0:224:0] enclosu IBM 78AD-001 0161 - /dev/sg24
[0:0:249:0] enclosu IBM 78AD-001 0161 - /dev/sg49
[1:0:149:0] enclosu IBM 78AD-001 0161 - /dev/sg174
[1:0:174:0] enclosu IBM 78AD-001 0161 - /dev/sg199
[1:0:224:0] enclosu IBM 78AD-001 0161 - /dev/sg124
[1:0:249:0] enclosu IBM 78AD-001 0161 - /dev/sg149
[2:0:149:0] enclosu IBM 78AD-001 0161 - /dev/sg274
[2:0:174:0] enclosu IBM 78AD-001 0161 - /dev/sg299
[2:0:224:0] enclosu IBM 78AD-001 0161 - /dev/sg224
[2:0:249:0] enclosu IBM 78AD-001 0161 - /dev/sg249
[3:0:149:0] enclosu IBM 78AD-001 0161 - /dev/sg374
[3:0:174:0] enclosu IBM 78AD-001 0161 - /dev/sg399
[3:0:224:0] enclosu IBM 78AD-001 0161 - /dev/sg324
[3:0:249:0] enclosu IBM 78AD-001 0161 - /dev/sg349
[4:0:149:0] enclosu IBM 78AD-001 0161 - /dev/sg474
[4:0:174:0] enclosu IBM 78AD-001 0161 - /dev/sg499
[4:0:224:0] enclosu IBM 78AD-001 0161 - /dev/sg424
[4:0:249:0] enclosu IBM 78AD-001 0161 - /dev/sg449
[5:0:149:0] enclosu IBM 78AD-001 0161 - /dev/sg574
[5:0:174:0] enclosu IBM 78AD-001 0161 - /dev/sg799
[5:0:224:0] enclosu IBM 78AD-001 0161 - /dev/sg524
[5:0:249:0] enclosu IBM 78AD-001 0161 - /dev/sg549
[6:0:149:0] enclosu IBM 78AD-001 0161 - /dev/sg673
[6:0:174:0] enclosu IBM 78AD-001 0161 - /dev/sg698
[6:0:224:0] enclosu IBM 78AD-001 0161 - /dev/sg623
[6:0:249:0] enclosu IBM 78AD-001 0161 - /dev/sg648
[7:0:148:0] enclosu IBM 78AD-001 0161 - /dev/sg773
[7:0:173:0] enclosu IBM 78AD-001 0161 - /dev/sg798
[7:0:223:0] enclosu IBM 78AD-001 0161 - /dev/sg723
[7:0:248:0] enclosu IBM 78AD-001 0161 - /dev/sg748
2) for each /dev/sgXXX device name verify microcode level by running
Command example (where device is /dev/sg748)
> sg_inq /dev/sg748
Example output
# sg_inq /dev/sg748
standard INQUIRY:
PQual=0 Device_type=13 RMB=0 version=0x04 [SPC-2]
[AERC=0] [TrmTsk=0] NormACA=0 HiSUP=0 Resp_data_format=2
SCCS=0 ACC=0 TPGS=0 3PC=0 Protect=0 BQue=0
EncServ=1 MultiP=0 [MChngr=0] [ACKREQQ=0] Addr16=0
[RelAdr=0] WBus16=0 Sync=0 Linked=0 [TranDis=0] CmdQue=1
[SPI: Clocking=0x0 QAS=0 IUS=0]
length=96 (0x60) Peripheral device type: enclosure services device
Vendor identification: IBM
Product identification: 78AD-001
Product revision level: 0161
The microcode level is listed as "Product revision level:" in the sg_inq
results
**

** **

**If the *ROM Level and ID* is less than *0161* then you should update
the microcode.
**

** **

*** 4.0 Downloading and Unpacking the Firmware Update Package from CORE* **

**NOTE:  The CORE image will now be the RPM Format File.

1) After downloading the files from CORE on to your personal system find
the following files in the CORE destination directory (c:\ibmdocs\DISKIMG):
    "*A)ses.0273-0161-1.aix7.1.noarch.rpm*"
    "*B)ses.0273-0161-1.Linux.noarch.rpm*"
2) Log in to the Target Server
3) Create a directory, if not already existent (mkdir /tmp/microcode;
mkdir /tmp/microcode/RPM)
4) Transfer the file to the Target Server "/tmp/microcode/RPM directory"
using ftp or another method.  Change to that directory, "cd
/tmp/microcode/RPM".
5a) For AIX:  Unpack the RPM file by using the following command:  "rpm
-ihv --ignoreos --force ses.0273-0161-1.aix7.1.noarch.rpm"
5b) For Linux:  Unpack the RPM file by using the following command: 
"rpm -ihv --ignoreos --force ses.0273-0161-1.Linux.noarch.rpm"
6a) For AIX:  The microcode files will be added to /usr/lib/microcode/.
6b) For Linux:  The microcode files will be added to /lib/firmware/. **

** **

*** 4.1 Downloading the RPM Format File to the Target Server*
Use this method to download to an AIX/Linux system: **

** **

**1) Make a directory on an AIX/Linux system to receive the RPM format
file. **

**    Enter: "mkdir /tmp/microcode"**

**    Enter: "mkdir /tmp/microcode/RPM"**

**2) Transfer the RPM format file to the /tmp/microcode/RPM directory
(using "Save as ...").  Change to that directory, "cd /tmp/microcode/RPM".**

**You'll see the filenames for the RPM files.
    A) For AIX:  The filename is *ses.0273-0161-1.aix7.1.noarch.rpm
    B) For Linux:  The filename is *ses.0273-0161-1.Linux.noarch.rpm
***    ***

****3) Unpack the file by executing the instructions below:
    A) For AIX:  Type "*rpm -ihv --ignoreos --force
ses.0273-0161-1.aix7.1.noarch.rpm"
    B) For Linux:  Type "*rpm -ihv --ignoreos --force
ses.0273-0161-1.Linux.noarch.rpm"
4a) For AIX:  The microcode files will be added to /usr/lib/microcode/.
4b) For Linux:  The microcode files will be added to /usr/lib/firmware/.
  ****

***** 4.2 Discovery Tool Microcode CD-ROM creation and download
instructions*****

****To obtain information how to burn a CD-ROM and run the Discovery
Tool for an AIX System please go to:
http://techsupport.services.ibm.com/server/mdownload/CDROMhelp.html
1) After running the Discovery Tool successfully the
"/tmp/microcode/RPM" directory was created and your rpm files are copied
from the CD-ROM.****

****2) Change to that directory, "cd /tmp/microcode/RPM".****

****3) Unpack the file by executing the instructions below:
    Enter the commands:
        *rpm -ihv --ignoreos --force ses.0273-0161-1.aix7.1.noarch.rpm*
4) Microcode files will be copied to "/etc/microcode".  The file size
and checksum of the microcode image will be verified in Section 5.0 ****

*****Notes:*
 - "/etc/microcode" is a symbolic link to "/usr/lib/microcode".
 - If permission does not allow the copy to the above stated directory
                  or file then the user will be prompted for a new
location.

****

***** 5.0 Verifying microcode before download and notes*****

*****NOTE:*  Microcode download must be performed separately for each
"ses" under distinct Logical Partitions (LPAR's).
              Please save current and older versions of the microcode
update files in case you need to restore your system.****

**** ****

****/Installation Time:  /Approximately 90 min System Time.****

****Please verify the file size and checksum of the raw microcode files
matches the below.*
**Filesize:  621024*
*Checksum:  19100*
For AIX:  "ls -l /usr/lib/microcode/A1700DEE.0161" to verify Filesize. 
                "sum /usr/lib/microcode/A1700DEE.0161" to verify Checksum.
For Linux:  "ls -l /lib/firmware/A1700DEE.0161" to verify Filesize. 
                "sum /lib/firmware/A1700DEE.0161" to verify Checksum.
****

****For systems that have LPAR installed, the microcode file must be
placed on all partitions that have a SES device in order to update the
code.  Follow this procedure for each partition:****

****For AIX:
    A)  Log into the target partition.
    B)  Type: "cd /usr/lib/microcode"
    C)  FTP
    D)  Type: "cd /usr/lib/microcode"
    E)  If using FTP then Type: "bin"
    F)  Type: "get A1700DEE.0161"
    G)  Type: "quit"
****

****For Linux:
    A)  Log into the target partition.
    B)  Type: "cd /lib/firmware"
    C)  FTP
    D)  Type: "cd /lib/firmware"
    E)  If using FTP then Type: "bin"
    F)  Type: "get A1700DEE.0161"
    G)  Type: "quit"
****

**** ****

*****5.1 Microcode Download Procedure-**SAS Enclosure Services for
9125-F2C 0161 for AIX* ****

*****/Procedure:/*
1) It is advised, but not necessary to stop all applications.
2) Enter diag
3) Select the "Task Selection" from diagnostics menu.
4) Select "Download Microcode" or "Microcode Tasks -> Download
Microcode" from "Task Selection" menu.
5) Select all of the SAS Enclosure Services for SES devices that need to
be updated from the list of devices by pressing "Enter".  The devices
will be displayed as ses#, where # is the number of the device.  Press "F7".
6) A dialogue box will be displayed on screen.  Press "Enter" to continue.
7) Select "/usr/lib/microcode".
8) A dialogue box will may be displayed on screen.  It will state that
the current microcode level on the adapter is not in the
/usr/lib/microcode directory.  This is acceptable as you will be
flashing new microcode onto the adapter.  Also, incorrect code will
automatically be rejected.  Press "Enter" to continue.
9) An "M" will be displayed next to the latest level of microcode in the
/usr/lib/microcode directory.  Select that level and press "Enter".
10) The following message will appear on the screen when download is
completed: "Microcode download complete successfully.  The current
microcode level for the device ses# is .....  Please run diagnostics on
the adapter to ensure that it is functioning properly."  DO NOT run
diagnostics on the device at this time.
11) Exit diagnostics.
12) Verify the code level is 0161 by typing "lscfg -vl ses#" for each
SES device updated. <Where # is the number ses device>

*5.2 Microcode Download Procedure-SAS Enclosure Services for 9125-F2C
0161 for Linux*

*/For Non-Concurrent Update:/*
1) Shutdown GPFS.
2) Get device names for all SAS expanders.
3) Use sg_write_buffer to update FW on SAS expander.
> sg_write_buffer -l {FW file name} -m 0x7 {device name}
4) Wait 30 seconds
5) Verify all expanders are seen in Linux.
> lsscsi -g | grep encl | wc
6) If all expanders are seen, continue repeat step 3 with the next
expander, if not all expanders are seen, stop and correct the issue.
****

**** ****

*****/For Concurrent Update:/*
Contact IBM Representative for Procedure
****

**** ****

*****6.0 Microcode Readme Change History*
 ****

****tbody> ********tbody> ****
2011-11-17 	e-Release 0155 Microcode level
2013-03-13 	e-Release 0158 Microcode level
2013-05-08 	e-Release 0161 Microcode level

****  ****