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



Similar documents
SuperSpeed USB Developers Conference

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

Release Notes. Please refer to the Intel RealSense 3D Camera Software License.rtf for license terms and conditions.

USB Port PCI Express Card

An Analysis of Wireless Device Implementations on Universal Serial Bus

Intel Server Board S5000PALR Intel Server System SR1500ALR

Plug and Play for Windows 2000

USBSPYDER08 Discovery Kit for Freescale MC9RS08KA, MC9S08QD and MC9S08QG Microcontrollers User s Manual

Intel Server Board S3420GPV

USB 2.0 VGA ADAPTER USER MANUAL

USB Port PCI Express Card

Deploying Microsoft RemoteFX on a Single Remote Desktop Virtualization Host Server Step-by-Step Guide

Test Center Enterprise. ios Device Onboarding Guide

Deploying the DisplayLink Software using the MSI files

이 기기는 업무용 급 으로 전자파적합등록을 한 기기이오니 판매자 또는 사용자는 이점을 주의하시기 바라며 가정 외의 지역에서 사용하는 것을 목적으로 합니다

Useful USB Gadgets on Linux

Intel Desktop Board DG31GL

USB 3.0 to SATA 3.5" Enclosure Installation Guide

Getting Started. rp5800, rp5700 and rp3000 Models

v1 System Requirements 7/11/07

SuperSpeed USB Host: Jeff Ravencraft, USB-IF president and chairman

Read Me UNISTREAM AUTOMATION IDE

PL2775 JBOD / BIG / RAID0 / RAID1 Mode Application

e-gate USB Smart Card Driver Install Notes (Windows 98/98SE/Me)

Honeywell Internet Connection Module

Intel Server S3200SHL

Intel Desktop Board D975XBX2

Network Client. Troubleshooting Guide FREQUENTLY ASKED QUESTIONS

Windows MultiPoint Server 2011 Deployment Guide. Document Version 1.0 March 2011

Intel Server System S7000FC4URE-HWR

Intel Server Board S3420GPRX Intel Server System SR1630GPRX Intel Server System SR1630HGPRX

Design Considerations for USB Mass Storage

Yamaha 01V96 Version2 Upgrade Guide

Installation Guide for Pulse on Windows Server 2008R2

SuperSpeed USB Developers Conference. San Jose, California November 17-18, 2008

MN-700 Base Station Configuration Guide

Centran Version 4 Getting Started Guide KABA MAS. Table Of Contents

Possum HC2006 SERO! Telephone. Firmware Upgrade and Software Manual firmware version 2.00+

Installation Notes for Outpost Network Security (ONS) version 3.2

Iridium Extreme TM Satellite Phone. Data Services Manual

Installing Global Logger USB Drivers

The care and feeding of Pythons at the Redmond Zoo. (Using Micro Python and pyboard with Windows)

FAQ for USB Flash Drive

i.mx USB loader A white paper by Tristan Lelong

SuperSpeed USB 7-Port Hub Quick Installation Guide

Chapter 1 Downloading Images to Your Computer (Windows)

Digital Photo Bank / Portable HDD Pan Ocean E350 User Manual

Portions of this product were created using LEADTOOLS LEAD Technologies, Inc. ALL RIGHTS RESERVED.

XyLoc Windows7 Client Release Notes

Next Generation ProSystem fx Suite. Planning and Implementation Overview

1. System Requirements

Installation Guide for LynxClient

Shearwater Research Dive Computer Software Manual

Installing and Configuring vcenter Multi-Hypervisor Manager

Acer LCD Monitor Driver Installation Guide

2014 Electrical Server Installation Guide

Updated: April Copyright DBA Software Inc. All rights reserved. 2 Getting Started Guide

Using AORUS Notebook for the First Time

Designing and Deploying Connected Device Solutions for Small and Medium Business

Dual-boot Windows 10 alongside Windows 8

Debugging Network Communications. 1 Check the Network Cabling

ebus Player Quick Start Guide

DisplayLink Corporate Install Guide

Installation Guide v1.11 and Higher

DeviceAnywhere Enterprise. ios Device Onboarding Guide

InventoryControl for use with QuoteWerks Quick Start Guide

StruxureWare Power Monitoring 7.0.1

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

Lesson 5. Managing Devices. Learning Objectives. ODN Skills

AT89C5131A Starter Kit... Software User Guide

Guide to Installing BBL Crystal MIND on Windows 7

Ultra Thin Client TC-401 TC-402. Users s Guide

2.6.1 Creating an Acronis account Subscription to Acronis Cloud Creating bootable rescue media... 12

Intel Desktop Board DG45ID. MLP Report. Motherboard Logo Program (MLP) 9/29/2009

c. Securely insert the Ethernet cable from your cable or DSL modem into the Internet port (B) on the WGT634U. Broadband modem

LockView CompX Database & Network Configuration & Installation Manual

Rimage 2000i Knowledge Base

User Manual Version p BETA III December 23rd, 2015

CashFlow Programming Module CPM

Future Technology Devices International Ltd. Mac OS X Installation Guide

How To Install Outlook Addin On A 32 Bit Computer

MiCOM S1 Studio V5.0.0 Release note #6

Tutorial for MPLAB Starter Kit for PIC18F

Vi-System Installation & Administration Guide. Version 4.1

Plug-in Installation Instruction Xenon 1900/1902 Scanner

User Guide for Windows 10

Installation Guide for Pulse on Windows Server 2012

Atmel AVR4950: ASF - USB Host Stack. 8-bit Atmel Microcontrollers. Application Note. Features. 1 Introduction

Ash Capture Control User Guide

ReadyNAS OS 6 Desktop Storage Systems

RocketU 114x Host Controller

Cisco IP Communicator (Softphone) Compatibility

A Brief Tutorial on Power Management in Computer Systems. David Chalupsky, Emily Qi, & Ilango Ganga Intel Corporation March 13, 2007

================================================================== CONTENTS ==================================================================

e-config Data Migration Guidelines Version 1.1 Author: e-config Team Owner: e-config Team

Sage Grant Management System Requirements

Imation LOCK User Manual

4 Channel 6-Port SATA 6Gb/s PCIe RAID Host Card

USB 3.0 Hub + Gigabit Ethernet. Docking Station

Transcription:

Windows Logo for USB The easy way! Jane Lawrence Program Manager Microsoft Mark Maszak Test Engineer Microsoft

Agenda WLK & USB 3.0 Requirements Overview Design Guidelines System: Companion controllers vs. Mixed ports Device: Container ID & Microsoft OS Descriptor USB Tools and Testing Tips Windows Logo Certification Questions 2

WLK & USB 3.0 Requirements Overview 3

What is Windows Logo Kit (WLK)? Windows Logo Kit Everything you need to certify your hardware for Windows Requirements Tests Documentation for installing and running tests

WLK Goals Ensure the best experience for Windows users Signed drivers are available on Windows Update Help partners with quality of their hardware and drivers Motivate adoption of new user experiences and Motivate adoption of new user experiences and technology across the ecosystem

WLK USB Logo Programs Controller Logo Pass tests that verify USB controller quality System Logo All devices and drivers in the system must have device logos or driver quality signatures Systems must pass additional series of tests Device Logo Pass tests that verify device reliability and performance Hub Logo In addition to device tests, hubs must pass tests that verify hub reliability and performance Driver Signature Meet all criteria for drivers

USB WLK Controller Requirements Performance: Connect 0125: USB HC achieve at least 60% of transfer speed as defined in their spec (June 1, 2010) Connect 0126: USB HC and devices work without a forced HC reset on resume (June 1, 2010) Compatibility: BusPort 0043: xhci controllers are backwards compatible with high, full and low speed USB devices (Dec 1, 2010) BusPort 0047: xhci controllers implement at least one xhci Supported Protocol Capability structure for USB2 (Dec 1, 2010) User Experience: BusPort 0046: xhci controller add in cards correctly report internally attached devices (Dec 1, 2010) BusPort 0048: xhci add in cards must map USB 3.0 and USB 2.0 ports consistently (Dec 1, 2010) Compliance: BusPort 0034: USB Host Controller is USB-IF certified (June 1, 2011) BusPort 0041: USB 3.0 controllers are XHCI version 1.0 compliant (June 1, 2012) Supportability: BusPort 0044: xhci Controllers support MSI and/or MSI-X interrupts (Dec 1, 2010) BusPort 0045: xhci controllers set the AC64 bit in the HCCPARAMS register to 1 (Dec 1, 2010) BusPort 0042: xhci Controllers must support USB debugging on all exposed ports (June 1, 2012)

USB WLK System Requirements Performance: Sysfund-0235: All USB devices and host controllers work properly upon resume from sleep, hibernation or restart without a forced reset of the USB host controller (June 1, 2011) Sysfund-0236: USB Host Controllers can achieve at least 60% of their transfer speeds as defined in the respective specification (USB 2.0 or 3.0 spec) (June 1, 2011) Compatibility: Sysfund-0225: Systems which have xhci controllers, should route the USB 3.0 (Super Speed) and 2.0 port corresponding to each connector to the same xhci Controller (June 1, 2011) Sysfund-8019: Each exposed SuperSpeed USB capable connector supports SuperSpeed, high, full and low speed USB devices routed through its xhci controller (June 1, 2011) User experience: Sysfund-0226: Systems with xhci controllers must have embedded ACPI information for port routing (June 1, 2011) Sysfund-8020: Systems with SuperSpeed USB ports and non-superspeed USB ports should have visual differentiation between the two types of ports (June 1, 2011) Sysfund-8007: System firmware supports booting from all exposed USB 1.x, 2.x, and 3.x ports (June 1, 2011)

USB WLK Device Requirements Performance: Connect 0126: USB HC and devices work without a forced HC reset on resume (June 1, 2010) Connect 0131: USB 3.0 devices correctly implement Function Suspend and Selective Suspend (Dec 1, 2010) Connect 0140: Devices should signal attach within 500ms after system resumes (June 1, 2011) Connect 0142: USB devices should not disconnect from the upstream port while going to or resuming from selective suspend (June 1, 2011) Compatibility: Connect 0120; USB devices that implement the MS OS Container ID descriptor implement it correctly (June 1, 2011) Connect 0130: USB 3.0 devices are backwards compatible with down-level controllers and hubs (Dec 1, 2010) Connect 0139: All USB devices must enumerate and operate on EHCI and xhci controllers as well as downstream of full speed, a high speed and SuperSpeed USB hubs (June 1, 2011) User Experience: Connect 0123: USB Devices allow alternate driver to load (June 1, 2010) Compliance: Connect 0135: If the software enables SuperSpeed and then resets the 2.0 port, device should correctly move over (June 1, 2011) Connect 0141: If the upstream SuperSpeed termination is on, devices should always connect on the 3.0 port and never connect on the 2.0 port (June 1, 2011) Connect 0093: USB-IF Tests are passing or device is USB-IF certified (June 1, 2011)

USB WLK Hub Requirements Performance: Connect-0137: USB hubs support suspend, and downstream devices should not fall off the bus when the hub resumes from selective suspend (June 1, 2011) Compatibility: Connect-0132: USB 3.0 hubs implement the SuperSpeed hub descriptor, standard SuperSpeed Descriptors and the USB 2.0 ports (June 1, 2011) Compliance: Connect-0133: USB 3.0 hubs map their ports as defined in section 10.1 of the USB 3.0 specification (June 1, 2011) Connect-0134: USB 3.0 Hub should always report the port status bits correctly (June 1, 2011) Connect-0136: USB 3.0 Hubs should not turn off SuperSpeed termination on downstream ports on over-current and port reset (June 1, 2011)

11 USB-IF Testing for WLK Controllers must get full USB-IF certification Devices must go through USB-IF testing Full USB-IF certification is optional for devices Device can either be fully certified by USB-IF OR Subset of USB-IF tests (Interop and CV) are passing Encourage all partners to go through USB-IF certification Whitepaper on WHDC site: http://msdn.microsoft.com/en-us/windows/hardware/gg463175.aspx

Windows Design Guidelines 12

Companion Controllers vs. Mixed Ports Will Not get WLK Logo! Meets WLK Logo Requirement

Container ID Overview Enables grouping of all functional devices associated with the physical device independent of transport 14

Container ID Decision Provide a container ID in the Microsoft OS ContainerID Descriptor If the device supports multiple transports, the device will be represented the same when it s connected over different transport e.g. WiFi and USB If the device changes PnP IDs, the device will be perceived the same no matter what mode it s in Or enable the USB bus driver to generate a unique, consistent container ID for your USB-only device: Set the removable flags correctly e.g. A compound device s components should not be removable, while the parent should be removable Provide a valid static serial number Do not provide a Microsoft OS ContainerID descriptor or ContainerID BOS descriptor 15

Container ID Implementation Container ID must be a consistent GUID/UUID, unique for each device instance Use Binary device Object Store descriptor (BOS) for USB 3.0 Use Microsoft OS Descriptor s ContainerID descriptor (supported in Windows 7) Use guidgen.exe g in WDK and Visual Studio http://msdn.microsoft.com/en-us/library/ms241442%28vs.80%29.aspx 16

USB Attached SCSI (UAS) Device Guidelines Better Performance: Support minimum 16 streams per endpoint Report both maximum and optimal transfer length values in the Block Limits VPD mode page 0xB0 (T-10 SBC-3) Backwards Compatibility: Provide Unique Product Identification (Inquiry Serial Number, Inquiry Model Number) Support Container ID Support UAS & BOT on both USB 2.0 and USB 3.0 (BOT is alternate setting 0, UAS is alternate setting 1) Use same VID/PID for both buses User Experience: USB 3.0 Storage device shall report FIXED unless truly removable media (Flash Drive vs. Flash Card Reader) Support UNMAP command (ATA TRIM translation) Compliance: Comply to USB 3.0 Version 1.0 spec, UAS-r04, and SCSI SPC v4, USB BOT v1.0 UAS device shall support task management commands Support Mode page codes: 0x08 Mode subpage code: 00 and 0x1C Mode subpage code: 00 Power Management: Support selective suspend on USB 2.0 & USB 3.0 Support Link Power Management (U1/U2) on USB 3.0 17

USB Tools and Testing Tips 18

What s Event Tracing for Windows (ETW)? Event Tracing for Windows Identify what the Microsoft USB stack is doing in response to your device/driver Can easily be run by customer support/end users 19

Demo: What s wrong with my device? 20

ETW Wrap-up p USB Host Controller Transfer Speed Test in WLK uses ETW Looks at the timestamp + data payload for every packet, calculates the amount of data transferred every second Refer to the Eventdrv sample in the WDK for an example of how to add ETW support to your driver 21

Key WDK Tools Plug & Play and Power Management Basic tests that should be run on all devices/drivers Pwrtest /sleep /c:4 /s:all /d:180 /p:180 Pnpdtest t /stress /device USB\VID_1234&PID_5678&REV_00 Windows Device Testing Framework (WDTF) Use for more complex test scenarios Device Fundamental tests in WLK rely on WDTF Device Path Exerciser Tests reliability and security of drivers Run this test from one user account with standard permissions as well as one with administrator permissions 22

Driver Verifier Driver testing tool available on every Windows machine since Windows 2000 Helps you identify a range of driver problems, including memory corruption and deadlock issues Enable Driver Verifier with at least the standard flags during all non-performance based testing verifier.exe /standard /driver mydriver.sys y When a driver verifier issue is found, the system will crash Other important tools to verify drivers Static Driver Verifier WDF Verifier

Testing Scenarios To Run Run the WLK tests and the USB-IF tests frequently throughout your development cycle Examine the logs for configuration errors Test all of your devices on an xhci controller (upcoming logo requirement) Manual scenario examples Connect device to laptop/shut lid/while machine is suspending, unplug device Open lid on laptop to start resume/connect during resume Test 3.0 devices on EHCI controllers Test 3.0 devices with 2.0 cables connected to xhci controllers Examine logs for all Preview tests in WLK Windows 7 SP1 upgrade scenarios Windows 7 + install your drivers + upgrade to SP1 Windows 7 + upgrade to SP1 + install your drivers 24

Testing Scenarios Rapid disconnect/reconnect of power to your device (and/or the hub it s connected to) while still connected via USB Run tests simultaneously WLK has a test called CHAOS that runs PnPDtest, Pwrtest & Device Path Exerciser simultaneously Run those tests along with your device-specific tests Run longer term testing Test on systems with 4+ GB of memory Use nolowmem switch to force all drivers to load above Use nolowmem switch to force all drivers to load above 4GB

Compatibility Testing xhci/hub/oem/odm vendors Test your hardware in USB-IF SuperSpeed Platform Interoperability Lab Work with local sales/distribution partners to identify and acquire devices popular in various regions Get the latest firmware & drivers to your customers Device vendors Test your devices on a variety of xhci hardware/driver versions Test devices on machines with add-in xhci controllers, and machines with onboard xhci controllers Use device manager to ensure devices are enumerating under xhci controller If you find problems with a particular device or driver, work with xhci controller & driver vendors to address the issue 26

Power Diagnostic Tools Tool Usage Availability PowerCfg XPerf XbootMgr PwrTest View, modify power plans and settings Detect common energy efficiency problems Inbox with Windows 7 Analyze a wide range of performance Windows Performance Tool and energy efficiency related issues Kit Detailed focus on resource utilization (processor, disk, memory, etc.) Graphical and text views Exercises power transitions Tracing capability during transitions to analyze problems in detail Includes system pre-conditioning capability Exercises sleep and resume transitions View per-driver resume delays View processor power management, battery, and system power management information Windows Performance Tool Kit Windows Driver Kit WLK 1.6 27

Windows Logo Certification 28

How to Logo 3.0 Hardware Today Controllers: Hubs: Submit through the USB Controller category along with an xhci driver stack Hub drivers that are part of an xhci driver stack should not be submitted through the Hub Category Submit USB 3.0 hub through the unclassified category Devices: Submit USB devices through the appropriate category Test the device connected to an EHCI USB controller. No tests in WLK 1.6 to be run behind xhci controller Do not support running USB Device tests with an xhci stack in WLK 1.6 Will require all device tests to be run behind xhci in the future Systems: There are no changes to the system logo submissions No specific xhci tests in WLK 1.6

Summary Know WLK requirements and their effective dates WHQL site: https://winqual.microsoft.com/ Provide feedback Follow the design guidelines and troubleshooting tips USB Core Blog: http://blogs.msdn.com/b/usbcoreblog/ Test your hardware with WLK Test a variety of USB 1.1, 2.0 and 3.0 devices with your systems/controllers/hubs Participate in plugfests and industry events Obtain certification USB-IF and Windows logos indicate quality Share your USB product plans with us USB 3.0 team: usb3fb@microsoft.com 30

Questions 31

Resources USB Event Tracing for Windows http://msdn.microsoft.com/en-us/windows/hardware/gg463163.aspx USB ETW in Windows 7 http://blogs.msdn.com/b/usbcoreblog/archive/2009/12/04/etw com/b/usbcoreblog/archive/2009/12/04/etw-in-the-in the windows-7-usb-core-stack.aspx Using USB ETW to determine what s wrong with my USB Device http://blogs.msdn.com/b/usbcoreblog/archive/2009/12/21/answering-the- g g question-what-s-wrong-with-my-device-using-usb-etw.aspx Network Monitor 3.4 (used in demo) http://www.microsoft.com/downloads/en/details.aspx?displaylang=en&famil yid=983b941d-06cb-4658-b7f6-3088333d062f Network Monitor Parsers http://nmparsers.codeplex.com/ 32

Resources (Cont.) Windows Performance Analysis Tools (includes Xperf) http://msdn.microsoft.com/en-us/performance/cc825801.aspx Video with walk through several scenarios here http://www.microsoftpdc.com/2009/cl16 p Tools for Verifying Drivers http://msdn.microsoft.com/en-us/library/ff552969%28v=vs.85%29.aspx Driver Verifier http://msdn.microsoft.com/en-us/windows/hardware/gg487310.aspx BCDEdit command nolowmem (force drivers/apps to run above 4GB boundary) http://msdn.microsoft.com/en-us/library/ff542202.aspx 33

Backup 34

To Capture an ETW Trace Runthesecommandsinanelevatedcommand elevated prompt session to start a trace: Logman start USBTrace p Microsoft Windows USB USBPORT oo USBTrace.etl etl ets nb 128 640 bs 128 Logman update USBTrace p Microsoft Windows USB USBHUB ets nb 128 640 bs 128 Execute your USB device repro scenario After you have a repro, run this command from an elevated command prompt session to stop the trace: Logman stop USBTrace ets 35

Configure Network Monitor Setup 1) Install Network Monitor 3.4 2) Install Network Monitor Parsers 3) In Network Monitor, change to Windows as active parser a) Tools -> Options b) Highlight Windows c) Click Set As Active Open Trace 1) File -> Open -> Capture and navigate to your trace file (it s in the same directory where you ran the logman commands) 2) Filter -> Display Filter -> Load Filter -> Standard Filters -> USB -> USB Error Events 3) In the Display Filter pane in Network Monitor, click on Apply 36

WLK 1.6 USB Tools Device Specific c Tests s Disable a device's controller Test Disable controller of a disabled device Disable enable Composite Device Stress Enabling and disabling a specific USB device Stress Selective Suspend Test Power transition [S3 AND S4] supported for a disabled device Test Power transition [S5] supported for a disabled device Test query power drawn on a disabled USB device Test Uninstall a disabled device System Tests Disable device hierarchy Test Test Stress uninstall of all USB controllers Check for HID devices that can't wake the system Validate USB tree supports device sleep states 37