CN110825393B - 将固件下载至服务器的系统和方法 - Google Patents

将固件下载至服务器的系统和方法 Download PDF

Info

Publication number
CN110825393B
CN110825393B CN201810890013.9A CN201810890013A CN110825393B CN 110825393 B CN110825393 B CN 110825393B CN 201810890013 A CN201810890013 A CN 201810890013A CN 110825393 B CN110825393 B CN 110825393B
Authority
CN
China
Prior art keywords
server
bmc
usb
usb port
port
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
Application number
CN201810890013.9A
Other languages
English (en)
Other versions
CN110825393A (zh
Inventor
高志鹏
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Lenovo Enterprise Solutions Singapore Pte Ltd
Original Assignee
Lenovo Enterprise Solutions Singapore Pte Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Lenovo Enterprise Solutions Singapore Pte Ltd filed Critical Lenovo Enterprise Solutions Singapore Pte Ltd
Priority to CN201810890013.9A priority Critical patent/CN110825393B/zh
Priority to US16/520,984 priority patent/US11385885B2/en
Publication of CN110825393A publication Critical patent/CN110825393A/zh
Application granted granted Critical
Publication of CN110825393B publication Critical patent/CN110825393B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • G06F8/63Image based installation; Cloning; Build to order
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4406Loading of operating system
    • G06F9/4408Boot device selection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0042Universal serial bus [USB]

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 Security & Cryptography (AREA)
  • Stored Programmes (AREA)

Abstract

本发明公开了一种将固件下载至服务器的方法,包括:提供具有带基板管理控制器(BMC)的主板和至少一个通用串行总线(USB)端口的服务器;将USB端口连接至服务器的BMC的USB设备控制器;重启BMC;经由USB端口将数据处理设备与服务器连接;以及,经由USB端口将固件从数据处理设备或通过数据处理设备下载至BMC。

Description

将固件下载至服务器的系统和方法
技术领域
本发明涉及经由智能手机和服务器的USB端口将固件下载至服务器的系统和方法。
背景技术
服务器的主板包括基板管理控制器(BMC),其提供服务器管理的基础服务。因此,势在必行的是,要防止BMC错误,并且在出现错误的情况时提供恢复方案。在一个现有的恢复方案中,配有档案(file)系统的独立的Uboot/内核被保存在独立的“几乎RO”芯片,例如NOR闪存中。Uboot/内核从普通档案(file)传输协议(TFTP)服务器或闪存盘读取恢复镜像。此类布置的缺点包括(a)为了恢复的目的需要独立的芯片来保存恢复镜像;(b)通常来说需要为操作附加串行调试线缆;以及,(c)关于闪存盘使用的安全性。一个其它可能的恢复方案包括:在两个芯片中保存BMC镜像的两个备份,这两个芯片中的一个仅用于恢复目的。如果所有可启动镜像都有错误,则更换主板便是唯一的选择。
因此,本发明的目标是提出一种能够克服前述缺点的服务器和方法,或者至少为业界和公众提出一种可供选择的替代方案。
发明内容
根据本发明的第一方面,提出了一种服务器,其包括:主板,该主板具有带通用串行总线(USB)设备控制器的的基板管理控制器(BMC);至少一个USB端口;以及,集成电路(IC)设备,其中IC设备可操作以将所述USB端口连接至所述BMC的所述USB设备控制器。
根据本发明的第二方面,提出了一种方法,其包括:将服务器的通用串行总线(USB)端口连接至服务器的基板管理控制器(BMC)的USB设备控制器;重启所述BMC;将数据处理设备经由所述USB端口与所述服务器连接;以及,经由所述USB端口将固件从所述数据处理设备或者通过所述数据处理设备下载至所述BMC。
附图说明
现在,本发明的实施方式将通过仅仅作为参考之用的附图举例说明的方式来描述,其中:
图1显示了经由智能手机和服务器的USB端口将固件下载至服务器的布置的说明性视图;
图2A、2B和2C显示了经由智能手机和服务器的USB端口将固件下载至服务器的第一方法的步骤;以及
图3A和3B显示了经由智能手机和服务器的USB端口将固件下载至服务器的第二方法的步骤。
图中:14、USB A型插口;16、开关;18a、USB主机控制器;20a、USB主机控制器;20b、USB设备控制器;24、启动引脚;S100、监听USB设备端口;S102、接收到镜像数据?;S104、将镜像下载至SRAM;S106、下载完成?;S108、跳转至镜像的进入点;S110、选择镜像;S112、发送传输开始命令;S114、发送所选择的镜像;S116、发送传输结束命令;S118、继续下载?;S120、结束;S122、初始化目标闪存存储器;S124、监听USB设备端口;S126、接收到镜像数据?;S128、检查镜像类型;S130、将镜像保存至目标闪存存储器;S132、下载完成?;S134、传输下一个镜像?;S136、复位启动引脚;S138、重启BMC;S140:切换至BMC USB设备?S142、监听USB设备端口;S144、接收到镜像数据?;S146、将镜像写入到目标位置;S148、下载完成?;S150、通知FPGA将USB端口切换至服务器;S152、正常的启动过程;S154、检查机器类型;S156、选择要传输的镜像类型;S158、从远程站点下载镜像;S160、发送传输开始命令;S162、发送所选择的镜像;S164、发送传输结束命令;S166、继续下载?;S168、结束。
具体实施方式
在图1中显示了经由智能手机12和服务器10的USB端口14将固件下载至服务器10的布置的说明性视图。智能手机12可与互联网相连接,并且USB端口14可以是USB A型插口。USB端口14可经由开关16选择性地连接到:
(a)平台控制器集线器(PCH)18的USB主机控制器18a,
(b)基板管理控制器(BMC)20的USB主机控制器20a,
(c)BMC 20的USB设备控制器20b,以及
(d)现场可编程门阵列(FPGA)22形式的集成电路(IC)设备。
FPGA 22与服务器10的启动引脚24连接,并且与服务器10的身份(ID)按钮26和电源(PWR)按钮28连接。
通常,USB端口14被分配给服务器主机,并且与PCH 18的USB主机控制器18a连接。BMC 20可从NAND或NOR闪存加载启动镜像;PWR按钮28可操作以打开/关闭服务器10;以及,ID按钮26是带有发光二极管(LED)指示的按钮。
根据第一方法,为了执行固件恢复过程,同时按下ID按钮26和PWR按钮28,由此将指令发送至FPGA 22,其激活开关16以便断开USB端口14与PCH 18的USB主机控制器18a的连接,并且将USB端口14连接至BMC 20的USB设备控制器20b。随后,FPGA 22改变启动引脚24的值,从而使得BMC能够从USB设备端口14启动,并最终重启BMC 20。
接着转到图2A至2C,BMC启动ROM监听USB设备端口14(S100)。智能手机12经由标准USB活动式(OTG)线缆30连接至USB端口14。智能手机12已安装有能够向BMC 20的USB设备控制器20b发送命令的应用软件(App)。如果从智能手机12或是通过智能手机12接收到固件的镜像数据(S102),该镜像数据被下载至BMC 20的SRAM(S104)。应当注意的是,无论要下载的固件镜像的数量如何,FirmwareWriter(固件写入器)应用软件始终是第一个要下载的。还应当理解的是,除了BMC 20的SRAM之外,固件的镜像数据可被下载至其它存储位置。BMC 20随后检查下载是否完成(S106),如果未完成,则BMC启动ROM继续监听USB设备端口14(S100)。另一方面,如果下载已完成(S106),则BMC启动ROM跳转至镜像的进入点(S108)。
对于智能手机App而言,其可操作以选择适当的固件镜像(S110),随后发送传输开始命令(S112),发送所选择的固件镜像(S114),以及发送传输结束命令(S116)。如果要继续下载(S118),则App可操作以开始新的固件镜像(S110)。如果不再需要继续下载(S118),则智能手机App结束操作(S120)。
对于FirmwareWriter应用程序而言,其初始化目标闪存存储器(S122)并且监听USB设备端口14(S124)。如果接收到镜像数据(S126),则其检查镜像类型(S128)并且将镜像(例如固件备份)保存至目标闪存存储器(S130)。其随后检查下载是否完成(S132)。如果未完成,其再次监听USB设备端口14(S124)用于接收镜像数据(S126)。如果下载完成(S132),其将检查是否要传输下一个镜像(S134)。如果要传输,则其再次监听USB设备端口14(S124)用于接收镜像数据(S126)。如果不再需要传输其它镜像(S134),其将复位启动引脚24(S136),并随后重启BMC 20。
如果BMC CPU不支持从USB设备端口14启动,如在图3A和3B中所示,则FPGA 22断开USB端口14与PCH 18的USB主机控制器18a的连接,并且将USB端口14与BMC 20的USB设备控制器20b连接,以及,重新启动BMC 20(S140)。
Uboot随后监听USB设备端口14(S142)以检查是否从智能手机12接收到任何镜像数据(例如固件)(S144)。如果从智能手机12接收到镜像数据,其被写入到目标位置(S146)。Uboot随后检查下载是否完成(S148)。如果未完成,其将继续监听USB设备端口14(S142)。如果下载已完成(S148),其将通知FPGA 22将USB端口14切换回服务器10的PCH 18(S150),并随后将继续正常的启动过程(S152)。
智能手机12安装有智能手机应用软件(App)。这App检查服务器10的机器类型(S154),并且随后从其连接的官方网站选择要传输的适当镜像类型(S156)。App随后从远程站点,例如官方网站,下载镜像(S158)。其随后发送传输开始命令(S160),随后发送所选择的固件镜像(S162),并且随后发送传输结束命令(S164)。其随后将检查是否继续下载(S166)。如果是的话,则App再次从其连接的官方网站选择要传输的适当镜像类型(S156)。另一方面,如果不需要再下载,则App将结束操作(S168)。
本发明具有以下优势:
(a)易于恢复/更新服务器固件,并降低服务成本;
(b)能够下载可信的固件镜像,因为该固件镜像是从原始制造商的官方网站所获得的;
(c)允许从头开始恢复服务器固件;以及
(d)降低成本,因为不需要用于保存Uboot/内核的独立闪存芯片。
应当理解的是,以上仅示出了可实现本发明的实施例,并且可对这些实施例做出各种修正和/或改变而不偏离本发明的精神。
还应当理解的是,本发明的某些技术特征——为清楚起见,这些技术特征根据单独的实施方式进行了描述——可在单个实施方式中组合提出。相反,本发明的各种技术特征——为简洁起见,这些技术特征根据单个实施方式进行了描述——也可单独地或者以任何适当的子组合提出。

Claims (10)

1.一种服务器,包括:
主板,其具有带通用串行总线(USB)设备控制器的基板管理控制器(BMC);
至少一个USB端口;以及
集成电路(IC)设备,
其中,在经由所述USB端口将固件从数据处理设备或者通过所述数据处理设备下载至所述BMC后,所述IC设备能够操作改变启动引脚值,以便将所述USB端口从与所述BMC的USB主机控制器连接切换至与所述BMC的USB设备控制器连接,从而使得所述BMC能够从所述USB端口启动。
2.如权利要求1所述的服务器,还包括至少两个按钮,其能够被同时开动以命令所述IC设备将所述USB端口连接至所述BMC的所述USB设备控制器。
3.如权利要求2所述的服务器,其中所述至少两个按钮包括“ID”按钮和“电源”按钮。
4.如权利要求1所述的服务器,其中所述IC设备是现场可编程门阵列(FPGA)。
5.一种将固件下载至服务器的方法,包括:
将服务器的通用串行总线(USB)端口连接至所述服务器的基板管理控制器(BMC)的USB设备控制器;
重启所述BMC;
经由所述USB端口将数据处理设备与所述服务器连接;以及
经由所述USB端口将固件从所述数据处理设备或者通过所述数据处理设备下载至所述BMC;
所述服务器的集成电路(IC)设备改变启动引脚值,将所述USB端口从与所述BMC的USB主机控制器连接切换至与所述BMC的USB设备控制器连接,从而使得所述BMC能够从所述服务器的所述USB端口启动。
6.如权利要求5所述的方法,其中所述服务器的现场可编程门阵列(FPGA)改变启动引脚值从而使得所述BMC能够从所述服务器的所述USB端口启动。
7.如权利要求5所述的方法,还包括同时按所述服务器的至少两个按钮以命令所述IC设备将所述USB端口连接至所述服务器的所述BMC的所述USB设备控制器。
8.如权利要求7所述的方法,其中所述两个按钮包括“ID”按钮和“电源”按钮。
9.如权利要求5所述的方法,其中所述数据处理设备经由USB活动式OTG线缆与所述USB端口连接。
10.如权利要求5所述的方法,其中所述数据处理设备包括具有与互联网连接的能力的智能手机或平板电脑。
CN201810890013.9A 2018-08-07 2018-08-07 将固件下载至服务器的系统和方法 Active CN110825393B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201810890013.9A CN110825393B (zh) 2018-08-07 2018-08-07 将固件下载至服务器的系统和方法
US16/520,984 US11385885B2 (en) 2018-08-07 2019-07-24 System and method of downloading a firmware to a server

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810890013.9A CN110825393B (zh) 2018-08-07 2018-08-07 将固件下载至服务器的系统和方法

Publications (2)

Publication Number Publication Date
CN110825393A CN110825393A (zh) 2020-02-21
CN110825393B true CN110825393B (zh) 2023-11-17

Family

ID=69406085

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810890013.9A Active CN110825393B (zh) 2018-08-07 2018-08-07 将固件下载至服务器的系统和方法

Country Status (2)

Country Link
US (1) US11385885B2 (zh)
CN (1) CN110825393B (zh)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102880527A (zh) * 2011-07-13 2013-01-16 英业达股份有限公司 一种基板管理控制器的数据恢复方法
CN106020854A (zh) * 2015-03-24 2016-10-12 联想企业解决方案(新加坡)有限公司 将固件更新应用在具有零停机时间的系统中

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7849454B2 (en) * 2006-01-13 2010-12-07 Dell Products L.P. Automatic firmware corruption recovery and update
CN102855146B (zh) * 2011-06-30 2016-05-11 鸿富锦精密工业(深圳)有限公司 固件更新系统及方法
CN103186393A (zh) * 2011-12-30 2013-07-03 鸿富锦精密工业(深圳)有限公司 具有基板管理控制器固件的电子装置及固件加载方法
TW201525858A (zh) * 2013-12-31 2015-07-01 Ibm 基板管理控制器與其韌體載入方法
US9652351B2 (en) * 2014-12-23 2017-05-16 Intel Corporation System to detect charger and remote host for type-C connector
TWI595364B (zh) * 2015-08-18 2017-08-11 神雲科技股份有限公司 自動修復映像檔的方法及伺服器系統
US9946553B2 (en) * 2016-05-04 2018-04-17 America Megatrends, Inc. BMC firmware recovery
CN107783769A (zh) * 2016-08-24 2018-03-09 青岛歌尔声学科技有限公司 一种通过usb升级电子设备的方法、装置及电子设备
US10534618B2 (en) * 2016-09-27 2020-01-14 American Megatrends International, Llc Auto bootloader recovery in BMC
US10331434B2 (en) * 2016-12-21 2019-06-25 Quanta Computer Inc. System and method for remotely updating firmware
US10719469B2 (en) * 2017-02-28 2020-07-21 Intel Corporation Inband messaging method for integrated type-C universal serial bus detection using enhanced serial peripheral interconnect
US10582636B2 (en) * 2017-08-07 2020-03-03 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Server having a dual-mode serial bus port enabling selective access to a baseboard management controller

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102880527A (zh) * 2011-07-13 2013-01-16 英业达股份有限公司 一种基板管理控制器的数据恢复方法
CN106020854A (zh) * 2015-03-24 2016-10-12 联想企业解决方案(新加坡)有限公司 将固件更新应用在具有零停机时间的系统中

Also Published As

Publication number Publication date
CN110825393A (zh) 2020-02-21
US11385885B2 (en) 2022-07-12
US20200050460A1 (en) 2020-02-13

Similar Documents

Publication Publication Date Title
US10353779B2 (en) Systems and methods for detection of firmware image corruption and initiation of recovery
CN108228374B (zh) 一种设备的故障处理方法、装置及系统
US8762782B2 (en) Basic input-output system circuit and method for using the same
TWI633487B (zh) 自動回復基本輸入輸出系統映像檔的方法及電腦系統
EP2254051B1 (en) Computer system with damaged bios data recovering function and recovering method thereof
US20140317318A1 (en) Device and method for updating firmware of a peripheral device
US20030221092A1 (en) Method and system of switching between two or more images of firmware on a host device
CN108432219A (zh) 终端设备开机失败的恢复方法和终端设备
JP2006065857A (ja) 移動通信端末機のプログラム強制ダウンロード方法及び装置
CN112612524A (zh) Linux系统启动的方法、装置、设备及存储介质
CN101364193A (zh) 自动恢复bios的方法以及使用该方法的电脑与系统
RU2614569C2 (ru) Стойка с функцией автоматического восстановления и способ автоматического восстановления для этой стойки
US9201650B2 (en) Super I/O module and control method thereof
EP2798428B1 (en) Apparatus and method for managing operation of a mobile device
US10824517B2 (en) Backup and recovery of configuration files in management device
JP2013164842A (ja) Bmcファームウェアの修復機能を持つ電子装置及びその修復方法
KR20180086129A (ko) 정보 처리장치, 그 제어방법, 및 기억매체
CN111857303B (zh) 一种fpga复位方法、装置、系统和电子设备
CN110825393B (zh) 将固件下载至服务器的系统和方法
CN113946530A (zh) 扩展卡的控制方法及装置、非易失性存储介质
JP4646859B2 (ja) Usb機器、およびusb接続システム
CN107870776B (zh) 一种ipmc在线升级方法及装置
CN114594995A (zh) 电子装置及其开机方法
CN110908733B (zh) 工作模式确定方法及装置、控制方法及装置
CN111209143B (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
GR01 Patent grant
GR01 Patent grant