Memory device with secure boot updates and self recovery
US-2024406008-A1 · Dec 5, 2024 · US
US2018349608A1 · US · A1
| Field | Value |
|---|---|
| Publication number | US-2018349608-A1 |
| Application number | US-201715721365-A |
| Country | US |
| Kind code | A1 |
| Filing date | Sep 29, 2017 |
| Priority date | Jun 2, 2017 |
| Publication date | Dec 6, 2018 |
| Grant date | — |
A practical reading order for non-experts. Skip the full description unless you need deep technical detail.
What the patent document calls the invention.
A short plain-language summary of the technical disclosure.
Who owns or filed the patent and who is credited as inventor.
Filing, priority, publication, and grant dates set the timeline.
The legal scope of protection — read this for what is actually claimed.
Technology tags used to group this patent with similar filings.
Prior art links and similar publications in this corpus.
Official abstract text for this publication.
A method and apparatus for performing a secure boot of a computer system is disclosed. A computer system according to the disclosure includes an auxiliary processor and a main processor. The boot process includes initially booting the auxiliary processor. The auxiliary processor includes a non-volatile memory storing boot code for the main processor. The auxiliary processor may perform a verification of the boot code. Subsequent to verifying the boot code, the main processor may be released from a reset state. Once the main processor is no longer in the reset state, the boot code may be provided thereto. Thereafter, the boot procedure may continue with the main processor executing the boot code.
Opening claim text (preview).
What is claimed is: 1 . A method comprising: booting, in a computer system, a first processor; performing, using the first processor, a verification check of boot code for a second processor of the computer system, wherein verifying the boot code comprises verifying an association with a unique identifier associated with the computer system; subsequent to verifying the boot code, releasing the second processor from a reset state; providing the boot code to the second processor; and the second processor executing the boot code. 2 . The method as recited in claim 1 , wherein the boot code is stored in a non-volatile memory implemented on the first processor. 3 . The method as recited in claim 1 , wherein the boot code comprises code conforming to a unified extensible firmware interface (UEFI) specification. 4 . The method as recited in claim 1 , further comprising: a system management circuit implemented in the first processor providing an indication that the boot code has been verified; and a platform controller hub circuit of the computer system, responsive to receiving the indication, retrieving the boot code from the first processor and providing the boot code to the second processor. 5 . The method as recited in claim 1 , wherein verifying the boot code comprises accessing one of one or more files each including a hash for verifying the boot code. 6 . The method as recited in claim 5 , wherein each of the one or more files is associated with a corresponding one of one or more operating systems, and wherein the method further comprises the second processor executing instructions to load an operating system corresponding to the one of the one or more files. 7 . The method as recited in claim 1 , further comprising the second processor beginning execution of the boot code prior to completion of booting by the first processor. 8 . The method as recited in claim 1 , further comprising: performing one or more verifications, including verification of the boot code; responsive to failing one of the one or more verifications, loading a recovery operating system; obtaining a signed file via a network connection while operating in the in the recovery operating system; performing a re-verification using the signed file; and continuing a boot procedure for the computer system responsive to completing the re-verification. 9 . The method as recited in claim 1 , further comprising the first processor enforcing a security policy controlling access, by the second processor, to one or more variables stored in the non-volatile memory. 10 . The method as recited in claim 9 , further comprising the first processor enforcing a security policy controlling authorization to change various ones of the one or more variables stored in the non-volatile memory. 11 . A computer system comprising: a main processor; and an auxiliary processor; a memory having an identifier that is unique to the computer system, and wherein the auxiliary processor is configured to verify an association between the boot code and the identifier; wherein during a boot process, the auxiliary processor is configured to perform a verification check of the boot code, and responsive to verifying the boot code, cause the main processor to be released from a reset state, and further cause the boot code to be provided to the main processor; and wherein the main processor is configured to execute the boot code to continue the boot process. 12 . The computer system as recited in claim 11 , wherein the auxiliary processor includes a non-volatile memory configured to store boot code for the main processor. 13 . The computer system as recited in claim 11 , wherein the auxiliary processor includes a system management circuit, and wherein the computer system further comprises a platform controller hub coupled to each of the auxiliary and main processor, wherein the system management circuit is configured to provide an indication that the boot code has been verified, and wherein the platform controller hub is configured to, responsive to receiving the indication, provide the boot code to the main processor. 14 . The computer system as recited in claim 11 , wherein the non-volatile memory is configured to store one or more files each including a hash used to verify the boot code, wherein each of the files includes a payload section comprising one or more objects and binary information, and a manifest section that includes information used by the auxiliary processor to verify the payload section. 15 . The computer system as recited in claim 11 , wherein the auxiliary processor is configured to enforce a security policy controlling access to one or more variables stored in the non-volatile memory, wherein controlling access to the one or more variables includes controlling authorization to change various ones of the one or more variables. 16 . The computer system as recited in claim 11 , wherein the main processor is configured to, during the boot process, execute code to perform one or more verifications subsequent to the auxiliary processor verifying the boot code, and, wherein responsive to failure of a particular verification in the computer system, obtain a signed file via a network connection to enable completion of the particular verification. 17 . A method comprising: beginning performance of a boot procedure in a computer system responsive to an auxiliary processor receiving power; verifying, by the auxiliary processor, boot code for a main processor of the computer system, wherein verifying the boot code comprises the auxiliary processor verifying that the boot code is associated with a system identifier that is unique to the computer system; subsequent to verifying the boot code, releasing the main processor from a reset state; providing an indication, from the auxiliary processor to a platform controller hub, that the boot code has been verified; the platform controller hub transferring the boot code from the auxiliary processor to the main processor; and the main processor executing the boot code. 18 . The method as recited in claim 17 , wherein the boot code is stored in a non-volatile memory implemented on the auxiliary processor. 19 . The method as recited in claim 17 , further comprising the auxiliary processor enforcing a security policy that controls access to one or more variable stored in the non-volatile memory, wherein controlling access to the one or more variables includes controlling authorization to make changes to a value of various ones of the one or more variables. 20 . The method as recited in claim 17 , further comprising loading a selected one of one or more operating systems in accordance with a selected one of one or more files stored in the non-volatile memory of the auxiliary processor.
Secure boot · CPC title
Program or device authentication · CPC title
Loading of operating system · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.