blob: 5419853f4bfc81b782870ad80318601d7c7ea715 [file] [log] [blame]
Shubham Kulkarni052561d2021-07-20 11:42:44 +05301/*
2 * Copyright (c) 2021 Espressif Systems (Shanghai) Co., Ltd.
3 *
4 * SPDX-License-Identifier: Apache-2.0
5 */
6
Almir Okatoa1d641d2022-02-21 19:31:46 -03007#pragma once
8
9#include <mcuboot_config/mcuboot_config.h>
10
Shubham Kulkarni052561d2021-07-20 11:42:44 +053011//! A user-defined identifier for different storage mediums
12//! (i.e internal flash, external NOR flash, eMMC, etc)
13#define FLASH_DEVICE_INTERNAL_FLASH 0
14
15//! An arbitrarily high slot ID we will use to indicate that
16//! there is not slot
17#define FLASH_SLOT_DOES_NOT_EXIST 255
18
Shubham Kulkarni052561d2021-07-20 11:42:44 +053019//! The slot we will use to track the bootloader allocation
20#define FLASH_AREA_BOOTLOADER 0
21
Almir Okatoa1d641d2022-02-21 19:31:46 -030022#define FLASH_AREA_IMAGE_0_PRIMARY 1
23#define FLASH_AREA_IMAGE_0_SECONDARY 2
24#define FLASH_AREA_IMAGE_SCRATCH 3
25#define FLASH_AREA_IMAGE_1_PRIMARY 4
26#define FLASH_AREA_IMAGE_1_SECONDARY 5
27
28#if (MCUBOOT_IMAGE_NUMBER == 1)
29#define FLASH_AREA_IMAGE_PRIMARY(x) (((x) == 0) ? \
30 FLASH_AREA_IMAGE_0_PRIMARY : \
31 FLASH_SLOT_DOES_NOT_EXIST)
32#define FLASH_AREA_IMAGE_SECONDARY(x) (((x) == 0) ? \
33 FLASH_AREA_IMAGE_0_SECONDARY : \
34 FLASH_SLOT_DOES_NOT_EXIST)
35
36#elif (MCUBOOT_IMAGE_NUMBER == 2)
37#define FLASH_AREA_IMAGE_PRIMARY(x) (((x) == 0) ? \
38 FLASH_AREA_IMAGE_0_PRIMARY : \
39 ((x) == 1) ? \
40 FLASH_AREA_IMAGE_1_PRIMARY : \
41 FLASH_SLOT_DOES_NOT_EXIST)
42#define FLASH_AREA_IMAGE_SECONDARY(x) (((x) == 0) ? \
43 FLASH_AREA_IMAGE_0_SECONDARY : \
44 ((x) == 1) ? \
45 FLASH_AREA_IMAGE_1_SECONDARY : \
46 FLASH_SLOT_DOES_NOT_EXIST)
47
48#else
49#warning "Image slot and flash area mapping is not defined"
50#endif