Gigabit Ethernet

前言

本文仅为翻译手册,留以自己查看,若需要深入交流,可以在个人分类中查找解析与实践内容(可能未发布),或与作者联系

关于本手册

本文档提供了以太网交换机子系统的功能描述以及串行器/解串器(SerDes)模块的相关部分。以太网交换机子系统包括以太网媒体访问控制器(EMAC)模块,串行千兆位媒体独立接口(SGMII)模块,物理层(PHY)设备管理数据输入/输出(MDIO)模块,以太网交换机模块和其他相关子模块集成在设备上的。

介绍

本文档提供了以太网交换机子系统和串行器/解串器(SerDes)模块的相关部分的功能描述。以太网交换机子系统由以太网媒体访问控制器(EMAC)模块,串行千兆位媒体独立接口(SGMII)模块,物理层(PHY)设备管理数据输入/输出(MDIO)模块,以太网交换机模块和其他相关联组成。集成在设备上的子模块。本文档包括EMAC,MDIO,SGMII,以太网交换机和SerDes模块的功能,对其体系结构和操作的讨论,内部和外部连接的概述以及每个模块的寄存器描述。

外围设备的作用

千兆以太网(GbE)交换机子系统是网络协处理器(NETCP)外围设备的主要组件之一。GbE交换机子系统与数据包加速器(PA)和安全加速器(SA)一起工作,形成网络处理解决方案。NETCP中的千兆以太网交换机子系统的目的是提供一个接口,用于在主机设备和另一个连接的设备之间传输数据,符合以太网协议。

特性

EMAC具有以下功能:
•两个10/100/1000以太网端口,带有用于KeyStone I设备的SGMII接口
 -  KeyStone II设备的四个SGMII端口
•SGMII接口(使用wiz7c2x SerDes宏)
•线速切换(802.1d)
•非阻塞交换结构
•灵活的基于逻辑FIFO的数据包缓冲结构
•四个优先级QOS支持(802.1p)
•主机端口0流式接口
•IEEE 1588时钟同步支持
•以太网端口复位隔离
•地址查找引擎
•1024个地址加VLAN
•线速查找
•VLAN支持
•主机控制的基于时间的老化
•生成树支持
•L2地址锁定和L2过滤支持
•MAC身份验证(802.1x)
•接收或基于目的地的多播和广播限制
•MAC地址阻止
•源端口锁定
•OUI主机接受/拒绝功能
•流量控制支持(802.3x)
•EtherStats和802.3 Stats RMON统计信息收集(共享)
•支持外部数据包丢弃引擎
•MAC传输到MAC接收环回模式(数字环回)支持
•MAC接收到MAC发送环回模式(FIFO环回)支持
•SGMII或SerDes环回模式(发送到接收)
•最大帧大小9500字节(带VLAN的9504)
•用于PHY管理的MDIO模块
•具有选定中断调步的可编程中断控制
•仿真支持
•异步流分组接口

千兆以太网(GbE)交换机子系统不支持1000-MHz半双工模式

千兆以太网交换机子系统功能框图

GbE交换机子系统包括四个主要模块:

•千兆以太网交换机

•MDIO模块

•两个SGMII模块(KeyStone I和KeyStone II设备)

-  SGMII0

 -  SGMII1

•两个额外的SGMII模块(KeyStone II设备)

-  SGMII2

 -  SGMII3

图1-1显示了KeyStone I器件的千兆以太网(GbE)开关子系统功能框图。它有三个端口,通过网络协处理器(NETCP)的总线配置,以及一组进入主机的中断。

Gigabit Ethernet

KeyStone II版本(图1-2)有五个端口:两个添加的SGMII端口,路径与原始端口相同,以及原始主机端口。

Gigabit Ethernet

具体来说,SGMII0和SGMII1与KeyStone I中的相同,还有SGMII2和SGMII3。SGMII2和SGMII3还通过SerDes连接到外部引脚,并将以太网交换机作为其源。它们遵循与SGMII0和SGMII1相同的协议和方法。

•端口0是主机端口,允许GbE交换机和NETCP之间的双向通信。
•端口1是SGMII 0端口,允许GbE交换机和SGMII 0模块之间的双向通信。
•端口2是SGMII 1端口,允许GbE交换机和SGMII 1模块之间的双向通信。
•对于KeyStone II设备,端口3是SGMII 2端口,允许GbE交换机和SGMII 2模块之间的双向通信。
•对于KeyStone II设备,端口4是SGMII 3端口,允许GbE交换机和SGMII 3模块之间的双向通信。
•GbE开关的中断连接到DSP,以允许通信开关状态。
•配置总线将GbE连接到NETCP,以允许用户配置交换机。
SGMII模块,每个模块都与GbE交换机,SerDes和配置总线分开连接。

•SGMII与GbE交换机的连接允许SGMII模块与交换机之间的双向通信。

•SGMII与SerDes的连接允许SGMII模块和SerDes之间的双向通信。
•配置总线将每个SGMII连接到NETCP,以允许用户配置SGMII模块。

MDIO模块,如图1-1所示,包含与外部PHY设备的连接,一组进入主机的中断,以及通过网络协处理器的总线配置。
•与外部PHY设备的连接允许MDIO模块监控最多32个地址的链路状态。
•MDIO模块的中断连接到主机,以允许通信链路状态的变化。
•配置总线将MDIO连接到NETCP,以允许用户配置MDIO。
请注意,对于KeyStone II设备,有四个而不是两个SGMII端口可供使用,这意味着总共有五个端口。这些附加端口具有与上述SGMII端口相同的功能。

支持的工业标准

千兆以太网交换机子系统符合以下行业标准:

•支持IEEE 802.3规范

•支持IEEE 1588规范

架构

时钟控制

本节介绍千兆以太网(GbE)交换机子系统使用的时钟。
GbE交换机子系统使用以下时钟: 

•GbE开关子系统时钟

•SGMII SerDes参考时钟

•IEEE 1588时间同步时钟

•MDIO时钟

•GMII时钟

千兆交换机子系统时钟

千兆以太网(GbE)交换机子系统时钟,工作频率为350 MHz,用于GbE交换机子系统中的大多数逻辑。在使用GbE交换机子系统之前,必须启用GbE交换机子系统时钟域。

SGMII SerDes参考时钟

SGMII SerDes参考时钟是DSP的时钟输入。SGMII SerDes参考时钟用作SGMII SerDes PLL的输入,SGMII SerDes PLL通过SGMII_SERDES_CFG_PLL寄存器配置。SGMII SerDes PLL的输出控制SGMII和SerDes模块之间传输数据的速率。有关SGMII SerDes时钟的输入时钟范围,请参见特定于器件的数据手册。

MDIO时钟

MDIO时钟从外设系统时钟分频。MDIO时钟可以在高达2.5 MHz的频率下工作,但通常工作在1.0 MHz。

IEEE 1588时间同步时钟

IEEE 1588时间同步时钟用于GbE交换机中的时间同步模块。有几种可能的输入可用于时间同步时钟。要为CPTS_RCLK选择输入时钟源,请编程CPTS_RFTCLK_SEL寄存器中的CPTS_RFTCLK_SEL字段。有关与CPTS_RFTCLK_SEL寄存器中的值对应的时钟源列表,请参见器件特定的数据手册。

GMII时钟

GMII时钟频率由802.3规范确定如下:

•2.5 MHz,10 Mbps

•25 MHz,100 Mbps

•125 MHz,1000 Mbps

地址映射

GbE交换机子系统中模块的内存映射如下表所示。列出的地址是偏移地址,它们取决于特定于设备的基址。有关GbE交换机子系统的基址,请参见特定于设备的数据手册中的内存映射。

Gigabit Ethernet

千兆以太网交换机架构

本节介绍千兆以太网(GbE)交换机模块的体系结构。

GbE在NETCP中的分组流交换机和以太网交换机子系统中的两个SGMII模块之间提供接口。以下子模块是GbE开关的一部分:

•流分组接口

•媒体访问控制器子模块体系结构

•MAC接收FIFO体系结构

•统计子模块体系结构

•时间同步子模块体系结构

•地址查找引擎(ALE)子模块体系结构

KeyStone I GbE交换机有三个端口:端口0与数据包流交换机通信,端口1与SGMII0模块通信,端口2与SGMII1模块通信。KeyStone II版本有两个额外的端口连接到SGMII模块,端口3和端口4.端口3与SGMII3模块通信,端口4与SGMII4模块通信。

为了与分组流交换机接口,GbE交换机包含发送和接收接口,用于在GbE交换机使用的信号和用于分组流交换机的信号之间进行转换。为了促进与SGMII模块的通信,KeyStone I设备具有两个MAC子模块(EMAC0和EMAC1),用于在交换机内部信号和SGMII模块所需的GMII信号之间进行转换。KeyStone II设备有两个额外的MAC子模块(EMAC2和EMAC3),总共四个。

GbE交换机还包含其他几个提供附加功能的子模块。GbE交换机有两个模块,为以太网交换机子系统发送和接收的数据包提供以太网统计信息。GbE交换机还包含一个时间同步子模块,以支持IEEE 1588时钟同步。GbE交换机提供地址查找引擎(ALE),负责根据地址转发和过滤数据包。在各个子模块部分中更详细地介绍了这些子模块中的每一个。

流分组接口

本节介绍流数据包接口的详细信息。流分组接口负责GbE交换机和NETCP中的分组流交换机之间的通信。
对于KeyStone I器件,请参见第ø-xx页上的“德州仪器相关文档”中的KeyStone器件网络协处理器(NETCP)用户指南,了解TXA和TXB控制寄存器的定义。
对于KeyStone II器件,请参见第ø-xx页上的“德州仪器相关文档”中的KeyStone器件网络协处理器(NETCP)用户指南,了解TXA,TXB,TXC和TXD控制寄存器的定义。请注意,TXC和TXD仅在具有5端口交换机的KeyStone II设备中可用。
传输流分组接口

传输接口负责将数据包从GbE交换机端口0传输到NETCP中的数据包流交换机。GbE交换机具有两个相同的传输流分组接口。第一个接口(TXA)输出端口1上接收到的发往端口0的数据包。第二个接口(TXB)输出在端口2上接收的数据包,目的地是端口0.流接口数据上的数据相当于MAC输出数据的不同之处在于,数据输出被格式化以便在流接口上传输,而不是输出8位GMII数据。

除了分组数据之外,发送流接口还提供附加信息,该附加信息通过分组DMA的接收流放置在接收分组的描述符中。此额外信息中包含源识别。如果数据包源自端口1,则P0_CPPI_SRC_ID寄存器的TXA_SRC_ID字段中的值将被放置在接收数据包的描述符中的SRC_ID字段中。类似地,如果分组源自端口2,则P0_CPPI_SRC_ID寄存器的TXB_SRC_ID字段中的值被放置在接收分组描述符中的SRC_ID字段中。

TXA和TXB发送接口都具有22K字节的缓冲区,以实现更高效的发送分组操作。发送接口不会在流接口上传输数据包,直到输出缓冲区中有整个数据包或输出缓冲区中至少有CPPI_THRESH加上两个字(不是字节)为止。加号是因为还存在双字双缓冲区。

对于KeyStone II,包含附加端口TXC和TXD,其功能与TXA和TXB接口相同。

传输VLAN处理

本节介绍在VLAN感知模式下的传输处理。当CPSW_CONTROL寄存器中的VLAN_AWARE位置1时,GbE开关处于VLAN感知模式。在VLAN感知模式下,根据与MAC发送(出口)输出数据包VLAN过程相同的规则添加,删除或替换VLAN。
当VLAN_AWARE被清除为0时,不会修改传输数据包。
接收流分组接口

GbE交换机的端口0上的接收流接口负责从NETCP中的分组流交换机接收分组。GbE交换机有一个用于端口0的接收流分组接口.CPPI接收端口相当于MAC端口,不同之处在于数据以流接口数据格式而不是8位GMII数据格式提供给GbE交换机。

除了分组数据之外,接收流接口还可以提供附加的控制信息,该控制信息驻留在发送到GbE交换机的分组的描述符的PS_FLAGS字段中。

对于传输到GbE的数据包,PS_FLAGS字段具有以下配置:

Gigabit Ethernet

设置RX_PASS_CRC位表示CRC与分组数据一起传递。
当任何TO_PORT位非零时,该分组是定向分组。数据包将被发送到指示的端口。


媒体访问控制器子模块体系结构

本节介绍媒体访问控制器(MAC)子模块的体系结构。MAC子模块符合IEEE 802.3标准,支持10/100/1000兆位/秒(Mbps)操作模式。MAC模块提供GbE交换机和SGMII模块之间的接口。对于发送操作,MAC模块在GbE交换机使用的数据信号和SGMII模块使用的GMII信号之间进行转换。对于接收操作,MAC模块在来自SGMII模块的GMII信号与GbE开关使用的信号之间进行转换。发送和接收操作将在后续章节中详细介绍。

除了在SGMII模块和GbE交换机之间进行转换之外,MAC模块还负责与IEEE 802.3以太网帧相关的操作。对于所有分组,MAC模块向分组添加或移除前导码,帧起始分隔符和分组间隙。MAC模块验证并可选地生成CRC校验和。

数据接收操作

本节介绍MAC模块的数据接收操作。

接收控制

MAC模块负责解释从SGMII模块接收的GMII数据。GMII数据的解释涉及以下操作:

•检测和删除前导码

•检测和删除帧开始定界符

•提取地址

•提取帧长度

•数据处理

•错误检查和报告

•循环冗余校验(CRC)

•统计信号生成所有统计信号生成都报告给GbE交换机中的正确统计模块。

接收帧间间隔

对于10/100 Mbps模式,802.3所需的数据包间隙(IPG)为24 GMII时钟(96位时间),对于1000 Mbps模式,需要12 GMII时钟(96位时间)。但是,如果具有正确的前导码和帧起始分隔符,MAC模块可以容忍略小的IPG(10/100模式下2个GMII时钟和1000模式下5个GMII时钟)。

帧之间的间隔必须包括(按以下顺序):

1。数据包间隙(IPG)

2。七个八位字节前导码(所有八位字节0x55)

3。帧定界符的一个八位字节开始(0x5D)

接收流量控制

本节介绍接收流控制功能。在重负载下,MAC模块可以通过接收帧流控制来限制进一步的帧接收。
通过将MAC_CONTROL寄存器中的RX_FLOW_EN位置1来使能接收流控制。启用后,流控制事件由GbE开关模块中的接收FIFO触发。启用接收流控制并触发流控制事件后,将启动接收流控制。在半双工模式下,接收流量控制是基于冲突的。在全双工模式下,通过发出802.3X暂停帧来处理流量控制。在任何一种情况下,接收流控制都通过发出适合当前操作模式的流控制来防止帧接收。MAC模块通过MAC_CONTROL寄存器中的FULLDUPLEX位配置为冲突或IEEE 802.3X流控制。
基于碰撞的接收流量控制

本节介绍基于冲突的接收流控制。
基于冲突的接收流控制提供了一种在端口以半双工模式工作时防止帧接收的方法(在MAC_CONTROL寄存器中清除FULLDUPLEX位)。当启用并触发接收流控制时,端口会为接收的帧生成冲突。发送的堵塞序列将是十二字节序列C3.C3.C3.C3.C3.C3.C3.C3.C3.C3.C3.C3(十六进制)。阻塞序列不迟于开始接收源地址的那一刻开始。请注意,这些强制冲突不会限制为最多16次连续冲突,并且与正常的退避算法无关。接收流控制不依赖于传入帧目标地址的值。
无论目标地址如何,都会为任何传入数据包生成冲突。

基于IEEE 802.3X的接收流控制

本节介绍基于IEEE 802.3x的接收流控制。基于IEEE 802.3x的接收流控制提供了一种在端口以全双工模式运行时防止帧接收的方法(FULLDUPLEX位在MAC_CONTROL寄存器中设置)。当启用并触发接收流控制时,端口发送暂停帧以请求发送站在发送的暂停帧内指示的时段内停止发送。

MAC模块在第一可用机会处将暂停帧发送到保留的多播地址。如果MAC模块空闲,则立即发送暂停帧,否则在当前正在发送的帧完成之后发送暂停帧。发出暂停帧时,帧包含0xFFFF,这是最大可能的暂停时间值。MAC模块对接收暂停帧时间进行计数,将0xFF00减小为0,如果计数达到0,则重新发送出局暂停帧。当流控制请求被删除时,MAC模块发送暂停帧,暂停时间为零以取消暂停请求。

如果启用并触发暂停帧,则无论端口是否正在观察来自传入暂停帧的暂停时间段,都会发送暂停帧。
MAC模块发送暂停帧,如下所述:

•48位保留多播目标地址01.80.C2.00.00.01

•GbE交换机中SLx_SA_HI和SLx_SA_LO寄存器中的48位源地址

•16位长度 / type字段包含值88.08•16位暂停操作码等于00.01•16位暂停时间值FF.FF.暂停量子是512位时间。暂停发送以取消暂停请求的帧将具有00.00的暂停时间值。
•零填充到64字节数据长度(MAC模块仅传输64字节暂停帧)

•32位帧校验序列(CRC字)

上面的所有数量都是十六进制的,并且首先传输最高有效字节。在每个字节中首先传输最低有效位。
如果在暂停时间非0时RX_FLOW_EN被清除为0,则暂停时间将被清除为0,并且将发送0计数暂停帧。
数据传输

本节介绍MAC模块的传输数据操作。MAC模块接受来自GbE交换机的数据,将数据转换为GMII格式,并将数据发送到SGMII模块。数据传输与传输时钟速率同步。可以发送的最小帧是两个字节的数据,具有四个字节的CRC(6字节帧)。

传输控制

本节介绍MAC模块的传输控制操作。如果在发送分组上检测到冲突,则MAC模块输出阻塞序列。如果冲突延迟(在传输前64个字节之后),则忽略冲突。如果碰撞没有延迟,控制器将在重试帧传输之前退回。在全双工模式下工作时,禁用载波侦听(CRS)和碰撞感应模式。

CRC insertion

本节介绍将CRC校验和插入以太网帧的过程。MAC模块可以在传输的数据上生成并附加32位以太网CRC。默认情况下,MAC模块生成并附加CRC。如果用户不希望MAC模块生成CRC,则必须在通过分组DMA将分组发送到NETCP之前设置描述符的协议特定标志区域的第19位。如果在描述符中设置了协议特定标志的第19位,则TX数据的最后四个字节作为帧CRC被发送。四个CRC数据字节应该是帧的最后四个字节,并且应该包括在包字节计数值中。当在描述符中设置协议特定标志字段的第19位时,MAC不对输出CRC执行错误检查。
MTXER

MAC模块中未使用GMII MTXER信号。如果在发送的帧上发生下溢情况,则帧CRC将被反转以向网络指示错误。下溢是硬件错误。

自适应性能优化(APO)

本节介绍在MAC模块中实现的自适应性能优化(APO)。以太网MAC端口包含APO逻辑,可通过设置MAC_CONTROL寄存器中的TX_PACE位来使能该APO逻辑。当TX_PACE位置1时,启用传输调步以增强性能。自适应性能调步会在帧的正常传输中引入延迟,从而延迟站之间的传输尝试。通过引入延迟,在交通繁忙期间(如帧延迟和冲突所示)将减少冲突的概率,从而增加成功传输的机会。

当帧延迟时,遭受单次碰撞,多次碰撞或过度碰撞,起搏计数器加载初始值为31.当帧成功传输时(没有经历延迟,单次碰撞,多次碰撞或过度)冲突)起搏计数器递减1,降至0。

启用调步后,只有在调步计数器为0时,才允许新帧(在一次IPG之后)尝试传输。如果调步计数器为非0,则帧延迟调步延迟,相当于大约四个Interpacket差距延迟。APO仅影响第一次尝试发送帧之前的IPG。它不会影响重传帧的退避算法。

Interpacket Gap Enforcement(包间隙--)

本节介绍MAC模块的interpacket间隙的实施。根据帧流量条件改变96位时间的IPG的测量参考。如果在没有冲突的情况下成功发送帧,并且在MTXEN信号被解除置位的大约48位时间内MCRS信号被置为无效,则从MTXEN测量96位时间。如果帧遭遇冲突,或者在MTXEN解除置位后超过大约48位时间MCRS信号未被置低,则从MCRS测量96位时间(大约但不小于)。

启用和触发时,传输IPG可缩短8位时间。MAC_CONTROL寄存器中的TX_SHORT_GAP_EN位使能TX_SHORT_GAP输入,以确定发送IPG是否短接8位时间。

BACK OFF

MAC模块实现802.3二进制指数退避算法。

可编程发送数据包间隙

发送数据包间隙(IPG)可通过TX_GAP寄存器进行编程。默认值为十进制12.发送IPG可以增加到最大值0x1ff。增加IPG与传输调步不兼容。短间隙功能将覆盖增加的间隙值,因此短间隙功能可能与增加的IPG不兼容。

传输流量控制

本节介绍在MAC模块上实现的传输流控制。启用后,将对传入的暂停帧进行操作,以防止MAC模块再传输任何帧。仅当MACCONTROL寄存器中的FULLDUPLEX和TX_FLOW_EN位置1时,才会对进入的暂停帧起作用。暂停帧不会在半双工模式下起作用。如果启用,将暂停帧动作,但通常帧将被过滤而不会传输到内存。如果MAC_CONTROL寄存器中的RX_CMF_EN(复制MAC帧)位置1,MAC控制帧将被传输到存储器。TX_FLOW_EN和FULLDUPLEX位会影响是否对MAC控制帧起作用,但它们对MAC控制帧是否传输到存储器或过滤没有影响。

暂停帧是MAC控制帧的子集,其操作码字段= 0x0001。只有满足以下所有条件时,端口才会对进入的暂停帧执行操作:

•设置在MAC_CONTROL寄存器中的TX_FLOW_EN

•帧的长度为64到MAC_RX_MAXLEN字节

帧不包含CRC错误或对齐/代码错误 

从操作码后面的两个字节中提取有效帧的暂停时间值。暂停时间将加载到端口的发送暂停定时器中,并且发送暂停时间段将开始。

如果在前一个发送暂停帧的发送暂停时间段内收到有效的暂停帧,则:

•如果目标地址不等于保留的多播地址或任何启用或禁用的单播地址,则发送暂停计时器将立即过期 or

•如果新的暂停时间值为0,则发送暂停计时器将立即过期 else

•端口发送暂停定时器将立即设置为新的暂停帧暂停时间值。(将丢弃前一个暂停帧的任何剩余暂停时间。)

如果MAC_CONTROL寄存器中的TX_FLOW_EN字段被清除,则pause-timer将立即到期。

在完成接收非零暂停时间的暂停帧(MRXDV变为非活动状态)之后,端口不会在512位时间之后开始传输新数据帧。在暂停计时器到期之前不会开始传输(端口可以传输暂停帧以启动传出流控制)。收到暂停帧时已经传输的任何帧都将完成且不受影响。

 传入暂停帧包括:

•48位目标地址等于:

- 保留的多播目标地址01.80.C2.00.00.01,或

- 在GbE交换机中的SLx_SA_HI和SLx_SA_LO寄存器中找到的48位MAC源地址

•发送设备的48位源地址

•包含值88.08的16位长度/类型字段

•16位暂停操作码等于00.01•16位pause_time。暂停量程为512位时间

•填充到64字节数据长度

•32位帧校验序列(CRC字)

上面的所有数量都是十六进制的,并且首先传输最高有效字节。在每个字节中首先传输最低有效位。
填充需要将帧组成至少64个字节。该标准允许丢弃长于64字节的暂停帧或将其解释为有效暂停帧。MAC模块将识别64字节和MAC_RX_MAXLEN字节之间的任何暂停帧。

速度,双工模式和暂停帧支持协商

MAC模块可以在10/100 Mbps模式下以半双工或全双工模式运行,并且在1000 Mbps模式下只能以全双工模式运行。暂停帧支持包含在主机配置的10/100/1000 Mbps模式中。

帧分类

如果接收帧在64和MAC_RX_MAXLEN之间(包括)并且不包含任何错误(代码/对齐/ CRC),则它们是正确(良好)帧。
如果帧数超过MAC_RX_MAXLEN寄存器中的值,则接收帧为长帧。默认MAC_RX_MAXLEN寄存器值为1518(十进制)。接收到的长帧是超大帧或jabber帧。没有错误的长帧是超大帧。具有CRC,代码或对齐错误的长帧是jabber帧。
如果帧数小于64字节,则接收的帧是短帧。不包含错误的短帧是尺寸不足的帧。具有CRC,代码或对齐错误的短帧是片段帧。
收到的长数据包将始终包含传输到内存的MAC_RX_MAXLEN字节数(如果RX_CEF_EN = 1)。MAC_RX_MAXLEN = 1518的示例如下: 

•如果帧长度为1518,则数据包不是长数据包,并且将有1518个字节传输到内存。

•如果帧长度为1519,则将有1518个字节传输到内存。最后三个字节将是前三个CRC字节

•如果帧长度为1520,则将有1518个字节传输到内存。最后两个字节将是前两个CRC字节

•如果帧长度为1521,则将有1518个字节传输到内存。最后一个字节将是第一个CRC字节

•如果帧长度为1522,则将有1518个字节传输到存储器。最后一个字节将是最后一个数据字节

MAC接收FIFO架构

本节介绍MAC接收FIFO的体系结构。在GbE交换机内部,两个MAC端口都具有相同的数据包FIFO。每个数据包FIFO包含一个逻辑接收队列和四个逻辑传输队列(优先级0到3)。每个数据包FIFO存储器包含81,920字节(80k)总数,由单个存储器实例中包含的64位字组成10240。包FIFO存储器用于相关的端口发送和接收队列。FIFO关联的MAX_BLKS寄存器中的TX_MAX_BLKS字段确定要分配给四个逻辑发送队列的最大4k FIFO存储器块数(发送总数)。FIFO关联的MAX_BLKS寄存器中的RX_MAX_BLKS字段确定要分配给逻辑接收队列的最大4k存储器块数。TX_MAX_BLKS值加上RX_MAX_BLKS值应总和为20(FIFO中的块总数)。如果总和小于20,那么一些内存块将被闲置。对于未启用流控制的端口,默认值为17(十进制)发送块和三个接收块。当端口配置为流控制模式时,应增加接收FIFO块分配,同时相应减少发送FIFO块。


统计子模块体系结构

本节介绍GbE交换机中统计模块的体系结构(请参阅第3-78页的3.5.4“统计(STATS)子模块”。)

GbE交换机有两组统计模块,用于记录与进入和退出交换机的数据包相关的事件。KeyStone I交换机端口0的统计信息记录在统计模块A(STATSA)上,端口1和2的统计信息记录在统计模块B(STATSB)上。对于KeyStone II设备,附加端口记录在附加统计模块STATSC和STATSD中。每个统计寄存器都是32位宽,并在满足某个统计条件时自动递增。每个统计信息将从0xFFFFFFFF翻转到0x00000000。

对于Keystone II,以太网交换机具有四组统计信息,用于记录与所选交换机端口上的帧流量相关的事件。STATSA保持端口0接收,端口0 TXA和端口0 TXB的统计信息。STATSC保持端口0 TXC和端口0 TXD的统计信息(STATSC接收统计信息未使用)。STATSB保留端口1的统计信息,STATSD保留端口3和4的统计信息。统计信息在地址映射中分页。当stat_sel在Stat_Port寄存器中清除为0时,STATSA / B统计信息在地址范围内可见。当stat_sel在Stat_Port寄存器中设置为1时,STATSC / D统计信息在地址范围内可见。

访问统计登记册

本节介绍在禁用或启用模块时如何正确读取和写入统计模块中的寄存器。缺省情况下,统计模块处于禁用状态。禁用时,可以正常读取和写入所有统计寄存器,因此写入0x00000000会清除统计寄存器。启用统计模块后,仍可正常读取所有统计信息;但是,寄存器写入将变为写入递减,这意味着写入寄存器的值将从寄存器值中减去,结果存储在寄存器中(新寄存器值=旧寄存器值 - 写入值)。如果写入的值大于统计寄存器中的值,则0将写入该寄存器。启用统计模块后,写入值0xFFFFFFFF将清除统计位置。写入统计寄存器时,必须使用32位访问。可以通过写入STAT_PORT_EN寄存器的位3:0来使能统计模块。

统计中断

中断中断本节介绍统计模块生成的中断。对于KeyStone I,两个统计模块中的每一个都能够向主机发送中断。STATSA模块的中断将发生在STAT_PEND_RAW [0]信号上,STATSB模块的中断将发生在STAT_PEND_RAW [1]信号上。当统计寄存器中的任何值变为大于或等于0x80000000时,将触发中断。可以通过写入大于0x80000000的值来删除统计中断。
对于KeyStone II器件,STAT_PEND_RAW是一个4位值,第三和第四位分别代表STATSC和STATSD。

接收统计信息描述

良好的接收帧

良好的接收帧统计数据是端口上接收的良好帧的总数。良好的帧具有以下特征:

•与单播,广播或多播地址匹配或由于混杂模式匹配的任何数据或MAC控制帧

•长度为64到RX_MAXLEN字节

•没有CRC错误,对齐错误,或代码错误有关对齐,代码和CRC错误的定义,

请参阅接收对齐/代码错误并接收CRC错误统计信息描述。溢出(overruns)对此统计数据没有影响。

广播接收帧

广播接收帧统计是端口上接收的良好广播帧的总数。良好的广播帧具有以下特征:

•仅用于地址0xFFFFFFFFFFFF的任何数据或MAC控制帧

•长度为64到RX_MAXLEN字节

•没有CRC错误,对齐错误或代码错误

请参阅接收对齐/代码错误并接收CRC错误统计描述,用于对齐,代码和CRC错误的定义。溢出对此统计数据没有影响。

组播接收帧

组播接收帧统计信息是端口上接收的良好组播帧总数。良好的多播帧具有以下特征:

•任何数据或MAC控制帧,其目的地为0xFFFFFFFFFFFF以外的任何多播地址

•长度为64到RX_MAXLEN字节(包括端点)

•没有CRC错误,对齐错误或代码错误

请参阅接收对齐/编码错误并接收CRC错误统计描述,以定义对齐,代码和CRC错误。溢出对此统计数据没有影响。

暂停接收帧

暂停接收帧统计是端口接收的IEEE 802.3X暂停帧的总数(无论是否作用)。
这样的帧具有以下特征:

•包含任何单播,广播或多播地址

•包含长度/类型字段值88.08(十六进制)和操作码0x0001

•长度为64到RX_MAXLEN字节

•没有CRC错误,对齐 错误或代码错误

•在该端口的MAC模块中启用了暂停帧(TX_FLOW_EN = 1)该端口可能处于半双工或全双工模式。
有关对齐,代码和CRC错误的定义,请参阅接收对齐/代码错误并接收CRC错误统计信息描述。溢出对此统计数据没有影响。

接收CRC错误

接收CRC错误统计数据是在经历CRC错误的端口上接收的帧总数。
这样的帧具有以下特征:

•是否有任何数据或MAC控制帧与单播,广播或多播地址匹配,或由于混杂模式而匹配

•长度为64到RX_MAXLEN字节包含

•没有代码/对齐错误

•有CRC错误

溢出(overruns)对此统计信息没有影响。
CRC错误具有以下特征:

•包含偶数个半字节的帧

•帧检查序列测试失败

接收对齐/代码错误

接收对齐/代码错误统计信息是在端口上收到的经历对齐错误或代码错误的帧总数。这样的帧具有以下特征:

•是否与单播,广播匹配的任何数据或MAC控制帧。或多播地址,或由于混杂模式匹配

•长度为64到RX_MAXLEN字节包含

•有对齐错误或代码错误溢出对此统计信息没有影响。
对齐错误具有以下特征:

•包含奇数个半字节的帧

•如果忽略最终半字节,则失败帧检查序列测试 

代码错误被定义为已被丢弃的帧,因为端口的MRXER引脚在帧接收期间的任何时刻以1至少一个位时间的持续时间驱动。

超大接收帧

超大接收帧统计数据是端口上接收的超大帧总数。超大帧具有以下特征:

•任何数据或MAC控制帧是否与单播,广播或多播地址匹配,或由于混杂模式而匹配

•是否大于RX_MAXLEN(以字节为单位)

•没有CRC错误,对齐错误或代码错误有关对齐,

代码和CRC错误的定义,请参阅接收对齐/代码错误并接收CRC错误统计信息描述。

溢出对此统计数据没有影响。

接收Jabber帧

接收jabber帧统计信息是端口上接收的jabber帧的总数。

Jabber帧具有以下特征:

•是否有任何数据或MAC控制帧与单播,广播或多播地址匹配,或由于混杂模式而匹配

•超过RX_MAXLEN字节长

•出现CRC错误,对齐错误,或代码错误有关对齐,

代码和CRC错误的定义,请参阅接收对齐/代码错误并接收CRC错误统计信息描述。

溢出对此统计数据没有影响。

Undersize(短)接收帧

尺寸过小的接收帧统计数据是端口上接收的尺寸不足帧的总数。尺寸不足的帧具有以下特征:

•与单播,广播或多播地址匹配或由于混杂模式匹配的任何数据帧

•长度小于64字节

•没有CRC错误,对齐错误或代码错误

请参阅接收对齐/代码错误并接收CRC错误统计描述,以定义对齐,代码和CRC错误。

溢出对此统计数据没有影响

接收碎片

接收片段统计信息是端口上接收的帧片段总数。帧片段具有以下特征:

•任何数据帧(地址匹配无关紧要)

•长度小于64字节

•存在CRC错误,对齐错误或代码错误

•不是由半双工,基于冲突的流控制引起的冲突的结果

请参阅接收对齐/代码错误并接收CRC错误统计描述以了解对齐,代码和CRC错误的定义。

溢出对此统计数据没有影响。

接收帧开始溢出

帧溢出统计的接收开始是由于FIFO资源限制而导致帧起始(SOF)溢出或被丢弃的端口上接收的帧总数。SOF溢出帧具有以下特征:

•是否有任何数据或MAC控制帧与单播,广播或多播地址匹配,或由于混杂模式而匹配

•是否有任何长度(包括<64字节和> RX_MAXLEN字节)

•数据包是由于FIFO资源限制而丢弃

KeyStone I Overrun Type 1(溢出)

本节介绍超限类型1统计信息。超限类型1统计信息表示不同的事件,具体取决于统计信息是记录在STATSA还是STATSB模块中。STATSA溢出类型2和STATSB溢出类型2将单独讨论。

在STATSA模块中,溢出类型1统计信息记录端口0上接收到的具有START帧(SOF)溢出的帧总数,并在端口0入口(端口0接收FIFO)上被丢弃。SOF超限帧具有以下特征:

•与单播,广播或多播地址匹配或由于混杂模式匹配的任何数据或MAC控制帧

•是否有任何长度(包括短于64字节或长于RX_MAXLEN字节)

•端口0上有帧溢出的SOF。

在STATSB模块中,溢出类型1统计信息记录在端口1或端口2上接收到的具有START帧(SOF)溢出并在端口1或端口2入口(端口1或端口2接收)上丢弃的帧总数FIFO)。SOF溢出帧具有以下特征:

•与单播,广播或多播地址匹配或由于混杂模式匹配的任何数据或MAC控制帧

•是否为任何长度(包括短于64字节或长于RX_MAXLEN字节)

•有框架溢出的SOF

KeyStone II溢出类型1

KeyStone I Overrun Type 2

本节介绍超限类型2统计信息。超限类型2统计信息表示不同的事件,具体取决于统计信息是记录在STATSA还是STATSB模块中。STATSA溢出类型2和STATSB溢出类型2将单独讨论。

在STATSA模块中,溢出类型2统计记录在端口1或2上接收的帧总数,这些帧在CPPI(端口0)出口处具有帧中间(MOF)溢出或帧起始(SOF)溢出。MOF / SOF溢出帧具有以下特征:

•与单播,广播或多播地址匹配或由于混杂模式匹配的任何数据或MAC控制帧

•是否为任何长度(包括短于64字节或长于RX_MAXLEN字节))

•出口有MOF / SOF溢出

在STATSB模块中,溢出类型2统计信息记录在端口2上接收到的在端口1上具有帧起始(SOF)溢出的帧的总数。如果是KeyStone II,则用于端口1,2或4)出口(当试图将数据包加载到端口1发送FIFO时)。SOF超限帧具有以下特征:

•与单播,广播或多播地址匹配或由于混杂模式匹配的任何数据或MAC控制帧

•是否为任何长度(包括短于64字节或长于RX_MAXLEN字节)

•端口1上的帧溢出SOF出口

KeyStone II Overrun Type 2

溢出类型3

本节介绍超限类型3统计信息。超限类型3统计信息表示不同的事件,具体取决于统计信息是记录在STATSA还是STATSB模块中。STATSA溢出类型2和STATSB溢出类型2将单独讨论。

在STATSA模块中,溢出类型3统计记录端口0上接收的帧总数,该端口在端口1或端口2出口上具有START帧(SOF)溢出(当尝试将数据包加载到端口1或2时传输FIFO)。SOF溢出具有以下特征:

•与单播,广播或多播地址匹配或由于混杂模式匹配的任何数据或MAC控制帧

•是否有任何长度(包括短于64字节或长于RX_MAXLEN字节)

•有端口1或2出口的帧溢出SOF

在STATSB模块中,溢出类型3统计记录端口1上接收的帧总数,该端口在端口2出口处具有START帧(SOF)溢出(当尝试将数据包加载到端口2发送FIFO时。它的端口如果是KeyStone II设备,则为1,3或4)。SOF溢出帧具有以下特征:

•与单播,广播或多播地址匹配或由于混杂模式匹配的任何数据或MAC控制帧

•是否为任何长度(包括短于64字节或长于RX_MAXLEN字节)

•在端口2出口上有帧溢出的SOF

在KeyStone II中,对于STATSC和STATSD分别用于端口3和4,遵循与STATSA溢出类型3统计记录相同的格式。

KeyStone II溢出类型3

传输统计信息描述

最大和最小发送帧大小是软件可控的。

良好的传输帧

良好的发送帧统计是端口上发送的良好帧的总数。良好的帧具有以下特征:

•任何数据或MAC控制帧,用于任何单播,广播或多播地址

•任何长度

•没有迟到或过度冲突,没有载波丢失,也没有欠载

广播发送帧

广播发送帧统计是在端口上发送的良好广播帧的总数。良好的广播帧具有以下特征:

•仅用于地址0xFFFFFFFFFFFF的任何数据或MAC控制帧

•具有任何长度

•没有迟到或过度冲突,没有载波丢失,也没有欠载

多播传输帧

组播发送帧统计是端口上发送的良好组播帧的总数。良好的多播帧具有以下特征:

•任何数据或MAC控制帧的目的地为0xFFFFFFFFFFFF以外的任何多播地址

•具有任何长度

•没有迟到或过度冲突,没有载波丢失,也没有欠载

暂停发送帧

暂停发送帧统计表示端口发送的IEEE 802.3X暂停帧的数量。
暂停帧不能欠载或包含CRC错误,因为它们是在发送MAC中创建的,因此这些错误条件对统计信息没有影响。暂停软件发送的帧将不包括在此计数中。
由于暂停帧仅以全双工方式传输,因此载波丢失和冲突对此统计信息没有影响。
传输的暂停帧始终是64字节的多播帧,因此它们将出现在发送多播帧和64个八位字节帧统计中。

冲突

碰撞统计信息记录端口发生冲突的总次数。在两种情况下发生冲突:

1。当发送数据或MAC控制帧具有以下特征时:

- 用于任何单播,广播或多播地址

- 是否有任何大小 - 没有载波丢失且没有欠载

- 遇到冲突堵塞对于每个非晚期冲突发送序列,因此如果帧经历多次冲突(并且在晚期冲突上增加),则每次都会递增该统计量。
CRC错误对此统计信息没有影响。
2.当端口处于半双工模式时,流控制处于活动状态,并开始帧接收 

冲突发射帧

单个冲突传输帧统计数据是在经历恰好一次冲突的端口上传输的帧的总数。这样的帧具有以下特征:

•是否有任何数据或MAC控制帧去往任何单播,广播或多播地址

•是否有任何大小

•没有载波丢失且没有欠载

•在成功传输之前经历过一次冲突。冲突不属于late

CRC错误对此统计数据没有影响。

多个冲突发送帧

多次冲突发送帧统计是在经历多次冲突的端口上发送的帧的总数。这样的帧具有以下特征:

•是否有任何数据或MAC控制帧去往任何单播,广播或多播地址

•是否有任何大小

•没有载波丢失且没有欠载

•在成功传输之前经历了2到15次冲突。

CRC错误对此统计数据没有影响。

过度冲突

过度冲突统计是由于过度碰撞而导致传输被丢弃的帧总数。这样的帧具有以下特征:

•是否有任何数据或MAC控制帧用于任何单播,广播或多播地址

•是否有任何大小

•没有载波丢失且没有欠载

•在放弃所有传输帧的尝试之前经历了16次冲突。

CRC错误对此统计数据没有影响。

late冲突

延迟冲突统计数据是由于遇到传输而导致传输被丢弃的端口上的帧总数。
这样的帧具有以下特征:

•是否有任何数据或MAC控制帧去往任何单播,广播或多播地址

•是否有任何大小

在传输过程中遇到512比特以上的冲突。
之前可能有多达15次先前(非后期)碰撞需要重新尝试传输。后期碰撞统计数据主导着单次,多次和过度碰撞统计 - 如果发生后期碰撞,则框架将不会 计入其他三项统计数据。
CRC错误,载波丢失和欠载对此统计数据没有影响。

传输不足

应该没有传输帧经历欠载。

延迟传输帧

延迟发送帧统计是在首次经历延迟的端口上发送的帧的总数。这样的帧具有以下特征:

•任何数据或MAC控制帧是否以任何单播,广播或多播地址为目的

•是否有任何大小

•没有载波丢失且没有欠载

•在成功传输之前经历过没有冲突

•找到介质第一次尝试传输时忙,所以不得不等待

CRC错误对此统计信息没有影响。

载波侦听错误

载波侦听错误统计是端口上经历载波丢失的帧总数。
这样的帧具有以下特征:

•是否有任何数据或MAC控制帧去往任何单播,广播或多播地址

•是否有任何大小

•传输帧时载波侦听条件丢失或从未断言(帧不重传 )

这是仅传输才统计的数据
Carrier Sense是一个不关心接收帧。
发送具有载波侦听错误的帧将发送到完成并且不会中止。

CRC错误和欠载对此统计数据没有影响。

传输八位字节

传输八位字节统计信息是端口上传输的所有良好帧中的总字节数。良好的帧具有以下特征:

•任何数据或MAC控制帧,用于任何单播,广播或多播地址

•任何大小

•没有迟到或过度冲突,没有载波丢失,也没有欠载

接收和发送(共享)统计信息描述

NET OCTETS

净八位字节统计是在端口上接收和发送的帧数据的总字节数。每个帧都计算在内

•是否有任何数据或MAC控制帧的目的地是任何单播,广播或多播地址(地址匹配无关紧要)

•具有任何大小(包括<64字节和> RX_MAXLEN字节帧)。

此统计数据还包括:

•在发生载波丢失之前发送的每个字节

•在每次冲突之前发送的每个字节都经历过(即每次重试均记录)

•如果端口处于半双工模式,则接收到每个字节直到发送堵塞序列以启动流量控制。(没有计算堵塞顺序以防止重复计算)

错误条件(如对齐错误,CRC错误,代码错误,溢出和欠载)不会影响此统计信息的字节记录。
此统计信息的目的是提供以太网利用率的合理指示。

接收+发送64个八位位组帧

接收和发送64个八位位组帧统计数据是端口上接收和发送的64字节帧的总数。
这样的帧具有以下特征:

•任何数据或MAC控制帧,用于任何单播,广播或多播地址

•没有遇到后期冲突,过度冲突或载波侦听错误

•正好是64字节长

如果帧 正在传输并经历载波丢失,导致传输这种大小的帧,然后帧将被记录在该统计中。
CRC错误,代码/对齐错误和溢出不会影响此统计信息中帧的记录。

之后各位长度组帧均有记录

时间同步子模块体系结构

本节介绍GbE交换机中的时间同步模块。

KeyStone 1时间同步模块用于根据IEEE 1588规范的附录F促进主机对时间同步操作的控制。
许多IEEE 1588标准超出了时间同步模块的范围,必须由主机软件处理。时间同步模块的主要目的是检测时间同步事件并生成时间戳,然后将此信息提供给主机软件进行处理。对于接收时间同步分组,时间同步模块能够支持一步或两步操作。对于传输数据包,时间同步模块仅支持两步操作。

KeyStone I的时间同步子模块检测到以下六种类型的时间同步事件:

•以太网接收事件

•以太网传输事件

•软件时间戳推送事件

•时间戳翻转事件

•时间戳半翻转事件

每个以太网端口都可以导致发送和接收事件。时间戳推送由软件启动。本节后面将详细介绍这六个事件中的每一个。

KeyStone II时间同步子模块体系结构

KeyStone II使用CPTS 1.5而不是KeyStone I中的CPTS 1.0版本。对于KeyStone II,除了附件F数据包之外,还支持CPTS块指定的IEEE1588指定附件D,E和F数据包的时间戳。

KeyStone II CPTS支持硬件推送事件,可用于根据CPTS参考时钟精确地为外部事件添加时间戳。这些事件输入可用作器件引脚。KeyStone II支持CPTS模块的所有不同参考时钟源,如KeyStone I中所示。此外,KeyStone II支持外部差分时钟源。

对于SyncE支持,KeyStone II将恢复的时钟从四个SGMII端口导出到设备引脚。恢复的时钟可以被设备外部的逻辑使用,以实现时钟转发同步以太网解决方案。KeyStone我不支持从以太网端口导出恢复的接收时钟。

KeyStone II子模块可以检测以下类型的事件:

•时间戳推送事件

•时间戳翻转事件

•时间戳半翻转事件

•硬件时间戳推送事件

•以太网接收事件

•以太网传输事

件•时间戳比较事件

本节将更详细地介绍事件。

时间同步子模块组件

时间同步模块具有多个组件,它们一起提供时间同步模块的功能。时间同步模块由以下组件组成:

•时间戳计数器

•以太网端口1和端口2接口

•事件FIFO

•事件挂起接口

每个组件都单独描述。

时间戳计数器

本节介绍时间同步模块的时间戳计数器。
时间戳计数器包含一个32位值,该值在时间同步模块内部维护。当TS_CONTROL寄存器中的CPTS_EN位清零时,时间戳计数器中的值初始化为0.当CPTS_EN位设置为1时,时间戳值在CPTS_RCLK的每个上升沿递增。可以使用TS_LOAD_EN和TS_LOAD_VAL寄存器写入时间戳值;但是,此功能主要用于测试目的。主机软件必须保持所需的时间戳值的高位数,并且必须在检测到翻转事件时递增。

以太网端口1和端口2接口

本节介绍时间同步模块的以太网端口1和以太网端口2接口。时间同步模块包含两个相同的端口接口。其中一个接口连接到GbE交换机的端口1,另一个连接到GbE交换机的端口2。每个时间同步以太网端口接口包含单独的接收和发送接口。接收接口用于为在该端口上接收的有效时间同步数据包生成时间同步事件。类似地,发送接口用于为在该端口上发送的时间同步分组生成时间同步事件。有关接收同步事件的详细信息,请参见第2.3.5.3.4节。有关传输同步事件的详细信息,请参见第2.3.5.3.5节。

事件FIFO

本节介绍时间同步子模块中的事件FIFO。事件FIFO包含等待主机软件处理的时间同步事件。通过启用事件挂起接口或轮询INTSTAT_RAW寄存器,可以使用中断处理事件。事件FIFO最多可以容纳16个事件,并且必须及时处理事件以防止超出。时间同步子模块不包含任何指示何时发生溢出的逻辑。

事件挂起接口

本节介绍事件挂起的接口。事件挂起接口用于在事件FIFO中检测到时间同步事件时向主机处理器发送信号。仅当使用中断处理事件时,此接口才有效。当TS_INT_ENABLE寄存器中的TS_PEND_EN位设置为1时,事件挂起接口处于活动状态。当该位置1时,中断将用于通知主机时间同步模块检测到的任何时间同步事件。当TS_INT_ENABLE寄存器中的TS_PEND_EN位设置为0时,事件挂起接口处于非活动状态。

 

时间同步事件

本节介绍时间同步事件。

对于KeyStone I,时间同步事件是64位值,它们被压入事件FIFO,然后可以在32位EVENT_LOW和EVENT_HIGH寄存器中读取。表2-5显示了KeyStone I设备的时间同步事件字段。有关寄存器位字段信息,请参见EVENT_LOW寄存器(第3-100页的3.5.5.9)和EVENT_HIGH寄存器(第3-101页的3.5.5.11)。

对于KeyStone II,还有一个额外的寄存器EVENT_MID(第3-101页的3.5.5.10)。表2-6显示了KeyStone II设备的时间同步事件字段。

Gigabit Ethernet

后续部分描述了时间同步子模块支持的不同事件类型。

时间戳推送事件

本节介绍时间戳推送事件。时间戳推送事件是由主机软件生成的事件,用于获取当前时间戳值。
通过写TS_PUSH寄存器启动时间戳推送事件。在写入TS_PUSH寄存器之后,生成时间戳事件并将其与时间戳推送事件代码一起推入时间同步事件FIFO。返回的时间戳值将是写入TS_PUSH寄存器时的时间戳值。

时间戳计数翻转事件

本节介绍时间戳计数器翻转事件。时间戳翻转事件用于指示时间同步模块维护的32位时间戳已从0xFFFFFFFF翻转到0x00000000。当发生翻转时,时间戳翻转事件将被推入事件FIFO,以便由主机软件使用时间戳计数器翻转事件代码进行处理。主机应使用此事件来递增在软件中维护的任何高位时间戳位。

时间戳计数器半翻转事件

本节介绍时间戳计数器半翻转事件。半翻转事件向软件指示时间同步模块在内部维护的时间戳值已从0x7FFF_FFFF增加到0x8000_0000。包含半翻转事件以使软件能够纠正未对齐的事件条件。

包含了半翻转事件,使软件能够确定包含有效时间戳值的每个事件的正确时间 - 例如以太网事件。如果在计数器翻转(完全翻转)周围发生以太网事件,则在将以太网事件加载到事件FIFO之前,可能会将翻转事件加载到事件FIFO中,即使在翻转之前实际执行了以太网事件时间。这种未对准的事件条件的产生是因为以太网事件时间戳发生在分组的开始,并且时间在分组被确定为有效的同步分组之前经过。如果在采用分组时间戳之后但在确定分组被确定为有效时间同步分组之前在中间发生翻转,则发生未对准的事件条件。

主机软件必须检测并纠正未对齐的事件条件。对于翻转后和半翻转之前的每个事件时间戳,软件必须检查时间戳的最重要位。如果时间戳的最高位为1,则时间戳值在翻转发生之前。如果时间戳的最高有效位为0,则在翻转后拍摄事件时间戳,不需要进行校正。未对齐的事件只能在翻转边界上发生,而不能在半翻转边界上发生。软件不会更正半翻转和翻转事件之间的未对齐时间戳,仅在翻转事件和半翻转事件之间。

发生完全翻转时,软件会增加软件时间戳上限值。
未对齐的情况向软件指示未对准的事件时间戳具有预增量的有效上限值,因此必须从上限值中减去一个以允许软件计算未对准事件的正确时间。
以太网接收事件

本节介绍以太网端口接收事件。以太网端口1和2可以生成以太网接收事件。每个端口具有相同的接口,并且可以独立地为有效的接收时间同步分组生成时间同步事件。对于以太网端口上接收的每个数据包,CPTS内的接收模块将为相应的端口捕获时间戳。无论数据包是否为时间同步数据包,时间戳都将被接收模块捕获,以确保尽快捕获时间戳。在CPTS_RCLK的上升沿和下降沿都对数据包进行采样,并且一旦检测到接收数据包的帧定界符开始,就会捕获时间戳。

在捕获时间戳之后,接收接口将开始解析分组以确定它是否是有效的以太网时间同步分组。端口的接收接口将使用以下标准来确定数据包是否是有效的时间同步以太网接收事件。GbE交换机1588v2解码器确定该分组是否是有效的以太网接收时间同步事件。

如果满足2.3.5.3.6“GbE Switch 1588解码器规则”中描述的所有标准,并且确定数据包是有效的时间同步数据包,则RX接口将以太网接收事件推送到事件中FIFO。有关事件格式的详细信息,请参阅表2-5。有关如何检测和处理传输事件的更多信息,请参见第2.3.5.5节。

以太网传输事件

本节介绍以太网端口传输事件。以太网端口1和2可以生成以太网传输事件。每个端口具有相同的接口,并且可以独立地为有效的发送时间同步分组生成时间同步事件。对于在以太网端口上传输的每个数据包,端口传输接口将开始解析数据包以确定它是否是有效的以太网时间同步数据包。端口的CPTS发送接口将使用以下标准来确定该分组是否是有效的时间同步以太网发送事件。要成为有效的以太网传输时间同步事件,下面列出的所有4个条件都必须为真。GbE交换机1588v2解码器确定该分组是否是有效的以太网接收时间同步事件。

如果满足GbE Switch 1588解码器规则中的所有条件,并且确定该分组是有效的时间同步分组,则在分组的帧分隔符的开始实际上之前将不生成发送事件的时间戳。传输。帧定界符的开始将在CPTS_RCLK的每个上升沿和下降沿进行采样。一旦数据包被传输,TX接口就会将以太网传输事件推送到事件FIFO中。有关事件格式的详细信息,请参阅表2-5。有关如何检测和处理传输事件的更多信息,请参见第2.3.5.5节。

GbE Switch 1588解码器规则

1.使能发送时间同步(在开关Px_TS_Ctl寄存器中设置pX_ts_tx_annex_f_en)。

2.下面的一个条件成立。

A.第一个数据包LTYPE与pX_ts_ltype1匹配。当只启用一次同步LTYPE时,应使用LTYPE 1。

B.第一个数据包LTYPE与pX_ts_ltype2匹配,并且设置了pX_ts_ltype2_en

C.第一个数据包LTYPE与pX_ts_vlan_ltype1匹配,pX_ts_tx_vlan_ltype1_en设置,第二个数据包LTYPE与pX_ts_ltype1匹配

D.第一个数据包LTYPE与pX_ts_vlan_ltype1匹配,pX_ts_tx_vlan_ltype1_en设置,第二个数据包LTYPE与pX_ts_ltype2匹配,pX_ts_ltype2_en设置

E.第一个数据包LTYPE与pX_ts_vlan_ltype2匹配,pX_ts_tx_vlan_ltype2_en设置,第二个数据包LTYPE与pX_ts_ltype1匹配

F.第一个数据包LTYPE与pX_ts_vlan_ltype2匹配,pX_ts_tx_vlan_ltype2_en设置,第二个数据包LTYPE与pX_ts_ltype2匹配,pX_ts_ltype2_en设置

G.第一个数据包LTYPE与pX_ts_vlan_ltype1匹配,pX_ts_tx_vlan_ltype1_en设置,第二个数据包LTYPE与pX_ts_vlan_ltype2匹配,pX_ts_tx_vlan_ltype2_en设置,第三个数据包LTYPE与pX_ts_ltype1匹配

H.第一个数据包LTYPE与pX_ts_vlan_ltype1匹配,pX_ts_tx_vlan_ltype1_en设置,第二个数据包LTYPE与pX_ts_vlan_ltype2匹配,pX_ts_tx_vlan_ltype2_en设置,第三个数据包LTYPE与pX_ts_ltype2匹配,pX_ts_ltype2_en设置

3.在Px_TS_Ctl寄存器的pX_ts_msg_type_en字段中启用数据包消息类型。
4.数据包由主机(端口0)发送。
(KeyStone ii设备的规则省略)

检测和处理时间同步事件

本节介绍检测和处理时间同步事件。
第2.3.5.5.1节讨论了如何通过使用中断和使用寄存器轮询来检测时间同步事件。2.3.5.5.2节讨论了如何使用寄存器接口从事件FIFO中弹出时间同步事件。
检测时间同步事件

本节介绍检测时间同步事件。时间同步模块允许通过使用中断或通过使用轮询来检测时间同步事件。

如果使用中断,则时间同步事件挂起中断将在事件挂起时发出信号。有关如何配置时间同步事件挂起中断的更多信息,请参见第2.3.5.5.1节。
如果轮询是检测时间同步事件的首选方法,则可以通过直接读取INTSTAT_RAW寄存器来检测事件。当INTSTAT_RAW寄存器中的TS_PEND_RAW位为1时,则表示事件FIFO中有1个或更多事件待处理。
从事件FIFO中弹出时间同步事件

本节介绍如何从事件FIFO中弹出时间同步事件。
一旦检测到时间同步事件,过程2-2可用于从事件FIFO中弹出时间同步事件。如果事件FIFO中有多个事件,则可以在从事件处理例程返回之前背对背地处理多个事件。
Gigabit Ethernet

地址查找引擎(ALE)子模块体系结构

地址查找引擎(ALE)处理所有收到的数据包,以确定数据包应该转发到哪个端口。ALE使用传入的数据包接收端口号,目标地址,源地址,长度/类型和VLAN信息来确定数据包的转发方式。ALE将端口掩码输出到交换结构,指示数据包应转发到的端口。当ALE_CONTROL寄存器中的ALE_ENABLE位置1时,ALE使能。当ALE_ENABLE位清零时,所有数据包都被丢弃。

在正常操作中,MAC模块被配置为在包含错误(欠幅,碎片,超大,jabber,CRC,对齐,代码等)的数据包的末尾发出中止而不是数据包结束。mac控制包的结束。但是,当设置CEF,CSF或CMF MAC配置位时,错误帧,短帧或MAC控制帧具有正常的数据包结束而不是数据包末尾的中止。当ALE收到包含错误的数据包或MAC控制帧,并且没有收到中止时,数据包将仅转发到主机端口(端口0)。在具有错误或MAC控制帧的数据包上不会发生ALE学习。学习基于源地址,查找基于目标地址。

通过将ALE_CONTROL寄存器中的ALE_BYPASS位置1,可以将ALE配置为在旁路模式下工作。处于旁路模式时,MAC模块接收的所有数据包仅转发到主机端口(端口0)。在旁路模式下,ALE处理主机端口传输数据包(进入端口0上的交换机的数据包,发往端口1或端口2)与在正常模式下相同。主机端口还能够绕过ALE将数据包直接发送到其中一个或两个MAC端口。使用定向数据包。

通过将ALE_CONTROL寄存器中的ENABLE_OUI_DENY位置1,可以将ALE配置为在OUI拒绝模式下工作。当处于OUI拒绝模式时,除非目标地址与设置了超级位的多播表条目匹配,否则将丢弃具有不匹配的OUI源地址的数据包。

除非将广播地址输入到设置了超级位的表中,否则将丢弃广播数据包。除非单播地址在带有块的表中并且安全设置(监督单播分组),否则将丢弃单播分组。

多播监督分组由表条目中的超级位指定。当块和安全都被设置时,指示单播监督分组。由于速率限制,OUI或VLAN处理,监控数据包不会被丢弃。

ALE Table

ALE表包含1024个条目。每个表条目表示空闲条目,地址,VLAN,地址/ VLAN对或OUI地址。软件应确保表中没有双重地址条目。使用的双重条目将是不确定的。

对具有单播,多播或广播目的地地址以及单播或多播(包括广播)源地址的分组进行源地址学习。组播源地址在ALE处理开始之前清除组位(位40),这将组播源地址更改为单播源地址。所有1的多播地址是广播地址,可以添加到表中。使用以下控制位将已学习的单播源地址添加到表中: 

Gigabit Ethernet

如果收到的数据包的源地址等于目标地址,则会发生以下情况:

•如果在表中找不到地址,则学习地址

•如果找到地址,则更新地址

•数据包被丢弃

读取ALE表中的条目

本节提供了读取ALE表条目的过程。要从ALE表中读取条目,用户必须使用以下步骤:

1.在WRITE_RDZ字段ALE_TBL_CTL寄存器中编程ENTRY_POINTER字段

-ENTRY_POINTER值是将在ALE表中访问的地址条目号。有效的条目号是0-1023。

-将WRITE_RDZ字段设置为0将导致从表中读取条目值

2.完成对ALE_TABLE_CTL寄存器的写操作后,ENTRY_POINTER位置的ALE表中的条目将被编程到ALE_TBLW [0:2]寄存器中。

将条目写入ALE表

本节提供了将条目写入ALE表的过程。要向ALE表添加条目,用户必须使用以下步骤:

1.对ALE_TBLW [0:2]寄存器编程,使其具有所需输入类型的所需值

2.编程ENTRY_POINTER和WRITE_RDZ字段ALE_TBL_CTL注册以将条目添加到表中

-ENTRY_POINTER值是将在ALE表中写入的地址条目号。有效的条目号是0-1023。

- 将WRITE_RDZ字段设置为1将导致将条目添加到表中

向ALE表添加条目时,该条目必须是ALE表条目类型部分中定义的类型之一。在将条目添加到ALE表中的ENTRY_POINTER位置之前,用户可能希望读取该条目以查看该条目是否空闲(ENTRY_TYPE = 00)。有关从ALE表读取条目的过程,请参见第2-36页的第2.3.6.2节“从ALE表中读取条目”。

ALE表条目类型

本节将介绍ALE表条目的允许配置。ALE表中的所有条目必须是以下类型之一。可以使用第2-36页第2.3.6.2节“从ALE表中读取条目”中描述的过程读取ALE表条目。可以使用第2-36页第2.3.6.3节“将条目写入ALE表”中所述的过程将条目添加到ALE表中。

Free Table Entry

格式如图2-1所示,所需的字段配置如表2-5所示。是表中当前未使用的条目。

Gigabit Ethernet

对于空闲表条目,必须如表2-5所示设置字段。表2-12中提供了ALE表输入字段的一般描述。

Gigabit Ethernet

Multicast Address Table Entry

组播地址表项的格式如图2-2所示,所需的字段配置如表2-6所示。

Gigabit Ethernet

对于组播地址表条目,必须如表2-6所示设置字段。表2-12中提供了ALE表输入字段的一般描述。

Gigabit Ethernet

VLAN/Multicast Address Table Entry

VLAN /组播地址表项的格式如图2-3所示,所需的字段配置如表2-7所示。

Gigabit Ethernet

对于VLAN /组播地址表条目,必须按表2-7所示设置字段。
表2-12中提供了ALE表输入字段的一般描述。

Gigabit Ethernet

Unicast Address Table Entry

单播地址表项的格式如图2-4所示,所需的字段配置如表2-8所示。

Gigabit Ethernet

对于单播地址表条目,必须如表2-8所示设置字段。表2-12中提供了ALE表输入字段的一般描述。

Gigabit Ethernet

OUI Unicast Address Table Entry

OUI单播地址表项的格式如图2-5所示,所需的字段配置如表2-9所示。

Gigabit Ethernet

对于OUI单播地址表条目,必须如表2-9所示设置字段。
表2-12中提供了ALE表输入字段的一般描述。
Gigabit Ethernet

VLAN/Unicast Table Entry

VLAN /单播地址表项的格式如图2-6所示,所需的字段配置如表2-10所示。

Gigabit Ethernet

对于VLAN /单播地址表条目,必须设置字段,如表2-10所示。
表2-12中提供了ALE表输入字段的一般描述。
Gigabit Ethernet

VLAN Table Entry

VLAN表项的格式如图2-7所示,所需的字段配置如表2-11所示。

Gigabit Ethernet

对于VLAN表条目,必须如表2-11中所示设置字段。表2-12中提供了ALE表输入字段的一般描述。

Gigabit Ethernet

ALE Table Entry Field Descriptions

一般ALE表条目字段描述如表2-12所示。

Gigabit Ethernet

Gigabit Ethernet

 ALE数据包转发过程

本节介绍ALE使用的数据包转发过程。对于发送到ALE的每个数据包,它将决定是否应丢弃或转发数据包。如果数据包被转发,则ALE需要确定应该转发到哪个交换机端口或端口。每个端口都有一个关联的数据包转发状态,可以设置为以下四个值之一:

•已禁用

•已阻止

•学习

•转发

默认情况下,禁用所有端口。要启用端口,主机必须在相应的ALE_PORTCTL寄存器中设置数据包转发状态。接收数据包进程将在以下各节中介绍。每个端口的状态将影响数据包是否转发。

数据包可以通过四个进程来确定数据包转发。这些过程是:

•入口过滤

•VLAN感知查找

•VLAN无意识查找

•出口

数据包转发过程从入口过滤过程开始。在数据包入口过程中,有一个针对单播目标地址的前向状态测试,以及针对多播地址的另一个前向状态测试。所使用的前向状态测试由分组中的目的地地址的第40位确定,其将分组指定为多播或单播。多播转发状态测试指示接收端口所需的端口状态以便多播分组。转发到发送端口。发送端口必须处于Forw​​arding状态才能转发数据包进行传输。MCAST_FWD_STATE指示接收端口所需的端口状态,如上表所示。

单播转发状态测试指示接收端口为转发单播分组所需的端口状态。发送端口必须处于Forw​​arding状态才能转发数据包。块和安全位确定单播前向状态测试标准。如果两个位都置位,则在接收端口处于转发/阻塞/学习状态时转发数据包。如果两个位都未设置,则在接收端口处于转发状态时转发数据包。无论如何,发送端口必须处于Forw​​arding状态。

通常,在入口过滤过程中地址查找引擎丢弃有错误接收的分组,而不学习,更新或触摸ALE表中的地址。错误条件和中止由MAC模块指示给ALE。如果已在MAC模块中的MAC_CONTROL寄存器中设置了RX_CMF_EN,RX_CEF_EN或RX_CSF_EN位,则可以通过MAC端口将有错误的数据包传递给主机(未中止)。由MAC模块传递给主机的错误数据包被ALE视为旁路数据包,仅发送给主机。无论数据包是中止还是发送到主机,错误数据包都不会学习,更新或触摸ALE表中的地址。将丢弃主机收到错误的数据包。

•RX_CEF_EN  -  MAC_CONTROL寄存器中的该位允许转发片段,长,jabber,CRC,代码和对齐错误的帧

•RX_CSF_EN  -  MAC_CONTROL寄存器中的该位允许转发短帧

•RX_CMF_EN  - 此位MAC_CONTROL寄存器允许转发MAC控制帧。

如果在配置中启用RX_CEF_EN,RX_CSF_EN,RX_CMF_EN位,则将丢弃与这些标志的描述(即,这些位)对应的错误一起发送的数据包。将启用描述符中的相应错误标志。错误值如表2-13所示。

Gigabit Ethernet

ALE入口过滤过程

本节概述了ALE入口数据包过滤过程。

Gigabit Ethernet

Gigabit Ethernet

ALE VLAN感知查找过程

本节介绍ALE VLAN感知查找过程的行为。

Gigabit Ethernet

Gigabit Ethernet

ALE VLAN无意识查找过程

本节介绍ALE VLAN无意识查找过程的行为。

Gigabit Ethernet

ALE出口流程

本节介绍ALE出口过程的行为。

Gigabit Ethernet

Gigabit Ethernet

ALE学习过程

学习过程应用于未中止的每个接收数据包。学习过程是与分组转发过程同时进行的过程。

Gigabit Ethernet

 串行千兆位媒体独立接口(SGMII)架构

本节概述了SGMII体系结构。该模块的主要功能是在CPGMAC模块使用的GMII数据格式和SerDes模块使用的8B / 10B编码数据格式之间进行转换。SGMII模块还负责建立链路并与其他设备进行自动协商。本节将介绍接收接口,发送接口以及用于连接其他PHY或SGMII设备的多种配置。

SGMII接收接口

SGMII接收接口将来自SerDes的编码接收输入转换为MAC模块所需的GMII信号。

SGMII传输接口

SGMII发送接口将来自MAC模块的GMII输入数据转换为SerDes模块所需的8B / 10B编码输出。MAC模块不发送发送错误信号。来自MAC的任何具有错误的发送帧将被指示为错误。传输错误始终假定为0,并且不输入CRC模块。

在10/100模式下运行时,GMII_MTXD(7:0)数据总线仅使用低半字节。

在链路信号被置为无效时,来自CPGMAC的数据传输中的任何数据包都将被忽略。只传输在链路上升沿之后开始的数据包。

 运作模式

本节介绍SGMII模块支持的操作模式。

Digital Loopback

本节介绍SGMII支持的环回模式,并给出如何在环回模式下配置SGMII模块的说明。

SGMII模块支持将发送信号内部连接到接收信号的能力。值得注意的是,这是数字环回,因为发送和接收信号在到达SerDes模块之前已连接。在此配置中,发送时钟(TX_CLK)用于发送和接收时钟。可以通过置位SGMII_CONTROL寄存器中的LOOPBACK位来进入环回模式。进入或退出环回模式时,使用SOFT_RESET寄存器中的RT_SOFT_RESET位复位发送和接收逻辑非常重要。

进入或退出环回模式的顺序如过程2-3所示。

Gigabit Ethernet

SGMII到PHY配置

本节介绍在运行SGMII模式时如何配置SGMII以连接外部PHY。图2-8显示了此配置的示例。

Gigabit Ethernet

要连接外部PHY,PHY将成为主设备,SGMII模块需要配置为从设备模式。将SGMII设置为从机模式的过程如下所示:

Gigabit Ethernet

使用自动协商配置的SGMII到SGMII

本节介绍如何配置SGMII设备以通过自动协商与另一个SGMII设备连接。下图显示了此配置的示例。

Gigabit Ethernet

使用自动协商连接两个SGMII设备时,必须将一个SGMII设备配置为主设备,并将另一个SGMII设备配置为从设备。

具有自动协商功能的SGMII主模式

使用自动协商在主模式下设置SGMII的过程如下所示:

Gigabit Ethernet

具有自动协商的SGMII从模式

使用自动协商将SGMII设置为从属模式的过程如下所示:

Gigabit Ethernet

Gigabit Ethernet

SGMII到SGMII使用强制链路配置

本节介绍如何配置SGMII设备以使用强制链接连接另一个SGMII设备。在下图中显示了此配置的示例。

Gigabit Ethernet

使用强制链接连接两个SGMII设备时,必须将两个SGMII设备配置为主设备。

使用强制链接在主模式下设置SGMII的过程如下所示:

Gigabit Ethernet

管理数据输入/输出(MDIO)架构

本节介绍管理数据输入/输出(MDIO)模块的体系结构。MDIO模块最多可管理连接到以太网媒体访问控制器(EMAC)的32个物理层(PHY)设备。MDIO模块几乎可以透明地操作MDIO接口,而DSP几乎不需要维护。
MDIO模块通过连续轮询32个MDIO地址来枚举系统中的所有PHY设备。一旦检测到PHY设备,MDIO模块就会读取PHY状态寄存器以监控PHY链路状态。MDIO模块存储可以中断CPU的链接更改事件。事件存储允许DSP轮询PHY设备的链路状态,而无需连续执行MDIO模块访问。
当系统必须访问MDIO模块进行配置和协商时,MDIO模块将独立于DSP执行MDIO读或写操作。
这种独立的操作允许DSP在操作完成后轮询完成或中断CPU。

全局PHY检测和链路状态监测

MDIO模块通过连续轮询所有32个MDIO地址的通用状态寄存器中的链路状态来枚举系统中的所有PHY设备。该模块跟踪特定地址上的PHY是否已响应,将结果存储在ALIVE寄存器中。MDIO模块还跟踪PHY当前是否有链接,将结果存储在LINK寄存器中。此信息允许软件应用程序快速确定PHY正在使用哪个MDIO地址,以及系统是否使用多个PHY。然后,软件应用程序可以根据其当前链路状态在PHY之间快速切换。还可以使用MLINK引脚输入确定32个可能PHY地址中的两个的链路状态。USERPHYSELn寄存器中的LINKSEL位确定使用的状态输入。
如果由USERPHYSELn寄存器中的LINKINTENB位使能,则被监视的两个PHY的链路状态的变化将设置LINKINTRAW寄存器和LINKINTMASKED寄存器中的相应位。


用户访问PHY寄存器

当DSP必须访问MDIO进行配置和协商时,PHY访问模块执行独立于DSP的实际MDIO读或写操作。因此,当执行读或写操作时,DSP可以轮询完成或接收中断。有两个用户访问寄存器USERACCESS0和USERACCESS1,它们允许软件同时提交最多两个访问请求。请求按顺序处理。

在任何时候,主机都可以定义MDIO模块使用USERACCESSn寄存器中的DATA,PHYADR,REGADR和WRITE字段进行的事务。当主机在此寄存器中设置GO位时,MDIO模块将开始事务,而无需主机的任何进一步干预。完成后,MDIO接口将清零GO位,并将USERINTRAW寄存器中的USERINTRAW位置1,该寄存器对应于正在使用的USERACCESSn寄存器。
USERINTMASKED寄存器中的相应位也可以根据UINTMASKSET和USERINTMASKCLK寄存器中的掩码设置进行设置。循环仲裁方案用于调度可由主机在不同的USERACCESS寄存器中排队的事务。在启动新事务之前,主机应检查USERACCESSn寄存器中GO位的状态,以确保先前的事务已完成。主机可以使用USERACCESSn寄存器中的ACK位来确定读取事务的状态。此外,主机发起的任何PHY寄存器读取事务也会导致MDIOALIVE寄存器更新。
将数据写入PHY寄存器

MDIO模块包括用户访问寄存器(USERACCESSn)以直接访问指定的PHY设备。要编写PHY寄存器,请执行以下步骤:

1.确保清除USERACCESSn寄存器中的GO位。

2.写入USERACCESSn中与所需PHY和PHY寄存器对应的GO,WRITE,REGADR,PHYADR和DATA位。

3.对PHY的写操作由MDIO模块调度和完成。

4.完成写操作会将GO位清零,并将USERINTRAW寄存器中的相应位设置为相应的USERACCESSn。

- 如果使用USERINTMASKSET寄存器在该位上使能了中断,则该位也在USERINTMASKED寄存器中置1,并在DSP上触发中断。

- 如果尚未启用中断,则可以通过将USERACCESSn中的GO位轮询为0来确定完成。

从PHY寄存器读取数据

MDIO模块包括用户访问寄存器(USERACCESSn)以直接访问指定的PHY设备。要读取PHY寄存器,请执行以下操作:

1.确保清除USERACCESSn寄存器中的GO位。

2.写入USERACCESSn中与所需PHY和PHY寄存器对应的GO,REGADR和PHYADR位。

3.模块完成串行总线上的读操作后,读数据值在USERACCESSn的DATA位中可用。

4.成功读取操作的完成将清除GO位,将ACK位置1,并将USERINTRAW寄存器中的相应位设置为使用的USERACCESSn。

- 如果使用USERINTMASKSET寄存器在该位上使能了中断,则该位也在USERINTMASKED寄存器中置1,并在DSP上触发中断。

- 如果尚未使能中断,则可以通过将USERACCESSn中的GO位轮询为0,将ACK位轮询为1来确定完成。

MDIO中断

MDIO模块提供两组可由用户启用的中断。当正在监视的PHY的链路状态发生变化时,将触发第一组中断。当通过USERACCESS寄存器启动的PHY寄存器访问完成时,将发生第二组中断。

MDIO链路状态中断

如果与USERPHYSELn寄存器的PHYADR_MON字段中的地址对应的PHY的链路状态发生变化并且相应的LINKINTENB位置1,则MDIO模块将置位MDIO_LINKINT信号。
LINKINTMASKED事件也在LINKINTMASKED寄存器中捕获。
LINKINTMASKED [0]和LINKINTMASKED [1]分别对应于USERPHYSEL0和USERPHYSEL1寄存器。

MDIO用户访问中断

当USERACCESS寄存器中的GO位从1转换为0(表示用户访问完成),并且USERINTMASKSET寄存器中的相应USERINTMASKED位置1时,USERINTMASKED信号置为1。USERINTMASKED事件也在USERINTMASKED寄存器中捕获。
USERINTMASKED [0]和USERINTMASKED [1]分别对应于USERACCESS0和USERACCESS1寄存器。


初始化MDIO模块

要使应用程序软件或设备驱动程序初始化MDIO设备,请执行以下步骤:

1.配置MDIO_CONTROL寄存器中的PREAMBLE和CLKDIV位。

2.通过将MDIO_CONTROL寄存器中的ENABLE位置1来使能MDIO模块。

3.可以在延迟后读取ALIVE寄存器以确定哪些PHY响应,并且LINK寄存器可以确定哪些(如果有)已经有链路。

4.在USERPHYSELn寄存器中设置适当的PHY地址,并设置LINKINTENB位以启用链接更改事件中断(如果需要)。

5.如果需要对通用MDIO寄存器访问进行中断,则将USERINTMASKSET寄存器中的相应位置1以使用USERACCESSn寄存器。如果仅使用一个PHY,则应用软件可以设置其中一个USERACCESSn寄存器以触发完成中断。另一个寄存器未设置。


KeyStone I Serializer/Deserializer (SerDes) Architecture

SerDes宏是一个独立的宏,包括两个发送器(TX)和接收器(RX)对,以及锁相环(PLL)。每个发送器和接收器对都与SGMII模块之一连接。内部PLL乘以用户提供的参考时钟。

重置注意事项

GbE交换机子系统支持KeyStone I中两个以太网交换机端口的重置隔离,或KeyStone II中的四个。重置隔离的目的是允许数据包在两个以太网端口之间切换,而系统的其余部分正在进行重置。当ISOLATE输入有效时,下面同时发生:

•从ALE处理中删除GbE交换机主机端口(端口0)(用于端口0的端口1和2上接收的数据包将被丢弃)

•来自队列管理器子系统的GbE交换机主机端口(端口0)的数据包将被丢弃。ISOLATE声明时当前正在进行的任何数据包由于接收数据包代码错误而丢弃(并且可能出现CRC或FRAG错误)

•GbE交换机主机端口(端口0)队列中的出口数据包被丢弃

•(对于KeyStone II)异步流数据包接口上的FIFO被重置。

有关GbE交换机子系统的重置隔离的详细信息,请参阅特定于设备的数据手册。

初始化

本节介绍GbE交换机子系统初始化过程。

Gigabit Ethernet

中断支持

中断事件

本节介绍GbE交换机子系统中生成的中断。在GbE交换机子系统中,有三个可以生成中断的模块:MDIO模块,统计模块和时间同步模块。有关MDIO模块生成的中断的更多信息,请参见第2.5节。有关统计模块生成的中断的更多信息,请参见第2.3.4节。有关时间同步模块生成的中断的更多信息,请参见第2.3.5节。

能源管理

千兆以太网(GbE)交换机子系统以时钟门控的形式提供电源管理。虽然NETCP确实具有可以启用或禁用的电源域,但GbE交换机子系统只是该电源域中的一个模块,并且无法为NETCP中的各个模块启用或禁用电源。
有关更多信息,请参阅设备特定数据手册。