Hey Folks,
I've been smacking my head against the wall for 2 weeks. I can't smack it anymore. There's not much brain left at this point. Here's my issue:
I have a Broadwell system with HD Video/Audio support. When Windows 10 runs native (without a Hypervisor), Windows correctly finds the DisplayPort adapter and correctly probes whatever it is that it needs to probe to determine that the adapter in question supports both audio and video output. When Windows 10 is executed as a guest on top of a Hypervisor, it correctly finds both the video device @ 0/2/0 and the audio device @ 0/3/0 but it is unable to detect that the DisplayPort supports audio.
I can confirm that both the Intel drivers for video and audio correctly attach and seem to be running perfectly inside the guest VM. All of the PCI BARs associated with both devices are correctly being mapped to the Windows 10 guest. It is my guess that Windows is looking at something other than the EDID extracted from the attached monitor or the MMIO BAR for the PCI audio or video devices to determine that audio is supported by the attached hardware. Indeed, if I probe the EDID information from the guest, I see that the attached monitor supports audio.
My question is this: Is there something else other than the PCI BARs associated with the onboard HD graphics and HD audio devices that are required for a Windows or a Linux guest to detect the physical presence of audio hardware associated with an attached monitor via HDMI or DP? Is there an MCH or PCH register? My guess is that I am not mapping ALL of the BARs or IO ports into the guest to allow Windows to probe the hardware properly. Something is missing. I can’t figure out what that something is.
Any help would be greatly appreciated.
Thanks,
JP