BIOS定制是完成嵌入式产品差异化特性的有用途径,本文将评论与创立这些定制BIOS相关的问题,包含快速引导、用户界面和功用,以及固件运用才能等。
许多根据x86的嵌入式处理方案都依靠针对台式计算机规划的BIOS,经过对BIOS进行装备可完成更高效的、赋有本钱效益的规划,以满意专用硬件和软件的需求。
在台式机、服务器以及笔记本电脑中常见的BIOS(一种专为IT运用而规划的BIOS)已被规划成使这些设备能像通用计算机相同作业,因而人们能以相同的办法来运用这些设备。而比方网络设备和自助式信息服务终端(如kiosk设备)等根据x86的嵌入式产品,则需求像设备而不是像通用计算机那样来作业。嵌入式设备需求使设备具有共同功用的固件,这正是BIOS可发挥作用的当地。嵌入式固件(即用在x86架构上的BIOS)正是完成嵌入式设备差异化的根底。
为嵌入式体系定制BIOS有两种办法:一种办法是花费许多的时刻和精力将台式机和/或服务器的BIOS改形成可满意嵌入式体系的要求;另一种办法则是选用一种专为嵌入式商场规划的BIOS。后一办法有助于简化为嵌入式体系创立定制BIOS的全进程,这既可尽量削减作业量和危险,又能供给强壮的固件才能。
用BIOS完成嵌入式产品差异化
差异化是嵌入式产品取得成功并走向具有竞赛优势的新方向的一个要害因素。表1列出的是用BIOS完成产品功用差异化的一些办法。本文将评论与创立这些BIOS有关的问题,这些BIOS的特色包含:可装备成只包含规范IT BIOS的一部分特性;可定制成包含专用渠道设置屏幕、溅射作用屏幕(splash screen)设置(包含多媒体)以及比方FPGA初始化代码等专用代码;可完成亚秒级快速引导的方针;供给增强的固件运用才能,比方高可用性监控和引导安全性等。
表:运用BIOS技能完成嵌入式产品的差异化。
大多数台式机或服务器体系都要求将一切的BIOS初始化功用集成到体系中,包含即插即用(PnP)、高档功率方法(APM)、高档装备和电源接口(ACPI)、PCI设备枚举与资源分配、增强硬盘驱动器(EDD)、体系管理BIOS(SMBIOS)、体系管理总线(SMBUS)以及其它功用等。在运用通用IT BIOS的状况下,这些功用有必要悉数被构建到体系的BIOS中,以便体系能支撑一切需求这种支撑的软硬件插件。
但对大多数嵌入式运用来说,这些功用组件许多都是一些只会添加设备加电自检(POST)时刻和耗费ROM空间的非必要功用。Embedded BIOS 2000等可装备BIOS则能供给800多种装备选项,这些选项用来操控将哪些功用组件包含在BIOS构建进程中。特定规划不需求的任何功用组件都不会包含在BIOS二进制代码中。
定制BIOS的用户界面和功用
嵌入式设备很少需求规范的BIOS用户界面。假如设备是从内部硬盘驱动器上引导,则它既不需求装备成从闪存或CDROM上引导,也不需求供给用于非规范CPU或存储器时钟的选项。别的,若专用硬件(如ASIC)需求在引导时进行初始化和装备,则还需求在中心BIOS中包含这种代码。
撤销设置屏幕可让BIOS用户界面选用新的方法,如无头规划、经过与长途终端程序相连的RS232串行电缆完成的菜单或相似台式机的POST,以及凭借以太网的长途登录对话,乃至一种可在装载OS时显现由OEM界说的图形、动画和声响的图形化准操作体系(pre-OS)环境。
构建定制的用户界面需求BIOS中心功用的支撑,这样用户界面就能在恰当时分得到操控权。别的,BIOS键盘和视频调用需求被路由到新设备(例如长途登录)上并进行恰当处理。
初始化专用硬件不光需求定制代码,并且初始化序列也很重要,例如装备AS%&&&&&%需求在PCI设备枚举之前进行。对BIOS用户来说,能在BIOS引导序列的恰当时分刺进定制代码是十分必要的。假如一切的BIOS代码都以源代码的方法供给,则嵌入式BIOS用户就能在引导序列的任何点上调用其初始化代码。此外,能够将这种代码进行打包,这样就无需将定制代码集成到中心BIOS代码中,然后可将它从一个渠道移植到另一个渠道。
快速引导
设备从上电到功用可用的这段时刻的长短,将影响用户对设备功用和可靠性的观点。引导时刻超越1秒的设备看起来就像没有呼应或许呼应缓慢。优化BIOS引导时刻并不简略,因为在BIOS加电自检进程中,有许多进程需求优化。
完成快速引导的一种最佳概念是运用微软的简略引导符号增强(simple boot flag enhancement),它能决议引导时履行哪些POST组件。当然,还可在其它当地削减引导时刻。
运用速度符号,简略引导符号以最简略的方法被用来操控引导速度。在初次引导进程中,BIOS在非易失性存储器中设置引导速度符号,然后再履行一组完好的确诊测验。在引导晚期,BIOS将操控权交给OS,假如OS引导没有任何问题,它便会铲除引导速度符号。鄙人一次重启时,BIOS会看到引导速度符号现已被铲除,然后它会进行一组较短的确诊测验,然后削减引导时刻。假如BIOS或OS检测到任何硬件装备的改变和/或毛病,则它们将相互和谐以保证鄙人一个引导周期中履行一组完好的确诊测验。
虽然引导速度的进步首要归功于选用简略引导符号,但在其它许多方面也可进步引导速度,包含:视频ROM扩展(大约需求1至3秒);到屏幕的任何其它BIOS输出,包含POST及PCI音讯等(大约需求100毫秒);不需求BIOS但需求由OS激活的硬件初始化,如鼠标及键盘等(大约需求数秒钟);因为大多数嵌入式体系具有固定的硬件装备,所以还可运用特定方针的优化(如经过优化的内存初始化和PCI枚举)来进一步进步引导速度。
经过运用简略引导符号、消除硬件初始化并运用特定方针的优化,现在许多渠道的引导时刻都已可达亚秒级。在单个渠道上,从复位到OS加载的时刻可小于100毫秒。
增强的嵌入式固件运用才能
嵌入式体系开发商正日益寻求经过添加更多的特性,来使产品有别于竞赛产品的办法。固件是增强这种特性(特别是那些需求独自运转渠道OS的特性)的抱负当地,其间一个比方便是高可用性监控与引导安全性。
假如自助式信息服务终端选用独立于OS运转的固件,它便能以许多办法检测出毛病状况,然后采纳记载毛病、经过网络发送电子邮件或许重启等纠正办法。虽然这是一种可见性毛病,但无头(headless)设备也相同简略遭到进犯。
固件是完成这种监控的抱负当地,该监控独立于OS并以体系管理方法(SMM,x86处理器架构的第四种方法)与OS并行运转。例如,Firmbase SMM操作环境具有自己的32位SMM操作环境,以便运转用Windows东西构建的可移植可履行程序。Firmbase运用程序驻留在ROM中的BIOS周围,在这里它们独立于OS运转,即便OS现已溃散或丢掉。这使BIOS成为对体系毛病进行检测和呼应的高可用性监控处理方案的最佳完成当地。
某些状况下,固件可协助处理终端用户篡改设备的问题。投票机、游戏机,乃至机顶盒等都需求一系列树立在运用层软件、固件自身以及渠道之间的信赖。假如没有这种信赖,用户就能够在硬盘驱动器上修正要害文件,或许用另一块主板来打乱轮询成果或诈骗主机。经过与运转在Windows或Linux OS下的运用程序、以及运转在SMM并独立于OS的固件树立可重复性的加密握手,无论是运用程序仍是固件都能够禁用体系,避免体系进行误操作。
曩昔,将硬件与运用程序绑在一同是运用程序员的作业。现在,无论是扩展体系的体系管理接口(SMI)处理程序来履行握手,仍是授权在固件层具有日志、长途管理以及OEM级装备的引导时刻安全运用程序,都变得愈加安全和简略。
还可经过别的一些办法运用BIOS,以使产品在固件级上具有差异化并取得竞赛优势。在处理BIOS的功用装备、用户界面、快速引导以及添加专用功用等问题后,还可考虑其它许多方面。例如,可用ROM、RAM、闪存或USB存储器棒等固态前言来替代硬盘;内置确诊可集成到BIOS中以助于完成主动制作;内置调试程序可加速电路板的推出进程;此外,专用加载程序(比方那些用于Windows CE与EFI的加载程序)还可为未来技能改善供给内置路线图。
因为嵌入式体系之间存在广泛的运用差异性,所以没有一个单一的BIOS能对它们悉数适用或许有用。为能直接开发并高效地、赋有本钱效益地装备嵌入式设备,用开发商定制硬件和软件运用的相同办法来定制固件的才能还有待进一步进步。
作者:Steve Jones
Nat Hillary
通用软件公司