RA Flexible Software Package Documentation  Release v5.2.0

 
AWS OTA PAL on MCUBoot (rm_aws_ota_pal_mcuboot)

AWS OTA PAL layer implementation for downloading firmware updates.

Overview

This module provides the hardware port layer for the AWS IoT Over-the-air Update Library. Refer to the AWS OTA documentation: https://docs.aws.amazon.com/freertos/latest/userguide/integrate-ota-agent.html.

Configuration

Build Time Configurations for rm_aws_ota_pal_mcuboot

The following build time configurations are defined in fsp_cfg/rm_aws_ota_pal_mcuboot_cfg.h:

ConfigurationOptionsDefaultDescription
Parameter Checking
  • Default (BSP)
  • Enabled
  • Disabled
Default (BSP) If selected code for parameter checking is included in the build.
Filepath to Slot ID Callback FunctionMust be a valid C symbolNULL Callback function for determining which Slot ID the image should be downloaded to.
OTA code signing signature algorithmsig-sha256-ecdsasig-sha256-ecdsa Code signing algorithm used by AWS to sign the downloaded image.

Configurations for Storage > AWS OTA PAL (rm_aws_ota_pal_mcuboot)

ConfigurationOptionsDefaultDescription
NameName must be a valid C symbolg_rm_aws_ota_pal_mcuboot0 Module name.

Common AWS Configuration

Build Time Configurations for source

The following build time configurations are defined in aws/ota_config.h:

ConfigurationOptionsDefaultDescription
Version
MajorValue must be a non-negative integer0 Major Version number used when updating.
MinorValue must be a non-negative integer0 Minor Version number used when updating.
BuildValue must be a non-negative integer1 Build Version number used when updating.
Custom ota_config.hManual EntryAdd a path to your custom ota_config.h file. It can be used to override some or all of the configurations defined here, and to define additional configurations.
Log2 File Block SizeValue must be a non-negative integer11 Log base 2 of the size of the file data block message (excluding the header). e.g. 11: 2^11 = 2048bytes
Self Test Response Wait (ms)Value must be a non-negative integer16000 Milliseconds to wait for the self test phase to succeed before we force reset.
File Request Wait (ms)Value must be a non-negative integer10000 Milliseconds to wait before requesting data blocks from the OTA service if nothing is happening.
Max Thingname LengthValue must be a non-negative integer64 The maximum allowed length of the thing name used by the OTA agent.
Max Num Blocks RequestValue must be a non-negative integer1 The maximum number of data blocks requested from OTA streaming service.
Max Num Request MomentumValue must be a non-negative integer32 The maximum number of requests allowed to send without a response before we abort.
Ota Update Status FrequencyValue must be a non-negative integer64 How frequently the device will report its OTA progress to the cloud.
Max Num OTA Data BuffersValue must be a non-negative integer1 The number of data buffers reserved by the OTA agent.
Allow Downgrade
  • Allowed
  • Disallowed
Disallowed Flag to enable booting into updates that have an identical or lower version than the current version.
Ota Firmware Update File Type IDValue must be a non-negative integer0 The file type id received in the job document.
Enabled Control ProtocolOTA Control Over MQTTOTA Control Over MQTT The protocol selected for OTA control operations.
Enabled Data Protcols
  • OTA Data Over MQTT
  • OTA Data Over HTTP
  • OTA Data Over MQTT and HTTP
OTA Data Over MQTT The protocol selected for OTA data operations.
OTA Primary Data Protocol
  • OTA Data Over MQTT
  • OTA Data Over HTTP
OTA Data Over MQTT The preferred protocol selected for OTA data operations.
OTA Events Polling Timeout (ms)Value must be a non-negative integer1000 The polling timeout (milliseconds) to receive messages from event queue.

Usage Notes

The current implementation utilizes MCUboot Port (rm_mcuboot_port) for switching images.

Limitations