深圳市航顺芯片技术研发有限公司
直播中

张玉珍

7年用户 1062经验值
私信 关注
[问答]

Switch的配置主要包含哪几个方面? Switch的配置流程是怎样的?

Switch的配置主要包含哪几个方面?Switch的配置流程是怎样的?
DSP与Switch的硬件如何连接?

回帖(1)

王芳

2021-10-22 15:48:12
一. 概念性错误
        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中的流向
举报

更多回帖

发帖
×
20
完善资料,
赚取积分