include: Add AM65X specific headers corresponding to SYSFW
[processor-firmware/system-firmware-image-gen.git] / include / soc / am65x / resasg_types.h
1 /*
2  * K3 System Firmware Board Configuration Data Definitions
3  *
4  * Copyright (C) 2019 Texas Instruments Incorporated - http://www.ti.com/
5  *
6  * Redistribution and use in source and binary forms, with or without
7  * modification, are permitted provided that the following conditions
8  * are met:
9  *
10  *    Redistributions of source code must retain the above copyright
11  *    notice, this list of conditions and the following disclaimer.
12  *
13  *    Redistributions in binary form must reproduce the above copyright
14  *    notice, this list of conditions and the following disclaimer in the
15  *    documentation and/or other materials provided with the
16  *    distribution.
17  *
18  *    Neither the name of Texas Instruments Incorporated nor the names of
19  *    its contributors may be used to endorse or promote products derived
20  *    from this software without specific prior written permission.
21  *
22  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
23  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
24  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
25  * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
26  * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
27  * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
28  * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
29  * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
30  * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
31  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
32  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
33  */
35 #ifndef RESASG_TYPES_H
36 #define RESASG_TYPES_H
38 /**
39  * Resource assignment type shift
40  */
41 #define RESASG_TYPE_SHIFT       (0x0006U)
42 /**
43  * Resource assignment type mask
44  */
45 #define RESASG_TYPE_MASK        (0xFFC0U)
47 /**
48  * Resource assignment subtype shift
49  */
50 #define RESASG_SUBTYPE_SHIFT    (0x0000U)
51 /**
52  * Resource assignment subtype mask
53  */
54 #define RESASG_SUBTYPE_MASK     (0x003FU)
56 /**
57  * Macro to create unique resource assignment types using type and subtype
58  */
59 #define RESASG_UTYPE(type, subtype) \
60         (((type << RESASG_TYPE_SHIFT) & RESASG_TYPE_MASK) | \
61          ((subtype << RESASG_SUBTYPE_SHIFT) & RESASG_SUBTYPE_MASK))
63 /** Main domain Navigator Subsystem UDMASS IA0 */
64 #define RESASG_TYPE_MAIN_NAV_UDMASS_IA0   (0x000U)
65 /** Main domain Navigator Subsystem MODSS IA0 */
66 #define RESASG_TYPE_MAIN_NAV_MODSS_IA0   (0x001U)
67 /** Main domain Navigator Subsystem MODSS IA1 */
68 #define RESASG_TYPE_MAIN_NAV_MODSS_IA1   (0x002U)
69 /** MCU domain Navigator Subsystem UDMASS IA0 */
70 #define RESASG_TYPE_MCU_NAV_UDMASS_IA0   (0x003U)
71 /** Main domain Navigator Subsystem MCRC */
72 #define RESASG_TYPE_MAIN_NAV_MCRC   (0x004U)
73 /** MCU domain Navigator Subsystem MCRC */
74 #define RESASG_TYPE_MCU_NAV_MCRC   (0x005U)
75 /** Main domain Navigator Subsystem UDMAP */
76 #define RESASG_TYPE_MAIN_NAV_UDMAP   (0x006U)
77 /** MCU domain Navigator Subsystem UDMAP */
78 #define RESASG_TYPE_MCU_NAV_UDMAP   (0x007U)
79 /** MSMC */
80 #define RESASG_TYPE_MSMC   (0x008U)
81 /** Main domain Navigator Subsystem Ring Accelerator */
82 #define RESASG_TYPE_MAIN_NAV_RA   (0x009U)
83 /** MCU domain Navigator Subsystem Ring Accelerator */
84 #define RESASG_TYPE_MCU_NAV_RA   (0x00AU)
85 /** A53 GIC IRQ (input interrupts) */
86 #define RESASG_TYPE_GIC_IRQ   (0x00BU)
87 /** Pulsar core 0 IRQ (input interrupts) */
88 #define RESASG_TYPE_PULSAR_C0_IRQ   (0x00CU)
89 /** Pulsar core 1 IRQ (input interrupts) */
90 #define RESASG_TYPE_PULSAR_C1_IRQ   (0x00DU)
91 /** ICSSG 0 IRQ (input interrupts) */
92 #define RESASG_TYPE_ICSSG0_IRQ   (0x00EU)
93 /** ICSSG 1 IRQ (input interrupts) */
94 #define RESASG_TYPE_ICSSG1_IRQ   (0x00FU)
95 /** ICSSG 2 IRQ (input interrupts) */
96 #define RESASG_TYPE_ICSSG2_IRQ   (0x010U)
97 /** Maximum RESASG_TYPE value.  DO NOT create types with a value
98  *  greater than this */
99 #define RESASG_TYPE_MAX   (0x3FFU)
101 /** Main Nav UDMASS IA0 virtual interrupts */
102 #define RESASG_SUBTYPE_MAIN_NAV_UDMASS_IA0_VINT   (0x00U)
103 /** Main Nav UDMASS IA0 source events (SEVI) */
104 #define RESASG_SUBTYPE_MAIN_NAV_UDMASS_IA0_SEVI   (0x01U)
105 /** Main Nav UDMASS IA0 multicast events (MEVI) */
106 #define RESASG_SUBTYPE_MAIN_NAV_UDMASS_IA0_MEVI   (0x02U)
107 /** Main Nav UDMASS IA0 global counter events (GEVI) */
108 #define RESASG_SUBTYPE_MAIN_NAV_UDMASS_IA0_GEVI   (0x03U)
109 /** Main Nav Total UDMASS IA0 subtypes. Update when subtypes added */
110 #define RESASG_SUBTYPE_MAIN_NAV_UDMASS_IA0_CNT   (0x04U)
112 /** Main Nav MODSS IA0 virtual interrupts */
113 #define RESASG_SUBTYPE_MAIN_NAV_MODSS_IA0_VINT   (0x00U)
114 /** Main Nav MODSS IA0 single events (SEVI) */
115 #define RESASG_SUBTYPE_MAIN_NAV_MODSS_IA0_SEVI   (0x01U)
116 /** Total Main Nav MODSS IA0 subtypes. Update when subtypes added */
117 #define RESASG_SUBTYPE_MAIN_NAV_MODSS_IA0_CNT   (0x02U)
119 /** Main Nav MODSS IA1 virtual interrupts */
120 #define RESASG_SUBTYPE_MAIN_NAV_MODSS_IA1_VINT   (0x00U)
121 /** Main Nav MODSS IA1 single events (SEVI) */
122 #define RESASG_SUBTYPE_MAIN_NAV_MODSS_IA1_SEVI   (0x01U)
123 /** Total Main Nav MODSS IA1 subtypes. Update when subtypes added */
124 #define RESASG_SUBTYPE_MAIN_NAV_MODSS_IA1_CNT   (0x02U)
126 /** MCU Nav UDMASS IA0 virtual interrupts */
127 #define RESASG_SUBTYPE_MCU_NAV_UDMASS_IA0_VINT   (0x00U)
128 /** MCU Nav UDMASS IA0 single events (SEVI) */
129 #define RESASG_SUBTYPE_MCU_NAV_UDMASS_IA0_SEVI   (0x01U)
130 /** MCU Nav UDMASS IA0 multicast events (MEVI) */
131 #define RESASG_SUBTYPE_MCU_NAV_UDMASS_IA0_MEVI   (0x02U)
132 /** MCU Nav UDMASS IA0 global counter events (GEVI) */
133 #define RESASG_SUBTYPE_MCU_NAV_UDMASS_IA0_GEVI   (0x03U)
134 /** Total MCU Nav UDMASS IA0 subtypes. Update when subtypes added */
135 #define RESASG_SUBTYPE_MCU_NAV_UDMASS_IA0_CNT   (0x04U)
137 /** Main Nav MCRC local events (LEVI) */
138 #define RESASG_SUBTYPE_MAIN_NAV_MCRC_LEVI   (0x00U)
139 /** Total Main Nav MCRC subtypes. Update when subtypes added */
140 #define RESASG_SUBTYPE_MAIN_NAV_MCRC_CNT   (0x01U)
142 /** MCU Nav MCRC local events (LEVI) */
143 #define RESASG_SUBTYPE_MCU_NAV_MCRC_LEVI   (0x00U)
144 /** Total MCU Nav MCRC subtypes. Update when subtypes are added */
145 #define RESASG_SUBTYPE_MCU_NAV_MCRC_CNT   (0x01U)
147 /** Main Nav UDMAP trigger events */
148 #define RESASG_SUBTYPE_MAIN_NAV_UDMAP_TRIGGER   (0x00U)
149 /** Nav UDMAP driver high capacity transmit channels */
150 #define RESASG_SUBTYPE_MAIN_NAV_UDMAP_TX_HCHAN   (0x01U)
151 /** Main Nav UDMAP driver standard transmit channels */
152 #define RESASG_SUBTYPE_MAIN_NAV_UDMAP_TX_CHAN   (0x02U)
153 /** Main Nav UDMAP driver external transmit channels */
154 #define RESASG_SUBTYPE_MAIN_NAV_UDMAP_TX_ECHAN   (0x03U)
155 /** Main Nav UDMAP driver high capacity receive channels */
156 #define RESASG_SUBTYPE_MAIN_NAV_UDMAP_RX_HCHAN   (0x04U)
157 /** Main Nav UDMAP driver standard receive channels */
158 #define RESASG_SUBTYPE_MAIN_NAV_UDMAP_RX_CHAN   (0x05U)
159 /** Main Nav UDMAP driver common receive flows used by receive channel
160  *  RCHAN_RFLOW_RNG parameters */
161 #define RESASG_SUBTYPE_MAIN_NAV_UDMAP_RX_FLOW_COMMON   (0x06U)
162 /** Main Nav UDMAP driver global config invalid flow OES register */
163 #define RESASG_SUBTYPE_MAIN_NAV_UDMAP_INVALID_FLOW_OES   (0x07U)
164 /** Main Nav UDMAP driver global config register region rd/wr access */
165 #define RESASG_SUBTYPE_MAIN_NAV_UDMAP_GCFG   (0x08U)
166 /** Total Main Nav UDMAP subtypes. Update when subtypes added */
167 #define RESASG_SUBTYPE_MAIN_NAV_UDMAP_CNT   (0x09U)
169 /** MCU Nav UDMAP trigger events */
170 #define RESASG_SUBTYPE_MCU_NAV_UDMAP_TRIGGER   (0x00U)
171 /** MCU Nav UDMAP driver high capacity transmit channels */
172 #define RESASG_SUBTYPE_MCU_NAV_UDMAP_TX_HCHAN   (0x01U)
173 /** MCU Nav UDMAP driver standard transmit channels */
174 #define RESASG_SUBTYPE_MCU_NAV_UDMAP_TX_CHAN   (0x02U)
175 /** MCU Nav UDMAP driver high capacity receive channels */
176 #define RESASG_SUBTYPE_MCU_NAV_UDMAP_RX_HCHAN   (0x03U)
177 /** MCU Nav UDMAP driver standard receive channels */
178 #define RESASG_SUBTYPE_MCU_NAV_UDMAP_RX_CHAN   (0x04U)
179 /** MCU Nav UDMAP driver common receive flows used by receive channel
180  *  RCHAN_RFLOW_RNG parameters */
181 #define RESASG_SUBTYPE_MCU_NAV_UDMAP_RX_FLOW_COMMON   (0x05U)
182 /** MCU Nav UDMAP driver global config invalid flow OES register */
183 #define RESASG_SUBTYPE_MCU_NAV_UDMAP_INVALID_FLOW_OES   (0x06U)
184 /** MCU Nav UDMAP driver global config register region rd/wr access */
185 #define RESASG_SUBTYPE_MCU_NAV_UDMAP_GCFG   (0x07U)
186 /** Total MCU Nav UDMAP subtypes. Update when subtypes added */
187 #define RESASG_SUBTYPE_MCU_NAV_UDMAP_CNT   (0x08U)
189 /** MSMC DRU events */
190 #define RESASG_SUBTYPE_MSMC_DRU   (0x00U)
191 /** Total MSMC subtypes. Update when subtypes added */
192 #define RESASG_SUBTYPE_MSMC_CNT   (0x01U)
194 /** Main Nav RA driver UDMAP tx rings */
195 #define RESASG_SUBTYPE_MAIN_NAV_RA_RING_UDMAP_TX   (0x00U)
196 /** Main Nav RA driver UDMAP rx rings */
197 #define RESASG_SUBTYPE_MAIN_NAV_RA_RING_UDMAP_RX   (0x01U)
198 /** Main Nav RA driver general purpose rings */
199 #define RESASG_SUBTYPE_MAIN_NAV_RA_RING_GP   (0x02U)
200 /** Main Nav RA driver global config error OES register */
201 #define RESASG_SUBTYPE_MAIN_NAV_RA_ERROR_OES   (0x03U)
202 /** Main Nav RA driver ring virtids */
203 #define RESASG_SUBTYPE_MAIN_NAV_RA_VIRTID   (0x04U)
204 /** Total Main Nav RA subtypes. Update when subtypes are added */
205 #define RESASG_SUBTYPE_MAIN_NAV_RA_CNT   (0x05U)
207 /** MCU Nav RA driver UDMAP tx rings */
208 #define RESASG_SUBTYPE_MCU_NAV_RA_RING_UDMAP_TX   (0x00U)
209 /** MCU Nav RA driver UDMAP rx rings */
210 #define RESASG_SUBTYPE_MCU_NAV_RA_RING_UDMAP_RX   (0x01U)
211 /** MCU Nav RA driver general purpose rings */
212 #define RESASG_SUBTYPE_MCU_NAV_RA_RING_GP   (0x02U)
213 /** MCU Nav RA driver global config error OES register */
214 #define RESASG_SUBTYPE_MCU_NAV_RA_ERROR_OES   (0x03U)
215 /** MCU Nav RA driver ring virtids */
216 #define RESASG_SUBTYPE_MCU_NAV_RA_VIRTID   (0x04U)
217 /** Total MCU Nav RA subtypes. Update when subtypes added */
218 #define RESASG_SUBTYPE_MCU_NAV_RA_CNT   (0x05U)
220 /** GIC IRQ inputs (64 - 127) from Main Nav */
221 #define RESASG_SUBTYPE_GIC_IRQ_MAIN_NAV_SET0   (0x00U)
222 /** GIC IRQ inputs (392 - 423) from Main GPIO IR */
223 #define RESASG_SUBTYPE_GIC_IRQ_MAIN_GPIO   (0x01U)
224 /** GIC IRQ inputs (448 - 503) from Main Nav */
225 #define RESASG_SUBTYPE_GIC_IRQ_MAIN_NAV_SET1   (0x02U)
226 /** GIC IRQ inputs (544 - 559) from Compare event IR */
227 #define RESASG_SUBTYPE_GIC_IRQ_COMP_EVT   (0x03U)
228 /** GIC IRQ inputs (712 - 727) from Wakeup GPIO IR */
229 #define RESASG_SUBTYPE_GIC_IRQ_WKUP_GPIO   (0x04U)
230 /** Total GIC IRQ subtypes. Update when subtypes added */
231 #define RESASG_SUBTYPE_GIC_IRQ_CNT   (0x05U)
233 /** Pulsar core 0 VIM IRQ inputs (64 - 95) from MCU Nav */
234 #define RESASG_SUBTYPE_PULSAR_C0_IRQ_MCU_NAV   (0x00U)
235 /** Pulsar core 0 VIM IRQ inputs (124 - 139) from Wakeup GPIO IR */
236 #define RESASG_SUBTYPE_PULSAR_C0_IRQ_WKUP_GPIO   (0x01U)
237 /** Pulsar core 0 VIM IRQ inputs (160 - 223) from Main2MCU level IR */
238 #define RESASG_SUBTYPE_PULSAR_C0_IRQ_MAIN2MCU_LVL   (0x02U)
239 /** Pulsar core 0 VIM IRQ inputs (224 - 271) from Main2MCU pulse IR */
240 #define RESASG_SUBTYPE_PULSAR_C0_IRQ_MAIN2MCU_PLS   (0x03U)
241 /** Total Pulsar core 0 IRQ subtypes. Update when subtypes added */
242 #define RESASG_SUBTYPE_PULSAR_C0_IRQ_CNT   (0x04U)
244 /** Pulsar core 1 VIM IRQ inputs (64 - 95) from MCU Nav */
245 #define RESASG_SUBTYPE_PULSAR_C1_IRQ_MCU_NAV   (0x00U)
246 /** Pulsar core 1 VIM IRQ inputs (124 - 139) from Wakeup GPIO IR */
247 #define RESASG_SUBTYPE_PULSAR_C1_IRQ_WKUP_GPIO   (0x01U)
248 /** Pulsar core 1 VIM IRQ inputs (160 - 223) from Main2MCU level IR */
249 #define RESASG_SUBTYPE_PULSAR_C1_IRQ_MAIN2MCU_LVL   (0x02U)
250 /** Pulsar core 1 VIM IRQ inputs (224 - 271) from Main2MCU pulse IR */
251 #define RESASG_SUBTYPE_PULSAR_C1_IRQ_MAIN2MCU_PLS   (0x03U)
252 /** Total Pulsar core 1 IRQ subtypes. Update when subtypes added */
253 #define RESASG_SUBTYPE_PULSAR_C1_IRQ_CNT   (0x04U)
255 /** ICSSG0 IRQ inputs (110 - 117) from Main Nav */
256 #define RESASG_SUBTYPE_ICSSG0_IRQ_MAIN_NAV   (0x00U)
257 /** ICSSG0 IRQ inputs (152 - 159) from Main GPIO IR */
258 #define RESASG_SUBTYPE_ICSSG0_IRQ_MAIN_GPIO   (0x01U)
259 /** Total ICSSG 0 IRQ subtypes. Update when subtypes added */
260 #define RESASG_SUBTYPE_ICSSG0_IRQ_CNT   (0x02U)
262 /** ICSSG1 IRQ inputs (110 - 117) from Main Nav */
263 #define RESASG_SUBTYPE_ICSSG1_IRQ_MAIN_NAV   (0x00U)
264 /** ICSSG1 IRQ inputs (152 - 159) from Main GPIO IR */
265 #define RESASG_SUBTYPE_ICSSG1_IRQ_MAIN_GPIO   (0x01U)
266 /** Total ICSSG1 IRQ subtypes. Update when subtypes added */
267 #define RESASG_SUBTYPE_ICSSG1_IRQ_CNT   (0x02U)
269 /** ICSSG2 IRQ inputs (110 - 117) from Main Nav */
270 #define RESASG_SUBTYPE_ICSSG2_IRQ_MAIN_NAV   (0x00U)
271 /** ICSSG2 IRQ inputs (152 - 159) from Main GPIO IR */
272 #define RESASG_SUBTYPE_ICSSG2_IRQ_MAIN_GPIO   (0x01U)
273 /** Total ICSSG2 IRQ subtypes. Update when subtypes added */
274 #define RESASG_SUBTYPE_ICSSG2_IRQ_CNT   (0x02U)
276 /**
277  * Total number of unique resource types for AM6
278  */
279 #define RESASG_UTYPE_CNT \
280         (RESASG_SUBTYPE_MAIN_NAV_UDMASS_IA0_CNT + \
281          RESASG_SUBTYPE_MAIN_NAV_MODSS_IA0_CNT + \
282          RESASG_SUBTYPE_MAIN_NAV_MODSS_IA1_CNT + \
283          RESASG_SUBTYPE_MCU_NAV_UDMASS_IA0_CNT + \
284          RESASG_SUBTYPE_MAIN_NAV_MCRC_CNT + \
285          RESASG_SUBTYPE_MCU_NAV_MCRC_CNT + \
286          RESASG_SUBTYPE_MAIN_NAV_UDMAP_CNT + \
287          RESASG_SUBTYPE_MCU_NAV_UDMAP_CNT + \
288          RESASG_SUBTYPE_MSMC_CNT + \
289          RESASG_SUBTYPE_MAIN_NAV_RA_CNT + \
290          RESASG_SUBTYPE_MCU_NAV_RA_CNT + \
291          RESASG_SUBTYPE_GIC_IRQ_CNT + \
292          RESASG_SUBTYPE_PULSAR_C0_IRQ_CNT + \
293          RESASG_SUBTYPE_PULSAR_C1_IRQ_CNT + \
294          RESASG_SUBTYPE_ICSSG0_IRQ_CNT + \
295          RESASG_SUBTYPE_ICSSG1_IRQ_CNT + \
296          RESASG_SUBTYPE_ICSSG2_IRQ_CNT)
298 #endif /* RESASG_TYPES_H */