RTL8211F在uboot下使用mii工具配置RJ45网口灯详解。
首先要明确使用这个工具的目的,类似于i2c-test工具测试i2c,使用这个工具验证测试网口灯的配置。然后再通过软件或者驱动来实现控制。
RTL8211F-CG-Realtek.pdf的手册可以通过bing搜索下载,alldatasheet也有这个文档。
先追加执行历史记录,再进行命令解释。
uboot>mii info
PHY 0x00: OUI = 0x0732, Model = 0x11, Rev = 0x06, 1000baseT, FDX
PHY 0x01: OUI = 0x0732, Model = 0x11, Rev = 0x06, 1000baseT, FDX
uboot>mii read 0 2
001C
uboot>mii read 0 3
C916
uboot>mii read 1 2
001C
uboot>mii read 1 3
C916
uboot>mii write 1 0x1f 0x0D04
uboot>mii read 1 0x1f
0D04
uboot>mii read 1 0x10
624B
uboot>mii write 0 0x1f 0x0D04
uboot>mii write 0 0x10 0x624B
uboot>mii write 0 0x1f
uboot>mii write 1 0x1f 0x0D04
uboot>mii read 1 0x1f
0D04
uboot>mii read 1 0x10
624B
首先解释OUI,通过硬件手册,能够看到里面提到OUI:0x0732,这个能够对应起来。
关于OUI的解释,需要查看ieee 802.3的定义Table 22–6—MII management register set。
然后再看led的配置。缺省情况下,RTL8211F支持3个led,分别表示10M,100M,1000M的Active和Link。
这三个led会接到RJ45的状态灯上,这个具体的接法,可以参考硬件实际联线。
即一个灯即表示link又表示active,与一般的使用不同,两个灯一个表示link,另外一个表示active。
这个时候就需要通过配置寄存器修改灯的控制,使一个灯表示为100M、1000Mlink状态,一个灯表示100M的active状态,一个灯表示1000M的active状态。
参考手册,修改寄存器的状态来改变灯的行为。核心的命令如下:
uboot>mii write 0 0x1f 0x0D04
uboot>mii write 0 0x10 0x624B
uboot>mii write 0 0x1f