Initial commit
Initial commit.
This commit is contained in:
@@ -0,0 +1,22 @@
|
||||
/*
|
||||
* mcuboot_assert.h
|
||||
*
|
||||
* Cypress-specific assert() macro redefinition
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef MCUBOOT_ASSERT_H
|
||||
#define MCUBOOT_ASSERT_H
|
||||
|
||||
//#include "cy_bootloader_services.h"
|
||||
|
||||
#define CYBL_ASSERT(...) Cy_BLServ_Assert(__VA_ARGS__)
|
||||
|
||||
#if !defined(NDEBUG)
|
||||
#undef assert
|
||||
#define assert(...) CYBL_ASSERT(__VA_ARGS__)
|
||||
#else
|
||||
#define assert
|
||||
#endif
|
||||
|
||||
#endif /* MCUBOOT_ASSERT_H */
|
||||
@@ -0,0 +1,166 @@
|
||||
/* Copyright 2019 Cypress Semiconductor Corporation
|
||||
*
|
||||
* Copyright (c) 2018 Open Source Foundries Limited
|
||||
*
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
#ifndef MCUBOOT_CONFIG_H
|
||||
#define MCUBOOT_CONFIG_H
|
||||
|
||||
/*
|
||||
* Template configuration file for MCUboot.
|
||||
*
|
||||
* When porting MCUboot to a new target, copy it somewhere that your
|
||||
* include path can find it as mcuboot_config/mcuboot_config.h, and
|
||||
* make adjustments to suit your platform.
|
||||
*
|
||||
* For examples, see:
|
||||
*
|
||||
* boot/zephyr/include/mcuboot_config/mcuboot_config.h
|
||||
* boot/mynewt/mcuboot_config/include/mcuboot_config/mcuboot_config.h
|
||||
*/
|
||||
/* Default maximum number of flash sectors per image slot; change
|
||||
* as desirable. */
|
||||
#ifndef MCUBOOT_MAX_IMG_SECTORS
|
||||
#define MCUBOOT_MAX_IMG_SECTORS 2560
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Signature types
|
||||
*
|
||||
* You must choose exactly one signature type.
|
||||
*/
|
||||
|
||||
/* Uncomment for RSA signature support */
|
||||
//#define MCUBOOT_SIGN_RSA
|
||||
|
||||
/* Uncomment for ECDSA signatures using curve P-256. */
|
||||
#define MCUBOOT_SIGN_EC256
|
||||
|
||||
/*
|
||||
* Upgrade mode
|
||||
*
|
||||
* The default is to support A/B image swapping with rollback. A
|
||||
* simpler code path, which only supports overwriting the
|
||||
* existing image with the update image, is also available.
|
||||
*/
|
||||
|
||||
/* Uncomment to enable the overwrite-only code path. */
|
||||
#define MCUBOOT_OVERWRITE_ONLY
|
||||
|
||||
#ifdef MCUBOOT_OVERWRITE_ONLY
|
||||
/* Uncomment to only erase and overwrite those slot 0 sectors needed
|
||||
* to install the new image, rather than the entire image slot. */
|
||||
/* #define MCUBOOT_OVERWRITE_ONLY_FAST */
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Cryptographic settings
|
||||
*
|
||||
* You must choose between mbedTLS and Tinycrypt as source of
|
||||
* cryptographic primitives. Other cryptographic settings are also
|
||||
* available.
|
||||
*/
|
||||
|
||||
/* Uncomment to use ARM's mbedTLS cryptographic primitives */
|
||||
#define MCUBOOT_USE_MBED_TLS
|
||||
/* Uncomment to use Tinycrypt's. */
|
||||
/* #define MCUBOOT_USE_TINYCRYPT */
|
||||
|
||||
/*
|
||||
* Always check the signature of the image in slot 0 before booting,
|
||||
* even if no upgrade was performed. This is recommended if the boot
|
||||
* time penalty is acceptable.
|
||||
*/
|
||||
#define MCUBOOT_VALIDATE_PRIMARY_SLOT
|
||||
|
||||
/*
|
||||
* Flash abstraction
|
||||
*/
|
||||
|
||||
/* Uncomment if your flash map API supports flash_area_get_sectors().
|
||||
* See the flash APIs for more details. */
|
||||
// TODO: FWSECURITY-755
|
||||
#define MCUBOOT_USE_FLASH_AREA_GET_SECTORS
|
||||
|
||||
/* Default number of separately updateable images; change in case of
|
||||
* multiple images. */
|
||||
#ifndef MCUBOOT_IMAGE_NUMBER
|
||||
#define MCUBOOT_IMAGE_NUMBER 1
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Currently there is no configuration option, for this platform,
|
||||
* that enables the system specific mcumgr commands in mcuboot
|
||||
*/
|
||||
#define MCUBOOT_PERUSER_MGMT_GROUP_ENABLED 0
|
||||
|
||||
/*
|
||||
* Logging
|
||||
*/
|
||||
|
||||
/*
|
||||
* If logging is enabled the following functions must be defined by the
|
||||
* platform:
|
||||
*
|
||||
* MCUBOOT_LOG_ERR(...)
|
||||
* MCUBOOT_LOG_WRN(...)
|
||||
* MCUBOOT_LOG_INF(...)
|
||||
* MCUBOOT_LOG_DBG(...)
|
||||
*
|
||||
* The following global logging level configuration macros must also be
|
||||
* defined, each with a unique value. Those will be used to define a global
|
||||
* configuration and will allow any source files to override the global
|
||||
* configuration:
|
||||
*
|
||||
* MCUBOOT_LOG_LEVEL_OFF
|
||||
* MCUBOOT_LOG_LEVEL_ERROR
|
||||
* MCUBOOT_LOG_LEVEL_WARNING
|
||||
* MCUBOOT_LOG_LEVEL_INFO
|
||||
* MCUBOOT_LOG_LEVEL_DEBUG
|
||||
*
|
||||
* The global logging level must be defined, with one of the previously defined
|
||||
* logging levels:
|
||||
*
|
||||
* #define MCUBOOT_LOG_LEVEL MCUBOOT_LOG_LEVEL_(OFF|ERROR|WARNING|INFO|DEBUG)
|
||||
*
|
||||
* MCUBOOT_LOG_LEVEL sets the minimum level that will be logged. The function
|
||||
* priority is:
|
||||
*
|
||||
* MCUBOOT_LOG_ERR > MCUBOOT_LOG_WRN > MCUBOOT_LOG_INF > MCUBOOT_LOG_DBG
|
||||
*
|
||||
* NOTE: Each source file is still able to request its own logging level by
|
||||
* defining BOOT_LOG_LEVEL before #including `bootutil_log.h`
|
||||
*/
|
||||
#define MCUBOOT_HAVE_LOGGING 1
|
||||
/* Define this to support native mcuboot logging system */
|
||||
#define CONFIG_MCUBOOT 1
|
||||
/*
|
||||
* Assertions
|
||||
*/
|
||||
|
||||
/* Uncomment if your platform has its own mcuboot_config/mcuboot_assert.h.
|
||||
* If so, it must provide an ASSERT macro for use by bootutil. Otherwise,
|
||||
* "assert" is used. */
|
||||
//#define MCUBOOT_HAVE_ASSERT_H
|
||||
|
||||
#define MCUBOOT_WATCHDOG_FEED() \
|
||||
do { \
|
||||
/* TODO: to be implemented */ \
|
||||
} while (0)
|
||||
|
||||
/* Uncomment these if support of encrypted upgrade image is needed */
|
||||
#ifdef ENC_IMG
|
||||
#define MCUBOOT_ENC_IMAGES
|
||||
#define MCUBOOT_ENCRYPT_EC256
|
||||
#define NUM_ECC_BYTES (256 / 8)
|
||||
#endif /* ENC_IMG */
|
||||
|
||||
/*
|
||||
* No direct idle call implemented
|
||||
*/
|
||||
#define MCUBOOT_CPU_IDLE() \
|
||||
do { \
|
||||
} while (0)
|
||||
|
||||
#endif /* MCUBOOT_CONFIG_H */
|
||||
@@ -0,0 +1,99 @@
|
||||
/*
|
||||
* Copyright (c) 2018 Nordic Semiconductor ASA
|
||||
* Copyright (c) 2015 Runtime Inc
|
||||
* Copyright (c) 2020 Cypress Semiconductor Corporation
|
||||
*
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
/*
|
||||
* Licensed to the Apache Software Foundation (ASF) under one
|
||||
* or more contributor license agreements. See the NOTICE file
|
||||
* distributed with this work for additional information
|
||||
* regarding copyright ownership. The ASF licenses this file
|
||||
* to you under the Apache License, Version 2.0 (the
|
||||
* "License"); you may not use this file except in compliance
|
||||
* with the License. You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing,
|
||||
* software distributed under the License is distributed on an
|
||||
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
* KIND, either express or implied. See the License for the
|
||||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
/*******************************************************************************/
|
||||
|
||||
#ifndef MCUBOOT_LOGGING_H
|
||||
#define MCUBOOT_LOGGING_H
|
||||
|
||||
#include <stdio.h>
|
||||
|
||||
#define MCUBOOT_LOG_LEVEL_OFF 0
|
||||
#define MCUBOOT_LOG_LEVEL_ERROR 1
|
||||
#define MCUBOOT_LOG_LEVEL_WARNING 2
|
||||
#define MCUBOOT_LOG_LEVEL_INFO 3
|
||||
#define MCUBOOT_LOG_LEVEL_DEBUG 4
|
||||
|
||||
/*
|
||||
* The compiled log level determines the maximum level that can be
|
||||
* printed. Messages at or below this level can be printed, provided
|
||||
* they are also enabled through the Rust logging system, such as by
|
||||
* setting RUST_LOG to bootsim::api=info.
|
||||
*/
|
||||
#ifndef MCUBOOT_LOG_LEVEL
|
||||
#define MCUBOOT_LOG_LEVEL MCUBOOT_LOG_LEVEL_INFO
|
||||
#endif
|
||||
|
||||
int sim_log_enabled(int level);
|
||||
|
||||
#define sim_log_enabled(x) 1
|
||||
|
||||
#if MCUBOOT_LOG_LEVEL >= MCUBOOT_LOG_LEVEL_ERROR
|
||||
#define MCUBOOT_LOG_ERR(_fmt, ...) \
|
||||
do { \
|
||||
if (sim_log_enabled(MCUBOOT_LOG_LEVEL_ERROR)) { \
|
||||
fprintf(stderr, "[ERR] " _fmt "\n\r", ##__VA_ARGS__); \
|
||||
} \
|
||||
} while (0)
|
||||
#else
|
||||
#define MCUBOOT_LOG_ERR(...) IGNORE(__VA_ARGS__)
|
||||
#endif
|
||||
|
||||
#if MCUBOOT_LOG_LEVEL >= MCUBOOT_LOG_LEVEL_WARNING
|
||||
#define MCUBOOT_LOG_WRN(_fmt, ...) \
|
||||
do { \
|
||||
if (sim_log_enabled(MCUBOOT_LOG_LEVEL_WARNING)) { \
|
||||
fprintf(stderr, "[WRN] " _fmt "\n\r", ##__VA_ARGS__); \
|
||||
} \
|
||||
} while (0)
|
||||
#else
|
||||
#define MCUBOOT_LOG_WRN(...) IGNORE(__VA_ARGS__)
|
||||
#endif
|
||||
|
||||
#if MCUBOOT_LOG_LEVEL >= MCUBOOT_LOG_LEVEL_INFO
|
||||
#define MCUBOOT_LOG_INF(_fmt, ...) \
|
||||
do { \
|
||||
if (sim_log_enabled(MCUBOOT_LOG_LEVEL_INFO)) { \
|
||||
fprintf(stderr, "[INF] " _fmt "\n\r", ##__VA_ARGS__); \
|
||||
} \
|
||||
} while (0)
|
||||
#else
|
||||
#define MCUBOOT_LOG_INF(...) IGNORE(__VA_ARGS__)
|
||||
#endif
|
||||
|
||||
#if MCUBOOT_LOG_LEVEL >= MCUBOOT_LOG_LEVEL_DEBUG
|
||||
#define MCUBOOT_LOG_DBG(_fmt, ...) \
|
||||
do { \
|
||||
if (sim_log_enabled(MCUBOOT_LOG_LEVEL_DEBUG)) { \
|
||||
fprintf(stderr, "[DBG] " _fmt "\n\r", ##__VA_ARGS__); \
|
||||
} \
|
||||
} while (0)
|
||||
#else
|
||||
#define MCUBOOT_LOG_DBG(...) IGNORE(__VA_ARGS__)
|
||||
#endif
|
||||
|
||||
#define MCUBOOT_LOG_MODULE_DECLARE(...)
|
||||
|
||||
#endif /* MCUBOOT_LOGGING_H */
|
||||
@@ -0,0 +1,54 @@
|
||||
/*
|
||||
* mbed Microcontroller Library
|
||||
* Copyright (c) 2019 Cypress Semiconductor Corporation
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
/**
|
||||
* \file mcuboot_crypto_acc_config.h
|
||||
* \version 1.1
|
||||
*/
|
||||
|
||||
#ifndef MCUBOOT_MBEDTLS_DEVICE_H
|
||||
#define MCUBOOT_MBEDTLS_DEVICE_H
|
||||
|
||||
/* Currently this target supports SHA1 */
|
||||
// #define MBEDTLS_SHA1_C
|
||||
|
||||
#define MBEDTLS_SHA1_ALT
|
||||
#define MBEDTLS_SHA256_ALT
|
||||
#define MBEDTLS_SHA512_ALT
|
||||
|
||||
/* Currently this target supports CBC, CFB, OFB, CTR and XTS cipher modes */
|
||||
#define MBEDTLS_AES_ALT
|
||||
// #define MBEDTLS_CIPHER_MODE_CBC
|
||||
// #define MBEDTLS_CIPHER_MODE_CFB
|
||||
// #define MBEDTLS_CIPHER_MODE_OFB
|
||||
#ifdef MCUBOOT_ENC_IMAGES
|
||||
#define MBEDTLS_CIPHER_MODE_CTR
|
||||
#endif
|
||||
// #define MBEDTLS_CIPHER_MODE_XTS
|
||||
|
||||
/* Only NIST-P curves are currently supported */
|
||||
#define MBEDTLS_ECP_ALT
|
||||
// #define MBEDTLS_ECP_DP_SECP192R1_ENABLED
|
||||
// #define MBEDTLS_ECP_DP_SECP224R1_ENABLED
|
||||
// #define MBEDTLS_ECP_DP_SECP256R1_ENABLED
|
||||
// #define MBEDTLS_ECP_DP_SECP384R1_ENABLED
|
||||
// #define MBEDTLS_ECP_DP_SECP521R1_ENABLED
|
||||
|
||||
#define MBEDTLS_ECDSA_SIGN_ALT
|
||||
#define MBEDTLS_ECDSA_VERIFY_ALT
|
||||
|
||||
#endif /* MCUBOOT_MBEDTLS_DEVICE_H */
|
||||
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user