温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

如何进行PowerPC P2010 SylixOS启动方式的分析

发布时间:2021-12-01 17:45:57 来源:亿速云 阅读:124 作者:柒染 栏目:互联网科技

本篇文章给大家分享的是有关 如何进行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所示。

如何进行PowerPC P2010 SylixOS启动方式的分析

图 4.1 暂存FDT

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

如何进行PowerPC P2010 SylixOS启动方式的分析

图 4.2 读取FDT

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

以上就是 如何进行PowerPC P2010 SylixOS启动方式的分析,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注亿速云行业资讯频道。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI