CN116431190B - 一种固件升级方法、装置、bmc芯片、服务器及介质 - Google Patents
一种固件升级方法、装置、bmc芯片、服务器及介质 Download PDFInfo
- Publication number
- CN116431190B CN116431190B CN202310694567.2A CN202310694567A CN116431190B CN 116431190 B CN116431190 B CN 116431190B CN 202310694567 A CN202310694567 A CN 202310694567A CN 116431190 B CN116431190 B CN 116431190B
- Authority
- CN
- China
- Prior art keywords
- coprocessor
- firmware
- main processor
- control right
- bus
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 75
- 238000004891 communication Methods 0.000 claims abstract description 118
- 230000004044 response Effects 0.000 claims abstract description 19
- 230000015654 memory Effects 0.000 claims description 131
- 230000006870 function Effects 0.000 claims description 74
- 230000009977 dual effect Effects 0.000 description 7
- 230000005540 biological transmission Effects 0.000 description 6
- 238000010586 diagram Methods 0.000 description 5
- 230000007246 mechanism Effects 0.000 description 5
- 230000008569 process Effects 0.000 description 4
- 238000012545 processing Methods 0.000 description 4
- 230000003993 interaction Effects 0.000 description 3
- 230000003044 adaptive effect Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/24—Handling requests for interconnection or transfer for access to input/output bus using interrupt
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7807—System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
- G06F15/7821—Tightly coupled to memory, e.g. computational memory, smart memory, processor in memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/542—Event management; Broadcasting; Multicasting; Notifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/544—Buffers; Shared memory; Pipes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- Computer Security & Cryptography (AREA)
- Multimedia (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Multi Processors (AREA)
Abstract
本发明涉及计算机技术领域,公开了一种固件升级方法、装置、BMC芯片、服务器及介质,方法包括:协处理器上电加载协处理器系统,并初始化与主处理器的核间通信;主处理器上电加载主处理器系统,并通过加载总线驱动释放总线控制权;主处理器发送总线控制权释放消息到协处理器;协处理器响应于总线控制权释放消息,接管总线控制权;主处理器发送新固件以及固件升级消息到协处理器;协处理器响应于固件升级消息,通过总线将新固件写入对应的服务器硬件模块,以对服务器硬件模块的固件进行升级。本发明通过协处理器完成了固件升级任务,减轻主处理器开销,提升了BMC的整体性能。
Description
技术领域
本发明涉及计算机技术领域,具体涉及一种固件升级方法、装置、BMC芯片、服务器及介质。
背景技术
基板管理控制器(Board Management Controller,BMC)是一种对服务器进行设备信息管理、状态监控、远程控制和维护管理的控制器芯片。随着BMC的不断更新换代,新一代的BMC芯片AST2600在性能上较前一代有显著提升,为服务器主板实现更多功能提供了可能性。 AST2600芯片提供了3个ARM处理器,处理器数量相比上一代产品增加了2个,具体包括两个Cortex A7主处理器和一个Cortex M3协处理器。目前,类似于这种多处理器的BMC芯片对服务器的相关固件进行升级均是通过主处理器(如Cortex A7)完成,协处理器(例如Cortex M3)处于空闲状态,针对协处理器的有效使用一直是个难题,使主处理器任务繁重,BMC芯片整体性能低下。
发明内容
有鉴于此,本发明提供了一种固件升级方法、装置、BMC芯片、服务器及介质,以解决协处理器在固件升级时使用率低,使主处理器任务繁重,BMC芯片整体性能低下的问题。
第一方面,本发明提供了一种固件升级方法,应用于协处理器,方法包括:上电加载协处理器系统,并与主处理器建立核间通信;接收主处理器发送的总线控制权释放消息,总线控制权释放消息是主处理器上电加载主处理器系统后,通过加载总线驱动释放了总线控制权发送的通知消息;响应于总线控制权释放消息,接管总线控制权;接收主处理器发送的新固件以及固件升级消息;响应于固件升级消息,通过总线将新固件写入对应的服务器硬件模块,以对服务器硬件模块的固件进行升级。
本实施例在协处理器中预先部署协处理器的操作系统,在协处理器上电启动系统后,令协处理器能够主动建立与主处理器的核间通信,主处理器上电启动系统后,令主处理器释放总线控制权,从而通过协处理器与主处理器的核间通信发送释放控制权的通知消息到协处理器,以使协处理器及时接管总线控制权。进而当主处理器接收到固件升级任务时,主处理器可以将新固件发送给协处理器,以使接管了总线控制权的协处理器执行固件升级,对于协处理器分担主核任务提供了新的方向,以双系统架构完成固件升级任务,分担了主处理器的任务,减轻主处理器开销,提升了BMC的整体性能。
在一种可选地实施方式中,协处理器通过初始化的方式与主处理器建立核间通信,具体包括:配置共享内存以及中断信号格式,共享内存用于主处理器和协处理器共同进行读写数据,中断信号格式用于主处理器和协处理器互相发送对应格式的中断信号以通知对方从共享内存中读数据;设置中断使能,以开启中断。
在本实施例中,协处理器在上电启动协处理器系统后通过配置共享内存以及中断信号格式来初始化与主处理器的通信,其中中断信号用于互相通知双方从共享内存中读取数据,中断信号格式在协处理器系统和主处理器系统中配置相同。通过共享内存的方式便于占有一定存储空间的固件在双核之间稳定传输,相比双核之间仅仅利用信号机制完成通信,固件的传输过程更加稳定可靠。
在一种可选地实施方式中,接收主处理器发送的总线控制权释放消息,包括:接收主处理器发送的第一中断信号,第一中断信号是主处理器通过预设的核间通信驱动函数将总线控制权释放消息存入共享内存之后发送的中断信号;响应于第一中断信号,通过预设的核间通信驱动函数从共享内存中读取总线控制权释放消息。
在本实施例中,通过核间中断和共享内存传递总线控制权释放消息,保证了总线控制权释放消息的稳定传输。同时,令协处理器根据总线控制权释放消息知晓主处理器系统已经释放了总线控制权,从而协处理器能够接管总线控制权,进而通过总线与服务器硬件模块进行通信,控制服务器硬件模块的固件升级,提高了协处理器的利用率,提升BMC的整体性能。
在一种可选地实施方式中,接收主处理器发送的新固件以及固件升级消息,包括:接收主处理器发送的第二中断信号,第二中断信号是主处理器通过预设的核间通信驱动函数将新固件和固件升级消息存入共享内存之后发送的中断信号;响应于第二中断信号,通过预设的核间通信驱动函数从共享内存中读取新固件和固件升级消息。
在本实施例中,当协处理器接管了总线控制权后,主处理器根据收到的固件升级任务通过第二中断信号和共享内存将新固件稳定传递给协处理器,以使协处理器利用总线向服务器硬件模块写入新固件,覆盖旧固件,从而实现了基于协处理器的固件升级任务,提高了协处理器的利用率,提升BMC的整体性能。
在一种可选地实施方式中,在接收主处理器发送的新固件以及固件升级消息之前,方法还包括:通过总线从待升级的服务器硬件模块中读取旧固件信息;通过预设的核间通信驱动函数将旧固件信息写入共享内存;发送第三中断信号到主处理器,以使主处理器响应于第三中断信号,通过预设的核间通信驱动函数从共享内存中读取旧固件信息,并将旧固件信息保存在主处理器系统关联的数据库中。
在本实施例中,当协处理器接管了访问服务器硬件模块的总线控制权后,还从待升级的服务器硬件模块中读取已安装的旧固件信息,同样通过中断信号和共享内存将旧固件信息传递到主处理器,主处理器将接收到的旧固件信息保存在主处理器系统关联的数据库中,能够对服务器硬件模块的历史固件版本和升级记录进行留档,便于用户后期问题溯源时灵活调取。
在一种可选地实施方式中,方法还包括:当服务器硬件模块的固件升级完成时,通过总线从服务器硬件模块中读取当前固件信息;通过核间通信驱动函数向共享内存写入升级结束消息和当前固件信息;发送第四中断信号到主处理器,以使主处理器响应于第四中断信号,通过预设的核间通信驱动函数从共享内存中读取升级结束消息和当前固件信息,并使主处理器响应于升级结束消息,将当前固件信息与数据库中保存的旧固件信息进行比对,同时根据比对结果判断升级是否成功。
本实施例基于上述主处理器系统数据库中保存的旧固件信息,每当新固件升级完成时,协处理器还读取升级之后的服务器硬件模块的当前固件信息,从而将当前固件信息发送到主处理器,以使主处理器将当前固件信息和数据库中升级之前的旧固件信息进行比对,从而能够根据比对结果判断升级是否成功,当固件信息比对不一致时,表示服务器硬件模块的固件升级成功,当固件信息比对一致时,表示升级失败,需要重新升级,从而进一步提高了固件升级的稳定性可靠性。
在一种可选地实施方式中,协处理器系统是实时操作系统。
在本发明实施例中,为协处理器安装实时操作系统,得益于实时操作系统免费且轻量级低功耗的优点,与协处理器的性能更加适配,有效使用提供了可靠性更高的方案。另外得益于实时操作系统体量小、启动快的优点,使协处理器的操作系统比主处理器的操作系统上电启动更早,当协处理器初始化核间通信完成时,主处理器恰好可以执行切换总线控制权的任务,提高了主处理器和协处理器的协同工作效率。
在一种可选地实施方式中,总线是I2C总线,接管总线控制权,包括:通过配置系统控制单元寄存器使能服务器硬件模块的I2C总线;配置服务器硬件模块的 I2C相关寄存器,获得服务器硬件模块的I2C总线的控制权。
本发明实施例采用I2C总线控制服务器硬件模块,基于此,本实施例令主处理器在启动后将服务器硬件模块的一路I2C总线直接禁用,从而释放该条总线的控制权,协处理器需要重新对该条I2C总线配置,从而通过I2C总线访问服务器硬件模块。在没有配置之前,服务器硬件模块的引脚是简单的输入输出接口,不具备I2C总线的通信功能,故通过系统控制单元寄存器去完成I2C总线功能的复用配置,从而将服务器硬件模块引脚通过寄存器配置设置成I2C功能。设置成功后,对I2C寄存器进行配置,完成对I2C总线的调试。配置成功后,即可实现协处理器通过I2C总线与服务器硬件模块进行数据交互,进而实现了I2C总线控制权在主处理器和协处理器之间的切换。
第二方面,本发明提供了一种固件升级方法,应用于主处理器,方法包括:上电加载主处理器系统,并通过加载总线驱动释放总线控制权;当协处理器上电加载协处理器系统并与主处理器的核间通信建立完成时,发送总线控制权释放消息到协处理器,以使协处理器响应于总线控制权释放消息,接管总线控制权;发送新固件以及固件升级消息到协处理器,以使协处理器响应于固件升级消息,通过总线将新固件写入对应的服务器硬件模块,以对服务器硬件模块的固件进行升级。
本实施例在协处理器中预先部署协处理器的操作系统,在协处理器上电启动系统后,令协处理器能够主动建立与主处理器的核间通信,主处理器上电启动系统后,令主处理器释放总线控制权,从而通过协处理器与主处理器的核间通信发送释放控制权的通知消息到协处理器,以使协处理器及时接管总线控制权。进而当主处理器接收到固件升级任务时,主处理器可以将新固件发送给协处理器,以使接管了总线控制权的协处理器执行固件升级,对于协处理器分担主核任务提供了新的方向,以双系统架构完成固件升级任务,分担了主处理器的任务,减轻主处理器开销,提升了BMC的整体性能。
在一种可选地实施方式中,协处理器通过初始化的方式与主处理器建立核间通信,具体方式为:协处理器通过配置共享内存以及中断信号格式,并设置中断使能来初始化与主处理器的核间通信,共享内存用于主处理器和协处理器共同进行读写数据,中断信号格式用于主处理器和协处理器互相发送对应格式的中断信号以通知对方从共享内存中读数据;主处理器发送总线控制权释放消息到协处理器,包括:通过预设的核间通信驱动函数将总线控制权释放消息存入共享内存;发送的第一中断信号到协处理器,以使协处理器响应于第一中断信号,通过预设的核间通信驱动函数从共享内存中读取总线控制权释放消息。
在本实施例中,协处理器在上电启动协处理器系统后通过配置共享内存以及中断信号格式来初始化与主处理器的通信,其中中断信号用于互相通知双方从共享内存中读取数据,中断信号格式在协处理器系统和主处理器系统中配置相同。通过共享内存的方式便于占有一定存储空间的固件在双核之间稳定传输,相比双核之间仅仅利用信号机制完成通信,固件的传输过程更加稳定可靠。之后,通过核间中断和共享内存传递总线控制权释放消息,保证了总线控制权释放消息的稳定传输。同时,令协处理器根据总线控制权释放消息知晓主处理器系统已经释放了总线控制权,从而协处理器能够接管总线控制权,进而通过总线与服务器硬件模块进行通信,控制服务器硬件模块的固件升级,提高了协处理器的利用率,提升BMC的整体性能。
在一种可选地实施方式中,在主处理器系统中部署了前端界面,前端界面用于客户端远程访问主处理器系统,发送新固件以及固件升级消息到协处理器,包括:接收客户端通过前端界面上传的新固件;对新固件进行校验;将固件升级消息和校验完成的新固件通过核间通信驱动函数存入共享内存;发送第二中断信号到协处理器,以使协处理器响应于第二中断信号,通过核间通信驱动函数从共享内存中读取新固件和固件升级消息。
在本实施例中,还基于主处理器系统中部署了前端界面,用户可通过任意计算机设备登录前端界面,并通过前端界面远程上传新固件到主处理器,以使主处理器接收到固件升级任务,提高了固件升级的灵活性。之后,当协处理器接管了总线控制权后,主处理器根据收到的固件升级任务通过第二中断信号和共享内存将新固件稳定传递给协处理器,以使协处理器利用总线向服务器硬件模块写入新固件,覆盖旧固件,从而实现了基于协处理器的固件升级任务,提高了协处理器的利用率,提升BMC的整体性能。
在一种可选地实施方式中,在发送新固件以及固件升级消息到协处理器之前,方法还包括:接收协处理器发送的第三中断信号,第三中断信号是协处理器通过总线从待升级的服务器硬件模块中读取了旧固件信息,并将旧固件信息通过预设的核间通信驱动函数写入共享内存后发出的中断信号;响应于第三中断信号,通过核间通信驱动函数从共享内存中读取旧固件信息;将旧固件信息保存在主处理器系统关联的数据库中。
在本实施例中,当协处理器接管了访问服务器硬件模块的总线控制权后,还从待升级的服务器硬件模块中读取已安装的旧固件信息,同样通过中断信号和共享内存将旧固件信息传递到主处理器,主处理器将接收到的旧固件信息保存在主处理器系统关联的数据库中,能够对服务器硬件模块的历史固件版本和升级记录进行留档,便于用户后期问题溯源时灵活调取。
在一种可选地实施方式中,方法还包括:接收协处理器发送的第四中断信号,第四中断信号是当服务器硬件模块的固件升级完成时,协处理器通过总线从服务器硬件模块中读取了当前固件信息,并通过核间通信驱动函数向共享内存写入升级结束消息和当前固件信息后发出的中断信号;响应于第四中断信号,通过预设的核间通信驱动函数从共享内存中读取升级结束消息和当前固件信息;响应于升级结束消息,将当前固件信息与数据库中保存的旧固件信息进行比对,同时根据比对结果判断升级是否成功。
本实施例基于上述主处理器系统数据库中保存的旧固件信息,每当新固件升级完成时,协处理器还读取升级之后的服务器硬件模块的当前固件信息,从而将当前固件信息发送到主处理器,以使主处理器将当前固件信息和数据库中升级之前的旧固件信息进行比对,从而能够根据比对结果判断升级是否成功,当固件信息比对不一致时,表示服务器硬件模块的固件升级成功,当固件信息比对一致时,表示升级失败,需要重新升级,从而进一步提高了固件升级的稳定性可靠性。
在一种可选地实施方式中,在主处理器系统中部署了前端界面,前端界面用于客户端远程访问主处理器系统,方法还包括:接收客户端通过前端界面发送的查看更新历史请求;响应于查看更新历史请求,将数据库中保存的历史固件信息按照时间顺序展示在前端界面中,以使客户端通过访问前端界面查看历史固件信息。
本发明实施例还根据客户的请求将数据库中保存的历史固件信息按照时间顺序展示在前端界面中,以使用户通过计算机设备远程访问前端界面查看历史固件信息,实现随时随地远程排查问题的效果,解决了异地排查问题不及时的问题。
第三方面,本发明提供了一种固件升级方法,方法包括:协处理器上电加载协处理器系统,并与主处理器建立核间通信;主处理器上电加载主处理器系统,并通过加载总线驱动释放总线控制权;当协处理器上电加载协处理器系统并与主处理器的核间通信建立完成时,主处理器发送总线控制权释放消息到协处理器;协处理器接收主处理器发送的总线控制权释放消息;协处理器响应于总线控制权释放消息,接管总线控制权;主处理器发送新固件以及固件升级消息到协处理器;协处理器接收主处理器发送的新固件以及固件升级消息;协处理器响应于固件升级消息,通过总线将新固件写入对应的服务器硬件模块,以对服务器硬件模块的固件进行升级。
在一种可选地实施方式中,所述协处理器与所述主处理器建立核间通信的步骤包括:所述协处理器配置共享内存以及中断信号格式,所述共享内存用于主处理器和协处理器共同进行读写数据,所述中断信号格式用于主处理器和协处理器互相发送对应格式的中断信号以通知对方从所述共享内存中读数据;所述协处理器设置中断使能,以开启中断。。
在一种可选地实施方式中,所述主处理器发送总线控制权释放消息到协处理器,包括:所述主处理器通过预设的核间通信驱动函数将所述总线控制权释放消息存入所述共享内存;所述主处理器发送第一中断信号到协处理器。
在一种可选地实施方式中,所述协处理器接收主处理器发送的总线控制权释放消息,包括:所述协处理器接收主处理器发送的第一中断信号;所述协处理器响应于所述第一中断信号,通过预设的核间通信驱动函数从所述共享内存中读取所述总线控制权释放消息。
在一种可选地实施方式中,在所述主处理器系统中部署了前端界面,所述前端界面用于客户端远程访问所述主处理器系统,所述主处理器发送新固件以及固件升级消息到协处理器,包括:接收客户端通过所述前端界面上传的新固件;对所述新固件进行校验;将固件升级消息和校验完成的新固件通过所述核间通信驱动函数存入所述共享内存;发送第二中断信号到协处理器。
在一种可选地实施方式中,所述协处理器接收所述主处理器发送的新固件以及固件升级消息,包括:所述协处理器接收主处理器发送的第二中断信号;所述协处理器响应于所述第二中断信号,通过预设的核间通信驱动函数从所述共享内存中读取所述新固件和所述固件升级消息。
在一种可选地实施方式中,在所述协处理器接收主处理器发送的新固件以及固件升级消息之前,所述方法还包括:所述协处理器通过总线从待升级的服务器硬件模块中读取旧固件信息;所述协处理器通过预设的核间通信驱动函数将所述旧固件信息写入所述共享内存;所述协处理器发送第三中断信号到主处理器。
在一种可选地实施方式中,在所述主处理器发送新固件以及固件升级消息到协处理器之前,所述方法还包括:所述主处理器接收协处理器发送的第三中断信号;所述主处理器响应于所述第三中断信号,通过所述核间通信驱动函数从所述共享内存中读取所述旧固件信息;所述主处理器将所述旧固件信息保存在所述主处理器系统关联的数据库中。
在一种可选地实施方式中,所述方法还包括:当所述服务器硬件模块的固件升级完成时,所述协处理器通过总线从所述服务器硬件模块中读取当前固件信息;所述协处理器通过所述核间通信驱动函数向所述共享内存写入升级结束消息和所述当前固件信息;所述协处理器发送第四中断信号到主处理器。
在一种可选地实施方式中,所述方法还包括:主处理器接收协处理器发送的第四中断信号;主处理器响应于所述第四中断信号,通过预设的核间通信驱动函数从所述共享内存中读取所述升级结束消息和所述当前固件信息;主处理器响应于所述升级结束消息,将所述当前固件信息与所述数据库中保存的旧固件信息进行比对,同时根据比对结果判断升级是否成功。
在一种可选地实施方式中,在所述主处理器系统中部署了前端界面,所述前端界面用于客户端远程访问所述主处理器系统,所述方法还包括:接收客户端通过所述前端界面发送的查看更新历史请求;响应于所述查看更新历史请求,将所述数据库中保存的历史固件信息按照时间顺序展示在所述前端界面中,以使客户端通过访问所述前端界面查看所述历史固件信息。
在一种可选地实施方式中,所述协处理器系统是实时操作系统。
在一种可选地实施方式中,所述总线是I2C总线,所述协处理器响应于所述总线控制权释放消息,接管总线控制权,包括:协处理器通过配置系统控制单元寄存器使能所述服务器硬件模块的I2C总线;协处理器配置所述服务器硬件模块的 I2C相关寄存器,获得所述服务器硬件模块的I2C总线的控制权。
第四方面,本发明提供了一种固件升级装置,应用于协处理器,装置包括:初始化模块,用于上电加载协处理器系统,并初始化与主处理器的核间通信;控制权消息接收模块,用于接收主处理器发送的总线控制权释放消息,总线控制权释放消息是主处理器上电加载主处理器系统后,通过加载总线驱动释放了总线控制权发送的通知消息;控制权接管模块,用于响应于总线控制权释放消息,接管总线控制权;固件接收模块,用于接收主处理器发送的新固件以及固件升级消息;固件升级模块,用于响应于固件升级消息,通过总线将新固件写入对应的服务器硬件模块,以对服务器硬件模块的固件进行升级。
第五方面,本发明提供了一种固件升级装置,应用于主处理器,装置包括:控制权释放模块,用于上电加载主处理器系统,并通过加载总线驱动释放总线控制权;控制权消息发送模块,用于当协处理器上电加载协处理器系统并初始化与主处理器的核间通信完成时,发送总线控制权释放消息到协处理器,以使协处理器响应于总线控制权释放消息,接管总线控制权;固件发送模块,用于发送新固件以及固件升级消息到协处理器,以使协处理器响应于固件升级消息,通过总线将新固件写入对应的服务器硬件模块,以对服务器硬件模块的固件进行升级。
第六方面,本发明提供了一种BMC芯片,包括:协处理器、主处理器和存储器,存储器分别与协处理器和主处理器之间互相通信连接,存储器中存储有计算机指令,协处理器通过执行计算机指令,从而执行上述第一方面或其对应的任一实施方式的方法,主处理器通过执行计算机指令,从而执行上述第二方面或其对应的任一实施方式的方法。
第七方面,本发明提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机指令,计算机指令用于使计算机执行上述第一方面、第二方面或其对应的任一实施方式的方法。
第八方面,一种服务器,包含服务器主板和BMC芯片,所述BMC芯片与所述服务器主板上的各个硬件模块通信连接,所述BMC芯片中存储有计算机指令,所述BMC芯片通过执行所述计算机指令,用于使BMC芯片执行上述第一方面、第二方面或其对应的任一实施方式的方法
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是根据本发明实施例的一种固件升级方法的第一个流程示意图;
图2是根据本发明实施例的一种固件升级方法的第二个流程示意图;
图3是根据本发明实施例的一种固件升级方法的第三个流程示意图;
图4是根据本发明实施例的一种固件升级方法的第四个流程示意图;
图5是根据本发明实施例的一种固件升级方法的第五个流程示意图;
图6是根据本发明实施例的一种固件升级方法的第六个流程示意图;
图7是根据本发明实施例的一种固件升级装置的结构示意图;
图8是根据本发明实施例的一种固件升级装置的另一个结构示意图;
图9是本发明实施例的BMC芯片的硬件结构示意图;
图10是本发明实施例的一种服务器的硬件结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
新一代的BMC芯片AST2600提供了3个ARM处理器,处理器数量相比上一代产品增加了2个,具体包括两个Cortex A7主处理器和一个Cortex M3协处理器,在未来,多处理器核心的BMC芯片应当逐渐成为主流。目前,类似于这种多处理器的BMC芯片对服务器的相关固件进行升级均是通过主处理器完成的,协处理器处于空闲状态。以AST2600的使用为例,主处理器Cortex A7中部署了linux操作系统,协处理器Cortex M3没有部署任何操作系统,Cortex M3只为辅助主处理器Cortex A7执行一些简单的计算工作。当需要对服务器某些硬件模块的固件需要升级时,Cortex A7响应于收到的固件升级请求,将收到的新固件通过总线写入到对应的服务器硬件模块中,从而实现服务器硬件模块的升级。因此,针对协处理器的有效使用一直是个难题,协处理器的资源没有得到充分使用,绝大多数任务都是主处理器在执行,固件升级这类小型任务也不例外,从而使主处理器任务繁重,BMC芯片整体性能低下。为了解决提高BMC芯片的整体性能,本申请提供了如下方案。
根据本发明实施例,提供了一种固件升级方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
在本实施例中提供了一种固件升级方法,可用于上述的BMC芯片,图1是根据本发明实施例的一种固件升级方法的流程图,如图1所示,其中步骤S101至步骤S105应用于协处理器,步骤S111至步骤S113应用于主处理器,该流程具体包括如下步骤:
步骤S101,上电加载协处理器系统,并与主处理器建立核间通信;
步骤S111,上电加载主处理器系统,并通过加载总线驱动释放总线控制权;
步骤S112,当协处理器上电加载协处理器系统并与主处理器的核间通信建立完成时,发送总线控制权释放消息到协处理器;
步骤S102,接收主处理器发送的总线控制权释放消息;
步骤S103,响应于总线控制权释放消息,接管总线控制权;
步骤S113,发送新固件以及固件升级消息到协处理器;
步骤S104,接收主处理器发送的新固件以及固件升级消息;
步骤S105,响应于固件升级消息,通过总线将新固件写入对应的服务器硬件模块,以对服务器硬件模块的固件进行升级。
具体地,为了提高BMC芯片的利用率,从而实现一种基于协处理器的固件升级方案,本实施例在协处理器中预先部署了协处理器操作系统。其中,协处理器操作系统的系统内核并不做特殊限定,包括但不限于Windows内核、linux内核、ios内核等。在一个具体地实施例中,本发明实施例采用实时操作系统(Real Time Operating System,RTOS),RTOS是当外界事件或数据产生时,能够接受并以足够快的速度予以处理,其处理的结果又能在规定的时间之内来控制生产过程或对处理系统做出快速响应,调度一切可利用的资源完成实时任务,并控制所有实时任务协调一致运行的操作系统。得益于实时操作系统免费且轻量级低功耗的优点,与协处理器较低的性能更加适配,使RTOS在协处理器上运行更加流畅,为Cortex M3等协处理器的有效使用提供了可靠性更高的方案。另外得益于实时操作系统体量小、启动快的优点,使协处理器的操作系统比主处理器的操作系统上电启动更早,后续步骤可令协处理器优先初始化核间通信,并在核间通信初始化完成时,主处理器恰好可以执行切换总线控制权的任务,提高了主处理器和协处理器的协同工作效率。
在协处理器上电启动系统后,令协处理器主动初始化与主处理器的核间通信,使主处理器与协处理器能够进行数据交互。初始化核间通信的手段可以基于Mailbox直接创建主处理器和协处理器之间的通信通道,类似于主处理器和协处理器双方均有一个用于接收消息的邮箱,双方向对方发送邮件实现通信;另外主处理器和协处理器还可以通过预定义的协议以共享内存的方式完成大数据通信。当主处理器上电启动系统后,通过预先安装在主处理器系统内的总线驱动令主处理器释放总线控制权,其中,总线包括但不限于I2C总线、SCI总线、SPI总线。在一具体实施例中,当BMC芯片为AST2600时,总线指的是I2C总线,但是随着BMC芯片技术的发展,未来新的多核BMC芯片也能够通过其他类型的总线与服务器硬件模块进行通信,从而其他类型的总线应当也落入本申请的保护范围之中,本申请对具体的总线类型不做特殊限定。之后,主处理器通过协处理器与主处理器的核间通信机制发送总线控制权释放消息到协处理器,以使协处理器知晓主处理器已经不与服务器硬件模块通信,从而及时接管总线控制权,以协处理器和服务器硬件模块进行通信。进而当主处理器接收到固件升级任务时,主处理器可以将接收到的新固件发送给协处理器,以使接管了总线控制权的协处理器执行固件升级,对于协处理器分担主核任务提供了新的方向,以双系统架构完成固件升级任务,分担了主处理器的任务,减轻主处理器开销,提升了BMC的整体性能。
在一些可选地实施方式中,当总线是I2C总线时,上述步骤S103包括:
步骤a1,通过配置系统控制单元寄存器使能服务器硬件模块的I2C总线;
步骤a2,配置服务器硬件模块的 I2C相关寄存器,获得服务器硬件模块的I2C总线的控制权。
具体地,在一个具体地实施例中,采用 I2C总线控制服务器硬件模块,基于此,本实施例令主处理器在启动后将服务器硬件模块的一路I2C总线直接禁用,从而释放该条总线的控制权,协处理器需要重新对该条I2C总线配置,从而通过I2C总线访问服务器硬件模块。在没有配置之前,服务器硬件模块的引脚是简单的输入输出接口,该接口可复用多种功能,起初用于输入输出一些通用电平信号,不具备I2C总线的通信功能,故通过BMC一侧的系统控制单元(System Control Units,SCU)寄存器去完成I2C总线功能的复用配置,从而将服务器硬件模块引脚通过寄存器配置设置成I2C功能。设置成功后,对I2C寄存器进行配置,例如总线的通信频率、通信地址等等,从而完成对I2C总线的调试。配置成功后,即可实现协处理器通过I2C总线与服务器硬件模块进行数据交互,进而实现了I2C总线控制权在主处理器和协处理器之间的切换。
在一些可选地实施方式中,上述步骤S101包括:
步骤a1,配置共享内存以及中断信号格式,共享内存用于主处理器和协处理器共同进行读写数据,中断信号格式用于主处理器和协处理器互相发送对应格式的中断信号以通知对方从共享内存中读数据;
步骤a2,设置中断使能,以开启中断。
具体地,本发明通过接口协议的方式令协处理器初始化了核间通信,协处理器需配置中断信号格式,该中断信号格式在协处理器系统和主处理器系统中配置相同,例如:假设XXXX1信号代表释放总线控制权的任务,XXXX2信号代表固件传输的任务。协处理器还在BMC的内存模块中划分出一块独立的存储空间作为共享内存,共享内存用于主处理器和协处理器共同读写数据,通过共享内存的方式便于占有一定存储空间的固件在双核之间稳定传输。主处理器和协处理器均通过接口协议的方式,使用预设的核间通信驱动函数按照规定的数据格式向共享内存中写数据,并用预设的核间通信驱动函数按照规定的数据格式从共享内存中读数据。与双核之间仅仅利用信号机制完成通信的方式相比,随着系统逐渐复杂,代码量逐渐增加,无协议的数据通信给编程和理解都带来很大问题,降低系统的可扩展性能。本发明实施例在初始化核间通信时双核通信可以采用和系统外设相同的通信协议,从而可以重复利用协议解析核间通信驱动函数,同时也可提高可移植性。另外可根据实际需要自行定义适用的通信协议,或者将通用的通信协议做适当的修改以更适应共享内存大数据量的数据通信。关于通信接口的软件封装通常定义数据发送函数、数据接收函数、协议解析函数等,原则是接口应尽量精简,最大程度降低双核间的耦合度,提高了固件传输的稳定性和可靠性。
在一些可选地实施方式中,如图2所示,上述步骤S102包括步骤S201和步骤S202,上述步骤S112包括步骤S211和步骤S212,具体步骤如下:
步骤S211,通过预设的核间通信驱动函数将总线控制权释放消息存入共享内存;
步骤S212,发送的第一中断信号到协处理器;
步骤S201,接收主处理器发送的第一中断信号;
步骤S202,响应于第一中断信号,通过预设的核间通信驱动函数从共享内存中读取总线控制权释放消息。
具体地,在本实施例中,通过核间中断机制和共享内存传递总线控制权释放消息,保证了总线控制权释放消息的稳定传输。同时,令协处理器根据接收到的总线控制权释放消息及时知晓主处理器系统已经释放了总线控制权,从而协处理器能够在第一时间接管总线控制权,进而通过总线与服务器硬件模块进行通信,控制服务器硬件模块的固件升级,提高了协处理器的利用率,提升BMC的整体性能。
在一些可选地实施方式中,如图3所示,在主处理器系统中部署了前端界面,前端界面用于客户端远程访问主处理器系统,上述步骤S113包括步骤S311至步骤S314,上述步骤S104包括步骤S301和步骤S302,具体步骤如下:
步骤S311,接收客户端通过前端界面上传的新固件;
步骤S312,对新固件进行校验;
步骤S313,将固件升级消息和校验完成的新固件通过核间通信驱动函数存入共享内存;
步骤S314,发送第二中断信号到协处理器;
步骤S301,接收主处理器发送的第二中断信号;
步骤S302,响应于第二中断信号,通过预设的核间通信驱动函数从共享内存中读取新固件和固件升级消息。
具体地,在本实施例中,还在主处理器系统中部署了前端界面,用户可通过任意计算机设备通过浏览器输入预定的网址,登录UI形式的前端界面,并通过前端界面选取计算机设备本地保存的新固件,点击上传来远程上传新固件到主处理器,以使主处理器接收到固件升级任务,提高了固件升级的灵活性。之后,考虑到用户通过计算机设备上传的新固件往往是压缩包格式,从而主处理器还需对新固件进行校验,去除打包格式中的特定字段,将新固件文件恢复为固件原本的格式类型。然后,主处理器根据收到的固件升级任务通过第二中断信号和共享内存将新固件稳定传递给协处理器,在协处理器接管了总线控制权的条件下,使协处理器利用总线向服务器硬件模块写入新固件,覆盖旧固件,从而实现了基于协处理器的固件升级任务,提高了协处理器的利用率,提升了BMC的整体性能。
在一些可选地实施方式中,如图4所示,在上述步骤S113之前,本发明实施例提供的方法还包括步骤S401至步骤S403,步骤S411至步骤S413,其中步骤S401至步骤S403应用于协处理器,步骤S411至步骤S413应用于主处理器,具体步骤如下:
步骤S401,通过总线从待升级的服务器硬件模块中读取旧固件信息;
步骤S402,通过预设的核间通信驱动函数将旧固件信息写入共享内存;
步骤S403,发送第三中断信号到主处理器。
步骤S411,接收协处理器发送的第三中断信号;
步骤S412,响应于第三中断信号,通过核间通信驱动函数从共享内存中读取旧固件信息;
步骤S413,将旧固件信息保存在主处理器系统关联的数据库中。
具体地,在本实施例中,当协处理器接管了访问服务器硬件模块的总线控制权后,还从待升级的服务器硬件模块中读取已安装的旧固件信息,同样通过中断信号和共享内存将旧固件信息传递到主处理器,主处理器将接收到的旧固件信息保存在主处理器系统关联的数据库中,例如Cortex A7采用了linux系统,其系统下挂载了redis数据库,从而将旧固件信息存入redis数据库中,存入的固件信息包括不限于固件版本号、固件名称、固件大小。通过这一方式,能够对服务器硬件模块的历史固件版本和升级记录进行留档,便于用户后期问题溯源时灵活调取。另外,还能够在更新后,基于redis数据库中保存的旧固件信息验证是否升级成功,从而进一步提高固件升级的可靠性。
在一些可选地实施方式中,如图5所示,本申请提供的一种固件升级方法,还包括步骤S501至步骤S503,步骤S511至步骤S513,其中步骤S501至步骤S503应用于协处理器,步骤S511至步骤S513应用于主处理器,具体步骤如下:
步骤S501,当服务器硬件模块的固件升级完成时,通过总线从服务器硬件模块中读取当前固件信息;
步骤S502,通过核间通信驱动函数向共享内存写入升级结束消息和当前固件信息;
步骤S503,发送第四中断信号到主处理器;
步骤S511,接收协处理器发送的第四中断信号;
步骤S512,响应于第四中断信号,通过预设的核间通信驱动函数从共享内存中读取升级结束消息和当前固件信息;
步骤S513,响应于升级结束消息,将当前固件信息与数据库中保存的旧固件信息进行比对,同时根据比对结果判断升级是否成功。
具体地,本实施例基于上述主处理器系统数据库中保存的旧固件信息,每当新固件升级完成时,协处理器还读取升级之后的服务器硬件模块的当前固件信息,从而将当前固件信息发送到主处理器,以使主处理器将当前固件信息和数据库中升级之前的旧固件信息进行比对,从而能够根据比对结果判断升级是否成功,当固件信息比对不一致时,表示服务器硬件模块的固件升级成功,当固件信息比对一致时,表示升级失败,需要重新升级,从而进一步提高了固件升级的稳定性可靠性。
在一些可选地实施方式中,本发明提供的一种固件升级方法,还包括如下步骤:
步骤b1,接收客户端通过前端界面发送的查看更新历史请求;
步骤b2,响应于查看更新历史请求,将数据库中保存的历史固件信息按照时间顺序展示在前端界面中,以使客户端通过访问前端界面查看历史固件信息。
具体地,本发明实施例还可以根据客户的查看更新历史请求将数据库中保存的历史固件信息按照时间顺序展示在前端界面中,以使用户通过计算机设备远程访问前端界面查看历史固件信息,实现随时随地远程排查问题的效果,解决了异地排查问题不及时的问题。
为了便于对本申请方案的理解,如图6所示,在一个具体实施例中,需要升级固件的服务器硬件模块是电源供应单元(Power Supply Unit,PSU),BMC芯片采用AST2600,从而本申请提供的技术方案具体步骤如下:
1)BMC上电后Cortex A7加载bootrom,从而加载linux系统,同时Cortex M3加载RTOS,RTOS首先完成启动,启动完成后Cortex M3进行核间通信的初始化及相关任务的创建。
2)linux系统加载完成后,开始加载I2C总线驱动,在此过程中,linux侧需要释放PSU所在的I2C总线的控制权,并调用核间通信驱动函数通知RTOS侧可以进行I2C驱动加载;
3) RTOS侧接收到消息后,初始化PSU所在的I2C总线(使能PSU的I2C总线并配置PSU的I2C相关寄存器),获得PSU的I2C总线控制权;
4)RTOS侧调用I2C驱动函数读取PSU的旧固件信息,并将旧固件信息放入共享内存;linux侧从共享内存读取PSU旧固件信息,并存放旧固件信息到redis数据库,当linux侧需要PSU相关信息时可从redis数据库中读取;
5)linux侧通过BMC前端界面收到PSU的升级任务,得到新固件;linux侧完成PSU升级前的固件校验处理后,将新固件传递到共享内存,并通知RTOS侧开始执行PSU升级任务;
6)RTOS侧从共享内存中读取新固件,调用I2C驱动函数操作PSU设备进行固件升级;
7)RTOS侧在PSU升级任务成功后,调用核间通信驱动函数通知linux侧任务完成,同时调用I2C驱动函数读取当前的PSU版本、在位等当前固件信息,并将当前固件信息放入共享内存中;
8)linux侧获取升级成功状态后,从共享内存中读取当前固件信息放到redis数据库,同时通过读取redis数据库中的旧固件信息进行内容检查,分析新固件信息是否和旧固件信息不一样,当两固件信息不一样时,判定PSU升级成功。
在本实施例中还提供了一种固件升级装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
本实施例提供一种固件升级装置,如图7所示,应用于协处理器,包括:
初始化模块701,用于上电加载协处理器系统,并与主处理器建立核间通信。
控制权消息接收模块702,用于接收主处理器发送的总线控制权释放消息,总线控制权释放消息是主处理器上电加载主处理器系统后,通过加载总线驱动释放了总线控制权发送的通知消息。
控制权接管模块703,用于响应于总线控制权释放消息,接管总线控制权。
固件接收模块704,用于接收主处理器发送的新固件以及固件升级消息。
固件升级模块705,用于响应于固件升级消息,通过总线将新固件写入对应的服务器硬件模块,以对服务器硬件模块的固件进行升级。
本实施例提供一种固件升级装置,如图8所示,应用于主处理器,包括:
控制权释放模块801,用于上电加载主处理器系统,并通过加载总线驱动释放总线控制权。
控制权消息发送模块802,用于当协处理器上电加载协处理器系统并与主处理器的核间通信建立完成时,发送总线控制权释放消息到协处理器,以使协处理器响应于总线控制权释放消息,接管总线控制权。
固件发送模块803,用于发送新固件以及固件升级消息到协处理器,以使协处理器响应于固件升级消息,通过总线将新固件写入对应的服务器硬件模块,以对服务器硬件模块的固件进行升级。
上述各个模块和单元的更进一步的功能描述与上述对应的方法实施例相同,在此不再赘述。
本实施例中的一种固件升级装置是以功能单元的形式来呈现,这里的单元是指ASIC(Application Specific Integrated Circuit,专用集成电路)电路,执行一个或多个软件或固定程序的处理器和存储器,和/或其他可以提供上述功能的器件。
本发明实施例还提供一种BMC芯片,具有上述图7和图8所示的一种固件升级装置。
请参阅图9,图9是本发明可选实施例提供的一种BMC芯片60的结构示意图,如图9所示,该BMC芯片60包括:一个或多个主处理器10、一个或多个协处理器30、存储器20,以及用于连接各部件的接口,包括高速接口和低速接口。各个部件利用不同的总线互相通信连接,并且可以被安装在公共主板上或者根据需要以其它方式安装。处理器可以对在计算机设备内执行的指令进行处理,包括存储在存储器中或者存储器上以在外部输入/输出装置(诸如,耦合至接口的显示设备)上显示GUI的图形信息的指令。在一些可选的实施方式中,若需要,可以将多个处理器和/或多条总线与多个存储器和多个存储器一起使用。同样,可以连接多个计算机设备,各个设备提供部分必要的操作(例如,作为服务器阵列、一组刀片式服务器、或者多处理器系统)。图9中以一个主处理器10和一个协处理器30为例。
主处理器10可以是中央处理器,网络处理器或其组合。其中,主处理器10还可以进一步包括硬件芯片。上述硬件芯片可以是专用集成电路,可编程逻辑器件或其组合。上述可编程逻辑器件可以是复杂可编程逻辑器件,现场可编程逻辑门阵列,通用阵列逻辑或其任意组合。
协处理器30可以是中央处理器,网络处理器或其组合。其中,协处理器30还可以进一步包括硬件芯片。上述硬件芯片可以是专用集成电路,可编程逻辑器件或其组合。上述可编程逻辑器件可以是复杂可编程逻辑器件,现场可编程逻辑门阵列,通用阵列逻辑或其任意组合。
其中,存储器20存储有可由至少一个主处理器10和协处理器30执行的指令,以使至少一个处理器10和协处理器30执行实现上述实施例示出的方法。
存储器20可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据计算机设备的使用所创建的数据等。此外,存储器20可以包括高速随机存取存储器,还可以包括非瞬时存储器,例如至少一个磁盘存储器件、闪存器件、或其他非瞬时固态存储器件。在一些可选的实施方式中,存储器20可选包括相对于处理器10远程设置的存储器,这些远程存储器可以通过网络连接至该计算机设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
存储器20可以包括易失性存储器,例如,随机存取存储器;存储器也可以包括非易失性存储器,例如,快闪存储器,硬盘或固态硬盘;存储器20还可以包括上述种类的存储器的组合。
该计算机设备还包括通信接口40,用于该计算机设备与其他设备或通信网络通信。
请参阅图10,是本发明可选实施例提供的一种服务器,包含服务器主板50和BMC芯片60,所述BMC芯片60与所述服务器主板上的各个硬件模块均通信连接,BMC芯片60为服务器主板50提供了基本的硬件管理功能,例如监控服务器主板50的温度、风扇转速、电源状态等。BMC还提供了远程管理功能,使得管理员可以通过网络远程管理服务器,包括服务器主板50的开关机、重启、配置BIOS等。BMC芯片60与服务器主板上的一些硬件模块(例如传感器)紧密集成,能够及时感知硬件的状态变化,并向管理员报告。此外,BMC芯片60还通常拥有自己的IP地址和网络接口,可以通过网络独立于服务器操作系统而进行管理和监控。总之,BMC芯片60是服务器管理的重要组成部分,它能够提供丰富的硬件管理和远程管理功能,帮助管理员更加高效地管理服务器。
本发明实施例还提供了一种计算机可读存储介质,上述根据本发明实施例的方法可在硬件、固件中实现,或者被实现为可记录在存储介质,或者被实现通过网络下载的原始存储在远程存储介质或非暂时机器可读存储介质中并将被存储在本地存储介质中的计算机代码,从而在此描述的方法可被存储在使用通用计算机、专用处理器或者可编程或专用硬件的存储介质上的这样的软件处理。其中,存储介质可为磁碟、光盘、只读存储记忆体、随机存储记忆体、快闪存储器、硬盘或固态硬盘等;进一步地,存储介质还可以包括上述种类的存储器的组合。可以理解,计算机、处理器、微处理器控制器或可编程硬件包括可存储或接收软件或计算机代码的存储组件,当软件或计算机代码被计算机、处理器或硬件访问且执行时,实现上述实施例示出的方法。
虽然结合附图描述了本发明的实施例,但是本领域技术人员可以在不脱离本发明的精神和范围的情况下做出各种修改和变型,这样的修改和变型均落入由所附权利要求所限定的范围之内。
Claims (18)
1.一种固件升级方法,其特征在于,应用于协处理器,所述方法包括:
上电加载协处理器系统,并与主处理器建立核间通信,其中,协处理器通过初始化的方式与主处理器建立核间通信,具体包括:配置共享内存以及中断信号格式,所述共享内存用于主处理器和协处理器共同进行读写数据,所述中断信号格式用于主处理器和协处理器互相发送对应格式的中断信号以通知对方从所述共享内存中读数据;设置中断使能,以开启中断;
接收主处理器发送的总线控制权释放消息,所述总线控制权释放消息是所述主处理器上电加载主处理器系统后,通过加载总线驱动释放了总线控制权发送的通知消息;
响应于所述总线控制权释放消息,接管总线控制权;
接收主处理器发送的新固件以及固件升级消息;
响应于所述固件升级消息,通过总线将所述新固件写入对应的服务器硬件模块,以对所述服务器硬件模块的固件进行升级。
2.根据权利要求1所述的方法,其特征在于,所述接收主处理器发送的总线控制权释放消息,包括:
接收主处理器发送的第一中断信号,所述第一中断信号是主处理器通过预设的核间通信驱动函数将所述总线控制权释放消息存入所述共享内存之后发送的中断信号;
响应于所述第一中断信号,通过预设的核间通信驱动函数从所述共享内存中读取所述总线控制权释放消息。
3.根据权利要求1所述的方法,其特征在于,所述接收主处理器发送的新固件以及固件升级消息,包括:
接收主处理器发送的第二中断信号,所述第二中断信号是所述主处理器通过预设的核间通信驱动函数将所述新固件和所述固件升级消息存入所述共享内存之后发送的中断信号;
响应于所述第二中断信号,通过预设的核间通信驱动函数从所述共享内存中读取所述新固件和所述固件升级消息。
4.根据权利要求1所述的方法,其特征在于,在所述接收主处理器发送的新固件以及固件升级消息之前,所述方法还包括:
通过总线从待升级的服务器硬件模块中读取旧固件信息;
通过预设的核间通信驱动函数将所述旧固件信息写入所述共享内存;
发送第三中断信号到主处理器,以使主处理器响应于所述第三中断信号,通过预设的核间通信驱动函数从所述共享内存中读取所述旧固件信息,并将所述旧固件信息保存在所述主处理器系统关联的数据库中。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
当所述服务器硬件模块的固件升级完成时,通过总线从所述服务器硬件模块中读取当前固件信息;
通过所述核间通信驱动函数向所述共享内存写入升级结束消息和所述当前固件信息;
发送第四中断信号到主处理器,以使主处理器响应于所述第四中断信号,通过预设的核间通信驱动函数从所述共享内存中读取所述升级结束消息和所述当前固件信息,并使主处理器响应于所述升级结束消息,将所述当前固件信息与所述数据库中保存的旧固件信息进行比对,同时根据比对结果判断升级是否成功。
6.根据权利要求1所述的方法,其特征在于,所述协处理器系统是实时操作系统。
7.根据权利要求1所述的方法,其特征在于,所述总线是I2C总线,所述接管总线控制权,包括:
通过配置系统控制单元寄存器使能所述服务器硬件模块的I2C总线;
配置所述服务器硬件模块的 I2C相关寄存器,获得所述服务器硬件模块的I2C总线的控制权。
8.一种固件升级方法,其特征在于,应用于主处理器,所述方法包括:
上电加载主处理器系统,并通过加载总线驱动释放总线控制权;
当协处理器上电加载协处理器系统并与主处理器的核间通信建立完成时,发送总线控制权释放消息到协处理器,以使协处理器响应于所述总线控制权释放消息,接管总线控制权;
发送新固件以及固件升级消息到协处理器,以使协处理器响应于所述固件升级消息,通过总线将所述新固件写入对应的服务器硬件模块,以对所述服务器硬件模块的固件进行升级;
其中协处理器通过初始化的方式与主处理器建立核间通信,具体方式为:协处理器通过配置共享内存以及中断信号格式,并设置中断使能来初始化与主处理器的核间通信,所述共享内存用于主处理器和协处理器共同进行读写数据,所述中断信号格式用于主处理器和协处理器互相发送对应格式的中断信号以通知对方从所述共享内存中读数据;所述发送总线控制权释放消息到协处理器,包括:通过预设的核间通信驱动函数将所述总线控制权释放消息存入所述共享内存;发送第一中断信号到协处理器,以使协处理器响应于所述第一中断信号,通过预设的核间通信驱动函数从所述共享内存中读取所述总线控制权释放消息。
9.根据权利要求8所述的方法,其特征在于,在所述主处理器系统中部署了前端界面,所述前端界面用于客户端远程访问所述主处理器系统,所述发送新固件以及固件升级消息到协处理器,包括:
接收客户端通过所述前端界面上传的新固件;
对所述新固件进行校验;
将固件升级消息和校验完成的新固件通过所述核间通信驱动函数存入所述共享内存;
发送第二中断信号到协处理器,以使协处理器响应于所述第二中断信号,通过所述核间通信驱动函数从所述共享内存中读取所述新固件和所述固件升级消息。
10.根据权利要求8所述的方法,其特征在于,在所述发送新固件以及固件升级消息到协处理器之前,所述方法还包括:
接收协处理器发送的第三中断信号,所述第三中断信号是协处理器通过总线从待升级的服务器硬件模块中读取了旧固件信息,并将所述旧固件信息通过预设的核间通信驱动函数写入所述共享内存后发出的中断信号;
响应于所述第三中断信号,通过所述核间通信驱动函数从所述共享内存中读取所述旧固件信息;
将所述旧固件信息保存在所述主处理器系统关联的数据库中。
11.根据权利要求10所述的方法,其特征在于,所述方法还包括:
接收协处理器发送的第四中断信号,所述第四中断信号是当所述服务器硬件模块的固件升级完成时,协处理器通过总线从所述服务器硬件模块中读取了当前固件信息,并通过所述核间通信驱动函数向所述共享内存写入升级结束消息和所述当前固件信息后发出的中断信号;
响应于所述第四中断信号,通过预设的核间通信驱动函数从所述共享内存中读取所述升级结束消息和所述当前固件信息;
响应于所述升级结束消息,将所述当前固件信息与所述数据库中保存的旧固件信息进行比对,同时根据比对结果判断升级是否成功。
12.根据权利要求10所述的方法,其特征在于,在所述主处理器系统中部署了前端界面,所述前端界面用于客户端远程访问所述主处理器系统,所述方法还包括:
接收客户端通过所述前端界面发送的查看更新历史请求;
响应于所述查看更新历史请求,将所述数据库中保存的历史固件信息按照时间顺序展示在所述前端界面中,以使客户端通过访问所述前端界面查看所述历史固件信息。
13.一种固件升级方法,其特征在于,所述方法包括:
协处理器上电加载协处理器系统,并与主处理器建立核间通信;
所述主处理器上电加载主处理器系统,并通过加载总线驱动释放总线控制权;
当协处理器上电加载协处理器系统并与主处理器的核间通信建立完成时,所述主处理器发送总线控制权释放消息到协处理器;
所述协处理器接收所述主处理器发送的总线控制权释放消息;
所述协处理器响应于所述总线控制权释放消息,接管总线控制权;
所述主处理器发送新固件以及固件升级消息到协处理器;
所述协处理器接收所述主处理器发送的新固件以及固件升级消息;
所述协处理器响应于所述固件升级消息,通过总线将所述新固件写入对应的服务器硬件模块,以对所述服务器硬件模块的固件进行升级;
其中所述协处理器与所述主处理器建立核间通信的步骤包括:所述协处理器配置共享内存以及中断信号格式,所述共享内存用于主处理器和协处理器共同进行读写数据,所述中断信号格式用于主处理器和协处理器互相发送对应格式的中断信号以通知对方从所述共享内存中读数据;所述协处理器设置中断使能,以开启中断。
14.一种固件升级装置,其特征在于,应用于协处理器,所述装置包括:
初始化模块,用于上电加载协处理器系统,并与主处理器建立核间通信,其中,协处理器通过初始化的方式与主处理器建立核间通信,具体包括:配置共享内存以及中断信号格式,所述共享内存用于主处理器和协处理器共同进行读写数据,所述中断信号格式用于主处理器和协处理器互相发送对应格式的中断信号以通知对方从所述共享内存中读数据;设置中断使能,以开启中断;
控制权消息接收模块,用于接收主处理器发送的总线控制权释放消息,所述总线控制权释放消息是所述主处理器上电加载主处理器系统后,通过加载总线驱动释放了总线控制权发送的通知消息;
控制权接管模块,用于响应于所述总线控制权释放消息,接管总线控制权;
固件接收模块,用于接收主处理器发送的新固件以及固件升级消息;
固件升级模块,用于响应于所述固件升级消息,通过总线将所述新固件写入对应的服务器硬件模块,以对所述服务器硬件模块的固件进行升级。
15.一种固件升级装置,其特征在于,应用于主处理器,所述装置包括:
控制权释放模块,用于上电加载主处理器系统,并通过加载总线驱动释放总线控制权;
控制权消息发送模块,用于当协处理器上电加载协处理器系统并与主处理器的核间通信建立完成时,发送总线控制权释放消息到协处理器,以使协处理器响应于所述总线控制权释放消息,接管总线控制权;
固件发送模块,用于发送新固件以及固件升级消息到协处理器,以使协处理器响应于所述固件升级消息,通过总线将所述新固件写入对应的服务器硬件模块,以对所述服务器硬件模块的固件进行升级;
其中协处理器通过初始化的方式与主处理器建立核间通信,具体方式为:协处理器通过配置共享内存以及中断信号格式,并设置中断使能来初始化与主处理器的核间通信,所述共享内存用于主处理器和协处理器共同进行读写数据,所述中断信号格式用于主处理器和协处理器互相发送对应格式的中断信号以通知对方从所述共享内存中读数据;所述发送总线控制权释放消息到协处理器,包括:通过预设的核间通信驱动函数将所述总线控制权释放消息存入所述共享内存;发送第一中断信号到协处理器,以使协处理器响应于所述第一中断信号,通过预设的核间通信驱动函数从所述共享内存中读取所述总线控制权释放消息。
16.一种BMC芯片,其特征在于,包括:协处理器、主处理器和存储器,
所述存储器分别与所述协处理器和所述主处理器之间互相通信连接,所述存储器中存储有计算机指令,所述协处理器通过执行所述计算机指令,从而执行权利要求1至7中任一项所述的方法,所述主处理器通过执行所述计算机指令,从而执行权利要求8至12中任一项所述的方法。
17.一种服务器,其特征在于,包含服务器主板和BMC芯片,所述BMC芯片与所述服务器主板上的各个硬件模块通信连接,所述BMC芯片中存储有计算机指令,所述BMC芯片通过执行所述计算机指令,从而执行权利要求1至7或 8至12中任一项所述的方法。
18.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机指令,所述计算机指令用于使计算机执行权利要求1至7或8至12中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310694567.2A CN116431190B (zh) | 2023-06-13 | 2023-06-13 | 一种固件升级方法、装置、bmc芯片、服务器及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310694567.2A CN116431190B (zh) | 2023-06-13 | 2023-06-13 | 一种固件升级方法、装置、bmc芯片、服务器及介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116431190A CN116431190A (zh) | 2023-07-14 |
CN116431190B true CN116431190B (zh) | 2023-08-29 |
Family
ID=87080088
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310694567.2A Active CN116431190B (zh) | 2023-06-13 | 2023-06-13 | 一种固件升级方法、装置、bmc芯片、服务器及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116431190B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107483569A (zh) * | 2017-08-04 | 2017-12-15 | 郑州云海信息技术有限公司 | 一种具有固件自动升级的服务器、系统及升级方法 |
CN114201197A (zh) * | 2021-11-30 | 2022-03-18 | 苏州浪潮智能科技有限公司 | 固件升级方法、装置、电子设备及可读存储介质 |
CN115047954A (zh) * | 2022-04-30 | 2022-09-13 | 苏州浪潮智能科技有限公司 | 一种设备散热控制方法、系统、装置、设备及存储介质 |
CN115203142A (zh) * | 2022-07-27 | 2022-10-18 | 重庆大学 | 一种多核核间实时通信系统及方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10437477B2 (en) * | 2017-07-20 | 2019-10-08 | Dell Products, Lp | System and method to detect storage controller workloads and to dynamically split a backplane |
-
2023
- 2023-06-13 CN CN202310694567.2A patent/CN116431190B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107483569A (zh) * | 2017-08-04 | 2017-12-15 | 郑州云海信息技术有限公司 | 一种具有固件自动升级的服务器、系统及升级方法 |
CN114201197A (zh) * | 2021-11-30 | 2022-03-18 | 苏州浪潮智能科技有限公司 | 固件升级方法、装置、电子设备及可读存储介质 |
CN115047954A (zh) * | 2022-04-30 | 2022-09-13 | 苏州浪潮智能科技有限公司 | 一种设备散热控制方法、系统、装置、设备及存储介质 |
CN115203142A (zh) * | 2022-07-27 | 2022-10-18 | 重庆大学 | 一种多核核间实时通信系统及方法 |
Also Published As
Publication number | Publication date |
---|---|
CN116431190A (zh) | 2023-07-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10514930B2 (en) | Setting a startup parameter and controlling startup of a mainboard | |
CN109558157B (zh) | 用以保存固件设置的计算机实施方法及系统 | |
CN108616382B (zh) | 升级网卡固件的方法、装置、网卡和设备 | |
US9063816B2 (en) | Method and apparatus for updating firmware on a storage device | |
CN103761088A (zh) | 一种适用于arm架构移动设备的多操作系统切换方法 | |
WO2021136200A1 (zh) | 引导程序的加载方法、存储介质及嵌入式终端 | |
US20180188969A1 (en) | Server Management Method and Server | |
WO2017124799A1 (zh) | 固件管理方法和装置 | |
CN111104147A (zh) | 一种bmc升级方法、装置、终端及存储介质 | |
CN113760332A (zh) | 软件升级方法和电子设备 | |
JP2019120974A (ja) | 計算機システム、ベースボード管理コントローラ、osインストール方法、及びプログラム | |
CN114153477A (zh) | Pcie驱动卡固件升级方法、装置、系统、设备及介质 | |
CN116431190B (zh) | 一种固件升级方法、装置、bmc芯片、服务器及介质 | |
CN110134423B (zh) | 固件的更新方法、装置及计算机可读存储介质 | |
CN116701285A (zh) | 远程访问控制装置、方法、设备及计算机可读介质 | |
CN108958776A (zh) | 一种基于命令行的bmc固件更新方法与装置 | |
CN115145381A (zh) | 一种远程重置bmc芯片的方法、系统、存储介质及设备 | |
EP1645969B1 (en) | Remote configuration management for data processing units | |
EP4208787A1 (en) | Accelerated non-volatile memory device inspection and forensics | |
CN114115955B (zh) | 服务器资源盒子fpga固件升级方法、系统、终端及存储介质 | |
CN115509590B (zh) | 持续部署方法及计算机设备 | |
CN113220507B (zh) | 双主控系统的版本一致性检验方法及装置 | |
CN114020340B (zh) | 一种服务器系统及其数据处理方法 | |
CN116339761B (zh) | 一种自动化构建镜像模板的方法、系统、存储介质、设备 | |
JP2001075810A (ja) | コンピュータシステム、拡張ボードおよびコンピュータシステムにおける拡張ボードの機能更新方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |