IP Library › Granted Patent US 11,755,315
Granted Patent B2
US 11,755,315 · App. 16/543,533 · Granted Sep 12, 2023

Boot ROM update method and boot-up method of embedded system

Inventors: Hyun Sook Hong (Hwaseong-si, KR); Ji Soo Kim (Seongnam-si, KR); Seung Jae Lee (Hwaseong-si, KR); Seok Gi Hong (Suwon-si, KR)
G06F8/66G06F9/4401G06F21/575H04L9/30H04L9/3242H04L9/3247G06F2221/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 11,755,315
App. No.
16/543,533
Granted
Sep 12, 2023
Kind
B2
Abstract

A boot Read-Only Memory (ROM) update method and a boot-up method of an embedded system are provided. The boot Read-Only Memory (ROM) update method of an embedded system including a memory and a ROM. The memory includes a user data area and a boot ROM area that includes a first area and a second area. The ROM copies a first boot code from the boot ROM area during boot-up. The boot ROM update method includes writing a second boot code to the second area in response to a first ROM update command. The second boot code includes a second boot ROM image and a second signature for the second boot ROM image. The method also includes verifying validity of the second signature and, if the second signature is valid, swapping the first area and the second area. The first boot code is disposed in the first area and includes a first boot ROM image and a first signature for the first boot ROM image.

Claims (53)

1. A boot Read-Only Memory (ROM) update method of an embedded system including a non-volatile memory, which includes a user data area and a boot ROM area that includes a first area and a second area, and a ROM, which is separate from the boot ROM area and which copies a first boot code from the boot ROM area during boot-up, the boot ROM update method comprising:

writing, from firmware of a memory controller that controls the non-volatile memory, a second boot code to the second area of the boot ROM area in response to a first ROM update command, the second boot code including a second boot ROM image and a second signature for the second boot ROM image;

verifying validity of the second signature written to the second area of the boot ROM area;

if the second signature written to the second area of the boot ROM area is valid, swapping the first area and the second area of the boot ROM area, and

before the swapping the first area and the second area of the boot ROM area, if a sudden power-off (SPO) occurs, detecting that power has been applied to initiate boot-up, performing boot-up using the first boot code, and writing the second boot code to the user data area in the non-volatile memory,

wherein the first boot code is disposed in the first area and includes a first boot ROM image and a first signature for the first boot ROM image.

2. The boot ROM update method of claim 1 , wherein

the first boot code includes a first header, which includes detailed information regarding the first boot code, and

the second boot code includes a second header, which includes detailed information regarding the second boot code.

3. The boot ROM update method of claim 2 , wherein

the first header includes at least one of version information of the first boot code, size information of the first boot code, an encryption key of the first boot code, an encryption algorithm of the first boot code, and a hash value of a public key, and

the second header includes at least one of version information, size information, an encryption key, and an encryption algorithm of the second boot code and the hash value of the public key.

4. The boot ROM update method of claim 3 , further comprising, before the swapping the first area and the second area of the boot ROM area:

if the second signature is valid, determining whether a version of the second boot code is newer than a version of the first boot code based on the first header and the second header; and

if the version of the second boot code is newer than the version of the first boot code, swapping the first area and the second area of the boot ROM area.

5. The boot ROM update method of claim 3 , further comprising, before the verifying the validity of the second signature:

verifying the public key using the hash value of the public key.

6. The boot ROM update method of claim 1 , wherein

the embedded system includes the memory controller, which includes the firmware that controls the non-volatile memory,

a public key of a Digital Signature Algorithm (DSA) is stored in the firmware, and

the verifying the validity of the second signature, comprises verifying the validity of the second signature using the public key.

7. The boot ROM update method of claim 6 , wherein the second signature is created using a private key of the DSA and the second boot ROM image.

8. The boot ROM update method of claim 1 , wherein performing boot-up using the first boot code, and writing the second boot code to the user data area in the non-volatile memory before the swapping the first area and the second area of the boot ROM area further comprises:

writing the second boot code to the second area of the boot ROM area in response to a second ROM update command;

verifying the validity of the second signature; and

if the second signature is valid, swapping the first area and the second area of the boot ROM area of the boot ROM area.

9. The boot ROM update method of claim 8 , wherein the boot-up comprises executing, by the ROM, a boot loader by verifying integrity of the boot loader, verifying, by the boot loader, integrity of a kernel, and verifying, by the kernel, integrity of a file system.

10. The boot ROM update method of claim 9 , wherein the executing, by the ROM, the boot loader comprises executing, by the ROM, a boot ROM loader and loading, by the boot ROM loader, the first boot code from the first area.

11. A boot Read-Only Memory (ROM) update method of an embedded system including a non-volatile memory, which includes a user data area and a boot ROM area, and a ROM, which copies a first boot code from a main boot ROM area of the boot ROM area during boot-up, the boot ROM update method, comprising:

receiving a ROM update command;

writing, from firmware of a memory controller, a second boot code to a backup boot ROM area of the boot ROM area of the non-volatile memory;

verifying validity of the second boot code written to the backup boot ROM area of the boot ROM area using a Digital Signature Algorithm (DSA);

if the second boot code written to the backup boot ROM area of the boot ROM area is valid, changing the backup boot ROM area of the boot ROM area into a main boot ROM area of the boot ROM area, and

before changing the backup boot ROM area of the boot ROM area into a main boot ROM area of the boot ROM area, if a sudden power-off (SPO) occurs, detecting that power has been applied to initiate boot-up, performing boot-up using the first boot code, and writing the second boot code to the user data area in the non-volatile memory.

12. The boot ROM update method of claim 11 , wherein the verifying the validity of the second boot code comprises calculating a hash value of the second boot code.

13. The boot ROM update method of claim 12 , wherein the calculating the hash value of the second boot code comprises calculating the hash value of the second boot code by dividing the second boot code into segments of a standard size of data calculated by a hash function.

14. The boot ROM update method of claim 13 , wherein the writing the second boot code to the backup boot ROM area comprises writing the second boot code to the backup boot ROM area in units of the segments.

15. The boot ROM update method of claim 14 , wherein the writing the second boot code to the backup boot ROM area in units of the segments and the calculating the hash value of the second boot code by dividing the second boot code into the segments of the standard size of data calculated by a hash function are performed simultaneously.

16. A boot Read-Only Memory (ROM) update method of an embedded system including a non-volatile memory, which includes a user data area and a boot ROM area, and a ROM, which copies a first boot code from a main boot ROM area of the boot ROM area during boot-up, the boot ROM update method, comprising:

booting the first boot code;

writing a second boot code to a second area of the boot ROM area in response to a first ROM update command;

verifying validity of the second boot code written to the second area of the boot ROM area; and

if the second boot code written to the second area of the boot ROM area is valid, swapping a first area and the second area of the boot ROM area,

wherein before the swapping the first area and the second area of the boot ROM area, if a sudden power-off (SPO) occurs, detecting that power has been applied to initiate boot-up, performing boot-up using the first boot code, and writing the second boot code to the user data area in the non-volatile memory,

wherein the booting the first boot code comprises:

executing, by the ROM, a boot ROM loader;

loading, by the boot ROM loader, the first boot code from the main boot ROM area of the boot ROM area of the non-volatile memory;

executing, by the ROM, a boot loader by verifying integrity of the boot loader;

verifying, by the boot loader, integrity of a kernel; and

verifying, by the kernel, integrity of a file system.

17. The boot ROM method of claim 16 , further comprising:

writing the first boot code to a backup boot ROM area, verifying validity of the first boot code written to the backup boot ROM area, and swapping the backup boot ROM area and the main boot ROM area if the first boot code written to the backup boot ROM area is valid.

18. The boot ROM method of claim 17 , wherein the loading, by the boot ROM loader, the first boot code from the non-volatile memory comprises loading, by the boot ROM loader, the first boot code from the main boot ROM area of the non-volatile memory.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 19, 2019
From: HONG, HYUN SOOK; KIM, JI SOO; LEE, SEUNG JAE; HONG, SEOK GI
To: SAMSUNG ELECTRONICS CO., LTD.
Reel/Frame 050086/0106 →
Priority Claims (1)
KR 10-2018-0155212 · Dec 5, 2018 · national
Continuity (1)
Related Publication 20200183677A1 · Jun 11, 2020
Cited By (1)
US 12,481,495