IPC Module - Software Update Service

This page contains documentation of the Software Update API.

Messages

message software_update_version_req
Return message:

software_update_version_rsp

Read versions of installed software.

If successful the request will return the versions for all software components. The NAD part number will be “N/A” if the modem hasn’t been fully initialized.

message software_update_version_rsp
Parameters:
  • result (enum software_update_result) – Result of the operation

  • base_software_actia_part_number (string) – Base software version information

  • local_config_actia_part_number (string) – Local configuration version information

  • nad_firmware_actia_part_number (string) – NAD Firmware version information

  • user_software_article_number (string) – User software version information

Software version response.

The part number consists of article number and SemVer 2.0 (https://semver.org/) on the form: AAAA-BBB-CC x.y.z-<metadata>, where AAAA-BBB-CC is the article number, and x.y.z is the version.

Example

The part number 1047-201-01 2.0.0-dev+gcece4c5 means that the component with article number 1047-201-01 is of version 2.0.0.

message software_update_user_post_validation_req
Parameters:

result (enum software_validation_result) – Result of the operation

Return message:

software_update_user_post_validation_rsp

Verify an update.

This function is used by a user to confirm if the software update was successful or not. It is recommended to run some sort of sanity checking before calling this function because no revert of the installed software is possible after confirming an update.

message software_update_user_post_validation_rsp
Parameters:

result (enum software_update_result) – Result of the operation

Software verification response.

message software_update_local_prepare_req_norsp

Prepare the device for a local update.

The operation may take several minutes.

software_update_status_ind indicates the status.

message software_update_start_req_norsp

Start a pending update.

software_update_status_ind indicates when the update starts.

message software_update_abort_req_norsp

Abort a pending update.

Currently only callable in VALIDATION_PENDING state

message software_update_status_publish_ind
Parameters:

Indicates the update service state.

message software_update_status_subscribe_req

Subscribe to software_update_status_publish_ind messages

message software_update_status_subscribe_rsp
Parameters:

result (enum ipc_subscribe_result)

Result from software_update_status_subscribe_req

message software_update_status_unsubscribe_req_norsp

Unsubscribe from software_update_status_publish_ind messages

Enums

enum software_update_result

Software update result codes used in responses.

Constant

Value

Description

OK

0

OK

ERROR

1

Error

enum software_validation_result

Software validation result codes.

Constant

Value

Description

UPDATE_OK

0

Update OK

UPDATE_NOT_OK

1

Update not OK

enum software_update_status

Update status.

Constant

Value

Description

PREPARING

0

Base system is preparing the update

REJECT

1

Another update is on-going or the request was invalid

WAITING_FOR_FILES

2

Base system is ready to receive update files

Use a_open_software_update_stream() to send the file data.

UPDATE_PENDING

3

Base system is ready to start the update

UPDATING

4

Update has started. Board will reboot and complete the update.

ABORTED_BY_USER

5

The user application aborted the update

VALIDATION_PENDING

6

There is an ongoing software update and the user must confirm the software update by calling a_ipc_msg_software_update_user_post_validation_req.

This status is sent periodically until post validation has been performed.

FAIL

7

Error. Refer to device logs for more information.

enum software_update_type

Indicates whether an update was triggered remotely (OTA) or locally (the user application).

Constant

Value

Description

NOT_APPLICABLE

0

Not applicable in the current state (no update on-going).

REMOTE

1

Update was triggered by the Device Manager backend

LOCAL

2

Update was triggered by a user application