EIR-OPS-024: Boot Into OBC Image
Objective
To boot into a specific image.
Introduction
Using this procedure, the Operator will define the nextBootImage that the OBC will load on reboot.
Note
There are 3 images that the OBC can boot into at any one time. These are the failsafe image, the primary1 image and the primary2 image. For an image to be considered for boot, it must be marked as VALID. From the list of valid images, only the images marked as STABLE will be considered for boot. From the list of images that are valid and stable, the image booted will be the one with the HIGHEST PRIORITY.
Information on all 3 images is generally stored within the rows of a single parameter, where First row and Last row are used to access information on all images (First row = 0, Last row = 2) or just the image of interest (First row = Last row = 0, 1 or 2). The rows corresponding to each image are given in the table below.
Image
Parameter row/Image index
failsafe
0
primary1
1
primary2
2
Procedure
This procedure contains the following sub-procedures:
A. Set Up Next Boot Image
Important
You are about to send the first TC of this procedure - Have you completed the EIR-OPS-003: Start a Communication Pass procedure? A Communication Pass must be started prior to carrying out the operations planned for the pass. Don’t forget to open and set-up the parameters/actions that will be required before the pass starts!
A.1.
If the Operator intends to reboot into the image that is currently operating:
Invokethe actionplatform.obc.OBC.markCurrentImageStableThen, skip to Step A.10.
Else proceed directly to Step A.2.
TC Details |
|
MCS Operation |
|
Action/Param Name |
|
Data Expected with TC |
No |
TM Details |
|
Data Expected from TC |
No ( + ACK ) |
A.2.
If the image the Operator intends to boot is failsafe, skip to Step A.7 (as the failsafe image is hardcoded as valid and stable).
Else, proceed to the next step.
A.3.
To verify that the image you intend to load on next boot is marked as valid,
Gettheplatform.obc.OBC.imageValidparameter, specifying the appropriateFirst rowandLast rowparameters.
TC Details |
|
MCS Operation |
|
Action/Param Name |
|
Data Expected with TC |
Yes |
Data Size |
Boolean |
Data Info |
|
Allowed Value(s) |
0-2, 0-2 |
Expected Value(s) |
1 or 2, 1 or 2 |
TM Details |
|
Data Expected from TC |
|
Data Size |
Boolean |
Data Info |
If the image queried is valid (01) or invalid (00) |
Allowed Value(s) |
0 or 1 |
Expected Values(s) |
1 |
Where …
Image |
Parameter row/Image index |
primary1 |
1 |
primary2 |
2 |
Caution
To proceed, the image you intend to load on next boot must be valid (i.e. imageValid = 1). If the image is marked as invalid, the image CRC stored on-board with the image is likely incorrect and must be updated via a new upload
A.4.
To ensure the image you intend to load on next boot is marked as stable
Gettheplatform.obc.OBC.imageIsStableparameter, specifying the appropriateFirst rowandLast row.
TC Details |
|
MCS Operation |
|
Action/Param Name |
|
Data Expected with TC |
Yes |
Data Size |
4 bytes, 4 bytes |
Data Info |
|
Allowed Value(s) |
0-2, 0-2 |
Expected Value(s) |
1 or 2, 1 or 2 |
TM Details |
|
Data Expected from TC |
|
Data Size |
Boolean |
Data Info |
If the image queried is stable (01) or not stable (00) |
Allowed Value(s) |
0 or 1 |
Expected Values(s) |
1 |
A.5.
If the above step returned 0 for the image of interest, set
platform.obc.OBC.imageIsStable= 1 now, using the appropriateFirst rowandLast row.Else, proceed to the Step A.7.
TC Details |
|
MCS Operation |
|
Action/Param Name |
|
Data Expected with TC |
4 bytes, 4 bytes, boolean(s) |
Data Size |
Boolean |
Data Info |
|
Allowed Value(s) |
0-2, 0-2, 0-1 |
Expected Value(s) |
1 or 2, 1 or 2, 1 |
TM Details |
|
Data Expected from TC |
No ( + ACK ) |
A.6.
Confirm the
Setfrom the previous step with aGet(i.e. Confirm the value was set successfully).
A.7.
To ensure the image you intend to load on next boot is marked as the highest priority image,
Gettheplatform.obc.OBC.imagePriorityparameter for all three images, settingFirst row= 0 andLast row= 2.
TC Details |
|
MCS Operation |
|
Action/Param Name |
|
Data Expected with TC |
Yes |
Data Size |
List [0:2] of integers 32 (2 hex values) |
Data Info |
|
Allowed Value(s) |
0-2, 0-2 |
Expected Value(s) |
0, 2 |
TM Details |
|
Data Expected from TC |
List of |
Data Size |
List [0:2] of integers 32 (2 hex values) |
Data Info |
List of integers with highest priority image indicated by largest value |
Note
The priority of the failsafe image cannot be modified and is hard coded as 1. The highest priority image is the image with the largest imagePriority value assigned to it w.r.t. to the imagePriority values for the other images e.g to boot into the primary1 image, set First row = Last row = 1 of this parameter to a number greater than 1 (i.e. to be a larger number than the failsafe image priority).
A.8.
Given the
platform.obc.OBC.imagePriorityvalues for all three images,SettheimagePriorityparameter for the image you intend to load on next boot to be the highest priority/value , e.g:If primary1 is the intended next boot image, ‘1, 2, 0’ would be a valid input.
If primary2 is the intended next boot image, ‘1, 0, 2’ would be a valid input.
Note
Row 0 of this parameter, which corresponds to the failsafe image, is hardcoded and cannot be set. Attempts to set imagePriority[0] will return a NACK.
TC Details |
|
MCS Operation |
|
Action/Param Name |
|
Data Expected with TC |
Yes |
Data Size |
List [0:2] of integers 32 (2 hex values) |
Data Info |
|
Allowed Value(s) |
1-2, 1-2, 0-FFFFFFFF (hex) |
Expected Value(s) |
1-2, 1-2, 0-FFFFFFFF (hex) |
TM Details |
|
Data Expected from TC |
No ( + ACK ) |
A.9.
Confirm the
Setfrom the previous step with aGet(i.e. Confirm the value was set successfully).
A.10.
To ensure that the next boot image has been successfully set-up as the image of interest,
Gettheplatform.obc.OBC.nextBootImageparameter.Confirm the returned TM matches the index of the intended next boot image.
TC Details |
|
MCS Operation |
|
Action/Param Name |
|
Data Expected with TC |
No |
TM Details |
|
Data Expected from TC |
|
Data Size |
Integer 8 (1 hex value) |
Data Info |
Index of SW image to execute on next boot |
Allowed Value(s) |
|
B. Boot into New Image
B.1.
If the
nextBootImageparameter obtained in the previous step is set to the image of interest,Invoketheplatform.obc.OBC.resetaction.This invoke triggers a hard reset of the OBC.
TC Details |
|
MCS Operation |
|
Action/Param Name |
|
Data Expected with TC |
No |
TM Details |
|
Data Expected from TC |
TIMEOUT |
Warning
No ACK TM will be returned from this TC as the OBC will be busy resetting!
B.2.
Wait ~30 seconds to allow the reboot to complete.
While the reboot is completing, load the appropriate SCDB into MCS for the image being booted.
C. Verify Successful Booting into New Image
C.1.
To determine which image is now executing on the OBC after the reboot,
Gettheplatform.obc.OBC.currBootImageparameter.
TC Details |
|
MCS Operation |
|
Action/Param Name |
|
Data Expected with TC |
No |
TM Details |
|
Data Expected from TC |
|
Data Size |
Integer 8 (1 hex value) |
Data Info |
Index of currently executing SW image |
Allowed Value(s) |
|
C.2.
Get the parameter
Version.version.Check with the Software Engineer that the version number matches what was set on the ground.
TC Details |
|
MCS Operation |
|
Action/Param Name |
|
Data Expected with TC |
No |
TM Details |
|
Data Expected from TC |
|
Data Size |
Integer 32 |
Data Info |
Full version number |
C.3.
If not in failsafe, get the
mission.ModeManager.Modeparameter andCheck it is equal to 0x04, confirming the satellite is in Safe Mode
TC Details |
|
MCS Operation |
|
Action/Param Name |
|
Data Expected with TC |
No |
TM Details |
|
Data Expected from TC |
|
Data Size |
1 byte |
Data Info |
the current Operational Mode of EIRSAT-1 |
Allowed Value(s) |
4 (Safe Mode) |
Expected Values(s) |
4 (Safe Mode) |
C.4.
The Operator should now consider what aspects of the EIR-OPS-006: Commissioning procedure need to be carried out to commission this image following boot.
To do this, the Operator must consider whether:
This is the first time booting into this image
This is a new image uploaded to the spacecraft during flight
This image differs from a previously booted image and if so, how does it differ?
All of these considerations will impact the amount of and type of commissioning that is required
Warning
In particular, note that TC authentication is disabled at boot. Therefore, the Operator should now consider following the EIR-OPS-009: Enable TC Authentication procedure to enable this feature.
END OF PROCEDURE