Project

General

Profile

Actions

Bug #4454

closed

USB CH9 TD9.4, TD9.5, TD9.7, TD9.9, TD9.13, TD9.14 fail in configured state

Added by laforge about 4 years ago. Updated about 4 years ago.

Status:
Resolved
Priority:
Normal
Assignee:
Category:
-
Target version:
-
Start date:
03/13/2020
Due date:
% Done:

100%

Spec Reference:

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.

Actions #1

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

Actions #2

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.

Actions #3

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.

Actions #4

Updated by laforge about 4 years ago

  • Status changed from In Progress to Resolved
  • % Done changed from 80 to 100

patch merged.

Actions

Also available in: Atom PDF

Add picture from clipboard (Maximum size: 48.8 MB)