IP Library Granted Patent US 11,436,002
Granted Patent B2
US 11,436,002 · App. 16/826,703 · Granted Sep 6, 2022

Systems and methods for failsafe firmware upgrades

Inventors: Russell Cook (Irvine, CA); Somasundaram Ramiah (Irvine, CA)
Assignee: CalAmpCorp.
G06F8/654G06F9/4401G06F16/2365G06F8/63
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,436,002
App. No.
16/826,703
Granted
Sep 6, 2022
Kind
B2
Abstract

Systems and methods for failsafe firmware upgrades in accordance with embodiments of the invention are disclosed. One embodiment includes a vehicle telematics device, including: a processor; and a firmware memory comprising a firmware image coupled to the processor, wherein the firmware image further comprise a first segment and a second segment; wherein a primary bootloader application located in the firmware image: verifies the integrity of the first segment; verifies the integrity of the second segment; selects a firmware image contained in the firmware memory using a failsafe process; and—boots the vehicle telematics device using the selected firmware image.

Claims (34)

1. A vehicle telematics device, comprising:

a processor; and

a firmware memory coupled to the processor and partitioned into a plurality of segments, wherein the plurality of segments comprises:

a first firmware image segment including a primary bootloader application, wherein the first firmware image segment comprises a first firmware image, wherein the first firmware image comprises an image header that includes a partition type, and wherein the partition type is indicative of a default firmware image segment; and

a second firmware image segment;

wherein the vehicle telematics device is configured to:

receive an updated firmware image; and

run the primary bootloader application from the first firmware image segment; and

wherein the primary bootloader application is configured to:

store the updated firmware image in the second firmware image segment of the firmware memory, wherein the updated firmware image comprises metadata that identifies the second firmware image segment in which the updated firmware image is to be stored;

compare a first image ID of the image header of the first firmware image to a second image ID of the updated firmware image in response to storage of the updated firmware image; and

select the updated firmware image to boot the vehicle telematics device when the second image ID is greater than the first image ID in response to a comparison of the first image ID to the second image ID.

2. The vehicle telematics device of claim 1 , wherein the updated firmware image comprises an image header, and wherein the image header comprises the metadata.

3. The vehicle telematics device of claim 1 , wherein the second firmware image segment comprises an image header that includes an image ID for the second firmware image segment.

4. The vehicle telematics device of claim 1 , wherein:

the vehicle telematics device is further to request the updated firmware image from a remote server; and

to receive the updated firmware image comprises to receive the updated firmware image from the remote server.

5. The vehicle telematics device of claim 1 , wherein to store the updated firmware image comprises to replace a firmware image stored in the second firmware image segment.

6. The vehicle telematics device of claim 1 , wherein the second firmware image segment comprises a standby location of the firmware memory.

7. The vehicle telematics device of claim 1 , wherein the firmware memory comprises a flash memory.

8. A method for firmware updates, the method comprising:

running, by a vehicle telematics device, a primary bootloader application from a first firmware segment, wherein the vehicle telematics device comprises a processor and a firmware memory coupled to the processor, the firmware memory partitioned into a plurality of segments, and wherein the plurality of segments comprises the first firmware image segment including the primary bootloader application, and a second firmware image segment;

receiving, by the vehicle telematics device, an updated firmware image; and

storing, by the primary bootloader application, the updated firmware image in the second firmware image segment of the firmware memory, wherein the updated firmware image comprises metadata that identifies the second firmware image segment in which the updated firmware image is to be stored;

wherein the first firmware image segment comprises a first firmware image, wherein the first firmware image comprises an image header that includes a partition type, and wherein the partition type is indicative of a default firmware image segment; and

the method further comprising comparing a first image ID of the image header of the first firmware image to a second image ID of the updated firmware image in response to storing the updated firmware image; and

selecting the updated firmware image to boot the vehicle telematics device when the second image ID is greater than the first image ID in response to comparing the first image ID to the second image ID.

9. The method of claim 8 , wherein the updated firmware image comprises an image header, and wherein the image header comprises the metadata.

10. The method of claim 8 , further comprising:

requesting, by vehicle telematics device, the updated firmware image from a remote server;

wherein receiving the updated firmware image comprises receiving the updated firmware image from the remote server.

11. The method of claim 8 , wherein storing the updated firmware image comprises replacing a firmware image stored in the second firmware image segment.

12. The method of claim 8 , wherein the second firmware image segment comprises a standby location of the firmware memory.

13. The method of claim 8 , wherein the firmware memory comprises a flash memory.

Assignments (6)
RELEASE OF SECURITY INTEREST Recorded Feb 9, 2026
From: LYNROCK LAKE MASTER FUND LP [LYNROCK LAKE PARTNERS LLC, ITS GENERAL PARTNER]
To: CALAMP CORP.; CALAMP WIRELESS NETWORKS CORPORATION; SYNOVIA SOLUTIONS LLC
Reel/Frame 074944/0886 →
RELEASE OF SECURITY INTEREST Recorded Aug 14, 2024
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
To: CALAMP CORP.; CALAMP WIRELESS NETWORKS CORPORATION; SYNOVIA SOLUTIONS LLC
Reel/Frame 068604/0595 →
RELEASE OF SECURITY INTEREST Recorded Dec 18, 2023
From: PNC BANK, NATIONAL ASSOCIATION
To: CALAMP CORP
Reel/Frame 066059/0252 →
PATENT SECURITY AGREEMENT Recorded Dec 18, 2023
From: CALAMP CORP.; CALAMP WIRELESS NETWORKS CORPORATION; SYNOVIA SOLUTIONS LLC
To: LYNROCK LAKE MASTER FUND LP [LYNROCK LAKE PARTNERS LLC, ITS GENERAL PARTNER]
Reel/Frame 066061/0946 →
PATENT SECURITY AGREEMENT Recorded Dec 18, 2023
From: CALAMP CORP.; CALAMP WIRELESS NETWORKS CORPORATION; SYNOVIA SOLUTIONS LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 066062/0303 →
SECURITY INTEREST Recorded Jul 14, 2022
From: CALAMP CORP.; CALAMP WIRELESS NETWORKS CORPORATION; SYNOVIA SOLUTIONS LLC
To: PNC BANK, NATIONAL ASSOCIATION
Reel/Frame 060651/0651 →
Continuity (3)
Continuation 15833350 · Dec 6, 2017
Provisional Application 62532834 · Jul 14, 2017
Related Publication 20200394034A1 · Dec 17, 2020