REPLACE

Summary:

Introduction

Introduction goes here

$ journalctl -k -b 0 | grep "iommu" | grep "group"
 Jan 25 21:04:37 fedora kernel: pci 0000:c4:00.5: Adding to iommu group 0
 ..
 Jan 25 21:04:37 fedora kernel: pci 0000:c4:00.5: Adding to iommu group 21

SHould be in a group by itelf

  for g in /sys/kernel/iommu_groups/*; do 
    echo "IOMMU Group ${g##*/}:"
    for d in $g/devices/*; do 
        echo -e "\t$(lspci -nns ${d##*/})"
    done
done

Result:

IOMMU Group 15: 03:00.0 Network controller [0280]: MEDIATEK Corp. MT7902 802.11ax PCIe Wireless Network Adapter [Filogic 310] [14c3:7902]

The "Reset" check

Since you are doing kernel development on real hardware, you should check if your specific PCI device supports Function Level Reset (FLR). This allows QEMU to reset the hardware back to a clean state when the VM restarts.

Run this (replace 01:00.0 with your device's ID):

Bash

sudo lspci -vv -s 03:00.0 | grep -i "Capabilities: \[.*\] Express" -A 15 | grep -i "FLR" ExtTag+ AttnBtn- AttnInd- PwrInd- RBE+ FLReset+ SlotPowerLimit 75W TEE-IO- RlxdOrd+ ExtTag+ PhantFunc- AuxPwr- NoSnoop+ FLReset-

Conclusion

Wrap it up here.

Resources: