一种基于io访问方式的显卡bios更新方法

文档序号:6385050阅读:516来源:国知局
专利名称:一种基于io访问方式的显卡bios更新方法
技术领域
本发明涉及显卡研发领域,特别是一种在计算机系统中能简单、快速和可靠地更新显卡BIOS (Basic Input Output System,基本输入输出系统)的方法。
背景技术
显卡BIOS包括传统的VGA (Video Graphics Array,视频图形阵列)BIOS和扩展的VBE (VESA BIOS EXTENSION,视频电子标准协会BIOS扩展),其包含了显卡的硬件控制程序,另外还存放有显卡型号、规格、生产厂商、出厂时间等信息,并在开机时对显卡进行初始化。显卡BIOS在计算机系统中发挥着重要的作用,它影响着显卡性能的发挥。与系统BIOS—样,显卡BIOS同样存储在ROM(只读存储器)中。上电自检(POST)是系统BIOS的一大组成部分,它负责上电后对计算机系统所有硬件和寄存器的检测和初始化工作,这其中包含将保存在显卡扩展ROM中的显卡BIOS影射(Shadow)到系统主存中预留给显卡BIOS的区域。参考图1,本发明提供了上电自检影射显卡扩展ROM的流程:使能扩展R0M,并将扩展ROM映射到系统地址空间中一块未被占据的区域;查找扩展ROM中对应的映像(Image)并通过内存访问方式将其复制到主存预留区域(从OCOOOOh到ODFFFFh);去使能(Disable)扩展ROM ;调用初始化函数。影射显卡扩展ROM后,显卡BIOS就存在于主存中,相当于显卡扩展ROM的“影子”,操作系统和驱动程序通过直接访问主存而调用相关显卡BIOS函数。随着技术的进步和计算机软硬件系统的升级,显卡中一些不完善的问题会暴露出来,研发人员需要不断修改和完善显卡B10S,随之更新显卡BIOS。然而,完成显卡扩展ROM影射后,由于扩展ROM已被去使能,且最初分配给扩展ROM的内存地址空间被操作系统回收,所以应用程序不可能通过常规内存访问方式访问扩展ROM。另外,传统的在DOS下更新显卡BIOS的流程显得繁琐冗长,容易出错,导致更新失败,甚至导致不可修复的硬件损坏。

发明内容
本发明的目的是研制一种简便高效的显卡BIOS更新方法,使得显卡BIOS的更新方便、快速和可靠。本发明一种基于10访问方式的显卡BIOS更新方法,其包括以下步骤:
(1)用待更新显卡或第三方显卡启动微软视窗操作系统;
(2)根据厂商识别号(VendorID)和设备识别号(Device ID)选择并定位待更新显卡;
(3)判断待更新显卡PCI(Peripheral Component Interconnect,周边兀件扩展接口)配置空间命令寄存器是否使能10访问。如果待更新显卡PCI配置空间命令寄存器未使能10访问,使能10访问;
(4)通过10访问方式读出待更新显卡扩展ROM中旧的BIOS;
(5)通过10访问方式将新的BIOS写入待更新显卡扩展ROM;
(6)通过10访问方式读出待更新显卡扩展ROM中新的BIOS并完成校验; (7)重启微软视窗操作系统。本发明的显卡基于PCI或PC1-E总线协议,且申请了一定数量的IO地址空间。计算机系统上电自检发起对显卡扩展ROM的内存访问请求,显卡扩展ROM中的BIOS被映射到计算机系统主存,且扩展ROM的内存地址空间被回收,应用程序无法通过常规内存访问方式读写扩展ROM;进入操作系统后,显卡BIOS更新程序依据显卡申请的IO地址空间发起对扩展ROM的IO读写访问请求。另外,显卡扩展ROM的接口采用SPI (Serial PeripheralInterface,串行外围接口 )协议,存储介质可为FLASH (闪存)或者EEPROM (电可擦除只读存储器)。显卡将显卡BIOS更新程序发起的PCI或PC1-E IO访问请求转换成SPI命令序列并最终形成SPI串行信号,从而完成对扩展ROM的读写。本发明一种基于IO访问方式的显卡BIOS更新方法采取IO访问方式解决了显卡进入操作系统后,扩展ROM内存地址空间虽已无效,但仍可以快速、可靠地完成对显卡BIOS的更新,缩短了显卡BIOS的开发周期。此外,本发明提出的基于微软视窗操作系统的显卡BIOS更新方法,操作简单、方便。


图1本发明计算机系统上电自检显卡扩展ROM影射流程 图2本发明基于10访问方式的显卡BIOS更新方法较佳实施方式的流程图。
具体实施例方式参照图2,本发明基于10访问方式的显卡BIOS更新方法较佳实施方式包括以下步骤:
201:启动微软视窗操作系统后,显卡BIOS更新程序首先根据厂商识别号(Vendor ID)和设备识别号(Device ID)选择并定位显卡。显卡BIOS更新程序中设置了默认的厂商识别号和设备识别号,如果默认设置与待更新显卡的厂商识别号和设备识别号一致,无需再作选择;否则需要进一步输入待更新显卡的厂商识别号和设备识别号以定位待更新显卡。202:判断PCI配置空间命令寄存器是否已使能10访问。进入操作系统后,常规的扩展ROM内存访问方式已失效,显卡BIOS更新程序通过10访问方式访问扩展ROM。操作系统可能已去使能(Disable) 10访问,显卡BIOS更新程序查看命令寄存器(偏移量为04h)的10访问使能位(最低位)是否有效(为1),如10访问使能位为1,无需修改;否则,修改此位为I。203:备份待更新显卡旧的BIOS。准备更新显卡BIOS之前,对待更新显卡BIOS作备份,以防显卡BIOS更新失败。备份显卡BIOS时,首先获取待更新显卡申请的相关10地址空间,再通过10访问方式读出扩展ROM中旧的BIOS并保存到文件。204:从新的BIOS文件读入新的BIOS并写入待更新显卡扩展ROM。写入扩展ROM时,首先获取待更新显卡申请的相关10地址空间,再通过10访问方式将新的BIOS写入扩展匪。205:读出待更新显卡新的BIOS并完成校验。首先,通过10访问方式读出扩展ROM中已更新的BIOS并将它保存到文件中,再将此文件与待更新显卡新的BIOS文件作比对,如比对结果匹配则表示显卡BIOS更新成功,结束更新程序,重启操作系统即可使用新的显卡BIOS;否则,重复步骤204和205直到更新成功。如果因为非人为的因素(如断电)导致待显卡BIOS更新失败,借助第三方的独立显卡或集成显卡完成操作系统的启动;进入操作系统后,仍按照图2所示步骤完成对待更新显卡BIOS的恢复或更新。
权利要求
1.一种基于IO访问方式的显卡BIOS更新方法,其特征在于:包括以下步骤: (1)用待更新显卡或第三方显卡启动微软视窗操作系统; (2)根据厂商识别号和设备识别号选择并定位待更新显卡; (3)判断待更新显卡PCI配置空间命令寄存器是否使能IO访问;如果待更新显卡PCI配置空间命令寄存器未使能IO访问,使能IO访问; (4)读出待更新显卡扩展ROM中旧的BIOS; (5)将新的BIOS写入待更新显卡扩展ROM; (6)读出待更新显卡扩展ROM中新的BIOS并完成校验; (7)重启微软视窗操作系统。
2.如权利要求1所述的基于IO访问方式的显卡BIOS更新方法,其特征在于:所述的读写扩展ROM通过10访问方式完成。
3.如权利要求1所述的基于10访问方式的显卡BIOS更新方法,其特征在于:所述的显卡基于PCI或PC1-E总线协议,且申请了一定数量的10地址空间。
4.如权利要求1所述的基于10访问方式的显卡BIOS更新方法,其特征在于:所述的扩展ROM的存储介质可为FLASH或者EEPR0M,接口采用SPI协议。
全文摘要
一种基于IO访问方式的显卡BIOS更新方法,包括启动微软视窗操作系统并执行更新程序;根据厂商识别号和设备识别号选择并定位待更新显卡;判断待更新显卡PCI配置空间命令寄存器是否使能IO访问;通过IO访问方式读出待更新显卡扩展ROM中旧的BIOS;通过IO访问方式将新的BIOS写入待更新显卡扩展ROM;通过IO访问方式读出待更新显卡扩展ROM中新的BIOS并完成校验;退出更新程序并重启微软视窗操作系统。上述基于IO访问方式的显卡BIOS更新方法可方便、快速和可靠地完成对显卡BIOS的更新。
文档编号G06F9/445GK103106161SQ201210561699
公开日2013年5月15日 申请日期2012年12月22日 优先权日2012年12月22日
发明者高齐黄亮, 张义伟, 秦信刚, 高齐 申请人:中国船舶重工集团公司第七0九研究所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1