飞思卡尔mpc5125 U-boot移植步骤详解

需积分: 12 5 下载量 89 浏览量 更新于2024-07-24 1 收藏 71KB DOC 举报
"这篇文档是关于在飞思卡尔MPC5125芯片上移植U-boot的操作记录,详细描述了移植过程中的关键步骤,包括文件夹版本更新、新板型配置、启动代码修改以及硬件相关参数的设定。" 在移植U-boot到飞思卡尔MPC5125芯片的过程中,首先需要对源码进行相应的版本更新。在这个例子中,作者将文件夹版本从2009.11.1更新到了2012.4.18,并在`makefile`中修改了对应的版本号。接着,为了适应新的板型,创建了一个名为`atdboard_v2`的新文件夹,复制了原有`atdboard`文件夹中的内容,并重命名了`atdboard.c`为`atdboard_v2.c`。同时,在`include/configs`目录下建立了`atdboard_v2.h`头文件,并在`makefile`中添加了新的配置选项`atdboard_v2_config`,以定义新的板型,并在`atdboard_v2.h`中添加`#define CONFIG_ATDBOARD_V2 1`宏定义。 移植过程中,针对启动代码的修改至关重要。从`start.S`开始,`bootcold`和`cpu_early_init`部分在MPC5125和MPC5121之间差异不大,主要涉及HID0和MSR寄存器,这些是e300核心内的,而MPC5125和MPC5121e的核心结构保持不变,所以这部分无需改动。不过,需要调整Nor Flash的大小,通过定义`#define CONFIG_SYS_FLASH_SIZE 0x02000000`(32MB),这个值会用于设置LocalPlusBootAccessWindowRegister。 此外,对Nor Flash的复用方式也进行了调整,定义`#define CONFIG_SYS_CS0_CFG 0x00209140`,设置为地址和数据复用方式(Muxed)。然后,内部SRAM的大小也需要更新,通过`#define CONFIG_SYS_SRAM_SIZE 0x00020000`来定义为32KB。 在`cpu_init_f`函数中,需要修改`immap`结构体的定义,这在`include/asm-ppc/immap_512x.h`中完成。`immap`结构体包含了系统配置、看门狗定时器、实时时钟模块、通用定时器1以及集成可编程中断控制器等组件的定义,这些是MPC5125芯片中与初始化密切相关的硬件接口。 整个移植过程涉及到U-boot的配置、启动流程、内存映射以及硬件外设的初始化,这些步骤确保了U-boot能够正确地加载和控制MPC5125芯片的硬件资源,为后续的操作系统加载和运行打下了基础。移植U-boot是一个复杂的过程,需要对底层硬件有深入理解,同时熟悉U-boot的源码结构和编译流程。