为什么引导系统,加载两个版本的u-boot?

Why boot system, load two versions of u-boot?

我有一个采用 MIPS 架构的 MT7620a 网关设备。设备已安装 OpenWRT。如果我通过 UART 连接到设备以刷新新固件,我会看到一些我不明白的东西,MCU 正在加载两个版本的 U-Boot。

这是启动后的系统日志

U-Boot 1.1.3 (Apr 27 2015 - 13:54:38)

Board: Ralink APSoC DRAM:  128 MB
relocate_code Pointer at: 87fb8000
enable ephy clock...done. rf reg 29 = 5
SSC disabled.
spi_wait_nsec: 29
spi device id: 1c 70 18 1c 70 (70181c70)
find flash: EN25QH128A
raspi_read: from:30000 len:1000
*** Warning - bad CRC, using default environment

============================================
Ralink UBoot Version: 4.3.0.0
--------------------------------------------
ASIC 7620_MP (Port5<->None)
DRAM component: 1024 Mbits DDR, width 16
DRAM bus: 16 bit
Total memory: 128 MBytes
Flash component: SPI Flash
Date:Apr 27 2015  Time:13:54:38

当然这个问题我还有几个问题:

  1. 这些U-Boot有什么不同?
  2. 为什么我的设备需要两个版本的 U-Boot?
  3. 这个u-boots是否需要单独的*.bin镜像或者这些是在一起的 在一张图片中 *.bin ?在我的设备中只有一个用于 u-boot 映像的分区和一个用于变量的分区:
    • mtd0: 00030000 00010000 "u-boot"
    • mtd1: 00010000 00010000 "u-boot-env"

可能只有一个u-boot,"Ralink UBoot Version: 4.3.0.0"是Ralink的内部u-boot版本。

正如 Alexandre Belloni 所说,您的设备上可能只有一个版本的 U-Boot,它只是有两个不同的版本标识符。

这是因为制造商通常需要修改 U-Boot 源代码才能使其在他们的设备上运行或添加功能。

在您的设备上,Ralink 从官方 U-Boot 源代码库中拉取的 U-Boot 版本似乎是 1.1.3。他们用于跟踪内部修改的 Ralink 自己的内部版本号是 4.3.0.0。