• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /**
2  * Copyright (c) 2020 HiSilicon (Shanghai) Technologies CO., LIMITED.
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  *     http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * Unless required by applicable law or agreed to in writing, software
10  * distributed under the License is distributed on an "AS IS" BASIS,
11  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12  * See the License for the specific language governing permissions and
13  * limitations under the License.
14  *
15  * Description: hal spacc register header. \n
16  *
17  * History: \n
18  * 2023-03-22, Create file. \n
19  */
20 #ifndef HAL_SPACC_REG_H
21 #define HAL_SPACC_REG_H
22 #include "td_type.h"
23 
24 typedef enum {
25     SPACC_CPU_IDLE = 0x00000000,
26     SPACC_CPU_REE = 0x00000001,
27     SPACC_CPU_TEE = 0x00000002,
28     SPACC_CPU_PCPU = 0x00000004,
29     SPACC_CPU_AIDSP = 0x00000005,
30     SPACC_CPU_INVALID = 0xffffffff
31 } spacc_cpu_mask;
32 
33 #define SPACC_CALC_CRG_CFG                  (0x8030)
34 
35 #define SPACC_IE                            (0x00000004)
36 
37 #define CHN_WHO_USED_CLR(used, chn)      (used) &= ~(0x0fU << ((chn) * 4U))
38 #define CHN_WHO_USED_SET(used, chn, who) (used) |= (td_u32)(who) << ((td_u32)(chn) * 4U)
39 #define CHN_WHO_USED_GET(used, chn)      ((((used) >> ((chn) * 4U))) & 0x0fU)
40 
41 /*! \Define the offset of HASH reg */
42 #define SPACC_HASH_CHN_LOCK                        0x0040
43 #define SPACC_HASH_CHN_CLEAR_REQ                   0x0068
44 #define SPACC_INT_RAW_HASH_CLEAR_FINISH            0x0014
45 #define CHANN_HASH_STATE_VAL_ADDR(id)              (0xa004 + (id) * 0x80)
46 #define CHANN_HASH_STATE_VAL(id)                   (0xa000 + (id) * 0x80)
47 #define IN_HASH_CHN_CTRL(id)                       (0x5100 + ((id) - 1) * 0x100)
48 #define IN_HASH_CHN_KEY_CTRL(id)                   (0x5110 + ((id) - 1) * 0x100)
49 #define IN_HASH_CHN_NODE_START_ADDR_H(id)          (0x5120 + ((id) - 1) * 0x100)
50 #define IN_HASH_CHN_NODE_START_ADDR_L(id)          (0x5124 + ((id) - 1) * 0x100)
51 #define IN_HASH_CHN_NODE_LENGTH(id)                (0x512c + ((id) - 1) * 0x100)
52 #define IN_HASH_CHN_NODE_WR_POINT(id)              (0x5130 + ((id) - 1) * 0x100)
53 #define IN_HASH_CHN_NODE_RD_POINT(id)              (0x5134 + ((id) - 1) * 0x100)
54 #define IN_HASH_CHN_DATA_LEN(id)                   (0x51C0 + ((id) - 1) * 0x100)
55 #define HASH_CHANN_RAW_INT                         0x8600
56 #define HASH_CHANN_RAW_INT_EN                      0x8604
57 #define TEE_HASH_CALC_CTRL_CHECK_ERR               0x8068
58 #define TEE_HASH_CALC_CTRL_CHECK_ERR_STATUS        0x806c
59 #define REE_HASH_CALC_CTRL_CHECK_ERR               0x8078
60 #define REE_HASH_CALC_CTRL_CHECK_ERR_STATUS        0x807c
61 #define PCPU_HASH_CALC_CTRL_CHECK_ERR              0x8088
62 #define PCPU_HASH_CALC_CTRL_CHECK_ERR_STATUS       0x808c
63 #define AIDSP_HASH_CALC_CTRL_CHECK_ERR             0x8098
64 #define AIDSP_HASH_CALC_CTRL_CHECK_ERR_STATUS      0x809c
65 
66 #define ENCRYPT 0x5A
67 #define DECRYPT 0xA5
68 
69 /* ! \Define the offset of Cipher reg */
70 #define SPACC_SYM_CHN_LOCK                    0x0020
71 #define SPACC_INT_RAW_SYM_CLEAR_FINISH        0x0008
72 #define SPACC_EN_INT_RAW_SYM_CLEAR_FINISH     0x000c
73 #define SPACC_SYM_CHN_CLEAR_REQ               0x0060
74 #define SPACC_BUS_ERR                         0x0200
75 #define IN_SYM_CHN_CTRL(id)                   (0x4100 + ((id) - 1) * 0x100)
76 #define IN_SYM_OUT_CTRL(id)                   (0x4104 + ((id) - 1) * 0x100)
77 #define IN_SYM_CHN_KEY_CTRL(id)               (0x4110 + ((id) - 1) * 0x100)
78 #define IN_SYM_CHN_NODE_START_ADDR_H(id)      (0x4120 + ((id) - 1) * 0x100)
79 #define IN_SYM_CHN_NODE_START_ADDR_L(id)      (0x4124 + ((id) - 1) * 0x100)
80 #define IN_SYM_CHN_NODE_LENGTH(id)            (0x412c + ((id) - 1) * 0x100)
81 #define IN_SYM_CHN_NODE_WR_POINT(id)          (0x4130 + ((id) - 1) * 0x100)
82 #define IN_SYM_CHN_NODE_RD_POINT(id)          (0x4134 + ((id) - 1) * 0x100)
83 #define IN_SYM_CHN_NODE_CTRL(id)              (0x4140 + ((id) - 1) * 0x100)
84 #define DBG_IN_SYM_CHN_RD_ADDR_H(id)          (0x41a0 + ((id) - 1) * 0x100)
85 #define DBG_IN_SYM_CHN_RD_ADDR_L(id)          (0x41a4 + ((id) - 1) * 0x100)
86 #define DBG_IN_SYM_CHN_DATA_LEN(id)           (0x41c0 + ((id) - 1) * 0x100)
87 
88 #define TEE_SYM_CALC_CTRL_CHECK_ERR           0x8060
89 #define TEE_SYM_CALC_CTRL_CHECK_ERR_STATUS    0x8064
90 #define REE_SYM_CALC_CTRL_CHECK_ERR           0x8070
91 #define REE_SYM_CALC_CTRL_CHECK_ERR_STATUS    0x8074
92 #define PCPU_SYM_CALC_CTRL_CHECK_ERR          0x8080
93 #define PCPU_SYM_CALC_CTRL_CHECK_ERR_STATUS   0x8084
94 #define AIDSP_SYM_CALC_CTRL_CHECK_ERR         0x8090
95 #define AIDSP_SYM_CALC_CTRL_CHECK_ERR_STATUS  0x8094
96 
97 #define SYM_CHANN_RAW_INT     0x8610
98 #define SYM_CHANN_RAW_INT_EN  0x8614
99 #define SYM_CHANN_INT         0x8618
100 
101 #define CHANN_CIPHER_IVOUT(id)             (0x9000 + (id) * 0x80)
102 #define CHANN_CIPHER_DFA_EN(id)            (0x9020 + (id) * 0x80)
103 
104 #define OUT_SYM_CHAN_RAW_LAST_NODE_INT     0xc000
105 #define OUT_SYM_CHAN_RAW_LAST_NODE_INT_EN  0xc004
106 #define OUT_SYM_CHAN_LAST_NODE_INT         0xc008
107 #define OUT_SYM_CHAN_RAW_LEVEL_INT         0xc010
108 #define OUT_SYM_CHAN_RAW_LEVEL_INT_EN      0xc014
109 #define OUT_SYM_CHAN_LEVEL_INT             0xc018
110 
111 #define OUT_SYM_CHN_STATUS(id)                (0xD004 + ((id) - 1) * 0x100)
112 #define OUT_SYM_CHN_NODE_START_ADDR_H(id)     (0xD020 + ((id) - 1) * 0x100)
113 #define OUT_SYM_CHN_NODE_START_ADDR_L(id)     (0xD024 + ((id) - 1) * 0x100)
114 #define OUT_SYM_CHN_NODE_LENGTH(id)           (0xD028 + ((id) - 1) * 0x100)
115 #define OUT_SYM_CHN_NODE_WR_POINT(id)         (0xD030 + ((id) - 1) * 0x100)
116 #define OUT_SYM_CHN_NODE_RD_POINT(id)         (0xD034 + ((id) - 1) * 0x100)
117 #define OUT_SYM_CHN_NODE_CTRL(id)             (0xD040 + ((id) - 1) * 0x100)
118 #define DBG_OUT_SYM_CHN_RD_ADDR_H(id)         (0xD0a0 + ((id) - 1) * 0x100)
119 #define DBG_OUT_SYM_CHN_RD_ADDR_L(id)         (0xD0a4 + ((id) - 1) * 0x100)
120 #define DBG_OUT_SYM_CHN_NODE_LEFT_BUF_LEN(id) (0xD0a8 + ((id) - 1) * 0x100)
121 
122 #define IN_SYM_CHN0_CTRL                   0x4000
123 #define IN_SYM_CHN0_SPECIAL_CTRL           0x4004
124 #define IN_SYM_CHN0_KEY_CTRL               0x4010
125 #define IN_SYM_CHN0_IV_DATA_CTRL           0x4030
126 #define IN_SYM_CHN0_IV0                    0x4040
127 #define IN_SYM_CHN0_IV1                    0x4044
128 #define IN_SYM_CHN0_IV2                    0x4048
129 #define IN_SYM_CHN0_IV3                    0x404C
130 #define IN_SYM_CHN0_DATA0                  0x4050
131 #define IN_SYM_CHN0_DATA1                  0x4054
132 #define IN_SYM_CHN0_DATA2                  0x4058
133 #define IN_SYM_CHN0_DATA3                  0x405C
134 #define CHAN0_CIPHER_DOUT0                 0x8100
135 
136 #define SYMC_KEY_SIZE (32)
137 #define NODE_DEPTH    (2)
138 
139 #define SYMC_CFG_SECURE             (0x05)
140 #define SYMC_CFG_NON_SECURE         (0x0A)
141 
142 
143 #define ALG_DMA_REG   (0)
144 #define ALG_AES_REG   (2)
145 #define ALG_LEA_REG   (4)
146 #define ALG_SM4_REG   (5)
147 #define ALG_GHASH_REG (6)
148 #define ALG_TDES_REG  (7)
149 
150 #define MODE_ECB_REG        (0x01)
151 #define MODE_CBC_REG        (0x03)
152 #define MODE_CTR_REG        (0x06)
153 #define MODE_OFB_REG        (0x07)
154 #define MODE_CFB_REG        (0x08)
155 #define MODE_CCM_REG        (0x09)
156 #define MODE_GCM_REG        (0x0A)
157 #define MODE_GCTR_REG       (0x0B)
158 #define MODE_CMAC_REG       (0x0C)
159 #define MODE_CBC_NOOUT_REG  (0x0D)
160 #define MODE_GCTR_NOOUT_REG (0x0E)
161 
162 #define BIT_WIDTH_1_REG   (2)
163 #define BIT_WIDTH_8_REG   (1)
164 #define BIT_WIDTH_64_REG  (3)
165 #define BIT_WIDTH_128_REG (3)
166 
167 // internal iv state
168 #define SYMC_IV_STATE_START  (0)
169 #define SYMC_IV_STATE_UPDATE (1)
170 #define SYMC_IV_STATE_FINISH (2)
171 
172 typedef union {
173     struct {
174         td_u32 reserved_0 : 8;
175         td_u32 hash_chn_ss : 4;
176         td_u32 reserved_1 : 19;
177         td_u32 hash_chn_en : 1;
178     } bits;
179     td_u32 u32;
180 } in_hash_chn_ctrl;
181 
182 typedef union {
183     struct {
184         td_u32 hash_key_chn_id : 4;
185         td_u32 reserved_0 : 5;
186         td_u32 hmac_vld : 1;
187         td_u32 reserved_1 : 6;
188         td_u32 hash_chn_alg_sel : 4;
189         td_u32 hash_chn_alg_mode : 4;
190         td_u32 reserved_2 : 8;
191     } bits;
192     td_u32 u32;
193 } in_hash_chn_key_ctrl;
194 
195 // Define the union in_hash_chn_node_wr_point
196 typedef union {
197     // Define the struct bits
198     struct {
199         td_u32 hash_chn_node_wr_point : 8; // [7..0]
200         td_u32 reserved_0 : 24;            // [31..8]
201     } bits;
202 
203     // Define an unsigned member
204     td_u32 u32;
205 } in_hash_chn_node_wr_point;
206 
207 // Define the union in_hash_chn_node_wr_point
208 typedef union {
209     // Define the struct bits
210     struct {
211         td_u32 hash_chn_node_rd_point : 8; // [7..0]
212         td_u32 reserved_0 : 24;            // [31..8]
213     } bits;
214 
215     // Define an unsigned member
216     td_u32 u32;
217 } in_hash_chn_node_rd_point;
218 
219 // Define the union hash_chann_raw_int
220 typedef union {
221     // Define the struct bits
222     struct {
223         td_u32 hash_chann_raw_int : 16; // [15..0]
224         td_u32 reserved_0 : 16;         // [31..16]
225     } bits;
226 
227     // Define an unsigned member
228     td_u32 u32;
229 } hash_chann_raw_int;
230 
231 // Define the union tee_hash_calc_ctrl_check_err
232 typedef union {
233     // Define the struct bits
234     struct {
235         td_u32 reserved_0 : 1;
236         td_u32 hash_check_ss_error : 1;
237         td_u32 hash_check_alg_error : 1;
238         td_u32 hash_check_alg_invld_error : 1;
239         td_u32 reserved_1 : 2;
240         td_u32 hash_check_sc_error : 1;
241         td_u32 reserved_2 : 6;
242         td_u32 hash_check_sm3_disable_error : 1;
243         td_u32 hash_check_sha1_disable_error : 1;
244         td_u32 reserved_3 : 2;
245         td_u32 hash_tonly_error : 1;
246         td_u32 hash_aidsp_error : 1;
247         td_u32 reserved_4 : 13;
248     } bits;
249 
250     // Define an unsigned member
251     td_u32 u32;
252 } hash_calc_ctrl_check_err;
253 
254 // Define the union tee_hash_calc_ctrl_check_err
255 typedef union {
256     // Define the struct bits
257     struct {
258         td_u32 hash_error_code_clr : 1;
259         td_u32 reserved_0 : 15;
260         td_u32 error_hash_chan_id : 4;
261         td_u32 reserved_1 : 12;
262     } bits;
263 
264     // Define an unsigned member
265     td_u32 u32;
266 } hash_calc_ctrl_check_err_status;
267 
268 /* Define the union in_sym_out_ctrl */
269 typedef union {
270     /* Define the struct bits */
271     struct {
272         td_u32 sym_dma_copy : 2; /* [1..0] */
273         td_u32 reserved : 30;    /* [31..2] */
274     } bits;
275     /* Define an unsigned member */
276     td_u32 u32;
277 } in_sym_out_ctrl;
278 
279 /* Define the union in_sym_chn_key_ctrl */
280 typedef union {
281     /* Define the struct bits */
282     struct {
283         td_u32 sym_key_chn_id : 9;     /* [8..0] */
284         td_u32 reserved : 7;           /* [15..9] */
285         td_u32 sym_alg_sel : 4;        /* [19..16] */
286         td_u32 sym_alg_mode : 4;       /* [23..20] */
287         td_u32 sym_alg_key_len : 2;    /* [25..24] */
288         td_u32 sym_alg_data_width : 2; /* [27..26] */
289         td_u32 sym_alg_decrypt : 1;    /* [28] */
290         td_u32 reserved_2 : 3;         /* [31..29] */
291     } bits;
292     /* Define an unsigned member */
293     td_u32 u32;
294 } in_sym_chn_key_ctrl;
295 
296 /* Define the union in_sym_chn_ctrl */
297 typedef union {
298     /* Define the struct bits */
299     struct {
300         td_u32 reserved : 8;       /* [7..0] */
301         td_u32 sym_chn_ss : 4;     /* [8..11] */
302         td_u32 sym_chn_ds : 4;     /* [12..15] */
303         td_u32 reserved_2 : 15;    /* [30..16] */
304         td_u32 sym_chn_en : 1;     /* [31] */
305     } bits;
306     /* Define an unsigned member */
307     td_u32 u32;
308 } in_sym_chn_ctrl;
309 
310 /* Define the union in_sym_chn0_ctrl */
311 typedef union {
312     /* Define the struct bits */
313     struct {
314         td_u32 reserved : 31;     /* [30..0] */
315         td_u32 sym_chn0_req : 1;  /* [31] */
316     } bits;
317     /* Define an unsigned member */
318     td_u32 u32;
319 } in_sym_chn0_ctrl;
320 
321 /* Define the union in_sym_chn0_special_ctrl */
322 typedef union {
323     /* Define the struct bits */
324     struct {
325         td_u32 sym_chn0_odd_even : 1; /* [0] */
326         td_u32 reserved : 31;         /* [31..1] */
327     } bits;
328     /* Define an unsigned member */
329     td_u32 u32;
330 } in_sym_chn0_special_ctrl;
331 
332 /* Define the union in_sym_chn0_iv_data_ctrl */
333 typedef union {
334     /* Define the struct bits */
335     struct {
336         td_u32 sym_chn0_first_block : 1; /* [0] */
337         td_u32 sym_chn0_last_block : 1;  /* [1] */
338         td_u32 reserved : 14;            /* [15..2] */
339         td_u32 sym_chn0_block_len : 5;   /* [20..16] */
340         td_u32 reserved2 : 11;           /* [31..21] */
341     } bits;
342     /* Define an unsigned member */
343     td_u32 u32;
344 } in_sym_chn0_iv_data_ctrl;
345 
346 /* Define the union out_sym_chan_raw_int */
347 typedef union {
348     /* Define the struct bits */
349     struct {
350         td_u32 out_sym_chan_raw_int : 16; /* [15..0] */
351         td_u32 reserved_1 : 16;           /* [31..16] */
352     } bits;
353     /* Define an unsigned member */
354     td_u32 u32;
355 } out_sym_chan_raw_int;
356 
357 /* Define the union out_sym_chn_node_wr_point */
358 typedef union {
359     /* Define the struct bits */
360     struct {
361         td_u32 sym_chn_node_wr_point : 8; /* [7..0] */
362         td_u32 reserved_1 : 24;               /* [31..8] */
363     } bits;
364     /* Define an unsigned member */
365     td_u32 u32;
366 } out_sym_chn_node_wr_point;
367 
368 /* Define the union out_sym_chn_node_wr_point */
369 typedef union {
370     /* Define the struct bits */
371     struct {
372         td_u32 sym_chn_node_wr_point : 8; /* [7..0] */
373         td_u32 reserved_1 : 24;           /* [31..8] */
374     } bits;
375     /* Define an unsigned member */
376     td_u32 u32;
377 } in_sym_chn_node_wr_point;
378 
379 /* Define the union out_sym_chn_node_rd_point */
380 typedef union {
381     /* Define the struct bits */
382     struct {
383         td_u32 sym_chn_node_rd_point : 8; /* [7..0] */
384         td_u32 reserved_1 : 24;               /* [31..8] */
385     } bits;
386     /* Define an unsigned member */
387     td_u32 u32;
388 } out_sym_chn_node_rd_point;
389 
390 /* Define the union out_sym_chn_node_rd_point */
391 typedef union {
392     /* Define the struct bits */
393     struct {
394         td_u32 sym_chn_node_rd_point : 8; /* [7..0] */
395         td_u32 reserved_1 : 24;           /* [31..8] */
396     } bits;
397     /* Define an unsigned member */
398     td_u32 u32;
399 } in_sym_chn_node_rd_point;
400 
401 /* Define the union in_sym_chn_node_length */
402 typedef union {
403     /* Define the struct bits */
404     struct {
405         td_u32 sym_chn_node_length : 8; /* [7..0] */
406         td_u32 reserved_1 : 24;         /* [31..8] */
407     } bits;
408     /* Define an unsigned member */
409     td_u32 u32;
410 } in_sym_chn_node_length;
411 
412 /* Define the union out_sym_chn_node_length */
413 typedef union {
414     /* Define the struct bits */
415     struct {
416         td_u32 sym_chn_node_length : 8; /* [7..0] */
417         td_u32 reserved_1 : 24;             /* [31..8] */
418     } bits;
419     /* Define an unsigned member */
420     td_u32 u32;
421 } out_sym_chn_node_length;
422 
423 /* Define the union dbg_in_sym_chn_rd_addr_h */
424 typedef union {
425     /* Define the struct bits */
426     struct {
427         td_u32 dbg_sym_chn_rd_addr_h : 4; /* [3..0] */
428         td_u32 reserved : 28;             /* [31..4] */
429     } bits;
430     /* Define an unsigned member */
431     td_u32 u32;
432 } dbg_in_sym_chn_rd_addr_h;
433 
434 /* Define the union dbg_out_sym_chn_rd_addr_h */
435 typedef union {
436     /* Define the struct bits */
437     struct {
438         td_u32 dbg_sym_chn_rd_addr_h : 4; /* [3..0] */
439         td_u32 reserved : 28;             /* [31..4] */
440     } bits;
441     /* Define an unsigned member */
442     td_u32 u32;
443 } dbg_out_sym_chn_rd_addr_h;
444 
445 /* Define the union sym_calc_ctrl_check_err */
446 typedef union {
447     /* Define the struct bits */
448     struct {
449         td_u32    calc_ctrl_check_ds_error : 1;          /* [0]  */
450         td_u32    calc_ctrl_check_ss_error : 1;          /* [1]  */
451         td_u32    calc_ctrl_check_alg_error : 1;         /* [2]  */
452         td_u32    calc_ctrl_check_alg_invld_error : 1;   /* [3]  */
453         td_u32    calc_ctrl_check_dec_error : 1;         /* [4]  */
454         td_u32    reserved0 : 1;                         /* [5]  */
455         td_u32    calc_ctrl_check_sc_error : 1;          /* [6]  */
456         td_u32    calc_ctrl_check_key_size_error : 1;    /* [7]  */
457         td_u32    reserved : 8;                          /* [15..8]  */
458         td_u32    calc_ctrl_big_key_info_diff_error : 1; /* [16]  */
459         td_u32    calc_ctrl_tonly_error            : 1;  /* [17]  */
460         td_u32    calc_ctrl_aidsp_error : 1;             /* [18]  */
461         td_u32    reserved2 : 13;                        /* [31..19]  */
462     } bits;
463     /* Define an unsigned member */
464     td_u32 u32;
465 } sym_calc_ctrl_check_err;
466 
467 /* Define the union sym_calc_ctrl_check_err_status */
468 typedef union {
469     /* Define the struct bits */
470     struct {
471         td_u32 sym_error_code_clr : 1; /* [0] */
472         td_u32 reserved : 15;              /* [15..1] */
473         td_u32 error_sym_chan_id : 4;  /* [19..16] */
474         td_u32 reserved1 : 12;             /* [31..20] */
475     } bits;
476     /* Define an unsigned member */
477     td_u32 u32;
478 } sym_calc_ctrl_check_err_status;
479 
480 /* Define the union in_sym_chn_node_ctrl */
481 typedef union {
482     /* Define the struct bits */
483     struct {
484         td_u32 sym_chn_node_level : 8;     /* [7..0] */
485         td_u32 reserved_0 : 8;             /* [15..8] */
486         td_u32 sym_chn_node_cnt : 8;       /* [23..16] */
487         td_u32 reserved_1 : 7;             /* [30..24] */
488         td_u32 sym_chn_node_cnt_clear : 1; /* [31] */
489     } bits;
490     /* Define an unsigned member */
491     td_u32 u32;
492 } in_sym_chn_node_ctrl;
493 
494 /* Define the union out_sym_chn_node_ctrl */
495 typedef union {
496     /* Define the struct bits */
497     struct {
498         td_u32 out_sym_chn_node_level : 8; /* [7..0] */
499         td_u32 reserved_0 : 24;            /* [31..8] */
500     } bits;
501     /* Define an unsigned member */
502     td_u32 u32;
503 } out_sym_chn_node_ctrl;
504 
505 /* Define the union spacc_sym_chn_clear_req */
506 typedef union {
507     /* Define the struct bits */
508     struct {
509         td_u32 sym_chn_clear_req : 16; /* [15..0] */
510         td_u32 reserved_0 : 16;        /* [31..16] */
511     } bits;
512     /* Define an unsigned member */
513     td_u32 u32;
514 } spacc_sym_chn_clear_req;
515 
516 /* Define the union spacc_int_raw_sym_clear_finish */
517 typedef union {
518     /* Define the struct bits */
519     struct {
520         td_u32 int_raw_sym_clear_finish : 16; /* [15..0] */
521         td_u32 reserved_0 : 16;               /* [31..16] */
522     } bits;
523     /* Define an unsigned member */
524     td_u32 u32;
525 } spacc_int_raw_sym_clear_finish;
526 
527 /* Define the union sym_chann_raw_int */
528 typedef union {
529     /* Define the struct bits */
530     struct {
531         td_u32 sym_chann_raw_int : 16; /* [0] */
532         td_u32 reserved_0 : 16;        /* [31..16] */
533     } bits;
534     /* Define an unsigned member */
535     td_u32 u32;
536 } sym_chann_raw_int;
537 
538 /* Define the union sym_chann_raw_int_en */
539 typedef union {
540     /* Define the struct bits */
541     struct {
542         td_u32 sym_chann_int_en : 16; /* [0] */
543         td_u32 reserved_0 : 16;       /* [31..16] */
544     } bits;
545     /* Define an unsigned member */
546     td_u32 u32;
547 } sym_chann_raw_int_en;
548 
549 /* Define the union sym_chann_int */
550 typedef union {
551     /* Define the struct bits */
552     struct {
553         td_u32 sym_chann_int : 16; /* [0] */
554         td_u32 reserved_0 : 16;    /* [31..16] */
555     } bits;
556     /* Define an unsigned member */
557     td_u32 u32;
558 } sym_chann_int;
559 
560 /* Define the union sym_chan0_finish_raw_int */
561 typedef union {
562     /* Define the struct bits */
563     struct {
564         td_u32 sym_chan0_finish_raw_int : 1; /* [0] */
565         td_u32 reserved_0 : 31;              /* [31..1] */
566     } bits;
567     /* Define an unsigned member */
568     td_u32 u32;
569 } sym_chan0_finish_raw_int;
570 
571 /* Define the union sym_chan0_finish_raw_int_en */
572 typedef union {
573     /* Define the struct bits */
574     struct {
575         td_u32 sym_chan0_finish_int_en : 1; /* [0] */
576         td_u32 reserved_0 : 31;             /* [31..1] */
577     } bits;
578     /* Define an unsigned member */
579     td_u32 u32;
580 } sym_chan0_finish_raw_int_en;
581 
582 /* Define the union sym_chan0_finish_int */
583 typedef union {
584     /* Define the struct bits */
585     struct {
586         td_u32 sym_chan0_finish_int : 1; /* [0] */
587         td_u32 reserved_0 : 31;          /* [31..1] */
588     } bits;
589     /* Define an unsigned member */
590     td_u32 u32;
591 } sym_chan0_finish_int;
592 
593 /* Define the union sym_chann_error_raw_int */
594 typedef union {
595     /* Define the struct bits */
596     struct {
597         td_u32 sym_chan_raw_err_int : 16; /* [0] */
598         td_u32 reserved_0 : 16;           /* [31..16] */
599     } bits;
600     /* Define an unsigned member */
601     td_u32 u32;
602 } sym_chann_error_raw_int;
603 
604 /* Define the union sym_chann_error_raw_int_en */
605 typedef union {
606     /* Define the struct bits */
607     struct {
608         td_u32 sym_chan_err_int_en : 16; /* [0] */
609         td_u32 reserved_0 : 16;          /* [31..16] */
610     } bits;
611     /* Define an unsigned member */
612     td_u32 u32;
613 } sym_chann_error_raw_int_en;
614 
615 typedef union {
616     struct {
617         td_u32 chann_dfa_en  : 4;  /* [3..0]  */
618         td_u32 reserved      : 28; /* [31..4] */
619     } bits;
620     td_u32 u32;
621 } symc_chann_dfa_en;
622 
623 /* Define the union sym_chann_error_int */
624 typedef union {
625     /* Define the struct bits */
626     struct {
627         td_u32 sym_chan_err_int : 16; /* [0] */
628         td_u32 reserved_0 : 16;       /* [31..16] */
629     } bits;
630     /* Define an unsigned member */
631     td_u32 u32;
632 } sym_chann_error_int;
633 
634 typedef union {
635     struct {
636         td_u32 sec_dfa_en  : 4;  /* [3..0]  */
637         td_u32 reserved    : 28; /* [31..4] */
638     } bits;
639     td_u32 u32;
640 } spacc_sec_dfa_en;
641 
642 /* Define the union spacc_ie */
643 typedef union {
644     /* Define the struct bits */
645     struct {
646         unsigned int spacc_ie_ree : 1; /* [0] */
647         unsigned int reserved_0 : 3;   /* [3..1] */
648         unsigned int spacc_ie_tee : 1; /* [4] */
649         unsigned int reserved_1 : 3;   /* [7..5] */
650         unsigned int spacc_ie_hpp : 1; /* [8] */
651         unsigned int reserved_2 : 23;  /* [31..9] */
652     } bits;
653     /* Define an unsigned member */
654     unsigned int u32;
655 } spacc_ie;
656 
657 #endif