一种板载X86测试系统研究
2016-11-15修惠文
修惠文
(1.研祥智能科技股份有限公司,广东 深圳,518057;2.国家特种计算机工程技术研究中心,广东 深圳,518057)
一种板载X86测试系统研究
修惠文1,2
(1.研祥智能科技股份有限公司,广东 深圳,518057;2.国家特种计算机工程技术研究中心,广东 深圳,518057)
在工业现场应用环境中,对专用计算机设备的抗震性、稳定性、可维护性性,可测试性等要求颇高,因此计算机设备的测试自诊断是工业计算控制设备不可或缺的功能。本文提出一种基于X86架构的固件基础技术,及DOS操作系统实现的板载X86测试系统的方法,用以提高改善工业现场计算机设备的可测性以及稳定性。实验证明本文提出的板载X86测试系统可用做计算机主板、硬盘、内存功能等检测,实现硬件稳定性拷机、诊断、问题定位等功能。亦可与系统交互,提供网络测试报告,满足工业现场快速诊断使用的需求。
固件;X86测试;自诊断
0 引言
随着工业自动化的快速发展,以及X86硬件平台的推广与普及,基于X86架构[1]的计算设备应用到特殊行业领域逐渐增多,为保障这类特种计算机设备能够提供安全可靠稳定的服务,需要构建一套完整的,便捷的,可扩展的测试诊断系统,以提高特种计算机设备的可测性、稳定性等重要指标。
目前,计算机设备的测试方法已经很多且较全面,多数需要第三方专业软件,有时还需搭配测试治具一起使用。但此类测试方法操作较为复杂,不适合在工作现场进行诊断检测,且此类测试没有针对专用领域的关注点,如开关机稳定性验证等。
DOS操作系统,伴随着个人电脑发展至今已经经历了30多年,其系统架构的特性,使得对硬件操作极其方便快捷,且具备很强的兼容性,方便做寄存器级操作,因此颇受底层软件开发亲来。尤其是对硬件测试方面,比其他操作系统更直观简便,因此很多专业PC主板厂商测试检测都是基于DOS系统实现的。
在X86平台中,固件BIOS(现在二代BIOS也称作UEFI BIOS[1])是不可缺少的重要组成部分,随着技术的发展,BIOS的载体也由原来的FWH逐渐过渡到SPI Flash[2],固件载体的容量也在成倍地增长,从256KB到512KB到1M,2M,甚至32MB的Flash。“足够大的容量”为我们提供了各种扩展功能的可能。固件虚拟磁盘就是一例。本文将主要介绍基于固件虚拟磁盘,和DOS[3]操作系统技术,实现X86板载测试系统,便于特种计算机设备实现板载自检功能,提升系统稳定性。
1 板载X86测试系统设计基础
为实现板载X86测试系统,需要利用主板BIOS固件和DOS系统启动菜单配置的几项基础技术,分别是固件虚拟磁盘、DOS启动界面配置、DOS汉化等。
1.1 固件虚拟磁盘
固件虚拟磁盘是在BIOS Flash中预留一段连续空间作为存储媒介,并通过板载PCI设备的Option ROM 提供虚拟磁盘[4,5]的初始化及安装读写中断服务接口来实现的。其特点是磁盘固化在主板BIOS Flash芯片中,支持内存镜像访问操作,数据不易丢失或篡改,可以按指定操作固化保存虚拟磁盘内容。操作系统下,可以通过固件虚拟磁盘驱动来进行访问读写操作。如图1所示,主板上的BIOS Flash芯片中,烧录的BIOS可执行代码,即BIOS固件,在BIOS固件中,通过RomHole等技术预留的空间作为固件虚拟磁盘在此虚拟磁盘中,可以预制FreeDOS系统,在基于FreeDOS系统上放入板载测试系统,设置成自动运行,这样在系统启动后,可以通过固件虚拟磁盘引导,然后可以自动运行板载测试系统。
1.2 DOS启动配置文件
DOS系统应用中可以通过DOS启动配置文件config.sys实现多菜单选项,但多为相对简单的选择项,无法实现多选、复选、选择组、选项关联控制等功能,而板载X86测试系统,目标是简化测试,方便用户自由配置,因此上述的菜单功能需要其他工具实现,目前DOS下实现启动菜单较为流行的第三方启动配置工具有ConfigP,confect,ConMenu等,本文采用ConfigP实现测试系统配置选择菜单界面,如图2所示。
系统配置菜单分为7部分
(1)主菜单选项
用于配置测试全局模式和功能
①AUTOTEST,即自动测试功能,基于原来的测试步骤继续进行测试。
②NEWTEST,即全新测试,开始全新的自动化测试选项。
③VIEWRESULT,即查看测试结果。
④UNSTALL,卸载测试,不跑本测试配置界面。
(2)功能测试选项
各项测试功能选择,PCHECK,GPIO,VTBIOS,WDT,HWMONITOR,MEMORY,HDD DISK,QTPRO测试。
图1 主板固件虚拟磁盘及板载测试系统Fig. 1 The mainboard firmware virtual disk and on-board test system
(3)开机测试选项
RTC开关机测试,测试次数设置
Reboot测试,测试次数设置
POWERON测试,测试次数设置
POWEROFF测试,测试次数设置
(4)考机测试选择
考机测试软件选择
a. STRESS b. MEMTEST86+
(5)BYPASS
BYPASS测试选项,BYPASSC当前测试BYPASSR重启测试 BYPASSW写测试
(6)REPORT记录形式
①COM通过串口
②USB通过USB盘记录
③EDISK通过记录到EDISK中
(7)电源选择
①ATX电源
②AT电源
1.3 测试系统功能模块
板载X86测试系统,需要包括如下测试模块CPU,内存,硬盘,Cache,PCI Bus,KBC Controller,CMOS,RTC,Video,Reboot,开关机模块,串口,并口,Beep,Lan Controller等。各测试功能模块可以根据实际情况选择已有成熟的测试软件或自行开发,本文目前采用的是PC-Check7.06与自行开发的Reboot、GPIO等软件相结合组成的测试系统。参考图3,相关测试模块。
2 测试系统实现的基本原理
板载X86测试系统[6],是在固件虚拟磁盘上安装DOS(FreeDOS)系统,并将各测试模块及DOS启动菜单配置工具一同存储到固件虚拟磁盘上,并通过DOS批处理脚本将DOS启动菜单与各测试模块关联,并予以特定的测试流程实现全自动诊断测试功能,参考图3。具体测试流程如下:
1)主板启动,BIOS通过虚拟磁盘引导进入板载测试系统;
2)判断是否为首次启动测试系统,若是,执行3);否则执行7);
3)启动当前单元测试模块,记录并发送当前测试状态;其中包括图3所示的各单元模块;
图2 ConfigP实现测试系统启动配置界面Fig. 2 ConfigP implementation of the test system to start the configuration interface
图3 板载测试系统流程及相应测试单元模块Fig. 3 The test system of the board and the corresponding test unit module
4)更新测试状态;
5)判断单元测试是否完毕,若是,执行6);否则执行3);
6)记录单元测试报告;
7)检测当前测试状态;
8)判断是否全部测试完毕,若是,执行9);否则执行3);
9)结束板载测试,根据配置设置确定是否运行Memtest拷机程式,显示最终测试报告。
3 板载X86测试系统的应用
本文设计的板载测试系统,可以在无任何存储设备的情况下对主板做全功能及稳定性的测试验证,确保提供更安全可靠的特种计算设备,由于其独特的板载特性,可以保障测试环境不被破坏,方便及时验证测试维护,为节约成本,提供系统的可测性,提供了良好的解决方案。并可以在此基础上通过对配置解决的设置进行测试功能删减,或增加客户连接的专属设备检查程式,以便实现测试自检扩展功能。
通过本文描述的测试平台整合,良好地解决测试方法操作较为复杂的情况,解决在工作现场进行诊断检测的需求,且此方法的测试方案是针对工控专用领域,尤其是针对开关机稳定性验证等。
鉴于DOS操作系统比其他操作系统更直观简便,开机进入系统速度快,可以快速启动测试程序,本文采用固件虚拟磁盘实现X86板载测试系统,便于特种计算机设备实现板载自检功能,提升系统稳定性。通过对比不同测试方案验证主板测试程序,本文提供的测试方法可以大大减少人为干预的动作,提升测试效率30%,为加快验证问题,复现机率性问题提供了良好的解决方案。
4 总结
本文提出一种基于X86架构的固件基础技术,及DOS操作系统实现的板载X86测试系统的方法,用以提高改善工业现场计算机设备的可测性以及稳定性。实验证明本文提出的板载X86测试系统可用做计算机主板、硬盘、内存功能等检测,实现硬件稳定性拷机、诊断、问题定位等功能。较好地解决测试方法操作较为复杂的情况,解决在工作现场进行诊断检测的需求,且此方法的测试方案是针对工控专用领域,尤其是针对开关机稳定性验证等。
[1] 董耀祖,周正伟. 基于 X86 架构的系统虚拟机技术与应用[J]. 计算机工程,2006,32(13):71-73.
DONG Yao-zu,ZHOU Zheng-wei. X86-based System Virtual Machine Development and Application[J]. Computer Engineering,2006,32(13):71-73.
[2] 陈世利. SPI串行Flash在数据存储系统中的应用[J].电子设计工程,2001.
CHEN Shi-Li,The Application of SPI Serial Flash on DATA Storage System. Electronic Design Engineering,2001.
[3] 刘育刚.DOS原理与结构[M].哈尔滨工业大学出版社,1997.
LIU Yu-gang,DOS principle and structure. Haerbin Industry University press,1997.
[4] 刘旺,王洪波,程时端. 基于 Xen PVHVM 虚拟块设备的数据追踪及测试[J]. 新型工业化,2012,2(12):19-23.
LIU Wang,WANG Hong-bo,CHRNG Shi-duan. Data Tracking and Test of Virtual Block Device on Xen PVHVM[J]. The Journal of New Industrialization,2012,2(12):19-23.
[5] 汪中夏,韩劲松,李晨东. 基于虚拟磁盘技术的硬盘固件区访问方法[J]. 计算机应用,2012,32(S2):104-106.
WANG Zhong-xia,HAN Jin-song,LI Chen-dong. Access Method of Hard Disk System Area Based on Virtual Disk Technology[J]. Journal of Computer Applications,2012,32(S2):104-106.
[6] 张寓琛,张小芳. x86 服务器虚拟化平台性能测试[J]. 计算机与现代化,2014(2):32-35,40.
ZHANG Yu-chen,ZHANG Xiao-fang. Performance Test of x86-based Server Virtualization Platform[J]. Computer and Modernization,2014(2):32-35,40.
Research of an Onboard X86 Test System
XIU Hui-wen1,2
(1.EVOC Intelligent technology co., LTD, Shenzhen, Guangdong 518057, China; 2.National Special Computer Engineering Technology Research Center, Shenzhen, Guangdong 518057, China)
Special computer equipments are required to have high vibration resistance, high stability, maintainability and high testability in industrial field application environment. Therefore self-diagnosis of computer equipments is indispensable to industrial computing control equipment. This paper presents a firmware-based technology based on X86 and a method of onboard X86 test system realized in DOS Operating system, in order to improve the testability and stability of the industrial field of computer equipment. The result shows that the test system is used to detect motherboard, hard disk and memory function, in order to realize hardware stability pagers, diagnostics, positioning problem. At the same time, it can interact with the system,provide network test report and meet the needs of rapid diagnostic in the industrial field.
Firmware; X86 test; Self-diagnosis
10.19335/j.cnki.2095-6649.2016.09.015
XIU Hui-wen. Research of an Onboard X86 Test System[J]. The Journal of New Industrialization, 2016,6(9): 87-90.
修惠文(1982-),男,硕士学位,研祥智能股份有限公司研发中心BIOS工程师。研究方向为:工控机底层固件开发与设计