飞思卡尔mpc5125 U-boot移植步骤详解
需积分: 12 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的源码结构和编译流程。
2012-04-15 上传
2021-10-20 上传
2021-09-25 上传
2021-09-25 上传
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
随想ustb
- 粉丝: 340
- 资源: 14
最新资源
- C语言数组操作:高度检查器编程实践
- 基于Swift开发的嘉定单车LBS iOS应用项目解析
- 钗头凤声乐表演的二度创作分析报告
- 分布式数据库特训营全套教程资料
- JavaScript开发者Robert Bindar的博客平台
- MATLAB投影寻踪代码教程及文件解压缩指南
- HTML5拖放实现的RPSLS游戏教程
- HT://Dig引擎接口,Ampoliros开源模块应用
- 全面探测服务器性能与PHP环境的iprober PHP探针v0.024
- 新版提醒应用v2:基于MongoDB的数据存储
- 《我的世界》东方大陆1.12.2材质包深度体验
- Hypercore Promisifier: JavaScript中的回调转换为Promise包装器
- 探索开源项目Artifice:Slyme脚本与技巧游戏
- Matlab机器人学习代码解析与笔记分享
- 查尔默斯大学计算物理作业HP2解析
- GitHub问题管理新工具:GIRA-crx插件介绍