uboot 引导Linux 内核步骤--经典

  内核的引导步骤如下:
(1)用U-boot 的mkimage 工具处理内核映像zImage。
(2)通过网络、串口、U 盘、SD 卡等方式将处理过的内核映像传输到SDRAM 的一定
位置(一般使用0x30008000)
(3)然后使用”bootm"等内核引导命令来启动内核。

        为什么要用U-boot 的mkimage 工具处理内核映像zImage?
因为在用bootm 命令引导内核的时候,bootm 需要读取一个64 字节的文件头,来获取这
个内核映象所针对的CPU 体系结构、OS、加载到内存中的位置、在内存中入口点的位置以
及映象名等等信息。这样bootm 才能为OS 设置好启动环境,并跳入内核映象的入口点。而
mkimage 就是添加这个文件头的专用工具。具体的实现请看U-boot 中bootm 的源码和
mkimage 的源码。

      mkimage 工具的使用:
参数说明:
-A    指定 CPU 的体系结构,可用值有alpha、arm 、x86、ia64、mips、mips64、
ppc 、s390、sh、sparc 、sparc64、m68k


-O    指定操作系统类型,可用值有:openbsd、netbsd、freebsd、4_4bsd、linux、
svr4、esix、solaris、irix、sco、dell、ncr、lynxos、vxworks、psos、qnx、u-boot、
rtems、artos


-T     指定映象类型,可用值有:standalone、kernel、ramdisk、multi、firmware、script、
filesystem


-C    指定映象压缩方式,可用值有:
none 不压缩(一般使用这个,因为zImage 是已经被bzip2 压缩过的自解压内核)

    gzip 用gzip 的压缩方式
    bzip2 用bzip2 的压缩方式

-a     指定映象在内存中的加载地址,映象下载到内存中时,要按照用 mkimage 制作映象
时,这个参数所指定的地址值来下载
-e     指定映象运行的入口点地址,这个地址就是-a 参数指定的值加上0x40(因为前面有个
mkimage 添加的0x40 个字节的头)
-n     指定映象名
-d     指定制作映象的源文件


以下是制作内核映像的命令示例:
mkimage -n 'tekkaman' -A arm -O linux -T kernel -C none -a 0x30008000 -e
0x30008040 -d zImage zImage.img

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
介绍了源码开放的通用启动模块U-Boot 的文件结构,并以Broadcom 公司的4 内核处理器BCM1480 和RMI的32 内核处理器XLR732 为例,阐述了该模块在64 位多内核MIPS体系结构处理器上的移植经验,包括文件的修改、新增、编译、多内核的启动顺序等。   目前,微处理器架构呈百家争鸣之势,x86、PowerPC、MIPS、68x、ARM、Xscale 等架构纷纷在广阔的电子产品市场划分势力范围。x86 架构在PC机领域独领风骚——虽然基于x86的处理器迄今最多集成4 个内核,小于MIPS 架构的32 内核。ARM 架构的处理器统治着消费类电子市场,而在嵌入式领域,尤其是通信产品领域,x86、MIPS、PowerPC 架构的处理器正逐鹿中原。不同特性的处理器架构组成了丰富多彩的计算控制平台,但是无论是什么类型的处理平台,“开门第一件事”都是调用启动代码。   启动代码一般存放在外部的非易失性存储器上,例如Flash芯片。通常不同的处理器,即便基于相同的架构,启动代码往往大相径庭,更何况不同的处理器架构了。例如,BIOS 启动代码适合于x86 的处理器,风河(Windriver)公司的基于VxWorks操作系统的Bootrom 支持PowerPC、ARM、MIPS 等多种处理器。但是,这些启动代码往往源码不开放、开发工具和许可费用昂贵、通用性差。   U-Boot 是德国Denx 软件中心依照GPL 发布的源码公开的公共软件,其全称是Universal Bootloader,即通用启动模块,目前它支持x86、PowerPC、MIPS、ARM 等处理器架构,支持1000 多种嵌入式平台。然而,因为U-Boot 的前身是ppcboot,是一种专用于PowerPC 架构处理器的启动模块,后来Denx 软件中心将其扩展到ARM 处理器等其他架构,所以目前U-Boot支持的平台中,PowerPC 架构的处理器最多。其他架构的处理器平台正在全世界有兴趣的工程师的努力下逐渐完善。   U-Boot 的最新版本是1.1.5,支持4Kc、5Kc、MIPS32AU1x00 等少数MIPS 架构单内核处理器。笔者将U-Boot 扩展到了业界先进的两款64位多内核MIPS处理器上。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值