# US 12,182,580 B2 · Peripheral component interconnect express device startup method and apparatus, and storage medium

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 12,182,580 B2
- Document ID: US12182580B2
- Status: Granted
- Kind: B2
- Application number: 18/170,574
- Filed: 2023-02-17
- Published: 2023-06-22
- Granted: 2024-12-31
- Earliest claimed: 2020-08-21
- Assignees: Huawei Technologies Co., Ltd.
- Applicants: Huawei Technologies Co., Ltd.
- Inventors: Yutao Li
- Web page: https://patentgrep.com/patent/US12182580B2

## CPC

- G06F 9/4403: {Processor initialisation}
- G06F 21/64: Protecting data integrity, e.g. using checksums, certificates or signatures
- G06F 9/4411: {Configuring for operating with peripheral devices; Loading of device drivers}
- G06F 9/44589: {Program code verification, e.g. Java bytecode verification, proof-carrying code (high-level semantic checks G06F8/43; prevention of errors by analysis, debugging or testing of software G06F11/36)}
- G06F 13/4221: {being an input/output bus, e.g. ISA bus, EISA bus, PCI bus, SCSI bus}
- G06F 21/572: {Secure firmware programming, e.g. of basic input output system [BIOS]}
- G06F 21/575: {Secure boot}
- G06F 21/85: interconnection devices, e.g. bus-connected or in-line devices
- G06F 2213/0026: PCI express
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

A method, apparatus and storage medium for starting up peripheral component interconnect express (PCIE) device are provided. According to the method, a basic input/output system (BIOS) attempts to verify firmware of a PCIE device to determine whether the firmware of the PCIE device is tampered with. Moreover, the BIOS may only start up a PCIE device with firmware that succeeds in the verification. Therefore, a computer device is prevented from starting up a PCIE device with firmware that is tampered with, thereby reducing the security risk caused by the PCIE device to the computer device.

## Claims

### Claim 1

A peripheral component interconnect express (PCIE) device startup method, applied to a computer device comprising a PCIE device, wherein the method comprises:
obtaining, by a basic input/output system (BIOS) of the computer device, firmware of the PCIE device;
verifying, by the BIOS, the firmware to generate a verification result; and
starting up, by the BIOS based on the verification result, the PCIE device when the verification result indicates that the verification for the firmware succeeds,
wherein the firmware comprises firmware code and signature data of the firmware code; and
the obtaining by a basic input/output system (BIOS) of the computer device, firmware of the PCIE device comprises:
obtaining, by the BIOS, the signature data of the firmware code from a driver of the PCIE device; and
reading, by the BIOS, the firmware code from the PCIE device.

### Claim 2 (depends on 1)

The method according to claim 1, further comprising:
skipping, by the BIOS, starting up the PCIE device when the verification result indicates that the verification for the firmware fails.

### Claim 3 (depends on 2)

The method according to claim 2, wherein the skipping, by the BIOS, starting up the PCIE device comprises:
controlling, by the BIOS, the PCIE device to be in a reset state or a power-off state; or
marking, by the BIOS, the PCIE device as a startup disabled state, wherein the startup disabled state indicates to skip starting up the PCIE device.

### Claim 4 (depends on 1)

The method according to claim 1, wherein the obtaining, by a basic input/output system (BIOS) of the computer device, firmware of the PCIE device comprises:
reading, by the BIOS, an image of the firmware from an expansion read-only memory (ROM) of the PCIE device.

### Claim 5 (depends on 4)

The method according to claim 4, wherein, before the reading, by the BIOS, an image of the firmware from an expansion read-only memory (ROM) of the PCIE device, the method further comprises:
reading, by the BIOS, an image type of the image and a certificate type of the signature data from the expansion ROM, wherein the image type indicates a code type of the image, and the certificate type indicates an encryption algorithm for calculating the signature data.

### Claim 6 (depends on 1)

The method according to claim 1, wherein the reading, by the BIOS, the firmware code from the PCIE device comprises:
reading, by the BIOS, an image of the firmware code from an expansion ROM of the PCIE device.

### Claim 7 (depends on 6)

The method according to claim 6, wherein before the reading, by the BIOS, an image of the firmware code from an expansion ROM of the PCIE device, the method further comprises:
reading, by the BIOS, an image type of the image and a certificate type of the signature data from the expansion ROM, wherein the image type indicates a code type of the image, and the certificate type indicates an encryption algorithm for calculating the signature data.

### Claim 8 (depends on 7)

The method according to claim 7, wherein the obtaining, by the BIOS, the signature data of the firmware code from a driver of the PCIE device comprises:
reading, by the BIOS, an image of the driver from the expansion ROM of the PCIE device; and
obtaining, by the BIOS, signature data of the firmware code from the image of the driver.

### Claim 9 (depends on 1)

The method according to claim 1, further comprising:
attempting, by the BIOS, to verify the driver; and
when the verification for the driver succeeds, performing, by the BIOS, the reading of the firmware code from the PCIE device.

### Claim 10 (depends on 1)

The method according to claim 1, wherein the BIOS stores a public key of the PCIE device, and the public key is for attempting to verify the firmware.

### Claim 11 (depends on 10)

The method according to claim 10, further comprising:
modifying, by the BIOS, the stored public key of the PCIE device based on a public key modification instruction.

### Claim 12

A computer device, comprising a basic input/output system (BIOS) and a peripheral component interconnect express (PCIE) device, wherein the BIOS is configured to:
obtain firmware of the PCIE device;
verify the firmware to generate a verification result; and
start up, based on the verification result, the PCIE device when the verification result indicates that the verification for the firmware succeeds,
wherein the firmware comprises firmware code and the BIOS is further configured to:
obtain signature data of the firmware code from a driver of the PCIE devices; and
read the firmware code from the PCIE device.

### Claim 13 (depends on 12)

The computer device of claim 12, wherein the BIOS is further configured to:
skip starting up the PCIE device when the verification result indicates that the verification for the firmware fails.

### Claim 14 (depends on 13)

The computer device of claim 13, wherein the BIOS is further configured to:
control the PCIE device to be in a reset state or a power-off state; or
mark the PCIE device as a startup disabled state, wherein the startup disabled state indicates to skip starting up the PCIE device.

### Claim 15 (depends on 12)

The computer device of claim 12, wherein the BIOS is further configured to:
read an image of the firmware from an expansion read-only memory (ROM) of the PCIE device.

### Claim 16 (depends on 15)

The computer device of claim 15, wherein the firmware comprises the signature data and the BIOS is further configured to:
read an image type of the image and a certificate type of the signature data from the expansion ROM, wherein the image type indicates a code type of the image, and the certificate type indicates an encryption algorithm for calculating the signature data.

### Claim 17 (depends on 12)

The computer device of claim 12, wherein the BIOS is further configured to:
read an image of the firmware code from an expansion ROM of the PCIE device.

### Claim 18

A non-transitory computer readable storage medium, storing at least one computer program that, when executed by a basic input/output system (BIOS), causes the BIOS to perform a peripheral component interconnect express (PCIE) device startup method comprising:
obtaining firmware of the PCIE device;
verifying the firmware to generate a verification result; and
starting up, based on the verification result, the PCIE device when the verification result indicates that the verification for the firmware succeeds,
wherein the firmware comprises firmware code and signature data of the firmware code; and
the obtaining firmware of the PCIE device comprises:
obtaining the signature data of the firmware code from a driver of the PCIE device; and
reading the firmware code from the PCIE device.
