USB2 Debug Device A Functional Device Specification

Similar documents
USB Feature Specification: Shared Endpoints

Device Wire Adapter (DWA) Test Specification. Designed using the Certified Wireless USB Base Specification, Revision 1.0

Universal Serial Bus Device Class Definition For Content Security Devices

Bluetooth PC Card Transport Layer

Universal Serial Bus Device Class Definition Billboard Devices

Universal Serial Bus Device Class Definition for Printing Devices

Universal Serial Bus Content Security Method 4 Elliptic Curve Content Protection Protocols

Firmware Programming Guide for PDIUSBD12

FOR TCG ACPI Specification

Part 1 - Introduction to USB

PL-2507 Hi-Speed USB 2.0 to IDE Bridge Controller Preliminary Datasheet

Intel Server Board S2400SC

USB Control Transfers with LUFA

Intel Server Board S2600CW2S

This process is a fundamental step for every USB device, fore without it, the device would never be able to be used by the OS.

Universal Serial Bus - USB 2.0

Fuzzing the USB in your devices

Human Interface Devices: Using Control and Interrupt Transfers

PL-2507C Hi-Speed USB 2.0 to IDE Bridge Controller Product Datasheet

Universal Serial Bus Device Class Definition for Video Devices: MPEG2-TS Payload. Revision 1.0

Intel Server Board S5520HC

STM32F105xx and STM32F107xx USB on-the-go (OTG) FS library

TCG Storage Interface Interactions Specification (SIIS) Specification Version 1.02 Revision December, 2011 TCG

THIS SPEC IS OBSOLETE

Intel Cluster Ready Allowed Hardware Variances

Intel Server Board S1200BTS

Read section 8 of this document for detailed instructions on how to use this interface spec with LibUSB For OSX

Universal Serial Bus Device Class Definition for Mass Storage Devices

IEEE1588 Frequently Asked Questions (FAQs)

USB OTG Supplement v1.2. Mark Saunders Mentor Graphics

V-Series V30x Module Electrical, Physical Layer, and Application Integration. Customer Information Brief Version 1.4

PCI Express Link/Transaction Test Methodology

TCG Physical Security Interoperability Alliance IP Video Use Case 002 (PSI-UC-IPV002) Specification Version 1.0 Revision 0.2

Enhanced Serial Peripheral Interface (espi) ECN

CLD SC58x CDC Library v.1.00 Users Guide Users Guide Revision For Use With Analog Devices ADSP-SC58x Series Processors. Closed Loop Design, LLC

Open Universal Serial Bus Driver Interface (OpenUSBDI) Specification

CLD BF70x CDC Library v.1.3 Users Guide Users Guide Revision 1.3. For Use With Analog Devices ADSP-BF70x Series Processors. Closed Loop Design, LLC

IVI-6.2: VISA Interoperability Requirements for USBTMC Specification

USB BF70x Audio 1.0 Library v.1.2 Users Guide Users Guide Revision 1.3. For Use With Analog Devices ADSP-BF70x Series Processors

Server Test Submission (STS) Report. Server WHQL Testing Services Enterprise Platforms and Services Division

UC20 WinCE USB Driver

Intel Server Board S2600IP

Enhanced Serial Peripheral Interface (espi)

Jump Test of ESP8266 s Secondary Bootloader (V1.6+)

Hubs: the Link between Devices and the Host

LED Manager for Intel NUC

EDBG. Description. Programmers and Debuggers USER GUIDE

Macrotron Systems, Inc. Flash Media Products. Part Number Family: 2.5 PATA (IDE) SSD (High Performance Series) PA25SMXXXXXMXXMX

Interoperability Specification for ICCs and Personal Computer Systems

ERRATA FOR. TCG TPM I2C Interface Specification. Errata Version 1.0 April 6, Family 2.0 Level 00 Revision 1.

Intel Server Board S2600CO Intel Server Board S2600COE

TCG Specification TCG. TPM 2.0 Mobile Command Response Buffer Interface. TCG Published. Family 2.0. Level 00 Revision 12.

USER GUIDE EDBG. Description

AT03975: Getting Started with SAM L21. Descripton. Features. SMART ARM-Based Microcontroller APPLICATION NOTE

Device Firmware Update (DFU) for Windows

Intel G31/P31 Express Chipset

TAS1020 Application Notes

Intel Server Board S2600STB

Intel Platform Innovation Framework for EFI SMBus Host Controller Protocol Specification. Version 0.9 April 1, 2004

Test System Validation Guideline

Intel Server Board S2400EP Intel Server System R1000EP

Universal Serial Bus Mass Storage Class Specification Overview

DCMI Data Center Manageability Interface Specification v1.0, Revision 1.0. Addenda, Errata, and Clarifications

Intel Platform Memory Operations

Universal Serial Bus Mass Storage Class Specification Overview

INTERNATIONAL STANDARD

Intel Server Board S1200BTS

USB Complete. The Developer's Guide Fifth Edition. Jan Axelson. Lakeview Research LLC Madison, WI 53704

Intel Server Board S1400FP

Document Revision 1.0 September 16, 1998 Intel Hewlett-Packard NEC Dell

AN PSoC 3 and PSoC 5LP Introduction to Implementing USB Data Transfers. Contents

USING THE ST7 UNIVERSAL SERIAL BUS MICROCONTROLLER

How to use Linux driver

Intel Server Board S1200V3RPO Intel Server System R1208RPOSHORSPP

Desktop/Motherboard WHC Report

Handheld Devices and SMBus-One

Intel Server Board S1200V3RPO Intel Server System R1208RPOSHORSPP

ESP8266 Application Note Firmware Download Protocol

Intel Desktop Board DZ77BH. PLMP Report. Previously Logo'd Motherboard Program (PLMP)

Gen-Z Identifiers September Copyright 2016 by Gen-Z. All rights reserved.

USS-720 Instant USB USB-to-IEEE* 1284 Bridge

OSPlus USB Extension. OSPlus USB 2.0 extension. Description. Features. Application. TCP/IP stack NexGenOS NexGenIP VFS. FAT Ext2 LVM Device layer

Intel Server S3200SHV

Intel Atom Processor E3800 Product Family Development Kit Based on Intel Intelligent System Extended (ISX) Form Factor Reference Design

Intel Desktop Board DQ35MP. MLP Report. Motherboard Logo Program (MLP) 5/7/2008

Intel Server Board S2600WP Intel Server System H2600WP

Intel Desktop Board DQ77MK. MLP Report. Motherboard Logo Program (MLP) 5/21/2012

Intel Atom Processor Based Platform Technologies. Intelligent Systems Group Intel Corporation

TCG Compliance TNC IF-MAP Metadata for Network Security Compliance Test Plan

82545GM Gigabit Ethernet Controller Specification Update June 6, 2006

Intel Server Board S1200KP

Intel IXP400 Software Version 1.5

ESP-NOW User Guide Version 1.0 Copyright 2016

Revealing Embedded Fingerprints: Deriving Intelligence from USB Stack Interactions

Preliminary Information. AMD-8111 TM HyperTransport TM I/O Hub Revision Guide

Intel Desktop Board DZ68DB

Advanced Access Content System (AACS) Signed CSS Book

Intel Server Board S2600CP Intel Server System P4000CP

Intel Server S3210SHLC

Intel Desktop Board DH77DF. PLMP Report. Previously Logo d Motherboard Program (PLMP) 6/29/2012

Transcription:

USB2 Debug Device A Functional Device Specification Date: March 25, 2003 Revision: 0.9 The information is this document is under review and is subject to change.

USB2 Revision 0.9 3/25/2003 Scope of this Revision The 0.9 revision of the specification is intended for review purposes only. Revision History Revision Issue Date Comments 0.5 4/04/2002 Initial Revision 0.9 3/25/2003 for public review THIS SPECIFICATION IS PROVIDED "AS IS" WITH NO WARRANTIES WHATSOEVER, INCLUDING ANY WARRANTY OF MERCHANTABILITY, NONINFRINGEMENT, FITNESS FOR ANY PARTICULAR PURPOSE, OR ANY WARRANTY OTHERWISE ARISING OUT OF ANY PROPOSAL, SPECIFICATION OR SAMPLE. Intel disclaims all liability, including liability for infringement of any proprietary rights, relating to use of information in this specification. No license, express or implied, by estoppel or otherwise, to any intellectual property rights is granted herein. This document is subject to change without notice. Copyright Intel Corporation 2002-2003. * Third-party brands and names are the property of their respective owners. Significant Contributors: John Keys (Author) Brad Hosler John S. Howard Rahman Ismail Intel Corporation Intel Corporation Intel Corporation Intel Corporation Please send comments via electronic mail to: USBDebug@intel.com USB2 Debug Device

Table of Contents Revision 0.9 3/25/2003 Table of Contents 1. INTRODUCTION... 1 2. OVERVIEW... 1 3. DEVICE REQUIREMENTS... 2 4. DEVICE FRAMEWORK... 2 4.1 Debug Descriptor...2 4.1.1 Get Descriptor Debug Descriptor...3 4.2 Debug Mode Feature Selector...4 4.2.1 Set Feature Debug Mode...4 USB2 Debug Device i

Introduction Revision 0.9 3/25/2003 1. Introduction This document provides the definition and requirements for a device that operates as a debugging device for use with the Enhanced Host Controller Interface Debug Port. This type of device is intended to replace the serial port and null-modem cables currently used, providing a significant increase in debugger throughput and a migration path for legacy-free platforms. This document is intended to be useful for two purposes: A hardware device vendor or firmware engineer intending to build and program debug devices which adhere to this specification, and A software driver developer programming to use the debug device. This specification is organized as follows: Section 2 Overview Section 3 Device Requirements Section 4: Dev ice 2. Overview The Enhanced Host Controller Interface Specification for Universal Serial Bus includes the definition of an optional debug port. This port is intended to replace legacy COM ports for debugging use as platforms move towards legacy-free configurations. A second benefit of USB debugger connection is the significant increase in bandwidth that USB provides over industry-standard serial ports. To be useful, the debug port requires a second component, the Debug Device. A Debug Device provides a USB communication channel between a target machine and a remote machine. It is two logical USB devices connected with a private communications channel. Each logical device consists of an OUT Bulk endpoint and an IN Bulk endpoint. These endpoints each represent a Stream Pipe between the device and its respective host. Data received from Host X on the OUT pipe of one device is forwarded to the IN pipe of the other device for transmission to Host Y. Out In Device A Device B Out In Figure 1: Logical USB Debug Device The Debug Pipe is the combination of four individual Stream Pipes. It consists of two logical Stream Pipes, representing a bi-directional pipe between two hosts. Some general restrictions and operational differences result from the use of the debug port rather than the standard host controller interface. The main operational difference is packet/transfer size. The debug port has a maximum packet size of eight bytes. Since this is smaller than the USB2 High Speed control endpoint packet size of sixty-four bytes, this also means that control transfers have a maximum transfer size of eight bytes as well. Because of this limitation, the debug port driver cannot use standard means to enumerate and configure debug devices. USB2 Debug Device 1

Device Requirements Revision 0.9 3/25/2003 This maximum packet size restriction also means that the end of the Debug Pipe that is connected to the Debug Port has to operate with a maximum packet size of eight (8) bytes. This limitation does not apply to end of the Debug Pipe connected to the remote machine. However, if a packet larger than eight bytes is received from the remote computer, the device must break the larger packet into eightbyte packets before sending the data to the Debug Port. Dedicated Debug Devices (Debug Device functionality only) may support a single fixed device address of 127. These devices must have clearly differentiated ends, with one end or device always connected to the Debug Port and the other end always connected to the remote computer. Only the Debug Port end of the device is allowed to contain a fixed address. The Remote end must follow standard USB semantics. A device end that contains a fixed address never exists in default state. It always exits USB reset in the addressed state. Because it never responds to address 0, this type of device cannot be enumerated by the standard host driver stack. It can only be enumerated correctly by dedicated debug-port drivers. 3. Device Requirements This section provides an overview of the requirements of a Debug Device. These feature requirements may be implemented utilizing any method (firmware, dedicated hardware, or combination). Implement the descriptors, features, and requests described in Section 4: Device Framework. USB 2.0 High Speed signaling compliant. One Bulk-type IN endpoint that supports 8-byte maximum packet size. One Bulk-type OUT endpoint that supports 8-byte maximum packet size. If a dedicated Debug Device has a fixed address, the address must be 127. The Control Endpoint must correctly handle short transfer requests of 8 bytes. NYET responses from the OUT endpoints must be equivalent to an ACK response. 4. Device Framework All Debug Devices, with the exception of fixed address devices, must implement all required standard commands in the core device framework. In addition, all debug devices must support the following set of framework extensions. 4.1 Debug Descriptor This descriptor is used to describe certain characteristics of the device that the host debug port driver needs to know to communicate with the device. Specifically, the debug descriptor lists the addresses of the endpoints that comprise the Debug Pipe. The endpoints are identified by endpoint number. This number is identical to bits 3-0 of the bendpointaddress field in an Endpoint descriptor. 2 USB2 Debug Device

Device Framework Revision 0.9 3/25/2003 Table 4 1. Debug Descriptor Type Offset Field Size Value Description 0 blength 1 Number Length of this descriptor in bytes: 4 1 bdescriptortype 1 Constant DEBUG Descriptor type 2 bdebuginendpoint 1 Number Endpoint number of the Debug Data IN endpoint. This is a Bulk-type endpoint with a maximum packet size of 8 bytes. 3 bdebugoutendpoint 1 Number Endpoint number of the Debug Data OUT endpoint. This is a Bulk-type endpoint with a maximum packet size of 8 bytes. Table 4 2. Descriptor Types Descriptor Type 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 4.1.1 Get Descriptor Debug Descriptor bmrequesttype brequest wvalue windex wlength Data 10000000B GET_DESCRIPTOR DEBUG type 0 4 Debug Descriptor Host software uses the GET_DESCRIPTOR request to get a device s debug descriptor. This command is sent with device as the recipient and a wvalue equal to DEBUG descriptor type. If a device supports Debug Device operation, it should return a valid Debug descriptor to the host. Devices that do not support Debug Device operation should give a Request Error response. Debug Port host drivers use this request to determine if a connected device supports Debug Device operation. Default state: Address state: Configured state: This is a valid request when the device is in the Default state. This is a valid request when the device is in the Address state. This is a valid request when the device is in the Configured state. USB2 Debug Device 3

Device Framework Revision 0.9 3/25/2003 4.2 Debug Mode Feature Selector Because of the 8-byte packet limit, debug port drivers cannot retrieve any more than the first eight bytes of a configuration descriptor (and the subsequent interface and endpoint descriptors that follow it). This prevents the driver from being able to parse configuration information in order to determine how to configure a debug device. The DEBUG_MODE feature selector provides a means for a debug port driver to enable a debug device connected to the debug port. When the feature is enabled, the device prepares for Debug Device operation and enables its Debug Pipe. Table 4 3. Standard Feature Selectors Feature Selector Recipient Value DEVICE_REMOTE_WAKEUP Device 1 ENDPOINT_HALT Endpoint 0 TEST_MODE Device 2 OTG b_hnp_enable Device 3 OTG a_hnp_support Device 4 OTG a_alt_hnp_support Device 5 DEBUG_MODE Device 6 4.2.1 Set Feature Debug Mode bmrequesttype brequest wvalue windex wlength Data 00000000B SET_FEATURE DEBUG MODE 0 0 none Host software uses the SET_FEATURE request to enable Debug Device operation. This command is sent with device as the recipient and a wvalue equal to DEBUG_MODE feature selector. If a device supports Debug Device operation, it should enable that operation before providing a Success Response to the host. This command is equivalent to issuing a Set Configuration request, specifying the configuration that contains the Debug Device data endpoints. Devices that do not support Debug Device operation should give a Request Error response. Default state: Address state: Configured state: This is a valid request when the device is in the Default state. This is a valid request when the device is in the Address state. The device responds with a Request Error. 4 USB2 Debug Device