1/*
2 * Copyright (c) 2018 Synopsys, Inc. All rights reserved.
3 *
4 * SPDX-License-Identifier: Apache-2.0
5 */
6
7/**
8 * @brief Linker script for the Synopsys EM Starterkit platform.
9 */
10
11#include <zephyr/devicetree.h>
12
13/* Instruction Closely Coupled Memory (ICCM) base address and size */
14#if DT_NODE_HAS_PROP(DT_INST(0, arc_iccm), reg) && \
15    (DT_REG_SIZE(DT_INST(0, arc_iccm)) > 0)
16#define ICCM_START		DT_REG_ADDR(DT_INST(0, arc_iccm))
17#define ICCM_SIZE		DT_REG_SIZE(DT_INST(0, arc_iccm))
18#endif
19
20/*
21 * DCCM base address and size. DCCM is the data memory.
22 */
23/* Data Closely Coupled Memory (DCCM) base address and size */
24#if DT_NODE_HAS_PROP(DT_INST(0, arc_dccm), reg) && \
25    (DT_REG_SIZE(DT_INST(0, arc_dccm)) > 0)
26#define DCCM_START		DT_REG_ADDR(DT_INST(0, arc_dccm))
27#define DCCM_SIZE		DT_REG_SIZE(DT_INST(0, arc_dccm))
28#endif
29
30/* SRAM - memory available for all cores in cluster. Can be used for both instructions and data */
31#if DT_NODE_HAS_PROP(DT_CHOSEN(zephyr_sram), reg) && (DT_REG_SIZE(DT_CHOSEN(zephyr_sram)) > 0)
32#define SRAM_START		DT_REG_ADDR(DT_CHOSEN(zephyr_sram))
33#define SRAM_SIZE		DT_REG_SIZE(DT_CHOSEN(zephyr_sram))
34#endif
35
36/* Flash memory base address and size */
37#if DT_NODE_HAS_PROP(DT_CHOSEN(zephyr_flash), reg) && \
38    (DT_REG_SIZE(DT_CHOSEN(zephyr_flash)) > 0)
39#define FLASH_START		DT_REG_ADDR(DT_CHOSEN(zephyr_flash))
40#define FLASH_SIZE		DT_REG_SIZE(DT_CHOSEN(zephyr_flash))
41#endif
42
43
44#include <zephyr/arch/arc/v2/xy_mem.ld>
45#include <zephyr/arch/arc/v2/linker.ld>
46