Saturday, November 30, 2024

Re: USB C port not working on ThinkPad T470

So after further investigation, here is what I have found out.
- The USB port is not broken or disabled
- The xHCI root hub is being configured when a device is plugged in.
- The device only appears when I have it plugged in before boot.
- If I remove and insert the device, the PCI device appears with a `pcidump`,
but the USB does not get enumerated/recognized/configured/
- I have booted NetBSD, FreeBSD, and Linux. NetBSD does the same behavior.
FreeBSD and Linux somehow trigger an enumeration to configure the devices connected.


I am not familiar with PCI or xHCI in the slightest, but I have a feeling I will be learning it.
Any suggestions to point me in a direction will be greatly appreciated :)


Here is a sendbug containing what dmesg looks like when the USB C is plugged in on before boot.

>Environment:
System : OpenBSD 7.6
Details : OpenBSD 7.6-current (GENERIC.MP) #13: Sat Nov 30 15:27:53 CST 2024
root@ThinkBSD.thinkBSD.kahl:/usr/src/sys/arch/amd64/compile/GENERIC.MP

Architecture: OpenBSD.amd64
Machine : amd64

dmesg:
OpenBSD 7.6-current (GENERIC.MP) #13: Sat Nov 30 15:27:53 CST 2024
root@ThinkBSD.thinkBSD.kahl:/usr/src/sys/arch/amd64/compile/GENERIC.MP
real mem = 17038102528 (16248MB)
avail mem = 16497991680 (15733MB)
random: good seed from bootblocks
mpath0 at root
scsibus0 at mpath0: 256 targets
mainbus0 at root
bios0 at mainbus0: SMBIOS rev. 3.0 @ 0x7a6fc000 (62 entries)
bios0: vendor LENOVO version "N1QET97W (1.72 )" date 09/26/2022
bios0: LENOVO 20JNS2XC01
efi0 at bios0: UEFI 2.5
efi0: Lenovo rev 0x1720
acpi0 at bios0: ACPI 5.0
acpi0: sleep states S0 S3 S4 S5
acpi0: tables DSDT FACP SSDT TPM2 UEFI SSDT SSDT HPET APIC MCFG ECDT SSDT SSDT BOOT BATB SLIC SSDT SSDT SSDT WSMT SSDT SSDT DBGP DBG2 MSDM ASF! FPDT BGRT UEFI
acpi0: wakeup devices GLAN(S4) XHC_(S3) XDCI(S4) HDAS(S4) RP01(S4) RP02(S4) RP03(S4) RP04(S4) RP05(S4) RP06(S4) RP08(S4) RP09(S4) RP10(S4) RP11(S4) RP12(S4) RP13(S4) [...]
acpitimer0 at acpi0: 3579545 Hz, 24 bits
acpihpet0 at acpi0: 23999999 Hz
acpimadt0 at acpi0 addr 0xfee00000: PC-AT compat
cpu0 at mainbus0: apid 0 (boot processor)
cpu0: Intel(R) Core(TM) i5-6300U CPU @ 2.40GHz, 2293.33 MHz, 06-4e-03, patch 000000f0
cpu0: cpuid 1 edx=bfebfbff<FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CFLUSH,DS,ACPI,MMX,FXSR,SSE,SSE2,SS,HTT,TM,PBE> ecx=77fafbff<SSE3,PCLMUL,DTES64,MWAIT,DS-CPL,VMX,SMX,EST,TM2,SSSE3,SDBG,FMA3,CX16,xTPR,PDCM,PCID,SSE4.1,SSE4.2,x2APIC,MOVBE,POPCNT,DEADLINE,AES,XSAVE,AVX,F16C,RDRAND>
cpu0: cpuid 6 eax=27f7<SENSOR,ARAT> ecx=9<EFFFREQ>
cpu0: cpuid 7.0 ebx=29c6fbf<FSGSBASE,TSC_ADJUST,SGX,BMI1,HLE,AVX2,SMEP,BMI2,ERMS,INVPCID,RTM,MPX,RDSEED,ADX,SMAP,CLFLUSHOPT,PT> edx=bc002e00<SRBDS_CTRL,MD_CLEAR,TSXFA,IBRS,IBPB,STIBP,L1DF,SSBD>
cpu0: cpuid a vers=4, gp=4, gpwidth=48, ff=3, ffwidth=48
cpu0: cpuid d.1 eax=f<XSAVEOPT,XSAVEC,XGETBV1,XSAVES>
cpu0: cpuid 80000001 edx=2c100800<NXE,PAGE1GB,RDTSCP,LONG> ecx=121<LAHF,ABM,3DNOWP>
cpu0: cpuid 80000007 edx=100<ITSC>
cpu0: msr 10a=c04<RSBA,MISC_PKG_CT,ENERGY_FILT>
cpu0: MELTDOWN
cpu0: 32KB 64b/line 8-way D-cache, 32KB 64b/line 8-way I-cache, 256KB 64b/line 4-way L2 cache, 3MB 64b/line 12-way L3 cache
cpu0: smt 0, core 0, package 0
mtrr: Pentium Pro MTRR support, 10 var ranges, 88 fixed ranges
cpu0: apic clock running at 24MHz
cpu0: mwait min=64, max=64, C-substates=0.2.1.2.4.1.1.1, IBE
cpu1 at mainbus0: apid 2 (application processor)
cpu1: Intel(R) Core(TM) i5-6300U CPU @ 2.40GHz, 2294.66 MHz, 06-4e-03, patch 000000f0
cpu1: smt 0, core 1, package 0
cpu2 at mainbus0: apid 1 (application processor)
cpu2: Intel(R) Core(TM) i5-6300U CPU @ 2.40GHz, 2294.66 MHz, 06-4e-03, patch 000000f0
cpu2: smt 1, core 0, package 0
cpu3 at mainbus0: apid 3 (application processor)
cpu3: Intel(R) Core(TM) i5-6300U CPU @ 2.40GHz, 2294.66 MHz, 06-4e-03, patch 000000f0
cpu3: smt 1, core 1, package 0
ioapic0 at mainbus0: apid 2 pa 0xfec00000, version 20, 120 pins
acpimcfg0 at acpi0
acpimcfg0: addr 0xf0000000, bus 0-63
acpiec0 at acpi0
acpiprt0 at acpi0: bus 0 (PCI0)
acpiprt1 at acpi0: bus 2 (RP01)
acpiprt2 at acpi0: bus -1 (RP02)
acpiprt3 at acpi0: bus -1 (RP03)
acpiprt4 at acpi0: bus -1 (RP04)
acpiprt5 at acpi0: bus -1 (RP05)
acpiprt6 at acpi0: bus -1 (RP06)
acpiprt7 at acpi0: bus 4 (RP07)
acpiprt8 at acpi0: bus -1 (RP08)
acpiprt9 at acpi0: bus 5 (RP09)
acpiprt10 at acpi0: bus -1 (RP10)
acpiprt11 at acpi0: bus 62 (RP11)
acpiprt12 at acpi0: bus -1 (RP12)
acpiprt13 at acpi0: bus -1 (RP13)
acpiprt14 at acpi0: bus -1 (RP14)
acpiprt15 at acpi0: bus -1 (RP15)
acpiprt16 at acpi0: bus -1 (RP16)
acpiprt17 at acpi0: bus -1 (RP17)
acpiprt18 at acpi0: bus -1 (RP18)
acpiprt19 at acpi0: bus -1 (RP19)
acpiprt20 at acpi0: bus -1 (RP20)
acpiprt21 at acpi0: bus -1 (RP21)
acpiprt22 at acpi0: bus -1 (RP22)
acpiprt23 at acpi0: bus -1 (RP23)
acpiprt24 at acpi0: bus -1 (RP24)
acpipci0 at acpi0 PCI0: 0x00000010 0x00000011 0x00000000
acpithinkpad0 at acpi0: version 2.0
acpiac0 at acpi0: AC unit online
acpibat0 at acpi0: BAT0 model "01AV421" serial 1410 type LiP oem "SMP"
acpibat1 at acpi0: BAT1 model "01AV425" serial 22136 type LION oem "SANYO"
acpicmos0 at acpi0
acpibtn0 at acpi0: SLPB(wakeup)
"PNP0C14" at acpi0 not configured
acpibtn1 at acpi0: LID_(wakeup)
"PNP0C14" at acpi0 not configured
"PNP0C14" at acpi0 not configured
"PNP0C14" at acpi0 not configured
tpm0 at acpi0 TPM_ 2.0 (TIS) addr 0xfed40000/0x5000, device 0x0000104a rev 0x4e
"USBC000" at acpi0 not configured
acpicpu0 at acpi0: C3(200@1034 mwait.1@0x60), C2(200@151 mwait.1@0x33), C1(1000@1 mwait.1), PSS
acpicpu1 at acpi0: C3(200@1034 mwait.1@0x60), C2(200@151 mwait.1@0x33), C1(1000@1 mwait.1), PSS
acpicpu2 at acpi0: C3(200@1034 mwait.1@0x60), C2(200@151 mwait.1@0x33), C1(1000@1 mwait.1), PSS
acpicpu3 at acpi0: C3(200@1034 mwait.1@0x60), C2(200@151 mwait.1@0x33), C1(1000@1 mwait.1), PSS
acpipwrres0 at acpi0: PUBS, resource for XHC_
acpipwrres1 at acpi0: WRST
acpipwrres2 at acpi0: WRST
acpitz0 at acpi0: critical temperature is 128 degC
acpivideo0 at acpi0: GFX0
acpivout0 at acpivideo0: DD1F
cpu0: using VERW MDS workaround (except on vmm entry)
cpu0: Enhanced SpeedStep 2293 MHz: speeds: 2401, 2400, 2300, 2200, 2000, 1900, 1700, 1600, 1400, 1300, 1100, 1000, 800, 700, 500, 400 MHz
pci0 at mainbus0 bus 0
pchb0 at pci0 dev 0 function 0 "Intel Core 6G Host" rev 0x08
inteldrm0 at pci0 dev 2 function 0 "Intel HD Graphics 520" rev 0x07
drm0 at inteldrm0
inteldrm0: msi, SKYLAKE, gen 9
xhci0 at pci0 dev 20 function 0 "Intel 100 Series xHCI" rev 0x21: msi, xHCI 1.0
xhci0: CAPLENGTH=0x80
xhci0: DOORBELL=0x3000
xhci0: RUNTIME=0x2000
xhci0: 32 bytes context
xhci0: supported page size 0x00000001
xhci0: 18 ports and 64 slots
xhci0: 34 scratch pages, ETE=0, IST=0x4
xhci0: USB3PRM / USB3.0 configurable ports: 0x00000000
xhci0: USB3_PSSEN / Enabled USB3.0 ports under xHCI: 0x00000000
xhci0: XUSB2PRM / USB2.0 ports can switch from EHCI to xHCI:0x00000000
xhci0: XUSB2PR / USB2.0 ports under xHCI: 0x0000003f
usb0 at xhci0: USB revision 3.0
uhub0 at usb0 configuration 1 interface 0 "Intel xHCI root hub" rev 3.00/1.00 addr 1
xhci0: DCBAAP=0x10x1eca5000
xhci0: CRCR=00 (000000011eca6000)
xhci0: ERSTBA=0x40x7dd01000
xhci0: ERDP=0x10x1eca7000
xhci0: USBCMD=0x5
xhci0: IMAN=0x2
pchtemp0 at pci0 dev 20 function 2 "Intel 100 Series Thermal" rev 0x21
"Intel 100 Series MEI" rev 0x21 at pci0 dev 22 function 0 not configured
puc0 at pci0 dev 22 function 3 "Intel 100 Series KT" rev 0x21: ports: 16 com
com4 at puc0 port 0 apic 2 int 19: ns16550a, 16 byte fifo
ppb0 at pci0 dev 28 function 0 "Intel 100 Series PCIE" rev 0xf1: msi
pci1 at ppb0 bus 2
ppb1 at pci0 dev 28 function 6 "Intel 100 Series PCIE" rev 0xf1: msi
pci2 at ppb1 bus 4
iwm0 at pci2 dev 0 function 0 "Intel AC 8260" rev 0x3a, msi
ppb2 at pci0 dev 29 function 0 "Intel 100 Series PCIE" rev 0xf1: msi
pci3 at ppb2 bus 5
ppb3 at pci3 dev 0 function 0 "Intel JHL6240 Thunderbolt 3" rev 0x01
pci4 at ppb3 bus 6
ppb4 at pci4 dev 0 function 0 "Intel JHL6240 Thunderbolt 3" rev 0x01: msi
pci5 at ppb4 bus 7
ppb5 at pci4 dev 1 function 0 "Intel JHL6240 Thunderbolt 3" rev 0x01: msi
pci6 at ppb5 bus 8
ppb6 at pci4 dev 2 function 0 "Intel JHL6240 Thunderbolt 3" rev 0x01: msi
pci7 at ppb6 bus 61
xhci1 at pci7 dev 0 function 0 "Intel JHL6240 Thunderbolt 3" rev 0x01: msi, xHCI 1.10
xhci1: CAPLENGTH=0x80
xhci1: DOORBELL=0x3000
xhci1: RUNTIME=0x2000
xhci1: 32 bytes context
xhci1: supported page size 0x00000001
xhci1: 4 ports and 64 slots
xhci1: 34 scratch pages, ETE=0, IST=0x4
xhci1: USB3PRM / USB3.0 configurable ports: 0x00000000
xhci1: USB3_PSSEN / Enabled USB3.0 ports under xHCI: 0x00000000
xhci1: XUSB2PRM / USB2.0 ports can switch from EHCI to xHCI:0x00000000
xhci1: XUSB2PR / USB2.0 ports under xHCI: 0x10410000
usb1 at xhci1: USB revision 3.0
uhub1 at usb1 configuration 1 interface 0 "Intel xHCI root hub" rev 3.00/1.00 addr 1
xhci1: DCBAAP=0x10x1eccb000
xhci1: CRCR=00 (000000011eccc000)
xhci1: ERSTBA=0x40x7d7a1000
xhci1: ERDP=0x10x1eccd000
xhci1: USBCMD=0x5
xhci1: IMAN=0x2
ppb7 at pci0 dev 29 function 2 "Intel 100 Series PCIE" rev 0xf1: msi
pci8 at ppb7 bus 62
nvme0 at pci8 dev 0 function 0 vendor "Toshiba", unknown product 0x0116 rev 0x00: msix, NVMe 1.2
nvme0: KXG50ZNV256G NVMe TOSHIBA 256GB, firmware AADA4105, serial 889B75HKKATP
scsibus1 at nvme0: 2 targets, initiator 0
sd0 at scsibus1 targ 1 lun 0: <NVMe, KXG50ZNV256G NVM, AADA>
sd0: 244198MB, 512 bytes/sector, 500118192 sectors
pcib0 at pci0 dev 31 function 0 "Intel 100 Series LPC" rev 0x21
"Intel 100 Series PMC" rev 0x21 at pci0 dev 31 function 2 not configured
azalia0 at pci0 dev 31 function 3 "Intel 100 Series HD Audio" rev 0x21: msi
azalia0: codecs: Realtek ALC298, Intel/0x2809, using Realtek ALC298
audio0 at azalia0
ichiic0 at pci0 dev 31 function 4 "Intel 100 Series SMBus" rev 0x21: apic 2 int 16
iic0 at ichiic0
em0 at pci0 dev 31 function 6 "Intel I219-LM" rev 0x21: msi, address 54:e1:ad:d9:50:bf
isa0 at pcib0
isadma0 at isa0
com0 at isa0 port 0x3f8/8 irq 4: ns16550a, 16 byte fifo
pckbc0 at isa0 port 0x60/5 irq 1 irq 12
pckbd0 at pckbc0 (kbd slot)
wskbd0 at pckbd0: console keyboard
pms0 at pckbc0 (aux slot)
wsmouse0 at pms0 mux 0
wsmouse1 at pms0 mux 0
pms0: Synaptics clickpad, firmware 8.2, 0x1e2b1 0x940300 0x33cc40 0xf004a3 0x12e800
pcppi0 at isa0 port 0x61
spkr0 at pcppi0
efifb at mainbus0 not configured
xhci1: port=1 change=0x02
xhci0: port=7 change=0x80
xhci0: port=8 change=0x00
xhci0: port=15 change=0x00
xhci0: port=16 change=0x00
xhci0: port=7 change=0x80
xhci0: xhci_cmd_slot_control
xhci0: dev 1, input=0xfffffd811ed39000 slot=0xfffffd811ed39020 ep0=0xfffffd811ed39040
xhci0: dev 1, setting DCBAA to 0x000000011ed3f000
xhci_pipe_init: pipe=0xffff80000085b000 addr=0 depth=1 port=7 speed=2 dev 1 dci 1 (epAddr=0x0)
xhci0: xhci_cmd_set_address BSR=1
xhci0: xhci_cmd_set_address BSR=0
xhci0: dev 1 addr 1
ugen0 at uhub0 port 7 "Intel Bluetooth" rev 2.00/0.01 addr 2
xhci0: port=8 change=0x00
xhci0: xhci_cmd_slot_control
xhci0: dev 2, input=0xfffffd811ed6f000 slot=0xfffffd811ed6f020 ep0=0xfffffd811ed6f040
xhci0: dev 2, setting DCBAA to 0x000000011ed75000
xhci_pipe_init: pipe=0xffff800000860000 addr=0 depth=1 port=8 speed=3 dev 2 dci 1 (epAddr=0x0)
xhci0: xhci_cmd_set_address BSR=1
xhci0: xhci_cmd_set_address BSR=0
xhci0: dev 2 addr 2
uvideo0 at uhub0 port 8 configuration 1 interface 0 "AzureWave Integrated Camera" rev 2.00/16.20 addr 3
video0 at uvideo0
xhci0: port=15 change=0x00
xhci0: xhci_cmd_slot_control
xhci0: dev 3, input=0xfffffd811edd8000 slot=0xfffffd811edd8020 ep0=0xfffffd811edd8040
xhci0: dev 3, setting DCBAA to 0x000000011edd9000
xhci_pipe_init: pipe=0xffff800000a25000 addr=0 depth=1 port=15 speed=4 dev 3 dci 1 (epAddr=0x0)
xhci0: xhci_cmd_set_address BSR=1
xhci0: xhci_cmd_set_address BSR=0
xhci0: dev 3 addr 3
umass0 at uhub0 port 15 configuration 1 interface 0 "Generic USB3.0-CRW" rev 3.00/2.04 addr 4
umass0: using SCSI over Bulk-Only
xhci_pipe_init: pipe=0xffff800000a27000 addr=4 depth=1 port=15 speed=4 dev 3 dci 2 (epAddr=0x1)
xhci0: xhci_cmd_configure_ep dev 3
xhci_pipe_init: pipe=0xffff800000a28000 addr=4 depth=1 port=15 speed=4 dev 3 dci 5 (epAddr=0x82)
xhci0: xhci_cmd_configure_ep dev 3
scsibus2 at umass0: 2 targets, initiator 0
sd1 at scsibus2 targ 1 lun 0: <Generic-, SD/MMC, 1.00> removable serial.0bda0316501030900000
xhci0: port=16 change=0x00
xhci0: xhci_cmd_slot_control
xhci0: dev 4, input=0xfffffd811eded000 slot=0xfffffd811eded020 ep0=0xfffffd811eded040
xhci0: dev 4, setting DCBAA to 0x000000011edee000
xhci_pipe_init: pipe=0xffff800000a2a000 addr=0 depth=1 port=16 speed=4 dev 4 dci 1 (epAddr=0x0)
xhci0: xhci_cmd_set_address BSR=1
xhci0: xhci_cmd_set_address BSR=0
xhci0: dev 4 addr 4
umass1 at uhub0 port 16 configuration 1 interface 0 "Samsung Flash Drive FIT" rev 3.10/11.00 addr 5
umass1: using SCSI over Bulk-Only
xhci_pipe_init: pipe=0xffff800000a2b000 addr=5 depth=1 port=16 speed=4 dev 4 dci 2 (epAddr=0x1)
xhci0: xhci_cmd_configure_ep dev 4
xhci_pipe_init: pipe=0xffff800000a2c000 addr=5 depth=1 port=16 speed=4 dev 4 dci 5 (epAddr=0x82)
xhci0: xhci_cmd_configure_ep dev 4
scsibus3 at umass1: 2 targets, initiator 0
sd2 at scsibus3 targ 1 lun 0: <Samsung, Flash Drive FIT, 1100> removable serial.090c1000423060000769
sd2: 61188MB, 512 bytes/sector, 125313283 sectors
xhci1: port=1 change=0x02
xhci1: xhci_cmd_slot_control
xhci1: dev 1, input=0xfffffd811ee02000 slot=0xfffffd811ee02020 ep0=0xfffffd811ee02040
xhci1: dev 1, setting DCBAA to 0x000000011ee03000
xhci_pipe_init: pipe=0xffff800000a2e000 addr=0 depth=1 port=1 speed=2 dev 1 dci 1 (epAddr=0x0)
xhci1: xhci_cmd_set_address BSR=1
xhci1: xhci_cmd_set_address BSR=0
xhci1: dev 1 addr 1
uhidev0 at uhub1 port 1 configuration 1 interface 1 "Nitrokey Nitrokey 3" rev 2.10/1.07 addr 2
uhidev0: iclass 3/0
fido0 at uhidev0: input=64, output=64, feature=0
ugen1 at uhub1 port 1 configuration 1 "Nitrokey Nitrokey 3" rev 2.10/1.07 addr 2
vscsi0 at root
scsibus4 at vscsi0: 256 targets
softraid0 at root
scsibus5 at softraid0: 256 targets
sd3 at scsibus5 targ 1 lun 0: <OPENBSD, SR CRYPTO, 006>
sd3: 244197MB, 512 bytes/sector, 500116607 sectors
root on sd3a (0bc240da0332b331.a) swap on sd3b dump on sd3b
drm:pid0:intel_ddi_sanitize_encoder_pll_mapping *NOTICE* [drm] [ENCODER:102:DDI B/PHY B] is disabled/in DSI mode with an ungated DDI clock, gate it
drm:pid0:intel_ddi_sanitize_encoder_pll_mapping *NOTICE* [drm] [ENCODER:116:DDI C/PHY C] is disabled/in DSI mode with an ungated DDI clock, gate it
inteldrm0: 1920x1080, 32bpp
wsdisplay0 at inteldrm0 mux 1: console (std, vt100 emulation), using wskbd0
wsdisplay0: screen 1-5 added (std, vt100 emulation)
iwm0: hw rev 0x200, fw ver 36.ca7b901d.0, address d4:25:8b:9d:dd:fc

usbdevs:
Controller /dev/usb0:
addr 01: 8086:0000 Intel, xHCI root hub
super speed, self powered, config 1, rev 1.00
driver: uhub0
addr 02: 8087:0a2b Intel, Bluetooth
full speed, self powered, config 1, rev 0.01
driver: ugen0
addr 03: 13d3:5619 AzureWave, Integrated Camera
high speed, power 500 mA, config 1, rev 16.20, iSerial NULL
driver: uvideo0
addr 04: 0bda:0316 Generic, USB3.0-CRW
super speed, power 200 mA, config 1, rev 2.04, iSerial 20120501030900000
driver: umass0
addr 05: 090c:1000 Samsung, Flash Drive FIT
super speed, power 76 mA, config 1, rev 11.00, iSerial 0358423060000769
driver: umass1
Controller /dev/usb1:
addr 01: 8086:0000 Intel, xHCI root hub
super speed, self powered, config 1, rev 1.00
driver: uhub1
addr 02: 20a0:42b2 Nitrokey, Nitrokey 3
full speed, power 100 mA, config 1, rev 1.07
driver: uhidev0
driver: ugen1

No comments:

Post a Comment