Texas Instruments Incorporated and its subsidiaries (TI) reserve the right to make corrections, modifications,
enhancements, improvements, and other changes to its products and services at any time and to discontinue
any product or service without notice. Customers should obtain the latest relevant information before placing
orders and should verify that such information is current and complete. All products are sold subject to TI’s terms
and conditions of sale supplied at the time of order acknowledgment.
TI warrants performance of its hardware products to the specifications applicable at the time of sale in
accordance with TI’s standard warranty. Testing and other quality control techniques are used to the extent TI
deems necessary to support this warranty . Except where mandated by government requirements, testing of all
parameters of each product is not necessarily performed.
TI assumes no liability for applications assistance or customer product design. Customers are responsible for
their products and applications using TI components. To minimize the risks associated with customer products
and applications, customers should provide adequate design and operating safeguards.
TI does not warrant or represent that any license, either express or implied, is granted under any TI patent right,
copyright, mask work right, or other TI intellectual property right relating to any combination, machine, or process
in which TI products or services are used. Information published by TI regarding third-party products or services
does not constitute a license from TI to use such products or services or a warranty or endorsement thereof.
Use of such information may require a license from a third party under the patents or other intellectual property
of the third party, or a license from TI under the patents or other intellectual property of TI.
Reproduction of information in TI data books or data sheets is permissible only if reproduction is without
alteration and is accompanied by all associated warranties, conditions, limitations, and notices. Reproduction
of this information with alteration is an unfair and deceptive business practice. TI is not responsible or liable for
such altered documentation.
Resale of TI products or services with statements different from or beyond the parameters stated by TI for that
product or service voids all express and any implied warranties for the associated TI product or service and is
an unfair and deceptive business practice. TI is not responsible or liable for any such statements.
Following are URLs where you can obtain information on other Texas Instruments products and application
solutions:
ProductsApplications
Amplifiersamplifier.ti.comAudiowww.ti.com/audio
Data Convertersdataconverter.ti.comAutomotivewww.ti.com/automotive
DSPdsp.ti.comBroadbandwww.ti.com/broadband
Interfaceinterface.ti.comDigital Controlwww.ti.com/digitalcontrol
Logiclogic.ti.comMilitarywww.ti.com/military
Power Mgmtpower.ti.comOptical Networkingwww.ti.com/opticalnetwork
Microcontrollersmicrocontroller.ti.comSecuritywww.ti.com/security
Telephonywww.ti.com/telephony
Video & Imagingwww.ti.com/video
Wirelesswww.ti.com/wireless
The TSB43AA82A is a high performance 1394 integrated PHY and link layer controller. It is compliant with the
IEEE 1394-1995 and IEEE 1394a-2000 specifications and supports asynchronous transfers.
TSB43AA82A has a generic 16-/8-bit host bus interface. It supports parallel or multiplexed connections to the
microcontroller (MCU) at rates up to 40 MHz.
The TSB43AA82A offers large data transfers with three mutually independent FIFOs: 1) the asynchronous command
FIFO with 1512 Bytes, 2) the DMA FIFO with 4728 bytes and 3) the Config ROM/LOG FIFO with 504 bytes.
The features of the TSB43AA82A support the serial bus protocol 2 (SBP-2). It handles up to four initiators with the
SBP-2 transaction/timer manager. This SBP-2 transaction engine supports fully automated operation request block
(ORB) fetches and fully automated memory page table fetches for both read and write transactions. Automated
responses to other node requests are provided; this includes responding to another node’s read request to the Config
ROM and issuing ack_busy_X for a single retry. Various control registers enable the user to program IEEE 1394
asynchronous transaction settings. The user can program the number of retries and the split transaction time-out
value by setting the time limit register in the CFR.
The TSB43AA82A also supports the direct print protocol (DPP). The asynchronous receive FIFO (ARF) in the
TSB43AA82A is large enough to satisfy the connection register area, the DRF receiving FIFO can be used as the
segment data unit (SDU) register to fulfill the large data transfer.
This document is not intended to serve as a tutorial on IEEE 1394; users are referred to IEEE Std 1394-1995 and
IEEE 1394a-2000 (see Note 1).
1
IEEE Std 1394-1995, IEEE Standard for a High Performance Serial Bus
IEEE Std 1394a−2000, IEEE Standard for a High Performance Serial Bus − Amendment 1
I/OI/O lines used for address and data. See Table 2−1 for more
information on the use of address and data lines.
terminal is tied high for 16 bit mode. See Table 2−1 for more information
on the use of address and data lines.
parallel or multiplexed. The terminal is tied high for data address
multiplex mode. See Table 2−1 for more information on the use of
address and data lines.
1.4.3Physical Layer
TERMINAL
NAMEPGE NO.GGW NO.
CNA135C6OCable not active output. If no bias is detected from the cable, the CNA signal is
CONTEND139A4IContend. Tie high for bus manager capability.
CPS142A3ICable power supply . This terminal is normally connected to cable power through
FILTER0
FILTER1
LINKON138C5OLink-on. The link-on output is activated if the LLC is inactive (LPS inactive or PD
LPS130A7ILink power status. The signal indicates that the link is powered up and ready for
PD136A5IPower-down input. When PD is asserted, the device is in a power down mode.
PWRCLS[2:0]134, 133, 132B6, A6, C7IPower class inputs. See 1394a-2000 for more information. On hardware reset,
R0
R1
111
112
99
100
A15
A14
F17
F16
set high. The CNA output is not valid during power-up reset. CNA is valid during
power-down mode, when PD is high.
a 400-kΩ resistor. This circuit drives an internal comparator that is used to detect
the presence of cable power.
IPLL filter. These terminals are connected to an external capacitor to form a
lag-lead filter required for stable operation of the internal frequency multiplier PLL
running off the crystal oscillator. A 0.1-µF ±10% capacitor is the only external
component required to complete this filter.
active). The signal indicates that the PHY has detected a link-on packet
addressed to this node, or has detected a resume event on a suspended port.
The signal remains asserted until the LPS signal is asserted by the link in
response.
transactions. When this mode is deasserted, the device can be put into a low
power mode.
The device is asynchronously reset during this mode, so a device reset must be
provided after PD is deasserted. See Section 12 for more details.
these inputs set the default value on the power class indicated during self-ID.
Programming is done by tying terminals high or low.
Current setting resistor terminals. These terminals are connected to an external
resistance to set the internal operating currents and cable driver output currents.
—
A resistance of 6.34 kΩ ±1.0% is required to meet the IEEE Std 1394-1995
output voltage limits.
1−5
1.4.3Physical Layer (continued)
I/O
DESCRIPTION
TPA1N
9596G17
I/O
Twisted-pair cable-A differential signal terminals. Board traces from each pair of
positive and negative differential signal terminals must match and be kept as
TPA2N
106
C17
I/O
TPB1N
9192J17
I/O
Twisted-pair cable-B differential signal terminals. Board traces from each pair of
positive and negative differential signal terminals must match and be kept as
TPB2N
102
E17
I/O
XO
116
A12
—
nant fundamental mode crystal. The optimum values for the external shunt ca-
I/O
DESCRIPTION
TERMINAL
NAMEPGE NO.GGW NO.
TPA1N
TPA1P
TPA2N
TPA2P
TPB1N
TPB1P
TPB2N
TPB2P
TPBIAS1
TPBIAS2
XI
95
106
107
91
102
103
97
108
115
G17
G16
C17
C16
J17
J16
E17
E16
G15
B17
A13
1.4.4Test Interface
TERMINAL
NAMEPGE NO.GGW NO.
TEST[7:0]129, 127, 125,
124, 122, 121,
120, 119
C8, A8, C9,
A9, C10, A10,
A11, B11
I/OTwisted-pair cable-A differential signal terminals. Board traces from each pair of
positive and negative differential signal terminals must match and be kept as
short as possible to the external load resistors and to the cable connector.
I/O
I/OTwisted-pair cable-B differential signal terminals. Board traces from each pair of
positive and negative differential signal terminals must match and be kept as
short as possible to the external load resistors and to the cable connector.
I/O
OTwisted pair bias output. This provides the 1.86-V nominal bias voltage needed
for proper operation of the twisted-pair cable drivers and receivers, and for
signaling to the remote nodes that there is an active cable connection. Each of
these terminals, except for an unused port, must be decoupled with a 1.0-µF
capacitor to ground. For the unused port, this terminal can be left unconnected.
Crystal oscillator inputs. These terminals connect to a 24.576-MHz parallel reso-
pacitors are dependent on the specifications of the crystal used.
I/OTest data lines. The test data lines are used in manufacturing test and is tied low in
normal/operational mode.
1−6
1.4.5Power Supplies
DESCRIPTION
TERMINAL
NAMEPGE NO.GGW NO.
AGN[5:1]109, 104, 98, 93, 90A16, D17, G14, H17,
AVD[5:1]110, 105, 101, 94, 89B15, D16, F15, H16,
PWTST15, 31, 47, 63, 80, 87,
118, 126, 141
VDD3V10, 24, 33, 38, 52, 66,
70, 79, 128, 144
VDPLL113C13PLL power supply. A combination of high-frequency decoupling capacitors
VSPLL114B13PLL ground. These terminals must be tied together to the low-impedance
VSS3, 11, 19, 27, 35, 43,
51, 59, 67, 75, 83, 88,
117, 123, 131, 140
B9, C4, C11, H3, L17,
P3, R8, T3, U13, U15
B4, B7, B10, D3, D11,
G3, K1, K17, M3, M16,
K16
K15
N16, P1, U6, U12
A2, B8, F2, L3, N15,
R2, R5, R10, R13,
R17, U8
Analog ground. These terminals must be tied together to the low-impedance
circuit board ground plane.
Analog circuit power terminals. A combination of high-frequency decoupling
capacitors near each terminal is suggested, such as paralleled 0.1-µF and
0.001-µF capacitors. These supply terminals are separated from PWTST,
VDD3V, and VDPLL internal to the device to provide noise isolation.
1.8-V Vdd power terminals. A combination of high-frequency decoupling
capacitors near each terminal is suggested, such as paralleled 0.1-uF and
0.001-uF capacitors. These supply terminals are separated from VDD3V,
AVD, and VDPLL internal to the device to provide noise isolation (this
voltage is not supplied when the internal regulator is enabled.)
3.3-V V
terminal is suggested, such as paralleled 0.1-uF and 0.001-µF capacitors.
These supply terminals are separated from PWTST, AVD, and VDPLL
internal to the device to provide noise isolation.
near each terminal is suggested, such as paralleled 0.1-µF and 0.001-µF
capacitors. These supply terminals are separated from PWTST, VDD3V,
and AVD internal to the device to provide noise isolation.
circuit board ground plane.
Digital ground. These terminals must be tied together to the low-impedance
circuit board ground plane.
A combination of high frequency decoupling capacitors near each
dd.
1.4.6Miscellaneous
TERMINAL
NAMEPGE
EN32P2I/O/
MODE[2:0]4, 2, 1D2,
PHYTESTM143B3ITest mode. This input terminal is used in manufacturing tests. Tie high during normal/operational
PLLON137B5IPLL enable. This signal forces the internal phase-locked loop (PLL) on when it is asserted, even
XRESETL85L15ILink reset. Reset for link block
XRESETP86L16IPHY reset. Reset for PHY block
NO.
GGW
NO.
C1, B1
I/ODESCRIPTION
Internal 1.8-V regulator enable. This terminal enables the internal 1.8-V regulator. Tie low during
Hi-Z
normal/operational mode.
IChip mode select. MODE[2:0] = 000 is the normal/operational mode. All other modes are for test
purposes and are not described in this data sheet.
mode.
during ultralow−power mode and power-down mode. If this signal is deasserted, the PLL operates
only during regular device operation.
The iSphynx II functional block architecture is shown in Figure 2-1.
Configuration Register (CFR)
8/16
Host
I/F
Configuration
ROM
Asynchronous
Command FIFO
ATF
MTQ
CTQ
ARF
MRF
CRF
BDFIFO
Auto
Response
(AR)
Transaction
Timer/Manager
(TrMgr)
Fast ORB
Exchanger (FOX)
MOAF_AGENT
COAF_AGENT
LOG
Link
Core
(1394a)
Port
2
8/16
DMA
(Bulky
Data)
I/F
DTF
DRF
Packetizer
Packet
Distributor
Figure 2−1. Functional Block Architecture
Port
1
2−1
2.1Host I/F
The host (microcontroller) interface is the interface between the microcontroller, the CFR, the asynchronous
command FIFOs, and the ConfigROM. The host bus interface consists of an 8-bit data bus and an 8-/16-bit address
bus. The TSB43AA82A is interrupt driven to reduce polling. This interface has endian programmable access, and
allows the microcontroller easy access to the CFR. See Section 10 for more details.
Table 2−1. Address/Data
M8M16MUXMODEDataAddress
0 (8-bit)0 (parallel)DA[15:8]DA[7:0]
1(MUX)DA[7:0]DA[7:0]
1 (16-bit)0 (parallel)DA[15:0]BDIO[15:8]
1(MUX)DA[15:0]DA[7:0]
2.2DMA I/F (Bulky Data I/F)
The DMA bulky interface provides a data transfer interface for high-speed peripherals. It is the interface between an
external host DMA and the DMA FIFO (BDFIFO). The interface provides up to 160-Mbps sustained data rates. The
bulky data interface supports several modes such as 8-bit or 16-bit parallel width and asynchronous/synchronous
modes. See Section 9 for more details.
2.3Configuration Register (CFR)
The configuration register (CFR) is the internal register for controlling and managing the TSB43AA82A operation.
It provides most of the control bits and host controller monitor. The CFR is discussed in detail in Section 3.
2.4Fast ORB Exchanger (FOX)
The fast ORB exchanger or FOX module supports management ORB and command block ORB transactions. In the
SBP-2 protocol, the target has to read ORB packets from initiators. When requested by the initiator , the FOX module
automatically reads the management ORB and command block ORB. Linked command-block ORBs are
automatically fetched one by one and the hardware supports up to four agents. The management ORB and the
command-block ORB each have two FIFO modules for transmit and receive. See Section 7 for more details.
•MOAF_AGENT: Management ORB auto-fetch agent. Controls fetch/state for management ORB.
The auto response (AR) module provides the auto packet response service for incoming request packets. The AR
services configuration ROM read requests, agent-state read requests, and unexpected packets.
2.6Transaction/Timer Manager (TrMgr)
The transaction/timer manager module provides transaction control service for transmit priority between control
packets and data packets. Any cable packet transmit request is sent in the order the request is received. This module
also manages split transactions and controls busy retry. See Section 6 for more details.
2−2
2.7Packet Distributor
The packet distributor module provides the packet routing service for each FIFO module. In SBP-2 mode, all request
and response packets are properly routed to the correct FIFO, and sent to corresponding initiators. In direct print
protocol (DPP) mode, the packet distributor filters a request packet by its address and then saves it into the correct
receive FIFO.
2.8Packetizer
The packetizer module provides packetization for a transmit packet. The data stream from the DMA FIFO is split into
small packets that meet the SBP-2 requirements. A read or write request header is attached to each packet with a
correctly incremented destination address. The transaction/timer manager provides busy retry and split transaction
timer control if required. The packetizer also provides auto-page table fetch service. The internal auto-fetch module
sends a read request to the present page address, and the DMA automatically sends data to the requested address
set by the Page Table Element. At the end of packetizer , if the DMA function has successfully completed, the DMA
automatically sends a status block packet.
2.9Configuration ROM
The ConfigROM provides the configuration ROM required by the IEEE 1212 standard2. The ConfigROM module
supports the auto response service for a ConfigROM read request and records the transaction history. The host
controller can load ConfigROM data during node initialization. Once initialized, the ConfigROM is accessible by peer
node read requests. See Section 5 for more details.
2.10 Link Core
The link core provides link layer service such as correctly formatted IEEE 1394-19953 and IEEE 1394a-2000
asynchronous transmit and receive packets. It also generates and inspects the 32-bit cyclic redundancy check
(CRC). This link core does not support isochronous service.
2.11 PHY (and PHY Interface)
The TSB43AA82A has an integrated 400-Mbps two-port physical layer. The PHYsical (PHY) interface provides
PHY-level service to the link layer service. See Section 11 for more details.
2.12 FIFOs
The TSB43AA82A has three FIFO types, asynchronous command FIFOs, configuration ROM FIFOs and DMA
FIFOs. These FIFO types have maximum sizes of 378 quadlets, 126 quadlets, and 1182 quadlets respectively.
Except for the MTQ and MRF, the FIFO sizes are adjustable. The sum of all the FIFOs in a type must not exceed the
maximum size. See Section 4 for more information on the asynchronous command FIFOs, Section 5 for more
information on ConfigROM/LOG FIFOs, and Section 8 for more information on BDFIFOs.
4
2
IEEE Std 1212-1991, IEEE Standard Control and Status Register (CSR) Architecture for Microcomputer Buses
3
IEEE Std 1394-1995, IEEE Standard for a High Performance Serial Bus
4
IEEE Std 1394a-2000, IEEE Standard for a High Performance Serial Bus - Amendment 1
2.13.1 Asynchronous Mode With Separate Microcontroller and DMA Bus
In this system, the CPU has no DMA capabilities. At the host I/F of the TSB43AA82A is a CPU with no DMA
capabilities. At the DMA I/F of the TSB43AA82A is a DMA controller to control the data in and out of the
TSB43AA82A.
CPU
Memory
DMA Controller
ADDR
Data 8 or 16
WR
RD
Data 8 or 16
ADDR
DA
XWR
XRD
1394
TSB43AA82A
1394
BDIOBDIEN BDOEN
2−4
2.13.2 SCSI Mode With Shared Microcontroller and DMA Bus
In this system, the host I/F and the DMA I/F of the TSB43AA82A share the same data and control buses. The
CPU has DMA capabilities and the address decode is used to determine which I/F is addressed by the CPU.
CPU
ADDR
Data
WR
RD
Address
Decode
CS
CS
XCS
ADDR
DA
XWR
XRD
BDACKBDIOBDWRBDRD
TSB43AA82A
1394
1394
2−5
2−6
3 Configuration Register (CFR)
The CFR contains the registers that dictate the basic operation of the TSB43AA82A. A CFR map is shown in
Table 3-1. These registers default to 0 and are unaffected by a bus reset unless otherwise specified.
3.1Addressing
The CFR is addressed in bytes. The address terminal order is described below:
Access
24h Bus ResetBusNumberNodeNumBRFErr_CodeNodeSumCFRContID
28h Time LimitSplitTimeOutRetryIntervalRtryLmtORBTimer
2Ch ATF Status
IDVal
RxSld
Int
PhInt
Int
PhInt
Seconds_CountCycle_CountCycle_Offset
ACKTardy
WrPy
RdPy
ATFFul
ATFAFl
Bsy0
RSIsel
Breset
Breset
BudgEn
ATFAEm
TrEn
ACArbOn
Endslf
Phypkt
CmdSlf
Endslf
Phypkt
CmdSlf
RegRW
PhyRgAdPhyRgDataPhyRxAdPhyRxData
ATFEmp
AgRdy0
AgntStWr
BDIFcntEN
SntRj
PhRRx
SntRj
PhRRx
AgRdy1
AgRdy2
RstTr
IFAcc
HdrErr
IFAcc
HdrErr
AgRdy3
TCErr
CySec
TCErr
CySec
StErpkt
SplTrEn
ErrResp
Cyst
DRHUpdate
Cyst
DRHUpdate
MAAckconf
RetryEn
Ackpnd
MAAckConf
FaGap
TxRdy
CyDne
FaGap
TxRdy
CyDne
Budget_Counter
ATFClr
CyMas
CyLst
CyPnd
CyLst
CyPnd
DMclr
CyTmrEn
CyArbF
CyArbF
RxUnexp
ATFEnd
ATFEnd
Prio_Budget
RUEsel
ARFRxd
MOREnd
ARFRxd
MOREnd
ATF_Size
DTFEnd
COREnd
DTFEnd
COREnd
TxExpr
DRFEnd
TxExpr
DRFEnd
AgntWr
AgntWr
30h ARF Status
MTQ
34h
Status
MRF
38h
Status
CTQ
3Ch
Status
40h CRF Status
3−2
ARFFul
ARFAFl
MTQFul
MTQAFl
MRFFul
MRFAFl
CTQFul
CTQAFl
CRFFul
CRFAFl
0
1
ARFEmp
ARFAEm
MTQEmp
MTQAEmp
MRFEmp
MRFAEm
CTQAEm
CTQEmp
CRFEmp
CRFAEm
2
3
4
ARFThere
ARFCD
MRFThere
MRFCD
CTQ1Av
CRFThere
CRFCD
5
6
7
8
9
101112131415161718192021222324252627282930
ARFClr
MTQClr
MRFClr
CTQClr
CRFClr
ARF_Size
CTQ_Size
CRF_Size
31
Table 3−1. CRF Map (Continued)
Retry_Counter
p
0
1
2
3
4
5
6
7
8
9
101112131415161718192021222324252627282930
31
ORB Fetch
44h
Control
Manage-
48h
ment Agent
Command
4Ch
Agent
Agent
50h
Control
ORB
54h
Pointer 1
ORB
58h
Pointer 2
Agent
5Ch
Status
Transaction Timer
60h
Control
Transac-
tion Timer
64h
Status 1
Transac-
tion Timer
68h
Status 2
Transac-
tion Timer
6Ch
Status 3
70h Write-FirstWrite_First
Write-
74h
Continue
Write-
78h
Update
7Ch Reserved
ARF Data
80h
Read
MRF Data
84h
Read
CRF Data
88h
Read
Configura-
tion ROM
8Ch
Control
MAgtVld
MAgtBsy
AgtNmb
State0
DTTxEd
DRTxEd
tCodeSpdtLabel
MShtFmt
DrBll0
UnStEn0
ATTxEd
MTTxEd
MORB_Prior
Rst0
Dead0
DrBClr0
USEClr0
CTTxEd
ARTxEd
Destination_IDDestination_offset_hi
CORB_Size
Management_Agent_offset
WrNdId
AgntVld
USTIEn
ORB_destination_offset_lo
State1
DTErr
DRErr
AR_CSR_SizeCSR_Size
DrBll1
ATErr
Dead1
UnStEn1
CTErr
MTErr
Destination_offset_lo
RdNdID
Rst1
DrBClr1
USEClr1
ARErr
Write_Continue
Write_Update
ARFRead
MRFRead
CRFRead
CAg0Vld
CAg1Vld
CAg2Vld
CAg3Vld
Agent_base_offset
DrBll2
State2
DTRtry
ATRtry
DRRtry
UnStEn2
MTRtry
DrBSnp
DrBFtEn
CnxFtEn
CShtFmt
CAg0Rdy
CAg1Rdy
CAg2Rdy
Agent_NodeID
ORB_destination_offset_hi
Rst2
Dead2
CTRtry
DrBClr2
USEClr2
ARRtry
SplitTrTimer
State3
TimrNo
DrBll3
CORB_Prior
CAg3Rdy
Rst3
Dead3
UnStEn3
HldTr
TxAbrt
DrBClr3
USEClr3
RlsTr
90h
DMA
Control
DRPage-
DTFEn
DRFEn
DMARW
0
1
2
3
DTPktz
DRPktz
4
5
DTSpDis
DRSpDis
6
7
DhdSel
8
LongBlk
QuadSend
RconfSnglpkt
9
101112131415161718192021222324252627282930
QuadBndry
FetchSiz
AutoPg
CheckPg
DTPageFetchSiz
Dackpnd
Drespcm
DTHdls
Dpause
DRHStr
DRStPS
DTDSel
DRDSel
DTFClr
DRFCLr
31
3−3
94h
tl
BDIMode
rr
al
rr
DTF Page
DRF Page
98h
Bulky
Interface
Control
DTF/DRF
and DTF/
DRF Page
Table Size
Table 3−1. CRF Map (Continued)
0
1
2
3
4
5
6
7
8
9
101112131415161718192021222324252627282930
BDIDelay
BLECtl
BOAvCtl
BIEnC
BOEnCtl
AutoPad
MTRBufSiz
DTFPTBufSizDTF_SizeDRFPTBufSizDRF_Size
MTTBufSiz
BlBsyCtl
ATAckCtl
BDAckCtl
Burst
BDOMode
RcvPad
BDORst
31
BDIRst
BDOTris
9Ch
A0h
A4h
A8h
ACh
B0h
B4h
B8h
BCh
C0h
DTF/DRF
Available
DTF/DRF
Acknowl-
edge
DTF First
and
Continue
DTF
Update
DRF Data
Read
DTF
Control 0
DTF
Control 1
DTF
Control 2
DTF
Control 3
DRF
Control 0
(direct)
DTFEmpty
DTFCTL0
DTFCTL1
DTFClr/DTFst
DRFBldEn
DRFSldEn
DRFAdrEn
DTFNotify
DTFNdldval
DTF_destination_ID
DTFAvail
DRxAck
DRAE
DTF Max
Payload
DTF Spd
BDOAvail
DRFEmpty
DRAV
DTF_First&Continue
DTF_Update
DRFRead
Size
PgTblEn
DTF_BlockCount/DTF_BlockSize
DTF_destination_offset_lo
DTF_BlockSize/DTF_BlockCount
DRFThere
DTxAck
DTAE
DTF_destination_offset_hi
DTAVal
3−4
C0h
C4h
C4h
C8h
DRF
Control 0
(packetiz-
er)
DRF
Control 1
(direct)
DRF
Control 1
(packetiz-
er)
DRF
Control 2
DRFCTL0
DRFCTL1
DRFClr/DRFst
0
1
2
DRFNotify
DRFNdIdVal
DRF_destination_ID
3
4
5
DRFSpd
6
7
DRF Max
Payload
DRF_BlockCount/DRF_BlockSize
8
9
101112131415161718192021222324252627282930
Size
PgTblEn
DRF_destination_Width
DRF_BlockSize/DRF_BlockCount
DRF_destination_offset_hi
31
CCh
DTxRt
E8h
DRxRt
D0h
D4h
D8h
DCh
DRF
Control 3
DRF
Header 0
DRF
Header 1
DRF
Header 2
DRF
Header 3
Table 3−1. CRF Map (Continued)
0
1
2
3
4
5
6
7
8
9
101112131415161718192021222324252627282930
DRF_destination_offset_lo
DRF_Header0
DRF_Header1
DRF_Header2
DRF_Header3
31
E0h
E4h
ECh
F0h
DRF
Trailer
DTF/DRF
Page
Count
DhdSel=00
DTx
Header 0
DhdSel=01
DTx
Header 0
DhdSel=10
DRx
Header 0
DhdSel=11
DRx
Header 0
DhdSel=00
DTx
Header 1
DhdSel=01
DTx
Header 1
DhdSel=10
DRx
Header 1
DhdSel=11
DRx
Header 1
DhdSel=00
DTx
Header 2
DhdSel=01
DTx
Header 2
DhdSel=10
DRx
Header 2
DhdSel=11
DRx
Header 2
STATRESP
STATRESP
0
1
2
3
4
Fll0DRF_TxAck
Rx_Spd
DTF Page CountDRF Page Count
DTxtLabel
DTxSpd
AckPSTATPRESP
AckErr
DRxtLabel
DRxSpd
AckPSTATPRESP
AckErr
DTx_destination_IDDTx_destination_offset_hi
DTx page number
DRx_destination_IDDRx_destination_offset_hi
DRx page number
DTx_destination_offset_lo
DTx page lengthDTx page table hi
DRx_destination_offset_lo
DRx page lengthDRx page table hi
5
6
7
8
9
101112131415161718192021222324252627282930
DTxtCode
DRxtCode
DTxPrio
PAck
PAckErr
DRxPrio
PAck
PAckErr
31
3−5
F4h
Q
F
lr
F8h
DhdSel=00
DTx
Header 3
DhdSel=01
DTx
Header 3
DhdSel=10
DRx
Header 3
DhdSel=11
DRx
Header 3
Table 3−1. CRF Map (Continued)
0
1
2
3
4
5
6
7
8
9
101112131415161718192021222324252627282930
DTx_data_lengthDTx_extended_tCode
DTx page table lo
DRx_data_lengthDRx_extended_tCode
DRx page table lo
31
FCh
Log/ROM
Control
(XLOG=0)
Log/ROM
Control
(XLOG=1)
Log ROM
Data
LogATF
LogARF
DTFSt
DRFSt
0
1
LogMRF
LogMTQ
LogMAgnt
2
3
4
LogAgnt
LogCT
5
6
LogCR
LogDTFRq
7
8
XLOG
LogC
ShortLog
LogDTFRs
LogDRFRq
9
101112131415161718192021222324252627282930
LogRetry
LogDRFRs
LogARROM
LogRead/ROMAccess
ROMValid
XLOG
ROMValid
LogCD
LogFull
LogThere
/
ROMAddr
Adder
3.3Write/Read Access
The CFR can be addressed in bytes. The host (microcontroller) has only quadlet write/read access to the CFR. To
write to a byte/doublet requires a quadlet write. To read a byte/doublet requires a quadlet read. The host I/F defaults
to a little endian state. See Sections 3.4.1 and 9.4 for more information on CFR endianess.
3.4CFR Definitions
DIR : Direction of register access
R/O: Read-only
R/W: Read/write
W/O: Write-only
S/C: Set by a write of one and then cleared by a write of one.
N/A: The host obtains a meaningless value when it reads from or writes to the bit.
Default: Value after a power-on reset
NOTE:
Unless otherwise specified, the field values are 0 after a power-on reset (default) and a bus
reset. When the values differ, the two initial values are explicitly noted.
31
3.4.1Version/Revision Register at 00h
The version/revision register defines the TI device code name of the TSB43AA82A. This register also determines
the endianness of the host I/F. The host I/F defaults to a little endian state. To swap the endianness of the host I/F
to big endian (example: [0382 0043] >[4300 8203]), write FFFF FFFFh to this address. To swap the endianness of
the host I/F to little endian mode, write 0000 0000h.
BITSACRONYMDIRDESCRIPTION
0-27VersionR/WThe version is fixed to 4300 820h.
28-31 RevisionR/WThe revision is fixed to 3h.
3−6
3.4.2Miscellaneous Register at 04h
This register defaults to 1400 0000h and, except for the bits specified, is cleared on a bus reset.
BITSACRONYMDIRDESCRIPTION
0-2ReservedN/AReserved
3CR/OBus manager capable. This bit is active when the PHY is ON even when the link is in reset. The bit defaults
4LKONS/CLink-on output from PHY. This bit is active when the PHY generates the LINKON signal, even when the link
5LPSR/OLink power status. Setting this bit to 1 sets the internal PHY LPS signal to one. This bit defaults to 1 and is
6ReservedN/AReserved
7-15Ping_TimerR/OPing timer value. The timer measures the time in units from when a ping packet is transmitted to when the
16RootR/ORoot state of the local PHY. This bit indicates whether the node is the root node. The root bit is set to 1 when
17-22 ReservedN/AReserved
23AckErrR/OAcknowledge error. The AckErr bit is set when the ack received for the packet transmitted from the ATF
24-27 ATAckR/OAddress transmitter acknowledges received. These bits contain the last ack received in response to a
28-30 ReservedN/AReserved
31AckVldR/OAcknowledge valid. This bit is 1 when the AT Ack has not been read and is cleared to 0 when the ATAck is
to 1 and is is unaffected by a bus reset. This bit is determined by the CONTEND terminal defined in Section
2.
is in reset. This bit is set when the PHY detects a LINKON packet. This bit defaults to 0 and is unaffected by
a bus reset.
unaffected by a bus reset. Refer to Section 11 for more detail.
ping response is received. One unit is 40ns.
the node is root. This bit defaults to 0 and is automatically set by the hardware.
has a parity or length error.
packet sent by the ATF. This value is updated each time an ack is received.
read.
3.4.3Control Register at 08h
This register defaults to 4400 CA00h and is unaffected by a bus reset.
BITSACRONYMDIRDESCRIPTION
0IDValR/OID valid. The IDVal bit is set to 1 when the information of the bus reset register at 24h is valid. This bit
1RxSIdR/WReceive self-identification (self-ID) packets. When set to 1, the self-ID packets generated by the PHY
2RSIselR/WReceived self-ID packet location selection. If RxSId is set to 1, the received self-ID packets are verified and
3ReservedN/AReserved
4Bsy0R/WBusy control. When this bit is set to 1, the ack_busy_X is sent to all incoming packets. When Bsy0 is set to
5TrEnR/WTransactions enable. When TrEn is set to 1, the transmitter and receiver are enabled to transmit and
6ReservedN/A
7ACArbOnR/WAccelerated arbitration on. When ACArbOn is set to 1, accelerated arbitration is enabled.
8ReservedN/AReserved
9BDIFcntENN/ABDIF control enable. When BDIFcntEN is set to 1, ATACK, BDOAVAIL, BDIBUSY and BDOF[2:0] are
10RstTrS/CReset transaction. When RstTr i s set to 1, the entire transaction in the ATF, the ARF, the CTQ, the CRF, the
11−13 ReservedN/AReserved
14ErrRespR/WError packet response. When ErrResp is set to 1, packets with errors are returned an ack_pending in the
defaults to 0 and is automatically set by the hardware on a bus reset.
during bus initialization are received and written to DRF or LOG as individual packets. Otherwise the
self-ID packets are not received. This bit defaults to 1 and is unaffected by a bus reset.
written to the DRF when RSIsel is set to 1 and are verified and written to the LOG when RSIsel is set to 0.
0, ack_busy_X is sent according to the normal busy/retry protocol.
receive packets. When TrEn is set to 0, the link core is not awake, the TSB43AA82A cannot send ack or
receive self-ID packets, and the transmitter and receiver are disabled. This bit defaults to 1 and is
unaffected by a bus reset.
Reserved
placed in the high-impedance state.
MTQ, and the MRF resets synchronously. This does not affect the DTF and the DRF.
response packet. When ErrResp is set to 0, packets with errors are returned an ack error code in the
response packet.
3−7
BITS
15StErpktR/WStore error packets. When StErpkt is set to1, packets with any errors are stored.
16SplTrEnR/WSplit transaction enable. When SplTrEn is set to 1, split transactions are enabled. The ATF timer attempts a
17RetryEnR/WAutomatic retry enable. When set to 1, the ATF retries automatically when ack_busy_X, ack_busy_A or
18AckpndR/WAck pending enable. When Ackpnd is set to 1, the receiver sends ack_pending instead of ack_complete to
19MAAckConfR/WManagement ack_Conflict_Error enable. When MAAckConf is set to 1, ack_conflict_error is sent instead
20CyMasR/WCycle master. When CyMas is set to 1 and this chip is the root PHY, the cycle master function is enabled.
21ReservedN/AReserved
22CyTmrEnR/WCycle-timer enable. When CyTmrEn is set to 1, the cycle_offset field increments. This bit defaults to 1 and
23DMclrS/CDMA block clear . When DMClr is set to 1, all the states in the DMA block are reset synchronously. Clear the
24RxUnexpR/WReceived unexpected response packets. When set to 1, unexpected response packets are received and
25RUEselR/WReceive unexpected response packets select. Select either the ARF or DRF to place the unexpected
26−31 Prio_BudgetR/WPriority budget counter. Prio_Budget value loaded to the priority budget counter.
ACRONYMDIRDESCRIPTION
split transaction for the received ack_pending and cannot transmit any packets until the response packet
is received or a split-time out occurs. When SplTrEn is set to 0, split transactions are disabled. This bit
defaults to 1 and is unaffected by a bus reset.
ack_busy_B is received. This bit defaults to 1 and is unaffected by a bus reset.
the write request packets. When Ackpnd is set to 0, the receiver sends ack_complete to the write request
packets.
of ack_busy when MagtBsy at 44h bit 1 is set to 1. When MAAckConf is set to 0, ack_busy is sent. This bit
is the same as MAAckConf at 18h bit 14.
When CyMas is set to 0, the cyclemaster function is disabled. This bit defaults to 1 and is unaffected by a
bus reset.
is unaffected by a bus reset.
DMA, DTF, and DRF prior to clearing the DMA.
written to the ARF or the DRF. When set to 0, unexpected response packets are not received.
response packets. When RxUnexp is set to 1 and RUEsel is set to 1, the unexpected response packets,
such as a write request packet to a read-only register or a read request to a write-only register, are written
to the DRF.
When RxUnexp is set to 1 and RUEsel is set to 0, the unexpected response packets are written to ARF.
When RxUnexp is set to 0, RUEsel is invalid.
3−8
3.4.4Interrupt/Interrupt Mask Registers at 0Ch/10h
The interrupt and interrupt mask registers work in tandem to inform the host bus interface when the state of the
TSB43AA82A changes. The interrupt is at address 0Ch and the interrupt mask is at address 10h. The interrupt
register defaults to 0000 0000h and is unaffected by a bus reset. The interrupt mask register defaults to 8000 0000h
and is unaffected by a bus reset. Each bit of the interrupt register represents a unique interrupt. A particular interrupt
can be masked off when the corresponding bit in the interrupt mask register is 0. The interrupt register shows the
status of the individual bits even when the interrupt is masked off.
BITSACRONYMDIRDESCRIPTION
0IntR/OInterrupt. Int contains the value of all interrupt bits and interrupt mask bits logically ORed together. The
1PhIntS/CPHY chip interrupt. When the PHY layer signals an interrupt to the internal link chip, PhInt is set to 1.
2BresetS/CBus reset. When the internal PHY initializes or detects a bus reset, Breset is set to 1.
3CmdSlfS/CCommand reset packet received. CmdSlf is set to 1 when the receiver (TSB43AA82A) is sent a quadlet
4EndslfS/CEnd of the self-ID process. When the link layer detects the end of self-ID process, Endslf is set to 1.
5PhypktS/CPHY packet detect. When the receiver receives a PHY packet, Phypkt is set to 1.
6-7ReservedN/AReserved
8SntRjS/CBusy acknowledge sent by receiver. When the TSB43AA82A is forced to send an ack_busy_X to an
9PhRRxS/CPHY register information received. When a PHY register value is transferred to the Phy_Access register
10IFAccS/CInvalid FIFO access. When IFAcc is set to 1, the ATF access sequence is violated.
11HdrErrS/CHeader error. When the receiver detects a header CRC error on an incoming packet that may have been
12TCErrS/CtCode error. When the transmitter detects an invalid tCode in the data, TCErr is set to 1.
13CySecS/CCycle second. When the Seconds_Count field in the cycle-timer register (14h) is incremented, CySec is
14CystS/CCycle started. When the transmitter sends or the receiver receives a cycle-start packet, Cyst is set to 1.
15ReservedN/AReserved
16DRHUpdateS/CDRF header update. When the host reads the packet header of DRF data, this bit is set to 1. This bit has no
17FaGapS/CFair gap. When the serial bus has been idle for an arbitration reset gap, FaGap is set to 1.
18TxRdyS/CTransmitter ready. When the transmitter is idle and ready, TxRdy is set to 1.
19CyDneS/CCycle done. When an arbitration gap is detected on the bus after the transmission or reception of a
20CyPndS/CCycle pending. When CyPnd is set to 1, the cycle timer offset is set to 0 (rolled over or reset) and remains
21CyLstS/CCycle lost. When the cycle timer rolls over twice without the reception of a cycle-start packet, CyLst is set to
22CyArbFS/CCycle arbitration failed. When the arbitration to send the cycle-start packet fails, CyArbF is set to 1.
23ReservedN/AReserved
24ATFEndS/CATF transaction end. When the transmitter completes transmission (received ack_comp, response
25ARFRxdS/CARF received data. When the receiver confirms a request packet was received in the ARF, ARFRxd is set
26MOREndS/CManagement ORB fetch completed. When the fetched management ORB is stored in the MRF, MOREnd
inverse of this bit is connected to the XINT bit (terminal 54, U9). When the logically ORed value of all
interrupt and mask bits is 1, Int is set to 1. When the logical ORed value of all interrupt and mask bits is 0, Int
is set to 0.
write request addressed to the RESET_START (FFFF F000 000Ch) CSR register. The command reset
packets are stored in the ARF.
incoming packet because the receive FIFO overflowed, SntRj is set to 1.
from the PHY interface, PhRRx is set to 1.
addressed to this node, HdrErr is set to 1.
set to 1.
meaning if DRHStr (90h) is set.
cycle-start packet, CyDne is set to 1.
set until the isochronous cycle ends.
1.
packet, timeout), ATFEnd is set to 1. The host can read the completion status from the transaction timer
control (60h) and the transaction timer status (64h−6Ch) registers until the next process begins. This bit is
set to 1 when the response to a request packet sent by the ATF is received in the ARF. When an
independent request packet is received in the ARF, the ARFRxd bit is set.
to 1. This bit is not set for a received response packet.
is set to 1. The host can read the completion status from transaction timer control (60h) and transaction
timer status (64h−6Ch) registers until the next transaction begins.
3−9
BITSDESCRIPTIONDIRACRONYM
27CORendS/CCommand block ORB fetch completed. When the fetched command block ORB is stored in the CRF,
28DTFEndS/CDMA transaction from DTF completed. When the transactions of all blocks from DTF are complete,
29DRFEndS/CDMA transaction from DRF completed. When the transactions of all blocks from DRF are complete,
30TxExprS/CTransmitter expired. When the transmitter fails to transfer the packets, TxExpr is set to 1.
31AgntWrS/CAgent written. When the registers of any agent, command or management, are written to, AgntWr is set to
CORend is set to 1. The host can read the completion status from transaction timer control (60h) and
transaction timer status (64h−6Ch) registers until the next transaction begins.
DTFEnd is set to 1. The host can read the completion status from transaction timer control (60h) and
transaction timer status (64h−6Ch) registers until the next transaction begins.
DRFEnd is set to 1. The host can read the completion status from transaction timer control (60h) and
transaction timer status (64h−6Ch) registers until the next process begins.
1. The host can read State, DrBll and UnSEn from the agent status register (5Ch) and
ORB_destination_offset_hi and ORB_destination_offset_lo from the ORB pointer registers (54h, 58h).
3.4.5Cycle Timer Register at 14h
This register defaults to 0000 0000h and is unaffected by a bus reset.
BITSACRONYMDIRDESCRIPTION
0−6Seconds_CountR/WCycle seconds count. When Cycle_Count rolls over, Seconds_Count is incremented.
7−19Cycle_CountR/WCycle count counting 125 µs. When Cycle_Offset rolls over, Cycle_Count is incremented.
20−31 Cycle_OffsetR/WCycle offset counting 40 ns. Cycle_Offset is incremented every 40 ns.
3.4.6Diagnostics Register at 18h
This register defaults to 4000 0000h and, except for the bits specified, is unaffected by a bus reset.
BITSACRONYMDIRDESCRIPTION
0ReservedN/AReserved
1AckTardyR/WAck_tardy response enable. When this bit is set to 1, an Ack_tardy response is sent. When set to 0, an
2BudgEnR/WBudget counter enable. When this bit is set to 1, the internal budget counter is enabled.
3ReservedN/AReserved
4RegRWR/WRegister read/write access. Note: RegRW is used in the test mode and must not be set during normal
5AgntStWrR/WAgent write access. When AgntStWr is set to 1, agent state is read/write. When this bit is set to 0, the agent
6ReservedN/AReserved
7AgRdy0R/OAgent0 ready . This bit indicates whether Agent0 has been assigned a node ID and is valid. When AgRdy0
8AgRdy1R/OAgent1 ready . This bit indicates whether Agent1 has been assigned a node ID and is valid. When AgRdy1
9AgRdy2R/OAgent2 ready . This bit indicates whether Agent2 has been assigned a node ID and is valid. When AgRdy2
10AgRdy3R/OAgent3 ready . This bit indicates whether Agent3 has been assigned a node ID and is valid. When AgRdy3
11−13 ReservedN/AReserved
14MAAckconfR/WManagement agent ack_conflict. When this bit is set to 1, ack_conflict response is transmitted when the
15−17 ReservedN/AReserved
18−23 Budget_CounterR/OBudget counter value. This field specifies the current value of the internal budget counter.
24−31 ReservedN/AReserved
Ack_busy response is sent. This bit defaults to 1.
operations.
state is not accessible.
is set to 1, command block agent 0 is ready to be written or read. When AgRdy0 is set to 0, command block
agent 0 is not ready . This bit defaults to 0 and is set to 0 on a bus reset.
is set to 1, command block agent1 is ready to be written or read. When AgRdy1 is set to 0, command block
agent1 is not ready. This bit defaults to 0 and is set to 0 on a bus reset.
is set to 1, command block agent2 is ready to be written or read. When AgRdy2 is set to 0, command block
agent2 is not ready. This bit defaults to 0 and is set to 0 on a bus reset.
is set to 1, command block agent3 is ready to be written or read. When AgRdy3 is set to 0, command block
agent3 is not ready. This bit defaults to 0 and is set to 0 on a bus reset.
management agent is busy. This bit is the same as MAAckConf at 08h bit 19.
3−10
3.4.7Reserved at 1Ch
3.4.8PHY Access Register at 20h
This register defaults to 0000 0000h and is unaffected by a bus reset.
BITSACRONYMDIRDESCRIPTION
0RdPyS/CRead PHY bit. When RdPy is set to 1, the link sends a read register request with the address equal to
1WrPyS/CWrite PHY bit. When WrPy is set to 1, the link sends a write register request with the address equal to
2−3ReservedN/AReserved
4−7PhyRgAdR/WPHY-register address. The address of the PHY register to be accessed when either WrPy or RdPy is 1.
8−15PhyRgDataR/WPHY-register data. The data to be written to the Phy register when WrPy is 1.
16−19 ReservedN/A
20−23 PhyRxAdR/OPHY-register-received address. The address of the PHY register from where PhyRxData came.
24−31 PhyRxDataR/OPHY-register-received data. The data of PHY register addressed by PhyRxAd.
PhyRgAd to the PHY. This bit is cleared when the request is sent.
PhyRgAd to the PHY. This bit is cleared when the request is sent.
Reserved
3.4.9Bus Reset Register at 24h
This register defaults to FFFF 003Fh and, except for the bits specified, is unaffected by a bus reset.
BITSACRONYMDIRDESCRIPTION
0−9BusNumberR/WBus number. The link uses BusNumber as BusID. When a bus reset completes, BusNumber is
10−15 NodeNumR/ONode number. The link uses NodeNum as NodeID. When a bus reset completes, NodeNum is set to an
16−19 BRFErr_CodeR/OError code in bus reset. When a bus reset occurs, BRFErr_Code is set to the appropriate value. If
20−25 NodeSumR/ONumber of nodes in this 1394 topology. When a bus reset occurs, NodeSum is set to the appropriate value.
26−31 CFRContIDR/ONode ID of isochronous resource manager. When a bus reset occurs, CFRContID is set to the appropriate
automatically updated. The host can overwrite BusNumber. This field defaults to 3FFh and is unaffected
by a bus reset.
appropriate value. This field defaults to 3Fh and is automatically set by the hardware after a bus reset.
BRFErr_Code is not zero, the host initiates a bus reset again. The code table is below.
0000 No error
0001 Last self-ID port status is not all children, not the root node
0010 PHY ID is sequence error (not in the correct order)
0011 Inverted quadlet is not the reverse of preceding quadlet
0100 PHY ID sequence error (two gaps in PHY IDs)
0101 PHY ID sequence error (arbitration reset gap in PHY IDs)
0110 PHY ID within self-ID packet does not match
0111 Quadlet/inverted-quadlet sequence error
1000 First 2 bits of the self-ID packet do not match either 01 or 10
1001-1110 reserved
1111 At least one self-ID packet has different GAP count.
This field defaults to 0 and is automatically set by the hardware after a bus reset.
These bits default to 0 and are automatically set by the hardware after a bus reset.
value. This field defaults to 3Fh and is automatically set by the hardware after a bus reset.
3−11
3.4.10 Time Limit Register at 28h
This register defaults to 0320 08E0h and is unaffected by a bus reset.
BITSACRONYMDIRDESCRIPTION
0−15SplitTimeOutR/WSplit transaction time-out. SplitTimeOut limits the time waiting for the response packet.
If the response packet is not received when the split transaction timer exceeds the SplitTimeOut period,
the transaction failed. Unit is one Iso cycle (125 µs). This field defaults to 0320h and is unaffected by a bus
reset.
16−23 RetryIntervalR/WRetry interval time. RetryInterval defines the time from the receipt of ack_busy_X to retransmission. Unit is
24−27 RtryLmtR/WRetry limit. RtryLmt limits the number of times the transmitter retries. If RtryLmt is 0, the transmitter shall
28−31 ORBTimerR/WTime elapsed by timer to fetch command block ORB. The timer to fetch command block ORB waits for
one Iso cycle (125 µs). This field defaults to 08h and is unaffected by a bus reset.
not attempt retransmission of the busied packet. Otherwise, it retransmits the packet RtryLmt times or until
the receipt of acknowledgements other than ack_busy_X. This field defaults to Eh and is unaffected by a
bus reset.does
ORBTimer period before transmitting the read request packet. Unit is one Iso cycle (125 µs). This field
defaults to 0h and is unaffected by a bus reset.
3.4.11 ATF Status Register at 2Ch
This register defaults to 1000 0080h and, except for the bits specified, is unaffected by a bus reset.
BITSACRONYMDIRDESCRIPTION
0ATFFulR/OATF full flag. When the ATF is full, ATFFul is set to 1 and writes are ignored. Otherwise, ATFFul is set to 0.
1ATFAFlR/OATF almost-full flag. While the ATF can accept at least one more quadlet write, ATFAFl is set to 1.
2ATFAEmR/OATF almost-empty flag. While the ATF contains only one quadlet, ATFAEm is set to 1. Otherwise, ATF AEm
3ATFEmpR/OATF empty flag. When the ATF is empty, ATFEmp is set to 1. Otherwise ATFEmp is set to 0. This bit
4−18ReservedN/AReserved
19ATFClrS/CATF clear control bit. When ATFClr is set to 1, the ATF is cleared. This bit is cleared automatically once the
20−22 ReservedN/AReserved
23−31 ATF_SizeR/WATF size control bits. ATF_Size is equal to the ATF size number in quadlets. This field defaults to 80h and is
This bit defaults to 0 and is set to 0 on a bus reset.
Otherwise ATFAFl is set to 0. This bit defaults to 0 and is set to 0 on a bus reset.
is set to 0. This bit defaults to 0 and is set to 0 on a bus reset.
defaults to 1 and is set to 1 on a bus reset.
ATF is cleared. This bit defaults to 0 and is cleared on a bus reset.
unaffected by a bus reset.
3−12
3.4.12 ARF Status Register at 30h
This register defaults to 1000 008Eh and, except for the bits specified, is unaffected by a bus reset.
BITSACRONYMDIRDESCRIPTION
0ARFFulR/OARF full flag. When the ARF is full, ARFFul is set to 1 and writes are ignored. Otherwise, ARFFul is set to 0.
1ARFAFlR/OARF almost-full flag. While the ARF can accept at least one more quadlet, ARFAFl is set to 1. Otherwise
2ARFAEmR/OARF almost-empty flag. While the ARF contains only one quadlet, ARFAEm is set to 1. Otherwise
3ARFEmpR/OARF empty flag. When the ARF is empty, ARFEmp is set to 1. Otherwise, ARFEmp is set to 0. This bit
4−6ReservedN/AReserved
7−15ARFThereR/OARF there. The number of quadlets received in the ARF. This field defaults to 0 and is set to 0 on a bus
16ARFCDR/OARF control bit. When the first quadlet of a packet is read from the ARF data (80h) register , ARFCD is set to
17−18 ReservedN/AReserved
19ARFClrS/CARF clear control bit. When ARFClr is 1, the ARF is cleared of all entries. This bit is cleared after the ARF is
20−22 ReservedN/AReserved
23−31 ARF_SizeR/WARF_Size control bits. Size is equal to the ARF size number in quadlets. This field defaults to 8Eh and is
This bit defaults to 0 and is set to 0 on a bus reset.
ARFAFl is set to 0. This bit defaults to 0 and is set to 0 on a bus reset.
ARFAEm is set to 0. This bit defaults to 0 and is set to 0 on a bus reset.
defaults to 1 and is set to 1 on a bus reset.
reset.
1. This bit defaults to 0 and is set to 0 on a bus reset.
cleared. This bit defaults to 0 and is cleared on a bus reset.
unaffected by a bus reset.
3.4.13 MTQ Status Register at 34h
This register defaults to 1000 0000h and, except for the bits specified, is cleared on a bus reset.
BITSACRONYMDIRDESCRIPTION
0MTQFulR/OMTQ full flag. When the MTQ is full, MTQFul is set to 1 and writes are ignored. Otherwise, MTQful is set to
1MTQAFlR/OMTQ almost-full flag. While the MTQ can accept only one more quadlet write, MTQAFl is 1. Otherwise,
2MTQAEmpR/OMTQ almost-empty flag. While the MTQ contains only one quadlet, MTQAEmp is set to 1. Otherwise,
3MTQEmpR/OMTQ empty flag. When the MTQ is empty, MTQEmp is set to 1. Otherwise, MTQEmp is set to 0. This bit
4−18ReservedN/AReserved
19MTQClrS/CMTQ clear control bit. When MTQClr is set to 1, the MTQ is cleared. This bit is cleared after the MTQ is
20−31 ReservedN/AReserved
0. This bit defaults to 0 and is set to 0 on a bus reset.
MTQAFl is set to 0. Note: This bit is set after 3 quadlets are written. This bit defaults to 0 and is set to 0 on a
bus reset.
MTQAEmp is set to 0. This bit defaults to 0 and is set to 0 on a bus reset.
defaults to 1 and is set to 1 on a bus reset.
cleared. This bit defaults to 0 and is cleared on a bus reset.
3−13
3.4.14 MRF Status Register at 38h
This register defaults to 1000 0000h and, except for the bits specified, is cleared on a bus reset.
BITSACRONYMDIRDESCRIPTION
0MRFFulR/OMRF full flag. When the MRF is full, MRFFul is set to 1 and writes are ignored. Otherwise, MRFFul is set to
1MRFAFlR/OMRF almost-full flag. While the MRF can receive only one more quadlet, MRFAF1 is set to 1. Otherwise,
2MRFAEmR/OMRF almost-empty flag. While the MRF contains only one quadlet, MRFAEm is set to 1. Otherwise,
3MRFEmpR/OMRF empty flag. While the MRF is empty, MRFEmp is set to 1. Otherwise, MRFEmp is set to 0. This bit
4−6ReservedN/AReserved
7−15MRFThereR/OMRF there. The number of quadlets received in the MRF. This bit defaults to 0 and is set to 0 on a bus reset.
16MRFCDR/OMRF control bit. When the first quadlet of a packet is read from the MRF data (84h) register, MRFCD is set
17−18 ReservedN/AReserved
19MRFClrS/CMRF clear control bit. When MRFClr is set to 1, the MRF is cleared. This bit defaults to 0 and is cleared on a
20−31 ReservedN/AReserved
0. This bit defaults to 0 and is set to 0 on a bus reset.
MRFAFl is set to 0. This bit defaults to 0 and is set to 0 on a bus reset.
MRFAEm is set to 0. This bit defaults to 0 and is set to 0 on a bus reset.
defaults to 1 and is set to 1 on a bus reset.
to 1. This bit defaults to 0 and is set to 0 on a bus reset.
bus reset.
3.4.15 CTQ Status Register at 3Ch
This register defaults to 1000 000Fh and, except for the bits specified, is unaffected by a bus reset.
BITSACRONYMDIRDESCRIPTION
0CTQFulR/OCTQ full flag. While the CTQ is full, CTQFul is set to 1 and writes are ignored. Otherwise, CTQFul is set to
1CTQAFlR/OCTQ almost-full flag. While the CTQ can accept only one more quadlet write, CTQAFl is set to 1.
2CTQAEmR/OCTQ almost-empty flag. While the CTQ has only one quadlet in it, CTQAEm is set to 1. Otherwise,
3CTQEmpR/OCTQ empty flag. When the CTQ is empty, CTQEmp is set to 1. Otherwise, CTQEmp is set to 0. This bit
4ReservedN/AReserved
5CTQ1AvR/OCTQ1 available flag. CTQ can accept one more packet (3 quadlets). This bit defaults to 0 and is set to 0 on
6−18ReservedN/AReserved
19CTQClrS/CCTQ clear control bit. When CTQClr is set, the CTQ is cleared. This bit clears itself after the CTQ is
20−22 ReservedN/AReserved
23−31 CTQ_SizeR/WCTQ size control bits. CTQ_Size is equal to the CTQ size number in quadlets. This field defaults to Fh and
NOTE 1: Provides only 3 quadlets.
0. Note: (CTQ – 1) size is displayed. This bit defaults to 0 and is set to 0 on a bus reset.
Otherwise, CTQAFl is set to 0. Note: This bit is set to 0 after 3 quadlets are written
and is set to 0 on a bus reset.
CTQAEm is set to 0. Note: This bit is set to 0 after writing 2 quadlets. This bit defaults to 0 and is set to 0 on a
bus reset.
defaults to 1 and is set to 1 on a bus reset.
a bus reset.
cleared. This bit defaults to 0 and is set to 0 on a bus reset.
remains unaffected by a bus reset.
(1)
. This bit defaults to 0
3−14
3.4.16 CRF Status Register at 40h
This register defaults to 1000 004Bh and, except for the bits specified, is unaffected by a bus reset.
BITSACRONYMDIRDESCRIPTION
0CRFFulR/OCRF full flag. While the CRF is full, CRFFul is set to 1 and writes are ignored. Otherwise, CRFFul is set to 0.
1CRFAFlR/OCRF almost-full flag. When the CRF can accept only one more quadlet write, CRFAFl is set to 1.
2CRFAEmR/OCRF almost-empty flag. While the CRF has only one quadlet in it, CRFAEm is set to 1. Otherwise,
3CRFEmpR/OCRF empty flag. While the CRF is empty, CRFEmp is set to 1. Otherwise, CRFEmp is set to 0. This bit
4−6ReservedN/AReserved
7−15CRFThereR/OCRF there. The number of quadlets received in the CRF. This bit defaults to 0 and is set to 0 on a bus reset.
16CRFCDR/OCRF control bit. When the first quadlet of a packet is read from the CRF data (88h) register , CRFCD is set
17−18 ReservedN/AReserved
19CRFClrS/CCRF clear control bit. When CRFClr is set to 1, the CRF is cleared. This bit clears itself after the CRF is
20−22 ReservedN/AReserved
23−31 CRF_SizeR/WCRF size control bits. CRF_Size is equal to the CRF size number in quadlets.
This bit defaults to 0 and is set to 0 on a bus reset.
Otherwise, CRFAFl is set to 0. This bit defaults to 0 and is set to 0 on a bus reset.
CRFAEm is set to 0. This bit defaults to 0 and is set to 0 on a bus reset.
defaults to 1 and is set to 1 on a bus reset.
to 1. This bit defaults to 0 and is set to 0 on a bus reset.
cleared. This bit defaults to 0 and is cleared on a bus reset.
The minimum size is CORB_SIZE at 44h. This field defaults to 4Bh and is unaffected by a bus reset.
3−15
3.4.17 ORB Fetch Control Register at 44h
This register defaults to 1008 0F00h and, except for the bits specified, is unaffected by a bus reset.
BITSACRONYMDIRDESCRIPTION
0MAgtVldR/WManagement agent register valid. When the host sets MAgtVld to 1, the Management_Agent_offset in the
1MAgtBsyR/WManagement agent register busy. When the MAgtBsy bit is set to 1, a block write request addressed to the
2ReservedN/AReserved
3MShtFmtR/WManagement ORB in short format in MRF. When MShtFmt is set to 1, the receiver transforms the received
4−7MORB_PriorR/WManagement ORB transmission priority. The read request packet to fetch a management ORB has
8−15CORB_SizeR/WCommand block ORB size. CORB_Size is the size in quadlets of the command block ORBs to be fetched.
16CAg0VldR/WRegister of command block agent0 valid. When the host sets CAg0Vld to 1, the Agent_base_offset in the
17CAg1VldR/WRegister of command block agent1 valid. See CAg0Vld.
18CAg2VldR/WRegister of command block agent2 valid. See CAg0Vld.
19CAg3VldR/WRegister of command block agent3 valid. See CAg0Vld.
20DrBSnpR/WDoorbell snoop enable. When DrBSnp is set to 1 and the command block agent receives the quadlet write
21DrBFtEnR/WDoorbell fetch enable. When DrBFtEn is set to 1 and the command block agent receives the quadlet write
22CnxFtEnR/WNext command block ORB fetch enable. When CnxFtEn is set to 1 and the receiver receives a command
23CShtFmtR/WCommand block ORB in short format in CRF. When CShtFmt is set to 1, the receiver transforms the
24CAg0RdyS/CCommand block agent 0 is ready to fetch the command block ORB. When command block agent is ready
25CAg1RdyS/CCommand block agent1 is ready to fetch the command block ORB. See CAg0Rdy.
26CAg2RdyS/CCommand block agent2 is ready to fetch the command block ORB. See CAg0Rdy.
27CAg3RdyS/CCommand block agent3 is ready to fetch the command block ORB. See CAg0Rdy.
28−31 CORB_PriorR/WCommand block ORB transmission priority. The read request packet to fetch a command block ORB has
management agent register (48h) is valid. If the management fetch agent receives the block write request
addressed to the management agent register, the management ORB is fetched automatically and written
to the MRF. When MAgtVld is set to 0, the Management_Agent_offset is invalid.
management agent register is rejected ack_busy_x. When the host sets MAgtBsy to 0, the management
agent register can accept the block write request. This bit is cleared by the host.
packets containing a fetched management ORB into a short format and places the transformed packet into
the MRF. When MShtFmt is set to 0, the receiver places the received packets containing a fetched
management ORB into MRF as is. This bit defaults to 1 and is unaffected by a bus reset. See Section 4.5.2
for more detail.
MORB_Prior in the priority field.
This field defaults to 08h and is unaffected by a bus reset.
command agent register (4Ch) is valid. If the NodeID is assigned to agent0 by writing to the agent control
register (50h), the command block agent0 can receive write/read requests. When the block write request
is addressed to the ORB_POINTER register, the command block ORB is fetched automatically and
written to the CRF. Otherwise, if NodeID is not assigned to agent0, agent0 rejects any requests. When
CAg0Vld is set to 0, the command block Agent_Base_Offset is invalid.
request addressed to the DOORBELL register, the command block agent fetches the whole command
block ORB. When DrBSnp is set to 0 and the command block agent receives the quadlet write request
addressed to the DOORBELL register , the command block agent fetches only the next ORB field. This bit
defaults to 1 and is unaffected by a bus reset.
request addressed to the DOORBELL register, the command block ORB is automatically fetched and
stored into the CRF. The agent’s DrBll in the agent status register (5Ch) is set to 1. When DrBFtEn is set to
0 and the command block agent receives the quadlet write request to the DOORBELL register, the
command block ORB is not fetched automatically . The agent’s DrBll in the agent status register (5Ch) is
set to 1. This bit defaults to 1 and is unaffected by a bus reset.
block ORB whose the next_ORB field of the command block ORB is not null, the next valid command block
ORB is fetched automatically. When CnxFtEn is set to 0 and the receiver receives a command block ORB
whose next_ORB field is not null, the next command block ORB is not fetched automatically. This bit
defaults to 1 and is unaffected by a bus reset.
received packets containing a fetched command block ORB into a short format and places the
transformed packet into the CRF. Refer to Section 4.5.2. When CShtFmt is set to 0, the receiver must store
the received packets containing a fetched command block ORB into CRF as is. This bit defaults to 1 and is
unaffected by a bus reset.
to fetch the command block ORB, this bit is set to 1. When the host writes 1 on CAg0Rdy, it is set to 0 and
the agent fetches the command block ORB and places it into the CRF.
CORB_Prior in the priority field.
3−16
3.4.18 Management Agent Register at 48h
This register defaults to 0000 4000h and is unaffected by a bus reset.
BITSACRONYMDIRDESCRIPTION
0−7ReservedN/AReserved
8−31Management_Agent_offsetR/WManagement agent of fset. This contains the of fset in quadlets from FFFFF000 0000h [bytes] to
the base address of the management agent register. This value should not be less than
00 4000h. This field defaults to 4000h and is unaffected by a bus reset.
Note: To assure quadlet access, the two least significant bits of the Management_Agent_offset
must be 00.
3.4.19 Command Agent Register at 4Ch
This register defaults to 0000 0000h and is unaffected by a bus reset.
BITSACRONYMDIRDESCRIPTION
0−7ReservedN/AReserved
8−31Agent_base_offsetR/WAgent base offset. This contains the offset in quadlets from FFFF F000 0000h [bytes] to the base
address of the command block agent0 register. Agent_base_offset should not be less than 00 4000h.
The base register address of each command block agent is specified as follows:
Agent0[byte] = FFFF F000 0000h + Agent_base_offset[quadlet] * 100b
Agent1[byte] = Agent0 + 20h
Agent2[byte] = Agent1 + 20h
Agent3[byte] = Agent2 + 20h
Note: To assure quadlet access the two least significant bits of the Agent_base_offset must be 00.
3.4.20 Agent Control Register at 50h
This register defaults to 0000 FFFFh and is unaffected by a bus reset.
BITSACRONYMDIRDESCRIPTION
0−1AgtNmbR/WCommand block agent number. The host can read the ORBPointer registers of AgtNmb from the ORB
2−10ReservedN/AReserved
11USTlEnR/WUnsolicited status tLabel control enable. When USTlEn is set to 1 and the host writes a packet with tLabel
12AgntVldS/CAgent valid NodeID. When AgntVld is set to 1 with AgtNmb, then the NodeID corresponding to the agent
13ReservedN/AReserved
14WrNdIDS/CWrite NodeID of each agent. When WrNdID is set to 1 and the AgtNmb and Agent_NodeID are assigned,
15RdNdIDS/CRead NodeID of each agent. When RdNdID is set to 1 and AgtNmb is assigned, the host can read the
16−31 Agent_NodeIDR/WNodeID assigned to each agent. When WrNdID is set to 1 the Agent_NodeID is assigned to the
Pointer1 (54h) and ORB Pointer2 (58h) registers. This number is also used to set the NodeID for each
agent.
(tl=111b+AgtNmb+ 0 or 1, where 0 or 1 is determined by the host) on Write First (70h),
UnStEn0−UnStEn3 in 5Ch is cleared automatically. When USTlEn is set to 0 and the host writes a packet
with tLabel (tl=1 11b+AgtNmb+0 or 1) on Write First(70h), UnSEn0−UnSEn3 is not cleared automatically.
is valid. This bit defaults to 0 and is set to 0 on a bus reset.
the command block agent of AgtNmb is assigned to Agent_NodeID. This bit is cleared after this
assignment.
NodeID assigned to the command block agent of AgtNmb from Agent_NodeID. This bit is cleared after a
read.
command block agent of AgtNmb. Agent_NodeID represents the NodeID assigned to the command
block agent of AgtNmb after RdNdID is set to 1. A BusReset does not affect Agent_NodeID, but because
the agent is not ready after a bus reset, the host controller writes NodeID again to activate the agent.
These bits default to FFFFh and are unaffected by a bus reset.
3−17
3.4.21 ORB Pointer Register 1 at 54h
This register defaults to 0000 0000h and is unaffected by a bus reset.
BITSACRONYMDIRDESCRIPTION
0−15ReservedN/AReserved
16−31 ORB_destination_offset_hiR/OORB destination offset hi in ORBPointer. These bits contain the destination offset high part of the
ORB pointer register contained in the agent indicated by AgtNmb in the agent control register
(50h). This field defaults to 0h and is unaffected by a bus reset.
3.4.22 ORB Pointer Register 2 at 58h
This register defaults to 0000 0000h and is unaffected by a bus reset.
BITSACRONYMDIRDESCRIPTION
0−31ORB_destination_offset_loR/OORB destination offset low in ORBPointer. These bits contain the destination offset low part of
the orb pointer register contained in the agent indicated by AgtNmb in the agent control register
(50h). This register defaults to 0h and is unaffected by a bus reset.
Note: The value of the register returns to the default value when the initiator being logged resets
the agent.
3−18
3.4.23 Agent Status Register at 5Ch
There are four command block agents. Each agent has State, DrBll and UnStEn status bits and Dead, Rst, DrBClr
and USEClr control bits. This register defaults to 0000 0000h and is cleared to 0000 0000h on a bus reset.
BITSACRONYMDIRDESCRIPTION
0−1State0
2DrBll0R/ODoorBell variable of the command block agent0. When the DOORBELL register receives a quadlet write
3UnStEn0R/OUnsolicited status enable variable of the command block agent0. When the UNSOLICITED_STATUS_EN-
4Dead0S/CDead state control bit. When Dead0 is set to 1, State0 is set to 11b.
5Rst0S/CReset state control bit. When Rst0 is set to 1, State0 is set to 00b.
6DrBClr0S/CDoorBell variable clear bit. When DrBClr0 is set to 1, DrBll0 is set to 0.
7USEClr0S/CUnsolicited status enable variable clear bit. When USEClr0 is set to 1, UnStEn0 is cleared.
8−9
State1
10DrBll1R/OFunctionality is the same as DrBll0.
11UnStEn1R/OFunctionality is the same as UnStEn0.
12Dead1S/CFunctionality is the same as Dead0.
13Rst1S/CFunctionality is the same as Rst0.
14DrBClr1S/CFunctionality is the same as DrBClr0.
15USEClr1S/CFunctionality is the same as USEClr0.
16−17 State2R/O
18DrBll2R/OFunctionality is the same as DrBll0.
19UnStEn2R/OFunctionality is the same as UnStEn0.
20Dead2S/CFunctionality is the same as Dead0.
21Rst2S/CFunctionality is the same as Rst0.
22DrBClr2S/CFunctionality is the same as DrBClr0.
23USEClr2S/CFunctionality is the same as USEClr0.
24−25 State3R/OFunctionality is the same as State0.
26DrBll3R/OFunctionality is the same as DrBll0.
27UnStEn3R/OFunctionality is the same as UnStEn0.
28Dead3S/CFunctionality is the same as Dead0.
29Rst3S/CFunctionality is the same as Rst0.
30DrBClr3S/CFunctionality is the same as DrBClr0.
31USEClr3S/CFunctionality is the same as USEClr0.
State of the command block agent0. State0 shows the state of each command block agent 0.
R/O
00: Reset, 01: Active, 10: Suspended, 11: Dead.
request, DrBll0 is set to 1. When the host writes 1 on DrBClr0, DrBll0 is set to 0.
ABLE register receives a quadlet write request, UnStEn0 is set to 1. If USTlEn in the agent control register (50h)
is set to 1, the transmission of a packet with tLabel (tl=11 1b+AgtNmb+ 0 or 1, where 0 or 1 is determined by the
host) clears UnStEn0. When the host writes 1 to USEClr0, USEClr0 is cleared.
R/OFunctionality is the same as State0.
Functionality is the same as State0.
3−19
3.4.24 Transaction Timer Control Register at 60h
The timer manages all transactions from the request FIFOs. The transaction timer control register provides the status
and control of those transactions. This register defaults to FA00 0000h and, except for the specified bits, is unaffected
by a bus reset.
BITSACRONYMDIRDESCRIPTION
0DTTxEdR/ODTF transaction end. When the DTF transaction has completed, DTTxEd is set to 1. When the DTF
1DRTxEdR/ODRF transaction end. When the DRF transaction has completed, DRTxEd is set to 1. When the DRF
2ATTxEdR/OATF transaction end. When the ATF transaction has completed, ATTxEd is set to 1. When the ATF
3MTTxEdR/OMTQ transaction end. When the MTQ transaction has completed, MTTxEd is set to 1. When the MTQ
4CTTxEdR/OCTQ transaction end. When the CTQ transaction has completed, CTTxEd is set to 1. When the CTQ
5ReservedN/AReserved
6ARTxEdR/OAutoresponse transaction end. When the autoresponse transaction has completed, ARTxEd is set to 1.
7ReservedN/AReserved
8DTErrR/ODTF transaction error. If the DTF transaction ends with errors or the DTF transaction is aborted (TxAbrt at
9DRErrR/ODRF transaction error. If the DRF transaction ends with errors, DRErr is set to 1. Otherwise, if it ends
10ATErrR/OATF transaction error. If the ATF transaction ends with errors, A TErr is set to 1. Otherwise, if it ends without
11MTErrR/OMTQ transaction error. If the MTQ transaction ends with errors, MTErr is set to 1. Otherwise, if it ends
12CTErrR/OCTQ transaction error. If the CTQ transaction ends with errors, CTErr is set to 1. Otherwise, if it ends with
13ReservedN/AReserved
14ARErrR/OAutoresponse transaction error. If the autoresponse transaction ends with errors, ARErr is set to 1.
15ReservedN/AReserved
16DTRtryR/ODTF retry. When the DTF transaction begins retrying because of a received ack_busy_X, DTRtry is set to
17DRRtryR/ODRF retry . When the DRF transaction begins retrying because of a received ack_busy_X, DRRtry is set to
18ATRtryR/OATF retry. When the A TF transaction begins retrying because of a received ack_busy_X, ATRtry is set to 1.
19MTRtryR/OMTQ retry . When the MTQ transaction begins retrying because of a received ack_busy_X, MTRtry i s set to
transaction begins, DTTxEd is set to 0. It defaults to 1 and is set to 1 on a bus reset.
transaction begins, DRTxEd is set to 0. It defaults to 1 and is set to 1 on a bus reset.
transaction begins, ATTxEd is set to 0. It defaults to 1 and is set to 1 on a bus reset.
transaction begins, MTTxEd is set to 0. It defaults to 1 and is set to 1 on a bus reset.
transaction begins, CTTxEd is set to 0. It defaults to 1 and is set to 1 on a bus reset.
When the autoresponse transaction begins, ARTxEd is set to 0. It defaults to 1 and is set to 1 on a bus
reset.
60h), DTErr is set to 1. Otherwise, if it ends without errors or the DTF transaction begins, DTErr is set to 0. It
defaults to 0 and is unaffected by a bus reset.
without errors or the DRF transaction begins, DRErr is set to 0. It defaults to 0 and is unaffected by a bus
reset.
errors or the ATF transaction begins, ATErr is set to 0. This bit is defaults to 0 and is set to 0 on a bus reset.
without errors o r the MTQ transaction begins, MTErr is set to 0. This bit is defaults to 0 and is set to 0 on a
bus reset.
no errors or the CTQ transaction begins, CTErr is set to 0. This bit is defaults to 0 and is set to 0 on a bus
reset.
Otherwise, if it ends with no errors or the autoresponse transaction begins, ARErr is set to 0. This bit is
defaults to 0 and is set to 0 on a bus reset.
1. When the retry transaction from the DTF ends and acknowledgements other than ack_busy_X, a retry
time-out, or a bus reset was received, DTRtry is set to 0. This bit is defaults to 0 and is set to 0 on a bus
reset.
1. When the retry transaction from DRF ends because acknowledgements other than ack_busy_X, a retry
time-out, or a bus reset was received, DRRtry is set to 0. This bit is defaults to 0 and is set to 0 on a bus
reset.
When the retry transaction from ATF ends because acknowledgements other than ack_busy_X, a retry
time-out, or a bus reset was received, ATRtry is set to 0. This bit is defaults to 0 and is set to 0 on a bus
reset.
1.When the retry transaction from MTQ ends because acknowledgements other than ack_busy_X, a retry
time-out, or a bus reset was received, MTRtry is set to 0. This bit is defaults to 0 and is set to 0 on a bus
reset.
3−20
BITSDESCRIPTIONDIRACRONYM
20CTRtryR/OCTQ retry . When the CTA transaction begins retrying because of a received ack_busy_X, CTRtry is set to
21ReservedN/AReserved
22ARRtryR/OAutoresponse retry. When the autoresponse transaction begins retrying because of a received
23ReservedN/AReserved
24−27 TimrNoR/WTransaction timer number. The host writes to TimrNo to indicate which timer to control and status. The
28TxAbrtS/CTransaction abort. When TxAbrt is set to 1, the transaction of the timer indicated in TimrNo is aborted.
29HldTrS/CHold transmission. When HldTr is set to 1, the transmission of the timer indicated in T imerNo is suspended.
30RlsTrS/CRelease transmission. When RlsTr is set to 1, the suspended transmission of the timer indicated by
31ReservedN/AReserved
1. When the retry transaction from CTQ ends because acknowledgements other than ack_busy_X, a retry
time-out, or a bus reset was received, CTRtry is set to 0. This bit is defaults to 0 and is set to 0 on a bus
reset.
ack_busy_X, ARRtry is set to 1. When the autoresponse retry transaction ends because an
acknowledgement other than ack_busy_X, a retry time-out, or a bus reset was received, ARRtry is set to 0.
This bit is defaults to 0 and is set to 0 on a bus reset.
timer selected by TimrNo determines the FIFO timer controlled by TxAbrt and HldRtr, and the status read
from transaction timer status1-3 (64h−6Ch). This field defaults to 0 and is set to 0 on a bus reset.
0h : The timer of transmission from DTF
1h : The timer of transmission from DRF
2h : The timer of transmission from ATF
3h : The timer of transmission from MTQ
4h : The timer of transmission from CTQ
5h : Reserved
6h : The timer of autoresponse(AR) transmission
7h : Reserved
TxAbrt clears itself after the abort. This bit is defaults to 0 and is set to 0 on a bus reset.
Note: DTErr (60h) is set to 1 when the DTF transaction is aborted.
If both HldTr and RlsTr are set to 1 at the same time, HldT r is ignored and the transaction is aborted. This bit
is defaults to 0 and is set to 0 on a bus reset.
Note: It is necessary to set this bit to 1 when writing to the ATF, the MTQ, and the CTQ. Then transmit
packet by setting RlsTr to 1.
TimerNo is released/restarted. RlsTr clears itself after the transmission is released. This bit is defaults to 0
and is set to 0 on a bus reset.
3.4.25 Transaction Timer Status Registers at 64h, 68h, 6Ch
These registers default to 0000 0000h and are set to 0000 0000h on a bus reset. These registers are the status
registers of the timer selected by TimrNo at 60h.
3.4.25.1 Transaction Timer Status Register 1 at 64h
BITSACRONYMDIRDESCRIPTION
0−15Destination_IDR/OTimerNo’s transmitting destination ID. The timer defined by TimrNo at 60h is transmitting or has
16−31 Destination_offset_hiR/OTimerNo’s transmitting destination offset high. The timer defined by T imrNo at 60h is transmitting or has
transmitted the request packet to the destination ID in the last transaction.
transmitted the request packet to Destination_offset_hi in the last transaction.
3.4.25.2 Transaction Timer Status Register 2 at 68h
BITSACRONYMDIRDESCRIPTION
0−31Destination_offset_loR/OTimerNo’s transmitting destination offset low . The timer defined by TimrNo at 60h is transmitting or has
transmitted the request packet to Destination_offset_lo in the last transaction.
3−21
3.4.25.3 Transaction Timer Status Register 3 at 6Ch
BITSACRONYMDIRDESCRIPTION
0−3tCodeR/OTimerNo’s transmitting tCode. The tCode of the packet that the timer defined by TimrNo at 60h is
4−5SpdR/OTimerNo’s transmitting speed. The speed of the packet that timer defined by T imrNo at 60h is transmitting
6−11tLabelR/OTimerNo’s transmitting tLabel. The tLabel of the packet that the timer defined by TimrNo at 60h is
12−15 Retry_CounterR/OTimerNo’s transmitting retry counter. The limit set by the Retry_Counter of the packet that the timer defined
16−31 SplitTrTimerR/OTimerNo’s transmitting split transaction timer. The SplitTrTimer period that the timer defined by T imrNo at
transmitting or has transmitted in the last transaction.
or has transmitted in the last transaction.
transmitting or has transmitted in the last transaction.
by TimrNo at 60h is transmitting or has transmitted in the last transaction.
60h is waiting or has waited for the response packet in the last transaction. This timer increments on the
cycle-start packets.
3.4.26 Write-First, Write-Continue, and Write-Update Registers at 70h, 74h, 78h
These registers default to 0000 0000h and are set to 0000 0000h on a bus reset.
3.4.26.1 Write-First Register at 70h
BITSACRONYMDIRDESCRIPTION
0−31Write_FirstW/OWrite the first quadlet of the packet to ATF, MTQ or CTQ. This write-only register provides the host with the
capability to write the first quadlet of a transmit packet to the transmitting FIFO.
The values of tLabel and tCode determine to which FIFO (ATF,MTQ or CTQ) the written packet is
delivered.
3.4.26.2 Write-Continue Register at 74h
BITSACRONYMDIRDESCRIPTION
0−31Write_ContinueW/OWrite any quadlet other than the first or the last quadlet to ATF, MTQ or CTQ. This write-only register
provides the host with the capability to write any quadlet other than the first or last of a transmit packet to the
transmitting FIFO.The transmitting FIFO was determined when the host wrote to the Write_First (70h)
register.
3.4.26.3 Write-Update Register at 78h
BITSACRONYMDIRDESCRIPTION
0−31Write_UpdateW/OWrite the last quadlet of the packet. This-write only register provides the host with the capability to write the
last quadlet of a transmit packet to transmitting FIFO. The transmitting FIFO was determined when the
host wrote to the Write_First (70h) register.
3.4.27 Reserved at 7Ch
3.4.28 ARF, MRF, and CRF Data Read Registers at 80h, 84h, 88h
These registers default to 0000 0000h and are set to 0000 0000h on a bus reset.
3.4.28.1 ARF Data Read Register at 80h
BITSACRONYMDIRDESCRIPTION
0−31ARFReadR/OARF data read access register. This read-only register provides the host with the capability to read a
quadlet of the received packet from the ARF. Each read outputs the next quadlet from the ARF. If the ARF is
empty, the last valid value is read.
3.4.28.2 MRF Data Read Register at 84h
BITSACRONYMDIRDESCRIPTION
0−31MRFReadR/OMRF data read access register. This read-only register provides the host with the capability to read a
quadlet of the received packet from the MRF. Each read outputs the next quadlet from the MRF. If the MRF
is empty, the last valid value is read.
3−22
3.4.28.3 CRF Data Read Register at 88h
BITSACRONYMDIRDESCRIPTION
0−31CRFReadR/OCRF data read access register. This read-only register provides the host with the capability to read a
quadlet of the received packet from the CRF. Each read outputs the next quadlet from the CRF. If the CRF
is empty, the last valid value is read.
3.4.29 Configuration ROM Control Register at 8Ch
This register defaults to 0000 0000h and is unaffected by a bus reset. This register must be quadlet aligned.
BITSACRONYMDIRDESCRIPTION
0−5ReservedN/AReserved
6−15AR_CSR_SizeR/WAutoresponse in configuration ROM size. AR_CSR_Size is equal to the byte size number responded to
16−20 ReservedN/AReserved.
21−31 CSR_SizeR/WConfiguration ROM Size. CSR_Size is equal to the ConifgROM size number in bytes. CSR_Size must be
automatically in the ConfigROM. AR_CSR_Size must be less than 228h.
less than 400h.
3.4.30 DMA Control Register at 90h
This register defaults to 0029 2440h and, except for the bits specified, is unaffected by a bus reset.
BITSACRONYMDIRDESCRIPTION
0DMARWR/WDMA read/write. This bit controls the DMA input/output (to/from TSB43AA82A) mode control for particular
1ReservedN/AReserved
2DRFEnR/WDRF enable. When DRFEn is set to 1, the DRF is enabled to receive data. When DRFEn is set to 0, the
3DTFEnR/WDTF enable. When DTFEn is set to 1, the DTF is enabled to transmit data. When DTFEn is set to 0, the DTF
4DRPktzR/WDRF packetizer enable. When DRPktz is set to 1, the DRF packetizer is ready to transmit read request
5DTPktzR/WDTF packetizer enable. When DTPktz is set to 1, the DTF packetizer is ready to transmit write request
6DRSpDisR/WDRF packetizer split transaction disabled. When DRSpDis is set to 0, the DRF packetizer waits for the
7DTSpDisR/WDTF packetizer split transaction disable. When DTSpDis is set to 0, the DTF packetizer waits for the
10RconfSnglpktR/WReceive confirm for each single packet. When RconfSnglpkt is set to 1, each quadlet read from the DRF
11LongBlkR/WLong block size. LongBlk determines whether the DTF_BlockSize or the DTF_BlockCount are used in
12QuadSendR/WQuadlet request send. When QuadSend is set to 1, the packetizer translates a 4-byte block request to a
13QuadBndryR/WWhen QuadBndry is set to 1, the packetizer aligns the quadlet address boundary in the first request
bus mode. When DMARW is set to 1, the DMA bulky interface is used for input. When DMARW is set to 0,
DMA bulky interface is used for output. This bit defaults to 0 and is set to 0 on a bus reset.
DRF is disabled to receive data.
is disabled to transmit data. This bit is active only when DTPktz = 0.This bit defaults to 0 and is set to 0 on a
bus reset. NOTE: DTFClr must be set before setting DTFEn. Failure to set DTFClr results in a transmit
error.
packets. When DRPktz is set to 0, it is not ready to transmit read request packets and the DRF is in DPP
mode.
packets. When DTPktz is set to 0, it is not ready to transmit write request packets.
response packet if the transaction is acknowledged with an ack_pending.
When DRSpDis is set to 1, the DRF packetizer does not wait for the response packet even if the
transaction is acknowledged with an ack_pending.
response packet if the transaction is acknowledged with an ack_pending.
When DTSpDis is set to 1, the DTF packetizer does not wait for the response packet even if the transaction
is acknowledged with ack_pending.
packetizer status
reflects the value of the DRF status. Otherwise DRF status is updated for every packet received. This bit
defaults to 1 and is unaffected by a bus reset.
registers B0h and B4h.
quadlet request packet. When QuadSend is set to 0, a 4-byte block request is used. This bit defaults to 1
and is unaffected by a bus reset.
packet.
3−23
BITSDESCRIPTIONDIRACRONYM
14CheckPgR/WCheck page table. When CheckPg is set to 1, page table entry consistency with the configuration ROM is
15AutoPgR/WAutoPaging. When AutoPg is set to 1, the auto paging function is enabled. Page table read requests are
16−18 DRPageFetchSizR/WData read page fetch size. This field specifies the number of page table entries to be read by a single read
19−21 DTPageFetchSizR/WData transmit page fetch size. This field specifies the number of page table entries to be read by single
22DackpndR/WData acknowledge pending. When Dackpnd is set to 0, ack_complete acknowledge requests are written
23DrespcmpR/WDRF response complete. When Dackpnd is 0 and Drespcmp is 1, the ack_complete is automatically sent
24DTHdIsR/WDTF header insert mode. When DTHdIs is set to 1, DTx Header0 – 3 at E8h-F4h are inserted as the header
25DpauseR/WDRF pause. When Dpause is set to 1, the transfer of the packet in the DRF is paused after DRF Header 0 -
26DRStPSR/WDRF sets Dpause automatically. When DRStPS is set to 1, the packetizer does not send the next read
27DRHStrR/WDRF header strip mode. When DRHStr is set to 1, the header is stripped from the packet and only data
28DRDSelR/WDRF receiving data destination select. When DRDSel is set to 1, the received packets are transferred to
29DTDSelR/WDTF transmitting data source select. When DTDSel is set to 1, the host has write access to the DTF
30DRFClrS/CDRF clear control bit. When DRFClr is set to 1, data in the DRF is cleared. NOTE: (DPP mode) Signal
31DTFClrS/CDTF clear control bit. When DTFClr is set to 1, data in the DTF is cleared.
checked. If any error is observed, an interrupt is initiated, and DTFEnd or DRFEnd set is to 1.
automatically initiated. This bit defaults to 1 and is unaffected by a bus reset.
request packet. 2^(DRPageFetchSize+3) bytes are fetched by single read request. This field defaults to
001b and is unaffected by a bus reset.
read request packet. 2^(DTPageFetchSize+3) bytes are fetched by single read request. It defaults to 001b
and is unaffected by a bus reset.
to the BDFIFO rather than ack_pending.
by AutoResponse.
of the data transmitted from the DTF . The chip expects the host to load the DTF with data that contains no
header. When DTHdIs is set to 0, the chip expects the DTF to contain complete formatted 1394 packets.
3 at D0h−DCh and DRF trailer register at E0h are updated. When Dpause is set to 0, the transfer of the
packet in the DRF is continued after DRF Header 0 – 3 at D0h−DCh and DRF trailer register at E0h are
updated. This bit defaults to 1.
request until the receiving data is read from the bulky data interface.
payload is delivered to the host. The stripped header is copied to DRF Header 0 – 3 at D0h−DCh and DRF
trailer register at E0h.
the host through the bulky DMA I/F. When DRDSel is set to 0, the host has read access to the DRF by
reading received data from DRF data at ACh.
through the DMA bulky IF. When DTDSel is set to 0, the host has write access to DTF by writing transmitted
data on DTF first and continue register at A4h and DTF update register at A8h.
BDOAvail (9Ch) is not negated after the DRF is cleared. BDORst (94h) must be set after DRFClr.
3−24
3.4.31 Bulky Interface Control Register at 94h
This register defaults to 1680 0121 and, except for the bits specified, is unaffected by a bus reset.
BITSACRONYMDIRDESCRIPTION
0−2ReservedN/AReserved
3−5MTRBufSizR/WSpecifies DRF status block buffer. MTRBufSiz is the size of the DRF status block buffer in quadlets. These
6−8MTTBufSizR/WSpecifies DTF status block buffer. MTTBufSiz is the size of the DTF status block buffer in quadlets. These
9BDAckCtlR/WActive high control for BDACK terminal. When BDAcKCtl is set to 1, BDAck is active high. When BDAcKCtl
10ReservedN/AReserved
11ATAckCtlR/WActive high control for ATACK terminal. When A TAckCtl is set to 1, ATACK is active high. When AckCtl is
12BIBsyCtlR/WActive high control for BDIBUSY terminal. When BIBsyCtl is set to 1, BDIBUSY is active high. When
13BOAvCtlR/WActive high control for BDOAVAIL terminal. When BOAvCtl is set to 1, BDOAVAIL is active high. When
14BOEnCtlR/WActive high control for BDOEN terminal. When BOEnCtl is set to 1, BDOEN is active high. When BOEnCtl
15BIEnCtlR/WActive high control for BDIEN terminal. When BIEnCtl is set to 1, BDIEN is active high. When BIEnCtl is set
16BLECtlR/WBDIO data little-endian control. When BLECtl is set to 1, the DMA port is in little endian mode.
17AutoPadR/WAutomatic padding. When AutoPad is set to 1, data that is not quadlet aligned is automatically padded with
18−21 BDIDelayR/WBDIDelay. These bits must be set to 0 when the register is written
22−23 BDOModeR/WBDOMode. See Section 12. These bits default to 01b and are unaffected by a bus reset.
24BurstR/WBurst mode. When this bit is set to 1, the bulky DMA I/F operates in burst mode.
25−27 BDIModeR/WBDIMODE. See Section 12. These bits default to 010b and are unaffected by a bus reset.
28RcvPadR/WReceived data padding bits to the BDIF. Data must be written through to the BDIF in quadlet multiples. If a
29BDORstS/CBDO logic reset. When BDORst is set to 1, BDO logic is reset. A BDO reset is recommended when 94h is
30BDIRstS/CBDI logic reset. When BDIRst is set to 1, BDI logic is reset. A BDI reset is recommended when 94h is
31BDOTrisR/WBDO 3-state. When BDOTris is set to 1, the BDO data bus, BDIO[15:8], is forced to a high-impedance state
NOTE 1: RAM size (quadlets) is partitioned according to the following equation.
zeros. When AutoPad is set to 0, data that is not quadlet aligned is aligned by the DMA bulky interface.
packet does not end on a quadlet boundary, zeros are padded to the last quadlet automatically. When
RcvPad is set to 1, 1394 is allowed to pad bits to the BDIF. The BDIF does not strip the zeros inserted into
received packets prior to transferring them to the BDIF. When RcvPad is set to 0, 1394 is not allowed to pad
bits to the BDIF.
modified. This bit is defaults to 0 and is set to 0 on a bus reset.
modified. This bit defaults to 0 and is set to 0 on a bus reset
(this does not effect BDREQ). This bit defaults to 1 and is unaffected on a bus reset.
3−25
3.4.32 DTF/DRF and DTF/DRF Page Table Size Register at 98h
This register defaults to 0000 0000h and is unaffected by a bus reset.
BITSACRONYMDIRDESCRIPTION
0−5DTFPTBufSizR/WDTF page table fetch buffer size. DTFPTBufSiz is the buffer size in quadlets for the DTF page table
6−15DTF_SizeR/WDTF size control bits. DTF_Size is equal to the DTF size number in units of 4 quadlets.
16−21 DRFPTBufSizR/WDRF page table fetch buffer size. DRFPTBufSiz is the buffer size in quadlets for the DRF page table
22−31 DRF_SizeR/WDRF size control bits. DRF_Size is equal to the DRF size number in units of 4 quadlets. These bits default
NOTE 1: RAM size (quadlets) is partitioned according to the following equation.
This register defaults to 8000 C000h and, except for the specified bits, is unaffected by a bus reset.
BITSACRONYMDIRDESCRIPTION
0DTFEmptyR/ODTF empty flag. DTFEmpty specifies the DTF status. When the DTF is empty, this bit is set to 1. This bit
1−3ReservedN/AReserved
4−15DTFAvailR/ODTF available flag. DTF has space available for DTFAvail quadlets. Remaining size is displayed in
16DRFEmptyR/ODRF empty flag. DRFEmpty specifies the DRF status. When the DRF is empty, this bit is set to 1. This bit
17BDOAvailR/OThis bit reflects the status of BDOAVAIL terminal. Note: This bit is not always equal to BDOAVAIL output
18−19 ReservedN/AReserved
20−31 DRFThereR/WDRF there flag. The number of quadlets received in the DRF . These bits default to 0 and are unaf fected by
defaults to 1 and is set to 1 on a bus reset.
quadlets. These bits default to 0 and are unaffected by a bus reset.
defaults to 1 and is set to 1 on a bus reset.
because the polarity of BDOAVAIL is set by BOAvCtl (94h bit 13). This bit defaults to 1.
a bus reset.
Note: Do not read out data more than the displayed size. (The numerical value of this counter decreases and becomes negative.)
3.4.34 DTF/DRF Acknowledge Register at A0h
This register defaults to 0000 0000h and is set to 0000 0000h on a bus reset.
BITSACRONYMDIRDESCRIPTION
0−6ReservedN/AReserved
7DRAErrR/ODRF ack error. When the ack received has a parity error or length error, AckErr (E8h, bit 11) is set to 1.
8−11DRxAckR/ODRF transmitter acknowledge received. The last ackcode received for a read request packet for the DRF.
12−14 ReservedN/AReserved
15DRAValR/ODRF ack valid. This bit specifies whether DRxAck has been already read. When DRxAck has not been
16−22 ReservedN/AReserved
23DTAErrR/ODTF ack error. When the ack received had a parity error or length error, AckErr (E8h, bit 11) is set to
24−27 DTxAckR/ODTF transmitter acknowledge received. The last ack code received for the packet transmitted from DTF.
28−30 ReservedN/AReserved
31DTAValR/ODTF ack valid. This bit specifies whether DtxAck has already been read. When DtxAck has not been read,
3−26
When the ack has no errors or an ack has not been received yet, AckErr is set to 0.
The value is updated each time the ack is received.
read, DRAVal is 1. When DRxAck has been read, DRA Val is 0.
1.When the ack has no error or an ack has not been received, AckErr is set to 0.
The value is updated each time the ack is received.
DTAVal is set to 1. When DtxAck has already been read, DTAVal is set to 0.
3.4.35 DTF First and Continue Register at A4h
This register defaults to 0000 0000h and is set to 0000 0000h on a bus reset.
BITSACRONYMDIRDESCRIPTION
0−31DTF_First&ContinueW/OWrite DTF first and continue. This write-only register provides the host with the capability to write the
quadlets of a transmit packet, except the last quadlet, to the DTF.
3.4.36 DTF Update Register at A8h
This register defaults to 0000 0000h and is set to 0000 0000h on a bus reset.
BITSACRONYMDIRDESCRIPTION
0−31DTF_UpdateW/ODTF update. This write-only register provides the host with the capability to write the last quadlet of a
transmit packet to DTF. Once written, the packet is transmitted.
3.4.37 DRF Data Read Register at ACh
This register defaults to 0000 0000h and is set to 0000 0000h on a bus reset.
BITSACRONYMDIRDESCRIPTION
0−31DRFReadR/ODRF data read access register. This read-only register provides the host with the capability to read the
data quadlet of a received packet from the DRF. Each read outputs the next quadlet from the DRF. If the
DRF is empty, the last valid value is read.
3.4.38 DTF Control Registers at B0h, B4h, B8h, and BCh
The values in this register are N/A when DTpktz = 0 at 90h. Unless otherwise specified, these registers default to
0000 0000h and, except for the specified bits, are unaffected by a bus reset.
3.4.38.1 DTF Control Register 0 at B0h
BITSACRONYMDIRDESCRIPTION
0DTFCTL0R/WDTF packetizer transmit control. This bit depends on the current bus condition. Table 3-2 describes the
1DTFCTL1R/WDTF packetizer transmit control. This bit depends on the current bus condition. Table 3-2 describes the
2DTFClr/DTFstR/WDTF clear control bit (write)/DTFStatus transmit (read).
3DTFNdIdvalR/ODTF NodeID valid. This bit represents a valid NodeID in DTF destination ID. Writing to DTF destination ID
4DTFNotifyR/WDTF notify. When this bit is set to 1, transaction status data is transferred after the DTF data transfer.
5ReservedN/CReserved
6−7DTF SpdR/WDTF transaction speed. DTF Spd specifies the speed used by the DTF packetizer.
8−11DTF Max PayloadR/WDTF transfer maximum payload. DTF Max Payload is used to calculate the maximum data transfer length
12PgTblEnR/WPage table enable. PgTblEn controls page table fetching. When PgTblEn is set to 1, page table fetching is
read and write values of this control bit.
read and write values of this control bit.
DTF clear control bit: When DTFClr is set to 1, data in the DTF is cleared. This bit is set to 0 automatically
after the DTF is cleared. DTFClr/DTFst must not be asserted when DTFCtl is busy . When this bit is read it
specifies the current transfer transaction status. DTF packetizer transfer status: DTFSt represents the
DTF transaction status data. When set to 1 this bit indicates that the transaction is active.
Note: DTF_destination_ID (B8h) data is required before this bit is set to 1.
(bits 0−15 at B8h) sets this bit to 1, and a bus reset clears this bit to 0. This bit should be 1 when the
DTF_destination_ID at B8h is reset. This bit defaults to 0 and is set to 0 on a bus reset.
that the DTF packetizer requests in a single write transaction.
The maximum data transfer length (in bytes) is 2
enabled. DTF_destination_offset_hi and DTF_destination_offset_lo data point to the page table address.
When PgTblEn is 0 and AutoPg is set to 1, page table fetching is disabled. DTF_destination_offset_hi
(B8h) and DTF_destination_offset_lo (BCh) determine the data area.
(DTF Max Payload + 2)
.
3−27
BITSDESCRIPTIONDIRACRONYM
13−15 DTF Page SizeR/WDTF transmit page size. DTF Page Size specifies the underlying page size of data buffer memory. Any
16−31 DTF_BlockSize/
DTF_BlockCount
one request packet is not permitted to cross a page boundary. A DTF Page Size value of zero indicates
that the underlying page size is not specified. Otherwise, the page size (in bytes) is 2
R/WDTF transmit block size / DTF transmit block count. When LngBlk in DMA control (90h) is set to 0, this
value is the DTF_BlockSize. DTF_BlockSize specifies the transmitted blocksize value in bytes. When
LngBlk is set to 1, the value is the DTF_BlockCount. DTF_BlockCount specifies the number of
transmitted blocks. DTF_BlockCount is decremented during transmission automatically.
(DTFPageSize + 8)
Table 3−2. DTFCtl: DTF Packetizer Transmit Control
READ VALUEWRITE VALUE
DTFCTL0DTFCTL1STATEDTFCTL0DTFCTL1STATE
00IDLE00No operation
10BUSY10Start/restart—resume state
11PEND11Init-start—from idle
01PAGEFAULT01Abort
Reset
.
IDLE
Start
BUSY
Init-start
Abort
[Complete]
Restart
PEND
[Abort, Bus Reset,
Error (Ack, Retry,
Split Timeout)]
Figure 3−1. Automatically Creating an SBP-2 Compliant Request for a Block Packet
3−28
3.4.38.2 DTF Control Register 1 at B4h
BITSACRONYMDIRDESCRIPTION
0−31DTF_BlockCount/
DTF_BlockSize
R/WDTF transmit block count / DTF transmit block size (bytes). When LongBlk in DMA Control (90h) is set to 1,
it is the DTF_BlockSize. DRFBlockSize specifies the transmitted blocksize value. When LongBlk is set to
0, this value is the DTF_BlockCount. DTF_BlockCount specifies the number of received blocks.
DTF_BlockCount is decremented during transmission automatically . This register defaults to 0 and is set
to 0 on a bus reset.
3.4.38.3 DTF Control Register 2 at B8h
BITSACRONYMDIRDESCRIPTION
0−15DTF_destination_IDR/WDTF transferred destination ID. DTF_destination_ID specifies transfer destination ID.
16−31 DTF_destination_offset_hiR/WDTF transferred destination start offset high. DTF_destination_offset_hi specifies transfer
destination offset high.
3.4.38.4 DTF Control Register 3 at BCh
BITSACRONYMDIRDESCRIPTION
0−31DTF_destination_offset_loR/WDTF transfer destination start offset low. DTF_destination_offset_lo specifies transfer
destination offset low.
3.4.39 DRF Control Registers at C0h, C4h, C8h, and CCh (DRPktz at 90h = 0)—Direct
When DRPktz is set to 0, the DRF control registers describe the direct mode. The direct mode is primarily used with
DPP. These registers default to 0000 0000h and are unaffected by a bus reset.
3.4.39.1 DRF Control Register 0 at C0h
BITSACRONYMDIRDESCRIPTION
0DRFBIdEnR/WDRF bus ID check enable. Enables bus ID check for received write request routing control.
Note: Valid only when DRFAdrEn = 1.
1DRFSIdEnR/WDRF source ID check enable. Enables source ID check for received write request routing control.
Note: Valid only when DRFAdrEn = 1.
2DRFAdrEnR/WDRF address enable. Enables the routing function for the received write request. In this mode, write
3−31ReservedN/AReserved
All matched packetsARFDRFARFDRFARFDRFARFDRF
Unmatched source_ID
Unmatched addressARFARFARFARFARFARFARFARF
request packets with a destination address specified by the DRF control 0/1/2 addresses are stored in the
DRF.
C0h (DRFBIdEn, DRFSIdEn, DRFAdrEn)
000001010011100101110111
ARFDRFARFARFARFDRFARFARF
3.4.39.2 DRF Control Register 1 at C4h
BITSACRONYMDIRDESCRIPTION
0−31DRF_destination_WidthR/W DRF destination width. DRF_destination_Width specifies the address depth of the received write
request packets to the DRF.
3.4.39.3 DRF Control Register 2 at C8h
BITSACRONYMDIRDESCRIPTION
0−16DRF_destination_IDR/WDRF destination ID. DRF_destination_ID specifies the transferred destination ID.
17−31 DRF_destination_offset_hiR/WDRF destination offset high. DRF_destination_offset_hi specifies the transferred destination
offset high.
3−29
3.4.39.4 DRF Control Register 3 at CCh
BITSACRONYMDIRDESCRIPTION
0−31DRF_destination_offset_loR/WDRF receive destination start offset low. DRF_destination_offset_lo specifies the transferred
destination offset low.
3.4.40 DRF Control Registers at C0h, C4h, C8h, and CCh (DRPktz at 90h = 1)—Packetizer
When DRPktz is set to 1, the DRF control registers describe the packetizer mode. The packetizer mode is primarily
used with SBP-2. These registers default to 0000 0000h and, except for the bits specified, are unaffected by a bus
reset.
3.4.40.1 DRF Control Register 0 at C0h
BITSACRONYMDIRDESCRIPTION
0−1DRFCTL[0:1]R/WDRF packetizer transmit control. Table 3−3 describes the read and write values of these control bits.
2DRFClr/DRFstR/WDRF clear control bit (write) / DRF status transmit (read)
When DRFClr is set to 1, the DRF data is cleared. This bit is automatically set to 0 when the DRF is cleared.
DRFClr must not be asserted when DRFCtl is busy. When DRFst is set to 0, the read value specifies the
current transaction status.
3DRFNdIdvalR/ODRF NodeID valid. This bit represents a valid NodeID in DRF destination ID. This bit is 1 when the
4DRFNotifyR/W DRF notify. When this bit is set to 1, transaction status data is transferred following a DRF data transfer.
5ReservedN/AReserved
6−7DRFSpdR/W DRF transaction speed. DRFSpd specifies the speed used by the DRF packetizer.
8−11DRF Max PayloadR/WDRF transfer maximum payload. DRFMaxPayload is used to calculate the maximum data transfer length
12PgTblEnR/WPage table enable. PgTblEn controls page table fetching. When PgTblEn is set to 1, page table fetching is
13−15 DRF Page SizeR/WDRF receive page size. DRF Page Size specifies the underlying page size of data buffer memory. Any one
16−31 DRF_BlockSize/
DRF_BlockCount
destination ID at C8h is changed. This bit defaults to 0 and is set to 0 on a bus reset.
that the DRF packetizer requests in a single read transaction. The maximum data transfer length is
specified as 2
enabled. DRF_destination_offset_hi and DRF_destination_offset_lo data point to the page table address.
When PgTblEn is 0 and AutoPg is set to 1, page table fetching is disabled. DRF_destination_offset_hi and
DRF_destination_offset_lo are data areas.
request packet is not permitted to cross a page boundary . DRF Page Size value of zero indicates that the
underlying page size is not specified. Otherwise, the page size is 2
R/WDRF transmit block size / DRF transmit block count. When LngBlk in DMA control (90h) is set to 0, this
value is the DRF_BlockSize. DRF_BlockSize specifies the transmitted blocksize value in bytes. When
LngBlk is set to 1, the value is the DRF_BlockCount. DRF_BlockCount specifies the number of transmitted
blocks. DRF_BlockCount is decremented during transmission automatically.
(DRFMaxPayload + 2)
.
(DRFPageSize + 8)
.
3−30
Table 3−3. DRFCtl: DRF Packetizer Transmit Control
When LngBlk in DMA control (90h) is set to 1, this value is DRF_BlockSize.
When LngBlk is set to 0, this value is DRF_BlockCount. DRF_BlockSize specifies the received blocksize
value. DRF_BlockCount specifies the number of received blocks. DRF_BlockCount is decremented
during reception automatically .
3.4.40.3 DRF Control Register 2 at C8h
BITSACRONYMDIRDESCRIPTION
0−16DRF_destination_IDR/WDRF transfer destination ID. DRF_destination_ID specifies the transferred destination ID.
17−31 DRF_destination_offset_hiR/WDRF transfer destination start offset high. DRF_destination_offset_hi specifies the transferred
3.4.41 DRF Header Registers at D0h, D4h, D8h, and DCh
If DRHStr at 90h bit 27 is set to 1, the stripped header is written to these registers. These registers default to
0000 0000h and are unaffected by a bus reset.
3.4.41.1 DRF Header Register 0 at D0h
BITSACRONYMDIRDESCRIPTION
0−31DRF_Header0R/ODRF Header0. First quadlet of received packet header in DRF. When DRHStr at 90h is set to 1, the host
can read the first header quadlet of a received packet header after the header has been copied into
DRF_Header0.
3.4.41.2 DRF Header Register 1 at D4h
BITSACRONYMDIRDESCRIPTION
0−31DRF_Header1R/ODRF Header1. Second quadlet of received packet header in DRF. When DRHStr at 90h is set to 1, the host
can read the second header quadlet of a received packet header after the header has been copied into
DRF_Header1.
3.4.41.3 DRF Header Register 2 at D8h
BITSACRONYMDIRDESCRIPTION
0−31DRF_Header2R/ODRF Header2. Third quadlet of received packet header in DRF. When DRHStr at 90h is set to 1, the host
can read the third header quadlet of a received packet header after the header has been copied into
DRF_Header2.
3.4.41.4 DRF Header Register 3 at DCh
BITSACRONYMDIRDESCRIPTION
0−31DRF_Header3R/ODRF Header3. Fourth quadlet of received packet header in DRF. When DRHStr at 90h is set to 1, the host
can read the fourth header quadlet of a received packet header after the header has been copied into
DRF_Header3.
3−31
3.4.42 DRF Trailer Register at E0h
This register defaults to 0000 0000h and is unaffected by a bus reset.
BITSACRONYMDIRDESCRIPTION
0−13ReservedN/AReserved
14−15 Rx_SpdR/ODRF receive speed. Rx_Spd specifies the speed of the response packet the DRF receives.
00b : 100 Mbps
01b : 200 Mbps
10b : 400 Mbps
11b : Not valid
16−21 ReservedN/AReserved
22−23 Fll0R/ONumber of fill zero bytes. Fll0 specifies the number of zero-fill bytes in the last quadlet of the packet data
24−27 ReservedN/AReserved
28−31 DRF_TxAckR/O
payload.
00b : no zero-fill bytes
01b : 3 zero-fill byte
10b : 2 zero-fill bytes
11b : 1 zero-fill bytes
DRF transmit acknowledge. The DRF_TxAck specifies the transferred acknowledge of the received
packet
This register defaults to 0000 0000h and is unaffected by a bus reset.
BITSACRONYMDIRDESCRIPTION
0−15DTF Page CountR/WDTF Page Count specifies the number of the page table entries to be fetched. This count is identified by the
16−31 DRF Page CountR/WDRF Page Count specifies the number of the page table entries to be fetched. This count is identified by
3−32
data_size field of the command ORB fetched. Any number other than zero is a valid value. This number is
decremented following a page fetch action.
the data_size field of the command ORB. Any number other than zero is valid value. This number is
decremented following a page fetch action.
3.4.44 DTx Write Request Header Registers at E8h, ECh, F0h, and F4h (DhdSel at 90h = 00b)
DhdSel in DMA control at 90h selects the header type. Unless otherwise specified, these registers default to
0000 0000h and are unaffected by a bus reset.
14−15 DTxSpdR/ODTF transaction speed code. DTxSpd represents the speed code of the request packet transmitted from
16−21 DTxtLabelR/ODTF transaction tLabel. DtxtLabel represents the transaction tLabel of the request packet transmitted from
22−23 DTxRtR/ODTF transmit retry code. DTxRT represents the transaction retry code of the request packet transmitted
24−27 DTxtCodeR/ODTF transmit tCode. DtxtCode represents the transaction tCode of the request packet transmitted from
28−31 DTxPrioR/ODTF transmit priority. DtxPrio represents the transaction priority of the request packet transmitted from the
the DTF. These bits default to 1h and are unaffected by a bus reset.
the DTF.
from the DTF.
the DTF. When DTPktz is enabled, DtxtCode is set to 1h automatically. These bits default to 1h and are
unaffected by a bus reset.
DTF.
3.4.44.2 DTx Header Register 1 at ECh
BITSACRONYMDIRDESCRIPTION
0−15DTx_destination_IDR/O
(Note)
16−31 DTx_destination_offset_hiR/O
(Note)
NOTE: R/W when DTPktz = 0
DTF transmit destination ID. DTx_destination_ID represents the destination ID of the request
packet transmitted from the DTF.
DTF transmit destination offset high. Tx_destination_offset_hi represents the destination offset
hi of the request packet transmitted from DTF.
3.4.44.3 DTx Header Register 2 at F0h
BITSACRONYMDIRDESCRIPTION
0−31DTx_destination_offset_loR/O
(Note)
NOTE: R/W when DTPktz = 0
DTF transmit destination offset low. DTx_destination_offset_lo represents the destination offset
lo of the request packet transmitted from the DTF.
3.4.44.4 DTx Header Register 3 at F4h
This register defaults to 0008 0000h.
BITSACRONYMDIRDESCRIPTION
0−5DTx_data_lengthR/O
(Note)
16−31 DTx_extended_tCodeR/O
(Note)
NOTE: R/W when DTPktz = 0
DTF transmit data length. DTx_data_length represents the data length of the request packet
transmitted from the DTF. It defaults to 8h and is unaffected by a bus reset.
DTF transmit extended tCode. DTx_extended_tCode represents the extended tCode of the
request packet transmitted from the DTF.
3−33
3.4.45 DTx Packetizer Status Registers at E8h, ECh, F0h, and F4h (DhdSel at 90h = 01b)
RESP
rr
Ack
PSTAT
PRESP
rr
PAck
0−3
STAT
R/O
DhdSel in DMA control at 90h selects the header type. Unless otherwise specified, these registers default to
0000 000h and are unaffected by a bus reset.
11AckErrR/OAck error. Specifies whether the last ack received for the packet transmitted from DTF has errors. When
12−15 AckR/OSpecified ack code received
16−19 PSTATR/OSpecified page status code received. Refer to STAT for status.
20−23 PRESPR/OSpecified page status response received
24−26 ReservedN/AReserved
27PAckErrR/OPage table ack error. Specifies whether the last ack received for the page table request had any errors.
28−31 PAckR/OSpecifies the page ackcode received
DTF transaction complete state. STAT is the state of a completed DTF transaction.
0hThe request block transaction from the DTF was completed successfully.
1hAn ack_pending was received and the transaction is a split transaction.
2hThe acknowledgement (except ack_complete, ack_busy_X, and ack_pending) was returned to
the requesting node.
3hReserved
4hThe transaction was stopped because of a page table fetch problem.
5h−6h Reserved
7hThe request packet was transmitted Retry_Limit times.
8h−9h Reserved
AhThe response packet was received but rCode is not complete.
BhThe response packet was not received in Split_Time.
ChThe request packet was not sent because of a bus reset.
DhThe request packet was removed because of RstTr or DTFClr at 90h.
Eh−Fh Reserved
the received ack has a parity error or length error, AckErr is set to 1. When the ack has no error or an ack
has not been received yet, AckErr is set to 0.
When the received ack has a parity error or length error, PAckErr is set to 1. When the ack has no error or
an ack has not been received yet, PAckErr is set to 0.
3.4.45.2 DTx Header Register 1 at ECh
BITSACRONYMDIRDESCRIPTION
0−15DTx page numberR/OPage number. Page number specifies the current page number used during packetization. It is
16−31 ReservedN/AReserved
3−34
incremented by one each time the packetizer fetches a new page. This number is set to 0 when the
packetizer starts from an initial state.
3.4.45.3 DTx Header Register 2 at F0h
BITSACRONYMDIRDESCRIPTION
0−15DTx page lengthR/O
16−31 DTx page table hiR/O
NOTE: R/W when DTPktz = 0
DTX page length. Specifies the current page table value used during current packetization.
(Note)
DTX page table high. Specifies the current page table address used during current packetization.
(Note)
3.4.45.4 DTx Header Register 3 at F4h
BITSACRONYMDIRDESCRIPTION
0−31DTx page table lo
DTX page table low. Specifies the current page table addr used during the current packetization.
R/O
3.4.46 DRx Read Request Header Registers at E8h, ECh, F0h, and F4h (DhdSel at 90h = 10b)
DhdSel in DMA control at 90h selects the header type. Unless otherwise specified, these registers default to
0000 0000h and are unaffected by a bus reset.
14−15 DRxSpdR/ODRF transaction speed code. DRxSpd represents the speed code of the read request packet transmitted
16−21 DRxtLabelR/ODRF transaction tLabel. DRxtLabel represents the transaction tLabel of the read request packet
22−23 DRxRtR/ODRF transmit retry code. DRxRt represents the transaction retry code of the read request packet
24−27 DRxtCodeR/ODRF transmit tCode. DRxtCode represents the transaction tCode of the read request packet transmitted
28−31 DRxPrioR/ODRF transmit priority. DRxPrio represents the transaction priority of the read request packet transmitted
from the DRF. Defaults to 1h and is unaffected by a bus reset.
transmitted from the DRF.
transmitted from the DRF.
from the DRF. When DRPktz is enabled, DRxtCode is set to 1h automatically. Defaults to 1h and is
unaffected by a bus reset.
from the DRF.
3.4.46.2 DRx Header Register 1 at ECh
BITSACRONYMDIRDESCRIPTION
0−15DRx_destination_IDR/O
(Note)
16−31 DRx_destination_offset_hiR/O
(Note)
NOTE: R/W when DTPktz = 0
DRF transmit destination ID. DRx_destination_ID represents the destination ID of the request
packet transmitted from the DRF.
DRF transmit destination offset high. DRx_destination_offset_hi represents the destination
offset high of the request packet transmitted from the DRF.
3−35
3.4.46.3 DRx Header Register 2 at F0h
BITSACRONYMDIRDESCRIPTION
0−31DRx_destination_offset_loR/O
(Note)
NOTE: R/W when DTPktz = 0
DRF transmit destination offset low. DRx_destination_offset_lo represents the destination of fset
low of the request packet transmitted from the DRF.
3.4.46.4 DRx Header Register 3 at F4h
This register defaults to 0008 0000h.
BITSACRONYMDIRDESCRIPTION
0−15DRx_data_lengthR/O
16−31 DRx_extended_tCodeR/O
NOTE: R/W when DTPktz = 0
DRF transmit data length. DRx_data_length represents the data length of the request packet
(Note)
transmitted from the DRF. Defaults to 8h and is unaffected by a bus reset.
DRF transmit extended tCode. DRx_extended_tCode represents the extended tCode of the request
(Note)
packet transmitted from the DRF.
3.4.47 DRx Packetizer Status Registers at E8h, ECh, F0h, and F4h (DhdSel at 90h = 11b)
DhdSel in DMA control at 90h selects the header type. These registers default to 0000 0000h and are unaffected by
a bus reset.
11AckErrR/OAck error. Specifies whether the last ack received for the packet transmitted from DTF has any errors.
12−15 AckR/OSpecified ack code received
16−19 PSTATR/OSpecified page status code received. Refer to STAT for status.
20−23 PRESPR/OSpecified page status response received
24−26 ReservedN/AReserved
27PAckErrR/OPage table ack error. Specifies whether the last ack received for the page table request has any errors.
28−31 PAckR/OSpecified page ack code received.
DRF packetizer transaction complete state. STAT is the state of a completed DRF transaction.
0hThe request block transaction from the DRF was completed successfully.
1hAn ack_pending was received and the transaction is a split transaction.
2hThe acknowledgement (except ack_complete, ack_busy_X, and ack_pending) was returned in
response to the request packet.
3hReserved
4hThe transaction was stopped because of a page table fetch problem.
5h-6hReserved
7hThe request packet was transmitted Retry_Limit times.
8h-9hReserved
AhThe response packet was received but rCode is not complete.
BhThe response packet was not received in Split_Time.
ChThe request packet was not sent because of a bus reset.
DhThe request packet was removed because of RstTr or DTFClr at 90h.
Eh-Fh Reserved
When the received ack has a parity error or length error , AckErr is set to 1. When the ack has no error or an
ack has not been received, AckErr is set to 0.
When the received ack had a parity error or length error, PAckErr is set to 1. When the ack has no error or
an ack has not been received yet, PAckErr is set to 0.
3.4.47.2 DRx Header Register 1 at ECh
BITSACRONYMDIRDESCRIPTION
0−15DRx page numberR/ODRx page number . Specifies the current page number used during packetization. It is incremented by one
16−31 ReservedN/AReserved
each time the packetizer fetches a new page table. This number is set to 0 when the packetizer starts from
an initial state.
3.4.47.3 DRx Header Register 2 at F0h
BITSACRONYMDIRDESCRIPTION
0−15DRx page lengthR/O
(Note)
16−31 DRx page table hiR/O
(Note)
NOTE: R/W when DTPktz = 0
DRx page length. Specifies the current page table value used during the current packetization.
DRx page table high. Specifies the current page table address used during the current packetization.
3.4.47.4 DRx Header Register 3 at F4h
BITSACRONYMDIRDESCRIPTION
0−31DRx page table loR/ODRx page table low. Specifies the current page table address used during current packetization.
3−37
3.4.48 Log/ROM Control Register at F8h
This register defaults to 0000 0000h and is unaffected by a bus reset.
3.4.48.1 Log/ROM Control Register at F8h—XLOG (bit 16 at F8h) = 0
BITSACRONYMDIRDESCRIPTION
0LogATFR/WRecord packets transmitted from the ATF in the LOG. When LogATF is set to 1, packets transmitted from
1LogARFR/WRecord packets written to the ARF in the LOG . When LogARF is set to 1, packets written to the ARF are
2LogMAgntR/WRecord packets accessed by management agent in the LOG. When LogMAgnt is set to 1, packets
3LogMTQR/WRecord packets transmitted from the MTQ in the LOG. When LogMTQ is set to 1, packets transmitted
4LogMRFR/WRecord packets written to the MRF in the LOG. When LogMRF is set to 1, packets written to the MRF are
5LogAgntR/WRecord packets accessed by the command block agent in the LOG. When LogAgnt is set to 1, packets
6LogCTQR/WRecord packets transmitted from the CTQ in the LOG. When LogCTQ is set to 1, packets transmitted from
7LogCRFR/WRecord packets written to the CRF in the LOG. When LogCRF is set to 1, packets written to CRF are
8LogDTFRqR/WRecord write request packets transmitted from the DTF in the LOG. When LogDTFRq is set to 1, write
9LogDTFRsR/WRecord write response packets received by the DTF in the LOG. When LogDTFRs is set to 1, write
10LogDRFRqR/WRecord read request packets transmitted by the DRF in the LOG. When LogDRFRq is set to 1, read
11LogDRFRsR/WRecord read response packets received by the DRF in the LOG. When LogDRFRs is set to 1, read
12LogARROMR/WRecord auto-response packet from the configuration ROM in the LOG. When LogARROM is set to 1,
13LogRetryN/ARecord retry packet. When LogRetry is set to 1, retry packets are recorded in the LOG. When LogRetry is
14ShortLogR/WShort format log. When ShortLog is set to 1, packets are recorded in the LOG in the long format. When
15LogClrS/CLog clear control bit. When LogClr is set to 1, the LOG is cleared.
16XLOGR/WSelect LOG data or ConfigROM data. When XLOG is set to 1, the data read from the LOG data (FCh) is
17ROMValidR/WConfiguration ROM valid. When ROMValid is set to 1, the data in configuration ROM is valid. The receiver
18LogCDR/OLog control bit. When the first or the last quadlet of a packet is read from LOG data (FCh), LogCD is 1.
the ATF are recorded in the LOG. When LogATF is set to 0, packets transmitted from the ATF are not
recorded.
recorded in the LOG. When LogARF is set to 0, packets written to the ARF are not recorded.
accessed by the management agent are recorded in the LOG. When LogMAgnt is set to 0, packets written
to the MRF are not recorded.
from the MTQ are recorded in the LOG. When LogMTQ is set to 0, packets transmitted from the MTQ are
not recorded.
recorded in the LOG. When LogMRF is set to 0, packets written to the MRF are not recorded.
accessed by the command block agent are recorded in the LOG. When LogAgnt is set to 0, packets
written to the CRF are not recorded.
the CTQ are recorded in the LOG. When LogCTQ is set to 0, packets transmitted from the CTQ are not
recorded.
recorded in the LOG. When LogCRF is set to 0, packets written to the CRF are not recorded.
request packets transmitted from the DTF are recorded in the LOG. When LogDTFRq is set to 0, they are
not recorded.
response packets received by the DTF are recorded in the LOG. When LogDTFRs is set to 0, they are not
recorded.
request packets transmitted by the DRF are recorded in the LOG. When LogDRFRq is set to 0, they are
not recorded.
response packets received by the DRF are recorded into the LOG. When LogDRFRs is set to 0, they are
not recorded.
auto-response packets including data read from configuration ROM are recorded in the LOG. When
LogARROM is set to 0, they are not recorded.
set to 0, they are not recorded.
ShortLog is set to 0, packets are recorded in the LOG in the short format.
ConfigROM data. When XLOG is set to 0, the data read from LOG data (FCh) is LOG data. Note: After
XLOG is set to 0, the LOG is cleared using the LogClr bit.
returns Ack_pending for all quadlet read requests addressed to this configuration ROM and the
respective quadlet read response packets are transmitted automatically. When ROMValid is set to 0, the
data in the configuration ROM is invalid. The receiver returns Ack_Tardy for all quadlet read requests
addressed to this configuration ROM.
Otherwise, LogCD is 0.
3−38
BITSDESCRIPTIONDIRACRONYM
19LogFullR/OLog full. When LogFull is 1, the LOG is full.
20−31 LogThere
/
ROMAddr
R/O
Log available flag/address of configuration ROM. When XLOG is set to 1, LogThere/ROMAddr is in
//
ROMAddr mode. ROMAddr is the address accessed by the host in configuration ROM. The last two bits
R/W
are 00 to ensure quadlet access. When XLOG is set to 0, LogThere/ROMAddr is LogThere. LOG has
space available for LogThere quadlets.
3.4.48.2 Log/ROM Data Register—XLOG (bit 16 at F8h) = 1
BITSACRONYMDIRDESCRIPTION
0DTFStR/WDTF status block access mode. When DTFSt is set to 1, the Adder field in this register, the FCh address,
1DRFStR/WDRF status block access mode. When DRFSt is set to 1, the Adder field in this register, the FCh address,
2−15ReservedN/AReserved
16XLOGR/WSelect LOG data or ConfigROM data. When XLOG is set to 1, the data read from the log/ROM data register
17ROMValidR/WConfiguration ROM valid. When ROMValid is set to 1, the data in configuration ROM is valid. The receiver
18−19 ReservedR/OReserved
20−31 AdderR/WAddress for DTF/DRF status block and ConfigROM write/read.
and data access are for the DTF status block.
and data access are for the DRF status block.
(FCh) is ConfigROM data. When XLOG is set to 0, the data read from the log/ROM data register (FCh ) is
LOG data.
returns ack_pending for all quadlet read requests addressed to this configuration ROM and the respective
quadlet read response packets are transmitted automatically . When ROMValid is set to 0, the data in the
configuration ROM is invalid. The receiver returns ack_tardy for all quadlet read requests addressed to
this configuration ROM.
3.4.49 Log ROM Data Register at FCh
This register defaults to 0 and is unaffected by a bus reset.
BITSACRONYMDIRDESCRIPTION
0−31LogRead/ROMAccessR/WLOG data read access register/configuration ROM data read access register . See the following table.
NOTE: Do not access (read/write) data exceeding input packet quantities.
This register defaults to 0h and is unaffected by a bus reset.
XLOGDTFStDRFstLogRead/ROMAccess field
0XXLogRead access
100Config ROM access
110DTF status block access
101DRF status block access
111NA
3−39
3−40
4 Asynchronous Command FIFOs
As described in Section 2, the TSB43AA82A has three FIFO types: asynchronous command FIFOs, configuration
ROM FIFOs, and DMA FIFOs. The FIFO types have maximum sizes of 378 quadlets, 126 quadlets, and 1182
quadlets, respectively. The following sections describe the optimized way to determine the sizes of the 3 FIFO types.
The asynchronous command FIFOs contain the FIFOs for the SBP-2 management and command ORB fetches and
retrievals, and general-purpose asynchronous FIFOs.
4.1Sizes of Asynchronous Command FIFOs (total 378 quadlets)
Each FIFO size is set up with its respective FIFO size field in status registers 2Ch−40h. Generally, it is recommended
that the initial setup size is not changed during operation. If a change is made, data within the group of FIFOs may
change, and each FIFO needs to be cleared.
4.1.1MTQ/MRF
The MTQ/MRF is used for management ORBs. The MTQ has a fixed value of 3 quadlets and the MRF has a fixed
value of 15 quadlets (this includes the 1394 header and trailer)
4.1.2CTQ/CRF
The CTQ/CRF is used for command ORBs receipt and transmission. The size of CTQ/CRF is determined by the
number of agents. CTQ size is calculated as below. Number of LOGIN is #LOGIN;
CTQ_SIZE = #LOGIN × 3 [quadlet]
In addition, the size of CRF is calculated as below:
COMMAND_ORB_SIZE is the size of an ORB in quadlets when it fetches a command. This is stated in logical unit
characteristics on the target ConfigROM. The size of COMMAND ORB should be the same as CORB-size on ORB
fetch control (44h). Because its default value is 8, the same as the value for SCSI, no adjustment will be required for
SCSI.
If the short format (CShtFmt = 1 at 44h bit 23) described in Section 4.5.2 is used for a response packet, the size of
CRF will be calculated as below:
Packet transmission is accessed through the write-first, write-continue and write-update registers at 70h−78h. Packet
reception is accessed through the ARFRead, MRFRead, and CRFRead at 80h−88h. The tLabel and the tCode
attached to a packet direct each request and response packet to the appropriate FIFO, the ATF, MTQ, or CTQ. A
response packet has the same tLabel as its request packet. With this rule, TSB43AA82A assigns the response packet
from the initiator to the appropriate receive FIFO, the ARF, MRF, or CRF.
4.2.1tLabel/tCode Management for Packet Transmission
The table below lists the tLabel and tCode combinations that determine which transmit FIFO (ATF, MTQ, CTQ) is used
and the corresponding receive FIFO (ARF, MRF, CRF).
Combinations other than the following are not recommended.
PACKET INPUT THROUGH 70h to 78hFIFOs
tLabeltCodeTransmit FIFOReceive FIFO
xx_xxxxAny response packetATFNo response
00_0000 - 00_1110Any request packetATFARF
10_00xxBlock read request (see Note 1)MTQMRF
11_00xxBlock read request (see Note 2)CTQCRF
11_1xxxBlock write request (see Note 3)ATFARF (see Note 4)
NOTES: 1. The host performs a management ORB fetch.
2. The host performs a command block ORB fetch.
3. An unsolicited status block transaction to the initiator. When USTIEn at 50h is 1 UnStEn
is automatically cleared.
4. When a unified transaction is used in the write request, a response packet is not
received.
4.2.2Reserved tLabel
The TSB43AA82A reserves the following specified tLabel and tCode combinations for the automated page table,
management ORB, and command ORB fetching. These should not be used when creating packets from the host.
TRANSMISSION FOR INTERNAL TRANSACTIONFIFO COMBINATION
tLabeltCodeTransmit FIFOReceive FIFO
01_xxxxAll request (see Note 5)DTFDRF
10_1000Block read request (see Note 6)MTQMRF
11_1xxxBlock read request (see Note 7)CTQCRF
NOTES: 5. Data transmission by DMA
6. Management ORB Auto Fetch
7. Command block ORB Auto Fetch
4−2
4.2.3Exception to the Rule
By intentionally controlling tLabel, the response of a request packet from the A TF can be received by the DRF. This
method can be used when the size of a response packet is larger than the size of the ARF. As shown below, a request
packet with tlabel 01_xxxx is transmitted from the ATF but received by the DRF.
PACKET INPUT THROUGH 70h to 78hFIFOs
tLabeltCodeTransmit FIFOReceive FIFO
01_xxxxRequest packetATFDRF
NOTE: Combinations other than that specified are not recommended.
4.3Asynchronous Transmit FIFO (ATF)
Asynchronous transmit refers to the use of the ATF interface. It is configurable in register 2Ch (ATF satus register).
To transmit packets, the 1394 asynchronous headers and the data are loaded into the A TF interface by the host. The
host accesses the ATF FIFO through registers 70h−78h with the appropriate tLabel and tCode described in
Section 4.2. The asynchronous header must fit the form described in Section 4.3.1.
4.3.1Generic Quadlet and Block Transmit
The quadlet-transmit format is shown in Figure 4−1. The first quadlet contains packet control information. The second
and third quadlets contain the 64-bit, quadlet-aligned address. The fourth quadlet is data used only for write requests
and read responses. For read requests and write responses, the quadlet data field is omitted.
11
0123456789
ReservedspdtLabelrttCodeprior
destination IDdestination_offset_high
0123456789
Figure 4−1. Generic Transmit Format of Packet With Quadlet Data
The block-transmit format is shown in Figure 4−2 and a description of each field is shown in Table 4−1. The first
quadlet contains packet-control information. The second quadlet contains the bus and node number of the destination
node, and the last 16 bits of the second quadlet and all of the third quadlet contain the 48-bit quadlet-aligned
destination offset address. The first 16 bits of the fourth quadlet contains the size of the data in the packet. The
remaining 16 bits of the fourth quadlet represent the extended_tCode field (see Table 6-10 of the IEEE 1394-1995
standard for more information on extended tCodes). The block data, if any, follows the extended_tCode.
Figure 4−2. Generic Transmit Format of Packet With Block Data
4−3
Table 4−1. Block-Transmit Format Descriptions
FIELD NAMEDESCRIPTION
spdThis field indicates the speed at which this packet is to be sent.
tLabelThis field is the transaction label, which is a unique tag for each outstanding transaction between two nodes. This is
rtThe retry code for this packet is:
tCodetCode is the transaction code for this packet. See Table 6-9 of IEEE 1394-1995 standard for more information.
priorThe priority level for this packet. The value of the priority bits must be zero.
destination IDThis is the concatenation of the 10-bit bus number and the 6-bit node number that forms the destination node address
destination_offset_high
destination_offset_low
quadlet dataFor write requests and read responses, this field holds the data to be transferred. For write responses and read
data_lengthThe number of bytes of data to be transmitted in the packet.
extended_tCodeThe block extended_tCode to be performed on the data in this packet. See Table 6-10 of the IEEE 1394-1995
block dataThe data to be sent. If dataLength is 0, no data should be written into the FIFO for this field. Regardless of the
00 = 100 Mbps
01 = 200 Mbps
10 = 400 Mbps
11 is undefined for this implementation.
used to pair up a response packet with its corresponding request packet. See Section 4.2 for more information.
00 = new
01 = retry_X
10 = retryA
11 = retryB.
of this packet.
The concatenation of these two fields addresses a quadlet in the destination node address space. This address must
be quadlet aligned (modulo 4). The upper four bits of the destination_offset_high field are used as the response code
for lock-response packets and the remaining bits are reserved.
requests, this field is not used and must not be written into the FIFO.
standard for more information.
destination or source alignment of the data, the first byte of the block must appear in byte 0 of the first quadlet.
4.3.2PHY Packet Common Format
The ATF is also used to transmit PHY configuration packets. The format of the transmitted PHY configuration packet
is shown in Figure 4−3 and a description of each field is shown in Table 4−2. The first quadlet is written to address
70h. The second quadlet is written to address 78h. The 00E0h in the first quadlet tells the link that this is the PHY
configuration packet. The 00E0h is then replaced with 0000h before the packet is transmitted to the PHY interface.
There is a possibility of a false header error on receipt of a PHY configuration packet. If the first 16 bits of a PHY
configuration packet match the destination identifier of a node (bus number and node number), the TSB43AA82A
issues a header error because the node misinterprets the PHY configuration packet as a data packet addressed to
the node.
Figure 4-3 is the PHY packet format. The following packet formats describe the PHY packet formats for the link-on,
ping, remote access, remote command, and resume packets.
XXThis field is the PHY configuration packet identifier. 00 = PHY configuration, 01 = link-on, 10 = self_ID, 11 = reserved
Root_IDThis field is the physical ID of the node to have its force_root bit set (only meaningful when R is set).
RWhen R i s set, the force_root bit of the node identified in root_ID is set and the force_root bit of all other nodes is cleared. When R
TWhen T is set, the PHY_CONFIGURATION.gap_count field of all the nodes is set to the value in the Gap_cnt field.
Gap_cntThis field contains the new value for PHY_CONFIGURATION.gap_count for all nodes. This value goes into effect immediately
A PHY configuration packet with R = 0 and T = 0 is reserved and is ignored when received.
is cleared, Root_ID is ignored.
upon receipt and remains valid after the next bus reset. After the second reset, Gap_cnt is set to 63h unless a new PHY
configuration packet is received.
4.3.2.1 Link-On Packet
Reception of the cable PHY packet, shown in Figure 4−4, causes a PH_EVENT.indication on LINK_ON. Link-on
packet definitions are given in Table 4−3.
11
0123456789
01PHY_ID000000000000000011100000
Logical inverse of first quadlet1111111111111111
FIELD NAMEDESCRIPTION
PHY_IDPhysical node identifier of the destination of this packet
The reception of the PING packet, shown in Figure 4−5, causes the node identified by the PHY_ID to transmit self_ID
packet(s) that reflect the current configuration and status of the PHY. Because of other actions, such as the receipt
of a PHY configuration packet, the self_ID packet transmitted may differ from that of the most recent self-identify
process. Field descriptions for the PING packet are shown in Table 4−4.
11
0123456789
00PHY_ID00Type(0)000000000011100000
Logical inverse of first quadlet1111111111111111
FIELD NAMEDESCRIPTION
PHY_IDPhysical node identifier of the destination of this packet.
TypeExtended PHY packet type
0 - indicates a PING packet
A PHY transmits a self-ID packet within the RESPONSE_TIME after the receipt of a PING packet.
The reception of the remote access packet, shown in Figure 4−6, causes the node identified by the PHY_ID to read
the selected PHY register and return a remote reply packet that contains the current value of the PHY register. Field
descriptions for the remote access packet are shown in Table 4−5.
11
0123456789
00PHY_ID00Type (1h or 5h)pageportReg1110Reserved
FIELD NAMEDESCRIPTION
PHY_IDPhysical node identifier of the destination of this packet
TypeExtended PHY packet type
1h - base register read
5h - paged register read
pageThis field corresponds to the Page_select field in the PHY registers. The register read behaves as if Page_select were set to this
value.
portThis field corresponds to the Port_select field in the PHY registers. The register read behaves as if Port_select were set to this
value.
RegThis field, in combination with page and port, specifies the PHY register. If Type indicates a read of the base PHY registers, Reg
directly addresses one of the first eight PHY registers. Otherwise the PHY register address is 10002 +Reg.
The reception of the remote command packet, shown in Figure 4−7, causes the node identified by the PHY_ID to
perform the specified command operation and return a remote confirmation packet. Field descriptions for the remote
command packet are shown in Table 4−6.
11
0123456789
00PHY_ID00Type (8h)000port0001110cmnd
FIELD NAMEDESCRIPTION
PHY_IDPhysical node identifier of the destination of this packet
TypeExtended PHY packet type
8h - indicates command packet
portThis field selects one of the PHY ports.
cmndCommand:
0: NOP
1: Transmit TX_DISABLE_NOTIFY, then disable port.
3: Reserved
2: Initiate suspend (i.e., become a suspend initiator).
The reception of the resume packet, shown in Figure 4−8, causes any node to resume operations for all PHY ports
that are both connected and suspended. This is equivalent to setting the resume variable TRUE for each of these
ports. The resume packet is a broadcast packet, there is no reply. Field descriptions for the resume packet are shown
in Table 4−7.
PHY_IDPhysical node identifier of the destination of this packet
TypeExtended PHY packet type
Fh - indicates resume packet
4.4Asynchronous Receive FIFO (ARF)
Asynchronous receive refers to the use of the ARF interface. It is configurable in register 30h (ARF status register).
The ARF receives the response of packets transmitted from the ATF. The ARF also receives request packets from
other nodes, except packets meant for the agent. The received packets are stored in ARF FIFO in the format
described below. The host accesses the packets in the ARF through register 80h.
4.4.1Generic Quadlet and Block Receive
The quadlet-receive format is shown in Figure 4−9. The first quadlet is a packet token and contains packet-control
information. The first 16 bits of the second quadlet contain the destination bus and node number, and the remaining
16 bits contain packet-control information. The first 16 bits of the third quadlet contain the bus and node number of
the source, and the unreserved 4 bits of the third quadlet contain packet-control information. The fifth quadlet contains
data that was used by write requests and read responses. For read requests and write responses, the quadlet data
field is omitted.
11
0123456789
statusReservedspdReservedack
destination IDtLabelrttCodeprior
source IDrCodeReserved
0123456789
10
10
Figure 4−9. Generic Receive Format of Packet With Quadlet Data
The block-receive format is shown in Figure 4−10 and field descriptions are shown in Table 4−8. The first quadlet is
a packet token and contains packet-control information. The first 16 bits of the second quadlet contain the bus and
node number of the destination node, and the last 16 bits contain packet-control information. The first 16 bits of the
third quadlet contain the bus and node number of the source node, and the last 16 bits of the third quadlet and all
of the fourth quadlet contain the 48-bit, quadlet-aligned destination offset address. All remaining quadlets contain
data that is used only for write requests and read responses. For block read requests and block write responses, the
data field is omitted.
Figure 4−10. Generic Receive Format of Packet With Block Data
Table 4−8. Generic Receive Format Descriptions
FIELD NAMEDESCRIPTION
status
spdThis field indicates the speed at which this packet is received. 00 = 100 Mbps, 01 = 200 Mbps, and 10 = 400 Mbps, and 11 is
ackThis field holds the acknowledge code sent by the receiver for this packet. (See Table 6-13 of the IEEE 1394-1995 standard.)
destination IDThis is the concatenation of the 10-bit bus number and the 6-bit node number that forms the node address to which this packet
tLabelThis field is the transaction label, which is a unique tag for each outstanding transaction between two nodes. This is used to
rtThe retry code for this packet is as follows:
tCodetCode is the transaction code for this packet. (See Table 6-9 of the IEEE 1394-1995 standard.)
priorThe priority level for this packet. The TSB43AA82A is a cable implementation, the value of these bits must be zero.
source IDThis is the concatenation of the 10-bit bus number and the 6-bit node number that forms the node address of the sender of this
rCodeThis field is the response code for this packet. (See Table 6-11 of the IEEE 1394-1995 standard.)
Status of the received packet sent to the ARF.
0hAn ack_complete was returned to the request packet. The transaction is terminated by SplTrEn (08h) = 1 when an
ack_pnd is received for a request packet sent by the ATF.
1hThe packet, which does not require any acknowledgement, was transmitted.
2hAn ack (except for ack_complete, ack_busy_X, and ack_pnd) was returned in response to the request packet.
Ack_pnd was received for a response packet transmitted from the ATF.
3hAn ack was not returned in response to the request packet acknowledge received, was too long or too short, or
acknowledge parity error.
4hNo next packet on CTQ. The fetched packet contains an invalid next ORB.
5hThe fetched packet contained a next ORB pointer and was sent to CTQ.
6hReserved
7hRetry time out. The retry count exceeded Retry_limit value.
8hQuadlet receive: The response packet was received but rCode is not complete.
Block receive: The response packet was received but rCode is not complete.
CTQ: There is no request packet in the CTQ. The received packet contains an invalid NextORB or CnxFtEn = 0.
MTQ: Response packet
ATF: Response packet by split transaction request
9hRequest packet for getting NextORB is sent to CTQ.
AhThe response packet was received but rCode is not complete.
Bh−Fh Reserved
undefined for this implementation.
is being sent.
pair up a response packet with its corresponding request packet.
00 = new
01 = retry_X
10 = retryA
11 = retryB.
packet.
4−8
Table 4-8. Generic Receive Format Descriptions (Continued)
FIELD NAMEDESCRIPTION
quadlet dataFor write requests and read responses, this field holds the transferred data. For write responses and read requests, this field
data_lengthFor write requests, read responses, and locks, this field indicates the number of bytes being transferred. For read requests,
extended_tCodeThe block extended_tCode to be performed on the data in this packet. See Table 6-10 of the IEEE 1394-1995 standard.
block dataFor write requests and read responses, this field holds the transferred data. For write responses and read requests, this field
is not present.
this field indicates the number of bytes of data to be read. A write-response packet does not use this field.
Note: The number of bytes does not include the header, only the bytes of block data.
is not present.
4.5Management and Command FIFOs (MTQ/CTQ and MRF/CRF)
MTQ/CTQ transmit refers to the use of the MTQ/CTQ interface.Packet transmission with MTQ/CTQ appears with
the format shown in Section 4.5.1. As with other packet transmissions, it is accessed through the CFR (70h-78h).
The tLabel and the tCode attached to a packet direct each request and response packet to the appropriate FIFO. A
response packet needs to have the same tLabel as its request packet. With this rule, TSB43AA82A assigns the
response packet from the initiator to each receive FIFO.
4.5.1MTQ/CTQ Format
Packets transmitted from the MTQ/CTQ are in the same format as a read request block transmit to the ATF. However,
as stated in Section 4.2.1, this must be a block read request with the specified tLabel. The block-transmit format is
shown in Figure 4−11 and field descriptions are shown in Table 4−9. The first quadlet contains packet control
information. The second and third quadlets contain the 64-bit, quadlet-aligned address. The data_length of a packet
transmitted from MTQ should be set to 32 bytes.
11
0123456789
ReservedspdtLabelrttCodeprior
destination IDdestination_offset_high
data_lengthextended_tCode
0123456789
Figure 4−11. MTQ/CTQ Transmission Block Read Packet Format
spdThis field indicates the speed at which this packet is to be sent. 00 = 100 Mbps, 01 = 200 Mbps, and 10 = 400 Mbps,
tLabelThis field is the transaction label, which is a unique tag for each outstanding transaction between two nodes. This is
rtThe retry code for this packet is 00 = new, 01 = retry_X, 10 = retryA, and 11 = retryB.
tCodetCode is the transaction code for this packet (see Table 6-9 of IEEE 1394-1995 standard).
priorThe priority level for this packet. For cable implementation, the value of the bits must be zero. For backplane
destination IDThis is the concatenation of the 10-bit bus number and the 6-bit node number that forms the node address to which
destination_offset_high,
destination_offset_low
data_lengthThe number of bytes of data to be transmitted in the packet. The data_length of packet transmitted from MTQ must be
extended_tCodeThe block extended_tCode to be performed on the data in this packet. See Table 6-10 of the IEEE 1394-1995
and 11 is undefined for this implementation.
used to pair up a response packet with its corresponding request packet. When using the MTQ, tLabel must be set to
10_xxxx. When using the CTQ, tLabel must be set to 11_xxxx.
implementation, see clause 5.4.1.3 and 5.4.2.1 of the IEEE 1394-1995 standard.
this packet is being sent.
The concatenation of these two fields addresses a quadlet in the destination node address space. This address must
be quadlet aligned (modulo 4). The upper four bits of the destination_offset_high field are used as the response code
for lock-response packets and the remaining bits are reserved.
set to 32 bytes.
standard.
4−9
4.5.2MRF/CRF Short Format
Setting MShtFmt and CShtFmt on ORB fetch control (44h) records the ORB in shortened format. This enables the
FIFO to b e used ef fectively and speeds up read access. The MRF/CRF received short format is shown in Figure 4−12
The first quadlet contains packet-control information. The first 16 bits of the second quadlet contain the bus and node
number of source, and the last 16 bits of the second quadlet and all of the third quadlet contain the 48-bit,
quadlet-aligned ORB offset address. All remaining quadlets contain data that is used only for write requests and read
responses. For block read requests and block write responses, the data field is omitted. The packets in the MRF/CRF
registers are accessed through the MRF read register at 84h and CRF read register at 88h.
spdThis field indicates the speed at which this packet is to be sent. 00 = 100 Mbps, 01 = 200 Mbps, and 10 = 400 Mbps,
next_tLabelLink command automatically generates request packets to fetch the next command block ORB. This is the tLabel for
ackThis field holds the acknowledge sent by the receiver for this packet. (Refer to Table 6-13 of the IEEE 1394-1995
destination IDThis is the concatenation of the 10-bit bus number and the 6-bit node number that forms the node address to which
tLabelThis field is the transaction label, which is a unique tag for each outstanding transaction between two nodes. This is
rtThe retry code for this packet is 00 = new, 01 = retry_X, 10 = retryA, and 11 = retryB.
tCodetCode is the transaction code for this packet (see Table 6-9 of the IEEE 1394-1995 standard).
priorThe priority level for this packet. For cable implementation, the value of the bits must be zero. For backplane
source IDThis is the node ID of the sender of this packet.
rCodeThis field is the response code for this packet. (See Table 6-11 of the IEEE 1394-1995 standard.)
data_lengthThis field is the number of bytes of data to be transmitted in the packet.
extended_tCodeThis field is the block extended_tCode to be performed on the data in this packet. See Table 6-10 of the
ORBThis is ORB pointer data that was fetched from the initiator.
ORB_offset_high
ORB_offset_low
Status of the received packet.
0hack_comp was returned to the request packet.
1hThe packet which does not require any acknowledgement was transmitted.
2hThe acknowledgement except ack_comp, ack_busy_X and ack_pnd was returned in response to the request
packet.
3hAck was not returned in response to the request packet.
4hDoorbell was rung and the response packet was received. The packet is not queued to fetch the next command
block ORB.
5hDoorbell was rung and the response packet was received. The packet is queued to fetch the next command block
ORB.
6hReserved
7hThe request packet was transmitted Retry_Limit times.
8hORBPointer was written and the response packet was received. The packet is not queued to fetch the next
command block because the next_ORB field of the command block ORB is null or CnxFtEn (44h) is 0.
9hORBPointer was written and the response packet was received. The packet is queued to fetch the next command
block ORB.
AhThe response packet was received but rCode is not complete.
BhThe response packet was not received in Split_Time.
ChThe request packet was removed because of a bus reset.
DhThe request packet was removed because of RstTr or DTFClr at 90h.
Eh−Fh Reserved
and 11 is undefined for this implementation.
the next packet. When the request packet is not automatically generated, next_tLabel is 00 0000b.
Note: next_tLabel is only for the CRF.
standard).
this packet is being sent.
used to pair up a response packet with its corresponding request packet.
implementation, refer to clauses 5.4.1.3 and 5.4.2.1 of the IEEE 1394-1995 standard.
IEEE 1394-1995 standard.
These fields are the ORB destination offset address that was fetched from the initiator.
4−11
4−12
5 ConfigROM and LOG FIFOs (Total 126 Quadlets)
5.1Setting the ConfigROM and LOG FIFO Size
AutoResponse ConfigROM areaadjustable
Page table buffer for DTFadjustable
Page table buffer for DRFadjustable
Status block buffer for DTFadjustable
Status block buffer for DRFadjustable
Log data areaadjustable
7Unit directory CRC
12hUnit spec ID (00 609Eh)
13hUnit sw version (01 0483h)
38hCommand set spec ID
39hCommand_set
54hManagement_Agent_Offset address in quadlets (00 4000h)
Figure 5−1. Example ConfigROM Base Structure (Reference SBP-2 Draft)
5−1
ConfigROM Size Set
Auto Response
ConfigROM Size Set
ROM Access Mode
(XLOG = 1)
Data Write
(FCh)
LOG Access Mode
(XLOG = 0)
ROMValid
Figure 5−2. ConfigROM Setup
Figure 5-2 shows a basic flow diagram for the host to set up the ConfigROM. The following steps provide additional
description for the figure:
1.Once power is on, the host writes the number of bytes to be written in ConfigROM. The value between the
ConfigROM start address (FFFF F000 0400h) and the AR_ConfigROM_Size is subject for the ConfigROM
AutoResponse. If the content of the ConfigROM does not exceed 504 bytes (the maximum size for
AR_ConfigROM_Size), the host writes the value of AR_ConfigROM_Size to ConfigROM_Size. If the
ConfigROM content is more than 504 bytes, the host writes the total ConfigROM size into ConfigROM_Size.
(Note: ConfigROM_Size does not exceed 1024 Bytes). As stated previously , the host needs to respond to
requests for the ConfigROM larger than AR_ConfigROM_Size but less than the Config_ROM_Size.
2.Next, the host loads the ConfigROM to TSB43AA82A through the Log/ROM control register (F8h) and Log
ROM data register (FCh). First, the XLOG bit is set to make LogData accessible to ROM and 400h is written
into the ROMAddr, which writes data for ConfigROM address FFFF F000 0400h into ROMAccess.
3.Repeated writes to the Log ROM data register at FCh increment the address automatically and write the
ConfigROM data in order. To verify the data, the host writes the start address to ROMAddr, then reads
ROMAccess.
4.Finally, the host clears the XLOG bit on the Log/ROM control register (F8h), and at the same time, sets
ROMValid(F8h) to indicate the ConfigROM is valid. If ROMValid is not set, the device responds with an
ack_tardy to a ConfigROM read request.
5.3Transaction LOG
The host uses LOG to keep track of automatic transactions. To record the LOG, set the XLOG bit in the Log/ROM
control register (F8h) for a desired transaction to be stored in the LOG FIFO. See Section 3.4.48 for a detailed
description of each Enable bit and recorded log. The LOG may be read from the log data register at FCh. With
ShortLog format, the data section of a packet is omitted, and only the header and trailer are logged. LogAvail shows
the number of quadlets of currently recorded log. Once LOG FIFO is filled with logs, it overwrites older logs. Therefore,
if LogAvail is the same size as LOG FIFO, LOG FIFO is full and only newer logs can be viewed.
5−2
6 Transaction Timer/Manager (TrMgr)
The timer manages all transmissions from transmitting FIFOs. Once the host writes packet data into a FIFO, no
control is needed until the transaction ends.
01 234 567 89
Transaction
timer
60h
64h
68h
6Ch
control
Transaction
timer
status1
Transaction
timer
status2
Transaction
timer
status3
DTTxEd
tCodespdtLabelRetry_CounterSplitTrTimer
01 234 567 89
DRTxEd
ATTxEd
MTTxEd
CTTxEd
ARTxEd
destination IDdestination_offset_hi
6.1Confirm Transaction End
Transaction end can be confirmed by checking DTTxEd, DRTxEd, ATTxEd, MTTxEd, CTTxEd, and ARTxEd in the
transaction timer control (60h). Each bit shows the status of the timer; a low bit indicates that a transaction is still in
progress.
The end state can be confirmed by checking the XXErr bit of each timer status. The XXErr bit indicates the previous
transaction of this timer has ended in error. Additionally, the cause of the error can be identified by checking the status
of the response packet stored in the response FIFO.
NOTE: The response FIFO always stores a response packet with its status. Even when no
response packet was received due to BusyRetry or SplitTimeout, a dummy response packet
is stored with the status. The only exceptions are transactions erased by the host through an
abort or bus reset.
6.3Confirm Status of Ongoing Transaction
The XXRtry bit of each status shows that a transaction is in progress. When a Rtry bit is not set and XXEd has not
been cleared, it is in split-transaction.
By checking transaction timer control register (60h), the detailed condition of a transaction can be confirmed. The
number on each timer, shown Table 6-1, is used to confirm transaction detail. The following is an example of checking
transaction detail:
To check detail status of CTQ, first write the appropriate timer number into TimrNO in the transaction timer
control register (60h). In this case number is 4 for CTQ. Then, check the transaction timer status registers
(64h−6Ch). This shows the corresponding address, tLabel, speed and retry counter. Other timers can be
checked by the same method.
6−1
6.4Abort Transaction
The method below can be used to abort ongoing transaction:
Write each timer number into T imrNO in the transaction timer control register (60h), and set TxAbrt. This will
abort the target transaction.
In the same way, setting HoldRtr will suspend the targeted transaction, and setting RlsRtr will restart the
suspended transaction.
This section describes the internal command block fetch agent action for various accesses by four initiators.
Command block agent registers are located in the CSR address set by the command agent base offset (4Ch) and
the starting address of each command block agent is separated by a 20h offset.
Because the 1394 address space is in bytes, the command agent base offset address must be converted from
quadlets to bytes. To convert the command agent base offset address from quadlets to bytes, the command agent
offset address is multiplied by 4h.
Offset Addressed in Bytes
= Command Agent Offset
Address at 4Ch * 4h
Offset + 04h
Offset + 08h
Offset + 010h
Offset + 014h
Offset + 018h
Offset + 20h
AGENT_STATE Register
AGENT_RESET Register
ORB_POINTER Register
UNSOLICITED_STATE_ENABLE Register
Quadlet
(2 Quadlets)
Agent 0
DOORBELL Register
Reserved
Offset + 40h
Offset + 60h
Offset + 80h
Agent 1
Agent 2
Agent 3
Figure 7−1. Command Agent Registers
7−1
7.1.2Internal Agent Transaction for Write Request From Initiator
RESET
ACTIVE
SUSPENDED
DEAD
When each active agent register receives a write request, the internal agent operates with the behavior described
in Table 7−1. This table assumes that StErPkt at 08h = 0, ErrResp at 08h = 0 and AckPnd at 08h = 0.
Table 7−1. Agent Transaction for Initiator Write Request
STATEREGISTER
RESET
ACTIVE
SUSPENDED
DEAD
Any stateReserved agent areaack_PendingStored in ARF
AGENT_STATEack_type_errorNo action
AGENT_RESETack_completeNo action
ORB_POINTERack_complete1. ORB pointer registers 1 and 2 are updated (54h, 58h).
DOORBELLack_completeThe agent’s DrBll at 5Ch is set to 1.
UNSOLICITED_STATE_ENABLEack_completeThe agent’s UnStEn at 5Ch is set to 1.
AGENT_STATEack_type_errorNo action
AGENT_RESETack_completeReset agent state
ORB_POINTERack_conflict_errorNo action
DOORBELLack_completeThe agent’s DrBll at 5Ch is set to 1.
UNSOLICITED_STATE_ENABLEack_completeThe agent’s UnStEn at 5Ch is set to 1.
AGENT_STATEack_type_errorNo action
AGENT_RESETack_completeReset agent state
ORB_POINTERack_complete1. ORB pointer registers 1 and 2 are updated (54h, 58h).
DOORBELLack_complete1. The agent’s DrBll at 5Ch is set to 1.
UNSOLICITED_STATE_ENABLEack_completeThe agent’s UnStEn at 5Ch is set to 1.
AGENT_STATEack_type_errorNo action
AGENT_RESETack_completeReset agent state
ORB_POINTERack_completeNo action
DOORBELLack_completeThe agent’s DrBll at 5Ch is set to 1.
UNSOLICITED_STATE_ENABLEack_completeThe agent’s UnStEn at 5Ch is set to 1.
RESPONSE TO
INITIATOR
TSB43AA82A ACTIONS
2. Read request packet is loaded into the CTQ.
2. Read request packet is loaded into the CTQ.
2. If DrBFtEn (ORB fetch control at 44h) is set to 1, the
read request packet is loaded into the CTQ again.
A successful write to a command agent register returns an acknowledge that depends on Ackpnd at 08h, bit 18.
Table 7−2 shows the command agent response to a successful write.
The AGENT_STATE register (see Section 7.1.1) is a read-only register. A write request to this register from the
initiator results in an ack_type_error . The error response of the TSB43AA82A depends on the settings of StErPkt and
ErrResp (08h bits 15 and 14). Table 7−3 shows command agent error responses.
StErPktErrRespAck TO INITIATORRESPONSE PACKET TO INITIATOR AND OTHER ACTIONS
01ack_completeReceived packet is stored in the ARF.
10ack_pendingThe packet which has resp_type_error or resp_conflict_error is sent to the initiator.
00ack_type_error or
ack_conflict_error
No response packet is sent.
7.1.3Internal Agent Transaction for Read Request From Initiator
When each active agent register receives a read request, the internal agent operates with the behavior described
in Table 7−4. This table assumes that StErPkt at 08h = 0, ErrResp at 08h = 0. The AGENT_RESET, DOORBELL,
and UNSOLICITED_STATE_ENABLE registers (see Section 7.1.1) are write only registers. A read request to these
registers from the initiator results in an ack_type_error. The error response of the TSB43AA82A depends on the
settings of StErPkt and ErrResp. Table 7-3 shows command agent error responses.
Table 7−4. Agent Transaction for Read Request From Initiator
CagNRdy, where N is the agent 0−3, of the ORB fetch control register (44h) is set to 1 when each agent is ready to
fetch the command block ORB. When the host writes a 1 to CagNRdy, the read request is loaded to CTQ and
CagNRdy is set to 0.
7.1.5Agent Behavior to DOORBELL Register Write
When the initiator sends an 4-byte block write to the DOORBELL register (see Section 7.1.1), the ORB fetch operation
is determined by the way the DrBlSnp and DtBFtEn at 44h bits 20 and 21 are set. Table 7-5 shows doorbell functions
depending on DrBlSnp and DtBFtEn.
Table 7−5. Doorbell Special Functions
DrBlSnpDrBFtEnORB FETCH OPERATION WHEN DOORBELL IS WRITTEN
01The command block agent automatically fetches only the next_ORB field of the command ORB block and stores the
11The command block agent automatically fetches the entire command ORB block and stores the data into the CRF.
X0AgentWr at 0Ch occurs and the agent’s DrBll at 5Ch is set to 1. The command ORB block is not fetched.
data into the CRF. DrBll at 5Ch is then set to 1.
DrBll at 5Ch is then set to 1.
7.2Management Transactions
The initiator begins a management transaction with an 8-byte block write request to the management agent register
defined at 48h and the ConfigROM. This 8-byte write request indicates the address of the management ORB in the
initiator. Then, the TSB43AA82A automatically fetches the management ORB with a 32-byte read request to the
address. The management ORB is a response from the initiator to this request. When the response is received,
MOREnd on the interrupt register (0Ch) is set indicating the end of the transaction to the host. The host reads the
response packet MRFRead at 84h.
Send Each Response Packet via ATF Successfully (Block Write Request)
For Login
For Query Login
For Reconnect
For Logout
: Select Agent Number
: Set Initiator’s Node_ID and CAgVld to 1
: Select Agent Number
: Verify EUI-64 of Initiator Requesting the Login
Reestablishment Matches the EUI-64 Previously Saved
: Set AGENT_RESET to 1
: Set CAgVld to 0
7.2.2Login
The following is a standard login example. The firmware analyzes the content of the management ORB. If the
management ORB is login, the initiator EUI64 is read by two quadlet read requests based on SBP-2 protocol. Then
the TSB43AA82A firmware sends back the base address of the command agent defined in 4Ch through the ATF as
a login response to the address indicated by the initiator 8-byte block write request. A typical login process is shown
in Figure 7−2.
7−4
Prerequisites:
M_Agent_Offset is set
MAgtVld (44h) is ON
AgntWr_Int
MOAF_Agent and MTQ
MRF
MOREnd_Int
Host Reads Data Out MRF
Host and ATF
Quadlet Read Request of
the EUI-64 (hi)
Response Received in the
ARF. ATFEnd_int. Host Reads
ARF_Data
Host and ATF
Quadlet Read Request of
the EUI-64 (lo)
Target
8-Byte Block Write Request
Management_Agent_Register
32-Byte Block Read Request
Address of MANAGEMENT_ORB
32-Byte Block Read Response
LOGIN_ORB
Quadlet Read Request
FFFF F000 040Ch
Quadlet Read Response
Quadlet Read Request
FFFF F000 0410h
Initiator
Notify that MANAGEMENT_ORB
is Ready. The Contents of Packet Is
the Address of MANAGEMENT_ORB.
MANAGEMENT_ORB Response.
The Packet Is LOGIN_ORB.
Response EUI-64 (hi)
Contents of Packet Is vendor_ID
and chip_ID_hi.
Response Received in the
ARF. ATFEnd_int. Host Reads
The Login Response and
Status Is Sent Through the
†
After LOGIN is processed, the host processes the correct command agents.
ARF_Data
Host and ATF
ATF MAgtBsy = 0
Quadlet Read Response
12-Byte Block Write Request
Login Response
Status Block
†
Response EUI-64 (lo)
Contents of Packet Is vendor_ID
and chip_ID_hi.
Figure 7−2. Typical Login Process
•Write to the initiator node_ID, which is managed by the command_agent, through the agent control register
(50h). W rite the appropriate agent number into AgtNmb, log in Node_ID into NodeID, and WrNdID. The host
has the ability to automatically respond with a conflict error to accesses from initiators that have not correctly
logged in.
•Activate the COAF_agent by setting CAg(n)Vld on the ORB fetch control register (44h) for initiator access.
•All initiators can send QUERY LOGIN ORBs at any time to check status of an ongoing LOGIN. This process
is the same as LOGIN except there is no need to check EUI-64. Other management ORBs are processed
the same way.
Figure 7-2 shows an example of the process.
7−5
Target
Initiator
AgntWr_Int
MOAF_Agent and MTQ
Host Reads Data Out MRF
†
The length of the query response depends on the number of logins.
MOREnd_Int
Host and ATF
MAgtBsy = 0
MRF
8-Byte Block Write Request
Management_Agent_Register
32-Byte Block Read Request
Address of MANAGEMENT_ORB
32-Byte Block Read Response
Query LOGIN_ORB
Block Write Request
Query Response
Status Block
†
Notify that MANAGEMENT_ORB
Is Ready. The Contents of Packet is
the Address of MANAGEMENT_ORB.
MANAGEMENT_ORB Response.
The Contents of Packet is Query
LOGIN_ORB.
Figure 7−3. Typical Management ORB Transaction
7.2.3Logout
Logout is processed as a management ORB transaction, as shown in Figure 7−4.
AgntWr_Int
MOAF_Agent and MTQ
Response is Received in
MRF.
MOREnd_Int
Host Reads the MRF_Data.
MAgtBsy = 0
The Host Checks login ID, source ID, and Login_Descriptor;
if Matched, the Host Disables Command_Agent and Aborts All Tasks for This Login.
Target
8-Byte Block Write Request
Management_Agent_Register
32-Byte Block Read Request
Address of MANAGEMENT_ORB
32-Byte Block Read Response
LOGOUT_ORB
Status Block
Figure 7−4. Logout Process
Initiator
Notify that MANAGEMENT_ORB
Is Ready. The Contents of Packet is
the Address of MANAGEMENT_ORB.
MANAGEMENT_ORB Response.
The Contents of Packet Is
LOGOUT_ORB.
Set CAgXrdy to 1 When Agent X Is Ready to Fetch the Next Command Block ORB
7.3.2SBP-2/Linked Command ORB Procedure
TSB43AA82A has a built-in command ORB fetch agent state machine, which processes up to four agents (LOGINs)
within the hardware. This hardware engine fetches command ORBs, and autoresponds to AGENT_STATE register,
ORB_POINTER register, DOORBELL register, and UNSOLICITED_STATUS_ENABLE register requests and
updates. Commands and linked commands are fetched through the command ORB fetch agent state. This section
describes examples of how the TSB43AA82A processes a linked command.
7.3.2.1 Link FETCH
At login, the target provides the ORB pointer register address to the initiator. The initiator indicates to the target that
a command request is there for it with an 8-byte block write to the ORB_POINTER register (see Section 7.1.1). The
TSB43AA82A automatically sends a block read request for the command agent ORB through the CTQ. If the address
7−7
of the ORB in next_ORB or ORB_offset is a dummy, agent state of aimed agent is suspended and no request is
transmitted. The size of the block read request is defined by the logical unit characteristics of the target ConfigROM.
The host needs to keep this size and the CORB_size of ORB fetch control register (44h) consistent. For a SCSI
device, this is 8 quadlets. Figure 7-4 shows a typical link fetch.
After TSB43AA82A sends the block read request and receives its block read response, COREnd on Interrupt (0Ch)
is set to 1 to inform the host.
Prerequisites:
CAgVld (44h) is ON
AgntWr_Int
CAgQRdy = 1
COAF_Agent and CTQ
CRF
COREnd_Int
Host Reads Out CRF
CAgQRdy = 1
COAF_Agent and CTQ
CRF
COREnd_Int
Target
8-Byte Block Write Request
ORB_POINTER Register
Block Read Request
Command Block ORB Offset Address
Block Read Response
Command ORB
Block Read Request
Next ORB Address
Block Read Response
Command ORB
.
.
.
(Repeat Until the End of Link)
Status Block Write
.
.
.
Initiator
Notify that MANAGEMENT_ORB
is Ready. The Contents of Packet is
Command Block ORB Offset Address.
Command ORB Response.
Contents of Packet is Linked
Command ORB.
Command ORB Response.
Contents of Packet is Linked
Command ORB.
Figure 7−5. Typical Link Fetch
7.3.2.2 Suspend Link FETCH
To suspend the command agent, clear the CnxFtEn bit in ORB fetch control register (44h). This turns off the command
agent autoresponse to a received command ORB. The received ORB packet is stored in the CRF without sending
a request, even with an effective link address. The process to reconnect a fetch is explained in Section 7.3.2.6.
The timer transmits after it confirms that available free space in the CFR is large enough to store a response to its
read request. Thus the host can control the transmit interval by preadjusting the CFR size and reading from the CFR.
7−8
7.3.2.3 Link Abort and DEAD State
The host can change the command agent to the DEAD state. For example, when a task is aborted for some reason,
the command agent changes to a DEAD state. For more details, please refer to the SBP-2 standard. Setting Dead(n)
in the agent status register (5Ch) changes the state of the command agent into a DEAD state. Read requests
addressed to agent state from the initiator are automatically responded to with a DEAD state.
Quadlet write requests to the AGENT_RESET register (see Section 7.1.1) by the initiator allow the command agent
to recover from a DEAD state. This resets the command agent and changes the state back to IDLE.
7.3.2.4 SBP-2/Doorbell
The transaction for a write to the DOORBELL register (see Section 7.1.1) is explained below:
The TSB43AA82A agent is in suspended state when the ORB address shown in next_ORB or ORB_offset
shows dummy ORB (FFFF FFFF FFFF FFFFh). The initiator activates the command agent by transmitting
a quadlet write request to the DOORBELL register (see Section 7.1.1). When the quadlet write request is
received at the DOORBELL register by the command agent, DrBell(n) in the agent status register (5Ch) is
set to 1. When necessary, the host sets DrBClr(n) to 1 to clear DrBell(n). Figure 7−6 shows a typical
suspended and doorbell request.
NOTE: The host cannot activate a suspended agent.
AgntWr_Int
DrBllx
COAF_Agent and CTQ
Command Agent
No Packet in CRF
CAgXRdy = 1 (When
Next ORB Exists)
CRF
COREnd_Int
Clear DOORBELL (See Note 1)
Host Reads Out CRF
Target
Quadlet Write Request
DOORBELL Register
Block Read Request
Dummy ORB Offset Address
Block Read Response
Dummy ORB
Block Read Request
Command Block ORB Offset Address
Command ORB
Initiator
Notify Command ORB has
Effective Next ORB Address.
Dummy ORB Response.
Contents of Packet Is Linked
Command ORB.
Command ORB Response.
Contents of Packet Is Linked
Command ORB.
Status Block
NOTE 1: The DOORBELL register can be cleared by setting DrBClr(n).
Figure 7−6. SUSPENDED and DOORBELL Request by Dummy ORB
7−9
7.3.2.5 Status Block Transmission
After the completion of an ORB command transaction, the target may need to transmit a status block. The status block
is sent with the ATF.
7.3.2.6 Reconnection Process
A 1394 bus reset clears all FIFOs and agents. CAg(n)Vld in the ORB fetch control register (44h) for the command
agent is cleared also. Any request to the command block agent register is rejected and responded to with an error.
(The requests should not be made before reconnection.)
The initiator starts the reconnection process after a bus reset. Reconnection is the same process as LOGIN. The host
needs to check EUI-64 to confirm reconnection feasibility. Refer to the SBP-2 standard for details.
If confirmed, the host sets CAg(n)Vld and restarts receiving requests to the command block agent register.
7.3.2.7 Unsolicited Status Transmission Process
When the initiator can receive an unsolicited status, the target, if necessary, can transmit an unsolicited status. The
initiator notifies the target that an unsolicited status is receivable by transmitting a quadlet write request to
UNSOLICITED_STATUS_ENABLE on the command block agent register.
When the target receives a quadlet write request for UNSOLICITED_STATUS_ENABLE from the initiator, UnStEn(n)
in the agent status register (5Ch) is set. If necessary, the host transmits unsolicited status with the ATF. If the host
transmits this with a six bit tLabel that is defined as 111 + AgtNmb (2 bits) + X, where X is 0 or 1 (UnStIEn at 50h = 1),
UnStEn(n) is cleared at the completion of transmission. Clearing USTlEn in the agent control register (50h) before
transmitting unsolicited status with the defined tLabel will prevent UnSrEn(n) from being cleared. Figure 7−7 shows
a typical UNSOLICITED_STATUS_ENABLE.
Target
COAF_Agent
No Packet in CRF
Host Needs to Send
UNSOLICITED_STATUS_ENABLE
Host and ATF
tLabel = 111xxx
UNSOLICITED_STATUS_ENABLE Register
UNSOLICITED_STATUS_ENABLE
Figure 7−7. UNSOLICITED_STATUS_ENABLE
Quadlet Write Request
Status_FIFO
Initiator
Notify That
UNSOLICITED_STATUS_ENABLE
Is Ready to Be Received.
7−10
8 BD FIFOs (Total 1182 Quadlets)
The bulky data FIFOs consist of the DTF (data transmit FIFO) and the DRF (data receive FIFO). These FIFOs are
primarily used for large data transfers through the bulky interface, but can be accessed by the host.
If the auto header insertion mode (DTHdIs = 1 at 90h, bit 24) is selected, the packet payload is written into the DMA
data transmit FIFO (DTF). If this mode is not selected, transmission data including header is written to the DTF.
Considering this, set necessary packet quadlet size for DTF_Size on DTF/DRF size (98h).
After DMA finishes writing one packet of data, it starts a packet transmission request on 1394 bus. For efficiency, it
is recommended that DTF_Size be set to more than double the data size of one request packet. This enables
multiplex packet transmission time and transmission data writing time.
8.1.2DRF
The complete packet, including the header and trailer of the response packet is written in the data response FIFO
(DRF). This is the same when the response header strip mode is used. Thus, DRF_Size (quadlet) in DTF/DRF size
(98h) needs to be larger than the response header and trailer.
8.2DTF/DRF Packet Format
The data formats for the transmission and reception of data through the DMA bulky interface are shown in the
following sections. The transmit formats describe the expected organization of data presented to the TSB43AA82A
at the DMA bulky interface. The receive formats describe the expected organization of data that the TSB43AA82A
presents to the DMA bulky interface.
8.2.1DRF Packet Format
The DRF packet format shown in Figure 8−1 describes the data format of the packet received at the DMA bulky
interface. The first quadlet contains the status of the received packet. The first 16 bits of the second quadlet contain
the destination bus and node number, the remaining 16-bits contain packet-control information. The first 16 bits of
the second quadlet contain the bus and node number of the destination node, and the last 16 bits contain packet
control information. The first 16 bits of the third quadlet contain the bus and node number of the source node. The
first 16 bits of the fifth quadlet contain the length of the data and the last 16-bits contain the extended tCodes. All
remaining quadlets contain data that is used only for write requests and read responses. For block read requests and
block write responses, the data field is omitted. Table 8-1 shows a description of each field.
The received packet goes into the DRF with each status.
0hThe request block transaction from the DRF completed successfully.
1hAn ack_pending was received and the transaction is a split transaction.
2hThe acknowledgement except ack_complete, ack_busy_X and ack_pending was returned inm response to the
request packet.
3hReserved
4hThe transaction was stopped because of a page table fetch problem.
5h−6h Reserved
7hThe request packet was transmitted Retry_Limit times.
8h−9h Reserved
AhThe response packet was received but the rCode is not complete.
BhThe response packet was not received in Split_Time.
ChThe request packet was terminated because of a bus reset.
DhThe request packet was removed because of RstTr or DTFClr at 90h.
Eh−Fh Reserved
spd
ackThis field holds the acknowledge sent by the receiver for this packet. (See Table 6-13 of the IEEE 1394-1995 standard).
destination ID
tLabel
rtThe retry code for this packet is 00 = new, 01 = retry_X, 10 = retryA, and 11 = retryB.
tCodetCode is the transaction code for this packet. (See Table 6-9 of the IEEE 1394-1995 standard).
prior
source ID
rCodeThis field is the response code for this packet. (See Table 6-11 of the IEEE 1394-1995 standard.)
data_length
extended_tCodeThe block extended_tCode to be performed on the data in this packet. See Table 6-11 of the IEEE 1394-1995 standard.
block data
This field indicates the speed at which this packet is to be sent. 00 = 100 Mbps, 01 = 200 Mbps, and 10 = 400 Mbps, and 1 1 is
undefined for this implementation.
This is the concatenation of the 10-bit bus number and the 6-bit node number that forms the node address to which this
packet is being sent.
This field is the transaction label, which is a unique tag for each outstanding transaction between two nodes. This is used to
pair up a response packet with its corresponding request packet.
The priority level for this packet. For cable implementation, the value of the bits must be zero. For backplane implementation,
see clauses 5.4.1.3 and 5.4.2.1 of the IEEE 1394-1995 standard.
This is the concatenation of the 10-bit bus number and the 6-bit node number that forms the node address of the sender of
this packet.
For write requests, read responses, and locks, this field indicates the number of bytes being transferred. For read requests,
this field indicates the number of bytes of data to be read. A write-response packet does not use this field. Note that the
number of bytes does not include the header, only the bytes of block data.
For write requests and read responses, this field holds the transferred data. For write responses and read requests, this field
is not present.
8.2.2DTF Packet Format
The DTF packet format shown in Figure 8−2 describes the data format of the packet transmitted from the bulky data
interface. To transmit packets through the host, the 1394 headers and the data are loaded into the DTF interface
through registers A4h−A8h by the host or bulky data interface. The first quadlet contains packet control information.
The second quadlet contains the bus and node number of the destination node, and the last 16 bits of the second
quadlet and the third quadlet contain the 48-bit quadlet-aligned destination offset address. The first 16 bits of the
fourth quadlet contain the size of the data in the packet. The remaining 16 bits of the fourth quadlet represent the
extended_tCode field. (See Table 6-10 of the IEEE 1394-1995
The block data, if any, follows the extended_tCode. Table 8−2 shows a description of each field.
1
IEEE Std 1394-1395, IEEE Standard for a High Performance Serial Bus
8−2
1
standard for more information on extended_tCodes.)
spdThis field indicates the speed at which this packet is to be sent. 00 = 100 Mbps, 01 = 200 Mbps, and 10 = 400 Mbps,
tLabelThis field is the transaction label, which is a unique tag for each outstanding transaction between two nodes. This is
rtThis field in the retry code for this packet is:
tCodetCode is the transaction code for this packet (see Table 6-10 of IEEE 1394-1995 standard).
priorThis field is the priority level for this packet. For cable implementation, the value of the bits must be zero. For
destination IDThis field is the concatenation of the 10-bit bus number and the 6-bit node number that forms the node address to
destination_offset_high,
destination_offset_low
data_lengthThe number of bytes of data to be transmitted in the packet
extended_tCodeThe block extended_tCode to be performed on the data in this packet. See Table 6-11 of the IEEE 1394-1995
block DataThe data to be sent. If dataLength is 0, no data should be written into the DTF for this field. Regardless of the
and 11 is undefined for this implementation.
used to pair up a response packet with its corresponding request packet. This tLabel must be set to 01 xxxx , which is
block read request handling.
00 = new
01 = retry_X
10 = retryA
11 = retryB
backplane implementation, see clauses 5.4.1.3 and 5.4.2.1 of the IEEE 1394-1995 standard.
which this packet is being sent.
The concatenation of these two fields addresses a quadlet in the destination node address space. This address must
be quadlet aligned (modulo 4). The upper four bits of the destination_offset_high field are used as the response code
for lock-response packets and the remaining bits are reserved.
standard.
destination or source alignment of the data, the first byte of the block must appear in byte 0 of the first quadlet.
8.3Status Block Setup
TSB43AA82A can send status block packets to the initiator when the DMA successfully writes/reads the entire
amount of data. The contents of the status block packet should be loaded before starting the DMA transaction. This
function is active only when the DRFNotify bit at C0h and DTFNotify bit at B0h are set. Figure 8−3 shows the basic
status block format. Table 8-3 shows a description of each field.
AsAgentAssociates corresponding agent for this transaction. The difference between associated and nonassociated is
agentnumSpecifies the agent number associated by this transaction.
destination_offset_high,
destination_offset_low
data_lengthdata_length is the number of bytes of status block size transmitted in the packet.
extended_tCodeThe block extended_tCode to be performed on the data in this packet. See Table 6-11 of the IEEE 1394-1995
status BlockSBP-2 status block. Refer to the SBP-2 standard for more information.
whether the status transfer is successful or not successful. The agent status specified by agent number falls into a
dead state. Setting AsAgent to 0 activates the AsAgent and changes agentnum.
The concatenation of these two fields addresses a quadlet in the destination node address space. This address must
be quadlet aligned (modulo 4) and the address of the status FIFO at the initiator.
standard.
To load status block packet into internal RAM:
1.Set the size of status block FIFO in the MTXBufSiz bit (94h). For example, to set 8 quadlets of the entire
status block packet, write 06h to this field. This field should be half the size of the status block packet in
quadlets.
2.Set internal RAM to write status mode. DTFST/DRFST bits (F8h) enable access to the status FIFO. Once
one of the bits is set to 1, the host can access the status FIFO.
3.Write the status block packet. The host can write the status block packet through the log data register (FCh).
Address requests written to FCh are processed automatically.
4.Activate the status block. Set the notify bit enable to send the status block packet. Notify bits are located
at DTF and DRF control registers.
8.4DMA Operation
8.4.1Packet Transmission by DTF
There are three modes of packet transmission with DTF:
•Writing to the CFR through the microcontroller
•Through the bulky interface in direct mode (DTPktz at 90h = 0)
•Through the bulky interface in packetizer mode (DTPktz at 90h = 1)
8.4.1.1 Packet Transmission by Writing to the CFR Through the Microcontroller
By clearing the DTDSel bit (90h, bit 29), the host can write a packet to DTF using DTF_First&Continue (A4h) and
DTF_update (A8h). In this case, the DMA bulky interface can not write data to the DTF.
•Set DTFEn (90h, bit 3) to 1 and DTPktz (90h, bit 5) to 0 to enable DTF transmission through the
microcontroller.
•Set DTHdIs (90h, bit 24) to 0 to disable header insertion.
•Set DTDSel (90h, bit 29) to 0 to switch to CFR packet write mode.
•Write a packet excluding the last quadlet into DTF first and continue register (A4h). This complies with the
DTF format defined in Section 8.2.2.
•Start the transmission request by writing the last quadlet to the DTF update register (A8h).
•At the completion of a packet transmission, DTAVal is set and an appropriate acknowledgement is displayed
on DTxAck (A0h).
•When DTSpDis (90h, bit 7) is 1, or no split transaction has occurred, a DTFEnd interrupt is created to end
the transmission transaction.
•When DTSpDis (90h, bit 7) is 0 and split transaction(s) has occurred, a DTFEnd interrupt is created to end
the transmission transaction after a response packet is received.
•In this case, a response packet is received by DRF.
8−4
8.4.1.2 Packet Transmission Through the Bulky Interface in Direct Mode
Setting DTHdIs (90h, bit 24) enables the header insert mode for data written to the DTF.
•Set 1 on DTFEn (90h, bit 3) to enable DTF transmission.
•Set 0 on DTHdIs (90h, bit 24) to disable header insertion.
•Set 1 on DTDSel (90h, bit 29) to switch to bulky interface packet write mode.
•Prepare transmit data with a packet header that complies with the DTF format defined in Section 8.2.2.
•Write the packet through the bulky interface. Set BDIF2−BDIF0 as shown in the following tables to indicate
the end of each packet. Packets are padded with 0s as necessary to satisfy the quadlet boundary. A packet
transmission starts when the BDIF flag indicates the last data.
8-Bit Bulky
BDIF[2:0]COMMENT
0118-bit bulky mode
101Reset
NOTES: 1. Any signal setting not included in the table is reserved.
16-Bit Bulky
BDIF[2:0]COMMENT
01016-bit bulky mode
0118-bit bulky mode
101Reset
NOTES: 1. Any signal setting not included in the table is reserved.
2. Signal values should not be modified during data transfer.
2. Signal values should not be modified during data transfer.
•At the completion of a packet transmission, DTAval is set, and an appropriate acknowledgement is
displayed on DTxAck.
•When DTSpDis (90h, bit 7) is 1 or no split transaction has occurred, a DTFEnd interrupt is created to end
the transmission transaction. When DTSpDis (90h, bit 7) is 0 and a split transaction has occurred, a DTFEnd
interrupt is created to end the transaction after a response packet is received. In this case, a response
packet is received by the DRF.
8.4.1.3 Packet Transmission Through the Bulky Interface in Packetizer Mode
As a value on DTx header[0:3] (E8h−F4h) is inserted as header, adding data completes the packet to be sent. If
DTHdIs is not set, all packet data including the header needs to be written. In this case, packet format is the same
as that for the ATF.
Following is the process for a fixed-length block data transmission through the bulky interface using write request for
block.
•Set DTFEn (90h, bit 3) to 1 to enable DTF transmission.
•Set DTHdIs (90h, bit 24) to 1 to enable auto header insertion.
•Set DTDSel (90h, bit 29) to 1 to switch to bulky interface packet write mode.
•Prepare transmit data without packet header.
•Specify desired packet header on DTx Header[0:3].
•Write block data through the bulky interface. Set BDIF2−BDIF0 as shown in the following tables. The end
of each packet needs to be specified when the length of data does not satisfy a quadlet boundary.
8−5
8-Bit Bulky
BDIF[2:0]COMMENT
0118-bit bulky mode
101Reset
1118-bit data of last block on packet
NOTES: 1. Any signal setting not included in the table is reserved.
2. Signal values should not be modified during data transfer.
16-Bit Bulky
BDIF[2:0]COMMENT
0008-bit data except last block on packet (lower)
01016-bit bulky mode
0118-bit bulky mode
1008-bit data of last block on packet (lower)
101Reset
11016-bit data of last block on packet
1118-bit data of last block on packet
NOTES: 1. Any signal setting not included in the table is reserved.
2. Signal values should not be modified during data transfer.
•A written packet is automatically divided into the length specified by DTx header3, and is packetized.
Addresses specified on DTx header[1:2] are increased by the length of the data on each transmission. Also,
the last 3 bits of tLabel are incremented.
•Each time an auto-divided packet transmission completes, DTAval is set and an appropriate
acknowledgement is displayed on DTxAck.
•When a packetizer stops at the completion of all block data transmission or with some error, a DTFEnd
interrupt is created and its result is displayed on DTFSt(B0h).
8.4.2Packet Receipt With DRF
By clearing the DRDSel bit on DMA control (90h), a packet stored in the DRF can be received. Data can not be read
with the DMA I/F in this case. When DRHStr in DMA control (90h) is set, the header of the packet is detached, and
the host reads only the data section with DRF data (ACh). The detached header is stored in DRF header[0:3]
(D0h−DCh). When DRHStr is not set, the entire packet will be read. The format for this is the same as reading from
ARF.
Types of packets received by the DRF are:
•Self-ID packet
•Ordinary packet
−Response packets to request packets from the DTF
−Write request with specified address (direct mode)
−Packetizer
−Specified as a default
8.4.2.1 Self-ID Packet
Set both RXSId (08h, bit 1) and RSIsel (08h, bit 2) to 1 for the DRF to receive self-ID packets.
8.4.2.2 Response Packet to Request Packets From the DTF
To receive response packets to request packets from the DTF, set DTSpDis (90h, bit 7) to 0. This automatically sets
the expected values of the response packets. The DRF receives responses accordingly.
8−6
8.4.2.3 Write Requests With Specific Address (Direct Mode)
To receive a write request using the write request for block with specified address:
•Set DRFEn (90h, bit 2) to 1.
•Set DRPktz (90h, bit 4) to 0 to disable the packetizer mode.
•Set DRFAdrEn (C0h, bit 2) to 1 to enable write request receiving.
When write requests for block packets are received to addresses specified with DRF destination offset hi/low and DRF
destination width, the packets are received by the DRF. The following formula shows a range of receivable packet
addresses:
Setting DRBIdEn (C0h, bit 0) to 1 can limit the initiator BusID, and setting DRSIdEn (C0h, bit 1) to 1 can limit the
initiator NodeID. DAckPnd (90h, bit 22) controls acknowledgements of the write request packet to the DRF. When
DAckPnd is 0, the response acknowledgement is complete. When DAckPnd is 1, the response acknowledgement
is pending. When a pending acknowledgement is sent and DRespComp (90h, bit 23) is 1, the response is complete.
8.4.2.4 Packetizer
To receive data by automatically creating an SBP-2 compliant read request for block packet:
•Set DRFEn (90h, bit 2) to 1. Setting DRPktz (90h, bit 4) to 1 changes to packetizer mode.
•Write expected block data information into DRF control registers 1−3 (C4h, C8h and CCh).
•Write block data information in DRF control register 0 (C0h, bits 0−2), and simultaneously write 10 in
DRFCtl0−DRFCtl1 to start packetizer operation.
•A packetizer creates and transmits a block data read request based on the block data information.
•Each time a packetizer receives an expected response packet, it makes a new request and repeats this
process. When packetizer operation stops due to completion of a transaction or some errors, DRFEnd
interrupt is created, and its result is displayed on DRFSt (C0h).
8.4.2.5 Specified as a Default
Setting 1 on RUEsel (08h, bit 25) makes DRF receive packets as a default. With this, the DRF receives read/write,
command fetch packets, and ARF to each agent, and all other unspecified packets.
8.4.3Reading DRF Through the CFR
To read DRF data through the CFR:
•Set DRDSel (90h,bit28) to 0. The microcontroller can get packets in their respective order by reading the
DRF data (ACh) register.
NOTE: DRF data can be read through the CFR or the bulky interface (see Section 8.4.4). These
can be used individually or in combination.
8−7
8.4.4Reading DRF Through the Bulky Interface
•Set DRDSel (90h, bit 28) to 1 to output DRF data through the bulky interface.
•The BDOF[2:0] attribute flag is output as follows:
BDOF[2:0]COMMENT
01016-bit data except last block on packet
0118-bit data except last block on packet
100No data
11016-bit data of last on packet
1118-bit data of last block on packet
8.4.4.1 Checking and Extracting Packet Data With a Microcontroller
With DRDSel (90h), Dpause (90h), and DRStPs (90h), output data from the bulky interface can be checked and/or
extracted by packet units. To check the content of a packet:
•Set DRDSel (90h) to 0 and DRStPs (90h) to 1 to receive packets.
•The microcontroller reads packet data through the CFR.
•Change DRDSel to 1 to output data from the bulky interface.
•When the next packet comes to the top of the DRF, Dpause is set to 1 and pauses the output.
•Change DRFSel back to 0 and repeat this process.
To extract part of a packet:
•Set DRDSel to 0, and DRStPs to 1 to receive packets.
•The microcontroller reads packet data through the CFR.
•Read the data to be extracted and switch DRDSel to 1 to extract data through the bulky interface. The rest
of the data is output to bulky interface.
•When the next packet comes to the top of the DRF, Dpause will be set to 1 and will pause the output.
•Change DRDSel back to 0 and repeat this process.
•Once DRDSel is set to 1, the bulky interface can read additional data. Thus, if DRDSel were switched to
the CFR during the bulky interface output, the microcontroller does not read the correct data.
8.4.4.2 Deleting Packet Header/Trailer
Packet headers/trailers at the top of DRF are automatically copied to the DRF header [0:3] (D0h, D4h, D8h and DCh)
and DRF trailer (E0h) registers. After one packet has been read and the subsequent packet in the DRF comes in,
these registers are automatically updated.
Simultaneously, DRHUpdate Int (0Ch, bit 16) is created to show that the header was updated. Setting 1 on DRHStr
(90h, bit 27) strips a packet header/trailer from the DRF data. Only data is transferred through the CFR or bulky
interface.
8.4.4.3 Deleting Padding Data From the DRF Through the Bulky Interface
When RcvPad (94h, bit 28) is 1, data through the bulky interface contains padding data. To receive data without
padding data, set RcvPad to 0.
8−8
Loading...
+ hidden pages
You need points to download manuals.
1 point = 1 manual.
You can buy points or you can get point for every manual you upload.