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

2024-01-19

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


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

是的,在最近版本的 U-Boot 中(至少可以追溯到 2012.10)。
突出的代码是eth_current_changed() and eth_set_current() in 网/eth.c.

u-boot 仅支持单个以太网端口是否存在固有限制?

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

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

U-Boot网络命令,例如ping and tftpboot,将使用由ethact多变的。这保留了旧版本 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 获取 IP 地址,然后更改活动端口会发生什么情况。)

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> 
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

u-boot 可以支持多个以太网端口吗? 的相关文章

  • uboot和ubuntu ping通测试结果

    前一段时间开始研究uboot xff0c 首先遇到的问题就是下载的别人移植的uboot始终ping不通主机 xff08 Windows中VMWare虚拟机中的ubuntu10 04 xff09 这几天终于找到了一份可以配合手头开发板的移植说
  • 补基础之shell和Makefile-2.2.uboot和系统移植第2部分-朱有鹏-专题视频课程

    补基础之shell和Makefile 2 2 uboot和系统移植第2部分 4241人已学习 课程介绍 本期课程为uboot学习的前导课程 xff0c 主要内容是shell和Makefile的基本语法和主要技巧 这些都是uboot中要用到的
  • uboot和bootloader有啥区别

    uboot和bootloader有啥区别 reboot to bootloader有什么用 IT教学网 片内的ram用来存储启动代码 xff0c 在2440初始化sdram之前 xff0c 代码就在片内ram中运行 片内ram装载的是nor
  • uboot源码分析之start.S解析

    1 start S引入 1 1 u boot lds中找到start S入口 1 在uboot中因为有汇编阶段参与 xff0c 因此不能直接找main c 整个程序的入口取决于链接脚本中ENTRY声明的地方 ENTRY start 因此 s
  • imx6ul:uboot-2013.10启动过程解析

    1 源码结构分析 首先一个问题 老版本的u boot是没有SPL这个文件的 新版u boot开始包含SPL文件 原来u boot启动比如放到nand中 在cpu内部有一个stepping stone 可以拷贝nand中的u boot到ram
  • U-Boot 移植

    目录 NXP官方开发板uboot编译测试 查找NXP官方的开发板默认配置文件 defconfig 配置编译NXP官方开发板对应的uboot 烧写验证与驱动测试 定位缺少的驱动 在NXP官方U Boot 中添加自己的开发板 添加开发板默认配置
  • linux文件系统初始化过程(3)---加载initrd(上)

    一 目的 本文主要讲述linux3 10文件系统初始化过程的第二阶段 加载initrd initrd是一个临时文件系统 由bootload负责加载到内存中 里面包含了基本的可执行程序和驱动程序 在linux初始化的初级阶段 它提供了一个基本
  • 嵌入式开发(S5PV210)——u-boot中如何确定启动方式

    1 嵌入式设备确认启动方式 设备确认启动方式分为硬件方式和软件方式 硬件方式是通过芯片某几个引脚的高低电平来决定启动方式 软件方式就是通过代码设置来决定启动方式 1 硬件方式 比如S5PV210芯片 通过拨码开关去设置芯片引脚的高低电平来设
  • SPI中的CPOL和CPHA概念

    经常会提及SPI分为四种模式 Mode 0 Clock Polarity CPOL 0 and Clock Phase CPHA 0 Mode 1 CPOL 0 and CPHA 1 Mode 2 CPOL 1 and CPHA 0 Mod
  • uboot 中内存测试,内存检测方法

    DDR内存子系统常见硬件错误及Uboot中检测流程 在 U Boot中 Denx U Boot的开发商 针对常见的DDR内存故障进行了严格的检测处理 下图描述了该检测处理过程的三个步骤 检测数据线 地址线和DDR物理存储部件 主要涉及这三个
  • 23. 基于Cortex-A9 uboot代码启动分析

    本篇文章是彭老师第一次在B站直播间 边直播边记录笔记 视频已经上传到B站 现在完善整理成该篇文章 有想学习uboot启动的代码详细流程的老铁可以进入我B站空间配合视频一起学习 视频地址 B站用户名 一口Linux 目录 前言 一 uboot
  • IMX6ULL NXP官方原版u-boot编译烧录体验以及出现的问题

    编译 guangjie ubuntu work imx6ull uboot imx rel imx 4 1 15 2 1 0 ga xgj cat make imx6ull emmc sh bin bash make ARCH arm CR
  • 交叉编译工具链中GUN常用命令简介

    一 交叉编译工具链前缀 arm none linux gnueabi 二 常用命令 注 此处以汇编点亮led灯代码为例 重点掌握 1 gcc 编译命令 arm none linux gnueabi gcc c S或 c o o eg arm
  • 高合汽车旗下可进化超跑SUV高合HiPhi X亮相海口国际新能源车展

    2021年1月8日 高端新能源智能出行品牌高合汽车旗下高合HiPhi X亮相第三届海口国际新能源汽车展览会 华人运通高合汽车创始人丁磊在现场透露 上市至今高合HiPhi X限量3000辆创始版车型即将预订售罄 累计收获了32000多位留资用
  • s5p4418的uboot网络无法使用问题解决

    一 前言 s5p4418 是一个三星的基于ARM的 cortex A9的四核处理器 这个 处理器目前常用的两个系统层固件分别是 uboot2014 linux3 4 39 和 uboot2016 linux4 4 172 两个版本 本次针对
  • uboot联网以及uboot重启问题

    一 配置uboot联网 虚拟机联网 配置uboot联网 1 配置uboot环境变量 setenv ipaddr 192 168 10 50 开发板ip地址 setenv ethaddr 00 04 9f 04 d2 35 mcu期间地址 多
  • 将uboot,kernel,rootfs下载到开发板上

    1 为什么要下载 所谓下载 也称烧录 部署 1 1 什么是u boot Hi3518EV200 单板的 Bootloader 采用 U boot u boot是一种普遍用于嵌入式系统中的Bootloader Bootloader是在操作系统
  • 为什么使用 uImage 而不是 zImage

    我正在尝试了解 zImage 和 uImage 之间的区别 以我的理解uImage是通过运行得到的mkimage on the Image结果它添加了一个 U Boot 包装器 我不知道它到底包含什么 其中包含header加上加载地址和入口
  • 如何从u-boot启动Linux内核?

    我的 Linux 内核镜像uImage在我的U盘里 我想从 U Boot 启动它 还有设备树文件am335x evm dtb在我的U盘里 我所做的如下 U Boot usb start Re start USB USB0 scanning
  • 为什么补丁找不到这个文件?

    我想对 u boot 源代码应用补丁 但是 Linux 不允许我这么做 我拥有的 reg ubuntu NextGen trunk FW thirdparty u boot patch p1 lt u boot u boot 2013 01

随机推荐