Data Center Software Series: USB Configuration Management Window

The Data Center Software is Total Phase’s free bus monitoring software that allows users to interface with Total Phase protocol analyzers supporting I2C, SPI, USB, CAN, and eSPI protocols. These analyzers include the Beagle I2C/SPI Protocol Analyzer, the line of Beagle USB Protocol Analyzers, the USB Power Delivery Analyzer, the Komodo CAN Duo Interface, and the Promira Serial Platform with the eSPI Analysis Application.

This award-winning software provides users with an abundance of tools and ways to analyze and interpret bus data. Users can review decoded bus data and transactions in real time, review flagged bus errors, filter and drill down specific data parameters, perform triggers, and much more.

In this article, we’ll provide background on the USB Configuration Management feature in the Data Center Software and how it can be used to help streamline and customize USB debugging efforts.

What is the USB Configuration Management Feature?

While the Data Center Software uses configuration descriptor information captured during the enumeration phase to configure class-level decoding of USB traffic, users can also apply arbitrary configuration descriptors to the captured USB device data using the USB Configuration Management feature if desired. This allows for a custom class-level decoding experience within the set of USB classes supported by Data Center Software. It is important to note however, that this feature does not add support for decoding custom USB classes, only for specifying custom configuration descriptors.

Allowing users to apply configuration descriptors through this feature can be helpful for when enumerated data isn’t captured or is incomplete, or when users would like to override descriptors that were already applied for a particular device. Configs can be created from scratch or saved from a capture.

How to Access the USB Configuration Management Window in Data Center Software

When analyzing a USB system through the Data Center Software, users can view the devices detected on the bus during the enumeration phase in the Bus Pane. The Bus Pane will show detailed device information including addresses, configurations, endpoint descriptors, and more.

The USB Configuration Management Window can be accessed via the Bus Pane by right-clicking in the Bus tree. A pop-up window will then be revealed to allow users to select from a variety of different options; one of them being “Manage Configs”. Once clicked, users will find the USB Configuration Management Window where they can manage configuration information for the device and/or apply a new configuration.

Manage Configs Data Center Software “Manage Configs” option in Bus Pane

 

Exploring the USB Configuration Management Window

The USB Configuration Management Window is broken up into three different sections: The Configurations Pane, the Data Pane, and the Details Pane.

USB Configuration Management Window USB Configuration Management Window

 

Configurations Pane

The Configurations Pane is a hierarchical list providing all available configurations separated into four categories:

  • Enumerated Configs are the configurations enumerated during the capture. Being part of the capture, they can be copied but not modified.
  • Assignable Configs are custom configurations that have been saved with the capture file. They are the only non-enumerated configurations that the user can directly assign to a device for customized class level decoding.
  • User Configs are custom configurations that are saved in the user's preferences. These configurations are available to any capture opened with the user's Data Center Software.
  • Configs Provided by Data Center are immutable custom configurations that were packaged with the application. These can be used as examples or templates for making new configurations.

Below the Configurations Pane, users can create custom configurations using the New button USB Configuration Management button.

The user can also Rename button USB Configuration Management, Copy button USB Configuration Management, or Delete Button USB Configuration Management the selected configuration using the same controls.

Data Pane

When clicking on a configuration in the Configurations Pane, the descriptors raw data will be displayed in the bottom-left of the window. This data can be edited in a variety of formats including hexadecimal and ASCII for “Assigned” and “User” configurations. Users can configure the data display by right-clicking anywhere in the pane.

The Data Pane will highlight relevant regions of the data when a specific parameter is clicked in the Details Pane. Likewise, when changes are made in the data, the Details Pane shows the results immediately if  Preview button USB Configuration Management at the bottom is checked.

The user can also  Save button USB Configuration Management or  Revert Button USB Configuration Management edits to a configuration using the controls beneath the Data Pane.

Details Pane

Similar to the Enumeration tab of the Bus Pane, the Details Pane in this window displays the configuration data that is parsed into higher level parameters. When a specific parameter is highlighted in the Details Pane, the corresponding data is highlighted in the Data Pane. If Preview button USB Configuration Management is checked, any modifications to the configuration data in the Data Pane will be updated accordingly in the Details Pane.

Common Tasks Performed in the USB Configuration Management Window

The USB Configuration Management Window provides ways for the user to:

  • Create, Edit, and Delete custom configuration descriptors that persist either on the user's machine or in the active capture file.
  • Assign a custom configuration descriptor to an arbitrary bConfigurationValue of any device on the bus, which can change the way data is parsed during a capture.
  • Remove one or all previously assigned custom configuration descriptors from a device on the bus, exposing the originally enumerated configuration descriptor where available.

How to Save an Enumerated Configuration for Later

Rather than re-enumerate a frequently used device on every new capture, it can be time-efficient to save the devices configuration descriptor and assign it in future captures using Configuration Management.

To save an enumerated configuration:

  1. Right-click on any Bus, Device, or Configuration in the Bus Pane
  2. Click “Manage Configs”to open the USB Configuration Management Window
  3. Find and click on the enumerated configuration descriptor of interest in the Enumerated Configs section of the Configurations Pane:

Enumerated Configs USB Configuration Management

  1. Click Copy button USB Configuration Management and follow the instructions to name the new custom configuration.

 

How to Assign a Custom Configuration to a Device

To assign an existing custom configuration to a target device and bConfigurationValue:

  1. Right-click on the device of interest in the Bus Pane
  2. Click “Manage Configs” to open the USB Configuration Management Window
  3. Locate and click the configuration you would like to assign to the device in the Assignable Configs, User Configs, or Configs Provided by Data Center categories of the Configurations Pane:

Assignable Configs USB Configuration Management

  1. Click Assign button USB Configuration Management at the bottom right of the window. This will open a dialog allowing selection of a bConfigurationValue for assignment.
  2. Select the desired bConfigurationValue and click “OK”:

Set configuration USB Configuration Management

The custom configuration is now assigned and will appear blue in the Bus Pane. Until this configuration is removed, the Data Center Software will class-decode all transfers against the device as if the custom configuration actually occupied the device's bConfigurationValue.

Our video: Packet Truncation and Configuration Management of the Data Center Software shows how the packet truncation feature allows for significantly longer USB 3.0 captures and how saved USB configurations can be used to apply class-level decoding to captured data after a capture.

Watch the video here:

 

How to Remove One Assigned Configuration from a Device

To remove a previously assigned custom configuration from active class-level decoding:

  1. Right-click on the configuration to remove in the Bus Pane.

Favorite hub USB Configuration Management

  1. Click “Remove Assigned Config”on the context menu opened by the previous step. The custom configuration is removed, exposing any originally enumerated configuration on that bConfigurationValue.

 

How to Remove All Assigned Configurations from a Device

To remove all of a device’s previously assigned custom configurations from active class-level decoding:

  1. Right-click on the target device in the Bus Pane.
  2. Click “Remove Assigned Configs”on the context menu opened by the previous step. All custom configurations are removed, exposing the device's originally enumerated configurations where present.

Summary

The USB Configuration Management Window is a helpful feature within the Data Center Software as it allows users to apply USB configurations to captured USB data. This can help with numerous situations, including when the enumeration data isn’t captured or if users want to manually apply configs to decode class-level data. For more information on how this feature can benefit debugging your USB systems, please email us sales@totalphase.com.