一种BIOS与硬件机制交互设定GPIO配置的方法及装置与流程

文档序号:31147288发布日期:2022-08-17 00:16阅读:283来源:国知局
一种BIOS与硬件机制交互设定GPIO配置的方法及装置与流程
一种bios与硬件机制交互设定gpio配置的方法及装置
技术领域
1.本发明属于计算机技术领域,公开了一种bios与硬件机制交互设定gpio配置的方法及装置。


背景技术:

2.gpio(英语:general-purpose input/output),通用型之输入输出的简称,功能类似8051的p0-p3,其接脚可以供使用者由程控自由使用,pin脚依现实考量可作为通用输入(gpi)或通用输出(gpo)或通用输入与输出(gpio)。当前设计中gpio设定一般是配合硬件设计在bios内部预配置相关的gpio信息,在post过程中由bios进行配置。主板变更相关设计时如果涉及到gpio功能变更则需要bios配合调整,前后版本的bios不同,不能共用在不同设计的同型号主板上,部分实现中会通过外部界面给bios发送数据利用bios机制配合修改,此种设计无法确保bios接收的配置信息就是与当前主板匹配,由于开放有外部接口,安全性存在风险,如果gpio错误配置容易引起功能性问题,同时存在损坏主板和部件的可能性。
3.因此,现今亟需一种bios与硬件机制交互设定gpio配置的方法及装置,针对需要修改的gpio配置信息进行修改,无需调整全部gpio,整合多个机型和版本信息,通用各种机型的bios,方便工程师对gpio进行调整。


技术实现要素:

4.本发明的目的在于提供一种bios与硬件机制交互设定gpio配置的方法及装置,以解决上述背景技术中提出的问题。
5.为实现上述目的,本发明提供如下技术方案:
6.一方面,本技术实施例提供了一种bios与硬件机制交互设定gpio配置的方法,包括:
7.获取需要调整的gpio配置信息集合c,添加机型和版本信息生成gpio配置信息集合b;
8.将所述gpio配置信息集合b转化成二进制文件,并将所述二进制文件烧录到电可擦只读存储器中;
9.启动bios,读取电可擦只读存储器中的数据;
10.判断所述数据中是否有与当前机型和版本匹配的gpio配置信息集合c;若无,则使用bios默认的gpio配置信息集合配置gpio;若有,则使用与当前的机型和版本匹配的gpio配置信息集合c配置gpio。
11.在一些实施例中,所述将所述gpio配置信息集合b转化成二进制文件,并将所述二进制文件烧录到电可擦只读存储器中,包括:
12.将所述gpio配置信息集合b与checksum信息整合,生成二进制文件;
13.将所述二进制文件签名后烧录到电可擦只读存储器中。
14.在一些实施例中,所述判断所述数据中是否有与当前机型和版本匹配的gpio配置信息集合c;若无,则使用bios默认的gpio配置信息集合配置gpio;若有,则使用与当前的机型和版本匹配的gpio配置信息集合c配置gpio,包括:
15.判断所述数据中是否有与当前机型和版本匹配的数据段;
16.若无,则使用bios默认的gpio配置信息集合配置gpio;
17.若有,则判断gpio配置信息集合b中是否有本机型和版本对应的gpio配置信息集合c。
18.在一些实施例中,所述判断gpio配置信息集合b中是否有本机型和版本对应的gpio配置信息集合c,包括:
19.判断gpio配置信息集合b中是否有本机型和版本对应的gpio配置信息集合c;
20.若无,则使用bios默认的gpio配置信息集合中通用的gpio引脚对应的配置信息设定当前gpio引脚;
21.若有,则判断与当前机型和版本匹配的gpio配置信息集合c中是否有当前gpio引脚对应的配置信息。
22.在一些实施例中,所述判断与当前机型和版本匹配的gpio配置信息集合c中是否有当前gpio引脚对应的配置信息,包括:
23.判断与当前机型和版本匹配的gpio配置信息集合c中是否有当前gpio引脚对应的配置信息;
24.若无,则使用bios默认的gpio配置信息集合中通用的gpio引脚对应的配置信息设定当前gpio引脚;
25.若有,则使用与当前的机型和版本匹配的gpio配置信息集合c中通用的gpio引脚对应的配置信息设定当前gpio引脚。
26.在一些实施例中,所述使用bios默认的gpio配置信息集合中通用的gpio引脚对应的配置信息设定当前gpio引脚之后,或使用与当前的机型和版本匹配的gpio配置信息集合c中通用的gpio引脚对应的配置信息设定当前gpio引脚之后,包括:
27.判断当前gpio引脚是否遍历完成;
28.若是,执行下一步;
29.若否,将当前gpio引脚指向下一引脚。
30.另一方面,本技术实施例还提供了一种bios与硬件机制交互设定gpio配置的装置,包括:
31.接收单元,用于获取需要调整的gpio配置信息集合c,添加机型和版本信息生成gpio配置信息集合b;
32.转化单元,用于将所述gpio配置信息集合b转化成二进制文件;
33.读取单元,用于读取电可擦只读存储器中的数据;
34.判断单元,用于判断所述数据中是否有与当前机型和版本匹配的gpio配置信息集合c。
35.本技术实施例还提供一种存储介质,其上存储有计算机程序,当计算机程序在计算机上运行时,使得所述计算机执行如权利要求1至7中任一项所述的一种bios与硬件机制交互设定gpio配置的方法。
36.综上所述,与现有技术相比,本发明具有以下有益效果:一种bios与硬件机制交互设定gpio配置的方法及装置,包括:获取需要调整的gpio配置信息集合c,添加机型和版本信息生成gpio配置信息集合b;将所述gpio配置信息集合b转化成二进制文件,并将所述二进制文件烧录到电可擦只读存储器中;启动bios,读取电可擦只读存储器中的数据;判断所述数据中是否有与当前机型和版本匹配的gpio配置信息集合c;若无,则使用bios默认的gpio配置信息集合配置gpio;若有,则使用与当前的机型和版本匹配的gpio配置信息集合c配置gpio。针对需要修改的gpio配置信息进行修改,无需调整全部gpio,整合多个机型和版本信息,通用各种机型的bios,方便工程师对gpio进行调整。
附图说明
37.图1是本实施例提供的一种bios与硬件机制交互设定gpio配置的方法的流程示意图;
38.图2是本实施例gpio配置信息集合c的结构示意图;
39.图3是本实施例gpio配置信息集合b的结构示意图;
40.图4是本实施例提供的一种bios与硬件机制交互设定gpio配置的方法的流程示意图;
41.图5是本实施例提供的一种bios与硬件机制交互设定gpio配置的装置的结构示意图。
具体实施方式
42.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
43.本技术实施例提供一种bios与硬件机制交互设定gpio配置的方法、装置、及计算机可读存储介质。此外,所描述的本发明不同实施方式中所涉及的技术特征只要彼此之间未构成冲突就可以相互结合。
44.传统gpio设定一般是配合硬件设计在bios内部预配置相关的gpio信息,在post过程中由bios进行配置。主板变更相关设计时如果涉及到gpio功能变更则需要bios配合调整,前后版本的bios不同,不能共用在不同设计的同型号主板上,部分实现中会通过外部界面给bios发送数据利用bios机制配合修改,此种设计无法确保bios接收的配置信息就是与当前主板匹配,由于开放有外部接口,安全性存在风险,如果gpio错误配置容易引起功能性问题,同时存在损坏主板和部件的可能性。
45.本发明可以针对需要修改的gpio配置信息进行修改,无需调整全部gpio,整合多个机型和版本信息,通用各种机型的bios,方便工程师对gpio进行调整。
46.以下分别进行详细说明。需说明的是,以下实施例的顺序不作为对实施例优选顺序的限定。
47.本技术实施例提供了一种bios与硬件机制交互设定gpio配置的方法(如图1),包括:
48.获取需要调整的gpio配置信息集合c,添加机型和版本信息生成gpio配置信息集合b;将所述gpio配置信息集合b转化成二进制(bin)文件,并将所述二进制(bin)文件烧录到电可擦只读存储器(electronically erasableread-only memory,简称eerom)中;启动bios,读取电可擦只读存储器(electronically erasable read-only memory,简称eerom)中的数据;判断所述数据中是否有与当前机型和版本匹配的gpio配置信息集合c;若无,则使用bios默认的gpio配置信息集合配置gpio;若有,则使用与当前的机型和版本匹配的gpio配置信息集合c配置gpio。
49.在一些实施例中,所述将所述gpio配置信息集合b转化成二进制(bin)文件,并将所述二进制(bin)文件烧录到电可擦只读存储器(electronicallyerasable read-only memory,简称eerom)中,包括:将所述gpio配置信息集合b与checksum信息整合成,生成二进制(bin)文件;将所述二进制(bin)文件签名后烧录到电可擦只读存储器(electronically erasable read-onlymemory,简称eerom)中。
50.在一些实施例中,所述判断所述数据中是否有与当前机型和版本匹配的gpio配置信息集合c;若无,则使用bios默认的gpio配置信息集合配置gpio;若有,则使用与当前的机型和版本匹配的gpio配置信息集合c配置gpio,包括:判断所述数据中是否有与当前机型和版本匹配的数据段;若无,则使用bios默认的gpio配置信息集合配置gpio;若有,则判断gpio配置信息集合b中是否有本机型和版本对应的gpio配置信息集合c。
51.在一些实施例中,所述判断gpio配置信息集合b中是否有本机型和版本对应的gpio配置信息集合c,包括:判断gpio配置信息集合b中是否有本机型和版本对应的gpio配置信息集合c;若无,则使用bios默认的gpio配置信息集合中通用的(current)gpio引脚(pin)对应的配置信息设定当前gpio引脚(pin);若有,则判断与当前机型和版本匹配的gpio配置信息集合c中是否有当前gpio引脚(pin)对应的配置信息。
52.在一些实施例中,所述判断与当前机型和版本匹配的gpio配置信息集合c中是否有当前gpio引脚(pin)对应的配置信息,包括:判断与当前机型和版本匹配的gpio配置信息集合c中是否有当前gpio引脚(pin)对应的配置信息;若无,则使用bios默认的gpio配置信息集合中通用的(current)gpio引脚(pin)对应的配置信息设定当前gpio引脚(pin);若有,则使用与当前的机型和版本匹配的gpio配置信息集合c中通用的(current)gpio引脚(pin)对应的配置信息设定当前gpio引脚(pin)。
53.在一些实施例中,所述使用bios默认的gpio配置信息集合中通用的(current)gpio引脚(pin)对应的配置信息设定当前gpio引脚(pin)之后,或使用与当前的机型和版本匹配的gpio配置信息集合c中通用的(current)gpio引脚(pin)对应的配置信息设定当前gpio引脚(pin)之后,包括:判断当前gpio引脚(pin)是否遍历完成;若是,执行下一步;若否,将当前gpio引脚(pin)指向下一引脚(pin)。
54.需要重点说明的是,本发明一种bios与硬件机制交互设定gpio配置的方法(如图2-4):首先将需要调整的gpio配置信息集合(简称:gpio配置信息集合c,)按约定格式添加机型,版本等信息(简称:gpio配置信息集合b,包含多个gpio配置信息集合c)整合后计算添加checksum信息整合成bin文件并签名后烧录到eerom中;
55.bios在启动过程中,加载smbus,spi等相关的protocol后读取eeprom中的数据,验证签名&checksum以及确认是否存在与当前的机型和版本匹配的数据段;
56.如果不匹配则使用bios默认的gpio配置信息集合(简称:gpio配置信息集合a)配置gpio后,执行下一步;
57.如果匹配则读取eeprom相关配置信息(gpio配置信息集合b),并检查是否包含本机型版本对应的gpio配置信息集合(gpio配置信息集合c);
58.如果包含则使用bios默认的gpio集合配置信息集合(gpio配置信息集合a)配置gpio,并在配置过程中先确认此gpio pin是否属于需要调整的gpio配置信息集合(gpio配置信息集合c),该引脚配置如果属于gpio配置信息集合c则忽略其在gpio配置信息集合a中的配置直接使用gpio配置信息集合c的对应配置设定相关gpio;
59.针对gpio引脚遍历执行step4后,执行下一步;
60.如果不包含则使用bios默认的gpio配置信息集合(gpio配置信息集合a)配置gpio。
61.由上可知,本实施例提供了一种bios与硬件机制交互设定gpio配置的方法,包括:获取需要调整的gpio配置信息集合c,添加机型和版本信息生成gpio配置信息集合b;将所述gpio配置信息集合b转化成二进制文件,并将所述二进制文件烧录到电可擦只读存储器中;启动bios,读取电可擦只读存储器中的数据;判断所述数据中是否有与当前机型和版本匹配的gpio配置信息集合c;若无,则使用bios默认的gpio配置信息集合配置gpio;若有,则使用与当前的机型和版本匹配的gpio配置信息集合c配置gpio。针对需要修改的gpio配置信息进行修改,无需调整全部gpio,整合多个机型和版本信息,通用各种机型的bios,方便工程师对gpio进行调整。
62.为了更好地实施以上方法,本技术实施例还提供一种bios与硬件机制交互设定gpio配置的装置200,该装置具体可以集成在电子设备中,该电子设备可以为终端、服务器、个人电脑等设备。比如,在本实施例中,该装置可以包括:接收单元201、转化单元202、读取单元203和判断单元204,具体如下(参考图5):
63.(1)接收单元201,用于获取需要调整的gpio配置信息集合c,添加机型和版本信息生成gpio配置信息集合b。
64.获取需要调整的gpio配置信息集合c,添加机型和版本信息生成gpio配置信息集合b;将所述gpio配置信息集合b转化成二进制(bin)文件,并将所述二进制(bin)文件烧录到电可擦只读存储器(electronically erasableread-only memory,简称eerom)中;启动bios,读取电可擦只读存储器(electronically erasable read-only memory,简称eerom)中的数据;判断所述数据中是否有与当前机型和版本匹配的gpio配置信息集合c;若无,则使用bios默认的gpio配置信息集合配置gpio;若有,则使用与当前的机型和版本匹配的gpio配置信息集合c配置gpio。
65.(2)转化单元202,用于将所述gpio配置信息集合b转化成二进制(bin)文件。
66.获取需要调整的gpio配置信息集合c,添加机型和版本信息生成gpio配置信息集合b;将所述gpio配置信息集合b转化成二进制(bin)文件,并将所述二进制(bin)文件烧录到电可擦只读存储器(electronically erasableread-only memory,简称eerom)中;启动bios,读取电可擦只读存储器(electronically erasable read-only memory,简称eerom)中的数据;判断所述数据中是否有与当前机型和版本匹配的gpio配置信息集合c;若无,则使用bios默认的gpio配置信息集合配置gpio;若有,则使用与当前的机型和版本匹配的
gpio配置信息集合c配置gpio。
67.在一些实施例中,所述将所述gpio配置信息集合b转化成二进制(bin)文件,并将所述二进制(bin)文件烧录到电可擦只读存储器(electronicallyerasable read-only memory,简称eerom)中,包括:将所述gpio配置信息集合b与checksum信息整合成,生成二进制(bin)文件;将所述二进制(bin)文件签名后烧录到电可擦只读存储器(electronically erasable read-onlymemory,简称eerom)中。
68.(3)读取单元203,用于读取电可擦只读存储器(electronically erasableread-only memory,简称eerom)中的数据。
69.获取需要调整的gpio配置信息集合c,添加机型和版本信息生成gpio配置信息集合b;将所述gpio配置信息集合b转化成二进制(bin)文件,并将所述二进制(bin)文件烧录到电可擦只读存储器(electronically erasableread-only memory,简称eerom)中;启动bios,读取电可擦只读存储器(electronically erasable read-only memory,简称eerom)中的数据;判断所述数据中是否有与当前机型和版本匹配的gpio配置信息集合c;若无,则使用bios默认的gpio配置信息集合配置gpio;若有,则使用与当前的机型和版本匹配的gpio配置信息集合c配置gpio。
70.(4)判断单元204,用于判断所述数据中是否有与当前机型和版本匹配的gpio配置信息集合c。
71.获取需要调整的gpio配置信息集合c,添加机型和版本信息生成gpio配置信息集合b;将所述gpio配置信息集合b转化成二进制(bin)文件,并将所述二进制(bin)文件烧录到电可擦只读存储器(electronically erasableread-only memory,简称eerom)中;启动bios,读取电可擦只读存储器(electronically erasable read-only memory,简称eerom)中的数据;判断所述数据中是否有与当前机型和版本匹配的gpio配置信息集合c;若无,则使用bios默认的gpio配置信息集合配置gpio;若有,则使用与当前的机型和版本匹配的gpio配置信息集合c配置gpio。
72.在一些实施例中,所述判断所述数据中是否有与当前机型和版本匹配的gpio配置信息集合c;若无,则使用bios默认的gpio配置信息集合配置gpio;若有,则使用与当前的机型和版本匹配的gpio配置信息集合c配置gpio,包括:判断所述数据中是否有与当前机型和版本匹配的数据段;若无,则使用bios默认的gpio配置信息集合配置gpio;若有,则判断gpio配置信息集合b中是否有本机型和版本对应的gpio配置信息集合c。
73.在一些实施例中,所述判断gpio配置信息集合b中是否有本机型和版本对应的gpio配置信息集合c,包括:判断gpio配置信息集合b中是否有本机型和版本对应的gpio配置信息集合c;若无,则使用bios默认的gpio配置信息集合中通用的(current)gpio引脚(pin)对应的配置信息设定当前gpio引脚(pin);若有,则判断与当前机型和版本匹配的gpio配置信息集合c中是否有当前gpio引脚(pin)对应的配置信息。
74.在一些实施例中,所述判断与当前机型和版本匹配的gpio配置信息集合c中是否有当前gpio引脚(pin)对应的配置信息,包括:判断与当前机型和版本匹配的gpio配置信息集合c中是否有当前gpio引脚(pin)对应的配置信息;若无,则使用bios默认的gpio配置信息集合中通用的(current)gpio引脚(pin)对应的配置信息设定当前gpio引脚(pin);若有,则使用与当前的机型和版本匹配的gpio配置信息集合c中通用的(current)gpio引脚(pin)
对应的配置信息设定当前gpio引脚(pin)。
75.在一些实施例中,所述使用bios默认的gpio配置信息集合中通用的(current)gpio引脚(pin)对应的配置信息设定当前gpio引脚(pin)之后,或使用与当前的机型和版本匹配的gpio配置信息集合c中通用的(current)gpio引脚(pin)对应的配置信息设定当前gpio引脚(pin)之后,包括:判断当前gpio引脚(pin)是否遍历完成;若是,执行下一步;若否,将当前gpio pin指向下一引脚(pin)。
76.具体实施时,以上各个单元可以作为独立的实体来实现,也可以进行任意组合,作为同一或若干个实体来实现,以上各个单元的具体实施可参见前面的方法实施例,在此不再赘述。
77.本领域普通技术人员可以理解,上述实施例的各种方法中的全部或部分步骤可以通过指令来完成,或通过指令控制相关的硬件来完成,该指令可以存储于计算机可读存储介质中,并由处理器进行加载和执行。
78.为此,本技术实施例提供一种存储介质,其中存储有多条指令,该指令能够被处理器进行加载,以执行本技术实施例所提供的任一种bios与硬件机制交互设定gpio配置的方法中的步骤。例如,该指令可以执行如下步骤:
79.获取需要调整的gpio配置信息集合c,添加机型和版本信息生成gpio配置信息集合b;将所述gpio配置信息集合b转化成二进制(bin)文件,并将所述二进制(bin)文件烧录到电可擦只读存储器(electronically erasableread-only memory,简称eerom)中;启动bios,读取电可擦只读存储器(electronically erasable read-only memory,简称eerom)中的数据;判断所述数据中是否有与当前机型和版本匹配的gpio配置信息集合c;若无,则使用bios默认的gpio配置信息集合配置gpio;若有,则使用与当前的机型和版本匹配的gpio配置信息集合c配置gpio。
80.在一些实施例中,所述将所述gpio配置信息集合b转化成二进制(bin)文件,并将所述二进制(bin)文件烧录到电可擦只读存储器(electronicallyerasable read-only memory,简称eerom)中,包括:将所述gpio配置信息集合b与checksum信息整合成,生成二进制(bin)文件;将所述二进制(bin)文件签名后烧录到电可擦只读存储器(electronically erasable read-onlymemory,简称eerom)中。
81.在一些实施例中,所述判断所述数据中是否有与当前机型和版本匹配的gpio配置信息集合c;若无,则使用bios默认的gpio配置信息集合配置gpio;若有,则使用与当前的机型和版本匹配的gpio配置信息集合c配置gpio,包括:判断所述数据中是否有与当前机型和版本匹配的数据段;若无,则使用bios默认的gpio配置信息集合配置gpio;若有,则判断gpio配置信息集合b中是否有本机型和版本对应的gpio配置信息集合c。
82.在一些实施例中,所述判断gpio配置信息集合b中是否有本机型和版本对应的gpio配置信息集合c,包括:判断gpio配置信息集合b中是否有本机型和版本对应的gpio配置信息集合c;若无,则使用bios默认的gpio配置信息集合中通用的(current)gpio引脚(pin)对应的配置信息设定当前gpio引脚(pin);若有,则判断与当前机型和版本匹配的gpio配置信息集合c中是否有当前gpio引脚(pin)对应的配置信息。
83.在一些实施例中,所述判断与当前机型和版本匹配的gpio配置信息集合c中是否有当前gpio引脚(pin)对应的配置信息,包括:判断与当前机型和版本匹配的gpio配置信息
集合c中是否有当前gpio引脚(pin)对应的配置信息;若无,则使用bios默认的gpio配置信息集合中通用的(current)gpio引脚(pin)对应的配置信息设定当前gpio引脚(pin);若有,则使用与当前的机型和版本匹配的gpio配置信息集合c中通用的(current)gpio引脚(pin)对应的配置信息设定当前gpio引脚(pin)。
84.在一些实施例中,所述使用bios默认的gpio配置信息集合中通用的(current)gpio引脚(pin)对应的配置信息设定当前gpio引脚(pin)之后,或使用与当前的机型和版本匹配的gpio配置信息集合c中通用的(current)gpio引脚(pin)对应的配置信息设定当前gpio引脚(pin)之后,包括:判断当前gpio引脚(pin)是否遍历完成;若是,执行下一步;若否,将当前gpio pin指向下一引脚(pin)。
85.其中,该存储介质可以包括:只读存储器(rom,read only memory)、磁盘或sd卡等。
86.综上所述,与现有技术相比,本发明具有以下有益效果:一种bios与硬件机制交互设定gpio配置的方法及装置,包括:获取需要调整的gpio配置信息集合c,添加机型和版本信息生成gpio配置信息集合b;将所述gpio配置信息集合b转化成二进制文件,并将所述二进制文件烧录到电可擦只读存储器中;启动bios,读取电可擦只读存储器中的数据;判断所述数据中是否有与当前机型和版本匹配的gpio配置信息集合c;若无,则使用bios默认的gpio配置信息集合配置gpio;若有,则使用与当前的机型和版本匹配的gpio配置信息集合c配置gpio。针对需要修改的gpio配置信息进行修改,无需调整全部gpio,整合多个机型和版本信息,通用各种机型的bios,方便工程师对gpio进行调整。
87.显然,上述实施例仅仅是为清楚地说明所作的举例,而并非对实施方式的限定。对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式的变化或变动。这里无需也无法对所有的实施方式予以穷举。而由此所引伸出的显而易见的变化或变动仍处于本发明创造的保护范围之中。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1