PowerPC平台linux设备移植

PowerPC平台linux设备移植

ID:38131046

大小:182.83 KB

页数:3页

时间:2019-05-29

PowerPC平台linux设备移植_第1页
PowerPC平台linux设备移植_第2页
PowerPC平台linux设备移植_第3页
资源描述:

《PowerPC平台linux设备移植》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、技术交流doi:10.3969/j.issn.1563-4795.2011.11.014PowerPC平台linux设备移植杨伟,傅一帆(华北计算机系统工程研究所,北京100083)摘要:由于linux的开放性、适应性以及高度可裁剪性,Linux系统在嵌入式领域得到迅速发展。PowerPC处理器在通信领域和工业控制领域也都有着广泛的使用。所以文中以mpc8313erdb平台新添加网卡芯片为例,讲述如何使linux支持新添加的网卡设备。关键词:PowerPC;linux;设备树Bootloader除了引导系统之外,另一个重要的算利用合并PPC32(arch/ppc32)和PPC64(

2、arch/作用就是给内核传递硬件信息。在服务器和桌面ppc64)的内核代码这个机会,将清理PPC32中的系统bootloader与内核之间传递硬件信息,为了达firmware接口。让所有的PowerPC平台都统一提供到标准化和兼容性的目的,都各自有标准Firmware对OF(OpenFirmware)结构的支持。(一种嵌入到硬件设备中的程序,用于提供软件和1Linux内核中PowerPC软件结构硬件之间的接口)。如x86平台的有BIOS。PowerPC和Sparc系统均采用Open-Firmware标准。但是嵌入为了理解PowerPC内核初始化过程,下面对设式PowerPC平台并没

3、有这样标准的Fireware接口,备树和机器描述结构(ppc_md结构)。但是在嵌入式领域,早期的uboot使用include/asm-1.1设备树ppc/ppcboot.h中的静态数据结构structbd_info来保存bootloader给内核传递的信息。但是bd_info并不设备树是一种描述硬件配置的树形数据结构,能为内核提供当前具体是哪个平台的信息。这种每一个设备树都包含唯一的根节点/。设备树结构没有标准接口所以带来的问题就是,每当我们更由设备节点组成,这些设备节点又可以由多个子换bd_info的布局的时候我们都必须重新定制和烧节点组成。这些节点只有包括设备或者总线。每录b

4、ootloader和内核镜像。例如我们可能需要修改个节点包含属性。设备树的源代码存放在arch/kernel,syslib,platforms目录下的很多的内核文件。powerpc/boot/dts目录下。这里的每个文件都描述着目前为了适应内核的发展和嵌入式平台Pow-各自的平台的硬件信息。以mpc8313erdb平台为erPC平台的变化,ePAPR(embeddedPoowerArchi-例,其文件名为mpc8313erdb.dts。一个基本的设备tecturePlatformRequirements)吸收OpenFirmware中树必须包含一个cpu节点、一个memory节点两

5、个节设备树(Devicetree)。通过设备树来将硬件信息传点信息。对于需要为平台添加新的网卡设备,我递给内核,64位PowerPC平台最先支持OF(Open们必须修改mpc8313erdb.dts文件。dts文件时文本Firmware)结构。随着内核发展,内核开发人员打文件,而linux系统引导的时候,所使用的并不是这样的文本文件,而是二进制文件(dtb)。所以需收稿日期:2011-06-07要使用dtc工具将dts文件编译成dtb的二进制文件。45技术交流dtb文件由boot_param_header,device_tree结构init,init_IRQ,probe等。Linu

6、xPowerPC中和devicetreestring三大部分组成。dtb组成如图1所示。probe_machine函数从machine.desc段中读取数据来填充ppc_md数据结构。LinuxPowerPC首先通过宏define_machine,将各类PowerPC内核的ppc_md结构加入到machine.desc段中。图2描述了ppc_md的结构。图1dtb的组成(1)boot_param_header结构头主要描述设备树的基本信息,如设备树魔数标志(0xd00dfeed)、设备树块大小、结构块的偏图2ppc_md结构移地址。这个结构中的值都是以大端模式表示,2PowerPC

7、linux初始化过程并且偏移地址是相对设备树头的起始地址计算。boot_param_header结构定义在arch/powerpc/boot/即从BootLoader加载内核到执行/sbin/init程序flatdevtree.h文件中,用来保存设备树的头部信息。之间的代码。(2)Devicetree结构U-boot传递linux两个参数:r3指向OFTree结设备树结构块是线性化的树形结构,和字符构的物理地址r4指向Linux内核所在的物理地址。块一起组成了设备树的

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。