October 10, 2000 1
Dec 23, 2015
October 10, 2000 1
October 10, 2000 2
USB 2.0 Software Roadmap & Architecture Update
USB 2.0 Software Roadmap & Architecture Update
Robert IngmanRobert IngmanLead Program ManagerLead Program Manager
Windows DivisionWindows Division
Microsoft Corp.Microsoft Corp.
October 10, 2000 3
Software Roadmap AgendaSoftware Roadmap Agenda
Microsoft planMicrosoft plan Microsoft’s ship criteria Microsoft’s ship criteria ““Early adopter” planEarly adopter” plan Current statusCurrent status USB 2.0 and storage devicesUSB 2.0 and storage devices
October 10, 2000 4
Microsoft PlanMicrosoft Plan
Tentative “early adopter” USB 2.0 driver support for Tentative “early adopter” USB 2.0 driver support for Windows 2000 in Q1, 2001Windows 2000 in Q1, 2001– Only if hardware is ready in timeOnly if hardware is ready in time– Why Q1 next year? Hardware won’t be ready this year…Why Q1 next year? Hardware won’t be ready this year…
Tentative full USB 2.0 support in Windows “Whistler” Tentative full USB 2.0 support in Windows “Whistler” releases in 2001releases in 2001– consumer, workstation, and server releases consumer, workstation, and server releases
Tentative back-ports of USB 2.0 driver supportTentative back-ports of USB 2.0 driver support by mid-2001 for Windows Me and Windows 98 SE by mid-2001 for Windows Me and Windows 98 SE
No driver support for Windows 98 gold No driver support for Windows 98 gold
October 10, 2000 5
Why Windows 2000 First?Why Windows 2000 First?
Windows 2000 is our USB 2.0 development platformWindows 2000 is our USB 2.0 development platform– We develop and test on Windows 2000 code base first anywayWe develop and test on Windows 2000 code base first anyway– Reduces riskReduces risk– Reduces test burdenReduces test burden
Windows 2000 is Microsoft’s strategic foundation for all Windows 2000 is Microsoft’s strategic foundation for all future OS effortsfuture OS efforts– Paves the way for USB 2.0 support in Windows “Whistler”Paves the way for USB 2.0 support in Windows “Whistler”
and beyond and beyond Enables early focus on business/commercial customers Enables early focus on business/commercial customers
and “prosumers” and “prosumers”
October 10, 2000 6
Microsoft’s Ship CriteriaMicrosoft’s Ship Criteria
Before Microsoft USB 2.0 driver stack ships, for Before Microsoft USB 2.0 driver stack ships, for any Windows OS, we need at least 3 months of any Windows OS, we need at least 3 months of solid end-to-end testing with the following solid end-to-end testing with the following hardware:hardware:– Production-qualityProduction-quality USB 2.0 host controllers from USB 2.0 host controllers from
at least 2 vendorsat least 2 vendors– Production-qualityProduction-quality USB 2.0 hubs from at least USB 2.0 hubs from at least
3 vendors3 vendors– Production-qualityProduction-quality USB 2.0 peripherals from USB 2.0 peripherals from
at least 6 vendorsat least 6 vendors
October 10, 2000 7
“Early Adopter” Plan“Early Adopter” Plan
““Early adopter” OEMs and IHVs should plan to Early adopter” OEMs and IHVs should plan to spend time & resources at Microsoft this fall spend time & resources at Microsoft this fall – We need MORE HARDWARE to test with!We need MORE HARDWARE to test with!– Can you help?Can you help?
3-month final test pass for Win2000 can start only 3-month final test pass for Win2000 can start only when we have enough production-quality when we have enough production-quality hardware to test with hardware to test with
USB 2.0 host controllers, hubs, and peripherals as USB 2.0 host controllers, hubs, and peripherals as specified by our ship criteria need to be part of specified by our ship criteria need to be part of the entire test passthe entire test pass
October 10, 2000 8
“Early Adopter” Test Flow“Early Adopter” Test Flow
First at Intel for hardware debugging First at Intel for hardware debugging – Low-level electrical workLow-level electrical work– Bus signaling work Bus signaling work – Any work that requires extensive use of scopes, etcAny work that requires extensive use of scopes, etc– Compliance and interop testingCompliance and interop testing
Then at Microsoft when you are ready toThen at Microsoft when you are ready to– Have your device enumerated by a 2.0 host controllerHave your device enumerated by a 2.0 host controller– Have Windows load a driver for it Have Windows load a driver for it
October 10, 2000 9
Current Software Status Current Software Status
New USB 2.0 driver stack up & runningNew USB 2.0 driver stack up & running– New port driver New port driver – New mini-port drivers for UHCI, OHCI, and EHCINew mini-port drivers for UHCI, OHCI, and EHCI
2.0 HS interrupt and bulk is functional2.0 HS interrupt and bulk is functional Classic FS bulk works behind 2.0 hub/TTClassic FS bulk works behind 2.0 hub/TT Areas that need more work:Areas that need more work:
– Classic LS devices behind 2.0 hub/TTClassic LS devices behind 2.0 hub/TT– Classic FS isoch behind 2.0 hub/TTClassic FS isoch behind 2.0 hub/TT– 2.0 HS isoch 2.0 HS isoch
Test tools are being developed in parallelTest tools are being developed in parallel
As of October 9, 2000As of October 9, 2000
October 10, 2000 10
Current Hardware Status Current Hardware Status
Early testing of USB 2.0 driver stack on Win2000 Early testing of USB 2.0 driver stack on Win2000 with the following hardware:with the following hardware:– Host controllers and hubs from one vendorHost controllers and hubs from one vendor– IDE-to-USB2 bridges from 2 vendorsIDE-to-USB2 bridges from 2 vendors– Scanner from one vendorScanner from one vendor– Generic, programmable test device from IntelGeneric, programmable test device from Intel
As of October 9, 2000As of October 9, 2000
October 10, 2000 11
USB 2.0 andStorage DevicesUSB 2.0 andStorage Devices
USB 2.0 is fine for secondary add-on storageUSB 2.0 is fine for secondary add-on storage Microsoft has no plans in place currently to support a Microsoft has no plans in place currently to support a
USB 2.0 storage device as the primary, bootable deviceUSB 2.0 storage device as the primary, bootable device– This means no support for system boot partitions, paging, This means no support for system boot partitions, paging,
hibernation, or crash-dumpshibernation, or crash-dumps ““Recovery boot” from USB 2.0 CD-ROM drive will be Recovery boot” from USB 2.0 CD-ROM drive will be
supported, but requires specific BIOS support as wellsupported, but requires specific BIOS support as well(El Torito specification)(El Torito specification)
Boot to MS-DOS from USB floppy done via BIOSBoot to MS-DOS from USB floppy done via BIOSsupport as wellsupport as well– El Torito or legacy emulationEl Torito or legacy emulation
October 10, 2000 12
Architecture AgendaArchitecture Agenda
Overview of new USB 2.0 driver stackOverview of new USB 2.0 driver stack
USB Driver Interface for 2.0USB Driver Interface for 2.0
New USB UI for 2.0New USB UI for 2.0
Selective Suspend Selective Suspend
ConclusionConclusion
October 10, 2000 13
New USB Driver StackNew USB Driver Stack
New USB port driver and mini-port driver for each host New USB port driver and mini-port driver for each host controller type replace monolithic Win9X/Win2000 host controller type replace monolithic Win9X/Win2000 host controller driverscontroller drivers– Port driver handles PnP, power mgmt, and other OS stuffPort driver handles PnP, power mgmt, and other OS stuff– Mini-port drivers talk to the hardwareMini-port drivers talk to the hardware
New generic parent/composite device driverNew generic parent/composite device driver Hub driver now loads for hubs only (and not for Hub driver now loads for hubs only (and not for
composite devices)composite devices) New driver architecture reduces dependencies and New driver architecture reduces dependencies and
isolates specific functionality in dedicated drivers isolates specific functionality in dedicated drivers
October 10, 2000 14
USB Driver Stackin “Whistler”USB Driver Stackin “Whistler”
USB Host ControllerUSB Host ControllerUSB Host ControllerUSB Host Controller
PCI EnumeratorPCI EnumeratorPCI EnumeratorPCI Enumerator
USBUSBUhci.Uhci.SysSys
USBUSBUhci.Uhci.SysSys
USBUSBOhci.Ohci.SysSys
USBUSBOhci.Ohci.SysSys
USBccgp.SysUSBccgp.SysUSBccgp.SysUSBccgp.Sys
USBport.SysUSBport.SysUSBport.SysUSBport.Sys
Client DriverClient DriverClient DriverClient Driver
USBhub.SysUSBhub.SysUSBhub.SysUSBhub.Sys
USB Driver Interface (in DDK)USB Driver Interface (in DDK)USB Driver Interface (in DDK)USB Driver Interface (in DDK)
USBUSBEhci.Ehci.SysSys
USBUSBEhci.Ehci.SysSys
Not Committed Yet!Not Committed Yet!Not Committed Yet!Not Committed Yet!
UUSSBBD.D.SSYYSS
UUSSBBD.D.SSYYSS
October 10, 2000 15
USB 2.0 Added to Win2000USB 2.0 Added to Win2000
USB Host ControllerUSB Host ControllerUSB Host ControllerUSB Host Controller
PCI EnumeratorPCI EnumeratorPCI EnumeratorPCI Enumerator
UHCD.UHCD.SYSSYS
UHCD.UHCD.SYSSYS
OPENOPENHCI.HCI.SYSSYS
OPENOPENHCI.HCI.SYSSYS
USBPORT.SYSUSBPORT.SYSUSBPORT.SYSUSBPORT.SYS
CLIENT DRIVERCLIENT DRIVERCLIENT DRIVERCLIENT DRIVER
USBHUB.SYSUSBHUB.SYSUSBHUB.SYSUSBHUB.SYS
USB Driver Interface (in DDK)USB Driver Interface (in DDK)
USBEHCI.SYSUSBEHCI.SYSUSBEHCI.SYSUSBEHCI.SYS
USBHUB20.SYSUSBHUB20.SYSUSBHUB20.SYSUSBHUB20.SYS
UUSSBBD.D.SSYYSS
UUSSBBD.D.SSYYSS
October 10, 2000 16
Bulk, Interrupt, & IsochronousBulk, Interrupt, & IsochronousClassic 1.0/1.1 DevicesClassic 1.0/1.1 Devices
Connected to 2.0 HC via USB 2.0 hub/TTConnected to 2.0 HC via USB 2.0 hub/TT USB Driver Interface remains exactly the sameUSB Driver Interface remains exactly the same
– Client drivers do not need to changeClient drivers do not need to change Transaction Translator support is built into Transaction Translator support is built into
USBEHCI mini-port driver USBEHCI mini-port driver Some changes required to MS Hub driverSome changes required to MS Hub driver
– USBHUB.SYS updated in “Whistler”USBHUB.SYS updated in “Whistler”– USBHUB20.SYS for W2K and Win9XUSBHUB20.SYS for W2K and Win9X
October 10, 2000 17
2.0 High-Speed Devices2.0 High-Speed Devices
USB Driver Interface remains exactly the sameUSB Driver Interface remains exactly the same Client drivers do not need to changeClient drivers do not need to change
– Device just runs at higher speedDevice just runs at higher speed– For example, the USB mass storage class driverFor example, the USB mass storage class driver
in Windows 2000 does not need to be changedin Windows 2000 does not need to be changed
Bulk & InterruptBulk & Interrupt
October 10, 2000 18
2.0 High-Speed Isochronous2.0 High-Speed Isochronous
USB 2.0 isoch has micro-frame resolutionUSB 2.0 isoch has micro-frame resolution– 8 packets per ms instead of 1 packet per ms8 packets per ms instead of 1 packet per ms
Options:Options:1.1. Allow client drivers to submit 1 packet-sized data buffersAllow client drivers to submit 1 packet-sized data buffers
– Would require new USB Driver InterfaceWould require new USB Driver Interface– Would introduce huge burden on system (8000 IRP’s/sec)Would introduce huge burden on system (8000 IRP’s/sec)
2.2. Keep min. data buffer size the same as for FS isochKeep min. data buffer size the same as for FS isoch– Data buffer must be able to hold at least 1ms worth of dataData buffer must be able to hold at least 1ms worth of data– No need to expose current micro-frame number to client driverNo need to expose current micro-frame number to client driver– USB Driver Interface can remain the same as for FS isochUSB Driver Interface can remain the same as for FS isoch
Plan is to go with option 2 Plan is to go with option 2
October 10, 2000 19
USB UI OverviewUSB UI Overview
Property pages in Device Manager:Property pages in Device Manager:– Host controller bandwidth allocation (“Advanced” tab)Host controller bandwidth allocation (“Advanced” tab)– Hub power information per port (“Power” tab)Hub power information per port (“Power” tab)
Pop-up error dialogsPop-up error dialogs– Hub power exceeded (e.g. camera plugged intoHub power exceeded (e.g. camera plugged into
bus-powered hub)bus-powered hub)– Over-current/electrical surge on hub portOver-current/electrical surge on hub port– Failed bandwidth allocationFailed bandwidth allocation– Cascading of more than 5 hubsCascading of more than 5 hubs– Enumeration failure (new in “Whistler”)Enumeration failure (new in “Whistler”)– Non-unique serial numbers (new in “Whistler”)Non-unique serial numbers (new in “Whistler”)
October 10, 2000 20
New UI for USB 2.0 New UI for USB 2.0
Device Manager property pages will include USB Device Manager property pages will include USB 2.0 HC’s and hubs as well2.0 HC’s and hubs as well
New pop-up dialogs to cover new basic scenario:New pop-up dialogs to cover new basic scenario:– 2.0 hub/device plugged into classic root port or hub2.0 hub/device plugged into classic root port or hub
User will be guided to plug in 2.0 device intoUser will be guided to plug in 2.0 device into2.0-capable port instead:2.0-capable port instead:– Free 2.0 port does exist: plug it inFree 2.0 port does exist: plug it in– Free 2.0 port does not exist: swap 1.0/2.0 devicesFree 2.0 port does not exist: swap 1.0/2.0 devices– All 2.0 ports have 2.0 devices plugged in: trade deviceAll 2.0 ports have 2.0 devices plugged in: trade device– System isn’t 2.0-capable: warning dialogSystem isn’t 2.0-capable: warning dialog
October 10, 2000 21
Selective SuspendSelective Suspend
Allows individual devices to be selectively suspended Allows individual devices to be selectively suspended (D2) when idle even when system itself is fully awake (S0)(D2) when idle even when system itself is fully awake (S0)
Allows root ports to be suspended if all USB devices are Allows root ports to be suspended if all USB devices are idle, and the HC can be put into a low-power state (C3)idle, and the HC can be put into a low-power state (C3)– Will result in battery power savings for mobile systemsWill result in battery power savings for mobile systems
Scheme is cooperative, and requires that all devices + Scheme is cooperative, and requires that all devices + drivers go into idle state when inactivedrivers go into idle state when inactive
Client drivers must be able to put devices into aClient drivers must be able to put devices into alow-power state even when system itself is awakelow-power state even when system itself is awake
Microsoft will rev HID/keyboard/mouse, storage, and Microsoft will rev HID/keyboard/mouse, storage, and printer driver stacks to take advantage of this new featureprinter driver stacks to take advantage of this new feature
Sample driver in “Whistler” DDK (beta2)Sample driver in “Whistler” DDK (beta2)
New Feature in “Whistler”New Feature in “Whistler”
October 10, 2000 22
Selective SuspendSelective Suspend
Power downPower down– New IOCTL in USBHUB that client driver calls whenNew IOCTL in USBHUB that client driver calls when
device is idledevice is idle– Callback routine tells client driver to power down deviceCallback routine tells client driver to power down device
using standard PoXxx callusing standard PoXxx call– NOTE: client driver must post WAIT_WAKE IRP for wake-up NOTE: client driver must post WAIT_WAKE IRP for wake-up
capable device before powering down devicecapable device before powering down device Power upPower up
– Wake-up capable device generates standard resume signaling Wake-up capable device generates standard resume signaling when “activated” by the user, WAIT_WAKE IRP gets completed, when “activated” by the user, WAIT_WAKE IRP gets completed, and client driver issues Set_D0 request to deviceand client driver issues Set_D0 request to device
OROR– Client driver issues Set_D0 request to device in response to host Client driver issues Set_D0 request to device in response to host
software “activation” software “activation”
ContinuedContinued
October 10, 2000 23
ConclusionConclusion
USB 2.0 driver development work leveragesUSB 2.0 driver development work leverageswhat was done for USB 1.0what was done for USB 1.0– Re-use of USB1.x driver code reduces riskRe-use of USB1.x driver code reduces risk
Microsoft’s USB team is staffed and fully Microsoft’s USB team is staffed and fully committed to USB 2.0committed to USB 2.0
Microsoft’s ability to support USB 2.0 “early Microsoft’s ability to support USB 2.0 “early adopters” is gated on the early availability of adopters” is gated on the early availability of enough host controllers, hubs, and peripheralsenough host controllers, hubs, and peripherals
October 10, 2000 24
Call to ActionCall to Action
USB 2.0 driver support for Windows is gated on USB 2.0 driver support for Windows is gated on hardware availabilityhardware availability– Contact us as soon as you are ready to work with usContact us as soon as you are ready to work with us– Send email to Send email to [email protected]@MICROSOFT.COM
Get on the Windows “Whistler” Beta programGet on the Windows “Whistler” Beta program– Send email to Send email to [email protected]@MICROSOFT.COM
Get the USB 2.0 PDKGet the USB 2.0 PDK– Details on Details on http://www.usb.org/developers/usb20/http://www.usb.org/developers/usb20/– Includes Win2000 pre-release drivers from MicrosoftIncludes Win2000 pre-release drivers from Microsoft