-
Notifications
You must be signed in to change notification settings - Fork 35
Open
Description
I tried to enable SR-IOV patching https://github.com/intel/mainline-tracking/blob/linux/v6.15/drivers/gpu/drm/xe/xe_pci.c
I created a new
static const struct xe_device_desc arl_desc = {
/* .graphics and .media determined via GMD_ID */
.require_force_probe = true,
PLATFORM(METEORLAKE),
.dma_mask_size = 46,
.has_display = true,
.has_sriov = true,
.has_pxp = true,
};
Modified
INTEL_ARL_IDS(INTEL_VGA_DEVICE, &arl_desc),
Due intel in https://www.intel.com/content/www/us/en/support/articles/000093216/graphics/processor-graphics.html Meteor Lake (similar to Arrow Lake) is not supported, but Arrow Lake yes.
[ 0.000000] Command line: BOOT_IMAGE=/boot/vmlinuz-6.15.0-adv-intel+ root=UUID=5380ae05-b99d-475b-9258-17d1f32e9f77 ro quiet splash intel_iommu=on iommu=pt i915.force_probe=!7d51 xe.force_probe=7d51 xe.guc_log_level=5 xe.max_vfs=3 pci=realloc pcie_acs_override=downstream,multifunction vt.handoff=7
[marco@marcoHPLaptop][~]$ sudo dmesg |grep drm
[ 0.781923] ACPI: bus type drm_connector registered
[ 0.818007] [drm] Initialized simpledrm 1.0.0 for simple-framebuffer.0 on minor 0
[ 0.819370] simple-framebuffer simple-framebuffer.0: [drm] fb0: simpledrmdrmfb frame buffer device
[ 5.407397] systemd[1]: Starting [email protected] - Load Kernel Module drm...
[ 5.412436] systemd[1]: [email protected]: Deactivated successfully.
[ 5.412486] systemd[1]: Finished [email protected] - Load Kernel Module drm.
[ 5.709763] intel_vpu 0000:00:0b.0: [drm] Firmware: intel/vpu/vpu_37xx_v0.0.bin, version: 20230726*MTL_CLIENT_SILICON-release*2101*ci_tag_mtl_pv_vpu_rc_20230726_2101*648a666b8b9
[ 5.709767] intel_vpu 0000:00:0b.0: [drm] Scheduler mode: OS
[ 5.839876] [drm] Initialized intel_vpu 1.0.0 for 0000:00:0b.0 on minor 0
[ 7.389751] xe 0000:00:02.0: [drm] Running in SR-IOV PF mode
[ 7.389807] xe 0000:00:02.0: [drm] Found meteorlake (device ID 7d51) integrated display version 14.00 stepping D0
[ 7.391340] xe 0000:00:02.0: [drm] Using GuC firmware from i915/mtl_guc_70.bin version 70.44.1
[ 7.403558] xe 0000:00:02.0: [drm] Using GuC firmware from i915/mtl_guc_70.bin version 70.44.1
[ 7.408351] xe 0000:00:02.0: [drm] Using HuC firmware from i915/mtl_huc_gsc.bin version 8.5.4
[ 7.410149] xe 0000:00:02.0: [drm] Using GSC firmware from i915/mtl_gsc_1.bin version 102.1.15.1926
[ 7.445298] xe 0000:00:02.0: [drm] Finished loading DMC firmware i915/mtl_dmc.bin (v2.23)
[ 7.669365] xe 0000:00:02.0: [drm] vcs1 fused off
[ 7.669370] xe 0000:00:02.0: [drm] vcs3 fused off
[ 7.669372] xe 0000:00:02.0: [drm] vcs4 fused off
[ 7.669373] xe 0000:00:02.0: [drm] vcs5 fused off
[ 7.669374] xe 0000:00:02.0: [drm] vcs6 fused off
[ 7.669375] xe 0000:00:02.0: [drm] vcs7 fused off
[ 7.669376] xe 0000:00:02.0: [drm] vecs1 fused off
[ 7.669377] xe 0000:00:02.0: [drm] vecs2 fused off
[ 7.669378] xe 0000:00:02.0: [drm] vecs3 fused off
[ 7.739138] [drm] Initialized xe 1.1.0 for 0000:00:02.0 on minor 0
[ 7.778979] xe 0000:00:02.0: [drm] Allocated fbdev into stolen
[ 7.780384] fbcon: xedrmfb (fb0) is primary device
[ 7.780389] xe 0000:00:02.0: [drm] fb0: xedrmfb frame buffer device
[ 7.864086] xe 0000:00:02.0: [drm] GT1: found GSC cv102.1.0
[ 8.206509] xe 0000:00:02.0: [drm] GT0: PF: VF1..VF3 provisioned with 1389010944 (1.29 GiB) GGTT
[ 8.206716] xe 0000:00:02.0: [drm] GT0: PF: VF1..VF3 provisioned with 21759 GuC context IDs
[ 8.207270] xe 0000:00:02.0: [drm] GT0: PF: VF1..VF3 provisioned with 85 GuC doorbell IDs
[ 8.207489] xe 0000:00:02.0: [drm] GT1: PF: VF1..VF3 provisioned with 21758 GuC context IDs
[ 8.207831] xe 0000:00:02.0: [drm] GT1: PF: VF1..VF3 provisioned with 85 GuC doorbell IDs
[ 8.315939] xe 0000:00:02.0: [drm] PF: Enabled 3 of 3 VFs
It is accepted by qemu, but I cannot remove ErrorCode 43 from Windows11. Also spooffing all host IDs!
<domain xmlns:qemu="http://libvirt.org/schemas/domain/qemu/1.0" type="kvm">
<name>Win11Codesys</name>
<uuid>4bf3d3f4-55b0-11f0-8d6b-37770ad72080</uuid>
<metadata>
<libosinfo:libosinfo xmlns:libosinfo="http://libosinfo.org/xmlns/libvirt/domain/1.0">
<libosinfo:os id="http://microsoft.com/win/10"/>
</libosinfo:libosinfo>
</metadata>
<memory unit="KiB">8388608</memory>
<currentMemory unit="KiB">8388608</currentMemory>
<memoryBacking>
<source type="memfd"/>
<access mode="shared"/>
</memoryBacking>
<vcpu placement="static">8</vcpu>
<iothreads>1</iothreads>
<cputune>
<vcpupin vcpu="0" cpuset="0"/>
<vcpupin vcpu="1" cpuset="1"/>
<vcpupin vcpu="2" cpuset="2"/>
<vcpupin vcpu="3" cpuset="3"/>
<vcpupin vcpu="4" cpuset="4"/>
<vcpupin vcpu="5" cpuset="5"/>
<vcpupin vcpu="6" cpuset="6"/>
<vcpupin vcpu="7" cpuset="7"/>
<emulatorpin cpuset="8-15"/>
<iothreadpin iothread="1" cpuset="8-15"/>
</cputune>
<sysinfo type="smbios">
<bios>
<entry name="vendor">Dell Inc.</entry>
<entry name="version">1.2.0</entry>
<entry name="date">03/21/2025</entry>
</bios>
<system>
<entry name="manufacturer">Dell Inc.</entry>
<entry name="product">Dell Pro Max 16 MC16250</entry>
<entry name="version">Not Specified</entry>
<entry name="serial">FB9JW94</entry>
<entry name="uuid">4bf3d3f4-55b0-11f0-8d6b-37770ad72080</entry>
<entry name="sku">0CF1</entry>
<entry name="family">Dell Pro Max Laptops</entry>
</system>
<baseBoard>
<entry name="manufacturer">Dell Inc.</entry>
<entry name="product">0YHD6M</entry>
<entry name="version">A00</entry>
<entry name="serial">/FB9JW94/CNWSC0055200YF/</entry>
</baseBoard>
<chassis>
<entry name="manufacturer">Dell Inc.</entry>
<entry name="serial">FB9JW94</entry>
<entry name="sku">Notebook</entry>
</chassis>
</sysinfo>
<os firmware="efi">
<type arch="x86_64" machine="pc-q35-8.2">hvm</type>
<firmware>
<feature enabled="no" name="enrolled-keys"/>
<feature enabled="yes" name="secure-boot"/>
</firmware>
<loader readonly="yes" secure="yes" type="pflash">/usr/share/OVMF/OVMF_CODE_4M.secboot.fd</loader>
<nvram template="/usr/share/OVMF/OVMF_VARS_4M.fd">/var/lib/libvirt/qemu/nvram/Windows11Codesys.fd</nvram>
<boot dev="hd"/>
<bootmenu enable="yes"/>
<smbios mode="sysinfo"/>
</os>
<features>
<acpi/>
<apic/>
<hyperv mode="custom">
<relaxed state="on"/>
<vapic state="on"/>
<spinlocks state="on" retries="8191"/>
<vpindex state="on"/>
<runtime state="on"/>
<synic state="on"/>
<stimer state="on"/>
<vendor_id state="on" value="GenuineIntel"/>
</hyperv>
<vmport state="off"/>
<smm state="on"/>
</features>
<cpu mode="host-passthrough" check="none" migratable="on">
<topology sockets="1" dies="1" cores="8" threads="1"/>
<maxphysaddr mode="passthrough" limit="40"/>
</cpu>
<clock offset="localtime">
<timer name="rtc" tickpolicy="catchup"/>
<timer name="pit" tickpolicy="delay"/>
<timer name="hpet" present="no"/>
<timer name="hypervclock" present="yes"/>
</clock>
<on_poweroff>destroy</on_poweroff>
<on_reboot>restart</on_reboot>
<on_crash>destroy</on_crash>
<pm>
<suspend-to-mem enabled="no"/>
<suspend-to-disk enabled="no"/>
</pm>
<devices>
<emulator>/usr/bin/qemu-system-x86_64</emulator>
<disk type="file" device="disk">
<driver name="qemu" type="qcow2"/>
<source file="/media/storage/VMs/KVM/Win10Codesys/Win10Codesys.qcow2"/>
<target dev="sdb" bus="sata"/>
<address type="drive" controller="0" bus="0" target="0" unit="1"/>
</disk>
<disk type="file" device="cdrom">
<driver name="qemu" type="raw"/>
<target dev="sdc" bus="sata"/>
<readonly/>
<address type="drive" controller="0" bus="0" target="0" unit="2"/>
</disk>
<controller type="usb" index="0" model="nec-xhci" ports="15">
<address type="pci" domain="0x0000" bus="0x03" slot="0x00" function="0x0"/>
</controller>
<controller type="sata" index="0">
<address type="pci" domain="0x0000" bus="0x00" slot="0x1f" function="0x2"/>
</controller>
<controller type="pci" index="0" model="pcie-root"/>
<controller type="pci" index="1" model="pcie-root-port">
<model name="pcie-root-port"/>
<target chassis="1" port="0x10"/>
<address type="pci" domain="0x0000" bus="0x00" slot="0x04" function="0x0" multifunction="on"/>
</controller>
<controller type="pci" index="2" model="pcie-root-port">
<model name="pcie-root-port"/>
<target chassis="2" port="0x11"/>
<address type="pci" domain="0x0000" bus="0x00" slot="0x04" function="0x1"/>
</controller>
<controller type="pci" index="3" model="pcie-root-port">
<model name="pcie-root-port"/>
<target chassis="3" port="0x12"/>
<address type="pci" domain="0x0000" bus="0x00" slot="0x04" function="0x2"/>
</controller>
<controller type="pci" index="4" model="pcie-root-port">
<model name="pcie-root-port"/>
<target chassis="4" port="0x13"/>
<address type="pci" domain="0x0000" bus="0x00" slot="0x04" function="0x3"/>
</controller>
<controller type="pci" index="5" model="pcie-root-port">
<model name="pcie-root-port"/>
<target chassis="5" port="0x14"/>
<address type="pci" domain="0x0000" bus="0x00" slot="0x04" function="0x4"/>
</controller>
<controller type="pci" index="6" model="pcie-root-port">
<model name="pcie-root-port"/>
<target chassis="6" port="0x15"/>
<address type="pci" domain="0x0000" bus="0x00" slot="0x04" function="0x5"/>
</controller>
<controller type="pci" index="7" model="pcie-root-port">
<model name="pcie-root-port"/>
<target chassis="7" port="0x16"/>
<address type="pci" domain="0x0000" bus="0x00" slot="0x04" function="0x6"/>
</controller>
<controller type="pci" index="8" model="pcie-root-port">
<model name="pcie-root-port"/>
<target chassis="8" port="0x17"/>
<address type="pci" domain="0x0000" bus="0x00" slot="0x04" function="0x7"/>
</controller>
<controller type="pci" index="9" model="pcie-root-port">
<model name="pcie-root-port"/>
<target chassis="9" port="0x10"/>
<address type="pci" domain="0x0000" bus="0x00" slot="0x03" function="0x0" multifunction="on"/>
</controller>
<controller type="pci" index="10" model="pcie-to-pci-bridge">
<model name="pcie-pci-bridge"/>
<address type="pci" domain="0x0000" bus="0x06" slot="0x00" function="0x0"/>
</controller>
<controller type="pci" index="11" model="pcie-root-port">
<model name="pcie-root-port"/>
<target chassis="11" port="0x8"/>
<address type="pci" domain="0x0000" bus="0x00" slot="0x01" function="0x0" multifunction="on"/>
</controller>
<controller type="pci" index="12" model="pcie-root-port">
<model name="pcie-root-port"/>
<target chassis="12" port="0x9"/>
<address type="pci" domain="0x0000" bus="0x00" slot="0x01" function="0x1"/>
</controller>
<controller type="pci" index="13" model="pcie-root-port">
<model name="pcie-root-port"/>
<target chassis="13" port="0xa"/>
<address type="pci" domain="0x0000" bus="0x00" slot="0x01" function="0x2"/>
</controller>
<controller type="pci" index="14" model="pcie-root-port">
<model name="pcie-root-port"/>
<target chassis="14" port="0xb"/>
<address type="pci" domain="0x0000" bus="0x00" slot="0x01" function="0x3"/>
</controller>
<controller type="pci" index="15" model="pcie-root-port">
<model name="pcie-root-port"/>
<target chassis="15" port="0xc"/>
<address type="pci" domain="0x0000" bus="0x00" slot="0x01" function="0x4"/>
</controller>
<controller type="pci" index="16" model="pcie-root-port">
<model name="pcie-root-port"/>
<target chassis="16" port="0xd"/>
<address type="pci" domain="0x0000" bus="0x00" slot="0x01" function="0x5"/>
</controller>
<controller type="pci" index="17" model="pcie-root-port">
<model name="pcie-root-port"/>
<target chassis="17" port="0xe"/>
<address type="pci" domain="0x0000" bus="0x00" slot="0x01" function="0x6"/>
</controller>
<controller type="pci" index="18" model="pcie-root-port">
<model name="pcie-root-port"/>
<target chassis="18" port="0xf"/>
<address type="pci" domain="0x0000" bus="0x00" slot="0x01" function="0x7"/>
</controller>
<controller type="virtio-serial" index="0">
<address type="pci" domain="0x0000" bus="0x05" slot="0x00" function="0x0"/>
</controller>
<interface type="bridge">
<mac address="00:0c:29:5e:f6:dd"/>
<source bridge="BrService"/>
<model type="e1000e"/>
<address type="pci" domain="0x0000" bus="0x01" slot="0x00" function="0x0"/>
</interface>
<serial type="pty">
<target type="isa-serial" port="0">
<model name="isa-serial"/>
</target>
</serial>
<console type="pty">
<target type="serial" port="0"/>
</console>
<channel type="unix">
<target type="virtio" name="org.qemu.guest_agent.0"/>
<address type="virtio-serial" controller="0" bus="0" port="1"/>
</channel>
<channel type="spicevmc">
<target type="virtio" name="com.redhat.spice.0"/>
<address type="virtio-serial" controller="0" bus="0" port="2"/>
</channel>
<input type="tablet" bus="usb">
<address type="usb" bus="0" port="1"/>
</input>
<input type="mouse" bus="ps2"/>
<input type="keyboard" bus="ps2"/>
<tpm model="tpm-tis">
<backend type="emulator" version="1.2"/>
</tpm>
<graphics type="spice" port="-1" autoport="no" listen="0.0.0.0">
<listen type="address" address="0.0.0.0"/>
<image compression="off"/>
<gl enable="no"/>
</graphics>
<audio id="1" type="spice"/>
<video>
<model type="ramfb" vram="131072" heads="1" primary="yes"/>
</video>
<hostdev mode="subsystem" type="pci" managed="yes">
<driver name="vfio"/>
<source>
<address domain="0x0000" bus="0x00" slot="0x02" function="0x1"/>
</source>
<rom bar="on" file="/var/lib/libvirt/roms/IntelGopDriver.efi"/>
<address type="pci" domain="0x0000" bus="0x00" slot="0x02" function="0x0"/>
</hostdev>
<redirdev bus="usb" type="spicevmc">
<address type="usb" bus="0" port="2"/>
</redirdev>
<redirdev bus="usb" type="spicevmc">
<address type="usb" bus="0" port="3"/>
</redirdev>
<watchdog model="itco" action="reset"/>
<memballoon model="virtio">
<address type="pci" domain="0x0000" bus="0x04" slot="0x00" function="0x0"/>
</memballoon>
</devices>
<qemu:override>
<qemu:device alias="hostdev0">
<qemu:frontend>
<qemu:property name="x-vga" type="bool" value="true"/>
<qemu:property name="x-igd-opregion" type="bool" value="true"/>
<qemu:property name="x-igd-legacy-mode" type="string" value="off"/>
<qemu:property name="x-igd-gms" type="unsigned" value="384"/>
</qemu:frontend>
</qemu:device>
</qemu:override>
</domain>
i915 in VM Linux crash.
xe in VM Linux reports:
xe 0000:00:02.0: [drm] ERROR Hardware reports unknown graphics version 0.0
I extracted IntelGOPDriver.efi from my BIOS Update.
Every Windows driver tested bring me to Error 43.
Metadata
Metadata
Assignees
Labels
No labels