uboot: RTL8201 100M PHY驱动代码
u-boot-2020.04不支持RTL8201 PHY.
1. Patch
https://lists.denx.de/pipermail/u-boot/2020-January/397725.html
https://lists.denx.de/pipermail/u-boot/2020-January/397726.html
https://elixir.bootlin.com/u-boot/v2021.04/source/drivers/net/phy/realtek.c
2. adapt
添加以下代码到u-boot-2020.04\drivers\net\phy\realtek.c
static int rtl8201f_probe(struct phy_device *phydev)
{printf("probe rtl8201f phy\n");#ifdef CONFIG_RTL8201F_PHY_RMII_TIMINGSphydev->flags |= PHY_RTL8201F_RMII_TIMINGS;
#endifreturn 0;
}/* RealTek RTL8201F */
static int rtl8201f_config(struct phy_device *phydev)
{unsigned int reg;debug("rtl8201f config\n");if (phydev->flags & PHY_RTL8201F_RMII_TIMINGS) {phy_write(phydev, MDIO_DEVAD_NONE, MIIM_RTL8211F_PAGE_SELECT, 7);reg = phy_read(phydev, MDIO_DEVAD_NONE, RTL8201F_RMSR);reg &= ~(RMSR_RX_TIMING_MASK | RMSR_TX_TIMING_MASK);/* Set the needed Rx/Tx Timings for proper PHY operation */reg |= (RMSR_RX_TIMING_VAL << RMSR_RX_TIMING_SHIFT)| (RMSR_TX_TIMING_VAL << RMSR_TX_TIMING_SHIFT);phy_write(phydev, MDIO_DEVAD_NONE, RTL8201F_RMSR, reg);phy_write(phydev, MDIO_DEVAD_NONE, MIIM_RTL8211F_PAGE_SELECT, 0);}phy_write(phydev, MDIO_DEVAD_NONE, MIIM_RTL8211F_PAGE_SELECT, 7);reg = phy_read(phydev, MDIO_DEVAD_NONE, RTL8201F_RMSR);
#ifdef CONFIG_RMII_CLK_INPUT_MODEprintf("RMII clk is input mode\n");reg |= RMII_CLK_DIR_BIT; // txc input mode
#elseprintf("RMII clk is output mode\n");reg &= ~(RMII_CLK_DIR_BIT); // txc output mode
#endifreg |= (RMII_MODE_BIT); //RMII modephy_write(phydev, MDIO_DEVAD_NONE, RTL8201F_RMSR, reg);phy_write(phydev, MDIO_DEVAD_NONE, MIIM_RTL8211F_PAGE_SELECT, 0);genphy_config_aneg(phydev);return 0;
}/* Support for RTL8201F PHY */
static struct phy_driver RTL8201F_driver = {.name = "RealTek RTL8201F 10/100Mbps Ethernet",.uid = 0x1cc816,.mask = 0xffffff,.features = PHY_BASIC_FEATURES,.probe = &rtl8201f_probe,.config = &rtl8201f_config,.startup = &rtl8211e_startup,.shutdown = &genphy_shutdown,
};int phy_realtek_init(void)
{
......phy_register(&RTL8211F_driver);phy_register(&RTL8201F_driver);return 0;
}
uboot: RTL8201 100M PHY驱动代码相关推荐
- [I.MX6UL] U-Boot移植(六) 网络驱动修改 LAN8720A(对比原子和NXP官方测试板的网络芯片LAN8720A , KSZ8081 (也是飞凌)唯独复位引脚不同595芯片也涉及改动)
I.MX6UL/ULL 内部有个以太网 MAC 外设,也就是 ENET,需要外接一个 PHY 芯片来实现网络通信功能,也就是内部MAC+外部 PHY 芯片的方案. I.MX6UL/ULL 有两个网络接 ...
- [I.MX6UL] U-Boot移植(六) 网络驱动修改 LAN8720A
I.MX6UL/ULL 内部有个以太网 MAC 外设,也就是 ENET,需要外接一个 PHY 芯片来实现网络通信功能,也就是内部MAC+外部 PHY 芯片的方案. I.MX6UL/ULL 有两个网络接 ...
- uboot移植Linux-SD驱动代码解析
一.uboot与linux驱动 1.1.uboot本身是裸机程序 (1)狭义的驱动概念是指:操作系统中用来具体操控硬件的代码叫驱动 广义的驱动概念是指:凡是操控硬件的代码都叫驱动 (2)裸机程序中是直 ...
- 在U-boot中添加以太网驱动-Nazgul
当定义CONFIG_CMD_NET和CONFIG_CMD_PING,编译之后执行ping命令,告警没有找到以太网. 因此,需要打开U-boot的网络功能, u-boot-sunxi-sunxi中没有找 ...
- phy 驱动与 switch 驱动
phy 驱动与 switch 驱动 phy 驱动 phy 与 cpu 的硬件连接 一般为 MAC-PHY 模式: ----------- | CPU | RGMII/| ------| MII --- ...
- Mstar Mac Phy 驱动学习
MII.h 和 MII.c 这是MII协议.里面有MII协议的PHY寄存器地址,及MII通信接口库 Linux的mdio主要是为了管理PHY芯片寄存器的,跟踪代码发现,它会进行创建PHY设备及一些初始 ...
- 网络驱动->PHY驱动调试
1. Linux 系统网络协议层架构 网络协议框架图: 网络子系统是 linux 操作系统里很重要的一部分.关于这部分有很多的参考资料.这里主要说明一下 phy 芯片在整个子系统里的位置.从这个结构里 ...
- Linux Phy 驱动解析
文章目录 1. 简介 2. phy_device 2.1 mdio bus 2.2 mdio device 2.3 mdio driver 2.4 poll task 2.4.1 自协商配置 2.4. ...
- Linux phy驱动开发总结
文章目录 基础 须知 数据结构 数据结构UML类图 MAC驱动 初始化简述 驱动实现 关于MAC连接PHY PHY驱动 动态注册 静态注册 通用PHY 参考模板 IP18xx驱动调试 须知: 问题 方 ...
最新文章
- AI一分钟 | Facebook或将面临2万亿美元罚款;大疆寻求新一轮融资,估值150亿美元
- Desert King POJ - 2728
- Cocos2d-x 3.0 简捷的物理引擎
- TimeJot – Last Time 改名,新增中文界面、数字属性,还是那个时间线管理神器[Android]
- mysql导出可执行文件_实例讲解MYSQL注入中导出可执行文件至启动项原理(三)...
- Java并发编程之ConcurrentHashMap原理解析
- cyyz: Day 6 平衡树整理
- 如何在苹果Mac中设置 Excel 文件打印范围刚好是一页纸?
- C++ 实现反射机制(转载)
- 项目搭建 windows_08. SpringCloud实战项目-配置Git
- 行业如此内卷,品牌如何实现可持续招商增长?
- Vue3和Vue2的一些区别
- Vue从零开始(2):使用Vue CLI快速生成项目脚手架
- 自定义ListVIew添加上下更多项
- java 8新特性之effectively final
- infor系统日常问题解决笔记
- MSM下串口扩展wk2114
- pycharm 导包时不小心选择了“Ignore unresolved reference“
- win10 家庭版如何能远程桌面控制
- ajax异步上传什么意思,使用 jQuery 的 AJAX 异步上传文件
热门文章
- 构建负载均衡服务器之一 负载均衡与集群详解
- HR数据抽取:通过 Read Master Data 转换规则读取时间相关主属性数据
- Java Instanceof
- 20071103网工考试
- c#endread怎么打印出来_C#编程直接发送打印机命令到打印机及ZPL常用的打印命令详解...
- Spring源码 --Idea module 相互引用
- mysql平台workb_MySQL:MySQL Workbench的使用
- java 日志使用_Java日志正确使用姿势
- J - Milking Time POJ - 3616(dp动态规划)
- ajax修改按钮的html值,表格行的按钮AJAX后,怎么修改表格当前行的值