Bug 244517 - Thinkpad X1 tablet 3rd gen: USB-C does not work
Summary: Thinkpad X1 tablet 3rd gen: USB-C does not work
Status: Closed FIXED
Alias: None
Product: Base System
Classification: Unclassified
Component: usb (show other bugs)
Version: 12.1-STABLE
Hardware: amd64 Any
: --- Affects Some People
Assignee: freebsd-usb (Nobody)
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2020-02-29 09:23 UTC by Mathias.Picker
Modified: 2021-01-15 18:41 UTC (History)
3 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Mathias.Picker 2020-02-29 09:23:40 UTC
I and a friend have Thinkpad X1 Tablets and the USB-C connectors are not working.
Nothing happens when a usb memory stick is inserted, nothing is shown in dmesg.

Loading through USB-C works fine.
USB-A works fine.

I'm running:
uname -a
FreeBSD Danton 12.1-STABLE FreeBSD 12.1-STABLE r356939 GENERIC  amd64

Any help would be apreciated.

Thanks, Mathias

More Info:

The output of usbconfig stays the same with or without something connected to USB-C

usbconfig  show_ifdrv
ugen0.1: <0x8086 XHCI root HUB> at usbus0, cfg=0 md=HOST spd=SUPER (5.0Gbps) pwr=SAVE (0mA)
ugen0.1.0: uhub0: <0x8086 XHCI root HUB, class 9/0, rev 3.00/1.00, addr 1>
ugen1.1: <0x8086 XHCI root HUB> at usbus1, cfg=0 md=HOST spd=SUPER (5.0Gbps) pwr=SAVE (0mA)
ugen1.1.0: uhub1: <0x8086 XHCI root HUB, class 9/0, rev 3.00/1.00, addr 1>
ugen0.2: <Generic 4-Port USB 2.0 Hub> at usbus0, cfg=0 md=HOST spd=HIGH (480Mbps) pwr=SAVE (0mA)
ugen0.2.0: uhub2: <Generic 4-Port USB 2.0 Hub, class 9/0, rev 2.10/1.04, addr 1>
ugen0.3: <vendor 0x046d HD Pro Webcam C920> at usbus0, cfg=0 md=HOST spd=HIGH (480Mbps) pwr=ON (500mA)
ugen0.3.2: uaudio0: <vendor 0x046d HD Pro Webcam C920, class 239/2, rev 2.00/0.11, addr 2>
ugen0.4: <CM Storm Quickfire TKL 6keys> at usbus0, cfg=0 md=HOST spd=FULL (12Mbps) pwr=ON (100mA)
ugen0.4.0: ukbd0: <CM Storm Quickfire TKL 6keys, class 0/0, rev 1.10/1.11, addr 3>
ugen0.4.1: uhid0: <CM Storm Quickfire TKL 6keys, class 0/0, rev 1.10/1.11, addr 3>
ugen0.5: <La-VIEW Technology SteelSeries> at usbus0, cfg=0 md=HOST spd=FULL (12Mbps) pwr=ON (200mA)
ugen0.5.0: ums0: <La-VIEW Technology SteelSeries, class 0/0, rev 2.00/0.00, addr 4>
ugen0.5.1: ukbd1: <La-VIEW Technology SteelSeries, class 0/0, rev 2.00/0.00, addr 4>
ugen0.6: <vendor 0x8087 product 0x0a2b> at usbus0, cfg=0 md=HOST spd=FULL (12Mbps) pwr=ON (100mA)
ugen0.7: <SunplusIT Inc Integrated Camera> at usbus0, cfg=0 md=HOST spd=HIGH (480Mbps) pwr=ON (500mA)
ugen0.8: <vendor 0x06cb product 0x009a> at usbus0, cfg=0 md=HOST spd=FULL (12Mbps) pwr=ON (100mA)
ugen0.9: <Wacom Co.,Ltd. Pen and multitouch sensor> at usbus0, cfg=0 md=HOST spd=FULL (12Mbps) pwr=ON (400mA)
ugen0.10: <Generic 4-Port USB 3.0 Hub> at usbus0, cfg=0 md=HOST spd=SUPER (5.0Gbps) pwr=SAVE (0mA)
ugen0.10.0: uhub3: <Interrupt In Interface>
ugen0.11: <Generic USB3.0-CRW> at usbus0, cfg=0 md=HOST spd=SUPER (5.0Gbps) pwr=ON (200mA)
ugen0.11.0: umass0: <Bulk-In, Bulk-Out, Interface>

This is my dmesg:
---<<BOOT>>---
Copyright (c) 1992-2020 The FreeBSD Project.
Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994
	The Regents of the University of California. All rights reserved.
FreeBSD is a registered trademark of The FreeBSD Foundation.
FreeBSD 12.1-STABLE r356939 GENERIC amd64
FreeBSD clang version 8.0.1 (tags/RELEASE_801/final 366581) (based on LLVM 8.0.1)
VT(efifb): resolution 2560x1440
CPU: Intel(R) Core(TM) i7-8550U CPU @ 1.80GHz (1992.08-MHz K8-class CPU)
  Origin="GenuineIntel"  Id=0x806ea  Family=0x6  Model=0x8e  Stepping=10
  Features=0xbfebfbff<FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CLFLUSH,DTS,ACPI,MMX,FXSR,SSE,SSE2,SS,HTT,TM,PBE>
  Features2=0x7ffafbbf<SSE3,PCLMULQDQ,DTES64,MON,DS_CPL,VMX,EST,TM2,SSSE3,SDBG,FMA,CX16,xTPR,PDCM,PCID,SSE4.1,SSE4.2,x2APIC,MOVBE,POPCNT,TSCDLT,AESNI,XSAVE,OSXSAVE,AVX,F16C,RDRAND>
  AMD Features=0x2c100800<SYSCALL,NX,Page1GB,RDTSCP,LM>
  AMD Features2=0x121<LAHF,ABM,Prefetch>
  Structured Extended Features=0x29c67af<FSGSBASE,TSCADJ,SGX,BMI1,AVX2,SMEP,BMI2,ERMS,INVPCID,NFPUSG,MPX,RDSEED,ADX,SMAP,CLFLUSHOPT,PROCTRACE>
  Structured Extended Features3=0x9c000000<IBPB,STIBP,L1DFL,SSBD>
  XSAVE Features=0xf<XSAVEOPT,XSAVEC,XINUSE,XSAVES>
  VT-x: PAT,HLT,MTF,PAUSE,EPT,UG,VPID
  TSC: P-state invariant, performance statistics
real memory  = 17179869184 (16384 MB)
avail memory = 16358600704 (15600 MB)
Event timer "LAPIC" quality 600
ACPI APIC Table: <LENOVO TP-N25  >
FreeBSD/SMP: Multiprocessor System Detected: 8 CPUs
FreeBSD/SMP: 1 package(s) x 4 core(s) x 2 hardware threads
random: unblocking device.
ioapic0 <Version 2.0> irqs 0-119 on motherboard
Launching APs: 1 3 4 6 7 5 2
Timecounter "TSC" frequency 1992079213 Hz quality 1000
Cuse v0.1.36 @ /dev/cuse
random: entropy device external interface
000.000020 [4336] netmap_init               netmap: loaded module
[ath_hal] loaded
module_register_init: MOD_LOAD (vesa, 0xffffffff8114d130, 0) error 19
random: registering fast source Intel Secure Key RNG
random: fast provider: "Intel Secure Key RNG"
kbd1 at kbdmux0
nexus0
efirtc0: <EFI Realtime Clock> on motherboard
efirtc0: registered as a time-of-day clock, resolution 1.000000s
cryptosoft0: <software crypto> on motherboard
aesni0: <AES-CBC,AES-CCM,AES-GCM,AES-ICM,AES-XTS> on motherboard
acpi0: <LENOVO TP-N25> on motherboard
acpi_ec0: <Embedded Controller: GPE 0x16, ECDT> port 0x62,0x66 on acpi0
acpi0: Power Button (fixed)
unknown: memory range not supported
cpu0: <ACPI CPU> on acpi0
hpet0: <High Precision Event Timer> iomem 0xfed00000-0xfed003ff on acpi0
Timecounter "HPET" frequency 24000000 Hz quality 950
Event timer "HPET" frequency 24000000 Hz quality 550
atrtc0: <AT realtime clock> port 0x70-0x77 irq 8 on acpi0
atrtc0: Warning: Couldn't map I/O.
atrtc0: registered as a time-of-day clock, resolution 1.000000s
Event timer "RTC" frequency 32768 Hz quality 0
attimer0: <AT timer> port 0x40-0x43,0x50-0x53 irq 0 on acpi0
Timecounter "i8254" frequency 1193182 Hz quality 0
Event timer "i8254" frequency 1193182 Hz quality 100
Timecounter "ACPI-fast" frequency 3579545 Hz quality 900
acpi_timer0: <24-bit timer at 3.579545MHz> port 0x1808-0x180b on acpi0
pcib0: <ACPI Host-PCI bridge> port 0xcf8-0xcff on acpi0
pci0: <ACPI PCI bus> on pcib0
vgapci0: <VGA-compatible display> port 0xe000-0xe03f mem 0x2fe0000000-0x2fe0ffffff,0x2fc0000000-0x2fdfffffff at device 2.0 on pci0
acpi_video0: <ACPI video extension> on vgapci0
vgapci0: Boot video device
pci0: <old, non-VGA display device> at device 19.0 (no driver attached)
xhci0: <Intel Sunrise Point-LP USB 3.0 controller> mem 0x2fe1010000-0x2fe101ffff at device 20.0 on pci0
xhci0: 32 bytes context size, 64-bit DMA
usbus0 on xhci0
usbus0: 5.0Gbps Super Speed USB v3.0
pci0: <simple comms> at device 22.0 (no driver attached)
pcib1: <ACPI PCI-PCI bridge> at device 28.0 on pci0
pci1: <ACPI PCI bus> on pcib1
pci1: <network> at device 0.0 (no driver attached)
pcib2: <ACPI PCI-PCI bridge> at device 28.2 on pci0
pci2: <ACPI PCI bus> on pcib2
pci2: <wireless controller> at device 0.0 (no driver attached)
pcib3: <ACPI PCI-PCI bridge> at device 28.4 on pci0
pci3: <ACPI PCI bus> on pcib3
nvme0: <Generic NVMe Device> mem 0xec200000-0xec203fff at device 0.0 on pci3
pcib4: <ACPI PCI-PCI bridge> at device 29.0 on pci0
pcib4: [GIANT-LOCKED]
pci4: <ACPI PCI bus> on pcib4
pcib5: <ACPI PCI-PCI bridge> at device 0.0 on pci4
pci5: <ACPI PCI bus> on pcib5
pcib6: <PCI-PCI bridge> at device 0.0 on pci5
pci6: <PCI bus> on pcib6
pcib7: <PCI-PCI bridge> at device 1.0 on pci5
pcib7: [GIANT-LOCKED]
pcib8: <ACPI PCI-PCI bridge> at device 2.0 on pci5
pci7: <ACPI PCI bus> on pcib8
xhci1: <XHCI (generic) USB 3.0 controller> mem 0xec000000-0xec00ffff at device 0.0 on pci7
xhci1: 32 bytes context size, 64-bit DMA
usbus1 on xhci1
usbus1: 5.0Gbps Super Speed USB v3.0
pcib9: <PCI-PCI bridge> at device 4.0 on pci5
pcib9: [GIANT-LOCKED]
isab0: <PCI-ISA bridge> at device 31.0 on pci0
isa0: <ISA bus> on isab0
pci0: <memory> at device 31.2 (no driver attached)
hdac0: <Intel Kaby Lake-LP HDA Controller> mem 0x2fe1028000-0x2fe102bfff,0x2fe1000000-0x2fe100ffff at device 31.3 on pci0
em0: <Intel(R) PRO/1000 Network Connection> mem 0xec500000-0xec51ffff at device 31.6 on pci0
em0: Using 1024 TX descriptors and 1024 RX descriptors
em0: Using an MSI interrupt
em0: Ethernet address: 48:2a:e3:1a:da:58
em0: netmap queues/slots: TX 1/1024, RX 1/1024
acpi_button0: <Sleep Button> on acpi0
acpi_lid0: <Control Method Lid Switch> on acpi0
acpi_tz0: <Thermal Zone> on acpi0
atkbdc0: <Keyboard controller (i8042)> port 0x60,0x64 irq 1 on acpi0
atkbd0: <AT Keyboard> irq 1 on atkbdc0
kbd0 at atkbd0
atkbd0: [GIANT-LOCKED]
psm0: <PS/2 Mouse> irq 12 on atkbdc0
psm0: [GIANT-LOCKED]
psm0: model Generic PS/2 mouse, device ID 0
acpi_ibm0: <IBM ThinkPad ACPI Extras> on acpi0
acpi_ibm0: Firmware version is 0x200
acpi_acad0: <AC Adapter> on acpi0
battery0: <ACPI Control Method Battery> on acpi0
est0: <Enhanced SpeedStep Frequency Control> on cpu0
ZFS filesystem version: 5
ZFS storage pool version: features support (5000)
Timecounters tick every 1.000 msec
ugen0.1: <0x8086 XHCI root HUB> at usbus0
ugen1.1: <0x8086 XHCI root HUB> at usbus1
uhub0: <0x8086 XHCI root HUB, class 9/0, rev 3.00/1.00, addr 1> on usbus0
uhub1: <0x8086 XHCI root HUB, class 9/0, rev 3.00/1.00, addr 1> on usbus1
nvd0: <SAMSUNG MZVLB1T0HALR-000L7> NVMe namespace
nvd0: 976762MB (2000409264 512 byte sectors)
hdacc0: <Realtek ALC285 HDA CODEC> at cad 0 on hdac0
GEOM_ELI: Device nvd0p4.eli created.
hdaa0: GEOM_ELI: Encryption: AES-XTS 256
GEOM_ELI:     Crypto: hardware
<Realtek ALC285 Audio Function Group> at nid 1 on hdacc0
pcm0: <Realtek ALC285 (Internal Analog)> at nid 20 and 18 on hdaa0
pcm1: <Realtek ALC285 (Right Analog)> at nid 33 and 25 on hdaa0
hdacc1: <Intel Kaby Lake HDA CODEC> at cad 2 on hdac0
hdaa1: <Intel Kaby Lake Audio Function Group> at nid 1 on hdacc1
pcm2: <Intel Kaby Lake (HDMI/DP 8ch)> at nid 3 on hdaa1
Trying to mount root from zfs:zroot/ROOT/default []...
Root mount waiting for: usbus0 usbus1 CAM
uhub1: 4 ports with 4 removable, self powered
uhub0: 18 ports with 18 removable, self powered
Root mount waiting for: usbus0
ugen0.2: <Generic 4-Port USB 2.0 Hub> at usbus0
uhub2 on uhub0
uhub2: <Generic 4-Port USB 2.0 Hub, class 9/0, rev 2.10/1.04, addr 1> on usbus0
uhub2: MTT enabled
uhub2: 4 ports with 4 removable, self powered
Root mount waiting for: usbus0
ugen0.3: <vendor 0x046d HD Pro Webcam C920> at usbus0
Root mount waiting for: usbus0
ugen0.4: <CM Storm Quickfire TKL 6keys> at usbus0
ukbd0 on uhub2
ukbd0: <CM Storm Quickfire TKL 6keys, class 0/0, rev 1.10/1.11, addr 3> on usbus0
kbd2 at ukbd0
ugen0.5: <La-VIEW Technology SteelSeries> at usbus0
ukbd1 on uhub2
ukbd1: <La-VIEW Technology SteelSeries, class 0/0, rev 2.00/0.00, addr 4> on usbus0
kbd3 at ukbd1
Root mount waiting for: usbus0
ugen0.6: <vendor 0x8087 product 0x0a2b> at usbus0
Root mount waiting for: usbus0
ugen0.7: <SunplusIT Inc Integrated Camera> at usbus0
ugen0.8: <vendor 0x06cb product 0x009a> at usbus0
Root mount waiting for: usbus0
ugen0.9: <Wacom Co.,Ltd. Pen and multitouch sensor> at usbus0
Root mount waiting for: usbus0
ugen0.10: <Generic 4-Port USB 3.0 Hub> at usbus0
uhub3 on uhub0
uhub3: <Interrupt In Interface> on usbus0
uhub3: 4 ports with 4 removable, self powered
Root mount waiting for: usbus0
ugen0.11: <Generic USB3.0-CRW> at usbus0
umass0 on uhub0
umass0: <Bulk-In, Bulk-Out, Interface> on usbus0
umass0:  SCSI over Bulk-Only; quirks = 0x4000
umass0:0:0: Attached to scbus0
(probe0:umass-sim0:0:0:0): REPORT LUNS. CDB: a0 00 00 00 00 00 00 00 00 10 00 00 
(probe0:umass-sim0:0:0:0): CAM status: SCSI Status Error
(probe0:umass-sim0:0:0:0): SCSI status: Check Condition
(probe0:umass-sim0:0:0:0): SCSI sense: ILLEGAL REQUEST asc:24,0 (Invalid field in CDB)
(probe0:umass-sim0:0:0:0): Error 22, Unretryable error
da0 at umass-sim0 bus 0 scbus0 target 0 lun 0
da0: <Generic- SD/MMC CRW 1.00> Removable Direct Access SPC-4 SCSI device
da0: Serial Number 28203008282014000
da0: 400.000MB/s transfers
da0: Attempt to query device size failed: NOT READY, Medium not present
da0: quirks=0x2<NO_6_BYTE>
GEOM_ELI: Device nvd0p3.eli created.
GEOM_ELI: Encryption: AES-XTS 128
GEOM_ELI:     Crypto: hardware
drmn0: <drmn> on vgapci0
vgapci0: child drmn0 requested pci_enable_io
vgapci0: child drmn0 requested pci_enable_io
[drm] Unable to create a private tmpfs mount, hugepage support will be disabled(-19).
Failed to add WC MTRR for [0x2fc0000000-0x2fdfffffff]: -22; performance may suffer
[drm] Got stolen memory base rxaa800000, size 0x2000000
[drm] Supports vblank timestamp caching Rev 2 (21.10.2013).
[drm] Driver supports precise vblank timestamp query.
[drm] Connector eDP-1: get mode from tunables:
[drm]   - kern.vt.fb.modes.eDP-1
[drm]   - kern.vt.fb.default_mode
[drm] Connector DP-1: get mode from tunables:
[drm]   - kern.vt.fb.modes.DP-1
[drm]   - kern.vt.fb.default_mode
[drm] Connector HDMI-A-1: get mode from tunables:
[drm]   - kern.vt.fb.modes.HDMI-A-1
[drm]   - kern.vt.fb.default_mode
[drm] Connector DP-2: get mode from tunables:
[drm]   - kern.vt.fb.modes.DP-2
[drm]   - kern.vt.fb.default_mode
[drm] Connector HDMI-A-2: get mode from tunables:
[drm]   - kern.vt.fb.modes.HDMI-A-2
[drm]   - kern.vt.fb.default_mode
[drm] Initialized i915 1.6.0 20171222 for drmn0 on minor 0
VT: Replacing driver "efifb" with new "fb".
start FB_INFO:
type=11 height=1440 width=2560 depth=32
cmsize=16 size=32763904
pbase=0x2fc0040000 vbase=0xfffffe0094e40000
name=drmn0 flags=0x0 stride=15168 bpp=32
cmap[0]=0 cmap[1]=7f0000 cmap[2]=7f00 cmap[3]=c4a000
end FB_INFO
drmn0: fb0: inteldrmfb frame buffer device
drmn0: successfully loaded firmware image with name: i915/kbl_dmc_ver1_04.bin
[drm] Finished loading DMC firmware i915/kbl_dmc_ver1_04.bin (v1.4)
lo0: link state changed to UP
hdacc1: Unexpected unsolicited response with tag 63: ffffffff
hdacc1: Unexpected unsolicited response with tag 63: ffffffff
ig4iic0: <Intel Sunrise Point-LP I2C Controller-0> mem 0x2fe102e000-0x2fe102efff at device 21.0 on pci0
ig4iic0: Using MSI
iicbus0: <Philips I2C bus> on ig4iic0
iwm0: <Intel(R) Dual Band Wireless AC 8265> mem 0xec400000-0xec401fff at device 0.0 on pci1
iwm0: hw rev 0x230, fw ver 22.361476.0, address 18:1d:ea:16:cc:77
uaudio0 on uhub2
uaudio0: <vendor 0x046d HD Pro Webcam C920, class 239/2, rev 2.00/0.11, addr 2> on usbus0
uaudio0: No playback.
uaudio0: Record: 32000 Hz, 2 ch, 16-bit S-LE PCM format, 2x8ms buffer.
uaudio0: Record: 24000 Hz, 2 ch, 16-bit S-LE PCM format, 2x8ms buffer.
uaudio0: Record: 16000 Hz, 2 ch, 16-bit S-LE PCM format, 2x8ms buffer.
uaudio0: No MIDI sequencer.
pcm3: <USB audio> on uaudio0
uaudio0: No HID volume keys found.
uhid0 on uhub2
uhid0: <CM Storm Quickfire TKL 6keys, class 0/0, rev 1.10/1.11, addr 3> on usbus0
ums0 on uhub2
ums0: <La-VIEW Technology SteelSeries, class 0/0, rev 2.00/0.00, addr 4> on usbus0
ums0: 8 buttons and [XYZT] coordinates ID=1
wmt0 on uhub0
wmt0: <Multitouch> on usbus0
wmt0: 16 contacts and [C]. Report range [0:0] - [12372:6960]
wmt0: 10 feature report contactsuhid1 on uhub0
uhid1: <Pen> on usbus0
wmt0: at uhub0, port 10, addr 8 (disconnected)
wmt0: detached
uhid1: at uhub0, port 10, addr 8 (disconnected)
uhid1: detached
wlan0: Ethernet address: 18:1d:ea:16:cc:77
wlan0: link state changed to UP
bridge0: Ethernet address: 02:19:47:22:6e:00
bridge0: changing name to 'vm-public'
em0: promiscuous mode enabled
vm-public: link state changed to UP
Security policy loaded: MAC/ntpd (mac_ntpd)
Comment 1 Markus Graf 2020-02-29 09:29:48 UTC
Same here on my X1.
Comment 2 Mathias.Picker 2020-02-29 09:30:31 UTC
(In reply to Mathias.Picker from comment #0)
I meant to write "Charging works fine through USB-C"
Not a native speaker ;)

Cheers, Mathias
Comment 3 Hans Petter Selasky freebsd_committer freebsd_triage 2020-02-29 09:36:24 UTC
Scott Long, CC'ed is working on this.
Comment 4 Scott Long freebsd_committer freebsd_triage 2020-03-01 17:21:48 UTC
Hi,

I'm assuming that this is a Thunderbolt 3 port, since it's a USB-C connector and your devices aren't showing up in the OS.  There are some unfortunate and confusing hardware design decisions with TB3 that make it hard to work with.  I'm finishing up a driver right now and intend to make it available for testing in the next few days.  In the mean time, I recommend that you open up the BIOS on the laptop and see if there are any controls related to Thunderbolt 3.  If there are, you might find a control for the hardware security model, with options for "none", "user", "display port", and "key exchange", or some similar words.  You can try setting the security model to "none" and see if that allows your USB hardware to show up when you plug it in.  Even if it does, there might still be some problems with the hardware not working or invoking endless internal resets, but it'll at least be some good data to collect.  I'll update this bug report once I have some code that can be tested.
Comment 5 Mathias.Picker 2020-03-03 17:54:33 UTC
After setting the video ram down to 256Gb I could change the Thunderbold security to "none", but devices on the USB-C still do not show up :(

Thanks for the suggestion, though.

/ Mathias
Comment 6 Mathias.Picker 2021-01-15 18:41:26 UTC
I switched to -CURRENT and did a BIOS update on Jan 3, now USB-C works.

Since I did a BIOS update at the same time, I really do not know what's the actual reason for it to work now.

I have switched off Thunderbolt in BIOS, and I don't think I could do this before, so it might well be the bios.