cachepc-qemu

Fork of AMDESE/qemu with changes for cachepc side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-qemu
Log | Files | Refs | Submodules | LICENSE | sfeed.txt

ctu_can_fd_regs.h (27480B)


      1/* SPDX-License-Identifier: GPL-2.0-or-later */
      2/*******************************************************************************
      3 *
      4 * CTU CAN FD IP Core
      5 *
      6 * Copyright (C) 2015-2018 Ondrej Ille <ondrej.ille@gmail.com> FEE CTU
      7 * Copyright (C) 2018-2020 Ondrej Ille <ondrej.ille@gmail.com> self-funded
      8 * Copyright (C) 2018-2019 Martin Jerabek <martin.jerabek01@gmail.com> FEE CTU
      9 * Copyright (C) 2018-2020 Pavel Pisa <pisa@cmp.felk.cvut.cz> FEE CTU/self-funded
     10 *
     11 * Project advisors:
     12 *     Jiri Novak <jnovak@fel.cvut.cz>
     13 *     Pavel Pisa <pisa@cmp.felk.cvut.cz>
     14 *
     15 * Department of Measurement         (http://meas.fel.cvut.cz/)
     16 * Faculty of Electrical Engineering (http://www.fel.cvut.cz)
     17 * Czech Technical University        (http://www.cvut.cz/)
     18 *
     19 * This program is free software; you can redistribute it and/or
     20 * modify it under the terms of the GNU General Public License
     21 * as published by the Free Software Foundation; either version 2
     22 * of the License, or (at your option) any later version.
     23 *
     24 * This program is distributed in the hope that it will be useful,
     25 * but WITHOUT ANY WARRANTY; without even the implied warranty of
     26 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     27 * GNU General Public License for more details.
     28 ******************************************************************************/
     29
     30/* This file is autogenerated, DO NOT EDIT! */
     31
     32#ifndef __CTU_CAN_FD_CAN_FD_REGISTER_MAP__
     33#define __CTU_CAN_FD_CAN_FD_REGISTER_MAP__
     34
     35/* CAN_Registers memory map */
     36enum ctu_can_fd_can_registers {
     37	CTU_CAN_FD_DEVICE_ID             = 0x0,
     38	CTU_CAN_FD_VERSION               = 0x2,
     39	CTU_CAN_FD_MODE                  = 0x4,
     40	CTU_CAN_FD_SETTINGS              = 0x6,
     41	CTU_CAN_FD_STATUS                = 0x8,
     42	CTU_CAN_FD_COMMAND               = 0xc,
     43	CTU_CAN_FD_INT_STAT             = 0x10,
     44	CTU_CAN_FD_INT_ENA_SET          = 0x14,
     45	CTU_CAN_FD_INT_ENA_CLR          = 0x18,
     46	CTU_CAN_FD_INT_MASK_SET         = 0x1c,
     47	CTU_CAN_FD_INT_MASK_CLR         = 0x20,
     48	CTU_CAN_FD_BTR                  = 0x24,
     49	CTU_CAN_FD_BTR_FD               = 0x28,
     50	CTU_CAN_FD_EWL                  = 0x2c,
     51	CTU_CAN_FD_ERP                  = 0x2d,
     52	CTU_CAN_FD_FAULT_STATE          = 0x2e,
     53	CTU_CAN_FD_REC                  = 0x30,
     54	CTU_CAN_FD_TEC                  = 0x32,
     55	CTU_CAN_FD_ERR_NORM             = 0x34,
     56	CTU_CAN_FD_ERR_FD               = 0x36,
     57	CTU_CAN_FD_CTR_PRES             = 0x38,
     58	CTU_CAN_FD_FILTER_A_MASK        = 0x3c,
     59	CTU_CAN_FD_FILTER_A_VAL         = 0x40,
     60	CTU_CAN_FD_FILTER_B_MASK        = 0x44,
     61	CTU_CAN_FD_FILTER_B_VAL         = 0x48,
     62	CTU_CAN_FD_FILTER_C_MASK        = 0x4c,
     63	CTU_CAN_FD_FILTER_C_VAL         = 0x50,
     64	CTU_CAN_FD_FILTER_RAN_LOW       = 0x54,
     65	CTU_CAN_FD_FILTER_RAN_HIGH      = 0x58,
     66	CTU_CAN_FD_FILTER_CONTROL       = 0x5c,
     67	CTU_CAN_FD_FILTER_STATUS        = 0x5e,
     68	CTU_CAN_FD_RX_MEM_INFO          = 0x60,
     69	CTU_CAN_FD_RX_POINTERS          = 0x64,
     70	CTU_CAN_FD_RX_STATUS            = 0x68,
     71	CTU_CAN_FD_RX_SETTINGS          = 0x6a,
     72	CTU_CAN_FD_RX_DATA              = 0x6c,
     73	CTU_CAN_FD_TX_STATUS            = 0x70,
     74	CTU_CAN_FD_TX_COMMAND           = 0x74,
     75	CTU_CAN_FD_TX_PRIORITY          = 0x78,
     76	CTU_CAN_FD_ERR_CAPT             = 0x7c,
     77	CTU_CAN_FD_ALC                  = 0x7e,
     78	CTU_CAN_FD_TRV_DELAY            = 0x80,
     79	CTU_CAN_FD_SSP_CFG              = 0x82,
     80	CTU_CAN_FD_RX_FR_CTR            = 0x84,
     81	CTU_CAN_FD_TX_FR_CTR            = 0x88,
     82	CTU_CAN_FD_DEBUG_REGISTER       = 0x8c,
     83	CTU_CAN_FD_YOLO_REG             = 0x90,
     84	CTU_CAN_FD_TIMESTAMP_LOW        = 0x94,
     85	CTU_CAN_FD_TIMESTAMP_HIGH       = 0x98,
     86	CTU_CAN_FD_TXTB1_DATA_1        = 0x100,
     87	CTU_CAN_FD_TXTB1_DATA_2        = 0x104,
     88	CTU_CAN_FD_TXTB1_DATA_20       = 0x14c,
     89	CTU_CAN_FD_TXTB2_DATA_1        = 0x200,
     90	CTU_CAN_FD_TXTB2_DATA_2        = 0x204,
     91	CTU_CAN_FD_TXTB2_DATA_20       = 0x24c,
     92	CTU_CAN_FD_TXTB3_DATA_1        = 0x300,
     93	CTU_CAN_FD_TXTB3_DATA_2        = 0x304,
     94	CTU_CAN_FD_TXTB3_DATA_20       = 0x34c,
     95	CTU_CAN_FD_TXTB4_DATA_1        = 0x400,
     96	CTU_CAN_FD_TXTB4_DATA_2        = 0x404,
     97	CTU_CAN_FD_TXTB4_DATA_20       = 0x44c,
     98};
     99
    100
    101/* Register descriptions: */
    102union ctu_can_fd_device_id_version {
    103	uint32_t u32;
    104	struct ctu_can_fd_device_id_version_s {
    105#ifdef __LITTLE_ENDIAN_BITFIELD
    106  /* DEVICE_ID */
    107		uint32_t device_id              : 16;
    108  /* VERSION */
    109		uint32_t ver_minor               : 8;
    110		uint32_t ver_major               : 8;
    111#else
    112		uint32_t ver_major               : 8;
    113		uint32_t ver_minor               : 8;
    114		uint32_t device_id              : 16;
    115#endif
    116	} s;
    117};
    118
    119enum ctu_can_fd_device_id_device_id {
    120	CTU_CAN_FD_ID    = 0xcafd,
    121};
    122
    123union ctu_can_fd_mode_settings {
    124	uint32_t u32;
    125	struct ctu_can_fd_mode_settings_s {
    126#ifdef __LITTLE_ENDIAN_BITFIELD
    127  /* MODE */
    128		uint32_t rst                     : 1;
    129		uint32_t lom                     : 1;
    130		uint32_t stm                     : 1;
    131		uint32_t afm                     : 1;
    132		uint32_t fde                     : 1;
    133		uint32_t reserved_6_5            : 2;
    134		uint32_t acf                     : 1;
    135		uint32_t tstm                    : 1;
    136		uint32_t reserved_15_9           : 7;
    137  /* SETTINGS */
    138		uint32_t rtrle                   : 1;
    139		uint32_t rtrth                   : 4;
    140		uint32_t ilbp                    : 1;
    141		uint32_t ena                     : 1;
    142		uint32_t nisofd                  : 1;
    143		uint32_t pex                     : 1;
    144		uint32_t reserved_31_25          : 7;
    145#else
    146		uint32_t reserved_31_25          : 7;
    147		uint32_t pex                     : 1;
    148		uint32_t nisofd                  : 1;
    149		uint32_t ena                     : 1;
    150		uint32_t ilbp                    : 1;
    151		uint32_t rtrth                   : 4;
    152		uint32_t rtrle                   : 1;
    153		uint32_t reserved_15_9           : 7;
    154		uint32_t tstm                    : 1;
    155		uint32_t acf                     : 1;
    156		uint32_t reserved_6_5            : 2;
    157		uint32_t fde                     : 1;
    158		uint32_t afm                     : 1;
    159		uint32_t stm                     : 1;
    160		uint32_t lom                     : 1;
    161		uint32_t rst                     : 1;
    162#endif
    163	} s;
    164};
    165
    166enum ctu_can_fd_mode_lom {
    167	LOM_DISABLED       = 0x0,
    168	LOM_ENABLED        = 0x1,
    169};
    170
    171enum ctu_can_fd_mode_stm {
    172	STM_DISABLED       = 0x0,
    173	STM_ENABLED        = 0x1,
    174};
    175
    176enum ctu_can_fd_mode_afm {
    177	AFM_DISABLED       = 0x0,
    178	AFM_ENABLED        = 0x1,
    179};
    180
    181enum ctu_can_fd_mode_fde {
    182	FDE_DISABLE       = 0x0,
    183	FDE_ENABLE        = 0x1,
    184};
    185
    186enum ctu_can_fd_mode_acf {
    187	ACF_DISABLED       = 0x0,
    188	ACF_ENABLED        = 0x1,
    189};
    190
    191enum ctu_can_fd_settings_rtrle {
    192	RTRLE_DISABLED       = 0x0,
    193	RTRLE_ENABLED        = 0x1,
    194};
    195
    196enum ctu_can_fd_settings_ilbp {
    197	INT_LOOP_DISABLED       = 0x0,
    198	INT_LOOP_ENABLED        = 0x1,
    199};
    200
    201enum ctu_can_fd_settings_ena {
    202	CTU_CAN_DISABLED       = 0x0,
    203	CTU_CAN_ENABLED        = 0x1,
    204};
    205
    206enum ctu_can_fd_settings_nisofd {
    207	ISO_FD           = 0x0,
    208	NON_ISO_FD       = 0x1,
    209};
    210
    211enum ctu_can_fd_settings_pex {
    212	PROTOCOL_EXCEPTION_DISABLED       = 0x0,
    213	PROTOCOL_EXCEPTION_ENABLED        = 0x1,
    214};
    215
    216union ctu_can_fd_status {
    217	uint32_t u32;
    218	struct ctu_can_fd_status_s {
    219#ifdef __LITTLE_ENDIAN_BITFIELD
    220  /* STATUS */
    221		uint32_t rxne                    : 1;
    222		uint32_t dor                     : 1;
    223		uint32_t txnf                    : 1;
    224		uint32_t eft                     : 1;
    225		uint32_t rxs                     : 1;
    226		uint32_t txs                     : 1;
    227		uint32_t ewl                     : 1;
    228		uint32_t idle                    : 1;
    229		uint32_t reserved_31_8          : 24;
    230#else
    231		uint32_t reserved_31_8          : 24;
    232		uint32_t idle                    : 1;
    233		uint32_t ewl                     : 1;
    234		uint32_t txs                     : 1;
    235		uint32_t rxs                     : 1;
    236		uint32_t eft                     : 1;
    237		uint32_t txnf                    : 1;
    238		uint32_t dor                     : 1;
    239		uint32_t rxne                    : 1;
    240#endif
    241	} s;
    242};
    243
    244union ctu_can_fd_command {
    245	uint32_t u32;
    246	struct ctu_can_fd_command_s {
    247#ifdef __LITTLE_ENDIAN_BITFIELD
    248		uint32_t reserved_1_0            : 2;
    249  /* COMMAND */
    250		uint32_t rrb                     : 1;
    251		uint32_t cdo                     : 1;
    252		uint32_t ercrst                  : 1;
    253		uint32_t rxfcrst                 : 1;
    254		uint32_t txfcrst                 : 1;
    255		uint32_t reserved_31_7          : 25;
    256#else
    257		uint32_t reserved_31_7          : 25;
    258		uint32_t txfcrst                 : 1;
    259		uint32_t rxfcrst                 : 1;
    260		uint32_t ercrst                  : 1;
    261		uint32_t cdo                     : 1;
    262		uint32_t rrb                     : 1;
    263		uint32_t reserved_1_0            : 2;
    264#endif
    265	} s;
    266};
    267
    268union ctu_can_fd_int_stat {
    269	uint32_t u32;
    270	struct ctu_can_fd_int_stat_s {
    271#ifdef __LITTLE_ENDIAN_BITFIELD
    272  /* INT_STAT */
    273		uint32_t rxi                     : 1;
    274		uint32_t txi                     : 1;
    275		uint32_t ewli                    : 1;
    276		uint32_t doi                     : 1;
    277		uint32_t fcsi                    : 1;
    278		uint32_t ali                     : 1;
    279		uint32_t bei                     : 1;
    280		uint32_t ofi                     : 1;
    281		uint32_t rxfi                    : 1;
    282		uint32_t bsi                     : 1;
    283		uint32_t rbnei                   : 1;
    284		uint32_t txbhci                  : 1;
    285		uint32_t reserved_31_12         : 20;
    286#else
    287		uint32_t reserved_31_12         : 20;
    288		uint32_t txbhci                  : 1;
    289		uint32_t rbnei                   : 1;
    290		uint32_t bsi                     : 1;
    291		uint32_t rxfi                    : 1;
    292		uint32_t ofi                     : 1;
    293		uint32_t bei                     : 1;
    294		uint32_t ali                     : 1;
    295		uint32_t fcsi                    : 1;
    296		uint32_t doi                     : 1;
    297		uint32_t ewli                    : 1;
    298		uint32_t txi                     : 1;
    299		uint32_t rxi                     : 1;
    300#endif
    301	} s;
    302};
    303
    304union ctu_can_fd_int_ena_set {
    305	uint32_t u32;
    306	struct ctu_can_fd_int_ena_set_s {
    307#ifdef __LITTLE_ENDIAN_BITFIELD
    308  /* INT_ENA_SET */
    309		uint32_t int_ena_set            : 12;
    310		uint32_t reserved_31_12         : 20;
    311#else
    312		uint32_t reserved_31_12         : 20;
    313		uint32_t int_ena_set            : 12;
    314#endif
    315	} s;
    316};
    317
    318union ctu_can_fd_int_ena_clr {
    319	uint32_t u32;
    320	struct ctu_can_fd_int_ena_clr_s {
    321#ifdef __LITTLE_ENDIAN_BITFIELD
    322  /* INT_ENA_CLR */
    323		uint32_t int_ena_clr            : 12;
    324		uint32_t reserved_31_12         : 20;
    325#else
    326		uint32_t reserved_31_12         : 20;
    327		uint32_t int_ena_clr            : 12;
    328#endif
    329	} s;
    330};
    331
    332union ctu_can_fd_int_mask_set {
    333	uint32_t u32;
    334	struct ctu_can_fd_int_mask_set_s {
    335#ifdef __LITTLE_ENDIAN_BITFIELD
    336  /* INT_MASK_SET */
    337		uint32_t int_mask_set           : 12;
    338		uint32_t reserved_31_12         : 20;
    339#else
    340		uint32_t reserved_31_12         : 20;
    341		uint32_t int_mask_set           : 12;
    342#endif
    343	} s;
    344};
    345
    346union ctu_can_fd_int_mask_clr {
    347	uint32_t u32;
    348	struct ctu_can_fd_int_mask_clr_s {
    349#ifdef __LITTLE_ENDIAN_BITFIELD
    350  /* INT_MASK_CLR */
    351		uint32_t int_mask_clr           : 12;
    352		uint32_t reserved_31_12         : 20;
    353#else
    354		uint32_t reserved_31_12         : 20;
    355		uint32_t int_mask_clr           : 12;
    356#endif
    357	} s;
    358};
    359
    360union ctu_can_fd_btr {
    361	uint32_t u32;
    362	struct ctu_can_fd_btr_s {
    363#ifdef __LITTLE_ENDIAN_BITFIELD
    364  /* BTR */
    365		uint32_t prop                    : 7;
    366		uint32_t ph1                     : 6;
    367		uint32_t ph2                     : 6;
    368		uint32_t brp                     : 8;
    369		uint32_t sjw                     : 5;
    370#else
    371		uint32_t sjw                     : 5;
    372		uint32_t brp                     : 8;
    373		uint32_t ph2                     : 6;
    374		uint32_t ph1                     : 6;
    375		uint32_t prop                    : 7;
    376#endif
    377	} s;
    378};
    379
    380union ctu_can_fd_btr_fd {
    381	uint32_t u32;
    382	struct ctu_can_fd_btr_fd_s {
    383#ifdef __LITTLE_ENDIAN_BITFIELD
    384  /* BTR_FD */
    385		uint32_t prop_fd                 : 6;
    386		uint32_t reserved_6              : 1;
    387		uint32_t ph1_fd                  : 5;
    388		uint32_t reserved_12             : 1;
    389		uint32_t ph2_fd                  : 5;
    390		uint32_t reserved_18             : 1;
    391		uint32_t brp_fd                  : 8;
    392		uint32_t sjw_fd                  : 5;
    393#else
    394		uint32_t sjw_fd                  : 5;
    395		uint32_t brp_fd                  : 8;
    396		uint32_t reserved_18             : 1;
    397		uint32_t ph2_fd                  : 5;
    398		uint32_t reserved_12             : 1;
    399		uint32_t ph1_fd                  : 5;
    400		uint32_t reserved_6              : 1;
    401		uint32_t prop_fd                 : 6;
    402#endif
    403	} s;
    404};
    405
    406union ctu_can_fd_ewl_erp_fault_state {
    407	uint32_t u32;
    408	struct ctu_can_fd_ewl_erp_fault_state_s {
    409#ifdef __LITTLE_ENDIAN_BITFIELD
    410  /* EWL */
    411		uint32_t ew_limit                : 8;
    412  /* ERP */
    413		uint32_t erp_limit               : 8;
    414  /* FAULT_STATE */
    415		uint32_t era                     : 1;
    416		uint32_t erp                     : 1;
    417		uint32_t bof                     : 1;
    418		uint32_t reserved_31_19         : 13;
    419#else
    420		uint32_t reserved_31_19         : 13;
    421		uint32_t bof                     : 1;
    422		uint32_t erp                     : 1;
    423		uint32_t era                     : 1;
    424		uint32_t erp_limit               : 8;
    425		uint32_t ew_limit                : 8;
    426#endif
    427	} s;
    428};
    429
    430union ctu_can_fd_rec_tec {
    431	uint32_t u32;
    432	struct ctu_can_fd_rec_tec_s {
    433#ifdef __LITTLE_ENDIAN_BITFIELD
    434  /* REC */
    435		uint32_t rec_val                 : 9;
    436		uint32_t reserved_15_9           : 7;
    437  /* TEC */
    438		uint32_t tec_val                 : 9;
    439		uint32_t reserved_31_25          : 7;
    440#else
    441		uint32_t reserved_31_25          : 7;
    442		uint32_t tec_val                 : 9;
    443		uint32_t reserved_15_9           : 7;
    444		uint32_t rec_val                 : 9;
    445#endif
    446	} s;
    447};
    448
    449union ctu_can_fd_err_norm_err_fd {
    450	uint32_t u32;
    451	struct ctu_can_fd_err_norm_err_fd_s {
    452#ifdef __LITTLE_ENDIAN_BITFIELD
    453  /* ERR_NORM */
    454		uint32_t err_norm_val           : 16;
    455  /* ERR_FD */
    456		uint32_t err_fd_val             : 16;
    457#else
    458		uint32_t err_fd_val             : 16;
    459		uint32_t err_norm_val           : 16;
    460#endif
    461	} s;
    462};
    463
    464union ctu_can_fd_ctr_pres {
    465	uint32_t u32;
    466	struct ctu_can_fd_ctr_pres_s {
    467#ifdef __LITTLE_ENDIAN_BITFIELD
    468  /* CTR_PRES */
    469		uint32_t ctpv                    : 9;
    470		uint32_t ptx                     : 1;
    471		uint32_t prx                     : 1;
    472		uint32_t enorm                   : 1;
    473		uint32_t efd                     : 1;
    474		uint32_t reserved_31_13         : 19;
    475#else
    476		uint32_t reserved_31_13         : 19;
    477		uint32_t efd                     : 1;
    478		uint32_t enorm                   : 1;
    479		uint32_t prx                     : 1;
    480		uint32_t ptx                     : 1;
    481		uint32_t ctpv                    : 9;
    482#endif
    483	} s;
    484};
    485
    486union ctu_can_fd_filter_a_mask {
    487	uint32_t u32;
    488	struct ctu_can_fd_filter_a_mask_s {
    489#ifdef __LITTLE_ENDIAN_BITFIELD
    490  /* FILTER_A_MASK */
    491		uint32_t bit_mask_a_val         : 29;
    492		uint32_t reserved_31_29          : 3;
    493#else
    494		uint32_t reserved_31_29          : 3;
    495		uint32_t bit_mask_a_val         : 29;
    496#endif
    497	} s;
    498};
    499
    500union ctu_can_fd_filter_a_val {
    501	uint32_t u32;
    502	struct ctu_can_fd_filter_a_val_s {
    503#ifdef __LITTLE_ENDIAN_BITFIELD
    504  /* FILTER_A_VAL */
    505		uint32_t bit_val_a_val          : 29;
    506		uint32_t reserved_31_29          : 3;
    507#else
    508		uint32_t reserved_31_29          : 3;
    509		uint32_t bit_val_a_val          : 29;
    510#endif
    511	} s;
    512};
    513
    514union ctu_can_fd_filter_b_mask {
    515	uint32_t u32;
    516	struct ctu_can_fd_filter_b_mask_s {
    517#ifdef __LITTLE_ENDIAN_BITFIELD
    518  /* FILTER_B_MASK */
    519		uint32_t bit_mask_b_val         : 29;
    520		uint32_t reserved_31_29          : 3;
    521#else
    522		uint32_t reserved_31_29          : 3;
    523		uint32_t bit_mask_b_val         : 29;
    524#endif
    525	} s;
    526};
    527
    528union ctu_can_fd_filter_b_val {
    529	uint32_t u32;
    530	struct ctu_can_fd_filter_b_val_s {
    531#ifdef __LITTLE_ENDIAN_BITFIELD
    532  /* FILTER_B_VAL */
    533		uint32_t bit_val_b_val          : 29;
    534		uint32_t reserved_31_29          : 3;
    535#else
    536		uint32_t reserved_31_29          : 3;
    537		uint32_t bit_val_b_val          : 29;
    538#endif
    539	} s;
    540};
    541
    542union ctu_can_fd_filter_c_mask {
    543	uint32_t u32;
    544	struct ctu_can_fd_filter_c_mask_s {
    545#ifdef __LITTLE_ENDIAN_BITFIELD
    546  /* FILTER_C_MASK */
    547		uint32_t bit_mask_c_val         : 29;
    548		uint32_t reserved_31_29          : 3;
    549#else
    550		uint32_t reserved_31_29          : 3;
    551		uint32_t bit_mask_c_val         : 29;
    552#endif
    553	} s;
    554};
    555
    556union ctu_can_fd_filter_c_val {
    557	uint32_t u32;
    558	struct ctu_can_fd_filter_c_val_s {
    559#ifdef __LITTLE_ENDIAN_BITFIELD
    560  /* FILTER_C_VAL */
    561		uint32_t bit_val_c_val          : 29;
    562		uint32_t reserved_31_29          : 3;
    563#else
    564		uint32_t reserved_31_29          : 3;
    565		uint32_t bit_val_c_val          : 29;
    566#endif
    567	} s;
    568};
    569
    570union ctu_can_fd_filter_ran_low {
    571	uint32_t u32;
    572	struct ctu_can_fd_filter_ran_low_s {
    573#ifdef __LITTLE_ENDIAN_BITFIELD
    574  /* FILTER_RAN_LOW */
    575		uint32_t bit_ran_low_val        : 29;
    576		uint32_t reserved_31_29          : 3;
    577#else
    578		uint32_t reserved_31_29          : 3;
    579		uint32_t bit_ran_low_val        : 29;
    580#endif
    581	} s;
    582};
    583
    584union ctu_can_fd_filter_ran_high {
    585	uint32_t u32;
    586	struct ctu_can_fd_filter_ran_high_s {
    587#ifdef __LITTLE_ENDIAN_BITFIELD
    588  /* FILTER_RAN_HIGH */
    589		uint32_t bit_ran_high_val       : 29;
    590		uint32_t reserved_31_29          : 3;
    591#else
    592		uint32_t reserved_31_29          : 3;
    593		uint32_t bit_ran_high_val       : 29;
    594#endif
    595	} s;
    596};
    597
    598union ctu_can_fd_filter_control_filter_status {
    599	uint32_t u32;
    600	struct ctu_can_fd_filter_control_filter_status_s {
    601#ifdef __LITTLE_ENDIAN_BITFIELD
    602  /* FILTER_CONTROL */
    603		uint32_t fanb                    : 1;
    604		uint32_t fane                    : 1;
    605		uint32_t fafb                    : 1;
    606		uint32_t fafe                    : 1;
    607		uint32_t fbnb                    : 1;
    608		uint32_t fbne                    : 1;
    609		uint32_t fbfb                    : 1;
    610		uint32_t fbfe                    : 1;
    611		uint32_t fcnb                    : 1;
    612		uint32_t fcne                    : 1;
    613		uint32_t fcfb                    : 1;
    614		uint32_t fcfe                    : 1;
    615		uint32_t frnb                    : 1;
    616		uint32_t frne                    : 1;
    617		uint32_t frfb                    : 1;
    618		uint32_t frfe                    : 1;
    619  /* FILTER_STATUS */
    620		uint32_t sfa                     : 1;
    621		uint32_t sfb                     : 1;
    622		uint32_t sfc                     : 1;
    623		uint32_t sfr                     : 1;
    624		uint32_t reserved_31_20         : 12;
    625#else
    626		uint32_t reserved_31_20         : 12;
    627		uint32_t sfr                     : 1;
    628		uint32_t sfc                     : 1;
    629		uint32_t sfb                     : 1;
    630		uint32_t sfa                     : 1;
    631		uint32_t frfe                    : 1;
    632		uint32_t frfb                    : 1;
    633		uint32_t frne                    : 1;
    634		uint32_t frnb                    : 1;
    635		uint32_t fcfe                    : 1;
    636		uint32_t fcfb                    : 1;
    637		uint32_t fcne                    : 1;
    638		uint32_t fcnb                    : 1;
    639		uint32_t fbfe                    : 1;
    640		uint32_t fbfb                    : 1;
    641		uint32_t fbne                    : 1;
    642		uint32_t fbnb                    : 1;
    643		uint32_t fafe                    : 1;
    644		uint32_t fafb                    : 1;
    645		uint32_t fane                    : 1;
    646		uint32_t fanb                    : 1;
    647#endif
    648	} s;
    649};
    650
    651union ctu_can_fd_rx_mem_info {
    652	uint32_t u32;
    653	struct ctu_can_fd_rx_mem_info_s {
    654#ifdef __LITTLE_ENDIAN_BITFIELD
    655  /* RX_MEM_INFO */
    656		uint32_t rx_buff_size           : 13;
    657		uint32_t reserved_15_13          : 3;
    658		uint32_t rx_mem_free            : 13;
    659		uint32_t reserved_31_29          : 3;
    660#else
    661		uint32_t reserved_31_29          : 3;
    662		uint32_t rx_mem_free            : 13;
    663		uint32_t reserved_15_13          : 3;
    664		uint32_t rx_buff_size           : 13;
    665#endif
    666	} s;
    667};
    668
    669union ctu_can_fd_rx_pointers {
    670	uint32_t u32;
    671	struct ctu_can_fd_rx_pointers_s {
    672#ifdef __LITTLE_ENDIAN_BITFIELD
    673  /* RX_POINTERS */
    674		uint32_t rx_wpp                 : 12;
    675		uint32_t reserved_15_12          : 4;
    676		uint32_t rx_rpp                 : 12;
    677		uint32_t reserved_31_28          : 4;
    678#else
    679		uint32_t reserved_31_28          : 4;
    680		uint32_t rx_rpp                 : 12;
    681		uint32_t reserved_15_12          : 4;
    682		uint32_t rx_wpp                 : 12;
    683#endif
    684	} s;
    685};
    686
    687union ctu_can_fd_rx_status_rx_settings {
    688	uint32_t u32;
    689	struct ctu_can_fd_rx_status_rx_settings_s {
    690#ifdef __LITTLE_ENDIAN_BITFIELD
    691  /* RX_STATUS */
    692		uint32_t rxe                     : 1;
    693		uint32_t rxf                     : 1;
    694		uint32_t reserved_3_2            : 2;
    695		uint32_t rxfrc                  : 11;
    696		uint32_t reserved_15             : 1;
    697  /* RX_SETTINGS */
    698		uint32_t rtsop                   : 1;
    699		uint32_t reserved_31_17         : 15;
    700#else
    701		uint32_t reserved_31_17         : 15;
    702		uint32_t rtsop                   : 1;
    703		uint32_t reserved_15             : 1;
    704		uint32_t rxfrc                  : 11;
    705		uint32_t reserved_3_2            : 2;
    706		uint32_t rxf                     : 1;
    707		uint32_t rxe                     : 1;
    708#endif
    709	} s;
    710};
    711
    712enum ctu_can_fd_rx_settings_rtsop {
    713	RTS_END       = 0x0,
    714	RTS_BEG       = 0x1,
    715};
    716
    717union ctu_can_fd_rx_data {
    718	uint32_t u32;
    719	struct ctu_can_fd_rx_data_s {
    720  /* RX_DATA */
    721		uint32_t rx_data                : 32;
    722	} s;
    723};
    724
    725union ctu_can_fd_tx_status {
    726	uint32_t u32;
    727	struct ctu_can_fd_tx_status_s {
    728#ifdef __LITTLE_ENDIAN_BITFIELD
    729  /* TX_STATUS */
    730		uint32_t tx1s                    : 4;
    731		uint32_t tx2s                    : 4;
    732		uint32_t tx3s                    : 4;
    733		uint32_t tx4s                    : 4;
    734		uint32_t reserved_31_16         : 16;
    735#else
    736		uint32_t reserved_31_16         : 16;
    737		uint32_t tx4s                    : 4;
    738		uint32_t tx3s                    : 4;
    739		uint32_t tx2s                    : 4;
    740		uint32_t tx1s                    : 4;
    741#endif
    742	} s;
    743};
    744
    745enum ctu_can_fd_tx_status_tx1s {
    746	TXT_RDY        = 0x1,
    747	TXT_TRAN       = 0x2,
    748	TXT_ABTP       = 0x3,
    749	TXT_TOK        = 0x4,
    750	TXT_ERR        = 0x6,
    751	TXT_ABT        = 0x7,
    752	TXT_ETY        = 0x8,
    753};
    754
    755union ctu_can_fd_tx_command {
    756	uint32_t u32;
    757	struct ctu_can_fd_tx_command_s {
    758#ifdef __LITTLE_ENDIAN_BITFIELD
    759  /* TX_COMMAND */
    760		uint32_t txce                    : 1;
    761		uint32_t txcr                    : 1;
    762		uint32_t txca                    : 1;
    763		uint32_t reserved_7_3            : 5;
    764		uint32_t txb1                    : 1;
    765		uint32_t txb2                    : 1;
    766		uint32_t txb3                    : 1;
    767		uint32_t txb4                    : 1;
    768		uint32_t reserved_31_12         : 20;
    769#else
    770		uint32_t reserved_31_12         : 20;
    771		uint32_t txb4                    : 1;
    772		uint32_t txb3                    : 1;
    773		uint32_t txb2                    : 1;
    774		uint32_t txb1                    : 1;
    775		uint32_t reserved_7_3            : 5;
    776		uint32_t txca                    : 1;
    777		uint32_t txcr                    : 1;
    778		uint32_t txce                    : 1;
    779#endif
    780	} s;
    781};
    782
    783union ctu_can_fd_tx_priority {
    784	uint32_t u32;
    785	struct ctu_can_fd_tx_priority_s {
    786#ifdef __LITTLE_ENDIAN_BITFIELD
    787  /* TX_PRIORITY */
    788		uint32_t txt1p                   : 3;
    789		uint32_t reserved_3              : 1;
    790		uint32_t txt2p                   : 3;
    791		uint32_t reserved_7              : 1;
    792		uint32_t txt3p                   : 3;
    793		uint32_t reserved_11             : 1;
    794		uint32_t txt4p                   : 3;
    795		uint32_t reserved_31_15         : 17;
    796#else
    797		uint32_t reserved_31_15         : 17;
    798		uint32_t txt4p                   : 3;
    799		uint32_t reserved_11             : 1;
    800		uint32_t txt3p                   : 3;
    801		uint32_t reserved_7              : 1;
    802		uint32_t txt2p                   : 3;
    803		uint32_t reserved_3              : 1;
    804		uint32_t txt1p                   : 3;
    805#endif
    806	} s;
    807};
    808
    809union ctu_can_fd_err_capt_alc {
    810	uint32_t u32;
    811	struct ctu_can_fd_err_capt_alc_s {
    812#ifdef __LITTLE_ENDIAN_BITFIELD
    813  /* ERR_CAPT */
    814		uint32_t err_pos                 : 5;
    815		uint32_t err_type                : 3;
    816		uint32_t reserved_15_8           : 8;
    817  /* ALC */
    818		uint32_t alc_bit                 : 5;
    819		uint32_t alc_id_field            : 3;
    820		uint32_t reserved_31_24          : 8;
    821#else
    822		uint32_t reserved_31_24          : 8;
    823		uint32_t alc_id_field            : 3;
    824		uint32_t alc_bit                 : 5;
    825		uint32_t reserved_15_8           : 8;
    826		uint32_t err_type                : 3;
    827		uint32_t err_pos                 : 5;
    828#endif
    829	} s;
    830};
    831
    832enum ctu_can_fd_err_capt_err_pos {
    833	ERC_POS_SOF         = 0x0,
    834	ERC_POS_ARB         = 0x1,
    835	ERC_POS_CTRL        = 0x2,
    836	ERC_POS_DATA        = 0x3,
    837	ERC_POS_CRC         = 0x4,
    838	ERC_POS_ACK         = 0x5,
    839	ERC_POS_EOF         = 0x6,
    840	ERC_POS_ERR         = 0x7,
    841	ERC_POS_OVRL        = 0x8,
    842	ERC_POS_OTHER      = 0x1f,
    843};
    844
    845enum ctu_can_fd_err_capt_err_type {
    846	ERC_BIT_ERR        = 0x0,
    847	ERC_CRC_ERR        = 0x1,
    848	ERC_FRM_ERR        = 0x2,
    849	ERC_ACK_ERR        = 0x3,
    850	ERC_STUF_ERR       = 0x4,
    851};
    852
    853enum ctu_can_fd_alc_alc_id_field {
    854	ALC_RSVD            = 0x0,
    855	ALC_BASE_ID         = 0x1,
    856	ALC_SRR_RTR         = 0x2,
    857	ALC_IDE             = 0x3,
    858	ALC_EXTENSION       = 0x4,
    859	ALC_RTR             = 0x5,
    860};
    861
    862union ctu_can_fd_trv_delay_ssp_cfg {
    863	uint32_t u32;
    864	struct ctu_can_fd_trv_delay_ssp_cfg_s {
    865#ifdef __LITTLE_ENDIAN_BITFIELD
    866  /* TRV_DELAY */
    867		uint32_t trv_delay_value         : 7;
    868		uint32_t reserved_15_7           : 9;
    869  /* SSP_CFG */
    870		uint32_t ssp_offset              : 8;
    871		uint32_t ssp_src                 : 2;
    872		uint32_t reserved_31_26          : 6;
    873#else
    874		uint32_t reserved_31_26          : 6;
    875		uint32_t ssp_src                 : 2;
    876		uint32_t ssp_offset              : 8;
    877		uint32_t reserved_15_7           : 9;
    878		uint32_t trv_delay_value         : 7;
    879#endif
    880	} s;
    881};
    882
    883enum ctu_can_fd_ssp_cfg_ssp_src {
    884	SSP_SRC_MEAS_N_OFFSET       = 0x0,
    885	SSP_SRC_NO_SSP              = 0x1,
    886	SSP_SRC_OFFSET              = 0x2,
    887};
    888
    889union ctu_can_fd_rx_fr_ctr {
    890	uint32_t u32;
    891	struct ctu_can_fd_rx_fr_ctr_s {
    892  /* RX_FR_CTR */
    893		uint32_t rx_fr_ctr_val          : 32;
    894	} s;
    895};
    896
    897union ctu_can_fd_tx_fr_ctr {
    898	uint32_t u32;
    899	struct ctu_can_fd_tx_fr_ctr_s {
    900  /* TX_FR_CTR */
    901		uint32_t tx_fr_ctr_val          : 32;
    902	} s;
    903};
    904
    905union ctu_can_fd_debug_register {
    906	uint32_t u32;
    907	struct ctu_can_fd_debug_register_s {
    908#ifdef __LITTLE_ENDIAN_BITFIELD
    909  /* DEBUG_REGISTER */
    910		uint32_t stuff_count             : 3;
    911		uint32_t destuff_count           : 3;
    912		uint32_t pc_arb                  : 1;
    913		uint32_t pc_con                  : 1;
    914		uint32_t pc_dat                  : 1;
    915		uint32_t pc_stc                  : 1;
    916		uint32_t pc_crc                  : 1;
    917		uint32_t pc_crcd                 : 1;
    918		uint32_t pc_ack                  : 1;
    919		uint32_t pc_ackd                 : 1;
    920		uint32_t pc_eof                  : 1;
    921		uint32_t pc_int                  : 1;
    922		uint32_t pc_susp                 : 1;
    923		uint32_t pc_ovr                  : 1;
    924		uint32_t pc_sof                  : 1;
    925		uint32_t reserved_31_19         : 13;
    926#else
    927		uint32_t reserved_31_19         : 13;
    928		uint32_t pc_sof                  : 1;
    929		uint32_t pc_ovr                  : 1;
    930		uint32_t pc_susp                 : 1;
    931		uint32_t pc_int                  : 1;
    932		uint32_t pc_eof                  : 1;
    933		uint32_t pc_ackd                 : 1;
    934		uint32_t pc_ack                  : 1;
    935		uint32_t pc_crcd                 : 1;
    936		uint32_t pc_crc                  : 1;
    937		uint32_t pc_stc                  : 1;
    938		uint32_t pc_dat                  : 1;
    939		uint32_t pc_con                  : 1;
    940		uint32_t pc_arb                  : 1;
    941		uint32_t destuff_count           : 3;
    942		uint32_t stuff_count             : 3;
    943#endif
    944	} s;
    945};
    946
    947union ctu_can_fd_yolo_reg {
    948	uint32_t u32;
    949	struct ctu_can_fd_yolo_reg_s {
    950  /* YOLO_REG */
    951		uint32_t yolo_val               : 32;
    952	} s;
    953};
    954
    955union ctu_can_fd_timestamp_low {
    956	uint32_t u32;
    957	struct ctu_can_fd_timestamp_low_s {
    958  /* TIMESTAMP_LOW */
    959		uint32_t timestamp_low          : 32;
    960	} s;
    961};
    962
    963union ctu_can_fd_timestamp_high {
    964	uint32_t u32;
    965	struct ctu_can_fd_timestamp_high_s {
    966  /* TIMESTAMP_HIGH */
    967		uint32_t timestamp_high         : 32;
    968	} s;
    969};
    970
    971#endif