IP Library › Granted Patent US 11,755,312
Granted Patent B2
US 11,755,312 · App. 17/480,035 · Granted Sep 12, 2023

Bootloader update

Inventors: James Bradley Lohmeyer (Berkeley, CA); Charles Z. Mooney (San Francisco, CA)
Assignee: GM Cruise Holdings LLC
G06F8/654G06F9/4401
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,312
App. No.
17/480,035
Granted
Sep 12, 2023
Kind
B2
Abstract

The subject disclosure relates to techniques for updating a bootloader on a embedded device. In some aspects, a process of the disclosed technology can include steps for calculating a digest for an existing bootloader stored on the bootloader memory, determining if the digest for the existing bootloader matches a digest for a target bootloader, and copying the target bootloader to the bootloader memory, if the digest for the existing bootloader does not match the digest for the target bootloader. Systems and computer-readable media are also provided.

Claims (37)

1. An embedded device, comprising:

a bootloader memory;

an application memory; and

at least one processor coupled to the bootloader memory and the application memory, the at least one processor configured to:

execute an update application stored on the application memory, wherein the update application is configured to perform operations for:

calculating a digest for an existing bootloader stored on the bootloader memory;

determining if the digest for the existing bootloader matches a digest for a target bootloader, wherein the target bootloader is stored on a data structure contained within an instruction set of the update application in the application memory; and

if the digest for the existing bootloader does not match the digest for the target bootloader, copying the target bootloader to the bootloader memory.

2. The embedded device of claim 1 , wherein the update application is further configured to perform operations for:

generating a report to indicate a successful bootloader update, if the digest for the existing bootloader matches a digest for the target bootloader.

3. The embedded device of claim 1 , wherein copying the target bootloader to the bootloader memory causes a rewrite of the existing bootloader.

4. The embedded device of claim 1 , wherein at least one of the bootloader memory and the application memory is a non-volatile memory device.

5. The embedded device of claim 1 , wherein the bootloader memory and the application memory share a common memory address space.

6. The embedded device of claim 1 , further comprising:

a data interface communicatively coupled to one or more of: the application memory or the bootloader memory.

7. The embedded device of claim 6 , wherein the data interface comprises a Serial Wire Debut (SWD) port.

8. The embedded device of claim 6 , wherein the data interface comprises a Joint Test Action Group tap port.

9. A computer-implemented method, comprising:

calculating a digest for an existing bootloader stored on a bootloader memory of an embedded device;

determining if the digest for the existing bootloader matches a digest for a target bootloader, wherein the target bootloader is stored on a data structure contained within an instruction set of an update application in an application memory of the embedded device; and

if the digest for the existing bootloader does not match the digest for the target bootloader, copying the target bootloader to the bootloader memory.

10. The computer-implemented method of claim 9 , further comprising:

generating a report to indicate a successful bootloader update, if the digest for the existing bootloader matches a digest for the target bootloader.

11. The computer-implemented method of claim 9 , wherein copying the target bootloader to the bootloader memory causes a rewrite of the existing bootloader.

12. The computer-implemented method of claim 9 , wherein at least one of the bootloader memory and the application memory is a non-volatile memory device.

13. The computer-implemented method of claim 9 , wherein the bootloader memory and the application memory share a common memory address space.

14. The computer-implemented method of claim 9 , wherein a data interface is communicatively coupled to one or more of: the application memory or the bootloader memory.

15. A non-transitory computer-readable storage medium comprising at least one instruction for causing a computer or processor to perform operations comprising:

calculating a digest for an existing bootloader stored on a bootloader memory of an embedded device;

determining if the digest for the existing bootloader matches a digest for a target bootloader, wherein the target bootloader is stored on a data structure contained within an instruction set of an update application in an application memory of the embedded device; and

if the digest for the existing bootloader does not match the digest for the target bootloader, copying the target bootloader to the bootloader memory.

16. The non-transitory computer-readable storage medium of claim 15 , wherein the least one instruction is further configured to cause a computer or processor to perform operations comprising:

generating a report to indicate a successful bootloader update, if the digest for the existing bootloader matches a digest for the target bootloader.

17. The non-transitory computer-readable storage medium of claim 15 , wherein copying the target bootloader to the bootloader memory causes a rewrite of the existing bootloader.

18. The non-transitory computer-readable storage medium of claim 15 , wherein at least one of the bootloader memory and the application memory is a non-volatile memory device.

19. The non-transitory computer-readable storage medium of claim 15 , wherein the bootloader memory and the application memory share a common memory address space.

20. The non-transitory computer-readable storage medium of claim 15 , wherein a data interface is communicatively coupled to one or more of: the application memory or the bootloader memory.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 21, 2021
From: LOHMEYER, JAMES BRADLEY; MOONEY, CHARLES Z.
To: GM CRUISE HOLDINGS LLC
Reel/Frame 057539/0636 →
Continuity (1)
Related Publication 20230229425A1 · Jul 20, 2023
Cited By (1)
US 12,738,111