JF2 Hardware User Guide
1vv0300985 Rev.4 2013-04-09
Reproduction forbidden without written authorization from Telit Communications S.p.A. - All Rights Reserved.
Page 16 of 40
Mod. 0805 2011-07 Rev.2
5.
Updating Patch Code: EEPROM and ROM modules
with Host Memory
Modules with EEPROM and ROM-only designs using external Host memory support
firmware patching. Firmware patches for the EEPROM module are stored inside the I2C
serial EEPROM device. Firmware patches for the ROM-only module are stored externally
using Host memory.
At power up, patches are retrieved from EEPROM and loaded into patch RAM. Firmware
patches are accumulated into patch data files, which in turn are made available with
descriptions of their contents and applicability. A patch data file is cumulative in that it
includes firmware improvements and enhancements made available in previous patches. It
may also include configuration settings that differ from the ROM defaults, as in the default
UART baud rate, for example. The desired patch data file must be distributed to the end-user
device where it may be accessed by the Host processor.
The Host processor in the end-user device is required to run software that sends patch data
from the patch file to the module using OSP Patch Protocol messages over the host serial
port. Example source code to assist in the implementation of a patch downloader on the Host
processor is available. Note that the module must be operating in full power mode during the
patching process. The patch contents are loaded into patch RAM on the module, where they
remain as long as main power is maintained. This avoids the reloading of patches into patch
RAM when the system resumes normal operation from a low power state such as
hibernate. At the end of the patching process the module performs an internal reset and
restart.
If main power is lost on the ROM-only module, the Host processor must re-send the patch
data over the host serial port after the module is powered up. The Host processor can
determine whether patch data must be sent to the module by polling the software version,
which reflects the currently applied patch file version.