Ota Broadcast Bootloader Common#

Set of types defined for ota-broadcast-bootloader.

OTA bootloading plugins are usable to send firmware images Over The Air when the application is running. When the firmware is downloaded to a device, a bootloader can be started to replace the application in the flash to the one just downloaded.

All Connect bootloader-related code relies on the Gecko Bootloader for bootloading and it must be installed on the device for these plugins to work. For details on the Gecko Bootloader, see UG266.

The Broadcast OTA plugins implement the OTA download operation in broadcast, so the same image can be sent to many devices at the same time. The server however requires to know the clients downloading the image, because it implements error handling by querying all clients for missing segments, and then the server will re-broadcast those segments.

Communication relies on standard broadcast data messages, which means routing is not available, and only clients that are in the range of the server can download. However, the same device can be both client and server, i.e. after downloading the image, a client can configure itself to be a server, and provide the image to another part of the network.

Sleepy end devices cannot be addressed in broadcast, but a sleepy end device can reconnect as a normal end device while the OTA is active.

Broadcast OTA uses a plugin configurable endpoint, which is 14 by default.

Security can be also enabled as plugin configuration on the server, as well as the interval of the messages. The client has a timeout plugin configuration after which it stops the OTA session with an error.

See UG235.06 for further details.

Note

  • OTA Broadcast Bootloading plugins are not available in MAC mode due to the lack of endpoints.

Enumerations#

enum
EMBER_OTA_BROADCAST_BOOTLOADER_STATUS_SUCCESS = 0x00
EMBER_OTA_BROADCAST_BOOTLOADER_STATUS_INVALID_CALL = 0x01
EMBER_OTA_BROADCAST_BOOTLOADER_STATUS_BUSY = 0x02
EMBER_OTA_BROADCAST_BOOTLOADER_STATUS_NO_BUFFERS = 0x03
EMBER_OTA_BROADCAST_BOOTLOADER_STATUS_DATA_UNDERFLOW = 0x04
EMBER_OTA_BROADCAST_BOOTLOADER_STATUS_STACK_ERROR = 0x05
EMBER_OTA_BROADCAST_BOOTLOADER_STATUS_TIMEOUT = 0x06
EMBER_OTA_BROADCAST_BOOTLOADER_STATUS_FAILED = 0x07
EMBER_OTA_BROADCAST_BOOTLOADER_STATUS_ABORTED = 0x08
}

OTA Broadcast Bootloader return status codes.

enum
EMBER_OTA_BROADCAST_BOOTLOADER_TARGET_STATUS_INVALID = 0x00
EMBER_OTA_BROADCAST_BOOTLOADER_TARGET_STATUS_UNREACHABLE = 0x01
EMBER_OTA_BROADCAST_BOOTLOADER_TARGET_STATUS_DISTRIBUTION_COMPLETED = 0x02
EMBER_OTA_BROADCAST_BOOTLOADER_TARGET_STATUS_DISTRIBUTION_ONGOING = 0x03
EMBER_OTA_BROADCAST_BOOTLOADER_TARGET_STATUS_DISTRIBUTION_FAILED = 0x04
EMBER_OTA_BROADCAST_BOOTLOADER_TARGET_STATUS_DISTRIBUTION_REFUSED = 0x05
EMBER_OTA_BROADCAST_BOOTLOADER_TARGET_STATUS_DISTRIBUTION_ABORTED = 0x06
EMBER_OTA_BROADCAST_BOOTLOADER_TARGET_STATUS_STATUS_REQUEST_COMPLETED = 0x07
EMBER_OTA_BROADCAST_BOOTLOADER_TARGET_STATUS_STATUS_REQUEST_ONGOING = 0x08
EMBER_OTA_BROADCAST_BOOTLOADER_TARGET_STATUS_BOOTLOAD_REQUEST_ACCEPTED = 0x09
EMBER_OTA_BROADCAST_BOOTLOADER_TARGET_STATUS_BOOTLOAD_REQUEST_ONGOING = 0x0A
EMBER_OTA_BROADCAST_BOOTLOADER_TARGET_STATUS_BOOTLOAD_REQUEST_REFUSED = 0x0B
}

OTA Broadcast Bootloader target status codes, returned by emberAfPluginBootloaderServerGetTargetStatus().

Macros#

#define

A value indicating that client application did not set the application level target status in any of the client callbacks.

Enumeration Documentation#

EmberAfOtaBootloaderStatus#

EmberAfOtaBootloaderStatus

OTA Broadcast Bootloader return status codes.

Enumerator
EMBER_OTA_BROADCAST_BOOTLOADER_STATUS_SUCCESS
EMBER_OTA_BROADCAST_BOOTLOADER_STATUS_INVALID_CALL
EMBER_OTA_BROADCAST_BOOTLOADER_STATUS_BUSY
EMBER_OTA_BROADCAST_BOOTLOADER_STATUS_NO_BUFFERS
EMBER_OTA_BROADCAST_BOOTLOADER_STATUS_DATA_UNDERFLOW
EMBER_OTA_BROADCAST_BOOTLOADER_STATUS_STACK_ERROR
EMBER_OTA_BROADCAST_BOOTLOADER_STATUS_TIMEOUT
EMBER_OTA_BROADCAST_BOOTLOADER_STATUS_FAILED
EMBER_OTA_BROADCAST_BOOTLOADER_STATUS_ABORTED

Definition at line 79 of file /mnt/raid/workspaces/ws.04isO4uyE/overlay/gsdk/protocol/flex/ota-broadcast-bootloader/ota-broadcast-bootloader-types.h

EmberAfOtaBootloaderTargetStatus#

EmberAfOtaBootloaderTargetStatus

OTA Broadcast Bootloader target status codes, returned by emberAfPluginBootloaderServerGetTargetStatus().

Enumerator
EMBER_OTA_BROADCAST_BOOTLOADER_TARGET_STATUS_INVALID
EMBER_OTA_BROADCAST_BOOTLOADER_TARGET_STATUS_UNREACHABLE
EMBER_OTA_BROADCAST_BOOTLOADER_TARGET_STATUS_DISTRIBUTION_COMPLETED
EMBER_OTA_BROADCAST_BOOTLOADER_TARGET_STATUS_DISTRIBUTION_ONGOING
EMBER_OTA_BROADCAST_BOOTLOADER_TARGET_STATUS_DISTRIBUTION_FAILED
EMBER_OTA_BROADCAST_BOOTLOADER_TARGET_STATUS_DISTRIBUTION_REFUSED
EMBER_OTA_BROADCAST_BOOTLOADER_TARGET_STATUS_DISTRIBUTION_ABORTED
EMBER_OTA_BROADCAST_BOOTLOADER_TARGET_STATUS_STATUS_REQUEST_COMPLETED
EMBER_OTA_BROADCAST_BOOTLOADER_TARGET_STATUS_STATUS_REQUEST_ONGOING
EMBER_OTA_BROADCAST_BOOTLOADER_TARGET_STATUS_BOOTLOAD_REQUEST_ACCEPTED
EMBER_OTA_BROADCAST_BOOTLOADER_TARGET_STATUS_BOOTLOAD_REQUEST_ONGOING
EMBER_OTA_BROADCAST_BOOTLOADER_TARGET_STATUS_BOOTLOAD_REQUEST_REFUSED

Definition at line 117 of file /mnt/raid/workspaces/ws.04isO4uyE/overlay/gsdk/protocol/flex/ota-broadcast-bootloader/ota-broadcast-bootloader-types.h

Macro Definition Documentation#

EMBER_AF_PLUGIN_OTA_BROADCAST_BOOTLOADER_INVALID_APPLICATION_TARGET_STATUS#

#define EMBER_AF_PLUGIN_OTA_BROADCAST_BOOTLOADER_INVALID_APPLICATION_TARGET_STATUS
Value:
0xFF

A value indicating that client application did not set the application level target status in any of the client callbacks.


Definition at line 189 of file /mnt/raid/workspaces/ws.04isO4uyE/overlay/gsdk/protocol/flex/ota-broadcast-bootloader/ota-broadcast-bootloader-types.h