1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
|
/* SPDX-License-Identifier: GPL-2.0-or-later */
/*******************************************************************************
*
* CTU CAN FD IP Core
*
* Copyright (C) 2015-2018 Ondrej Ille <ondrej.ille@gmail.com> FEE CTU
* Copyright (C) 2018-2020 Ondrej Ille <ondrej.ille@gmail.com> self-funded
* Copyright (C) 2018-2019 Martin Jerabek <martin.jerabek01@gmail.com> FEE CTU
* Copyright (C) 2018-2020 Pavel Pisa <pisa@cmp.felk.cvut.cz> FEE CTU/self-funded
*
* Project advisors:
* Jiri Novak <jnovak@fel.cvut.cz>
* Pavel Pisa <pisa@cmp.felk.cvut.cz>
*
* Department of Measurement (http://meas.fel.cvut.cz/)
* Faculty of Electrical Engineering (http://www.fel.cvut.cz)
* Czech Technical University (http://www.cvut.cz/)
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
******************************************************************************/
/* This file is autogenerated, DO NOT EDIT! */
#ifndef HW_CAN_CTU_CAN_FD_FRAME_H
#define HW_CAN_CTU_CAN_FD_FRAME_H
/* CAN_Frame_format memory map */
enum ctu_can_fd_can_frame_format {
CTU_CAN_FD_FRAME_FORM_W = 0x0,
CTU_CAN_FD_IDENTIFIER_W = 0x4,
CTU_CAN_FD_TIMESTAMP_L_W = 0x8,
CTU_CAN_FD_TIMESTAMP_U_W = 0xc,
CTU_CAN_FD_DATA_1_4_W = 0x10,
CTU_CAN_FD_DATA_5_8_W = 0x14,
CTU_CAN_FD_DATA_61_64_W = 0x4c,
};
/* Register descriptions: */
union ctu_can_fd_frame_form_w {
uint32_t u32;
struct ctu_can_fd_frame_form_w_s {
#ifdef __LITTLE_ENDIAN_BITFIELD
/* FRAME_FORM_W */
uint32_t dlc : 4;
uint32_t reserved_4 : 1;
uint32_t rtr : 1;
uint32_t ide : 1;
uint32_t fdf : 1;
uint32_t reserved_8 : 1;
uint32_t brs : 1;
uint32_t esi_rsv : 1;
uint32_t rwcnt : 5;
uint32_t reserved_31_16 : 16;
#else
uint32_t reserved_31_16 : 16;
uint32_t rwcnt : 5;
uint32_t esi_rsv : 1;
uint32_t brs : 1;
uint32_t reserved_8 : 1;
uint32_t fdf : 1;
uint32_t ide : 1;
uint32_t rtr : 1;
uint32_t reserved_4 : 1;
uint32_t dlc : 4;
#endif
} s;
};
enum ctu_can_fd_frame_form_w_rtr {
NO_RTR_FRAME = 0x0,
RTR_FRAME = 0x1,
};
enum ctu_can_fd_frame_form_w_ide {
BASE = 0x0,
EXTENDED = 0x1,
};
enum ctu_can_fd_frame_form_w_fdf {
NORMAL_CAN = 0x0,
FD_CAN = 0x1,
};
enum ctu_can_fd_frame_form_w_brs {
BR_NO_SHIFT = 0x0,
BR_SHIFT = 0x1,
};
enum ctu_can_fd_frame_form_w_esi_rsv {
ESI_ERR_ACTIVE = 0x0,
ESI_ERR_PASIVE = 0x1,
};
union ctu_can_fd_identifier_w {
uint32_t u32;
struct ctu_can_fd_identifier_w_s {
#ifdef __LITTLE_ENDIAN_BITFIELD
/* IDENTIFIER_W */
uint32_t identifier_ext : 18;
uint32_t identifier_base : 11;
uint32_t reserved_31_29 : 3;
#else
uint32_t reserved_31_29 : 3;
uint32_t identifier_base : 11;
uint32_t identifier_ext : 18;
#endif
} s;
};
union ctu_can_fd_timestamp_l_w {
uint32_t u32;
struct ctu_can_fd_timestamp_l_w_s {
/* TIMESTAMP_L_W */
uint32_t time_stamp_31_0 : 32;
} s;
};
union ctu_can_fd_timestamp_u_w {
uint32_t u32;
struct ctu_can_fd_timestamp_u_w_s {
/* TIMESTAMP_U_W */
uint32_t timestamp_l_w : 32;
} s;
};
union ctu_can_fd_data_1_4_w {
uint32_t u32;
struct ctu_can_fd_data_1_4_w_s {
#ifdef __LITTLE_ENDIAN_BITFIELD
/* DATA_1_4_W */
uint32_t data_1 : 8;
uint32_t data_2 : 8;
uint32_t data_3 : 8;
uint32_t data_4 : 8;
#else
uint32_t data_4 : 8;
uint32_t data_3 : 8;
uint32_t data_2 : 8;
uint32_t data_1 : 8;
#endif
} s;
};
union ctu_can_fd_data_5_8_w {
uint32_t u32;
struct ctu_can_fd_data_5_8_w_s {
#ifdef __LITTLE_ENDIAN_BITFIELD
/* DATA_5_8_W */
uint32_t data_5 : 8;
uint32_t data_6 : 8;
uint32_t data_7 : 8;
uint32_t data_8 : 8;
#else
uint32_t data_8 : 8;
uint32_t data_7 : 8;
uint32_t data_6 : 8;
uint32_t data_5 : 8;
#endif
} s;
};
union ctu_can_fd_data_61_64_w {
uint32_t u32;
struct ctu_can_fd_data_61_64_w_s {
#ifdef __LITTLE_ENDIAN_BITFIELD
/* DATA_61_64_W */
uint32_t data_61 : 8;
uint32_t data_62 : 8;
uint32_t data_63 : 8;
uint32_t data_64 : 8;
#else
uint32_t data_64 : 8;
uint32_t data_63 : 8;
uint32_t data_62 : 8;
uint32_t data_61 : 8;
#endif
} s;
};
#endif
|