blob: 9ead129861b303655e4254a85fd2f61342493c7a [file] [log] [blame]
Tamas Banf70ef8c2017-12-19 15:35:09 +00001/*
2 * Copyright (C) 2017, Linaro Ltd
David Vinczeead78fb2019-12-09 17:41:58 +01003 * Copyright (c) 2018-2020, Arm Limited.
Tamas Banc3828852018-02-01 12:24:16 +00004 *
Tamas Banf70ef8c2017-12-19 15:35:09 +00005 * SPDX-License-Identifier: Apache-2.0
6 */
7
David Vinczecea8b592019-10-29 16:09:51 +01008/*
9 * Original code taken from mcuboot project at:
Tamas Banc5b2f2b2020-11-12 09:47:05 +000010 * https://github.com/mcu-tools/mcuboot
David Vincze2ddc1372019-10-25 11:10:08 +020011 * Git SHA of the original version: ac55554059147fff718015be9f4bd3108123f50a
David Vinczecea8b592019-10-29 16:09:51 +010012 */
13
Tamas Banf70ef8c2017-12-19 15:35:09 +000014#ifndef H_TARGETS_TARGET_
15#define H_TARGETS_TARGET_
16
Tamas Banc3828852018-02-01 12:24:16 +000017/* Target specific defines: flash partitions; flash driver name, etc.
18 * Comes from: platform/ext/target/<BOARD>/<SUBSYSTEM>/partition
19 */
20#include "flash_layout.h"
21
22#ifndef FLASH_BASE_ADDRESS
23#error "FLASH_BASE_ADDRESS must be defined by the target"
24#endif
25
26#ifndef FLASH_AREA_IMAGE_SECTOR_SIZE
27#error "FLASH_AREA_IMAGE_SECTOR_SIZE must be defined by the target"
28#endif
29
Tamas Banf4023f32020-09-16 11:02:52 +010030#ifdef MCUBOOT_RAM_LOAD
Raef Colesaf082382019-10-01 11:10:33 +010031#ifndef IMAGE_EXECUTABLE_RAM_START
Tamas Banf4023f32020-09-16 11:02:52 +010032#error "If MCUBOOT_RAM_LOAD is set then IMAGE_EXECUTABLE_RAM_START must be \
Raef Colesaf082382019-10-01 11:10:33 +010033defined by the target"
34#endif
35
36#ifndef IMAGE_EXECUTABLE_RAM_SIZE
Tamas Banf4023f32020-09-16 11:02:52 +010037#error "If MCUBOOT_RAM_LOAD is set then IMAGE_EXECUTABLE_RAM_SIZE must be \
Raef Colesaf082382019-10-01 11:10:33 +010038defined by the target"
39#endif
Tamas Banf4023f32020-09-16 11:02:52 +010040#endif /* MCUBOOT_RAM_LOAD */
Raef Colesaf082382019-10-01 11:10:33 +010041
David Vinczebb207982019-08-21 15:13:04 +020042#ifndef FLASH_AREA_0_OFFSET
43#error "FLASH_AREA_0_OFFSET must be defined by the target"
Tamas Banc3828852018-02-01 12:24:16 +000044#endif
45
David Vinczebb207982019-08-21 15:13:04 +020046#ifndef FLASH_AREA_0_SIZE
47#error "FLASH_AREA_0_SIZE must be defined by the target"
Tamas Banc3828852018-02-01 12:24:16 +000048#endif
49
Michel Jaouen26f6c022020-12-03 10:37:22 +010050#if defined(FLASH_DEV_NAME_0) != defined(FLASH_DEVICE_ID_0)
51#error "FLASH DEV_NAME_0 and DEVICE_ID_0 must be simultaneously defined or not \
52by target"
53#endif
54
David Vinczebb207982019-08-21 15:13:04 +020055#ifndef FLASH_AREA_2_OFFSET
56#error "FLASH_AREA_2_OFFSET must be defined by the target"
Tamas Banc3828852018-02-01 12:24:16 +000057#endif
58
David Vinczebb207982019-08-21 15:13:04 +020059#ifndef FLASH_AREA_2_SIZE
60#error "FLASH_AREA_2_SIZE must be defined by the target"
Tamas Banc3828852018-02-01 12:24:16 +000061#endif
62
Michel Jaouen26f6c022020-12-03 10:37:22 +010063#if defined(FLASH_DEV_NAME_2) != defined(FLASH_DEVICE_ID_2)
64#error "FLASH DEV_NAME_2 and DEVICE_ID_2 must be simultaneously defined or not \
65by target"
66#endif
67
David Vinczebb207982019-08-21 15:13:04 +020068#if (MCUBOOT_IMAGE_NUMBER == 2)
69#ifndef FLASH_AREA_1_OFFSET
70#error "FLASH_AREA_1_OFFSET must be defined by the target"
Tamas Banc3828852018-02-01 12:24:16 +000071#endif
72
David Vinczebb207982019-08-21 15:13:04 +020073#ifndef FLASH_AREA_1_SIZE
74#error "FLASH_AREA_1_SIZE must be defined by the target"
75#endif
76
Michel Jaouen26f6c022020-12-03 10:37:22 +010077#if defined(FLASH_DEV_NAME_1) != defined(FLASH_DEVICE_ID_1)
78#error "FLASH DEV_NAME_1 and DEVICE_ID_1 must be simultaneously defined or not \
79by target"
80#endif
81
David Vinczebb207982019-08-21 15:13:04 +020082#ifndef FLASH_AREA_3_OFFSET
83#error "FLASH_AREA_3_OFFSET must be defined by the target"
84#endif
85
86#ifndef FLASH_AREA_3_SIZE
87#error "FLASH_AREA_3_SIZE must be defined by the target"
88#endif
Michel Jaouen26f6c022020-12-03 10:37:22 +010089
90#if defined(FLASH_DEV_NAME_3) != defined(FLASH_DEVICE_ID_3)
91#error "FLASH DEV_NAME_3 and DEVICE_ID_3 must be simultaneously defined or not \
92by target"
93#endif
David Vinczebb207982019-08-21 15:13:04 +020094#endif /* (MCUBOOT_IMAGE_NUMBER == 2) */
95
96#ifndef FLASH_AREA_SCRATCH_OFFSET
97#error "FLASH_AREA_SCRATCH_OFFSET must be defined by the target"
98#endif
99
100#ifndef FLASH_AREA_SCRATCH_SIZE
101#error "FLASH_AREA_SCRATCH_SIZE must be defined by the target"
Tamas Banc3828852018-02-01 12:24:16 +0000102#endif
103
Michel Jaouen26f6c022020-12-03 10:37:22 +0100104#if defined(FLASH_DEV_NAME_SCRATCH) != defined(FLASH_DEVICE_ID_SCRATCH)
105#error "FLASH DEV_NAME_SCRATCH and DEVICE_ID_SCRATCH must be simultaneously defined \
106or not by target"
107#endif
108
Tamas Banc3828852018-02-01 12:24:16 +0000109#ifndef FLASH_DEV_NAME
110#error "BL2 supports CMSIS flash interface and device name must be specified"
Tamas Banf70ef8c2017-12-19 15:35:09 +0000111#endif
112
David Vinczeead78fb2019-12-09 17:41:58 +0100113#ifndef MCUBOOT_STATUS_MAX_ENTRIES
114#error "MCUBOOT_STATUS_MAX_ENTRIES must be defined by the target"
Mate Toth-Pala76e2ab2018-05-31 15:43:01 +0200115#endif
116
David Vinczeead78fb2019-12-09 17:41:58 +0100117#ifndef MCUBOOT_MAX_IMG_SECTORS
118#error "MCUBOOT_MAX_IMG_SECTORS must be defined by the target"
Mate Toth-Pala76e2ab2018-05-31 15:43:01 +0200119#endif
120
David Vinczebb207982019-08-21 15:13:04 +0200121#endif /* H_TARGETS_TARGET_ */