# US 11,029,965 B2 · Booting firmware from expansion block storage devices

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

- Number: US 11,029,965 B2
- Document ID: US11029965B2
- Status: Granted
- Kind: B2
- Application number: 16/354,306
- Filed: 2019-03-15
- Published: 2019-07-11
- Granted: 2021-06-08
- Earliest claimed: 2019-03-15
- Assignees: Intel Corporation
- Applicants: Intel Corporation
- Inventors: Jenny Pelner; James Pelner
- Web page: https://patentgrep.com/patent/US11029965B2

## CPC

- G06F 9/4401: Bootstrapping (security arrangements therefor G06F21/57)
- G06F 3/0604: {Improving or facilitating administration, e.g. storage management}
- G06F 3/0629: {Configuration or reconfiguration of storage systems}
- G06F 3/0673: {Single storage device}
- G06F 9/4403: {Processor initialisation}
- G06F 13/1684: {using multiple buses}
- G06F 9/4406: {Loading of operating system}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

Systems, apparatuses and methods may provide for technology to determine one or more default values associated with a block storage device and automatically retrieve boot code from the block storage device in accordance with the default value(s), wherein the boot code is retrieved via an expansion bus. In an example, the default value(s) include bus number information and address information, wherein the address information corresponds to a bus header of the block storage device. Moreover, the block storage device may be dedicated to the bus controller and retrieval of the boot code from the block storage device may bypass a bus enumeration procedure.

## Claims

### Claim 1

A semiconductor apparatus comprising:
one or more substrates; and
logic coupled to the one or more substrates, wherein the logic is at least partly implemented in one or more of configurable or fixed-functionality hardware, and the logic is to:
determine one or more default values associated with a block storage device, wherein the block storage device is to store boot code and operating system code, and
retrieve the boot code from the block storage device in accordance with the one or more default values, wherein the boot code is to be retrieved via an expansion bus;
wherein the one or more default values include bus number information and address information, and wherein the address information of the one or more default values corresponds to address information in a bus header of the block storage device.

### Claim 2 (depends on 1)

The semiconductor apparatus of claim 1, wherein the block storage device is to be dedicated to the semiconductor apparatus.

### Claim 3 (depends on 1)

The semiconductor apparatus of claim 1, wherein retrieval of the boot code from the block storage device bypasses a bus enumeration procedure.

### Claim 4 (depends on 1)

The semiconductor apparatus of claim 1, wherein the logic coupled to the one or more substrates is to initiate retrieval of the boot code from the block storage device in response to completion of a training of the expansion bus.

### Claim 5 (depends on 1)

The semiconductor apparatus of claim 1, further including one or more of a configuration register or a read only memory, wherein, to determine the one or more default values, the logic coupled to the one or more substrates is to retrieve at least one default value from one or more of the configuration register or the read only memory.

### Claim 6 (depends on 1)

The semiconductor apparatus of claim 1, wherein the logic coupled to the one or more substrates is to retrieve the operating system code from the block storage device via the expansion bus.

### Claim 7

A computing system comprising:
a block storage device;
an expansion bus coupled to the block storage device;
a bus controller coupled to the expansion bus, the bus controller including logic to:
determine one or more default values associated with the block storage device, wherein the block storage device is to store boot code and operating system code, and
retrieve the boot code from the block storage device in accordance with the one or more default values, wherein the boot code is to be retrieved via the expansion bus;
wherein the one or more default values include bus number information and address information, and wherein the address information of the one or more default values corresponds to address information in a bus header of the block storage device.

### Claim 8 (depends on 7)

The computing system of claim 7, wherein the block storage device is dedicated to the bus controller.

### Claim 9 (depends on 7)

The computing system of claim 7, wherein retrieval of the boot code from the block storage device bypasses a bus enumeration procedure.

### Claim 10 (depends on 7)

The computing system of claim 7, wherein the logic is to initiate retrieval of the boot code from the block storage device in response to completion of a training of the expansion bus.

### Claim 11 (depends on 7)

The computing system of claim 7, further including one or more of a configuration register or a read only memory, wherein, to determine the one or more default values, the logic is to retrieve at least one default value from one or more of the configuration register or the read only memory.

### Claim 12 (depends on 7)

The computing system of claim 7, wherein the logic is to retrieve the operating system code from the block storage device via the expansion bus.

### Claim 13

A method of operating a bus controller, comprising:
determining one or more default values associated with a block storage device, wherein the block storage device is to store boot code and operating system code; and
automatically retrieving the boot code from the block storage device in accordance with the one or more default values, wherein the boot code is retrieved via an expansion bus;
wherein the one or more default values include bus number information and address information, and wherein the address information of the one or more default values corresponds to address information in a bus header of the block storage device.

### Claim 14 (depends on 13)

The method of claim 13, wherein the block storage device is dedicated to the bus controller.

### Claim 15 (depends on 13)

The method of claim 13, wherein retrieval of the boot code from the block storage device bypasses a bus enumeration procedure.

### Claim 16 (depends on 13)

The method of claim 13, further including initiating retrieval of the boot code from the block storage device in response to completion of a training of the expansion bus.

### Claim 17 (depends on 13)

The method of claim 13, wherein determining the one or more default values includes retrieving at least one default value from one or more of a configuration register or a read only memory.
