基于PowerPC处理器的uboot移植方法
引 言
Bootloader(引导装载器)是用于初始化目标板硬件, 给嵌入式操作系统提供板上硬件资源信息,并进一步装载、引导嵌入式操作系统运行的固件。在嵌入式系统开发过程中,很多情况都会涉及底层Bootloader的移植问 题, 即使在有些已有Bootloader的参考开发板上也存在这种可能。概括来说, 如下情况会考虑进行Bootloader 的移植工作。
① 在自主设计的目标板上,用于引导嵌入式操作系统及其应用。
② 在厂家未提供Bootloader源码的参考板上,遇有如下情形之一:
a.在实际应用中需要添加或修改一些功能;
b.为了给自行设计主板移植BOotlOade r提供参考,先在参考板上进行移植以积累经验。
另外,从嵌入式系统实际开发角度讲, 嵌入式操作系统的引导、配置甚至应用程序的运行状况都和bootloader有一定的关联,可以说,掌握Bootloader移植是顺利进行嵌入式系统开发的重要利器。与常见的嵌入式操作系统板级支持包B S P相比,Boot loader与底层硬件更为相关, 即每个不同配置的目标板基本都有不同的Bootloader。因为Bootloader往往更依据量体裁衣、定身制作的原则, 以满足要求的最小化代码存放在启动ROM 或Flash中。虽然,自行编写Bootloader未尝不可,但从可利用的资源和实际项目开发考虑,采用移植已有的Bootloader源码来解决这一问题更符合大多数项目的开发要求。
1 U-Boot简介
U-Boot,全称Universal Boot Loader,是遵循GPL条款的开放源码项目,从FADSROM、8xxROM 、PPCBOOT逐步发展演化而来,其源码目录、编译形式与Linux内核很相似。事实上,不少U-Boot源码就是相应Linux内核源程序的简化, 尤其是一些设备的驱动程序, 从U-Boot源码的注释中能体现这一点。但是U-Boot不仅仅支持嵌入式Linux系统的引导, 当前,它还支持NetBSD。VxWorks、QNX、RTEMS、ARTOS、LynxOS嵌入式操作系统。其目前要支持的目标操作系统包括0P enB S D 、NetBSD、FreeBSD、4 4BSD 、Linux、SVR4、Esix、Solaris、Irix、SCO、Dell、NCR、VxWorks、LynxOS、pSOS、QNX、RTEMS和ARTOS。这是u-Boot中Universal的一层含义。另外一层含义则是U-Boot除了支持PowerPC系列的处理器外,还能支持MIPS、x86、ARM 、Nios、XScale等诸多常用系列的处理器。这两个特点正是U-Boot项目的开发目标,即支持尽可能多的嵌入式处理器和嵌入式操作系统。就目前来看,U-Boot对PowerPC系列处理器支持最为丰富, 对Linux的支持最完善。其它系列的处理器和操作系统基本是在2002年1 1月PPCBOOT改名为U-Boot 后逐步扩充的。从PPCBOOT向U-Boot的顺利过渡,很大程度上归功于U-Boot的维护人,德国DENX软件工程中心的Wolfgang Denk(以下简称w.D)本人精湛的专业水平和持着不懈的努力。当前,u-BOOt项目在他的领军下,众多有志于开放源码Boot loader移植工作的嵌入式开发人员, 正如火如荼地将各个不同系列嵌入式处理器的移植工作不断展开和深入, 以支持更多嵌入式操作系统的装载与引导。
2 U-Boot主要目录结构
board一目标板相关文件,主要包含SDRAM、Flash驱动;
common 一独立于处理器体系结构的通用代码, 如内存大小探测与故障检测;
cpu一与处理器相关的文件, 如mpc8xx子目录下含串口、网口、LCD 驱动及中断初始化等文件;
driver一通用设备驱动,如CFI Flash驱动(目前对Intel Flash支持较好)
doc- U.Boot的说明文档;
examples一可在U-Boot下运行的示例程序;如hello _ world.C,timer.C;
include-- U-Boot头文件,configs子目录下与目标板相关的配置头文件是移植过程中经常要修改的文件;
lib- XXX一处理器体系相关的文件, 如lib-PPC, lib - arm 目录分别包含与PowerPC、ARM体系结构相 关的文件;
net一与网络功能相关的文件目录,如bootp、nfs、 tftp;
post一上电自检文件目录, 尚有待于进一步完善;
rtc- RTC驱动程序;
tools--用于创建U-Boot S-RECORD和BIN镜像文件的工具。
3 U-Boot支持的主要功能
U-Boot可支持的主要功能如下所列。
1)系统引导
支持NFS挂载、RAMDISK 系统引导 (压缩或非压缩)形式的根文件系统
支持NFS挂载,从Flash中引导压缩或非压缩系统内核
2)基本辅助
强大的操作系统接口功能,可灵活设置、传递多个关键参数给操作系统, 适合系统在不同开发阶段的调试要求与产品发布,尤其对Linux支持最为功能强劲
支持目标板环境参数的多种存储方式,如Flash、NVRAM、EEPROM
CRC32校验,可校验Flash中内核、RAMDISK镜像文件是否完好
3)设备驱动
串口、SDRAM、F
- 新18号文缓解两大IT业政策旱情(02-21)
- 英飞凌第35亿颗高压MOSFET顺利下线(02-18)
- 传富士康将第三次上调员工薪资(02-22)
- 国内电子阅读器销量破百万 冲破发展瓶颈关键在内容(02-22)
- 保利协鑫与中电光伏签订长期硅片供应合约(02-18)
- 晶澳开发出新高效多晶硅太阳能电池(02-21)