飞腾CPU FT-2000/4 uboot下PHY调试记录

科技资讯 投稿 6100 0 评论

飞腾CPU FT-2000/4 uboot下PHY调试记录

飞腾爱好者技术交流群码公众号“乌拉大喵喵”


一、环境说明

ft-2004c_u-boot-v2-Ver0.3_202112231001.tar.gz

 

调试PHY主要用到的命令是mii,先查看下可用的命令:

mii device,缩写mii dev,用来切换mac控制器。

mii read/write是用来读写寄存器的。

三、MII命令使用

首先通过命令看看配置了几个网络控制器mac。因为FT-2000/4内有两个网络控制器,理论上应该能看到2个mac。

FT2004C#mii dev

Current device: 'ethernet0@2820c000'

设备树位置:

3.2 mii info扫描PHY

 

FT2004C#mii dev

Current device: 'ethernet0@2820c000'

Mii info扫描:

PHY 0x04: OUI = 0x1374, Model = 0x07, Rev = 0x02,  10baseT, HDX

 

切换mac后再看看其下面有没有phy。

上面命令是切换到第2个网络控制器。

MII devices: 'ethernet0@2820c000' 'ethernet1@28210000'

可以看到,已经切换到了第2个mac控制器。

FT2004C#mii info

同样,在这个mac下也看到了一个地址为0x04的PHY。

因为飞腾的RGMII控制器是每个单独的MDIO接口,所以可以将板上的两个PHY地址设成一样的。

 

现在把网线插到板子双网络的上面的网口,从电路上是对应第一个mac下的phy网口。

使用mii dump命令可以查看phy的0~5的6个寄存器(使用mii read命令不存在这个说法,所有寄存器都能看 )。因为我们的PHY地址是0x04,所以mii dump里的addr我们填0x04,reg部分我们从0填到5就能看全所有的寄存器了。现在是插着网线的,所以可以看到“(0004:0004 1. 2    =     1    link status”表示link成功了,拔掉网线这里就=0了((0004:0000 1. 2    =     0    link status)。这也同时印证了PHY的MDIO是通的。还是那句话,这里的PHY link状态都读不到,那就去查硬件看看吧。MDIO都没通,不用着急去ping包。

FT2004C#mii dev 'ethernet0@2820c000'

FT2004C#mii dump 0x04 0

0.     (1000                 -- PHY control register --

  (8000:0000 0.15    =     0    reset

  (4000:0000 0.14    =     0    loopback

  (2040:0000 0. 6,13 =   b00    speed selection = 10 Mbps

  (1000:1000 0.12    =     1    A/N enable

  (0800:0000 0.11    =     0    power-down

  (0400:0000 0.10    =     0    isolate

  (0200:0000 0. 9    =     0    restart A/N

  (0100:0000 0. 8    =     0    duplex = half

  (0080:0000 0. 7    =     0    collision test enable

  (003f:0000 0. 5- 0 =     0    (reserved

 

 

FT2004C#mii dump 0x04 1

1.     (796d                 -- PHY status register --

  (8000:0000 1.15    =     0    100BASE-T4 able

  (4000:4000 1.14    =     1    100BASE-X  full duplex able

  (2000:2000 1.13    =     1    100BASE-X  half duplex able

  (1000:1000 1.12    =     1    10 Mbps    full duplex able

  (0800:0800 1.11    =     1    10 Mbps    half duplex able

  (0400:0000 1.10    =     0    100BASE-T2 full duplex able

  (0200:0000 1. 9    =     0    100BASE-T2 half duplex able

  (0100:0100 1. 8    =     1    extended status

  (0080:0000 1. 7    =     0    (reserved

  (0040:0040 1. 6    =     1    MF preamble suppression

  (0020:0020 1. 5    =     1    A/N complete

  (0010:0000 1. 4    =     0    remote fault

  (0008:0008 1. 3    =     1    A/N able

  (0004:0004 1. 2    =     1    link status

  (0002:0000 1. 1    =     0    jabber detect

  (0001:0001 1. 0    =     1    extended capabilities

 

 

FT2004C#mii dump 0x04 2

2.     (004d                 -- PHY ID 1 register --

  (ffff:004d 2.15- 0 =    77    OUI portion

 

 

FT2004C#mii dump 0x04 3

3.     (d072                 -- PHY ID 2 register --

  (fc00:d000 3.15-10 =    52    OUI portion

  (03f0:0070 3. 9- 4 =     7    manufacturer part number

  (000f:0002 3. 3- 0 =     2    manufacturer rev. number

 

 

FT2004C#mii dump 0x04 4

4.     (11e1                 -- Autonegotiation advertisement register --

  (8000:0000 4.15    =     0    next page able

  (4000:0000 4.14    =     0    (reserved

  (2000:0000 4.13    =     0    remote fault

  (1000:1000 4.12    =     1    (reserved

  (0800:0000 4.11    =     0    asymmetric pause

  (0400:0000 4.10    =     0    pause enable

  (0200:0000 4. 9    =     0    100BASE-T4 able

  (0100:0100 4. 8    =     1    100BASE-TX full duplex able

  (0080:0080 4. 7    =     1    100BASE-TX able

  (0040:0040 4. 6    =     1    10BASE-T   full duplex able

  (0020:0020 4. 5    =     1    10BASE-T   able

  (001f:0001 4. 4- 0 =     1    selector = IEEE 802.3

 

 

FT2004C#mii dump 0x04 5

5.     (cde1                 -- Autonegotiation partner abilities register --

  (8000:8000 5.15    =     1    next page able

  (4000:4000 5.14    =     1    acknowledge

  (2000:0000 5.13    =     0    remote fault

  (1000:0000 5.12    =     0    (reserved

  (0800:0800 5.11    =     1    asymmetric pause able

  (0400:0400 5.10    =     1    pause able

  (0200:0000 5. 9    =     0    100BASE-T4 able

  (0100:0100 5. 8    =     1    100BASE-X full duplex able

  (0080:0080 5. 7    =     1    100BASE-TX able

  (0040:0040 5. 6    =     1    10BASE-T full duplex able

  (0020:0020 5. 5    =     1    10BASE-T able

  (001f:0001 5. 4- 0 =     1    selector = IEEE 802.3

 

要是想看详细的寄存器位描述,就查手册就好了。

3.4 mii read write读写寄存器

mii read                 

这里的可以填手册里有的地址,AR8035有0x00~0x1F这么些寄存器。我们先使用read,看看读上来的是啥。

FT2004C#mii read 0x04 0

这里是把整个寄存器的16位都读上来了,也就说我们要控制寄存器的某一位,需要自己在二进制里配置好,转换完再配进去。

当然你也可以去读其他的寄存器值,读到后对应手册去查寄存器含义就好了。

我们write下试试,就操作speed selection寄存器吧,这个代表速度选择用控制寄存器。修改speed为2'b10 = 1000Mbps。即寄存器0的值为0x1040。配置完再读一下看,是配置进去了。

 

剩下就是ping测试了。

改完后从uboot这边去ping PC机就好了。

或者改uboot那边的ipaddr、gatewayip、serverip,改成你想要的。之后通过PC去ping板子。


 

欢迎飞腾爱好者加入微信交流群。

群内大家可以畅所欲言。

在群内不需要表露自己的公司和身份,可以群内交流遇到的问题,分享自己的调试心得。

希望大家共建飞腾友谊!

飞腾爱好者技术交流群码公众号“乌拉大喵喵”

 

编程笔记 » 飞腾CPU FT-2000/4 uboot下PHY调试记录

赞同 (29) or 分享 (0)
游客 发表我的评论   换个身份
取消评论

表情
(0)个小伙伴在吐槽