# US 2015/0149751 A1 · Cpu-based measured boot

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

- Number: US 2015/0149751 A1
- Document ID: US20150149751A1
- Status: Published application
- Kind: A1
- Application number: 14/091,026
- Filed: 2013-11-26
- Published: 2015-05-28
- Earliest claimed: 2013-11-26
- Assignees: Intel Corporation
- Inventors: Daniel Nemiroff; Ben Furman
- Web page: https://patentgrep.com/patent/US20150149751A1

## CPC

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

## Abstract

A measured boot process for an electronic device includes taking a measurement of the early system start up instructions of the electronic device upon a reboot or start-up of the device. A representation of the measurement is stored in a trusted platform module of the electronic device prior to initialization of the trusted platform module. Access is granted to the representation of the measurement stored in the trusted platform module prior to initialization of the trusted platform module thereby enabling the representation of the measurement to serve as the core root of trust for measurement.

## Claims

### Claim 1

An electronic device, comprising:
a central processing unit, non-volatile memory accessible by the central processing unit, and early system start-up computer readable instructions stored in the non-volatile memory; and
a trusted platform module having a control register, firmware, and a command buffer, communicatively coupled to the central processing unit, the trusted platform module further includes logic that grants the central processing unit access to the control register and command buffer before the trusted platform module is fully initialized.

### Claim 2 (depends on 1)

The electronic device of claim 1, wherein the trusted platform module logic grants the central processing unit access to the command buffer and control register prior to the firmware of the trusted platform module being loaded.

### Claim 3 (depends on 1)

The electronic device of claim 1, wherein the trusted platform module logic is hardware logic.

### Claim 4 (depends on 3)

The electronic device of claim 3, wherein the hardware logic comprises a multiplexor.

### Claim 5 (depends on 2)

The electronic device of claim 2, wherein the trusted platform logic comprises logic granting the central processing unit access to the locality four register of the trusted platform module.

### Claim 6 (depends on 1)

The electronic device of claim 1, wherein the central processing unit takes a measurement of at least a portion of the early system start up computer readable instructions, and stores a representation of that measurement in the trusted platform module prior to the trusted platform module being fully initialized.

### Claim 7 (depends on 6)

The electronic device of claim 6, wherein the representation of the measurement comprises a hash of the measurement, and the central processing unit stores the cryptographic hash in the trusted platform module prior to the firmware of the trusted platform module being completely loaded and initialized.

### Claim 8 (depends on 6)

The electronic device of claim 6, wherein the early system start up computer readable instructions comprise the basic input output system of the electronic device, and thus the measurement of the basic input output system comprises the core root of trust for measurement.

### Claim 9 (depends on 1)

The electronic device of claim 1, wherein the central processing unit accesses the trusted platform module using a memory mapped input/output address accessible to only the central processing unit.

### Claim 10

An electronic device, comprising
logic to take a measurement of at least a portion of early system start up computer readable instructions of the electronic device upon a reboot or start-up of the device;
logic to store a representation of the measurement in a trusted platform module of the electronic device prior to initialization of the trusted platform module; and
logic to grant access to the representation of the measurement stored in the trusted platform module prior to initialization of the trusted platform module to thereby enable the representation of the measurement to be utilized as the core root of trust for measurement.

### Claim 11 (depends on 10)

The electronic device of claim 10, wherein the logic to store a representation comprises granting access to a register of the trusted platform module prior to the firmware of the trusted platform module being fully loaded and initialized.

### Claim 12 (depends on 11)

The electronic device of claim 11, wherein the register of the trusted platform module is memory mapped to a predetermined piece of hardware of the electronic device, and the granting access further comprises hardware logic of the trusted platform module enabling access to the register.

### Claim 13 (depends on 12)

The electronic device of claim 12, wherein the predetermined piece of hardware of the electronic device comprises a central processing unit of the device.

### Claim 14 (depends on 12)

The electronic device of claim 12, wherein the logic to store a representation further comprises setting a predetermined bit of the trusted platform module control register.

### Claim 15 (depends on 12)

The electronic device of claim 12, wherein the logic to grant access further comprises determining whether a previous request for access to the trusted platform module is currently pending or was previously granted, and, if so, ignoring the request from the predetermined piece of hardware, and granting the request if no other request is currently pending or was previously granted.

### Claim 16 (depends on 15)

The electronic device of claim 15, comprising logic to check the status of a predetermined bit of the trusted platform control register.

### Claim 17 (depends on 15)

The electronic device of claim 15, wherein the trusted platform control register comprises the locality four register of the trusted platform module.

### Claim 18 (depends on 15)

The electronic device of claim 15, wherein the predetermined bit is the hash start bit, and the determining further comprises determining whether only the hash start bit of the trusted platform control register is set.

### Claim 19 (depends on 18)

The electronic device of claim 18, comprising logic to grant the predetermined piece of hardware access to the command buffer of the trusted platform module.

### Claim 20 (depends on 10)

The electronic device of claim 10, wherein the logic to store a representation comprises cryptographically hashing the measurement, and storing the cryptographic hash in the trusted platform module.

### Claim 21

A method for initializing virtual trusted platform module buffers in an electronic device, comprising:
allocating a block dynamic random access memory of the electronic device for a plurality of virtual trusted platform module buffers, the number of virtual machine trusted platform module buffers being dependent at least in part upon the number of virtual machines a trusted platform module of the electronic device can support;
initializing the trusted platform module with a base address and size of the memory block allocated to the virtual trusted platform module buffers;
initializing a virtual machine manager of the electronic device with the base address and size of each virtual trusted platform module buffer within the allocated block of memory; and
initializing the virtual machines.

### Claim 22 (depends on 21)

The method of claim 21, wherein initializing the virtual machines comprises creating a TPM 2.0 ACPI table in the memory of each virtual machine that contains the address of the virtual trusted platform module buffer corresponding to each virtual trusted platform module.

### Claim 23 (depends on 22)

The method of claim 22, comprising setting a virtual machine exit point for each of the virtual machines.

### Claim 24 (depends on 23)

The method of claim 23, wherein each of the virtual trusted platform module buffers includes a control register, and the virtual machine exit point comprises a predetermined bit pattern stored in the control register.

### Claim 25 (depends on 24)

The method of claim 24, wherein the machine exit point bit pattern comprises setting a start bit of the control register of a virtual trusted platform module buffer.

### Claim 26 (depends on 24)

The method of claim 24, comprising issuing a command from a virtual trusted platform module buffer to the trusted platform module.

### Claim 27 (depends on 26)

The method of claim 26, wherein issuing a command from a virtual trusted platform module buffer to the trusted platform module comprises:
a virtual machine writing the command to the virtual trusted platform module buffer, and writing the virtual machine exit point bit pattern to the virtual machine control register;
the virtual machine manager determining which virtual machine has a command to be processed, and writing the address of that virtual machine into the trusted platform module control register;
the trusted platform module reading the command from the virtual trusted platform module buffer, processing the command, and writing a command response to the virtual trusted platform module buffer;
clearing the virtual machine exit point from the virtual machine control register; and;
the virtual machine processing the command response.

### Claim 28 (depends on 27)

The method of claim 27, wherein the trusted platform module utilizes direct memory access to read from and write to the virtual trusted platform module buffers.

### Claim 29

A non-transitory, computer-readable medium comprising a plurality of instructions that, in response to being executed on a computing device, cause the computing device to:
take a measurement of at least a portion of early system start up computer readable instructions of the electronic device upon a reboot or start-up of the device; and
store a representation of the measurement in a trusted platform module of the electronic device prior to initialization of the trusted platform module; and
grant access to the representation of the measurement stored in the trusted platform module prior to initialization of the trusted platform module to thereby enable the representation of the measurement to be utilized as the core root of trust for measurement.

### Claim 30 (depends on 29)

The non-transitory, computer-readable medium of claim 29, wherein storing a representation comprises granting access to a register of the trusted platform module prior to the firmware of the trusted platform module being fully loaded and initialized.
