Bug #4454
closedUSB CH9 TD9.4, TD9.5, TD9.7, TD9.9, TD9.13, TD9.14 fail in configured state
100%
Description
Output from the test report generated by CVExe.exe ver 3.0.0.0:
TD 9.4 - Interface Descriptor Test (Configuration Index 0) - configured Failed INFO Start time: Fri Mar 13 12:02:55 2020 ERROR Get configuration descriptor failed for Configuration Descriptor index : 0x0 ERROR Could not get configuration value for configuration index 0x0 FAIL (1.1.1) Devices must have a corresponding configuration value for a valid configuration index. INFO Stop time: Fri Mar 13 12:02:56 2020 INFO Duration: 1 second. INFO Stopping Test [ TD 9.4 - Interface Descriptor Test (Configuration Index 0) - configured: Number of: Fails (1); Aborts (0); Warnings (0) ] TD 9.5 - Endpoint Descriptor Test (Configuration Index 0) - configured Failed INFO Start time: Fri Mar 13 12:02:56 2020 ERROR Get configuration descriptor failed for Configuration Descriptor index : 0x0 ERROR Could not get configuration value for configuration index 0x0 FAIL (1.1.1) Devices must have a corresponding configuration value for a valid configuration index. INFO Stop time: Fri Mar 13 12:02:57 2020 INFO Duration: 1 second. INFO Stopping Test [ TD 9.5 - Endpoint Descriptor Test (Configuration Index 0) - configured: Number of: Fails (1); Aborts (0); Warnings (0) ] TD 9.7 - BOS Descriptor Test (Configuration Index 0) - Device State Configured Failed INFO Start time: Fri Mar 13 12:02:57 2020 ERROR Could not get Configuration Value for Configuration Index 0x00 FAIL (9.1.1.1) Devices must have a corresponding configuration value for a valid configuration index FAIL (9.3.1) In response to a read control transfer, devices must return up to the length of data as specified in the wLength field of the Setup request FAIL (9.4.3.6) Devices must support a valid GetDescriptor(Configuration) request. INFO Stop time: Fri Mar 13 12:02:58 2020 INFO Duration: 1 second. INFO Stopping Test [ TD 9.7 - BOS Descriptor Test (Configuration Index 0) - Device State Configured: Number of: Fails (3); Aborts (0); Warnings (0) ] TD 9.9 - Halt Endpoint Test (Configuration Index 0) Failed INFO Start time: Fri Mar 13 12:02:58 2020 ERROR Get configuration descriptor failed for Configuration Descriptor index : 0x0 ERROR Could not get configuration value for configuration index 0x0 FAIL (1.1.1) Devices must have a corresponding configuration value for a valid configuration index. INFO Stop time: Fri Mar 13 12:03:00 2020 INFO Duration: 2 seconds. INFO Stopping Test [ TD 9.9 - Halt Endpoint Test (Configuration Index 0): Number of: Fails (1); Aborts (0); Warnings (0) ] TD 9.13 - SetConfiguration Test (Configuration Index 0) Failed INFO Start time: Fri Mar 13 12:03:00 2020 ERROR Get configuration descriptor failed for Configuration Descriptor index : 0x0 ERROR Could not get configuration value for configuration index 0 FAIL (1.1.1) Devices must have a corresponding configuration value for a valid configuration index. INFO Stop time: Fri Mar 13 12:03:01 2020 INFO Duration: 1 second. INFO Stopping Test [ TD 9.13 - SetConfiguration Test (Configuration Index 0): Number of: Fails (1); Aborts (0); Warnings (0) ] TD 9.14 - Suspend/Resume Test (Configuration Index 0) Failed INFO Start time: Fri Mar 13 12:03:01 2020 ERROR Could not suspend the parent port for testing FAIL (1.2.104) After a successful SetFeature(SUSPEND), a hub/host port's status must show 'suspended'. INFO Resumed the parent port of the Device Under Test. INFO Get Device Descriptor failed after resuming device. FAIL (1.1.30) A suspended device must resume normal operation when resume signaling is seen on its upstream port. INFO Reenumerated device under test. INFO Stop time: Fri Mar 13 12:03:11 2020 INFO Duration: 10 seconds. INFO Stopping Test [ TD 9.14 - Suspend/Resume Test (Configuration Index 0): Number of: Fails (2); Aborts (0); Warnings (0) ]
Interestingly, I cannot reprodcue the error when selecting to test only one of the failing tests individually. They only fail if the full test suite is executed. Even executing the last few passing tests + the failing tests together in a group, they all pass.
Updated by laforge about 4 years ago
It semes like this is caused by an ASSERT _dwNumSources < MAX_INTERRUPT_SOURCES
in source:firmware/atmel_softpack_libraries/libchip_sam3s/source/pio_it.c line 231
Updated by laforge about 4 years ago
- Status changed from New to In Progress
- % Done changed from 0 to 20
Ok, so the atmel softpack libraries assume that PIO_ConfigureIt is called only once for eahc GPIO during runtime. Our code does this in the SetConfiguration call, so if you call SetConfiguration too often, the static array in pio_iot.c will overflow, the code will ASSERT and reboot the board.
Updated by laforge about 4 years ago
- % Done changed from 20 to 80
Patch in https://gerrit.osmocom.org/c/simtrace2/+/17478
With this patch, all USB-IF CH9 tests pass green now.
Updated by laforge about 4 years ago
- Status changed from In Progress to Resolved
- % Done changed from 80 to 100
patch merged.