MagicARM2410使用U-BOOT 1.3.1进行NAND启动配置指南

3星 · 超过75%的资源 需积分: 13 8 下载量 49 浏览量 更新于2024-11-06 收藏 130KB PDF 举报
"u-boot 1.3.1 for MagicARM2410 nand启动" 在本文中,我们将深入探讨如何在MagicARM2410实验箱上使用u-boot 1.3.1版本实现从NAND Flash启动。u-boot是一款开放源码的引导加载程序,用于多种嵌入式系统,它提供了对硬件初始化、操作系统加载等功能。在MagicARM2410上配置和使用u-boot涉及到一系列步骤,包括设置交叉编译环境、定制配置以及修改源代码。 首先,确保你的工作环境是RedHat Linux AS4,并且使用了Eldk 4.1作为交叉编译器。这个环境能够支持针对ARM架构的编译工作。在开始之前,需要对u-boot进行配置以适应MagicARM2410的目标板。通过复制board/sbc2410x目录到board/my2410,并将include/configs/sbc2410x.h复制到include/configs/my2410.h,创建针对MagicARM2410的定制配置。 接下来,我们需要修改相关文件。在`include/configs/my2410.h`中,将`#define CFG_PROMPT "SBC2410X#"`更改为`#define CFG_PROMPT "my2410#"`,以显示自定义的启动提示符。此外,在Makefile中,将sbc2410x_config配置更改为my2410_config,以适应新的配置文件。 使u-boot能够从NAND Flash启动的关键在于修改`cpu/arm920t/start.s`源代码。在这个过程中,引入了`<config.h>`和`<version.h>`头文件,并添加了对`s3c2410.h`的包含。这一步是为了让u-boot能够识别并处理与NAND Flash相关的硬件接口。 在`start.s`中,根据VIVI的代码,需要注释或修改特定的条件编译指令,以便在启动过程中执行必要的NAND Flash初始化和u-boot重定位。例如,取消`#ifndef CONFIG_SKIP_RELOCATE_UBOOT`的注释,以及添加`#ifndef CONFIG_S3C2410_NAND_BOOT`,确保在NAND Boot的情况下执行代码重定位。 代码重定位的目的是将u-boot从NAND Flash复制到RAM中运行,这样可以提高性能。这个过程涉及到从NAND Flash读取_u-boot镜像的地址(用_r0_表示),然后加载_TEXT_BASE到_r1_,执行代码重定位的函数。 完成这些修改后,需要重新编译u-boot,生成适用于MagicARM2410的固件映像。编译完成后,将新生成的固件烧录到NAND Flash中。最后,当MagicARM2410启动时,u-boot会自动从NAND Flash加载并执行,显示自定义的启动提示符,标志着成功实现了从NAND Flash启动。 配置和修改u-boot 1.3.1以支持MagicARM2410的NAND启动是一个涉及配置、源代码修改和编译的过程。这个过程需要对ARM体系结构、u-boot的工作原理以及NAND Flash的存储特性有深入理解。通过这些步骤,开发者可以定制适合特定硬件平台的u-boot,以实现高效、可靠的启动流程。