Method and apparatus for multi-block updates with secure flash memory
First Claim
Patent Images
1. A method comprising:
- receiving an update package at a mobile device containing update code to update existing code for the mobile device stored in a flash memory device;
storing the update code in a first portion of the flash memory device;
writing pointers identifying storage locations of respective sets of the update code in a second portion of the flash memory device; and
performing an update process to update an existing code portion stored in the flash memory device with the update code by using the pointers to locate the respective sets and assemble the update code.
1 Assignment
0 Petitions
Accused Products
Abstract
Method and apparatus for multi-block update using secure flash memory. An update package is received at a device containing update code to update existing code for the device stored in non-volatile memory. The received update code is stored in a first portion of the non-volatile memory, while pointers identifying storage locations of respective sets of the update code are written to a second portion of the non-volatile memory device. An update process is then performed with the update code by using the pointers to locate the respective sets and assembling the update code. Updated firmware and software images are then written to the non-volatile memory device to complete the update.
63 Citations
26 Claims
-
1. A method comprising:
-
receiving an update package at a mobile device containing update code to update existing code for the mobile device stored in a flash memory device;
storing the update code in a first portion of the flash memory device;
writing pointers identifying storage locations of respective sets of the update code in a second portion of the flash memory device; and
performing an update process to update an existing code portion stored in the flash memory device with the update code by using the pointers to locate the respective sets and assemble the update code. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)
-
-
13. A mobile communications device comprising;
-
a flash memory client comprising;
data blocks and code blocks;
a modification block;
a patch block; and
an interface for file system management;
a buffer memory; and
a transmission path coupling the flash memory client to the buffer memory. - View Dependent Claims (14)
-
-
15. An apparatus comprising:
-
a processor;
a plurality of flash memory blocks coupled to the processor and logically partitioned into code blocks, data blocks, and a patch block; and
instructions stored in at least one code block to execute on the processor to perform operations comprising, storing update code received at the apparatus in at least one data block;
writing pointers identifying storage locations of respective sets of the update code in the patch block; and
performing an update process to update an existing code portion in at least one code block with the update code by using the pointers to locate the respective sets of update code and assemble the update code. - View Dependent Claims (16, 17, 18, 19, 20)
-
-
21. A mobile device, comprising:
-
a first processor;
a radio frequency (RF) interface including an antenna, coupled to the first processor;
a first memory, coupled to the first processor; and
a secure flash memory, coupled to the first processor and including a second processor;
a plurality of flash memory blocks coupled to the second processor and logically partitioned into code blocks, data blocks, and a patch block;
a second memory, coupled to the second processor; and
a first set of instructions stored in at least one code block to execute on the second processor to perform operations comprising, storing update code received at the mobile device in at least one data block;
writing pointers identifying storage locations of respective sets of the update code in the patch block; and
performing an update process to update an existing code portion in at least one code block with the update code by using the pointers to locate the respective sets of update code and assemble the update code. - View Dependent Claims (22, 23)
-
-
24. A machine-readable medium to provide instructions to be executed on a processor of an apparatus including a plurality of flash memory blocks coupled to the processor and logically partitioned into code blocks, data blocks, and a patch block, execution of the instructions to perform operations comprising:
-
storing update code received at the apparatus in at least one data block;
writing pointers identifying storage locations of respective sets of the update code in the patch block; and
performing an update process to update an existing code portion in at least one code block with the update code by using the pointers to locate the respective sets of update code and assemble the update code. - View Dependent Claims (25, 26)
-
Specification