From nobody Mon Apr 11 13:59:08 2022 X-Original-To: freebsd-arm@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id F2BC11A932CE for ; Mon, 11 Apr 2022 13:56:25 +0000 (UTC) (envelope-from archimedes.gaviola@gmail.com) Received: from mail-ej1-x62b.google.com (mail-ej1-x62b.google.com [IPv6:2a00:1450:4864:20::62b]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (2048 bits) client-digest SHA256) (Client CN "smtp.gmail.com", Issuer "GTS CA 1D4" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4KcVkw6rf4z3FN5 for ; Mon, 11 Apr 2022 13:56:24 +0000 (UTC) (envelope-from archimedes.gaviola@gmail.com) Received: by mail-ej1-x62b.google.com with SMTP id l7so25624939ejn.2 for ; Mon, 11 Apr 2022 06:56:24 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=IBsCs9d6SJsf0dBykefFjJBdYbgBNujQoONptBR5ZAc=; b=OXa6FN0TGksSVmRYE05dkYCY2QX5a3MHFtkOs/kX6lUNpVqn6uVth1uCMMD4EQJqC4 sf4ZiKntqk0DFghFLbPPALw6257xu2FLk3s6x/ntrpFFYvbYGlQARTlRxO+2TpZ4gfll YgHVOqw0L/gK/SgnBMOErwXIvLokGctpP1jS+XZFHXuw2upus6kQJFix+WhXQiuZ+VmB EPEqOSwSjszo4iXSZmkybSHmeuyiTC8CPE14SKzIkKNfzOWSGLHRm8sDlAFYxPBpH6bE l4QJKLIlW2A3ugxd/714DX90cdO/JTvvjS5TJ/xe6Yc8J03DNWJFkQZ/bIiLLJMKkVup xXWw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=IBsCs9d6SJsf0dBykefFjJBdYbgBNujQoONptBR5ZAc=; b=esEd6uhAhhnjc7n9XrA+klm2NCCs8oGDHm0SLLvrLxKdI+x4PrxT9hJjylFFxzUPVi S87SSb6W8cA4wyPbrM/Xz3SZne0SfYoDMHavEMHunqdHgYtckNzK2E6qbgBDZx4njqF7 56dwekZCLRghpIv8ip1cLKEDuNBV8jHGH4hFROhxAgcTXXGMr8T2Ht/xD65pDrVV2tDW UEqj42wj95DOWzACs8NrlY47PK7LF9ej3qvAjfYGRF/E01TCTJsDvs+UR0Ype7xeAzEY NOGM4wj/WX4KXGsvB083krZuO2RUhZqg/yb0WBTjZw4XD2s/eaz1SbbKGuLd7DJB43R1 tMXA== X-Gm-Message-State: AOAM531gYVEvrkbbOuU4wnSAycjPyzZAaLnOKmMk4qkjF2hXOTL7lHFd xqa/pS1AitNlaiXcH1dnVj1PA8z7AOg5iQ4Uzj4TQ7sFwAQ= X-Google-Smtp-Source: ABdhPJy12UfCxtJYatfbGtr6hYi+XdXbWv8tf7Rspp6+KMdYR6DmPuaLlksNbH8KMHAKocdBYHe9E4RpHTtpVA8oswQ= X-Received: by 2002:a17:906:5d14:b0:6e8:90d6:efe4 with SMTP id g20-20020a1709065d1400b006e890d6efe4mr4954019ejt.559.1649685383860; Mon, 11 Apr 2022 06:56:23 -0700 (PDT) List-Id: Porting FreeBSD to ARM processors List-Archive: https://lists.freebsd.org/archives/freebsd-arm List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-freebsd-arm@freebsd.org MIME-Version: 1.0 References: <5deaf68b-267c-56dd-603d-8ec0d82ceae2@selasky.org> In-Reply-To: <5deaf68b-267c-56dd-603d-8ec0d82ceae2@selasky.org> From: Archimedes Gaviola Date: Mon, 11 Apr 2022 21:59:08 +0800 Message-ID: Subject: Re: Raspberry Pi 3B Over-current USB To: Hans Petter Selasky Cc: freebsd-arm@freebsd.org Content-Type: multipart/alternative; boundary="0000000000004bd56205dc614fc0" X-Rspamd-Queue-Id: 4KcVkw6rf4z3FN5 X-Spamd-Bar: -- Authentication-Results: mx1.freebsd.org; dkim=pass header.d=gmail.com header.s=20210112 header.b=OXa6FN0T; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (mx1.freebsd.org: domain of archimedesgaviola@gmail.com designates 2a00:1450:4864:20::62b as permitted sender) smtp.mailfrom=archimedesgaviola@gmail.com X-Spamd-Result: default: False [-2.49 / 15.00]; TO_DN_SOME(0.00)[]; FREEMAIL_FROM(0.00)[gmail.com]; R_SPF_ALLOW(-0.20)[+ip6:2a00:1450:4000::/36]; MID_RHS_MATCH_FROMTLD(0.00)[]; DKIM_TRACE(0.00)[gmail.com:+]; RCPT_COUNT_TWO(0.00)[2]; DMARC_POLICY_ALLOW(-0.50)[gmail.com,none]; NEURAL_HAM_SHORT(-1.00)[-1.000]; FROM_EQ_ENVFROM(0.00)[]; MIME_TRACE(0.00)[0:+,1:+,2:~]; FREEMAIL_ENVFROM(0.00)[gmail.com]; ASN(0.00)[asn:15169, ipnet:2a00:1450::/32, country:US]; TAGGED_FROM(0.00)[]; DWL_DNSWL_NONE(0.00)[gmail.com:dkim]; ARC_NA(0.00)[]; R_DKIM_ALLOW(-0.20)[gmail.com:s=20210112]; FROM_HAS_DN(0.00)[]; NEURAL_HAM_LONG(-1.00)[-1.000]; MIME_GOOD(-0.10)[multipart/alternative,text/plain]; PREVIOUSLY_DELIVERED(0.00)[freebsd-arm@freebsd.org]; NEURAL_SPAM_MEDIUM(0.51)[0.510]; TO_MATCH_ENVRCPT_SOME(0.00)[]; RCVD_IN_DNSWL_NONE(0.00)[2a00:1450:4864:20::62b:from]; MLMMJ_DEST(0.00)[freebsd-arm]; RCVD_COUNT_TWO(0.00)[2]; RCVD_TLS_ALL(0.00)[] X-ThisMailContainsUnwantedMimeParts: N Status: O Content-Length: 43718 Lines: 907 --0000000000004bd56205dc614fc0 Content-Type: text/plain; charset="UTF-8" On Mon, Apr 11, 2022 at 5:10 PM Hans Petter Selasky wrote: > On 4/9/22 20:04, Archimedes Gaviola wrote: > > Hi, > > > > I have a Prolific PL2303 USB-serial device when plugged-in to my > Raspberry > > Pi 3B (14.0-CURRENT) will cause an over-current situation (enabled USB > hub > > debugging hw.usb.uhub.debug=1) as observed in the dmesg below. All 4 > ports > > got no power hence my USB keyboard was disconnected and stopped > functioning > > and my PL2303 device wasn't able to get detected and load its uplcom(4) > > driver. However, the network is still okay in which I am able to access > the > > system over SSH. > > > > ukbd0: on usbus1 > > kbd1 at ukbd0 > > lo0: link state changed to UP > > smsc0: chip 0xec00, rev. 0002 > > ue0: link state changed to DOWN > > ue0: link state changed to UP > > uhid0 on uhub1 > > uhid0: on usbus1 > > usb_needs_explore: > > usb_bus_powerd: bus=0xffff000089390000 > > usb_needs_explore: > > usb_bus_powerd: bus=0xffff000089390000 > > usb_needs_explore: > > usb_bus_powerd: bus=0xffff000089390000 > > usb_needs_explore: > > usb_bus_powerd: bus=0xffff000089390000 > > usb_needs_explore: > > usb_bus_powerd: bus=0xffff000089390000 > > uhub_explore: Overcurrent on port 2. > > uhub_reattach_port: reattaching port 4 > > ugen1.4: at usbus1 (disconnected) > > ukbd0: at uhub1, port 4, addr 4 (disconnected) > > uhub_child_location: device not on hub > > uhub_child_pnpinfo: device not on hub > > ukbd0: detached > > uhid0: at uhub1, port 4, addr 4 (disconnected) > > uhub_child_location: device not on hub > > uhub_child_pnpinfo: device not on hub > > uhid0: detached > > usb_needs_explore: > > usb_bus_powerd: bus=0xffff000089390000 > > usb_needs_explore: > > usb_bus_powerd: bus=0xffff000089390000 > > usb_needs_explore: > > usb_bus_powerd: bus=0xffff000089390000 > > > > Here's also the USB device info of my PL2303 device. > > > > root@generic:~ # usbconfig -u 0 -a 5 dump_all_desc > > ugen0.5: at usbus0, > > cfg=0 md=HOST spd=FULL (12Mbps) pwr=ON (100mA) > > bLength = 0x0012 > > bDescriptorType = 0x0001 > > bcdUSB = 0x0200 > > bDeviceClass = 0x0000 > > bDeviceSubClass = 0x0000 > > bDeviceProtocol = 0x0000 > > bMaxPacketSize0 = 0x0040 > > idVendor = 0x067b > > idProduct = 0x2303 > > bcdDevice = 0x0300 > > iManufacturer = 0x0001 > > iProduct = 0x0002 > > iSerialNumber = 0x0000 > > bNumConfigurations = 0x0001 > > > > Configuration index 0 > > > > bLength = 0x0009 > > bDescriptorType = 0x0002 > > wTotalLength = 0x0027 > > bNumInterfaces = 0x0001 > > bConfigurationValue = 0x0001 > > iConfiguration = 0x0000 > > bmAttributes = 0x00a0 > > bMaxPower = 0x0032 > > > > Interface 0 > > bLength = 0x0009 > > bDescriptorType = 0x0004 > > bInterfaceNumber = 0x0000 > > bAlternateSetting = 0x0000 > > bNumEndpoints = 0x0003 > > bInterfaceClass = 0x00ff > > bInterfaceSubClass = 0x0000 > > bInterfaceProtocol = 0x0000 > > iInterface = 0x0000 > > > > Endpoint 0 > > bLength = 0x0007 > > bDescriptorType = 0x0005 > > bEndpointAddress = 0x0081 > > bmAttributes = 0x0003 > > wMaxPacketSize = 0x000a > > bInterval = 0x0001 > > bRefresh = 0x0000 > > bSynchAddress = 0x0000 > > > > Endpoint 1 > > bLength = 0x0007 > > bDescriptorType = 0x0005 > > bEndpointAddress = 0x0002 > > bmAttributes = 0x0002 > > wMaxPacketSize = 0x0040 > > bInterval = 0x0000 > > bRefresh = 0x0000 > > bSynchAddress = 0x0000 > > > > Endpoint 2 > > bLength = 0x0007 > > bDescriptorType = 0x0005 > > bEndpointAddress = 0x0083 > > bmAttributes = 0x0002 > > wMaxPacketSize = 0x0040 > > bInterval = 0x0000 > > bRefresh = 0x0000 > > bSynchAddress = 0x0000 > > > > I'm using a USB port measuring device that can check the voltage and > > current usages and by default (without any USB devices attached) each > port > > reads as 5.15 volts and 0.00 amperes for current of 3B. I'm using the > > official Raspberry Pi Stontronics power adapter with 5.1V with 2.5A DC > > output https://docs.rs-online.com/0c30/0900766b814dc7bb.pdf. From here > due > > to over-current, I cannot obtain the actual power consumptions specific > to > > my PL2303 device so I try installing the latest Raspberry Pi OS to check > if > > it behaves the same. I found out that it has a similar behavior and > > experience getting over-current with additional under-voltage detected > > messages. However, it's interesting to observe that even in an > over-current > > and under-voltage experience, all the ports are re-powered up and > > functioning and then able to load the PL2303 driver and I am able to use > it > > via /dev/ttyUSB0 device. This time I could see the measuring device > giving > > a 4.93 volts with 0.46 amperes of current (460mA) in the PL2303 device > (see > > captured measurement here https://filebin.net/kqq664yf9w70omnh). Below > is > > the dmesg log I've got from RPi OS. > > > > [ 7490.507686] usb 1-1-port2: over-current change #3 > > [ 7490.722717] usb 1-1.2: USB disconnect, device number 5 > > [ 7491.006607] hwmon hwmon1: Undervoltage detected! > > [ 7491.094482] usb 1-1.5: new full-speed USB device number 7 using > dwc_otg > > [ 7491.198613] usb 1-1.5: New USB device found, idVendor=067b, > > idProduct=2303, bcdDevice= 3.00 > > [ 7491.198676] usb 1-1.5: New USB device strings: Mfr=1, Product=2, > > SerialNumber=0 > > [ 7491.198700] usb 1-1.5: Product: USB-Serial Controller > > [ 7491.198722] usb 1-1.5: Manufacturer: Prolific Technology Inc. > > [ 7491.200210] pl2303 1-1.5:1.0: pl2303 converter detected > > [ 7491.206808] usb 1-1.5: pl2303 converter now attached to ttyUSB0 > > [ 7491.209222] usb 1-1-port2: over-current change #4 > > [ 7491.646484] usb 1-1.2: new low-speed USB device number 8 using dwc_otg > > [ 7491.770462] usb 1-1.2: New USB device found, idVendor=09da, > > idProduct=2267, bcdDevice= 1.05 > > [ 7491.770515] usb 1-1.2: New USB device strings: Mfr=1, Product=2, > > SerialNumber=0 > > [ 7491.770539] usb 1-1.2: Product: USB Keyboard > > [ 7491.770560] usb 1-1.2: Manufacturer: A4Tech > > [ 7491.793771] input: A4Tech USB Keyboard as > > > /devices/platform/soc/3f980000.usb/usb1/1-1/1-1.2/1-1.2:1.0/0003:09DA:2267.0004/input/input6 > > [ 7491.852612] hid-generic 0003:09DA:2267.0004: input,hidraw0: USB HID > > v1.11 Keyboard [A4Tech USB Keyboard] on usb-3f980000.usb-1.2/input0 > > [ 7491.875068] input: A4Tech USB Keyboard as > > > /devices/platform/soc/3f980000.usb/usb1/1-1/1-1.2/1-1.2:1.1/0003:09DA:2267.0005/input/input7 > > [ 7491.935697] hid-generic 0003:09DA:2267.0005: input,hidraw1: USB HID > > v1.11 Device [A4Tech USB Keyboard] on usb-3f980000.usb-1.2/input1 > > [ 7495.038507] hwmon hwmon1: Voltage normalised > > > > Though this experience is specific to the Raspberry 3B case, is there a > way > > to enable this in FreeBSD? Knowing that there is dropping of voltage to > > 4.93 volts and current is 460mA which is still below the maximum of > 500mA? > > > > You need an external self-powerd USB HUB. > Hi Hans, Noted on the self-powered hub, thanks for the suggestion, I will try. Just wanted to share the observation from the testing I've conducted with my Raspberry Pi 4B with the same 14.0-CURRENT to check if overcurrent is also experienced and it did, there was overcurrent and each ports' power shut-off during the situation but it was able to recover back. I initiated the command 'usbconfig reset' and each port gloriously came back alive one by one and loaded my USB keyboard and Prolific uplcom(4) drivers into functional and operational states. My measuring device is showing the same amount of current 460mA while the voltage stayed at 5.05 from a baseline of 5.15 volts https://filebin.net/10vy575q6h2yl8og. Unlike my RPi 3B, voltage dropped to 4.93 from a baseline of 5.19 volts. So, the difference I observed is when the voltage dropped below 5, the system will not give a chance to make the ports come back alive as a sort of protection mechanism. Sharing to you the logs below (with hw.usb.uhub.debug=1). usb_needs_explore: usb_bus_powerd: bus=0xffff000091fcb428 usb_needs_explore: usb_bus_powerd: bus=0xffff000091fcb428 usb_bus_powerd: Recomputing power masks usbd_transfer_power_ref: Adding type 0 to power state usbd_transfer_power_ref: needs power usb_needs_explore: usb_bus_powerd: bus=0xffff000091fcb428 usb_bus_powerd: Recomputing power masks usbd_transfer_power_ref: Adding type 0 to power state usbd_transfer_power_ref: needs power usb_needs_explore: usb_bus_powerd: bus=0xffff000091fcb428 usb_bus_powerd: Recomputing power masks usbd_transfer_power_ref: Adding type 0 to power state usbd_transfer_power_ref: needs power uhub_reset_tt_callback: TT buffer reset uhub_reset_tt_callback: TT buffer reset usb_needs_explore: usb_bus_powerd: bus=0xffff000091fcb428 uhub_reattach_port: reattaching port 2 ugen0.3: at usbus0 (disconnected) ukbd0: at uhub1, port 2, addr 2 (disconnected) uhub_child_location: device not on hub uhub_child_pnpinfo: device not on hub ukbd0: detached uhid0: at uhub1, port 2, addr 2 (disconnected) uhub_child_location: device not on hub uhub_child_pnpinfo: device not on hub uhid0: detached uhub_explore: Overcurrent on port 3. uhub_explore: Overcurrent on port 4. uhub_explore: Overcurrent on port 2. uhub_explore: Overcurrent on port 3. uhub_explore: Overcurrent on port 4. uhub_explore: Overcurrent on port 5. usb_needs_explore: usb_bus_powerd: bus=0xffff000091fcb428 uhub_explore: Overcurrent on port 1. uhub_explore: Overcurrent on port 2. usb_needs_explore: usb_bus_powerd: bus=0xffff000091fcb428 usb_needs_explore: usb_bus_powerd: bus=0xffff000091fcb428 usb_bus_powerd: Recomputing power masks usbd_transfer_power_ref: Adding type 0 to power state usbd_transfer_power_ref: needs power usb_needs_explore: usb_bus_powerd: bus=0xffff000091fcb428 usb_bus_powerd: Recomputing power masks usbd_transfer_power_ref: Adding type 0 to power state usbd_transfer_power_ref: needs power usb_needs_explore: usb_bus_powerd: bus=0xffff000091fcb428 usb_bus_powerd: Recomputing power masks usbd_transfer_power_ref: Adding type 0 to power state usbd_transfer_power_ref: needs power usb_needs_explore: usb_bus_powerd: bus=0xffff000091fcb428 usb_bus_powerd: Recomputing power masks usbd_transfer_power_ref: Adding type 0 to power state usbd_transfer_power_ref: needs power usb_needs_explore: usb_bus_powerd: bus=0xffff000091fcb428 usb_bus_powerd: Recomputing power masks usbd_transfer_power_ref: Adding type 0 to power state usbd_transfer_power_ref: needs power usb_needs_explore: usb_bus_powerd: bus=0xffff000091fcb428 usb_bus_powerd: Recomputing power masks usbd_transfer_power_ref: Adding type 0 to power state usbd_transfer_power_ref: needs power usb_needs_explore: usb_bus_powerd: bus=0xffff000091fcb428 usb_bus_powerd: Recomputing power masks usbd_transfer_power_ref: Adding type 0 to power state usbd_transfer_power_ref: needs power usb_needs_explore: usb_bus_powerd: bus=0xffff000091fcb428 usb_bus_powerd: Recomputing power masks usbd_transfer_power_ref: Adding type 0 to power state usbd_transfer_power_ref: needs power usb_needs_explore: usb_bus_powerd: bus=0xffff000091fcb428 usb_bus_powerd: Recomputing power masks usbd_transfer_power_ref: Adding type 0 to power state usbd_transfer_power_ref: needs power usb_needs_explore: usb_bus_powerd: bus=0xffff000091fcb428 usb_bus_powerd: Recomputing power masks usbd_transfer_power_ref: Adding type 0 to power state usbd_transfer_power_ref: needs power usb_needs_explore: usb_bus_powerd: bus=0xffff000091fcb428 usb_bus_powerd: Recomputing power masks usbd_transfer_power_ref: Adding type 0 to power state usbd_transfer_power_ref: needs power usb_needs_explore: usb_bus_powerd: bus=0xffff000091fcb428 usb_bus_powerd: Recomputing power masks usbd_transfer_power_ref: Adding type 0 to power state usbd_transfer_power_ref: needs power usb_needs_explore: usb_bus_powerd: bus=0xffff000091fcb428 usb_bus_powerd: Recomputing power masks usbd_transfer_power_ref: Adding type 0 to power state usbd_transfer_power_ref: needs power usb_needs_explore: usb_bus_powerd: bus=0xffff000091fcb428 usb_bus_powerd: Recomputing power masks usbd_transfer_power_ref: Adding type 0 to power state usbd_transfer_power_ref: needs power usb_needs_explore: uhub0: at usbus0, port 1, addr 1 (disconnected) ugen0.2: at usbus0 (disconnected) uhub1: at uhub0, port 1, addr 1 (disconnected) uhub_child_location: device not on hub uhub_child_pnpinfo: device not on hub uhub1: detached uhub0: detached uhub0 on usbus0 uhub0: <(0x1106) XHCI root HUB, class 9/0, rev 3.00/1.00, addr 1> on usbus0 uhub_attach: turn on port 1 power uhub_attach: turn on port 2 power usb_needs_explore: uhub_attach: turn on port 3 power uhub_attach: turn on port 4 power uhub_attach: turn on port 5 power uhub0: 5 ports with 4 removable, self powered usb_needs_explore: usb_bus_powerd: bus=0xffff000091fcb428 usb_bus_powerd: Recomputing power masks uhub_reattach_port: reattaching port 1 uhub_reattach_port: Port 1 is in Host Mode usb_needs_explore: usbd_transfer_power_ref: Adding type 0 to power state usbd_transfer_power_ref: needs power ugen0.2: at usbus0 uhub1 on uhub0 uhub1: on usbus0 uhub_attach: turn on port 1 power uhub_attach: turn on port 2 power uhub_attach: turn on port 3 power uhub_attach: turn on port 4 power uhub1: 4 ports with 4 removable, self powered usb_needs_explore: usbd_transfer_power_ref: Adding type 3 to power state usbd_transfer_power_ref: needs power uhub_explore: Overcurrent on port 1. uhub_reattach_port: reattaching port 1 uhub_explore: Overcurrent on port 2. uhub_reattach_port: reattaching port 2 uhub_explore: Overcurrent on port 3. uhub_reattach_port: reattaching port 3 uhub_reattach_port: Port 3 is in Host Mode usb_needs_explore: ugen0.3: at usbus0 uhub_explore: Overcurrent on port 4. uhub_reattach_port: reattaching port 4 uhub_explore: Overcurrent on port 2. uhub_reattach_port: reattaching port 2 uhub_explore: Overcurrent on port 3. uhub_reattach_port: reattaching port 3 uhub_explore: Overcurrent on port 4. uhub_reattach_port: reattaching port 4 uhub_explore: Overcurrent on port 5. uhub_reattach_port: reattaching port 5 usb_bus_powerd: bus=0xffff000091fcb428 usb_needs_explore: usb_needs_explore: usb_bus_powerd: bus=0xffff000091fcb428 uplcom0 on uhub1 uplcom0: on usbus0 usb_bus_powerd: bus=0xffff000091fcb428 usb_needs_explore: usb_bus_powerd: bus=0xffff000091fcb428 usb_bus_powerd: Recomputing power masks usbd_transfer_power_ref: Adding type 0 to power state usbd_transfer_power_ref: needs power usb_needs_explore: usb_bus_powerd: bus=0xffff000091fcb428 usb_bus_powerd: Recomputing power masks usbd_transfer_power_ref: Adding type 0 to power state usbd_transfer_power_ref: needs power usb_needs_explore: usb_bus_powerd: bus=0xffff000091fcb428 usb_bus_powerd: Recomputing power masks usbd_transfer_power_ref: Adding type 0 to power state usbd_transfer_power_ref: needs power usb_needs_explore: usb_bus_powerd: bus=0xffff000091fcb428 usb_bus_powerd: Recomputing power masks usbd_transfer_power_ref: Adding type 0 to power state usbd_transfer_power_ref: needs power usb_needs_explore: usb_bus_powerd: bus=0xffff000091fcb428 usb_bus_powerd: Recomputing power masks usbd_transfer_power_ref: Adding type 0 to power state usbd_transfer_power_ref: needs power usb_needs_explore: usb_bus_powerd: bus=0xffff000091fcb428 usb_bus_powerd: Recomputing power masks usbd_transfer_power_ref: Adding type 0 to power state usbd_transfer_power_ref: needs power usb_needs_explore: usb_bus_powerd: bus=0xffff000091fcb428 usb_bus_powerd: Recomputing power masks usbd_transfer_power_ref: Adding type 0 to power state usbd_transfer_power_ref: needs power usb_needs_explore: usb_bus_powerd: bus=0xffff000091fcb428 usb_bus_powerd: Recomputing power masks usbd_transfer_power_ref: Adding type 0 to power state usbd_transfer_power_ref: needs power usb_needs_explore: usb_bus_powerd: bus=0xffff000091fcb428 usb_bus_powerd: Recomputing power masks usbd_transfer_power_ref: Adding type 0 to power state usbd_transfer_power_ref: needs power usb_needs_explore: usb_bus_powerd: bus=0xffff000091fcb428 usb_bus_powerd: Recomputing power masks usbd_transfer_power_ref: Adding type 0 to power state usbd_transfer_power_ref: needs power usb_needs_explore: usb_bus_powerd: bus=0xffff000091fcb428 usb_bus_powerd: Recomputing power masks usbd_transfer_power_ref: Adding type 0 to power state usbd_transfer_power_ref: needs power usb_needs_explore: usb_bus_powerd: bus=0xffff000091fcb428 usb_bus_powerd: Recomputing power masks usbd_transfer_power_ref: Adding type 0 to power state usbd_transfer_power_ref: needs power usb_needs_explore: usb_bus_powerd: bus=0xffff000091fcb428 usb_bus_powerd: Recomputing power masks usbd_transfer_power_ref: Adding type 0 to power state usbd_transfer_power_ref: needs power usb_needs_explore: usb_bus_powerd: bus=0xffff000091fcb428 usb_bus_powerd: Recomputing power masks usbd_transfer_power_ref: Adding type 0 to power state usbd_transfer_power_ref: needs power usb_needs_explore: usb_bus_powerd: bus=0xffff000091fcb428 usb_bus_powerd: Recomputing power masks usbd_transfer_power_ref: Adding type 0 to power state usbd_transfer_power_ref: needs power usb_needs_explore: usb_bus_powerd: bus=0xffff000091fcb428 usb_bus_powerd: Recomputing power masks usbd_transfer_power_ref: Adding type 0 to power state usbd_transfer_power_ref: needs power usb_needs_explore: usb_bus_powerd: bus=0xffff000091fcb428 usb_bus_powerd: Recomputing power masks usbd_transfer_power_ref: Adding type 0 to power state usbd_transfer_power_ref: needs power usb_needs_explore: usb_bus_powerd: bus=0xffff000091fcb428 usb_bus_powerd: Recomputing power masks usbd_transfer_power_ref: Adding type 0 to power state usbd_transfer_power_ref: needs power Thanks, Archimedes --0000000000004bd56205dc614fc0 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable


=
On Mon, Apr 11, 2022 at 5:10 PM Hans = Petter Selasky <hps@selasky.org&g= t; wrote:
On 4/9= /22 20:04, Archimedes Gaviola wrote:
>=C2=A0 =C2=A0Hi,
>
> I have a Prolific PL2303 USB-serial device when plugged-in to my Raspb= erry
> Pi 3B (14.0-CURRENT) will cause an over-current situation (enabled USB= hub
> debugging hw.usb.uhub.debug=3D1) as observed in the dmesg below. All 4= ports
> got no power hence my USB keyboard was disconnected and stopped functi= oning
> and my PL2303 device wasn't able to get detected and load its uplc= om(4)
> driver. However, the network is still okay in which I am able to acces= s the
> system over SSH.
>
> ukbd0: <A4Tech USB Keyboard, class 0/0, rev 2.00/1.05, addr 4> o= n usbus1
> kbd1 at ukbd0
> lo0: link state changed to UP
> smsc0: chip 0xec00, rev. 0002
> ue0: link state changed to DOWN
> ue0: link state changed to UP
> uhid0 on uhub1
> uhid0: <A4Tech USB Keyboard, class 0/0, rev 2.00/1.05, addr 4> o= n usbus1
> usb_needs_explore:
> usb_bus_powerd: bus=3D0xffff000089390000
> usb_needs_explore:
> usb_bus_powerd: bus=3D0xffff000089390000
> usb_needs_explore:
> usb_bus_powerd: bus=3D0xffff000089390000
> usb_needs_explore:
> usb_bus_powerd: bus=3D0xffff000089390000
> usb_needs_explore:
> usb_bus_powerd: bus=3D0xffff000089390000
> uhub_explore: Overcurrent on port 2.
> uhub_reattach_port: reattaching port 4
> ugen1.4: <A4Tech USB Keyboard> at usbus1 (disconnected)
> ukbd0: at uhub1, port 4, addr 4 (disconnected)
> uhub_child_location: device not on hub
> uhub_child_pnpinfo: device not on hub
> ukbd0: detached
> uhid0: at uhub1, port 4, addr 4 (disconnected)
> uhub_child_location: device not on hub
> uhub_child_pnpinfo: device not on hub
> uhid0: detached
> usb_needs_explore:
> usb_bus_powerd: bus=3D0xffff000089390000
> usb_needs_explore:
> usb_bus_powerd: bus=3D0xffff000089390000
> usb_needs_explore:
> usb_bus_powerd: bus=3D0xffff000089390000
>
> Here's also the USB device info of my PL2303 device.
>
> root@generic:~ # usbconfig -u 0 -a 5 dump_all_desc
>=C2=A0 =C2=A0 ugen0.5: <Prolific Technology Inc. USB-Serial Controll= er> at usbus0,
> cfg=3D0 md=3DHOST spd=3DFULL (12Mbps) pwr=3DON (100mA)
>=C2=A0 =C2=A0 bLength =3D 0x0012
>=C2=A0 =C2=A0 bDescriptorType =3D 0x0001
>=C2=A0 =C2=A0 bcdUSB =3D 0x0200
>=C2=A0 =C2=A0 bDeviceClass =3D 0x0000=C2=A0 <Probed by interface cla= ss>
>=C2=A0 =C2=A0 bDeviceSubClass =3D 0x0000
>=C2=A0 =C2=A0 bDeviceProtocol =3D 0x0000
>=C2=A0 =C2=A0 bMaxPacketSize0 =3D 0x0040
>=C2=A0 =C2=A0 idVendor =3D 0x067b
>=C2=A0 =C2=A0 idProduct =3D 0x2303
>=C2=A0 =C2=A0 bcdDevice =3D 0x0300
>=C2=A0 =C2=A0 iManufacturer =3D 0x0001=C2=A0 <Prolific Technology In= c.>
>=C2=A0 =C2=A0 iProduct =3D 0x0002=C2=A0 <USB-Serial Controller> >=C2=A0 =C2=A0 iSerialNumber =3D 0x0000=C2=A0 <no string>
>=C2=A0 =C2=A0 bNumConfigurations =3D 0x0001
>
>=C2=A0 =C2=A0Configuration index 0
>
>=C2=A0 =C2=A0 =C2=A0 bLength =3D 0x0009
>=C2=A0 =C2=A0 =C2=A0 bDescriptorType =3D 0x0002
>=C2=A0 =C2=A0 =C2=A0 wTotalLength =3D 0x0027
>=C2=A0 =C2=A0 =C2=A0 bNumInterfaces =3D 0x0001
>=C2=A0 =C2=A0 =C2=A0 bConfigurationValue =3D 0x0001
>=C2=A0 =C2=A0 =C2=A0 iConfiguration =3D 0x0000=C2=A0 <no string><= br> >=C2=A0 =C2=A0 =C2=A0 bmAttributes =3D 0x00a0
>=C2=A0 =C2=A0 =C2=A0 bMaxPower =3D 0x0032
>
>=C2=A0 =C2=A0 =C2=A0 Interface 0
>=C2=A0 =C2=A0 =C2=A0 =C2=A0 bLength =3D 0x0009
>=C2=A0 =C2=A0 =C2=A0 =C2=A0 bDescriptorType =3D 0x0004
>=C2=A0 =C2=A0 =C2=A0 =C2=A0 bInterfaceNumber =3D 0x0000
>=C2=A0 =C2=A0 =C2=A0 =C2=A0 bAlternateSetting =3D 0x0000
>=C2=A0 =C2=A0 =C2=A0 =C2=A0 bNumEndpoints =3D 0x0003
>=C2=A0 =C2=A0 =C2=A0 =C2=A0 bInterfaceClass =3D 0x00ff=C2=A0 <Vendor= specific>
>=C2=A0 =C2=A0 =C2=A0 =C2=A0 bInterfaceSubClass =3D 0x0000
>=C2=A0 =C2=A0 =C2=A0 =C2=A0 bInterfaceProtocol =3D 0x0000
>=C2=A0 =C2=A0 =C2=A0 =C2=A0 iInterface =3D 0x0000=C2=A0 <no string&g= t;
>
>=C2=A0 =C2=A0 =C2=A0 =C2=A0Endpoint 0
>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 bLength =3D 0x0007
>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 bDescriptorType =3D 0x0005
>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 bEndpointAddress =3D 0x0081=C2=A0 &l= t;IN>
>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 bmAttributes =3D 0x0003=C2=A0 <IN= TERRUPT>
>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 wMaxPacketSize =3D 0x000a
>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 bInterval =3D 0x0001
>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 bRefresh =3D 0x0000
>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 bSynchAddress =3D 0x0000
>
>=C2=A0 =C2=A0 =C2=A0 =C2=A0Endpoint 1
>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 bLength =3D 0x0007
>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 bDescriptorType =3D 0x0005
>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 bEndpointAddress =3D 0x0002=C2=A0 &l= t;OUT>
>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 bmAttributes =3D 0x0002=C2=A0 <BU= LK>
>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 wMaxPacketSize =3D 0x0040
>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 bInterval =3D 0x0000
>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 bRefresh =3D 0x0000
>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 bSynchAddress =3D 0x0000
>
>=C2=A0 =C2=A0 =C2=A0 =C2=A0Endpoint 2
>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 bLength =3D 0x0007
>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 bDescriptorType =3D 0x0005
>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 bEndpointAddress =3D 0x0083=C2=A0 &l= t;IN>
>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 bmAttributes =3D 0x0002=C2=A0 <BU= LK>
>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 wMaxPacketSize =3D 0x0040
>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 bInterval =3D 0x0000
>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 bRefresh =3D 0x0000
>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 bSynchAddress =3D 0x0000
>
> I'm using a USB port measuring device that can check the voltage a= nd
> current usages and by default (without any USB devices attached) each = port
> reads as 5.15 volts and 0.00 amperes for current of 3B. I'm using = the
> official Raspberry Pi Stontronics power adapter with 5.1V with 2.5A DC=
> output https://docs.rs-online.com/0c30/0900= 766b814dc7bb.pdf. From here due
> to over-current, I cannot obtain the actual power consumptions specifi= c to
> my PL2303 device so I try installing the latest Raspberry Pi OS to che= ck if
> it behaves the same. I found out that it has a similar behavior and > experience getting over-current with additional under-voltage detected=
> messages. However, it's interesting to observe that even in an ove= r-current
> and under-voltage experience, all the ports are re-powered up and
> functioning and then able to load the PL2303 driver and I am able to u= se it
> via /dev/ttyUSB0 device. This time I could see the measuring device gi= ving
> a 4.93 volts with 0.46 amperes of current (460mA) in the PL2303 device= (see
> captured measurement here https://filebin.net/kqq664yf9w70o= mnh). Below is
> the dmesg log I've got from RPi OS.
>
> [ 7490.507686] usb 1-1-port2: over-current change #3
> [ 7490.722717] usb 1-1.2: USB disconnect, device number 5
> [ 7491.006607] hwmon hwmon1: Undervoltage detected!
> [ 7491.094482] usb 1-1.5: new full-speed USB device number 7 using dwc= _otg
> [ 7491.198613] usb 1-1.5: New USB device found, idVendor=3D067b,
> idProduct=3D2303, bcdDevice=3D 3.00
> [ 7491.198676] usb 1-1.5: New USB device strings: Mfr=3D1, Product=3D2= ,
> SerialNumber=3D0
> [ 7491.198700] usb 1-1.5: Product: USB-Serial Controller
> [ 7491.198722] usb 1-1.5: Manufacturer: Prolific Technology Inc.
> [ 7491.200210] pl2303 1-1.5:1.0: pl2303 converter detected
> [ 7491.206808] usb 1-1.5: pl2303 converter now attached to ttyUSB0
> [ 7491.209222] usb 1-1-port2: over-current change #4
> [ 7491.646484] usb 1-1.2: new low-speed USB device number 8 using dwc_= otg
> [ 7491.770462] usb 1-1.2: New USB device found, idVendor=3D09da,
> idProduct=3D2267, bcdDevice=3D 1.05
> [ 7491.770515] usb 1-1.2: New USB device strings: Mfr=3D1, Product=3D2= ,
> SerialNumber=3D0
> [ 7491.770539] usb 1-1.2: Product: USB Keyboard
> [ 7491.770560] usb 1-1.2: Manufacturer: A4Tech
> [ 7491.793771] input: A4Tech USB Keyboard as
> /devices/platform/soc/3f980000.usb/usb1/1-1/1-1.2/1-1.2:1.0/0003:09DA:= 2267.0004/input/input6
> [ 7491.852612] hid-generic 0003:09DA:2267.0004: input,hidraw0: USB HID=
> v1.11 Keyboard [A4Tech USB Keyboard] on usb-3f980000.usb-1.2/input0 > [ 7491.875068] input: A4Tech USB Keyboard as
> /devices/platform/soc/3f980000.usb/usb1/1-1/1-1.2/1-1.2:1.1/0003:09DA:= 2267.0005/input/input7
> [ 7491.935697] hid-generic 0003:09DA:2267.0005: input,hidraw1: USB HID=
> v1.11 Device [A4Tech USB Keyboard] on usb-3f980000.usb-1.2/input1
> [ 7495.038507] hwmon hwmon1: Voltage normalised
>
> Though this experience is specific to the Raspberry 3B case, is there = a way
> to enable this in FreeBSD? Knowing that there is dropping of voltage t= o
> 4.93 volts and current is 460mA which is still below the maximum of 50= 0mA?
>

You need an external self-powerd USB HUB.

Hi= Hans,

Noted on the self-powered hub, thanks for the suggestion, I will try.
<= /div>

Just w= anted to share the observation from the testing I've conducted with my = Raspberry Pi 4B with the same 14.0-CURRENT to check if overcurrent is also = experienced and it did, there was overcurrent and each ports' power shu= t-off during the situation but it was able to recover back. I initiated the= command 'usbconfig reset' and each port gloriously came back alive= one by one and loaded my USB keyboard and Prolific uplcom(4) drivers into = functional and operational states. My measuring device is showing the same = amount of current 460mA while the voltage stayed at 5.05 from a baseline of= 5.15 volts https://filebi= n.net/10vy575q6h2yl8og. Unlike my RPi 3B, voltage dropped to 4.93 from = a baseline of 5.19 volts. So, the difference I observed is when the voltage= dropped below 5, the system will not give a chance to make the ports come = back alive as a sort of protection mechanism. Sharing to you the logs below= (with hw.usb.uhub.debug=3D1).

usb_needs_explore:
usb_bus_powerd: bus=3D0xffff000091fcb428
usb_needs= _explore:
usb_bus_powerd: bus=3D0xffff000091fcb428
usb_bus_powerd: Recomputing power masks
usbd_transfer_power_ref: = Adding type 0 to power state
usbd_transfer_power_ref: needs power
usb= _needs_explore:
usb_bus_powerd: bus=3D0xffff000091fcb428
usb_bus_powerd: Recomputing power masks
usbd_transfe= r_power_ref: Adding type 0 to power state
usbd_transfer_power_ref: needs= power
usb_needs_explore:
usb_bus_powerd: bus=3D0xffff000091fc= b428
usb_bus_powerd: Recomputing power masksusbd_transfer_power_ref: Adding type 0 to power state
usbd_transfer_pow= er_ref: needs power
uhub_reset_tt_callback: TT buffer reset
uh= ub_reset_tt_callback: TT buffer reset
usb_needs_explore:
usb_bus_powe= rd: bus=3D0xffff000091fcb428
uhub_reattach_port: reattaching port 2
u= gen0.3: <A4Tech USB Keyboard> at usbus0 (disconnected)
ukbd0: at u= hub1, port 2, addr 2 (disconnected)
uhub_child_= location: device not on hub
uhub_child_pnpinfo: device not on hub
ukbd0: detached
uhid0: at uhub1, port 2, addr 2 (disconnected)
uhub_child_location: device not on hub
uhub_child= _pnpinfo: device not on hub
uhid0: detached
uhub_explore: Over= current on port 3.
uhub_explore: Overcurrent on port 4.
uhub_explore: Overcurrent on port 2.
uhub_explore: Ov= ercurrent on port 3.
uhub_explore: Overcurrent on port 4.
uhub_explor= e: Overcurrent on port 5.
usb_needs_explore:
usb_bus_powerd: bus=3D0x= ffff000091fcb428
uhub_explore: Overcurrent on port 1.
uhub_explore: Overcurrent on port 2.
usb_needs_explore:=
usb_bus_powerd: bus=3D0xffff000091fcb428
usb_needs_explore:
usb_b= us_powerd: bus=3D0xffff000091fcb428
usb_bus_pow= erd: Recomputing power masks
usbd_transfer_power_ref: Adding type 0 to p= ower state
usbd_transfer_power_ref: needs power
usb_needs_explore:
usb_bus_powerd: bus=3D0xffff000091fcb428usb_bus_powerd: Recomputing power masks
usbd_transfer_power_ref: Addin= g type 0 to power state
usbd_transfer_power_ref: needs power
usb_need= s_explore:
usb_bus_powerd: bus=3D0xffff000091fcb428
usb_bus_powerd: Recomputing power masks
usbd_transfer_pow= er_ref: Adding type 0 to power state
usbd_transfer_power_ref: needs powe= r
usb_needs_explore:
usb_bus_powerd: bus=3D0xffff000091fcb428<= span class=3D"gmail-im">
usb_bus_powerd: Recomputing power masks
usbd= _transfer_power_ref: Adding type 0 to power state
usbd_transfer_power_re= f: needs power
usb_needs_explore:
usb_bus_powerd: bus=3D0xffff= 000091fcb428
usb_bus_powerd: Recomputing power = masks
usbd_transfer_power_ref: Adding type 0 to power state
usbd_tran= sfer_power_ref: needs power
usb_needs_explore:
usb_bus_powerd:= bus=3D0xffff000091fcb428
usb_bus_powerd: Recom= puting power masks
usbd_transfer_power_ref: Adding type 0 to power state=
usbd_transfer_power_ref: needs power
usb_needs_explore:
us= b_bus_powerd: bus=3D0xffff000091fcb428
usb_bus_= powerd: Recomputing power masks
usbd_transfer_power_ref: Adding type 0 t= o power state
usbd_transfer_power_ref: needs power
usb_needs_explore:=
usb_bus_powerd: bus=3D0xffff000091fcb428
usb_bus_powerd: Recomputing power masks
usbd_transfer_power_ref: Ad= ding type 0 to power state
usbd_transfer_power_ref: needs power
usb_n= eeds_explore:
usb_bus_powerd: bus=3D0xffff000091fcb428
usb_bus_powerd: Recomputing power masks
usbd_transfer_= power_ref: Adding type 0 to power state
usbd_transfer_power_ref: needs p= ower
usb_needs_explore:
usb_bus_powerd: bus=3D0xffff000091fcb4= 28
usb_bus_powerd: Recomputing power masks
u= sbd_transfer_power_ref: Adding type 0 to power state
usbd_transfer_power= _ref: needs power
usb_needs_explore:
usb_bus_powerd: bus=3D0xf= fff000091fcb428
usb_bus_powerd: Recomputing pow= er masks
usbd_transfer_power_ref: Adding type 0 to power state
usbd_t= ransfer_power_ref: needs power
usb_needs_explore:
usb_bus_powe= rd: bus=3D0xffff000091fcb428
usb_bus_powerd: Re= computing power masks
usbd_transfer_power_ref: Adding type 0 to power st= ate
usbd_transfer_power_ref: needs power
usb_needs_explore:
usb_bus_powerd: bus=3D0xffff000091fcb428
usb_b= us_powerd: Recomputing power masks
usbd_transfer_power_ref: Adding type = 0 to power state
usbd_transfer_power_ref: needs power
usb_needs_explo= re:
usb_bus_powerd: bus=3D0xffff000091fcb428
usb_bus_powerd: Recomputing power masks
usbd_transfer_power_ref:= Adding type 0 to power state
usbd_transfer_power_ref: needs power
us= b_needs_explore:
uhub0: at usbus0, port 1, addr 1 (disconnected)
ugen= 0.2: <vendor 0x2109 USB2.0 Hub> at usbus0 (disconnected)
uhub1: at= uhub0, port 1, addr 1 (disconnected)
uhub_child_location: device not on= hub
uhub_child_pnpinfo: device not on hub
uhub1: detached
uhub0: = detached
uhub0 on usbus0
uhub0: <(0x1106) XHCI root HUB, class 9/0= , rev 3.00/1.00, addr 1> on usbus0
uhub_attach: turn on port 1 power<= br>uhub_attach: turn on port 2 power
usb_needs_explore:
uhub_attach: turn on port 3 power
uhub_attach: turn o= n port 4 power
uhub_attach: turn on port 5 power
uhub0: 5 ports with = 4 removable, self powered
usb_needs_explore:
usb_bus_powerd: b= us=3D0xffff000091fcb428
usb_bus_powerd: Recompu= ting power masks
uhub_reattach_port: reattaching port 1
uhub_reattach= _port: Port 1 is in Host Mode
usb_needs_explore:
usbd_transfer_power_= ref: Adding type 0 to power state
usbd_transfer_power_ref: needs powerugen0.2: <vendor 0x2109 USB2.0 Hub> at usbus0
uhub1 on uhub0
= uhub1: <vendor 0x2109 USB2.0 Hub, class 9/0, rev 2.10/4.20, addr 1> o= n usbus0
uhub_attach: turn on port 1 power
uhub_attach: turn on port = 2 power
uhub_attach: turn on port 3 power
uhub_attach: turn on port 4= power
uhub1: 4 ports with 4 removable, self powered
usb_needs_explor= e:
usbd_transfer_power_ref: Adding type 3 to power state
usbd_transfe= r_power_ref: needs power
uhub_explore: Overcurrent on port 1.
= uhub_reattach_port: reattaching port 1
uhub_exp= lore: Overcurrent on port 2.
uhub_reattach_port: reattaching port= 2
uhub_explore: Overcurrent on port 3.
uhub_reattach_port: reattachi= ng port 3
uhub_reattach_port: Port 3 is in Host Mode
usb_needs_explor= e:
ugen0.3: <Prolific Technology Inc. USB-Se= rial Controller> at usbus0
uhub_explore: Overcurrent on port 4= .
uhub_reattach_port: reattaching port 4
uhu= b_explore: Overcurrent on port 2.
uhub_reattach_port: reattaching= port 2
uhub_explore: Overcurrent on port 3.
uhub_reattach_port: reat= taching port 3
uhub_explore: Overcurrent on port 4.
uhub_reattach_por= t: reattaching port 4
uhub_explore: Overcurrent on port 5.
uhub_reatt= ach_port: reattaching port 5
usb_bus_powerd: bus=3D0xffff000091fcb428usb_needs_explore:
usb_needs_explore:
usb_bus_powerd: bus=3D0xffff00= 0091fcb428
uplcom0 on uhub1
uplcom0: <Pro= lific Technology Inc. USB-Serial Controller, class 0/0, rev 2.00/3.00, addr= 2> on usbus0
usb_bus_powerd: bus=3D0xffff000091fcb428
usb_= needs_explore:
usb_bus_powerd: bus=3D0xffff000091fcb428
usb_bus_powerd: Recomputing power masks
usbd_transfer_power_= ref: Adding type 0 to power state
usbd_transfer_power_ref: needs powerusb_needs_explore:
usb_bus_powerd: bus=3D0xffff000091fcb428
usb_bus_powerd: Recomputing power masks
usbd_tr= ansfer_power_ref: Adding type 0 to power state
usbd_transfer_power_ref: = needs power
usb_needs_explore:
usb_bus_powerd: bus=3D0xffff000= 091fcb428
usb_bus_powerd: Recomputing power mas= ks
usbd_transfer_power_ref: Adding type 0 to power state
usbd_transfe= r_power_ref: needs power
usb_needs_explore:
usb_bus_powerd: bu= s=3D0xffff000091fcb428
usb_bus_powerd: Recomput= ing power masks
usbd_transfer_power_ref: Adding type 0 to power stateusbd_transfer_power_ref: needs power
usb_needs_explore:
usb_b= us_powerd: bus=3D0xffff000091fcb428
usb_bus_pow= erd: Recomputing power masks
usbd_transfer_power_ref: Adding type 0 to p= ower state
usbd_transfer_power_ref: needs power
usb_needs_explore:
usb_bus_powerd: bus=3D0xffff000091fcb428usb_bus_powerd: Recomputing power masks
usbd_transfer_power_ref: Addin= g type 0 to power state
usbd_transfer_power_ref: needs power
usb_need= s_explore:
usb_bus_powerd: bus=3D0xffff000091fcb428
usb_bus_powerd: Recomputing power masks
usbd_transfer_pow= er_ref: Adding type 0 to power state
usbd_transfer_power_ref: needs powe= r
usb_needs_explore:
usb_bus_powerd: bus=3D0xffff000091fcb428<= span class=3D"gmail-im">
usb_bus_powerd: Recomputing power masks
usbd= _transfer_power_ref: Adding type 0 to power state
usbd_transfer_power_re= f: needs power
usb_needs_explore:
usb_bus_powerd: bus=3D0xffff= 000091fcb428
usb_bus_powerd: Recomputing power = masks
usbd_transfer_power_ref: Adding type 0 to power state
usbd_tran= sfer_power_ref: needs power
usb_needs_explore:
usb_bus_powerd:= bus=3D0xffff000091fcb428
usb_bus_powerd: Recom= puting power masks
usbd_transfer_power_ref: Adding type 0 to power state=
usbd_transfer_power_ref: needs power
usb_needs_explore:
us= b_bus_powerd: bus=3D0xffff000091fcb428
usb_bus_= powerd: Recomputing power masks
usbd_transfer_power_ref: Adding type 0 t= o power state
usbd_transfer_power_ref: needs power
usb_needs_explore:=
usb_bus_powerd: bus=3D0xffff000091fcb428
usb_bus_powerd: Recomputing power masks
usbd_transfer_power_ref: Ad= ding type 0 to power state
usbd_transfer_power_ref: needs power
usb_n= eeds_explore:
usb_bus_powerd: bus=3D0xffff000091fcb428
usb_bus_powerd: Recomputing power masks
usbd_transfer_= power_ref: Adding type 0 to power state
usbd_transfer_power_ref: needs p= ower
usb_needs_explore:
usb_bus_powerd: bus=3D0xffff000091fcb4= 28
usb_bus_powerd: Recomputing power masks
u= sbd_transfer_power_ref: Adding type 0 to power state
usbd_transfer_power= _ref: needs power
usb_needs_explore:
usb_bus_powerd: bus=3D0xf= fff000091fcb428
usb_bus_powerd: Recomputing pow= er masks
usbd_transfer_power_ref: Adding type 0 to power state
usbd_t= ransfer_power_ref: needs power
usb_needs_explore:
usb_bus_powe= rd: bus=3D0xffff000091fcb428
usb_bus_powerd: Re= computing power masks
usbd_transfer_power_ref: Adding type 0 to power st= ate
usbd_transfer_power_ref: needs power
usb_needs_explore:
usb_bus_powerd: bus=3D0xffff000091fcb428
usb_b= us_powerd: Recomputing power masks
usbd_transfer_power_ref: Adding type = 0 to power state
usbd_transfer_power_ref: needs power
usb_needs_explo= re:
usb_bus_powerd: bus=3D0xffff000091fcb428
usb_bus_powerd: Recomputing power masks
usbd_transfer_power_ref:= Adding type 0 to power state
usbd_transfer_power_ref: needs power

Thanks,
Archimedes

=C2= =A0
--0000000000004bd56205dc614fc0--