Boot ROM Program

The CRISP and CFI DPU boot programs are identical except for extra features in the CRISP program for the tracking processor. The common features are described here.

The boot ROM program tests RAM searching for a place to load itself. It tests pages 3, 2, and 1. The boot program copies itself into the first RAM page that tests good; this will normally be page 3. No telemetry appears and no commands are accepted until after the RAM test. The test is non-destructive of RAM contents.

Boot Telemetry

The boot program generates a subset of the telemetry generated by the flight program. Memory dump packets and memory checksum subpackets can be requested. Command echoes are generated. A short boot status subpacket is generated periodically.

Table 18. Boot Status Subpacket Format
NameLength (bits) ValueDescription
Time Tag 32 Unsigned integer Spacecraft MET
Grouping 2 11 = None Grouping flags
Subpacket Id 14 0x0000 Identifies subpacket type
Length 16 8 Number of bytes in subpacket
Version 8 0 = Boot Software version
Alarm 8 See Table 21 Latest alarm id
Alarm Type 1 0 = Persistent
1 = Transient
Latest alarm type
Alarms 7 Unsigned integer Count of alarms
Executed 8 Unsigned integer Commands executed
Rejected 8 Unsigned integer Commands rejected
Status Int. 8 1 - 255 (0 = Off) Status interval (seconds)
Auto Flush 1 0 = Disable
1 = Enable
Automatic telemetry flush
Spare 7    
Cause 8 0 = Normal
1 = Watchdog
Reset cause

The boot program also generates the following non-packetized housekeeping data every second.

Table 19. Boot Non-Packetized Housekeeping Format
NameLength (bits) ValueDescription
Version 8 0 = Boot Software version
Alarm 8 See Table 21 Latest alarm id
Alarm Type 1 0 = Persistent
1 = Transient
Latest alarm type
Alarms 7 Unsigned integer Count of alarms
Executed 8 Unsigned integer Commands executed
Rejected 8 Unsigned integer Commands rejected
Spare 11 * 8    

Boot Commands

The boot program processes commands received from the C&DH system over the 1553 bus. The boot program accepts a subset of the application commands:

The program also accepts some boot-specific commands.

CXX_ROM_BOOT - Boot Default Program

Boot the default program from EEPROM (address = 0x40000). See CXX_ROM_GO below.

NameLength (bits) ValueDescription
Opcode 16 0x0032  
Macro? 1 0 = Execute
1 = Append to macro
Macro load bit
Length 15 2 Command length in 32-bit words
Checksum 32   32 bit XOR

CXX_ROM_GO - Boot a Selected Program

Boot a program. The address identifies a boot header (described below). The program must either execute very quickly (so as not to hold up the command handler) or take over completely. If the program returns, there must be no net stack effects.

NameLength (bits) ValueDescription
Opcode 16 0x0034  
Macro? 1 0 = Execute
1 = Append to macro
Macro load bit
Length 15 3 Command length in 32-bit words
Address 32 Unsigned integer Program header address
Checksum 32   32 bit XOR

Saved Programs

The boot program can load and run programs saved in EEPROM. This is only done in response to a command (CXX_ROM_BOOT or CXX_ROM_GO); the boot program never attempts to automatically boot a program. This allows time for the corpse of a defunct program to be examined before rebooting. The EEPROM format consists of a program image prefixed with a five word header:

page address start address length checksum
The page and address identifies the destination for the program. The start address is the entry point of the program. The length is the total length including the header (measured in 16-bit words). The checksum is the negation of the word-wise two's complement sum of the rest of the header and the program; therefore the checksum of the header and program should be zero. If the checksum is good and the destination page is not the same as the page the boot program is using, the program image is copied to RAM and started at the given address. Otherwise, the boot program continues waiting for commands.

Serial Test Port

A serial test port is available during ground testing. Typing a carriage return any time that the boot program is running brings up an ASCII interface. A set of commands similar to that available over the spacecraft interface is provided. Each command is invoked by a single character:

Table 20. Test Port Commands
CommandAction
b Boot (from default EEPROM location)
c Copy Memory
e Run Program
g Boot (from selected EEPROM location)
i Inspect/Modify Memory
l Load Memory (in Motorola S-record format)


home Return to Common Software User's Guide. Report problems to John Hayes. mail