CN115129350A - 一种uefi环境下bmc固件更新系统和方法 - Google Patents
一种uefi环境下bmc固件更新系统和方法 Download PDFInfo
- Publication number
- CN115129350A CN115129350A CN202210623935.XA CN202210623935A CN115129350A CN 115129350 A CN115129350 A CN 115129350A CN 202210623935 A CN202210623935 A CN 202210623935A CN 115129350 A CN115129350 A CN 115129350A
- Authority
- CN
- China
- Prior art keywords
- bmc
- firmware
- version
- module
- bios
- 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.)
- Pending
Links
Images
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
- G06F8/654—Updates using techniques specially adapted for alterable solid state memories, e.g. for EEPROM or flash memories
-
- 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
- G06F8/656—Updates while running
-
- 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/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本发明提出了一种UEFI环境下BMC固件更新系统和方法,能够在UEFI环境中进行固件的更新,无需进入操作系统。通过本发明系统可以在开机的时候,引导待更新BMC固件的服务器进入到UEFI环境下,插入存有BMC固件的U盘,在UEFI环境下,执行升级程序,并进行BMC固件的更新,大大方便了在系统配置期间,及测试期间,需要更新BMC时,更新BMC固件的操作,节省了大量的配置更新环境的时间。本发明方法基于本发明系统引导待更新BMC固件的服务器进入到UEFI环境下,进行BMC固件的更新,无需进入操作系统,节省了大量的配置更新环境的时间。
Description
技术领域
本发明涉及计算机固件技术领域,具体涉及一种UEFI环境下BMC固件更新系统和方法。
背景技术
BMC(Baseboard Management Controller)与IPMI(Intelligent PlatformManagement Interface),即基板管理控制器与智能型平台管理接口,是服务器的基本核心功能子系统,负责服务器的硬件状态管理、操作系统管理、健康状态管理、功耗管理等核心功能。BMC是独立于服务器系统之外的小型操作系统,是一个集成在主板上的芯片,也有产品是通过PCIe等形式插在主板上,对外表现形式只是一个标准的RJ45网口,拥有独立IP的固件系统。服务器集群一般使用BMC指令进行大规模无人值守操作,包括服务器的远程管理、监控、安装、重启等。
现有的BMC固件更新,一般使用如下方式进行更新:
进入到和BMC用PCI总线相连的系统中,在系统中执行BMC固件更新程序,将新固件刷写到BMC的SPI存储中;在BMC固件完整,BMC可以正常运行且有网口的服务器上,可以另找一台电脑,将网口用网线连接与BMC的网口连接起来。配置好电脑的网络参数,在电脑上访问BMC提供的网络界面,按照界面上的步骤去更新BMC之上的固件。
但是当计算机无法进入操作系统时,在目前的UEFI shell环境下,无法更新某些BMC芯片中的BMC固件。如需更新固件,需要使用另外一台电脑,且需要连接网线,然后还需要配置一些网络参数,才能进行BMC固件的更新,比较繁琐。如BMC固件因某些原因损坏,无法正常启动,上述网页更新方式无法运行,无法更新BMC固件,如需更新,必须需要进入到操作系统下,才会有工具可以更新BMC的固件,非常的费时费力。
发明内容
有鉴于此,本发明提出了一种UEFI环境下BMC固件更新系统和方法,能够在UEFI环境中进行固件的更新,无需进入操作系统。
为实现上述目的,本发明的技术方案为:
本发明的一种UEFI环境下BMC固件更新系统,包括硬件层、BIOS层面以及操作系统层面;
其中,硬件层面包括处理器平台、内存以及BMC芯片;BIOS层面包括标准的UEFI环境,对PCIe读写有相应的支持PROTOCOL,具体包括BMC升级选项模块、版本升级检测模块、升级镜像认证模块、BMC设备定位模块、BMC固件刷写模块以及升级失败处理模块;
其中,BMC升级选项模块,实现根据输入的参数进行待更新镜像的选择;版本升级检测模块实现版本的检测,防止版本被错误更新为更旧的版本;升级镜像认证模块,用于镜像完整性及安全性的认证;BMC设备定位模块,实现系统内部BMC设备在PCIe总线上的查找定位;BMC固件刷写模块,用于更新BMC固件;系统升级失败处理模块,用于在升级过程中,出现错误无法继续更新时,相关错误处理及资源回收逻辑的实现。
其中,所述版本升级检测模块用于检测镜像和目前固件中的版本,防止错误的将BMC现有固件版本更新为更旧的版本。
其中,所述BMC设备定位模块用于在PCIe总线上进行设备的搜索,定位BMC在总线上的位置。
其中,所述BMC固件刷写模块实现BMC上的固件所在SPI芯片内容的更新。
本发明还提供了一种UEFI环境下BMC固件更新方法,采用本发明的固件更新系统,包括如下步骤:
步骤一、判断版本号、适用芯片是否满足升级要求,若满足则引导服务器进入到UEFI环境中,并将存放有本升级程序及待更新固件镜像的U盘插入到服务器的u口上,在UEFI环境下进入到U盘所在目录下,输入参数命令,执行步骤二;否则显示升级失败处理,结束步骤;
步骤二、程序对输入的参数进行检测并校验固件镜像是否完整,申请执行所需要的资源;若完整则执行步骤三,否则显示升级失败处理,结束步骤;
步骤三、利用UEFI系统提供的PCIE protocol查找BMC设备;其中BIOS定位BMC设备地址及BMC固件存储空间地址;
步骤四、查找到BMC设备后,初始化BMC设备的p2a硬件接口以及SPI固件控制寄存器,然后执行固件的更新操作,BIOS向BMC固件存储空间写入BMC固件镜像;
步骤五、BIOS重启服务器;
步骤六、BIOS等待BMC运行启动,并在10分钟内确认BMC是否发送正常信息,若能发送正常信息,则BMC成功升级,进行资源回收,程序结束退出;否则进行升级失败处理,结束步骤。
其中,所述步骤一中,计算机上电,BIOS启动,用户以BIOS管理员身份登录;
用户选择升级BMC选项,BIOS加载BMC更新部件;
BIOS获取BMC固件的当前版本,并与BMC升级镜像版本、平台系列参数对比。
有益效果:
通过本发明系统可以在开机的时候,引导待更新BMC固件的服务器进入到UEFI环境下,插入存有BMC固件的U盘,在UEFI环境下,执行升级程序,并进行BMC固件的更新,大大方便了在系统配置期间,及测试期间,需要更新BMC时,更新BMC固件的操作,节省了大量的配置更新环境的时间。
本发明系统可以在UEFI环境下,通过PCIe协议找到BMC设备,然后根据设备提供的硬件接口,使用特定的流程,就可以在UEFI环境中,从PCIE接口访问到BMC端的特定寄存器,如果是访问和操作Flash的寄存器,那么就可以通过操作Flash控制相关的寄存器,进而访问到BMC的固件存储的SPI芯片,进而对SPI芯片进行读写,进行固件的更新。
本发明方法可以在UEFI环境下,通过PCIe协议找到BMC设备,然后根据设备提供的硬件接口,使用特定的流程,就可以在UEFI环境中,从PCIE接口访问到BMC端的特定寄存器,如果是访问和操作Flash的寄存器,那么就可以通过操作Flash控制相关的寄存器,进而访问到BMC的固件存储的SPI芯片,进而对SPI芯片进行读写,进行固件的更新。
本发明方法基于本发明系统引导待更新BMC固件的服务器进入到UEFI环境下,进行BMC固件的更新,无需进入操作系统,节省了大量的配置更新环境的时间。
附图说明
图1为本发明UEFI环境下BMC固件更新系统(计算单元)示意图。
图2为本发明UEFI环境下BMC固件更新方法流程图。
具体实施方式
下面结合附图并举实施例,对本发明进行详细描述。
本发明提供了一种UEFI环境下BMC固件更新系统,如图1所示的计算单元,能够在包含有特定BMC的服务器上,UEFI环境下,更新刷写BMC固件所在的SPI芯片。
本发明UEFI环境下BMC固件更新系统包括硬件层、BIOS层面以及操作系统层面。
其中,硬件层面包括处理器平台、内存等其他计算机关键元器件以及BMC芯片;BIOS层面包括标准的UEFI环境,其中需要对PCIe读写有相应的支持PROTOCOL。具体包括BMC升级选项模块、版本升级检测模块、升级镜像认证模块、BMC设备定位模块、BMC固件刷写模块以及升级失败处理模块。
其中,BMC升级选项模块实现根据输入的参数进行待更新镜像的选择;版本升级检测模块实现版本的检测,防止版本被错误更新为更旧的版本;升级镜像认证模块用于镜像完整性及安全性的认证;BMC设备定位模块实现系统内部BMC设备在PCIe总线上的查找定位;BMC固件刷写模块用于更新BMC固件;系统升级失败处理模块用于在升级过程中,出现错误无法继续更新时,相关错误处理及资源回收逻辑的实现。
进一步地,所述版本升级检测模块用于检测镜像和目前固件中的版本,防止错误的将BMC现有固件版本更新为更旧的版本。
进一步地,所述BMC设备定位模块用于在PCIe总线上进行设备的搜索,定位BMC在总线上的位置。
进一步地,所述BMC固件刷写模块实现BMC上的固件所在SPI芯片内容的更新。
本发明提供了一种UEFI环境下BMC固件更新方法,采用本发明固件更新系统,本发明方法的实现步骤如附图2所示。结合具体实施过程,说明其实现步骤如下:
步骤一、计算机上电,BIOS启动,用户以BIOS管理员身份登录。
用户选择升级BMC选项,BIOS加载BMC更新部件。
BIOS获取BMC固件的当前版本,并与BMC升级镜像版本、平台等系列参数对比。
判断版本号、适用芯片等是否满足升级要求,若满足则引导待更新BMC固件的服务器进入到UEFI环境中,并将存放有本升级程序及待更新固件镜像的U盘插入到服务器的USB接口上,在UEFI环境下进入到U盘所在目录下,输入正确的参数命令,执行步骤二;否则显示升级失败处理,结束步骤;
步骤二、程序对输入的参数进行检测并校验固件镜像是否完整,申请执行所需要的资源,如内存空间等;若完整则执行步骤三,否则显示升级失败处理,结束步骤;
步骤三、利用UEFI系统提供的PCIe protocol查找BMC设备;其中BIOS定位BMC设备地址及BMC固件存储空间地址;
步骤四、查找到BMC设备后,初始化BMC设备的p2a硬件接口以及SPI固件控制寄存器,然后执行固件的更新操作,BIOS向BMC固件存储空间写入BMC固件镜像;
步骤五、BIOS重启服务器。
步骤六、BIOS等待BMC运行启动,并在10分钟内确认BMC是否发送正常信息,若能发送正常信息,则BMC成功升级,进行资源回收,程序结束退出;否则进行升级失败处理,结束步骤。
综上所述,以上仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (6)
1.一种UEFI环境下BMC固件更新系统,其特征在于,包括硬件层、BIOS层面以及操作系统层面;
其中,硬件层面包括处理器平台、内存以及BMC芯片;BIOS层面包括标准的UEFI环境,对PCIe读写有相应的支持PROTOCOL,具体包括BMC升级选项模块、版本升级检测模块、升级镜像认证模块、BMC设备定位模块、BMC固件刷写模块以及升级失败处理模块;
其中,BMC升级选项模块,实现根据输入的参数进行待更新镜像的选择;版本升级检测模块实现版本的检测,防止版本被错误更新为更旧的版本;升级镜像认证模块,用于镜像完整性及安全性的认证;BMC设备定位模块,实现系统内部BMC设备在PCIe总线上的查找定位;BMC固件刷写模块,用于更新BMC固件;系统升级失败处理模块,用于在升级过程中,出现错误无法继续更新时,相关错误处理及资源回收逻辑的实现。
2.如权利要求1所述的系统,其特征在于,所述版本升级检测模块用于检测镜像和目前固件中的版本,防止错误的将BMC现有固件版本更新为更旧的版本。
3.如权利要求1或2所述的系统,其特征在于,所述BMC设备定位模块用于在PCIe总线上进行设备的搜索,定位BMC在总线上的位置。
4.如权利要求1或2所述的系统,其特征在于,所述BMC固件刷写模块实现BMC上的固件所在SPI芯片内容的更新。
5.一种UEFI环境下BMC固件更新方法,其特征在于,采用如权利要求1-4任意一项所述的固件更新系统,包括如下步骤:
步骤一、判断版本号、适用芯片是否满足升级要求,若满足则引导服务器进入到UEFI环境中,并将存放有本升级程序及待更新固件镜像的u盘插入到服务器的u口上,在UEFI环境下进入到u盘所在目录下,输入参数命令,执行步骤二;否则显示升级失败处理,结束步骤;
步骤二、程序对输入的参数进行检测并校验固件镜像是否完整,申请执行所需要的资源;若完整则执行步骤三,否则显示升级失败处理,结束步骤;
步骤三、利用UEFI系统提供的PCIE protocol查找BMC设备;其中BIOS定位BMC设备地址及BMC固件存储空间地址;
步骤四、查找到BMC设备后,初始化BMC设备的p2a硬件接口以及SPI固件控制寄存器,然后执行固件的更新操作,BIOS向BMC固件存储空间写入BMC固件镜像;
步骤五、BIOS重启服务器;
步骤六、BIOS等待BMC运行启动,并在10分钟内确认BMC是否发送正常信息,若能发送正常信息,则BMC成功升级,进行资源回收,程序结束退出;否则进行升级失败处理,结束步骤。
6.如权利要求5所述的方法,其特征在于,所述步骤一中,计算机上电,BIOS启动,用户以BIOS管理员身份登录;
用户选择升级BMC选项,BIOS加载BMC更新部件;
BIOS获取BMC固件的当前版本,并与BMC升级镜像版本、平台系列参数对比。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210623935.XA CN115129350A (zh) | 2022-06-02 | 2022-06-02 | 一种uefi环境下bmc固件更新系统和方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210623935.XA CN115129350A (zh) | 2022-06-02 | 2022-06-02 | 一种uefi环境下bmc固件更新系统和方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115129350A true CN115129350A (zh) | 2022-09-30 |
Family
ID=83378922
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210623935.XA Pending CN115129350A (zh) | 2022-06-02 | 2022-06-02 | 一种uefi环境下bmc固件更新系统和方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115129350A (zh) |
-
2022
- 2022-06-02 CN CN202210623935.XA patent/CN115129350A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9778844B2 (en) | Installation of operating system on host computer using virtual storage of BMC | |
US6463550B1 (en) | Computer system implementing fault detection and isolation using unique identification codes stored in non-volatile memory | |
US9158628B2 (en) | Bios failover update with service processor having direct serial peripheral interface (SPI) access | |
US9680712B2 (en) | Hardware management and control of computer components through physical layout diagrams | |
KR100773004B1 (ko) | 시스템 부팅시 하드웨어를 구성하는 동안 사용자의 상호작용을 없애기 위한 시스템 및 장치 | |
US8296521B2 (en) | Method of configuring non-volatile memory for a hybrid disk drive | |
US9448889B2 (en) | BIOS failover update with service processor | |
US9239725B2 (en) | System and method for installing an OS via a network card supporting PXE | |
US9448808B2 (en) | BIOS update with service processor without serial peripheral interface (SPI) access | |
CN105760191A (zh) | 嵌入式系统设备程序烧写量产方法 | |
US20100049961A1 (en) | Update method for basic input/output system and update system thereof | |
CN102479121A (zh) | 独立磁盘冗余阵列实现及测试方法 | |
US9749189B2 (en) | Generating graphical diagram of physical layout of computer platforms | |
CN114138295A (zh) | 一种电子设备的应用程序固件升级方法、装置及系统 | |
CN114816491A (zh) | 用于多系统移动终端的系统升级方法、装置及终端 | |
CN111198832A (zh) | 一种处理方法和电子设备 | |
CN115129350A (zh) | 一种uefi环境下bmc固件更新系统和方法 | |
CN113867812B (zh) | 一种bmc获取链路信息的方法、系统、设备以及介质 | |
CN115904831A (zh) | 一种服务器固件的启动方法及终端 | |
KR20050120856A (ko) | Usb 메모리 장치를 이용한 임베디드 시스템의 장애복구 및 업그레이드 방법 | |
CN111176735B (zh) | 一种心电图机启动加速方法 | |
JP4946919B2 (ja) | 情報処理装置 | |
CN116028100B (zh) | 软件版本升级方法和电子设备 | |
US11250929B2 (en) | System for detecting computer startup and method of system | |
CN117667252A (zh) | 一种系统引导看门狗的开启方法、系统、设备及存储介质 |
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 |