HPM SDK
HPMicro Software Development Kit
hpm_ffa_regs.h
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2021-2024 HPMicro
3  *
4  * SPDX-License-Identifier: BSD-3-Clause
5  *
6  */
7 
8 
9 #ifndef HPM_FFA_H
10 #define HPM_FFA_H
11 
12 typedef struct {
13  __RW uint32_t CTRL; /* 0x0: */
14  __RW uint32_t STATUS; /* 0x4: */
15  __RW uint32_t INT_EN; /* 0x8: */
16  __R uint8_t RESERVED0[20]; /* 0xC - 0x1F: Reserved */
17  __RW uint32_t OP_CTRL; /* 0x20: */
18  __RW uint32_t OP_CMD; /* 0x24: */
19  union {
20  __RW uint32_t OP_REG0; /* 0x28: */
21  __RW uint32_t OP_FIR_MISC; /* 0x28: */
22  __RW uint32_t OP_FFT_MISC; /* 0x28: */
23  };
24  union {
25  __RW uint32_t OP_REG1; /* 0x2C: */
26  __RW uint32_t OP_FIR_MISC1; /* 0x2C: */
27  };
28  union {
29  __RW uint32_t OP_REG2; /* 0x30: */
30  __RW uint32_t OP_FFT_INRBUF; /* 0x30: */
31  };
32  union {
33  __RW uint32_t OP_REG3; /* 0x34: */
34  __RW uint32_t OP_FIR_INBUF; /* 0x34: */
35  };
36  union {
37  __RW uint32_t OP_REG4; /* 0x38: */
38  __RW uint32_t OP_FIR_COEFBUF; /* 0x38: */
39  __RW uint32_t OP_FFT_OUTRBUF; /* 0x38: */
40  };
41  union {
42  __RW uint32_t OP_REG5; /* 0x3C: */
43  __RW uint32_t OP_FIR_OUTBUF; /* 0x3C: */
44  };
45  __RW uint32_t OP_REG6; /* 0x40: */
46  __RW uint32_t OP_REG7; /* 0x44: */
47 } FFA_Type;
48 
49 
50 /* Bitfield definition for register: CTRL */
51 /*
52  * SFTRST (RW)
53  *
54  * software reset the module if asserted to be 1.
55  * EN is only active after this bit is zero.
56  */
57 #define FFA_CTRL_SFTRST_MASK (0x80000000UL)
58 #define FFA_CTRL_SFTRST_SHIFT (31U)
59 #define FFA_CTRL_SFTRST_SET(x) (((uint32_t)(x) << FFA_CTRL_SFTRST_SHIFT) & FFA_CTRL_SFTRST_MASK)
60 #define FFA_CTRL_SFTRST_GET(x) (((uint32_t)(x) & FFA_CTRL_SFTRST_MASK) >> FFA_CTRL_SFTRST_SHIFT)
61 
62 /*
63  * EN (RW)
64  *
65  * Asserted to enable the module
66  */
67 #define FFA_CTRL_EN_MASK (0x1U)
68 #define FFA_CTRL_EN_SHIFT (0U)
69 #define FFA_CTRL_EN_SET(x) (((uint32_t)(x) << FFA_CTRL_EN_SHIFT) & FFA_CTRL_EN_MASK)
70 #define FFA_CTRL_EN_GET(x) (((uint32_t)(x) & FFA_CTRL_EN_MASK) >> FFA_CTRL_EN_SHIFT)
71 
72 /* Bitfield definition for register: STATUS */
73 /*
74  * FIR_OV (W1C)
75  *
76  * FIR Overflow err
77  */
78 #define FFA_STATUS_FIR_OV_MASK (0x80U)
79 #define FFA_STATUS_FIR_OV_SHIFT (7U)
80 #define FFA_STATUS_FIR_OV_SET(x) (((uint32_t)(x) << FFA_STATUS_FIR_OV_SHIFT) & FFA_STATUS_FIR_OV_MASK)
81 #define FFA_STATUS_FIR_OV_GET(x) (((uint32_t)(x) & FFA_STATUS_FIR_OV_MASK) >> FFA_STATUS_FIR_OV_SHIFT)
82 
83 /*
84  * FFT_OV (W1C)
85  *
86  * FFT Overflow Err
87  */
88 #define FFA_STATUS_FFT_OV_MASK (0x40U)
89 #define FFA_STATUS_FFT_OV_SHIFT (6U)
90 #define FFA_STATUS_FFT_OV_SET(x) (((uint32_t)(x) << FFA_STATUS_FFT_OV_SHIFT) & FFA_STATUS_FFT_OV_MASK)
91 #define FFA_STATUS_FFT_OV_GET(x) (((uint32_t)(x) & FFA_STATUS_FFT_OV_MASK) >> FFA_STATUS_FFT_OV_SHIFT)
92 
93 /*
94  * WR_ERR (W1C)
95  *
96  * AXI Data Write Error
97  */
98 #define FFA_STATUS_WR_ERR_MASK (0x20U)
99 #define FFA_STATUS_WR_ERR_SHIFT (5U)
100 #define FFA_STATUS_WR_ERR_SET(x) (((uint32_t)(x) << FFA_STATUS_WR_ERR_SHIFT) & FFA_STATUS_WR_ERR_MASK)
101 #define FFA_STATUS_WR_ERR_GET(x) (((uint32_t)(x) & FFA_STATUS_WR_ERR_MASK) >> FFA_STATUS_WR_ERR_SHIFT)
102 
103 /*
104  * RD_NXT_ERR (W1C)
105  *
106  * AXI Read Bus Error for NXT DATA
107  */
108 #define FFA_STATUS_RD_NXT_ERR_MASK (0x10U)
109 #define FFA_STATUS_RD_NXT_ERR_SHIFT (4U)
110 #define FFA_STATUS_RD_NXT_ERR_SET(x) (((uint32_t)(x) << FFA_STATUS_RD_NXT_ERR_SHIFT) & FFA_STATUS_RD_NXT_ERR_MASK)
111 #define FFA_STATUS_RD_NXT_ERR_GET(x) (((uint32_t)(x) & FFA_STATUS_RD_NXT_ERR_MASK) >> FFA_STATUS_RD_NXT_ERR_SHIFT)
112 
113 /*
114  * RD_ERR (W1C)
115  *
116  * AXI Data Read Error
117  */
118 #define FFA_STATUS_RD_ERR_MASK (0x8U)
119 #define FFA_STATUS_RD_ERR_SHIFT (3U)
120 #define FFA_STATUS_RD_ERR_SET(x) (((uint32_t)(x) << FFA_STATUS_RD_ERR_SHIFT) & FFA_STATUS_RD_ERR_MASK)
121 #define FFA_STATUS_RD_ERR_GET(x) (((uint32_t)(x) & FFA_STATUS_RD_ERR_MASK) >> FFA_STATUS_RD_ERR_SHIFT)
122 
123 /*
124  * NXT_CMD_RD_DONE (W1C)
125  *
126  * Indicate that next command sequence is already read into the module.
127  */
128 #define FFA_STATUS_NXT_CMD_RD_DONE_MASK (0x2U)
129 #define FFA_STATUS_NXT_CMD_RD_DONE_SHIFT (1U)
130 #define FFA_STATUS_NXT_CMD_RD_DONE_SET(x) (((uint32_t)(x) << FFA_STATUS_NXT_CMD_RD_DONE_SHIFT) & FFA_STATUS_NXT_CMD_RD_DONE_MASK)
131 #define FFA_STATUS_NXT_CMD_RD_DONE_GET(x) (((uint32_t)(x) & FFA_STATUS_NXT_CMD_RD_DONE_MASK) >> FFA_STATUS_NXT_CMD_RD_DONE_SHIFT)
132 
133 /*
134  * OP_CMD_DONE (W1C)
135  *
136  * Indicate that operation cmd is done, and data are available in system memory.
137  */
138 #define FFA_STATUS_OP_CMD_DONE_MASK (0x1U)
139 #define FFA_STATUS_OP_CMD_DONE_SHIFT (0U)
140 #define FFA_STATUS_OP_CMD_DONE_SET(x) (((uint32_t)(x) << FFA_STATUS_OP_CMD_DONE_SHIFT) & FFA_STATUS_OP_CMD_DONE_MASK)
141 #define FFA_STATUS_OP_CMD_DONE_GET(x) (((uint32_t)(x) & FFA_STATUS_OP_CMD_DONE_MASK) >> FFA_STATUS_OP_CMD_DONE_SHIFT)
142 
143 /* Bitfield definition for register: INT_EN */
144 /*
145  * WRSV1 (RW)
146  *
147  * Reserved
148  */
149 #define FFA_INT_EN_WRSV1_MASK (0xFFFFFF00UL)
150 #define FFA_INT_EN_WRSV1_SHIFT (8U)
151 #define FFA_INT_EN_WRSV1_SET(x) (((uint32_t)(x) << FFA_INT_EN_WRSV1_SHIFT) & FFA_INT_EN_WRSV1_MASK)
152 #define FFA_INT_EN_WRSV1_GET(x) (((uint32_t)(x) & FFA_INT_EN_WRSV1_MASK) >> FFA_INT_EN_WRSV1_SHIFT)
153 
154 /*
155  * FIR_OV (RW)
156  *
157  * FIR Overflow err
158  */
159 #define FFA_INT_EN_FIR_OV_MASK (0x80U)
160 #define FFA_INT_EN_FIR_OV_SHIFT (7U)
161 #define FFA_INT_EN_FIR_OV_SET(x) (((uint32_t)(x) << FFA_INT_EN_FIR_OV_SHIFT) & FFA_INT_EN_FIR_OV_MASK)
162 #define FFA_INT_EN_FIR_OV_GET(x) (((uint32_t)(x) & FFA_INT_EN_FIR_OV_MASK) >> FFA_INT_EN_FIR_OV_SHIFT)
163 
164 /*
165  * FFT_OV (RW)
166  *
167  * FFT Overflow Err
168  */
169 #define FFA_INT_EN_FFT_OV_MASK (0x40U)
170 #define FFA_INT_EN_FFT_OV_SHIFT (6U)
171 #define FFA_INT_EN_FFT_OV_SET(x) (((uint32_t)(x) << FFA_INT_EN_FFT_OV_SHIFT) & FFA_INT_EN_FFT_OV_MASK)
172 #define FFA_INT_EN_FFT_OV_GET(x) (((uint32_t)(x) & FFA_INT_EN_FFT_OV_MASK) >> FFA_INT_EN_FFT_OV_SHIFT)
173 
174 /*
175  * WR_ERR (RW)
176  *
177  * Enable Data Write Error interrupt
178  */
179 #define FFA_INT_EN_WR_ERR_MASK (0x20U)
180 #define FFA_INT_EN_WR_ERR_SHIFT (5U)
181 #define FFA_INT_EN_WR_ERR_SET(x) (((uint32_t)(x) << FFA_INT_EN_WR_ERR_SHIFT) & FFA_INT_EN_WR_ERR_MASK)
182 #define FFA_INT_EN_WR_ERR_GET(x) (((uint32_t)(x) & FFA_INT_EN_WR_ERR_MASK) >> FFA_INT_EN_WR_ERR_SHIFT)
183 
184 /*
185  * RD_NXT_ERR (RW)
186  *
187  * Enable Read Bus Error for NXT DATA interrupt
188  */
189 #define FFA_INT_EN_RD_NXT_ERR_MASK (0x10U)
190 #define FFA_INT_EN_RD_NXT_ERR_SHIFT (4U)
191 #define FFA_INT_EN_RD_NXT_ERR_SET(x) (((uint32_t)(x) << FFA_INT_EN_RD_NXT_ERR_SHIFT) & FFA_INT_EN_RD_NXT_ERR_MASK)
192 #define FFA_INT_EN_RD_NXT_ERR_GET(x) (((uint32_t)(x) & FFA_INT_EN_RD_NXT_ERR_MASK) >> FFA_INT_EN_RD_NXT_ERR_SHIFT)
193 
194 /*
195  * RD_ERR (RW)
196  *
197  * Enable Data Read Error interrupt
198  */
199 #define FFA_INT_EN_RD_ERR_MASK (0x8U)
200 #define FFA_INT_EN_RD_ERR_SHIFT (3U)
201 #define FFA_INT_EN_RD_ERR_SET(x) (((uint32_t)(x) << FFA_INT_EN_RD_ERR_SHIFT) & FFA_INT_EN_RD_ERR_MASK)
202 #define FFA_INT_EN_RD_ERR_GET(x) (((uint32_t)(x) & FFA_INT_EN_RD_ERR_MASK) >> FFA_INT_EN_RD_ERR_SHIFT)
203 
204 /*
205  * NXT_CMD_RD_DONE (RW)
206  *
207  * Indicate that next command sequence is already read into the module.
208  */
209 #define FFA_INT_EN_NXT_CMD_RD_DONE_MASK (0x2U)
210 #define FFA_INT_EN_NXT_CMD_RD_DONE_SHIFT (1U)
211 #define FFA_INT_EN_NXT_CMD_RD_DONE_SET(x) (((uint32_t)(x) << FFA_INT_EN_NXT_CMD_RD_DONE_SHIFT) & FFA_INT_EN_NXT_CMD_RD_DONE_MASK)
212 #define FFA_INT_EN_NXT_CMD_RD_DONE_GET(x) (((uint32_t)(x) & FFA_INT_EN_NXT_CMD_RD_DONE_MASK) >> FFA_INT_EN_NXT_CMD_RD_DONE_SHIFT)
213 
214 /*
215  * OP_CMD_DONE (RW)
216  *
217  * Indicate that operation cmd is done, and data are available in system memory.
218  */
219 #define FFA_INT_EN_OP_CMD_DONE_MASK (0x1U)
220 #define FFA_INT_EN_OP_CMD_DONE_SHIFT (0U)
221 #define FFA_INT_EN_OP_CMD_DONE_SET(x) (((uint32_t)(x) << FFA_INT_EN_OP_CMD_DONE_SHIFT) & FFA_INT_EN_OP_CMD_DONE_MASK)
222 #define FFA_INT_EN_OP_CMD_DONE_GET(x) (((uint32_t)(x) & FFA_INT_EN_OP_CMD_DONE_MASK) >> FFA_INT_EN_OP_CMD_DONE_SHIFT)
223 
224 /* Bitfield definition for register: OP_CTRL */
225 /*
226  * NXT_ADDR (RW)
227  *
228  * The address for the next command.
229  * It will be processed after CUR_CMD is executed and done..
230  */
231 #define FFA_OP_CTRL_NXT_ADDR_MASK (0xFFFFFFFCUL)
232 #define FFA_OP_CTRL_NXT_ADDR_SHIFT (2U)
233 #define FFA_OP_CTRL_NXT_ADDR_SET(x) (((uint32_t)(x) << FFA_OP_CTRL_NXT_ADDR_SHIFT) & FFA_OP_CTRL_NXT_ADDR_MASK)
234 #define FFA_OP_CTRL_NXT_ADDR_GET(x) (((uint32_t)(x) & FFA_OP_CTRL_NXT_ADDR_MASK) >> FFA_OP_CTRL_NXT_ADDR_SHIFT)
235 
236 /*
237  * NXT_EN (RW)
238  *
239  * Whether NXT_CMD is enabled.
240  * Asserted to enable the NXT_CMD when CUR_CMD is done, or CUR_CMD is not enabled..
241  */
242 #define FFA_OP_CTRL_NXT_EN_MASK (0x2U)
243 #define FFA_OP_CTRL_NXT_EN_SHIFT (1U)
244 #define FFA_OP_CTRL_NXT_EN_SET(x) (((uint32_t)(x) << FFA_OP_CTRL_NXT_EN_SHIFT) & FFA_OP_CTRL_NXT_EN_MASK)
245 #define FFA_OP_CTRL_NXT_EN_GET(x) (((uint32_t)(x) & FFA_OP_CTRL_NXT_EN_MASK) >> FFA_OP_CTRL_NXT_EN_SHIFT)
246 
247 /*
248  * EN (RW)
249  *
250  * Whether CUR_CMD is enabled.
251  * Asserted to enable the CUR_CMD
252  */
253 #define FFA_OP_CTRL_EN_MASK (0x1U)
254 #define FFA_OP_CTRL_EN_SHIFT (0U)
255 #define FFA_OP_CTRL_EN_SET(x) (((uint32_t)(x) << FFA_OP_CTRL_EN_SHIFT) & FFA_OP_CTRL_EN_MASK)
256 #define FFA_OP_CTRL_EN_GET(x) (((uint32_t)(x) & FFA_OP_CTRL_EN_MASK) >> FFA_OP_CTRL_EN_SHIFT)
257 
258 /* Bitfield definition for register: OP_CMD */
259 /*
260  * CONJ_C (RW)
261  *
262  * asserted to have conjuate value for coefs in computation
263  */
264 #define FFA_OP_CMD_CONJ_C_MASK (0x1000000UL)
265 #define FFA_OP_CMD_CONJ_C_SHIFT (24U)
266 #define FFA_OP_CMD_CONJ_C_SET(x) (((uint32_t)(x) << FFA_OP_CMD_CONJ_C_SHIFT) & FFA_OP_CMD_CONJ_C_MASK)
267 #define FFA_OP_CMD_CONJ_C_GET(x) (((uint32_t)(x) & FFA_OP_CMD_CONJ_C_MASK) >> FFA_OP_CMD_CONJ_C_SHIFT)
268 
269 /*
270  * CMD (RW)
271  *
272  * The Command Used:
273  * 0: FIR
274  * 2: FFT
275  * Others: Reserved
276  */
277 #define FFA_OP_CMD_CMD_MASK (0xFC0000UL)
278 #define FFA_OP_CMD_CMD_SHIFT (18U)
279 #define FFA_OP_CMD_CMD_SET(x) (((uint32_t)(x) << FFA_OP_CMD_CMD_SHIFT) & FFA_OP_CMD_CMD_MASK)
280 #define FFA_OP_CMD_CMD_GET(x) (((uint32_t)(x) & FFA_OP_CMD_CMD_MASK) >> FFA_OP_CMD_CMD_SHIFT)
281 
282 /*
283  * OUTD_TYPE (RW)
284  *
285  * Output data type:
286  * 0:Real Q31, 1:Real Q15, 2:Complex Q31, 3:Complex Q15
287  * 4:complex sp float 5: real sp float
288  */
289 #define FFA_OP_CMD_OUTD_TYPE_MASK (0x38000UL)
290 #define FFA_OP_CMD_OUTD_TYPE_SHIFT (15U)
291 #define FFA_OP_CMD_OUTD_TYPE_SET(x) (((uint32_t)(x) << FFA_OP_CMD_OUTD_TYPE_SHIFT) & FFA_OP_CMD_OUTD_TYPE_MASK)
292 #define FFA_OP_CMD_OUTD_TYPE_GET(x) (((uint32_t)(x) & FFA_OP_CMD_OUTD_TYPE_MASK) >> FFA_OP_CMD_OUTD_TYPE_SHIFT)
293 
294 /*
295  * COEF_TYPE (RW)
296  *
297  * Coef data type (used for FIR):
298  * 0:Real Q31, 1:Real Q15, 2:Complex Q31, 3:Complex Q15
299  * 4:complex sp float 5: real sp float
300  */
301 #define FFA_OP_CMD_COEF_TYPE_MASK (0x7000U)
302 #define FFA_OP_CMD_COEF_TYPE_SHIFT (12U)
303 #define FFA_OP_CMD_COEF_TYPE_SET(x) (((uint32_t)(x) << FFA_OP_CMD_COEF_TYPE_SHIFT) & FFA_OP_CMD_COEF_TYPE_MASK)
304 #define FFA_OP_CMD_COEF_TYPE_GET(x) (((uint32_t)(x) & FFA_OP_CMD_COEF_TYPE_MASK) >> FFA_OP_CMD_COEF_TYPE_SHIFT)
305 
306 /*
307  * IND_TYPE (RW)
308  *
309  * Input data type:
310  * 0:Real Q31, 1:Real Q15, 2:Complex Q31, 3:Complex Q15
311  * 4:complex sp float 5: real sp float
312  */
313 #define FFA_OP_CMD_IND_TYPE_MASK (0xE00U)
314 #define FFA_OP_CMD_IND_TYPE_SHIFT (9U)
315 #define FFA_OP_CMD_IND_TYPE_SET(x) (((uint32_t)(x) << FFA_OP_CMD_IND_TYPE_SHIFT) & FFA_OP_CMD_IND_TYPE_MASK)
316 #define FFA_OP_CMD_IND_TYPE_GET(x) (((uint32_t)(x) & FFA_OP_CMD_IND_TYPE_MASK) >> FFA_OP_CMD_IND_TYPE_SHIFT)
317 
318 /*
319  * NXT_CMD_LEN (RW)
320  *
321  * The length of nxt commands in 32-bit words
322  */
323 #define FFA_OP_CMD_NXT_CMD_LEN_MASK (0xFFU)
324 #define FFA_OP_CMD_NXT_CMD_LEN_SHIFT (0U)
325 #define FFA_OP_CMD_NXT_CMD_LEN_SET(x) (((uint32_t)(x) << FFA_OP_CMD_NXT_CMD_LEN_SHIFT) & FFA_OP_CMD_NXT_CMD_LEN_MASK)
326 #define FFA_OP_CMD_NXT_CMD_LEN_GET(x) (((uint32_t)(x) & FFA_OP_CMD_NXT_CMD_LEN_MASK) >> FFA_OP_CMD_NXT_CMD_LEN_SHIFT)
327 
328 /* Bitfield definition for register: OP_REG0 */
329 /*
330  * CT (RW)
331  *
332  * Contents
333  */
334 #define FFA_OP_REG0_CT_MASK (0xFFFFFFFFUL)
335 #define FFA_OP_REG0_CT_SHIFT (0U)
336 #define FFA_OP_REG0_CT_SET(x) (((uint32_t)(x) << FFA_OP_REG0_CT_SHIFT) & FFA_OP_REG0_CT_MASK)
337 #define FFA_OP_REG0_CT_GET(x) (((uint32_t)(x) & FFA_OP_REG0_CT_MASK) >> FFA_OP_REG0_CT_SHIFT)
338 
339 /* Bitfield definition for register: OP_FIR_MISC */
340 /*
341  * FIR_COEF_TAPS (RW)
342  *
343  * Length of FIR coefs (max 256)
344  */
345 #define FFA_OP_FIR_MISC_FIR_COEF_TAPS_MASK (0x3FFFU)
346 #define FFA_OP_FIR_MISC_FIR_COEF_TAPS_SHIFT (0U)
347 #define FFA_OP_FIR_MISC_FIR_COEF_TAPS_SET(x) (((uint32_t)(x) << FFA_OP_FIR_MISC_FIR_COEF_TAPS_SHIFT) & FFA_OP_FIR_MISC_FIR_COEF_TAPS_MASK)
348 #define FFA_OP_FIR_MISC_FIR_COEF_TAPS_GET(x) (((uint32_t)(x) & FFA_OP_FIR_MISC_FIR_COEF_TAPS_MASK) >> FFA_OP_FIR_MISC_FIR_COEF_TAPS_SHIFT)
349 
350 /* Bitfield definition for register: OP_FFT_MISC */
351 /*
352  * FFT_LEN (RW)
353  *
354  * FFT length
355  * 0:8,
356  * ...,
357  * n:2^(3+n)
358  */
359 #define FFA_OP_FFT_MISC_FFT_LEN_MASK (0x780U)
360 #define FFA_OP_FFT_MISC_FFT_LEN_SHIFT (7U)
361 #define FFA_OP_FFT_MISC_FFT_LEN_SET(x) (((uint32_t)(x) << FFA_OP_FFT_MISC_FFT_LEN_SHIFT) & FFA_OP_FFT_MISC_FFT_LEN_MASK)
362 #define FFA_OP_FFT_MISC_FFT_LEN_GET(x) (((uint32_t)(x) & FFA_OP_FFT_MISC_FFT_LEN_MASK) >> FFA_OP_FFT_MISC_FFT_LEN_SHIFT)
363 
364 /*
365  * IFFT (RW)
366  *
367  * Asserted to indicate IFFT
368  */
369 #define FFA_OP_FFT_MISC_IFFT_MASK (0x40U)
370 #define FFA_OP_FFT_MISC_IFFT_SHIFT (6U)
371 #define FFA_OP_FFT_MISC_IFFT_SET(x) (((uint32_t)(x) << FFA_OP_FFT_MISC_IFFT_SHIFT) & FFA_OP_FFT_MISC_IFFT_MASK)
372 #define FFA_OP_FFT_MISC_IFFT_GET(x) (((uint32_t)(x) & FFA_OP_FFT_MISC_IFFT_MASK) >> FFA_OP_FFT_MISC_IFFT_SHIFT)
373 
374 /*
375  * TMP_BLK (RW)
376  *
377  * Memory block for indata. Should be assigned as 1
378  */
379 #define FFA_OP_FFT_MISC_TMP_BLK_MASK (0xCU)
380 #define FFA_OP_FFT_MISC_TMP_BLK_SHIFT (2U)
381 #define FFA_OP_FFT_MISC_TMP_BLK_SET(x) (((uint32_t)(x) << FFA_OP_FFT_MISC_TMP_BLK_SHIFT) & FFA_OP_FFT_MISC_TMP_BLK_MASK)
382 #define FFA_OP_FFT_MISC_TMP_BLK_GET(x) (((uint32_t)(x) & FFA_OP_FFT_MISC_TMP_BLK_MASK) >> FFA_OP_FFT_MISC_TMP_BLK_SHIFT)
383 
384 /*
385  * IND_BLK (RW)
386  *
387  * Memory block for indata. Should be assigned as 0
388  */
389 #define FFA_OP_FFT_MISC_IND_BLK_MASK (0x3U)
390 #define FFA_OP_FFT_MISC_IND_BLK_SHIFT (0U)
391 #define FFA_OP_FFT_MISC_IND_BLK_SET(x) (((uint32_t)(x) << FFA_OP_FFT_MISC_IND_BLK_SHIFT) & FFA_OP_FFT_MISC_IND_BLK_MASK)
392 #define FFA_OP_FFT_MISC_IND_BLK_GET(x) (((uint32_t)(x) & FFA_OP_FFT_MISC_IND_BLK_MASK) >> FFA_OP_FFT_MISC_IND_BLK_SHIFT)
393 
394 /* Bitfield definition for register: OP_REG1 */
395 /*
396  * CT (RW)
397  *
398  * Contents
399  */
400 #define FFA_OP_REG1_CT_MASK (0xFFFFFFFFUL)
401 #define FFA_OP_REG1_CT_SHIFT (0U)
402 #define FFA_OP_REG1_CT_SET(x) (((uint32_t)(x) << FFA_OP_REG1_CT_SHIFT) & FFA_OP_REG1_CT_MASK)
403 #define FFA_OP_REG1_CT_GET(x) (((uint32_t)(x) & FFA_OP_REG1_CT_MASK) >> FFA_OP_REG1_CT_SHIFT)
404 
405 /* Bitfield definition for register: OP_FIR_MISC1 */
406 /*
407  * OUTD_MEM_BLK (RW)
408  *
409  * Should be assigned as 0
410  */
411 #define FFA_OP_FIR_MISC1_OUTD_MEM_BLK_MASK (0x300000UL)
412 #define FFA_OP_FIR_MISC1_OUTD_MEM_BLK_SHIFT (20U)
413 #define FFA_OP_FIR_MISC1_OUTD_MEM_BLK_SET(x) (((uint32_t)(x) << FFA_OP_FIR_MISC1_OUTD_MEM_BLK_SHIFT) & FFA_OP_FIR_MISC1_OUTD_MEM_BLK_MASK)
414 #define FFA_OP_FIR_MISC1_OUTD_MEM_BLK_GET(x) (((uint32_t)(x) & FFA_OP_FIR_MISC1_OUTD_MEM_BLK_MASK) >> FFA_OP_FIR_MISC1_OUTD_MEM_BLK_SHIFT)
415 
416 /*
417  * COEF_MEM_BLK (RW)
418  *
419  * Should be assigned as 1
420  */
421 #define FFA_OP_FIR_MISC1_COEF_MEM_BLK_MASK (0xC0000UL)
422 #define FFA_OP_FIR_MISC1_COEF_MEM_BLK_SHIFT (18U)
423 #define FFA_OP_FIR_MISC1_COEF_MEM_BLK_SET(x) (((uint32_t)(x) << FFA_OP_FIR_MISC1_COEF_MEM_BLK_SHIFT) & FFA_OP_FIR_MISC1_COEF_MEM_BLK_MASK)
424 #define FFA_OP_FIR_MISC1_COEF_MEM_BLK_GET(x) (((uint32_t)(x) & FFA_OP_FIR_MISC1_COEF_MEM_BLK_MASK) >> FFA_OP_FIR_MISC1_COEF_MEM_BLK_SHIFT)
425 
426 /*
427  * IND_MEM_BLK (RW)
428  *
429  * Should be assigned as 2
430  */
431 #define FFA_OP_FIR_MISC1_IND_MEM_BLK_MASK (0x30000UL)
432 #define FFA_OP_FIR_MISC1_IND_MEM_BLK_SHIFT (16U)
433 #define FFA_OP_FIR_MISC1_IND_MEM_BLK_SET(x) (((uint32_t)(x) << FFA_OP_FIR_MISC1_IND_MEM_BLK_SHIFT) & FFA_OP_FIR_MISC1_IND_MEM_BLK_MASK)
434 #define FFA_OP_FIR_MISC1_IND_MEM_BLK_GET(x) (((uint32_t)(x) & FFA_OP_FIR_MISC1_IND_MEM_BLK_MASK) >> FFA_OP_FIR_MISC1_IND_MEM_BLK_SHIFT)
435 
436 /*
437  * FIR_DATA_TAPS (RW)
438  *
439  * The input data data length
440  */
441 #define FFA_OP_FIR_MISC1_FIR_DATA_TAPS_MASK (0xFFFFU)
442 #define FFA_OP_FIR_MISC1_FIR_DATA_TAPS_SHIFT (0U)
443 #define FFA_OP_FIR_MISC1_FIR_DATA_TAPS_SET(x) (((uint32_t)(x) << FFA_OP_FIR_MISC1_FIR_DATA_TAPS_SHIFT) & FFA_OP_FIR_MISC1_FIR_DATA_TAPS_MASK)
444 #define FFA_OP_FIR_MISC1_FIR_DATA_TAPS_GET(x) (((uint32_t)(x) & FFA_OP_FIR_MISC1_FIR_DATA_TAPS_MASK) >> FFA_OP_FIR_MISC1_FIR_DATA_TAPS_SHIFT)
445 
446 /* Bitfield definition for register: OP_REG2 */
447 /*
448  * CT (RW)
449  *
450  * Contents
451  */
452 #define FFA_OP_REG2_CT_MASK (0xFFFFFFFFUL)
453 #define FFA_OP_REG2_CT_SHIFT (0U)
454 #define FFA_OP_REG2_CT_SET(x) (((uint32_t)(x) << FFA_OP_REG2_CT_SHIFT) & FFA_OP_REG2_CT_MASK)
455 #define FFA_OP_REG2_CT_GET(x) (((uint32_t)(x) & FFA_OP_REG2_CT_MASK) >> FFA_OP_REG2_CT_SHIFT)
456 
457 /* Bitfield definition for register: OP_FFT_INRBUF */
458 /*
459  * LOC (RW)
460  *
461  * The input (real) data buffer pointer
462  */
463 #define FFA_OP_FFT_INRBUF_LOC_MASK (0xFFFFFFFFUL)
464 #define FFA_OP_FFT_INRBUF_LOC_SHIFT (0U)
465 #define FFA_OP_FFT_INRBUF_LOC_SET(x) (((uint32_t)(x) << FFA_OP_FFT_INRBUF_LOC_SHIFT) & FFA_OP_FFT_INRBUF_LOC_MASK)
466 #define FFA_OP_FFT_INRBUF_LOC_GET(x) (((uint32_t)(x) & FFA_OP_FFT_INRBUF_LOC_MASK) >> FFA_OP_FFT_INRBUF_LOC_SHIFT)
467 
468 /* Bitfield definition for register: OP_REG3 */
469 /*
470  * CT (RW)
471  *
472  * Contents
473  */
474 #define FFA_OP_REG3_CT_MASK (0xFFFFFFFFUL)
475 #define FFA_OP_REG3_CT_SHIFT (0U)
476 #define FFA_OP_REG3_CT_SET(x) (((uint32_t)(x) << FFA_OP_REG3_CT_SHIFT) & FFA_OP_REG3_CT_MASK)
477 #define FFA_OP_REG3_CT_GET(x) (((uint32_t)(x) & FFA_OP_REG3_CT_MASK) >> FFA_OP_REG3_CT_SHIFT)
478 
479 /* Bitfield definition for register: OP_FIR_INBUF */
480 /*
481  * LOC (RW)
482  *
483  * The input data buffer pointer
484  */
485 #define FFA_OP_FIR_INBUF_LOC_MASK (0xFFFFFFFFUL)
486 #define FFA_OP_FIR_INBUF_LOC_SHIFT (0U)
487 #define FFA_OP_FIR_INBUF_LOC_SET(x) (((uint32_t)(x) << FFA_OP_FIR_INBUF_LOC_SHIFT) & FFA_OP_FIR_INBUF_LOC_MASK)
488 #define FFA_OP_FIR_INBUF_LOC_GET(x) (((uint32_t)(x) & FFA_OP_FIR_INBUF_LOC_MASK) >> FFA_OP_FIR_INBUF_LOC_SHIFT)
489 
490 /* Bitfield definition for register: OP_REG4 */
491 /*
492  * CT (RW)
493  *
494  * Contents
495  */
496 #define FFA_OP_REG4_CT_MASK (0xFFFFFFFFUL)
497 #define FFA_OP_REG4_CT_SHIFT (0U)
498 #define FFA_OP_REG4_CT_SET(x) (((uint32_t)(x) << FFA_OP_REG4_CT_SHIFT) & FFA_OP_REG4_CT_MASK)
499 #define FFA_OP_REG4_CT_GET(x) (((uint32_t)(x) & FFA_OP_REG4_CT_MASK) >> FFA_OP_REG4_CT_SHIFT)
500 
501 /* Bitfield definition for register: OP_FIR_COEFBUF */
502 /*
503  * LOC (RW)
504  *
505  * The coef buf pointer
506  */
507 #define FFA_OP_FIR_COEFBUF_LOC_MASK (0xFFFFFFFFUL)
508 #define FFA_OP_FIR_COEFBUF_LOC_SHIFT (0U)
509 #define FFA_OP_FIR_COEFBUF_LOC_SET(x) (((uint32_t)(x) << FFA_OP_FIR_COEFBUF_LOC_SHIFT) & FFA_OP_FIR_COEFBUF_LOC_MASK)
510 #define FFA_OP_FIR_COEFBUF_LOC_GET(x) (((uint32_t)(x) & FFA_OP_FIR_COEFBUF_LOC_MASK) >> FFA_OP_FIR_COEFBUF_LOC_SHIFT)
511 
512 /* Bitfield definition for register: OP_FFT_OUTRBUF */
513 /*
514  * LOC (RW)
515  *
516  * The output (real) data buffer pointer
517  */
518 #define FFA_OP_FFT_OUTRBUF_LOC_MASK (0xFFFFFFFFUL)
519 #define FFA_OP_FFT_OUTRBUF_LOC_SHIFT (0U)
520 #define FFA_OP_FFT_OUTRBUF_LOC_SET(x) (((uint32_t)(x) << FFA_OP_FFT_OUTRBUF_LOC_SHIFT) & FFA_OP_FFT_OUTRBUF_LOC_MASK)
521 #define FFA_OP_FFT_OUTRBUF_LOC_GET(x) (((uint32_t)(x) & FFA_OP_FFT_OUTRBUF_LOC_MASK) >> FFA_OP_FFT_OUTRBUF_LOC_SHIFT)
522 
523 /* Bitfield definition for register: OP_REG5 */
524 /*
525  * CT (RW)
526  *
527  * Contents
528  */
529 #define FFA_OP_REG5_CT_MASK (0xFFFFFFFFUL)
530 #define FFA_OP_REG5_CT_SHIFT (0U)
531 #define FFA_OP_REG5_CT_SET(x) (((uint32_t)(x) << FFA_OP_REG5_CT_SHIFT) & FFA_OP_REG5_CT_MASK)
532 #define FFA_OP_REG5_CT_GET(x) (((uint32_t)(x) & FFA_OP_REG5_CT_MASK) >> FFA_OP_REG5_CT_SHIFT)
533 
534 /* Bitfield definition for register: OP_FIR_OUTBUF */
535 /*
536  * LOC (RW)
537  *
538  * The output data buffer pointer. The length of the output buffer should be (FIR_DATA_TAPS - FIR_COEF_TAPS + 1)
539  */
540 #define FFA_OP_FIR_OUTBUF_LOC_MASK (0xFFFFFFFFUL)
541 #define FFA_OP_FIR_OUTBUF_LOC_SHIFT (0U)
542 #define FFA_OP_FIR_OUTBUF_LOC_SET(x) (((uint32_t)(x) << FFA_OP_FIR_OUTBUF_LOC_SHIFT) & FFA_OP_FIR_OUTBUF_LOC_MASK)
543 #define FFA_OP_FIR_OUTBUF_LOC_GET(x) (((uint32_t)(x) & FFA_OP_FIR_OUTBUF_LOC_MASK) >> FFA_OP_FIR_OUTBUF_LOC_SHIFT)
544 
545 /* Bitfield definition for register: OP_REG6 */
546 /*
547  * CT (RW)
548  *
549  * Contents
550  */
551 #define FFA_OP_REG6_CT_MASK (0xFFFFFFFFUL)
552 #define FFA_OP_REG6_CT_SHIFT (0U)
553 #define FFA_OP_REG6_CT_SET(x) (((uint32_t)(x) << FFA_OP_REG6_CT_SHIFT) & FFA_OP_REG6_CT_MASK)
554 #define FFA_OP_REG6_CT_GET(x) (((uint32_t)(x) & FFA_OP_REG6_CT_MASK) >> FFA_OP_REG6_CT_SHIFT)
555 
556 /* Bitfield definition for register: OP_REG7 */
557 /*
558  * CT (RW)
559  *
560  * Contents
561  */
562 #define FFA_OP_REG7_CT_MASK (0xFFFFFFFFUL)
563 #define FFA_OP_REG7_CT_SHIFT (0U)
564 #define FFA_OP_REG7_CT_SET(x) (((uint32_t)(x) << FFA_OP_REG7_CT_SHIFT) & FFA_OP_REG7_CT_MASK)
565 #define FFA_OP_REG7_CT_GET(x) (((uint32_t)(x) & FFA_OP_REG7_CT_MASK) >> FFA_OP_REG7_CT_SHIFT)
566 
567 
568 
569 
570 #endif /* HPM_FFA_H */
Definition: hpm_ffa_regs.h:12