Boot blocks for software
First Claim
Patent Images
1. In a computer system having a central processing unit and a software identity register, a method comprising:
- executing an atomic operation to set an identity of a piece of software into the software identity register, wherein if the atomic operation completes correctly, the software identity register contains the identity of the piece of software and if the atomic operation fails to complete correctly, the software identity register contains a value other than the identity of the piece of software; and
examining the software identity register to verify the identity of the piece of software.
2 Assignments
0 Petitions
Accused Products
Abstract
In accordance with one aspect of boot blocks for software, in a computer system that has a central processing unit and a software identity register, an atomic operation is executed to set an identity of a piece of software into the software identity register. If the atomic operation completes correctly, then the software identity register contains the identity of the piece of software; otherwise, the software identity register contains a value other than the identity of the piece of software.
169 Citations
65 Claims
-
1. In a computer system having a central processing unit and a software identity register, a method comprising:
-
executing an atomic operation to set an identity of a piece of software into the software identity register, wherein if the atomic operation completes correctly, the software identity register contains the identity of the piece of software and if the atomic operation fails to complete correctly, the software identity register contains a value other than the identity of the piece of software; and
examining the software identity register to verify the identity of the piece of software. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15)
-
-
16. In a computer system having a central processing unit (CPU), a piece of software, and a software identity register, a method comprising:
-
identifying a boot block of code associated with the piece of software that uniquely describes the piece of software;
creating an identity of the piece of software from the boot block; and
executing an atomic operation to set the identity of the piece of software into the software identity register, wherein if the atomic operation completes correctly, the software identity register contains the identity of the piece of software. - View Dependent Claims (17, 18, 19, 20, 21, 22, 23, 24, 25)
-
-
26. A computer comprising:
-
a nonvolatile memory having a piece of software stored therein, wherein the piece of software has a block of code;
a software identity register;
a central processing unit (CPU) coupled to the memory; and
the piece of software being booted for execution on the CPU according to a sequence that begins with an atomic operation, wherein if the atomic operation completes correctly, the software identity register is set to the identity of the piece of software. - View Dependent Claims (27, 28, 29, 30, 31, 32, 33, 34)
-
-
35. One or more computer readable memories having stored thereon a plurality of instructions that, when executed by one or more processors of a device, causes the one or more processors to:
-
execute an atomic operation to set an identity of a piece of software into a software identity register of one of the one or more processors, wherein if the atomic operation completes correctly, the software identity register contains the identity of the piece of software and if the atomic operation fails to complete correctly, the software identity register contains a value other than the identity of the piece of software; and
examining the software identity register to verify the identity of the piece of software. - View Dependent Claims (36, 37, 38, 39, 40, 41)
-
-
42. A method of generating a signed boot block for a piece of software, the method comprising:
-
signing, using a private key from a key pair, a block of code; and
generating a signed boot block that includes;
a BeginAuthenticatedBoot opcode, a length specifying a number of bytes in the block of code, the block of code, the signature obtained from signing the block of code, and a public key from the key pair to be used to verify the signature. - View Dependent Claims (43, 44, 45, 46)
-
-
47. One or more computer readable memories having stored thereon a plurality of instructions that, when executed by one or more processors of a device, causes the one or more processors to:
-
load a signed boot block for a piece of software, wherein the signed boot block includes, a BeginAuthenticatedBoot opcode, a length specifying a number of bytes in a block of code, the block of code, a signature obtained from signing the block of code, and a public key from a key pair; and
verify, using the public key, the signature of the boot block. - View Dependent Claims (48, 49, 50, 51)
-
- 52. A method comprising generating a boot block for a piece of software, wherein the boot block includes a block of code and a number specifying a length of the block of code.
-
58. One or more computer readable memories having stored thereon a plurality of instructions that, when executed by one or more processors of a device, causes the one or more processors to:
-
load a boot block for a piece of software, wherein the boot block includes a block of code;
generate a value based on the block of code and the one or more constants; and
set the value into a software identity register of one of the one or more processors. - View Dependent Claims (59, 60, 61, 62, 63, 64, 65)
-
Specification