本发明涉及电压适配器管理,尤其涉及一种通用的电压适配器管理方法、装置及存储介质。
背景技术:
1、一款复杂电子设备中,往往需要采用多款不同型号的电压适配器,它们可能来自于不同厂商,其硬件逻辑功能、寄存器访问方式等都不相同,这就给电压适配器的软件管理带来了困难。例如在ami实现的商用bmc中,对各类不同型号的电压适配器都是单独实现工具进行管理的。对于电压适配器固件程序的升级,目前各终端厂商还都是以采用离线烧录方式为主,这种方式要求烧录人员必须置身现场,使用烧录器逐台设备逐个电压适配器进行烧录。在大批量设备生成中,这种方式效率低下。ami商业bmc虽然实现了电压适配器固件程序软件在线升级工具,但其实现是基于每款电压适配器独立开发的,也就是系统下会同时存在多款针对不同电压适配器的升级工具,给客户对电压适配器的维护管理带来不便。同时,这也只是单纯的电压适配器固件升级工具,没有额外的电压适配器管理功能。
技术实现思路
1、为了解决上述技术问题或者至少部分地解决上述技术问题,本发明提供一种通用的电压适配器管理方法、装置及存储介质。
2、第一方面,本发明提供一种通用的电压适配器管理方法,基于电压适配器管理线程、电压适配器适配层和电压适配器动态库实现,包括:电压适配器管理线程基于电压适配器适配层和电压适配器动态库为所有在线电压适配器注册电压适配器管理操作结构体实例;获取待管理的目标电压适配器的i2c总线号和i2c地址;打开目标电压适配器对应的i2c设备文件节点,实现i2c参数配置;通过读取pmbus状态词寄存器判断目标电压适配器是否在线;在线则调用目标电压适配器的电压适配器管理操作结构体实例的硬件操作函数集或update函数以实现监控、更新或调试,完成后,释放资源关闭打开的i2c设备文件节点。
3、更进一步地,所述电压适配器适配层定义了电压适配器管理操作结构体,所述电压适配器管理操作结构体通过底层的电压适配器动态库进行实例化,其中,所述电压适配器管理操作结构体中定义的内容包括:电压适配器的唯一身份标识;电压适配器管理过程中打开的i2c设备文件描述符;功能;电压适配器的硬件操作函数集,用于获取各类不同的电压适配器的硬件数据;固件配置文件的本地存放路径;电压适配器固件升级的执行函数和资源链表链接;所述电压适配器适配层向底层电压适配器动态库提供了统一的电压适配器管理操作结构体实例的注册函数和注销函数;所述电压适配器适配层向上层功能实例层提供了统一的访问电压适配器硬件资源的函数接口;所述电压适配器适配层维护了管理电压适配器管理操作结构体实例的资源链表。
4、更进一步地,所述电压适配器动态库封装了电压适配器硬件的访问逻辑,提供资源初始化入口函数和资源释放出口函数;
5、其中,电压适配器硬件的访问逻辑包括:固件升级过程的逻辑控制、寄存器组织方式和读写权限控制;资源初始化入口函数调用注册函数实现电压适配器管理操作结构体实例注册,资源释放出口函数调用注销函数实现电压适配器管理操作结构体实例注销。
6、更进一步地,通过命令行指令配置执行电压适配器管理线程,以实现电压适配器的监控、更新和调试,其中,命令行指令配置的参数包括实现的功能、目标电压适配器的i2c总线号和i2c地址、目标电压适配器的产品型号、在目标电压适配器固件升级时指定的固件配置文件的存储位置和监控或调试时的控制参数。
7、更进一步地,实现监控功能的过程包括:电压适配器管理线程初始化创建支持对电压适配器硬件进行访问的socket服务器端,socket服务器端用于接收来自socket客户端的连接请求,而建立socket连接,在socket连接建立后通过电压适配器管理操作结构体实例获取电压适配器的数据并按照监控策略将数据发送给socket客户端。
8、更进一步地,socket客户端在发起实际数据获取前配置所述监控策略,所述监控策略包括:由socket客户端全权负责获取数据的时间周期和控制逻辑;以poll方式主动获取电压适配器数据并保存到本地缓存,socket客户端按自己节奏从本地缓存取数据,当本地缓存满时,如果socket客户端仍未及时取走数据,则覆盖掉最旧的一笔数据;当电压适配器驱动检测到异常数据时,通过异步信号的方式告知,进一步将异常数据发送给socket客户端。
9、更进一步地,实现更新功能的过程包括:接收待更新的目标电压适配器的产品型号和固件配置文件的存储位置参数;遍历资源链表,找到与产品型号相匹配的电压适配器管理操作结构体实例;以固件配置文件的存储位置为参数调用update函数发起固件升级流程。
10、更进一步地,所述固件升级流程中包含升级保障流程,所述升级保证流程包括:
11、通过mfrid确定目标电压适配器硬件型号和固件配置文件匹配;
12、通过目标电压适配器的otp剩余可编程次数是否低于设定阈值确定是否存在恶意升级,确认存在时,阻止升级过程;
13、通过文件校验码检验固件配置文件是否完整。
14、第二方面,本发明提供一种通用的电压适配器管理装置,包括:至少一处理单元,所述处理单元通过总线单元连接存储单元,所述存储单元存储计算机程序,所述计算机程序被所述处理单元执行时,实现所述的通用的电压适配器管理方法。
15、第三方面,本发明提供一种计算机可读存储介质,所述计算机可读存储介质存储计算机程序,所述计算机程序被处理器执行时,实现所述的通用的电压适配器管理方法。
16、本发明实施例提供的上述技术方案与现有技术相比具有如下优点:
17、本发明中,电压适配器管理线程基于电压适配器适配层和电压适配器动态库为所有在线的电压适配器注册电压适配器管理操作结构体实例,所述电压适配器管理操作结构体实例描述操作电压适配器硬件资源,能够实现电压适配器的硬件操作以实现监控、更新和调试功能。通过针对不同电压适配器创建的电压适配器管理操作结构体实例来实现电压适配器的监控、更新和调试,实现不同电压适配器管理的统一,便于管理。
18、本申请所述电压适配器动态库封装电压适配器硬件的访问逻辑,以构建所述电压适配器管理操作结构体实例。根据具体项目的实际硬件板级电压适配器资源配置情况,灵活裁剪或添加不同的电压适配器动态库,在确保覆盖所有板级电压适配器访问需求的前提下,能做到最大化精简软件资源。
19、本申请电压适配器适配层维护了一个管理设备中所有电压适配器的电压适配器管理操作结构体实例的资源链表,资源链表配合电压适配器管理操作结构体实例中的链接,方便全部电压适配器管理操作结构体实例依次调用,实现所有电压适配器的自动化管理。
20、本发明在实现监控功能时,支持socket客户端配置监控策略,满足不同的监控需求。
21、本发明在实现更新功能是,在固件升级流程上增加升级保障流程,以确保更新的固件配置文件准确无误。
1.一种通用的电压适配器管理方法,其特征在于,基于电压适配器管理线程、电压适配器适配层和电压适配器动态库实现,包括:电压适配器管理线程基于电压适配器适配层和电压适配器动态库为所有在线电压适配器注册电压适配器管理操作结构体实例;获取待管理的目标电压适配器的i2c总线号和i2c地址;打开目标电压适配器对应的i2c设备文件节点,实现i2c参数配置;通过读取pmbus状态词寄存器判断目标电压适配器是否在线;在线则调用目标电压适配器的电压适配器管理操作结构体实例的硬件操作函数集或update函数以实现监控、更新或调试,完成后,释放资源关闭打开的i2c设备文件节点。
2.根据权利要求1所述的通用的电压适配器管理方法,其特征在于,所述电压适配器适配层定义了电压适配器管理操作结构体,所述电压适配器管理操作结构体通过底层的电压适配器动态库进行实例化,其中,所述电压适配器管理操作结构体中定义的内容包括:电压适配器的唯一身份标识;电压适配器管理过程中打开的i2c设备文件描述符;功能;电压适配器的硬件操作函数集,用于获取各类不同的电压适配器的硬件数据;固件配置文件的本地存放路径;电压适配器固件升级的执行函数和资源链表链接;所述电压适配器适配层向底层电压适配器动态库提供了统一的电压适配器管理操作结构体实例的注册函数和注销函数;所述电压适配器适配层向上层功能实例层提供了统一的访问电压适配器硬件资源的函数接口;所述电压适配器适配层维护了管理电压适配器管理操作结构体实例的资源链表。
3.根据权利要求1所述的通用的电压适配器管理方法,其特征在于,所述电压适配器动态库封装了电压适配器硬件的访问逻辑,提供资源初始化入口函数和资源释放出口函数;
4.根据权利要求1所述的通用的电压适配器管理方法,其特征在于,通过命令行指令配置执行电压适配器管理线程,以实现电压适配器的监控、更新和调试,其中,命令行指令配置的参数包括实现的功能、目标电压适配器的i2c总线号和i2c地址、目标电压适配器的产品型号、在目标电压适配器固件升级时指定的固件配置文件的存储位置以及监控或调试时的控制参数。
5.根据权利要求1所述的通用的电压适配器管理方法,其特征在于,实现监控功能的过程包括:电压适配器管理线程初始化创建支持对电压适配器硬件进行访问的socket服务器端,socket服务器端用于接收来自socket客户端的连接请求,而建立socket连接,在socket连接建立后通过电压适配器管理操作结构体实例获取电压适配器的数据并按照监控策略将数据发送给socket客户端。
6.根据权利要求5所述的通用的电压适配器管理方法,其特征在于,socket客户端在发起实际数据获取前配置所述监控策略,所述监控策略包括:由socket客户端全权负责获取数据的时间周期和控制逻辑;以poll方式主动获取电压适配器数据并保存到本地缓存,socket客户端按自己节奏从本地缓存取数据,当本地缓存满时,如果socket客户端仍未及时取走数据,则覆盖掉最旧的一笔数据;当电压适配器驱动检测到异常数据时,通过异步信号的方式告知,进一步将异常数据发送给socket客户端。
7.根据权利要求1所述的通用的电压适配器管理方法,其特征在于,实现更新功能的过程包括:接收待更新的目标电压适配器的产品型号和固件配置文件的存储位置参数;遍历资源链表,找到与产品型号相匹配的电压适配器管理操作结构体实例;以固件配置文件的存储位置为参数调用update函数发起固件升级流程。
8.根据权利要求1所述的通用的电压适配器管理方法,其特征在于,所述固件升级流程中包含升级保障流程,所述升级保证流程包括:
9.一种通用的电压适配器管理装置,其特征在于,包括:至少一处理单元,所述处理单元通过总线单元连接存储单元,所述存储单元存储计算机程序,所述计算机程序被所述处理单元执行时,实现如权利要求1-8任一所述的通用的电压适配器管理方法。
10.一种计算机可读存储介质,所述计算机可读存储介质存储计算机程序,其特征在于,所述计算机程序被处理器执行时,实现如权利要求1-8任一项所述的通用的电压适配器管理方法。