摘要:
DS31256 Envoy HDLC控制器在发送数据包之前的初始化顺序。
概述按照设计,DS31256上电以后不会控制PCI总线。所有的物理端口(端口0至15)发送全1 (非HDLC空闲码),因此在上电之后DS31256处于空闲状态。另一方面,DS31256可以初始化基于
RAM的
存储器,包括直接和间接的,用于存储内部状态机的状态。DS31256有许多非常复杂的状态机和相互作用的功能模块,因此上电之后,在发送和接收任何数据包之前,所有的这些内部寄存器/RAM必须初始化到一个已知状态。建议使用者在发送数据包之前按照表1的步骤进行初始化。
表1. DS31256的初始化步骤
IniTIalizaTIon Step
Comments
1.
System reset.
System reset
can be invoked by either hardware acTIon
via the P
RST-bar signal or software acTIon via the RST control bit in the Master Reset and ID register; all the internal device configuration registers are set to zero (0000h).
2.
Configure Local Bus Bridge Mode Control register (LBBMC), if DS31256 is used in bridge mode.
Please no
te that these registers are not affected by a software-invoked system reset. It will be forced to all zeros only by hardware reset.
3.
Initialize the PCI configuration registers.
Achieved by asserting the
PIDSEL signal.
4.
Master software reset.
Master software reset in MRID register.
5.
Initialize all indirect registers to zero.
It is
recommended that all the indirect registers be set to 0000h. See Table 2 for a list of all indirect registers.
6.
Master software reset.
Master software reset in MRID register.
7.
Configure the device for operation.
Program all the necessary registers, which includes the Layer One, HDLC, FIFO, and DMA registers, but except:
1.
Ports are disabled; keep layer-one ports off by leaving the TFDA1 bits to 0 (default state) in TP[n]CR register.
2.
HDLC channels are disabled.
3.
DMA and DMA channels are disabled.
4.
In high-speed unchannelized mode, set it to low-speed unchannelized mode in the RP[n]CR register and enable it to high-speed unchannelized mode in Step 12 (see below).
8.
Enable the HDLC channels.
Done via the RCHEN and TCHEN bits in the R[n]CFG[j] and T[n]CFG[j] registers.
9.
Load the DMA descriptors.
Indicate to the DMA where packet data can be written and where pending data (if any) resides.
10.
Enable the DMAs.
Done via the RDE and TDE control bits in the Master Configuration (MC) register.
11.
Enable DMA for each HDLC channel.
Done via the channel-enable bit in the receive and transmit configuration RAM.
12.
Turns on HDLC channels.
Enable and allow ports to transmit normally, set TFDA1 bits to 1 in TP[n]CR registers. Note: For high-speed unchannelized mode only, enable high-speed unchannelized in RP[n]CR register.
13.
Wait enough time for all configurations to take effect.
It is going to take a
minimum of 500µs or 768 RC and TC clock cycles (which ever is longer) before packet data can be processed.
注意:建议DS31256上电之后进行 “硬件复位”。
表2. 间接寄存器
Offset/Address
Register Name
Number of Indirect Registers
Data Sheet Section
0x3xx
Channelized Port Data Indirect Select (CP0RDIS to CP15RDIS)
6144 (16 Ports x 128 DS0 Channels x 3 Registers for each DS0 Channel)
6.3
0x400
Receive HDLC Channel Definition Indirect Select (RHCDIS)
256 (one for each HDLC Channel)
7.2
0x480
Transmit HDLC Channel Definition Indirect Select (THCDIS)
256 (one for each HDLC Channel)
7.2
0x770
Receive DMA Configuration Indirect Select (RDMACIS)
1536 (one for each HDLC Channel)
9.3.5
0x870
Transmit DMA Configuration Indirect Select (TDMACIS)
3072 (one for each HDLC Channel)
9.3.5
0x900
Receive FIFO Staring Block Pointer Indirect Select (RFSBPIS)
256 (one for each HDLC Channel)
8.2
0x910
Receive FIFO Block Pointer Indirect Select (RFBPIS)
1024 (one for each FIFO Block)
8.2
0x920
Receive FIFO High Watermark Indirect Select (RFHWMIS)
256 (one for each HDLC Channel)
8.2
0x980
Transmit FIFO Staring Block Pointer (TFSBPIS)
256 (one for each HDLC Channel)
8.2
0x990
Transmit FIFO Block Pointer Indirect Select (TFBPIS)
1024 (one for each FIFO Block)
8.2
0x9A0
Transmit FIFO Low Watermark Indirect Select (TFLWMIS)
256 (one for each HDLC Channel)
8.2
评论列表(0条)