IP Library Granted Patent US 9,665,469
Granted Patent B2
US 9,665,469 · App. 14/808,701 · Granted May 30, 2017

System and method of runtime downloading of debug code and diagnostics tools in an already deployed baseboard management controller (BMC) devices

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,665,469
App. No.
14/808,701
Granted
May 30, 2017
Kind
B2
Abstract

A system includes a baseboard management controller (BMC) and a remote computing device communicatively connected to the BMC via a network. The BMC includes a processor, a volatile memory, and a non-volatile memory storing a firmware. The remote computing device includes first and second computer executable code. The firmware, when executed at the processor, is configured to: in response to a debug command, request, receive, and execute the first computer executable code. The first computer executable code, when executed at the processor, is configured to mount a remote file system to the BMC corresponding to the second computer executable code, such that the second computer executable code is accessible to the BMC, retrieve the second computer executable code, and execute the second computer executable code at the BMC to perform an on-site debug process without interrupting operation of the firmware.

Claims (64)

1. A system, comprising:

a baseboard management controller (BMC), comprising a processor, a volatile memory, and a non-volatile memory storing a firmware; and

at least one remote computing device communicatively connected to the BMC via a network, the at least one remote computing device comprising first computer executable code and second computer executable code;

wherein the firmware, when executed at the processor of the BMC, is configured to:

in response to a debug command, request the first computer executable code from the at least one remote computing device via the network, and receive the first computer executable code; and

execute the first computer executable code received by the BMC;

wherein the first computer executable code, when received by the BMC and executed at the processor of the BMC, is configured to:

mount a remote file system to the BMC corresponding to the second computer executable code of the at least one remote computing device, such that the second computer executable code is accessible to the BMC;

retrieve the second computer executable code from the remote file system;

execute the second computer executable code at the BMC to perform an on-site debug process without interrupting operation of the firmware in the BMC, and to generate a fixed code that is free of bug; and

run the fixed code at the BMC without rebooting the BMC.

2. The system of claim 1 , wherein the remote file system is a network file system (NFS) or a common internet file system (CIFS).

3. The system of claim 1 , wherein the first computer executable code comprises a remote debug application, and the second computer executable code comprises a debug and diagnostic module and a fixing module.

4. The system of claim 3 , wherein the at least one remote computing device comprises a first remote computing device and a second remote computing device respectively communicatively connected to the BMC, wherein the first remote computing device stores the remote debug application, and the second remote computing device stores the debug and diagnostic module and the fixing module.

5. The system of claim 4 , wherein the remote debug application, when received by the BMC and executed at the processor of the BMC, is configured to execute the second computer executable code at the BMC by:

loading the debug and diagnostic module from the mounted remote file system to the volatile memory of the BMC; and

executing the debug and diagnostic module in the volatile memory to perform the on-site debug process.

6. The system of claim 5 , wherein the debug and diagnostic module, when executed at the processor of the BMC, is configured to:

in response to detecting a bug during the on-site debug process, load the fixing module from the mounted remote file system to the volatile memory of the BMC; and

execute the fixing module in the volatile memory of the BMC to fix the detected bug.

7. The system of claim 6 , wherein the fixing module, when executed at the processor of the BMC, is configured to:

generate the fixed code to fix the detected bug.

8. The system of claim 7 , wherein the firmware further comprises an update module, wherein the update module, when executed at the processor of the BMC, is configured to:

update the firmware stored in the non-volatile memory of the BMC based on the fixed code generated by the fixing module.

9. A method of debugging a baseboard management controller (BMC), comprising:

in response to receiving a debug command, requesting, by a processor of the BMC, first computer executable code from at least one remote computing device via a network, and receiving the first computer executable code, wherein the at least one remote computing device is communicatively connected to the BMC via the network;

executing, at a processor of the BMC, the first computer executable code received by the BMC;

mounting, by the processor of the BMC executing the first computer executable code, a remote file system to the BMC corresponding to second computer executable code of the at least one remote computing device, such that the second computer executable code is accessible to the BMC;

retrieving, by the processor of the BMC executing the first computer executable code, the second computer executable code from the remote file system;

executing, by the processor of the BMC executing the first computer executable code, the second computer executable code at the BMC to perform an on-site debug process without interrupting operation of firmware in the BMC, and to generate a fixed code that is free of bug; and

running the fixed code at the BMC without rebooting the BMC.

10. The method of claim 9 , wherein the remote file system is a network file system (NFS) or a common internet file system (CIFS).

11. The method of claim 9 , wherein the first computer executable code comprises a remote debug application, and the second computer executable code comprises a debug and diagnostic module and a fixing module.

12. The method of claim 11 , wherein the at least one remote computing device comprises a first remote computing device and a second remote computing device respectively communicatively connected to the BMC, wherein the first remote computing device stores the remote debug application, and the second remote computing device stores the debug and diagnostic module and the fixing module.

13. The method of claim 12 , wherein the remote debug application, when received by the BMC and executed at the processor of the BMC, is configured to execute the second computer executable code at the BMC by:

loading the debug and diagnostic module from the mounted remote file system to the volatile memory of the BMC; and

executing the debug and diagnostic module in the volatile memory to perform the on-site debug process.

14. The method of claim 13 , wherein

the debug and diagnostic module, when executed at the processor of the BMC, is configured to:

in response to detecting a bug during the on-site debug process, load the fixing module from the mounted remote file system to the volatile memory of the BMC; and

execute the fixing module in the volatile memory of the BMC to fix the detected bug; and

the fixing module, when executed at the processor of the BMC, is configured to:

generate the fixed code to fix the detected bug.

15. At least one non-transitory computer readable medium storing first, second and third computer executable code executable at a processor of a baseboard management controller (BMC),

wherein the third computer executable code, when executed at the processor of the BMC, is configured to:

in response to receiving a debug command, request the first computer executable code from at least one remote computing device via a network, and receiving the first computer executable code, wherein the at least one remote computing device is communicatively connected to the BMC via the network; and

execute the first computer executable code received by the BMC;

wherein the first computer executable code, when executed at the processor of the BMC, is configured to:

mount a remote file system to the BMC corresponding to second computer executable code of the at least one remote computing device, such that the second computer executable code is accessible to the BMC;

retrieve the second computer executable code from the remote file system;

execute the second computer executable code at the BMC to perform an on-site debug process without interrupting operation of the BMC, and to generate a fixed code that is free of bug; and

run the fixed code at the BMC without rebooting the BMC.

16. The at least one non-transitory computer readable medium of claim 15 , wherein the remote file system is a network file system (NFS) or a common internet file system (CIFS).

17. The at least one non-transitory computer readable medium of claim 15 , wherein the first computer executable code comprises a remote debug application, and the second computer executable code comprises a debug and diagnostic module and a fixing module.

18. The at least one non-transitory computer readable medium of claim 17 , wherein the at least one remote computing device comprises a first remote computing device and a second remote computing device respectively communicatively connected to the BMC, wherein the first remote computing device stores the remote debug application, and the second remote computing device stores the debug and diagnostic module and the fixing module.

19. The at least one non-transitory computer readable medium of claim 18 , wherein the remote debug application, when received by the BMC and executed at the processor of the BMC, is configured to execute the second computer executable code at the BMC by:

loading the debug and diagnostic module from the mounted remote file system to the volatile memory of the BMC; and

executing the debug and diagnostic module in the volatile memory to perform the on-site debug process.

20. The at least one non-transitory computer readable medium of claim 13 , wherein

the debug and diagnostic module, when executed at the processor of the BMC, is configured to:

in response to detecting a bug during the on-site debug process, load the fixing module from the mounted remote file system to the volatile memory of the BMC; and

execute the fixing module in the volatile memory of the BMC to fix the detected bug; and

the fixing module, when executed at the processor of the BMC, is configured to:

generate the fixed code to fix the detected bug.

Assignments (5)
PATENT SECURITY AGREEMENT Recorded Oct 23, 2024
From: AMERICAN MEGATRENDS INTERNATIONAL, LLC
To: BAIN CAPITAL CREDIT, LP, AS ADMINISTRATIVE AGENT AND COLLATERAL AGENT
Reel/Frame 069229/0834 →
RELEASE OF SECURITY INTEREST Recorded Oct 17, 2024
From: MIDCAP FINANCIAL TRUST
To: AMERICAN MEGATRENDS INTERNATIONAL, LLC
Reel/Frame 069205/0795 →
SECURITY INTEREST Recorded May 6, 2019
From: AMERICAN MEGATRENDS INTERNATIONAL, LLC
To: MIDCAP FINANCIAL TRUST, AS COLLATERAL AGENT
Reel/Frame 049087/0266 →
ENTITY CONVERSION Recorded Apr 15, 2019
From: AMERICAN MEGATRENDS, INC.
To: AMERICAN MEGATRENDS INTERNATIONAL, LLC
Reel/Frame 049091/0973 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 24, 2015
From: CHRISTOPHER, SAMVINESH; BHATIA, ANURAG; THANGAPANDIAN, WINSTON
To: AMERICAN MEGATRENDS, INC.
Reel/Frame 036174/0191 →