1 /* SPDX-License-Identifier: GPL-2.0+ */ 2 /* Copyright (c) 2015-2016 Quantenna Communications */ 3 4 #ifndef _QTN_FMAC_PCIE_IPC_H_ 5 #define _QTN_FMAC_PCIE_IPC_H_ 6 7 #include <linux/types.h> 8 9 #include "shm_ipc_defs.h" 10 11 /* bitmap for EP status and flags: updated by EP, read by RC */ 12 #define QTN_EP_HAS_UBOOT BIT(0) 13 #define QTN_EP_HAS_FIRMWARE BIT(1) 14 #define QTN_EP_REQ_UBOOT BIT(2) 15 #define QTN_EP_REQ_FIRMWARE BIT(3) 16 #define QTN_EP_ERROR_UBOOT BIT(4) 17 #define QTN_EP_ERROR_FIRMWARE BIT(5) 18 19 #define QTN_EP_FW_LOADRDY BIT(8) 20 #define QTN_EP_FW_SYNC BIT(9) 21 #define QTN_EP_FW_RETRY BIT(10) 22 #define QTN_EP_FW_QLINK_DONE BIT(15) 23 #define QTN_EP_FW_DONE BIT(16) 24 25 /* bitmap for RC status and flags: updated by RC, read by EP */ 26 #define QTN_RC_PCIE_LINK BIT(0) 27 #define QTN_RC_NET_LINK BIT(1) 28 #define QTN_RC_FW_FLASHBOOT BIT(5) 29 #define QTN_RC_FW_QLINK BIT(7) 30 #define QTN_RC_FW_LOADRDY BIT(8) 31 #define QTN_RC_FW_SYNC BIT(9) 32 33 #define PCIE_HDP_INT_RX_BITS (0 \ 34 | PCIE_HDP_INT_EP_TXDMA \ 35 | PCIE_HDP_INT_EP_TXEMPTY \ 36 | PCIE_HDP_INT_HHBM_UF \ 37 ) 38 39 #define PCIE_HDP_INT_TX_BITS (0 \ 40 | PCIE_HDP_INT_EP_RXDMA \ 41 ) 42 43 #ifdef CONFIG_ARCH_DMA_ADDR_T_64BIT 44 #define QTN_HOST_HI32(a) ((u32)(((u64)a) >> 32)) 45 #define QTN_HOST_LO32(a) ((u32)(((u64)a) & 0xffffffffUL)) 46 #define QTN_HOST_ADDR(h, l) ((((u64)h) << 32) | ((u64)l)) 47 #else 48 #define QTN_HOST_HI32(a) 0 49 #define QTN_HOST_LO32(a) ((u32)(((u32)a) & 0xffffffffUL)) 50 #define QTN_HOST_ADDR(h, l) ((u32)l) 51 #endif 52 53 #define QTN_PCIE_BDA_VERSION 0x1002 54 55 #define PCIE_BDA_NAMELEN 32 56 #define PCIE_HHBM_MAX_SIZE 2048 57 58 #define QTN_PCIE_BOARDFLG "PCIEQTN" 59 #define QTN_PCIE_FW_DLMASK 0xF 60 #define QTN_PCIE_FW_BUFSZ 2048 61 62 #define QTN_ENET_ADDR_LENGTH 6 63 64 #define QTN_TXDONE_MASK ((u32)0x80000000) 65 #define QTN_GET_LEN(x) ((x) & 0xFFFF) 66 67 #define QTN_PCIE_TX_DESC_LEN_MASK 0xFFFF 68 #define QTN_PCIE_TX_DESC_LEN_SHIFT 0 69 #define QTN_PCIE_TX_DESC_PORT_MASK 0xF 70 #define QTN_PCIE_TX_DESC_PORT_SHIFT 16 71 #define QTN_PCIE_TX_DESC_TQE_BIT BIT(24) 72 73 #define QTN_EP_LHOST_TQE_PORT 4 74 75 enum qtnf_fw_loadtype { 76 QTN_FW_DBEGIN, 77 QTN_FW_DSUB, 78 QTN_FW_DEND, 79 QTN_FW_CTRL 80 }; 81 82 #endif /* _QTN_FMAC_PCIE_IPC_H_ */ 83