Bug 98489

Summary: Nouveau not loading PGRAPH firmware blob for gk106 in kernel 4.7.10
Product: xorg Reporter: Tuxik <tuxenergy>
Component: Driver/nouveauAssignee: Nouveau Project <nouveau>
Status: RESOLVED NOTABUG QA Contact: Xorg Project Team <xorg-team>
Severity: normal    
Priority: medium    
Version: unspecified   
Hardware: Other   
OS: All   
See Also: https://bugs.freedesktop.org/show_bug.cgi?id=93629
Whiteboard:
i915 platform: i915 features:

Description Tuxik 2016-10-29 10:01:59 UTC
Hi. Many people know that GTX660 (gk106, nve06) is working well only with firmware blobs. (see i.e. https://bugs.freedesktop.org/show_bug.cgi?id=93629)
I had using them in my old Gentoo Hardened with kernel 4.4.8 and all was fine, video card worked very well with 4 .bin files in /lib/firmware/nvidia/gk106

fecs_inst.bin
fecs_data.bin
gpccs_inst.bin
gpccs_data.bin

Now I installed a new system from scratch on same computer. Used **exactly same kernel config** (it means it is valid for all *FIRMWARE* values), but newer kernel version 4.7.10-r1. I put same firmware files into /lib/firmware/nvidia/gk106, put nouveau.config="NvGrUseFw=1" in grub kernel line, but it is not loading, I can't see line in `dmesg | grep nouveau` gr: using external firmware, as it was in my old 4.4.8 setup. 

After that, I tried to copy these blobs to old naming space, /lib/firmware/nouveau/fuc*, tried to include them in kernel directly, tried to include it in initramfs, nothing helps. It doesn't run.
My current dmesg | grep nouveau: 
[    0.000000] Kernel command line: nouveau.config="NvGrUseFw=1" BOOT_IMAGE=/kernel-genkernel-x86_64-4.7.10-hardened-r1 root=/dev/sda2 nouveau.config=NvGrUseFw=1 pax_sanitize_slab=0
[   50.006877] nouveau 0000:01:00.0: NVIDIA GK106 (0e6000a1)
[   50.069144] nouveau 0000:01:00.0: bios: version 80.06.28.00.39
[   50.070725] nouveau 0000:01:00.0: fb: 2048 MiB GDDR5
[   50.130957] nouveau 0000:01:00.0: DRM: VRAM: 2048 MiB
[   50.130959] nouveau 0000:01:00.0: DRM: GART: 1048576 MiB
[   50.130963] nouveau 0000:01:00.0: DRM: TMDS table version 2.0
[   50.130965] nouveau 0000:01:00.0: DRM: DCB version 4.0
[   50.130967] nouveau 0000:01:00.0: DRM: DCB outp 00: 02000f00 00000000
[   50.130970] nouveau 0000:01:00.0: DRM: DCB outp 01: 01000f02 00020030
[   50.130972] nouveau 0000:01:00.0: DRM: DCB outp 03: 02011f62 00020010
[   50.130973] nouveau 0000:01:00.0: DRM: DCB outp 04: 04822fb6 0f420010
[   50.130975] nouveau 0000:01:00.0: DRM: DCB outp 05: 04022f72 00020010
[   50.130977] nouveau 0000:01:00.0: DRM: DCB outp 06: 08033f82 00020030
[   50.130979] nouveau 0000:01:00.0: DRM: DCB conn 00: 00001030
[   50.130981] nouveau 0000:01:00.0: DRM: DCB conn 01: 00010161
[   50.130983] nouveau 0000:01:00.0: DRM: DCB conn 02: 00020246
[   50.130985] nouveau 0000:01:00.0: DRM: DCB conn 03: 01000331
[   50.192971] nouveau 0000:01:00.0: DRM: MM: using COPY for buffer copies
[   50.484265] nouveau 0000:01:00.0: DRM: allocated 1920x1080 fb: 0x60000, bo ffff880401a4f000
[   50.484398] fbcon: nouveaufb (fb0) is primary device
[   50.944161] nouveau 0000:01:00.0: fb0: nouveaufb frame buffer device
[   50.969789] [drm] Initialized nouveau 1.3.1 20120801 for 0000:01:00.0 on minor 0

My old dmesg | grep nouveau
[    0.000000] Kernel command line: BOOT_IMAGE=/kernel-genkernel-x86_64-4.4.8-hardened-r1 root=/dev/sda2 nouveau.config=NvGrUseFw=1 pax_sanitize_slab=0
[   36.316263] nouveau 0000:01:00.0: NVIDIA GK106 (0e6000a1)
[   36.377566] nouveau 0000:01:00.0: bios: version 80.06.28.00.39
[   36.378674] nouveau 0000:01:00.0: gr: using external firmware
[   36.525601] nouveau 0000:01:00.0: fb: 2048 MiB GDDR5
[   36.582036] nouveau 0000:01:00.0: DRM: VRAM: 2048 MiB
[   36.582038] nouveau 0000:01:00.0: DRM: GART: 1048576 MiB
[   36.582041] nouveau 0000:01:00.0: DRM: TMDS table version 2.0
[   36.582043] nouveau 0000:01:00.0: DRM: DCB version 4.0
[   36.582045] nouveau 0000:01:00.0: DRM: DCB outp 00: 02000f00 00000000
[   36.582047] nouveau 0000:01:00.0: DRM: DCB outp 01: 01000f02 00020030
[   36.582049] nouveau 0000:01:00.0: DRM: DCB outp 03: 02011f62 00020010
[   36.582051] nouveau 0000:01:00.0: DRM: DCB outp 04: 04822fb6 0f420010
[   36.582053] nouveau 0000:01:00.0: DRM: DCB outp 05: 04022f72 00020010
[   36.582055] nouveau 0000:01:00.0: DRM: DCB outp 06: 08033f82 00020030
[   36.582057] nouveau 0000:01:00.0: DRM: DCB conn 00: 00001030
[   36.582058] nouveau 0000:01:00.0: DRM: DCB conn 01: 00010161
[   36.582060] nouveau 0000:01:00.0: DRM: DCB conn 02: 00020246
[   36.582062] nouveau 0000:01:00.0: DRM: DCB conn 03: 01000331
[   36.645456] nouveau 0000:01:00.0: DRM: MM: using COPY for buffer copies
[   36.932869] nouveau 0000:01:00.0: DRM: allocated 1920x1080 fb: 0x60000, bo ffff8804057f2000
[   36.933004] fbcon: nouveaufb (fb0) is primary device
[   37.394395] nouveau 0000:01:00.0: fb0: nouveaufb frame buffer device
[   37.419462] [drm] Initialized nouveau 1.3.1 20120801 for 0000:01:00.0 on minor 0

So it contains line 'gr: using external firmware'

Please help me load these blobs back to my new system to work without freezes.

Thanks a lot
Comment 1 Ilia Mirkin 2016-10-30 15:41:50 UTC
That message was removed in "gr/gf100: load firmware in outer function" (in v4.6). The load should error out if you're forcing firmware load and you don't have firmware available.

Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.