Pci选项rom程序的驻留和调用方法

文档序号:6559491阅读:546来源:国知局

专利名称::Pci选项rom程序的驻留和调用方法
技术领域
:本发明涉及计算机领域,更具体地,涉及一种PCI选项ROM程序的驻留方法和调用方法。
背景技术
:许多计算机(如服务器)需要外插很多PCI卡,经常由于内存阴影(Shadow)空间(这里特指内存0C000H-0D000H段)的不足导致许多外插卡的选项ROM(OptionROM)无法调用,使得这些外插卡无法使用。这是由于PC架构本身的缺陷导致的。目前还没有很有效的解决方案。在用户端,用户只能通过减少插卡的方式避免这个问题;在BIOS设计方面,一般通过把内存0E000H段的内容搬到高端内存,再腾出64K字节的空间来运行更多的选项R0M。即便如此,阴影空间也仍然只有192K字节;而且实验证明,该方法会带来很多软件的兼容问题,甚至导致设备(如USB设备)工作的不正常。美国专利US6725178公开了一种把BIOS选项ROM存放在磁盘的隐藏分区的方法。在BIOS开机自检测过程中,从隐藏分区中取得合适的BIOS选项ROM以初始化外围设备。该方法只涉及到BIOS选项ROM(包含PCI选项ROM)程序的运行前存储问题,仍然无法解决在运行这些BIOS选项ROM的过程中,可能因为阴影空间不足而导致无法运行的问题。美国专利US6961791公开了一种集中配置的方法。利用一个"基于ROM的设置程序"ROM-BaseSetupUtility(〃RBSU〃),在开机过程中,可以根据用户的输入,对计算机进行集中配置,可以决定哪些PCI选项ROM需要运行,哪些不需要运行。该方法虽然可以通过减少一些不需要的PCI选项ROM的运行来节省部分阴影空间,用以运行所需要的PCI选项ROM,但仍然无法从根本上解决这个问题。
发明内容本发明设计了有效运行PCI选项ROM的技术方案。按照现有的PCI兼容选项ROM的运行方式,运行后的运行时间(runtime)程序必须常驻在内存的阴影空间里,以便设备驱动程序或其他应用程序使用,由此便引发了上面所描述的问题。本发明设计了一种运行PCI选项ROM的方法,目的在于彻底解决上述的问题。在本发明中,(一)"驻留方法"在BIOS上电自检过程(POST)中,BIOS每次在阴影空间中运行完一个PCI选项ROM后,把该选项ROM的运行时间程序从阴影空间移动到其他的数据存储区域(如高端内存、硬盘等),并且记录下运行时间程序和相应PCI设备的对应表(如PCI设备ID唯一对应于相应运行时间程序的存储地址)。在所有的PCI选项ROM调用结束后,BIOS便在阴影空间中驻留一段"代理程序"。在本发明中,(二)"调用方法"在运行时间阶段,无论应用程序或者设备驱动程序需要访问选项ROM的运行时间程序,首先都要访问常驻在阴影空间中的"代理程序","代理程序"根据上述的对应表找到所需的运行时间程序,并把运行时间程序复制到1M以下的空间,以供访问。在本发明中,应用程序或者设备驱动程序访问PCI选项ROM运行时间程序一般有两种方式(一)如果通过中断的方式访问PCI选项ROM的运行时间程序,BIOS可以通过"挂钩"(Hook)的方式,让该中断服务程序先运行"代理服务",以便把相应的PCI选项ROM运行时间程序复制到阴影空间中,然后再继续运行该中断服务程序。(二)如果直接通过预先设置的入口地址访问PCI选项ROM运行时间程序/数据。BIOS需要和设备驱动程序预先沟通,B工OS把"代理程序"驻留在阴影空间中一个固定的位置上,设备驱动程序在访问PCI选项ROM运行时间程序/数据前,必须先到预先协定好的阴影空间的固定位置上运行"代理程序","代理程序"把相应的PCI选项ROM运行时间程序复制到阴影空间后把控制权交给应用程序或者设备驱动程序,应用程序或者设备驱动程序就可以继续访问PCI选项ROM运行时间程序/数据了。本发明所设计的有效运行PCI选项ROM的技术方案可以在一台计算机上支持足够数量的PCI设备。为了实现上述目的,本发明提出了一种PCI选项ROM程序的驻留方法,包括在BIOS上电自检过程中执行以下步骤将整个PCI选项ROM程序复制到系统存储器的阴影空间中并运行;在运行结束后,将选项ROM程序运行后留下的PCI选项ROM运行时间程序移动到系统存储器的其他存储区域;记录PCI选项ROM运行时间程序的存储地址与相应设备之间的对应关系;在阴影空间中驻留代理程序;以及将已记录的对应关系驻留在阴影空间中。为了实现上述目的,本发明提出了一种PCI选项ROM程序的调用方法,包括在运行时间阶段中执行以下步骤应用程序或设备驱动程序把相应的参数传递给代理程序,并运行代理程序;代理程序根据输入的参数,通过PCI选项ROM运行时间程序与设备之间的对应关系,搜索出PCI选项ROM运行时间程序的存储地址,并将PCI选项ROM运行时间程序复制到系统存储器的阴影空间中;代理程序在完成PCI选项ROM运行时间程序的复制后,将控制权交还应用程序或设备驱动程序;以及应用程序或设备驱动程序在取得控制权后,开始调用相应的PCI选项ROM运行时间程序,以完成相应的功能。为了实现上述目的,本发明提出了一种PCI选项ROM程序的调用方法,包括在运行时间阶段中执行以下步骤中断服务程序运行挂钩在所述中断服务程序的开始的代理程序;所述代理程序将相应的PCI选项ROM运行时间程序复制到系统存储器的阴影空间中;以及继续运行所述中断服务程序。下面将参照附图,对本发明的优选实施例进行详细的描述,其中图1是在BIOSPOST阶段中运行PCI兼容选项ROM的方法的流程图。图2是在运行时间阶段中,设备的驱动程序或应用程序调用选项ROM运行时间程序的方法的流程图。具体实施例方式下面结合本发明的具体实施方式。应该指出,所描述的实施例仅是为了说明的目的,而不是对本发明范围的限制。所描述的各种数值并非用于限定本发明,这些数值可以根据本领域普通技术人员的需要进行任何适当的修改。图1是在BIOSPOST阶段中运行PCI兼容选项ROM的方法的流程图。BIOS把整个PCI选项ROM程序复制到RAM(阴影空间)并运行(SIO)。运行结束后,BIOS把选项ROM运行后留下的运行时间程序移动到其他存储区域,如高端内存、硬盘或其他可读写的存储介质等(Sll)。BIOS记录下运行时间程序和相应的设备之间的"对应关系",用唯一标识该设备的ID(如设备的"厂商ID+设备ID"组合或"总线号+设备号"组合)对应于相应运行时间程序的存储地址(S12)。表1为设备与相应的PCI选项ROM运行时间程序存储地址的"对应表",假设设备ID选择的是"厂商ID+设备ID"("VendorID+DeviceID")的组合,且PCI选项ROM运行时间程序存储在高端内存区域,如起始地址为010000000H(256兆),则表1为如下形式<table>tableseeoriginaldocumentpage8</column></row><table>表lBIOS判断是否还有其他的PCI选项ROM需要运行,如果还有,则重复SIO、Sll、S12的步骤;如果没有了,则继续POST(S13)。BIOS在阴影空间中驻留"代理程序",并且修改所有访问PCI选项ROM运行时间程序的中断服务程序,使得这些中断服务程序先运行"代理程序"后再继续运行原本的程序,即把"代理程序"挂钩在中断服务程序的开始(S14)。BIOS在阴影空间中驻留上述的"对应表"(表1),以便"代理程序"使用。"代理程序"可以根据该"对应表"搜索到相应的选项ROM运行时间程序(S15)。图2是在运行时间阶段中,设备的驱动程序或应用程序调用选项ROM运行时间程序的方法的流程图。应用程序或设备驱动程序(下面简称"程序")要调用选项ROM运行时间程序,进行调用前的准备(S20)。程序把相应的参数(设备ID或其他)传递给"代理程序",并首先运行"代理程序"(S21)。"代理程序"根据程序的输入参数,通过选项ROM运行时间程序与设备之间的"对应表"搜索到所需要的运行时间程序的存储地址;并把运行时间程序复制到阴影空间中(S22)。"代理程序"复制完程序所需的运行时间程序到阴影空间后,把控制权交还给程序(S23)。程序取得控制权后,开始调用相应的PCI选项ROM运行时间程序,以完成相应的功能(S24)。最后所应说明的是以上实施例仅仅用以说明而非限制本发明的技术方案,尽管参照上述实施例对本发明进行了详细说明,本领域的普通技术人员应当理解依然可以对本发明进行修改或者等同替换,而不脱离本发明的精神和范围的任何修改或局部替换,其均应涵盖在本发明的权利要求范围当中。权利要求1.一种PCI选项ROM程序的驻留方法,包括在BIOS上电自检过程中执行以下步骤将整个PCI选项ROM程序复制到系统存储器的阴影空间中并运行;在运行结束后,将选项ROM程序运行后留下的PCI选项ROM运行时间程序移动到系统存储器的其他存储区域;记录PCI选项ROM运行时间程序的存储地址与相应设备之间的对应关系;在阴影空间中驻留代理程序;以及将已记录的对应关系驻留在阴影空间中。2.根据权利要求1所述的PCI选项ROM程序的驻留方法,其特征在于还包括修改所有访问PCI选项ROM运行时间程序的中断服务程序,将代理程序挂钩在中断服务程序的开始。3.根据权利要求1或2所述的PCI选项ROM程序的驻留方法,其特征在于以PCI选项ROM运行时间程序的存储地址和相应设备的唯一标识ID建立所述对应关系。4.根据权利要求3所述的PCI选项ROM程序的驻留方法,其特征在于相应设备的唯一标识ID是厂商ID与设备ID的组合。5.根据权利要求3所述的PCI选项ROM程序的驻留方法,其特征在于相应设备的唯一标识ID是总线号与设备号的组合。6.根据前述权利要求之一所述的PCI选项ROM程序的驻留方法,其特征在于所述系统存储器的其他存储区域是高端内存或硬盘或其他可读写的存储介质。7.—种PCI选项ROM程序的调用方法,包括在操作系统运行时间阶段中执行以下步骤应用程序或设备驱动程序把相应的参数传递给代理程序,并运行代理程序;代理程序根据输入的参数,通过PCI选项ROM运行时间程序与设备之间的对应关系,搜索出PCI选项ROM运行时间程序的存储地址,并将PCI选项ROM运行时间程序复制到系统存储器的阴影空间中;代理程序在完成PCI选项ROM运行时间程序的复制后,将控制权交还应用程序或设备驱动程序;以及应用程序或设备驱动程序在取得控制权后,开始调用相应的PCI选项ROM运行时间程序,以完成相应的功能。8.根据权利要求7所述的PCI选项ROM程序的调用方法,其特征在于输入的参数是相应设备的唯一标识ID,相应设备的唯一标识ID与PCI选项ROM运行时间程序的存储地址之间具有彼此一一对应的对应关系。9.根据权利要求8所述的PCI选项ROM程序的调用方法,其特征在于相应设备的唯一标识ID是厂商ID与设备ID的组合。10.根据权利要求8所述的PCI选项ROM程序的调用方法,其特征在于相应设备的唯一标识ID是总线号与设备号的组合。11.根据前述权利要求之一所述的PCI选项ROM程序的调用方法,其特征在于所述PCI选项ROM运行时间程序的存储地址对应于高端内存或硬盘中的存储地址。12.—种PCI选项ROM程序的调用方法,包括在操作系统运行时间阶段中执行以下步骤中断服务程序运行挂钩在所述中断服务程序的开始的代理程序;所述代理程序将相应的PCI选项ROM运行时间程序复制到系统存储器的阴影空间中;以及继续运行所述中断服务程序。全文摘要本发明提出了一种PCI选项ROM程序的驻留方法,包括在BIOS上电自检过程中执行以下步骤将整个PCI选项ROM程序复制到系统存储器的阴影空间中并运行;在运行结束后,将选项ROM程序运行后留下的PCI选项ROM运行时间程序移动到系统存储器的其他存储区域;记录PCI选项ROM运行时间程序的存储地址与相应设备之间的对应关系;在阴影空间中驻留代理程序;以及将已记录的对应关系驻留在阴影空间中。本发明还提出了一种与上述PCI选项ROM程序的驻留方法相对应的、PCI选项ROM程序的调用方法。文档编号G06F9/445GK101097523SQ20061009079公开日2008年1月2日申请日期2006年6月30日优先权日2006年6月30日发明者柯海滨申请人:联想(北京)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1