LSI 9207-8i not being detected

I’m running a Ryzen 5700G APU on an Asrock X470 Taichi motherboard, where one of the two PCIe x16 slots are populated with an Intel X520 10G SFP+ NIC, and the other has the LSI card in question. I have the LSI card plugged into two SilverStone SDP11 adapters, each of which take four M.2 SATA SSD’s.

When booting up the system, I do not see any of the M.2 SATA SSD’s in the BIOS nor in the actual TrueNAS SCALE system. the LSI HBA also doesn’t appear in the CLI when using sas2flash or sas3flash, and is not listed under lspci or dmidecode. I can at least confirm that the LSI HBA’s and the SSD’s do seem to get power, as they both are above ambient temps to the touch.

So far I’ve tried swapping the PCIe slots where those cards are plugged into, as well as trying a second LSI 9207-8i that I have. I also tried just having the LSI HBA plugged in without the NIC plugged in, but to no avail.

Is there anything I can try doing to get this to work? I’ve read some reports online of people taping off some two pins on the LSI HBA’s to fix their issues, but in those cases the LSI HBA’s would prevent the system from POST-ing, whereas my issue is that they don’t seem to be detected.

Are you using legacy boot / CSM? Pretty sure that’s needed for these cards now rather old cards.

I forgot to mention I did try with CSM on and off but it didn’t change anything

@diizzy CSM enabled allows the card to post their bios. W/o the boot loader won’t be displayed, but Linux sees the card just fine.

@HunterAP : try basic troubleshooting… simplify until you can isolate the root of the issue.

  • Remove all peripherals except for the LSI card
  • Set UEFI parameters to default
  • Upgrade UEFI/BIOS to the latest (or to another - apprently more stable) version.

If, at this point, the card doesn’t show up in lspci, try the card in a different motherboard.

I experienced issues with dual LSI cards in a x570 mb (only one card showing up). Could not overcome it and solved issue differently (used expander card instead of dual LSI).

4 Likes

I have a half dozen Intel and AMD systems with SAS2008- and SAS2308-based cards in pure UEFI mode and they all work great, so that’s not a concern. There’s a dedicated slot for a UEFI-compatible option ROM that enables booting from attached devices and even a handy BIOS menu on some systems. You just have to pass in the correct ROM file(s) when you run sas2flash for legacy or UEFI or both (in addition to the IT or IR firmware binary). Works great.

I would definitely try to get this recognized in Linux on an older Intel system, flash the generic P20 IT firmware (and the UEFI ROM if you intend to boot from it), then it should work fine in your X470 board. Assuming you don’t have any bent CPU pins or other complications.

1 Like

So for the time being, I don’t have any other systems to test it on. I can boot into a live USB of Ubuntu or other distro, but I’m not sure where to even get the proper drivers / BIOS / sas2flash or sas3flash programs to do any of this. I hate to ask, but do you have some guide on how to go about this?

If the card isn’t showing up in lspci I’m doubtful you’ll be able to flash it on that system from any operating system or the EFI shell.

So IpPlugged it into another machine, and lspci does actually see the card registered as Mass storage controller: Broadcom / LSI SAS2308 PCI-Express Fusion-MPT SAS-2 (rev 05). Is there something I should do with drivers / BIOS to get it working? How do I even get those things and related utilities?

That’s great! Now you can flash it. Here are some questions you need to answer:

  1. What’s it currently flashed to? You should be able to run sas2flash -list to see its current status. That will determine your options to re-flash it; you can reference this page for that. Hopefully you can just flash it from Linux, that’s the easiest.
  2. Do you want to run IR (firmware “RAID”) or IT (HBA) mode? Your answer to this question which firmware you need to download and pass in with -f.
  3. Do you want to run with either the legacy option ROM or the UEFI option ROM, or both, or neither?
    • An option ROM is required for booting off an attached drive, and it’s particularly useful in IR mode for defining your topology in a boot menu. Your answer to this question will determine which ROM file(s) you need to download and pass in with -b.
    • If you don’t need any option ROMs you can simply erase both slots and the system will boot faster; I think that’s -e 5.

Here’s the full sas2flash reference manual.

Here’s the sas2flash.efi utility if you have to flash from an EFI shell.

Here’s the firmware package, which should also include both option ROMs and the sas2flash.exe utility for Windows/DOS.

Finally, here’s the Linux utility if you’re able to flash it from Linux. You should also be able to use this to run the sas2flash -list command I mentioned above.

Feel free to paste the output of sas2flash -list and your answers to questions #2 and #3 if you want some additional guidance. Good luck!

Is the PCIe slot electrically x8 and gets 8 lanes from the CPU? The manual states The LSI SAS 9207-8i HBA requires a x8 PCIe slot. - cards should support fewer lanes, but in practice not all do.

According to the X470 Taichi manual, the top two slots should be Gen3 x8/x8 off the CPU with a Cezanne APU socketed.

Yes the X470 Taichi board runs with either the top slot in x16 and 2nd slot not being usable, or both are in x8 modes. I tried changing the related BIOS setting in auto, x16, and x8x8 modes (for x16 I had the HBA in the top slot) and none of those seemed to make any difference. For the time being it’s on x8x8 so I can still use the 10G NIC.

Thanks for all that! Here’s the weird part.
I put the HBA in the other system like I mentioned, but the sas2flash utility claimed there were no compatible LSI SAS adapters connected.
I then tried the tape trick I saw online (taping off PCIe pins B5 and B6 of the HBA), but still nothing.
I put this HBA back into my NAS and booted off a live Ubuntu USB, and the HBA now appears there!
But like with the other system, sas2flash also reports the same error about not finding any LSI SAS adapters.

I’m going to try a FreeDOS live USB and see if that works, but if that fails, does that mean these two cards I bought are busted?

Are the cards branded? You might have to use another tool to erase the existing firmware before sas2flash can see them. I found this thread.

Also, one note, I wrote -list above but I meant -listall.

Neither of the cards are branded aside from the bug LSI logo on the PCB to the right of the heatsink.

That thread you posted seems interesting, and I want to try what they described, but I have no idea how to get into an EFI shell on my machines. I saw the option in my BIOS’ boot menu to select EFI shell from filesystem but it just has a pop-up saying “Not Found”. Any way I can boot into it to use the EFI sas2flash.efi tool? Not really finding any explanations of how to do this online

So tried a few things, and ran into quite a few issues. Here’s the rundown:

  1. Tried to create a USB to boot into an EFI shell. I thought I got it working when the monitor reported that the resolution / refresh rate it was being sent was not supported. I tried a different monitor, and instead of an error the system just would not get into the EFI shell.
  2. Went back to using FreeDOS through Rufus. Found this guide that someone made on fixing up these cards, and they included a link to another forum that had saved many of the older LSI files like the megarec application.
    Followed what the guide said (which is also what most other online sources said to do) which includes these steps:
  • Boot into FreeDOS after copying all of those files over
  • Make sure the HBA is listed when running megarec -adplist
  • Wipe the HBA with megarec -cleanflash 0 (where 0 is the card index, and in my case I only have the one card installed)
  • Press CTRL + ALT + DEL to reboot the system and go right back into FreeDOS
  • run megarec -m0flash 0 2208_16.bin

That last step is where I’m stuck. It starts to program the flash, but then fails with this message:

Currently flashing component = APP
Error in programming image into Flash.
Error code = 64
Failed to flash the image. Please retry recovery

Trying to find any resources on these error codes, just like finding the apps & files in general, is pretty difficult. I’m not sure what to do next to try to fix this.

You need to mask off the SBCLK and SBDAT pins (clock/data for SMBus) to have the card work properly

1 Like

You might have better luck with sas2flash now that the card is wiped.

Already did that, made no difference.

I seem to have finally gotten into an EFI shell. The guide from earlier didn’t work for me, and I ended up coming across this overall guide on doing similar EFI booting / HBA wiping & flashing: How-to: Flash LSI 9211-8i using EFI shell | TrueNAS Community

I used the V1 EFI shell binary from this superuser question (V2 throws an error when you run the sas2flash app): How do I "Boot to UEFI shell"? - Super User

The EFI shell issue could’ve also been the actual USB stick I was using be dumb, since I followed that guide and used a different USB stick for it.

I got into the EFI shell, used sas2flash to wipe the card again, flashed the new firmware bin and rom files, rebooted into TrueNAS and the card is getting detected, and all 8 of the SSD’s are being detected!

Thanks a ton @bambinone and everyone else for helping me figure all of this out!

2 Likes

Amazing! Happy to have helped!