ARM Coretex am335_evm EVM 板子的启动

ARM 作为 RISC CPU,和传统的 x86 启动方式有大的区别,但是和同样 RISC CPU 的 Sparc 机器采用 BOOT PROM 类似,U-Boot 几乎就是类似的机制。

如果把 U-Boot 自身理解为一个操作系统的话,它可以从板子上的 NAND, SD/MMC卡,UART,或者网络(TFTP)启动。
很有意思, SD/MMC 可以理解当年 DOS 时代的软盘,NAND 可以理解为硬盘,如果 SD/MMC 有启动盘的话,会优先从“软盘”启动。

而实际上,ARM 的启动一般分为4个步骤:

  • Boot ROM
  • X-loader (MLO)
  • U-boot (u-boot.img)
  • Linux (uImage 或者 zImage)

U-Boot 有自己的提示符,在连接 UART Console 口时,按任意键可以终止 U-Boot 启动后面的操作系统,而停留在自己的提示符下。

如果要继续启动 Linux 内核,可以输入 boot 命令,或者 run bootcmd 命令。

默认的 NAND 分区:

Default NAND partitioning (from x-loader)

/* NAND is partitioned:
* 0x00000000 – 0x0007FFFF Booting Image (512k)
* 0x00080000 – 0x0023FFFF U-Boot Image (1.6M)
* 0x00240000 – 0x0027FFFF U-Boot Env Data (256k)
* 0x00280000 – 0x0077FFFF Kernel Image (5M)
* 0x00780000 – 0x08000000 File System
  • Block size = 0x00020000 (128k) * Page size = 0x00000800 (2k) */

作者: 甬洁网络

--移动互联网&物联网技术提供商