© 2003 Microsoft Corporation. All rights reserved. 1 Agenda (Part One) In-box USB support Windows...

21
© 2003 Microsoft Corporation. All rights reserved. 1 Agenda (Part One) In-box USB support Windows in-box USB class driver support matrix across Operating Systems Road Map July 2003 refresh Extending USB – new isochronous capabilities List of future features for EHCI Extending USB – tips and tricks Common install issues Common hardware issues Common driver issues Top IHV questions/concerns Extending USB – what you haven’t seen yet in the DDK “Errors, Omissions, and Sources of Confusion” (material from in-progress DDK docs and sample enhancements) Future of selective suspend USB limitations client drivers need to know about

Transcript of © 2003 Microsoft Corporation. All rights reserved. 1 Agenda (Part One) In-box USB support Windows...

© 2003 Microsoft Corporation. All rights reserved.1

Agenda (Part One)

In-box USB support Windows in-box USB class driver support matrix across Operating Systems Road Map

July 2003 refresh Extending USB – new isochronous capabilities List of future features for EHCI

Extending USB – tips and tricks Common install issues Common hardware issues Common driver issues Top IHV questions/concerns

Extending USB – what you haven’t seen yet in the DDK “Errors, Omissions, and Sources of Confusion”

(material from in-progress DDK docs and sample enhancements) Future of selective suspend USB limitations client drivers need to know about

© 2003 Microsoft Corporation. All rights reserved.2

Agenda (Part Two)

Testing and Debugging USB client drivers – tools and tips Top types of OCA issues

Realistic picture of what HCT covers

DDK Tools you should be using

Tips and Tricks you should know about

Debug through a common USB issue minidump

Peek at future USB client driver development model (WinUSB, DFW)

© 2003 Microsoft Corporation. All rights reserved.3

Evolution of USB Class Drivers

Class Windows

98

Windows

2000

Windows

ME

Windows

XPAudio  C   C   C   C

HID   C   C   C   C

RNDIS   C *  C *  C *  C

Storage  -   C   C   C

Printing  C   C   C   C

Scanning     C *   C   C   C

Video - -  -  C *

Smart Cards -  C *  - C *

Fax -   C    C  C

Biometric -  -    - C*

Content Protection -  -    C   CC Class driver exists in box at RTMC* Class driver delivered post RTM

Class Driver Evolution In Windows

© 2003 Microsoft Corporation. All rights reserved.4

Common Installation Issues

All devices must have unique VID/PID/REV Microsoft working with USB Core Team to provide guidance to silicon

manufacturers reselling their core to third-party OEMs

Who sets the VID/PID

Must device pass USB-IF and WHQL recertification?

Microsoft recommendation white paper targeted for 2004

Never Copy INF manually into INF folder (use SetupCopyOEMINF)

Composite devices must reference “[Composite.Dev.NT]” section in USB.inf file, using include/needs

Vendors must use their VID/PIDs for devices with RAM based firmware

© 2003 Microsoft Corporation. All rights reserved.5

Common Hardware Issues

Top Five Hardware Errors/Issues VID/PID: reuse of identical VID/PID/REV is wrong, and causes

incorrect WU downloads!

Serial Numbers: lack of unique USB Serial Number (mandated in some class specs) causes user confusion

Remote Wake: remote wake bit set, even though device can never generate remote signaling – HCT failure!

String Address 0xEE: devices must respond to address 0xEE and validate all parameters in USB requests!

Power-up Timelines: USB devices must respond to OS requests in < 100ms after power up, to prevent issues with system S* resume

© 2003 Microsoft Corporation. All rights reserved.6

Hardware ID Matching

Step one – match on the device identification strings for the parent PDO of a composite device

Step two – match on device identification strings for the child PDO of a composite device

Step three – match on hardware identification strings for a HID TLC

Hardware IDs Compatible IDs

USB\Vid_xxxx&Pid_yyyy&Rev_zzzz

USB\Vid_xxxx&Pid_yyyy

USB\Class_aa&SubClass_bb&Prot_cc

USB\Class_aa&SubClass_bb

USB\Class_aa

USB\COMPOSITE

http://www.microsoft.com/whdc/device/input/HID_HWID.mspx

Hardware IDs Compatible IDsHID\Vid_xxxx&Pid_yyyy&

Rev_zzzz&MI_aa&Colbb

HID\Vid_xxxx&Pid_yyyy&MI_aa&Colbb

HID_DEVICE_UP:pppp_U:uuuu

HID_DEVICE

HID\Vid_xxxx&Pid_yyyy&Rev_zzzz&MI_aa&Colbb

HID\Vid_xxxx&Pid_yyyy&MI_aa&Colbb

HID_DEVICE_UP:pppp_U:uuuu

HID_DEVICE

Hardware IDs Compatible IDs

USB\Vid_xxxx&Pid_yyyy&Rev_zzzz&MI_ww

USB\Vid_xxxx&Pid_yyyy&MI_ww

USB\Class_aa&SubClass_bb&Prot_cc

USB\Class_aa&SubClass_bb

USB\Class_aa

© 2003 Microsoft Corporation. All rights reserved.7

Windows XP SP1 – USB Software Update On WU (Q822603)

© 2003 Microsoft Corporation. All rights reserved.8

Hi-speed ISOC Changes In Q822603 (Installs On Windows XP SP1)

Periodic ISOC support Current support is only for periodic isochronous audio-in

Microsoft has tested this only with the audio driver that is included with Windows XPSP1

periodic ISOC transfers limited to a period of eight frames or less

Hi-Speed ISOC audio device needs period of eight to work with USBAUDIO.SYS

ISOC Improvements CPU utilization reduced by using new algorithm

Microphones in hi-speed cameras can work (with periodic ISOC)

© 2003 Microsoft Corporation. All rights reserved.9

EHCI Features NOT Yet Implemented

Features added to EHCI after Version 0.96 are not supported; e.g., Rebalance Lockout (I-Bit)

Frame Span Traversal Nodes (FSTN)

64-bit HC addressing support

Kernel Debugging over USB 2.0

EHCI Bios handoff

© 2003 Microsoft Corporation. All rights reserved.10

Future Work Items

© 2003 Microsoft Corporation. All rights reserved.11

IAD Support

What is IAD? A USB Spec Update (ratified in April 2003) Allows interfaces to be grouped into a single function No need for new USB device classes to reinvent new mechanisms each time

When will it be supported? Supported in LH (PDC build and Beta 1) Planned for XP SP2

What drivers are impacted in the core stack to support IAD? USBHUB: New class/subclass/protocol matching needed USBCCGP: Read IAD from device and create PDOs per IAD descriptions.

When will tests be available? HCT tests and USB-CV tests under development Provide 2 samples to Windows Core USB team (to validate IAD) until

tests are available

Detailed Whitepaper on http://www.microsoft.com/whdc

© 2003 Microsoft Corporation. All rights reserved.12

Booting Windows PE From UFD

Motivation for using UFD Replacement for floppy drive

Faster speed Larger capacity

USB speed and ubiquity USB Flash Devices rapidly growing in

use

Core Scenarios Deploying Windows to new or

damaged system Recovering a Windows install or files

from damaged system Maintenance and support of a running

system Anti-virus scan and repair Disk defrag or error checking

Partitioning/formatting

Windows PE Licensing ISV licensing available

Licensed as a component of Software Assurance

OEMs receive as part of the OEM Preinstallation Kit (OPK)

Still have questions [email protected]

© 2003 Microsoft Corporation. All rights reserved.13

Kernel Debugging Over USB 2.0

Design wins Aids mobile system (without 1394/serial port) debugging

Provides alternatives; difficult to debug 1394 stack over itself!

Can not debug cardbus issue if laptop has only one cardbus slot consumed by 1394 debugging card

Hardware requirements EHCI controller must support Kernel Debugging

(EHCI Spec V1.0 – Appendix C)

PC link cable must support debugging

Software/BIOS requirements USB KD driver and DLL needed

BIOS might need to identify debug port#

BIOS will need to support hi-speed device communication

© 2003 Microsoft Corporation. All rights reserved.14

Windows XP And USB On-The-Go

Windows XP and future code bases will NOT provide special support for OTG devices PC will continue to work in host mode

Devices attached to PC (including OTG device) MUST work in function mode

OTG hosts will work in a PC if it complies with EHCI/UHCI/OHCI specification

Ports on PC should be Std-A: ensures compatibility with existing base

500mA powered

© 2003 Microsoft Corporation. All rights reserved.15

Debugging The USB Stack – Introduction(Details In Part Two Of This Talk)

© 2003 Microsoft Corporation. All rights reserved.16

USB Stack Debugging

Rules around USB stack debugging Check build (or USB driver stack modules) are required

Enable all drivers to get most details

Windows 2000 Windows XP

Module Name Debug Symbol Range Module Name Debug Symbol Range

UHCD.SYSUHCD_Debug_Trace_Level 0-2 USBPORT.SYS USBPORT_Debug_Trace_L

evel0-4

OPENHCI.SYSOHCI_Debug_Trace_Level 0-2 USBCCGP.SYS DbgVerbose 0-1

USBHUB.SYS USBH_Debug_Trace_Level 0-3 USBHUB.SYS USBH_Debug_Trace_Level 0-3

USBD.SYS USBD_Debug_Trace_Level 0-3 USBD.SYS USBD_Debug_Trace_Level 0-3

http://support.microsoft.com/default.aspx?scid=kb;en-us;314743

© 2003 Microsoft Corporation. All rights reserved.17

Bugcheck 0xFE

0xFE code in XPSP1 and WS03 (Details in DDK)

Generated by USB stack (on fatal error), to identify / diagnose problem immediately INTERNAL_ERROR

An internal error occurred in USB stack MS Engineers need hardware to repro

BAD_URB (Most common) Client driver has submitted URB that is still attached to another IRP which is still

pending on the bus USB Verifier will help identify/catch these issues

MINIPORT_ERROR Miniport driver has generated a bugcheck Usually due to catastrophic hardware (host controller) failure

IRP_URB_DOUBLE_SUBMIT Client driver submitted IRP that is already pending in bus driver

Future work Additional documentation in future DDK refreshes and on WHDC Website Additional error conditions will be created to identify critical problems

© 2003 Microsoft Corporation. All rights reserved.18

Summary

HCT testing Test your devices with latest HCT

Monitor HCT betas and new input device test tools to be developed

Review the call to actions

Attend USB Client Drivers Tips and Tricks (Part Two) for advanced information

© 2003 Microsoft Corporation. All rights reserved.19

Call To Action

Kernel debugging EHCI silicon manufacturers implement KD support in host controllers

PC-to-PC dongle manufacturers implement debug capability in link cables

Please send Microsoft hi-speed ISOC samples!

BIOS vendors support hi-speed support from USB storage!

Chat with Microsoft Ask experts at the event

Continue working with DDK PSS engineers offline

Visit the WHDC web site for USB quarterlyhttp://www.microsoft.com/whdc/system/bus/usb

© 2003 Microsoft Corporation. All rights reserved.20

Resources

Microsoft Resources www.microsoft.com/whdc

www.microsoft.com/whdc/system/bus/usb/default.mspx

www.microsoft.com/downloads/results.aspx?productID=&freetext=USB&DisplayLang=en

MSDN Newsgroups Windows Development Device Drivers

Windows Development Windows DDK

Industry Resources www.usb.org

www.pcisig.com

www.pcmcia.org

Technical Papers IAD & USB2 Debug Device

developer.intel.com/technology/usb/spec.htm

Booting Windows from USB Storage Deviceswww.microsoft.com/whdc/system/bus/usb/usb-boot.mspx

USB CCID Smart Card Readerswww.microsoft.com/whdc/device/input/smartcard/USB_CCID.mspx

© 2003 Microsoft Corporation. All rights reserved.21

© 2003 Microsoft Corporation. All rights reserved.This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.