IP Library Granted Patent US 8,918,778
Granted Patent B2
US 8,918,778 · App. 13/864,761 · Granted Dec 23, 2014

Method of fail safe flashing management device and application of the same

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 8,918,778
App. No.
13/864,761
Granted
Dec 23, 2014
Kind
B2
Abstract

An aspect relates to fail safe flashing techniques for a management device of a computer system. A non-volatile memory of the management device stores a current firmware, an actual critical information and a backup critical information, which is rewritable in a booting mode and read-only in a flash mode. A flasher module is launched to operate the management device in the flash mode. The actual critical information is copied to a volatile memory and erased in the non-volatile memory. A replacement firmware is used to upgrade the current firmware. The actual critical information is mixed and matched with a new critical information. A user input is requested to write the mixed and matched critical information back to the non-volatile memory as the actual critical information. When the user input is not received after a first predetermined time period, the mixed and matched critical information is automatically written back.

Claims (84)

1. A method of fail safe flashing a management device of a computer system, the management device comprising a volatile memory and a non-volatile memory, wherein the non-volatile memory is a flash memory, and wherein the non-volatile memory stores a current firmware, a backup critical information, and an actual critical information, the method comprising:

launching a flasher module to operate the management device in a flash mode;

copying the actual critical information from the non-volatile memory to the volatile memory, and erasing the actual critical information stored in the non-volatile memory;

upgrading the current firmware by a replacement firmware received from a remote computing device;

mixing and matching the actual critical information with a new critical information;

requesting a user input to write the mixed and matched critical information back to the non-volatile memory as the actual critical information;

writing the mixed and matched critical information back to the non-volatile memory as the actual critical information when the user input is not received after a first predetermined time period; and

restarting the management device in a booting mode,

wherein the backup critical information is read-only in the flash mode and rewritable in the booting mode; and

wherein the step of restarting the management device in a booting mode comprises:

validating the backup critical information;

validating the actual critical information if the backup critical information is invalid, and copying the actual critical information to the backup critical information if the actual critical information is valid; and

comparing the backup critical information to the actual critical information if the backup critical information is valid, and copying the backup critical information to the actual critical information if the backup critical information is different from the actual critical information.

2. The method as claimed in claim 1 , wherein the management device is a baseboard management controller (BMC).

3. The method as claimed in claim 1 , further comprising:

receiving, from the remote computing device, version information of the replacement firmware via the network;

comparing the version information of the replacement firmware to a version information of the current firmware in the non-volatile memory;

validating the replacement firmware, and upgrading the current firmware by the replacement firmware when the version information of the replacement firmware is different from the version information of the current firmware, or when an instruction is received from the remote computing device to override the current firmware within a second predetermined time period; and

aborting the upgrading when no instruction from the remote computing device is received within the second predetermined time period.

4. The method as claimed in claim 1 , wherein the flash memory is partitioned to at least two partitions, wherein the actual critical information and the current firmware are respectively stored in the at least two partitions, and the partition storing the actual critical information includes a first validity flag sector indicating validity of the actual critical information.

5. The method as claimed in claim 1 , wherein the flash memory is divided to a plurality of memory technology device (MTD) blocks, and a file system is mounted on the blocks of the flash memory.

6. The method as claimed in claim 5 , further comprising:

unmounting the file system from the flash memory after copying the actual critical information to the volatile memory and erasing the actual critical information stored in the flash memory; and

mounting the file system to the flash memory before writing the mixed and matched critical information back to the flash memory.

7. A method of fail safe flashing a management device of a computer system, the management device comprising a volatile memory and a non-volatile memory, wherein the non-volatile memory stores a current firmware, an actual critical information and a backup critical information, wherein the backup critical information is rewritable in a booting mode and read-only in a flash mode, the method comprising:

launching a flasher module to operate the management device in the flash mode;

copying the actual critical information from the non-volatile memory to the volatile memory, and erasing the actual critical information stored in the non-volatile memory;

upgrading the current firmware by a replacement firmware received from a remote computing device;

mixing and matching the actual critical information with a new critical information;

writing the mixed and matched critical information back to the non-volatile memory as the actual critical information; and

restarting the management device in the booting mode, and replacing the actual critical information with the backup information in response to a determination of the backup critical information being valid and being different from the actual critical information,

wherein the step of replacing the actual critical information with the backup information comprises:

validating the backup critical information;

comparing the backup critical information to the actual critical information when the backup critical information is valid, replacing the actual critical information with the backup information when the backup critical information is different from the actual critical information; and

validating the actual critical information when the backup critical information is invalid, and replacing the backup critical information with the actual critical information when the actual critical information is valid.

8. The method as claimed in claim 7 , wherein the step of upgrading the current firmware comprises:

receiving, from the remote computing device, the replacement firmware via a network, and storing the replacement firmware to the volatile memory;

validating the replacement firmware;

copying a part of the current firmware to the volatile memory;

comparing the part of the current firmware in the volatile memory to a corresponding part of the replacement firmware in the volatile memory; and

writing the corresponding part of the replacement firmware to the non-volatile memory to replace the part of the current firmware when the part of the current firmware is different from the corresponding part of the replacement firmware, or when an instruction is received from the remote computing device to override the part of the current firmware.

9. The method as claimed in claim 7 , wherein the management device is a baseboard management controller (BMC).

10. The method as claimed in claim 7 , further comprising:

receiving, from the remote computing device, version information of the replacement firmware via the network;

comparing the version information of the replacement firmware to a version information of the current firmware in the non-volatile memory; and

upgrading the current firmware by the replacement firmware when the version information of the replacement firmware is different from the version information of the current firmware, or when an instruction is received from the remote computing device to override the current firmware.

11. The method as claimed in claim 7 , wherein the non-volatile memory is a flash memory, and the flash memory is partitioned to at least two partitions, wherein the current firmware is stored in one of the at least two partitions, and the actual critical information and the backup critical information are stored in the other of the at least two partitions.

12. The method as claimed in claim 11 , wherein the partition storing the actual critical information and the backup critical information includes a first validity flag sector indicating validity of the actual critical information and a second validity flag sector indicating validity of the backup critical information.

13. The method as claimed in claim 7 , wherein the flash memory is divided to a plurality of memory technology device (MTD) blocks, and a file system is mounted on the blocks of the flash memory.

14. The method as claimed in claim 13 , further comprising:

unmounting the file system from the flash memory after copying the actual critical information to the volatile memory and erasing the actual critical information stored in the flash memory; and

mounting the file system to the flash memory before writing the mixed and matched critical information back to the flash memory.

15. A method of fail safe flashing a management device of a computer system, the management device comprising a volatile memory and a non-volatile memory, wherein the non-volatile memory stores a current firmware, an actual critical information and a backup critical information, wherein the backup critical information is rewritable in a booting mode and read-only in a flash mode, the method comprising:

launching a flasher module to operate the management device in the flash mode;

copying the actual critical information from the non-volatile memory to the volatile memory, and erasing the actual critical information stored in the non-volatile memory;

upgrading the current firmware by a replacement firmware received from a remote computing device;

mixing and matching the actual critical information with a new critical information;

requesting a user input to write the mixed and matched critical information back to the non-volatile memory as the actual critical information;

writing the mixed and matched critical information back to the non-volatile memory as the actual critical information when the user input is not received after a first predetermined time period; and

restarting the management device in the booting mode, and replacing the actual critical information with the backup information in response to a determination of the backup critical information being valid and being different from the actual critical information,

wherein the step of replacing the actual critical information with the backup information comprises:

validating the backup critical information;

comparing the backup critical information to the actual critical information when the backup critical information is valid, replacing the actual critical information with the backup information when the backup critical information is different from the actual critical information; and

validating the actual critical information when the backup critical information is invalid, and replacing the backup critical information with the actual critical information when the actual critical information is valid.

16. The method as claimed in claim 15 , wherein the step of upgrading the current firmware comprises:

receiving, from the remote computing device, the replacement firmware via a network, and storing the replacement firmware to the volatile memory;

validating the replacement firmware;

copying a part of the current firmware to the volatile memory;

comparing the part of the current firmware in the volatile memory to a corresponding part of the replacement firmware in the volatile memory;

writing the corresponding part of the replacement firmware to the non-volatile memory to replace the part of the current firmware when the part of the current firmware is different from the corresponding part of the replacement firmware, or when an instruction is received from the remote computing device to override the part of the current firmware within a second predetermined time period; and

skipping the part of the current firmware when no instruction from the remote computing device is received within the second predetermined time period.

17. The method as claimed in claim 15 , wherein the management device is a baseboard management controller (BMC).

18. The method as claimed in claim 15 , further comprising:

receiving, from the remote computing device, version information of the replacement firmware via the network;

comparing the version information of the replacement firmware to a version information of the current firmware in the non-volatile memory;

upgrading the current firmware by the replacement firmware when the version information of the replacement firmware is different from the version information of the current firmware, or when an instruction is received from the remote computing device to override the current firmware within a third predetermined time period; and

aborting the upgrading when no instruction from the remote computing device is received within the third predetermined time period.

19. The method as claimed in claim 15 ,

wherein the non-volatile memory is a flash memory, and the flash memory is partitioned to at least two partitions, wherein the current firmware is stored in one of the at least two partitions, and the actual critical information and the backup critical information are stored in the other of the at least two partitions; and

wherein the partition storing the actual critical information and the backup critical information includes a first validity flag sector indicating validity of the actual critical information and a second validity flag sector indicating validity of the backup critical information.

20. The method as claimed in claim 15 , wherein the flash memory is divided to a plurality of memory technology device (MTD) blocks, and a file system is mounted on the blocks of the flash memory.

21. The method as claimed in claim 20 , further comprising:

unmounting the file system from the flash memory after copying the actual critical information to the volatile memory and erasing the actual critical information stored in the flash memory; and

mounting the file system to the flash memory before writing the mixed and matched critical information back to the flash memory.

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 Apr 17, 2013
From: AYANAM, VARADACHARI SUDAN; PARTHIBAN, BASKAR; CHRISTOPHER, SAMVINESH; MARIMUTHU, SENGUTTUVAN; BALAKRISHNAN, VENKATESAN
To: AMERICAN MEGATRENDS, INC.
Reel/Frame 030235/0463 →