IP Library Granted Patent US 12,008,246
Granted Patent B2
US 12,008,246 · App. 17/023,308 · Granted Jun 11, 2024

Secure executable code update for a securely-bootable processing chip

Inventor: Axel K. Kloth (Pacifica, CA)
Assignee: Axiado Corporation
G06F3/0623G06F3/0655G06F3/0679G06F8/654G06F9/4401G06F9/4403G06F9/4406G06F21/12G06F21/54G06F21/57G06F21/572G06F21/575G06F21/602G06F21/64G06F21/72G06F21/75G06F21/79G06F21/82H04L9/0861H04L9/088H04L9/0894H04L9/14H04L9/3278G06F21/107G06F2221/033G06F2221/034
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,008,246
App. No.
17/023,308
Granted
Jun 11, 2024
Kind
B2
Abstract

Techniques in electronic systems, such as in systems including a processing chip and one or more external memory chips, provide improvements in one or more of system security, performance, cost, and efficiency. The processing chip includes immutable hardware enabled to securely boot one or more CPUs of the processing chip to execute code stored in a non-volatile one of the external memory chips, and to update the code. An update to the code is written to a portion of one of the external memory chips that is not accessible to the CPUs, and the immutable hardware copies the update to the non-volatile memory chip. The update is encrypted with a public portion of a key possessed by an entity sending the update, and a private portion of the key, used to decrypt code stored in the non-volatile memory chip, is unique to and solely possessed by the processing chip.

Claims (52)

1. A method for performing an executable code update, comprising:

receiving, at a processing chip and via a secure network connection, the executable code update to executable code stored in a boot flash chip coupled to the processing chip;

writing, via immutable hardware, the executable code update to a portion of external memory coupled to the processing chip that is only accessible to the immutable hardware of the processing chip;

copying, via the immutable hardware, the executable code update from the portion of the external memory to the boot flash chip; and

establishing the secure network connection between the processing chip and an external entity possessing a public portion of a key with which the executable code update is encrypted, wherein a private portion of the key is unique to the processing chip and is stored solely within the processing chip, wherein the key is generated using a physically unclonable function in autonomous hardware in the processing chip.

2. The method of claim 1 , wherein the private portion of the key is accessible solely by the immutable hardware.

3. The method of claim 1 , wherein the method further comprises:

securely booting one or more central processing units (CPUs) of the processing chip by the immutable hardware performing operations comprising:

reading the executable code update from the boot flash chip;

decrypting the read executable code update using the private portion of the key; and

satisfying an initial instruction fetch of one of the CPUs with a portion of the decrypted executable code update.

4. The method of claim 1 , wherein the method further comprises excluding access by one or more central processing units (CPUs) of the processing chip to the portion of the external memory via an address map; and

wherein the one or more CPUs are configured to be securely booted by the immutable hardware to execute code read from the boot flash chip.

5. The method of claim 4 , wherein the portion of the external memory is a first portion of a volatile memory and

wherein the method further comprises including access by the one or more CPUs to at least another portion of the volatile memory via the address map.

6. The method of claim 1 , wherein the method further comprises enabling, via software executing on a central processing unit (CPU) of the processing chip, the immutable hardware to perform the writing of the executable code update.

7. The method of claim 1 , wherein the method further comprises enabling, via software executing on a run-time programmable central processing unit (CPU) of the processing chip, the immutable hardware to perform the copying of the executable code update.

8. The method of claim 7 , wherein the enabling comprises issuing a command to a unified memory controller that causes the unified memory controller to set a state in a direct memory access (DMA) controller to perform the copying of the executable code update.

9. The method of claim 1 , wherein the copying of the executable code update comprises performing an integrity check on the executable code update.

10. The method of claim 1 , wherein the key is one of multiple keys.

11. The method of claim 1 , wherein the key is unusable for subsequent encryption operations.

12. A system, comprising:

a processing chip having immutable hardware and a network interface configured to establish a secure network connection;

a boot flash chip coupled to the processing chip configured to store executable code; and

external memory coupled to the processing chip, wherein the processing chip is configured to:

receive, via the secure network connection, executable code update to the executable code stored in the boot flash chip;

write, via the immutable hardware, the executable code update to a portion of external memory, wherein the portion of the external memory is only accessible to the immutable hardware of the processing chip;

copy, via the immutable hardware, the executable code update from the portion of the external memory to the boot flash chip; and

establish the secure network connection between the processing chip and an external entity possessing a public portion of a key with which the executable code update is encrypted, wherein a private portion of the key is unique to the processing chip and is stored solely within the processing chip, wherein the key is generated using a physically unclonable function in autonomous hardware in the processing chip.

13. A processing chip, comprising:

a network interface configured to establish a secure network connection; and

immutable hardware, wherein the processing chip is configured to:

receive, via the secure network connection, an executable code update to executable code associated with a boot flash chip;

write, via the immutable hardware, the executable code update to a portion of external memory that is only accessible to the immutable hardware of the processing chip; and

copy, via the immutable hardware, the executable code update from the portion of the external memory to the boot flash chip,

wherein the processing chip is configured to establish the secure network connection between the processing chip and an external entity possessing a public portion of a key with which the executable code update is encrypted; and

wherein a private portion of the key is unique to the processing chip and is stored solely within the processing chip, wherein the key is generated using a physically unclonable function in autonomous hardware in the processing chip.

14. The processing chip of claim 13 , wherein the private portion of the key is accessible solely by the immutable hardware.

15. The processing chip of claim 13 , wherein the processing chip comprises one or more central processing units (CPUs); and

wherein the processing chip is configured to securely boot the one or more CPUs by the immutable hardware performing operations comprising:

reading the executable code update from the boot flash chip;

decrypting the read executable code update using the private portion of the key; and

satisfying an initial instruction fetch of one of the CPUs with a portion of the decrypted executable code update.

16. The processing chip of claim 13 , wherein the processing chip comprises one or more central processing units (CPUs);

wherein the processing chip is configured to exclude access by the one or more CPUs to the portion of the external memory via an address map; and

wherein the one or more CPUs are configured to be securely booted by the immutable hardware to execute code read from the boot flash chip.

17. The processing chip of claim 13 , wherein the processing chip comprises a central processing unit (CPU); and

wherein the processing chip is configured to enable, via software executing on the CPU, the immutable hardware to perform the writing of the executable code update.

18. The processing chip of claim 13 , wherein the processing chip comprises a run-time programmable central processing unit (CPU); and

wherein the processing chip is configured to enable, via software executing on the run-time programmable CPU, the immutable hardware to perform the copying of the executable code update.

19. The processing chip of claim 13 , wherein the key is one of multiple keys.

20. The processing chip of claim 13 , wherein the key is unusable for subsequent encryption operations.

Assignments (3)
SECURITY INTEREST Recorded May 31, 2022
From: AXIADO CORPORATION
To: VENTURE LENDING & LEASING IX, INC.; WTI FUND X, INC.
Reel/Frame 060057/0260 →
MERGER Recorded Feb 16, 2022
From: AXIADO CORP
To: AXIADO CORPORATION
Reel/Frame 059028/0062 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 16, 2020
From: KLOTH, AXEL K
To: AXIADO, CORP.
Reel/Frame 053795/0215 →
Continuity (6)
Provisional Application 63068675 · Aug 21, 2020
Provisional Application 63054500 · Jul 21, 2020
Provisional Application 63010326 · Apr 15, 2020
Provisional Application 63007133 · Apr 8, 2020
Provisional Application 63004288 · Apr 2, 2020
Related Publication 20210312053A1 · Oct 7, 2021
Cited By (2)
US 12,278,830 US 12,609,914