Title: Microsoft And Device Bay Dan Shapiro Program Manager Microsoft Corporation
1Microsoft And Device BayDan ShapiroProgram
ManagerMicrosoft Corporation
2Getting Started With Device Bay
- Grant Ley, TI, Chuck Stancil, Compaq, and
Krunali Patel, TI - USB Device Bay Controller Requirements
- Jeff Wolford, Compaq
- Building the First Device Bay Platforms and
Devices
3USB Device Bay ControllerImplementation,
Software, And Power ConsiderationsGrant Ley,
Texas InstrumentsChuck Stancil, Compaq Krunali
Patel, Texas Instruments
4The Device Bay Concept
Expansion/remote bay system
Desktop system
Bay
Mobile system
Device
USB data path
1394 data path
Bay management
Power
5Device Bay Specification
- Open industry specification jointly developed by
Compaq, Intel, and Microsoft - www.device-bay.org
- Private questions devicebay_at_acmenet.com
- Public send subscribe device_bay to
majordomo_at_europa.com - Supports a wide variety of devices
- Mass storage (HDD, DVD/CD-ROM, tape, etc.)
- Communications and connectivity (modem, LAN)
- Audio and security via USB
6Device Bay Controller
- For specification of the DBC, see Section 6 of
the Device Bay Spec - DBC manages all bays
- Maintains bay status
- Detects device insertion/removal
- Enables Vid (enumeration power) to the device
- Detects user removal requests via optional bay
mounted push button
7Device Bay Connector Signals
- Presence detect
- USBPRSN, 1394PRSN
- Pulled to ground to indicate interface type (USB
or 1394 or both) - USB data signals
- 1394 data signals
8DBC Signals To The Bay
- Required
- Lock enable
- ID power (Vid) enable
- Optional
- Removal request
- Security lock status
- Bay status indicator
9ACPI DBC Implementation
PCI
ACPI
USB root controller
1394 link controller
PHY/Link interface
Device Bay controller
Walk-up port
1394 PHY
Device Bay 0
Device Bay 1
Device Bay 2
Device Bay 3
10ACPI DBC Implementation
- ACPI name space and control methods describe
the DBC implementation - Can reside on a bus like PCI, I2C, SMBus
- No physical connection between DBC and PHY
- DBC data structures implemented as a register set
11USB DBC Implementation
- DBC implemented as a USB function
- Connected to the USB hub
- Can be integrated into the hub as an embedded
function - Must have simple Link controller to
communicate with a 1394 PHY - Walk-up ports can be connected to the same USB
hub or 1394 PHY that is connected to the bays
12USB DBC Implementation
- DBC is a self-powered or bus-powered USB device
- DBC communicates with system via USB control and
interrupt endpoints (pipes) - DBC descriptors contain info about
- Bay control
- Bay status
- DBC capabilities
- DBC descriptors accessed using USB DBC
class-specific requests
13USB DBC Implementation
PCI
USB root controller
1394 link controller
1394 PHY
Device Bay controller
PHY/Link interface
Walk-up port
USB hub controller
1394 PHY
Device Bay 0
Device Bay 1
Device Bay 2
Device Bay 3
14USB-Based DBC System
Device Bay standard
Mech Form Factor(s)
Interface signals USB Data 1394 Data Bay
Management Power
Management commands and procedures
Communications methods USB Class Device
Connector
Computer system
Bay
USB HUB
USB Host Ctrl
Device
System Bus
Bay Controller
Mgmt. S/W
CPU
Phy/Link I/F
Bay
1394 Host Ctrl
1394 PHY
1394 PHY
Device
Phy/Link I/F
Power supply
- Riser card in desktop chassis
- Remote expansion chassis
- Monitor with Device Bay capability
- Docking Station for mobile platforms
15Remote Considerations
- Bus or hybrid powered USB hub
- Minimum of two 1394 walk-up ports
- Three recommended to support spanning
- Supply 1394 bus power
- Recommend minimum of 15W at 20V
- Support DB32 devices
- Requires 12V support
16Remote Device Bay System
Host PC
Remote Device Bay
Power Supply
1394 OHCI
Windows
1394 Walkup Port 0
Remote DBC
1394 Walkup Port 1
USB OHCI/UHCI
DBC Class Driver
USB Walkup Port 0
USB Walkup Port 1
Monitor
Bay 1
Bay 0
Software stack 1394 Bus Driver OHCI Port
Driver SBP2 Port Driver USB Bus Driver USB
OHCI Port Driver USB Audio Class Driver USB
DBC Class Driver
HDD
DVD
USB Speaker
17The Software Pieces
- Universal Serial Bus Driver (USBD)
- USB OHCI/UHCI port driver
- 1394 bus driver
- 1394 OHCI port driver
18The DBC Link Controller
- Supports a 400 Mbps PHY/link interface
- Strongly recommend P1394a compliance
- Software access to PHY registers compliant with
method defined by 1394 OHCI Release 1.0 - Asynchronous transaction capable
- Minimal CSR and Config ROM space
- General ROM format required
19The DBC Link Controller
- Isochronous resource manager, cycle master, and
bus manager capability not required - Maximum payload size is 1 quadlet
20USB DBC Class Specification
- Defines the USB communication channel used by the
DBC to communicate with the host - Standard device descriptor
- Standard configuration descriptor
- Standard endpoint descriptors
- Control
- Interrupt
- USB port power management
21USB DBC Class Specification
- Device descriptors
- Class-specific device descriptors
- Subsystem descriptor
- Bay descriptors
- Standard device descriptor
22USB DBC Class Specification
- USB requests
- Standard requests
- Class-specific requests
- GetBayStatus
- Get/SetPHYCommunicationRegister
- Optional vendor-specific requests
- For example, asset tracking
- Set/ClearFeature requests
- See www.microsoft.com/hwdev for white paper about
USB DBC Spec
23Design Considerations
- Bay state machine
- The LOCK_CTL and PWR_CTL relationship
- Initializing read-only fields
- Driving the bay status indicator
24Bay State Machine Design
- Behavior after reset with a device
present - The state transition Bay Empty ? Device Inserted
(or any other state) requires software
intervention - DEVSTSCHG can either be set or cleared if set
system BIOS should clear it!
25Bay State Machine Design
- Software state transitions
- All software state transition requests (via
BAY_STREQ field in BCERx) must be qualified with
device presence by the hardware! - Software state transitions occur at the time of
the write to the BAY_STREQ field (i.e., there is
no queuing!) however, DBC hardware will always
retain the last non-zero value written to
BAY_STREQ
26LOCK_CTL And PWR_CTL Relationship
- Normal sequence of these two bits
- 1. After device is inserted S/W sets LOCK_CTL
- 2. S/W sets PWR_CTL
- 3. When device is to be removed S/W clears
PWR_CTL - 4. S/W clears LOCK_CTL
- DBC hardware MUST prevent PWR_CTL (VID enable)
from being set if LOCK_CTL is not set
27LOCK_CTL And PWR_CTL Relationship
- If both bits are set and LOCK_CTL is erroneously
cleared first (by S/W) then DBC hardware must
automatically clear PWR_CTL - If the software controlled interlock mechanism is
overridden then DBC hardware must clear PWR_CTL
28Initializing Read-Only Fields
- There are fields in the DBC (registers or
descriptors) that contain static information
about a DB subsystem they could be implemented
as write-once and initialized via - An embedded controller
- OEM BIOS
- A configuration EEPROM
29Driving The Bay Status Indicator
- Use of bipolar drivers allows the system designer
to use a two-pin bipolar (green/yellow) LED, a
three-pin LED or discrete LEDs
30Driving The Bay Status Indicator
- If using bipolar drivers with a 2-pin bipolar LED
watch your supply voltage! - 3.3V probably isnt high enough!
- VOH(min) - VOL(max) VF(LED) VR
- typical case VOH(min) ? VCC - 1.0V
- VOL(max) ? 0.4V
- VF(LED) ? 2.1V
- ? 2.3V - 0.4V 2.1V VR
31Driving The Bay Status Indicator
- Dont power the LEDs from an auxiliary or standby
power supply! The LEDs must be off when the
system is in S3 through S5!
32Call To Action
- Use Device Bay resources
- Spec is at www.device-bay.org
- Private questions devicebay_at_acmenet.com
- Public send subscribe device_bay to
majordomo_at_europa.com - USB DBC Spec. white paper on www.microsoft.com/hwd
ev - OEMs and DBC silicon providers start working
together - Send your hardware to Microsoft for software
development and testing
33Device Bay, Beyond The SpecificationJeff
WolfordSenior Systems ArchitectAdvanced
Technology GroupCompaq Computer Corporation
34Device Bay Introduction
- Open industry specification jointly developed by
Compaq, Intel, and Microsoft - www.device-bay.org
- Private questions devicebay_at_acmenet.com
- Public send subscribe device_bay to
majordomo_at_europa.com - Supports a wide variety of devices
- Mass storage (HDD, DVD/CD-ROM, tape, etc.)
- Communications and connectivity (modem, LAN)
- Audio and security via USB
35Device Bay Overview
- Complete architecture for adding/upgrading PC
peripherals without opening the chassis - Specifies bus interfaces, form factor,
mechanicals, and OS behavior for device insertion
and removal - Mandatory buses
- Host USB, 1394 (400 Mbit host ports) and POWER
Bus(es) Vid, Vop - Device either USB, 1394 or both at least Vid
and Vop if gt 1.5 Watt
- Key enablers
- USB
- IEEE 1394
36Device Bay OverviewForm-factors
- 3 Device Bay form-factors
- DB32 - 32.00 x 146.00 x 178.00 mm
- Size and power optimized for desktop
- DB20 - 20.00 x 130.00 x 141.50 mm
- DB13 - 13.00 x 130.00 x 141.50 mm
- DB20 and DB13s size and power optimized for, but
not limited to, notebook implementations
37Device Bay OverviewRetaining a connection
- Retention feature
- Required to engage immediately
- Software-controlled interlock
- Required
- Security lock
- Optional
- Any of the above can be combined
38Device Bay Overview Buses
- Vid power 1.5W at 3.3V (switched by the
system) - Vop power (switched by the device)
- DB32 - 30W electrical, 25W thermal
- DB20 and DB13 - 4W
- 2 serial buses (1394 and USB)
- Keeps appropriate performing devices on the
corresponding bus - Allows power consumption to scale with
performance of the device
39Device Bay Overview USB
- USB is a medium-bandwidth bus (1.2 - 12
Mbps) - Bay requirements
- One USB port per bay
- Device Bay device requirements
- Provide power requirement registers
- Unique serial number
- If Vop is used, must be switched with
configuration complete command
40Device Bay Overview 1394
- IEEE 1394 and future extensions
- Initial transfer rate is 100 - 400 Mb/s, with
P1394A and P1394B extensions to support Gbps data
rates that must be backward compatible - Device Bay bay requirements
- One 1394 port per bay
- Must support 400Mbps minimum
41Device Bay Overview 1394
- Device Bay device requirements
- Provide power requirement registers
- If Vop is used, must be switched with start/stop
unit command - Devices can use 100 - 400Mbps
- Encouraged to use highest rate possible for
devices to minimize equivalent bandwidth
requirements
42Device Bay Overview Connector
- Open industry standard
- Blind-mate connector pair
- Plug in the device, receptacle in the bay
- Supports power, one USB port, and one 1394 port
in one connector - Pin configuration for higher speed 1394 (gt 1Gb/s)
and hot-plug - High durability (min 2,500 cycles)
- Flexible and cable friendly
43Device Bay Overview Device Bay Controller (DBC)
- Two possible implementations
- USB
- ACPI - abstracts HW I/F (PCI, I2C, etc.)
- Required functions
- Power control
- Insertion events (PRSN)
- Software-controlled interlock mechanism
- 1394 PHY port mapping
- USB port mapping
44Device Bay DevelopmentImplementers guide
- Bay mechanical design
- Bay electrical design
- Device Bay Controller (DBC) software
requirements - Device mechanical design
- Device electrical design
- Power
- Signal
- Reset
45Bay Mechanical DesignBay cover
- A bay must be covered when no device is present
to keep from short circuiting the air flow from
other bays - Watch out for
- Devices that are hollow in the center
- Hanging up on devices retention features
- Interacting with the ESD/EMI bay spring
46Bay Mechanical DesignDevice alignment
- Bay must provide rough device alignment
- Needs to get the device to a /-2mm connector
tolerance - Needs to keep the device in tight vertical and
horizontal tolerance - Allows retention and interlock features to engage
and disengage properly
47Bay Mechanical DesignRetention mechanism
- Needs to hold the device on the connector and not
allow the device to back off (i.e., 1.46 mm
minimum wipe) - Design for multiple device enclosure
materials - Steel, aluminum, plastic, and bi-material (metal
over plastic) that produces two materials on the
same retention face
48Bay Electrical DesignPower switching
- Vid switching
- Should be ramped
- Insertion resistance (FET, wire, etc.)
- Vop switching
- Optional
- Difficult to maintain valid voltages
- Feedback from processor power, not from DB
power - Must support switching of maximum power on all
voltage rails
49Bay Electrical Design Connector sets
- Connector stack-up
- Two sets minimum for cable version
- Easy to get three sets
- Watch termination and differential routing
through noisy digital logic - There may also be one set in the device for
mechanical isolation or for adapters
50Bay Controller DesignDBC software
- After an insertion notification, the DBC driver
needs to verify several things before it turns on
Vid - Verify the Bay is enabled to take devices
- Verify there is 1.5W in the power budget
- Wait for the device to settle down and become
fully latched on the connector before enabling
power
51Device Design MechanicalCritical dimensions
- Most critical is keeping the connector square
- Connector float in the Bay and connector
blind-mate features will compensate for some
tolerance in the X, Y, and Z planes - But, if the connector is not square with the
device, the float and blind-mate will be of
little help - DB32 height is /-0.25mm
52Device Design Mechanical Retention features
- Critical dimension is from the retention edge to
the back of the device - Required faces must be present and in tolerance
- Bi-material features must have smooth transition
from one material to another so as not to snag
the bays retention mechanism
53Device Design Mechanical Device shell
- Round corners and edges within spec
- Round edges reduces the drag of insertion and
removal of device - Round corners help the user get the device lined
up and in the bay - Round edges supports new handling models
- The device feels better in the users hands
54Device Design Mechanical Device shell
- Cosmetics no longer limited to front bezel
- Users now see the entire device
- Additional user models beyond upgrade need to be
considered - Casual device swapping
- Taking devices on the road
55Device Design Electrical Power switching
- Vop power switching
- di/dt requirements support
- Hot plugging
- Capacitance load-independent
- Supports lower power consuming PC in the future
- Vid - switched by the Bay (1.5W,3.3V)
- Needed to power the native bus interface and
allow access of identification and power registers
56Device Design Electrical Power switching
- Vop power switching assumptions
- No more than 5uA can be drawn on Vop if Vid is
not valid - When Vid is not valid, Vid is not required to be
shorted to ground - Vop may or may not be valid when Vid is disabled
- Vop power rails can be switched on/off in any
order when Vid is not valid
57Device Design Power
- 1394 PHYs with Links required as first
connection - Provides Link to get device information,
including driver and power requirements - Full power authorization via native bus driver
stack - USB configuration complete
- 1394 Start Unit command
- Device Bay power manager would fail the above
commands to block enumeration
58Device Design Power
- All devices are required to support ACPI states
0, 2, and 3 - Support of state 1 is highly desired to support a
fully power managed PC - 0 device is fully on
- 1 reduced power consumption on Vop
- 2 no power consumption on Vop and, if
possible, reduced power on Vid - Can be same as pre-enumeration state
- 3 device is fully off
59Device DesignElectrical problems
- Problem using 12V of Vop for switch voltage
enhancement for V5 and V33 - Vid is not valid, thus the gate might not be
grounded - Vop12v is valid, thus the gate might not be
pulled to 12V
60Device DesignElectrical problems
- Problem using Vid (3.3V) and Vop (5V) to drive
reset circuits - Vop is only required to be valid with Vid
- If Vop is used for a reset RC circuit, the reset
might not be done when Vid becomes valid
61Device DesignElectrical problems
- Problem input leakage current and voltage for a
device that is off - Could violate 5uA current limit
- Voltage feed-through could allow this voltage to
come out another pin - Requires fail-safe buffers
62Device DesignElectrical problems
- Problem tying two resets together
- PHY reset RC was biased to 1.4V because of input
voltage leak when the device was powered off via
TPbias - PHY reset was tied to Link reset, causing the
Link reset edge to start at 1.4V, causing a
non-complete edge on its reset
63Device DesignReset problems
- When the 1394 bus has completed the self-ID
phase, the Link must be able to respond to CSR
and ROM reads if it cannot, there are several
options - Best be able to respond after self-ID
- Second best respond with an ack-pending and
respond before the ack-pending times out
64Device DesignReset problems
- Link reads after self-ID
- Third best strap PHY to come up in link-off
mode - Then when the Link is able to take commands,
assert the LPS to the PHY and if the PHY does not
do a reset on LPS status change, pop a 1394 bus
reset - Worst, but better than none let the initial CSR
reads ack time-out when the Link becomes
available, cause a 1394 bus reset
65Demo Device Insertion
PRSN -gt DBC, DBC Driver Device Insertion
Start blinking LED DBC Driver -gt DB PWR MGR
Do we have 1.5 W ? DB PWR MGR -gt DBC Driver
YES DBC Driver -gt DBC IF Vop switched, turn
on Vop Turn on Vid Turn LED on solid
Wait for Native Bus to take over NATIVE
BUS Disk.sys -gt SBP-2 Start Unit SBP-2 -gt
PWR Filter PWR Filter -gt DB PWR MGR See Start
Unit DB PWR MGR -gt 1394 Filter Read Unit
Directory Power Reg 1394 Filter -gt DB PWR MGR
Power Requirements Data DB PWR MGR -gt 1394
Filter Pass or Fail Start Unit
Disk.sys
SBP-2
Device Bay power manager
PWR FILTER
1394 class
OHCI
TI LINKS
DBC driver
PCI
USB
ACPI
Device Bay controller
PCI OHCI
1394 PHY
V33
1394
PRSN
V5
Vid
V12
DB connector
DB device
66Demo Copy Files
- Copy files from Device Bay device to another
67Demo Device Removal
Disk.sys
RemReq -gt DBC Start blinking LED DBC -gt DBC
Driver Device Removal Request DBC Driver -gt
Plug-n-Play MGR Remove Device
Request Plug-n-Play MGR Close down all open
file handles Send the device to D3 state
When complete, send ACK to DBC Driver DBC
Driver -gt DBC Turn off Vid Wait for
device to discharge IF Vop switched, turn off
Vop Turn LED off Release software
interlocks DBC Driver -gt DB PWR MGR Release
allocated power
SBP-2
Plug -n- Play manager
PWR FILTER
1394 class
OHCI
TI LINKS
DBC driver
PCI
USB
ACPI
Device Bay controller
PCI OHCI
RemReq
1394 PHY
V33
1394
PRSN
V5
Vid
V12
DB connector
DB device
68Demo Moving Devices
- Show movement of a Device Bay device from one
machine to another
69Demo Swapping Devices
- Remove one Device Bay device
- Insert a different Device Bay device in the same
bay
70Questions And Answers