1*91f16700Schasinglulu /* 2*91f16700Schasinglulu * Copyright (c) 2015-2023, ARM Limited and Contributors. All rights reserved. 3*91f16700Schasinglulu * 4*91f16700Schasinglulu * Copyright (c) 2017-2023 Nuvoton Technology Corp. 5*91f16700Schasinglulu * 6*91f16700Schasinglulu * SPDX-License-Identifier: BSD-3-Clause 7*91f16700Schasinglulu */ 8*91f16700Schasinglulu 9*91f16700Schasinglulu #ifndef PLATFORM_DEF_H 10*91f16700Schasinglulu #define PLATFORM_DEF_H 11*91f16700Schasinglulu 12*91f16700Schasinglulu #include <arch.h> 13*91f16700Schasinglulu #include <common/interrupt_props.h> 14*91f16700Schasinglulu #include <common/tbbr/tbbr_img_def.h> 15*91f16700Schasinglulu #include <drivers/arm/gic_common.h> 16*91f16700Schasinglulu #include <lib/utils_def.h> 17*91f16700Schasinglulu #include <lib/xlat_tables/xlat_tables_defs.h> 18*91f16700Schasinglulu #include <npcm845x_arm_def.h> 19*91f16700Schasinglulu #include <plat/arm/common/smccc_def.h> 20*91f16700Schasinglulu #include <plat/common/common_def.h> 21*91f16700Schasinglulu 22*91f16700Schasinglulu #define VALUE_TO_STRING(x) #x 23*91f16700Schasinglulu #define VALUE(x) VALUE_TO_STRING(x) 24*91f16700Schasinglulu #define VAR_NAME_VALUE(var) #var "=" VALUE(var) 25*91f16700Schasinglulu 26*91f16700Schasinglulu #define PLATFORM_LINKER_FORMAT "elf64-littleaarch64" 27*91f16700Schasinglulu #define PLATFORM_LINKER_ARCH aarch64 28*91f16700Schasinglulu 29*91f16700Schasinglulu #define PLATFORM_STACK_SIZE 0x400 30*91f16700Schasinglulu 31*91f16700Schasinglulu #define PLATFORM_CORE_COUNT NPCM845x_PLATFORM_CORE_COUNT 32*91f16700Schasinglulu #define PLATFORM_CLUSTER_COUNT NPCM845x_CLUSTER_COUNT 33*91f16700Schasinglulu #define PLATFORM_MAX_CPU_PER_CLUSTER NPCM845x_MAX_CPU_PER_CLUSTER 34*91f16700Schasinglulu #define PLAT_PRIMARY_CPU NPCM845x_PLAT_PRIMARY_CPU 35*91f16700Schasinglulu #define PLATFORM_SYSTEM_COUNT NPCM845x_SYSTEM_COUNT 36*91f16700Schasinglulu 37*91f16700Schasinglulu /* Local power state for power domains in Run state. */ 38*91f16700Schasinglulu #define PLAT_LOCAL_STATE_RUN U(0) 39*91f16700Schasinglulu /* Local power state for retention. Valid only for CPU power domains */ 40*91f16700Schasinglulu #define PLAT_LOCAL_STATE_RET U(1) 41*91f16700Schasinglulu /* 42*91f16700Schasinglulu * Local power state for OFF/power-down. Valid for CPU and cluster power 43*91f16700Schasinglulu * domains. 44*91f16700Schasinglulu */ 45*91f16700Schasinglulu #define PLAT_LOCAL_STATE_OFF U(2) 46*91f16700Schasinglulu 47*91f16700Schasinglulu /* 48*91f16700Schasinglulu * This macro defines the deepest power down states possible. Any state ID 49*91f16700Schasinglulu * higher than this is invalid. 50*91f16700Schasinglulu */ 51*91f16700Schasinglulu #define PLAT_MAX_OFF_STATE PLAT_LOCAL_STATE_OFF 52*91f16700Schasinglulu #define PLAT_MAX_RET_STATE PLAT_LOCAL_STATE_RET 53*91f16700Schasinglulu 54*91f16700Schasinglulu #define PLAT_NUM_PWR_DOMAINS (PLATFORM_CLUSTER_COUNT + PLATFORM_CORE_COUNT) 55*91f16700Schasinglulu #define NPCM845x_MAX_PWR_LVL ARM_PWR_LVL1 56*91f16700Schasinglulu 57*91f16700Schasinglulu /* 58*91f16700Schasinglulu * Macros used to parse state information from State-ID if it is using the 59*91f16700Schasinglulu * recommended encoding for State-ID. 60*91f16700Schasinglulu */ 61*91f16700Schasinglulu #define PLAT_LOCAL_PSTATE_WIDTH 4 62*91f16700Schasinglulu #define PLAT_LOCAL_PSTATE_MASK ((1 << PLAT_LOCAL_PSTATE_WIDTH) - 1) 63*91f16700Schasinglulu 64*91f16700Schasinglulu /* 65*91f16700Schasinglulu * Required ARM standard platform porting definitions 66*91f16700Schasinglulu */ 67*91f16700Schasinglulu #define PLAT_ARM_CLUSTER_COUNT PLATFORM_CLUSTER_COUNT 68*91f16700Schasinglulu 69*91f16700Schasinglulu #define PLAT_NUM_PWR_DOMAINS (PLATFORM_CLUSTER_COUNT + PLATFORM_CORE_COUNT) 70*91f16700Schasinglulu #define PLAT_MAX_PWR_LVL NPCM845x_MAX_PWR_LVL 71*91f16700Schasinglulu 72*91f16700Schasinglulu #define PLAT_LOCAL_PSTATE_WIDTH 4 73*91f16700Schasinglulu #define PLAT_LOCAL_PSTATE_MASK ((1 << PLAT_LOCAL_PSTATE_WIDTH) - 1) 74*91f16700Schasinglulu 75*91f16700Schasinglulu #ifdef BL32_BASE 76*91f16700Schasinglulu 77*91f16700Schasinglulu #ifndef CONFIG_TARGET_ARBEL_PALLADIUM 78*91f16700Schasinglulu #define PLAT_ARM_TRUSTED_DRAM_BASE BL32_BASE 79*91f16700Schasinglulu #else 80*91f16700Schasinglulu #define PLAT_ARM_TRUSTED_DRAM_BASE BL32_BASE 81*91f16700Schasinglulu #endif /* CONFIG_TARGET_ARBEL_PALLADIUM */ 82*91f16700Schasinglulu 83*91f16700Schasinglulu #define PLAT_ARM_TRUSTED_DRAM_SIZE UL(0x02000000) /* 32 MB */ 84*91f16700Schasinglulu #endif /* BL32_BASE */ 85*91f16700Schasinglulu 86*91f16700Schasinglulu #define PWR_DOMAIN_AT_MAX_LVL U(1) 87*91f16700Schasinglulu 88*91f16700Schasinglulu #define PLAT_VIRT_ADDR_SPACE_SIZE (1ull << 32) 89*91f16700Schasinglulu #define PLAT_PHY_ADDR_SPACE_SIZE (1ull << 32) 90*91f16700Schasinglulu #define MAX_XLAT_TABLES 16 91*91f16700Schasinglulu #define PLAT_ARM_MMAP_ENTRIES 17 92*91f16700Schasinglulu 93*91f16700Schasinglulu #ifdef NPCM845X_DEBUG 94*91f16700Schasinglulu #define MAX_MMAP_REGIONS 8 95*91f16700Schasinglulu #define NPCM845X_TZ1_BASE 0xFFFB0000 96*91f16700Schasinglulu #endif /* NPCM845X_DEBUG */ 97*91f16700Schasinglulu 98*91f16700Schasinglulu #define FIQ_SMP_CALL_SGI 10 99*91f16700Schasinglulu 100*91f16700Schasinglulu /* (0x00040000) 128 KB, the rest 128K if it is non secured */ 101*91f16700Schasinglulu #define PLAT_ARM_TRUSTED_SRAM_SIZE UL(0x00020000) 102*91f16700Schasinglulu 103*91f16700Schasinglulu #define ARM_SHARED_RAM_SIZE UL(0x00001000) /* 4 KB */ 104*91f16700Schasinglulu 105*91f16700Schasinglulu /* UL(0xfffCE000) add calc ARM_TRUSTED_SRAM_BASE */ 106*91f16700Schasinglulu #define ARM_SHARED_RAM_BASE (BL31_BASE + 0x00020000 - ARM_SHARED_RAM_SIZE) 107*91f16700Schasinglulu 108*91f16700Schasinglulu /* The remaining Trusted SRAM is used to load the BL images */ 109*91f16700Schasinglulu #define ARM_BL_RAM_BASE (ARM_SHARED_RAM_BASE + ARM_SHARED_RAM_SIZE) 110*91f16700Schasinglulu 111*91f16700Schasinglulu /* 112*91f16700Schasinglulu * PLAT_ARM_TRUSTED_SRAM_SIZE is taken from platform_def.h 0x20000 113*91f16700Schasinglulu * because only half is secured in this specific implementation 114*91f16700Schasinglulu */ 115*91f16700Schasinglulu #define ARM_BL_RAM_SIZE (PLAT_ARM_TRUSTED_SRAM_SIZE - ARM_SHARED_RAM_SIZE) 116*91f16700Schasinglulu 117*91f16700Schasinglulu #if RESET_TO_BL31 118*91f16700Schasinglulu /* Size of Trusted SRAM - the first 4KB of shared memory */ 119*91f16700Schasinglulu #define PLAT_ARM_MAX_BL31_SIZE \ 120*91f16700Schasinglulu (PLAT_ARM_TRUSTED_SRAM_SIZE - ARM_SHARED_RAM_SIZE) 121*91f16700Schasinglulu #else 122*91f16700Schasinglulu /* 123*91f16700Schasinglulu * Since BL31 NOBITS overlays BL2 and BL1-RW, PLAT_ARM_MAX_BL31_SIZE 124*91f16700Schasinglulu * is calculated using the current BL31 PROGBITS debug size plus the sizes 125*91f16700Schasinglulu * of BL2 and BL1-RW 126*91f16700Schasinglulu */ 127*91f16700Schasinglulu #define PLAT_ARM_MAX_BL31_SIZE \ 128*91f16700Schasinglulu (PLAT_ARM_TRUSTED_SRAM_SIZE - ARM_SHARED_RAM_SIZE) 129*91f16700Schasinglulu #endif /* RESET_TO_BL31 */ 130*91f16700Schasinglulu /* 131*91f16700Schasinglulu * Load address of BL33 for this platform port 132*91f16700Schasinglulu */ 133*91f16700Schasinglulu #define PLAT_ARM_NS_IMAGE_BASE (ARM_DRAM1_BASE + UL(0x6208000)) 134*91f16700Schasinglulu 135*91f16700Schasinglulu #ifdef NPCM845X_DEBUG 136*91f16700Schasinglulu #define COUNTER_FREQUENCY 0x07735940 /* f/4 = 125MHz */ 137*91f16700Schasinglulu #endif /* NPCM845X_DEBUG */ 138*91f16700Schasinglulu 139*91f16700Schasinglulu #define COUNTER_FREQUENCY 0x0EE6B280 /* f/2 = 250MHz */ 140*91f16700Schasinglulu #define PLAT_ARM_NSTIMER_FRAME_ID U(1) 141*91f16700Schasinglulu 142*91f16700Schasinglulu /* GIC parameters */ 143*91f16700Schasinglulu 144*91f16700Schasinglulu /* Base compatible GIC memory map */ 145*91f16700Schasinglulu #define NT_GIC_BASE (0xDFFF8000) 146*91f16700Schasinglulu #define BASE_GICD_BASE (NT_GIC_BASE + 0x1000) 147*91f16700Schasinglulu #define BASE_GICC_BASE (NT_GIC_BASE + 0x2000) 148*91f16700Schasinglulu #define BASE_GICR_BASE (NT_GIC_BASE + 0x200000) 149*91f16700Schasinglulu #define BASE_GICH_BASE (NT_GIC_BASE + 0x4000) 150*91f16700Schasinglulu #define BASE_GICV_BASE (NT_GIC_BASE + 0x6000) 151*91f16700Schasinglulu 152*91f16700Schasinglulu #define DEVICE1_BASE BASE_GICD_BASE 153*91f16700Schasinglulu #define DEVICE1_SIZE 0x7000 154*91f16700Schasinglulu 155*91f16700Schasinglulu #ifdef NPCM845X_DEBUG 156*91f16700Schasinglulu /* ((BASE_GICR_BASE - BASE_GICD_BASE) + (PLATFORM_CORE_COUNT * 0x20000)) */ 157*91f16700Schasinglulu #define ARM_CPU_START_ADDRESS(m) UL(0xf0800e00 + 0x10 + m * 4) 158*91f16700Schasinglulu #endif /* NPCM845X_DEBUG */ 159*91f16700Schasinglulu 160*91f16700Schasinglulu #define PLAT_REG_BASE NPCM845x_REG_BASE 161*91f16700Schasinglulu #define PLAT_REG_SIZE NPCM845x_REG_SIZE 162*91f16700Schasinglulu 163*91f16700Schasinglulu /* MMU entry for internal (register) space access */ 164*91f16700Schasinglulu #define MAP_DEVICE0 \ 165*91f16700Schasinglulu MAP_REGION_FLAT(PLAT_REG_BASE, PLAT_REG_SIZE, MT_DEVICE | MT_RW | MT_NS) 166*91f16700Schasinglulu 167*91f16700Schasinglulu #define MAP_DEVICE1 \ 168*91f16700Schasinglulu MAP_REGION_FLAT(DEVICE1_BASE, DEVICE1_SIZE, \ 169*91f16700Schasinglulu MT_DEVICE | MT_RW | MT_SECURE) 170*91f16700Schasinglulu 171*91f16700Schasinglulu /* 172*91f16700Schasinglulu * Define a list of Group 1 Secure and Group 0 interrupt properties 173*91f16700Schasinglulu * as per GICv3 terminology. On a GICv2 system or mode, 174*91f16700Schasinglulu * the lists will be merged and treated as Group 0 interrupts. 175*91f16700Schasinglulu */ 176*91f16700Schasinglulu #define PLAT_ARM_GICD_BASE BASE_GICD_BASE 177*91f16700Schasinglulu #define PLAT_ARM_GICC_BASE BASE_GICC_BASE 178*91f16700Schasinglulu 179*91f16700Schasinglulu #define PLAT_ARM_G1S_IRQ_PROPS(grp) \ 180*91f16700Schasinglulu INTR_PROP_DESC(ARM_IRQ_SEC_PHY_TIMER, GIC_HIGHEST_SEC_PRIORITY, grp, \ 181*91f16700Schasinglulu GIC_INTR_CFG_LEVEL), \ 182*91f16700Schasinglulu INTR_PROP_DESC(ARM_IRQ_SEC_SGI_0, GIC_HIGHEST_SEC_PRIORITY, \ 183*91f16700Schasinglulu grp, GIC_INTR_CFG_EDGE), \ 184*91f16700Schasinglulu INTR_PROP_DESC(ARM_IRQ_SEC_SGI_1, GIC_HIGHEST_SEC_PRIORITY, \ 185*91f16700Schasinglulu grp, GIC_INTR_CFG_EDGE), \ 186*91f16700Schasinglulu INTR_PROP_DESC(ARM_IRQ_SEC_SGI_2, GIC_HIGHEST_SEC_PRIORITY, \ 187*91f16700Schasinglulu grp, GIC_INTR_CFG_EDGE), \ 188*91f16700Schasinglulu INTR_PROP_DESC(ARM_IRQ_SEC_SGI_3, GIC_HIGHEST_SEC_PRIORITY, \ 189*91f16700Schasinglulu grp, GIC_INTR_CFG_EDGE), \ 190*91f16700Schasinglulu INTR_PROP_DESC(ARM_IRQ_SEC_SGI_4, GIC_HIGHEST_SEC_PRIORITY, \ 191*91f16700Schasinglulu grp, GIC_INTR_CFG_EDGE), \ 192*91f16700Schasinglulu INTR_PROP_DESC(ARM_IRQ_SEC_SGI_5, GIC_HIGHEST_SEC_PRIORITY, \ 193*91f16700Schasinglulu grp, GIC_INTR_CFG_EDGE), \ 194*91f16700Schasinglulu INTR_PROP_DESC(ARM_IRQ_SEC_SGI_6, GIC_HIGHEST_SEC_PRIORITY, \ 195*91f16700Schasinglulu grp, GIC_INTR_CFG_EDGE), \ 196*91f16700Schasinglulu INTR_PROP_DESC(ARM_IRQ_SEC_SGI_7, GIC_HIGHEST_SEC_PRIORITY, \ 197*91f16700Schasinglulu grp, GIC_INTR_CFG_EDGE) 198*91f16700Schasinglulu 199*91f16700Schasinglulu #define PLAT_ARM_G0_IRQ_PROPS(grp) 200*91f16700Schasinglulu 201*91f16700Schasinglulu /* Required for compilation: */ 202*91f16700Schasinglulu 203*91f16700Schasinglulu /* 204*91f16700Schasinglulu * PLAT_ARM_MAX_BL1_RW_SIZE is calculated using the current BL1 RW debug size 205*91f16700Schasinglulu * plus a little space for growth. 206*91f16700Schasinglulu */ 207*91f16700Schasinglulu #define PLAT_ARM_MAX_BL1_RW_SIZE 0 /* UL(0xB000) */ 208*91f16700Schasinglulu #if USE_ROMLIB 209*91f16700Schasinglulu #define PLAT_ARM_MAX_ROMLIB_RW_SIZE UL(0x1000) 210*91f16700Schasinglulu #define PLAT_ARM_MAX_ROMLIB_RO_SIZE UL(0xe000) 211*91f16700Schasinglulu #define FVP_BL2_ROMLIB_OPTIMIZATION UL(0x6000) 212*91f16700Schasinglulu #else 213*91f16700Schasinglulu #define PLAT_ARM_MAX_ROMLIB_RW_SIZE UL(0) 214*91f16700Schasinglulu #define PLAT_ARM_MAX_ROMLIB_RO_SIZE UL(0) 215*91f16700Schasinglulu #define FVP_BL2_ROMLIB_OPTIMIZATION UL(0) 216*91f16700Schasinglulu #endif /* USE_ROMLIB */ 217*91f16700Schasinglulu 218*91f16700Schasinglulu /* 219*91f16700Schasinglulu * PLAT_ARM_MAX_BL2_SIZE is calculated using the current BL2 debug size 220*91f16700Schasinglulu * plus a little space for growth. 221*91f16700Schasinglulu */ 222*91f16700Schasinglulu #if TRUSTED_BOARD_BOOT 223*91f16700Schasinglulu #define PLAT_ARM_MAX_BL2_SIZE (UL(0x1D000) * FVP_BL2_ROMLIB_OPTIMIZATION) 224*91f16700Schasinglulu #else 225*91f16700Schasinglulu /* (UL(0x13000) - FVP_BL2_ROMLIB_OPTIMIZATION) */ 226*91f16700Schasinglulu #define PLAT_ARM_MAX_BL2_SIZE 0 227*91f16700Schasinglulu #endif /* TRUSTED_BOARD_BOOT */ 228*91f16700Schasinglulu 229*91f16700Schasinglulu #undef NPCM_PRINT_ONCE 230*91f16700Schasinglulu #ifdef NPCM_PRINT_ONCE 231*91f16700Schasinglulu #define PRINT_ONLY_ONCE 232*91f16700Schasinglulu #pragma message(VAR_NAME_VALUE(ARM_AP_TZC_DRAM1_BASE)) 233*91f16700Schasinglulu #pragma message(VAR_NAME_VALUE(BL31_BASE)) 234*91f16700Schasinglulu #pragma message(VAR_NAME_VALUE(BL31_LIMIT)) 235*91f16700Schasinglulu #pragma message(VAR_NAME_VALUE(PLAT_ARM_MAX_BL31_SIZE)) 236*91f16700Schasinglulu #pragma message(VAR_NAME_VALUE(BL32_BASE)) 237*91f16700Schasinglulu #pragma message(VAR_NAME_VALUE(BL32_LIMIT)) 238*91f16700Schasinglulu #pragma message(VAR_NAME_VALUE(PLAT_ARM_MAX_BL32_SIZE) 239*91f16700Schasinglulu #pragma message(VAR_NAME_VALUE(SPMD_SPM_AT_SEL2_KKO)) 240*91f16700Schasinglulu #endif /* NPCM_PRINT_ONCE */ 241*91f16700Schasinglulu 242*91f16700Schasinglulu #define MAX_IO_DEVICES 4 243*91f16700Schasinglulu #define MAX_IO_HANDLES 4 244*91f16700Schasinglulu 245*91f16700Schasinglulu #define PLAT_ARM_FIP_BASE 0x0 246*91f16700Schasinglulu #define PLAT_ARM_FIP_MAX_SIZE PLAT_ARM_MAX_BL31_SIZE 247*91f16700Schasinglulu 248*91f16700Schasinglulu #define PLAT_ARM_BOOT_UART_BASE 0xF0000000 249*91f16700Schasinglulu #define PLAT_ARM_BOOT_UART_CLK_IN_HZ 115200 250*91f16700Schasinglulu #define PLAT_ARM_RUN_UART_BASE 0xF0000000 251*91f16700Schasinglulu #define PLAT_ARM_RUN_UART_CLK_IN_HZ 115200 252*91f16700Schasinglulu #define PLAT_ARM_CRASH_UART_BASE 0xF0000000 253*91f16700Schasinglulu #define PLAT_ARM_CRASH_UART_CLK_IN_HZ 115200 254*91f16700Schasinglulu 255*91f16700Schasinglulu /* 256*91f16700Schasinglulu * Mailbox to control the secondary cores.All secondary cores are held in a wait 257*91f16700Schasinglulu * loop in cold boot. To release them perform the following steps (plus any 258*91f16700Schasinglulu * additional barriers that may be needed): 259*91f16700Schasinglulu * 260*91f16700Schasinglulu * uint64_t *entrypoint = (uint64_t *)PLAT_NPCM_TM_ENTRYPOINT; 261*91f16700Schasinglulu * *entrypoint = ADDRESS_TO_JUMP_TO; 262*91f16700Schasinglulu * 263*91f16700Schasinglulu * uint64_t *mbox_entry = (uint64_t *)PLAT_NPCM_TM_HOLD_BASE; 264*91f16700Schasinglulu * mbox_entry[cpu_id] = PLAT_NPCM_TM_HOLD_BASE; 265*91f16700Schasinglulu * 266*91f16700Schasinglulu * sev(); 267*91f16700Schasinglulu */ 268*91f16700Schasinglulu #define PLAT_NPCM_TRUSTED_MAILBOX_BASE ARM_SHARED_RAM_BASE 269*91f16700Schasinglulu 270*91f16700Schasinglulu /* The secure entry point to be used on warm reset by all CPUs. */ 271*91f16700Schasinglulu #define PLAT_NPCM_TM_ENTRYPOINT PLAT_NPCM_TRUSTED_MAILBOX_BASE 272*91f16700Schasinglulu #define PLAT_NPCM_TM_ENTRYPOINT_SIZE ULL(8) 273*91f16700Schasinglulu 274*91f16700Schasinglulu /* Hold entries for each CPU. */ 275*91f16700Schasinglulu #define PLAT_NPCM_TM_HOLD_BASE \ 276*91f16700Schasinglulu (PLAT_NPCM_TM_ENTRYPOINT + PLAT_NPCM_TM_ENTRYPOINT_SIZE) 277*91f16700Schasinglulu #define PLAT_NPCM_TM_HOLD_ENTRY_SIZE ULL(8) 278*91f16700Schasinglulu #define PLAT_NPCM_TM_HOLD_SIZE \ 279*91f16700Schasinglulu (PLAT_NPCM_TM_HOLD_ENTRY_SIZE * PLATFORM_CORE_COUNT) 280*91f16700Schasinglulu #define PLAT_NPCM_TRUSTED_NOTIFICATION_BASE \ 281*91f16700Schasinglulu (PLAT_NPCM_TM_ENTRYPOINT_SIZE + PLAT_NPCM_TM_HOLD_SIZE) 282*91f16700Schasinglulu 283*91f16700Schasinglulu #define PLAT_NPCM_TRUSTED_NOTIFICATION_ENTRY_SIZE ULL(8) 284*91f16700Schasinglulu 285*91f16700Schasinglulu #define PLAT_NPCM_TRUSTED_NOTIFICATION_SIZE \ 286*91f16700Schasinglulu (PLAT_NPCM_TRUSTED_NOTIFICATION_ENTRY_SIZE * PLATFORM_CORE_COUNT) 287*91f16700Schasinglulu 288*91f16700Schasinglulu #define PLAT_NPCM_TRUSTED_MAILBOX_SIZE \ 289*91f16700Schasinglulu (PLAT_NPCM_TM_ENTRYPOINT_SIZE + PLAT_NPCM_TM_HOLD_SIZE + \ 290*91f16700Schasinglulu PLAT_NPCM_TRUSTED_NOTIFICATION_ENTRY_SIZE) 291*91f16700Schasinglulu 292*91f16700Schasinglulu #define PLAT_NPCM_TM_HOLD_STATE_WAIT ULL(0) 293*91f16700Schasinglulu #define PLAT_NPCM_TM_HOLD_STATE_GO ULL(1) 294*91f16700Schasinglulu #define PLAT_NPCM_TM_HOLD_STATE_BSP_OFF ULL(2) 295*91f16700Schasinglulu 296*91f16700Schasinglulu #define PLAT_NPCM_TM_NOTIFICATION_START ULL(0xAA) 297*91f16700Schasinglulu #define PLAT_NPCM_TM_NOTIFICATION_BR ULL(0xCC) 298*91f16700Schasinglulu 299*91f16700Schasinglulu #ifdef NPCM845X_DEBUG 300*91f16700Schasinglulu #define PLAT_ARM_TRUSTED_MAILBOX_BASE 0xfffB0000 301*91f16700Schasinglulu #endif /* NPCM845X_DEBUG */ 302*91f16700Schasinglulu 303*91f16700Schasinglulu #endif /* PLATFORM_DEF_H */ 304