IP Library Granted Patent US 10,599,421
Granted Patent B2
US 10,599,421 · App. 15/833,350 · Granted Mar 24, 2020

Systems and methods for failsafe firmware upgrades

Inventors: Russell Cook (Irvine, CA); Somasundaram Ramiah (Irvine, CA)
Assignee: CalAmp Corp.
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 10,599,421
App. No.
15/833,350
Granted
Mar 24, 2020
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 (40)

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

running a primary bootloader application contained in a firmware image by using a vehicle telematics device, wherein the vehicle telematics device comprises a processor and a firmware memory coupled to the processor and partitioned into a plurality of segments, each segment for storing an individual firmware image segment, and the firmware image is contained in the firmware memory, the firmware image further comprising a first firmware image segment, and a second firmware image segment;

verifying the integrity of the first firmware image segment by using the vehicle telematics device;

verifying the integrity of the second firmware image segment by using the vehicle telematics device;

selecting a firmware image contained in the firmware memory to boot by using a failsafe process; and

booting the vehicle telematics device by using the selected firmware image, wherein the firmware memory comprises a default firmware image segment and a transferred firmware image segment, the method further comprising selecting the default firmware image segment to boot the vehicle telematics device when the first firmware image segment is invalid and the second firmware image segment is invalid,

wherein the transferred firmware image segment stored within the firmware memory is independent of a partition location such that transferring a single image is sufficient without the need to transfer a plurality of images;

wherein the transferred firmware image segment comprises metadata that identifies a firmware image segment in which the transferred firmware image segment is to be stored;

wherein the method further comprises:

checking an image ID for the first firmware image segment by using the vehicle telematics device; and

checking an image ID for the second firmware image segment by using the vehicle telematics device;

selecting the first firmware image segment to boot the vehicle telematics device when the first firmware image segment and the second firmware image segment are valid, and the image ID for the first firmware image segment is greater than the image ID for the second firmware image segment.

2. The method of claim 1 , wherein verifying of the integrity of the first firmware image segment comprises using a checksum in a first firmware image header by using the vehicle telematics device.

3. The method of claim 2 , wherein the image ID for the first firmware image segment is located in a first firmware image header and the image ID for the second firmware image segment is located in a second firmware image header.

4. The method of claim 2 , the method further comprising selecting the first firmware image segment to boot the vehicle telematics device when the first firmware image segment is valid, the second firmware image segment is valid, and the image ID for the first firmware image segment is equal to the image ID for the second firmware image segment.

5. The method of claim 1 , wherein verifying the integrity of the second firmware image segment comprises using a checksum in a second firmware image header by using the vehicle telematics device.

6. The method of claim 1 , the method further comprising selecting the first firmware image segment to boot the vehicle telematics device when the first firmware image segment is valid and the second firmware image segment is invalid.

7. The method of claim 1 , the method further comprising selecting the second firmware image segment to boot the vehicle telematics device when the second firmware image segment is valid and the first firmware image segment is invalid.

8. A vehicle telematics device, comprising:

a processor; and

a firmware memory coupled to the processor and partitioned into a plurality of segments, each segment for storing an individual firmware image segment, wherein the firmware memory comprises:

a primary bootloader application, and

a firmware image comprising a first firmware image segment and a second firmware image segment;

wherein the primary bootloader application is configured to:

verify the integrity of the first firmware image segment;

verify the integrity of the second firmware image segment;

select a firmware image contained in the firmware memory by using a failsafe process; and

boot the vehicle telematics device by using the selected firmware image, wherein the firmware memory further comprises a default firmware image segment and a transferred firmware image segment, wherein the primary bootloader application selects the default firmware image segment to boot the vehicle telematics device when the first firmware image segment is invalid and the second firmware image segment is invalid, and wherein the transferred firmware image segment stored within the firmware memory is independent of a partition location such that transferring a single image is sufficient without the need to transfer a plurality of images; and

wherein the transferred firmware image segment comprises metadata that identifies a firmware image segment in which the transferred firmware image segment is to be stored;

wherein the primary bootloader application:

checks an image ID for the first firmware image segment; and

checks an image ID for the second firmware image segment; and

wherein the primary bootloader application selects the second firmware image segment to boot the vehicle telematics device when the first firmware image segment and the second firmware image segment are valid, and the image ID for the second firmware image segment is greater than the image ID for the first firmware image segment.

9. The vehicle telematics device of claim 8 , wherein the primary bootloader application verifies the integrity of the first firmware image segment by using a checksum in a first firmware image header.

10. The vehicle telematics device of claim 8 , wherein the primary bootloader application verifies the integrity of the second firmware image segment by using a checksum in a second firmware image header.

11. The vehicle telematics device of claim 8 , wherein the primary bootloader application selects the first firmware image segment to boot the vehicle telematics device when the first firmware image segment is valid and the second firmware image segment is invalid.

12. The vehicle telematics device of claim 8 , wherein the primary bootloader application selects the second firmware image segment to boot the vehicle telematics device when the second firmware image segment is valid and the first firmware image segment is invalid.

13. The vehicle telematics device of claim 8 , wherein the image ID for the first firmware image segment is located in a first image header and the image ID for the second firmware image segment is located in a second image header.

14. The vehicle telematics device of claim 8 , wherein the primary bootloader application selects the first firmware image segment to boot the vehicle telematics device when the first firmware image segment is valid, the second firmware image segment is valid, and the image ID for the first firmware image segment is equal to the image ID for the second firmware image segment.

15. The vehicle telematics device of claim 8 , wherein the firmware memory is a flash memory.

Assignments (6)
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 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 23, 2018
From: COOK, RUSSELL; RAMIAH, SOMASUNDARAM
To: CALAMP CORP.
Reel/Frame 045609/0494 →
Cited By (1)
US 12,688,047