[BUG] AMD Granite Ridge iGPU (1002:13c0) cannot be reinitialized for VFIO after first guest shutdown
Markus Tomm <[email protected]>
| Newsgroups | org.freedesktop.lists.amd-gfx,org.kernel.vger.kvm,org.kernel.vger.linux-pci |
|---|---|
| Message-ID | <[email protected]> |
Hello, I would like to report a reproducible VFIO reset issue affecting the AMD Granite Ridge integrated GPU (PCI ID 1002:13c0). The device can be initialized successfully exactly once after a complete host power cycle. After the guest has been shut down (or rebooted), every subsequent guest start fails until the host itself is rebooted again. This issue has been reproduced multiple times using identical hardware, guest configuration and test procedure. Windows reports: Code 43 (CM_PROB_FAILED_POST_START) A physically connected monitor attached to the iGPU also loses its signal after the first guest shutdown, confirming that the problem is not limited to the Windows driver. ---------------------------------------------------------------------- Hardware ---------------------------------------------------------------------- CPU: AMD Ryzen 9 9950X3D Mainboard: MSI X870E Edge Ti WiFi GPU: AMD Granite Ridge iGPU PCI ID: 1002:13c0 Revision: c9 Audio: 1002:1640 Host OS: Nobara 44 Kernel: 7.1.4-200.nobara.fc44.x86_64 QEMU: 10.2.2 libvirt: 12.0.0 The GPU is bound to vfio-pci during early boot. ---------------------------------------------------------------------- Reproduction ---------------------------------------------------------------------- 1. Completely power off the host. 2. Remove AC power. 3. Boot the host. 4. Start the Windows VM. 5. The GPU initializes correctly. 6. A physical monitor connected to the iGPU displays the guest. 7. Shut down the guest. 8. Start the guest again. 9. Windows immediately reports Code 43. 10. The physical monitor remains black. 11. Reboot the host. 12. Start the guest again. 13. The GPU works again. This behaviour is fully reproducible. The first guest initialization after every host reboot has succeeded reliably in all tests performed. Every second guest initialization has failed without exception. ---------------------------------------------------------------------- Host observations ---------------------------------------------------------------------- The Linux host reports no PCIe, VFIO or IOMMU errors during the transition from the first successful guest start to the second failing guest start. The GPU remains bound to vfio-pci during the complete test. No PCIe AER errors, VFIO errors or kernel warnings are generated. The failure is only observable inside the guest and by the loss of the physical display output. ---------------------------------------------------------------------- Reset capabilities ---------------------------------------------------------------------- GPU: reset_method = bus Writing to /sys/bus/pci/devices/0000:7a:00.0/reset fails with: ENOTTY (Inappropriate ioctl for device) Audio function: reset_method = pm ---------------------------------------------------------------------- Tests already performed ---------------------------------------------------------------------- The following tests have already been completed without changing the behaviour: - vfio-pci.disable_idle_d3=1 - forcing D0 power state - PCI remove/rescan - ReBAR disabled - physical monitor connected before cold boot - guest NVRAM reset - restoring guest from known-good snapshots - multiple complete cold boots - guest XML verification The problem remains identical. ---------------------------------------------------------------------- Expected behaviour ---------------------------------------------------------------------- The iGPU should provide a working reset path allowing it to be reinitialized by VFIO without requiring a host reboot. ---------------------------------------------------------------------- Actual behaviour ---------------------------------------------------------------------- Only a complete host reboot restores the GPU into a usable state. ---------------------------------------------------------------------- Question ---------------------------------------------------------------------- Is Granite Ridge (1002:13c0) currently expected to support VFIO reinitialization? If not, is this a known AGESA / firmware limitation or is support still missing in the Linux PCI reset infrastructure? I have attached: - complete lspci output - PCI topology - IOMMU groups - libvirt domain XML - kernel boot parameters - complete kernel log - filtered kernel log - version information If additional debug information or register dumps are required I would be happy to provide them. Kind regards, Markus
AMD-GraniteRidge-1002-13c0-reset-report.zip
(application/zip, 47.3 KB) - not displayed