US11645219B2 - Method for generating a hybrid BMC system and hybrid BMC system - Google Patents

Method for generating a hybrid BMC system and hybrid BMC system Download PDF

Info

Publication number
US11645219B2
US11645219B2 US17/165,605 US202117165605A US11645219B2 US 11645219 B2 US11645219 B2 US 11645219B2 US 202117165605 A US202117165605 A US 202117165605A US 11645219 B2 US11645219 B2 US 11645219B2
Authority
US
United States
Prior art keywords
bmc
source code
host
client
compiled
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, expires
Application number
US17/165,605
Other versions
US20220245078A1 (en
Inventor
Chih-Yin Chang
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.)
American Megatrends International LLC
Original Assignee
American Megatrends International LLC
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 American Megatrends International LLC filed Critical American Megatrends International LLC
Priority to US17/165,605 priority Critical patent/US11645219B2/en
Assigned to AMERICAN MEGATRENDS INTERNATIONAL, LLC reassignment AMERICAN MEGATRENDS INTERNATIONAL, LLC ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: CHANG, CHIH-YIN
Priority to CN202110375033.4A priority patent/CN114840260B/en
Publication of US20220245078A1 publication Critical patent/US20220245078A1/en
Application granted granted Critical
Publication of US11645219B2 publication Critical patent/US11645219B2/en
Assigned to MIDCAP FINANCIAL TRUST, AS COLLATERAL AGENT reassignment MIDCAP FINANCIAL TRUST, AS COLLATERAL AGENT SECURITY INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: AMERICAN MEGATRENDS INTERNATIONAL, LLC
Assigned to AMERICAN MEGATRENDS INTERNATIONAL, LLC reassignment AMERICAN MEGATRENDS INTERNATIONAL, LLC RELEASE BY SECURED PARTY (SEE DOCUMENT FOR DETAILS). Assignors: MIDCAP FINANCIAL TRUST
Assigned to BAIN CAPITAL CREDIT, LP, AS ADMINISTRATIVE AGENT AND COLLATERAL AGENT reassignment BAIN CAPITAL CREDIT, LP, AS ADMINISTRATIVE AGENT AND COLLATERAL AGENT PATENT SECURITY AGREEMENT Assignors: AMERICAN MEGATRENDS INTERNATIONAL, LLC
Active legal-status Critical Current
Adjusted expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/441Multiboot arrangements, i.e. selecting an operating system to be loaded
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/382Information transfer, e.g. on bus using universal interface adapter
    • G06F13/385Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral devices
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3031Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a motherboard or an expansion card
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3058Monitoring arrangements for monitoring environmental properties or parameters of the computing system or of the computing system component, e.g. monitoring of power, currents, temperature, humidity, position, vibrations
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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 OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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 OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation

Definitions

  • the present invention relates to a BMC (baseboard management controller) system and method for generating a BMC system, and more particularly to a hybrid BMC system and method for generating the same.
  • BMC baseboard management controller
  • Computing devices normally operate within a range of parameters, with the operation performance being monitored by sensors.
  • the parameters being monitored may include, for example, temperature, humidity, power supply voltage, fan speed, etc.
  • a BMC baseboard management controller
  • BMC baseboard management controller
  • one of the objectives of the present invention is to provide a hybrid BMC (Baseboard Management Controller) system and a method for generating a hybrid BMC system that merges different functionalities from different BMC solutions into one BMC system.
  • BMC Baseboard Management Controller
  • one embodiment of the present invention provides a method for generating a hybrid BMC system, the method including: selecting, among a plurality of BMCs, one BMC to be a host BMC; selecting, among the plurality of BMCs, another BMC to be a client BMC, wherein the client BMC uses a first communication protocol different from a second communication protocol used by the host BMC, the client BMC being configured to perform a first task, and the host BMC being configured to perform a second task different from the first task; and configuring an adapter module of the host BMC to interface with the client BMC through the first communication protocol and interface with the host BMC through a second communication protocol such that the host BMC performs the first task through the adapter module.
  • the client BMC includes a first source code configured to perform the first task
  • the host BMC includes a second source code configured to perform the second task
  • the method further comprising: obtaining, using the adapter module, the first source code from the client BMC; compiling, through the adapter module, the first source code; and installing, using the adapter module, compiled first source code on the host BMC.
  • the step of compiling the first source code comprises: obtaining, using the adapter module, a compilation information from the client BMC; and using an emulated toolchain according to the compilation information of the client BMC to compile the first source code, wherein the emulated toolchain includes programming tools provided by the host BMC.
  • the method further comprises: compiling, using a native toolchain of the host BMC, the second source code; and generating, using the host BMC, a BMC image file including compiled first source code and compiled second source code.
  • the method further comprises: obtaining, using the adapter module, a runtime information associated with the first task from the client BMC; and configuring, using the adapter module, an emulated runtime environment according to the runtime information on the host BMC for the compiled first source code to be executed in.
  • the method further comprises: compiling, using a native toolchain of the host BMC, the second source code; generating, using the host BMC, a BMC image file including compiled first source code and compiled second source code; and executing the BMC image file on the host BMC to perform the first task and the second task, wherein the compiled first source code is executed on the emulated runtime environment, and the compiled second source code is executed on a native runtime environment of the host BMC.
  • the host BMC includes a second source code configured to perform a second task.
  • the adapter module of the host BMC includes a first source code of a client BMC configured to perform a first task, wherein the adapter module is configured to interface with the client BMC through a first communication protocol and interfacing with the host BMC through a second communication protocol such that the host BMC performs the first task through the adapter module.
  • the adapter module is configured to compile the first source code using an emulated toolchain according to a compilation information obtained from the client BMC, the emulated toolchain including programming tools of the host BMC.
  • the hybrid BMC system further comprises an emulated runtime environment for the compiled first source code to be executed in, the emulated runtime environment being configured by the adapter module according to a runtime information associated with the first task obtained from the client BMC.
  • the hybrid BMC system further comprises a BMC image file including compiled first source code and compiled second source code, wherein the compiled second source code is compiled by a native toolchain of the host BMC.
  • FIG. 1 is a functional block diagram illustrating a hybrid BMC system according to a first embodiment of the present invention.
  • FIG. 2 is a flow chart illustrating a method for generating a hybrid BMC system according to the first embodiment of the present invention.
  • FIG. 3 is a functional block diagram illustrating a hybrid BMC system according to a second embodiment of the present invention.
  • FIG. 4 is a flow chart illustrating migrating a function from a client BMC to a host BMC according to a method for generating a hybrid BMC system of the second embodiment of the present invention.
  • FIG. 5 is a flow chart illustrating an embodiment of compiling the first source code of the client BMC through the adapter module according to the method for generating a hybrid BMC system of the second embodiment of the present invention.
  • FIG. 6 is a flow chart illustrating an embodiment of the method for generating a hybrid BMC system of the second embodiment of the present invention.
  • FIG. 7 is a functional block diagram illustrating the hybrid BMC system according to a third embodiment of the present invention.
  • FIG. 8 is a flow chart illustrating the method for generating a hybrid BMC system of the second embodiment of the present invention.
  • FIG. 1 shows a hybrid BMC (baseboard management controller) system Z provided by the first embodiment
  • FIG. 2 illustrates a method for generating the hybrid BMC system Z of FIG. 1 .
  • the method for generating a hybrid BMC system includes step S 100 : selecting, among a plurality of BMCs, one BMC to be a host BMC 1 ; step S 102 : selecting, among the plurality of BMCs, another BMC to be a client BMC 2 , wherein the client BMC 2 uses a first communication protocol P 1 different from a second communication protocol P 2 used by the host BMC 1 , the client BMC 2 being configured to perform a first task, and the host BMC 1 being configured to perform a second task different from the first task; and step S 104 : configuring an adapter module 3 of the host BMC 1 to interface with the client BMC 2 through the first communication protocol P 1 and interface with the host BMC 1 through a second communication protocol P 2 such that the host BMC 1 performs the first task through the adapter module.
  • FIG. 1 shows the hybrid BMC system Z including the selected host BMC 1 and client BMC 2 according to step S 100 and step S 102 .
  • the present invention is not limited to the criterion used to choose the host BMC and the client BMC.
  • the BMC with the most desirable features, i.e. the tasks that the BMC is capable of performing is chosen to be the host BMC.
  • the client BMC 2 is configured to perform a first task that the host BMC 1 itself is not configured to perform.
  • the client BMC 2 has at least one desirable functionality that the host BMC does not have, i.e. the first task in the present embodiment.
  • the client BMC 2 uses a first communication protocol that is different from a second communication protocol used by the host BMC 1 .
  • the hybrid BMC system Z further includes an adapter module 3 .
  • the adapter module 3 is configured to interface with the client BMC 2 using the first communication protocol P 1 , and interface with the host BMC 1 using the second communication protocol P 2 .
  • the client BMC 2 includes a first task module 21 including a first source code SC 1 configured to perform the first task, a first toolchain 1 and a runtime environment RE 1 for the first source code SC 1 to be compiled and executed in respectively;
  • the host BMC 1 includes a second task module 11 including a second source code SC 2 configured to perform the second task, a native toolchain NTC and a native runtime environment NRE for the second source code SC 2 to be compiled and executed in respectively.
  • the host BMC 1 and the client BMC 2 uses different communication protocol, in the prior art it might take a lot of efforts and time to rewrite one of the first task module 21 and the second task module 11 so that the first task and the second task can be performed by one BMC, e.g. the host BMC 1 .
  • the hybrid BMC system Z includes the adapter module 3 that communicates with the client BMC 2 through the first communication protocol P 1 , and communicate with the host BMC 2 through the second communication protocol P 2 , allowing the host BMC 1 to access the first task module 21 and perform the first task through the adapter module 3 , thereby achieving a hybrid BMC system Z with hybrid functionality, that is, the function of the host BMC 1 plus the function of the client BMC 2 in the present embodiment.
  • the present embodiment allows the hybrid BMC system Z to integrate multiple functionalities from different BMC solutions.
  • the BMC solutions can be either proprietary BMC or open source BMC; the present invention is not limited thereto. That is to say, the first source code SC 1 and the second source code SC 2 can be proprietary BMC code or open source BMC code.
  • the method for generating a hybrid BMC system further includes step S 200 : obtaining, using the adapter module 3 , the first source code SC 1 from the client BMC 2 ; step S 202 : compiling, through the adapter module 3 , the first source code SC 1 ; and step S 204 : installing, using the adapter module 3 , compiled first source code El on the host BMC 1 .
  • the second embodiment exemplifies the method of migrating the functionality of the client BMC 2 to the host BMC 1 .
  • the first source code SC 1 that is configured to perform the first task is fetched by the adapter module 3 and compiled using a toolchain TC 1 ′.
  • the adapter module 3 includes a code for invoking a compiler in the toolchain TC′.
  • the toolchain TC′ can be from the host BMC 1 or the client BMC 2 , the details of which will be discussed below.
  • the adapter module 3 then installs the compiled first source code SC 1 on the host BMC 1 such that the host 1 BMC can perform the first task.
  • step S 202 can include step S 300 : obtaining, using the adapter module 3 , a compilation information I 1 from the client BMC 2 ; and step S 302 : using an emulated toolchain TC′ according to the compilation information of the client BMC 2 to compile the first source code SC 1 , wherein the emulated toolchain TC 1 ′ includes programming tools provided by the host BMC 1 .
  • the adapter module 3 obtained from the client BMC 2 the compilation information I 1 , which is associated with the compilation environment in which the first source code SC 1 is compiled.
  • the compilation information I 1 may be associated with the first toolchain TC 1 used by the client BMC 2 to compile the first source code SC 1 .
  • the adapter module 3 then generates, using programming tools from the host BMC 1 , an emulated toolchain TC 1 ′ that emulates the first toolchain TC 1 .
  • the first source code SC 1 can be compiled in the hybrid BMC system Z and thus the present embodiment achieves migrating functionality from one BMC to another, in which said two BMCs need different compilation environments.
  • the method for generating a hybrid BMC system of the present invention can further include step S 400 : compiling, using a native toolchain NTC of the host BMC 1 , the second source code SC 2 ; and step S 402 : generating, using the host BMC 1 , a BMC image file 13 including compiled first source code El and compiled second source code E 2 .
  • the BMC image file 13 can then be executed by the host BMC 1 , or installed on another BMC chipset.
  • the present embodiment achieves providing a hybrid BMC firmware image that includes functionalities from the host BMC 1 and the client BMC 2 .
  • the method for generating a hybrid BMC system of the present invention includes step S 500 : obtaining, using the adapter module 3 , a runtime information I 2 associated with the first task from the client BMC 2 ; step S 502 : configuring, using the adapter module 3 , an emulated runtime environment RE 1 ′ according to the runtime information I 2 on the host BMC 1 for the compiled first source code El to be executed in; and step S 504 : executing the BMC image file 13 on the host BMC 1 to perform the first task and the second task, wherein the compiled first source code El is executed on the emulated runtime environment RE 1 ′, and the compiled second source code E 2 is executed on the native runtime environment NRE of the host BMC 1 .
  • the runtime information 12 may include configuration file and libraries associated with the first source code SC 1 .
  • the adapter module 3 generates an emulated runtime environment RE 1 ′ on the host BMC 1 by configuring parameters according to the configuration file and installing the libraries needed when the compiled first source code El is executed.
  • the libraries associated with the first task may be provided by the host BMC 1 or obtained from the client BMC 2 by the adapter module 3 ; the present invention is not limited thereto.
  • the derived first source code SC 1 in the hybrid BMC system Z, the emulated toolchain TC 1 ′ together with the emulated runtime environment RE 1 ′ form an emulated first task module 2 ′ that serves to perform the first task outside of the client BMC 2 .
  • the compiled first source code El and the compiled second source code E 2 can then be executed on its runtime environment respectively, either emulated or native on the host BMC 1 .
  • the hybrid BMC system Z provided by the present embodiment achieves integrating the functionality of the client BMC 2 into the host BMC 1 during both the compile time and the run time.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Quality & Reliability (AREA)
  • Mathematical Physics (AREA)
  • Stored Programmes (AREA)

Abstract

A method for generating a hybrid BMC system and a hybrid BMC system are provided. The method includes: selecting, among a plurality of BMCs, one BMC to be a host BMC; selecting, among the plurality of BMCs, another BMC to be a client BMC, wherein the client BMC uses a first communication protocol different from a second communication protocol used by the host BMC, the client BMC being configured to perform a first task, and the host BMC being configured to perform a second task different from the first task; and configuring an adapter module of the host BMC to interface with the client BMC through the first communication protocol and interface with the host BMC through a second communication protocol such that the host BMC performs the first task through the adapter module.

Description

FIELD OF THE INVENTION
The present invention relates to a BMC (baseboard management controller) system and method for generating a BMC system, and more particularly to a hybrid BMC system and method for generating the same.
BACKGROUND
Computing devices normally operate within a range of parameters, with the operation performance being monitored by sensors. The parameters being monitored may include, for example, temperature, humidity, power supply voltage, fan speed, etc. In prior art, a BMC (baseboard management controller) is often used to collect and analysis monitor data reported from sensors measuring the operation and performance of the computing device.
Due to the crucial role of the BMC in the management of hardware devices, the development of BMC solutions evolves quickly, and the proprietary BMC software available on the market is diverse. Apart from proprietary BMC solutions, there is also the trend to open source BMC solution. Therefore, a way to integrate multiple BMC solutions into one BMC system is desirable in this technical field.
SUMMARY
Accordingly, one of the objectives of the present invention is to provide a hybrid BMC (Baseboard Management Controller) system and a method for generating a hybrid BMC system that merges different functionalities from different BMC solutions into one BMC system.
In order to achieve the aforementioned objective, one embodiment of the present invention provides a method for generating a hybrid BMC system, the method including: selecting, among a plurality of BMCs, one BMC to be a host BMC; selecting, among the plurality of BMCs, another BMC to be a client BMC, wherein the client BMC uses a first communication protocol different from a second communication protocol used by the host BMC, the client BMC being configured to perform a first task, and the host BMC being configured to perform a second task different from the first task; and configuring an adapter module of the host BMC to interface with the client BMC through the first communication protocol and interface with the host BMC through a second communication protocol such that the host BMC performs the first task through the adapter module.
In one aspect of the present invention, the client BMC includes a first source code configured to perform the first task, and the host BMC includes a second source code configured to perform the second task, the method further comprising: obtaining, using the adapter module, the first source code from the client BMC; compiling, through the adapter module, the first source code; and installing, using the adapter module, compiled first source code on the host BMC.
In one aspect of the present invention, the step of compiling the first source code comprises: obtaining, using the adapter module, a compilation information from the client BMC; and using an emulated toolchain according to the compilation information of the client BMC to compile the first source code, wherein the emulated toolchain includes programming tools provided by the host BMC.
In one aspect of the present invention, the method further comprises: compiling, using a native toolchain of the host BMC, the second source code; and generating, using the host BMC, a BMC image file including compiled first source code and compiled second source code.
In one aspect of the present invention, the method further comprises: obtaining, using the adapter module, a runtime information associated with the first task from the client BMC; and configuring, using the adapter module, an emulated runtime environment according to the runtime information on the host BMC for the compiled first source code to be executed in.
In one aspect of the present invention, the method further comprises: compiling, using a native toolchain of the host BMC, the second source code; generating, using the host BMC, a BMC image file including compiled first source code and compiled second source code; and executing the BMC image file on the host BMC to perform the first task and the second task, wherein the compiled first source code is executed on the emulated runtime environment, and the compiled second source code is executed on a native runtime environment of the host BMC.
Another embodiment of the present invention provides a hybrid BMC system comprising a host BMC and an adapter module of the host BMC. The host BMC includes a second source code configured to perform a second task. The adapter module of the host BMC includes a first source code of a client BMC configured to perform a first task, wherein the adapter module is configured to interface with the client BMC through a first communication protocol and interfacing with the host BMC through a second communication protocol such that the host BMC performs the first task through the adapter module.
In one aspect of the present invention, the adapter module is configured to compile the first source code using an emulated toolchain according to a compilation information obtained from the client BMC, the emulated toolchain including programming tools of the host BMC.
In one aspect of the present invention, the hybrid BMC system further comprises an emulated runtime environment for the compiled first source code to be executed in, the emulated runtime environment being configured by the adapter module according to a runtime information associated with the first task obtained from the client BMC.
In one aspect of the present invention, the hybrid BMC system further comprises a BMC image file including compiled first source code and compiled second source code, wherein the compiled second source code is compiled by a native toolchain of the host BMC.
In order to further the understanding of the present disclosure, reference is made to the following detailed description illustrating the embodiments and examples of the present disclosure. The description is for illustrative purpose only and is not intended to limit the scope of the claim.
BRIEF DESCRIPTION OF THE DRAWINGS
FIG. 1 is a functional block diagram illustrating a hybrid BMC system according to a first embodiment of the present invention.
FIG. 2 is a flow chart illustrating a method for generating a hybrid BMC system according to the first embodiment of the present invention.
FIG. 3 is a functional block diagram illustrating a hybrid BMC system according to a second embodiment of the present invention.
FIG. 4 is a flow chart illustrating migrating a function from a client BMC to a host BMC according to a method for generating a hybrid BMC system of the second embodiment of the present invention.
FIG. 5 is a flow chart illustrating an embodiment of compiling the first source code of the client BMC through the adapter module according to the method for generating a hybrid BMC system of the second embodiment of the present invention.
FIG. 6 is a flow chart illustrating an embodiment of the method for generating a hybrid BMC system of the second embodiment of the present invention.
FIG. 7 is a functional block diagram illustrating the hybrid BMC system according to a third embodiment of the present invention.
FIG. 8 is a flow chart illustrating the method for generating a hybrid BMC system of the second embodiment of the present invention.
DETAILED DESCRIPTION OF EMBODIMENTS
The aforementioned illustrations and following detailed descriptions are exemplary for the purpose of further explaining the scope of the present disclosure. Other objectives and advantages related to the present disclosure will be illustrated in the subsequent descriptions and appended drawings.
First Embodiment
Below a first embodiment of the present invention is described with reference to FIG. 1 and FIG. 2 , wherein FIG. 1 shows a hybrid BMC (baseboard management controller) system Z provided by the first embodiment and FIG. 2 illustrates a method for generating the hybrid BMC system Z of FIG. 1 .
Referring to FIG. 2 , in the present embodiment, the method for generating a hybrid BMC system includes step S100: selecting, among a plurality of BMCs, one BMC to be a host BMC 1; step S102: selecting, among the plurality of BMCs, another BMC to be a client BMC 2, wherein the client BMC 2 uses a first communication protocol P1 different from a second communication protocol P2 used by the host BMC 1, the client BMC 2 being configured to perform a first task, and the host BMC 1 being configured to perform a second task different from the first task; and step S104: configuring an adapter module 3 of the host BMC 1 to interface with the client BMC 2 through the first communication protocol P1 and interface with the host BMC 1 through a second communication protocol P2 such that the host BMC 1 performs the first task through the adapter module.
FIG. 1 shows the hybrid BMC system Z including the selected host BMC 1 and client BMC 2 according to step S100 and step S102. The present invention is not limited to the criterion used to choose the host BMC and the client BMC. Preferably, in one embodiment, the BMC with the most desirable features, i.e. the tasks that the BMC is capable of performing, is chosen to be the host BMC. In the present embodiment, the client BMC 2 is configured to perform a first task that the host BMC 1 itself is not configured to perform. In other words, the client BMC 2 has at least one desirable functionality that the host BMC does not have, i.e. the first task in the present embodiment. More specifically, in the present embodiment, the client BMC 2 uses a first communication protocol that is different from a second communication protocol used by the host BMC 1.
In the present embodiment, the hybrid BMC system Z further includes an adapter module 3. In step S104, the adapter module 3 is configured to interface with the client BMC 2 using the first communication protocol P1, and interface with the host BMC 1 using the second communication protocol P2. For example, the client BMC 2 includes a first task module 21 including a first source code SC1 configured to perform the first task, a first toolchain 1 and a runtime environment RE1 for the first source code SC1 to be compiled and executed in respectively; the host BMC 1 includes a second task module 11 including a second source code SC2 configured to perform the second task, a native toolchain NTC and a native runtime environment NRE for the second source code SC2 to be compiled and executed in respectively. Since the host BMC 1 and the client BMC 2 uses different communication protocol, in the prior art it might take a lot of efforts and time to rewrite one of the first task module 21 and the second task module 11 so that the first task and the second task can be performed by one BMC, e.g. the host BMC 1. In the present invention, the hybrid BMC system Z includes the adapter module 3 that communicates with the client BMC 2 through the first communication protocol P1, and communicate with the host BMC 2 through the second communication protocol P2, allowing the host BMC 1 to access the first task module 21 and perform the first task through the adapter module 3, thereby achieving a hybrid BMC system Z with hybrid functionality, that is, the function of the host BMC 1 plus the function of the client BMC 2 in the present embodiment.
This way, the present embodiment allows the hybrid BMC system Z to integrate multiple functionalities from different BMC solutions. It should be noted that the BMC solutions can be either proprietary BMC or open source BMC; the present invention is not limited thereto. That is to say, the first source code SC1 and the second source code SC2 can be proprietary BMC code or open source BMC code.
Second Embodiment
The second embodiment will be described below with reference to FIGS. 3-6 . Referring to FIG. 3 and FIG. 4 , the method for generating a hybrid BMC system further includes step S200: obtaining, using the adapter module 3, the first source code SC 1 from the client BMC 2; step S202: compiling, through the adapter module 3, the first source code SC1; and step S204: installing, using the adapter module 3, compiled first source code El on the host BMC 1.
Specifically, the second embodiment exemplifies the method of migrating the functionality of the client BMC 2 to the host BMC 1. In this embodiment, the first source code SC1 that is configured to perform the first task is fetched by the adapter module 3 and compiled using a toolchain TC1′. For example, the adapter module 3 includes a code for invoking a compiler in the toolchain TC′. The toolchain TC′ can be from the host BMC 1 or the client BMC 2, the details of which will be discussed below. The adapter module 3 then installs the compiled first source code SC1 on the host BMC 1 such that the host 1 BMC can perform the first task.
Moreover, referring to FIG. 5 , in one embodiment, step S202 can include step S300: obtaining, using the adapter module 3, a compilation information I1 from the client BMC 2; and step S302: using an emulated toolchain TC′ according to the compilation information of the client BMC 2 to compile the first source code SC1, wherein the emulated toolchain TC1′ includes programming tools provided by the host BMC 1.
Specifically, where the first source code SC1 and the second source code SC2 are written in different programming languages, they need different toolchains to compile. In the present embodiment, the adapter module 3 obtained from the client BMC 2 the compilation information I1, which is associated with the compilation environment in which the first source code SC1 is compiled. For example, the compilation information I1 may be associated with the first toolchain TC1 used by the client BMC 2 to compile the first source code SC1. The adapter module 3 then generates, using programming tools from the host BMC 1, an emulated toolchain TC1′ that emulates the first toolchain TC1. This way, the first source code SC1 can be compiled in the hybrid BMC system Z and thus the present embodiment achieves migrating functionality from one BMC to another, in which said two BMCs need different compilation environments.
With reference to FIG. 3 and FIG. 6 , in one embodiment, the method for generating a hybrid BMC system of the present invention can further include step S400: compiling, using a native toolchain NTC of the host BMC 1, the second source code SC2; and step S402: generating, using the host BMC 1, a BMC image file 13 including compiled first source code El and compiled second source code E2. The BMC image file 13 can then be executed by the host BMC 1, or installed on another BMC chipset. With the technical solution described above, wherein the source code SC1 and the second source code SC2 are each compiled by its native compilation environment, either emulated by the adapter module 3 or native on the host BMC, the present embodiment achieves providing a hybrid BMC firmware image that includes functionalities from the host BMC 1 and the client BMC 2.
Third Embodiment
Referring to FIG. 7 and FIG. 8 , in one embodiment, the method for generating a hybrid BMC system of the present invention includes step S500: obtaining, using the adapter module 3, a runtime information I2 associated with the first task from the client BMC 2; step S502: configuring, using the adapter module 3, an emulated runtime environment RE1′ according to the runtime information I2 on the host BMC 1 for the compiled first source code El to be executed in; and step S504: executing the BMC image file 13 on the host BMC 1 to perform the first task and the second task, wherein the compiled first source code El is executed on the emulated runtime environment RE 1′, and the compiled second source code E2 is executed on the native runtime environment NRE of the host BMC 1.
Specifically, the runtime information 12 may include configuration file and libraries associated with the first source code SC1. In the present embodiment, the adapter module 3 generates an emulated runtime environment RE1′ on the host BMC 1 by configuring parameters according to the configuration file and installing the libraries needed when the compiled first source code El is executed. The libraries associated with the first task may be provided by the host BMC 1 or obtained from the client BMC 2 by the adapter module 3; the present invention is not limited thereto. This way, the derived first source code SC1 in the hybrid BMC system Z, the emulated toolchain TC1′ together with the emulated runtime environment RE 1′ form an emulated first task module 2′ that serves to perform the first task outside of the client BMC 2. The compiled first source code El and the compiled second source code E2 can then be executed on its runtime environment respectively, either emulated or native on the host BMC 1. With the technical solution described above, the hybrid BMC system Z provided by the present embodiment achieves integrating the functionality of the client BMC 2 into the host BMC 1 during both the compile time and the run time.
The descriptions illustrated supra set forth simply the embodiments of the instant disclosure; however, the characteristics of the instant disclosure are by no means restricted thereto. All changes, alterations, or modifications conveniently considered by those skilled in the art are deemed to be encompassed within the scope of the instant disclosure delineated by the following claims.

Claims (10)

What is claimed is:
1. A method for generating a hybrid BMC (baseboard management controller) system, which includes a plurality of BMCs with source code, a toolchain, emulated and native runtime environment, the method comprising:
selecting, among a plurality of BMCs, one BMC to be a host BMC;
selecting, among the plurality of BMCs, another BMC to be a client BMC includes a first source code, wherein the client BMC uses a first communication protocol different from a second communication protocol used by the host BMC, the client BMC being configured to perform a first task, and the host BMC includes a second source code being configured to perform a second task different from the first task;
configuring an adapter module of the host BMC to interface with the client BMC through the first communication protocol and interface with the host BMC through a second communication protocol such that the host BMC performs the first task through the adapter module to provide a hybrid BMC firmware image that includes functionalities from the host BMC and the client BMC;
compiling, using a native toolchain of the host BMC, the second source code;
generating, using the host BMC, a BMC image file including compiled first source code and compiled second source code; and
executing the BMC image file on the host BMC to perform the first task and the second task, wherein the compiled first source code is executed on the emulated runtime environment and the compiled second source code is executed on a native runtime environment of the host BMC.
2. The method according to claim 1, wherein the client BMC includes a first source code configured to perform the first task, and the host BMC includes a second source code configured to perform the second task, the method further comprising:
obtaining, using the adapter module, the first source code from the client BMC;
compiling, through the adapter module, the first source code; and
installing, using the adapter module, compiled first source code on the host BMC.
3. The method according to claim 2, wherein the step of compiling the first source code comprises:
obtaining, using the adapter module, a compilation information from the client BMC; and
compiling the first source code using an emulated toolchain according to the compilation information of the client BMC, wherein the emulated toolchain includes programming tools provided by the host BMC.
4. The method according to claim 2, further comprising:
compiling the second source code using a native toolchain of the host BMC; and
generating, using the host BMC, a BMC image file including compiled first source code and compiled second source code.
5. The method according to claim 2, further comprising:
obtaining, using the adapter module, a runtime information associated with the first task from the client BMC; and
configuring, using the adapter module, an emulated runtime environment on the host BMC according to the runtime information, wherein the emulated runtime environment is for the compiled first source code to be executed in.
6. The method according to claim 5, further comprising:
compiling, using a native toolchain of the host BMC, the second source code;
generating, using the host BMC, a BMC image file including compiled first source code and compiled second source code; and
executing the BMC image file on the host BMC to perform the first task and the second task, wherein the compiled first source code is executed on the emulated runtime environment, and the compiled second source code is executed on a native runtime environment of the host BMC.
7. A hybrid baseboard management controller (BMC) system, comprising:
a plurality of BMCs with source code, wherein
among a plurality of BMCs, one BMC is selected to be a host BMC, and
among the plurality of BMCs, another BMC is selected to be a client BMC includes a first source code;
a toolchain, emulated and native runtime environment;
a host BMC, including a second source code configured to perform a second task, wherein the client BMC uses a first communication protocol different from a second communication protocol used by the host BMC, the client BMC being configured to perform a first task; and
an adapter module of the host BMC, including a first source code of a client BMC configured to perform a first task, wherein the adapter module interfaces with the client BMC through a first communication protocol and interfaces with the host BMC through a second communication protocol such that the host BMC performs the first task through the adapter to provide a hybrid BMC firmware image that includes functionalities from the host BMC and the client BMC;
wherein the second source code is compiled using a native toolchain of the host BMC;
wherein a BMC image file including compiled first source code and compiled second source code is generated using the host BMC; and
wherein the BMC image file is executed on the host BMC to perform the first task and the second task, wherein the compiled first source code is executed on the emulated runtime environment, and the compiled second source code is executed on a native runtime environment of the host BMC.
8. The hybrid BMC system according to claim 7, wherein the adapter module compiles the first source code using an emulated toolchain according to a compilation information obtained from the client BMC, the emulated toolchain including programming tools of the host BMC.
9. The hybrid BMC system according to claim 8, further comprising an emulated runtime environment for the compiled first source code to be executed in, the emulated runtime environment being configured by the adapter module according to a runtime information associated with the first task obtained from the client BMC.
10. The hybrid BMC system according to claim 8, further comprising a BMC image file including compiled first source code and compiled second source code, wherein the compiled second source code is compiled by a native toolchain of the host BMC.
US17/165,605 2021-02-02 2021-02-02 Method for generating a hybrid BMC system and hybrid BMC system Active 2041-08-22 US11645219B2 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
US17/165,605 US11645219B2 (en) 2021-02-02 2021-02-02 Method for generating a hybrid BMC system and hybrid BMC system
CN202110375033.4A CN114840260B (en) 2021-02-02 2021-04-08 Composite substrate management controller system and production method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US17/165,605 US11645219B2 (en) 2021-02-02 2021-02-02 Method for generating a hybrid BMC system and hybrid BMC system

Publications (2)

Publication Number Publication Date
US20220245078A1 US20220245078A1 (en) 2022-08-04
US11645219B2 true US11645219B2 (en) 2023-05-09

Family

ID=82562315

Family Applications (1)

Application Number Title Priority Date Filing Date
US17/165,605 Active 2041-08-22 US11645219B2 (en) 2021-02-02 2021-02-02 Method for generating a hybrid BMC system and hybrid BMC system

Country Status (2)

Country Link
US (1) US11645219B2 (en)
CN (1) CN114840260B (en)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20200099584A1 (en) * 2018-09-21 2020-03-26 Cisco Technology, Inc. Autonomous datacenter management plane
US20200314115A1 (en) * 2019-03-29 2020-10-01 Dell Products, Lp System and Method to Secure Renegotiation of Connections Between a Baseboard Management Controller and a Hosted Agent

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008070800A1 (en) * 2006-12-06 2008-06-12 Fusion Multisystems, Inc. Apparatus, system, and method for storage space recovery in solid-state storage
KR101522444B1 (en) * 2008-10-24 2015-05-21 인터내셔널 비지네스 머신즈 코포레이션 Source code processing method, system, and program
US9529583B2 (en) * 2013-01-15 2016-12-27 Intel Corporation Single microcontroller based management of multiple compute nodes
TW201514690A (en) * 2013-07-03 2015-04-16 Hon Hai Prec Ind Co Ltd System and method of virtualization of a baseboard management controller
US9756143B2 (en) * 2015-09-09 2017-09-05 American Megatrends, Inc. System and method for improving virtual media redirection speed in baseboard management controller (BMC)
US20190349246A1 (en) * 2018-05-14 2019-11-14 American Megatrends Inc. Method and system for managing a plurality of server units
CN109101391A (en) * 2018-07-03 2018-12-28 郑州云海信息技术有限公司 A kind of server monitoring information acquisition system and method
US11409678B2 (en) * 2019-02-04 2022-08-09 American Megatrends International, Llc Auto-provisioning and auto-installation of server SAN target

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20200099584A1 (en) * 2018-09-21 2020-03-26 Cisco Technology, Inc. Autonomous datacenter management plane
US20200314115A1 (en) * 2019-03-29 2020-10-01 Dell Products, Lp System and Method to Secure Renegotiation of Connections Between a Baseboard Management Controller and a Hosted Agent

Also Published As

Publication number Publication date
CN114840260A (en) 2022-08-02
US20220245078A1 (en) 2022-08-04
CN114840260B (en) 2023-11-10

Similar Documents

Publication Publication Date Title
US8028268B2 (en) System and method for building software package for embedded system
US9184991B2 (en) Method and apparatus for developing service processor solutions
US20110191752A1 (en) Method and System for Debugging of Software on Target Devices
US8893100B2 (en) Return address optimisation for a dynamic code translator
KR20050086494A (en) System and apparatus for eliminating user interaction during hardware configuration at system boot
CN108804313B (en) Method and device for remotely debugging program and server
US20150074657A1 (en) Runtime detection of software configurations and upgrades
US20070226697A1 (en) Autonomic performance management
KR20240077723A (en) Method for generating and verifying automotive embedded software based on autosar
US20220297731A1 (en) Train signal system and linkage method therefor
US20080082967A1 (en) Method and system for parameter profile compiling
US10474517B2 (en) Techniques of storing operational states of processes at particular memory locations of an embedded-system device
US20080127119A1 (en) Method and system for dynamic debugging of software
JP5269450B2 (en) Test system and back annotation method
US11645219B2 (en) Method for generating a hybrid BMC system and hybrid BMC system
CN114647413A (en) Code processing method and related equipment
EP4248307B1 (en) Link-time driver polymorphism for embedded systems
US20220019411A1 (en) Systems and methods for device-specific code completion
US20080127118A1 (en) Method and system for dynamic patching of software
CN113961232A (en) Terminal, method and platform server for providing integrated development environment
CN118672681A (en) OpenBMC-based FRU information processing method, openBMC-based FRU information processing device, openBMC-based FRU information processing equipment and storage medium
US12118412B2 (en) Data processing
US20140019983A1 (en) Inversion of control for executable extensions
CN116009917A (en) Image upgrade method, device, equipment and storage medium
KR20240077722A (en) Method for generating and verifying automotive embedded software based on autosar

Legal Events

Date Code Title Description
FEPP Fee payment procedure

Free format text: ENTITY STATUS SET TO UNDISCOUNTED (ORIGINAL EVENT CODE: BIG.); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

AS Assignment

Owner name: AMERICAN MEGATRENDS INTERNATIONAL, LLC, GEORGIA

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:CHANG, CHIH-YIN;REEL/FRAME:055134/0170

Effective date: 20210121

STPP Information on status: patent application and granting procedure in general

Free format text: DOCKETED NEW CASE - READY FOR EXAMINATION

STPP Information on status: patent application and granting procedure in general

Free format text: NON FINAL ACTION MAILED

STPP Information on status: patent application and granting procedure in general

Free format text: RESPONSE TO NON-FINAL OFFICE ACTION ENTERED AND FORWARDED TO EXAMINER

STCF Information on status: patent grant

Free format text: PATENTED CASE

AS Assignment

Owner name: MIDCAP FINANCIAL TRUST, AS COLLATERAL AGENT, MARYLAND

Free format text: SECURITY INTEREST;ASSIGNOR:AMERICAN MEGATRENDS INTERNATIONAL, LLC;REEL/FRAME:067274/0834

Effective date: 20240430

AS Assignment

Owner name: AMERICAN MEGATRENDS INTERNATIONAL, LLC, GEORGIA

Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:MIDCAP FINANCIAL TRUST;REEL/FRAME:069205/0948

Effective date: 20241017

Owner name: AMERICAN MEGATRENDS INTERNATIONAL, LLC, GEORGIA

Free format text: RELEASE OF SECURITY INTEREST;ASSIGNOR:MIDCAP FINANCIAL TRUST;REEL/FRAME:069205/0948

Effective date: 20241017

AS Assignment

Owner name: BAIN CAPITAL CREDIT, LP, AS ADMINISTRATIVE AGENT AND COLLATERAL AGENT, MASSACHUSETTS

Free format text: PATENT SECURITY AGREEMENT;ASSIGNOR:AMERICAN MEGATRENDS INTERNATIONAL, LLC;REEL/FRAME:069229/0834

Effective date: 20241017