CN112579116B - 远端更新韧体的控制方法 - Google Patents
远端更新韧体的控制方法 Download PDFInfo
- Publication number
- CN112579116B CN112579116B CN201910933593.XA CN201910933593A CN112579116B CN 112579116 B CN112579116 B CN 112579116B CN 201910933593 A CN201910933593 A CN 201910933593A CN 112579116 B CN112579116 B CN 112579116B
- Authority
- CN
- China
- Prior art keywords
- identification code
- firmware
- computer
- preset
- address
- 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 38
- 238000012545 processing Methods 0.000 description 3
- 238000013459 approach Methods 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 238000007796 conventional method Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012360 testing method 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/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4282—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Stored Programmes (AREA)
Abstract
本发明提供一种远端更新韧体的控制方法,借由一第一计算机主机对一第二计算机主机实施,该第二计算机主机包含一系统管理总线控制器及至少一从属装置,每一该从属装置具有一韧体。该控制方法包含:执行一第一指令及一第二指令,以分别获得一PCIe位址及一基地址;根据该基地址扫描该系统管理总线控制器的多个从属位址,获得对应每一该从属装置的一产品识别码;进而获得一产品型号及一韧体识别码,并据以判断是否对其所对应的该从属装置的该韧体作更新。
Description
【技术领域】
本发明是有关于一种远端更新韧体的控制方法,特别是一种不需要基板管理控制器即能实施的远端更新韧体的控制方法。
【背景技术】
习知的一种计算机系统,包含一中央处理器(CPU)、一电连接该中央处理器的主存储器、一电连接该中央处理器的芯片组(PCH)、一电连接该芯片组的系统管理总线(SystemManagement Bus,SMBus)控制器(Controller)、及一电连接该系统管理总线控制器的从属装置。该从属装置与该系统管理总线控制器之间是以集成电路总线(Inter-IntegratedCircuit Bus,I2C Bus)作电连接,并符合I2C协定。该从属装置例如是一种具有韧体(Firmware)的PCIE(PCI Express)装置(device),或一种具有韧体的复杂可程序逻辑装置(Complex Programmable Logic Device,CPLD),举例来说,该从属装置是各种监测温度或风扇转速等等的硬件监视器(Hardware monitor)。
当该从属装置的韧体需要更新时,现有的第一种作法是利用一种符合JTAG(JointTest Action Group)的界面,以离线(Off-line)烧录的方式作更新。第二种作法是该计算机系统必须还具备一基板管理控制器(Baseboard management controller,BMC)及一网络控制器(Network interface controller,NIC),以借由该基板管理控制器及该网络控制器,采用一种远端更新的方式来完成。然而,现有的这一种更新韧体的方法不但需要在该计算机系统上预留界面的接脚,且还需要使用者手动地离线执行更新,相当地不方便。而第二种更新韧体的方法则必须要在该计算机系统具有基板管理控制器才能实施,因此,当该计算机系统不具备基板管理控制器时,如何提供一种针对前述从属装置的韧体更新的控制方法便成为一个待解决的问题。
【发明内容】
本发明要解决的技术问题是在于提供一种不需要基板管理控制器即能实施的远端更新韧体的控制方法。
为解决上述技术问题,一种远端更新韧体的控制方法,适用于一第一计算机主机及一第二计算机主机,该第一计算机主机与该第二计算机主机建立连线且都支援SSH(Secure Shell)协定。该第二计算机主机包含一系统管理总线控制器(System ManagementBus Controller,SMBus Controller)及至少一从属装置,每一该从属装置具有一韧体,并与该系统管理总线控制器之间以集成电路总线(Inter-Integrated Circuit Bus,I2CBus)形成电连接,且以符合I2C协定作沟通。该控制方法包含步骤(a)~(d)。
于步骤(a),借由该第一计算机主机执行属于该SSH协定的一第一指令,以获得该系统管理总线控制器的一PCIe位址(Address)。
于步骤(b),借由该第一计算机主机根据该系统管理总线控制器的该PCIe位址,执行属于该SSH协定的一第二指令,以获得该系统管理总线控制器的一基地址(base addressregisters)。
于步骤(c),借由该第一计算机主机根据一系统管理总线(SMBus)的一输入输出位址(I/O address)规范(Spec)及该基地址,依序扫描该系统管理总线控制器的多个从属位址(Slave address),以获得对应每一该从属装置的一产品识别码。
于步骤(d),借由该第一计算机主机获得对应该产品识别码的一产品型号及一韧体识别码,并根据已知的一预设产品识别码、一预设产品型号、及一预设韧体识别码,判断该产品识别码及该预设产品型号分别与该预设产品识别码及该预设产品型号相符合时,且该韧体识别码与该预设韧体识别码不相符时,对所对应的该从属装置的该韧体作更新。
优选地,在步骤(a)中,在步骤(a)中,该第一指令为ssh root@IP address“lspci|grep–i smbus,IP address为该第二计算机主机的一网际网络协定位址。
优选地,在步骤(b)中,在步骤(b)中,该第二指令为ssh root@IP address“lspci–s该PCIe位址–x”。
优选地,在步骤(b)中,该第一计算机主机根据该PCIe位址,由一第X1字节(Byte)开始依序读取数值,以获得该基地址,X1是正整数。
优选地,步骤(d)包括子步骤(d1)~(d3)。
于步骤(d1),该第一计算机主机判断该至少一从属装置的其中一者的该产品识别码与该预设产品识别码是否相符合。
于步骤(d2),当该第一计算机判断其中该者的该产品识别码与该预设产品识别码是相符合时,再判断其中该者的该产品型号及该韧体识别码分别与该预设产品型号及该预设韧体识别码是否相符。
于步骤(d3),当该第一计算机判断其中该者的该产品型号与该预设产品型号相符合,且该韧体识别码与该预设韧体识别码不相符时,该第一计算机经由该第二计算机对其中该者的该韧体作更新。
优选地,每一该从属装置的该产品识别码、该产品型号、及该韧体识别码是储存于该从属装置的一装置暂存器。
优选地,每一该从属装置的该产品识别码、该产品型号、及该韧体识别码是储存于该从属装置的该装置暂存器的一从属标头(Header)。
优选地,该控制方法还包含一在步骤(d)之后的步骤(e),借由该第一计算机主机对该第二计算机主机执行重新启动。
优选地,该控制方法还包含一在步骤(d)之后的步骤(e),借由该第一计算机主机对所对应的该从属装置执行重新启动。
本发明还提供另一种远端更新韧体的控制方法适用于一第一计算机主机及一第二计算机主机,该第一计算机主机与该第二计算机主机建立连线且都支援SSH(SecureShell)协定。该第二计算机主机包含一系统管理总线控制器(System Management BusController,SMBus Controller)及至少一从属装置,每一该从属装置具有一韧体,并与该系统管理总线控制器之间以集成电路总线(Inter-Integrated Circuit Bus,I2C Bus)形成电连接,且以符合I2C协定作沟通。该控制方法包含步骤(a)~(d)。
于步骤(a),借由该第一计算机主机执行属于该SSH协定的一第一指令,以获得该系统管理总线控制器的一PCIe位址(Address)。
于步骤(b),借由该第一计算机主机根据该系统管理总线控制器的该PCIe位址,执行属于该SSH协定的一第二指令,以获得该系统管理总线控制器的一基地址(base addressregisters)。
于步骤(c),借由该第一计算机主机根据预先设定的一预设产品识别码、一系统管理总线(SMBus)的一输入输出位址(I/O address)规范(Spec)、及该基地址,依序扫描该系统管理总线控制器的多个从属位址(Slave address),以获得与该预设产品识别码相符合且对应该从属装置的一产品识别码。
于步骤(d),借由该第一计算机主机获得对应该产品识别码的一产品型号及一韧体识别码,并根据已知的一预设产品识别码、一预设产品型号、及一预设韧体识别码,判断该产品识别码及该预设产品型号分别与该预设产品识别码及该预设产品型号相符合时,且该韧体识别码与该预设韧体识别码不相符时,对所对应的该从属装置的该韧体作更新。
相较于现有技术,本发明远端更新韧体的控制方法,借由该第一计算机主机由远端与该第二计算机主机透过网络卡建立网络连线,以执行属于该SSH协定的该第一指令及该第二指令,以控制第二计算机主机的中央处理器根据该第一指令及该第二指令对应的配合作动,进而分别获得该PCIe位址及该输出入位址,再根据预先储存的该查找表判断该至少一从属装置的其中与该产品识别码相符合者,以对该符合者的该韧体作更新,而能在该第二计算机主机不具备基板管理控制器(BMC)的情况下,实现远端更新该从属装置的该韧体。
【附图说明】
图1为一方块图,说明本发明远端更新韧体的控制方法所适用的一第一计算机主机及一第二计算机主机。
图2为一流程图,说明本发明远端更新韧体的控制方法的一实施例。
【具体实施方式】
参阅图1,本发明远端更新韧体的控制方法的实施例适用于一第一计算机主机1及一第二计算机主机2,该第二计算机主机2包含一芯片组(PCH)22、一电连接该芯片组22的网络控制器(NIC)21、一电连接该芯片组22的中央处理器(CPU)23、一电连接该中央处理器23的存储器(即主存储器)24、及电连接该芯片组22的多个从属装置。该芯片组22包括一系统管理总线控制器(System Management Bus Controller,SMBus Controller)25,该系统管理总线控制器25电连接该等从属装置。在本实施例中,该等从属装置包括一第一控制装置26与一第二控制装置27。
每一该从属装置是一种具有韧体(Firmware)、支援I2C协定且透过该系统管理总线控制器(SMBus Controller)25与该芯片组(PCH)22相连的装置,例如为一种具有韧体的PCIE(PCI Express)装置(device),如PCIE桥接卡(Bridget card),或一种具有韧体的复杂可程序逻辑装置(Complex Programmable Logic Device,CPLD),举例来说,该从属装置是各种监测温度或风扇转速等等的硬件监视器(Hardware monitor)。该第一计算机主机1及该第二计算机主机2例如都是一种服务器,但也可以是其他的计算机设备。
该第一计算机主机1包含另一网络控制器(图未示)以与该第二计算机主机2的该网络控制器21建立连线,且该第一计算机主机1与该第二计算机主机2都支援SSH(SecureShell)协定。该第一控制装置26及该第二控制装置27分别与该系统管理总线控制器25之间都是以集成电路总线(Inter-Integrated Circuit Bus,I2C Bus)形成电连接,且都以符合I2C协定作沟通。在本实施例中,电连接该系统管理总线控制器25的从属装置的数量是两个,即该第一控制装置26与该第二控制装置27,而在其他的实施例中,该从属装置的数量也可以是一个或其他多数个。
参阅图1与图2,图2是该实施例的一流程图,该控制方法包含步骤S1~S4。
于步骤S1,借由该第一计算机主机1执行属于该SSH协定的一第一指令,以获得该系统管理总线控制器25的一PCIe位址(Address)。更具体地说,该第一指令为ssh root@IPaddress“lspci|grep–i smbus,其中,IP address为该第二计算机主机2的一网际网络协定位址(Internet Protocol Address),举例来说,该第一计算机主机1预先获得或储存该第二计算机主机2的该网际网络协定位址,如10.86.8.43,则该第一指令为ssh root@10.86.8.43“lspci|grep–i smbus”。接着,在执行该第一指令之后,该第一计算机主机1会获得一讯息,如00:1f.3SMBus:Intel Corporation C610/X99 series chipset SMBusController(rev 05),则00:1f.3即为该PCIe位址。
于步骤S2,借由该第一计算机主机1根据该系统管理总线控制器25的该PCIe位址,执行属于该SSH协定的一第二指令,以获得该系统管理总线控制器25所对应的一基地址(base address registers)。更详细地说,该第一计算机主机1是依照PCI规范(Specification)读取该系统管理总线控制器25的一个PCI组态标头暂存器(configuration header registers),以取得该基地址(base address registers),其中该基地址为该存储器24中对应该系统管理总线控制器25的一记忆区的位址。该第二指令为ssh root@IP address“lspci–s该PCIe位址–x”,同样地,承续前例,即为ssh root@10.86.8.43“lspci–s 00:1f.3–x”。接着,在执行该第二指令之后,该第一计算机主机1会获得该系统管理总线控制器25的该PCI组态标头暂存器所储存的一个PCI组态标头(configuration header),举例来说,如下:
00:86 80 22 8d 03 00 80 02 05 00 05 0c 00 00 00 00
10:04 10f3 ff 3f 38 00 00 00 00 00 00 00 00 00 00
20:81 05 00 00 00 00 00 00 00 00 00 00 86 80 70 72
30:00 00 00 00 00 00 00 00 00 00 00 00 05 03 00 00
该第一计算机主机1再依照PCI规范读取所获得的该系统管理总线控制器25的该PCI组态标头以取得对应的该基地址,依照PCI规范由该PCI组态标头中的一第X1字节(Byte)开始依序读取对应该基地址的数值,X1是正整数。承续前例,X1是17(即0x10),所读取的数值依序是04、10、f3、ff、3f、38、00、00。该基地址即为0000383ffff31004。
于步骤S3,借由该第一计算机主机1根据一系统管理总线(SMBus)的一输入输出位址(I/O address)规范(Spec)以及该基地址,依序扫描该系统管理总线控制器25的多个从属位址(Slave address),以获得每一该从属装置所对应的一产品识别码,也就是说,该第一计算机主机1借由该基地址所对应的一切换暂存器(位于该主存储器24内),及该等从属位址,使该系统管理总线控制器25读取该等从属位址所分别对应的且指示出该等从属装置的该产品识别码。更详细地说,该系统管理总线控制器25是作为一个主控装置(Masterdevice),每一该从属位址指的是每一该从属装置的I2C地址,当该主控装置向每一该从属装置索取资料时,双方都需要一个位址(Address),才能以I2C协定沟通。举例来说,与该系统管理总线控制器25以该集成电路总线形成电连接的该从属装置的数量最多是256个,因此,该第一计算机主机1根据该系统管理总线(SMBus)的该输入输出位址(I/O address)规范(Spec)以及该基地址取得用来切换与该系统管理总线控制器25通讯连接的每一该从属装置的该切换暂存器,以依序对该等从属位址分别等于0x00、0x01、0x02…0xff作轮询扫描并取得每一该从属装置所对应的该产品识别码。例如,该第一计算机主机1根据该系统管理总线(SMBus)的该输入输出位址(I/O address)规范(Spec)以及该基地址取得用来切换与该系统管理总线控制器25通讯连接的每一该从属装置的该切换暂存器,且该系统管理总线控制器25借由该切换暂存器依序切换该等从属位址以轮询该等从属装置,进而依序分别获得该等从属装置所分别对应的多个装置暂存器(Device register)所储存的该等从属标头(Header),每一该从属标头即包括对应的该从属装置(即该第一控制装置26及该第二控制装置27其中一对应者)的该产品识别码。举例来说,该第一计算机主机1依序执行如下的指令以扫描该等从属位址所对应的该等装置暂存器所储存的资料。
ssh root@10.86.8.43“i2c–base-addr 0x0000383ffff31004
–slave-addr 0x00–read-qword–offset 0x0000”
ssh root@10.86.8.43“i2c–base-addr 0x0000383ffff31004
–slave-addr 0x01–read-qword–offset 0x0000”…直到
ssh root@10.86.8.43“i2c–base-addr 0x0000383ffff31004
–slave-addr 0xff–read-qword–offset 0x0000”
要特别补充说明的是:在本实施例中,每一该从属装置的该产品识别码是储存于对应的该装置暂存器的该从属标头,而在其他的实施例中,该产品识别码也可以是储存在该装置暂存器中的其他区域或位置,而该第一计算机主机1也可以是以预先设定的至少一预设产品识别码作为关键字以于该装置暂存器搜寻每一该从属装置的该产品识别码。另外,上述指令中的i2c指令的运作方式是根据该系统管理总线(SMBus)的该输入输出位址(I/O address)规范(Spec)来进行。举例来说,该第一控制装置26的该从属位址是0x55,装置暂存器(Device register)的偏移(Offset)为一对应的预设offset值,例如为0x00~0x03,资料分别为0x86、0x80、0x74、0x47。该第二控制装置27的该从属位址是0xB3,装置暂存器的偏移为0x00~0x03,资料分别为0x50、0xFF、0x47、0xFF。该系统管理总线控制器25进行轮询所使用的i2c指令包含:组成PCI I/O指令(Command);发送该PCI I/O指令,例如透过C语言的inl指令送出;接收回传资料,例如透过C语言的iopl指令接收;透过该切换暂存器及其中一从属位址,使该系统管理总线控制器25依序切换的与其中一该从属位址所对应的该从属装置通讯并进行轮询,以将接收的资料显示并分析,例如读取到该第一控制装置26的该从属标头的资料为0x86、0x80、0x74、0x47,该第二控制装置27的该从属标头的资料为0x50、0xFF、0x47、0xFF。而该系统管理总线控制器25在依序切换的过程中,当其中一该从属位址所对应的该从属装置并未设置时(即对应的该从属装置不存在),则该系统管理总线控制器25也会获得一指示对应的该从属装置不存在的讯息。
于步骤S4,借由该第一计算机主机1根据至少一预设产品识别码、至少一预设产品型号、及至少一预设韧体识别码,判断该等从属装置的其中一者所对应的该产品识别码与其中一个该预设产品识别码相符合时,更进一步的判断该等从属装置的其中该者所对应的一产品型号与其中一个该预设产品型号相符合,且该等从属装置的其中该者所对应的一韧体识别码与其中一个该预设韧体识别码不相符时,则储存其中该者所对应的该从属位址,以对其中该者所对应的一韧体作更新以更新至该预设韧体识别码所对应的具有最新版本的一最新韧体,例如,该第一计算机主机1从透过轮询扫描由该等从属位址所对应的该等从属装置所取得的该等从属装置所对应的该等从属标头的其中一者所包括的该产品型号及该韧体识别码,并判断其中该者的该产品型号与该预设产品型号相符合时,更进一步的判断其中该者的该韧体识别码与该预设韧体识别码不相符时,则储存其中该者对应的从属位址,以对其中该者所对应的该从属装置的该韧体作更新。更详细地说,步骤S4包括子步骤S41~S43。
于子步骤S41,当该第一计算机主机1判断该等装置暂存器的其中该者所储存的该产品识别码与其中一个该预设产品识别码相符合时,则该第一计算机主机1储存对应的该从属位址,且进行子步骤S42;反之,则回到步骤S3以使该系统管理总线控制器25切换至与下一个该从属位址所对应的该从属装置通讯连接,借以读取该下一个该从属装置所对应的该产品识别码及该韧体识别码。举例来说,该第一计算机主机1预先储存该预设产品识别码为0x50ff47ff,并假设该第一控制装置26及该第二控制装置27所对应的该等从属位址分别是0xbc及0xbd,该第一控制装置26的该装置暂存器所储存的内容包括0x50ff47ff,则接着执行该子步骤S42。
于子步骤S42,借由该第一计算机主机1接着判断于子步骤S41判断出该产品识别码与该预设产品识别码相符合的该从属装置所对应的该装置暂存器所储存的该产品型号与该预设产品型号不相符时,则回到步骤S3。而当该装置暂存器所储存的该产品型号与该预设产品型号相符合时,则进一步判断该装置暂存器所储存的该韧体识别码与该预设韧体识别码是否相符合,当判断该韧体识别码与该预设韧体识别码不相符时,则执行步骤S43,而当判断该韧体识别码与该预设韧体识别码相符合时,则回到步骤S3。举例来说,该第一计算机主机1根据在子步骤S41所储存的该等从属位址分别依序执行预先设计的至少一指令,例如在本实施例中为三个指令以分别获得三个讯息,如根据对应该第一控制装置26的该从属位址,即0xbc执行该三个指令以分别获得31304D53、41553136、39433847(都为16进位制)的三个讯息,再将该三个讯息串连而获得对应的该产品型号,如10MSAU169C8G。
ssh root@10.86.8.43“i2c--base-addr 0x0000383ffff31004
--slave-addr{0xbc}--read-qword--offset 0x0004”
ssh root@10.86.8.43“i2c--base-addr 0x0000383ffff31004
--slave-addr{0xbc}--read-qword--offset 0x0008”
ssh root@10.86.8.43“i2c--base-addr 0x0000383ffff31004
--slave-addr{0xbc}--read-qword--offset 0x000c”
假设其中一个该预设产品型号是10MSAU169C8G,则该第一计算机主机1再执行如下的一个指令以获得另一个讯息,如0100(16进位制),而获得该韧体识别码,即对应现有的该韧体的版本。
ssh root@10.86.8.43“i2c--base-addr 0x0000383ffff31004
--slave-addr{0xbc}--read-qword--offset 0x0010”
于子步骤S43,当该第一计算机主机1根据子步骤S42判断所读取的该产品型号及该韧体识别码(即韧体的版本)需要更新时,则该第一计算机主机1储存对应该第从属装置26的该从属位址,即0xbc,以进一步的将对应其中该者的该最新韧体的一更新内容传送至该第二计算机主机2,以执行该韧体的更新。换句话说,该第一计算机主机1预先储存该查找表,该查找表储存多个从属装置的预设产品型号、每一该预设产品型号所对应的该韧体识别码、及对应的最新的该最新韧体,则该第一计算机主机1能够根据子步骤S42所获得的该产品型号及该韧体识别码,将对应的该更新内容传送至该第二计算机主机2,以进行更新于子步骤S42所储存的该等从属位址所对应的该等从属装置所具有的该韧体。
另外要特别补充说明的是:在本实施例中,其中一个该从属装置(即该第一控制装置26或该第二控制装置27)的该韧体被更新之后,并不需要直接重新启动,而是于子步骤S43中完成子步骤S42所储存的该等从属位址所对应的该等从属装置所具有的该等韧体(被判断需要更新的韧体)全部都更新完成后,才控制该第二计算机主机2或更新后的该等从属装置执行重新启动,而在其他的实施例中,该控制方法还可以包含在步骤S4之后的步骤S5,借由该第一计算机主机1对该第二计算机主机2或更新后的该从属装置执行重新启动。举例来说,该查找表还能储存对应该从属装置的该韧体在更新之后是否需要重新启动的一标记内容,则该第一计算机主机1能够根据该标记内容决定是否需要对更新该韧体的该从属装置或该第二计算机主机2执行重新启动。
此外,在其他实施例中,该控制方法还可以包含在步骤S1之前的步骤S0,该第一计算机主机1判断该第二计算机主机2是否已启动,当该第一计算机主机1判断该第二计算机主机2未启动时,借由该第二计算机主机2的该网络控制器21及该第一计算机主机1的该网络控制器,执行一个网络唤醒指令(Wake-on-LAN,WoL),以启动该第二计算机主机2。该网络唤醒指令例如是Linux–wakeup,wakeonlan、Windows–Magic Packet,WakeOnLANx等等,但不以此为限。
再者,在本实施例的步骤S4中,是借由步骤S41先获的该产品识别码,再于步骤S42获得该产品型号及该韧体识别码,并在判断该韧体需要更新时,才执行步骤S43的韧体更新。而在其他实施例中,步骤S4也可以先获得并储存所有从属装置的该等产品识别码、该等产品型号、及该等韧体识别码,再逐一判断哪一者需要执行韧体更新。或者,也可以是其他的交叉组合的方式来执行韧体更新,都不在此限。另外,在本实施例中,每一该从属装置的该产品型号及该韧体识别码是储存于对应的该装置暂存器的该从属标头,而在其他的实施例中,该产品型号及该韧体识别码也可以是储存在该装置暂存器中的其他区域或位置。
综上所述,本发明远端更新韧体的控制方法,借由该第一计算机主机由远端与该第二计算机主机建立连线,以执行属于该SSH协定的该第一指令及该第二指令,而分别获得该PCIe位址及该基地址,再根据预先储存的该查找表判断至少一个从属装置(如该第一控制装置及该第二控制装置)的其中的该产品识别码及该产品型号分别与该预设产品识别码及该预设产品型号相符合者,且该韧体识别码与该预设韧体识别码不相符者,进而由远端的该第一计算机在无需预先知道所有本地端的该第二计算机上所分别设置的该等从属装置的数量、产品型号以及其所具有的韧体版本,对需要更新的该韧体执行更新,如此,在该第二计算机主机不具备基板管理控制器(BMC)的情况下,借由该第一计算机主机更弹性且灵活的实施远端执行该第二计算机主机的该从属装置的该韧体更新,故确实能达成本发明的目的。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
Claims (10)
1.一种远端更新韧体的控制方法,适用于一第一计算机主机及一第二计算机主机,该第一计算机主机与该第二计算机主机建立连线,该第二计算机主机包含一系统管理总线控制器及至少一从属装置,每一该从属装置具有一韧体,并与该系统管理总线控制器之间以集成电路总线形成电连接,且以符合I2C协定作沟通,其特征在于,该控制方法包含下列步骤:
(a)借由该第一计算机主机执行一第一指令,以获得该系统管理总线控制器的一PCIe位址;
(b)借由该第一计算机主机根据该系统管理总线控制器的该PCIe位址,执行一第二指令,以获得该系统管理总线控制器的一基地址;
(c)借由该第一计算机主机根据一系统管理总线的一输入输出位址规范及该基地址,依序扫描该系统管理总线控制器的多个从属位址,以获得对应每一该从属装置的一产品识别码;及
(d)借由该第一计算机主机获得对应该产品识别码的一产品型号及一韧体识别码,并根据已知的一预设产品识别码、一预设产品型号、及一预设韧体识别码,判断该产品识别码及该预设产品型号分别与该预设产品识别码及该预设产品型号相符合时,且该韧体识别码与该预设韧体识别码不相符时,对所对应的该从属装置的该韧体作更新。
2.根据权利要求1所述的远端更新韧体的控制方法,其特征在于,在步骤(a)中,该第一指令为ssh root@IP address “lspci |grep –i smbus,IP address为该第二计算机主机的一网际网络协定位址。
3.根据权利要求2所述的远端更新韧体的控制方法,其特征在于,在步骤(b)中,该第二指令为ssh root@IP address “lspci –s 该PCIe位址 –x”。
4.根据权利要求3所述的远端更新韧体的控制方法,其特征在于,在步骤(b)中,该第一计算机主机根据该PCIe位址,由一第X1字节开始依序读取数值,以获得该基地址,X1是正整数。
5.根据权利要求1所述的远端更新韧体的控制方法,其特征在于,步骤(d)包括以下的子步骤:
(d1)该第一计算机主机判断该至少一从属装置的其中一者的该产品识别码与该预设产品识别码是否相符合;
(d2)当该第一计算机判断其中该者的该产品识别码与该预设产品识别码是相符合时,再判断其中该者的该产品型号及该韧体识别码分别与该预设产品型号及该预设韧体识别码是否相符;及
(d3)当该第一计算机判断其中该者的该产品型号与该预设产品型号相符合,且该韧体识别码与该预设韧体识别码不相符时,该第一计算机经由该第二计算机对其中该者的该韧体作更新。
6.根据权利要求5所述的远端更新韧体的控制方法,其特征在于,每一该从属装置的该产品识别码、该产品型号、及该韧体识别码是储存于该从属装置的一装置暂存器。
7.根据权利要求6所述的远端更新韧体的控制方法,其特征在于,每一该从属装置的该产品识别码、该产品型号、及该韧体识别码是储存于该从属装置的该装置暂存器的一从属标头。
8.根据权利要求1所述的远端更新韧体的控制方法,其特征在于,还包含一在步骤(d)之后的步骤(e),借由该第一计算机主机对该第二计算机主机执行重新启动。
9.根据权利要求1所述的远端更新韧体的控制方法,其特征在于,还包含一在步骤(d)之后的步骤(e),借由该第一计算机主机对所对应的该从属装置执行重新启动。
10.一种远端更新韧体的控制方法,适用于一第一计算机主机及一第二计算机主机,该第一计算机主机与该第二计算机主机建立连线,该第二计算机主机包含一系统管理总线控制器及至少一从属装置,每一该从属装置具有一韧体,并与该系统管理总线控制器之间以集成电路总线形成电连接,且以符合I2C协定作沟通,其特征在于,该控制方法包含下列步骤:
(a)借由该第一计算机主机执行一第一指令,以获得该系统管理总线控制器的一PCIe位址;
(b)借由该第一计算机主机根据该系统管理总线控制器的该PCIe位址,执行一第二指令,以获得该系统管理总线控制器的一基地址;
(c)借由该第一计算机主机根据预先设定的一预设产品识别码、一系统管理总线的一输入输出位址、及该基地址,依序扫描该系统管理总线控制器的多个从属位址,以获得与该预设产品识别码相符合且对应该从属装置的一产品识别码;及
(d)借由该第一计算机主机获得对应该产品识别码的一产品型号及一韧体识别码,并根据已知的一预设产品识别码、一预设产品型号、及一预设韧体识别码,判断该产品识别码及该预设产品型号分别与该预设产品识别码及该预设产品型号相符合时,且该韧体识别码与该预设韧体识别码不相符时,对所对应的该从属装置的该韧体作更新。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910933593.XA CN112579116B (zh) | 2019-09-29 | 2019-09-29 | 远端更新韧体的控制方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910933593.XA CN112579116B (zh) | 2019-09-29 | 2019-09-29 | 远端更新韧体的控制方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112579116A CN112579116A (zh) | 2021-03-30 |
CN112579116B true CN112579116B (zh) | 2023-07-18 |
Family
ID=75110661
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910933593.XA Active CN112579116B (zh) | 2019-09-29 | 2019-09-29 | 远端更新韧体的控制方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112579116B (zh) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW200801956A (en) * | 2006-06-15 | 2008-01-01 | Tyan Computer Corp | Apparatus and method for scanning slave addresses of smbus slave devices |
CN101261585A (zh) * | 2007-03-08 | 2008-09-10 | 英属盖曼群岛商福华先进微电子股份有限公司 | 更新微控制器的韧体的方法及系统 |
TW201222413A (en) * | 2010-11-22 | 2012-06-01 | Hon Hai Prec Ind Co Ltd | System and method for updating firmware of a baseboard management controller |
TW201327389A (zh) * | 2011-12-22 | 2013-07-01 | Hon Hai Prec Ind Co Ltd | 具有韌體更新功能的系統、電子裝置及其韌體更新方法 |
TW201419151A (zh) * | 2012-11-05 | 2014-05-16 | Wistron Neweb Corp | 韌體更新系統和方法 |
TWI602124B (zh) * | 2017-01-20 | 2017-10-11 | 神雲科技股份有限公司 | 用於風扇轉速控制的基板管理控制器韌體更新方法 |
CN107957969A (zh) * | 2016-10-17 | 2018-04-24 | 佛山市顺德区顺达电脑厂有限公司 | 判定设备连接状态及设备类型的方法 |
CN108595193A (zh) * | 2017-03-07 | 2018-09-28 | 佛山市顺德区顺达电脑厂有限公司 | 用于风扇转速控制的基板管理控制器固件更新方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102750155A (zh) * | 2011-04-19 | 2012-10-24 | 鸿富锦精密工业(深圳)有限公司 | 用于更新固件的控制板、固件更新系统及方法 |
US9043527B2 (en) * | 2013-01-04 | 2015-05-26 | American Megatrends, Inc. | PCI express channel implementation in intelligent platform management interface stack |
-
2019
- 2019-09-29 CN CN201910933593.XA patent/CN112579116B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW200801956A (en) * | 2006-06-15 | 2008-01-01 | Tyan Computer Corp | Apparatus and method for scanning slave addresses of smbus slave devices |
CN101261585A (zh) * | 2007-03-08 | 2008-09-10 | 英属盖曼群岛商福华先进微电子股份有限公司 | 更新微控制器的韧体的方法及系统 |
TW201222413A (en) * | 2010-11-22 | 2012-06-01 | Hon Hai Prec Ind Co Ltd | System and method for updating firmware of a baseboard management controller |
TW201327389A (zh) * | 2011-12-22 | 2013-07-01 | Hon Hai Prec Ind Co Ltd | 具有韌體更新功能的系統、電子裝置及其韌體更新方法 |
TW201419151A (zh) * | 2012-11-05 | 2014-05-16 | Wistron Neweb Corp | 韌體更新系統和方法 |
CN107957969A (zh) * | 2016-10-17 | 2018-04-24 | 佛山市顺德区顺达电脑厂有限公司 | 判定设备连接状态及设备类型的方法 |
TWI602124B (zh) * | 2017-01-20 | 2017-10-11 | 神雲科技股份有限公司 | 用於風扇轉速控制的基板管理控制器韌體更新方法 |
CN108595193A (zh) * | 2017-03-07 | 2018-09-28 | 佛山市顺德区顺达电脑厂有限公司 | 用于风扇转速控制的基板管理控制器固件更新方法 |
Also Published As
Publication number | Publication date |
---|---|
CN112579116A (zh) | 2021-03-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100425317B1 (ko) | 원격 가전기기 업데이트 방법 및 시스템 | |
US7554931B2 (en) | System and method for remote dynamic network configuration | |
US10162646B2 (en) | System for programmably configuring a motherboard | |
CN107864231A (zh) | 使用工业控制程序的因特网协议寻址方法和系统 | |
CN105653306A (zh) | 显示启动设置界面的方法和装置 | |
JP3757669B2 (ja) | 分散システムの設定方法 | |
CN112527397A (zh) | 基本输入输出系统选项的修改方法、装置和计算机设备 | |
JP4982392B2 (ja) | 分散型計算機システム、構成情報の設定方法、および構成情報設定装置 | |
TWI720594B (zh) | 遠端更新韌體的控制方法 | |
CN112099902A (zh) | 虚拟机的网络适配器配置方法、装置、电子装置和存储介质 | |
CN112579116B (zh) | 远端更新韧体的控制方法 | |
CN106020867A (zh) | 一种部署固件的方法及装置 | |
CN112003723A (zh) | Expander芯片的固件批量升级实现方法和系统 | |
CN118296037A (zh) | 服务器电源信息的查询方法和装置、存储介质及电子设备 | |
CN110505075B (zh) | 设备管理方法及相关设备 | |
CN115167351B (zh) | 一种控制器功能更新方法、系统、车辆和服务器 | |
TWI799179B (zh) | 運算系統及網路裝置管理方法 | |
CN116126353A (zh) | 一种加速卡软件栈部署方法、装置、设备和存储介质 | |
CN115967659A (zh) | 资源池设备的检查方法及装置 | |
CN114510259A (zh) | 一种基于bmc导入导出bios配置的方法及装置 | |
JP5266997B2 (ja) | ネットワーク接続局情報出力装置、ネットワーク接続局情報出力方法、およびプログラム | |
CN108595193B (zh) | 用于风扇转速控制的基板管理控制器固件更新方法 | |
CN117992127A (zh) | 一种操作系统切换方法、网卡及处理器 | |
CN115421757A (zh) | 环境变量管理方法、系统、设备及介质 | |
CN117130676A (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 |