drivers: update copyright for NXP files
[dpdk.git] / drivers / net / pfe / base / cbus / hif.h
1 /* SPDX-License-Identifier: BSD-3-Clause
2  * Copyright 2018-2019 NXP
3  */
4
5 #ifndef _HIF_H_
6 #define _HIF_H_
7
8 /* @file hif.h.
9  * hif - PFE hif block control and status register.
10  * Mapped on CBUS and accessible from all PE's and ARM.
11  */
12 #define HIF_VERSION     (HIF_BASE_ADDR + 0x00)
13 #define HIF_TX_CTRL     (HIF_BASE_ADDR + 0x04)
14 #define HIF_TX_CURR_BD_ADDR     (HIF_BASE_ADDR + 0x08)
15 #define HIF_TX_ALLOC    (HIF_BASE_ADDR + 0x0c)
16 #define HIF_TX_BDP_ADDR (HIF_BASE_ADDR + 0x10)
17 #define HIF_TX_STATUS   (HIF_BASE_ADDR + 0x14)
18 #define HIF_RX_CTRL     (HIF_BASE_ADDR + 0x20)
19 #define HIF_RX_BDP_ADDR (HIF_BASE_ADDR + 0x24)
20 #define HIF_RX_STATUS   (HIF_BASE_ADDR + 0x30)
21 #define HIF_INT_SRC     (HIF_BASE_ADDR + 0x34)
22 #define HIF_INT_ENABLE  (HIF_BASE_ADDR + 0x38)
23 #define HIF_POLL_CTRL   (HIF_BASE_ADDR + 0x3c)
24 #define HIF_RX_CURR_BD_ADDR     (HIF_BASE_ADDR + 0x40)
25 #define HIF_RX_ALLOC    (HIF_BASE_ADDR + 0x44)
26 #define HIF_TX_DMA_STATUS       (HIF_BASE_ADDR + 0x48)
27 #define HIF_RX_DMA_STATUS       (HIF_BASE_ADDR + 0x4c)
28 #define HIF_INT_COAL    (HIF_BASE_ADDR + 0x50)
29
30 /* HIF_INT_SRC/ HIF_INT_ENABLE control bits */
31 #define HIF_INT         BIT(0)
32 #define HIF_RXBD_INT    BIT(1)
33 #define HIF_RXPKT_INT   BIT(2)
34 #define HIF_TXBD_INT    BIT(3)
35 #define HIF_TXPKT_INT   BIT(4)
36
37 /* HIF_TX_CTRL bits */
38 #define HIF_CTRL_DMA_EN                 BIT(0)
39 #define HIF_CTRL_BDP_POLL_CTRL_EN       BIT(1)
40 #define HIF_CTRL_BDP_CH_START_WSTB      BIT(2)
41
42 /* HIF_RX_STATUS bits */
43 #define BDP_CSR_RX_DMA_ACTV     BIT(16)
44
45 /* HIF_INT_ENABLE bits */
46 #define HIF_INT_EN              BIT(0)
47 #define HIF_RXBD_INT_EN         BIT(1)
48 #define HIF_RXPKT_INT_EN        BIT(2)
49 #define HIF_TXBD_INT_EN         BIT(3)
50 #define HIF_TXPKT_INT_EN        BIT(4)
51
52 /* HIF_POLL_CTRL bits*/
53 #define HIF_RX_POLL_CTRL_CYCLE  0x0400
54 #define HIF_TX_POLL_CTRL_CYCLE  0x0400
55
56 /* HIF_INT_COAL bits*/
57 #define HIF_INT_COAL_ENABLE     BIT(31)
58
59 /* Buffer descriptor control bits */
60 #define BD_CTRL_BUFLEN_MASK     0x3fff
61 #define BD_BUF_LEN(x)   ((x) & BD_CTRL_BUFLEN_MASK)
62 #define BD_CTRL_CBD_INT_EN      BIT(16)
63 #define BD_CTRL_PKT_INT_EN      BIT(17)
64 #define BD_CTRL_LIFM            BIT(18)
65 #define BD_CTRL_LAST_BD         BIT(19)
66 #define BD_CTRL_DIR             BIT(20)
67 #define BD_CTRL_LMEM_CPY        BIT(21) /* Valid only for HIF_NOCPY */
68 #define BD_CTRL_PKT_XFER        BIT(24)
69 #define BD_CTRL_DESC_EN         BIT(31)
70 #define BD_CTRL_PARSE_DISABLE   BIT(25)
71 #define BD_CTRL_BRFETCH_DISABLE BIT(26)
72 #define BD_CTRL_RTFETCH_DISABLE BIT(27)
73
74 /* Buffer descriptor status bits*/
75 #define BD_STATUS_CONN_ID(x)    ((x) & 0xffff)
76 #define BD_STATUS_DIR_PROC_ID   BIT(16)
77 #define BD_STATUS_CONN_ID_EN    BIT(17)
78 #define BD_STATUS_PE2PROC_ID(x) (((x) & 7) << 18)
79 #define BD_STATUS_LE_DATA       BIT(21)
80 #define BD_STATUS_CHKSUM_EN     BIT(22)
81
82 /* HIF Buffer descriptor status bits */
83 #define DIR_PROC_ID     BIT(16)
84 #define PROC_ID(id)     ((id) << 18)
85
86 #endif /* _HIF_H_ */