1dfd5bfb0SChandni Cherukuri /* 248d42ed5STamas Ban * Copyright (c) 2020-2024, Arm Limited. All rights reserved. 3dfd5bfb0SChandni Cherukuri * 4dfd5bfb0SChandni Cherukuri * SPDX-License-Identifier: BSD-3-Clause 5dfd5bfb0SChandni Cherukuri */ 6dfd5bfb0SChandni Cherukuri 7dfd5bfb0SChandni Cherukuri #ifndef PLATFORM_DEF_H 8dfd5bfb0SChandni Cherukuri #define PLATFORM_DEF_H 9dfd5bfb0SChandni Cherukuri 10dfd5bfb0SChandni Cherukuri #include <plat/arm/board/common/v2m_def.h> 11dfd5bfb0SChandni Cherukuri #include <plat/arm/common/arm_def.h> 12dfd5bfb0SChandni Cherukuri #include <plat/arm/css/common/css_def.h> 13dfd5bfb0SChandni Cherukuri 14dfd5bfb0SChandni Cherukuri /* UART related constants */ 15dfd5bfb0SChandni Cherukuri #define PLAT_ARM_BOOT_UART_BASE ULL(0x2A400000) 16dfd5bfb0SChandni Cherukuri #define PLAT_ARM_BOOT_UART_CLK_IN_HZ U(50000000) 17dfd5bfb0SChandni Cherukuri 1807302a23SChandni Cherukuri /* IOFPGA UART0 */ 1907302a23SChandni Cherukuri #define PLAT_ARM_RUN_UART_BASE ULL(0x1C090000) 2007302a23SChandni Cherukuri #define PLAT_ARM_RUN_UART_CLK_IN_HZ U(24000000) 21dfd5bfb0SChandni Cherukuri 22dfd5bfb0SChandni Cherukuri #define PLAT_ARM_CRASH_UART_BASE PLAT_ARM_RUN_UART_BASE 23dfd5bfb0SChandni Cherukuri #define PLAT_ARM_CRASH_UART_CLK_IN_HZ PLAT_ARM_RUN_UART_CLK_IN_HZ 24dfd5bfb0SChandni Cherukuri 25dfd5bfb0SChandni Cherukuri #define PLAT_ARM_DRAM2_BASE ULL(0x8080000000) 26dfd5bfb0SChandni Cherukuri #define PLAT_ARM_DRAM2_SIZE ULL(0xF80000000) 27dfd5bfb0SChandni Cherukuri 284af53977SManoj Kumar #define MAX_IO_DEVICES U(3) 294af53977SManoj Kumar #define MAX_IO_HANDLES U(4) 304af53977SManoj Kumar 314af53977SManoj Kumar #define PLAT_ARM_FLASH_IMAGE_BASE ULL(0x1A000000) 324af53977SManoj Kumar #define PLAT_ARM_FLASH_IMAGE_MAX_SIZE ULL(0x01000000) 334af53977SManoj Kumar 344af53977SManoj Kumar #define PLAT_ARM_NVM_BASE ULL(0x1A000000) 354af53977SManoj Kumar #define PLAT_ARM_NVM_SIZE ULL(0x01000000) 364af53977SManoj Kumar 374af53977SManoj Kumar #if defined NS_BL1U_BASE 384af53977SManoj Kumar #undef NS_BL1U_BASE 394af53977SManoj Kumar #define NS_BL1U_BASE (PLAT_ARM_NVM_BASE + UL(0x00800000)) 404af53977SManoj Kumar #endif 414af53977SManoj Kumar 424af53977SManoj Kumar /* 434af53977SManoj Kumar * There are no non-volatile counters in morello, these macros points 444af53977SManoj Kumar * to unused addresses. 454af53977SManoj Kumar */ 464af53977SManoj Kumar #define SOC_TRUSTED_NVCTR_BASE ULL(0x7FE70000) 474af53977SManoj Kumar #define TFW_NVCTR_BASE (SOC_TRUSTED_NVCTR_BASE + U(0x0000)) 484af53977SManoj Kumar #define TFW_NVCTR_SIZE U(4) 494af53977SManoj Kumar #define NTFW_CTR_BASE (SOC_TRUSTED_NVCTR_BASE + U(0x0004)) 504af53977SManoj Kumar #define NTFW_CTR_SIZE U(4) 514af53977SManoj Kumar 52dfd5bfb0SChandni Cherukuri /* 53dfd5bfb0SChandni Cherukuri * To access the complete DDR memory along with remote chip's DDR memory, 54dfd5bfb0SChandni Cherukuri * which is at 4 TB offset, physical and virtual address space limits are 55dfd5bfb0SChandni Cherukuri * extended to 43-bits. 56dfd5bfb0SChandni Cherukuri */ 57dfd5bfb0SChandni Cherukuri #define PLAT_PHY_ADDR_SPACE_SIZE (1ULL << 43) 58dfd5bfb0SChandni Cherukuri #define PLAT_VIRT_ADDR_SPACE_SIZE (1ULL << 43) 59dfd5bfb0SChandni Cherukuri 60dfd5bfb0SChandni Cherukuri #if CSS_USE_SCMI_SDS_DRIVER 61dfd5bfb0SChandni Cherukuri #define MORELLO_SCMI_PAYLOAD_BASE ULL(0x45400000) 6248d42ed5STamas Ban /* 6348d42ed5STamas Ban * Index of SDS region used in the communication with SCP 6448d42ed5STamas Ban */ 6548d42ed5STamas Ban #define SDS_SCP_AP_REGION_ID U(0) 66dfd5bfb0SChandni Cherukuri #else 67dfd5bfb0SChandni Cherukuri #define PLAT_CSS_SCP_COM_SHARED_MEM_BASE ULL(0x45400000) 68dfd5bfb0SChandni Cherukuri #endif 69dfd5bfb0SChandni Cherukuri 70dfd5bfb0SChandni Cherukuri #define PLAT_ARM_TRUSTED_SRAM_SIZE UL(0x00080000) 714af53977SManoj Kumar 724af53977SManoj Kumar /* 734af53977SManoj Kumar * PLAT_ARM_MAX_BL1_RW_SIZE is calculated using the current BL1 RW debug size 744af53977SManoj Kumar * plus a little space for growth. 754af53977SManoj Kumar */ 764af53977SManoj Kumar #define PLAT_ARM_MAX_BL1_RW_SIZE UL(0xC000) 774af53977SManoj Kumar 78*df960bccSHarrison Mutai /* Define memory configuration for device tree files. */ 79*df960bccSHarrison Mutai #define PLAT_ARM_HW_CONFIG_SIZE U(0x8000) 80*df960bccSHarrison Mutai 814af53977SManoj Kumar /* 824af53977SManoj Kumar * PLAT_ARM_MAX_ROMLIB_RW_SIZE is define to use a full page 834af53977SManoj Kumar */ 844af53977SManoj Kumar 854af53977SManoj Kumar #if USE_ROMLIB 864af53977SManoj Kumar #define PLAT_ARM_MAX_ROMLIB_RW_SIZE UL(0x1000) 874af53977SManoj Kumar #define PLAT_ARM_MAX_ROMLIB_RO_SIZE UL(0xE000) 884af53977SManoj Kumar #else 894af53977SManoj Kumar #define PLAT_ARM_MAX_ROMLIB_RW_SIZE U(0) 904af53977SManoj Kumar #define PLAT_ARM_MAX_ROMLIB_RO_SIZE U(0) 914af53977SManoj Kumar #endif 924af53977SManoj Kumar 934af53977SManoj Kumar /* 944af53977SManoj Kumar * PLAT_ARM_MAX_BL2_SIZE is calculated using the current BL2 debug size plus a 954af53977SManoj Kumar * little space for growth. 964af53977SManoj Kumar */ 974af53977SManoj Kumar #if TRUSTED_BOARD_BOOT 984af53977SManoj Kumar # define PLAT_ARM_MAX_BL2_SIZE UL(0x1D000) 994af53977SManoj Kumar #else 1004af53977SManoj Kumar # define PLAT_ARM_MAX_BL2_SIZE UL(0x14000) 1014af53977SManoj Kumar #endif 1024af53977SManoj Kumar 1034af53977SManoj Kumar #define PLAT_ARM_MAX_BL31_SIZE UL(0x3B000) 104dfd5bfb0SChandni Cherukuri 105dfd5bfb0SChandni Cherukuri /******************************************************************************* 106dfd5bfb0SChandni Cherukuri * MORELLO topology related constants 107dfd5bfb0SChandni Cherukuri ******************************************************************************/ 108dfd5bfb0SChandni Cherukuri #define MORELLO_MAX_CPUS_PER_CLUSTER U(2) 109dfd5bfb0SChandni Cherukuri #define PLAT_ARM_CLUSTER_COUNT U(2) 110dfd5bfb0SChandni Cherukuri #define PLAT_MORELLO_CHIP_COUNT U(1) 111dfd5bfb0SChandni Cherukuri #define MORELLO_MAX_CLUSTERS_PER_CHIP U(2) 112dfd5bfb0SChandni Cherukuri #define MORELLO_MAX_PE_PER_CPU U(1) 113dfd5bfb0SChandni Cherukuri 114dfd5bfb0SChandni Cherukuri #define PLATFORM_CORE_COUNT (PLAT_MORELLO_CHIP_COUNT * \ 115dfd5bfb0SChandni Cherukuri PLAT_ARM_CLUSTER_COUNT * \ 116dfd5bfb0SChandni Cherukuri MORELLO_MAX_CPUS_PER_CLUSTER * \ 117dfd5bfb0SChandni Cherukuri MORELLO_MAX_PE_PER_CPU) 118dfd5bfb0SChandni Cherukuri 119dfd5bfb0SChandni Cherukuri /* System power domain level */ 120dfd5bfb0SChandni Cherukuri #define CSS_SYSTEM_PWR_DMN_LVL ARM_PWR_LVL3 121dfd5bfb0SChandni Cherukuri 122dfd5bfb0SChandni Cherukuri /* 123dfd5bfb0SChandni Cherukuri * PLAT_ARM_MMAP_ENTRIES depends on the number of entries in the 124dfd5bfb0SChandni Cherukuri * plat_arm_mmap array defined for each BL stage. 125dfd5bfb0SChandni Cherukuri */ 1264af53977SManoj Kumar #if IMAGE_BL1 || IMAGE_BL31 1274af53977SManoj Kumar # define PLAT_ARM_MMAP_ENTRIES U(6) 1284af53977SManoj Kumar # define MAX_XLAT_TABLES U(7) 1294af53977SManoj Kumar #else 1304af53977SManoj Kumar # define PLAT_ARM_MMAP_ENTRIES U(5) 1314af53977SManoj Kumar # define MAX_XLAT_TABLES U(6) 1324af53977SManoj Kumar #endif 133dfd5bfb0SChandni Cherukuri 1344af53977SManoj Kumar /* 1354af53977SManoj Kumar * Size of cacheable stacks 1364af53977SManoj Kumar */ 1374af53977SManoj Kumar #if defined(IMAGE_BL1) 1384af53977SManoj Kumar # if TRUSTED_BOARD_BOOT 1394af53977SManoj Kumar # define PLATFORM_STACK_SIZE UL(0x1000) 1404af53977SManoj Kumar # else 1414af53977SManoj Kumar # define PLATFORM_STACK_SIZE UL(0x440) 1424af53977SManoj Kumar # endif 1434af53977SManoj Kumar #elif defined(IMAGE_BL2) 1444af53977SManoj Kumar # if TRUSTED_BOARD_BOOT 1454af53977SManoj Kumar # define PLATFORM_STACK_SIZE UL(0x1000) 1464af53977SManoj Kumar # else 1474af53977SManoj Kumar # define PLATFORM_STACK_SIZE UL(0x400) 1484af53977SManoj Kumar # endif 1494af53977SManoj Kumar #elif defined(IMAGE_BL2U) 1504af53977SManoj Kumar # define PLATFORM_STACK_SIZE UL(0x400) 1514af53977SManoj Kumar #elif defined(IMAGE_BL31) 1524af53977SManoj Kumar # if SPM_MM 1534af53977SManoj Kumar # define PLATFORM_STACK_SIZE UL(0x500) 1544af53977SManoj Kumar # else 1554af53977SManoj Kumar # define PLATFORM_STACK_SIZE UL(0x400) 1564af53977SManoj Kumar # endif 1574af53977SManoj Kumar #elif defined(IMAGE_BL32) 1584af53977SManoj Kumar # define PLATFORM_STACK_SIZE UL(0x440) 1594af53977SManoj Kumar #endif 160dfd5bfb0SChandni Cherukuri 161dfd5bfb0SChandni Cherukuri #define PLAT_ARM_NSTIMER_FRAME_ID U(0) 1624af53977SManoj Kumar 1634af53977SManoj Kumar #define PLAT_ARM_TRUSTED_ROM_BASE U(0x0) 1644af53977SManoj Kumar #define PLAT_ARM_TRUSTED_ROM_SIZE UL(0x00020000) /* 128KB */ 1654af53977SManoj Kumar 1664af53977SManoj Kumar #define PLAT_ARM_NSRAM_BASE ULL(0x06000000) 1674af53977SManoj Kumar #define PLAT_ARM_NSRAM_SIZE UL(0x00010000) /* 64KB */ 1684af53977SManoj Kumar 169dfd5bfb0SChandni Cherukuri #define PLAT_CSS_MHU_BASE UL(0x45000000) 170dfd5bfb0SChandni Cherukuri #define PLAT_MHUV2_BASE PLAT_CSS_MHU_BASE 171dfd5bfb0SChandni Cherukuri #define PLAT_MAX_PWR_LVL U(2) 172dfd5bfb0SChandni Cherukuri 17380f8769bSWerner Lewis /* Interrupt handling constants */ 17480f8769bSWerner Lewis #define MORELLO_IRQ_SEC_UART U(87) 17580f8769bSWerner Lewis #define MORELLO_IRQ_DISPLAY_TCU_EVENT_Q U(107) 17680f8769bSWerner Lewis #define MORELLO_IRQ_DISPLAY_TCU_CMD_SYNC U(111) 17780f8769bSWerner Lewis #define MORELLO_IRQ_DISPLAY_TCU_GLOBAL U(113) 17880f8769bSWerner Lewis #define MORELLO_IRQ_MMU_TCU1_EVENT_Q U(257) 17980f8769bSWerner Lewis #define MORELLO_IRQ_MMU_TCU1_CMD_SYNC U(258) 18080f8769bSWerner Lewis #define MORELLO_IRQ_MMU_TCU1_GLOBAL U(259) 18180f8769bSWerner Lewis #define MORELLO_IRQ_MMU_TCU2_EVENT_Q U(264) 18280f8769bSWerner Lewis #define MORELLO_IRQ_MMU_TCU2_CMD_SYNC U(265) 18380f8769bSWerner Lewis #define MORELLO_IRQ_MMU_TCU2_GLOBAL U(266) 18480f8769bSWerner Lewis #define MORELLO_IRQ_CLUSTER0_MHU U(349) 18580f8769bSWerner Lewis #define MORELLO_IRQ_CLUSTER1_MHU U(351) 18680f8769bSWerner Lewis #define MORELLO_IRQ_P0_REFCLK U(412) 18780f8769bSWerner Lewis #define MORELLO_IRQ_P1_REFCLK U(413) 18880f8769bSWerner Lewis 18980f8769bSWerner Lewis #define PLAT_ARM_G1S_IRQ_PROPS(grp) \ 19080f8769bSWerner Lewis ARM_G1S_IRQ_PROPS(grp), \ 19180f8769bSWerner Lewis INTR_PROP_DESC(CSS_IRQ_MHU, \ 19280f8769bSWerner Lewis GIC_HIGHEST_SEC_PRIORITY, grp, GIC_INTR_CFG_LEVEL), \ 19380f8769bSWerner Lewis INTR_PROP_DESC(CSS_IRQ_TZ_WDOG, \ 19480f8769bSWerner Lewis GIC_HIGHEST_SEC_PRIORITY, grp, GIC_INTR_CFG_LEVEL), \ 19580f8769bSWerner Lewis INTR_PROP_DESC(CSS_IRQ_SEC_SYS_TIMER, \ 19680f8769bSWerner Lewis GIC_HIGHEST_SEC_PRIORITY, grp, GIC_INTR_CFG_LEVEL), \ 19780f8769bSWerner Lewis INTR_PROP_DESC(MORELLO_IRQ_SEC_UART, \ 19880f8769bSWerner Lewis GIC_HIGHEST_SEC_PRIORITY, grp, GIC_INTR_CFG_LEVEL), \ 19980f8769bSWerner Lewis INTR_PROP_DESC(MORELLO_IRQ_DISPLAY_TCU_EVENT_Q, \ 20080f8769bSWerner Lewis GIC_HIGHEST_SEC_PRIORITY, grp, GIC_INTR_CFG_LEVEL), \ 20180f8769bSWerner Lewis INTR_PROP_DESC(MORELLO_IRQ_DISPLAY_TCU_CMD_SYNC, \ 20280f8769bSWerner Lewis GIC_HIGHEST_SEC_PRIORITY, grp, GIC_INTR_CFG_LEVEL), \ 20380f8769bSWerner Lewis INTR_PROP_DESC(MORELLO_IRQ_DISPLAY_TCU_GLOBAL, \ 20480f8769bSWerner Lewis GIC_HIGHEST_SEC_PRIORITY, grp, GIC_INTR_CFG_LEVEL), \ 20580f8769bSWerner Lewis INTR_PROP_DESC(MORELLO_IRQ_MMU_TCU1_EVENT_Q, \ 20680f8769bSWerner Lewis GIC_HIGHEST_SEC_PRIORITY, grp, GIC_INTR_CFG_LEVEL), \ 20780f8769bSWerner Lewis INTR_PROP_DESC(MORELLO_IRQ_MMU_TCU1_CMD_SYNC, \ 20880f8769bSWerner Lewis GIC_HIGHEST_SEC_PRIORITY, grp, GIC_INTR_CFG_LEVEL), \ 20980f8769bSWerner Lewis INTR_PROP_DESC(MORELLO_IRQ_MMU_TCU1_GLOBAL, \ 21080f8769bSWerner Lewis GIC_HIGHEST_SEC_PRIORITY, grp, GIC_INTR_CFG_LEVEL), \ 21180f8769bSWerner Lewis INTR_PROP_DESC(MORELLO_IRQ_MMU_TCU2_EVENT_Q, \ 21280f8769bSWerner Lewis GIC_HIGHEST_SEC_PRIORITY, grp, GIC_INTR_CFG_LEVEL), \ 21380f8769bSWerner Lewis INTR_PROP_DESC(MORELLO_IRQ_MMU_TCU2_CMD_SYNC, \ 21480f8769bSWerner Lewis GIC_HIGHEST_SEC_PRIORITY, grp, GIC_INTR_CFG_LEVEL), \ 21580f8769bSWerner Lewis INTR_PROP_DESC(MORELLO_IRQ_MMU_TCU2_GLOBAL, \ 21680f8769bSWerner Lewis GIC_HIGHEST_SEC_PRIORITY, grp, GIC_INTR_CFG_LEVEL), \ 21780f8769bSWerner Lewis INTR_PROP_DESC(MORELLO_IRQ_CLUSTER0_MHU, \ 21880f8769bSWerner Lewis GIC_HIGHEST_SEC_PRIORITY, grp, GIC_INTR_CFG_LEVEL), \ 21980f8769bSWerner Lewis INTR_PROP_DESC(MORELLO_IRQ_CLUSTER1_MHU, \ 22080f8769bSWerner Lewis GIC_HIGHEST_SEC_PRIORITY, grp, GIC_INTR_CFG_LEVEL), \ 22180f8769bSWerner Lewis INTR_PROP_DESC(MORELLO_IRQ_P0_REFCLK, \ 22280f8769bSWerner Lewis GIC_HIGHEST_SEC_PRIORITY, grp, GIC_INTR_CFG_LEVEL), \ 22380f8769bSWerner Lewis INTR_PROP_DESC(MORELLO_IRQ_P1_REFCLK, \ 22480f8769bSWerner Lewis GIC_HIGHEST_SEC_PRIORITY, grp, GIC_INTR_CFG_LEVEL) 22580f8769bSWerner Lewis 226dfd5bfb0SChandni Cherukuri #define PLAT_ARM_G0_IRQ_PROPS(grp) ARM_G0_IRQ_PROPS(grp) 227dfd5bfb0SChandni Cherukuri 228dfd5bfb0SChandni Cherukuri #define MORELLO_DEVICE_BASE ULL(0x08000000) 229dfd5bfb0SChandni Cherukuri #define MORELLO_DEVICE_SIZE ULL(0x48000000) 230dfd5bfb0SChandni Cherukuri 2314af53977SManoj Kumar /*Secure Watchdog Constants */ 2324af53977SManoj Kumar #define SBSA_SECURE_WDOG_BASE UL(0x2A480000) 2334af53977SManoj Kumar #define SBSA_SECURE_WDOG_TIMEOUT UL(1000) 2344af53977SManoj Kumar 235dfd5bfb0SChandni Cherukuri #define MORELLO_MAP_DEVICE MAP_REGION_FLAT( \ 236dfd5bfb0SChandni Cherukuri MORELLO_DEVICE_BASE, \ 237dfd5bfb0SChandni Cherukuri MORELLO_DEVICE_SIZE, \ 238dfd5bfb0SChandni Cherukuri MT_DEVICE | MT_RW | MT_SECURE) 239dfd5bfb0SChandni Cherukuri 240dfd5bfb0SChandni Cherukuri #define ARM_MAP_DRAM1 MAP_REGION_FLAT( \ 241dfd5bfb0SChandni Cherukuri ARM_DRAM1_BASE, \ 242dfd5bfb0SChandni Cherukuri ARM_DRAM1_SIZE, \ 243dfd5bfb0SChandni Cherukuri MT_MEMORY | MT_RW | MT_NS) 244dfd5bfb0SChandni Cherukuri 245dfd5bfb0SChandni Cherukuri /* GIC related constants */ 246dfd5bfb0SChandni Cherukuri #define PLAT_ARM_GICD_BASE UL(0x30000000) 247dfd5bfb0SChandni Cherukuri #define PLAT_ARM_GICC_BASE UL(0x2C000000) 248dfd5bfb0SChandni Cherukuri #define PLAT_ARM_GICR_BASE UL(0x300C0000) 249dfd5bfb0SChandni Cherukuri 2506c07a927SChandni Cherukuri /* Number of SCMI channels on the platform */ 2516c07a927SChandni Cherukuri #define PLAT_ARM_SCMI_CHANNEL_COUNT U(1) 2526c07a927SChandni Cherukuri 253cc266bcdSChandni Cherukuri /* Platform ID address */ 254cc266bcdSChandni Cherukuri #define SSC_VERSION (SSC_REG_BASE + SSC_VERSION_OFFSET) 255cc266bcdSChandni Cherukuri 256dfd5bfb0SChandni Cherukuri #endif /* PLATFORM_DEF_H */ 257