摘要
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.以太网子系统说明

图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 全双工。
2.4 MDIO接口与PHY的控制