October 10, 20001. 2 USB 2.0 Hub Testing Dan Froelich Intel.

23
October 10, 2000 1

Transcript of October 10, 20001. 2 USB 2.0 Hub Testing Dan Froelich Intel.

October 10, 2000 1

October 10, 2000 2

USB 2.0 Hub TestingUSB 2.0 Hub Testing

Dan FroelichDan FroelichIntelIntel

October 10, 2000 3

AgendaAgenda

USB 2.0 Hub OverviewUSB 2.0 Hub Overview Electrical and Chapter 11 Test AdditionsElectrical and Chapter 11 Test Additions High Speed Repeater TestingHigh Speed Repeater Testing Test Hardware RequirementsTest Hardware Requirements Transaction Translator TestingTransaction Translator Testing

– Full Speed and Low Speed Compliance DevicesFull Speed and Low Speed Compliance Devices– Functional TestingFunctional Testing– Protocol TestingProtocol Testing– Non-Periodic Buffer AffinityNon-Periodic Buffer Affinity– Periodic Microframe SchedulingPeriodic Microframe Scheduling

October 10, 2000 4

Hub Overview – ArchitectureHub Overview – Architecture

Unchanged From 1.1 Hubs (Except HS Signaling)Unchanged From 1.1 Hubs (Except HS Signaling)– HS & FS/LS Repeaters, Determined by Upstream Facing LinkHS & FS/LS Repeaters, Determined by Upstream Facing Link– Hub ControllerHub Controller

Minor changes from classic hub:Minor changes from classic hub:– Hub state machine (HS Detect, HS Termination Transitions, Test Mode)Hub state machine (HS Detect, HS Termination Transitions, Test Mode)

New Hub Functional Units:New Hub Functional Units:– Transaction TranslatorTransaction Translator– Port Routing logicPort Routing logic

HS/Classic HS/Classic HubHub

ControllerController

HS/Classic HS/Classic HubHub

ControllerController

TransactionTransactionTranslatorTranslator

(1 or N)(1 or N)

TransactionTransactionTranslatorTranslator

(1 or N)(1 or N)Full/LowFull/LowSpeedSpeed

High Speed OnlyHigh Speed Only

. . . . .. . . . .

HS/Classic HS/Classic Hub StateHub StateMachineMachine

HS/Classic HS/Classic Hub StateHub StateMachineMachine

Routing LogicRouting Logic

PortPort PortPort PortPort

PortPort

HS/Classic HS/Classic HubHub

RepeaterRepeater

HS/Classic HS/Classic HubHub

RepeaterRepeater

October 10, 2000 5

Routing LogicRouting Logic Routing LogicRouting Logic

TransactionTransactionTranslatorTranslator

TransactionTransactionTranslatorTranslatorFull/LowFull/Low

SpeedSpeed

High Speed OnlyHigh Speed OnlyPortPort

Repeater, Controller, ...Repeater, Controller, ...Repeater, Controller, ...Repeater, Controller, ...

PortPort PortPort PortPort

Hub Overview – New PiecesHub Overview – New Pieces

Port Routing LogicPort Routing Logic– Controllable Electrical Connection Between:Controllable Electrical Connection Between:

Full/Low (Transaction Translator), orFull/Low (Transaction Translator), or High-Speed (Repeater)High-Speed (Repeater)

– Route Done Once Per Device ResetRoute Done Once Per Device Reset Transaction TranslatorTransaction Translator

– Major addition for USB 2.0Major addition for USB 2.0– Uses Split Transaction ProtocolUses Split Transaction Protocol

. . . . .. . . . .

October 10, 2000 6

Transaction TranslatorTransaction Translator

What is a Transaction Translator?What is a Transaction Translator?– Component of the hub that handles data transfers Component of the hub that handles data transfers

to/from full and low speed downstream devicesto/from full and low speed downstream devices When is it Used?When is it Used?

– Active when hub is configured at Active when hub is configured at high speedhigh speed and and fullfull and/or and/or low speedlow speed devices connected downstream devices connected downstream Buffers data transfersBuffers data transfers Finite spaceFinite space 2 kind of Buffers - Periodic and Non-Periodic2 kind of Buffers - Periodic and Non-Periodic 1 TT per hub OR 1 TT per port1 TT per hub OR 1 TT per port

October 10, 2000 7

Transaction TranslatorTransaction Translator Hub Components Hub Components

HSHS DeviceDevice

LS LS DeviceDevice

Port 1Port 1

480 MHz480 MHz12 MHz12 MHz1.5 MHz1.5 MHz

Port 2Port 2 Port NPort N

FS FS DeviceDevice

Hub Hub RepeaterRepeater

Hub Hub RepeaterRepeater

RoutingLogic

Hub Hub ControllerController

Hub Hub ControllerController

Hub StateHub StateMachinesMachines Hub StateHub StateMachinesMachines

High speed connectionHigh speed connection

TTTT11TTTT11

TTTT22TTTT22

TTTTNNTTTTNN

October 10, 2000 8

Hub Overview –Transaction Translator Hub Overview –Transaction Translator

Bulk/Control Bulk/Control – 2 or More Buffers - 1 Per Transfer2 or More Buffers - 1 Per Transfer– Uses USB Flow Control Uses USB Flow Control – PING not usedPING not used

Interrupt/Isochronous Interrupt/Isochronous – Scheduled Transaction PipelineScheduled Transaction Pipeline– Separate Buffer From Bulk/ControlSeparate Buffer From Bulk/Control– Separate SS and CS FIFOsSeparate SS and CS FIFOs

Transaction TranslatorTransaction TranslatorTransaction TranslatorTransaction Translator

Bulk &ControlBulk &Control

Interrupt &IsochronousInterrupt &

Isochronous

October 10, 2000 9

Electrical and Chapter 11Test Additions ReviewElectrical and Chapter 11Test Additions Review

Electrical (New Test Fixture)Electrical (New Test Fixture)– HS Signal Quality HS Signal Quality – TDRTDR– Receiver SensitivityReceiver Sensitivity– J and K Voltage LevelsJ and K Voltage Levels

Chapter 11 AdditionsChapter 11 Additions– TT Command SupportTT Command Support– Port Indicator Manual Mode SupportPort Indicator Manual Mode Support– New Status BitsNew Status Bits

See Compliance Overview Presentation For DetailsSee Compliance Overview Presentation For Details

October 10, 2000 10

High Speed Repeater Electrical TestingHigh Speed Repeater Electrical Testing

Packet ConnectivityPacket Connectivity– Sync Truncation (4 bits)Sync Truncation (4 bits)– EOP DribbleEOP Dribble

Repeater Path Repeater Path – JitterJitter– LatencyLatency

Noise FilteringNoise Filtering– RWU FilterRWU Filter– SORP FilterSORP Filter

EOF1 and EOF2 RulesEOF1 and EOF2 Rules End of Resume End of Resume

GenerationGeneration

Routing LogicRouting Logic Routing LogicRouting Logic

TransactionTransactionTranslatorTranslator

TransactionTransactionTranslatorTranslatorFull/LowFull/Low

SpeedSpeed

High Speed OnlyHigh Speed OnlyPortPort

Repeater, Controller, ...Repeater, Controller, ...Repeater, Controller, ...Repeater, Controller, ...

PortPort PortPort PortPort

October 10, 2000 11

Example – Testing Sync Truncation and EOP DribbleExample – Testing Sync Truncation and EOP Dribble

Put Hub Port in Put Hub Port in Test_Force_EnableTest_Force_Enable

Test SW Generates Test SW Generates Downstream Traffic Downstream Traffic

Capture Pre/Post Capture Pre/Post Hub SignalsHub Signals

Analyze Data to Analyze Data to Test Sync Test Sync Truncation andTruncation andEOP DribbleEOP Dribble

Test ModeTest Mode SWSW

OscilloscopeOscilloscope

Hub Under Hub Under TestTest

Breakout BoardBreakout Board Breakout BoardBreakout Board

October 10, 2000 12

Example - Testing LatencyExample - Testing Latency

Put Hub Port in Put Hub Port in Test_Force_EnableTest_Force_Enable

Test SW Generates Test SW Generates Downstream Traffic Downstream Traffic

Capture Pre/PostCapture Pre/PostHub SignalsHub Signals

Analyze Data toAnalyze Data toTest LatencyTest Latency– Start of SyncStart of Sync

ReferenceReference

Test ModeTest Mode SWSW

OscilloscopeOscilloscope

Hub Under Hub Under TestTest

Breakout BoardBreakout Board Breakout BoardBreakout Board

October 10, 2000 13

TT Testing – Overview TT Testing – Overview

TypeType

FunctionalFunctional

ProtocolProtocol

ImplementationImplementationNumber of BuffersNumber of Buffers

Buffer AffinityBuffer Affinity

Buffer SizeBuffer SizeSS Microframe ArrivalSS Microframe Arrival

Abort RulesAbort Rules

TT TestingTT Testing

PeriodicPeriodic Non PeriodicNon Periodic CombinationCombination

Control And BulkControl And BulkLoopbackLoopback

Data IntegrityData IntegrityEnumerationEnumeration

Isoch and InterruptIsoch and InterruptLoopbackLoopback

Data IntegrityData IntegrityDrop RateDrop Rate

Speed CombinationsSpeed CombinationsMultiple Transfer Type Multiple Transfer Type

Multiple EndpointsMultiple Endpoints

StallStallTimeoutTimeout

NakNak

StallStallTimeoutTimeout

NakNak

October 10, 2000 14

TT Testing –Compliance DevicesTT Testing –Compliance Devices

Basic FunctionalityBasic Functionality– Full Speed Full Speed – Low SpeedLow Speed– All Transfer TypesAll Transfer Types– Multiple EndpointsMultiple Endpoints

Protocol Level ControlProtocol Level Control– Produce All Possible Device ResponsesProduce All Possible Device Responses– Allows Testing of Corner Cases, Buffer Affinity, etc.Allows Testing of Corner Cases, Buffer Affinity, etc.

Defined Device InterfaceDefined Device Interface– Allow Any Capable PDK/Device to Be UsedAllow Any Capable PDK/Device to Be Used

October 10, 2000 15

Functional TestingExample – BulkFunctional TestingExample – Bulk

Set Device In Loopback ModeSet Device In Loopback Mode Send Out Data TransferSend Out Data Transfer Read In Data TransferRead In Data Transfer Compare DataCompare Data Repeat For Multiple IterationsRepeat For Multiple Iterations Repeat for Different Data SizesRepeat for Different Data Sizes

– 8,16,32,648,16,32,64 Repeat for Multiple EndPointsRepeat for Multiple EndPoints

– Test all TT Buffer SpaceTest all TT Buffer Space

HostHostHostHost

DeviceDeviceDeviceDevice

TTTTTTTT

SSSS CSCS SSSS CSCS

DataData AckAck DataDataInIn

October 10, 2000 16

Protocol TestingExample – Bulk OutProtocol TestingExample – Bulk Out

Device ActionsDevice Actions– Device NaksDevice Naks– Device StallsDevice Stalls– Device TransmitsDevice Transmits

Corrupt DataCorrupt Data– Device Doesn’t RespondDevice Doesn’t Respond

First TT AttemptFirst TT Attempt 3 or more Attempts3 or more Attempts

Tradeoffs – DeviceTradeoffs – DeviceComplexity vs.Complexity vs.Thorough CoverageThorough Coverage

TTTTTTTT

DeviceDeviceDeviceDevice

HostHostHostHost

SSSS OutOut Data0Data0 AckAck

OutOut Data0Data0

NakNakAckAck

Or StallOr Stall

NakNakAckAckStallStall

NothingNothingBad CRCBad CRC

October 10, 2000 17

Implementation Testing Example –Buffer Affinity RulesImplementation Testing Example –Buffer Affinity Rules

Buffer Affinity RulesBuffer Affinity Rules– Control Endpoints - One Transfer Buffered At a TimeControl Endpoints - One Transfer Buffered At a Time– Bulk Enpoints - Same Rule - But Direction MattersBulk Enpoints - Same Rule - But Direction Matters– Same Buffer Reused For Transaction For Same EndpointSame Buffer Reused For Transaction For Same Endpoint

Why Do Rules Matter?Why Do Rules Matter?– Drivers Use Only One TD List Per EndpointDrivers Use Only One TD List Per Endpoint– Error Cases Can Produce Similar BehaviorError Cases Can Produce Similar Behavior

How Do You Determine If Rules Are Correct?How Do You Determine If Rules Are Correct?– Can’t Control SS and CS Separately (Handled in Hardware)Can’t Control SS and CS Separately (Handled in Hardware)– No Specific SW Level Behavior DifferenceNo Specific SW Level Behavior Difference

October 10, 2000 18

Buffer Affinity –Correct Operation Buffer Affinity –Correct Operation

TTTTTTTT

DeviceDeviceDeviceDevice

HostHostHostHost

SSSSSSSS OutOutOutOut Data0Data0Data0Data0 AckAckAckAck

OutOut Data0Data0

SSSSSSSS OutOutOutOut Data0Data0Data0Data0 AckAckAckAck

AckAck

CSCSCSCS AckAckAckAck

Buf ABuf A Buf BBuf B

Buf ABuf ABuf BBuf B OldOld

OldOld PendingPending Ready/AckReady/AckSSSS

11

11

44

44AckAck

33

Old/AckOld/Ack33CSCS

OneOne

TransactionTransaction

BufferedBuffered

22

October 10, 2000 19

Buffer Affinity –Incorrect Operation Buffer Affinity –Incorrect Operation

TTTTTTTT

DeviceDeviceDeviceDevice

HostHostHostHost

SSSSSSSS OutOutOutOut Data0Data0Data0Data0 AckAckAckAck

OutOutData0Data0

SSSS OutOut Data0Data0 AckAck

AckAck

CSCSAck or NakAck or Nak

Buf ABuf A Buf BBuf B

Buf ABuf A

Buf BBuf B OldOld

OldOld PendingPending Ready/AckReady/AckSSSS

11

11

22

44AckAck

33

Old/AckOld/Ack33CSCS

TwoTwo

TransactionsTransactions

BufferedBufferedOutOut

Data0Data0NakNak

44 55

PendingPending Ready/NakReady/NakSSSS

22 55AckAckOld/NakOld/Nak33CSCS

Could See Either Could See Either - Even For - Even For Subsequent CSSubsequent CS

October 10, 2000 20

Buffer Affinity –Testing The BehaviorBuffer Affinity –Testing The Behavior

Simulating An Ack Smash (Two SS Same Transaction)Simulating An Ack Smash (Two SS Same Transaction)– Need to Ensure Both SS Reach TT Before First CSNeed to Ensure Both SS Reach TT Before First CS– Example SolutionExample Solution

Async Queue HeadAsync Queue HeadAsync Queue HeadAsync Queue Head Bulk Out siTDBulk Out siTDBulk Out siTDBulk Out siTD Dummy TDDummy TDDummy TDDummy TD

Difference In Behavior Is On Device SideDifference In Behavior Is On Device Side– Tell Device To Count TransactionsTell Device To Count Transactions– 1 = Correct, 2 = Incorrect1 = Correct, 2 = Incorrect

Poll On Status Poll On Status On Do Complete On Do Complete

Reset To Do StartReset To Do Start Correct PointerCorrect Pointer

October 10, 2000 21

Microframe Scheduling RulesMicroframe Scheduling Rules

YY00 YY11 YY22 YY33 YY44 YY55 YY66 YY77

HS Start-SplitsHS Start-Splits

All Allowed HS Start Split ArrivalsAll Allowed HS Start Split Arrivals Abort Cases - Eof, X+4Abort Cases - Eof, X+4 Free Cases - Eof (Except Y7), X+4Free Cases - Eof (Except Y7), X+4

October 10, 2000 22

Hub Testing – SummaryHub Testing – Summary

Hub Testing AreasHub Testing Areas– HS Repeater TestingHS Repeater Testing– Electrical TestingElectrical Testing– Chapter 11 Command Additions (USBCheck)Chapter 11 Command Additions (USBCheck)– Transaction TranslatorTransaction Translator

Transaction Translator - Most Important Test AreaTransaction Translator - Most Important Test Area– Functional Testing For all TransfersFunctional Testing For all Transfers– Protocol Testing Through All Device BehaviorsProtocol Testing Through All Device Behaviors– Buffer Affinity Buffer Affinity – Microframe Scheduling CasesMicroframe Scheduling Cases

October 10, 2000 23

Questions?Questions?