1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586 |
- /*
- * Copyright (c) 2019 Actions Semiconductor Co., Ltd
- *
- * SPDX-License-Identifier: Apache-2.0
- */
- /**
- * @file
- * @brief OTA backend interface
- */
- #ifndef __OTA_API_H__
- #define __OTA_API_H__
- /* support check data checksum in each ota unit */
- #define CONFIG_OTA_BT_SUPPORT_UNIT_CRC
- #define TLV_TYPE_OTA_SUPPORT_FEATURES 0x09
- #define OTA_SUPPORT_FEATURE_UNIT_DATA_CRC (1 << 0)
- #define OTA_ERROR_CODE_SUCCESS 100000
- #define SERVICE_ID_OTA 0x9
- #define OTA_SVC_SEND_BUFFER_SIZE 0x80
- #define OTA_UNIT_SIZE 0x100
- #define OTA_SVC_TRANS_SEND_BUFFER_SIZE 1024
- #define TLV_MAX_DATA_LENGTH 0x3fff
- #define TLV_TYPE_ERROR_CODE 0x7f
- #define TLV_TYPE_MAIN 0x80
- #define OTA_CMD_H2D_REQUEST_UPGRADE 0x01
- #define OTA_CMD_H2D_CONNECT_NEGOTIATION 0x02
- #define OTA_CMD_D2H_REQUIRE_IMAGE_DATA 0x03
- #define OTA_CMD_H2D_SEND_IMAGE_DATA 0x04
- #define OTA_CMD_D2H_REPORT_RECEVIED_DATA_COUNT 0x05
- #define OTA_CMD_D2H_VALIDATE_IMAGE 0x06
- #define OTA_CMD_D2H_REPORT_STATUS 0x07
- #define OTA_CMD_D2H_CANCEL_UPGRADE 0x08
- #define OTA_CMD_H2D_NEGOTIATION_RESULT 0x09
- #define OTA_CMD_D2H_REQUEST_UPGRADE 0x0A
- #define OTA_CMD_H2D_SEND_IMAGE_DATA_WITH_CRC 0x0B
- #define TLV_TYPE_OTA_WAIT_TIMEOUT 0x01
- #define TLV_TYPE_OTA_RESTART_TIMEOUT 0x02
- #define TLV_TYPE_OTA_UINT_SIZE 0x03
- #define TLV_TYPE_OTA_INTERVAL 0x04
- #define TLV_TYPE_OTA_FILE_OFFSET 0x01
- #define TLV_TYPE_OTA_FILE_LEN 0x02
- #define TLV_TYPE_OTA_APPLY_BITMAP 0x03
- #define TLV_TYPE_OTA_VALID_REPORT 0x01
- #define TLV_TYPE_OTA_STATUS_CODE 0x7F
- enum cli_prot_state{
- PROT_STATE_IDLE,
- PROT_STATE_DATA,
- };
- struct cli_prot_context {
- u8_t state;
- int send_buf_size;
- u8_t *send_buf;
- u8_t *read_buf;
- int read_len;
- int read_done_len;
- u8_t last_psn;
- u8_t host_features;
- u16_t app_wait_timeout;
- u16_t device_restart_timeout;
- u16_t ota_unit_size;
- u16_t ota_interval;
- u8_t ota_ack_enable;
-
- io_stream_t sppble_stream;
- int sppble_stream_opened;
- int negotiation_done;
- };
- #endif /* __OTA_API_H__ */
|