1 /*
2  * Arm SCP/MCP Software
3  * Copyright (c) 2019-2021, Arm Limited and Contributors. All rights reserved.
4  *
5  * SPDX-License-Identifier: BSD-3-Clause
6  */
7 
8 #ifndef MOD_JUNO_ROM_H
9 #define MOD_JUNO_ROM_H
10 
11 #include <fwk_id.h>
12 #include <fwk_module_idx.h>
13 
14 #include <stddef.h>
15 #include <stdint.h>
16 
17 /*!
18  * \addtogroup GroupJunoModule Juno Product Modules
19  * \{
20  */
21 
22 /*!
23  * \defgroup GroupJunoROM Juno ROM
24  * \{
25  */
26 
27 /*!
28  * \brief Event indices.
29  */
30 enum mod_juno_rom_event_idx {
31     /*! 'Run' event */
32     MOD_JUNO_ROM_EVENT_IDX_RUN,
33 
34     /*! Number of defined events */
35     MOD_JUNO_ROM_EVENT_COUNT,
36 };
37 
38 /*!
39  * \brief 'Run' event identifier.
40  */
41 static const fwk_id_t mod_juno_rom_event_id_run =
42     FWK_ID_EVENT_INIT(FWK_MODULE_IDX_JUNO_ROM, MOD_JUNO_ROM_EVENT_IDX_RUN);
43 
44 /*!
45  * \brief Notification indices.
46  */
47 enum mod_juno_rom_notification_idx {
48     /*! 'SYSTOP ON' notification */
49     MOD_JUNO_ROM_NOTIFICATION_IDX_SYSTOP,
50 
51     /*! Number of defined notifications */
52     MOD_JUNO_ROM_NOTIFICATION_COUNT,
53 };
54 
55 /*!
56  * \brief 'SYSTOP ON' notification identifier.
57  */
58 static const fwk_id_t mod_juno_rom_notification_id_systop =
59     FWK_ID_NOTIFICATION_INIT(
60         FWK_MODULE_IDX_JUNO_ROM,
61         MOD_JUNO_ROM_NOTIFICATION_IDX_SYSTOP);
62 
63 /*!
64  * \brief Module configuration.
65  */
66 struct mod_juno_rom_config {
67     /*! Base address of the AP context area */
68     uintptr_t ap_context_base;
69 
70     /*! Size of the AP context area */
71     size_t ap_context_size;
72 
73     /*! Base address of the RAM firmware image */
74     uintptr_t ramfw_base;
75 };
76 
77 /*!
78  * \}
79  */
80 
81 /*!
82  * \}
83  */
84 
85 #endif /* MOD_JUNO_ROM_H */
86