blob: 3038a93bbc3bb3decc1d7f5b9b228c18520879d9 [file] [log] [blame]
Marti Bolivarf91bca52018-04-12 12:40:46 -04001/*
2 * Copyright (c) 2018 Open Source Foundries Limited
David Vinczeb75c12a2019-03-22 14:58:33 +01003 * Copyright (c) 2019 Arm Limited
Marti Bolivarf91bca52018-04-12 12:40:46 -04004 *
5 * SPDX-License-Identifier: Apache-2.0
6 */
7
8#ifndef __MCUBOOT_CONFIG_H__
9#define __MCUBOOT_CONFIG_H__
10
11/*
12 * Template configuration file for MCUboot.
13 *
14 * When porting MCUboot to a new target, copy it somewhere that your
15 * include path can find it as mcuboot_config/mcuboot_config.h, and
16 * make adjustments to suit your platform.
17 *
18 * For examples, see:
19 *
20 * boot/zephyr/include/mcuboot_config/mcuboot_config.h
21 * boot/mynewt/mcuboot_config/include/mcuboot_config/mcuboot_config.h
22 */
23
24/*
25 * Signature types
26 *
27 * You must choose exactly one signature type.
28 */
29
30/* Uncomment for RSA signature support */
31/* #define MCUBOOT_SIGN_RSA */
32
33/* Uncomment for ECDSA signatures using curve P-256. */
34/* #define MCUBOOT_SIGN_EC256 */
35
36
37/*
38 * Upgrade mode
39 *
40 * The default is to support A/B image swapping with rollback. A
41 * simpler code path, which only supports overwriting the
42 * existing image with the update image, is also available.
43 */
44
45/* Uncomment to enable the overwrite-only code path. */
46/* #define MCUBOOT_OVERWRITE_ONLY */
47
48#ifdef MCUBOOT_OVERWRITE_ONLY
David Vincze2d736ad2019-02-18 11:50:22 +010049/* Uncomment to only erase and overwrite those primary slot sectors needed
Marti Bolivarf91bca52018-04-12 12:40:46 -040050 * to install the new image, rather than the entire image slot. */
51/* #define MCUBOOT_OVERWRITE_ONLY_FAST */
52#endif
53
54/*
55 * Cryptographic settings
56 *
57 * You must choose between mbedTLS and Tinycrypt as source of
58 * cryptographic primitives. Other cryptographic settings are also
59 * available.
60 */
61
62/* Uncomment to use ARM's mbedTLS cryptographic primitives */
63/* #define MCUBOOT_USE_MBED_TLS */
64/* Uncomment to use Tinycrypt's. */
65/* #define MCUBOOT_USE_TINYCRYPT */
66
67/*
David Vincze2d736ad2019-02-18 11:50:22 +010068 * Always check the signature of the image in the primary slot before booting,
Marti Bolivarf91bca52018-04-12 12:40:46 -040069 * even if no upgrade was performed. This is recommended if the boot
70 * time penalty is acceptable.
71 */
David Vincze2d736ad2019-02-18 11:50:22 +010072#define MCUBOOT_VALIDATE_PRIMARY_SLOT
Marti Bolivarf91bca52018-04-12 12:40:46 -040073
74/*
75 * Flash abstraction
76 */
77
78/* Uncomment if your flash map API supports flash_area_get_sectors().
79 * See the flash APIs for more details. */
80/* #define MCUBOOT_USE_FLASH_AREA_GET_SECTORS */
81
Marti Bolivarf9bfddd2018-04-24 14:28:33 -040082/* Default maximum number of flash sectors per image slot; change
83 * as desirable. */
84#define MCUBOOT_MAX_IMG_SECTORS 128
85
David Vinczeb75c12a2019-03-22 14:58:33 +010086/* Default number of separately updateable images; change in case of
87 * multiple images. */
88#define MCUBOOT_IMAGE_NUMBER 1
89
Marti Bolivar248da082018-04-24 15:11:39 -040090/*
Fabio Utzig7d817862018-05-07 08:09:01 -030091 * Logging
92 */
93
94/*
95 * If logging is enabled the following functions must be defined by the
96 * platform:
97 *
Emanuele Di Santo20ba65e2019-01-10 13:38:16 +010098 * MCUBOOT_LOG_MODULE_REGISTER(domain)
99 * Register a new log module and add the current C file to it.
100 *
101 * MCUBOOT_LOG_MODULE_DECLARE(domain)
102 * Add the current C file to an existing log module.
103 *
Fabio Utzig7d817862018-05-07 08:09:01 -0300104 * MCUBOOT_LOG_ERR(...)
105 * MCUBOOT_LOG_WRN(...)
106 * MCUBOOT_LOG_INF(...)
107 * MCUBOOT_LOG_DBG(...)
108 *
Emanuele Di Santoccc98aa2019-01-09 14:17:54 +0100109 * The function priority is:
Fabio Utzig7d817862018-05-07 08:09:01 -0300110 *
111 * MCUBOOT_LOG_ERR > MCUBOOT_LOG_WRN > MCUBOOT_LOG_INF > MCUBOOT_LOG_DBG
Fabio Utzig7d817862018-05-07 08:09:01 -0300112 */
113#define MCUBOOT_HAVE_LOGGING 1
114
115/*
Marti Bolivar248da082018-04-24 15:11:39 -0400116 * Assertions
117 */
118
119/* Uncomment if your platform has its own mcuboot_config/mcuboot_assert.h.
120 * If so, it must provide an ASSERT macro for use by bootutil. Otherwise,
121 * "assert" is used. */
122/* #define MCUBOOT_HAVE_ASSERT_H */
123
Fabio Utzig853657c2019-05-07 08:06:07 -0300124/*
125 * Watchdog feeding
126 */
127
128/* This macro might be implemented if the OS / HW watchdog is enabled while
129 * doing a swap upgrade and the time it takes for a swapping is long enough
130 * to cause an unwanted reset. If implementing this, the OS main.c must also
131 * enable the watchdog (if required)!
132 *
133 * #define MCUBOOT_WATCHDOG_FEED()
134 * do { do watchdog feeding here! } while (0)
135 */
136
Marti Bolivarf91bca52018-04-12 12:40:46 -0400137#endif /* __MCUBOOT_CONFIG_H__ */