host mode enumeration halts if second hub present
Author: cleverca22Created Aug 8, 2023Updated Sep 21, 2026
LabelsBug 🐞
Operating System
Others
Board
rpi2
Firmware
custom https://github.com/librerpi/lk-overlay/tree/master/platform/bcm28xx/dwc2 + https://github.com/librerpi/lk-overlay/tree/master/lib/tinyusb
#define CFG_TUH_HUB 1
#define CFG_TUH_DEVICE_MAX (3*CFG_TUH_HUB + 1)What happened ?
a second hub connected to port 2 prevents enumeration from discovering devices on ports 3-5
if the MSD is on port 2, and hub on port 3, the MSD is enumerated, but removal isnt detected
like with #2177, if it fails to find an address, it should disable that port on the hub, and leave the device unconfigured
edit: increasing CFG_TUH_HUB masks the problem, by allowing the 2nd hub to function normally
How to reproduce ?
connect a second hub to a low numbered port on the 1st hub, and any device on a high numbered port
Debug Log as txt file (LOG/CFG_TUSB_DEBUG=2)
HUB Clear Feature: PORT_CONNECTION_CHANGE, addr = 21 port = 2
HUB Clear Feature: PORT_RESET_CHANGE, addr = 21 port = 2
13.925720 [DWC2:hcd_edpt_open:415]: dev 0 EP00 opened root port: 0 hub_addr: 21 hub_port: 2 speed: 2(HS) opep: 0xc411c4a4
enum_request_set_addr 1560: ASSERT FAILEDScreenshots
No response
I have checked existing issues, dicussion and documentation
- I confirm I have checked existing issues, dicussion and documentation.
Source: hathach/tinyusb