Skip to content

Instantly share code, notes, and snippets.

@mietzen
Last active May 16, 2026 16:16
Show Gist options
  • Select an option

  • Save mietzen/6174d04a560fa0bb35f8e752f4743382 to your computer and use it in GitHub Desktop.

Select an option

Save mietzen/6174d04a560fa0bb35f8e752f4743382 to your computer and use it in GitHub Desktop.
Guide on how to setup ASMedia 1166 Passthrough in Proxmox

Guide: Setting Up ASMedia 1166 on Proxmox

To flash the controller with the correct firmware, you must have access to a Windows machine.

⚠️ Do NOT use version 241224-0000-00!

With this version, starting the VM in Proxmox will hang indefinitely. The VM start command never completes, and you're forced to hard reset the Proxmox host. This is also the version reporting 32 SATA Devices instead of 6.


Firmware

Download and flash this firmware version: 211108-0000-00 (archived version). Other might work as well, but this is the one I'm using.

image

My System:

  • AMD Ryzen Pro 5655G
  • GIGABYTE B550I AORUS PRO AX

Kernel Parameters

If Proxmox is installed using ZFS:

Edit /etc/kernel/cmdline and append the following parameter:

iommu=pt

If installed using LVM/ext4:

Edit /etc/default/grub and add it inside the GRUB_CMDLINE_LINUX line:

GRUB_CMDLINE_LINUX="... iommu=pt"

Check IOMMU Groups

Run the following to list your IOMMU groups:

shopt -s nullglob
for g in $(find /sys/kernel/iommu_groups/* -maxdepth 0 -type d | sort -V); do
  echo "IOMMU Group ${g##*/}:"
  for d in $g/devices/*; do
    echo -e "\t$(lspci -nns ${d##*/})"
  done
done

If your ASMedia 1166 controller shares an IOMMU group with other devices, add this parameter as well:

pcie_acs_override=downstream,multifunction

Add it to /etc/kernel/cmdline or /etc/default/grub, depending on your setup.


Load Required Modules

Edit /etc/modules and add the following lines:

vfio
vfio_iommu_type1
vfio_pci

Blacklist AHCI for ASM1166

Create /etc/modprobe.d/ahci-blacklist.conf with the following content:

options vfio-pci ids=1b21:1166
softdep ahci pre: vfio-pci

Rebuild Initramfs

Run:

update-initramfs -u -k all

Then reboot your system.


Verify the config

After reboot, run:

lspci -nnk | grep -A 3 ASM1166

You should see something like:

03:00.0 SATA controller [0106]: ASMedia Technology Inc. ASM1166 Serial ATA Controller [1b21:1166] (rev 02)
    Subsystem: ZyDAS Technology Corp. ASM1166 Serial ATA Controller [2116:2116]
    Kernel driver in use: vfio-pci
    Kernel modules: ahci

The line Kernel driver in use: vfio-pci confirms that the controller is bound correctly.


Add Device to VM

Now, you can add the ASM1166 controller to your VM under Hardware -> Add -> PCI Device in the Proxmox UI.

@sushrutp
Copy link
Copy Markdown

I have the onboard ASM1166. Has anyone tried flashing the onboard controller?

@Tander
Copy link
Copy Markdown

Tander commented May 14, 2026

I have the onboard ASM1166. Has anyone tried flashing the onboard controller?

Yes. It flashed, but didn't help with my problem (unknown header type 7f in VM). Motherboard is topton n21. Initally I had FW 240625-0000-05, but when I asked seller to send me factory firmware to restore, they sent 250613-0000-00 (tried it too, problem persists)

If @mietzen is interested I can send file to him (github doesn't let me upload archives) to add this version to this page

@sushrutp
Copy link
Copy Markdown

Thanks for the information. Sad to hear it's now working.

@Tander
Copy link
Copy Markdown

Tander commented May 16, 2026

If you're still commited to use ASM1166, modifying kernel should help, like this (but change 1164 to 1166) https://forum.proxmox.com/threads/problems-with-pcie-passthrough-with-two-identical-devices.149003/#post-803149

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment