Firmware Update

The Safety Processor is used by programming the firmware provided by Space Cubics.

The development environment includes scripts for updating the firmware of the Safety Processor. By connecting a Microchip FlashPro to the OBC and running the following commands, you can update the firmware:

Modifications to the Safety Processor logic by the user are not supported. It is recommended to always use the latest version of the firmware.
$ cd igloo2/tools
$ make program_image

After running the command, verify that the process completes successfully by confirming output similar to the following log:

$ mkdir -p ./log && echo "*" > ./log/.gitignore
    FPExpress SCRIPT:script/program_image.tcl \
    "SCRIPT_ARGS:../bitstream/sc_obc_spv1.job" \
    LOGFILE:./log/program_image.log
Console Mode = Software Version: 2025.1.0.14
Programmer 'S209431' : JTAG TCK / SPI SCK frequency = 1 MHz
programmer 'S209431' : FlashPro5
Created new project '/home/exhome/daisuke/spacecubics/sc-obc-v1/sc-obc-v1-fpga/igloo2/tools/sc_obc_spv1/sc_obc_spv1.pro'
STAPL file '/home/exhome/daisuke/spacecubics/sc-obc-v1/sc-obc-v1-fpga/igloo2/tools/sc_obc_spv1/sc_obc_spv1.stp' has been loaded successfully.
DESIGN : sc_obc_spv1;  CHECKSUM : B723;  ALG_VERSION : 2
Software Version: 2025.1.0.14
STAPL file '/home/exhome/daisuke/spacecubics/sc-obc-v1/sc-obc-v1-fpga/igloo2/tools/sc_obc_spv1/sc_obc_spv1.stp' has been loaded successfully.
DESIGN : sc_obc_spv1;  CHECKSUM : B723;  ALG_VERSION : 2
Programmer 'S209431' : JTAG TCK / SPI SCK frequency = 1 MHz
programmer 'S209431' : FlashPro5
The 'create_job_project' command succeeded.
The 'set_programming_action' command succeeded.
programmer 'S209431' : Scan Chain...
Programmer 'S209431' : JTAG TCK / SPI SCK frequency = 1 MHz
programmer 'S209431' : Check Chain...
programmer 'S209431' : Scan and Check Chain PASSED.
programmer 'S209431' : device 'M2GL090' : Executing action PROGRAM
Programmer 'S209431' : JTAG TCK / SPI SCK frequency = 4 MHz
programmer 'S209431' : device 'M2GL090' : Family: Igloo2
programmer 'S209431' : device 'M2GL090' : Product:      M2GL090
programmer 'S209431' : device 'M2GL090' : Cortex-M3 Disabled (M3_ALLOWED = 0)
programmer 'S209431' : device 'M2GL090' : Programming Interface Protocol: JTAG
programmer 'S209431' : device 'M2GL090' : EXPORT ISC_ENABLE_RESULT[32] = 007f6b44
programmer 'S209431' : device 'M2GL090' : EXPORT CRCERR[1] = 0
programmer 'S209431' : device 'M2GL090' : EXPORT EDCERR[1] = 0
programmer 'S209431' : device 'M2GL090' : Programming FPGA Array...
programmer 'S209431' : device 'M2GL090' : Calculating component bitstream digests using programming file...
programmer 'S209431' : device 'M2GL090' : EXPORT Fabric component bitstream digest[256] = a7ae39945a8989aa2fe0a1ab8da73c28b00b45f55842edc5ce64814e120d45e7
programmer 'S209431' : device 'M2GL090' : EXPORT Entire bitstream digest[256] = 5e9b5956b50568d02bca36fba8aed519ef89f4920e947615408ec827bd1e956e
programmer 'S209431' : device 'M2GL090' : Reading digests for all the segments from the device...
programmer 'S209431' : device 'M2GL090' : EXPORT Fabric digest: [256] = 8882e3e7fc5166ea57964e00afc68b2aa1e791feff238b297c814b27f51d5e10
programmer 'S209431' : device 'M2GL090' : Design Name: sc_obc_spv1
programmer 'S209431' : device 'M2GL090' : EXPORT CHECKSUM[16] = b723
programmer 'S209431' : device 'M2GL090' : EXPORT READ_DESIGN_INFO: [272] = 000000000000000000000000000000000000000000317670735f63626f5f6373b723
programmer 'S209431' : device 'M2GL090' : EXPORT DESIGNVER[16] = 0000
programmer 'S209431' : device 'M2GL090' : EXPORT BACKLEVEL[16] = 0000
programmer 'S209431' : device 'M2GL090' : ===================================================================================
programmer 'S209431' : device 'M2GL090' : EXPORT DSN[128] = 23b45d5998b6bf67d173481d28369982
programmer 'S209431' : device 'M2GL090' : ===================================================================================
programmer 'S209431' : Finished: Sat Nov 15 18:14:34 2025 (Elapsed time 00:01:52)
programmer 'S209431' : device 'M2GL090' : Executing action PROGRAM PASSED.
programmer 'S209431' : Chain programming PASSED.
Chain Programming Finished: Sat Nov 15 18:14:34 2025 (Elapsed time 00:01:52)

                        o - o - o - o - o - o

The 'run_selected_actions' command succeeded.
The Execute Script command succeeded.
Exported log file ./log/program_image.log.