ldube opened a new pull request, #9245:
URL: https://github.com/apache/nuttx/pull/9245
## Summary
Devices connected to the same USB bus should have unique function addresses.
This was not true for root hubs with multiple ports. After this change,
enumeration is more reliable on the sama5d3-xplained board when both root hub
ports are used.
## Impact
Sama5d3 should have less enumeration issues when both ports are used
simultaneously.
No impact on other boards expected/intended. I only compiled every file I
changed except the rx65 file.
Only did runtime tests on sama5d3 because I don't have other USB enabled
NuttX hardware.
## Testing
(Added a debug printf in the usbhost_hub.c usbhost_connect function to show
that the
hub was successfully initialized)
With only OHCI enabled, connect a hub to each USB port on a sama5d3-xplained
board.
1) Before this change: Only one hub enumerated successfully.
2) After this change: Both hubs enumerated successfully.
With only EHCI enabled, connect a hub to each USB port on a sama5d3-xplained
board.
1) Before this change: One hub found but error messages are printed forever
(see errors below. Port 2 and Port 3 are the only available USB host ports).
2) After this change: Both hubs are enumerated successfully.
usbhost_connect: HUB init ok <-----------
EHCI: USB Error Interrupt (USBERRINT) Interrupt: 000002
EHCI ERROR: EP0 TOKEN=0148
EHCI ERROR: Transfer failed 5
usbhost_enumerate: ERROR: Failed to get configuration descriptor, length=9:
-5
EHCI Hub port 3 usbhost_enumerate() failed: 5
EHCI: USB Error Interrupt (USBERRINT) Interrupt: 000002
EHCI ERROR: EP0 TOKEN=0148
EHCI ERROR: Transfer failed 5
usbhost_enumerate: ERROR: Failed to get configuration descriptor, length=9:
-5
EHCI Hub port 3 usbhost_enumerate() failed: 5
EHCI: USB Error Interrupt (USBERRINT) Interrupt: 000002
EHCI ERROR: EP0 TOKEN=0148
EHCI ERROR: Transfer failed 5
usbhost_enumerate: ERROR: Failed to get configuration descriptor, length=9:
-5
EHCI Hub port 3 usbhost_enumerate() failed: 5
EHCI: USB Error Interrupt (USBERRINT) Interrupt: 000002
EHCI ERROR: EP0 TOKEN=0148
EHCI ERROR: Transfer failed 5
usbhost_enumerate: ERROR: Failed to get configuration descriptor, length=9:
-5
EHCI Hub port 3 usbhost_enumerate() failed: 5
EHCI: USB Error Interrupt (USBERRINT) Interrupt: 000002
EHCI ERROR: EP0 TOKEN=0148
EHCI ERROR: Transfer failed 5
usbhost_enumerate: ERROR: Failed to get configuration descriptor, length=9:
-5
EHCI Hub port 3 usbhost_enumerate() failed: 5
EHCI: USB Error Interrupt (USBERRINT) Interrupt: 000002
EHCI ERROR: EP0 TOKEN=0148
EHCI ERROR: Transfer failed 5
usbhost_enumerate: ERROR: Failed to get configuration descriptor, length=9:
-5
EHCI Hub port 3 usbhost_enumerate() failed: 5
EHCI: USB Error Interrupt (USBERRINT) Interrupt: 000002
EHCI ERROR: EP0 TOKEN=0148
EHCI ERROR: Transfer failed 5
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]