95 lines
2.9 KiB
C
95 lines
2.9 KiB
C
/*
|
|
* Copyright (c) 2018, Arm Limited. All rights reserved.
|
|
*
|
|
* SPDX-License-Identifier: BSD-3-Clause
|
|
*/
|
|
|
|
#ifndef SPM_RES_DESC_DEFS_H
|
|
#define SPM_RES_DESC_DEFS_H
|
|
|
|
#include <lib/utils_def.h>
|
|
|
|
/*******************************************************************************
|
|
* Attribute Section
|
|
******************************************************************************/
|
|
|
|
#define RD_ATTR_TYPE_UP_MIGRATABLE U(0)
|
|
#define RD_ATTR_TYPE_UP_PINNED U(2)
|
|
#define RD_ATTR_TYPE_MP U(1)
|
|
|
|
#define RD_ATTR_RUNTIME_SEL0 U(0)
|
|
#define RD_ATTR_RUNTIME_SEL1 U(1)
|
|
|
|
#define RD_ATTR_INIT_ONLY U(0)
|
|
#define RD_ATTR_RUNTIME U(1)
|
|
|
|
#define RD_ATTR_PANIC_RESTART U(0)
|
|
#define RD_ATTR_PANIC_ONESHOT U(1)
|
|
|
|
#define RD_ATTR_XLAT_GRANULE_4KB U(0)
|
|
#define RD_ATTR_XLAT_GRANULE_16KB U(1)
|
|
#define RD_ATTR_XLAT_GRANULE_64KB U(2)
|
|
|
|
/*******************************************************************************
|
|
* Memory Region Section
|
|
******************************************************************************/
|
|
|
|
#define RD_MEM_REGION_NAME_LEN U(32)
|
|
|
|
#define RD_MEM_DEVICE U(0)
|
|
#define RD_MEM_NORMAL_CODE U(1)
|
|
#define RD_MEM_NORMAL_DATA U(2)
|
|
#define RD_MEM_NORMAL_BSS U(3)
|
|
#define RD_MEM_NORMAL_RODATA U(4)
|
|
#define RD_MEM_NORMAL_SPM_SP_SHARED_MEM U(5)
|
|
#define RD_MEM_NORMAL_CLIENT_SHARED_MEM U(6)
|
|
#define RD_MEM_NORMAL_MISCELLANEOUS U(7)
|
|
|
|
#define RD_MEM_MASK U(15)
|
|
|
|
#define RD_MEM_IS_PIE (U(1) << 4)
|
|
|
|
/*******************************************************************************
|
|
* Notification Section
|
|
******************************************************************************/
|
|
|
|
#define RD_NOTIF_TYPE_PLATFORM (U(0) << 31)
|
|
#define RD_NOTIF_TYPE_INTERRUPT (U(1) << 31)
|
|
|
|
#define RD_NOTIF_PLAT_ID_MASK U(0xFFFF)
|
|
#define RD_NOTIF_PLAT_ID_SHIFT U(0)
|
|
|
|
#define RD_NOTIF_PLATFORM(id) \
|
|
(RD_NOTIF_TYPE_PLATFORM \
|
|
| (((id) & RD_NOTIF_PLAT_ID_MASK) << RD_NOTIF_PLAT_ID_SHIFT))
|
|
|
|
#define RD_NOTIF_IRQ_NUM_MASK U(0xFFFF)
|
|
#define RD_NOTIF_IRQ_NUM_SHIFT U(0)
|
|
#define RD_NOTIF_IRQ_PRIO_MASK U(0xFF)
|
|
#define RD_NOTIF_IRQ_PRIO_SHIFT U(16)
|
|
|
|
#define RD_NOTIF_IRQ_EDGE_FALLING U(0)
|
|
#define RD_NOTIF_IRQ_EDGE_RISING U(2)
|
|
#define RD_NOTIF_IRQ_LEVEL_LOW U(1)
|
|
#define RD_NOTIF_IRQ_LEVEL_HIGH U(3)
|
|
#define RD_NOTIF_IRQ_TRIGGER_SHIFT U(24)
|
|
|
|
#define RD_NOTIF_IRQ(num, prio, trig) \
|
|
(RD_NOTIF_TYPE_IRQ \
|
|
| (((num) & RD_NOTIF_IRQ_NUM_MASK) << RD_NOTIF_IRQ_NUM_SHIFT) \
|
|
| (((prio) & RD_NOTIF_IRQ_PRIO_MASK) << RD_NOTIF_IRQ_PRIO_SHIFT) \
|
|
| (((trig) << RD_NOTIF_IRQ_TRIGGER_SHIFT)))
|
|
|
|
/*******************************************************************************
|
|
* Service Description Section
|
|
******************************************************************************/
|
|
|
|
#define RD_SERV_ACCESS_SECURE (U(1) << 0)
|
|
#define RD_SERV_ACCESS_EL3 (U(1) << 1)
|
|
#define RD_SERV_ACCESS_NORMAL (U(1) << 2)
|
|
|
|
#define RD_SERV_SUPPORT_BLOCKING (U(1) << 0)
|
|
#define RD_SERV_SUPPORT_NON_BLOCKING (U(1) << 0)
|
|
|
|
#endif /* SPM_RES_DESC_DEFS_H */
|