前言
- 正点原子 :RK3568 开发板
atompi-ca1
默认有两个网口,通过 u-boot mii 命令,可以查看 网口信息
=> mii device
MII devices: 'ethernet@fe010000' 'ethernet@fe2a0000'
Current device: 'ethernet@fe010000'
-
u-boot 下的以太网,不同于 Linux 内核的以太网,默认同时只能有一个用于网络通信,比如 运行
ping
或者tftp
命令 -
如果当前网线接的网口,不是默认的网口,就会等待超时,然后自动切换到另一个网口设备上
=> ping 192.168.10.10
ethernet@fe010000 Waiting for PHY auto negotiation to complete......... TIMEOUT !
phy_startup() failed: -110FAILED: -110ethernet@fe2a0000 Waiting for PHY auto negotiation to complete. done
Using ethernet@fe2a0000 device
host 192.168.10.10 is alive
- 此时可以通过
env printf ethact
查看当前的默认网口,不过 u-boot 重启reset
后,依旧会还原,因为没有saveenv
保存ethact
的设置
=> env print ethact
ethact=ethernet@fe2a0000
- 如果指定好用于 u-boot 下用于网络通信的网口设备后,就可以使用 mii 查看一下 网络设备信息,并使用
setenv ethact 'ethernet@fe2a0000'
命令,设置ethact
env 环境变量,此时saveenv
,保存一下,重启后,网络通信的接口就会指定到 设置的网口设备。
=> mii device
MII devices: 'ethernet@fe010000' 'ethernet@fe2a0000'
Current device: 'ethernet@fe010000'
=> setenv ethact 'ethernet@fe2a0000'
=> ping 192.168.10.10
ethernet@fe2a0000 Waiting for PHY auto negotiation to complete. done
Using ethernet@fe2a0000 device
host 192.168.10.10 is alive
=> saveenv
Saving Environment to MMC...
Writing to MMC(0)... done
- 【备注】
mii device
命令也可以更改当前的网络设备,不过网络通信功能,依赖ethact
env 环境变量,通过 设置ethact
即可解决多个网口使用指定网口的问题。
小结
-
u-boot env 功能还是比较的方便,灵活设置 env 环境变量,让 u-boot 的启动引导功能更强大,使用更方便。
-
u-boot 网络功能除了设置
=> setenv ipaddr 192.168.10.120
=> setenv netmask 255.255.255.0
=> setenv gatewayip 192.168.10.1
=> setenv serverip 192.168.10.10
- 如果是多个网口,可以指定一个网口,设置
ethact
,比如setenv ethact 'ethernet@fe2a0000'