Is Intel GPU GuC/HuC firmware used? (hw.i915kms.enable_guc)

Setting hw.i915kms.enable_guc="3" in loader.conf seemingly has the firmware load:

Code:
drmn0: successfully loaded firmware image 'i915/kbl_guc_62.0.0.bin'
drmn0: successfully loaded firmware image 'i915/kbl_huc_4.0.0.bin'

But that breaks something with the graphics stack and glxinfo only reports llvmpipe (UHD 630, drm-kmod). I've not tried just HuC firmware loading yet.



Is Intel GPU GuC and/or HuC firmware loading on FreeBSD usable with any benefit?

ArchWiki for Linux says it could optimize media decoding with intel-media-driver, and provide general improvements on ADL/Gen12.
 
With drm-61-kmod, hw.i915kms.enable_guc="3" doesn't appear the break the graphics stack on 14.1:

Code:
drmn0: successfully loaded firmware image 'i915/kbl_guc_70.1.1.bin'
drmn0: successfully loaded firmware image 'i915/kbl_huc_4.0.0.bin'

GuC firmware load doesn't work on 14.2 with drm-515-kmod (graphics stack breaks).
 
Last edited:
With drm-61-kmod, hw.i915kms.enable_guc="3" breaks boot on 14.1 on my laptop running:
vgapci0@pci0:0:2:0: class=0x030000 rev=0x01 hdr=0x00 vendor=0x8086 device=0x9a49 subvendor=0x8086 subdevice=0x2112
vendor = 'Intel Corporation'
device = 'TigerLake-LP GT2 [Iris Xe Graphics]'
class = display
subclass = VGA
Screen just becomes black and the laptop reboots by itself. There's nothing in the system logs. On the positive side, I had to learn how to use the "OK" prompt at boot time to unset the variable and get back in business.

BTW, same issue with hw.i915kms.enable_guc="1" and hw.i915kms.enable_guc="2".
 
Code:
# sysctl -d hw.i915kms.enable_guc
hw.i915kms.enable_guc: Enable GuC load for GuC submission and/or HuC load. Required functionality can be selected using bitmask values. (-1=auto [default], 0=disable, 1=GuC submission, 2=HuC load)
freebsd says value = 3 does not exist.
"3" is available for Linux, but it doesn't seem to be there here.
But this is just a guess, I don't know for sure.
 
Code:
# sysctl -d hw.i915kms.enable_guc
hw.i915kms.enable_guc: Enable GuC load for GuC submission and/or HuC load. Required functionality can be selected using bitmask values. (-1=auto [default], 0=disable, 1=GuC submission, 2=HuC load)
freebsd says value = 3 does not exist.
"3" is available for Linux, but it doesn't seem to be there here.
But this is just a guess, I don't know for sure.
Iirc bitmask means add the numbers together (1/GuC + 2/HuC = 3/both)
 
Back
Top