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