Are boot time journalctl entries for "ucsi_ccg 0-0008: failed to get FW build information" something to fix or informational?

Looking back through my reboots in journalctl, it looks like I’ve been getting this notification rather consistently near/at the top of my logs…

$ journalctl -k --priority err
-- Journal begins at Tue 2021-07-13 15:47:15 CDT, ends at Fri 2021-12-10 15:42:16 CST. --
Dec 10 15:01:33 AM4-5600X-Linux kernel: ucsi_ccg 0-0008: failed to get FW build information

Doing a quick DDG, I see some references that made me think this might have something to do with USB… but I’m not sure.

If it is USB related, I know I’ve always had a question about what this odd/blank entry is in my USB list…

$ lsusb -s 1:4
Bus 001 Device 004: ID 0000:0000  
verbose lsusb details of the device here
$ lsusb -s 1:4 -vvv

Bus 001 Device 004: ID 0000:0000  
Couldn't open device, some information will be missing
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               2.00
  bDeviceClass            9 Hub
  bDeviceSubClass         0 
  bDeviceProtocol         2 TT per port
  bMaxPacketSize0        64
  idVendor           0x0000 
  idProduct          0x0000 
  bcdDevice           32.98
  iManufacturer           0 
  iProduct                0 
  iSerial                 0 
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength       0x0029
    bNumInterfaces          1
    bConfigurationValue     1
    iConfiguration          0 
    bmAttributes         0xe0
      Self Powered
      Remote Wakeup
    MaxPower                0mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           1
      bInterfaceClass         9 Hub
      bInterfaceSubClass      0 
      bInterfaceProtocol      1 Single TT
      iInterface              0 
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0001  1x 1 bytes
        bInterval              12
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       1
      bNumEndpoints           1
      bInterfaceClass         9 Hub
      bInterfaceSubClass      0 
      bInterfaceProtocol      2 TT per port
      iInterface              0 
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0001  1x 1 bytes
        bInterval              12

If I was to guess what this odd USB entry is, I’d say it was the USB-C port on my AMD 6800XT… because it is absent from the global lsusb list…

$ lsusb
Bus 008 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 007 Device 002: ID 1b1c:1b11 Corsair K95 RGB Mechanical Gaming Keyboard
Bus 007 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 006 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 005 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 003 Device 007: ID 051d:0002 American Power Conversion Uninterruptible Power Supply
Bus 003 Device 006: ID 04a9:27e5 Canon, Inc. MF731C/733C
Bus 003 Device 005: ID 05e3:0608 Genesys Logic, Inc. Hub
Bus 003 Device 004: ID 1462:7c35 Micro Star International MYSTIC LIGHT 
Bus 003 Device 003: ID 1b1c:0a3d Corsair CORSAIR VIRTUOSO SE USB Gaming Headset
Bus 003 Device 002: ID 045e:028e Microsoft Corp. Xbox360 Controller
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 005: ID 1b1c:1b3b Corsair Corsair Gaming MM800 RGB POLARIS
Bus 001 Device 004: ID 0000:0000  
Bus 001 Device 003: ID 1b1c:1b79 Corsair CORSAIR SABRE RGB PRO Gaming Mouse
Bus 001 Device 002: ID 8087:0029 Intel Corp. AX200 Bluetooth
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

Yet does make it’s presence known in the lspci list (the below list was manually targeted to GPU) as a USB Controller

$ lspci -vvv

2f:00.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Navi 21 [Radeon RX 6800/6800 XT / 6900 XT] (rev c1) (prog-if 00 [VGA controller])
        Subsystem: XFX Limited XFX Speedster MERC 319 AMD Radeon RX 6800 XT Black
        Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx+
        Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort+ <TAbort- <MAbort- >SERR- <PERR- INTx-
        Latency: 0, Cache Line Size: 64 bytes
        Interrupt: pin A routed to IRQ 212
        IOMMU group: 29
        Region 0: Memory at 7800000000 (64-bit, prefetchable) [size=16G]
        Region 2: Memory at 7c00000000 (64-bit, prefetchable) [size=256M]
        Region 4: I/O ports at e000 [size=256]
        Region 5: Memory at fca00000 (32-bit, non-prefetchable) [size=1M]
        Expansion ROM at fcb00000 [disabled] [size=128K]
        Capabilities: <access denied>
        Kernel driver in use: amdgpu
        Kernel modules: amdgpu

2f:00.1 Audio device: Advanced Micro Devices, Inc. [AMD/ATI] Navi 21 HDMI Audio [Radeon RX 6800/6800 XT / 6900 XT]
        Subsystem: Advanced Micro Devices, Inc. [AMD/ATI] Navi 21 HDMI Audio [Radeon RX 6800/6800 XT / 6900 XT]
        Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx+
        Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
        Latency: 0, Cache Line Size: 64 bytes
        Interrupt: pin B routed to IRQ 209
        IOMMU group: 30
        Region 0: Memory at fcb24000 (32-bit, non-prefetchable) [size=16K]
        Capabilities: <access denied>
        Kernel driver in use: snd_hda_intel
        Kernel modules: snd_hda_intel

2f:00.2 USB controller: Advanced Micro Devices, Inc. [AMD/ATI] Device 73a6 (prog-if 30 [XHCI])
        Subsystem: Advanced Micro Devices, Inc. [AMD/ATI] Device 73a6
        Control: I/O+ Mem+ BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx+
        Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
        Interrupt: pin C routed to IRQ 190
        IOMMU group: 31
        Region 0: Memory at fc900000 (64-bit, non-prefetchable) [size=1M]
        Capabilities: <access denied>
        Kernel driver in use: xhci_hcd
        Kernel modules: xhci_pci

2f:00.3 Serial bus controller [0c80]: Advanced Micro Devices, Inc. [AMD/ATI] Navi 21 USB
        Subsystem: Advanced Micro Devices, Inc. [AMD/ATI] Device 0408
        Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx+
        Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
        Latency: 0, Cache Line Size: 64 bytes
        Interrupt: pin D routed to IRQ 68
        IOMMU group: 32
        Region 0: Memory at fcb20000 (64-bit, non-prefetchable) [size=16K]
        Capabilities: <access denied>
        Kernel driver in use: i2c-designware-pci

Any assistance understanding what this message means and what my actions should be would be greatly appreciated. My guessing and DDG research isn’t getting me very far… and I have a suspicion that the GPU’s USB Controller might be one of the many listed Linux Foundation X.0 root hub entries… meaning I’m chasing red herrings.

@Daniel-I On my investigations, I figured that the module ucsi_ccg is there to get usb type c ports working on a nvidia gpu only. Since you don’t have a nvidia gpu or nvidia chipset, you can ignore it or just blacklist it. It is an error, but should not effect your system.

1 Like

Thank you for sharing your investigation and feedback @megavolt !

I appreciate knowing ucsi_ccg is nVidia GPU specific, so not relevant since I use an AMD GPU.

I’ll likely make a note to ignore this entry going forward… but I’m also not shy about learning how I would blacklist this kernel module to prevent this “unnecessary” error (in my case).

Following Kernel module - ArchWiki, I think my steps would be…

  • I executed $ mkinitcpio -M just to confirm the module name was listed as expected
$ mkinitcpio -M | grep -i ucsi_ccg
ucsi_ccg
  1. Since I have no files under /etc/modprobe.d/ I would begin by creating one via $ sudo nano /etc/modprobe.d/no_nvidia_gpu_usb.conf
  2. Within nano I would add the following contents…
# Do not load the 'ucsi_ccg' module on boot... I don't have an nVidia GPU, so loading a module for its USB port is pointless.
blacklist ucsi_ccg
  1. I confirmed I have the modconf hook in my HOOKS array… so I can safely ignore the part of editing the FILES array
$ cat /etc/mkinitcpio.conf | grep -i modconf
HOOKS="base udev autodetect modconf block keyboard keymap filesystems fsck"
  1. Now that the blacklisting is in place, I’d run $ mkinitcpio -P to regenerate all initramfs files for my installed kernels
  2. Reboot
  3. Validate blacklisting worked via…
    • I feel $ mkinitcpio -M should no longer list ucsi_ccg :x:… but, more importantly…
    • Running $ journalctl -k --priority err should confirm no more ucsi_ccg error messages :white_check_mark:
2 Likes

This topic was automatically closed 2 days after the last reply. New replies are no longer allowed.