Tables of Contents for Firewire System Architecture
The MindShare Architecture Series
1
1
Organization of This Book
2
3
Part One: Introduction to FireWire (IEEE 1394)
2
1
Chapter 1: Why FireWire?
2
1
Chapter 2: Overview of the FireWire Architecture
2
1
Part Two: Serial Bus Communications
3
1
Chapter 3: Communication Model
3
1
Chapter 4: Cables & Connectors
3
1
Chapter 5: The Electrical Interface
3
1
Chapter 7: Asynchronous Transactions
3
1
Chapter 8: Isochronous Transactions
3
1
Chapter 9: Transaction Retry
3
1
Part Three: Registers and Configuration ROM
4
1
Chapter 10: CSR Architecture
4
1
Chapter 11: Configuration ROM
4
1
Chapter 12: PHY Registers
4
1
Part Four: Serial Bus Configuration
4
1
Chapter 13: Configuration Process
4
1
Chapter 14: Bus Initialization
4
1
Chapter 15: Tree Identification
4
1
Chapter 16: Self Identification
4
1
Chapter 17: Cycle Master
4
1
Chapter 18: Isochronous Resource Manager
5
1
Chapter 19: Bus Management
5
1
Chapter 20: Power Management
5
1
Part Five: Miscellaneous
5
1
Chapter 21: Link to PHY Interface
5
1
Chapter 22: Example 1394 Chip Solutions
5
1
Documentation Conventions
6
1
Labels for Multi-byte Blocks
6
1
Bit Versus Byte Notation
7
1
Identification of Bit Fields (logical groups of bits or signals)
7
1
Part One: Introduction to FireWire (IEEE 1394)
11
26
Chapter 1: Why FireWire?
11
6
Motivations Behind FireWire Development
11
3
Inexpensive Alternate to Parallel Buses
12
1
Eliminate Host Processor/Memory Bottleneck
12
1
High Speed Bus with Scalable Performance
13
1
Support for Isochronous Applications
13
1
BackPlane and Cable Environments
13
1
Chapter 2: Overview of the FireWire Architecture
17
20
Specifications & Related Documents
17
2
IEEE 1394-1995 and the IEEE 1394a Supplement
18
1
Multiport Nodes and Repeaters
21
1
Peer-To-Peer Transfers
21
1
The ISO/IEC 13213 Specification
22
11
Transfers and Transactions
28
3
Asynchronous Transfers
29
2
Control and Status Registers (CSRs)
31
1
Automatic Configuration
33
4
Part Two: Serial Bus Communications
37
154
Chapter 3: Communications Model
37
26
Transaction Layer Services
45
2
Concatenated Transactions
50
1
Twisted Pair Signaling
53
1
Packet-Based Transactions
55
2
A Sample Asynchronous Transaction
58
3
An Example Isochronous Transaction
61
2
Chapter 4: Cables & Connectors
63
10
Cable and Connector Types
63
4
6-pin Connector (1394-1995)
64
1
Make First/Break Last Power Pins
65
1
Optional 4-pin Connector (1394a supplement)
65
1
Chapter 5: The Electrical Interface
73
30
Differential Signaling
74
3
Recognition of Device Attachment and Detachment
77
1
Line State Signaling (1, 0, and Z)
79
1
Signaling During Normal Arbitration
83
2
Signaling States During Configuration
85
1
Starting and Ending Packet Transmission
87
1
High Speed Devices Slowed Due to Topology
89
1
Devices of Like Speed Directly Connected
90
1
Speed Signaling Circuitry
91
2
Cable Power Requirements
98
1
Functional Units That Consume Additional Bus Power
101
2
Chapter 6: Arbitration
103
20
Arbitration Signaling
104
2
Asynchronous Arbitration
106
3
Arbitration Reset Gap
107
1
Immediate Arbitration
107
2
Isochronous Arbitration
109
1
Cycle Start and Priority Arbitration
109
1
Combined Isochronous and Asynchronous Arbitration
109
5
1394a Arbitration Enhancements
114
9
Acknowledge Accelerated Arbitration
116
1
Token-style Arbitration
118
1
Chapter 7: Asynchronous Transactions
123
42
Anatomy of Asynchronous Transactions
124
12
The Request Subaction
124
7
Initiating the Transaction (The Request)
127
2
Receiving the Request (The Indication)
129
2
Reporting the Results (The Response)
132
2
Transaction Layer Response
132
1
Asynchronous Stream Packet
144
1
Asynchronous Transaction Summary
161
2
Summary of Read and Lock Transactions
162
1
Chapter 8: Isochronous Transactions
165
8
Setting Up Isochronous Transactions
166
1
Maintaining Synchronization
166
1
Anatomy of Isochronous Transactions
167
3
Isochronous Transaction Initiation & Reception
167
3
Initiating the Transaction
168
1
Transaction Reception
169
1
Isochronous Data Block Packet
170
2
Isochronous Transaction Summary
172
1
Chapter 9: Transaction Retry
173
18
The First Packet Transmission Attempt
174
1
Sending-Node Retry Behavior (Outbound Retry)
175
1
Receiving-Node Retry Behavior (Inbound Retry)
176
1
Sending-Node Retry Behavior (Outbound Retry)
178
3
Receiving Node Retry Behavior (Inbound Retry)
181
4
Packet Transmission Errors
185
3
Packet Error Handling Summary
188
3
Part Three: Registers and Configuration ROM
191
62
Chapter 10: CSR Architecture
191
30
Effect of Reset on the CSRs
194
1
State Register (State_Clear & State_Set)
194
3
Indirect_Address and Indirect_Data Registers
202
1
Split_Timeout Register
202
2
Argument, Test_Start, and Test_Status Registers
204
1
Units_Base, Units_Bound, Memory_Base, and Memory_Bound Registers
204
1
Interrupt_Target and Interrupt_Mask Registers
204
1
Clock_Value, Clock_Tick_Period, Clock_Strobe_Arrived, and Clock_Info Registers
205
1
Message_Request & Message_Response Registers
205
1
Serial Bus Dependent Registers
205
12
Cycle_Time & Bus_Time Registers
206
3
Power_Fail_Imminent & Power_Source Registers
209
2
Busy_Timeout Register
211
1
Bus_Manager_ID Register
212
1
Bandwidth_Available Register
213
1
Channels_Available Register
213
2
Maint_Control Register
215
1
Maint_Utility Register
215
2
New 1394a Defined Registers
220
1
Chapter 11: Configuration ROM
221
14
Bus Characteristics Fields
225
1
Required Root Directory Entries
230
3
Unit_Directory & Unit_Power_Requirements
233
1
Optional Root Directory Entries
233
1
Company ID Value Administration
234
1
Chapter 12: PHY Registers
235
18
1394-1995 PHY Register Map
236
4
Port Status Registers
238
1
PHY Configuration Packet
239
1
Gap Count Optimization
239
1
1394a PHY Register Map
240
13
Port Status Register Page
244
4
Vendor Identification Register Page
248
5
Part Four: Serial Bus Configuration
253
110
Chapter 13: Configuration Process
253
8
Bus Initialization (Bus Reset)
254
1
Tree Identification (The Family Tree)
255
2
Chapter 14: Bus Initialization
261
4
Node Attachment or Removal
262
1
Software Initiated Reset
262
1
Chapter 15: Tree Identification
265
20
Leaf Nodes Locate Their Parents
268
3
Branch Nodes Locate Their Parents
271
2
Leaf Nodes Locate Their Parents
274
1
Leaf Nodes Attempt to Locate Their Parents
280
1
Branch Nodes Attempt to Locate Their Parents
280
4
Looped Topology Detection
284
1
Chapter 16: Self Identification
285
24
Self-Identification Signaling
286
1
Physical ID Selection
286
17
First Physical ID is Assigned
286
1
Branch Nodes Signal Arbitration Grant & Data Prefix
288
3
Node A Signals Self-Identification Done
291
1
Nodes Exchange Speed Information
292
1
Second and Subsequent Physical ID Assignment
293
10
Second Self-ID Assignment
294
2
Third Physical ID Assignment
296
2
Fourth Physical ID Assignment
298
2
Fifth Physical ID Assignment
300
2
Final Physical ID Always Belongs to Root Node
302
1
Self-ID Packets One, Two & Three
305
3
Who Uses the Self-ID Packet Information
308
1
Chapter 17: Cycle Master
309
4
Determining and Enabling the Cycle Master
309
1
Chapter 18: Isochronous Resource Management
313
10
Determining the Isochronous Resource Manager
314
1
Minimum Requirements of Isochronous Resource Managers
315
1
Enabling the Cycle Master
315
1
Resource Allocation Registers
316
6
Channels Available Register Format
317
1
Accessing the Channels Available Register
317
3
Bus Bandwidth Allocation
320
2
Bandwidth Available Register Format
320
1
Accessing the Bandwidth Available Register
320
2
Bus Bandwidth Set-Aside for Asynchronous Transactions
322
1
Reallocation of Isochronous Resources
322
1
Chapter 19: Bus Management
323
8
Determining the Bus Manager
324
1
Power Management by Bus Manager Node
325
1
Power Management by IRM Node
326
1
Accessing the Topology Map
327
1
Gap Count Optimization
328
1
Accessing the Speed Map
329
1
Bus Bandwidth Set-Aside
330
1
Chapter 20: Power Management
331
32
Review of 1394-1995 Power-Related Issues
332
1
Goals of the 1394a Power Extensions
333
1
Primary Power Providers
337
1
Secondary Power Providers
338
1
Self-Powered Nodes (Non Power Providers)
339
2
Local Power Down Summary
341
1
Node Power State Zero (NO)
343
1
Node Power State One (N1)
343
1
Node Power State Two (N2)
343
1
Node Power State Three (N3)
343
1
Node Power Control Register
346
2
Notification Address Register
348
1
Cable Power Source State Register
348
1
Cable Power Source Control Register
349
1
Power Change Register
350
2
Unit Power State Register
352
1
Unit Power State Control Register
352
2
Battery State Register
354
1
Node Power Directory Entry
355
1
Node Power Level Entry
356
1
Cable Power Source Level Entry
357
1
Node Power Management Entry
357
1
Battery Group Entry (Node)
358
1
Unit Power Directory Entry
359
1
Unit Power Level Entry
359
1
Unit Power Management Entry
359
1
Battery Group Entry (Unit)
360
1
Part Five: Miscellaneous
363
40
Chapter 21: Link to PHY Interface
363
24
The Interface Signals
364
2
Sharing the Interface
366
3
Link Initiated Transfers
366
1
PHY Initiated Transfers
367
2
Determining Transfer Rate Between Link and PHY
369
1
Speed of Link to PHY Data Transmission
372
1
When Can the Link Issue a Request?
373
3
PHY Behavior When a Packet Request is Received
376
1
Speed of PHY to Link Data Transmission
378
1
Accessing the PHY Registers
379
3
When Can a Register Read Request Be Issued?
380
1
PHY Behavior When a Register Read Request is Received
380
1
Register Contents Returned by PHY
380
1
When Can a PHY Register Write Request Be Issued?
382
1
PHY Behavior When a Register Write Request is Received
382
1
Fly-By Arbitration Control
384
1
Electrical Isolation Between PHY and Link
385
2
Chapter 22: Example 1394 Chip Solutions
387
16
TSB12LV22 / OHCI-Lynx
388
1
Putting it all Together
396
1
1394 in the Digital Camera
397
5
Putting it all Together
402
1