blob: a11616fc074785b758273d37a27c0444c1c2cf8a [file] [log] [blame]
Marti Bolivar51181cf2017-03-20 11:03:41 -04001/*
2 * Copyright (C) 2017, Linaro Ltd
David Vinczeb75c12a2019-03-22 14:58:33 +01003 * Copyright (c) 2019, Arm Limited
4 *
Marti Bolivar51181cf2017-03-20 11:03:41 -04005 * SPDX-License-Identifier: Apache-2.0
6 */
7
8#ifndef H_TARGETS_TARGET_
9#define H_TARGETS_TARGET_
10
11#if defined(MCUBOOT_TARGET_CONFIG)
Marti Bolivar3d9e3eb2017-09-20 16:28:57 -040012/*
13 * Target-specific definitions are permitted in legacy cases that
14 * don't provide the information via DTS, etc.
15 */
Marti Bolivar51181cf2017-03-20 11:03:41 -040016#include MCUBOOT_TARGET_CONFIG
Marti Bolivar3d9e3eb2017-09-20 16:28:57 -040017#else
18/*
19 * Otherwise, the Zephyr SoC header and the DTS provide most
20 * everything we need.
Marti Bolivar3d9e3eb2017-09-20 16:28:57 -040021 */
22#include <soc.h>
Marti Bolivar51181cf2017-03-20 11:03:41 -040023
Marti Bolivar3d9e3eb2017-09-20 16:28:57 -040024#define FLASH_ALIGN FLASH_WRITE_BLOCK_SIZE
25
Marti Bolivardc4c42b2017-09-21 14:20:40 -040026/*
27 * TODO: remove soc_family_kinetis.h once its flash driver supports
28 * FLASH_PAGE_LAYOUT.
29 */
30#if defined(CONFIG_SOC_FAMILY_KINETIS)
Marti Bolivar07cd2d02017-09-01 14:05:53 -040031#include "soc_family_kinetis.h"
Marti Bolivar29d3a772017-03-20 10:44:25 -040032#endif
Marti Bolivar3d9e3eb2017-09-20 16:28:57 -040033#endif /* !defined(MCUBOOT_TARGET_CONFIG) */
Marti Bolivar29d3a772017-03-20 10:44:25 -040034
Marti Bolivar61038df2017-09-01 12:52:56 -040035/*
Marti Bolivar3d9e3eb2017-09-20 16:28:57 -040036 * Sanity check the target support.
Marti Bolivar61038df2017-09-01 12:52:56 -040037 */
Rajavardhan Gundi3b8b58d2018-12-06 17:26:43 +053038#if (!defined(CONFIG_XTENSA) && !defined(DT_FLASH_DEV_NAME)) || \
Rajavardhan Gundi24321c32019-02-08 12:48:34 +053039 (defined(CONFIG_XTENSA) && !defined(DT_JEDEC_SPI_NOR_0_LABEL)) || \
Marti Bolivar61038df2017-09-01 12:52:56 -040040 !defined(FLASH_ALIGN) || \
41 !defined(FLASH_AREA_IMAGE_0_OFFSET) || \
42 !defined(FLASH_AREA_IMAGE_0_SIZE) || \
43 !defined(FLASH_AREA_IMAGE_1_OFFSET) || \
44 !defined(FLASH_AREA_IMAGE_1_SIZE) || \
45 !defined(FLASH_AREA_IMAGE_SCRATCH_OFFSET) || \
46 !defined(FLASH_AREA_IMAGE_SCRATCH_SIZE)
47#error "Target support is incomplete; cannot build mcuboot."
48#endif
49
David Vinczeb75c12a2019-03-22 14:58:33 +010050#if ((MCUBOOT_IMAGE_NUMBER == 2) && (!defined(FLASH_AREA_IMAGE_2_OFFSET) || \
51 !defined(FLASH_AREA_IMAGE_2_SIZE) || \
52 !defined(FLASH_AREA_IMAGE_3_OFFSET) || \
53 !defined(FLASH_AREA_IMAGE_3_SIZE)))
54#error "Target support is incomplete; cannot build mcuboot."
Marti Bolivar51181cf2017-03-20 11:03:41 -040055#endif
David Vinczeb75c12a2019-03-22 14:58:33 +010056
57#endif /* H_TARGETS_TARGET_ */