# US 10,311,236 B2 · Secure system memory training

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

- Number: US 10,311,236 B2
- Document ID: US10311236B2
- Status: Granted
- Kind: B2
- Application number: 15/358,640
- Filed: 2016-11-22
- Published: 2018-05-24
- Granted: 2019-06-04
- Earliest claimed: 2016-11-22
- Assignees: Advanced Micro Devices, Inc.; ATI Technologies ULC
- Applicants: Advanced Micro Devices, Inc.; ATI Technologies ULC
- Inventors: Kathirkamanathan Nadarajah; Oswin Housty; Sergey Blotsky; Tan Peng; Hary Devapriyan Mahesan
- Web page: https://patentgrep.com/patent/US10311236B2

## CPC

- G06F 21/575: {Secure boot}
- G06F 9/4405: {Initialisation of multiprocessor systems}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

Systems, apparatuses, and methods for performing secure system memory training are disclosed. In one embodiment, a system includes a boot media, a security processor with a first memory, a system memory, and one or more main processors coupled to the system memory. The security processor is configured to retrieve first data from the boot media and store and authenticate the first data in the first memory. The first data includes a first set of instructions which are executable to retrieve, from the boot media, a configuration block with system memory training parameters. The security processor also executes a second set of instructions to initialize and train the system memory using the training parameters. After training the system memory, the security processor retrieves, authenticates, and stores boot code in the system memory and releases the one or more main processors from reset to execute the boot code.

## Claims

### Claim 1

A system comprising:
a boot media; and
a security processor comprising a first memory;
a system memory comprising one or more memory devices; and
one or more main processors, separate from the security processor, coupled to the system memory;
wherein prior to releasing the one or more main processors from reset, the security processor is configured to:
load and authenticate multiple blocks of data from the boot media into the first memory, wherein at least one block of data includes a first bootloader that comprises a set of executable instructions; and
execute the first bootloader to:
fetch a further block of data from the boot media, wherein the further block of data comprises a second bootloader,
wherein the second bootloader is configured to retrieve one or more parameters from the configuration block for initializing and training the system memory; and
store and authenticate the second bootloader in the first memory;
execute the second bootloader to initialize and train the system memory.

### Claim 2 (depends on 1)

The system as recited in claim 1, wherein a first block of data comprises a kernel executable by the security processor.

### Claim 3 (depends on 2)

The system as recited in claim 2, wherein the kernel is executable by the security processor to:
fetch a second block of data from the boot media, wherein the second block of data comprises the first bootloader; and
store and authenticate the second block of data in the first memory.

### Claim 4 (depends on 3)

The system as recited in claim 3, wherein the security processor is further configured to execute the first bootloader to:
fetch a third block of data from the boot media, wherein the third block of data comprises a configuration block comprising parameters for initializing and training the system memory; and
store and authenticate the configuration block in the first memory.

### Claim 5 (depends on 1)

The system as recited in claim 1, wherein responsive to completing training of the system memory, the security processor is configured to:
retrieve basic input/output system (BIOS) execution code from the boot media and store the BIOS execution code in the first memory; and
authenticate the BIOS execution code.

### Claim 6 (depends on 5)

The system as recited in claim 5, wherein responsive to completing training of the system memory, the security processor is further configured to:
store the BIOS execution code in the system memory; and
release the one or more main processors from reset to allow the one or more main processors to execute the BIOS execution code from the system memory.

### Claim 7

A method comprising:
prior to releasing one or more main processors from reset, a security processor separate from the one or more main processors:
loading and authenticating multiple blocks of data from a boot media into a first memory of the security processor, wherein at least one block of data includes a first bootloader that comprises a set of executable instructions;
executing the first bootloader to:
fetch a further block of data from the boot media, wherein the further block of data comprises a second bootloader wherein the second bootloader is configured to retrieve one or more parameters from the configuration block for initializing and training the system memory; and
store and authenticate the second bootloader in the first memory;
executing, by the security processor, the second bootloader to initialize and train a system memory.

### Claim 8 (depends on 7)

The method as recited in claim 7, wherein a first block of data comprises a kernel executable by the security processor.

### Claim 9 (depends on 8)

The method as recited in claim 8, further comprising executing the kernel to:
fetch a second block of data from the boot media, wherein the second block of data comprises the first bootloader; and
store and authenticate the second block of data in the first memory.

### Claim 10 (depends on 9)

The method as recited in claim 9, further comprising executing the first bootloader to:
fetch a third block of data from the boot media, wherein the third block of data comprises a configuration block, wherein the configuration block comprises parameters for initializing and training the system memory; and
store and authenticate the configuration block in the first memory.

### Claim 11 (depends on 7)

The method as recited in claim 7, wherein responsive to completing training of the system memory, the method further comprising:
retrieving basic input/output system (BIOS) execution code from the boot media and storing the BIOS execution code in the first memory; and
authenticating the BIOS execution code.

### Claim 12 (depends on 11)

The method as recited in claim 11, wherein responsive to completing training of the system memory, the method further comprising:
storing the BIOS execution code in the system memory; and
releasing the one or more main processors from reset to allow the one or more main processors to execute the BIOS execution code from the system memory.

### Claim 13

A non-transitory computer readable storage medium storing program instructions, wherein the program instructions are executable by a processor to:
load and authenticate multiple blocks of data from a boot media into a first memory of a security processor, wherein at least one block of data includes a first bootloader that comprises a set of executable instructions;
execute the first bootloader to:
fetch a further block of data from the boot media, wherein the further block of data comprises a second bootloader, wherein the second bootloader is configured to retrieve one or more parameters from the configuration block for initializing and training the system memory; and
store and authenticate the second bootloader in the first memory;
execute the second bootloader to initialize and train a system memory.

### Claim 14 (depends on 13)

The non-transitory computer readable storage medium as recited in claim 13, wherein a first block of data comprises a kernel executable by the security processor.

### Claim 15 (depends on 1)

The non-transitory computer readable storage medium as recited in claim 1, wherein the program instructions are further executable by a processor to:
fetch a third block of data from the boot media, wherein the third block of data comprises a configuration block, wherein the configuration block comprises parameters for initializing and training the system memory; and
store and authenticate the configuration block in the first memory.

### Claim 16 (depends on 15)

The non-transitory computer readable storage medium as recited in claim 15, wherein the program instructions are further executable by a processor to:
store and authenticate the second bootloader in the first memory;
wherein the second bootloader retrieves one or more parameters from the configuration block for initializing and training the system memory.

### Claim 17 (depends on 13)

The non-transitory computer readable storage medium as recited in claim 13, wherein responsive to completing training of the system memory, the program instructions are executable by a processor to:
retrieve basic input/output system (BIOS) execution code from the boot media and store the BIOS execution code in the first memory; and
authenticate the BIOS execution code.
