drm-tip 6.0-rc6 depends on non-existing (dGPU) GuC & HuC firmware files
Summary of the issues:
-
i915
usage fails on all discrete GPUs because it tries to load non-existing FW files - Requested (DG1) GuC FW version is missing from the FW repo
- Required symlinks are missing from the FW repo (for all supported discrete GPUs)
-
i915
updated before firmware repo has corresponding FW versions & symlinks (process issue) -
i915
does not tell which versions of GuC & HuC it wants when it does not find the FW file
Details
Couple of days old (6.0-rc5) and today's (6.0-rc6) drm-tip
Git head show:
$ dmesg | grep i915
[ 0.000000] Command line: BOOT_IMAGE=/boot/drm_tip root=/dev/nvme0n1p2 rootwait fsck.repair=yes i915.force_probe=4905 ro
[ 0.025736] Kernel command line: BOOT_IMAGE=/boot/drm_tip root=/dev/nvme0n1p2 rootwait fsck.repair=yes i915.force_probe=4905 ro
[ 2.207631] i915 0000:03:00.0: [drm] VT-d active for gfx access
[ 2.207716] i915 0000:03:00.0: vgaarb: deactivate vga console
[ 2.207738] i915 0000:03:00.0: [drm] Local memory IO size: 0x00000000fb800000
[ 2.207739] i915 0000:03:00.0: [drm] Local memory available: 0x00000000fb800000
[ 2.219761] i915 0000:03:00.0: vgaarb: changed VGA decodes: olddecodes=io+mem,decodes=none:owns=none
[ 2.222134] i915 0000:03:00.0: [drm] Finished loading DMC firmware i915/dg1_dmc_ver2_02.bin (v2.2)
[ 2.222221] i915 0000:03:00.0: GuC firmware i915/dg1_guc_70.bin: fetch failed with error -2
[ 2.222224] i915 0000:03:00.0: [drm] GuC firmware(s) can be downloaded from https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/tree/i915
[ 2.286732] i915 0000:03:00.0: [drm] GuC firmware i915/dg1_guc_70.bin version 0.0.0
[ 2.286903] i915 0000:03:00.0: GuC initialization failed -2
[ 2.286906] i915 0000:03:00.0: Enabling uc failed (-5)
[ 2.286907] i915 0000:03:00.0: Failed to initialize GPU, declaring it wedged!
But the requested i915/dg1_guc_70.bin
is missing from:
Only dg1_guc_70.1.1.bin
exists there, but drm-tip does not try to load that.
If I symlink i915/dg1_guc_70.bin
to dg1_guc_70.1.1.bin
in host firmware dir, i915
proceeds:
[ 2.418191] i915 0000:0a:00.0: [drm] GuC firmware i915/dg1_guc_70.bin (70.5) is recommended, but only i915/dg1_guc_70.bin (70.1) was found
[ 2.418193] i915 0000:0a:00.0: [drm] Consider updating your linux-firmware pkg or downloading from https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/tree/i915
[ 2.418312] i915 0000:0a:00.0: HuC firmware i915/dg1_huc.bin: fetch failed with error -2
[ 2.289464] i915 0000:03:00.0: [drm] HuC firmware(s) can be downloaded from https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/tree/i915
[ 2.351788] i915 0000:03:00.0: [drm] GuC error state capture buffer maybe too small: 2097152 < 2360316 (min = 786772)
[ 2.354766] i915 0000:03:00.0: [drm] GuC firmware i915/dg1_guc_70.bin version 70.1.1
[ 2.358850] i915 0000:03:00.0: [drm] GuC submission enabled
It complains now about GuC version, but that is also missing from the firmware Git. And obviously it has the same problem with HuC versions.
After adding symlink also to latest HuC dg1_huc_7.9.3.bin
version, the HuC specific errors go away.