Initial commit
Initial commit.
This commit is contained in:
23
bootloader/mcuboot/boot/zephyr/include/arm_cleanup.h
Normal file
23
bootloader/mcuboot/boot/zephyr/include/arm_cleanup.h
Normal file
@@ -0,0 +1,23 @@
|
||||
|
||||
/*
|
||||
* Copyright (c) 2020 Nordic Semiconductor ASA
|
||||
*
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
|
||||
#ifndef H_ARM_CLEANUP_
|
||||
#define H_ARM_CLEANUP_
|
||||
|
||||
/**
|
||||
* Cleanup interrupt priority and interupt enable registers.
|
||||
*/
|
||||
void cleanup_arm_nvic(void);
|
||||
|
||||
#if defined(CONFIG_CPU_HAS_ARM_MPU) || defined(CONFIG_CPU_HAS_NXP_MPU)
|
||||
/**
|
||||
* Cleanup all ARM MPU region configuration
|
||||
*/
|
||||
void z_arm_clear_arm_mpu_config(void);
|
||||
#endif
|
||||
|
||||
#endif
|
||||
@@ -0,0 +1,9 @@
|
||||
/*
|
||||
* Copyright (c) 2023 Nordic Semiconductor ASA
|
||||
*
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
|
||||
#include <zephyr/linker/iterable_sections.h>
|
||||
|
||||
ITERABLE_SECTION_ROM(mcuboot_bs_custom_handlers, 4)
|
||||
@@ -0,0 +1,41 @@
|
||||
/*
|
||||
* Copyright (c) 2023 Nordic Semiconductor ASA
|
||||
*
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
|
||||
#ifndef H_BOOT_SERIAL_EXTENTIONS_
|
||||
#define H_BOOT_SERIAL_EXTENTIONS_
|
||||
|
||||
#include <zephyr/kernel.h>
|
||||
#include <zephyr/sys/util_macro.h>
|
||||
#include <zephyr/sys/iterable_sections.h>
|
||||
|
||||
/**
|
||||
* Callback handler prototype for boot serial extensions.
|
||||
*
|
||||
* @param[in] hdr MCUmgr header
|
||||
* @param[in] buffer Buffer with first MCUmgr message
|
||||
* @param[in] len Length of data in buffer
|
||||
* @param[out] cs Response
|
||||
*
|
||||
* @return MGMT_ERR_ENOTSUP to run other handlers, other MGMT_ERR_* value
|
||||
* when expected handler has ran.
|
||||
*/
|
||||
typedef int (*bs_custom_handler_cb)(const struct nmgr_hdr *hdr,
|
||||
const char *buffer, int len,
|
||||
zcbor_state_t *cs);
|
||||
|
||||
struct mcuboot_bs_custom_handlers {
|
||||
const bs_custom_handler_cb handler;
|
||||
};
|
||||
|
||||
/* Used to create an iterable section containing a boot serial handler
|
||||
* function
|
||||
*/
|
||||
#define MCUMGR_HANDLER_DEFINE(name, _handler) \
|
||||
STRUCT_SECTION_ITERABLE(mcuboot_bs_custom_handlers, name) = { \
|
||||
.handler = _handler, \
|
||||
}
|
||||
|
||||
#endif /* H_BOOT_SERIAL_EXTENTIONS_ */
|
||||
@@ -0,0 +1,104 @@
|
||||
/*
|
||||
* Copyright (c) 2024 Nordic Semiconductor ASA
|
||||
*
|
||||
* SPDX-License-Identifier: LicenseRef-Nordic-5-Clause
|
||||
*/
|
||||
|
||||
#ifndef H_DECOMPRESSION_
|
||||
#define H_DECOMPRESSION_
|
||||
|
||||
#include <stdint.h>
|
||||
#include <stdbool.h>
|
||||
#include <inttypes.h>
|
||||
#include "bootutil/bootutil.h"
|
||||
#include "bootutil/bootutil_public.h"
|
||||
#include "bootutil/image.h"
|
||||
#include "../src/bootutil_priv.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Checks if a compressed image header is valid.
|
||||
*
|
||||
* @param hdr Image header.
|
||||
* @param fap Flash area of the slot.
|
||||
* @param state Bootloader state object.
|
||||
*
|
||||
* @return true if valid; false if invalid.
|
||||
*/
|
||||
bool boot_is_compressed_header_valid(const struct image_header *hdr, const struct flash_area *fap,
|
||||
struct boot_loader_state *state);
|
||||
|
||||
/**
|
||||
* Reads in compressed image data from a slot, decompresses it and writes it out to a destination
|
||||
* slot, including corresponding image headers and TLVs.
|
||||
*
|
||||
* @param state Bootloader state object.
|
||||
* @param fap_src Flash area of the source slot.
|
||||
* @param fap_dst Flash area of the destination slot.
|
||||
* @param off_src Offset of the source slot to read from (should be 0).
|
||||
* @param off_dst Offset of the destination slot to write to (should be 0).
|
||||
* @param sz Size of the source slot data.
|
||||
* @param buf Temporary buffer for reading data from.
|
||||
* @param buf_size Size of temporary buffer.
|
||||
*
|
||||
* @return 0 on success; nonzero on failure.
|
||||
*/
|
||||
int boot_copy_region_decompress(struct boot_loader_state *state, const struct flash_area *fap_src,
|
||||
const struct flash_area *fap_dst, uint32_t off_src,
|
||||
uint32_t off_dst, uint32_t sz, uint8_t *buf, size_t buf_size);
|
||||
|
||||
/**
|
||||
* Gets the total data size (excluding headers and TLVs) of a compressed image when it is
|
||||
* decompressed.
|
||||
*
|
||||
* @param hdr Image header.
|
||||
* @param fap Flash area of the slot.
|
||||
* @param img_decomp_size Pointer to variable that will be updated with the decompressed image
|
||||
* size.
|
||||
*
|
||||
* @return 0 on success; nonzero on failure.
|
||||
*/
|
||||
int bootutil_get_img_decomp_size(const struct image_header *hdr, const struct flash_area *fap,
|
||||
uint32_t *img_decomp_size);
|
||||
|
||||
/**
|
||||
* Calculate MCUboot-compatible image hash of compressed image slot.
|
||||
*
|
||||
* @param enc_state Not currently used, set to NULL.
|
||||
* @param image_index Image number.
|
||||
* @param hdr Image header.
|
||||
* @param fap Flash area of the slot.
|
||||
* @param tmp_buf Temporary buffer for reading data from.
|
||||
* @param tmp_buf_sz Size of temporary buffer.
|
||||
* @param hash_result Pointer to a variable that will be updated with the image hash.
|
||||
* @param seed Not currently used, set to NULL.
|
||||
* @param seed_len Not currently used, set to 0.
|
||||
*
|
||||
* @return 0 on success; nonzero on failure.
|
||||
*/
|
||||
int bootutil_img_hash_decompress(struct enc_key_data *enc_state, int image_index,
|
||||
struct image_header *hdr, const struct flash_area *fap,
|
||||
uint8_t *tmp_buf, uint32_t tmp_buf_sz, uint8_t *hash_result,
|
||||
uint8_t *seed, int seed_len);
|
||||
|
||||
/**
|
||||
* Calculates the size that the compressed image protected TLV section will occupy once the image
|
||||
* has been decompressed.
|
||||
*
|
||||
* @param hdr Image header.
|
||||
* @param fap Flash area of the slot.
|
||||
* @param sz Pointer to variable that will be updated with the protected TLV size.
|
||||
*
|
||||
* @return 0 on success; nonzero on failure.
|
||||
*/
|
||||
int boot_size_protected_tlvs(const struct image_header *hdr, const struct flash_area *fap_src,
|
||||
uint32_t *sz);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif /* H_DECOMPRESSION_ */
|
||||
44
bootloader/mcuboot/boot/zephyr/include/config-asn1.h
Normal file
44
bootloader/mcuboot/boot/zephyr/include/config-asn1.h
Normal file
@@ -0,0 +1,44 @@
|
||||
/*
|
||||
* Configuration of mbedTLS containing only the ASN.1 parser.
|
||||
*
|
||||
* Copyright (C) 2006-2015, ARM Limited, All Rights Reserved
|
||||
* Copyright (C) 2016, Linaro Ltd
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*
|
||||
* 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.
|
||||
*
|
||||
* This file is part of mbed TLS (https://tls.mbed.org)
|
||||
*/
|
||||
|
||||
/*
|
||||
* Minimal configuration for using TLS in the bootloader
|
||||
*
|
||||
* - RSA or ECDSA signature verification
|
||||
*/
|
||||
|
||||
#ifndef MBEDTLS_CONFIG_ASN1_H
|
||||
#define MBEDTLS_CONFIG_ASN1_H
|
||||
|
||||
#define MBEDTLS_PLATFORM_C
|
||||
#define MBEDTLS_PLATFORM_MEMORY
|
||||
#define MBEDTLS_PLATFORM_NO_STD_FUNCTIONS
|
||||
|
||||
/* mbed TLS modules */
|
||||
#define MBEDTLS_ASN1_PARSE_C
|
||||
// #define MBEDTLS_ASN1_WRITE_C
|
||||
// #define MBEDTLS_BIGNUM_C
|
||||
// #define MBEDTLS_MD_C
|
||||
// #define MBEDTLS_OID_C
|
||||
// #define MBEDTLS_SHA256_C
|
||||
|
||||
#endif /* MBEDTLS_CONFIG_ASN1_H */
|
||||
94
bootloader/mcuboot/boot/zephyr/include/config-ec.h
Normal file
94
bootloader/mcuboot/boot/zephyr/include/config-ec.h
Normal file
@@ -0,0 +1,94 @@
|
||||
/*
|
||||
* Minimal configuration for using TLS in the bootloader
|
||||
*
|
||||
* Copyright (C) 2006-2021, ARM Limited, All Rights Reserved
|
||||
* Copyright (C) 2016, Linaro Ltd
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*
|
||||
* 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.
|
||||
*
|
||||
* This file is part of mbed TLS (https://tls.mbed.org)
|
||||
*/
|
||||
|
||||
/*
|
||||
* Minimal configuration for using TLS in the bootloader
|
||||
*
|
||||
* - RSA or ECDSA signature verification
|
||||
*/
|
||||
|
||||
#ifndef MCUBOOT_MBEDTLS_CONFIG_ECDSA
|
||||
#define MCUBOOT_MBEDTLS_CONFIG_ECDSA
|
||||
|
||||
#ifdef CONFIG_MCUBOOT_SERIAL
|
||||
/* Mcuboot uses mbedts-base64 for serial protocol encoding. */
|
||||
#define MBEDTLS_BASE64_C
|
||||
#endif
|
||||
|
||||
/* System support */
|
||||
#define MBEDTLS_PLATFORM_C
|
||||
#define MBEDTLS_PLATFORM_MEMORY
|
||||
#define MBEDTLS_MEMORY_BUFFER_ALLOC_C
|
||||
#define MBEDTLS_NO_PLATFORM_ENTROPY
|
||||
#define MBEDTLS_NO_DEFAULT_ENTROPY_SOURCES
|
||||
|
||||
/* STD functions */
|
||||
#define MBEDTLS_PLATFORM_NO_STD_FUNCTIONS
|
||||
|
||||
#define MBEDTLS_PLATFORM_EXIT_ALT
|
||||
#define MBEDTLS_PLATFORM_PRINTF_ALT
|
||||
#define MBEDTLS_PLATFORM_SNPRINTF_ALT
|
||||
|
||||
#if !defined(CONFIG_ARM)
|
||||
#define MBEDTLS_HAVE_ASM
|
||||
#endif
|
||||
|
||||
#define MBEDTLS_ECDSA_C
|
||||
#define MBEDTLS_ECDH_C
|
||||
|
||||
/* mbed TLS modules */
|
||||
#define MBEDTLS_ASN1_PARSE_C
|
||||
#define MBEDTLS_ASN1_WRITE_C
|
||||
#define MBEDTLS_ECP_C
|
||||
#define MBEDTLS_ECP_DP_SECP256R1_ENABLED
|
||||
#define MBEDTLS_ECP_NIST_OPTIM
|
||||
#define MBEDTLS_BIGNUM_C
|
||||
#define MBEDTLS_MD_C
|
||||
#define MBEDTLS_OID_C
|
||||
#define MBEDTLS_SHA256_C
|
||||
#define MBEDTLS_SHA256_SMALLER
|
||||
#define MBEDTLS_SHA224_C
|
||||
#define MBEDTLS_AES_C
|
||||
|
||||
/* Bring in support for x509. */
|
||||
#define MBEDTLS_X509_USE_C
|
||||
#define MBEDTLS_PK_C
|
||||
#define MBEDTLS_PK_PARSE_C
|
||||
#define MBEDTLS_X509_CRT_PARSE_C
|
||||
|
||||
/* Save RAM by adjusting to our exact needs */
|
||||
#define MBEDTLS_MPI_MAX_SIZE 32
|
||||
|
||||
#define MBEDTLS_SSL_MAX_CONTENT_LEN 1024
|
||||
|
||||
/* Save ROM and a few bytes of RAM by specifying our own ciphersuite list */
|
||||
#define MBEDTLS_SSL_CIPHERSUITES MBEDTLS_TLS_ECJPAKE_WITH_AES_128_CCM_8
|
||||
|
||||
/* If encryption is being used, also enable the features needed for
|
||||
* that. */
|
||||
#if defined(MCUBOOT_ENC_IMAGES)
|
||||
#define MBEDTLS_CIPHER_MODE_CTR
|
||||
#define MBEDTLS_CIPHER_C
|
||||
#define MBEDTLS_NIST_KW_C
|
||||
#endif /* MCUBOOT_ENC_IMAGES */
|
||||
|
||||
#endif /* MCUBOOT_MBEDTLS_CONFIG_ECDSA */
|
||||
76
bootloader/mcuboot/boot/zephyr/include/config-ed25519.h
Normal file
76
bootloader/mcuboot/boot/zephyr/include/config-ed25519.h
Normal file
@@ -0,0 +1,76 @@
|
||||
/*
|
||||
* Configuration of mbedTLS containing only the ASN.1 parser.
|
||||
*
|
||||
* Copyright (C) 2006-2021, ARM Limited, All Rights Reserved
|
||||
* Copyright (C) 2016, Linaro Ltd
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*
|
||||
* 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.
|
||||
*
|
||||
* This file is part of mbed TLS (https://tls.mbed.org)
|
||||
*/
|
||||
|
||||
/*
|
||||
* Minimal configuration for using TLS in the bootloader
|
||||
*
|
||||
* - ed25519 signature verification
|
||||
*/
|
||||
|
||||
#ifndef MCUBOOT_MBEDTLS_CONFIG_ED25519
|
||||
#define MCUBOOT_MBEDTLS_CONFIG_ED25519
|
||||
|
||||
#ifdef CONFIG_MCUBOOT_SERIAL
|
||||
/* Mcuboot uses mbedts-base64 for serial protocol encoding. */
|
||||
#define MBEDTLS_BASE64_C
|
||||
#endif
|
||||
|
||||
/* System support */
|
||||
#define MBEDTLS_PLATFORM_C
|
||||
#define MBEDTLS_PLATFORM_MEMORY
|
||||
#define MBEDTLS_MEMORY_BUFFER_ALLOC_C
|
||||
#define MBEDTLS_NO_PLATFORM_ENTROPY
|
||||
#define MBEDTLS_NO_DEFAULT_ENTROPY_SOURCES
|
||||
|
||||
/* STD functions */
|
||||
#define MBEDTLS_PLATFORM_NO_STD_FUNCTIONS
|
||||
|
||||
#define MBEDTLS_PLATFORM_EXIT_ALT
|
||||
#define MBEDTLS_PLATFORM_PRINTF_ALT
|
||||
#define MBEDTLS_PLATFORM_SNPRINTF_ALT
|
||||
|
||||
#if !defined(CONFIG_ARM)
|
||||
#define MBEDTLS_HAVE_ASM
|
||||
#endif
|
||||
|
||||
#define MBEDTLS_CIPHER_MODE_CTR
|
||||
|
||||
/* mbed TLS modules */
|
||||
#define MBEDTLS_ASN1_PARSE_C
|
||||
#define MBEDTLS_BIGNUM_C
|
||||
#define MBEDTLS_MD_C
|
||||
#define MBEDTLS_OID_C
|
||||
#define MBEDTLS_SHA256_C
|
||||
#define MBEDTLS_SHA256_SMALLER
|
||||
#define MBEDTLS_SHA224_C
|
||||
#define MBEDTLS_SHA512_C
|
||||
#define MBEDTLS_AES_C
|
||||
|
||||
/* Save RAM by adjusting to our exact needs */
|
||||
#define MBEDTLS_MPI_MAX_SIZE 64
|
||||
|
||||
//#define MBEDTLS_SSL_MAX_CONTENT_LEN 1024
|
||||
|
||||
/* Save ROM and a few bytes of RAM by specifying our own ciphersuite list */
|
||||
#define MBEDTLS_SSL_CIPHERSUITES MBEDTLS_TLS_ECJPAKE_WITH_AES_128_CCM_8
|
||||
|
||||
#endif /* MCUBOOT_MBEDTLS_CONFIG_RSA */
|
||||
66
bootloader/mcuboot/boot/zephyr/include/config-kw.h
Normal file
66
bootloader/mcuboot/boot/zephyr/include/config-kw.h
Normal file
@@ -0,0 +1,66 @@
|
||||
/*
|
||||
* Minimal configuration for using TLS in the bootloader
|
||||
*
|
||||
* Copyright (C) 2006-2021, ARM Limited, All Rights Reserved
|
||||
* Copyright (C) 2016, Linaro Ltd
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*
|
||||
* 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.
|
||||
*
|
||||
* This file is part of mbed TLS (https://tls.mbed.org)
|
||||
*/
|
||||
|
||||
/*
|
||||
* Minimal configuration for using TLS in the bootloader
|
||||
*
|
||||
* - RSA or ECDSA signature verification
|
||||
*/
|
||||
|
||||
#ifndef MCUBOOT_MBEDTLS_CONFIG_KW
|
||||
#define MCUBOOT_MBEDTLS_CONFIG_KW
|
||||
|
||||
#ifdef CONFIG_MCUBOOT_SERIAL
|
||||
/* Mcuboot uses mbedts-base64 for serial protocol encoding. */
|
||||
#define MBEDTLS_BASE64_C
|
||||
#endif
|
||||
|
||||
/* System support */
|
||||
#define MBEDTLS_PLATFORM_C
|
||||
#define MBEDTLS_PLATFORM_MEMORY
|
||||
#define MBEDTLS_MEMORY_BUFFER_ALLOC_C
|
||||
#define MBEDTLS_NO_PLATFORM_ENTROPY
|
||||
#define MBEDTLS_NO_DEFAULT_ENTROPY_SOURCES
|
||||
|
||||
/* STD functions */
|
||||
#define MBEDTLS_PLATFORM_NO_STD_FUNCTIONS
|
||||
|
||||
#define MBEDTLS_PLATFORM_EXIT_ALT
|
||||
#define MBEDTLS_PLATFORM_PRINTF_ALT
|
||||
#define MBEDTLS_PLATFORM_SNPRINTF_ALT
|
||||
|
||||
#define MBEDTLS_ASN1_PARSE_C
|
||||
|
||||
#if !defined(CONFIG_ARM)
|
||||
#define MBEDTLS_HAVE_ASM
|
||||
#endif
|
||||
|
||||
#define MBEDTLS_CIPHER_MODE_CTR
|
||||
|
||||
#define MBEDTLS_SHA256_C
|
||||
#define MBEDTLS_SHA256_SMALLER
|
||||
#define MBEDTLS_SHA224_C
|
||||
#define MBEDTLS_AES_C
|
||||
#define MBEDTLS_CIPHER_C
|
||||
#define MBEDTLS_NIST_KW_C
|
||||
|
||||
#endif /* MCUBOOT_MBEDTLS_CONFIG_KW */
|
||||
80
bootloader/mcuboot/boot/zephyr/include/config-rsa-kw.h
Normal file
80
bootloader/mcuboot/boot/zephyr/include/config-rsa-kw.h
Normal file
@@ -0,0 +1,80 @@
|
||||
/*
|
||||
* Minimal configuration for using TLS in the bootloader
|
||||
*
|
||||
* Copyright (C) 2006-2021, ARM Limited, All Rights Reserved
|
||||
* Copyright (C) 2016, Linaro Ltd
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*
|
||||
* 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.
|
||||
*
|
||||
* This file is part of mbed TLS (https://tls.mbed.org)
|
||||
*/
|
||||
|
||||
/*
|
||||
* Minimal configuration for using TLS in the bootloader
|
||||
*
|
||||
* - RSA signature verification + NIST Keywrapping support
|
||||
*/
|
||||
|
||||
#ifndef MCUBOOT_MBEDTLS_CONFIG_RSA_KW
|
||||
#define MCUBOOT_MBEDTLS_CONFIG_RSA_KW
|
||||
|
||||
#ifdef CONFIG_MCUBOOT_SERIAL
|
||||
/* Mcuboot uses mbedts-base64 for serial protocol encoding. */
|
||||
#define MBEDTLS_BASE64_C
|
||||
#endif
|
||||
|
||||
/* System support */
|
||||
#define MBEDTLS_PLATFORM_C
|
||||
#define MBEDTLS_PLATFORM_MEMORY
|
||||
#define MBEDTLS_MEMORY_BUFFER_ALLOC_C
|
||||
#define MBEDTLS_NO_PLATFORM_ENTROPY
|
||||
#define MBEDTLS_NO_DEFAULT_ENTROPY_SOURCES
|
||||
|
||||
/* STD functions */
|
||||
#define MBEDTLS_PLATFORM_NO_STD_FUNCTIONS
|
||||
|
||||
#define MBEDTLS_PLATFORM_EXIT_ALT
|
||||
#define MBEDTLS_PLATFORM_PRINTF_ALT
|
||||
#define MBEDTLS_PLATFORM_SNPRINTF_ALT
|
||||
|
||||
#if !defined(CONFIG_ARM)
|
||||
#define MBEDTLS_HAVE_ASM
|
||||
#endif
|
||||
|
||||
#define MBEDTLS_RSA_C
|
||||
#define MBEDTLS_PKCS1_V21
|
||||
|
||||
#define MBEDTLS_CIPHER_MODE_CTR
|
||||
|
||||
/* mbed TLS modules */
|
||||
#define MBEDTLS_ASN1_PARSE_C
|
||||
#define MBEDTLS_BIGNUM_C
|
||||
#define MBEDTLS_MD_C
|
||||
#define MBEDTLS_OID_C
|
||||
#define MBEDTLS_SHA256_C
|
||||
#define MBEDTLS_SHA256_SMALLER
|
||||
#define MBEDTLS_SHA224_C
|
||||
#define MBEDTLS_AES_C
|
||||
#define MBEDTLS_CIPHER_C
|
||||
#define MBEDTLS_NIST_KW_C
|
||||
|
||||
/* Save RAM by adjusting to our exact needs */
|
||||
#define MBEDTLS_MPI_MAX_SIZE 256
|
||||
|
||||
#define MBEDTLS_SSL_MAX_CONTENT_LEN 1024
|
||||
|
||||
/* Save ROM and a few bytes of RAM by specifying our own ciphersuite list */
|
||||
#define MBEDTLS_SSL_CIPHERSUITES MBEDTLS_TLS_ECJPAKE_WITH_AES_128_CCM_8
|
||||
|
||||
#endif /* MCUBOOT_MBEDTLS_CONFIG_RSA_KW */
|
||||
83
bootloader/mcuboot/boot/zephyr/include/config-rsa.h
Normal file
83
bootloader/mcuboot/boot/zephyr/include/config-rsa.h
Normal file
@@ -0,0 +1,83 @@
|
||||
/*
|
||||
* Minimal configuration for using TLS in the bootloader
|
||||
*
|
||||
* Copyright (C) 2006-2021, ARM Limited, All Rights Reserved
|
||||
* Copyright (C) 2016, Linaro Ltd
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*
|
||||
* 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.
|
||||
*
|
||||
* This file is part of mbed TLS (https://tls.mbed.org)
|
||||
*/
|
||||
|
||||
/*
|
||||
* Minimal configuration for using TLS in the bootloader
|
||||
*
|
||||
* - RSA or ECDSA signature verification
|
||||
*/
|
||||
|
||||
#ifndef MCUBOOT_MBEDTLS_CONFIG_RSA
|
||||
#define MCUBOOT_MBEDTLS_CONFIG_RSA
|
||||
|
||||
#ifdef CONFIG_MCUBOOT_SERIAL
|
||||
/* Mcuboot uses mbedts-base64 for serial protocol encoding. */
|
||||
#define MBEDTLS_BASE64_C
|
||||
#endif
|
||||
|
||||
/* System support */
|
||||
#define MBEDTLS_PLATFORM_C
|
||||
#define MBEDTLS_PLATFORM_MEMORY
|
||||
#define MBEDTLS_MEMORY_BUFFER_ALLOC_C
|
||||
#define MBEDTLS_NO_PLATFORM_ENTROPY
|
||||
#define MBEDTLS_NO_DEFAULT_ENTROPY_SOURCES
|
||||
|
||||
/* STD functions */
|
||||
#define MBEDTLS_PLATFORM_NO_STD_FUNCTIONS
|
||||
|
||||
#define MBEDTLS_PLATFORM_EXIT_ALT
|
||||
#define MBEDTLS_PLATFORM_PRINTF_ALT
|
||||
#define MBEDTLS_PLATFORM_SNPRINTF_ALT
|
||||
|
||||
#if !defined(CONFIG_ARM)
|
||||
#define MBEDTLS_HAVE_ASM
|
||||
#endif
|
||||
|
||||
#define MBEDTLS_RSA_C
|
||||
#define MBEDTLS_PKCS1_V21
|
||||
|
||||
#define MBEDTLS_CIPHER_MODE_CTR
|
||||
|
||||
/* mbed TLS modules */
|
||||
#define MBEDTLS_ASN1_PARSE_C
|
||||
#define MBEDTLS_ASN1_WRITE_C
|
||||
#define MBEDTLS_BIGNUM_C
|
||||
#define MBEDTLS_MD_C
|
||||
#define MBEDTLS_OID_C
|
||||
#define MBEDTLS_SHA256_C
|
||||
#define MBEDTLS_SHA256_SMALLER
|
||||
#define MBEDTLS_SHA224_C
|
||||
#define MBEDTLS_AES_C
|
||||
|
||||
/* Save RAM by adjusting to our exact needs */
|
||||
#if (CONFIG_BOOT_SIGNATURE_TYPE_RSA_LEN == 3072)
|
||||
#define MBEDTLS_MPI_MAX_SIZE 384
|
||||
#else
|
||||
#define MBEDTLS_MPI_MAX_SIZE 256
|
||||
#endif
|
||||
|
||||
#define MBEDTLS_SSL_MAX_CONTENT_LEN 1024
|
||||
|
||||
/* Save ROM and a few bytes of RAM by specifying our own ciphersuite list */
|
||||
#define MBEDTLS_SSL_CIPHERSUITES MBEDTLS_TLS_ECJPAKE_WITH_AES_128_CCM_8
|
||||
|
||||
#endif /* MCUBOOT_MBEDTLS_CONFIG_RSA */
|
||||
@@ -0,0 +1,113 @@
|
||||
/*
|
||||
* Copyright (c) 2018 Nordic Semiconductor ASA
|
||||
* Copyright (c) 2015 Runtime Inc
|
||||
*
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
|
||||
#ifndef __FLASH_MAP_BACKEND_H__
|
||||
#define __FLASH_MAP_BACKEND_H__
|
||||
|
||||
#include <zephyr/storage/flash_map.h> // the zephyr flash_map
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/**
|
||||
*
|
||||
* Provides abstraction of flash regions for type of use.
|
||||
* I.e. dude where's my image?
|
||||
*
|
||||
* System will contain a map which contains flash areas. Every
|
||||
* region will contain flash identifier, offset within flash and length.
|
||||
*
|
||||
* 1. This system map could be in a file within filesystem (Initializer
|
||||
* must know/figure out where the filesystem is at).
|
||||
* 2. Map could be at fixed location for project (compiled to code)
|
||||
* 3. Map could be at specific place in flash (put in place at mfg time).
|
||||
*
|
||||
* Note that the map you use must be valid for BSP it's for,
|
||||
* match the linker scripts when platform executes from flash,
|
||||
* and match the target offset specified in download script.
|
||||
*/
|
||||
#include <inttypes.h>
|
||||
#include <sys/types.h>
|
||||
|
||||
/*
|
||||
* Retrieve a memory-mapped flash device's base address.
|
||||
*
|
||||
* On success, the address will be stored in the value pointed to by
|
||||
* ret.
|
||||
*
|
||||
* Returns 0 on success, or an error code on failure.
|
||||
*/
|
||||
int flash_device_base(uint8_t fd_id, uintptr_t *ret);
|
||||
|
||||
int flash_area_id_from_image_slot(int slot);
|
||||
int flash_area_id_from_multi_image_slot(int image_index, int slot);
|
||||
|
||||
/**
|
||||
* Converts the specified flash area ID and image index (in multi-image setup)
|
||||
* to an image slot index.
|
||||
*
|
||||
* Returns image slot index (0 or 1), or -1 if ID doesn't correspond to an image
|
||||
* slot.
|
||||
*/
|
||||
int flash_area_id_to_multi_image_slot(int image_index, int area_id);
|
||||
|
||||
/* Retrieve the flash sector a given offset belongs to.
|
||||
*
|
||||
* Returns 0 on success, or an error code on failure.
|
||||
*/
|
||||
int flash_area_sector_from_off(off_t off, struct flash_sector *sector);
|
||||
|
||||
static inline uint32_t flash_area_get_off(const struct flash_area *fa)
|
||||
{
|
||||
return (uint32_t)fa->fa_off;
|
||||
}
|
||||
|
||||
static inline uint32_t flash_area_get_size(const struct flash_area *fa)
|
||||
{
|
||||
return (uint32_t)fa->fa_size;
|
||||
}
|
||||
|
||||
static inline uint8_t flash_area_get_id(const struct flash_area *fa)
|
||||
{
|
||||
return fa->fa_id;
|
||||
}
|
||||
|
||||
uint8_t flash_area_get_device_id(const struct flash_area *fa);
|
||||
|
||||
/*
|
||||
* Returns the value expected to be read when accessing any erased
|
||||
* flash byte.
|
||||
*/
|
||||
uint8_t flash_area_erased_val(const struct flash_area *fap);
|
||||
|
||||
static inline uint32_t flash_sector_get_off(const struct flash_sector *fs)
|
||||
{
|
||||
return fs->fs_off;
|
||||
}
|
||||
|
||||
static inline uint32_t flash_sector_get_size(const struct flash_sector *fs)
|
||||
{
|
||||
return fs->fs_size;
|
||||
}
|
||||
|
||||
/* Retrieve the flash sector withing given flash area, at a given offset.
|
||||
*
|
||||
* @param fa flash area where the sector is taken from.
|
||||
* @param off offset within flash area.
|
||||
* @param sector structure of sector information.
|
||||
* Returns 0 on success, -ERANGE if @p off is beyond flash area size,
|
||||
* other negative errno code on failure.
|
||||
*/
|
||||
int flash_area_get_sector(const struct flash_area *fa, off_t off,
|
||||
struct flash_sector *fs);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif /* __FLASH_MAP_BACKEND_H__ */
|
||||
79
bootloader/mcuboot/boot/zephyr/include/hal/hal_bsp.h
Normal file
79
bootloader/mcuboot/boot/zephyr/include/hal/hal_bsp.h
Normal file
@@ -0,0 +1,79 @@
|
||||
/*
|
||||
* 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 __HAL_BSP_H_
|
||||
#define __HAL_BSP_H_
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
#include <inttypes.h>
|
||||
|
||||
/*
|
||||
* Initializes BSP; registers flash_map with the system.
|
||||
*/
|
||||
void hal_bsp_init(void);
|
||||
|
||||
/*
|
||||
* Return pointer to flash device structure, given BSP specific
|
||||
* flash id.
|
||||
*/
|
||||
struct hal_flash;
|
||||
const struct hal_flash *hal_bsp_flash_dev(uint8_t flash_id);
|
||||
|
||||
/*
|
||||
* Grows heap by given amount. XXX giving space back not implemented.
|
||||
*/
|
||||
void *_sbrk(int incr);
|
||||
|
||||
/*
|
||||
* Report which memory areas should be included inside a coredump.
|
||||
*/
|
||||
struct hal_bsp_mem_dump {
|
||||
void *hbmd_start;
|
||||
uint32_t hbmd_size;
|
||||
};
|
||||
|
||||
const struct hal_bsp_mem_dump *hal_bsp_core_dump(int *area_cnt);
|
||||
|
||||
/*
|
||||
* Get unique HW identifier/serial number for platform.
|
||||
* Returns the number of bytes filled in.
|
||||
*/
|
||||
#define HAL_BSP_MAX_ID_LEN 32
|
||||
int hal_bsp_hw_id(uint8_t *id, int max_len);
|
||||
|
||||
#define HAL_BSP_POWER_ON (1)
|
||||
#define HAL_BSP_POWER_WFI (2)
|
||||
#define HAL_BSP_POWER_SLEEP (3)
|
||||
#define HAL_BSP_POWER_DEEP_SLEEP (4)
|
||||
#define HAL_BSP_POWER_OFF (5)
|
||||
#define HAL_BSP_POWER_PERUSER (128)
|
||||
|
||||
int hal_bsp_power_state(int state);
|
||||
|
||||
/* Returns priority of given interrupt number */
|
||||
uint32_t hal_bsp_get_nvic_priority(int irq_num, uint32_t pri);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif
|
||||
43
bootloader/mcuboot/boot/zephyr/include/hal/hal_flash.h
Normal file
43
bootloader/mcuboot/boot/zephyr/include/hal/hal_flash.h
Normal file
@@ -0,0 +1,43 @@
|
||||
/*
|
||||
* 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 H_HAL_FLASH_
|
||||
#define H_HAL_FLASH_
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
#include <inttypes.h>
|
||||
|
||||
int hal_flash_read(uint8_t flash_id, uint32_t address, void *dst,
|
||||
uint32_t num_bytes);
|
||||
int hal_flash_write(uint8_t flash_id, uint32_t address, const void *src,
|
||||
uint32_t num_bytes);
|
||||
int hal_flash_erase_sector(uint8_t flash_id, uint32_t sector_address);
|
||||
int hal_flash_erase(uint8_t flash_id, uint32_t address, uint32_t num_bytes);
|
||||
uint8_t hal_flash_align(uint8_t flash_id);
|
||||
int hal_flash_init(void);
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif /* H_HAL_FLASH_ */
|
||||
83
bootloader/mcuboot/boot/zephyr/include/io/io.h
Normal file
83
bootloader/mcuboot/boot/zephyr/include/io/io.h
Normal file
@@ -0,0 +1,83 @@
|
||||
/*
|
||||
* Copyright (c) 2012-2014 Wind River Systems, Inc.
|
||||
* Copyright (c) 2020 Arm Limited
|
||||
* Copyright (c) 2021-2023 Nordic Semiconductor ASA
|
||||
*
|
||||
* 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.
|
||||
*/
|
||||
|
||||
#ifndef H_IO_
|
||||
#define H_IO_
|
||||
|
||||
#include <stddef.h>
|
||||
|
||||
#ifdef CONFIG_SOC_FAMILY_NORDIC_NRF
|
||||
#include <helpers/nrfx_reset_reason.h>
|
||||
#endif
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Initialises the configured LED.
|
||||
*/
|
||||
void io_led_init(void);
|
||||
|
||||
/*
|
||||
* Sets value of the configured LED.
|
||||
*/
|
||||
void io_led_set(int value);
|
||||
|
||||
/*
|
||||
* Checks if GPIO is set in the required way to remain in serial recovery mode
|
||||
*
|
||||
* @retval false for normal boot, true for serial recovery boot
|
||||
*/
|
||||
bool io_detect_pin(void);
|
||||
|
||||
/*
|
||||
* Checks if board was reset using reset pin and if device should stay in
|
||||
* serial recovery mode
|
||||
*
|
||||
* @retval false for normal boot, true for serial recovery boot
|
||||
*/
|
||||
bool io_detect_pin_reset(void);
|
||||
|
||||
/*
|
||||
* Checks board boot mode via retention subsystem and if device should stay in
|
||||
* serial recovery mode
|
||||
*
|
||||
* @retval false for normal boot, true for serial recovery boot
|
||||
*/
|
||||
bool io_detect_boot_mode(void);
|
||||
|
||||
#ifdef CONFIG_SOC_FAMILY_NORDIC_NRF
|
||||
static inline bool io_boot_skip_serial_recovery()
|
||||
{
|
||||
uint32_t rr = nrfx_reset_reason_get();
|
||||
|
||||
return !(rr == 0 || (rr & NRFX_RESET_REASON_RESETPIN_MASK));
|
||||
}
|
||||
#else
|
||||
static inline bool io_boot_skip_serial_recovery()
|
||||
{
|
||||
return false;
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif
|
||||
36
bootloader/mcuboot/boot/zephyr/include/mcuboot-mbedtls-cfg.h
Normal file
36
bootloader/mcuboot/boot/zephyr/include/mcuboot-mbedtls-cfg.h
Normal file
@@ -0,0 +1,36 @@
|
||||
/*
|
||||
* Copyright (C) 2018 Open Source Foundries Limited
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
|
||||
#ifndef _MCUBOOT_MBEDTLS_CONFIG_
|
||||
#define _MCUBOOT_MBEDTLS_CONFIG_
|
||||
|
||||
/**
|
||||
* @file
|
||||
*
|
||||
* This is the top-level mbedTLS configuration file for MCUboot. The
|
||||
* configuration depends on the signature type, so this file just
|
||||
* pulls in the right header depending on that setting.
|
||||
*/
|
||||
|
||||
/*
|
||||
* IMPORTANT:
|
||||
*
|
||||
* If you put any "generic" definitions in here, make sure to update
|
||||
* the simulator build.rs accordingly.
|
||||
*/
|
||||
|
||||
#if defined(CONFIG_BOOT_SIGNATURE_TYPE_RSA) || defined(CONFIG_BOOT_ENCRYPT_RSA)
|
||||
#include "config-rsa.h"
|
||||
#elif defined(CONFIG_BOOT_USE_PSA_CRYPTO) || defined(CONFIG_BOOT_SIGNATURE_TYPE_ECDSA_P256) || \
|
||||
defined(CONFIG_BOOT_ENCRYPT_EC256) || \
|
||||
(defined(CONFIG_BOOT_ENCRYPT_X25519) && !defined(CONFIG_BOOT_SIGNATURE_TYPE_ED25519))
|
||||
#include "config-asn1.h"
|
||||
#elif defined(CONFIG_BOOT_SIGNATURE_TYPE_ED25519)
|
||||
#include "config-ed25519.h"
|
||||
#else
|
||||
#error "Cannot configure mbedTLS; signature type is unknown."
|
||||
#endif
|
||||
|
||||
#endif
|
||||
@@ -0,0 +1,424 @@
|
||||
/*
|
||||
* Copyright (c) 2018 Open Source Foundries Limited
|
||||
* Copyright (c) 2019-2020 Arm Limited
|
||||
* Copyright (c) 2019-2020 Linaro Limited
|
||||
* Copyright (c) 2023 Nordic Semiconductor ASA
|
||||
*
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
|
||||
#ifndef __MCUBOOT_CONFIG_H__
|
||||
#define __MCUBOOT_CONFIG_H__
|
||||
|
||||
#include <zephyr/devicetree.h>
|
||||
|
||||
#ifdef CONFIG_BOOT_SIGNATURE_TYPE_RSA
|
||||
#define MCUBOOT_SIGN_RSA
|
||||
# if (CONFIG_BOOT_SIGNATURE_TYPE_RSA_LEN != 2048 && \
|
||||
CONFIG_BOOT_SIGNATURE_TYPE_RSA_LEN != 3072)
|
||||
# error "Invalid RSA key size (must be 2048 or 3072)"
|
||||
# else
|
||||
# define MCUBOOT_SIGN_RSA_LEN CONFIG_BOOT_SIGNATURE_TYPE_RSA_LEN
|
||||
# endif
|
||||
#elif defined(CONFIG_BOOT_SIGNATURE_TYPE_ECDSA_P256)
|
||||
#define MCUBOOT_SIGN_EC256
|
||||
#elif defined(CONFIG_BOOT_SIGNATURE_TYPE_ED25519)
|
||||
#define MCUBOOT_SIGN_ED25519
|
||||
#endif
|
||||
|
||||
#if defined(CONFIG_BOOT_USE_TINYCRYPT)
|
||||
# if defined(CONFIG_MBEDTLS) || defined(CONFIG_BOOT_USE_CC310)
|
||||
# error "One crypto library implementation allowed at a time."
|
||||
# endif
|
||||
#elif defined(CONFIG_MBEDTLS) && defined(CONFIG_BOOT_USE_CC310)
|
||||
# error "One crypto library implementation allowed at a time."
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_BOOT_USE_MBEDTLS
|
||||
#define MCUBOOT_USE_MBED_TLS
|
||||
#elif defined(CONFIG_BOOT_USE_TINYCRYPT)
|
||||
#define MCUBOOT_USE_TINYCRYPT
|
||||
#elif defined(CONFIG_BOOT_USE_CC310)
|
||||
#define MCUBOOT_USE_CC310
|
||||
#elif defined(CONFIG_MBEDTLS_PSA_CRYPTO_CLIENT)
|
||||
#define MCUBOOT_USE_PSA_CRYPTO
|
||||
#elif defined(CONFIG_BOOT_USE_NRF_EXTERNAL_CRYPTO)
|
||||
#define MCUBOOT_USE_NRF_EXTERNAL_CRYPTO
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_BOOT_IMG_HASH_ALG_SHA512
|
||||
#define MCUBOOT_SHA512
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_BOOT_IMG_HASH_ALG_SHA256
|
||||
#define MCUBOOT_SHA256
|
||||
#endif
|
||||
|
||||
/* Zephyr, regardless of C library used, provides snprintf */
|
||||
#define MCUBOOT_USE_SNPRINTF 1
|
||||
|
||||
#ifdef CONFIG_BOOT_HW_KEY
|
||||
#define MCUBOOT_HW_KEY
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_BOOT_VALIDATE_SLOT0
|
||||
#define MCUBOOT_VALIDATE_PRIMARY_SLOT
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_BOOT_VALIDATE_SLOT0_ONCE
|
||||
#define MCUBOOT_VALIDATE_PRIMARY_SLOT_ONCE
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_BOOT_UPGRADE_ONLY
|
||||
#define MCUBOOT_OVERWRITE_ONLY
|
||||
#define MCUBOOT_OVERWRITE_ONLY_FAST
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_SINGLE_APPLICATION_SLOT
|
||||
#define MCUBOOT_SINGLE_APPLICATION_SLOT 1
|
||||
#define MCUBOOT_IMAGE_NUMBER 1
|
||||
#else
|
||||
|
||||
#ifdef CONFIG_BOOT_SWAP_USING_MOVE
|
||||
#define MCUBOOT_SWAP_USING_MOVE 1
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_BOOT_DIRECT_XIP
|
||||
#define MCUBOOT_DIRECT_XIP
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_BOOT_DIRECT_XIP_REVERT
|
||||
#define MCUBOOT_DIRECT_XIP_REVERT
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_BOOT_RAM_LOAD
|
||||
#define MCUBOOT_RAM_LOAD 1
|
||||
#define IMAGE_EXECUTABLE_RAM_START CONFIG_BOOT_IMAGE_EXECUTABLE_RAM_START
|
||||
#define IMAGE_EXECUTABLE_RAM_SIZE CONFIG_BOOT_IMAGE_EXECUTABLE_RAM_SIZE
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_BOOT_FIRMWARE_LOADER
|
||||
#define MCUBOOT_FIRMWARE_LOADER
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_UPDATEABLE_IMAGE_NUMBER
|
||||
#define MCUBOOT_IMAGE_NUMBER CONFIG_UPDATEABLE_IMAGE_NUMBER
|
||||
#else
|
||||
#define MCUBOOT_IMAGE_NUMBER 1
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_BOOT_VERSION_CMP_USE_BUILD_NUMBER
|
||||
#define MCUBOOT_VERSION_CMP_USE_BUILD_NUMBER
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_BOOT_SWAP_SAVE_ENCTLV
|
||||
#define MCUBOOT_SWAP_SAVE_ENCTLV 1
|
||||
#endif
|
||||
|
||||
#endif /* CONFIG_SINGLE_APPLICATION_SLOT */
|
||||
|
||||
#ifdef CONFIG_LOG
|
||||
#define MCUBOOT_HAVE_LOGGING 1
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_BOOT_ENCRYPT_RSA
|
||||
#define MCUBOOT_ENC_IMAGES
|
||||
#define MCUBOOT_ENCRYPT_RSA
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_BOOT_ENCRYPT_EC256
|
||||
#define MCUBOOT_ENC_IMAGES
|
||||
#define MCUBOOT_ENCRYPT_EC256
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_BOOT_ENCRYPT_X25519
|
||||
#define MCUBOOT_ENC_IMAGES
|
||||
#define MCUBOOT_ENCRYPT_X25519
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_BOOT_DECOMPRESSION
|
||||
#define MCUBOOT_DECOMPRESS_IMAGES
|
||||
#endif
|
||||
|
||||
/* Invoke hashing functions directly on storage. This requires for device
|
||||
* to be able to map storage to address space or RAM.
|
||||
*/
|
||||
#ifdef CONFIG_BOOT_IMG_HASH_DIRECTLY_ON_STORAGE
|
||||
#define MCUBOOT_HASH_STORAGE_DIRECTLY
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_BOOT_SIGNATURE_TYPE_PURE
|
||||
#define MCUBOOT_SIGN_PURE
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_BOOT_BOOTSTRAP
|
||||
#define MCUBOOT_BOOTSTRAP 1
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_BOOT_USE_BENCH
|
||||
#define MCUBOOT_USE_BENCH 1
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_MCUBOOT_DOWNGRADE_PREVENTION
|
||||
#define MCUBOOT_DOWNGRADE_PREVENTION 1
|
||||
/* MCUBOOT_DOWNGRADE_PREVENTION_SECURITY_COUNTER is used later as bool value so it is
|
||||
* always defined, (unlike MCUBOOT_DOWNGRADE_PREVENTION which is only used in
|
||||
* preprocessor condition and my be not defined) */
|
||||
# ifdef CONFIG_MCUBOOT_DOWNGRADE_PREVENTION_SECURITY_COUNTER
|
||||
# define MCUBOOT_DOWNGRADE_PREVENTION_SECURITY_COUNTER 1
|
||||
# else
|
||||
# define MCUBOOT_DOWNGRADE_PREVENTION_SECURITY_COUNTER 0
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_MCUBOOT_HW_DOWNGRADE_PREVENTION
|
||||
#define MCUBOOT_HW_ROLLBACK_PROT
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_MEASURED_BOOT
|
||||
#define MCUBOOT_MEASURED_BOOT
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_BOOT_SHARE_DATA
|
||||
#define MCUBOOT_DATA_SHARING
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_BOOT_SHARE_BACKEND_RETENTION
|
||||
#define MCUBOOT_CUSTOM_DATA_SHARING_FUNCTION
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_BOOT_SHARE_DATA_BOOTINFO
|
||||
#define MCUBOOT_DATA_SHARING_BOOTINFO
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_MEASURED_BOOT_MAX_CBOR_SIZE
|
||||
#define MAX_BOOT_RECORD_SZ CONFIG_MEASURED_BOOT_MAX_CBOR_SIZE
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_BOOT_FIH_PROFILE_OFF
|
||||
#define MCUBOOT_FIH_PROFILE_OFF
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_BOOT_FIH_PROFILE_LOW
|
||||
#define MCUBOOT_FIH_PROFILE_LOW
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_BOOT_FIH_PROFILE_MEDIUM
|
||||
#define MCUBOOT_FIH_PROFILE_MEDIUM
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_BOOT_FIH_PROFILE_HIGH
|
||||
#define MCUBOOT_FIH_PROFILE_HIGH
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_ENABLE_MGMT_PERUSER
|
||||
#define MCUBOOT_PERUSER_MGMT_GROUP_ENABLED 1
|
||||
#else
|
||||
#define MCUBOOT_PERUSER_MGMT_GROUP_ENABLED 0
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_BOOT_MGMT_CUSTOM_IMG_LIST
|
||||
#define MCUBOOT_MGMT_CUSTOM_IMG_LIST
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_BOOT_MGMT_ECHO
|
||||
#define MCUBOOT_BOOT_MGMT_ECHO
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_BOOT_IMAGE_ACCESS_HOOKS
|
||||
#define MCUBOOT_IMAGE_ACCESS_HOOKS
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_MCUBOOT_VERIFY_IMG_ADDRESS
|
||||
#define MCUBOOT_VERIFY_IMG_ADDRESS
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_MCUBOOT_SERIAL
|
||||
#define MCUBOOT_SERIAL
|
||||
#endif
|
||||
|
||||
/*
|
||||
* The configuration option enables direct image upload with the
|
||||
* serial recovery.
|
||||
*/
|
||||
#ifdef CONFIG_MCUBOOT_SERIAL_DIRECT_IMAGE_UPLOAD
|
||||
#define MCUBOOT_SERIAL_DIRECT_IMAGE_UPLOAD
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_BOOT_SERIAL_WAIT_FOR_DFU
|
||||
#define MCUBOOT_SERIAL_WAIT_FOR_DFU
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_BOOT_SERIAL_IMG_GRP_HASH
|
||||
#define MCUBOOT_SERIAL_IMG_GRP_HASH
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_BOOT_SERIAL_IMG_GRP_IMAGE_STATE
|
||||
#define MCUBOOT_SERIAL_IMG_GRP_IMAGE_STATE
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_BOOT_SERIAL_IMG_GRP_SLOT_INFO
|
||||
#define MCUBOOT_SERIAL_IMG_GRP_SLOT_INFO
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_MCUBOOT_SERIAL
|
||||
#define MCUBOOT_SERIAL_RECOVERY
|
||||
#endif
|
||||
|
||||
#if (defined(CONFIG_BOOT_USB_DFU_WAIT) || \
|
||||
defined(CONFIG_BOOT_USB_DFU_GPIO))
|
||||
#define MCUBOOT_USB_DFU
|
||||
#endif
|
||||
|
||||
/*
|
||||
* The option enables code, currently in boot_serial, that attempts
|
||||
* to erase flash progressively, as update fragments are received,
|
||||
* instead of erasing whole image size of flash area after receiving
|
||||
* first frame.
|
||||
* Enabling this options prevents stalling the beginning of transfer
|
||||
* for the time needed to erase large chunk of flash.
|
||||
*/
|
||||
#ifdef CONFIG_BOOT_ERASE_PROGRESSIVELY
|
||||
#define MCUBOOT_ERASE_PROGRESSIVELY
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Enabling this option uses newer flash map APIs. This saves RAM and
|
||||
* avoids deprecated API usage.
|
||||
*
|
||||
* (This can be deleted when flash_area_to_sectors() is removed instead
|
||||
* of simply deprecated.)
|
||||
*/
|
||||
#define MCUBOOT_USE_FLASH_AREA_GET_SECTORS
|
||||
|
||||
#if (defined(CONFIG_BOOT_USB_DFU_WAIT) || \
|
||||
defined(CONFIG_BOOT_USB_DFU_GPIO))
|
||||
# ifndef CONFIG_MULTITHREADING
|
||||
# error "USB DFU Requires MULTITHREADING"
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#if defined(CONFIG_BOOT_MAX_IMG_SECTORS_AUTO) && defined(MIN_SECTOR_COUNT)
|
||||
|
||||
#define MCUBOOT_MAX_IMG_SECTORS MIN_SECTOR_COUNT
|
||||
|
||||
#elif defined(CONFIG_BOOT_MAX_IMG_SECTORS)
|
||||
|
||||
#define MCUBOOT_MAX_IMG_SECTORS CONFIG_BOOT_MAX_IMG_SECTORS
|
||||
|
||||
#else
|
||||
#define MCUBOOT_MAX_IMG_SECTORS 128
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_BOOT_SERIAL_MAX_RECEIVE_SIZE
|
||||
#define MCUBOOT_SERIAL_MAX_RECEIVE_SIZE CONFIG_BOOT_SERIAL_MAX_RECEIVE_SIZE
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_BOOT_SERIAL_UNALIGNED_BUFFER_SIZE
|
||||
#define MCUBOOT_SERIAL_UNALIGNED_BUFFER_SIZE CONFIG_BOOT_SERIAL_UNALIGNED_BUFFER_SIZE
|
||||
#endif
|
||||
|
||||
#if defined(MCUBOOT_DATA_SHARING) && defined(ZEPHYR_VER_INCLUDE)
|
||||
#include <zephyr/app_version.h>
|
||||
|
||||
#define MCUBOOT_VERSION_AVAILABLE
|
||||
#define MCUBOOT_VERSION_MAJOR APP_VERSION_MAJOR
|
||||
#define MCUBOOT_VERSION_MINOR APP_VERSION_MINOR
|
||||
#define MCUBOOT_VERSION_PATCHLEVEL APP_PATCHLEVEL
|
||||
#endif
|
||||
|
||||
/* Support 32-byte aligned flash sizes */
|
||||
#if DT_HAS_CHOSEN(zephyr_flash)
|
||||
#if DT_PROP_OR(DT_CHOSEN(zephyr_flash), write_block_size, 0) > 8
|
||||
#define MCUBOOT_BOOT_MAX_ALIGN \
|
||||
DT_PROP(DT_CHOSEN(zephyr_flash), write_block_size)
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_MCUBOOT_BOOTUTIL_LIB_FOR_DIRECT_XIP
|
||||
#define MCUBOOT_BOOTUTIL_LIB_FOR_DIRECT_XIP 1
|
||||
#endif
|
||||
|
||||
#if CONFIG_BOOT_WATCHDOG_FEED
|
||||
#if CONFIG_NRFX_WDT
|
||||
#include <nrfx_wdt.h>
|
||||
|
||||
#define FEED_WDT_INST(id) \
|
||||
do { \
|
||||
nrfx_wdt_t wdt_inst_##id = NRFX_WDT_INSTANCE(id); \
|
||||
for (uint8_t i = 0; i < NRF_WDT_CHANNEL_NUMBER; i++) \
|
||||
{ \
|
||||
nrf_wdt_reload_request_set(wdt_inst_##id.p_reg, \
|
||||
(nrf_wdt_rr_register_t)(NRF_WDT_RR0 + i)); \
|
||||
} \
|
||||
} while (0)
|
||||
#if defined(CONFIG_NRFX_WDT0) && defined(CONFIG_NRFX_WDT1)
|
||||
#define MCUBOOT_WATCHDOG_FEED() \
|
||||
do { \
|
||||
FEED_WDT_INST(0); \
|
||||
FEED_WDT_INST(1); \
|
||||
} while (0)
|
||||
#elif defined(CONFIG_NRFX_WDT0)
|
||||
#define MCUBOOT_WATCHDOG_FEED() \
|
||||
FEED_WDT_INST(0);
|
||||
#elif defined(CONFIG_NRFX_WDT30) && defined(CONFIG_NRFX_WDT31)
|
||||
#define MCUBOOT_WATCHDOG_FEED() \
|
||||
do { \
|
||||
FEED_WDT_INST(30); \
|
||||
FEED_WDT_INST(31); \
|
||||
} while (0)
|
||||
#elif defined(CONFIG_NRFX_WDT30)
|
||||
#define MCUBOOT_WATCHDOG_FEED() \
|
||||
FEED_WDT_INST(30);
|
||||
#elif defined(CONFIG_NRFX_WDT31)
|
||||
#define MCUBOOT_WATCHDOG_FEED() \
|
||||
FEED_WDT_INST(31);
|
||||
#else
|
||||
#error "No NRFX WDT instances enabled"
|
||||
#endif
|
||||
|
||||
#elif DT_NODE_HAS_STATUS(DT_ALIAS(watchdog0), okay) /* CONFIG_NRFX_WDT */
|
||||
#include <zephyr/device.h>
|
||||
#include <zephyr/drivers/watchdog.h>
|
||||
|
||||
#define MCUBOOT_WATCHDOG_SETUP() \
|
||||
do { \
|
||||
const struct device* wdt = \
|
||||
DEVICE_DT_GET(DT_ALIAS(watchdog0)); \
|
||||
if (device_is_ready(wdt)) { \
|
||||
wdt_setup(wdt, 0); \
|
||||
} \
|
||||
} while (0)
|
||||
|
||||
#define MCUBOOT_WATCHDOG_FEED() \
|
||||
do { \
|
||||
const struct device* wdt = \
|
||||
DEVICE_DT_GET(DT_ALIAS(watchdog0)); \
|
||||
if (device_is_ready(wdt)) { \
|
||||
wdt_feed(wdt, 0); \
|
||||
} \
|
||||
} while (0)
|
||||
#else /* DT_NODE_HAS_STATUS(DT_ALIAS(watchdog0), okay) */
|
||||
/* No vendor implementation, no-op for historical reasons */
|
||||
#define MCUBOOT_WATCHDOG_FEED() \
|
||||
do { \
|
||||
} while (0)
|
||||
#endif
|
||||
#else /* CONFIG_BOOT_WATCHDOG_FEED */
|
||||
/* Not enabled, no feed activity */
|
||||
#define MCUBOOT_WATCHDOG_FEED() \
|
||||
do { \
|
||||
} while (0)
|
||||
|
||||
#endif /* CONFIG_BOOT_WATCHDOG_FEED */
|
||||
|
||||
#ifndef MCUBOOT_WATCHDOG_SETUP
|
||||
#define MCUBOOT_WATCHDOG_SETUP()
|
||||
#endif
|
||||
|
||||
#define MCUBOOT_CPU_IDLE() \
|
||||
if (!IS_ENABLED(CONFIG_MULTITHREADING)) { \
|
||||
k_cpu_idle(); \
|
||||
}
|
||||
|
||||
#endif /* __MCUBOOT_CONFIG_H__ */
|
||||
@@ -0,0 +1,30 @@
|
||||
/*
|
||||
* Copyright (c) 2018 Runtime Inc
|
||||
*
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
|
||||
#ifndef __MCUBOOT_LOGGING_H__
|
||||
#define __MCUBOOT_LOGGING_H__
|
||||
|
||||
/*
|
||||
* When building for targets running Zephyr, delegate to its native
|
||||
* logging subsystem.
|
||||
*/
|
||||
#ifdef CONFIG_MCUBOOT
|
||||
#define MCUBOOT_LOG_MODULE_DECLARE(domain) LOG_MODULE_DECLARE(domain, CONFIG_MCUBOOT_LOG_LEVEL)
|
||||
#define MCUBOOT_LOG_MODULE_REGISTER(domain) LOG_MODULE_REGISTER(domain, CONFIG_MCUBOOT_LOG_LEVEL)
|
||||
#else
|
||||
#define MCUBOOT_LOG_MODULE_DECLARE(domain) LOG_MODULE_DECLARE(domain, CONFIG_MCUBOOT_UTIL_LOG_LEVEL)
|
||||
#define MCUBOOT_LOG_MODULE_REGISTER(domain) LOG_MODULE_REGISTER(domain, CONFIG_MCUBOOT_UTIL_LOG_LEVEL)
|
||||
#endif
|
||||
|
||||
#define MCUBOOT_LOG_ERR(...) LOG_ERR(__VA_ARGS__)
|
||||
#define MCUBOOT_LOG_WRN(...) LOG_WRN(__VA_ARGS__)
|
||||
#define MCUBOOT_LOG_INF(...) LOG_INF(__VA_ARGS__)
|
||||
#define MCUBOOT_LOG_DBG(...) LOG_DBG(__VA_ARGS__)
|
||||
#define MCUBOOT_LOG_SIM(...) IGNORE(__VA_ARGS__)
|
||||
|
||||
#include <zephyr/logging/log.h>
|
||||
|
||||
#endif /* __MCUBOOT_LOGGING_H__ */
|
||||
24
bootloader/mcuboot/boot/zephyr/include/nrf_cleanup.h
Normal file
24
bootloader/mcuboot/boot/zephyr/include/nrf_cleanup.h
Normal file
@@ -0,0 +1,24 @@
|
||||
/*
|
||||
* Copyright (c) 2020 Nordic Semiconductor ASA
|
||||
*
|
||||
* SPDX-License-Identifier: LicenseRef-Nordic-5-Clause
|
||||
*/
|
||||
|
||||
#ifndef H_NRF_CLEANUP_
|
||||
#define H_NRF_CLEANUP_
|
||||
|
||||
/**
|
||||
* Perform cleanup on some peripheral resources used by MCUBoot prior chainload
|
||||
* the application.
|
||||
*
|
||||
* This function disables all RTC instances and UARTE instances.
|
||||
* It Disables their interrupts signals as well.
|
||||
*/
|
||||
void nrf_cleanup_peripheral(void);
|
||||
|
||||
/**
|
||||
* Perform cleanup of non-secure RAM that may have been used by MCUBoot.
|
||||
*/
|
||||
void nrf_cleanup_ns_ram(void);
|
||||
|
||||
#endif
|
||||
0
bootloader/mcuboot/boot/zephyr/include/os/os.h
Normal file
0
bootloader/mcuboot/boot/zephyr/include/os/os.h
Normal file
38
bootloader/mcuboot/boot/zephyr/include/os/os_heap.h
Normal file
38
bootloader/mcuboot/boot/zephyr/include/os/os_heap.h
Normal file
@@ -0,0 +1,38 @@
|
||||
/*
|
||||
* 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 H_OS_HEAP_
|
||||
#define H_OS_HEAP_
|
||||
|
||||
#include <stddef.h>
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
void *os_malloc(size_t size);
|
||||
void os_free(void *mem);
|
||||
void *os_realloc(void *ptr, size_t size);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
||||
42
bootloader/mcuboot/boot/zephyr/include/os/os_malloc.h
Normal file
42
bootloader/mcuboot/boot/zephyr/include/os/os_malloc.h
Normal file
@@ -0,0 +1,42 @@
|
||||
/*
|
||||
* 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 H_OS_MALLOC_
|
||||
#define H_OS_MALLOC_
|
||||
|
||||
#include "os/os_heap.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
#undef malloc
|
||||
#define malloc os_malloc
|
||||
|
||||
#undef free
|
||||
#define free os_free
|
||||
|
||||
#undef realloc
|
||||
#define realloc os_realloc
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif
|
||||
40
bootloader/mcuboot/boot/zephyr/include/platform-bench.h
Normal file
40
bootloader/mcuboot/boot/zephyr/include/platform-bench.h
Normal file
@@ -0,0 +1,40 @@
|
||||
/*
|
||||
* Copyright (c) 2019 Linaro Limited
|
||||
*
|
||||
* 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.
|
||||
*/
|
||||
|
||||
#ifndef H_ZEPHYR_BENCH_H__
|
||||
#define H_ZEPHYR_BENCH_H__
|
||||
|
||||
#include <inttypes.h>
|
||||
#include <stdint.h>
|
||||
#include "zephyr.h"
|
||||
#include "bootutil/bootutil_log.h"
|
||||
|
||||
/* TODO: Unclear if this can be here (redundantly). */
|
||||
BOOT_LOG_MODULE_DECLARE(mcuboot);
|
||||
|
||||
typedef uint32_t bench_state_t;
|
||||
|
||||
#define plat_bench_start(_s) do { \
|
||||
BOOT_LOG_ERR("start benchmark"); \
|
||||
*(_s) = k_cycle_get_32(); \
|
||||
} while (0)
|
||||
|
||||
#define plat_bench_stop(_s) do { \
|
||||
uint32_t _stop_time = k_cycle_get_32(); \
|
||||
BOOT_LOG_ERR("bench: %" PRId32 " cycles", _stop_time - *(_s)); \
|
||||
} while (0)
|
||||
|
||||
#endif /* not H_ZEPHYR_BENCH_H__ */
|
||||
@@ -0,0 +1,32 @@
|
||||
/*
|
||||
* Copyright (c) 2017 Nordic Semiconductor ASA
|
||||
*
|
||||
* 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.
|
||||
*/
|
||||
|
||||
#ifndef H_SERIAL_ADAPTER
|
||||
#define H_SERIAL_ADAPTER
|
||||
|
||||
int
|
||||
console_out(int c);
|
||||
|
||||
void
|
||||
console_write(const char *str, int cnt);
|
||||
|
||||
int
|
||||
boot_console_init(void);
|
||||
|
||||
int
|
||||
console_read(char *str, int str_cnt, int *newline);
|
||||
|
||||
#endif // SERIAL_ADAPTER
|
||||
@@ -0,0 +1,87 @@
|
||||
/*
|
||||
* Copyright (c) 2023 Nordic Semiconductor ASA
|
||||
*
|
||||
* SPDX-License-Identifier: LicenseRef-Nordic-5-Clause
|
||||
*/
|
||||
|
||||
#ifndef __PM_SYSFLASH_H__
|
||||
#define __PM_SYSFLASH_H__
|
||||
/* Blocking the __SYSFLASH_H__ */
|
||||
#define __SYSFLASH_H__
|
||||
|
||||
#include <pm_config.h>
|
||||
#include <mcuboot_config/mcuboot_config.h>
|
||||
#include <flash_map_pm.h>
|
||||
|
||||
#ifndef CONFIG_SINGLE_APPLICATION_SLOT
|
||||
|
||||
/* Each pair of slots is separated by , and there is no terminating character */
|
||||
#define FLASH_AREA_IMAGE_0_SLOTS PM_MCUBOOT_PRIMARY_ID, PM_MCUBOOT_SECONDARY_ID,
|
||||
#define FLASH_AREA_IMAGE_1_SLOTS PM_MCUBOOT_PRIMARY_1_ID, PM_MCUBOOT_SECONDARY_1_ID,
|
||||
#define FLASH_AREA_IMAGE_2_SLOTS PM_MCUBOOT_PRIMARY_2_ID, PM_MCUBOOT_SECONDARY_2_ID,
|
||||
#define FLASH_AREA_IMAGE_3_SLOTS PM_MCUBOOT_PRIMARY_3_ID, PM_MCUBOOT_SECONDARY_3_ID,
|
||||
|
||||
#if CONFIG_MCUBOOT_MCUBOOT_IMAGE_NUMBER != -1
|
||||
#ifdef CONFIG_NCS_IS_VARIANT_IMAGE
|
||||
#define MCUBOOT_S0_S1_SLOTS PM_S0_ID, PM_MCUBOOT_SECONDARY_ID,
|
||||
#else
|
||||
#define MCUBOOT_S0_S1_SLOTS PM_S1_ID, PM_MCUBOOT_SECONDARY_ID,
|
||||
#endif
|
||||
#else
|
||||
#define MCUBOOT_S0_S1_SLOTS
|
||||
#endif
|
||||
|
||||
#if (MCUBOOT_IMAGE_NUMBER == 1) || (MCUBOOT_IMAGE_NUMBER == 2 && CONFIG_MCUBOOT_MCUBOOT_IMAGE_NUMBER != -1)
|
||||
#define ALL_AVAILABLE_SLOTS FLASH_AREA_IMAGE_0_SLOTS
|
||||
#elif (MCUBOOT_IMAGE_NUMBER == 2) || (MCUBOOT_IMAGE_NUMBER == 3 && CONFIG_MCUBOOT_MCUBOOT_IMAGE_NUMBER != -1)
|
||||
#define ALL_AVAILABLE_SLOTS FLASH_AREA_IMAGE_0_SLOTS \
|
||||
FLASH_AREA_IMAGE_1_SLOTS
|
||||
#elif (MCUBOOT_IMAGE_NUMBER == 3) || (MCUBOOT_IMAGE_NUMBER == 4 && CONFIG_MCUBOOT_MCUBOOT_IMAGE_NUMBER != -1)
|
||||
#define ALL_AVAILABLE_SLOTS FLASH_AREA_IMAGE_0_SLOTS \
|
||||
FLASH_AREA_IMAGE_1_SLOTS \
|
||||
FLASH_AREA_IMAGE_2_SLOTS
|
||||
#elif (MCUBOOT_IMAGE_NUMBER == 4)
|
||||
#define ALL_AVAILABLE_SLOTS FLASH_AREA_IMAGE_0_SLOTS \
|
||||
FLASH_AREA_IMAGE_1_SLOTS \
|
||||
FLASH_AREA_IMAGE_2_SLOTS \
|
||||
FLASH_AREA_IMAGE_3_SLOTS
|
||||
#else
|
||||
#error Unsupported number of images
|
||||
#endif
|
||||
|
||||
static inline uint32_t __flash_area_ids_for_slot(int img, int slot)
|
||||
{
|
||||
static const int all_slots[] = {
|
||||
ALL_AVAILABLE_SLOTS
|
||||
MCUBOOT_S0_S1_SLOTS
|
||||
};
|
||||
return all_slots[img * 2 + slot];
|
||||
};
|
||||
|
||||
#undef FLASH_AREA_IMAGE_0_SLOTS
|
||||
#undef FLASH_AREA_IMAGE_1_SLOTS
|
||||
#undef FLASH_AREA_IMAGE_2_SLOTS
|
||||
#undef FLASH_AREA_IMAGE_3_SLOTS
|
||||
#undef MCUBOOT_S0_S1_SLOTS
|
||||
#undef ALL_AVAILABLE_SLOTS
|
||||
|
||||
#define FLASH_AREA_IMAGE_PRIMARY(x) __flash_area_ids_for_slot(x, 0)
|
||||
#define FLASH_AREA_IMAGE_SECONDARY(x) __flash_area_ids_for_slot(x, 1)
|
||||
|
||||
#if !defined(CONFIG_BOOT_SWAP_USING_MOVE)
|
||||
#define FLASH_AREA_IMAGE_SCRATCH PM_MCUBOOT_SCRATCH_ID
|
||||
#endif
|
||||
|
||||
#else /* CONFIG_SINGLE_APPLICATION_SLOT */
|
||||
|
||||
#define FLASH_AREA_IMAGE_PRIMARY(x) PM_MCUBOOT_PRIMARY_ID
|
||||
#define FLASH_AREA_IMAGE_SECONDARY(x) PM_MCUBOOT_PRIMARY_ID
|
||||
/* NOTE: Scratch parition is not used by single image DFU but some of
|
||||
* functions in common files reference it, so the definitions has been
|
||||
* provided to allow compilation of common units.
|
||||
*/
|
||||
#define FLASH_AREA_IMAGE_SCRATCH 0
|
||||
|
||||
#endif /* CONFIG_SINGLE_APPLICATION_SLOT */
|
||||
|
||||
#endif /* __PM_SYSFLASH_H__ */
|
||||
@@ -0,0 +1,100 @@
|
||||
/*
|
||||
* Copyright (c) 2023 Nordic Semiconductor ASA
|
||||
*
|
||||
* SPDX-License-Identifier: LicenseRef-Nordic-5-Clause
|
||||
*/
|
||||
|
||||
#ifndef __PM_SYSFLASH_H__
|
||||
#define __PM_SYSFLASH_H__
|
||||
/* Blocking the __SYSFLASH_H__ */
|
||||
#define __SYSFLASH_H__
|
||||
|
||||
#include <pm_config.h>
|
||||
#include <mcuboot_config/mcuboot_config.h>
|
||||
#include <flash_map_pm.h>
|
||||
|
||||
#ifndef CONFIG_SINGLE_APPLICATION_SLOT
|
||||
|
||||
#if (MCUBOOT_IMAGE_NUMBER == 2) && defined(PM_B0_ADDRESS)
|
||||
/* If B0 is present then two bootloaders are present, and we must use
|
||||
* a single secondary slot for both primary slots.
|
||||
*/
|
||||
extern uint32_t _image_1_primary_slot_id[];
|
||||
#endif /* (MCUBOOT_IMAGE_NUMBER == 2 && defined(PM_B0_ADDRESS) */
|
||||
|
||||
#if (MCUBOOT_IMAGE_NUMBER == 2) && defined(PM_B0_ADDRESS) && \
|
||||
!defined(CONFIG_NRF53_MULTI_IMAGE_UPDATE)
|
||||
|
||||
#define FLASH_AREA_IMAGE_PRIMARY(x) \
|
||||
((x == 0) ? \
|
||||
PM_MCUBOOT_PRIMARY_ID : \
|
||||
(x == 1) ? \
|
||||
(uint32_t)_image_1_primary_slot_id : \
|
||||
255 )
|
||||
|
||||
#define FLASH_AREA_IMAGE_SECONDARY(x) \
|
||||
((x == 0) ? \
|
||||
PM_MCUBOOT_SECONDARY_ID: \
|
||||
(x == 1) ? \
|
||||
PM_MCUBOOT_SECONDARY_ID: \
|
||||
255 )
|
||||
|
||||
#else /* MCUBOOT_IMAGE_NUMBER == 2) && defined(PM_B0_ADDRESS) && \
|
||||
* !defined(CONFIG_NRF53_MULTI_IMAGE_UPDATE)
|
||||
*/
|
||||
|
||||
/* Each pair of slots is separated by , and there is no terminating character */
|
||||
#define FLASH_AREA_IMAGE_0_SLOTS PM_MCUBOOT_PRIMARY_ID, PM_MCUBOOT_SECONDARY_ID
|
||||
#define FLASH_AREA_IMAGE_1_SLOTS PM_MCUBOOT_PRIMARY_1_ID, PM_MCUBOOT_SECONDARY_1_ID
|
||||
#define FLASH_AREA_IMAGE_2_SLOTS PM_MCUBOOT_PRIMARY_2_ID, PM_MCUBOOT_SECONDARY_2_ID
|
||||
|
||||
#if (MCUBOOT_IMAGE_NUMBER == 1)
|
||||
#define ALL_AVAILABLE_SLOTS FLASH_AREA_IMAGE_0_SLOTS
|
||||
#elif (MCUBOOT_IMAGE_NUMBER == 2)
|
||||
#define ALL_AVAILABLE_SLOTS FLASH_AREA_IMAGE_0_SLOTS, \
|
||||
FLASH_AREA_IMAGE_1_SLOTS
|
||||
#elif (MCUBOOT_IMAGE_NUMBER == 3)
|
||||
#define ALL_AVAILABLE_SLOTS FLASH_AREA_IMAGE_0_SLOTS, \
|
||||
FLASH_AREA_IMAGE_1_SLOTS, \
|
||||
FLASH_AREA_IMAGE_2_SLOTS
|
||||
#else
|
||||
#error Unsupported number of images
|
||||
#endif
|
||||
|
||||
static inline uint32_t __flash_area_ids_for_slot(int img, int slot)
|
||||
{
|
||||
static const int all_slots[] = {
|
||||
ALL_AVAILABLE_SLOTS
|
||||
};
|
||||
return all_slots[img * 2 + slot];
|
||||
};
|
||||
|
||||
#undef FLASH_AREA_IMAGE_0_SLOTS
|
||||
#undef FLASH_AREA_IMAGE_1_SLOTS
|
||||
#undef FLASH_AREA_IMAGE_2_SLOTS
|
||||
#undef ALL_AVAILABLE_SLOTS
|
||||
|
||||
#define FLASH_AREA_IMAGE_PRIMARY(x) __flash_area_ids_for_slot(x, 0)
|
||||
#define FLASH_AREA_IMAGE_SECONDARY(x) __flash_area_ids_for_slot(x, 1)
|
||||
|
||||
#if !defined(CONFIG_BOOT_SWAP_USING_MOVE)
|
||||
#define FLASH_AREA_IMAGE_SCRATCH PM_MCUBOOT_SCRATCH_ID
|
||||
#endif
|
||||
|
||||
#endif /* MCUBOOT_IMAGE_NUMBER == 2) && defined(PM_B0_ADDRESS) && \
|
||||
* !defined(CONFIG_NRF53_MULTI_IMAGE_UPDATE)
|
||||
*/
|
||||
|
||||
#else /* CONFIG_SINGLE_APPLICATION_SLOT */
|
||||
|
||||
#define FLASH_AREA_IMAGE_PRIMARY(x) PM_MCUBOOT_PRIMARY_ID
|
||||
#define FLASH_AREA_IMAGE_SECONDARY(x) PM_MCUBOOT_PRIMARY_ID
|
||||
/* NOTE: Scratch parition is not used by single image DFU but some of
|
||||
* functions in common files reference it, so the definitions has been
|
||||
* provided to allow compilation of common units.
|
||||
*/
|
||||
#define FLASH_AREA_IMAGE_SCRATCH 0
|
||||
|
||||
#endif /* CONFIG_SINGLE_APPLICATION_SLOT */
|
||||
|
||||
#endif /* __PM_SYSFLASH_H__ */
|
||||
80
bootloader/mcuboot/boot/zephyr/include/sysflash/sysflash.h
Normal file
80
bootloader/mcuboot/boot/zephyr/include/sysflash/sysflash.h
Normal file
@@ -0,0 +1,80 @@
|
||||
/*
|
||||
* Copyright (c) 2023-2024 Nordic Semiconductor ASA
|
||||
*
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
|
||||
#if USE_PARTITION_MANAGER
|
||||
/* Blocking the rest of the file */
|
||||
#define __SYSFLASH_H__
|
||||
#if CONFIG_MCUBOOT_APPLICATION_IMAGE_NUMBER != -1
|
||||
/* Sysbuild */
|
||||
#include <sysflash/pm_sysflash.h>
|
||||
#else
|
||||
/* Legacy child/parent */
|
||||
#include <sysflash/pm_sysflash_legacy_child_parent.h>
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#ifndef __SYSFLASH_H__
|
||||
#define __SYSFLASH_H__
|
||||
|
||||
#include <mcuboot_config/mcuboot_config.h>
|
||||
#include <zephyr/devicetree.h>
|
||||
#include <zephyr/storage/flash_map.h>
|
||||
#include <zephyr/sys/util_macro.h>
|
||||
|
||||
#ifndef SOC_FLASH_0_ID
|
||||
#define SOC_FLASH_0_ID 0
|
||||
#endif
|
||||
|
||||
#ifndef SPI_FLASH_0_ID
|
||||
#define SPI_FLASH_0_ID 1
|
||||
#endif
|
||||
|
||||
#if !defined(CONFIG_SINGLE_APPLICATION_SLOT) && !defined(CONFIG_MCUBOOT_BOOTLOADER_MODE_SINGLE_APP)
|
||||
|
||||
/* Each pair of slots is separated by , and there is no terminating character */
|
||||
#define FLASH_AREA_IMAGE_0_SLOTS slot0_partition, slot1_partition
|
||||
#define FLASH_AREA_IMAGE_1_SLOTS slot2_partition, slot3_partition
|
||||
#define FLASH_AREA_IMAGE_2_SLOTS slot4_partition, slot5_partition
|
||||
|
||||
#if (MCUBOOT_IMAGE_NUMBER == 1)
|
||||
#define ALL_AVAILABLE_SLOTS FLASH_AREA_IMAGE_0_SLOTS
|
||||
#elif (MCUBOOT_IMAGE_NUMBER == 2)
|
||||
#define ALL_AVAILABLE_SLOTS FLASH_AREA_IMAGE_0_SLOTS, \
|
||||
FLASH_AREA_IMAGE_1_SLOTS
|
||||
#elif (MCUBOOT_IMAGE_NUMBER == 3)
|
||||
#define ALL_AVAILABLE_SLOTS FLASH_AREA_IMAGE_0_SLOTS, \
|
||||
FLASH_AREA_IMAGE_1_SLOTS, \
|
||||
FLASH_AREA_IMAGE_2_SLOTS
|
||||
#endif
|
||||
|
||||
static inline uint32_t __flash_area_ids_for_slot(int img, int slot)
|
||||
{
|
||||
static const int all_slots[] = {
|
||||
FOR_EACH_NONEMPTY_TERM(FIXED_PARTITION_ID, (,), ALL_AVAILABLE_SLOTS)
|
||||
};
|
||||
return all_slots[img * 2 + slot];
|
||||
};
|
||||
|
||||
#undef FLASH_AREA_IMAGE_0_SLOTS
|
||||
#undef FLASH_AREA_IMAGE_1_SLOTS
|
||||
#undef FLASH_AREA_IMAGE_2_SLOTS
|
||||
#undef ALL_AVAILABLE_SLOTS
|
||||
|
||||
#define FLASH_AREA_IMAGE_PRIMARY(x) __flash_area_ids_for_slot(x, 0)
|
||||
#define FLASH_AREA_IMAGE_SECONDARY(x) __flash_area_ids_for_slot(x, 1)
|
||||
|
||||
#if !defined(CONFIG_BOOT_SWAP_USING_MOVE)
|
||||
#define FLASH_AREA_IMAGE_SCRATCH FIXED_PARTITION_ID(scratch_partition)
|
||||
#endif
|
||||
|
||||
#else /* !CONFIG_SINGLE_APPLICATION_SLOT && !CONFIG_MCUBOOT_BOOTLOADER_MODE_SINGLE_APP */
|
||||
|
||||
#define FLASH_AREA_IMAGE_PRIMARY(x) FIXED_PARTITION_ID(slot0_partition)
|
||||
#define FLASH_AREA_IMAGE_SECONDARY(x) FIXED_PARTITION_ID(slot0_partition)
|
||||
|
||||
#endif /* CONFIG_SINGLE_APPLICATION_SLOT */
|
||||
|
||||
#endif /* __SYSFLASH_H__ */
|
||||
52
bootloader/mcuboot/boot/zephyr/include/target.h
Normal file
52
bootloader/mcuboot/boot/zephyr/include/target.h
Normal file
@@ -0,0 +1,52 @@
|
||||
/*
|
||||
* Copyright (C) 2017, Linaro Ltd
|
||||
* Copyright (c) 2019, Arm Limited
|
||||
*
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
|
||||
#ifndef H_TARGETS_TARGET_
|
||||
#define H_TARGETS_TARGET_
|
||||
|
||||
#ifndef USE_PARTITION_MANAGER
|
||||
|
||||
#if defined(MCUBOOT_TARGET_CONFIG)
|
||||
/*
|
||||
* Target-specific definitions are permitted in legacy cases that
|
||||
* don't provide the information via DTS, etc.
|
||||
*/
|
||||
#include MCUBOOT_TARGET_CONFIG
|
||||
#else
|
||||
/*
|
||||
* Otherwise, the Zephyr SoC header and the DTS provide most
|
||||
* everything we need.
|
||||
*/
|
||||
#include <zephyr/devicetree.h>
|
||||
#include <soc.h>
|
||||
#include <zephyr/storage/flash_map.h>
|
||||
|
||||
#define FLASH_ALIGN FLASH_WRITE_BLOCK_SIZE
|
||||
|
||||
#endif /* !defined(MCUBOOT_TARGET_CONFIG) */
|
||||
|
||||
/*
|
||||
* Sanity check the target support.
|
||||
*/
|
||||
#if (!defined(CONFIG_XTENSA) && !DT_HAS_CHOSEN(zephyr_flash_controller)) || \
|
||||
(defined(CONFIG_XTENSA) && !DT_NODE_EXISTS(DT_INST(0, jedec_spi_nor)) && \
|
||||
!defined(CONFIG_SOC_FAMILY_ESPRESSIF_ESP32)) || \
|
||||
!defined(FLASH_ALIGN) || \
|
||||
!(FIXED_PARTITION_EXISTS(slot0_partition)) || \
|
||||
!(FIXED_PARTITION_EXISTS(slot1_partition) || CONFIG_SINGLE_APPLICATION_SLOT) || \
|
||||
(defined(CONFIG_BOOT_SWAP_USING_SCRATCH) && !FIXED_PARTITION_EXISTS(scratch_partition))
|
||||
#error "Target support is incomplete; cannot build mcuboot."
|
||||
#endif
|
||||
|
||||
#if (MCUBOOT_IMAGE_NUMBER == 2) && (!(FIXED_PARTITION_EXISTS(slot2_partition)) || \
|
||||
!(FIXED_PARTITION_EXISTS(slot3_partition)))
|
||||
#error "Target support is incomplete; cannot build mcuboot."
|
||||
#endif
|
||||
|
||||
#endif /* ifndef USE_PARTITION_MANAGER */
|
||||
|
||||
#endif /* H_TARGETS_TARGET_ */
|
||||
Reference in New Issue
Block a user