Definitions of registers and CAN FD frame message box of CTU CAN FD IP core are generated the specification in CACTUS/IP-XACT format. CTU CAN FD IP core repository https://gitlab.fel.cvut.cz/canbus/ctucanfd_ip_core The location of the CTU CAN IP core specification within IP core design spec/CTU/ip/CAN_FD_IP_Core/2.1/CAN_FD_IP_Core.2.1.xml The header files are generated by pyXact_generator designed by Ondrej Ille which is based on ipyxact_parser. The specification is source of header files for driver and emulation, documentation and VHDL registers map implementation. Signed-off-by: Jan Charvat <charvj10@fel.cvut.cz> Signed-off-by: Pavel Pisa <pisa@cmp.felk.cvut.cz> Message-Id: <97ae620f724bf1d76f127aaf628f7aec3af0a11c.1600069689.git.pisa@cmp.felk.cvut.cz> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
190 lines
5.3 KiB
C
190 lines
5.3 KiB
C
/* 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 __CTU_CAN_FD_CAN_FD_FRAME_FORMAT__
|
|
#define __CTU_CAN_FD_CAN_FD_FRAME_FORMAT__
|
|
|
|
/* 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
|