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
翻页
可以看到,写完在去读,寄存器的值是有改变的
写
翻回去