Browse Prior Art Database

Method for downloading new firmware to a device without interrupting transaction processing Disclosure Number: IPCOM000030621D
Original Publication Date: 2004-Aug-20
Included in the Prior Art Database: 2004-Aug-20
Document File: 2 page(s) / 40K

Publishing Venue



Downloading firmware to a device without interrupting operation

This text was extracted from a PDF file.
This is the abbreviated version, containing approximately 52% of the total text.

Page 1 of 2

Method for downloading new firmware to a device without interrupting transaction processing

Downloading updated firmware to a device can result in delays caused by the programming of the storage device and the initialisation of the firmware after a reset of the device.

The normal way to load new firmware is to stop transaction processing, program the non volatile storage device that will hold the code and then reset the device to restart and re-initialise the new firmware.

    The core idea of this invention is to allow new firmware (with some restrictions, such as the existence of and 'idle loop') to be loaded into a second storage area and a second processing unit (hardware or a second process) run the new firmware without hardware or global data initailisation as far as the idle loop. This is done in the 'background' as far as the first processing unit is concerned, so transaction processing continues at full speed. Once the second processing unit reaches the idle loop it signals the first unit to stop when it reaches the idle loop, and the second processing unit then takes over, processing transactions using the new firmware.

    The key idea here is that synchronisation between the old code stopping and the new code starting can be done at the start of the idle loop.

There are constraints on the structure of the code that incorporates this method:
1. There must be an idle loop.
2. Initialisation is performed before entering the idle loop
3. There is a 'small initialisation' sequence that is run after download that initialises any new functionality that the new firmware includes. This must not affect any of the state of the hardware or the old firmware functionality (unless it is certain that will not disrupt the running code).

There are some constraints on the changes that the new code includes:
1. Changes to the initialisat...