杂记:Cortex™-A8 am335x cpsw (一)

来源:互联网 发布:数据分析师职业前景 编辑:程序博客网 时间:2024/05/30 04:30

14.1简介

3口的以太网子系统。它提供以太网包通信,并且可以配置成以太网交换机,提供GMII,RGMII,RMII,MDIO物理接口。

14.2一览

这个设备包含一个3口的千兆以太网交换机子系统CPSW_3GSS_RG,它提供两个外部的以太网接口port1和port2,

和一个内部的支持IEEE 1588v2 and 802.1ae的接口port0。

14.3功能描述

14.3.1 cpsw_3g 子系统

14.3.1.1中断调速

接受和发送脉冲中断可以调速,接收越线和混杂中断不能调速。

14.3.1.2重启隔离

只有POR pin reset and ICEPICK COLD reset可以让交换机重启。

14.3.1.3

14.3.1.3.1 接收Packet完成脉冲中断RX_PULSE

八通道,RX_PEND [7:0] interrupts.

置一相应的位RX_INTMASK_SET,Cn_RX_EN,被屏蔽的可以从Cn_RX_STAT得到

中断通过子系统写packet的最后一个buffer描述符地址到通道队列的接收完成指针地址。

中断接收到后,cpu需要写自己处理的最后一个buffer描述符到通道队列的接收完成指针地址RXn_CP来应答中断。

软件需要做如下操作。

读RX_STAT寄存器,确定那个通道发的中断。

处理接收到的packets。

写3PSW completion pointer(s) (RXn_CP).软件写的值会和子系统写的值相比较,如果不相等,则意味着,软件没有

· 把所有的buffer处理完,这个中断会一直保持触发状态。通过读RXn_CP,可以知道子系统写的值。

对CPDMA_EOI_VECTOR寄存器写1.

取消中断如下:

写一到RX_INTMASK_CLEAR,RX_EN清零

14.3.1.3.2发送Packet完成脉冲中断TX_PULSE

与接收套路一样

14.3.1.3.3

使能写一到RX_INTMASK_SET,RX_THRESH_EN

中断触发,通告空闲buffer计数RXn_FREEBUFFER,小于等于RXn_PENDTHRESH。

读Cn_RX_THRESH_STAT,确定那个通道

处理接收到的packets并增加更多的buffer。

写完成指针地址。

写0到CPDMA_EOI_VECTOR

禁止:RX_INTMASK_CLEAR写一,清零RX_THRESH_EN

14.3.1.3.4混杂中断(EVNT_PEND, STAT_PEND, HOST_PEND, MDIO_LINKINT, MDIO_USERINT).

Cn_MISC_EN[4:0 ]Cn_MISC_STAT[4:0]

   读Misc_Stat[4:0],确定中断源

处理中断

(0x3)写到CPDMA_EOI_VECTOR

MDIO_LINTINT[1] and MDIO_USERINT[1]没用到


14.3.2 cpsw_3g

符合IEEE Std 802.3标准

它包含两个CPGMAC_SL 接口(ports 1 and 2),

一个CPPI 3.0接口(port 0),

通用平台时间对时cpts

ale engine(adress lookup engine)

cpdma

14.3.2.4 CPDMA RX and TX 接口

CPDMA 子模块是cppi3.0协议的dma packets传输控制器,他是port0。

主控写 STATERAM块里面的 发送通道头描述符指针地址 来初始化发送操作。

这样发送dma控制器会从packet链里面取出packet发送到外部的发送fifo里面去,64字节最大一次。

接收差不多

14.3.2.4.1 CPPI Buffer 描述符

描述符用来描述一个buffer的信息,并且描述符是链表形式连接在一起的。

8K的cppi ram 地址从0x4a102000到0x4a103FFF。

14.3.2.4.1.1 TX Buffer 描述符

Next Descriptor Pointer下一描述符指针,标识下一个描述符的地址。

主控设置,emac不会设置。一旦加入了发送queue,不要改,除非这个值为NULL,并且有新的

描述符要添加到它的后面。如果在添加之前,emc就已经处理完了NULL的描述符(读EOQ标识),则需要重新启动发送。

Buffer Pointer

主控设置,emac不会设置。

Buffer _Offset

buffer头部有多少字节不能用。只有sop(pakcet头有用)

Buffer _Length

buffer中有效字节长度,不包括无用字节数offset,必须要大于零。

Start of Packet (SOP) Flag

主控设置,emac不会设置。指示是一个新packet的第一个buffer描述符。

End of Packet (EOP) Flag

主控设置,emac不会设置。指示是一个packet的最后一个buffer描述符。

Ownership

为一的话表明从sop到eop的描述符现在控制权在emac。主控设置1,emac清零如果发送完了

只用在sop描述符上。

EOQ

为一的话表明,这个描述符是整个发送通道的最后一个描述符,并且发送被挂起。

主控清零,emac置一。

只用在eop描述符上。

teardown_Complete

只有在device driver reset or shutdown conditions

emac置一 在所有的sop描述符上

pass_crc

主控置一,在sop上

标识packet数据里面已经有4字节的crc校验了。emac不要再添加了

to_port

发送到哪个port上去,sop有效

但是ale查询会执行 用来确定没有标签的出口  在VLAN_AWARE模式

To_port_enable

sop有效,只送往一个port

Packet Length

所有buffer加在一起,整个packet的有效长度。sop有效。如果长度不对会触发错误中断


14.3.2.4.1.2 RX Buffer Descriptors

rx_vlan_encap

置一表明,这个packet有32bit的vlan头。被CPSW control register rx_vlan_encap bit控制

14.3.2.4.2 Receive DMA Interface

Initialize the receive addresses.
• Initialize the Rx_HDP Registers to zero.
• Enable the desired receive interrupts in the IntMask register.
• Write the rx_buffer_offset register value.
• Setup the receive channel(s) buffer descriptors in host memory as required by CPPI 3.0.
• Enable the RX DMA controller by setting the rx_en bit in the Rx_Control register.


14.3.2.4.3 Transmit DMA Interface

 8个通道,优先级固定模式,和round robin模式,7最高。TX_VBUSP接口64字节发送。

Initialize the Tx_HDP registers to a zero value.
• Enable the desired transmit interrupts in the IntMask register.
• Setup the transmit channel(s) buffer descriptors in host memory as defined in CPPI 3.0.
• Configure and enable the transmit operation as desired in the TxControl register.
• Write the appropriate Tx_HDP registers with the appropriate values to start transmit operations.

14.3.2.5 VLAN Aware Mode

  CPSW Control register的 vlan_aware bit 置一。

  port0从cpsw_3g接收的packets也许是或者不是vlan封装的,决定于CPSW Control register的 rx_vlan_encap bit.

  port0接收的数据不会更改。vlan封装数据有个32位的头加在包的数据上。从packet描述符中的 rx_vlan_encap判断。

  port0不能发送vlan封装的包。

  这种模式下,发送packet的数据会根据头改变。

14.3.2.7 Address Lookup Engine (ALE)

判据:

  接收port

目的地址

源地址

长度和类型

vlan信息。

使能:ale_enable bit in ale_control寄存器

不使能,所用packet都会丢弃。

正常情况下,cpgmac_sl会把异常数据packet丢弃,除非设置了cef, csf, or cmf,这样只送往port0.

学习基于源地址,查找基于目的地址。

在bypass模式下,ale_bypass bit in the ALE_Control寄存器。

cpgmac_sl接收的数据只会送往port0,CPDMA_Rx_Ch_Map register.使得packet从不同通道发送。

port0 在发送的时候需要制定发送port号。

在oui禁止模式,enable_oui_deny bit in the ALE_Control寄存器。

oui源地址不匹配,packet被丢弃,除非目的地址匹配广播条目且super bit置位。

广播packet 广播地址有条目且super bit置位

单播地址  地址有条目且block 和 secure bit置位

以上是所谓Supervisory packets。

14.3.2.7.1 Address Table Entry

   1024个条目。代表

空的

地址

vlan

vlan和地址对

oui地址

不能有两个相同地址条目。

多播地址在ale处理前需要改成单播地址,改变他的第40位。

如果packet的源地址和目的地址相同则:学习或更新,且丢弃。

14.3.2.7.1.2 Multicast Address Table Entry

Multicast Forward State (MCAST_FWD_STATE)

表明port状态,接收port需要的状态,为了把packet转发到发送port的 用于packet的目的地址t的查找的状态。

  发送port必须在Forwarding state。

 转发状态测试为真。当发送和几首port都在需要的状态下。

14.3.2.7.1.3 VLAN/Multicast Address Table Entry

14.3.2.7.1.4 Unicast Address Table Entry

DLR Unicast  

1到2,2到1  ,0到1或2

匹配的目的地址发送到vlan_member_list,port_number被忽略。

Block (BLOCK)

源地址或目的地址匹配,则packet丢弃。

Secure (SECURE)

源地址与条目相同,但是接收的port号与条目的port不相匹配,则丢弃。

14.3.2.7.1.5 OUI Unicast Address Table Entry

14.3.2.7.1.6 VLAN/Unicast Address Table Entry

14.3.2.7.1.7 VLAN Table Entry

VLAN ID (VLAN_ID) 12bit

Force Untagged Packet Egress (FORCE_UNTAGGED_EGRESS)

强制去掉vlan封装

VLAN Member List (VLAN_MEMBER_LIST)

vlan包含的的port

14.3.2.7.2 Packet Forwarding Processes

 四道工序,Ingress Filtering, VLAN_Aware Lookup, VLAN_Unaware Lookup, and Egress.

每个port都有packet转发状态 四种  block forwarding learning,disabled(默认)

接收工序,有转发状态测试。


0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 喷泡3m反光脏了怎么办 新摩托车被交警查到怎么办 写字楼保安夜班巡逻害怕怎么办 全民k歌歌曲删了怎么办 莲藕洞里的黑膜怎么办 鞋子后面的拉链磨脚怎么办 磨砂鞋尖踢掉皮怎么办 塔吊吊装过程中遇到障碍物怎么办 高速路上突然遇到障碍物怎么办 被不明物蛰了怎么办 喝酒后开车撞路政护栏怎么办 电脑过了质保期怎么办 电闸推不上去怎么办啊? 寝室的电闸不亮了怎么办 海绵城市改造只挖不修怎么办 怀孕一个月做了胸透怎么办 怀孕了照了胸透怎么办 刚怀孕照了胸透怎么办 怀孕进了ct室怎么办 消防稳压罐气囊压力不够怎么办 备孕期间拍了ct怎么办 晚上睡不好老做梦怎么办 零线和地线短路怎么办 火花塞拧的过紧怎么办 眼睛被电弧光灼伤怎么办 电脑模拟器微信附近人屏蔽了怎么办 美的电压锅漏气怎么办 电压力锅排气阀漏气怎么办 win10系统上不了网怎么办 手机自拍杆坏了怎么办 车辆遭核生化打击时怎么办? 遭核生化打击时怎么办? 车辆行驶中遭核生化打击时怎么办? 硫酸气体熏到嗓子怎么办 硫酸味儿进嗓子了怎么办 吸入二氧化氯气体后怎么办 衣服84消毒 变色了怎么办 我的身份证被诈骗犯知道了怎么办 母婴店来客人少怎么办 键盘驱动被卸载了怎么办 广州 狗狗随地大小便怎么办