欢迎光临苏州聚永达电子科技有限公司官方网站!

全国服务热线: 17310315537

新闻资讯

NEWS

联系我们

CONTACT US

苏州聚永达电子科技有限公司

联系人:马经理

手机:17310315537

邮箱:mayong@hvpsc.com

地址:苏州市高新区滨河路 588号3幢1011室

网址:www.hvpsc.com

企业动态

当前位置:网站首页 > 电源资讯 企业动态

摘要

留意:PA LLD 供给的函数如Pa_addIp,Pa_addMac 等,都供给了不指定下标的方法添加表项,函数的参数为不指定下标的时刻,PA LLD 的处理为大年夜下标较大年夜的开端添加。例如当某个64 表项的表为空,而两次调用Pa_addIp 添加表项并不指定表项地位的时刻,第一次添加的表项在No.63 的地位,第二次添加的表项在No.62 地位。

      Keystone I 系列芯片 (C6670,C6671,C6672,C6674,C6678, TCI6614) 的以太网子体系可以划分为三个功能实体:内部Switch(SGMII Serdes/SGMII/EMAC/CPSW), PA(包加快器),SA(安然加快器)。 该子体系因为包含的子模块多,相对较为复杂,相干的四本用户手册内容组织并不是很轻易懂得,不罕用户在开辟过程中都碰到了一些技巧难题。本手册总结实际应用中碰到的部分典范的技巧问题和各类问题的调试办法,同时也供给以太网子体系的各类实用设备和建议。对于具备根本Keystone I 以太网常识的用户,本手册可以作为用户手册的有力弥补。 期望读者在初步浏览user guide 和具备根本的PA LLD/SA LLD 开辟经验今后再查阅本文。      

1.  以太网子体系解释  

在用户手册中,以太网子体系可以称为收集协处理器子体系(NETCP),其重要构成模块有:

       1.以太网交换部分

          重要模块有Serdes,SGMII, EMAC,三端口交换机等

       2.包加快器

          重要模块有6 个PDSP,3 个一级的查找表,1 个二级的查找表,对应的Packet DMA 等

      3.安然加快器

         重要模块有2 个PDSP,加解密和鉴权引擎等

留意:

以太网子体系的┞符个初始化过程,一般推荐采取大年夜内到外的次序:

PA PAKET DMA->PA PDSP->3 port switch/CPSW->EMAC->SGMII->SGMII Serdes

2.  SGMII

2.1 SGMII SerDes 设备

Serdes 的设备重要与供给的Serdes 时钟相干,下面给出一个对应不应时钟频率的设备示例:

312.5MHz-> SGMII PLL Configuration Register 0x41, 

250MHz-> SGMII PLL Configuration Register 0x51, 

156.25MHz-> SGMII PLL Configuration Register 0x81

设备完毕今后,请留意检查SGMII SerDes Status Register (SGMII_SERDES_STS)的最低Lock 位是否为1。

2.2 SGMII 与PHY的连接

     当SGMII 与PHY 连接的时刻,SGMII 必定是Slave 模式,一般情况下同时使能自协商。

2.3 SGMII 与Switch的连接

      对于支撑 SGMII 标准的外部 switch 与 Keystone I 芯片连接的时刻,可以一端设备为master,另一端设备为slave,同时使能自协商模式。然则对于只支撑1000BASE-X 的switch 与Keystone I 芯片连接的时刻,应当将两端都设置为master 模式,并禁止自协商,强迫为1000M 全双工。

      1.当 PDSP1 根据 IPSec AH  的 SPI 将包分类并路由到 SA 的时刻,将须要一个 Rx Flow 的设备(在LUT1-1 的设备),假定设备为Rx Flow No.1 (FDQ No.1000,包含余暇描述符/buffer 16 个) 。

2.4 MDIO接口与PHY的┞菲握

经由过程MDIO 控制存放器MDIO_CONTROL 可以对外接的PHY 进行控制,按照用户手舶建议设备到2.5MHz。须要留意的是:

      1.MDIO 模块初始化后,应当先经由过程MDIO 攫取PHY 的ID 存放器,确认该连接是否正常。

      2.攫取MDIO 模块的PHY Alive Status Register (ALIVE)获取PHY ID (留意PHY ID 是0~31)

      3.将第二步读到的PHY ID 作为PHY address  写到MDIO User Access Register 0 (USERACCESS0)或者MDIO User Access Register 1 (USERACCESS1)中拜访对应的PHY 存放器

2.5 1000M半双工的问题解释

Keystone I 不支撑1000M 半双工的应用,当外接的PHY 或者是switch 支撑1000M 半双工时,可能会对keystone I 的收集功能造成影响。特别是当某些PHY 在复位过程中,可能会提议1000M 半双工的请求,这种情况下,请在体系上电初始化时先经由过程MDIO 接口封闭PHY 的1000M 半双工协商才能。

3.  EMAC

3.1 VLAN aware模式和VLAN unaware模式

      1.VLAN unaware 模式下所有的包不会被改变

      2.VLAN aware 模式的设备步调:

           A.设备GbE switch Control 存放器(CPSW_CONTROL)的VLAN_AWARE 比特

           C.设备P0_PORT_VLAN, P1_PORT_VLAN 和P2_PORT_VLAN 存放器

      3.VLAN aware 模式对不合包的不合策略: 

           A.对于untagged 包,插入端口所设备的VLAN 头

           B.对于priority tagged 包,根据CPSW_CONTROL 中的

P0_PASS_PRI_TAGGED/P1_PASS_PRI_TAGGED/P2_PASS_PRI_TAGGED  设备,如不雅该位为 0(default),则该端口上收到的priority tagged 包中的VLAN ID 会被调换为该端口设备的VLAN ID。

3.2    EMAC 的复位

      EMAC 模块供给了一个软复位的存放器,一般情况下在芯片上电复位启动后,不建议应用该存放器对EMAC 模块做零丁的复位操作,该复位操作后可能会引起以太网包收发异常,请谨慎应用。

      对于Keystone I 的芯片来说,一般可以设备3 个MAC 地址。以C6678 为例,

      MACID1 (0x02620110) 和MACID2 (0x02600114)  

      该MAC 地址是出厂时,TI 写到芯片的Efuse 里的,类似于一个芯片ID,只读弗成修改。如不雅芯片选择以太网boot 方法,芯片会以该地址发出bootp 的报文(Ethernet ready announcement)

      MAC1_SA_LO (0x2090870)和MAC1_SA_HI (0x2090874)

     MAC2_SA_LO (0x20908A0)和MAC2_SA_HI (0x20908A4)

      以上两个MAC 地址是分别设备给两个EMAC 端口的,但该地址的感化仅限于使能以太网Rx 流控今后,封装发到收集上的流控帧,并不按MAC 地址过滤以太网包。

      因为Keystone 芯片有包加快器(PA),MAC 地址的过滤应当由设备PA 来完成,所以可以认为Keystone I 的EMAC 模块工作在混淆模式(Promiscuous mode)。 换句话讲,所有的报文都邑吸结束到PA 进行过滤,大年夜营业层面,对于一颗Keystone I 的芯片理论上最大年夜可以设备64 个MAC 地址(LUT1-0 有64个表项)。

图1    以太网子体系框图

4.  CPSW

6.3 帮助存放器

4.1.1 MAC地址的老化问题

      因为 ALE 只有 1K 个表项,且硬件没有供给内部的 timer 来主动保护一个老化周期,所以应用法度榜样须要本身保护一个 timer。 Time 第一次超时,应用法度榜样对ALE_CONTROL 存放器的AGE_OUT_NOW 比特置位,会导致所有ageable  的ALE Entry 被设置为untouched;  第二次timer 超时,再次设置ALE_CONTROL 存放器的 AGE_OUT_NOW 比特,在两次超时之间仍保持为 untouched 的表项将会被清除。如不雅在两次超时之间,有包交换并从新touched 的表项将会被保存。

4.1.2 ALE Bypass

      设置 ALE bypass 只是注解大年夜收集外发到芯片的包,将不会经由过程查找 ALE 再交换,而是无前提发送到HOST port。 而大年夜HOST port 发送到外部的收集的包仍然要经由过程ALE 交换。

4.1.3 未知的单播,多播,广播包

     3.根据前两步的结不雅,我们可以知道,有2个数据包在PDSP0收到后持续传给了PDSP1 

      1.在某一个端口收到的,ALE 中无法匹配的多播和广播包会被广播到另两个端口。

      2.在HOST 端口收到的,ALE 中无法匹配的单播包,会被发送到两个SGMII 端口。

      3.在某SGMII 端口收到的,ALE 中无法匹配的单播包,只会被发送另一个SGMII 端口。

4.2 以太网子体系环回设备及其应用

以太网子体系供给如图的SGMII Serdes 环回,SGMII digital 环回,CPSW FIFO 环回。

     留意环回的偏向,SerDes 环回,SGMII digital 环回和CPSW FIFO 环回都有内环的功能,也就是芯片内的CPU(包含DSP core, ARM core)向外发的包会被环回到芯片。因为产生环回的节点不一样,所以可以应用这几种环回来定位以太网设备问题。示例:

      1.CPSWFIFO 环回成功,而Serdes 环回和digital 环回掉败,根本可以剖断EMAC/SGMII 设备有问题

      2.CPSWFIFO 环回和digital 环回成功,而Serdes 环回掉败,根本可以剖断SGMII Serdes 设备有问题

      3.CPSWFIFO 环回,digital 环回和CPSW FIFO 环回都成功,解释CPSW 以基层的设备在根本是精确的

      CPSW FIFO 环回还包含了外环的功能,也就是大年夜外部收集(PHY/Switch)进入芯片的包会被环回到外部收集,芯片内的 CPU core 将无法术到这些包。这个功能可以用以剖断 PHY/switch 与keystone I 的连接设备是否精确。留意CPSW FIFO 环回只能用于debug, 使能今后不克不及动态的去使能,也就是说使能今后若想恢复正常状况,必须半数个SoC 下电,从新上电复位。

4.3 以太网流控

      Rx 流控的意义是CPSW 检测到FIFO 跨越必定的门限今后,该端口主动向收集外发出以太网流控帧。该流控帧的发送量是30pps。

      Tx 流控的意义是CPSW 检测到收集对端发出的流控帧,申报给HOST(DSP/ARM),由HOST 软件来裁决削减发送的收集流量。

      须要留意的是,如不雅Rx FIFO 的┞芳用情况一向知足Rx 流控的检测前提,Rx flow control 帧会赓续的发送到收集上,这种情况多涌如今上层软件或者PA/SA 出现某种异常的场景下。

4.4 CPSW的统计存放器

      1.存放器实际都是R/W 属性,比如当你读到一个存放器的值为0x80,回写大年夜于0x80 的数字,会导致该存放器的值清0。 实际对该组存放器的写操作是减法关系,如不雅该存放器正在动态变更中,对它进行写操作并不会导致统计值的损掉。比如当你读到一个存放器的值为0x80,回写0x80 的时刻该存放器实际的值已经变为0x90(因为该时刻有包的收发),则此时写0x80 的结不雅是该存放器的值变为0x90-0x80=0x10。

     2.CPSW 的统计存放器有两组,个中STATA 是对应于HOST port, STATB 是两个SGMII port 的和

     3.对于统计存放器中的Rx,Tx 分别都是站在CPSW 模块的角度统计的结不雅,换句话说,统计STATA中的Rx 表示的是HOST port 大年夜DSP/ARM cores 收进CPSW 的包,Tx 表示的是大年夜HOST port 发出CPSW 到DSP/ARM core 的包;而统计STATB 中的Rx 表示的昵嘟个SGMII 端口大年夜收集收进来的包,Tx 表示的是大年夜两个SGMII 端口发送到外部收集的包。

简单的示例:

1)    如不雅一个包大年夜收集外发送到Keystone I 芯片,DSP/ARM core 没有收到

       1.检查STATB 的Rx 存放器

       2.检查STATA 的TX 存放器

2)    如不雅一个包大年夜DSP/ARM core 发送到收集外,收集膳绫腔有收到

      3.当PDSP1 根据IPSec ESP 的SPI 将包分类并路由到SA 的时刻,设备Rx Flow No.1 (FDQ No.1000,包含余暇描述符/buffer 16 个) 。

      1.检查STATA 的Rx 存放器

      2.检查STATB 的TX 存放器

      留意这个办法异常合适诊断某些包未按照预想的规矩匹配/路由的情况,软件只须要将测试包发到640 队列(忽视以太网子体系其他的模块的初始化过程)就可以开端测试。然则对于发包量比较大年夜的测试,产生的Log 文件可能过于宏大年夜。

      3.一般情况下RXSOFOVERRUNS/ RXMOFOVERRUNS/ RXDMAOVERRUNS 存放器都为0,在某些特定前提下,如以太网子体系reset 过程中收到包,这些存放器出现较小的值且不增长是正常的。但如不雅这些存放器出现赓续增长且收包流量并不大年夜,这种情况一般解释以太网收包异常,平日异常是因为收包的软件模块异常或者PA 子体系异常造成的。

4.5   802.1P VLAN QoS 的设备

图3    CPSW FIFO示意图

 

     以太网子体系供给如图的SGMII Serdes 环回,SGMII digital 环回,CPSW FIFO 环回。

     留意环回的偏向,SerDes 环回,SGMII digital 环回和CPSW FIFO 环回都有内环的功能,也就是芯片内的CPU(包含DSP core, ARM core)向外发的包会被环回到芯片。因为产生环回的节点不一样,所以可以应用这几种环回来定位以太网设备问题。示例:

      1.CPSWFIFO 环回成功,而Serdes 环回和digital 环回掉败,根本可以剖断EMAC/SGMII 设备有问题

      2.CPSWFIFO 环回和digital 环回成功,而Serdes 环回掉败,根本可以剖断SGMII Serdes 设备有问题

      3.CPSWFIFO 环回,digital 环回和CPSW FIFO 环回都成功,解释CPSW 以基层的设备在根本是精确的

      CPSW FIFO 环回还包含了外环的功能,也就是大年夜外部收集(PHY/Switch)进入芯片的包会被环回到外部收集,芯片内的 CPU core 将无法术到这些包。这个功能可以用以剖断 PHY/switch 与keystone I 的连接设备是否精确。留意CPSW FIFO 环回只能用于debug, 使能今后不克不及动态的去使能,也就是说使能今后若想恢复正常状况,必须半数个SoC 下电,从新上电复位。

4.3 以太网流控

      Rx 流控的意义是CPSW 检测到FIFO 跨越必定的门限今后,该端口主动向收集外发出以太网流控帧。该流控帧的发送量是30pps。

      Tx 流控的意义是CPSW 检测到收集对端发出的流控帧,申报给HOST(DSP/ARM),由HOST 软件来裁决削减发送的收集流量。

      须要留意的是,如不雅Rx FIFO 的┞芳用情况一向知足Rx 流控的检测前提,Rx flow control 帧会赓续的发送到收集上,这种情况多涌如今上层软件或者PA/SA 出现某种异常的场景下。

5.4 PA的固件和Low level driver

      1.上两步的初始化过程将在simulator 的安装路径(如CCS 安装路径

4.4 CPSW的统计存放器

     1.存放器实际都是R/W 属性,比如当你读到一个存放器的值为0x80,回写大年夜于0x80 的数字,会导致该存放器的值清0。 实际对该组存放器的写操作是减法关系,如不雅该存放器正在动态变更中,对它进行写操作并不会导致统计值的损掉。比如当你读到一个存放器的值为0x80,回写0x80 的时刻该存放器实际的值已经变为0x90(因为该时刻有包的收发),则此时写0x80 的结不雅是该存放器的值变为0x90-0x80=0x10。

     2.CPSW 的统计存放器有两组,个中STATA 是对应于HOST port, STATB 是两个SGMII port 的和

     3.对于统计存放器中的Rx,Tx 分别都是站在CPSW 模块的角度统计的结不雅,换句话说,统计STATA中的Rx 表 示的是HOST port 大年夜DSP/ARM cores 收进CPSW 的包,Tx 表示的是大年夜HOST port 发出CPSW 到DSP/ARM core 的包;而统计STATB 中的Rx 表示的昵嘟个SGMII 端口大年夜收集收进来的包,Tx 表示的是大年夜两个SGMII 端口发送到外部收集的包。

简单的示例:

1)    如不雅一个包大年夜收集外发送到Keystone I 芯片,DSP/ARM core 没有收到

       1.检查STATB 的Rx 存放器

       2.检查STATA 的TX 存放器

2)    如不雅一个包大年夜DSP/ARM core 发送到收集外,收集膳绫腔有收到

       1.检查STATA 的Rx 存放器

       2.检查STATB 的TX 存放器

       3.一般情况下RXSOFOVERRUNS/ RXMOFOVERRUNS/ RXDMAOVERRUNS 存放器都为0,在某些特定前提下,如以太网子体系reset 过程中收到包,这些存放器出现较小的值且不增长是正常的。但如不雅这些存放器出现赓续增长且收包流量并不大年夜,这种情况一般解释以太网收包异常,平日异常是因为收包的软件模块异常或者PA 子体系异常造成的。

4.5   802.1P VLAN QoS 的设备

5.  PA

5.1 PA PLL设备

       根据data sheet(参考SPRS671D TMS320TCI6614  Data Manual Figure 8-25 PASS PLL Block Diagram), PA 子体系的时钟可以选择两个来源,一个是PASS PLLOUT,另一个是大年夜SYSCLK1 固定的三分频。当芯片的主频设备为1GHz 时,如不雅选择SYSCLK1,则PA 子体系工作频率是333MHz,可以选择PASS PLLOUT 方法,经由过程PA PLL 设备子体系工作于350MHz。 然则对于主频为1.2GHz 的芯片,只能选择PASS PLLOUT 方法,经由过程PA PLL 设备子体系工作于350MHz,不克不及支撑SYSCLK1 三分频到400MHz。

5.2   PA的Packet DMA模块

      1.PA 的packet DMA 模块有9 个Tx 通道和24 个Rx channel,留意这些通道在硬件上都有固定的映射关系,请在使能PA 子体系的时刻,使能所有的通道。

      PDSP instruction RAM: PDSP 指令空间,设置PDSP control register 为1,可以将PDSP halt,同时查看PDSP 的指令空间。在某些功能异常的时刻,可以回读PDSP 指令空间,特别是固件的版本号,看看是否与期望的一致。

      2.PA 的packet DMA 模块有32 个Rx flow。    实际应用中经常见到做法是所有效到Rx Flow/FDQ  的处所都设备同一个 Rx Flow/FDQ,如许的做法固然最简单,然则一旦出现问题则很轻易导致该 FDQ的描述符敏捷耗尽,并且很难定位导致问题的点。

3.3    MAC地址的解释

4.1 ALE 模块的留意事项

      4.分开设备不合的Rx Flow/FDQ 带来的另一个好处是,设备到HOST queue 的RX flow/FDQ 里的描述符耗尽,也不会影响到硬件的处理。并且因为FDQ 根据不合的功能和包处理流程做了不合的设备,在定位某些收集处理问题的时刻加倍轻易。比如在某一个FDQ 里的描述符用尽时,根本可以肯定是该级的相干模块处理的问题,更轻易缩小问题定位典范围。

下面是两个的设备实例:

      1.当 PDSP1 根据 IPSec ESP  的 SPI 将包分类并路由到 SA 的时刻,将须要一个 Rx Flow 的设备(在LUT1-1 的设备),假定设备为Rx Flow No.1 (FDQ No.1000,包含余暇描述符/buffer 16 个) 。

      3.当PDSP3 做完L4/L5 分类今后,将包送到HOST queue 时设备Rx Flow No.3  (FDQ No.1002,包含余暇描述符/buffer  8K 个)。

IPSec AH+ESP 地道模式

5.6.3 帮助调试的存放器

      2.当SA 对IPSec AH 报文鉴权校验完毕,并送回PDSP1 做IPSec ESP SPI 分类的时刻,设备Rx Flow No.4 (FDQ No.1003,包含余暇描述符/buffer 16 个)。

      4.当SA 对IPSec ESP 报文解密完毕,并送到PDSP2 做内层IP 分类的时刻,设备Rx Flow No.2 (FDQ No.1001,包含余暇描述符/buffer 16 个) 。

           B.设备ALE Control 存放器(ALE_CONTROL)的ALE_VLAN_AWARE 比特

      5.当PDSP3 做完L4/L5 分类今后,将包送到HOST queue 时设备Rx Flow No.3 (FDQ No.1002,包含余暇描述符/buffer 8K 个) 。

为了更好的定位在开辟过程中碰到的收集问题,比如丢包,packet DMA 队列卡逝世,描述符损掉等等,推荐在应用软件侧做一些描述符的帮助定位手段:

      1.当描述符初始化今后,记录下所有的描述符首指针。

      2.萌芽/扫描PA Packet DMA Tx 队列No. 640~648 中描述符个数

      3.当发明队列No. 640~648 队列中有包拥塞时(正常情况下该队列中的描述符个数不会跨越64 个),停止包的收发

      5.发明损掉的描述符,并检查其内容,特别是检查是否有描述符的packet length 跨越其链接的所有分片的buffer length 总和的情况

5.3 PA Bypass

      芯片可以设备为bypass 全部PA 子体系。PA bypass 的本质是忽视所有的PA 模块(PDSP/LUT)的处理,大年夜SGMII 端口收到的包经由内部的packet stream switch 直接经由过程PA PKTDMA 模块传输到HOST queue。 其设备过程为:

      1.设备CPSW Configuration Register (CPSW_CFG_REG)为0x606(参考sprugz6 Network Coprocessor (NETCP) User Guide)

      2.初始化并设备PA Packet DMA 模块

      3.设备PA Packet DMA 的Rx flow No.22 和Rx flow No.23,个中Rx flow No.22 中的destination queue代表了大年夜SGMII0 收到的包所要放到的目标队列,Rx flow No.23 中的destination queue 代表了大年夜SGMII1收到的包所要放到的目标队列。

留意:PA bypass 今后,因为所有的包未经由PA 子体系的过滤直接进入到HOST 队列中,流量较大年夜的情况下,很轻易造成FDQ 的描述符耗尽。并且轻易造成软件协定栈loading 过高,轻易遭受收集进击。另因为在芯片设计中,PA 可以直接与SA 进行数据传输,特别是在from network 偏向上对加密的包进行解密今后在送到HOST queue,而 PA bypass 今后,对于加密包的解密处理将增长HOST 侧的CPU 负荷。

      PA 的固件有三个文件,位于PDK 安装目次\pdk_C6678_x_x_x_xx\packages\ti\drv\pa\fw (x_x_x_xx 为版本号) ,PDSP0~PDSP2 共用一个文件(classify1_bin.c),PDSP3 用一个文件(classify2_bin.c),PDSP4 和PDSP5 共用一个文件(pam_bin.c)。PA 子体系运行于大年夜端序,所以固件都是大年夜端序。 留意固件版本和 LLD 版本必定要一致。固件的版本号可以大年夜上述 C 文件的数组中读到,第三个 32  bit WORD 就是版本号。

如上例固件版本号为1.3.0.7

PA LLD 的版本号可以大年夜 PA LLD 安装目次的 paver.h 中获得 (PA_LLD_VERSION_ID 和               PA_LLD_VERSION_STR) 。

PA LLD 中的函数Pa_downloadImage 是下载PDSP 固件的,留意个中每个PDSP 的常量表定义pap_pdsp_const_reg_map,不合的版本这些值可能不合。对于某些有ARM core 的Keystone I 芯片,该常量表不是经由过程 PA LLD 函数来赋值而是Linux kernel 代码直接赋值的,所以必须跟各个版本的固件对应。如不雅常量表和固件,LLD 的版本不匹配,可能会有某些功能异常。

5.5 PA LUT1表项增长的策略

      LUT1 是线性查找表,也就说,设备的表项大年夜下标No. 0 一向找到No.63。 因为不合的表项内容间可能有包含关系,比如某一项A 只请求匹配目标IP 地址,另一项B 设备了同样的目标IP 地址,同时也设备了源IP 地址。如许其实是B 的前提比A 加倍严格,那么严格的表项B 应当比宽松的A 下标小。比瘸黎置设备摆设A 在No.1, B 在No.0, 只有如许B 才能有被匹配的可能性。

5.6 PA相干的调式

5.6.1 Device simulator 帮助调试

因为PA 子体系重要由硬件模块构成,供给的存放器有限,对于复杂的功能来说,调试比拟较较艰苦。然则TI 的芯片simulator 上对该子体系进行了充分的支撑,在初期开辟阶段,simulator上调试PA 加倍便利。

下面是一个在TCI6608 的simulator 上使能PA 调试和Log 输出的例子:

  1. CCS 安装路径\simulation_csp_ny\bin\configurations\tisim_tci6608_pv.cfg 如不雅该行被注释,请解注释     INPUT5 log_file,      pass.log;
  2. 在软件初始化中参加下面的代码

 

\simulation_csp_ny\env\ccs\drivers\pass.log)下产生名为Pass.log 的具体log 文件

      该文件包含LUT 表项的添加过程,LUT 表项每一级的匹配过程等等具体的内容。

5.6.2 PA子体系供给的系一切计

      用PA LLD 供给的Pa_requestStats 和Pa_formatStatsReply 函数可以提取PA 子体系给出的统计计数器,这些统计计数器在体系运行过程中可以诊断部分的包匹配,包缺点等问题。下面是对这些计数器的具体解释。

      应用PDSP所供给的一些帮助计数器/存放器可以更轻易的在运行时定位问题。比如下面的计数器

0x2000000 + 0x10*n PDSPn 收到的包数(包含设备敕令和数据包)

          C.对于VLAN tagged 包,包中的VLAN 优先级会被调换为该端口设备的VLAN 优先级,VLAN ID 不变。

0x2000008 + 0x10*n PDSPn收到的设备敕令数

     1.如不雅读到0x2000000为0xa,0x2000008为0x1,代表PDSP0收到了9个数据包和1个设备敕令

     2.在第一步的基本上持续读到 0x2000010为0x3,0x2000018为0x1, 代表PDSP1收到了2个数据包和1个设备敕令

表1   PDSP 帮助存放器列表

       PDSP control register: PDSP 存放器,控制PDSP 的运行状况。

       PDSP status register: PDSP 状况存放器,其实是PDSP 固件的PC 值,该值不好定,如不雅该值一向不变更,可以肯定是PDSP 固件crash。

      PDSP debug register: PDSP 的底时炬放器。

      LUT table bit map: 查找表的┞芳用状况。每个查找表的表项在占用后,PDSP 都邑对该表项对应的位域置位。这个位表中保存的是PDSP/硬件所保护的查找表状况,应用软件可以将其回读来竽暌闺本身所保存的比较,看看是否有不一致的情况产生。理论上软硬件应当是同步的。

      LUT table route info:  根据LUT table bit map 所查找到的对应表项下标,乘以64 字节的偏移量,可以找到该表项匹配后对应的路由信息,该信息是由软件设备的。同样可以回读,看看是否与期望的一致。

5.6.4 PDSP 的单步跟踪

      在某些PDSP 相干的问题定位过程中,可能须要对PDSP 做单步跟踪。该办法重要实用于在simulator 的方法下无法重现的功能问题,比如表项匹配掉败掉败,路由缺点等等。获得的信息可以交由TI 进行分析。

调用示例:单步跟踪PDSP1,600 步

举例解释其用法:

6.  SA                  

SA 调试的过程中,请充分应用SA 供给的相干统计信息:

6.1   系一切计

留意: 

      描述符中供给了PS_flag 字段,可以指定该描述符所发向的目标SGMII 端口(direct packet mode),然则当该描述符要先经由SA 的时刻,请清空该字段,不然SA 对该包的处理导致安然高低文的缺点(errCtx)。在经由SA 处理后的包仍须要指定对应的SGMII 端口的情况,设备该包大年夜SA输出今后的路由到645 队列/PDSP5,并用PA 的Next route 敕令指定到以太网以及对应的SGMII端标语.

      3.一般来说袈溱 PA 与其他的硬件模块(特别是 SA)数据交互过程都异常的快,而 PA 将分类好的数据交给 HOST queue,因为有软件的处理所以较慢。故而推荐分开灵活设备不合的 Rx Flow(FDQ): 硬件模块交互间的 FDQ 一般包含 16 个描述符/buffer 就足够了,而最后到 HOST queue 的 Rx Flow/FDQ 可以根据实际软件的处理速度来设备更多的个描述符/buffer。 

6.2 通道统计

6.2.1 SRTP 

6.2.2 IPSec 

6.2.3 Air Cipher 

留意:

IPSec ESP 地道模式

      取通道统计应当在调用完SA API Sa_chanReceiveData或Sa_chanSendData今后,而这两个API本身有部分加解密的初步检查感化,应用法度榜样必须要对返回值进行断定。如不雅它们返回缺点,则应当终止向SA发包的过程,并根据返回值来检查自身应用软件的缺点。何时调用这两个API是须要留意的另一个问题,在IPsec/SRTP的场景下,TX侧代表to network偏向,即加密偏向,须要调用调用Sa_chanSendData;Rx侧代表from network偏向,即解密偏向,须要调用Sa_chanReceiveData。对于air cipher的场景, TX侧对于空中接口来说实际为from air偏向, 即解密偏向,须要调用调用Sa_chanReceiveData;Rx侧代表to air偏向,即加密偏向,须要调用Sa_chanSendData。

      SA 的帮助存放器重要用来定位SA 相干的硬件缺点,当然该硬件缺点可能是由软件的不法操作导致的。下面是常用的帮助存放器列表,表中标注了正常情况下所期望的值。特别请留意CMD_STATUS 存放器,在运行时光的SA 异常情况,常可以或许反竽暌钩到该存放器中。其具体的含义请参考SA 用户手册。

表2   SA 底时炬放器列表

7.  总结

      4.将在步调1 记录的描述符地址与FDQ 残留的和队列No. 640~648 队列中拥塞的做比较

      本文重要总结了今朝为止中国区用户在开辟Keystone I 系列芯片的时刻,所碰到的以太网子体系相干的典范技巧问题,以及浏览user guide 时一些较为集中的疑问。很多用户在开辟过程中轻易忽视的问题本文都做了强调。PA 子体系部分的调试办法根本可以覆盖开辟过程中所碰到的所有问题。文档中给出的各类存放器设备以及示例法度榜样,都在实际开辟中有应用。

参考文献

1.KeyStone Architecture Network Coprocessor (NETCP) User Guide (SPRUGZ6)

2.KeyStone Architecture Gigabit Ethernet (GbE) Switch Subsystem User Guide (SPRUGV9A)

      2.当SA 对IPSec ESP 报文解密完毕,并送到PDSP2 做内层IP 分类的时刻,设备Rx Flow No.2 (FDQ No.1001,包含余暇描述符/buffer 16 个) 。

3.KeyStone Architecture Packet Accelerator (PA) User Guide (SPRUGS4)

4.KeyStone Architecture Security Accelerator (SA) User Guide (SPRUGY6)

推荐产品

首页 电话 联系