1 /*
2  * Arm SCP/MCP Software
3  * Copyright (c) 2020-2021, Arm Limited and Contributors. All rights reserved.
4  *
5  * SPDX-License-Identifier: BSD-3-Clause
6  *
7  * Description:
8  *     MORELLO System Support
9  */
10 
11 #ifndef MOD_MORELLO_SYSTEM_H
12 #define MOD_MORELLO_SYSTEM_H
13 
14 /*!
15  * \addtogroup GroupMORELLOModule MORELLO Product Modules
16  * \{
17  */
18 
19 /*!
20  * \defgroup GroupMORELLOSystem MORELLO System Support
21  * \{
22  */
23 
24 /*!
25  * \brief MORELLO system macro definitions.
26  */
27 
28 /*! Offset of the Trusted SRAM between AP and SCP Address Space*/
29 #define AP_SCP_SRAM_OFFSET UINT32_C(0xA0000000)
30 
31 /*! Address translation enable bit */
32 #define ADDR_TRANS_EN UINT32_C(0x1)
33 
34 
35 /*!
36  * Offset of NIC-400 security 0 register for
37  * non-secure CoreSight debug access
38  */
39 #define NIC_400_SEC_0_CSAPBM_OFFSET UINT32_C(0x2A10001C)
40 
41 /*!
42  * \brief API indices.
43  */
44 enum mod_morello_system_api_idx {
45     /*! API index for the driver interface of the system_power module */
46     MOD_MORELLO_SYSTEM_API_IDX_SYSTEM_POWER_DRIVER,
47 
48     /*! API index for AP memory access */
49     MOD_MORELLO_SYSTEM_API_IDX_AP_MEMORY_ACCESS,
50 
51     /*! API index for getting chip information */
52     MOD_MORELLO_SYSTEM_API_IDX_CHIPINFO,
53 
54     /*! Number of exposed interfaces */
55     MOD_MORELLO_SYSTEM_API_COUNT,
56 };
57 
58 /*!
59  * \brief APIs to enable/disable access AP memory in 1MB window.
60  */
61 struct mod_morello_system_ap_memory_access_api {
62     /*!
63      * \brief Pointer to function that enables windowed access to AP memory.
64      *
65      * \param addr Base address of the 1MB AP memory window.
66      *
67      * \retval void.
68      */
69     void (*enable_ap_memory_access)(uint32_t addr);
70 
71     /*!
72      * \brief Pointer to function that disables windowed access to AP memory.
73      *
74      * \retval void.
75      */
76     void (*disable_ap_memory_access)(void);
77 };
78 
79 /*!
80  * \}
81  */
82 
83 /*!
84  * \}
85  */
86 
87 #endif /* MOD_MORELLO_SYSTEM_H */
88