280 likes | 957 Views
USB in Windows 7 and Beyond. Randy Aull Principal Software Design Engineer Device Connectivity Team Device & Storage Technologies Group. Agenda. USB Focus in Windows 7 USB 3.0 Call to Action. USB in Windows 7. USB Key Investments for Windows 7. Externally visible updates
E N D
USB in Windows 7 and Beyond Randy Aull Principal Software Design Engineer Device Connectivity Team Device & Storage Technologies Group
Agenda • USB Focus in Windows 7 • USB 3.0 • Call to Action
USB Key Investments for Windows 7 • Externally visible updates • Aggressive power management • Selective suspend fine tuning • Timer coalescing • I/O transfer performance optimizations • Improvements to overall system stability • Internal stack enhancements* • Event tracing for Windows (ETW): Diagnostics and logging • Capturing internal logs during mini dumps • SQM/CEIP automated USB feedback collected from customers *Internal Microsoft Only
USB Power Management in Windows 7 • GOAL • Identify devices that don’t selectively suspend at all, or rarely suspend • SOLUTION • Add ETW events in the stack when devices enter or exit suspend states • Power team has developed the battery maximizer wizard • Leverages ETW events from USB core stack • Power management fundamentals talk has details • PerfTrace will also use the ETW events to identify “problem” devices
Suspend/Resume • Verify that your USB devices are functional after system suspend/resume cycle on Windows 7 • If device does not resume, set the ResetOnResume registry flag • If flag fixes the problem, let Microsoft know ASAP so we can update our in-built errata list. HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\UsbFlags\VVVVPPPPRRRR VVVV = Vendor ID from USB Device Descriptor PPPP = Product ID from USB Device Descriptor RRRR = Device release number from USB Device Descriptor REG_BINARY: ResetOnResume nonzero = perform a USB reset when resuming this device NOTE: Must be at least 2 bytes
Other Windows 7 Changes • USB developers and OEMs should test WITHOUT ForceHCResetOnResume registry flag set on Windows 7 • Introduced in SP1 to work around some hardware and stack issues • In Windows 7, no need to set this flag • Any device that takes a long time to start working after resume should be reported to Microsoft • Windows Logo Kit (WLK) tests turns this flag off on Windows 7 • In Vista SP1 and Windows 7, USB stack supports “fast resume”. This will improve the resume time for the system.
USB Hub Selective Suspend • Vista “all-or-nothing” behavior • Vista suspends ALL hubs behind a host controller (HC) at the same time. Hence, all non-hub devices behind the HC must be in low power state before we suspend the hub. • “Empty” hubs are left active and periodic scheduler is always on. • Issue for mobile systems with embedded devices that have the topology in the diagram • Solution: Individually suspend hubs
USB 2.0 EHCI v1.1 • Intel has released EHCI v1.1 Extensions • Link Power Management • Per Port Change Events • Shorter Periodic Frame List • Hardware Prefetching • We do NOT have plans to support EHCI v1.1 • Reference: Enhanced Host Controller Interface Specification for Universal Serial Bus addendum, Version 1.1 • http://download.intel.com/technology/usb/EHCIv1-1_Addendum.pdf
Microsoft OS Descriptor • What is the Microsoft OS Descriptor?A set of descriptors to store operating system specific information to enhance the user experience of USB devices. • Where can I get more details on it? • Microsoft OS Descriptors on the WHDC Web sitehttp://www.microsoft.com/whdc/connect/usb/os_desc.mspx • Container ID: An identifier used to recognize a unique device instance across multiple transports. • Come to our chalk talk to learn more about this:Community Issues: Wired USB Tues. 2:45-3:45 and Wed. 1:30-2:30
Microsoft OS Descriptor • What should you do if you do not want to support Microsoft OS Descriptor? Respond to the string request with a STALL. This is the correct way to respond and does not violate any licensing rights. • The current WLK includes tools to help validate this behavior.
New USB Requirements for WLK 1.3 • 4 new Logo Program requirements for Windows 7 • 3 requirements for devices / controllers • Host controllers and devices support all system power states • USB Host controllers and internal devices support selective suspend • Upon re-enabling a USB host controller, all devices that were attached before disabling are still present • 1 (if-implemented) device requirement for the new Container ID descriptor in Microsoft OS descriptor • Will be part of the Microsoft OS Descriptor Test in the USB Descriptor Test • All 4 new requirements are effective June 1, 2009
New USB WLK Tests • 3 new tests for devices and systems • System Power State Test • Loops through all system-supported power states and checks that all host controllers are present after resume • S1, S2, S3, and S4 as applies to the system under test • USB Host Controller Disable Enable Test • Disables all USB host controllers and connected USB devices on the system and then re-enables each host controller and its devices, individually checking that all devices that were initially present are still present • USB Host Controller Selective Suspend Test • Validates that the device supports IDLE in its driver • Targets the WLK System Kit (i.e. internal devices)
Changes to the Kit • USB Device tests are part of the system kit • Run as part of system certification • Unclassified program will run device tests • Requested tests are being added to the optional section • Instructions enclosed in artwork on this slide. Double click the artwork to open the object.
USB 3.0 and XHCI Overview Post-Windows 7 Technology Preview
USB 3.0 Overview • Focus has been on Power Management and Performance increases, leveraging existing classes and class drivers. • Positioning USB 3.0 to support removable and nonremovable device scenarios. • Backwards Compatibility • Cabling/connector • Standard A receptacles backward compatible with USB 2.0 • New B and Micro AB receptacles backward compatible with USB 2.0 • Devices – USB 2.0 support remains • Software – Existing USB class/function drivers just work* • Hubs support both USB 2.0 & SuperSpeeddevices *Potential for additional performance optimization
Features in USB 3.0 Affecting Function Drivers • Streams – Allows a device to target any one of multiple buffers queued to a single endpoint • Function power management • Link power management (potentially) • Higher throughput will affect function driver efficiency
XHCI Overview • Single host controller supports all device speeds (including SuperSpeed) • Key points of interest • No companion controllers • Caches the schedules to reduce impact on battery life • Supports SuperSpeed and Legacy Speeds • Power management enhancements (LPM) • Improved I/O efficiency • Hardware virtualization enhancements • Improved debugging over USB • Improves experience for USB 2.0 and USB 3.0 devices • For additional details: • Extensible Host Controller Interface (xHCI) Draft Specification for USB 3.0 http://www.intel.com/technology/usb/xhcispec.htm
Features in XHCI Affecting Drivers • Power Management • Selective Suspend motivation changed • Link power management (LPM) • Performance • Chained MDLs / buffers
Potential Software Support • New stack proposal based on XHCI controller • New controller driver and hub driver may be required • Keep new stack and legacy stack side-by-side • Key design goals of new stack • Maintain compatibility with existing function drivers and devices • Support USB 3.0 and 2.0 devices via XHCI • Support booting from USB mass storage • Efficient I/O path • Leverage KMDF
Call To Action • Validate latest WLK Tests and Requirements. • Please share your early feedback with through the WLK support channels. • Please ensure that your devices work without ForceHCResetOnResume • Please run the USB team’s suggested tests and test cases. Contact the USB core team for details • Give us feedback during pre-Beta and Beta cycle.
Additional Resources • Web Resources • USB.ORG for more details on USB 3.0http://www.usb.org/usb30 • USB on the WHDC Web Site • How to use WinUSB to Communicate with a USB Devicehttp://www.microsoft.com/whdc/connect/usb/winusb_howto.mspx • Summary of white papers and presentationshttp://www.microsoft.com/whdc/connect/usb/default.mspx • USB on MSDN • Device Installation Design Guidehttp://msdn.microsoft.com/en-us/library/ms790231.aspx
The Need for SuperSpeed USB • Flash-based peripherals will require much higher data rates • Digital cameras and camcorders • Flash memory drives (USB thumb sticks, and cards) • Flash-based digital MP3 and video players • PC, Mobile, Handheld PCs and smart phones (SSD’s) • User wait time requirement, 1½ minutes to synchronize • Interface performance sets the requirement Your Connectivity Is Only As Fast As Your Memory
VBUS D+ D- VBUS SSRX+ D+ SSRX- D- VBUS VBUS SSTX+ SSTX+ SSTX- D+ D+ SSTX- GND D- D- SSRX+ SSRX- SSTX+ SSRX+ GND SSTX- SSRX- SSRX+ SSTX+ VBUS SSRX- SSTX- D+ GND GND D- GND VBUS D+ D- GND USB 3.0 Bus Interface Host PC USB 3.0 Device • USB 3.0 adds a dual-simplex data path with a revised USB protocol • No auxiliary signals, i.e. no reference clock, no reset signal, etc. • USB 2.0 two-wire interface remains untouched USB 3.0 Port USB 2.0 Device USB 2.0 Port
USB3_RX GND USB3_TX VBUS D+ D- GND USB 3.0 Connectors • Summary diagrams of the USB 3.0 connectors on the host end and the device end. • Complete compatibility with USB 2.0 Standard-A connector