USB ENGINEERING CHANGE NOTICE



Similar documents
USB Overview. This course serves as an introduction to USB.

AN249 HUMAN INTERFACE DEVICE TUTORIAL. Relevant Devices This application note applies to all Silicon Labs USB MCUs. 1.

Universal Serial Bus Device Class Definition for Printing Devices

Design Considerations in Adding USB Communications to Embedded Applications

Rimage Producer and Professional Windows OS Guide/FAQs For Rimage end users February 2014

Simplified Description of USB Device Enumeration

TivaWare USB Library USER S GUIDE SW-TM4C-USBL-UG Copyright Texas Instruments Incorporated

UM1734 User manual. STM32Cube USB device library. Introduction

AT91 ARM Thumb Microcontrollers. Application Note. AT91 USB CDC Driver Implementation. 1. Introduction. 2. Related Documents

Exploiting USB Devices with Arduino. Greg Ose Black Hat USA 2011

Technical Note TN_152. USB 3.0 Compatibility Issues Explained

i.mx USB loader A white paper by Tristan Lelong

Universal Serial Bus Class Definitions for Communication Devices

Useful USB Gadgets on Linux

Universal Serial Bus Mass Storage Class. Bulk-Only Transport

AN295 USB AUDIO CLASS TUTORIAL. 1. Introduction. 2. USB, Isochronous Transfers, and the Audio Class Overview USB Operational Overview

The easy way! Mark Maszak. Jane Lawrence Program Manager Microsoft. Microsoft

White Paper WP_001. Connecting Peripherals to an Android Platform

AN1164. USB CDC Class on an Embedded Device INTRODUCTION ASSUMPTIONS FEATURES LIMITATIONS

Universal Serial Bus Communications Class Subclass Specification for Ethernet Emulation Model Devices. Revision 1.0

An Analysis of Wireless Device Implementations on Universal Serial Bus

Atmel AVR4921: ASF - USB Device Stack Differences between ASF V1 and V2. 8-bit Atmel Microcontrollers. Application Note. Features.

USB PC Adapter V4 Configuration

AVR32807: Getting Started with the AVR UC3 Software Framework USB Classes. 32-bit Microcontrollers. Application Note. Features.

Universal Serial Bus Implementers Forum EHCI and xhci High-speed Electrical Test Tool Setup Instruction

USB Undermining Security Barriers

Introducing the Adafruit Bluefruit LE Sniffer

EUROPEAN PATENT SPECIFICATION. (51) IntCL: G06F 13/10< 200B 1 > G06F 13/42( 2 OO 601 > (56) References cited: WO-A-97/19402 US-A

Do More With Less. On Driver-less Interfacing with Embedded Devices. Peter Korsgaard

Freescale MQX USB Device User Guide

ENGINEERING CHANGE NOTICE

Atmel AVR4903: ASF - USB Device HID Mouse Application. Atmel Microcontrollers. Application Note. Features. 1 Introduction

Universal Serial Bus Communications Class Subclass Specification for Mobile Broadband Interface Model

Acton Research Technical Support SpectraPro Diagnostic Procedure

SMART Modular Small Form Factor USB Key

USB PD ENGINEERING CHANGE NOTICE Title: Discover Identity VDO Applied to: USB Power Delivery Revision 2.0, Version 1.

MSP430 USB Communications Device Class (CDC) API User s Guide, v0.7

PL2571 (Chip Rev B) Hi-Speed USB to SATA Bridge Controller Product Datasheet

Programming Interface. for. Bus Master IDE Controller. Revision 1.0

Embedded Host High Speed Electrical Test Procedure

Getting Through Production Test. Jeff Chang Staccato Communications

Learning USB by Doing.

Universal Serial Bus Communications Class Subclass Specification for PSTN Devices. Revision 1.2

04/08/2011. Andy Davis Research Director Telephone: +44 (0)

JTAGjet. series SIGNUM SYSTEMS CORPORATION. USB 2.0 Driver for JTAGjet and ADM51. Installation Instructions

etrust Audit Using the Recorder for Check Point FireWall-1 1.5

Thuraya XT-DUAL. Software Upgrade Manual

Freescale MQX RTOS USB Host User s Guide

USB 2.0 Flash Drive User Manual

PCI-SIG ENGINEERING CHANGE REQUEST

USB 2.0 TO IDE Cable USER MANNUAL 3.5 HDD 3.5

Deploying Dedicated Virtual Desktops in Hosted Environments

USB Human Interface Joystick Demonstration Create a HID USB Device (sample Joystick) By Jared St.Clare, October 2009 Version 1

User Manual (DA-70155)

The BSN Hardware and Software Platform: Enabling Easy Development of Body Sensor Network Applications

Freescale USB Device Stack Users Guide

SETTING UP A REMOTE MODEM CONNECTION Application Note 27

Open Flow Controller and Switch Datasheet

Peach Fuzzer Platform

UEFI on Dell BizClient Platforms

USB TO SERIAL CONVERTER

IPMI overview. Power. I/O expansion. Peripheral UPS logging RAID. power control. recovery. inventory. Hugo CERN-FIO-DS

Application Note. 8-bit Microcontrollers. AVR270: USB Mouse Demonstration

smxusbd USB Device Stack

V16 Pro - What s New?

OfficeSuite Dialer Documentation

73S1215F, 73S1217F Device Firmware Upgrade Host Driver/Application Development User s Guide April 27, 2009 Rev UG_12xxF_029

VxWorks Licenses for EPICS Application Developers Andrew Johnson

1. How to install CDM driver on PC for Lambda devices

Iridium Extreme TM Satellite Phone. Data Services Manual

Installation Instructions for 9555 USB Driver

SERVICES PRICE LIST - COMMERCIAL Sysorex Government Services, Inc.

PL-2303HX Edition (Chip Rev A) USB to Serial Bridge Controller Product Datasheet

Master-Touch and ValuMass. Modbus Communications. INSTRUCTION MANUAL (Rev. 2.1)

Application Note. USB Mass Storage Device Implementation. USB Microcontrollers. References. Abbreviations. Supported Controllers

Type 2 Tag Operation Specification. Technical Specification T2TOP 1.1 NFC Forum TM NFCForum-TS-Type-2-Tag_

Introduction to Synoptic

USB 3.1 Channel Loss Budgets

A DHCP Primer. Dario Laverde, 2002 Dario Laverde

NVMe TM and PCIe SSDs NVMe TM Management Interface

Guide to Installing BBL Crystal MIND on Windows 7

Creating a More Secure Device with Windows Embedded Compact 7. Douglas Boling Boling Consulting Inc.

Storage Class Memory Support in the Windows Operating System Neal Christiansen Principal Development Lead Microsoft

DLP USB Scroll Control. Configuration Guide for QBox

USB TO SERIAL ADAPTER

USB CDC/ECM Class Driver

Midland BT Updater BTUpdater Program Program file (x86) ), Midland

Terminal Server Software and Hardware Requirements. Terminal Server. Software and Hardware Requirements. Datacolor Match Pigment Datacolor Tools

Driver Installation and Hyperterminal Operation of iload Digital USB Sensors

2013 CNS Geiger Kit Instructions read me Page 1 of 5

Bypassing Endpoint Security for $20 or Less. Philip A. Polstra, ppolstra.blogspot.com

Grandstream XML Application Guide Three XML Applications

Legal Notes. Regarding Trademarks. Models supported by the KX printer driver KYOCERA MITA Corporation

USB ENGINEERING CHANGE NOTICE

03-351r2 SAM-3 SPC-3 Reporting task attribute support 22 January 2004

Thuraya XT Data & GMPRS

PCI IDE Controller. Specification. Revision 1.0

SUDT AccessPort TM Advanced Terminal / Monitor / Debugger Version 1.37 User Manual

USB Port PCI Express Card

USB Debugging and Profiling Techniques. Kishon Vijay Abraham I and Basak Partha

Transcription:

USB ENGINEERING CHANGE NOTICE Title: Interface Association Descriptors Applies to: Universal Serial Bus Specification, Revision 2.0 Summary of ECN This ECN defines a new standard descriptor and interface numbering rules that allow a device to describe which interfaces are associated with the same device function. This allows the operating system to bind all of the appropriate interfaces to the same driver instance. Reasons for ECN The base configuration model assumed by the core USB framework was that there was always a 1:1 association between an interface and a function on a device. System software was designed to the intent of the core specification and assumes one driver per function (and one interface) (see figure below). System Software USB Configuration A Interface 0 0 B Interface 1 1 Several device class specifications have exceeded the core USB specification framework and defined device functions that utilize multiple interfaces (i.e. multiple interface descriptors). The model to support this still requires only one function driver per function, but also requires multiple interfaces getting bound to the same driver instance (see figure below). Unfortunately, there is no standard method to allow a device, via the device framework, to describe which interfaces in a configuration should be associated with the same function. System Software USB Configuration A Interface 0 Interface 1 0 USB ECN : Interface Association Descriptor 1

This change notice defines the necessary extensions to the device framework that allow the device to annotate which interfaces are associated with the same function. This device framework extension will be eventually required for all devices that utilize multiple interfaces per device function. Impact on Existing Peripherals and Systems: No Impact. Hardware Implications: None. Software Implications: No impact to existing operating system versions and existing device classes. The new descriptors are ignored by system software. The interfaces they describe don t change. This feature must be supported by future implementations of devices that use multiple interfaces to manage a single device function. There exists an impact to future/new device implementations for device classes that are not currently supported by the OS. Specifically, if a device implementation includes multiple functional units (with multiple interfaces per unit) then the device will only be correctly enumerated on an OS implementation that supports this new descriptor. In order to more easily enhance existing OS implementations with the capability to handle devices that use this descriptor, a device class code will be allocated with the intent that all devices that use the interface association descriptor will use this class code in their device descriptor. This will allow easy installation of a new driver that knows how to parse and enumerate configurations that include the interface association descriptor. The class code for the IAD will be documented on the usb.org website. It is under the responsibility of the existing Class working groups to determine whether their individual specifications need to be modified to work with or take advantage of this new framework extension. Compliance Testing Implications: The standard compliance toolset (USBCV) must be eventually updated to check the format (and use) of these new descriptors. In addition, some rules must be established for the compliance tools to determine which device should be using these descriptors and fail them for not using them. USB ECN : Interface Association Descriptor 2

Specification Changes The following proposal is backward compatible with previous operating systems. It leaves current interface definitions alone and adds a new descriptor type. For older operating systems versions, the new descriptors will be ignored and the old mechanisms will prevail. For new operating system versions, the new descriptors will be in effect. Add the following to table 9-6 (note, the core specification currently defines values 1-8. Since publication, values 9 & 10 have been allocated as noted below). Descriptor Types Value DEVICE 1 CONFIGURATION 2 STRING 3 INTERFACE 4 ENDPOINT 5 DEVICE_QUALIFIER 6 OTHER_SPEED_CONFIGURATION 7 INTERFACE_POWER 8 OTG 9 DEBUG 10 INTERFACE_ASSOCIATION 11 USB ECN : Interface Association Descriptor 3

The following is the definition of an Interface Association Descriptor. At the next spec revision update, it should be included as a new section 9.6.6 (moving the current section 9.6.6 to 9.6.7, and so-on). 9.X.Y Interface Association The Interface Association Descriptor is used to describe that two or more interfaces are associated to the same function. An association includes two or more interfaces and all of their alternate setting interfaces. A device must use an Interface Association descriptor for each device function that requires more than one interface. An Interface Association descriptor is always returned as part of the configuration information returned by a GetDescriptor(Configuration) request. An interface association descriptor cannot be directly accessed with a GetDescriptor() or SetDescriptor() request. An interface association descriptor must be located before the set of interface descriptors (including all alternate settings) for the interfaces it associates. All of the interface numbers in the set of associated interfaces must be contiguous. Table 9-Z shows the standard interface association descriptor. The interface association descriptor includes function class, subclass and protocol fields. The values in these fields can be the same as the interface class, subclass and protocol values from any one of the associated interfaces. The preferred implementation, for existing device classes, is to use the interface class, subclass and protocol field values from the first interface in the list of associated interfaces. Table 9 Z. Standard Interface Association Descriptor Offset Field Size Value Description 0 blength 1 Number Size of this descriptor in bytes. 1 bdescriptortype 1 Constant INTERFACE ASSOCIATION Descriptor. 2 bfirstinterface 1 Number Interface number of the first interface that is associated with this function. 3 binterfacecount 1 Number Number of contiguous interfaces that are associated with this function. 4 bclass 1 Class Class code (assigned by USB-IF). A value of zero is not allowed in this descriptor. If this field is FFH, the function class is vendorspecific. All other values are reserved for assignment by the USB-IF. 5 bsubclass 1 SubClass Subclass code (assigned by USB-IF). If the bclass field is not set to FFH all values are reserved for assignment by the USB- IF. 6 bprotocol 1 Protocol Protocol code (assigned by USB-IF). These codes are qualified by the values of the bclass and bsubclass fields. 7 i 1 Index Index of string descriptor describing this function. Note: Since this particular feature was not included in earlier versions of the USB specification, there is issue with how existing USB OS implementations will support devices that use this descriptor. It is strongly recommended that device implementations utilizing the interface association descriptor use the Multi-interface USB ECN : Interface Association Descriptor 4

Class codes in the device descriptor. This allows simple and easy identification of these devices and allows on some operating systems, installation of an upgrade driver that can parse and enumerate configurations that include the Interface Association Descriptor. The Multi-interface Class code is documented on the http://www.usb.org/developers/docs website. USB ECN : Interface Association Descriptor 5