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

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

这时,常常需要使用VIO去读取PHY里面对应寄存器的值,看是否工作在正常RGMII接口时序模式。 测试场景 测试拓扑图如下 ?...也就是说,可以通过读取PHY芯片相应寄存器的方法来看默认的工作模式。...用VIO方法读取或配置PHY芯片的寄存器 在没有CPU的情况下,对PHY芯片中寄存器在线读取的最好办法使用VIO通过MDIO接口对PHY芯片中的寄存器进行读取。...具体的测试步骤为:通过VIO配置MDIO管理模块PHY地址、寄存器地址,然后选择操作读取某一PHY芯片的寄存器的值,结合PHY的工作状态,判断该寄存器是否被正确读取。...由于执行操作时是采用先写入地址,在读取数据的方式,因此只测试读操作就可以完整的测试MDIO管理模块的功能。以下是VIO对应的调用代码。

3.9K21

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.9K11
您找到你想要的搜索结果了吗?
是的
没有找到

PHY芯片快速深度理解

Linux系统的arm芯片想要网络,可以直接通过mac和网卡芯片连接获取,这时候就需要通过RGMII接口或者MII接口 和 MDIO 连接网卡芯片。...OP Code:2bits的操作码,10表示,01表示写。PHYAD:5bits的PHY地址。REGAD:5bits的寄存器地址,即要或写的寄存器。...Data:16bits数据,在读命令中,PHY芯片将读到的对应PHYAD的REGAD寄存器的数据写到Data中,在写命令中,MAC将要写入对应PHYAD的REGAD寄存器的值写入Data中。...也就是说不管你用的哪个厂家的 PHY 芯片,其中 0~15 这 16 个寄存器是一模一样的。仅靠这 16 个寄存器是完全可以驱动起 PHY 芯片的,至少能保证基本的网络数据通信。...以上内容是海翎光电的小编看了大量的参考文献和一步步的实践总结的经验,通过实践,把每一层都走一遍,把变压器去掉,把phy去掉,linux系统的网卡函数看了一遍,phy芯片的手册有看了很多。

46850

PHY芯片快速深度理解

Linux系统的arm芯片想要网络,可以直接通过mac和网卡芯片连接获取,这时候就需要通过RGMII接口或者MII接口 和 MDIO 连接网卡芯片。...OP Code:2bits的操作码,10表示,01表示写。PHYAD:5bits的PHY地址。REGAD:5bits的寄存器地址,即要或写的寄存器。...Data:16bits数据,在读命令中,PHY芯片将读到的对应PHYAD的REGAD寄存器的数据写到Data中,在写命令中,MAC将要写入对应PHYAD的REGAD寄存器的值写入Data中。...也就是说不管你用的哪个厂家的 PHY 芯片,其中 0~15 这 16 个寄存器是一模一样的。仅靠这 16 个寄存器是完全可以驱动起 PHY 芯片的,至少能保证基本的网络数据通信。...以上内容是海翎光电的小编看了大量的参考文献和一步步的实践总结的经验,通过实践,把每一层都走一遍,把变压器去掉,把phy去掉,linux系统的网卡函数看了一遍,phy芯片的手册有看了很多。

41410

PHY芯片快速深度理解

Linux系统的arm芯片想要网络,可以直接通过mac和网卡芯片连接获取,这时候就需要通过RGMII接口或者MII接口 和 MDIO 连接网卡芯片。...OP Code:2bits的操作码,10表示,01表示写。PHYAD:5bits的PHY地址。REGAD:5bits的寄存器地址,即要或写的寄存器。...Data:16bits数据,在读命令中,PHY芯片将读到的对应PHYAD的REGAD寄存器的数据写到Data中,在写命令中,MAC将要写入对应PHYAD的REGAD寄存器的值写入Data中。...也就是说不管你用的哪个厂家的 PHY 芯片,其中 0~15 这 16 个寄存器是一模一样的。仅靠这 16 个寄存器是完全可以驱动起 PHY 芯片的,至少能保证基本的网络数据通信。...以上内容是海翎光电的小编看了大量的参考文献和一步步的实践总结的经验,通过实践,把每一层都走一遍,把变压器去掉,把phy去掉,linux系统的网卡函数看了一遍,phy芯片的手册有看了很多。

54720

【Android 逆向】代码调试器开发 ( ptrace 函数 | 寄存器 | 写寄存器 )

文章目录 一、寄存器 二、写寄存器 一、寄存器 ---- 调用 ptrace(PTRACE_GETREGS, m_nPid, NULL, regs) 读取进程运行时的寄存器 ; 读取寄存器时 , 进程必须处于...WUNTRACED 状态 , 否则就会出错 ; 参数一设置为 PTRACE_GETREGS , 代表本次操作是读取寄存器值 ; 完整代码 : int CPtrace::getRegister(REGS...PTRACE_GETREGS failed pid %d", m_nPid); return PTERR_GETREG_FAILED; } return PTERR_SUCCESS; } 二、写寄存器...---- 调用 ptrace(PTRACE_SETREGS, m_nPid, NULL, regs) 向进程运行时的寄存器写入值 ; 写寄存器时 , 进程必须处于 WUNTRACED 状态 , 否则就会出错...; 参数一设置为 PTRACE_SETREGS, 代表本次操作是向寄存器写入值 ; int CPtrace::setRegister(const REGS* regs) { if (ptrace(PTRACE_SETREGS

42800

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

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

在 Windows 及 Linux 里面可以用 arp -a 的命令查看 ARP 表。...寄存器中各位的详细说明如下: 100BASE-T4 ability: 当为逻辑1时,位1.15指示PHY有能力使用100BASE-T4信令规范执行链路发送和接收。...当为逻辑0时,位1.7指示PHY只有在PHY确定已建立有效链路时才能从媒体独立接口传输数据。...当为逻辑0时,位1.5指示自动协商过程尚未完成,并且扩展寄存器的内容由自动协商协议的当前状态定义,或者为手动配置写入。 如果自动协商通过清除位0.12禁用,则PHY应在位1.5返回零值。...Auto-Negotiation ability: 当为逻辑1时,位1.3指示PHY有能力执行自动协商。 当为逻辑0时,位1.3指示PHY缺乏执行自动协商的能力。

4.3K22

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

管理帧格式:操作时序写操作时序报头: 每个读写均可通过报头字段启动,报头字段对应于MDIO线上32个连续的逻辑“1”位以及MDC的32个周期,该字段用于与PHY设备建立同步起始: 起始由模式定义操作...3.3 PHY基础知识简介PHY是IEEE 802.3规定的一个标准模块,SOC可以通过MDIO对PHY进行配置或者读取phy相关状态,PHY内部寄存器必须满足PHY芯片的寄存器地址空间是5位,一般由外部硬件连接决定...地址空间031共32个寄存器,IEEE定义了015这16个寄存器的功能,16-31这16个寄存器由厂商自行实现。也就是说不管哪个厂商的PHY芯片,其中0~15这16个寄存器是一模一样的。...因此 Linux 内核有通用 PHY 驱动,按道理来讲,不管你使用的是哪个厂家的 PHY 芯片,都可以使用 Linux 的这个通用 PHY 驱动来验证网络工作是否正常。...随着现在PHY芯片性能越来越强大,32个寄存器已经无法满足厂商的需求,因此很多厂商采用了分页机制来开展寄存器地址空间,以求定义更多的寄存器

1.8K01

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芯片的寄存器,就跟手册中是一样的了。

83940

汇编指令-MRS()和MSR(写)指令操作CPSR寄存器和SPSR寄存器使用(1)

1.MSR和MRS指令介绍  MRS 指令:  对状态寄存器CPSR和SPSR进行操作。通过CPSR可以获得当前处理器的工作状态。...SPSR寄存器可以获得进入异常前的处理器状态(因为只有异常模式下有SPSR寄存器)。 MSR指令:    对状态寄存器CPSR和SPSR进行写操作。...与MRS配合使用,可以实现对CPSR或SPSR寄存器-修改-写操作,可以切换处理器模式、或者允许/禁止IRQ/FIQ中断等。...2.CPSR 程序状态寄存器(current program status register) 如图所示,ARM每种工作模式除R0~R15共16个寄存器外,还有第17个寄存器CPSR,叫做 当前程序状态寄存器...标志域屏蔽字节([31:24]) 所以cpsr_c表示的是CPSR控制位、 4.使用MRS和MSR来设置2440位管理模式,实例: mrs r0,cpsr                          状态寄存器

2.4K50

思科网络专家介绍以太网自协商机制专题五

和10M/100M/1000M PHY寄存器结构有较大的不同。...IEEE Clause 22 原理介绍 MDC/MDIO时序图介绍: 时序图: 写时序图: MDC/MDIO编码结构: PHY寄存器结构: IEEE Clause 22 PHY寄存器为两级寻址结构,...若PHY的一个Port中需要操作的寄存器的数量远大于32个,这时可以用Shadow进行扩展就会显得捉襟见肘,必须引入全新的寄存器结构。 3....IEEE Clause 45 原理介绍 MDC/MDIO时序图: 时序图: 写时序图: MDC/MDIO编码结构: PHY寄存器结构图: PHY寄存器结构描述: IEEE Clause 45 PHY寄存器为三级寻址结构...Frame的“ReadInc型”可以对Reg地址连续的寄存器执行批量的,可以大幅度提高效率。

7410

汇编指令-MRS()和MSR(写)指令操作CPSR寄存器和SPSR寄存器使用(1)

1.MSR和MRS指令介绍  MRS 指令:  对状态寄存器CPSR和SPSR进行操作。通过CPSR可以获得当前处理器的工作状态。...SPSR寄存器可以获得进入异常前的处理器状态(因为只有异常模式下有SPSR寄存器)。 MSR指令:    对状态寄存器CPSR和SPSR进行写操作。...与MRS配合使用,可以实现对CPSR或SPSR寄存器-修改-写操作,可以切换处理器模式、或者允许/禁止IRQ/FIQ中断等。...2.CPSR 程序状态寄存器(current program status register) 如图所示,ARM每种工作模式除R0~R15共16个寄存器外,还有第17个寄存器CPSR,叫做 当前程序状态寄存器...([23:16]) F 标志域屏蔽字节([31:24]) 所以cpsr_c表示的是CPSR控制位、 4.使用MRS和MSR来设置2440位管理模式,实例: mrs r0,cpsr //状态寄存器

1.3K20

关于FEC驱动_FEC伍丰

phy_addr的低八位,将它放入变量regval中,这里应该是取PHY的地址,然后先看下 mii_free队列中有无元素,也即是判断有无可用的MII命令队列,如果有,则把寄存器的值(即是要读写PHY的哪个寄存器...fec_mii_data,这里的值应该是PHY芯片通过MII接口返回上次要求寄存器 的值,然后如果有mip->mii_func的话就回调这个函数,接着移动mii_head和mii_free队列,最后再写入下一个要...(写) 的PHY寄存器。...,它先将要寄存器MII_REG_PHYIR1通过宏mk_mii_read转换成MII寄存器的格式,然后写入fec_mii_data 寄存器,表示我想读取PHY芯片的MII_REG_PHYIR1寄存器的值...,而寄存器写完后,FEC的MII模块会产生一个中断表示说这 个PHY寄存器已经完成,然后中断处理函数fec_enet_mii中,会读取PHY返回的刚才我想要读取的寄存器的值给 fec_mii_data

57010

【RL-TCPnet网络教程】第5章 PHY芯片和STM32的MAC基础知识

参考手册中对这一部分讲解的比较详细,也比较容易理解,建议初学者务必读一。我们这里就不将其复制粘贴过来了。 2、MAC802.3帧格式,帧发送,帧接收等方面的讲解。...手册中给出了DMA方式的发送和接收的初始化顺序,在下一章节讲解底层驱动的时候结合驱动代码会理解的更好,建议初学者也一遍。...这些PHY芯片都大同小异,基本寄存器都是一样的,只有扩展寄存和厂商专门设置的寄存器不同。...如果用户将其中一个PHY驱动成功了,驱动另一个也是非常方便的,下面是DP83848和DM9161/9162的基本寄存器和扩展寄存器: /* DP83848C and DM9161 PHY Registers...学习完毕本章节后,务必将STM32参考手册中MAC章节一遍。

1.1K40

以太网自协商--1000BASE-X自协商(五)

1000BASE-X自协商实践 芯片寄存器 笔者以曾经实践过的Broadcom公司的BCM53286的四个1000BASE-X Serdes口举例[与自协商相关的寄存器属于IEEE802.3标准寄存器,...故不同厂家不同型号的PHY该部分实现大同小异],与1000BASE-X自协商相关的7个寄存器内容分别如下。...)(利用此功能可以让远端设备提前做一些保护动作); 2b01 指示本端设备检测到link failure [同步丢失或者C码交互超时(默认超时时间为10ms)会触发link failure](软件通过状态位...LINK_DOWN_SYNC_LOSS进行判决); 2b11 指示本端设备检测到自协商错误(软件通过状态位AUTONEG_RES_ERR进行判决); 2b00 指示本端设备一切正常; bit8:7 PS2...软件通过本端和远端的bit8:7的各种组合进行对本端MAC的tx和rx方向的802.3流控进行设置,具体规则如下表: “MAC-PCS控制寄存器”需要软件根据“PHY-AN广告寄存器”和“PHY-AN

5810
领券