当前位置:首页 > 嵌入式 > 嵌入式软件
[导读]基于龙芯2F架构的PMON分析与优化

摘要:基本输入/输出系统(BIOS)是现代计算机系统的重要组成部分,负责计算机系统的开机自检、板级初始化、加载操作系统内核以及基本I/O功能。以龙芯2F CPU架构为研究背景,在其基础上分析了PMON的系统结构与工作流程,通过添加网络驱动程序,最终实现通过PMON加载Linux和VxWorks操作系统。进行必要的功能完善与性能优化,并经过严格的测试以排除可能存在的深层次缺陷,实现了一个性能稳定、功能完善、高可靠性的能与国产龙芯2F处理器平台紧密搭配的BIOS。
关键词:BIOS;CPU;龙芯2F处理器;PMON

    龙芯CPU使用PMON作为基本输入输出系统(BIOS)。PMON具有强大而丰富的功能,除基本的I/O功能外,还包括硬件初始化与检测、操作系统引导和程序调试等功能。PMON早期的版本功能少且扩展性不好。现在龙芯CPU上使用的PMON添加了硬盘和其他文件系统的支持,以及显卡的支持等。本文在深入分析PMON源码的前提下,添加了82551网卡驱动以便以网络下载加载操作系统内核,并对移植好的PMON系统进行了功能、性能和稳定性等方面的测试以适应某些重要领域对计算机系统高可靠性要求。通过专门的测试程序来实现此任务,并且尽量保证高的测试覆盖性。

1 基于龙芯2F架构的PMON分析
1.1 PMON执行流程分析
    在龙芯2F CPU上电之初,内存和内存控制器处于不确定状态,因此CPU开始执行的BIOS代码只能放在非易失性介质中。PMON的二进制代码就存放于主板上一块512 KB的FLASH芯片上,其虚拟地址为0xBFC00000,物理地址是0x1FC00000。
    由于在ROM FLASH运行的速度比较慢,并且空间有限,不能随时更改ROM中的内容,就需要把引导程序搬到内存里运行。因此,PMON的运行过程分为两个阶段:第一阶段是在ROM FLASH中运行,主要进行基本硬件初始化,如:北桥、南桥、内存控制器、缓存和串口初始化等;第二阶段在内存中执行,主要完成环境变量和基本数据结构的初始化、PCI总线扫描和设备初始化,显卡初始化、网络协议和设备初始化,并对搜索到的PCI总线上的设备进行驱动程序的加载与配置等,最后加载操作系统内核。
1.2 PMON在ROM中的执行流程
    龙芯CPU开始执行的指令将CP0控制寄存器的状态寄存器和原因寄存器清零,让CPU处于内核模式。这是因为MIPS CPU启动时,必须定义足够的CPU控制寄存器状态,以使CPU能执行非缓存的指令。在对缓存初始化之前,不能访问缓存。非缓存的异常入口在0xBFC00000,但此处没有足够的空间存放启动代码,于是设计了一个跳转。这个跳转可以测试CPU是否正常工作。如果硬件发生了某种严重的错误,可能会导致CPU严重的异常。如果CPU正常启动起来并跳转到了正确的位置并执行了预先设计的指令,就可以相信CPU正常,某些硬件正常。跳转之后,PMON进行一系列的初始化与测试工作,这个过程如图1所示。

[!--empirenews.page--]
1.3 PMON在内存中的执行流程
    PMON在内存中的执行过程非常复杂,下面按照其执行流程分析主要的函数:
    _init():主要功能是顺序执行初始化。列表上的所有函数,建立必要的数据结构和编译环境。初始化列表上的函数主要可以分为3类:命令初始化函数,文件系统初始化函数,可执行文件初始化函数。
    Evenint():环境变量初始化函数,这些环境变量解释并执行不同的命令。它们对PMON来说是必需的,用户可以定义另外的变量来保存任何字符串,如文件名和命令符等。
    Tgt_devinit():主要功能是南桥初始化和PCI设备初始化。其中南桥初始化函数是cs5536_init()。PCI设备初始化由函数_pci_businit()完成,分为两步;先是北桥初始化,然后是设备初始化,包括对设备的扫描和设备所需资源的分配。PCI设备的初始化部分是PMON分析中的难点。
    Init_net():主要进行了如下的工作;虚拟内存初始化等;用_pci_deviceinit函数完成了PCI配置空间的参数初始化,并且初始化显卡;网络系统的初始化包括网络设备的初始化和协议的配置等。
    最后加载操作系统内核。这里会用到两个重要的命令Load和g。Load命令用于加载文件(内核)到内存,g命令执行内核文件。加载了内核文件之后就可以通过g命令来执行内核。

2 基于龙芯2F架构的PMON修改与优化
2.1 添加82551网卡驱动
    网卡是一个PCI设备,所以其驱动在PCI设备初始化时实现。对于PCI设备,有一个重要的数据结构struct cfdata cfdata,这个数组是根据具体平台的配置文件生成的,以下是配置文件的相关部分:
   
    这个部分描述了设备之间的链接关系,cfdata是这个关系的数组表示。另外还有一个PV数组定义一个设备的父设备,每个节点的父设备都是一个数组,在设备的cfdata结构中定义数组的开始。
    上述配置文件中的fxp0表示的就是网卡设备。因为fxp0是PCI子设备,因此在查找PCI子设备时,其4个子设备:fxp0,rtkO,ohci,pci-ide的驱动也会在此时加载。查找设备有一个函数:config_found,其会调用config_serch,config_search从静态设备树cfdata中查找当前设备的子设备,然后对设备调用mapply函数,进行设备的匹配,如果设备存在则会调用该设备的ca_attach函数来加载设备的驱动程序。这里找到网卡设备之后会调用fxp_attach函数。在设计的网卡驱动中,实现了操作系统将怎样通过网卡驱动来讲网络包发送出去,而网卡收到网络数据包之后怎样通过操作系统来做后续处理。在PMON中,网卡中断通过查询来实现。fxp_attach函数会调用pci_intr_establish将中断程序注册到查询列表poll_list上。网口要将数据包发送出去,就必须提供一个网络接口,以提供给发送函数。在这里,将网络数据包放在网络接口的ifp→if_snd队列中,然后启动if_start来开始发送。在网卡发送完一个包后,检查发送队列,如果有剩余则继续发送,直到发送完毕。然后通过函数e100_poll来检查是否收到包,并进行收包处理。先进行缓冲区的清除,使能接收队列,查询是否有数据可接收,有则开始接收。无则继续查询并发出信息。[!--empirenews.page--]
2.2 编译PMON
    添加好了网卡驱动程序之后,需要对PMON进行重新配置和编译。配置和编译的过程如下。主要用到几条命令:
    
    通过网络来更新PMON时使用下面的命令:load-f 0xbfc00000-r tftp://192.16.12.30来进行PMON的在线烧写。并通过网络来加载操作系统:load tftp://192.16.12.30/VxWorks.如果加载系统内核成功则验证了网卡驱动的有效。


3 系统测试
3.1 系统启动阶段网卡测试
    由于启动阶段网卡只用于加载操作系统内核,对性能并没有太高要求。只需测试其功能即可。通过在启动过程中用另外一台主机对其进行ping操作来测试其功能。其界面如图2所示。


3.2 系统启动时间测试
    经过测试,在硬盘启动模式下,系统从加电到操作系统启动完毕耗时不超过35 s,符合绝大部分应用需求。
3.3 500次开关机测试
    为测试移植后的系统POST功能的稳定性,进行了500次开关机实验。经验证,成功启动次数为500,失败次数为0,成功率100%。
3.4 200 h老练测试
    为测试PMON在系统运行时的稳定性,用专用的整机测试软件进行了200 h老练测试。经测试,系统运行正常,未出现故障,测试合格。

 

4 结语
    为了适应PMON在国产计算机系统中的需求,对其进行了分析与优化。在分析了源码的基础上,对其进行了必要的修改与优化,增加了82551网卡的驱动等。为了验证优化后系统的稳定性,进行了一系列的测试验证,包括启动阶段的网络测试、系统启动时间测量、500次开
关机测试以及200 h老练测试等。经验证,修改后的PMON系统运行稳定,可以在多个重要领域中进行应用。
 

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

9月2日消息,不造车的华为或将催生出更大的独角兽公司,随着阿维塔和赛力斯的入局,华为引望愈发显得引人瞩目。

关键字: 阿维塔 塞力斯 华为

加利福尼亚州圣克拉拉县2024年8月30日 /美通社/ -- 数字化转型技术解决方案公司Trianz今天宣布,该公司与Amazon Web Services (AWS)签订了...

关键字: AWS AN BSP 数字化

伦敦2024年8月29日 /美通社/ -- 英国汽车技术公司SODA.Auto推出其旗舰产品SODA V,这是全球首款涵盖汽车工程师从创意到认证的所有需求的工具,可用于创建软件定义汽车。 SODA V工具的开发耗时1.5...

关键字: 汽车 人工智能 智能驱动 BSP

北京2024年8月28日 /美通社/ -- 越来越多用户希望企业业务能7×24不间断运行,同时企业却面临越来越多业务中断的风险,如企业系统复杂性的增加,频繁的功能更新和发布等。如何确保业务连续性,提升韧性,成...

关键字: 亚马逊 解密 控制平面 BSP

8月30日消息,据媒体报道,腾讯和网易近期正在缩减他们对日本游戏市场的投资。

关键字: 腾讯 编码器 CPU

8月28日消息,今天上午,2024中国国际大数据产业博览会开幕式在贵阳举行,华为董事、质量流程IT总裁陶景文发表了演讲。

关键字: 华为 12nm EDA 半导体

8月28日消息,在2024中国国际大数据产业博览会上,华为常务董事、华为云CEO张平安发表演讲称,数字世界的话语权最终是由生态的繁荣决定的。

关键字: 华为 12nm 手机 卫星通信

要点: 有效应对环境变化,经营业绩稳中有升 落实提质增效举措,毛利润率延续升势 战略布局成效显著,战新业务引领增长 以科技创新为引领,提升企业核心竞争力 坚持高质量发展策略,塑强核心竞争优势...

关键字: 通信 BSP 电信运营商 数字经济

北京2024年8月27日 /美通社/ -- 8月21日,由中央广播电视总台与中国电影电视技术学会联合牵头组建的NVI技术创新联盟在BIRTV2024超高清全产业链发展研讨会上宣布正式成立。 活动现场 NVI技术创新联...

关键字: VI 传输协议 音频 BSP

北京2024年8月27日 /美通社/ -- 在8月23日举办的2024年长三角生态绿色一体化发展示范区联合招商会上,软通动力信息技术(集团)股份有限公司(以下简称"软通动力")与长三角投资(上海)有限...

关键字: BSP 信息技术
关闭
关闭