XCP-ng
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Groups
    • Register
    • Login

    PCIe Passthrough of Radeon iGPU fails

    Scheduled Pinned Locked Moved Hardware
    8 Posts 4 Posters 908 Views 4 Watching
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • M Offline
      mgr42
      last edited by

      So I have a Ryzen 9 7900 and a functioning XCP-ng 8.3 installation and I can hide the iGPU correctly, however, passing it through fails. A Github issue here: https://github.com/gangqizai/igd/issues/24 provides some interesting information. Iit seems that the OpROM for integrated graphics is stored and loaded in firmware rather than anything directly handleable by Xen. At the very least, is there any way to make the emulated graphics less choppy? I used virtual-machine-manager and I know not of if the graphics emulation was really good on CPU or if it used acceleration from the iGPU that I have, but it was able to run Windows 10 with good graphics

      poddingueP 1 Reply Last reply Reply Quote 0
      • poddingueP Online
        poddingue Vates 🪐 @mgr42
        last edited by

        I'm not deep into GPU passthrough myself, but played a lot with it lately. especially iGPU!
        From what I've read (and experienced) iGPU passthrough is one of the harder cases.
        An integrated GPU keeps its option ROM in the motherboard firmware rather than on the card, which is roughly what that GitHub issue you linked describes. XCP-ng documents the general PCI and GPU passthrough path at https://docs.xcp-ng.org/compute#-gpu-passthrough, though I don't think it promises that integrated GPUs specifically will work.
        On the choppy emulated graphics, the default virtual display isn't accelerated as far as I know, so that's expected rather than a regression.
        This is really a hardware and compute-layer question, so it might be worth a mention to @Team-Hypervisor-Kernel to see whether anyone has managed to pass a Ryzen iGPU through at all.

        M 1 Reply Last reply Reply Quote 0
        • M Offline
          mgr42 @poddingue
          last edited by

          @poddingue Yeah, that does make sense. I understand that this wouldn't necessarily be an intended usecase. I'll probably just get a cheap consumer GPU. And apologies for if this question is painfully obvious, but how would I mention @Team-Hypervisor-Kernel?
          But if I can hypothesize, firmware is usually accessible via sysfs, there's an Archlinux guide here: https://wiki.archlinux.org/title/Unified_Extensible_Firmware_Interface/Secure_Boot#Determine_OpROM_signature for determining OpROM signatures, which includes getting it as a file, so maybe that could be loaded in someway, but I know not of the feasibility of that.

          poddingueP 1 Reply Last reply Reply Quote 1
          • poddingueP Online
            poddingue Vates 🪐 @mgr42
            last edited by

            You just did mention the team. 😉
            The mention itself is easy: just type @ and start typing Team-Hypervisor-Kernel, and the forum should autocomplete it into a real group mention.

            On the OpROM idea, you might be onto something. That Arch guide does extract the option ROM to a file, and I know some passthrough setups feed a ROM file to the device, but I honestly don't know whether XCP-ng or Xen exposes a way to supply one for an iGPU. That's the kind of thing the hypervisor team would know, so it's worth asking them (and they've already been pinged twice or more times, so...). Getting a cheap discrete GPU is probably the path of least resistance though, for what it's worth.

            1 Reply Last reply Reply Quote 0
            • Y Online
              yannsionneau Vates 🪐 XCP-ng Team
              last edited by

              Hello @mgr42
              I can confirm that indeed today AMD iGPU passthrough is not working on XCP-ng.
              I am currently (slowly) working on it.

              There are other references about this topic in the Forum and on GitHub FYI:

              • https://xcp-ng.org/forum/topic/11918/amd-barcelo-passthrough-issues-any-success-stories
              • https://xcp-ng.org/forum/topic/8909/issue-to-load-gpu-passthrough-invalid-pci-rom-header-signature-expecting-0xaa55-got-0x4556
              • https://github.com/xcp-ng/xcp/issues/806
              • https://github.com/xapi-project/xen-api/commit/930ffb34e42d674b8234c3d8399fdba97efa6b38

              On the setup I am working on, the Expansion ROM is provided indeed by firmware via the VFCT ACPI table.
              I dumped it to a file and provided it to qemu-dm xen-pci-passthrough device via the romfile= argument (via a modified XAPI build).

              I can now indeed see a ROM bar in the guest but unfortunately its content is not the content of the file therefore nothing works (amdgpu driver is unable to get its ROM and fails).

              So now I'm debugging qemu to try to understand the issue with the emulated/passed-through ROM BAR.

              Regards,

              Yann
              Kernel & Hypervisor team

              S 1 Reply Last reply Reply Quote 1
              • S Offline
                steff22 @yannsionneau
                last edited by steff22

                @yannsionneau I also can't get Radeon iGPU to work either with xcp-ng 8.3

                with hardware
                hvovedkort B650D4U3-2L2Q/BCM,)
                cpu AMD Ryzen 9 9950X

                tried on ubuntu 25.04 and windows 10

                get this error message

                lspci -nnk
                dmesg | grep amdgpu
                
                amdgpu: Invalid PCI ROM header signature: expecting 0xaa55, got 0x4556
                amdgpu: Unable to locate a BIOS ROM
                amdgpu: Fatal error during GPU init
                Unable to locate a BIOS ROM
                
                poddingueP 1 Reply Last reply Reply Quote 1
                • poddingueP Online
                  poddingue Vates 🪐 @steff22
                  last edited by

                  steff22, the answer you want is one post above yours. 😉
                  Yann confirmed at post #4 that AMD iGPU passthrough doesn't work on XCP-ng today and that he's working on it, so your Invalid PCI ROM header signature looks like the known symptom rather than something specific to your board.
                  He also linked https://xcp-ng.org/forum/topic/8909 , same error string, if you want the longer history. I don't know enough about the ROM BAR side to add anything useful to what he wrote, and I'd rather not guess in front of him. 😊
                  Worth following this thread, he said he'd keep at it.

                  S 1 Reply Last reply Reply Quote 0
                  • S Offline
                    steff22 @poddingue
                    last edited by

                    @poddingue yeah I saw it now 🙂 but I was more like mentioning that many people also have the same problem.

                    Hope it gets resolved soon 🙂

                    1 Reply Last reply Reply Quote 1

                    Hello! It looks like you're interested in this conversation, but you don't have an account yet.

                    Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.

                    With your input, this post could be even better 💗

                    Register Login
                    • First post
                      Last post