blob: 4c8fcde406efa3a42aa9418bfcf6557380137485 [file] [log] [blame]
/*
* Copyright (c) 2021, Arm Limited. All rights reserved.
*
* SPDX-License-Identifier: BSD-3-Clause
*
*/
#include <stdbool.h>
#include "flash_map/flash_map.h"
#include "target.h"
#include "Driver_Flash.h"
/* When undefined FLASH_DEV_NAME_0 or FLASH_DEVICE_ID_0 , default */
#if !defined(FLASH_DEV_NAME_0) || !defined(FLASH_DEVICE_ID_0)
#define FLASH_DEV_NAME_0 FLASH_DEV_NAME
#define FLASH_DEVICE_ID_0 FLASH_DEVICE_ID
#endif
/* When undefined FLASH_DEV_NAME_1 or FLASH_DEVICE_ID_1 , default */
#if !defined(FLASH_DEV_NAME_1) || !defined(FLASH_DEVICE_ID_1)
#define FLASH_DEV_NAME_1 FLASH_DEV_NAME
#define FLASH_DEVICE_ID_1 FLASH_DEVICE_ID
#endif
/* When undefined FLASH_DEV_NAME_2 or FLASH_DEVICE_ID_2 , default */
#if !defined(FLASH_DEV_NAME_2) || !defined(FLASH_DEVICE_ID_2)
#define FLASH_DEV_NAME_2 FLASH_DEV_NAME
#define FLASH_DEVICE_ID_2 FLASH_DEVICE_ID
#endif
/* When undefined FLASH_DEV_NAME_3 or FLASH_DEVICE_ID_3 , default */
#if !defined(FLASH_DEV_NAME_3) || !defined(FLASH_DEVICE_ID_3)
#define FLASH_DEV_NAME_3 FLASH_DEV_NAME
#define FLASH_DEVICE_ID_3 FLASH_DEVICE_ID
#endif
/* When undefined FLASH_DEV_NAME_SCRATCH or FLASH_DEVICE_ID_SCRATCH , default */
#if !defined(FLASH_DEV_NAME_SCRATCH) || !defined(FLASH_DEVICE_ID_SCRATCH)
#define FLASH_DEV_NAME_SCRATCH FLASH_DEV_NAME
#define FLASH_DEVICE_ID_SCRATCH FLASH_DEVICE_ID
#endif
#define ARRAY_SIZE(arr) (sizeof(arr)/sizeof((arr)[0]))
/* Flash device names must be specified by target */
extern ARM_DRIVER_FLASH FLASH_DEV_NAME_0;
extern ARM_DRIVER_FLASH FLASH_DEV_NAME_1;
extern ARM_DRIVER_FLASH FLASH_DEV_NAME_2;
extern ARM_DRIVER_FLASH FLASH_DEV_NAME_3;
extern ARM_DRIVER_FLASH FLASH_DEV_NAME_SCRATCH;
const struct flash_area flash_map[] = {
{
.fa_id = FLASH_AREA_0_ID,
.fa_device_id = FLASH_DEVICE_ID_0,
.fa_driver = &FLASH_DEV_NAME_0,
.fa_off = FLASH_AREA_0_OFFSET,
.fa_size = FLASH_AREA_0_SIZE,
},
{
.fa_id = FLASH_AREA_2_ID,
.fa_device_id = FLASH_DEVICE_ID_2,
.fa_driver = &FLASH_DEV_NAME_2,
.fa_off = FLASH_AREA_2_OFFSET,
.fa_size = FLASH_AREA_2_SIZE,
},
#if (MCUBOOT_IMAGE_NUMBER == 2)
{
.fa_id = FLASH_AREA_1_ID,
.fa_device_id = FLASH_DEVICE_ID_1,
.fa_driver = &FLASH_DEV_NAME_1,
.fa_off = FLASH_AREA_1_OFFSET,
.fa_size = FLASH_AREA_1_SIZE,
},
{
.fa_id = FLASH_AREA_3_ID,
.fa_device_id = FLASH_DEVICE_ID_3,
.fa_driver = &FLASH_DEV_NAME_3,
.fa_off = FLASH_AREA_3_OFFSET,
.fa_size = FLASH_AREA_3_SIZE,
},
#endif
{
.fa_id = FLASH_AREA_SCRATCH_ID,
.fa_device_id = FLASH_DEVICE_ID_SCRATCH,
.fa_driver = &FLASH_DEV_NAME_SCRATCH,
.fa_off = FLASH_AREA_SCRATCH_OFFSET,
.fa_size = FLASH_AREA_SCRATCH_SIZE,
},
};
const int flash_map_entry_num = ARRAY_SIZE(flash_map);