Hi all,
I'm debugging an issue that an HVM guest failed to produce any output with
IGD passed through.
This is an pure HVM linux guest with i915 driver directly compiled in.
An PVHVM kernel with i915 driver compiled as module works without issue.
I'm not yet sure which factor is more important, pure HVM or the I915=y
kernel config.
The direct cause of no output is that the driver does not select Display
PLL properly, which is in turn due to fail to detect pch type properly.
Strange enough, the intel_detect_pch() function works by checking the
device ID of the ISA bridge coming with the chipset:
/* * The reason to probe ISA bridge instead of Dev31:Fun0 is to * make
graphics device passthrough fwork easy for VMM, that only * need to expose
ISA bridge to let driver know the real hardware underneath. This is a
requirement from virtualization team. */
I added some debug output in this function and find out that it obtained a
strange device ID:
[ 1.005423] [drm] intel pch detect, found 00007000
This looks like the ISA bridge provided by qemu:
00:01.0 ISA bridge: Intel Corporation 82371SB PIIX3 ISA [Natoma/Triton II]
00:01.0 0601: 8086:7000
However, I can find the same device on a PVHVM linux guest, but the
intel_detect_pch() is not fooled by that. Is it due to I915=m config or
some magic played by PVOPS? Any suggestion how to fix this?
Thanks,
Timothy
I'm debugging an issue that an HVM guest failed to produce any output with
IGD passed through.
This is an pure HVM linux guest with i915 driver directly compiled in.
An PVHVM kernel with i915 driver compiled as module works without issue.
I'm not yet sure which factor is more important, pure HVM or the I915=y
kernel config.
The direct cause of no output is that the driver does not select Display
PLL properly, which is in turn due to fail to detect pch type properly.
Strange enough, the intel_detect_pch() function works by checking the
device ID of the ISA bridge coming with the chipset:
/* * The reason to probe ISA bridge instead of Dev31:Fun0 is to * make
graphics device passthrough fwork easy for VMM, that only * need to expose
ISA bridge to let driver know the real hardware underneath. This is a
requirement from virtualization team. */
I added some debug output in this function and find out that it obtained a
strange device ID:
[ 1.005423] [drm] intel pch detect, found 00007000
This looks like the ISA bridge provided by qemu:
00:01.0 ISA bridge: Intel Corporation 82371SB PIIX3 ISA [Natoma/Triton II]
00:01.0 0601: 8086:7000
However, I can find the same device on a PVHVM linux guest, but the
intel_detect_pch() is not fooled by that. Is it due to I915=m config or
some magic played by PVOPS? Any suggestion how to fix this?
Thanks,
Timothy