Which 9211-8i phase firmware to use for Debian Buster?

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

mattlach

Active Member
Aug 1, 2014
334
91
28
Hey all,

I've had it banged into my head as long as I have used LSI SAS HBA's that you always, always, ALWAYS, match the phase of the firmware of your controller and the phase of the driver you are using.

So, having not messed with my 9211-8i (formerly IBM M1015 crossflashed to IT mode) for a while, I was reinstalling the OS on a server and found firstly that these controllers are now using the mpt3sas kernel module. (Weird, didn't it used to be mpt2sas?) Furthermore, looking at driver info I find the following:

Code:
# modinfo mpt3sas
filename:       /lib/modules/5.0.18-1-pve/kernel/drivers/scsi/mpt3sas/mpt3sas.ko
alias:          mpt2sas
version:        27.101.00.00
license:        GPL
description:    LSI MPT Fusion SAS 3.0 Device Driver
author:         Avago Technologies <MPT-FusionLinux.pdl@avagotech.com>
srcversion:     85070083CCDC35817BC4333
alias:          pci:v00001000d000000E6sv*sd*bc*sc*i*
alias:          pci:v00001000d000000E5sv*sd*bc*sc*i*
alias:          pci:v00001000d000000E2sv*sd*bc*sc*i*
alias:          pci:v00001000d000000E1sv*sd*bc*sc*i*
alias:          pci:v00001000d000000D1sv*sd*bc*sc*i*
alias:          pci:v00001000d000000ACsv*sd*bc*sc*i*
alias:          pci:v00001000d000000ABsv*sd*bc*sc*i*
alias:          pci:v00001000d000000AAsv*sd*bc*sc*i*
alias:          pci:v00001000d000000AFsv*sd*bc*sc*i*
alias:          pci:v00001000d000000AEsv*sd*bc*sc*i*
alias:          pci:v00001000d000000ADsv*sd*bc*sc*i*
alias:          pci:v00001000d000000C3sv*sd*bc*sc*i*
alias:          pci:v00001000d000000C2sv*sd*bc*sc*i*
alias:          pci:v00001000d000000C1sv*sd*bc*sc*i*
alias:          pci:v00001000d000000C0sv*sd*bc*sc*i*
alias:          pci:v00001000d000000C8sv*sd*bc*sc*i*
alias:          pci:v00001000d000000C7sv*sd*bc*sc*i*
alias:          pci:v00001000d000000C6sv*sd*bc*sc*i*
alias:          pci:v00001000d000000C5sv*sd*bc*sc*i*
alias:          pci:v00001000d000000C4sv*sd*bc*sc*i*
alias:          pci:v00001000d000000C9sv*sd*bc*sc*i*
alias:          pci:v00001000d00000095sv*sd*bc*sc*i*
alias:          pci:v00001000d00000094sv*sd*bc*sc*i*
alias:          pci:v00001000d00000091sv*sd*bc*sc*i*
alias:          pci:v00001000d00000090sv*sd*bc*sc*i*
alias:          pci:v00001000d00000097sv*sd*bc*sc*i*
alias:          pci:v00001000d00000096sv*sd*bc*sc*i*
alias:          pci:v00001000d0000007Esv*sd*bc*sc*i*
alias:          pci:v00001000d000002B0sv*sd*bc*sc*i*
alias:          pci:v00001000d0000006Esv*sd*bc*sc*i*
alias:          pci:v00001000d00000087sv*sd*bc*sc*i*
alias:          pci:v00001000d00000086sv*sd*bc*sc*i*
alias:          pci:v00001000d00000085sv*sd*bc*sc*i*
alias:          pci:v00001000d00000084sv*sd*bc*sc*i*
alias:          pci:v00001000d00000083sv*sd*bc*sc*i*
alias:          pci:v00001000d00000082sv*sd*bc*sc*i*
alias:          pci:v00001000d00000081sv*sd*bc*sc*i*
alias:          pci:v00001000d00000080sv*sd*bc*sc*i*
alias:          pci:v00001000d00000065sv*sd*bc*sc*i*
alias:          pci:v00001000d00000064sv*sd*bc*sc*i*
alias:          pci:v00001000d00000077sv*sd*bc*sc*i*
alias:          pci:v00001000d00000076sv*sd*bc*sc*i*
alias:          pci:v00001000d00000074sv*sd*bc*sc*i*
alias:          pci:v00001000d00000072sv*sd*bc*sc*i*
alias:          pci:v00001000d00000070sv*sd*bc*sc*i*
depends:        scsi_transport_sas,raid_class
retpoline:      Y
intree:         Y
name:           mpt3sas
vermagic:       5.0.18-1-pve SMP mod_unload modversions
parm:           logging_level: bits for enabling additional logging info (default=0)
parm:           max_sectors:max sectors, range 64 to 32767  default=32767 (ushort)
parm:           missing_delay: device missing delay , io missing delay (array of int)
parm:           max_lun: max lun, default=16895  (ullong)
parm:           hbas_to_enumerate: 0 - enumerates both SAS 2.0 & SAS 3.0 generation HBAs
           1 - enumerates only SAS 2.0 generation HBAs
           2 - enumerates only SAS 3.0 generation HBAs (default=0) (ushort)
parm:           diag_buffer_enable: post diag buffers (TRACE=1/SNAPSHOT=2/EXTENDED=4/default=0) (int)
parm:           disable_discovery: disable discovery  (int)
parm:           prot_mask: host protection capabilities mask, def=7  (int)
parm:           max_queue_depth: max controller queue depth  (int)
parm:           max_sgl_entries: max sg entries  (int)
parm:           msix_disable: disable msix routed interrupts (default=0) (int)
parm:           smp_affinity_enable:SMP affinity feature enable/disable Default: enable(1) (int)
parm:           max_msix_vectors: max msix vectors (int)
parm:           mpt3sas_fwfault_debug: enable detection of firmware fault and halt firmware - (default=0)

So, it looks like we are on version 27.101.00.00?? Does this mean it is Phase 27, or P27?

Problem. The latest firmware for the 9211-8i on Broadcom's webpage is P20.

Now what? Do I have to somehow force my kernel to downgrade the module, or is this a safe configuration?

Much obliged,
Matt
 

EffrafaxOfWug

Radioactive Member
Feb 12, 2015
1,394
511
113
I've had it banged into my head as long as I have used LSI SAS HBA's that you always, always, ALWAYS, match the phase of the firmware of your controller and the phase of the driver you are using.
Not sure where this idea came from but I don't think it's true; on this hardware at least the firmware and driver aren't tightly coupled like they might be on, say, FusionIO cards.

I'm using buster with two 9211-8i's that are still on P18 without any issue.

As far as I'm aware mpt2sas module was rolled into the mpt3sas module some time ago.
mpt3sas: Single driver module which supports both SAS 2.0 & SAS 3.0 HBAs · torvalds/linux@c84b06a
 
  • Like
Reactions: mattlach

mattlach

Active Member
Aug 1, 2014
334
91
28
Not sure where this idea came from but I don't think it's true; on this hardware at least the firmware and driver aren't tightly coupled like they might be on, say, FusionIO cards.

I'm using buster with two 9211-8i's that are still on P18 without any issue.

As far as I'm aware mpt2sas module was rolled into the mpt3sas module some time ago.
mpt3sas: Single driver module which supports both SAS 2.0 & SAS 3.0 HBAs · torvalds/linux@c84b06a
Effrafax is right. (Love that name by the way)

No need to match the controller firmware with the driver. I usually like to ensure the firmware is up to date, albeit the latest firmware may not be the best. P20 firmware on the SAS2 cards was a good example until LSI fixed it. The mpt2 drivers are now supported under mpt3, so your system is doing the right thing :.)

Nothing for you to do my friend! P20 is unfortunately the last 2nd Gen SAS2 firmware LSI/Avago released before being "absorbed" by Broadcom.

I doubt that "Absorbcom" will release another firmware P21. But hey, you never know ;)

Thank you both.

Where I got this from was during my years of using FreeNAS. They actually took phase mismatch between drivers and firmware so seriously that they would flash a big red warning in the web interface if there was a mismatch, that recommended stopping, dropping, rolling and not doing anything until resolved.

Maybe this mismatch was more serious before than it is now, or maybe it was more serious under BSD than it is under Linux?

Anyway, I haven't used FreeNAS in years, so maybe it isn't even relevant over there anymore.
 

Terry Kennedy

Well-Known Member
Jun 25, 2015
1,142
594
113
New York City
www.glaver.org
No need to match the controller firmware with the driver. I usually like to ensure the firmware is up to date, albeit the latest firmware may not be the best. P20 firmware on the SAS2 cards was a good example until LSI fixed it. The mpt2 drivers are now supported under mpt3, so your system is doing the right thing :.)
This was more important when the first cards of a generation come out, as features get added to the firmware. A newer driver may request firmware functions that are not implemented, or where the implementation has bugs. Generally, newer firmware and an older driver worked, though using a newer driver might improve performance slightly.

Now that SAS is a mature product, LSI has worked to create drivers that operate with multiple generations of cards, implying that the firmware API is mostly-unchanged on the newer-generation cards.
I doubt that "Absorbcom" will release another firmware P21. But hey, you never know ;)
Not going to happen. P20 was supposed to be the capstone of the SAS2 generation, but almost became the tombstone. It was re-worked multiple times until 20.00.07.00. 20.00.04.00 and later were generally reliable but still had some corner cases. Versions older than 20.00.04.00 were a complete bloodbath.