码迷,mamicode.com
首页 > 其他好文 > 详细

PowerPC P2010 SylixOS启动方式分析

时间:2018-01-17 15:50:24      阅读:269      评论:0      收藏:0      [点我收藏+]

标签:uboot   是什么   用法   启动方式   1.5   等等   style   powerpc   引导   

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地址,获取设备信息,完成设备相关初始化工作。


PowerPC P2010 SylixOS启动方式分析

标签:uboot   是什么   用法   启动方式   1.5   等等   style   powerpc   引导   

原文地址:http://blog.51cto.com/12833848/2062073

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!