Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: FXAS21002 FXOS8700Q
arm_uc_config.h
00001 // ---------------------------------------------------------------------------- 00002 // Copyright 2016-2017 ARM Ltd. 00003 // 00004 // SPDX-License-Identifier: Apache-2.0 00005 // 00006 // Licensed under the Apache License, Version 2.0 (the "License"); 00007 // you may not use this file except in compliance with the License. 00008 // You may obtain a copy of the License at 00009 // 00010 // http://www.apache.org/licenses/LICENSE-2.0 00011 // 00012 // Unless required by applicable law or agreed to in writing, software 00013 // distributed under the License is distributed on an "AS IS" BASIS, 00014 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 00015 // See the License for the specific language governing permissions and 00016 // limitations under the License. 00017 // ---------------------------------------------------------------------------- 00018 00019 #ifndef ARM_UPDATE_CONFIG_H 00020 #define ARM_UPDATE_CONFIG_H 00021 00022 #ifdef MBED_CLOUD_CLIENT_USER_CONFIG_FILE 00023 #include MBED_CLOUD_CLIENT_USER_CONFIG_FILE 00024 #endif 00025 00026 #ifndef MAX_SOURCES 00027 #define MAX_SOURCES 10 00028 #endif 00029 00030 #ifndef ARM_UC_SOCKET_MAX_RETRY 00031 #define ARM_UC_SOCKET_MAX_RETRY 3 00032 #endif 00033 00034 /* PROFILE FLAGS 00035 ARM_UC_PROFILE_MBED_CLIENT_LITE 00036 ARM_UC_PROFILE_MBED_CLOUD_CLIENT 00037 */ 00038 00039 /* FEATURE FLAGS 00040 ARM_UC_FEATURE_PAL_BLOCKDEVICE 00041 ARM_UC_FEATURE_PAL_FILESYSTEM 00042 ARM_UC_FEATURE_PAL_FLASHIAP 00043 ARM_UC_FEATURE_PAL_LINUX 00044 ARM_UC_FEATURE_PAL_RTL8195AM 00045 ARM_UC_FEATURE_FW_SOURCE_HTTP 00046 ARM_UC_FEATURE_FW_SOURCE_COAP 00047 ARM_UC_FEATURE_FW_SOURCE_LOCAL_FILE 00048 ARM_UC_FEATURE_RESUME_ENGINE 00049 ARM_UC_FEATURE_MANIFEST_PUBKEY 00050 ARM_UC_FEATURE_MANIFEST_PSK 00051 ARM_UC_FEATURE_IDENTITY_NVSTORE 00052 ARM_UC_FEATURE_IDENTITY_KCM 00053 ARM_UC_FEATURE_IDENTITY_RAW_CONFIG 00054 ARM_UC_FEATURE_CRYPTO_PAL 00055 ARM_UC_FEATURE_CRYPTO_MBEDTLS 00056 ARM_UC_FEATURE_CERT_STORE_KCM 00057 ARM_UC_FEATURE_CERT_STORE_RAW 00058 ARM_UC_FEATURE_PSK_STORE_NVSTORE 00059 ARM_UC_FEATURE_PSK_STORE_RAW 00060 */ 00061 00062 #define MBED_CLOUD_CLIENT_UPDATE_DOWNLOAD_PROTOCOL_COAP 1 00063 #define MBED_CLOUD_CLIENT_UPDATE_DOWNLOAD_PROTOCOL_HTTP 2 00064 00065 /* Map MCC Fetcher-flag to internal flag */ 00066 #if defined(MBED_CONF_MBED_CLOUD_CLIENT_UPDATE_DOWNLOAD_PROTOCOL) 00067 #if MBED_CONF_MBED_CLOUD_CLIENT_UPDATE_DOWNLOAD_PROTOCOL == MBED_CLOUD_CLIENT_UPDATE_DOWNLOAD_PROTOCOL_COAP 00068 #define ARM_UC_FEATURE_FW_SOURCE_COAP 1 00069 #define ARM_UC_FEATURE_FW_SOURCE_HTTP 0 00070 #elif MBED_CONF_MBED_CLOUD_CLIENT_UPDATE_DOWNLOAD_PROTOCOL == MBED_CLOUD_CLIENT_UPDATE_DOWNLOAD_PROTOCOL_HTTP 00071 #define ARM_UC_FEATURE_FW_SOURCE_COAP 0 00072 #define ARM_UC_FEATURE_FW_SOURCE_HTTP 1 00073 #else 00074 #error "Invalid value for MBED_CONF_MBED_CLOUD_CLIENT_UPDATE_DOWNLOAD_PROTOCOL. Must be either MBED_CLOUD_CLIENT_UPDATE_DOWNLOAD_PROTOCOL_HTTP or MBED_CLOUD_CLIENT_UPDATE_DOWNLOAD_PROTOCOL_COAP." 00075 #endif 00076 #endif 00077 00078 #if defined(MBED_CONF_MBED_CLOUD_CLIENT_UPDATE_DOWNLOAD_PROTOCOL) && MBED_CONF_MBED_CLOUD_CLIENT_UPDATE_DOWNLOAD_PROTOCOL == MBED_CLOUD_CLIENT_UPDATE_DOWNLOAD_PROTOCOL_HTTP 00079 #define ARM_UC_FEATURE_FW_SOURCE_COAP 0 00080 #define ARM_UC_FEATURE_FW_SOURCE_HTTP 1 00081 #endif 00082 00083 /* Map Legacy flags to new flags */ 00084 #if defined(ARM_UC_USE_PAL_CRYPTO) && ARM_UC_USE_PAL_CRYPTO == 1 00085 #warning "ARM_UC_USE_PAL_CRYPTO DEPRECATED, See arm_uc_config.h for new flags." 00086 #define ARM_UC_FEATURE_CRYPTO_PAL 1 00087 #endif 00088 00089 #if defined(ARM_UC_USE_KCM) && ARM_UC_USE_KCM == 1 00090 #warning "ARM_UC_USE_KCM DEPRECATED, See arm_uc_config.h for new flags." 00091 #define ARM_UC_FEATURE_IDENTITY_NVSTORE 0 00092 #define ARM_UC_FEATURE_IDENTITY_KCM 1 00093 #define ARM_UC_FEATURE_IDENTITY_RAW_CONFIG 0 00094 #define ARM_UC_FEATURE_PSK_STORE_NVSTORE 0 00095 #define ARM_UC_FEATURE_PSK_STORE_RAW 0 00096 #define ARM_UC_FEATURE_CERT_STORE_KCM 1 00097 #define ARM_UC_FEATURE_CERT_STORE_RAW 0 00098 #endif 00099 00100 #if defined(ARM_UC_USE_CFSTORE) && ARM_UC_USE_CFSTORE != 0 00101 #error "CFSTORE SUPPORT DEPRECATED!" 00102 #endif 00103 00104 #if defined (ARM_UC_USE_RAW_CONFIG) && ARM_UC_USE_RAW_CONFIG == 1 00105 #warning "ARM_UC_USE_RAW_CONFIG DEPRECATED, See arm_uc_config.h for new flags." 00106 #define ARM_UC_FEATURE_IDENTITY_NVSTORE 0 00107 #define ARM_UC_FEATURE_IDENTITY_KCM 0 00108 #define ARM_UC_FEATURE_IDENTITY_RAW_CONFIG 1 00109 #define ARM_UC_FEATURE_PSK_STORE_NVSTORE 0 00110 #define ARM_UC_FEATURE_PSK_STORE_RAW 1 00111 #define ARM_UC_FEATURE_CERT_STORE_KCM 0 00112 #define ARM_UC_FEATURE_CERT_STORE_RAW 1 00113 #endif 00114 00115 #if defined (ARM_UC_USE_NVSTORE) && ARM_UC_USE_NVSTORE == 1 00116 #warning "ARM_UC_USE_NVSTORE DEPRECATED, See arm_uc_config.h for new flags." 00117 #define ARM_UC_FEATURE_IDENTITY_NVSTORE 1 00118 #define ARM_UC_FEATURE_IDENTITY_KCM 0 00119 #define ARM_UC_FEATURE_IDENTITY_RAW_CONFIG 0 00120 #define ARM_UC_FEATURE_PSK_STORE_NVSTORE 1 00121 #define ARM_UC_FEATURE_PSK_STORE_RAW 0 00122 #define ARM_UC_FEATURE_CERT_STORE_KCM 0 00123 #define ARM_UC_FEATURE_CERT_STORE_RAW 0 00124 #endif 00125 00126 /* Profile feature modifiers */ 00127 #if defined(ARM_UC_PROFILE_MBED_CLIENT_LITE) && (ARM_UC_PROFILE_MBED_CLIENT_LITE == 1) 00128 00129 #ifndef ARM_UC_FEATURE_MANIFEST_PUBKEY 00130 #define ARM_UC_FEATURE_MANIFEST_PUBKEY 0 00131 #endif /* ARM_UC_FEATURE_MANIFEST_PUBKEY */ 00132 00133 #ifndef ARM_UC_FEATURE_MANIFEST_PSK 00134 #define ARM_UC_FEATURE_MANIFEST_PSK 1 00135 #endif /* ARM_UC_FEATURE_MANIFEST_PSK */ 00136 00137 #ifndef ARM_UC_FEATURE_FW_SOURCE_COAP 00138 #define ARM_UC_FEATURE_FW_SOURCE_COAP 1 00139 #endif /* ARM_UC_FEATURE_FW_SOURCE_COAP */ 00140 00141 #ifndef ARM_UC_FEATURE_RESUME_ENGINE 00142 #define ARM_UC_FEATURE_RESUME_ENGINE 0 00143 #endif /* ARM_UC_FEATURE_RESUME_ENGINE */ 00144 00145 #ifndef ARM_UC_FEATURE_FW_SOURCE_HTTP 00146 #define ARM_UC_FEATURE_FW_SOURCE_HTTP 0 00147 #endif /* ARM_UC_FEATURE_FW_SOURCE_HTTP */ 00148 00149 #ifndef ARM_UC_FEATURE_FW_SOURCE_LOCAL_FILE 00150 #define ARM_UC_FEATURE_FW_SOURCE_LOCAL_FILE 0 00151 #endif /* ARM_UC_FEATURE_FW_SOURCE_LOCAL_FILE */ 00152 00153 #ifndef ARM_UC_FEATURE_CRYPTO_MBEDTLS 00154 #define ARM_UC_FEATURE_CRYPTO_MBEDTLS 1 00155 #endif /* ARM_UC_FEATURE_CRYPTO_MBEDTLS */ 00156 00157 #ifndef ARM_UC_FEATURE_IDENTITY_NVSTORE 00158 #define ARM_UC_FEATURE_IDENTITY_NVSTORE 1 00159 #endif /* ARM_UC_FEATURE_IDENTITY_NVSTORE */ 00160 00161 #ifndef ARM_UC_FEATURE_CERT_STORE_KCM 00162 #define ARM_UC_FEATURE_CERT_STORE_KCM 0 00163 #endif /* ARM_UC_FEATURE_CERT_STORE_KCM */ 00164 00165 #ifndef ARM_UC_FEATURE_CERT_STORE_RAW 00166 #define ARM_UC_FEATURE_CERT_STORE_RAW 0 00167 #endif /* ARM_UC_FEATURE_CERT_STORE_RAW */ 00168 00169 #ifndef ARM_UC_FEATURE_PSK_STORE_NVSTORE 00170 #define ARM_UC_FEATURE_PSK_STORE_NVSTORE 1 00171 #endif /* ARM_UC_FEATURE_PSK_STORE_NVSTORE */ 00172 00173 #ifndef ARM_UC_FEATURE_PSK_STORE_RAW 00174 #define ARM_UC_FEATURE_PSK_STORE_RAW 0 00175 #endif /* ARM_UC_FEATURE_PSK_STORE_RAW */ 00176 00177 #elif defined(ARM_UC_PROFILE_MBED_CLOUD_CLIENT) && (ARM_UC_PROFILE_MBED_CLOUD_CLIENT == 1) 00178 00179 #ifndef ARM_UC_FEATURE_MANIFEST_PUBKEY 00180 #define ARM_UC_FEATURE_MANIFEST_PUBKEY 1 00181 #endif /* ARM_UC_FEATURE_MANIFEST_PUBKEY */ 00182 00183 #ifndef ARM_UC_FEATURE_MANIFEST_PSK 00184 #define ARM_UC_FEATURE_MANIFEST_PSK 0 00185 #endif /* ARM_UC_FEATURE_MANIFEST_PSK */ 00186 00187 #ifndef ARM_UC_FEATURE_FW_SOURCE_COAP 00188 #define ARM_UC_FEATURE_FW_SOURCE_COAP 0 00189 #endif /* ARM_UC_FEATURE_FW_SOURCE_COAP */ 00190 00191 #ifndef ARM_UC_FEATURE_FW_SOURCE_HTTP 00192 #define ARM_UC_FEATURE_FW_SOURCE_HTTP 1 00193 #endif /* ARM_UC_FEATURE_FW_SOURCE_HTTP */ 00194 00195 #ifndef ARM_UC_FEATURE_FW_SOURCE_LOCAL_FILE 00196 #define ARM_UC_FEATURE_FW_SOURCE_LOCAL_FILE 0 00197 #endif /* ARM_UC_FEATURE_FW_SOURCE_LOCAL_FILE */ 00198 00199 #ifndef ARM_UC_FEATURE_RESUME_ENGINE 00200 #define ARM_UC_FEATURE_RESUME_ENGINE 1 00201 #endif /* ARM_UC_FEATURE_RESUME_ENGINE */ 00202 00203 #ifndef ARM_UC_FEATURE_IDENTITY_KCM 00204 #define ARM_UC_FEATURE_IDENTITY_KCM 1 00205 #endif /* ARM_UC_FEATURE_IDENTITY_RAW_CONFIG */ 00206 00207 #ifndef ARM_UC_FEATURE_CRYPTO_PAL 00208 #define ARM_UC_FEATURE_CRYPTO_PAL 1 00209 #endif /* ARM_UC_FEATURE_CRYPTO_PAL */ 00210 00211 #ifndef ARM_UC_FEATURE_CERT_STORE_KCM 00212 #define ARM_UC_FEATURE_CERT_STORE_KCM 1 00213 #endif /* ARM_UC_FEATURE_CERT_STORE_KCM */ 00214 00215 #ifndef ARM_UC_FEATURE_CERT_STORE_RAW 00216 #define ARM_UC_FEATURE_CERT_STORE_RAW 0 00217 #endif /* ARM_UC_FEATURE_CERT_STORE_RAW */ 00218 00219 #ifndef ARM_UC_FEATURE_PSK_STORE_NVSTORE 00220 #define ARM_UC_FEATURE_PSK_STORE_NVSTORE 0 00221 #endif /* ARM_UC_FEATURE_PSK_STORE_NVSTORE */ 00222 00223 #ifndef ARM_UC_FEATURE_PSK_STORE_RAW 00224 #define ARM_UC_FEATURE_PSK_STORE_RAW 0 00225 #endif /* ARM_UC_FEATURE_PSK_STORE_RAW */ 00226 00227 #else 00228 00229 #error "Please define macro ARM_UC_PROFILE_MBED_CLIENT_LITE=1 or ARM_UC_PROFILE_MBED_CLOUD_CLIENT=1." 00230 00231 #endif /* ARM_UC_PROFILE_MBED_CLIENT_LITE */ 00232 00233 /* Always have only one PAAL implementation */ 00234 #if defined(UPDATE_CLIENT_STORAGE_FLASHIAP_BLOCKDEVICE) 00235 00236 #define ARM_UC_FEATURE_PAL_FLASHIAP 1 00237 #define ARM_UC_FEATURE_PAL_BLOCKDEVICE 1 00238 #define ARM_UC_FEATURE_PAL_FILESYSTEM 0 00239 #define ARM_UC_FEATURE_PAL_LINUX 0 00240 #define ARM_UC_FEATURE_PAL_RTL8195AM 0 00241 00242 #elif defined(UPDATE_CLIENT_STORAGE_FLASHIAP) 00243 00244 #define ARM_UC_FEATURE_PAL_FLASHIAP 1 00245 #define ARM_UC_FEATURE_PAL_BLOCKDEVICE 0 00246 #define ARM_UC_FEATURE_PAL_FILESYSTEM 0 00247 #define ARM_UC_FEATURE_PAL_LINUX 0 00248 #define ARM_UC_FEATURE_PAL_RTL8195AM 0 00249 00250 #elif defined(UPDATE_CLIENT_STORAGE_FILESYSTEM) 00251 00252 #define ARM_UC_FEATURE_PAL_FLASHIAP 1 00253 #define ARM_UC_FEATURE_PAL_BLOCKDEVICE 0 00254 #define ARM_UC_FEATURE_PAL_FILESYSTEM 1 00255 #define ARM_UC_FEATURE_PAL_LINUX 0 00256 #define ARM_UC_FEATURE_PAL_RTL8195AM 0 00257 00258 #elif defined(UPDATE_CLIENT_STORAGE_LINUX_GENERIC) 00259 00260 #define ARM_UC_FEATURE_PAL_FLASHIAP 0 00261 #define ARM_UC_FEATURE_PAL_BLOCKDEVICE 0 00262 #define ARM_UC_FEATURE_PAL_FILESYSTEM 0 00263 #define ARM_UC_FEATURE_PAL_LINUX 1 00264 #define ARM_UC_FEATURE_PAL_RTL8195AM 0 00265 00266 #elif defined(UPDATE_CLIENT_STORAGE_REALTEK_RTL8195AM) 00267 00268 #define ARM_UC_FEATURE_PAL_FLASHIAP 0 00269 #define ARM_UC_FEATURE_PAL_BLOCKDEVICE 0 00270 #define ARM_UC_FEATURE_PAL_FILESYSTEM 0 00271 #define ARM_UC_FEATURE_PAL_LINUX 0 00272 #define ARM_UC_FEATURE_PAL_RTL8195AM 1 00273 00274 #else /* support legacy configuration method for storage */ 00275 00276 #if defined(ARM_UC_USE_PAL_BLOCKDEVICE) && (ARM_UC_USE_PAL_BLOCKDEVICE == 1) 00277 #define ARM_UC_FEATURE_PAL_BLOCKDEVICE 1 00278 #endif 00279 00280 #if defined(TARGET_LIKE_MBED) 00281 #define ARM_UC_FEATURE_PAL_FLASHIAP 1 00282 #endif 00283 00284 #if defined(ARM_UC_PROFILE_MBED_CLOUD_CLIENT) && (ARM_UC_PROFILE_MBED_CLOUD_CLIENT == 1) 00285 /* turn on all possible implementations */ 00286 #define ARM_UC_FEATURE_PAL_FILESYSTEM 1 00287 #define ARM_UC_FEATURE_PAL_LINUX 1 00288 #define ARM_UC_FEATURE_PAL_RTL8195AM 1 00289 00290 #elif defined(ARM_UC_PROFILE_MBED_CLIENT_LITE) && (ARM_UC_PROFILE_MBED_CLIENT_LITE == 1) 00291 /* turn on only pal flashiap */ 00292 #define ARM_UC_FEATURE_PAL_FILESYSTEM 0 00293 #define ARM_UC_FEATURE_PAL_LINUX 0 00294 #define ARM_UC_FEATURE_PAL_RTL8195AM 0 00295 00296 #endif /* ARM_UC_PROFILE_MBED_CLOUD_CLIENT */ 00297 00298 #endif 00299 00300 /* Always have only one IDENTITY implementation */ 00301 #if defined(ARM_UC_FEATURE_IDENTITY_NVSTORE) && (ARM_UC_FEATURE_IDENTITY_NVSTORE == 1) 00302 #define ARM_UC_FEATURE_IDENTITY_KCM 0 00303 #define ARM_UC_FEATURE_IDENTITY_RAW_CONFIG 0 00304 #elif defined(ARM_UC_FEATURE_IDENTITY_KCM) && (ARM_UC_FEATURE_IDENTITY_KCM == 1) 00305 #define ARM_UC_FEATURE_IDENTITY_NVSTORE 0 00306 #define ARM_UC_FEATURE_IDENTITY_RAW_CONFIG 0 00307 #elif defined(ARM_UC_FEATURE_IDENTITY_RAW_CONFIG) && (ARM_UC_FEATURE_IDENTITY_RAW_CONFIG == 1) 00308 #define ARM_UC_FEATURE_IDENTITY_NVSTORE 0 00309 #define ARM_UC_FEATURE_IDENTITY_KCM 0 00310 #endif 00311 00312 /* Always have only one CRYPTO implementation */ 00313 #if defined(ARM_UC_FEATURE_CRYPTO_PAL) && (ARM_UC_FEATURE_CRYPTO_PAL == 1) 00314 #define ARM_UC_FEATURE_CRYPTO_MBEDTLS 0 00315 #elif defined(ARM_UC_FEATURE_CRYPTO_MBEDTLS) && (ARM_UC_FEATURE_CRYPTO_MBEDTLS == 1) 00316 #define ARM_UC_FEATURE_CRYPTO_PAL 0 00317 #endif 00318 00319 /* Total memory allocated for download buffers. 00320 For HTTP sources, this number cannot be below 1 KiB. 00321 */ 00322 #ifdef MBED_CLOUD_CLIENT_UPDATE_BUFFER 00323 #if MBED_CLOUD_CLIENT_UPDATE_BUFFER < 1024 00324 #error MBED_CLOUD_CLIENT_UPDATE_BUFFER must be 1024 bytes or more 00325 #else 00326 #define ARM_UC_BUFFER_SIZE MBED_CLOUD_CLIENT_UPDATE_BUFFER 00327 #endif 00328 #endif 00329 00330 #ifndef ARM_UC_BUFFER_SIZE 00331 #define ARM_UC_BUFFER_SIZE 1024 00332 #endif 00333 00334 #define MBED_CLOUD_CLIENT_UPDATE_CERTIFICATE_PREFIX "mbed.UpdateAuthCert." 00335 #define MBED_CLOUD_CLIENT_UPDATE_CERTIFICATE_DEFAULT "mbed.UpdateAuthCert" 00336 #define MBED_CLOUD_SHA256_BYTES (256/8) 00337 #define MBED_CLOUD_BASE64_SIZE(X) (((X + 2)/3)*4) 00338 #define MBED_CLOUD_CLIENT_UPDATE_CERTIFICATE_NAME_SIZE (MBED_CLOUD_BASE64_SIZE(MBED_CLOUD_SHA256_BYTES) + sizeof(MBED_CLOUD_CLIENT_UPDATE_CERTIFICATE_PREFIX)) 00339 00340 00341 // NOTE: The charset must be sorted except for the trailing character which is used as a padding character. 00342 #define MBED_CLOUD_UPDATE_BASE64_CHARSET "0123456789@ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz-" 00343 00344 #ifndef ARM_UC_SCHEDULER_STORAGE_POOL_SIZE 00345 #define ARM_UC_SCHEDULER_STORAGE_POOL_SIZE 32 00346 #endif 00347 00348 #if defined(ARM_UC_FEATURE_ROOTLESS_STAGE_1) && (ARM_UC_FEATURE_ROOTLESS_STAGE_1 == 1) && !defined(TARGET_IS_PC_LINUX) 00349 #error The rootless update feature can be enabled only for Linux builds. 00350 #endif 00351 00352 #endif // ARM_UPDATE_CONFIG_H
Generated on Tue Jul 12 2022 20:20:56 by
