mpc5125 u-boot移植记录
:“mpc5125 u-boot移植记录” :本文档记录了在飞思卡尔(Freescale)MPC5125芯片上移植U-boot的过程,涉及了串口通信、Nor Flash、DDR2内存以及IO端口的配置与调试。 :PPC, mpc5125, u-boot, 移植 【正文】: 移植U-boot到MPC5125芯片是一项复杂的工作,涉及到多个层次的硬件初始化和软件适配。以下是对移植过程中的关键步骤的详细解析: 1. **更新版本信息**:对源代码进行更新,将旧的版本信息2009.11.1替换为最新的日期2012.4.18,并在Makefile中修改对应的版本号,确保软件与当前开发时间相符。 2. **创建新的板级支持包**:在`board\freescale`目录下新建`atdboard_v2`文件夹,将原有的`atdboard`内容复制过来。将`atdboard.c`重命名为`atdboard_v2.c`,并在`include\configs`目录下创建`atdboard_v2.h`,在Makefile中添加`atdboard_v2_config`选项,同时修改板子类型,以便让U-boot识别新平台。 3. **启动代码修改**:从`start.S`开始,对启动流程进行调整。`bootcold`和`cpu_early_init`部分,由于MPC5125与uboot5125 for linux及uboot5121在核心部分基本保持一致,所以这部分代码不需要改动。不过,对于HID0和MSR这两个E300核心的寄存器,尽管在MPC5125和MPC5121E中它们保持不变,但依然需要注意检查它们在新平台上的具体用法。 4. **Nor Flash配置**:针对Nor Flash,修改其大小的宏定义,将`CONFIG_SYS_FLASH_SIZE`设置为0x02000000,即32MB,这用于LocalPlus Boot Access Window Register的初始化。同时,改变Nor Flash的复用方式,通过定义`CONFIG_SYS_CS0_CFG`为0x00209140来实现地址和数据的复用模式。 5. **内部SRAM设置**:调整内部SRAM的大小,定义`CONFIG_SYS_SRAM_SIZE`为0x00020000,即32KB,确保足够的内存供启动过程使用。 6. **CPU初始化**:在`cpu_init_f`函数中,需要更新`immap`结构体的定义,它位于`include/asm-ppc/immap_512x.h`文件中。这个结构体定义了处理器的内存映射,包括系统配置、看门狗定时器、实时时钟、通用计时器、中断控制器、仲裁器、复位模块、时钟模块、电源管理控制模块、GPIO模块等多个组件。根据MPC5125的硬件特性,对这些模块的地址和配置进行适应性调整。 7. **其他硬件接口**:移植过程中还需要考虑串口、DDR2内存以及IO端口的初始化。例如,对于串口,需要配置相应的UART控制器参数;对于DDR2,需要正确设定内存控制器以确保数据传输的正确性和速度;对于IO端口,根据系统需求配置输入输出模式、中断等特性。 整个移植过程中,开发者需要深入理解MPC5125芯片的硬件特性,熟悉U-boot的源码结构,以及具备良好的编程和调试能力。通过以上步骤,可以逐步完成U-boot在MPC5125上的移植工作,使系统能够顺利启动并执行后续的操作系统加载任务。
剩余15页未读,继续阅读
- 粉丝: 340
- 资源: 14
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 删除重复字符-Python与Java中实现字符串去重方法详解
- 面向初学者的 Java 教程(包含 500 个代码示例).zip
- 阿里云OSS Java版SDK.zip
- 阿里云api网关请求签名示例(java实现).zip
- 通过示例学习 Android 的 RxJava.zip
- 通过多线程编程在 Java 中发现并发模式和特性 线程、锁、原子等等 .zip
- 通过在终端中进行探索来学习 JavaScript .zip
- 通过不仅针对初学者而且针对 JavaScript 爱好者(无论他们的专业水平如何)设计的编码挑战,自然而自信地拥抱 JavaScript .zip
- 适用于 Kotlin 和 Java 的现代 JSON 库 .zip
- AppPay-安卓开发资源