Disclaimer : what I did concerns 4.15.0 kernel only, on Intel machine
(Assus Zenbook pro, x86_64, model: UX410UAR)

Hello,

Sorry for coming late, but I had the same issue some days ago (never
tested before):something like  Guc not loading, while Huc did. Of course
I hit this page, and some other without find a complete solution.

**But** after one day searching, I finaly make it work (!!) , and I'll
try to explain what I did (I do not recommend to do the same, but I'll
attach a patch (under MIT license, or whatever you need, just ask).

The problems:

1. when you download the kbl_guc_ver9_14.bin blob from Intel site, looks like 
the downloaded file is an .xml file in fact, but not a binary at all. Maybe the 
site has an issue ? (sorry, not a website specialist)  // Can someone verify 
btw ?
 
2. IIRC Intel made kbl_guc_ver9_xy.bin for Kabylake, and I simply tried to make 
the kbl_guv_ver9_39.bin work.   

Important: I found kbl_guv_ver9_39.bin blob there :
http://archive.ubuntu.com/ubuntu/pool/main/l/linux-firmware/


What I did : 

- I extracted kbl_guv_ver9_39.bin from linux-firmware_1.178_all.deb, and
put it in /lib/firmware/i915

After that, I downloaded the most recent 4.15.0 kernel sources (on my
LinuxMint 18.3) :

=>  apt-get source linux-source-4.15.0 provided :

Réception de :1 http://ubuntu.mirrors.ovh.net/ftp.ubuntu.com/ubuntu 
xenial-updates/main linux-hwe 4.15.0-47.50~16.04.1 (dsc) [6 511 B]
Réception de :2 http://ubuntu.mirrors.ovh.net/ftp.ubuntu.com/ubuntu 
xenial-updates/main linux-hwe 4.15.0-47.50~16.04.1 (tar) [158 MB]

After I downloaded the sources, I copied initrd.img-4.15.0-34-generic as 
.config in the kernel tree, and I simply patched the following files (in 
drivers/gpu/drm/i915 : 
- intel_guc_fw.c
- intel_uc.c

Comments :
- In the first one, I simply modified the binary version (changing KBL_FW_MINOR 
from 14 to 39)
- In the second one, I followed Robert M. Fosha advice (link : 
https://patchwork.kernel.org/patch/10877903/), allowing to avoind timeout and 
retry when trying to load the blob

=> see the attached patch.

For the record, my current /etc/modprobe.d/i915.conf contains :

````
options i915 enable_fbc=1 fastboot=1 enable_guc_loading=1 
enable_guc_submission=1


````

 
Next step was to build the kernel, the Debian way (using make -j8 deb-pkg), and 
after installing the debs, I got everything working at the end, including the 
9_34 version of kbl_guc blob :-) :

````
me@MyMachine ~ $ dmesg | grep i915
[    2.018994] i915 0000:00:02.0: vgaarb: changed VGA decodes: 
olddecodes=io+mem,decodes=io+mem:owns=io+mem
[    2.019493] [drm] Finished loading DMC firmware i915/kbl_dmc_ver1_01.bin 
(v1.1)
[    2.031452] [drm] HuC: Loaded firmware i915/kbl_huc_ver02_00_1810.bin 
(version 2.0)
[    2.041847] [drm] GuC: Loaded firmware i915/kbl_guc_ver9_39.bin (version 
9.39)
[    2.058753] i915 0000:00:02.0: GuC submission enabled (firmware 
i915/kbl_guc_ver9_39.bin [version 9.39])
[    2.059299] [drm] Initialized i915 1.6.0 20171023 for 0000:00:02.0 on minor 0
[    2.519645] i915 0000:00:02.0: fb0: inteldrmfb frame buffer device
[    9.408643] snd_hda_intel 0000:00:1f.3: bound 0000:00:02.0 (ops 
i915_audio_component_bind_ops [i915])

````

Conclusion : we can use kbl_guc_ver9_34 with 4.1.5.x kernel. Not sure it
is perfect, but

"# cat /sys/kernel/debug/dri/0/i915_huc_load_status"  returns :

````

HuC firmware: i915/kbl_huc_ver02_00_1810.bin
        status: fetch SUCCESS, load SUCCESS
        version: wanted 2.0, found 2.0
        header: offset 0, size 128
        uCode: offset 128, size 218304
        RSA: offset 218432, size 256

HuC status 0x00006080:
````

And  "# cat /sys/kernel/debug/dri/0/i915_guc_load_status" returns: 
````
GuC firmware: i915/kbl_guc_ver9_39.bin
        status: fetch SUCCESS, load SUCCESS
        version: wanted 9.39, found 9.39
        header: offset 0, size 128
        uCode: offset 128, size 147392
        RSA: offset 147520, size 256

GuC status 0x800330ec:
        Bootrom status = 0x76
        uKernel status = 0x30
        MIA Core status = 0x3

Scratch registers:
         0:     0xf0000000
         1:     0x1
         2:     0xfede7000
         3:     0x5f5e100
         4:     0x600
         5:     0xcdfd3
         6:     0x0
         7:     0x8
         8:     0x3
         9:     0x70240
        10:     0x0
        11:     0x0
        12:     0x0
        13:     0x0
        14:     0x0
        15:     0x0
````

Last but not least, thanks to Intel people for their work : the HD 620**
UHD works very well with mesa 19.1 devel / vulkan 1.1 !

(inxi -G returns  Card: Intel UHD Graphics 620)

-- 
qɔᴉɹə

L'association EducOOo : http://www.educoo.org (dérivé d'OpenOffice)

https://framagit.org/ericb/miniDart (logiciel Handball)

https://github.com/ebachard (logiciels variés)



** Patch added: "For testing purpose : this patch can break your machine. If 
you decice to use it, it is at your own risks."
   
https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1728238/+attachment/5253212/+files/kernel_4.1.5.50_debian+guc_9_39.diff

-- 
You received this bug notification because you are a member of Kernel
Packages, which is subscribed to linux in Ubuntu.
https://bugs.launchpad.net/bugs/1728238

Title:
  update-initramfs not adding i915 GuC firmware for Kaby Lake, firmware
  fails to load

Status in initramfs-tools:
  Invalid
Status in linux package in Ubuntu:
  Fix Released
Status in linux source package in Bionic:
  Fix Released

Bug description:
  == SRU Justification ==
  This firmware was optional when the MODULE_FIRMWARE statements were
  removed in bug 1626740 by Bionic commit dc0f16f9b50.  The firmware is now
  available and in use, so these statements need to be added back.

  Without these statements, The i915 Kabylake GuC firmware is failing to load
  on boot, and generating dmesg errors.

  == Fix ==
  Revert Bionic commit dc0f16f9b5084e6be2b8c79f8c6cd499a3451791.

  == Regression Potential ==
  Low.  Adding a statement back that was removed by a SAUCE patch.

  == Test Case ==
  A test kernel was built with this patch and tested by the original bug 
reporter.
  The bug reporter states the test kernel resolved the bug.

  
  == Original Bug Report ==
  The i915 Kabylake GuC firmware is failing to load on boot, and generating 
dmesg errors.  The Kabylake HuC firmware succeeds.  All files exist.  I've also 
verified the Kabylake GuC firmware matches the correct file size and md5 listed 
on 01.org.

  I then ran update-initramfs verbosely, and see that only
  /lib/firmware/i915/skl_guc_ver6_1.bin is being added.
  /lib/firmware/i915/bxt_guc_ver8_7.bin and
  /lib/firmware/i915/kbl_guc_ver9_14.bin seem to be ignored.

  I'm running a Dell XPS 13 9360 w/ Kabylake on Ubuntu 17.10 and
  initramfs-tools 0.125ubuntu12.  Perhaps Broxton systems might have the
  same issue?

  Output and logs:
  -----------------

  ls -al /lib/firmware/i915/kbl_*

  -rw-r--r-- 1 root root   8616 Aug 17 11:08 
/lib/firmware/i915/kbl_dmc_ver1_01.bin
  lrwxrwxrwx 1 root root     19 Aug 17 11:08 
/lib/firmware/i915/kbl_dmc_ver1.bin -> kbl_dmc_ver1_01.bin
  -rw-r--r-- 1 root root 142656 Oct 20 21:12 
/lib/firmware/i915/kbl_guc_ver9_14.bin
  -rw-r--r-- 1 root root 218688 Aug 17 11:09 
/lib/firmware/i915/kbl_huc_ver02_00_1810.bin

  sudo cat /sys/kernel/debug/dri/0/i915_guc_load_status

  GuC firmware status:
  path: i915/kbl_guc_ver9_14.bin
  fetch: FAIL
  load: NONE
  version wanted: 9.14
  version found: 0.0
  header: offset is 0; size = 0
  uCode: offset is 0; size = 0
  RSA: offset is 0; size = 0

  GuC status 0x00000001:
  Bootrom status = 0x0
  uKernel status = 0x0
  MIA Core status = 0x0

  Scratch registers:
  0: 0x0
  1: 0x0
  2: 0x0
  3: 0x0
  4: 0x0
  5: 0x0
  6: 0x0
  7: 0x0
  8: 0x0
  9: 0x0
  10: 0x0
  11: 0x0
  12: 0x0
  13: 0x0
  14: 0x0
  15: 0x0

  sudo cat /sys/kernel/debug/dri/0/i915_huc_load_status

  HuC firmware status:
  path: i915/kbl_huc_ver02_00_1810.bin
  fetch: SUCCESS
  load: SUCCESS
  version wanted: 2.0
  version found: 2.0
  header: offset is 0; size = 128
  uCode: offset is 128; size = 218304
  RSA: offset is 218432; size = 256

  HuC status 0x00006000:

  dmesg

  [    1.052879] hidraw: raw HID events driver (C) Jiri Kosina
  [    1.056426] wmi_bus wmi_bus-PNP0C14:01: WQBC data block query control 
method not found
  [    1.080320] rtsx_pci 0000:3b:00.0: enabling device (0000 -> 0002)
  [    1.082308] nvme nvme0: pci function 0000:3c:00.0
  [    1.095073] Setting dangerous option enable_guc_loading - tainting kernel
  [    1.095075] Setting dangerous option enable_guc_submission - tainting 
kernel
  [    1.097867] [drm] Memory usable by graphics device = 4078M
  [    1.097869] checking generic (90000000 1fb0000) vs hw (90000000 10000000)
  [    1.097869] fb: switching to inteldrmfb from EFI VGA
  [    1.097899] Console: switching to colour dummy device 80x25
  [    1.098049] [drm] Replacing VGA console driver
  [    1.104157] [drm] Supports vblank timestamp caching Rev 2 (21.10.2013).
  [    1.104157] [drm] Driver supports precise vblank timestamp query.
  [    1.112506] [drm] Finished loading DMC firmware i915/kbl_dmc_ver1_01.bin 
(v1.1)
  [    1.113055] i915 0000:00:02.0: vgaarb: changed VGA decodes: 
olddecodes=io+mem,decodes=io+mem:owns=io+mem
  [    1.284194] usb 1-1: new low-speed USB device number 2 using xhci_hcd
  [    1.298572]  nvme0n1: p1 p2
  [    1.433241] usb 1-1: New USB device found, idVendor=0d62, idProduct=001c
  [    1.433242] usb 1-1: New USB device strings: Mfr=1, Product=2, 
SerialNumber=0
  [    1.433243] usb 1-1: Product: USB+PS2 Keyboard
  [    1.433244] usb 1-1: Manufacturer: Generic
  [    1.446460] usbcore: registered new interface driver usbhid
  [    1.446461] usbhid: USB HID core driver
  [    1.448067] input: Generic USB+PS2 Keyboard as 
/devices/pci0000:00/0000:00:14.0/usb1/1-1/1-1:1.0/0003:0D62:001C.0001/input/input7
  [    1.508451] hid-generic 0003:0D62:001C.0001: input,hidraw0: USB HID v1.10 
Keyboard [Generic USB+PS2 Keyboard] on usb-0000:00:14.0-1/input0
  [    1.508541] input: Generic USB+PS2 Keyboard as 
/devices/pci0000:00/0000:00:14.0/usb1/1-1/1-1:1.1/0003:0D62:001C.0002/input/input8
  [    1.552213] usb 1-2: new full-speed USB device number 3 using xhci_hcd
  [    1.568448] hid-generic 0003:0D62:001C.0002: input,hidraw1: USB HID v1.10 
Device [Generic USB+PS2 Keyboard] on usb-0000:00:14.0-1/input1
  [    1.695655] usb 1-2: New USB device found, idVendor=046d, idProduct=c52b
  [    1.695656] usb 1-2: New USB device strings: Mfr=1, Product=2, 
SerialNumber=0
  [    1.695657] usb 1-2: Product: USB Receiver
  [    1.695658] usb 1-2: Manufacturer: Logitech
  [    1.702641] logitech-djreceiver 0003:046D:C52B.0005: hiddev0,hidraw2: USB 
HID v1.11 Device [Logitech USB Receiver] on usb-0000:00:14.0-2/input2
  [    1.820317] usb 1-3: new full-speed USB device number 4 using xhci_hcd
  [    1.835948] input: Logitech M510 as 
/devices/pci0000:00/0000:00:14.0/usb1/1-2/1-2:1.2/0003:046D:C52B.0005/0003:046D:4051.0006/input/input9
  [    1.836129] logitech-hidpp-device 0003:046D:4051.0006: input,hidraw3: USB 
HID v1.11 Mouse [Logitech M510] on usb-0000:00:14.0-2:1
  [    1.838085] input: Logitech K750 as 
/devices/pci0000:00/0000:00:14.0/usb1/1-2/1-2:1.2/0003:046D:C52B.0005/0003:046D:4002.0007/input/input10
  [    1.838283] logitech-hidpp-device 0003:046D:4002.0007: input,hidraw4: USB 
HID v1.11 Keyboard [Logitech K750] on usb-0000:00:14.0-2:2
  [    1.896270] psmouse serio1: synaptics: queried max coordinates: x 
[..5666], y [..4734]
  [    1.927267] psmouse serio1: synaptics: queried min coordinates: x 
[1276..], y [1118..]
  [    1.927271] psmouse serio1: synaptics: Your touchpad (PNP: DLL075b 
PNP0f13) says it can support a different bus. If i2c-hid and hid-rmi are not 
used, you might want to try setting psmouse.synaptics_intertouch to 1 and 
report this to linux-in...@vger.kernel.org.
  [    1.938732] i915 0000:00:02.0: Direct firmware load for 
i915/kbl_guc_ver9_14.bin failed with error -2
  [    1.938733] [drm] Failed to fetch valid uC firmware from 
i915/kbl_guc_ver9_14.bin (error -2)
  [    1.944000] [drm:intel_uc_init_hw [i915]] *ERROR* GuC init failed
  [    1.944027] [drm] Falling back from GuC submission to execlist mode
  [    1.944027] [drm] GuC firmware loading disabled
  [    1.944746] [drm] Initialized i915 1.6.0 20170619 for 0000:00:02.0 on 
minor 0
  [    1.948280] clocksource: Switched to clocksource tsc
  [    1.955378] ACPI: Video Device [GFX0] (multi-head: yes  rom: no  post: no)
  [    1.956112] input: Video Bus as 
/devices/LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/LNXVIDEO:00/input/input11
  [    1.961603] usb 1-3: New USB device found, idVendor=0cf3, idProduct=e301
  [    1.961604] usb 1-3: New USB device strings: Mfr=0, Product=0, 
SerialNumber=0

  sudo update-initramfs -u -v -k all

  Adding firmware /lib/firmware/nvidia/gp10b/gr/gpccs_data.bin
  Adding firmware /lib/firmware/nvidia/gp10b/gr/gpccs_inst.bin
  Adding firmware /lib/firmware/nvidia/gp10b/gr/gpccs_bl.bin
  Adding firmware /lib/firmware/nvidia/gp10b/gr/fecs_sig.bin
  Adding firmware /lib/firmware/nvidia/gp10b/gr/fecs_data.bin
  Adding firmware /lib/firmware/nvidia/gp10b/gr/fecs_inst.bin
  Adding firmware /lib/firmware/nvidia/gp10b/gr/fecs_bl.bin
  Adding firmware /lib/firmware/nvidia/gp10b/acr/ucode_load.bin
  Adding firmware /lib/firmware/nvidia/gp10b/acr/bl.bin
  Adding module 
/lib/modules/4.13.0-16-generic/kernel/drivers/gpu/drm/vgem/vgem.ko
  Adding module 
/lib/modules/4.13.0-16-generic/kernel/drivers/gpu/drm/vmwgfx/vmwgfx.ko
  Adding module 
/lib/modules/4.13.0-16-generic/kernel/drivers/gpu/drm/cirrus/cirrus.ko
  Adding module 
/lib/modules/4.13.0-16-generic/kernel/drivers/gpu/drm/bridge/analogix-anx78xx.ko
  Adding module 
/lib/modules/4.13.0-16-generic/kernel/drivers/gpu/drm/i915/i915.ko
  Adding firmware /lib/firmware/i915/bxt_dmc_ver1_07.bin
  Adding firmware /lib/firmware/i915/skl_dmc_ver1_26.bin
  Adding firmware /lib/firmware/i915/kbl_dmc_ver1_01.bin
  Adding firmware /lib/firmware/i915/skl_guc_ver6_1.bin
  Adding firmware /lib/firmware/i915/kbl_huc_ver02_00_1810.bin
  Adding firmware /lib/firmware/i915/bxt_huc_ver01_07_1398.bin
  Adding firmware /lib/firmware/i915/skl_huc_ver01_07_1398.bin
  Adding module /lib/modules/4.13.0-16-generic/kernel/virt/lib/irqbypass.ko
  Adding module /lib/modules/4.13.0-16-generic/kernel/arch/x86/kvm/kvm.ko
  Adding module /lib/modules/4.13.0-16-generic/kernel/drivers/vfio/vfio.ko
  Adding module 
/lib/modules/4.13.0-16-generic/kernel/drivers/vfio/vfio_iommu_type1.ko
  Adding module /lib/modules/4.13.0-16-generic/kernel/drivers/vfio/mdev/mdev.ko
  Adding module 
/lib/modules/4.13.0-16-generic/kernel/drivers/vfio/mdev/vfio_mdev.ko
  Adding module 
/lib/modules/4.13.0-16-generic/kernel/drivers/gpu/drm/i915/gvt/kvmgt.ko
  Adding module 
/lib/modules/4.13.0-16-generic/kernel/drivers/gpu/drm/i2c/ch7006.ko
  Adding module 
/lib/modules/4.13.0-16-generic/kernel/drivers/gpu/drm/i2c/sil164.ko
  Adding module 
/lib/modules/4.13.0-16-generic/kernel/drivers/gpu/drm/i2c/tda998x.ko
  Adding module 
/lib/modules/4.13.0-16-generic/kernel/drivers/gpu/drm/gma500/gma500_gfx.ko
  Adding module /lib/modules/4.13.0-16-generic/kernel/drivers/gpu/drm/udl/udl.ko
  Adding module 
/lib/modules/4.13.0-16-generic/kernel/drivers/gpu/drm/hisilicon/hibmc/hibmc-drm.ko
  Adding module 
/lib/modules/4.13.0-16-generic/kernel/drivers/gpu/drm/radeon/radeon.ko
  Adding firmware /lib/firmware/radeon/R520_cp.bin
  Adding firmware /lib/firmware/radeon/RS600_cp.bin
  Adding firmware /lib/firmware/radeon/RS690_cp.bin
  Adding firmware /lib/firmware/radeon/R420_cp.bin
  Adding firmware /lib/firmware/radeon/R300_cp.bin
  Adding firmware /lib/firmware/radeon/R200_cp.bin
  Adding firmware /lib/firmware/radeon/R100_cp.bin
  Adding firmware /lib/firmware/radeon/SUMO2_me.bin
  Adding firmware /lib/firmware/radeon/SUMO2_pfp.bin
  Adding firmware /lib/firmware/radeon/SUMO_me.bin

To manage notifications about this bug go to:
https://bugs.launchpad.net/initramfs-tools/+bug/1728238/+subscriptions

-- 
Mailing list: https://launchpad.net/~kernel-packages
Post to     : kernel-packages@lists.launchpad.net
Unsubscribe : https://launchpad.net/~kernel-packages
More help   : https://help.launchpad.net/ListHelp

Reply via email to