USB current overlimit warnings

I am trying to get to the bottom of "USB ACCESSORIES DISABLED Unplug the accessory using too much power to re-enable USB devices" notifications I get on my 2014 iMac. These pop ups occur irrespective of: (1) which USB cables I use (2) whether the devices are directly connected to the iMac or through a powered hub (3) whether one ore more devices are connected to the powered hub. The devices in question are Seagate Backup+Hub external drives, which are themselves also self-powered.

System Information app shows the devices with no indication of over limit problems (e.g., a drive may show requires 500ma using 100ma).

dmesg:
Code Block
[ 838.878907]: 000838.878906 AppleUSB20HubPort@14114300: AppleUSBHostPort::interruptOccurred: overcurrent detected with port status 0x0, localSimulatedInterrupts = 0x1
[ 843.894384]: 000843.894382 AppleUSB30HubPort@14814300: AppleUSBHostPort::interruptOccurred: overcurrent detected with port status 0x4000, localSimulatedInterrupts = 0x1
[ 843.980643]: 000843.980642 AppleUSB20HubPort@14114300: AppleUSBHostPort::interruptOccurred: overcurrent detected with port status 0x0, localSimulatedInterrupts = 0x1


I get absolutely no discernible data errors or corruption on the drives, and the messages seem to have no effect on the volume mounts or filesystem operations. Several Seagate drives exhibit the issue. Seagate blames Apple.

So, I've resorted to capturing XHC20 traffic with Wireshark to see if I can figure out the bus messages that cause the warnings. However, I have no idea what to look for as I've never done low level USB work. Any hints?

Given the lack of actual problems, I would certainly love to at least be able to squelch the on screen notifications. Any hints?

Replies

I was able to capture USB bus traffic showing the current over-limit condition

Can someone verify that I am interpreting this XHC20 capture correctly?

As you can see, the USB bus seems to be reporting an inbound bus over-current condition ( .... .... .... 1... = C_PORT_OVER_CURRENT: True ) and it is coming from Device location ID: 0x14114000 which (per System Information) is the Seagate Backup+HUB device per System Information app (see below).

The condition continues irrespective of whether the Seagate external drive is connected directly to the mac or is connected through a powered hub ... it draws too much power regardless. So I am suspecting an internal hardware problem. But, I want to be sure I am interpreting the XHC20 capture correctly.

Please advise.

For anyone else facing this problem, roughly the steps you need are: (1) turn off system security [DO THIS WITH CAUTION!] by booting into recovery mod (cmd-R during power up), then in a terminal in recovery mode csrutil disable (2) reboot into normal OS and verify security is off csrutil status (3) download latest Wireshark (4) sudo ifconfig XHC20 up (5) capture the XHC20 interface and look for USB bus messages...


Code Block
Wireshark capture of XHC20 interface on Mac OS X BigSur:
Frame 3292: 44 bytes on wire (352 bits), 44 bytes captured (352 bits) on interface XHC20, id 0
Interface id: 0 (XHC20)
Encapsulation type: USB packets with Darwin (macOS, etc.) headers (182)
Arrival Time: Feb 19, 2021 22:09:05.360353000 PST
[Time shift for this packet: 0.000000000 seconds]
Epoch Time: 1613801345.360353000 seconds
[Time delta from previous captured frame: 0.000185000 seconds]
[Time delta from previous displayed frame: 0.000185000 seconds]
[Time since reference or first frame: 22.223360000 seconds]
Frame Number: 3292
Frame Length: 44 bytes (352 bits)
Capture Length: 44 bytes (352 bits)
[Frame is marked: False]
[Frame is ignored: False]
[Protocols in frame: usb:usbhub]
USB URB
[Source: 17.17.0]
[Destination: host]
Darwin header bcdVersion: 0x0101
Darwin header length: 40
Request type: COMPLETE (1)
I/O length [bytes]: 4
Request status: kIOReturnSuccess (0x00000000)
Isochronous transfer number of frames: 0
I/O ID: 0x0000000000f5bef7
Device location ID: 0x14114000
Device speed: High (2)
USB device index: 17
Endpoint address: 0x80
.... 0000 = Endpoint number: 0, Direction: IN
1... .... = Direction: IN (1)
.... 0000 = Endpoint number: 0
Endpoint transfer type: Control (0)
[Request in: 3291]
[Time from request: 0.000185000 seconds]
[bInterfaceClass: Unknown (0xffff)]
Port Status: 0x0000
.... .... .... ...0 = PORT_CONNECTION: False
.... .... .... ..0. = PORT_ENABLE: False
.... .... .... .0.. = PORT_SUSPEND: False
.... .... .... 0... = PORT_OVER_CURRENT: False
.... .... ...0 .... = PORT_RESET: False
.... ...0 .... .... = PORT_POWER: False
.... ..0. .... .... = PORT_LOW_SPEED: False
.... .0.. .... .... = PORT_HIGH_SPEED: False
.... 0... .... .... = PORT_TEST: False
...0 .... .... .... = PORT_INDICATOR: Default colors
Port Change: 0x0008, C_PORT_OVER_CURRENT
.... .... .... ...0 = C_PORT_CONNECTION: False
.... .... .... ..0. = C_PORT_ENABLE: False
.... .... .... .0.. = C_PORT_SUSPEND: False
.... .... .... 1... = C_PORT_OVER_CURRENT: True
.... .... ...0 .... = C_PORT_RESET: False
Section of System Information app showing device IDs on the USB hub, pertaining to the Seagate external drive (see last stanza for 0x14114000):
Hub:
Product ID: 0x0209
Vendor ID: 0x045b (Renesas Electronics Corp.)
Version: 1.00
Speed: Up to 480 Mb/s
Location ID: 0x14100000 / 6
Current Available (mA): 500
Current Required (mA): 0
Extra Operating Current (mA): 0
Natural® Ergonomic Keyboard 4000:
Product ID: 0x00db
Vendor ID: 0x045e (Microsoft Corporation)
Version: 1.73
Speed: Up to 1.5 Mb/s
Manufacturer: Microsoft
Location ID: 0x14140000 / 14
Current Available (mA): 500
Current Required (mA): 100
Extra Operating Current (mA): 0
Backup+ Hub:
Product ID: 0xab44
Vendor ID: 0x0bc2 (Seagate LLC)
Version: 48.85
Serial Number: 01CB8345B4FQ
Speed: Up to 480 Mb/s
Manufacturer: Seagate
Location ID: 0x14130000 / 15
Current Available (mA): 500
Current Required (mA): 100
Extra Operating Current (mA): 0
Hub:
Product ID: 0x0209
Vendor ID: 0x045b (Renesas Electronics Corp.)
Version: 1.00
Speed: Up to 480 Mb/s
Location ID: 0x14110000 / 13
Current Available (mA): 500
Current Required (mA): 0
Extra Operating Current (mA): 0
Backup+ Hub:
Product ID: 0xab44
Vendor ID: 0x0bc2 (Seagate LLC)
Version: 48.85
Serial Number: 01CB8333B0X4
Speed: Up to 480 Mb/s
Manufacturer: Seagate
Location ID: 0x14114000 / 17
Current Available (mA): 500
Current Required (mA): 100
Extra Operating Current (mA): 0