Program loading, 1 invoking the bootstrap loader, Nvoking the – Maxim Integrated Secure Microcontroller User Manual
Page 137: Ootstrap, Oader

Secure Microcontroller User’s Guide
137 of 187
16. PROGRAM LOADING
The secure microcontroller family has the ability to perform true in-system and in-application program
loading. Program loading allows the initialization of program and data NV RAM, as well as providing a
means to configure the various memory modes and security features of the microcontroller. Loading is
accomplished using a bootstrap ROM loader built into all members of the secure microcontroller family.
When this bootstrap loader is invoked, the user’s NV RAM appears as data memory to the ROM and can
therefore be initialized. Once loading is complete, the bootstrap ROM then becomes transparent. It has no
effect on the user’s memory map and is completely invisible. Bootstrap loading is normally done for the
initial program loading, although it can also be used for upgrades or reprogramming. The “soft reload”
feature makes it possible to perform partial reloads without invoking the loader.
The bootstrap loader is primarily used to initialize memory, but it is capable of several other functions. It
can change the memory map configuration, dump or verify the contents of memory, perform a CRC
check, fill a block with a constant, manipulate the security features and the I/O ports. It cannot display or
edit the scratchpad RAM (128 bytes) or SFRs since it uses these resources for its own operation. Note
that areas in the scratchpad RAM will be modified by the bootstrap loader firmware, and data placed in
this area by user software may appear corrupted after exiting the bootstrap loader. The MOVX RAM area
will only be altered in the bootstrap loader mode by user request.
Each version of microcontroller has different loader modes and different commands. All versions are
capable of being programmed via the serial port and this is the preferred method. The DS5000 series
[DS5000FP, DS2250T, and DS5000(T)] and the DS5001/2 series [DS5001FP, DS5002FP, DS2251T, and
DS2251T] have different program loading modes available. The DS5000 series can be loaded via its
serial port or in a parallel fashion like an EPROM-type 87C51. The serial mode allows the DS5000 to be
programmed in a fixture or while installed in the target system. The parallel method requires a super-
voltage and is normally done in a fixture only. The DS5001/2 series has a similar serial mode with the
same benefits. The parallel mode is entirely different, though; using its RPC slave interface it can be
loaded in a parallel manner by a host microprocessor. This is also an in-system technique but could be
performed in a fixture. It requires no super-voltage pulses. Note that this mode is a high-speed loader and
bears no resemblance to an 87C51 load mode.
Note: Maxim highly recommends that serial load capability be designed into the target system. This
provides substantial flexibility to upgrade and troubleshoot the system. Using in-system serial loading
allows a product to take full advantage of the secure microcontroller’s features.
16.1 Invoking the Bootstrap Loader
The secure microcontroller defaults to normal operating (nonloader) mode without external hardware.
Loader mode can be invoked at any time as described later in this section. Once the bootstrap loader
session is complete, the device will perform a hardware reset and begin operation. This will be identical
to an external reset, except that the bootstrap loader, as part of normal operation, will modify various
locations in scratchpad RAM. The following table shows which areas of scratchpad RAM are guaranteed
destroyed, guaranteed preserved, or will be of indeterminate state after exiting the bootstrap loader.
CONDITION
DS5000FP
DS5001/2FP
Guaranteed Preserved
None
70h–7Fh
Indeterminate
None
38h–6Fh
Guaranteed Destroyed
00h–7Fh
0h–37h