[BUG] drm/xe, kernel 6.8.5 + xe drvr missing mei gsc support, no mei dev created, hwaccel fails; i915 drvr OK
on release kernel 6.8.4, with Intel Arc A380 gfx card (fyi, + AMD Ryzen 7 3700X cpu)
if driver = release 'i915', hwaccel OK, vainfo detects/queries mei gcs device
if driver = release 'xe', hwaccel FAILS, no mei gcs device created/detected
[ OP @
intel DG2 [Arc A380] card, Xe/Linux driver, not detected by igsc: "No device found
https://github.com/intel/igsc/issues/4
advised to file @ kernel/Xe ...
]
details:
on
lsb_release -rd
Description: Fedora release 39 (Thirty Nine)
Release: 39
uname -r
6.8.4-200.fc39.x86_64
i've an Intel Arc A380 card installed,
lspci | grep -i vga.*intel
09:00.0 VGA compatible controller: Intel Corporation DG2 [Arc A380] (rev 05)
with intel Xe driver,
hwinfo --gfxcard | grep -E "Model|Driver:"
Model: "Intel VGA compatible controller"
Driver: "xe"
inxi -G
Graphics:
Device-1: Intel DG2 [Arc A380] driver: xe v: kernel
Display: x11 server: X.Org v: 1.20.14 with: Xwayland v: 23.2.4 driver: X:
loaded: modesetting dri: iris gpu: xe resolution: 2560x1440~60Hz
API: EGL v: 1.5 drivers: iris,swrast platforms: gbm,x11,surfaceless,device
API: OpenGL v: 4.6 compat-v: 4.5 vendor: intel mesa v: 24.0.4
renderer: Mesa Intel Arc A380 Graphics (DG2)
API: Vulkan v: 1.3.275 drivers: N/A surfaces: xcb,xlib
lsmod | grep xe
xe 2621440 51
drm_ttm_helper 12288 1 xe
gpu_sched 69632 1 xe
drm_suballoc_helper 12288 1 xe
drm_gpuvm 45056 1 xe
drm_exec 12288 2 drm_gpuvm,xe
drm_buddy 20480 1 xe
video 77824 2 asus_wmi,xe
ttm 110592 2 drm_ttm_helper,xe
drm_display_helper 237568 1 xe
cec 86016 2 drm_display_helper,xe
i2c_algo_bit 20480 2 igb,xe
it's clearly detected in user env; also, e.g. with vainfo
vainfo --display x11
Trying display: x11
libva info: VA-API version 1.20.0
libva info: User environment variable requested driver 'iHD'
libva info: Trying to open /usr/lib64/dri/iHD_drv_video.so
libva info: Found init function __vaDriverInit_1_20
libva info: va_openDriver() returns 0
vainfo: VA-API version: 1.20 (libva 2.20.1)
vainfo: Driver version: Intel iHD driver for Intel(R) Gen Graphics - 24.2.1 ()
vainfo: Supported profile and entrypoints
VAProfileNone : VAEntrypointVideoProc
VAProfileNone : VAEntrypointStats
VAProfileMPEG2Simple : VAEntrypointVLD
VAProfileMPEG2Main : VAEntrypointVLD
VAProfileJPEGBaseline : VAEntrypointVLD
VAProfileJPEGBaseline : VAEntrypointEncPicture
VAProfileVP9Profile0 : VAEntrypointVLD
VAProfileVP9Profile0 : VAEntrypointEncSliceLP
VAProfileVP9Profile1 : VAEntrypointVLD
VAProfileVP9Profile1 : VAEntrypointEncSliceLP
VAProfileVP9Profile2 : VAEntrypointVLD
VAProfileVP9Profile2 : VAEntrypointEncSliceLP
VAProfileVP9Profile3 : VAEntrypointVLD
VAProfileVP9Profile3 : VAEntrypointEncSliceLP
VAProfileAV1Profile0 : VAEntrypointVLD
VAProfileAV1Profile0 : VAEntrypointEncSliceLP
checking also with udevadm
,
udevadm info --path=$( hwinfo --gfxcard | grep "SysFS ID" | awk '{print $3}')
P: /devices/pci0000:00/0000:00:03.1/0000:07:00.0/0000:08:01.0/0000:09:00.0
M: 0000:09:00.0
R: 0
U: pci
V: xe
E: DEVPATH=/devices/pci0000:00/0000:00:03.1/0000:07:00.0/0000:08:01.0/0000:09:00.0
E: SUBSYSTEM=pci
E: DRIVER=xe
E: PCI_CLASS=30000
E: PCI_ID=8086:56A5
E: PCI_SUBSYS_ID=1849:6004
E: PCI_SLOT_NAME=0000:09:00.0
E: MODALIAS=pci:v00008086d000056A5sv00001849sd00006004bc03sc00i00
E: USEC_INITIALIZED=24219159
E: ID_PCI_CLASS_FROM_DATABASE=Display controller
E: ID_PCI_SUBCLASS_FROM_DATABASE=VGA compatible controller
E: ID_PCI_INTERFACE_FROM_DATABASE=VGA controller
E: ID_VENDOR_FROM_DATABASE=Intel Corporation
E: ID_MODEL_FROM_DATABASE=DG2 [Arc A380]
E: ID_PATH=pci-0000:09:00.0
E: ID_PATH_TAG=pci-0000_09_00_0
but, igsc
fails to detect the device
git clone https://github.com/intel/igsc.git
git log -n1
1 commit ed8de901694cd9e27ac66725cdac13f86d61781f (HEAD -> master, tag: V0.8.16, origin/master, origin/HEA 1 D)
2 Author: Vitaly Lubart <vitaly.lubart@intel.com>
3 Date: Tue Oct 31 10:47:08 2023 +0200
4
5 igsc: bump version to 0.8.16
6
7 Update CHANGELOG.md
8
9 Signed-off-by: Vitaly Lubart <vitaly.lubart@intel.com>
meson setup builddir/
meson configure -Dsyslog=true builddir
ninja -v -C builddir/
DESTDIR="/usr/local/igsc-test" ninja install -C builddir/
/usr/local/igsc-test/usr/local/bin/igsc --version
igsc version 0.8.16
/usr/local/igsc-test/usr/local/bin/igsc list-devices
No device found
reading @
https://github.com/intel/igsc/blob/master/doc/introduction.rst#15-device-enumeration
"...
The enumeration API is not required but recommended part of the flow, some applications such us fwupd provide their own enumeration API.
...
On Linux client platforms the library integrates with fwupd.org daemon via igsc plugin. Thefwupd* daemon is commonly an integral part on modern Linux distributions.
"
here,
fwupdtool --version
Loading… [************************************** ]
compile org.freedesktop.fwupd 1.9.16
compile com.hughsie.libxmlb 0.3.17
compile com.hughsie.libjcat 0.2.1
runtime org.freedesktop.fwupd-efi 1.4
compile org.freedesktop.gusb 0.4.8
runtime com.hughsie.libjcat 0.2.1
runtime org.freedesktop.gusb 0.4.8
runtime org.kernel 6.8.4-200.fc39.x86_64
runtime org.freedesktop.fwupd 1.9.16
fwupdtool get-devices | grep DG2 -A10
├─DG2 [Arc A380]:
│ Device ID: 366...
│ Current version: 05
│ Vendor: Intel Corporation (PCI:0x8086)
│ GUIDs: a46...
...
│ Device Flags: • Internal device
│ • Cryptographic hash verification is available
│
also, @
drm/xe/gsc: add initial gsc support
https://lwn.net/Articles/944290/
"Add initial GSC support for DG1 and DG2.
Create mei-gscfi auxiliary device and add
support for device created by Xe to the mei-gsc driver."
here,
lsmod | grep mei
mei_gsc 12288 0
mei_me 57344 1 mei_gsc
mei 204800 2 mei_gsc,mei_me
but
ls -al /dev/mei*
(empty)
with Xe driver in use
cat /proc/cmdline
... i915.force_probe=!56a5 xe.force_probe=56a5 ...
igsc list-devices --info
No device found
with i915 driver in use, no other changes
cat /proc/cmdline
... i915.force_probe=56a5 xe.force_probe=!56a5 ...
igsc list-devices --info
Device [1] '/dev/mei1': 8086:56a5 1849:6004 0000:09:00.00
FW Version: DG02_2.2353
OPROM CODE Version: 14 00 2C 04 00 00 00 00
OPROM DATA Version: 14 00 2C 04 00 00 00 00
reading @
https://www.kernelconfig.io/config_intel_mei_gsc
Intel auxiliary driver for GSC devices embedded in Intel graphics devices.
An MEI device here called GSC can be embedded in an
Intel graphics devices, to support a range of chassis
tasks such as graphics card firmware update and security
tasks.
checking, i915
has gsc support,
modinfo -F firmware /usr/lib/modules/6.8.4-200.fc39.x86_64/kernel/drivers/gpu/drm/i915/i915.ko.xz | grep -i dg2
!!! i915/dg2_huc_gsc.bin
i915/dg2_guc_70.bin
i915/dg2_dmc_ver2_08.bin
but xe
appears not to
modinfo -F firmware /usr/lib/modules/6.8.4-200.fc39.x86_64/kernel/drivers/gpu/drm/xe/xe.ko.xz | grep -i dg2
i915/dg2_guc_70.bin
i915/dg2_dmc_ver2_08.bin
booting i915,
+ i915.force_probe=56a5 xe.force_probe=!56a5
shows
lsmod | grep mei
mei_hdcp 28672 0
mei_pxp 20480 0
mei_gsc 12288 2
mei_me 57344 1 mei_gsc
mei 204800 6 mei_gsc,mei_hdcp,mei_pxp,mei_me
cat /sys/kernel/debug/dri/0000\:09\:00.0/gt0/uc/huc_info
HuC firmware: i915/dg2_huc_gsc.bin
status: RUNNING
version: found 7.10.3
uCode: 0 bytes
RSA: 0 bytes
HuC status: 0x00164001
booting Xe,
+ i915.force_probe=!56a5 xe.force_probe=56a5
shows
lsmod | grep mei
mei_gsc 12288 0
mei_me 57344 1 mei_gsc
mei 204800 2 mei_gsc,mei_me
cat /sys/kernel/debug/dri/0000\:09\:00.0/gt0/uc/huc_info
HuC firmware: (null)
status: N/A
wanted release version 0.0.0
further reading @
Intel's Experimental Xe Driver For Linux Lacking HuC Media Support For DG2/Alchenist
https://www.phoronix.com/news/Intel-Xe-DG2-No-HuC
Enable huc on DG2
https://gitlab.freedesktop.org/drm/xe/kernel/-/issues/234
Intel Xe Kernel GPU Driver Starts Landing SR-IOV Bits & Other Features For Linux 6.9
https://www.phoronix.com/news/Intel-Xe-DRM-Linux-6.9-Pull
[PULL] drm-xe-next
https://lore.kernel.org/dri-devel/CAPj87rO4K6QS8hVn-d6N8CEi+Uibmgo6mZ5bNGz2rZDUMshvxA@mail.gmail.com/T/