Intel Open Source Technology Center Lu Baolu 2015/09

Slides:



Advertisements
Similar presentations
SUNIX Taiwan Headquarters SUNIX Vertriebs GmbH SUNIX do Brasil.
Advertisements

Computer Architecture
Accessing I/O Devices Processor Memory BUS I/O Device 1 I/O Device 2.
Primary Author: Girish Verma Secondary Author(s): Navya Prabhakar Presenter: Navya Prabhakar Company/Organization: CircuitSutra USB Modeling Quick Start.
PROGRAMMABLE PERIPHERAL INTERFACE -8255
1 ICS 156: Lecture 2 (part 2) Data link layer protocols Address resolution protocol Notes on lab 2.
Universal Serial Bus Grant Heileman. The History of USB In 1994 a collaborative effort to design a standard for peripheral devices was made between Compaq,
USB Digital Audio Player Using ST92163 By Microcontroller DivisionVersion 1.2 / November 2000.
Computer Organization and Architecture
May 16, Data Transfer & Framework John Garney Hub Working Group Chair Intel Corporation John Garney Hub Working Group Chair Intel Corporation.
Introduction Characteristics of USB System Model What needs to be done Platform Issues Conceptual Issues Timeline USB Monitoring Final Presentation 10.
USB: Data Flow Sukesh Shenoy. USB implementation areas.
t Popularity of the Internet t Provides universal interconnection between individual groups that use different hardware suited for their needs t Based.
1 USB 2.0 Specification  General Description  From where we could begin the work  What would be valid to do?  Main doubts  What is OTG (On the Go)
1 USB 2.0 Specification  General Description  What is OTG (On the Go)  From where we could begin the work  What would be valid to do?
Anush Rengarajan Feng Zheng Thomas Madaelil
USB 2.0 INTRODUCTION NTUT CSIE 學 生:許家豪 指導教授:柯開維教授.
Introduction to USB. 2 Agenda Introduction to USB LPC23xx Block diagram MCB2300 demo.
USB: UNIVERSAL SERIAL BUS Joe Kaewbaidhoon Alex Motalleb Vishal Joshi Prepared for EECS 373 University of Michigan, Ann Arbor 1.
Serial Interfaces. Bit serial bus New generation of busses Uses bit-serial, differential drive technology Uses on-line device drivers (Hot-plug technology)
TM Freescale, the Freescale logo, AltiVec, C-5, CodeTest, CodeWarrior, ColdFire, C-Ware, mobileGT, PowerQUICC, StarCore, and Symphony are trademarks of.
Mahesh Wagh Intel Corporation Member, PCIe Protocol Workgroup.
May 8, The EASY Way to Create I/O Devices John Hyde Intel Corporation intel.com.
May 8, USB 2.0 Support in Windows ® Operating Systems Fred Bhesania Microsoft.
October 10, USB 2.0 Hub Testing Dan Froelich Intel.
May 17, USB2.0 Host Controller John S. Howard Staff Engineer Intel Architecture Labs Intel Corporation.
USB host for web camera connection
Debugging techniques in Linux Debugging Techniques in Linux Chetan Kumar S Wipro Technologies.
Chapter 8 Input/Output. Busses l Group of electrical conductors suitable for carrying computer signals from one location to another l Each conductor in.
USB Flash Card Writer Using ST92163 By Microcontroller DivisionVersion 1.2 / November 2000.
Peripheral Busses COMP Jamie Curtis. PC Busses ISA is the first generation bus 8 bit on IBM XT 16 bit on 286 or above (16MB/s) Extended through.
Introduction to USB Development. USB Development Introduction Technical Overview USB in Embedded Systems Recent Developments Extensions to USB USB as.
Introduction to USB © 2010 Renesas Electronics America Inc. All rights reserved.
Signature Verbs Extension Richard L. Graham. Data Integrity Field (DIF) Used to provide data block integrity check capabilities (CRC) for block storage.
USB host for web camera connection
The University of New Hampshire InterOperability Laboratory Introduction To PCIe Express © 2011 University of New Hampshire.
Microprocessor-based Systems
I/O Example: Disk Drives To access data: — seek: position head over the proper track (8 to 20 ms. avg.) — rotational latency: wait for desired sector (.5.
Renesas Electronics America Inc. RX USB Peripheral The Renesas RX USB peripheral a.k.a. USBC_597IP_PP Ver
Ethernet Driver Changes for NET+OS V5.1. Design Changes Resides in bsp\devices\ethernet directory. Source code broken into more C files. Native driver.
May 16, USB 2.0 Technical Overview Brad Hosler USB Engineering Manager Intel Corporation.
 Introduction  System Architecture  ISP1761 USB Host Controller P 彭治 民.
October 10, USB 2.0 Technical Overview Brad Hosler USB Engineering Manager Intel Corporation.
Accessing I/O Devices Processor Memory BUS I/O Device 1 I/O Device 2.
Updates and Common Questions Asked by Simulation Developers Peter Shier Architect Windows Devices and Storage Technologies
Chapter 13 – I/O Systems (Pgs ). Devices  Two conflicting properties A. Growing uniformity in interfaces (both h/w and s/w): e.g., USB, TWAIN.
Tutorial 12 Managing Hardware and Networks
PROGRAMMABLE PERIPHERAL INTERFACE -8255
بسم الله الرحمن الرحيم MEMORY AND I/O.
The World Leader in High Performance Signal Processing Solutions SD/SDIO Introduction Cliff Cai.
Intro to PCI 2002 년 1 월 21 일 신 준 헌. Contents PCI bus features General PCI bus model PCI Device vs. Function Specifications.
Introduction to Kernel
Why VT-d Direct memory access (DMA) is a method that allows an input/output (I/O) device to send or receive data directly to or from the main memory, bypassing.
USB The topics covered, in order, are USB background
USB PHYISICAL LAYER PROTOCOL ENGINE LAYER APPLICATION LAYER
Anton Burtsev February, 2017
EE-587 Spring FEB 08 William Mullins
The PCI bus (Peripheral Component Interconnect ) is the most commonly used peripheral bus on desktops and bigger computers. higher-level bus architectures.
Universal Serial Bus Specification 1.0
NS Training Hardware.
11/8/2018 8:19 PM HW-98P Windows 8 kernel debugging: New protocols and certification requirements Tanya Radeva Program Manager Microsoft Corporation Joe.
USB- Universal Serial Bus
USB debugging innovations in Windows 8 Part 1: Overview
Greg Bell Business Development Mgr Industrial & Security Markets
NS Training Hardware.
Presentation transcript:

Intel Open Source Technology Center Lu Baolu 2015/09 xHCI USB3 Debug Port Intel Open Source Technology Center Lu Baolu 2015/09

Agenda What is USB3 debug port? Why is it needed? Debug topology Operation model Register interface Software stack Port multiplexing USE CASE: early printk USE CASE: kgdb Reference

What is USB3 debug port Optional xHCI feature defined in 7.6 of xHCI specification Independent of the xHCI host interface Debug device fully compliant with USB framework Provide the equivalent of a very high performance full-duplex serial link Only works with USB super speed.

Agenda What is USB3 debug port? Why is it needed? Debug topology Operation model Register interface Software stack Port multiplexing USE CASE: early printk USE CASE: kgdb Reference

Why is it needed? PC2001 System Design Guide requires debug capabilities in all system Low cost solution for legacy free debugging Good alternative for serial port 10x higher data rate than USB2 debug port

Agenda What is USB3 debug port? Why is it needed? Debug topology Operation model Register interface Software stack Port multiplexing USE CASE: early printk USE CASE: kgdb Reference

Debug topology Multiple Debug Targets may be attached to a single Debug Host. A Debug Target may only connect to a Debug Host through a Root Hub port of the target. Debug Target: System Under Test Debug Host: Debug Target enumerates as USB debug device to the Debug Host, allowing a Debug Host to access a Debug Target through the standard USB software stack.

Agenda What is USB3 debug port? Why is it needed? Debug topology Operation model Register interface Software stack Port multiplexing USE CASE: early printk USE CASE: kgdb Reference

Operational model Bulk In/Out transfers: Control transfers: Software prepares a TRB (transfer request buffer contains pointer to DMA buffer and some control fields) in the head of the transfer ring. Software ring the endpoint door bell. Hardware schedules the transfer over USB. Hardware prepares a TRB in the head of the event ring. Software check the head of event ring periodically until seeing the completion TRB. Control transfers: Hardware takes the responsibility to handle all control transfer requests sending from the debug host. xHCI spec defines bits in register interface so that software knows the status or result of control transfers.

Agenda What is USB3 debug port? Why is it needed? Debug topology Operation model Register interface Software stack Port multiplexing USE CASE: early printk USE CASE: kgdb Reference

Register interface Door bell Event ring management Control and status Port management Endpoint management Device descriptor Information

Agenda What is USB3 debug port? Why is it needed? Debug topology Operation model Register interface Software stack Port multiplexing USE CASE: early printk USE CASE: kgdb Reference

Software stack Linux lacks of “Debug Capability Driver” in this block. Debug capability driver manages debug capability hardware through register interface. Debug capability driver provides ops like read(), write() and control() to upper level debug hooks.

Agenda What is USB3 debug port? Why is it needed? Debug topology Operation model Register interface Software stack Port multiplexing USE CASE: early printk USE CASE: kgdb Reference

Port multiplexing A debug port is always multiplexed with the first xHCI root hub port. The root hub port is assigned to the debug capability and operating in an upstream facing mode when debug capability is enabled. When root hub port is assigned to the debug capability, it appears through the xHCI as a fully functional root hub port that never sees a device attach.

Agenda What is USB3 debug port? Why is it needed? Debug topology Operation model Register interface Software stack Port multiplexing USE CASE: early printk USE CASE: kgdb Reference

USE CASE: early printk Check whether debug capability is supported. # cat /sys/kernel/debug/usb/xhci/<pci_bus_name>/extcap ... @ffffc90001c88700 0a USB Debug Capability Enable the following kernel configure options on debug target: CONFIG_EARLY_PRINTK CONFIG_EARLY_PRINTK_XDBC Enable the following kernel configure options on debug host: CONFIG_USB_SERIAL CONFIG_USB_SERIAL_DEBUG Start minicom and press Y as soon as debug target is enumerated.

USE CASE: early printk This feature is targeted to v4.4.

Agenda What is USB3 debug port? Why is it needed? Debug topology Operation model Register interface Software stack Port multiplexing USE CASE: early printk USE CASE: kgdb Reference

USE CASE: kgdb Any system debugger could be hooked to DbC.

Reference eXtensible Host Controller Interface for Universal Serial Bus http://www.intel.com/content/dam/www/public/us/en/documents/technical-specifications/extensible-host-controler-interface-usb-xhci.pdf http://www.coreboot.org/EHCI_Debug_Port http://composter.com.ua/documents/USB-2.0-Debug-Port%28John-Keys%29.pdf

Thank you!