gpt4 book ai didi

u-boot - u-boot 可以支持多个以太网端口吗?

转载 作者:行者123 更新时间:2023-12-03 20:18:56 27 4
gpt4 key购买 nike

我想 ping 出多个以太网端口。 u-boot 仅支持单个以太网端口是否存在固有限制?

最佳答案

Can u-boot support more than one ethernet port?



是的,在最新版本的 U-Boot 中(至少可以追溯到 2012.10)。
显着代码是 eth_current_changed() eth_set_current() 网络/eth.c .

Is there an inherent restriction where u-boot only supports a single ethernet port?



不,最新版本的 U-Boot 可以在板上支持多个以太网端口。

当有多个以太网接口(interface)可用时(由启动时的“Net”设备列表报告,例如“Net: macb0, gmac0, usb_ether”),环境变量 道德用于定义选定的处于事件状态的以太网接口(interface)。
使用 printenv ethact命令查看当前选择。
使用 setenv ethact <port name>更改事件的以太网端口。

U-Boot 网络命令,如 tftpboot , 将使用 定义的以太网端口道德多变的。这保留了旧版本 U-Boot 的命令语法,并且无论可用端口的数量如何,语法都是一致的(例如脚本不会更改)。

每个以太网端口都分配有自己的 MAC 地址,使用以下环境变量:
ethaddr: Ethernet MAC address for first/only ethernet interface (= eth0 in Linux).
This variable can be set only once (usually during manufacturing of the board). U-Boot refuses to delete or overwrite this variable once it has been set.

eth1addr: Ethernet MAC address for second ethernet interface (= eth1 in Linux).

eth2addr: Ethernet MAC address for third ethernet interface (= eth2 in Linux).

显然,您一次只能(轻松)访问一个端口。
也只有一个静态 IP 地址分配,即 ipaddr 环境变量。
(我不知道DHCP使用一个端口获取的I​​P地址会发生什么,然后更改事件端口。)
U-Boot> printenv ethact
ethact=macb0
U-Boot> setenv ethact gmac0
U-Boot> ping 192.168.1.1
gmac0: PHY present at 7
gmac0: Starting autonegotiation...
gmac0: Autonegotiation complete
gmac0: link up, 1000Mbps full-duplex (lpa: 0x2800)
Using gmac0 device
host 192.168.1.1 is alive
U-Boot>

请注意,还有一个轮换方案可以在端口关闭时自动更改事件端口:
U-Boot> printenv ethact
ethact=gmac0
U-Boot> ping 192.168.1.1
gmac0: PHY present at 7
gmac0: Starting autonegotiation...
gmac0: Autonegotiation timed out (status=0x7949)
gmac0: link down (status: 0x7949)
ERROR: Need valid 'usbnet_devaddr' to be set
at drivers/usb/gadget/ether.c:2362/usb_eth_init()
macb0: PHY present at 0
macb0:0 is connected to macb0. Reconnecting to macb0
macb0: Starting autonegotiation...
macb0: Autonegotiation timed out (status=0x7849)
macb0: link up, 100Mbps full-duplex (lpa: 0x41e1)
Using macb0 device
ping failed; host 192.168.1.1 is not alive
U-Boot> printenv ethact
ethact=macb0
U-Boot>

关于u-boot - u-boot 可以支持多个以太网端口吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32747239/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com