Firmware Update IBM ServeRAID M1015

Notice: Page may contain affiliate links for which we may earn a small commission through services like Amazon Affiliates or Skimlinks.

john4200

New Member
Jan 1, 2011
152
0
0
I picked up some IBM ServeRAID M1015 cards from ebay (HT odditory), and they came with software version 4.11.00 (Aug 6, 2009) firmware version 20.1.1-0049. I decided to update them to the latest firmware available from LSI for the 9240-8i card. In case it is useful to anyone, here are my notes from the process.

Quick background. I am building a linux server in a Norco RPC-4224 case with a Supermicro X8DTH-F motherboard. So far I have 12 Samsung HD204UI drives. When I plugged in three M1015 cards (each connected to 4 HDDs) and booted into linux (Archlinux, kernel 2.6.36), the boot process stopped for a couple minutes at the Udev event probing stage. This eventually timed out and continued booting, but there were other problems as well, and fdisk -l could not see the HDDs. I found that if I took out all but one of the M1015 cards then I could boot normally and fdisk -l saw 8 HDDs when I connected two mini-SAS cables to the single M1015 card. I tried a couple linux live USB distros (Knoppix, Ubuntu daily with kernel 2.6.37), and they had the same problems. Next, I tried Solaris snv_151a, and although it did not come with LSI drivers like the linux distros did, I was able to install the LSI Solaris drivers and plug in two M1015 cards and see all the drives connected to both cards with the format command.

Since I want to run linux on this server, not Solaris (nor Windows), I needed to either get these cards working, or switch to another type of card. I decided to try flashing the firmware on the cards to the latest from LSI.

I downloaded the latest firmware file for the LSI 9240-8i, which was version 20.10-1-0020 (Dec 2010). The LSI firmware updates for their RAID cards use the MegaCLI software (as opposed to SAS2FLSH). I decided to use the DOS MEGACLI.EXE program to do the flash.
I used a FreeDOS bootable USB flash drive (previously created with UNetbootin), copied MEGACLI.EXE and the imr_fw.rom file over to the USB drive, and booted into FreeDOS with only one of the M1015 cards plugged in (I wanted to do the flash one at a time, and I do not know if you can do more than one at a time).

FreeDOS mounts the USB drive as C, so I typed 'C:' to switch to the C drive, and then, since the files I copied were in the root directory, I simply ran the megacli program to do the flash (as specified in the text file that came with the firmware file):

Code:
> megacli -adpfwflash -f imr_fw.rom -a0
and after about 2 minutes, the flash process completed successfully and I rebooted.

Upon reboot, the boot process paused for about a minute after displaying

Code:
  LSI MegaRAID SAS-MFI BIOS
  Version 4.20.00 (Build November 19, 2010)
  Copyright(c) 2010 LSI Corporation
and then it displayed

Code:
  F/W Initializing Devices 0%
for about 20 seconds. Then the boot process continued normally, with the LSI BIOS displaying the info about JBODs and so on. I was concerned that the boot process was taking a long time with the new firmware, but upon another reboot, I found that it was just a one time thing after the firmware flash. Further boots were as quick as they were before the firmware flash.

I flashed two more of the M1015 cards (one at a time), then I plugged in all 3 cards, and connected 4 HDDs to each card, and booted into Archlinux. The boot process was normal, and I was able to see all 12 drives individually when I ran fdisk -l. Success!

Well, mostly. I did notice in the bootup log that there was an error message that I don't follow. Further testing will be needed. In case anyone is interested, here is an excerpt from dmesg:

Code:
megasas: 00.00.04.17.1-rc1 Thu. Oct. 29, 11:41:51 PST 2009
megasas: 0x1000:0x0073:0x1014:0x03b1: bus 3:slot 0:func 0
megaraid_sas 0000:03:00.0: PCI INT A -> GSI 26 (level, low) -> IRQ 26
megaraid_sas 0000:03:00.0: setting latency timer to 64
megasas: FW now in Ready state
GHES: Generic hardware error source: 0 notified via NMI is not supported!
scsi6 : LSI SAS based MegaRAID driver
GHES: Generic hardware error source: 1 notified via POLL is not supported!
scsi 6:0:9:0: Direct-Access     ATA      SAMSUNG HD204UI  0001 PQ: 0 ANSI: 5
sd 6:0:9:0: Attached scsi generic sg1 type 0
sd 6:0:9:0: [sdb] 3907029168 512-byte logical blocks: (2.00 TB/1.81 TiB)
scsi 6:0:10:0: Direct-Access     ATA      SAMSUNG HD204UI  0001 PQ: 0 ANSI: 5
sd 6:0:10:0: Attached scsi generic sg2 type 0
sd 6:0:10:0: [sdc] 3907029168 512-byte logical blocks: (2.00 TB/1.81 TiB)
scsi 6:0:11:0: Direct-Access     ATA      SAMSUNG HD204UI  0001 PQ: 0 ANSI: 5
sd 6:0:11:0: Attached scsi generic sg3 type 0
sd 6:0:9:0: [sdb] Write Protect is off
sd 6:0:9:0: [sdb] Mode Sense: 73 00 00 08
sd 6:0:11:0: [sdd] 3907029168 512-byte logical blocks: (2.00 TB/1.81 TiB)
scsi 6:0:12:0: Direct-Access     ATA      SAMSUNG HD204UI  0001 PQ: 0 ANSI: 5
sd 6:0:12:0: Attached scsi generic sg4 type 0
sd 6:0:9:0: [sdb] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
sd 6:0:10:0: [sdc] Write Protect is off
sd 6:0:10:0: [sdc] Mode Sense: 73 00 00 08
sd 6:0:12:0: [sde] 3907029168 512-byte logical blocks: (2.00 TB/1.81 TiB)
sd 6:0:10:0: [sdc] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
megasas: 0x1000:0x0073:0x1014:0x03b1: bus 132:slot 0:func 0
megaraid_sas 0000:84:00.0: PCI INT A -> GSI 50 (level, low) -> IRQ 50
megaraid_sas 0000:84:00.0: setting latency timer to 64
megasas: FW now in Ready state
 sdb: unknown partition table
 sdc: unknown partition table
scsi7 : LSI SAS based MegaRAID driver
scsi 7:0:9:0: Direct-Access     ATA      SAMSUNG HD204UI  0001 PQ: 0 ANSI: 5
sd 7:0:9:0: Attached scsi generic sg5 type 0
sd 7:0:9:0: [sdf] 3907029168 512-byte logical blocks: (2.00 TB/1.81 TiB)
scsi 7:0:10:0: Direct-Access     ATA      SAMSUNG HD204UI  0001 PQ: 0 ANSI: 5
sd 7:0:10:0: Attached scsi generic sg6 type 0
sd 7:0:10:0: [sdg] 3907029168 512-byte logical blocks: (2.00 TB/1.81 TiB)
scsi 7:0:11:0: Direct-Access     ATA      SAMSUNG HD204UI  0001 PQ: 0 ANSI: 5
sd 7:0:11:0: Attached scsi generic sg7 type 0
sd 7:0:11:0: [sdh] 3907029168 512-byte logical blocks: (2.00 TB/1.81 TiB)
scsi 7:0:12:0: Direct-Access     ATA      SAMSUNG HD204UI  0001 PQ: 0 ANSI: 5
sd 7:0:12:0: Attached scsi generic sg8 type 0
sd 7:0:10:0: [sdg] Write Protect is off
sd 7:0:10:0: [sdg] Mode Sense: 73 00 00 08
sd 7:0:12:0: [sdi] 3907029168 512-byte logical blocks: (2.00 TB/1.81 TiB)
sd 7:0:10:0: [sdg] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
sd 6:0:9:0: [sdb] Attached SCSI disk
megasas: 0x1000:0x0073:0x1014:0x03b1: bus 134:slot 0:func 0
megaraid_sas 0000:86:00.0: PCI INT A -> GSI 56 (level, low) -> IRQ 56
megaraid_sas 0000:86:00.0: setting latency timer to 64
megasas: FW now in Ready state
sd 7:0:12:0: [sdi] Write Protect is off
sd 7:0:12:0: [sdi] Mode Sense: 73 00 00 08
sd 6:0:10:0: [sdc] Attached SCSI disk
sd 7:0:12:0: [sdi] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
 sdg: unknown partition table
scsi8 : LSI SAS based MegaRAID driver
scsi 8:0:14:0: Direct-Access     ATA      SAMSUNG HD204UI  0001 PQ: 0 ANSI: 5
sd 8:0:14:0: Attached scsi generic sg9 type 0
sd 8:0:14:0: [sdj] 3907029168 512-byte logical blocks: (2.00 TB/1.81 TiB)
scsi 8:0:15:0: Direct-Access     ATA      SAMSUNG HD204UI  0001 PQ: 0 ANSI: 5
sd 8:0:15:0: Attached scsi generic sg10 type 0
sd 8:0:15:0: [sdk] 3907029168 512-byte logical blocks: (2.00 TB/1.81 TiB)
 sdi: unknown partition table
scsi 8:0:16:0: Direct-Access     ATA      SAMSUNG HD204UI  0001 PQ: 0 ANSI: 5
sd 8:0:16:0: Attached scsi generic sg11 type 0
sd 8:0:14:0: [sdj] Write Protect is off
sd 8:0:14:0: [sdj] Mode Sense: 73 00 00 08
sd 8:0:16:0: [sdl] 3907029168 512-byte logical blocks: (2.00 TB/1.81 TiB)
scsi 8:0:17:0: Direct-Access     ATA      SAMSUNG HD204UI  0001 PQ: 0 ANSI: 5
sd 8:0:17:0: Attached scsi generic sg12 type 0
sd 8:0:14:0: [sdj] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
sd 8:0:17:0: [sdm] 3907029168 512-byte logical blocks: (2.00 TB/1.81 TiB)
sd 8:0:16:0: [sdl] Write Protect is off
sd 8:0:16:0: [sdl] Mode Sense: 73 00 00 08
sd 8:0:16:0: [sdl] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
sd 8:0:17:0: [sdm] Write Protect is off
sd 8:0:17:0: [sdm] Mode Sense: 73 00 00 08
sd 6:0:11:0: [sdd] Write Protect is off
sd 6:0:11:0: [sdd] Mode Sense: 73 00 00 08
sd 7:0:10:0: [sdg] Attached SCSI disk
sd 8:0:17:0: [sdm] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
 sdj: unknown partition table
sd 6:0:11:0: [sdd] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
sd 6:0:12:0: [sde] Write Protect is off
sd 6:0:12:0: [sde] Mode Sense: 73 00 00 08
sd 6:0:12:0: [sde] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
sd 7:0:12:0: [sdi] Attached SCSI disk
 sdl: unknown partition table
 sdm: unknown partition table
sd 8:0:14:0: [sdj] Attached SCSI disk
sd 8:0:16:0: [sdl] Attached SCSI disk
sd 8:0:17:0: [sdm] Attached SCSI disk
sd 7:0:9:0: [sdf] Write Protect is off
sd 7:0:9:0: [sdf] Mode Sense: 73 00 00 08
sd 7:0:9:0: [sdf] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
sd 7:0:11:0: [sdh] Write Protect is off
sd 7:0:11:0: [sdh] Mode Sense: 73 00 00 08
sd 7:0:11:0: [sdh] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
sd 8:0:15:0: [sdk] Write Protect is off
sd 8:0:15:0: [sdk] Mode Sense: 73 00 00 08
sd 8:0:15:0: [sdk] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
 sdd: unknown partition table
 sde: unknown partition table
 sdf: sdf1
 sdf1: <solaris: [s0] sdf5 [s2] sdf6 [s8] sdf7 >
 sdh: unknown partition table
 sdk: unknown partition table
sd 6:0:11:0: [sdd] Attached SCSI disk
sd 6:0:12:0: [sde] Attached SCSI disk
sd 7:0:9:0: [sdf] Attached SCSI disk
sd 7:0:11:0: [sdh] Attached SCSI disk
sd 8:0:15:0: [sdk] Attached SCSI disk
 
Last edited:

odditory

Moderator
Dec 23, 2010
381
59
28
good writeup, had meant to start a thread on this card but free time is a problem right now. yep, indeed the first time the card's BIOS inits after a flash, it uncompresses its compressed FW image into its nvram (at least i'm pretty sure thats whats going on).

did you also install the latest 9240-8i driver package from LSI for your version of Linux to see if those errors went away? I too had to install the latest driver package from LSI for Solaris Express 11, because it didn't have driver support built in unlike the 9211-8i and variant cards which do and use the mpt2sas driver. EDIT: Just saw you mentioned Solaris, nm.

i still need to do some more benchmarking and testing to see how the M1015 compares to a 9211-8i in IT mode in terms of throughput and with expanders, to verify whether or not the presence of the iMR rack stack causes any problems or slowdowns in soft arrays.

btw I would've suggested you update the firmware on those cards right off the bat to avoid the initial headaches, since in 2009 I think the default behavior at that point for LSI cards with raid stacks was NOT to present unconfigured drives as JBOD, and they had to be manually configured as such. fortunately they saw fit at some point to make JBOD mode more of a true passthrough mode. now if they would only budge on adding spindown support (they won't, and insist that you need a higher tier card like a 926x and 928x for power saving. god bless marketing departments.)
 
Last edited:

john4200

New Member
Jan 1, 2011
152
0
0
I'd need to compile the latest driver myself, since LSI does not provide binary drivers for Archlinux.

It looks like I am currently running a fairly old version of the megasas driver, even though kernel 2.6.36 is fairly recent:

Code:
megasas: 00.00.04.17.1-rc1 Thu. Oct. 29, 11:41:51 PST 2009
The LSI 9240-8i product page lists version 4.37 for linux.

I am expecting the 2.6.37 final kernel to be released any day now, so I am planning to wait for that. If 2.6.37 does not fix the error message, then I will choose one of the distro's supported on the LSI 9240-8i product page (probably slackware, since it is pretty generic), and use the source code in that package to compile a kernel module for Archlinux. Too bad LSI does not have a generic source code package of linux drivers to download.
 

john4200

New Member
Jan 1, 2011
152
0
0
I am expecting the 2.6.37 final kernel to be released any day now,
Well, it was released at about the same time I was typing that comment!

I see that the 2.6.37 kernel comes with a megaraid_sas driver from May, 2010. So I compiled a kernel module with the latest megaraid_sas version, 4.37

Code:
# modinfo megaraid_sas
description:    LSI MegaRAID SAS Driver
version:        00.00.04.37
and I still had the GHES message. By the way, I found that the source code in the LSI linux driver packages was all the same, regardless of the distro the package specified. So if you just need the source code, it does not matter which linux driver package you get.

I am now thinking the the GHES message is not an error, and not related to the megaraid_sas driver. I think the GHES system initialized just before the megaraid_sas driver initialized, and GHES is just announcing that it does not support notification by NMI or POLL. I wish it did not log a message with the word "error" in it when there was no actual error. But anyway, my M1015 cards seem to be working fine with linux.
 

Metaluna

Member
Dec 30, 2010
64
0
6
Great info. I was having a hard time finding any instructions on the LSI site for how to update the firmware. I'll give this a try.

I wonder if it's possible to get the 9211 IT firmware on after first flashing "real" LSI firmware, perhaps using megacli instead of sas2flash (probably not :( ).
 

odditory

Moderator
Dec 23, 2010
381
59
28
It's no problem flashing the card in Windows, you don't need to deal with DOS boot disks and all that if you already have windows. And no, its not possible to get IT firmware on it, nor does flashing the firmware change the card into looking like a retail LSI 9240-8i. The flashing process is aware of the different rebadged versions of the card, and the card will keep the "IBM ServeRaid M1015" vendor string after the flash.
 

mobilenvidia

Moderator
Sep 25, 2011
1,956
212
63
New Zealand
How can you update the card's firmware without ROM and Bios in Windows 7?
MSM will do it
IT Mode = Update Fimrware and UEFI BIOS (if needed)
IR Mode = Update Firmware and BIOS and UEFI BIOS (if needed)

iMR mode = just upload the all in one package.
 
Last edited:

pettakos

New Member
Oct 9, 2012
15
0
1
I was probably not clear enough. I am not running into any issues with the card, thereby there is no specific need to update the firmware (P14) running in IT mode just fine.
What I do need is to get rid of the ROM and the BIOS in order to speed up boot time process.
How can I do that?
 

mobilenvidia

Moderator
Sep 25, 2011
1,956
212
63
New Zealand
If you are running P14 and slow boots I take it you are running in IR mode ?
Or are you running as a M1015 in native LSI9240 mode ?

You will need to clear the Firmware.
Then if you want IR mode but no BIOS just flash the IR firmware, NOT the BIOS wihich normally gets flashed as well = fast boot but you can't select boot drives (do this before you clear the Fimrware)
IF you want IT mode just flash the IT firmware nothing else.

If you are so inclined you could flash the UEFI BIOS if you are booting in UEFI mode for ultimate in fast boots (you flash this additional to any other flashing as per above)

Or look at my article over here
 

pettakos

New Member
Oct 9, 2012
15
0
1
I guess the card is in IT mode, because there are 8 drives attached which can be accessed separately.
These are data drives and will remain so, I am not going to boot from the card.
I installed in Win7 x64 LSI storage manager and it states that the card is LSI 9211-8i.
My M/B is an Asus P8Z68-V pro.
My goal is to speed up boot time nothing else, cause the card works fine for me, you can add or remove HDD's at will.
The problem probably lies to Mainboard's Uefi Bios.
It doesn't really allow me to get into the card's bios or firmware page at boot, to check it's version, e.t.c.
I have already checked your article. My next step, I guess is to to able to boot from a USB stick.
Here's what I am going to do.
I will remove everything hard drives, usb 3 card readers, ssd OS boot disk, Bd-rw, and leave only the card attached to the first PCI-e slot x16 of the board (I am not using any added graphic cards).
Then I will prepare the usb stick with the relevant files (where am I supposed to find them) in order to be able to boot, probably in Uefi mode.
Should it be DOS bootable or UEfi bootable? And if so, how are we doing this?
I forgot to mention the specs of the card SAS 9220-8i, another smaller sticker LS2-SAS9240-8i (B) FRU 46M0861.
Any help is greatly appreciated.
 

mobilenvidia

Moderator
Sep 25, 2011
1,956
212
63
New Zealand
IT mode = fastest boot, as there should be no BIOS to load.

I think first you need to find out what mode you are in :)
Boot times might be affected with the BIOS selection of devices to choose from
Remove any that you won't boot from (ie LAN can take ages)