A method, system, device and storage medium for version update

By using BMC and eSPI Virtual Wire Channel in a cloud computing environment for out-of-band updates, the problem of inconvenience in version management when updating drivers or firmware in the prior art and the unseparable control plane and business plane, achieving efficient and secure version management and isolation.

CN115756541BActive Publication Date: 2025-06-13INSPUR SUZHOU INTELLIGENT TECH CO LTD
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202211448183.4
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2022-11-18
Publication Date
2025-06-13
Estimated Expiration
2042-11-18

AI Technical Summary

Technical Problem

When the prior art updates the driver or firmware of the server in cloud computing, the lack of effective version management and isolation between the control plane and the business plane, resulting in inconvenient maintenance management.

Method used

Receive packets of new version of firmware or drivers and update scripts through BMC, and decompress them to the shared flash directory. Use eSPI's Virtual Wire Channel to generate interrupts to achieve out-of-band updates, ensuring separation of business and control surfaces.

Benefits of technology

Centralized management of the version is realized, the efficiency and security of network management of the version is improved, and the isolation between the control plane and the business plane is ensured, and maintenance and management are facilitated.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN115756541B_ABST
    Figure CN115756541B_ABST
Patent Text Reader

Abstract

The present invention discloses a method for version update, which includes the following steps: using BMC to receive a data packet including a new version of firmware or driver and an update script and decompressing it to the corresponding directory of the shared flash; BMC generating an interrupt to the host side through the Virtual Wire Channel of eSPI; in response to the host side receiving the interrupt, searching for the new version of firmware or driver and the update script in the corresponding directory of the shared flash, and using the new version of firmware or driver and the update script for update, and sending the update result to BMC through IPMI commands; in response to the host side completing the update according to the new version of firmware or driver and the update script, generating an interrupt to BMC through the Virtual Wire Channel of eSPI so that BMC deletes the new version of firmware or driver and the update script in the corresponding directory of the shared flash. The present invention also discloses a system, a computer device, and a readable storage medium. The solution proposed by the present invention realizes out-of-band update of the driver or firmware version by using eSPI, and separates the service plane and the control plane.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present invention relates to the field of servers, and particularly to a method, a system, a device, and a storage medium for version update. Background Art

[0002] When the infrastructure layer in cloud computing needs to update the driver or firmware version, generally, the driver or firmware package is uploaded to the system through the service port, and then the driver or firmware installation script (such as the driver and FW of the SAS card) is executed for update. As the management unit of the server hardware, if the driver or firmware can be updated out-of-band, it can better isolate the control plane and the service plane, which is convenient for maintenance and management. However, the existing update method is to upload the driver or firmware package to the system through the service port, and then execute the driver or firmware installation script for update. However, this update method is not convenient for the network administrator to centrally manage the version, and the service plane and the control plane are not separated. Summary of the Invention

[0003] In view of this, in order to overcome at least one aspect of the above problems, an embodiment of the present invention provides a method for version update, including the following steps:

[0004] Use the BMC to receive a data packet including a new version of firmware or driver and an update script, and decompress it to the corresponding directory of the shared flash;

[0005] The BMC generates an interruption to the host side through the Virtual Wire Channel of eSPI;

[0006] In response to the host side receiving the interruption, search for the new version of firmware or driver and the update script in the corresponding directory of the shared flash, and use the new version of firmware or driver and the update script for update, and send the update result to the BMC through the IPMI command;

[0007] In response to the host side completing the update according to the new version of firmware or driver and the update script, generate an interruption to the BMC through the Virtual Wire Channel of eSPI so that the BMC deletes the new version of firmware or driver and the update script in the corresponding directory of the shared flash.

[0008] In some embodiments, it further includes:

[0009] Pre-configure the BMC and the host side.

[0010] In some embodiments, pre-configuring the BMC further includes:

[0011] Configure the first preset register to enable the eSPI flash access channel and the Virtual Wire Channel of eSPI, and configure the sharing mode so that the BMC supports the run-time flash access channel;

[0012] Divide the BMC flash into a preset size as the shared flash, where the shared flash supports the host side to access with read-only permission through the run-time flash access channel;

[0013] Format the shared flash into an ext4 file system.

[0014] In some embodiments, the pre-configuration of the host side further includes:

[0015] Configure eSPI on the host side to support the run-time flash access channel and the Virtual Wire Channel of eSPI, so as to access the shared flash on the BMC side through the Slave attached Flash Sharing mode of the run-time flash access channel of eSPI;

[0016] Add a script for mounting the shared flash formatted as an ext4 file system to the system startup script.

[0017] Based on the same inventive concept, according to another aspect of the present invention, an embodiment of the present invention further provides a version update system, including:

[0018] A receiving module configured to use the BMC to receive a data packet including a new version of firmware or driver and an update script and decompress it to the directory corresponding to the shared flash;

[0019] An interrupt module configured to generate an interrupt from the BMC to the host side through the Virtual Wire Channel of eSPI;

[0020] A search module configured to, in response to the host side receiving the interrupt, search for a new version of firmware or driver and an update script in the directory corresponding to the shared flash, and perform an update using the new version of firmware or driver and the update script, and send the update result to the BMC through an IPMI command;

[0021] A feedback module, configured to generate an interrupt to the BMC through the Virtual Wire Channel of eSPI to cause the BMC to delete the new version firmware or driver and the update script in the directory corresponding to the shared flash in response to the completion of the update of the host side according to the new version firmware or driver and the update script.

[0022] In some embodiments, it further includes a configuration module, configured to:

[0023] Pre-configure the BMC and the host side.

[0024] In some embodiments, the configuration module is further configured to:

[0025] Configure a first preset register to enable the eSPI flash access channel and the Virtual Wire Channel of eSPI and configure the sharing mode to enable the BMC to support the run-time flash access channel;

[0026] Divide the BMC flash into a preset size as the shared flash, where the shared flash supports the host side to access with read-only permission through the run-time flash access channel;

[0027] Format the shared flash into an ext4 file system.

[0028] In some embodiments, the configuration module is further configured to:

[0029] Configure eSPI on the host side to support the run-time flash access channel and the Virtual Wire Channel of eSPI, so as to access the shared flash on the BMC side through the Slave attached Flash Sharing mode of the run-time flash access channel of eSPI;

[0030] Add a script for mounting the shared flash formatted into an ext4 file system to the system startup script.

[0031] Based on the same inventive concept, according to another aspect of the present invention, embodiments of the present invention further provide a computer device, including:

[0032] At least one processor; and

[0033] A memory that stores a computer program executable on the processor, characterized in that when the processor executes the program, the following steps are performed:

[0034] Use the BMC to receive a data packet including a new version of firmware or driver and an update script and decompress it to the directory corresponding to the shared flash;

[0035] The BMC generates an interrupt to the host side through the Virtual Wire Channel of eSPI;

[0036] In response to the host side receiving the interrupt, search for the new version of firmware or driver and the update script in the directory corresponding to the shared flash, and use the new version of firmware or driver and the update script for updating, and send the update result to the BMC through IPMI commands;

[0037] In response to the host side completing the update according to the new version of firmware or driver and the update script, generate an interrupt to the BMC through the Virtual Wire Channel of eSPI so that the BMC deletes the new version of firmware or driver and the update script in the directory corresponding to the shared flash.

[0038] In some embodiments, it further includes:

[0039] Pre-configure the BMC and the host side.

[0040] In some embodiments, pre-configuring the BMC further includes:

[0041] Configure the first preset register to enable the eSPI flash access channel and the Virtual Wire Channel of eSPI and configure the sharing mode so that the BMC supports the run-time flash access channel;

[0042] Divide the BMC flash into a preset size as the shared flash, where the shared flash supports the host side to access through the run-time flash access channel with read-only permission;

[0043] Format the shared flash as an ext4 file system.

[0044] In some embodiments, pre-configuring the host side further includes:

[0045] Configure eSPI on the host side to support the run-time flash access channel and the Virtual Wire Channel of eSPI, so as to access the shared flash on the BMC side through the Slave attached Flash Sharing mode of the run-time flash access channel of eSPI;

[0046] Add a script in the system startup script for mounting the shared flash formatted as an ext4 file system.

[0047] Based on the same inventive concept, according to another aspect of the present invention, an embodiment of the present invention further provides a computer-readable storage medium, the computer-readable storage medium stores a computer program, and when the computer program is executed by a processor, the following steps are performed:

[0048] Use the BMC to receive a data packet including a new version of firmware or driver and an update script and decompress it to the directory corresponding to the shared flash;

[0049] The BMC generates an interrupt to the host side through the Virtual Wire Channel of eSPI;

[0050] In response to the host side receiving the interrupt, search for the new version of firmware or driver and the update script in the directory corresponding to the shared flash, and use the new version of firmware or driver and the update script for updating, and send the update result to the BMC through IPMI commands;

[0051] In response to the host side completing the update according to the new version of firmware or driver and the update script, generate an interrupt to the BMC through the Virtual Wire Channel of eSPI so that the BMC deletes the new version of firmware or driver and the update script in the directory corresponding to the shared flash.

[0052] In some embodiments, it further includes:

[0053] Perform pre-configuration on the BMC and the host side.

[0054] In some embodiments, performing pre-configuration on the BMC further includes:

[0055] Configure a first preset register to enable the eSPI flash access channel and the Virtual Wire Channel of eSPI and configure the sharing mode so that the BMC supports the run-time flash access channel;

[0056] Divide the BMC flash into a preset size as the shared flash, where the shared flash supports read-only access by the host side through the run-time flash access channel;

[0057] Format the shared flash into an ext4 file system.

[0058] In some embodiments, pre-configuring the host side further includes:

[0059] Configure eSPI on the host side to support the run-time flash access channel and the Virtual Wire Channel of eSPI, so as to access the shared flash on the BMC side by using the Slave attached Flash Sharing mode of the run-time flash access channel of eSPI;

[0060] Add a script for mounting the shared flash formatted into an ext4 file system to the system startup script.

[0061] One of the beneficial technical effects of the present invention is as follows: The solution proposed by the present invention realizes out-of-band update of the driver or firmware version by using the Slave attached Flash Sharing mode of the run-time flash access channel of eSPI and the Virtual Wire Channel of eSPI, realizes the separation of the service plane and the control plane, and improves the efficiency and security of the network management for version management at the same time. BRIEF DESCRIPTION OF THE DRAWINGS

[0062] In order to more clearly illustrate the technical solutions in the embodiments of the present invention or the prior art, the following will briefly introduce the drawings required for the description of the embodiments or the prior art. Obviously, the following drawings are only some embodiments of the present invention. For those of ordinary skill in the art, other embodiments can be obtained based on these drawings without creative efforts.

[0063] Figure 1 A flowchart of the method for version update provided by the embodiment of the present invention;

[0064] Figure 2 A structural diagram of the system for version update provided by the embodiment of the present invention;

[0065] Figure 3Schematic diagram of a computer device provided by an embodiment of the present invention;

[0066] Figure 4 Schematic diagram of a computer-readable storage medium provided by an embodiment of the present invention. Detailed implementation manners

[0067] To make the objectives, technical solutions and advantages of the present invention more clear and understandable, the following further describes the embodiments of the present invention in detail with reference to specific embodiments and the accompanying drawings.

[0068] It should be noted that all the expressions using "first" and "second" in the embodiments of the present invention are used to distinguish two entities or parameters with the same name but different, so it can be seen that "first" and "second" are only for the convenience of expression and should not be construed as a limitation on the embodiments of the present invention. This will not be elaborated one by one in the subsequent embodiments.

[0069] According to one aspect of the present invention, an embodiment of the present invention proposes a method for version update, as Figure 1 shown, which may include the steps:

[0070] S1, using the BMC to receive a data packet including a new version of firmware or driver and an update script and decompress it to the corresponding directory of the shared flash;

[0071] S2, the BMC generates an interrupt to the host side through the Virtual Wire Channel of eSPI;

[0072] S3, in response to the host side receiving the interrupt, searching for a new version of firmware or driver and an update script in the corresponding directory of the shared flash, and using the new version of firmware or driver and the update script for update, and sending the update result to the BMC through an IPMI command;

[0073] S4, in response to the host side completing the update according to the new version of firmware or driver and the update script, generating an interrupt to the BMC through the Virtual Wire Channel of eSPI so that the BMC deletes the new version of firmware or driver and the update script in the corresponding directory of the shared flash.

[0074] The solution proposed by the present invention realizes out-of-band update of the driver or firmware version by using the Slave attached Flash Sharing mode of the run-time flash access channel of eSPI and the Virtual Wire Channel of eSPI, realizes the separation of the service plane and the control plane, and improves the efficiency and security of network management for version management at the same time.

[0075] In some embodiments, in the present invention, the driver or firmware version to be updated and the update script can be packaged into a tar package, encrypted and signed into an hpm package. Then, the hpm package is uploaded through the Web or Redfish interface. The BMC decrypts and verifies the hpm package to obtain the tar package, and extracts it to the directory corresponding to the "flash shared by the BMC and the OS side". Next, the BMC generates an interruption to the HOST side through the Virtual Wire Channel. After receiving the interruption, the HOST traverses the files in the directory corresponding to the "flash shared by the BMC and the OS side", finds the installation script, and executes it. After the execution is completed, an interruption is generated to the BMC side through the Virtual Wire Channel. And at the end of the installation script, the update result is notified to the BMC through the ipmi command. After receiving the interruption, the BMC knows that the update on the OS side is completed and deletes all the files in this directory.

[0076] In some embodiments, it further includes:

[0077] Pre-configure the BMC and the host side.

[0078] In some embodiments, pre-configuring the BMC further includes:

[0079] Configure the first preset register to enable the eSPI flash access channel and the Virtual Wire Channel of the eSPI, and configure the sharing mode so that the BMC supports the run-time flash access channel;

[0080] Divide the BMC flash into a preset size as the shared flash, where the shared flash supports the host side to access with read-only permission through the run-time flash access channel;

[0081] Format the shared flash into an ext4 file system.

[0082] Specifically, the BMC divides a certain size area of the BMC flash for sharing with the OS side. This area supports the HOST to access with read-only permission through the run-time flash access channel, and formats this area into an ext4 file system and mounts it. The HOST has no permission to access other areas through the run-time flash access channel. The BMC has read and write permissions for the entire flash.

[0083] The BMC configures the aspeed2600 register to enable "eSPI flash access channel enable" and configures "Flash Sharing Mode" as "Slave attached flash sharing", so that the BMC supports the Run-time flash access channel and is in the Slave attached Flash Sharing mode. At the same time, the BMC configures the aspeed 2600 register to enable "Virtual Wire Channel Enable" and configures the GPIO and GPIO direction used by the Virtual Wire Channel (configuring a pair of GPIOs, one for master to slave and one for slave to master).

[0084] In some embodiments, pre-configuring the host side further includes:

[0085] Configure eSPI on the host side to support the run-time flash access channel and the Virtual Wire Channel of eSPI, so as to access the shared flash on the BMC side through the Slave attached Flash Sharing mode of the run-time flash access channel of eSPI;

[0086] Add a script in the system startup script for mounting the shared flash formatted as an ext4 file system.

[0087] Specifically, the BIOS needs to configure eSPI to support the Run-time flash access channel and be in the Slave attached Flash Sharing mode, and support the Virtual Wire Channel. Add a script in the OS startup script, and this script is used to mount the "flash shared by the BMC and the OS side".

[0088] The solution proposed by the present invention realizes out-of-band update of the driver or firmware version by using the Slave attached Flash Sharing mode of the run-time flash access channel of eSPI and the Virtual Wire Channel of eSPI, realizes the separation of the service plane and the control plane, and improves the efficiency and security of network management for version management at the same time.

[0089] Based on the same inventive concept, according to another aspect of the present invention, an embodiment of the present invention further provides a version update system 400, as Figure 2 shown, including:

[0090] A receiving module 401, configured to use the BMC to receive a data packet including a new version of firmware or driver and an update script and decompress it to a directory corresponding to the shared flash;

[0091] An interrupt module 402, configured to generate an interrupt to the host side by the BMC through the Virtual Wire Channel of eSPI;

[0092] A lookup module 403, configured to, in response to the host side receiving the interrupt, look up the new version of firmware or driver and the update script in the directory corresponding to the shared flash, and perform an update using the new version of firmware or driver and the update script, and send the update result to the BMC through an IPMI command;

[0093] A feedback module 404, configured to, in response to the host side completing the update according to the new version of firmware or driver and the update script, generate an interrupt to the BMC through the Virtual Wire Channel of eSPI so that the BMC deletes the new version of firmware or driver and the update script in the directory corresponding to the shared flash.

[0094] The solution proposed by the present invention realizes out-of-band update of the driver or firmware version by using the Slave attached Flash Sharing mode of the run-time flash access channel of eSPI and the Virtual Wire Channel of eSPI, realizes the separation of the service plane and the control plane, and improves the efficiency and security of the network management for version management at the same time.

[0095] In some embodiments, in the present invention, the driver or firmware version to be updated and the update script can be packaged into a tar package, encrypted and signed into an hpm package. Then, the hpm package is uploaded through the Web or Redfish interface. The BMC decrypts and verifies the hpm package to obtain the tar package, and extracts it to the directory corresponding to the "flash shared by the BMC and the OS side". Next, the BMC generates an interruption to the HOST side through the Virtual Wire Channel. After receiving the interruption, the HOST traverses the files in the directory corresponding to the "flash shared by the BMC and the OS side", finds the installation script, and executes it. After the execution is completed, an interruption is generated to the BMC side through the VirtualWire Channel. And at the end of the installation script, the update result is notified to the BMC through the ipmi command. After receiving the interruption, the BMC knows that the update on the OS side is completed and deletes all the files in this directory.

[0096] In some embodiments, it further includes a configuration module, configured to:

[0097] Pre-configure the BMC and the host side.

[0098] In some embodiments, the configuration module is further configured to:

[0099] Configure a first preset register to enable the eSPI flash access channel and the Virtual WireChannel of the eSPI and configure the sharing mode to enable the BMC to support the run-time flash access channel;

[0100] Divide the BMC flash into a preset size as the shared flash, where the shared flash supports the host side to access with read-only permission through the run-time flash access channel;

[0101] Format the shared flash into an ext4 file system.

[0102] The BMC divides a certain size area of the BMC flash for sharing with the OS side. This area supports the HOST to access with read-only permission through the run-time flash access channel, and formats this area into an ext4 file system and mounts it. The HOST has no permission to access other areas through the run-time flash access channel. The BMC has read and write permissions for the entire flash.

[0103] The BMC configures the aspeed2600 register to enable "eSPI flash access channel enable" and configures "Flash Sharing Mode" as "Slave attached flash sharing", enabling the BMC to support the Run-time flash access channel and operate in the Slave attached Flash Sharing mode. At the same time, the BMC configures the aspeed 2600 register to enable "Virtual Wire Channel Enable" and configures the GPIO and GPIO directions used by the Virtual Wire Channel (configuring a pair of GPIOs, one for master to slave and one for slave to master).

[0104] In some embodiments, the configuration module is further configured to:

[0105] Configure eSPI on the host side to support the run-time flash access channel and the Virtual Wire Channel of eSPI, so as to access the shared flash on the BMC side through the Slave attached Flash Sharing mode of the run-time flash access channel of eSPI;

[0106] Add a script in the system startup script for mounting the shared flash formatted as an ext4 file system.

[0107] Specifically, the BIOS needs to configure eSPI to support the Run-time flash access channel and operate in the Slave attached Flash Sharing mode, and also support the Virtual Wire Channel. Add a script in the OS startup script, which is used to mount the "flash shared between the BMC and the OS side".

[0108] The solution proposed by the present invention realizes out-of-band update of the driver or firmware version by using the Slave attached Flash Sharing mode of the run-time flash access channel of eSPI and the Virtual Wire Channel of eSPI, separates the service plane and the control plane, and improves the efficiency and security of network management for version management at the same time.

[0109] Based on the same inventive concept, according to another aspect of the present invention, as Figure 3 shown, an embodiment of the present invention further provides a computer device 501, including:

[0110] at least one processor 520; and

[0111] a memory 510, where the memory 510 stores a computer program 511 that can run on the processor, and when the processor 520 executes the program, it performs the following steps:

[0112] S1, use the BMC to receive a data packet including a new version of firmware or driver and an update script and decompress it to the corresponding directory of the shared flash;

[0113] S2, the BMC generates an interrupt to the host side through the Virtual Wire Channel of eSPI;

[0114] S3, in response to the host side receiving the interrupt, search for the new version of firmware or driver and the update script in the corresponding directory of the shared flash, and use the new version of firmware or driver and the update script for updating, and send the update result to the BMC through an IPMI command;

[0115] S4, in response to the host side completing the update according to the new version of firmware or driver and the update script, generate an interrupt to the BMC through the Virtual Wire Channel of eSPI so that the BMC deletes the new version of firmware or driver and the update script in the corresponding directory of the shared flash.

[0116] The solution proposed by the present invention realizes out-of-band update of the driver or firmware version by using the Slave attached Flash Sharing mode of the run-time flash access channel of eSPI and the Virtual Wire Channel of eSPI, realizes the separation of the service plane and the control plane, and improves the efficiency and security of the network management for version management at the same time.

[0117] In some embodiments, in the present invention, the driver or firmware version to be updated and the update script can be packaged into a tar package, encrypted and signed into an hpm package. Then, the hpm package is uploaded through the Web or Redfish interface. The BMC decrypts and verifies the hpm package to obtain the tar package, and extracts it to the directory corresponding to the "flash shared by the BMC and the OS side". Next, the BMC generates an interruption to the HOST side through the Virtual Wire Channel. After receiving the interruption, the HOST traverses the files in the directory corresponding to the "flash shared by the BMC and the OS side", finds the installation script, and executes it. After the execution is completed, an interruption is generated to the BMC side through the VirtualWire Channel. And at the end of the installation script, the update result is notified to the BMC through the ipmi command. After receiving the interruption, the BMC knows that the update on the OS side is completed and deletes all the files in this directory.

[0118] In some embodiments, it further includes:

[0119] Pre-configure the BMC and the host side.

[0120] In some embodiments, pre-configuring the BMC further includes:

[0121] Configure the first preset register to enable the eSPI flash access channel and the Virtual WireChannel of the eSPI, and configure the sharing mode to enable the BMC to support the run-time flash access channel;

[0122] Divide the BMC flash into a preset size as the shared flash, where the shared flash supports the host side to access with read-only permission through the run-time flash access channel;

[0123] Format the shared flash into an ext4 file system.

[0124] Specifically, the BMC divides a certain size of the BMC flash area for sharing with the OS side. This area supports the HOST to access with read-only permission through the run-time flash access channel, and formats this area into an ext4 file system and mounts it. The HOST has no permission to access other areas through the run-time flash access channel. The BMC has read and write permissions for the entire flash.

[0125] The BMC configures the aspeed2600 register to enable "eSPI flash access channel enable" and configures "Flash Sharing Mode" to "Slave attached flash sharing", enabling the BMC to support the Run-time flash access channel and operate in the Slave attached Flash Sharing mode. Meanwhile, the BMC configures the aspeed 2600 register to enable "Virtual Wire Channel Enable" and configures the GPIO and GPIO directions used by the Virtual Wire Channel (configuring a pair of GPIOs, one for master to slave and one for slave to master).

[0126] In some embodiments, pre-configuring the host side further includes:

[0127] Configure eSPI on the host side to support the run-time flash access channel and the Virtual Wire Channel of eSPI, so as to access the shared flash on the BMC side through the Slave attached Flash Sharing mode of the run-time flash access channel of eSPI;

[0128] Add a script in the system startup script for mounting the shared flash formatted as an ext4 file system.

[0129] Specifically, the BIOS needs to configure eSPI to support the Run-time flash access channel and operate in the Slave attached Flash Sharing mode, and also support the Virtual Wire Channel. Add a script in the OS startup script, which is used to mount the "flash shared by the BMC and the OS side".

[0130] The solution proposed by the present invention realizes out-of-band update of the driver or firmware version by using the Slave attached Flash Sharing mode of the run-time flash access channel of eSPI and the Virtual Wire Channel of eSPI, separates the service plane and the control plane, and improves the efficiency and security of network management for version management at the same time.

[0131] Based on the same inventive concept, according to another aspect of the present invention, as Figure 4 shown, an embodiment of the present invention further provides a computer-readable storage medium 601. The computer-readable storage medium 601 stores a computer program 610. When the computer program 610 is executed by a processor, the following steps are performed:

[0132] S1, use the BMC to receive a data packet including a new version of firmware or driver and an update script and decompress it to the directory corresponding to the shared flash;

[0133] S2, the BMC generates an interrupt to the host side through the Virtual Wire Channel of eSPI;

[0134] S3, in response to the host side receiving the interrupt, search for the new version of firmware or driver and the update script in the directory corresponding to the shared flash, and perform an update using the new version of firmware or driver and the update script, and send the update result to the BMC through an IPMI command;

[0135] S4, in response to the host side completing the update according to the new version of firmware or driver and the update script, generate an interrupt to the BMC through the Virtual Wire Channel of eSPI so that the BMC deletes the new version of firmware or driver and the update script in the directory corresponding to the shared flash.

[0136] The solution proposed by the present invention realizes out-of-band update of the driver or firmware version by using the Slave attached Flash Sharing mode of the run-time flash access channel of eSPI and the Virtual Wire Channel of eSPI, realizes the separation of the service plane and the control plane, and improves the efficiency and security of network management for version management at the same time.

[0137] In some embodiments, in the present invention, the driver or firmware version to be updated and the update script can be packaged into a tar package, encrypted and signed into an hpm package. Then, the hpm package is uploaded through the Web or Redfish interface. The BMC decrypts and verifies the hpm package to obtain the tar package, and extracts it to the directory corresponding to the "flash shared by the BMC and the OS side". Next, the BMC generates an interruption to the HOST side through the Virtual Wire Channel. After receiving the interruption, the HOST traverses the files in the directory corresponding to the "flash shared by the BMC and the OS side", finds the installation script, and executes it. After the execution is completed, an interruption is generated to the BMC side through the VirtualWire Channel. And at the end of the installation script, the update result will be notified to the BMC through the ipmi command. After receiving the interruption, the BMC knows that the update on the OS side is completed and deletes all the files in this directory.

[0138] In some embodiments, it further includes:

[0139] Pre-configure the BMC and the host side.

[0140] In some embodiments, pre-configuring the BMC further includes:

[0141] Configure the first preset register to enable the eSPI flash access channel and the Virtual WireChannel of the eSPI and configure the sharing mode so that the BMC supports the run-time flash access channel;

[0142] Divide the BMC flash into a preset size as the shared flash, where the shared flash supports the host side to access with read-only permission through the run-time flash access channel;

[0143] Format the shared flash into an ext4 file system.

[0144] Specifically, the BMC divides a certain size of the BMC flash area for sharing with the OS side. This area supports the HOST to access with read-only permission through the run-time flash access channel, and formats this area into an ext4 file system and mounts it. The HOST has no permission to access other areas through the run-time flash access channel. The BMC has read and write permissions for the entire flash.

[0145] The BMC configures the aspeed2600 register to enable "eSPI flash access channel enable" and configures "Flash Sharing Mode" as "Slave attached flash sharing", so that the BMC supports the Run-time flash access channel and is in the Slave attached Flash Sharing mode. At the same time, the BMC configures the aspeed 2600 register to enable "Virtual Wire Channel Enable" and configures the GPIO and GPIO direction used by the Virtual Wire Channel (configure a pair of GPIOs, one for master to slave and one for slave to master).

[0146] In some embodiments, pre-configuring the host side further includes:

[0147] Configure eSPI on the host side to support the run-time flash access channel and the Virtual Wire Channel of eSPI, so as to access the shared flash on the BMC side through the Slave attached Flash Sharing mode of the run-time flash access channel of eSPI;

[0148] Add a script in the system startup script for mounting the shared flash formatted as an ext4 file system.

[0149] Specifically, the BIOS needs to configure eSPI to support the Run-time flash access channel and be in the Slave attached Flash Sharing mode, and support the Virtual Wire Channel. Add a script in the OS startup script, and this script is used to mount the "flash shared by the BMC and the OS side".

[0150] The solution proposed by the present invention realizes out-of-band update of the driver or firmware version by using the Slave attached Flash Sharing mode of the run-time flash access channel of eSPI and the Virtual Wire Channel of eSPI, realizes the separation of the service plane and the control plane, and improves the efficiency and security of the network management for version management at the same time.

[0151] Finally, it should be noted that those of ordinary skill in the art can understand that all or part of the processes in the above-described embodiments can be completed by instructing relevant hardware through a computer program. The program can be stored in a computer-readable storage medium. When the program is executed, it can include the processes of the above-described method embodiments.

[0152] In addition, it should be understood that the computer-readable storage medium (e.g., memory) herein can be a volatile memory or a non-volatile memory, or can include both volatile memory and non-volatile memory.

[0153] Those skilled in the art will also understand that the various exemplary logical blocks, modules, circuits, and algorithm steps described in connection with the disclosure herein can be implemented as electronic hardware, computer software, or a combination of both. To clearly illustrate this interchangeability of hardware and software, a general description of the functions of various illustrative components, blocks, modules, circuits, and steps has been presented. Whether this function is implemented as software or hardware depends on the specific application and the design constraints imposed on the overall system. The functions that those skilled in the art can implement in various ways for each specific application, but such implementation decisions should not be construed as causing a departure from the scope of the disclosure of the embodiments of the present invention.

[0154] The above are the exemplary embodiments disclosed by the present invention. However, it should be noted that various changes and modifications can be made without departing from the scope of the disclosure of the embodiments of the present invention as defined by the claims. The functions, steps, and / or actions of the method claims according to the disclosed embodiments herein need not be performed in any specific order. In addition, although the elements disclosed in the embodiments of the present invention can be described or claimed in individual form, they can also be understood as plural unless explicitly limited to the singular.

[0155] It should be understood that, as used herein, unless the context clearly supports an exception, the singular form "a" is also intended to include the plural form. It should also be understood that the "and / or" used herein refers to any and all possible combinations of one or more of the associated listed items.

[0156] The above serial numbers of the disclosed embodiments of the present invention are only for description and do not represent the advantages or disadvantages of the embodiments.

[0157] Those of ordinary skill in the art can understand that all or part of the steps of the above-described embodiments can be completed by hardware or by instructing relevant hardware through a program. The program can be stored in a computer-readable storage medium, and the above-mentioned storage medium can be a read-only memory, a magnetic disk, an optical disk, etc.

[0158] Those of ordinary skill in the art should understand that: The discussion of any of the above embodiments is merely exemplary and is not intended to imply that the scope of the disclosure of the embodiments of the present invention (including the claims) is limited to these examples; Under the concept of the embodiments of the present invention, the technical features in the above embodiments or different embodiments can also be combined, and there are many other variations in different aspects of the embodiments of the present invention as above, which are not provided in detail for the sake of brevity. Therefore, any omission, modification, equivalent replacement, improvement, etc. made within the spirit and principle of the embodiments of the present invention shall be included within the protection scope of the embodiments of the present invention.

Claims

1. A method for version update, characterized in that, it includes the following steps: Using BMC to receive a data packet including a new version of firmware or driver and an update script and decompress it to the corresponding directory of the shared flash; The BMC generates an interrupt to the host side through the Virtual Wire Channel of eSPI; In response to the host side receiving the interrupt, search for the new version of firmware or driver and the update script in the corresponding directory of the shared flash, and use the new version of firmware or driver and the update script for update, and send the update result to the BMC through IPMI commands; In response to the host side completing the update according to the new version of firmware or driver and the update script, generate an interrupt to the BMC through the Virtual Wire Channel of eSPI so that the BMC deletes the new version of firmware or driver and the update script in the corresponding directory of the shared flash; Pre-configure the BMC and the host side; Pre-configuring the BMC further includes: Configuring a first preset register to enable the eSPI flash access channel and the Virtual Wire Channel of eSPI and configure the sharing mode so that the BMC supports the run-time flash access channel; Dividing the BMC flash into a preset size as the shared flash, where the shared flash supports the host side to access with read-only permission through the run-time flash access channel; Formatting the shared flash as an ext4 file system; Pre-configuring the host side further includes: Configuring eSPI on the host side to support the run-time flash access channel and the Virtual Wire Channel of eSPI, so as to access the shared flash on the BMC side by using the Slave attached Flash Sharing mode of the run-time flash access channel of eSPI; Adding a script for mounting the shared flash formatted as an ext4 file system to the system startup script.

2. A version update system, characterized in that, it includes: A receiving module configured to use BMC to receive a data packet including a new version of firmware or driver and an update script and decompress it to the corresponding directory of the shared flash; An interrupt module configured to generate an interrupt from the BMC to the host side through the Virtual Wire Channel of eSPI; A search module, configured to search for a new version of firmware or driver and an update script in the directory corresponding to the shared flash in response to the host side receiving the interruption, perform an update using the new version of firmware or driver and the update script, and send the update result to the BMC via an IPMI command; A feedback module, configured to generate an interruption to the BMC via the Virtual Wire Channel of eSPI in response to the host side completing the update according to the new version of firmware or driver and the update script, so that the BMC deletes the new version of firmware or driver and the update script in the directory corresponding to the shared flash; A configuration module, configured to: Pre-configure the BMC and the host side; Wherein, the configuration module is further configured to: Configure a first preset register to enable the eSPI flash access channel and the Virtual Wire Channel of eSPI and configure a sharing mode so that the BMC supports the run-time flash access channel; Divide the BMC flash into a preset size as the shared flash, wherein the shared flash supports read-only access by the host side through the run-time flash access channel; Format the shared flash into an ext4 file system; The configuration module is further configured to: Configure eSPI on the host side to support the run-time flash access channel and the Virtual Wire Channel of eSPI, so as to access the shared flash on the BMC side by using the Slave attached Flash Sharing mode of the run-time flash access channel of eSPI; Add a script for mounting the shared flash formatted into an ext4 file system to the system startup script.

3. A computer device, comprising: At least one processor; And A memory, the memory stores a computer program that can run on the processor, wherein when the processor executes the program, it executes the steps of the method according to claim 1.

4. A computer-readable storage medium, the computer-readable storage medium stores a computer program, wherein, when the computer program is executed by a processor, it executes the steps of the method according to claim 1.

Citation Information

Patent Citations

  • Firmware loading method, system and equipment of BMC and medium

    CN113867739A

  • PCIe equipment firmware batch upgrading method and system, terminal and storage medium

    CN114253573A