H330 sas controller failed after upgrading to Kernel 6.17.2-2-pve

tbomb456

Member
Jul 11, 2023
9
0
6
After upgrading the kernel to 6.17.2-2-pve my Dell H330 Sas Controller has errored out and is now unable to pass 4 HDDs to the kernel for a ZFS pool

[ 7.502037] megaraid_sas 0000:41:00.0: Ignore DCMD timeout: megasas_get_ctrl_info 5389
[ 7.502188] megaraid_sas 0000:41:00.0: Could not get controller info. Fail from megasas_init_adapter_fusion 1907
[ 7.504125] megaraid_sas 0000:41:00.0: Failed from megasas_init_fw 6553

so far I have added intel_iommu=on, iommu=pt and megaraid_sas.smp_affinity_enable=0 to grub and tried to roll back to the 6.14.11-4-pve Kernel but when i rolled back i encountered many other errors that were ceph Mon related.

I cant find anything else about this issue that is related to this kernel

modinfo megaraid_sas
filename: /lib/modules/6.17.2-2-pve/kernel/drivers/scsi/megaraid/megaraid_sas.ko
description: Broadcom MegaRAID SAS Driver
author: megaraidlinux.pdl@broadcom.com
version: 07.734.00.00-rc1

also found this in dmesg

[ 2.213768] DMAR: DRHD: handling fault status reg 2
[ 2.213985] DMAR: [DMA Read NO_PASID] Request device [41:00.0] fault addr 0xb5840000 [fault reason 0x06] PTE Read access is not set
 
Last edited:
Read this post:

"I think it's related to the fact that this card can work in both RAID and NON-RAID (Passthrough) modes. When IOMMU is enabled it doesn't see your raid configurations and produces this error."

Try replacing the boot kernel parameter ‘intel_iommu=on’ with ‘intel_iommu=pt’ “to set up pass through (PT) mode in context mapping entry”. DMAR is then disabled in the GNU/Linux kernel
 
Last edited:
It's these one-off situations with the megaraid_sas driver and just installing a Dell HBA330 using the much simpler mpt3sas driver will avoid all this drama. LOL.

In addition, the Dell HBA330 is very cheap to get.
 
Read this post:

"I think it's related to the fact that this card can work in both RAID and NON-RAID (Passthrough) modes. When IOMMU is enabled it doesn't see your raid configurations and produces this error."

Try replacing the boot kernel parameter ‘intel_iommu=on’ with ‘intel_iommu=pt’ “to set up pass through (PT) mode in context mapping entry”. DMAR is then disabled in the GNU/Linux kernel
After editing grub to have intel_iommu=pt, i am still having this issue

[ 7.458995] megaraid_sas 0000:41:00.0: Ignore DCMD timeout: megasas_get_ctrl_info 5389
[ 7.459264] megaraid_sas 0000:41:00.0: Could not get controller info. Fail from megasas_init_adapter_fusion 1907
[ 7.461268] megaraid_sas 0000:41:00.0: Failed from megasas_init_fw 6553
 
After some long hrs looking into this with ChatGPT this is the conclusion that we have come up with for this issue. As such i will be looking into buying an LSI controller in IT mode to replace the H330. Please note, this is a summary that GPT generated and is not entirely comprehensive of everything that i did on the system.

1️⃣ System and Hardware

  • Server: Dell with H330 PERC controller
  • RAID card in question: PERC H330 / LSI SAS-3008 [Fury]
  • OS: Proxmox 9 (Debian “Trixie” base)
  • Kernel: Initially on 6.17.4-2-pve → tried 6.14.11-5-pve → considering 6.8
  • Drives: 4 drives currently connected to the H330, in ZFS individually
  • Other controllers: LSI SAS2008 present



2️⃣ Troubleshooting steps performed

  1. PercCLI installation
    • Installed perccli64 manually from Dell RPM.
    • Required symlinks for libncurses.so.5, otherwise the binary wouldn’t run.
    • Verified PercCLI shows 0 controllers (H330 not detected).
  2. Kernel and module checks
    • lsmod | grep megaraid → empty
    • modprobe megaraid_sas → no output, but module should have loaded
    • dmesg errors on H330:
  • <span><span><span>megaraid_sas 0000:41:00.0: megasas_init_fw:</span></span><span> </span><span><span>megasas_get_device_list</span></span><span> </span><span><span>failed</span></span><span><br></span><span><span>megaraid_sas 0000:41:00.0:</span></span><span> </span><span><span>failed</span></span><span> </span><span><span>from</span></span><span> </span><span><span>megasas_init_fw</span></span><span> </span><span><span>5663</span></span><span><br></span></span>
  • Indicates firmware initialization failure — hardware is recognized on PCI bus but driver cannot initialize card.
  • Device inspection
    • lspci -nnk -s 41:00.0 shows Kernel modules: megaraid_sas → kernel module available but fails to bind.
    • lsblk and lsscsi -t show SAS disks detected individually, meaning the backplane is fine, but controller is not active for RAID management.
  • Kernel testing
    • Problem started after recent kernel updates (likely 6.17 series).
    • Tried rolling back to 6.14.11-5 → still fails.
    • Attempted older kernel 6.8 → installed but no GRUB option to boot it, so unable to test.
    • Conclusion: driver incompatibility introduced between kernel 6.14 → 6.17.
  • BIOS/POST
    • BIOS 2.9.0 (latest), POST shows controller detected.
    • No “Option ROM” setting present — means H330 firmware does not expose legacy BIOS interface in this system.
    • DMAR/IOMMU errors seen:
    • <span><span>DMAR: DMA </span><span><span>write</span></span><span> no_pasid REquest device [</span><span><span>41</span></span><span>:</span><span><span>00.1</span></span><span>] fault addr PTE </span><span><span>Write</span></span><span> </span><span><span>access</span></span><span> </span><span><span>is</span></span><span> </span><span><span>not</span></span><span> </span><span><span>set</span></span><span><br></span></span>
      → IOMMU may block initialization in modern kernels.



3️⃣ Reason the H330 is not working


Hardware is detected on PCI bus, but driver fails to initialize it. Causes include:
  1. Kernel incompatibility
    • megaraid_sas module in 6.14+ kernels is failing to load firmware for Fury (3008) chip.
    • dmesg error megasas_get_device_list failed → driver cannot enumerate controller.
  2. IOMMU/DMAR conflict
    • Errors indicate DMA mapping blocked, possibly due to recent kernel enforcing no PASID support for DMA on this device.
    • This can prevent controller firmware from initializing.
  3. Option ROM / BIOS setting missing
    • Some PERC H330 firmware requires Option ROM initialization for full functionality.
    • Dell BIOS 2.9.0 does not expose this, possibly leaving the card in a state modern kernels cannot handle.
  4. No fallback path
    • PercCLI sees 0 controllers → cannot manage RAID.
    • The kernel cannot bind megaraid_sas successfully.
    • Rolling back kernel is blocked by GRUB config (older 6.8 not selectable).



4️⃣ Why the problem persists


  • Combination of factors:
    1. Kernel ≥ 6.14 has changes in megaraid_sas module that break 3008/Fury initialization.
    2. IOMMU errors (DMA write no_pasid) prevent firmware from loading.
    3. BIOS does not allow enabling Option ROM (some firmware initialization steps skipped).
  • Result: Kernel sees PCI device but controller cannot initialize, RAID cannot be managed, PercCLI shows 0 controllers.
  • Disks themselves still visible (ZFS sees them individually) because SAS lanes are direct to disks — the controller works in “passthrough” mode but RAID functionality is dead.



✅


The PERC H330 controller is recognized by the PCI bus, but the megaraid_sas driver cannot initialize its firmware due to kernel incompatibility and IOMMU restrictions. BIOS lacks an Option ROM setting to fallback to legacy initialization. This is why PercCLI shows no controllers and RAID management is unavailable, even though the raw disks are still accessible by ZFS. Rolling back the kernel or using a different supported controller is the only way to restore RAID functionality.
 
After some long hrs looking into this with ChatGPT this is the conclusion that we have come up with for this issue. As such i will be looking into buying an LSI controller in IT mode to replace the H330. Please note, this is a summary that GPT generated and is not entirely comprehensive of everything that i did on the system.

1️⃣ System and Hardware

  • Server: Dell with H330 PERC controller
  • RAID card in question: PERC H330 / LSI SAS-3008 [Fury]
  • OS: Proxmox 9 (Debian “Trixie” base)
  • Kernel: Initially on 6.17.4-2-pve → tried 6.14.11-5-pve → considering 6.8
  • Drives: 4 drives currently connected to the H330, in ZFS individually
  • Other controllers: LSI SAS2008 present



2️⃣ Troubleshooting steps performed

  1. PercCLI installation
    • Installed perccli64 manually from Dell RPM.
    • Required symlinks for libncurses.so.5, otherwise the binary wouldn’t run.
    • Verified PercCLI shows 0 controllers (H330 not detected).
  2. Kernel and module checks
    • lsmod | grep megaraid → empty
    • modprobe megaraid_sas → no output, but module should have loaded
    • dmesg errors on H330:
  • <span><span><span>megaraid_sas 0000:41:00.0: megasas_init_fw:</span></span><span> </span><span><span>megasas_get_device_list</span></span><span> </span><span><span>failed</span></span><span><br></span><span><span>megaraid_sas 0000:41:00.0:</span></span><span> </span><span><span>failed</span></span><span> </span><span><span>from</span></span><span> </span><span><span>megasas_init_fw</span></span><span> </span><span><span>5663</span></span><span><br></span></span>
  • Indicates firmware initialization failure — hardware is recognized on PCI bus but driver cannot initialize card.
  • Device inspection
    • lspci -nnk -s 41:00.0 shows Kernel modules: megaraid_sas → kernel module available but fails to bind.
    • lsblk and lsscsi -t show SAS disks detected individually, meaning the backplane is fine, but controller is not active for RAID management.
  • Kernel testing
    • Problem started after recent kernel updates (likely 6.17 series).
    • Tried rolling back to 6.14.11-5 → still fails.
    • Attempted older kernel 6.8 → installed but no GRUB option to boot it, so unable to test.
    • Conclusion: driver incompatibility introduced between kernel 6.14 → 6.17.
  • BIOS/POST
    • BIOS 2.9.0 (latest), POST shows controller detected.
    • No “Option ROM” setting present — means H330 firmware does not expose legacy BIOS interface in this system.
    • DMAR/IOMMU errors seen:
    • <span><span>DMAR: DMA </span><span><span>write</span></span><span> no_pasid REquest device [</span><span><span>41</span></span><span>:</span><span><span>00.1</span></span><span>] fault addr PTE </span><span><span>Write</span></span><span> </span><span><span>access</span></span><span> </span><span><span>is</span></span><span> </span><span><span>not</span></span><span> </span><span><span>set</span></span><span><br></span></span>
      → IOMMU may block initialization in modern kernels.



3️⃣ Reason the H330 is not working


Hardware is detected on PCI bus, but driver fails to initialize it. Causes include:
  1. Kernel incompatibility
    • megaraid_sas module in 6.14+ kernels is failing to load firmware for Fury (3008) chip.
    • dmesg error megasas_get_device_list failed → driver cannot enumerate controller.
  2. IOMMU/DMAR conflict
    • Errors indicate DMA mapping blocked, possibly due to recent kernel enforcing no PASID support for DMA on this device.
    • This can prevent controller firmware from initializing.
  3. Option ROM / BIOS setting missing
    • Some PERC H330 firmware requires Option ROM initialization for full functionality.
    • Dell BIOS 2.9.0 does not expose this, possibly leaving the card in a state modern kernels cannot handle.
  4. No fallback path
    • PercCLI sees 0 controllers → cannot manage RAID.
    • The kernel cannot bind megaraid_sas successfully.
    • Rolling back kernel is blocked by GRUB config (older 6.8 not selectable).



4️⃣ Why the problem persists


  • Combination of factors:
    1. Kernel ≥ 6.14 has changes in megaraid_sas module that break 3008/Fury initialization.
    2. IOMMU errors (DMA write no_pasid) prevent firmware from loading.
    3. BIOS does not allow enabling Option ROM (some firmware initialization steps skipped).
  • Result: Kernel sees PCI device but controller cannot initialize, RAID cannot be managed, PercCLI shows 0 controllers.
  • Disks themselves still visible (ZFS sees them individually) because SAS lanes are direct to disks — the controller works in “passthrough” mode but RAID functionality is dead.



✅


Better off with a Dell HBA330. It's a LSI 3008 IT-mode controller chip anyhow. Just make sure to update the firmware to lastest version at dell.com/support
 
Just upgraded a Dell R740XD w/ PERC H330, HBA330 Mini and 2 LSI 9300-8e to PVE 9 and it seems to be ok.
All disks and controllers are showing up in storcli64, and perccli64 (perccli only shows dell cards).

Code:
root@p03:~# pveversion
pve-manager/9.1.4/5ac30304265fbd8e (running kernel: 6.17.4-2-pve)

root@p03:~# cat /etc/kernel/cmdline
root=ZFS=rpool/ROOT/pve-1 boot=zfs intel_iommu=on iommu=pt delayacct

root@p03:~# cat /etc/modules-load.d/modules.conf
vfio
vfio_iommu_type1
vfio_pci

root@p03:~# perccli64 show
CLI Version = 007.1623.0000.0000 May 17, 2021
Operating system = Linux 6.17.4-2-pve
Status Code = 0
Status = Success
Description = None

Number of Controllers = 2
Host Name = p03
Operating System  = Linux 6.17.4-2-pve
StoreLib IT Version = 07.1700.0200.0500
StoreLib IR3 Version = 16.14-0

System Overview :
===============
---------------------------------------------------------------------------
Ctl Model           Ports PDs DGs DNOpt VDs VNOpt BBU sPR DS EHS ASOs Hlth
---------------------------------------------------------------------------
  0 PERCH330Adapter     8   2   0     0   0     0 N/A On  3  N      0 Opt
---------------------------------------------------------------------------

IT System Overview :
==================
-------------------------------------------------------------------------------
Ctl Model            AdapterType   VendId DevId SubVendId SubDevId PCI Address
-------------------------------------------------------------------------------
  1 Dell HBA330 Mini   SAS3008(C0) 0x1000  0x97    0x1028   0x1F53 00:3b:00:00
-------------------------------------------------------------------------------

root@p03:~# perccli64 /c0 show
CLI Version = 007.1623.0000.0000 May 17, 2021
Operating system = Linux 6.17.4-2-pve
Controller = 0
Status = Success
Description = None

Product Name = PERC H330 Adapter
SAS Address =  52cea7f080a79e00
PCI Address = 00:af:00:00
FW Package Build = 25.5.9.0001
BIOS Version = 6.33.01.0_4.19.08.00_0x06120304
FW Version = 4.300.01-8369
Driver Name = megaraid_sas
Driver Version = 07.734.00.00-rc1
Current Personality = HBA-Mode
Vendor Id = 0x1000
Device Id = 0x5F
SubVendor Id = 0x1028
SubDevice Id = 0x1F44
Host Interface = PCI-E
Device Interface = SAS-12G
Bus Number = 175
Device Number = 0
Function Number = 0
Domain ID = 0
Security Protocol = None
JBOD Drives = 2

root@p03:~# perccli64 /c1 show
CLI Version = 007.1623.0000.0000 May 17, 2021
Operating system = Linux 6.17.4-2-pve
Controller = 1
Status = Success
Description = None

Product Name = Dell HBA330 Mini
SAS Address =  52cea7f07a402a00
PCI Address = 00:3b:00:00
FW Package Build = 16.17.01.00
FW Version = 16.00.11.00
BIOS Version = 08.37.02.00_18.00.03.00
NVDATA Version = 14.01.00.57
Driver Name = mpt3sas
Driver Version = 52.100.00.00
Bus Number = 59
Device Number = 0
Function Number = 0
Domain ID = 0
Vendor Id = 0x1000
Device Id = 0x97
SubVendor Id = 0x1028
SubDevice Id = 0x1F53
Board Name = Dell HBA330 Mini
Board Assembly = N/A
Board Tracer Number = N/A
Security Protocol = None
Physical Drives = 3

----

root@p03:~# storcli64 show
CLI Version = 007.2307.0000.0000 July 22, 2022
Operating system = Linux 6.17.4-2-pve
Status Code = 0
Status = Success
Description = None

Number of Controllers = 4
Host Name = p03
Operating System  = Linux 6.17.4-2-pve
StoreLib IT Version = 07.2400.0200.0000
StoreLib IR3 Version = 16.14-0

System Overview :
===============

---------------------------------------------------------------------------
Ctl Model           Ports PDs DGs DNOpt VDs VNOpt BBU sPR DS EHS ASOs Hlth
---------------------------------------------------------------------------
  0 PERCH330Adapter     8   2   0     0   0     0 N/A On  3  N      0 Opt
---------------------------------------------------------------------------

IT System Overview :
==================

-------------------------------------------------------------------------------
Ctl Model            AdapterType   VendId DevId SubVendId SubDevId PCI Address
-------------------------------------------------------------------------------
  1 Dell HBA330 Mini   SAS3008(C0) 0x1000  0x97    0x1028   0x1F53 00:3b:00:00
  2 SAS9300-8e         SAS3008(C0) 0x1000  0x97    0x1000   0x30A0 00:5e:00:00
  3 SAS9300-8e         SAS3008(C0) 0x1000  0x97    0x1000   0x30A0 00:5f:00:00
-------------------------------------------------------------------------------

root@p03:~# storcli64 /c0 show
[...]
Product Name = PERC H330 Adapter
PCI Address = 00:af:00:00
FW Package Build = 25.5.9.0001
BIOS Version = 6.33.01.0_4.19.08.00_0x06120304
FW Version = 4.300.01-8369
Driver Name = megaraid_sas
Driver Version = 07.734.00.00-rc1
Current Personality = HBA-Mode
Vendor Id = 0x1000
Device Id = 0x5F
SubVendor Id = 0x1028
SubDevice Id = 0x1F44
Host Interface = PCI-E
Device Interface = SAS-12G
Bus Number = 175
Device Number = 0
Function Number = 0
Domain ID = 0
Security Protocol = None
JBOD Drives = 2

root@p03:~# storcli64 /c1 show
Product Name = Dell HBA330 Mini
PCI Address = 00:3b:00:00
FW Package Build = 16.17.01.00
FW Version = 16.00.11.00
BIOS Version = 08.37.02.00_18.00.03.00
NVDATA Version = 14.01.00.57
Driver Name = mpt3sas
Driver Version = 52.100.00.00
Bus Number = 59
Device Number = 0
Function Number = 0
Domain ID = 0
Vendor Id = 0x1000
Device Id = 0x97
SubVendor Id = 0x1028
SubDevice Id = 0x1F53
Board Name = Dell HBA330 Mini
Board Assembly = N/A
Board Tracer Number = N/A
Security Protocol = None
Physical Drives = 3

root@p03:~# storcli64 /c2 show
Product Name = SAS9300-8e
PCI Address = 00:5e:00:00
FW Package Build = 00.00.00.00
FW Version = 16.00.10.00
BIOS Version = 08.37.00.00_18.00.00.00
NVDATA Version = 14.01.00.08
Driver Name = mpt3sas
Driver Version = 52.100.00.00
Bus Number = 94
Device Number = 0
Function Number = 0
Domain ID = 0
Vendor Id = 0x1000
Device Id = 0x97
SubVendor Id = 0x1000
SubDevice Id = 0x30A0
Board Name = SAS9300-8e
Board Assembly = N/A
Board Tracer Number = N/A
Security Protocol = None
Physical Drives = 23
 
Upgraded an Dell R740 with a PERC H740p and had no issues recognizing both the card or drives:

Code:
root@p01:~# perccli64 /c0 show
CLI Version = 007.1623.0000.0000 May 17, 2021
Operating system = Linux 6.17.4-2-pve
Controller = 0
Status = Success
Description = None

Product Name = PERC H740P Adapter
SAS Address =  5d09466014f1d700
PCI Address = 00:18:00:00
System Time = 01/31/2026 22:06:28
Mfg. Date = 09/02/17
Controller Time = 02/01/2026 22:06:27
FW Package Build = 51.16.0-5150
BIOS Version = 7.16.00.0_0x07100501
FW Version = 5.160.00-3936
Driver Name = megaraid_sas
Driver Version = 07.734.00.00-rc1
Current Personality = RAID-Mode
Vendor Id = 0x1000
Device Id = 0x16
SubVendor Id = 0x1028
SubDevice Id = 0x1FCB
Host Interface = PCI-E
Device Interface = SAS-12G
Bus Number = 24
Device Number = 0
Function Number = 0
Domain ID = 0
Security Protocol = None
Drive Groups = 3