修改PHY的LED默认状态

T31 + JL1101

修改方式有两种,可以在内核中修改, 也可以在uboot中修改。在内核中修改那就只有当内核启动后才会改过来。

寄存器地址确认

根据PHY芯片厂商提供的规格书确认寄存器的地址:

1、PHY Identifier Register 物理层标示寄存器,addr=0x2。用以获取PHY的ID

2、确认寄存器的位置

 LED Functional

The JL1111 supports two configurable LED pins. The Device supports LED’s Link, Speed and Activity configurations. Functions are controlled through Page 7 Register 19, bits[5:4]

从这里可以看到功能通过第7页寄存器19位[5:4]进行控制

3、Page Select Register (Page 0, Register 31, PAGESEL), addr=0x1F。 翻页寄存器

uboot下修改方法

uboot\drivers\net\SynopGMAC_Dev.c(红框部分为修改内容)

这里仅仅只配置了LED,时钟选择、自协商、传输带宽都没配,这些寄存器可参考默认的也配置一下。

内核中修改方法

kernel\drivers\net\phy\phy.c(红框部分为修改内容)

命令行修改寄存器方法

Kernel 环境下:

读格式:reg:phy 地址-phy 寄存器地址(phy 地址默认是 0,phy 寄存器地址根据标 准手册查看)

$ echo r reg:0-0 > /proc/jz/mdio/cmd 写格式:reg:phy 地址-phy 寄存器地址-写入数据

$ echo w reg:0-0-0 > /proc/jz/mdio/cmd

翻页

可以看到,写完在去读,寄存器的值是有改变的

翻回去

 

Guess you like

Origin blog.csdn.net/weixin_59665492/article/details/119357216