mbed library sources. Supersedes mbed-src.

Fork of mbed-dev by mbed official

Committer:
AnnaBridge
Date:
Thu Dec 07 14:01:42 2017 +0000
Revision:
179:b0033dcd6934
Parent:
178:79309dc6340a
mbed-dev library. Release version 157

Who changed what in which revision?

UserRevisionLine numberNew contents of line
AnnaBridge 179:b0033dcd6934 1 /* mbed Microcontroller Library
AnnaBridge 179:b0033dcd6934 2 * Copyright (c) 2013-2017 Realtek Semiconductor Corp.
AnnaBridge 179:b0033dcd6934 3 *
AnnaBridge 179:b0033dcd6934 4 * SPDX-License-Identifier: Apache-2.0
AnnaBridge 179:b0033dcd6934 5 *
AnnaBridge 179:b0033dcd6934 6 * Licensed under the Apache License, Version 2.0 (the "License");
AnnaBridge 179:b0033dcd6934 7 * you may not use this file except in compliance with the License.
AnnaBridge 179:b0033dcd6934 8 * You may obtain a copy of the License at
AnnaBridge 179:b0033dcd6934 9 *
AnnaBridge 179:b0033dcd6934 10 * http://www.apache.org/licenses/LICENSE-2.0
AnnaBridge 179:b0033dcd6934 11 *
AnnaBridge 179:b0033dcd6934 12 * Unless required by applicable law or agreed to in writing, software
AnnaBridge 179:b0033dcd6934 13 * distributed under the License is distributed on an "AS IS" BASIS,
AnnaBridge 179:b0033dcd6934 14 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
AnnaBridge 179:b0033dcd6934 15 * See the License for the specific language governing permissions and
AnnaBridge 179:b0033dcd6934 16 * limitations under the License.
AnnaBridge 179:b0033dcd6934 17 */
AnnaBridge 173:e131a1973e81 18 #ifndef MBED_OTA_API_H
AnnaBridge 173:e131a1973e81 19 #define MBED_OTA_API_H
AnnaBridge 173:e131a1973e81 20
AnnaBridge 179:b0033dcd6934 21 #define FLASH_TOP 0x200000
AnnaBridge 179:b0033dcd6934 22 #define FLASH_SECTOR_SIZE 0x1000
AnnaBridge 179:b0033dcd6934 23 #define FLASH_SECTOR_MASK ~(FLASH_SECTOR_SIZE - 1)
AnnaBridge 179:b0033dcd6934 24
AnnaBridge 179:b0033dcd6934 25 #define OTA_REGION1_BASE 0x40000
AnnaBridge 179:b0033dcd6934 26 #define OTA_REGION2_BASE 0x120000
AnnaBridge 179:b0033dcd6934 27 #define OTA_REGION1_SIZE 0xe0000
AnnaBridge 179:b0033dcd6934 28 #define OTA_REGION2_SIZE 0xe0000
AnnaBridge 179:b0033dcd6934 29 #define OTA_REGION_SIZE 0xe0000
AnnaBridge 179:b0033dcd6934 30 #define OTA_MBED_FS_BASE 0xb000
AnnaBridge 179:b0033dcd6934 31
AnnaBridge 179:b0033dcd6934 32 #define OTA_CRC32_LEN 0x44
AnnaBridge 179:b0033dcd6934 33 #define OTA_HEADER_LEN 0x48
AnnaBridge 178:79309dc6340a 34
AnnaBridge 179:b0033dcd6934 35 #define OTA_HEADER_OFS 0x0
AnnaBridge 179:b0033dcd6934 36 #define OTA_TAG_OFS 0x0
AnnaBridge 179:b0033dcd6934 37 #define OTA_VER_OFS 0x4
AnnaBridge 179:b0033dcd6934 38 #define OTA_EPOCH_OFS 0x8
AnnaBridge 179:b0033dcd6934 39 #define OTA_SIZE_OFS 0x10
AnnaBridge 179:b0033dcd6934 40 #define OTA_HASH_OFS 0x14
AnnaBridge 179:b0033dcd6934 41 #define OTA_CAMPAIGN_OFS 0x34
AnnaBridge 179:b0033dcd6934 42 #define OTA_CRC32_OFS 0x44
AnnaBridge 179:b0033dcd6934 43 #define OTA_IMAGE_OFS 0x48
AnnaBridge 179:b0033dcd6934 44
AnnaBridge 179:b0033dcd6934 45 #define OTA_TAG_ID 0x81950001
AnnaBridge 179:b0033dcd6934 46 #define OTA_VER_ID 0x81950001
AnnaBridge 179:b0033dcd6934 47
AnnaBridge 179:b0033dcd6934 48 #define OTA_TAG_CHIP_MSK 0xFFFF0000
AnnaBridge 179:b0033dcd6934 49 #define OTA_TAG_INFO_MSK 0x0000FFFF
AnnaBridge 178:79309dc6340a 50
AnnaBridge 178:79309dc6340a 51 typedef struct imginfo_s {
AnnaBridge 178:79309dc6340a 52 uint32_t tag;
AnnaBridge 179:b0033dcd6934 53 uint32_t ver;
AnnaBridge 179:b0033dcd6934 54 uint64_t timestamp;
AnnaBridge 179:b0033dcd6934 55 uint32_t size;
AnnaBridge 179:b0033dcd6934 56 uint8_t hash[32];
AnnaBridge 179:b0033dcd6934 57 uint8_t campaign[16];
AnnaBridge 179:b0033dcd6934 58 uint32_t crc32;
AnnaBridge 179:b0033dcd6934 59 bool valid;
AnnaBridge 178:79309dc6340a 60 } imginfo_t;
AnnaBridge 178:79309dc6340a 61
AnnaBridge 173:e131a1973e81 62 #ifdef __cplusplus
AnnaBridge 178:79309dc6340a 63 extern "C" {
AnnaBridge 173:e131a1973e81 64 #endif
AnnaBridge 173:e131a1973e81 65
AnnaBridge 179:b0033dcd6934 66 extern void OTA_GetImageInfo(uint32_t base, imginfo_t *info);
AnnaBridge 179:b0033dcd6934 67 extern uint32_t OTA_GetUpdateBase(void);
AnnaBridge 178:79309dc6340a 68
AnnaBridge 179:b0033dcd6934 69 extern uint32_t OTA_UpdateHeader(uint32_t base, imginfo_t *img);
AnnaBridge 179:b0033dcd6934 70 extern uint32_t OTA_UpdateImage(uint32_t base, uint32_t offset, uint32_t len, uint8_t *data);
AnnaBridge 179:b0033dcd6934 71 extern void OTA_ReadHeader(uint32_t base, imginfo_t *img);
AnnaBridge 179:b0033dcd6934 72 extern uint32_t OTA_ReadImage(uint32_t base, uint32_t offset, uint32_t len, uint8_t *data);
AnnaBridge 173:e131a1973e81 73 extern void OTA_ResetTarget(void);
AnnaBridge 173:e131a1973e81 74
AnnaBridge 173:e131a1973e81 75 #ifdef __cplusplus
AnnaBridge 173:e131a1973e81 76 }
AnnaBridge 173:e131a1973e81 77 #endif
AnnaBridge 173:e131a1973e81 78
AnnaBridge 173:e131a1973e81 79 #endif /* MBED_OTA_API_H */