Skip to content

host mode enumeration halts if second hub present #2212

@cleverca22

Description

@cleverca22

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 FAILED

Screenshots

No response

I have checked existing issues, dicussion and documentation

  • I confirm I have checked existing issues, dicussion and documentation.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions