Table of Contents Previous Chapter

3.2.12 Load from Read-Only-Memory

3.2.12.1 Purpose

ACIS requires the Load from Read-Only-Memory (ROM) feature as the main way to load and start the instrument software after being powered on, or after a hardware reset.

3.2.12.2 Scenario

After the Back End Processor hardware is powered on, or is reset, the processor proceeds to execute its Boot ROM. The Boot ROM then copies code and initialized data from the main bulk ROM into the Back End Processor's RAM and then transfers control to the loaded code.

3.2.12.3 Functional Requirements
3.2.12.3.1 Copy Code/Data from ROM into RAM

After a reset, the BEP Boot ROM shall initialize the processor registers and then shall copy code and initialized data from the instrument's bulk ROM into the BEP's RAM.

3.2.12.3.2 Execute Loaded Code

Once the code has been loaded from the bulk ROM into RAM, the BEP's Boot ROM shall transfer control to the start of the loaded code, which then performs some initial integrity checks, installs any patches, emits an initial start-up telemetry message (see Section 3.2.9.3.5) and starts the main software.

3.2.13 Load from Command

3.2.13.1 Purpose

ACIS provides the Load from Command feature to help the maintainer diagnose and work around problems which occur as a result of failures in the main software ROM, or to undo patches which prevent the ACIS software from successfully running to the point where a "Remove Patch" command can be executed. This feature serves as the maintainer's "back-door" into ACIS.

3.2.13.2 Scenario

In the event of a hardware failure which allows ACIS to boot, but not execute its start-up-code loaded from the bulk ROM, the Boot ROM allows the maintainer to load code directly from the ACIS serial command channel, and execute the loaded code. To accomplish this, the maintainer issues a discrete command to set the ACIS "Boot Modifier" flag, followed by a second discrete command to reset ACIS. The ACIS Boot ROM then detects the assertion of the flag and proceeds to poll the uplink channel for a Start of Uplink Load command. The maintainer then sends a "Start Uplink Load Command", followed by zero or more "Continue Uplink Load Commands." Upon receipt of the "Start Uplink Load Command", ACIS saves the total load length specified in the command, copies the code specified in the command to the desired location, and saves the execution address specified in the command. If the total load length exceeds the length of the command, ACIS waits for one or more "Continue Uplink Load" commands, and concatenates the contained information to the preceding loads. Once all of the code has been loaded, ACIS jumps to the execution address specified in the initial command. The ACIS software execution proceeds from there.

3.2.13.3 Functional Requirements
3.2.13.3.1 Start Uplink Load Command

When the ACIS software re-boots after a reset, it tests the Boot Modifier flag made available by the hardware. If the flag is asserted, ACIS shall poll the command channel for a Start Uplink Load Command. Table 75 illustrates this command.

TABLE 75. Start Uplink Load Command Packet

--------------------------------------------------------------------------------------------------------
Req     Item                       Description                                                            
--------------------------------------------------------------------------------------------------------
 75-1   Packet Length              Length of command packet in 16-bit words                               
 75-2   Packet Identifier          Used to identify the command                                           
 75-3   Command Opcode             Uplink_Load_Command opcode                                             
 75-4   Virtual Address to         32-bit Back End Processor Virtual Address to start writing to.         
        Write To                                                                                          
 75-5   Total Length to Load       The total number of 32-bit words to write. If the length exceeds the   
                                   number of words in the command packet, subsequent "Continue            
                                   Uplink Load Commands" must be sent.                                    
 75-6   Virtual Address to start   This specifies the virtual address to jump to after the load is com    
        execution from             plete.                                                                 
 75-7   Data to Write              The data to write.                                                     
--------------------------------------------------------------------------------------------------------

Upon receipt of this command, ACIS copies the data to the specified contiguous locations.

If the total load length exceeds the data copied, ACIS polls the command interface for "Continue Uplink Load" commands. If another "Start Uplink Load Command" arrives before the load is complete, ACIS ignores the previous load and starts over. Previously loaded sections will remain until overwritten by a subsequent load.

If the "Start Uplink Load" command's data satisfies the total load length, ACIS jumps to the execution address specified in the command.

3.2.13.3.2 Continue Uplink Load Command

The maintainer uses "Continue Uplink Load" commands when the desired load is larger than can be handled by single command packet. When ACIS receives a "Start Uplink Load" command which specifies a total load length larger than the data provided by the command, ACIS will poll the command interface for "Continue Uplink Load" commands. Table 76 illustrates this command.

TABLE 76. Continue Uplink Load Command Packet

-----------------------------------------------------------------------------------------
Req     Item               Description                                                     
-----------------------------------------------------------------------------------------
 76-1   Packet Length      Length of command packet in 16-bit words                        
 76-2   Packet Identifier  Used to identify the command                                    
 76-3   Command Opcode     Continue_Load_Command opcode                                    
 76-4   Data to write      The data to append to information copied from previous "Start   
                           Uplink Load" and possibly "Continue Uplink Load" com            
                           mands.                                                          
                                                                                           
-----------------------------------------------------------------------------------------

Upon receipt of this command, ACIS appends the data to location last filled by the previous "Start Uplink Load" command, or possibly, "Continue Uplink Load" command. If the sum of the data copied after this command has been processed is less than the total load length specified in the "Start Uplink Load" command, ACIS will go back and poll the command interface for the next "Continue Uplink Load" command.

If the sum of the data copied after this command has been processed meets the total load length specified in the original "Start Uplink Load" command, ACIS shall jump to the location specified by the "Execution Address" in the original command.

 

Table of Contents Next Chapter