0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Marvell交换芯片介绍之MII、MDIO

jf_EksNQtU6 来源:谈思实验室 2023-01-26 16:02 次阅读

芯片作为PHY和SERDES使用

MII 是一个标准接口,用于连接 MAC 和 PHY。MII 是 IEEE-802.3 定义的以太网标准, MII 接口可以同时控制多个 PHY。

10a663b4-8bed-11ed-bfe3-dac502259ad0.png

MII包含两个接口:

1.一个数据接口,用户 MAC 和 PHY 之间收发 Ethernet 数据
2.一个管理接口,这个管理接口通常称为 MDIO,MIIM 或者 SMI。
  这个接口用于 MAC 从 PHY 读取相关管理寄存器的值,或者往 PHY 管理寄存器上写入数据。

10b1a846-8bed-11ed-bfe3-dac502259ad0.png

MDIO

MDIO 也被称为 MIIM,或者SMI,它是 IEEE802.3 定义标准 MII 接口的一部分,用于 MAC 配置 PHY。MDIO 具有两个信号线,分别如下:

1. MDC 时钟线:MDIO 的时钟信号,由 MAC 驱动 PHY

2. MDIO 数据线:双向数据线,用于在 MAC 和 PHY 之间传输配置信息

MDIO 总线只支持 MAC 作为主设备,PHY 作为从设备。MIDO 支持两种时序,分别为Clause 22Clause 45.

MDIO接口最初是由IEEE RFC802.3中的22号条款定义的,在最初的定义中,一个单独的MDIO接口可以访问32个不同的PHY设备中的32个寄存器,这些寄存器提供状态和控制信息,例如:连接状态、传输速度能力、当前选择的传速、低压消耗时的下电情况、全双工还是半双工、自动协商、错误提示以及反馈信息等等。

为了满足10G以太网设备的普及发展,在IEEE 802.3ae 的45号条款中为MDIO接口提供了额外的规范:

1)能够通过32个端口访问32个不同设备的65536个寄存器;

2)为访问10G以太网提供额外的OP码和ST码,从而可以直接访问寄存器地址;

3)端到端的报错信号;

4)环回模式控制;

5)低压电气标准。

22号条款

22号条款的MDIO通信的帧格式定义如下:

10cbed1e-8bed-11ed-bfe3-dac502259ad0.png

118e8e64-8bed-11ed-bfe3-dac502259ad0.png

45号条款

为了弥补22号的条款中定义的缺陷,45号条款中增添了对低压设备的支持,最低可到1.2V,同时扩充了帧格式,能够访问更多的设备和寄存器。

45号MDIO通信帧格式如下:

11bcad4e-8bed-11ed-bfe3-dac502259ad0.png

11e28ee2-8bed-11ed-bfe3-dac502259ad0.png

第45号条款的主要变化是如何访问寄存器。在第22中,一个单独的帧指定要读或写的地址和数据,同时完成了这些工作。45号中改变这种范式,第一个地址帧发送到指定的MMD和寄存器,然后发送第二帧来执行读或写。

工作模式

该芯片有两种寻址模式:单芯片寻址和多芯片寻址。

多芯片寻址
对于多芯片寻址,需要给芯片设置一个非零的SMI地址(ADDR[4:0]的反码)。在多芯片寻址模式下,仅有两个寄存器(0x00:SMI Command Register 0x01:SMI Data Register)能够使用,内部各PORT的寄存器均由这两个寄存器间接访问。

通过向SMI Command Register的[9:5]写入内部SMI设备地址,[4:0]写入内部SMI寄存器地址来访问各个Port的内部寄存器,[11:10]决定决前是写入还是读出操作。

11f0eaf0-8bed-11ed-bfe3-dac502259ad0.png

通过向SMI Data Register的[15:0]位写入或读取SMI Command Register设定的寄存器内容。

1210b196-8bed-11ed-bfe3-dac502259ad0.png

单芯片寻址
对于单芯片寻址,其SMI地址为0x00(针对整个芯片),即ADDR[4:0]=0x1F。

123ec284-8bed-11ed-bfe3-dac502259ad0.png

1256b4e8-8bed-11ed-bfe3-dac502259ad0.png

在单芯片寻址模式下,每个Port都有各自的SMI地址(针对内部每个Port),Port0-Port9对应的SMI地址分别为0x0-0x9(直接访问),port10对应0xA。

若Port0、1、2等接有外部PHY,则必须使用以下SMI地址,0x00对应Port0,0x01对应Port1,这样PPU才能自动的轮询各个PHY获取各自的连接状况,速度,双工情况,流控状态等信息,这些外部PHY需要使用Global2 offset 0x18、0x19进行访问。对于Port3a、Port4的内部PHY地址映射为0x03、0x04;Port9、Port10的内部SERDES映射为0x9、0xa,同样的,也是需要使用Global2 offset 0x18、0x19进行访问。

Global2 寄存器的 Offset24,25 寄存器
前文提到,两个非常重要的寄存器,即Global2 offset 0x18、0x19寄存器,在单芯片寻址模式下PHY和SERDES寄存器的访问都必须通过这两个寄存器间接访问。

Global2 offset 0x18 (SMI PHY Command Register)寄存器

126e527e-8bed-11ed-bfe3-dac502259ad0.png

bit[12]指定了帧协议是22号时序还是45号时序。22号协议下,与多芯片存储能够访问的Command Register寄存器一样,[9:5]写入SMI设备地址,[4:0]写入SMI寄存器地址来访问各个Port的内部寄存器,[11:10]决定当前是写入还是读出操作。45号协议,[9:5]指定port,[4:0]指定设备类别。

Global2 offset 0x19 (SMI PHY Data Register)寄存器

127d52ba-8bed-11ed-bfe3-dac502259ad0.png

与SMI Data Register相同,通过[15:0]位写入或读取SMI Command Register设定的寄存器内容。

在45号协议下,第一个地址帧发送到指定的MMD和寄存器,我们要把PHY Command Reg中的[11:10]置为0x00=write Address register,即在第一个帧中的最后16位数据中,指定要操作的寄存器的地址。随后在第二个数据帧中,要把PHY Command Reg中的[11:10]置为0x01=write data register,即第二个帧中的最后16位写入的是数据。

Uboot 中访问 MDIO (SMI/MIIM)

项目开发中,经常要在 uboot 阶段通过 MDIO 总线去配置 PHY 或者 SWITCH。

129fc0b6-8bed-11ed-bfe3-dac502259ad0.png

更多指令

示例:

6390xconfig

**配置端口10**
//0xa:P10
//0x34a:
//bit[3:0]-0xa-接口配置模式-SGMII
//bit[6]-0x1-EEE(EnergyEfficientEthernet)Enabled
//bit[9:8]-0x3=10Gbor2500Mbps
miiwrite0xa00x34a

**配置端口5**
//p5p177p355
//addr:0x1c
//regi:0x19SMIDataregister
//regi:0x18SMICommandregister
//在45号条款中
//第一个地址帧发送到指定的MMD和寄存器,然后发送第二帧来执行读或写。

miiwrite0x1c0x190x2000//将数据0x2000写到PHYdata寄存器0x19中
miiwrite0x1c0x180x82a4//将数据0x82a4写到PHYCommand寄存器中
//0x82a4
//bit[15]:0x1——此位在首次操作SMI时,要置为1,并且在操作SMI完毕之后会自动清零
//bit[14:13]:0x0——内部访问-用于访问包含在这个设备中的内部PHYs和/或serde。
//bit[12]:0x0——SMIMODE——GenerateIEEE802.3Clause45SMIframes
//bit[11:10]:0x0——WriteAddressRegister
//bit[9:5]:写入SMI设备地址-0x15——Port10Lane1=Port5&itsregistersareaccessedatSMIaddress0x15
//bit[4:0]:deviceclass(clause45)
//第一个地址帧的后16位为Addr,即dataregister中的数据0x2000

miiwrite0x1c0x190x8140//将数据0x8140写到PHYdata寄存器0x19中
miiwrite0x1c0x180x86a4//将数据0x86a4写到PHYCommand寄存器中
////bit[11:10]:0x01——WritedataRegister
//第二个帧,后16位为要写入的数据,即dataregister中的数据0x8140
编辑:黄飞

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 以太网
    +关注

    关注

    40

    文章

    5078

    浏览量

    166248
  • Marvell
    +关注

    关注

    9

    文章

    347

    浏览量

    123083
  • Mac
    Mac
    +关注

    关注

    0

    文章

    1067

    浏览量

    50847
  • 交换芯片
    +关注

    关注

    0

    文章

    78

    浏览量

    10906

原文标题:一文读懂Marvell交换芯片

文章出处:【微信号:谈思实验室,微信公众号:谈思实验室】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    以太网交换机芯片概述

    ://www.52solution.com/)上的行业新闻、观点都比较犀利、透彻, 除了做级联外,MII口可以和任何集成MAC的芯片实现互联,因此可以利用集成了MAC的微处理实现对交换机的配置管理。市场见到的很多家用路由器实际上
    发表于 11-06 23:12

    Marvell交换芯片88E6097的电路设计原理

    各位大侠们,你们大家有谁用过Marvell交换芯片88E6097来做过交换机呢?求指导,求电路,求资料,谢谢了,感激不尽呀!!
    发表于 01-31 11:26

    求助,用过marvell88e6097交换芯片的大神

    最近在弄marvell交换芯片,使用MII 连接NXP LPC 4357,不清楚需要设置交换芯片
    发表于 12-22 13:34

    am3352的网口配置成mii模式网络ping不通

    am3352使用port1连接marvell6095,使用mii模式。管脚配置如下: static struct pinmux_config mii1_pin_mux[] = [ ["
    发表于 05-15 09:06

    MII接口有什么功能?

    MII支持10兆和100兆的操作,一个接口由14根线组成,它的支持还是比较灵活的,但是有一个缺点是因为它一个端口用的信号线太多,如果一个8端口的交换机要用到112根线,16端口就要用到224根线,到
    发表于 10-18 09:11

    具有单MII/RMII/Turbo MII支持LAN9303的以太网交换

    EVB9303,评估板EVB,利用LAN9303提供功能齐全的三端口单MII / RMII / Turbo MII以太网交换机。 EVB9303通过板载RJ45连接器提供两个完全集成的MAC
    发表于 05-18 09:30

    具有双RMII或单MII / RMII / Turbo MII接口的全功能三端口以太网交换

    EVB-LAN9353,评估板,利用LAN9353提供具有双RMII或单MII / RMII / Turbo MII接口的全功能三端口以太网交换机。 EVB-LAN9353通过板载RJ45连接器提供
    发表于 08-17 09:39

    如何用fpga实现mii通信?

    现在在做mii通信,用FPGA将数据包发给交换芯片。用signaltopii可以将发送的信号抓出来,并且是正确的。但是为什么不能通过电脑上的抓包工具,抓到fpga发送的数据包呢?
    发表于 06-23 10:55

    SDIO wifi Marvell8801是什么

    驱动系列文章分为几篇介绍:SDIO wifi Marvell8801/Marvell88w8801 介绍(一) ---- 芯片
    发表于 07-28 07:33

    自己实现SDIO wifi Marvell8801/Marvell88w8801驱动 介绍(一) ---- 芯片介绍 精选资料推荐

    驱动系列文章分为几篇介绍:SDIO wifi Marvell8801/Marvell88w8801 介绍(一) ---- 芯片
    发表于 07-29 09:27

    STM32F103驱动SDIO wifi Marvell8801/Marvell88w8801 介绍(十) ---- 移植TCP/IP协议栈LWIP

    驱动系列文章分为几篇介绍:SDIO wifi Marvell8801/Marvell88w8801 介绍(一) ---- 芯片
    发表于 11-24 14:51 20次下载
    STM32F103驱动SDIO wifi <b class='flag-5'>Marvell</b>8801/<b class='flag-5'>Marvell</b>88w8801 <b class='flag-5'>介绍</b>(十) ---- 移植TCP/IP协议栈LWIP

    交换芯片只适用在交换机上的?

    成都朗锐芯科技推出工业级全国产以太网交换芯片软硬件方案,替代博通(Broadcom)、瑞昱(Realtek)、Marvell、Vitesse的工业级国产以太网交换
    发表于 11-09 15:24 780次阅读
    <b class='flag-5'>交换</b><b class='flag-5'>芯片</b>只适用在<b class='flag-5'>交换</b>机上的?

    以太网PHY芯片MII接口和MDIO接口介绍

    本文主要介绍以太网的MAC(Media Access Control,即媒体访问控制子层协议)和PHY(物理层)之间的MII(Media Independent Interface ,媒体独立接口),以及MII的各种衍生版本——
    的头像 发表于 07-26 11:48 6896次阅读
    以太网PHY<b class='flag-5'>芯片</b>的<b class='flag-5'>MII</b>接口和<b class='flag-5'>MDIO</b>接口<b class='flag-5'>介绍</b>

    Marvell交换芯片是什么

    Marvell交换芯片是一种高性能的网络通信芯片,广泛应用于各种网络设备中,以实现高效、稳定的数据传输和交换。作为业界领先的网络解决方案提供
    的头像 发表于 03-16 17:16 1621次阅读

    简单认识Marvell交换芯片

    Marvell Technology Group Ltd. 是一家全球领先的半导体公司,专注于提供高性能、高集成度的存储、网络和多媒体解决方案。在网络领域,Marvell 交换芯片以其
    的头像 发表于 03-21 16:44 407次阅读