YT8531调试记录

news2024/11/14 19:37:44

总结

还是从设备树,mac驱动,mac驱动对mdio总线的注册,phy驱动 ,phy的datasheet,cpu的datasheet 几个方面来看来看

0.确认供电,以及phy的地址(一般会有多个地址,根据相关引脚电平可配置)

1.确认reset的有效电平

2.确认IO的有效电平

3.确认phy-mode,以及它的pinctrl的复用情况 (cat /sys/kernel/debug/pinctrl/pinctrl-handles  看current state)

4.确认rx_tx_delay的使能,和对应平台的时序

5.确认中断属性带来的影响

设备树

主要是选择pinctrl;配置reset脚;设置IO电平;设置phy的寄存器,phy-mode,中断属性等

eth0: eth@0xd4281800 {
				compatible = "eth";
				pinctrl-names = "default", "rgmii-pins";
				pinctrl-0 = <&emac_pmx_func0 &emac_pmx_func2 &emac_pmx_func3 &emac_pmx_func4>;
				pinctrl-1 = <&emac_pmx_func0 &emac_pmx_func1  &emac_pmx_func2 &emac_pmx_func3 &emac_pmx_func4>;
				reg = <0xd4281800 0x200>;
				interrupts = <10 11>;
				lpm-qos = <PM_QOS_CPUIDLE_BLOCK_AXI>;
				status = "okay";

				reset-gpio = <&gpio 34 0>;
				reset-active-low;/* 根据phy的电气属性选择这个使能电平,一般都是拉低复位,拉高正常工作 */

				reset-delays-us = <0 100000 100000>;

				clk-tuning-enable;
				
				tx-clk-config = <0x1>;
				rx-clk-config = <0x1>;
				3v3-enable = <0>; /* IO voltage, 1 - 3.3v, 0 - 1.8v 跟据phy的电气属性选择不同电平 */ 

				phy-handle = <&phy0>;

				mdio: mdio-bus {
					#address-cells = <0x1>;
					#size-cells = <0x0>;

					/* YT8531  10M/100M/1000M 3.3V RGMII PHY */
					phy0: phy@0 {
						compatible = "ethernet-phy-id4f51.e91b","ethernet-phy-ieee802.3-c22";
						device_type = "ethernet-phy";
						reg = <0x0>; /* set phy address*/
						phy-mode = "rgmii";
						//interrupts = <11>; /* 有中断属性的话,当phy的状态变为running,就不会去调用phy_read_status */
					};

				};
};

状态机

3.10.33内核版本如下 ,不同版本内核,状态机跟设备树都是不一样的操作;具体以各版本源码为准;如果设备了配了中断属性,RUNNING状态就不会自适应百兆千兆了

void phy_state_machine(struct work_struct *work)
{
......        
	case PHY_RUNNING:
			/* Only register a CHANGE if we are polling or ignoring
				* interrupts and link changed since latest checking.
				*/
			if (!phy_interrupt_is_valid(phydev)) {
					old_link = phydev->link;
					err = phy_read_status(phydev);
					if (err)
							break;

					if (old_link != phydev->link)
							phydev->state = PHY_CHANGELINK;
			}
			break;
......
}

mac驱动

up eth0时会调用emac驱动中注册的net_device的netdev_ops成员的ndo_open

net_device_ops
	ndo_open
		of_phy_connect
			phy_prepare_link
				phydev->adjust_link = handler;这个handler是mac驱动根据link状态,来调整speed和duplex

rx_tx_delay

RX和TX的delay是决定数据流是否能通的关键,因为不同平台的数据传输时序各有差异,phy驱动需要对这个delay进行调整

寄存器 

PHY是 IEEE802.3 中定义的一个标准模块。PHY 寄存器的地址空间为 5 位,因此寄存器范围是0 到31 ,最多有 32 个寄存器。IEEE802.3 定义了地址为0-15 这16个寄存器的功能,地址16-31的寄存器留给芯片制造商自由定义。当然不同PHY,还是以他们的datasheet为准

访问方式 

不同的phy的大体上都有这三种方式来访问phy的寄存器,扩展寄存器不同平台的差异就比较明显,因为是有phy厂家自己定义的

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1545642.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Linux离线安装mysql,node,forever

PS:本文是基于centos7实现的,要求系统能够查看ifconfig和unzip解压命令, 实现无网络可安装运行 首先现在百度网盘的离线文件包****安装Xftp 和 Xshell 把机房压缩包传到 home目录下****解压unzip 包名.zip 获取IP先获取到 linux 主机的ip ifconfig Xftp 连接输入IP,然后按照…

CentOS使用Docker部署Halo并结合内网穿透实现公网访问本地博客

文章目录 1. Docker部署Halo1.1 检查Docker版本如果未安装Docker可参考已安装Docker步骤&#xff1a;1.2 在Docker中部署Halo 2. Linux安装Cpolar2.1 打开服务器防火墙2.2 安装cpolar内网穿透 3. 配置Halo个人博客公网地址4. 固定Halo公网地址 本文主要介绍如何在CentOS 7系统使…

搭建本地局域网域名并配置本地的mqtt服务器

1. 第一步&#xff1a; 首先准备一台windows电脑&#xff0c;安装 Technitium DNS Server 链接如下&#xff1a; Technitium DNS Server | An Open Source DNS Server For Privacy & Security 启动 start 然后进入 http://localhost:5380/ 下载完成之后&#xff0c;需要…

内网端口如何映射到外网?

内网端口映射到外网是一项重要的网络技术&#xff0c;它可以实现在任何网络环境下远程访问和管理内网设备。在复杂的网络环境中&#xff0c;内网设备通常无法直接被外网访问&#xff0c;而内网端口映射技术可以解决这个问题。本文将介绍一种名为【天联】的组网产品&#xff0c;…

最小割问题合集,最大权闭合图,最大密度子图,最小权点覆盖,最大权独立子图,OJ练习,代码详解

文章目录 零、回顾1、流网络的割2、最小割问题 一、最小割的应用1.1POJ1966 -- Cable TV Network1.1.1原题链接1.1.2思路分析1.1.3AC代码 1.2ZOJ 2676 Network Wars1.2.1原题链接1.2.2思路分析1.2.3AC代码 1.3OPTM - Optimal Marks1.3.1原题链接1.3.2思路分析1.3.3AC代码 二、最…

VS2022 nuget 无法解析 PackageSourceMapping 已启用,未考虑以下源: nuget.org。

前言&#xff1a; VS中的项目包的指向是 nuget.org&#xff0c;不是本地的下载后包。 解决方法&#xff1a; 把“包源映射”里的全部移除。

tcp/ip是什么意思,tcp/ip协议包含哪几层

TCP/IP是一种网络通信协议&#xff0c;它是互联网所采用的基本协议。TCP/IP协议是由美国国防部高级研究计划局&#xff08;ARPA&#xff09;在上世纪70年代设计开发的&#xff0c;经过多年发展和完善&#xff0c;已成为全球范围内最重要的网络通信协议之一。 首先&#xff0c;让…

Gif动图怎么快速制作?两招教你在线做

Gif动图作为一种实用的图片格式&#xff0c;因为其体积小&#xff0c;画面丰富&#xff0c;所以在各大聊天软件中非常的受欢迎。小伙伴们是不是很好奇这种gif动态图片是如何制作的吧&#xff01;下面&#xff0c;小编就给大家分享两个快速制作gif动画的小技巧&#xff01;不用下…

UI 自动化里面等待方式应用场景!

掌握Selenium 自动化测试的人员都知道Selenium的等待使用场景至关重要&#xff0c;这些等待对于测试自动化稳定性不可或缺的一部分&#xff0c;因为它们确保与 Web 元素的同步交互&#xff0c;从而能够在不同的加载时间和动态页面更改中准确执行测试脚本。 本文将深入探讨 Sel…

黄金近期可以投资吗?看这篇技术分析就够了

黄金价格的走势很大程度上受到美联储货币政策&#xff0c;以及市场对于美联储货币政策预期变化的影响&#xff0c;但不管金价的走势如何改变&#xff0c;现货黄金作为一种可以双向操作的黄金交易工具&#xff0c;都可以帮助投资者在不同的走势中主动出击&#xff0c;在风险可控…

el-table 表格中插入表单循环校验

<template><div>{{form}}<el-form :model"form" ref"form"><el-form-item label"呃呃呃呃呃呃呃"><el-table :data"tableData" border><el-table-column prop"time" label"日期"…

Jira 软件缺陷管理 (软件测试)

内容来源&#xff1a;总结黑马课程 1.软件缺陷信息 2.创建缺陷问题 2.1 缺陷模板 2.2 创建缺陷问题模板

linux + gitee+idea整套配置以及问题详解

目录&#xff1a; 1、安装git 2、git配置 3、git和gitee账户建立安全链接 4、gitee创建仓库 5、idea配置gitee 6、克隆提交代码 1、安装git 使用到github上下载最新版&#xff0c;上传到你的服务器&#xff0c;再进行解压。 这里是我的压缩包。解压命令&#xff1a; cd /usr/g…

ABAP程序代码批量导出

运行界面 *&---------------------------------------------------------------------* *& Report ZZ0001 *& *&---------------------------------------------------------------------* *& *& *&-----------------------------------------…

那位拿了多个Offer的大佬分享了最新Go面经

和大家分享一下我们 Go就业训练营 和 升职加薪星球 中战友们投稿的真实面经。 这是第一篇&#xff0c;计划还会再更新4篇最新Go面经&#xff0c;都是拿到Offer的那种&#xff01; 欢迎大家关注我的账号&#xff0c;关注之后不迷路。 先秀战绩 虽然不同的公司考察的侧重点不一…

宜搭低代码高级认证实操题1 todolist

进行中待办 已完成待办 待办事项 待办事项远程api和变量配置 回调函数 function didFetch(content) {//console.log(content.data);// content.b 1; 修改返回数据结构中的 b 字段为1let res content.data;let todoList [];for(let i in res){todoList.push(res[i]);}consol…

MVC框架里的几种对象

Java语言是一门面向对象的编程语言&#xff0c;所有都用类表达&#xff0c;入口都是一个类&#xff0c;没有独立的main&#xff08;&#xff09;函数&#xff0c;类的实例化就是对象。 简单来讲类包括数据和方法&#xff0c;方法就是操作&#xff0c;是实现业务逻辑的地方&…

应急响应靶机-Linux(2)

前言 应急响应靶机训练&#xff0c;为保证每位安服仔都有上手的机会&#xff0c;不做理论学家&#xff0c;增加动手经验&#xff0c;可前来挑战应急响应靶机-Linux(2),此系列后期会长期更新&#xff0c;关注本公众号&#xff0c;被动学习。 挑战内容 前景需要&#xff1a;看…

16:00面试,16:06就出来了,问的问题有点变态。。。

从小厂出来&#xff0c;没想到在另一家公司又寄了。 到这家公司开始上班&#xff0c;加班是每天必不可少的&#xff0c;看在钱给的比较多的份上&#xff0c;就不太计较了。没想到8月一纸通知&#xff0c;所有人不准加班&#xff0c;加班费不仅没有了&#xff0c;薪资还要降40%…

生物信息—数据库

文章目录 核酸数据库1 一级核酸数据库&#xff1a;GenBank1.1 原核生物核酸序列1.2 真核生物成熟mRNA1.3 真核生物DNA序列 2 一级核酸数据库&#xff1a;基因组数据库&#xff1a;Ensemble3 一级核酸数据库&#xff1a;微生物宏基因组数据库&#xff1a;JCVI4 二级核酸数据库 蛋…