草庐IT

浅谈FPGA网络PHY芯片RTL8211FD的配置和简单使用

最近迷上了FPGA的网络通信和GTP光通信,个人感觉光通信简单一些,那就从难得网络通信开始吧,先搞个最简单的,使用MDIO配置和读取网络PHY的信息。板子:米联客的MA703FA(A7-35T板子);参考例程:正点原子达芬奇开发板例程;IDE:vivado2020.2;具体的原理啥的建议去看正点原子的文档吧,讲得很好,但原子的例程感觉不贴近实际项目,所以我改了一下,使之适合真是项目。先来看看这块芯片RTL8211FD的数据手册。这是官方给的应用架构,很简单,RTL8211FD与MAC通信,通过MDC和MDIO配置。芯片BD,没啥好说的,典型的rgmii接口,内部模块电路感觉没必要深究,反正也不

PHY状态机分析

PHY的12种状态enumphy_state{ PHY_DOWN=0,//关闭网卡 PHY_STARTING,//PHY设备准备好了,PHYdriver尚为准备好 PHY_READY,//PHY设备注册成功 PHY_PENDING,//PHY芯片挂起 PHY_UP,//开启网卡 PHY_AN,//网卡自协商 PHY_RUNNING,//网卡已经插入网线并建立物理连接,该状态可切换到PHY_CHANGELINK PHY_NOLINK,//断网,拔掉网线 PHY_FORCING,//自动协商失败,强制处理(读phy状态寄存器,设置速率,设置工作模式) PHY_CHANGELINK,//LINK检查

PHY状态机分析

PHY的12种状态enumphy_state{ PHY_DOWN=0,//关闭网卡 PHY_STARTING,//PHY设备准备好了,PHYdriver尚为准备好 PHY_READY,//PHY设备注册成功 PHY_PENDING,//PHY芯片挂起 PHY_UP,//开启网卡 PHY_AN,//网卡自协商 PHY_RUNNING,//网卡已经插入网线并建立物理连接,该状态可切换到PHY_CHANGELINK PHY_NOLINK,//断网,拔掉网线 PHY_FORCING,//自动协商失败,强制处理(读phy状态寄存器,设置速率,设置工作模式) PHY_CHANGELINK,//LINK检查

GMAC网卡相关介绍与分析

GMAC网卡相关介绍与分析目录GMAC网卡相关介绍与分析环境描述MIIMIIRMIIGMIIRGMIISGMIIGMAC网卡信息获取方法获取GMAC网卡信息查看PHY工作接口模式获取PHYIDMAC芯片读写MAC寄存器的方法读MAC寄存器写MAC寄存器MAC环回配置PHY芯片CPU读写phy方法(待更新)mdio读写phy寄存器读phy设备基础信息读PHY设备寄存器写PHY设备寄存器Atheros8035强制千兆百兆十兆配置方式PHY环回配置GMAC网卡驱动分析stmmac_dvr_probestmmac_openstmmac_hw_setup配置解读(待补充)PHY驱动分析(待补充)phy_

GMAC网卡相关介绍与分析

GMAC网卡相关介绍与分析目录GMAC网卡相关介绍与分析环境描述MIIMIIRMIIGMIIRGMIISGMIIGMAC网卡信息获取方法获取GMAC网卡信息查看PHY工作接口模式获取PHYIDMAC芯片读写MAC寄存器的方法读MAC寄存器写MAC寄存器MAC环回配置PHY芯片CPU读写phy方法(待更新)mdio读写phy寄存器读phy设备基础信息读PHY设备寄存器写PHY设备寄存器Atheros8035强制千兆百兆十兆配置方式PHY环回配置GMAC网卡驱动分析stmmac_dvr_probestmmac_openstmmac_hw_setup配置解读(待补充)PHY驱动分析(待补充)phy_

PHY驱动调试之 ---PHY设备驱动(三)

1.前言 内核版本:linux4.9.225,以freescale为例。(部分内容待修改和补充,不一定准确)2.概述上一篇文章讲了控制器的驱动使用的是platform总线的连接方式,本节要讲的PHY设备驱动是基于device、driver、bus的连接方式。其驱动涉及如下几个重要部分:总线-sturctmii_bus(miistandformediaindependentinterface)设备-structphy_device驱动-structphy_driver关于PHY设备的创建和注册已经在上一篇控制器的probe函数中有过详细的描述(需要注意的是:phy设备不像i2c/spi有一个bo

PHY驱动调试之 ---PHY设备驱动(三)

1.前言 内核版本:linux4.9.225,以freescale为例。(部分内容待修改和补充,不一定准确)2.概述上一篇文章讲了控制器的驱动使用的是platform总线的连接方式,本节要讲的PHY设备驱动是基于device、driver、bus的连接方式。其驱动涉及如下几个重要部分:总线-sturctmii_bus(miistandformediaindependentinterface)设备-structphy_device驱动-structphy_driver关于PHY设备的创建和注册已经在上一篇控制器的probe函数中有过详细的描述(需要注意的是:phy设备不像i2c/spi有一个bo

PHY驱动调试之 --- MDIO/MDC接口22号和45号条款(一)

 最近在调试一款Phy的驱动,从没有任何头绪到略有了解经历了太多的痛苦,于是决定写这个系列篇记录一下。特别感谢无数优秀的博主无私奉献很多优秀的博文给予了我很大的帮助。在这个系列篇中,我也会转载部分优秀的博文(会附上链接),以及增添自己的理解,如果部分内容有侵权的地方,麻烦联系我。概述管理MII接口的MDIO接口是一个双线的串行接口,用来对PHY芯片等物理层信息进行操作管理。MDIO的历史MDIO是ManagementDataInput/Output的缩写,有两根线,分别为双向的MDIO和单向的MDC,用于以太网设备中上层对物理层的管理。之所以能够管理这些PHY芯片,是因为能够对PHY芯片的各类

PHY驱动调试之 --- MDIO/MDC接口22号和45号条款(一)

 最近在调试一款Phy的驱动,从没有任何头绪到略有了解经历了太多的痛苦,于是决定写这个系列篇记录一下。特别感谢无数优秀的博主无私奉献很多优秀的博文给予了我很大的帮助。在这个系列篇中,我也会转载部分优秀的博文(会附上链接),以及增添自己的理解,如果部分内容有侵权的地方,麻烦联系我。概述管理MII接口的MDIO接口是一个双线的串行接口,用来对PHY芯片等物理层信息进行操作管理。MDIO的历史MDIO是ManagementDataInput/Output的缩写,有两根线,分别为双向的MDIO和单向的MDC,用于以太网设备中上层对物理层的管理。之所以能够管理这些PHY芯片,是因为能够对PHY芯片的各类

PHY驱动调试之 --- PHY控制器驱动(二)

1.前言 内核版本:linux4.9.225,以freescale为例。2.概述PHY芯片为OSI的最底层-物理层(PhysicalLayer),通过MII/GMII/RMII/SGMII/XGMII等多种媒体独立接口(介质无关接口)与数据链路层的MAC芯片相连,并通过MDIO接口实现对PHY状态的监控、配置和管理。PHY与MAC整体的大致连接框架如下(图片来源于网络):PHY的整个硬件系统组成比较复杂,PHY与MAC相连(也可以通过一个中间设备相连),MAC与CPU相连(有集成在内部的,也有外接的方式),PHY与MAC通过MII和MDIO/MDC相连,MII是走网络数据的,MDIO/MDC是