Title: HPE H241 + NetApp DS212C (IOM12 fw 0300) — shelf enumerates, zero drives visible, masked Enclosure + overrun condition in dmesg

TL;DR: H241 in HBA mode sees the NetApp DS212C shelf’s IOM12, SES processor, expander, fans, temps, and PSU — all healthy. But zero drives enumerate to either ssacli (controller firmware level) or Linux. Two different known-good SATA drives tested. Before I give up and swap for an LSI 9300-8e, is anyone running this exact combo successfully, and if so, what firmware version is your IOM12 on?


Setup

  • Host: Dell PowerEdge R630, ESXi

  • VM: TrueNAS SCALE 25.04.2.6 (Debian 12 / kernel 6.12.15)

  • HBA: HPE H241, FW 7.00, HBA mode enabled, PCIe passthrough to TrueNAS VM

  • Shelf: NetApp DS212C with dual IOM12 modules (FW 0300), dual PSU

  • Cable: HPE-branded SFF-8644 → SFF-8644, 1m, managed cable, recognized by H241 (PN 00Y8350)

  • Cabling: H241 Port 2E → IOM A Port 1 (verified correct per NetApp “Install and cable DS212C” doc — Port 1/2 = host-in, Port 3/4 = daisy-chain)

  • Drives tested:

    • Random WD SATA drive (provided by a NetApp admin who confirmed it works in their setup)

    • Seagate IronWolf 4TB ST4000VN008 (pulled from a working ZFS pool on another NAS, confirmed healthy)


What works

  • H241 reports HBA Mode Enabled: True, Controller Mode: HBA, firmware 7.00

  • SAS link negotiates, managed cable detected

  • ssacli ctrl slot=0 enclosure all show detail reports the shelf, SES, expander, fans/temps/PSU all OK

  • Shelf front panel shows green, ID 14, amber only due to partial population (confirmed non-fault)

What doesn’t

  • ssacli ctrl slot=0 pd all showError: The specified controller does not have any physical drives on it.

  • lsscsi → only H241 storage enclosure itself, no drives

  • /sys/class/sas_expander/ is empty

  • /sys/class/sas_end_device/ contains only end_device-1:1 (the HBA’s own port endpoint)


dmesg evidence

Repeats every few minutes regardless of drive insertion:

hpsa 0000:0b:00.0: overrun condition: LUN:000000c000800001 CDB:12010000040000000000000000000000
hpsa 0000:0b:00.0: scsi 1:0:1:0: masked Enclosure NETAPP DS21212IOM12A enclosure SSDSmartPathCap- En- Exp=0

Decoded:

  • CDB 12 01 00 00 04 = SCSI INQUIRY VPD Page 0x00 (“supported VPD pages”) against the enclosure’s SES device (LUN c000800001)

  • NetApp SES returns more data than hpsa’s buffer expects → driver logs overrun

  • Driver masks the enclosure and flags En- (enclosure services disabled) and Exp=0 (expander exposure disabled)

  • ssacli also reports Physical Drives: None attached, meaning the H241 firmware itself is hiding the enclosure, not just hpsa


Full ssacli ctrl slot=0 show config detail output (trimmed)

Smart HBA H241 in Slot 0 (Embedded)
   Firmware Version: 7.00
   HBA Mode Enabled: True
   Controller Mode: HBA

   DS21212IOM12A at Port 2E, Box 1, OK
      Fan Status: OK
      Temperature Status: OK
      Power Supply Status: Redundant
      Vendor ID: NETAPP
      Firmware Version: 0300

   Expander 378
      Firmware Version: 0300
      WWID: 500A098008118D89
      Vendor ID: NETAPP

   Enclosure SEP (NETAPP DS21212IOM12A) 0
      Firmware Version: 0300
      WWID: 500A098008118D88
      Model: DS21212IOM12A

   Physical Drives
      None attached

   Port Name: 2E
      SAS Address: 5001438037A02C04
      Port Phy Count: 4
      Managed Cable Connected: True
      Managed Cable Part Number: 00Y8350

Things already ruled out

  • ✗ Controller not in HBA mode → it is, confirmed by ssacli

  • ✗ Wrong cable port on shelf → confirmed correct per official NetApp DS212C cabling doc

  • ✗ Bad cable → managed cable detected and recognized by H241

  • ✗ Dead/bad drive → two drives tested, one known-good from working ZFS pool

  • ✗ Bad bay → tested multiple bays, same result

  • ✗ Shelf in unclean state → full cold power cycle done (both PSUs out 60s), no change

  • smartpqi driver swap → smartpqi doesn’t bind to H241 (wrong generation, Gen9 vs Gen10+)

  • hpsa_allow_any param → removed from hpsa years ago, rejected by current driver

  • ✗ Interposer question → told by NetApp staff that interposers aren’t needed for SATA in DS212C

  • ✗ 520-byte sector formatting → drives tested are 512b (IronWolf from ZFS pool)


My current theory

The H241 firmware’s SES handler doesn’t cleanly parse the IOM12 firmware 0300’s INQUIRY VPD response and defensively masks the enclosure at the firmware level. Everything behind a masked enclosure is invisible to everything above — ssacli, hpsa, Linux, TrueNAS. This isn’t a driver bug, it’s the H241 firmware making a deliberate choice.

Later IOM12 firmware (0281+, 0411) apparently changed SES response formatting. But updating IOM12 firmware requires an ONTAP filer running storage shelf firmware update, which I don’t have access to.


Questions for the community

  1. Anyone actually running H241 + DS212C (IOM12) + SATA drives successfully? If yes, what’s your IOM12 firmware version?

  2. Has anyone found a way to update IOM12 firmware without a running NetApp filer? (Standalone sg_write_buffer recipe, community flasher, anything?)

  3. Any known H241 firmware downgrades that behave differently with NetApp SES devices?

  4. Before I swap for an LSI 9300-8e (~CHF 100), is there any hpsa module parameter, kernel arg, or H241 config knob I’ve missed that could change enclosure masking behavior?

Happy to run more diagnostics if anyone wants specific output.