PowerPC P2010 SylixOS启动方式分析

1. QorIQ P系列处理器简介

QorIQ P系列处理器基于Power Architecture e500系列内核。其中P10xx系列、P2010和P2020基于e500v2内核,P204x、P30xx和P40xx基于e500mc内核,P50xx基于e5500内核。

其中,P2系列专为网络、电信、军工等各种市场提供高品质部件。P2010包含一个1.2GHz内核,512KB二级高速缓存等等。

2. mkimage工具介绍

mkimage工具可以用来制作不压缩或者压缩的多种可启动镜像文件。

mkimage在制作镜像文件的时候,是在原来的可执行镜像文件的前面加上一个64字节的头,记录参数所指定的信息,这样uboot才能识别这个镜像是针对哪个CPU体系结构的,哪个OS的,哪种类型,加载内存中的哪个位置,入口点在内存的哪个位置以及镜像名是什么等等。

mkimage工具用法如下:

-A:设定架构类型;

-O:设定操作系统类型;

-T:镜像类型;

-a:指定镜像在内存中的加载地址;

-e:指定镜像运行的入口点地址;

-C:指定压缩方式;

-n:指定镜像名;

-d:指定制作镜像的源文件。

P2010的BSP源码中,使用命令

$(TOOLCHAIN_PREFIX)mkimage -A PowerPC -O linux -a 0x1000000 -e 0x1000000 -d $(OUTDIR)/bspp2010.bin -T kernel -C none -n "SylixOS" $(OUTDIR)/uImage

来制作镜像文件uImage。

指定架构类型为PowerPC,操作系统类型为linux,内存加载地址为0x1000000,镜像运行地址为0x1000000,无压缩方式,镜像类型为kernel,镜像名为SylixOS,生成的文件名为uImage。

3. uboot使用bootm引导内核

由于P2010使用了Linux的fdt,所以需要使用bootm命令加载kernel和fdt。

P2010使用命令tftp 0x2000000 uImage;bootm 0x2000000 - 0xefe80000引导内核。通过tftp加载mkimage命令制作的镜像文件uImage到内存0x2000000地址处,然后通过bootm命令启动系统。其中0x2000000为tftp下载到内存中的镜像的地址,-表示不读取ramdisk,0xefe80000为fdt所在的内存地址。

bootm命令解析镜像文件格式,按Linux方式启动系统,获取到fdt内存地址。随后将其获取的fdt地址传入SylixOS。

4. 启动SylixOS

文件startup.s中,在SylixOS进入halPrimaryCpuMain函数之前,通过从FDT_REGISTER寄存器暂存dts内存地址,如图 4.1所示。

这里写图片描述

图 4.1 暂存FDT

然后将暂存的dts内存地址传入启动函数,即halPrimaryCpuMain函数中,如图 4.2所示,由此完成了uboot到SylixOS的fdt参数传递。

这里写图片描述

图 4.2 读取FDT

halPrimaryCpuMain函数根据获取到的fdt地址,获取设备信息,完成设备相关初始化工作。

转载于:https://my.oschina.net/u/3432766/blog/1608443

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值