Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 19 Jun 2018 21:38:17 +0200
From:      Phil Norman <philnorm@gmail.com>
To:        freebsd-stable@freebsd.org
Subject:   USB trouble on Ryzen 3/AsRock mobo.
Message-ID:  <CAOa8eG69GBjo_BnEFb5E%2BicoAoucVPg0hUFUBVo%2BPVWqA_oBMg@mail.gmail.com>

next in thread | raw e-mail | index | archive | help
Hi.

I've recently converted to FreeBSD, fleeing the Windowsification of Ubuntu.
I've been having some trouble with the USB system, which seems strange as
FreeBSD's USB stack is, according to a friend, rock solid. I'd like to
narrow down if this is a hardware (CPU or mobo) or software issue.

I'm running a Ryzen 3 1200, plugged into a "Fatal1ty X370 Gaming-ITX/ac"
motherboard (chosen because it supports ECC RAM and fits in an ITX case).

On a cold boot (ie starting by flipping the physical PSU power switch), BSD
boots up nice and quickly, without errors, and then runs for days without a
single USB-related error on dmesg. However, any other kind of reboot which
doesn't interrupt the electricity supply yields a large number of USB
errors (USB_ERR_TIMEOUTs every few seconds or so) and frequent resets of
the xhci0 controller.

On occasion, I also get problems with my keyboard randomly stopping working
(but then, if the USB subsystem is continuously resetting, that's only to
be expected). I also seem to get slow USB storage device read throughput
(2MB/s from a USB3 SSD), although I can't rule out that being caused by the
fuse ext4fs driver.

Here's what I see in dmesg when the USB system's in spam mode:

----------------
xhci0: Resetting controller
usb_alloc_device: set address 2 failed (USB_ERR_TIMEOUT, ignored)
usbd_setup_device_desc: getting device descriptor at addr 2 failed,
USB_ERR_TIMEOUT
igb0: link state changed to UP
usbd_req_re_enumerate: addr=2, set address failed! (USB_ERR_TIMEOUT,
ignored)
usbd_setup_device_desc: getting device descriptor at addr 2 failed,
USB_ERR_TIMEOUT
uhid0 on uhub3
uhid0: <vendor 0x046d product 0xc214, class 0/0, rev 1.10/2.05, addr 3> on
usbus1
uhid1 on uhub3
uhid1: <KINESIS FREESTYLE KB800 KB800 Kinesis Freestyle, class 0/0, rev
1.10/1.22, addr 4> on usbus1
ums0 on uhub2
ums0: <Logitech USB Optical Mouse, class 0/0, rev 2.00/72.00, addr 5> on
usbus1
ums0: 3 buttons and [XYZ] coordinates ID=0
usbd_req_re_enumerate: addr=2, set address failed! (USB_ERR_TIMEOUT,
ignored)
usbd_setup_device_desc: getting device descriptor at addr 2 failed,
USB_ERR_TIMEOUT
usbd_req_re_enumerate: addr=2, set address failed! (USB_ERR_TIMEOUT,
ignored)
usbd_setup_device_desc: getting device descriptor at addr 2 failed,
USB_ERR_TIMEOUT
usbd_req_re_enumerate: addr=2, set address failed! (USB_ERR_TIMEOUT,
ignored)
usbd_setup_device_desc: getting device descriptor at addr 2 failed,
USB_ERR_TIMEOUT
ugen0.2: <Unknown > at usbus0 (disconnected)
uhub_reattach_port: could not allocate new device
uhub1: at usbus0, port 1, addr 1 (disconnected)
uhub1: <0x1022 XHCI root HUB, class 9/0, rev 3.00/1.00, addr 1> on usbus0
uhub1: 22 ports with 22 removable, self powered
xhci0: Resetting controller
-----------------


Here's the start of dmesg:

-----------------
Copyright (c) 1992-2018 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 11.2-PRERELEASE #0 r335198: Fri Jun 15 20:55:02 CEST 2018
    phil@bob:/usr/obj/usr/src/sys/BOB amd64
FreeBSD clang version 6.0.0 (tags/RELEASE_600/final 326565) (based on LLVM
6.0.0)
VT(efifb): resolution 1024x768
CPU: AMD Ryzen 3 1200 Quad-Core Processor            (3094.26-MHz K8-class
CPU)
  Origin="AuthenticAMD"  Id=0x800f11  Family=0x17  Model=0x1  Stepping=1

Features=0x178bfbff<FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CLFLUSH,MMX,FXSR,SSE,SSE2,HTT>

Features2=0x7ed8320b<SSE3,PCLMULQDQ,MON,SSSE3,FMA,CX16,SSE4.1,SSE4.2,MOVBE,POPCNT,AESNI,XSAVE,OSXSAVE,AVX,F16C,RDRAND>
  AMD Features=0x2e500800<SYSCALL,NX,MMX+,FFXSR,Page1GB,RDTSCP,LM>
  AMD
Features2=0x35c233ff<LAHF,CMP,SVM,ExtAPIC,CR8,ABM,SSE4A,MAS,Prefetch,OSVW,SKINIT,WDT,TCE,Topology,PCXC,PNXC,DBE,PL2I,MWAITX>
  Structured Extended
Features=0x209c01a9<FSGSBASE,BMI1,AVX2,SMEP,BMI2,RDSEED,ADX,SMAP,CLFLUSHOPT,SHA>
  XSAVE Features=0xf<XSAVEOPT,XSAVEC,XINUSE,XSAVES>
  AMD Extended Feature Extensions ID EBX=0x1007<CLZERO,IRPerf,XSaveErPtr>
  SVM: (disabled in BIOS) NP,NRIP,VClean,AFlush,DAssist,NAsids=32768
  TSC: P-state invariant, performance statistics
real memory  = 17179869184 (16384 MB)
avail memory = 16519221248 (15753 MB)
Event timer "LAPIC" quality 600
ACPI APIC Table: <ALASKA A M I >
FreeBSD/SMP: Multiprocessor System Detected: 4 CPUs
FreeBSD/SMP: 1 package(s) x 4 core(s)
random: unblocking device.
Firmware Warning (ACPI): Optional FADT field Pm2ControlBlock has valid
Length but zero Address: 0x0000000000000000/0x1 (20171214/tbfadt-796)
ioapic0 <Version 2.1> irqs 0-23 on motherboard
ioapic1 <Version 2.1> irqs 24-55 on motherboard
SMP: AP CPU #3 Launched!
SMP: AP CPU #2 Launched!
SMP: AP CPU #1 Launched!
Timecounter "TSC-low" frequency 1547130097 Hz quality 1000
random: entropy device external interface
kbd0 at kbdmux0
netmap: loaded module
module_register_init: MOD_LOAD (vesa, 0xffffffff80a3bd40, 0) error 19
random: registering fast source Intel Secure Key RNG
random: fast provider: "Intel Secure Key RNG"
nvidia-modeset: Loading NVIDIA Kernel Mode Setting Driver for UNIX
platforms  390.59  Wed May  9 21:54:48 PDT 2018
nexus0
cryptosoft0: <software crypto> on motherboard
aesni0: <AES-CBC,AES-XTS,AES-GCM,AES-ICM> on motherboard
acpi0: <ALASKA A M I > on motherboard
acpi0: Power Button (fixed)
cpu0: <ACPI CPU> on acpi0
cpu1: <ACPI CPU> on acpi0
cpu2: <ACPI CPU> on acpi0
cpu3: <ACPI CPU> on acpi0
attimer0: <AT timer> port 0x40-0x43 irq 0 on acpi0
Timecounter "i8254" frequency 1193182 Hz quality 0
Event timer "i8254" frequency 1193182 Hz quality 100
atrtc0: <AT realtime clock> port 0x70-0x71 on acpi0
atrtc0: registered as a time-of-day clock, resolution 1.000000s
Event timer "RTC" frequency 32768 Hz quality 0
hpet0: <High Precision Event Timer> iomem 0xfed00000-0xfed003ff irq 0,8 on
acpi0
Timecounter "HPET" frequency 14318180 Hz quality 950
Event timer "HPET" frequency 14318180 Hz quality 450
Event timer "HPET1" frequency 14318180 Hz quality 450
Event timer "HPET2" frequency 14318180 Hz quality 450
Timecounter "ACPI-fast" frequency 3579545 Hz quality 900
acpi_timer0: <32-bit timer at 3.579545MHz> port 0x808-0x80b on acpi0
pcib0: <ACPI Host-PCI bridge> port 0xcf8-0xcff on acpi0
pcib0: _OSC returned error 0x10
pci0: <ACPI PCI bus> on pcib0
amdsmn0: <AMD Family 17h System Management Network> on hostb0
amdtemp0: <AMD CPU On-Die Thermal Sensors> on hostb0
pci0: <base peripheral, IOMMU> at device 0.2 (no driver attached)
pcib1: <ACPI PCI-PCI bridge> at device 1.3 on pci0
pci1: <ACPI PCI bus> on pcib1
xhci0: <XHCI (generic) USB 3.0 controller> mem 0xf77a0000-0xf77a7fff irq 32
at device 0.0 on pci1
xhci0: 32 bytes context size, 64-bit DMA
usbus0 on xhci0
-----------------

I don't remember if I had similar USB trouble on Linux, but I definitely
did during my brief excursion into NetBSD. If anyone knows whether this is
likely to be a CPU, mother board or software problem, or knows of something
I can try to get more information or try to debug the thing, please let me
know.

Thanks,
Phil



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAOa8eG69GBjo_BnEFb5E%2BicoAoucVPg0hUFUBVo%2BPVWqA_oBMg>