IP Library Granted Patent US 10,417,006
Granted Patent B2
US 10,417,006 · App. 15/224,969 · Granted Sep 17, 2019

Unified method to send BIOS post codes to BMC

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,417,006
App. No.
15/224,969
Granted
Sep 17, 2019
Kind
B2
Abstract

In an aspect of the disclosure, a method, a computer-readable medium, and an apparatus are provided. The apparatus may be an embedded-system device. The embedded-system device emulates a USB device. The embedded-system device exposes the emulated USB device to a host of the embedded-system device through a USB connection. The embedded-system device receives data from BIOS of the host through the emulated USB device.

Claims (64)

1. A method of operating a computer system comprising a baseboard management controller (BMC) having a memory and at least one processor coupled to the memory, comprising:

emulating, executed by the processor of the BMC, a Universal Serial Bus (USB) device within the BMC, wherein the emulated USB device is a device in the Human Interface Device (HID) Class defined by the USB Specification;

exposing, executed by the processor of the BMC, the emulated USB device to a host of the BMC in the computer system;

receiving, executed by the processor of the BMC, data from Basic Input/Output System (BIOS) of the host through a USB HID control pipe of the emulated USB device, the control pipe being different from a data pipe of the emulated USB device, wherein the data are generated by initialization and tests routines of the BIOS during testing hardware components of the host; and

storing the data at the BMC.

2. The method of claim 1 , wherein the initialization and tests routines are a Power On Self Test (POST) procedure of the BIOS, wherein the POST procedure tests at least one of motherboard hardware, a central processing unit (CPU), a math coprocessor, a timer integrated circuit (IC), a direct memory access (DMA) controller, and an interrupt request (IRQ) controller to generate POST codes, wherein the data includes POST codes.

3. The method of claim 1 , further comprising:

establishing, by the emulated USB device, a control pipe with the host, wherein the data from the BIOS is received through USB packets transferred on the control pipe.

4. The method of claim 3 , the method further comprising:

receiving a USB packet from the host through the control pipe;

determining whether the USB packet contains the data from the BIOS based on an identifier of the USB packet; and

when the USB packet contains the data from the BIOS:

extracting, from the USB packet, the data from the BIOS; and

processing the data from the BIOS.

5. The method of claim 4 , the method further comprising, when the USB packet does not contain the data from the BIOS, sending the USB packet to a HID device in accordance with an indication of the USB packet.

6. The method of claim 1 , the method further comprising,

executing, at the host, the BIOS; and

generating, by the BIOS, the data.

7. The method of claim 6 , the method further comprising:

packing, at the host, the data from the BIOS in one or more USB packets destined for the emulated USB device; and

setting up an identifier of the one or more USB packets to indicate that the one or more USB packets contain the data from the BIOS.

8. A computer system comprising a baseboard management controller (BMC) having:

a memory; and

at least one processor coupled to the memory and configured to:

emulate a Universal Serial Bus (USB) device within the BMC in the computer system, wherein the emulated USB device is a device in the Human Interface Device (HID) Class defined by the USB Specification;

expose the emulated USB device to a host of the BMC in the computer system;

receive data from Basic Input/Output System (BIOS) of the host through a USB HID control pipe of the emulated USB device, the control pipe being different from a data pipe of the emulated USB device, wherein the data are generated by initialization and tests routines of the BIOS during testing hardware components of the host; and

store the data at the BMC.

9. The computer system of claim 8 , wherein the initialization and tests routines are a Power On Self Test (POST) procedure of the BIOS, wherein the POST procedure tests at least one of motherboard hardware, a central processing unit (CPU), a math coprocessor, a timer integrated circuit (IC), a direct memory access (DMA) controller, and an interrupt request (IRQ) controller to generate POST codes, wherein the data includes POST codes.

10. The computer system of claim 8 , wherein the at least one processor is further configured to:

establish, by the emulated USB device, a control pipe with the host, wherein the data from the BIOS is received through USB packets transferred on the control pipe.

11. The computer system of claim 10 , wherein the at least one processor is further configured to:

receive a USB packet from the host through the control pipe;

determine whether the USB packet contains the data from the BIOS based on an identifier of the USB packet; and

when the USB packet contains the data from the BIOS:

extract, from the USB packet, the data from the BIOS; and

process the data from the BIOS.

12. The computer system of claim 11 , wherein the at least one processor is further configured to, when the USB packet does not contain the data from the BIOS, send the USB packet to a HID device in accordance with an indication of the USB packet.

13. The computer system of claim 8 , wherein the at least one processor is further configured to,

execute, at the host, the BIOS; and

generate, by the BIOS, the data.

14. The computer system of claim 13 , wherein the at least one processor is further configured to:

pack, at the host, the data from the BIOS in one or more USB packets destined for the emulated USB device; and

set up an identifier of the one or more USB packets to indicate that the one or more USB packets contain the data from the BIOS.

15. A non-transitory computer readable medium storing computer executable code for operating a computer system including a baseboard management controller (BMC), comprising code to:

emulate a Universal Serial Bus (USB) device within the BMC in the computer system, wherein the emulated USB device is a device in the Human Interface Device (HID) Class defined by the USB Specification;

expose the emulated USB device to a host of the BMC in the computer system;

receive data from Basic Input/Output System (BIOS) of the host through a USB HID control pipe of the emulated USB device, the control pipe being different from a data pipe of the emulated USB device, wherein the data are generated by initialization and tests routines of the BIOS during testing hardware components of the host; and

store the data at the BMC.

16. The non-transitory computer-readable medium of claim 15 , wherein the initialization and tests routines are a Power On Self Test (POST) procedure of the BIOS, wherein the POST procedure tests at least one of motherboard hardware, a central processing unit (CPU), a math coprocessor, a timer integrated circuit (IC), a direct memory access (DMA) controller, and an interrupt request (IRQ) controller to generate POST codes, wherein the data includes POST codes.

17. The non-transitory computer-readable medium of claim 15 , wherein the at least one processor is further configured to:

establish, by the emulated USB device, a control pipe with the host, wherein the data from the BIOS is received through USB packets transferred on the control pipe.

18. The non-transitory computer-readable medium of claim 17 , wherein the at least one processor is further configured to:

receive a USB packet from the host through the control pipe;

determine whether the USB packet contains the data from the BIOS based on an identifier of the USB packet; and

when the USB packet contains the data from the BIOS:

extract, from the USB packet, the data from the BIOS; and

process the data from the BIOS.

19. The non-transitory computer-readable medium of claim 18 , wherein the at least one processor is further configured to, when the USB packet does not contain the data from the BIOS, send the USB packet to a HID device in accordance with an indication of the USB packet.

20. The non-transitory computer-readable medium of claim 15 , wherein the at least one processor is further configured to,

execute, at the host, the BIOS; and

generate, by the BIOS, the data;

pack, at the host, the data from the BIOS in one or more USB packets destined for the emulated USB device; and

set up an identifier of the one or more USB packets to indicate that the one or more USB packets contain the data from the BIOS.

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 Aug 1, 2016
From: CHRISTOPHER, SAMVINESH; BHATIA, ANURAG
To: AMERICAN MEGATRENDS, INC.
Reel/Frame 039304/0270 →