blob: dd20d43a14916ab62a51908871bd7a21cd56dbcd [file] [log] [blame]
/*
* Copyright 2018-2020 NXP
*
* SPDX-License-Identifier: BSD-3-Clause
*
*/
#ifndef BL31_DATA_H
#define BL31_DATA_H
#define SECURE_DATA_BASE NXP_OCRAM_ADDR
#define SECURE_DATA_SIZE NXP_OCRAM_SIZE
#define SECURE_DATA_TOP (SECURE_DATA_BASE + SECURE_DATA_SIZE)
#define SMC_REGION_SIZE 0x80
#define SMC_GLBL_BASE (SECURE_DATA_TOP - SMC_REGION_SIZE)
#define BC_PSCI_DATA_SIZE 0xC0
#define BC_PSCI_BASE (SMC_GLBL_BASE - BC_PSCI_DATA_SIZE)
#define SECONDARY_TOP BC_PSCI_BASE
#define SEC_PSCI_DATA_SIZE 0xC0
#define SEC_REGION_SIZE SEC_PSCI_DATA_SIZE
/* SMC global data */
#define BOOTLOC_OFFSET 0x0
#define BOOT_SVCS_OSET 0x8
/* offset to prefetch disable mask */
#define PREFETCH_DIS_OFFSET 0x10
/* must reference last smc global entry */
#define LAST_SMC_GLBL_OFFSET 0x18
#define SMC_TASK_OFFSET 0xC
#define TSK_START_OFFSET 0x0
#define TSK_DONE_OFFSET 0x4
#define TSK_CORE_OFFSET 0x8
#define SMC_TASK1_BASE (SMC_GLBL_BASE + 32)
#define SMC_TASK2_BASE (SMC_TASK1_BASE + SMC_TASK_OFFSET)
#define SMC_TASK3_BASE (SMC_TASK2_BASE + SMC_TASK_OFFSET)
#define SMC_TASK4_BASE (SMC_TASK3_BASE + SMC_TASK_OFFSET)
/* psci data area offsets */
#define CORE_STATE_DATA 0x0
#define SPSR_EL3_DATA 0x8
#define CNTXT_ID_DATA 0x10
#define START_ADDR_DATA 0x18
#define LINK_REG_DATA 0x20
#define GICC_CTLR_DATA 0x28
#define ABORT_FLAG_DATA 0x30
#define SCTLR_DATA 0x38
#define CPUECTLR_DATA 0x40
#define AUX_01_DATA 0x48 /* usage defined per SoC */
#define AUX_02_DATA 0x50 /* usage defined per SoC */
#define AUX_03_DATA 0x58 /* usage defined per SoC */
#define AUX_04_DATA 0x60 /* usage defined per SoC */
#define AUX_05_DATA 0x68 /* usage defined per SoC */
#define AUX_06_DATA 0x70 /* usage defined per SoC */
#define AUX_07_DATA 0x78 /* usage defined per SoC */
#define SCR_EL3_DATA 0x80
#define HCR_EL2_DATA 0x88
#endif /* BL31_DATA_H */