On Fri, Nov 07, 2025 at 10:49:00AM +1100, Jonathan Gray wrote:
> On Thu, Nov 06, 2025 at 08:38:03AM -0700, Derek wrote:
> > Hi,
> >
> > I'm requesting support for the LSI 9305-16i HBA which uses the SAS3224
> > controller chip (PCI device ID 1000:00c4). This device is currently not
> > recognized by OpenBSD 7.6, 7.7, or 7.8. The dmesg and other info shared
> > here are from an attempted 7.8 install on a new server hardware
> > configuration which uses this HBA, currently preventing install due to the
> > disks not being seen.
> >
> > Hardware Details:
> > - Card: LSI 9305-16i HBA
> > - Controller Chip: SAS3224 (confirmed via PCI device database)
> > - PCI Vendor ID: 1000 (Symbios Logic / LSI / Broadcom)
> > - PCI Device ID: 00c4
> > - PCI Revision: 01
> > - Firmware: 9.00.100.00-IT
> >
> > References confirming device ID 0x00c4 = SAS3224:
> > - PCI Device Database:
> > https://devicehunt.com/view/type/pci/vendor/1000/device/00C4
> > - BSD Hardware Info: https://bsd-hardware.info/?id=pci:1000-00c4-1000-31a0
> > - Broadcom SAS3224 Datasheet: https://docs.broadcom.com/docs/AV00-0319EN
> > - LSI 9305-16i Datasheet:
> > https://www.genuinemodules.com/image/catalog/pdf/1/9305-16i.pdf
> > - Product listing confirming SAS3224:
> > https://www.amazon.ca/9305-16i-16-Port-SAS3224-Controller-Compatible/dp/B0DLYYNL9Z
> >
> > Current Behavior:
> > The device appears in dmesg as:
> > vendor "Symbios Logic", unknown product 0x00c4 (class mass storage
> > subclass SAS, rev 0x01) at pci9 dev 0 function 0 not configured
> >
> > No driver (mpi/mpii/mfii) attempts to attach.
> >
> > Expected Behavior:
> > The SAS3224 is part of the Fusion-MPT SAS-3 family, similar to the
> > already-supported SAS3008 (device ID 0x0097). The Linux mpt3sas driver
> > supports this device. It should work with OpenBSD's mpii(4) driver, which
> > already supports other SAS-3 controllers.
> >
> > This is a standard HBA controller, with initiator target (IT) mode only,
> > used with SATA/SAS drives.
> >
> > Testing:
> > - HBA BIOS recognizes attached drives correctly
> > - Drives spin up and show correct capacity in HBA BIOS
> > - Card works in other operating systems
> > - For comparisons with the attached dmesg file, "sysctl hw.disknames" shows
> > "hw.disknames=sd0:,rd0:da67acb93404a776,sd2:42b5eccb6b25a28f,sd1:", and sd0
> > is a non-HBA disk.
> >
> > Request:
> > Could device ID 0x00c4 (SAS3224) be added to the mpii driver's device
> > table? Since it's part of the same SAS-3 family as the already-supported
> > SAS3008, it likely requires minimal changes.
> >
> > I'm happy to test patches and provide additional information.
>
> Try a kernel with this patch.
>
> If that works we can add 0x00c0 through 0x00c9.
A patch with the others and pcidevs changes:
Index: sys/dev/pci/pcidevs
===================================================================
RCS file: /cvs/src/sys/dev/pci/pcidevs,v
diff -u -p -r1.2115 pcidevs
--- sys/dev/pci/pcidevs 7 Nov 2025 05:06:42 -0000 1.2115
+++ sys/dev/pci/pcidevs 7 Nov 2025 05:24:44 -0000
@@ -9532,6 +9532,16 @@ product SYMBIOS SAS3416 0x00ac SAS3416
product SYMBIOS SAS3508 0x00ad SAS3508
product SYMBIOS SAS3508_1 0x00ae SAS3508
product SYMBIOS SAS3408 0x00af SAS3408
+product SYMBIOS SAS3324_1 0x00c0 SAS3324
+product SYMBIOS SAS3324_2 0x00c1 SAS3324
+product SYMBIOS SAS3324_3 0x00c2 SAS3324
+product SYMBIOS SAS3324_4 0x00c3 SAS3324
+product SYMBIOS SAS3224 0x00c4 SAS3224
+product SYMBIOS SAS3316_1 0x00c5 SAS3316
+product SYMBIOS SAS3316_2 0x00c6 SAS3316
+product SYMBIOS SAS3316_3 0x00c7 SAS3316
+product SYMBIOS SAS3316_4 0x00c8 SAS3316
+product SYMBIOS SAS3216 0x00c9 SAS3216
product SYMBIOS SAS39XX 0x00e1 SAS39XX
product SYMBIOS SAS39XX_1 0x00e2 SAS39XX
product SYMBIOS SAS38XX 0x00e5 SAS38XX
Index: sys/dev/pci/pcidevs.h
===================================================================
RCS file: /cvs/src/sys/dev/pci/pcidevs.h,v
diff -u -p -r1.2108 pcidevs.h
--- sys/dev/pci/pcidevs.h 7 Nov 2025 05:08:32 -0000 1.2108
+++ sys/dev/pci/pcidevs.h 7 Nov 2025 05:24:45 -0000
@@ -9537,6 +9537,16 @@
#define PCI_PRODUCT_SYMBIOS_SAS3508 0x00ad /* SAS3508 */
#define PCI_PRODUCT_SYMBIOS_SAS3508_1 0x00ae /* SAS3508 */
#define PCI_PRODUCT_SYMBIOS_SAS3408 0x00af /* SAS3408 */
+#define PCI_PRODUCT_SYMBIOS_SAS3324_1 0x00c0 /* SAS3324 */
+#define PCI_PRODUCT_SYMBIOS_SAS3324_2 0x00c1 /* SAS3324 */
+#define PCI_PRODUCT_SYMBIOS_SAS3324_3 0x00c2 /* SAS3324 */
+#define PCI_PRODUCT_SYMBIOS_SAS3324_4 0x00c3 /* SAS3324 */
+#define PCI_PRODUCT_SYMBIOS_SAS3224 0x00c4 /* SAS3224 */
+#define PCI_PRODUCT_SYMBIOS_SAS3316_1 0x00c5 /* SAS3316 */
+#define PCI_PRODUCT_SYMBIOS_SAS3316_2 0x00c6 /* SAS3316 */
+#define PCI_PRODUCT_SYMBIOS_SAS3316_3 0x00c7 /* SAS3316 */
+#define PCI_PRODUCT_SYMBIOS_SAS3316_4 0x00c8 /* SAS3316 */
+#define PCI_PRODUCT_SYMBIOS_SAS3216 0x00c9 /* SAS3216 */
#define PCI_PRODUCT_SYMBIOS_SAS39XX 0x00e1 /* SAS39XX */
#define PCI_PRODUCT_SYMBIOS_SAS39XX_1 0x00e2 /* SAS39XX */
#define PCI_PRODUCT_SYMBIOS_SAS38XX 0x00e5 /* SAS38XX */
Index: sys/dev/pci/pcidevs_data.h
===================================================================
RCS file: /cvs/src/sys/dev/pci/pcidevs_data.h,v
diff -u -p -r1.2103 pcidevs_data.h
--- sys/dev/pci/pcidevs_data.h 7 Nov 2025 05:08:32 -0000 1.2103
+++ sys/dev/pci/pcidevs_data.h 7 Nov 2025 05:24:46 -0000
@@ -34384,6 +34384,46 @@ static const struct pci_known_product pc
"SAS3408",
},
{
+ PCI_VENDOR_SYMBIOS, PCI_PRODUCT_SYMBIOS_SAS3324_1,
+ "SAS3324",
+ },
+ {
+ PCI_VENDOR_SYMBIOS, PCI_PRODUCT_SYMBIOS_SAS3324_2,
+ "SAS3324",
+ },
+ {
+ PCI_VENDOR_SYMBIOS, PCI_PRODUCT_SYMBIOS_SAS3324_3,
+ "SAS3324",
+ },
+ {
+ PCI_VENDOR_SYMBIOS, PCI_PRODUCT_SYMBIOS_SAS3324_4,
+ "SAS3324",
+ },
+ {
+ PCI_VENDOR_SYMBIOS, PCI_PRODUCT_SYMBIOS_SAS3224,
+ "SAS3224",
+ },
+ {
+ PCI_VENDOR_SYMBIOS, PCI_PRODUCT_SYMBIOS_SAS3316_1,
+ "SAS3316",
+ },
+ {
+ PCI_VENDOR_SYMBIOS, PCI_PRODUCT_SYMBIOS_SAS3316_2,
+ "SAS3316",
+ },
+ {
+ PCI_VENDOR_SYMBIOS, PCI_PRODUCT_SYMBIOS_SAS3316_3,
+ "SAS3316",
+ },
+ {
+ PCI_VENDOR_SYMBIOS, PCI_PRODUCT_SYMBIOS_SAS3316_4,
+ "SAS3316",
+ },
+ {
+ PCI_VENDOR_SYMBIOS, PCI_PRODUCT_SYMBIOS_SAS3216,
+ "SAS3216",
+ },
+ {
PCI_VENDOR_SYMBIOS, PCI_PRODUCT_SYMBIOS_SAS39XX,
"SAS39XX",
},
Index: sys/dev/pci/mpii.c
===================================================================
RCS file: /cvs/src/sys/dev/pci/mpii.c,v
diff -u -p -r1.148 mpii.c
--- sys/dev/pci/mpii.c 24 May 2024 06:02:58 -0000 1.148
+++ sys/dev/pci/mpii.c 7 Nov 2025 05:24:46 -0000
@@ -404,7 +404,6 @@ mpii_dvatosge(struct mpii_sge *sge, u_in
static const struct pci_matchid mpii_devices[] = {
{ PCI_VENDOR_SYMBIOS, PCI_PRODUCT_SYMBIOS_SAS2004 },
{ PCI_VENDOR_SYMBIOS, PCI_PRODUCT_SYMBIOS_SAS2008 },
- { PCI_VENDOR_SYMBIOS, PCI_PRODUCT_SYMBIOS_SSS6200 },
{ PCI_VENDOR_SYMBIOS, PCI_PRODUCT_SYMBIOS_SAS2108_3 },
{ PCI_VENDOR_SYMBIOS, PCI_PRODUCT_SYMBIOS_SAS2108_4 },
{ PCI_VENDOR_SYMBIOS, PCI_PRODUCT_SYMBIOS_SAS2108_5 },
@@ -425,6 +424,16 @@ static const struct pci_matchid mpii_dev
{ PCI_VENDOR_SYMBIOS, PCI_PRODUCT_SYMBIOS_SAS3108_2 },
{ PCI_VENDOR_SYMBIOS, PCI_PRODUCT_SYMBIOS_SAS3108_3 },
{ PCI_VENDOR_SYMBIOS, PCI_PRODUCT_SYMBIOS_SAS3108_4 },
+ { PCI_VENDOR_SYMBIOS, PCI_PRODUCT_SYMBIOS_SAS3216 },
+ { PCI_VENDOR_SYMBIOS, PCI_PRODUCT_SYMBIOS_SAS3224 },
+ { PCI_VENDOR_SYMBIOS, PCI_PRODUCT_SYMBIOS_SAS3316_1 },
+ { PCI_VENDOR_SYMBIOS, PCI_PRODUCT_SYMBIOS_SAS3316_2 },
+ { PCI_VENDOR_SYMBIOS, PCI_PRODUCT_SYMBIOS_SAS3316_3 },
+ { PCI_VENDOR_SYMBIOS, PCI_PRODUCT_SYMBIOS_SAS3316_4 },
+ { PCI_VENDOR_SYMBIOS, PCI_PRODUCT_SYMBIOS_SAS3324_1 },
+ { PCI_VENDOR_SYMBIOS, PCI_PRODUCT_SYMBIOS_SAS3324_2 },
+ { PCI_VENDOR_SYMBIOS, PCI_PRODUCT_SYMBIOS_SAS3324_3 },
+ { PCI_VENDOR_SYMBIOS, PCI_PRODUCT_SYMBIOS_SAS3324_4 },
{ PCI_VENDOR_SYMBIOS, PCI_PRODUCT_SYMBIOS_SAS3408 },
{ PCI_VENDOR_SYMBIOS, PCI_PRODUCT_SYMBIOS_SAS3416 },
{ PCI_VENDOR_SYMBIOS, PCI_PRODUCT_SYMBIOS_SAS3508 },
@@ -435,6 +444,7 @@ static const struct pci_matchid mpii_dev
{ PCI_VENDOR_SYMBIOS, PCI_PRODUCT_SYMBIOS_SAS38XX_1 },
{ PCI_VENDOR_SYMBIOS, PCI_PRODUCT_SYMBIOS_SAS39XX },
{ PCI_VENDOR_SYMBIOS, PCI_PRODUCT_SYMBIOS_SAS39XX_1 },
+ { PCI_VENDOR_SYMBIOS, PCI_PRODUCT_SYMBIOS_SSS6200 },
};
int