首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

RGMII接口调试使用VIO读取PHY寄存器

这时,常常需要使用VIO去读取PHY里面对应寄存器的值,看是否工作在正常RGMII接口时序模式。 测试场景 测试拓扑图如下 ?...也就是说,可以通过读取PHY芯片相应寄存器的方法来看默认的工作模式。...用VIO方法读取或配置PHY芯片的寄存器 在没有CPU的情况下,对PHY芯片中寄存器在线读取的最好办法使用VIO通过MDIO接口对PHY芯片中的寄存器进行读取。...具体方法可以查看本公众号之前文章: 一种动态调整RGMII接口时序的方法 Vivado进行FPGA调试“犯罪现场”,在仿真环境中重现方法 使用VIVADO中VIO模拟CPU接口进行在线寄存器读写调试(...具体的测试步骤为:通过VIO配置MDIO管理模块PHY地址、寄存器地址,然后选择读操作读取某一PHY芯片的寄存器的值,结合PHY的工作状态,判断该寄存器是否被正确读取。

3.8K21

PHY芯片快速深度理解

摘要:什么是phy为什么要熟悉RJ45网口网络七层协议两个模块进行通信什么是MDIO协议MDIO的作用 MDIO没那么重要MDIO读写时序为什么说读取的phy最多32个什么是phy物理层芯片称为PHY、...Linux系统的arm芯片想要网络,可以直接通过mac和网卡芯片连接获取,这时候就需要通过RGMII接口或者MII接口 和 MDIO 连接网卡芯片。...MDIO读写时序Preamble:32bits的前导码Start:2bit的开始位。OP Code:2bits的操作码,10表示读,01表示写。PHYAD:5bits的PHY地址。...也就是说不管你用的哪个厂家的 PHY 芯片,其中 0~15 这 16 个寄存器是一模一样的。仅靠这 16 个寄存器是完全可以驱动起 PHY 芯片的,至少能保证基本的网络数据通信。...以上内容是海翎光电的小编看了大量的参考文献和一步步的实践总结的经验,通过实践,把每一层都走一遍,把变压器去掉,把phy去掉,linux系统的网卡函数看了一遍,phy芯片的手册有看了很多。

35050
您找到你想要的搜索结果了吗?
是的
没有找到

PHY芯片快速深度理解

摘要:什么是phy为什么要熟悉RJ45网口网络七层协议两个模块进行通信什么是MDIO协议MDIO的作用 MDIO没那么重要MDIO读写时序为什么说读取的phy最多32个什么是phy物理层芯片称为PHY、...Linux系统的arm芯片想要网络,可以直接通过mac和网卡芯片连接获取,这时候就需要通过RGMII接口或者MII接口 和 MDIO 连接网卡芯片。...MDIO读写时序Preamble:32bits的前导码Start:2bit的开始位。OP Code:2bits的操作码,10表示读,01表示写。PHYAD:5bits的PHY地址。...也就是说不管你用的哪个厂家的 PHY 芯片,其中 0~15 这 16 个寄存器是一模一样的。仅靠这 16 个寄存器是完全可以驱动起 PHY 芯片的,至少能保证基本的网络数据通信。...以上内容是海翎光电的小编看了大量的参考文献和一步步的实践总结的经验,通过实践,把每一层都走一遍,把变压器去掉,把phy去掉,linux系统的网卡函数看了一遍,phy芯片的手册有看了很多。

36710

PHY芯片快速深度理解

摘要:什么是phy为什么要熟悉RJ45网口网络七层协议两个模块进行通信什么是MDIO协议MDIO的作用 MDIO没那么重要MDIO读写时序为什么说读取的phy最多32个什么是phy物理层芯片称为PHY、...Linux系统的arm芯片想要网络,可以直接通过mac和网卡芯片连接获取,这时候就需要通过RGMII接口或者MII接口 和 MDIO 连接网卡芯片。...MDIO读写时序Preamble:32bits的前导码Start:2bit的开始位。OP Code:2bits的操作码,10表示读,01表示写。PHYAD:5bits的PHY地址。...也就是说不管你用的哪个厂家的 PHY 芯片,其中 0~15 这 16 个寄存器是一模一样的。仅靠这 16 个寄存器是完全可以驱动起 PHY 芯片的,至少能保证基本的网络数据通信。...以上内容是海翎光电的小编看了大量的参考文献和一步步的实践总结的经验,通过实践,把每一层都走一遍,把变压器去掉,把phy去掉,linux系统的网卡函数看了一遍,phy芯片的手册有看了很多。

40620

Xilinx MPSoC以太网调试思路

MDIO是类似IIC的总线,MAC提供时钟MDC,数据线MDIO是双向的,既可以读PHY寄存器,也可以写PHY寄存器。 !...PHY的驱动代码是drivers\net\phy目录下的phy.c,以及厂家相关代码,比如dp83867.c。 2.4. 设备树 UBoot/Linux的驱动代码需要设备树提供一些参数。...检查MDIO 让软件发起PHY寄存器读写操作,检查MDC/MDIO是否有跳变及其信号质量。 3.2. 检查PHY 让软件读PHY的ID等寄存器,对照手册,看寄存器值是否正确。...让软件读PHY寄存器的自协商结果寄存器,检查单板侧PHY自协商的结果。 3.4. RGMII时钟 对RGMII而言,TX_Clk是MAC发出的,RX_Clk是PHY发出的。...Linux测试 在MAC自环和PHY自环测试成功后,可以在Linux测试以太网,比如可以检查Linux启动后,能否通过DHCP得到IP地址,能否成功ping其它主机。

2.7K11

趣谈网络协议栈,以太网基础MAC和PHY

管理帧格式:读操作时序写操作时序报头: 每个读写均可通过报头字段启动,报头字段对应于MDIO线上32个连续的逻辑“1”位以及MDC的32个周期,该字段用于与PHY设备建立同步起始: 起始由模式定义操作...: 定义读写类型PADDR: PHY地址由5位,可构成32个唯一PHY地址RADDR: 寄存器地址有5位TA:数据: 数据字段为16位空间: MDIO线驱动为高阻态,三态驱动器必须禁止,PHY的上拉电阻使线路保持高阻态...地址空间031共32个寄存器,IEEE定义了015这16个寄存器的功能,16-31这16个寄存器由厂商自行实现。也就是说不管哪个厂商的PHY芯片,其中0~15这16个寄存器是一模一样的。...因此 Linux 内核有通用 PHY 驱动,按道理来讲,不管你使用的是哪个厂家的 PHY 芯片,都可以使用 Linux 的这个通用 PHY 驱动来验证网络工作是否正常。...随着现在PHY芯片性能越来越强大,32个寄存器已经无法满足厂商的需求,因此很多厂商采用了分页机制来开展寄存器地址空间,以求定义更多的寄存器

1.7K01

全志平台通读写寄存器的方法

全志平台通读写寄存器的方法 echo 寄存器值 > /sys/class/sunxi_dump/dump cat dump 查看写进去的值 echo 寄存器值 > /sys/class/...到全志一号通查阅对应芯片的user_manual,看想查的寄存器的位置是多少 如,将PH8配作spi0的mosi 2. io口的基地址0x01C2 0800  PH Configure Register...RTS 100: Reserved 101: Reserved 110: Reserved 111: IO Disable 所以如果PH8配成spi 的mosi的话,应该是 0x00000022 32位寄存器...再查spi0对应的寄存器的数值: R16 spi0 - 0x01C6 8000 --- 0x01C6 8FFF  (size 4K) root@mico:/sys/class/sunxi_dump# echo...dump                                        0x00090000 即: 0000 0000 0000 1001 0000 0000 0000 0000 读多个寄存器的数据

10810

linux phy调试方法_php执行shell命令

,就强制执行自动协商(读取phy寄存器、并设置通讯速率、半双工或全双工模式、等) PHY_CHANGELINK, //9 当连接时,会换到PHY_RUNNING,当断网时,会切到PHY_NOLINK...phy_read(phydev, MII_BMSR); //读取phy的状态寄存器 if ((status & BMSR_LSTATUS) == 0) //phy 的链路状态 phydev->link...*/ int ctl = phy_read(phydev, MII_BMCR); //获取模式控制寄存器,详见该链接对该寄存器的定义:https://wenku.baidu.com/view/b8704335ee06eff9aef807bd.html...标准寄存器的定义 /* Generic MII registers. */ //控制寄存器 #define MII_BMCR 0x00 /* Basic mode control register...*/ //状态寄存器 #define MII_BMSR 0x01 /* Basic mode status register */ //PHY 标志 #define MII_PHYSID1 0x02

1.9K30

88e1512 排坑(一)sgmii网口不稳定

CPU用的是Armada-3720,内核是https://github.com/MarvellEmbeddedProcessors/linux-marvell 里面18.12版本,uboot...最近发现有时系统起来后用PC去ping lan2会ping不通,phy可以正常识别,执行ifconfig down/up也可以看到正常的打印信息。       ...rgmii的lan1一直比较稳定,未发现ping不通的时候,所以认为phy这侧应该是好的。总之感觉就是lan2初始化不稳定。       ...在网上找了一个miitool工具(https://github.com/kontron/miitool),可以通过mdio读写phy寄存器,第22个寄存器是选择寄存器页数的。      ...测试出来系统启动后lan2 ping不通的情况下是没有包的,17_18寄存器值为0,系统起来lan2正常时是有数据包的,17_18寄存器值会一直增长(测试时PC一直ping lan2)。

2.1K20

linux读写

读写锁 与互斥量类似,但读写锁允许更高的并行性。其特性为:写独占,读共享。 读写锁状态: 一把读写锁具备三种状态: 1. 读模式下加锁状态 (读锁) 2. 写模式下加锁状态 (写锁) 3....不加锁状态 读写锁特性: 1. 读写锁是“写模式加锁”时, 解锁前,所有对该锁加锁的线程都会被阻塞。 2....那么读写锁会阻塞随后的读模式锁请求。优先满足写模式锁。读锁、写锁并行阻塞,写锁优先级高 读写锁也叫共享-独占锁。当读写锁以读模式锁住时,它是以共享模式锁住的;当它以写模式锁住时,它是以独占模式锁住的。...读写锁非常适合于对数据结构读的次数远大于写的情况。...函数 以读方式请求读写锁。

3.2K30

PHY_MDIO 接口设计

PHY 芯片内部含有一些列寄存器,用户可通过这些寄存器来配置 PHY 芯片的工作模式以及获取 PHY 芯片的若干状态信息,如连接速率、双工模式、自协商状态等。...PHY 内部寄存器读写通过 MDIO 接口进行。 8.5.2.1 MDIO 接口 MDIO 接口由数据传输时钟 MDC 和双向数据信号 MDIO 组成,如下图所示 ?...(1)PHY芯片地址 一般的PHY地址都是可以通过硬件进行设置,查看相关原理图就可以确定。 (2)控制寄存器 一般的PHY中地址为0x00的寄存器可用于芯片的复位以及其他功能的控制。...PHY芯片的寄存器的写入和读取。...(2)mdio_control模块 本模块在mdio_top模块的控制下,完成MDIO接口协议的实现,以及PHY芯片相应寄存器读写操作。 模块中,通过ODDR实现PHY芯片mdc时钟的输出。

2.8K42

Xilinx Ethernet MAC IP调试的小坑

本身MDIO接口的时序也不是很难,非常类似I2C接口,内部寄存器读写控制都是通过MDIO接口来实现。在MDIO的协议中,有一个PHY ADDR,这个是由PHY芯片的硬件决定的。...image-20211101195933529 Xilinx的IP也提供了mdio接口,我们可以直接通过配置IP内部寄存器来实现MDIO接口的配置。...image-20211101201757328 读其他寄存器时,有的可读可写,有的读出来都是0,但跟手册中就是不一样。...一直没有怀疑过PHY ADDR的问题,因为有些寄存器是可读可写的,就以为应该是通了的。 只能重新看手册,把IP中需要填参数的地方看了一下,当看到PHY ADDR时,发现是这么写的。...再去读PHY芯片的寄存器,就跟手册中是一样的了。

79740

linux读写锁_共享内存读写

一、读写锁是什么?...读写锁其实还是一种锁,是给一段临界区代码加锁,但是此加锁是在进行写操作的时候才会互斥,而在进行读的时候是可以共享的进行访问临界区的 ps:读写锁本质上是一种自旋锁 二、为什么需要读写锁?...如果每次操作都给此段代码加锁,太浪费时间了而且也很浪费资源,降低程序的效率,因为读操作不会修改数据,只是做一些查询,所以在读的时候不用给此段代码加锁,可以共享的访问,只有涉及到写的时候,互斥的访问就好了 三、读写锁的行为...读写之间是互斥的—–>读的时候写阻塞,写的时候读阻塞,而且读和写在竞争锁的时候,写会优先得到锁 四、自旋锁&挂起等待是锁?...---->读和写在同时竞争锁的时候,写会优先的得到锁 互斥---->读的时候写阻塞,写的时候读阻塞 4.相关函数 (1)pthread_rwlock_init()—->初始化函数 功能:初始化读写

6.1K10

Network 之二 Ethernet(以太网)中的 MAC、MII、PHY 详解

在 Windows 及 Linux 里面可以用 arp -a 的命令查看 ARP 表。...其管理是使用 SMI(Serial Management Interface) 总线通过读写 PHY寄存器来完成的。...PHY 里面的部分寄存器是 IEEE 定义的,这样PHY把自己的目前的状态反映到寄存器里面,MAC 通过 SMI 总线不断的读取PHY 的状态寄存器以得知目前 PHY 的状态。...entity,管理实体,一般为MAC 或 CPU)通过 SMI(Serial Manage Interface)对 PHY 的行为、状态进行管理和控制,而具体管理和控制动作是通过读写 PHY 内部的寄存器实现的...PHY Identifier Register   寄存器2和3存放PHY芯片的型号代码,寄存器2(PHY ID1)为高16位,而寄存器3(PHY ID2)为低16位。

2.9K21
领券