UBOOT-在uboot中确定网络连接问题

本文的方法就是通过在uboot中读取phy寄存器的状态来判断网络,所以当前状况下必须保证MDIO总线没有问题,否则无法读取PHY寄存器

zynq-uboot> mdio
mdio - MDIO utility commands
Usage:
mdio list           - List MDIO buses
mdio read <phydev> [<devad>.]<reg> - read PHY's register at <devad>.<reg>
mdio write <phydev> [<devad>.]<reg> <data> - write PHY's register at <devad>.<reg>
<phydev> may be:
   <busname>  <addr>
   <addr>
   <eth name>
<addr> <devad>, and <reg> may be ranges, e.g. 1-5.4-0x1f.

以上是uboot中的mdio的帮助说明。

zynq-uboot> mdio list
Gem.e000b000:
3 - Generic PHY <--> Gem.e000b000

根据mdio可以看到当前uboot中只有一个phy_dev为3的phy芯片

下一步便是读取寄存器

zynq-uboot> mdio read 3 0   
3 is not a known ethernet
Reading from bus Gem.e000b000
PHY at address 3:
0 - 0x1140
zynq-uboot> mdio read 3 0-15
3 is not a known ethernet
Reading from bus Gem.e000b000
PHY at address 3:
0 - 0x1140
1 - 0x796d
2 - 0x22
3 - 0x1622
4 - 0x1e1
5 - 0xcde1
6 - 0xd
7 - 0x2001
8 - 0x4ae2
9 - 0x300
10 - 0x7800
11 - 0x0
12 - 0x0
13 - 0x0
14 - 0x0
15 - 0x3000

可以读取一个寄存器,也可以读取一个范围内的寄存器,我们关注的一般为0寄存器(基本控制寄存器Basic Control)和1寄存器(Basic  status),来确定我们是否已经link up和当前的链接速率。这两个寄存器为标准IEEE 802.3 Specification中明确规定的

  • 3
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
### 回答1: 在 U-Boot 进行 SPI 扫描需要使用 `sf probe` 命令。这个命令会尝试扫描 SPI 总线上的设备,并自动识别所有已连接的 SPI 设备。一旦识别出设备,U-Boot 就会将其添加到其设备列表,然后你可以使用其他命令与这些设备进行交互。 以下是在 U-Boot 进行 SPI 扫描的步骤: 1. 进入 U-Boot 命令行界面。 2. 输入 `sf probe` 命令,以扫描 SPI 总线上的设备。 3. 如果 U-Boot 成功地识别了任何 SPI 设备,它将会显示一个或多个类似于下面这样的消息: ``` SF: Detected xxxxxxxx eeprom ``` 其 `xxxxxxxx` 是 SPI 设备的厂商 ID。 4. 然后你就可以使用其他命令(如 `sf read` 和 `sf write`)与这些设备进行交互。 需要注意的是,U-Boot 可能不会自动识别所有连接的 SPI 设备,特别是当设备连接方式不符合 SPI 规范时。在这种情况下,你可能需要手动配置设备并添加到 U-Boot 的设备列表。 ### 回答2: uBoot是一款开源的引导加载程序,用于嵌入式系统的引导过程。SPI是一种串行外部总线接口协议,用于连接主控芯片与外部设备。在uBoot,可以通过SPI扫描来自动检测和配置连接在SPI总线上的设备。 SPI扫描功能可以帮助系统识别连接在SPI总线上的设备,并自动进行设备的配置和初始化。在uBoot,可以使用spi命令来进行SPI扫描操作。 首先,需要通过spi命令设置SPI总线的编号和速率,例如设置SPI总线编号为0,速率为1000kHz: spi bus 0 spi clock 1000 然后,可以使用spi命令执行扫描操作: spi scan 执行该命令后,uBoot会自动扫描连接在SPI总线上的设备,并显示设备的相关信息,例如设备型号、地址等。 通过spi扫描功能,可以方便地获取连接在SPI总线上的设备信息,从而在系统引导过程进行相应的配置和初始化。这有助于提高嵌入式系统的可靠性和稳定性。 需要注意的是,在使用spi扫描功能前,需要确保硬件上的SPI总线及设备连接正确,并已经正确配置了相关的硬件引脚和驱动程序。 总之,通过在uBoot使用spi扫描功能,可以方便地检测和配置连接在SPI总线上的设备,提高嵌入式系统的可靠性和稳定性。 ### 回答3: U-Boot是一种开源的嵌入式引导加载程序,用于引导和初始化嵌入式系统。SPI (Serial Peripheral Interface) 是一种常见的串行外设接口,广泛应用于嵌入式系统。 在U-Boot,可以通过spi命令进行SPI总线设备的扫描。SPI设备的扫描是指U-Boot通过SPI总线逐个查找连接的从设备,并显示出其设备ID或与其通信。 要在U-Boot进行SPI扫描,可以按照以下步骤进行: 1. 首先,确保U-Boot已经正确地加载到目标设备。 2. 进入U-Boot命令行界面,在命令行输入spi命令并按下回车键。 3. 输入scan命令并按下回车键,让U-Boot开始扫描SPI总线上的设备。 4. U-Boot将逐个尝试与SPI总线上的设备通信,如果成功与设备通信,则会显示出设备的ID和一些其他的相关信息。 5. 扫描完成后,可以根据显示的设备信息来确定每个设备的使用情况,例如设备的类型、地址等等。 6. 在得到设备的信息后,可以根据需要在U-Boot配置相关的参数,以便正确地访问和使用这些SPI设备。 需要注意的是,SPI扫描命令的具体语法可能因不同版本的U-Boot而有所不同。因此,建议在实际应用前,通过查询相关文档或参考U-Boot的用户手册以了解特定版本正确的spi扫描命令语法和详细用法。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值