TMS320C6474----88E6122芯片学习

88E6122芯片调试总结

一. 概念性错误

      88E6122是一个switch(交换)芯片,并不是一个单纯的PHY芯片。

 

图1. 88E6122芯片的框架图

       从图1我们可以看出:88E6122包含有6个千兆以太网转换PORT口,集成了2个10/100/1000Mbps三重速率的以太网发送器(PHY),1个(G)MII接口,3个SERDES接口用来连接外部Marvell PHY设备或者其他SGMII设备。

       对Switch的配置主要包含以下几个方面:

Switch全局配置

SERDES配置

PORT配置

PHY配置

      

       (1)Switch全局配置

       Switch全局配置就是对Switch Global Control Register进行配置,主要配置88E6122芯片是否使能PPU(PHY Polling Unit),为何要配置PPU的使能?那是因为如果使能了PPU,PPU将拥有外部PHY和内部PHY的寄存器的全部入口控制权,此时软件将无法对PHY寄存器进行任何的操作。如果需要利用软件来对PHY进行配置,就必须关闭PPU的使能。

       (2)SERDES配置

       SERDES是Switch端的串并转换器,与DSP侧的SERDES直连,需要配置Extended PHY Specific Control 2 Register (switch端SGMII输出电压幅值。。。),配置Control Register寄存器(配置SERDES是否为loopback模式,双工模式,速率选择等等,是否开启自动协商,如果开启自动协商,那么双工模式、速率选择就不必通过软件来配置)。

       (3) PORT口配置

       对PORT口的配置就是对MAC Forcing Control Register进行配置,主要配置PORT口的速率,强制连接,强制双工以及使能PCS带内自动协商功能,此处的PORT口的速率应该要与SERDES的接口速率保持一致。

       (4)PHY配置

       对内部PHY的配置就是对Control Register -- copper进行配置,配置PHY是否loopback,速率档,双工模式,自动协商等功能。

 

二、DSP与Switch的硬件连接

       DSP的EMAC模块主要构成如下图2所示:

 

图2 DSP EMAC模块组成框图

       由图2可知,EMAC主要包含EMAC模块、MDIO模块、控制模块组成,EMAC模块主要负责以太网数据通道的建立,MDIO模块主要负责配置外围PHY的寄存器。EMAC模块包含SGMII接口和SERDES接口,与之连接的也必须是SGMII接口。88E6122包含有3个SGMII接口,分别为4、5、6端口。

图3 DSP 与Switch芯片的数据接口

       目前基带板的设计是让DSP1与Switch的PORT 4口相连,DSP2与Switch的PORT 5口相连,FPGA与PORT 6口相连。88E6122的MDIO_CPU、MDC_CPU与DSP的MDIO接口相连,DSP可以通过MDIO接口实现对Switch的配置。

 

图4 DSP 与Switch芯片的控制接口

 

三、88E6122芯片资料解读

       88E6122芯片的寄存器具备两种地址模式,Multi-chip Addressing Mode与Single-chip Addressing Mode,根据硬件配置ADDR[4:0]的引脚电平值,来判断采用的是哪种模式,在基带板V30中采用的是Single-chip Addressing Mode,地址映射表如图5所示,其中横坐标是SMI 设备地址,也就是代码中的PHY number,纵坐标就是寄存器地址。由于88E6122只有2个PHY,6个PORT,3个SERDES,所以其与SMI地址的对应关系为:

PART

SMI地址

PHY 1-PHY 2

0x1--0x2

SERDES 1-- SERDES 3

0xC--0xE

PORT 1 -- PORT 6

0x11 -- 0x16

GLOBAL

0x1B

 

图5 88E6122设备寄存器映射图

       对于PORT、SERDES、GLOBAL寄存器的配置,就可以直接利用对应的SMI地址和寄存器地址实现,但对于PHY的配置有点不同,IEEE只给PHY定义了32个寄存器地址空间,这32个寄存器空间是基本固定的,一些PHY厂家会通过页机制实现外扩的寄存器空间。88E6122芯片也采用的页机制来外扩寄存器空间,PHY寄存器的结构如图6所示:

 

图6 PHY寄存器映射图

       根据图6可知,对于Register0 - Register15而言,并不区分当前页,所以直接利用SMI设备地址和寄存器地址就可以实现对寄存器的配置。但是从Register16开始,后面的寄存器在不同的页上,代表的是不同的寄存器。所以此时,就需要指定当前页后,再进行寄存器配置。通过对Page Address寄存器进行写操作,来指定当前页。例如:

      phy_setReg(0x1, 22, 0x3);

   表示的就是通过对Page Address寄存器写入3,将当前页置为3,接着再对寄存器的操作就是操作的第三页上的寄存器,例如:

      phy_setReg(0x1, 16, 0xN);

   表示的就是对LED[3:0] Function Control Register的操作,而不是对寄存器Copper Specific Control Register1的操作。

 

四、Switch的配置流程

       对于88E6122芯片,需要对其四个模块的寄存器进行配置,配置流程如下:

 

 

   MDIO_CONTROL = 0x4000001f;            // Enable MII interface

   phy_setReg(27, 4, 0x0081);        //对全局寄存器进行配置

    phy_setReg(0xc, 26, 0x47);        // SERDES进行配置

   phy_setReg(0xc, 0, 0x8140);                            

   phy_setReg(0x14, 0x1, 0x043e);    //PORT口进行配置

    phy_setReg(1, 0, 0x8140);         // PHY进行配置    phy_wait( 4000000 );              //等待建立连接

 

注意:在配置Switch前需要对其进行复位操作,否则Switch的状态会出现异常

 

配置完成后,Switch正常工作时的状态寄存器如下:

Register

value

Description

PHY Copper Status

0x796D

Link is up

condition not detected

Auto-Negotiation process complete

SERDES Status Register-Fiber

0x14D

link is up

PHY able to perform Auto-Negotiation

Auto-Negotiation process not complete

Port Status Register

0xE86 

Disabled(Port 3) or AutoNeg PHY Port(duplex and speed determined by the PPU)

1000Mbps

Full-Duplex

Link is up

Switch Global Status Register

0xA800

Switch Ready

Switch Mode is 10

PPU Disabled after Initialization

 

五、调试方法

         SERDES是与DSP侧连接的端口,读取SERDES状态寄存器可以知道Switch与DSP之间的连接状态;PHY是连接外部其他PHY设备的接口,通过获取PHY的状态来判断Switch与外部其他PHY设备的连接情况(如PC机)。数据在Switch中的流向如图7所示。

 

图7 数据在Switch中的流向

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值