embeddedsw/XilinxProcessorIPLib/drivers/canfd/src/xcanfd_hw.h
naga sureshkumar relli db67e30577 canfd_v1_0: Update CanFd Data swaping issue when EDL is Zero.
This patch updated the canfd Data swaping issue and updated the
AFRID and AFRMASK offsets to correct values.

Signed-off-by: naga sureshkumar relli <nagasure@xilinx.com>
2015-05-20 12:04:50 +05:30

1182 lines
47 KiB
C

/******************************************************************************
*
* Copyright (C) 2015 Xilinx, Inc. All rights reserved.
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* Use of the Software is limited solely to applications:
* (a) running on a Xilinx device, or
* (b) that interact with a Xilinx device through a bus or interconnect.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
* XILINX BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF
* OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
* SOFTWARE.
*
* Except as contained in this notice, the name of the Xilinx shall not be used
* in advertising or otherwise to promote the sale, use or other dealings in
* this Software without prior written authorization from Xilinx.
*
******************************************************************************/
/*****************************************************************************/
/**
*
* @file xcanfd_hw.h
*
* This header file contains the identifiers and basic driver functions (or
* macros) that can be used to access the device. Other driver functions
* are defined in xcanfd.h.
*
* <pre>
* MODIFICATION HISTORY:
*
* Ver Who Date Changes
* ----- ---- ---------- -----------------------------------------------
* 1.0 nsk 06/04/2015 First release
* 1.0 nsk 15/05/2015 Modified XCANFD_BTR_TS1_MASK
* (CR 861772).
*
* </pre>
*
******************************************************************************/
#ifndef XCANFD_HW_H /* prevent circular inclusions */
#define XCANFD_HW_H /* by using protection macros */
#ifdef __cplusplus
extern "C" {
#endif
/***************************** Include Files *********************************/
#include "xil_types.h"
#include "xil_assert.h"
#include "xil_io.h"
#include "xparameters.h"
/************************** Constant Definitions *****************************/
/** @name Register offsets for the CAN. Each register is 32 bits.
* @{
*/
#define XCANFD_SRR_OFFSET 0x000 /**< Software Reset Register */
#define XCANFD_MSR_OFFSET 0x004 /**< Mode Select Register */
#define XCANFD_BRPR_OFFSET 0x008 /**< Baud Rate Prescaler Register */
#define XCANFD_BTR_OFFSET 0x00C /**< Bit Timing Register */
#define XCANFD_ECR_OFFSET 0x010 /**< Error Counter Register */
#define XCANFD_ESR_OFFSET 0x014 /**< Error Status Register */
#define XCANFD_SR_OFFSET 0x018 /**< Status Register */
#define XCANFD_ISR_OFFSET 0x01C /**< Interrupt Status Register */
#define XCANFD_IER_OFFSET 0x020 /**< Interrupt Enable Register */
#define XCANFD_ICR_OFFSET 0x024 /**< Interrupt Clear Register */
#define XCANFD_F_BRPR_OFFSET 0x088 /**< Data Phase Buad Rate Prescalar
Register */
#define XCANFD_F_BTR_OFFSET 0x08C /**< Data Phase Bit Timing Register */
#define XCANFD_TRR_OFFSET 0x090 /**< Tx Buffer Ready Request Register */
#define XCANFD_IETRS_OFFSET 0x094 /**< Tx Buffer Ready Request Served
Interrupt Enable Register */
#define XCANFD_TCR_OFFSET 0x098 /**< Tx Buffer Cancel Request Register
*/
#define XCANFD_IETCS_OFFSET 0x09C /**< Tx Buffer Cancel Request Served
Interrupt Enable Register */
#define XCANFD_RSD0_OFFSET 0x0A0 /**< Reserved */
#define XCANFD_RSD1_OFFSET 0x0A4 /**< Reserved */
#define XCANFD_RSD2_OFFSET 0x0A8 /**< Reserved */
#define XCANFD_RSD3_OFFSET 0x0AC /**< Reserved */
/* @} */
/** @name Mail box mode registers
* @{
*/
#define XCANFD_RCS0_OFFSET 0x0B0 /**< Rx Buffer Control Status 0 Register
*/
#define XCANFD_RCS1_OFFSET 0x0B4 /**< Rx Buffer Control Status 1 Register
*/
#define XCANFD_RCS2_OFFSET 0x0B8 /**< Rx Buffer Control Status 2 Register
*/
#define XCANFD_RXBFLL1_OFFSET 0x0C0 /**< Rx Buffer Full Interrupt Enable
Register */
#define XCANFD_RXBFLL2_OFFSET 0x0C4 /**< Rx Buffer Full Interrupt Enable
Register */
#define XCANFD_MAILBOX_RB_MASK_BASE_OFFSET 0x1000 /**< Mailbox RxBuffer
Mask Register */
#define XCANFD_MAILBOX_NXT_RB 4
/* @} */
/** @name TxBuffer Element ID Registers
* Tx Message Buffer Element Start Address - 0x0100 (2304 Bytes)
End Address - 0x09FF
* @{
*/
#define XCANFD_DLCR_TIMESTAMP_MASK 0x0000FFFF /**< Dlc Register TimeStamp
Mask */
#define XCANFD_TXFIFO_0_BASE_ID_OFFSET 0x0100 /**< Tx Message Buffer Element
0 ID Register */
#define XCANFD_TXFIFO_1_BASE_ID_OFFSET 0x0148 /**< Tx Message Buffer Element
1 ID Register */
#define XCANFD_TXFIFO_2_BASE_ID_OFFSET 0x0190 /**< Tx Message Buffer Element
2 ID Register */
#define XCANFD_TXFIFO_3_BASE_ID_OFFSET 0x01d8 /**< Tx Message Buffer Element
3 ID Register */
#define XCANFD_TXFIFO_4_BASE_ID_OFFSET 0x0220 /**< Tx Message Buffer Element
4 ID Register */
#define XCANFD_TXFIFO_5_BASE_ID_OFFSET 0x0268 /**< Tx Message Buffer Element
5 ID Register */
#define XCANFD_TXFIFO_6_BASE_ID_OFFSET 0x02b0 /**< Tx Message Buffer Element
6 ID Register */
#define XCANFD_TXFIFO_7_BASE_ID_OFFSET 0x02f8 /**< Tx Message Buffer Element
7 ID Register */
#define XCANFD_TXFIFO_8_BASE_ID_OFFSET 0x0340 /**< Tx Message Buffer Element
8 ID Register */
#define XCANFD_TXFIFO_9_BASE_ID_OFFSET 0x0388 /**< Tx Message Buffer Element
9 ID Register */
#define XCANFD_TXFIFO_10_BASE_ID_OFFSET 0x03d0 /**< Tx Message Buffer Element
10 ID Register */
#define XCANFD_TXFIFO_11_BASE_ID_OFFSET 0x0418 /**< Tx Message Buffer Element
11 ID Register */
#define XCANFD_TXFIFO_12_BASE_ID_OFFSET 0x0460 /**< Tx Message Buffer Element
12 ID Register */
#define XCANFD_TXFIFO_13_BASE_ID_OFFSET 0x04a8 /**< Tx Message Buffer Element
13 ID Register */
#define XCANFD_TXFIFO_14_BASE_ID_OFFSET 0x04f0 /**< Tx Message Buffer Element
14 ID Register */
#define XCANFD_TXFIFO_15_BASE_ID_OFFSET 0x0538 /**< Tx Message Buffer Element
15 ID Register */
#define XCANFD_TXFIFO_16_BASE_ID_OFFSET 0x0580 /**< Tx Message Buffer Element
16 ID Register */
#define XCANFD_TXFIFO_17_BASE_ID_OFFSET 0x05c8 /**< Tx Message Buffer Element
17 ID Register */
#define XCANFD_TXFIFO_18_BASE_ID_OFFSET 0x0610 /**< Tx Message Buffer Element
18 ID Register */
#define XCANFD_TXFIFO_19_BASE_ID_OFFSET 0x0658 /**< Tx Message Buffer Element
19 ID Register */
#define XCANFD_TXFIFO_20_BASE_ID_OFFSET 0x06a0 /**< Tx Message Buffer Element
20 ID Register */
#define XCANFD_TXFIFO_21_BASE_ID_OFFSET 0x06e8 /**< Tx Message Buffer Element
21 ID Register */
#define XCANFD_TXFIFO_22_BASE_ID_OFFSET 0x0730 /**< Tx Message Buffer Element
22 ID Register */
#define XCANFD_TXFIFO_23_BASE_ID_OFFSET 0x0778 /**< Tx Message Buffer Element
23 ID Register */
#define XCANFD_TXFIFO_24_BASE_ID_OFFSET 0x07c0 /**< Tx Message Buffer Element
24 ID Register */
#define XCANFD_TXFIFO_25_BASE_ID_OFFSET 0x0808 /**< Tx Message Buffer Element
25 ID Register */
#define XCANFD_TXFIFO_26_BASE_ID_OFFSET 0x0850 /**< Tx Message Buffer Element
26 ID Register */
#define XCANFD_TXFIFO_27_BASE_ID_OFFSET 0x0898 /**< Tx Message Buffer Element
27 ID Register */
#define XCANFD_TXFIFO_28_BASE_ID_OFFSET 0x08e0 /**< Tx Message Buffer Element
28 ID Register */
#define XCANFD_TXFIFO_29_BASE_ID_OFFSET 0x0928 /**< Tx Message Buffer Element
29 ID Register */
#define XCANFD_TXFIFO_30_BASE_ID_OFFSET 0x0970 /**< Tx Message Buffer Element
30 ID Register */
#define XCANFD_TXFIFO_31_BASE_ID_OFFSET 0x09b8 /**< Tx Message Buffer Element
31 ID Register */
/* @} */
/** @name TxBuffer Element DLC Registers
* @{
*/
#define XCANFD_TXFIFO_0_BASE_DLC_OFFSET 0x0104 /**< Tx Message Buffer Element
0 DLC Register */
#define XCANFD_TXFIFO_1_BASE_DLC_OFFSET 0x014c /**< Tx Message Buffer Element
1 DLC Register */
#define XCANFD_TXFIFO_2_BASE_DLC_OFFSET 0x0194 /**< Tx Message Buffer Element
2 DLC Register */
#define XCANFD_TXFIFO_3_BASE_DLC_OFFSET 0x01dc /**< Tx Message Buffer Element
3 DLC Register */
#define XCANFD_TXFIFO_4_BASE_DLC_OFFSET 0x0224 /**< Tx Message Buffer Element
4 DLC Register */
#define XCANFD_TXFIFO_5_BASE_DLC_OFFSET 0x026c /**< Tx Message Buffer Element
5 DLC Register */
#define XCANFD_TXFIFO_6_BASE_DLC_OFFSET 0x02b4 /**< Tx Message Buffer Element
6 DLC Register */
#define XCANFD_TXFIFO_7_BASE_DLC_OFFSET 0x02fc /**< Tx Message Buffer Element
7 DLC Register */
#define XCANFD_TXFIFO_8_BASE_DLC_OFFSET 0x0344 /**< Tx Message Buffer Element
8 DLC Register */
#define XCANFD_TXFIFO_9_BASE_DLC_OFFSET 0x038c /**< Tx Message Buffer Element
9 DLC Register */
#define XCANFD_TXFIFO_10_BASE_DLC_OFFSET 0x03d4 /**< Tx Message Buffer
Element10 DLC
Register */
#define XCANFD_TXFIFO_11_BASE_DLC_OFFSET 0x041c /**< Tx Message Buffer
Element11 DLC
Register */
#define XCANFD_TXFIFO_12_BASE_DLC_OFFSET 0x0464 /**< Tx Message Buffer
Element12 DLC
Register */
#define XCANFD_TXFIFO_13_BASE_DLC_OFFSET 0x04ac /**< Tx Message Buffer
Element13 DLC
Register */
#define XCANFD_TXFIFO_14_BASE_DLC_OFFSET 0x04f4 /**< Tx Message Buffer
Element14 DLC
Register */
#define XCANFD_TXFIFO_15_BASE_DLC_OFFSET 0x053c /**< Tx Message Buffer
Element15 DLC
Register */
#define XCANFD_TXFIFO_16_BASE_DLC_OFFSET 0x0584 /**< Tx Message Buffer
Element16 DLC
Register */
#define XCANFD_TXFIFO_17_BASE_DLC_OFFSET 0x05cc /**< Tx Message Buffer
Element17 DLC
Register */
#define XCANFD_TXFIFO_18_BASE_DLC_OFFSET 0x0614 /**< Tx Message Buffer
Element18 DLC
Register */
#define XCANFD_TXFIFO_19_BASE_DLC_OFFSET 0x065c /**< Tx Message Buffer
Element19 DLC
Register */
#define XCANFD_TXFIFO_20_BASE_DLC_OFFSET 0x06a4 /**< Tx Message Buffer
Element20 DLC
Register */
#define XCANFD_TXFIFO_21_BASE_DLC_OFFSET 0x06ec /**< Tx Message Buffer
Element21 DLC
Register */
#define XCANFD_TXFIFO_22_BASE_DLC_OFFSET 0x0734 /**< Tx Message Buffer
Element22 DLC
Register */
#define XCANFD_TXFIFO_23_BASE_DLC_OFFSET 0x077c /**< Tx Message Buffer
Element23 DLC
Register */
#define XCANFD_TXFIFO_24_BASE_DLC_OFFSET 0x07c4 /**< Tx Message Buffer
Element24 DLC
Register */
#define XCANFD_TXFIFO_25_BASE_DLC_OFFSET 0x080c /**< Tx Message Buffer
Element25 DLC
Register */
#define XCANFD_TXFIFO_26_BASE_DLC_OFFSET 0x0854 /**< Tx Message Buffer
Element26 DLC
Register */
#define XCANFD_TXFIFO_27_BASE_DLC_OFFSET 0x089c /**< Tx Message Buffer
Element27 DLC
Register */
#define XCANFD_TXFIFO_28_BASE_DLC_OFFSET 0x08e4 /**< Tx Message Buffer
Element28 DLC
Register */
#define XCANFD_TXFIFO_29_BASE_DLC_OFFSET 0x092c /**< Tx Message Buffer
Element29 DLC
Register */
#define XCANFD_TXFIFO_30_BASE_DLC_OFFSET 0x0974 /**< Tx Message Buffer
Element30 DLC
Register */
#define XCANFD_TXFIFO_31_BASE_DLC_OFFSET 0x09bc /**< Tx Message Buffer
Element31 DLC
Register */
/* @} */
/** @name TxBuffer Element DW Registers
* @{
*/
#define XCANFD_TXFIFO_0_BASE_DW0_OFFSET 0x0108 /**< Tx Message Buffer Element
0 DW Register */
#define XCANFD_TXFIFO_1_BASE_DW0_OFFSET 0x0150 /**< Tx Message Buffer Element
1 DW Register */
#define XCANFD_TXFIFO_2_BASE_DW0_OFFSET 0x0198 /**< Tx Message Buffer Element
2 DW Register */
#define XCANFD_TXFIFO_3_BASE_DW0_OFFSET 0x01e0 /**< Tx Message Buffer Element
3 DW Register */
#define XCANFD_TXFIFO_4_BASE_DW0_OFFSET 0x0228 /**< Tx Message Buffer Element
4 DW Register */
#define XCANFD_TXFIFO_5_BASE_DW0_OFFSET 0x0270 /**< Tx Message Buffer Element
5 DW Register */
#define XCANFD_TXFIFO_6_BASE_DW0_OFFSET 0x02b8 /**< Tx Message Buffer Element
6 DW Register */
#define XCANFD_TXFIFO_7_BASE_DW0_OFFSET 0x0300 /**< Tx Message Buffer Element
7 DW Register */
#define XCANFD_TXFIFO_8_BASE_DW0_OFFSET 0x0348 /**< Tx Message Buffer Element
8 DW Register */
#define XCANFD_TXFIFO_9_BASE_DW0_OFFSET 0x0390 /**< Tx Message Buffer Element
9 DW Register */
#define XCANFD_TXFIFO_10_BASE_DW0_OFFSET 0x03d8 /**< Tx Message Buffer
Element 10 DW Register
*/
#define XCANFD_TXFIFO_11_BASE_DW0_OFFSET 0x0420 /**< Tx Message Buffer
Element 11 DW Register
*/
#define XCANFD_TXFIFO_12_BASE_DW0_OFFSET 0x0468 /**< Tx Message Buffer
Element 12 DW Register
*/
#define XCANFD_TXFIFO_13_BASE_DW0_OFFSET 0x04b0 /**< Tx Message Buffer
Element 13 DW Register
*/
#define XCANFD_TXFIFO_14_BASE_DW0_OFFSET 0x04f8 /**< Tx Message Buffer
Element 14 DW Register
*/
#define XCANFD_TXFIFO_15_BASE_DW0_OFFSET 0x0540 /**< Tx Message Buffer
Element 15 DW Register
*/
#define XCANFD_TXFIFO_16_BASE_DW0_OFFSET 0x0588 /**< Tx Message Buffer
Element 16 DW Register
*/
#define XCANFD_TXFIFO_17_BASE_DW0_OFFSET 0x05d0 /**< Tx Message Buffer
Element 17 DW Register
*/
#define XCANFD_TXFIFO_18_BASE_DW0_OFFSET 0x0618 /**< Tx Message Buffer
Element 18 DW Register
*/
#define XCANFD_TXFIFO_19_BASE_DW0_OFFSET 0x0660 /**< Tx Message Buffer
Element 19 DW Register
*/
#define XCANFD_TXFIFO_20_BASE_DW0_OFFSET 0x06a8 /**< Tx Message Buffer
Element 20 DW Register
*/
#define XCANFD_TXFIFO_21_BASE_DW0_OFFSET 0x06f0 /**< Tx Message Buffer
Element 21 DW Register
*/
#define XCANFD_TXFIFO_22_BASE_DW0_OFFSET 0x0738 /**< Tx Message Buffer
Element 22 DW Register
*/
#define XCANFD_TXFIFO_23_BASE_DW0_OFFSET 0x0780 /**< Tx Message Buffer
Element 23 DW Register
*/
#define XCANFD_TXFIFO_24_BASE_DW0_OFFSET 0x07c8 /**< Tx Message Buffer
Element 24 DW Register
*/
#define XCANFD_TXFIFO_25_BASE_DW0_OFFSET 0x0810 /**< Tx Message Buffer
Element 25 DW Register
*/
#define XCANFD_TXFIFO_26_BASE_DW0_OFFSET 0x0858 /**< Tx Message Buffer
Element 26 DW Register
*/
#define XCANFD_TXFIFO_27_BASE_DW0_OFFSET 0x08a0 /**< Tx Message Buffer
Element 27 DW Register
*/
#define XCANFD_TXFIFO_28_BASE_DW0_OFFSET 0x08e8 /**< Tx Message Buffer
Element 28 DW Register
*/
#define XCANFD_TXFIFO_29_BASE_DW0_OFFSET 0x0930 /**< Tx Message Buffer
Element 29 DW Register
*/
#define XCANFD_TXFIFO_30_BASE_DW0_OFFSET 0x0978 /**< Tx Message Buffer
Element 30 DW Register
*/
#define XCANFD_TXFIFO_31_BASE_DW0_OFFSET 0x09c0 /**< Tx Message Buffer
Element 31 DW Register
*/
/* @} */
/** @name Rx Message Buffer Element ID Registers.
* Start Address - 0x1100 (2304 Bytes)
End Address - 0x19FF
* @{
*/
#define XCANFD_RXFIFO_0_BASE_ID_OFFSET 0x1100 /**< Rx Message Buffer Element
0 ID Register */
#define XCANFD_RXFIFO_1_BASE_ID_OFFSET 0x1148 /**< Rx Message Buffer Element
1 ID Register */
#define XCANFD_RXFIFO_2_BASE_ID_OFFSET 0x1190 /**< Rx Message Buffer Element
2 ID Register */
#define XCANFD_RXFIFO_3_BASE_ID_OFFSET 0x11d8 /**< Rx Message Buffer Element
3 ID Register */
#define XCANFD_RXFIFO_4_BASE_ID_OFFSET 0x1220 /**< Rx Message Buffer Element
4 ID Register */
#define XCANFD_RXFIFO_5_BASE_ID_OFFSET 0x1268 /**< Rx Message Buffer Element
5 ID Register */
#define XCANFD_RXFIFO_6_BASE_ID_OFFSET 0x12b0 /**< Rx Message Buffer Element
6 ID Register */
#define XCANFD_RXFIFO_7_BASE_ID_OFFSET 0x12f8 /**< Rx Message Buffer Element
7 ID Register */
#define XCANFD_RXFIFO_8_BASE_ID_OFFSET 0x1340 /**< Rx Message Buffer Element
8 ID Register */
#define XCANFD_RXFIFO_9_BASE_ID_OFFSET 0x1388 /**< Rx Message Buffer Element
9 ID Register */
#define XCANFD_RXFIFO_10_BASE_ID_OFFSET 0x13d0 /**< Rx Message Buffer Element
10 ID Register */
#define XCANFD_RXFIFO_11_BASE_ID_OFFSET 0x1418 /**< Rx Message Buffer Element
11 ID Register */
#define XCANFD_RXFIFO_12_BASE_ID_OFFSET 0x1460 /**< Rx Message Buffer Element
12 ID Register */
#define XCANFD_RXFIFO_13_BASE_ID_OFFSET 0x14a8 /**< Rx Message Buffer Element
13 ID Register */
#define XCANFD_RXFIFO_14_BASE_ID_OFFSET 0x14f0 /**< Rx Message Buffer Element
14 ID Register */
#define XCANFD_RXFIFO_15_BASE_ID_OFFSET 0x1538 /**< Rx Message Buffer Element
15 ID Register */
#define XCANFD_RXFIFO_16_BASE_ID_OFFSET 0x1580 /**< Rx Message Buffer Element
16 ID Register */
#define XCANFD_RXFIFO_17_BASE_ID_OFFSET 0x15c8 /**< Rx Message Buffer Element
17 ID Register */
#define XCANFD_RXFIFO_18_BASE_ID_OFFSET 0x1610 /**< Rx Message Buffer Element
18 ID Register */
#define XCANFD_RXFIFO_19_BASE_ID_OFFSET 0x1658 /**< Rx Message Buffer Element
19 ID Register */
#define XCANFD_RXFIFO_20_BASE_ID_OFFSET 0x16a0 /**< Rx Message Buffer Element
20 ID Register */
#define XCANFD_RXFIFO_21_BASE_ID_OFFSET 0x16e8 /**< Rx Message Buffer Element
21 ID Register */
#define XCANFD_RXFIFO_22_BASE_ID_OFFSET 0x1730 /**< Rx Message Buffer Element
22 ID Register */
#define XCANFD_RXFIFO_23_BASE_ID_OFFSET 0x1778 /**< Rx Message Buffer Element
23 ID Register */
#define XCANFD_RXFIFO_24_BASE_ID_OFFSET 0x17c0 /**< Rx Message Buffer Element
24 ID Register */
#define XCANFD_RXFIFO_25_BASE_ID_OFFSET 0x1808 /**< Rx Message Buffer Element
25 ID Register */
#define XCANFD_RXFIFO_26_BASE_ID_OFFSET 0x1850 /**< Rx Message Buffer Element
26 ID Register */
#define XCANFD_RXFIFO_27_BASE_ID_OFFSET 0x1898 /**< Rx Message Buffer Element
27 ID Register */
#define XCANFD_RXFIFO_28_BASE_ID_OFFSET 0x18e0 /**< Rx Message Buffer Element
28 ID Register */
#define XCANFD_RXFIFO_29_BASE_ID_OFFSET 0x1928 /**< Rx Message Buffer Element
29 ID Register */
#define XCANFD_RXFIFO_30_BASE_ID_OFFSET 0x1970 /**< Rx Message Buffer Element
30 ID Register */
#define XCANFD_RXFIFO_31_BASE_ID_OFFSET 0x19b8 /**< Rx Message Buffer Element
31 ID Register */
/* @} */
/** @name Rx Message Buffer Element DLC Registers.
* @{
*/
#define XCANFD_RXFIFO_0_BASE_DLC_OFFSET 0x1104 /**< Rx Message Buffer Element
0 DLC Register */
#define XCANFD_RXFIFO_1_BASE_DLC_OFFSET 0x114c /**< Rx Message Buffer Element
1 DLC Register */
#define XCANFD_RXFIFO_2_BASE_DLC_OFFSET 0x1194 /**< Rx Message Buffer Element
2 DLC Register */
#define XCANFD_RXFIFO_3_BASE_DLC_OFFSET 0x11dc /**< Rx Message Buffer Element
3 DLC Register */
#define XCANFD_RXFIFO_4_BASE_DLC_OFFSET 0x1224 /**< Rx Message Buffer Element
4 DLC Register */
#define XCANFD_RXFIFO_5_BASE_DLC_OFFSET 0x126c /**< Rx Message Buffer Element
5 DLC Register */
#define XCANFD_RXFIFO_6_BASE_DLC_OFFSET 0x12b4 /**< Rx Message Buffer Element
6 DLC Register */
#define XCANFD_RXFIFO_7_BASE_DLC_OFFSET 0x12fc /**< Rx Message Buffer Element
7 DLC Register */
#define XCANFD_RXFIFO_8_BASE_DLC_OFFSET 0x1344 /**< Rx Message Buffer Element
8 DLC Register */
#define XCANFD_RXFIFO_9_BASE_DLC_OFFSET 0x138c /**< Rx Message Buffer Element
9 DLC Register */
#define XCANFD_RXFIFO_10_BASE_DLC_OFFSET 0x13d4 /**< Rx Message Buffer
Element 10 DLC Register
*/
#define XCANFD_RXFIFO_11_BASE_DLC_OFFSET 0x141c /**< Rx Message Buffer
Element 11 DLC Register
*/
#define XCANFD_RXFIFO_12_BASE_DLC_OFFSET 0x1464 /**< Rx Message Buffer
Element 12 DLC Register
*/
#define XCANFD_RXFIFO_13_BASE_DLC_OFFSET 0x14ac /**< Rx Message Buffer
Element 13 DLC Register
*/
#define XCANFD_RXFIFO_14_BASE_DLC_OFFSET 0x14f4 /**< Rx Message Buffer
Element 14 DLC Register
*/
#define XCANFD_RXFIFO_15_BASE_DLC_OFFSET 0x153c /**< Rx Message Buffer
Element 15 DLC Register
*/
#define XCANFD_RXFIFO_16_BASE_DLC_OFFSET 0x1584 /**< Rx Message Buffer
Element 16 DLC Register
*/
#define XCANFD_RXFIFO_17_BASE_DLC_OFFSET 0x15cc /**< Rx Message Buffer
Element 17 DLC Register
*/
#define XCANFD_RXFIFO_18_BASE_DLC_OFFSET 0x1614 /**< Rx Message Buffer
Element 18 DLC Register
*/
#define XCANFD_RXFIFO_19_BASE_DLC_OFFSET 0x165c /**< Rx Message Buffer
Element 19 DLC Register
*/
#define XCANFD_RXFIFO_20_BASE_DLC_OFFSET 0x16a4 /**< Rx Message Buffer
Element 20 DLC Register
*/
#define XCANFD_RXFIFO_21_BASE_DLC_OFFSET 0x16ec /**< Rx Message Buffer
Element 21 DLC Register
*/
#define XCANFD_RXFIFO_22_BASE_DLC_OFFSET 0x1734 /**< Rx Message Buffer
Element 22 DLC Register
*/
#define XCANFD_RXFIFO_23_BASE_DLC_OFFSET 0x177c /**< Rx Message Buffer
Element 23 DLC Register
*/
#define XCANFD_RXFIFO_24_BASE_DLC_OFFSET 0x17c4 /**< Rx Message Buffer
Element 24 DLC Register
*/
#define XCANFD_RXFIFO_25_BASE_DLC_OFFSET 0x180c /**< Rx Message Buffer
Element 25 DLC Register
*/
#define XCANFD_RXFIFO_26_BASE_DLC_OFFSET 0x1854 /**< Rx Message Buffer
Element 26 DLC Register
*/
#define XCANFD_RXFIFO_27_BASE_DLC_OFFSET 0x189c /**< Rx Message Buffer
Element 27 DLC Register
*/
#define XCANFD_RXFIFO_28_BASE_DLC_OFFSET 0x18e4 /**< Rx Message Buffer
Element 28 DLC Register
*/
#define XCANFD_RXFIFO_29_BASE_DLC_OFFSET 0x192c /**< Rx Message Buffer
Element 29 DLC Register
*/
#define XCANFD_RXFIFO_30_BASE_DLC_OFFSET 0x1974 /**< Rx Message Buffer
Element 30 DLC Register
*/
#define XCANFD_RXFIFO_31_BASE_DLC_OFFSET 0x19bc /**< Rx Message Buffer
Element 31 DLC Register
*/
/* @} */
/** @name Rx Message Buffer Element DW Registers.
* @{
*/
#define XCANFD_RXFIFO_0_BASE_DW0_OFFSET 0x1108 /**< Rx Message Buffer Element
0 DW Register */
#define XCANFD_RXFIFO_1_BASE_DW0_OFFSET 0x1150 /**< Rx Message Buffer Element
1 DW Register */
#define XCANFD_RXFIFO_2_BASE_DW0_OFFSET 0x1198 /**< Rx Message Buffer Element
2 DW Register */
#define XCANFD_RXFIFO_3_BASE_DW0_OFFSET 0x11e0 /**< Rx Message Buffer Element
3 DW Register */
#define XCANFD_RXFIFO_4_BASE_DW0_OFFSET 0x1228 /**< Rx Message Buffer Element
4 DW Register */
#define XCANFD_RXFIFO_5_BASE_DW0_OFFSET 0x1270 /**< Rx Message Buffer Element
5 DW Register */
#define XCANFD_RXFIFO_6_BASE_DW0_OFFSET 0x12b8 /**< Rx Message Buffer Element
6 DW Register */
#define XCANFD_RXFIFO_7_BASE_DW0_OFFSET 0x1300 /**< Rx Message Buffer Element
7 DW Register */
#define XCANFD_RXFIFO_8_BASE_DW0_OFFSET 0x1348 /**< Rx Message Buffer Element
8 DW Register */
#define XCANFD_RXFIFO_9_BASE_DW0_OFFSET 0x1390 /**< Rx Message Buffer Element
9 DW Register */
#define XCANFD_RXFIFO_10_BASE_DW0_OFFSET 0x13d8 /**< Rx Message Buffer
Element 10 DW Register
*/
#define XCANFD_RXFIFO_11_BASE_DW0_OFFSET 0x1420 /**< Rx Message Buffer
Element 11 DW Register
*/
#define XCANFD_RXFIFO_12_BASE_DW0_OFFSET 0x1468 /**< Rx Message Buffer
Element 12 DW Register
*/
#define XCANFD_RXFIFO_13_BASE_DW0_OFFSET 0x14b0 /**< Rx Message Buffer
Element 13 DW Register
*/
#define XCANFD_RXFIFO_14_BASE_DW0_OFFSET 0x14f8 /**< Rx Message Buffer
Element 14 DW Register
*/
#define XCANFD_RXFIFO_15_BASE_DW0_OFFSET 0x1540 /**< Rx Message Buffer
Element 15 DW Register
*/
#define XCANFD_RXFIFO_16_BASE_DW0_OFFSET 0x1588 /**< Rx Message Buffer
Element 16 DW Register
*/
#define XCANFD_RXFIFO_17_BASE_DW0_OFFSET 0x15d0 /**< Rx Message Buffer
Element 17 DW Register
*/
#define XCANFD_RXFIFO_18_BASE_DW0_OFFSET 0x1618 /**< Rx Message Buffer
Element 18 DW Register
*/
#define XCANFD_RXFIFO_19_BASE_DW0_OFFSET 0x1660 /**< Rx Message Buffer
Element 19 DW Register
*/
#define XCANFD_RXFIFO_20_BASE_DW0_OFFSET 0x16a8 /**< Rx Message Buffer
Element 20 DW Register
*/
#define XCANFD_RXFIFO_21_BASE_DW0_OFFSET 0x16f0 /**< Rx Message Buffer
Element 21 DW Register
*/
#define XCANFD_RXFIFO_22_BASE_DW0_OFFSET 0x1738 /**< Rx Message Buffer
Element 22 DW Register
*/
#define XCANFD_RXFIFO_23_BASE_DW0_OFFSET 0x1780 /**< Rx Message Buffer
Element 23 DW Register
*/
#define XCANFD_RXFIFO_24_BASE_DW0_OFFSET 0x17c8 /**< Rx Message Buffer
Element 24 DW Register
*/
#define XCANFD_RXFIFO_25_BASE_DW0_OFFSET 0x1810 /**< Rx Message Buffer
Element 25 DW Register
*/
#define XCANFD_RXFIFO_26_BASE_DW0_OFFSET 0x1858 /**< Rx Message Buffer
Element 26 DW Register
*/
#define XCANFD_RXFIFO_27_BASE_DW0_OFFSET 0x18a0 /**< Rx Message Buffer
Element 27 DW Register
*/
#define XCANFD_RXFIFO_28_BASE_DW0_OFFSET 0x18e8 /**< Rx Message Buffer
Element 28 DW Register
*/
#define XCANFD_RXFIFO_29_BASE_DW0_OFFSET 0x1930 /**< Rx Message Buffer
Element 29 DW Register
*/
#define XCANFD_RXFIFO_30_BASE_DW0_OFFSET 0x1978 /**< Rx Message Buffer
Element 30 DW Register
*/
#define XCANFD_RXFIFO_31_BASE_DW0_OFFSET 0x19c0 /**< Rx Message Buffer
Element 31 DW Register
*/
/* @} */
/** @name Rx Message Buffer Element ID,DLC,DW Sizes.
* @{
*/
#define XCANFD_RXFIFO_NEXTID_OFFSET 72 /**< Rx Message Buffer Element
Next ID AT Offset */
#define XCANFD_RXFIFO_NEXTDLC_OFFSET 72 /**< Rx Message Buffer Element
Next DLC AT Offset */
#define XCANFD_RXFIFO_NEXTDW_OFFSET 72 /**< Rx Message Buffer Element
Next DW AT Offset */
/* @} */
/** @name EDL and BRS Masks.
* @{
*/
#define XCANFD_DLCR_EDL_MASK 0x08000000 /**< EDL Mask in DLC Register */
#define XCANFD_DLCR_BRS_MASK 0x04000000 /**< BRS Mask in DLC Register */
/* @} */
/** @name Acceptance Filter Mask Registers
* @{
*/
#define XCANFD_AFMR_BASE_OFFSET 0x1A00 /**<Acceptance Filter Mask Register */
#define XCANFD_AFMR_NXT_OFFSET 8
#define XCANFD_AFIDR_BASE_OFFSET 0x1A04 /**< Acceptance Filter ID Register */
#define XCANFD_AFIDR_NXT_OFFSET 8
#define XCANFD_AFR_OFFSET 0x0E0 /**< Acceptance Filter Register */
#define XCANFD_FSR_OFFSET 0x0E8 /**< Receive FIFO Status Register */
#define XCANFD_NOOF_AFR 32 /**< Number Of Acceptance FIlter
Registers */
#define XCANFD_WIR_OFFSET 0x0EC /**< Rx FIFO Water Mark Register */
#define XCANFD_WIR_MASK 0x0000001F /**< Rx FIFO Full watermark Mask */
#define XCANFD_TIMESTAMPR_OFFSET 0x0028 /**< Time Stamp Register */
#define XCANFD_CTS_MASK 0x00000001 /**< Time Stamp Counter Clear */
#define XCANFD_DAR_MASK 0x00000010/**< Disable AutoRetransmission */
/* @} */
/** @name Software Reset Register
* @{
*/
#define XCANFD_SRR_CEN_MASK 0x00000002 /**< Can Enable Mask */
#define XCANFD_SRR_SRST_MASK 0x00000001 /**< Reset Mask */
/* @} */
/** @name Mode Select Register
* @{
*/
#define XCANFD_MSR_LBACK_MASK 0x00000002 /**< Loop Back Mode Select Mask */
#define XCANFD_MSR_SLEEP_MASK 0x00000001 /**< Sleep Mode Select Mask */
#define XCANFD_MSR_BRSD_MASK 0x00000008 /**< Bit Rate Switch Select Mask */
#define XCANFD_MSR_DAR_MASK 0x00000010 /**< Disable Auto-Retransmission
Select Mask */
#define XCANFD_MSR_SNOOP_MASK 0x00000004 /**< Snoop Mode Select Mask */
/* @} */
/** @name Baud Rate Prescaler register
* @{
*/
#define XCANFD_BRPR_BRP_MASK 0x000000FF /**< Baud Rate Prescaler Mask */
/* @} */
/** @name Bit Timing Register
* @{
*/
#define XCANFD_BTR_SJW_MASK 0x000F0000 /**< Sync Jump Width Mask */
#define XCANFD_BTR_SJW_SHIFT 16 /**< Sync Jump Width Shift */
#define XCANFD_BTR_TS2_MASK 0x00001F00 /**< Time Segment 2 Mask */
#define XCANFD_BTR_TS2_SHIFT 8 /**< Time Segment 2 Shift */
#define XCANFD_BTR_TS1_MASK 0x0000003F /**< Time Segment 1 Mask */
#define XCANFD_F_BRPR_TDCMASK 0x00001F00 /**< Tranceiver Delay
compensation Offset Mask */
#define XCANFD_F_BRPR_TDC_ENABLE_MASK 0x00010000 /**< Tranceiver Delay
compensation Enable
Maskk */
/* @} */
/** @name Fast Bit Timing Register
* @{
*/
#define XCANFD_F_BTR_SJW_MASK 0x00030000 /**< Sync Jump Width Mask */
#define XCANFD_F_BTR_SJW_SHIFT 16 /**< Sync Jump Width Shift */
#define XCANFD_F_BTR_TS2_MASK 0x00000700 /**< Time Segment 2 Mask */
#define XCANFD_F_BTR_TS2_SHIFT 8 /**< Time Segment 2 Shift */
#define XCANFD_F_BTR_TS1_MASK 0x0000000F /**< Time Segment 1 Mask */
/* @} */
/** @name Error Counter Register
* @{
*/
#define XCANFD_ECR_REC_MASK 0x0000FF00 /**< Receive Error Counter Mask */
#define XCANFD_ECR_REC_SHIFT 8 /**< Receive Error Counter Shift */
#define XCANFD_ECR_TEC_MASK 0x000000FF /**< Transmit Error Counter Mask */
/* @} */
/** @name Error Status Register
* @{
*/
#define XCANFD_ESR_ACKER_MASK 0x00000010 /**< ACK Error Mask */
#define XCANFD_ESR_BERR_MASK 0x00000008 /**< Bit Error Mask */
#define XCANFD_ESR_STER_MASK 0x00000004 /**< Stuff Error Mask */
#define XCANFD_ESR_FMER_MASK 0x00000002 /**< Form Error Mask */
#define XCANFD_ESR_CRCER_MASK 0x00000001 /**< CRC Error Mask */
#define XCANFD_ESR_F_BERR_MASK 0x00000800 /**< F_Bit Error Mask */
#define XCANFD_ESR_F_STER_MASK 0x00000400 /**< F_Stuff Error Mask */
#define XCANFD_ESR_F_FMER_MASK 0x00000200 /**< F_Form Error Mask */
#define XCANFD_ESR_F_CRCER_MASK 0x00000100 /**< F_CRC Error Mask */
/* @} */
/** @name Status Register
* @{
*/
#define XCANFD_SR_TDCV_MASK 0x007F0000 /**< Tranceiver Dealy compensation
Mask */
#define XCANFD_SR_SNOOP_MASK 0x00001000 /**< Snoop Mode Mask */
#define XCANFD_SR_ESTAT_MASK 0x00000180 /**< Error Status Mask */
#define XCANFD_SR_ESTAT_SHIFT 7 /**< Error Status Shift */
#define XCANFD_SR_ERRWRN_MASK 0x00000040 /**< Error Warning Mask */
#define XCANFD_SR_BBSY_MASK 0x00000020 /**< Bus Busy Mask */
#define XCANFD_SR_BIDLE_MASK 0x00000010 /**< Bus Idle Mask */
#define XCANFD_SR_NORMAL_MASK 0x00000008 /**< Normal Mode Mask */
#define XCANFD_SR_SLEEP_MASK 0x00000004 /**< Sleep Mode Mask */
#define XCANFD_SR_LBACK_MASK 0x00000002 /**< Loop Back Mode Mask */
#define XCANFD_SR_CONFIG_MASK 0x00000001 /**< Configuration Mode Mask */
/* @} */
/** @name Interrupt Status/Enable/Clear Register
* @{
*/
#define XCANFD_IXR_RXBOFLW_BI_MASK 0x3F000000 /**< Rx Buffer index for Overflow
Intr Mask (Mailbox Mode))*/
#define XCANFD_IXR_RXMNF_MASK 0x00020000 /**< Rx Match Not Finished Intr
Mask */
#define XCANFD_IXR_RXBOFLW_MASK 0x00010000 /**< Rx Buffer Overflow interrupt
Mask (Mailbox mode) */
#define XCANFD_IXR_RXRBF_MASK 0x00008000 /**< Rx Buffer Full Interrupt Mask
(Mailbox mode) */
#define XCANFD_IXR_TXCRS_MASK 0x00004000 /**< Tx Cancellation Request Served
Interrupt Mask */
#define XCANFD_IXR_TXRRS_MASK 0x00002000 /**< Tx Buffer Ready Request Served
Interrupt Mask */
#define XCANFD_IXR_RXFWMFLL_MASK 0x00001000 /**< Rx Watermark Full
interrupt
Mask (FIFO mode) */
#define XCANFD_IXR_WKUP_MASK 0x00000800 /**< Wake up Interrupt Mask */
#define XCANFD_IXR_SLP_MASK 0x00000400 /**< Sleep Interrupt Mask */
#define XCANFD_IXR_BSOFF_MASK 0x00000200 /**< Bus Off Interrupt Mask */
#define XCANFD_IXR_ERROR_MASK 0x00000100 /**< Error Interrupt Mask */
#define XCANFD_IXR_RXFOFLW_MASK 0x00000040 /**< RX FIFO Overflow Intr Mask */
#define XCANFD_IXR_RXOK_MASK 0x00000010 /**< New Message Received Intr */
#define XCANFD_IXR_TXOK_MASK 0x00000002 /**< TX Successful Interrupt Mask
*/
#define XCANFD_IXR_ARBLST_MASK 0x00000001 /**< Arbitration Lost Intr Mask */
#define XCANFD_IXR_ALL (XCANFD_IXR_RXBOFLW_BI_MASK | \
XCANFD_IXR_RXMNF_MASK | \
XCANFD_IXR_RXBOFLW_MASK | \
XCANFD_IXR_RXRBF_MASK | \
XCANFD_IXR_TXCRS_MASK | \
XCANFD_IXR_TXRRS_MASK | \
XCANFD_IXR_RXFWMFLL_MASK | \
XCANFD_IXR_WKUP_MASK | \
XCANFD_IXR_SLP_MASK | \
XCANFD_IXR_BSOFF_MASK | \
XCANFD_IXR_ERROR_MASK | \
XCANFD_IXR_RXFOFLW_MASK | \
XCANFD_IXR_RXOK_MASK | \
XCANFD_IXR_TXOK_MASK | \
XCANFD_IXR_ARBLST_MASK)
/* @} */
/** @name Transmit Ready request All Mask
* @{
*/
#define XCANFD_TRR_MASK 0xFFFFFFFF
/* @} */
/** @name CAN Frame Identifier (TX High Priority Buffer/TX/RX/Acceptance Filter
Mask/Acceptance Filter ID)
* @{
*/
#define XCANFD_IDR_ID1_MASK 0xFFE00000 /**< Standard Messg Ident Mask */
#define XCANFD_IDR_ID1_SHIFT 21 /**< Standard Messg Ident Shift */
#define XCANFD_IDR_SRR_MASK 0x00100000 /**< Substitute Remote TX Req */
#define XCANFD_IDR_SRR_SHIFT 20
#define XCANFD_IDR_IDE_MASK 0x00080000 /**< Identifier Extension Mask */
#define XCANFD_IDR_IDE_SHIFT 19 /**< Identifier Extension Shift */
#define XCANFD_IDR_ID2_MASK 0x0007FFFE /**< Extended Message Ident Mask */
#define XCANFD_IDR_ID2_SHIFT 1 /**< Extended Message Ident Shift
*/
#define XCANFD_IDR_RTR_MASK 0x00000001 /**< Remote TX Request Mask */
/* @} */
/** @name CAN Frame Data Length Code (TX High Priority Buffer/TX/RX)
* @{
*/
#define XCANFD_DLCR_DLC_MASK 0xF0000000 /**< Data Length Code Mask */
#define XCANFD_DLCR_DLC_SHIFT 28 /**< Data Length Code Shift */
#define XCANFD_DLC1 0x10000000 /**< Data Length Code 1 */
#define XCANFD_DLC2 0x20000000 /**< Data Length Code 2 */
#define XCANFD_DLC3 0x30000000 /**< Data Length Code 3 */
#define XCANFD_DLC4 0x40000000 /**< Data Length Code 4 */
#define XCANFD_DLC5 0x50000000 /**< Data Length Code 5 */
#define XCANFD_DLC6 0x60000000 /**< Data Length Code 6 */
#define XCANFD_DLC7 0x70000000 /**< Data Length Code 7 */
#define XCANFD_DLC8 0x80000000 /**< Data Length Code 8 */
#define XCANFD_DLC9 0x90000000 /**< Data Length Code 9 */
#define XCANFD_DLC10 0xA0000000 /**< Data Length Code 10 */
#define XCANFD_DLC11 0xB0000000 /**< Data Length Code 11 */
#define XCANFD_DLC12 0xC0000000 /**< Data Length Code 12 */
#define XCANFD_DLC13 0xD0000000 /**< Data Length Code 13 */
#define XCANFD_DLC14 0xE0000000 /**< Data Length Code 14 */
#define XCANFD_DLC15 0xF0000000 /**< Data Length Code 15 */
/* @} */
/** @name Acceptance Filter Register
* @{
*/
#define XCANFD_AFR_UAF_ALL_MASK 0xFFFFFFFF
/* @} */
/** @name CAN Recieve FIFO Status Register
* @{
*/
#define XCANFD_FSR_FL_MASK 0x00003F00 /**< Fill Level Mask */
#define XCANFD_FSR_RI_MASK 0x0000001F /**< Read Index Mask */
#define XCANFD_FSR_IRI_MASK 0x00000080 /**< Increment Read Index Mask */
/* @} */
/** @name CAN TxBuffer Ready Request Served Interrupt Enable Register Masks
* @{
*/
#define XCANFD_TXBUFFER0_RDY_RQT_MASK 0x00000001 /**< TxBuffer0 Ready
Request Mask */
#define XCANFD_TXBUFFER1_RDY_RQT_MASK 0x00000002 /**< TxBuffer1 Ready
Request Mask */
#define XCANFD_TXBUFFER2_RDY_RQT_MASK 0x00000004 /**< TxBuffer2 Ready
Request Mask */
#define XCANFD_TXBUFFER3_RDY_RQT_MASK 0x00000008 /**< TxBuffer3 Ready
Request Mask */
#define XCANFD_TXBUFFER4_RDY_RQT_MASK 0x00000010 /**< TxBuffer4 Ready
Request Mask */
#define XCANFD_TXBUFFER5_RDY_RQT_MASK 0x00000020 /**< TxBuffer5 Ready
Request Mask */
#define XCANFD_TXBUFFER6_RDY_RQT_MASK 0x00000040 /**< TxBuffer6 Ready
Request Mask */
#define XCANFD_TXBUFFER7_RDY_RQT_MASK 0x00000080 /**< TxBuffer7 Ready
Request Mask */
#define XCANFD_TXBUFFER8_RDY_RQT_MASK 0x00000100 /**< TxBuffer8 Ready
Request Mask */
#define XCANFD_TXBUFFER9_RDY_RQT_MASK 0x00000200 /**< TxBuffer9 Ready
Request Mask */
#define XCANFD_TXBUFFER10_RDY_RQT_MASK 0x00000400 /**< TxBuffer10 Ready
Request Mask */
#define XCANFD_TXBUFFER11_RDY_RQT_MASK 0x00000800 /**< TxBuffer11 Ready
Request Mask */
#define XCANFD_TXBUFFER12_RDY_RQT_MASK 0x00001000 /**< TxBuffer12 Ready
Request Mask */
#define XCANFD_TXBUFFER13_RDY_RQT_MASK 0x00002000 /**< TxBuffer13 Ready
Request Mask */
#define XCANFD_TXBUFFER14_RDY_RQT_MASK 0x00004000 /**< TxBuffer14 Ready
Request Mask */
#define XCANFD_TXBUFFER15_RDY_RQT_MASK 0x00008000 /**< TxBuffer15 Ready
Request Mask */
#define XCANFD_TXBUFFER16_RDY_RQT_MASK 0x00010000 /**< TxBuffer16 Ready
Request Mask */
#define XCANFD_TXBUFFER17_RDY_RQT_MASK 0x00020000 /**< TxBuffer17 Ready
Request Mask */
#define XCANFD_TXBUFFER18_RDY_RQT_MASK 0x00040000 /**< TxBuffer18 Ready
Request Mask */
#define XCANFD_TXBUFFER19_RDY_RQT_MASK 0x00080000 /**< TxBuffer19 Ready
Request Mask */
#define XCANFD_TXBUFFER20_RDY_RQT_MASK 0x00100000 /**< TxBuffer20 Ready
Request Mask */
#define XCANFD_TXBUFFER21_RDY_RQT_MASK 0x00200000 /**< TxBuffer21 Ready
Request Mask */
#define XCANFD_TXBUFFER22_RDY_RQT_MASK 0x00400000 /**< TxBuffer22 Ready
Request Mask */
#define XCANFD_TXBUFFER23_RDY_RQT_MASK 0x00800000 /**< TxBuffer23 Ready
Request Mask */
#define XCANFD_TXBUFFER24_RDY_RQT_MASK 0x01000000 /**< TxBuffer24 Ready
Request Mask */
#define XCANFD_TXBUFFER25_RDY_RQT_MASK 0x02000000 /**< TxBuffer25 Ready
Request Mask */
#define XCANFD_TXBUFFER26_RDY_RQT_MASK 0x04000000 /**< TxBuffer26 Ready
Request Mask */
#define XCANFD_TXBUFFER27_RDY_RQT_MASK 0x08000000 /**< TxBuffer27 Ready
Request Mask */
#define XCANFD_TXBUFFER28_RDY_RQT_MASK 0x10000000 /**< TxBuffer28 Ready
Request Mask */
#define XCANFD_TXBUFFER29_RDY_RQT_MASK 0x20000000 /**< TxBuffer29 Ready
Request Mask */
#define XCANFD_TXBUFFER30_RDY_RQT_MASK 0x40000000 /**< TxBuffer30 Ready
Request Mask */
#define XCANFD_TXBUFFER31_RDY_RQT_MASK 0x80000000 /**< TxBuffer31 Ready
Request Mask */
#define XCANFD_TXBUFFER_ALL_RDY_RQT_MASK 0xFFFFFFFF
/* @} */
/** @name CAN TxBuffer Cancel Request Served Interrupt Enable Register Masks
* @{
*/
#define XCANFD_TXBUFFER0_CANCEL_RQT_MASK 0x00000001 /**< TxBuffer0 Cancel
Request Mask */
#define XCANFD_TXBUFFER1_CANCEL_RQT_MASK 0x00000002 /**< TxBuffer1
Cancel Request
Mask */
#define XCANFD_TXBUFFER2_CANCEL_RQT_MASK 0x00000004 /**< TxBuffer2
Cancel Request
Mask */
#define XCANFD_TXBUFFER3_CANCEL_RQT_MASK 0x00000008 /**< TxBuffer3
Cancel Request
Mask */
#define XCANFD_TXBUFFER4_CANCEL_RQT_MASK 0x00000010 /**< TxBuffer4
Cancel Request
Mask */
#define XCANFD_TXBUFFER5_CANCEL_RQT_MASK 0x00000020 /**< TxBuffer5
Cancel Request
Mask */
#define XCANFD_TXBUFFER6_CANCEL_RQT_MASK 0x00000040 /**< TxBuffer6
Cancel Request
Mask */
#define XCANFD_TXBUFFER7_CANCEL_RQT_MASK 0x00000080 /**< TxBuffer7
Cancel Request
Mask */
#define XCANFD_TXBUFFER8_CANCEL_RQT_MASK 0x00000100 /**< TxBuffer8
Cancel Request
Mask */
#define XCANFD_TXBUFFER9_CANCEL_RQT_MASK 0x00000200 /**< TxBuffer9
Cancel Request
Mask */
#define XCANFD_TXBUFFER10_CANCEL_RQT_MASK 0x00000400 /**< TxBuffer10
Cancel Request
Mask */
#define XCANFD_TXBUFFER11_CANCEL_RQT_MASK 0x00000800 /**< TxBuffer11
Cancel Request
Mask */
#define XCANFD_TXBUFFER12_CANCEL_RQT_MASK 0x00001000 /**< TxBuffer12
Cancel Request
Mask */
#define XCANFD_TXBUFFER13_CANCEL_RQT_MASK 0x00002000 /**< TxBuffer13
Cancel Request
Mask */
#define XCANFD_TXBUFFER14_CANCEL_RQT_MASK 0x00004000 /**< TxBuffer14
Cancel Request
Mask */
#define XCANFD_TXBUFFER15_CANCEL_RQT_MASK 0x00008000 /**< TxBuffer15
Cancel Request
Mask */
#define XCANFD_TXBUFFER16_CANCEL_RQT_MASK 0x00010000 /**< TxBuffer16
Cancel Request
Mask */
#define XCANFD_TXBUFFER17_CANCEL_RQT_MASK 0x00020000 /**< TxBuffer17
Cancel Request
Mask */
#define XCANFD_TXBUFFER18_CANCEL_RQT_MASK 0x00040000 /**< TxBuffer18
Cancel Request
Mask */
#define XCANFD_TXBUFFER19_CANCEL_RQT_MASK 0x00080000 /**< TxBuffer19
Cancel Request
Mask */
#define XCANFD_TXBUFFER20_CANCEL_RQT_MASK 0x00100000 /**< TxBuffer20
Cancel Request
Mask */
#define XCANFD_TXBUFFER21_CANCEL_RQT_MASK 0x00200000 /**< TxBuffer21
Cancel Request
Mask */
#define XCANFD_TXBUFFER22_CANCEL_RQT_MASK 0x00400000 /**< TxBuffer22
Cancel Request
Mask */
#define XCANFD_TXBUFFER23_CANCEL_RQT_MASK 0x00800000 /**< TxBuffer23
Cancel Request
Mask */
#define XCANFD_TXBUFFER24_CANCEL_RQT_MASK 0x01000000 /**< TxBuffer24
Cancel Request
Mask */
#define XCANFD_TXBUFFER25_CANCEL_RQT_MASK 0x02000000 /**< TxBuffer25
Cancel Request
Mask */
#define XCANFD_TXBUFFER26_CANCEL_RQT_MASK 0x04000000 /**< TxBuffer26
Cancel Request
Mask */
#define XCANFD_TXBUFFER27_CANCEL_RQT_MASK 0x08000000 /**< TxBuffer27
Cancel Request
Mask */
#define XCANFD_TXBUFFER28_CANCEL_RQT_MASK 0x10000000 /**< TxBuffer28
Cancel Request
Mask */
#define XCANFD_TXBUFFER29_CANCEL_RQT_MASK 0x20000000 /**< TxBuffer29
Cancel Request
Mask */
#define XCANFD_TXBUFFER30_CANCEL_RQT_MASK 0x40000000 /**< TxBuffer30
Cancel Request
Mask */
#define XCANFD_TXBUFFER31_CANCEL_RQT_MASK 0x80000000 /**< TxBuffer31
Cancel Request
Mask */
#define XCANFD_TXBUFFER_CANCEL_RQT_ALL_MASK 0xFFFFFFFF
/* @} */
/** @name CAN RxBuffer Full Register
* @{
*/
#define XCANFD_RXBUFFER0_FULL_MASK 0x00000001 /**< RxBuffer0 Full
Mask */
#define XCANFD_RXBUFFER1_FULL_MASK 0x00000002 /**< RxBuffer1 Full
Mask */
#define XCANFD_RXBUFFER2_FULL_MASK 0x00000004 /**< RxBuffer2 Full
Mask */
#define XCANFD_RXBUFFER3_FULL_MASK 0x00000008 /**< RxBuffer3 Full
Mask */
#define XCANFD_RXBUFFER4_FULL_MASK 0x00000010 /**< RxBuffer4 Full
Mask */
#define XCANFD_RXBUFFER5_FULL_MASK 0x00000020 /**< RxBuffer5 Full
Mask */
#define XCANFD_RXBUFFER6_FULL_MASK 0x00000040 /**< RxBuffer6 Full
Mask */
#define XCANFD_RXBUFFER7_FULL_MASK 0x00000080 /**< RxBuffer7 Full
Mask */
#define XCANFD_RXBUFFER8_FULL_MASK 0x00000100 /**< RxBuffer8 Full
Mask */
#define XCANFD_RXBUFFER9_FULL_MASK 0x00000200 /**< RxBuffer9 Full
Mask */
#define XCANFD_RXBUFFER10_FULL_MASK 0x00000400 /**< RxBuffer10 Full
Mask */
#define XCANFD_RXBUFFER11_FULL_MASK 0x00000800 /**< RxBuffer11 Full
Mask */
#define XCANFD_RXBUFFER12_FULL_MASK 0x00001000 /**< RxBuffer12 Full
Mask */
#define XCANFD_RXBUFFER13_FULL_MASK 0x00002000 /**< RxBuffer13 Full
Mask */
#define XCANFD_RXBUFFER14_FULL_MASK 0x00004000 /**< RxBuffer14 Full
Mask */
#define XCANFD_RXBUFFER15_FULL_MASK 0x00008000 /**< RxBuffer15 Full
Mask */
#define XCANFD_RXBUFFER16_FULL_MASK 0x00010000 /**< RxBuffer16 Full
Mask */
#define XCANFD_RXBUFFER17_FULL_MASK 0x00020000 /**< RxBuffer17 Full
Mask */
#define XCANFD_RXBUFFER18_FULL_MASK 0x00040000 /**< RxBuffer18 Full
Mask */
#define XCANFD_RXBUFFER19_FULL_MASK 0x00080000 /**< RxBuffer19 Full
Mask */
#define XCANFD_RXBUFFER20_FULL_MASK 0x00100000 /**< RxBuffer20 Full
Mask */
#define XCANFD_RXBUFFER21_FULL_MASK 0x00200000 /**< RxBuffer21 Full
Mask */
#define XCANFD_RXBUFFER22_FULL_MASK 0x00400000 /**< RxBuffer22 Full
Mask */
#define XCANFD_RXBUFFER23_FULL_MASK 0x00800000 /**< RxBuffer23 Full
Mask */
#define XCANFD_RXBUFFER24_FULL_MASK 0x01000000 /**< RxBuffer24 Full
Mask */
#define XCANFD_RXBUFFER25_FULL_MASK 0x02000000 /**< RxBuffer25 Full
Mask */
#define XCANFD_RXBUFFER26_FULL_MASK 0x04000000 /**< RxBuffer26 Full
Mask */
#define XCANFD_RXBUFFER27_FULL_MASK 0x08000000 /**< RxBuffer27 Full
Mask */
#define XCANFD_RXBUFFER28_FULL_MASK 0x10000000 /**< RxBuffer28 Full
Mask */
#define XCANFD_RXBUFFER29_FULL_MASK 0x20000000 /**< RxBuffer29 Full
Mask */
#define XCANFD_RXBUFFER30_FULL_MASK 0x40000000 /**< RxBuffer30 Full
Mask */
#define XCANFD_RXBUFFER31_FULL_MASK 0x80000000 /**< RxBuffer31 Full
Mask */
#define XCANFD_RXBUFFER32_FULL_MASK 0x00000001 /**< RxBuffer32 Full
Mask */
#define XCANFD_RXBUFFER33_FULL_MASK 0x00000002 /**< RxBuffer33 Full
Mask */
#define XCANFD_RXBUFFER34_FULL_MASK 0x00000004 /**< RxBuffer34 Full
Mask */
#define XCANFD_RXBUFFER35_FULL_MASK 0x00000008 /**< RxBuffer35 Full
Mask */
#define XCANFD_RXBUFFER36_FULL_MASK 0x00000010 /**< RxBuffer36 Full
Mask */
#define XCANFD_RXBUFFER37_FULL_MASK 0x00000020 /**< RxBuffer37 Full
Mask */
#define XCANFD_RXBUFFER38_FULL_MASK 0x00000040 /**< RxBuffer38 Full
Mask */
#define XCANFD_RXBUFFER39_FULL_MASK 0x00000080 /**< RxBuffer39 Full
Mask */
#define XCANFD_RXBUFFER40_FULL_MASK 0x00000100 /**< RxBuffer40 Full
Mask */
#define XCANFD_RXBUFFER41_FULL_MASK 0x00000200 /**< RxBuffer41 Full
Mask */
#define XCANFD_RXBUFFER42_FULL_MASK 0x00000400 /**< RxBuffer42 Full
Mask */
#define XCANFD_RXBUFFER43_FULL_MASK 0x00000800 /**< RxBuffer43 Full
Mask */
#define XCANFD_RXBUFFER44_FULL_MASK 0x00001000 /**< RxBuffer44 Full
Mask */
#define XCANFD_RXBUFFER45_FULL_MASK 0x00002000 /**< RxBuffer45 Full
Mask */
#define XCANFD_RXBUFFER46_FULL_MASK 0x00004000 /**< RxBuffer46 Full
Mask */
#define XCANFD_RXBUFFER47_FULL_MASK 0x00008000 /**< RxBuffer47 Full
Mask */
/* @} */
/** @name CAN frame length constants
* @{
*/
#define XCANFD_MAX_FRAME_SIZE 72 /**< Maximum CAN frame length in bytes
*/
#define XCANFD_DW_BYTES 4 /**< Data Word Bytes */
#define XST_NOBUFFER 33L /**< All Buffers (32) are filled */
#define XST_BUFFER_ALREADY_FILLED 34L /**< Given Buffer is Already
filled */
#define XST_INVALID_DLC 16L /**< Invalid Dlc code */
/* @} */
/**************************** Type Definitions *******************************/
/***************** Macros (Inline Functions) Definitions *********************/
/****************************************************************************/
/**
*
* This macro reads the given register.
*
* @param BaseAddress is the base address of the device
* @param RegOffset is the register offset to be read
*
* @return The 32-bit value of the register
*
* @note C-Style signature:
* u32 XCanFd_ReadReg(u32 BaseAddress, u32 RegOffset);
*
*****************************************************************************/
#define XCanFd_ReadReg(BaseAddress, RegOffset) \
Xil_In32((BaseAddress) + (RegOffset))
/****************************************************************************/
/**
*
* This macro writes the given register.
*
* @param BaseAddress is the base address of the device
* @param RegOffset is the register offset to be written
* @param Data is the 32-bit value to write to the register
*
* @return None.
*
* @note C-Style signature:
* u32 XCanFd_WriteReg(u32 BaseAddress, u32 RegOffset, u32 Data);
*
*****************************************************************************/
#define XCanFd_WriteReg(BaseAddress, RegOffset, Data) \
Xil_Out32((BaseAddress) + (RegOffset), (Data))
/************************** Function Prototypes ******************************/
#ifdef __cplusplus
}
#endif
#endif /* end of protection macro */