SOLVED IBM ServeRaid M1015 and "No LSI SAS adapters found!"

Status
Not open for further replies.

Satam

Dabbler
Joined
Jan 23, 2014
Messages
40
Hi,

this is just a quick one for whom it might concern. I came across a problem today when I wanted to crossflash an IBM ServeRaid M1015 into a LSI SAS 9211-8i. This is a newer LSI SAS card, it says SAS9220-8i on a sticker and it seems it can also be crossflashed to be a LSI MegaRAID SAS 9240-8i as it looks just like it and to be a 9211-8i, too of course, which is usually the goal here. That is if you can get it to be recognized by the flash tool... which was the issue here.

I had searched on this forum for this particular problem and also on the web but didn't find a solution. There were a few threads about it here but no actual solution. But I came up with the solution that worked in my case by myself. So that's why I'm creating this thread, others who get stuck like I was might find it useful. Hence I added the SOLVED prefix already.

I had to use the EFI shell and the EFI version of the sas2flash tool since I get "ERROR: Failed to initialize PAL. Exiting program" on my SuperMicro X10 motherboard when trying to do anything with that tool in DOS. But I guess when you have an older motherboard with which sas2flsh.exe theoretically does work, this "No LSI SAS adapters found!" error is the same.

So what's the big deal? What is this about?

The card is recognized by the BIOS/UEFI, it shows its own BIOS messages, you can hit Ctrl-H and get the ugly WebUI, the drives work and so on but when you actually want to flash it, the card isn't recognized by the sas2flash tool. The error messages is "No LSI SAS adapters found!" etc. No, it's not broken. Just being weird.

So I assumed there was nothing wrong with the card at all. I got it from a respectable dealer and not from some Shenzhen back alley Ebay seller. Also I didn't even bother to switch the PCI slot or disconnect any other drives from the motherboard's HBA. The card worked fine! Instead I figured the most likely explanation is that the sas2flash tool only looks for LSI products. This is a very common thing for such low-level tools to do, so they don't accidentally brick other hardware. It's a safe guard and it's in the way.

Well, in my case it turned out I did the simple mistake of not erasing the card's flash with the Mega RAID HW tool! Doh! Instead I wanted to erase the card with sas2flash's own erase command "-o -e 6", but that's not possible if it doesn't recognize the card. So in my case the part where you boot into DOS (works regardless of your motherboard's UEFI) and execute megarec -writesbr 0 sbrempty.bin; megarec -cleanflash 0 is the right path to choose. Only after the IBM branding is erased, does the sas2flash tool recognize the card. As a little drawback, you can't make a complete backup of the original ServeRaid firmware with megarec.exe. That seems to be only possible with sas2flash, which only works with LSI branded cards. But if you wanted IR mode back, the LSI firmwares are the better choice anyway, because they are still being updated regularly. So, meh, whatever.

Hope this is useful for some people, who got stuck because they used the wrong guide.

PS: Oh, important! After erasing the card with the MegaRAID HWR Contoller (sic!) Recovery tool, you have to reset its original SAS address! Otherwise it will be 0000000-0-0000-0000. Not nice if you use multiple completely wiped and then crossflashed former M1015s in one system. I'm not sure if the command sas2flash.efi -o -e 6 which can be seen in many guides also wipes the SAS address, you better check with sas2flash.efi -o -listsasadd. Anyway use sas2flash.efi -o -c <controller number, in case you have more than one LSI HBA!!!> -sasadd 500605b0xxxxxxxx. You can find the address on a sticker on your card, omit the whitespace and dashes.
 
Last edited:

cyberjock

Inactive Account
Joined
Mar 25, 2012
Messages
19,526
PAL is a set of code in typical BIOSes for accessing hardware directly. It's rarely used except when doing direct access to a device's hardware (for firmware updates most commonly).

99.9% of UEFIs out there have the PAL removed (along with a crapload of other units from BIOSes) to make room for the UEFI shell. An alternative to PAL is to use the UEFI shell and an application that you run in the UEFI shell to ensure direct connection to the hardware without anything going wrong.

In essence, newer stuff has no PAL command codes so you have to use the UEFI shell.

Yes, in theory you could code a DOS application to do the same job as the PAL and then you could reflash it from the DOS shell. The problem is that you can't really stop the OS from saying "hey SAS card.. let's talk" and midway through your firmware update the card receives some bytes that the card writes blindly to its internal flash memory because it thinks all of the bytes are for the firmware update. Next thing you know your SAS card is borked forever because the firmware actually finished, but the data written was garbage.
 

Satam

Dabbler
Joined
Jan 23, 2014
Messages
40
Interesting. Luckily the MegaRAID HWR Controller Recovery tool was able to talk to the card under DOS and flash it regardless of PAL code missing. Do you know of any new version of this tool, cyberjock? I can't find it as a public download on the LSI website. I got my version from a 7z-package that was linked inside a crossflash guide. Not that I would need it again now that the card has its LSI branding, but it might be useful for others.
 

cyberjock

Inactive Account
Joined
Mar 25, 2012
Messages
19,526
Never seen that tool before. Really, the only time you'd need it is if you screwed up very badly, and often if you've screwed up that badly, your card won't even be able to think for its own enough to be a PCIe device on the system. The card is good as dead at that point.

That tool is probably a desperate attempt to recover a card and isn't necessarily a 100% chance of working. You probably should have used the UEFI shell like you are supposed to. ;)

Quite literally, when I want to reflash any LSI controller, I always do then entire process from the UEFI shell. There's no reason to make some crappy DOS boot device for this kind of task. ;)
 

Satam

Dabbler
Joined
Jan 23, 2014
Messages
40
That tool is probably a desperate attempt to recover a card and isn't necessarily a 100% chance of working. You probably should have used the UEFI shell like you are supposed to. ;)
:D I never actually wrote that I did. Maybe you should read my opening post again. ;)

It's totally different issues we are talking about. I used the EFI shell right from the start, never touched the card before under DOS, booted right into the EFI shell after installing it. But the sas2flash.efi executable did not recognize it at all: "No LSI SAS adapters found!" of course. I also tried using the DOS version of sas2flash just to be sure, but with it I got the PAL error. Only after I wiped the card's memory with the recovery tool (yes, under DOS!), did the sas2flash tool see it (yes, in the EFI shell).

Besides I'm sure the DOS version of the flash tool sas2flsh.exe, works just fine with the appropriate non-UEFI motherboards and a card that is willing to be seen by it, unlike my card. But I have no use for it, since I too think the UEFI shell is a nice thing to have and use. So contrary to what you believe I never even bothered to use the DOS version of the sas2flash tool!;)

I don't know why sas2flash.efi didn't find the card. Maybe the flash tool was too new and it had a safeguard implemented as I mentioned in my opening post. I can imagine that they know about the fad of reflashing cheap M1015s into 9211-8is.:p I used both the versions P19 and P20 to no avail. (Couldn't be bothered to track down an older version of the firmware release. P19 and P20 were the only versions the LSI website had to offer for download.) Or maybe it's not the flash tool, but because my IBM ServeRaid M1015 is a later revision, one that simply needs to be wiped first by another tool. It says "SAS9220-8i" on a sticker on the card, a model that is unknown to the LSI website. Instead my card looks exactly the same as the LSI MegaRAID 9240-8i. Which is why I assume I can crossflash my card into a 9240-8i if I wanted to. But the 9211-8i firmware seems to work just as fine. Actually I think the major difference between the 9211-8i and the 9240-8i is just a rearranged PCB design.

So anyway, in case anyone needs the recovery tool here are some links I found to essentially the same files:
http://www.houseofdreams.be/wp-content/uploads/2013/02/sas2008.zip
http://www.files.laptopvideo2go.com/hdd/sas2008.zip
http://files.laptopvideo2go.com/hdd/m1015.exe
It's the megarec.exe and megarec.txt that you will need. You should probably get the latest firmware files and flash tool directly from the LSI website instead. Most of the other management tools in those packages aren't relevant for crosspatching even though they might become handy some day.
 
Last edited:

cyberjock

Inactive Account
Joined
Mar 25, 2012
Messages
19,526
I've probably reflashed 30 M1015s. I've never had the UEFI executable not work. I wonder if you have an Intel motherboard (those seem to be extremely bizaare for some reason).

As for the firmware, you should NOT be using the latest. FreeNAS warns you if you aren't using P16 firmware as that's the only "safe" firmware for our driver version. I can assure you that P16 is available if you look in the download archives. You can download as old as P7 from LSI if you wanted it.
 

Satam

Dabbler
Joined
Jan 23, 2014
Messages
40
I've probably reflashed 30 M1015s. I've never had the UEFI executable not work.
Have you ever flashed one of them with the latest flash tools and firmware? As I already said, maybe it's a new feature in the latest version of the flash tool to ignore IBM branded cards, in order to make crossflashing harder.

And as I also mentioned I've got a Supermicro X10 based motherboard.

As for the firmware, you should NOT be using the latest. FreeNAS warns you if you aren't using P16 firmware as that's the only "safe" firmware for our driver version.
Good to know the P16 firmware is still available. Though I've looked straight at the kernel messages after the reboot since I've already read that new firmwares might be problemativ with old drivers, but I didn't find any warning in the log. The card is recognized and seems to be functional. I hot-plugged some drives to it and they get initialized and I can access them. Where exactly does FreeBSD log this warning? I'm using 9.2.1.9, btw. I'm curious about this. Before I use the card productively I need to check.
 
Last edited:

BigDave

FreeNAS Enthusiast
Joined
Oct 6, 2013
Messages
2,479
I've already read that new firmware might be problemativ with old drivers, but I didn't find any warning in the log. The card is recognized and seems to be functional. Where exactly does FreeBSD log this warning? I'm using 9.2.1.9, btw.
The 9.2.1.9 (and earlier) versions do not give the driver/firmware mismatch warning, the 9.3 version now checks and
logs the driver/firmware versions and gives the warning if they do not match.
 

Satam

Dabbler
Joined
Jan 23, 2014
Messages
40
Ah, thank you! Even though everything seems fine, I'm testing a drive via iSCSI now and I can access all data just fine, but that doesn't have to mean anything. I'll better downgrade to P16.

PS: I couldn't find a download link directly on the LSI website, I used the software & document search but it only gave me the latest firmware and driver P19 and P20. So I got smart and just replaced the 20 with a 16 in the url:

http://www.lsi.com/downloads/Public...es/SAS_SATA_6G_P16/Installer_P16_for_UEFI.zip
http://www.lsi.com/downloads/Public...es/SAS_SATA_6G_P16/Installer_P16_for_UEFI.zip
EDIT: Oh, btw. What about using drivers provided by LSI? I see that there's a kernel module "mpslsi.ko" for P20 available.
 
Last edited:

BigDave

FreeNAS Enthusiast
Joined
Oct 6, 2013
Messages
2,479
The newer LSI driver is not supported in Freenas afaik.
It's best to use the existing driver to avoid the risk of damage
to your pool at this point in time. The one you found will
do the trick. No need to do anything for that controller as
far as wiping the bios now, just downgrade to P16 and u r set!
(The P16 firmware is on the LSI site, but you must click on the
archive link to find the download for it.)
 

Ericloewe

Server Wrangler
Moderator
Joined
Feb 15, 2014
Messages
20,176
LSI's official driver is missing a few tweaks to the current P16 one. P20 for FreeBSD is also rather recent.

Long story short, P16 + P16 is known to work well in IT mode, and there's not much desire to mess with what's working (because there are no new features).
 

StephenFry

Contributor
Joined
Apr 9, 2012
Messages
171
FreeNAS warns you if you aren't using P16 firmware as that's the only "safe" firmware for our driver version.

With the release of 9.3, "all of a sudden" (well, as far as I personally am concerned) this is something new to take into account.
I thought I had a pretty good grip on most things FreeNAS, but clearly not.

My main production machines are on the latest 9.2, so aren't complaining, but I do know that back in the day I flashed them with the (then most-recent) P14 firmware and never touched them again.

Three questions:
- is anything in particular wrong/buggy about P14 specifically?
- which version of the driver does 9.2 use?
- if it's not the P14 driver, is it critical to update the M1015 as long as I'm not moving to FreeNAS 9.3?
 

Bidule0hm

Server Electronics Sorcerer
Joined
Aug 5, 2013
Messages
3,710
It's the same problem on 9.2.* but this version doesn't have the warning, it has been added on the 9.3.
 

StephenFry

Contributor
Joined
Apr 9, 2012
Messages
171
Is there an overview with the driver versions that various FreeNAS versions use?

Usually, if I *have* to update a firmware/BIOS, I'd use the manufacturer's latest one, but I gather that is not recommended in this case.
 

Bidule0hm

Server Electronics Sorcerer
Joined
Aug 5, 2013
Messages
3,710
I believe the version is in the documentation, try here.

I'm pretty sure it's the P16 like on the 9.3.

No, in fact the manufacturer recommends that the firmware and driver versions matches ;)
 

Ericloewe

Server Wrangler
Moderator
Joined
Feb 15, 2014
Messages
20,176
Is there an overview with the driver versions that various FreeNAS versions use?

Usually, if I *have* to update a firmware/BIOS, I'd use the manufacturer's latest one, but I gather that is not recommended in this case.

It's been P16 as far as I can remember. That means 9.2.1 and 9.3 at least.
 

cyberjock

Inactive Account
Joined
Mar 25, 2012
Messages
19,526
P16 is in 9.2.1.x and 9.3. P14 was in 9.1.0, 9.1.1, and 9.2.0. I have no clue what was in 8.x.x. That was too long ago. I want to say P13 for all of 8.x.
 

GeekGoneOld

Dabbler
Joined
Aug 1, 2015
Messages
48
I can follow up on a this post with the following info:

I used an ASUS Z97-A mobo (EFI) and a 2013 version of the M1015 while trying to crossflash.

There is no version of sas2flash.efi (going back as far as P5) that recognizes the card before wiping out IBM so it is possible as the OP said that it could be the version of IBM F/W that prevents it being seen.

The following should work for everyone. To make it more likely, empty the computer of cards (except video) and only put in one M1015 at a time.

1) Make DOS USB using rufus
-use MBR, bootable as FreeDOS
-add DOS4GW.exe, DOS32A.exe, megarec.exe, sbrempty.bin, sas2flsh.exe and 2118it.bin (from P16) to root
2) Make an EFI USB using rufus
-use GPT for EFI, not bootable
-add shellx64.efi, sas2flash.efi and 2118it.bin (from P16) to root
3) Boot from DOS USB and type
-megarec -writesbr 0 sbrempty.bin
-megarec -cleanflash 0

If you have a BIOS machine:
4) Reboot to DOS (yes, you must reboot) and type
-sas2flsh -o -f 2118it.bin
-sas2flsh -0 -sasadd <sas address on card>

If you have an EFI machine:
4) Reboot to EFI shell and type
-fs0: (may be different on your machine)
-dir (to verify you are on correct USB stick!)
-sas2flash -o -f 2118it.bin
-sas2flash -0 -sasadd <sas address on card>

To explain (based on many posts I've read!!!):

Part 1 (DOS): Wipe out the card
megarec is a powerful LSI tool that can do almost anything
sbrempty.bin is an sbr (serial boot record) made by a non-LSI contributor that contains NO vendor ID (i.e. loading it wipes out the IBM vendor ID in the sbr)
cleanflash wipes out almost everything (including the rest of the vendor info and the sas address) but leaves the card ready to be reflashed

Part 2 (DOS or EFI): Flash new firmware and set sas address (erased in part 1)
now that the IBM is gone, sas2flash works and downloads firmaware and sets address

Further firmware upgrades are much easier. Just update the 2118it.bin file on the USB you boot in step 4 then do step 4 without the "-o sasadd".

Attached is a text file of all the files needed and where to get them.

There you have it. Should work perfectly!!!
 

Attachments

  • files_to_get.txt
    786 bytes · Views: 2,002

patrick0525

Dabbler
Joined
Oct 9, 2011
Messages
29
I can follow up on a this post with the following info:

I used an ASUS Z97-A mobo (EFI) and a 2013 version of the M1015 while trying to crossflash.

There is no version of sas2flash.efi (going back as far as P5) that recognizes the card before wiping out IBM so it is possible as the OP said that it could be the version of IBM F/W that prevents it being seen.

The following should work for everyone. To make it more likely, empty the computer of cards (except video) and only put in one M1015 at a time.

1) Make DOS USB using rufus
-use MBR, bootable as FreeDOS
-add DOS4GW.exe, DOS32A.exe, megarec.exe, sbrempty.bin, sas2flsh.exe and 2118it.bin (from P16) to root
2) Make an EFI USB using rufus
-use GPT for EFI, not bootable
-add shellx64.efi, sas2flash.efi and 2118it.bin (from P16) to root
3) Boot from DOS USB and type
-megarec -writesbr 0 sbrempty.bin
-megarec -cleanflash 0

If you have a BIOS machine:
4) Reboot to DOS (yes, you must reboot) and type
-sas2flsh -o -f 2118it.bin
-sas2flsh -0 -sasadd <sas address on card>

If you have an EFI machine:
4) Reboot to EFI shell and type
-fs0: (may be different on your machine)
-dir (to verify you are on correct USB stick!)
-sas2flash -o -f 2118it.bin
-sas2flash -0 -sasadd <sas address on card>

To explain (based on many posts I've read!!!):

Part 1 (DOS): Wipe out the card
megarec is a powerful LSI tool that can do almost anything
sbrempty.bin is an sbr (serial boot record) made by a non-LSI contributor that contains NO vendor ID (i.e. loading it wipes out the IBM vendor ID in the sbr)
cleanflash wipes out almost everything (including the rest of the vendor info and the sas address) but leaves the card ready to be reflashed

Part 2 (DOS or EFI): Flash new firmware and set sas address (erased in part 1)
now that the IBM is gone, sas2flash works and downloads firmaware and sets address

Further firmware upgrades are much easier. Just update the 2118it.bin file on the USB you boot in step 4 then do step 4 without the "-o sasadd".

Attached is a text file of all the files needed and where to get them.

There you have it. Should work perfectly!!!

Another question:
Will this crossflashing process be applicable to the IBM M1115 and the IBM M5014/M5015 cards too? I need to set my cards to 9211-8i IT mode.
 

Ericloewe

Server Wrangler
Moderator
Joined
Feb 15, 2014
Messages
20,176
Status
Not open for further replies.
Top