IP Library › Granted Patent US 10,977,158
Granted Patent B1
US 10,977,158 · App. 16/832,609 · Granted Apr 13, 2021

Firmware boot tracing

Inventors: Cheng-Han Chen (Taoyuan, TW); Cheng-Han Wu (Taoyuan, TW); Jyun-Jie Huang (Taoyuan, TW)
Assignee: QUANTA COMPUTER INC.
G06F11/3636G06F9/4401
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 10,977,158
App. No.
16/832,609
Granted
Apr 13, 2021
Kind
B1
Abstract

Firmware can be built to be capable of generating and outputting trace data, during execution, to assist in debugging firmware problems without substantially slowing operation of the firmware and without potentially disclosing secret information associated with the firmware. The firmware (e.g., BIOS) can output hash digests of various modules within the firmware, which can be compared with a pre-established mapping table to identify modules that successfully completed or did not successfully complete during execution of the firmware, such as during a startup procedure. The hash digest can be a one-way hash, which can be rapidly executable during operation of the firmware and can keep the code of the modules hidden from unauthorized reverse engineering.

Claims (53)

1. A system, comprising:

one or more data processors; and

a non-transitory computer-readable storage medium containing instructions which, when executed on the one or more data processors, cause the one or more data processors to perform operations including:

accessing a firmware comprising a plurality of modules, wherein each of the plurality of modules comprises code to facilitate operation of a computing system;

running each of the plurality of modules, wherein running a module of the plurality of modules comprises:

generating a hash digest using the module;

outputting the hash digest;

selecting a protocol from a plurality of protocols of the module, wherein executing the code of the module comprises executing code of the protocol;

accessing a protocol global uniform identifier (GUID) associated with the selected protocol;

outputting the protocol GUID associated with the selected protocol; and

executing the code of the module.

2. The system of claim 1 , wherein outputting the hash digest comprises appending the hash digest to a trace data file.

3. The system of claim 2 , wherein the operations further comprise:

receiving a priority interrupt signal; and

outputting the trace data file in response to receiving the priority interrupt signal.

4. The system of claim 3 , wherein the operations further comprise:

initializing a timer, wherein completion of the timer is associated with non-completion of at least one of the plurality of modules; and

sending the priority interrupt signal in response to completion of the timer.

5. The system of claim 1 , wherein the firmware is a basic input/output system (BIOS).

6. A computer-implemented method, comprising:

accessing a firmware comprising a plurality of modules, wherein each of the plurality of modules comprises code to facilitate operation of a computing system;

running each of the plurality of modules, wherein running a module of the plurality of modules comprises:

generating a hash digest using the module;

outputting the hash digest;

selecting a protocol from a plurality of protocols of the module, wherein executing the code of the module comprises executing code of the protocol;

accessing a protocol global uniform identifier (GUID) associated with the selected protocol;

outputting the protocol GUID associated with the selected protocol; and

executing the code of the module.

7. The method of claim 6 , wherein outputting the hash digest comprises appending the hash digest to a trace data file.

8. The method of claim 7 , further comprising:

receiving a priority interrupt signal; and

outputting the trace data file in response to receiving the priority interrupt signal.

9. The method of claim 8 , further comprising:

initializing a timer, wherein completion of the timer is associated with non-completion of at least one of the plurality of modules; and

sending the priority interrupt signal in response to completion of the timer.

10. The method of claim 6 , wherein the firmware is a basic input/output system (BIOS).

11. A computer-program product tangibly embodied in a non-transitory machine-readable storage medium, including instructions configured to cause a data processing apparatus to perform operations including:

accessing a firmware comprising a plurality of modules, wherein each of the plurality of modules comprises code to facilitate operation of a computing system;

running each of the plurality of modules, wherein running a module of the plurality of modules comprises:

generating a hash digest using the module;

outputting the hash digest;

selecting a protocol from a plurality of protocols of the module, wherein executing the code of the module comprises executing code of the protocol;

accessing a protocol global uniform identifier (GUID) associated with the selected protocol;

outputting the protocol GUID associated with the selected protocol; and

executing the code of the module.

12. The computer-program product of claim 11 , wherein outputting the hash digest comprises appending the hash digest to a trace data file.

13. The computer-program product of claim 12 , wherein the operations further comprise:

receiving a priority interrupt signal; and

outputting the trace data file in response to receiving the priority interrupt signal.

14. The computer-program product of claim 13 , wherein the operations further comprise:

initializing a timer, wherein completion of the timer is associated with non-completion of at least one of the plurality of modules; and

sending the priority interrupt signal in response to completion of the timer.

15. The computer-program product of claim 11 , wherein the firmware is a basic input/output system (BIOS).

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 30, 2020
From: CHEN, CHENG-HAN; WU, CHENG-HAN; HUANG, JYUN-JIE
To: QUANTA COMPUTER INC.
Reel/Frame 052260/0315 →
Cited By (1)
US 12,346,430