Table of Contents
Previous Chapter
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.
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.
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.
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.
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.
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.
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.
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.