IP Library Granted Patent US 10,866,922
Granted Patent B1
US 10,866,922 · App. 16/524,517 · Granted Dec 15, 2020

Firmware debug trace capture using serial peripheral interface

Inventor: Matthew Edward Hoffmann (Duluth, GA)
Assignee: AMERICAN MEGATRENDS INTERNATIONAL, LLC
G06F13/4282G06F11/3636G06F13/36G06F13/4072G06F8/61G06F9/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,866,922
App. No.
16/524,517
Granted
Dec 15, 2020
Kind
B1
Abstract

Debug trace statements from a firmware are captured during a boot cycle of a computer executing the firmware. The debug trace statements are written to a motherboard's Serial Peripheral Interface (“SPI”) device. A microcontroller's SPI device receives the debug trace statements from the motherboard's SPI device, transforms the data format of the debug trace statements, and transmits the transformed debug trace statements over a serial communications port of the microcontroller.

Claims (45)

1. A computer system that does not include an operative serial communications port, comprising:

a first processor,

a first Serial Peripheral Interface (“SPI”) device, and

a first firmware storing first instructions that when executed by the first processor cause the first processor to:

capture debug trace statements from code within the first firmware during a boot cycle of the computer system,

encode the debug trace statements into a first data format to generate encoded debug trace statements for transmission by the first SPI device, and

write the encoded debug trace statements in the first data format to the first SPI device, wherein the computing system is in communication with a microcontroller that comprises:

a second processor,

a second SPI device,

a serial communications port, and

a second firmware storing second instructions that when executed by the second processor cause the second processor to:

capture the encoded debug trace statements in the first data format from the first SPI device,

convert the encoded debug trace statements in first data format into a second data format to generate converted debug trace statements for transmission by the serial communications port, and

transmit the converted debug trace statements in the second data format over the serial communications port.

2. The computer system of claim 1 , wherein the first SPI device is a master device.

3. The computer system of claim 1 , wherein the second SPI device is a slave device.

4. The computer system of claim 1 , wherein the encoded debug trace statements in the first data format are captured on a master output slave input (“MOSI”) pin of the second SPI device.

5. The computer system of claim 1 , wherein the debug trace statements include information regarding a pre-Extensible Firmware Interface initialization (“PEI”) phase of the boot cycle of the computer system.

6. The computer system of claim 1 , wherein the debug trace statements include information regarding a driver execution (“DXE”) phase of the boot cycle of the computer system.

7. The computer system of claim 1 , wherein the second data format is American Standard Code for Information Interchange (“ASCII”).

8. The computer system of claim 1 , wherein the second data format is little endian.

9. A computer-implemented method, comprising:

causing a firmware to execute on a processor of a computer, the computer comprising a Serial Peripheral Interface device and lacking an operative serial communications port;

capturing debug trace statements from the firmware;

encoding the debug trace statements into a first data format to generate encoded debug trace statements;

loading the encoded debug trace statements to a shift register of the Serial Peripheral Interface device; and

transmitting the encoded debug trace statements via the Serial Peripheral Interface device.

10. The computer-implemented method of claim 9 , wherein the Serial Peripheral Interface device is a master device.

11. The computer-implemented method of claim 9 , wherein the encoded debug trace statements in the first data format are transmitted on a master output slave input (“MOSI”) pin of the Serial Peripheral Interface device.

12. The computer-implemented method of claim 9 , wherein the debug trace statements include information regarding a pre-Extensible Firmware Interface initialization (“PEI”) phase of a boot cycle of the computer.

13. The computer-implemented method of claim 9 , wherein the debug trace statements include information regarding a driver execution (“DXE”) phase of a boot cycle of the computer.

14. The computer-implemented method of claim 9 , wherein the first data format is big endian format.

15. A computer system that does not include an operative serial communications port, comprising:

one or more processors;

a Serial Peripheral Interface device; and

a computer-readable storage medium having instructions stored thereon that, when executed by the one or more processors, cause the one or more processors to:

capture debug trace statements generated by a firmware executing on the one or more processors;

encode the debug trace statements into a first data format to generate encoded debug trace statements;

load the encoded debug trace statements to a shift register of the Serial Peripheral Interface device; and

transmit the encoded debug trace statements via the Serial Peripheral Interface device.

16. The computer system of claim 15 , wherein the encoded debug trace statements are transmitted via the Serial Peripheral Interface device to at least one of: another computer system, a display device, or a printer device.

17. The computer system of claim 15 , wherein the debug trace statements that are encoded into the first data format to generate the encoded debug trace statements are pre-Extensible Firmware Interface initialization (“PEI”) phase debug trace statements that are generated in association with a PEI phase of a boot cycle of the computer system.

18. The computer system of claim 15 , wherein the debug trace statements include information regarding a driver execution (“DXE”) phase of the boot cycle of the computer system.

19. The computer system of claim 15 , wherein the first data format is big endian format.

20. The computer system of claim 19 , wherein the debug trace statements are captured in a little endian format.

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/0948 →
SECURITY INTEREST Recorded Apr 30, 2024
From: AMERICAN MEGATRENDS INTERNATIONAL, LLC
To: MIDCAP FINANCIAL TRUST, AS COLLATERAL AGENT
Reel/Frame 067274/0834 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 27, 2020
From: HOFFMANN, MATTHEW
To: AMERICAN MEGATRENDS, INC.
Reel/Frame 051956/0350 →
ENTITY CONVERSION Recorded Feb 27, 2020
From: AMERICAN MEGATRENDS, INC.
To: AMERICAN MEGATRENDS INTERNATIONAL, LLC
Reel/Frame 052047/0390 →
Cited By (1)
US 12,591,502